Factorial table: 1000! to 100000! on one-thousand increment

FACTORIAL RESULT
1000! 402387260077093773543702433923003985719374864210714632543799910429938512398629020592044208486969404800479988610197196058631666872994808558901323829669944590997424504087073759918823627727188732519779505950995276120874975462497043601418278094646496291056393887437886487337119181045825783647849977012476632889835955735432513185323958463075557409114262417474349347553428646576611667797396668820291207379143853719588249808126867838374559731746136085379534524221586593201928090878297308431392844403281231558611036976801357304216168747609675871348312025478589320767169132448426236131412508780208000261683151027341827977704784635868170164365024153691398281264810213092761244896359928705114964975419909342221566832572080821333186116811553615836546984046708975602900950537616475847728421889679646244945160765353408198901385442487984959953319101723355556602139450399736280750137837615307127761926849034352625200015888535147331611702103968175921510907788019393178114194545257223865541461062892187960223838971476088506276862967146674697562911234082439208160153780889893964518263243671616762179168909779911903754031274622289988005195444414282012187361745992642956581746628302955570299024324153181617210465832036786906117260158783520751516284225540265170483304226143974286933061690897968482590125458327168226458066526769958652682272807075781391858178889652208164348344825993266043367660176999612831860788386150279465955131156552036093988180612138558600301435694527224206344631797460594682573103790084024432438465657245014402821885252470935190620929023136493273497565513958720559654228749774011413346962715422845862377387538230483865688976461927383814900140767310446640259899490222221765904339901886018566526485061799702356193897017860040811889729918311021171229845901641921068884387121855646124960798722908519296819372388642614839657382291123125024186649353143970137428531926649875337218940694281434118520158014123344828015051399694290153483077644569099073152433278288269864602789864321139083506217095002597389863554277196742822248757586765752344220207573630569498825087968928162753848863396909959826280956121450994871701244516461260379029309120889086942028510640182154399457156805941872748998094254742173582401063677404595741785160829230135358081840096996372524230560855903700624271243416909004153690105933983835777939410970027753472000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
2000! 331627509245063324117539338057632403828111720810578039457193543706038077905600822400273230859732592255402352941225834109258084817415293796131386633526343688905634058556163940605117252571870647856393544045405243957467037674108722970434684158343752431580877533645127487995436859247408032408946561507233250652797655757179671536718689359056112815871601717232657156110004214012420433842573712700175883547796899921283528996665853405579854903657366350133386550401172012152635488038268152152246920995206031564418565480675946497051552288205234899995726450814065536678969532101467622671332026831552205194494461618239275204026529722631502574752048296064750927394165856283531779574482876314596450373991327334177263608852490093506621610144459709412707821313732563831572302019949914958316470942774473870327985549674298608839376326824152478834387469595829257740574539837501585815468136294217949972399813599481016556563876034227312912250384709872909626622461971076605931550201895135583165357871492290916779049702247094611937607785165110684432255905648736266530377384650390788049524600712549402614566072254136302754913671583406097831074945282217490781347709693241556111339828051358600690594619965257310741177081519922564516778571458056602185654760952377463016679422488444485798349801548032620829890965857381751888619376692828279888453584639896594213952984465291092009103710046149449915828588050761867924946385180879874512891408019340074625920057098729578599643650655895612410231018690556060308783629110505601245908998383410799367902052076858669183477906558544700148692656924631933337612428097420067172846361939249698628468719993450393889367270487127172734561700354867477509102955523953547941107421913301356819541091941462766417542161587625262858089801222443890248677182054959415751991701271767571787495861619665931878855141835782092601482071777331735396034304969082070589958701381980813035590160762908388574561288217698136182483576739218303118414719133986892842344000779246691209766731651433494437473235636572048844478331854941693030124531676232745367879322847473824485092283139952509732505979127031047683601481191102229253372697693823670057565612400290576043852852902937606479533458179666123839605262549107186663869354766108455046198102084050635827676526589492393249519685954171672419329530683673495544004586359838161043059449826627530605423580755894108278880427825951089880635410567917950974017780688782869810219010900148352061688883720250310665922068601483649830532782088263536558043605686781284169217133047141176312175895777122637584753123517230990549829210134687304205898014418063875382664169897704237759406280877253702265426530580862379301422675821187143502918637636340300173251818262076039747369595202642632364145446851113427202150458383851010136941313034856221916631623892632765815355011276307825059969158824533457435437863683173730673296589355199694458236873508830278657700879749889992343555566240682834763784685183844973648873952475103224222110561201295829657191368108693825475764118886879346725191246192151144738836269591643672490071653428228152661247800463922544945170363723627940757784542091048305461656190622174286981602973324046520201992813854882681951007282869701070737500927666487502174775372742351508748246720274170031581122805896178122160747437947510950620938556674581252518376682157712807861499255876132352950422346387878954850885764466136290394127665978044202092281337987115900896264878942413210454925003566670632909441579372986743421470507213588932019580723064781498429522595589012754823971773325722910325760929790733299545056388362640474650245080809469116072632087494143973000704111418595530278827357654819182002449697761111346318195282761590964189790958117338627206088910432945244978535147014112442143055486089639578378347325323595763291438925288393986256273242862775563140463830389168421633113445636309571965978466338551492316196335675355138403425804162919837822266909521770153175338730284610841886554138329171951332117895728541662084823682817932512931237521541926970269703299477643823386483008871530373405666383868294088487730721762268849023084934661194260180272613802108005078215741006054848201347859578102770707780655512772540501674332396066253216415004808772403047611929032210154385353138685538486425570790795341176519571188683739880683895792743749683498142923292196309777090143936843655333359307820181312993455024206044563340578606962471961505603394899523321800434359967256623927196435402872055475012079854331970674797313126813523653744085662263206768837585132782896252333284341812977624697079543436003492343159239674763638912115285406657783646213911247447051255226342701239527018127045491648045932248108858674600952306793175967755581011679940005249806303763141344412269037034987355799916009259248075052485541568266281760815446308305406677412630124441864204108373119093130001154470560277773724378067188899770851056727276781247198832857695844217588895160467868204810010047816462358220838532488134270834079868486632162720208823308727819085378845469131556021728873121907393965209260229101477527080930865364979858554010577450279289814603688431821508637246216967872282169347370599286277112447690920902988320166830170273420259765671709863311216349502171264426827119650264054228231759630874475301847194095524263411498469508073390080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
3000! 41493596034378540855568670930866121709511191949318099176894676576975585651235319500860007652178003420075184635383617118495750871114045907794553402161068339611621037904199177522062663390179682805164719697495968842457728766097103003726111095340241127118833157738815328438929737613021106312930374401485378725446079610290429491049793888120762511625132917004641668962117590203575175488980653577868915285093782469994674699190832093511068363824287063522268544339213775150488588104036818809099292912497141900508938994404715351473154531587441509960174267875087460367974117072368747277143988920683691618503608198459718093784453523958505377611086511162363145920886108557450874513945305436213711898150847192094426374203275029996333784944014775671414680824207499914714878359669720638954670589960178569480263388767112871068004950827400717124819476386401369193544354120312786601434792549959143530120653103406625503231020738351502195103148673612338739395096551462159349015789949944072311004426924838140141455487872738045856023561583204317945953055830693351246890721246151468485308724031267967089113548982733475375756899365176396424781733462510879015743437398920492267098317033932107176343983352444576040476565400414414699479984354554597799386702839428513413188913165695310848513525094006147774047007331406541794428004436691903685469270857271701648011512057452448607968773784803660653009109815639091294110633715621540903800135058671624262333902434166628716521228590274568833504897926869369792878376894841436573866436955075473964882256222183380014600761196859217603234808467455216330411738004331144225926243690558782914907973885758784585739828695390302383837265882427654306437517757897215045071361801730051628424476294227485755627828763498767195281368913583918824499284741591683130334032199946752082914885764345863832313545205075955912062067273296951386122994658607527317884452449865348164169238844889061495850934373442889814884427321817131272533891534506581143823381205875379808605080889761753882896252933633750454549168600267229591225528854584482686655324313011353754812409561237686078007700707939541848907149467377854407528307872988103912945121929864793703451257436445581459757140822705986325165352906584571123585270211933452981105568398809884094980346185078025273038736784042169427237980464304250045030806637032760016341921442805708802430850567892108646977455139539119838636167190300278146380136932482332771595180596193069504237836082620570887209297929797429404576877338319877444685544294800321741056689423710545028870419611915072739000031642014474213323293871618029555614004602867400422885389854650328028428515122296028795741801621823236098320971441047012533067314896153236788734984553949604397050352347766211395914519270422122231426998692087463520980686224354813376194395131942868113486531562228173214976481705381846155326596187530296478601160872263640443922257601926494610916885151013143945574398303192557154162151442469122370519149097861849436150963109933639594561796593396851958605338631176324147066842257192394742531726479559749993283247279807896470753054014194090200609712674753186365525403212757757853930697530056595208207457499471898144453772248207888443335118545601568853708182892895218300139654376947286418776665762815389737340159410543681435437346134244692067070082782423645557450882556670157242752810317141640631410681384330924027281318960884813040665226169552825637183862464944295688859393846726723694199475571320546018263425731029115353532728808182773021596787088437293412117084511580629967697266601663635276959969021502122104954259567278593185516268447100374434620422003535391203738393095420695021486207390653190910821344334251497896284236198571674773848126097443055036250866354720730971298084697196537722779893160200560725058007512407494448163392214398118492748281978655178478547749198714138485042290383954090570842038137277135667703565041081780520695032136233521692740531015340921761834078817735674646749071616600653230438902639786065509005309872435445689315601329942407112295015453771521051942445512795364971214872222193729289159833001742397977592530501318837883494884232222507318816399438935627817102875432588794558857742780390717166381257903798149148445526885871629931014510733215554773264576035916184298708323237568837917135073006026738292294687081030751946020376438138677107333779312582257356435534577162804030480925785909747233413932904072239860005448269296110393640127539539899397420021925268928622564959279136369546983247314494094297494213208716963662812963846191378114609210701033012119934264941666449130310898493535366401831282683112506578386425906537197010907276429330534751297336716929415047870949241778121534979499449732358445130210029720359993576507730563696950539990891252004810120090569633144368179194247963563389102486250773367249399801723451627048850149438343735826440053481474957421328873648479589553843836378275601433377798816126854462406494134416119108952653326761627660221130879211665924379496534838030236064294981985541014311566601739518539426008673198564586684635442730180022292607589767192198367529528365158715521887698317999005853121518691037776676883654291247419826099434535671529412823837612115555686210454583810355154404953718470726363218532775486501811002621331228429860926112159573066023932077476742800909462674322138805290643067711276964013735906251051050623568241317651533030775358975134565147424167401517470720839101869989993279364910892687924739705814152855543965954222603919059265825637344676406359525838966981511983959886603683753042017990328185945569412550519066302854869533377682984600031808093822130038102214387057461181304251961916405970456035183121708151658647356556540532928411748628957082856792300053525846377061280591452035546389932127875906349627837975871352588618213252263577038396202737385324908353680497990085701522483303439525197344653342994652565236096742834550523739733902374261808871799283722285366293439240895762913154442106573609205481842139365893867715542842477275100166734357743093638948444564764377184073874379471007867151070449554657626281566137550730763768080600031844296233977808233311359787577136983012817571625671683287281511937336685789437109097748581222868126824122317272681184975207863453107495331708260153159440253645365524453587952034745213429248916644504804355352281977721981971869054884176896398782704782066126921472548618247859626434279190274503452994769367997217285165465591799471789067885687278574470084289723778234763080740919512966238346427839653865017324665850192144091694630371265581197700774682562035198318782913591013997817303635173764706714383992810291224460848320518983248348855131025539721583184931653670732273172995431750775475634748127320956655431851879586978172491721700865768098908327830838240437737974455342525688712898855513180967012497859454290609627370590659970784172738420721605576789060565167694565490120388165775861939230924362983389549857279874523398090499858467484850399509109398834210424693113617875978611803096108774362764990414655167545507613665725914993376114340243762910290384135888531312591132544849225896007184851169390193985434649415483782338302531368775990005443722332901462568184095998830522521585328599833990336595418932696680163265899358234663247080324020429791357425755498549372896192091650794671997121439832581553945835125648010889886887056882711222628734035772418424803231173027338442220604015609242079569493204943809402465562530303328824165302038006041288444384884189129393985971765670211501611340121169355535864984802941563238279447576315042685734269863116562800932164578165410411899078396210758605145091526528422433647230880469088426412525126584729134059195171754291152622002229756986927959124620964363057052133099216422258437651889193630329851223282950806126200573565554213183555838289318138795940962303792777230344423432341561603558590502324475274502630869831414125396371754413611897269158650716722308083435295578401087236027347001118786146233185439431057058483770474806035004556885020602730222256397630738939985024978155182679916994164145540329909813190506654358156657691529068908186204138444091456355291242064901717436430473455191375922914953282988151808740076733486997695322871450791584448703980405737673555777873593937891577147956023340708456392314170118392555234618119775915673385955919265270624063734277760215846511035368057963320714896942663358570375305829676608224208465464558556667889222627619990263961792637457851652540918756608543859661221944248720424960000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
4000! 18288019515140650133147431755739190442173777107304392197064526954208959797973177364850370286870484107336443041569285571754672461861543557333942615617956996716745284831597317498818760937482804980419576512948720610558928129788097800620593429537705326740624453884285091743951756746144447362378722469436194575929579900114212973360658998073977714697261205048663725936337490404066097966637170254021348800944280342285355946649681316260163459743803577175903394733170076841764779082166891184529324230033414145497801832598218518406552257097392530024582738982919104406782168708871495603501905867399966298798534877747923179195791416504408054878974770308650707120878837624986576073340449414854578367383301715706358194127400849855604080473305196833482408079420964275187538889115296655522397723924887154624810659788321005620558369604778657904771918388054319251513981954296741688447246185021250402225010116433016818588036690180177691461779713104301640395708274734701186772756966064611023656528765138735704190876200697145804692125236821066805337175220605745377557452592208653939853278523841448314026548802309860391087939783218946129582647928430739985554883806198749831633640196211202756086016039171607744078776876219661603702759454887945247605749205543464095883664514960293873244842409803801480566600124415293789831496309554117113888561569494314926134470477513516416560102984058751906208865570183683850791317395702861350821464653600469443279077733978568711404244774089509216727922510660941411716412467443445414001188915966547283773988670739792818897314762082568914041952211779194055311405259158538932388745292324386826830135904886472292289993848482289254307628467614523292519222687689180219788377184005246290896703260524910362136627321135976515358528150143796798116836263053229733971612275184896139539613129329008449214723196703789119820971205922195513915546814704778682373487718946560822811623038853887054357316290622378472322045316639418491798517077275839637525427601452961835674484434498885698840692468550825765131610925966585339561854456154229048295742274725126218799745448031391826295221114381890600683208441558088271228618006589059444108806652992787854634497487158675770983422610936590600627170500972481399444145398522756870626097250230229195799277299921844954715690883242553569256657132515663544931830393317518828986443942138971609142621397646808351809694603734872977984148002699965137870448199866167162949256435040416146886823942144459105175033488395869910405207521329016842673168563837531518918339627724066152933627236730561155418227888673513937454508103826102827706121560330906016404162420051373313654570111102003319577878502216919170112074608722852376799943191590480651623958062982829452035227119036502426583752512199824089725611711059153935434418985109241404135069047109527514730648502064630431371185922523036941621026392783813435540195800531988645430344745298845640017082732623248838473771603478336326662579219137601422632057648758807935233915527562817942378675243919886800056209434731407685691942327092464101136254795499159351103542747723434544436366313104996373661654989465498180892716462805042227038222104784062626027480151567377841821316292095295686368619300417863327530764301323081902435971165925163513225511176258919471673437553320934916910573999020966087207663133871516530391787535755420348174519954013015999193335205032571176460105005716115305748669364682675265014310223271762807620242805617435594927890676408953057384890719681225840400396698155624793888816156585043604782961704971397764959404751358445856914581957186533573207690355894150776647727994156425641953755517727965486096675384222232344185537279888780570854092084221993660761154788359777439798490851148031275123759286793224660188593768897291749180357297185650430735063126035278321749629995702200115722386600046772883018963166273463715186812543356173550341233310175600817771447170656517505385258772069067139665478506263898380526394388218036388768999161538645432932116471146392562992204259450889291928261780531925618148311151259088519869787637913607866079920830781433275298468534248595471485354420794089854693167644320115900404444471266030942746376074187982809857292874382829734306879420308783010740784767155894363033186129183748698373599293267795620690003900348542140553208244771165593739117369452474295075445169488356550100854423929030967163401348223503674045821834526710830392520955478859202303175309815706259592416130388770535449570146586161954289529234209342432075461261173246383180702862172009624828852517861214008242944903162464816939278645210656431141653019224783906038062818006434258491952705341708781231767324026544165240012431457995565227331912056216396141277926932316783631899833106810492890045890947294731794016389385348294079360921757589715698098491612254898203787546124091057862387229987442131738499764391062422228395736099751277880661280909246369674792326056952220508861243875642482808175793303703933394191224832165950388337931626643339913192088808753619030386928808349931733881036690498513779587801764477865791351420222949860738228995728065763459283625096944678593378349990211317403358327367677358882377095918185840441346045760435580063918587956888086127034558064154832456098224664532422114583653763989534559801683261113731162039500068729224661509382267286483841867542303955164213391663536072749966590737898408144092699675796793165775891429992491955485860639629542416955757565163223827874193321274119938618709482020627749094917473754346320653165690129809741806883246764053966717253521140010801409998318494470531219051920354752556183478378238398583402765337923843167749738355049636714529840534145950376598809459294819192486096200503652538835417613002983933634477053826438814791235363934440952835213240806543802505241445900981152753843778634021300832293332432473400040109754281828950625464331409151961292319287863535740382445771128522343533054993071872524564127962306298218521662304206610010638488461150361786151832595182055013210238035059473479841417644445066550217093994746959565730463201996845756999575031950401331385688683576883429289274419202816101239071817771853612534620088858074904095239406471009098851796038360101243053736361346640211872570375441319261567131238168652234864182359667285536913841122976956009892970909409178865928472056691904571596961458646895132972589012090613887584436018692038947475932753085268106507554394567201654757930957224629573401948677157237825005540282635839895509019254240256916422227590032685003087320017232658420681209681389364174854034319152111706246564733896551636271748411627920466475472421243033805492052542237647091252577811952376244836844025673570936216945539206875730684120187779664758451508678786539887154966732995692212544207529457534936853900663520665102592278581210192104846016594846265525000394264201946315492667174670489454576610993722063668720936949698308641684437046485292906040368218708947194882991333823400676584552108673913669306118549159369734833071319506680872661886898225398171896329288732499509337836463164384614967690283284184136334006184670970038275153458133098776493171693249836721707632973537518273692928527497068121779606865163943692606596848941143683627629169873171114739189794632775706536177409526869936538136348369630762610163490694986911903178859927739423796596582439105912599204583810744740479342404550513976713360591833475711496976836332005885151231030818986389033126325119226309584818058301429763149472903925739659774337307109687940297813700796873400566095281249251559137923743113469044584820584542770746490047535898370961450995287930441328833542933636539386097851378739174078158132593877463567524868470795313740375647059352650583871001646082364842709333314532933141725314262510333047099681128329792983694287727106008519184538377065089964546579000542260452715147077137452076302879112802094308224402060706282308208678850263037733351444756065285721900833083634023860920356321356382318484421995141074387149942542550133039926139155010190614633196727199469768170121209097613598302048321148497175007150184555423280152476407230065108963493864309805262458731715886593175689747530567359088332598961192319881186961400055356294945140450806114214490420494488195417136403967132286869444062615622815233336396279517485469862880809956041938378161336156979526713793454354319018535526139196959277008828634440008764782171726908279132449346924807112458895951881542382952497102061566169481361027449429416228859029591798532192088531772405831332410104172391828682208239266557146168642210154401086974397003647170356217905465594944933170065175291981240572835024374361017977695084363373226470846255498368067535698751768103817520605779489720985090002595078926475029239124403277040719184010486962844211160986922952144938430963756963408787147933184107904312838985994963982784496688190643908936394858404598837762653245968848299901455260080572627872653099337092686312650606546084656202210845053932679131706841390889951865628810708670194485207654079244417321332232196041180225814997707988397637369268804955010409293139079608620689856756139863786355461818276369292665568749282154818479663283704713663666842236273009790537968973379093662517795316051746410279831975339791651704861188979834156418998505732384020730350075052669695594594753081616632885311572351609352631187129393729557398993321794518158269658073683417584260274184235030846683698193879109933863561435059993549597333514217973995915742796206889856584584493875193805504685107321011420502217815128118404137521250590361329385146997427292035829509205811367395885622247504950811752188165627552137681095618860955664505372763469788466067973748736658759105548049054658237200096293754479296344115915560231138432518248450383276234795400180535655551222536669390799317067896797756236783441752907948891802488298281245615590113512482344591092230909649423933991714557108941323849548468680509335203770970493785006636718394242326057416155509029270066096293813080877339787718442773014833232754755736783313789547145535129557193581885962158684756484475219230828423777756012721234731368785218564362953263092286535139160440838713013861328416662947756104857391740722209360021068158824717926850831589591367302143596625426553706038593255843919505223140871543995210720444637571268651195165483531243799087083070940544241515809139594158704843980567202482856647644447362604252961907705738740354460336586792214638225365973993001974668174157206242597452556046629209551599663117912609702944345176608757619561247872050409609062772362769045711709729061066411540898769707847042980034982033351136308779676287974627667703893888026848748953201438481632037717854462054861859986684636917120883602793194058658599425778515519713798214407689849211487929150179918547200558584524139792439377469676039518101451697712860634235352474290575260172151562129240720796835619967878383018961055921622371480562682714603085506932806187937976625431071742833007749235636990700120567425836156233607547500827789537909071263596294926763891075439575973972560478399510790078797663071024149826759934524980569432847819403219226207098701759952415628476519584752248050578584198211799092030838909208236225141975964892778944163008811179723219354847713753084628828883321692575327835658786892010648865205021985527642612795652759365359359048052205587306960853879351302215329380382709288672566169552660197788055450054177652374955319992805345989662399494012874012278677451052584166987084866267245492968785684175508510910492913793478551456991152291522750377308973310200505007906906671435839262115546753934391579860133029544403932422271218975046896384482252108820546415274174791693426071019927278518520520164621127271231748277979659289204850823018535192067323372368224831050642902153626845618478009622824733150764188329304815843651352730897836727021023023627320228373645802602496000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
5000! 422857792660554352220106420023358440539078667462664674884978240218135805270810820069089904787170638753708474665730068544587848606668381273633721089377278763127939036305846216064390447898698223987192970889621161265296832177550039924219683703146907264472878789790404754884162215226671928410969236910449565971736352948400223840381120644820230857671104502306174894755428309761781724040805324809927809328784055486199364548291211876258248802189173977900050213212598043639244626460770511358846595108675470585833924655225589035474435988347383178988034633008458631510209091509935653820010933047965742556741930917055172805200236075085991197635228755907902043369743123506916831211924495971556267407521462198986233088625998302859864857578749445963115286970886710046268423648178989905454690861391613218344174148807186234448114831209490361196546872767755617886828720269104814092456410341835975604276458161513178575901661071782544156980883359372729995603371371200471049437656291142488605335299499642300699972204918120100819059439140675053265004775533850899097945101551091486907004407119572336026243368132330218709287699196806656569752790422258267841561083376425781032629202687211070274681394351128601502326190649959171897364176378436491219709109840944514895358959103804176941956657834822071749105512752639148381172052604826965162642710094919393332661030104360530459117014557209584714353721948246686793467375904872268133410207860903657108806376616249749507413107077401682180585945526445171409277469230062697511346044174567946735828782261629584248675157379172942724178783105429858245117575511884506574424827574660800238588378492396247368761507015767725898321128632295537044902516387925127590841791744640466913531047347984464996154595542013996317357476301740036796192919942190762895445656261767041799538161133387312823511534152581309087915883638351664797225912944270653557142511737323807232632958121797916679692329687096923901003255574789055099807487061047230646195984955239657612208673866514171699307557691897902675157342075864796345338446835085965490727326321910504064289713096224505162064669468098869917122127404504020684923266241760132910227866687270305284709452526825496617772499645206699836925910690894082637401043498371591126455822280606361394115344316771769934353664284928294436414769615881993661388255577487709937004594753907845149034434521174560594039916268444697661821387470705325559577933196460996662145377564935474169708562389214773222865507182490430016186142192760452307670621142961767274704123616107220009743758647492753665149532164780849075146330071016691313420662882562618283865836983632108760710427516073348347788414796732427080410860761841281888307115098982135338406610652147087046874760995427473673509451553599769040367353385551052571682650317682405743993414862392331981432579182193321898940450865013610998098383993110996355981328001049731588596312131853801205046787642910669365600437305633431984879048998524701293300789344532868156679762880495532846386020133480265279836946393384995675049993707814746561543438930431384237878981847802886009971088695632988347711863122382785963653115132377931373647397429369411499028751972227999545182615488298951151926682112451355318472209990435355949887299922035062039816011086376236539782172380237846650673624510635034423187315338308212043804710999419227821039747552717416043890169723961305549371844836119803565896062025009093664399360172007383613354405094329072476518909502507724675841989412224659392163116352038147362479528539732089309533421910635702805576629720156556510767780805933453631121829561792887673002802450932122778852968418208261778476955644980385691275787372678040959158711733971103165232678060798127609246173504120182666874262805385275843979167609007743380748420751185119102921960339376280986753665085212869255321536787932521882574101866137054328973735862725370178558806639851350386944039604928258820180419178073649693885802597758398892014389747165465973510852605706234402069637065660129535734043582961473427275805630839510667375349259659518575646939723218275780003250593895303820539697558870511543073920827422440516299708739599768461206246629098112368012579891284802505094028916959765079395437191311379314427405135599630375642214527294341797246187597964074239147838993541565834716156858499036773056611353833367087548900413091981676330749041510337597307246885839246941715548295730750618505881581959528992660225626903439573313450666972952115230668696227920947779974336574472673471408928071411283888082693377378077293104110767513639476200610858040596019639058015761002337463869352228385801434957178125581445862930042479404065736859862007914604590255413929950088044710384758990326548097338166940500085452723713571394902463820308668541802838317527668064278489561005755859991718966786449154063570014497194249878920859731254275567514575206399118150736397483102490793841725653421894276769116598153430084637087769510295415136551734675054015239706042571746001089968440498845985477977905031632568489156557231006499726498721480800181770357701502983008879487243887718884416833034708723239505377642232944095773219137582371673924704216723002256883135779230394688900662466182532658490724406767024939579697217467485562998183149665611743997680482094166257463879660305171274925119226367615337524381656217330771650129520988754856467131862602387619964334867961514408328902061082833180891221325853682856469916007952105166960451695430614212305743006877217407155473217957577017595967640563812729153867513698712395570542350999228605975469962186195531354132139126436676900465429996811680550737866770665988027062972502001882845886145344368771455361304414465613369092862748276981946836480550952968681758714859972973082332924094777085275279923304892719633314751563311192746150389219290616780607901383451137066300684376267199885515143681266137319912103235469786756421210624899005553564022924345831264231038363416781719908354140411717740185950606674198348143345444247191436828225654380047860390575922417071802670646875454211626958746795398540784464654140381751149965273621123540880166990280149033225139460832668170930713868826549977374286127789417784752681328371818759103642140881783220739808059714203285309721443041845459183002833408705783138284973283761286182927136745161897366207237396132790944984014154408304074405393067540767126182547597130843470311389815695365971788564022750674237400323621850094765267521941901241387478279883426470873616812485384444012772521050072279315853096279121131160167772077952572613800240684421885453537121341902236379684012385255288607189967725694227433323948595075570839061877450159652184414998155476107548008054192318436948191732631430603548399790783307267636729090980772827355854348032260067472537097785464567761181807367424367391769863758072145859791485033700592994963793369100283444558089838054017635403737133019311293080958287612107380374800660269767842888358265737486556785868822015143046249655995760379768685318192365806469199584071845493606922169776137542662239658644989770921478134709127917460871630220821981434654245065731262683089579031012893360788644107230184805400373136014216229159146992019884148290014414312800903102107833305090238435726779416177246873411503598700003151092815700331081727415624680432977205070450456683898626301702989301145364477416856732512330376477881749036052572605520684370616116539755132541369303867783267208227323664249206432363089268768826650939691861683271739757479552993242406186992420363781929485368098035256331092448215269276219116259145886393677034653480367887126133367116968226450914997055448521259751870084720025674658752403932061045903070039438252019383102480929019684602472171298321628237994627125366359971898374425099120673688383738299653892030662843074547559074235345274029211606091346327684749522046010409575607348155101677203187580089224494752922031093841661588823584993931745149914395557357641584185479831702428523965451087525425464777294595230360946416541997797947136806344915998772409176443137371178542210740572121166868692153240490080384205921192622875440898261478908123698956367080804687628524499897440855677969456909042340530355943524640751677873953113928698614347227572144946891896093294375476741234907792754338349412323060078767610089949156126934038921148370217193387617823370358925817112869563450001367619897145400986643461922197676975930010555225198913002123021780831934330880446592954552165911855939202579781122952065357362914478404946474565003115498072056580360667380889572746464375428055819322299305089287806874537401327100274428317925355003451536693172112088227603942809788645727306979971285649576934354004030728440581746648376658498039958964243370183454151720285337810904113124462432903353964296651109482836884580127588701293156099225044518125460113274986014470437757313881001319276124676116614833528935557503106018449788994378274613854651708241613167681463911870000812845144341406739985430072772303758111613511094355614896323929750846383152930263582535361784837558519666949972251935515953807207838615142130284450051795239760968433198292598921623223582396390262548856855875458198371559008447860086745945709118128793228222051767509371866110013193625845223493949829511199280837860523506412769337548130609594264463425077601147334209139128541628183172262143783062962408149391997187528106367348876678481602342743230027158192404187686545826519361990687336892886715133840245486110982482004482721799496658712257174429044916781194824165631560303473833317665121218052780795958220298330611945164019413315550379662980215357680731124530585915969709973988055743550083279071844959752353594644354789680372126344509423070253995102864458237454677761013556916212309752286152053213998745673034127676503369636682306665552051562491132528926155863868503100849180920507680658265915276163719928694258350604859732273949286080260640627521341007801815105623787926212039424781833439433877206395801115809084190794320195178235740190546595990289617711776195270354051193727229722248442080440098750369411277686593022133010625031862085145076421052980508837197986052557750303949606158442838846866137510968441567309838079394349570013029265177957120625555851951313574029897589283475525334409858911400694449308432874005015554332587793895080241128538758725945136400838324944471346436826148195406004114845870234072926697740631325878634790667698266181501256117692275715291249164821702372884416357600996851100939411444677628186007072278522314941048564396255796808221289935799262208553889221164765220850367706476491496133789353761537391569177822237744837614120253342622508007300513473422771427333106345971803240244226950458090539326689103619381998838844036231795282435495362489670734155948067688515321073064476077859628627852283657244564306449096277517172656954238392941958409527253281659572534531428389629894005886539486824117113929627356938973482935854650278689437014798383826002058208853517073216288725214522205265969614962147884840129004507737252424605074339660818182960296019196314124998538422017695110361380561701016357743542531148669369994130940908368220071936435111978592782493491477052187226546109199597269439152400467901173602521030051886080337084840114810246351288263986170081804888380750203521448348740849154718714478857809574515499505005070789428842888410027877777455981132319940624176532148686316581736774410084063436959989519288310869124517866342559353458242589411390516469440377562665821577845936829909679754548350510473633770839151033854639602753486401635204633884342346714935641429160856846724874244782055113759168236472297793612971080302530934478115527737540458968990354808058309381267323593563098546564376209385371052808344607189076003388781618019853273759498566916704703448438363503416368325266403224174519476678140428319327482851882140344319384445475456765253419659194332132585432270070759038565239668227171300009189122050845185261514627937717597528852978637931711212529529443323757910072909001703558763798612480281463093944391916950129336315045285163539312868586427437296109446101235604877439863299611899755965996608749049271167685268675335991297583209089553296409523640116060078495005377892783750147344122123777907727134146647404489837589487675423294546899354220341669961366698976529978580795899055864050388507083137333076839766882463680992355219727241831735127646189112380485883115569477888101759708977682149644340317924443085170303692214137621194388641989508360339306459037361842937028710758321966607546113761076362543928614316242890754021082233620012309384737312220374269033838579928678572939434168287053763374091938184632261131740934278117918891642447513543478446040549455379834556163353815868441692054518698919434175386663900335756765603264363767906721626620330878425545157208117246381251512669846685887209013144861632560461019513371814585249988176629925142145014710206193190373671380347663431029705222414785030188275106347446241258707937339085095757724316735066885094208761536164440443755860160625837091300574162065273670941888667964570550744724714137001968165215954380698515999483361357521322106131884771926641942395351412233546746461491743013475866037338176532604557402925472279360288926189385899695656876783017186873988763887625972743976062813263446647679413679726184933395074665820441677989806604203937116666336696282569349097348391155869004856032512219241534268522369316036765491047702733521540143168338872968405443296967684036073182435336224865433823598123544167514608340781166661858781733980624199254577853462678039039937557802759942957205281043775666979396838109341118959475766220191217535093638985465283078692370662512323684390235587636228324657161183714078807661162179517887972801841572019639084400269037450381192797170314489871815031319992111563908303017288012610642062005359240278277393918026391717720136125984776933980647063763022608885359937595079088789081791802195768033381968605120487107610874898411568740159953020639098138993261095538868264084012160831040525974539251576403732889086736948366404734622708560040891610782221943405179794550155347682966855320097501905581419914591124181501062255627411231571377358697194374130822027383843815940638571387913337592362330440453487233047240668784133333047898995255221468847973813568083995644533005222551320155267768895412770329278670827490041172076663112783638152343547681663121189086864991380236281775275946061211813342054791801619220346912760381900528012343973598270461499814511324618195658528232044658270082064934680251556511272822083811563192256509945201222666603226059396247019707668580396286975551115189973049085051758765306785758000660424066894170620303846785860257370634352599586885088679654004465187790208942935153217316750113738031466034642429489076322228133763299919641336502028627289268087560036613770607463575515079087982099722660130472907825746908175451952405573791313113170617323191598673971588373108168916968657704150695512947652386134815766967580364762005289060222744531744305498402863048850869557761528650326080941160688570698894762046478500884303973107412774191961697450517110329082815201273888663422631492147090220016940636504812047036016738602290671629816411198202268607961324739550057567564568204754619040423011062371367395995678940884705976859514505017241517746017351430990972615509378334720000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
6000! 26839997657267395961163166474627355122050186046884725685824261445661070965868578859479409748346329836182703089128852632609939583160469201526637034786976396625075825887529584878861523984702266296018595427551580174654216923424895644549809732165397549500287960097044436776098097112285935902002318300817766074944639865419157280524790653203290253917356133633993978535760253069357555142219669129998317026518032402810751448010557484004254745274140263837210122325107062378927575415179640798325598920907738968963426553833519168033920097139867697345016081563676374441238664213080213666256929097791375199485350231595456497900149202746728755327879812971546373369370677385700341673192285360910112728679385205719710580583641371671892447976818829243817888754721448962887123232268424960754147650482415903026606790467209849563662271416952282649322598751397802523984319920253594583722082455006753362159905925741054970039726329277310783778301896111639647389105189524695731748039744831330171194849813750142198591661331367731897270827642663650121154179844927245869455452866090540869550194618984743649127756540595329147696682931012739858611204283134522143082978255200048338318229115382675077435011021122203657208296645354100711784246537108376427936888332083853865732544562471022466209428262367892766813822586238730884186670640599681155203053263579261264327036948384088756702762253306671361116697006843642834443792187068184967415329762543330480264694132001091536593658869788389814480927116885215169756787073551910689019283750895017493228111116730310828166766041200531056382164323390539713295116741388483967745305691786537941332339818667917676571370007419397773475261943894514052312932289624661769878012350676494947730866831924804552851197759345191254081631464738416269147789847963818212281155896550427170387285980460490951645441243497814514002972833731020681426095160149778141037573688491521442522428544788969389558278761397481348218877157739113180534110050023212126419438699172726154425655036249509154341846353246115757571655397172997888622515217725681355507009805113242461343462749671452788638077124750445775923725491807857904696015889810582915109267213212215315203713159208649674164979719727312920576511559196470602174361303899231649894912510856185814740917226239172072546201539584906050452246863211300948544262550662310529984226992582651085151214806862737544037624184170092436908438597773909311650839302124106743539756133701430549822835175979119647543081774334757846025648778275567966409017115828239278838608964398135300219592308860564771741370352802721328544196035203258913677288304583292026902650292022615233949477454247380613913727205962978808266843078181782521529295663178723309967551512319985570114605975081675370544606833051518171905908225228981315998888508641383754110684161710540379573862750847847505118932108687343116259504882707915331968334989766476215094439032763933829258296825600807659383396331656916379451344784802449899227776335723347766390689666241963170367393391210821232042808302473264063265570110727719831475689561404967877066430429903848880193864377881446218231571439631758568428463947148118858717809903748434222683956452043663618862381077166736163904143611771876372531590296726023035330673799952066924105529602223046628759245420801826722083980921568005211239250818157044712443998577051201694386666676548459139059534955603452332498091561411572853622851267073396054099014969366801494527706537595304138848480664476770533265090362642331386328673912578619209255162812445589840156651576378448310470200887299943392878434964998167663977882887221263096306624719352570216017537901919095997174491423825076915901844828299728867068358932893173855581339383152432283675932309139108086846506216370866033080621523840531146755934097307408215697024409051687603668777226806830415433795410593140890416931031058084357039568102702638999494225749379427539899477901253728525589333527959277554441588267988641971876672848522278885432950000713174717818564119905187925226030650056997215832606755915139333987912157419842331744288642889962577622559173461092061337782792800669889998655960852746942113164577327334884576755813786481634749877236127180350856907734255684011438108061579128976722956572293429802773951504460935383493894278312699763923245547175663397346989022015320010667525912457679400581483705019548056855672703674896854737678203776369140756376089462449280006665661035666006921950987386872094427675301957693502233910568049172906194746954125886626269172858815989476855674311523872846329821400400763827646130537527272350995090929517107381022804145383611938945290186877390668234661029799097681602379568029119838560091291614083678024113699512262414222827129371338079435110215172704049731560918699244509728283556069827037741673013342110878227016581208632447654168805338374785489229037504121557638213364969795134613946880198143598744934254049047652000435648260460315689718953671559931084783230022864563599174390561242416515649909885274704141042481089882030312456111711513802717240135242476854435918803605162485964256860285707437162161523150880602244588082288703552459412578484347249931541710133937268355470525564025317366479302263333297793229701722268518487745423309476454825885688563656328669909328960726227217746513974012608523837157894646126497155495847558779670772281055345753896529609284835447408379437232766596325245729441678426804018266486446041738028201210588974259726818731212691907209410450960012489269359303557141418261872878840153018432632743047491241142213154307261531976744986085767078659204961267418144728791274812585877377270787860181952296269435846032835432665015604490686890958244706686381824599477501861516682019378871555372510865803678658691697941102766320731311969158487304120286437862145736732394203678256089895044788570688165095904488684541547213265814760800903192224668435587633646241787956794671777024535537548677669344734391033706602943613442496123847673685078921583639566511433247002826913206025495210184332820453059341772597886542104466355672414361321525270662898671590256225316736799329288004282209029227977496988338803694599926602334918886851384115767529046261566167879067415004412013981026431670302781024110519975053809251441552664436695119607254616839235405097220832844999496406932610321750880717707526257155144479558265577121457883354130966058460949905183541920784685810495511824633564623203622545752285048322601540147114940477282319089885604719594322274307570377569828497611795106065649907604825505236501660518162575599118468736316043306834159987187831281295962021538609891359958084877685159675050166947628016488026431953172281900387230968173782146563168653588630286211011668433441333823075581919363824362932880427831430556053108507046246421196140219366978834558974462588436923645529385600025541518596699322797933616685250622157597463243707453327414164942163090126405769853433010109206938295039098203538385660049440677153410981199879428054550229069777536610109500673593952523016334494523561068250729979121779184363748140628442779681000417566359474204167681174820176728969043370649673522631060265357110075973952347360362984289840155659432230548753561511108669634362621654405756411713538358908721730705960390405977938491036511919613427919440128566811728681598359611378946010125676443438082247070490023185084235213042639811189709583244714164597763501116307625848095008701493449513079965992954097684158860941655430946986067589018614170778141474686227232765295039894254082902355866495212825729079245813851076586228786055451349969723070416315974239445690393038118202725795105519781134231015178521890424346496650894181117354609245262021371137195676841189511521902507335137574217501870437614126135353094126084804313051200792975952140413789628883243769036385641778001621627161816525820367941544906943954307963287899647807608555063949916962195279711901809586155318819699397668051655460229580017948563694384203283404278464809965543259459238690367209746182768863741318400635630079422528479763675001256831936882203374586645618033291782515494021505175038624781840272794622469978853958785054623954499516285871397211907425386069707751534411059083177014806958625176529207667888992864932992747415768392548848256304173508923017783002188862774976889301189512631658135171879154140083392136382819310890513335161935706439544652866330201623448052563814824077603326355508933605604424600448291508530124857820023813927063948608641347736250592506112490756973272230629775646381758420315977437335059628471695549795691293756712366294481331175001245733081851145135484800803418840241315976099255095439620940223136901994965329154153506574920570848498252125571529713557668092811195646136559978088820601346208029112370733158792968907458126312371445670688267987605112516475243208816963302038466447547681765253439647124033397270561625609556398590434964457944954309646474894650904853218921957202959530304641111659297682838865324856282312400884964347702070305433879310515186656471481638169102808581722273535412432597450682370732570982895174461945607104365181581376611951264796184795738549839706427908331191819986570317688182995627653773550817877954776508879127635456487418504926881654920604279454152324325660886511272516911299135838141087303316226745988807478038370462171963678341308873095934247673904776115988991225795671253759564756119735443325022586469345409028644380587414699081655676862737273868437940818179561003406992360965199467481546972908696465933739781519701659242335232356415466038443338391940395961378869736803878457355977659711442530839903609720790079863076058058715425763090531370117042825661461468549528115981158562216417882781509664853084610831510279505043600822370480590602567198336194062784913269731422406383973451453248248130283541310749558344183861427625568458608812548097423428774920090092328407439640342723637863396368920858582855416845188111542427327700990645690098745755247279065598056279137864634712015208857329539219829853397466428466858279087009752509271828426898571834909681863109405566656445800488441033946511794342431604565168864967057267397568220363992954730588476055451427487747065978279654894963593073322993554421804132579318498274537173107483494533189509118093004443180291631727515000642142157865267493042953936254541488985234518070473671110935727926968656415152473303726109624468629752844760557073833637378230650501221082633697198807510860468850341272344748512661777090799274894787545289009052176976539368742406207723182280541002309464890868562316823514637242729903960306443521003257332856088639395551668126821383301629329766797786756596435530484560778049737215792030674205303205801908027014371344418997505156595085966936182094633009369957887739382905617186959592994679436161215891491201560010002303562861512545655665533747304126090814958091971128086726263385122624660641970132348294803564477594695720793602492116938354646938946023345419380616330196587711018244015684782598722707267350042318261118692659787623138728964220486865730904538203308544993585204324572483911221951329505157910024779477100406637724879026557148888479697973570421165075760846187884313379621653231257431521388920581117855569927930918809429389097758561316947040253818657366569583216996595880452085181969727435761566711982292456039046952519493321075973470394810159148251758971126592230257412888072670817718837506735539095364155132814201524878117711434829903313602637604260588611935665177670745833721998953303904895239132068265377922420627009779809889466755971872455555671343784690265355346881170795850018502852129370131161465211107369431679795035652082821361480112682380161016649435674734177637483728801571862040064044726291609723825892762153360165674913318950680706277824100457440373632584431075427676529506977563628228527378494844207021130124323451315757493502535786767998535944780419236802727365935448267569554728569057360166647462125575250193177849662065112241470787761620611464498899026682166757218791373813761401747102822467889867257511968031588511731267040532584303876277822386722669253577220369208701354730560681156009035093927791766748395744314207149124473135012255460731267410179450581153432937372865433287334462578361944819245261635417883590093899730240806210512987059139039755719239516747955096168654356635774845296249238132200083290844308330305768505442081037956814356669229273485720031048841792343104465806889538587267438148348731529650107764155019749250703132742148481239788685811391010900182490909954694363129618125365471934712122838075498656865915837228681461906354109534852326705549753619056082390581591133714455250473306727306242271394575288348548899421857457448892069402326062432879273585649517014441861740184183732637647917145400133596746174058308263937278934908107861989223858703458125139822476496470077529071243260203480002394510173588464682577409130875845159623990027664682239590745295239264283065594285434091436489253442921825135707791449628982248064677091483840909115145896107493834857848808071214338290234872083621079923598950627418060690376874046447264041880157359247953759911121569430096089834446296806860114670291023641209580290186092260745512341049839125320156048602734609882451486484322548326755005290081487345389836313565927731311793288362110072115999613152199117256916818999608708250621912549461311254907765260632070362318972418308599585793874193787083482250701523909384993325593106521905136810593360648610894682072245554224301126571410508286122161010810045817773370919374379062289989596224173452184331945051277917796601154892023168491463596096169598616821643671175696854206049100409006169078167430243904473349850147863726706105693676072525164576151294211311629974748183761004606695897909323902577614980463372076919222259328236178404969041379181515374344242733626249558454232062869892488352165799933907917509540768234595160387324388181683690007433113673985430304052495927693685462083670005908633301178630874993739635956858976116348960179166726796605516490861400434448117862153583360984970496289282786486924122320805439939104334341019564178399582455126220556116076741160779832290603975886951147801032161856144959140749293512916086914534660610841694647041611561923866814230934483566399542264717552387574974421387272230796502177946284221874524930330498681663359921010552038845486760571928329559123276961732134968947802118912623447421785908853884067148125440069829365065220130190616955378432426153891483828105402950511840637876877234184400942653059494517924357669899733289658380086660623384775909557622020560227651865360538523553843745107362962392805230202092309660311635156423561540681110235178761462251944120644292834726236559729720149026752335625188787684395265448115729660748799089328448221254102231043203399148743725714335765832853961835178566475440498860100869638052637605743373122008063627879684909029232858931089061916343578608313417391750989970302069749103922130012341608004119286343965424842059261793368728098393595453691033567327108159117557620000953888329412084429827988048791349759502464645602759589914538960491613793478214629274343372792133917392650045082328532754264581760884356541693444000522135818927662083734901101455655254750765419245440999083696076591953649097658590724853350795572415019126863241169128496172523992207344038102394497164800269534560712698912118761394346980783745339986140508718446774224385072467747565302711974864997611631470554269949908627401966447196716914845339410483869892524887982754042429506250673628968228718414012061643077451598342070312729529554773622909551294617485271223447001479812256152081338761827213750484285102947543191716410061394064195110279165734257137718743900404114109584078987879890440446197685164429076990775186914399945755358951691014258339827760688101039687288938837826076976979306089014797721238103646612279704260840216938322762615799981033899782421339230193365498507592907351317381230515558484120284158045864263284108686716827733330001944050406926490472871149620911685246815731101319508907675308813751230736133469124878367785484098823175312278896475273717682187775471894949719361716988670517703295238021800981249818686821379075877402467161140894884709253873700243744595822568080593124662675402754125916201532030537520491201173394159061364948483059596580316726712605307448924989087569963854988789985035890309396965302398195067375747112091617600630569062324899570087096741838973750680880832943381845733445043322194272393030455106292621745244865065398232650227634039186524858034442435811685990620469599080320964512829736284194196458596854413094883125022632141852377393629837683566291882367008185503452296814405791004709850786420099334456302025779045784575829371702458061571747687640159115139743805106923198622400343083944895587534294586812991787254524635520715077762098659988456250623733754110464719122690522791780240030691459123414760105186968091990914114056819616384834492304501039162508627073767169780478967830496186463014833978072637257898856860747927869572485404472280339434886585112737960619322714849939180667763616427956312853138705840775032899047093993945041239132207332617958940173285759309420189320639459634009108821270840450430079776452768788377382406303880576440235086778433484851147247590306073275962761489160541273044410581057507318552527566462489287493173796287417367511276543141860934682205107397952449995571915189415486555443905015245009447583374122394632411846254123646430760547330754177908127719307103338704379090318774174414339548060789758654183769135018414808654059391380421542898999289131982752881304432914119165614021131474301910193653981743294360179900258947239179416931113274497477055056916721815325178771881770427595574526979969110609812671390052073967371528725049419557297254899779063252161056890215846180637435165931765123585887180135444817679943914033515786523995512366445378614290524518063186195499410292577340893661060140730842547355544924489906477904545600765784171496375614289338782329243001810188831870754174818902702669589149513609444235544045909168745079904116721850001084293630774744710684207973526258512853651361135504092112982975885188330480138649740482126293824415540863298341430414394251739591197379088280472305756923345573771556994641103276622032051635549987509769751669795304800617960120841579720909823273146247520919870094496829700346067978778444534370898712922626727560847873952959479373409336411773191732428874668314482333129065714938545538758040915539353017303882622304962799500823467650949423108117514476739529568772483484088052527412492835298965051496826879243767284255331909921087629905226018279220902892396229790261576968836481928703175145314086183266916645372130046603087776005949156839867209518985438312000494875144235247146892718470881434056042405573649073820901746077355841968175323686311247214811449866295517680784346062675700080180133241281272872960000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
7000! 8842007956963112247864993696897726515146668063888148614063859617175175754725158649547982070366735592564635779100693064454178170961165752167765531817139213752103794651539384390492636168838534846437298449406744756476508706043448242696421599161649582730137919744173960058745503156484236750681100551779049914848885650142637380063005458258029028181186529979826345217904875468785904316332265112387938639672254223533573193327210944965539025610945034395680899103907477208996101593045865114444196767132235742754582381003526477608451190796731555803362142602285756979937545243909457235874042110187883785273337882048580752640943965904045132851304920226173796679153992666480387236959191001668175647982690528811969387561291151514484716897379863560430488762024469208016520576844153800946547443547988444323673929979976425681778548000318465404733311398456692655883988018153215141483857339738890618563250737385855609985481858844431849430640044987314360206602852182563396473431341949326406990788042014146528986829611680020927770551645063937236393875523763882980698155834877885570464834887214403527613806603874035035842378811567543978436182416081255413171254955699983155919253892606545822094514369667806088854682965864846929015090559171012066420663809079279792972532271398769231017290400982361484308650813321962806458341044422281378610879469201234982769525322942300103063592007385662470399869873889322027588175767436845753111326351331375771824892602713670158430550410057726579046329970102843722345639407168583975567752007205506131110761110861356294292674808600572426981882015788994401461260659121671568622152868090271415816338563094882579211416763856973775592629908794628457052517710417120267481696217048902118115125605882488633885970460765348819872115584507468587241235694364474351592396233305833293632083248628644761405430111558758624035958582096670821062268201536940251875722431910866217530509249522090384629909059019727808549978649211796834037499155277345140383958733236579130264058169024644076078187735460888179089736898177406096448784487616097333930802197031790251162361409283284240601000295120768995192920580120152200259199246677059479621282511313316843181735056691183920273117611317112801980061951294385675181292331418681345227295964218912032304207123457253381142044752764791607747614221937274986120855600184517668312822490435076081691295863552215293513572301503852263294858892127294771294822729411748696675194436857982470777255694243051477901244805500830053137014008164400182344143596348584227596152052211574462519515535403270714238652416208509658061435002706298770494619767814978821366569002196288208378908693257956280092472411189962114278221936023989601788776938997557080304634260416434749989494355295058878635663769058501600260317367047665159594987503133823850560492216858748919262953169998314444590379209501535394692690658432871437861942633645638637138091381848717515750505444423488345113481084886974445898178890195975816126246915618498528079320848558421401821469856620426217343200432831040792604352164356484715310662108947471696692557909184823897498276569113569949755034629352092582279466530840152019262346749107273406212748708093568968586045553827091900900861887263842037884945420014371577245917129570378021232830046487903874044753310855219828245628085113873321275455272470433588383735394846636383604600473850069215837869293905982564295863846812779186900468275169367750371895523520226600290613003458993439142012174628044624611290312013258917283927021650438369208310266411796053502624775891072063018657046624869132893320446218568972657910998268776774395737926198284857511418598112020655695096411472891389500274800422429847267050507394386121944962297412886796095062227806879431705939009075863264057381993663953114101557360914958870016279029688196656773837860632794556200126637298379109602404798818442575847973492506331882145603107582106413695437539880836193014800253379822738014794915699821130249628149281436638565551908697126344507019279823765912491697621497302172417880934214987528715743450659793778804600497400584893293844663778329880087625383573916035873157302339738234257081911794709860677947013122214682749333403201976889693678084593155060187502388418594359414885973480331335534606175208197985019466022346755516750458368739823148921958404711266305635524457671282178245724228998100419228433521229716515613544038873782447633761330637156923679960869608573936927659682507718825770333947034126371922516944152252362083875868600924386764597718318182090480102290713119675545551643468533248755319990451701820058519326755032637656406914555970848386839956873547286705839189039814125964627482830929340651309314551660258298763791714811598562127907422291452195841044997796769983502566328438661824613428635077462458711668458709025671303283934715061424258099218542654112369509099772366269879369176380284082324820182955255688669845779043072338339536998003660818964719037885171177238929800353649662420713130211916209142489285453451105601980100872861113799550022103984273760999241052905774946164745487508285126538180261587268121834611622425013386195174699693073737629643895744807365329080259010601575969326329903210733144456032166204932138209427032647629649123619921157625969382371617974490459448436163362030698687247681206945367116937169167296358437817597527700432353937561546113024655435889597887204261937443656307072063236307889796600213047518289195405889446912318445469973847024469858005371965345728196768394306557150364496640059288072753899298366397532079263921876147551816820494105077792995685458506470571277610222300983409909667197632059627713914622540647221860481906463532385030847241918734752936048650745172841749460072620360204757629270589581110119970074345641749593655376972375702154402470375543371274882095123401020372911660045621841753203920568971306384963460682795141387452657134925253315363714572752387955510621439183525338047972181476683295477447576141011732423681010390229919962653364511549798609032752484505186563916391161167858306521674510768045222882362961469344625788320072376478678862132150450515281860087274445411519618647777050918856992270739775598294529375612661136680456187611891522664755381553044168817376752714719426093162756061572458041836294049654591592412925945677095920377387910800592917962615135589892143406097194862888638612226221607212795649691727901443921062398798491651582363771337866628214150609547476905292032766180527006210218562107726705655294522769166693405409784447807841980380520647455130773843989329917896404982086822794993035403290168615629581444217769679556045109873117376252867255073205919462234696007663906298962209329959805413934437140697480425099640763608017915540368053201237694819804102420946954806391582775602861591944892575946406039364587789445108787873135533375100417108793007636424646045581906792352748202787840636921616892624656636644487435407408294398420039271300035224122052470538167655367651436397606778816209059946503448080658456061421692012489174331210572234357126539792750645878634516899369304733276327577979324540378129811923518915129397993734786296667634253871125180483597971910932030897131353550045669988369405972212725497973424888275603687611577906074704902699724353321155313123456090870287756924857081031037126914705556280841379500440645762818583293085216736204259467989654172750621933739504797635183465849904565860335010409483850498461100224648287711109625346067241439286586246931112640332304279552304980859585427459247513356912940253530890140401845499439913711289687438143819406607305545360731656328994007731917706468934069016715102915878838388887343905164662717825178185623887434809345456647266313478367736152637862569959297383572462071213613206820767118695060174516019329837431837396085008807497031854638696147400056679336043313314531173593111272220465824177480090454905892729285633009196785256660078156295158730147765804596494310454815911086383366730799118079056670406720517828380860565501996816985809809259882618671255864501179375339735017158528579896499464395836899496310479879811792249949620173091138228854717637573439749597589905561316418695369388564112128235759823135603626423435028930771266769063098087199197953342530828107580425113911784642768662343982428347496384308615476027289689975161561368341451576970998980118486666356074258479747949436520306808734340120012644404535406326793221839131363837589328822437786440954000915916913826758142203491149568205941758687732786820063215506321663803259271407420979270414726640159850458401223832637877828728575585847078974319153681146579450730914086583154675083441064558537512243113986882494551167315378710589133362110807667261797859227314924435584761643523077008201981896036591171491157472768958092393197445840693400845907432512551336975554223570164273637043212034969852788812989539526676062117671849316905168504661290515042356889868895746686930270069254020687929392853892406251553600871064117890361962767532778730157952534428432978606703698373004647474795024526619530564958604679431657922772240120825721074089342298403799640713709403875020834103832312470387088784084345863171276641962719063344846610252396351578331508106381171235011419445491052453538405984003924044308581111866591871408310071132913199851771662251486081720435217044696705582813615351360235808844668829213080886663665783526706039279283630860103842405954890467324933808950065590146178234743148560580828057661676254229650448955510421552653232820634578111988805720691675041497237896230024544476710225315967181199647094405246948842156350033908521579509770461962421713022517471168553650583627021101997073312094880208842388234622344395861379186284607758580868314219014570775024127006827333813621308663524932597472050120426064449203238065131899050585568906611650474672449058221757674356431365393740764260505354626189401639735433438258042806139878149564416743303774459553478963829645153251859893832181564277778561576024909771529303092937492005228737458904622702047905225725745924759265173791063965860533905455284528561949242546209826314415743767254553264661686211075508774121548453589969572749197766058576609631846279395804131175468948871800826599061320069240094169583748014872660702435901820051902406230628013059730956744434251949510616806025548818172719729659930276217684164614526016875741127404348765963689163830620494709216022380453485600160405524490642402632025410484747137235386732652232752236177609174138885261771162912046713108018305709447678461754430673358853665803322370749018996725646355545033156494379740474960866423275910545764660790879011617007175611203785213222820552261648337998653447296736065109953347769865897998866653745457948159026423098446820451198009607350775408599145914089630194175726752197736126519106059735030310875429352578381472862363295860258036019033610267279559291831556149561100335068317590357697220476907897906381158855811082243209785002555423176805724340538974305628898639938045062180815083139963414156732856757219026540986108730855979009922905206263189907209412329125650648053090080845774924906128708722967267739207112115056429530787422668241520181252130458960198339731051989906389910044265380722261892417493307023953377643743380009353131780726096115941073384803736335759673140183558853440828446700906145095389715678518257037878923428333454374493739022355020021677316074568899462118915462007288010275939191507913745615737385554523389546276528026337012314807043775526231634766169857229649515693956808883587670323834113790884960824807694923198082678108278625853678908247262243367429609503272599790030374638799248889278203345697674373085629085582670969247115293337241160622736642006586798040218177670639088747762351402878671296759360410473233115043811253528198352427411887427398569327188420013688757802276094081448396878018298577826122723235489507636268929512139275147351121739616643606381808260599808283592605824248970210573925510317120194402208191725398016973923036545362032844566446276550220518334282238252939000062857760651722517037755260453217678507731303348064380195355351189926604551120374208515258481644746254865921828394497652830208456401972049585497195890436501382796841210603823370495053178433592393713631712625607812398685788471522674869077512718342330349433914471443700610365494010605485056022769700562471842481180425793626844559012718514981436519670301189557246200987832284704855457887038730287978485590415989820295935001082470691301462412286057510367429857112021232107983042585660282403002471004039927396247770627310502368928834839108127100127591466536370475614801184392200060095727565270790829802012792590459606121469700382786877588504653040427124444269188372086785932043601903833256700840591967506326984102657830542883323241794915890949017033053538293704497424423206603813727956121729287303747148983832915146139090032854229974673499651406991923992843184532551801338927616322679905071007320992480345431992509023269288028937327288336810606104571724062847020363685911491186485619927226414304629058490723221909730246947119366605050872059908029229434652500377193162921569451468509043519811226839240938989605831100183071279744606024687572550415766945510654206393227193414824888870858695909465092668088550874015506278791838017368713964039921215040330152033737692197580015792692015683151829354073994472332531306869062421067869746642085375479344299958792387236753048663675344819567340017562889064789782603230186734381727040963239371235985743665795714601298322286889968420313318929363282436487174116593566382545284159176096231857032644823701156827188286293820000588886928515388995731487420885393777056327260015900246440709859850101782311937996535049626858978666326747580205014732235035876026218211232658316944683112399217799624938866678425551889658970236463502077554923179280795897003594575270071423531714148238356971302777605133052270554682471403821946433782133389235174654038757623139890591741106212329134382553613317016760724878525836643211954199824202925828980153819911619492351326913909012230654367009862825763818272395576036940037966861445984833349910599601206139205599897703926738691824255744161531312519925753916504756146657117949653821277358370385017782325242837879125827879620018276625966127984565084705897974704909163683495829491717555528804388015538020635445294733092541715540712243367579782442568701233714558304190838924169752746151512514017503691268326526031096968761427581051636107236218435366175901191486666572086323442175661147177744145557869686147692970984423431321012842666564856803397408302432517594767756481793767846879783632253080360112527761565940301824955421028197824603971606483808303852187627299919036414170094736838666458138093112178647803770483543402720555724672085615330318252121037302989006383293139974703869616780677108950503206737311925239572837634982963031862607920370946753055655823047228051579561925934195035375959471729338211006764404260454744882372595183979521150395869780988176903633447944372420415634316176392732535684677530587308640227319154181384905277981743353957927089759832286345937464366371816072922410307580994569048129860914064559145606238486593401308065504095231337173885985667109232722556096660067523258702867306771208668072414736143322096311873018314753143211719636207027587553113045684216013603057103425495751717631576533789853818717848928256926314476193311450257802685877968616780446657057311630912756542543000128156922299988836871646089142722770381794497615799721154816130335181005212666870960823502062657033550807131971798414171093380714278658430126450363602443601852800339030173061328728508815355311917814848306527390616763921359714469206688863755779000652416935493342139253265711965234773055006806651265376387383080900707657250201503873476332533626992067931801675040955619957918670860919566754959324283307488715597661837315485713226227634796652941210790519096927232367464636695739466558653091439470403618978318245245014032832372575779874721440304993624845957742689575091186801285806103804078547869563525581490497429827237572068489266813323244873593654146034708436716158509367521941420769451899453718871396641253405191728810591144060940208163590797006472448183361830642174534696354536239004672991764502065294331885320999026150879555259072669002049626712576091101480392688889497034559584620170654396275788885805937276773412250869306936120594669210689961158075882659889987934746451132788812283175647868236562529818639465472990070489382491149735486131735594584348551368857543032292336404546877793610120890690896598253055033721337723833810783501729729101103073656135268574009579240644996897181681846276823196412672704134870990545152362095118408854767031519179986602744766530722971358631785423695307919242153327602697445128796472631329222205540940459825832363180368446128210863403024962298932846963424807491118149782324581088374162105912409998414005885818753787030710258834172044652642868373235718297618517009368271902305917975269964086599524482063419752022378552996861488101534489622788987234532346160220546871768580739172280409514979530643522846459162463631651133534276299863755493301165882552919926688001500492480138360931648163112217816099215109900204560565798355825095250870134876718920867070281404081425524783641117898210252772104396203239216831126172277297473487026393738007538368287982810020334185637086168175869654397729419226186227097460322175997227525379873684182241588831514100405171632451724964534357163485352132872684310165383240239049326101273657010810922730272486366883238826552891884412352243859177583541190066501978273419774750409901265967018588007958553076711632261981614625247201186570453449290104270982894306595886088830020406122018186436888682146678376648455847150607512900244124113157707089780004805812292396307480052961604675260531558884311612101369685338016932998773005455285740235427524352649646085168908964618075111729714647185367199093686381724855918123737582800678016283139105611441264309914490354454979042514799965509590264458199057434664384884514973338721948228424379983973972932798123399187126221984463214805241861782545990725355678116024504274478404577009622438882234020320364136749640979388235357861691472231989715687034921481279441054865409631489165041260721141702703986408187582127358145352577159087898554729658433487025204297868124382699849588234048916631307295531741903186183692448056209260567267931644941714580055660736679212252780322738261531612884996229263094934855214126627710738102612667104256352069511352239938211172511381920046031038771399811320758298159964394185855115310002207043012325625007270591174389263486571646606875430317714864454680275406144363207923935001275388215590920610700669931440132167224681157126546481839502287808784289966590177994634972542152849536332377358475412617143270336040960423566900109253285428622070862698305008908589677590131609018977263682696316200643778843161735099829740156501879731589681401567397335933486069095940474328299667412623359974027939434951348927750773853681668019069399406781666625332617457302397083389666057886457808998619395393566263556139308323102093486249806689444231779495151012819518344532257625430709831394295201770268450908118975365461895662669733434966259208685943529606557683652277828513050767665902236938170346206456130134138099500885388303539848485203891162641023175078504223835115948176979758943124213999035625054973959504353300770935372427838157664000044653540547828547532022784160093071994927448523304593899163245416824410973609519343210127500332877628050096483671050527705522536034100561848103480483996335716818909945346925169328487950159610999747607551344198102121142088360726479601656367862097657327563455396637196986555508541448192208751591270941291159097576872227102181516156966731212168210693375028192325704448378188841343502357081442828839426106419439348617060865469631902955774783849219824005183982974689284291941589065021319296582424045567925701038356169877224902920340486187458299591893240464750520691144485979022776425270208743797951386390199123936558173241632222488944261745402847894473976555350081432144866614637857554591633279934514853661464493987403205997397458369692846605597944248742724403978104973858531241060728950882595408820363395882436673454787853920301339249229909950171481442050639388410869597533259021500918455874863567839045663976416550670334786311490741901605722314907216319854101770862782137046399123250504134667048450235296155155532642929688938862525609520042526186890874372174864406092800348005291475191366197355754323963642245066272789903719673247631899030917848880372932922997891885337201170125615208433293006570268471793133047152162269773600855259182812268381714257773480874338784766470396928127076195131845684020898459540348264882218260268361992767624802415559216416749912676824168086656742582578749840821037923616040451639582694473651403606828181407325128265288487073849511804960076604842288378815705692213410491992226122252021671854567736540725288480768171418912859397923681577360867062407113694488534144972062751589549376557718365210148420852186107436395121338364519129770959647257915550868182766324827628806648160273671305559728510106052070366994319397187107942866241450427154345178753694943373593305589208411575170551616986686312197944530777574773269089363327846664716222143774108498095518030396934886290747534528476719126081622432202775848309958506247059781647350681229754569611833183329495250354022483640430199023657687862947271378635608442934014868419699609344423172372010707286132922086898815551088470743069762511629038927558915846369896769896518887810618564111049567558758257755443696864200777528280925377230604811804584120433095001773186736519137285568151745093016404227135682008633765652528370550116690728224132751799957431390657839629977713722427054267728901874756795186779132521352842928522861848510834797677608452733797108927445053436823143164037887223448288665802701402638341041319796484158181479455910768706723755753840006093434900133133971334216022080041821343994592664967160869528906276828647971887128267347011231166437095521448821423587061476663501326128146101174347401691870497131547536408286740644172308641800349628039977509438629006224673218460637862511635092031244066549970562889597183158320132317025413304880693015158191541630195665087816334676815514083163649442676987193953772545057668586006975603047679171867429717691058434006387190296527571830707967726165877262012390067609824498873411211946558971925135310993752064000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
8000! 518418106048087693980581979742772698565110053193684177067236115459542947531660618755664354476267848215721662717783424020914023554563607596661295109473035934508368049334529053780777284244223430948668504207545761629848697390630280108045604778380793419853373373241702156878307605146518986496547492843108129850676988443139382900553680505933692323370157777611954181395779927796928247982170444256906306429759566061528421738794329359339468182701866734887806167541398761045774894243127307541875770767227297986629101155793901393578157362232516334761860506081091521685258567831245656488623686484709916159918400410323236342739061772155087262151227852898002928966166337781474091134426418627368180539561760331968886816947921436631109695661666245684235347409472399367755920005965402229576208803457199256068521551553661311155524897994758747603235461510505818523247055078948496222223442715543838081951121783330139907509699790888717222883475396658118272900322097610042509495611276615047357641584209913883188366659628343501107576294854855387214469504848112747596438888369446475019134111011501343192924809570928328743614679068177172844133742153895784205066445359373179364373724503629172015811671832744376427799953456253926254815918336720839180623672152524599032798876532000651404763090402904846377021889409054880075074330035915746013581951397679234264626325716666208358863877857354875485114368978703422452801804745912380473433938245758777857379720962836343195734870302933762389927964772487306499320425492053257884304114923600611561065059348621932000191044913247197002112598116849303073027497851336208821228098457820771418128279663636281919736682853516013750443872899773693135004411493851083885387919465847409039413722857815932350472381855940113224590016771502927089360042246524851094663866519732100544537984474106431632382996361405868123491087931409556953180023467219689666985659043507648638993185555032391476592989603817980797187079326745529992568378670466402553392065589724907786307976432282923508630080612066399364394087362940657084861741604238603058000177273737324939049242427069401233781239427064894711207138816992593324626422093000165907366304531733947379709875758419929746468759763347574605862736219062719162802934776051324915112324675051207899522543854613472700966385681597483823240290724203423746000777608901327855517703967794926759599318188419815608963705073278673613347503846276358172661685186400054227521286095944437474628828815416752946797387377803993132307977743874536886405196707116428325010008390076118085023509855901425677881215390191084968822857779764810461232801215225250453945371051887604983603210599347390415572134748871996381136420181183927908519090943765868096350062829224703049539833784333488113981222038590365224970636318615322669160702518145473457511308397306484776527581031440408269743653475030891979835839571688879568246299771375616141706254412709734535561698655132591562272543562733728037125630510522338495620247153065406673641171911247025111599127131919278119901946202202900420605841700502137363643400530449428232262208147855188442972910525926948277672435128762766226623803288675015950568693980330472897251255912752555086747699074336716429453545018715237297671770423227870308215406841968509923168373489334271228707173663770605020100887635151376402558425283231675724420477333804519100913185175833311056172362915706560173068715525641357235043852576193149496303091802382473809218898067301964100240032236672740010018709023718766499325451726553769181857598896908226610058781617074343895193549938022684502115926717558203051385840465551468182009736206263225230080920395415836964139134077374976540459014194587173401086007714588648281935796979127857978500176487837663541357704306718962709596323862328424388948855952593156121407796924204343433792959175234253099019663129924355197381560125307245937875986131702018922748275714074811125637423674499590097089771168011616237164413253261188532762246616357895677107835342651479722286390903979733889472876802052433456727054129289081777687203684206396848262729368288410829212938731059158883944802796422351899293854805220151052150255403792924966235904976721084861621417331174480499388198724665233026853951536703916582582919750767810071491528241730763106657483215591266757538045028576437215752613736240871407716553987134688010272333278635449781403820926117624889904200595388058154840847900041456449428020159837296817601709003855808023992016402258977370983537506446597820596498794127260024788516867242267969836133536982042478200975050300542586831915636143535539923136003660639505835016508002791960076149854255374904829809498247370234097701599959470899798967406248249793462468470439831797317577360617651720535704347230501297960182193175253193291346530884405078339627263638083422310621128913354357965301032620384871261082289565878660543240680612098488677496662379472499464023699794391110892279671187896710367097037598399448041050380729682279672602453763653688192887619853167370019386672798826266516085498194611006083658431522287545960922406608788280515234278556000828199933743772205192621580892857410620079364794592703445358325796124522152084379129744924850226312875933156987040594270392789396123562608445234714840989446801247212278866800503431135291309307759145876626507928635430364200225410988547052095805754729672645096735345590415506781517991901202071558500691814001155052086236840275026617314890579379132198308370863345605996821260052714506502897092981110976146098275576586226203483495564951321636768860604350374203264881475884647359468796336636772961647925528531991731768332139007384709833919057122055356801398113715260539656506222495557736309966973538283601594885658148286205703803599139582983568726286352133327966713501195384738051734513915528283985721002160794007854181272612511407105616970219836146882120646691349368513840569709621572332739957486726516503266184495143594309085324288809870112984334569382155857576419592128801325833682754482561452109640363623620516335170866014853670598927017905603375812106835560994777712199603174038304905627990760195069853017879114027518831690930907538010142363121359571196694506978470112164318189264780101629119768584529025100234674156440259901784170027486286525109206142134276060760715428793437586914648125531578832014274631894320051042067384055994350729793095948139393941954008571405599874170789924778895191048562079881915945916510486611667229874731401488635641665030418387272838297352149377892194611187186278877978779279211007733753111500513230267968068279518685349583148605779157562329072929840925154565309846270577867309364173018488325424599128280457806290896059221424585478978051880136307055948197052973839179729703352004565586316547074051590082791998630472336364275772835367704607434655555895040987462504534478846156876872291879443015135621328868080447319311789197930545169226056320179608446944334070884799048541296978551711521171662097208976028515355587530564668095557844081247818379847124522100227264717773387709812893047216734161737779244808671798863169603604702067708327225865208590852238027346814235371074353562979236469861215992536432381883527804878852556904915867492334750077615603294009371645748372619280000271819829207466455481586803576205469340966077101474742790958713889468504699001375242050840536265920344049202032712946232990628957314443860583718843731796367411004363105167021608731208960147589451175789562418808058742376774533869681099583595663570162510225185401892197554650940553033862784973940813082943528989916245759636884603592922942179089834717845623469427630970120264291626665503555870002230052700901821226528604521820641241774988412942718933630236545392854872489624025374107977924302496359457057666312900684105646750182803436192854844637909465320300432046768856779963875998356086421228482720653451286883075471880601344391757519017334326614159043363562037414769077961990945245871144350908034086651367202309658137319863540339320894196168992042443247479685739610871273779670374735288368190961659702683553474243684725516840742170713546527465351169633291477837802438109913211756794927404037780080185203800601571404273737200897929164294021760807460261106420721599900919392025243976226130332918724052430703908618179339946687720816993426189782921302903199243798320405892256295397948604154863731053612062694772069210460875609282270030938757227006473929490502103126325660596143781824160753011043140715146124558360924089715072984204779781835197788072317871999593258891547460748111727314324481807111150796794167073425814372980670823867211244790977107327425213589275407173839400672106380711507708832249672321227800963924157246597358535592913088036465860815466730795426616145137976962359560220931785295172308998636316463721676985771992558103408064851104575479435430211345962993601293187655441352782252902590527926522424591924205553834577955560496463970158005509835205933974482452101740740722504986040233648168337259827284685492851196846428036864939521956334520888087080158055515711364337412372208481630276916412221639299025700747752240531696532666686218725628350419226612214249912112272038315469235184919023735421374651477713899689902574778483971902122933012204453469461940271761205511256653508875814564524920392708526639232774005511110260617547768849421405758446738144625094052220243536057847841793512350701825943918747835269634297284950135911186919570803538296478378378375428103233426388310703317519101240879798544735807781388066249230897393702580086086491991864740301737172761764714713662746149363926422973044577653378175676090886131560515484137237606062055878441613044308279121154983569404154114872881123734064426387876102804973264492010438549956477059902218751719545599693274865317849458679217080779079532985693151854656776943943252061408393979950312691643352239662864795627434085279151391438546641956515325790952059232506729321274234501644567127828330885806257158025641500206849889991763710190411488627846123431332358157438670232102661280225814913819758864164673367639545014022683984556946285227888856016683422618517101974328190701534700049126198814129169847175048511704672829315661413922281029953877942958812652836414256893698741612147518053774066461409706781189031507794742605730069216209258121084701394688592230323495697379343272025567484297130963727950273194560496996581585585029475502566900823507684447584035332981187083641753739800475887637586877622746093668975481375106685146379691944621180344490911927307327384315812738133079051058069508430986414194004837974027668443177627531529574101286800547796932459656023892413744268103968044072911554279193040563950921330913594764707025579212259585961344209024518561900210576367846373949584642780619684626102230192604302606503700283459409047534928062321098905421105217666613170862746516609962920069953712867033703896981865630777821300649718919901691320027309879547830050596943725479115712885149439638030706739067546731791062172306957004767812540061439472486918518516851293625181315650641847909824248114795011763940815454471436935179199963557711695475074709960961068490924704550755554457069816139326652496233701415986857255906823801557687377710351317046805581647136646152348786681605128607558726664726508570839500813854656558562493531554226417140080274470357966882556808696360880416600182819640908410649963622226244348003429756253416780756119297686588603410538920904746114367613319517386368532552845938173895082671956689854882460963673708162908311991056629941819039621522066762260038865930820655028747661997523265131421444018870731106820214801084200087015858381566667949104018354215100964360361238119760727794008102384718278419383947530110799909401404187191523196007197256298836219192838192643694328614191275186771199264507055483995229751991369694991531023016389273025500153603021242089298570020310405784358039219354201906241352377061555439595390973816068142724892489333730748057037049991012057306143940928922490697874394897503031240271758315006048452158054994291318216885552017318607217708706617926694580356605384789634308661301778820015833892543621561686972258078026012470379563011537634795297082050699603359688926172854543826904965429132038847287946633035545286834183237983993089078591849380798441282875324723001511532051828469641634507556883838911862848099621480738447840752251776825179188746868033434597825646770771972904368101874622770034260305720804215333943714014839786725545926379598118539312442808321596017984420564182394160005755945970734140916638828099560093557278954937352205279627853874890852661539536004949875665230402928137689706028936264661100063672670024066161949812998910676480858243511207695537867953361484150629560592594755667780370414915335237337105298101322205825010959955481967682516942197795619581022248985924038232411270568957518735412692180396066179661832626411598555482984032402938741412543383229811170653495971125853014360102425425393171238718068204183634326188371820603595207500478697645141715210872380542402862825565323001229473571027379253814741536079924522614985780552362088272066419128301805336736660483053490253788684564898125095077864893596233537770470798291189490416401875596031440309768442323559322107371782458060545572175291496592381841146847286528241568631390318325840714441898710340151176272766455559887030163834179793895463605198272327530590064886746051912822887829494684942995299756761561386333972111414897396997687096348218137269597753249222074153005544917048458576935234496944754853987169083629014882410297523903402739411448245456665283100169224488805288725259059096708464269310555657228583412994652178729107219271266647443134189676611842668208871005900874469701931028977046278572250965106199912979014767081399206242047982797689871592039103587526580726878542693224384302683475685516796294767218846169794947761512046288531746693018660653320207273756895385543554063909920784866459926317449279472492515572202125950844904259026705220344236375434393699359913877482510638122567220612234317709414475822725880529154179271085148958130624137007814937559094107276708520761175798677288553663558355790941970123089000116988661588900089369996231453622810753529510779557684760013949293804305441802334440976357891596154811936455459093359363430597512214770118723361752663705139866877474841272005126038867666113287002516226743121216028873518378029467755963695070109542009524405499895084888529288274441859114634307929388858552508605567412147978516892525403407409592227546748877144184464724989519549604997992231151172729843015210211685038622303026640562366516093079164131896215800127836009511908249203969532506460371592899988195221069257068290811407456906629565234802001334059591600953361500438386538144912148224510507167160197028878594712497732094471536076676717727921870904806869298254047951723354320428746216244599513464499783237761039222993421874401535095581798656968275677039977373619626939100734237406261140806866086924468772071437816918317079644511676553805118811872121822446078430122472344516388032032957707503382951085021374915964819324456446537395189829711167053582705562030416916637254702679762844541606121974238374235032877206639015106102673603733412116494278484402625897273276711032768142606360965616417478105573959809673504281857296900348494674000184656379797078439517399849618768559271410055764219067491845658429670416079051733256942365897425601423003784339808118269949730305084404192739053923623238593133959720489075671535574108303801904335447278160258923244480870169478471637597986647910673484554012641544990079890748657662647921442170239790875742308660148721412279161097594273558007546631723253742063841031253394787581867976442695861885943883823023002487885368430638247722578426581578991193465577711944608741571364818908998927654632946516766481880250832753348216739830952192866223126793887085031738232829093258175116271636900053106299673943450464654199216408784321352200016877882210859110964858414880190614833591831661157997863271219099555238297799100312811421703486919039816031206818011367542755381206896247988319159872341685928975624506952434275454600889560048081549072933047345486925026922172283292388425914519814660308139779741954947878846948871450434842852217146323594736511213534517027595065988631018972926805427823694336282367097639062687741604349442619082022602674364369146026100745244516104604043336520736209524875622409566445048326501796999679279966209546513283944526809276744550567653373566027490553746733180266712143852523698203190627361657542503697122038135656154547364837695141135045002714657646479085524673891509705537454772308614785521004073822274794883444483948029614596385002888806534028172578255152746310172105614679855018894749313931271737674607696377882136074587455972431412691959353690816108647983565045705907006785585099096194089639309154301952227211512957838928395185177592095848841526902664388687157577154227017906133116231020369869238391355700979288171404887428085455590188208464275866952969340930129113980421712312857379383700921929399857891953234557795378596612840832888129620217480287768203187771349978151283965752714268708158441406793266275908126453575543257836321889633424126936300350340175256131231198765218715392862136537329311972760502238344810033589808744719682218162299987399609909153907347753543210496797294470701590452206570587438942216083306141421958285449751634098929249822792058428109780836450483662492583632583351922301241714073724373154219896451396515045519894309506929811312267798060487583807058673439455719219855167687968513180667079995155789876320603692698735872652824410014777773971550062587765097267278662693180366476323358555877527305035060834300996344518274454894054734966651584784997741943524118472442808731743036335823119001154787441382012030626011704035712890870819301545042518929175120103570839396582525955101216193510570294387376348906521081513231969896696127462464041000828430222015899110174987691040265120238554439253637004618472297746267012844592935243809635699917510083061386262600308055561400135666595723825480662780989054901903190177832119838497119701876252137584999981403590607411622901754839584592043280970562326459599279018127907537995849812394815540155155118710214928862582217599476601332173718528587656645032782330619157326793553333740025567934145046356972399294504607443125702283364163036878588239431879757217227575168781215998617178608302800242648228651440257189612209556584215040219748565778230999153944359103396363893123330702732589138833504416076293917250206344811744143596583403903664476933849303162646957740901050631671032150391876561060020667165606000829038819329867801346127460525801499142445607201210061826828700702224394979279825583401080126188892494082381807305944532261398812800189045099658061521677318841467950766946983954032054461791381417166574082617795104286891401037847414356786008631614618269240484508324047357028689786963021377775512147079505079465039079290709495208548361439560119651331188350563243783116505605044746688033395582732729994918205208314413791658389197271478367122422880377351566694969525901551386644296755838613917175738677911211131197767489950428867251899016035044473845039747303149121199220126742213218024708992444038317738150938772855865951677442396028540176322203559485815393088304856986042265425932526760779476081725906220248079218648246051091918491131594669305820039736971877228468052970310620056586225990042998742904075764997888887641347224249585653993959454439409251864620019082403910857924963083335621883110725112116969065772552563325071823055734819900598556254506551839049964715526756892384536850667001900536863534172753181937100254063521579530093224092593367027882375926579877669086930514445921083872151019543635501655188608803699759660762396019792534305939538435317714872527952889634790568830691706395709778968818142391232382135525817528721692690500096644376753070926965605757098361924331446371503856290854122315334099565151842939607166959125896455421991596631338814398485866551335778529135118116867252306355238266557330908822475510670301149543006933686116787600231879067802773920880645554984334179711459656134749317061360393785481168643826097478770564039584695975130602181175420048128396741141441662343765784680412547681863877957772758926871839815020570088699707781666671442680147814284914402491889183181140008704614287282275626499750186634986297894861748259817535394088028762955360905637361303943532152453416310702721179870819170439851648914783387696148215301717594981914949113758320644921856301191743882476422983901606084126778083419844875988733083455190669351296421583351475838552301139817607179503707851419258156644449304980136663579779448084149983107255259970771598807019625801675327986776630271716647174230926834961881336765351750548687555117081611106419103524225081655713491562767305205578350891485282821231503558401206645426743153255916118535078897672023261770167220795653391537251572761178970023666666821585701824927756307942494811953572955764497239898899709705141776754378717732032151073075777407295474896924572191041777497424248558239972069366204896708060402193103618418943264331474429954915211712907761977627437993388952684572160787709156232200827295984364947735523689918078727862052631328964123782946323623800512810930248232116892183535110224369865971324729965779337042186771352107391341011398277639819360289966479028826123626288692717048953060679147575924447224260076681969908449777442395670940662753562488730153775201287208244574010140685177691038823753076694409103833976466966489270700824198248256437268737748031522924873400415646989334262540486829698466488259767520113554902475091715336071850630870282361201725082775726442731104437606996292501427860083553888486486633598237988633653745901495453886936035807195926909326893132920426579944698127125189787541522220489920639535565646433325826264196357717305150797561686475790150073409941213688042603233638814412569699704488234128292756405672156418309054037861200398674655398354464691098144356676229734772645940788270630988622385360004618730214404010416544917371017498859767442256732988912004453892630831073871136113565265262355511926344247627110620833249582002897543848847912460790962197409582346069214486071091577886198260394377717583312346340863657571758353898389044402750355639505396344831256749108835134412029324951300913341284628897726772266638222744438931565597295576279779105482056718442498924513605985176895477003469169975768977197248456328943667149083073726897042708894044009902095556309877886252878178574300328317819532489009237812778893491662333308517002139790978343943920368186994385341336968040162404673965057155344362626021205126048206065452215215431902261978287662300944967602011216459918005968526604311194362419340124921418441603588201995086668321075309534365798867630404102775555673439838574538526808888085200679505637867171209916047505790888475908109585455667908604842063304535151366852193016369923051993124477886494372320167032602568869781561858959333454601691710908369699105963833860365749137499963308946649214132654678447159174571705335848097216526531688020423300531726610771394947417791429364404314252888169560331704994087222248492437573711028495021945008969667805459395185253447587545340139362288426293681014499502690596428513115635868159273518165694415041974822479251181465322882967180277727538632678875685168879098096802117721407417720495851977350438609166251282323874782324434304550022706792237112465988848491152393363255212968798972102010805033876405859514525338980661001416118424006555972789176746880281741310647519374101780819903666064552777205121219482319874749139040108431965511895106058680766726905421647095906638166382301304676862732091264809340141711567477435835372462311195275818123971699145672899761642929217471655272161645112837851038199456790157509866743710011857992860322137292090429914259592709407464298381788980162572831207422514907159557151993625056325326563705926738580141143455405104664876269269906014828854705567851488373059629262742155373361463826927307791963951208578820594992208833204767568549543375066768735104738615830084532551238615342594499276176378707212571188289792971026470676272174833242962001581383700496749196107658008669394186690023173029577746544805501589149199375961314795462024966192308641437552316145353065506829707895653672386423416788647079696577701790187324015109190371448858021895892862990476604393071139101823743035261822903453713527204473257897820541226849514978318804983231870540092380900655396598656801261728445562879881821309110336068613260295084315942660724654079077072109429186168602512896323760066970836334736110704055573746751836537353946980075288035664902843799899655627155884469889181296882552595954072506625887883782926591082227742598262145565974389336470293276617997199572102261263133227306105281360879836397446879484298604602969365029885780794525359998658228798660822047547489883629020633458514381094212527914606644897528812749807259831427195126686663116425437070789571280305733888767960532170267125430675333431826397137575685278248326285510089691966625833538172650873834678599776327978257610438567653781590166898148904642065369515019668208969591163657776320723889235843095502792601081701503293903105003635199754052541275940905274081092794428147829331693457527255102402657578033956554738491074711130758893222742842560972383645040883933992139920761230769540484718491736130205856602335428054158503385456186103651989314289070619283974764359936765350668419694018987648409275820318815097580690756293045688206127551465877789586718056898533402052780073130173562205108668530295775152773524829590843655654743009010673209642979116053919742875641955927440147199984107832479356327404747242746377650490699410140223157813362315651279917888625428209064795668175297168690576375852290349092318760343553622293660293540843884596919387603775311986599910065725117711824606819729765142280249307345652152974405113642240707545861840265031128803055048211957120013740544755572697980479172094682038200291449231448328842092867185409978488579585449386055197371893568574285939167997298193838543587782038459250301261131532355533084026732544000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
9000! 80995899866871908582913120800979496475828146392946408922219130690909015407353605447575041936572856149436036552693202056107438918510666946549242001162011108501701783175388347818676665807750253993451959460728919143729422035131295720201773066711254876977130397164271629343887027389990484870424761985903139252132590695173046063988540822033659291766968548601878973082087324902401031256293072745024794472029386569310777454039154913625335976240736527174750248807592665967609235867427486687394624065354208222807571075334926662512401020728627137483474443097491765137643325508329100387102323595906471784431277794544091057622014418785718517874052992723535625962533773077786483156733351003985015312850063097297688383104165944922291877154827827387776783098860019115057271734623090315061207654176768334046942312777866852067403680706678717220065935289287403445179487704221022864747118318894667734215824448325304218344022286776464088159484417296105456598516624413422536284583776565645291607236937428081090821806793544279120012808130282214882523710762422258364719739866816333989515845762465054392937290504744951946352879274545232972564908356550783239691860815473962907109723178881997716171297160533116698713610391919943326824062223086833799317518486256170015876743951750313950982026682426542544094208626893368737023171753939606048266880220310852090313669977486987472993944815087101684853278969509545919549706207250476276826257482834355079375617595073690586658619701622055622829408511142193149219321202115385445141995097765323352682497411627849615546692628100061453783287243728334083773879921864420021284893537157101013755797314370325600492358512136266873444682950591827219914972688105498476577594993655491030248845071787094361839130685085895669277350919528519040839999868357050098337385927373281375263237042537200753320301144296397290856074160598702489252961353923612414891351582623280096520530805015187345480542343562496692698492694214185299818736433742085638672673329050467140134713134468413594627818455997427796579861980614609578207714757038352462441858241710655713910919817661137504413472003942614063293534136276732154777280725072555387214225458814560612490917195819468723492949949608592360201904332140376342803298648755021691459703203499071419672288210791510158647945293799041537077117640788722848964195451243230908778508479867559971743934831811057793800314206457521004503213629429497616220334139654359342451549062125299397872906187588176978167460543617705382392994470921463264827844533115902495233234150851557657597791355044387227684622680674494805121951133025107233859851779656815997145907995528620829496378409568948397966974398491052255019449002246193926860608063369359872606288223035513221539114085007169426591775298089086124125093952209885783195418110028923735717150890469150784357724104644776964910677679883242533677938316389410973732395444201079750212120550616345037817772019356650391444847620711299754242383055864220480828185182968042179574353080017192021929028380499662521541596824332934347763628432269660483748887156747338323191578608851821333768867964318876272281007423156167637967305326584166406326581509780957028867932012535128034477273156952884437978896498272926912255085259131098903579582431573260491240198629897044711201325353375752517847165346469983567245747234544572853913624415076812082116146062304579842385737902668727513869592130204810729781447544551016621846145831875160596451952559921744089381286482764414313934198060851617383876559559283469286358361658866503058426656733327419897606473677142188525420552368639731551738356813994608548743926660874407892744207434385685338091740680604162598145801189637540344148271338799929922762423236774236214757770425272691915915339149187596426462764984872474774665067725463397284291584565589138210009405665681920188323186473860405898308222499661520559037262049669645313468190053589630048048190811685333651521436804712220924826856416074488448417055779348315541986500412665196677314851189969015948220300920319322560849352306930367659309862133233368690766759515197579131662716879086665669656878734267138132322839517024317655413573019441790702086958908773081191753912029344110682744511618213853915085135205725512549523020741529779310101435095641952249655159793988276929724042596481940887778147926719038243012576420565706448609533230616094368592246349710411125705209009709373018604507452956279574966424952118320346345475240913103968988847896096522843012431757371198194159304655060189335334070878621886833481355553069375675772881642866354771213339862614020224667652363283573131757734767613223139581029923644849997150345295511037746012892963433064897706296823643603966666401767120397697949140221534287489931325379441054292902055801262918153399954985564623219002596405504258481540827164943397104973068050806801745187128308814119331746084033661493403193411069342966314725885275971704708684878518343017262295278765362109587118084252805463618778863285828189508298848574477995589935325649661422793992584465345641338612580959522983043885990517651996945544381621055050069740655173241823410248247089728707428342700298987136158026413162684315079956050110462918217198764312889367739992323922946383673935187707357694190670826385032014209204434365787459432490859680189754189602646098160968399054298991477668683246300599818941541417719370570725384530199348976527708522067483481324188727699921439331094829103518787037607667875717572627959428680905764345570248508730535699380567093887156513763033363760063908701615609744861406276947749026653563959292876843156065612281239990643934684266221998644247380938524538853665110382348281416184858923905574219464635738390799351896374953686200239306956024060374456834280240227813134402649150402647927883728115141310219650044756673072056719124955472784888958769076142879024091072790868410244349257862137143268818996631138599981891775276256046816038131677075041353397958374445708140565105056364093222825996579850203332604148071579889388169126839344034680169273512150891930837246322023509463915000641274514379421278744160532721183807498479073947744671645683266299328557082077341580845446412951403311504381585926361653545319757185057800983106523315562127935784750538589104469168784601719643894876629731584643329846353549226171791375124980021877770074576007319522647384409670110730004751808547879808812783078157174033294272954296048340312922422355059255886643750420008098956297512735175019419406453125089642046320670503848060523922366566417606417635227000454140222483216986178005164786681524168092438655976092623180598580453389368893634888275173836608117293042890516061723476136682713976032463129864551072345844225074482319297026518389761580046154517762058635776121328900189084369572023938967470693766053378469225663965288409027465833554818736253609638553798008715932900652926773110791215030582813897726752559345930529075162013520019553157416862663637957536165242823520760163331353836603324565329007170980066658832149187213866671200915863332450115225925776657876407376874111231774400385139856819254748100808423031261130694204339259075950783228512563080177267984686824807695035599035949897729917446569938017862710061560015565747727138820973377694916834717751236216748276466064371482150498198384755481494077267455986149561337562536110700915451197536826478360906232635355321279845527509268027935773937754290135387043083966404156395935438612635985311895272558767236144945060004118597044863726465568117296501598026190799163615373887993978915265323602488211196521990175860946532390167678255453359289071690628837211057658405938566939525213799294496386784162371304211175157334382585004669601908847779268042193597677532426912392980054248592496996034372207119229964170245591604058671388240706332871086973564521142388237010544085875658348059852673236755447095733493162736319409814699762787567688990770652517290197745065475201543508109559327229366534266752065470274074136242586843104334416000629690697765150040836926552164847455406144811985599565502550770745585114511442400060230545208833330338414025120778511493362288467033685674079431417505677308118218699678216535045644879288422888133801794987771650230245677092048379930362917495546965415927578217205118980437221400869059069292242253380471883028866778410747494798287178055981350197078503759028846060964731733269106414408516633206309324308974042650836595410504873700815739165896648275291164237075591475505351096401784554794177003312298262210734172999303212111868405689356606236665789731380233187450447601923200940245867350452740262838226225190609820370295788211322649123632462359775423525028342212685065285340677150775975377535304193511467433642558051880721509903551734918770437290423459575630691458246753053781911920213781359269701054911306805154555900110922082560240552383462997091581344071371898945124579942890212884157480690030608642412718553663621166984809943416377760511277293309266002660920057986812713834286105917906994123454136282734575491331466398376149339687256067046211693583365139566277078465590974831719008922346550832203625018027677384881550812616859062557602326876917007295837285395958659564619648643660886787568897935260714149576409396123568466159638189106586294698441834959178055129829400023175831131347353301975159162607430388944265333957320008763399315833813204072398219624784292760029884336986083765718974599868588369803958250722941186200927629068533131206606358516915575946151796114755839515090008583053127275522960856309803710435391532659761148159056063737415313447223692618481755226741965806404046000911890471687770819818468191498963275597290918829946587949800743233782182182556250065144124162621892548638539612876876425925841525371502637320195203406267163888251635748130237367760046378885368762931869674463997850693710827301611877816963268156023896329548782009213418125167213668956004798192602829289267120309078506293701360713639694356397970443891477202000065327547088106117171866175277040421792053836288865202893702267617413504651510848910218599110960388486480603517258173099330848356166056516860834500534451784022576183206940041562680089775154738867622275782949977333964057035233273148666736192016502912107750891881151747059755151993684625597496577921240157713136835727546099089944716848099007295500578714682150942901714159805821406864874203447416412681777739358535853527875825309229566250257667955302201983151221532574450842355791762406003917018839235999657213160237754760857320561333078124297455062471230870123603895511658597860220107088607380690098026462334689052518447029630721094303152541676708997933174882317048857557495826120208075452995084327396385788621644912374918486175184067237681668287409050135827377079219491266375203267845680948315203125590359146840513193078632412843726536584781532470970656990505794445049905931139138916217023503993640870103337134068016438153117613506476303352214064255496910437370439228060259178037024870993838784107706934999858987737080215152170616869684071324880061132910867484881797085770792410531026391550101895692397101928349258522761006768378989725933948218570020038321179423692220492032924575092980029722461326705715404749717488681851503668202220228273927614777274484801139038234522503115605382377649954863459965735478722181901735578547755352490914177712837059457453571258027336824888929960439404420668452284878598445254315869077512744393890597704612987062693414731021343714767403380941896805543372512313591139343776432010610497226906037724509120972231127804002797674446851465568630558410597330640057252691896186026261372371628896714586703385756534733351362186255943628533030491347718348504186536456481471207708310664947697531287427343080963931357509034111650275232200852217008979534731636077664377110289829441711466227021896556900992544266229384776880877690942035060117292124693866548241632664116103079322389360850404125785069761542805358717895427500321437937561376241134312686938080493845008829461761260111944021901067865127066244297106277092180176286163870917232679891849789919224776382384279833849832108774333828739160480175377444282699342374515982022335455027147895251580706545221117894754699731167714219212146408681740052959394566458797358853472698744520128566508860750610935278251522532047874155198901323121922891237290999372509866276770027981774883231164230423345464663567674980291560408652880189984809686833939161951539414003453181863475860736690047200410075939379741152172877937530612666263481090346788490958710305326985891224610543282442007205304115834373897702056477494072978701592758088865272323270693710043929261987286205229708656798046438526139369000584037677144735868059827919010950953286543578066982180341243036239225638590222646915117117500219304788408413816562993828341715402938666161376717174931182410366777992508252197931414592154229297376595917455221687735417045558287448262810657655247244484525487670066452384970999937556026798335137628332500081452843987635650896274853828076474803033985532483433741306270227301647626462259648745670947705094330378821878014378477427373076700354852628353629917071500731824763202673044581707682098704926240172777916575288679053399001108483169215447580559699608068918020296343250819473760592708800863597466070131968874567880823463858291061018362945721407833214509679292680683927339570367843534933183413020808328250705498724572233896811503136294324334052792391165788454756253345011912690872921844103831146274404747174996164232922256362566373543561203433566781685462794332571008331493075216410853619359072806746405326360310961687835222868039489710881549847129803918952593771971896714340931616416563720277470576828940766223128047287217679021183488834507985521002618529298366550521506217989048217642343506145830106940954017690468720883313155585528739558526815139310026984347617023729949907471351245199190241376802368802742384124086158699577559134590888314977203443955835603273943058765640224911822486562367827633964040071784306268005019351190832544899043935115055765493669151526293543967908941211232083927239604755910947147063630967056725487296515818299835437676280383008078486174357763781308262013652029721934980264275068211763398576840855197039061902363015569806419850832552350144175978618970845583646507774830371949150787558228368502266174221009019874848145621038008598162202417983596588261843283963124411695644847320018084743277574108331811499691759980740218833736005204926416708949426012995932491933828640142469956165371990007502466747270540457455775254689776897736378585490606385544843290372661782899604679811229129832611137224809177509429414080719942563838578160615303346220553002342645598059977329894736963545137735125428964483303359959524758289686407076677287667640704499380942171489839122034100098766522186603202055844530847365602392304475568983534926434611327246901178884223039853891163657974972598801096740669571691942355687105913695888962580538509379019568538663341258126906909984024285428922841196578267684570612831089471505825524577528465017015416957102789111345599188250466339269927205106572426369486409171307809172426469301776547742901504161687867307368243441541879142042327682978277800389906869805685770611546102868668794076019664015702988088414936473644747972684807498413164917655553262555254207583876428237716878354138096923833219898615902145217817699507428997526285568032225979060352809858934979575767435994094629510455429827771642340538855765463682140289281659142146686698170562804795809935379108838325846804250763105862252824948088931159856559258610906279697124987095829093899303904797182231909681582091505012348133921681646966460348990851339271512857853555837870424753833891673147582452941710628390729426741414314931395304789194663736353182735505409868130753982454765765613137792268028209143157440351476185093550271388575667085146802690367531995204611367052208861680241242289488382941197630741418585826977847648415085214939508523736053085522724819697926604698487228815579917248280979839691009766389537346456396178589751288670478642533543863646526413893452037048840616107828591431962282923159645380735652513568233012717471754135113548940916072362670264986312696062073412890871958328554768867228804740068895266045349592627483626258198924026163471297673944692745012306008754275588742386636249538122730161407934276223830865305555312683060888380285872123148543105968509487333010981556212691023978814099862293511102310644654674394726676741840847517193237727304854036176064969472651717133819141422615123864096222178634794025442830752281186706552456328194709589639285571800945562842374767823098005512335475327602356139893723967187034259395238106296510821219491764222334872591471554122146839665397259110858861359279248235669995262486260031548802306328569818644330938786135121425914174041192326088209237671710652793570885731443937193990643491846638983687008614632777929505075291973608553615956903154433177260694557985425422305326257613705839911225371135522011972370497695429522913381279102414505482524232868473480771665768958644808837687667856584123066496508283943133509397378630140384238859521121872390280876636289838192555454442254878889317758729312798858649534559818165629785484744048986111278327783510300522791315963838543155940586927117110400809804956374014351307721770429578248771726157123072638420888204713576691009299417916314134788884611996068834014465701954706671890624827878374220206530266136568381705718981352106013155976392846202033999011840082783221229359344139256842960269192400288754439431595025984285725822567339451752529042885573271007913181198980058908588133525033298710945616112485263231455145338638064849928346075947114315491594617525580573563401981581595952023470182427073448858419812511008532275330332848878588506502878939168098911228525465188708184532914395179478471157605916529778031902971652399700593053134673097883487578399956314528466983016327112592296108560676175557595339845290469765977986050170522530454894780525822052298503491685520738897252241310411400694188493702640634540998121201910366489995592345766425800532682660001013132102833167656808958410994935348309392529230476614206890334854816579080871339690768249830705929962077885475493068450271649048827151170680987496647204092264142990545863266415848775864100230680336626986288829328819238525102217537867959521749802546436024248923856098794665004285720797018376096640618621942243326611303302932276004418770923304025155334315820831945999531701325164320919002373935285722350655123310389798679498703727812766344202745770810776973131875295485429865522517977791723294512040533554781209305196082254165373354635528402434401944348590049843340983247821577502494539960380035141614015068952685797440191758622035106742403977549083255175100746286233782163629445320560487605676726035077629632387872942704432908874386390621625162133416441292348604014152129857924148541586712198510994493644558437465573660078419206107492526640621669186942686545706833390212685666591029003176412290334102605355751226658431097396621022719893559657303069726176647870223127976931805287788662252216041764401735275828920663579257155872842430898800288256467360368665358336243765341334707249756288756980815431504904494665029957736322599219761996085503995800150446857758762417462818205693361332011927948605439407376544936559323823188673115989372467946797338563598781147502347730221985953476234060061460034009736867081071306981844859524931049824293219544084758764654961311856784015555560158315492869839268896008392638630823604155564048806213857620052497546215087586222163898563112384498342709746239985273451625254676371442662666797640839054989046359119650900565379432676881379610789135675024909013422672900886366375069033126017484851211006681515286159606580747399449674519251310053826389465516009068360517967967752848280274822430415125175158077614742383174425349746615742676968041155615259625206057351442736431365978711636395852124592875920294619768953406157324682102369278310062779582169437451074379287665415867368158317819792050658200062065381513015926564968926784566060838212740733039879862411474886157071618895403470911128001246853741676530554373470374678712804967616627239013887375811255271248214720973548311192778688271626291621278323136827062890101119542829934399687179273395553505989116137057592693090873002244524774893837991592262959351422999554790947966136578138495980250007483252269813943556451966864055051816557825013871104362821126646334075350374437314482960421227561494245970005956984459286141981057994809087024360976662383664505734208796034121749117313340718284175405413718008151975103725091227756391945375501944923488813180783113738470791452533983158196971425073139609139317598712229924443826435749855454565924576788156157568215362102475650036742278016367059789602026218395416110684269932428314792410398729977093074589580530274853696434326650548082743624384231846326080664583602835649618092135550645611653547161522974258620878902326453440927136236946983613424879327032568360227343079322919350241707609642788854490335597873120673761311147059787518111605820534182688354746703751637725082005817930298815360638775069305292082559715870224717812565411148357005951207661127153995923412259798914484409962610214860444983915702267464639490014600996153042625275269090607928069673850728370754197558728812466509516566436979633268006627667246159149017142663140694058904055958321611715738005545033361826657350553098262410257742255653226253939606631891780490182600276102674326902585089513405868592881390417094053145739987673001112233096761138894870807257039873026394229506543821628470253373003904928230243552507079230333200955581261603347284226473244387780467794591820256516305220839199833965606310849867046762462599479438491348665818867455713906939104848944680198584764438788361551174456060940295611283796706271042878362642279281217061574760068571469028728573550774422262442662125777900100469881719543378098216886384516114461201195094546307150074006867843517239262359172050584632819429230939378125623136237497006408854804425100205300028155318414055586630135025074746289797386196735987159940345920815817930351532046284026376194644087152202480078433513975445465973986092216735371898556834120460217904438922931359040579880396358249581435187824266229467640581336876847039479499511775100191696259592479453845241774405899940594958426736121158265305205240901613982192938132164623363752383706012067998446258469802958144795625466443657884528110690619442616506618613988338713955501071895728888937280531792087802981222801071099639108035347474781841090993741459837241450220966757200453637946000697631779039674641621296243504530399520930469425080255490906687359338872971502385471020453554878901870336752222825765780475442191798983327236649069382252743482174374880110633814631848487948177987609100180679769994979511994574164971629629116759563083025913477660314212068316823783643846309684489238870409976761913989906824032463763134328303097516461674725116098143610268181953267617393208411634378285179191047686553137888091296684753904742658211681866179038792833871765440058253245762867526043838399414082410733664874674555245461596269520439154824962248460613608370964339484538085492992515142750657397753763080855313235994750564136887663560563362668603330013252630012300678129464429487288990754057026491697981401486577121379471816911756065025647251111955878212234544059312167557688697927968582420471657270364722142188246660401003776056345434997164910321938001645349908593781804836112723375266929897107651529407059743788660340733809543929953684383625247440410346962162206912800879882642498361780257538453934698937359080475615894782376939927882843969210762445275248122321534639690155083592186788011757056864278669645661907649863635201822519411990500242709663592239068273293421654105033223566333985342700653004178857285971749743344487551608839352087987346461010482601275783969383590065286038168278984759404111998388791339607186614039368684319454574823052376133061142832590050733675077974330252070780105056994521031322288113378606831607347916945085371059652008863693597439893939312629193952855199008909604948872529094843907794101386784274767741585581829320160255628096431549425626509249762977005010867731063421878836134654449964878250464783313329455159179716511780740374318603338890843298838234347864902724837291245833199407873944197490419316303536892971218390915109384292569103261926769844048959243359164337417271564919004059356495016969732166377503273684238035533526467910366288812604276433729433991435584200952115982927460218369821742851123584150575586142507771791364840239039764439174011217735810549596881258056314398213080341784721301738085105033452200371560336745158388150771676472039026380483448467747665507228192582746014968326500660909946008867411119850709082325845485563887773875149225086168283076903983450708470561592421012532448431491194522858119905193301018854003194166198214532910763860900619143063034195884686969898796195237659277464298777865073590081034475357034342592000934938163739749353468237264041716373819197473012857917492516563173157691652825322319295345841508975629347394771456306377622641344165578275894563161509268803983057086202711790441318680371978843528204195364800166722535327569814589581299151259594397390315284545459148792178791708503318375411423714046302538698190322198771895356667395429885166789736068955550120989502941035179651216154772704067673772877863027555390868914634192577685567598408548579896211077434630689462076607444886345014056435604731567826105253902399494497988019997788880129950336859964174391243928666544907475193308554618542859261292867400134177918261684644729485057820486131733476754785922503730935550294579784789001482880351270682337111873210116045992972533792132108057919164920182694600505081697999186991534891103530068952376499244887814107212140789768089082644305844698893853144052915970578975107401413475912213102566275397716535968812920207795680520124877985793112512656811095889157738486694184265486083083854988501855703326371741330889176944541600810193065014084394068487333594970125998541753174244213684309065464917895861634806706925392699419145146015893569221383816606144822560445581392091757611288472431171653287718353960101761350945843524569561836461908754840284213040929367265016249092746107370702159235092448905250964094917114813554335972975749817812306960559148416028506171177477131566520478115641801408845671109008667317557259705160135144030914466333655477127469357158561401154761644575711949654628409243114217454951990569886766915510224725913106481719022693455862112643042146399158828303153743218178078052873094839018090406579702132526607208967105316623971322985546399160960340359885497772647942869447389129932551811360169150866994483966383926596383040241176516757449563044002830506325110679412069821120778072826547167746183004836679167946044860469753931426721195653817833385304364048773459187412746958863568163430252192533204639481333607563640883008954563772872905257234904512222540650332901526567254222239066048737871914094919618843514151139826658368775483069744971196463324378323126578604767586582431616926097023721183464786665504295668485490311488484232862025323664443613981488989720350137022967650460632473459182754109801617923731719585399644828450416986404078254316927471480339759176565754407829045156677545114211743399043637795332332408743720618982823931325912856046061344200019634275666741461200006044221632376295858833443846793525706306077573010896293576745062926903096076278106977890246712745449167483118232537047383337063862965387095661257223445799629893673488822367470165327156747584915485041277648783956171338156433912190874844409116076141781396965295676680505381618576384705616705955646215845843077923512864758153152854956200041158908199505491290931546309392564065320960912796839565073254732266892555293339402303771824776842822122824103880061859433304261583270626533435242929674122972963951801772234759260651099109985735480689152585747812939122741127309047501575331638984171706827339135638330086515362585532487469006047057905977943433536571538392012517108782715912602601631597741558416965327339448724698817342589867577766152670700108601401072361996062541923646798942785540085481377377921698364245545858894809286025372487576966137662667875434346370856214138334978554695057257555821674477070248719208565554328803658614533173153832029530506204524647433254655533969529792877257410349198743929755510314176024383161198275157169441100792678111496283920645900735716609979571697675174293893584904031394263689911202134227252888521338742710384332097094560649184024858059741021714418004430679870513793741649730634815700745777976721348373532076469180903498049734639340482964954071728195284611233063417347969305638351158515260569251758141384597462992351089359063408820476548868146495786628473661845197883299837426400200258713369937619612669638891760372606498061975714243061612914806793357165635436313737642687780999487830027336040659438737736080329913398425022897204748562452164943445337960751538162651294976912836229769714531372168994920425547232763037412754211523285626149052927595805060239040013317036358432754290611653065538721293553255098607183409923955775759644919188483517104612723566950829059337296631668519055418142191315537353261618695231246950133127739254327228263292963279359881919130630342701578215720177595337947515329236763028778951452487162839446395851608604286960393206190873761126712084930544442652478733906141021947337858435632138637847783360440470768717684404561362261968987065878479274601796911121497648679190733189704029865398026351809414360959087992780926224086222807556935713208125871003845842836140602498052133217924479325795224799337286507479269518280244309156227577624947958441579932036039332188624983048057250449556492575360605533960946233383754378794019988013612585267890076688418499157032960000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
10000! 28462596809170545189064132121198688901480514017027992307941799942744113400037644437729907867577847758158840621423175288300423399401535187390524211613827161748198241998275924182892597878981242531205946599625986706560161572036032397926328736717055741975962099479720346153698119897092611277500484198845410475544642442136573303076703628825803548967461117097369578603670191071512730587281041158640561281165385325968425825995584688146430425589836649317059251717204276597407446133400054194052462303436869154059404066227828248371512038322178644627183822923899638992827221879702459387693803094627332292570555459690027875282242544348021127559019169425429028916907219097083690539873747452483372899521802363282741217040268086769210451555840567172555372015852132829034279989818449313610640381489304499621599999359670892980190336998484404665419236258424947163178961192041233108268651071354516845540936033009607210346944377982349430780626069422302681885227592057029230843126188497606560742586279448827155956831533440534425446648416894580425709461673613187605234982286326452921529423479870603344290737158688499178932580691483168854251956006172372636323974420786924642956012306288720122652952964091508301336630982733806353972901506581822574295475894399765113865541208125788683704239208764484761569001264889271590706306409661628038784044485191643790807186112370622133415415065991843875961023926713276546986163657706626438638029848051952769536195259240930908614471907390768585755934786981720734372093104825475628567777694081564074962275254993384112809289637516990219870492405617531786346939798024619737079041868329931016554150742308393176878366923694849025999607729684293977427536263119825416681531891763234839190821000147178932184227805135181734921901146246875769835373441456013122615221391178759688367364087207937002992038279198038702372078039140312368997608152840306051116709484722224870389199993442071395836983063962232079115624044250808919914319837120445598344047556759489212101498152454543594285414390843564419984224855478532163624030098442855331829253154206551237079705816393460296247697010388742206441536626733715428700789122749340684336442889847100840641600093623935261248037975293343928764398316390312776450722479267851700826669598389526150759007349215197592659192708873202594066382118801988854748266048342256457705743973122259700671936061763513579529821794290797705327283267501488024443528681645026165662837546519006171873442260438919298506071515390031106684727360135816706437861756757439184376479658136100599638689552334648781746143243573224864326798481981458432703035895508420534788493364582482592033288089025782388233265770205248970937047210214248413342465268206806732314214483854074182139621846870108359582946965235632764870475718351616879235068366271743711915723361143070121120767608697851559721846485985918643641716850899625516820910793570231118518174775010804622585521314764897490660752877082897667514951009682329689732000622392888056658036140311285465929084078033974900664953205873164948093883816198658850827382468034897864757116679890423568018303504133875731972630897909435710687797301633918087868474943633533893373586906405848417828065196275826434429258058422212947649402948622670761832988229004072390403733168207417413251656688443079339447019208905620788387585342512820957359307018197708340163817638278562539516825426644614941044711579533262372815468794080423718587423026200264221822694188626212107297776657401018376182280136857586442185863011539843712299107010094061929413223202773193959467006713695377097897778118288242442920864816134179562017471831609687661043140497958198236445807368209404022211181530051433387076607063149616107771117448059552764348333385744040212757031851527298377435921878558552795591028664457917362007221858143309977294778923720717942857756271300923982397921957581197264742642878266682353915687857271620146192244266266708400765665625807109474398740110772811669918806268726626565583345665007890309050656074633078027158530817691223772813510584527326591626219647620571434880215630815259005343721141000303039242866457207328473481712034168186328968865048287367933398443971236735084527340196309427697652684170174990756947982757825835229994315633322107439131550124459005324702680312912392297979030417587823398622373535054642646913502503951009239286585108682088070662734733200354995720397086488066040929854607006339409885836349865466136727880748764700702458790118046518296111277090609016152022111461543158317669957060974618085359390400067892878548827850938637353703904049412684618991272871562655001270833039950257879931705431882752659225814948950746639976007316927310831735883056612614782997663188070063044632429112260691931278881566221591523270457695867512821990938942686601963904489718918597472925310322480210543841044325828472830584297804162405108110326914001900568784396341502696521048920272140232160234898588827371428695339681755106287470907473718188014223487248498558198439094651708364368994306189650243288353279667190184527620551085707626204244509623323204744707831190434499351442625501701771017379551124746159471731862701565571266295855125077711738338208419705893367323724453280456537178514960308802580284067847809414641838659226652806867978843250660537943046250287105104929347267471267499892634627358167146935060495110340755404658170393481046758485625967767959768299409334026387269378365320912287718077451152622642548771835461108886360843272806227776643097283879056728618036048633464893371439415250259459652501520959536157977135595794965729775650902694428088479761276664847003619648906043761934694270444070215317943583831051404915462608728486678750541674146731648999356381312866931427616863537305634586626957894568275065810235950814888778955073939365341937365700848318504475682215444067599203138077073539978036339267334549549296668759922530893898086430606532961793164029612492673080638031873912596151131890359351266480818568366770286537742390746582390910955517179770580797789289752490230737801753142680363914244720257728891784950078117889336629750436804214668197824272980697579391742229456683185815676816288797870624531246651727622758295493421483658868919299587402095696000243560305289829866386892076992834030549710266514322306125231915131843876903823706205399206933943716880466429711476743564486375026847698148853105354063328845062012173302630676481322931561043551941761050712449024873277273112091945865137493190965162497691657553812198566432207978666300398938660238607357858114394715872800893374165033792965832618436073133327526023605115524227228447251463863269369763762510196714380125691227784428426999440829152215904694437282498658085205186576292992775508833128672638418713277780874446643875352644733562441139447628780974650683952982108174967958836452273344694873793471790710064978236466016680572034297929207446822322848665839522211446859572858403863377278030227591530497865873919513650246274195899088374387331594287372029770620207120213038572175933211162413330422773742416353553587977065309647685886077301432778290328894795818404378858567772932094476778669357537460048142376741194182671636870481056911156215614357516290527351224350080604653668917458196549482608612260750293062761478813268955280736149022525819682815051033318132129659664958159030421238775645990973296728066683849166257949747922905361845563741034791430771561168650484292490281102992529678735298767829269040788778480262479222750735948405817439086251877946890045942060168605142772244486272469911146200149880662723538837809380628544384763053235070132028029488392008132135446450056134987017834271106158177289819290656498688081045562233703067254251277277330283498433595772575956224703707793387146593033088629699440318332665797514676502717346298883777397848218700718026741265997158728035440478432478674907127921672898523588486943546692255101337606377915164597254257116968477339951158998349081888281263984400505546210066988792614558214565319696909827253934515760408613476258778165867294410775358824162315779082538054746933540582469717674324523451498483027170396543887737637358191736582454273347490424262946011299881916563713847111849156915054768140411749801454265712394204425441028075806001388198650613759288539038922644322947990286482840099598675963580999112695367601527173086852756572147583507122298296529564917835071750835741362282545055620270969417476799259229774888627411314587676147531456895328093117052696486410187407673296986649236437382565475022816471926815559883196629848307776666840622314315884384910519058281816740764463033300119710293036455866594651869074475250837841987622990415911793682799760654186088721626654886492344391030923256910633775969739051781122764668486791736049404393703339351900609387268397299246478483727274770977466693599784857120156789000241947269220974984127323147401549980920381459821416481176357147801554231599667838534854486406936410556913531335231184053581348940938191821898694825383960989942822027599339635206217705343572073396250574216769465101608495601439303244304271576099527308684609204422226103154229984444802110098161333824827375218998738205315164927134498105950159974800571591912202154487748750103473246190633941303030892399411985006225902184164409988173214324422108554248620896250260604398180189026317781146617454999771440665232863846363847001655618153861098188111181734191305505024860345856755585637511729774299329074944236579668332700918367338977347901759248885660379952771540569083017311723894140326159612292912225191095948743805673381278538616491842786938417556898047100859868372033615175158097022566275200160956192229925401759878522038545913771783976389811198485803291048751666921195104514896677761598249468727420663437593207852618922687285527671324883267794152912839165407968344190239094803676688707838011367042753971396201424784935196735301444404037823526674437556740883025225745273806209980451233188102729012042997989005423126217968135237758041162511459175993279134176507292826762236897291960528289675223521425234217247841869317397460411877634604625637135309801590617736758715336803958559054827361876112151384673432884325090045645358186681905108731791346215730339540580987172013844377099279532797675531099381365840403556795731894141976511436325526270639743146526348120032720096755667701926242585057770617893798231096986788448546659527327061670308918277206432551919393673591346037757083193180845929565158875244597601729455720505595085929175506510115665075521635142318153548176884196032085050871496270494017684183980582594038182593986461260275954247433376226256287153916069025098985070798660621732200163593938611475394561406635675718526617031471453516753007499213865207768523824884600623735896608054951652406480547295869918694358811197833680141488078321213457152360124065922208508912956907835370576734671667863780908811283450395784812212101117250718383359083886187574661201317298217131072944737656265172310694884425498369514147383892477742320940207831200807235326288053906266018186050424938788677872495503255424284226596271050692646071767467502337805671893450110737377034119346113374033865364675136733661394731550211457104671161445253324850197901083431641989998414045044901130163759520675715567509485243580269104077637210998671624254795385312852889930956570729218673523216666097874989635362610529821472569482799996220825775840988458484250391189447608729685184983976367918242266571167166580157914500811657192200233759765317495922397884982814705506190689275625210462185661305800255607974609726715033327032310025274640428755556546883765838802543227403507431684278620637697054791726484378174446361520570933228587284315690756255569305558818822603590006739339952504379887470935079276181116276309771257983975996526612120317495882059435754883862282508401408885720583992400971219212548074097752974278775912566026443482713647231849125180866278708626116699989634812405803684794587364820124653663228889011636572270887757736152003450102268890189101673572058661410011723664762657835396364297819011647056170279631922332294228739309233330748258937626198997596530084135383241125899639629445129082802023225498936627506499530838925632246794695960669046906686292645006219740121782899872979704859021775060092893328957272392019589994471945147360850770400725717439318148461909406269545285030526341000565022226152309364882887122046454267700577148994335147162504252365173710266068647253458120186683273953682547456536553597546685788700056988360286686450740256993087483441094086086303707908295240576731684941855810482475304758923392801571302824106234999945932390521409856559565661346003396150515164758852742214732517999548977992849522746029855666700811871200856155016457400484170210303038996339253337466556817824410737409336919294104632307731994759826307383499600770372410446285414648704116273895649834555162165685114551383822047005483996671706246467566101291382048909121117229386244253158913066987462045587244806052829378148302622164542280421757760762365459828223070815503469404938317755053305094698999476119419231280721807216964378433313606760676965187138394338772485493689061845700572043696666465080734495814495966306246698679832872586300064215220210171813917325275173672262621454945468506006334692713838311715849753092643252486960220059099802663765386225463265168414963306369548086551101256757717890616694758344043486218485369591602172030456183497524162039926441331651884768606830642004858557924473340290142588876403712518642229016333691585063273727199596362912783344786218887871009533753551054688980236378263714926913289564339440899470121452134572117715657591451734895195016800621353927175419843876163543479806920886666227099512371706241924914282576453125769939735341673046864585181979668232015693792684926999983992413571941496882273704022820805171808003400480615261792013978945186295290558440703738300533552421153903385185829366779190610116306233673144419202893857201855569596330833615450290424822309297087124788002017383072060482680156675397593789931793515799958929562156307338416294599900276730832827716595064217966523190439250543226753731811755315476780739470338931185107297724318378972674957455778183345495942317353558291046967315391275975687281861691161083156337232639968881490543943261197182274996791176628553401860198315809629981791107208804992292016062059067271273599461871634945774995805337947187105456452579396024210259136415528398395201773012712514892051061708228008339985665786646920737114269682301770416324829479409558694699089379165191006305185352102345189798127619143061864362703081977124992751056732909481202057747100687703379708934229207183903744167503493818836342229284946790660285674293251642569044363473087656797056595677285291081242733154406580199802711579126254172797452862574865921933293805915239524735518887119860391319654287576290190503964083560246277534314409155642181729459941596061979622633242715863425977947348682074802021538734729707999753332987785531053820162169791880380753006334350766147737135939362651905222242528141084747045295688647757913502160922040348449149950778743107189655725492651282693489515795075486172341394610365176616750329948642244039659511882264981315925080185126386635308622223491094629059317829408195640484702456538305432056506924422671863255307640761872086780391711356363501269525091291020496042823232628996502758951052844368177415730941874894428065427561430975828127698124936993313028946670560414084308942231140912722238148470364341019630413630736771060038159590829746410114421358321042574358350220737173219745089035573187350445827238770728271406162997919629357224104477155051652535867544109395079218369015261138440382680054150924346511711436477899444553993653667727589565713987505542990824585609510036934663100673714708029927656933435500927189854050109917474979991554392031908961967615444686048175400695689471463928245383807010444181045506171305160584355817521032338465829201071030061124283407458607006060194830551364867021020364708470807422704371893706965688795617928713045224516842027402021966415605280335061293558739079393524404092584248380607177444609964035221891022961909032569042381374492494906892314330884224399631396391545854065286326468807581148748371408284176455226386313520264894016262494802388568231599102952620337126449279901938211134518446387544516391239377974190576649911764237637722282802318465738050121277809680315691477264910257503508758792248110223544524410872448565700755187132146592093548504552829170749596775404450779494836371756062326925757412813110241910373338080434325310884694831555729402265394972913817581338619457057799561808755951413644907613109617155928376585840036489374076822257523935988731081689667688287403837192827690431514106997678303819085690713091931340846019511147482766350724676534922040058626677632935516631939622498979912708004465982264899125226813124300528104995058595676527123591494442612554437618645029202881358582871789577224116380815161831603129728796987480139828621645629196153096358337313619724773332353025466571196902611237380629030242904275794549030022660847446513161741691916851746464945459696005330885252792083472495235473110674109099223541055506299687642153951249355986311346661725116890785633328935569150449485189113488301876365100638502565916433021928565596263914382895068324838727165616560111531517055222955765944972454788815532316417453267167978861141165355597588331979638070962998880767303616940317736448140427867784251232449974693421348217179595190698204602997172001174857303889719205597414742453011135869766256607770970225633261701108463784795555258504578058879440756064974127974530918418405207558526462208821483646754652237609210787539190454684852349759986044943322828073120679922402477507514105890774627334319091255451352225329275913842047384603056163154236552935312278389759446515787337343463172280001031380425481404022090580405056003860937403435068863081434683848900708938565050027569059678069404698435184535134141031615133683043714786642925389717165978629010728400758939700388317742648163725113277369926827709465342583596111881955092462062153978121197244762623771534452048069819082524943963962251113831177428978535825590832490480497516047104257569753442551515779815600370847230603484753977513688390404316017486248871339311818523029425425676202485688393970836748788453789172574145155917919035398535077200900594979352939459631213445503368260690059828717723533375221941915547303742062343262892968397015058892191112049249864792053410872349115430987182160055762209075732304626106597744947658346313025598636315029959672352476943975462530206788193304372284800209305354155640664838569378144603138697563459200233462606995955513484754147891180830329816421587452922952678937925647752029052675349356673744293182673374571642465407748267901046778759085408130531447176455869894169668940436489952465247443988349583871206296485413357553813419500498743813369062703973874586604296871595820715766599826607317005624465541763024501349159567288942619746144496908671655859782729228702723774835097362901019130417812735773037781804081589136005207315806941034305003184349342360269244733060013861119781774472669608928321052543116496033420102032603863672532889648333405862204843616575362001468405476649666473566979572953394809138263703324220930839366954980688240491622063147911494642042500022450413425558561937442905257252436320054487441524307305215070491020434076572476865095751174125413729531644521765577235348601821566833352520532830000108344008762266843817023235605645158256954177359197813649975559601912567744942717986360045847405209290089397315276024304951653864431388147876977541478757432610159879709758855625806766197973098472460769484821127948427976536607055051639104415022554420329721292033009353356687294595912327965886376486894188433640548494009574965791657687213927330153555097865114767947399690623184878377515462613823651665956337209345708208301840482797005728071432925727577436229587047361641609731817241594204270366066404089740245521530725227388637241859646455223673260411164598464020010216920823315155388821071527191267876531795071908204525100447821291318544054814494151867114207103693891129125012750853466337717749376016543454696390042711129829255096830420665725364279472200020835313883708781649957189717629338794854271276882652003766325924561614868744897471519366219275665852462114457407010675380427564184440834805203838265052601698584060084788422421887856927897751810442805474427229455167420335686460609977973124950433321425205053675790499520783597650415379001132579536040655172654879022173595444151139429231648950663177813039057462082449171921311864129633704661406456900178942356738775523130952785912774533241855442484484493664210731348819180640189222317302156645813473186449997905781662091469870718039388885781280740226363602294114354869871402143572055947730892808653678920201935102605361567924483276749476117858316071865710310842200560259545115191391309119544447844361032741876102338843391687589233423790859841968266525610628751237572318491474951945985728897934981791761822652480408237128109790772638864286067917082288575852703470839714561619926247844794692794996845945632382702297364173503430783194115698247820013290851202878474805860188960045901745974055630732714487679085288867978809970695240681006625611440014983413580889737246844064948857074167687916413224205373654067330186392497910915474785959163865597507090581175924899502214799250945635582514315814464060134283490422798357939659258985200763845646681640732681928346007767285876284900068874564639274964415904034033672337814491597032941787294155061054129515400159393851663929325677429557549480046658273579653990940233543644649376827272541873627547532976808190325336141086433084237771738995221536763095302045902438694632702895293994483013577589081214884558493819874505920914067209522469096263076941753340983698859363700314973728977996360018626500174929290087931189997822963712306642297996163582572600112288983647651418045975770042120833949364659647336464289044499325396227091907373705772051322815957863227591912786054297862953188615559804728160710864132803585400160055575686855791785977899197902656592621283007225351401525973569300729015392211116868504740402172174442051738000251361000494534119324331668344243125963098812396962202358858395587831685194833126653577353244379935683215269177042249034574534858913812582681366908929476809052635560638119661306063936938411817713545929884317232912236262458868394202889981693561169865429884776513118227662526739978808816010470651542335015671353744817086234314662531190291040152262927104099285072418843329007277794754111637552176563589316326636049381218401837512818884771168975479483767664084842753623074019542183217985496260666590347925816342392670947839907062923166535037285019751324813803837070894638925470887039085723581006130628646664710006104352115778926613432214655311411882596942926284522109026688414975763341554921135581254616558078273470115814006008345762133130389987843270653719956709570847385786092649188858378739239165554263577301292243641604062551736892335636568854365851646207821875741724364525814143487632761341752707376754922276287782264765154315341585713773522730335403376364204258034257264749686217823666951353410677378421131371131987373222891805275062812277716412494412401207125954319991746574745892582613712825555535080404143944557295994554635608487251339462936358940832098964801619583130429720964794128539388996265368928263807677168759588502216464582430940165009688797366157733560316836710386895228270941509545222744002735499253670214715994056544813842186380128799900820933576320736369405991424263718294000613741900579513096298545330748197802568301089672873802234820488862973130369689882640657904781562389778485365025691064231795736025330908763271784911189748432246868086340383964176127605788646574472284824932687443062551220506955168464669477183681911432873544815836350548146411099960143390595799766290646881295025039150923633011076070632863317393378149693380247580035052789782755750928604039420506342939327064636161031822879248152679306862749237275631852225654266008556849497720285909150930495425967473648331437236349555448901598668408362176913559656039519670425368863482369587129462524759031776813184977588276576740482558136502103649585505703259219957675334264223783723586058509403583977103476670644788640831109650302565215607464019652716999732373465237173456595514559493098166644006211599349133180135150528651842178828026343325934755850761168697709125580056185683710540856081249519403148064618719402577663285267019698387567561524696759028106864896869293315954352097687527137201616160931174250199709289684940034696242325688410665113304377412256176258658941236728171145526423894512631717834790276921171452887352955019336759218908006048633737786728180610254782570436788449503518925787499836694785908612975543084122677060954347612133717433156783790162012337237023338316414706428592185977610158232721997915062871868186750981665537745013020880333904353639770263363809098526494532628146558065546504823486429495390613257400496912888340518222933644476683855037967975809619983575807027759535968788226194659612223044549275600274955168583542582295336042834426318478068825395450746691877897765406038432512843812811316856204608617289408229658626174420766920297427930088129519854678713548623236610413216581279267151545961594352593456757445992307889205519540082316409719591250025455237503106735639748835542480449681383030671851931491335789202123605308199952020584503423499932150962634977812456658304680581824563524814625849331926195406884818446445248429486063016169476663242625231476322371109695369483824482316410396224507675405614287468267835723704895606990652792688455844512046654853378534026646645042339638488257719874953611300494215593735545211926186721478265416885604094928290056616883807637656690510740892510549165222968878676968631652514917701499900066637344546120262780701925698706225540928945194718778004306130021828287425867048748480826948573444778244078734102710824870269523830804910960482013901294024631244800159336670212658317677879752965963472576894326540435889267293950687860830626266263287392087327302547910099932113388977807814336728791448768373686467748528777737403547472871644217767820712964506270880978637928144071192505141148004907055608097229299792441471062852247029870699869227676341773513258602908903875707454368077876422385333700692089616351009233587303986543906071880952557553380364725895007306772122528078179471056481171378557451057691044322925429024149433588396093679321361696954251299731031032804436954501929843820842383121265825740594509426942777307124802176915781835720087170538773256017987133005505911377823841791640280841409623820847637393013930778428554545222367559824666250608754284876104145661362227642405914304455580856318180935230407793891614902116292400515074914068443203230365609954878620999194306564455332547135557365318516011700321550690787716752062881527885897149410320986984083048966524351030502444679931779147659103428949129054120361601695671222140806369405940304552186212879933092856231022418446365289097444640151986623183881962444822590783585914043686193019041458962693878907034982169868696934448086213990534591792826654304798207219634134755646525483143771156678459077797196510772468000293581546267646310224279007313631352522067062951125935874473134186492497282784796644585448962932905262058065248588707020879389134476083344653170939242408249328008915731319541348311820927752486880548733943315867562666122179355051190609992911379445634995627391898459029021713155706096267881673302940198464237390445098028030948975981259252055850973537436556825780313681902007151675693827281818824587541710721180806556448039122504537089422695358382192535075692834095639859265599740391316709290043996275976830375217503360879028295673068862263077729733533853682668734519035709709687322323738300494090123239274318759046526327095178406267264828893646896593219169521106361729757074376148061601331104911692271318609404145014842866423634716982892418180484365230538864559809839273836490685480823014267803143937440431807822678779494006206489151248952516543005634448375046751754207043313372486870633237561645232360481932024377596890914783372179553676992603235715185513391098402739063753280702313301755754269396202629423910945323537910125948964941812563672992967084250667599803456273455598559628512281414582556024841783305645240508450065988755987518601335860624932784487772006842296591945516539562982960591610046578907214842054861830418175604559815168088031783080261445994444677918012432146400983610678683412974872596729258786806223080115822026289014364459002301645823666709265571264559925790622304745235625575111770791512002789380975775468546121017307522799241407026308137792971909461413145802081087738121624539858769697371425881836152605069380926917712087321915005831977113322793572385071940612761291872572099404930250277748156614021327434743881966413330052634229082906400927944924808556131183440161804801357032507836323938921567643159620442612809700944107776130638909071294456394056601559246025454204771186140420155233371270501377121034570009578009389265329385720478576508777149663403003562380595757191609382171312222810465858388943507176431939973012661591423837170284400120399485880996231859472474858776584355077006934099220340378772192728370301380838144394114984971730766162961342059105014814283949700695951676939041557902856356911055547312684571497449635320554677940775184056667637222969090346128706829887104278761090090999160443821794511763620835379716161833124364431267855435550800507986124664397724135502128238026726719914989727248512981287283697489276420792868666970177259794407858155909332508554131299946581118527691652464790819119384233275897699573012098103009171001695718791616942270079528915191912521053891838538959315167400505723817401030621004380243011187977704252328073236575129609372456053680037516596164236147709330391224409752871732067976128120428026739256557305675931512645750047875756531854825821411574030473147492511910835615765732002546109686701890307648531373832912682481741181359032826625082549313211431478953352317043989053928534946642886074268371824902498092479487226633686823799580875637040808655649321905489637785549531167397935270799470452399153297534358690514105864096534514182896474439367182852711843560799285895978176543950113088848419163516673213692860830956744502801800373716458009168082972708715609185038654053436660045504985624687376022557041595800250174095361839287643458003670864954057941720085136357127163768323493134230703821274484501440529541695374381945459456533165140990993722722801019654652726227831512103467686166826131471843610025517863247950150022953695466317739589344131481485834694374523981159954666071205997794363440185078360899108948073419633939259318973940943110042116729120199722626609871927014024105805515315100109804996044147291039451030312664114726736839973315035036742741546992633165270432940675237449075056739508929674779115800864399992564817208847429250821546279856079127768611946086210349405535850134472190244543824521089284409498132717010673966471114931896789977661595488186193176900175027901783824624387873831483279500879026433992577026588005849778984624295660321276945810824348129690840972550671054732471317254997191901039553305847040728081693158626093886019147689944137673621432083607375131574376316754666479186753896571555100850626810005119827486807780592667765654100834778571024250133253391587384761024129794736751001163498977803745930025457609870671092153597115178252014281216647543034075128600240297038428615984289816602143429849088917359682192284469123035904329877231843309914187264674607558318725713138832356015809009594182530207799397648462597901883341793830920965841463574411985878296475850943053008148341821747826603773762252997703468752903517310792083220038080809212164346586817989810504274375385786789186350517717501606531826406928883250135919517178537687865881752366421534010961295763074762648070312757365787762352859057153932484576503944390496668087711899192498933896524852395536795827530614167131757915756386606004839994179548705868209201195154952031294562451315422506574858629161606523796643010172693950282294667489681746821163996794950294284013099235901278250437428192557634533217576162292751110598368271567229778620053722932314082887058749444060116236521627717558503013451471452765841864277071769968435499620257547431811994883385806759692359580622165832464092095350648357935817742903018315351290014321495518177456908388719320697769695657771754499149911431368950836160692539606469893374870942933219185601299108564470256257163505508620689240297589684714283678684735455533583477652536156578189996983068654671736445996343136468195427420490472433064675001442697508322369013083895492637066778406531328664886080129513771720847581157719491012345141774941482773580041432667332379617716965698582785832300505265883502247868050648201444570593197343382923860072601696510903258980909912837652275381493529845099414966933862815568031306981064525192703818515872648691762563239441425216118427769145067718411735714396681005615483952443154944864238384298900399826113322468963346522104692545137969276009719645338955332105584245640187448611050959111766828942711640054010503770420346052521318228045892998637903572350665108782350043349942391285236308896510989246641056331584171142885304143772286629832318970869030400301325951476774237516158840915838059151673504519131178193943428482922272304061422582078027829148070426761629302539228321084917759984200595105312164731818409493139800444072847325902609169730998153853939031280878823902948001579008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
11000! 316246240647804772964717834667733148312352964165418043350226793444991465058722779760834101583000215355981994165257104267108085577777970713251761829125786454164982296617766047358135745208687787507208665527547750721362070682847079566899986761667544056843958208770580206048150528998442651382548629099628330489215885359536828897109156516055308035446972954453152096585076117215459112192536538970896333688747622272259977305180859703338233060400303718448412765217602038408832371004926254148006757676665318566729688285798945338320316352379381251799628013484891225027118542956239603419096314642526818063338668978074144421935057932159333349213618539461652690369319005048832116036748640227102159455945959295270668729463685722627908064994837283979924587031373949227676146598324020397750068826282861826808675893762411522813463413671074325729783346523123513460559814015894925505771864488087965836341749348238839894706774417760679750330068058783868144006528267895483691203866268401018687940283615910151788531644590171552410625005642615891702811348322217386878153128527900784708278298446577311171150593897443029255117526582780692912758713509656511328301422320789431969505614151945029080396801531408849228287163517637833901179157686469658507902319277891904472789335487505429619714047093591888777392672891782873521217336186485947085540525661089427273933477137697325120173390840001498649324887964624650577281027631839833618750091506812003886334505554222360942343529959999974742228943027984006708122538401870618649638812030282341021669244555344836497012265746735183813898261822002851017786143712876215551880999052832718899829511312694448042426102851137887728634216517888117443335290858959278992985828662906789565405073376789230386043802359640634500175073616427247063292599956738735093967967823297333820439269721109598709020268216530954267472307283404389943559929071199855372617700206719975626910030829951597859699252740518877923127468150421770172105598781654486954693580648209142599515822624055040444225069758779111677658800275872938737595057813215415806311117259884987890030778197498633392339583217100866430283864949184067319402932894315180998751439821592398470902145389029820868831953334245276474527856593336320166955726462743944632309190639756116067074019676492180454542828385504992701453821715292588351231396533328794707943762498350492608215957040654590669863736265843431401738784382358756547410955203544261102874154144942248287269350162339253888907675063533172336127019286884141995069272675145614461582406863634840118891031383082289156988094412724796229616750347809696634850492077092134861501126723386050566986783826828783337830963924442299121435726513228604345031496724299401128635737576998958563720791247738360585050335518004172539307875319118796297182299993404014190030191613497826279910074472628391249387583377145806170909900610717403047291230883328774444067318290896439986020944184418939440405788914848348132454396297830364842340453823144074315127097870040556166955607210696346341864668825998973130836679345743673891039415974790819498650995971053561972376960837736181673546358029160434417192169239707183342661889565122472292700220592866646174632107205009443444227012897562068973482260004117219846646329802788389457671253712271019460590031183283016124335020339142663298771051785224324142631859782470972183529859322113866185959140212077059309203654003577553112617927163285079489280294475552626733456035052554884232655120882447416050225506564827258894444175653307553473593743120060051151239205579336961821719083880578736383061737914712551364596292944690468156376335849335494552129290789558795782537161403498182169222411440995880442137206568095787127386942660165355071746505242794478042039466440662853421536184200829008008911829301765016239134592154073325115542743142766064701049982338650517087839924027719182503753205437804922607453524091365491171491802254171429215625295655160743056171936705364027225203420642625004177625833788206663615479176122187330677556442345271492146358256262990281687821749685161295038974273213215261795382705131051936558711011006619230212467481895391106490785485017138750143050960075512549296576619380699610951689490131974054543664317256303773405300535298525633867591120936265770803778620249138450548600363637419750953342511427929669070263817331344385371633692049033827650695235412106501798578949305744032398190174469423015464927302042114466708291576304652242686510891003012188008890176772203149261614444133713888298330274164677061916066849149975724954269367850114163668548454961006239060485976662932820824662023749035730447901430378813889562354224044032360616802246530536491221193864429085632781955479768545561233497627903922086535068550085316434762573423763680895127291725480078863798622620843334203095956878377255576314113025647794743867035146831795964996705397505117479315542032285976041778916335081284968131151964663424146524293731412649419438562521561169966667895886562120231828392032372269030627336980549894082217142881089594557676564714763304490707036451943838465673914113341293278192731058165413486986288445508285235249420000010824767509780494180928889931605629696536287063780075764083544490482168684647045503546176373128988943770089253643450479330182922748973111831531288036114586634702745552184628746403517770433790646436796004808309272762540814270240139886696721919533752897706376687337065037201271749014186101687404456771254830800832141216680851180116263038888842526373781932568372078935569275215901112663581110737575455998723385954971058791329611240642317233210037685197455081565347806457940735658113738310058844635261377554442674917751268198600914522604045454835104334467607538499636044816164122590263765154392230660531457556189195503467589586925703684785660982669301386558298045220771087331563424997088108889210690619780679878693251125149954583518400787163496863459241960240575454772644016726969602471560701361198983246555797700834897131646057169879419001846404217836338904321469601047650816472365588421718657303828068830358738660504836103728517616109912458688991235038228069946907445737741038245745469432151666511491499706723653693800756902121288795835963336337624182027952335876790616877434362854142159509069070916523794168225604861418351082035704718475060668858826718548910494762823479624721217569935810291492910325829625140727478406128698028499085385349029766027244554363459113374243395395038058983451264357716723101505421095897056179654828050387538083642154361489774355865515848093907970859539710011585966879020089400950237087383488704058723955120216024354926282598152235654220523642603871946991805905184866480075134256740482557409075267591245768675584616068860996553461989995086388769124868076076228179949011139694229788363940443504920071285619717912585155616524147943978564101046521678043374200315357582153612725769865136897867281423667666192397172492334385106253608362041515930081260870516429919201559301350496862998284769577787467039666303747155686093034585761185777984965882603609748318591723581529632968004150233851742819689015370241137165289602479514088949509490644813016788207310744127853689131871912650604800334680371138141381479828771653714436693525079941855698694764923412586182927278868862755488613190558315701348464758321792617460366939311606699307028941277280731665245205699366479597973265006998971306320995888905804758216699739442107239003755759075203775329942722307508609201043024786437112146888432096295360256134710007289501640801941662736505268073041183921312118603851499844038803956752224692798631585685630365301606924718098056617866889346621099279727737137929964704958833242514559797555644018880729871389429324603544772949008820888290660329319031378539330547810976968314607905614542792356916957032486929493601413771139985507785591750879959379303636386317979552069153210923885186733441163514856706423882092218819221149514582644922026374487860198738178995553377986254300725637714230421628040882102615040827396084919060634476075774637871272646696025566714528343533208061194166642626164007643252745959354819083254712939329551199843843814336894558278115583890048453902704426643310785620550656795686871127447946811198629734670429917365039056140936299859150078418510099109069620637200306925760180853684951814464364106561345456542894115717269105270643015689810376018559385682951282325245489975196741079122938493391912037320573313659394195132769575533187103047863022902106159490316396655756859343764695807364217944384305046254193279824287319493851015503046088368434982061672829097402698792251192102030667880712972220492460588087190404073606621632722009520448599293641112572792615418144648778793998891849252613711650407849927649608450006657779747984851314645589099416202306685639159772955363742880684024101392471220852574724696998140982442706889405746917050617608479831365603061630922248784362488856108338536636125719545214410357508156309170475206326065183704804159317135742728251588069794302762723335520387568418174110869810125245089770290920257891494863692083500260007478139749311220112724435306101202436687142831624047298834238516553240285886721091258396830005483420967059975508711225584584845311564997348599661191752527121144083977307416974166324708313597031227184683338609768458054310336740261013714763336858700181213567821414168995774700050747244981333011783071450229800241173017672626580612600639921427974211672678010627926881686953471402871274939022164855920481538821573117689408649375726265905988726555291049444931183797168480876638532743177123048690046579590346364653011182258419443643553130564343501450065500997467282185185951424291514628641441150447134905266935082026909658276287682488182978361237582774774592052540260252420393152342447393695992158281269685840159158746108378223412687217985687712365816823160772543639910395328466457013995723771158396507155669486043121687505485276419721831230309256439903775777993155947347564118976848645155591613906231880913069997694078501643731897176753554575422162734081207375388716700884737530645692243680503089297802602605804416272782970551049828748572210225961272694282513664171464393679273846376183050896841696121174093356293768056826663291730814812305034508758723111583553316839249119812794278699061135767256077214377795253183653330505719509062892881849017508086951588693265684723528090022270274259456396432472916858063959001751609251444829594764915941516989967764447550797126995372572146503257939928103456635621151825134888562929474712831281959010585901077985611010678644219402578770969672943459020609569032227624222533620681567225408501109983770151605681183985397990341000171220315158392318852982949290928488659306520706789536474560170580129574737334633060522691108278431799743990911435141695440966892635933210024512732972050211545132641744437180396535071487039675264661584826862583835980314317450692586505230442623908604511846902291068589861082820391665076557631656292889087670568379485976356277270813204755154651757446826417556528064773107403628533036957483445872431300601750404101748067270938901395531235796181046866042953199577511558121937582518607883627648582754883736586984906748059190109097003067119969283436390978021388245018286574945327274530490397617003760785303874911735598441782735543756916640353291553676759850163133732194400335792580412981744321269107572793519776209723394689538828873967173252483496694927161614591531446885849429010146348279025966811393972782179276155782657482796176222574175855957111494251575083809778322670509450324185394436931752088416650555032756226966263973754308441418816026469184581802261798809734297005191303458235789482144644079401681679382078009345804707550274301342317234335297425096029364520110045836071937178710624471191512454038848217038235073873284455870324739532394536169936446849109096460188738595029425879208486260533339822392431992223262263451345313845222499707411252224186634308298082868482063482638515268119988302559609358905016037071270092814170947510765354598023083825279455714905483987624083988130649645388420919831755576216825606062885824446143106960687586537390378615439885284823211461791781543034930841002187558006562468446604181434509020274814492256343215271711801067430303436420001358570378837892276015817242025300216602517270282426536687317521823289049584013938827835033418165431780276760278716997026530680789124649204743741539805978733587748651387760389194871782282026312572060420834100035962467724889316765737285262127127744848140757843042082770690207977855301506318769441703979843493808506973150309727123391254873894313631195915777796627579124635025270193236660199825181006299776215285000930235433691774725983072282631021950643528261546344223358647283256542990801059806230135363937849041908665100962394845855439220086164064012915554827588498112010941279398624180673420180823183975570093993541938947276201976482326588207960865799486875348039294635947006039586088047805150236782624384194948972458552694151308798125256630253217456107442479342242911061403760905497250337772857409390508650919945962987899538010763571419690728311337706289509961989518565078695186828337688025814845455551964039587558679328583057086861325559234334129517157986375903723213099704394169290106286883400129270298525042326432110286441569444938823582598749721591152476053768770121204856615135961729910404782950253570313135289787195892058265776092564216328374244884990029139638389856403146705024233696176641516187135895873645812472816719722866547981460095557276268939031605565641949063368094574423858414166920567317174410630500361363386842784221418881905765342629476916383350119120588736820198708205000275634865472975589082732053613401100356625956396759924328268101902865539708374161611181838284089937332974389288062333491952152341867336387339494489814650418572361582339730913392556888783408390293805489815464694171139517687131254118453800710949224641453198083734945999484981111313058742364944786762573828018675271991891763832677358604259465475724076297927407988184114076822862024281092498759165633435049287973643459009293070699344499721086130336918019110537235529306997215730657657142912744449579871718852485136328398560863768283441130080409254466429360372086247323945932030441978057644786086515517004566892058221763122198492539739957506847093622335650525637704812063239664966181397100610782815019269631028765545510319617562124221616515593118693422290835283141761446853056267519884500804386932828824068523369453282816553515416776768612354418023972019940767828913601869204781289514859038554715710968613141214472390208835486806738827570160755375646073486053505789422921849339530777122960392051545545133194283536330851890965958325382482154339402762375754040947963865037873672552766095932532729947037153656105531632221640401612037320296904374490834210387816283319458937606042227796606392227218806953462151737848654777028382599387181099178900365788407973172927924610515199473904724372871383543090497990200078630795010553605361851052279186248597037013376261378184459765810298732696428771673679359941713262954528122949693224388283133016368487952406942778357799202413779889970594002562767428460698122851040377855055761536362987383247190029056391307730961756832874902715215697666367021049924827881631736435296666924703938819234060945772233490731395542712007942319752832258480088015702629203317502004069756753235325335471938615740407294771362976400054457513071715925514949430611264296013497778055158445167513647507450656119821846754269446096308592843290207454204428149787223760694715158000804236770942397556382292494657937905804458883759377966500018330282262850115923284868298611476846199067192734114079842600480508612513848022015075185411283807360773703613020702784835919792044613337945297280851607258532043825351300689722956834397677694661030538584360150407969273161199300302854314665535628697454825719121169761633483628428162267510861643593765595746505359721204909116879902782071879990184815618104709695088668255213294698195723709048495582060113956329216425448872882160082761548489510048067480380106549767645240575597512517862497886408984696549168353349411134291621007815517291117390918762505294575221669895507082489960660035125835779431955091689812372678279060423138787363067233418566117010780793889399852593958822335201789670538777425404870575901778710336173562434767909793801498773963010951386711246583860190840995603642086948849606348074679031269526530010660411787991244214614708199169877547403791809067601167031641190169322838883706672536665390126150028781601897917536083810755974558160460321603153944007639879148356891902450256310222014773078255945066933079222995436047072192947604156039830201843466909538989298543052535359402485565369623798358618353805348105825797045843280944217331366888719454080951800827041429223481442039038759913180037450096258700206209126322366602157123193042502242706757905569464818481659462774217207666747402162200611892367457547340494394184484031212388237443380248791615553068179489191219519253404105371526867925491402824181374305226770127623991869284378828744302860519669781052711521872390523595689728555287664280619919020134755306641153324321586885117996952236141195273513203880821608038212496297014195237895918392619615373673944426907733519535356576763636119674566124210136400657238304497338178053944529626182839721126846267078283758253485436903608202090033037853771254281273502431731707099954535353501453918234446230455734290260078688140532165337009221654865697329821718225498786834779786151704439989436264557189554138947537856631752484853728213217960985766115164501963120486796278298858678912568946187486992851022078186045814501916717063304278421890324801246859719251666067933895100738005952181677744152864043021641062206231636056453692928152177351185816678746298720058776425302763346607261184406862385672917056079122724603557596373836859736703567128675023641898790667096263748822893629467201919860426038103074556507746190813115823028363859378885567074077812968443644450823927022177744240782883316172603457026621634374617528041292433008873560942457116203756891235814473681175337695588411001682670731394593089289328572369172583352390286492021031368122241748934650183430238645751699854392998317734180902542149953016362268980942902183687678224600703931981379163806184376553513869129507271101992377460998458712860783118360000194474009940062793705022070097348514421566875021624030611247327810920667285150270447440414136024311563496713835892671496904098952223788485349008013345256426288663279711353582284162437214688146692902425552840372273226636796666636879627760005635783851498766549156328836934696455908107578436674794261196741678114219204560090928556758970365946285981966662844947735604237333346687468899861945341982064062924248464790105670746462277813531926633120898465134351462031739188310257252341448741138586646736564379811085531806315935649171821995775855786241572772230865672142753782536146035398079634794536692634530662634177822973569270905257182892009984285645361180590489216895837990952542629924225547842222940498411054613095254736106575150772892753166331048282777917927275717164621517297335809352802385400589782711385901569038168506078373439150853388002290051795470728646227074259922706434442679714959659562489660506423752390654711414310670491623107432293397359451043081354728937544218441131498414733223491040136092709614888107430306949004819606688052380950057535593616103016433936126158920926221284302172588994545695926554759194080200782461271551596241607870217166258784072265882021235203584469727406667102408206562238339011301691516563690376499870917027688096921602643412944976800028936023570853491147018409581511556018791183271092359579895196494946176269332976060740587689157550693661490399428668010999838710330245696007333440452221807874014279502651790262253417352890885347826272924573043981052892970457765331898858073796681022039859480553760729100479496084088950163963900810087065018611238742275266486952828121745159597117186451384307035471715875241305139171740005117332961608239432206476321373689662452202048675126752923849384362989617042220646263600484929620507456285684253007368680199778327529974170715044134673192654876832515860301741398736892138908903631858054275093153025664777607998289297724733168745022363548266853504660935128884083580916971782810143785993695081390891529224065011996417264084429008052774653356468650799046125581079528882194443526528656054651232138550863717002494150557492156613294987215649891344388706013618478092084854270620435860762068935788531052186607854330285596146440319460318293211644822633904732779553911736355182784298298717224753350723478375049418483563430867724431006277060977159697696344563449390768463982953100253870772644951043196719657944875003270710424404850442269940299316837056832991234935650464050809259913135340940090659916791786508787314238438825273621343367468205980944538461588953347121759201534597514729873309498031912290240816985073089721723780849163221580851639125522043611573830206174362681330755774503000209460286634276284347742080244109847225664551000533970688853546946453680736900883335306757644078788634799990068371188970802826091011141008626856927396627992679094758251606251565010931037235473864257885691957825141465199578101293541204678479565175743206066140854081169052229830691468743949640484216600432549897724025346308648152919455597481321657882657122548406745959800305171208137931804478391360008503922990986791707271783733647121050909247406949821385815601006054827136351795235746423727433723203726175811927427209665621636267158408843410993344026799950827427274216681693541542001720253191727463114682629467351388969899014151050186062113307614707876488922295160380796059584293127281764675013431786329176173979815769320147858255459485362148554059940046537315634647124595228216527731431213069641616098805313454571918502131822201199814322976820819166873024840123791225613233621615446355535071234697830131982000541127838245436521852555030846053923020740807869636947335681486215370710881313985393595324301302180953315127682089818389158568346278860309835198910005355055289409329054324199552559091056115200851754201372851452921228812720304159606932779713142932676648085326082089714579695388772861208037082364576082812199558866126209085018678104323378950295199072604192644662928130244614267082072342368876976428164850541455271172478292537192947904040843073007351102206746180604883963642691884691457057265817172581804938387361827211644870578743670116522034854874644853303050598122240709513877033687187252127340450433516328729415953925366978169534163143042565809891710831568112202494048854537212801471112510309753957274768026634235383010424064637278996139661532002004769667619345650622714509778623337960943896900014703895263351464624220667506429246119756047643354529099460027628448384125098057642800134394839334737793423146043664076812554608600561713051790297100072571482555007060522993741552670604905541256379025127052125173290481015981216751833856448336982648590493002779494061728567376454397499738393229957268406721823659149419247517328836642150580347871150947751539882503950210795594872248496173522628627098717468042535587478189878863789027387501301005090946176974599969554749840413164606103143452461615080385887292568538287107476177618195280326495019915688484822581275073741767155270456001477297756409903137871874690808499383677440007225693901617672381735085823484228150775724309401630411248402091325968509962485710072232782804958988904160378464528107939168382666826752210911101477406525316790090936395952405173008566091594436116733709615130716875420891412531090262370616372401771125737335153810765537128692280672668148191283326975794999042291184757168157708898662402392053567131513003227107155972422262410167915518006427763118597301155141901348558765899438314415498306839005363919348225477616987416921915459252003378412978487676372204501670999664431332937559513472954607222613126265056736150192072414174133653161363437224150232254761684018714197882863977731341081650154556842439732538737299857637716051854730256027014717634543780492526203895014401310898635831357953839158720037936628271406348407418979408712620236429210378555022014596717222339969173037189769361052522429937990584261366917703146786108811849082894429667715969528342208247321837318916785663697939960927710986562817637301082985506373074284700640818186158587564171357629273616565021120583547112881583683898079179578990327045248685515068018721831340171796877574109466777528685009824513251723090209500387922070097821987524811495837171275800646130598913086646279606508185991050852034635884115661178955907290530326821233057443984495819212395694804701846566648604126434997269825482394058942380287365516792750917834380480321141219705873398842461052369169631783592815122398984893931203014730610101010387383148707747057916110312618796198847152572146558600477483106430825941910226078735580057639413146753374128774099419277526711338556516283869569760405311271589094708910435933937099507092819286114448379207415659955515580874997172872622626408613937063893323395639656856735817881311332369412414996387815045809959595388819952120254379906706635688733992464144067109870516880881159157753354448865981008539272110526111700583689145989348253411095325472362109085021492343275783114947137068077458372572615750618298422769613770318247157482299637437357086435620411042363060366612795918834707111544758193921073428874787761736007628712859902664032891710864227028718702785915848260523674206211917286303006900057649177105691367874308880914368758505780633314283845275878592332352727975173004240129026271906172414560601644860618300557997619021051934365088755291520192546147685694963303050695125948245836384029292164979060421285933834302811796789160562798845865605224760924838317392624733184707338331289297028628974194048034182938523759057643870957733398222804014624547162566727115749155347992484851093759156965021735588766236043613510020805663668648036082250733324602227286988311310859251956137768229124484182604183651458245449079988045536313548573594505518867332360828968464692366999742932471095079081383142545251354874553602888016607619159883348905771732707180202087862394124430867553253797037569274871027128728741557013518937901402258545968981949874250075242391831107892114432936359994677886863969037207218523226463340726936161775007796914874577223631651340132322599982268297148646074961944148298019526901783741403976947117847791194877784595435201920684031011235849534745039045200896882952734679803373625265385724280024924157827867859324415255604329237873496252255871502827813275383490662377783356146765076680627110532273848489844146598732343736954568049098156499014527374902534053977988500431607615497180513416268277030921930304839377311821765489180673630787515167713229938757891371579128793076451801856659630797102472831556708416006222163064692984370911887798930194524843872863371054118444392338463244531982190221991349441583160841281768908204892795874267626048846062822545718687188633362078613966497079543689391253230613235831933034329399309807993312646957607583102295541875954042543677793798857119082918802386915797015762463374015175738773115955033821328683497556947242773420720147055879993379155114978537689862862339912798626384169042527665900982110526750057125334086443300051021238155378242168178133869777075183226248290870660805453248064287891587360751424745581812396210061261828084876637093612423225092131572886094032875798329915409060509054143243234688991850435423278118157838357546671010053039242103303179920360741783288704659986912507929142041662844292327637247294241369177444129562062225389686619193834548714783068221282875326086480947633986286642999584286287323677581486780756019222264443377860866368392765355813229808049606717967764848047588144758724376373008068068962171860859870102859669668746372100126414763945981370787550350375947367723390886336787777214540183706580411708660700620837955423042213645360717431040010010060906944779147658652847247731388331796672769686107631303043027524394827884381776944796958447776559472431974253249229823335170267747882916827554968656556269868403360118821206454670420516309644383807502620756471037555776085165465767917159370200199660108411916308428820860283945281241502654453210998747688871494270512518174889975657315542230231477682423192148098240858505036475900553832039179582932239126093532471706820100300235655313897522774505342684467885043758241626750893994710611454169531191535768477450062405691915243965463761706469752215351387290669092849830171167030060662760081600577182632086308540399175662829652997888762746889031014565429046052618967706268060050217288587666396154082534605549269296179784647109377846785026900784818465305252480093233111452986338372312264514430575854067961110992477155091428685134382560238828344994925382967917308924070913884519540742841910426527618279546617493546225442469720052805173382298710166586364464345058779835031084086179222348940172094637038626783816555287832735305058620671411587260954846097936584020876438806676257733853379321923564992610439373843019902869426618890595931674006820032805113191773050933257528220382179087231565176522214680453484366273630051875952831343648341167290942437326128593295182839409368976264745378506291076105298901627238973908702558625683676703317878007549983598531801016474753798497951753686512173140444130588121074287873296887337552386310075119110554818858874566171933714815526011698026867154960195248640443788745942308310538810513019987468875776519102615920923545675984445086755372999705460248873761596744791494982009591422763517372275443274398311604392498396863522466406581797822074145643634623077034346656143500285462434460221318709325328795234626852501956136386448267481266367142309460732167040260369472526429027075415244980980733509687519509504665777984717443416923941809492459846827492424808682843134200126781069334155416534856545272697455209226854806594606809557666263450723015557521273440214345019598032945421430933154845650506503720894227684717916366913972517380433635508079915004065804490248436438919369819783128858618292611980576176671164353152621141838965412804440153618587424240490489310307144212381359516214033449275190649777359929736719474975180080424860657226690334033537149495247137838926213217208081036561842465640186307986014898397879885800950152736597465218904218417216920618534148954733784436080469431670481265400362812919798390673914794514038538845914187899660564361172680967107959928033908184158036356610325559456280132791004911244058398871867426978862852976927713622465106608603732609731385667742735054946011649524384297594419892598988424060532241792782519057410183844555475600623506848070000341662968961814199712190942463539414916340607019928211226038539850386990744874830205174908493680926504969114138881280243187494647668607273682663620907182616673804864616587720185565097564547452979563215701006968930084353827110871024892325450388420737548045304817751400034998616826296585838075172677226232208656925123034974708472785651029531863184027647409552803013200065280284057033511294584057173435856518750413838858260932232990141527240223571752706974654326682037642702977140826398271521970707475274988952719436175994104407234188404745534798289648673644439776608776672731262073298061328743527639461456154740751847868475421494418987663722764266740369751036847034125656005465163237986931229078842610341664784003483624576668960597221348174144954866306487059747546562640177273015774985138370573365495960448983557188935898846143790290445599892207796586159975192012344762300938667170993546252370083888879449159050853857524202889874668528150052154841598637569608818888206195092691761036617731688979608682923576824503137161107810520444876074604791355913229778827164824846844868671521064863738293701445273652293621527277503468538325841764803109036244455435887513590149780099340140782275487085048748897032423987470876045718505610655058347208816132513588486030384866725283977415383451366218534496124270557240061307879260609088602410752173677957356399456849064104609894284996847285820581371629431966359750506129953229656369618977312578620674021770117834581740430687868760676093476803350002645950413843165727597395276398072194875122538610673035535939510015008387975415340619083921252981244019712009519431648359548149211531375352925125993781757632423936227641394194710739287911984319851575476687229990362643972436395195726036327147601278953370433057137074737915439046533023090460864916042324318126956991751260908656935142552616006485534623384655088276442043009521592099242427178912553750670647040553095353702527196602864260589845578583255986472399013634309255397033566558582721779336621272830298543613627727606821184558770810758382648461273799942352742224989699766169404092321385599526779184195592869653845195221901078264646519100569449034097825617448756617683946021493694829819323378687750077457414243305294499937811297521290108468346451690710977660755427166636966263485054134998428765121687089833537291614430606977346357827105456515124824721715012705200902464024608753900943119359863254334132251176929592028754114928650310049206793896430513663041817600553887958365111546857186527592544912856727412444578752062837674285531125371181791057179571846044167599354195960376039532139299139825217661722894539340019929055752811203721881341318902807476410539150499964945371731540189958417216362990995799345765156004558795476031105606681605471279671474665027195783539598467463760706820154340173741264447309540507893643286957596532492522758393214414740551808852737076126087685428664736273785375066499483595510421474259854591035893143675545832660962043936049653548046208070081060749939421064934432926118548024447459640450898553581021447744677131959079226019843612037038372539916190785376681192481715528876070013844786460831718268004514606265491896943858846317560669671586043498341381397560784097479570176937490620605667047403992188230313976672617772600820436924545037646673433690661019316562856341957001169458177485676735643872483175191748267029055941371052312166883447013698165186287683685901792981185981726410669715154648799202038626240292612818558708815705201102279764103950785894195970348169869718342587744561930411302974096057904040924720695848046250024003453028765733634662813743186595218212086270843467560658807913901242818530348553523668936817657979742225097765668461506788507531260179598277375020793236301321797183081019078190353211905672066876917964437376360684366624196564646688205682574878165151752592575101020204191932947081491798243053343636292711727906999871166152354837090640154118783257505891558346347671679143714346660914648897643653059020573561706698236361016112329579041015341038171641815055075117800322426497782755769973313602399054477215040968835333192334185033684618007777739581124944391616831465158353684003871670199398465882726069948458600577068775188156279790760253806595270213513742373676722843681439671250521721730842048995081179549048515815246651184541320473535076057729990868994319847147171071217474927770212593366524951999314023700904130722008565416025305778503723816410975547096385159478549792491700344230896186931167258414706372899160737790858332492697155403024334635021865744065210202181520005591823675092599168824491966152199509104377057955880665364296162735109177175824019052128301865212753755856696185619693371103904470892743788383485845108040363192825341472741336270541598265171399987902601041348041421988715412980823450031513049924309878861918503056010296160789556876227880871472022354275633037039500234192724563804640841337381227290240724591463329092061928484956448782807617335615522172306523432648897152855532866734066738520261930248574241641289199174813006271455659949448404782797154363469888675278464112838782404273428118337175457600109373079284459327226776924385799902650983261526294296752274221328332074495663665393922544360050590601272498838051976863457251740174986132297292709421879561709884673180637274497587066635368655931498212294535061965059054799699272150986761971377378173704721743092342245314700421548261721757417470616907352734065072494441584649376980885953402160804018702622679119283549659730924653221654189683737239311005870764567171618600991337917024999278653934568767291731813878822491719723121623044458327957497084905094755091580615568013473219481684852204482050836497546072330265074263780791636492818181880856030902548573219663297207273088083000936614655560088326326178407670749931859912597360929090762355592200405047551654866864612192533042291601911385210688708193445737185446535816442409394445009023742218759011642554243741312514919515239781020669493917986154284782550160285859137426769045440052986927672131427015416168821388017205239230156122816033646145580023282693332318226103438902439102364106433575123600488844312789420092221429157897401562667463848203451305680850463093532005882846821382265536386876954778299181405935969505567149820216516868906069850163754389060293920156063005212062937775667756630360133297811577809149433178573485997706348146156061055880608907687700183580265514226952162130679311612139480563927953763257638633148097318828225127312757162907934590890746706344729529219857929535013420400860172079427897134132301431281301226816159760072644027376085675036310048453312388261330008827929056400152870915856310995663618863843732979810783760835911330025575841231852468337956093952000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
12000! 12018584067510948132155378622294135792739037788198715097819376985300383506608601696709173718781529534481260962709282575287620290904649914910764429061095254180454675197927253731985363543018584532538461651958849357211644362135051537227601220567930861461409054331594730677485316748002366447547082399310690342412966639533389270967752513750296654240087710696344529868949026229578788345818705188627105732936271052219426140885276359269323983440329498421616449698539184493412407081197838864343622198513572905629666661050062874005154669508537481851516374766314071361640924514500257035706327940854270763821368071031019664885676348047157672060792882317348661733610800380779776021680941011679766738568332099642611778570558727932401668813276861115418779999040128897435610363616559835414760961966384599054074593959258716800453692951983603030764682306062970568649473872602319921715194436866922388027352896132968599677708392832634038063852091121683721422932536622817127144957044599076415663058081113528736104530461723639156743999452572856989086996571425855034884951968375652801497930424808119703388049425072734267418346410760444945236654173374369908834315428449697185252097241834719451747599471802795863296947826668484221676384194902294638305453679262620116881506349116356109398384461158238462133592510615550472118171350570127711360474586799162663817526105478158075793776821914732924968002087037005156735963667887851587481518663125511703604714176738660412448496902694916176844551630102067192851018449467688174658548977633617423313769396937207994113948220641755841413979831280275795664568162197960687795001881120724890981099190827562653079450403292080019842334203364990581415094674270884785563237228707124828920445232828992941354229352441256761233493120170479230708588689028177913020592652305696047986283558933455702959546872586912893434213705475618356012123548945101138551721642237428879551067877393300261495893821358471753067055482383067023100247074795580364040662822786690259051500702621036801831236941854146593394597488326691249242802453651986266548057503777690791111612689051996703885193254573577990021128411790083424834096188501350475742811107953885956830030778023510652445513007570717060503569777986206024793591441173441237742250695502620591269221418534521945692485108509059863238858568927608643575000753739685489849310588073882613631170778933310853225984903974972461913004473947990130633880369879310854682788262365112162129428742653869882206735294825415336332355354315455714526209785480927725180602367166448225299633145956472733863615658949217934811578136829288239472269448976172117307249285076165970839453817260558449382615713695107976129666403930695035482162130790226387871228593476323438719696168382862981401952227893258988665149506458733102833522397857506761857845320177189193746104948671370216348117268833818215715486399921874865469568147248332221364667455266322344859142312450304064826197520760769541256292971072748997301164411384069552531961390291628116503316887273401494511160620731496401276503363081773300225217010542224707622260425416969681002638880440226689317441000229137332139764402752221689482660847625256188568250001451657483583600402577829422544143939864272811165373077377383532099937366690971938818840258712059711880400690890899860882925965151588747383707330160472886614978399131461232607586122377109217991374863602295552261579679001521511866892375373281775097613526526189667195398639173155859834579051243460837094981061827182584998933107334978696025597771358501816848835198220674693417739250393631882391330607622176959166526785886341721318787118454975936777347148214233693204951010669884972462972781518201126442255293026029610559058453166462495604982128769929589013866801202257962599029501335301871591641665670436644775844424214121931471931980043156105592146634100368431384319806924753430170205356439894892497203163370376910431467360775599446265268353720331631926285191828183137128195952750266112619191816891789430703133318406382879032477118925474845865150080733286941586700819818357905993215516056476358667342524236621431021001524872570349273932226850205602961262811782915456819788354883913258416943964255073967899336191357292709407965665596492352214949573165331563239858447537352644246688385412936347034929733041605039220031329149077618592645141608567598960734209344341475110093933035819716571765850618776675740656033513096606500414913143108243266162348396278522026071816979572303761862700593802219887620806220711443128394978509856077620691565061602777025242392500045037219696735030539871002127301230695798912138951771242689632442475790952924709287922182728443043756376045932412647000273934055829747292465389826124116161583764943177962064088068557966387473424138407047858376852442985865168063545104759579354094182650004027358847588076872998170492243154097318089430134799557999104941951449864694850205490096263390846408026948036630960462278653872186398486319056960181682535090672705902339244568111822368079842859217932449216989127659595864269222783906478603184443131485368984467938985277083861307135811823839574679173608483160956792964472036300667162392962142739061566673118668251879738532371787161203363022046869888097327808561142471988452934965464582362976786926504675493659435288914730056315246486959562883639378931546952762161197922457694103827843028144639431287155647340504601141674261295464649308805401255907906028469284783758369417594810053456709716172593669755992443391228883385146710994961770753869342390368403295543797906417343865225574192673506721980909900035092992572983972333565626325130447403120858637562020776576114282916070416375566914101529398988447406801103255312571092019146092531763310448903684077426003434129665223852925485210480820458217333062043620401967447879005630124220099436114971715796521403060991326957106827145472709466972141299750743347564322850166008724349733874572500030202769903227262900946653359201620296985893369237015436651005714298510585315622278932000001214692225073851944611497054441695860803187444933485275950708887316628282804819669107005323116926976601823537646424223133627678315513997164695902427083568839147801600741564741563649021120009281439689769251300689102894105868330642320526674173219498818940432412818165786732342058673137440544393611988552662953787768144395050016473159934559352652590873805454628816920553592570449241698100669685858349292235140930707966994902229305625002980640451032385280329517831210333419113285726889542086756881750489201674750271488018682665488267815052418830804350547611167092887124617428527283185257455103282142668623482101378731421118170522971978742034050230401914762308929431085302252662784370293127937736290776060521329670415149248015814477022101474457949327370680807286891354823904528812392563274562947534552224071697796745564566555774057759577993347670364032523824669233477884047417855868963507715949812467520847106530794170506686507251233475886077318297396938449222378124491627897891159640050791289374955805806920576686182548070094276896379690060355118070881232046478366799342022286779072154715624127851915614219922021602642153466270625086563095495258744319506696306322896051924274569144754245817424967861772046738911509415873751964025755193252183057765738555418680288394564123479512889681004727099483734132417044502638930787158836433340357321813822073913078876428172199953587681957346458183928366793639795978009613341994555241836234117518281131099827434285140628124793310854812756814926888891294652191731783908628316258968835455535894720518717784547623402260821214954491568732750506142904619718157335748344414358796508051218000879728535929529940079393382095884631290124073697679522566737223683788343371040646439029325672530388007019518569276337167493016278814516399130299263512190296071138153648866452755478558819916743434908587914363590929888440572471415883121438230036267374963238357601699391900942823641622754936838402456298824553240420672734074973074820193032944637934236132487040384928379818784614818938077338060772159871835094106242528817007108164838866083771140957964570356799472245417288688729210357608782325876138169092294922649243523683883795197824099646522047870986394740666217698975836032896923191742653463209983886433942932285078628409003021181166716958004275689026798562799679551706594981078904534915770954078951346998126823248103774119079157961027316755108013234980354171183641612411999087848146312178051279035013423617442473782544889175654060855616321226916332273826119293046768179932361002931799918230082599526247862702229272453316633679193343058085376690987418574637873754733857872705935630325877142352387475037607351639071512589848296016665032157869200730615343193229194531633248349492347724080700308549353302110412684443304789340024695089054874322881256486946121218793346212788781989237480673594845927722447303687738681257798963726735577284791783729753763634792338220402540020844599245788654813452343011041549248490799684725070609303440451782513251489630259574543302938788990961611579071377765428158077733907520041171836167123127425092096105619573540729827256711343476179592439755005291237828814213853185725236262641073001093436765426577425584922370259431588621828857886215632294801657043219861726665119700181928658930396760675338556740808275067818529236892178496815877189454131345558402853379547993213562869472597737096601096313134660298281279167356103234821809917692885240371155411259284198828643649286891548401269321027359412737850540577765532771832825321010609742718678820978087242294014663623899886342151130052575230718205692650547534085250831624211415691216707038407814413141655801957406534327193087201884973356353183250391769608092059845598285976439483007361036400620934782732589140398527110597783675551115221476162573121374578531304071331710374230987740761116638510329156966127719278314498157895960904544589255809445786167394563746642917527844102683656917593973490108265106046767193720650150179649141475074250054914442989393521356876378702283415915994059599253791133361663011174947601140126588101969206603658202556210920203784883564535348637635020478973484271352841328661682875424805617136908674163311909440829042007178478576703353044497225002025999179148448581990467601119321477858289548195607467870030900202106460529897584767833123417265863115900954286280279801260654087101297472146551058070659565476328494946485118497932447833328865735053220646665664523935176248096552897451204171219613115951553462152516859713792192686396270049199947223793907197596174064957399831427540018828697597616191803681483060520902155480316487810671329217815506480426368702693822506658817242218779795631303060588557352071134767556469987405773254926126239816461553428417417653286548215194573021749001684643457868796218922284851471644253665054849433913184054159185370265940623367870693987527665620433828172927794648441206750477667499688932259550708074541777582534551600610987677501282690536831558307696315713491999341747894791307683116026531764846324157544423304446679215748120495151209926595755782012588408473539883553565982034089015143394249632725221303063215820861210243157364194624921257634599568435369912140525007594316746930823709752792868422737445897853050445454008656589966268600144551063570652029476597520317313822105408950778773474329989340943761197158241537790733846662500522709853025244417967068806161477477589358548138569765352842715036902510172938782748192336675752341964059854175640074117673428801785498371848500344335256048688297781522226822661451806412645056013679633320640052466222362927353803223080185778753716100196087016124802369651941527479950578559125160159642240698111225869253910013595987264688258356266836614584778097041298557871713717011807592266931845576543765746111665844741487575636883136464429745089035149826466575724821517620543190782022873330241595098670564601777185692350511389022899736678000517486283861576416097197238220607705540297452601428018953165745257646300343357149014103473685309117787180340409788980948449096528568501749102351631889384494582697875616002179335512628758504924343543734128212236912199704167464807329717481250732562234658428308637119491695938845922328551298583468487047494965314770727291941506148596097283857292240873697369169587154505919049253073916589167685320168049846545564487868798124815819014805765467938874858803693709645085774935648041658239372681239979478832424088914824016614410742360429750577100619448742656571645474160189085432315929404883944170015977579860586437553416229249827847888199475042899914161736736567809052178600007490325240587503486506896134756050346338960286221425396028525403065476212664996529314692195621951625719028900949386126839578676799696187876524577221066650544054654945978854629633745558019334617826559814625172543883831866339105619024518423496258002006364719893466242201044515784076395561401213397308605622700586043088423134728441977143431221585684842712578491205445999889387921176802326156818586761414724811474047893370590634825021679781533338950898577419614449051444212848048109119209975477114123396384271812770064176668407918376917741816539378066367605766982894924172917279505407050941159013283884365166887406909929817198962672123884028804241073939615160317023461807955079364641112149757404196405612922764586421087838500548451221061889101625373803062515293666871466447318827827529072055088249987916168929549628704125623778317684425119458359486046246719258068436588701980320514157135859626785623689404612987756456923666999655648837637558760389204545329788616639886821947240700748179609925316139614221214483256695682673799639266062511675910200631870834982051597129699904541371361658512017834485565681741700573359480995330534420231382674471629694674355417571322558670830690580939701909076548588229324952156083187939986875508869408441604631207235540198582111683462499052308416523681491339957968801621398380755605344018920444702622909723863662136981824287960500686485979215403333391225138150991049684427008299171986676804872898576765009721018464847348033596348819570067738897995894586977546031569542064848819858383343748347827246271490096313008771903342085756725119950328473913447063893729511410214485717538755242929919186749319198122835779871945865440192792942286040835422786986599798479965532157443325698538757586124921283917243334809056486550068336954396354896077982468734112780286953106840746780218637266991324595715358731448684460453333612799634206071840567604955042145971575131262588923603586334531691660852188889436247354046556585012006891212290971788237764819426191839065378799761895304717186381135175576298087824670560317760222425313550918513638608589654499242710533311350381295668587462828169232288727170738276160444340101296310307049754153421359441591902101617605672804629142262711792894211228301243138840809113441947378121236871745616041028504146996575387791785151828527213724969153219285351356767568197700770578159603951162269821968581734000997734122681581527953529039290983428065209122880853867299257650839676999238120138328437178806646632269693480717170767357835329134131570765839059795730873908931763458288484504557636867607740694908243115575994808778173500157989009177681492528867804127181252291484152383036761005648095273151121650326809363062594379263208557005685287350629238056166284013577362085031221002516372588366384942301172377432874144733267475889755540440368892824275392555126253898508542566880370511361655983531919790324764186204943068251218261517860749029032914353549209026382881099842574285785987477483671271133179855377251824316005107019816470247336364341275653319059624366765834757928392443594770838948582715815898040676755865774723974396933761047565226751308660078296774605048013175770545093058129874808816826038886132340928303428363691761791123340376686514549838961521621701390858781501262993738808056334383694726877092945128297457761462663787975907030810918138139975909450737448838762635780898602814224034401383261455336294456914460212516408941974321916782540265286644423257746427385144151513822337887402008168187946172905885082946782361976450535543461025757725858997251761206470097743168103503510603068022438496689281722598521740372806508916667027945621740803527543093973625073276716282740013142706680328647316993734390629242275695021405278710552613212791411059912734394883731307755353526131895400009292498584439741786618977221973270678102960617186751876746317250536488395981105577097409688535229865584205551511618787091258122083018574698331565876249501059533004296667656176529114862032945438226747642560427010943257339154897619368576943912519380849892843617658983602122954162604497281652791559090398122685635410537945740364511230742850301078692482911592398242656160513052742237087140134248630086741126350587625462549163802333749635618503154174945248448891312784881616929281225921093351440176198911251841410716299324896460416842907273020983158974687374835637798957700355101040965703209415219209439977011142498658873351174050400579232376894465308025430870012214581296192496211853476721623071245401781136997993606683075414285658351548638340308126810014804670845442551475635825133704319278857301577068232333347768794687645729354444278449274238625284966325925013591460986427346546862590175081180009869369144428469388319386985709786674311306365315792035495531417758194677354306110955758820170635545555699409749681839397731858181183779852965413324716436316804263305933703673810020244511119567281314707126245069263355813552776605991289845496464836031345881885067522634606879395342670620617617286426935748472049219123060782040000413805229100121191429018342253056639665750845946268805092775978548427510948346760623983764935456518342521771423293031773372193203732166728095418800378205114165876727538865920469377517513680506574184082562175706099160525121978861774139109695364421137509746822867808379133682863261278903059277679168208731048834303052330953894781492268860034403620681002484529085263315085886484884799851906432969770084437480011378286144876853998787379644257814747160233034428101863893055601569661926091361811934099019099557210983229189167095263668508653591321088307191524925502995323667385508689724844995631814587685597318161714595830351592169494864622105011477663547714868699434431301620913283005956829027301683413498932063614183084923907785920920162435958649504579237088575630189988333590407551821156524880906460049691636489378818133060265696958254511704940389110560570513555046566596613630873249742882975996043220349237081164589118508718503901402035884887243401502846787409893395215532851160588682153542350672848776832788915932075138599944612403850593724167543036784936384225597443962339082250800756248870642508464168946214678442736026874452280156433597002974276678701566492066419212544235232569508599141279388830048104233671110179639809091006241893746739411802610253708344545721464454564034656936420273866620170682540865848403925562929045736736028429923957529793818468820290455598645606800726879096837247505099959924789060496016254827088740957605908744078442980412726408744604541428893805789865663681433799145107694720128319940230941863815437276691943308284951478547603074463459639401288640964518938381503199637860658555500679705558843281592838247218255227618958726447270005182423604534350825069319961117429820056093541459783972571303298707188746208999853032968244124107575696408409342283824502449970880321931721275611493557173964233218007039304758237438487896357306075417450365424411641461622672116624662889793906216149458199547858249294556722060335751726483856395950745914601698213580813752951636271199634816496808690002137706410415505690694578794284742502297072797376965279835182996449372041702182578931902619371255595755465870352868664658641657003305416773822207956465875906382791625435012985615479068770408723086907445130060199760688181348045561298377262536994500202565723352503846492468116580501679288618371354252919637473872378805548552008561126389775529829756435470534047449891104460012608793410798631929617373470350255973318029011693339087634105819301730084397251331161427817647458836318966995517403475021284323839208937903541619702233788080519354353944318088755123334351062209186579068673317829447986886981581535191635552073737956992011161409692636347115216609549454033919566357698832914009095616464907610887336907605795123305837973493736639961610332967002510081434494101202165042429004354624147581948696809547230900974972264386742724686491922177388423506753042494769486061465594503476709217693271902592271136452244858480587768168604846357769050016397457469713893233705654302707879882724044822819017543235364487568028683860039466276534502931400481163308530187525631857888617006274777219840837992924911117026255753386106410881545551728612522190609877061196944098368712235829549112830799154055187886387361653858207915182694937965982360302819934091207947508870629357794197144183035037128621247217623138674906700317646970677970503540530000143137884837557540672001727280808007878508599285004598772436320841074070984607608209416402542575252825322812107774810777326216725624170929034769994566360302657144530909777989530384370277835382183479396557207127373207759363796335955967782355362847019372436591611279799460983383651809723478777802324005733438102281190683637776065165597914691290552697726751148426643557299980773616455747267010571895670669393138782462510538502581522311258400717833893273570026482199882363250053748062247443031154451729061312516555416679372631312347664295938287436371356656298399851920415749217393158163204708746346233610686082343843542249467769203248526495645288001312765350953090358291634292994129009049255909673720953411393170836305873167956927133288420750847026361443344219674003980221365157822083706004119017471426683568303565782300804894443169477608942643242157502578416140160765697905587605019028354654963882055641493250743613675021161311207224900924938749811016721731807652005971417028624382806504911862465710187783692442708353813341764208416800312208612840143453189970631061321560324172436564552517848070162028146677292062560141222689656625442505611232099115109137748458084702220647985131564501423534137114726865754014573341176924403492930666824979507608233206957380812788469676613704957412920295787212057903611912639397036388411779155714249927933109404357602548025452583077884174929574540441569015992593890355228409384920123279734710725298809974897904484865225562891867072211592428854878907564022458148972269354405807568010479642133648104395734025754212574606760354018438368198982961345358879345698385901988660175937466090968673114280401637376086069108543517913222429567849394060835234375254103412854166238817717842034514483262816528022327079793327459003624267295578327036977519898445338895706585354108409929287389964010223554876108905766093411653430242308664822150794813499787339442230832103176228621204887285961710759474869112958063794493710999417224782014620925115026448118302927604308089648252225390313400723442507089985736837374487895174180635159712150611942308505508565971228581248021862268795861164591712938368179292013934070912890102357252781201097531946863035794138656498065514705976243196751563949897156217670737791685433116242392473099428640878316098478076107349681494217222225584924647674595621533181872546687873841991693246717504335086696098795330412003263535917974961008353522331826813908746855394344552786898236006448362260243009829670968773605022482768615449554061396788721608952377894684983352370859248649829175157208649426959387606533023115155654935652877989394272835886624743027260455607680162890059138598154776303409761959002205363266873877588584814155069915945512801129626911810092388359581618371551202158119551878724864780567652709662640648907465179394983487735698284460894936562876689026483727949193540636686993184344005097877954357950616411586308707070549499404397204435357993997989202416010708858318552469769366436248358035808112464618658103426590329036953782897202107646554630476770549362799023121603489831054875455468471247386942169133123545772242547066876299893981618379592244432160470135294232747138212038493019171003410429831119998635997074855127880414299721302424669928644050490877876011497831298356941811947757266369429877502400225642743419257551326350686105560086852285975095851541859216085518510793638092121654505326526401031164320965920603668133513486777974919634133488038803913618798616432909018537944401630034568423455016651552711547976070145698684371725715806118079062831953480826937411287042720156185875501285276094471682936715363035597267996766251468981343833536858105929630257964790668565135800610500524850614685726773775773033386847603466707334513628471842786634697632874866349980879891675168665192764593132509914456202219929035659712495707480932690610559470558110435284986482678918592944034492156097236847705249248832778567820439754321972405153517777337987256823563771864977237517297087480177607229078405569517964802481271333052558041081009167106922154546046121109387470784331692624100619509991003117519282812663782261587111754643146933839383952752395524223392989133156614400524059007635057232477640369914392997039081409260000666066231884463300994594616976309363736147749707220286150440188115833938846447005498987628626676256906748296827363500300228416802563567802477366013195288478469391060246783411547297154215088059216617638076533510940227879141022649597595795906897438695236551658384148989581451021213620100660035024997395463746955760830881947076758781287624927776513852094974476561616031034222040465941923731316973178989566362574669804655665636103846014259714221993094398988100922401602796904800645793002227307015167971606275623614265409650382068945245903146632155112118365338830988506488222736879442507797136301486778759944338815314228214706152507593855502227289989440795053542213673051051962948394033059852557251167917633394251986374841223194345268375444901446820999304749293997114863886954348475642944608813471660044230285755550204446333683763651226308800798623893134735930412939959798760309293839717198304787690014621403534517874545764701442855869262827359418013728532289192507827520550350165077106610695193384015330505418164802043724982949185199146776357439953875584068710458410846791252759406470338598292645954683615983219943011968062783001578099437628094472016589267614316039988623064304728859207071056587272180998502199280868588129214289367660855214620256266764471880658728507743299259840082153806472013639149247317304363334126852623099443176355688171871434542365514591101983103111723485816502186502053374066147211879374382897462346796879682469746847054825310397423574063716577913183092523863366801177104938809963710479320760511481972176587701535759663387224987645846593660646391833875957301051620211378117255636725758559511090795638391799378611419773269380989098811350504206877154119841433138954809848721871299133016631179704828931760389182112791162630884404587924310223926393306629033718902935488772729680938051951344596277708347695806479456521516885652976446423110345666884147655001872601933195096600187897121618386240334366053263917525899670667099961334924167668663483579622098577558238548234215783603671422478436543926644009255065800589753527073837011393695720219918814035656547483634851597481020184446784754208676921335526465278022496308171606228821035120413723676301422555616139152766417388330205993144732436938451725040461483433380833740287008264380076468325085599901885547030149957520877450968635902936953327813839265224187415003939722545037635524669859263389528405987529988867169935825017611900456551184876079779620255288227858009769059915629161804384617174418300561200655074360979392129062478549378895597123694581077767346109677542332737424634431714248672052308571591748714095304410088241942108258789263378817049537798297833700552366858451606381204862252975150578533759672764212199492100023034472615660025564441925029688830967979616600043876965694943477817241941179034013564890177856623157765739431363173220429969587566123480192806807602305634964314215908374575498378333859395705699553498509086648142046905986129268419382026624540745270584476936594379611281630013997546767113438903145305214771033247392868423497520478126277706905392152767446016660849457949879469379015449781780771689208471478040493218981316075920639654931429332036765629540444283372384902204880522444612951430743900468720660868767921085392399625467692079248138549789499118322732705050068626849808465769765296231810780331394744848241741680888410454555548628934718947272457187155662823098102559883555147936114472222856998414664506680466696271411723815754812277520400812193777564147901779357637301482861342942621368248043658048616856821558213028825045294172400437644927963996881492708999311896537120771610027391726321041675260517822406387763799913251710041764535332491935004369111853586635736334015795969919931171989369549779079995462787045033023374990483586255195691892692353703874471634057182821722624954791989257361958293430591655638613658524426161249491593578698970880190958531183517323772221401531643423113308162694642035160494100825861889796735665402847804436411874401461983869156859356300314490216450707039790284290842737954010645602277049415918321998123150022880123768064517450817002119111770594912684645260831018147376427589877600455098009713971376720968341697772848535164128315293256721900869827587048972540660097587684069182736161969044567695110735271992441448466616563477472777595091231458916906439139305070138764605758357998201219338589628822467034924402015704949910545011502183757811524592947559655628950931317437026133658386883834565373229343838764434120845565125789761364626721807268200018400126858299860960219473483862954580890091351382389936445079045837464896221944685002809372699769163713302450667366626363597355302920544320319397409437051004063732478487500768250632830048368711243094040718459943350736680110866300660125881011472152754831318433522992388851850205031573766593470286204917103447814989504514145825529789512041665221675150867652941722436034002005891145582488323259064835821093541530859245938413121368538871446839146348326859794158770806214793677611555269402183553307254118176851264668742088508613033447151240302038081144726465743167634176837497781462968531271502674546393297075021849752563876742336514273604542435300058893917233784642779356766285411977614641609460197010957245711439545593874353325631186828033840468408991254225728464608318080186506526558141153353785361566104944642327841211522980109523449385628570673713034792585589331654112669343089150394754187798795344901974689764782726524983348582955710959622975804066231916526105604890000415144202302108816995747155679023904295400065911156651636613098998850912355881626244003103570275427877463998981275501514745298719965844564151183298644170220032596980279516221371771311342039875562461208168791807690217765080054787697851478178712108043342622758738094737661168926391826368651906169136153636684913852446958468575797067786906398672697188049259640011305119869533737587721622495070025676713973169229638130326402132701057396335894867064557490076835505484940878779665511180120692776381476001821688186515252058591865841783019660316794701584990004079286530326911671825500945345091303575743720811789591046393522461304342512842604241296207882383234327085275141949495405901903702028657817769934829372663410223032490054329110347005151259151797638130266326416796611006191758043375017728960942128189461386483424594233190031105280226610756694928721843856489613473670590044888456413725768177405075527112237499430715030079426602149185864599921060109226942125544815995232813848779627498471050956689116487494248907136424362231544697316800193030955023921815609452562756185274560955414583814601006809983602743389648691737826066850694323509978544090025007221454852839514315121676493681239751373935691919825536099333167713132628888098606331581921400627527238911803848772463172495195571749047868774238149323387302846755712900049778646299300965301342641144243070975448839352771357087376966137255034744343305710961938458120050994461698956002465892476743852969348263156969398533838402418756493621525001031918717185902257422957114303766026105227361055124716036529549057132559099325659530826421320087018768148316887099071973002256156651600552933480665400874134145131167569226683287525589123951872863082211004151644746470077732377577673720075730695323175720258776312121532334951910535138949371934023256503294114187055882434964731806627973738063646140549283798460520815786578094758079012268442639780317150708498779344096010386402289889935706025177819590831660430548483863275040639729642010129203630937279589929907143377239212115307304438999264251010602755419604101379601975490578025099436337332536858363141462923083649445486683563932966723607765197145136042730354903828748039673795943390986025918049866805292433585962619448917014881841889064016048574258143404370001490553265888438072130156793456783055093780842869422750284129899148441392655412820982091038872227467562677694082580310619878424852711138901462741388955350181127394009672193411450948400342347444628956937829223686620147858876504359314850237782249167571792449244779969934141979510545682106575782198818967584678075757223592408442231163489171147810778399681141315932215240359673963081068467977965973971704591882457408337370078408807107649751543959676352487285203425053439562478903100852219130641117454007912662090614431380834523214243036199070264550515064118045857254425744138809534271190781492316327501823728661737031963678090607205488493233161392095860301737039267228327832480481353901215207183858039969621801083945143617185682163740575336963864251245045562382132251589869641336385080042625010658020022408456088019153863638458443256361559007446311219007009608329591096282951326086506296971596339941955727564574303416769278741086823789111571658733274762985126261202784406414618222138733131549155010476704320466337040266792983167023375086090095462612342355444860383499737589649300618133543356362525225426366435457785893190694720135245307291444352491574942615688388211991740236759783577477770082702203977433789287815267445654362307788604988489869527010673125081263970102677160824482851518109862512239131797403492315865243900079993194261089098112048096026543601967306343983976459911376177229028937530347384573807382401846134180682572200743657910446063495392494904874766818762000716276435773366990711153612263033977706090073833908112815654751552454025088865674380802057324988058933652266448316532858621424798384363506074825520459276464385096395135885102331548535998267828512627451822930954795058455752148324608457965018275541424982974267496718750122002330477703932003932681984401738209350694063503934704634173084933621849122458676210366943557575076958973758582660066542279664782052346622801653630588468454817195483265908215546367606348737952683206746340535567001612768185881178796312677641957919838536125702362362937599138446977629968806498259642277931597035875758991342637526354754320065785219835186860555930915980046491089142869713450928863577874787968785124407084780953579875810480476972067348410932771136683938925384987799257811605627955100131784060107610135112434708942309409156503439535312291639583119728945089910143973547922310824855972788694673846291233518176566193739792118533833626186325454516835407061382579003014045320962298616617248275559702189117268908672647672072508781384739335487305136406997009629470240013664414805550143060213099865858384236359357443687490877224861802209115372084574523626340591455241402020607352679983483010154086024851500025152160776837316325296592443598456952213492256549359314659415560292022898839767152578986336137902879805916145559272510571259935143306168225456232534650908170343326216317477451497068569730940814165487776206620633106280486572525568931190456056077963568916473795775329873863336652385911073918503481887757418068653166667447613116142098814300371717395865693859676578244294269467603882179276480198563661861606011249316255267017592998875101038689631978911882655899671451812603270200153262138188668982152582318892449233487861009347874985461367215577731855203653352290870280297265550314522125285564959850249601268727295833109412047381449156647975725309436196934569417750133572614891975320359492430460175757640618637921376928061893226009050419912362543286815196936337646276842928525267848163974793049935046113615012748498429492452264929219161995868116744501571465863045858052568389210391298085165758965841519281015414582293154018064939001497086997191170881269990205105877423732617065516836661375702059456763716631178711116389731046184708876921486847162102857060010122652543928873300224229133278063631843723885823947049798332002991362302085996915947949720949803304889441974097197826369496194938593330483112470446187352426132092296101771888778195706727911848765569777450352544110890455890158512275335979776233496909257331303483218508135708570965466772458066785780289705465694251873271115915103424834653107589285842344260670379814674442367456383943882633476903273203148989434320099492317080425344923046602465924585560621093066645554871254565584476817015904348813397692829186877128694851007256272161973048818460432943432894958303836981563273727535039184990477509366079939214390535154759679620896155360402543535767717933592670723931133267227343523510840234435095566311254091474552385760396076752120228672801081226913238910660414168887902587830955777317308024916854912646181153019186569053078723256498346654714206637689531932582253975906472272758098723108407689154423664206796636717839953925364883653987544248923798957452425282888930697957376135948498184160194928607505653943893884758949961877539662264728868987783652803756000835553349776986725448398714577904240235076794480759238231444796888810497582186822838249866569231725122604971960145122685491149185642869760277892067572217005433663281450995309720615156086879604637867337160382092812043114170922971198659346355091835868771832604537161489021714684187038606937528299764401268275042768225560912366053273110600378575016752500849278283724332294855932193133244191227272192770261295263125840924902125588804407224115294177504223284731416954718841055684606055535390777979606187404564985155111223684813783399920262319744154740127444214644464616446924449380052117664290604134617078739916846899543210900627984932297656863260074785704313316072930239012404238074041622162787570458275136675426598947794780983540260192192559911809346866364730604366237182101062428915943892948522176409401641777751289297224997322894560106733687941260831389130631158845724790213797473622410769709683886339736080696644742182392961330434478163621007409932278894868346697720443715897429032606575570700266753332613766378242615904604656772955231414128428102861664226869260639651133516119000019683418288481581754716514226464257332217833008397358152897948502236564757466034846122264694627710568863157431201470624528462569996351373668854337164864689097342995122061885473307377453029350087695060501616805557976307722811565732597977719503582457566482507153657607764766477689802527160871737018744185930408167682865078104912943419967105968041364203967514309707591589468642997872614941461807776264247564518106708454015399005684095547019182204966494719768355830124469088349941361261736743802731518026993787277606075179320839234333070592871453871344951637030626742360106630013961642377897335343111299471420933492606343437794263942377185540379059123684688581170513760810314767808319093164804993959338880816253562317568888537712406078254609101337771476014531885691268379548583431742598681462647215847428888457415690030255790872203567836305214590569667301299193496790090379831939571949922462966990896746600564192291703475991489845767058148594047121519413189425266971269570350039406193420926014762235489834776896168351505826386660125686841592043984050991859464856503311470220120409266297397556128771041721994710409393296409786848817350266803456228393120483813501218465234495695731406026637713458406363887098987267355276696735070949729847248080054837082215787460225457101766882793398551664325539753594195131069810857434244591618714688922334489569228097669443750121294258600739612986715199733074292805137380080865909761401465661734546712199632068991886021464745626030627045350821512608441735005025596726560794698872677676561137439161077622663653863044318884095173023708957420609133263280214327044607879462052471072547048576972220887674831929905129458894364276818329133400173061191119231610935613483322457658354714967751412326833269502329879803183613555808418176671248100319517474531396659873778453170243315524241218875560558860159577083442590971767452801230489622156071844300624271846759069460429645515698225091247716521678008888453259177376796067552830529988017271668684817678434462349817688597227306883437434499535500104225959491841570903877321824278683525229172396932821006589556880708703569345287688395233882698474452607641905035218689229851810999911088205921940574176619184799368088446701330861726506139009009332033661925687872132172216142852758360247335903162963074262939509435073684320871724315263494410664307824279750041141846506618719334883363747855434158824306876571590901312435215400960000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
13000! 778716973262754968825787205762612245890237292305585583362635499140947376494474953256478905991279185798218830078102622097108709932674569677600816962297583452418921497498245216612390998246272383886600276486415101012723274653751428426478270337523720594397032066589001303250996187509886829243114537443167548400740427806698527250158959551860048892202710805127129602037230668411879917798043694408517894838927874722336780071670169827838237780245247749167262712872764924535383721760641285337190556037513863883680921580652133820038240287774485279672470451036708585923975975832801670312648048271402327940087989530015332257533699113706861653477052711638774534095971759302259818407919751444079720246541401395751394043276277103784254374424754523936902359044302360093228670852189810804223816361622797274808624659430694372876341904063773506269305039861752866045998103162774551567142136482237837075605770692998727340114383396556343510853623363618371075296736263915193740573559065389202337994292419997534113912077285063084177595145622061792538340035648045185317185047563186728417208462410669645790998004260445164919277873118963544848907194644993765523939315248007047059802407196979459682777472025077492894121186587238563846591997963563730351309007394223912598896014733414946362586722759232808236371865926324445362790606155535217605456635035222192990286263237089613869350997968039622130811288001515217847763602488105431728951477754942649203708954897900761931576307668077387197206238245742894308543189188119839649001154225022073609632546068717924896407198438027739418782031903553329153795856851580450716932363368279758231032877307808232926164775632452578812397072711264945521330697029917354921595341976439082634057006863971873213051073546545325064036982305560062024071650516663008034129034907598362829591142203825981421171048463993997246211417806612025616915289888931220198991898362425149776879815126632699694298118322811447552539173366427601022301072114505882186245166006900914543755094289570008446822450462631518651250137646683369783269875562668525199557619213874706165747138001410894278144495514737265068080716745315029562805104582760003541839883834413097601157133796095000748903425603866185045357590141870465681349525788744925692929632411908614339028306226711984265213806430393934542404790642302892842536176144585008924259652970116316358693965232220269291884962066041401984814618257000112571404578537511168263794160394211233361915876025530192131967418019705807436328969005471134185997242106015363493079682064689049892671917834168015041396217631812081775527807705868031485332199195366845084481419093560142157028894414006376870564190869204123074769423594730516372303411689562718038529864377986719145137868348643537486416441265645714982769553908841394099727303660078633681198629977224582336564476209877131170929932535404044748354891116925921157598842339937241811982269874168572978111482922108356077081871768714286093219993566166883514377454296160803645174014137089638094829150467590221170424150116835211043608845044264471159603069892296633453833943617940857540394937326478732277721464892748182332711733411546643287124962592842290427352473205949875566751296543201781079729440117599906481304060669263313157807206433007709750639794437340747497287507117123545581348866133197589257313976885880367523706180325234603145689585577262027439146907788327634963745192542727459684912871237484800830105860070135040344572811761175039869577411301468375666361896376329740490385420106590641466341177433702614204795115808345212153265780784923155217796165908729902215682359928581445757618389030470789225355447058094154069149359497305705008486452706841447663279873146552576112568347340145162985531769412901411410020430538969623650333927965599833054462842781361987545190367754902577397840502880934235692942322755425890409908111934372099425690830101307433895926423258568480198307967743296283444715039518880644666563706269105564763626139342946705083624401583482978535190848527345879264576945260187200880119203538152908983943825051146221137196332536038777431078423705024314194038126945636949510448681910581316279577135079203998072177666613586688744217458083027647419381598107979962185226709379210647240714190482537503270506228472562038900872221617442528770110328655326944170034898070505616925795116553839838564172504100909874977848580140362193672561281489975260500128427728597299870334051420597431530606932571582783347662633805189130784957135367808217283120311392966959498717305212988028257540381219607298947538968910550026527615820512735971721270766134069955034946980560688676012445351721795181448699752675572169629230033927521421352574424820052718438431359586528754522935198683257758678110442515097249904079502184260125537374870594805821979592620628181518412599475412390623670896355004144804318506113645959410268627672340697280436235898219053638948458101436796437581884119872660032959167853537878954302859237619764355792601980354549754216188639484809742171981850649985128462870857109992510995270627633626197796792968003989936982671085874753231440065308592330513342418426647516178033552412258986729961714894421611309570151418114533127850269431060411070099734751428817005411918024727586552417443236467066683879178107671555951449815109808622484163300670793139493317838032111669321183239246394093782497752052924911350553429267965917425670431192650650455834131843166953332768093157796011359296372118947874750505946035825868958188092271921891589155601744979132594591295781412057571210856911617066047289596215115664096328267678903970751559118603242518851713961555612406308569502375170611563046214318320548689731731274580496047809020889553931348586601552588378368406473089428323499580423912977014532052290824471646056316303218910505688840825618270068284963772980949874948067089628600133098912286374331607163308722293073559167340892109801079412429333010556761469494791283834064236047841459164560821683178248858949570254500458440270827427968173120508859503014252883240732927876340564159800847367883069226616997727343556437625951883890357382901861570523028241014093099271849389069184756822151081964293186558624349119895161958327488729323806905341518114445914659037209732202897735851333010212598979711549369368072219474956623321252161738726846595981994338217363845172507570294828632708413137735942339766911754616616565012083978572077382267638676377060357628883994987643386457297685479794173735225556898817992286090895314054044897978116140757701132932534202883650986909228669405238326574774647100913656230161886550906385515846043930325919979333379409830798291300145286597252314031914964084599004075017114181556845498835259572873424382773547337631329979416081467771668451189567536703636267488534004632418975534076777791499242211272932518074624112700083304728359180858737604034003792313701951812016881017525762865580102957251479742531178388554661878220121388962061626013671375419550278629344687772917729148599073893025374244982132532407686424374266068662077062505744058475354119235849274389074077142350446472993222531098692675034832154359758131791310146101113139949727029675000022853425404290822075936537927153330987636512566128314920370261205960587214901069501226505836657467636698729049645802851832914695495188981927820534761234628544441669066900801616284754741052174265995547453892154541369408182505787646403753073634194079656141381837995627918080605392933783949349077959806409881686698428246487986272282174820074184543699638888239700707193831041014069945863064140511808978660066374812245128194912125615872355403534323602318432306849001355179816073142809404507246186191434057008876653582309076224118061495790555510652197911014083234441908185895518542829919166660570779230866322336619305082390655675592515795641260670498444330736458666614150330042957516822627545102026109350073447179838449923095890472230238857833838883927884489390989868903754221918033985940151491478674025573759889475933104634684360005937628004633833361227555864195569534446087126810459477160078610383151260939992181166083419451524537621385367112348287392427690808098028471172939529555983731243067203991134491852977261831632296589093976158225457836134294050640916196190515074061544283482719525653649865612897248671801236255976648368300083085365865717201516324607631448958117120867317750569405183178256999878506325529973479914243892190833888734185919023421877455146574036504626549243918718677882461337587900115869288442874605578280807715787528991045485867980174282182924148487900634076696685039295919287020671872834628843222845860828674146657787596065138502267647029873691952882018292379768915317801285148721390870932528446583530897164323475335775614220449904609838520134619729936324178770729093680284416653165597579492283136025439068127766657677829277217230601470847071808085116505287936101001095695553296828923842140295471995512075283213100824253874247680075838031926226506980406212633994638984921677400250345037626872952335730398117918751340377092229521104943596010214257271923586475717405540526345776806041572765556774096231083078817879480821863270269617241841236416126709538703591054039080826291426629438691998867518846705565808562150928687043660289034665315119807330636275217053398043998813468586532482360272647730123976954918484892905173504838511294136818605771150451422375296053195788454350388549583376532819539893996914270370808454410213576938574848293124613680777378811850615438558588359438209390201803564063621532617934841768793995852950762575724686778858946181362102699381600542567048394251126611423038291998779457529771986282766835420730128524407727249592935751085534533653366570325054321983305114291343979282719545412346227742210367099792866491096554021246872269586716158628940127550617875683040729727237362875716229245064987299144906698872748920926556794257009132712238695948240301055581543285134272665961272224707573371000266669441471925382720859111343375159432474231798885538628894239702223659951269915865826853729100253682379033016711451780323752931773758789515859723685295628799920099420808714016117880524655491548116568760237420661498830962415501127071855800829528918837220515111818860066784588479126663101785174603324117637670024009858406329454492261699268605675763577172361878162156819634567596914376913782875101957009617312324185728721590251382714845051049715017619529786405836344308229074647793482638345954873177698204586863037698175259388301122700222607898460774130512037639836842434729187510531054496313131016366750860976305440692759270463822514493027782898559572464879221783304819383323545717361313005307080245063357048513956735652441581185614812606363695916297880908135925495444312517336660655416573737898887718219528314499631969083291026850866496977639632147610610719418015761132611585363672134475628193823667763021429485497056713734050817177075370296011046367956299471542717126539670147175714775903289175444151368091946920918414139222350761973102073075061594045609643278395699507849872330303414236504987709597844575174941360821040217475831992998899368685033813883570912561737932199844995049974470930637650794116380159034466504849909340687274751529780077601863628008131078346493349800628008289508090149484403897023450822777121509213614746355287956603964068253616455689284161668659114382818338674321196575016838990473231023783801157012500800835194005196176081657878036637705801379194598941336750617187776620801334949866541744587117358068442434761467964833906893209547823414165970527187441551003158704844075505465565013303562906440356706743117672270807781381673864351437395174062447245355967104637773485312279924045340926592936229768442192502469290523695909735601308261537899934331800304967978056933488953044668550123357658239672414792265621420189044531457681903835229148244581693918382148352199987319352637293274186753034201604722697207602330063730206637475106929816862695800490124636950127436602965473482364434340462586689212728979511927693001576418058984343533089559275283893913157859504188650187849297376278643883019847356352909097224141033442010857054962408670631232640196345207326309545859979611194877251091019958151525926087605901644582047352019440808109182215392306223307610098977342469164665799589773384809939478857772819972759119921589203121994851881122876470683922865889775395325564791158153347715371831860167767032072152734357496995100099054856076086708319312270874421340594225277724183995263853880841237642365397244862936563192291474582036627802031033998893028691830872093353301317072677342477000423213428054354542151045802373485724503795597559253168931894056864735331160072791859573259993856288997146715352424172674682093919824855919807946572985734385833760934636772789405464409849758591008170459564693942504470218585952475087898928829993329123981143502650420693879789879544527008938858921807923608955494501967748657438948847926494050984837892548860609132146677321380631986801667617953860942663714581460242060961696007152858630557893573443483145509979689375869011066685796424575109235656295880180495583741181224838956693905442009662556006135717601852095479153165149993490080349693456385109767988411690689585751385953757837062761471367563423985115079562233561417880511142203874442266385084845616736596902954295439762841613899395656488395302750066718250174438767940114425696760593876293566929798364548275552781340387085399376306749817471163523418915702930770643142873746273378489210386972626696169488927707259592626971004261235327543734915932745601171612075323372533245208260305751354665476454743912380755410496602937181905445095037297219221796184876194612069669865116799346221711946078539708943367859464326280549572574140958231522913231595870233432738929623460486964609491643165575368294934860832407087399775891923274879846601720949695962619127913184712400332533319391976028221798623116459857046229725666942549988329494059430290439799053370172656382149523809049019751762740544708834916641408567049293341519058969201952710954246198273353175285210609774676890201471382557476136063075672253453497067080751052970401887186213096002892026839121288902285338765495101191230348002360669332925751046435582060609768526976925614803884236321016557159420935867747740805784882964972069404192493421835215942433589025348118208931350015965988855922775847225161721820954706010872292507920255695512566986951357666873271368810523006687619667144221520511642060215954452744921503409344503360411366998684076840675691157476310690831578301828750146902316952067953927398522576279423373852469999665672405684337867082728596948258818996373191241936994010898125081909205284484672626429275598398530751505980269617302562607608971651870316276727752831348704626313802025880655343825747422710602623786379314490923232138368148525088276952586301781671131639679798673450824518493010245238900890400287094572165064135302950253805051059420759870497451214996930390920133595225837340011437375572397244485938753867634531136444816162133439616255365256637087465914197695859375183314655096230988935324876814412569936691137749233507283886085690040149679388999307038993422081600650449158530219507186465796491539483445132824784077254693069459614100320466424284700663676691499996429042391994922524450300793533879544069264076285076995562814112466416411943391250742510826081725572842742371837169685604893726574200572249726337349541899099674802785973480479460502871242578015034120321491843186432642094106958273294911523592353090338109515612322916171982480642551103540360534535572121739341585133451070557243020232840395861510742723783295078881191976498112697721640330689904076756759355810690307597131993643410730294992772172385269537404384114147471151283005413724965166061399840492428632768133716499570521149716102757622006370565705673712747717114848238847400071513245560913875381343372523939172573776570248195201640681518938814607618245845316107702443552362187936886114286291878765043395697396277494301963068731101973211423510320181058839185580992213337547869771087371072892656560222768707816997025315284406302760339662048522448573786964780140830759649069292665532581895025769726481163240091626934074691552335799224108378151509764546351945129411285223258544722519052764777707578775666343653834016090257518399278795063106048183694127779047780645164963002958347952521160929747564666226848826493650928436151037825510042150924431128744933568572185973044307743544642707415681025062843754958337862618225340387721637198952047495708381742079263927551565479803140485794990067274687671721185648138846110697814287265578387282636972617390518326269990731204775785806181373876876408463169750055723850588799090002459641818814411663111662011293275860218306334261482812501812905137232223722819613647260008091688611861756209714875744858413866695871456477065758144367745775814886178017924307331587855055282345950027099584355393294468787069069299623444029932710122406294984250140195080924661438002718248624977412738792243004480415889314115674174790395613164402727737421487957093462300696310510296532119894434256747463949954176786701336626522872003000230865001510328218541432623875989117113505138056668010196231017543248939634365913033096207215002280239679234666792500540893059080807088807115111015987002934537631308225128887403325880406219003785630149003452654527739764191741647453789143625200803438954293840619358246062495762328237982994159202671845222674511636177233641080960291664963677442394820346822162506263582947628254872565359347792333752535059816827680213924629506712705183280824156414330716708890011716495286984431541000387786700680530527449098057663975691529803437490648432459602756324531000356001882894375266882683550193478623438588112642049813127685837727641685927634386458320449277134831596490181654442979522914855309121382014021835260156578255257182995695295886010868403886497084711052172441365050891864350192224890706791995018548541780633433785143068585960129900039991563643574266156150236723215431642877121196385688720794084142905197453714912132211704397398169589811369200480277616980370514773315386142884411531162979890244575216060416276214979025368595720487274280124448347084500900337955081340413025214697892723912518875556347192004096614670297973125926941670896562344555481750077770750275541408652591330253451006427468255144425269832071077769225437656999976649094095673947139258040635144642143901030493121044074027726409538361973724435154646068087642255408808459583104245352053380390144403437299513702122475346218310126576847324804907819738850582584948517230528566280557510968190155583842956152270866058995948902599094019281430932661602697070532582755629993173600521435756692508967743057242107708985728812759654811941642526569594746724776583829494423144029034500082036028081556977767111403606043894310596991039258969114313494578492052479053596472599899834057409346408436443436582602977624175545836386285154428339805375340252403623946847041911495334192227993885563981489723188447729313894417640140566841787337266227801275171171051319066644466954781459524685957830724126225208842917663605878634635173558799250400315260351818744482487076928449659901301888345532872721679373873145646710431571710662151688114080397953148851931792979450109348474525235394536271383226161566706641978740923819583634690281866992807966287000572398882059244683178003346405629980333848045631219924988617679879877530024276906881706865263244831087227019407606098056099937122453508772249701895493573787086151928324701020618448195505618315346091579684012773013418759129451775352724301878068894786118034794199131267935343801951687476278092618865436594599062548275345875605761981641981201994588026614264775693808479949326827733475766106543449997326564797007835885314857309833606925168197894948311505287850774630648905039544356220145264388389291042853832653172145623249149570440172899758338762635333032583545188019378249806333292321366484936178362403122670505972840989909669713180241919762880816442555597702606492258813915254624478098149628424166172877963303800603755423025130735087762504287827283556681877591590697280463943645227794522332418567585764069706983247524920347077439507286835178461287847030767391636739678012587688709329132379969441886654486846297928005103561779635093088926150552741176395439618610606942517960108333640199318123414769543438415098266041124448789879099666548240544294759029162050134493514427070447611076876047643926844591080211919109333112696521704372523153752068927469441158470175919984591611012955362573698924648952037916440262218066294899031502641314711605395581920918041927710944887758202361963356274806379407052150170792169641733456785590071866156177077209704348629571051212013385581525690182569737579962066389372091206820343402957733942054659127761065424690810835760670483402155679450971385273300332662777469448052100554797269166340951938543323102601305080423023450236951766477344073828604119696679648895500131910463319807223270701959624162976420013377746075155818184998246883996713364699005758079273386800309065742835904891272992920492610442990684438045797248419067328215410533587861778263953464621520314029354409683612070104497875593232319597370433402084998558927028986132092866056231366113881780611605930596583702865533177330544116048959398806198553854508187962002218505216488851512758628944228122840972151455519708192100086038646533982725912212950704515570805892664172254128358506427808248662394263680089563575170636523692708767930198370711620977192590784232292747862315370165690770208737208802114466088271156064828896622873710359535523402991761393210077235461211934185076510788984063013400881188502852591807369457004269819556687753876599743034258434364710844501617456799242179584030863584625453402498283388743226069931937853934194621982551426458038264690871538029922037163943615145228090339494463634435866499695739693184636928425430052246545844100919039705015759396441622957450863025319158544903369569768526873125396488638669961951206094478264017150345046160094078457030592127652253757379326395263017773967631429167014470176034510849430543073543808292588978915204386489340973092819310511252253103782690526047053897059459770776750643561821727300222889689160807897320875328985665389214548715524552566903644355817603274299437864105971122159023611944368914639433983644375757269837540740651242224754768346941518069316487228284155284828383549718905423630700753605429026227592931046679123790762600522701627227496476069940766767148335914081369550639577416735762022278370065348289715546612549025250302262074950503218557472177888913749881016165874903656903237038294634854288937703837074448073449116661283903757632461739503072819153938534927746961755832115861213366621882665865231191362541474978621763044916345689809367124625074386141559052703487577096177020334050958812559786963226998531224894397972969144756059939346849424328576386538766278796752388265648902068991291130153394864356979059170512874708502504787357875036572872801539932742813551671608310098650590651484439035517428369288356944486648424678694017440721457135880206922976673779662805555025240246602927692078740221617126094211890942395597623078922156792482692734109363245072523324232274582635156192397940088909777091420275766179470319266782451621671514412839422824843604744495734242484046705161958793444342417539465854191783144249802553046977256436041397545962166743377496341473047081545486582837126648997118146994583351178865514850911071415676900576613308820371051531352368240015531209334908668493293871311804688190564396224731824349449789265840215382066974134047385638682745338545790614000570235306549954974214392779522578481243336729747613913467680510826719831603425407151106740728766522061169030957990309008584933017662608997884161480878006867845037903979472028921755066658320770256714964763867585726243722883415737549893382131570082738500825388578081150421667598189356473466125952361669960773314582177097073419450928392027390178304954039551109064321956413442573318465710350791910518137815989024467463981241798064452738639194753891567449744605370088481638434635374680803463289133015628924336617795446034388316471275534228297760320740689730771668367010916461119330047225576805001550562253851934580747480316623970964411916415978500471470532681188141957510877010113401089414628421934908807918643843869932318198643435202788902391664078788195978317992996503634608926238960708887415076296275053558580046967823754873146494712993500386545579324674158941230418266516536262179316413462750948159477525196887506689698528912209191698854232526397880984623426879592274817944035345080937326774550423405673813709897764347556494619310803466049103646283594358834549031795231568887918957787317798908201718335503631202913334263886394818495318698804310284295362181426800754956539902582848219639324549361600039509125932088362121333905693449799381669503644283439771774483573699397300085207714882960528353359280574112702900967774450093085649418572054581128258262102460735141111834555760531481037826699948508627777582286513985006688576632645596386778643578921994029841386789023231771076938782123958239719320652550271252213045261192525357714483173600407282321979738707853308568981445371440624767806248367678065769208671934776435451204507298608824386746591929208791171153583067710942152838969864959819610933274317375320080635348292621242049002347933864943134664729228148279154755995040158960930410354085112667344541026177768384939372396749160861392933665910708439193696602302389701506459114431019235817816393862136142868232892114947284847998973356797686819366739783547723771336635003305917772370106883007999466027246004846634012686901115508546141382785184589152720357771730580430468596088042568895080679800894824322862161586173731172273427185108581400024981812903159909724193461381060755591103139304226470191866280012057821290260121711564398516927006055808985206141922683460861172926695723196568853877977773478506539365560010891246838873988637240373935070554649311004026696514641918230987844520854726429830526459832276740067432673492278381021932124934553107016122556700145004549738279901237594905899354180822842823941917516635655937478422075688142556985483068086910251426507174315207580530879668445865391894145546802556329754547742997516880022361419526915665368466105072917367279482701126067171750290357160482953883262270903473552720008370665165257609840601986503335696333991411056781123058734751636207973890590238214391220531903508662011229318178564354351148726971453180699632624250630319916785274779805256269333000875479397336946378617743563475876797733439418730296354691318429241624596169054627898507722159977410994124743302793548050904083066879529181351417304402503609809340437113304742069463948024357006909102506887127655921285799734592677040751628344513384881015947257938546399104024209644220138082225163725346238438350572431991489638525963985499183849177457276646593930162659058687894490442532288936365288450148021426306415880763826891443561604707544777221376370052596381900078692856039513592548452651946759449731401026509565440167710219763006042539447120225049818474422709950577671706809262451923825123938304461087205840982972601142988543321700635826401525668565639429798798511456500821526944678466783355895730949032119458066562723165643953909845294612153415022737410250786031598042664205331472802663304114176966430200502434866356099135956087610982549267042024350085027960345870519469856250575128196497175662437862546562767503646108506638215549936688614828682540934495484905472235301923212997735413675274990352344839578612053377832891559296351320282373217570605251375699473654866613857168816767082339735393070912142874287058949729562501766067464181468767299108572438218891861291487894799916312675541041825187821798861318484283266183660565440756557044799620776036509394570225388443978918460584246548375276011866044529011753239771459619841295856890861747992036096771447475112134763839837918635356210893780456146786775749887579525966793658416617824379979223937760799086769765616506736261490571713736933629482220204563853861664780283744821547860635876105684848863186315656090816470580278276399725498498927360531831320022604324881840232422089127006459821548398722120834155428186354403662533974994742109200024069090759518813475937062302758918464372519821563584212098349919431789178808881210462341259308699281352865966424806061307591208651425392519035874724867226732822575113032512917287921097523086586356865242705330875382457415978835886226120355109227192827893608239422793130388322358821367890773775974928469383933231622388440230226457419829019144371311091830364061270672712218623384445643676633128148421220879394098299987123524083292015066761459585537487909721589282563403157839642086553757877247465047159449840508095140456842816611877639836196725003836269709870301071379837457946127319487440378118775652592278216477023348815377847890632669807954221463652668290493967253519059829713942021987799980711423280577290835064379503952889216074759136762954339784049998872387797313939485060575853685316492652423659304763016535879212738001857422130711367881031903597227104854913241113122547648826888876401631107509318952918234717841287347260042366495105494122511845012715996378457510630346605451278017682123841971905512542536137714840830282528263296419573311363582378948181285652820611066049943574995533794223582099913149629146530516603738230818847002719315191451137702385499596176680186750376024196977659794160401413974619628905035855503141665779257683124263001263150465059277401527336551290297870832531544571501892095875192130277301779915992786448965876382785973396247528969211534545430568348059389343250780264440840035402844514023418235062094628807254265769653496850615652415794336597253830980498912626007612010218226177964749817393155771447847782918872040269783067632464443478055576210637652212719877464037894434577415427068752545869325959754764364964913175285040756676992559670816333300915705456005579263401397321142849054915141332095445153291376647751168866327897895646446468593811527805299104055430402755722171895400950202345358464536216777625927953232301054664215806350335011914668301041253997087906180687759790136270294415352076047051865978754315199742302540083584085989145039399345292710076402209180746312063808196507912765112956988970720489958265763243105630536940746271768482031871669873914237443712103265225822577342523782280102771661378178138026885420510410477648085315512339379889489740490147376635038661291187569333963808085129871196159520604590712351866889970068837288232105961234505904029859622652473955819954184208854647814494266833643543846586657217100355058527803901201822797274359074704008326792202861719751248167133200255978981363930103669146331428637899752948480132760015309896901607094619261404454763535903551197019231484191068618520275805229607444027585316361020979893539812762434931358576854511071225316405558441689154022457323967040036568215314111512127706210540103738855655236018010488177893067077240582516134457166269572168509562833781725888213340203038981444548384490189485791402651034850926840276203737183353762873248611698092227127236769165916743578927750688002643082793417401893217318974476563781344413011217498350389710619202298468892886446239447954515661206489043062949506293681348369014429625238099125400316047699592173020025532855198123301797317364267917174392981282509439665346643156371173410942715232977285632597444305100223734070429147459280026505095281426383059375460731993960790220099159317769265025175848442328585582555817801815994779737077228673511513346823428995011135136013166296585517783331309361029893161340425028130021930042590684147853596663233486320455580866185385568429348567213829691263677835269217159616067151720941670299716957098128816893765044331160558875850519474630976181100026069979898976900686973524248383993951936599019721904467906639542546296987157798944357480171028946271788065606559227778969550123492079459744272142751506373485125955215142607177004404072586948854942605029520078216951799619351666788227286849907070863372094879741467611973323719810207580639846186108286784938382060524946596125467317565299515396673934789747929502336896378123058664549005027776181758550070981381943657884846339473393699417957164391929327295804974709659458115179658721463905882368040615690373964253709195137068538481874862612113433713232515476846657816488623315735092149608584159172969168098900007387545776158651503235794075912763870150279536690073270758541058269304494208102467289842618404809842857238365567842354879888996860649994775967956251242562542489748484004050605846336947570905968429977538701026002143265642053264478402938360963021342998235655372380398643926716324185278918705614159788164410491363259770522009900992031065167857535039250698701519782203384960674210986672008706752201669612202062242114965589169268057864912371829281937631259058157021156678449565367884416557530622100305345533127725571757173491774902731844717805346118218642638883818326312988209958726892111981194236833282714330010385996885921421841480233268927431190605745045868096602670438555866071115216852309612880370649303617915336426742250203344221680464040955106118741026746205095132100708878064479553945450576688383335706269669618938581895547640542628791803708489165519985789644998007733799977558728757154153839408808047241659534431481499980926562129501006836710037163597229076850763534734053791355600515886223611220118297599268467708522403780685283702043787500206735524740869562307075294346174889843563057287245811442461999584457610156736729453622936806833490247248844168356165497443261377082836978541104675960998126597285444974536578324906575504862849813587606323861588902899840379833118596270920005055403695857133238714850272405084773617899429155605742827896875625918093116104766144380375771398623922443449800261342190521792365266794956257148909158404039609455002069546820229940089363826733928672064456049012006600380156524782210882941215897391290690385882019637863877146096143922856323655436260374501023453370545969427743891118549950606356749896582624486326088925718320356113705331774986942470993367509012242812594176313633951023230137990733827397629837685597366838269052648416128979322220490119358933485165668379251146310686175971074333243096597824943390037362483300137081845873013025493977285517123277809619526783166378080963527647818757474304441248196821291415748980426076368617137642291519450220905578794112207317612584756779666529007071317262771001256141826207340125697600145021905879123855842565605054065916291480459295480666268758086159704967780664481969729733826692331629618463844356412088838221486728501905119357779459302581926782376908310943770423718668673545764507152576128014215754809250443870011259246370692999416093527809408652687013823053847270641106634543351632962794959961103492820215746449038839710870397298793621667733937042439213200160698717104901847537813874870451469796399713218708166466453679575314790408752078359652539998858706417523143464841475033607929078408537445652264654963813172181770979492369354995773987147241552407343475562306775422430279915761358272196315758010901136140269328029548857324329989041848891259261636773048563369885388319230771187453719070199327653314385503864149570734410469945519443423945952973010310994434872623621642360911053378312703164485550550609570019004466473408312763642432484418122406799452489493216628123717031553378322920875636441991174409243778919082282455725799869376835669319431112399649442946808166641691250324834849873984914434326824084116822879839107053870717615208795592115943370331153495491374969325992165796355871920838005587868236216801620938156751295938182940580110395747544302119776294134013862258927739966913795879119754763116613399397123100839007523771634840038723075974867969012368514729267372883630302829584156839832675920472202109515461172895745500381802165929980579825738120313411626857952803898153808942208274221835307291022440557188477454303749987348016672323980524304980986462092624646137740794921426306312041752357258569271025430668033680922837568279059879959836528975583802369737956271728256276118171554625981083621605061462079711397915655114701616924911822059665040057759163771703972780764922836095828093462759384861558636625566386140456709529335851019198329076235512747801084020133044282605166124116320609651495513932375806636419848206915804067032527929983136936544992593152137510540193728488467929519934608659066714660193663101917442086350480769408588195638020760943017519855332916168576017516056317206935299980520581230650217737296694600904459571521164059169615282446068891224969006115030329979700500501518037591061316941776473004503496066906719988752241943690731487729579449588416199794457805902865424217175209370566456284989992038030168983031677891890068992438072191300136291464763324306373272548395201992355205153614299129583165855821999173258737382935028669261154871264793350578086584593783173673571402065702514810362598636891421195300719838712049216820583148235818083587336690803949845299140148400979698868996463262503024788790769000756470760735534371928691429270308333751458755640654204532591308365938590821130720730443536391238614050365558660165082962235887725893629142034817502521032591854065327616252693912520230486268773147778820693760208733313803162827253602883400527174049312862226449542919367139172173562992120449697799377861252819019521131186892901537331399126304286363008858488636150961701937318508268628763749842099480039352083222471618537553144025625531865838865239512097350995037639994018112573214974257803284461676385259299254802478017592288640365466310243176934713925257839292819386785596664386053517927077413253262924785099181005793793941652037224245749055962306119637274432157448140866940956608391993291806613005717205679726322847359093145912118555413366502368753425724909457475723817429688418496868948639492845512373493320985723711806529447927199930138613739184802501340690944235418402709179137313033888919958068820796423983214487366902543393755458546826631607224544206997753196340802656049547164351464184133087850626760215246396323990161944991289424214719339868310533721256152249294392056149362621551279928257898551040505472824026610942781160378415803341824236517452873873325653834774410821549979532837813509895752991828660784306346733170178318520076462015721364792337443575460905708132754947271801163717251976882973885798801820028649303394179477601581754370149477380631222764783485037314629683341712248867183111712432365132038886569383776117992434389360672283292131918892396288131899368055466602586061344959545606299083520921982474342576553512942672543046089885904200033887318496485129758862518031037759261923742810676849347173133063819184550258488485462621398085591287392798119896206252504673917173958310606213390322944597780892211459646138013285855163135163464501981100305129126016685731602762358639583752450062009564108443018196696431445738079404826053324657594944682530048296380130044891000163643614010224151137744129720549438124824585776407471929584027871968788536365363608747371558134215702601913636878890745148016058901721117680250018393445789347006326482730213226901790190735766450501939072712266936467768857774584537521855683495982414051100576184378904938969098224700699125448957850516109608735139998421927785283397484657131312421193171797865815449016362345658236427601273931438292505881363215547697965224170886176973812790807284306725183163509201876569918517393735999249361639660376909846724423445752689594154978059957599100067744907526975956720706350776118172867879240028968096869792735955067295869635030571624528414690623289838470872525922964092538445778340510337569171842096559193246039437715721282993724225353567376840774469323985466954390883664413754393560663737818264509541459293591769762460984585360045775904055370490267677346947533779299901080292749309398040483083726204982653704231421009280408350656706228673287296813545578413284378593718214078929510685929006681904040878149025009441483989879333241030000532043356092728127675432088126864788917239497966461087580994105348661595641520086376612742632661061697697637872015436486263478647790247740943043815569634818988006008993670795209643570449977712858550705108897847840025112603621743199071534210231994968944570845813012450457429713856559339004434780094220591531668013843007212756871788656513360895142758634978334842954229305492947639321130346626935368074544826141428818171148359266575554337738491055333815052526047935924171673433499677754370440208812439719648072155062380471446632847921905507830910783661672962346677784657175337334184055888466592428554303384030031711644309246283381622261139943007482361803665843051203662265872322899776156732360646790268255785694780726134390370259121919825693821867936227562368987741947439792297593443228530314842642346292981450717981708771187273260650926051335464696607857581648892198766662086441590048386502627018512178227977638814360422710423305203782998557997767932582381072289850327434956526404634910431791125937837046730319141434933992879513950147598485127059431633772830293548346336511143756450131173457714055299611170859927097237938098479048219785683681063546805531656620883784747946738438532943760854970895016287083202721308702576821617059342004217706909572825549912650740520066258351975682082290169759813832318324726658225375750704020135071458804662400717526346062198065143996048847693176250444085534011408505084121488380323522382877918756273614671017438565554316103936009044326440560036864152551164444218680044501885216271310796233746738243974856583503113702192437971677983608268279210988499190082398094084281652872880790126369826035321165192346000975294247176582399196694988862435830688454650580234567789848990374560998608758338037941856594467368895493885102203830973499274088582953200649519332105820556296712580608864597085361437142591429387433515987716770442808692229197819694235225111016933171035630044498277583974132060827489181858852684146590225803472399576929468465982577391365428238510191851179481987252605542168134848594029623123407486823755447068430459344776827111485732630223885011613544368325274373412603451587030855610603074723207504990868351194611931501599140544563073251288916297671584608169623830501829336127130657536419233022816601465467446994304749588227661839625342340207427205621129149980316850588664237216127186210316928914395431937837346907664105746925856604982760848484519881832813249524223674216107347508140698504978128311519787143020815395375383702411799808426947136527887053572443865598296570903744717323184604301224578461073409001681075016230093372119213868158636687481467186170432321435457280247130437872032147691931898944147311377631171174518986801822340934875765326701123933259510306087338872021582166395244917816434926537609580928993982805076529824962265756499501814256855189208865061172852434838051218371350186941060481660928519731704145118249372929978947810536194288001780370935905809321957421802095305725115214682507978935104353785837048488231796704359363088628869255187813800483071990683249081945408533847034744382784545859031978299122085285941542019953354494386148471350963523214326487968345995557507224153180731473563244781523230716850465268774040761382814563248852027459041680348006444638412875997286696128852312012860970399491372283977474878491104070238967854344186106923065077112733711870143844721984248677136366394182251286163867693503989436417062348687668520095964602778530665517731190921407417382774355556579009316149016687080553738785666080280230837757849943938016290677137812081532901328792624067627788091148812867701356468477851595255498181025285014844421792143615097651662228663028563685685425501691306846382369108443636098838187050960143941924064971647250383384725774647625615201484754454563287573783087367567347532477041748621242406139334451172469702200842048360157316738367740433703608543968991398388048203139071180720711482766398542557133158845042356688167414652754668076100692030009049158579475846489300255320033477713801852267905641880110187671171698025886738524520955601217188978787666008306349049356557634606485866682558349056282872505581354811017488689514529997727349410360838847155429749970315548137460409763608546468358107097345943662148349991554725073707378229059942052990584034007680984189377871845287464227417241037083593880527019260049948018312968076814404739988200460289535842001894086378091977606713233585241355081330268822167716481615290436211218780869519541188627080882007283200540366718741325259219779023364934660800208568145282236641562147951965241317935288316627268782575907928934339075646246632623768001991528696400375059324924557827832924888988313950975302515127824424036071121717358231215750714130201208730196579974131048806710010141013397151021886052485080438332964008883190476061323747215155181105540000077190675409162624386457418627004185683444424395858706086617757845741588817035109973413423290387181028031424587900309448448829323496314018895038629076706672605473491925537056979923833139364903926221251399870548319639297404890148596493493759684920189878341580605480529487495696008663205047094832855766958720183795274393076351096682635172249600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
14000! 138646652028903235265031401361463147582400235253603643136732599513658326093898120134513199161748420976168256964336314582458024933245282869146454628912879402231214055605150445226047831903698457397333750398841326220884055392841584979157067996854513190694563550901893900810397671113253746489461012440541367806669628320783023379429223813206673373202540250249789871998402105240047847047888855955322717884516329395930079588137278731853158722496464555670860920475016876169115688897815775389177574336762709751714938548684814238169961397069272657131978694813706195076695985734180005488797363070385357684193114115264181734227569242807062876638012625732109503754803921931215464671858009236034749396852726491590051270741982735818124657560861454200112238251638687606085503607701667129387103376011893944088489900212786390532218639567975444476959231510451630679561677855808422238032191173449544919804686500242426283792717633897944914811640683928663000301988300503114592596083508524887909032299231924330968454383182576505703989400162117216393872658044535596747515539869924898814847622193957498144702354999824718964910671502476069265572364308799522418999102937231613472726759022259728683573806109122911325088248566740550517706090256348181236056481078387198057493709498231600098414674232143935389430329840629555488915852499309299361544655433329266490530109474829155022271379078492403114795565789944932882645770201405720621833837035942632987557740258708617891854087735272526560523958496312130524085891111961336198346025921025663940408856759850204631381879765266421210862974875683767224124805231012926547345291479706694305856330854008418905827668104842591895965954600869261100272211900861484960667838643491450705606100417460419906442670753040701206596699516850815704378219900523081072889486229974894954302786733516457082117652979877803162886925469270868082692748438017436695518849101013047962926177238226597642084176263387573699324849175042533757207667545882478860899669750360300445241075201982961919364900526298152563081308092845091535781417039563352186801806057134506630491537782492065687354958532411599937530193009182097059904855121207317033978542598872032945364444851790876986611826162183272966210976089675836092163255919851790543999803518502050547368602945723915882368380894204729444356023400543063175088953767172606317866569675161633981313308767631499368578862269063319480077268644453074523589773152248653628983631745848894322589488277581966757426790402991011614899157263367629124753521102740756615158655936777162284676067068187953487721985145326067082566894827680185825780549861053435693342146340481510630821673654546506040949925114177460170920603759471915630787231292847285815014741898967193665207514025462466137940215816426406656154818048982311768454335286667565546104118416882795136160059145414478375738117291465576695615546879809573786436026244834347071361489654454077332151255796744228806745760831268800881954792140270262714442608781589581432099166934431111103844319025656853646481024138881546728419160663857955339946388429463517294377698776918987211665700225587789634865168449808994478009987584804282781813442586279072583263779393218723485738884457496085637708976819459209649869736174519976219733890473514422204599690310727869866960359285670788451594506347984397012479142024335553541623024814931286920414215938171278556391069581359737063632159005462086720805196743312956354287896001357627850810865691020167542350382436760052895650548457789389179570445946013513566243514037340144960458397571572639834017192010437874608483467593061067452932673147058434408504752131955824600976372005518200727264640559593259415744601086537970250041738355947490816357811181961989823677345246495695852790536680213138614931841884768818476091526078737759601828682558365919633821475748449476474188582924931665030038226490807939835984736845597850016318802126406619054674608026680584334629282166494882705315144207721079322932733584651801231133699773299311977313937957786115130017422835519879669430931089122388187974471228198911409100464031802014643605487112657433924314506722111842540945058552434447562586074948257663036723383458066299397267116016751322207614387525571418527573970533020680585691737243851692047643453899165228853638962528764315062085616752726779048218047054749659463929225508550360491655210278056060687780725356690742178529297109805555282954014684644689889996894493021157296068494599638476456062293644765008641438423231284246361599817376549958244920769269705894381827976832865452693362783770148290035049107983439230382731440485987037336410693985394100773589570524726294044631161460599679306733541468159735437232806907585648151111402350418782121156672308149181049350347703730960606364345075544621613623311383933640577852224034443810912280718055401296947321583043298602180870875407715362440275207582520515133904493510792922264515024734425864565138947185576383756286582835806783168214131687953791807722946504733921729140941886377404231971356310764623891676463293996609829294118488583793740888230973230741094256473297277407588271323765181893204214360636645961872567850379053722732027327607212537184824274360456400172578084533397653846933623671866294656577570473353732490397086662398657714225418307705416921451085660673449450869686908820627050624457861794597520107769829697702028473413626552684797259883311269382446990321120457619498437967092028058970633694658558246855068730998849112965738587858685657228519943366334806542027861027161262517839870347211943577660459809235060011124056358315128490664196536647298942844473767591536229700117954647977382054664125200687517356573876870939172794674380003693580488529948440714423358191081364139407841702263860156524972818536073428032810489412156800947307961847092908991210770190465341095454371678139804889062043722304803678014695469897115445565137502251843244001436771303107794171316403495149986385581092188431096623379991876136083292304439682882552443193480420853759838814716594116729368244601322106094282726288877635019518793848802104653474164963749069188233930777450834719663230692345650860034144263280021266950342409955387730785228590166204514494476772989047375373179293223861671755115799743160364100265289623267484555910306272168829186416050447865991801221265905669040012783039101344377771252920839151182076155548028016347706906656255504027831523158392375940768383455466476727557175495622438415379236968265212129213030639916306803527658377942892549090020733458740257650711008133754264972211455550760949622675613460146822007887628304675479701562130945081220395380321122768162066115659691891689964364794683998109769156741054631342601799138207297161429448956813118982875744426367521529544722697346628690630025051726288797636455139324654500943617277298971552888068189833785498523892994136118466399540219611031466557262765680350528714262140980633419029298922542719915616909710542704681680265749082421856856865498307930271965515303938502927887598777024772875637504937219466657081861335342678421613359651158347987289889556873397442669214828370515883245060970648012943255200174100105368837055764666703010541395371605388090680472948896361813067766582836425187367752720155034892954286716647834073897553311423803100642901903657927386115609006480274260987793214715112950330115944087264307623614862623147532423733658062496427896529877102495416004349465331550422701473761182778307335774312920261441088141231645042136973084948232513171563148454329705346347494277145023555078051665175089486930691418126440070742377767446563532902927586118008346299120488056948388967122280237126729727221621168181972081910227661746079483847461060441621795281316045536895076258856624430482327299130709437525991623319808479717371362308547793094982448259908925104341679969624544066659763829753518366922705475777264888426984403960022697953223775204809044190076134749851242983074377598373904811120734381743281748187154482336294272040381707268280888228266847677209756698925236389072650769006410653851601425532182390562489850581699122768266574655350971477949538624388291586743128365766819222536132866291141082712763305692427285397286431402633879910209121050525161673637674765350534485984051242515603683292179236516166090057131794144617726236995562208999117506142791880863069784094336115688020502946681864115050573680407506002749563657682184756525380054663366157771407813936652726007046479304480025033773203524036878218580914111422395343162751388223036838430374220157224473537073440023322723038511655258623086757911291017546428632591133006646200590623292449075290391542174593710451922061799605223194617362511235533222218043298580859545626139355159827438107652546719109714411085895778583824622810326315186064104229544738511222818014579433819000458216815687608248292715536400326136479483234446005948520100555997396788079857622490241829080534017084722993972037717394221940282394026899659678460367113491096398724417492571375079657636688540712563158990058663061792179168001133975664368739608491363128123082893392798093001386292338509871147091396759287648675513545306900794613928941594724243320466246776159864807992301633438081603809493680194052064341293471223483985085980224472448659012639538965363417913827277391080586368788053388050062283573031488456235430541886191889608725224810277271962828677846775713713650779923472712251467379914061326043305169196650101348515713277856506889964988118495795552735884728384509752333221520581767655472128111358376443988839102167307976950634698852918499401062697217169285194708865538453749014771701528956348510543297213776661546305012681119288604871876606659127643721334261510269178226039995129823147902995026201648943680922032820621587463086439503694016216213172735331298307806715123579882511750729806500460534111649613743502476711460552591277483215695141449963859305401171031876901726236927816425852590354391972401884483929575338914826633128463196043744336941068754576080863232081365512465306366105395125642183950095698396335960699727081765355945556766236150628252426560043120474204166974056759138435237869730420825536877103901254290974830672125405571057928714879242152442743236744956869508630494531624341717491468043900280688205505955181695945082725157592498630740653577321374415355188020459347536736396589802658063334399829237237503151838126294062486457394350349017874096283657328688722287461647167850532155066278479793674804655816274949036705382727087893112601174674588869980855602789676651157340037276940867600267736788486372869678063131750646333127353335416255534379004731949189005871181488062840201258353459224367805738734334229646015012629363397702587923996491241417008373859909624436058457411080651610693933411533043384226333726993693147536675374933604972854068766476989171474851233535766032864112365011849381040771518872755315875746156140114548663545532194435144700573960800382680397112523013995971145254171044968244052967024637088894371823562155789076567267387825359694881158841721355885886632251909160962217834000099643920999523417834157148531158794810704681906560614511969633413121953285292676061302349951727889835121124256757770031289312553828825004205213354048105762264484664218250026867747124923942646659089534545810583248745818537344056296018984431108666637471007430812582968342969688128008684471562218819669328066726906121653437865143327198571413529444220969085488409791383605531175912580499715205593650039853514829795540103166877557779310566388310034348505192866921630103673566949008115301324882703075155810120848805334401254614906653542801845144293280702652617763254432130682820854296996218410571958334516824337817908237139459912166241771393599141018219415535694282803961807707093849228457783246823112817165670916668004163594570809854844682962606710402981645096120384475050546944652108999878613830815791083680395120958155203159398051184010689215592722242758259859519785690212672783366080529707174920728646232700213868637788255475110370142625991223220876967071483992819500729162914654728678453383854222085157743199198117681038291548799258553668401322010377122190687325239507300796546734110375821939212115082197377424741358893404465025839733137759123634516884837035155274295034905277768435346273972384080207408451308315464137434075422010193514947573026286482320055747307462642433958133110146600542860810999066685813746322801971532023386623037501520470736321152721037557404411550064927404662185495980712741578819939858870725584074664898961281497043794644423594766617314683067071098407321985396101260534888860499973172606529459052451792620250667128881588001029127909973023008791321850678836689139832716575543691032543392772968849129065462465803332281924347270569784564980838092405084445251867777729316788586057065658199413141460431108241547195623248096235716221750682851852122537475129279243586372031033149045674965243464391204090742682001230530161415890128994940522685122907961197304050088290948588014180476781933253208616812254877424529545937302281091599126077303726588853078121240359029371028579424915672707648129200530617615706432253475374950047676304606904700257742793542711301037311703112956431517626750578439765480317497464045001137879315532499490525164628056190610103458070597068790516490145571901341118660947100932774516344999581331329034504587789441720863693824109907436049427156326807982617039490563521054248811087284401927740616215622649356717001207601759871223313337716898189802745973901613332757370700132088443322765701824001890583883666369481252474334839920377704176924007539808089867679522704216488700577386745140848805398253181070656584090215656544954325197100814948504622040135691081997504922074894407990254693640964852835622689938980808269138951700240888988827831365253602251639610205663614174983139170443722729691068408539617837875700670191595032535273414585956359758003575935446465437528292454634348758385416084780943289805659411614780205541653759823327132758265152928448570597812850947782452736725151910460263716047544585223048573240463608705696682638491432567227138464612138200574728946149890760615177883432015536336507044486569700106560865103605227590662624521291468815167673391672854538120166879668173767785395250299984286209521546091032804153348804953577015197582172583282108926762255444642456770788800594966972707259681409620315698756502185519652521422569137866258054919447366493691116236858153030823524032559147200642805566058462277827879564718355124465228702809258609900651426389823710537793031279168609456020813503780115134477068061986324065807322636435433848595335812531411694202139765711998060845352819051690670635900281170296955097384188039725854289291953001265039616746630737541351993431600692895056100751126361182953993301859262836136649589958739189192696806028910880322655789933212861971059228086389588994362541275308251950300847280360075097709504210768387164606826692318081177018661087727626193346683292990296051543664170276223621914638641540474290875475425415268261303887672310811519645349256305702716269416955447512757975138521809087310795251833642541486748626636187585415264639636492148011588187555019220870329670331704854625112377204730535310160506480284001951862651515905036914231110838750758145084029645034292931783181645244417004388262487142190550576551310225290083148332981508170623080022299481419364812901091858364803431559109118836742534248282628013309097725180243131888368691714753795839637867725196077625908873958846760252381063249803280803154916231600858686473023184425092889789765478085806007078588468064704803218715887269942423027918309555566440388795160569396320446903619278949006993312070178489205433779753632039029166087442563508348900573108593529710139627523577653448301945875569610082645332891000085005429344698773507240985913892782319448528127068730659865087516668324737733272456512785613309889054900165708714327533577338595367213433546349158976417231925013874902657134462747876896026607573385086995193552347561709030408953361364312258530275504565905274927379267316698941680380860882224008517983915302301980801208411259441447676191852749751131376595333796725830859358906417073075712234282037479960655165985115826123187362296576352405155570308247370289249465757634014995117743525172223688357676365839924482098693026744275767341610180992355734561825383381265096512234263474456787961936412169355743989461751786142990498072269032615204819457666370737412101345777003159193970635970457890000986700771174941118588795722273488049833184253204507586421252464878556783745169315390159248508639077224664489243065095498236302433871707308215011263115942384477228396616884002948127048501006036049504704414227877849398268596503724608838216151277559957602162686925620847375412224508562509988875639049358863077587701743397334114562640703124049727538624434881335758173578609463533986387978652058990133038730408734472836805477220003193063239193704005475465244670452503217470386877082628199836164096832444245816605053561516800528745112483056114718523105041441992719899009044275426255928011166183726943507737689198861599933061334887061215278485918534457741298282625209516645545520935620996872769130169097704935306700832106145441196490648273728928798361432698027385911280606945074977691814376999628019387613050670052095421848719456615930798272385260132686812093387999181282478040271521392582518006287426421449883139789755549747675156335497096588273616653678365255494452690496081822288836622794498258991230436958264476990597701675248971670026317858056284983019260262939585895386561122002923403386833110185315209824148478847216251355143916574808305850364938654310847735410058450957011711164231319345285050689922299145170862273864078410179048651676165303285427540532028778125193304146508509243202848360743222882457257860661035666607378000860406727243102844576556471714249757233121672185243948005253748501573026344689086589438846035371631436482195370670962494459962970401854305116517325937046026356467910832914585724468004279821248949076002857628543298593404236413200439650116681185169368664791144772933302265848383139992048507743900321336753902857780571911439045950355479782801775186471115208601146956494935325353491039505340923023760238339586330482034527423147029769286164475894902673528340203606881778071254375359098730792166090621556833538791368821306057669341083520718895611587416998906987761744817914898813596895017743446307804120070189651433943439258325279697213717413937830067983216374779750980011568132443413519474689130289983363567500909314838096643874477746862672426350657062329636695389478505072362755083664400382135071853120424167337746431664293979375289144326305118826383569108817089797450969040098646184224930999059814259897095996287260410902618339005212696455786234671218862820823920600362095099160654415998012589105477277857610600559385644919452472487388703427254648655609652219186165239388014274592095608925484471905647566950712549727492962475723395556161208338580881729622791148703303729379475147944957524895020965701843595873252595970960139158409207096761848723833665993379746254397831494523938822654981082811831760346514898612466302330249526220008320072457612051644840465849869379073883247435489229481736583401442102315094752111271922766847324324588886484529043459033682459111147022239786536945105796972402093953737289811623624374429027424750139534392227804868494201844287813238708169685427932807198173497007203390540467656147062714877584014581371979031219993594100912294357970587374407618732124840655641232951345747993716219611011292809058803520439005190584543142228173492120495431430257837406436946502433094390978252358779836761261241577812305463054347099221386171546773966239499950570021098125845854907624621351081091576444180246834772853442192285045353581799368335816449311996477617112035295734613399328455752358435982210378261511598333152647277253754731337468986577588462815158353582957454735388839350936426253857758842969251776471311147800988566525703732843913282778909283662283495696388450710786680704368431785502585429220931197362394652234899666223109707028219593197801984366477269823521687962679971733020476723818394529577007525826725432810503695508881033896353325207204589179212229001056260150155502182211396116253092877372182043446879138218877438490188723229764325244322355564925313411894134181439684757251028071412002397583496173212430404970272549717736575299906566395386261772166093523870803914750237873491338494898800820349422265846580686467992541399349844517590597698608693573003368880485152042181093793775622653501436948962187924678123113407980521651140506764023536927822134122231134084014112622782373348273971109954479595921351687892431805655997459861811924094570018029293966352624193972569307840544838875649387432136472986655708492643011253635783456936193433320760545230954546635249032940584960118987957723589141138988193875994909600100330303720846446738093048501144997626701737160756702829684566813043500996589667517761749137907357306077502857805647097258525039933290968370410801293285796545483320999402509766275722256946809642872114706781983592348570936503531600165745950554765977358569849962179450199533349618619836427487283423510702314464784283391771871301991672443338834162506751504168331301386736045200737832341270338300793164462580393660431983124589059715682274290269313495131581667821035399183762514501604645309376694244787848872267630247474379703116246393289529138423861160173264276131639642249722125958242340084535370115413581525684100500341309356513759822154754648368861509983220624192093893535305367222063153631667997821111580427504613653519292025644069632973784665225000995895032312835630942926712835983032686293499143711691178060562915324356538314657961897580489662937166778969481983355339431274098971272440239528867582207423372853867209965245396864985263514687538956040265911623430519925497324570903581444209302635065655511165113066182237288817836379088798091493533799665410399907255407178256237309056709864259942622870890260929272145568177619427445206075221365894899016789244280305614071420228739153383057316280073256564483470022178768677155260641621606773253988560244889029257251933534167812396299859335184031601545326645900899728680803907714477602581215367744952227192611294408146115472760129972502585036868820299034039555949742648428695996823078482507161455394392258776831497871307345071089235099686855620080763591521582120903309123942958141583266781412346327174427968092155428717181033761832163902505756586744118493807154749797199898180040883145794488578854554467704993458098378061900131755945765490336797203112038164388433407888890405422125639510307406327171224735836964368442410713285210314698166863309305800679135715984818748151631892657198551259381813772844091034224066249507479395406913733851952536622253933660378408295157561104486756291248631048173574019008826737333704816432894032495686616822223591821627195063196999306401297348316323224266531618685110922458522488843010362030300672785537020153599565175178926888039128755531462475477214463908163802225112259838533631029277549250122500404726426779897127609134584161179534949887788664578214446355368679357716968351413712691760052205441442017141252830397844395955759627716691603274535655325631315820988293590251693397705071695687892719882284249447091455034404317145035914092952098289544134439335464589298466124774503643821301002014128449705828872917017157772481558422218189604208273574003348793927940279906359054711903870487658175626031393431713889508399805243168464385156546490997469828802466021423682674540891238021778254403656934560564263849854389707364906405727371053211708868886516180317828719037489290220355724653017458739307413161848910652808750884526705360849387450779929219657444228286636372935693062294076733370687511809583485487470339638748700841007999980625696548658609712097877223924418538942435193147392790139786389901926764583940714766108790254293914122012435716068242409173220351635415506260088514355414089676753059224323981281863207471160201791762203640597392595993152625868581611293613356288693581510413435704384382800324066572609585647235022594206463541463189016161520715164568762209874678081422145641146556273160252534743067096192014164472571868037474041282384980736506559647672427630528292505282398400671326783491367527954803034838303040245429024139193841753913701232771281802730069330591946593600522790709180832805860813759704685351358760056605312870382996558156450241318065167829085281149185327332196253007537574667127074523674105317218140250620299600610457940978642185106076332546155990736396218615141111865286143728214026464539365884045067506757600116542807891602263987773608771899527805273282870342769977611321463417165784335467543507845729047659563637762199896854684813671914187668829390807947334662746689356249777666252877868312237787013200842086060903032578322524306352477616319886371841289239650039618873637136952477840311776467746793482080682859120115271098801785925913585473233366202584070710666318986047068766407105382282660149679933854226471630775839366031587514562973964039547417823601941824399526782373843705090657612862263272757960595695376832917045730569399845775971235465966812840806279170937590275441839038417989701487090522057479658841024304861736997326089984758224162153882006218861954064025225936530585523885403218995499326443386847609532110184299564716630563400204371863975574136202138248527902671440067059281672531228960367111830372571417525209551863137480845788844489169496978986171188260919852176529481023395625660258657738376783714670313524432251751616397976243208503011496140562263888337169710823462085509847275177237450019653654341314456622852462799428575725772804690946393609448215711774936273754303873282626460349027410527974016019054223584829953142540054919687582136418517369002659403428831441705628508316685352238943952585704624472671767212631975487156868111379055855646509411580541343151189192546313639668399354246380030088536384584454395775644088664553794475268615701398327367598363446527051627833725466792062043063295027499988301001310582470329042456487043627743443500205828453583773933122361616495147138677009413548690251151331497593537604007970032548727703882282864417856795868894944439691040363142980300092944797101428270247430820451157002078917985983886209363675453574654161866092672135760841402989743497310357043334793527769866325394187091742371694197490576692477308737022381015215875710184961393756209727446609733372636074754597655240149597878662904923434237428928737300745270887233485789884883212293189640030707057681451116451061695703170046890877799711392083767982355339475916331890380752122369994551497493614584812720709096328995524933316248109594406959883061444880036538746808668210760486819774799181236701372703067538050368007479487833231574042913149761787610556390668997249850843901787174238672738212446790964169131025752803093263716734584688546885588859592699577515867486391663108757935010245398799700964370711361162313903174045053295380242515355327518455391637081211851052651414719949571062372098464117369128705709948616266142228119500118983814849993182334386556991030162933928145067595865056952690822615083694296422932480683407450852366969678115103801868946587380771766283471399043750352387876737911403026197496446590811218406837624701227728452166815968604248841315098572232274233794745984387760756180228335199824347044022455300200938318798866573932916784121392203535382347817142592715806626706816710757140390085195607840717871663236771514918811694747777142334911358489690536002642781662233280440226655886563195202376690640671537274082461361693635902238025034420054476399890668167073162278763262189215405337779658431174771554965007442074991781870920403558744370484534868119453890878613176901300237729506671866920661989512297565409131454786114404489666914193104902690842165269838960406577743824122490977526190025354179598068321550610499181306019355125543054035202630244651805490313666031455027422059768153903687752121673829762907012512695128302175395432169536854136210746966361036738143329098491740431975403259705301632125842613583228430839794086192745375208955687890026454289873441523288148782792836655593599640166163370028262482055695586798115021042690980057735011069977563616583454988596027297681006944179129250975434505992255877288182545848001365979917038675824162826126424394991136130646777459470349655229410402416970343277239568479932795752882566024309818904394059656870403156154824288435910348841766786564273189920206092879472400212918437575946849123451278081664849925698245452655118907434474915061347390671179631465358770906470210372741760176550594520547053110212126902839483757752430911990160516973045091570712707053462071175816498564729131558131780258909165035842676717969757206659730897127607267613979893283762031536517672235234191007468667630687499197633201619599292157725626958536465672836612747455091232546090292215465032843750815338966177759615340879299157450220649782323098313184240732220518844841180556641103959215951286912951583822265830870087037178782160394345936672246619684565264683916246139283368006669598121957032463986342006591275860275166224446195049534977930449387592135222615669331091344106412655999584022674815756903868327478495210854308344708889733951554642128756468841933522873078215862924173625103194578156722288167219095557673503209991734343163821110965591379035930278129553561294170783581975992378384541145520928593572919759048789913000944092569469463894313077457699695984320843766176628871867441413341835456950059190987971712737552943326197528439199837113221805223146702581317605645769185997997017903284322705048838961076478729807288510793860250452742838672596440446796653468810973026515624077428085229812747380656798377277547324615505931816627376777948272111359189041908977903333031918445089850000774723608566996424319962010007461347954420886459788862493117666826671630429142522475483380379405802510277622037760997561997548096119088987002683157408758868853049964861979106618556034419015152467500888941912117868030205638574955191651505863913261173122218504474927382285012255601034996790761285834741490674948308191904160010751435192186400061231928733106902319903905793650740216709312542149697811540701980242811583221052462837654831692051876589092236745706705781814768618704810380078456257447759001922706573783570593362990857111097607052670778422087889593952934856680008059816077189746377618964886687066453561903069115751339218219076480879941179051740657622388325756294501139294024379951540358519367683990075553039900025783529865488334688806728039173126057323454904884036883802646771613632563596255105491818819625967254523055938894667979297169714591508510361366168779870529083661010071451265730382923157595147213443782020495442572460528501486339612510232137400020442021011483336911302035656090025995977460078424641800469742969784775851605634795649623974984875763384355789636205556595429871903718560621021353362764478232802410717380046718363926397008458915612533112456216610953395829542125545397857425053501033250290730037493932037855906913370027069988642615118249502195116942265238415631668913117387395962829707571806116848143797450672428724192392960125308301232591782215983799059554930961844935274560222117448288560622742700169740533520686720077545203391936247221274266777490383688146933048097367745479474801163195412540143452311381414524658237441399865270510121112179578984178809457492499812645947080314002275347248198246360495644735490299951557014048816425999219965545877852606521699904021002519372712355326361926310188714466393500009430334971531001023944235720941547958082648465242502433775913798680790077926031819514925521867302702773573412076798931443974141141245607589784721839529459423149528881995801287520331007495044407145805273273960145965100306396985891765879130657827316941311645339411548803572089948198517491011204172911649169318037788079576708471504400690470002389288717758668768158654652629209479906036203341270552376508441877918761176578723103218510520000655535570867088832555187503202665195302319585623984877547549071764637782458223651828986380444429597683875298011381715539103138831218429793945777181583254862870726371336637183983061567422203508506961214068215916429264550564593978005880235192343447926541325821419906228482271621688156992297382171010860208020028893731378861392484913748459749236246493551490733824996746691413708438522881986014923935017492319346507597173629671122176071932969797540827006554691340561710329433175225931503759200444415653762672521951888233713856325952406658675114171285054631730491678821500795279347692869715714696865552109866139212689079549178847774531740490964255248922786456776166928268308578040013795928568058878814768141769886019032224488144889796922751358722895977293770711673797686898541426015530196835957823686408721164062666029688911469041471926308105022170280618028103825835642487835864308649855680159724416551938517597207616070102881247634235892419598409734243098622386388042425262237946693558796150403957684316892905090065714936953029937265634831756358195856746755330449114375162123625205533244191989939935560173201571204947772318314191846591040409457789324500825425189726849789111311765675823756405314243366821160700756324749293075894891434876616440287156850709963746729731323695819586991845507980290565333998284467654189433347943757893281226515507495390408678401598169524551074729751302197549287352351449170438118258679389419600904037440890328258997279366538633021028735804447410918722805807163159044742554038710924689872168721429588459891034898194503685099255069494936816822835629758251400076187089209725264474881818972250158506783990745597837760385947861497036983746510457801057970216973828013599712441973750232501129110017767805466936171979650991092228927080637837093490088689149254347364296233348806748273337433006682180312623040044194285983343199478191040209585490696414538564608431166043855470754138811458974661372504604901307423888538344507230302078450973985923271006158632746388510419889515214900339196268094215278057444854178484250896310701216566408036875899053701709585101377929934508936177154979031712920118347008369724031322180734685642734663861861449520209747977051688434252406172880246526978668180801711898949509365261655730860578341401207132521301651723430853816190186529339707560835737848506969935951428859442623207074395069271139048155852614261791017716890152111290968079410865963141540272799982916959507781625434642946742245724659878559518045057973302011911883058018723263892263639768914355780508009782498557744974526682387397478005820398860497601628967862032078364536124446113941984281821406107722237867604962065883817124861379090772121355094369697081524019064691533137906954321270151653305924337633354199951376883351793998613529518128971993029088455712680131795603279772644831349210832747336318622935736143957142635271910899275978153134019900867655172628886259852732987240040658344125111882463262409240717660157048024857147091025292696286153391038641803731972334404549464281808347883957301453601687555232317711095312724086129454082211306170005562513723818829762453574351184353721096806006321983294785138448544602007814486545469565007203800101372997748984055159392724674400409246089880192089503426239591541636859153410326488038015862497040462640694593666036328737030836939097668905220359220058907583159691704032004523583977321578482924537048462599045694826642827189626288490022021299420931523849471987533407496729556105948143640000809515333097336276179132984296350323581036772727090304736070635070897148137835634780167055042793827449233502129968208547238620967380235857170085359801560867509375117609348958097900887836188167184030714386238811794371433769769857926599652186281949990509970035675711589883095889033157103180959760378180468079835034814091646433808245026490807831238309810758675400273795255523424606394521907572274139298648974711431857865856380483368953016962741192508037380809267775385407575664003501259254543395025224501824412030008875046576874933306570551748203834203047459323057899866090987838895097079554960884265216378123822472385633376064532644957287578872065865708481995606746334083174197449056334531017807375913398034709809250762922287289176378754971706521318519609907737272934142846058874852093298578906589402764855377524940117492302381691026377996358276988213859502504381623562033637956075496260261703345276110863185543574963332228825466948146364417214743933242598295728396964565343984126043236866260378881929628338212001935243722227072976439825770729804533622560747916902508327797937508280179616079275747476952980314424106245807344705553399132003505553478544574490369502915858613959481355744488950630750013274207322254207369811411832441287907593224716484685765178450618189323624839742831853137707743218741874156587483556239310692598030249380715010595881762740291675080439220433546120637575809332544488256415842595230732066151127257690910421509795305437836716781875893222486855842134865534968905495620717342825293856811819497671145992056192751083519530506713050391038261996729191924366211024342227338069219328977325213214215571342763240257474564193122198739442154335074675481424195176703861331113223336980556914917903900418570645690072617554990208654261789616276773319558963299701813544050673082226524341117187330960024217514842498987925715200828912486606513262621872669897447004749834168123355722869708700755290075366428075392119943636147725041151001973297433098303237976799093264708827113028903940798252632400524024267299956053280136463299465002279860865135427893673857394246306132845376308905396353825548722897236261902307675629251193909586684581558265736292235706582440120200249811607684984101290032126425094498785208381397553953671374986608788998206339877341744257944639119897873790133222647473448635465074773754694952351171701896464431675911458593762567538880984623077529615690067109736511659669330331876937408460851157643806457415010033912676413391655570551006973805883892296282535627832410302283583721623825494868718662811613327089235499856674327680137220172232979022944301451720187958180296272814134579041247918172914074292459925777241015283512918018157955372996958781504621946819938592876906902207112868027225216313229079550495489808977152251741931844380928985708095747777659077284582990868835504853828836432858451350018378190666837456824669507347851897696906931894247238046291765502565336205375561309176376966634893477661481635084245742924099921182021860794454518421282656705826506490645532154239106875310849360260114922023363460746644797064817271032993250440074254526991213113105830156960956331977277677729367244084413728876064677471293604746041023610889529705213796902932785641042635664830213514346833565572591760253866154300068562018950092328767820214679673956035631449835957222531412301058304845143119100315283435504456998132845150802734263993256356958305599795498093563028133952768684091876869724169886398324136466478314067005899418659066508098848220844721335918479062722129711835683332196892960358461500686167220721381954825167163019537651785934133144340630975174374393838996937147287289442390049199634278213172108858677156462178545759895238723772091249581364619750942267876626036326152320900916666141970226417224272147040735726915703602820041301269187146738004563793500726242062239704037497024202893965135922268299127061651606248879786518337696726107472475834328061125673132368134006318924656296802225571389813877589677395418448538748081240030001062030500541462902488246039260969335753965326836815879638334117115209155141545340902119281610040634974792307014818995438583547416774629592791183742914282878717141231357259517289081534042167156487786989367634941988761751193854822811381825296466893251667497881006795913978188009012493938041295902953930356801352348948239299865317315834712271080878920501262062502909074488679235574220582727864562175282593247349521006238832032762810744751589316844817183334664384867336976781451213308931465666371424559448732680193367622639240360207517819183752882317836666212605525500282772636274049546862386679365608098449462585990570498438296054981380072280486605677799582292293971800543100646770167311914904624135548855795851142282789568921573105004238106564168649615831284277580248284808706321500699822299204784967131011070665126204159102586796931710113095020372337789813352486727135787287698805249692898426902089094731673564884637740461074165574079252637738102469976083537549764893826859671620097061630228948103934433546103497219988416221467999069313942102506474047713783021682014017004707420094422563525940843701534623017071304545757849777953048638934478725009757339927708778843659395736635641284109994557718329292339801582326568054849082960639340676027603510467160227829128178729468874559247382585290745573982468619524630339797958787107723302994178800249562628945519671252347898880062895655994098891170523119673056081297491808183884540459582900756419515590345727100372155398041784612745658444739221539732561657432788588148657373866233282314294329497343759995593426542575518285398982429773832684632057205506567055205657507426871294881776137394471345784982269287181204790199925925109774604231408222682927825657411146344806771832827229140347902341960482406455677213442564472894381430184114913988870339464538738251908306362345606937289913473279087420929485150232169935802151279508410058676083419335821261097236129696943654744369792757188081918633144034357759313951422840994514898147315404493580320430366045426312004026784691991301430962742223842474226410347766840223116104555769515697164181742335282041091654530642915820367310268875090855177653626008413769482767021707475228350307572093165420149013100391403290772838111881391317334521195911356860102190409128428808855578575734940748701025272113829683277983873056108207487155542091705902245226049240504242800907349854035874005884328863131502469875476767309279053591004777265727697785242588765192569022486610774483198245963379422065166408739802762579994596861351102143404081431234445223419005572214734775229455458336693850087577862592684768401924395099631541586143643244412438153635869341990159005775061603947514670236086108415591649073264377707713198695974070857650107234669453183338363758475433322823664185235759420499323373603265630926121982879884240217089813653059521808332831836819432426140521392868432061259731637083851268190242265410893481573072108182007288121344479046210394622895718673029482821382176079055546762878732230818975759635677227062126556787109283151249663218159192002856550351373321619853554711713234268259234766936196487995244234604270691796329270003957526838701466703773092931024350534027367409148835891327375873332132906435910885592639096317984184608795930043568335139946235805157471561225423101833814831331300615098139927368414068473331253687159428982293769639578254054083222809471163280934883613159142140796827800113480028041860168149046312140066384566195121447960639028545288573538994460752325790385373476957553973861227500721475306907254631716048761587372844607904689564053025632256908615546764137983398368378689912172635214637166794658674614971876593978866837934199947206448669942220929907811833963476151448211424595235959554248594715058582355187260940446363006495686907428735284164540549223297435300373186717722178508794045212557380502420419996314063147628356627109032491362310620011178124282256571949629038504932796765772320047821152978739877647600951837082696673687958622326599567891260206847372186720768596647214365266282157115079514225664237467997660558403566407396949843771593144002040402583645064934182717477743776132349456704251935255186795103218250746802571057957833639571954929701707127600698642514432680711114587752565330690337239087262056077614860712693711115341407662795593918884587827266759339705914866850299735377181430894556498649717160704120342304325535741307099381804339996727994301433032703657221016235997754359508624824849742633351221386255975303383489715986542114094893184309758242276126644846650854215087892967791908528037658605386440503032636158057330941166734796743385423205364587227050836547670263731121844033345161043211749577698926698762649345246142824432464398793847536282937183065219840760593306160595617500061165536556106072803072947667722552501888936784420026382315258151635026207741357231462587897563366058339211022891595968102958420628022788772369486000891177533097075322881523144440054735802101004585098646754059624241440460062997145099804576170741389456670614259761126809437936878541749934652833695903227841081622874481830901248735730632054692512348356328377671560387646212335990894601352211185681494033843546293132978191343663631666371703818842556362961084424627516058209263731276606871597144736056241941950949074082325820331231801281352530106151746120448977033964222046320729531242133191826806502498503245780730341542261673848365438252237840963001499108055759201547680425825162672618822889386267295101895241534667778752924178044664010422742836394155411151540872030918827037559609438124408318077618816511078437120485763621946113919864269221280716811448466819593831513516548712737881247057966511855282623014369986113484141153794287827413827007519382067763408282608187240976203494342389523647647756241205977515607843031672970841068525000261078531303616837988620627201891926677907525595648795018355608668810695239170463079178426277930009840055541703385355745744077214469244780794671749432882363430203849212463296952079287554615525897075414143503731422393570988784406055454799811020962648208951169330130378153385445437768002737939197887678144248917492480575455824322334521857380589770954171070962768721937759413753306555723673439672046302655460170466940435450611720981963903284685308822064993058918677189908114811661079558543257412599593387809747214688302661793411007146237069701544046561159444107937729344423533116434949498266288421825709068263937705639641943275745792150316504189212592572855916853422208279039430054201250603162644164809288686115175210187949490746157719833358292457325337693964711278441996553849513179536387539244705069816944853974260029805545507002536782837021096168071005732752610001258162120669009069211628554948906447947920593212946984859928280260767437388586411328605588968697522982581119853915215893400928296573063832854834749990837204423760555077827939885631942070286129162080257020868528585648693302813194107720561178019391389837804323869076225454282766762984822333271995197147023813141430766648990570691487922502044162439013927231348548481019496910109815937133819888603408711640254076082390495270344269560001987468006131463744297526935716866823106503603632913179044436216780075904197644103468098460595598618986703406354741100204915690627294310454040595261033697095853101634585725711027128276923425576377316229076184805781219961182904333436855108112771277689041098309181155937238864772335839630702230934646061483107810084506154871887436580860941696147793978338407451153531680157035027612566375529406628046564116551463887552128097886532236032526840602682990179330490377718248072906084149551350077979938861558780988962778631004555199675696680405500213791756160336339329106724355695317973683981582906404006512996005564307042310763027358732938286630186632503880659160120568799552976060945444099955888153111782507470325170967117849822088706507955537955418862053733554549562585889408225110309446388234225778525501934354564622357333080553596131665569476280978008634060696647834719152027977584443252000513381949765105258942972313399243080713622695053059227037611800942757345214114426141013009436708747728876030206593595953563363555488441487642933507615905223144622138874613387538697930787058240910120571260481848049956548857394550378170967932583891138752454252171661080387025774113667854220945988903463136071099186621947604003480325268740284767451192157767620384190636122529698433387036243747493468792792656841209824066301641167729074755374966194020632608284373964714050990999426657176354832129225876119703306550228903876487136191850921079617464307075254453183195236948095561752245428679845143316144003124577111297276536544996708545793159074083758427714703615374688201685935863009880947406299473433713924631431115571176502227674589810312463811359951981023048085704578876870292624000327552049649345273381889815542096796219433998171866819145809708481701792678711740915065966717026215639112964442958531170023251549377755773938125806475691371948993948865873238627812011640054059081390405203036309886008441832175886967720854972289314463899011774129922508012759694374245746783016329133866452613217180531879830772407062995399299759760828350841584248198751450532646238714703344748515208610971912923200173484002579406864073085122992346497935516753924214913300045572114212956204628092039940385559568545896281218812234119565331293286302771974541277097304447126475712119626547720880989102448403059644610005462464485093551915359163820321122989300423764982522119410261672562598687830457413875519460874302887992365391770920385679590407551250297101791513736736660601191861605751208062674387908968250865365526069057822060274667449483264000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
15000! 274659903348516826648255815026266753776699833026582418739847875253045210793122532740853073321144465098302570904958223242651688997603351488417071188234715947039096494968520278629124983763642951334817546552420880336946205213323561252923593264503848349732519698233908059735393111177667189525018722186815141889147252250088618366643924510365629085240383086414933535428101038791771944304576742714227650854262308074946692863965851300258731859511920200655441856259006342802457058491335711469938283095956838033428768211676886936383886917781049237447219374767617152191509818825747743812589699521754244065141831150099981307140455833404722069887651682584452078021855288548764791508316246302379003109653184913127744165755186825595853761634802070716339448671079976012478437416896706719083259278390158138548712249684170110111798225206271610929887835895813940105502901588288109491869141749286683674794137496316777923387036488338321958745682319156012692183199919775121143440964406279924806583181745196975127525454797883759813599884124194218770311952320221970920121012168102746626924720211855673788320549452128292181460862230159528236369434982997177338591615142134927344689457555421041254815900581050859784335009276045033648785845681912262831709408567949942628407444184430625350142366383772647192484864759658083114444347868279156261432674131999917118718065805411752844385658032313293725161743795619244541580422007819692624426537417786823931927512633428037531384676130448634012919743255733105907708293722240193268652944296681734286795219617310213887296021095147507918160925938859433893580061960921289886844699499421914853444388918196470290585721319559553188122059016480745395381145336404664717227740957157117297553566197034647103855223345866250370205646955609116294437836001420379565886726987580361115691267020097462656043072096375955514170007107150963476819574221078516008641204155403640766526734180328336840283679702855032930350529437454678966394389766412791068665744879101348059678033270850348204288861770000931589005649659679787714683105135463047970978415281370673202067343688916225404395268362200268825165988927750470954374651955290555175944010553973394608714655964448946379933613628920162919514908809300530599715109086833900795675802799289170516558898667866650080027798220595305497001609573840353078930457649151635642820486594520882379412625814423112748164484824874902360094855513426449352125528793289640367757094191912084967208526742572704933129969945959991118079499707563249314770281753867516142468531057317725790227752479853476063996200080768381290525243037593921710406264044615718310230094878911885667682092228717062132037430697624014536025431815800933965042747855342598077334095991608146441601613598542759930532977395995443080168272208587168697375846869932092685875277929850063210465336133051557672102501928368400836906516245169120107275891211221389027711369217512183895664992456089079368375692855803351213377809192752198992245544065131363689443505729219925216913173091759907425325673299767363516960997987333426141362069010904332051421600854102169625966856957065362964531968324952388549207794642301372265905734289795597080305491729726091621048149720880426011786702807941320889268136529683322865765402852743843374456517761145635255571906564638853586074903728431261289173352539625284749500928605795956592700039432985411387323102100308677377031094421091367500929009869232420636532689306708207663327522948621761044959537382002489126693383905239892962538861566336269806603898324747227145183089476180212398168659705784707107176837102795615366506567638773665851015500525906324144430311757316319305226297574645955967663228481271649514803912488007965888468222588693458536355232091552443498210536258400628260428684940809701261298739430717535977125748031654767818441679283752066193989601362953642378395220871252107153846663611157497707732013952088313623314439080776034849942489672185643455386718001128752685845858618519864509555700235338235583896388752124811022488079745458833917697865909184514283140506458064705880756911253760198867126469249591624105397639002471858816275899466450955157441678430852308526037380151946155765307096640959563156862078594159972574263989211355073453080549133159732888815304330215707201780948450586368744675606376553957854417460695680721731882286453828424011783694381166028414780888644258455522569796279733345280010710552877172128747909817500958905392948801660532528929347626863960297028187042442555562589445845067438613924011132581887499718849671219199417625967456536111755928049287533474277579680087871559940090163078624194538779604952642458639484126313079210922031312263491976746144244754477822025272793005430816305007936182184239128134770258552762701041316124117769250733464772739534770775241152907664977376176785217947399573380142521492831379180486385714871174684698245898665677579698166294587623996174319032368402916567665029840438651323188522934091871426891951704055196149250533698066812840390076706178186712578308001521337787495776699541086740027730724775303286087700040171107669209806095218059166208958731096069826298937195774934466821099508423706315892050888120452070264378056658528733156952819442906957075097956477288678930060912215770062332330692132889444891836304762189354229555729851530218991211433200761478262105273536524887348625490681263037524472420602643941832722193356646866624446161488886635271726100882844528635436170735474578231674784098167697884302556204220072364493406985810000759352820582207541225295697403028851478721626639095279527047892952831684751296107675907788960454779740030875645468930965598573173045765555601971640521948995642334127709419704935947251174782885361147921195844026254092785926340434494774334250519036134469687833353374683302723767348164279797479928624776628926741012588954262838891726369770545779028438821467277356211577845174781600075893970368070732531725233099896134856616726862232422746368953996519303009733968620717010261433379208493637105743983939433368134081862819874182827346583985549595689815103776395633056334185159234985909243511156224526097061121310096405152576711954986837994199523969628660256065603358895210361375617051496341681397238170828234541378616489860106505668053258320307149138208441500364439226148418242761754423450662665348806407105206114948547412334816401717345743979830516231010520569271464179946816050220487591671253634552244749452330518520438254615647658814520867215379087209008476698862548108619157129108449684952146916811946129302996716094417183233666425500531983600232403167386262720681584555126327441742020162486889686261697025388119461375126317793535773170013963879685316478979578452328230062908051723805690946653860029587957985308472678334836690884022101166615407360609454113988977855553817545054890955632503043008803345370012827597548024892015034862677435825613543457002200559107926035175251050453122779971143974275180831823056162382365552495824302011520891558272675339369128462873424945705409315984649824944553331651332716907683654394318736713862722069523438282970246982190840410645617274631387546089291549749737840579972481107757129983246166577005200727742408627377431811721458034669739282006255901632315078516174033894596769659099519876180227397522041847833785020832563276771048636866314984353666683268123500928058114298037136233256663468053192082870713986457867522539308275064145782328273505532851023504173618394061106544506976066249206207522337155859111671576965312059163349070860835735455770432601897773169089823326159740643523808629173632247811052271886576112685303863628860751732296039035937313028291721430531544998084922485811471273040257561459282699210404214789583120738926070115748191900275419367330486456811750292550204712566634642545932346380696464472484577142969330528989752263703038460797734511308490899270525620883694639908577506695378529488852257010688512459567461671429034035966523267166944315351017678219409176949364235739882809685769400044327564861671119453051626932859418144539664857363230502694173772613645280920667921100269431716392639505318863594584163414776900374648230774963732337260002935505349332896981762865489371260070816997483232047743453170810310821517820959052591846084151871889900025252771421090636867132456044991250184689440444063256581444829556661330506981296708539471095116293140636434818266960475491494275325631150962427598041925144921208319623366344143880271987426964671588831575926754322582541678047160200475569398774577300670822831069297446355525743685586571525443793150029565305439599077068002564806614274515099551958946135748248546487205314145425817455156430958848690601107379149228963555672153059764898008625069018359928407377230914374813892735154618169630699927636676759224277628840084072545263027796409455478576256661008842206263058569290838809335903057997402273807953317742762047827303613209575786524592787215788496895670582437971859317400008247043652443707235098484648263846328847361444630064664192972307525090231220861537241456464989112101140270021621014369386053698934844476364592166925836568863968679028999503674928184408487805763544449968015300273928367359820954507203788554130133137248745222414990693193267182250461673109708761211728512857455846227223029892505785782023037496610613167040660878612515982449960963918303249668676206796681558410130785313545337621266192667622512985164109293245811488475659845122202545462355098160257875718100295432578395159857917616749283048798730851079049730436352353552809470813923435945421643551078880255537721991504047515902787166649501772800784451815406037549203308104783909530331640487367706717796491582856851332277343010476628231223523997441093927888532670073095814552771765553934736012985121124345930678733418830127379579637756585037076726428563278812636098629727454190941032136189903055018500239670751242447121647996449132247209455963719038500201023245968775195523202915791077098374343672247122293948189301222287640081199416595888086516834465957672023576402204399624090765505280171971108752287655195751213581047369803449988662066140110347776688157401588177153198895780049974815497832729744488518929553682955509721909359677883961673926050681414029896455342916282593832297071234960395876844388877088695222767285589635155085660622073658504715449405648087778664629991913687991882163685558200892659722561806436038894851226984161531379626776785377466837767291958009851314067979924246946669349061001431497957048683008656296727194933777489686325579914071467875942716351345638682767119201742626950441569023448151400550112740930494893980713427928892147528981326853398829889606209941247816987666921271641914149141787875073630836702702483480341942856187973335342688732573891645165829932502649765097325524550450553113414748999839580760126546453301131652453807228571730455127502605947536473170133538890122600356657055796813427612236709531682612823644667074711988003633886794592073338853688537303715866751083402701039592844363319648707648827111338158357644145396595519221548148191140959756215754762158145716289797667592340578098946721534457115090394825991994423649378900237543881399177583887694867164223121956771990259380082236378503672421392011745653886166425419417388164155154129563976497984168329223758112652267480156518512403617840139970414526079289697980498990958892711211200049034494489951921552048767784656776888197312405877920845726304960953704171585151919901256558393148853132883625858078866244233228053473502482851588525634716934845810873893050426349478927265711300828447508827064096222934794830659833906239037795852229478655539827610173566845678169886512824785028733434044905694218966077323536784347174514199372240996401891950028182247197993006222836150290702510982087905427946264470502831923072669281223923586671574561088609089952782983629538061230171468444563670940356116577185044336232085594599897419641307257102024558059603166347094139774976266463030755583233027396465098756745725267097651147905278107606318620805295281951488988586392875559474737782020449917456536957721454495153578265154634356718731608859358683108868197023253474874332906647444229351883553163744161045363822823593773618545562826729636319754952274670260899768041811485044553279219477534511481432072901870870958072638609419855704881931752408492893804306911577751205991544935196474989579389149236767893910935182468604133246977315503733467145449236873176887896687969949063513037200862172602893190999709383004606381709310521291303891853731668831907901237889422894428899205975992339032996945789833118593882666748122431403556776923719373754323329352460853937255211463535593547344806590446724357209505560768112307879697488564991157526705810597263887185484094219844742001216334832779208531846695440482258455564643092009521544624074169847471141795354894259127949060278242625932281183524676756148808221111694662457937045481066906296443298351732451590348519685792074286255610038208782181012815192962616962374651551797980278098460257022675325927571420352734969341441108659303915723618440162778047158479871675644881514901033248906903825631658270991092480761099585207365519825705677713127354135217401581704726826660697859588040439846016195042721733397359473152446199708650313413409599184002550706791452177577102829704934652094201999369175637465322197249722773626809142266549666789932719510496809204732969834176039564171197909698955817056293117543024376170238906986720346317671647184090975413014888332038846543614109227031494466305525691583038174587141145932399103445878292629186346202659157908584893076556145537326949440291939563794549313696028983024859818918532256100614992514608932666471346135763026191951107452965611617983545091188225531247665848867686858811593728146218130233501160342986753484201158561262460214745591719702358330959765748762803827575249822893410125090462531981656766571399732049481564402099553715915079567618966240809251266323930726299750573574984993908140266138675274280474871256323383890736974154081956680016387504312845975391319957132480675821717908616418137235275485972231572201546791322084760960812071767828541037401126095150917383072938634578072732288702578710180661327523279653350402881832058088943751347700548657300089425228072025328969998996816727108714445588707190272419065364241196855286550525437646623334892393613704457348578889641903091952547994463833589553845896328910320831925248227351499582329027987245258433632367948824479956441459965932333083192012762223795565267889849046717250427160805919100632108716402665330449311656666535556637818645705764521105594953082206347213447214520653396723020882012365685209813784484347641884406783528696167401848442708061427423104085453688235873176794174797966409494335818020483163365092078281637297856714173825964327429056053353667157401852064627536558859609000291951391260461660902856617473204667135365967067775567621120643728685969201089340241075460015821791142456408144479185057652035531349565305595726396413552012766274332530959566333217499560147262877937427711381045756659135695876888652013647573648040250055685048277504031728460050697605232403757936112633979529381072518154896106362153435567973729041995912199633194469870994473154151933658673735910520691340416455171227227306083770797928196069333384335835872655230303049713184058607394482692212199385367208651638830595458803227942029214920165231101555173804297648807574245193515728872999690359590652731843437194451467309500050044565250949636823518508768242908075210376396299095752568450451352643666016961956538234118932428049328800065574453567681260691698441377889451938358984999589350492672358616816866405774774943728180375528476517733080250457102350865294867668890839632861247415115831476107012356335437139850556458558214120876799315121323967460272742676961576973920792779089181639087666186922743882715015749740193259240922619229265177747658587172110361591154773506794275385027573278054950005421999908089050759629294175898999599471133619319682852764570981660463267472503216582902046491058009480114131126755089188265380952898185519972432990567674099104146610551444912531769418038352095940381599722236299021711634261755315581026088992229971045171325013324135946667821515462066136103440680836829302938866901615112509626870924023719576919012298602289480554855820326168036388261802303828287733401821566694499565233532317365482222366602686142491450485220463798202616943101618802636711217190829860815756684679325110461534961601799932446473385046205338897146923525009440095590681288007700794830582698910582890458841766832189685356555063248413212693072213243493671454201470093322921883201642629293951690711352436728652924484995968210971842230560589313738532790549036628963135375279358513945409684745911975260314934479599623906833076369115209684420826083398799347715939608914107296387670936030133792337145893626468461438241228966203105671326150036891357783131698529733085349489956617675173761880981683328374126514108087256932949619987944466495594482552775116636694404085999813485628729122964462008283960201228113949932911226011233888860850952394004796548822271475935526628315275160768728959089697319509401177944990263685345461617737133334386353959139205027128369651352739614800909228988126075568071354285607790485492584572933062337727895705846506389093868378791818273780977725817418365104271961807997381137452228152266179424799933865262546756789122860380818051998568957522921821857966913575545429226476565593478870015297453970094266702292561816711703267616083809898860375141962506810800608595488510280736821939201452689963073299704960712349436395743900980902646483565176030188162939314472034109600979488036405891148867733300275906332687128115592107855628578526481369254589675330344785650244401798654148972928172374315506050135208808332026955352187553435649032651820544217371079077588779520200075094380555800037457994530106272425441500470698309031651296227557700819362760045831339590954022305233177071679788430529852436488568554952277455797674909757560531167025020146578545576638874245729536418551276991199343191636964474121549937522131820302821312891180469084378373450431060399998545702070101404883408472911106707036130629309090630749499491287235089991004879953657831113323322334102387755856522628829217729582115729473862912491695134673121422438415739468460085962435827063695286998655895654904189635510827269138812250087074669636573253602839297563420377103093942724820791195156587164239316358616578654176484106867104468054765079505071967607800155873116359341833658326056471739896334845344864405830683763473436406735146594138419265676242339138138015550020151287651353834041530907873958693549019760081781325493036344550760760412056690467634381785814374908332517859713473091155450847767343212061462713987796821437997384493076101767581426525334899299467652840669128764320143134009068567630791257176461264788432834548700680582086612210218246363757775454976836381760930847668321470942846452508537985682552935090724004188439140766937287169354118489643710084844462780581338863616651317511235927047682613961845539968354902582722613109106446321195707882763019606826931554286622287263501541463309705292590484237937060235594691930264534718519880327249556675657575038491245268403865415932969827910786111035725166821775646118504214018989266751414650277862396517916546468944478988382491952495234517471103788310739512647258658662265198455638390576518443871743840518532182528063604538883346662885215283603051557711944627563524836867464034692194733145337035131734907162623042932757642609743490289978576646681399382703250470764034391878469860449923544741547406111843042334666256392347119597691658569791136413839800793742275415021101890379382192707429293541813678106784819180496056800361086673851772186187756738332403719648872200326124253604061891493673286914661804974333187261633711057177306064607336328183514956656269803217851928994469577416750199862348451774350742959624363683460432179891117734531716274198670877890126201978468552767993735658078887808787170359871223002906392989441681898562784027882569731322643647445887399908943832069561805204184228941056111677714893148516505722085045177135199277066661733590941869091914048636800901954229213923141981659263769823243757571679557368259118764564110406655227213510313537264696058985560499487271851675178374797610758704465014998462355576544395610345454861583736618082743267829549784097681927821461171844444721074865176158633856877072026712500531752394101048416131161408772571274740280465300059598024190779260842306112716622682941144241369692194798548994821493395962571812900541121471676777222445354240463747717324519217136911983776666264207014850128674804082237150071671001538814846883818650398658254363096471552547271170376060419201591095730232456853384650535372751998453010563572116992320642807181581775481820271343014993913163629541322154841657125323354880272612871891279340753975297729945633816979157495002338430508223780867530106535851257546532201420856345059082316967473202710636711051442683097825547858771798575327664539756306221039174236463213747251392859689815074717237747237106260794074324457241800173554841563732138892831162309245059462769156595248674082959592650676302286862344177312399100953098851646518266289183187070153219104209617492840336575371735738037041286874120193540751515434513707318932708891871328617898678473458687407757591819281257776829095645070431456864574154417123312345819625845837028489834798285914690633476988272576181941911142149869090826404008045431952131963322429872996144312561261770196917270130123392410377936999771713746397182748153270143679152735880418484086300916892638692965604745665910625654423413425070651134293948616866485621659729257743489492228546585159853401245360212837147685697318142992963177598297760492046579839777231232596640876580193597298743345958252647975353167084378384255522196168625129452364591982333054714967559626436901358096562490706289038416187539668162264906454067927200180350541679572592724428094608380459939684105939007509767224908944869697168098435863268687278120021142810568345512113371237347256450824825823811940375601838285753226693966057307773313535220086314626437041588306023993946604585317774986188481575777436131154433415210001743435048285179202732362099864846550821462471714700926194957054764548421369220302454681840872547765476288333738280885253316831963490011675371109578533229274841750493069324856623570428043634519824699524345593179810044601314612745320237473011477454042975167213166988492854263816390215606055452337465658088566755086486060757819271880216690405225216396445390570583466266348010683366500202360696685274197019487245183785766663527427881225339554828115188638185456507681168484524688955468718710586943337266536666960067424871300233902576207506326942175534499509404660647723245762724094662867606373440324934584983386070354355491201061942099451391471116204075502141534775928676288082267559901038988794133563086987638757721873893724075536645810840694740988902848432295609407071028763240348982210845667042847109632339530875929456524038050249573993443832925165536750993908698973385856294421268706614467117494670863344980833499956018606745639485037176897538030426680511206957734456935396171135336479031175659280106248908416455550454494183473629759282674624210457917476435977980081868272193208016383423819539563705274061609531462153984506911525905825204040587641683038527125953207938578027147413057955917482181835845228266228645024619637358632325677948722235624798189971222149547185351959840432787557743093487214230487407899238933936969707659401742427984336784720415421774624618577565513160224379171008220183983619622895307090427279777533102661699693774286561850503173814110888500842707889113538773386292673768555701841343218205926164333478821310391307389088107801256364265334392184148352923709130410343750894378002196334020526272416503580886168668864422310287908433988014021572838239104452340068106976899332434456217371867223793106333764573970634772262111354005776800115082275498506989839548020338388548457831234513672882977251122261779976931840248123145529946014059715566278848757955571731957412061886700436578357445543240983988388652198764430035690656328868479254316785307138610345324839313518843589648461292003877934637359541869999957020832053036984804368729471184381817956858619136268574603235068443560420476020797983078359723438894084994566298550781565593933761959625958683853054797604540925298715218081065628796008708920304379858965260686188906327653614514955574598685592403819360101818562208811901636105551915358304033505799185355362373945603187387836023430319542428373801875774780071748342747350149302586559933768501714549822698953691677640681450109434884716102995806030346231553655466846455372499308909115043871432022965841040754418817234777242827804951741026434037880415104009424641110304658321571235819781015038058454504548005475429823148561906481798287953085962574232362547383584620219332738660835139525133844894600399470018135462740054298133553543434571658963461597727930077400839384013224042966056450247317755458141245007720328104621831255163531761382317423825724562944414808532663480653015669931303548188530706833149995641358316506575652243982246889240274078653786679886175937320165772401527685929054679743609273443703817579824770747448387420797564846729874970857749101578493664208621818545519466691923506309853509283964963713395717182492102608893845806110030659432433913205234312137584078831284878521104221863555263374957514864396872900116729792344084684983844762000334964852898918446145911985498789202233045423720590524472895657014182749135316947511063388435317917051823558016792457146196937336377406559157383694450656472009940812749721589778074622588475843442057263744560265668411748435663173307781060888723888271781664349843736606335926018741905322596303425565219249872513364767438094659918302074427983602189785759633365399920113397982809940850194559878697462901142880296837781149348062036608974006645376151311743912098119442840799548759116204007264114797474505203561499807312274286173314593088791132410095077105822645949495416029500558168177901995579405834008051558558153917070740826059902191808887130702350768384432367889757297984223732294578315162217988872893231359805404879407562533873205072983965077298596224567586869392078431850157597081502618847579734178543475258212227426692125718615200129647561902796479843164625810604675275540477796337248171381817019224155791586370943161182037941806462218066111132695964524404384246981531227263360312007373392572283342424461081699546307739638191665942293956562034891696279253970275826711447522286991851480859443676322797276093816812441011605664056572263821872402843033965099902679402166230527055928024354857362796143297717162906245215224855293014984229581260639931706395017369468396725116156564942347094871746108735919209888202735641163040909621211599273094469909569587354640053960702056838508854599992197055732075778727931894227973825771394289804133304769690551346587104130531420260882030420285667035645067180919823139817764182974393136482458659551985483420227148860042185040257050571213499752821078330887438852181903288760657955531131103283925680930334832054316912130271395710481235204450697437868522076651994500534907145844693397850018945822957878210900034805703086983458334113708038821590980431330575216729153649734587324349694053668726848745623404389439216133667418311981457185381725288008866462189213497006807064074479020377848918560753241039867484026802313848807078047475092452405606169040538497986394559560511233147049796412192060271592094998123363612292733111311816484720042557829137332194201304108365159434558006479766533940712342081161203647208714510040015169448866880721802309351648898150655461455641580378989888690131656089622485162367827821354542319452918938282482998327332210210507136381263766131584436026955651169406079405840216068642197867915052182979755606833206730594643326594621830506569958921649447965365469835391520748038023787997678070636178801098624460565274064647184757788024469307847996521989990835560567990793890741688999568464979679165210900332477525282567444845600816328406181510511450028515127172589446460897960447325306317004903406796059978212810026950584569170352676171858218778095834432337499682321346514606231051023117853255725480970935961449767265005366763045622880838442825629531216623070606425343111272263871030444432144451265646090847389349883169557109301624713784660458769699592124999620865832481277341032916841878469364021893785422495488866534536933659265311525598164945598646652482615658609454079575689269956568985541130276644799357060315051521241982290124322650090576149231856077663602658638719607835863581246942933558802738092981319157967995255661253665614842275671121090497945096862579665349537864019477577591930004143196163951696002436018818223989778653101564237273522840309205363355554651750253482673863113258505447062570534797120655789525545587336403152163322435890452942063452402244568273163712557457954397393508191581652354804955705381954792769091846625180524896938762949386776650613556330213094808941107912097235361130991933729321456442963248207263839115466066064673356884611021574937809676912314492507378003561217022737838408807804602284365015332445750932489612028981982061160709217218922110616808500223609291464399271451468465995984754416958271698857419808106141987586249012713332868324109684365955354907163798701050694563789152502731932346402077397178515315790861334260453229928030179588593358248772306408835553794791410681929097400124066037384359546317648898771793441843646788220362838755151281354222052677785065659767288495418678794254825517112648455120752607373945809336292175390087806045294866041854786610285771542462679997322773630496602881586797870046138373336348594373260335907723537117098588864137785487400361041773860525173849524581470922844307786671069886861740309983276122398155258312002814304071526681176076122736414832681568870764535555024716352554994074282361241409862575286205259674849630576343542861996183242854563750554024957117891794830110457236216970039345685560813785209144780682107003848151356257110963631172848625987549609124984727285890346513357447438241927358463862882140784783523441352292450003580861704084312742679313321985785159271201701400573102733237573912586688326935103717461055386016591700959766919521418093503415652661089183065348964371482147792838436154913482310853190700611109768133723419304109282870583328768343543631612822415525297237016176978757339027875669986408955668802954182179468290378428239609704368077687337550449855288755899843398971764124105159555147980515258154377420808874795209185069852183481275107714448350311096691659466893274445268595472437108908108643200506900041831797664820289596605694210159001232981379257396941451118770999680471268135421297109180473536517325918622101891280964731205588578973940085991766088103834805040140239726680681751604987112325863469605045240061821053605559803411922652061519632408427994955870250439878277035524093464989556243480519214657802996462425075162078095676580634958051019889925865591238076536571078514201000050637355916133455572628174827490032079711967124157812516989833313518500838546643621676865173656039330506904519796792820941564529607637109904763916510205314707004653150995171121434848134821350512509790791697290965932213488153990833312102010776103058139351573508622002666274424245980990558438169094012845265187573799228840950070985493694500123331630670378370541913833150215884329578838246987779489925268732993926468695113767084269204564723074004481977778141847991534052124396875313726139876517251321313880442598135921630549475649722027261931541873961527136969165114668494131619993967546213120462008430118878936328869832807016069401838368305600646357358881662882452350114768748976873279940730472617393345513855718181034733658431291208778581767195064290512477253051046241559100103219426888589648545990355228777344874383658190778652177850417597782129682929781894440142865448633718339593843452297938157979620834622198220093972101876832893096382352827193402663403295221530381622567103283425265213836473051286916577985127241110452183529763139882151590654330537714154328849230010238690102387456650718225413677126189923060710340846673283992220197944542998539751097196206299567465113170198888419139721190021923416517152793908284633409243847717217591442374055149336027510851481916302914019170393391586023033452727591780408881679436875696957262781135611406789096247368007762521605152977004456230428459645802983377159164877378577083151676733704720674448643961736890869169606474965504269932822554555839297645020670576653995888229195770604612124976431257800317560021902618226019433719213540328285111653482160127098347909620658365104761440205949945684349561548928450975322756784118025085505287583292588433633626747311728158482849618848472496504864679776003336654549513799792791000990489218212041570588695166681901114198480858887438216044545584638919317764580966269134726403477639984763247447523202652019485255996973908000961156790241646142471285334914960453876780182985664598087506834117244685522507170933184399210808207456514846649832562084014153862763937790136505088114810439858481323483086721348155935078225106342370218032873450603297356744279149892797548278786126430619624142515614339064706774727002420850534277448203002945854538579084595678236251625252136986255031014711656777246972658489487504367652671844106494787320101667318835649367109520824771866100396761613621138630338227846610574187659896700753486402260432183532553722760080963576802935997705958116738249041508715677057405730116967470564639352606411781198725249821684254759954321244804428762897076957899166528515601497117723371541164292607162654545273896867969892471960651059789680441977795667351544648379240681655489727289841127308536551287040055852160198668811119566736245944505308983404161010644998739184075205308868737052557215351728748368156828118350061622147727222310014597965498119696226798883970906928019739181432362596623712241303719337973957614758911538932526999779082833256092857390060650144285701086347077486337770989701402154539907826403699887728399379205289986836158871577223910416370021291342754814976238494439403957723936310921352858004548971490694587331681414188566130944009980816249073642912762119159862512703679899798188200060549522439142636927734885351208864007640798491475372476388733527927413056692408097651585913263098220614907921535300557243384639130606426970119190340112516169916630454419846458412848295971525679344195374384406254162521829929796130645358066732965473828615266288425986800036890893117988368743120782415516014711735613679045506671615561679713664120750230293733657805909296204550968193431914582285670264716048661173638179880288527969462729054304738732807258708616303790771092901983591291210067663072594631226589760956597046451629428309478577379532649259571088587906568169656589312508141192242402867562998576066589229748991411217351594218739907398251985487954938251118069613959897526376757504438245486168833609249987198650028493069063131024157845544109232183474019853023445791828583342974762970116208832042443044943668492491185080557228599498547411153679241343882021582988188149358722737689806215390639090787190149328473347812256014621672274170658721921220244550427634819219362576320521053981206145637212296885748233484428684106528950588033407679858887066127601712837460889352700776933817899741423074208021007121601559346128785260368039437288180619491038277509316469096265974144500370390025598541926268966991273351074192019181766879397933295145912777536707564432338432332685262426166922771366275146866088564122596130828757490597352243454300873040917192433912506366963019807615666882856350183483405312226736871736023471131309911279941053648448418839455793505622718158718054756408916077068520323818150863756504978273790395856094143820468792701945414620580093043753596255946424114180668660737036794093846376332332498589701072881834223283593182735092108405573789471615351156370186824831022674498526776866187684768538874196174210130537767303817116472466368247157052750241053064923246501157866462812690092756461197590325208815488559533967853448923612572000371776122219040874033966869294831228854305061086519094624130838048008037213946621014193405882170240968916610293193599993759524736059233720655063539737714903128310086743742021845552780330342524272272254563847545871651994538612619934385699745121557349800263616537474951245577400534586471217872306034017978337930025353082642379145176413700828861090557893847616229772475845301807186724500491719384073583330400183684399093856965237788747505163830100612841702225900632391263667475064907852411517182187011838317589725024158880780143407055346282197153793040248025352473536538854586286312290400156032250279063187295187149122008328598088731350662957524582573795669640537541044608560939944426567746961932898304614452443370227005333466272887517300640430972754403267427969042819923226128286121623653601834114225264238614615332620687047985295404176420527738401034145401993260173794846353047440652754211543196395816146525982941441133499050259298763931651294364553191249374520272128978621082199723203913610149685688125186218681756193839852117405548140167502048548199565328997581892013900581842921590642006849843378880860865943614036420274740522634386203009549451209982820888815501154263564341227939118496984635349623006105978730942388934438999129281453390603024184122243350034383267958579845658103661448089300411180881882812951179459845260405227079667230959297248721122706178112695037727030538619236945985849794213723950331715803910119124250624547071556845335292267530727533561366266356641650946417810210840488823105309003369801812199314619163786038088569270958700210652145467915452483883406253408072662271470296193871464653312992124099876648911644761255411159944567863019923832237644705456260487729517585895266285037752521845594649921469036158572113930634873777572461925762914762586801502087862290813710669260578188354979957275403556932972318131819229135105240053044143930856736757978056138180338291908898691617558407145024807177804276234230531979172891369270134608365299989954256482471684548314327815998936061268013848168107986563087173295304632754303557933645253294590306966118288883048382984135812373753028269495492548786568376752476467867923630654102218679180870583392032438949265817363698176034008552328197822882224049989083988351517937048641078370384523904228520582435864752397767212720237159916658836106573419124322137516799408844597261707644599010208583329986039064919352067223006287832474425685201669192719201805576431473581568386189561429261713634279837245244545768948720388351839689535399005729471955444272900485849511539475266824409421054667298175547081293921270029537830966058289105789273227401216656524060507428252929053929909572271232367384758896044402569839074813055157523085779552040089220487308192525980892747415961693199100225119093460554166641012187759703525983306023156167723647306563719822043487313546543023569645317753622090233934952135067613595589285646198367784323107030635311768749577108776603611964239722278478642583843670066731025850620233687608602900637237753257243070513382811898841818476225548694968376931240752138498497014743792169558971739279062084654470352913641580137838779068704687993947344043318279260725486765540466043120996159895636154460570951684836927572080733238003928471443569066434097543087956599166655592062850858919284093312821761782899892098689350646729888624318050298173538381224167008030248266928772323365574509911724387246059838082349272040072738359714856885377394029935953298930329649994372926253348103838636688399474585692941146487350883402213293274501093802974013606371558196861298817917539415338055455622554803738050160119316871446092203793844203918967687036448928660724514662445462419355160924898164132960134593245498879537636989399498246197544220858379653378748457663109168110604829124160033178919461072607673665842424387506182571225839500990523625468562278891692110697770805685612894842235939865254209179303498180130074951302396127555037892807259208926831495449670285360662921279147721887873701261630029078251538832868906124523255909422542428194012872211618869010670984772789768067145666524823464399573948820398705801649533371199523111995641946562047736826137857228046690693660791397602635721363045380830052951072372503331009384875238267900410538202010504797680554097805904713748780784206964630934161859588921538599436431841387842671869877961478339774057398765118426423051533184639679008624427436702827379170844283195765276640313715887197347985401110361395471432917770156753885970720787072580400247637031666510518326883246180279632388861430371899128044340794676191145603800787018126871526194033220316232143048406890815622186210496364277540402328481349442204191053017807758001454374563501601489301966854222871393101767616073510550487266390070887455179140112101478442875219990830621757865326205266359862878010659448515781201791094456986579608599603466386428042894882119564582513992138903489891533636794384219448694259846354825665989121893046691983010501362950137609144383102009408840709697454431817662097218777302210338015716280400640742830287100235284620397686153150196016002189976222446404230580219366227505703386166492297046405885554169919227773227477145209984105158892018012623558878804623445529954096605285318950907255800788149212379065229589855311188157447874593377877839686418598802890390151643275510029923931381602751436422637378072888471537072157997061309805822481458340886694034309909951154402193127175305628638020353593046712318779210107100512692878448681856183979271778810337945503242999414307314525756747307140931265315867174259088437846379931359974462188214915382656326497324852732806404294684093763158686936205723424547570391784272628053165037476473360811690934699810282276345681688954465452435553884701010276672176622762215734566780516405098011001941095798306537375460069445337753920999413194268440078771312627122154162843751702144057721467456518543247275052489471984940029985166835286726825548921798029041437865764573276797952198221608526604739576859817677585352510482748273849107304088146148186249577832508723051741282445723855917723995177529874991560396020888916377962670816603718829288568736432522299998701802246699013743432955558552288594811851339073258548900522031953671940483417953467396098897256950993998188543266043356128990266866602511863094302508398365000068520032550907546999382302746560674415072185352394976366449901699106175033971203596926435996144260342888660953144867351222691430023254043018885858484223384134221296767115042789139789192994782681987318469640867254682096987626980893165566219933323083603988026575427469252086513909423093163603488363919420082108459563186361653028823522643459996582482604706408087094846537493189581661998332183604716422965098245651194868652828948087655010197710431574770708723927319976180022054632375183505216973273765581258819083945814193671913990638872742674556506730943845214292942437983305015994311848504588773430015507698849310891418920072739247124263636340872077777311475761312733305281659416908876419003591705220500083035701720512529634387814970927235651214172516857097329239418043044019514960155087693013105445192288377686884454759149677078379158759253110647064399305774908430669722316817532852583878666381071810976278954164475911612513093170193066101830691930388686144057878923651854962388375896210110739335853847550501044980493375682567632990197344384881102278618840647141530134835640422495360469889378183148563630247488686939810156983146586064643162706612864406131316727464494999514961467098322391032415869646446886364951051258140969729884141644526692784194283088764618049224672864082407960554076575479900719572835749273136713887917397894365007791065732730147819558984280030806980367918531668006052618595419422334402362056247254178511124872792382703445611788410751684786887267325061273545506303543332965326635563610782173157940320488628525191286331652163882530092565749691822480064703082681823651215855420416311083833987959366291727710959275756934927618787963293466787452854461409647095098364177457821171799660906309467670773700175972078010383556254827860154193850054938450357406211179004150714309607145615590703030461165334574872433415089891997681708928829053099383944359043594534662668638100373073294717680214327059921139077075396789887414419632488593239693278649548032396635712900457906062052457610027891348220362160447360803169316021459858485200136507854166395402145333616434731163563798285314500812128501004319067076594336421105882144246855161735058014561572946962284076515965563931827749241890401041664217099487591533078527747288618578287653248136151398465598021572431340624489513789444479594850085023306539974442440451650792713777586822815761930709685989767517574420329810122389022641738689663990603800794294126774738277173171227077461400661751699618959145047943393024986575228148954616150242285821758984067374654408451975075253968985199485330132894343156866219761619894160230261226919016662835166663087350601801621602301338285788051168752201731934470945828108003939784796341299185876323345961546701740193701355735222452317452395133221469357095236122445261502168351053010687470499512872821640195074247431127194737273385636015516097321668155209436610420886854620430656810875837957431993770751320311483622675637095957714045329114955207592612249800922145577373566653585788574820853871275606944699611715484597482768176538634068626861300866885761399267699032864407986746602571063717758368124336055620361443092217320850992004555000422425458767231401999126482999097836183014068156463986744649610387603023638022774188018704385035089171736944326558320087349981991802025179277732858777424292974104329761547765999921655264258682679400329419063410702645263935988555553343918683587218928439197804138921151748129764519223350419514713925059447372549755931688155897217393559264672027866437737721129306006443462714051945741050404750347212642293685824332211811342912234150689194984563987176883127985330328237164008911927964101906679762727118784843485486388922841699450494822722520821082027394414214111226241588529484501989555917219817451799413144036650531903856495956570445910854953270980012528783136213659801319113454972711127015558256255809246510658648117196607495778339603865626543565324150479260651855092348264436072801763281094295685293335539368133609943902206681378940420298001737865362113456537946287425419387407488641406144627924176150451736820425474318702406203048102145327726574561244575768808808555093182203273422321742416775831114046146739914861193027786509526456582475538295295902656813285419407561380111523084713277016222719797179328037023102339117110227143280792529363746015040923019969251735593685407628322240158486127246262287057218989982390488009674513807648737983840370480399787384990231412460609495879545464228931041063103116933378125283375432560800705089793233016118447962187399646535010839135303402054328796671790227377212807258399069774256195453044904045062390611751097284616884209459824077020352868942318912602190194878084768214815104921021949724237364825710880903395337314839085385529145733037685291568686688016024187440868455296600464185905349121174818599669884810463317939592555305554180419647465710983760260013603150560371097532956504553740812379334754687882423370017397884203993292813990476158318085615938212850309942113692499888663350557972167810290801786021302446869562070718084536860071511936846408756507832833374499617635251314655254504997081845095888848690831753571831223079271035955677931627211676033580402560315630596769371072028206608112661425489038187490127033330264631630544478361260654125365658051935364188328492433481189852149141110242505188488794063520074580945838519705082540226733056805040526824868481552995948760004116901698376598112936852622452365627435095216171325549374926900771029741597114487855099954896212902185597898525347594530494734361979713537852692590883383668993292414877093475981309389063428367499597027229495462716426834752433298904595561034412176818568147810585206687286071287936360823879894800835447527161660195581324202501529585588106467903749796364122949330820937397979851339659984531624019558949577973050554557273547332129799412599376842171225854786839347803533960935007409138267722794814834677076174103039037095512489015121849201960039409776619090748411493463605313472906846358478569977807749203446343248564413876031325108757944890892076121752418470551695778402783698394070396367366392474408685425513075621103525498290753085834722580665336723480386698085530132269979853530641239294340869039389743696310573784866439900400560409771330082333394524213850622729985161395442382766392940228974997991841067332429196680299131598911480741957929881815535504841575299698721761877478765738028717522469454189325604987311229305044089015207523100172435723883284496603622826334603662651845132341887554294591952257268203768790234542381973716611467865857115807911795043377453969204354558913679788625447526255969307662885907771014633568468404168816476185896763757481688602422443305972840527244908209339799139538472927576909103328979154315619571897023310102789593691220572912681980386154759342327110706053326287732779173776878152235994376461818741152186162121984899426762524792512823717546201044143611233988719663406771547012221777703146605800891833722698742963069644943922903027488028808661268104782057052327296391709879024121832296934432589657170773636817670359133725428679971380400434511797522522109683102487106912789956439227251220451849095724501725816524192755186070804673385521489224590292864373356471604003523178494780601990496157556400791189605944878850968831706675346076719815267883308734166027710040337247657246711090051184989673818218039369804091285445461938688888215541315637472354560385708717337351670236035857448321091067972567989638111540786242277522807720164807398443418720472563951187298395710264562073443365307747730601136967198320672349142501763126449876518934935058871438086427855086336541598250319065639832409051706617123444574448941053353001126352426080899625132048130676157113056691780374599514400138522363190401475910413150589164755552792397209364356527971223153650150860463998332433561889141035657564801354763003832488307995485130025019521710128523497652148480009173896890178223590458134388112355112537557608265261691844161544195315611369854283382088531983010213662403180507653907751169127945479122838094957988064729528720996814184623741106368745909658433842665945915241567140159187499804475604642443747446323903998655139325957352785532354408256364706686281707539713616805614079138215205198882001641350179478394715264247680200829496821489369263647398443898669232225665348865740198124139302648833963944723951014017513805807262122730271474811705392377640412583914182412137202396702333727788886417828062720066052495688563398805158321061960894257858900017891853762547058733831768335700164100113210448879449474868386928427983094376871367662501685463521856821592100681833982584159136473394610047028969184336040933068628342098824804322332226578502353966105554017148856038672715217477793349905659134332188244355045955693454366239221564579513241349048761618401951048410262549286711059928130233402469146739002578885352746591351603190821980452847494225013968521376889232561601205923233075397315337293296530604861964434788909052444855483898536696206109023827287386391586886979046251958034523430848376871738895388631529091362854543361800037293493380196066484660571499040376171647233129937890921279578363166744702699753788095210271387714696479028230790170540104303032139707887426032727104417926954077209488054134928277336409046632826820961035517088460410036223886452176888100070705416461012907392214119800843925040623352437142338957330648680726684509051782895107522065651705130016583127156046236122414469339001559108688561190009512657209783184572160259311034052902659140757834015731104656176857889817321627948271507645775690209485399406555539570204959568531266786261415425422907717001849269596218990985957897187950643396421925775679087891875081415445079628351219633819491015841048688722467235231656995497503526691019715858402625409961272940568804586563356923138808607446374097530572396923626320452413445170666182495949384976865270604406518550028966288342231696033068008701625634521959678600275959924232126325215534912043060341183925857865417098790397881278200088729557059304213547413820611586197048199561147794117694540729654626910749143399983057139970063134753056529985830555702032745924484127014335397048667236929398309816498508536211439025095552099398902369673628632745795288378700512392631507701006448538704995291650064627967214614290698337417328597436420139333075925676364366305694852473882323580068591894603313215798570306247715758385006524385464570669211010476562120895292074772917549037456633769489682395911769910015473576692747985933101788517178219071035133054288987299001437125854237782585403604163624960000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
16000! 51187536669752433687008455690360324110356193336504879817473991500146778765324781067599011043116398873132656306021792688606123894236847388614173443629435460979244200747640663176805359674219810531283113489509472401381606340582717536163033443241155201715617995132012654143912863573291009404330782710651603585977571200345416241988061386716092101171603045881070910358657186138305108760252107181338639765301190058483370763249479421864051057288005392046542118774203444842085928558324569791725290987314385703315040144547215192019199318608373835398691143491212498099218861903285336530209616460074363942634489632427847924980985507063983165708827493494213770687232288299700100270005705078205908484001223764791822172315843064464213633461947919690474592056527402272340627979437397737950613948410202619343482957489668344800293883342031711425098814279003041972711309866580759013121044229913337006726940249514725724385615640179742370222358990653425587900719078800710573386812316844067192348289546873455372226998268819625176114454189003418106935688010829732990322126144912408725714543641802593763842899378674963036211563415903552770130522493013691444673023424906178922154786994130332964240589605329156225928398375263900752100436929160020104707742479915292110543956205336923389825939849068525544162912830190337654174567317515895138431829321009429843762362345952137911125127596952060222920920738971983840215055344232175905403481251160711150501761562434800888880243314826346774290126286284297014001408086792413221144053167118144248185951782614276106474606464409075691431960116450493494948870162230823356902541672972051146931736865498405515574591602366423173492522516540208296108920159570046922122069653207546189033906771828759992821039574283626359108899189733852792420841092859955261146569766558300061671492676346660449863879072989924908301746181237613676574982673172079961071233022594941780643973691055156150789434820249623559799546195359432365073910755421699631021443206024440463030741897524238337517858520493753842573410350258576420755012056538811370815028282789886814631145568235578879036229055337232482983179750198236029429616396518171147648843908504274435163033294774968822097079229438750497311893010281052579322907913023140821740791635153900913862556549805662759050673893336496320742591759976341407572820618130973581611328488724186728792384999986590821130680773587673586237339796564466792282207538276903829321081222364648440697338248940137105970138133305634278718855179496046364631872223616194825987318111831680867868124020555934387396865646064320700819915528431435928076713836922972460578221926402478756172316264549139507409442089572713924091561337062011974787388512672845249212125349052033620066902851842151584737428351916828402985519655197648697184138679184335996259638335573005293235814216703759045349920004413782529598811724440769845987264025292089084880287224746566272012234150741933170270543734937549257582071641071318924986050694610255749987525996309321954493349892347300295155744069091208161180191337562952019664225936992614110571091450360768151084036253922526460890616678351377352964539190202837721652117760890602820344060650917088321674718401202831087097867660597808198497483622714642527194139676723647800296412258639115134396228018519982837854585940693788362590716500181064613646616558352611122111534701218254794159556072118479596392456754148430377621245010267650484084824097200467512551829821734252129324831509149145395614008184844933638362403062468006398764805897179543019429634028485441380966182899118287848028757538264818189357784442886478714231017564078047852272829207310467428148069221546735082049291771052810509297012929089483949194630665379627402481600763889369568489684633429343968943184377109441190310535732552688297880359463649767286165998911365900581062282818597021495825696860074952407157833282147354553350883946002060596163530778290516758319386188891009357470581488884522759835242228425149269438167225406337672212428503229466124613497324853324965873490108519958498446938241619514878195903994133197970047464881851288615628392136902413008491462707442561182365111495849855149715964337104870326048924154294315186492816412095639247268198599536389206696859094626881916520959581573999182762499742503824232680271452217240253664989277820256032869661568924161991168460301836599943784840545409544775057866072504923622338333083631194764588538206334589289517209568043966553913220011200892934596882972866235435367985005410237745354168067545715537698611244008814933302979700556149433322708102667149427796301215232328547800349619737798655235934958139191208067001831910268844220706669639712037019081125774868922468780146193149358200786075583564675264773639798142071415803239731410304327362592536182727684274372905637060730312868724548468508132579503473913513773776417184756235035250055528066358904148070684164869385912928527234694685323898925406306164408766975184599632113211979169358196382917954762762561416727037061732359355025726502922544540946813591457719342378901805863306119012032548405054777452674111046701239854941467642387959990441113384391288846641568490736094622478603346540542913258519480685314207619138231388292469697337241520241981527692316995491483650337324165034652794280424136950074710779250065048131601204198069068957099025736858968478303810503930308141973391636261165175172176345773134595390421166410536808575548456417437113318451372488250824343084018146427454334983861836217468507179700961264935438573098656957871592755254596045888332118009323259542535354410562436218751603047855256031235678365621091856077809190965243144428418755734383986654314569415172892042453276977070124395294717232906067266469772088874054424211206743806094490514330173797165119231255761410527223520472955177424177320492206980779093068474591925444298729542443186430897322563279651880441286053596895915562749728108273032041178617675718685001291648653015615134516228117628324292273117482049827118983443236071854318405085342093879374263496096209761071468363745580545095048443490649200387185381323920372993598793385774444272325339734597277197942585832837583874316407395262696830918517977609711958445598996314672162957689310651868103806928726668644213614744993919312869303381569729040495905364267682833055307365236669805736252264705571551981089934038070549970163172604306679652977346773677814205198581661766870740252815864674474275652053197963766304413176198874774862489578044444529700924541980452736860941251989370628296722723499507711551154358852599708517142943628495433439425321698609201165109540974229389530905566568072553460890633964116609000749959606739991423601791138935441202425921680371817397299156320315243525870098385081341181877273914832239286702516879756050869205019413582432962598804922214434636650906833832948136752852153117158739035445021815799326206269440816282299332988231864145124339844587883622086551813409079326306824714629504601702866186154317517273677175781484989777825299644087816990645508248674285083833408059123877804299781056869282420366175815233940335692297754035487201384556215334682492834110146403584300136335820618550105373806107164486675225165881156828634494488372701236793765551631910829679001168498516574316195000804806890607118980254483223113100514097503949736110350414378243532062626109981930552476454411402435511623486088529095834738802417967170081690824836465265920134676520526541036475556576717112999013324567070658725196758058437171016566115674747534526987164027760436855071240141108399930561735440469049531058071577387081274261405633571186252538572128123885143385914446267004834385498978353181934891815385009196847867723043731637682170417525089230977277298495184393661680707515856570016637748167095882787232139939387005540299778902686084203107980187806806473464296083121028793684749886413392849590171051670615043409429889194554031997223905194258223203386305648533377852392415391870073164198066622564775464977605962831903879634187099083409789358876584279902668544191465212858384785654584371427975874465884133585291846683851252105052339389077750572716116099387217956090593548641303468730421316467618830495451657528681035415733243932113823245226156724873361472689137196853193537682741447371654124457757458720658158725504015447648275304997777512520932363619435557036315806664249874408194393940144943604812918556515578514064596482995786689001622960645454118330937504084244940805993958211738285114838816127172813547648742683771950209107935148333832044064101855065926446501502632743485202889313080225139169524716104166985761396860126991168843880853102735580613134414248722836010199033248600561238360927326860509799294311353562506245292306145765779876009932531797210475483044511406940055550353042175123852744569283870103054776405249762411997111278538383829137881389844464664010126301971844940426851034671094060571044254497649123698206922767517963590090496074764697399798555930886250495487611862452844128432251868105900730105895904112904536329373878838328797222952996848527196454297502962133197718784768562825356407153691060164518247708026297231522639412430412036403016521139385122298264174624961343974132728950017631749779224099230674823206519420972035256035600139635512613538916473587705722364102423577371608484909559062990272122995406431383924801784544647052791452162327225717070079518766315026430360242640797623200172393390399235527134712612036966558526786769619980741540109666978405390208780769711495344939095808744245705996990660266094009749409408256333524286708946725558155808975649839301551946118966725083658632774144908444365079713821005859343010070110059726927322177299975003444025308968701905919392691330466716886996511825015255028823657882329664917719182722722650584966807109452510105600803504496443814244774563301153404282176126056729325812857548394522837781324887664760103676162730947257106227032294544579208550340438029018565851946147651381071513375292423924930655599865803096598865620452333249160711367980417940152245783627343118783636211503200431919269401551905574077970819321392762487262542876555924578098637015888675865165683397466264051097547561067744297618988708148907519663281789538388022036216950822122910105490183578197009092855493704174511469352588313856206611739324057206629362282497738440326131885881235286195307399236629322460375353819608045883819071949801067892478120092027571491636683222169286474841386276403527730677441362486542809389940046918744946173603664175972596708235841479903377321852876547268084010426605745427882871414735288443142588483035157769821002846639797193083910530968482138581370137361732730568611163161157565621351440412764656953361889231811147291908758812245453412876327593035149635823883674333452882841811192314748634397965330024381531825365867622832413731786013035291446648000198452580709117722627786348260317294779937738928279002836379420665586453429858601811132882124061053602936972991039545480958787365992769621778511651129803349244085486798316414223775471346201014887865656684327897806717622299794961089222334725502173624160022481150441344823315963520719032958276802287261120679957094727066713457459992067963800280871948414738029751957633338747138823905898959604026009747155100565982247103298463724779775484970836365128493619333664549383388604167916861683440426848724882093331851132009253165090597424465809417496359042283951901675938376884167200930300456993525755894879755859919767916780390149193792461325232684516226197466617286706393586447859965180966083192866719240961050536491586845622875827896473128658149387594323330849506321102558364014613627946970774507054148338383096470885522189682528595229888397432143082849376142844634962700182343434194642104468825091187034946079133068999220323654078334645556867877165355583147053165578908930763306739347609842682514049119033608751638891324769941980107334652323413047410547443559311468029694423796001646763021948904083768295150895009878153348630949659472150597561991424461070819439038016817019460565907121731626560739173539239857475904383829066368129673436629979130747862846880897482981326493662790963837906259272743664560325577548388206801946938722526979269413665098287264846305544556263598331545677429267243132701708303010702067801916641157705915228787151840137858168022442277056470790636735742702155993550468368215953812268928107622222147037683303770018483340981860495369179517446720102373354756167721600216886749912728848930080208605450172097676588556661892490973458732214778385700982315576453637361518776716282365115691390809863379240110811865929786509459600636693990649968499372729547424696817888223700243923512326667107066131173261914386121470894206719353917892303197345319690201466339629042455378624186412132163853345225389830032837954812173987777848866267984118424363021291739806353175093198479657512147602288797491419312319190595680045503721575787829332978052059983914983374091420592296729002853502639370344894154525921648924249780648480850703181184163738463215833381321717165244613523512832229847004276246440780315483144571119943694045275360411825390771635312659716399653118641960474375713248671954996105656601936788204194308159741321564222789407150284668500764635620513353428635752270300588530377108327484343193494164655850220626280453906600097037311739855204280305405345851348340510464752553452278276243699231647440159913419935792271223665113306703989402240673107003078428786850756004474102816963719634353130171295308520044354907974999694435735134303407745713627067847688905729833928484463070734007474820874339994605211412484026273538506794822436954418819821935942994599596984570106067294234915977012015691389761603160029204706035162837786648813629830565568492154115816599926521233224180214873185158370670828154607063572676672811735417339090490532675369772509955683701142940129148334445525390746165790071720591759661826911258431604531959275188633645841916847643059017920852954874538340385012263949153460784072439160882741968919723849247533111371024638799367907836470024966820175995582205421105325057104830572215917824359416652688212859348364130601034489215839194551234472828098648194673557764166313895249273696155772597918906278653286860215556038374137482455891821549379940825020604598864954341942919314138981537269792098698474331290461565704974246654054891980966158481491609198670876862747156427719880342029119961189284496533339948421166561187647726870665831721020881327084933369275430247089812325392513223252033234479484900053918193578685915907640915632872752883650142811171893309475283559796605111456681141346683219737379350312151529683593136178617113997023307756169205605672108405590817004895501894461447967812820678963692924950520695603179883816238198196374409838023379870971174558167477982942749939056558516100776336615411897240147346353191902298388292811467304313711754373266486219520876099628893633640097169912421618109766647975763226526110550546270006367715122821124103527192527759028968239622788382551269018363997276029198773955385081578947873623982558117965658372014332975794490067489988781266714036332326608154022233219606380160802575331702108441076433649065795768373990199359059234332658323617836678956541380258437679151703702426474300296869536622839210781784303786987542670877144462825608799433097908628037365643160384939606139501052265812525732212777210121018871556020334346207199088737079757924593055068570215606085521693984478302579752708870035817541089870059989969544711716311739122122978341140888230483605119513871118251310870726939891250623095539855977245444612636933277036919412515891636598818525546312868623932024141691758855395936686777022516133759927083735303764000885081060623849500331044943057718172762154113270829085611174648506411834625323962349474996588232858109141421196266079494585401271089471802544774483549873894482237245780979488556865291312248653273000590231428212796990680293478920389529957549810900812502591490178543134966557702922295811390232632670766373463121284752810726139853693477902088243024734559587519804468685731880976425468482368719220208832494332431195598341522917841595153918117023544035694716085666748122331077735517207476629733060796076358738603811823419154660513874942524229786372957578466165563059301592321870926901868159153451138718211766499695144126564175115889720243849359513261095502103862216583880885272311735692271860631533990437137911476875311233906425855262582837705587332542338126005792698370872200501399467048989297598586788406643456766654652577534496036742475448783918912420394100733660355634795317400271972563627657066921857612841923431409357269478605317900768219682559908076287672684446999921545962671484040737728098169478666635963139663337077387055668337541475466944562480109590123538806476693336325310498891690763115512872677417547764601809320729777894274776537535008469005850164309606803202270905442781085521521975134521103225433003713325517548673011899297410095747960948353268037515937988263800390004659378829850929211036513773949179144367135836475248895338655618584094680892433639646891534228355606979332570910116558083171948774833592227959896313161517411397454709639078789475635959632514983582541358982556697177235559537640609344863185539867248533096674448354467324107441190592901946690114486373883678088674943322522360759198919535027242965374119849219918380860036272871325663947591061345262075657670379616809238754000598184914872520089105692428853990774673147034966056803550990722475667181342671751544243525092675373708210874701897047032231181872122319486297213560031916880858279732087745230463295131780072413132192419556642711482472870683928182134584899585965573628818252237524730448050708860543680812347959896095711906907565836405980204812760244047691984234202209010362592161168624217214431700578311563279133086475244703535879883865088703210536863229920900984818893694611268295436289352168737349924983981388018671590734975455420363953287815511406070413460672526293071700271969504218362982679787387576339750872670034909014349027852052995572446544075736839128688419821270301419952352105986881288423634888419951483529845715925942391511973588823573669330210196941717626501027760607804031333681021408230251891803137832774879911331052571812642698298867377896913165566777454642823687072067123267731998792271585443830985428816403407900243441527925628082858281413753489944113625208482718442320783497410473613453950307573690549671072332240500867966255044745293201606193691122924789287432443537729678704664991763700349325577325466169272207894730270972229403970765218379399407877546591797167274281805625758994284486465532506447417093275399870001842825104075566974744311418232137216063033001272207007911427408626609894081126533473187147924948075092333360628500095333175295529943960811533079403128884713760127298050585224275219043363653005376817859686661675563798330553715432835669317860519299567932290867571707467495207495282123297026732477353600598490169172963564745181548908591690951778765963804236560427260756491878624542931834832061134955847372078415462362315837547850133200598556281416055531603512512361106718719888336623852896645667017323983752414070908836587681492148366959259071627579027468004619942926715277820448183552769879663493320206431742162755751752095963943280989863065150039776731318223412238398413306462403142992325383363196665955533344794143796685249222617548824220600046140326974461109924027779432912803011311835124378745749266052484089340546255653891493253656157721009852042394566478171343285847520093319484837412198465502310982833895182644443336737641132387629925508809932066895083418044897766960421047827360988946650526135144449419020102398758018145005121183697125104484923087051750947200543100218530201179663288090558317303899914553031903290722764262598257825719091181848311298582623039483299524596428844925677515777167911296284009454476350185121153585626611658919495410598230192169119455550212844284805748085608571954068233205498704070146402439711059020753119280643886716518204693601715306489968203346855943352236136834320155049828710880475204973191165982040878193938020682189723976599994583779409722994565887664525081611586028590226002110780255434226670895578960203438856794160558262733773613278878294174676303532267281208540345771004391811588811951329704742005618946617897503274292777014234082897594470329828132439356893079208610674647251005144389498480867070122949173504977189072912803144187653974256469407458416025622366446831075949917636333059343470509699595976391313475365134866777174118020956033203901841354653335608821601377359344101088176836965031347032117329127515783879114398830209498446001627860631007604649645524396356602781595616262897818315308047513387265497825113597792450512277956846752377283611245955710954797763613489322914223095213688389326533092125570461673707900864282646283308505745873006455182823421157322192040027265892358741589178246362206977768502361879190575335453768586418239261916557956805144126970442335441448455128701950871734222310957697842716181787878442619331201674968210279132946360350076495283147838845616986239845077662424841249738810534910929151857909891308887605154065010765212220397664000593327070385157297552694878601501527064453708906188669771942319694309794240654470554517485087437388259615746539023653676650681253233113281667215751356914241051409448366166633062485847585891093339484138202759962424903107451486613143839157931151650451330104465895625290689087188041160460009921774564156515930735341555897503364467402983507694676329909415413006966079790861625392350936259128348038264294232587890840787108358495850245084897489469439749378865099356310616223120965274371814234351617580127220751734716894832467014869635468806152979320952562859056070572790007945791010088387408362753042574230678517387134472089960175691024887220581930905228221383983265741930738530872160782112891731066263491754244430963120672935231953139825542834181719603847347357773948395745910962034516515685226699692130742249318043053399705762124990912334490249442839122205246893117990302713585271396356157604583862109308194172232245086831369967545387798899740818596154905313619579111453949994400301593045985432929602157383460839554423247351810066050731942393457705175040160301918291319235850630283740239462642678977325565432804349427544011934280727290535817350291496355532570100375313147749418858726059382378280188749727465540111403688631217994701958119345281626815481149681975448610004168781279645794782273185632018636111393878862333485285927946983062011777783783382190381205856478508131650508640613141572417558282544908798171921179505180613657978933453269466138364969406239602835823388661410937617506141504792545185400542932628693176781503573906194328523027372517552424575546493078714166581045187952688159983337704750795791673616743343507160594674616569917694427514496942120386614661403055412349764608916481898599385599213389739925454780655285706217232819561163787518233966443480980354064907548311297858692527340066944742364132576940994725323242193773492655623649515759119119868422174631079251167382399626834590715804446020802536189772388704810202898091020448032017968339123382518485672212643540199846315141181360031394767912169634358247656381717753742238842150950072282148030740328957362498583343221668673638566878731343671344667184304319989292210923226644798485311272116336599677290164643285951757685753299380501405559273679421745538306059228135141599353590774596321329487916861715471170977943068425605365526609449628325714486770067784577137949193755494901244972483570223172459989175582380180974877358009159374799502433260216284982823410859064156043068247091668662920579126489686508122497208359083764651557351738765367483169203350547750649208997016145927238180237912873364491428177102995849715208130803266422297117139250906591861710691512589927352138395048321353158952323157380393669605850402851163474088399613859845561575640621240206677594512014849377933178483353832652677266740602377414117763756657029615819917182380915712660089078507914871177750964788502580427404083931392802942115084595695564175185786058731279193828850138221632209403351522631190388702209188112864960901285552284509859952572212953609490457245565906263387541965797383638968292764974245089636711791719377017582506850485416588359381258015988661625380048856902121023777131454179372404708165684885427942862011282990469512483483570165439976452172201109887048887901856224912320688992921304294309916248274152309720602649523023676699238931164979553751282057239094793671130054807531215149281998383512297297469927992728544303495988349882314587010225884699907263073854115197664106027993694109218515306484914032901442106207957073941907427426488973315432688873375774498760193823645706269180500119844483303651918482136968462767492066551830422391142712046292281032752725437499662972902776776750500601744216155798876428506081665509297618517662612520184744404739709524990567162216625439482546939355073311411095514786192457727486117338939639654855137541295636359568135844286430553675128020261755892602270757765217869065958076634777178692952371892423161766747486962883394349942695237230227922242123379536220358362679936534701242412629768723033451693982622362010778492801213072503549118656031250369334592919220421404430710180113283705737029208360590700583296104125834446762998195412294606265188902907941554280188950617183468718825350946906790296303447285244896558329251952281904723261512814259294604270978357428894129018105454605273531957681646119802120630493924575842590121654248156277816403858293201226658996228510364097792782601162355945015322824116841658896676436109664457613693469287712586238157699980123603757668261013492416080572555278995455423652323021822239771778698467097152017310585937108044969689275497340408218068546470818681621647457463310940944313366916847707234562365476381414612744727125478082706617253007248469841716325820490362545450063355798111369825100700701249320715732365809235306873427385141727379022014320897154854109674099165144953593880502371425218581476995817303491836246535322363216996953914044658306065350951587718837858151276790557520827447617765119544109729427687102255690979278196699900666503151035643408742383354244511292288140173295998544291166192110281167989875914090747770699354825606604983874533239410475142442600568102584281543801135646088431860595496368227826493122093020545290202674504045667022379301941586027527748083240017647186505359759372600194558435279300304190245840201261819647260028591665207491835218596692506049091045757230901150982302280671439421794316158307778521421688032309797709183633749002846340553205857008311996711700636159769341747909266758004228965915580543477809648999538119033254076210112009539322436352945301974800961539260354138401670945726116572228838743493029873381804177662293269094978711223363823839924287912742110888517776026487841455596405289547598776326586887833390144206412543236720525110521182223885560833391360889310273402376669095437438952253259461539377697281584662205802778482984767282072532227023547992239110416579086839684422560086813784378025846975000492684548249653323680259084823355410246347763477389925504503811938106119115536375210642457249111653209557513108175669117660545048081282438142497227625170379763478684590288952753063775881404390810324059558217631686769840763668149622499306929400928388897771332081766524194887967156475001671863040255837690807268480815134895108806622823332885104392626430299363010234186937833643101969964218539773678545943897056147152390011142918171003950759463409751334348804659432631488056072479208873766365201826323842815131054899235380741631844979482202210635789651457835311021343322304720616303728327736419443104265550874457822127337982504540598572114458866709524209623180773184631954427646868311856798883251419497386812508439738441627633551465854100829376490690035834139060513861422436594604108399131948698056554055689116018908627444448832767346528603864915327196559253194266189290682300408888454503402120289718558681211973718106973691434584132238595625916325574216061663725951016221002594389720579109737416608557337651637405351545310305936196486355404642768759285747232688093859926970691003090757364066161891144230499316487745226601261170612997765524928365132332338817642168792278539737749192244583590915860308774621547435466639542864703460093078880368868016539648588005143735741743915511542869497862662037884156433952445598865212612257114628163759803064952980988434028401885156569603085198044593445059231982221079301499750019248977150309130890436625205801474913925509914409745589652927246711490087119792543934700194172773549006134341756803663086779522378078972736223776038599812475463116614848030136182139936145585761575255776848310655068201720132647936616908722307944088414966397186113228629612146554751152114021941797228260532910178771260132328012360312943283218090016573970434755302994864214978802290295725600455678221738322991145042180922918779197691717265034637321251287560149315229288992208126806448366113764614660420976686596110470937798973477192797850794977431797561457180737929031071250560566936052944271894964446260920315382690228251218279793067446312653087678381004220902336854570592979896507358647901181352771581117842217002273205407902675858788771712237597780341296924909409240699138206034846809219187388574381347366650638704639972252444466635753445356457140839907115121923642879722219014709317680260204546311672261239472030116147508492512891337830099075095972117686528859965416599465745309098728157921220337716740689172472531257714477050114897495139998132858356591446439901347365542931205580041263214795094626897297443079215544685915918616943024718850602142259075768797830501652115903984680022436402031605516874878343431814113564506494723415971369429745490371433830403798637232313907389288257645977024541519809194273388255422213747305554305685368558574907613460124042947800111005105144584894519608260612756832349025193608696730166457499792230270730098052422630602155262087142413790506577931646203047754710285553102965497902090955371440425684761901304709994556685899976022755795170028209284080612981274757725791646882287193112669196879224220144531118257071701706292741845725816976642934175764889570574638942496493714449568761799874500165639569940995267704475061345337981582384807675819554418867248482825131452154421797222719577860628207973561000800710120091782330958824965610006316611365408004888590646930907129664497685124775528538677215735254718067356316182646876166686560112882409677064103684014976313753059169472404344768143008330934851079441071346894707954596097608107804260803066727023169484645348837781857579101246057317484030054778910947026555253160125540563290337666779510595999184447436699161957273304678044762052353032484987899903995266535303220470705053128013039883086503277833823850878828057681490990518521883210649284412140427818400793857343065703108546229597955692008666043565102385184420365787477294933788721678826700267401821695038968095050111860605443544218587983892201410451227832738289836343854600043004776852251688597417023526664032844509511212463096220973781811677076972299234789866831065752779460094245740849830559131504759644651663573976855736243617585759290847037657277671917863646190672523341318361523744292558381264825829898464385613060336983560642132800395472082439350376433594264383655264590299421051749696648089924265715757770010643723078434141548854610112293774789597653015385290394238632002162191927540972593984468425963276480808475151085021511732887130211362199583327576113026905294739909351056493977176879629575031534758782773932973732606925853504767738096221743779264606894287889816415215780027282496358425466820516093671119135857508809727827153492561243529722797992540832921515309672752055332680738109918776903004043602271657939545253798178025045870489424630266779618148766322314973452975604892544427084718434360523436307791446303660355894981963083024469793166383831535931191922874340301418298267855443338963319313866001054870694756156693772694263954643513656234538580475798283687737027810381300719423599922524133571575079651299496805502639489695597870432661313757612839028163956725187752286540913118304600581887845659159364284997329275846511132268560083245546414380109108817051429260262524006432121530124832918833785171042833621414011967789433330065463164967563689308541505075428477094064050530771146542529988307890079544418763135023567911545974760478636622988550398679809208445581142534210259699159592243413466297138263915146627895720963779744816948205282569596133478301160989071104049589770279773621956187021857867238253011390220813181089057979801929795343898712180753339919624002980424268911161427369710261779467646684004384322608198759632345983961959495749403879498062248125083804190758524975073309586688116616549972157880775100298667967845138347233938300756244695622324199528805160022615445740900173231558507775006142247907816892417567703140656549286250071004929308051622998917590509726709881606699527977487420808433954968241501910948062058674669487179111253114659837607293030592387960593351938288769496431773424211937386970102132280584210365213307951439350877829083998301787052189252914597403124389824015439247390780765468323203270140659663585382698010630409750047827117816222673325047195299730033642429332478716657509523384689308090317289128222280941219309529799796464749994985116929224381347960557195183124189987187038885033378271290343066565717296088642702094271966826386173614215121113888265344902900608816612048881726099647121402772745129477954996825514968487421888464662536378331756306858229282216977511966494689216831662415752501051213775109465610021283161370680250248737082750483767320117283121741633172512425318168437434027447225150501208070289990421245673315606091315040879039719656991175570619399133224390258583478944437376467076172962839735570575109762421726633221743593218999663669136689660816178493640607876989333356006683853442867988930182246020611651379180960743258189702763920521654347644957238925706832541366463598683347289079299055072541151878433780073421116021664747476977009859410602714425281931209348625346303567622682984352284551357678261238984098508032986880749743010831108085165011200870318898952811090270293215668060336150538746908134536362693659672179791531589420069087692260842514321569905074780468396323045019306141586298487849358182001025755454377836602056190974847386849876065228310499379967998211097665200605956289177698273037897328225856762668392177360330321505734355616283403786633241844226540981405262080285470336628215379798503231239503394939830704809104928990135930801370134042755266873039860878133727817582797053188441136357750409611196262307168379109501784880490861781785806645354559331601525389297423677491351453738553186790685067280614763629433533718238545109144822737848149985612365905191767458425035958583550251641932207883540957120634486371734615643493942452222903825020634987014844587747204731093723213798933413976669924470101156418332823670725831064948525477468965458404498754067564694759235149763215018279855005575903987335986190551657375488608272646829309825936485587601442588186562805268925400568305389474460329484368020709939564497733075870457346118402800089032976063813254208187161028546397631552928078103820071560141388050990589536243915018907400749526405321042854592111215175822244324201561129371984609432114102755469347458597520705296135153071029159558079897142378411867085939474725575916742280048281265908274595585612429765387227004537669763725450481264609946975971849785663148743196322421269737475767615728903624813034723780117102081019975573416699705712118766106930856672966393354511930828906757320016302910780250465148120398587082030632780771490559282512840249938566646744691067181927247823175732793377800827659798932970435586039759720615893378973263708778733716264880128660144887083562408475941299765004641601847108830110879195205899637714311672651840596447715614233003273737957270411908297732955900260261063202158268682872026844206814308998982572644192502975073490269669322980726507930491518004602346688799289968603782146455369393759982327157698080508477884542726471362200824028307639702092986556448290843052146927114961789054192512414337214094880455623566293622479476841234458242835154089924185235660782176437541847212698542424345062193785083242866674005153451350237001123609869030986793640160627232968377427319986068518285749363238525408137392783675801579835713448976569065701253480355590260914956202948743448122790161775670878346568355583801457151138149197368634239317480723524405072082226584087067309717429056545240449991880761097287374435342672746069149969167862292579541516519489857622730611997575612932105244965423589585785325821257033985831732477576445875783349669465623061026931696061542299622930568784724046766320217748744185097669790128762902958592187309161216964186714498212384274550667673406026863868725099871217632698007333986299402317843377140667920777932598434838009612755029502910270441448497704121423267394619277695275302199971928806656013567208675406243392754179884915116209051183083044048557577710693728539731945503111237200842760233842117985242888443766197570299689885775509456443210220848651337066636018385160373297902765035176894707202880631763899718225353570166823886250617010299411110579835248185210275127519241211151076143497773611451177983373733647183153476806782078572116583303300672803664146412964000363301630383372892670764996915221196660647098284957232840484523197585146999123057462228014425543643361625556892110351571410358353698404035710194059839704235728054807305622585216640797641671028177207294813696611140216538759014194513722950245892381465696044370002309795198778028356731552312927288077315130481879929407342618585128714350456058408715129577264664206305380287421259344067596438953540383691435726785510701978139502835537323580393716162705184105881431972425251725301240647188201416397956819619911651357913825477844485200227745166465272048190949280014359597276675521852925870650162093110765289663889712489671153609308774046886933128940826404173442068016512732407583590107778933809464176996251746035370636841831190833756371097638135557459490296740459255946033172823875757302120275868887785070175374570573688788867318744668050185483614337360792514221080865827505486930875237108904495035688633625184231796797335662626785363604999316902398716287804655244775716849096265556444858004210459105354869944508608866715601268188458127738677155777714573198442186116866982500493767483607049845793193907952253560331691663158726313929641827380484288560227541067021143984548202275553549197720049694940966306708141427704025520287420863167907832424412750449975513794043129234503309372441826394213302513849349967553731098464428074037336674179807894271110536110175166690505227704727942519837772646731456368796000683253814031811507255404093013922047300627339051905858993694693640321786467739023374232827692182662374222775897573609693681230707506630528066049815955930808200541271365385845173049553109934814981617537957228391670811659115700325333029291671568182635479349174531057422653599414836078090564396098410941156679392479757745285581986031870828645951297574202943024298065306689236086056075646306385279549923284056249145285385537933101288489616326871389155654823365877194214232166169878163240059816828848385836214957781342757566085775742701433686693264915112025511579935981780715622424942585307873141641065759156762922470834643584539183340656032417988361773523460822287472597365096961941804518181913607835284649123912973213321513023984407791144831525103116376297691719478200048178821408586458612301719606662351174846407899196123688111464622656163279981966372136761965039560354657061479852031086784833661416923245017027921915293973561538068047397625765373515067628780843709592672295200900539527029287624733392048911583082530125402094082045121493214667268111363697048242893986009479712672057880694922290167295754736563494139462150192386850679085047444449350327973435142628771916643450587175884557221561459091263042293909934794407645326331702289444100664949768581687431185973067375187889517282779991712298396536071699809652761596380565115923229171598900972914516210555789474393354258940537973661431727164347308025454101349370190592482489929700193794539164830687508882398427212180129944664891300310392881887362035796456629889569557153287728697217324541103340779120873354910852817774235449742801103413135312195239596598720052648970341789124228089295449966500751298229808217770086912393688083862043312973315200817404381977080739056952288934901017658464477548148407390935279644135397420132407244674436280314314763921913332080229951589550472076181861059881164823361986611368097214560035296044340344239519942452961938787339479344564078437845677073546631057613855355041245920537385971000092229137289778597808586509381350696655905936334061359537579741190401089754938135596901533428641500911537506302771358479005804588187651486192577100363038140062694756298611420884142721010365911059486572390795265978417886221970818180748359474493274580877835553690126650954236528628531696982901927147364775390743710802004814855374253765457804514428008013111912619053870189756269216300875620740702548981451130244041855836972944526256691737826087116001149714546645236988426088303738215717338784339407558404173079536267022944666791213875229073790072813735796961809958328010707552195815758001396583771579416856867286709930631931850605142094628105672733279941351397411916573482174611126961134700080395491633321454098581804794471296896704457465364661850404321643490156369778960085868122443406117082373643663653083903947131980682321526410573487941022939014684329861116447949461393214370620221908360830357204294505933235776616293698359386992219843810304049241071597305981231262852900572168934627500956490505861413209475116903641870206036532915148283358391105788988716038183100120200628080729748670815115804855797578241180735499242583732050356025567870600655869537007839347049261931803173029495327678322914744848680884753221962173515419045247697383969565003487109794649100537175642861241017644319118525258228752132029384490629418782761554556503712161297710139478406898641864532849580322131576828541144032248793523166741604233452824180626539425492452843797570189073763868136669571095358228255940383780870707609880592846088761441132585911624994835635419820533785634958936011415893709235767496769927975876902012348741107082075010687653944845014892565998765735167210215239082705851675183983188824922239372292704522184186141364557941306314545330426432241432084421087626933042272783677252625100175765889336900470199114000626207868305493705375786992587689863185610483422798264156105663142948645086190737823668769486022485972578771635461560225651119971013223143518632689156318955487369536835736182575538208967876996187813643898478927836460156691596214774700974428299707803406376754367295761578183127624175680984330077752626514341571571503575287461644929409292159139409961041292802480771839451946204866601650957441943418729141632350614054365517567813992802671550048792047472323950653728140857739040309261921552854878153292470443670457173757442397186139644680503416275932096722180133363104830032107537158457797613206100639252183363841365317836150113956453051097811612024857110054513459282450356671077548165795645319589734674782095300315067104462258128175447258197058370845756084553779871142141424700979946581353173718934730777744595832544584368674113249158801123508083289079979635469566827277912850067891435907812512828456617073536936116794516068728407715859133494550480689504580902890286939788168311937589320409761137264307790246948825675540057072041660092540860457903844236272611416932044136014578262635010959951133084833505709617421069638651384182485300281864450693379275596489545507681142846398244771441238409706151352686592913007977732495277347882865231247628988581762996661251120549388192094854664986307018195999207761960272432128187461182188245237347364503084033039473729341160637904497798539820749646971965566529016447661128253196641191077605049125162801046553338853966942351372808259852827741067710045894207974982383755446837189973161503604558803790953325682355326019041559654008195404971562512062551310534896801400585549191557732093918963064951898129656801640792309659657520553778089364889280893370760948063578910460345475596309520571942052789774940599423467140539089822099126449523725033141580840900985860776415461997831119433568755193075274351801780223255467277127729329036171730817058186689852940279606026260940353119631326401598776574409976004397644877966609593947416826660181187792090774696988305820535784999365200831900840141929813607941889864260912088580232910399161876364463322366255637957714397684564267976046558780458928834834598191318152862510330482667172631594563745043482950374544822682462848387317566482064962208035191358732201144008151432213354802373142417567310753485781388699632913795841457018024796150231888343113201108398931606894370858338101243678038063478972778523496567885426433584937837728677595858564762875300870059566424669858297988221465234904150908741844710960060419586662904524872061089694683672187076136377820760810594805771927137564501257780449884931583930741923936567708794611677155782225780204651635600869188982233915738511736631305262562692838313016751028745236384062770750575397981852892621609106369900538199727450294113699662300049519718345981298887861660982859559739446000993325166996775860735853710881232119044017671896107956853373027397719545977603076962191889393417341980470681077554688650185552928393885237021836319732434408835080128311991026033905023019711034541597688260991445909817005154662781461649432255541576775111271704779163151540842853500424453363961613064890268413748563760543541676734975728371228323812347580211011649190496578399617760741219749770766258522858133010993673357356223737077756417823989253942045053874429234569454982132273051411462898822358613373638371375255574013537977640883670583058264469955275165621506942419890002231315430405559987170546298192706620355970962645550159703392336275921282724321939416350251441573073799230819608499744365156631793619020818180915125702316481257062306718181164729616066093217075331460291386745417541009489998040012357939732822325345851958994490731649163768939451312862782067851012223934545733598980696381287774549295960833117392752055902264633629458112151576137510795778325183908433252738149190937737196376787461393740280179973067958737302712374254447995874596605397572797640357046594336922620612723855793678138428668780215171481708276415775663485517692059325902524211508020847117839798740710982455189822337363661359534169632194236341235850439822288455939952300047331128327118683979060532620912878897599858326419411324829580579860545077688797342069321066049025691467654974373570612885804678425082346977642045689214689096863815199654057980555012285417321560771697444335688120146095258906701572235194164416918575143851370992224559124581017271421128742908984806995706658244745379138856959109103108290801331825616269849047991389307693696654738558163711953613443403665860028133738936164710156178054670583452605154773306203994582289511973827613602444037888514430130435221974962274168454950091019494646316650750037759568029581498842792198188696929132731804982616975146372377773779459803336389973011966660617682067356761685258667552738232194147908603119959972913840945554001653952261540808506687326149052940176135303123114324949723077872769295058381858192413846517137021922611573461575448247022152556197918377758904282970800322128383957507492105920188322106075449386888992146357574527317672426211027585191976767314302436433777223397883997856653454727116129397555365007544996356011632911624548459723333750866699023299865432445824931147028604705414509143879452370362127240509895520676803273598514311990358260187105290347754711498375392147087300932485457606222723512700461458493831842854781804180099015186114667685681725569938858490477511619995890604371221489910589225730687438933409844390657424256303090039808942644914870395768343652059556600584278664902937149326330269888090449272443464524656382439466202430433750439159128816345597377321289933606911967519708732345001393243321470535022848418369959020309066189357667430756915665180745637923041199880241872743263922677452089351477209769434745622084926922938339757361470121907090888768373280988670633007440401889255535935088103973327715346657764874205989952836074137868246368662533326209048485450278314021565047324594596162059827151354134084184400191270859833099687975179005843118765869673974883892420998116134081639593587253558155782382305938449512539682524139919679216353144607856814109180259364229624402011398788011968333747628071183652934035362083910018788789054523882179755887716104345944900770974977093100636026159325588348013774778034116257882464655503632438369400241040208617553858261079276674833720939117455010411081598218694980453956954284927512272719845245763627337613619271511497981713751671244940082508911029215324551348507564799485205432600714859158283292774768811807783866863107383830605012895816355344939940942427898166992832903327091688409733605546334307370399028307239164441818056019289964473030884792005063495808967769490037367575406078810618792477772696771274788837356577152839145581002282125585604515277890007718805323109549493779713152269998541410380157144141040238181698702288839091327308902180058595330053230052178713155813331804964127265427233509420583403678480203907292376237297398644966449341537642405345643774990005674119232832818346733316795176933237161540733630239652458321673018931320749837598375173984488306667923460733305272019521004248711932764541339935610227584182607840740789660518103924643325693888015848954538336692329273729226094189315201978261225243420891171507920854928385965374384901353200546257381511739220714507551341779125014494759918155906492285485511930989245807999661827293507392858387328856392305912966215898539544088001834357226936608823260137659461934091561117362072471808138112090987725019297013737255035947663803186414706751452756665340112155482049438006480320067666618898916173480903189018646264852363480564946181751784996484119738481874481461111504835075049286767650630045505447488430226348726809029574240706547324190104085540503986040237127890305650645157374431724751631643856206166737499294253879991649373170587725083792643276684225435565430374119632043494514218646186001518677420607597691819399147839900314607698622906368047315660321083820079194871850242003830293485528656836280732501649220739429732876661521284959579890227087513029663701436959591480405957249849833939665551681837324264249372229374916159270890027026495909128955232480014079269934565076143596211419491119330453645881160521710089924050903557051283202321840429281794808064731423824378521652827650747821857106323092217664501992396702727218436919702322438636293903502855770323962033353246188705340325767834427644894510143506898475341468437038966945614120383032785620067046940643321518637945198743397425911852070744894869230829017838757132459155449360087723158433244718448289423691300420360044487214615688790082463985961612089758799849985462520629906678463292059915836580308268527334920291472981587968847368128602696501203241153909941087437028420809670393734328211297701152354727217327919927989850929182192835992776336384577785908026621768847243258697461276573835580999490801273134765478233327128150363755796813652314130978860491957805353652988650452453875343958269032025259592531175725449610538130515556072156061946962361821115373954409664737596629426651590807427133459662246618394667026497648908986169928869419368480011084005635708752012467035149348441566564883808681935458497726659583452650037118762442582813567847175325854216064615820501455382841563966909025095605752557775397209896882039309011640307052084062004301869196120439759450913259057401085882780316353238995074167966976163601124293200447136225630649564951638483806152084376351301857104185315423830160360137592930845395428842755650996627305911083897683142767536303265882731813560366549588930499351574206635378100873102143909403540346543528080239550009819741447356164057714084028169454413297792408310332508675343910413889057694260907127972244497307869420068223673747361784933823707512111389340686311583529001294576030484127612553979458439923187020849705328048736060286469035317296546492899524474638185726656528208183777420605195437987225446629864766009265996287009139701402733390155196399516731553499689798631650037958463088378687719823971799102718723069481255129064961624449417599222296895354422880681155336619704448513521556774321474613987838607260532773291028426376629767272693749187148829719494539842097022084296027297864276854986639762476699636647274368627118895201785373813993413448712853895409146729304440575425262091584693022546482429240366799762803247978475860608193493880445743754741508048582413258728163794450762683519347202279540435803418573471619155323627648093954857590508352768018502742903415503493389408987594590693725679916981722205391164286442117844464430369941838881213683371952554457930697134698190670234463944535995451976014450155039582367150307410499290128266463193785161878622984423826142151535267514811883338262882716418714892533999260479001970670708317988936169470240497363065739550783320463357469774122959137728121168143656883126707960871028899887851361185969548300041485673323464698450147887793256146198752316672783520928790143620358992680174670991377055442215380106260899313023442838501595509491522228146435648518204087969078145451504806664108897521137093661717545519238387079603160285673390922619580778599110743595833629790515215932435826066404969920047642308660639519314102863668609003687253620698601460590221876776126866826143936255572403174078221308397848252554585769182512229039575532217519971205103187478165377869791335912490631310236107113563178126380414688299692913616266984395636062136938866189037512911825269015248184962111735141339087191136220939425717233498147097146069788964454467015648898951187156423212067979689800821113840654164248519525045089176675865669988754664029398984802128095085391126276718634981110479525617753662961321234133076261599585798014883114923850342486552927839326039801601837707870994373735687642955173140193396110553786111988798493221682977226847833434214147599694932039792786057675508524621342717706234244518923974771833314231806062600683348211425252142767498907489814204227907105034192523213435854072992682474270211025017622269482436214873291544097819892401363127494078644262488986310728634778939812475670398037822790483035893813068004477779128130013021631980779862291566367302595949919244559545600065642314363706276961061306466344003467624000341150159763744159383011900525389129958317186819415383468658082575900497509762655575068361549425570384169852926392012135885697039664466212512608654397016980467942585761500838929654641889656644662297715390122778510964790876662973492859449459672092850293167662847443748793354293889872226925666152561227801560332053991434494781211126811774246414155864514966845027332834097453708576296750764011230228876941257528260435450535763834169606499752086269951227103034273865483842340517120832759891882661255067210007386137935607103641491099833247790705712277961181676429459323570711667109776587988432085200570270284977581974647895443872148357676392895695395283676293660096350534365361048580633272311948320497638897617762255017300290064901604444926312522618109358186982326274290642198251848135535206503263949899371546412553794187972316332352914034272209122956982935225033656809889354787319409145855362522326844744453916988123098726170228528864961288064939482879620875912473619268307202024747573818721381497264225300392778802896079819159015805631016357023553386443465937676601487852721895491157861597130883089719225856572316772307445933231859854038436209033000313605371263590464185329082744515333470489666739832483836342191678095695865582550453994120533748832955331285095318150668883943729246527701546721740847741791435753293845072971901791698314690275866966431681673759123621925097054701826835334649934585601163902222449758479094224297700680361985779618788383682168279396978129219374013331339062429172525987374821230945719506461135913713400380958778599635029781232750333304044212150994523937294837291933311949459244024675491200311137950571451753923091345430363830023077062206978502983933693034335529022305633290781485445770469586734016794745701124192367764786828219698529311884357869521116115379133131715503029613692907698069020267102310245266812939610637036149987126435290990150257866706453373559410152351374926798884360050740666046429197587841274204035989138155736680579232642942523443989129520502266237552813281891170733308211460336641751113230446421072656303605537781483125108836781735102482356926411827967750452404565561487215964383153981327713213231383014770827759756737474551333092530284099493866320783474688000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
17000! 13797093236712007977192401284181938221194271521166318349402578156596666551181436987695828320725618022260830341843405256524890751586015084008202440687628212309071203071598862946515912514155642119544203166431910074855707959982743367444628930341399579346057406207215623316292418581269177329886721386408365070358015318575201756165097235916876090463812246523700022222240732512938627014822139114364085424100654316424429564430382762318979881870332578047203724169571651259278857457053141087995828747528070761164106078044800169671023354004888740373225796483995426667614874531232534016167655424593241446548353694608053878182397775767450604049053030639296750140284305784392388302604106046464063025960033462894889932280896178638117155884829164004328571527522394832265815471821784995849399672870137518565862580721053944366846205196538392573136870222873145039034007250531441752854049406562325367812584361983098875107165601470446377663375713275531219891645776505510370299507484634985878873176079693049010140564217768657423542413130303549757259517977259548913912823767505724093981402777611117493652806012662316906312008554574883714763594003347237916179124024437090480837942962256499416477439225548145506329294419898419947866086704387212774957294075891199128760534927881296880305798836287404795387601175723197497315901228603277003324036229864263554091322324142724227042562250255347644513503501550239077882467279294444354662878140415205885962246785523909892727797482790767126590747881745826574398439622438309117415250414732929934363711262865348566252727193267447810480893473676971018872223146903927908913399654035869197583880410129467832990784857869332022668736874989893276942057765838192311174270252286989707120523645779544451392250399373862405429542774524784242321490229411858500997375028129253334638690471192901937052325444098395733341334923899246927213000537830015283237082874746456145564295287383604293275062942039843949690449339684887929591909333371322521120190273968064168150441936277915553784918757712744530664142808399945188779142478717799064001247072587082949283576354020246327419075886006260923709335499191690668851353579836048809884119376279251294428858777759431064899236839778700462844225881201323136404603812694170380341477728881741269118084088467074024229909188549753381400656811930421503529124904162152128421191209367689186526451734322787172000444812922384924311260864871333849877207722218752969768842073182377457565988880722428395576792069004035866183999655914985415937417601889127620934320392671563690137781015400411779173536926668730217083812705271271437553675629635809058500084470142250566810476790652062378716284098852049518189386891951421538813907095589163975383175492530520624302915667316186354888495676729934505891719595790063335936716422067886335826929315402128473552830931473602024111148119401302230618132189019767173982780677778561731874197213464070124002429333457047555141979728842266755502471845263564501166738487024900930879148470019064310092858079308962079965606797910889218206876317604538450688378797535266062099137459745500995225129814581572294687331210945179828798853835235305412903011764679981307280200147456132749706291816442153974652422770800848236157417230567420466794311725546038438626693396652871041476119736859316254315042493751798643948313476080757533734055133352151201327822782363060374455087888010471257666251614476972262205281569476382528733264605739149748015107587700788329833715452072225851101745886585458204238934743031328283169788168928819068940173286011362669016369330726026658505033062966301731044848750961657185609898800492510067362301315579326656009345675373905582717672954988143238864513259828746223603320838039271831713857294627125568745206140422556429465340917869557049589039452350397886596018155728091668415580214274250161311730777162636266494308217667737073438780282373239006148143059138385254308422393561486751777009538039572606475206269085747380949532371545364085488182898156191303462273124082182497345856397913462060847872709344210788843150328975880325263111257448332956463059955421946582361928189125342019843414101408061965930915175463019702250607967600420522248679857546976695519391523912609251988312839209521953402623865290973121289226954863946670894190168668418330548186384099075392018538974085553660713415615450569740140856236394300507888557572096960941977983623437340585539362167457614567829742766188990250904644702866052393599829898857264380288658325919309932855081438813995797359801857943414231826690602500591485605977813240078115901126741942337276965878673085140903593280314560894428543873563562786897945609355606969714806677171686016972622716561525186428913128694869832013639820154001878295646009595588519484552974299347195755456700956992919375235242337922548655803372378363762429061893543308042590806960424577954678890852360300415829481252229660609122911549579527579947669882087364296711257156304563911816218157346065253449810541422075909557064659812251915967918980703163457493217913838524170862498634540950346221649271474560050525504858990308898966056827494831245283154198042583249541816595084868174305129310655507053532652112462921071789264041642948726620787447914068981403616896185604035313062641286489219119007071203812423230537679164722129335574930139201048549528546032083505062929256240460132197092997525422943415934953855377081831667946787150882696944347814990834536429379056178731067921587870040961263872714704230675039554810455995011772351074848636941480615609392720183403750781632452868614331173722306712736039542434810315690597968689287274998600994162298989446270095182826596442978599833501416671347555167450089513324589790381051037823488666051360936905704325113885438953034408898724524377305839636086055299142643938850763579667336976029805194390049825203882593760647965147957682899022292147129776086528684514147973014400115203110115524086188688906049083363083141984823042513790193938638609329823554745092507443655482687230431873262374079459090372206814581879082568557214144638363633804485599185899624913589412496513314817730166779028764501547814628387427221613807447577278301411844256110068093122196676446218912541668495488196473342315518061715335323956967336282136497826268816360446813975243498076209565601225141012892155436581611427318266368323450609502461770879892297880812741423224996591043171233807854750213299760681665567527138961192232039298790918960449804280261506053138472962497679579135319571854926211810850002169992416180938825592058665525005491196830669786863765686641111332964578628804287966567645411136363912253495202459804492301341634882900511303798196008968050534623378838456357994525825739838309089354690856580253622749997194012547640951226212240657069745737560795839313665065526742155269852638198219166012770435709594647584464496369910744294042386462340105791370612392827417370133586604619014731053947832760184289472370499578737972349623079417959936982553341666530597289904309643817710344159114979494034114130069959232198204591450018603140971131493521229486440240827823923969692802223281167583445748314111322468227272972613187534695580832168098485068692762803377529034678810082917368057709412375719221236066203044465046644822946633956726515592862987523940176528923235386596791092955888489393725575386507794762893592420381553790229933957113422932865274046923019216069476284711356785094857939900958649939188142513052202983364060909101695106426668999717889072226964559166025041469586904521899296243549545142790340614310406893811136465680057892125099439528852231422795788466545681429425016963600965850056283197770713421155568746748203287861422007565660869846841307017398709459186220203971901207377632281352257573284357356917602901867886170188161869742109621862363670420274750591150026579380489298796448970699842301127319412520918838296239615642870216623915048198468794754728252062817089947792989978406374858444561176234255628749446291018093077038750000446574747945400759744514560216375242692509153700253299553772478095694309984574302940272202185233484433720979472825321700362958829246976377648901788962864952522016888320009558755503374489416328469975119199909157894853886294488715586989506696884826441456197491235982318721609504334986728736596444868401515934719437565756740909585546948959753149265112412814445302803765055171099210559939411088871676564792484117473287075303227033077945437347309202673698904258209988567934261866305487183715293404881888821621494742683994281619663143967291659177529615655337687427859899930089675526701240568132799620945477701674911085874284135589417024408542420927207508459256302274642497108103894917643337563499859586754098242808607859742859413623214148376421541145045826616707714415187948334246662323803513831290046795347370419460710035433483174072956470337532471708637625189349776374949183905102636941934733577574939454591209745300645210915051398080029624465161207989728571888206882212617015828804603866248867905983431986208059959088667039614348042997826126885213021642524945460705207801850924535398146794777440197309991721875050853718507648175341474059803142864301769971193680766794464399315146046204577921338615089383386874580785417332257226942266297295905874343609930239642945673405622163593200194793992717693653330107081723217393591653299670861994150057621992077619779753356528260605542707541427040814462233369403538401440451412901102016714577053414955968942037826998770658630817671225575591410205395269514256005270935119295981233027435454299307384921664757809487734612201087246941655462957704407955076838037438288048980388469519894868540611105494249302660353633927775347457664926878232765639162630040090817742781507236425437052535702823022008576788417570671390675147861177188545602840620757432051239027376627802772618553921051093790210571161474881280582425301043498819569115601687413998118702314020482752247212512656410755865294538946358370985567996895931329291800210460128974384221959107061532837711670342461078217247016632690584321524263632244842758004293804657497976696753828800347492835409528085798863560782766047873508842107048841789906319290935047487900875317071945348883044862273912589008879023763038629153337696481157162465805150979789450223457477844531552230834268761987671497418620301895748906592125233713593453578348626186556203984120570315337203185872094101400320570522640507604827308430940939696076799397178097854824716686265915838064831892433722379128755839936524305148164623377277340027352131904878001797507298759991213359275924706360004670565779160539022377646386539448742857625718081948546556518895823738097913133909052637182681062270597283307655614599729372486389795113033386477312889699586941430213811349790523657088551536687029728033140431160276654187843991363240902104829001413264852296939833269602926271651981552335590942665909720286050180396809749973515349784275549395266232122357284108326526420913736469014584133339436706068938612856170517903067047117115594432762311137996883528553513994627979579694083274519685772092315830102896453809625814834769605623040942440807569777774559684688179598593219999780072884758947919829047812576180210836873890902547600421443120171333659841322718651584492003944206745965030865839085687611435116513568463334070739015299076469635330958855050224099892515327607807742528266909285609034534640191042638609851174660463191910114860098218139592421390799945938867193925911901460854192978259866439840768811462322608947284861549305751397373004940276528161392362000441521298134362633825889054094214136411729876580045438006536065796152685121279558058249862900455207882238571341174801206339372133389153975358117666599723483285514283963887912776871211231458219000793782077003371702478936480636432291611409206460505484889061606000388130778878888274165706723040145393972138780219905267471270029728092607076248733031423905884041852758883113077408915389190662342277664490705228624434039881165807121053183562658009807502726976519948717023661701634915053545189600730361326824035540074713089103431299391678991577781070643265295039484350461477226993622111474661118318459960244986304039117280129327582410296215958555735671576985581767634073380863368686430191914691081843749738629660206606144174718467359854749721084560048847160126918580447251931721799234223265862484869006166343395085285189794820532217075432873678471619320002847866604629921535123113052530684640963506946964060024477272258107641704152765370809983835038847697423984174383510188444318912347808517397698021800163378312501904831851976620959505187635254155279475414475647858516239678147085572051177058834235197816692240971343944466891981015268928147500356444398452022482707873504706770327276953134708528021743429650526588393878837657401850883356434553205948741574315761380180126336661264167695772706820931612388568080894229031029754150134169188893614861883173344721050237414921569090366032996916678592619723205779749877504962752318582206879564307792534974611024467459388563651529244573389052397369214332970561709173264404266206991959145533451993370759244609869950800842392546213838580930056670247143981672733394438626146451355881310123253002099123718596899890761199521512463631755287170424063420580684183058309846682183499422281259002148582199473975626748652812970644866480215016873662814530747142248214054467503857605364560282394137847043317756771735917888463693898237782710572533290656918208309373391455352416676289746604046503322960404703013564749560298752217443337753266562457249417956402019717531702054016924108624826105318056382128780969779984146086281020564498688678622642503536725708870987507457101911055345296010724515925577439028490583626396496501561329785880218394997093451330300451544461302312603851614256091872064542053810856301239284685119888880647400394773623760905048120142463939470673936782677560476129028054434836031018947283069214698727370247792655560417789646433900503363039356515282071016126651671691287290894948276672717787821999473209129736741706542520353056123675098141794265462391501377942428748552187158297709640284870390902941982330454093667202902309604348390029721280833768736747896883459829966581849325785528730315150449998437123297972335950975008380421825562161498055270180397967326061953473438541526133218812086592892655208761407932020090767019258245292953901514335340629049236657082205395698981662864773894411621022979922172826472605105997153566167615667512976821400916770642541624328890273718955015031966729978526268819019928883799661840556804204940384556522990638095338606726198197167488669772721860585899676395278502248640121633922354778005254704399105932475200081817553014585289068190274757868609481385595219300208661813521949645920980179236687643151899503030758066643851326776588604890851975379107395282605024155506264921922309647241679237977356969994556563738869437468119651330688871668766737963283561566009756132122880052409088406714204294670038941239159601595149562353723526253106814768851303954929038750726256579660468630926002315709976373122387867643293153400089264046856531375462288270913523603103212335575442845851723245677160041639567577892731020394618454693179028359113431151982203554427862277107717237541652467172085737638214760724492655302980862997988687378022633333526849436705703825705453891862110305223379368364408364708504813914580384916011811775937889908473311672604078855017283953430129015492319248277427071962578144855660930694404113400135644477011497786385190444309719568746333885246986220414399671377646927345201436161580771547313868488762301691972268696448010071204178044749308783328172871653697658798988570017585410616513299434876286017271226302905995296457036505713243623922501710431727083638444839220911370532718277319582639195905940497233073364785191750801112309758256486755949803061047909809648541743840362409079572571591741056662112870953942105525096177248357511057240439040389169173701964936239709989794213199957548146722203188245325730006537287361957276860121100840984643671470374174980575944825605182064957690924879848517245468821104509183395568927617725204751363132306091232799216688694357815659830860582793331770188818694896104649406480351016973563990795221752152117082237334399041011066640187243759921246667421075137010081387388199938372973453985098939193891773314210664370618044795226353478890124068589109192394866906892045260918146283676185540008091474598715075965149762605004295055121627732998342282273266756310103508096103103756802208866002446907180999615409007400350642866780412595704122944846687865602372576795651537373217747416189610543921828624434031535014944331185352762931137681420667301952663322718537914802596521966777672889669457950176839320820264666452567818905799477466535686562024110129011116109496086997749495023538145811004738915811073998368474950462072431241096385347820051578640538404949202418648634876488767647257838219829801712985412095607802044343978712730485087235936004371269415910190866893281213814667211684994321187733228251188524222833134611376471472649286991896163727442347982572129167853257415732285419568714262067652945254936718399187659569596501451084419004844082558754519670895092183855966162730850335280348271748473036732371101551415809136391905666803829665916726373853990601395743298442012552735101298692659650163144140326553317066661783801550116240831732425576969972503299803496008494517854690505254117887131342507214502080024743822037629662315205608072360397922732721865063888569543059391926081490503249247044690644543369926132221623320005048580224115759507438001154044757506673801039518112911659264751939828361266074854978933153487323526821886543748165375920985139542823994097854391164996234656041213138022264293987674577721485037164833448037588048595047095023558383769004525520113658393372673889536117554278068714257730619258489051007833586758448610442579955295920334540909592051118616330784755821442092790799773754274366932705759613699992644184317094794024469521732813749163798560125678940187060799006374652046354085502387046092594995827062778547491702127812314533308303487980708821749770841990840015037368573267406852966331791895235164831845431019847783378073401084801469352348564037590227816556514758904713080815755342329317438188997928830056975979832850588213606506982274279716865798525974378446835010520131555144460368813375540150871187204087923878312611454158915484421636224211744326239199280805462411815725351557766709852163762758647014157806612606122381927200349264157642437710899498174815829410597859687419566260644036953887734954874651696627541333006183582174676664657663337289678081460253904519062784243407678383407270398328468371242676077108208034443318393564446319206674506858845069092313325117092845118460958287112375054426843472891590873144821016586881655585872417640657103630782344185912096689702026467142974466165759249505288100101993079253598958132941081716708253576627887673929298745378690562506358500946146781204923628194390182719792400499107405360419617424198685325765141887761243702332155295613644904734002445474968421489720566126863964959646614261588270839437255988072630210083530520875580834000652570358118737392529080350425181989589623026849140247707879695401539238257510332096394511380938903500372157508424595882370228180276063959267332118993931551796294144428771957611282458152580852444453663381356416514926800131391916786872168132208087035749290063732260902736260641643829200339429573098982001132273816803655384770529188637634114429886247233139118550246919660553678229330907491847844063506560494257202702268113659205658996198326986050980097662153586176004377196594780771580785842217788656440004262906206588065407936004146723623732751031339658483834930133383480568205256396080951597485394331544131162518017959164815525879737181027885335206452342849915718206729313957320999405113696248531090270716021091062871541006590399954168816560491118128543207987629273800322235907371962536296209169500076457584219151984788935879577087078364609108824578723751162033781551896829087026249117923342297795548077663492901286029351413161516951568283708590600387113905585880250020573032787009240191801451671233461618152273394185446699177052113217423745182116371550447162738346822008318468270816001357573376740919273938259851271816060352357140434212258072812969478621332346604933710500673597423794424411535793920306851593302553297424694126666355769834200602172872776495564308541663182113988734318833695186295504870917185234675518935782901300339015858290354037051534719777207914234431075062735596079769039692602438667909108882919964845785248920902570586576431096909499941608999656862188094369186173009984764635538149789032476314815598595268580443811734532277931732338271770525895693983961786622315897394685724295650788184716945301307777773459024532334305770183989242184382420322881076609561452277680150629489691563836792142235580582751933376566814889068286547434832191402563995593291051624833900065509370370007000680527611148295544813567590151608876671277289248734572380530320375959236100662180784344778392987188695933380290938272156085810762346170960355355747472248343405270248171658964054038849466140284324448771132703454660850045500157889753706360162599280380387602809010520838452538754983067701895135125982253697548805884324660229931743680124800545462509610771378016154254981326875314569718543098754533833413903698406529789507462523666626120640799239279067285025791569142214785669382249089904611765744449735439052410282542719386871278346941979859293820987436643443226361992864520837013433177999343456006880684738829156015964252089189899990606977029920024082717986847946474810737683772032699057925386862269847853937554328210223519371165079081474031529098646803295247689122654538065237489935681940708962427524769573125355396793223230052054604992851038789712099649748906616520783839019972373458030481882898000117521842264484350538556789712861590565818664552466722118061795347422667119208113497271866622513134355852340725563623928192394626266369115734325090339836693114548096977780476261939135142158107632593341173070851165010967890712842573895674803867991347509821763987715433312055042505508609333722471131322601726875490745591911601901523953289175042544147580422334137845616708396589009580860046349211127115370662711920058313078380792242960775565760742270196936835092663681868005135674173477062665239822222176559822403329799668511085490152764559195568421651709568861366321619188542121984824335845494833974148358508779970745825569350192253438521624243148391988463302423405524605786777417666178258147818415882144823203552143260598003743864428515675032493025441214987256928774000798051536342313853774950800181516085882519010640900456165436789417257854997378002337148699675140320151481502559004686751776016917437176534210031723900822597922886918109583097517410271610956450807470221091229174454189741328956031293965002034866284914407897250631390115338036734021821373719873183543496370064451157295834638355315185695684491411659574538471191112736715651906639007741184141849589598314822300145166077361012816760046619175323772228050150027385400854813475322296765135917724510974465722026056293537320240219611632484377690987804621962524876151506659625619481205219134660430723863640842322323154298483442152394077652023132054325534871139407601618750385254409821915630487694717210977056763718290185133113661434823088103304528246820957306990472435956103697451521320665396256881160168401854236159328155658260653623661922260536111609269640690866297030405063308515474146477934212627360254964449984958420216662533581530559095085955318039402270154786064160555382902571991138168777492275463722619642228993408266825401433310486067005336320923447342828479161578304688147700936619706534649747570497005328011302707815435328078196022651676867973554647033513953280341586944719823688818645118445233296408309436580421878843009907384838847170051303025208896415697653499802108914785682805626983578579389657547169030555794921850721146237956672348289944115380254993246789340575102147642296027380778310327738022763268885171547189276804534811878795966607614616390604074792293539479057644544287671140907044795375960227787813876195835630933325570076476820644831251453909413812229987592284782653665894126127611451615494496256235352582839648727443567625219319626170974004408861494570323413185873726219819420174968273371621400771060567787142174391697482527071585886678277031698343469806623871492435623893448579637548854687284700676759663357499924681892768427862468276731886657172934012697696062728555641856372013594661387077135831524093704619827158634417127945226371069254289472989817033484950287038711773440418714169451924729433185266856785805427055773637524063413842260371050981653709308514662972467461998686438161820459733851330214838892607488176378159789977663798340878696782043583200253580122001607657901419185399561959997204985106128441080904893242850946046496820116036013133628961097975610573968608626552952704153751368393804225861776657939356038292666354495730419376680610311569024251102031337444703596598790019149156664635271481704388814191275648564950830236630421642923240394574303534262220699906192079567887895828495998867557627086043603690725798160940131870019291370745178102652820058711746411514755738880155744198121811404064225483763698927628343960688114848378282924611648569654243184182524637421251622825761951106695903346748161707152538585618403122324215437180368499364969733336772058464158069788666282628842712401247941197246527463040356180288007798702010727304501098364473741182871780306902606308227004967121681322178575554064373990934933963398388848114169327325410993997284357109361976977666655802387125605693385649141413506416541359889207673556831072189602312948304455513822443926686225264560393419199046227204776935206265017683364819571599823307424024967188888914354072560946434445550737073935662365475592193602350279068505486931751658168212315511913967528170963926636195169453871912211463687917014883460784890077689730856049249108314580998936556194809078101555297815200793472300130869586795692726122163439898408985549963639932338153360442580529169417189061565438013196115519464757290239812645822985667781018160578796468090299273085972892647533881813475046166617424369562353326754351340313614774184827844228091495482400568244930592168202639746620447829237147105978935796607421980089937697989207064148678462955380511577655968028335207944201903011699863607676896043794084203006384739907667710679324893291671321062740135247607466665767138560288551210318447102686156503270327889595067946779366533732389994806518545278639007507140286468944652958167539935188165038330819335489760108558738646782727505271225585615535227252168091159832030369398487095720264000453843326261048455929448253043975512448381189771098764324535119217826874687588904517396952873950369979118372215796788536025611490869955558937714110026223767758661158840636326528265887947448069449397357111338427000933449606491262291107206571416913338671261463767774990804216903653890150313661627118661592492484562519150981068283203805859242875018304025050982364051161579674422549890525728878166970043564879140601524241465244297348838087729339719503648879655910949931985629437668435587797365596545985772975219399995562954179431475217453501761414582467001161518552233022663725086373067913060199607725310114934481852559565930273750541943002571437326452988164998419587140482286637579678829863874490706294944459101929160378891846220151864974392606915856734557739251897924396540013553869555659506713194585168677096986956181804185959791756954988454017481734537540571560683820164772708344453246717745946093247839957263415364832195448740712085875177364988884730515561630801457050734942802022983459579296914961678182840873203048947547256521853438578464099867676733089435268773258662647572855399057432349392310590246317521868937757894970585031874715018715597399169722500485535014905490564659232197948434736193643829167574306015022303297316741542817320234431567602891228960700808819631943648709773290923168963364515677382472318708751592094656221989110041628656909658786946417016434701383008298681154074422259759871488552088642703473011156217195977763277664292154154924013891595919073410780983505214898600982352545932959860132655113268712775719198087266122335432136360423833183413074223784721112882875236755107424213845389714271621837411661199643134116053969981298904840163554571074250309773382868496508116143092049093721420021414727058901614784800895166679966963618079001612450782029909369899675456929251766284242153903098115976246547287659849999955149942829159900667777378115453548748295657309458651836806519662934410860618313184916765249138403970290679237589184026209725507748698152594112628657962976002233646219424520213385455688605639107471737018136377936647075378568102066081709509901023933516154433247945534795642363091220712954266665832583780091647569265273200491130998759054252698877584192459094657798341115354602102991444365160473191374938015035864892361530633975389342564606747699910406216190868091291152914333791525856796821879046372577389557741728859790816098215292088039602662103371935557997085728193448431493852601177051915707501872480360323112892438705943327700044987149089868007099483476521087461855279925930051089506264886895577847143517537626488101782290607018316826555666342924757392911435139358193161529568075230404862586919479530085905618735535779581571567739433966604312069609899803835666477056583383695583025463868906989551547713734072044320793310084735562788205816603302751092320249731359126884750374640433600201326319369101810363158229574595357984357145395871964368599610772544519027068211406200875489952353122499709132720130885798350621264601495811498505909275024848778336290233153757832095430661629168214331131323669676402742188001965195391425043257491927588133527805973099477277121083404507498514720669381930447861806766888411031350890037640446000685407458669470055013504242862740878874800463383677651275961317411428871501895460693106158717059104782773118730195637514069993954096962239694344012951150210442134404183506432947279830891722086223589104323612548245029598461548133018605042288987737984628434197640150796758740214165141858351483098344934407896450502981415113592134452152005635722543775206931797683063229335127253624663384264320917202061745228107318303553383560126177339842576177128212719279620279045457469989299036927982438991901511785487473764814098353161120440153326354515154175786161645958456220395424456293330505293721446649251789987522446208679809986137258701410948332878874455600347300154419510684534563037167683604615804004798219742689129853139126651757674825978111163285630745001145639052923491734868778773838102292719926082142469093229886406427020889704660665668910522895799252010629187858284875409007134498247597238173391566417051213452219360667833668913065419288818580312717041031835527102536587297320571153222221903061921861694035102280359075685417051711914693068201140107835860925893820845253828997435489557282188371624916525983200968024187453035679151833355286705668202276306614083742465143145107619597426043050885084767122756021063852480803195313883403852801767664775324673557474383536536105417953535554860258595520261093594374580562189263018311870090870459661833415988467225212124710570840827322603514980219441870948828788239326589633879756169260205203755905330193838933612939631881187663404910875347405119965624424634404571249382670679006102861212267982839423188601869747452436361825559209058378887813331603607295915695182528739998555772781870544708242905113777496918248530335304164665746029826805344965783198832835735751444673764608459917595993790737027737030423643648307500795427432310967247448434093775891677375521110190690948162307473945560322252249139520129511308627853719825292501944634926010566566316282970468646881396555473915216711964754863300718551560664259363987389687667781972211664088082691637571953988728799647458758230967883538405978791647096381525241678799519216177452825975405854004937534321510435085921590305316026481001433299944086977418605422389050364613384385553128789430253866556084299692373620048245441893578918824054694915668248259816064136567763273174041559095094407366611815302513746490924695551607247010890499735330279189252824246100088014918161891737671228351613321765008465804190704828698042700186244992095625731736046590027945927796610161869858703154163772063173403100961605874357408350462414165920000953403927333205255691149054224477686707343839095109020411477869195031570377286346330433838162140702949118214389712893404458976804012975949084448533386519759567786492198182600317430386956904239876237147912945136093999223219815324256232220097645233492644849517282949383209329981799164515898397126440989321527328148657852138485587094697423557239212524644166777226526539986519380458067769809598369201788253024796895123635837560949859705165769113313756124419354934457121151549003095883147403562011238393987584380289521958480168447647522869238437778893379720552807864715854041305856004880831119219496378418943136364546333965531650758762511759908654287980395315336986101856821675995393766389982275062501403595969328103705592804058337422583058264141948740806715266754534303708883410873012969409152678879791342632985881596066448396551330091061666505784195419421812754644644694887563591147871576757903269912784279302521060684644378488704132324614603520730667121874249251641080473839297099407270129215428446331220152262612177862761575940745459097599162025282859980577670490469413578862932966379870165389720093093002300859989475205065162014616795545129478824805969346934256842249863988538563484344409679719159848825406961692306726046308234567047000064816627530582755489510193558885722000605586992413700701937958649080685721571475496934748762151585585233515121542780584331349036836436835997510324397173602606697040571352167642870444412075769488195931256775307327425568730189805247849271001767070785868118063979153655758689542957268969141780227206294266189771489957010804004647016089093379772478338715334154291016591176060758670731212159777092311279926113597978452599873966475868506168707449405163481877991420387867386777295948420774970644044099680899754185191878112746637781843748533568372131407352800871035421989891517777384191367254169774742357264659023790628513659815601624371684569893268117452758679322122866242631346671596087339482422151913521555594432642662249990585193903141611640728183449340833810388267579513627257673019159496508606108382333975600887366890115113647270970331195953530910846839559089338644437691235599810531776943619172346661769952424038652815873581142072391223414866093097252172964615663595653103406398128253386741255678097765864799646322557356385826876316903472221650633725708959801786677007054929505074581726006931791571227263027853945830237999457326492897148330250907026528161140483724529491224556117304346924863195459976045595328519231628205869280078740547420810621670368509542888934093776668237734554891396065958090709444857183115640155671810127512880853835115232995181228362478944065054534634339207170515053880071091902069217174064046851678584972562424450747060547802326139987552342451277155418701018902187602721587423000534650008413258331757557608389557503331200090575765715715522308605895974484393415426017960249570820998888896585602652496213713932876322332392321903241268093632361562765222383891867121376538593382486054387334694800441902665713483163976428401900516948133371726177226858632312992037512652291518411900136430018864225703265973445609284703337511575033064904151961976234503526648109317949295340783941016032725275795333347725955184355533002283953262850350980569739727212084409801485619948373307229060034039237379460922768242531989270257670906270675249377805500264261586579992515770758173064612367203525124399991776028530252957132165296833332182239574510265130328166526466803362794650363873378876902275386252404915681798786744062539163965192636998813871378234333515608307217159534451373344325146662619459527208120172405780559669565502612797385794970767980497145035503216423196830990281904369439843639006508269980623839655179767431504854833464213354444234909221150137352968808402745187682941692497945171520386320782381344002559815623899498898405100532525846386398178203852666425252821012469874436434094021760882279409032559663197466785021733586777461546143214431485384168483946313449009850592351082326266786349861919602242620849597048520295711217798884596503275521387616170051523766786424551790041479805400757083142659285345926782329412409233844947205971766253318789630506045555440671258716136829428771724782656497959381205287256363195283492343314035763042792050447689153762113865106383423566563132804834850434764168616109472452045846521868218084978037736564966415313178934779879917673751272706788192135383104889999300274021810350518524962099565007684246568407331424195389449945539568132043177645941756921636770767525963429279002642751429602472263948781806841300572466175295718571178870383134935586670815469501725192296940115407913962524866396770665601936989239627141285593520520851745919238186711579807427566596490477998539861885586877462632115727024729595544563595080281819584086722788397001847852505976801117811636039339389507749543359057172250600635876459760486211487972513550701804677060295305698652784241033054973072251466866157523145349650851086715562398162250788307325779519785265525658332125181831932677250099372352397222806455754241141600369260456149422508695022885437280659799032285641914623040514752703974670520460255221592761413264376516639939404297466458987102493359134998692977874312256252194449738449009287357394964545802146248590992035481155401184537945501766224045768006149156838987487041978157031958780924971865787564987309138559863570698126214159076358151229273517646657643650944599150471124062427132130577512758172178196355642031645662820054327296321689798189070320847005384016950714605136721772707805121304788063054552651265188217651208007196129867515255063483778468684187129186104814933478249864678654404354716138525329517201926171416869072117872104353748901867571397856101478217310098239690061584880680154911499577134413068769516922415584696251666653368378701497630515564010501535920636972425947182178206944740733842656890064611832791056271378761049377259995659157849581742633853161815745864534617057439911474434696114019986678446353675495127755789996142084261045288006853887989154820945417493835279619119948427948732922409707090783781720284340581857474051345403396195681527816442861500286788068189511135135491400388122642915465963620854428291961087343538466328745390608164757683751181725627104204247015025751200036526922519999015913817321771765700202773317031376078532506360716084728277011648818325629221030029466511862090665490334289145398195964444524390156117361915227017482583751797591819814512567100107903255216126586301844068325048550688773474201921698412266448832903339514196763195570762976224786137499803539407227124115021506346437605134779796737249385498241102400689085347797498791659324595983134961180694823763560255727528490341721873198656691799762658470527412249823478006569824891320624013476737325732726410139894341137125809062046574291058192004521105793109305075083230045003616302652692438952459542899545010374278762330554798809894842823133668597861306622754989190889430260466501622900989583848464581170106308442257115396864532142377270740091406891863880475680616484094306560614243190218879427133609867046743366411762106281701163968911325167779750562727353712607760554342638554429125150834360157835609081246906765328052861385517331000087966469015736839898233820833814238821519727596712189864259327759993635793798232539586921061420885410392221234276844063015536773988589755288044966573847318291168233069686629449540993939304843991476841501779175937100930796495103984883832660629475820248462958693998345877447681041513278643007490330162183991531616333741891611312379188390469699192709747107230487360315184883061893361643567880551434116524145824425719918954676876862560499592810875571119119571375226809231623664890294050666576242789732348428057583372532624852079493331441186725085885372883143917198851805223830354467824419024355786110806867118837015194231181217367755833152112368135927408550583085780972811675068599325325100729222112231104463365175047282804131278767513932724751014050477719279881573313027767062552496594117697121022955126858551274175960705454517041002751257806960996143915323017774551854449952643580087553961918141154296470735188163206828771223977275408210678280331628686919610376542145172495207988859350148897437564155453896272162628324321678647105591237261626725482489403261244851520795220129338266932102698561336271388185125869536331889544426230068293552347768049136648919055119206054961500733682420450115862596609507565281596831621489621205052635135320636764660478451917121491189048506877214368159407533345105037454623942021520123448147619899486494269159045837634518396700061049445381429741066166115211235566963852728017310119519809452527421791479581847166918104517105415216042677636881367552854671118643725881505875193114340096773845272429489429781134224403710512038558754097684450578640996178119251572548058588879261892211640394109319218458527130572645733059380181562303575907305095753097800080592311561718605260289680733852898959734757576825328274294924698848472578790330061526886324194958717453252470958703040777072351308690265568102616599463918062621033109316683354412359148435823572879100969605657052879457241299804513073126234436138260763102594123020164233874538238738831348479001404714601033755745046731449626635348743744579443938538705202469209039741714719481190076777776533771051496122614556485934333914550762689981006805514682606088181105501340962660360821224021856487542735530992834712364828361705369284684138934022759454196009980725611498112714785562913104670130727904349596046289317900751903101087671077343611463807930985578768778563208980135918203818778085879825218789148745652107831655369067498821202573366511038359853685647925656859649761029965505323230629586102310707288149239220942383353734347655701342537833900343333820821805504365858673265115004086374926618904819681314751215469747486787202054964132608247033727069383425834999403573867318641274994366192007465139667353889793378984713197177478925401736526582162225217882085971726062344885160674753500896732736145445252722962380658250242627797878133979443860006670729056075723743803087250735944011088274520713123153243893906905671707607958674937646067954090667068966491979902873582047463827828252671061763823089124279035026623261823181556390502872273842162471019978116055857109520517536010886115362344192986440705992427884880270405113632681161759565495829911871634583933007998627046577490918079414181018706115035591198566212719076017116289927299518346064834051259386481796478478002719614250596597368034783375234988532468047012335669752906283943342017352077438269373497758027346470038322117108973517292502323172990282369350069157709437925061162199349873972693961732121587717514487760834562689329209582533797015125177483602757834660848150604380151394701727263414452782187761201896948501567182907671732609002358955891444585121450908508950298304064743023845374085314894741831587932864407278043869148737533778929550008669608827026553437082357891200095831093706522412581173062762274039789484766235488390658706836970437176405166892026310203174983572694175951248728453314648340854018317627246145616491410305824664830802715392517041849697470724422211037078424011919513136062119914359151905351335020745476698630526733566047614161329617815069840139587718146703704527920618745849990928971944405588067614388273943149105474407466025672586981451595909194865310670091267470718195335923886531402831420790662817220063017068425120205211585962137613274144502582801004838896112447909980486224509822518369971146496967541512209862939594424010035276528930815978890337622955022661003399398821447076423769881419779922912598135700641495136718456930811134728565776309613552371321554081099911508446884053454103324685565778995534573215559107185959897538402512774866662816706311329854246414685010535845112899120049074052683559264756811450776307861115560199060857024494077585354438997082452476678483872325414852009258741968402506111408951125813988428150529467047618291603671149830032202148295307818036766766910296064607223559276411754891869667351045105312539293928271671174418221511682774598562449228706015037423451838746349338530615814820658678572505326489491001035280752471406754214871017442506142657847876894499437375530387475572574243836320495667401895892983210759501731201046765758266487184464354729549180404913338569642004352756590880149767125558204336209637742553229865515107746370139637705579115169296839627719682297466873756269403340889908586860967225365838813712502675102193676727449796689560737206569528968218284340778196056181224471990032815416012552647450699703842225153039511914209502779623167168705634457904067728637752418860221098619396829451017626932807309460701802966864006540707176755401144617710366620179024614308097978826037325197394111164096928372761175575650254922358599610921067072138164895538556996020355094576951614575614001364395232040823108222454117523703828925989172584817827138687085809410136960661729042510921156740941998479957190974294420840917847875819645808852667338930763375474156801853660950638522317099724165361403504833997746810534944384883745408673600794372853459541097798809237462199693572551293351370818006939826162521837999350738234037995357279926956954606304576393249973568168305808176581764994666989936158999216376665206115537405547520874206692497168903139473446150708319908931493602179191182734065362941198472757816063214351441353997902739474784128063745715864336894773677462182343436284843016076238902417326813570397567890228527382026138592607045167647723913720707009433150872517061947739822180129960183098872306904029934554711904364846905665472836153708913886799333246890419423327779373820996893675358168335813455182553414711350477218895521596538342467121975593651665727542821854962196533039518134253469741748225009678975406933833827475946223959087651793290364976267564881567839775528851637839759549672482197448645379188328415309947981883625748834263342050851619656276825407598845912115088253107348506953064507700718150204129041646874650094072949449129888996717390905771956842376248179046093798490942261409706397176288886229038216400269086612385022065860042603052372881317061155657196643396859262541676646163583964187394364365683612478896944492833185737501339183239497595546463277286559771146390292177080769831134544944908142133840667458043408892664739821226816669442506481901579274035218802776026401473436268308475803926351034240952871822413645188404410865798486126076621637472286593790483803962692373651329740081074752469583832165410917878325503921283636253446278555259433064642124727767453513629578673004206163217769788675265897951227341303099440478408816519970730644774141998344901702483589587151452165655402799774321665808534239162653146648338225967529350425494025908773602658469251229426585402535337883667935318287573616357285591881230436609410300366812555943344873442882660937202346575734840108808280106585483360948504652781411271382022269132560133681085328130932880470421810680445744783017864734394420674617093614568731360619518733367082752486306925811320704784390468484907255302863143685537907219868081136566959450848912827170470376600699669865652901468374975122222315724771229030924167598605683762263568558071513868539236365316316816192544798726015757508532252514726030698474800503524496340822525246364536673111301262113330315490687945735831289275103454888589504895943092177354623129970857863953336314691753340304172144244067403334673349583223663329698519396761207889405848802022332290641462897279787826979050396134330056376481787551036925697767181226608681488941887106966356262437350176650068438726918948509933078654993458240061720884522056533510125430549750291017941872918277126764409222158997024008594502052615299084010635367173658275500324266511762504509610359039510523064799886435074289247424233666051639437288908501196930277403463418991671457555339142247928234315518397730195773869013627794276483205620966774762516084960148784901460835007649270366441681384913491576281793429952496692589886830845364813043473719374304811354258288633039221664503464484488122916530600489531988624302498632846721096236450223485278833197167268952451265591920729268766457480771909252583843944232479316366134417135976450165065095431527636138724695364157267808519496696972637845974581301430199610758255589679976252024629665966962680388569858814072508579718193475510381654203905248796784245047242914232239222979472357127735173510468478793357030252857009384295758974148957600940340873221968396704299312839990776773261644143436424417985853516148651172564944132289065834621966345547816610933151356423329983074928832046014402896725696805382728096445263789349375492951455138427703046993326153300749720190589892778781070471660673298527199919030828959065739905048128498120361233851623027521456674385957794651186848954249759235338371182286851133017402651615885581503303047238796967673383326730404030634517966570141590531468344276128843219928040374185225225689674132785144032086312149910861913021700626366559180402047387680527649511664776180156043449602544457835806320664437264227583132146768916226175674039062688092018936725055775650353109470427216938452380902284436294061761747931862794228595964374635322379793638339229016292445647074291631112154478180324663251831886208514679322273491196104445827320879454979011490073386951270363655669070615346023251947246724494676005260556030852262699910179790683684037128019436756775990249206055889760468308483734011851942847843447609452636656941109495950282136848385336845522456394120231476875068730206352513582170047815933776135316578998690526650662033465040318007381326753245989969035399256444824582786335076396694284147649585630918205934096638484389859257228863411297029241517719902629619710340537818199316261101588785307241252136648622551968553990880122557522196669593945557499078976926353932762337714659197645168630062813390868767270882546194025533366031915307456377195209697622755268691233609549996774729921999094312042993051930809100192770772088253129079224364135966172277919689317958891695827230048014533348584041993781609331220178473166465778522613528923174138344219748081103188752093695631449615022887252703547327576250694687392354013630074593960278320594939084476031191788886420437661831066698253904687083555345461609121941510543988874353362433030153820507665997654480746371047353639292964016828158255838900239790199762677709270352812839623217670071416936070682550744522846160538146709085445536537007079486094918928690731119664437555170636783159004418333266873693788326489652956706536998053967383465014565625778717879077950607762567442852359675976018253486426858355808013319769035553385363230325897202774102045865994629237324770875755381460023839265806982063212656111709352076526267084440743055854053196732878676445493380903820250420052173415368845579239233371950832694034623919217440913443987618073004825744211860181705600885424353873570111209663271421700678878315646270077445898497684483559613382243992105372118697828106757822371046808238282091615592954333230735164089138454313024052119822301077370932237570759642598663591581513903341912052703152487909504789645688088122507276354890674771294686564864187776167022691144931399110903151245456522900806256188457605885357553258807002525248442193658667205385068793193964237168667528556789500970429240714829331882624183632064498128376202536571339327697060913860003185948026496345735577817749620144430799574300579162619901817452845900709808609922019971330899935300199315133646091521020498524837067484105129053781270390603016261324518750248691250295167740218358401987670079582868050578548621340662425798240353999124042591955660969916465336878909764675513077997837756916360839434473049506848629549491987253407448098085983811517642365121842547764973537312616220834236038316203794254595207874071832753352204218832903686764097979877819733050858200847211083063131312732262660143677846955476549097754072462242522449281232117111620529423209463584899284455439363160264181217569939933029881082700847620622148359988861447807139595839530204036336314245765075070827001453777850813980262644140188769631999737961147959718959404162128460449310306887527021852241774405979432591936519031893473579864701253614904668764671721116768064971702201066513000576331138794931186588099130902894148705156814833411303357553688262654560105735923577432081202261001595989251819639865143140179992435526286142609484840288223903297354189010596185111517006152419952827365641408913191421365922643563929410253703174805089306482703139125705277681333252089106629039714133979309634790367908038854426922527017511276159127845581758994709086875916288988638244968985213246548490967068041006455220409886160353508476597554917050452167836248735255337585549886224779752653378107320371896438985885459758722910176362473706539308909441936226916821670060779622020910040103550693791092477786692847566331231293562484405342402377151544110982289396462822671262768588898425052632455274411715809393654386220658155560096309810358354802957798411416619953382305002606968431849508792930735847374075214290274050299429360132135894761878569829768319146945502945610993408307636400133258534107911671275992074636690054540817426408807866108613439571717986114748707550614929228326102451279170407887462444679681190596001860302793176511224696645885648878135297784228170826059595181137851243910163581389294799118958310448784023031840245821739722527788806913370656618365762845118967627480648234373981175046343226703467983114564462226873370298176623902444966476223460010744438456079777438888009599542223609086534026315767555608763312882297741752076394835134213620586376982815283705843216549403418683915812490151146120824898008953977092640830923589175178684323270211761736016460132959785898778426470865745626946597885354860034963629734045022064395964304451527016463815331938140273074503710016447282511764248649506324228834220759665307102714412354502741124925006613834367580287753625879500383830371214586567793324074642174721794213440980080319547475125294502145915556545362633027438350478166570108022693388248040958345252977429471082407917043876226140446036021267293921365946211542987016059152541646430099649824740623175209143259707742781530669620775263373484171216786547430473280754691460986177242520810439347048195195267767741170822065575025526320440661242707429945614989860628313180438486814742459137569003313592520068154312435588336305292112845551515063560407383910989684200049108771192550352225253172176758210325569913022012256329690900114249703253636408335079554052457899541777450082357117464374088430674976255938864749402125025386844539481601969542274318477359354158015331573493005729741405022194394266644273010934726539843872134270249460018313629366256601768048582228618156321507369674012394735751716256519695214087959613398023354738914277649640583661157665977289938148706828004629930644707424066016518720892399218048593452237981199202293143649421868647434937312393974522577863372822534165553123660731007560712971204644699700824079148364024541946486586651881854074972506301423565547851022525932702333383409502639712233889520653183588426824233131323128091436629311990804982712015118984969578754788662483352894490912931129524332989751600766987824710055202728995311763239908063388589677168359333024931678341424956107733038569502143259721336954208329719426665639785340165356620874982714843278210391423753224579614339816530798478904646827445351682862973722019685243429103119615476208731695728873994339230598626906413812694339239780467829763780542073803782938710522484996749471342993246627121786575197600018863433555583949495054339374156990918373328768968246080143448390633195793519865205315909538900933353295066262317235685457782147273362438778520699815090740316021662636225247669051173148723513354211035888090579910916003547732594438510978797139020918387099645088092981214346780356511396529107665909385303403902595427661504744400658497215639394908356713722303717625775884606507040739649686918914560539745151968658661291315229752371124138252328070789197850594442328376373005946476489873463427878684999170092014892092792949495955049753637859695848308623252001462240802525937292576318147446523450907907424689046057691943216880963712258546459402382216251619974294148116346069318923225396893173782687949753333023300797098763088414935363732834308954580485427189462133420148950598229908514102385276451951201060408196235649783996273205080165516651296970771367340842250765780200317790475404681287414051727395161531763188226933169385677254382828395481468518027638056965379982289815307646737780038524186003753465736252784037521131301057189843845877297988355944613895366110137717435972878955030597380170588224550346310933274862683948949181849306162645309653405175831119048980860875146275972751770196350655246576315536539602959283814838924431702850203602132239316195524650526931611508574969131627472051448546281039964971963409574355614582801166892933791126939463115135252147051977453529323107551508866522301024677917561936687127939573906585575380073754700004599104050688616645116521074050142071989663937054180006858636700901478730382878786640092779546624123131658454715519733363327521526290823886721155917490964656381419808387813470295461596966258602269123916565286885652731345149917223805969491194692950075755904492370218490908043718070276725812506459576506248634163514918134776267202314617575645796339734252941919883134091299911901696862773288764337549678617728664034429685048788126132774807331333351611702935718558778619384661639138318208833410835319902983910155503452421225329520127787203763630160645870249760710008497874877130259819892308019491459755497800002246782559109686028899181119127431057773495128854673627662968255055614724308595469136289489948692209834680199968062326907544458793935773335389936683093451509726073140643038064892741307191088259994582081154047972161075870996843318338563317787502479881378987228369381043793876196800750237013345950403095233177896364998876304831037303952025085135467199559243606187105563317295508192187093048200093466507241302173507462559988402417317671026988385858685317887323104891418636553319992231395720820576524680705517781200460915617250537178635616847348015339101676722604829418185120771197312075219165621059441822206488016306108661307079850717268405664430298512986670442660480239361758851051315200119011087803866902398057834554168425975836951170540654840668408143588477968084424543427324048621919751609574757804149805906916815825301984159856524611222954193746630154789865466553227540163395752589550394500859385057272928483832976174653084585081013296673670965956983884754590533198615673092317218579747209860389756268525288576811611201450647820946850277801492153841359770967753558840356516997196801317020256048039768232458006906324268072439976618347419053857428374097365133804998472542968617053062457573082887873989052796459735300019822630318144547675260048941799597264487108109705448556865385195641228854384690555427895879065279023733743199828818131301520268293575572072067116938579434606667713660980572644735501022833605536429116266876867740758301203211883284689047902192594034343505821729211691528800970800802034632951729170776037840764686640173660140248896429081741209748915259191629149134888572532813041908770462886288888346788539102683838918124722821671304727890927531576846679749489427825146065566999465780557082342986511439754061763445155707931055169816498541060260994749811529231134952240115138044722663973026954151246570205106679371016885694453264317427043958924306122200313302773227225860150781338905118442949547608920811896020016697365196373559432815211661256584614909820832577520273633526548265661799067030004834864585803797857229067260990444067014929267276984954720713152403148824414328081366185824460860221987276704320815747298576973858307542778897919963269663787248559277066634418422087571229101359358506954666430691352350794109282247609051798208641513564724527297071880150552643076219124421785881935182470466267048235712668055996528780087703329751947063212713110654157423733700098754091873213614806274734314004363415754313825536069187441947478726164482502487149837031332007991311139049246656767344736982895440686630752200901263446906918619989628174330799348561310288316104543842460870504611595748739041016786169138300994268920380072411652417775621219280605475246417015432043235994639850202164483897236849949813784987610283538791217801745310128385974907365164703497762893091061165203560822992149208122702494024036473255812942808264384411412821426750805645416484214999091743914508502719035681023629670419897336143760942610087440484925440000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
18000! 135252654781248088064642776913270315229679907021786326406878729618677531586450375268651096910635436050660728886200629388090499769224816227502843153030555862392940786875387033287197638240413812709547954132661607040890456939756088294528302404940907394045508513030198107760189814271068668843429836117413229173247234479369251154037384491565970244840023554273456919652620581774777579849389845768731391024492610874057491519043568409994102533083025088960464743458672312555717224304520585722577301097355023779605671672171286698167021890540097649479694007450761466793800214715120923958096623533940225505371061936490763731008333261888288993262964808009026250612872257057501371973536620401321110962890294193471777395571610980091737555092463533509322349006728403964232669618021145380029717935557772408614391171536219601405246208017042243643748209459078524111850340980839779674394755725748536698251157477483107440863360711111707472220185827613004446864426400916957990498133276247817715121162351652336108932907480097230607949766186209348434782606053180035940032415071659696897078638827874858156285463563251634905400168985572607204145002808328528991431033775712719339320398277183350698194650321908217036418880451858928518919518757960743654900782297540855540810534368816223466262419254238123061441249311471063287105612619815306947375379454700693775151682929139749523743711612776783906112071809843616531350161158766028335463204853364999601081334976062645439263604009622818658437931267185469000284272751614599236038570516169281712569289957075917330519515166059331733684133427410727631593261001268122757028987714551471399137218226106122490632463762789970490416060324941305575909143536472773004467457663026383381172348340567487605565696067801593912822454132876247148613078875220564402114684752329065592484954348178921500325642820358455406572349453584525656698066664697746222581827177403756815052345413384770786607502147568465388386832843855629284750883199526694013285622520447806108162559472182066315554452823546183623170512456877669616167343416291420312605840559102774848394077136265692306337339067361604206303639408261785652786295394069006823493427452941231698643757614219057539352179224659441703932407732558768507015294785795841698985341563258049494868634246203362531719234559364611121842921635409129879451011608936652572667320526651690707498059553817865494382604103606399783425063069101182839245277922506386431215265816115386236874051731029543000582698970679762532158483567396075900493903505591975330034346408072839712960632178023848109389719583951678614038862521875793223337480889084332869177979121690862022158750742712821253252328808045134126230521512848540580568737058635687772806391505105845350206147983425097490745228048526122862699919016636253379764860416711318604908519407608123992002151741367691076746658468701661492520817365416995541394969932604709224677635915136343352590595304147496884751673799754942759628441160208726841881609529646217621342714216840724085101877224913238424221776540608234969514873762179656193017599302085344243674615887404634928308860579600347348800051534439908905019473198409386345207940234705216252624544166618011334390814173490865174737524757123906871749574292337226112044321052177297429325053092081880356909819918489818112575362824231457365421656944723302296996422746234232444225376311949399911021180725788056326174193791848087226161852813628510096074127928969183353675313559082848921694169899277824703139761896583364201848481950037797766989520163408199697947954665935550860679720386985475349859109853590016402845967108102166386418230619691791259763542752551852168008211619006144701571949752242213106257420629942317179003719748419926327522976963821601239583971726087496239301756045933612229698978531100610387134977821495198602210136361013138261545536824421264976860365647046221496525436308375921295444308336346436297116067245564836660730285667556212858792476417481854407007165499001952867296075358677945828168585418923000539432713935555389554838019438804883717203499112169826762481607404110454915684575570881548496476884548956156319809497323893127624012490443226506393081817427296873709853193098230539952317466492678800949418079067137322588656288699949022977065508029868375127692043142057257976477730153259413375830351515122259878822305940240582944478321799786800791231187783107969290107479948733597372957049675363844754866232667967154639177584646936572944054338232497852632078478337735581011724181085162464967648219684716149727768152277191622629737138225765031827159453456313239890500968196547574444655053402237876337852718658197271033709796265751748677709588239191957374210814774248128006411113816097403433616994832242588393227447127750621968938250666438599227723941318740391223030642693571087527230491387090472024050700940601463936724580916810989357808083276430875516199878093426197180702105694707699572789225019234571869662212489262590742287470087486815485444707525070525447721227632108893143999608572518460501571771351616495466765200351630609452783324822709272725684607893927126407511155282601367735485407516881447559286274928632632249601741860917103098321977701313705674593031380319345190136825562902624161983691971166167399997445055132768365014199105447635086471748816115404514916634736174640391001190117252939670002585618673403105254477782713661769691584323696364389828999569684816782795093624755967090247695820490154462608761488135759367758418356066233860796008014613134794680153641719506759029470256429953152038157474213353551865535332529230062551980982777083092734265007359375894371855250765069668786080948389673853505311607187380220466396834043588475575743328556410321292908827850381131542438374524012767883844690934229674092733609177183097285834602429833587720160272783103546786751067332672298728113622358400368172968175251512569544979084391221577211425411381794141554405777547189605279770148339136497085008116074915230290078892637753093610213140588217053641546740688437606427900147521657237315915088443665432448704352158208488257468811307889490940911079802498664082474408899284322046686792782190005085094927255288501897897265521142505042266849621117303041150899307522421405152264819707894083513242419975142536165687267167022117295177418860708967707400361431128112154384954878720183390966933675199938933813655425555366201627537921759709173760920883019303297332815889583992705563386751856613950116514530909215142988506944709879037100975070875988268415063026317611811657029840388776578590296398050607547417859032283224649990305413239110226028088913036288556346013875452339438301241855782465962415369287894601605173810663361402588256937040503585936084308751209699630793558433730519376092199832609834376766384944870171902370860577061851982721369144971956824680333171431840304091844655236963321441566518329221277558283862914417450164412735101593526482559121692273163483140357566695287132550805286790872140055655464243831613415450293313183848738809935485284125948800655398495643918218902056153782115288279409060568013961031278381346965166557794161283389357299881511097947071389382976816475206979488163891365835047190981537717376346731370174216844276778545272489232169853722429368305858905844128800857732886030484263433310339185619090369652872758779399641610367219997403675988213677850248259368542313640350271644793580372927330770965054164787344240240371900827158993756882556335709595861707874444853558816426340949417276067290142445922490608519614737129238818977932193894524496221483093423565636022515992599404363701785396863414684794533803685205137110313859170898967120552926992429802821609520313775780421955117612417771716510606628886290715895544067697694401938914942015528008202288935713526644390019346259469946587944809213426034956080139536681254613416942116894397670343864658281706147865693284311055576483162117301109335801881663516714966214483060932121679170397112253248873585895035269102376885925696076025768249805739597167144482318673760200430126339342315686734228287210072190940579567906652696996895553613139526393420142831167847319422109460068999220875352466686210987537145701235386390977271708327733179409566153914999139263813153732164915488460134947400230568123204513196783050957768674502509094982378215504450984500380401295834004536438300290953952971703170370132575263854070237966002381085269759081579629723970547954655511356009265066449671233160214662795001498885921731506320504099866833916002407047073484083847331199745960652390057884608085475091019828743348586410986819556476069280249455911991129682281672757336294720788832602501737647350634560182250563164868855541350172831779424972205087486452734898839502217686120622706333064238028537651961478690803731786148010110263501159787308850407228570112029443501536036114054160294847718263649889572358036655574758918973406093149621344000822698069559201130997929655962262840817596914078599303809299555608683458609354352670175223833386163668767409480410338157369568318364261451078883831335037357686639172878331977690552420104286633254407642752886140317172608798475931805851098997229624908761972657969171379973983640056794032336838214794835557162123924160056306337247724057002272018175786183271237530230348175504113816482143078384400795965077188010309875608778721208606749808143866250026998407844093848473965171660496215442101059552379505107253549660157010154241178035168241343939600454150481112690329856528862413305327725165950252922166790262161344087117057480176043620736962526456518886521194787044771444364178645496435958483193345378200997814755420495349463575870087253035006727215648683894260712209344199571265693109378758767878801609873034130951051007661594001562164389208669570363763068561140899484313030458739217538761546000523433224416654298305589406962377810325080525495834291760671682047067611171202713718369338113755741895153138848343522373190120175654119372868207843198691212302316016873770535982687172982436410499949214679238161015397745535900482568711969248750729441391619594942305397000797645537584471130296615588693133859594548375756851968319018574394814708736005094814800861816580151020339637017798763781161321939998510938357252083654236211451079970404130071486627026063599359573550393068980505094966868714051406072112191085606312115683966306375049722475984084781773895815008410704874038409588890757286646472601591695002074717175469338438835257639859621281054050351310036848587482582647667410822609622746989450502125334731974284333172670623606755966571507847902296377037217947098758743348050859040752595670593796020836239960335336643234783697295753961711695801526505928367557532704432977366245073781788672899278195219225929170098388360760417100875781822278155776364879960793186390385135362324483929176933509122481304175747865313850305246307461395550200201029607561081884492535710441743271566043237817445066495055230186797916156971145299916549771682007437915961318874469996956131325542552264804162521131354629640787849816569066017201705225529661690288179231787446805486616496352756073385036953030133989854143490677241239349976205754641795724788424901677648923481383198846173704384073950542670387886609541834091775870064393369121503186721059142098369443095492648567540242656177474904513916511243272230045795809908602871634941502159510987718411582925098889566661061088736884026303103388863314234429143303083241318665278410608477099633895839241277113294602766695002869139748545655304504138315909914438808779990178085432925663055646936527829214847559956965493316102122964001131041073766405168838351460158747027414826010152693695766687015342321163722756021231086995634654272557327920273183347678917340627047823622145212197814915099461138666660922221116682957870633646903005541347454452412387864583773315914913487065517101856847759775622706803562540329489114137539128916481821088152718783501522280754026255383060374317010981764529717175399708917430229451335198245893857262661003844158306142601454487672581401329065390760258594024692783946432132083464247258023835429470799858670391630624199701869890201711885845585978582992852751926666463101741819023133618945060161735656619841465168833094103597280048132267498690690612847312771924453339606100332801759489682465995253351028801749756544449070271489526449190918427609614563616342608849805407994559742592110651966316430582459148516864510721950875762552512048915108671135225948428249541983037710490640148566366935209114223460206639505761902099590229538419458913853448522078857654660225823939203511485828182601357699974364622516446706279853668351651330969957230051572209277423005289086674026777843287600758197143656840020166953321133372491362859183413098452396488532608687587452977731197233649855666826025125816956579100356288957774458668888096380859814111516755687672671380224761674797982850285696661911758012051117080042208522384264994549331797624532794117084493031251075812222366902646430384254527574385461549550746945366383557869502243952738399776309957404899023061672865124954684566663659510588956822013977225818371208313144533460876616985040799870773757899349112653944261218913297041554163512740828626501808042104137227436061042948445388743809879952471924485449006987617811229770977079425472584497574766418464173234896537698013401905833370112520016417255607854606679855569999433027562121816622269129239887336806196779768166606577493247040731532577259488755125742173137521650984945098005111043934566822243849676681822316009846644181947263704772885974321136993212064161218661404007702149799321251612723215786228288444817284789203159679513071578926588681751170794923037758607898111982892695786711328148719072106908966299304966288573871453643147781483944939997162357670158341601178883909630926833321941272289171068961285145230221462332027720095405914237206489217040029455740158847988032921551696666004460868513960597828222073297118076014000014633915462647603764962525742714332276345670541024064326117144610941897821690370095942813525041498429279125117869005613687293003244322172807932178228254155272379622737322459140499641858489357851098875115228769606629003531277523276642376638721293037298601122180451343509395459860782283118474489555103304957672346478730276963330190021186613238002925338226676451849375572960556141799903070732113500077017998559362114731236048607416040042674340213793000061914776587567487152704961961878331591934883790729201543952431351405796012722481874349872483404137018400433143185081133372689059828973237837563836662694552424649728318076277517619497535377597600322684128595301254804507281227522012639025867597723936194384909243970700158469095536012630890026201161590138082693216579719178229986638273497148665095260129442397627805066934483623307188980371364927171948014260211018002024131470370760582929785190666577389797365996731921796825833993472802578893225759759330401795034397039337870982003226120871829220128803280891595502676422464142701244629113045043275641746799168999902230815724310403260690212329892148516945494466570928387918007654018398694877933031325631196537274877160545714710101375745978218294563754128611484679131891619683437525599565324019164386796273918539634614774392345846305511102708269091615864431596353506761231609920043650994879495265669723809400243506422086869337650089703302393001686914689814028521817281906030702876200525128952659806618782825301739567453920611600813790944727359468421294600241473910819425774782063070266064367587427474815949599923309100935223687773716880993193065276086773958578455290661128552877636211839557712119308100231033488824609922912786101059522901290568196399850613883376061984295940899775728813167113165928799144619960821121465378934956210319692597341533678698889750485468132874561380831048106732547723821146814333540601263486878893051563662301416050646482369954150182013689289534530426465392496252556332107063160455687670706449283584192055366871331463773320532951320383797671161452642849354506383625883341517125407557595273946917352756982833293583730694801658987457210753836763135477833233748295015584098426338484661739887786266308780019482942400076242202509925760391465000733585452288300107919370407401053075691251132254076946995654173261667208210293136880913481680887955714575334420712107935009806609340592721708405334416526471534900524621097988067643546427138490326400261596887096708824149950751504338342037859968884404073370619934200598414298623463245670662815124154961514730739386420946218494519357082000568070963867778356500983309092707706312849064670562012933247098846893372253814348064162475330160398312934337543178354308067462668571689025340056655087264877852766571340505059395869317813262705445078656946713802206396747669239344845685554679684135041076673165374667906413188834268318423352979071584708814187648538176196986726236625076670753969291351165507638436539520080346183475757230511853230312839024788765515938837097541758560671327344796504229030579016904833011781079261399125296611183371594052864989075635965132736728583673553780043627460512775623903529705734528399508399458009269288149683849403295352853449728097886857444402014804743784780479969528758955974813714197598837913545468046141702611652129066509403450847494828661449604895148609588879609841557564146831389587233137616241538968816768463860235320955732892969870160726933393646338497178600843282143284366162423653689756525370195713938758842591659168595402969905729645730325496071222671523174539090528228427720304007368718219227465641797193882394729343439341769087288057850586562387638419575592430216246988463838983707354885833663150106482142589579670504119921575933605757003961127930232823867178113775214845434137368689557482884341556574484668434301969125304980142637317924682094675823681383590445571503010290294875362010518728357320218101180274162477580389839799095647985731314022606344850763350837792485360474525434474317042244685080032961384116577760956216340858624130843544590463716421753405940706129130108529184485733719170417470029354861622770941663725905621172680666275269325072320139481833843851448184778602494098072748545327684150015823911608460518602459075043279565254790232932483242772905894985006933508495752861507852349956207540041560936773758402406291479113854221532099722607236935328250640343438504636349566963893048987293066038413778931134537900157103242977504037361113914338404201823337546609847599177375424211596719293721699374300238321905621951259918156132703583777628987150100848615028300967112646494592567432340790737972611720553754692072021241623196629531073363940273832083242991158403517158487005273264962897548604837833439679252775153722709581593443018149750724720438470599691560465509779722225555822584035990384742123542484964767262773704262549209253774082876205832586467499152652312983526918967148006013320292328477525642351318598250890360167438548340499881139000026276721180589825382448180561373237317756519031328016624149824878158508223894846481634919264250579823598394124102851445952309078332921002380662578467506136348094093223439386586930607307900367206726079959484757153088865353001361594807863729581389925174915537369113061199055117095409161365889161294974794326426331376322113437449014226094479205109206190343026829117864074840127026043704948183411304528689045481820526995084043820777445890850754634743657856208061798152788185261447093723636567915241347817038406100159709016098417978429442176029156189479225005180586328524781752635521099981458039967152161533021118007008748231174755269477395228621206848234922270622331696219096102179607261526053665135342713964406188470130411521842945248731853055305848271655386201942254862712721285643620066602963644464044949533954701893675621778852255277990657976321937705031295958071655235087339124143349002688615573729227989016418863391423562709901724483301812689761833274602222736078722126626115428572491806949987324069106454341271992990195041131013872737526318650030752754631235634080299685228343322362794243069606090615402400510359679349039928185106837616457024602360440271735071869063443568700440616898875668275151984054597908703132735384115966756932641362486435871611036476946315543963557115789513370201405104848240398319707086979423290491117286746671888089640496108116230307421317848078162814175056242881163173971869089830495021856353370623429669670050299793353077814449996494589752756603425291097406565716549997562882153578315788829306842234887335448093382873175841161621459095837178295564424786912308914018371853079509245497633662150896203722243428135456431825967866560793009871932949313457440616933851473351783574936876194574538298463827431323260667847253258162327271535339617198776110446024326502683512420070232296797602808556272464566781946457492830049548486880897198457057025556916731315012790862608505731596831917735582022524015762767713512248565346210073651117884437264213028669684729608494685896286057270697166562309574197614978053031674256500222299578472650316194154666974006325956363317156413373272696833832978002143403091521209670081672046447609856493146181677272179304207144657505634020118736529223915526948242541261243081340985200572801664124117579993075851026378373572393418976894390435045394488279899721488557260168973121911330820573977118726537316135937189588658898110917030940256270231748369818786723032250521695622975596382663182670036771447729510458748338024621589883098671593445519178364369838914137444667634001616735853383468022583024757822800422655323484898617348767531679673776514547346111641878540884813721584291481234556714014044042813018440997955806803354823290392088501351419630228741831198077948580203302935935585328354548589993834723568960568826469657386990221940685784475582975228897174952230063360954223031448459115345351722666348780696082082550397242811455702693597111988918804176774360525780844158021230878999511774229801730591082157662868687265908839363041290212035096444370036884239559189088941207980311691559646780935074280715831559307721829302813096026918097821358790904653634998113902875988614065576572083716522691776670579247050985082839908120712531529992972384146298140592883787004681105107355747703110925757164407034984909324132743497953987297019794540728084683173639641137812024912816960649261906862865002268416327110494676978703102307510583095933175304444562836143121992590556367756649132141158562399235831052808975487378022491650186015880255732754286930690600218972340156954115721935543138254121912418148549965391379066378205407360175627438477337293099096081012269152588082161097110834490909263183504795729387246402285587215221157141399374398712627854184815789782292084508079637870956538465397373920876910791823607985118850993626612175164099673013862232596327299904055431490272193494632667685256724812764860768772631126315565218653975551165100958166709975401140767722464188524609966207653445388070935403998142257294851233784211152552286565375209204653308732680830129133548822077003590947601764990928656774695100491969008274452985145397705218273584520331298146322340502855795531220772555057073063909397492503331244648367293899009961521654664748343495586630962944953645653898312832070919988747698619841881996707044280402105978369338840552710932751307030609772201519773481348152272622776087914146045688162954649806296157991002565183594557012346371216186923328766423435037841901454820958938400617166614626362484772825442580286020198158842863326258208386135203759478624014592283477610083725115415102020796313411582997571325957750395456160333915004415855776724562339038656443136172512632119150037913564256239965259710875072653686037694334969589903928867030863537322900416217590616053880454488418215812841825745399316327767465689523889321977938966515386668983557567396254032165134851131951395070882171194014437532415556142815343786493819963209534817563149478848539254037498818157868747784280340040865676091852243627248938338468792014717093429347532207730536722936573163794519939588202459702207812132042679136897555050419691825969388780525261650136315684331700168196030024942316412293748532970564977030304311502723473892433948185669557407719856532257234757346444083095356667849017381797563522747169379307254302976306587235025020212503042430310155512623211897496641993854120986528862375163896974615115473265565932103426840916269716534945166912156604682104768147931205697673988982175940643275996826936787516797257777542371487980170211486139829881726513615878495252453029895727121936019384236415755407193113382515767393646842418746899169929335637462484267146296627714434053731004294003093364796989402641211107378638336095678660609587048941797494447967796033943909920002736852639194809347282364215895470000100479688020612865096111274446731912424983763148322502861458612540203929916787978128669178209998258467276181624400046823071587425478865758118076986297314240292691908165222006893854594235936613097302409799773040704833665856604934502599949457672788319213240926467894790521476010432253105448065610599954496006593426874918758919428020859854297760396052368984932439776944904843267612527038699827959957168911990797161128537434864846402367941210034437451337987251212982774696695046539075908446960638590318773521482838802020680424883853977444996014618959562909891921922133948379897857482154100896856727915054322261888857625598879461255820305593534905191378917085550993310619863086940431914916491170229037284721615386259848882644687164386399030024359994652228967944987239634060629066960315520021423445804515403733985550897765980707748732769678915223799376385031037416419906826229698932841093820951299392021002258237020842672848728934292692279883306707334265091573040890307861713828932134745581745936452788629633627277661689310323844559486183093044753208003789868357048384277044400794850118172008506412637202969563854454515271283646537985374610802650741159988718918511055792390838984660722338916569402915814339936452557761171069664154728225325413796638331045038321525797069293297339443682905470937363639942849251164581186964951411969880566193059780212740479703997262680083964624251849501294265685722781712699900688646647047972229596471986187580505683203767427293129070452043446261072040882509834211990472468017507799028555343268752618975932525457442651897063273686433033465418471066442540464871774740022572078052855764670131057408171442686146066640112757880746784984252441327520310215735038596977555136286521660424048405905430904920949881845114986551141481793549180626287336883074259811740568851448045695740465818816869993079734603114351024723484577273428850101342713929361914290925965728039178936313918906252736179952120669752824218030036713443830102670452071825777957506899579034819375137181714717791868006285633369248149237053423565568751761643366202892676365037198752963417465224414445706911874299549491793658979259611973219639330897669054592573830498767262068280375094958533551414089191979728303635227047859896542640071512253732739228858527925222506268666972036305159347351798975482612743754213826836792189662684579702030140761386742555182279863742571864826911073924532009326909013615998455006334772909025517572110418537906492299268305844118928632330846422941590176539560890792808920933786100523096393895757071511105790012701198674908893366292960315527623620913051906462280200535553666635602559409626597588979081635681027697361809636432783830613370534847420052938958759008022879504622404121659770207699929291153668739249618263164315340045686228704146965958921686781313331329103081072653093925729681021357995453750632096318923214902605087830747309116231764446728953357639635711796092988756886818017767733259313931791887631379015999315128315425379491373763212078341493388865387441397083378745928667361459591467188287571099085824261699941244252877260131923344978642448351995962024164066508324069641662107876247555222728700286669223713939290531514908749845387730600855078755682649288225089507579201287088884668019720161167019368160042437714429520729878837142579868246104311487052030367801846936524024283047401226102877209363464469082267683484948900466112988521656939334480948961969304024527884117384388884899221687360850423023902855457190736747626760627726034501104588782758418586927535248041317140716051016182989359474873976771733364918624201349097206652509782552372731496248751883768812304451283230596346016586725831406732470425616172824919368595771918508752737752229031019548483796115519451089123721621513629041638887657770711832064566062443702061259330840519098109704189622144187675883546504115924110205320746302083191530922117558286578780982769899667276952485376195525544073969519293136696011190980127520208430099081135433746570149768275895910407916764848429284889736334814881085176370199291964387090329487609113659071917073974329749215125733442342449998383573823570691195391755746837371976176349686500610297757548128361876266582034816016371390942455291703972806537405943392802442505825289532081170456815341959023015713186520103515162105045929869831372405857792204318381327032075238744223812944122350472923789150489516090968618680849234264311145638061348571396740083153778741713301459451505350922441926121253807628442063073028837037539995405097449854827883089323403673873630707634200484422631260775721419121528179361171331382074685476339473901496706460664685292319753733033604815350731304223219478358022711369104229927885459436909440170115299833272013139374895627018655502351142780673106175097664427660624178074031392667839795882147495096144229185696086139209832506852514425443997163026828026026374620623672692534497067372310428347074655474581383515330956532526098616774835840587179433888572265954240332981074076447494015930473104934007688761795241359825753710473582879116995497086063360585430459126107716203912486939064635668367158606136863406170573302639365162721517819276485853525770427411397417745221055167402905441655225337168286622329628102831977301738402617507152973226044351311383405061648122834909754087972023484796751937677048896035303379811632879754265626765007597043495963573705613867643957112488177747893796051016582591692213059931401733693432467413315572597279192759198879910916576494967133733742438471617728577632237207528814320591014321657626590308897977942979156749032594526924297684595429713953691832831259844296628153965234589530270949833066338593246106740878935815270453818498146377607107571059402495754186976810466868562594912296163640468306397283072066890165227583338742385267800882572387932496423827164398330929751775656012260351077161273481436423244381720894079901310408780078716255344600078283536102485737438734588426996761460589051340653573777305908966405091137979331906324359846510231426113750451935052836944006258392544794995939935215116007879591602835085460768091379450839288243212659288522310561775612238234083764671035302501006294955198448381982806677824615082585053789559306040248171902845609059086366759186348812529813241589220118878419557576235849694945316555791675198321584732028015352917542426087805987018019447104452242854845238242182036639497736713848234028195933128938937017729395543670305060228236007152984814202379813660004259912108958521584446494555116308778118997116343762253462726676561007088408629720112175079737332112874998908517433351558234833987897631238379891391064142154024910328158839649448597231387078501797994869407236930097674994010144908516389203513751366088633140510559453512644848589171408069291941862909374295554089286032901721587894722591839073769632687038448851250755953159948318976493972539021093170839104350614694471307351073895106755955863588756892578127403783809987687621928479108101133912453200348303736412742530205018881059842122581581966469964437058420777367038185206247202830185731233824809296474828968203566577289919759925936865429707290636833347030141265435572283509803580978208403267892054420542570793678629134090949455025789024458301027818773881015671913135602609498935542905483926559304270277838599507125297743246652898460660876775965331442789479893553351835997773504381587758677761610226830112221136824770629787732024726381122021543595688036128225583298498802952651553613648608253935064745836991356445734703272511106960665565450555024082122848785602955381451755015903682620722962520309674378279964022855291374644897251848148351578395905716705077656574958695828902275411894682885115079812817321618429671494002854428089049835095191576670153102658427773072217233089156994206780878224208171597740991582759237428080212461237910992960419775662666350808107576485611817876103006641896365460258558922020217175128922300653020603755286326139864002581063993933814109853184872126701992632585429717406755470702693490878428175019671300739981017860629819040374318834350885235025512763266891442029701355591473593634161085343714505440727470142430260428873023610185245531641467403759208537605259740703666690578405158310326869669902733742109344197976718223991029667419406679362950803811879102924046490180147798156408298272800486145103515784770390986757927634518522689258036685831561325201911742439625569961709719912772781773183929948777248753729048793192225824460099527393862515604361730954456749282391796331508251700762367168234390577479373316397733342648494258139946001005217489252553208818234051646837675425729537863254557375407179724636329982230995107644439084637436265918399295833824531968249544653808721530515766385622629894985835683868884796852666854889065060295252117721224994695649722053549184021003052088996236892950973336737795215152990470371539859196355781342109113795308065863284043140445777643748053481329338451604448726068601465003901974899411808670549791381500228307082080924120430372909411506178664745858360247379759053120467541739117317833357547673755661049142663919121271503820669742389076027115691776927370425109638707491836605075120883159371581129952547056014360050865383154267084253219798939975005419296056459975906748414200380891056644946565360735216408871050530610558613912058091317455051822837506041370277019676621062003209553961505306136897269973519343061660240709001206727729039520346185538258191992793601259147740589154066662819986083719606728268916340728221933765925965409337144818045014803504450209984787592184768268979183292519671937687204066262559477728094539869985129392653858929743819505410627579582646912153340905030201287412817661075085387621774636668474277043443385932097329647998911965920908567394538484142100193789959073464451113606455971990229685892782251344593069346895393642881717879019099974949969237238771184182192523080931257111041262881032160821207303041134322190783527519769042050037544767226002024943103228390798886658464965878799139649851050383702257718626482962869849038959785164955179381897686226955450325249411563406121215844946180627152936505989468410900922457680677098008887036388571523406513088039942172327857699156662049318247127618265292405463998388884973296954984540117917659937992711429584938492594122375371181452978169227354515744567008180319052709153846855891754339926307301140607576740643843759833697098612764541082622563181942654478355425459990485006707201907838979077970269160376167694613720333777380505076989340872826236205093125462815652163043916982808228182707949115346615598285407448115417031072035350833374320311007838041101272559378590664670000703173167811670579915799861337033404812233719006670147705447967597700093109082532639001987554425773682711890423372863224782064596864723026887086799901328114059376388488473474896167552854825909221934632579832147287168199157997888918481081281600831915277763941623733168544780199158866045233160253532011243613091044656156555072767738857765377897943465424746281999520686525729300044649890135404522259542387646776839214024774557593862921114902592379987422641437874658804230566863317824058594344536687164118519550810207125676642290894630258578779688874243104178238340841134501080527261980449508099865565184031803739629166523128345635217631073892432522857623011563438558101177873055615873573144402124910871836008461881052703362971464535483640037404152996870375145482450953376428137447650433764252534692599532397095657337898440330564268550958771319981808028724747151217055916702836880540339366426405607905588563395655050193947676314193251060821068910686357098818550136024028250176324743155074744189478819913134580835810292400028893467304242222944596069373159664473781890691087195286922292244258188903151598530968420502038867305050923298380590931088805676417286660682236932091652956462074935643287699972677102310453410163256734479229825840565020931458182104153790341473622191177165261647842754649461221811156437872051720069665241708312166596797180309878427342211357473046071016371890706176345394778412955985913988607784774645052472160738212975276756433772428766543146903122311486306928217493219428111541082079369582422459955726846922548921706020402460763963584616797518240850586923654583504195243990430557673879032832961563641655721996871114357327722098672037407107344705064380465973552245221157731872265081241552534482461786488831982952971322971423917318133404546979932949687093342678009762067856636724672796288879162792862789574875545223486617557656635855196359973277067447819809034568746114563608777157239272840880294735848778709965986143083053553202042373788143914129932226272203910909368650363467171636651555287581770371438120878123426561775241418908663030785150181134084814352748215646586192083410960729297457588577643791193555448292646477913762800055021757238879750135964381010080202686217717789358332044790466295922473559900175826458616975604811148565709053046206602749476847775843230837754084606924047572769664817480459755242960416559452087631535959259117246147706593426943047047092891204874602542259479530152623859569450471769114949735792807328181310973477040264063967061868565071249971677787053471156136562301450908241586932563502013610940858116395399992023041120844975904224148157853295717695341753146568400408452981671883452351665037536213264522060470025540451668476181724451384343187418975952978660666105877785973422078600992156643845943900647183748466558057717336295001026181933423498264516229709243491123472521525498914760777330748471865238400839633550574407455700951941282416644754299665937151425775915911121492916958246289375110972681073121583365238600458445319037885628630401210568744732389510810913561030442875186904645973471866092192223227115914884417251315712218579464641985420931476933561918657416977778548959310639641948252491742163607112540144952386646829321362338588401093973690870055196585526855789385611556922507199610352099128322387035307961254812502103526344750892080579595933012731778391089365917703990248191291433604110809754422746940012215630730963010937081791692126458945580241992748558801541104725102258011970106109891173469247634114911465813467632739263116441926245145746228181799223913552350131305442254403566568067948901309294439877194018944947700017850463406719916304310410916661845651723868922592220837429077566899849834544606858708235842746893112536556902763271798906656134151329273144868471967808425982057497940836409473581235730783920279262717922632229213579058297303623464536977070357886350713371852969398401448063616472472729862113557723924060171156095555891088432799467997129687752967663453676481585830458427925398369016977864520796221293917698340302627953432393659362208801862794484819637688115968880864371558151865331224319582356364676653334412899586922199738240611998390873300135478961915309623028082744619092867345245953296396314066277445629365622422025103081313861523763921318352638860491817488920332012806045109483508726473089537799282792109135239777167487647609388391098957471306687180745429227963544541416483674395065709538678451116833532466723092363643992095966990511585769378832876612981071184762782511176819633847931625944555158977143792461383300819950810529177476450519303183463448796458558926212314151425943010802636205190908240072287564179279886683540473381820275112911291963822255017716457938981773130277801487528011408467762127059140896625125190050246788523751185707418440202847966281021876029885767447105255244535675983316695218733230690666188563432021595388527798043182909509941673799513904620159452859755194307137323354551275643741069702766330439989699829958415745323429663287365031205088967068159047925830316757644549331564856494010461095894302095012529784431630877950271696247083529568139093733399808341900474055028203849298486294148598938167708459777108566350263369412835155831577068456338853202503280461490438407648411472623052562305729167825499694247355438959268397531889586297467424971206552511317587213183841072454161828264830918810040648038591611925055372688610068565757136272786904023406968241400335941874689932995066397837671674517969749323911273703767675902630715899310861458007048463146088549495168763785746717914508489378807476012853058830331619912885274435113174724807237581280806261498546964800774141966389404050257667257788125150482102110919881934999514131505131175074262796291793978012464151465223258851487773620932399729584904548442625776696830540440236466357111264752635462666979856284853367574140720894647327650132996349348533013126642307995921218438536905422042177991868660195272773886154217456873307038204927629188371734108729165206348839396170960733365905563143173543332626971738761370810421495301558136500718340001797685617117886670313727231840598622866993912728086391999321194986705111056360661674696358241876933563225626462775680634091451129352439941268923419637221076054583322964505101049582379261041455159876506828849931496487820455611806772800874703959622067105018947943304104323502674378780983528445420933627277150304602640443347123158599325881606692676266203902833155326146474282948595290383790079142813892597560087195008950258551820495268306460508222793539656081870561319396451570140701263174069458402813938264934861905844525100635490779446423180403133120937396201180117034295784062008863411264354806284341379924868918900133322671580889803923577349146076603370258419588641176849088359667879952454311550125291604093339612547043380550080422658421973244589253863150420300017314656232803837231458530726511554346720110221312054129521157032996931080628175205306419234627172911939310748390150508666778956449126199323744871805119792530045109871792959927371560986579934387043041412465160324391086483604496931385078010146959928861352145168105753883428576702424560060193671303859909221057496842131338416145355040127099041581993930280646998491814593028013785643107978759606831620688512945428301129479293626694549024131883151654775244148675658995848104798700586459805271239971506165007126752101533684157282494275988651864188546561260470619756161558907359093437805821117493608222667033136828223272303417437540526483627860534179503440938269511420651902138848679823604724439715525809515233663340680072617361432028944937504337402655976391863447655709350507997713454198297394483318337098518133530713512288611218368636460759416820258884151804867174365625168380362410120803961922779369276334698271143950693912512911844985628852851009007986710633799943218653312783957386966205749455089280517154903959006086638184138966914595635936114202619072768796722382420945981401965298547042721537113614923463468401160194332803535012023485082245492236185402675679196397451247270788745887107165884486869578162840234709941355161498327531273136509279507283218938562737130558975675610352359322718476827369987892232401049103623089537135058698072679925708503832514171892744711091334911395794878475503781873467940850275238646803108978645064933778910903249855267396478124871585511947111601524692671267915785217123692940205787713357125058366411047087524643272238797517783730586644370482227287171058294632334730924566129102907801444809945378754841874500676745348163614242140120367115559286235030060746669880802843582821667752955486756373117398724760167917924982366042259899601468509471840497990205246568344756311889054402282512957712914800121998045999494012683957358768607990316835771917427489714231544421804400533870891917713036949792085011894042742630697065050621950645364269488830838075646276871020002683068196741898068416192466227819706352765208079463656525628912717864349121223107561455325992540795090246827609597758723374350774886874799007669672250441144174559964667984324810748297197120390247274447584437758187846709473838772486391365813895652538336896989917918168632630542131153828698383242819730218179935078400192877732012301266776040887809615602588826188880353878237782540577708419980085559518388882606932816531216860964442277400791294267039911772875780462423380010616079250384176160514166956210330150593617803992255710384585029673929132095747438161116179540781922953808940805950569544767812602196868810234715459899610576529948188334109972900495759353686093836801887548391264953462505142595935979137810847872504153357284346938478876034020621962663045892179870636728833569742761167154581624964976441475823556574797481879448111831510792405250428153709677839414114716398997245245179450376088792599428985591427147356598320065562304474793545705096226382711688508289765526239164838444521213484486627637485102940399912495676342666298506844806433187579285659099846660299293757378401376089219817218931559123378944054263195900920009440653687414725336405597576341085112420550365495777902908315384700927440729020001000549551499611722618812661306808539867732658565032401525902203331904254959792347381085693266419381748690048482283570183217122622665661451941468535008184937224291058089120474387972352157031664115367915300822649398934043014112784348192630369353385316935705529764339404578959988283002623707266287436832613098352949366814432533971261972171632745163793737222383094236205833268529045557588489009141030084427035840984618702501773884141286369184551908061557200828100209842126256047049518044082256990020521213452886166547361236524100998146529047004690989052783981002287770100087975159780611346053573414454474832267875783770349296794470761214600034634302903674262349294306932010807422225935637158246859505412595240253313757485277736306589233761264735511811499286809710372946537751102614024232368970154803963814798207638122022177401796200280382834650141829279246244790124378192857276695248474621340009571984110535740449990333739279304968171534621561631905893315369270591715564712403472884650789183831348248238849121853098313045202849324523629391375098201523723180771823422396456602027755741228277583536116967402071249350182738243635068051563456524709867998511633445556662267925400032645594639107845888165821228594653175884499737925172735136765034077390372440893490723423025638229375354925457938394351191723429206041652369585950663748307361999605194058015392316596556140112686636805157449336885755231855989388266465380564779583005547761820170266785306849160531073687715970951069573476381321660312526026033252000678289001667784940107441850257981369622753872018278972739846694105650300114999701440759472248967955191913921825320714103718941408436973364847347713737262212411900581402076005558739924462287832553927178499265273126967815385002091856957342009013173447781064330878314481618919767560511042381567458461037514197897738056911445945656816716985511589431291852121774169311838271801042523410352966908830085227182197173066061839848440293751886186974130941655470401592552595148356006836968720420383237150544812595766478673541548429912261358404866375179098955045125501845321816190761680857549078841468016297211153553071173350598909507264270028706701452969354763813960519978755183594467746973142703889605809133920144567844001188961689993822025254715822797032275894593805142796576485013483200559975030450838993773739100343889802458561265960003784963762395606705996757297949961160925224968118439974356295782651700019762716980990511114106523870873904576895664034279754273165948211651987218742478373598912381124607631679630932050576307857798535256608583766052043140485245331271547630074445661507626288907201354266947454172911194392807399128648227282250036134749665209819748360357867658896600679258013892273365125648575058289880499314978499320620200295199989114118298904313736224136092802931606322492295853641812793220564839696751475380065916552620802195370473041768572088718509247166337155888518739114415105110640864094889866511883934679021259248459423052727724791091734613302424764644394268160672562942377261528386605506395822624198856698885924058924100564934212474204227546476504143114377336851194055288355567644225318340978041461835152358162787708856954917443872094824227381164934461943392014914661876099612811632653922697162097865339678128779967649256150738264141726550917681918285671036325340772527138010131795488601036484232093163706306230712755747124301798562839645053173195860493281369448445061997669869251292114349812289991401828973225395194296674611891130084105885035714499183706725366351354417249990144752852651048011622076145304396471653056172902635744248768782902934804309196475899746040718740381588651602249882627709898871515402013867939244386839064119403273241107400463037367625021233351701649963162838401484663676820247855398490964354313966620528162637832532036295377740334274137130146275811337385899606227800870330031715931515997405772871240239229020292497701199866254073490304262299167665451387199041212686563054740738971095156356883624980135207056992948956655775151720235750345974220010288114761244017229741551655471428945473938581609140724509494160235087276992142619179607453209573544765742895250321173934963156449136425050411333000011423928594453698660175587553835797629605681291692011717384725890683618289407597725005356410224014908432676019003543426649784365840644372444023393375732815376275947910839713819943554701475118844412076810487095667261304694943788796384314051851909631624066197684337631607429394308634526649099350627804334159561971743286695629389904272788299921416699767551239701085322205096721142375817543379258918742207361621039769089189887119418622319714038877412426987748615676323237891093616648304319895514959075691989519923905761176510539889464967265370443977977365171877839563208595993886228260462758306567815893136487808863168799792624634478257873071939227748983108456329971165856636872524539322421995387251002223598400333858704167890311260951028200618173595933028904800107635659186980303678728505994030012519329920024711825386920710396409023287980613906198468964405961699720141207377761989442010935069994834360906745378130611538266701424098799868673822168378177748769502987161628573101919379709396537250705565881686125053314638239038985264406526830183408595721604758490528957917177719178989091506629239406934002417983241494474214309969998032857488678850501882302917138413383663543880983225078899687922308313420743230931646310573247430167337938865395543490211835220960070419336396049984446454756507157985375186286860207371494275178857938805487350740943393987980192717488180704961363152650271502353341427870580723696382021820345265049654404554043133987480267453811547232494301967819462475691050210686220273885180478042903642554451912964000556480988990845507661621190240776159342520575604965866648637195553233705349670113700698802589508611274983458371988739804276007999548585061322095953966057289072836196567456517528388135199671516938470759378860038926901884803552348388064423913500294099832338529069923993949909332275605211193029360743618853755897280101026268919919539133693211732740378653138300543414161443549737112135564416236100077816876035204813656667068803162882843649810827761747099321068225064705022391211622407485552959699089912257933338302677000836223409647976623657126919190109501198016465370052200770341712719525511063229148464261559499030287901313518711878053206128726144821177678287250156489788520121156041635112550590363918902923372465539176219869255928639050942467898661475891783951904819193074231888718575888453122215773002958760256231470708242062710468486125786722846880063197687809020714521260446378653924846034891217415134736263256644026445329177316435957356885289580092571576189210633620003907215046833731776107607877658845045394869250698326055723184401711283329362264085899508870311087736072104119811838799606199165865115791808601001548165111492566886708384714698709074434216476838927446358053112078186749261492051952577881978000287945941016340737163303891104051090017284656949039375127626740065399991597010664581623625941754153316687221787477864070349396323413836800430515359047371771337111921079288499270803526489575054403867053756650408413064504084937542325619438231103365187301742210007838819952602761232289662720417768634337683488426968879655698743076433424109656938751756920121952067597108377364933313960795795140322752835056306864531107804275713786696764061613262016659852172060221584207215146250959829658228045476350250992180029973400747858582957832553279776734191322936135995988021773675771577854526064611803397625752716181434658678045588561786270221062683729867861842826809630844701082119189507820865558760764973796416973988549802080605622486226759798648866537353710655889729568979335751211739893723674116670585866372674924183490767667809957980453034647931680262217625695621575435597818892298543626662623902054277503916375473521868441622018464853083095108148940122342505813322296471135124236101197897501773532977834122070914497434575285513443599911450016954532713121360332672922719823619452071446076992854618853675818822195530416016939533145532197208844813915620522133101594154400842435144876223824540703527917416127174105845478235984997799164627131042464327567763442979856753483433194709392089315542045072534183135017163899602134656505206652571946604201568939105044983310732649946902518110908240305671311193573969396725580380580594392350926068213837967662454860030594136524093295576194872164275565514804285092972983433759404678273490161647787938968477995881208707083334398779195780066983898369513949893377143920233578923838638940996818273067273715223360418139436344435032615502509467924581496776891829947205353479761688503344454285530224650601228422826953293992059887539243780797713408273146242124166617088568617389398194661505239312718111856395197928303668190693848909610051627946749964659392137420125337989211759050814545533113111021417618824729501275130874885279015375263015988017105752233375920859825017242330764138198028428066326347363486584086679096965085014256392540705675693114753792928707118681484300757001813830874839366782888852279323033597176002553857296733258842937366490505500268025143425463307969275884279059391110899159949591247836562976149241952664438716902054198902142839695543114262351276167379103607257142958446429507564557056285727778733203501221155848025062102900622338048518073347607916402118970724089707569060606511789171467298043061926926165290838633168258949348360604134961989156782547061304481972359698510975464154931520322545289293707027788519639096824249861814893181120767104386188858391147927096971876290225102041497845307776397469115932160795348450486401668143633405031783413102098488028868420042399273678457521026518199608880394971879531213256901300977738511932822987175723700959627825157669290818583856796817306007675871382339633686508561773937903140574196297236744785878159197323381145430194342251571691720019555410626159006359680590539594504560011977495932272058170758220187491407301798932217143502770445972871692751424185906627950421619095002765691351771920234009820690995778806818520519290725823120241737255286855446571799858525467185676109866902952595262930171377285604789454743249374273327907465778350289869438800292941354821010328396403615101649625681596681822337263083266431755406318901404786039026954688157757209079568590669007757225563975723849433527192587029674169023515467028762089570201295783628703655624888459747386584021189339353333285275041805824937508688464604640470079735819539343641107170099562493184140712406949434329540403387382562747470912038824489895610369334076964546238963445971637806769592971056326845359886737592312707175745685639228834181308847411301033074495554073747431347632125928734798360881165609063009036657226506140608512490946657062935970672397728352326177604317607998222971200302499570800013334760357390289853739002391738459313634585029546218496850189490520286953439575169336326394052370493088195614217518946975665295043124616078860857898703371400165107149522397504098684531821162264799881567831859612147340480833233887887424017788186001271736154556758521847191742045907558849348328484620006658122903617863856391603962160672134857082582513397676417067656954241125631162851658241303657902237731325835093544196862804401432723003779963175402179513013752130413564965105164867280749696758757197814578837461770953547110509731348375946993835604880016024821654968275308859907826511609113224900811605371638107611219200430984168964010676635264138965373620159931744604881685186299358724163639781823021669802864599796476184427552680308548171220196145838088260792399456211642310663388491729970118254333466274269733614959378792249998002705648106813720112738591787995308766467047625996495637645403533625412441867011950573805047319370496026982758465282107123711575499843283394488045854100329388513205854455906105098637053502267294278544641350026750811370008319168654594296037955610959419746387137639376323756880284331540952552185625242943390382812840350187554085426189404419071954976469966229698997222558848334967535561606784459798978218608232975144450711021529104468504961959398913905803496575120353657652799954721802035598992755910712380844769611196655943587734378191147442861291663484321798303969817897044593274389313482319136138808841601880500193952157127651588089387165661794940438992718485389054620374086079956446078361276022987249321351431085306740605338671359122076014810538139896416773912394038999553983739769742728321825126397169692143742596805708275293708798651144584345732486638555830264438979307528498191228713510552224055315419506347321335774157442046471299090490857412082092863119119769956365948482457738438698297928331933159041549704743175981723390443484848539890898869307784971623142179662138771136085266791184935368936878309102318882820278295546197085648347068286026347115949460981208194854322951071306693396679086898220005998054631610668890392344678166137137665868314413698598119817220907722487504189255395469897337148639202129423893978011292765927086285952181004882634608576667066813301034101207758605220138246883174723813797334644337630772294962136099057019522006202255841328079553006938939798729418237995143198804544382310432483791210526190037530765626461077610719777602976051935472196985864860785478234456235727621179300079327734732465695986803802452339721332724343547818646082811336855968228169067443733264177768020641658160826913259926548833571946446041649736978973771639402332887854110369871962427971690002792966273105225866926355395255687345470754198291961893118046006247677702272094708291445863751292246092108040952571477820102807715156342546251658262412028044793199751206923890006636492188986998112246046871468275664308510461039395329176701983461922481358296182737674681527725133094393858612696776752370153741050063726016847448059042762440991559466461543340143450465148952285878484196686260845248812904199425917973773078702002043035450666082713634449731485020696752516703094211563263043332029956083611685294450253918505281255242779235570779669754092795288856558513404665863896051256831277424379174786404577677624541366823432261757382351768642747535340133984711092866100700340469559563337522625943472917874900618533865552344727134240586211364774931693980632640589910257079938358508375233139881311374710286015728001407787282022647868188943651911513829676039025933589337937294221944567596796760281057954171021758253603059998857438231000375144379856218445880810409667854855722761334683830330156339353600502289888085374056357081587336312786904169011164453752304241969728405499970156779797774545672873439129236215463014483070115235124200251089511495616448280015254418032358185519556780596583311549103434646732074011840951281191961889441343469293262499020718275413999570392912778833706729356129792320718749546705764727913320144489680629269668318213824575081022469977842499503979524969387407405761981438143293251383727673736285206978470157645150731410541593083443008678355315823795353860755031852913020126621417801606230835733382716563468864485844061174887046267896407524252727334371314030483633224147702692708063818850406676684139533993640228432676134046260918257817865654564930451581841807601930289264868496355572509739045543439757841139886912334390997797554503668401682248272876480956872239422946269470487222304790382487495306325956033598598671228441663201626499705942018762520546565398729436205837073501251781710918317275690190240189756988571644315376366349094499943381822661240499120082411406175214080653367628908099692307549161019229394702790952192551839584065553224716393630750234489990546529806781524304554861730778154916974588418135045430969877328735363093746698693433893680018642983382898817643258578298408288525896981410587424481376856402533390844659829433063563381356659127534293590352829990418841655426566479935671862884899479369769780601569414465772158058095532388065750551462515153244882671197156207949530116469885304063091468113523169468637401989571400054546146423642976407154436314686240446171116044364607168347617132067319172512356854917200354353457996785082398846555862024401319716053791380523541968481731213384850885762403699496630652103601449582702560641849719523999266535787867075695235715650291019359881147271560464818346121122272668989182547185446947227372039711648193274386977597285458398254712116917236721315047123711133863125779112717615853181700163095945319306601372374290200930639343473528281527488500506661145255397526706701490235121967475202502369133579128006632330459063160241736538605963943108969273597058119481216122179943041702420352297761888262192047274477896101664400507483086631745175074516801907686360644744882248311020514118330410864477224887119029768471496672341555700795497184570943169410960735943710271530844637027611842088864460404473184366479507069065566771917679551924935448103821209309418668701935692085871999180623489651744262203021604587641390703086528602904530108243831100743230782121369239043873323697719690737997668183687401569002715788718162513255934348674333152479509440816095430451313202109423578490216339327299783396067937394615184753851316053821287023290773244853114435299945767329496529069941009246626044007631393896938943621756749107451970528150007832221337963551039170982048002386517274177008834697193420087168699312388420648934630809708642485114566040706361012447373065166227633096913024483443073465223462611224429984843427140447831025629691485242616228768386330200845707542149862626150117224069543781641842624529957353115899191077298853567181274141694898819942671787200497370214969050926510830978729911128139531324478977637564560232383986643543134127836273499413981186887580071688001424552759654299186167203117971365520767937715875970255712025978287604290038625756887544289618086460215570082913198230836955051423775756722335990832724734549887214868515100483552081594130124006614931497840907102491480543727027728819040559843071219474989890828675601670142934590228011674371154119513672315819825787415609343713662729077328245006040483706989892069336451841722596420772862704323762209664538368892733812726768152044682747553410284488154255302515541196462391596927207359699371141514042917235889489166104999443855839076055175985657444523718225552060632919595742342746831437495566189110565336971706892547330594360691657829094577529695236624995280761347506854710354882525995146820708096530694497259361896072394747421879078611034384855264087818070054719773544927198695854126039171267890918494807586521640800032091087882604729678581291725200722976658713698122034039093211552580744039742175136049281551757337147980018785408779288879125587330891118709448026743464530980423410485421271933703193777478194199134629053492137056041503316232489945153138627513333872910959836012497755766839085417194772635191613335780458635343792160204799700178716218114457710114378201851807039466776123810815066065329991515123889412217877786291985768779269886085468371903188283168878900475455711777616206508777622259692568060580550089614021512464586567063023234089150675550719166583046865827518426285329804222580809850438329854160452494785638233821097423759166438432242455483691156927498048022431873770128324703935965540289730457893712998756900286962255395752280773063787637086291455960566065281121478266529724210694700399722776670469226955974208899935482945829056646653968059685919055827649092224777090147340127269935326830358384611271174976298744690293479507272338883395137814747982481527728765368976703447965999964080027449244560852862725538528195222765096699111399055989975126907239570315489934697889130854275149528068170177860109749264463225058228862229566098852759155516747532061388708893061449132328747974044116631691803346878980046161245009372951480346839603979489614054008737716587221657331957760000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
19000! 1826966489045180850375981644149522407506001701523633904816663179496370228485961807751073064859420025897057139839541885579928842711303128535127543679571924631717748897214405828168214783663553938257720994742354164072854339482755224435103339122882999194425660953738177207784162148285075396532061228842414688390105245689615689513665825744013392834096722771719263490942345464451864326257116700249725674673611197038716000546922506220224469021805571371632574478537775594562815444770355105558595298632469896272739654126438524399332130275265162573641975115798008986069751560819706803029894117525465253609900400933812820295989170455056315595166024603513079108126435185865168725384615211174873142876383394008622072593544383856321856771679087348136923202493510324076766660838525608958211853815000347261152349270348239672569665364779872652752609661152730111657835505081883118333739880684367706861109636300848100419762431507994023637333794968942740091136799391616086536789414139087130066697877054110059786610122732266986091442807083389396602590176511434329953323955143015490509973724673081757908735928708023000310369981200501514145079744786429308259037478800638126088052772959590356278026734936631941090582649703968373671755229261189868301811241383617513064780493166273276907122021778135290480794341315211667725355140958052616201889316397418971562701655234000088342838703140007658094603547660151427623532624961960231687443540510292664073506820002642514802950360117286570596092555567902672880194302783227716174962261368820730192104295416459822144229312818415863487317414392112531899914464790747974977824786567610509581056947954466092867320121874270023551715078611306284624073497212641919324617665806553913073043146101169975030106207933593685989487651673420777849949538535483416860077541363204234796930705147935047021517835737965829556186159560446692568065333490146758827426777953758070793181325334426809312307103258126073312327757963165022939316607612936485453253046478387917253944053720573741279282179879512171425013832469454495893965306170330187185789888145101522001731745316890176826838389684564503648535658091161748594018571668602299846400110663528935417698141937632012762695172970416449266136441947282572742155780521243553174221098791400211963669719544269635679920929937514608876638155922759190349449024794229045535249895787668910071460214217204218017040599831828085871786245660570526825365279126420550094019862246829948897181988937546544664285121107379506389041011507469333401060153586139389542282545124273708535422073921934543230173809291029489014198069029272994434099875016120591168747871110656841673801898935220724526030088288484505404141390318396318643649018613870444829946405705454470710782308648913413750601634163259924753881332660665428928582532781376902241935760117917191277752538140520835197008767620429467701021287674599289938239618477383658802313578969487771783304461577784347800334655112615162146449583450358406918426196065045693458056027192967937358290734213899408087951024399017890766281987493086705896034579412116829538766540029395117486572573737425164266257006777765522961544896742286859024627868940964969463909828159606643638483468800485434867385952469515161045003203779573282634325079900383724902573801825825699556179780024163765325015725906552450888172686245263387640106218200210013734162793899326284192762204841133629754053932339934447935459090008102411913151525172903089377849116357983368218375884052748341815801299086303062199389278959476343637224760325702952422350941659551108732429000796405062132067018260361835584314852585505946545533862284211970515678345337201081816252817031352077920377560016701487778794085305676890462830706088652495584127632427575460242351592310070238048732541243057693736494585783688490821804691446667783679736491750808906531362125991105211417149283135782353825032354801474022313610302427328119551296254759041832594297494493749174797800573989259347512535091887656221447510194219782180728338362195032950703517849603403778684796453893916850876360582004014914484073714459626047314613484879932696641959387865030841676388728508861595488867159753834422338552767576072471772464525148803685260725227917312165467666479694906005662045690103143059338702247517801569300393489524214052133386325047068220059034886983168789207233391357277337837873414873520979868568327558298405442281232436746039973429749870501258379153370199187431209536589365084900796967312272746653118403262433068892120761743307899298511970890891155095756283778363146748357156257941639797137948084041669678463568852081167581078416818687108594212992209028013393030470298173888906393694485108298626020324976302293836485957409425819595607217230701457513228699146652735613931675493298536796184358379333809255102821726325269919459972802346406560686493562155026710931192041333796042427199068819336992032416392790141184938694591516162532039829990735449433547658162962358269130216959884301318503250577362677350722390194549689047499621682925550708011630794219158845217783037832215200920010996325584433564982449341557011092949902867269643153780424694957883364512850606350547149559703818073389196407025967804859669133703556390093136326041189097901108837470673822679824607191712309812496889999159098089604020750437311515850947278428965101283061824961941763297362421281708275059091364545239617085786907667812459503161531325051920433468872985002518555448837259334090174725664409170737288789747841025375696831769196967830187247425319671303209299070749910799279518319056988669108233072854943532568008234811441577440645887481234111415049758487797494003206100236351191042492084857373499805347799210989904272120574909579325845668523152948482275706989642259031259693717162802974375087370987390445977075317554963491195469803669004652577414434167308133312574312867545651064948212984649216687425294709654122227239608607169460278459227813724598324696238082421596483174825021966554149772148428861633191053188643598758685438107284005584129311617555179170311098414177153647980279668272110716412516018635058094276514933684515321035870871388292466457199677033360453918796240696798119709961994433817018303613062842414279853681899689328244464621434883461343032432499895983327117440314206699360288055139237314902895570894699784939154359832348681677093942825895964033905301729683729171935846459940381136607962354404068606154643516780470580443970909413001010019188919619485775098033618259815385795297800513859951654484483817223176780628806169595022088569617730751151173194682621911851944859298585933768851239685178736269612586560391226223759579608726373714678326108523880980538659551904277313507157693855394158656998894136332356847281724237580967802957913961395811645622059044374944243899305549637200659144101732882593193172987547608638399661281965417427705916301251924151577973128067581886323681951303037605090505928268764105957363902208252823869533926091492004927552723736725225041877238756357893262043937713081477377998514082302706858585707784559221231558885199947069940981342008410025181148578419985914390076864170248446523409157118650842208630922171510242614902692748736284041778269906785934580603987871414382216484311633089104093407382136830291940807541269292831586576468955932953055088146201176814937921956920680619775541304916137942186731427692066930215467886932006713428444802851938096829238741048665621331929397990721491434904292482809184506078914388133967160516692219957020039845144969785880568108713562448644283229910061624456337262569499457940856363643053144569273387182811298628359866154746725958008356537404046875217300468684636833615993314558118067328567109730419600496823988996673352258882022939440737553192754560348492681836979450173378642600706934690569633312505949671177906471013768905733198916409228204863747667659069046820336192608171861855971128229168459811924761533733795373822406541366803477933220807654586033743890367195281542809779058770151776147910524747622005620049255309313467776865649968568725710968385885138980667833526231101182137603826302165877712729158229260174566393924235739327169745289289206855280957296682779869263567329150152458808871289891782863460770987434176854239149625253085226470130638858776027416274282993782817740372898361823619750845925139774021587386969872299034430857079649026070828072636648398016793535591342982053742376052358559476460127660766815926549245820668842419499913184340189509501106877370105433847884466549135045241660012731388711516941815942416116947134590119441381755702415892190177155992725036937852833884251844661573172888875712848649335712135282324481874808731550591466366809671006586167453760530944919489775169018612017296235751386687321009780808162314887147129779875343486601056503400354241930412637672444773628569383244061890465235814225133590423804239965396158975966100888524796335378924185426985064310875910838924665535239202391753104578734432695091096507843340152399605046564177442231513478223619746374471930217190343161816909316970438771469015565942096187901295724797431102745992824797134968664616621348607954509294669004331679224946459943712432469788899429579037577410554309407492801651215557110570556708433132089521263475968001894421300147145100629598649701462429457842195340394410865847293712565122504429626144003606381004562018530458605917025606845207823145320521379662046438161701454680414512515928946952870773898358339368903394007886899070278304116441205590326247199081557278569868630786014490163168886122614092196740013809802514610581752166734198225182493890287889191014493178821604893534927670471706928313320862232318508072644477908633303130512453881992083097437631861181705659310648936989693350525030863967551816363322983083372865085196071415286782300840511124552292713155115608628536233079600637871421558573181190138952756735772316808976452477520797855363783173421563725221364133546247923576580895375165188418851997774124707141507092223913810383981771095837934238363537815536129597140046823248919093917720594173893148195021205727167827055948525710224050212644455173538660833552804518669224055251596980894059560223455193118221034510135658174809128499380186167004565541660241784145252369481664001381916627113989476804745451982115921558541106795832837451688849855275997121657737541340716803707481164649401528505316059391521655759467320460518151064862917429398576784218113900045268410292486728189273833844076205532030565477005028301801418811801691834268086826546343782868454797970365739974719215193450697720625768768341515536887069295239657219315443466952895080439195567362908692591381822276561822661419774849130870468517722021372373998518798868463307346141488024115713479243553724806047058492771379982523808195214268305898626726318475779836969270865796090175609435284412577138162765579942860317946728891782734962196156211782682830008885095042678851442958021091722013446776026852452436197919836915924611230445078366547420501881060785297072640193416252236521358565011116410904335646198898568991501721540540074906939736252472130114250224422878900523429417534246596332355314557533527469535168741334588228527936276201622631710933099397922198632397407229185281434820473069097133836337805224756150932840594709350688312262474954527942277654717495453102820727700418731949295942063858227659243991122856332681457512158059671929111132792563663669843752532219857153022107560873540111256033490987544068221727656968220967236974768342771463866464225939007126791087484224121576948182531671937850964178533321420080454141087268808187519597009726251561724391081493141362849254081868217860906037523782882835589267709686677411072436190713590404114460778240636000282715415750401318639772779428246542474834205144342036540721022900718745748324588871793790748192518159742896572038141162457751396598889604667491468852974938376297108393983962116211672447508548561427489440179201072057375991236846206069231457367140199744658660119772562248479565128803803913934931645186438399296768456257536832592287754379489969041338617071984674492222416381125400820200518343129612307780690580194494243795017590667891099269664343235801486659722923797000018587502368711966878204406645673934311652824256035816040600658021200266241455211585571907393579760544172016309661510132842392316668379836305534308767475682141499524428638420084653199268882175184024000405528784121381063956167897169104772241968892817175449938677963610212463951940115696412975999719801728383151122590907313211908354042987987888821298494337247089008764014891051962700246350204876744722396246109761218537604643471231174337993662411087178472260522253550088311532607104747442013996057635330459759618563560574085812483597860442071066785149841516255645023705719586777197238259129406072961441084961860749763408626990138432192376058746763160283577237371690824592874539352202987091565072468944807466366549731705543653438488361319380416100045956412921268715226082125149368582916986317415152350887366539552034394166116869431235518275408359940679217168538210564626957796699473550496798726183211244225145567532563830372622683241532512159818598638081303041736569690764498610920899173599059565959285469792521580565064625803096211320867707449181260685663372158587870763015708637815730986971788094139132250697002822194938544340686461908308317317047139812820110665232873890954143852971946407534331052854454785569945427567879906142092849879727359105982040956658049885108007062829640146276803032045459156121183788618306881836567407951506935432662169243012480070326576596041210804538280343304935301135006668526829846436044144225206199402651243588436582312714450004467204571765889994977015987948572988956745102796261099572661593969049645733804004041978706781098559423510636062038103468785067925432879883109275142034895228749748846018784570254218282947316015009860346260770415244979645271365692275807311261430611436773173184063912378652755421546404022071152230447027188155676051793628584361788085859969107070035668317149648165245483808534458349442891017116199885159999589009294939478944969569921837884648246084747082902452638459221926328490822153662418144728012634695756557291356882854457079880882680459096999714994518873255418406124644891162643049169137204321332855993663180808410438332020506726748016904607510192264900679497125132229623516789639698221806135500699628145112802919067287856993044245902193583152069542869599178724043987743772800955028180496487300324514502263965969835476616715437954845613741634095133783531559952914499581587925710352767773993895746862003728867371855631431483638284924273189484167524115618703667543229616476262078094754874804367138251703507741376622127093476338792563656745378102121221415075240765180535817742764803221032188784052894171717549761081234647972625801962780924576770309068717592187263533823525100716631134408963757147192999607414814467025538700412868898933761431746165775754427477414217614495654462237508920195268855692483906290933406652404138452070363539186060850331968756467943073111392398414708913536624745773633616825892671159570739990722204447183183269176233282615077005042076003505019776548582011607539732096666788667255122574014316919153775113241936058696736111562390009619756477502889698980057717993849902699257062013872894928374909430254443600621466628267403185653230372064338780236401942660266723726482089278894348875599779136476040712703469168111379041427697130566268569138852376262709697425197341186122322609486253273151913467699765561034263691529626326430175258725556771698199621403758702070870560228142859364962332715083190392902774375024203472615564518333445471332194524548391458952373571804512675240823498659101710502798222773994075076384256709267188224068652908763498057239966836992790978231983555090962956567376580806352959257073923761596145090460161386674494113372116009007750842399218193122620136030957065286680413366331143674835753342767348017189244806778518378012537495893699788987167535588146255320697835643131178737403409106010851094616970397880815964569905979660649605236335252651603463999002885505094160866051599101739231899830636723544584007163004557800953767886007077351104744532836676072848069311898254911483190879012608218393218832807355565679543047183961582254743807627518369746495720739709851995771367114047694078413975058110998419987672307343164712418373430422735501067375666844768220632385565294485733453766504738123708688196314902615002827093840676780221500809171696195050641333620554952071006095154305900946220390240809490140587355266607848071749576269631104666250996245061329661888048041716623419858028843434968955483779952029328610556997412451428844647317239990253197298033481665707386681414067444133707351357913427642038592297492790684909247443047390423656327061463040671680419349378226703880021068457637633481861030823939079192301554886391712040165768131703784618260523847559393464498956072974706863359644466252202838543832339118700284764655350224194567337107908460626293980918332976350965510248133325969061125563726391755394960509360772654773981932998933790686055188094620400590764910624810177260061924779888985722621080045030652525117009189172957701466887850186464732052229626903111227669257770235356491084651270136005479947608784384065476152529591345895539293663157186256159222536954670526791463648925060576179741835393075282638091872146962129768737021659357422673891086828097913324095206167312749674391184145493084239952130418219071527427354691918549499240384059262342197620095177794854442400723399011459146784212165997624754583421263652803018652743508523409470658266194863959226926127058746601298023980912240828574911772602476446666453511310172568970829627996115918987816358903058125476417470559138695897862522650759566982191433348374893298171259005807746203846476776744345710096834815493172784470335389144162786265658542879955418642750619747030267324748630477008907762435859242561251100751600857604551112635443319494276830197511895721502390832987194397363471273207892508853755435224318803340080928659535884860142442623088803108497056017602705254625465963642394128445558713329703064426099063698950911724229135327871534791622484350339598053048544779995439948523070634212238604245463214785653194094678582439717503400791649826093374791651938829759412592360963364773402203297543014033526689193442691844128268985620532895696811385782892640750415223983352567382716860746085337557530222867378186614504026596160854245886301082151988724870562098974084236817625760339743848862528882203540717260518071314105353255986622905117003846166278376314166102704549978191760312670910594271866916713114003818284762901983922342026445418672072430935243713647260145348766191701869726410711877206535746479792855132473268528631023511584310903779992631047966395285973016512268420794136412962816954757007454413322905284161050683118051719726170499605975039360490544024967927738570329972219186029801716883343922951857777893836381105321104288766600965558022712161766786035246963043964142293087351137746718618424662443609925659825374302230200449582897875103563385098784000010916615294097189610801196569356280554977355288124404916948530909605036001144475581036165238868455652773020289679789706128593923969963748240136405238283924532138934715200689564230618744708009939072749701805395237327769647326580482084505787837730129417305709175234204293534962773697850553806769639769497379354267094530544178985043323624666226201470289606279505729680149245217839806274963922080590351296931121076715972041503876607241906479080776185750398910674288291432148374307592582940495140803265764161821008108324024410727966719195711000887781214649327316653775236462864760507600396448182618136098623350148444574196368948096950993701744648048457664766789055795684573414037698998682990853723310391347430752518726077268097685697922219615479934788462686427332123301002844359881652794833899766875755629423080852759880115627634690608732399818572833671399160158934904944758717444083128963281129099517861076717873453301724805756341972501884908862473104477567050606957196888526132858347617475217970820898528857927844165623334428819092748972919588980083283634578706843979734950261556730102654587649507867623751816733733954883369782761702323067099520547271446758719483142844502752942692235723260444150370015898412884923145819652228136651122750013384578438775978580358401143056605621213292651508662385202421988740645180958084282633716282461487567256924844507963375744084776696843742769914708736625743515433412644076088878807769909697505743533099132203142161291469644368634749879460630254405739156789705047221291864307805691025824288630012884797279706285541142468265482915431995953180135961187754523932714026822324502275000537952647017004248956916595186701160831658330259130412711369488353871916462962726589459557141623522105512723608818845437497771611381504649705991735987994616636962243900307812915091376210872635279315573266000785783940120666894652882269337175419846136639832427551438694211493206963042755259748385399911331546946676782607593468230469121272305956080665936042263612524967143571363805976444866094938756129741810156559429423383972953179270756787493451738409458541687711314368342396093073129044344550966756263471079309395178926507734551462017719790188791662992182841219649027532038964060237631361748249003353452787980402255786165062660130578995882056544019260711486188352458747282214064537077154268135455492246657169928908152110020631011612901511679853537603437626678673413311445376746650503423476696512247086807097317836105249954633607267691802382867302671296886158493456568191263825703600102055610333336901422226268223473326810984659094936799408770768208256181134536479395206706016085569622001681052411228699823057759375872416702673059304311232174730253223590143495478910122169485170704667354633253320734419033560420443711016418564601992635712490405514914977121102673098374414437007189936216374369084474482240272514474507231690821407471396307217269178483550144337584570156834543163714309901219416687452310237398641933425105692580432110419480619870497677762405412094787234619932187460095148836601321054494429983742155211954633245670300007419767619586761591656799576222535783117271001929336865691484938671420354702631766840744531602096872854274266328206903857354333799188212295176200272587970541652557770244051957135591975586722171697210074523723187349808984490117833255852134057745993636663074603278224724363132845800531132295157071420350791415063580884639781106051117270960039878033008371364245868883663232871414671758056009011886059455002351793855519578804679544751441611508033148033125737674546130616806064732653288353504543016803095152247987252738947820180207071120955394769195417615013344131830497553695781790851387178337261420984112295223661344521503701442983325564142337809933581992932709159079715108684236465339237543175695486444300712185508197658569870327229776625816661724276414322448657997865516044141551515395559005395903734135782849074429150218787020904478465256876475166533894738076483154306137630427835810019799388080795728348109694051111807121542259678259807564633385832370036411772505569959457498689944150540763353713541090260599301874077533879206037964196698335055442028092611975568677319138304980497913369669672174903492658620059464773434611914263982115480201244176861881247846034582775144225936310290891272487434632388267583675894172364089350244478202854955419488671545611011193493693830394604035944694570399245129903007889896338658184493650889953985379317422087340453153805397204622020402298471250897692830963308381549483203282585736559952134952006451176214414728101078084767254757186447063263008067096399008912240919053263510534699424788224634118651818148722569232496041275060961336666671490507592966961685373680849141561925647883490639625980470772207358371791860090666988338932066627689650270579919669783917049636815751338017351832601097587633917802317408379669068790047381621711099290215119080732574958911369284242240884611263945648263685068401278006843020502452759772681849335976409187535674339621492001997296503230333101380427161611714907531108368818873328311230665673624602080420208920618949106250573112005666401217962334147300951632721335089246992055136233419914900023809070801135175400768379154960748313455994603796175750339143798258020570888119225467042075244774264345489424553158305960641807968653295824503667323843817994732781398248337731217714078880802122395999878835419033961752982721005410897648788294088081639968659239564651747005952549952045644407536606386402216468517427218444654093510101612218007901081948236099296926521050297693748725274536537467192874714824137568986921088252291735221944864736534151800018727518504159189671590290275961543386900246082167086788075153149770295923424050430812065890800734235798624585163953752645993396439406113893813030696544397011039285949188542155438986535654823960943289515504333289422246414902757896197908094371686212944432974832673535839179149041708575033248979027982376047830236091441830028418126966270178355919605717594125114237476450376279449189043755946599679708293926344892752242586724022165653173248744293684502462080902357515337513976583127266499715218361906127299718151895628257720255687844555408424638113281215898767018680786979209638937614705276244231439470275520041779476204772901995953807326894735750703212902552617825088353507093695001134367307527515360422233456174569860542807127605596993853385969268247602064873870196591394493889271393133944696329499366447502895869567969531385732472410364046257664152637338587718113189125918375736255161699071330301104697706033502837795354286436665095168128433727126347876016444190162385874070638426245408265044982969080588286772573594398805854730439079924644531900273428762320812969523602413693929670411059853179314049691962668232998914183142745590994683916774353716062589785223501469189902985548597317070254991272012075208254750434809181079515934213248592827515873379478475415001334700293127366578135232276326850144131386430963432168597302104969348390824404873783440427420978322298605211860243480122701556893822891709206688734241614097744537812935421868462334359702959126935143684451310647484298568586381965300702917223003916006244788331599683261448201801352341577302244380814931017506994440654406553222151664995171116960149350662139857106357868571503550343897046807329269870223833402808117884495586687318248792176292927377664768279079016842964011447888516185404146200798546139419490494810216917497687674718553237230932826251590400432142397322013839108362673978041434834051785329141567965596146851523661458658655507276203045802022015133387915383851487674865649173929271784179998180557487503736620527299249132703169325607064553799088283030685063971834201345291992072580480114127096597337699512736615863728045538506936373119477065093445215719967993072112758613126095676110364532803293068922010091900740094598214633381063062073294189769986761380934690220643947020092348946265475380374508803233432187840859213560234353811686715864294933178653154297684304027591217568697551977031213047409521925892608530415975317643178519299275201189843934778108777624997427149266619452749902198959115011361925167692172014623711846863803825144602756932719298423029596872176663089994544692156631593262425891325593425757217094404676714039183161172254667088657665415993204250144630452248555969732354500732018202213516517726917580018474800330124365764185154438139740146032161166599039270859088808625236680554963081329692983380048157606744315919594314064884726262641769775007082937990194575336846846310634396535110201051082986476016238854821351219495932970663746269837771440251205007131645771772315459761057104555805827086870007813952069480354806321023121977335027828168074914916372666409232907047161457364442930655754115101987272708150020402465754158071457648902719491049645115207881446296154168864635694777974323596151985635658704971240597992713270911833980468648742080251857491224203689495137272909449147164129602427077448522171096198726273333693877394118708088194219586985668032192456520541194132123063010560168603398666044279289635196829057577394694988831168494838451608182412575601438473405970449662713857602087311762584883248220719048671143231044313743294509427611951146975876375250520181773748882003801673115286243839983455593920125414742940681166734249926381296536437060000512965102426032541170906688182394406096024654560400397953458455759421478487792434512655824606921485132149047323466463310264327898970934497939140176705512573349936363467809244844432142294168461267023655033327302410743984821179924394552880245694421738954566239789819777397414797933601488815085273422477086081727914380939450371096506494877686844471385239009391754728241702616927040537066442924350449564211665577898979861276145921159526405278565484331221604444921610626092959300009553154284775342559404893179903185608182177590756755007564809991256149983623708554074181779227060026372807632183258724754636098644811199222423092087841236323980520178691275065311740967456149685720227228770491827493789736908065007146585085222143352520060096907478788151362377585644689217208520365888780712244891587579221398965561730081017234588602462847179837544597499057049819302434349506725844507467788289676245981623490033247478999650484139581974415058537571434669972935166506792434877353405578355607481936762584186575685185591995869711461894676755747011467630053879206328486447233826546337933643573433221553211227961975682152264657566691474937480049922269139980048668595061883416792256884388966091656306382709199744900241787233446185569076109046727366812308155315520760183694728215811177495092299539470133962314454063808525535466115986212720624693032679218962804117404966195014970038850184270000897755005427712309419768175028976761714625344948787382067317942089756551243959855751221683975938549525728456087705756952986848724013333292234480010590148474626853402479932523024416365743002630521826877638860924818448235974190522394388940183452670978850304056899305761098034889790287439878800007474141574289625579641484473006723022892770729070106718266478720449844587907749064217023655256274654747814495462523264631815929076954898374786626043361362539338510425706513336952055504016243348517216945853210472520256128719089196437724856182484794023539102285220979316804283054233414437358796010134875598064740610751421439930260561368543641731932050897961823073738831747720183651777054174106970617950918117744091623067432804683936314442636951911616952037931540288833351707329554324479483037850920300384856512809774849598618311720557915703912758732423558732503740442889604117792728221202867667207036699863296397949557699950318590754201410966932746188689540608913945515571491231604184256765654625914499951796096227361662053252858417803896222685656615077961818490737697621001921314303959329872910902700816676373345274056929210685346974540433877811979095889945171255675955223615075713821426265271733823292715781197566001215335529866432190131113924145573778366499906371425559469308594315352451184134466510387757639390338988386092191636173874163736172665834828530033484795135563044481870076517139302999122494524061088866549986428178308963620080424774265413684553709260508160148232003545832222326501727606323877794708779840057898843487481722905432580410219501367645242197703435711220084288845991534420562660072052990535226023063703735356074383721182822553263885395479038612138406901423417951850192119043590616115298451211816028942134819390499082517414600153771932706040620759860625709641951004689369049033412831916366181626726928474066159722305913606177575159070290313459637124736074677751147197168701175843997614016817239837437604709178531584913706993925969894285284513936810157827277060464747247525269455011516610328238089338560357468129669079562923345048402420757632630342117828751976961520216017659215624333311834944543869128298500081006923025400101744020413630777841637627856159253564980682649974666420754446789545286532449045804332843670008820443537546985331329227332387567350772289012114014055576725063072960286876036976911032135529732780798494025492318696833950835560317221313938360987297742206087002354133853998691887533319374570413826412517636980378736502511392399122127353479657474982674608427088598428970701150768809216472329230090538419005700784089701892759590292514223119491190266642538976612318143531699413707538182039656696563520135591602097883368084094957575702819368606726075793635254034555941361028512661946491654774077453704874182139143638188930665251457760770785360507382617077139070989853147836339276398300390284150239657613511866517697074020352937364383370348645322679146463105254874549851773534072850007350054398950054459933264775809465024645810330352491957574699513168817104366980393424523383255770512701801127558842876734828642463092730154980460179801353298248377876119159622017845311688897167485221856411727648004222575185505420851557046969346022303930613137254511660563953171996979230646654280763982710241585446464851996017682784011386023917502477313115860348967062960704194510263548978788944184776266714011416190868475486560252535726633876204191317420586219309685819387723619921491075286006100150884554894109348079503390086516222093647512078338617076686527642471544873828097133496988915736212359256344471350802096319987585070921271369959121366476331627104788626857381538631450691547424437557649830423421027190524628232842467003602764240303326220189614883000368352123685818470598258901627902903929920694462089631543128666813575934309831108198787348839555515729274325689519269285609839507258564726668485463014804629908084683203290625057962867847762450709448311415666064516948689804584234008301537279670399948422282244268998601452724983690161225135987594357150496739770828695732079661019008655470628309976207427065193127526800928390690721786872293300681852781114890108179139360275768821623320154622207522555201129686004996703039964069109315869212790072405596612120018083286549873780365960345414861601404465095704292543462332137501814415956217069163132873993727257091250034385260130359430575381454353174655323770417355872944255243565706504120812110082276560194903293695720723907426285059775284332347367853589674300080716196459507806485275840190774595699497280084813192011608366618463696970837435433999440131740977674821886540199605436479127393395824828328870445909521212564333865305309041628580801879048004891889100584498965703724929425605040090232713787843792058160034690926029572214656910466459983791769974943807671634655305839662058034006183208574475415386286381220551955916958515619433095692809529481627570838705131960726413166145633367410672893431388727542436108354753437745638757562280810738394689412252274015193316645304994787938814906914178624022011367997492224405822359156363511621796971806179269693768136174741474457263126854589651798676683194238341079431034803550641640036778824441947513414478165551855071064129666945861609634238806049388393998741909101882512372271447217870123202989090771067559266911401259945990619083903523225815637768445423756674256884223865163089268599106372810471850518956178817228821092985707307620359132589131997469994080571780154027647693965801244337795443784326794271278962454445554275583352151275349092695046913126093244993585401034840351061696218108405887520216771652484144924056437224375422326883283884197430861592007769765646438980507154584378312346747847865888708680141597867254245070115998642027457341356492371482007416149188026445929947245032204006710128806815054909477408820556249939035368226741741842441394761377162685499339449849612722067301450947509614353453732684929992788870880786306424926552570840332237032530924231824208072157959707956329699823632195442249923106132452020114071478692548769678036941406913716985887565171520079038588681206221467768613735892849882608709311732161967041407465713048696683027217569221285417444775746072653402694581263781680468050745697012397637293298415513742491732641127360124033172598565171179985055630181875834588199053503267343262739117356677213444896540542251014001811066854696093204302654496347516434967311834185682864129511574180142129692304385080551533502893571140961079434494811002421935684245708900377269689245419082954146193527540367750890766393269023456624053504198884391603731153977682847997083009864382421638209624110928416190521609967735822467450030301249124542304798388720637052256171464165027226115337901434979633180016012781880434583315757400547161887082184884588874776211372967783372294996664075735113695534489451468578438175710726259893628269659455146807984618849301682817111110773751370762716960037156975325633788176311145374793237548065298206060723792944111572142284583166167593141857668360779319240309338242564884668266410781664658644157107970148396076376979822857021148498141107037337194036131285828060213446515740332727767897247033440144773027277046648224334242617135067183363697172759094275585823512166075504027002850111111663199836252618777948514455901515511896523362571683983387468689451096094966560639055779841179019436695922743762276281780485953042433500110694710017451038779246158157061256920289132969036534037253076058043975485075526266210101457959342418291062857108910878897934163525927377672127785746603103822879269162439295414339192386281392193857940272799227937985534213878708239686156406763264317827211911195264129655291558030611969284286380891930169607272485555655929215277898347718954835567618190545838029751392078863040298244824052626566721630947002563832380797000637413360362948593004595408985388682165663579291206142506077222250559588396575221983754725214857957390073224591091580680963074582475135879241525353273312313363194898488130575187260357832978650103076386015109988389871937868663712585460982459772380707615078470442962679106818511843277013609989361848337723419026157565645017297445632182693508905016623917059513461143468518357460183993201705335359320950435317982424784631976750294813860490805259796877227380400599964835795794812987704603366950206643588938401689563871192303704579170459883010557829139644871947134451945568039258654313308385497097363542255602716911903911973806564796736499539654940325495820683109671191467596336486947587924953112960281179280067438501885084185331253766361428704746804634984680465001893251549958980080199241160555062171349376184562732887917163515526008298957208593414081591253506267031372258291793439252682044772649896222037678198759611732675373060648726939295628037196924739434043549124232944914874552559387870574135253034902637807463360057979483066398729994017256113270091453265200929328288470446251913086598000529178411727509854699200875097308598568405032503275167548962419768884931549956850759314552118869152160331782434678896975690771396467200674726592002113696387909499179352801869434702884275490660442629625339706493349301698936239962359339333763489012315885424977300266711967134212939916466652100941093684403974940675875457450752209978178806950248121040160414845557594125975911967104372203753394560317218373656276591735674291096767577026586474319835097855659913068516950597541059586618099526282207423200965053958258808679319740840737653623036143208833061588147753677815518082526662537449692738821136271386731561414325193281516150539372738827557183064761404369797739062162218444606682206166492423087240340672891093803181522825881217049314220751723625064711858987338473034546492891747792861607396193954270966776341838677641691902665288914956304138092662938178932444780093652820121675210530210254193616263597468646762421781084275878058750769072799143963076095533068665451277393066070654326066292971388702491177401040771474752679902643656659631226811347538918282453225946358743786310254263806221702623740821734126864463988126229832016201424802053240676271578029499489648727140993607540445204869485499692828851063957933316140642620462101226732788316166266324490309262823657303577488649495770444976585261656573623588099597365795303025737641209745600302572861156013204513266398037775807582263928798494252075920749785838990977124930404050779182273037195622858553005635604118118998340462386543532941168863801046809801131320399635268896223463609467931278239331815231267023351268351991706975085573158664366751494804241553847496373655701088073235543709475109416574718434231305823673979692977199423120757272684554665308792835563546494670743100399493906764384070876037039766764252871895640292777083347989610271763914606191058252296702708216445656480992213791381748550580524203653120077576760920266158572703533512397320556992086365391689713284055454821516478805190541590897625092984661884691259816110977153746735537003464136198156032071915362591297650952688583667299320464483159681053613318738449729674136568455989220628438167077875812236802263290363573341933277486879956170478119776293220985270571304395859683172648236363082450386268666472386212956482783674343218629953064195244856016724832744990889479809530048120411227589475123132364815043166662050015635970940443279086228745765980001968701650950686910360288161866576231932708128742944503922693524859731592833184037609793712642140007714829829428956561860550434265069268822438296082588713278852541105981874044805728294277817723800416682685832366973378508915173824115896816882799093890405369221457954723921986836680956268206291732480519165904207525189533437864482631403023480482240698651181295898151450411441184287706186860106223857941546748307344427134214588568252507138722173169191099041239057966695008344718543522355142738295643235615276771755862478886819780393030048036477455976125465846363512250156910133933908825351383782608599648570008361858561440651896285601764263517725238063516320791690558450570690794353223618507153172542973834501945312845029504384049257551588168815504600873265848678282676695037869930203862323510897642959125316768461303955553495610877347296428445183255195272037802070680446677178063246227065458288218058627180412488970160420091179976526612700448523976828243763488784360592485866235980996986585259641591477901827929088577445211571161111705486681475897176722947005494348417018583723091523635645577905354372038390491362827808925878029669782200743610649384435640827150078712612683527671068529174824744704509979411721247684880521651805252325913189193007095005721425517380595537902420081453162464914795177878695142458054655595316929973140135086547307310507149635267465237255805864521598092053871346270419667233895078726975077958878134162848435455868887921776831934971114599347636504004478024453691491497648278087739357541462599597017734568598956488475690705765985351993963180425504316790495637070403013604144749432610143626489312535780689411972554475430324543583982307459505259475078940811358777119870885831237248473968481560155319160798770479975858956753607407756102820037359975237421762288363752001423484547722266399601101230129450835065083958766097528742379026690547739587611251599774229710973726575737641816237793731618164479121753585888346381805426799588740296242159322381293146895232663380777243587899877756532635079693722591521116161558928497135150333525169999642830366636130222810747496598464012184395322020159512280889827510642223539261518889336024294644318840458816680398708047798011900551159128236691490775402242031212190551130840468843780738710474871183875302978147439110826788253217082138591331747237913252195826940748610155541697545270614367937443259628597111962835727684401766938483083777993390059597554642716244555740410625375442867247141480816308253758682638973413381567467306781646704629985536135874371411787967117386540535792738142618235864251562160926715608609266119656542276848020546552355727766091218893368116075619371421371422905974950911008156626090727944932764149052188620775316323987267605347237752210540485665033539759395741866073610070424978353488687346694968618692442878234429149389621774513763528247997873938490753500655302542411603429178224881372784815077460175475359398607151387740206376654920028287914035630634998526145071102785760255995028184063789036566243551931771618594406471515302859211075627656585945201750230676338980938449101177145429078405964825949222151366641695041404889564650718171170642964881335668954632759813590232629858247061999145571069542734696667679779370358444729574882959271138228031318376014034042804904539149581342447070720106811358579644165379642198707137499694184978650702607770503236844087190877242058750102304289988816629520395410801484537107619270562907070293895063918085214985740406358551989485277436329389744694256802784516454611904640937625252592537550210892091477455387407068765293482824581918072091466912636367475523211730060227066991037407510804435971301023919634254886087578773462884941398921879313335242147597917399735003082059789741586305320389173028274123877932861889850930035273107167338444385038555623801071317628619073721501684394532370003124047599437087913463125434163500280480854216393625601952210731949187676040571696587212280075701176449743935449667932474051593840703514251396306396534708104480317273148282497341338221191250650853036356300134364169878095418148940822879961851986596499866919685707621071441910074507607710297348310423717148990233385556685718672269566341589490089252890023854331894705932563808499745644030424072539894674144195760813515184260824548766203727234251494172724837299737251005441507253268734077299204457372380354227577978663617954961302541346839680207276202551325313128540160410494343623537468422495217361717583170812415013963010915040360856258365234348167574253977962329153689911060733577335906923178309553007564592240590225723658189521960088278686649756890298109661059007109418781035552810382425949567070668476579965708008043288067780806843911458269272821146565714902479187724369047957628162427038609350735240067762118088658417555422868747513961085563110390085273673650394522076096532815234475506996815809717770787050013889780943377319615652431644639821349667271324822756049215281285488172152504696881019396213458398173400302098638985644861917080750924092786745406287116030971899028449371348054075011633645142998186532950190938219656137803717518214540978017055651609270964311325317412611724381491331995546483421613096020537184482469782508665448643895024195323324853112377460619603272032699591204420252418561667577613379248319150841854628638062233557711413975104676733628026461472775210671390843523105422459861475853343655837093397070135994026390266292953402275062312869387932847482949939152721860868369415834707830882166075017026181659193241142104318485538415973611595656738898997336454088390920409057076766129336051704463615103954215471588105291390304450973212581382051812989276720653740123169621128534864295985634256066453252813173819373795698635846142194540064784641571775545577912757466892134761747316258183987202323564209606277058020573132519169025502570823972123274161127512925678664631806405394566365124521273037292049348678661787622095845872379215187761304641447000764417688993389560582807594105112489612669133550900623907743545162077435169761070368663786088939665667014367192268760072034922314721275290494580682139895179191374706861280060116702680543036185929378202290875276205103177406721933264632188551563449847585832498355316488037814262333549160655597150027952835069731862026474450417419171755512872797509488819641260213439651809883535518441467678810500573127647368654071906141207415273350733167149254589639393613254451091850457961104089455670555968975734987066867574767286539173771746007267172111325599249185012875004193705318823648481538161416825638146113868988044942694377818513500845509723619861920501677923047485986703034518225113516508633991131502712795203282937249956380056478050647155690622161695416183639302298054823833729843647236851958751345649690466773102877237061303815333034384944482879581255172701648413185165296700726745478069536811336995892217249506886910353830214533470886220255549596306971519072393430511886394305252665005475801939958685399560650015111380395143350705211729631469581087498581098173060372356121469964439163966310833553402989978204127429015473664676900816809618969577233970728673375237724083266479322749464086122435871491377211254273751382705409803946763098125546109451493089469549859847815651181988206323082670450226621696577533838471852424755140968325679367310175908135056748737431249219140282460387656108101473594600984757379603601248611800121662898873150733073068055433975489429598035590689412983870573184516114056556724258234150617617490125964272264118567584929110798554377484832013817302381176586973837886020945750730505701724977985936447939687703100892663938124422979412180671048845902900500931210937232136027479923052315747625787354356636841688439456371433606118638244187196612607932060182704659858710463248296346016421742400267352378278388946772700743666667754503152904147309729210676084184860956893931531079840835948638937093744474987108659009881995385422057592946260677710310602449841364757814165023263461472459549476383853000325984542285245099402407119348162787256267148644317282324872739448518133460889879060631011578564657034473271882055888329109638956946697296772352158872605805580291980180131393644900428587999514760339662506852128667630672585827565162120569443378852008172980983362069048021555185272079591474346297983846366794434719572263441887144204912613195731359225759785068810811447733443666287315818133227885971157543416450654095855361673097537832016026600766754871866775078001697967445290819308766808662297586809286280963559041900501858938703628097910897771612527760190606759087545315299078905045563899575473934716406855490817813806266750354622069743646152441054956067506787815113982929940906199805220168969553038841721000753096832540013138548808124450212248504623087490180481695158118459322753578956252766633884676140788538891035646873139726262645670110743825610866802532178371457159472008170997730631694164553118779263910402100493772628701758981280425461643803429435406851057112791183487731730858282122709795367494317543755767674040707676588841721511925984726663997197105629990594705748144450167210141822165809914757280625399289067802557279627532778501421428575112114867985919943164638279702427240259112817264652420619990801219347339700152309767446769673075661292916363031497478013948584346558019580533805891984684328057361364120925745298065961249402646659537614584286677814494580093744758333821840557245721753978762551911783881497802584404141005696748310668564204638841853583943172903347369840134477373869799707962437816688553175052814405093755091404032253962721642415979835489921258347062488932466288842213563167270455241116496494575775590808160256599518854628594871918733263435520128484241032870853675522837573450909749612074569736960373542863760941268546880363221383915066229225684032866397345674285624258087554220658911170276888699099328706781604471752270589515130844168931875473148032574399798311513820935110629900107169537689247377517547312991345272623202650374088710173559825127861976590067950141435310678556795731256450033524330697265181215482194353059090521830782192681889276701188464179136682451547283963050372725996770085087447201840917092195131337959174370075833367624765667146746699331706238176443373812320280213462700912167199533959584078230067079950913745389554116087461000675256636792957342687977564960195298240265259610050608313502712939712204674002628198995991405192655903063759534562547250170317669066093730432251702866329683469120351712753448369015307152059699847399993576388586023681902369904363005378094894200971998627067299304540170835077776697548447892689073763526725015132056744443123517393993995231484542880181026615732325077476991193747407872465852070836240237474762354075534909203921860676888620712000110479292215401840890312245510498785338096311311590351004020567378628459464535057706060280601508499455973817027489069293343856673429568895900860227209482005752790457239876502663176308286908220891060271464857433751371240515260817374631930806310105007184005717962803957367560939232609522041079790506522561250620019627135963132301600464907747040526345265734780833751789840654525852531242723660982234897838875321901763671403362505056084432808612187780192152320446487659090404695077195479308739095983390057164934920390241491326788578228562530570289891297429066806150234271163221676638881470370851250289557030352743649275358827084732200480345363757691029381896546574836798730673252266783613116013587093796635745731853541065599858374636219242445476051073206939941886291186415113817250054158698593732163887123446444271626779568323962226714323543807143660700733053179097778456119991818114189385359992139538088474615977455429231486977412793117495684544629114241919975930662522178396446676118928600929124485743586149793177568118476246177646710817169100473230099795661355242261465071352291449712598541010305829131300234763161652719120887944157913971834623392339132217068546807554068233189611488997334161185126217395268070037900165162653268002007191433836337599960108456794053969875080898395138334122631223859968439446509793779085572828910108430712362900409033003116111788757515244093322887159664946625477144154808173106176144472389577812686058031007333769606171950542371855194049753531585695929639580916103617904025723542048066880279482907366070504571271602705748258544287094321259771866924332863576802933530099885992097110562947843702208096995785054214863329730464994738826886321243511834771655476577373883756396580151137728797833242657905886978152119035614804455895480448921699163650998799983284134226680213838308199995449374986062205781842089487365738620011294555588370353981488952512248866304801639126921460573481037717669015089865733294290413814420296183163790506135396196898954029952670258389826685354290701767333701059829123396844301518934008862659262926265684538947262539664256927277348526509622887634563928887371776006502304933006069639802818451049707509480418104630810537136319352247061229871618035298656034366118279148236788410548669262320712656370929334791626235040363409091468539836438800881674324434357217632967781263670454365830815117297411862288009325844400381457367992449227234824286379330636555000153595725571157373404671998007925719176902813408099262761200659369294036859160488549766134901683790179036107043172647765087765756767600397185728434913741211511145777247443005681788727286803064254945356870045862478588719382185437466902112982454794231208097731338171036133955308695981065880308305025805153615764014833167870935544931274643478778202663969437694584213532512768008724225725423546274407607255270723381370923294558917205341837687990089611922966664897225914867841009880832781477368342235207650743685070533705887289224246975452144348602723550221254829969321609672929294495615823901627866310691459505747630546678399208683752866501827339963824303418874169431329062206890839646815408860602444947709484499100624740489315976393791582992050355645712324365967140752887560598983193706111748270857936510841027553401332781075834051759225007328590019643779434447789798146091083318211432930101989237500435329215259796320230277644668257737367853184869098373531165939957041564663111712524242555355400381562886526398055713658544262220010043774311347306708638416087210540927060536074647327038500730927232216385876665058603374842861597885635719801947619562572200065079095336918599529401015812773671324819380703567227166283370020855214334518755460439237032107518858168938728150700726853575202773027228318611230214277789921341904240980137439774751404660260307840878649443068912010133127015853546764230527904457436694711257528150417383837538260029012160660746819847618230398554236330744019089345031443268651672520007498530076017311483906387120248807400459679303250013118377844888716966767645784115105114745939640059932887878340773614424464666968901154016681672970113680681017879205358713438616292317442586330029016666034689649765135815134601199364415782061256395350882091664204692690677474227808335268040836788754280541320051681480755569654068235610681724230909255465377926181809990950925941982081428739263237021845969445218868776871722050337763228093168351068769120688215617173545188243367455228954482094141319327062817029163716703084222550250602232743846943238065647221818810458312921684858294250247013841577534725244328110957753293766156260881084954697432106375461634083245879343784187998947558488126954142173829913224228033123582438314360695349423224471438680276639993373666528579430055780218556516950032961624801331302798439088536967605774972934443444637144894158556810678077273130757353040640736194850258193816235257226323805091089484501013984269044584780025908771534411165528944980409587198426139076450189538262755682509224518137275485029790744042158240068605053307517504910000734493196328439903710550231939804312362935072462865988475915719375412700949470673416434878494189225644918352587862307051841165882091707325547348959377020714345447656870537101278167354368660144329773580394356143842799253651017818315141714336255006151924073751429586938258962016007803003822037829893513059816467293875557708032627361053595668505592759380331829854173605138865991000899674819729197874405886287226160455186109942626612906375959472453000650667587609150800552864829902887011399415711150098886159349218918851583365339140519355950615834743435793247088737591931316352444360002454400925177222243304076281798313096592514268229444560818411807974743229539570127847222956360191319933032132273539475259243891816132660716835429940841804426517367800512900272706164437098442884870448371896806944013021665793187045305560988460080935876055174767929224598649402972231281401098944998952421368161201754878606975464264911542118866541667466260413875193665873448875156969671758708891605138223481748866441454725052594634589720318461996827378765126857813113971921120051946515624008642027411390657111734258389477525272906441530112450639786012900963386906919001774458555071224562625507141400919532862915179511460622360343621594450924541094477785450687443870737771530061907360225984902592975212670673472964994844810468224876760063486882057438369391442586809954563521523687140323763004110921220385967312021040707693102456217052284073909457750807559774338413286939791231080488334743328031269065951036012285297930988566118791943138238209731841608650396592849209636505252003657741519880750264885897050867177254085524675479828727834008607703842690613367596355858875860557604354532143233365761312991917525754714121019342085569569304780996401758132348482948759611006455902234939312191519338608572507065153563574509034960205722041673422368310698706660269590549978820522964351165784755451354368533828803690478484384979169470264370290693231875834054612417575424602911600971264429034728744237307309123518046280493513818731409639092364963513722420579245991489449636858170935189703173873990030075210146992855257819931315375685695009092668987435577151751360410371532514470601318035658546478041238435489686542987745872950348063543391985390034446829875075493410692207909093918896691750514210404003692675280306813934938472330672613341898490387192347976430328974728029146304550690056424615948637061548102895852494264929472966757869259693955736936900456994802163858022683865048558595792683004822008208532444021532967624323673141558764383654906007356840837915904590610762116217602267143884231539843375573912447596996327257698940175631613378996204051580014982217784288791063833595817287224311244286378940068213895966603004774598488452633571992507079552273152569354374239121617454093476520602425142322428016138094805618348124740068978239775442629061719802542746042022474282082014227737423661876503574337196297255606383393319428733276656450421599430967317279904642256229282962893299703976379187198824549791531841240348367902564406930216394964499682124797953907449258697878115628563918730509950977639378355764720166970299153204530900397238991595120556451830659685715166418957019880874539175122181774406829048961850865636465030739049883089145410724781110722495588466834359333984236651388723124159932833118232310593657480441091084339489701130876748952433463021734127610893225082963286112026470989103587832066211889437848282979252800709371221895400451888491378004238635802573297809720429760440086321711240387694588696232989797190327997229383138392363062741049253591803846295621605856127907378055323544589028128381503104094502310917193518609501448374960657489439930690633611037239683848959673103687424826942339041998981136203397003685889212461282047729510158184805061178477945668243243314466150965413323032029004188023207797749097386945279603874273991537602741124579678103673978603251543764194431739403648820227978244933685039443529272251828767080497145896908050721560614005261863377941599278538542037016328333770289220186473639845298721057933420613625881783576492085069631991281072439282510632635915469381629323706187686562644614728599244965345712353924956261738458407571407676047407982166712369976086077385613577449157628559680289757312487446948260436894242405319820549181168906610143856576997129446804502816003359187229471233718852337543082082014721750468980837489254615180368054622327369879905261942847272370046405895350654806448824035210023638604937812386542548500675858391570661542417621442833685697949147878335613887683966949538340899466357404352905080976582090444879939104291072675952602144244401927303761880394888058994978085703200113005400879800378817775063625981118775353777983599718609376885344665059272756622330236109793892607197548064018879630346038387582138403831930335533588464674290872512814824721115699656293961472016479945520252832082658919371649986477273284861798532316682933551660250610461285942485760799247688876059831489592184726938349593756030684124976495712058998800193236771810865753056550390001702396071496739361197736551974016202674579462892930186684909925796918202163356231944712142987807580391259296820032942598695181805113976239070845980170138921486941350877869779321171429379768881704350943603387189759528494229478090656555975589701934186764166958161332371180413503556470799612257720300771733474206262274153306108649811779723959551168946489250999367979779361880209019991494118841612432071045634453082595323422172701617191064934945190556179868838167363674575265038054709878676972407385558102749938184459510107485739891805816820357240957936566330437937823206884407896459937253814701725179563759624712795963191628259069180181203086457711860888753164553515431240852878398362515062104092349774907630876893940339511291877646551674072681251094378099265946739868227069061083747866870612388519395034404137400058141548487350626896318265753984433769408235363372574265670072054649321978346688420438689245977601668422783138839117729123233649924385302698568607343021837007444800594769951664382428702232878653345309313816845534158417302853349257856579574182839917007395363187333786194572055863769045630181794308115650270326250584447130040724996929139423620299997992113394537229319001303608818397497897125700502510860907050596998510810724379731668773925551870811821583628984863558588673947791691356809106600336122106002976721741281982309503427797309621901220205195907871899986942995228494673531842263979057096193173317559096195994902078749709751490954710101736681187437203536338512561602538354447630316859953716457597039239998242049841495159924189576514321904150886196492903120832329873500783787591522522041984590411876125672935681863889386241717061360888970036317890963837988532768261097367200539668699996971737219924091191346848925146246847432816747483030690582699710497591211304336022089163969161773144895625508554861691949071935005189164429412345143970126887670356453980878978594683260646707838509786115657773718010208847176450234690640532471553150024636848101850649866092073592127218042046599747261847460929625338848077238832983039068895976295027952384698259875231891592456770961321574051462715030525960883870213813619443391302707659281938755281194223611643687745094419930015369598321803876782919900499587664162117854927777756732873386157003001068362047547566272262326191058379026798306578259068445038158255137239487203879947805606391203306322246240583268222760773014193344343021616110857562347584439780489224637055201546570790253840863594012308981181911900845884963855912040196873466038547406129844556453329660918671603573557002612574241641280306381034597696818144857598009837626500419121435282010067275136128765061575197391328287335549863996683148848410115481588135006563763577300448634591614335457712091652651201601822507558732555939947379796136022652954982733616183056527085304147843143396856729437142917521801585403502926969805327192742254294949314483719544691760190089467796626130377162147173594194660971066455323523650407371645869146273865051465500088651717070595391383523948967337170556400306822862619861087000870910544050247629457310949458176989835341919928417537736224862275474326873055039113263665239936780548441503579331176572605113748094334452981762381253453788618230197709563458445792677613074432095435040660573139959645571850754244227972349460120032015797437416839635119970399803677136526374924594002524923466977675656914695392076542507117322903738377911187770726811842453029273855330102228782868535712820009672934387290563248116198627817609278474343315255804772658657118190527695334531082768455666342629380739685049523042837734669274947316498532527454369067072505242005510195907299797502320075757824744700436471637533304585107410032654212819793655167931418333652871057207486385473789968875948715487466305383592839459586695842387535251937148085344904660212786633613968446484293209673773979090758495767557645027014698200926304537308662501143216938252985477349986873204153886013938223234347725480222182095282135406615910912123088670116213079262506073800804350465255602214143861072503390737404243523859867911669354421524036777544680912134833466525305313840789030613591893209580990180016126358029559398519670455711063911195679289442356974482609884265301252624218451523230778361464907879657041211790529010814595064590549094370102328386887894859100534941189019723101073764631555342063523005986130349526443106686333107292916168740410604745153540676874944965831650264902182916230158360105952266028836597141310079282074715917434387962445678672637028383418224921891448674810417298669716734108706517610188832366220311499237151669564045173469021660282732191074357454811917239118240022222115742931112243449155129492113568970759071515402643175752965427637648688423905959740782645516218753276723794868141739608794462563125756182217705685870095305603801376481210935835354275978245845261488387541299986991057384406490312166094107095322469714884950936896740247047638208560086798440512436974682129522439966707877782507632852672715700211686342982833259021669685858375425924840925538504376458286532859091279609387098615435816577556818833443234734561812848678555574210061225526019768691661183305935977626069407932436029016922066570680995784318947591603405878876764031075058261174805399812445880325795236987013288280457007993504824188248558566270642393484651294812965536043264775852043549445432426391918909580388673371337348524722698338493097460287985209892495973106369311319206050006635661474357551381184985195462543714363940163922268541710022379331890315965352764405587972608461734920751566879364334210459072500394097415611656195401067274147803704252002675231311787199049019669883648120688905551481088433912029543877144350551627631843420981890473029236057171018117753328175988558667403938618292367260127514708527129528570478043796808314614881347857804156884258332093708813026029938748453534299128594591470439930949207001466851427317502583923500165469266575467147702170834365068038067906273860601418826826725837118876171874967860382042378400703719931203227673323802844980264612123208125375823210832453579360960714817742728133798164598571925456953646847765681525109094501630307556781412377027520253250124812512349735622819006441242231338157283709795588760815334469208079316871488810647284266434635351915137211283155783080722969677437104435219954172246143711917900066665594650387169794936761212665367489258444125422155138563803451066721240339163562807465764527223155808142415918626633933399864069315174721126001592702369767934255315329960681305261405771024454764495488831731400027114813786715936239048969973374888814702204500092930863979438293332229101912095589197575488322300185778616902402911870029657743510004792966779992831194120115409560431462307807243767860316571305200813448402304835923835375321273437580666175420436554293529682227648960692765920836318367358072940742097389692249431196352230707048440779092738240155246420163351467718316760397362086963032704690278290885796697231847435084960764534856656159923209015251403634194829346120986453637781266039796887351246029109611186010280146213830980326709351193891555423570071377604006232453747366079800704665506791696478596360000669751323841140637017526627902151272516947629033703079427483467054889770485405919391520104336492177802342112355082645872399373623894599741620975646263986112582136008377522560140152453529588075828609024000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
20000! 1819206320230345134827641756866458766071609901478752648918062218634569461038557534453836095827758724739177502384189912041671245383926576865723475464524930275709204625357875789525900491823414542718036070392521085047283383729296861580052404638841199526622379791066223341463393474395925629787482113163418647665455586660436184087223951946276615548561632208981651545091872218436294406051877306392783358445931186417148398260080400146928105895643738692767105374763186090336511780868599512519843617384918221869858019078196339128759665295841157777813491489409939230578103105905988720691493952696699343574983659137962578903705716902337854828253406978492916531166704020223408974723378025728021785188391510797310297013143732956206337141728256129448819212285111707757412048942243223685263626707514121305282315820321283299281396342128857577713702823248976788453610611086876406235690279656009538364835651790933084337403846779999492765339631654736288935199660225186364164501830300710635452054198301551129698382228651679052521947578326174498818999103078230900998230255192521668153855237082223393396256518927523897560451367991707122492644125621656977754935015185136223424536236082049708267282209694029115324122700295906687521246304592598016350798150157118643939826662111851567075749760180575150378322257651547386370349935021174326742470282351069392212973957360132570647293569359766996208379937673704269535226075880983640605703266078224982138479572920849716512893209445040690064801276425917752458927101033924446315450771486685532642303913788919310844577084283964175498228765263621608440412853633906910171930463610385645820744909239703240366376240637621838055888668116641394549104308779104564432699648946388702235680707365441002347274462483335180196181280724089960671217804504348683038846159078256259880584813344270221148603590042452309662537212614046244138953519229573869893074525383446893912315063797938571499477769107817419304469554712634747306148472385039297629612717548806551563829550630930946675684401814618441321646683269427721993158279615035881182670318979008283335789144271032083423544703635466138794697651350314402685288508420397019834284422305272278969418263077061533996322663729398803682706995509520217322001025554892495358317996848086340064596083569840851277518587523966062477539941480837360544238167856816863891124880147978903148708881439895001073586452888924224570307962298699959732760545361441853376861865311472943334632700497459546524530674227010913885146992911476511469328116322844277291429242580226789688280447607592763850985911959762352034962843633682628761799072096874350710765501344796950186605278475260199773684637260318219984313964504098197236766254561576963352225113113860686582041968943358438445817147699481383223388403108694275803764969856335026035998141763771955021534739448155221081816843367878112690394417684364934554237024383467932868994288070739501959598859489422664768319867794244200146319821081274095297964073583557774908763829967444472509287511266025989760063372754036414647780905929771518145840711438775868344972951118873043755134229014440942305929794132943247059183655383860957005976931552955009910617146270900308131292961987706628737539292294513164726272782261649467434486469164184438193102743685176271303080345578147577244822679153608466185148549403170961726229949693155419870367496622944764818038547513177344308839281179313697155652585056983870954326955150272519431702859141648709273119898627462220512226122429308587858249872807205877995641040609646207689348811486627927797149208946180865427363397867065322679887603422518891527755773857337546824775880433525219896277405006722197251134708090440207476590657537722377855025749581125718480792279949990827699398031516660523819630141728849936307718563001020925185801549447529442386753823216643573095907613055140378684121732460851105776453171910915179146879088014743892901557531200026943010780316277121008043268677823177040792493695317178975986609446642073278632102387785193987468472023053569759865392650586235399377255429013141572538378477860078167724394075772574884198675569155221364304721221050265975303104224165477579039179173571096121008398270145669162626875616473358695080183346883622204141103292978624716922383737357829571225194683967490073341622886685418101459192339544211735840172983757718064889007150719331720466640794043048090974943968803649059474968696631935068157436827860838210546123803921506308623361485630469301945487629899739863616549219334994650673550401330151345075665824799994090331936161424877736905043478277717763961497418976202234057616643395598594859473644564953985771620620875545811197801332399244406489063667172132950923874823469967017152578700547993819001041019927889934645252696959839498892202157013705439003350869012841853660334910263512681071257967010460722000465012359520949867280788523637538360908419328210010257605009232300314209577481960992245202867834086028794952868894583400329819783860250441186417541301552881660008680164170950654872791036638446267146773864094451526966332781250141076583444686499433878558018508160604659864075870776909871021229329263538739876718139370016325847398153054561048484763662082654256001200191082613314126038405677762180256725913236219133377507849413721136794741341001534448183309998018715217297881192841912343748670416058241007870678829528482082691122121330712603685821451480221716895318913916202070682419066983900093073086105685322752234759208892423037447915366738976625544089991660964802472361299583287556901526925348721489285931471753590624435823333022537333267963484434134541673989275291046046424782456020187061958717359710213138644204255929484953264789836125656588739758462829812398837202656287595313781131879979400748699779848035035756812980550952397267497904091524828453555589761023887780032139231088497638208764454554433739653605128277824759693719131098124401555934839785787355191033260265943249095282688827636768908819228932665848253354873717500605878412941188537735312514532963900011840221152263049331990362877166364653037991595352861605659774721503482980027689759326229113848950704934520858446425457193454912145363731266721830424433307742075634652721403711162820396238086355160999355618297521289683553771098957696054216889231326934398910226399241785513310860392057647431701947586236354120816584713491942420949564507182024228072027781730507302930117288326738834923052062426377507852420063728820824909125128152264056399383638182576043502233606516831151065668154643896157732561699801416334125007894034611132445538783921186310538638056879951957370230679730454657229846699230040375609587961440796961286950959860365880249622780705715936042983947277962221961292142180211474695218886969112740759327095542805933340674367023630714819186724092174244157929754525159284243966971843642845783953262449989577763155532711768957317631155798292758081115385574493755074486806292167778180758892355433772883494432652681241638095932653545969272292715884721877223094012622290594450583370628695901332937631867986526065616821140496431535144699403370426021757606829546778216452799702542055038988543839005070435529991812858331677744861985963978407500500276635454918291912895782573218669479896619185731053284124083386551756322564558935262035749574917467544014169279363254641891612321062839763730439048454337953490603090034012435782274912013076332269011719025585995708049245709585180161207568839191808590558566008812626393997961967970510567941594854303996306388652876357534633743491184872355865536759120818981291459710177206508248010358067786198617593593452966045129459460942912600450461043147853506788047163425673589425978580875454449321824404839840943289606418291749851556631737784089646786571196224798974938343633419890493699580957611482768392333266715544350530071870411992877005603207723033264737115843248831622367211956133949350265577199677377527656613297632470633133312913134193330584870460779466844582653273225601999387218698584109416979943723102519262274473775669366320971340118833232615660604561294263739222991626884502832399151669581880313249913832191633577328475643106623136626949755611211959024334425260500745987773662887056055248910295832298881355080656168511488729515338144490921248091258025659678098849983305587280625208533887511105737196438266956487359916870932656568298200240796819097129279489829759755442028992072247367086960165545726936301033082069952991123770942764449599461467977126904030266360082979720712223984077667259688280232866771642650969326327994141066410580843128955964680932434037255516248049922845632407645359758012564762587467687435039205482953017271428750529494627304690447968276109715459285231847646297767936509038838133060858300366128938076905669562978172275087713108126774903309591384979082410937679284333445425433786461570806152042853851597283129872231039238649572129377314446606754207604684111732941269804621441022445075290528773881602657022005012573065889697166205060666103808528455298773147134332056497659719195904875301288687580612794307690136324715676543438776399909576076118381158077141018434553356803610365131382470643795659893897982233054027973252857735150989715272693398055467556132869821389154666109525585905351088020956588996127847061039732504967831372994441646179862193957923753978900509348581196275158717134574563299329747349488140210883303761302233712298954266177681915059255397499263310084978202005677122285166547650260714062565299545181904583395623332360010662355449285047220339919237929005483300264328852793314965767223217531808882356858547360454428255823007486579046973545368237064879219425113808647514279310279001951226988293288319415039304086811898197145886376201620707458201828995479202132335958393356949043546013627353984735250816971311237391569558996050479527549133414606961762772963996912088095503651518431209221134227466284098948321651447145834498187675351721523458075560493822946667882516554370468398657015577872918831176343472019802549361140343865060014338774854251438332634954449353092030375750442205120262639582866742701026264666374139225995887092349954381526496144480115009338457333258435908351446960696523361477115361684418690751925223339481380070653233654337047142411613189823412567411474931232284888666959519792327777827465717271290261089392950902170243336490802743752465282222557028216111861024868004740918439682785177466490897096908009219316889447161503317288175563730351421229103443322341173108826763696119488041566315788554832086207122329117328890371406399709654272522367439309143152609424723949948269099288079305141429593086868989129247976753478368656712660640830751342388642404253958629721071655851138129114767497254400933310725635243824187406379772750928760247724383222155709558673562500405464009702630000517152254994653113961575478867222127138465425517270855566122965079642563333511102205134571474841429860123073286871253377684688879251074362844869930053559056082334554078359842584995765236108097092799340727187751634569960583565821918163340867776711345506835147629239639876137404834963434258309510041886085841807031376709869649018681347841349948459384004081975340452938356293965206661182295112734254838843059641967847544916154220858602419811035522235178904566874864010473172750902990483064932368865511652129553886898890620745683136967786211786929896087904759494452048542893191779025975483129219877390756875075825219362910073295570139954015558239378711991047218586773942818105659158459747092958594165401401183290846810674185089614036947715670506743269128048656131009367822786743363878482850788103588540763157041693164996494387026172362408510762693867393093237410924043880429735456979341548864194491676320916157781892680672525576012129908366471598304136931095592748218174749063788808160173249573440396142927500082552708582931718917413334408048955602523617434320432634268145906161606642874225531966037502806159529530215480220245634115994787692904956681208552193880840494141718503148852009043970620226367909085378940196079676208968803571453660180186327779030792340279542341804234216002405741380905463966124975047359421490539286788689754457598698618054950348735591644776504332171093623081337803259521220730692024509354395145114616503929413765007708079686628845872724765437882904719472597772102397661435355265433072392597803274392284518550132545220957223358869428156272346664111287834274155493106751427050464939948758534633340294427763997499140583394506000560717303429628668031054174871153211805405160137720264055344632239282228870044101832520133431037002350794039779908241126875877169249588958770297503590201599890509161369032939302397382532507926625592425809464556126123616165546435270086360011888749661204931192358122603454482736529842652292666391787562919612811814353006624419912010845910384398315643033659569502958486237531484817555418929185536066953317116313990514915052597408779915794854712389100976543400101165239929165303578059270647148250563927861098430975674767169078538968943650242044165163251823675281959824057290931375968421595609465322411264821422305095198115563670427577394179259873432875331690917308194347360621836672207551192536402226262291556380963565451694131627947595254281285507374593971164774833813397283663812164126515210568393841451137852100664963803169144952643782258579220615559636777004148325989351178969093451558638402380976845907052983196143805624702962302538887412699893428409186699261553455212459353778320825306450115943907508548678657137042397142024277889007431926192937997501975331176382929871139758333309361505400051062297127185725989396791343191240818627837028177268734825752347634957480901559397024449745919841688515996872216083964921586435123787798459483562450954068745750428578617743225606257514639804830820895821681245214221367591084257892685768860608439928771770732283473700297494002467723168798245295210332139739406042934154993754781155421665168155364253003032633224898244023708116465002754266214424552184231286920764299812721212978764766200038037861537682633562561393952546035626643119459173456032232531000960425539642742601797469821406570542415685233219349925735119706551632761189576095567473191249739472149423469811938749842602911899216940424406090878870447721842153261435770637160371382082860157511645244303970638650956793450867158332461591631124290307205146721218129259858391941081135112869317989071312848205514736442373877976255916782674749967634948824824882170347280333071035822162138768583351953552200167027627154326714484530368330355923262944067725691045533238166478508174650459248879225774766037238711886204121982602079615508494139815707353332770408729330295386481561721228779170619387943441604080362967537807579205972596930839081919271274196329288236262024434362665043200867209345263546478008722342250003673588666588176177214684321542616533169823534734452992073409772455636079761060476744498048152138269281924420003659256641267283190443054731667489504873224322780925162131734345836391445932372005060924173080094554731482826078271184248594070279690645499623997455977409044183182134260244671743857234132600871590081363336203315462425237473691535928330033570277904031684379920710269104410929483277000668333909314832736752121670520388848751224583470367254117829787778024703644550903560468514668787955255636081481239509531589253248507983470681100309899330930037514000193159328273694291054627444922120722748001617619576668541701247274607203011508105822279022581877127607582733156388164183327173142198331685126722744851523626456305255548222884296349830429541694614145897501428056190553116183368862032851438740092671074547673546184015910077970517145646516161321311164765667854487108951168626633939595027074713572982242412704106018342439568090295518079385232402382691722726847387962189965517280110494836033528206797794082530974778154667420366462286483442844705862082964630723953855608905490739260072416885964860042685890177406496971279086288485310673653310832724610584402122246093033699789595993464550287723208502362437653610318119779920960458407774044871535753341340962352482023881175954039428859907929757728987420840616043760880338884487435619604389065854269669049681498335439199068741461838912266379165112378346474755624962043750595393302652623852970674556413876524986514499425214952492674652586334927606281446019274260401753809438329981976395650796310687913019353915741864087399337271986837760981421128133763961802589032087703958208181984664556497251185263005797456266041289034518439235525169659797207215573123048470174691346755378507897053220857755158575865689630534730674765623203017465902116763509226362350460280093294676079004331935298875371048904492108672019545121012450404546740373837682515058991177183240080739066304823786732619326709360309251344796974740105582581195478448434184558902922250401118767771590368108276523547759215128220723303864308963116810576347816938491528166414578163457414655277892161127961229250482312903681738768733415243425153882530779864420039050299028332300768024835209819825789683431158648253466466248757225606485004574213952597084397305572676875531331044371162497268970947709430726314370227194092721559080759336531369809690818566097975307802534321637866264936443060234779812783064817770629587540502973699507141879655715487180700445065551137221919612176156389669980406673422892404603726015430197028620532470738700033337238782393537741994293719735861672508202885427825668684150329217690502541250084881044540216469715594552282374384316548796499049436145649127439059297830810495627525308865581025134236563272900374564058893522678258802347791246095293603343389640688769879231221964634108730184215614500527765054992545447275689697903378235373227459484979192109009764484179966660255116702286263775566709724133520165355768740485754398245209844522327303065286344341206736721888446406831415885857457566206364947101875087189496136353325709121005362829621814464015088700928789402512896076093120731052031633745559568132507109999365394244890584626273684883122439374678014481626886506247250680146086785305576049689505840133163896730233242753388007953644340655888545657208951875354389309943295373069372122576115333224044732363662295436626526554870290042039093568312962506334092212189182890598378239813217568456840376710621158181762085051039903311456788183538262240185254176740867185156269161302858922771331449397842694824271636891784326607250704789414696637603920279126888527253106127495601986812450138989440637137793008158029226802765553495456616536544760367130907439190089660969469895386491183225737400267918428203365933865133874473038788434472088121582376181602112002946144006168832727951064014589051588908821016339956176133065914815650868660362991364811533934601492919575573146803131584170636583435293551154194927484458305516573306550619650239570880039607848724381878270909258758351509345484023610307928153897773075445332426043650814697017701880853533956202199602089777934746627724664841516716462375987542154266823482626847889501485730920880894902852893489248813859893023660175943803927680901655241100975613546193471522608250419498438789689852363483180906129328196123071841755542390739830186524571471540585317491178305182769546017787559646057704107673342817921958009845481049408036526452240155025994178204118980690211351869028032434887217340921312228223091481685973069791214173911186281058372730871899855387413549895030243081503422817649903234007156710963748396138601546836748090183307428433260568966312049323009694116925868380897638684187049470592255713632372932142342798466281149974575488545608408202352010844850593230790832159435238151508531503418360661764048477197890147783079834963995443623237330400655463709530124317582608499707156429625680140850542595315998071943369468016099558354413273531848821507973560322077163954184189166229630116714756847211297580561372804301232032412069354113769278995371530097285276923420000533976440343452694953400356726194078911019690594067274695855943812882048492637314105981126845479762429966755102966359207526786137891410620297672505428439353350120709779976398725093621946844279039998296566199104512609974566277580054805345966083812445589396441245247656634968977321210395979463007743170277237254276680972923902291637824582795394981484215314718992898194612220361076512169312310948739305083114041129715537472490437234784153815913296024584389695977448187738717801344639642667263340252623606195350227112855311256815973139559522389380551080929130433546900372619682432047876779431481587832876633769594654806868694548464318114126905890736484811550211684838221501054635922355068308169187174234482642406509696808753466679360407730173047398616752354976287494990994243508381461224483568658744807103062777250725623547811899194791110427719997341243158110412392044980866879564146898501415108682884328204616480109493785222827477664080952191381146145019383828245725818878064002361755488748791459118703154992350985577792852325350323512267658085723916399755577004032448929586817822689987478612836984325693941574961246484579360120731555477862629550129578129172524957061972135097342561480250022218566695085387472808920892476586666784737497813397664596323378010739889782324797464894335491825232074433194495490486312246462961326246181266537984807263589140351143665467936240944786200899909932630854856064401400361833362475023325968111889823550632106262686311041397455287064842183654903081461194539066453561860368766721554333571360422476729801705649394021888696418357809476539702155039465811728167630161693859646301784401963143475174636863179753330750520439784195945017095734263625180726063703877146649986642241631247376941685834544478706733361390863130246913243187846103414730587979866144873890062226456199941430697335889061492449788345262420354418300161439957638576766814704531247615596423295502265967342426359284008241399931539764999588337201225365827456629543301764056722730567890112546614376618827837618517633060994357776826855568183953734701326447510081401053774424198903581360444378231861184158379625367723007346129840397106470803100786466604561053979300860924812248353475749958057550807447683352146473710381542987435432042320006775470583519249129802759604279397149868608207272354862583213283814942513354405372210014340966330038537288932589306186072081792543883366747368347611334360078965309922465480630932860702862249665287558863189777355206614531572614155826416402642561299275610858671870507175728256436750389793160019610335503050367038037555438463289852196445538717246649195338957388647732646056977795997574255507003812579259409036970786297818421930322176115498523325598732195729998836145523742434086690563929097397919160826192608879687779516110627962788234173395476416588377599722247669809953928762017999642718207026455581569584239125585759554046250477501414700862855706079265410759063305348714275329053176275134377351225092820711132457600986010288441138292965556458370968812617197622380213227213002913297877659067043243936298710636045809339814882909023348173431212559439645429589520528938815124451750813875656035577971785963872813781798772605541101422279865836866307716577627038461313375585536196649209445256591730778574002433517557679829508886178203436394903001619016453692303098102599049629899557643630082517636790355029550501875414870856121306449291635391209715511457976373471523473324572869624495431759982540460196011667372350083631328455602121772615597162082360732611725900750647784632991810533619849817736270246665188359168523470897930272619357232371265954208660222015619155404734719764715443158281652301096201750705779846857363923172853956961032889897827769584943914820198213364216577633136210267158654824315926792982070149931803379074056311000610275378970252683166538736754807832515352338961643359471091368476040575778313460637019702977087153465405441995156481342656563570853339779475336645378848222034756164107830968161366405762197364065378288121372097848640684976731342408634081843815605207140783752591189637312267869251747860432062131716637969322703106717569262666119968403235328747049549503025492029121762193143907143240020404420074401613521457817589365098866336850912172966779544635026117497302425754322277955587631020532356211543590857122735065668740232083803551568931297172588110167685791251202904602673250882153015399915095357423973827583046324372744636219917471431505168907113638314023658372819533721732563253239893933322207800434873277447168980523674122830195071201591436077421406641637891865996420902520652359405557903000175155828271292391240333181712560352208660801544754126324523268869473317773714031549991849119615569595370198239322595199477106968413268694060538185494901784937605569361308712412078646017276506578134004399391356473650228053280371576727036875705204506817958220098713503630684612955275532499692643363729367751373484566394104358037857526553667212830259428295373088556220667756102923619404700295568776539270387405728225338706033301053931449406143768219036666119492000822247878034959973406762961666655732280198001646920999860833367717206062220906990613425980438907336535873035391937976450745154547548009787183189014305064611318101821752371699500067279602824390737711657662209791793631904191228848298252047371486564089981319657706154974528625332630303337065523234313689529178419174576121685142004133651775643844825102560764351309144194999789350431990469381765428430505854596034364130863835825744663891128445962513106858187498126247324927244207986544738761948366483235049912641295766261574494137891004356089858016335630249174456604336194294455286862830093409410443024738867796298986055894880070346290028698575192858067172109743590083303472275046045645671674342568832391250389022826412856235952262705081772689897141348994941528495441503879750673801201533543347941343127049963925909598967555020496020914436618360084138319295993259777386156904526667243985869541125113385809122271551463776309871824764929280469485108697619982618494012891219484720367500131792273401981523487205512314524482821043586545642881016148400747393543299281950286843435497824275467272685426200148791785411378965604149709842684469487705568681295885608735652122556037967247968040214563747066775952072843408865735234008728565970832131769821638488291960746312039072028617734116633346319922135613102904669282116391713750326528301668418199598571214937903610315154010176110037377778640217336119849252705037004518904450472944899978863606373333182020958698232652966096571590277105277405805053930943505321330301195212634573445519654517492227803672685754005171692719402586726223740945564795239398810768999245820317787672269363212551673788477321608676194768890197515151332627684923899711278466939399126677223544400747238762766152534872199540551962067278717034536826185560487655236418460906826374395902349336507767658019211772182050897325774829560934471765673496623788929372128244214354043762800935738224541841148098580689375303166714215949809916015115444842091282691818163407602336427681270646941115443269716583447750630416276913761455318160048960048036036083855448438966552541281603527372847980244405506343646355067895589520244001894941085149873948168197205992629982355200302115148081353110293922193145711809519265644486711960058989025568294298431099513087358456200757894862395240329280401654544713865870298101753253477365076845944735258339093646312493240901709269053922961581641080365227891356000098533003112168704162832093364727873519361057960447725005049071782924027336875389249668161027593064482707737521121174994709619978328388278938272911444141554733618341553192121821247654348757203176177930932496237442397690623966336376378039685032962164887057540053487440921187071074965177685471001210787311939944173964104757590438512679386704254685631963369465363426879786677470392855110786343168820485406640958820446766261953979816263077887984846981767498197455900079642684584513095030917346545227016275586654356651257848744094458433008456496922363226976635127934495813438085533854540085763927259572953658522760986345677232665151401900718091376596181732270160625677833194753440431147715132051624225170190102012662651252800794374962907147734886081952204596782935460927396751405133542407051260583569573333149129405567931290179534177392363804445650266618160402205695333890974678475717208557009541310476543523118356967579948334584847261613081875853206651853131143784340027435070841156806754837715502732530390398409444856375555845590564417949622215225420407565859850796647966897630190205194329031840637012126260545664499835964686172142773111582880222690895870200516611543845609579006070533990117813383909766130769370184153929461401088465764082094069991805314256845642699867164955116655172647602376142108818390215773278489089764804276218659556331673074995188389629704264449720321767786647094041604441673377305481374762043513882013565431735370054792795836039331292929773502521011292207887700416176408409292759613583390261428382000352754380394326961983483806828152047725277339655838649009454259166815498013399477024397289109966657867077337541880179194803680257658689791975318304211232783067029385827559938615314098824230513149370702769327109251008513134706330875468857856166275877501818106615336256793315867944737299996150452040942942112037167199518961137938393911312212495763331470958102562069621467148276306351850301779310957143542868879103919489510647688907386550146270501422207664076257506896317219309105145170620992684666286631236398034466171788433629313599342994630627552928028103521136360309412630222282521993321094478018999757579560514389502749481372747924937621400726874843160860704520826106972585688365157956850436088636565494834537404999252659828707460104983862677174575871568271321998492323782022734244962658861574818692283254537684665568848972510150887371237490652683977712041854994490772089593357119141698342279832001920990421125896488093959016125156611022421505112251203473774506739490838783494753261354210093806346317120837782795695927863213417654358440470589069717659296578804028781818518179176416113130158441148238834836018383705522970125937320100426203246048741834446403847101972574923605710527905890582273440529836574483322638624991256513174124812352074970150365349696648489520483264432334317006387753995085377988384856352007400223067762832403220657587068221673528997422915330473150856951829482520644009828780646793098065988872362631791966812197707486716893208583960890070880191452517000852003514507597083610588678873004727560708572184952468580628616643351894259085692038234656400852060884077614044610573050282332785017150626493099807188037019823964059016751216149098662408019317523108074194820705547693787902049426430446813490439169565786506136935282918756725069223947497803227554358078311418620950967938924435987469334162822369602675874445169819307828528004591363081420055215705060861327117174341245655920090647702253048877874186310009893887006991321886228212664045978289806907043877619535052540302449188768545096779243163944163483355463976929876130413132194346757013146640943614435679278442743296709121155319601151639201774194888117691551778276127269042678782128724976159083243530672447263260835675706439662141408073628846062538225595513396070741379068229598521872180795945051361581254791800213469047468780899997255802558064952562297105416095065700139593199611692944402192845229782838289460169818926705449661502836170439021688027656097901410599710556233293730648867632184452059431433464260568960588405897381675297546048874704187479659188816239017659332700634004799042116011643186902821210814666450711104340194674154628841156346950083155863362232809890361793824002486092666229391800697656995150902351346287788803118535495107178472844500441533114267967124374549392862635613401021033450109815384573271342386918176392105156108894751929058163547939602878054972825945887646617580037900927609085781193861132496064073218479078496578553541757480762762365282343277055296846084658585600779441486926710995309589446504074039577215816354435761230165392798700368364826950202914177285126454698832426247034211903429667753280068181036603125139623485235744490307551354944822694291281303296400488376839278815840198049281427638324066815638769441385625140989285964663795597988103719521778639169337280689582086707199628374058347944162696546007679264630523050817581130657456609838016563269025027529161839730109729978550352909827222518777622064893333175344382512904105791225638203805810914403800363231162347515277640100534425362005874885198563274635575000853287463576724527662658583346209088011702864578363416630279875527188005836866687323857901068663193265638346917403585895473682724543736161618739611310144292475553574007339545380696054960344424799623015194448326979431492800189945727577836323250304517427093247810203690792417397508826914439844930742787529428130431870065923458278435997189027983140369094767918811063844180043521192571498455514477888859154689896449977354948860966339620558386092696966579406724510283216639319560765618762029137818126885905764577533745950131952840139117079525519373953747014962082994171491613804029034151531610810482130479428444087858211471466823547122224357232394937497633053048486453585383892893637000718662349532910881180849407892959245445476418597637683545587607044071016493579281812796131500594572874179327404170464541463012457285379351284894727732377641978780933299461506251034740132690131237863446467941359013239639897801127586962980771121111780514565913079530234409979531168810949881476072495798251974115556517113900707330130015768963886427819649340155793808683699510358216516990526823342312725419331521997773563138604651694811623978447420851664882729903690654158623195110504769534474248534324056579144990930051775414629878895284518745356784135487122744260303829309281983031795363482733656342290667373582967516356962334729373791411842647729293011362927523498652500638438452165612462187159821437748714652784570368084810467301705838839839660335842402354058562049732229981633562735617745036901810088133819917356683793778921692114721098223083319875003744489182890685568341207748438859963703844812866529899083974745792276757929506931744160930269819976603220973841997446620446654661851287687637907543865518114803778778210559355074991488338580527173186572373862683892256045587255232219122623432296298216857463524499687358535055841223060741514712571044987994128099905052980539560111910131942211793793339110261048158246972770530952043556858051533780913161052971869784655033735381036776116362314921416090971143558606615972623621353926458498615669749271646729630173625585906854226720706812755226743707533577460646922226597778097518338422632051676651105514230691629815307639302810491714321476800534128983316743819819753213297962167907314041770048289533399114279163545157903895806878365916455506876507814131863966128705343138986470310056635843172098124557347282668457810379250877636302874322515685888984349117765550235314210754499679326584424920522288416142724881612256587986201861253621169535544017190037513198070956907170388969172340588630851752631401560390050858537490293867520715561851157668980918534081176480121527581370668648094294398841127582051280446927867663769600828748265866729828113875301645026120178384462024069765465502141546635338377378826677232765918906270983102405221395307414057035326247669725965217784577267722173707263111291290653201554209412950631220788488643971633061496007079613366457739273148394243429105421827288790848582820618366366255289916795287770635979215061926666892678393732647207197907949061444651436605622200520507732736239522922189888313812166763283506013179807134127832368187981532114476558532298913105938974843140833524761135855204722886237367505260834630093574152688318207128307638364946731748391094889982300226413024470280601765876996970566774339357182416964540498867350451432450049406746174366223229350900895349677548663180502248906019457666519360781664935730934331134730564944272687436172099548574811506135258744303710701527336731641519100692867213349660233968366123054160539545360923237607815621708758697604407880695904779005722895374871203208977398883466598209850355288313904975570904207587426129763737880380154319409049105830997103317602009066684795741478556417601838245959298836180260515763191353446333892067341389428181043442032203489255120343608625227745802237584172359121258582660362456528203260450044825220872364105281498081136022749622456545630479433453059877472990478481882673216837160004784868099202934963695971909488561099815680518674700097624197525182436867526119397160010672203706526392474059953167753059440187324043806560342844848305556536669101290316791134615688797199095501040094180542515558179118472038622063436141259361175622939482474935501212702500119718389494332322451688438363425295378326989181437954115400103551270362717929185448443207434365695925338833335519747449593932593597640301940976836220445277358413926178788072125931714485331614640023373928705252351214413172901555054330133409254794408849144851047718266342458527177573695224334684561737306438006282120749885241722333593714334269131351252721589752273473806223591510969626689457916108749024187227100012116162683798051385823175322101561575607893198985583034589678918373710807082088884566226920712867570275446989235210055183432215651354035879600292741086039528725876528474648794512704378636653827608252734074046120426334944035950978225046261472079496407873969269084748800357700782067227624364485272729561684951248271196623718568474976555215016755951539202282291345852624107059997622290808704246786335114392779261360256641430734970168913519401055797788274197221823665620583034124699519183944447974100088682274254098029313623270375449882874069364349429447138089578266799196735620076712576496774910549005777065173427736217729588446146997273888759399931634654320186039870884639706991968669741007838040059896734873336160104205607503329839300743460349831819957002240058536057377072810481039518548438314710445183127081938456623944898790542113228939669890328409959672135371942539205224408124629485365989546540891981626947507315584025674232608847637874378403127392004666690529590612935753794935286579979272824603006446790090048889063261267084987373322526194336760049749764448004618900890181129217731476188604072304298065025871968823229586975137128264818963598912545151610112218526026186568811289870259733765143967723220634481834989010661401299633496636195178017480287629195067875811398060598698998089714014267050429678197548060653436812691120696113619875871816407201834006678630404969636223377420518783729437253329540095879818022319594650269745128691052875544019770589831429392558755868399482047099909662318323555272611462064096049737613508614532526296076799182993960307724054462415305123467980316999045881110574674594533634781007666021223132015876246605488469225994355401097444421171800034435413318963878712854537529160159147089248379270567958494704326396370533264149785720786411398098406971101289132293675355044729537505040928376112266431029385277861253644387133004360009108370660655347134469630927785706978780450638073794476017792293688003824663345194701175285312673666688611863300540655424975785205961252844069399280167422829501953179476418327481236214479584153732479943078457086165822486572877243975466518095777939830784166559996432596851920543647205335961774312110531162057357642044272195435591513195263960110198675772988834356677751702095090212273572414168786093620831494082828828487472414478973130696874111737624209245849725173166992586655927111765957614096679946974210069896410150309296917803541376451075172206114967271920568460413770435586624025923196232601672774970949884685878881764484849140151457901077080831411883233351749506398185870048073068662498532547407326909994378489161339745215992191918913810687435599440483233228953331295365592056889670979841009973079290633674088414970939267338655765128572139008556452385838828737584577714963749354433077633097770950920144931572756699888911560506175018102959381837563857771398461994875680022860283609621170707355167336834049914542221325038988567419819897189736593602711534697370475519227153850466867052541697497693931431825093667997735560594546452691303255256983011372186490037698580956460112250389064789317695039444482253463288824888925311068210059127739025935340833257291938942164055384432908882475151571220450126192964304245228771520482169628923268564043975215596600978004021110054061655334177570135707085896559127733197422028035465780302923797347518066662597674949733123697952280679725786110790224821129331788989022492459642986696712561672645524348545910763529942814802480536588910676540524480766711651492559248162002621959889183898772162160685188593441291728634243521511387377709491251692322334785706809663358189183485427309512043768366387187157466065793613981268271718017672298315477301543766032264610400772829543647422046097013527885630390224801430171159492304780299905437252292017182195172446440802426882935404297085009283932349716711713980900557643899700800174161162924595380093879014383751960096828627141047590396070801972534280481656837915312641828534327653603494833477450899412004950374618225925268931068853978711035100271033601950149489012388046587273902122895817831483066800777078050913272677757385856954724093205612655998223589490135951051595057403466522516437605195272881663336678649398637381518412154476912990856396942464640002223062941960916663310359629380492922113001605457980181158458663938069478298009587326956141221099977902588511007117013414800448845281547929506392611005659497630373731745785493462624382691339755692305912312125281911828696034355034323448891632608536322866331907503103647014514115009870931208488674377088281109691861880440977455737315270959164398524824898361906525629463831764128121446784178756246838378682542051800461223409991709780507201447937473952043606146211908866681184200880119036221970127552624545631386884426055510827819354171442515641776260052161595693991887557204418742216748808473871129879713036418955043786740062989114273495743484578675854118349666981208944788222273627695252828359188864305975365195484838096391730682681773807412030051090831756448377169881597184275796168574687406389430218278677546127400697018851776965448000038502497247261669708559953037137453538132213439376743845591389993420099978214197934184759355745714759765370417678736670814376215347965303714634948974857220051334043051437386597660055321206136823464474402144654015030591125591314843160315727471448809551270247254213938248973008483530603567605492794285410041531790576884983078766461936091004626821060691473417196170992143504634976618091342230231601011863923867078443520785899863746293284486701931740657170441196334849109965837799572674167901390368974521137279618899742238757745365110415749759715636554828036121848524497076301880395147423700100854542284503330805328248039495447075327858104644620959168532126165380435828044172230897693916701504182282252080896159132781610222364767435118120704970029161077342076433651014357470063372443317365475763849276262118293656372765041735447566838843184210371527632912742645689052091147236654697914976521122409689821471638236479755797804749463094323992947218289359951789021415936346235589688608483214711101235096690824293530016232010908941824515919226450575217998507793419104390836831230256110196941560549691782281890257549749347993818278342019454172822708022528285286291047247267293427933998023093835304686985727511845562575657063664447423945562347403245204751238292273117443666318844940601097872642344464161007260993208637653912233468271869353548011579637305922599111288717182232868241531175758271378398201325389638117348348899955299103932395518132056713623075622053490765599210100437512540897377293115250756098353127816166629482949240934718276090431259181838473537574089630034927973320685662914262999962375618398723934019250478943310796024690222941857970172541309730957923650855282019108168878605375438670846273041184637268036262133783632631708553092060050076034036663315010460281784174384400240610590200137140325413663233689012373455688509308830380939229572266603216906876972406943769496874686381033331397239368059934117739576920554269596010588708319536538667729278197890457129209267405443032751272594914566043450249245132061151595404309962684810870495722587738202153510280363455730687133479780662561008520199368749273803203992606722172078397942422425071186369284927526834686023589408865669780736053774681562713930870665073614313464933825244327499336517579312674240824824407506117266531937540682923916842100082341484731290392099507193440175464004736162431205611095426073270025784711566710579203248912126051570110583827312073959836177795899739239263404871562879925401073519806698959581671064740672972994773796209404845154579809620698697732015910098038696866767575826982371643368772679461004014715939625086969605723626716041856805327967635581494688355010593980236904206634862965727820571847074537184232509100128642826079617005491018317092845185805697503643893877647350953026530329770266842012754750882053369471941143378182681673816346794348946758017234930728589402876714367031911875705206173421766860672110821860187688375386292599278786098803286128889722144163307471763155048543994039810428191054279300461704371968176797090435132790003360254878047197488504570631779777896971946796049191774151799394212420956109657856232593849401297825653253378430903433507941416905721803964263361856511380080128242144213413156103524462485113181776347378363541008261930243269696560002608127590470495501624590127605420681743494744923340212501166953464491362418467849901779219648129276690046376388413601722231003436272779689497122883889677795043606711901358235823217725469652122217614576809320226361394104971791051520762993502644596376195925832586683014035226849189006319142155332793642541547350185756015760317130975609600157298126305014016533388789341449340399390331804692977497510119620908980895680052428757793023383256118247749493656601239463899246672013517509361480089514996227760692827919097599121781981935532619507993756425806111405235873307884786938596111065203206743022215799122294833026569170103169386136152104918532338106444632831616837050334247317670444357735345684619016108673816686508381589796832625291049151427371083878867099123738416481981799232883695607371280918646234149795051942078199710740341968747015927788134246182908429446481332774275048389174989169767170521089547524114558220962568864473902707248771534750785831546800331211943430931545038652765994532798015135318161421563250789100545384149639779342812511297554248049882114207180945933204569318935598174503793768424773147471616839309825657230614800921000355230633688954549413574480540788144670143383554356799742084386885730223573929082695652533255000145619291647874450204388976393481802797633606289393465453615059209309168645613394703321638383003762184492275440913622331224129863053964624473692271643059391365776623467577615281688591369673263873451373717224393645047270463940156552721196614821193590050896812014792075863209486402483477403508494582289441645557176176639286907259601276107139218032357285405799370427706076601580551629526496043112321211717039992931497660025781663806112482727296460258040024664609700023805264710778565762250810905507621792286296332770250751837295528724825134647938352799803599561861849290431544493932197528102862809552387190705704196235195452222361489427940451172637295395479238383481281371625122017594483313480297387783147843629983359066954211056090155769165773265421430710228670431602237830197302117018142210355955798941464777089685467331927493612073532585841373913774459731097466993118227054167544237002077414241846234649974852372692509246335021119995017818657866469469143694715756330984106395441590396410421955057206266541686802614211636917721318709540853318891262750690367803766191938568016175937352802348571747798605092491938289269174965527763867663308839285601850877397698530130051193545916672107308196515509384552200992084889057945800220958193437894712628046323440953910024791258610875691220204164529389617534575557221299560037158270424054038784252803770847415750167302184407620296105421545228882524558877624847920551309552751270639996669105120096794306926245257537097925435443762185803907507766544057771986825630886256282426520884730445432583822246570576237893260654241498689959118130443504205195680212565955045282786173506496952412588313763575254364037277013830617394001540375096073710943795080453522206946787541210324286684925799341345883849212414475079698219185984714467765986525846236583324159340914361141524029184818282083426143640082651018347190735035972615197970241711057984579350848923961132230078362620347600161101933966445169263589486198605788258930920392601925536061407540296560365995436057898641876002517340230154861574089263286704271733203335067950376597023774586801836016977398359355330585452208568949340779341393726996953722515233972513550517610937807318270738638751932203688779318708628551012984056253037445496779481168813163008740680437394470017825579634763678721183056626949408513854851158095782313205676043649089886055866529694685515243456780212954639229765739958338381468735551318614172935822532838368645723170761284827944220507826165003426773642320286658116789141113785020002127796378841900998719886558094231698897663175121261662503447410281899198615306316347281062815567120076528236276109229868106508498054808127770741722131759863890978486753861569918869542519117077471419024924478534778459674915802570287525725412409093104120088172175405386531625020339117431923135011609871832554938729763403155145966299306805010838426558946279122403511994278971029232948111858290872451035688488072554354929222930584622796447878933234589134688530849308634929651449624335532970886439291431824188911645270045678933514656928212158214143683239115485582719624374507122857122005687194979081700417971760972029109148762162249748813400596927984552028827787920079517336745659148706031601272046247174641406499200394861955122153393871947240884434971645469531030064312245984249788911394980314088965348486325288059950599739904555383173179023954896792214968312544218731977005192525077252177467613917096479579898313793986759993980661820270160468314696528472482801898059961582527462485201816114041722510781171742369504095714417858166485634187978721584906087226537570922591466832777520322436658164954568038181681061808072599051437880722668836433029401414143377940833492122047469528132519777761777797659458042868650504686751432091701555431556266350838981337955245518079410316660670344181007903213500159190112290074581983809085937158244468691237676803918877183411505758209933394020862484937649001147176074500367055325932628455297524095316104511828776283101031393269860221344363190502798416251665605705919254392709293601607611683338560848840979179762961143517485050337491930274254556913839867019650147382590555968406143085031221826620983897323283687106152585770590021503084422642146771496723739741529655616239103992228725318014965607845919068382909050345474844876616937979359638964158155244863071081056836222874989984412842837661715667762904852153171771800002949971051343051801534642373389768892653358346061264234181351907596097544004223666636412458158060802870738959724125489470601131963428947135461103116508976173861137506495429457437021436765056530998712417140482555452297286502797735545399877982633643551877851903959518678366654086796701308919528143748640133222336271457805418437142050083866905500838688476404738415567541716883626221045316219700614857908620338154947041703889466004475562316056170196659122289175129851750010129031357116616396523027367068080625416073952601347122012945399186227352216671310531071337298356076534480475909948472552344319450574234219570723784680732027435797510740889049192977864050738194178180255340258973043371148206055564673589077196284267819504522864635708447517316875093005384009453776777078700570624801701232558094696173917814874683244947063900354963142046624961130724700554195592262265859181865354662124725357376938081593144113960364486814597256853882835027356328866023968926366352149124761562188686473732782286927533531674765980181671707214368981172938185191083338058893590586726372234550845277168100005252470434128516932507093050905962303538425186658889984414490211394097793596113916742011124473126935817245053176351391863969907919545441004103009507844625691428836550318255079908353011285415385440978534865380191812141139323596006050974782104996108621274119911431683571034721330384290449065022593162304348269059376914826728507475324231613663342454222917949092689248435433299226982352444345028452439486774925748042735813929066874620072497457043156296415228565409965982014364745305210904812657426221929288909948817524795898964587359785574386095767957929477097338359709298628774645773236517164862028963336797853684005341688686013695626121124977368011080723403249058268781116866527770081282676488905179736286338854428202859688003121959488440927813611532001845446128449516940793214735681747740906149922465593823972426292582073888524076611029226290184346926672348314335700195302701879574963488330704820998378841409837891058291896269283599935657732969203342347260068474031855594587363940913745308428713208638844977123198861913598449797744907706218141826023379503930445183580962636745496288774111683402799786022338495342617536436128969800411292386228774939936921471620739070176345544917004997044665896310923788364670897712872065634700036821175043327685328714185034424924375811169550706211675819474106938834494450200373835055283794037997574373384299390385485845548797885253117593785424211824341221590787766916609715952474638390905815287522921419222569158765453325983867470424278989752906829329221675018793493825791571994146721906868087116642452693937897705516451519350193074571756337920898743543126270097411127839503106889696342396655242969206146320137968164069451865853830260065793107674486032505871783062585938701093899774681552272170203065909748166507488851806653925745702625632067805615457290327624437536282154192721000248656016471188329161985693430271836286062013381654392241038151858722809973353310069164395417564898601079492129262486686412007385821513819902249461858188059023413260050297592911594261956536219686545088996062296920858706926967636532068122039898791567577216453698611003620814424556906240227466594964840868680931338329086540033889707208495049029966789784985531338088290901568904095700097342371510021605446593666255517485694179888185922718958012092725134183552657422747350226811405136411249144365852268831086719755593652482714214118483505499328748376212666385511644440359080014368919426576613465240567102898215555617572804104296570355407875872296206976725716654235389096349611911773754979372985870077092739357956596942903263714198738723648046473206315647673731154421394008032870472340044413218976502621554832175395949075436570608624012699446694004465954252979293816392406787495523136284805080944407261003669568237646347012466775220457514272873986207877834014748499034936674902527322298876027364025385859147068476231815779965383092911234030152188527413215037114601545321995279296499720084384076256185940813466627340003239020540107268525367050371140009053684961922770693809231876104213528200078286529244568241512400481626273450844509040729415618691636305399966445953899272391938051896462664798454128798682193495301904436533427763777782889667736443946606438399023763329502338533631488977668125931535801703293085998092108564057630798721321847290975272450745599744801273410251365053720871691826251725553215051222686214104410857940685195296707155338002459211040705522142720063771835198091638471104430272159868168969179256709566618863030518964884585540243888906247223396296610964893558923508960521607343817333990885248662455778084704633407569984715668409904358632242156726789814825426293200477773011936946928160861948159102481164632780082437173201420505945730349215216321017400732942320983951576416710455993209122978810725831468681577383588981548066788334208112696446575556568888506300621043043689110863184393226133185616198190788510809331247726152419437587938833959767560598614714704166779121744861693300550306534257576757100928475567981556633136237223125726457844149725214108639347915365200322690100623210357930167647201941865812406022887254741048227393742790293763342325371424701436645956089773021060121530586080518812733198063400930330952896542361411133133325360791638267837754543680494221883537326730526522303003691329579178305213663947541824827850190669736840869302471755587603619540099256223117352939149459787511374546982125822793682582988967200335554246434638509875446793060279374804485506101926001730678842404836576349497096715094711784678395172969023139802630371968247722415538736500244445814773306122493457209238378762921223390971098202067997092322415488159686331177960578729569351908161283832139029281094834027901595949200846701291714791803272291514206844397913027207747545725151343479807039567122636492577549874101043320986743189726882597660497719706788383706065840510863987554298456213061899632069056477646973123669286216352848820157229078682060194381901584300111385854568722752693141646567603315108463277037865469595605707014097233500081781776906740391941630021853195668025631255995351665495166576330515241487137586447856564364755677456882308474680170768360079778415318285430435084682124354303697820360469140690738880298352666476821214147482189273839983327559941184741315602117841511709728331570404788904958904517374331521202383022942853039882924575079731312849172150504183085288337066201851344629447529395747486770999754208173115422074668864980594112503776160506016632327348001612298855198714344610397522146376467516497540206554123744097346864142469090535286184957274577837078875084550430709810366584778761543224649233128895543132013395590583954849071783018086604608923636079373873308889485286091537776871874008214294089480268208245172516694696222926140974698315080656028245624916234338388359408364933030961765169737933184541722729899493146229633650509737815752077226059049864176180461102435390726854979279758008482637798399495876643641272852408111905121182217892864224015637099704661016452875422405871917737560209382947364971965431182834364148280972353080801854127118275154426570233196444052769319068578791223330341176349953013488550360090331817333437922789096793239335833284284964378835956127484383181041029442526316615571124190617707149493428190116992147485577279341951454313669228801959093238318629484955614963380109880072515521470076502155325274613315802703332122075665074377709948735483817201854449402440689799910985817408358933512637352278165947294569313278696367159818096235219163795565933035596779049763609258422628912163264977667040015837555731696061806955956441941322624067094826975884009657113491125632977195028114783145789459690529936419275694080879672304024164199924778769874468289891803262010490032074846089037738319148875686786591205730979022574107490878635145250056399649966802159390356594160551252218063681912745311237696201241562865113942214726344675627529784429270263930747422012487230493334743992864393831049757090787669629411023944193744656411492156765551316917991960706892635433458651791500824944053652137832995566111757200226342630415365226157762146392719874013722695396340453879298076483827255799984718162955535156577385877772067169027445316421401338307381588112752450854107101766220027029496437331191172828954804487486734833874163808537276673968531186413968572638062469437350219260826925631966085621241635561470282979217660232959088297288282828367772347881648186756523762063302206646324853195423382446797228500527308378414937652274147887139503558556895609084253081542490604571308408659967224889281640635564885145457302810620886121385873046875954989163667686171224420329085503841860858252273610947353952962009020650148086644026324899649051692099286857395624986185611266158007718713411301907814456796606380010702726264162272617149379986211478894611327308013157686646973922250158773381444307929920394705211624568885370141578475916625479572893719821970334061288378486834444916319716546139379258973675463619633996806979695155223506223849967192468214441409191513474655531800391745465571375688186456837303963963806001777013542016894408782385620917015484558824069150048234012003438653381613121963170668120457050770391861534602319379648780711693175148003148167803884149816658215137831352453122774790162998536763922528768624836070589932988706159442511786300333547440720380692463908395183579904601326286716524438136879721502878173688107919816468626691597110356531855760536671617686115422358904786196841286245112922448513412803290850989490494076221674268088043323456901285714731069532691526473150619415782214097060611896563661639611451630548993002277497649952242997567254273545667273491349201430457267603190588933342945448560734352043745670715058881905984604555555621312794217478083989911962840824812467704444539235924686658640185598425970326629073595387459114761257244055584526730161720441300375305126520412513131601946792736031945243557297793081817732401111196134523306268841467893927331582880266017732101072056611327073219614467846122039374671779588584701897523330996832356855510114689785945215963286567122982782603279637479725880465875276940582397369667884814466256753311335863633895609925196870126545469006022717075327202998122529220594486947875297634095581187247128442324431016688569901844478042501124161406460015392746619494306794280564337128059578207997782091928586373903659143670541394312293160711424108384900927462693984692498769441907750323497688493687203913551126921246170246389476423855623500706283359902306178884408205419772809440135482665687125019015854463452577708398424357963797313057274318403977948324933522036175598578155489607497699143236087963682812744187446566934822497044189979471022639411170742335017096615622246794877841979738446211302186790959456682799910662485550506799681188128923752492142127327309070048634588882997509655971588839577014808032012213568813540402630232350491443065902278303352647047749002847035310154025503381018451021379377670780070340816583943063223425138467569457108393642741630337100911073682271243803071247635258166625787832542187847595840072981430421348510169416490574988158197830347683106162966671439219941834982322232607710590355472030230087969124392809018798748788070394283604075234812615814576974224832945182831361815922035270936956025116431759964783398343631743834526812403248399077944841328456112414779562014500438009549100360629474913256175600260563822797273477421832097356191405611358715614531384868414342270009530776757665873159726519920065462432336649965839606440009713355872071459356889563520503637238494347378241200949650272283490909763237170131255080624480518062529506125791543883569969325547766960255092566788059498035525005841972279609774266708737414948402590608932871215853541238644543196680718111885354723779500105797768818495173149717320527210176491678829351296686719394093421644434754843274904102558739362379434565931366726373210458976183170266046791042515491662953849628030567454185766211206034699092328898857107486887895179563133677495504800230026632750529333878131556819750003230674638947281416869553411779971048365398029334775861355717491986434298646066927922822543718852116056046466623333615529712264262463075577815785579996394531684065378879028929438672291418986789988591409019981157523069434535834622163021492939431449152498275638257620756895081630684390196876537622064611866363152359214198938635073726217426386260300305271837936545731622369499397613637447705852599210746773628245597762317091034194925604774101349050811260417342275268462275984406996027610361063773754582817471429570265791327005899166596965793926315651833860006119988931936268890987186972374945416542957536419303530557372741244984331356656022469152453737082828536999448189078506513828845795499203539344327124174329268183218732603879284238662032809892240515445840431229154849252016387779447340092704560907717161513330687463896978395522590814671830903955042132621835760409638803846966251203685374435344276347873668733796978476735064487717777204481596872917607417160969103381666783675394007336503152348168700722785491561470309151763517614269452852480034955235488378853975312105023490554715678256459584476154523367510817624947046266640873446847547046839351887919229791593505796778084581164260249538597608236307259394493746769831499184942478142195291927670617312965489705559409348832811330328449364206119512971408442164601657004535388423698793397082165861488785625067593823460249211107032066929116161380368357535070872239464028894599166220410873549364398162531531866334306883470269832825363397743586727674311535505092989049805424329589553226328282520853964695569672580410486464219802186060554306137823418885986891799833443599412961669637995531173054867584500036695721886920749769266249380022531930973267620795015647773435058884481296124097841241093882879303826309299120414775314521855614156050691656448872821444581491371558782068313265037618316062918043284542972134440415177899834662736371356137585965705416581570952738218947900728179912904102759756576951396253011832870070157306588412601400263507800541653031142381086385555767218435660182167359320359283442306329944221491747760092844249905537046013163339663295727355602280226284237282835704399273253841821464248491506803953883494529277335857195104556209577210546126307171762479110016670214987060754414006541002524325551820919949927861154909044279163179978817527901484240969036959170317445498841405984416265254536537703638275690015974066964338820839198412937976701339346567671697696165252484076612388945108446273803319362382079838934003113626922787871177702267770670371692428856714535975374894526816212680316564297325297486876176889674065575165729618180930775938999315544849730022308764919727853347591262704267041014203049810931566163040007867005877895061942406916344698001713705466604724642719567235723485800730810094353185799957702988507429339151186245202366389861574675879782875887985820603470231748518693435322964186503029209989346519862993266647460948510771023230287082969705988856767799665245253152050469941429451960538767107891725254620560493450131646525675032950546893910299326498897737760555784219834395447352572103515991038976883236412345161999297993646434668365002939069223198421997848160463058828413044400787156872090804081563883153562974868055823472678250288124865117290044570812848685294903030834626208102448507296676231692197237950333836602279521119087612802740199016019746356169275998129256767854161823320572403555792129636428322106157011892166428558908896718178206895771016142750847018030668041905004523533445309344351589463892068825730887626553273139231471650585865157437533444873642170559079528833439169523101299870515763070738750201838950558142818833994894059752886801048175311392760971316553351880023201613575422342540224477862767447757411849648044337760993623970438281880078095155867624494468050041794730601394527297135203934294306777700614419658924418918099640622360353962525574121224570293788464440206861810076121362657258475575449894734713090602045197591428582424993698850534144260289663492336476335364831663110538670422414905289086762099376339329720116751146611076652366146911916862734827768143486938611916832546563296812130357056066119459684942444521296591865612055833842232317844092967393362201450657416448752403265625029481558401079968306183222200434052878535160814695795020191348695954556431512917284613249180173874919194572748152361012547408733011582558990777376590816952468007628720167765637978888220217055719230559275456246459421219926479442989436504205987249660559490285269607230609421106043193664183726667749596367071635003055456669860351690247608944093737425485654405285875699548027667261157678950008163972677074011189523958790915078139031220644846249177411991775358908930096877090787586923928750312443899560625391581504128302866172670788976190624153933718377493767726310995157242138095487061954425208411846387554405953770012303727340474836882448352396008046297661721537794762971736123108242437406646038083909618210331998299845617978275260391963367443732815969273273685850217438384636246939645879303419162553545971732253238213233520931234813649951086456871006916954642238226992547704520042548325762873477806506916559256536425351437516287482097882587648762795434143249466087071585934022887142557438416583554535046476335587959498271671913381881929828114749149004598587167559086992693309068533693534748822685110838567571804881094789408112410633196295686651070623415253631893190727251160924783209234048333818438222949123951819462747327141871760046017303696443546313719891655311612531855662849211713757562580394103808442144883446841266351222205180443696913654740553788553664605762247491999006662296847257805048190406149784832614935800294388153010107024202244209393944915895564846667764140661534988600890479484651885510879168472977396968668807346758191939559839326844133657021455919052452745126692270834686693971741657875323927690297991048166991263296975902031215581220419020647724494977815427884969787505830760513904023080455471749130777023679245790360997888772663020460822633484656286771573848370312458942610145769318211675456255961810131076378305121764782409941723227406480546514366271566102905086913825165622377753224167235497408947385875318190640146218866944848233366828048370322937545723487183303375418415104976980463958408737504564075953258257412418418247823122783946599810490850535889198148880484593351681500841209091556456782341608666648073966281766882621485794316247846697365002994693770794397437354962301495271952280310944897039012633738284584463693540253693653581480420373254051272988061871162546139947848838023898650695770145842009720009073573355350959710084630991594367112406126960269315556449245769597115208749752990680170513154430370191821013650061315207456458490940749815956357138408660669011632437503640575753246146203931440463681397606141245230060554522103360924701487072907559974615845995057946395797534753648639200271626201659804534476713582417464032346817146627567926956159847035829917680212070360398466585975383660974547969059088337886799467504080922139726399111419197294560808768652607690523789351637342761914003321413831866726936287040300131612509873774137978218607598921842698628751724691676920509919382221387293690581545129946746476997289863577748867527551692798785714695196152665442163336467685014720698754785161455945566799135499352338608593597432935985615188507175533278493016620431284624201719554499929757582808848951043634722616852891064149145287117373169963656602318650178730055116999297368013991477875449077319760512252397376080416059072929577601159816649036272098794266576064884410262938848035100653717687954343198121607017253916980060855069710552621015436440108038210332617820632564354713215015215838949081910862668946512672640648162741249309229099723754148083886947120194686918685355644948001746666447544866534021940963594870320946328426977983393337731401208639315608626245952808982210386479640147095457242718814364050486749954474969330628131096104288930170734913395519941076707844878038096187394559025693089526690716825842296266111074327281286973897114485414589241342787404040378684790780899937999871901967712702981696940777925466027765245295318486223357483944399167976548917192440906189295724506041644555115812231393469877818803339940850282939357332726767287546937385693874182193893322504376729718004510930245677875606989549988865646903550799487304122023151623543980105602924748842211870851689935870023163631718081822292987499407753046681739574435372381585533765373616849772870994784297593674021971234029514904949747594846587081842467713488518069954939733788054369045433985076311325221030605225853339642653293629596309720395872973564260370711153535268980694228030641509372224531382230147564960587987514654869995635780606503407340991935945967606217762890133201718812777638443908961995346659840810192116222099975887152096073761779471673216142677229922476728013878994394673144773330157661266214315662774436994101202070238294761096113376524158660136614246096550274939878592039078443849026362507031216186541169091792435726104859779977198395477232729734492746660706986972413564485643965501463826285973768352438174314499658076060729951851621188310615476797544645082073600664616006164505844709536172706366562813319976749875644747884434729928173359820136476455997042159064984740113002577928134827738288881270273759922249259728075846975862324855131237417650958065137901694622647606036366811620434184515583138539053517279359719630066292103497137812916736092636493623442052535684368121444242302755777489465252410402515632520426083225497113181425666869136100211945373263088669250626640951550144528049601180121171217855307761980349383707727179837674431690049609147525952478276049409619799382414587421422648172527489373209829540466248591910235230648828733222481081512784494665908668205198862329445756513458448462237134009437217294254911977505031149453821207685194412217133023650984897707290550501205378418630448697574041282374277066942497572395171927216423445006879084253890022879658019678688342470725604120745883423306397464303391833283624960000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
21000! 9577909936669756479103704078290842340705963429627926140293264683700730818695977105147925848522947808340048461075860350584929942326401652256061139183472273014220342759891279018578705031223434978382650409229108136169705349625225034821561596149951082495767402070017762363037080138565848800230327205387265053646936516541514229086307728389629188303745356459260283497023373656652739547972015020128429760923115170747524643689340081255415656349390874410298304230416690388162382448994863222038790383035962900824238859949076655027302343658394759647592211937868147835802248732912838689135554274106936763010154934797070228245423959377749606926246299910798387122098627006545858113612454946199420805223324085203110269618929890837056048213573574017181334008128918503806851853800858482989661035164069760563715858809234559745578484422808992371500669117217050717856020765999098815825189677405569799322607455446685600929898499240629609987950727537232524891982235783394183833662525276896910384650653250446333841049565175362937417309693842544615748079221401813565009870535772803381106002089252597100998064106650036111105627832690980902867005468443174175074602845117468454852280377273775965548788420695137116774835015532272855475155166717842282192032426233231454979124905529959162986426234245952889377560560008197371322326400548235982267276574382604508241598655957537949313588958030753877726290023599995121325941019408358524059800545838012723780963030424019271493987043976611997867546868519868019316473952238739469254414652304380865730258104979682526646491665714779725588702347535493924920185067118336990145539693107196568251791106879592072507941064167748252450121070401354092631017226013217290031688904967062393811328205494349476582851491445110242481108216759738808503628842759764614366692942076803102855592589284880505689695538253809151355266743091961122821815290265218740607207792028440767070020511872605492071076127712560265489042638908100699081769392079559722708895304712874257516755922741956486299480126338928006844055527173668189928647289550039904461067719612731669553833760428202705645445081547050609555240760339838400423649925699462598822617885796904162446717527567212059745581389438833372841798529399706537436155891164006653554441385679003606611389208080038979972576822929580699961590219383829559624025646163941252530233221547621892304873736007975262238353163798028044014676673062443168303883709557501822400374790252583344773825562266074947397946083974934115811453627641122874770582436649337840098762237205927603251537393788555072066900248088320250706893677694164846056715301909800648815171485895925501453420627255739821210210966196238096867589592933698568755636065128785671276175657501629681726970109887957886294296976659266556773434697136730518532002816668710856322956624987324593221350544788600043007307233569965623377117032213342941854019986589941808399210689058411610189394535561386871625734137819804252483422582379856490552988857334093424133370656285208216582904603513522306237388419139581399341968748007211552493627835454840514179106086500867605548069131952358545577663129685784768259205892746849863853290045607669940049351561030879118971088145344435222676801134550875107393728111532476049745953272018547808971116903625883622236689335944040331160199763320225235763708827300036093686986942005366364667130110858270990867193532329878557001046660421728497371407204778643442924657764754080419368234803174724671582929332937192142021261506527269530401711045866403446264879551750121123380137490678930815888523027538957948009108078506427800229794043925410810833061011030132700133707739090305350206329332870127881101596192973906551515614641092973035303547866190473499324996586156054926770746865481874361139579619582365431239805773605055391226724056516703915538909126554306988625550198158828845640851335546078300537120250771189129650291873339868868251177088319929362890310728628136777314578866446149012994351266028250357112410511464673501306204150630660622112533977240638669320383853222273378689036938472220304978351576502180512469365966207092084041759036345766482090684191235364853688000542667946781924862577226176570263124951431823894817091210404753147310462834749532265092413744179746515265498201244195360677045566337381117693316909145935295682220164227784059711682321213950902932859541568869091721772171763039528944760365426382963901396755166637709033907040760451303569368018051812718739550847872976071816470056349099971144753349673806746017593494698148979714277839322058370706343819745372945420459696472482051033392004379388768312929625894486001230745545862435135664970032362721487630063085784632140920056766025677637043824841836383625561974748398775780348350769121722298460890437341620594545668351686558639251602263176940624182858658496135071675231526804519885096837095248479198579095163699015978175833265699027718283598932464304917442061556330100434479957668436966363205900561883957683744584477477600888302389167257421029343031593591593178182062633844764582717848898201192971217338671836858833952790383008586712805778716442282769976364277586017142785558357226747201964496648950145205411603032518628965472858883460073777768176319536016180144362611857827926381395287590444635751414828051951121620449503333430959470916848244702559044233602860494578110443919563083620549823784208510645789226848736318940191465689468111924012547123002340229560346063613949036797292723171435254831447458153964462914819828408165084056938912231152663096693972069597525229213023797195665626866381384903933748410620194199243010086739872952070085484376731781951739629434637715032172499001894708242412790544731260521585043714385352634030479495766306303013845076138087387995082385057282687182856756143904386260216899549975748775101899258773336180051335875807337213559094477702210669440504076432379472242771568568340797563255177158174175016315733089792087441074723747668901045588229384025228934096788391742222708590122487604452764444573290029464024818981479826276775039247963800690314632307914351102836059089731143040261581445726830370815500986751160343815057566527231643854381684988454486242996797303065509942242623713536252583853990220542448467258444344724007354346013095706706363406757033133632699286460439433025320579062113027601758349794677790237213808869560713096306876294813624002197903187735247250771285855533276018418351599968281788093500395073611064232988567409949899784785048802524907260247970422966416484883266262506912260841266729850623964918501814643000086855028593810612353993345942868226716601108484325088946871652454863296694754562736713486627704878579070355261630586875098626595890933451538604813503916825548096579607018388049605681813892623595323038665805623717910816320411710879386207043309797003747075752629243684279587085471451966123197313997855932173937604807399761631930719291647468429218519108208783136735407970469411395362573020355766430424583769141169628620520091322911759768319582296201129866069549961821708308635325959922720038647571501790103775789978022930499925686206006244042855463684413067201260163859064225405536981063130906180809178932715702970362067925922917672983964429089202739449573922099501703577327206421970961723194416650704760587374309602952306119441978114273386475599464139191366522369455895349433860343695070019111401092231219783555826406333002944474908682524372468201981232033603643516266362265100889229437650363595032234987066864064237213211568518087015039594923948498180490165284133437315895847733931556786178572361444490104295529760457153109104253787752911617515890994227458329362746320604123023218460210931456197514976205558268037397920421905041879494179117782390928607922959400474305303970850299142328359786309651832827129579540247171019381251975998365565503744551788651072896496069209194521683609411627921348631206122244620479352433189648572905367911011964751884344425710765488322594692630563537475163179407688364609860769343986235334867802480518383235451779033229847148858187789900933049740151820674955963320369354969695766791327263789082912633082675901476609596041918238233925265817856957143036193529886648700995391510059521947787612417861805898840922747872634615533773186955022329004230553655309217199749815114300027272064825495541783562159224457138153195598792562290342819053384102017930275818282389386842965935539734561422221180234885294698934111811801374414639035176724777033175271268478212233939354472583601630488595277597363720538039865046484212986530643968803553582431664445589846439076604280973639428728943081686421195932883953502332151273441647463625976001839283654142843024964354012403858365175556812737410295877748417819519629118615819548754001162019045248452324857850791931950470634031460412117369456114947671702226984450076533445154176537783851865078460456963448583199277724460340547380896178139750280020050909332119832838011616071083420683614690597395091986175461612426251388217322969794020667539119464646709141809152789862125187815725040960246552362811957688549728388091331403575474331128252865099234895224500547205726305614822034987228983857731819590116648290835962286141261660536762502330558071121096941338389494439255561951831988631255273753084797586019547026667576637363976977908533397777317002625946435544602714202309152502465719790981517771336124972246153572743323427030149471124920751596461161981922984377597844290463268699251219300731239782027412250850382873100881179322911645721109767712202598822717867994279255431416908045442545957915627466778329910872190626140342976723202100975920637818147765760382978418539226690368218231671670629580630386009231906076761182327969049723420392926462570210146744670150810873000224877272262140049170653902627356501878465537087934795217693399772132046619695305599218332997787368295059703015909423809995519166016004020965729066414515743710687741686946604407383221365150420122274762524436622333477920885693295618548552598303448518710796524391231108277176787364714512470644293861680829502997062404241433754179550928337009778291706091033398682241684077240252691851287321515858834870624952605938648419977336288381534190612751004523241191202217921895374454149880944543515067531763588644022559992286687716108453325333349685426179743617027077684986321984440867737444608934541279121146501475154243459521411639799228651450340348487249444027725622197894583506692997575728322341297061614440845054934332440433520793724544621741237519411322438688640513154764926796450426029417994121771625340115011167208634848562667228193194647236806320242490716288734570278365455737683025658774370803186593612045427795605834787160141755664348725468447711906395250083396605510878934573213726210298136636934935244425347952238624713150143830226965552104990295717964864867536373618532355711188975734748207809873135816903256816056261795914230774843580120457508192886802006519863173836968157245076606233407473076936452909619626033101351161316258599103693817427933662469399648303346563365394247596450258183923312182762126735873148884241394182645737244046123952207900553463601147685741780958300577754164630101172617872498900198461331014296167453605544946805129528849126585855840123799024060892808701308349886246686635624476738503329836125300655622930565102394735148813927582806180823128284859546231912714355287466789990404853344856365626821258133294959217206054233126596327928027104940260489647388897788743373797597154612505300965620039867238274363841634814643081516622882571131566728664469033258936933959737843440996093233323084822846848819645096184519373539620895365713433028075263533906451414509787488029801072611648705133762657057848140801725227520524365903416484345945887125786009074374468860009063243551763261816179391767916743754551684609608638651578318501179135424234821671597644967472050332028669407559705612308028262006016903743361061323729114839903905858578821003897506230141770967786265950849783268063706355500474159138117525057767509057146403906724914247482885682044427900504174281874013915931495851199155461329578229630046303696279934066373428237938930383029970993554357376740396857970119880308748939739689213289056535631271606068634659323943363191850699583899531542340496074171405504257760674657771386006466949942118639077769871211798069905052092105010008802863223707585501494623511315147104244645882123212204511878759688722591548980233811290109900932402766615583769681674813554596410685157177513213538375794994578375855089691204972396044380552248440222325620209845656956610656823565152066110622983505395148935739493646653156067953338298553533096804067697996980716674398808686628585215037729083677327633056761926899482293761459163315567285089963982019222605391879163138756142830723467478599628406169597340003054250324910458299414734368324852676787937340296074186754928801264587842962595902858218899648579761358197977675697126438170548931987226895497912607471207117059173431086506008346528907680489867776145638770584228635176710442041601093896270386496058272729916794234946628295411872071854932557482548008272878463691339926931185665527882609899024466831850218334500138677235736976222301736836744977415916009700355238267355993597968589231120727608432408677031523568564205824360756349846569981416389214251754081335068579767666449679444139071530711489778223941084898254994978311451832815566640137140225643058371225330702642790532356452351584564112751554786438716490092330682011526107498737964268177275087876672646741273176758468364306396601398584778749608173388715055477106421518397098561288225761223378899558561897914337271070627476256013556001514485717473746482361280820679547075419170654916481520323233329144828784842091190697899213082460533566152657133160971989468324134220927191299390699991014909525822658543140877840305378491580364515014475236956661966956058583353461568092465540574504997136991636570269927588797904686442104623877331556924962402505539159655106804493897570412781438321589983332252347048461570043783520092475473098979517550375507293993751715323248038821324738136611880179977947371607765048445429695743128068304284698641403548566548419776914256188288486431310778843229943263588398591330864210248955040844964150384497877551846950572956399116628766426185340301102843164630971355623943958017484779605192862417082318809030841984991129575588971963280427746546676661752662943240324529229259934982288194807806983013691661996651362811773817618538383307577528608258106444026813868628242579318497753980199323127610734218231168242048778662645555056608928112179888357743133737157593809297613350345157453057273281397610217757979466145764123629310887872959871768425100775429136837316180383826657451203141674020357497594733726229414039707104233832260756946236543318197653989418272632592307358831630145661806942465376576890733242994946200765305543862502938516944001884171804787202017836080457435098919430616749295238903074411262337989011449958294761264004063876055555769597543449044568717021632926255914710903754452630451023701579522098198004129238209608649642172548484418901207219401799718993220331469596313951060206474953228883177071301304737588093167805898869957681643982663504559164366933605019847163081877545520701516566868510482203224618378455391019803565612988984009513645301456304638266619239477593581572094965393972282552557652048318932276744937306616370088908976975744493406582842385958863166121534051383737842137725066289757981752017361273256463051036538629650656627113317648809308666263261620891863357034531800274592933022015316969549372269110319472851380081176308128239325114724085903174972089552196428405914571502850948255474064420981230763761994003860419529348317777234108897301258415615185952540902251870596071642873630781448568162095119320635748730468251873200000186711637334856982290212684983757346603427099417747885378999050640870188749499389262696510580892322118516531910983945055411367691212129117451067555348631080394827562990516413781369883541148242693419582686544255049768848342819281187218340234405326518160729078490414595896936927494297020208990940189081446595562548332709989818326656637747334836276952641571342275482739474195061849546545438228062627410631783070687257370620146166004531923950854675118331096782370826108298486775890824576177477766079176132797478791461014569380722516545987386202830984612768921043545738154735862192162312696874272047519113523847752183757679077988644295848260334931400392915581344503787618853731696161407702740777897425873948337315682753191131534730678223792440067364009980388848107294463232299224778171899508499379399582712390863527320101382559695200856664101614837452913396244713723244187101824402003171613957980943573687810871316352262341097227191165030758029036687224211499172290086057994003403228267713779992924894975629152210267400626786274257948580250817385434409789123458673177945293329233032823136516319970106917707610907549557327440324434717925059848449961581542644084012742964725610207900572051977149695179553398148191313516895449321768479921198716245855160234955246695621114120754475293755915213106626018363288775249657958057931049699187590481719547640431492061718131316102811149631508564953349244368488054524403970780330261658673741093694061060847534670305317729887295913581469091490390250000822477841500794838606222855860306937730257907750302935261262703455532630400261605478917765744778128567891231556375383609363361339215367453745675783150063785882104880143540857910513196510863080162274284143697392908160865247841087122498859940960008504289889625336780189224322521764613805335314192221783586629806354486357975608646656160967656421456175403064816939694065928191143374880880571207022194294348667464550146631485996241064653415448408452753407887397930531113858044686566520677890145498148434415959264090490458216944618404865237971989135959496122314682172412001072762561175136851389305096804929096936873276019996758957533155601902785744398286333315057821989095623197256653353627879765761583034748855827242189955690671255550263476132249515133027362015370367751718023942969516768946034049639142804641797141530067167179820010318914668911981144565440270961386641739341104911287695523410755834005583547389077685088809386330860165195999068800483456782154385269844775942495964278295431298673585295094165897286381794078937755071196441618455827898227744671007597147355521178537616349578794515988994610283270794693257308279400765731889075561587613208471072864251273482378875992988858103631187025425082667618795250111028263232133999475805844606758216475169516118563694289373591417467838751470946288016713856400682824437822287236649122284059039617505483942829992239216774830585223285865476526662292131946133439023150897568860208293288508862539172635925155193917601431313050016573178580578944042000428482979420428873437930115907735250042750007071055521796488013787179914862306242808350123754414082687818552070975848607508574051569887667241316723554834958545362834881888354134175442738008862404418193024605984292689298406631950422558607196499838311031467802186183941701449563121793287415026804985144332494704925202773457741330443619062506936040772852254431595475280859219587500329596941133214792140155826875027976629858346662537844586215903480877140255232594702360599161931181124234436083696535673203865478902151115960285478203684313133520784178978896668754800725306597085974129091267608314474715058800869458507396564496875318052413540469205890714163477189141524841522375126629318431087536956722462208229212809054547901331487728811594649833754867736295738541404413674160767249273179436709715446632750075136962714718019189620908147459586632067273502704074532418737600655488450415790716602005530430972035003153901546740846805522052760909666875838589378819629679033590049258844143868568591309158612038413089062879783371440461893192437121477224332396420836978448325569526420383193083024441949164222024234518331087321390874921444505761544008603231202342150680887993751281826071982005213227597173779948474973095193829230136576438083345160231140521860964865527086473056357771734456621166342136256365595417905005714986187932320547181158058428041790070871751677864272109715929629939336357230439754421248093905412850351180672065132944882001978936164936406936396324975689139386313946732412947270882314468420934939700451518248430494758565418128541979166424210746132414085099862389495722919304885120582304130412323129179449978710673752301549198528311139137811682923665712883783071025493427943726360087536441369394790959349378554627053051042381175522792033226832461929087367915363721799094284299022137714174845437029031804616489647578205684982700782905323443550283724492192843911139901497303538353210284837318223268765353389520290927056852550016994604270435426552349521868029047336960959905970299331299204879307205655329102552288610915186546671857157495370695908509209477981354130871170851080242271328795576321832114530581338018376184940789576344628363965069825478246720466240764193942459589654808581913637012227142224152668149750564229045727362335972649015389289821523919282616616008498339278054075199916039059835539896666222084465594947696440889029452338493335523143122479189115392803635897617941515720508558360904361154024009797290734622685718570875952102799088326502986571292344089714505482267817696261182047918676419208134103876616011890836423143691557340995943919777845612352324758448301928275727239145152399442998445324296307656780125917433379145846085110307050039442706144032014138693196533084108039233038459409729107461623574516286007171743612937165550961491704500829562586475877318502761885496384542439529861317899803932014981248492844686529280302266338152085144718576924277315033996910829045836106105517462489906515977600805575885218357012234242796785730143489911369528967605383568703220485326354178557882360599640008592115637015516612333686984669341949232276126634454555862174722428854993143633379406356415629614400937992989811645380043081281643710819352323085458844280150751774988447055157533830083362443720899215170324602602375945599035841086233045643610131497658963656478842695398701000576437947728803416004720202489534336259302035688290371125940287749462455225463267527557387731558969705226386971611060393264203975546597452901893137783530981089569899636312732379417825443633877593281524998820502854988162949739708337550787098615613844686062552217379713232812286219846919145717601964696116877920079808932298152154857183369755002558484606870333208942975222580733759420617568835859473996495367249194978200084749146574000600902510324169584747388426465354370899226097121455882121781514856445687614588267850293985433154725304079636472253853092978161641813427400620648498203149198978596578439604227583255692722596224253961117531264192919565912422590765790657393933766278318210997514388950937321241553880023730859888913173896334369870701634681420335209224453837193200409798137167000654485550804386416696814908051514276168255087798165112844472958895183154199686243781333978385752878405940911002647386230122238382243875852032097716343463166763038276719597066874325061097032058424608288555555340611630626532791326392183947436260073726237270123676213031782915396034539913694714585528073521916556457019766953973075922014128170247648143926146544924979304387098782163276948016320312442985274252725807459357017329503648199957881919909486239438769509980555108016973044372104353969854649603250339510645197144113614485870599235898569786108970815264849383823964699505907177842134829938372445536571378985274971627574570473639192673542798292220104800394996638256375536135225470867386920213633647259037596866826563502857090723369676261500867228172340046231163676154559492984715075621312599576067034084116961025193244360352776451649369177087164646218767446992957709326967162720684772368747047410651185327831400130911356416346708634562925658834698618960455083030464435455755853297531357328095035773856135963408173034125533670606831297220458225951241646333514545332777916193399020058712777944502571731558092254033285572784368520343077785174987275838386458497494912252215580931404510433417481476295440193730942583636121626896540524390406035103239680021506667767320755232702467055536963386383633799929072576692505996984048473754970533338666892367980940467326597561344335324014623402612305512637566856820057518529444668279646756231152870437525104936048423731525906354539130301774320620317651201767288266459869913610333616606207756636175739304595827257266578538295681343974504221339908146871917537968420659448020299160303416763530848880050400063158597669061402663635769093032258868378324949189923502955264839796624147176924461944006896452585043915682170878757901153456905331242861632523158662149941924207927872630766686017948885940576475819514626442860626964796797205863858304378164514836865933795516524727072820081560667753376272182737714905706418998249797926770235668889001288467458530464885313570219698959704074750079563632095111730928221993612165496560466276310656732742730489905500048187699457403495696153951179694719897940666338721800465865950719559759333357549041735921362251629565281365996248192395928344223648444033704046105123371518946086167845256195078035801645586416873398447369082816342804440859654723245513433724543395635759450412557305869104995790598420746301654491982002100325794582702310469905015371444794597769341672984413463335830441041426029789301648006177845703821353293313180102524672117569209215632205602958062609623298990032309879130231134720263121573487065500195698803640276897985062671203585784167232017157325210879097778167632529554974852214916181177351628641736706057566794900269133931151086038333089503551979412410304328744677187696577409506506074191698560100160104561489814597579653508511326588179535619057647173004800984141090125322442120268470692840062013844270910343417480594646266353376454934760591412985832049244766447865469761498734332444959896882947484833909168641613763803588179170868839571827256131764424339956831607844425722168813901181024958915565525530501752403481785117861537925977216143197664938967051611839088353635562706955407184888181512285085847874061516261026895506309609423233086695080753200773485172856056296444775984983432857448631899849635961179134009197977547381839962231253363798139290641388101828366560836062507701817473058040257169286290465488956202730322595400686907885780721133676875619793100944941501010569190034639237562661590979605994054840877777991908724740685112041794330677886249610105154975357978092221687518811267320923860038022588680531822137260509051978141817171043894220196604633628066148714587826947569987137130171914345950144617834109004084720981853118292508212985565620678643128265482500934249107389554290401154223926523195564752802763448077770723344906611860056198539247354256719629049488234308536571746692371803583380331936356072000006244898972637107790705838080930634641113113549278737509508868425707425958912486249761383901220083749718301924594617627532613393569619351206693299123548098771338526386738531971030199623102178684779673917408282691978030132374151568114866069268275560450142836377419881644574092132029093022598910463056776568692782054198333889022429362274831602461356442678426307086233035080845839596219757818363999197515625674178463470602240089087840631760085200343495665616292038979926173976629906569363131799042464406473644826274582647686786031534594976986706494931483716535800916650913767639150950160810318385963518124135152368021990136986436847462676055082249739336933321951336172319679261651542537855004529639593530527171305226656089664893670027335002585268247730124542335028976598677210603270525414749377066791131344168527137886156403153689771115990960492981289422861472721985175726090838526156440205331276792842791689931545162558003953097883065113537794023814840387371406363732704897633731475056792799459816951547525700771622930055648630312024685548133971163328393838056463921737710608187528238258354208938185967710075746143107526892440566442659828648950676303208925658045270397539233782591960739497125429077622736880746504864531656536270635379763964659529837398631439576403581307364466260277081704564564284791445526652337442289157865920718933780706544928281852486989115884516453605653492081896851906357277504969708290149758308267366946493427870766663993580705101533269093152697340869280416215073916494614803058272130172796581834756331146591659528499703949969460972973728565464845459476426255010156991128706480869409060762131971917780860552475439050741652472610234264273052600646939959820939536174653142584557780809529877036602188865547597206139256042990125080003084147882497977556853610181389552757777512100608813443373292460167458295632824325947032700594682135604337201176765208854841772161537515491440805929367675663093034497360866139688601125988686714333583405481939480015938712804585978181505462921984928735573703356509182161875066665469760764687037985737017629416226929546402261822634944485638369053971822447167795386817424538258854380996150738238155611055682457397689879966781193784062112531103320264154833411681132110471801055813185408817744900975886535561470782692021742741496881695580738471345889639613891852028466220585400994294175417464710812698297077546642922084858446213058686369266126246326551127522652694974275978907546325575022978997190557520218033389822806484985277935320170604963096249088698758579567190978216513469765089569249493529102248792975625598522850842194616446930790437924090576587252149953624256880203108108476430322389047422391707303056911049086381927533547956287541393521990026463530471342127121037343276952182243248896135570756398833269462605993873977493682816805638684607091438836834429887866562283099644591336968931208483575223111640884377440202319457830975457097692693172800296244091144202862448686204906625726506583204600815516919534565532968002774785262972144201154175433402713357804140704506143566293126972110112553531726458532160546662674303559695783589590937807638303901960787397727454721742210415749353136065958646401867434481377982712511491513421598436335253875713256499571251269769246025726240474855202552297575149041900509469935566489968230834259711999237051037901174772166933674925135560429158784875771233943962888077792548863766452467985801804572693624638454083616683770471122681970477356561994555213078226292028421415714107986584432406044102466313959664253159855851223880425994340799139160596438056663342895319787208420351628002481083132445608243106790273173163633200569678156536148043508413932123769820277146418551672339167715523388246274108286349141900587778013082715966214593224324297442211880733711976795519982996103777260013814487645005956843177904838994536378328872955834735701364274500334583482370569881854066271531964897245972333007710900457142550363872169199649980280873456864024416546202106949115999985161439382603747857354646414947225003655029692491350132367491310573240302711292521619810096251855058710872198809562903520973158956044807794263877357908768875020103625218811465182480085347011074203237931569406788468213057831556698724373273334702038972460477273380026356849205948152268812858541986778996349550524574918977851917522290206952354758980810034492492871703377049243573572124074595264051719456350941933493598792544228610495965878686323633467579272796733533529225999346151311890367426220329055106660788151811029676364835578355912360709501165573758968281479599322340025502861434436525649862843509354023021540498567838084036398381506882357402550148713253612219076054220248977670443382272702868169486682066596154883791242177589340935021825469004626099110697059276346018355200885157242600126143153813611047354665925712077790969466345707147134475294723177171090324724464367338886934801525550414632147487271182985763515276658385560642371263651194981407333678700609021274602818697194327150792359802547709975117639996850760280630908107982355112406845147813308235757583450384417037097764360736242943890857993471530430216157649532916492901251933614299363331473759747463306029257513956327419800818986863135308702047830891929082254937055070689006714711861291361913840455482404778418888151963713132819487217294166909815800463595189403530715606749508127689508639988458453335317090622281895240692468952240794740347572174430629548747154645342572520153647364757506325503167008284377151235941486074482262347010357958662491847052483354048610904497522475549083365885742749723427921398891498642064068869163312412183165311407985965555007140151996033434456322493107044834242490391608428242738985439492587528690794269348353034029386454609947998250436992110224486018056038528811617756990404959184742987678482727337572205332670472350902610524968952573423797000474140236757915996193686371061191552618739325771529964898434380879414978030707034138407026754538715822480848618055618702515483055752817648742032164957692652743584995216873755849539367078567336940710258341065344414589343078259838310253343865821993261402568618041831029080229428401730196808297172155714458213707870778999200787192575729686871175068482012065932157061292102976678097803425294803288651752850295498922376367476370331284776182090463972813329518079498320172903282334033500984673116027108401180901948311409354744594726226880423852352988246152878618481157221551868905414744545357025450489971647508343617143903975244248612512828809330678215471811720315683231473968441023298878717621237874482175544859513687145890221947385406361364500514531252895421667913255954574517231904605997471564116860848559764750616870932056329852768788295030791355209647135013891242437315658457084757335937780149291593423547329733209420162836697051042158301597925609583851657022103843896457492443747615989761922119965421731682051795211391494398695492605715399368723876073659831251032250014158700469321201995410859588843517021078770050019876048561126857246423425523209588905166122709609352906552836173716766579505288634764827462607344029055099466961445298896926144928635909043446359343847884611119286287156839632643227653922837131996190234594854445247345381032001655026730782015257914836484699658850774921546158873184472211788236025572922999897166368632342130876663943536981292659285437095055609525788038098136371719719642105894823848658975308851493919712875891590643404499398217755011806069227024809444123844337645000125229221626000999366977175145470573711152842225577528073022030528877999598978370503237350809839994437173620535951246371122304975699452593055730406150462282523093508071061534890322111296250837786489560628122648139696861390539999826727364359772659018388664217244914971318034301531868696503692337623390924125549642844675135110068566228298927048490836133930354371771808799242097056249812246744391355236170904728626793921313410953121119147914039731454723183439827250360270811626402908795622160752223996162804027136302912050678154956108853995086912376055344919013927612250556786939755620476893792708959660713345114900120702164612171569415800446077101206493267443057781940959403650627312917190102499829181435327696237397391547507326879375309267596601806857376976556514340323997951053773475329278580440690903985577971368172767592099525355041494289963599566563290853780462625186583597303312143180319446890880480156422550853212474120667796589294872996625012089656184010127562471417434043066789836460083726702782337371760547464326431618505137630982588576522806572152565208197512813349462601692994018560939350102069685427199145117108136216446291335751420196607867221422016991090454004100338101903494565154278730516606131119934486702781990170494161463228297959091249814488567338283539887757745432357873675209115033824941167503677595095326993103213141299818834293958375452311482741320547155465611671354728149651442772510098057770891104675298810140718182668865031924383667510742029719505804962350636615839270295338272203045283129969518728803212405929386382702469603666589719841112823243813680386824411246989506762595752780740605986648352947551285143957966997880701314832414597272510476597389710708287128453283336453258857308645792710805597469169210939372486470047549986001326971404396445925691520600683050840865115077291867721368294438948319466746001300301452915659029733915537017975248236332826684079444409232601692664764804326250920084508623327622079173022204684105951788373271344176225992601291290633278652393721147600926980534136923200724530206029424315127962450079458104518783581532882097680775825869948309401603802677928926691078994013171175050504985862671287957017675930543411833207137347402816555693104568667704610285898524917940821198069549631214153153814865309501726175020405037259341286530222026678860910069675675873548430006030823283732714260624502683022960666188353209521845875595716352264406767139727469030590404421674437353873865734924314100969903032862710038548693799929334748357160037219909570878201137692807390790691438425567419120508805513669969406489923484421657681942083802049990633725848711251826690110573114980494673338322539156211424420801119631394281133144502760403310325086328508817420033675652844506505100732223671093499484922658527016435879123425449431815822098631183740117224033276445395351699946114807112339275004806973574553747268651686553324101493336000814858545409482557708668054356466078167290765286758986501256427837491196928086359372930702555135002105989606458524949492295666972122113990222711333178281332668606597370172301838571914152994787359102029355797424011897613615564958980049751222902384690396657633873823887873089319414385675088570875442272426836397389812335339335538412235143683223939726269852160035137329540325749694547191769378232074500679280844406511582556990221479639549625414514907312452408178842284189404096806692824774210662430782803805390287368309246991001250129584471468203162921917338597407751996321061933087037362132496099463852622662880099381411229506543438505994624605768374517322566539371969995912502692578654242001855691191935258870453321397355550932467021005464373890884145671196340511437210600896193480283275616408172275882588820330419639160859014234863914166034504851742317880659261124816873349802453094271762515866535938179248233305798068548620353890635589058241940269303783988448547532902015167100266068584232867274053305141912613695277140996665065691046640494107926048150431972007596699150336668071398005156903893125387455440653636419371686895497043256748753694787404075151612151212133866335789878897749046465905450826044250395763403414929726989431120607826924338004149976857507646390975068792557886595199945042658334553125257408229354893926359290251587934058224488236254640907837253758737884206804159183311393346875708572820015058078462641211294914622560997924239145392627953334737001855460168161273182646137303898360415838584447239426620057669267642820404068283098343323066831174452805269007307196062354536501568607071760978713890704049319423952443050563436693624769195262696667703069614957007732990801384857330625540307587229665442117328238167410148296140708994902069378513255953474245533322695415920092048196350122755420005333122226044662355328515618898102416174093581368001353831445438227471477065464868793617038387017925665861951092012373566422795480375775469262470164196615215552003416372384121599781450096925860636410601357223494729378181108298799347757393205429016431583515826178617800175498739938675429374321188387266865808603398137034692905126612060716456257879610341201357602767700013065218410735036159483803270951247101455619033696455354078701355464086119442264659240254947309645154274999391790952632803084553836659326935731033381484262816542819439595569794066945038105323583201519856670331423397759705884728190550083352366063717095931347580337647038726065662340619853433911931979461004375183316771631611294912873203819523227037819573288321484492417503737674834523720635673304506260456673517752948850279008373594536030778905740341832721141118542222147247591835225059248663508430383263912728479095676156167332141401527111325712776329853575035871232171618000183212608456195443421301913611035526817770283905023859221024487518312521171256311145590020745118066639231500678388793510536494452080604920241993411923820938736748909031651157059463603563695797327843391046576580635407129228349186848399071526634041825230352543307609410137992739592825811916650208111206292970598912581326311062459297151666189913767780348945878870583029946884692573741258033561721856463687742263475197159675076116176794642112607333942908354624126571020422096708924497675074116014492802988056432808108019354117720814433422967744857725794259653643231382177418846494463438759246418926590250190687802091636084250389940168170260766463359747272452632793962191745457649201174676299418861467654722399435468567860145318715183724655652297372846944848872494816569601354714013593211367299629494133918075291046240251647055398481645315883590547247441871733787211676916930106339430806224283196288306850316160816009172304783282604052828527639665479953043968958199522935048015176837664783463271543553400682594445097965413497935363785704680747456353577214781220342932694166396091162904583714297785775181507671641211239711836314663015789231674405891136810759326521423716522861065607030136849849729844166430530099369954017114222022970880007256436054207563018475181491255319827234242992493880492771046000942955190186999207606915328973520243202800881677083829532113991823812802988468603183179913060985260666533452891214113354108774708117384401091855217680912280992271819502868477364220691977095599729836492490824214673352693408829184683381748407538466437601533240143548126994168043098734180037859903748111457544762696262878681971439608161019549190002183934488334298635176661676408246792435266298164880406302391853786387622110055295714033635300660016551703288500053317852474348853260839350781130896759536828404014457019644068840510373398962887799236702243307479182156696789609511431698532322965155517947332574310853549358457452191157678870652840983928911023388050830777073909654942010238375123461131363912971420198789653781813075428391956299719771705431578648431865162186634254564072530997433407400849714595562080307347329706019374669679514040137028188828882045179433589586970486031999024325148434869596123761025223887663178708124176496598365689658045228711585646902640216893137190109257502794597476505277743329557048768359481046169978820670597600194492008935407400415950478472806186891464853145126263107879994381936985756966675801118325674483872905016642675079742794883847445756438194415356092988401686662577050135513488724813995667032540401673930373584391793145198226054773718111289124462495193891121003628761258756937798930920297610579666648176302716820624920569272053205604340628394843250447528526851441276851964390593045256903191554739831426057301086792615774929125433967771877153609775525284364719198427609156440030191011221486693002989712478739727298002887861163472923818260034969112040248769450544649099639788316345432001286416838917920741640744721962508911022043606086781560877354989287588638120719881522198142148901798967384555104967096455689083178118505445195566993243304379683162574334756000651054770601460208158195418862183018209377500343393740131808640657524459023642958006083474482958982965822161634130009569084309159362263399950983962122131289276435883979996378690807999398350246635302112251311082584061600048073040131693390358425571359641097017315502729586894607270355132506355462152965739543619532689555606807676349642865009612928505834683503981290210264322394675828001315170280153159357668268912903400029725025382915821249193549191593234496651488578189211138145932702270145607962920046795377731127558938248375174065000608532863933370927893804725372188207458588984789370646043179390558177976757534779017061510391140798926494882584437875836196449619535914489257285514563211801369407896808216981799959075441027220990247598412516161050989164838558609450082959722407906547467971173248176731122657670474336887905415070950451131346632015209342166446648503652458623887587072273432796548342117198923743040061162161367879842833166130645426677748389472130654566231672563276300021881670900130689463258403604434728157385708048284132802367949949081566852075750880657740090067507280793925208158066059100872372621761533420830336787683451356773084118400037342560491947438760707106827809722271620007252876980378113333132273898899455469311525644514135820594150562061050942662358592081527447554415108192359737604715044830382457256489150066046656591572528573137619938674192114029443866893575050313068272438696591807664699266100655757206949590717075835331793160128041770580372960258503643975206609877867919909585584139246310738717568624646617867004424554166494418721794242358689777014519479517783863997584691203525571277719531970004787036149322208962517619124116102470080458478152571258835194656566605249713035431448129654867346852084567847437159459054310533149487294159029323796199536916936783695861360719718932244804750916179359506509304828955968006283942760060577235007746342342500953251792217351937172512736770472817448069806138326116562242449147171140807958373755939392480818069568806312673796806176270030456492847184334782754924615991800582557552572368071632825272760153565133557424835089645188702639035103603483535172958687781505998208153128587699108982623666913689068317141375852394553760001352889491076642689125141385775146024318790948453521486173476359602268451455283787282417633908078526973004310275341239830744807988611126597929022826992575401228553845270056738106028010646944570484347465611864734229223131897317833829023004805573445418125617895423252032839734619922066581730960814088354788947041154670689475698327655268347571188835576497704856856445877669325948541112402741270507575368945457732643065984929358452064472826751887381732765788620395077055605627994593286761497682384336351447257632373469585090008193433907108707376396085270647692296226870829793583005273355903934423272105465837204458770029177165091896497243152237045944830755354116712059216794227879221378212150209446122076532066292197494628171427236817916596103011690590825800697951932510687105354598780091685688357294732443423315837234963096901318553131594416205769370884837810057828879927182513728200202014728423478652664282476547724558873228482641480035219923588337509324845170762817548990358733617397771382405420018531142484623470213722218971184224243340853112885972340096105150407818445680261265042787856391742400335113355424315897403417311232312466822156405257215299132362607921930562784636530545284414399187036935155412283968509395522563999481161381210527331408010455768255759846432787233574675184565098993774974330385029323962787700570708405084859532280896137319729540152316890927717774696122211455439276913017626568602216889522449077551615392840343662165683839134897743293805538333506330064501544204765970882808946627484420104035068544775105043419186807208674158266575660379501936428942063472822009417723111479728907106717916468946135167903313897730158992418501834880361835284397608684627794228171360699590896872224089292421344944226979370357392853395221858054497965217886349074170442817676430616830746081770860877451883343107498271793897028998655165456051053685847894079195726473060371869570459551691109185153053213102085158140940102457516732156424138570539014281828986628147900633246054589919751617335740977557586377502137300355803359411298939303519418093289297201314776561546298865903369628975438572435462508215017180410843126293912740769426498891638290528443931383722466096015952396496740404675737343625313680514557047880712015808304626608385964446662857259556098767093637538966885445779184146418628005035440387606794706622789922141072663978683877634167583134839435387563582205484288782811047025599290999717314941515598171979656852921180387822721131609174784693907830971825223940590106976577390689772677093580551577224003502237048756296154666033845049857464883492702374559919523943548529363443563205003974887868952185159047681119566295427883856444754810042878237713192618869178320445057248974982645105965710199649087476251553455421384961344482300438049892700904714016676998367434231902845599245172446953349644981646301955490372113138929151573736031818952909245631009827597077908827604825473955311881033070125418422319840408039563779400120978231893944590879835957727642118426555604638272407967790621435647939198670203576292940481899449686809267777661105647073852762526806698662312825514211284010493574234564798976473279714292967884666865095267198901857904888905935567938095462968023919901943815882099916547410193956235058190856461787551179702189308887595046630101436114729253314375483156301568341232345907950556617324175791008006414941461032206539937545326907466837892182566517200371418168391630645412815021880714379159137495778841317426743206166127485793128001773389637569665493996053669873651993786484662312182331681327256668450563958452484502342158258206923276003575336106636470657152110181593394761965991809249094112162045376750953930769177378018040541131800848341706807408695477465658941245151439436567393229435439397924269488289369106772528786028620340800729838097149486047037740312783193026579404143659324542742646965206345319620871678751699001335413212058983702348275006404038462720903719506292941558621191349864670447960635899431276202854740834290501845712966050083955788001533831809242128106849659965181657423800916618095548748495523844804665193964144342646737218393992303623984179247247967180541213821217721102754068623981595340409862962885738310074009161426754007254119211633720129696453698070479387660170522000787696073484274603473756351121904185032060990204255551574264371876424673694062844782369134395169288195379179910588839596095423881351012462265890228410613543575658599663729468125895013986599650237293134410622974177484729399341150307060188805485248063883685525294338969751279417987194179872996193928416901788000181920155353969940143076731333418351168642255395273259941969598883222576616976797827990442943543236932061539944524016259210933044643093545547667730862825737858212466125002772375258774323150394959179587142934577986925675060135554871405686427590874872890188128442764445337229410268419866761596164632493200361816549412016676488247916335332846773547388839911417200718356339826910429297892111857443357080643650384144098118681192695999581557496277263768639689845302938203199237602321641283834380150146554694259852203417461302442895948257005731095966070186262066243371797484633019302456628257702410160154694837450603720469305673998769661694390770471447852480242256279048265771919017091761075036472369403047156728959486772522124150231599108262558980254179642637627196772499598132562753333630019621715286434119439200752037247853362908813153912696413333633683584640520877657798808211144459771774846038954461374208815699484405660599909693661608602606282860702275965926300312479209962168003255052190125468126674039477306355286309844140830073029354496500356277709411261236391930693778532070154048857593566585762868066614784797028304972442841588889705601718418696581731225613981001364062054602908337462692118394520528840400981808581521153402421861196880906533761827219540954157073299817329147608663700767104159534466048669210743296089036897521898553351658163595817105599276454356564808673116158254449702480984714262318254664916245968300939072357176726946542093483977531536745320717542249727965979406250667547492184633085208735917189693088370584018958681495071462723115582758180632842862105681939104607674650136959734814484616274393615156111452852415048084796838785593682971252860223603014518110553938946413583015697235230095006089821839576751463635283566906410787333363451684032887135166409893358430261086345913897840732316822948180470995105872087242410278788344379511196531227419436850523638126744506566703320585390635148596318513139182697185285798889062779233148959726068952591777676309744099022007521865220043836118611334757911768795195744484683631256620900971124098187089322616588728978145095030996373034640176735090995179171462481460859162307918940415622116764544599430764066117064231119840408046189002052069021859934643379545867663745500162893573084822796327882651569955931198519942416248184832977267391796225806764892702026756353300200558980945694414581181450274842427764730736797231680131492112693218334938388465021720444784250053729392887757527098505075524999131477603263695276495503284164404900468262795705570511834848326395176113277718920775449607877850419593939280298741506488787230937498940027722704617649244909106564880753962775443584496673312823219755055400894821171649996638306442033789168835612208883919432053525195790969594904281921769975966864278314882659423429837255552585052613309839663084308849825609926819067401413604612028454662920945759677824650712747509614254533506995680021480347553196298788866964788197158480116399284766849846801228038453982061854992766571750067161370835048093826966906779781136955873953353346083144423255076571011679031513348035217488756444609383075391186410593688346175107480195328242941170814885169505263467489956652870109302660159023844729303978627950632151139945266974703417548272547394042079252203136592471341908619214539193287052780657252417287259845157639292444512080335594254529044491242029632536800651980937246466443864496469230123690296736064794750629646300849376363313780887030271857877844154609614257050377346264528131359814202671715654619751141384166250177917154108690493008062578091174017906605807571542204640675682689523558753013464739714755397223378381935394869259229121915800261011605584492058565536610373492353605775908042062360137301773915391554238418150499590005795798317304032639568310132956627512538227815528618377999450161317500313795952976362655844716837998078967036868140852814688377754377025451647683519402970899324296009171419174849312875702127952029072156022261021865848877015438889665272724648232672985728804748193004846550745544993513698346302375158780989974444417715574101182466837050836414238106854354396524313964767894517517966296994904283517057353614923349157173269294984697388370769786073780687750520611556097362604252187841331218373659374722221276712303837884088045728482842064518130957732166561102017942823294483375463221650173850694969447334605031793270275837763973170483499561961306018560161744686569267585416799803206275842401307406911250839641014167265165289574205210286298068867816428650731539326364040687979112440217124734293638709351996727210562846646962093418926510709419751081077884429442182051307103169948619374919461543074322596076034185646980725095489740390871613599761237372346724450134366069697457172687954582384490118017006456260922618230089265222020658858711270830416303252840298815591786451778305775702526446868198377151988505349648060961623403572134917250646546830183936168635530887056267777111809464500864364189616566572485037052335306448309505450653717623293920436722470464602837249739154191541565014301657858613659596356474159651301322037966845812866455771922312543108454919075444551699404841435218030081922050919458451088243398041521445679111086817536022431930695166285703294081747050969684310738886763135338070576881002818162034967429159228073473695882386202221039214389122073202236730819112350743790549002945762629475305453955450946229156995412091239135437861039891438799255769171018128395057247232513038756921055807545098539683477589451530660309362129526614310150279068389834520818319472534574407568978490533645107676512273078229437470745314232799870178041351445339973435468382419718394571870047515092509463457394331392944968698186179182761430563030368814189065425506836770518742409085581074607210166046630668417746201116935304112210964014966599305564997578059955142041766871425879820824532305094837362465808500827864966577157044552917585761953947300968018922073907856213850155322274731498629088265926428062590512020356556731789141200342786022208986998477576279415136554635127039005044893169963706778917049367562381615906190210082884422069022823497652972163645086111618026503992265100185466721493359249874422414368142759660822290589090807777178841302427584111126513845707918445079793153285468459538624431419238674420917442803600082616837955791263513092751961543692974194441473532562215891766118300983074249779186812894694999445297791763834897554216011646133305598639780369820017960570542492782089099992525505657844345191964502523441535017594639538555305017472822734664642065601799720046018779183851650589525729937736736091324926208227907011875494893344673679985994044103751744256742133858604807602653798480093043618742283076458863151194712044707881273915282842808677007696997245552193456265306068996147831443033804650067173002579601044529708405411078268739347718591141300649205509323432139864313905068985679738447141014766619217961574612292365541446212546975696228379887285995920496200312892201644312392404129601990883561170799562693332425129594246296901613990107313520565312858905199885083207245414441714578707947636090866115109244543967524136771196447372133634246173210340828531810897055123713932738328683793090731352521595536713277854354070177524570209473428008041984628796404935217152307302795425836734804588332376713516315534237847533986866490327245947932879847766607140519773075347003508789226554815574983979544320901724719688271068215922878419848559135610888411623076483773278815366744250927781926271525619518815598644946355557646817807939296046704614205237994392629321549636619507780334271429125938451457788087063413046653743484008254685475361119801553492901453115380438846032288277108712634392808860403885933433097007290944024995822366228672363429296580643555558709975991510747058032069103902483209800825130312485117234049102275276496480478982663103061662780647490089916397046629136153602945718911418277129008990400559980242569029182249746928416479665349322819979319464570948847744815148257472142208905810615661419751249334144726325169972555165768701941215079020521176861106632097010523063474983813077734319687748837211705907274745830051990947753682275701557245447257248278735054776224264348066179256805758832283487997921201043692000260160283058297565168321962071436260782553533098152758826825426036887678087535869344072637476514619225081118360448195619452985437291112780902419787023972190664611107142345268641335021892494677690529009583987170691880446872541553101013105031061292980976266320121182258160146842687306239768584280513807024094563114147751243366149378790068926323791477388771445048110824450709055353921624165507268372853906129810641548118860296899159441516949724407192411350888346773633819251882821523605283401019530840270193992831629446929532084776517517945228582391846000025437559080082225598599998375100756769579677504108103703272677897215325465891465485612885327380707665169533370692023418817380560944974445660556232005238849075026176406368696960024022234638921536677182347269312695435097539515636083277233068473169218518610347455493263349578156164849855901077226817736001469514543193706620776562327100761931708515798549411278575373078952954277095818869118347175488002628538336090287540902217255368549248265270740698365818687940783774071038167774220952629861102274829373163998917168720924240672346330411240256684208654461476007231677801469597936391723189455814459119106369741950911837731554141646812087572002332202305852109428175581998345778675987587202246129477682857157855859468901274581340449887998021995589324555637284150283608874029046380707159073351007534433654788009698940665280306977688094064841191957768788888873940398128951825960762167449601235625122336597270790237927761153747497024133343611251171813428356379712702654492628017707456343474466528524028596748530576171049932894317966348813051558877114539498403533281159611713562575758718081901786061471535378969772265965200949310388942348450579639697226351365794445211353747720475193664715929124366559739047474077909302240828751093063392318704289833992650688501342995152464809789562184025512518605962281143726247797669802408182404740083971935352904508313205279362718469975345327931212944977735489011382803096811079073638255791927124753221339195785041260575717524278150020493546576021393114661735774064623728666112041557081310277260888355257008896478113597592467341796047416890187831494743813358237979274531541346994416409090149284960550543288827136769831444466125933650034192017823077654293224428510917666960009671834966284002734461306703473271608340841800301040514029620474185252422080748700938568778725088637972631778363484623448356601269168551374999385856298938470025144367398130931834028940096321934243599484472798286429190763138103260476187568729323480406764662403720810130125072509204828052746404868941498961604408561635065884023838968072721477557956545938108333229563054899210354554591870882757220642756235853295181338604526315937174746833754655045372930789149069068380250715446302354438564344306952419506995982104872504715469362565267197887397436800331080521194308646910114940851129480546077950208710197990414682076202928524495136979358732876587857324340943548068735454374705793451508408270260067840033165297716986032069869430289149275248306705071882604663369902268451793010983090555973734453562410967785165895697019526156623771937134945583907293322535347835443903261988385545820776542054515590043649111743477387480467489164256326448244012139936234803879544316103358152702658505133361038076169517594381150404915645595025273778816662537472453644925377694391905473061746935629360348099359018668746546877429200411728719645930346862291840026308266316615413948832080183128972701578900784783287948322068669659606714896978237471346485342085515924525580539586267633441534529925141756086198013628859495313884365645712464037332297908723513775985218011130889391950576043066675208064146950749730871288094771491601544023644649970243983555386595978042827412617084166190946131527443103239808266779233950608851970088899645015669005287907469586100441040830246974878483824231362118024965099431462886552236713740578772172007107353604461852576360983910263244578204908079873112380763635762778802047743892088453274207960785832645315225159006122076593928553836347548950851541189590429122731391115755808864516116059381031206165207618745862968332824434266713395061702221953619339479318067369131875046838378655855627647891256386751639672900697892678877845048489834742757078139947442426466081277208055834302683462626186812713281797941409537080048287103816464317172998958502259815044139682071529592256550293625438603642317498188551790893034039998382358259756833502305352226503813222832903614688765471886170698941456194420044421035490708974922725307027445548709728979580414576302980829630846634123345680212727111725318936043429291970843280176019228880233991254797351602919513815446443087147248515521358163224172950477534961242822198196131800388952996936515649391956638570345121569580516661316034467215500285959576714893783713137908102281068604137669542029823042530093363728902463299580578799919911665950131591066612104013132690130358147177453322478699957797031790878171536983082812571432497659700249052750232086953167567197351645663087894971744583892359424823846049760379966091022668254437882390424425834228897201205189980422161730744338124752565877371896870236061100415097088576464257871966968806730711898087475091489929340225703949097734328005836890849336116409825807042850469990546216952860810968961467583674071561954321955617755229539112613594018985828875466935683367793057426707860995160726428432347060626702240872786332464493110080883711281916995632963924706275933483463550236975360342671920700803231850822878826653716329705951476529824618397032742217494200542831079141805032609782644882674648536626582849251613719203786362327521402922346867566480027421527720920876911711178932634611248198766178550469272507145360651429673682272864636358441929616185812964556279349849958502538975333309966807777183790074697482682414204136560541670780926677250031532451277276260252403025280291641210871875723425565883408450296641751193127045477828257435682966305441413254010700411024529734543117096307467918570345212317426900707530439774380472868770497497770062062067955032425916132745036116075673486518624061155302714525518715740846956051591518840134889281256303220373599689970135589670798800209137993529086574836769934605944561509937739899438938726588527414142867563382589074213558567690703315443373239658264412922915981428666763433521612846015111651717648114077480574314275484150430960725040726566457825684773025176860621889990664992883387442143338774690730195024474342752448524939551582838338632225062857446286568725508544788782401255453620648745260772054784796288208847470904679191564543977514687173505329008515900695489733746450367895970468252548686935855662778176890861241086617141312356457607802013050110074021384832972795857961755899123562003124712311920316600681824823740250507922188555162823795816905611556442707885602194728441072798829637677405972197886993940232547100307927626264128562975550907711782763739159069090053956228984036545530348378801252807301450877928538035669668759243668502747404820009581656480459153959056660396059794499060238280423296017982870403154379280533185739043329118238103962475334178860263439854490176311761111844735101967042628798882436052321573975362861302609491842547070511576102833289538916719206141294067623834780363668272611024364468364711553736576713220427130821431808300053765205832070060831472475732591621072013979130262320254961489454695875121891845750361651190625574570443640450071944695783254889630028554151996258004719300922369264332310909887950956956812224980805178890435547985803494787398804411129028605293206176763674903899329489398457196713867889676720067891519476680384277072448725648260738971487292100772735248008360414994523042787844196306231587652863557764422654432033388696502416332075982334087348926306161882559563925941537789479410806881181643089843075208708069973746930568667432824453667164776706359715539258250994721060207022057998236956361655437186771780510415814056000028452550872834922321196069117820656376835866708884340172327295109791984446912792623256540259920401237172840618622516333384000561137639366144960735255939777794485759704288482003106262724722868766198897016408184517909449840365784338174155192880001698521963847630224315288441062635494227775928964475772647636693837305469480260831201076793511377623867816344094925811758637850106736128456737826271096765545257310160625261585684795097592197708422535147468556333141250940305066423412548007599868019436981001966272277030233472174801856970636133361936702725110117167723009324888355327846195288114171987412555478300526619612137974975751911222320604588132060336769462041617445852105523662407388484648087547139735359186811563367127291596308069014423997159763867953472228742888756708271330639310864387554642193545296778689256706315288652424557330215477296184036268064416049077299372016342132009663885122494904387069110176964101128983662824832580606572270872283536576647994466163269896675307752036119002819046161942090881403361406846640416701176046500576386222201366154528133998653414400510550160930806346498102032954593361784463268955210761276930717509736427568797205995238261714348982169893269879867817332795662080426365730222235374852001264052121238368102261453566804765677882387574880832732813812776875516128318817033615865687942104070286260806541854154239543952944460877110681659897886495050886188508988149697059553556691131214151066066957118666270588335517311938956464707784843587764533859544441320719315958784195053638179285358272941523721177438106148546563464896023977458968174576851060857918404602621113454651327748926008511333172742246981585082212765350766850442076107910141398582347448717914674163638915406179596273835092145479719296167759079144273728658941148967950595389419340124275348338803512618917801598966342882896386060721137526382077405004870899600948006927064884990996676906803690222105324797773551521443616029409047230045936581749303940292522932016017559329656284410049204322564192600764111824197792586218259681969333981509816475560132075263694944859650453170881443872095467758423892748623041909931839511203765505882947363237369791229078439458581012851141768883650651149601633571695657211758737840949704323973799288474828725927504328157677140242216589741652466019411174163135837314619691250569558681110028991628922818946286819011204003862180418727974760812254276412264964979134604986474838375643855452252621086744051259552484716233130843325017402230289892260617204846780165559538644416151587376730008562108327108070453394043987023850680469694398234562454613409055489340236646027139069253684513795650805044384805738525260655114628730691861884065582441226673848188476170802778467200864389725379868947128705916763338768492912149053376797059802378787486721224967450933680431216255283260988407932350352260591700498515930298562250448902901315455394129624459517417438499651143148415009187374036257074287187831373708144115706709582235849143224075981273392400058806123054057892234458579455208158727074221528191814560757572602646717513142402808529965926264025221706294441888627109263599244942545503876004688602211003041341578811996425987611501971427449429458456040457968914945688494849732973134008618817118461188130314851334553536685583984669490192794006704005193631634459248043700536279391954586679507649934955599166918085420468552907849280693287430942526321814299812504597007039795825980750011925816323973869977950769625807157062824299564366806706786399585166991472790934117818392672734672297628914870714450884461898867209088377898261224915570083265706736978388787764506772260519286003930490489495482502551785484252280812473785279535543882934520385649980418580431072626401749050857602694956068922473071379181357752037975244053657465459625815307428625895896043585113825670122298772635548796821967871363178192485826765965563398706712573226406724398121644223964339470272035904078712290352326881828898712393189883148840223510498670339978266829410287188708025599234363140622858724002502327987091424980820595793751329010381036845729487751193032525020700269085999974734161063503457235274868302448522783150132781638574174546632405355985326843572811404491294349374730004989381520139173847725418753712858388022047854288349858644837072078804558031534570150589589866857918008351830711102374702542899930144338078004299519835579224967696527310634113755449309724653531303319328930059869047956867960313610429591973616097331773140372677395868418680565309443328962639094229740811797533215348092661296330044596364858795772889994805206117241739111217617499104639567671571110777909229954379076774124357481556312047759799376810004187001848308868499147589075582091887228045136475217916639747337035162599939973203417371846042791629219595412666969362794431599904682408645513474813850642188427557455419596914627911458013257431087525289402119193702295584061391985154980069969791350437376561567570476537152134515213006292358891464737783981132226981794708653569670004157039211872861865034901898897029201521404391310076820161018013744627100883210334306967676543489066817334097471311211847251886143786092376354945053377000544010245504114249348273087888500690298205687554139311822976576887026011532604305095735859027482079726940774658541392418931711798597332129652939765031586778688726680976699740883359391537944403248427110399181861318844528180283483474208393644100908673055807437239361679820911574519777729887065758397534337503315571670264549683827481960782034871735957632227820484832736175304756558600420821073135181752200765237157033570479317651001993437880290465796347481304638585483685971605476468269650544091963962580498371264752029103128964056655880854749765417026175349153687941258656663454969867903349040844185983205429119144932438167746245435757020284441696699877116021159019349479206950194118280850545432097395043231384926507710511571147477117256129264522694246785796649685561595358135791975187136099883183878114997407810097336107204773425355547771641227935028887287595749717896471548837698676456580022934242233221656446075807644797017987515058194204850917961952018743789186092428042918191630092524397006892284196777787500993850697988116665061705518451132888236105206841708915070676519773609586373004538024826066859862777905971626328562302810813371162364208794705997360894360621077747486836210946602462724772756261733421382110962024271513200395366885804402515572836324564375786012876538058473981425288709846369124717393037559141640441743553782263385003898783211309886188827305508656573209809529689296988860624589527200869234449028499166130357716729734089853630258183487268702444501747089670189266039245303243672933886422982811041812670328251283385173895731707805570138971535975933368814348885451591291614012288720048945602100426987606910739578800637544870564010299906619909334054197567798221540525473267473163164809473517017395509445102069598933570860386845066318271690240872567934066300215834907147503076867572017886398973781409443046593031859144293120905375258340515478850619666751019742173603786419085386857056734508882060519711021729416195004326533353240592656584792183895547015577876452487227447364461367257708177528502814750244274528175606769906810145220999973464551058969373444537304546286728111656396940787391788052882980475033482258218048590946799293960603865708351647219952977262889705892591460575074544881670795184106742234542858459688933227596599935301876122631356253521580972562413806818033932711263762554091040813334254609039073198052413466961472381333387102138097126864006719660976183807660463399016475096783191788442472487109018381573490722126092765385705523899775603876935493227367764230305582775341902364202168555657290782708309998319017535620509550450029911331192405029172617148220564264153424076422289018529436557215853335450923045993205793047446721513561597866347411999398718285481933707824978712595847251033272785832979560068984738162582996662164877691045199432185515654944003696538033062411523050034514513987854419893183571961786121305864648868477517560240741366571783286981376709732362298224987945542749902800746970217443840732180446653842566246430725391295284016503750277874630745782040057715469351547014039063232535846729066560931094595358397352045370916448623791856414821641604982512131374449893561982286062069406900585010606017974705811822227232666614492335160062835575878504746139858031249902822018451762861316372325419939758228100087456497915427983646631350234995698786857829961655385889664428793711322802823068969446374476382829258656034215740855156030757054937376232774396597403781497881503789296829458227144769282247980141112951243696784870350976368411738870757782315592028574284977971459737772910576564226337411177131665013924430760000846688285447193933980445679264010222063138776351724506291747998400511745859665339430384173242263577751091972114441403104276407489282240255452284614339895241550502431424184925801170173657668074038863755916843413162811963415233894818537860075436417868694192827108863816550234798774139143347051678430025959841475256511079410882387454874698893457998543360684419963865900302933000992350457158987147755172978341105486321265283212669246047766625386713389168728158773988064918426700207882443505638676055114240658042968405047751190760613086059933006400475991457214509931383639579616081112101395488067541418798859483361628996438631584519978913028897167777329171823946944705341741590528839070633498524504130395870906099262819944814763159797942009062266113423962490840757492025542702870415263839983438682183149472787696604800768129740788972701198238095570352652634667128816976470442902190206996056463775923446140501054104571557602373927795780884270071919215691884752326515017236861937738856292054888468077053138451798968107577825134659510066950039552091428689373791553501559706386919301573984350682989188179125927391106718599294768376634231651410676218200139322646182597126417050189318545235157950216791680390886263508880600092045144900648774377579570132403641612247900658722343251280818979820761813901864472096686490246578124838197400178021482205951682265787999535883272453306407204181336737663595571830214308523300035249744888017108159398714109441751956931592469400809799353639347189413170427889548700451499587442121553846672511294755932983949038395640174420853997965539860092306584845062310857231621280543498208954282315807653772547107893680835584002757439596043256630242406809462292506725683101782245200894236885803975981309945607403631220459801036394159028009925383868377487924313359119307709308748673091774724189685039980628120205876737139191940359541066338942052418833948118470281676042259596719186554104535878504630901863881959637384223500334688637507915445539639551363276127969963748019037319682309499631833136357584014527028191157981128125845268818874036044071100798583279114272504413329519486017377698331315050722950892924715801931292381669320913011355586221922401462347137912170522060438638109851708644684465850070078187202826745268717476552542807894627350107160928184486191175095011163466464334569210735385227415602700954255336113395058526491154665461890570504410761256081468024897913638109887563264823354714086205309039222339736158911688570434709580120643576991810753911125442560000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
22000! 24585505185288278014141317326283469924904619938275952833744099158512075508202147214499054751957497503472529058342709332738599321366409790260017134852097947163036966057085126087726057594693745775409186876039221557865020054874671826507129715821352119089341095499702827087353792628119448624818618514985238671311300415691118858817915304940453240622243202565496776079657696126504440579982752207156120177647689047047163416442960446394233264858842505164700810801482337895910001057367269001040270491158418795684689171773282293629656309858032123164040022599174427120572506809785316102902679651274924275075287567589816392804059934814462669972070722232063093881217342657813905442691430949599075125625403640532599370640571086478054662657649613554112131187852209002519355061201807852263641567205314823595951613315383735255378963905706409535114606581709738363129184364114436954196455460158210244882351830201898645358977318803257296672250007524707272209233052722120194452529608266323173417226344969449429971806481336058531776425339421032171958302248299290502154313220377991931858858483630382264575543406133518858564803554836026996155457105218001303405660188031361234148118039032287690351363906925233741024974442493981672327023065568170782647755734041610888697390691638467999214708630417400231458604377253596269261315873951866762141801727346481417663837426064715299904845992242881612424551698420881723451990226739391038556202842717545488085650524886563107664423165801152660345432058356900430934385032138812562935490539082843686087174800410922158921368274340585365686171956335300607658867905140081593026287204659771953173548334523874711280290378618257536287339660497118914953962217885808819638353055334778453973182318871402401998061140708640878411269705712529580725061708083133540966052885177146181240825014275231780540337647140564865210344238939506782802696948979431770598718126636504712355856749760820974466783691287497312805789790111265771278915448990779973813415324266929177676409024903848773546625541674961924420679773536939292967782305067959212607446070457667973808825299526548726700223930527270856122342287558825607137780617620034067489381019428886365006076596961453981425090120802729666454422015643136341832758491874402630768921792568856340207696344764605329835061728576664331498880421943889406966334414111258635233173799876193300814305811034548856749134037414804238320836631494576804548235075828090147709623074877381683164759648221972311590064174832248916002694672394912968661734819164305570599496435507775460969882115517699493639288231327855908338618552442569395943154355157173727398487481785100620371413487668590247569746460292453745104708861933799101092143321425643891063158199147144178845159009196121774659550750591166030516541678648114282283157996255802127879860970399179688028646829912839507353251763690493082090611930600191939935038121190841081987479237488156490832561886002742763901698040745056361089400493395887532187988596849772761744455742094147569316088120828452115348489462765959390736647016599530190340661384145789548725753813905859640562516296287941036485275071146578145299962004281635551695552023051575914218139001942989482941315936056316669698652507400906448361016222996411351329799678858881321963350406684294363694408048546808695473125155183906787486963912238007848139649137050837779024300584939481781493893009705968538849813631901433146355992919928629724759352695857287858042338539045680468149683375704990003032251564877475800970347423561098216752019242975534170653904067319094447071599005884531049130715918080807418149174479384811517332726379554563403831058733093177077292062295324203532321086070003484400834518511708513539930367491978606282855873916699173025190873472170715114129914491534492209868335759065985295730462686277694654580744082417188369329698444571300539253226880700790950172494180221144091016149528571080677366846608766369086639695581092630432539533579622572691198537793443569640500843834821965319996603715773422262559706749545585903427807878191596106541143085010198201247052330360295450867616444854506644949224868850292266228155091228319687885665262991998995013782410919637564016137394542303180388146012659359848670352094955012094785913140498933905010712795761081481137611573381621743422430536165499777534178180606631693724347944865342761726718090474431389570217055597584248983650472682822278403324168711450243378290667961206525374794474308688968006906071047291990105503263115980391956727186853775994691412839431170824237200816514237161026637560115257231160481406483422659719777896546441012397856482531953482341582638173623402157305967316528024609367472300266722279670942689133132160752684980032561639036098024604790466985518696885408803408789630475622461957610475828756123238454006444299275156479373711873333852236905754647969012675803999779323276526015031992399750403588273364237720522796816917531595264870313119681794468681859920148674353595235057101417905958882023212991263421025453902540561557196457223411737053536853014885877171094456428219510216104795727451791165753222583902790820183795303930260824216778447559625152353814101376587706794446893742791533691172352484141970644919111590203835482366171103994262376536376434161251491893676274291862284332245269245000275489480848637899177659759798801284239827596631162517364615326195086100707106840090781353762122128881894157676485057628888002051825190768943992829848859522108460696481165313151539994498185060387291673834977028968492483126080791539141352564994098292939245879976307045092002979111123434713084978224119445081068812416573464317921923983408448347667317318080033485345713027397177353297965966240641948781912313897561242005073618770962389391771524432027167783337061197523815403389890652843539830214592201930535885601799016460656723087967394205181046974732887261490272609400404114384012147129134547864910766097850451513970840146194601241413005318814888312323351008218290850656381132558915632239672610844313944556404986245725037227726245463483343274546202330845438310797874259777455603652698681038611575788240760672231137187200024453351090122790259850663425473591162816449866053425830160160720750395320450662524083151484069897072749750712850749842737478774452716051789095308600993424444767045958275276362580184503817049459270287280933522795468472260405007966381075993053953092217341526778167633567680660337930144938569541445525219703485662714011456617148867626616406447776257664587093594002576153520751286615711752445367879996718602679659401524209556211027333010327070098027072525694669826077735371627949291814183249957615382553036982776519883959067684281979378876368806387507655302826778532384992879319396297884447843170055090873028426757092873379446281833555228080883148985661999977327773954841561860953734140723011437776701611260470004384797809418709664513848127354844807984679731674272283043501524457703286089412885586863587071779070430119595827890778537137924055302590091451425550179122335930336922742875622330995595793401712607805510455144014997528027585742929218206875354588675630745138355485775367296715548662238870249485536864941607627669071371263730706404121739295240998608200187153095406614249964418785857065702117248911609502605123385418379143017441496460146906465539107728469458763983759675885405417113414222021986061056515529995203696631377526857060270974920897693759403439425324675954161177201799292314760886601952979451904011801565982380345429197597870804921859815880667657219867276047731523967564533204559398795432667494500734531236861707999373086681190263932004754792433878511887194069843480293051735567207649353450398171886332674684822817233993320758365385564644146271159660830406450254504418202572528645362904346007015154140095864451945987830684271381878408672962625877758180327003096894007706178282518921968643491692342625600673755139128508632797398736101091074943055146963948121410512625172180335228133962744534080629569573636340086452963458498021011886826158500410922224757220861972102310021568848024623734388793643171020512060094772210155998335390265996361515756641356605087027477748237529009798228350921882244345506104749798477860947920483549695598648400215111150493771318740914688058250656699079293367580876017567276835003522771307335664006259456376685511292840754214643530968961339270541001398155145274436140420242919075704171602093169985469295825254409775588471509367858391188958118907509284953945300919408107065400938434577923167929696414747601808474879090389998048636756709004810136875355084672039964589523500254719282356235575160057437241633870095884895428145664573189889774530428492474741012594276842731985978603128514983000930202093776799192205671938806678709115405589775356446417412252357503340182345361116836645480453728612343973822064125427511688102253891445257233003630659965779007716051198360798336865717953433027140299780112221301485143735120724753727084219065321332414720934411207001582386310756422039559279235989532872245070210912142264958728557768516099512999550214896219849779361623071945108602717653180128803572713341084477975549070188143602786775699679430921314860329031110451985422415309317333301583728620004181871489619193036999419395954361516170800040026567694902904951040341563743748876471956838986047920696670635160479695305236477641285003887241056429429743974959714611958650206945854711908696674389336200174826966127655166425319294265013393816263303370226189462713518145923028369210325888635428412435688275975879726239631497087028758103761325289654227843909887337423443214551079424655457176851784426255330521226632280964837974162709695915097890771095551962792197230731537451068781061915527622038176412751605081013211704519427885786227058713225862841302825833909179747689876586134099754255799004454469392455229312649013217313298810406927712906227105926176876668784200098509943473197985383671349042954849089070522931426846848352329996572103305684083474088135471065730519293450538785952507396457357840494532756325869306314563704926663426202725030649380134983405513508572268427101147010891698724615275282026381683338866140481787296184114941677086983525531564763263412838718774487814994691163763562928359293755349088581417373564378035185079802976530388182592575314732961840119938019703738466238075381598691506856300248343152829395459485788718066616248312936357448872610587969945656452565889202452980596342349178685014533234121044479966053653411926009780546388073440158102855809187805085073534957667813858042993221562335684117310049671562777760212768356018458943860398934819183576751957293637178117653102927361710468427772258942219558069887579759355892646812860222659222662470340096927787980805177163781683762370450484959910183730087924076857447624036053442550175221965778625877826055312644532109947289615298221200404221062254874021947544090430448124423005868165621242052106707805593416946868514071330156877532840147097099887114222367107184322160241319339844062045722256481495250077297019938825640556518089329732036912766993548689029631848413773219850366099681686540022464300545822622887932796476639008680621506823264477919733503763922469869911865793039277897116387665637002552359616681378150058719336156666929953805671440891601938894214242281258753395456792717342437625347471669546957269884332653618991796485866732878405541727908882349860021436926370257738256559210148015961176663233727388028886756001323458932587089462997637719505344903774963615427500528794085854658869876541831660358622431812062185672189753354020664960334267864683371950737452434043441747306124521557505532704092609709961928859625723191824388090430716509994461673655812828251682094676886555181499214180462008189975075088809393904510963764929230677726376750788020433332552138449603530146125212041442259851155060658691714556687468368402622139268576509826253957742643308556983161773093279348434356257483070723806202449492568236818942897634626912383033882459989903816257159647196716489296301956373472818980809978055638946449423828102399373241591732138387075105801314687580263534525383011693977990977702989431013620559401169654282180724516228140367070701652048428117478400516550751731568065344223541649063586227145683810334086678163021182254791809019978511334662210300833921943729070863810698000428934467474165953292180370959717944189149876039780615118955145814140580535510441451345472166426192705324197822232391292169498420412705783925095271200579583340459253749619872033673399214836042083797454242597986235562646173019724571339492420061692451795592405586695274868982457139723851819008141605684401233428189354853447151490711786774783773235237842317454970234561507423831267651467606150169311047747480875580716237448784800410603837649770477013175689844025879636231907749677239793862163052853241473278626232752358081857413598058601289976104861508847817555067321943585476998139289265683613864622262297497147210849905425906321966335195888462208583364864690343013063664328220567287959740355536145839221378843355991195078443009656460114162110384287641298097437383486994995945216270704408575061813171122463768621664547177347116041307636546607634733183108666529354685773794987083553850416246664169243688017487838593936266137674626610381507412080145667960891146493333462374572606487723867426012920137532690817503211829723551856367015059469713673290109283956123277088308873869268687399017437280745859028716564109320113530246857407873362939338749762705028355626435839362835706835679855775903619984904544366366941943223341117821202145901752968114326579694782479849711106087047821499171788368890586244486493180219478374618442095035645784025313584731552920580386676269835338250581241362305147072321141558968618803739209692576191751111366327761918915908727589438601016866476556622952777236960747965904696949536556088953976274128364927209848817977008044164354095385432820789132179812648983744625265824107099883348570041313221061261292875793634100932227897906973504813952629843809468105526784955522551992115228950706767492606301938492096189007984668846679133304550706682948304969722917509465654882448792750540018775683247559073814383266895719179366487109599834121193207374925438919895630595021607464692755970979590531112155701632838384737979793461028216876588903294630635255603091454851765417852450305197025681502361731849985057083291771837086123221365736278146041139874263170416811931729724281031355411837203625194577730361158786673648871620588089422160009733253267123028471309769380859853191647612089788054103199803991866363277794731069542175347070897504366612652763653724266130999661006821023110517408569864500987555782507551669101188102558772385214186507036374417919604118418246095285297739649307138419017415948936146529490487381817048164124848012102541173731916195131294990131900321554330337233999543984863505916151144207740633491815080609910196053752517674724595369727497712301020170290437837538938928562479576375602906405574036438800950302654606717416856798932979865471135208211795777456586231909650532305272307586891364141076010506164587702192745515685826724669860299177640225957169966261024426885768169819811340792074087924960745353773832725400145411776947892049408692683062018745034938710663908891515210038873476026432112291008708180871808424627262183588029112861693367826600382299391195629703515221921657788792556158904400790663230472002193027733350195741119798316619250719683109299678768707187141292668730408013093830310127474270421045039358740501913200291983467198947499051201940669317275415210346064714212912845325236470120747791715934140665806494963719224275641283447458471945432358870910581153650667568180412466616964790590505716325486885150697183343310081646905276703660293393057548751327943619944997088820986587115384993332449828274501233051291958654922089629796007441576495939073947874672060342214098273512479395315849188407823696336731747330163732556509333024492326407032498372158409826403611415039069483364512011818841260812625682983094113154467245120574989026400800161874545343144196124344308224132377648250628450141244946361361941908046389270310273556599293143693083238408895896979187574750235779954786755296782173489419202830208856320575894471928986312547575887833542446242067339481719464943139944927821932541080977121488220325050059453590384610850155946905819891580873672269841226743391809772059883571502973699350565880468593476251618214960007268931828977444609529067408320236654527164687270460269243778458036662621445578752005408288083285352204354915097177465978448397710059352088858296788260029481996726113701491188046287524676091990095751397728224421471845874275051395249078669277198866190192789559760288615053466049831264972091457143364589172024786682082918220763625744569631186371561325991359599447783112148746927512287411583833853813148983236488819512456637972129364390355473389984440263014796035181269636580243234294671731150818344697548885790765775104728075589554206405698307789860040947204522939959821486375655814351609949814442266824608443979744961745989565852139907763582860924366532542030866250817634169694744304996190220722246698855190751515449481425960945689999916299800115359777884771270423707848912956125666172902154083876705938883500754430291605297367456129195930817296585153556228213004828828849377046808980952822749070381435912470732096792181013849373759319086528605933902224061181249583409002797717386523814191159757038977192654643290650935769001292173124450180747248440251552942960342163743787615324590630366194873777206814038912974297220582346606148839869552590158264233920284858229261072249875314335824358165788039881597625707552094457463752983711547295060706061433739656526338742040978233702614023904409777065149146247810317050244406244677894247488620870543969024858472286954347634674269233330763412074927849736199885431021523206243542107111697217232226542964890307217075001100610924910279593186413061570420403164799179409040737690475952503138192556660329453301340133882445289112069541619802174495871165388580725433767449522042458836864733840518374357340726497698982381764312443463517533378866310008188168800022800009284842936697730497744169680127473220150488307957364084340285013121261727997505683366437376053661478217642174109641147111861177440041635854793153107258254736571404292208979632576628096618999280272458585752764388687840961700778794937247108200094351660472543939440317109480464658573707755681214878454569219398070407443714439261230684371103231072015601158298107941924203534279846419478405047844110009738069417844618834676581066634842136032760269324920876023003200482549276874446113690870575090080292518330299234928240782270770436168179081309328818851853319561916291355876717975198077288439319117949682900658073799274687640306872126429791854294875554394350169281719851104895375772963239419026571321364965570332468221129003553784426902276193456143484096208705686379155020968341533121074667281069968028613442367086936925977129133125181383923039140538853535617492881781794207634282946114729476539630062174886280333743791395176228095291918994547407109304188997411573182574944266258162729613692767614414720983662946322662648707296121083014444953458027993383695041481994440225767193386991453553832322302063708418907602081877894400450874591317500879004711852618490476057068450750543788786387344574742912882078545144215070306720500950346020403873232896523971342830379159980003680629944664332462909261307774010247082769025232635322751586269884462513650390389579752549686558970823677797920328222301746638829532058639195304778683453869460432297527328998922113773548678986668362722274149703676281603794208773974177489615757498292013111558322419890435555830033936225995624443856862322990558282782775145560794312485465850673343536369644069398775994207305714742397295670724023914876588514145270063649722695319318711173484523390089658787633459691675324301904528461983945840943776147121055356858229307476830466159140418108207903052427470180459412609554880185038093749208303462732443870361969720510595664063162203224618470793125112077765605827357204702975596326605920495734101754108371570275684007982389697070629173961403478291992833992116973260008824968761888921126921941840231028747481393376800833206713881416751992986529662148207388466904493450002357200352474307267047584915587367966048057767003097149768428514336282429002153024189177634775957858860800320310223685621290658418037129976624155304570186290271963313025394883226525669076830637162217153617574451071064229679233242941539377905550383406349437306733703442160441164919771150953241565230015062415679083227619689313357191526284724810256138509916521856658656923077024597582523444582038559236951837731432012372325485011243422791375665811625689929722881671057526636098631986942437896727920671180464799465143915827151453468454728368500152655412409997259458786779699659418080239741613658299392386429176857407205498773253370907783948426755848490071036112147845861668818522877287438964081966829354075678912192234674918391532260692248299153818652741642914459334578755394086952447309292240600620389332915003966209735669212266737325966275477908102332601318543876926017220666025392731943207797933772305702736971135795438817153568917807596356482733418386273859443013388386655542553375098719031948800198038189825104572020220797906283722328512787858076983963611412608774608106258235535437412358267515158487495599431010097416320973037428179559567577644061225226585778748146628321592936561099947820598350091704007755086664037769950533177743279194172049023349188210271492138705745368819007213128960508592908146139190527237410443907465742895533296569734087597146698946297998137558390179646695186812259185041338439647355270550046020701773503362502894764127242496927882459682925854598502012571625033363747587525018362011237448823845562369001342045884065280726365488159300705410592102897090194933687294424455076952814244401985389702075297769616099517042980358666003385730620943473462558281238366604209193449027305009127120326407066565070825413995681116502235512902804796046944802700657186892994659433211117404376191616231087967705674761101907677431190625261553767758527485574392926844035172215144833748009141106835223010826446361137795627745793302836444900169785062109010727147239244074417727696104816291995029903861247051550937226493496885995637473532361420512073156785595317077868588173498030020155415355624788520080908427833939814934833575792532449657756544014326194039369759439220795809567535558483260643346793305859458965140734976902875162204820893538811965743248173752864473643074214205212573560739703891550857889699680396853821110288407662869927203402627504200735757213881030967762068310732599274707533294319225616764087985923698984087997102312760165846412831037345559532287621934794216719151769180749047632994169946090229260636987151112095532044396567075640227393837667422556528588343976995095149161740989815276340648704467482799698126060070075550604801145351980388464317108255940660721606239334062612138730890522748280951662673955303380023073653638487914654436495859870778748612730240562616052311610129791147291630612431289852567360653193568043683030634021008616048647970909998693323229832005801489788950642350475578135400326702102941626277067197987965490714618484523726771162573898260795263939485774100057379890641929241095415920968494125612258573267072072374668492356669467313162518630115316246688586082085053110948359637834319726601050084345673032741846876250568279765890051853778670886293567360822906787536492454196218600501477212090823164911533626223710392290625655184520511917265526665189243063703042619188880551813825958525779199867157092402083829932737262779204694858739091376271050910535162559515306709926926461189716433208082540070649264058301554688618151699969867026967105134392975309725845714078016248632355578104317172060072808437163240079657979019822028538363284631842371371248766382212542370310854346681539008281863340914424073275062421103900961151439261932588114965293057922148317386126617404242092850190430796693712321604781123555278094408057748063402261875772145039182680941682993762648195866594607559638367641622030035709070650685702120010297538682094803294737180888467617934405230474369303487418877134313482884869862609670999409917243766982523016235336159545291786897135208210059852541768590809660546802435995119162230083406272276563825579257201629228747581608518582708469151054769451656706649115151319623347232063997185785139877281971803971722621221154965466460879436641759345381547561594423215827694507315315773669397090108685253314748101820052464510239950482357255735726802369868203583803947742531079403671838214002968836809965246301889716405716834943418916085781411966381221770510814873041599149659340258493757144452165537889510497802619801315716150559253275576317875317939122221671781276913353275502529492009303951562516308077821754270093263845675320694951067548261082069089528470361510508048574547014879445294774397417146471741021909623065262072663313602258537903626145815680225418274553798920906666130781642444428873491065390527353059424956477009463029846278870331304020116431668411909834273985822484415298398859734939355485993019806144618344430543791010820312551955654129597372842133685579685183534251935791317020007779810464708639369298000084623511847123376588551897396285060757399618861852090904649169460588434971367952035967269156590647896787957752251922291004063092935349244839169029977767058599236577103808910931990135764198143713798932786641649691362575993298078103027976300569227547174318367777711761177161501616482084181490004477293450989999418689984163842034484961484357280852282017557160558756856030862630960479093087334303503560187055654518144438189117787353273847782736751174681723907854906172853996569996809518767812926292931055495986670451866944365438771345629597140698127396589313357308198046266560615112179098699588968787202315339219616860257419572891269472826279134117785037793811624388764459392040062248938568513033569415583735750794939882632493801478811925980857055077590417532789708223066870553898364086593165268098070869586953596192272824947629920132248562739116167031572030388005716288294711825985785850507946264953938604381396255608814330389669591473785771114332845890319081777908156121646671205270313912562367504328538664680723367724312928335182605875192136832539759769719303943528115554823045469715075767515747932639967379660335420485216063225292306448742302659965876965558070410915586943350199770731091615011613500381589753345735050732562808765541878568093236111728891602500206171937946485359513660434920807442020289673907450934973882014740808603187356611071434973645142950355564826155017737851556203795583020621465468584722402148322219143505024049624021485164445710908049964077102495539677169337079337977326919652460888057285985078206524877228360090770133828967957533834296995253329835326835061934313167632180020603090134517011308752633316227606296740837906941486533343991625125342310546484332125148023096103268060987168795863483997930824757910334082822245010072465920266204175285798366088678216841463828945977114048278482333706654099739369952667588668594406449123159106059418496996570924047138912270534361741825698533602921601630694924425964001339412614816784844297410845693025486856189211004416682105800096726793717035837678886670330575257139961293292283158085681030881211783179457488742560484101693517218656038658708662445971401434081533211368083397604118678152598403255520596460274917398053676368002827130521007989198256014525661670828939186028442618352777129813841062481614975219572756532285361022145070179144566586251796663757952336591143157861904717831407838585461503422340746111042482783659663363097819408927679994248673181431203850554827579703345420551484774574440279321031530528159694837824036835038564840125919657514007121427777693581353393329455885525729658405492476017077853103482048248879164944555073819011105295343656190357749757166013170082003333922410618589276784545954390917512329719144353616523089546157973167519115089679822467759760119471925338154637556397705906888564641138299751870179671127016658688612817734243142572867305024687446512848827791059669675931175827479065404400658369420683176739666375390996421147395489936781913001260547855157373863358065746195269643510605579723510907612375844105771899326850524414313503742965026450363889477565235251771227611081097658585779337290317755173275209486879449939185097525266775550902877202945529219764107926733818348158234915085434391122743292635280360455438396880110911652818859133468769687762628611570905096399179743191707081584086178335044754640847904158647228364322838045609206983228658389522233992515430175656687912184749136598389907174235199530828394320779057891902109411395404201885930145473447712649219259435019655873149213794279701439318279750830819103924903922117950118724681684925661203508836651323019248797138492296219242200056654162421374945082620463013244478923608049993826027470357220072022966817418166320625725508643126765646399730465674135454802359780918460121084983826901293633879283481385546773112271656329758576139656217786992341137236742874700508573336188556231139901225346619597826991396808489656694082253692627530017500672123715954811964896059775554697931714147090890806268205141958642600246495252984505951962435476175293378315454606637862236489386197337274311364269193386255243121835301057487186832773433745711394485039321650032902321480031164773038583388689844068138266705288528901377118883468272143273709998759511842635804951494289197226082033102449322887642622235498942609996296074451320235208636931391313814602628859963376470726384586530212098279128419427031331464303758871915099584182791625670434166474071043639397990568379046790219850723606001354464426905326448798406908303883139744960044297715907602319172860992928158913681067681977532762362276017403458109326097883574049214581092211242145911632191900244686257305036728454249019734501391266328542220931856969994579595512258743575471163958489954556279420959206197462133592006552319222044019383920393593313155815504935631591577491289073541675984634403798719236943183669355507336365747168564777902690268795220602705647607871488367819563487421513531576773795438417966507881433072321549034449456537190209214093182223344117547457694880254879242104701920663696672015954701243870808864799719405887735748461885878221093425608162086957680739845828438051027949079692465721917573066858867019204501090604113614597862740065574943287112026230438326664875358556303862930402096754217372252640889619111735793940398448744784377166721985599996940195881097321881535465458391604347637061709937697833711668929861548129549300780064373050093483946259148620609401028723303678539337422005206410755103785289035476251740315415547944569770014265571986724842399939229173350941386348947432629562551611802062060584479882926711403412252209433725497652663276943920697969606900276667024761644026425614035815960526141931475661442382460754860377711179702102603514284773277401757055129504109619298570077590498475117777407991456090667286883927908296850156406609672365577689284917623667022111720445244118765204429438220758686726276806037742347077423089614912467316337204705524914314060748295671367181593467099220672464720819516497258797742034795494401713618028734882182841608973570619063513948182335472720005580992779638632394803607519941201590310183451065356393334869136229691300731256129520696847519397268934390237112367701869898343810320440963628279078011850401459241151301020597262684442699620211843391605980687574461109350806159653903863028054698478362383733477391835115315102533132633513411605585939300610679001911479765728307515677040670312389152530414491907474209503398625147980334748662937135230909327411995119242394585560607106229274901281108593073817433649317897262010123588440378948768996751207545983421225602294617547308453115846495658123484825015279592658535713165732596991293834672383648384319567186432788894248347947805480340895358159022881011995373995058422324637776274599289185187638735898244335765882030101471846152356932184027939850961744372178344856365422540272208150800121317970072170422010321575138379613061036573475381545794670740919983815051897627094082447330320111923090679988508984784876953960231974848006506073946919124617120043661297298152516932142995953839492156920179576577927372948100711317726785652958531140117525086193122782567217049430670909010049603192135180026884349693877224724133458051425698602024131771636974606487331406364223317414553433390039848933686104815277088271018147642325087907691501204968987830889254018646090019755756565157392404441116616767241695688531010853929767196594486516107249862790565526967075020591075486638506003539099742896624652741006017927773797635195836602663020901789062790038763265110859473856391471777939742929986395579186434549798892780294340830908227440379670909168579638539283029422815730525837021636166328687858868945060056893418815215238534979467685810544228810129748412344508608804510080534807099014916641451317732008180612953495286872421517140035964770573337365491101674407510536010783273654518235747631341402096240863061668275539027331507509111010823873539193266119055969578560638684873594940490523595211934099787567810833425159986933908029252301409839674233232476570946023393151114657551076005538495468225071039495457837708622534986129788558527870240335321895673693060042801718596848747506676712546280655685153686954754410959147463221078997929816860614396017503968675452795671213021321641598569598299980320965906748129153600458842399433593163489904773550211480508281596669796747082215201952155634694718450896235570658392807847834064553043237691865476352342530117484089781015285686106486508010622621512296968198778139085874112360219230358994414655001939645329025855864987038318219911002328699543477921501031799791443638757609597605029992249589926475515634367782735642085888014660123789936771164835344614286682845311489395786571444285830595310777942807433466305209800495404187540876899737590792115484746278623538265506323755714930586373892647882623358054399570570136197971573184760381124075961136414963965384611963495180146862656382427039857578550304026296063762100549983858368637099213891845560532758396891116299625514772026106648845642670758780863348483201698802355676657176680159237623263546881179329403440023643484942918122543445818837036807529292604157484875919297144855438486946382910459122377950474612959460879693969880617498325371029580469181676167560553571406992978172735000907830456613208942935904195731432449885151395078861533094371528208083363454651097383254188747663573320156577757946407116903132665067978757568255523014814471318884744330908858864795938991782469038278127896329257148205190900835281329407537758097223270666659035121689054613332398103800012061410454888742997324738024792019493863270088345947024613120034081920795865273789505755102405543280451043041796389564800506972437265098532841922839202022558960411147331166635863486710986069674706531548789277141702951176595312543648252628116284279011832023455733112603760137424194579135529895954045970203922963363057208322426820384036030341166397871226451507675664824869979706466252663637507962201473520101942763719678011923689029482244871454456099648593654232432168274048951241152370833024890234537664312532901764765941244425569894449851356430854029075104866943577479040970063549178666036191306458157673673301123492654725539122262488045593508767257129214780601582775844718627861025164794441831896330065235739342928341411278124278402885267373912715970111862693948087825123260766822658389249444523921815943771743790017186331837427040094261546250074234493995754887831073454259294313684734477219364024661496921054673944520141309697471505475876202512373456944602912857807580411771288774370069773883688618153572838478028133155044912259469161345095985578930766390482412725081261639394032675506119790316331268087752163595467506386175245141425424417182287796573545032406542013034102599226790796384448801983608956082507533265169583227638636797966762595066732975509734199947912655198778912583779394981676691424988214053800440223882638818616310210670990394235363000581808652375356836994076928641313006008163417563128724871174984854175273704448999445491251497372617168778589296087965923029581162899661843707716293644293494235120382832590318789944368889734284092492010026345285976381655914360385831127614411786889376682877591331819945909548641901097621657541839372834592013885804186249657419560890451060098593015438384883849958039916685997067427135538005784964790698658362871104393793463964611842041195621886473805000709331595991281858880991643888941233793433456120667063978918978504507362565437625874135143275466293316738038382126440154875083853997430049048024515906890578748898558386330061349306060093728769330007278338763073224768131737442959708374728714546647081809387315757489399193939843372199446325635909649359165522531156043954099357086656655785833705560230136341571908484760558506524137977080136068363092902498877256889096938932755039223168440121666190030586424138168117204661594967803216552205374229379003843377331193656925902964966288151998493682772938617592304143160833741949105069358268333582321642517880170135091795929957963266914617560929512810612027482315762781254060445128571854542733241087114937907235991469689074295540633623048051410054384115458093283562841267392180248838792410444237656962487229721217540071237131256550523400009653076746399703853683692170003965537650711867301340253713760623614736596997198646941938549150760882823343771615020500947292263165933689700573711691368571372303474502964851469931594555976672909023972445085978334185626325662781471783394363210741133766981627045759643467417361761076212573420693617437722999700105430919165303410652871483340871581660986329119777210312326932110748429167137671256489672825741856388006246734335383547482481988077096254916277726007540281052826943745095726887263158013737074129486156373737856635728811451006257572899575064420293149097121723021224054765725277968501492861807070301541849594993144422308456985743325203210691101661648189363300695967844232717657546214530692185983520146108684827186119256334828224896649982041040783000926870936790424066977290250306382863056741325720081980541734375516466783539428124028590191031440257390745784708736406169056800190477779718369671263166456308783720351136048764496110609747385446268007396568802275303243029623550154122210304664176380348807270044149851606479739693987557495330302689849953396460830032109423040704535947046375372985199888546715960000987141188034700582469215099550760619292469186259256793290596851424318311021861709224079264495415418227315541130586875172504436126011773353710954593684075216366800127832452849823646576315301359675744508854091151518256236224940108304562603194975137836640062201397020073211187765059352851832454620358092104338688526042757628436291419152231220480392555953741513836498559827260123545003518414589507391935265026763276999259667007402238831772483668283917128602420080948445128552179398822239258889920617221029413051623304817884867340910882570005725372457502616676456282405071177299114152183101541768321562832869855550336995611523791783867295891938905188194621783178393367558226706574941006575803124634875030984975799275797568344377419491584600941277576482936882574346989514562094318467340542643138611896759920696314823689087126878462641329900509253254823317282597001899319646217425820468899187043433628522337225944656594248520244813855726336762686755147114916935818235729819125196262587576568582749602062576920820324768712282661415018027320366395261908039612949136901261446709088485629373658541416506860444065945055302002368651822257462529493396717576597395459831623549673179097009026570212365178113254060583592202151352471536440543263286034930732874284214515344147528999447792682244822750791070432041077979722066931992837919683788377784065080911644443901516080086957415428590456443985499272530825393155300301278771620339153824228885658365452448997464982211135623182989705996066174693441329992845637502103840182105356872364988734734193420736289421897177473425492007786690286834860524006173323279666638277341151369420201974410839514675134669236846975264263943573633129114905941632915950920643010516751829393193294091161418159114440104502911933019692908605084600029480228110823317722932444150771812091010985500933214245186055150412427282665127019356597332085788713659808751747554046032073346337757672845210029292259806625915777226252274727698704493493743127530930935001472895536397954788696577451916060347155254013543829480756775780578320352631794692304166017444043548574614075574427070116433414567929039594546748913116264216005804548011299747113978768812063283879733901875772387628703166047810329039923024237609878921200928153899875250164250258097664518076824157346073267794082726187376861073761061276225540786758324920779693938074686044415361794051151720165747006315719921367095212580022383100838746112511467327783133400104163484700009939195412565549132752968993894522957492782039181178096064246678228741210672524505157894101820215117248544347684390365235136865429004269689813030089405320796533628493682998334371592396535442690924754011657398553615230258980484490956479405758237381652371340618225116922609100029118503767466784343908244126617035298208155533740262073331193682626789215339861164081253909575472297545253909325271380227135667336468101155952358406225316351898085338275811222233039659904385730339763010144446489262520402559970995020253354175921388519187076358773288845722040452294223877901395973208057386797083865375054492955811097125716509494309835292010731438867588823490489447875622530510678413069523615809818504594699793282597995469554450471096013688649701791197634611796169642380616107118275268910770944691371288771482293260609060701453312341027984602925939952676886651178484586030228470250445505759895443275984461053542318862824839096261640114088026741767361596454248650157750391938164163328495866851726329857451667790142582831010610207509792525326054509394001880741285369516740042895716520892582598374261636839521525143337600221806824780285031059194083684307826558774605336406311378047939916085969585498329708423195695242665283502736427466701588230956150176558718722045997962447144665317620527681578695359231974664478325484806806760710359453114065702466821308515459838384061280372771558040672991338894699335907866480559066831911984799885377722751377767230866857024344902154765642523402102938227552092653988624730453614320113648692898094296948815587081607055945608839268074164157594190990953807627539516614987460752672783981201016550617484602964157974592831797115347046541658535631821534825606384793807790362306822777311935574622371721017525825524678318576369902231215507619489349028176421142147957668747704819661297334710689346821391477824731597309734223413044922153813464488990717951672780383917732594151911880026994569514992644563750829265207242408865683844467774818778109999673409332990080653190119552447907670295917369509529240170739020779241892777649407862677450292198565936570639342085413309422744377094847991123705571656916562939047806639090636214752094119435312098559469495552648045996081772225677175706492078576164216206679015430222085265198755618098649174740059416187143429718291264352937732140917056264660928441150717967865735315110503978489038648520641953754670516382093562211991535359718960280735357439691355399035031056506290023617319232162740106006380208109586985362840831831639308680360533897077235582973006557149326753624498264192687560148270888147781828434312917166391750118029527750974088869036489241772385448250989311209339852516811493636930921765966955287494431097814894120597804386490279108783367893766302352860681301192928596066843205683815181887191225888308312511193651991643136185791535636603925336168576657237989176773039433398554811850904816641655981487500745643892206357155777300841882243183398482581020433100933385952195020813625570069367922422456547035944682297724324043432534400684638607102429408539144203222476019271107851480506693066637105856621046461328441195650814502537780702696716494654669632610388631274106476419174617432105051790794730607098559175661236742788142164957490743149545515853991512445614742948512478549087397346244529849271767935946892178488303710865555654586185013840534516457894067470321060203951236354933274382559160615774542428966679973081054484852207089645640459537153229374132860052280120076782264710645908063352351496363834078364349961512893881127996659671705726066282112232976067186322579411881155296501930052163798727478116383562899042854043611238880996016098905803505919302267979309265044172515352532141133558223657404360264171472219113512494414408482597782189851021386594100532549426134703550297461550528652216846858911974784537552116714486767247451848645420072199587203384904687692666755405833591532070208928387032441383014852062396851019541877155520552436241000467942965272961045618967204985663041912579371897693223550462876280284435017063432469828444452034130757668497763046317812525744438638311879022699335630686978642969777566501646654543011009924888767833045049894097903944708700796357562508489081034338140275955641992113864449441874195487751561709989365656513205259107760196180593227794210916021482406803036194731786437478078322566373429957417138074502971762406561965769468883562423079360644913548003523551032474012920642152890501969469658880269762814998026484283774584108432376058677133170966401423214613834515621204716150706912713703245118726994531075531335665138831886595836715792911754544650818031358452582086474020958684599790378988551983203642045934705991350975124957294166050108694864406714984826296405074776721977222767820030583531422611378218981723864434072911592892912761904286056243707423507277359706815302973802280462677475087498848025444982359830458620414011224496059842102552793152149534175838802811400789245241924200787666319033869879974817140299654967585526488332156340437961943008491984394599008871587044880481071600311661817942211047848566856779949427637203864245277888602228237023581490204257422431113750556310328908839472085824348660313382937363472963387159110453642563990268913102362782570881978286112016759511404002261140840236397483669920375881100665033388117868670591696217450235893718348866577331797343371315774308390739509365548966855802611749177707663253798755971286490395572428682567169613535943622012254284012930404623090090044644332521295831061435890612379136543484393695982337684264105430671146592993000048314486442546281788550938132640330200610452255409504728547920064165709092418998530427966626733940630109569519638309859185425834693106414914290763979423249980110222018479440504440607997627179205343854114425422031501863784203098346034629269983435762186759446623554219918304167599182180762669553792654086757821980986052825460852326170904062940460696808631301839334151306381577673533178168510886490817677246484883871950947605326685721956695095137177156571102173293190817017898250259007190512699979974171507296256452752212488686615529353034797873507759065935365616316692710933360053347163198719514615638527507387528146461591403492627595033203400444215543331273547064709685199862039223450555945207582982664862949207758500451128896808172965629522328763136202691370357908620014874705294315408016223313348108803148659224675235482611680582312244450632427078854721493290131714502900450769163819478983701543726523643390634966457933858947526951540342348965043297920632633752510625631119207341944421561182977385483032626982376430335516964143506149293200316084421104968224528471667645638209890078993567274618529685133839817070937786069978561982833951476377495074093059375420050462472000158956818387528512737106483576988418313794006603041944802825671214070154018356082826423336495896575419704732137528578221893917325554568519256073207833455794055436559443363988887758773665106383290311044528480808955494250152854866520694824420117415226351866254752448712276855394195018003988029830930177733957919833567691844633082914664957971913428213399534261571698349910432585325939674499647163925230029513553651304135487475739342463488258810600886695832844093649743476716673885299371463143791377685860239352695244225410381127658749918020828323902885864820488166204794176002048735669843169946424465507971463570664281876919033503210123806250056362913954167607103207445920141944370771168401426186786788412655620527854576768524018284217866535880678313916720854312368448017858565196455863738119794228270298414835871366113731455665057946066408618842788345612205068302132796525106726378263727456587150631144277199197939284972817834660967156843286022807631796710129571229799981153394180711826908344124354639288750605050272256616483761561088754915049922955408032790669052785317662495763526328439698866540612565035088122113794946747555785158206486420314789345761803460255286239627259978163239859775069379639045437247206929491648307494479498626914435326871544192911626021145594872151163458127748375558305376107123008669394100941568508467214191622460681612954580904697086130580540446450050987850513970615410755791219735132548483085488995903013315006239615392397929075978533704318227653570143593345455694857363642739313221597191627144960230749290694850334604337537924142286766634802319784873602779116748546093392649235250651593316079678777164686943266022932507071041397115210123997384889015688285513361236689390749980152451702294847539980844918843183562794790492007969376310996376762881444049346578825266968099610137362626738338610961682154446475435431383411677798704676289814439609094548206729137998249681281577311117061932551951606220966880915184159942739848960948004379367933945534780036764708261361094833976885364545325331176693880764407201572009155906145193339410753604788104343286628071384637778157805737276592985978403048776712410007514494189170881470226730671856781413919419035262207462068007886963176716876959209747678980803849687868078435090145115647914268649592306649378385080221546505688749239919322319168515084387649618399043903863684382418236447316965052055376194506042945065750747767642751109751992928643482098211044477497475128288758004668412236791974957560648528544497835610238978463038507690403284791385741146131932237360308053497775215359090231837366090504009764600353442975146472933179968973090600697292462629442057179699608528142677915012684529696435396663675840346852959156109967129396247995677055474572352675538168381025450513466183329061138976040979165506230058917387327285865463446391606827209272461071419195560894679817269593932916999457372712738875054858666129444838008496483963320013297412280144602388883517433951791102567467462197241651179877213755674122554760519895060803926993884414905276101824395684247644211064407687572971545867540985717837384190933681957021351744981360986977678681983738607536604201759174650134618495230121652595099142509924059324934602911599726603246245957203796405255842694359311664882349366466098866935236400180147200360746162341626248958305256560032057200883142833422212067242587960667822461269910016596403523185779718481822256047318033967132112711247946221342817692259404669399090541273518471984169528675730499942269082273890066716992421071587186123964599393852983344781918656351398351683367378185033327629355303265129465405786802116089764589636018969516616476129252465934068249694336825112780978408051195415882256961754807256420014927153747099231643794107906034360883595824885085373083560659244882392998972195257100360279293557868342755609668826248339412831604913342538575977403592486866385083337779367237330504835932850032708159072019596970361425501178566772612187112146666322771792371848363231890770799212072961049581743104615790479876890813544605952972352601265256982365531903202939028802924445670710979015648480329468387050608020353958072468469400313233526670384993743238588977073195788594511197254794830044490451846754785719791572924554443845262279157110472080800232933732531605522996519909761452123490247086007826456572351868671129986837753679374294579436479350022092290472016999299639313609071630944513963828750827489525198455451858078575999375901834520574647877061347309161597720199573658470348979388922138441464132348565496948079509804767879811008347829836602410856051903918364134308885014973210359538836199584483807195207937255164257850296632915933128103066267104770719415603944291105154339291709435780074819486982184883938830742376111155062355782810776006889984276675771242064558362778609849501816687794545123346702177924208330845815905929399136679223246219550767587457383607796295184453135571815325830046771303611867857843710263731141643582504896916540277578015784982237177437672255567410554174968249232014783940287051113603203324770218889673901279008164496671170624978773225514379628522088121746747260221848725195886904758421382666880663796543579965758879233435346724643713167255456874250266093816291104216867939173500130296151298655971737865652719750377273362955040098301247001194012560371252870996861508190400558875163380136828374862549122811516777065877634179696819549452892657886804870524238975421861344100799671382289139988001830850190853331022681800811730084058080782929835275778727455648032343196020345824922205700970764177910617974856628564258691830846944001605634114251623087267426930103589555375858250954058686011487926146315780707464860433807550483956894578421074513152836340870055462767941481137534795752016752782760001614158630896429963599987201925037380670848808858983073690035269238811657393124877042061743894617185178033172147755123860681671713293299315106667152873071388939874847303509868725267631345922960082064728300058892671207431151230599970842268677448287089625992389364529567641842911175265211796963343812501385925975789489489003318964387113404665179923319845914210321954547884931651162828185295854778859228375110835678002865840735888113731699874674025595619618663976073651061316618782766641576781448163081903718747529567936416718879091229377071229300734711836368299182924287561278354117098011188322254890067040044463692156333072833749256918890144357187590347971277742211875982452409184095902684684095256694255771906284651440937072173903712595770118209153550589345899584870798822288253709201449644103244009743892620502712114437789462548232734999022206594190494184804338002273428270171669911457980072865000779093146635533524038996629523770324825061730897967614143369937832502072534959555843224546742753983828824024710364220758708980507963201398229008517218168364227199999374825897989796788179752692192910294180936704738774794233177070460549225362104578284099054502108367976871332219438808085408131775770857753097311472371621658612016401860815665521140740881225953711389068107258365482599073409581803991656536679465186885638392052678476300332305730435983057847137783114064782129378881047367105499434060932234513992691912779307152044471431002498534880601811286125257859986027704096474364545607844610331825427984561304802193830948951877126210735524596562012325029009993524173086226496926563651201751560373825542881998056570900564562304173068943673713177508575758781360732428711707040674658565667202366835776313489523092119705586651453499507602395904235362416785765568071463662067138364294068580927251396294676113920537552686606440922780589854903602098275197861065993777825565211238342967816158472185294362114692292998635271715481045167878730773374395348186312808168696592770124020295325693682721060369125079631068770150128071170818078775836494863376919557906352189754262420908641221938902999943553260278066350106179249352528080457781027546948871455518438879171963973176456712212156995262932039978997191028610487110415378164425489156583222298436568447997399500396170269253430222432173521005151675482661416304594419771363622999180239178775419211244521383014762563370599110204619727538529690999777463505142269089786720078860805912241920953895422937851531845830040654460125658491986348492330348075357315848105022257382639415865556334274670814765408995306123228477837239963139957225526250093472684321439533671978654625071224024049232374503096311503190078581850314970626006700348213056181747383618970571096514459117790037984658505518958039723004243059098881031553399728281335586826659582019631783715188025410247707978324986212483489295085971505832070044732340763191270198625125755294093227080870816224394166131679831876408946000680951312613475749662282543992171967260423085811918404922100498696828993535445278062056742967401133178139978199739373182302491343853500546489158628016065327079131306584660638505166984243476794601541096517970373956901327435398166651281907214506144572652206650192983257897142725908864501754363449541990922727767984485440401569782376623343961373198301387732994452369356366477179519640891116471739960578287984110728017141540499063146214217629016051302212156859803495348271449733112433507141253191788415016709612488737764732162431310767036112383263828614982629152307070173357565967146260539392136661594106657358022968605789817046117556620158480232812632616155550728085409270340719247144718870580578234030994419644239562888164150526354899097918300582020579463893641019860821020113479495663034137605451089456058685728858775058949623436569441851559548216745905657906364921240197225218563101549896761141774293753480343680033883231720638440817089850689673088510060045254712252468761635901840253884953764581882312172919287614206303464488287174483846996783317809336803927170211995567646467354254950940173241299362003374302985120159607980758955699487214166278846295497553828093180441139457875075013340535033315383225911072944889570867670605802940192830698016985530731654696641848511741082232059014768039934984964906161418187312882012639401346542018126605460774309873868553226364961880703679155472566428751215443802370324662713724327783637062608279604126706546141523257227767512261771968785004496506931690847124753308988473435948755236803600995257215168994655753860666684222445871819618980987507927300922074800070146318294751062228032187218191850276358504241439105107621616038853070847620332898342378027141335960444240699203966801456167883669067390639689041174404876642605839262285548837517736693646760087562523881640582807869958086023260321264786986146473801354092985582143651293773831075713176894149011712393413985600070938245459178224861089383711026948375570388094455261475077354224659822977197639826029227099777523109257832665042004693384565875045210481781240260209487255311131740729440448509843886689502662441169003679802917046585359281000533367764600717747733003398211961153447703457009338723883627637010148777236179581431299464305756474921019867875148951273917330726867087008126279647749833437095268880816349882133200116996841608170376466221863040360351938764982294958310208767799998544796915448333437707532864608566462795968132574412778290056954196921135577937021157299363968334553409890094104270747878426194889651467823473094541981565502351917047062677500583870884343248331331719715309598716556660959911131988578773253665935465892520974391229136917242969817904952074533357137543569446148428757557003847997978596783769031496787283015195882321957857268120970229196733869396706725334648047232524138629731034057193048109263438807805420534982039628870930142059722285526007951755034858413295432146440318287575638760465798328558027776301174733442118380670048548276816000414421362949081800732592629772633785577712618787753267930309581120142682278108839900989816314307431425048151686092098937519976692902434424479788723148638247596200690862565868030237757787381562362181544813271648325513944529880957332413835571213695642466053309151141617699886287637683595522795451222757479085718518017448856581526606096279765483131359788063534752579265498326040940329945494045010638478287999411355189766788103271619966611378272695212471572129368314207060589108601796389540056808503883693778667131253060036964050621875705852587245855692395762965736629632309352695783284886763873711956338685850033774887445597415226098090741796650412781917744690638788549249907616797889017341131186024704984885245119086187316212791269490409920979160957478926566087185497180559229827951391650625019794891850407495435200239644319725775351483419227808347285714075934541721966165845496743742864907471567964747933617883133792398084136336715066358454271090463501162780052863685888241490240346125384160481721637119496250187028330984257572266302727699073239606921534822502075943155220023116660254612358890662027385495768687487282627527619764955792260307130981707268900823794443749473418521926161024872810160087018868015741535865868958233936463456667241748218451943994180366749243741409816821113876324455497683815013606628425938104284057902456992421614186707424872027786866595178185235788739947609996539030160042900937875078498230879567062635371759401402556915831940697041943537780474917999730580616181852513323411148924333635878823340539030185967973533570492453166879187144268413793764845136039500496069027250973187212024635959277453524962101610014857760273304016542662722511634911669612046368933189568543290488101353245698832800393063404348396246031535009083053710796741444101493093980972646603616542928114416958891740156268653347259429918723713902571590740987466556274569654673767556866480194654347582230205468335821544303287589512126154989372792710632955521199047912111299471685605312694177014240905153420222462361608322307274357431020437643449884102601567377141739372603686521878671183312447429883933726759406354820872750384975083583261116599337720448683250387272395034578797003121968810770091428610648305879352135368472122472862221553115317749752048529651444442930059838570148535778241112013698118577623611236466715234763018249083879088315517932558207864803786876322760291313566147846507220299137312724546713098021883473456573469087550239688928285390911566329878935762075468611921475147167592444381082842086543921644716203408539979617192085660574405726217803278572843236757939513111615631633994517801392219589511335959182522735406971528727045825326370645568486236431398260036635874987487976331427024267153637135964064558504178105709355106364178638403260512643615301628152862975708240124012122198964641702878695453964263052802831728756990807117239021005962321293411158317292761547030600708241044489303726290036915235072586902005331290648650084029129960879470814454229853588260519618568362448352684659439424116527983077419340405164761840214891022965004689823046302816636003334835031356265545702263591712901278590363015235256522045190737365675580728479605495950998475411084468383478531026262568311689010314491595239399770866229740378551501482968061593548659041373990286490682130539775579581994547212358299552994785031702749722218146122797939667341891356438548779557799683666635566050656812068085729303847849864415594804695348531863927421200603710040522443137118679959549339682715999044237645777004027243914603803614052738194921016637097334968428904944293627256965734859821232415106031795331940531567476194939456300509632837696825607574647129939023496769750520298917319892545409014785403657476517638599814214963043746233669347777500395467312310961646874779800186762899220663671752062354730788729975113421162567894698040218423660028326300318582372155591503178902692701079636878150971191765364768251672889910614281541090867848468678942163093562583311595204537945553007568153165115421867246711579302580854585861595983255867993848617294388574391901074050882298277831832098598374396139684679130924090228036290831047914775200650414307072260526750644920142352009867492807880062876803315946973179941015890582987387817655875629811418999024822493697465958047718094657013114967361105805547319365382414992229163250268750252642521535492211214242574456193354071286907140159899941725139748628522481266353274824984861622611525655132909781671906742846708225505256753964518270941452279465360068449780075250290943015937968603950394180891356998920154882641154624594385994031022285903372665533851276032568310033262670982903093378890460517033450557044119187127127461098384722482181075625584364603213991043225509297925929612789930831699924691651779755690244584787130873388304439457696150831125412752931996136149747377394457782249742912290109280179446263173784814534432892364095961499860164468513608001236612571177027051321721131293242047129427912655283403770555489240128121290744713568884424941192720375629399566809305248933556419870776167892746907981431605107238894703455237829597020895396208653441137160210487298681702936702445646602812457353105019080742603756727957996665074044597480966854249139140750731846396657043737365709788452311048959974815188220393657477571829178582472048772105128390630129504065600247488827525129328595444713592585323182310440568366586032647804405945724716176296164555004760531630425178531276775814764761541007398531444199478126434676381289077406797499546526361965171183749455697109444577614596929139010510404465727494054950118127004777479508929580465255211594274213382253703409974672266744310590300720905218325468710145716992456962833025429835533650852573679496203201803772223174654939080528409684209192260414228293542760477885009157671262115514280207641556081992461278609576798634506584050705503203367035687163282312162101575282030791937752115822139654603490675435752773382248512930889768642517048004705614340571366463366286635629234349046624502296045641317263104806721667697123646477241132069889843038771988717482340786771862526661661763766562859165681928719749239636436104880148409257806424813264131987508309531128861218178959282944341001572994052068294639400644118912448624266829683232992419243213116480297693819901573309044052448717650162852490227720843564659844915662568534597651231729159141033038034348192026747826734197243527756099477140627621432889053330080474665779614131252242805118772139349470462542893723337395197006400380604249257627759574267545983361924000914568689911786354571209089765144692080589235704289971125429230832300955462847232296186246182606499031554732866480228755670497769806682781553854290305351130609746583581134390365980025496137011971669926839588529661479561802381959533255246914759628684557251189732035298671897963495117579984195033559554242644014469078537068056258745425072800581046482602892839465001665369296155639557778298437846702429953667794107364837108533514596908194164757568982514731089113221971231958404890041290519158323327013650074958301908506118149336836174547775174069637660408856320764546847616740049778750682447399145492963961123331634034934071810035279189891557431408843686296392650648367965438836283452085459607280104503265820060349755588231635940663873251596778046379750507536709413861830498501753823486245177583992137694080209852757254540173845824818797726521391865164086790418029540783778461276285645926188003032929178665465050791284249553325274666659986411999861459064603104101722531246236831057212942136156370122007376250135392208428653098024299878773135304096631979977177386410884061824760595174516613025240242590990938268495216729194695809097789451531696381478919210604869530432496614324852797771672789228303451561179502191565239159463267372778104747171566329719949081162641837177128642650460522377012461201834555731709981726960208961936730287057419211022936546549395476046831597638537622730125982356525359923429156588979502604604025978565051778318292989947291952835704346568020454859444377064750656585127295488903638334025120321722530972990526278797195581766127701172242917161047878044468227634032338511483055211677531851803917817832826720101717994917668861662698723433041185325108109102351124974207007089593736621515015856519943966572047102107910081881973153638235656135423931497707119196021962122569767138777250160985710466553383482856912297412870650560050485559967733948136977402873963129544141091458185305824657188295976315009767479782616501680707211098577192898949194998570133134644791913406218952213735565462549123663663706307536426058244272633969199208053382235150222396402488692546477483690530425537293953166672755457269105964517823087432903407042463755176995129772342584863109279793761271187094538991841686612697569399547046880480701158389767212397890100451547307213674148783384483050722372326207866305373249249870144141202877398436293400226983719291609554423262891561185155201538051181606481724277084525817502330475857985144488260604744356672614314838435673457359559589256104671992963303905173560635989772795770398155029060943280978680480733778277111493837419255154197915778985255672541049589229942312496325164863828609827515442741533864542165526112012521690860506334999600751828863913436175290424301819609184043954491239847451495887221720424070966551199560946071127954025218985877442326327436379631336844976947122602972055318226142278582846788178020894526385532722618408504290121898440831236092353919670232408722937994897693537983986106285817812911916714101857773157638796860201094548145435940376904100977523594115524163422355458534071907145176969367224174008909627026314644032385433528333354752347854148496422678912757084410839619063773763600021522191323178152876805593286936504923462868573536711623596888038215156480267884135325990684076261772292448976725460309336423466649060864216805389242605011108774443969219216989826479388998168582594250696985700580345247432644921892854402467005511768993318853566931564468691813722077370055407277593979819622102862378896406178063198415847567533877807661805391272991066213422900150844498349140050037308395272602272292201691464803705366917321615646056840270157396228705838383020910353854853931513529194803379661553433799563610789483105326008439316663361339352447956268492386378268650562564840783307817728856874424856150130159916120778553314829396563346680075324879421272074596583670658667820710271015693073021621674858186241366065686895507591769508593829991100973108096129247375079679477690936292636206995413221995204332268636586574887280771459769670567580317400028419846880818515466247085135953134596876168080523176284315461252084687204071094977981959967424491296691612566619192334861058279507336728802376874025547563395438310046770291467134550629590702094308508695208303752707424019893494477108138222085987507117140507576616129421524896043486575719127150277949593520976950153774349517810534561894818757753745393599564993029751406733787241965586485644431659725564539181316874748463679248793948111960934665393553390317703272045058109262059777883314405940127798058631189618754207282515077559157112018633032936585125560923342309628024936204868792175787386640634448045415373178051292517983484627707655262820611316039609830943355008400748209833507030070707602974040480576000328389064883250748560792027955415597513392169991408214284187600712483810522562196467036241723692061822105883585485827051380030999841984516973376062000055774791262871383943090247722638458988941937797344442835171254737129892751968656336516239713869175925517900372896956186787406593668016053332044219710423391417152469070455654646825864108048509125172786311624058099305758801957419775386880160264695126002516083137404956366577861534400975493302644368621922477604593585705166483635652486275136206704679634133445410741251557258409182563862011778448755246568177085096336086901914691299734596938644924811827231536760398890236896594376936721760036003607263051710316515030894620277460217040906219824498579012786164001831671019127546914076360790486710931327002949994240508214506203447514761766530204681614380301284185847589409621857132033074294412366880135346884595131659173193941752610917644473872401253191429649040278002477166120884636654532872394471847808954388668392963304201519513476912541131202542112627396715642159382584289557719465323748845781396281593387919195270720032555780157312035098499269978302307528286032985241061434820362056098733823051691665649521843861319037295604073245496494132327450580773583374461193696177032990423151848276853912209382615564787489570755812855778997170444739306701227140691491251159437813111474934380101066325094553556852887326737786666150181159405767628898859789730617221144070121871802393711026283144039923503691082451246405984553340495127412515681392105125905656082254120585607912055325053081460613177846277579430690916928797695846415222984514008411108719189841188262912129171655373689751075240441379264246513325653014560287516912152158355490921280951753358733032714205044566515843268217571827701004420044607040977334614777747058784285633109225005554916602882183170138077918528225830435927301004187535755386413106455170850773246935013126900521264915584043547483343127335715666609330698692455235484663984331195187200415857859833562125659110787028948683707274588714671455621937913217131942063480870925224470590619408390947279516722437149297942776465897470148091345439047685840588114799540195989274101332602846238077206119624390172439844314449149272954098493846008900171740408075010223649726875700416939068252529014862335165652509939537126893919160667411402224659752924317242888264740657223769269258530033544864870780194930158252467623993693164201840186468490752670806567394136196666039189252629493542432422297312883343446875430226620917500376384678929377196081525667836523148343381720494258757692002454619831738795164940703954520797155177067997729649079488934494839189031504283676317148820716659155148620181131625607081246522610544290758720577646047682639133430247279484845550365861057521250931895887402884880264287970368897393330357287379955440537610047805131339237240148413653090384413152264380721063918191194287172416792046074883794300434549126622364705838136763488974947176371597055348817201841902223462808504157368025885017705462176614810542174761526857586419028787358102044069993818035918445117628001180012714484018862713618340342766138967506669413325522176969135974161847735127034421433213485867249032804050544855430444051285593649925310878452994168455315256567206500001252149272929524514145279533584642687720499367886309499597646633997734104718556007718503550692625836122238245928956182263519479429682086438821123807820798402663241864620972800497756230281374180413855396880345133181104470166481222102824191338398991025901326979532003183595496173787029262075040807533894343090596373781999092906818532288818750649755437267348799391713744388962957351914675636958975913789108694230079570531597234760264693016299986847455089308535921808511885493936702253699061517862235204629258352029548535795387760176948664112780112510369016720509575556245869104707868837948859845114620413657409279412549839144793751856932711459926534882409380700175884551078796047629155571528404084271341796962901414923844352305779910608137129317731179998903521871443074217104329302638231501941360126358701585752310035097922003783106578054048975121747761792503178315287038715810506940827494298905205557059214654056452478939057179163414241938209627801425039319987227929026758808567487032127768488258275049490997234041277149390926822677323113224629719990227474195529915275823974129877887016500309635029409079202588863112447492918754124570630228274364232873490345093578648454359655997126045409615525146648944367472836731244999494241447782194843012499471263416312333383429035209330885713321347532697557562216808846245914398115516660794742453138064400671598863714641780970181840469578150555824240164111091385427630716521801474170534306870369740393590239238903801490481090593842855611586717860217338130979412554559852742391723813465924986507759589424518393381126041349145371191987877475331431360897747803439135141852821147089489525944110444580687632329095451226434101631411962230968912870569812392632623749142772846409609403548009557366079226278155813995749149082194008662579773816448884153187506491103361896131849169243467150416197229719076612506800779597824914266877055807744960523611218343729809723571525617004534101285163447421970943788933396394046949520162263337416737298755366023127119875692783886280406161669853978149995480100295857415030193906827377125365553652192245604360405860620514008709172100425223555123837138193233426669631101697079808241092902777853670367650422682161417306524818620036482002474821439786621797005802358294590414986827578303588185618796453850140127370917070420006266290895671437971590350899259979729307412776247482574208078800389481782684323026761748281331268596692380927964882246064170558116425910562771693276237687644702730672043770087894742821076407054347381593555195526401375216215934000787043010020823101300247064547059220234776385992391792678877525187516739071600706310347583706419492738243439330165083908270704150654503638737607844433905602244348988282156102920264949414853347644840605798355517592639101711713292496286696574386641846144010401504926501092910443484220531725030864694376228762211829954445028952809766204116770961611598844974395250948313042643052363359389851056717305798948647250858493881584384603859174751291749912095506463369888694113006828625458523900462246863148776775523638719298470235668534417111672812752843130190405046898771807712450168634224493609745997133575537588109540021436559377880254260571454309296348464516478941199056465323948402086769557501807615427904129885824221299131735606243124032554464679205566030921577092090479724741538591604803300078799864717991398111845169712003226349779530275900046849215025250393682020445928276548000713728897815499210316793680157183279761156077965455765227395723696952816903799391159231975659088402152286670265007191872335225376729902097560668297732958947586339133704638122264269682515187217907970178033371830004460699358125024575732482201534578646776901098916961220227655749210401909879711780654542122295358873139379460817696554083186916304139857922371020354571832645256971282193104134424125584798281381315030249524853057050133367917966092460925830407545333640860208191972929486219999067786872689531411601920642616981060230833461744617251667864683560465581680795519649275910936393861724707436840604560060189269575750682654639577726584329554771062164519007686589025652635513955596881855011274921503080099294739311471182621508847738895825208257688113505204730365402898405647062296652703320562941914273131517281208949583757109033517741638033010034080745009532795347835345226163647882744602793052924514536159981492363525628196276638006314962434483073985187979624212168055073888887164792601602212974893878969998577924609834756479377394974085979739293558599091111976903414466695599523235368768249620664902843839389433573844612888852556766398432785035061937695776415290308860357983253267484588724907707698179194324338505668246046614943457291607103454705130656434736048390613221821252491556610565814135029581960887798858221178949273444277097354937626344600343935934741452574875738376993125852794423874767758704273523783660487789857038352788155266451717686489316845242761042964227780699590369554809350308723200815880396023712204917761951580020173081421340192109028162210900816374156797041030827296690124881791316894760219013210036534355583220627627175812878921250350514264184043040947910870079495476948837857153343584246369853896327865152864854156524750075048652814094592487185616412014855121420100731157426496595749141613057945336640686258956560787474504282529612884657582318356491400755974000973448694540431189225997781219592213895191313606738887744980082756812602630796012829573724063920180479130029378792734539611397732881353447151097881242840421751010627543514634805176201458349224037262792974972658028685412866861840470276926006621015174361881003406965121078279493526902336377931470429883203569125602212841801488161269129410187532039911134715474412252840006123528413903469589274747245838871667109096211809454807428887378006356367469066162115307189971503353374488924486326220455579975482321903895897696527920516591047382400746428732341994803086214003448958643681290070118980570524539360671003198956344716364658603846087057690791793494954598273153268073029472243999806362182554863167983172327948702969717291633095637263767496677949824373754749687353072989925164071059431019513164986549316876760115156568242210370757618984313801657156491586665626089254394520306370015382279731029662058802164859523315146785737133528008502317271155109826338826801818453341042913615554996113240377006374465495840836863627496100276057585897956541883332026406731302297134572564913311772100793983980248901127179979464092863029608568884926601998880447635914776226113015146824512207791014049007358047774082468088266173681950682853484847056400998792916337118479844480807955803752350137419930134318302594320073033470305019893005868992071429308738109317151363185618732684467405817243287101124907900694443784500666527734828178566305475492541052788284487982189313602119266733873526812896941901916757817767834904142193847278263615448414067507314088210486416931296384889927444223331907502937450327760229725480475446106848993652208608698710439173462403064468178949891600919669676838247137004201847842977081438678220444140266357846605289857030573136094951114382150126826397881424400824704247432769702737667520578585684557270509161890205827139432046101894977586110819346872012965325418943333796616040290509969834226398383715528234043695603325827803434658043205810093079805736690574746863542485441026938563358250543972694858049896395665443285232012149984319710624834621230795281432117625923567616000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
23000! 3524520618678689263714439660387182149212623717486264081927587990651269922738571442227576544502824194280000654509691445035776687060758212243431451301999739193276477914052264160989360083850364660753888317616228218954298079757642128604740908277843231938716868776618511799878379969609247355200416528490370547547607175368661694823682199593180334800404851897250584231005692673557636812489943553986932708123226157658551500704295968336752711109690040443554172574868081296434163400504459986822681497463348640427713238287758723429070494209686816327062657737642337170748180874307148943781507748131469320756334829254086848590428066551947635485920786851201844243811692550170887906858106935455508620576790535090957894288827829892290054314506543966363993878550642035654535625862285200794033261354420367880428974666061788636476069746326671371646758148650200978880603633191408356822734643364446251129634218167366585324122688999506332714118297922440142909732077891322694158797033594976734622892157889458378202109443169971170008280730846852730520229654822982448274762887678567119502219361420510237080644655671518445923799153895796326512586563445765956565345998645468683550083158740448794317289453945591012871059556501506407498417853822984400357788853058071405869740033770219091309208761827812918746488240318585754126890215869018465001854582290170446610954374725731397063385899328526920717863906122741167358144603066870721532082130059535258888857027019936582068488802743490988646663047513748511070456736102966948930433708428436909065211926592849109792786465020383041534623372239953500311490770083798575318482647985122957733511998390057017463640003625198589301344598428755626601443908378508724611402008159485092374178102605920241356996090013000057216580469022472501256832813342304623684017707059863993120982781982255397618717911378004379352454869451371545403634913618751393096623092494643890979979923774134942078764656034622946816371548998392644265052309893643351890614839770876630868791923573140330801209253320646505546343331019311917956512824878168545236967339813287715887530700256179898916194531860648308307419580328844946486732611196441836191265018822624184959035598382408800749945007181017807076253087872904449121992860114146153633625697059763082832676269570122790397976508176680534487423366398316090995311684149249181454413988889955034519142269147121758504665149597021174572650973949733386989449361916620080058162216715446884816014007287757428597825759822426240339159945258607343694383578536750679142716521176555509555126569128371633906162608912925852430585020829376496390254122386166286076416777878728878188382325905478628349336929292085682446059819439398952856052799630011657158076723630550339947175226456288419673909551854146032878911442780527136258946525957317450280307419402832019216004022864744785498951668847260415983856641706300204497522425515355084061285897413234996886501311546899261476650837778805397301038817962755892503017886621220481685397815787149572767197609571338748224758692576775627816510592807444074209062478669667837695405340641738769846202642903899665577179222069006068621360462661344654782571204463130205084016094047240750734581094310275970097817393310484715984572285547090525206371481848641523399578831315954674262610886515353688608530597607098857062642627082953432817308335871441784271962107028154372340632650887412563737035321789716222275877818494745573695289947838632594721419570294876539469703635006880633761050590943692300731339332471222136470591239180124341548587537544602309103421108302202839402595948567931259790827848825659966614837446951537812028812161717960556661652653590437406820187653525938801985056866199500677883959144731946772443326148109201133874417782486672246611256444229464378705205879112617042449849220591722779511371826645840572980040049403366886046159975898471734852145874370736936078091170630682250182928063109914874815857536087670005516396732659437579530741623124358279119248078241984931429273958292879928909958836795481190174820402058515349899560848228235293259311405106525971347196742355801700065351892805172710678135518285456685003067149059552656646601984942010779754179660334790208342304740466613568916649422272276020127100220292328430154787265160693188649852581595319475455605357444180306714496729884739770788012781370092251293937514958907555361338721690362447756254241391230328576461199889775383296605934140890118060882656541101748469661563357635119918160000225975099886823690669301523960912885548630179216868883274568199919997562402773578158230719994433478063688996028223114592689275976915243599245447014845338966864497317718115066296780620730079624539030554160472815940128006884189173218602617253612383798217971173332484248443275676638046468756040154817503580807190450151502437816862883398426214095634177493626120508873174687332823173264321589591151546366214389015911883519650369216848798443142362228904391230766140598248142975901744270881275791740056125237746813450488951510018772063127637904520731833910567835839502244153070944085958945334289133445406140452061066511836936293586654991391849923343865467141851597664090875989263291416792813763929931881141731325732023911512229049352558128679655269646378237361232461080226230599086993101373927793596348227253132576477655272649083870805279882777492807425897148916204588865458621357001846062451094667847780479959610025258288316707042908880847871700166455465665223892595481366689393241012616337854775541189101611711909615721400318775093547521385350398480566587765829684864004699980938310597454651142487487537122071824944950504077165884363399687871878254889339620625098673667072612122282245444162412482969739392654247491013845504787179362381883437689367578322560260997599929937024477563674153830418184348152808605299204494509927878503889630684989405160601796299713988630068828917185849908015037220009451638467398935120000967783697252853595287935516042868973189628763402080220169002513072172479276303286595673236121469218142411778677285158294291945176534436374094137476238480451670903638964786971971592525733012895064905562544611765385733219940244824273708554024522095025841851791771728039799255921151977898051794917419580666423854196870052396149025671894200046614245206877124695016131904374756568407133867293388433567044469401810334012051788755043589736796452497907746053727868583762798369388899999324517296196373922811978742757440878373382167306023463756326493267668106192632213163312769693045956885416907660125561135648086474042080690324823817067229216475648910505079420164539399049912011655694447995105014829034090395967500585393608847552779620414436577049672401350351432652666710990348450716555892932682606317999769089558678705180023909377604745899747760907533413273600235853129138809748964699212847007956055315498383229257054289270502742002579115186578228322410507131998977983807620928231455359608511736886443474830397782934969697838928699573109371444789456936470843641359460903591069353814060714711018473737891240420582623717189117443252225157254208382801504259777500894408473921911629080878644749389105144027643483507366106485391286855230161724666512987926589205996894138112146041939646332707869758466116758758573434568112947485973083724631794197144738241034997532485166021881756692933706107883156896772124135590069646279185431467925984240393938761764588856489134702127248197406425149475215883211757086846632652865237190198714201240178470119383827167044686385526389459373074278473022693903518090752678457189527024225971836007045997065936582645872120603929499165488138182079849495951320495120878573804158349164262566372310781346228996306290749329145559450201195220633983358737227589065054229485186111956442040453608904895548132925896645403091796063414746099544855306547224767964000028988337910835315894875611391947212302809508725950642834435781389952291214480473198105391933688154250769427788543364110410163197181697182242338294813762760305820369235513409302844597619270448081220819051990905839631660949824883293884955562068972008924377521542253195287610593419669647816351864030683261430820341247744569133200414620263244617960513307180134539502316839342144891547244543047523618154576857509082512719246899228606011491681620448578384611784125983375502153202867732463718534291688677956794404916044946927578703085570793051876141649220755771533037380094711262256749048341014939418218067957946185851324383044619133732153174828666171687499848522490440178645413637969113251724306072766719006938473276121422377241919017829751283515784768423849425641842473203347153007166302991511854124602289766260715307191119262372207149297314849065186987368996497865825579135618793960133670229050013736760551377181609734121248642255733744510924332396144113428129599007914932983004180469860871717876351653234764407045243455071022579193982402857036708008260378417216586775797556976309764106483395546169910103532377381693113920523772390548963344159186870428723833630083802205198271236211310650260957839733791025377593137878082929511716792873932559815034997548627351057133177870512544184293588485636649462740751919570424051339153326626048520645240177775995645812641302849698898562748144605131699330506688207782914577930066320878110648435050262071764757268800347007123641610251520008827983256260708205328437684092648429014353781313004314591847277811742581270149566349271707161775482937023081650545302247400147252103850901397602320028171167578219865639150597552245898215403227309208856125998229175647674532400526470401131080895714000341072610081924590300167148629043390498205874630020682095540139224186946151882075511854210849918951448532471138924364883438354441029795980444851641645122618388358116990160829234750685482474634923413974583331615801810308852215857861860559369654979928254283640147984026787335482131320104774695631553020335194493083744998379563207169379580002806211460292634333300658279621931156267667881607032263741796671286760437915598219539021364786435321441622173166601719780168200452272793088531733696362902750825859732029435266453745335972877242644923169483770276286548942724373640940975855101661367060060391992226291088046695880424512377810914601466018128609245502761270721386440587620573463082243828761624709176552094522949767721047554455657180743421742299073136027462624750652434294477567009000968630265670014034924669324680393523157195125701202670599776861674184170002431188757742032302080716987776717233398179873705755650650373971361146630592604729778520929027675223957577078717363650758295248720175379874664411166473335248832102949128632097772298851570227202836103796013461100790917052783392244942477486326484537049963596200791024293375059215042288718029962790943949404329884345615780822869199212273302443058225474936252959445677398925676404938449557025856227409519359593468146563975830618544742641822827502808453527755966831613891036570566402007616950654798547381833660078744052760550600703464645088737372738914434054844642566558984283496749525441868268887039915743186466424829108841398618568165801333142036854602681907266068530626786331825322312628481977963714775470115304972364246282577214893210201756739634178715725508485733350826408825561748643058317605449850668706467100242505862294180649796908044722462074081532997751283480771603205662580137965799556791349746124892410684298233510518853890723557724831019188863084180255567023434991817646158819678985826459268919870549845633379559572998813658105746952565330140355947454002165083267118211941714825504711475457697400281485329217906464795393921203263106616197629593463046712740725596572695212706116119281870665032253911269331557963404882305514631353195361203852311143442890115527288189812747937798663146058768931357570250220475273829157086400102853670968474400988081818867640801538095345116290866644989938535523426554765056760381333324859875650567091309162008833949728255299157261621412131700334567190458704647816980922536574433402368759710983941633097932791792198956057611228323254963749722591059659849549352600421465315799337981235085848787907275131518877730743407463729762787087911952446463990041015835123504270374044307778962741894918955993248688936909332698693711480511412645423159371577885046082185600779532900749312537939058637383692871488966159220610590550860699565086149299004054283794164144572653188456638971437202374355740973666931209009134891543434068947763913939308977307702670965813353126137628348401376723550238424342973028407887162646890945448771990324508854633058310969033151293053003987976091940234296076708201192978838385722884675980126923214071324905717583271752366607085264915275227092212746318042068246963962362404985592795727568391375016073825751462481900702162540978072341063794019148243300667788339917125414049097192058391101995704119039750041754942183543029853733681058014058078090623123927048308657021819512892150559664340284384345572256261026620604052541326852396745456705728531227354437257003035302816712782008750408820292254045523569790621159738838762741599618280214539315330870693398094040782767442379591286592721892931669837708388357596590357505844580262909337224485302237665502562181291255173159644494564041792501542462016244111347544796909442478541650699002547397879021548381102354309388620719442289209954188387774780537017636932927710199954160020976358292658278867945141135626888854439067731095221924169376304663601833128517366483783596980212241924539612074967875388321157124752731146522529993960372948685251542414095823412322724097844851721573178283975687743308243020154860482824339779642402197036481843558380090260312459438101317132275161818362941099141356114664581349261724782187713459826274402801784807040416201159610088773540902660379083855256788551062469625597509639887158579494312069522852469778153395449352242119455171952883920948538651834969513794121456740588397530567756673022113039143122044750200752437148212945366136181808738537195288007535492277416306700879084013440926122922361084832761565825956199215150461414173416861234551741540624877770421979628256827693591533718536796211706255554953540861197313657402877421903689722957088308696104029283892087305070351523827938239266413789729930373009710563099804296305809377019665688385190795152054685429074678021276171320983473506083785139400835495828566784497161692753759746326905953940026032192169979999843355881429593604353166116086308360098017605693990248534436806756576949154486427708797834947500511271046061122726452283628196510155459417607377399202541011921305832997417831958008070173953236000069799055530832526641790666065741641272372727588642939391862483274510267375171431452580868009458762073076466951991373478559786563245691086698594061795381219603117278371053017577254641065499535433370581029783252005120498691063217108102823337859915632936428918970828188105769860275988524007721388162393769788921002183213023400298316367540010458429759787899200836632176048939254450741976916977243862171126638074700911257767007572047789099755630206842409973423885554361304267140194864164676442918493525157827541728732070918826800340916566114749804920623684094188985455032605603439239133915827234366891619130921417177302186678489698205587087854159432577112298000552675652826958453629795575817778638396260427451303409006520944519863678113268817851077978476268406408099453140196084519227976502274686258804964937100119727713942753316188587155699427451796388645486786954641904794653333195938077272934561938486484743581747354688893446837657404451537068603928521039018325866780110684943595519546914038800587746710968996637302726860028003441558419045828491045676932058694864790547223669210541011225290364077414130061094678511429275624404011323830106338900857991570559981071667934109474985022839299720026003333691553079761301998205344012029144970653745185734947785508278596677253141934487929159815135231338938024166226452668122323804773119139908954021218852130235632764344804624213911358852725742207009366195830141956286744558603882175002229194990312508623129642120492635179402983792680393271242382001789990892044787935297012579448790972870727931932821625296229143899556070156542092758722137629585215951909955804840208422569246748901126244172610209294673397013604992382356820741110467323459572584922912299666457062253130269201121615001266845088936841507696253929418862130495118745318952062594088641924402762823351030086705926215844469059839650461200707166079379263190200579041224601283116956431939439543529208711437161369228484806564288852701726035779609199082392283145644516902173899063885479173564831420205991748758466439490038151703635396835601622365860015432718269625102478892787689494475691308497718697854808970023386485285639318476598104827900972804634532942293313749562266843479672645216834664290792238416849970723349195234111877544250031285345486941780208187462660728797721283589395380421095540878542929647267737607271753110349341675898225514638657061650105771337259717632143338403766200665633468025837297513752578151035109810437482076430032666638432531167168919330803656271808880679183268904422457459354626944231699219264871876553049195541280375134529295995482851170859063724166102984098008374382520756332419325136513521649584981000208057931750614001195385929948038451398522393383313908875408112812219136883672075213141993493869973634865494083527935941861136738236376809195965054898366609537813839313632161302798442697443782594964718149854966499193284571588669404080848843890655663907259256786256263944725623670910864366873507959300773291990467776714064390925819633158169875851037453761892139503752892568527870410187159450487527414213629719162154153694974489331229028375033331711701160569366339634532201797469575963373616666282181118834172434264967704775798169121363292874645823818226161834310857931331541674492530320892503528031539377494325196442214497021527594713339722672691353650043230987270031799571052200024127149786271629374985983215807514095243516020327750435441179481002353849795100222182820315674318905346217410928874090136156904525553368579125315534405988490542734806847769470178959543560717128713673127057575614846559112071926747918379281098155546404747264745740731734948936283229245398061501875387371876583436722133499263057880387250978697336710112853845988753416482937342736874097178131427348704369302726077967214434667019921296145617089872155669408968483560927316260953253121633398267445992900860262277807131247331521634008119005077813375343242406860174705560342806070993687904696870201215147936185018951334085886427561780857454991365684306745315902067438894001912295616221476286042245551280956684751054751524140015424741606426852851641924777898171471962658484130779508688677788280073094144047926740026449045026115822593878317778582610900708924231664523114768244122129741638805723128020733335671973039394271760285225512506514121567988743584556887828008270442555664384251669080210277051247110695557364795176003038929056500101068635313839342907422312746779662572836180115458711743544517898357652836716311385137035223654896295312361744702642979054329632454805672618953035421057393774331468451188650422020398537095795400995815950693977702940640868589921703261571771691969711053086679637520097597187786350431175633800861085002629330242909420753432753976762477557099358852837206618695669299273257375081589188953924455123388205027280018213353859731695564047696595263346140531461329963767788574792833250059516434846775308007174849764490643208517291216089780992443790236522022923934358403770386222783745808274512857286590759200092125089127007596463292455023646246226522703945241913632708203519603823397405049026340986154508654671502723378319130564917477623878450495504509272774271751153252988351845916556536445561481695918170745479458716477077482151642182271191848969845420352853465087742355722549812490297418115580406605471350278877172324249518340217132069244950210254320153921027704287790430528458073354552119856392566312613518248010015479292198718365433025010399969317328769706434703008716194946125975656436916840841859882432164113008478121525212628492526868195002773075179562051936304562793806958820403127578859406176069300191932332752145001772193422929504322858930311743878852609097186585161684422471316840826193464291481380615113060455791753957601309195688152431470378000061540121580620291759780875924805932874721363236741416400840101417618421418957527254543597908545921165308784710701979212930264249570187708335808889982536173270352850437677456887791744589265902646185654953990644074738045492334122310075051180147655756410822990004064515692013077908220930093369962544612332978613045204118514879234249115464097311990436142699986776017037792450258614947662265199258914776190471471231659635118800231866575212399541472161898289532253922640100872932036383519320853689185113088656895885805027231574023767111689239281994607685268217252348793465046584703652449176629177856457826390350245672697598090688982473221919115307638276425604449308043708092443997102264781763724274542851743695634712211684142670307696673220314304952938015130794992734164108653401036306583665674197872321461467271596286566264507877460341864697788276616038232160675857584997731507242887560877308956067693361061445685069498627742777588554855188507049574252795065932427124852659269603462989319765708625145344049782076722133365787517627096171548955339615578700973931867344921571088240056023346029054442308485379018765820564300852283397897678484777023332763769044416526285407685357282547465179471102937430660890437644918055528241741531796279089024798219973588992259807659588611488149011202327993981539504813464677376566246082170072691202976993016853933234970281292219505512985999372157252860726706717935884415184447879490331386833533509450398863352288257363742172486867270023808253869354074028837368835075303454634652675302991498678703195175308065779802704936064161363758307349157539852884265093117177573591767232897011982964903786380840943820603512534460001714378319506955356795919160439456307162259917503729359679317206359250865520547257349598665395033307989598589297070028705349216438978591987743311433124610581506815325733230183597736410147062883748433342888004508128997476427531388516754808641294847869444918630136311938142504318179559863094380290309536567379702129733589591768842134666332105408708527971060765684906578135368083484331789786896423124164648340059577480283348612419372762264265097042596054853657910234830440859920208375152294399507986793143574260054186606435846268882493926903591595329419529534299519191140726215705510939815916997075514177078425233970263520429531452841222800949001659427724812824547165000027667339565721747462888228994850219084193335191733354062490659238188142966447364012811804681868937148639929124780719776306417090448948973642643278345048511798324999353139888576242467900388861105000550921636624062584231226217215996163053990134422685944070015589222184068704916070628700232378021525747883927831696947387629562450396399612659974389951094727999259736393200632570132675676722915897706802644554232246674573471369295483619982629743383880486068220709325631204605879405814320377231992706428356485131839302407864523318832438947701318892779507479912583671925924213519229515707273976833507842237613400283015206866821015244578351519814327273978411953098309177488378154576517013686655873302396623621619813222992475885248607852102759950001097810385778117397468083455118586664692097059728957221442982837844041717057679397680888449226195554882587800121278169763250757763221125155205231549894464365836109438339854342402392388738515923707585593224183393950340199439355215482405086269661061362601550865243230088134918423768342528182220882457574058453057956064366354343264656116787280694743630494900593149679986135689775553229906937949181063525329272094605459291222266060139771540062689146449088072768160301629838769803845550948021260066300806774424536393558843552067149978115744457259326395660794485731815371761241327453249610603680718841783243790033601163145303117747321218491818487586427396898275731226502928211641415669948345643469749126625203922199724435349359898343554860988865864884450516235859794007609402645304631754469435267452640042352454500962923938626299294562687914656236917976390594469265620023702537418168040602233887214820833385052962638639166778814174992019705660305179033048026059786295953839268441300221804093126245629029273627381711390749969534905966717964342645092371820384238118141910925247507287531474474225277636688953313277502900090009153243126692259075916528796522893618369337119779341600593057187094442391727455935701271148014798755320154293472347664515978927680702321532885109297946334163301102060530490312605375571473379827189721238970510102651823298911788174206649138888128911296469878798039093194405572845037345487931960295847011140971803236232148497199591763984246841297215106356091416732484359814682043214696494217279466215734779929169048286497976415721976099583325007077023380526946725918744643133654576948318368459220056752324711788323816927434686420733343183033211405702511065402823144949996299385498022490794982144473160020784871720799305028613172394580088621035607371152508721171092380287272909099574102845337460962026186824126624547623231737101664801633295897981088857216543106818428278703391152238800291049618798771741861892727908421708684847782416110786000921807486551176520249798271581369313031761913576150536987400483988366503315539344944796629916935227970973276835970867618357285024269827610148687630437128706175287071625314596705359775612290844816877134653755491675974404209515723758302633371035645674552767625098080986129506993488885464353616849949901017661885101617242942358251958854928325654961118585832222530223781554229093143262822210261627147003896015481758655229865144797736395301520949741666322522101814722545974866430864109925549381204515998349536787912400264607743785233916178673739155560853461359983241164440834936253439082469970450002842848627249795762171406713255271328824122560870217070032707668873498090699045250379694832097137957436313134510649511492230562131057732880955453296711425079692854347810321057710965588076312588930718761359486967181778060842006225779850807138212451480329328601561496242032415413144816700296970434123874283436549673194489493617372276437807471953650358293723310616082583650188754045232688974656685498462398956967120595066735462326184151104654129940319327856139459148389190939474279197245582986219122853820077465822911677147518420744145212979910876941731712089746773457778991582164738218943378530035728952096862102204641432879883815284280023495116231405489525574952726082906985707325019955666438203307874951051194423476745811711799182814993079954430061533118323655708407643240685645670180605311577942681735115141387940609732447237305738031985736928874092062763071371366745676457776215090963659222152009096957410437263238066044572854710551798933831387991683737426817825144191637207715796923030041407595952227288752590341646613720081402464595916829100077678318763024192378603819243809394496851420007697872255569083883606232240572869039754926892557545557704209904661801222850912919947712246256245334037232415836199326813007143932600013453236319217009777272983565562262296239164294978077556903280185500849061537631810126534363241751864775927290560513325704611345793118561175552822068451550404267233528419582555303973011385108602864833876462485398316652148201141373169247694673042841318043308916686792016975763624593279684873675929337243534255079764272340825323867740283812944175343156057623017745339022759784538661474031862290024170366387722172626793999019799118646733982261993840347537779379320695569982688994186052926038168597304628812277543465886889676118148949823954738871292705101775391350924092876401346131792252775741813016344290168932063875299359424331509424592026234178749820083853276685993161376689293814656506872433383027217505191746050955704075330911591431466313441050206466738090456672886884148633512212990943573966978716109424436665637910678325267899614521739794845571362065942445043336139656196494680271626333968571833953365394011982254693884418669013333408936546760852986240526197535290374950848615179881796076709400448775966159554802109797600273108642162637394567702638879652258719913155576929912977617286362231281735908471870333843327317250080580001122550057600311211176983006938046599813325005520731209897313450193475423095449963236213254537630194386897003795542944652247853133977360706059210308061201045653665197145586908443535787645124176358571508115109008183228780210871126983634516855194476303477264058721800179127563776986420372077009362408839779817209658814065713822429788466090986572357574113101750935288841624002795699113840501163869715702016563761588526397974059545457582003717148982448878205394896250499121991787482602278679283912075946824634033486444560817716525181760660364286777366899866202164330050490159810120124090087783830625239476127740827858307796997770664467747756241266561800758933475257250678131468812199915186554040059340983530890656487229257996526705714205098588925609008779501058128308187584791047038905402545340437962174661863095168957384039780518416761659293188133792101361213052479203134013560388489114641198629941533512156784767032675469145328815712596470048286352874819588531411970260451375188593823306440315894319403206851792273071764194364837273100831483004793295501347865546878400499599618754971245784853640811207285010660459115806799652253673223039437271166336435377232523604743888094058490137299761615072018594876571839866015101246594854401814097051102291643041894906277160824512927976920972986414516616067857900847469797346701261557184210233853587083113780351377194665316889440304903618488595445131318702487882640372388347382934763526929042905861052045692390865637701181603646261245259895430574098207769011603549671637946455979632224684679141851448658550820869287109224924140534000184289140747912945379208490160556067609335025305416701209030413396814037499241134659879665007245148204741560884714401389441668413339584607328438662045395970121151796306319129948071663159402386468883450583359459905748836164207972889212862430399700285457913942485542525064645136755348616110737793777077587030251808445389788165952541644411969830748038313271146952487001523210031603352863764422953369544066992074244018118922407112610698109279108864865781651680563041823769132457437628492227071416514531752105580843044487372454052843170479709605246827228036401119792759874934512200060991720104907626439725055039754007731568692719443845556063596001207103169935238887709305086875635034955025773517307447582405649276942207836898530585386350389416733451004966441226310013454098604056879324938343258044784682910729817973790635002086610751361778052061030080926150964484900916580048693610652412172182193763863513879544422775019729826128077542793845285675208737645598872907853520535661718655862134136478447652053446861201046586963373372445672105290241173057546164886141137304032545527581549027812874851115900038782059300576179942241152293461535834837777691243502472045832220272563863656377293426455023370831502503455946444884496940488259132433704630381090380008782364315884987475987320469694529230201598137781206300292691519978978555326398749759782110806479874657673770042975455747933867086529020953072458191446125814984846990867086510681008496944976711489024982061723359086495577768341242088189331653626327277876647609002107991759309903394794835483477957045721284374579204017977098871850512442661390173979253662521500644065489661287299068522756161658076029042490714892952738748860101305579455985474844375748605314929014719097685986851411785799372686438701311061620588480558225382815334644345998059272092296299181282595147132884467309905266725111499462291438757215425846355399244164977283985975622999164334870266358166113369759194128887361671610741692817056472720320734704364639353159030534463956029654195448559987978504358296137635832553787791017600857570312408065850507905718726448103812717301232482200999333731121838672067050072309666611077512487274373607352593883869763290385617087847314356996530518278674062402134751886641291739266050609970751926094403707625851184803962257991776717937121553283939257082044242214929855069468772852018757087869277053832001411798380085379144837369640818011815127145606560320047244047110756423710108528107692660031367301422719102451550579897854286697221243281085245951226566705539364123648140667685276345945270359548108699335042942860296409108195091994361081429121333036847712440212796893391171141610479916322609663621790987137695689858742094938684245088438647731380058554065414776829133301884160162869567116057796660977173165224699542277522557568119595987418085499940476343373401950879067062005400389213307127895013880505769462180276383604496611340604795376648603251933965526903955869084314055058206665124243268824635734535382112090100835026534124022771638848676907845054154579767265686892795003026349975684533473796956060292172785507325511815388240014777561314731266192800484912206787994546106697502037131284804994886534731836653723378810140522501876867481671116596299743961643447236463738761670115244698482950818522656751343179631620394629917986011308229893392959975487711188633512133970313371401838704363320769090653869628206490750277753357008726284655951798621657413941821129272000526092000207085097744909944497986075297309715133175808925749170634558151786433132695212030284967998027041039078463288452494688957027031300255061674627916759712744021915318846817343500089344883299637271080066071792945989106111539337211927791199025719607257575448016121769290545162161001279261459265433494930425303924223405450596312171086567472639227778577007134765221080447382083177764761269234237985624439363639163095033718085465470152665194509441916587633594681975393062161519025192586385623676310494541820477429198967585553732214677802742119615927221920406715670038645719215542439688924779923765171852199083257381774934066927481364384938771891666067740388138478868287760376938615190714554913047100357610850213873170178228464423074178027076047184596672120386289025078490908449968317582808238842806532019946018752748458066405781463605972632892480058708416180419940481626660173047550935622356855607435264002980215921464467615372935009398182224033176229457745035507271611772744827939213619552847367039714551596883939029189322106072031301960273768326431748659958359230514431742360575570801649140227942844359824707104326080890397629935047772635568868359200892712101171953913863150686038347362698249972684349761323066033238867086051004724267664675893523707101853042619225808309733527198274322914006901523496379305669676036676390044040276572978088870800662576608197352158046584240507785939218578648064799824866065460003514098364264556642797907100900894416038283640418371294546609879347675297854493061165056292627885668786842976382370667044817837206442972317308411704535786332033752816768860957287938485378267017680716411038826891720109868852360857243856880096144383385711218835277357823727664284887375892757438522966532401935211105891269801997344487544969649434504566429264095290631325255664562422948253447566871128115099731421132245238229214722438177785469420109506790885861277998191707171484912569209297447360026819596353105479996591971749687635364585847240972526879085962781273021244181151671293597976154419248536345179572246659254169869966699524374106831254328414781137557319958287360443633593120414733031950029742407916673521941345786656232607185860975616612702844254484079340386254857588486509307477188666525453983233439623592199189547207185510154022589499652880928472712155188662852283167227513472145670785228111652364553391132706570131881351073067681775419854479856114172794660226323899350147968909202991779878403801075592131124562262300508258309827997257451305913346671583349565245809762055259398878167741400994714454312147657692786416785542302542709773977581113645749984959019684671121175063562253019780301352664685196784176570182130250982674927054747115274277684213682690438056072809445313989854450235693774516841318632817313407756418625552194630999083633487590387144102850419067694518837229651233346266011271175385921398892114395474534591635589910633477574708481902214186861139270164548029326268003608683768568593986994432329110457100465406494402927025501160227594659194208155500828625944853867667395857616504830147099701274395488507894499511748160910167466886242142556537958147958730824921248586244855225763882050811127282290665276039201831444684979707731069162282531704047759747724678169135398096785555064958725766499409943396157642116725171423905109008193947625716595128236960373702405666226625329716790453129247808347408464071742275723093128457598499761411443099205570780961290586288784354742190610309812869706849564389366408558236937884713402362479705639597296574032571716635424458360780326406510403249601662420779800495217412814840976639996528567353054292272533931429668315431868424162057722972923542526944671379315532540008263372148118497229723139219289178955541733873813482391609241399794037158979645542222021239409887549337593891399081990195733034393316251468069451125091585637570476893447227969278199001116067327128970823046827184449507933691026637046823894517431206043208996140666801636234062765309267143308777960710164023768247301554121760506182030801148750445983116743223615775561493933047620814556236757010096413692213038236601319886912928860264970846544378387880249696935417294008045360785812601100724144429116504158366944222759132406672139297113577016136689764215756052689869732638215417267862391925705609035730068759871914026258586385736071554035635348772908951588824211221307531043708759826949581859400000302873891274362639841493435917918506005802063627104098203648910186448936774873091132272380659987082243305363588139105422036495912798842956409105225763012663892055098365193506781913834276565969171169301050672592523900494532678723403411890220754376850750879627581415973653295088761262115177842483057083951333580532553351338351973253600926883090483981919305492497674505142108765116887973219772289100519019856863971830313760676186677134288333232502944042444461402240655630999961981217645501268930849734427177919988311528253383258960926660778485180853023904055231936483596246903002389603016518371849594595053206974723837036463873197635516191832351166118686453234776196530458250046288675773579508692711131725559627895323424213508490241478996763694289421623636957314649306166752451558031746559869828629646824640277545926751195441171381938435328484232352832585100620653047901199246364562599131428427663430888579627036803837720947651374210210017673337720706869595690162699919785609561835362951241807706164629226102322542874934444346091555696537274835793610891468000899975197017951164550640454949685540669940232972350935017228741404011374169628332752024259852950476084906035231760312967362903840900090671388869712685594738168336271045623122595018492299447509382899472755505034310338364949209685324954933402199044995262056838298776277357686793730819789477737362245106946252797967324057108244590122702103841031143155068801189761577045780914515068798058429140874238790474077701700960177178803969843565840738951677560028892157410106654332278147121097882016902363338848153691885014887071343277963269072167829358129305095280347354573607815456279482302801049860246573387826171555046287708155351927510216367403893306285769189222858963903330163595543115096635391901400370393100522167289783294718388891502025085956269835272255009577820544342872422427775927569945482156389848717748639847840815491624341415849736342045647359081926515076317942585794960592358605642464215016125114906083229484147860855276317766912946872674658150710123041933511424189425245354418047354999686594854060887412086975042405101072601503657740549992099344362679056760933594950547505326327296980298185144724617139247848917005944248366473019253831060644989764148450667953630362824110497420053643853203927063192555339377243348767576177642727016396226454879370947749675214757358535853359638257998852835154634886317283038403686584227083513236075717237250500528272968406903909013022583016228066460662521344687925009154596932243107848584256888901511624330102892700076416851411598674434166297438802115892751805732292183524673061347140492333954250146143106298922733681204537343468268798809398485620548395061799428519070545941517968941396798104644072457557013585724098645105278183215319301198864849282445992004140159264835452590014981744295217359385156988515246925365045351258601878907294617350728640506970991819167163012020774914740875563863133920994587193124364603292487111031098239997279204359289059817706910799430866215636386711963708838010071072412550730899724838493926458010516203654205070934834170049793594908720516700402456165730389156360478710841603220886437070484133724478229923262513860701819563750207302122606970601196468277109471316628775350957830631382996259086913560997041075505653783849176920586366068056983541664437020392586339740614378469495639638268531943783031542829375817455221728215313170432059933442730774070874888806539190488598543993295430104899024338903060556841808441505386465426640642193588671465611765245274004344821933091388745737712106010801780645131322844813447881786396818165924738873714448768306137508782339225545875494544449925895332863284131641674446996103553151305316118278048078555115671921074912973155358141886998051024626711992719417537224200688193613852087974539468731783220457428881507446938340917603601489234522237275277042385888132713407553238767668738081441235080931793374170865888786840428453518272536937098140259225959054111646276326277180058022026243004375152462675261631993769099361732470844109153033056372309246312067132365392089890850165421017059500398858596791230015774954283348499586252430876129238390305673410343064436894642112866116825703162627439534109614329820325283659501032519834677671650720726035030965526584207215387178996055056203269752819500235053788834684440701285364915615134791272719401738893237040765944499751425173972044179699617167302648613660311556902250372874259252371085501321939198243894893422817552063027984373247455775068981964774561031710581441904941496165549561468167084841868122687043958168583852171618522764436970167184196434011666066589912656572661325535376888482720274228872488903462909557558408126478092128416199335160119835896441143045781273277145181478160586332447646004325097594162493513170682604507698449575169361198781260807319834299023777719851337707262510933421819497964675039830740168941945874389496529300594726349291725658020109519450544777158047414628687038040521243310179886903281840087584267072252418351069133352303612996384740291871259917764003434010359852492435068439700909221457903961826004423939977914058694495996852058321288236369589505999113677759849495616276578434473735982662320915316079650467500492116290232483999110062396137550588854999760259914607773386465253266825946977390022615732054655890075338157595127414068213631272211149074289595956950356736351240525889251633259124533205311656257767226285589379384264183384234366589906934544584898615466641806323713203257650072098062293592446319231098592850312597873964650512872857924105664021272226687273865345290809215369121323943658023574875672962937912988897131011984662010422105752204415466516153041790833187706399893775290096431841434308725615743454382763116371222849860967995114767974465804390836737812517038106594128274952051735519823630303728800975253067584301282721808700697722840752832567771886149745566465904389786416229698636448689735037702431870904903137344701712955969494134741868822583931459347520903641095038141415853870573503536006883011964357531437447623632713442098542740586403345175058574676221868987966806912262588987370371694743357352019920250244048404468728737857987284715458635596039170351625201311814347456598858446885677291989977870515840863740152328482864285503217672604105573284393047821645736978980466606993966908690394117818545814920835056881128296195979547372230169508288543643760636107947995027098690714374769232132695928005150903872719693943486599500605387020168877797172986231032513493404703735847672418368342928328239147264964495657380883578996340901122252668028609626449481481599419721142712854123125353356356188909346830349423754207118933927681662286994858418016349699130496284075311778326282550130318424081274287575217083497517176975108571689525204038216310622666147484801450604429464529533231506092317705982295758737504506497969191388729338911560657742066814428682703462179857715039190093807508158215185644499406434025645668066208179866517483590043844953749491446659264497567153031940191366691685208533018230818130236838864009427389387468580978395632055258794004080982745743625855043929473705396453892529635708962027593931128355021485032685819585862882215522029291719487731886554211686956614942915451265561654721890895573632895409857805948583755406175424627317233984953145558595724091688396618595650628019041833848023128650221810923972003634879599875470624158057802341781703887825606564236258892595317886662741651324922927751147403432061126359297952203191707605482195221687384262214759205618113097010439531471036365192842649439341603504685886719159397622965291881399198464342686343685642455487133129863254046427864903787980348719112982292745232972044907218181075023459467737381956006247016481097555410695001245022232852237290508640117509928430239104562983072917355404912086674449072844316646496715020920902946135383924028899606650135491695556142429999436433808820153833952924700881145443304891761155071592414487407426155760502157114361073689666783985590472619582043806997325420097364942057384018502984070089181280546493507577530724399777407883302959408887848226355207726274774408804520391426772821709334811197273544629232482486041924718174283754266663840617691168816622110497615050371414613116416157712710135291979164434957033816813612976151258437436499173030326642446550065148572349586396817300186172740881554478360215268493859391235361094915123907994725686026954522855759527761855689838195490130658907028198426713125483692360055865559773837389928845348346425360928938374839413732865390696389065654094764197531726885037816819955566509153617230815201372782434439620519250842108820428209246766637668941311042046708244351230332278779670370056414792940435716659640286183080182137560350264088508982962774062109933559486325743031934199845843914818546130729702350414193408127066686681825201585908778436467300782852995770696385034603992095297122839448793181109580591404886757171303388967537763883290049544011771490222765153704500471867888124758109696504434127984350914449061760613022880573560579636392935344803325733882553371422885279469691206726988675495798936825703867315060351765193053416536770920523222605554288930217069685976911511239855838700132048901779182464110320138022378331752463628848051503005802406081282957323625333556603639210502761414601137356036220842018245081763598337977256183621687590075070347234449187074553413251296421972926333553805625655468372215242365085580121145331016495477503314200579465919919147503670676862151081557500983783004616402413147883776521938819446334670811727691024259875650767201351098819526285243370376774073931920067511920498201428931149723924348552743227311992580133354869259490186162567393705970817442805466876607358282086138246913327850352969451674961022569437366358391449624942186360605575864508732236451439440264304173751565112858502941362528207262699117796532566235344561770498868395607839747704351032563085811288664811432832554338676677116279158148976328060258936318838174879407885346930351643514602530117837615003100857998995535931751037144968181674249170650710908869663545304385446426129842916144471122962201355266859717229827355587506522929282289882952281586977962271140644449107444870572191514962772790072863516032413940695066923754771841149717391704409186407332283796932408713218325988924814690529734559957351850090073660345411229808263962812764415509585421645209785685679100193225238520163218091275395776884540026617625051444949819128574831936727080140546960737622768402677559266728491706347069490808789611318758997179954572801035028186277197318492328567812775480545657102182930404494034354102243660576130404052055341432897647382568993567838051539354182491622926360033805479430173967048010080695426404172900286120448674382168907333634585756294633029335864940578839223704337250309274951368475847860841975071210478814048260505521580978973514071869490489472113380815237330039850717121767684919865920942159110900899511243281971324757385674883454822698610667673421057577764096305763701057184418529197887453723246797474141182594234216627380732134302915977453836617039049150767270477622182203509707949047444976029067313631142110304268247058196007912963311163045545160165645423857893990100846538949353397934013801745493321898903036326915126881226653982603855323688631962279564926348844849567866457316348784479509035417849465479643528036406105172495767029178372820650448278659076908057303549260059861838836991723818014754489266970558995929046815402257515049630710454762041018699963473068515915674799866714974920757984040789882607057509807030226711579630595397868521807326993745435572551087319523102823990402377625049276149680701205633412940805907001618885216758059932753050302820594194539054481384819956485443578755671777200756555875926599492584687312848124585133332526406404553940889892128446303721584640545205801904876737938411477225937580998797392574947806998606231021025058654661655683527422400280029105326584467862280566338514736038551471050018735306729462826000689976784551189299143899459979304310383223229134574625893776753354856011132734971912474681386404608329619717563951429005021724906787796616818079826982460214119435610853303146590285150933838974637983328711825119919444942970359430306554825351429343616758514166634055927399472953974488242393539130463668294492353701761042520557584443121422067713056331713662067487806405759268769749457171334017022634168513226831669916510112553587885876705846972938794689580596294886917667981400478140534193231603691148279399335996495213244201193562083007124560447012555773913113607695886462401065322236141966196661653806684262549375904739963189087644772690331601643534573016299222072846586976515548830273627746969751147467427244506718708992251626987785698809749391519026495699208060325926974769314172441826518676773369600559093146045123407707747283112718835731111830248718420430604411190845508269525926912463614778626055505721520930865676992118290054689375648770689904258247114282735628144209335696323175913212801465024905062475731787513481515487807647612632237221086673600708952390930452258145859564022130382726094826950105122424969918188364241587675621359405274627149059552506757081653262167036104474942519333044933092113937843656272604176056435567672522978243276105709150741269983675011645859552781901910835737689084775590884583263215559475221528918845068023379485417815153531551589200030969416150456925272151915872275084168258657584533004907283575162723158456026977200673486733186686772448084110185615312571336132721704456563283346368833239113896261370018962296375540454466021955555008616059985267177770892987615297957707629472741591965916618421384344791619269152344589769612766498339005265989470515185845715766023388552359038833876408604281696272703376590178367161784307670733365246376409212322721965646396389057717294559189593046316999405103982190218425543446059036757818842585271206288503629922273417956792590549330021268338835475250905991133079526179071110962559741039014485811066751251395866298759293313151226386756790171717278204917449917829956567697679883241276984608539305311724818956312788619689929977690404328707347473507296501562957214127526719767663672110193691382067726133565879386394522392022441377769993429848986380842840863677786103454061858692447351133207159767518062817872836388701154015129343023157155993930205065943627809477011546998223308962227528763380728922513897417242750271869214619482819390642245929680640734422626155221695231144118609467452050359867447527516547028261863374976835382599954857777105489485011443852234394211195082786369107575005202158283011097265193914921254454689752307861060868212074572764193813697605346193924172499055619411018980446681079866820100713112323965174777754998642873559723296248658367338637377703975913964704871082407131171495611657390595261471228403911400727363777747083687750642084118339182352134189449498911746116147009558840926390236522608198210823768858242541152027205436639064820557219724422877297129411424098778650995515883768883939955874682347930810153127627910149537378233164427035255416216553033360940155567293974327280637005933773441524468851260851067401323049353378796340190989339866353174924765693638212835423661683819708822351822427498159383309157590972584654601103406228424683796856711635196229609852531987127045173987527954090691245900454422729690241677965528143371008677386990047385499344623436603892981398529314623373640242730521638957381658264864978934444363453958400647170539446368483847299327718250144837076489503480579603158422505105960234949669690999533130617752862779613363796869555978546848328080087030112158083051764158802898971191905768419868371654484946170489758497924899074380205726309499049484782870990671437387572528906934637213179557383375204500642887262278111625171070101918940908016143675062219920000723034405436626078117415851861970291157259380727077755707785825661271287714403083729258178448085352479934634708652077399446445279547072326276126506268360813209924542402596045674221031496106830209355267325598469186660304831564805265988410985114311051578847024615722118805879683006602185822973847428659813708654133620669958047057692683949637440838803547621857847470080940649024509044541534963393770976424770956712677732955533191659039317627845446848585184077079165655252635089516593215547226461413812422885049635838550116868432204832516522455975097875150437437932431578387531291060305668755528038269749744569723056751572329651478505543279850961165907433312853657288501919053196853114734741633579742240068266463777183443529568973579916449565316334486250903032878050947271527708465239722039847994792700308610886890727857539393802374918257008544184353403160081304575653980488987842609189939407098762788116318405705754390787176191210710284703886738574986267850879034747723375559351839322961117942748361386231233177432589382307359831256902699173144406639867245219116988213315131010283283270026124897339193443025798876026948102806288973247115513212133280300137235435793536910962270774157810624482810359298413023600363027070592416875970907613641676130980730019899941787260549101391533186546981980571820525736717758143801474117241633924304687501646722939008432891926073989934741934565421891992340035980621692443743431745670382317300235388305746395742834785662812037407744524734995448678585313117625501282494915270804360962121322347498104374684190971858485933975962371564004511516326532743278979336490860057602792494061763358627515923752263877842578368955162327985336444476172971640933806804436079457689968766597499194197878373033786576412829534520140857160366283672898729745676899250364673684573344593488254800849089866779279990071593794258069898441352179104701971073322191467939738510115734825690101438510863464538097096252977040683729240752797420101986149280129667641519633467089919896673274730478769990015567993965218408698643786955683337378479745691725217096969588438243350472962688692605571148234284594000451828259164795171731597867903390297680282337192829157295943674811724299053606799802067635431316655690669708701386676917837863444968698211755354597191210277745088315389113160519786524862652769684794279606041329620898213511731943420504087541248044787417467176125405231350740852989785614756647053125375034405577385974338569675812789326724504260873010023556186087085380872831645493006012447950740439857382329042315662866759922547010920360409537435794839746164294807083150533815893049341590490001450350614281401762065769198618493561506068525118375572387566960888605126539356583303655585732896299725747371092461813017749377446756302310954241051762928537451505483705037166247788032883408285464436502840537014937728183595657140526168498208647109786400431077982760475931702068826413086745308364453987724057423646591100744643432870123415499877512807211119653059673043739284341849793641082495532726026506045254335243839635527824474974415694567077586995061181434389999580424573825540204692742832986519709107900768282562216168089181404642763499430588028669017445079170948540815034724507744263523363312508182251776910525128127540422221688237009418777662257537335299685679437634022764161623291014620709763462511850231062137398404962850495331595996780411785467178935975824991473665697760184847488546803767462615882560675008593611962556580128370974973655774898527749135793983501064135335781598361107420103908036561470590977632269270900861933838745934869004795597882176633644783645931143736839108533784124972535760607198739351095843873359596395749431090922911372039576371835326060284213576932279072656321674610315318083230044950301541680687362657596640882451655901044382651312930701139614003806614498459411919896023773527861010230838299378800211368482933798552461260028321892691031025327546928621087203901252765912378141135678017599436616467977462933822129471024395540859903659547760655317567713707985754878798905233345416230265079651562959419596289030955726693039983321775241907096514098713999467942846859779868425397982246825294023149802800958140209252277142088603517786824426208171400278642913453282062039692166681997641860744797424854000697757732342773380088461481834600999103805232747578540945625826325642735584348462375172256671113566471790522218856495312958017804903575158776984123353068701385418358188751993003141129149888952417649477072214186657215122732025650906587122781579202590494799440942230179116261329632938630380879053169182784150800014891652028257571127337274935041870642039152609768209834656816342743419368438462356501772010335578792691535254314009281373510016044918921617568642823674963064042473631868725770476228961618490105899456303973791526607208002502372564453199125864992280508539686336203494664411583082184683311621276441480787588062379646396606759081930987226670302799737076477073602740995508306780421580206661132227415844131128089623000302654360681604481296361408647537928229508207984401655051916177899778769287890513658881745631116573466306958483385347749476769924349743671111480182059008153726537541115098853415478909786086744276050214878440800334394014586984940813209010103163765139104348796698451272337806455802054171418326699618623025731606954404225421168539389092525043426155646677185367257054464537802095847400994565300929449614216599464245012420956891265597890111071931509650131293258618301539835864383208631382187326077716178893580799622521461606272547274699226671335081747962549763351060774366373115837069089798410493326781373781685159733613193845305770595999265692942405389365603346324771085524191753348617965057966705125128424105189612261146120562644246106218148314386682198306426904119446503710080817589125689790002174828352562758186392326992052145080891107597942545877858619970648987162635021030146558789116520670601228071210216502421296997673860453769308796552524309949798165551483001929658365315239298663368705324452993784922704680687260487795628339038519895256101634927891761612798571132910188848142115807863944533679307981362396553666460136963630291308623569905706299761328233343591160394961393830420347313671958397808168110534172364279094800731555520702071106734659869312117643522285469436201449813165836775223662694342380947692266344772233221401191606901147378352478884911261267943598484589555053169628312677561894374814318065715866750321511638583486595892342598684895184751629458780556545559282045997364219658637263112647086797892874286029976340009340162206084982939103258487841100811634395770276195429212432793668235508795927866443585596405042076338250652419622582446407081404024830476986144109949944779895655461653809438556247578738992881419417113440902392556289303237043398584469481446114644410045228711987127280318328707716204020309837940434172822823788618063033258764098222619304132650050736112185304368534269306303909448706495716266605151771584836005395792261935021879913683647684095799384766084155960205035882981604876156012914218367143148167574084151001931077133252221695041130027338934636626577428993300928544255195618774196415407755728290569281005653249454561970902104669775407308878803304567515914680726797009767888451392556969549668845457404245479119435849776766296636622823833267540326892485162011349166476028529340431462584535676626417603466791764160314718327768232927844522384233525143424977609449136202601090365766086585849508256321492764781273622906885637060459849734888925620382135631427652423813235776570458865399869359320814812901893863963511465417237509273039881368501245163741987023210858595371775798103431180717539001447471424213182537105981767593417714455200629747425557226568354564420060792590593167841221435804418216044941673786287838480525462713567567913632846653323713122439005583060072689894531128544023209729797286224141401393494788847784373028858213462138587856967893590467364683616450716252624896013096042282433105529583798385601981551962532934826796615350430886674017118880545639401438609005219412826363179037274806524633208773851752409727102336857246738323973326754149268738839274947388391060146611836128021956951655187301741704726653633936772744515509545656377869286593085123004968553071959769471438342129015062134740176373687608786869524733461674108139751793789879508220076644135503976817365945795170569849035543152902247793342470993317411366970526385145411021091010491732531990852073179847879338958641066194651103982885072844531157577533170938931326871571081068744046499706252638427432773481203919122917631649468719018646813972598634131448931385819545512096096723409991897408479012217636814066455252359483676076174253012698852324296865015654132086338376436690785988438643551401601215695505811395662755994441612048313271116615832665588157836919565684932027789797264814621669979366128615778215280023369488411527543440465742996599449016123833172738162821033620424477516981253130415772469568789334813599924807841839945029669479442414329903995766153134758627198653952122188945297203606235490001564830994472015846547522183431285868617843613598746674646250206141890485395369272441299032823689837443623131423783254138395293839566612223177588683263499659780635935548017647008677965717794848553532797006881486639153296119945455474178603084448367408136437390579293292522715498120920877199721969034464162748703952795816364136588249938963638876146513550524051543232475205203165154006819851045811335494401085909191961454990093167847017661792291271673787687564010390284854762295966214699709279520723615589806739428970115671479373303555000283767749748799491965711578855367020880836132566233278210692036211762463968699751620907586912468101460430538709334937086095817649142582197155835834952296090692637452796951140652833926401589834266546108451046769586724643951948371699779393222227033277562498881079116647971446193304602639020370498347790614643772448186765484239888842940075046337364762919824107987021302144805138640459572635648051596907363675346614185491395429517201847094822728483856569136589605088403148079918139705565126664452559456798011806613141523287666173171816866079947193383040307598570256513168307122234342410452410418901063752213388048671550523879419339215913799465547689316128854218624473734087658539459375388338938207032651956737835348946444101311144726012418474538632262069099620750638235881557691720135568353047496103787108581111130315263456180513297326395091566354745150674663153815981390262814613689208870740081944252581689393791692690781462952271932487588773481010932091824070155281746817827132675829539079124022063633307278384158834655210755972353006283636676113862322232657281360877372948553168829851851645897235093089613582569891173601312215515103207248833260205864139328171471027197955882677342078458326410362369139268497208704816792583714342849731312397764426210641626528667908070060560733792262606152417768992002407721832303906027361383404296451417126172008578471175552618765855927744980840976611503264531599797627275256111203709247206096466370786164916741572907853472430089588527648439208495234489673489296104085769083433420009085104692840931032142753958639341183544622897832014376802523813578980224777330540264404568998784124140636590809663143755507266094528615856685975079793804872932546438816504708519840388014645235561241362092999193846709541891127281853837691896739298947793707759806012702387418573893151575323178536387350744129675390470400532210733108410420661072327685550927951005685253090979090878688236150441378343027111197618862879899391000279550598700083609856049034744280389442241969150959976710289238844221747193675932184396283685883836206535918216721366673260617578656956599246467502707441057654142925390519913120959630481856290193338865257194407319999140051849722207072946796726734968321412487185776776750193969682766996386364376506283093470242794339915132114280725672063266437726226497426120544962653689740218232751690932478209543240921399038724209785024077266041882574804716928941094154864677771406195150280522074641734325290032782633892938784671022022332579295141852023636501855874200967595034540636155197250101154090139251006121135201371631698647728501306619493603261783113325351398680651130135735432466700981140413979121645651082907936228606248352057678263673902512223755589136729375093372484706642813100504125389630849990558125684199285069325568828002869053610460204243028569170154806527905276075130378002916469855048071961361904454648764481663110324019437340966579199163339406572704696323436833311365458813142092100416261389854467400317945580003291951789631876416654589538487524787508621275511043184532185069231785897901379407636481947139322456958722222122311710376407000188660650127803937398981529711567353508129666284742161627603860012323251098245364382957487707038891984872223361432950627998086919106194648334337145023500816217731231016715178625197430140795217183238352932272555431707170866430820835359489356397588875644376328716983981401144443026731360954058289172139026554124656001780879024165706746233444280871797251387411544697995716979057436543000574961861970211645934182961143203081131814091447252997340029312564359160785446054145550117057758814551871356979633758661283520361254765993290936804290550930926954552928371298115759660249396419756528149357782196097953424449779257524293920732445740033710607655201813934165581873193297165584424928812785508166250434010958897967884264068936114043868552267765835708327174079054498485678358421266083693279374720787624689381284618627142153703303626675950809196093896506578848921544024357657107243833820658749957027140584972776222989212623365843324124459285205447715471099669453861838540338939256883640028812282275922670500648500882614517747876863836461447931522610195233770922044252995633753629771922710655751202989082864695416671663936583878810998797518288354203712857948410296254063991241730801158856655151847611450023678115975145517543261508280310043584280629303581249303321794829195329414674595515424147192168703130020139543466145768310022640314322210927838484933418772906628551128040475333461695226710293966550801917997568361294428708047549823885554215302445654102919797635130968996952168728033924801554391786429431050545677633032879700175069600485763985261509285410229717231344401403558096643385605022798658758685331460977574630073246016646048148226584186491272102470919737021517785124915695932271049737683861992715231746653398601715734115596544205427340180511096030539412566980360583360592467203164952034907793560540009630035270982341026763708081932867801413915066535083471571173573876024448291952495073346281444120461554333976756609349142647774249457707591188843593670530901235446072930407034595920539402123246033694676276196465521956508750735591857347601332506117016689917302884657830721417035035631583127728887884151495623597843125920782012553851514297392802076670521045351841826879811612497001674373605267156594037140499462166004176811956517752689776114801610838485195012567063162115341971765752030159088241056539155706214526942786247720175188360772511389432898378350193076429132006373192374584471894076479612317412763332071751783566896856822599178609173832211645486457180145717887279441297699345337644080452813895359390678248807036677476698703942009824666707976588801889952122408591853249610357167144493139670777421638815916207886598725133242989333515392336810133390471942020835928154163677489926952159740335463315643218609779838496736467032564154498066060284373376561472009832842813802682497918352009628367491209796279629565968674558681429551002046432605334204534807561636884156450338671289528711530676671139689998378544349358547232881250200170606268542872438619436398683207709074349557721325298870872298634986696669626914562207066903919464772547610227851347290136168116539705022869836019236136494434996669099717033603460430001100900001709833652062476587590474387316228785046958494031358513732880788704116709280581722494884673918422252927831221668783681108718544186489416116668579306275890303860464712917432524871995026146894312338437911759415953996833076433826475198704584823328079513297881278015610330901918219337704202883652497545567220486780375095796542631284724519871664266017393022490713553939240267505024490906140780866650331655685647525830779232453399533360950492511417928329010493950909744162817212346826950178325310444259077440422293711214395913800952014137779833499284629039685017627161506168707584007717462855620202868622566762180102358472486295750716836161215163626738113195018898623969754157380312051991424596864888141758139896422271971301986154613516940932801432931415058843028031912940634742064049584778286429048749690019534581249203352485806674575432922433895806908931597887911806601041204037618594816201568047802797514908033216515866176068737170836459438025606999930912000987682365653333453826897324604034384465182623286565188559211900936724266105346352980336571758887464924899136486855208295368113029025712538574574687621945546771497058648623753781840391115872998932766362058611839195510922033023485900952647345324966448950451556478925536440206417356343831258203807149391331856240260237528889253172876177875357975143909884917473852471540338307941123323477581324335493191400232890678888285402334516957568509330905985335954918722821932588815526096273835696116950907021519478425667969938848115111920458777457486325393685034079431057463665367735881447921650072641665580419291296194994398078200292844586556290483433197371827926072612087543526021026940261876846010604328915305537626922384498742173041252198376704249211677070920626357540897797384624138614931378002783286413618327690569914067355838739020857986880338027711546096725444410060679625056189625307188671873374953500551885906681012910222371903566013632524807261968132752242022038374798285122480805704853092099760084309521224473684005846064825881902771815412662261157097608607044074048140344657457506388298701834635148409738548930776558919872110652653098044381913331011867567359557321213914992741710445788864589429855324404144603415640178263999722671098961799688035093902888699428774832446656845425917169194833400880346690302610479337682240003870087468084283897916674853994145965512543203216547477803511750929617967889742732490914574143010199856666392215092913515211863630152723971328011256444177070686365442397664216596581360226510382089256535903545564955487795376405967370738579003346887545279394605010902869602105577348762473695842253498308194933964771165627883312656629690460437258693792328355539951281172616943907490940153274853874128428842308637296067814779073754366290826196895734134921195438187091518733106730707820925879589716200242166001094616768725462856693472016489299148673800980101785043212230950164566707123244403235734406037598259494525980294221189990555470872002761456198294171852639633712102172420270808931080709481251591387453495625441083102640748456675249447273407172243693057122650480664589478178828800958702034840443829563989229648012334585641880020434777653358878706730485011729425910733187482191070735097989412999150264466426588251405640089905509892869827614724874550582288299033022469154964631265328149505145109869431631598011251559889601251518969026191613634114700706222982807819293112351762161534870615837400694668780356272643338802478491790201574146880463284671753506694722441261054252989292892012609055541209750387204227367511926470587320952845869089956265990742623284415847001748126037410567626134617804241101660280086014006548735643358085388347758014476707874503109172053799405692923501809199830583740169053595326938553659168062709646986819284256790030980533075136566841563126643989732757865297589285859745726241722283509912616289885665925016318238276680157810358917516621291030763073505381856939894321310368147971920600208983246537783545658792654659120455997128965406116654503143653155524250670532305368434481914809896648279165581445904590393697277209621981036509528736376799531265405228252187007329578421327532701484637392091187636388281973352098136778072629130321533192936253469626128028581457974784570713372012029305094467540850304189660944083499702433423806635592142551744315215822204742364728431881741511021093360852515454788350475816812545574191651279842263526040261550282074503198909648046084498757434271613317803482839701862599252451485940245599004722823981386967347877463720498615445925814261096606936500086645796405845196942751154837202480182962754253898511238703833194627453240319975710608033167227406489384489231904331760547263482050548805097305877540463760908730407870497993098650020034700029214747304132231688408298046183238554143744177021600876750122330816765328787153800822115995190524452147005278939272617047878873121547235429367868131758096575625094378233665634883199147298683573862487315251874539556558505465018551592002296992669418387604816628568739127546213220787557772685519650991531839286340349345959436253881031967496939665681160761888845673948391372947155658895612519934263100134322478352531239513689989555161628652395339929784517754752925542246826273669373684760316440753057091396258883467876663601862445629087982336074770688694009258364769047761733578400149572629977820364323062415182890796369624033795970791634996086470378605789617762184926540164621989066760558156747141323727627994332620190179202932630907647425016041992653221248873503878072322541389732677795051005485246466420048799518533736967404104373567943983952539365139007239747611041890545810439589352513385286834652592049985699133152774415669674184627029916454166187226729881537866279576831379140867514499391747762963911805760434218531404375222455124100899720509909667280649505775666545046724443895712867354331827868022717731074451232712646789904615050146728666428197407224142208179089400668708975113727887835711476355815635627521346323694411377072285929814921546032405391620619014044788845454911421694805048863413089805969799283283984069494878175631837050174404612330552585301941912113547653571750904332293459998330341132164982081187943135026074672093046737929594968051443042601916277256758448689979833493812137913821412296896066921374518122477280414310381935093259657742357168263764371825165549078179734994551347061940685400017083191032048010169233571573102858557464275963508751485944092049613891023523769598207988747361913247542297812794980408148765316793316504545505392451657035205992986135850868994573160839890577723050886366403363142794239837294604610732727546682065414880581900806987964814931758137623295437865533226663453696674226500867913532224697355063566649402834201549372630966438847479725909753190842421215726696574641094091437957122734723221623520127311227191390258766439613491049106890112438580472920986996021923056454614419506300049271115691606228435689959840473385856099273151713798023515534786597898266717184164250833754962381558557036086716147064394479284349856462265831754356229139931616348401591624710089669737918204238014649856634245158509873754796123918570393062573468591350320849047530304391971730851562930505825955402550311819012274818846122618674468872146635607440225220399034139829127189338752800514612955507466668183337524860327506132724150478969639183962365814425333326515232356093401024870321184524729679408064497996056418317224246971874061615085089297013249702594966547496018783997197034141919346588555897357552503383433296939513410302790181104571840867353034732180318901712431354328500541345486490165875284510942623768850118109229650179683735233986995596618548411702140850920201264191420111429216511395241749868925171917013345931385220409285642566463709822151201620331666738995885646092152840280989855814352403051682979547424983501813150615763968233673012688590423645964327660624066307017862387867899099406301624059197412681155669920471642523822692825328090537214845533946044791972611912349912168789107900835904551014539382650779570120945004785007870434402115753768096533231524000898956127372177090782349965210748907757390221295235178016102215496119868944540828786647328241010220231047197460460629517702808988575539764548387909205921207897487312193510507984837221815085682944244891334899826315929183178289833770617507791184353313067035814778346844040977511299896093412798006420518260857792194257474472564427317148337259649088643248071850062014038114567100436485984866082523881281053019262012416579286615232060215929749801187422754169312496516746566185468317077623164084301520172175538111868033479366348007888379146537270904426104495618806607203216660034439787248055415909503249553419554698940433393146923822493626298995978349725471978871162931448491160717088952221422832103457535125741476074513352044811077808075323745827887602673465968542150730941537281686059474092731108668596699314224676991320532567421253271753596588894155010343179277258268163277628574665593078315118755472500579705519820266075117551774213011470108091827292911480703230595781188741213812807883116278019588425635318242323777743531287179898296939623204945553227597043457217439151440649928192000095301888053666659230539069106546474801091282271846825801050917407809771144832795591628661161727271795428494873964046871919784534478429906509707553804086602061238076223363654679641179773633653172808800020235483143801412597553954059973916560648710734601592200181227660531774269401683880036783450771511240100419332624672075343652692382668388506652898354491859333229537915187201395541776152889679285715515915961397629648671828962720286015825411819224455045928065207540674956994596626390135018103244940967406075027955525265424113919473772574856970631306941146314796536585684760052068187098030158904910125717172933701040495443347935386692714423938935198924770023190703050282849336174512481093259786133922462704896369498978722413883501725567771791500274204817204293314242291792031050484989520105044240363567823885980119533593776727302942606672769648217626803995063077272374606359303150648453601522732826654449955988886528713048196550417938233320775430969781795938760116419950730744380895515715071924910155139463966761117128495432055132968206605855190300580847189332433895002745571472569227692611823675221729091502148140787754326265046488891070138828244730899231154295093184759851412155122338723902723240769182112083977620713181578497141177394331153961044449495703608079865938863558196914350380161731967202887977434192719327994390072705863463839703609660384029747450953984864770572583071943577099096236245840615571567993109758639571633476131580482058794479859716522359003089993161136231056622012426914638319396224256749473624933299263581105572489583730160331039663122151068733973038199424230729179034268757299707383145647855113957898814555641027253956739680419263689058411330777825403577503818626214683899644172476179003296400472170099400765862599704561730759871575891147067862734609519613279974419549621959642077455148642715839916324309484105572976219214883756555169157480555863666187003690655978892481830938638571565433096432501132627036334148948094302940238386354742101778931502277759013935005961826663112219990965096439151547496868803435805651981825033022973905560597456670480851481366945873367031522624567239732514649329157339919199245897543497088557418219391367741401431856476068899157293438424463774750651241493075551593677166027292034348539225110561285879663546284661103722159850688800599486637358768949097926845812046929740322440295137579971816565431425470552090765743497559309454724355034255977494954916136008589923650054317525582797484768531231697614969205999109510208047543696765742625364395434926570207845739204626520614567610394778301289632801342100130609993673020851316565621216552156392898866887420861498461838175678427430759348557172254009885058237247507588230600199394932013604780909859450250533923722945247191796765913414612605414221831223637677662669286365803949127460153180324543419853413742882777581668109979332263289340513740334792903340910331802565469649983267518836891509104158008472862869841683258533838289950203306901001501343416169365970626287369303578297779450141145435917106151046726712640566415906091477170397463202634446067197548929584056585460792607204778684552586941827333709528264455888388540068253434651925588936604558740850926649270234845579490399456221917866626882526501877905031585184617378478669860279078729346103635492270457953207231847424920778042327863556019375168973103247321016168246419644697357012157307860091860199155961912060387918185986566462064813090911969614217103502406726944164611540245168841540076097869454476783714853032069493154007067359538125319400121329469967508494128181954757668063783527921588578298913827763808238687324559326786211368083688966654979856145904318350390733178446826915618911711733367750754900980645593322886866431201660856617914199891851485780421269112308540187512582893478735252324366824757521637066444424976767473032755056404140245316366548146470018469687897471809441920707258434789233351752332396092951425528656444288752188032045353645602936443870833954197384696268670190886350074430103781461366916592701318560240033765557966034754930973412444647135697211659613242669187828617130827967223066207285107873940964178553834369030049453479369833706019554620918090771461487029531698738017027173646449105253547303239839711721196008889325245110260440667683314811253986442086204722643661387788057368269514894321588825224292692955021500176793818179081567284520650122286163070062780009812411324182933181177132676989224301761639879322615983195717469306576893093301168961649902842897864175350451048414708014054172969901862798597531513361343313949825850019979304113753537556759500316560471547722663478356537670124614043912501334463140728788193262598810465247623853634977686697807216324754420551599981331166801230968945795759964524876263955024562188387592266022521590669078874025423317741461944595287008826681166930431082138455964676732422692380888544835050646044315153685168889565709504285310124362570318808918530880977965362619290684098071006894514251087990030770397684540353461388116742098050706567935474038322954988381275418094300919244935817187728436741194675421492887868361534377708240040913029810573987929880997630212666210790613402111612685199622711853512222654666056537121975225900001274676014196709958870853626912955879654555591216060923005422500942989039239877880994502105281131587862299182066707008852480564399806649146467856743786198879670147693424089190344685781057361562110669971922945277693112906348753385080654650221650127055908070136764690189283152388585170126574668410104558307697940072895816473168340436087638463362260573936737611327369901338580833693120106044256604392840064565736918630229300639799004110516828772221476013822859674802543952394727292485004223785592130660256988695406030769835312426428713969013928388013037006029813150507389362581995234508265297764149753840614467296595419412576597034044670424788910620182603500687580331924794304789769931073392442900539860266741048420098386026507818853779042628701499480342555203055797093712674094169816019367640637078732375455182372921327703168262703320892550583676854027576507841292817068349606570286234214453277718192717532096553348315157596294208210530418633562186644505873988890797475428405469289848091211942185011637003768161143292623471818039315232763780196851340147247800982502540001015089158688959263514492178288286934304093279833511872298671366024676395786984588511785930760621194863298857772781737216766050718392384537559830405480016346609586748416873815685283641986252873900256592456873900449114069464591208667551508336277162062191520403672671550272745238544735374615000905200974132034897712541728233272234297425810533759410640200864176754192135505294422819321277229592957316980481802049770072343405436143325123217365266757626304103444041609227064891204423477813240129496537548810695959696586015360852432997860454216277368765169739111720407203841173518265714017906220865021791411173170542987970631695179535740685010990683922498950020380425117153331485708294435010708595229641118349604473102000065752059386315562549248000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
24000! 3903304780679655392803443702434164936084472469220602020590399347645737746573261770851446081617388221935519274559740712998591807231025020999975285003647392899380770099535990124491725429375252628517261196026457368884567176033838758237274450380778233003966318863153816571176484647276843351607920002940293557274102514750765373328559193064901198070240058914041806144191509783758171659710252126555863775838879203964911075087382480729946046394841075037888308101066895207976067634104951657948659825966194777986726359918451415890171341887609629104699403348790227894288965111223174625599644192062434803125911712157018425509988185206402431524607926745433598102597011434357160532386370389159858319387138714455283063051246701814938435480468811833365111425062906670881787243230837122057913036300941203044765774057405961510380743038150579338317808052356145050240008504965310263956926636600369668293569363445033767423548733774251412665505958595089040374511322349580890509903805775959701559801401416676135460344922344396382598682605867790786122193261192971811981809566971542386906424494107276853695237068850871818549405663576543442700141099679256721238298195899773380284877782477941932913880168129903399100072635186450174644557795840081890472132584157175474812189342645161626966733388385516850858424460094534154500150009354760581516211131907126577329761733785633900973327943456440981914047446087578843040683759803774275745329562318753026336997954732750930011052318961943475599266333344829614099124210555367559391125945738322834034893274171720505025151966701183776396612454291400299865925504760440511142976532541850202448545588562661399177707924253826741784391197117553126184426211099947406598879269786710565490724186567351708192567992924412061056531025376049320447508919917279208838587119870899034584802398997168852103022902580354955145857777324786722598105570488994016862958607211367611186269329954689617545883445137607341853629753949845075475879568402400451655156540251047259424189208737678577695073193839921367734276899101699099747559720962033893559989847146464460947050691307798251783176357916656632814983236648189924174787321112281260568961391256734248752448716373322653113846152318400927048755588683669352052319896826205672674323430073588809750361032994653104774749907128692715281505940599047401353793788840900605672723145471061854675552007454375129472765909952110584672299110630449091687901979930130812939744758532152026769807287945323459713739366282694969877024770688710466892290180895363731756267112358573085686912416199717034139280326439959437687344086962002872165936708257132603871630891461672639933922121933330414234207800848267152863649436631308818198670222911521197251520878878256078960267086646174721942315918847169401256253420264922403190232473216172404275082087502570292934352520640625944350465577542118082697333979923606249073582535591657289349465686042479418219951311705884752524865914988731152417677474437759669742302191349467914808698322698256209447893813154641684374307730643788145682331280015189519699878068553255357160029536240256752878491661201320435642768147105452217285905649293287205338484538219882976865802783498276875340513108863545935889101426460258086793634894286712427882872674612561106587375741664403314511571854127985172557044423591095759460449498436945711124207172569159452090705710787981632148141514880849879241870220278365133305293153875535042958127857576990873656416023853075557231686322894875114783626884914925782422251786379873842290838009213524228522893002766083732306242268045223398444145724038794622279810890989015381410157642805868404330691596245290391317503431479087747281310248741742743240686261780303810208932835945083723064484331970377262784601634296972345627247361140932551905305786388132976331109664054861958228595330896795064264203280831825286215532953825347548129764197323675283183706241204881116638264705272193495417232006552096150310096701017341340554541052391265863551749060816973972160003456434648062265682583432973207586573674499746177366091065931977974156341975769896879037091690829405516507663817719851868845920680578165479156875997721440981093934353994400173350037874252372467803189162475365826165371533161209224542690871591233608874221371387381071731831724435371619474886110202602949852393176052367524983399288264282027931696650958284596330994660241030014479077999927700700667575297436463280510665923958388302246855738854774544517613520384647430932504631472972188331205755318327759120621517057232299472210369839836204545249402538126808668711554145385417080259366941349673242329431031351003785137319732992770150925806010181699519553168085559916176899957201633910163371007655378389651863882042653695434904452571500263855796417288707455363586013477523173956608714988965523614816887936975411199987239105681421282561304849017179156174658885830856779871459532228324847517425363605257819437734419399126849597170007206886178408662320951347382804505094622464301007139225480447711760649944008385675522108053310796178059762775280823141212459345752056833373334218301844625220105861172552879995789607881124107318628434987044177143922748881055024553131063960738649189336216995988280602893267605776467345478208077699645378229408305378418746968454207011934051107884108816817076226878051974368563456664317084385188098000362389026340217093430314909810464669292397970830262198448769610652960935873340685785513402661199835467707248488452084496673638718021671971895388534288933541069444563372958481693832783106036382091970347472429135926350273990043225917051637994593359163882303020906857225430023015324935999656622533682417588001914558673886336096841377688809161063089590771307585190424622335917218416258998178881826562582539238988191901415125931777120389030249153549003719416214745563790090362371700394553622938181939353609480044057724862719596586716144709086274143636080635621754837229317559340858391885415667808807642898075838888343874434974136368124010034266209105892782742951601414749169887613383824894477269106607654079959345717289096806130494039819006762537117609248626527605325308930372335560310406482347089375006794041572162169767475600771239541179204942271317241236103315478236269691210447681544885482807626954618710513733475242541074886165602092317748683103064413767768326787074577964145807934863084039192089874616375126314041191400793871944542277475040747189527200799957013811969233352591284847063944170815329421828061224472984170529752132316563965539456021498082798006943064774096012010221460536156332943493208789992626088875145957694552399025140271136020888585934629248326304241381635323355066127840076389391915717261659783990760187476537129605492342648154965436678137998369848721986021061870882385172165801288256027821674282767855188478663401343899234524277061588892464098308040898236053922420125566950049226925152105434945553938441237313480311172082581721692436812386706069431001509655711846520755466357215944450187709697665992512094615113787964005343739804987467217028088960629184000568707483387242887275000335259879517011268914642628921935102322646678270216035947982432055141511303355138609071045263194490577110047056703537998922300684890705202798797612956470313949269702865743606322659561028917203389487736033727625179136495470717493294786373840943161170607571600883698259248707414037259573309388440817093353901900643736182631070546114638035525943876468794933587686906965344750021738299208677962170709050447126074599911937160515979559160329566896351967845013904535779114251463735566695118560834523407111950937558794677399301130162528200571299140338524118021516012798063959996706820657895333462614058494737875519864381848715827232934882692212207349848575396837880824269185815559294745051059281317570929341021276942631714284389389437520847890236748866254102402001627368990681513292572883761590616754999100145771532492966061559938054174785249471528351643432104406109051137506791883733962249860697782332977128197536337950288223911498198233670098518432498218834789540594153991958279236969600784700661333825293214395952825026943096527321564271938792171481363601159960740270060246253255996298988448431449676335984185924840277477228306206762221657031044282928438660539361597877935335334512427101821663870302546741016679110022301332132404976340461626791722413827382286109676866600676746568945898213414855428854102474086827972432758021141055185347279116445238759867393391804085033599410736299065516480640140749636062595522418173671421098154258523642198687772374726656294895521204532072068785845946435412060166828822503498021172335477883812016435483686442791845533427485951308817316591747908183175479937723450095210240653294017360153277714803194922275313688217865545526719623377539943168212028672297656661365778318473654825018313297014254785400294118301163897508068364686854727622928151823474257012400254601274997375747621617654092717645753520970719720860517579065972504068125089121039236628533807590094526401373707604926661163950572749360123441603482000978919035305706388160720293186028324253635114986543275675262769728332549525804312700428718084797840671462162429497081175816095269946487650888416867430514982096870480040098556928550115409794755891763921983777869992395718762437943961309549680284122423054118564264594138765649833023111473991889380002620151047562422151329332187615403371821063960805864874893265404547243576738567988671281728903661375477839517220157443545914111900104632061328822761016586197579703891587275382102974593275626249927962956078576822754806477468308504520698732976574557980977074374037618391693027752315722983835726622951308726551306751419641013385505493063975342122080239943090896013936630715996003714555522736668784715520123109004281277240614032813040269938695083299944822447647886916944809939969541618563951948006998566223153294243400260772198225265424527720135514152974882375569529207782947777436611834661578093317860067811626053172207953197446152796283472779738049806299078620738289235868788344099884844463442395893128758698215834972692939853183863262360089689156734030273421198706124676835189746234431504989408022821512519104194157673729826173579152222516482817125146019394378704291398877086207211325006440397538942701620708569231690945563999987917527116168394772010732025193687721018672577053411277299313853043658338450563462503151970078348699379417609363635634357653739721629435713973899310559282652306588875060759868615346071847049201250121786751899015273197206903379568034519478149742075527687105531469290052992772123282901111415443162914048857013806261236248995836368914597086633570922682901461720438006958919833747841758859176882454565749940434049366150018034721698169774061466564041872530278752264154114839310194353219625542997846678057076373047783595064016683061019120614634248655919753289706573224115100230596011541186679329470141728146916052974250728211100053236112451694967190993747044862095656931241135699501804968439156401286830803998775172732576997277272875151643767955505977435261771065543717011316181177598842646433148778865770968038110952933831505870218720999190693019494052454532854649064600208212099926207351193468623141551795650243943733571448313601547261303499564885483644756293119512484211624174902511075069693113615339787231428000275425337573671270814425274704866686717937088223752623291213628678467621094270696890410964193990366623905383454130931496655782549378398555093771392871191940389547967735209441367057585890250496575772532697225260194128420343459126439623246702938981562963328010699120552532328340572393149322554010553869238112660821174282058806059052655415432400864592814564449759903839083070565653907100694635603331203653809765668985574121034921168217880495709755606977881816004747167205313000999260106413202968387661753152243642826310758663406205698030721931550029586393770398563907100935871766856171584473450028498891058860372443482792821538952343579815205416831359953973192550212125789227723446194243051377017415536938899789461427406216684145882414731851302782214033583560249460869949067643121873877342380188564960964595150280420935410434732919227036891916920342485625750502145419994468014664937240401158624368497205047338040740681608018046637403056724744906666810899013091281103466234315522356014755447603030716777279979060041219949017521336955849084094881391207005715424888345584568633462564332206940662108273093307695938633631130541290607234300348778837149848294336164616688202667423220065182552429284455893713568470554227993642069251776571865158953065835040967655694615206396628472441761960850697342499186734931947151945698640611211025103669599862104981669383495423214133704683118428294240151216122969705349608835197441590483165077943424345916533515447770650257941602120263205247272083226949810195260716833520446522215506214067218258580310110552865398995899812624688498189819542874736138057661402872307764263671301957091182267220107590676022610889519546866161074964741478155233892898873068028089076541103242336330293422924905943706311331705372804555698586471741443644973898288728343296881839116221515463205186767219401047568016372563139812186061947762663678158687549835997090048346751395475781713775563370564817618931416642240317070725801966447227297033348399451031213645177708086034707859852916901948878774598796218951856254763404085250849430563766439564291090213972529068694375698656726109020323316444091195597422116426818677353407841229075531417494965623289588711551113142013288298965437506180096067703309326170563149783279526820828775660184331504266312777004711145275649188590460637369426803526075987966526089192997820317032473900530922758248861433136351322941329436920796356478143715172964253348946795583756524611903895214013556977955422005057952629039834955395455784297298004083187776199703483479986858716254134384043205075814163179698490503114462719840705159501699151423794899933961113566995649496028514609445653747193803191737833303296874102799006916811016696467765175419626157206119987131754173035693170790956297334256251537100804906953315613653106240992129003257870203341474031864228421912636913211296593235954385913008148225844795136718126768541419921618726856339102508907317621165820267688717926837072783760303577020994514329774715192829392564388663482854557829661789743674336135893211629572871002099265166676536716325882637512145564170402493403693419591887712554633056394112421300659764147506626893894880760204913322311739107485093704693347283578726866783851628031045513530332912353163562154359413565362685497713915505752672427275123895690073301860274889659800820329053927522791046099255048319556457158072806083813584075571032410228673566281731310911417637023834287984292183351186462463122455991243057065037067330467281104262856180515793318351141593555191374026493912944766676234709730548975288571836178227824073577664697617164358948760879798840643756758712468076518144517458209122517721353396162028976418670250419555490934072266707437967930476193326548484962299450255221076166549146052993080955523411889930078784961558656628846906902114782107915565850413040531240835510453467628178791261052235498816873368383963635708296147263795390249474887540883008530125489374655035022224587569908064157100556644183352935005352972740340765995492476263419364884730905174291818806370901927801779852929684787956968775745676048932254443214379427022061598432251387315840033528770123124692712337183594569360906176136041125077827803566397404457431432582603488182919065097327662143061797579687859470187213456200046421324544419174029774609179192416267115020528669298530831675857540874275332761000918052009539070325840269984592097003934274276037336159280670405344711031311202009298530866881603971570319608136078510952652016691643580072838645241327828813952311805851395195638951169438004277629133126647475719184047929619018350797440135176918841149782800727813239571015032248088950499901032543178177828743177355825954631733272655371972654086388849374157565269840392545753004997277342666150537799208021165859821959739569877620158409356503959070130585997230834538235231622427960274100740842773630619902149792542566295655744008160910543231688125554654454277849595040190860415429350738379768868767912394871167016710347710041274352249780684084826338562842104779305937677775575062104213931177324255293490313187835858312043728009291147010307598654904028056412837242000040907192956565863122333460167007760474460710662860360682363699212470119965728276438406855848843557876831189819133648053639271258535517379093831816168726274948482882607031051435740944288350247872969057958457624822469252880258672239903179886577543082148681436187979863257565603883539863626980257567113149798389873850474952204831541898231672035246707097366739218327403754012308720194755857446806647196948778987547580995685004861826536673652326293267185486759059181869124471779550363872445626329204607990970903867565017661864326568966807980397357683088241775295890741701987996421925776638289178526588942029806390749837387729628506456045636130227975309622053646139975426391204446214770590497612694026950037707477534265242372254588746177960924091118198708308719172352403364326870249745479105208020988654050150038812221710617269810794534232720418932402512641018592298424660530975019147086836815303343891082637397634936514580171782488722716928104300290898345173209884508066406134542050411383173086914209019470662489269173445189156548811599777629499168414850765942902624608177231936959318693620996471632390064271821929987154849591533866053632410980239538526421986509360654694271309607057816473116926422754326589292225518114758471007039850258439686198745326423634666539968940212782262513839556050188696278097724266434388475717718680630077065309611617997843985799437892034486451074807195400153364885762231456749393581030405520531969846858073790502529504053517826782294344118999100259145126131346790316938785931021397952243073756003928075987746281256496595908403725292852310020074659023856107796833382729508513903477330690483370077983749354668496188342970051362889612523541572555334328691817466280839837474856577974537034041796215476968973416652198232409918953666991776983672254142900619942099393238346269896418837660774820264302197065072537645284751565499335355581651218666840387568246715498519058976019507106648786893478977949361390143540007036721744303023462330609874993222756638449590383120562976815638175541531485188971037199810171506231611728549029733422014346443202781226485716015660910643702113900933477688429155020078927010765239910704340169785442645838804921777707316133245562010980487036545042152640828140915536757076646605859925810427389284575345918896744260480390333885162887636747354170928148080522725838597459406886359848350935088693680543708005691222839434002872360495044239530377994862915231171055373506724835163435455549009572017540078541927040110619436085231542596540957570446137709595435979214726644008661279737629016589669450573284072838275563274271641707486443154031771132397670050358062793433864887519668671058827367335213618569482211020470012560291865851721281170291732503858296624783266017849201936489633623516502494680803149331288986154321752862566601542271085283640939358477616016268947193761548192254916134752408710882927570588066551617114963144065570078233913741736490863975776826631667800354145859526933659096161033061110002026951032693091949149414351767376856609747171130840495782407241242876568126859410467560129844861999359780143682008282076699202604457154238497372790695476500425850308912282112144035146481239904225349537767825320869188229901300350105421070749241014239773962518286182965463418021422321355169486575996615206096302394086815321458654730369088095233491001176873093108800500070389960032346615699431714758909570195172219145722804916305545593788922618440848050778070217138410650886017850327624087603809619549221002458401081859121146605550427145483349071513248000566386028632943454006428316614004627047309002307551871528243161585934332430477925273003233527326274964363833648012843672751129394944198215320378122125603254673870066922719098129401722843244286925323098394206116084617564219804545620239853782445173793878142397230069056447706917287762989806685682077107139287166638234407875390520871689883326601189491881105178999845200788605337568178132157561789576319214528668823543063784458327726614921827342340164067520541905535231110975820037115038741356284904025141223174300623520826739837588548630594246823984100078340653008561503427930235334097166419293059350160925392097027794102473874673519943380073411523690755086529486005214231724524729856717442715719997024797505055869316252955605609952777389264551453131639928617927618276224082659385398633019894484698822530967536181784010597731279805501029893526323082186600844015502031748460595515085242812425718833608856450686609747704046744917425453089793815013596663822006238427068871028441398386865178392013955565873947432583476802605795247347866091865886798260615621110566797232571442492542955394807385905215100711059430088656999373883659527052078321357385843162912039279643757206449713881840874520124187315268246270438688135151076174132626078928120788704966383494920115289744263129331583210279406425351847964024108028266905806172790766240223213450124387296180570268219481828679747057650358614600853331920503762938862346127854184528490829995024619937101045412373791025055895334825537906121512721970664567771524187649042490857793394678203077495479371050485763906553888131500479031789470048590347275250656904866047708309561945778309136549809626670045447925376439840322349577266945919907670509572716948968255486130935001745557591835832153725097268564009816035129794965098507617296481514715062475307024656022706648935777040368107576996003243641131385050035549365258215970482857130171137051190813448523063643621788635913258921820636310182841569116815154310855807689084946992371846175586145453822129722502086759906405604328060320878157621904528902518583146334195742946922553613873538860128225176714690284380694556763647339249702593442768303538458982786452815752991003641675981606314581344410499127562493694743185230127131193892628684732739679314972529860025487301454086225187486982787840334774028824049495287313393820889372799200944698247662245060654093131857722646691465945737462287473153133741640947822915900853994426601497736569925637463621764210690740166966257167200429184725253554971981372053343603859753825935165240502519485679930090124338413626606978110328055423731656514535345027524921367531742556185272022863924243279778900396895157269643749321480675647717418163997033219039113874968354339168731273952955437316953931687104716455338474209652157644112698983975884116200036753266744426346120511875361191458973956141487812875182357684879142694596325654158434196817057016486975811439516208499122989966931456251760528720349072340514563035636659776299837163195654724041195192225904578852783274314827778211813514701637927610556314059959486408186513472462579183464805114105918757801426750303946381008062242485809386519843142014567857039816168659227626036442193881940635159792702570109168962063344942104377701698762701538427149959638394919541923710022270490553165357801061605432280296230954304786606426089368051076235783976169490988258692986255590212789962769720804068157221635081643146071480971449748530676805446341381156514967438224128274307757709126367515806697385996360204905106643930416924223526058953834071172149690156092728992168930071915776812721775730648367409799171672013728416882927802475525418140637253900866715704419637070716161337079219684099580270881586960455670051679732226901370948084796316449963007904314347465478688347937403118421160359338536775559970469259521067297270804124948228268634142699794471100587081760587650711697646614483928527501771109191489809544416336574389768640777410672894981868123703724389539627036754260935626073764173071737218320833318056606425973772061230080186475925943583082024849869237620618393648968665487810873936498288758290247811099010243698093039404497776509693062770455303435493675917379940537866193306878693669524111947335142231060511540270045097909262706182847371970845148047222194935363114968930315534729683244187196789944417344314140058758655932670241185830799363564280896471077583448680218181408409164983532386155622626749297565122351627414808441749435305485143701058513331529139325605200332244012255895600127785797537003941746568923966300359532498306723690407658456804195685010023014370683572105678602808487633060886701269205840613510550154126472003540676824382207626408458790625620125595922487425840257311350097222357412598438170549211002576219049511130493093548540370490575646296230281567381363317304503736847295857972758423246103790758003094563725373481868247428220664767019806373117581122513252434429020375813232633861186150649515146703231122230068593621869342942718490207174707237216739151631581218393715566860998415307161430849738552208515780807478788952604108207851569101683031241842834503965717484837252278862576119150541329792849974992602611806918238912855043468823448651520959950313592947893074545433989595144664858419375789680346306872227120173811787720387103556827817786560947667310954572909466053406756959957976054410964893980874392883806204850794065891149047216103794721455424167338705371308534169602531222414177116171521452480190628092886971428688849608221119242279137802761565035588827920208460998602229504746787419529437664347161059536903071145902964525444996567854539244852742462364681923995516497264948486109587702974433728673650993192357378015700109016995009768094126619768740363945756247226199422859692157605497900174816623525847827718516294009486264266143221042727836676620201861813920051365144335353949705530729091104097375100724164967792448249274199141931412720888699559294879194510841566020538380566568741078732241378408121097183462445142875866611870939091201806993274017769678839664222132968049434746152071262529793140005494836099800444544206126800532492221301317873165250537233202603103234044038506827419757596391410859722516358508288276594701266097235822268342356941034564059393932782572247836017032428491437054913942101447356697432230017305060022923187584104135089925356453211921677230904574534439193334220934797702060104017369464596233815107359960601079998792857090611768102420944789647059009896615520821882973183444942660077915348486925173709322149728096911948574675779920046144428262625305964031974866748313800869393404321434751095212260166830144309095166778645015235381091247994948734450380470633325964111829652244099247440601551128056557300613866852880622218689868829116401908036724092375570244625137964108181181935736022107588597461481156330193920746336997081028487668018849449911606196132960211467077244081237388012163851675077482580865530088218309992248968667664714982313175821570098909348460112136765432038562422326601370400610702998923097798056642448579544603218193000614670989185578816601167358155648074343341941805837153779241460488920436043716943648052420703462088383826720740336233304165556513536707185960727824431847589316412812821799923086999828030119656173655042723672826911138895724977259217445147865198644249687826216079622676028144252867446088310175161801823306009620721633166510565199796721463113710860581575933550449923330739070712942736654747723413142279663758765705875201937535742722459118122384145600793665953959777933368352178140830790299086027385932987154801499618590468422908620271156933126587378396191461086712760932082581547535496392269640895599017366559050786243950885499453697536540480814760107864965464930456776128219916188729739724145234992977050590293979776007070017444957842140064605674076757032207838263843562273941889834142293784804920667826705650799939009057793784479623243764751699591832030873911917614703111707691665032187430995544503465119620114677792558011591933405110320057606942332207166246949214953529019450194165320905619444114836932149262997226566659466936616152489022410376127805996279052122684720214149248299272438426436842466992910680686988933044243445469674069408381575935860192040183210644490219344571499747275359305849626660042300553166547875518154615224054781869894685868846648056821397025500085826155672191957716665959431997232068006838935733507515290100379778657801659425487204835843703680442808286719231074450448314811008176980816655643325799651417680519329868598333532478848323983121096654772805541699579935026310565360649388666422845614794245725570501453771459406198195891071268026679960624677008594847630393310567974634327473406335420353695836508537957930584437629357971502378412349015572713889440587955624383201641175438851498066082751067257763822887872428475329129041502109309605171917903984206673431692161886912939004156917877199893442919122400760204826238997544230824335859069601090069834944688710095323316905596031842460433347762107212319705798021647270171459403007799277287930602544709423016243322310300772433923211537953413508207804970804119368290567441806509763307344127756477005843397497049056974694756543749440719933492976480918796828348478427460824000471663196229181065488820033503667994737006719501784997792333370081577546928300492681073720979119986546635550845397857978792278731314047188899110411097118045394292338063706776531925673471239584100729621303122669388283007536066135874265871699096602547302657715297235244250598883830188438209836259211567824264946692529574078390575035076286573545017900929915040189462760632289148924568997278533295321835753115993817731073138938833166451592080250391661220592205367212528744611669248513327905582291788897750579029299306599825482248865219553324083998570512806907472564644008349532043973287908880426905641218778456389815513379121582621552994620054431716317220124791749698623383019612350592714392755878724860427437094021147728411590671140180618374273380929109732510021685236708948980506860787825372969406765543277040616132020007471002251854626059625294204162866196684346670366900578486435897760360964278772684147936527631082060048803983217533654300310841974067630991316041679799714650110067482554255086325699661634319139043290099163632864650978269016704045247402378403357889894948075830638243565475495846369008328506874893416124411459280755652797985643459845486053818874424206633724153719784734425621775094500420113614627786325996326876485557429138918495295002612057242717436434258586394683333857867378221850945572635813159750631175140808320056961498399195883660290709823115159873309575373392130421738394326936951215428599367703032443812253711843098960705509401718543799088707147001115121206839068745255714692426287474032446980890605362284945867210081330162986030245556344143037680585745185698268173553878477376356645739164317973510648746919729977954242380340403374597067595208411463808954323454448220404141395712598282722663526152634128594347016425321922889669482643210456746076368643589882111230720249636155044287093386699938321909964401742112086546591777425525511565444887185637048310559766582437561280941619829017530089058891698880431059667796280715599537358930707929959167393358222031844141582048536906304115430353778866315563662392433802832102065366086088360576024939064289977512915855187751330988779837957257898159522778791827681134266449899341046551557715993674169791129419740165137832284145599934522718793772858767453246726224603919353158947419917999580147867772625586353176952231276360713606893822420605644961808203827278727081121823621456733854884322603538276438540033997640291904998739905308948124845853565846641726446574965396920491665836853100393354538104114167662514488357399963544005123093679065422797219837013284851106633314579018715184750041400013429465113367797544877525428304491038951271117368865149631959963016918629916672069941162538734534301669547152075967239687129211613229453041149856767133799309960337288456607314526796253440777521577994457374567808309750501616573562069588700374937053087064087010433394747010875832352839308084510366553196502325499608008289568232408647681049283391816427503315505255726262438057419426373710818246978019155765773054469512885954506961684089902164153125080969692219964704051037807744199666203739097620454563856017934243743512974681468757293038828067189472300369196994720896112327403660727348997852694274925706884703953338017689535397114897736998911214547354950202979181528867022910602941322000384890433740088198548487490218472351165056619233279732388367125693852995669661612351221097973413692324388461009456295562908039414657275068689315079930748883357205205205400086462330676944359876707355849367402806164530478211808760429601509036623286578077015234495149422105719160347482495599775721088127106154196461266092233588977101755113757521135622775611569486110136483579716006847087797976365383721563378105801473544082931746745093930879618543792801801350376895286972161660911383410963526981445580729482311186402198013576402461553752321020289260979376022629356884798611776532408955232065064339603236710387048425041644616577425225034988548668350333681301018335199929085652970019322483990487938965160844002408875057614040262784636529822792645099454586568016789804597957210510963108295467727127938826700641390517797231408405045044161450274076259739138224165993820218264012554461734475746044164088376587868423404296722398645403261510326317563721567274774076857434245286880558324321615843150793928572452071225932085364808734013284667235111588489921068450138958957749531027326591473896686251982275499453466540989407735900385097130187084943988315158753143414475160251655704685846274946196413013192272978560658628525111349093286819589877811767926227452991674019793347224962095786029280689572799983852693311874227076405871779627768375292395265533514144636186973789081763167960324668078903962744416673801107617753758515894439502961331836530163622566151087651967596585117226319714325311251834645027154940806039785113212372863930490766802831902172470904890294812670936106735999366569555670167577188718658020278676531490240043098092263730542346503074981088675658563075161194257273260268092214478157534497284850053963647812711656024251967113242251484684813182066077348437152805065856941879724436663188114750467256632213044515486144131114448684018583686907334808207353999067149176535912485749577493062741162056230578921736583182685897121325650306910508107085305929201470814894908111512775935542074222573048785010794661478668021910935292898527479675474418546728043859585193071612926381486982814357265477699533053540754418223559824254696624769600932575191012799555843107386338607065944600822522586082119625608201825544633901717928888216782011892616896886125598745112918231793753408670439437889917292060839360872262392115188261758670571050441448786915903734504442368801733597718454355789825180268572952397679070691529999102947319785163552929818932682743160773061986134292620829619554338924213367035094886265640387929107353022126877858285254529773360770393833154648930867967421637447992180416511316755166792395373570974953329922713463763048138951078505949858203688438902225340484067173126763759006565496082301670094515285351007503148482436177408419546069225750771136488798606288523919683316536875529748808173865067200214516002908245826767726322116953433955496197799142973730434775882253051125353181501465065230015063165718771502190708967530351840927497564462296503177438838198347100667240180054877404041146827981347879593785479772000917749385558049992220747700165402481643120979235762614242298122432984739499282092843714893166375601809308466820707702115693918891813804745216137550653531505929339297099800206298875996111733018898681234214538208857847679075156804023094199383537723043456155571745473268467138217526307832310654354297266429472251135885823194311379426966211845803866550585393950816307055206300703192860528702344649663752128892269339534805381594487791366560162191595082059589641205968452765693839484707545646498489101529686526590582732233273824192882740219766809320548488936145465786226499128240043657677251474360934214510901905909733068814133501833484239777931181924071231043118062034854906483784155018202957410989098344326443929096499468103569647374331437350743940557814870693215143655277557641339007253330490396932304306458012903028273360236249364288998031768423383953405064490846800593165504040228409894434152047950446839044196007504211161894802391041801735286329818231997228371817230995771176643000211124413929047577274007786369137005479342224467239118438128358909532922291494148296229971072946906511953478706012677330895403086419871737974844864211322081152921386666872090039570353922531522016316732529276263846991659374179090569326774808607587721543070140878959176513259600320434804835514322380520728649476679090533439669185187333770963613813943725285111462699071603012370163953356502541743746452349070932254368443280333333680114276032837971941429825876187948817714894066097219163637721022766299569063331898083350601550092690002841174010587335059697069488456282476092544778831108687089350199533072832662841428211482417952822077405707689167124613000417348918466261756811886229948015462137008068138869968057228487227978029993211618018401061532776737508278385440777226484879755516923507527814711280517028606862244244746763125638842332036561799734200201677597174203038920288300414162319937325529230328881056232976183190890908155172607593434768767758919213179681214935726642597848997913351698384091052695894269463102418131555646927178579146928833670650961845383558062405118699381917921059886425695328979321831143670211137460166841977606212663302337904533145944912931699150528133432907592512406347128533618638942768651295260185994375663111904621225904619406386529591804245737924838433495978013593602507633460473043714076662791703974989442786674750220543887672049547208081430236941288257079107079071458044880854874957325504323227633989738859100459993083891718070454980114253978246636475059262929933368163799875501290066151193594365262959562207198628454556558656554031306331794047396562175167801725906040717011407772886860205869159533819983000973452639221101089060800122574722939271319865779124413641498401787119926168532265056837124974050395853694047148130351427382378850031678522070388396985668026658484798441756275182861943216237262782296590872216365490288954261708871876517700478069944380935741693780918781562377419982803934175198193009478093409752972387463517312091853128754603090837902751151630012466328319497461814783160401647734861594222890604383790370331379535931990078623755766002930128496872138480280514814324474074574917879090828897431810938627616069665893545831523794214150818509431047026945626017932722796194613776842971289056037846820348631568494354272438914428815469661173625451720075999401163096968068492782581083177853103019932241006249778743337445752831223174208913074065728379888449202765839076623133734170801470737330906977848665848467516185765278611306490002531292582919407355522090117429841394233208712266928256416389474557803134950650472724383077877109741265352749252138579228827685642569463337226135542065089991044453281725642444005926701491896875048880833783558867180833178622230151658774240254402124053558455574234152110351229132698615708382099059183396858488034935409327840814222576477541264555238265937806505408071663929042246063507085219945280921055094455663547022730498887304055822055418897745621124408057983371842056895261815548808379363554719306439276581888905976796660593947766044619649889503383754358612991142328714134664754517759808508166808808896542705152312615197760111055170806816222396971812084206325761275190890642163163577310552190928715094271567258698690081682405625556087385822851659829069842397926428277921024876632739210113325620955892873115789450836661531445038364558655418925659546338278250616005953783029481611849248790093386021804802248760834736423944901131813309058844629706385707523636466414260820997372109380897041449960973257778636092916587480786206816480010381888764607857054672928096649417285801353015354542836624226596051640577803291744390241177660160584584044496971535797677730376707572345339057351327666319624011640026309876400216876000547566892217636189209017894965826807312386197077472539209421417733490704620236874773821427707473032764811264144473039741987875272318062693989505124712165601027958281200280097248259110453690104114532316097391689024208970924484203523836997895478501284515249502728402096539316905673945337268763668926176075037026122330289824894067153517427577020877892359768844362669623699318098173138475398543259428711694732574044461054436978202885800443360313686740419807648340301908052216954881453786913268923458292578386090195183742129183048354422376372927124273385273335040998321743508967949807127451721279619962000539214964808682316056860273181788799113914107882330364287556139016393682317273718751090376385625920202035898986618744516949184141873940133827933774179791890179127885217145583049550161860399711679764434389186223357988713418075926658110009534805587660448369422817491758292613682387417506473345777640033110241887495595796652806217351319290790640697890839227436414393059564207344150879902205296199744383715283007118172277101243925781921691603555627963568347151150739242397758317546780662885738279589227225308768905674430558548034193141625472824272996342415433392754551898977876194445782426752064534211435770346973208453648187066883610003726159597917216799083123292538929706781982899224865374810590465761552618193365950422385223674680560509696843147411614126709866574280187028394605258482094728500229826824249752555571929705378244011420138995060402193173481937726561532780746310277798695882325905411265209963527184771717067105669225176187467057987318307508466902090352198499131819926684744626741009328496511174023086156737807465067226805451770317775280629973082913842359963985058683695811586915474302154598799259131382436099768260226324629985704626093112122596899562770878433080673569329670877740127251068832581564133642216262764521620210043513191216877614875772552561980750056265879948977434922466182063706037882622946256412989512935722702210114897381975016933859478986399802100164367447509043388633345291974313718156747095008878226173804588211810525401461967094744935628919786583518275457260947358963395093532477992034517743011845088964888266483823408795724506723921935778034308588749091259137805401829288363410733868894887183263093372594874042004840984543150495663804207860997098972553805104087015375413044596646282059255858832026475062486738591641267412681049367959268304141773758768153720547047935206609873952992827603922936914352439197659239739764420278370882835410099503293128614145743290317545609808146131668772983792036620451868751510475079816606910113021292893953182801064993253106635694730168644274724222837759242591810718315223413224518980203441493545692364818433248040636974266155171832291512742338084068089066038889018358723760385940210583263727406803797899882442588770212986876061120235979873292287146444589938733865788072753388422279352367288020369812222614924516866957546640213192592446860322155997064657195451654978645753865322878123607449609301481474104709027303037194077391769054556598154197746731376906278068988654924010550617097311773506071965930146689526352470941920683066350350947553259066576571359287446326355650103024673742204642647663466963502078955698359640610814614647610029622850071743589138233889688939989048136270421517162340054701216179509048006337808656653066451537366033273243146291391944300491705078364815975220031852819501996526495836172187169431491878473481265949293959098710844378530557857929622220313306447731565555532208729723422459851902883621304157832935974348891517611061419341517950921982707693844286182343290848391193811889165800360215455875974387685247741520659653870851859468719924775747379664263440462501934672538752534984656690364692241505085757669207973943351717000555045303941402622357985139581656182296722139877659073510435193503139342845133939638349583418423002745126608239755435143634466695200969205606582332364092762721638856926228104564466954125731469305347343951692135065417757710045432471634160872715716471809077394888960285030654210802695131173155058688294639085657498191341022073750123337206865396433350984259719537297832181942361419923472149725836725369183262640167845574874213331887739306362736197973864969502276524893717648560129546579473875206409020760320495304746755958537799610613046925470849877150929878510357617266793042089309330556781655555850025923830951520524512363311929930962169760313809523527682110214707480969749573351138365302007012586441116661737692099170176915849359995224969636739493791148040704476056693413664301360428519690298201864936586297395296944326878687126072565460936107712629835034663203309473079954016672702666255272613642086572726272865531287862092619600009270450885057856103595735039612123655281504150858487016746701184097020520307537647002206372729262195356650812233829145379182360271252905992880622649373105615752074413192656187041602005381918082000836951637039048728221011676439195560144726450171581980911735388301683114950140504713938649684452276360987410815715002113053448123453671221042879941174462576208620076786802598862406254175313510623669304120583671228605044089994597070197468121715682081836434526852451202827815388192629427159863916304574342726618558216937469429859061335423970678893974356629985104792334477071845710247530746952149978749463026460669052846730442735693424738515213776572631971149196452991484069949747327482070376663317199082428384309380639905740772583147542070952426035957040161826191463783163203714787948897017195653669169082871145851609475489858661185966047821820248781579234339771001360926342834848673505415228484685490317744641505232419840953758727368311254759298315436175418217589604918132614317154544269899941974618666003400207805107085429645496781081452282345258185379796351834623166426380206700139631469937162637178618654501946491432863187637367187620027935254925563775078533846230208049437603501402824456676458767431958948139178589056516298185935478475231463236768299321288525937294789311023971885352981290771371390034886253338050903851540337044715530729172532696711510888389453638556075678245297046514311973785600281663751958077445981030938325650216941018446950066095059115791638637465377503854562594126750122687180370488165257467212330112727557678305617203032572095379487316341630057883218862330291017600237020546493008350022547690541811696045717706385053426852300626636428351072428890162250302930285515496239475638576719192724886493321394873755754630250478953258390040427527931868447942180905857646698893042147467392547479948168998743607848180926944032252985895096744290736862917150285024796099136901274853925594311334918883428650177996513942919614305554805320026362792763725489144584898718023886470860738164751550082407161888538789058390767654001787286436603552798652946377620458872389588442853294244092110055633654544053787690501051389627644252988687415944598341079085201585181065896436437832912751569298035710578621284258061492810153672416358471828581304818062301032069406524828369260658036796170837066670938095900986202887265876516367167686213166494242982136102819741539177643107196421537158141181399024480100530409504863558087196253780567715440798795752354076656122003045983139719839656291961222469954737710557730959266614305182253802519285964962559566081743487000925468279409155773842187668504554530323399915072753787098672157954532523858504453624678594905218681450909968922112545230964755737776912071631574525868827225699773625431162870912036860435931648828255767950347053342546830726443870837574544839581553985617250636980185445050952939260557043193096741854148856487110293461945796753068742045210619760537969911230243852554885123653300681505729675789109330999930544091707074995521042693243816116177313746661424422992897487303605985210813732426669150574355123356741740814008466125905732597386269308158334121785792333854052799212943694211243853892371797419497667366709749439509735672804562920817257170988601234396635097088190245486999259151489367000971328683102887656000867400905035499059381794472125272271181613691273753808073266968149986227140656205790321314428565340152727727956520605043512717218953916489943127183619042004645651827199395723403570253357082347014169398912030100525741437802733911114007313672306422939972229763464207096942163550714830452124305040843834840684831805157321275961165089524016371323009092535301582365389010403748553735862130973041738296986781365266643235240845785390263495063933291893797177824271138912983117794723077028821837091144532331015075888636883529817718619146015861938177630662952210917509029981865608650470673829648533564016505163410902830970314969418424159375480477934519954485694015427755939454690134882128299842287476514443959094244751892235542407227762254151781779247996454067464479469397444248595894507702462984517816856254503412648451906149778785832745080736232117887610678215087088716535970139998443483424450126296200017908063503960509783309873285372686050919004505358647455559441976083367096470529924004150584080124638571371026054348120710699631631066325048442727466515365830121262046877508467737645751643009423867775202685664449439905617510551557028294089680093398663423060099650919948957391403221565918292621261272116200246002811085499482130130712625186176041022635063114252534558003605095048538752671272676969721189752753025088101437639350661031232743675031479863976993793044099270343995854650110657485718455560612293035302099133474096262962065875366341833529396625422540026996847964467372120898790820327122358655240817258212426462546415339307679032994423914875773756758711605258416927706185766507063695817802045852368795414378999096172317188450990723580492509195664985232022714650020511395814478805847500054296483623847177734762946845787377584741723758744297912843381408999511185172366939581029122141037534911959103020998625861242567355249904315791425019067131462972325751684138006947958075899611555116813653186486592212659287233967301286063662486581198926448153045436424238443719446078642421182475931284221300726573174683274417830780852393699165743878404386616361867367926071988679057392667450865112056108081159681255719560901631249366506537261258555600206705746360155218002659977231019439368542112298968138372549798109810359443626422780390494663573776994939945872470522341152475977908506572016174455367840543494519207735314762496953255086971367978346950122551035470520300220000853968484950150606134595957405542921664366253888239809866864031477530021507752688457825367141499973394620294101101638195735603939393131613783010055607193974567698202108599204786825495080883907437676229042046294768214678293902585500340453327492762491431861409214043850970622568617449456852959159512857454368760874228169073756171783430704838535894416239678667826106036528045387052638154319333437569456834058309432046122453467439565665872390139760599378211749686942884817463399542589160404383294026286248848111935091833975891172073305654121370257684414165480273423184048827457733742771604328455215640284349252852285033511560226094083663407827648590690841275529353142364588055155064743179614251833466456784518650175029529680220551302906621471913825393295882125359478697938432942943926665807276002780701550798882515589228775950974798363585673543905486358185433473960979439645422411056522501658547958681637867728162538000883558467732099467525423964285530000128607505509111723474367788070669825459803453597480762411757767555133284358392884686772895287251891050101690721887413032908782606485902558885270635137913464436517729321124876427258955316722587430124891105925918917254597161214143140562817303073868715036743072327532811691716669096168590064446355915471258686730234895259138204859646581070455188012857952323928246928560908028608971203084149567183562809773201239650760268205544402944778619799562804875912592764460913260210678576681073143119568229231730950441103931059302820073332087054623640091966220422461952108058839200094544659513721293653996704847224375003226132161996259706557523442773497346461913208802774094655638589312924720170880396598653187761165745190710817456842817714349464159826636446641701258884493770036041210819777265003390335730145335084119614230067581597244614932612717892867202765876939035064114201285648554078046013821767470905865326281101439717119067085945943681220230804399476461655167878614674396800519495593400128150992887175276658476334960034992482943486943899496331850807264689551401997149432891181992404013844452566611146960029854657332623446249865861494650561664391324193870720376965835470123476264584224618521758289267163718822560355292947275497580232882026160262329215160603437155605519193197482721388122547764160313441202116600200470787264222259614608400648839022552107078293503839828145867052498628771324646122538936523706634203878256143743185351051698982992829063407912295624037286380574302665756857010771024725692795147436992701314274516604420968822713085572581948140108882069350081180928505493343909590042461452858445640255582246057012494839421048395000421963948330049633043187907630284489329901554482254110715221112811359165188087031250748674904703593975156548664973373337465418973978905809733071946962199171603990357309529644258668119291427770799710612652053271379235566404310156821284249236033683756278964748135462393668196617348784659550594891541935828329057737070156521564969239298954948575066873599518557931329968823942021257340368993589095606900282631622104933904357886961732756334993829411821830193777760511498310421057115261523169199881149418452701097866229655581888136894836817172867843001613174811656312832273419138234046363286218447814946107640678293644022046885237492402354264734679566352927207277355246792913593830536662037051609866414552967586036371886107408557611047195391580260560921379711633721993915314862877546257615794161165532564573340152817991168797282828499018544737709278023956540160728266428820773521501365398182935164567111284952293261306266090973156849123117664788692486484524594903439310997064656249105838869024729331092615384517554497996210868521396698206248142649740055749761405588495428064868101563360276753929923384195558442835635854894298483775235809612665698661571144102860420574211116646701334397961549547735503579794827422498746990698141641015454157189883996354237956098632433485723116294016427809899754510110789297302942335708743918625952296065396055956992362239163430567568713900734403955249548346361886463642879285484432288915852758973424526589317454974812296821024479141113989175875283541138413377758198185819804778342796488201086770906269011812304929901760622857427370123372154695824821286226238043559956851851300348309746396140727074386908294091278359028803782852749868058741550117650570975000605884304213817697903314703521647979186947038800163720151419791263081483626585166040000278950823701728499476923443609013999815336557806262918992625697319707376517860371063594850114793169512990745384616898408131241487355181515743958340151943706751959883674642864781255085452792701887768388953116496394790448522367653918928995351530094080730785710835225396425726442526017381568082710955810360897915392677200351170937571149630980039701263902087130565175790975342180828462642024401143896886420899059305297914310504704931819347641815638120256876606623317019266875952272401516436403313568023316946250081485452733631168639643397881353472378159297484458118113960815998139115255355519677264172674728135246511460102783048325056806381494048535926961716623151252870693051011501268871585958099834281513180324051597408136802419534189946948430436932418828225593628541623070339841630224890992583643744123810595627137507549717424402912703729320152423725041108088451683099974064727990792537843243782985345184875980054376847091516352971122737198734560218830586141104311023542549546967601860348343596923634811228792049723531117121027087521964938237252749847762463532249381065810533299925398673097454534473064200798675052712925821922953285825821301702643126042359979574023969669641593672021195351269587202045523844725084749930950317109877137073615124223157865992086175221754935969014102546914012240027803637150910304786142632466374971804112588268643112589930840030107049139133898127745387078786755340627789875328898532052046226820713129964533411445785943700840433730464015149092073248942715930102408832576068959935908336709885403472608187959303814970365123328366403991777051217351179117533974599993902660266394073670533495921445843263002335460250200185204068951757013038396575222475250685833949399477124673337792111192053013033794100740684886218127031512075812571336230743837618690500947767817215779941763446386762012086546509812383371198094827149831481511532662404330908569076013197942156152570382090836828838625103671995527533039302179437397194996719670267919207272914849409622150404462737229591284612137261756969751208801895798192948741121914349048927870980920803108416157490893452943733039688608942818682831905333608581008855988525628629636825505266730444006856318452824929614062468554988349538198068888874019704017131052950232593205653660501615702329617657153885115795188734704871893954299558486814243474709201814879730290889690342035122304385014085937245693582085767137006673716632563084261479375070378782801056162785925759448571882095304786527554644847135515644359894006865484920618448055954705283308144875278366812399755930985582011345545520309611535891362644438499694428911592352212388702224652472428540098530631390630031036809737387628161848055328365308893505222355891663416445940377426720654741480514503642639175810832021344318933246438591692162970948134941793609049918302982233552124279916717907942222765500778227247693653188959482814714235584755476876142516970128724739602450711518469532281319096181649147251299149983718225333751803408257895069111618929138126564556477661524026246401742597747633072632046157268158366164590758251680785817927572146911688502205018021251795822480069545072766415186972992484405791360165056448122818844251103090266648506657045654447576423792251778256164419454936319878946296998014249314111911104358629036753273860445121316147636730942549283261786729013798676654061822301615397868695957862032323723416412540098672957961718673047682592140643421552453175374579915494380651274502123937196724558751763281819400542290270671099663684245342232824191318998456468404422038134732857570313377995645402616426963062270258516534756328021963550649606568122738149361824656903949131600950386825440987037583680751186830704498376975205076845822786389363951542760904955209792322102275401480921374416119593755686689746596514001955080359316580969862089507582827550771358614503688234590771583968780639629119558110072954598939086260014375387900890486207989793404947076056231245069492777485761931993805408641112370260905452337403355311921474020499161250367035465185440539339275734095180624988402734241045197017731796273251386034259636654340935655160863647843175397873877451668787756955228412914249809040828066454728053219274868084307705260392369800555154406864374468422541709514014255091773720657413239302719181554561577710286373322048910005286956413769368222001866765642252282692444318023651762928933167522439664174510196435700105783789445338388376885438638138555378569838890227070912112581281362750223550267808476069049526261179103270804242163676931960754873646249179590969735846961031874475784496096275848755545537852788206709965601241553725029165198062343974190021630089405319984743953641483992295292554689125072323839750765071622684547531152120820098348986328037337330428403364768365861619894961273783414657236725888553408753349620226905561525567683017525836836474648642955050447977136251493682327116745722207716330814291666266421479500752867399784093588983529420348785877491652485044726253939014192267944534947967725544809679010006902158991747068831812725614679637576088687382887855537308551214111631519896459583713079277355344375879583845819255830160851054296565963922294966806555967782382505007027847102386242668201812633015046753504670250560540303490121627478384457084005619998040847921688618711106419862683805090994735196289269073385870746490972517611134327782174111086299995899940587854207608651984200735656021709040526357636087356187758417441019466168860982402571791165371968261998233081506705151697128218315460927929585870285399979373606849306808395289285260241895286735271030001455833087637027432088645278000201423335569604961045699903692254746893994851200374560830459440219506148948281129026007927569848526748628323374807214950573893304644287704358516782908363353919917819431565532863589559837302975873101067437407357311260883928605462092340768624826842568480057223915580310529627630527066166772920007743516551480525416899915931817911753874037064108208167043865681595383639980766595949302190090440696070817666464223619343822599322174763193581277377434672838781828085028524562722513640856813595126484869464465133699976984246767357632481369653179667143018599644831848211272712885943903055874776396245427220837659037145801324312599187647746101866229716708162697165032585135851579179888546320426305819031185361718671515857657266641139317962253852509804902446102936480077243082676530793344711465704746242072371817299156092229887546003614631014364607047361384733348289663563754166625276565656343722477603037911233929533840501567536704541710262622943148426917161847274706510091419438507525378519582163419856282919465880593465095098699435771643008003294946076030138218682949853411107220849550355751179982322443904910519139108065256048168610844098260284903976311969849333174933802410716723876207793114220675725231018160519808805420914334967728802505823115356775667703364404563856210865262060854586634240553598230993789371085045858486701597526985619297878697783006576463202031421091715266269250793524573686263851526546061280134425593657744384340046593429224510980719152843652997980493718708290120670115190732904021997340813960877044326362877184984184463517405813848091907748144952475720618778398832176705980959962094362136096433803558172977513224060265506392268234799848400284176195451378891561710624199349530751331422411620550289488749039934198826224205620448490642811078671820905552819141181761666454149163055763994977834218947954707648832056139901282317219159367932858066807487591578159858630356916629294045494655845097308971617136712793500926572696733992462271349278345071279466370900135053478416074770643863546786456160950952470218089617546766074131524163347801686415098663308573010092742269256224185280264132732933336435697988988558630816440323459652351381046006426137493456773136744766406338944831824470330309655076988303178120970508317721420085070243983314518051937794542805114770119507158288535155565478372221975934068476119616459090778448633631401024691392828744469241469563630504036366597031867675726627069263421228102287686852177190594268417288127538209736739512574365823528545658821562700569388307119455308917166551672349748916565548187458587132569511000322787154992722694598289391912309969323031380378706186785013919953993305666331567340630014937010952844225577524870093347561258855712328183733582401214930315828803519439796053681581233823248929640400246384926764050867967735958361638010851998800858097501054332808925436302622181426409658469360951351675399780145910781597797047198775911501868439033498915221592699034033056183570239471171314278170101546051336246072457383101553270679353598768281928676968178948992849920297609326066375677930001285476133204001049131171973503665880605123976024303723884631228054658007611537502996651565105049818493317302308451539550686791834576746870957661660720452433468072270201580171117013525673002280583500006024649860723392224722799934188949133107744698255898870368475833189081136220695628891997293877277651407150962082352716963183023273638529891084273007282573282477714534486672488895833971755453874134302142965624576711135923380143807522169863486647266672919592648637110975399882756935356082406910800453357609463677092674157589576746819748432953989319776591518316572641748712055716641454653235125470435995919290769195297546586763832799954015907904960158876246955396548390898315868182989842512254829373467902989866179429952717709840033508197297376058313156736562088184768507987836230612986371568433065434371816045904502646469191792083664190967338447414732151497222163862760406806855968723832648489031656475083687140718375593344046054073947307402559906140241342359286806805143561890905421008571706290325121216850990486378200669923045124937675051005825790486018454208097006539096567027376718418874604964259230033439189896301405156062925192937700852787492086037699243126393321056269572070380958740655152182888843523211904961876389663595477451541015642206274205590550845670258416471169728617286669890389438112664580008289706689030309569662033444767789986476346167748780245459047424039351548035822580555918164669407212826553308403262555709525947172797924953481287807875326672781436758197425293301449690978808297317788010076698537464755877512214172379536270981689688990137084967614590547682598842203315426405452553895323019681097985573960548225928692790921610156097823464970056454538980793212910349784428482474747343359715357991915060356033817080513668773636827613828439801283145603863505186225626846841203492451259579379187016272191534277072650101940218357117683178525395253951405844753816428050759978339538490954054123137437840856250395994012073936114225255644132142442267190709528541104191902665158069598816434328040090041026231825550022420854420353496560456460085812940558134692710355489068065823776751972210576201294979266298637906904814560447783516942613569239906266838826756991904019948904969437808804676711165189383787177359195283928840954379513949161018323080709711683491468638637483610612540148342482502221430170462886159291501535288157496387080889401760755239717962171499496281907274691698636122057910221877259594376335197388205739151194817471599994866510152855756103633289836284116363151784644437739208891359905503849947691029147284913712720491829444382486561435456814626250210296318227994740120581150669737198359389867316865084703128435016741881858943966960134434848135410031964942192634577465657227844977102498624974835513048719135056880531659024148986156426010890366759409870447548342480694859531355496498949387685694799694365387036956394396714574049592415580407978933194370266717371629957749622932497907944739662634282042258283552802675537346026775772942423479783533451001330204780626601591765143881786338256637361719154446547761555174419505727557515431238333520846297044344123870531848479835065052823582142361635788756668965649639277857609717955753824243818533738064798617664579284584716947914178154834193398127036611936489219218963409445273843443415566583896818239027832738625176098897550029018307810205979789608913783045248185372697382424617985925900886910160004997245488802243310362016334167996749002341058312012953706858283952042995418157397627896925886801720496916677785736747984013109327373968683491406080135497432668902170332594407588877420507749350645452512817480798041243130371814683972112218907219803339787823203958303799419694857636303438675274290550693628584650735016050233202357819264182808767853624663943955201725682139730996572573065511251809859275482777193639274169076747812913206776531891525103061540631676003511999209888775060707234768021096821760316608477847079044108614246960038210985757512207776456993758101279962604853075899464076024918274448937167373492860868398120442170383563526347196334037284604820380825928441749675022772935161541924323752116545072432680640065062968995716003453475134656929948004018037219719436521753107167455522130971891959388302194047367607773378330535307743131744304736007374916025077124541364855689285998101393832367157507496253877422875724230386180038498258179585422611599291115106176313694746949208511739974390944273490039323595230070564484301144719651247908782554148217206420152066584209186549940180254592472331017069441981885474546222439475657454773074086675277659898068705533424616145625531677296445739860163164245782518646377554235003838413897529500859892152083279331684507225881012104965884982407218264607507681549863761868843823008297922143483048096675779289798233629348753993820734104890526302983300401045783803217403052958164879826486782489428042719719167933618542575682965092329210561322139588060939547615637774907834549984905718314930296718516964097531590728478903327202724064629322258845399199338016630964215275837693436657708444739110936793351685370327137582997351317798808917162086480596385701191009274883736060969216623592288812731235592920085108230716786553805559613489690036695548403964576695492660908901617979463738819134144088146492665024852280668449433610679137504002823302650248300948866140502004245960861924568473766850647283163864378387661740677679804430870664731789435461575383771141379524496972098937260773706098574374569150211117770291066491538460181276652395454788818587659597039357981285938009995456880122501334875265404654265445426787455028232440494142460172238215983297648994471232882865028640816091952189982126082046418418428604091290422614982531853209244211549176057636302826355679678997214300832614694305469481329989850760916478741467223735545570709145447295740185786814014958972253823963878787774611973367749108168771804458873623890658467278967675873103801641275399462714854720036584976969160563314130583856432595662731356607455329708015223453549798635871828977957851173958250713464482486384250563185603015336006674779748235544303010892633395888460218291271886582912065778627018613112447676939898803817931144594117430381048654229012338655251943810233411481723418197594445887534340298136235218095367400122807571973412776187825365682473703846353755670098949287735112995289626035433946307270960804050113742188387053361422381124380958266668230680021087995652938986762500183314531296727346532797611222652717256928335674204898770697755306264082474857787811184532533561241078033559703141593595737251416934171448152987306997333449782824109358309691229483497001934300908988704063696240766178946366992499968122753983829660847684780218626180163397491067018402847526725910114765823779102917926390314225032467789689949090861888111046929102151500989899042942484755354882801877227077672223066198647675154135849301443688718548132989174431080884385526868179535442433933117169623240340894225530118187283691002348917271057004012019508849915682534619193461163903566641812535934692227879552019009520684082876440345044804912968642369568593871942660875476441579836042811988704236731725401196613793396486230813919280677399776302327960013968496250821314535118683608256251225182205243362252699353208213148419279880182853637255279867749731001255380826041936984349002216639890219149273233061881444263216490622370627959548750841197351726633013593829867176024490713855726938079040922842582134019887119370110207480768987896990227248667156034955569465405932582451587247533805887527948769837246295355710221973604677868759018749895635196085763179658546397665122524801752249782597273413866134458100533918052939981431390976137679086696313058070060886957417788939289053710097702755852081205318533048725972857852957078240388712845518155058699372870144265616197578414552837410703561549434337288295000433562830047520179773987033005153994814077639407266153020402569428359219697112304559214603076696855952521386762001451347549620179556463635456400062140194605550579478497684244416449562859981090252247603541501326530325629706809294017944168505118327526369524475142553846292294545280019366757542790053565784720334551350698819065278705548617732448026049569887953104830144500099789889134654109098708241933073700901594375251810929027837997134966362341790433567163541557026337237296063270233817752199430886688285467081790536642020350045655407179507531390938085898655047356648315385901422954980924735374963832683212799685362933909182313103555490348986825837705946262928812095791386307110532823546240548805564645472045964227162077296288652151247860090051564759689228430886539079239595131175844223856031437122346668345184259731209175195881656853637457408492167790526765699544359873093145741767491022103934927610906619050268530508593298303336707461607093252716902115758517517937858536642456832636576923100124588797463225696620068011896752211924164587168676089034794435042734025016625773532922160821680714578764878032590691205587528905802807516385450324580228947468671007429509820335132011751923269903406307561886436466939366352266677695252970336955782962556599709586236249348585920291142721332202579172335760297514137954538473777518302545578650791831693999370115248819473364898135293787898709643766834700129915106648031373344518269396756090087538261160709260188523089740806271602750828124314104126264859168331531972287799043509500519164283172137813331010996294493001092696798345247814057079066417199688232207085249728774494327409665264148536948916386475593011078983780779083581561300228797804387389582132775651808633200331280387969481661109042064086862266612294339764095033367015852739849858526062536526019632893208402119093618225307205738708545052051006675716368081418196945729157648176255941626523278203067932045662166165915756286189524512644771505387562555776362787035249802826692138072100672506139411568335038949269278673533146215218257027493268642460503916704515956596340252364523977464420744486749766079415479037344450181529577216209798471565944785448548805839530911918989250704136312101268731645734117072079740901049942403535600810978033547017648841174643272786048276123268803119138472938035687465457510737652158577770912276188074417472556203169646331867541635300903353880553375098266414074699643185708329120079331530755452400308896721169227603984561941050095266825481187227163667672565929116930649994463414074708972684797799941186197579887800279875503690290373514377367379496880678753212403555313580298823809905478542094158961248158801530850615240496536711072220685313157046181297068721809555399176764544932252767546154934394637548382039971348496794261787266731045506686984619341797402090530839224753492950267262330395374177008731170698492675647737502695570435874018617897589601317131044604154063878919477970262294565181374349404751491896099739751868042975443192055573947521677734877341507108250437093124425639761523296951816828540336427476941469290280273502889047360301406706727529655414253357890116055503678678506228435626542188445634325346840503955468255691283931601988027741604409943039864592954159884501652146797363761861248769060028100546058400384814267727903306997563198281576799479571846592055022286416958117446126755169714885366874785586318531729010718670750261406207316672890547513254859034700538949586066500480175562794920757965455778085635457106827140922537374392579409191762838057285400482195479877768029223385947338465810086474116357903882303174020092468769934514960164883618942138662111934952080970873038310184997963595848817243663669995024258129618123415613567300357684291027004847844349360847988326970558698167160018271169060923611004428319753953558871675198958122470457070260708443608888543398598875633473405532596894082427417370602205439716122453615799469688379176077873083959163676803189375629363825567197474974571982850217966265856009903676815992648910398980540096811228195763063690982505806950239255030684718680584492019469708274461949920972610621135075641045128316346506311933296912234873784776246978057536698795324893761198481474815815821389233837913664974480481115086210451398498957192688867507058992413764220804575823877204788651738281847315188166982412557717100459564673397901686974450507400283809003941503384702568180141323403220033003522554111337302107471862028208310135478774624750522425568976275091138583315095430781711151827397360064449183802476589919585771023329547879563563944914550820286487840509361425475210738721761516797703462616832239879662335589110158653900113903915896637757016171491621153770778890232764933059644485553579989526108155345517057690735133881183497142623983314278587971585987802686397608168625755336385137634054443052081620157543172308627073253264109707948276386714411221310708871174631360538645852053419575407811189649908424781925638748455339869732662529501467343773573349322347520967676843719138302662358837504716208874396712328315851308625102214114612268543317325215973552624411697679967896251000047755467730715584571207391940526612132179678445508483646460510061529088632947735257942526928145040630110036140236709982498173238312573218766848060099663680227716182094951582124480654614890905336483965520238843904563028935148134078860084870710129747127465732656879077562588713076846065779492787568149758356591987147295676982047442357558610034018083052987158613518005279232142798752430511992825748498846431856870890430120793180858835259860243796250229062444486425025327641423201662379515300784178655781180335553661062793528787526651997412920428213674191818645534925523816443405638985613230736508929907135183652183776963504650319073903716766431361298897127067533292466479424068481172823325780569571789853338371954110430661797310816724657939725236814129334992654011825336431587891767397930249705480009066027402125448563182521731230955459499126880093321995723297569318370158086256142580013117969441923421873917753444024957357355791346424834124861436967480968088842757704889032931429349059708711963165263957835805914891611257781835727911078115423854259980051604426922107514890063249980014195267882710318557790044190192716392830193291225329455401674039035475305259530787513113511873639460905034413347234340755264292924297366020895202357757255546977272277322145664095502321530392121579018044097476275939656893763664664129179210105449606142559518719113388908630122749320467782225598596587593417333750114117166680491389637233247918596161910374439176576594479549115115548988654766046731466545738971539563235408243066711977755913394081460204268682543608055221614629190365489959841695883694740882130304318889585004153962227167859184484628986950716383769433345495611207359033888609284387862713119542818946195379874747605949101034257544254617849817487722230523339986567319838992855288477353757797795806795408465089874732108480346391814491050108598607353420679599533172563671275375272519412192540168929349846045320663245891301451500006669659900392114560355011077924047044069131952514464981436727169121827572787403388398835764884697672051579082699483894930336104914767448316858214994915814710916853125168100736805038829939053972199544155088270980394358057363538380577224780711893891107073214789212359761648716086334392712128294178294176909222516799044939376253351404417663917666743045261371611010608646973662289161561049488387123312365972637361609268923204142804904141142380125530284754710027761984529447280593255539817958444969289520639610805390841272034688519648704945157343594634113234095031479487696603089917791204033184642303563750404337226242978416649166406591092967725638769684408768777625097154019189932698469497548050093714918080956020149391526798596857852787204914247970225790082093771837550913047780099989177570606684939910213017934618914474529500091949118717239169589251570858509118792767713941494926280538271434508467922512990716066708917985541738123640491519638577868753387324779650449127485752989813010512870662589192793049834447956845048813007145407880715840065590955584401541173048997552556928708130995619929357779236413207079505833385148074961877020747672103687242023815071073102897928780989988093063328007607861375374554459825631914185160245466224847758532709195145687630368070795790808603817573300307195857120634945131778213599559762303691213221965419114810346241546184718751498207918925581418553514035523334388237660232103347150855088545278143902891113422002292515432474171290819472063483856664930945916204253652038987602274433039653602855058204797901296336550470175503254362307755490240091210658902605519037038894798812264134511322691769553192722399170023371946971701311189334643419957740876891158195879847796269442065298375048594352330086122186849201919017103138995311579712615648389667245142606488488897713430635514665677651746522289752306406036647523936717816938873909074575974167672065945137251696894724884263529505933130624763502948207958174021168839080541753765043200617192554622266431906398591215285218109025864223737472314693855326705305429463319700898674127116635958671881805182795609303529573882667111572277286435761091632464419858480936309331607874489446869291617181644840790805523078752601662869977092001130230779640465251797367478689901480803941976594028779107249741339106565588829511886697889017314973982928104513518511883423793820031523140260271656732799677281404292136985302641445398114014149630565584812224158417966961236242374393947868958369552115629986086763334423545317566807823907019185690623153257881114099413281226693755673637405199308023553467583840903555911215222116656270305612233515371728544514685345598883472670661970727548075987657239188730800908518730095867489136618257363032536623142093222653155658303612744077951356842485336103852465361999613277279629952161299641756940246655409497105122871272337713138753076097851341418720041433529373167639939705435551842290321910802208519859561995854905835279696159514179012049639981703119834581645429009180869657790854236587582278819052140667779618406988219913123663888390560553563592698760231477346071785959884054624111183479476547864937305705733384521853491300661310882088538629325111017560761271916023278103665099318484271842181382019103458296267168467579336298074748218389681320078461365159258645559123421087900103461161819029616538888284978268448112925325997715370045898639683099893249304841023095676899654946329315095857703143437595261038137137271002387680769533825901503714051865920329132497324106882526223913718787057740316845860538754246320788831357067514170553313002421345072918349205960951312751324638378738603181257653820104555855178205875178257371050719551521575115677924506658966354120459636398304200679702652593034311161434867444042398119308508890372113463397497384363422948497186345710651956957595519329376975837094461298578622979185420859135513374725001938378553470525039123771212729606259917666609859296016679100581949654701285897134447585997212860533489017674199087732976289514066178267774419113250038830896905404272287886458254749015573440261526676365433335845961236283174082453926005488836053326806923286412505337543423763316090613748230546330311914153118814928051649005962543849407117136379024487861504574725382836741203347050960074259297830529701846351723442420180440205806125676129784578763922880027136781077799664938748575841175215634246183234368691782115108455669638705220355973715166734464163947464082071624353957209024866667024908600662484077985043797240493420578456632067822028488073148093156058486003814704904010676337451500679768990179353460343645178930807205509390263330128320748979810277133635144542901111705084765834912104126278924898603827478661527895146099658987483300244476431606196335734526497271938651353734657661824853815577419015822414842199388490542627906650106453561489669866410684600156310014657238816335457025606940738355538420780989628477897237428534055082591222144451044056420809212214040290524031824118913555598770789644057010742251799575694693011747695194605039459213112054706926167200694255551404375965313472365142759692258663324464314625867782062212163542933452500363104615082973680123072786687755596541301950708480643713638416297826871622592159390739760165784613014236078681845526505500766318522435802178534075338277066777461732950756741833994823156197695109802247209390512796638888514321679826830319734309369957440853612004013640308096919581039791994143902065012335309112283943156231865252712299803833451130697914435575533262335870535835887789564792950634709768886657928143437167874085455776099426605945109060977234244986264664477203047142184191728541757695399897419345126802647710436562584148479345095197216433483713761436034105312242027465311424507253310939303176679727759136229479299960699036708551287364095795765690473575928580833633765983459440333991377800670134042154984569965902223667657694161791224414474361641024617761565946794169674460326142461737364351955928731976390299392019219808073146330960627133119273135164872071385977265848784191544373674882363376592238272422967768281149108113688211909320569686522414836357601841645183671046823613273998655408298494593682947329253013860213448774265929733348964559639050298523296384639889498946857715315096373269920961585224250422862406885461638445190754046859152069111162729860109349053736919966766929577119363280202158748535447436179970251689369643605224651471128001927304631911722678963545297648952539749598409628001689427158763010452980440565365348920795570382908096884679434630913683044446672016463453735583734364657734323223477760999131988121019118782520095310642817337804533195675937956008402072009902785031351871895614388331305543770119717749292713768518561570616134375355639664300988951328654397500331998820459881181790577504729493700250234524443005432895412633396084493530311376445360621521818515585690637562568896461946957974268901356619778640587507512431712064423558724591746255101101199903536826518221211194614324600668851883011721527758866923103414905143750099758208706654680053823877981653098479477888051085901022871993126293062632749008472648578201437506782625715734822332307068001614544250864370199275075351989051958759433848378992530268373273749310446637046860032315003560564507473691160303957222651627263822516878641645493173431260741722724363112161478572165949263421636848091601427942833297366044277868950042716492426042284596769315009831803572294729049289909542629303796051282260892009285925147724623156108135025763488893602189141491548358936448562098181833254364732918151358594352041710880614726466951141837028653589093421967849957453880268406672638288186071454941532161241877656686933157784179428472256671840875370912642169131371347280377781719087685947148422142452834982655689299634639612221668458151917565246682208298365425530082514252347771711713920929742470787783422485569413813616104624936378691350258183425165277906239616038369967267472001142660397929704590530577879671495542275195173185367756094576835775149290633186922525714355956232162325678496244854518347437069256424552488713151993888510914098236211420084174327953561932858482990660885702531933736607299455489375147071955201266599366216237303665179700769350391402245130409642773618716931405032330843822072183405548688130141221004857719500150904197482385716865239673531547359996571694267477795392620466249496557895784076233797807490166276548258529704178117960645230731289943657474211637172119725437792565482703564376667766278114014639190085961236903341129627268763047300280075699835644607713759002787266813537599351248025444388358851782231992072486065177837598922405832522195030079579123736870066341933233427255086352948511979271079656179848588977503368058768544779194138756441592162863617511540546529035747108997890801490558005225441303093943474983116824966234092621472587544242305361730641044702252445738820668458436253893334821798683296510209141080492957376955237054479258797116987092466777921249053890739792878041544425413629138470238685779525664014666538814307430617280917745248500566114292189694322073045889568944661871192621596279666219944797460508105486120778005580757616651987188339375866486085188826922020186760838502091468063013014987268325644151757148502063707836761619953652370816176729389382300233726231786125518484275197684307722137123036701857695415249904695328140605792400929891335114797521210631195927743330004169947318170464320924791802782151043653190679866289397936340399213679248656354922624559759472071607898438108170251907210288096789418681352468582962450181550075498453897769521758769892192649197646140891891991267332220979637612968792639074841084216216911675227512592356598060293669096274024972900044616705304988010485441966792413931080745646468020255882633164949513250447896478706432866855149717244003534607130481741065230990220849265628832611991474211892998464184041716634176009873974250612018680701682366356105740650682126418206758287835455884390525107889878680389778518956906974494184964245157383044750535417054196768047351782781168629957852928039232561231725207788676321560563129755963221684965068639387780870974514428284497749150899939625179625405482572988112284044863592100094186275512238191444515850947701738370068088848094691887421860883354858272269780818232646829988699567196265939443495496335530126413519915288022848203126095996252327576889745267461886346179780178804157731034995036878985749266199217422661601081580878747359895755996130019579464305080580161114151648761166811106812636066396683628829564268694393493880033579886649684069004066973499639948168304299213930598718705213545703931980660501492808191626152834563701718370323417568955664950314896993239115934832334206736834160170975912068745933466629975635479670089906062319831702953863660914466364720663798511845499194242717102772301379575890456279328181102817004152427159650621551876663220409933822681527248824526661118042382352177882602877425172374091084748809614356385097298141705170868853590738169243820370292735662445063858331745563856436725476257617930483570582084200001459358115511100391237136604438630783036775857621593313817980279762593907377866633561636382987596408901818392183803508171425621336595478118624688546602213850083268762371669897066699371246468990646125762066960725472671427838607360000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
25000! 5447918548062263258561368239285288935878604361829680079137844171152518995254265927539650140698539532595021970422908846016533816908712644620984486590262302767015316608104811655362187507337693273469492352336557534726714074620194594802660892105328791442483462520139532964812705322302518223875907642656191997837700601216431500486653991103870225210234637477747279576629303653567945701617901390491108597115301739078220049404650088937786573871051782509061721691238094993486051834198972577928952217624899853700287091046013489032083580064733782406946026092196826927424088403481062744493715409593897361185668859776489190273071180613480001638659250287867246024550935401773238573122253887387462131684236484307324892141862046262796593956442063169761616054952125007427088828964394812409060510606296509581527339623918477966598847562543851178160453558473102183560280015593076560040025152551417264504606530287168623999306636516118811366428126240637225552973181882982303180533308928816159035401923834835649359838257644723553225375480508220907568622074293259519569663894347007211145945791998434646270258557071455883403738352031859497390928965419926807696735434206073645012543580923626716772135597607576802119652090916493740645487660069513883569310672117376362908024529980889668761144280277481555411666235995337186271291072616814670370153942308185744813822447586215483268249004953609555515920567999521047624267487351200565113442474846363814771471484806921561781277946487625927517870447877269381536430592099111903219456388122600512358287564636370190204929092024604573861456865857113924907730959038682843277446097991311698956173979349501317613701913499186030309375127843969621882851807432871104607642201592147469265147848966547271971834502829291379176481980013366392682643174965593711970343534495972871802995246726227949756688504126391963149081020345557879810500351358752541374439697189881393655657603937431433113744363436099353996723233614586273303349482743291547780170189440320117712542800437376221291534722756094467983820770976535456737783869250432233909739105763745670290172362767311219631061018722681188252808188495705458463643121509739184594545066497521060154569275377097861200313463493074932061866245992031283919774385955940496634722500845648133971273432636825043900298010070315014065194983193428980837495865299570597078514010382516921948749969574501131108944443754526254212630795436830197425166781308467906714454073774094855693647806527698880991273949082503709508634683472590914120056928199634918250357505956267457726639359966857765216887578683756576929775249913724363048660111748168845686036549448001527018851734061632333169700306628597120191553639491039911065943087251307190847201401768416043441032263578698443921396738734993554306061380751306841153040056262845710177467833187887484796767221642485667472067608260407249857691454721484298153471523226764039193778215399148727383814212723112393821039036703999057507003187945378367835695674781550892864401115579711047043077083018999847719533144321259138614771551863112635811062630934060850714475340407771356763018994720077799703137161373357954745961285821589418172006467560123485362336052796894561040054318959597690697877544972147510604947436411103650151249861143376430531179171399914646463958214209642128738835011478625498809908592268689915644929242610670500093616543338524934592708090054296645408738573606733787733896344181320242282030029349883124698211455565685924239680872059189211765681987053865522315018666981727102004564629378128568031478337486762857884286658340163631180733303905768733678335351086426770656234152154182458639610300841756555569949834082772327533427995449188195388466103957003781152689537216415144432035511396911087868775513969157766896445322430696324273721547658548700985283490336434966141056380178937954468614276468510807328945799390965695431324936157222105577060599293694144829954802049699345790779616000621348240407584656224181247398600769747388883506795172653715760202890956149102198056586484274908718081528191031294455284181958855495600532852859181785966766116270969916846225452710453194392713483425761873252603805818400892849828718018680389886673315047442728015299368718688157922427735705984635433397672960401268577308882276382749472520702034650482475487858850027348428342577909255541575434865851212403037892415829143975591697774160619747952266069407277895885319420442503740764876494937464602627737891901523349973548028203039018976202171192081918375725701512412295084141385043165283116118068899630988776836042275368779965599904818298436644210552457822714299276648069417886848134280099285770485948153868652054409511009495664273718902873030518966536113521895225273165329509235342715877100931283195786784787251366046824158684539436661488507176952889256371321882034070810382107512283797646238465294816118084931161752240671651155764673554350615836860513284995227950173286197532418671983637114361069221065817407685894637806548396317938512313157112396385091788155442797224401120712109756770951982467777373345957955830963356688193825673471813921346253645957667463992063495105161891182166803262971434194778226711204543952930577932553025472570565045142580227623809300406769326153412805288046254803930144231278803805399471790242264071381551649459763597712333791377743484236617198913087961216388572326573981520044364087387510334140250469657856037421085337520287192798859904639333717410541753626394328101547819502554089499648209668920201457151398430166967744336657311869716982152522521358679677136120259805241034933153584480466123922992483008119190226499151262401965437777393136194245447932215533425180161861077727320909110241881351418438507893337689260377798262712564717851232830237999664565340146289109787472175457435176905206976275180530971283943869465928271029319384906071831164677801394030409491274436854218528024157161681419491704895374068780441713293428081451968025605961092890825441657618537022374848643108961267553418582397412494634090044777061529592093524460178147843886053990055268094669558991928843068781769877638980722161158164097486748127940488091970480040495199620447032919155780936303918100937731745813138022487550452745167683293854670887590283904704432186626725933224269138844864767575754927239796925851374338320076763979996822173229574746365761661058663957172933657427340363727978098400655503137577659924681700204606904704969203565600333440897331798450160742173903827972867803703366145702891884387012374463471478397623446483895961243054746068699541939237420715753222898779618469034524409679164569654573255747158033616068936332142154032704357689854482484582416283311530604071412535847742409693216526678515538487924782087568278973011253081061155356750835138955500586638290158389192960353887519855088928814478183042993876146441513722936069366088224534050414067122603454921216028059433462758211594351911951106204478565682099266959541299397469077508921615941710708395331643024872159337537681853070295094855160170530323416613307517154257008284379318848033158780492502050978214632917372747631992832438049865548287319460746252352391956344973176034659280048958502484546986675274460499889995726350549860236122689277941121450032585006552805897847377750609037382954072261519168789316928974168484747302094320204229317857043313710290089429481553189850359104377831390673461564726175155892288748868080977779668474131417757013757164700118387855186151175554978760892302184043375933710961882269547603123154001192353057105396727841442278997514957304870830516390575414789028585205214859476465131237197875965057007879576282375982251734483809130364043658984137670831646263558821043242685938271462178760501806441637298876400692512313876675424129042613694771134214530615844064027997836092235143441094081718572001642400498749095034563048308907575426473851251521765790194283404344144447071263828913657051578854656732041890976867803672618732572115747846322776034990058079675312617071647212086404116733601987964376702955246244337623128757691488978503678620973277918465125038274289245486174664336896578495898221706175158410682916186925522050094155049783060761320248148050195528213507532627174138933238851213943039447238312179930029712800676471859505206266239413440551750628580609806156928883865719035404036805661902869827740844640576733502389485170768847437612055803153511323577915225002841710397696627146890876518539343983259553181630716539362276975106540542967296516794383796251409851615261086004020165011205685453992273071107029801990821910241603325281819468545174522880754635780009230217790205698340118319624038121317159377787461444094338929835680598641848879486708612895483438100729073301715191920364774904315376165510240575017390099280624625272599456608815924958361813456222376351691179968271048201280289567436893327472282648470154790937223591845368298343284932501215641353142316834710761506246485854651008306517848712722690313675826242862471853505369492513847769726645425177058194983032869125518620224332735634919654267076848597627539542556884199496904808637826307302682523162075146221171652164534811675802636572668601316241675014372268162992563002434847706952837992537299065919545611457907692407104054694588640696100082705114018373601548302862179199549685584987473792654868263272504862069142603930748767380543364013996189031652624270056362552733706274100266767263552630820086508642800264215969661624868963073736716397382186831934237735057474473546141571223089370775744242194182340633630252456953482306272431464276624841611564646825367431023942388696371165310726129058790578574595506517556569797695662689862895290276722967398259239044823514339768268607748659225244268061030872913495240642381863613245053213807327324084943557192567324784974656947145197627362379041362565577073046777324160518399706024772147790691857169227181092229189943582971769338381497862230967341637195303772475188163588244558058270437749883624348622932326798532855777326858958516948110584296173341692178584112836392032935612044146858632357819242200980573869010258392618479640615302881257537063041224916776896176376297125269151097370773777340228779061578965943691487873131744419031119378171978288260562401721214216376433380114019069591252861893368201101568255140407141049728047807336032472148443210130245373939095771163784878300900928347754867087180452012979696287623454365362984194085965743652475200696852027833688994623334886132289862752798898370938319860527199434181824660713735811706802253242525454001350867518140311688797791065134858498538350530650572299223862156693013176647852493875079262417867585978857168224619844364210213477450037252994396183806526645059885342391661677506177866735681599522728857789616922581347006247565016825070400452038876557764561774195498631328905173546165076124671558741655788918315061493056894372232632569352309578786047572651876749761153954542656526697301570239728345960684042167901199607783107640044276864335781975387283677748262181140345112366772262094179763479698522785146984237393864101144056512349384675630438136609396891930534795063643301389234335349237896281910847509729517457896500770638034494779365783909023088470877725201105694901342272981748765636651335539299409969472627550981910382634499683132432796859489886637196419814073807116458922197861234160953469059149747787887574769094707064859340657426055731672914360502331845905563051941271672795461478412120860835609066505418336111023589308232596536535349175115999557118371033924099762313971949276113857861971459186789079841746514743921516202338069115263624891329742540958347743781286220792790249239090339815252025336186821797762678581284620512676258001745834700087480740602776840645046507630500603719806457203607042883750664136804995501137625905213223766255016671250636044396948511906239418107982946657680406393436736709775890754910703770636937527718480638018432474387574180007860915890063036052732926583571638981997606439349079460642444265612068254150683447053960513310498117527364537459185468352708932580255951991229435494265413374977297496829640135276941599101643279274700141535379521039922608842061002465519396371031988599644089371099783031291263035825307142422053958024191511657690865469732534963010601270175511641241503528293201249142521570936666786132254182531697083586625643464558565837498589982628361806348056691139194103768426074301916104908168532435677794401844557914520862527443316839461316242711614815027445017642854234190900217601184164869889060624912835040621943643880107595992401510941654137079914031518512864492395708810622050498615943886336824453236732492029838932516192625007244967814468808327059135184824041753174908590735773579774306264820532077948584273676543553726375287685493660409074921324190381261212886169271201137635712872372171390043532145739796307851663233979062059837704772978526070904802459402645893476723730877223449471642262849450734665249991491018591019693321731410545312198143393100447189579190807178544628974745713088482062721547231445273010689770688515025089772260845059405501497102058012766117399885410045274048060942362396067752677390536446177357481996575877509758633363579080200912915866095031205542509840143326279315034856525329735877385949747961919530176363595161496791430295316291394346201561236769360196221288684946294200376577795414944783149106361291675769568410411735729001447160057939745456463997650230081999264929785318887198811195676052696174936879923377778025926450037901166922354921179587722103375393956130864223393961493443223130024511082138423261118824512917141645010042533478006677489260068105584687886601894455606139097912309825986798454710088872809942006642092908157057942124566494051812383794619398650269227756031342208983040087310286510857644007763705057932677489128825933152586256077235977891522948928006446463539656214681768831069561742534541996870658870494237480974584386420600057683807352115022782882850536067447041227065517828003559154122018107047037154441865573115994970576900956747799190361341057711035264930177198485160665344174102928141348483362746866918358985574805783263691771464049955638190417811926121648785228455093148738431712114615965084343832769872956181009083492736413118225543604456682853010025738701014571607754748455690076074999825020458754537690969327687195801434223102746009580054903447618139216025945279648784520209446942023033778742369921572786928118450693147537736636461192058462754698033469985068522742819190154200853555261859644841590311574020268582542291422783729176759480303359807431406187544856426644868173803796671153360187246290224298934537790582419865420851897079897770429277350693515202735813464905223472268726607364657583405079318484691974757916036899959954013276593347733884943336830241144072284874517792186808664151607362920031892546649898270501147291196455850210977839099111352220981185664825804443530369458288496521040771376229540289995463180915699990375133747059853708399236878440178224265795936614570863232250789377961221008903161043399306819296532946387949982359265774741007934195221224259742432802978532065534496771059883887088252647659343591786929300271163149515372409455510489544503854691289154892878130323955113305803303517071006949256818695548512803900063010662196383431884612374785555317723737035344183177762470527331926357113573876829237791959164541873937313505597444954338525414449663374016513684236411658941804752936620601099359078122950467232523831218579649969420093260641468159703517161581861205873978246858547483585965670142071602965371220426637262830162089436274969046894312385920145646705454515225213418262659910666418637430858710823412913630243410181134301369658030295152564003607373944369332087311035660414051349542162530476872443315027820036491842595098817414859193022775698031095645230370163573390455370440140110998291782262895015649768541202304460074363974200071765765040172038059778743723686076477564308041675899852870415115639279185895171374541797110798289804560832206660684385693622481703653976134695256210039651609081017566481530754852359348634296428126912318550136611787906411540686283377461383626345575109501803036823923821118509042469907544949936727400814840541305729902505441585042841070291483682072540586315490963054205737674456562870331295431950486632522898389081762012000487840279927655820587064957135016496014056719063972722152246728110975409214015798140124112219002075353451428813459775849734907983326689256641113159256441132408200585917344283196370402632291537165663729751105929543246887716974537040671331225744080882569746070742846591234012382736315406264648414268044598378219768699369595466706823615464252562749475909004472912940534433155306705362572187420657444566443938224573905050242847715553974387768771158774137701159205129363938115287789410076262926169392030991632877530109327107878554112440443088371603717528599392234546239263262950587927309946335924378079944336187273993405798453401218358503243988809047786735552876500804289477037414233014390732011957632562704712482543592341863970885614856347273245156853268520601771536261766882800525458394506402888963132403492449532123586052107601196603434939517283844104393708902002647197994112269052574255880258864020799740289243508921361882530263476070777596834302786183225558160010703839125685283614485434218494005135132714200441444371423522201137300704021178935210222053271558455941662405961963944950810798557391976439314875476159478342216940188915748941226723413251029387763840720404311732778629318479399270187665128326080600694015774143776415597694686814024472190289369882847383360998874026635378836315541790772503305872148426358745426829610816668080235499274290078426379514867608261509777122460893903257627986177772078851047300560570235012285161170087339386387855937931553146573883941322432409353167346940596551336502497401060770697421687751671762325369735180262145214305183555990902181621335845025983457701770387255217602103532228921562923720305567685855169790725125916741768774508031540890676433732713283390627783324678175922406820204795023023474196152031135141054310338934381412366960488197055341830486205535975756941896102587891307333830236837299658867313243565093809817952921969709788776277436225822806808208453822986712881747007588157271833780032265693836845004172441425752632261522262584121611581235237848585186077289856548297897762162526396122002883898729263031229055680506207787905753365920969014651713053503220807685141357736201447845525347829240590933109251459472192745448088417972071066854672846224813010573627004214679303894512019092048406154674458529919818278900146302689701808685209884963680646500516904374071242332827288967332659198370784135160385110505292912561024243801365641695644740228678705677790266364954750059724854878166887618206079440795736944569212571950482992515433799697598574022850059966626017543571498894530408814462441522523157529635614377406758441913282073541948139028039544914214285387816611363290424018668398825105795451742185790656688951641114267594270977046183169937023666721455060071045538521538031095186622071329536374027582874899045224200457337550167066738258410180037734515677645724650581982180175540072629972454550576328989903712514302882945985706827360928279154981537971718285811017397034021024994653528755329703773975887526165378059930397201758533270804848184636020755646027572138279880576398402652775290922849442165537883264635202854820490358902622286293388092335327855732858088352598369811649539913314280376903594094522123501451388927987698614295192701355349594165791191488818841711103779712133257394671068888130846001017471201353764160094705126785041832104940714192751434125918109341509400320788161585194989554404690317602202553265327263196307523367437040985492359978336890264074498312812505216728019858040952391556684938784163852488409899122790038078674335808861914673861517678106646518923504005211026712029823946577782640268184511069136422100889290775489415023165986266383670073747531733838679470456544147126633052946284822406614089483249556061702280532928504736421036957971634138935406991082250384219034615794939856645570541499227889983748174479227747129867029271944657523410581256448757499542244389414880141513048628951412350798095893940463864417506224211989438348593438823991174191028012482809991425502667347085467462797005617685592935820749601489715626259567019069981328356900832642467553000774762208100050672224722546105715466323899579300562720956476889515139566318538761382243823100610103654880624909049323335296929517003510624313419618982185379638978930612262495568793243476522484405551940865716968085724805516676148434844689023553308012261246443196250883300785333152684661258817735342403703934612915874753384550893232046378944794227553970352673304621603339218875324660599195152819453849865508300402911742136980344735261685573253666079578174026030069841068707491079595095857597334761988086238296659596038615256902763988870842587047896689767112047360092581984924675625026669859633831110752719712596770851541241407506509088338136929094233593051512607225125471368605973597518892108589455277070075125878678875266686847902766216933466786394235763100981716006008006778885114283213495447689154905014179926125566263174981328776599576214497238802276774989465917504690126580391434530447150746188937757159746507174831248940777687502625489701244001233516331397010168413388055653950353642787628011409217740642297413548627200354536890822850580920348077920545434052781891804192507544133356430108739245428191375170515571481288984833741664037031271330584549268938144850866025307868472932177182046745669467050316025563194891533035715854308684384915544261900515158518889219620809023004010410577439992365482301773314911070032747318867062022737819598529644796318869253677579751935422508515366181714392411210513644163313276628119036199773118115458908062529849252917565950882910347134249495060917426618093649376055132644843750358645318240476483263684741838670771814808701727046781194208532732419961249025199638409324865242007371971371710446852134844161990392194057590063492121183595333789336127308944524627677196757409087496971758082641964744205296372005803461280497942477280940554371365091263859514113719532157113598806085048891188039692031046448333943182164962911860277613644073857705963065240375127316546331958822451431999456743337584951058064505069554412477452267753112479143818171364188219303210424166789499259422875666360973069499383471817968112752097750982249776349844990597165813511385136205224954561366661175755326123384849902815511819770641819279290385191383332465165902553492545933629758223164017965781215410960231362739454309503018875600136944933913677358885159307566507383516042347405201249062186968378588544783035391666163667848968390657895638822614345295661062416426977273782047706282876437053080769928198324557586618796882104732826472635453644964827478225413247739679870595728100738170623831015414777641632400989038939376991629184319165956499380139254037958288140421674109711539021073398988136550183030872195365840852545535896230561352497498806977387399354548078554941965202001399869552980004191232216630126422953251212692076928852828901797405545225479345889007304813887630444214647196579698839923729269026680808742684692297272347875729199993631322914350244020878923573936280934362236276512090578189773247129772172310914242413935586258888725885013826709356326002367801432079791927505859257907021362854559926610039539902738785852335047994874303084561187858447471582554019814022533329138314264638683691225436037780845925518499491099979054594748170163604298960717549115482219611185947651212448818172939477262481171347433466566295934651048165240632829355729022911866622654235421689179010385983559327327500514166701520164402015519103848007184766816281937807457283587420340475940341728083308546802598930666356658002956149478556773176586775052032932157561009649891727837070228195030197014483101856609910999702736259915852566387078213766538292910033940444954254407732537666188689415093011330826369733520069491668373127397764512449042024335537215237959693823531497563170960511051912183606952765930799210425122690762934405140827376190737072733003866834411271187696460283954376095112390679239558137342260551461837755645982328748209637081181740043478493126262047857753801820573045569521304514246640676602770685608308816100493087506581948320144199913679204908193199384982412223239655564571653233833033708270207325811378679111143701543041010781558362530408785169095838101337762115602192758139376289588792564843136135256649555624070546657661727684323287561043733878424799842332457237460790301974197434976023827315215478935374495958988738956533241701965390532002475591363250106637186286607758554116897453405813330164271892280813354039970502921961710598931553681661037022740708312165663100701579781550956565970932895453655828035055570400352795898994759489150799996694039764891192595264193107493848080752841528869644854789926152560978025743114456239284401680681682977568292526180106279025163534727172485993716016642977960332031508825904991280051068165721920741270586735536464941190658174502364667601149119875469416132803153486777414153441583806537876553997852830424046334475553933315406319668502316742202164345369914487870395869081692415866773341343053477573245545399504649517043255249223567101480552472895575766380539780061490799624476489766903570032276777058222269551430703254505072024337181195799165198688637130962171161348799799670654897954776435593757688640550491361179038985419417098904691527905872782214196636778795366899977839193626889833977343186748522397180520012777827000789944191431673722377531936141645674286301323831545610031397635660450018798153204318736168110746187526251236074357014583273336397072810632146092181070144334685497988836154516656131528467671163647463559152313062558949815139153281766694898116758359491706598313286803466754711424415345089875758192721910711082639958021774495791985687397940110400981220588522195756182612446509120762621375541315656233493766010678500938505180600806312820820151231611027426916543584644661023699381647452382242318101411410525343628604025277003643861121374636536296430697758630250741624131889006407439345891238220018765931049045962508791481607836534191233830705693990324442445254555819836234196375620834229568993902155058559189944474435099876913368687220655662592523083377160775738615082935871813346063894434593434896942572163432444071748183450186483809944808081291400873318574578369353985704156307540767009768635976358234756626395840361259262564330718822710528614760040487308213480358729820596211473960551470087341320982362757388542690805082834832798627408420105341460936278895073830262977908679630469830072498283443571234691301896889696679636162363117822594478624190118591871803496984994897588201720657213923584988873098634771193748659606480083120246135300841581462899168264520098874851666706513304615914544437730115261652514350171796204842160280305224315301615522088045075951712611789853673310851136066310549597604129213040798669909479317719826854425921728657081608834388565023441256730121520819689705820904211914196629062581031052936199770994550686952085795512155461316446924682544627586367053276859438199047645855048585852532330059643520443835711390882772614985455173175552161074045971162749817418839511705761718359746123889051307998309994755036082749569205890720835515166327863093335744552076721668958158362308704940849606428182912120222616783888454979020467628208445471795648535840891076306048898179302054805384061653021199953875474430098290159571333134684190106416820823579887742073476759798136849939223160814303288689533567803606419400743310590799851185448484503110796785354041361226573003889489039316734661988639665005381196569435845793457274935770979581191287488944989138829331719638521901862810009904076854102964532119034715628616872193402865474610506653850003382258890326969051716714429562811510765664335639008747811346550077547591633280882391634909511627363859685514183014755074733576031787601543019723425025871593703340243450961822409577751913404541985718641450720168678211339154848661092674780991913576836213001804449133793517132987896146418329776361975133274205417141364800079947299557337427441991414496941123254052942130183851910774508393967591987505249772705051471403437356561110758177508793833138743679102222177906773393827400510940680809991447868952241708602115381090072647211652990464494006607501253203258917158351398242655170279532513179529289995060472619699929860630378164996872967954515509439621416747826182965403105352009518957070049575249026477945657860889254103158273685498726346007567274052724835421450951646580539605748436717869556120889634456142088502391881546484936048453541389776320108550297331269255158698411956149569356298902967064066391903629581755269206874064035246555558127533020256198959319596943624762529885148840190903966742070876690447725395207698357972842283620566643290791144575987375390518632761876010431811759320225602289395229032976571631820026668883787955333838895332659616251588099986935716848203925329670502996259019711614905466895463944614107723758481152718743958616923234187841572757590535600258742330271018621627718289723572040857453132178302622608103950168456345774973197960680001337488964817516770702293082739431851603517098356026248440662945704330687443278064611673671118140378625802166461726495414364050328428006815053039468322460957224717808314016991512214757994606795100709395277346989236236986768046075158066410353109343786964935923915405024970165633746709788016133728402113765558632322223192726038364214840356584692526384942406583096338550961464592658593827965740032842870374324348126994852499418389197599478060926496552394092541300625170272215327516725309992677097025735956990877231592967635967307408278941001311272842927200751986656316621862749626234554059963398609789275167947565664293052766230426347659003344781109506732039829632123811030596914839143694237755787214065684865737067305347059470620417541389249489361683190563010053667598145118619695568645431395516298961156818344134882606091943114843238447525250844200743631862753743112427297071223977051472778634380526560012019186788943843761377069954199980090062361450757683704278484015270667350283073051114034817907251776418300712762988550194790297355427311841731023566352584780503438088033013014677892820841201406913004709867696802458756707957197236799718325559365044224698061104309439178357467662792115185938598099698778828552405101802442852157684488335148269272058832494492853748081976680133218206733239932503504879489060992615713133140845730354169600130529706506018293679385916151998813782723010870586089002357958967642797429282641198227322160963146203960378846995668571691774435956390222564533432527101702867782492096970914247886869025073817817206258711497372862451478227503411829742530472360427486444283561361938349431699670047040085585764377358351609380588064822160875989060431180134931102919468289315272121477215818647890740513999214286287806474565141442612574476035484184915878931272391690745489891313789649807912222892276179761480057356004553419774979596221133416261637650490133921078157150978416413126529430221154873276658925406472935001323653730393644750455567715424184962132841844796338471370819460559430287760184636194743641243590085531160649152584492068378101820268333048517938498895625198703531022013854475102571084410604556593577406303918541729661388596842006386900021663432377052531281121777265759241351141292166479210360194966772048219196977377531306098174799919670725902106945950753387262366974310812398946984511267594727037111063410197041298011583059119137660982378364619733533907458172758028037392319319057977714409641645906682466921090920075682129802584047013903155918321595354226035007023498947033125330837683597516436789294925952818530753632109287247936676938743982112671174275290581496025319186829453130014101092376019364416714784901263503220015685717522348156666239423852644921819926470516207987614029845171166486686435589410971011330618754250746244725555144271458293881225555547344079550342411990761760272888044572975071802081337406418544517698880531638766884900590480925870080957753679599651302039576318619490193041458451179892637567857685995727461641207882764499975258784205650700337831159776356893159635773335581272395320657921853693052995853901947283030918425857841801845808874073511302404911621914184169177686528920104438605657729250599245496005210798904755643968105478216513528195060355441016901484966980898187200171232809707786647554602684040241929431403922874987124064035422871112649869708146017821182634170164509836878230372985441849100496684638360721166431286019813350841657390873187960854199191034407375122009309197881876280606064704550969007267575753846607998250712606905559016258554751435714837426931009825765263073433329057383762179167019738928465306060293884143395504476025787924652897558693891410807909287852969929130240227174843052541721407591894244033009479460268559940985482397920674620557645109874681817005518305826298292772124972910383415803854668813340291865243839077009278785442019354435385680047570564201835194110506923217422204521729790159953973520919427892280704371244138292070959418435015963412409768498385272640287447801096851558860825124259324027935574624834573715917523923446142600633832146412079987752003694101077302487658182314923367789983774345876796818663597022627248886291422719957369629664142433359876941355626138068611873797073184088410441396535831190524938969612242669819682989352105967395443725149717911532480867655509289643389489167748420954891809402124512942225809307200429922170658117975082499840382164478179297231937395245618039281659780950659245998422980564336417552691156622605613332760606833790143843812700079412759981978947957198366369114762240651018885777888766613603609535258540210664717386905799642437735637984814918181690296377212836736913136614425085932653197359872134816281650137004812248034014640585019280587757367576575516746498240770504174885400496623191906649582513499302787652142047010484649398247697194933047944882381562429460665371851124354220928154679302987762171277119229374034782413712385531666205977575396948566111186273107596100271865766431431402045844173577214240663946260407040217385945136496485166924137868105109888123231534939735840282533363706473794253108844898135417123329565245633385637570372503041379942853606528774876417045588682331070974741090871743984968949301721437501747749545480877756396341202981282063357066363901885553404891331103872750627330720310685827813358179922823388751023758412299312689282602458236923328019245910253395976936947338982350142143631537457187704011654689354176321892078067963323477154659619213948243070722460835938540339067285751826491806935906732436323125789798169698647981317425228295599875562643167697448676274065471597920257850409889225776915243805005399068491627502657373436623789342575449243961993771612967554368933579612462218482604075111289929948129835547004166406691088111876791646115103437564005851630498757068162490499466739955441513172630082440219503761493473050646512253658708132163114741855639500956527622552290059431250845490383245515962051990674565401026453392936342369376476607247049879787322147102614858317480696480827682979916381346873497048462316329688014033863198966973550200093507416013978905408113965831251475211170830401921627761568914331786576843029597706376493758812055164944874524154422844372447786418425448118677698055581410506219067025917269711661408816523855080611737959148836894264211618301926542363383923324561233644595755811146542053405065820383620765221089256220165127773479312849822988823258200538642520969479206395039164952352441175147875147121965787245276208440284410372469106147211197802398199842789502412400433090935729065650444754116152714653620459895898247940391351449240611002731832476771215862391158990873007118903307219982425928406745952304946197309357324916352005911045095439922321455030992953731362842019651923778731576504284924920713033816850092726481550142687143960264660531067058006905093892244588465060035102631909689769809885693956327624466024534335061951223943669951144968231861022396730795336854635714964473050201387221685733977842358357901221328965355410021422677469924866590887665966107137517574284476171186846468306685430756808935359008456189957876625274576732977500668654274841853094911104995010333038173992219210379467856620381008980807048363117086722915767610660639670810856223952446657925935001387157603081504498627733581298431054484671320742956530591401046244408512932331404526849667203407353943864158996349097165493711710077844669553789555990871456005365492434153872207799649553331332267345797556117740182918735369823830503652144179614295869225896961470955643385425192643693634804376438429406954249715230211126028947088066676681093819700055483062859033283567221383526385307178718290541528506058857732095731973790477525431807402774147322913024950391239243778852385189603773211651257269501070945591072367758288650909767075939638615278140254923965005072362100173260973596503587461187276360847609560007698355706244384356875659660397436814300271584731715052062666764997984938434893249312476286974985120929168074658055843229414839012537170866738480500422623043581099966194227293170870138597522790944143763279033486480068767799762125550210841911003143134939729978596450632482398677789672868837929822830268938300087585388749811893520640887929492563782806219884327150821004981669419277301378284929329942165459479406413142929851827852340205924658221537993081066178258550280477571672004698704266051657733299926368313669663734112824620554081338049555427044305280785160597260732410864437142904988197413807371060236135418108481828044182568528327346582347012818029481743597269868616282592305447990611089206469860183524015210860004407898920352034116437122873365475299988215612272308479662659972284212223532092582604899195170103413643820893139925903406600075237369265218116503569021882435853374483309961352974092443275368703896873074306491667472474678677189091660598466825863771443886365063966323218902033230352967906377761102693142737380111574995770361054078378624171425978801335717596033368387948078319667656579602189586320828524777875605857472978209128829545306733922495440458484160977855754634566650052023362937949639379538954342635896203709420947512662594521358499007333797446892626895916652950613492041373458024183181755098675307117370411520094851456109429035714095313029836917266424767531620974281641740017348351960177466422303905952296497912792474816129791008896406108550392083043306713592031536417190306404486363911038056341214373958057638107925451392149667708148349139013996588549639037929039394439197628553385350097359997841175998209487836443042869813272144268985420522343856225437958366112788546324937101722645276463831618147980959561481949407504080075861180653779415834479826928583372674877595639798771320489225790167567334940079910030825998545258342780157927053305994628074008057010925016845392535965443826298363764976567546211257967588818629316382025693634724253418493517101751404592250535029261264208330349317905100619193533470202998979014237856930263202350025741497321577963109935378353172605226069559562067765085918907373717882516344644446128536179453178567725214541776780102087184656301118647843203900359010105033895453640674870260297873389325899447364955374444159626522619154354457315026207639639530200254257310260298808036725495923878595498976559387406234336730589363436268148683154125702107871282910841829718319365222168002537394022172221756947059002188491830287318249326808390802266958121137722665195500398259099444058985563697502027506884322833735503337910439700095572270062450092615745297221950161899831425651598606774231422305987331983322449797711534338464842144220140495625659701424904582153938131487266068789903342222993410754932441047163693777209089654052707446452939123242980500516290316113991290968388816385390126371310900858252788479071808527223827522263979474345987452305743185207744371817152369397393302549637959255199505681004112372176990504480722464526808456917679146008385583358269709929924959030874191471650332428882732398247254610291616388058155144700352730380625602099195149188353545879086625656724817700557465635220910313781200073068544866919853806501026574957444258972917208673663349942359655054644914634091841551965332328704466197800738992415497447166651379549052442568853933481764608870856267297434767825357439959411336868789934993105915155669394000602951894895023631619066329769556499412961826614657462008072341628076533689271141969184107630091738595372033729088180219152556682470867682192240935459213828359194678579319146688588165243984728750872636362167632020838757921712699484452562030629395366208281262340925585776508395945215587176302380034938373496216141755978576775036997950354014056190930412520639104476503450668246161250025495118366061989361171043578231265136575567840877516230678859848735948539253018341135068210583428848452544413342534962034510976876157320363089517741021727376348819889509345335535366980204107172466516083412481539131641683422221118715385264067745390965094528509246227381175123578765493496470720361354923170932412688977905579035752283251302205840681750380935858250215383635855176557723957953303225480021258504819539891184922566007516944679029485832329201689025522136161349333730348969121442487437815891867199502662420215968467788513790811535554663923372369801746920135372591517311734029873187141911905859963233410840809472966985357454897460229088962118812364709738223032287026359254936811725789084271319188090633056776326534234357747198345626814375783900324041324555537922978763405011789242123224226719625322977975960313015000269311778530598708425650466313296249408619547399405720836201572635339751619677305859661061367355031567702847947578825407454918237471188729803728911333709406686959099899660922458926612013641247301828399798957849280606593372281771063040782535335147943946797997854818511688150993458121884940571736971640933351040730325258668715262276985247415574189262498815090239873312285220887574221000311034118154186011428469102256331148969103832339277817681086664291207344033866804868565747758759441675502168028806965194975483209433302079613646196439863411351812891212356431212780853903983866090353320366524850412872888894706771983998972926076545254624259338081914829400355960907126225032161529282727364091696232138227428440188962279504480753036090274865772635785643260503327055805017011536221298578839031490177964912604125651675031699026253043468663509865701366653507276436462883654070151383431706327131531554517224253238179459037715537226921755213839188216559791976346632388204449193412992324275994084605215160266997486463740336122709611891842945624951790849217618362731010770523095553250338855792975580372931907903211513482134445525175615237759810956754088321440700748267046479290946730800668027684347435343924442975722145659681197893522382904982644892825107842542294416917445927868864267579180835405495971920373765387190849255999361470142979212271378936119298877845711252199584146150093812728388558127346267306814129346622391041991569573931363012179074928369643854776182743758773844163880657675054426358759047402837202046938433322734830295115675326714272932817307010727335878155695248340426877600061682962344405624663145506100201310430593186126040836056596932602187533726024679381002534342284522112344670728370751489858028832520408396604190855168938814432468275448724086982281781494936889097825399815976032069952236134074738386777746877323213560294769721408450085994855138104943749642138852837709561167515132138176051640594128568019225858816672667981784713893283927760630077500149051440307361110775716650551736804539159834454365270346615695093800719453825586603301446771474584545312472668402918585954393809508653906911789042105351397875009204379143343005518051273902554508907119668090256266983702632833532067133947856914235895213948585046480252074532891482959745490244654053526070198314778184209311241346835740595279204619292295548869785303908803120434972720779201941044724638787926902046561157571092851311189379805063143889314060210633231708161221604382711353695666579433424750401559260515652752595386447675347505814911885305341724338183889147018615435313401202841936503313996353689097726852551060363900549494110479929627714449952814486798868971375631315106282562307670753457187294644769488244692338111673188421908067887631668598182610375365855401560976212919189616710861680770937052860381432983105769695616081861322790382027560272185612207515353923598934730455240409788944018286041147884151096400705319404766916503659804450026956050983595320687845499023511738525088505572265629371180565593773850431107303982468067041177375809624884504920187900351564414093438832160182440113884920479088226378798256677863852300366871578833053155806545305670593420389787276828628157840668495808374545120825638590159355024678893557702461776401068786127348424295117223047250738583492502861394230001255641424717197486653904555251008990281068068080321929908159989585958465533698887085435465267376189607869547911614392959521967078653030729956802481959636904474308020863711811371202463949412212311508918672895494850669545637242996113035437256027593705800179208113915965875751687242197635687345721162833791256542280687390888296099376313468724045635426312536002619478577301451907107894433291041426690577691970893195217707426177502140547122964404342710155167305984869975105507474212666690366709598263816872788581034201488177399370180330371419247456029007788547027197958298368909044737498660025098000698618453632440349697752921501196699145359272467059265946179725843089272477772908330391716435840547275882736049317049360071696600706780849600505699972320409490087200603491613873368180209430873656122116367589689785567050804123467955731752609047841101958560112746740198166000931858743990707876660541323021611501635819018556909325610605682057452178976192371787980128214708152152644065333941907991419416553779408046938601469110940823309024547295515398659338437168860177007423149256557079989334404045620938952531391124732714773440829096051301161339749528499394314850036768081619211697945086870295351474654072497576848017328424487605326166899202522523677170508510443127033264434477263407391084727316216593560398889257369132379628620762789350660953208197527468328477915191200060510851502762830051940653346218016515194773624827365643082395639258894584156834482318985973187566142720201341039458258261029056607639579201884241097782549866515950363462482857864600896810079389177971202429646366035548786538217294198979823073409949039114053996235363508656241557430985509769021879018629448129890341326000033618078905007618358477557300069360171517289045430302129587524186854539958557169574845859334126620142409801136740061404363567911286632690930836905356549767002065412373483899471791456166296377961023134739100011187330273816862884000691846919891319470809366104292341733878371381254122656628066043582779641090300856432513573239529323816497078894999395391415689290578032196113979325520298267851242438650280686699192551082359377712254084100550864633022688786142368160344816925205233042113710014231122053379829498490366079719918587057838831020829917948616874135521085074284363509392650983809478325845122553609763893095915361566328674490632164798828814300701450245106381017833915279466428223647006168935612987812479598086034099579921625129681779906062053209962227278950011675979509083133827127333333966165932629453506467545542104305696104671925347394793968550433961094369952981305231777512901191229758942636588969347755211444910648780548693418470489924989586393743603269764501844366023085390742463703979544192308869184685016466957119900503702039215236874288555398144718154415898567747969813821859425366426323081759679000800466656994649877161243064998156966558091072070050990470978516327182634610454315049032970191750403786774992560135522527591527570515586871166826895339007497980411833047150999535667018186726571725441271739046847656486943245121199363193908049221739778672861584635806642702794540995021903962881393521717613246701929842653816478899582488515863038975474832310474131119815091028609516528898465536334913953207516023018660751908627280674977270897415009041325353371556126897023173598073149203143317712581774789380107114728190599048331458751106395172450551750024004148303667081778850059230502472050386107088081154753021352921685351650006823231425708352397314302535933793946470242147989722077336859213423007889121955482916822525052675985199516935737143270563094674160915348339269384098699484626635117982321887970983047175757990998790728587807172883137435620528299871599777200757302661226286285441557920638753742720944581272278681549187101809228387838482281112086195780909513741012393119089454505249715138055193722182373521611319577785511259209505481159231482620906862210924426427425541559281850417543038999866182202262434210378324980138095335111312513024210171159864809995371114998791832403576009600992571757513454870178418452498605436100483786897977315516337336908952583501075743401303591674806697343683871208847706733801500250163116840132415539662154737956797459945976836807590755244680681567074048412550037462296920444450807117373923242400049016570749463874851420786633088274793741814388523729084488053268183208694851950620961344932320644927813901839722983870935943898419263001592281721500601697476560563438297012462083061364719065039005789449483078125678033853021492669137138793850512621217384368353317276269607413446468754026170839401398156629866116707820184312786140413004996938749429274112880230853104196372794508659659544762642137427911722379357411617878759229828671537366714784846510966600449015144027660444470985172062360929898875161112971882398287413569366384413892502790631220511751553820289664682563369416445221163773728503222767115498469587230027739574986683579290602219109579349309635756837850581380321632962707245906151712515937968870080237087226779906276242455199145654741663205978502544540204827203727876187339992460704688795853835244431810633813958225071736792804607837020608028412021920912909905113335924504877221512378692717026201386559793261231788618985320697250567556492312781267039129367852837418235537328696681479841103751097823593284448883977920960811141925896153605819962252003894483611607518298810595597325754912371524757679947824373229354432401756709356926262631317410429268417988918971723707726210582316160872963720896913241045083227308436546192623296335111171068414702894624152007274297696941230591035860322562844551801301930512597840696692446129107994400406829076811905419354405520051224265449910670683196592506043202816209876090608439367598324056142433225361386891839747399161131207932651870417905597492679569351911300109072532682689260415876255456396165525324983558244476895268515809287314771245768978336562411511005016547750659209411118858000768687513673217186179071739304865564192464006807207189289672249940704496167919802833832372941473783829386722417165316536180021633139173253269401030632709394396527555130909926515685758960355902590522033281873272658462162066638652014295231680847229580073853499988179974995256933208070775185027969321024929631409343252222445270874116502967403664828633065684538397721484400314098881479293771415966569522366339294004565743610582861649303039649673819530920264897874886062065640860217811393098284163526462970640094922403186719045317460542980544159506627716024606781266442287771693800864445759484445447846726353491552381019838797171910043080110201936719280303045625906053370309239094720895171499584932525562717033262796360982953720275779888712364651817588272561853498053815306458873341207876176867227688262853350356104370999717736172378638167210221878434391674710866803726244892693485599866496714921936863586700019411499017792356622306493721079359752223828976386775705017219952664954440003085965666588524441909867024951246105345677603153421593694673416367050805770848894938703610372506097470573881647584881180471741217275032039553865129920672060234060256083981168623284893354362946268017259958574081861968485939859864886038373308304618006257285558754881028561580437995400454003605318905998468606017537893175399223910561390672436675257915974412564413686099505448668739216232396333565933103163764379617806449435227011176218205558142592098057242782253668105128199597576118196097387513986560253296136098600454178581969490523134838828570721686617350295904459421717045540856143206185779004097922262327114978490600121970755634235794225837559802567905503915617116240121013700462916926479865299158674304299670404638045710148131315428232422589380591039674099230705805981984497919830645409318032336428820694169021119823072430609622611885614400273177431755276199618679781367787862870818013893728919629335971423881355460026607031560240862102527885507730868642933258338034123292240572945497569536673303370972204303110749504282218193250705437729987634213583933700732713808039189603478681293798785930991172420556892137500748920599638355175952791985322241849581337452415425268190215220749881119649407611530587134214053805048549893696663375791357834889890851427126497708273775223391314474232831942756073228328784712524543426965775801223029017656004096083070569633383985045829496847369186041626626169764481287348081814894916308995268978926620414302648959066088400857683080931938720643713427594493945677242237920939266651674755692932799236829575294052724638584299361505794409094356455283370087435294072868179236478290686084239805090475503272367108457941542310044350824766267385953719095412084708761177487075074398391687585531532658432593392322451179516558443698484610340560848709169439604292786398156402155592357711602102608157695519062818854878297761355994906135315128549269367273246061512611075524367219973468393125366923992811183909503816163411010706054273884840319216206532956505775596627949282242324257745313304686127247600086210494657584210442372666695462862826232937204336039929911348359020617916522833916110444734293591624322789416944478649969414129785510112103111341532382930653567933860941417904185146191927384338983093578521958155529276315267872023986446384938279989464482568277383858874399574749453442704315988605222229164090039745662920667855982627205091140869537123351096336330433663497530605182567216982671981753828832368047838236073441038880632743166184274428198270784723430569672418047058972312349461714253800528078083510241385089357189781551841982766882163988189399257089529596296098832538615741976632392178620604109923486325178814760015468426601766536900767516231890719172901811589767500515039623682961002688392428329564349448518000663511832202949929089380520278354812683312002956415686303343444253716635171242830236294074785920319445977716486888243195268025925177420917659341132630020204491154684058872228554789634271329023227040338894080403638128999159601252642478352833784766994153663614292638162950699559473608698160306723127470172639912306707198998232481689477617842075772913010735445881341645198118398994534398541868742917185719176015264734976169480896157043633079017281767919004655995571072451330016676215943017537216667310435660619276768917401188712998887454329740192706467946206092383697182553053216339181072990193242705044579270284204850558587449251604417038658906038625210603558580047987201907864289053487631551200860859346769908911492406263517475852034164443023615617864555209777772067435605845895901417038297305305137790561947404739999100405644987394141408328380311769796601017164538273317175960066189076060346639233110883292728786102978584637125407174100220315313170806084644569245903264148751550183549305018129143649550650579149077070474357207608749962938251273678646490973407724432639165156690549161566414257205367033755281198464865268220254174541565016773483850996353970865690907408469955873183353992811249380756721139377355234355531232040177996679011480191696899201507311306000792958277774568623505155801823388296669466666683658102973428472906831433649783314609841634850081578827075214425613100500470486692732803078637365984608266118834023329717370451325474717777693736568246233307631883444059142701702996883293124454502529952018964422439758770287304033616527346185332469098096669426861622585144941695570577488802542351673237098075410513438293077578652741108264876402809107917466770173526171688860385361447556117200152687402184849236138569071348997981746399242888817892987892123885578523129040877181027311153644232734391061882127059449083574683463026957431531122113221095854681692814405651275727804701133790527704028249286838416191215338936727230937442070394079005567664191492671750442609589032644612592328273232963517462616425611433759297527602526973129190404235361359844239174650531768383264673489870293959380996572286184960111937419754855438157341796209852641797328698678479449978112057221918962602026064812766422904219126648567572696123041250099639417089212995076679036745327939138894088572985298995616362633754181536333442770612269377932853758782131589035923832292705347759463327152304392295049701313620024515059746050641349238859688515262660720168063437060259928005963874825348147296589430024231260678155884129579433995242849137163220120751179081295689305545173875637939600881632912532752563941735245886073619917714023666594751310204254462193298866835027928636271537167808637584441841755198151444450395196761968746060608948465872461636084350283866460701093858716513496862275783284500990562646479014243501379930716458233373733091743090413547658498010067734874097256081874398995042253785841591510656645727679124427092885933363276040652878674421858616623260175122200187751938516182289551209656995517046876679380689953379477784568105490798199020952604461266371880305324694528029100879576858262034150414596465606741343625513755858421131690512025499521883572328843563722617614865657146721880150178163240497054819058878550826687807481201149564112701044544465975980272137594872601365309309215344832395551428117673292958930136321943102256445648799387066220396553462423232000413541485397620248194727040650220533536655947367856232819051175245721647786451210372675365981227749683632863302258944986646580315864043246496485330107268472110009812156928268114972766131857831305150058083411665218832158757385397553378942208642811686206332000949355358236043594136162800519093810997220825928252099779739377012162228071385006254779985041633747093368390580808600241440801705227316201022051637838038932975334857298318093472626848902078547960750192283719047173398937550350642649731189104918672828951857885407683041099865172538030809108490377033186954008482434270721936376324004077581951923144979415825161236600786237974174702260576549983221353670983684550092841427685129643354937854774431148504859388903052681624725733169147688264827373132932570367137197568162913653972958329397765682780841069455901742768437762187104955092550721472996824588380310636445376679394891866679176820277561132682524666152561704599856376363470135731587244158539486622069347597494116861084984375002861414554149796452454597291646353972884422148399313367633523440397132182268145083213107402811808757213084310820140492481238836609405394192318718413471307748709657733012460814124952645129710320117300973755681658089695538173669145348732902422728290466832826679770844006715489711371960735385613840013134932978896279159349367683678250727890860445985440973703823267800746653684663166574354952593754041652157244182421788391821148350227657333394063214795233406456731239851721612692550008229754537557679897337725638827787522004966011849401172078173325952271719609008279867676875007766690739039180930938071437996779107295663554073817454298092991205067413219333448305704021587862492858497487145441034120825256569326647078369053539710808444464478291533255720980764787220244456396385784408221606167115887401123973966435188751020533436960223432149914062697063450889981333792625048072965557581631056843378169919977556376956282096150500624296636529972152588455572605021639052308752427815768732940126242567998951770542500784539933284416600446339744076107441935867361920023884446472416646320749511644304332350563761452831080752459296802188284874820195716279696240343777098781716226956853303428039599576098317311007279513310458627376034509514451925048491666320149409567903260251698128058880930381798188302632941793650769366318493541547916816115994725921932701394815779870636785019680372270629662742534145631899581936206737871659599819747727048760040154049168122032656448960373326188687541954122952919662258703217801321458061478792507711333095910516760648734556727870038333015964848358396107538578867792668953216898654553905543770426676534278244728091225702956331601999752613226245658113710909816200430785589140897988613585846504906145121254473237305046769457111596201513822914624139640848320819981383075710108709930271853450871351159789794160660992648678578044011418681343434062234997559519970699398525716098052022582188569966288283946040183913343192118271704289665718330067366779327329876094537765599564568425882584539554675690012238592276880064103072268677808523281811287544431853301020961656498005695656575895950246106553830985838107822742743067707142366369563192770305307989335879918571848860552259841855886742916391829839242865501037621840562933066254412301306471063129295158219657832900200810794770187249451718209191827826933697449829394133135948752222726468164646489469098064849027782182341162482184533874822320067418742678223784553939975340432830305046702726903480722554964407397768761286699922509107705860531736930464866495521077180812561473282931590740850777293831466235754869751684017963817951479161967783377176155949464772389463805253433547766339054450806212619848921849500204978284861753207122185687701628062609613021059612148741325358456724535533082654551292409187333531075614214426601810473686186726701695307357096147209260563809912586401038909493099447439387121521905748841408501574674513360723382209965468606313170202407916301356793275620869858895453461426670039148303105396192920198315200534877413424868598748200869857491252300079208769570798548626777943122493028506843994929844917760711006404352399306128257292431848174530037129034493917266309392587366039645910534949215969395697444668583236307582904155769328856598913397782626350141784726758865141069734954402519990788377337045381419748327237982202905951517050890258121629822241222125174546583490370305231598551016231440647095246188627175334654135257531115635582993617134560819784424825534039202832035387318516877615848881838601810235583945241449574962598939593659163538183564977551559394174186176029283309774032352766384532478813290922185072769865781747453422093742022575062202663906442812435126837908356335440053756173675680893141623330650925733655653178288971543051876507485351332635258648778534260327430103067015220830265620101316084482836325155746742299513697625138570597426924608449559754570492902697204428906611827467242408286777784862716971300833807838898814909060121424509471053500840811386531978747223542866741326145356350715659012963581430846854337184921366617578636413039155533864120150033434252017319716893680731321852222852539933896652335368618670761081204125386804946859355067893186966839677307650592394545836817293134688196886818515458564648754456061197585030417934784536476218961409475881282130711407090991333862128963310028719698950480901600209095331437995876872204653881158243008531030614769552624981866180525813127661737287440161622438476948902867616558112251577578579105431583597681832746404308077523058104206653949173423664908125865986413901598727729788963020438050322416033185358462639068499257456650219092869455668311762498471516911292769726677369503980502900793211191050145425104033297615496157229001309739014458390047360936239167681238228848827859968996732525012578886398619832951122973797386656334603566015281010560922652201047272603718910502907226933629431391685597986747183995512348072734888767802175953510573538822433763748756948775896980816666234790011654742559590091731497600402539655303006867628074916051538475690243671614659924025335017120104127345976283696460590429071956756409864451904514637234523466816637692127506813790765279166740985163404548888237240836520157246328264652305999973019618937973953891007048087150752356671750178738440083562478351121930414914315523050446047592583576998104965902546181982891109735017039410069160775305070963034338693398669185086970627604620489461467758742015757885244274238252438673895162735521474242583477352740674241311051403032679415972597435841452476862682358486149481513056390791555691482785718695428236141056486819190801577229431328700680877949715272104548119810197669045306210796118227445957103379029585711021736485106559156408612569292080319879618664297162844814310240613795473466798913126342737599845778948287285359070448105643066396402978109548100358884695298906850338910502479640836846002898182701039289986310174331849639429305573939566683784066713433819395987098022218821946740037301425769082255910521588107341919910128415926884437427253573840162871598990779029273271935741179815654699430450654301569257351913379350858639295029208179015937728531174499832106371672252529600014756636302889822374126717302378627116099311564493305925724766297314992320702244743379992476394800588189962673672677032242243196127405175849335413039550944403526981148226586284495932408925535056933581718225708494095060442279162520985334297374656390263276744799628041137943654266390112650292187305099439958983459516689905204053349900747394321615778676098795396828221673558798031628104164088452667432694301026117309147679561616397174376597941861370549217115902713457452655467319369966499745805856165425275824881261925891177346086264226779242511688425485340788513811703723361255860756206493540964437760006542393647145179011294398739135082385366573473775414841600164679679943552284566291986640139751026877515601943617920063557732739278718727841043162549707457193387906671933267621213665459514911549252401120111821021581122141035210240666602441989580109079322370658891087480765992113456129448310231097297879280063773078107749762219183597947810361807690347108967400340492174603623103801580975238784693510984112411855668721561783200394860983979104139123550070667526984457123477568243392655929763850615488958191370054323062992998326202315205206981497290260369421090093989195443907027117963584477136647950912919358988953156007713673897197475075774722898114037273321218332057787893499299656035472142534422125380453679966676425117903149345371494011660345730134177406164241039545295549042893061444008181226423567837628319185625095005535901657147266870020518247529359195896148320381458345627154970389318996850924137423782963616548478678464780762827758772083428273920036627043055977165924960904111196862465940116998360677847047251695854997231238196165641670396745821071566168232902618713032282547470532329027092210687452611595355237385046027035032267587568664838280846039889333020911079387720985754282057749671798614693095242890423103480464220793493909675816487582088434692859889237640513009018016778460004518253588113572734364486583139979629907400750955345234718861422159596945412788402977379908991961570754133367577955386358900625359435698584004339779038985521435094909367104408257432746795386316177671600563834929281515345905341721198066762852654917696257786617403215674990249937288042756518474521338175176489153372781941861173733743821360952937341159545949899216367845538022474287847607841323286860232828294309902568577079713904552155477076210863053422799896632525325485273843439773186024159687117075960537671874183089983778014850859969478297026448377452724018737374522612164832548232579813678715319949463006833734335084994487314138472724697198762358423017654616454727079673830704501199719507242998155310404573493746633607445059397090366210892870406187090334934796857014909831846883902754307245528995983200612086260241670358205942450577236454468538098833960273288391933338911581364683031558379881362448605776498665480148884574843384097675923673330019872560185298835287358896986128803987249703190926712470594562452340336573977900884622703615868309920016264676366754808064126691063959794692692267873295635874886657197238954120989633568121571087654239291990784244566314504113025851616380579150820269374744307086680199278638217662783141763832854833766522991803895258127663209457268069381900230072103094350374670264729151067435828142322895291223148695439097003081442057081244984529791162541175095532812924594747089681011547738682744963969554991036636775207675878721461041549968401698819046387730683012746644564629036695695198611822827381528258368654630460564223450860008779795631263005383701273518825227338889859506660284270712882602709505574768531586295003141672811680546859974304600052516021724869805368785400841017512316534346047020418006726676395978381663313709933776113525637326679862639208539435147362813134860835625079593083671660320429985192360292568635709018425086313068338538935301072153236676235152767634315045135450214027006341678852597738729070771573364363647721483933503753628132283166117489175974312540230485865368912063905140910056084752917928577074695693443283265663005587104496348962259617453911705145623540137399825805105938152620816275983519485185306470636891129825936063268125854004586714508220095816836111707077363071952422961830093820479519770096338112316576812362226645526746173865536558341732869869275840135312328069361669949716185738675204274355590208331527474840137832593952458609313463511644951314585372447644365565081389627845114231450170193087033080499142726063044463783440684930569540747565873331448111853928863621379124558968156058730412238105414150716709835207392221518013227495824576147163205581022185870331562846240289087134615266141728247795599213274501445416228990159547389862168438943678889590470421394081324772367315095142402871887048211362394967402216631962617364057427968644750944880826312188865514760535014032966140178710005818727614295515712971930804350981343119268901632971336108097210928625846767742759382197804284846846166476284057832099736498525630793483947089428379739819519269162543789000700704251455115175268191436998950074239692477781596262052013606532526050799361289755486632837577766203494033435364055916765577764513566437287421946270610090205787955835176497713233400557489809738077354650945824970688517148000670611638887390166551652281972847559442785977086874827368199372589478627366435076202780892843003218503696146640103015021737094064256686145229676858430301207171043546679041371259444200887552078301986461094274185032604778725540608604788854270706071503911548355645644245078634426762879448055270513338720210482373596939213262282647852062796880466938382954876376072340767216884568665902012658523664365377498463169250860570239563423407409608309751972824225472287712059970149546486199628038610795790884698364047932640106680669422524328520616533843433810996041489993180904012937068249535757734288931018306652758628293869157971368395796128593058384655530119287304564966608950862085135392458372336918202540574697448973350018714218969180585053319131979801589057280077091098863164301889982940677156830531658285363104896878193844708562721592108779821258084110267798820858061329326529727716940478848983050637211353386732950748608428058180499879885746447090965612434603252263467803744523824975835940149221155080151762948452272851740241008268897341018168109509704435781570002228277628181025393713526689431814900927816095345663108884139768570772290944103507399208230406141121138445900125980839008039969265926742511026065073694248708242782931414680430931604382499301979360855225388909881627728900096580066307044196106118576373372373798898281629941348210056873531133958888663889410901471904741074115889291666930935147501073761813990473368910482307880034399999483589697538466396363324921791054455987087340223847506164162399522474085825396057911427907568000076557691558955158214993975073423503612131250868876191071416665679403419745089535528708513773482385316771344639112332248321242327345667921906545946605294366556375458063522409704011953056146825338173915781874144059157585178235736926448940991005797975481166808079121888457023688982051761035657926086758132133535482271721915908625929968067412160999629684979817231256545021558016027649408396532307524301972907283815464251352643022852456083728563734533854699652035084840920554958164920374917452489668262851815922922990226512853765320047328960693729034845910944183074376257222237808874020794394017507527195739835243878937028485369451280348369006070574244487081043388110185827263623274928175825736833701475825854694984228039540272450347638724108738578701160610433404559781753933260446099842919356956012790850174710061136180015509425567392167396558165242481866758435034112602127810713930092951341603285298992044472520856871886527194790519668006017867324080727218282139139506550076520542096463704049087539870726822557181263633415801397169927300631751206571416502238342481308570881349563771514614270217908501831851732451304257233257898416395718560994953524342862930556036053798437420063352692099333919370896670067275221767165513778878308691922504675341192862491585176670271629336888676257190184496605944560655289535695072108512615602270491461374267210391822492382475005759206827454000553723382670183131921863141618348929430870743686741882620870968629821275916656067349897177985996565635267313730164829218285991523595367318508294289521164954357499005218648367021388294305481193457807839208056631249361649015323001534661851108733504800606360948471103603966806051830035166765252576190675138699181151176222260602527000245321555785953579507436673715183097879203865886909398298461237707279319233967874604149378341556366946004169908619530264102008834709714859143503732235982649892736225290653785768780866547980726003554882864725201566886772630445740146084988922823852494034296850451859953853706335469011552541359725705891890473198004089527140632996319879915962101349959566894463684274086962094011462711346720435594815264843458711753636725861304000495332473390386551295776021205470218066587606559066393454845877709365302720053142615325852867880339304782072445861254136729487092356648850793545462395456359354539990676361715253014852396778901431349868496121427938492164527935060319259826396954800978055999273272519198303444113268255030248039503029819458910218587148903670204672015116979998182554975690230709838401627553141107180648941471868974439728310968634363829618872438652438132365301159000209940315635770776236564697778047891940206930358394516042429952182109768485318194218230017024021767542267582890164006416189913821195264862445565091952809512106800140092318089876257048248133317434412067467921090449545367710233312801186024150099934550380888635823976092054354831291838544848096323696151164923680507438908412719539812280943496421764129420668494719661078080056481139246328164241883959326771518344478989870693574978699472941106352004317202098601495746463888969415192657555363449398814354296157680949434356898775945023305815680467387164206413105055356537660133099450196802636492799179093072483640397188105663966309579968417201673792552382070539610329700280700373864700176612876387385392595248849889482617057236277630612283627047848629777671804368192145987931456729871522516245614907262880434179370386281867537905673846449658315852422292946831102431764380597243071045626996056143558117824700153647602907994654641375568101401855348624658781497152274530498449494297060102448021385774343232384436776693162336662032642913983486944761784592146941358212279164637182949772911957755820023432110866537535764968717035202700931642438962903633479586294598789190722569536260548080883047533809108842689756538642159845512741614555086769485951505270409411803345839151597783421639744565063386542358551522796126352752412991212629581191403062006822666197847488969279828874927870098736704699804863895746178560969929178051704109449116553985891497059275289572706078981391741441337226850769068683918898693150807364960408557034747927956635942144213946802573023234549816577388479951035928651716512798347209493449581805570608121929784288577225660741284013267343584330092022286270670821868930324552035875656706207805992771518159178023039176104157813092609585159096447291939763129011309527457273232359870214655176212392111110142407760711364142254196069416514503398903521656214714344945929275482795901780581431593939356587248940472067633335955908410082230678446243510473712538281557800083667263217659029117913010664252860503131972908809441172760253064248502949890544722964709144347286977450587880247325810689217230517117666687330293850515587480812755128339038826702540894926781360856143874083356413501794814449243500351999175043244767100668825003381951138003631339341309922621528389575069301663206067297972582003381589039820469493327275430773099616324993071691587758292485393744107774580634044973128195678848216831020692359263841273841519383802991838453308154939859703270149543541504818275658918854205495327984026540364698190176302717855415697057619891352346337412025560554725447607913633673379555279973113043704565357752051572581501346935601083609063886470377326275803642083325365237816467349158998602617089179899137262479316451732232797743071719258466500619942907316192804959741430944844594225487826484347252775233749433711555203045807121974241490403750561604233649643923523775324488662119911662802231057035938255634318701831245456898430842713946087644993324046849498943433519980024808888828905601078152693833631110138075547004473272269350573790903002993219091706693353342286306472177922343108332176852822318625033607326206036516266637938048812667328591746855344012953507665390859165578420877436989830568080056035875901329927010736588102493945094411009838056334692857088297037883603366503007812456444107169944367616311564847399388766291827331823679996285438120519417711421275586888962617910215164655040079143059930245635084072906786905852716384856506350833745789765341963359756511315509896837367009942979414814051922840174213122976644948838546657358714505874674844990772185342662174681714289604541498646708596862518875887825478091570455153455551777658566427470976431987149601544510486174087460090113308663713808907232386328724306528247372384724556032579787273662079675364238927719022359831423640422746680697829336065068655969227956680613708305765939464941054681520709758179274625328109912848818039787059476389112483111258001130842094989772463295087286988194438949318372780267927617510052964570090682920399474050854611317223602321121124495489761275142086432862918936306147694529112698613605496609294589020206852162525173577492438033266031514622797016126737741893338566541992982500538573631503851415397903393610337516186221722845244370945585359404867861581551118827202880638431238432662266164394004984094996465419003250870624405467790322320846856635899215553969285156855655365248810675020800891277335383804290463022714835162019361569397907619329917756226326046850679837895459524081416343074969179015079255042918251995891524194841777178079349571520270574521016961421617208192350503027985578882645067044470266700554363016437280621704357756369474366124065180660453765005188324675244502736130975568453703949857628352988867196868622365986063735481093928146587003116581050016733486083817337239215588931786233987769879419556217408692224503351576815483232951385432201715600984399580698052208683144396082485803364382053777548651243226768851479937987218912176705715081599731566573758251958217015608444452268743948264568448182114453408560036555261630289811800226079163770543118061434518688706597785821377928611838531277500301935555607681031728655817038712452851179138931888764567079692599843133958545243662133376696870676177423878551982709693002514704555366802779927528158800554065367493296793402949816778335646898747794202545686488731012611311425261890556134357978817298616908453977512406753739436814922740417774351962976805497437359629785786600769602524238154538378011721290519592454394170852123485259370964262975797331096472946299382602021893081172209895043384968095163399522194755187090956674249788637730850102487139877692636266690367928511284607483001721773580310879531958433026377499081460082727409959118451611346912480386895732618702072050650788119296461492203126780667964505088718328154652909004096158697733480914804386121067539721532644597964236846374398942899997313500138051512820610137495580751833060957397298726014566464306397893417150307282598321522955938842325767083100094634179997837248070597037255358890782526026755270076065218611193098696020346027817621718382112169326358363616505819871865996901316606709562823292593355301279267186049007097797606062946274376568682773396759351641216599600238394152022965339837985461187609800087543601276718585325397627682773970925284548612312718460640538056974675878271175363263434728271299902399758119656123799851661059668416928367135088101715039513299537690157794695277501905429281864121352626431576247507583241133778680763653866025797713011734850588975900388091861594167788380401920419933187064911954456175991889640028776401178043558200974438315009454875125851040509207965862480239887547371351943112618429387568621102095927228751948798398498528602435655472917889487758095528650194240046025603700070027206356095406707868686428919946108597552082476909925309119280146180983968842034454642272060348824654737907353348336309412948726723257094632115544999990834911780615620733750384801562051040829435193348651987230552243640928524145334261512130285910430255466776049246357254929152547649323265463428175560724462974312429243686123404188278478562228702268812629815215844421039635476384609043475309089977864164080008030410524103900395390704501306769938288856062983736531720352126519640776893335142829397198726437920750621108529483973576200907249667192950971773116948642240707568531005859970185289307956095323794915175184290152095204177807661987474007290382202277969872123983439817743734828794494341178682991869446841062886019587401288756021540447432473246320103960157224937187658745537572261013846417416362001802561340347957386584867502992783405605618930710539677987970973992871190294357825001194546078403067983666777182622749249841924233185451566475997328475503650084034253740362948017478291074553199072962980765157932189056983521617574741525118325283595571724307880449543975545975633450591819622725596616563769732401617744648782941304716085170454225389362954286139747128479926690274876867709758435763652477040997824428340651174978333480673947981027134439092019840965808382110881018532943059682538091144414214146274349234653626906879050344106382091987062288080822045699505139932533377889992752952698146577215495918720766900349114016619180595655417277489100210758918743984565289118181931172389117521883533700215440810732283916439910686897438712664375313061455374749345582658361537243672524218460285141409826641559818006122029162810146317850360744791783693041584751490464517609672706499878706204597146181694282499982321234181654410052971134212899372184126355294736858725173738295932438918218910446818646584030706802070805606772551530789563233778352210445586823407624343548007673297559060164341517727917799206876652652822074022171151511995385192615834017307615105109642014126105095781343517642191442214097144878835084377020935553928475092201457786075169192654461325733098382483738989950323840048335447668353109026557392447275769564665000335478370096703579157093397986532508406075697898456624341897786010729833017108941157899651380568087268107583100971918087602745091150623193339160401567785549164056841901773583872610928673832812978165510080284441768683335385445937235871640256207277799821095459542244018286740027398437944330196756550848285435860689339866875957575579532891338763022885413107330044700382531155666605875638474515484386733549947148629238633384867243806784273690549892999645443109641993088985907984291826097151642099497692253672268274300067726406355499941683623865058820882539834175655298290977421875525767408264259312125453178644102217880519241326664359695402399771516791486349406294595213204512501652811139412161195951031326902608381466463430609969675500513176766474347880299593961697221157597766039838994181507035831383379679220275833182822363296903413059513289847156473776639667269176879568434379684012663256642043108597213322898347937449932860109059865100202106123940340711312134817651191349916705730005221518910827479781681159825059942404652603263145324020185553763779356147217940680844808998035258093484857556308674783369728994817732336084676845704396050782861347523814284405777840312946661681643374061884696914182843355136171957760052976528596288735191627129309809155630782149531247436352570657987509389903700103854667212201872256534119044970339567060306953471670183155082703040006632587503203686410780468683666043379690319808247173857591541722264105185012872716787233570877001189507201578300321096750827956959400019817419787267022067586367567850680261293763939963802005661705098447059459934002951799954401122376210918836399294950145695179718436783520771426975674152913913294665919989506529388396148527453935603808021233297550169012835691086847040742300160547084805531359893308978729273974360520598010920348736491052388909673862238761586967725267449239665515082247970378724122547094483395767244197741384839513639000711846508316861228566378333857561301158450775732618195081797958046109123664865436640715528194920665384813634908633469223474172820468281837976927406986180760440561839144347476719556275288059501118172032500046168402254402276488333001563032259234347231712162483141244570310023008702799232070382038366528831600393759361289245394052087550176268892881808959078013129329237024192750560000474424717082552769199205050217784857711705060837176438365069814637958976740166854678781678818672966183167252445969187004649293128641252170647123051841681617063857943783202951726568348435004869966746471135122871817628044879463226038036721571320600769884360763447515489485064917346608328698074986903792196098225407881227483972770967735346344547759533824106732359166534560080959225867491969904195657244768081048122032320171687139750220143630949925171935675392291161873823848631942217181316117107182208314301675745199458987833097325056590654745530203091540545613559675585637112293001002033153340709828676780997905245563158502843012887781293779797254262509712188809722108963199636914211103722793674844010444214231165645461879427570198501892124417699173635197655296410068009742260529469682893747798197580904523784450699021049401290729287076836141231379602617785066295477921266277344877160320148430626672294818922450490558164437416370513389030407066538435866261035111129120134870348991048130414357955897553736991084822464493811679512511310309016178847302217250648440587273346851243182559966272246420813363976776231405005658697703160277656438491242116920149357374818249555380757481017691660483576541455971108160948969202866052988033072255306761788308011256241612102437543819672993537484578124572469249703433658859379594540072003473885182022842425654771990896789667771201235746969001023309589065273594059126788555027097103878983725683519967154191029517751189476562142697822659519227048200501842237737488720047442736647595179580150165940452215386722395267565008993307695924646381725837528233039720348060189995524165140473044512896342802633418802913695737940299576209459488069655565492572466947623734930661871845139024476795515650834909663180677426026595841694813870071996931708360797600354409501410071937735228394214276712735519763140254110365266145046573851728953112849242018460384318550347574950772227545016461138985620554569490020612175432047675821637939641508530071227914014414870400551410568712133902520684943062317992419954916327559570434955144628752708560912464622513360951437489383968015586216212544891344521418713961283820155174074254086844345004771335980260739805557896569960880500417684892172418296267374190039727705398314482240903289746290483038193157501656786685175277667365990491061496670712926658184493965490780758660449726986160754059127005897513923158916841042838316782786789552443120130981731352752450930684475982460267363686095541032049412983824449081356654797617317872747494503026333016236087337031373385073703798753344871910086033163946474285120523800157254887817117226806626601559721849073623202971538532567618255323483100889203657803080124352926055845003061675952665744406240994779691182878642470731968623957118364938122962077154727766023568938827538941537675416040409381556468995243247685263563674486136183196439274063610068281543351668183619326614489287641839910395777842322819669640363324305659026161293048039566277363349961507375334712374339115480828324403733197742207892090433471668555557706809844826172107681126512499933711168056016131048576322296846134818003766889434863239245776976600679858689509872327146408816759318649478701591111245990750497263380078260734653318933800406762084349287528904717256605902411074078898789173312534716871014503191619296378359794955507764614883530936995474751177015079338138063110720192929005588486993694153058601308402960726733057364641958159305671278348679284463174011440908661793211785595353807149254336530704942074871507438385788512133314912033713416961833698610437866449392278073397055089667713548607623265298403785129977768278297675077305886097866411726522026915832022028005110556768511774841770952771528405806691166560586891213837826381173202439985635381974265169018033877277777350557077165557187487826081986629141612546987762666074568147478551189310362147296164273605778268200939820471448378867592207858552750962068204299787511250051315128001639037277268074418857932735004453347477368050880465590688419035553786904441844672790886561114501265940827227293754204692987436530856402780755179249973570036084164081902202133467298873763528255681112681734615056634836754129214421581372055201686658390466765180498034618729054868388956769220341140221811410380916601458028812773298791701538741093278678071312387144595380767686715599170195269112310426076230791611053033215213339027201935591367616508043522719863552285790072958436764206374439493088067204512299324607852606383696487044040788922775584822793013616033596785545771572964371674544438770776831246811691686979792268703277983772849288812603340105159885621580115922864170799274865032842210462912625737955539078153331392275481446850034153430357589217600130181678083520220548182010067161715277954927363544582208390490200738287212561577256077291425344488217042110993624451450772011449602329499437747790099657006633219706105779887245268793230606525026963391833472694699019725634896680442341217114666608048243902864647560420100524935878012842859312491680422623056659343210038003902466229252501578144660646850894577553788411764834654012119456106535354306268071957259442275871449239778388983898946857556881647702621612845441362084830755956325330055089356905329615867326936740434721924166361606565919732546812984402097983353694658328681636616815307615002674192465815368474628559028933174840378842821486810140836754541108481431519234645924802294142010066271289165661229514682456838471907097252693001244750901681330362319394766083939688717424841776077979324194749690682648938404587747366827648685129206498756544730975602181301053271997607061845246647343200446348071331434900538074273468404113648913363624303547455628785043328996587274942802971766216974971886100684055467459768884577778419145238535851418806956993548906426412163914308833298772110916789144720545520303890633576944862270305552890556892955232682593983159400396498882541208241519744089790764598425122639279107145617316003169006672260249760759366672091011817531427618010493223895771217611632114944870438452104393622398291731316682170823278792792359985497690512027468208026126066060439593359588446984348088650223826936340476412506544060178921158599323651160533310033070505060033821358179061213534483529998298384270086295163696669885959890026629462687371282168466757142847503931512955332288510436117006013560773356108509737822126002355905581736173810901613299015673328084563869758317654449479273029351263996928131223634974151902871241048032935999294216435605276231419208370324908004296248802933498109986486845368880747157188062516245800378330587674568411967372280372077968868240173184059727918877802206924907585705265879562182953902178615007194963014790256346993416823655317364668916530921028600362234508038464190183891910444554973421865553278276145835105252941620693594777112942676599756457918755255347103235393827086123010570936864417866732738314179388081802333778677875901524060213497845734116564905307813912403876026575254517906140771904212640378625274547906025334185186508397986182070646741975262182848012433138283858606942789941338401344057545060202358077193506431212520549755616043626286592771900818107543569384298361258356905716770449358019359209281362810560322269467894475569041927598799624661426671923111852117085992564158225795590963985547887918230017875260944305038714123578298889697100435117192125193737274066065056940974413593421936142925405112466149565011017867129242584521710137894999994085260273449063912275926917665059926484516036988765797533222765574209665778233644244242272433087103017264486177409521781848625356753315121812547634634694848107870108263037498954252623801967095292355783346509892860772207154473780531035029053952092830421019822891855925209855378084652964593631403050021980137670611555223302743843326209649583399024551277857204293671501309692029325395079735141478304019905916686020489451667493614567932339721903490487060999273757126983696776453431899325206451270871442268658633099179795729211160081253843953216330300997269024927161991502367064006410950138122656861232174059635991583657599933393376023488233472000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
26000! 1807572630699220026417117320683216964436185390829197763625260374686937742393673502669636792600708396142805872645661047817240222335135759052956523981956815204536080182894071127558748466304270091700729450725314494578175525131587844640570275362609863252574206984167866036816142411348493086669341904923730938088831097991782268942790597975298042460102903957591604935094907982873725140690832234583001817832428264304715776117190890500001501476774371613406063393215860453194795976459061741281967772903102368369070017375332075107916435787843306037523365189777729667907111222042346577596880350812311055310914050914688119722657845514597238681802351173696814046551015479433938269740595820290664923670145886981039546065104167295170250723117833721335169013155241743758555054547231059068665496279882248834088989151844777929785262462299509701903103962936289512288936213170129838181010084541908767903110439714233862084558935442477852961413849942359989319777991918853794378019776554444968600061198101526930638709323999277472945108161217287076996546940574716527101960612634757022501537983115814479872807478840025274480395959231624388351400462535029924018102089609596180083995401434389557346842305895516418630635398093025629474996541098275431795342545801019558845928298220127108310098407639467102089109113259340272335195922552845040057289847939238014707499018212874213407482636886319844942224071243015783265260976934796447196640750910990378438276689576069559190110794389195902311352856476791598404321808937905476698108078340653402593878728077012104101315708179283987802597562214566806733352549905064408183442483277886297933644319527848786701384180289515020703891437844074917263929977364464066405057373760524017293055336470293648536298449795734663087531771161296782937178679581890805882177827756885660789981893722564356992364348554721241498167117306631063484354021718781431046899182919722977116874812577047900352148172826111868920607596148459914760114213658094206358525819735874208494403400607206956046469568713587306098635835639400076514390195100305530279867894210010438744776572624077542693452467503340240099508156407995597620427764438938649255386089251156416969069168511601675158398716642030541390770971102979537621496776944083787209446687929453355881632107923959767484213267078661685770147784822859608134843243512798629717571751092358054095857623981272058657096788799564642038545389366834509199716289628729872817672840409511845302235917432777195474915995804273033149102113412211934872647526095370983687649835498893177877105593698220350154763556893027667086652958316394068469602253325896175211483620368592631728339330427178765942595855786580129090840920906365683505655761713210619589203159811189360551405267554825336749046501565338474278410228997314280337574705759245949450315767827095079347919401259568878971190865899955102410982077525575103714242417250964880364066158755166497366828789306673155519916610371611425766452857257239213750659507198642108743777073297704137203633869047229188389847382295559071728688773224649119744734119721650284156826062655971891636823890294119194105322436590138954206264265497654942029852547435067165004221448270465477612504452657730873277059546170088386735521874417344992829302350965225287190733500571361262117350805892102654936617244219767982489921148054511199730898468437893129499730990388482446818402709918331479282624461837583126650032027161090575049674599158076476149053850436278490833230561422804832068804659643578135818449912216325973654529546613179498315160216677613613791262093505722768106866133172995460023539223172783172739688061266711971153825550572123972349587185364223062431556854597499583135967978433486977603196578744379664512974416856495179808627068248485226798532996099332113211832197136054441331810264107888271705019722152267763263729434164967053779292449653418136880256291195566026012404092292345322634549479257106238546561185443914784863519739807623233224283966953193492333536330771265709760479286307653454577873780897449858038614043011647540351437804035886961783337122685383896277015836410238325156515098948190000098031928465573532553021735893184192206519490334275591580852782588055136738127939169083794127234591156793257443521864735460853154880848930334809336423529585068006832108874083311944999503787062534247410523456929563653055369701301061971596364205104057138123191357211523263531070039094911705125685164238537215286747764408339481582643804637323204173881715111955247290938058961837213271932061421568192152252900907585385939878228114263399678729595706628515298086578163129248791804373628011973193165844948621534790683972144788438071339268330041300362533430497781049561503996444970462658304605679356622233061925286444334783145403759719687267293977096897334437738748282368921993282567573641393102600235772876574252297184585676937134257848321356631955553355132587993082273089240307133881226433139039195126485770201622016412223934323226688149916620735410825335204162197000673310894881342055490898403305186371967421216673463006177068199944886610990353280718442253859561033046845860839601453900595618943599614244727605409951255910824134915245222754520181751327773765065769165735423863842097540892062630010432062873883573288319622924853601026079212571478413323664484752150328631629782224104629146969450515086218154937754209167063921415695267810243046390528765024720773497046235734043344391883292179286458635061222775426883425594532155989405565674679330209719915970505259124459233297529504734411949121219179192565292716003036127708960485244461779336174499473021159708289033386589690530484869628858783872865180223349597989192560518331850143716942813331956311124269366521042248185218630641635026850780417624507077816069028692879166850914341458821457354200444825782490875206276212437671902979342409945973580552522933439719633994050295223203564916792781008848911192658806943450802376195505548799974299778308746959853872383711265005136970738584040191534216589096438742597648095236746691590899958463269951105479714417563685951646760874379012251800382260925375512953399188345497872373337017519714914439250612901252903053272821013736039785489196582129672183828234014304027346377971369017648056883713658515079367167878483012375965229993306616209620858882637970919705195540367454701092934744242449705094775994452744121676512995790766562634109497545513245304345324121213836942359407885173317034612396154860695242014415547867133859039685595424732476437862451568365828788989757371144251569610373676311864614563426801308745989259594288034291832313883299626987069663148048965492658230842020111455664991727926196090096609547083736634321832130242347606550109967530962196546418727496599391135916492300481857160768686533372553595360665453078335269882500398710276620036649470335422439183117812986681339377625798887015762906936046335455498196299114132809546117477934897062539509962707412565789592194657555250238535339764759801186247751590568367171795480192084237796251923921063768071525908623416095925599327174622686285565876143613795054610708120827094201344098294828402806488855533877814036650762472800100780548637132496902410457534435229058074158555379037389282846373313510743464884808724366142629811198727139458804965244409015794107206372992900263497677184408602219457116392377556248144441579361576642464650528222479845846701976318822895294150041161320973104725832439924821061709749614379042588362254133125945817864170009064100197181744494864485175523928799714770633852841629495323750650413211217543831922935021661318243802932998778710917204195694382959731956916548644239171070327247758247036719907484830980062425992105099157972320784948249252840411739566840256819425487076201254704461069095028898796309615512000001915968541801891419899539452505257141007065650023504099040133194059428640216872530011985462431608938465661499306597685006036258016229265857603844587037494711401893871214413653707814799334596982681695998599945639125247921840203317820513963936957770673272428752405464518238728942278373558244303321297106053580678136284786758026211902719928789942517830372901773156177572292299725372314418615098312561184765054784301785820054012203357048571865266245980837249160156244968977639788925581799246072944869908634548749371273453700711971823321375280998843519076559235984073166003557893911565559067927660559071712735892982163981206401944793124401213588037452970997340837480936931289904390070503634736513928819562921485247975424882479592955600066011167307399585300579170152042955291770170649136277848005117910059733901102973584959425673641882463014838757706876831489928367269616178027058178584284548950502483971097123076701915206439260793023385725978977182278214188550344326130200212606620793300488196532121100844442970925143509936514204752291847393310843748024663399048057032781772137809046240165832108163920951765155779318880171688974676186333336179533572462191371113448085916456613553417733677869404123241518999479530158519473244455685310921347275620414355535172017493796237202596743264297792153215620267092154615948822402182789327124914181609976645716827245153336185937586743503066875923150653394160645089038878429538722912671754739757635142442814436479034522137305632572337948089957887763723583326488229057510456919397130861025663753776386710857776049042828903273554446361177675320399891732842607003500082451532262218239935873560550755168151926943262299470779014751718055303105048140505877279105985676523853382387088282391756843961704908910080702560056313336787811214413360940811673883833275321244037556695876670194965480859867468654969403729060740028462041133781543982251083220970438323981544485024762839683138777139632145416921623897897472494915219780441200259892919345948634439601692919040174745878040095279007948156119448581300223943679524038076628427846709013644233904313510882845988014810502686437891103227135182119016968171075560023165322960335467787806373905265182914062747522356204420048702568165629072507392691067996767194295834114663555070026776984095907039933688442738301264652329143369955957115519869758813847454489498829424968203281913175720731694561920208804497919697501333720917198799445893064737375299160903401329739735522076081034559752560131078875259086801140738274769741015923681533978448791942938863475431089468774666037794613925429214684239573519081707865631161890040033170486333141227849693318048845833042410792957140448868506476649887351340750758995130018494560996441799335346786173583346034924649780745978082889474042900426884760917658616997044607595108816829549598646133642040231485405127401544484377478191815549780696326596152032751041039886490347453025089738315951638362493445250930632797936193537625476090086507049134946715698996218079464114516675712733098382276884652255782136224583663591148450808645973755744888343919949017877697428100515008121570037395350030989962347268652004979060258248667906539108217527727813860590261594726895536909096415913385373131278583912349922612459856537439535196108138769852578299194152904208240528364814620475395619241570752097791972699711180375238542720848276492815765896751105683604089208618264830514885851046864200900296323332733757318340174799707459594535568884731796463736999085893650058302703634302904608335568007361847066137730743571056362849803090911741485851749342907458543590195547892597274670300631500508259245907170939288949014355727418242569230350756308352211826253352873679506554768999071783670721258599971860814206085018507550762444738997031608882084579720587397081351097817948634286463878015789224237502835880988476117771224388106777818831666282944521407965931721105592725932598941542318709144289312800317685150046413948694439393679461520174658341436165750929340456963714982137594876928921591344980709084055770914287415549812752740621722712716692286973775749194075419125016569807665355317223301831580214422756847590378919826243897216905637028751838462018066374069020627732170078753798452615225753578761533099387569102393987127653728565722505303821535468659013075674121097719508695495615052161584247240285932237021530226708747881995352771217620595151091129499654737042523004648898707801259743736127631663906219871161566396374466796245974971173767793307223663101649161567510604158964549438761632688967714149785721583011654023856628967850094956134113421573038065263406232070032656912010357720087223391508140210922890980450339751196622401120199094449509935291954238767507041665582814898419401401742444282499530307504971809843055108582371415540309669100231059103988663109897485386935705588850254862550254727442987340654818641777614600898622824325010866087070077214331872259387336409058526022481818819413535019219994226842861943597993596478126099942283437399888845540972188229423218223772436011102443243724776872547054863561571427464339927744421249588702771752642531761382188011347796160447326354354440215194762171416501299891626860294494757751091185539911218167399979672966802854078196256311964807965280842491174336620473266967682158168272154785584616429602936920207997910916011208790225736866322138564181124401541519430660641181961692604083349449354160516457704345688819885370350679192839196360041252919914448881040889481283578867287662601707206166651554886151788316785006806148306191731833757340072348044292857171344229588578220237922003376767893096038463523201095623580825146090794380837144204186517853112076722045181445562755414900121058282958083150240024646345680142449631684407796285727549633948253604474890050488558579491846728000527152560221421961199850315520253831853373199486485777015156481785421662465151992108983799479841389766865487207589587885080984474161464470227376467393584930541653452147106387993407478265143905268752349298130551053864155988697610416384860121431946068696141031628434760759716782574172263329499970673256875339654741742392707807335252941169238141248242101438574225177171679607902348675493034900810962660985591722975891396330808344725252738873752856812805797706686990129863169033468688305328631965844881628301827495836783662232651206006344998216261777112134411087853238150807945532933315149016324759287656810597172309956733698723699077535659489913883980429685342154971304172926317502406307519491694728031742983037246876357097798143342830269387188236247594648775185887914803234510631066539199276506227646501127875948707024425234693647152099561585047714870472942401661863945523888804689270946723017043884978071763039430488875999975035381810675842481481955991992535136240845214034962681825209028723918879590032010059452311891747427060875241531478015381914975937346954378666294682742770097517386767708769633639512127103587924231798857410815719630655132346737562899442551509900214279881168292278821318778340345267809556630018104416997147683935769323545775539953086854359057445153148619851842376205936294295638108340032007144581440428245688444858688998673932901836445310837665157903075559625913409699795379999912831264048216349431806382955293273180202803162909586868445755430158763195180055472948164316731528434184465483688314668699003147746672074738798836616807860421437771852519113825057105469948421523386727124286492080974490323521422434699279986300841091807893790015168318562322514896881706476125098642179863514709753053903234549872648412090444661030264309854857450411832245527923434073278478501415115415088059144935145112397006799162275644399108471215593455769306663447403902789669612481314004456312331620201205766028673935974099978664135065591986498474507941869510404239455558129691989108852932589447834358180521838060805741023227693532826473073547895460888161769375720306585794010990285543289472597610403500852597917077839329973694790196290351780868318942322007359299439964001084986777514954874505281710262484033749253210041916892484094989756735855223238716765911677397091470569365884114087630037048554596298555913631540394950879878684676401730916746458888663329717714454741804823307523823088546881337483320946032094596161643114571119603849177357069391654675004291191825521754194094544466738754497597312976808304105441067975350046379306053893452613438799266036483715540098124976967893396432559261588599380480654073685485383377515990419673290447645172381662188949109028205400217647411049250649951926063857600247553436658988722106664007351522550335601271673856299538821392124255503372384500270472575031280978700779494540305401535942682661085358880045253451104977675208828014598353255964161296068782377768356960203982626677533384968777463213648719545967784859526328950371488307979332602186602538139692527871662744324409587864810429818084218170479406609517014843333619474328978069193503593864543277138687470371511018273983306174946918297127529389974186248180461468036606524198815409588491578759400041366132340405863926710890855468998540261913561792076943298367111781720170754066753180067603690401479883606269214812767512581969030767962491647987409098052596667453742253552493756148255860031669529431541593552476503554785814079329970684041987144882132041874574449289409134786409223915048546549416633534057091735258101393140373607260610137393194830131532190884985458486196662573912157660159390188688869331795459304946642546752707240977922968643330851944430831338902745235945743873224848408407366944402116481368662868423806326769864934201635453099127401948197537389220287520935795851660607093731328959191964437105061805703275695257937404131121770995737574511277009949237961280536691463719770890895519662626099979709936624990289271695544996876324782037159248607784345096944682469460051591742825238651200470103867354284689664949438727254851374659753839268526668763487921191065660112788514959494364977331837225993593761086896146811782815786116706713206306431744486648178655188786876013619588119218307427421671651727390375516464109945153912957534004181051015968643353384958246736548760575750853679329533349323125395826925609619763126933000551644817559125748804562071131327717621093733296357244233461057669912272514054379660308889894795598956389400459004186711976423218273715016650340725328172224285247286497155168567921086280153570349322803424216742329457641977710152746906625364373253942182221573319651681406764962559314507557514682233769064251519074768383168004079437029782021233942051348298502846193054132880161602742348381524602602998771297587346319098202500539922309633530396888666736341681260837589608327256700304536488057958977497998134582652193654258667141359812568796507012198320004422024371558329694276310523050487834390375023214659040733275911266156218850927106105764252108748804678480490415630476842033323890465164890220158422261373791560488502695230145779025929045365071574460875288987052187037235972267371835307682854800924344416882296944129386903081939427542303601579695628484207563319732568882948928871027696950519263799306661588462015284634917238362637222093572769111419202282972089301441593593065508992410737036307667626648080857341367163026283967204346031456476601565657271977493108210509066507304152215173242079839976168217242553834038535266575454588198948456610499667344120531480880587883727451756637188684854202604426750785804855726712052704700948618077037678109259544605118751558300933929158417747777013813395263339678659105822571211761433584137657461638963847659016518106852338449798797982294302621387545750274440570576486174104548393055261864137328480880293527441508150380121771196123718795268535878954763791679070412867949020840122336970745462876395242992674565226270126539818954874633150448988479425393236736341287643650602684084217016398242342167294646782307454911230417134378213893234413555805543781638875696298901512963885548875700474846570016181523859778747288643526084259774817266659995752708010384128399492628275928213123742749358636917786060257250825364495946854792618734483014408083583425553408410919500256724140839813333647835623885824892128642756650171408318608746820176638419287926926486754314340912660892983157461452718914727910141674200615054521901616620512388332105107624297669597159892040839356656336396713615736783956808425107264375434779814042710141110730039219696247412088382080920103311954508548587046420150483762494062829424490198399449689705272544454756356137979706186721583344479460824331157237053101374167045630109917124896428844364948093590874203851724285134456411504312883779809933892685274216934031455042113498107163349355231905247463987986814815835870015569921227606522652013024576526687125004275612712603670062829913266259640210985662123790483435048049953439030598548035337702890497910491858617243137507234777328544692561948687906930244119766982784846758859395127577340405691529103714402287850992362215923501171063048208493873280127879160002865078279047293365465258395010357206808780269194843894383335330869371981312243526604065078859444084032563035474267360682579314770424661881876771451860767418423833556129753514792017654267908725300876226118463395238356470098318983401879791948531378381524381977590297318964426701721934115947830326712479857517232062940925110488508426288876423749469624726406606795797516280298479988681159933560606445080075135496721669264721832827128540113169855123931388743572482657300112207287753202441886054184313486800421784004716789863203452284416747660415725662136587556285063893131938787880398642094569545309665693909418664451315963847947917059706582205583557025106408070900780731712979013415989510504447118715069744989864410314505309938391916114222915186100772035418785055436791903356512607804359941429477803673146601097811335396213680961320452288164283427330011235687975835319371192100099501932728278389261146415059548223006656165298865547341344703069184118839322671965260433260164023904986413628384022569201726762717541422561473216092532281685216496117285643870820402390494128531962907470156624169101898205062600509702924820508191584384689028516668610921131403467812348332399230315470623035615168913805070335807219441119355500118571076870583637173330524476621692698149746407612224319007832658821511078550448780327491609305377732602664948847014160015134393351334232322494662271066400796829581235850347927967387187803571982314138804361318940574033116470399850829374987951654702407201316778756443542905725363078540032742772890242019079794424785028183989695976785424211827708893686075775777823495718921172074820436161196095367507355049267500823184025990456122452799246924262008836215765191598878290377961913165549908695371800110997189562833337321726351943284892347336703770928432846754479977305160551185035013577511728146163505820237698320457654603512876010259097425825391568226401682707380899449040547537234446578709912163802929293500610732779060767220975209807193925626444944430862796678221724679655448803644636937045755485155127759856611035011723867995628319234308319933393605514352311658941703126308503700283460355993979936753942636563507093009524013802711675915338566547789468435768080435597398439655869893748427331521317102819599174904564331787648095163591199535484507270757275130127654772638453141388001295505114268011000952155580993786268181906412476857675612057297090220310881445566999448273043702026771203973059974014602546381132763237775786649827776427698272495183750124277745170104033922463571081371535491906526960984875250929616239359712918585116141713578050811727329881239498867179071825752158366588841042930635956166820267898755321086748929439453835673414393375284456676881955328504492021414990711817558571516985922218178578090927451147030081985619868225860069062831047222185529733503024527775268220752150588395930381434842135638785510183377889771718266305321419536555005776562013302962059218952489236034599792022284858191366469972129504369358888080277385703892954991443783724995769382201172525498434592288329096259949418740132870909950623379612346054095218388928134407751166949746282085178612500582666893860967450673610795642299866577039068691070706257437040651492159901438852149599967903388494015234271340259840641263407185693393582201927712370463003253214505941108374246445647531665072722911563083217517394254007920729497272433000874431982455177503270392239795602474492628588479334908381619777426474595280696897502998659396403019052265108987107071734383142351613642033263073629575864494533912979400692244836654770266125506122045829227415786018993424184447142313912125451488669996999535141012913355303218676059144754077448498503955963350174958525582829427413292178743332905972178992055110111679790741052997980046990117555269284886815718865670881236629777743835724420797732471367221890545209723422819919117749067022096475269581101660357642031771334236620780874888419689875330781212497110510224341642876913438090351537107735113912787238820146806877131477186482714890685282723225246563852669239851665997216339608139322231424092414441962571582194437376988186998005245981347583928788420408924201472258998722310566117004717090590330544797273877087223190217837302716976405296963722277979746016830317602451148499706510109638049077804517710508581345513013802321301109201603783594420958041463660333981623081708383808287703556216723717843214925586574313929035413061512354595203503947409074813968621545778678574147043079542104196264672511192934843027192868893323519219579803720239914003092903368993921439460094479945436716100090947024270379217114416284780054560760464733599393943227610593095498957002216990206900734507187591722694616557123819812500690596906282765026101992554224194850894655693654723165546723200295427196566123755646183127372401987057938266401737068161158815082232728089485435271242942338931151955544834294868156617628676254284477734555226364590840439139024508057756110955388308430183291779128355906946228903716232776434523682286770271054684221322074487790585798325794483648890113821466161683422350207844275676145527701527784397057563823046022915682564303051759896492286345130269368778775133584552488277690369928591982290986018033633708634781110347947640500720431764545331789826096368408426584353404917500495053578659634450060714238353895843128795772081748499156499137330104741965794241157638317472252349698416992768329352908106197823239324793395436577498535991966171071116027661832788479384712048880924364701035359433833356320049930766494590698822581552989477579156141865461062626986436576112239932458661694517935882035212115528635237079313715688055739600170879099103600673776239468564205445075122542157109675129517997191880012833935720566869688645157917519288411455368561411034730512489086358870143756384856116182860327156680048198222211171129810158155450216338001901853040267197689465588631923773051777001117233864577988175796012734789883508077629365064151262550633314313049547023918515720591863254741432448368890745577242337608178487111818926726773028999655580615914154425362641138566853861041922225513454908879144273275391615356234942011743117089366743887368994579190617844014581424101268391109484252474088107814448531765183625228275208826368311977705520158464593444851766573175164161968023906173217864418245969714864973015289272073674751106782364149359918437394625346977692555620373443395079363101373011540446807647330970723500123541240677055133525983551452678895801208284096553532220549583967698349938748187049217475069904247147219258721004920167249269374602260102662245122696271644880496249033853379955752725753308801557016464903774859490765365767000056183756915997358096448363096813187902259012085498346376157925910557113838947095689897757467356160637173927676631329812074035997947043722655892478491348781626616296155251811114682954964568727028080274029557794753492260709391332762052596225550904451880417939031996056623833548389196947989499566284118515056722051303117357047401044157290034575167120212952720391049409324139542706094639309978210302160259313923547312051278424552603039539544696250498493595455566045697320431005049140238587209340666472311122640289649201226913496489509639360840715874315418977570975856718135306277073117361608607314549906246219695755609553812791708642879325344619495360653160783408524993061768376328446297456776914937162943559270413658514386794194054914766570732538694081589493555780481255177337084241389081630867554853264685800862150551902028398848410486889549718590870771488091507828903220641003077403677310967526017110361512449932412800014919612382378834864806173920898973102177600747500577522904920780727446712011256362880318564035069982857657706949189960886618733878182382901143814804342861817486828128629101380188492734525089300494505698299563713737390919468586481635339897185827173931281023062183974316171223924111891217240283636023157210497811590813117076860785866435601330955488881499785821094075392376625762169776045973105897067403821095322725118806431205160891877526175606789689731740784432091403379703511719214268565544164883366021689603288401206367800273516812878026912209561002056733061331830178261921515332803167211980284820339191525421507723366851975773906915132522613635137930115246179214538828669800836536708481984637150680931581934868683036983461005182016455537997807815034596940638672502796848237741955837914498645064667571391134872177420212094879437684814129260118035057080988488109312621550364555616130166525173571409517197993037142430419041818001094644558702473798586497063976789783087011625095871514191293748957797251683614669755882305528559425242354124142511772089169761666565335192220043086359959745832787426599890104463896998441561331156815752570802605957099014700226547713475323996804887058148141463327123667604222810207877311931216031164766038422964996260772129264742145896985067234981562222627886270400331189036098774890076678920717750699468730446414699461665373024210202374218837053228005865730470979925179005165859045796139337122491879170161102991091786267865525681679558431074089414033286127593810044532218722254521411068070402322747891876006788838872975448455468510154759324622155088219883940236542927061835173568834836221781781661402942989743713589737053834486183193993960435854979035542586215217304963899420131375545394563002953254039288190345372252286672129768806735892257004885172479808792866431326950100819320941998975005027594537962790903329017552668657141666853818064556769143504543379580196992886328048780911010933466425557569813849130747763683555400201688365360405706952342997922193577539883517181661027224382301803743114449655848357808591131655709082464315410129514425585769547062450883830419706923483303674861756862618836668479517598074559637491654143337952273358633977516741209505566159888007985801459116830685307535218827802673498558547271972786727999000944903189360976469700502890093082365346392885352532698646821113632460916075678410950040108176907054319914134185207714435380796461101123992621271477385374692642710414846493357070537902912294201844529319668209809561237644754748589293564266620720260728486320141209697340747860663875187848350271762132002665811938894932190455962696516855540470240437323405020971097888805966976325009978185993790993797389545804862792139074799367478166383636310304011639377866462170671345567489210965687852645751050254427729949495857859591478304555243910057057488543198953222387014252301174205588633177301469218386983072796090053594013164120009972118804651712284763561190954201142535616307272858903493349141270115371462211882910956488949960898731719729255292144640070650047557653472369514430905848183861190289442144372058478886399802983175543024297375427665309751268046602861192212274549765527546313807901826297769602590544081240199460424535197235540284004703960937939239678513024967210602016611397794242941548690151251476879113639745821816505981100429175754320305091603521856556860223257975317956674922714804869088810148310218788049864069905556418638225962462024619213216178155926515882305360016638997228412436789737147243764728624877941521371497767606423248685829289654775527700567548921703059947331370626924259030267176413231693628918535816082758773361165098841837385376943961360744263749166621135445066010541320511195559920158851006159096585425499371301814752749887928790706862485347062097996298955205020678316506030911340157373780201977543011233324791427751963995883709594109221167146853277990018282502694147277508124520002533846070180185937152231898673459840319748615290554649669277439221049282432819859575296428712995571903654939055802322426365389113687248707580478760637507323689873749507204690495899175729631150872203916760524798551643377989225856298220152295047896890305014231726283621127241331940253372330849904942012605716430296607045874785539472152572817643610474787293465653085104903235364463350890104228683549180091092301371648905107198635227464131694404960256483045196610234432179186659606884047497944252544112119522310632578427419413994781912151508044999701692987236700675995826123778500561653980957913097531959881507081257698353406122727170307535591345420323877324663541557805208590907662837443332894204318702522237194395095302591216740471729710618051583605570068836872216076315726210583209812944831218760580164337886406253312121972736004238666376178959568385046276731224873273927177272014872734920901347614153938490029726948253709788479500845308951110450453295116355111877996752585140246350541106130730458501022598537712695921598976687249933876118183642404825339893369318951243587241818002383397464791145831840612491146797420544973864040208889227773529061332216804014751769747020805597611932013147025657457900555385856823946630892269804786214682064384407832473451374099568774852958696020577495155549068632724432126764996642774993238839856380970361566677031202400694524141374298480790853689583423502055339034039063283288446571557963437609545820671600799980532282375094056986950358590163830095678062397595829793404572929507980480932860104117120236268323843759777085727986125701799231759928113307965707242754561412824384829970140178439496824442707850829992709237373416708754458350355147953802865051426111959202144860225630771998791045222983005735477937126188843481075903997918545218758568940701596169143468190729325269622037613142971840899081627011731153853072307022810643569714565407510019816550823628424477671423395427282066352462374735947623727580982068911641322149597734284913748383867226893093510940293512355006291955746132764521936327232569283841758662868895455215061052403464896323572907549920799419802560667249772893703690304589093359835647580759583681350237593707263666506846742335724683580706642776563097093434395926475378575574116982651787523208883344986009847796028102930443525835592517828967851207779305766904399788244002206333425687761359261807845624521190301206299168860660842422333782463539786616764044190081362114933589382964518832577080633099026665625540888991808342621718542786217199227617026691901369351383027159239182996313245847469439698392777343960256888003987968456104649216308463568771541966838664556459122885509253495155649399772166622305058741010329675114705286994984056786830487960990520280335220840730640690003591671538922578487620287766131642160778696486468635275708603505304370745342155112063260168788879733365322160058326481473201129072361935190417947300992838077133640121062346480345725589792236898586644087431765761059721838248354792453827954386577180174838226368713232601279497584145597956300783890573931320331007901242375666422931739089764052459768275298542497541001140779841083642752985846967407324182242444824819610144094629608715158263704649983841467181821740668350615980000681797193420083955774679365336218757662626848450397893354287648128338124550115644236085678083994921299195693005247595672933690045557845832151708109273653339770527710496725036018798380156830130429270991994205406178243721562991446717847470744601788735171054927829911192529641414460377862718417524051796116098106100063602289543145350685784037931816122274004044774344687970596997695269298741824431185064931402745878062922188562326333315060070768689522268599414246572341270595507864897948869510880869204846593487149418116420495733574984387231721918550756330742464153773594012184173022645977496174242649640488598856487301419414173311539237749886114099293950824831219228165696133696051211790492188054550192687036483070445989092822886095518821699247613191930161351709604306168820387181021243113587020843233642460963810622344124327236432460183052757450584081806337276405511303214255796270672630025910614722545526774679281072597454969895168187194227978917058920188098218404170176998537009685666430882255889068502637171765021424107608965106279754354462610202628731243064613372520900582600584143278192130353682119326660457145707165589773724586264004467966645899487929990551283261428049895928667725264773219434453337958534413789456809369528852020155227205094802046322406218760023509210343519351152042696276419541602662970079458774794454168292947150104657309870290397414005142328875413460989785296484550379481409208464137615891833496832826343398546432573179384898828918357996340754839064560691015467675478983994300226531349124678269555856956606565815712828077739707377952917899743805770441781920783981838181899104639317609528839259365750163816252504794150058025016005018030783145008839914193934709115983179602156553798387465684559091597816366802779932952752174932948409722787310171836852787099687782112323751113795049589247149744027616358249081069727821170297901790914073031165732269825198473852761863148073954109424462681748085027058404638879812806123418757901315149226709760780974219164351602953885491448230144032212338252940505299228293508614071486746317280758473680620616477049004437875210814139658550306256775076718450660448195066258681701389931166528263427012660913101657697649773461213158329464671867167533559731193429458610196686237954233570060162646843948229581630248639419712463840994114242928610822448325818185077579016497160846009398324104475680665015113315051411141384729300364937789416010012145958574985180719284210375672434965366743803855818355282765541938869313323264619625427644394610141956095841349714742510765444237603926504047708973925598262195755930529861968621719389248427683758459649556131470163933253284205483844279660085998558281127744842812125930674163081498309511908161156094200177447075813702724930678673216082591938796869680604175942741119987282072859921357058933175027734216061134093064973761503058004130686821998271007154517066581820025217643574822141679908496715601583839579755232475578543736337378613625458936924288534656156572047804242010680172498856434620505493158080563282482986700809761046618458875625258871202889714966356188502858754901569902074755277303456674556279385606853403664502776022435750825332330258873253628331954326812939838183673819969216190301526581059006570831170641533222028237012015786810866101926833816203175216822974218610912473547892272549103236385110759056731522216106630839838637424015434461927488926736215081045138421168051551617328471908797758066167633368941102458289283931583257596416761662620369638271749203436387143042388309730421778908441195704772743060745477738726083338309557292418649880171454861225880288813165827850751157979478210169723245281760784434282358151702458420655960947276783912782913405393841592858324937218481858055693223640721865869716954385284410689885941755355073120804470498726232023849621345680211172414249619539803619349879515274263428720800615471951232869766444915915357806417893538272596146585619705055297775425841778687917186535200198012343799094901928579826539866709242709021499023032661413009264834351554173326086464389146903684783962638620255988137290657851132756967264667879552300841895848096830847953697397863034687630922291928518571854411785192226824408856138801658764320258627425792119240309734905685438994688209381751473541097773344283827966988935097981067498760931192738447445144729693988836490704277804634517200526958101662528583812696043597464859791438801181152486223619594294172998459643262722920735834831829375406767553583177118774545610102225660753555785301679785672864687126963034157561502487703879595977109323553191669025692603695228595353136452869080731801409888950088107428265033150986592387583232419291163800646643350059063876046925825932167477430880346362661364127667936307410099587154614500446982454899231073627614396269961862050495924429166277227955252007794775066433814937782260630668333385076472781544249510479576785247097167272200224179207288135575623303713130993463137233769336996283830639281035127407664530062731603301256539451866505144178480183050307229490828252376414576521828629744841377880282305595573997320714230770060543473093848508498878337790174027682596604114665483130496651651368982452922156997746532507470098314777395159942660238514764050259898960022466897169267055843866483392403003797420969157066430931253010280844400864374609560876553292450262228272361294976963939457967480998689029616864374906759971713678743943197876578919394183414684743988406521676818950372367719194949596269946538432611177076183321401891004389682369953050606225669275480428178326408864998569131574253457238335331624755072488013056080391722000734729344617569540650089419651768655983950944910079111945220669643008006871266490350268101757958606926540505922182793160166330649206779868516729270881341835751247640351803266914320016520218314871297241936656213105049411015452783318294457437142081677814214199942885625805743167381618208512628633616398278073549965645692044788629640086958904951394242084450502692919934148498624477232093542163960215113269656647651249914008036416588599875597683849535678450136278575674035667381403314268488364064741119784695786502352966913510718750019812079494596227391049722178392975093418392252049905070758227465238592310853976469760780483312689617566630636338649772744135203162508188500692620486259819347782563077014297484426998462136891056527397905623441194503664683474793804691731293603660449173090489070439368852715992923852639278050480724835600318820838913811323218357376389930346669789306253398028150132784218423152544770644704899982891635288595214755542230751620194467103093204248569163598114133358114858994728673856210177746705279342292055796078614605967086449715754253675220523183680426774958670854667850294636848756248979414485089490721240904771317598980231881809397579504759142638744031993393986498533879761751740268695818737688691721646947525759507870115194391255112263761377986579298827938547855594280511486090720666414662771552907893206399664652113528661117776163885290466272340058264920837267361136224936444865901113910785015285381286447698529339303527986636062283683170955294032816566570773113186670042175641944193063879015859647122956686733700099766620830302607437908330548178882596382123684061576386539710300637315228737296905729920115456716356206303151409901835830867112407867972296879835603246180199481998458695378716110321664908305741685091352722915572670996469193091073288467860116581540177149095017746584197419291033145129903565002358259495406059400742332783490939245426125992171535085534829017922529059830853136647363197903042393432290942519445067865304343382034736750757430188411766121738607571637751347880218951526761707073774213676796044540363662469822905147439074597595903335682920959163915403234927571300269388772834821124241986433319199718905117148819338993838713269211850046856693517823660975044595158138505543855583601908954310102092546255371005875819817906472930047737302956616909620346453581998254528196218294177463617322750523152216957210561945146075979482446115139417487484385449639547603899832154344389715584885463757323581842797456775920458269344441185475646240090758924772011824846494734735545671400573451923724024106754714614115761261959406631334312468256453883698312709501661362327950118983674021279156758525351222112636690613487915383050055691105347321907051778746920111819127917662394817158190766814438865748512885971985512764221919664590968419852644130232820699410750068166234366975261834034617947855619896005659081666196611685934798006437682871335627013957592244259803302296296306450441638759590840841376610940526323587843468387112896641256992342199669282239934124217939765884619333148665434820024093061129959872401175754319123200535032381502551287668285395894599927791937144098354564375780396640447220852133864784540678034974016604344399011048064075765451901058121291721300365294820645890296724040736280997498836617279322548204577250472305107699883219001561091395141743234175413407095747200230308822569785888434740858493640413266272521570479454960792102911572753157640962090068797237883383946544574986590893532425416823002678814058460418159381244555220071541756534596112522990739636099354258174675417755449280246483353090884513830308056479383005628902552170182076480499165016310567550988557091430040591140263540129118300104129318196577246850792446429307006160273721311142061145499756339584920434563571469908967456812104589992960960647642078853513981737707571086930381152048418821524950735698584662515038057521494601358660317225392893172176525349911774848795189907163694403826772392259902733533453208069984095153795225609354391475731311459486873923838247027820519445943985547285929677997607126950818642273452369063614341108878808057927836800887201596236244517409041030201331186969522564481944740318641128210430587978352854911048134860611267508447235025972210671596864865931559912945321405171226189758078721876610395757950643527297282760133303726542053571946511042803498909487892435450919017266172618930162403768648052570852534254169458531561266076232907220356287166411047524434969593519677452963258497319987638280192891087709118831075891393119556466170173601745889612529208694175260300669948063703464741656088542173419149921410341252274285049329108052568856637578574528089856669195781375085187155210288643902824170818440255824783325658547177829668212079937416550048318552750282737164583388844502269048699367696751276322526467189530887939659744639432977703576498419553261145723672378373372359057085120103898400582254858602699952545969659968270280444323625174094138588056620927348479810252190389086417435494351023203914112498500313728179670979778134790100361054340259027003404409993514054838805673913640331774632630724605970940943210252746667056362002647277536979282550612329655910999461155076287016031677764216735589587603120940011594956173324930591770617904426168105746227134011584482206055768147124724248576395769277090477291334233179286994741448585245862643515518103997706904502982154142444707024702177571105817911093081563895952155472970489092892069727080092715842366513450844854971837020186680855881973994841901796727121256908005427814252736882179410561728209216184021182585169967743319773834476803293894017614973391646651077945821895760689231192803622988199066599333454973757046481532894625972946526416340683088315608336756477246646183997956528963733222449642554460859454936242178637730620213877707711658114821024376110419592526024032437776361976885471583892147135793712032195188676616676210070059376220154219755978674159897650012545588347495279121571157687790025993146719555683532878739223642932234994349053367381558129185438168673352928516263034290259632258766528142637792431701217468817884383470231920081427283773563669311688160480676221269975701015889826680267908227674212009232043275160703094253113339831735960234165134437995495456005659195839377266734817169515776958028128361442543132723337486364126678242762164708890630257727174768937299839014308021252525887406793893716968789786335905600805764899926560798269136530527783460022602052167292113954450427297270478448216596546707674827042069851171629459272471296153940648785450481883073071575969453257062627389185062823689469781988632355818190519297262624031502891373203873630539676828694071617239811850606773962061853500316774545888446135271892166091365579223858819258361303916948430976798628110739628613077379696066629590662030635781487887468015265551975082159008482273152233079135556489094464881322790123906061801919528752363953789042292735183792582068632200177817186824415359304835546550893865587604668656653352310811526709901032231377305157359119956891200466115282264276789209645691403099297064906217549995176850674275410470321487046010943593593260321746610205034496966448863976331807961149665714103362174359055602425509231590743209911662485401560015247535102243660188396574234398401778386511067048692465643163828546406723223939865417283519976592340396095010738396899640236218834457218515405677372385097242947502789263081790111465216190091075892595328688431354053203753767223627820913004623314866140639188162511560285057787133863892730669888061832863465427229156557263467152314995184032279801338565363904865443604165112553999970606297839831361441012385339817422801535980437706265757265962466926551366232669761943694030546204660887456963606148530084544731898120502934523683546470041100623416182155747414065173339118314852883971475057498956818973241602868474525651967669434583322089205648484043340754801587760355911421604070295549368915994402476237978874863945723848207624183103537118468278138332452038176525258915903343907634851337396078638936165215018601167517432978672795138620504591826533152182494596591072501522914834110082594611192251288893173557471904024190476734641849434380853377974869855368318443757387051210776435662952389760058505236005602762860976456172589269270016889181265671645703838736485034352562456230813299315532510305525153214888195609869991939796951257433475355088600319760822557513705441249279412923662202978473304120787905160059453299738684626371917478998853376580386723640641872087318557878709611225125488624906892532675441741005726999590144245066956110242372959301215373890561550102728891183775999271813672988141031544965544938784581816434895067729240423535832169435505425641749678326185371806836799300054629908245920468471486619264363156755502305569263635476775782728534784086084048555113637496777547294965363989217776479944263669630395479232664795953222301701030880106019119867424375253705763005414483335307008270118325332747089533004065893387083919654753576994003224294182762856816616047448558785083619240013127240094353116080685857591423593876617907929342411198009985410115629150231396792576797804291169468395236124770132351182539246084906292297095265748327592908742989475860360761708760890786023236550087430790047365610567201203134298035279912984407815066052009782821999287336731332402479429701701365958397573336270063157544625431617289142350950132069569265312267974407840524849732570333652189992202363370382770819250041224696797422853819732599350805840231031414612671588866545018485741439010337174750978418218699705118829468835810892288038466860241149570036798845331441071349226784493712885487244033019433043848757312518037621963269241950618649306228194389375723186611938388027170269773362122699722357347789131622648392437555075495806478404918474079529154169592552293858848911271560291318068722599392732321866512605985629318743463513550664721271904025304214445828777842576468080929611512285321990942405801518529387940617531429328863230558911456715620431240091667196766268054811656173221161527847220208056121293517526268542068969270896317463268850882558942407717684645779954505598047962368724015964265768871753948527414506475834256291937707260417817651410336861566250349733571907619215684315363237957048288236442090629834302874430253829316504082455722061575424135045820551484657521382359447909318365384570389175572439461926954667277454953359055956047717490416274295933136834773817737206825933939339569889974962105236861204249474179302038290198962100047326498055178166511374815070994022610940187451365665729442392295742247455765460629255127423867756270243021863902315225168382346263876181574260438114642256073570304228372895022816986334061920190312515005844374701868656744056107721175381970803346987712864553227351984413200378796612816412043696188480147180656955619600288668552936526504149722045702996723964526571361220291875138483314570088408688678947488798306182552659832243001056896295646429535028304833511653094579846345908637159816054265866074302330292835714935374943439831655558115021530355497977285121536368663909585467456750485721752910342892300634303599643688669261483276220982983997613167515718175476055528680474025626255458745121824513502773889621553526617621731175821480349722928025235625749238491781098419906463145817920208662185713829786852574877588718936802373660765111983535535925742331922678832950295178230695061467569185002476723963213548278965501426784832730767478728430933337868598938201291985031036523000931834485502560068427800194256741824719332669699951723360447712242932799445904270571663340883285985849160888005384944340201844266438791443818674234890112047668351872881612290729560799648080847363544448741289535599871084379687375086119620584475726055937589408583406611241651915813346295909852982787758025578293486602555509961157372801729703523687153124408460064129594635747720282382001688989350002881164463434688019614587781305627575221508610416229158789283356005503418146343264267836700648520455102203698945463876191284857636106623493198453091519367105924408376781287970633725274963698426329525700684898431791721510910406791988986711163098987565897695686173688519390811992448737518676641343210021075513521658541242186748473034458248415003442140218288379575005264388650996108927653556088051258857624650785098460791364073506697457757628715901600449615762352667153304386991466085732890359097521695583449921733601046675035334939445367222645773812798820019574042372571663458905144149745540370754538878485095047951247192834232071027860583480938244731004769960901971982949832246432226614248173935081432618599359676827912727146605665093136487909559060325154664702948360816417802540182872788680507276425106651278179081766280796322332517235368009985281292706456958197612839563759316025283503154821506108446182880076882221426192962270274469946905284366086367488448314756951173274375425562942781476378087832062491120076066334498676750035166830963709924696013825308866120731448443512730413904762533522676388445468924206677663724286795187220981107699818889461782918704049341234793082383495194530490153237140899258281474745342624603711622476029093420680293212494771768866541864238940650014354111407924274766462333914636837450226923435275941118640827969861712013949059723676705932284680018072524553388988564174866774462533469941890140400380082994801279037121149789183214445675675155187788601046325699353812124245640625012980245919989909567185851997122940081509762053620712819728447007279331144346640136374433226853374871318843202993845914222422880222688567551545818935892427148033589535783436831507244737921873730069828732853186097026261930403777486539761277023541222452214793983765850488286606181648612700201143559313195957051701542175933961283593906623569057646945483831782508926732252441197680829249758628532684959696463253807153829165107552844893693688387576637554024672146931235074910087729567387002857678504709237762627923915973896257778534448684013498576276199204067710882966927504924868389459497801913460784964209501494016046905555733499693414947320590915573556945437071502730957097104570911485404457713219721090338240853996490973304882622042025447078401722129476211006349480389498401419087409583901096080809131967102245791342978046697195322242775482700330615653473173469128090941051176355190604542784386816971120312046583607802052713493816192924055994574014837559999121194972944988963554186747294774365036847223159435055200544347872151460689572719001236912951089199117503649861500614220078075940208390175933224819004808660049026404574061886767691073796983267311428959769155017193617406523996613073090669912467350208052724963938588216867122134694265558611269762840920096968464010411525274045411247128831454959894040734054643701978120734532482320887492007603843262467662591735676926372627334485400352226448142607235985946916022774007183413971383306201634542681990397693149329470075718962090812690028902326382350323283179490948941582869892123323283956566983079621436036104692362523849806332504428548481485035777121284673592842426884667719049697182172987554173084831631718158839098913901504534447259225454624542164296976565783211058171753125071556711933680341057428873656404724957269471238106575323170038768658315905296975235761803731088611943881624274323752491260991613257180627650074443079764614568437344359884093678334351542737731218839704013004991200681300196888451856161902460536402933994133504895880261258119071169383324396170111414567440698361001031207997049318830366907805021166866230121344117986073195702584396593085753966175895905181264002127224101010063412133136037860166665177717688774273026346069286491702417357215977303739788388509392703351561262415778143978965471922702362978608852299647368885890381171330400708702339556158714274337576901869682296463424676934897797685050004835689208962976397007287574994427621911215041003334204025257339131951861551280986366499984173208118525055096652141263446934423261479881585724572435503943251100269123509321950315966738327770574364355412335132414015475222160246369435357224155207966937146385496836194612846946988901315058598359071385016991181083238466563968912679842654243337504137405950366806848358832889002976288652195656539585560302847805411621216148160167307902010525387836810201386969494650519246965450515770239406614498536280718387214846373282898090042184890929143631283779626666468370319118406443247810267671967462129323408986907030663148304087993898970105395309579071456274406006535049097975927074159610523096611646267203123136168268014884154438351232106311834507701445876432641368428101932998432752896423040147856473049593794322975022382718085958471044235766831741050158466860850589641879674547759771607859948310999127282722019528008831559211912309608267980261784525487867791915367414569549454506049874386914038752200971820065423934352453904281742071204629931248211690785085080649522724552508559687293696366073515298389406115900619806292635281889766059340051710115820715841031833799353174105214335069546782289784910496785678140986906342549294896277405362497445375885683986807266121829241554307922305283618868482266583731039265533995623899879088461537523819741668662190939105666118280947765639991135423817320446529264261553642386924391138927952058765646467855193502440548826383580795268259255177616447436806167168763146225524731901596752277985048460549718848504101155577019354132619104061724402640441752110361653989758337605514037776695979327089691615368585618087480975175914157141196596082432555554396358241044740609685052016439874969894788416543624454847063694401093469568372196938160459193919963738634376833443850562761036131393641336353129006117406346920643468204792728656026224501386759576691539590699700980153998035152172293111782561139993892648293765233546236876967956657857953678440480014431650352982079284424801678865914444368038418380100452320622221667013178392517759186569509058392630031502442086498071478369847111617484208980681523853615389669513431055024880008285038601896283038838497056214869413656366047759945695193591626337968916776662656714367534137290113201673295215766093581291754446378448702100359245376367933943479426228829275754717481155510597679400116731212951504541429150709625347831545534736850948153851904886746493892337141283131034813835914139539504179181975537548468370372941529136604873356729364834149206574209339079382963923700097586597471680739455147363109935492534187968740250496786114027347041269082192615131792753159058501833717041217611423814892318508665229823113402181829336991212733764528932067208153306115535583241686304297007761679850224224053399604179701043784677351181632318731909755570008037054484327231372072857813564334966709655707314499455547398530359809327915942894857420167635915963875650436653630788629933966122509037514902096535715811194680775590353792288923491034528060593608716034650627687045203757740090533325483655520705607099878304585347990051576682078809906562296855179829446444731633368288312655717322208678611818464571711890228899118203458544283573180746442848505215196328375593331066075452510874206274045114876807362519460203390433799657457970240459328928521696669004072971741474350566507829396944146803027028846572389846639288699881658580867460394351305922216318225229848449641973801574916317928346249210221157625006217104831328042794133623999426081083045864806580296983629468052055566191302640200985895876660789318733358269800555419752911318680358049413926508921279917451855134326025572626310504918289419012510355633293661081469125220839707365962693891205918083023284423837698597882650125037162138892707302204349173926176969996699502923751442811258940735754315311117712426105487158000053728620732421461549440513425548571037648218793866131281661779379386478344566972559138409464730895258628758204826209760119945413850786314100490067064410995464204441413918855608235430244462218186675781683449877782149147078878472386026723897824818201304309708457733884282226323766333945461751074495284854077412449106639570582121243910946002883494211337526466622943232876060833703438347817908098706527951426035039323520162960976931487263970869511978079753787514037393682710144610715554997793762566299748805562537802206426962663335940884503840756361467812294285439601618507079983340122137613978760224275408172613822044235448054232383692006018668631542833965886395337794869481520258570223436394987358890410117028246469568015700837752954900939181612047107436889177182940686369762832002029548689132367898470424180913294542626436680498824014466891366911241518893821033728414720213015953450914205695363101392364520609914207255905588819160762331241220162632138073501525189080033918847990553382767125376025858560055362845328174363876963178750647415395715958760632771807271848990880188471777908190189602638590641234229627496823924277924029136035989919613822454882996636912548680251533914009636358516367437118708350006326670320320084534545467004878318721266087289276497718488785279040582263556332411352133670223199826469689599351899439588371973012003767358003410747732816174204995121847718584291584541923823477802732776092242770282237080547659822029586340798740260319249111485775690245430330231125369602210085635150018268483571250482858991276512332008537797969919495827109805917691592200391098766508949744657468377906601763874972579523909485163992729175850913653760096307623423311724723211839708122048898507486193373625890606984385386761199634632762754643786180308249711199685281477552112503587378840594134001091348754580413922625894533407453042336164025544609551026397526088605558284722814600452394261512906266924255277724374548193557969483156110085040676178821596686945723118231009929065092697024125358742274149499145725899298009801278225237273871055189432539629626991058213358100833439867738366637531109392627599636619919625095673725358136763099167489423520365129864243526593888615084633986939252182927577321489790294126661342352574699291303745763578446077610797908569564487802726307847822946488685377961670562336273146192817689358891356658671775939492162979947438111942573306621712855361136541790843494852822712848274993948451749862006562692989167940728210353350067932050172284348233899361826471163193558422428741242921448331136648286316865789928363320754325191313636544820758851765773871859838249436280033480124775643571687613289933941418756896732633043847316523146029470931454696552967067897822242052336652273221118524205834228688245054980550650081066199343945923058800860222614175519108567773360882819225716827328851712304497695377850699075835428899131636781139151587582842445681866421685829974862636282389857958347962119427592497827382370088336156665752982110012122145227461657362593690197143528942359614814656612431101864073186181780513989761257851542315317867938245636472732864932818843881985141298172297421279957321150969558990583658562327734749369135053704228173486577334998321590375883954522441454685779408615782652384282338368634597918796089616663395103837668015780547589783630647323832200082795987902787893931958971360748979029616436893139825787488340186627897710097040366629625465484612394411368150684727481447759633994988090162825662843598724553103305433528826474725828367484483090133624137259812242739075602045778040084771099786563699404335671057221910902722378535215462390697931795973614178456377273045289237842242265844286263674846989118308975425534210349008043464269001021587383065214386939199306110507422747851126090979556015018268554991848312167686950314250095020566801294178395693765511819102136480701863584211168982549728916472940300954431556575241107396274720791551298516889633101593325239046470442211686820532077529897538924095745642894736735719337373407657205246534142306728510311365000525574206628154152430809974394737944624133207874964581632044339349870322559330521300584569656503003259800401155037047410393705955820163010029282955170484193310659409843644083532730034285356674294037217246176682381238661246561117257760008581578673619922704853335578850130925660750526617974714523787056247544941318993980881168151608120762576793744174308064261845121435391318882725673121057370660864163582740485294900126038238613600534869673331184250834247187063385588229277010215603868272682369569264705501560590965733447308820917272691889148213181213958857996062433174978248132633688169984223877000007685681896113128844046340048958254351188608730944785945727108528987509332154995878672572199266573462948264269879704765490840342759823415454945990838550125898641835193799009168358948832213028108361331940009543002141328136265103420092864554564310043359452097317698362393988546074623834214515695272528458198084460725719924522060676712194232968691387888805548975847505404981689520569431576893702976597096101681779844091826119553540207472372761593058789842273341287605759284281683516557280918802325219283845540010070707898831609759311767411002079582617706205678144118215278196679102981946449670285711729985405354713272983358965929675205925857317447182645072135323593993246035266388048596418416111558421474294693399994483161161281817596748613086702406763002622516640609959860860356779134837759788729743457323227448758483325693441089912144531379867226276620051072976076668524854593339450720600727846967029969454371409858663611455145699346350522042213374114071264830341468990378195476988192239424238694031412899251042132081072999155362017036632675787901744385308520270406896066408409423309019609843261909415285529537794788919090834567393203910944538955817023617974471663670179665612613321001293392418765228650491189262490971215286917971541053072208976021425682741326417461662859503099190503303991878201740662270887519956292444234493204265686956390064041914827970958995333003287887869113069287262549113065922619103987793856494171050612089280086318007263395375884853895729661997963621647365617314429975798670278321828560821391885283142439415590526366672091520871614341027682723914131785081304796021364001360426475279512855526860450735210453690424739903715315320603351138448944858573190453723296754342910777923349549290677694843333219291133724334556813211210127520033790506741427750352880050231484173314132640886044011780593785322868885241269248855850850369034347187661919519012344724594993489376854473793885103042049043045996795957909566196477218781548367392246750212800958752890707738704998139961747780238211515737474477190515205275011849028532346885806777971876027134652156636840646676301109086610588553918308567720297689180869586194551146590297366684828863515571058525421693730491095809698157045046939112331261109611080012019068813713768396126250620782093242048941516391085001459644216466466349836253548126851341929246968186810715505018210201681304498413900819663498122260800995341627420905532509525641528697802338219124113404535216434222009992427462834409014597459285122752247778228016695448733615527841304443099489609495640413605454816671480856923419545551991655368061473000698862985156088912933450184294127570549330883921149380645217582192138762611231509085153704480765094209775008108854796740911405904239876967964725373425941749783155549869746610060437402862135747103074659924058501743600419500456642108995692790841723469436291235995123610008178689577172212019748893928749235506464808651202778557693837868906906112929131142805329110596621470336581758910159866219568134823290351985850812422533574493545127664797497977127490922662110532634060765454638805314845324248554421740798852170327884809330609825948702087762705418979854969712789737417738290089640836707286980662228214139331791296850286054881867804242111736238617960661230016866576106024790847815367939550894644266774195278927754157838897920634718996321410126590968617803250289742255195991628010590960848033655285541466170590302820858276095884203733014069829905671265124832075654647109282415712570881886259249486529171765934486352105853834121088233048278467238223159724519720334488354486232450002957442001694598787673889260787616691766549394390591102153912125352147237354711561853198923623817657898237463365401375258630022013835871516786391246331568450467325460266187292766687322288147938480278577681340184387477522156299324779838988088505491199458903164174220292173119002974152415242989530513258253213659815987826717365098719450878308029493967344946850218288806997118450843815881388133378432805730865241453455192307574522403785829139070922614057881609897918534195605034726702251391001320715917224314109329138540744191229935142527710975201052914458036261989167217338479668397018987907134783726161109398028786490552685469059646392760617499695621632641147576714351755989165100872934416850295193584059727813960338522713722638857774238212092310554307535263865954285700233003622793275369547147088762650983887845344574936161630087789804066295111601153819075779456473688106385401908052660041582796660864424839415097374379504393683031148188734029315631182308218884363476249468185314370235618658172781385728045321912386051216627690336392863195689706097143950188422290811420936656555974108471582766323705377785389262648474720459389916202738272162736009449332387251247396230999688156641257767851260987816629569943384850137576229206081378385819281945067579561514385231237355470938885994600559821925519960539056666221512706535581154037631440227439202647978511925444477734932536292984705124925120043801401161252675133684610332893615439443604435812612679210900071359854305788561539788120828640451980237676208783438708153810573160829316484233557331512496356509266246283516298678670784168492943482637770197673807682561187871050340256519522451231676271524446611795728645404942629949113473820020901320128544067883204075104450025616118940357500971775235230525669331729674079276141522279717471790879703979421841142314407234342296540449657546285485511308472246325438032299297404743858134901745288844798626685482831545549699991468708145265235129583655584642626558101441188207709956730589741892353221247714089112318497937928320776882817552871257484175603552658049332313113878066253352410595764221527195795971114731311300489525756093207290341249440589506723627264443325555796997754369867525386912006742666929338018553486074512781774844178083786982358424581096174465199140523953788505523149663350366381697968121315165499654270270211996296063776148087196228109589753884790596666906114801600380650639476705577591384200590883484780069027701573177627703390873858746438918093711332012139432151575658858106810067271669356858771785369701696357442178794848035633798346710898707293669780952234302731577235233375607567091932508948100659699607669341325600374364234897444484754584154249257861947104073990849909604525171831325255713747383543916242546086568382422559313536752498248464534619868071200205289883844498005482003043884445503370462169262061401011053512365768399269331116299406028073150618682862458578576603616865163621829674111871452049089039087948716028006325839874225334922701100161500485050005350505142308629764117111247279682291790852654827915818597335610123315205652810747969153030121906603444037126649283065452300690240515629209462789908055365642434356468754311923209326316927009533426989952754681834633405541486407809878010004833467312426663624852843509523091856531024802478195460809520477278494180818958854270507825673657603291419298442525390797409870339804325066967576454073377019087199358121020970434180949006723714249216901059470399392889759938323765478671080148244936161344993347881286792728368114828657482187124576269908336408961533448044072856915300798175221260969925986700388892784216306425244263941007198042517759970234446720723405094824348669596229537290816254744510295412912105340094100368739640582352169234640924747743614350343427461070139984398658206733005736268572071914662153701469857370429331966571266640401469678326363045824318577439074876607252362577432253144532268152315145232355045914311415404343336726599861626282465429548864018731848104845174270811632491005413112088081763538209714555354592673063734963864457900326818307641591653162661941083551026645400248732786411361513508173034399153935915779192756331671587720842173390562858996094645031877851017968815120800227700172613292257411892224499144206722956602584070261499500605593051576138352516008983628368416831067506396116326987186502015896927704231052897064415229226993439172048775779454078715633804566727841569240020289194830931680624464230074691292330422135895130197834472333143006553538766176074670700376266279440781625534827972109853362598540139614499715095680871086676546802311727952230169130301108900194230794926560510530117499056340301456077795877863989989692200317324660511997639459861209192128262544909706824572084153105395341855834770794328923127077266644855852170555061471181385797250536641267608410707707908739047392192542694719052110045220445189362203731912751247338829038132872682247977515107103437349650494419329883992914091335036936121765342685322900325287236668373441811083938004302008181040168663554830371614060495994001680719113820964164730442245102457007753189649822839559739052196723071038736601584959771607550900620503549745977764154963717427662327056378663448177935929214485327715226940387306983460072369601271073145047563779778896049040245152000697498179868864765396263259126523244348978764700378833807633906118985248646920939721699194411030434412848155625531376521655957523636256327809488621575995356384366931485918761222623803613992574328064262414569482755443719637228490620588012129447454106470381084128747118091112126687254621061821397009046909220091929776106819581098251581122110519033067233613299487642834983860784623739471963954726756047738724072756449889207426891372807584514107015566645571659904437374741065349135648143475272883092632935722527708762879746204472217626498590287822448699730807994584984689237312783484749881902131842963958296722529324069446395507806652357718805921221750798790880499246094149313302559814678257784619327452667204205289308889945187997177029866389990435410227993533032147157581625477654627410949225339244621338135120633323400291928548542590945454879725919735125678272012787661480902381994412154197850332692488432804133030373574436991976992531210324648686713612243624703700891361608419999246286550988273732585887621917371387860813186172480613869225917481240291044264411347072267146343627728732948303623154291694562097602684282258810083190500842695269805927403482674095008083544211190891343175026808667858344993176641135290756132414022565209315492527446805160645315438110975437158401320956530674301201003917488801825349377874081746655069458189986228401296941313521457464969669734985287952387991007192900311967616442793812886386947547669121029434101514186982971341726954381890989373616743205810240232641706221910908875877931075215429296685232815885556195419115018474322906115882272140759452555884333724463061575449791815223112520716320784506901291516406625678752909143088361897220964363210392204796554304376615280705202563587441029898069770566117840935009336275053653767766179615243265436649788868577348314681435514820342599962331460214687534162713929570969413012239325870489477233053791542996201440401782102873840394949940284094234934922993295450492865080254724874573792546231874799161405642407476974238933053789102071101497217935657159930534003790553515182526710787501530795227960792828779450536222955355893784269464174703814227609613891655426813940684512046351637002127832170145586375466700143281156732270979204425748613026260277099333232409686822814598454325806248190021698620004507259110668738436413216317403933374246893333232323903340522908326235755061175081183947146933907271720693180443370214881272131674634010384163197201345553615521849589560628098842415318154373236879258222083099218683786896620784618996155756978925700968047085423864022772507168422270749134054051166185041263350020489369582674154790878937909414441819742600685661791280825492286634720192677166775773509408388961262244470107411595755811705801693202104650993301591809685302465821077049521538709842618690407341344788485502021065356693721782288254672188089846279219713298665447325776252534205398917490083567044203743083442367150270849186332598314992104310389532940007660558328167553044411314403742081972306354888418540622595971301660450390932455745171959941246051551630297052188328070412886928266147587573660430647053580433716267023007732012868361532960323316329332582328604165818421862977975977035918229123132293447961112683886716912525760100442174455988245674403195998000727697183692212219605291376750462994832397890477654622240188981584907603844995819924238434580102299497931692646107980586299646364940063293616513134203702363610589910707643088412373115999798912033429307703975192386769589334058405787594114656648010397020225853995362269131288597301151783581216097494197632951727759607175981775225765643498694520849197786034808951810240096174982681948901213072828996219740768032861880802524475858048034397814242722590158849197985654474747179735901638733496766141661262878413083927930931317552016562595831489221571592429716061816986494245905234964084262807656756633490338821616515876897694030837073856682048706157660361507767912522861072552022410300047939841798619023970560639794932568679457875650696256065203643932368967030157130318542016847661160340914857530542591987126062087955715049123175441753353782673431917479313134127797442412302795696264723755423054552030648431135061148589314429624761883317714085777843697798461683686621601761173609013803960975948900512780328023227402064762004760334896873878417382087390910785380371271045199163803036257631168208287878709287463864119866871379738888163137030171445762698113434130553201475171882141528370691655266467765692353732091344685423445076448596895321827135375999913580767170276286325149550237457868018253393863950220170239289783135470570545363843875996747685977575069549100222371076387333638167235068150536124909807721346146685949425747796022989265470047314412430279618102985230996171893831068192343747680795731551389577087918036711434431742751701873493048208569847702821348931998248798075613702395431662537209403509682540851944885213566868230743400454380199722084006943459392136182047214528837728013366055396125159976553190893896759264301827342724259282590726252547991909734238907911927646852050419851372703845369257317237593521271500473825844012003474354495847651997123416410303380285537863455886028982115785059004957809921138310756837457138846184114186205725695661977267981971047269581745006527094156656549314603888725956968522284361202960662566434512285660510749793824754699058704171970891482122036120161202090134242221212204443311729500613222880103605869993939471681340468587231416289697818677080401887755065200557515406225118752456661217579802241136908445556954173962602665549324469509397261148244385789644917406873734855911050721028370169098330719146910701204955453797021136298181434907038590175484638421358513326870134063420685214856359888006939611263510266602554197888683048894725802771573819881065877967553040547532165986232063450260415916309100291991650938998008089610391038581449249409281198602437265177436211863978149343149461712220242329406738019934455415306114573191872363154652627896758372185547211829983651876968544012002944982629240523647815822756586929479837952850994238818779584793575193020544033118402406809976187489064695356048755608213755113236226285581712387656748325091579874351608005142856566977864709288079783224563173259623842296455049546032421668100770816217939851951766482716375033204926216721618268658607096521921160670578849510004007406762262421941743452804459802377000924223975480238080797061882578659121956433338872492069011954669101510306597827704132063193427250673272019337710207749853311005273990922777320439294993988008577708063158262307290969308934317635676472507759056236600561703420090813011662879720086979797293790308371604490973231311800359619128592789002229711846188549094536075557234244934473340195296426342060270381038965599358683589306308689388365348374510831987166758268378340863931369012844812984045907173456615564417561025880208551553135843289552655423176050258912157218463897010387041265626086206654696737334295611209384553535953348658527634254463996268711228619342802844376949155420324838153916447809274474060152438161381680056344209546575847477955441691827779554747461866775944512678214684203713278265552805825265662692857707158852995184265315999634030874586992309384921134966401099542021532417048626844157579933808094331570816956677253291926040321245748636017034707025745293764800122494142310495363180419046205526989451753239638716094956241724532510617602982166402376791664278544329375638950881836634274301552521761505900385712933976183544730175606528202889866525280951212255328770766902865320993838086317236666125769260980210523580862324465570494574767012149802935522248313827737910187740310117225315901085367216680815282496911300027677451469158835364449074595984572108720292461678038995408700604244589625800294265980256865389130922873223025878100554832033924461006267337779868936716134541541130940803338482454279985160793442909436140949880994473870163366087327464974462567412766883797683695687769233675058475006527634334173522346024711296155740760418245330908523697301896700884143956883158772015855172060804734782912024346714139083652672447610385912048749743357973000677188276479619116121623442845367158029073715961586898772397986339913470825641203076565130695487426966954510477789669249185774569093760747310925727930816091433857522186481956513572951681435894055894194878593354747793002427660137187374186602583792048638687964567590915522962029812510558450368218700623038716972483080076394211419270477146963523035672246419325298381472978739643223866811279668867336742439442183089200360992851876442837832030799980929256420777443196229286248818494260432274459638127984373877131277448353457979512546702019426174245230826528069124212197615570069468723256676583267847220818279207064850329424373516372188581167185166367982520454874603550442484484231357777672390029842633842408786615684060442359380120239454027875020669229046031831514714138952978643351795347025214351488920851674833221009267098638200581234552084759664401672775485114354300901988851667463359097223018880875858299943206820879926957149361890271280375650073669285946764305103078015762720237884378442976367257831509269353357748079053074118702141890358040249334293780856002732443240500893446955276807240717068957688718651549662287221400160889603467924688569074094899830504567925251262450951079732854272364546138872993647953590564940928127268156530719778155080305343693446778033586031224391420373827065858678478417330536700347915606138597617558388759487213007877446766257083187272044450027682350212218984578656320992421243039902320226304408361640645368302318245124790591470073032830596093450322815692760983906369870725045559403230267368884312200395312309388761799213346272798719246174990393407670603514581392395329255563028309657519913551583585573523391070459167527448936733209692600987525026203710705234442701688528600479880333676491271959329262361555296261799275974445911392936185068153295878199598168835709766824970630368236035682656066346350038570057722967395417209679469638354080122214999857960959029521548153634292185471645541597111698679383810284047944475059719995809987628601550088929216535910956377533521341408500074663147424962952186140124930240272116916891821419488631092904846691734298384189815439657942070960519165450313496047300522369895475907095422953287856374370495834658928431142602483063705444276170343611678828116181564793076268720081249916902012651847021362604544349790005843256227707464752089287730977399824555487439240211301837437635691455207489875306428187924900603851723796944305224075743889169313219445401800420633023170712466299190194313633832119563196486602882657032002694649660364682226551200198314151013488623431164356726050321174341822222736377032112677754674049129462990090717207165756903653488978500742657088564730455924644258269872336824105251969702411326859494547221774911142811532854800476288525906101949293185258642280418384194197369790374930219170634622916932061284183702867453329279251445478158464528023248183955793411367973248974165241339721015303387600649102244435498248591656860301186554023492362643045951726849828305618148331259340493612131407464024583646821893418762042502038977114583496303543832903874927568434103847718471722498185932550272537722252177642686238295204700789397522604454358400509659965881941993245258747607086321303596447134883784273363194182244742172775701110010385208423585303967715759051808489355741073675649165431670531202461076495852360999973325833063116799564097271538928032435628881773467261669998262290075157957638034924322797965227017916377432299740659381082285649159578902512141225498491562329515981055245483496979971199424712208761784748945388707273304584720121669838020098039452262402272201358406250225139340693439208354641188372776916567416129482515023200777400904980957251673966186829643709146344190746383203147856891606651777426497915323054906945331491349456229328608400681828995777939015169542343925484924470992547215993120811333000373953848500095041384858993102830124006840786483283474185460490568015560112816790861971178219564283796962824794967289643217330564651924577330711748415578071476842676611804781421609800888108342946009069668148477528176317771175832515374546428026540054375200685761740522113496717922385776086771824802813176527731277556325523264290196232986075542583493515101047984827561972154701966900142147961051244941946936792379364058120313124738172346803872792241242670733827914514564469750516222430523432348761677045913913145449360134878209425041489313237996905692856286260443972042492652973319640216950002398372085362763546658871635588953245461064300070413697252679342199444984811636960438212545720886316134493880633042193551454775800043755911674421079213270835305943673801400533749045227998944606062658139082507677375010008072097836677732251168627353268971999230168516125956956243350813559754095508386948205731568038056549289331953520346659111301963775793646306216392890230871433147533242743170576068758615862467543031324396775592516235967794201803428659534347520519131068615882199150532600934085381346461973859499779945357392009998298174986319281627347522765153665493104745208560957494897746565414188342029581729414382837029574429725084820435136097655766285397933300814649894970001110746824272694089487959246621351569694596981423506936504480521382378284984842426965223833963688076431111654208416360837373802787105123034268457560262038712819064663230384287596737883251965921331340714926460307723974247299094385336132782376353478075876768562159975626813539957778408987637707405020165207715198729975703202487307917440381483116180173852986036786799788594610950023482038032949831117175949107273297721697280884233740435481777050243968076818763156200276887934115459867881816139807031956150884059738178430211711664913951755603231706910073251632610934514729242692781368126893537582940478996184841832964465930573324872141698238343188345813386513767467205989489656034245267399776661298733992164408872482187846109081759029001306789161151423369785358482402247842477660043439708480284067426300090218753800502780424803501517015087386858788279657630130941057499386288642753267146477083376901764012543304813254621044252088992067296678460489099686595540286653538745751255805916209406761496881648283974959868685586789981186784156437076810135292832133759671275810203799716132437386208641892358001983697855505086128975421400537580688465314343601208702959276109212176081699316314085858890041219958289889153834394939384893949972511117028199377492470378475877546569901887245994326138980438391792766170292900837129297753201606792375158320466356015681068237534853101312733031817935908560837642617301209965780704098515375372500297169068148624787346638128762404938304541185691278335406724967801004513159673099865148837603252662344229747083027553577176577468311547352976844861770404829907262215934032824883402498065578288384924087440425285202029625270381077542583451593396543062025791195662173534340055462373584984590497565830026712050697784209097554652007842756740073013116424961277738677029772787136578717604013177591236221476617444692930620645670493312446535234794347056920151313148910922139669400444558180136026070712504764062011690158746706196126549721334852166173874526536129687377416079713219630398364730664340141605976107729023536887562635371412806369103414709224304745723876082227296521126117658607493851312308565359412075086061369655321881740048350854593068545486438344506484785480287839616341412779701791402067616283919794743096313548668201338976101117903776575361377746881663163830502432535794638988489646787677774912448439229254013017910322793220701659392204925875966839338698636437940600800369848508068104024565221873200605096273105816564942260467261442607727829887123466714049434775155743672888581971272934945311794202968866382911968122136771139760537901264092248778861711698314246364399009077904842704017063285767177686207094259939662911974459361132585818804620920992591917199431714970268574871350459467977659983138151788753073286850201387730692359142649470196678083750205347882321475725977178664153641823758287364423887868158225217789452323079934503327453140107656395340834997267704022023782296383933003975286991108273130110526338080087380464967870393383561845246012804422272475867333620367481438499370683973054753667503600732087371277594209131485743048306875295461351291582657191029757902945598560988023666391963808827258711579642406387868915620492141813278076215137140203644142998882986117161988809756179006081778543559799670820783225801129656785250300243183525431940703582057471210448420487492860328854497533008651419528728104974653396854854708600845315257950942132774513491632814897139623871082777551392278058213040718515474537957735450658559791036219582909004173908813547635027057940313249994823530275352880032061148442469573298812032981834680396512508141970039959692673771178253953456464647015601569997954649048124978304364293487827060820971063855071693448322946677619070800838229606480003343957777657832199316803093567365448216912629652106795360079072156362188833970671531242723366619322705847521102550263373464857958644926064548942305844714098666860953689855237883091741449745502705253204727793728242407965886376191059587107526021126778520455918682606016740748113555898565877351877319396121364554319682519659246835397183096828712302017028381194079423329594338746037603230057616569156516653354980271605944392593795364703685012234644595239240424332286740672173449869400062275466298847909539727116541922602569537581203623773468356707805180133310342925452689550035481040062411855607058172920977253520197429377031480401294805544488893555746969845268236893167804866967905868343246688454566313861774517388429214666697679817349250614437599340202455900515466570442120426059793437285164113102239211782085295005741902161040834420317161368165144118864701949282114616179795662574058772811594343443458601218183847618547747693878422174500824677145709147079157895030731167098851668749326839312140383639999728530473577968151385214870071104063300557934057836305898817950378849523613084300508295726367873259749962078343619922263630001398551695077977886948940194767618301840163379080065834152070175394416600384381510019795862987755619870151789607848610012940775102482367872305712942368260050465368262526034080735476230420603194285353806103930539106177890632233270224526464938547905334572628324570274534229836595508881858169054882817204240459442427799891284955110207432379441130759766469928986943435438470973606474624319634931032726679938341945046019713524662630224028586611095273932940418681918121079929877012456259278186022612587235373253394462998593547443560650846294192929091479016421742952898368365750078092555358764351778629568901256706227202087852051533520674859955801709838828372666244438631097073091461795552264885574686200346202070090725409870599356353051793661919752948852001876280401610951077187514232026778831863382098997034680006555178497045689201166042083087365962311619732624319183501245532221363834892427300190227831464532861723527299264393278323350779326481432984616796605913013450907182039851993728392818680488448725832020366496077261211057225879858452556107587658128183502299473788179286361787300741715469760694476149172214593907065741645685277982547452347329572271197372680267133179920788840609138078125172834340618390675946947402887721810015834033066450111896738390390605754388959099955643700980685476542808366071266431773371087988214313465706353608814526859038018889351979818974338043388939053495871325538818086779798125813486686698409512788497692780075085499391393788939954383237020558194149047559588143419846051292409350060120882580320791337930403304664790766329075132024686034414464225047323423734207098467201283799757952581072022202690178010724885420512457966924284363805767532000953355281719213304968090603005159052526076638418914136896098932361640488414100214682195114894797833054905519531606363033050459387481686832653259823844996940242401054114898071172006024424562894904739269373294696610012831916019479766528240174313730434009650173214615681006431519787787840277737092162586242805231080689406135728172850250935723800267005109643448002644950976441507152472089871595943561897628816019056994866356893948969144186158430138852396591699329778176486240560845013339487853008050093076801134879953029528272790914519063506333309363822696897343761500007753134986576730357290815596494285928671074377389959640627224068107842819802150561988517042888574646748833813419225515057625255275496071368667501124562923818785657346781616712664951082727399516509779390641246406771422181309222280943023990436226178264841571690838486967709132859726428879949829891111505051738411657150591110484966684699911437911677472221539646510326106086694480194301659594853259333569332379839115571344909944827600220025985207069629716852065799636188059163546748897745047231870573140553847513018749644167458645455959149741260502668875141899040489577472400394671239779202955768064878179969406220366115451517531794458549254094217237943169890553699855788686504375136267581641067214375410111441125135791756418015811671660115630125923353692652554008526022694500757610674499851925619991258063551773251460094327735947115972310056071605684212263105116691284462413937237951620297642342732362859870724262096425268324854824856031612268307069696146674734019340423222413141041677013691983421858970243072686280185034400294384605717432599972727901745038602033201955624444023365299628120726811647696391369330742393365341107309312503864483004215109861597134943720384590301840165734332948571392944157117102247373121994774508651168150669253344859056403538840477966852896523796817584061295110071037696272309902089827936774632460181856781804559138453944518218580488863509276631863597562719808800890923139166371634908417649310810985669403783414617298575026738316778905039808906111992218435117404292591082262005470452207208748822423706393361968702423684027910518935416274779355657903368815039759168441951603858116068719893564603700298758500108644693372176574766430462506668053756090479013186073304522236544501958412867234954714550418283496509446307905988384246334075793145264380303708214544978734899795325068225997826894928376911854737945193131509578892744699821454917824866280641559988348272701664544143497374942794585040685849592533919558443516287800907581390998941346031393488577855210523570314663008864982528305839905560021371996959430849351305350018625170143779214738249508007431236316737054256569034974779163475416667956121134647672266291097674515380601877312548895193909288750395667045958932496028788943664374094044978621650681249806113016249231211470319184476431988037229311577943603297781060758041394791681556333515133949142815071573687793614167933284367661101236369509043980088943963026958127881231352872456372587378280616757874040608077906161062685300142345362645224738254331922346107107346837139890115368333129864949181451729475112801818376896430128367812642397991700061701148608812714701947717651749061988663127853366539509110299050130281164948761421235815216527420821965707993404667135631825501313896842802940994074495189750285573830775753510780881975506660121574527574950276538278330816016644852275069281948350034302713477187989101476639431960372772183863480995598457538797632012883194792892274107090641719101669339490388254523445025677790871375508515713340508500076093183439088704237945934822770131051355487536514723528439834370831234125600626656500247298082327446437261928020683226894443092998925444305673197304573886963186455762194934603283133108941906057467630405805668443255445317393144145353940087365869859768092445951674983789069790167612744667005554372151611118858729674227884239433987843659794988862301941633449466335314261158700757633931939888373741502569319878946027670715328266987976896615085470524806065377581675467372320348687084352948822111902513664218398857302892288799678908176241468384364515168531138330816040402944000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
27000! 30576942850166619881711418053411513449140691074560298429692253898758267005616878537059875947806384898752081603227953802041714654416250569690044812918833844937276957380997195419536967812893230190458690998818217240881199122979455004393984198209580264364640486133671401889520950901119035592265326164169966863005266712994347330750206313154206102078865716426958766461367189534385139055469946255677410456758714151510931044520563668286503854266337794740509243855043938319637066472291356509140956666161925145912171575208035568100112216104059189337001783106247248065825699252674016529662741857778087850437587939474166470528644895946695186327609131085797998644011761340813943139471706555870411694664873921520703479346341628098573341449707868936716144510737807544513224820380932079601594393020139206876919421915206065104286794015165916215250357948594777191886229662626401913844360427555647787769910523849063635151398292748731836152843022103728765079027217834609467407309308790732060961824866080328228482855378424022034206452461505473915270421507137999728836880005463366355087529795829779800707832360743451821466223696012156147597801153331746621152625873958198823389424711892087326475045989288545999750685237427966597648111251772732993687935855931928056178498547067073718131330654255533589625743310318969124335679019611942325150052389407400682123020561930621416327549426920270382492546320951119751380448684454712286252946987141372088229906813961222241366061300523928807465862653952447575750697361511927954645055654789277424507603809264334653416817052859577661199176424585128688802814078403032320404857282341904663873449375110893933131562566212544521769260742158566910549655035979754748615180566797041406175618698646394703676979789524698109531821912105669231553072788873513402926791749521230248838427425058228192954507899100804557352371703785324648106445289365849022185497388003665866904155407211570047810625438318505434294821414986461945697943033225537798058458191810508810254907712665123043660525309093004762904540914042034855130347768863146554927146989801353377943775442728021325781186403066686474103927988056497277656895330502674610458139387368489830157333314932918372328378036608446572413131461225109034100984851727539997991351442192757231517177235146801398370542472341013849474648073444695874591986947833408178162449568545480552664169377728150958028902357825815501888283419613183528869948765076642923804365029398334575346573467726667341820698271955128711411520012353791889655485396412586267898649342908363184946761747907662551275296727900471804894095794391045104015166386155576349194238478700066926596851714433718905085074929122039366334750921926386226280161882162627095610466598679226641224306206648621248677336176865110106585727956956527831334415491864360773832575007579918396716153513070484124102897133725277442219475560237242419910055949267233402528969035199450792365775398185505134765159739842691679891768316880788395649601095837426978417626208023347008916488182239785028661647025866674683320635571194613074196555056917587795293930969911508140766789618175747341014789935785860827263162435928928672739760494488082355291667342490996547811445361518666467512211741079904367663209173538383505940544311390961012795428120531648799962295435322422706307351010019971991597126204043267560230064397364462529038468760252542927640652865788454480606559850019177109873960919981479129519978637453868226585714895796015981500983474126723706281301060544380956852870325232608944372909014103261531511947883094181019823414456280382484768649176951842582694264757339511777877727176782186410328970014408982657255152877494522621636532965333333669336394661881582033860711525889538449754228913733832772835762215814737785726792928109907433066613651759354434225203077274794383121508437160173526291720133463682875623763785053439093067963318212830631976335803626682668688152846111659670643616319282059168209876853634170374760697256702685949428483459921117955249683758475091353924913061823973301726339093990103514460014029563681319923070764673668762625585647336476927631633891236795847769297085760074141728062299406825831464353332492236192093750858337016303517157433925838928420409084596876749881241130698171571573324397568784505237246794462781395826035377313870786658485097476591269878828989670274085921492861723113725008872362045153992481280770898053894056138470068057261234791369566447084567912232492802336488212465875125782193130063174795382719990288403054533567654203758724175998862230098721621327703371161282793675244973439634273575156157072879037888756463290746412796637678227744249508677107598124073117537139500361966076218131731239697004938912207366481799941968019288498675137412734098616813917324204956091017234224175999573431117622447978670138332758741726644513710618140205165798225210869412795544695347286494172825068964740394043624544639728790316508565914625073982365146841053785697195581587677206758859791804836460650641823654841423960516928037849854307422194614751765503066560067443868729641150407033019523555994628612775334978652557412707676046571292604803292649884279498322309556325170226235096705828744718921075687530593930525837674077959168712560017774101311032460658602146982518264289403414276390496730830502618345748435812812676219906392998894056982827558526188286176327588683119290105337485088713960070459861274930241934065178712908825455555601539715153886126447294524064939897339110734276289470285822643919132246374135223624370320316433625731376309452659018216720908957844056825914286849392948448263325380158003385840561369562044618667264713148001796550293451527330578445711245930688590872751280005297838000893795541460934051057131631054843349992319462945656096046931828077050183651239227171745119995032796679997178839591190793490889683576698579627496412582907141028215610168427996996686424319035266331640663423479680311177333130342098622809910284495483444567438549463358262521644206230535981490374728728474679329675673154788976456251629794541576400116243696252616795241174610785597971037458899934065147804668102138355547444909889002619811123486820211871515059354363014951301861099568968931724786376213716766666442941391064774912352571338955276433345605033325903334368495234802094424769998777529798167568918945614942565818354174017434420370600567141993704651841798472053236353385236062945803875137993498767484855998177506850077617594594008958844911294583768366610317389310578020327964036317201401051781755775258417079459846858928473497322683258666431250684286524217346739461925728213520009663643774378547705536758905563997310837049492349182328455136289220389035973363770748099601987650534468962395914152108167316646472989026251263913508764669461043537881346096773532945871092826601178651507459918673114662241577066671889514411410932914297340254016422135321553326442122233038256528785290515089816659698006235461165432358557894855523854067537348515319290403562802813231570506914920481451441587338512355928984171251603317782173872860709607534612620734942425464692757398927644634781810199857218077389105578661814592288042839920023229992701484881276700855812836093034242595281418705093897727828235698198692387447877055357898071514982045244618448992591945676812928181590953275619764910009393151338921849539589515358669775346953577549373794281932283601707146681415537592375212717957720557393166017564727821949606936655447242509686492944979668062526810757398516210520458775395194348257191440543412924642117000685622472066815379329197989801268166335853938227829679363898727228082787818293135038974450980447476113666475618127175566786666441716800616848372099785958191096805236493607877495631770638673033547847031104680456481019058008765287953864153767909229961911041163631537884708176641645725617777913416604187705805241607523814168196978715486465596127844236341865566111660290862457997693571092918182938867778530675979677780611398153511567453843380309534849753925156853162441881295702876387457168236828973469216568155489842825487210663958303681569880969967949474713762526301280338310655637792257339077144204358195737208394356867772449534001789925484787800128390606401001114979542014914441281616869228141488435664377817293703031683013848953644343703444894716513548076529194627876087777282307671056763593139742245634040880134316268182435360936858527986342983158576051516253909858469168005045936008489640088269981918135050557191035047621862209340332375143674156587058258550610410539547043065175015735008401858924829832430396971290471450395136583386245404367711825339674523633670790959170152921452246012664083942606168418106342449093986163214218456842230560863647677425332925590409261098557075953160300621443208162194450795533291358342560633180809162981937251194998024496741343404593852475434691787353759772230770500192783386108152826658247474794809014416217609056728041913957926700452479490592011548437874988800025139680067833065924516034407005645003981023589195746215512058619099482909042148055625441993832911214336233318005959150493645277965755030522396774287149915685153398196908919082608693281969781754912594421396920874940409420357331002087903279616712012931624777451294721461392451832838094196845970186413254207107436666243331537209998473844482784595734090535812001593727914625716572414299543905607886820801694088277058956640210898460850297857809624670605369824915211798736273143752207320377372704276393652862282500402330936009961442590162996819052885923657349617226297053361637236182636459648052317250989831271470429630336978245999166692041307090260785497286260573975642312711075480644409832589670545894486360243633614205350319212471735327839507888725104193382441990163779829550800199026604407082337704123893698792146887455380761342308522798682178316957073466313406528984680850540285703085172697099699637143007789241004697628942947815272405087294657213844255084097386411542620476915788078347765079355723042824829551767711418669833194223597524476948058488467078505912769641864029990204325459049371971881632308805304529094990939519556421729526337918822335531393628835604103123726922735985643539892329893805571480620646606435576296114881448255726469257290986194841323345607119085310530638020620153041339365429070006018056683664114062964266615148081263399888678318941672162459491276627465826941010188372019113006753508660402424947454765570352246637819595946486105769104019318149097709833015717379459360437899707607949774506285299352738836855443119278671577493460305477623585981673218891738215150405479706544952702434732446347209935142414005404151435927665476616940743639400771729336814789305085306909489195700055424274891013451118438429454179562143561853893482678166061758728381805983874488675373511892565695407721357091528130052835701733183323025785959235478209374117529413741633815238136244398388231279974882600726984390239597119049905379338187326626041699592761848027935304262580165187312230575485374409526675862970734217182646463214374452505066808898991151703168010233284514513575584492349811429971601864633415446713843617850813569064308319317252091143710598213899008262262052328830290816017982459408248929442948766444020428724521084984678883938141261298374593889264822356277627546309410788459825269674671048540476945526492517666623595445828312809930109001191505028083297117621666668674533460120060903298333441790205672192076784050878838235547464547653223102570745104175947423505129557367337495523108026510541188113249773060744629621251144438354593534485044656820330757814197956922404803402351824656477972367496345085824636369252668858545389182125428352495393463715679515518355405185401270276209906110757120444946874078246164834871418468343894880050122789982771282041937926337580189482213776803022342390121292145449970517730873417984687651988492565486878887169631644139504482567905563288659937013102612044095627362156248678786025000534207603195221407557518473026281171529989848833174455060509815152035980804098805921168348266675289314429469083746722894456638743060348100132680276755273601733887394616203421704100149259984777662947647047365209791994477107592369916640054553916225740836786119215351777864159048198953540370296325769339225219445357627915993959158651000591253051969197608231855203814176146878627026172207325953519860772770959699527527082123870368637017132986921621015307490412051671041294449802418799156051875872620239280648490454316150600692432517650864494870419375798119000004214179396481940112272731863872088211712252580430914277298824234003576850354260848551756313344204365637963239178804975159406458691069365910956629592410999931593685198744103344167831299352713365402859781216938847185392508628182770713512651455195304587161309266032148112074716557187389239342473099735389431242682249499132007768761711947140852103926580686328458795112307631311292350219534438239958278256036591275603513771915147772822993715975888362627492241195839956522505874058653940825391423174909009386981000104160388816316362261206703864090091186978386283010977015269578729873565741807873624632396643006800696156544295800661139012106259730850408350229627352362380491812318526174130963277573312450537187798440238137564861627015757846306913046443503610000797633484385146252725595441245987357381739259821806103069815644910494328942538863477619249338887748065768330471379738286229904480585559597611715570445353879235176850647561843975365254114929858694518739531109541314503502349388147874197778958158557440139315542475465027510967122454750638272084430087258171683526483449459510841173626372102177209103324431334607953249091563143236048222983868024114402933342770365348028172161022875567549515074661624798774475460423584833698880897095204202468877300091605755435538589320341499369902518560968546940309564498889377831628323067255367310323332201678880586703271553569139297248878081657872999639928590204554267503641199186552106388144002185582786983013589966589149279973272304371717158229018737260037505986001242563144615516945286281032347964782733518455961112268296134257209566453763825751799266225638413109356646240016975089905577318841465652995618088382464604499988637998621062930512816088813247764133958997525509367238210958695727249415605601879911780159410095286669425737969322034040168945760553047207200538077333340654030180584631691276886845467985385978997148342898634324895039912839096287599153727842585293992691302824532536933060966470683510676512675509847063622231954672138758176371135035503609197316779056681892724636202006997702818346497879454636184186170415243281192610839452760868358039481953148137784350061051348480535548305031554078437975455802882876629434212102773968626913713852391661757923423255859482295335858011568574138236652489830920815996471796903370239613535107633836261421606146024106070722555867640475039810578182350174619509659520439038103219442423583633699537614894463659398848826656104745458669432407200243041089554468773352623101603920880184575853833891560011884478253777310548532045561165020513276632947209252291398238321170889487026095104676027942810745045035616574593173442813916897367579855161690297719404102371419741666347458118490872053697127008786214560790979657543448603740814439317182566102227711182666973445739265901638062762149911630260162928921255948350320160021945461302879496784324128079021588591337166100327422242553556864690392041875601264786580741256456993764911294778104698062572309152239199686855036814669378031902339783087299915315350088793513086778450601047386824193308675830498360254625119199273102191524311732784937309437512669239624134178337542692141007871857946319339760734728965029039518751853380828319133952801005334859930509373410047933510981612527650554040570303760657097033758447050473898225779298241294115475860946879657473517427654580013082188279924168300250834005724165318858019420958358772297599250094489212986751835697022377489594210219944991054003104014667828708883351902900060795435448747245954341541066492910295093514747024116127342624891484523498796052885926031327764471999600329420128508368185162581457983549532215744164864342447376523412553467978351254378628004812908249326683210770836914136369012768212186680340861210713960824320627849867346092901111588887856684156644633944466162915507709814792537684841800202963920773879664589320725345495272713168704419684681944381979146078348595052875506711965571715661239222728550592180262799496047340352218727662533885574617620735051865359340001856211479152534236173555553702395492167759594715516252720847410890296728569337404078183467595236489423948075888305061662380212741836307350184630578031396454211184986536755716595982897569921680660542118454995118953663364527059314800115861512780382261529223406479455606992742751400415510783153815351310707899707255089374501804823022387575143626343123413898786617500368905189563262588385260527786828156818489036377662907995595480726047926885307512546819866081872466753970800957119990443482717430273946119511443514296038610418742231171718826682663239903722107366147358020684301361257590670200237359149966947870464195557266224527401203241849522554072937891889468004478858598803898615544878901882753252545191260128617995403602241339803585837680938785080839023713611015559790283015131538189142159244820028255987729892892440055366230008359611179097566779391536255109726282492233286097190478053644193929458789118209013834879211403548272945103869572398965815614538938090738440541641354010384647659632161619841206306554153404895153541602391791923839430497373637739442441148813697632604760788521919733904744595636541404531053519973580434594532004994377536958091755473342570741699968214483387615307049679398071847502049725059443195429671966448437908799256398133999564194668015299049954661614171070256842166087580608391459556599165430451753727359125353658887904271192166923822484365574778206107377973521558660561253964789096302948605852110611935857551094733133458882448171768309574098526510554302775711810192542806380846956541094735264358736696027781942042605258594950031253854239587909047408658351394964930327295716916926582004078493282992069619059454793622527919871787181474370873918947896640064322026364911145744043898501756162751551516368708894774705474193976027959258668300566321803067257244408368047266060940945079483763409302659155766155086397709949735695541525755869589207931009522298486457056849730030797300198985926915234746226372463005133585135393250650677021423575000484099336277918879784757912730035875012373730367316604511471295675147951015348039281573173880437470992352492317358688833149862444745661872114117542880635958912900192166381437341948721240953589579014848431583809711277886516362545650672303212183818495331286156748719177296730331419760487246561109312410600571638287683406561532397500483208010532133356023796560828615789469852845954106458798230867641765956348875978573950940349246862214202551038505371581302847264450589724921036013280605616074246136361362071035844299726460023161949616009809580276533183333657504002256343771517243348860688273430887613982203803347870123787968035206051557199139697246040972336185257516196416508932854605233480924458556846139220929208023766605867793110769446443606443864572179407492121275154738296245905616947108150326376697109910279682505822611321651060609886316531502949656893538302439353190382105321611362027383631776383928653585298698834343438794040232550968857280512340913719836177750879907415208057106545961550951924102605723063042995550649910638804819257866884640979600955524696876838186893230871869762533678492504890638426990607826718251543647512995849439707165820115243479472771451927696618505998254072360330818916556784250855009747735412159275228925892267952803688963883639370701238374187912729767898466338727726472923535572425434755955599654845807742271412019173239729088865906453866675428575467850803675670197818174463788444902480961326175651445465626897159749680480134869794025990924993747409814809125865914813953292990543900592867659365397868068755043356452649633382344881443600378762618535685508749665754336805682905150456920605355852682638958433590610825601077114966169108820959418808271162841172836226557815149043327472499267653097225565816048706587858989440123153258257983541001479750227378331238831325889059396595380033509902444443794844163486119449967481034814090953085042908727934149298437901682391212446388410119132275380135313608365804482384683323778038020715027500424096419501571371874597059079976061188026743425844547212124507005084680304214045760801449969675504258356092286463317289571262367279269409674968159605318794818082598007852481063874642318619723329413023698016562543683811395163993250776014373895807824568695035569737482522200722624428701992264367591767576327915800663593287476678032098846140178933655819283301458222665279541264411917412950524950856360764474083466331302896096852742450307137096778116278498671437304223047721304952704424573925585520421448113490332817116905907744134643890147868695566062696149133505632381323464810569796218728781334261404138992144806569190606468283989068803034088799785833974359903448880842365917923436286753961872679535480262882919448805658653577430670742226665985677997772623894784674546148187767617563897422546655090523912037324636665184213191690561999506373708237358945543027575212213546996079240574116117048040287641619139036441954665030694588244637694378345761100199072059208383712853387376929758852497712972631677154512504631285202538026639765466633159005079908249902739163240777971603377691344977783136345705593504379768994198761863011291598025452095961357520975438446415693727945658237042177508091905573953598475280317216910754396036304699488244621754260181097017043147112248129234021892975434489456260104264780267492891570398219200252110922007371983780541656668938629653706977471193908601383625177478069972125870931062362470358431309712765981699609074315478545595822772993211729443967513753916425915150140968817510864889329233875530100397513141945939092449055268486846429839825561403831954679462434727139022549564112942011987442169789417789247736943738987172904733230276181739801111599809530420114031631417788234571268476007901310577130137924670432000548091074046478861514244647562829100347730204895031718841557014049808386748085180976429797576741510896727582234900459318934594753992681548965677941841851580262685633867381023023791758355157898230818766559253553558953523807785303262445186183258054676081088238982107459438705620732330393660102758585923928446340722350998713432008106739422253366801595726932556220541325959889024689862604916887120251796462640416874239650497001370637454623122919138509568069754825797390806135873991954816413736121884857711615685519881271262209246422381474517596020780059816277415269353184551227776465520384754912982353069842696198207526735933239778611820219752549201503283894921277028989955911432528930243638009117318198499981330022429265078623059395125707084867349846133718588118679973191175443424393732430619118352664318322589552173339261168364513796061367457648038665254623698849354488768271947583685525553462384107405206243152016899061694120395415905146677717006234824681197885986590740447102471080851383364258516416312128346521293373827103218045910988130547505822479689390571550031105929063829490453492911323232932076589712419903850230778285422808297090226614165999634528004515383490791754458538586042557275361313537825583498624251199840550450504157716355160321337613693412823216507750623870265651082606931374349269725418522706309108069804513816874357130433449061711639024643873972638565105824667725328814217407695289693392339841023223506363289666092525995671049834156547383652379138002436871261820055709183228013220192405438053790292969650397920715843466559278656893274909009065872297996755913850745334524966624021026465115099829967215155804288146313985102719122085271223946866513440240513614460969480834107591745775023598451058147551983978866358880975906096446436198355914848142390718286770429485300004225896180795400154267207638754108055984787914406002467020614780172999028860998360023244530202615828192418302676995558964203734249414393664462688540745257409707339720091412863758940617977017972078480378129449238225953967404269728510058461565663281498294231546059998985210959122614080440433692676251517307285777471650395668025579311532582324587344772576112324359246368223820006434754275715698519434885033214880289321935853614957414405296623719757284651742419448614870156687606349128638952537992814869229563839111196324725859338338768151548633446314890741066380294448164578528037308454428462074859484849869256771026165150604377668537812838711829180367968192792031871152843503705737370300478049947708063044133966028270746587893882121817317752645512507860853426576855441982651247580408319244793548775796839632455467278469539666271200340210310373194885455538247143136847656517522030000934908623687339399659170516513823914397031238083677346385941949761665777456192812312654677103869991930870839780702909495605705778328174526366339148937772690940135791034446474835086367600066791986521700597409666681752852994270446890992268060193427632504427376997623443771485728008915971119897312771602028585480065179825592961098003526032644594890723805857090329808178355705389434512092196314141365246859760497521252038453901994817564125695862151165965439600465092836982078122723745517980003087134436741577777707997685590062275187951667931790674790309154848781315346659819393087826409636444497002997043009822798819527544537242854427973002155264881492007810227230422270789886981905648638124772454582025035467067025086196078533145723786612568678510652503150650281905211024719500500235047157774411563738866084472067574286653891274361668814305364731906499064771963107280244172625551920221764625884644307232594360456231962350330526683926678786283611882984847869924978568380362137660726752494004013893796205095468636213727564673016826674479566328330139857899894431135878178201335688238860372628791969798284034070079171022507655596863582251863977936568758312516812960422380625120443764839225523502670641161465015154194893133788743970254152177075550624204442080494404016174518087575627370411346857367704674582862917069682148915906774435822056577469250352269688391326968269351457653234699577694659659682631605040441059273160209985522692226754333573033409968996302056108767580146404328384040681336744671993384753008938560380868062662392110788264918070559143756451424126531437253315091790235779457935458046306320296294170309721526704980005098338034095863837395822216859399137890657016024646232160143051692249735010863773813159518149460313097944683134975913273076227604265146895717871401832766667778818435506039408308810985341768623623505577629171419200113014834902887476877227106134660100302352987383556545579514249525756416001827801381283329012491602706608228271426077409642421170853346127356754276147183729749513713000959735742372582531135979107900856604400919371977195553987501489798125139185795504993232335123886839775732314157416300754702605466430558839615052538905635040756448798841641796043264209623038534174230134302265988202066919977928162814043202335612822712835762831831470112579619950514846789175684814955862258110151828594770601962388894484964984207937388277455879099674970803148669605516085664164847385726945985903429917507790450035718328665136665724491564932136832985644118722141382522705475328199391324981118615195241000457449538841700950405333946529541529939719610714048305597208371087643145375320477566222629358104230499475342953864202042004523140761793089137263412856968988471060256257418557748802704178351777303855284797793962236522354128288469318806328621077425131302861968736993142514384340197453804755648707347754487262885076045821056437150132815977550590528993781218075515194096153974350365539963967867184057082416954216538463067067793623611544111507003502374176902982784736459298639234317581276680781750623497258609140859138697219344850955898097699050695112705910971226665685113538513115622782932203314239260822728264169557612505268855620898521236992670773406451173094223156012098781720250980874486041966506227430566751766070731538429869922725595477920122437399807647474005016801855986271943221348875649323761114759095697187697673896503115364669025121676415414220891319921772213482362216910679096284540554287198665074730710606271124242614904401027904359855042168627288452031607493366967457977296860752929269393104191130579310240241574119159512012550971731632329427703917865037358778369456936826629112674046832216120245032565694812070558832007830837882621471266519898392688640626709602466962058344015055031358848059880041656126401195659773467105026482560109001745011562393884657901988888126432604780570246478851151160042947011171804727427222367103682704847944564497277393733374365073894266066929014916894080198597919137281175241439030257713123818281048816666970106686895620157488508074135817308210895242739575815184405504352989480852154463428990245159829237368801134768899129609042486888233082693156906641418901739563660786378886740229748874384523842176939458761840254544491784391215268903121566739153638871028158995455463901785962913187227924613836112087226155002639365524308855280654458979174035030435012540574183494504097613126730337113933592388921735468201603205261187409114363494957737741246373824687958274599723897959933928764109419520965630473444375458485791586954327849920470378895540061175043937456986633457547821584101106788491442316044164429100331027325569102862605754642945234498837191536992838518718688894667795468375545573202008675627687862212493948202118778547276745703275288265531678344533220429800570659900741319221028419306722449245663487193605349141374467648492841734131364293391322330351485248733946272220427377979174915378118327644230262900675458487087916886846192837265800073725529709833507496116226984920413632573647189977546202218688167097466689811791084798192280117699040552270298661330618684402028952517174513476341056023667337314940883070278455578823648039826104267246984928953347006738206241917483050844501390006348977685177653478238196020109349234383570154948328914139407285662353361814124324159696234587354883002421901107974747980700780609608588033774098459110326630608736876133782424005926482383137789755799463805046594692195684559014709112345456433839972988816824768291551578869895077264038905171923344443808935975790142506924825952841564762580764197172601890669025446593791079475839806477184505293107444996495583877343291985452124352044787594364601265217061672098826536440602792469837249030855823617372808445077460929077795963087528942344776706193490200894168592295471293643796273997730762499366853378938134759804492557091732259655451890043079891945513609355694121109355909857588630494048968210011639656188804081467803005268579082788424366447615022564380949900710293443790773212077996330430367729469527437640139073667966747510992704315204162707795106096241519216999855817490238791517545369110053757984478661173708454404843736160330773891047001580062950732881098603496815080822745621824642001700053959886863400995281532389732943788444052836461700962866306460665608439308515620092989738352974193892254413074855527670441133270403761227593062988556707052089426552493523845122957909067931297210125862886898338194142518191145621981579721436258841111670428538958174541045505280137063219654260533907377636054529167525357852900664312771614997163774749254486981509749754021990425260979628627995018480978437871504644570022886947027106657150913103222244708382610928977683650886729482843697712614157629582059281884110985025547395961666809536759624948802046149189820750807062434925621761090460914528619991030465972954722531379303333507161247924445175364447829075118947056922229914859505522643250105961562972225153116425450622128107900543817966070499121216248234870526013647866308576514463234217165008868449839231779287541810603906421712783521388698036422773890587461495700106371249023563039672588940653926627067581839460851608510100130833167229294474235395195322926624027844751600472025043728014822048931780627312845846277580810530576683196244709731789932170321104329210404672410989453214627140088837586664781022556822458264999600008839962798740308895801898042131343117263207324915750601873138602969667761872900079631415669930667277141989584861767803446525878435490752150595784072641617517218966266297619523770443141210705926304788502903523257159649162916042210546424786381222754693505335499090581493276399017453567595208634920364608933839666569254064680676012573666470820269230537162295096660641949691015884047329648439660396605995539615595255095331746829853919773035623661723542830446197353230887709366602658777505271679595066774007420927378290411462757234537682521752292418447190537507396116651028114725079664928448654640889945889131363113157271073464854863711222520026256039201511411962945219969018572008192131683641667333106773796854184334318876077561860354843501980609716301558557122346710455261293658416927516177461734371924962801600929584836796154046185656369777421454910598045129911018496603175136682122332903642253011765774469901958597922377819759538899226734343707054594040603919792817526717664536643897886745173178089183402421423036914913105778294251971962140740752803451701248034178763164002558115070330784597666293690645170091023248249490205911638260982248207066286355208964954776504598375840746183439637309652080361568756837650511007619365970727351098818369790234018957903569818481711845907634620879983716348799007455378871719812443746669538535058808840212565753368533865866080137044192509312614954190588429924291232860895250035516090713174692695598435363963065107187773073494097563053938150950530299862126096354267029448966121391429764784056961762625755716055368506023291590286989094285139011229120323812710222483609426648202657052452175175547893538581506813778111307324779151360938390575104835221258938826881678662317817509719818013469159105099788029378851348908137706668115219105193313963797150909734439775713651189331685421070882355044757779915542521278415814406288547151601497852835196672287729543146611890007380813892011652895799552782888991347906171766699733620034577624185124341253962635973936594793637647025214238693293980232736702225524687938665125129296598135630676245130086683557962830594834415300064510370978209307882322835569348863797550855039790724068609771244927735489510068825756545558119397953219063852938718617989394764789593369118206998060817454622590889235491122484867393244324682428301325287232795039075549151184870933999752528767311737593647313185788890014996215754031109536248072156361191090159077270960992696894005958200891899024865614164788583555786177770861022505216841996408330246627559260031362821069468246108646624762722453333824181639294231077092546064258577365238615968511536776033104404681131527200822471357570626381574641184536233089266334707046549737760976768779625598798940373724060484182744250622557882719917438180461425528912600597176267560931475279832617393344641206074112968217631050700176945026246823110444659975840533869529459135969530677012647762886083001875961812621829537273350396198843814049072526134698837248240812897300716901600188396756099457467721660650606336118666668578823036411234617841975864786242228040656309355583078325095681904907971533834038417388143211897374006144056491269455356792632693283139259164137921502429383719968129693515979866330164056663329115802822865794558111793004388482646919166479800709566979885887681661826130846729460318137018014741548703467678269412597713910821925194602635154218891993682821812725456764320263004653297595496734592033912845480086151433221218371829119053332110093963170061518961685373845957957828191070519104823364077171515052047084839659258326434864467720799932831129055253470968307813756307103135025273438783329083747745523963032065381869132066398848023375339821550832243444521526956111524621416515250540364940217591796723161634770160648704594765497085503099231684228362556294793914463122921842462764860248851799366936218663903265051540763471393832421448741700316687757664640492577388313949834997623419272090732679157675912044080843082991806374829815387815885106611853450210308885632501437210809298072548281701399334981731269868786171083901802443792446607476336162195862903334668669475737897914365297638136506777809666519200252146784241524667878377894819365509095503931379527977705820770655785679975802234665552484475370094651397200943305643515772154713417285738850129927938157351649924382133238828145144866051815381652581279080513124976873270914218936831114865391597512793316447447708172208860283949330337473593453179697585018617487138105284594944009643999968252692855485335951376567467986115296805758629165749392137038120494423545494971819805461262126690920966412512550504423421305698364916775196406727720460910562179871948705606814310344866025670960243943189241825954495269774175945780824748929763063071066981656771596688601649791052257387552143004978245138208840736261884114547289154258574900512357419667279832169200693220443136119479818831412370227858405359562694218774801382171021001468119566893624331466089807638278173757162181496138793266903742902982932030103917205564405247880678951576699577627957798127577074478121663854083542266601457799932342315208930660040360827275672316500698886710447954351388350863867356917680960496880709210337923297877540351855017781944536125360221414713430664601464587409757908601882466223395292615721729703066882548374341422315703297595462195489837227048850782317618455194354188490684641553778868499618304359072152016766650065758009816615734736624100379763582221611060339309170322013406978848149697125605746371931974763504251366877565306578171657677440306494064942697907121697802253202098539638415508133560255610751991246662817185004722375837960579042159996184370572771449344490494783584095294612077922921140786731542149769074124076056775497683570180732702387524364851836924566012308244874232532262779205290663152016933230966972571520995974870085288232143712107904367303245335759262547625645158657316175579491156187987930322061426445506790134293555000735230518736885308579733039627385849333971458353439465490184889640428816503443306243756760672359713684464384475797759385204610688089627054578512739784233174323066647161343312736402234964992350860193976967579166222278046708251790725653455935615400694766906949112127808611429352012815805838054967479577778769953122934407063369332756776029208541790730368400659924322067799564341744749886598988981917939883879413995168146574115901030532594940079261091901236616596778817079638623278615179757132244274368937287425054515903273822935545401533461952204874227096953446866349645446674873969888545277043341139744531778770730943275352168870556191745966698904671505425895403293840959881477292290790551396177729987122191415595181648804334438925769406869999272523182654921859195425444288365948735924877346620611954306371015403655601964979127304406555026196581594350918656231386428972671573925780619713125644594477768713969080308265612041002314189985336487537128474362260792542983078779388701470257805899192507313695939077588493008473127444286767962419739789349213489441494676858222054591573352927575305771053319651604329658214129255375174484763245078709379878213388089091903916417929995707386204455648220469001010962813736471092821199894201775669841662784446986831617600597349329139867551326773370279622634868465464754847660744657218092866272239910380369294887813960229113652473682276987566842135206056484389367809402321726094470958742397404116166042696695526353860400259683442733640488413615743303733088981797881808408696950786498435058841371694354571944540561316662960103860700733874528028283616304318039444695693152542644072106914632532633492308925862765703175362934864960050343531409385134897852690086131089756519519630058253979452095035538177520742206047779865022389018052937925843354524889852205189452044880069151719560001254966592300396463846700254535919790843660350733514195899744017947433636765190289170291068918789369317228760795724020687419314748345311450982673152985809137420683614913966291501169013294457296553744704143430530816103272540197660118668065275562230716862105859382832717309789170697312238097871122140654683079007714759045055446218983756965127598779795490029341547886296845103797655215536982694268388082405483385255193732033327738330202501115026629410852717001355421732278197559804058391151118683916823222247184873577914689946147282253186101412834085400072321600717694913806052343045542448490415809153648922392706630902871531481420227339489942969660132072849893159511089525020905380793702026110628865989577923586608828024404817054778560848475752702585475419524909376915322237494053027808311728010496071250016699511256690540610300830235726649187265355154050889314448359944162510590310604218734429625026391192617472132643579897118874178573754461645171310309848779203134145362947279492464403464365800365052464448549251005289225465338356646297056747539918385055543687909634576744736617275539314346755202037587082164831376069377862645173125798226052476217162931677378046513701233389209239158860911940168235491377260462026142257633958700575623919033859095149255195301863613724654922155378721296451761364118790412073836292108754499173365479348150295249886209661172255402926114068466036533019852228752932284763584666149880923239838440342968386669332230984276716124665370323854507869154969542158419697220256926968034064821608111053075716503463925288194509715100623394564670798337626978582548748727160252314245125497594212262540725893564799692170010442685326763357390652163791317756795753319778987311584126960695231409984357625951710456576946907003179130091818321827594059503429138118222918733307137098906657280858434715836960669423200602035842146914589956554325784290449525432933321455055885895463256449643106212375674387579664853036690921055892847882994249198846425588698603295470978799535463065797725277098403504488747528643067354104674223150838324498862930020403415888022854286884814204895621709127494581861167914800903620521869681906600158205566583688624023495427638247891038619547675431895455006068647162516735901290662762427835896958086248937929445125832644901723789619868116918554984466675249186146786944034522761840764103032307913130104076701091929381087093797449331388889466618306974519299278079341461344135751379765293529764768824844910063023955846522972450642196204292014773850262944324951943233817318620491494313355069981138788021066572400217142897372987196260763302088384456559848488706493719089237398829506033735795865512460764966067091784181732100164167697111109803567176406827293598650466134401937691198077994930150056348187121559214126458706266674157348421918953297802065998711055876968419031500465563200322066133847461920173223827572098356083082314358319582860329414964985541373927375715034718889291136856066876164976778868040807307592327427303070580120123872061835514824815776155246245421129694450414186582268620414939930577516340860473040351586398589180207402442531160081285719538575714730626832026702185910136645813942516957421909135758593019279898879502136486873793625579637991752787799244138561638563799498482588806380509406299606350401366948853325649104312203302862624526734416346387896563506708308299680403718225214325149687504589942873629226284118372357069019968376807289790314559657684519163928972533392489746962312257207685802128369982072185753453798638410499729038895913730589010028827085896520503545265863011162907994312581316897839930471205098826213852419306028810762680871035488182316108312377844827167282685270859349265289765678685312126507155729197238161302903066640812662211206124983262584907693343251071425016291166901152954080280677636920670150388679509370487495057437329951713652749612403658624262381972190974321672536953089938953658971462676262006670972880627179249625590246460118419828473040430355513494526205889622826683959636352894419842587583012945970972652959201357684404606004840367838912803115750209431378875773201916843948947750939576401350971627917306977239952535200130360982134019057718096135618324006150358979786424234322329386282811860339688126572827446967219784054929293300398404447619501642498456866851998791782697813801284131790620892813874167507461060958720368085545120086218924688280267150901767268372188979297329049362541864068649358090776010444048116576779932995463644316159411446112633306184244434309109400496893891258832417045017024139243022410586238811101594725002270842938192923910958789311633654692700836309018348659488801129512769317327943014428887961089855445436992656599832761908695352094318477877906974370079894249173923078869872970430912885577618368483440216595901063922008535597746357618573793204771323115784050108098073333710377051371241956828449531494882420660863864377641885554651762070886012065256992175698467122861276784046726476665830472345341895708298511761944522560536623169334311214744326765140775688705144061984212310518432553755333956025326830268064512849947992352993157396481771679429637408314022179662364334999469391532758035378398990986194156505696049441442015812369075526758561507713922944309120943980581489284681641911695630996301846115508873249427355069646165456554839794734002614643358902877711698803670087981309124017667843863771836213221683478705359562526940430245688880076303321087526490541532058128299498954109062810550463537491141641569125190951944556939493152277552430856073871620728958030501384968819968211129690106125873839768383604742857377699268766021891039736650597486449361757998598427871065700215931757319096070612552711738136830445423129614906534149882997098058752411371529028850515425112925873505909971833678611290294229698048970848182474951891252598343789611421388968753938233650065336501111684452684557864925920750603310113767314282340887024143239045367432865238923501536153747360194879182767801273990887648385046889728766731047411026069010133360997991688752394221604787621715111735562085575239223962383937245450094160685174020790455441239568200382774008079686360100982255613989245037734032322185969458339464797493172132736861050628901160651627890371351409863243878749112954926866493003857468693618626139104017833966484155713918169204063317696965146652023193980575465742488098808093226180592503725913671395895824174870972641135601852259033514307767977434945865711197325658664264275910582828855998750725727886093921999148269958599551135063445165256842324164936958873127461051224492402258230249400177515284100056943812997295841441989520475605786792616943433401475943443164219711305545580688879471634680401030246786979157097560555759967897118330718464205168689704508107181662592620782330908759632001713675952611471624652929992390428532742049130861922431197660675274963344083002689961599171573747775086606755176077624862684716075868319122902219784846775501575619431446176293134062610704288298538718684354849269198183367374066138641014085379055982320294131801710461709469906567945192734695411772236275041544067994180512241770096901388763966801938336763891123149632654882961123912760195735223484553841017330874015423581019356670994731800065628802243505571588842556374696532430163838983921314024689299762748740649448814795822479438663738442990974795825761097198950166613389959927673237459866583572919780874803923838603662834971413297509553300192491098671132301813905143907629547822519820340790210980536950643782208327470521398295018378083245063682658068076298863573923371998147760548221474071835880391299993583153005902874634370339310538893338888391439730445215324327615351875651014652975149460102978603244705010324935999107392821236214356038345211573477612276768238973243672810435056872158653116210117782920286394336239622127006021896528406702669235865332271859428220043833842452064231376119837971133892284944186196096461196171932694607593283446043684195141084763540483573906441288157500577894096933323872900355502423259003558857292052976447785174053405139139488696346080265823342949919820799123023528219034316901357108867415446092339566482079666417372565328708406078278498109671342266794366956045001089644762210923787574082522487165093741543511406554371408130863416411779137602172267322951927928831958702661797715978047967716098326626704860947481118231475059841344168636637271417735784146397575696837634151172557337241529347263427012276949256181862276513906873291930274720448985461495031192291977392388235217571294298147086102639578420308185680454332585864794686151217515728200274994375275877342043430224767060683107901418128183013290955952189825956106382184873396523588060195686196316545154926668900543313615494043352778903613562566190328155087669194328582571353220069069527028308920782152340515625425182690763000018784666683692355101203381256594381869467488305247072421277846100542818307062197619387332894903139363579183669580947957269032295055535135349853843824378252443056356310751267518829802876816717111213944965719006387616263359714464644392230917853984023155076302032715441887627891183118881904917436601018830610450409342693076592895240311568791548132183395272312269477560239572031946081444859128424286994893736707766196963301162924698651213793355065921895834132882302464779443860059096463134505473545892947076729056605964038738313070552156867676325468940851623543816934903194218672393029060908050077987194389005823938000908205737375906468798579702108927315867536829082790605251618962146265446493047303878504086568552208085176570479217931280996747514020128524950166746882476019115524434619792653558018743176076639963273825481641361041778022845125329992364331855033867877778896831261548878997509767799256814997739929217617402492948470142536816594184783949468506898040617459595885020935560225091914697306888470441723278859431986643254197264711196052867610680218038273033127740436433671040909568292974140891900264024283716039115277716501107468967066954150509786507185098975716657985458959598243603872327462122990872587398733406260073658692991539224768897913206943382155042718807754465186764015467088428326419524610091003783115089010684247699203763148608389644026482433607229027969314746523400030512557125595472540609497714320758935821967209491466962226754410351251136679040738070891827417514395812523817780954488640453295130377935210771579180327383585641927908258555398146697722612624973689285441700331642320826742504337914919549719137360934510219867626966548309457326492732050212778245206058857532911124338374832592378022753934100401359177764990398692724201255924855131780476567674343631806500961640171931166624599886054110070425262148356202123243181224097114334083122808050219462614454746750636444830495057043024743789252087841158185079676261001775418017612361018658333601745185435577632121555860439956515324307521042880145153215509214304569802073930631070393658235032305555193945839623620190175061195893390935974310504803797198583530672652798186353771016537876238833596196986222479824309504532884956962544869475297933433654123029843152579455938223557991480929251211803919899275689971161788847333463321800682379240359033706889448849141797323533223504787843266882725476817869309370927431764699121555985145874925272835149686760356288496677028159647126649106764280060566583654554812364743115589415153586205487185514601975683344965991351843322581614490654449913335164224025625577750616007653781094970447518269272697652943260337705032370301119426691418881467783625263006555602084052286250262987837616727911173930136998600040886173548755045950916969098655356837925408078940908729336810680258266958017830133719791987531583388508403761425066598760744156268620933495229693769712315279781481937727285619142139352497485952737600820858401423483796946663844312943476052811197770031699054500346074322796540800270750804639349050211071262755475253489347161937720242267546645492500254132885550010462763935983229579634282562546224811216297112373864546265545746974576140493808578415055937144404256732579162472911719984675074580546592659458630782024395494063363069995945924559072647170310666783051972435031716178285064508777307587355681372801580374648125080043241145429466594076108237483742642470296250476410420743954470492539098910438763960437122724260487547752313213163984524179967216581138336742571994238746320222989928371165007716841793272734679449348228043189138274655936492774634734860207455002319373251365064437359555099772090881888288849685127606604139380419509033647139280067124092653172674296916655178957789476377569414336783040890780404392150104357267301694955382528720720670884938204486998777139192569906489566975108657867272923602798336437326231217294582458540062554582158730135457753192118114401598004432932653707485868650308001067825366837623578239211734434419885472689812345387229931812992385010450922494227510925018219271798454033136358312397352703876900622234560262874776774294980333007090407434919104582648119914426830295104570554445066496028672260722869740743125918037478544527564228367366362316683228635058179855833135736521574126249075304763718144171774213928088241742860468085642581386906476394760808556494330205860366867324827679284198129898072042685870256572379536259406912491742300656371564889980068515259816552035693305559274440083705400239768528749803062342432418715010683096849577493738216329613434107677458459754195305511495516818404684706139689973313467276548879824461993174368996083500033226561449618442375809335011444035267604283710493640954473113655121545939371212770760866591207518642382989307508154908657477585186487171603160332403769677085777857009805401653674668350872634676565330326518526322295761537429677613008276928847374587915384995846460780620185491264837521202018631617887794123237800905313308240833221898453822942457145634176603817039447480118820338544544884722899689516512502824431621944622814664506678561709533163574911391933308290172117621509621061317008386765916750143668199817303957560554998172459701042486485992944569325166296592213641915121623299866730258335927407657596752897613176237891600151679178591684372080067431856730172939393733154089114247746900615750781794917080189255811885147510844785601319584021297741871028281274852539273933881867603778572406364212010234719816699310156017200719344723496254279153923503315400123339828270868934611714120902760980068499794697153708252029335805065176375671838865833355971789134457292745062921315313387578332595942205788006783914870133685031544895326270183571037493786966268647193721359955515461509499225659444652501488800237054709847608340858241879388718469577871739569539970892134508897602485669254739009290974368616428547535571693678465642740534827466585229021592083061825539361530255219411113655401268093288659391048704396957683953882105360497608330969444565740240994459043793403135221230881035132815201089341377286984310500782162807169605849090828213700883857606907913771024704395774969348883504907703450895599213294645197583666983888124968036545410712625550990716775050700272680068682469108928584230057770516684025096700002117406473953256819688693689824537230579471071500391203511556021071700553683541786485279608079848690681625644064082788596903348289685723404923367355823988002696615801670936795262959455653408173970112475311071251708775370166077491365802027070729331796304390292571389605885996816074627696823254209491573697014521090045123755864242441425149396762234512468439779196980277219764963408873675454448827117432341965584044624183820434824850697420652442424365030117039471181413737379182783908549421692431985837586533358747422650435593082920589517006434631938864089333461144785056091147712073484009103644710332715719471423269995256837938963298157048039258076184085916612684652306983011424488380712335841587073562785241701352565665384505113628596524744944488908622092856128756820553608896937807718260054709616105160576691365624300559326326771530590888575362046671204019761937615653698569647586525523442373545406237774857470907828771335322715616038215537686116815025146578340489244928564349443967122695478044506272155432404778591536120315264345282257484504691180601042306859727435140233873355001478850667808528112306385018037724598570693738636663627528668260576028755775213936144004813148843349384910306637370656720020882124257340215350433343654918959034819040331774120697568675596536561191046114969735177078033985143065059223913565849516776264423751328618263608600155499990024227923197755052938288533029209011519455399667835779904969323235976079844893834237847340516846722661671572046861228680429462871186172455349458236765670226322626180221762457244608050441841836674318409311323198209924887749324171074816113596072710838624949284144761910233071883394435604617528196262108192200507817290463211278342213853585434052866652795225178844490539558994784850610746527026243807381187679019670000390123536208453242903035595689238604630584584500509963266661013595799513066604680964558508156786761689139514446947078580367780291322426516257649238200711472220695258977215878272169004692674039763851488923687463370803634423460620153701208101982488874673554866921206613795137845598291947658963230489737997480382391711165531587408930815358390384040447659545149129656254130184840629767960513421820049411100555401752681595807515564739838285043782835778969945575193108058044039817280236511216857231193221608256063020792718921881493001063545690321059167811903485499158907171669610555334680428562680212827678406602355333879538812864822192239261029524086517825695025502674094287493731834447863037241244388296764212052152517603957446407600994478235911914479323509322333408949084839135180345559219156577320079557885919235040440901380503252626312885288569713879154945575837176910646100626731390760128628236712319059653659010364187780056697880598582065446860464784494496241879954826215456765754539004872820467972803944978268849563975817878668426575618495865423917163063172803841040072058529532172389498331010147885150821807624092682223839726294917603859742193472282675989438239373644148459091942865076770051442849274061233471561349458980507257598985331773658969007367732478473182232143553618849186141867974092841596242480924377568117577202862363965402257006216958334770507867399264956798413307017645504944201632725718558403843782706943676008291479236200719037831043446260936025226312676303287810067988302878141612083806071376662304179769792443930880987586264739933897600376925137432999727160656009359736557929410220834651723796847961114312788259969343498813824588194972609194013817557202790896002209646982525405521772681355404418830331859523099985576457375105069911805298175366701548563698366270244625412466916799065769279002505504349583156358012359293778494268417443762754265310411501143840994543390890420924888297626529511678833225412119272238755829717589375871930097748614078419059640575779535885594150633967555712573021092367802135517231589804297669077143373011414145949136343594841534210646571385957693572890283564407911429705488165958614516730564966638590698689075064803536707015773740005425518658646054479956921250085848156987301293165529411787326530042514116018676739910083759784160933249321583098489852067467104201064505984896643228904466942275994761543058645741751343727599872966840536549670631404857191025904663722590010235539637617135825621489276515960384433899226200354130469383070206119849332906624683512305011342951813371203890613786298644079565121053926043669070835958227295488271337989391927632696147340696708640294796783752745268992458505578114571322360540087631319874457848478513029369171801359399489238647366442248795086743299649581779783231938431955154223234205952155991025075396344566380161390710274085863255772581319247663769527140522210712679738216879823420118519400813847574832546037912060111930393243381172962241458931821308353560386513272892481832749254106781913560990402978455923437031125381682547768184272362765375249082945593999635545271732311951778337885538473731473629378138868471988503036396530432861509557203089063020845388884074293534874029038843363179167917287112626568630189481696707858843704606618523943232385908127554322727954506705872547305402751109879372335103931496660112279313637554579548632639833530344307490999805165195760750638015693522232116998160040727878133198308018305867165424440278265939843013281615451153298883145129579608743050036440179781008496534792202161489352976514814507769556730734917452516631462294039698149259071615764008354863369093157527674431179640719717387372288391095561061501379635570794633894112225744410614043432293329603520850816241354940401986047236338282963850250467999260607424587421796627006787408732927156998933757146754415779675333252629906826363394181347423661567160852792100966126942748522395316945159056069795990102145674284751867440664497081621758670484275034134289144366563653533027169005040659346261495152820266584461234220265281665777350908014007306232575700228959745345339476580213694270363955534759663681690936161810229624725726233306122714043288685195887244480082424207777314918435859576001954020011601601383373295387642184370096726418971145503857478519376333483347524577441607791004353775880251315264544218977009860627782070651223220109632436497212456940210027067479432503555617814741079010675817333207698285890847304763729818536640256813415927914061764452306444492769260064979754532345296188955348572963547206036480820798810992230430521141568397981561610069397319332619036740349680166877672923560219340849776204973660892051784429076676998180182184734864862673477703279569470931855389446204368337583202821838805967263661895533765489753124077068264027458548451856542082234822310447138672374316093850211561692766366186114341979363471775346957225698024892659236462169740130354675105140509855605247450034698037270434409165656103454670039194553599703354299914106781859437610526701291873996049707198116943804738700888480042341070223514805803446606789101138690749465121952714280806611536820858276023039753999455074804819463753497448206998168402520777110467908507050422766145282581847257231815735795249939992427695788310573689411040009698360759405225605525765485700385033893889668181134269965969131285125240236110701775494021680007135716612097406874076505330205080795647815964608405610117805269022692163204254878404434966500362624213835191969716724212090958895044964727023976084651672070435858341635771086328296019462032157773382081213291601756006929584756362994939277233645447000970821894723115078193313697558709493679908243324968543233928580160233573610295639435085352139822525395204696541842524272291401918893401475567979506571168521265490260661640384164092257203107828713584757683094081760955104272477664944670658100760711622392670255800696076268653059217176013777564828307159392386270953930419187404549313864270023491189559321020743519840181059858971819922948035738148285973534660875644364697200370165542706665557641872204546851081432512070315831606164472406333870508321655253211232850461461619835672469237209072400379626484245018464780032051610632625268190491543854869208899263710741959891217294770562281628005998386272388654440963627130445523165587196549979446656317047273505205125968246508398356517654865449618737157855898956478069969915891005530838054791157822371520484926540325071857723078619008563405706851644402185703164509895413674700989361335217581226947453502454970302618087792083835427125985615894170119920121383448066677852344785688402019882465945906871043624795620142484658758628757120111527624278216082151970438489537743305526632788035127432298963722406685669228956219213841791094269443651552882398138630160563598423533315523744478230745664804696700907795259144657233721271671335134898889076629247713522054254126692230413964300239133871553993647691830027234581844258804094860258202112620831597931824676176186112894982926713402104059359887597025702426780053496452825393866709839524080569098904470286944110737339434889209534848253323668736210428553632044357523083565419060122983809181463751507998164836869381543954885850789652531163344197710240573978548865297099449043250058035837784516828494134819086125028143494693611885138370814731172057974355834923346329028908137462802356615845031299720119194021059997732781346700914176390684601516826845784190576252663542110893451134819893198009355168135700916227062095476555569648026403447093250275147162822210646670532750545957035012564511041424688021410540489777952206943511753133558372051281798448222563515666454713760045528919519681313026190393648673710006727861230347895171250361007464709866860641802882102888703185157790718582409238956454607508368434899373723678767973214295313853779916662143841121996786565615554800441977743469240531315624530873929910819047077014489819180476580579343888159599067167098135973075547724008019372236459671875607654046881303670767979459369050815674760505991642171065409864956292684567327840855133340356714320329855578643536795243003419967680424900892783040763868752972620946516938474539576579333745831232858448997327931048096329844971290292886272474726877956511254434279276326928325205534162431402914667607387710330915745425659437765611673410872953642492461966560071224718882354931681488320291900589912407703425133555796625013426204388427523033437839639482395375669359357920736485975730968275924756746107032192171363329974300259078439237979050760486404010154750828361107927306051938898680777931781894213610393861172911311055406849034387725938640922164118630474518255116715060109546804474890865827077140721898779143771719331017515869464395429204076053091821583767161601623793675907476415343003768022091658029403534433279230063897986518388265862264080821704642956333632750036452451173188796474810901743317152388808418377111712767411788796737709627083491502277757448476559698796594697801073497215569669462894421994122293415399171811895057881075324393252482004013412099017160172630860913819795831983998705707377145227563105031724748454209776392421372681323747649333450103413460135563443380149074434554939775269934400076342566005876655538496549666495275609810259857665387475492965866895416611643358541882305432508604771174083402223743126500972812451314777665439695254074033698118283309604677936323381563705185256533438887051977959862515982391613929202960061603533228718409954813605798692646077403161559638200165780574567056115071724778295005684927422301617976238700704966965197441936410706888370874812447440542706801353053989661036273017870571379277531664135996153547483502227007700574570404903934235848065324933552910033037775521049695442383457697482122749667836473275700112706234604192704191944876493896067587458954397356875713549120470156064558196641022927045095704489348985077852522737099815497683592971687702278328924009846457135928119016493332918803706682929686056054114720609055933085716798147143718503888951398863083985494765327457433616870534600084374194012174680611884580421623116144171181954796799252337306259958944645272657096457817352850101031916847887978795702387468015416433886429419422104185318879032536168663969881568141128549889910848944985971917754801758262672721228268699414728101646978416741649063175905308978768386256374255572299652476730288642829659929743774808565034957442427149062476458162553665338764235685841234637309624275523873815007553097659569682191566577623149972103279847972073601129387422022876638763279265691612552525700187310292959076662436676492383695715730333494259251772985178796224670338706863318435523736886069456350362386651099407836877173518289061909390380516110366044181671270409162441094157762619639325721658695502790972142918730144172715920416863594288649836544238666265816675123440180894366370566732999255327823251156842405537735057758863672108949228042109927755302007757328207756877076081142667067376233489845900789529408583874764225773031490524610394367883581296550034329154663701524725318540293438226029990840021681294394019876132421506178599495424390258311274537537482434924276417387719347101756670313444347427511934483184534848241131344503553909568801349835442684782201309732152206776735748367922988776200763038519192791962217827923067201981518872700860012248374250659516891162083475938333208497427220386183447524933488288601117383046299147947921569989739658789517108231187779353114040314549385060497089249799529078479571098606702259440271063288415471251809460985314077087550347267298090643043180490737966385107348051662540999626919414993735963150646921257746640547823083403787390193625657070168349032220933043817264388542387057149324916615320185100023676493338319012357645555028189436214490050840652342415788791919800369816328384764953310016304263194523880315652703383254373289692830362838660854070215117210461590480224787811361193160048888648066839870782653622066815149017155414015363646176338317345652719557122789878460793413384365190280179954793678224950386460540111504223122774224191982727723827292538837096826202220584055607872156081578361898119434844770041565258277426903536511361313372818262162116417267210969854026812080666353203190812562694137869250570585675353113615851455721373204539097716862705669649732666307592378779061334090501015292029040894336164915795078954866673909528852398696740912118273018578959342446250436846599363515204182295124773015453715544889945583835500992687614832564375495617987079718983574182330811385438201667838530377759227131696621423208618152315643256229592726386668524988425863058903281872943782840934362179230999607967360081040232456992892757423359826066101013644268282204870075759600186188885304955955898961900265853288688127958107695666811760364615018227293750716226719786990800937801627353584681227275366907901730881984047268931517034796868968013648974850562385605298420077471601893041877829596716496712013022388467652515229767233048277643840546769218597160312680019780795856354835055368615471759769537904964413685037795372879015149685800965820835880196214617474321437482990750814988325092700235260998883511647630072757801046094693343584887231287447707068987883955045408082764811664247151321017776352656722708780630541736335299877123692316566618033604192772208343194428671233278815827320847245827421702766101729426942948065066763464078005835313146392550438999055449820140419659881361222531505502017209063227095356691117054115023658627143810198266428363262199436739011503529102747293778263398709008501142560718071262260825533310940714565048722015410717760080731161289950121997213481225511595443933572866273583275820794409663505315043003898442091007821313408837760301723657983935931261178911262980160121836130717850444608790880912463647300793357883349042174000976793466552719304233578229374953771553547924890193833281531007173246997911495659471128152891067305187789509790480489808352297821263927663276912666364755511532873050586166225358680169798275497154061880342595895973965564337320501881186020794548085816706173808497106083407176440362036399175107289787292946954556061535119255949053438043309890524314268839211476797828406430791664432442275620694410832168752802313685772368722909740252507074707072189846644377871444187971062277072164487565536159611931058842706656178810087991142051235646511550286561550477613880204995238582199854739786584419741177616847716530517007363440976843932033712312788690553602763155211190474241721393351691974292531202823883014971673342824953967094903534550162438153404283849266970222154974026765760769007573583400284744612629096968284326382645961820337253402439080649296965422789073159780670441327577753122460461965301569242330672495801348275227926174949371452362796361384016758572285662391058221923140566699745415693694289270597240553640458771237436504272266969950582335515921677303859478832803955830095516441173526812034095749488732654797346823439145010122026846772907796932018380836529553608751904554965526057908627260550430330393119509129603785014478603679874706030756261747801637476329664733924987069033099294739403487695072069066508861911419597984819375173553166934385990349507650327904973090626012598459828210141513987642202671873001666763409084508157760490577059195303189491292084790860942854110017504430137851905913947230474947167107216657268176704389263761325630741381976481525259571354463062950335525491277110816832486746752394940911863200458905772114460935226440393314591360228960940187581458353993710411715066040661096680676134568539746040599430294416741468198336237724838277807278005077954948977534530390831318482266385610144462348728731249346403642151660195814006023260513512457721321966829619822949441486446475610524644843882800239411998693926338858506202772425222321591467887869413505401978382258340077767409387430084583735649617816339036754140668872655982223810849672052156248283005539747100000563587760586560626949905762147436888078561346421325801572599846812565649035635365827187037477415962283416248244850307703775468728383477140276270930374030549270741176921526650051381118281619513808392705724386449141514375787932961129861509572061819345342771591777864718352176520391656481069609291174249199297125903963158879354079790253504049479924234519309842176541613798952058728386624707444709379760934995557647655901880071281640331046813182550347409477247081535508636740286085499422830969270237856594531077850328027025440294982547946947258250714856400677297529371543533632101351465311604058843329852436610325473106795378951121769645171388589940063693101764424735165022314555757423333432888636149766693678291824830670326083940057209500689725318459626372366318340214113501878209239316324607222979650918333290775977563526464894044806034156956941054381709667139306020846648950439690202159813417058269908784668399357967962734811290395784512455232254488649455232448316238479360164222520725717895223128804245401040015179884682243692892049955793012084858520182764008047165449227682705204390080991717969249112104058922768865447174751895216565017724680591173332830403224260252622989154675039570877205979546937677964064647410547099539690327783685731683219177149218782365820817244488580485368944684963092349564005672736858859157189438218006871246647771538123760188427670039303889250127376085262193500911018100643863801058697001573056102976805965415162729082459218995039704600134417182508928713264570638744274350124430430748204084008336140249811263667415005019365645829636318712030984574965473237598704528914483272985993327662958232688149657158689418137983380473929852661224823073545187255462443984199587521244417059393150256316415372170074254536371724118808857974151182863671706558163866774549552229792878400600410636523175572198408914841112158190182191926043503568864347497584712896933180112860620976411827681512887877193908500599565698212284194288867825513685732260909680269065612849579476625204428104949276703685807613617368094712241063568899456492212072447725328098639136680594686035192054840582084393524516137832937871114778841414970319234862342769043702716557309944691315936947023013351842483166989780446860690511255892415958868909029629137864469752014257758866315661782003437232218823139332078804047170137986984898231168614833749652096712258467770818974326002438672774539259805325429190362088877139554884549190209911661463328457437158106770294572389685959684796503952182842012343318035726098117826981776417102157231902188552782097270359995560642783576257483850346406968413247139775074010611382359146671889949544390204792860506402774201142615413905755961361395107282612038049526649299774721639418427057927196341727140614529276022984742259747292362149967433706630635427423629968784614711040640364595642272209939373585256322369996692439909977625112994459204442146244823657432637024448824752765224622978268398998812312440484530409663984385381018352253026948464641027105141221284076086236943903043282193853921419273601506480019474633273820909019410323621919142585772969228491210218293229718015079086199536951894751280928648604696738265780980339897252765556056639217956082557107441427791436431938994164764170223485021799355322647254451311387510371968815074425934227845094299304590405260436083295616956413719965769430684695386249169774219368181017169948752936526031157654938092341685373289587224835567655850795843222796007084692146273852479571902190053270839959215166242809382650676578308190473846872482013659631881974849386119468766828952738588302452735180151759416863334644925785635577616867856006869638905046673000790335314842294112272218126404944225756467118753876179288531182639036453346010659874501657444242831909365314065053970814417722960454745153404594644356364277465639152636044277921558976159803982781289069434487838567513504733556662074278458012481624867034832384052493881112658481305137814185316466305243212574029463647932594456073835663034649532065102744625120728886801788060690485049594157134117810045714038091304596700327662331043233961346584788421392384813956200540344628863317564037343456283653294528619970367577246149759174842437817103624145994324203394851195326447967577009235895692844818543378329579363281837694500102914730920491382805368685831116434346754935686009226474071996068710844793279193655848440002770165572724576733780385624190425939124560883107610343254414780747211101123114051569382502463569285032763312948802027396304274025551279413073626931205925825015605741394887679807485168404368857582341395202033761286467590412472558967084649647123031892513005547006794316825582895627310013750909362373128542162303526498815669435202385026112539418433043494937231946307834121103054520727545932512093621507423223337323977556691127642061955908242121079869068196011379518582119362925956391281218151863218987528697570700530959701095014876785605801892294123766908761320681212867478420936785036224162576307757459795453458563935226478270764415421866166371415698472368958409299845923370617762721741662714819018945616050455668863856440001241313384652568367039097763552483854922391520745910820318095704628647222108042309789495692359346143750974552377024845404120521210965779653040988261248088723424117329917344126550379794750558750873687566075988170398958776974813382561538062674431859544299298501361467862159275206533919104354884884887895406028729967503297716780411609518815526669197138307266868428057572893458948215881828363352642285978314809468931020426289262729773484456391947354847180424399635621667827624691293994189373138205954089038746910734983942880669614852210601782030243867943464715404466767422341121262551876540968081200061390902494310003288802320616509508024523360543665789690844900393667081652063679530878000540433729012616110976167888039892182464424783297274108540299344255892150530426381713477775827561743880990074307722696974963741170463269428301983214465495981189393832686349227458673788647138744030430177975843485085736124368880460687623209753481310030760819686604161091603018782071711878897388839360936574282455721197167663415903681924497582489314537087176929470340217813867633732113558611531213431144777511907705211096377789113132669849819794755382321653983963785499675776544873442586388215405703520828431694110117049298013448784899806358582151611703182642144331973460446680727408100052644884558704214099395784038096028420421874626382289482110475440230744251909511820054065276631129900195455649611687126613929549712977181332754527253319447797774237153847052663229374986214783091332113092747326531212866268027122096412379677369257929938180957149956271810775953146025675096577866812054489973371506796287387372900376947147637866359183876114186365579710219444357724485615776872117159538433169231623849500703439578178323437454384845819826677841644120707724876201859031747085686904834536860357668582182441354358058654326083240022065866851116259012574771311202796756080404637150586326825183111851177105930970892722907996755586877727818990599708371262794187474930093979365952691614541420200106827673666525822611297085187293078746377738901788568836120838378288223572752541388965244964675822747087676677845708699130822292131560493381778874555791087441182771705556318024757895899203450086136724404414297782443115086595179543154096462953948996802191609891478694233898042694305745388886420004933328926417825383783132856791428060363818632160180744715134630942902817784205886385142106066696253672710637303141289420065031508936751234381639601030119754511960119963884513541633243589901903065100879710829118036537530144035636404294224651315052004164630792910200070265596875329664902520503712810718766041855360033048338246559524206878268533868933671042244662679783354078310966300796026147323981130736286169218965244677858916598106821393026222453880151575523220136266812051469343299538891295649273315706726290818282997882893162033938891857410350593332641526784809965223132267122138738348245705393309672113856895235819832848381289029958180663457459020407703236634131862517787854012383910651895324797246191757392019896520103325485556245382243854386035493166269946443314634834596853651410475330011410982729275239671738760440742533997475442378355398060210839069021941732805372863913075270982819840253917444238027377051851541583584744970152787389169710026472129271244504284176239707801892708350508630491377839519665911082579873450117180733450717847080102469157628532713547865805003095974702063970961597034723896601550288662998434635727925495956812243917989619978982444292799193600846739193299820778595782307969203627021904424740312681947339476939424537629770271647002129685766858715955257556085057446268639477319621082977345168695875223132509063459884194333086423766001753572404490521644320997463346162860160266817740930298042926227211116700322174277919930529705383723273661896609977777382260544314736610938929022099749139255651468076129558304236111401646450361386762139011619368580365716888967458255324074823026952679852837294792653096277914088656687901079023398185717779367669064488567332478463655156786654150798475598680713991112972896716368256021991808048292480768466566144269236368135165486018393344978538119746972988627003722362721168303167873576753946743820707678122506788525974138862652414453548632253922577859739196976970977531141150630893029958729077598112629100766705274733640417491248133150538830581241479557975134384021384188250446010259713374884199533947222360291675495320848205545405275036387907328086666207773945766251923888465678343579318107913135757952209757779017284882661526909445641841346623276501700569060617763692063809399941504949890901930767859098833496480901992753455582536588518760780684173806635668846697622009290143777978259450091986270415049080622448493559116064197849086994572525432132187361497695883905623290961212712692283272936804424193555529543774054558588378848056660970840921191346099661392272597373776934349824941004449283666976573889760648971245471752256223483888104990349402551390809580738045883995802379418469441074938733191884470052585135977196093030100663790778456900051746038292012045537746210916265611819526848074232462587331033742072764220964123105159473420989202954558583890859080747908295685878389020930992039061492877768369803308689447582622552447179703963543679439837850655214171414706482881047584014038091082878422386278296722556323888155109477532282569269623391972088711368130266761726885020462577427962918915574134685409337512158402103950888590365702194740192824903500350082069016309318512976890666647867627783469707023585793667371034370307329874007435239144732931989231901136745535507068135707685079519664800010198155358063201211799006360880865651609542673426672815331645233575918345349685107575689433048777041915074381527863565212712298341035342592411762841975589857058795024431690794031025584864481933663931589004969191842570555400651890595682021962579184464014478592564214070956912469554784417824475219065481191020807277939708379755566558347549223407069040788045132525284562958818149011412012808063855967153854170728665778595223062176758663236695671936263760513324447191790206191074519278477512103506870038759612573649335142478805057066377928853329477614997596072837915956634790987062234925268050219167044875644491896127965342031391980014490087181931001814891688479111654757895755891264733204214531712955212795474901899901226708902955736018200636857589230449997380118762453008401942806531755213409377874085889961948956187914282021680682767219920443797113364050934161830983529352360961916095211741750968645248323341365918281406830533488284390286755714552759826964232356844748502566317025882130165191782864244927452186794726589850225650521780907659572918778650634258754416407705294901895057841605317554748255455819346384234521163294911066710093046656307136583896158238641667831834598276577598028669128650624898003069320858395848003851503725882902822778348429750973891494495459637422927818934093807571491962660689101042433414476952511267517595970565651731765909428123608696452326676023309936971699702702902659408497469821368046129689863844368497281706748512320678261780782572674233876182849568099326744237120289613474463244786062763948565172143243861615057862619140948056522792856615335342811962809262891411757838473668516933305213598766732825058055235213586791470775207977961362185719339805928606771485174001324970309187384328693671395435040004510959947831462054329861554139184345407003052364777374591821803923926065471699443078779518868835022054344756558556560562259323966289941273239106211911887619103647623291565416270323312655104378545128422924260720115150398167103698730201478080879821410575022914744768045053342889360587461993562685104671111897869993340639982353398384899875223316224276136264782928978115079936534643521735657904544584820920940489570569915108679042449422840436702635943256492607368388207692520162281670909627216322123410181274388518174188214560896023096454111255527608072257131081294011623107415655516399486472403993961778548501187573186839328406182425687200655642516366299433540661482723211051153861545032407199456858491313780627955493959751182336070757095960940811341117631196375141860525221576386804351640953784447948073244665377123034045429602248105548979624274511330903062594927376267096046791954783285979728914839780311077770185648461518808212716517222647279763304168045220519011129871324559058704076450072877535583063529654614285603618804328105938509067781774634025647821695281846855512747028761574893186601532066673118902676994921965942355334730594059147860114524360996414975697975987023250182805380595385843097891875672894136361569551162945241315660890637553044223468066393059200158281355604892811400996596743048800639427663406626308510217757900316320115862324592473490053149637113339739299675358926637138022183694028496994579055215788376131301953293971622871080207109874045684867324333340047208126888035237474558999460990326978383192762049711373214619360386442705334776753060017025009663279804409638718625631779293782283044530384460664409959440844312947213572362000157445121184661731310367113256807667988517459712116165372334187854077390686424232845397326085988799168185873809883180967292442962787400403122877613921967064059723409173139109767995655319019760672976326405882256002161355270432224954406225632701006817726927993017752646163646048686863869482959479662804780461716481103753283154099211966087728907758206992363417643529732196926051357560572000463324027717737413895242694859733214555450649542864071987645922005032998417742110125158629796320152131546682717592268954342479401157951052757569945064601112521440734578137863123610803964579148771749295399526772647653812538769567718126498762713588413626083485596462894717169935538192968137241949357045913009060083252836367576786220904856023806156607657845896938778771779141010774534400043254147836791306872599616278768676992873947174126576085583065769589967178029014658381277778826912673837706242878564134298583401589267720945614280888852407537336233933651039686153644949814790228099208368490801613741134002776856546518573844060488304789538060379340516005003810472458753466140621491277010830583768824264543479736270758593962797105847855712491966322578200663142222824955430509225152913218804750141868328703077004739288706692036800166359622444873135306383753204647623981701425517199660394399076995163911819133133406054184736072722192779059045844962484352365953474421586882692402415281387870224856196334359076298172239828402041178586395660577937021132895604235766858114331336959181527996512830863380525464044982424908232038829624178034958162094185016527272496921976020503019099258512259058161662750374920723576799506382590785316093454111355449531737507276536235903108602387072286761246783938539397127423150197575237321693438717734435451881960575683328675908312679330925817697372410717029665494986702188270150999495711012594744549148151270709046633330291683265423248585593452929501635064999221084926108542734702016576526822273061756312387564014207455860024694995421411878826438119822778951112698563454830810294636536106184426364493317181744459143118665218098108732935041554259285708510039763001616829313884536919991271767731654423056797520004346050327906201288645925830351730239648450226466609589643556894482075895357426001837326226115571431385087007546712153739616566750638981551555693937431672151066705553365152952162801268286189471196755322587884860820097612391417643016770039651748639545542653475781759723972066850087690334240422105562222649593371180658605647034692073698725064675259067712247300377875729073066110729953989493247925231053460515697580600677615946194103402401646348707726760205468084951830236506505279955548849970140694025796970611424596379187448397679191617031170646473801724424600655832961728383900709560740455062590177531241794055737693771747212813803077130457903301081769298032866216131372418829272020075280725801561857293882505361536240884553840963927602418306494594192978898887829440175638668132667447705517128638232903659073252846650736016205327379781703848091544651122025977672819575885583084933641252222088244025616511659163589604492009080985349791373254842886187980227883880081893557497132545059337121098442455464735767250669021174972245507547813786642372874898784538809054324690271125180648181981937839527576630960124302288035191422047147111105536570300774512178867237494411552344241294026570271823888598020890034193608233147372309795361776389211838060587990289426766803283106490261666978819930573014962899410703022693178013357802592134966845526726686940427281335757493873447826821847402096961447432390711955512709250846392792282693805296026677358332201831463049415631756772745163473499826546327868740753769531338760274964406391850504170398282528076368655356623871870022123511672003266180121940482374929867950926944621902252027159411097850123381570783430887108279003129365280072961057555864333301807434098852521675983527091894469811893135669426022822051070765880719181553916967983865157361604289641234341812017120648390112858900077312310347799280497304475402231248419471310397083530615959534465400257635127848205150099824686163725246467543417145755680656409276690056839984086551447170645967327143554409034360826993302580597429872924728401104854817750607129702293970409427304657712833651349806284538721633718111089004596772203954571784779121625667900801336002283662035525955215576294822820294024940599122665659688123936622957166322918333124652426887855422919598051661567870342390148034529963799964696098031283843494015242601071571842944036958708847270015730074793672592280800720395367470907901033576556126819403514348469846682605056671101589060689483109103094428391239166969899701309396911174869684587659025480569780025362527199397242878664885347125788572937517583011867415702854923580440238685597117198652444669342907581113375870274290837706548728126736290687605182714307086623222614545984705042347141079157587700705600075912717909632359719070053397093989838742160762388259163670201503508274336490022602697152356616169013555282863806694073365404094838851013747317561714403972920420942635455515504454133980830928662743092931969992058070752610980265304729238933776564126053613863313502271377920423338846689175624694226380104699620685461188934341926827905743568002103559552064089258303520075824379403585611975146793990364938553549570592942446088714800047178312083662774025355123039573962703648125347165504088448011556662887743070639655001195486807562614660577520140832939401656848118352916017916271119851938156200826918923194797454196986425237885160989821616465783280251647879595095596501149769415267321567551433931195187073905213688427252510748308020118690858353642833012816423703881104977604202279894703603442395460924145293980759750740870952997850386329033646548812079188908617798729495641400795206509902513940861296237350031277409393638986278028186112637938603491544070566279633610795801618079156719935941540385985410996739989596188122789642275290151136345293390929088450491489238762483873748914797540405080648558001866666148126891295993022980222444929612814213444009227342898396016641985136550243215203131680902187301987631819762814058796645598278703652152441437485787253888952521334843655318499322735822841002691879413132868627250381599004593419653540107116761289097793127254191251102778333114054734270733981134077606329967058159043257016204859401028382366337213355384676078473444092793215867744604583739236469706351278587547299748381036021562666178417890146949380398632606795254128618827519218532441704272119249567583811841591319369528249583884877862566633160505242434262889122784111284055238797156185764400862255102719349805232974598633488923479607772437905590175282719933241759445698422102257909022433321789156219035822614251743001285476355548164612132786271744353709121310125735518879197167838894967593026947641498507293861492197154220232413829375699500036780705480135986144694843412981908526281395969463862380646645510479585254502956532812852007026283223603455255970706773090765822234484706688122414910535978387330132909020361040265216751716704649967804729299846348874598710797513666631181378846927445311428002138586747692646688457594544968494091548830038932381048390843055938833786192598620324657903620942644859925475047333082334063279661356299569163148139317737248957195600798659085634806816450577672882067661302785321695209785326493955531844090523804970752218678190640439274258872370390137973138297857291923151654402983577394357882526771839021659583514274573425697093355694141593373991560752800887368777279662689521752346365492639235828790788016510586578939623764191504272843529872364246593224195224055504304803532567098094290289129110050001230048760582833040930831638097548827348144480330483155526075918790758460124623104137785520635194572437992677918884309866179708164225771730559849180600053028327151898164883378260780456083730489821718923934810175367161565501489928585684106892507910355272046755147500484674335106584750567018340347479874005140948119094797302520204850337630783355490763942648003377783877423974362379983886189569447356020199793248792448460467934241088754859470535577978701223398333260712578777778843135553382224711501381671650085339274231422373671782081263715904159641939427077670812079572427064877829655347610256351085345893799222454109278009283071706796709378864869406222571725939722582932314611692182420987358298311718692661675210484259463056681907429950395038329026106077945429136593022824016494337120438329277651592772422674638279712578340297335518790036747704914571240234861820506787466824892143751193483583589701211690231399968348413025777803982112390495356404335025555173308411830557687147215955252128915009784347380375063875578713872155786521861958665227309487181598924932735103351656331242989487968010302529993490835288458803815433398041953042144378030216670774265267366272304610962820512091447809035856822622666223333900050426834304040528206758973830777328888946455157747560895090982912166056495530758176946385613511171130628726826444438429598518896702638913099687385593647413151915242858569285880686457254243167131993656789143334567390766514334876814666230686083114362180336235951878214375298102773875480347585480945442632783518824066471180267373821328771221865727090197683672622354466741570077026697804012938337731923689753192240555959421453630663527049182366088264247889338274353165438329864075779422553608266050220166845451523978677635345097304475878724981864471645573741358178461590915716740923244020741564576584285428645055651091180100489864667461553915869107244561675154354854435647261469133336246978186867628512125801982766400129683473983355492029985019568121251341393189482668506205866800303155107229571201288248765805506893158976902102608530585205977825392492888333900626404343332936141349538303667316711022578894958688028213248771681104558361669090584604006955977262142904162721454451477444741234585273116985576263766595985726201546683457053426318459744861863066718662027008332551251261106389746512219308453504530564212525518287096389552649980462178902082623603037339698252439202363877265519125792271492764276554440202866839184862742831098708986418250048681446733882995675670618608405549762387868673674493103894630287852766491781712822914403577537326071731216616007963325860564184053018043616956672706935750774478019967528526440968971385703172027271881755274755200804771135825647779654365746044224806711564927510642044157547738839106624321813162810712147949432333584346796597889124660448691147581115094228916284011349620568272408227026563048908754930001511434672968001022138680110308760281379663656360906486528578637914990717903744956482798784281969140267817132757171553432684648675970030522723764615466036360802804804928402059537497556833675241901547533983301428913262302265580900693465958111999930504360152132423714714106593473763433777691094033864384319223535264323650277232012457244861216102750560074283682887467740202060779353396952407919550208329479837512773402521945678157695652765862548522380611247558450907511168543133320869907533359921631604121969632520021889433922430670386361622057371217916067764576807278706227542114491269078221132810324377269648677632197225809996115685426557923154967896675417709237665228303394122039475664195242612736590553934706057848805020840091387358543498683662680315173784601624950891986530276815786812456911206922275400005963560200843672478038773275500791771016402410822721283226458897627612215126174998476517759671139767352934949649492469180018727536904543378794991585840048028894419930052974980754773438231068810086401608472710922986693446075294675488920390227545112121919847015718930734649198301941868099139871764296776896634356188587754542157877606294910455546600331946588825816411846373508257139700794010911120356858417812449491945924319696002676207826344319694578608648575350589144029628024161120305833673615132762734734790312430919968948613161386642063971003843625414945736713946315626135127517520244113442228679037240466144840151276749440781463058965351720364706006478181812339702787488952960598776073528725312012873123861207199471822288137104237672083909871852530542981953021550623046508176856233965813383833131906952414269776782664350278657139858642823729170451492840854766712293972408147952655339577762323968398714706152441273367982398216648952523754031683394299885706126225662005057227430230312574878913986514473892845222916861236101163756997110740327929737782578427652709850169203882103348822894545899986440601831408396039402835153349941904195392247517702684659022587419008846600639976986475865569770415973981481454317709521825477125155749668046903976944746858384773969920241102349808846549996600721847227381532904559826840752148456984445322144841266656358725292700601629064504549032629415061729414853688808698683900725846611643412688758041755011184663552500922431685435171921369004144807875517702798907416341166742474249782403727471955581494332354952051347084911059135153006534303487123568288271901210875168061444834300925730824183094718146315992318011939755306771363821536291207860078901279119342497910885005920059729998154207472723149398603767602212519579505724864747876129364937273515490461690496985371499452646756518747200873641571219753352136862233748809325811176051059518043223288138504743775181302640246646344944973414980737154188645669619411632815687656302215712905227996124099239821160987654591319833838104952467307252564138307848299075368490835661573338251419127353221058575970444933765285771911755405928716845315064006718732453717474053435419427602531461149104693540971436592939704423706339290913122034200288079779668886325190849923814144256958347371677775698767186692999708787509492275122739102984115792707865944546171081615196393631741965042081718658643514566941271882321678253089215977484464698770734785985971071977522319203485886704592320658202823322896165272513471996333927183239626393178884652405070106492702943839058016238966455934614599071199572450356309756471817863960233451380131473562269561636663703322542911642454403519874114471294919407052397574835003894724311497482063996155591546642738370660015438640816149674276992097970879403584232699003859318362605565848985495489180481097509779941006474105808441295371768354217662720651433579439785588974150549583207384501186528216670988159556469495057914197327600658828621686981896851300756115388271147985583736972386339967121520231742551919864672524163063094836809683494370537734921158874866327280000091775668940970357201205299386664389229542543124709927907520732890453406697613004094867241000377773093770754712517824034560944567180602456982554605981629766840225344547707336957305639601921653654935889493695000304812259515576930284497803876355558189473744795584382217416517508473411894019609501613499601773494815586248036878273564960077304336065031459682757048235643225483255354751703201831616242074583954848675456428798006890281213199067714625820568127757585348615613121075452810622878168928503643882584722057699368583788124388236388393240980043299948486032461890649916598062688394454445016410401280413360393858452602888359907632672611375959140900117542979478747784734537016223031700361250896094200021678190129975470601849055092032346818648800090383461677314197943432296917870778000987111361921316809364144743134442096961140095622766016453467287049902545780468121098116624419637135662371175572313974682916596403243675931422780799377813301105429916794494000217581326450595593663291793720258230986054351938428536894081665851537433418162832189369043873158368565239344169464991640553951068160000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
28000! 6339493099927976715505908353222735434661872450050060648966975424308663460410595397297629600480652915202232148938564446923494492239598963776958839624413814981049690010322962615053989010845591137629926120845846378429408676738238337880844338046748546705954825341413185173943997212853543696839010057440590650562743835785507501341161633588142288510295382870552514449023856839170866594838676156756249088081673731943615345367732247593836667962557139199444538920503475424337890511476442718991005519251105019733194653866483336126050503407970831392813267505841047080545541548269862892575291791550130621567611692170193963770487116339689871071205808468375784119984446367353342911400935737387469150079324585377672698117131705346711885106007772688061938415325178791626659299305970242014632441511844683060363224389456845147957506178418198917897166221225490245349883834369917318469154983031670554274223393795106507150831762150926672719027700877984656077575965965172783017804960432130676888000915854743898900064444732401123553986147502940546826724629863608994505460827443314744593680955161459559002642241134340365730633085079349680636656252752833376023654471126371005095456813203176323084395558729116463809557305453480148845342416954192576674962053827134829992108657058478668328445449436343378177985319064945328469511979796586780511344694303039998012324128912437257246698013484312855902552937872761072647450320976522312126917867856928271951326091635349838360496788499223359889683642016333240962014412705265851480998099094806147370705358894996418723290825457328657858825659186811456812527708320487914309527530368980628642692200178214975955056440413038646405806644361953867336463261784518112884131910083049636815162521783357061058189208130704188137379966639659106153325073633837969386928821364081857161001567682775737080886647150133915491760127283932661711677350580991461179817877158412005398261503482062964869130548117943053866289193872507340289688564808596939642315181484494315589353812998622167678926187832320698624917314148355950986077019552861659679381219565964947601420121287092323497982945630303397994655328587642565738749892962039342953735355482680392062066153890070819069614185280078496838554410916245867122629885655746037501004620686302475648409504346210544921574543993323586177163694889391538646322777640648917376371809980583183782968050897113024951652965697763942470996764671000603840016990939857994650049752784796844683127040352839679405211504669337348066795774727510375336021030776928760247105874929240033496169352822794203166269911585729354454670233911188262971025376598090209612630488649754573691519977573273243725981171635817518597942203652847097755078508346046277207432063661403861358400697179734645188831475503941686030986215516256583798841837848832363021900445293797795866457320136779762378520658567369847248647100144378318282265314592953010651637161791022614942211225003701011706064769005303373916662820248528351761165066214487705612743585714636002096896431737016949064699072092698302454627221908879394570113465322955897820290605295311098222394770922598336266643264399071010147433941785292675870700739571410933844890113612125467110668485647049937671191972211121496070234800320756524979736964618283699738051019692429113991424369492085411773354541916690966971059085697471224768182198079959174893377777128378015792936862955358658389510758007266880735086701425996205048888045020621970416223397748845300056968404502946878344426743023621670347982873960369782800694691123096444500495278923099307758965438375200977331656883403844850756781271378443593882002869886904577828901826016351449878091597698365265859072051997341117031605213903324523609508502754159962458556048097882036176271633771868127321345527150143515564832082049768090325786251270723519983525669985569993570093188233361870240730224045673966256238192095344844211735554420911378705699696171231318474249345060053178343421199511447652557634300713996139930446375651703799313081483078750906272728178685086712152582706947623857799713881300168009648418858721349276264213213350325462743076311324576328010079919566219176114936336701674534294914290876373044601234575841939112269006452905696618758556848049571991653799941306104215240474967139070101201816218738267558682256169637949733163888108920172886835883730269426389101185403266529599034124919609121986255318378645355508931509166061265575741313634248895869043176928732451140968321599162315329138491174474994626492314716537242297535088699036224014212747864324097746658535709651598927465313854969347363595844556390919686366785476410960256280239126068595814475024151853466144373205822977641069050691695507407036529294282745812265515049524855945299085014953723373994602117076025522737855615647777749879240812566143932734174558388540741031010834271357513362771574005900239788232312086076938650074390284910496737311993734501470466746069745814948448174563898987081492883654338378489795430769948559819194470636795025031407500163857152243640086180736176649700394943068895264671856265977823962331688049073434380273617169758109395765330828235978862524283158055432786193262567368391471849533430815762074895622426152157114166587200738535513473082142319088195578154659006603952814318243824032330596356985745153657467327073967169055703708585519866851206886139277880109687391552777092425056042459498718538671657180649708305314523271599329427636353333594573410874161828904996286359874132507487109574914021066762859566400834307288778010584779139510584527193144768146908988214526296931777371957038036512326518961779237673674169368273364073888304344288596201184490985104452069838150457157329024088394645293478684440552190008940414659349184247850394177259322150397247490404885692734938100213796144422488908340952816121391978589190803174437291235501343078386889800108495922766698683889647115778896508622352789356148772685604512650985684573686847308136981400698693318185385317684083015043487303941680318777370918627590966085321557017274784683857478678651065577981928860868063101976927886373510600896813269318440423603916947411428009068599953061063655284613781227717270484474803670799539287958742728917599195457259947991003161704723687697672684590764540930838460230172348904196186730207825300149150559453962884197693163583162291506969472683875496382797524299736485068397957607095995927544637301564337252533889863908433522969831817134640156098305317821417837044322017503850879244174074256390987460393911982069301010643929848669530586584594695407804528488676363777694811238482509681366010344846012330493568491250164970465380747652223398039111211847162954637067729936056636817101624997871523706762790530671430419761402539197583975014403639894203689134648177760852237390087704068369566246033526690748087415123604951236974755423594985749952672527749094731199227365490306188101695745602376517406047835492543860916880477549265719479826312232159888194367212297210475172338642452857579790137779287528189032169967306533516452096126612932745876192197162233443669536604494257116420858975906307294767234355630220629308152313539670266684592368734356733451283694981312277127020942933561977568006295034150793473523847241973796557751188798794140185983929801491338457432793026656958667313375531098568500861088057670202741644310936821749864594852450249018106192766186328604825301320394232313965457429578957007432192100077997789718263159278388343552677922225060647116204285643198475223053585220136292610517835719129172573939267702278162420730170924854787600260270498049573074599025748516466508017959119606078990053907396154758658257739747129211662180481376742974258913404545859556995896571343273051459950291914754595792232007052231153319772523982787655519559259985256809707259626856943400355702275447347167820118845819769433701043144565468994007349216721096124948766002345861147988879609483700248739744022402039230746338951353370822328096768564082221476345308447318720724967021869213318629159001317444669772047411662642983460208268021199283358091566314783120941209155173074829781772177336946961335476061468635393366161843265837961406419045474921676038849306004373425988253541674405568335877448804281945710128357748541221477149275745643722819305789373329309747566600244704901523228953013055092752316174502465157790318691040484195203832769427406567528086208139513131163536633328674785084769151592792569426039324874146741609053128071445262617609409572605465049203929728423291560216099249183942768357112624844607576646906921334463041920287293197552158018992211656606973864717403266864945963377856131617112965561741813989943015853649019741846444559846536969633000989850290869534443761450281670856795198805979249245836077583997897080014872758151613891844842045569419185713918658840086433019027719863721484376671127903012839045431210095302815369006442541344803378918795583587294582936482517671259891292948546448231692085386028009308726331995500963885192867677422300005201938297354498272841940633870362391239122932834775517515667204892049956513197795764286830477168166754990155477455461416046928565740704948174911683139836938275714314947852058541129065681714006043165158951565949734641167603978619900789824298354108644812632422471642966285128172073835775259591336800019480285552515577778858926046081352938331444575571336909768864378042310710128773401318135307282466875919219899368018872574657097544808581397336909284407932806931356137487502236812746166561832246302185594829482088674286244079460576243610829345874775859959265803009353175889945577102840555109148815976879990090304851148692377652898989923107586973221910204784888099646341613508860509476378899304302214752583448361497860080527023551413429089066953734540229109859451241197728971677100740244038418171982557231428469795215633609389722590735084859837564332969828760763491486181039290547173251399682230814945311525733913876737704314303458115008894909141072802100844454979076613779074970473118368292617032692062214997465225402475072333340972401506513030195601842148970926384604706131220968997992354147628468658957978950122719637364556452943216683356555585621959994467848039364980956354694232673579313684153650759445295483705718883940520777024437600364464441059587616195258205120476217383968354391594882360244350524654217845674008655177129510760224773542957828755295425128407751868231649315709053339141545809538272334142043945117066092385562491038308540384559828869713339303717632517926710623533780366360010140080695330019576557570149344292965075357722187693320850984778704998637589376460508787359281609007246431076122406849552219056626370237013390565654425196009233189502849357393873604992386695219605282629046209505041632091891863859835539470669674472408223345201454510525183617694628658250952550127852485658130375647923908058816130336403936341957181836118398085019792132918056426166574113230293155346707149400183906400227477513869645922640856806777843845723387342383146873369979054468160398843191526469249854599168684922953154009258607885403717892004551756796209582145508863434174611149866201620250558456010709495947967721662148248911726777633531807578637415233574971157400909336080605719476672306837275904437788131969235779793390819955789955488399869048513992361556837417741659239055894356761345521449749908346047958548630946569658255217352424223325172454496785776691483892615787925859084761127344756149535250224135389922781857118821860704528270382305813594550819421156370983052646017979092176898527384411626920810157462994141714547474616722953114305452414020163730488711496213371340731400888179186908150584568893428971346211062538469986195313414115381830240883625860617737446999601432285949068148958440493553994409636885079091396770540717653020652307587723573916718355210449708048744308452911574165131217103599513054125559156653073454736132850817296974993805477882309112491768741838660035365877727089961913985695517406452451948992059700977780372544830570668517945533993887486117775840485464140466320769695027556974581472717917513303839554911567606804675765810602082442248903626236835817341128944544958016253318345585799606744806955425673237149665967882790599097983706026191712194990693335486674751207769039079179816728704219731149215920840194358791794045756067826209348043040148485327424376894518895531181831735873507807887552904349273770271790238741646968435922719376922212680245803324913850780953413082760921550673736145838892585733276327298618110955366698257615555555877250909228346661500806321961242574119464074613446772523287492930544614428978345805073468797103639471553639404204726549692769670584466348762771223789489412598735421141171266805785310310358669265846957174830394931388956028479691540119655122036488057161340552549233387008684963710939218867495816944018932319423753810825377006127117852481515562848356018985945741886609052769133331483335704504903183777786759915720975868599993624704228430424469296788299500990699408914510840438388519666313845253852452730953391204321685053599619557618870371201542905229796051553073245902017734936017402238595443935041384131785391147447399922818239004066399796800440162528078664852327923793713289634863294193473306700134901763203076698285214618329778026617014081452636024506527038611619045165064005660773749142020365383951716626108765227223666681359306113188922960047245114885382677614058447918866843551231244943089388914247695688340573280962863547753628875957720231276953240922881397020247615462861756214004388435321668741510270709363441213688874965945420805718014233067466252100845242895271540308741441453539352157239096284237753985993811449610315822824502714245775170514409985340319200561502432906440898311492154935152954350813530188208117936166818212602325224042093946662927995763195226011698871444710800870516928350991852469215523257369363572240242108181841099275876025421555387884537464451428249253573661704413425967860951407863561326431318730076487902166780559015824940573425342749239389696375475202871982487727581206557609675492612609671349668869461605352627319934606719290362550592286586499707869393197449869597085994057904166182432401182196121860464166128972299252227765986739218754435042809633228320427736311238882939740054732815003212444229931574937142368211204492939674362956693485455316948785886004579818962108530316697215021951183152680182842224245060552678726097445242045179026384684673192748370121419120406945704576878561632918866696636142737889679534937263381393243915762828195847988370706292636467210001723249816773781796504904174200421212995876842323342046915302015681433751642984550958998684198424608747510015178988724749006852810070673697770195309314739551743044609379484246222402829055025707213594827168035746720553351200590386629213933965616458610640558385555828665140178264510278155509139594789953942833557031750823688520668607263063365866687756528322114031565811333740523174885442694161914582758402571220343797039008565607448605603910780845227608634075848467288303792418832154212617565708500061791430706322728072288015165120086442206275281893824217260173797186920126936624622914490983074896289170488987644983604938645266392030160751128175832319213039619641037316965944212064135113523414867356517611295168033604842379507142551917697075658371441862713950152020113215813560578584106237420188956498268037734067830390816630263057542186205385096645689128405836333574632259202283478507280764617359490540303771469910420303661460777318572969658767322962167489864832606766349568259128705502629055593290693677914341676883698458753359666388500351657373588021445882464254597265065884170411700043592411591754013118063830810508759864953819252965616381203495239530124871252098398923158517576047721056902826614904901235302419059866990962792085662801904854298951553553468549666263563995516800988368341038724952593311908569292068221615527759378732203890560121224983479394713525488675706522824671053673286637278505679316466689387637303706851034819224208060223173365063941578621510258684019385301737783703133985207024736822416011893562807692348096485876017363980281652719623829389078170261046115300609205284142225625805277743137510336278233473043053743951967321962342697877656629195829583419914752348136888494790592156122519712477874680829618504155730302105717184677518907111626121837471309292009865475772480262230609407551246257483637750341477616847019430175885615633896919215207155275018143499110389684081568363380414197464971087688003305977471636926835351417945562717026325439844235510368976833947550843459719008321940741949901742427538221299703776147306926113799071513097505871533756250595372329534906044751052809203028268468847157156826513103345634773366553060066912567604875368712762526910791483793682169468579320991472733845909361275325560960421733288195332041002984294278905266469016065902351102442818373280310399462138302614134568512669012879847520145823005331860928767283301808339028715980543535081534152594716831253949522649573597544339388282642903719865579804891339681063192746017319915599927473999058678642272952666413132799404877871322641512232874159003586922725028762633154246820675650123714704747917977974896367436039748191054975164579799189880169651154874423026152923943933478910513593967235104760031217133605469062245776622389986096045548508092582092852010445107974227882907841166204095025077961552535187683262783125526061060838037871568159437735839259188928685960535232156977627386094651208489818605273620906743529482789656452313050593868473999460339693078908218387591438091919760851748093452445119586644446061327918483940417889917787231240422209405074568014243498591229913456779462763850326324122147230260882648598955232873105269962802978929151495923708982421635257527470473691020798915545324642445019697449795277633809431873825303980077361083248688286342849184360614399973906517470022910359800068959370777610015087162888713021447161360557877271911656699418309351382969227254559685942282291231972377322360310781249618830855672690618503565058735876993785477524076453751793065604671111740307319136668607791952076135760190653311459866041696373646404984444434385926371603659289514277057127562955211220220089388114435935208397891271957623868336641931513684893821265411023253860829863360105215701114662746624670076368113439374783764719396812961756105717928494357208759886325976032699224733124105410539187620986776181195624633557658589134694012784950853239150695418258472432794013861280096951881464100108268114949194167834845073984844533615140447894593773499034277069581428749929707275259607702512610264004183334975861157914659516274096567413954091635572965675352219060901308885376743605457427703624443084894978700027049218409916601435031404538614192355327611325801200902111578488810494779955202458500397148696054415564713771597167665289757632368371349287423969332327621252691786560480904184580397308997164836127100461029673318003187481777935915909077259820195703213445401336405670856655597375988887172978787529934882191946530393044864278888486015380722617792340727728145126468557291903598790977043024886479437619693359944493532322777012018767139190325869526474753433958935500486540612402473992535068089094447710228684223096367686281739550796960136871859237297479911677787132226250415535939785330448347272590420562068519217842624848678573102511677255356349255441541532311095222147473680790986948296515495556014436152336909365635686792483539532619568822064577640209398819659095501257787161443487130304195821876892427119467906981075847809156784224327086174586437757424974711984217107194763929127644374779997967297984980489952190855941001402854131272021388354303142146263838581445260721295941695476815316968894477966696254688537592679556888840703272809672632266977176738731997780543756782996428400893170695076326183925440572959830254686091261880402361306695085139212225364275687516689523964283308050494798043339182299406115039119316008732573863628454142396564745706126114828643972087983956100915435761933632307120192150616294160577788258939059390931754802745819765514390682969263890335083324907649583775429041363046631051520704231197043511055343352145273257816923695730710478028080806899568751007816639568219490294205843238633845888439116137299574751231352556121630240738959266861413878962935149592940136116004257414721395805235747795612311501618073159423975001464422521909618726689997588318570951902958117778793987854009309680287966303703025569876765811935177840679520858417678535606125197344194450041285546582950010561926874063339411251400127929410668098155566215409970971134514424436199099606520266022732752214091681180441796894059119300582954541229157339963490349059464140315897916483590845307016872607457244621457581089942043011598914811474965996882263831514785279257224621516139146441746664081748854603586106400816460137895980717336703363997250988587823418642311115247941167060995805411073328021639488633830435265161924660628801916375357421842740659883550116816000102761183292766272275679606007619612963874394481741539765789651160924525047571703082247886105634700040521942868934029024814604331228517568542325872709325016901923340791451933996230138801530787697373046042895274646649807657752789696200644958091237416482078051386507873048338306255040827319118353809345198468636498454246774514184198564622168969258710741245091842941711568933422079963778702467700708695966072229791060791113952794730159186774056137710188695709734560068012961462170351722550391528366379966231119053650153764032111251010620401976890344911579178071213666846004821856710978641320408753831107375214946778884722433994712739865349496662948499310764329857951907602852277413710741788674721096004160455490638104195919222909504213311250738387063312638986497529157675788667183561617497406889807407656723006261385173972186356675053260533963592718032685975382983885443152462706980819478860615089928253112313958980679691442371658906853747165691476273292101032690218677733491302731692072635922900101441429768700593875024783763834419159130174882926791565349815925777348590025544968307341191061560139037918830277152729974557825008607335609278774360649896283650900692623674870830131550473272774120018060771052470776157735537975316663518321697343348962433345431934147155406338304227043965466301071889846076385610753554499726601743426093260028465997765579355477496034216466453366260018733782576867296045748466911763547284618161085199459701048505297144323028332409225771404845203256386366384268988993980966966401229072742706880686439197626895263591748658744696139459434181401363283971459607143496523235765944517585207985553869690000058789308217779245720186409634359767613584346668965579815031486782625750908392677220089320751843932020698256718152195829779894289664434401110304007965456107999992149763220447459294819047258837270572352018428481533749409842213488105659225067669058856648877459868850396836846539110420590451230178458440437185123258222271005134002512287138080938765357817689651677066486709039296450651289761850908712454270066029214921542450349041419313191662598403793090968450117553916657093241458158858474954575514336081867463372311539759264001893061330581377997237321493451083195220221605270616609353207558695083450711233320339570845998282908989530311067010446901333291916597711301235106574837091393221652996155870486298574447641402191951233990438700032565518535337902924687908662657336524579564634476265222531743462886812553795515219978311555441215415231685743559675096493235122134144144280399947253675130650690894621528049107483971478678889343813641308508303593942454607729236959306390329262386259759895024319104129790341426606612539671170336305990501721533052145546665702776710292614273651764003392322147921585386616223741768547166860213962339544551027302878402161178485918065511744160805188408036518233229371587751319901357943406428231099689674220535469449009258140960028866636552903452894196978704573091405961845109028493220970656562280045237631559286988972245332025419410815902831871881882324372224150080093771121176949357592470114524395426062082805763132307610238973908082527747624148194525701971382306724040083518011241268593197490828617842747764112749702501853611253209446697457500894053137843690881727113266695795731820923755677124095642214747906668983750696155407295127453776036709663150009714838343636394957841172035635843882337594053377164756664370104926574356848231746202382897018598701410754917398243860074160633169096924292260498232319030565825499483971164895787286997587312899624223214313863505859983083495279269809477915471714830642425167737404819199774914329521017031656153630876609855582179641387147648522486894312669432892602809416335606751986269699014371455602509789272995368667835725619074942880017414451823739273847642256990232273437305053990237244289505619879611473141274234041608549029626081289226999656688219823422329088419209593898325781838631752026043749910588283535691081045137624523305669139548817064330439938058139962418906845525350175472037496559835925637699971370376135734501420122109837911414157141180626550347877758375989227751263982020500224918486032411537109782417877181659011215342597018215262314565224964323582996830815171232830857788766806233784393098569070031064821062564432886987288624823357234583028754857217493973610518521181446163534633979976983519728130552272531939135196586095546818183669668531300246745017515047467350193518047807446300659514820178707186497735524853043458503447259482777259797720882435690238057762139807628926038545416048614729281990490018138553744168213701199854543766744177717765998754088496607414285921871764849669737602659742770058495245762194390436646929160877566965897115112587153226338484758034567715378144381915716408800743028162248529174453376102031015644954612727564039602272484525031881875142470971229737757649144195432757644598737185672134222791825419733497691741728105198866643186502280118370010407088157988426041594993691019024849063401168470069443563926190018281332338571457714735159233989409282808145969060329195658378794183830233729576536213213512282322153013181472394317096217656141211100091172178875451247099387555777204475402894316969467160210437038676734783840783819165093093387727000920336316644485156726944726566942041752716416018991177699115160566468423864709788797194767989251819200129776561472558075164955538362412372569168910531126757744080915959186768173655092608566987137855624245333837437907543960152609834832604397527883617349016855407385735924912564438436375000155457385530966573795736589247029623086493778283449482452302186500651442523224727795515282848033833410324856361318198772963934923454330468597867221890326705567084240510454407066104835748977427484623921829437643016885802661969057118558823104881440403591053495701977583515195870321063566634839282265909756050605985474334309321560403583986411806666320057076396085823191943843148547842691984985908863821426258161661844379690496427466322781764200490528159977479910204074615625271519828318135712724758402362614893164698265602596224004361349738576594902632675874066260052760355511621550346924749139438029081688074729126602792614088728097968115050725218802022080360782116042563722170081262619488973285921981622576684938604407107025684265252410153350824406223998684953177723754708972883032290983722800859013351167158905390257649225122025806233550363150364434054925356156082900643914712772149255060295614059595616896100142919673067479203610789301589433015194984089971908762147335874963208335976281847917043880860816321943604747528197252759842799918580950093417494023107627049565405779957427232360286362445926153874560847505192797311646770865448399006093357487394067943695418567073214017887363423510597736185377707102693536353849313573425571993759410334444102931694001260681892391333722889831068269032716948638077769058654419818844321955002952031870859192299566599811635605154154233039758338109407136095669646445249948724383230993444348240873038611342825564924526416935211632123243835188709476774146293895413934395578102433199762561406210548096811850602479202553084858998278640038904567996044192479753948901922019465513474761368565163001140938932878543232556677036763148101982208761593493901714995811590452306373416376046167304386484020386086871146289082447140452198858746766669157180934368623590302629779230782959460922419554156489678470247250458246867455241552102275975411156793620366386079452215454483515359064112427696158009084172121628505061471450242871123531697338181462687773913646255611022521414166496382129190305941619548403538786941488418855422189663935310072100620306627286048142142375879046340856202337678207565350915591935631866868213446714414966190758644689181060012197352836800460678566592845205657280502837928161766047047008249755699528819866413086037057580188159503326915091571667236383897784311209760501129929022552438151849237992490303447205569304537998877021458850904968851988162737919721662190588658073491721530654585718702281388482493986090713126335871615248495675241982884894860038327398376224869458638631522537951611098579836156104577395691447403442999802535855057328330862058590665424202163462625834261586163594571495453981539452625738415097343487181324234545699865923567910556427048563671500617554245579741513009508918949341135319914964792526335170127287254151852756904401712107342374854414419027513345959120565148528261436002444630284624725692600173718299875984489564497853858716985633622952399957956111773257221516897502382220694929465938229989028013077165743602598849422537941915010201914306114104182987079077329772500287100952349496916666666569839377338333670656182540208812649968043275177762620445295248075774514098288960032537286566068610434555864427146089319115488985458642170294141914056508951769444094751628545903139911616181620517043564107258031192968264297604339122988211977790556044787741813507782775774146754576693434806667346538125715385661568006329360645202522127640244100309541445802450503823161457953597066657910487357728034755537512285105421113771796265783062001496360309733866627352757683386353022540354938014236482528033444068032956692701863656372476340929018145255540266069981447819791012048664748669543065248625398587503037504508754308069976194390953404401735713692323928404810809475616432892704471965363126348378962465531359368142651985535731112511970683738687845364544757675976102118987806422318839982365651937768563892760343930531590791983812456888916930020817180250679674414299001055223791722530753299995592741292030952131399278623242252896266780736425339358205180732389506849622631539426288818363808737914065865345000531418061677185927747526685576557408740991515043557031516234164707742651985430323586935027881037870265369542043062626917383676915189140613751307769456077788240902617833098793054895817465911437157201819439922376340108122077147920210475527638594945896557919630480949710200287260892679902862882502187040911560609551732055183385403439326305692928343617843450205483940638603695521877287103447252780509236580310986479856556795891070433149732398315750987208296084808319781357326769093661921667711693592983965961954573169806044898301081324731550747893998496763633159737326350515106945160350989062169580958684315585789608739509646078134778911418530301893692311662978653884400735763089866760704160600548614569243552295245735937958162755705622727014016413003246354478893894476754619097400008856964841143284923526717403854900305143318207866838094767493523026829751562769205258483338900911962897334912101603951615842920039145974663507987814214179248667534247800021413798258706341890730985713990300044483110969498783817760953680828906665891899476156424909860378129683991090788550429326851791197624376157202242433101188307554025672479582531951745934198809682352132999132607939121927348595619917859219875818742450836711393784982641771092254074449325908618768196703069019555642026014571252680420905006956194573270573237175952511269475065547817623561736395138859107467702162644322248137452888167818909158147291354033203427624122274250131725022239131544489304560566581045847951395922337471683195387138074015937861941613056668604296852311929861513413119226136383971311415118316152159405899574610231291763041396023670125213253174502437987340870597017304518323933826187411392499180253638504513462801859834202683302064718842320731967507179027960053339374994787280351132684054728554197931721527764688789029547987518369412686883688494011056016575219028043031802678268929543918530287641242377275060836195938317920614461866544451056786195337205916431150162220045473393739032841402969222676651434434396067711075539239095348940635047095504634801518889465581386519111286208430280113904946871738452453009686625332248288061483533601339941086045898893515318127814558419648550449731382639522097953126213218374427437514458840655349151828243486716720222917872389024831354226655534284529100687112426602648769093974645244669476477740221685473780470983107789817237676149110499193325385073408771057168174980957786702073935854810085002634854808869363465212439516240816835577328358415831849139821716029440458186196717511408448709924214593247127749992534287290104790825175294552917296280906135165074593739364953886873911543123988399149787027026076883048086379101255894224509762787283968039399700903443128545793791345457348940271943818653076723895565307239221577196817989496573418689793487068748273536967544868430735591813329612206049971646914854857347154760689333858842985566886147385153092901237226761154555916330986504587906105830138341423118360971729780172853558414484549037935282648437426115565537419098477599502654686248969413816499752910833725997810380950641701216148319077362915521788089410656410975538772588256065481870435975211674720929382153208410330208221775127492202662977220619373504020546101142876440949208497856339675878955277733424885177807409778143696803423853340782378873085173125229020674341418538540407566264067602778740305320773127039264184641918565285920888902272672411140354114590580916820745330731876594936832534764919087341554108430630364173887701144402011226814258981657456882063043072499718939036312106293093364098264531533588268226892037045724998233991091567829390847495920945998740334360471656092535858360842456257500595994772638408963113159907923152009489356806858320228820496900400615410508357320536564712268581403365740092166166801126964210040383779258030589458154190222813278515223198256517502424220665540344451736914845847286509891464410857579851970325303370236841018254476602141280375677233221513698201966308497074065268789965770770889088340122618554236590040911684550838129032459287055303056117112921940586835246602377760603040341057806495324456165559333580411954497711656432142187561478951066969545303296337533028508056647344059998284762697553383242752520493950810365896523178910411719270292127611128246077955805068796900879646330310369348191184169296045124087217472952241292652607136076803540220441578377688491162688761372848851549726105948318494762801657456865407273947019991540736661078076852295777897655360590651231767091620315632177492019271740291849929885055238708134925644942956137119879173078825640303622684258185164882959193486339251637860155232187202239147810852079891313283768415540258237333292379624022879344452751336654208657407839546708848229314174861739001837355905908793471760367981514230674841060194076325335473083217501886150867652778489385406550216233690190028570972699705480695921702230607379481691708715057830712528268873481005848825414772441233263238776991874517371142933135855549903034292170026356512762534943055018911604990373311546557894788759258600792834425659257920261390801254062563307122013736673401234039711673834990935155858110248045581634270340086380533590506579834032818917320032039809549720028751690572280833505970891948477661054204468513450397671302360643098537613339676170058772051470267206670022228307161941061915878086124872189355512224103464682677929238243495228818793521395656532739636345181097060147203338676726825269595242457732823053376685832735232815866438861571254055586325396389168173682804299903971167310672616090447024717697907744338530880233906467337390115510741890152767768461356343717483929657638013003630618049174537851200058581860809772440830220413646747519213247341256339248154821254725482430914927465326162490415769857568033617024607934319294758328152816399865821610076417605594243880344469314292730248855777331509262260023769144330857709116381711820227008958227991078375402335510867262902514904718280670190660028697522715457161067020781861387580429894175890812735587248555007129494958970045027146137066802937874568256512817151524620587685396369949699763880029881556005899496342881342708544749420590235576109057015775996866413670895415495132356171104612570481059042346830208328666936213320923690566511649686617240483751407505631672249368026760807718749122598109443459406091080831800968130912327214073499826411831396288329440396153171685795602248883253237271333578576586570525920322072489194271549233706823317191529469628637372282672354322196179538773136678561847156861217062703473783852181912939045496114788983358442811997842147069344386280006737597658464542166011785401619122084399342745911318608729504457475029682549301891758532913956346436053053137892146331000927217698060147379294422553984950000841811999879406319868909093004464256614059892896444976275895396684509162629181409392904846057843168437712197784290797157152282239603205382893157628690020950316124009710112440826762884705074460478123725812725253884982867027940551369226259397500085239842441234126788047236186801129388707515775072908315737779860823703018013727845243601791885938340776821822722402808504924519789217344830517097870555386793818261644900160851811706273020457519389530887763950760815346641237810726870582597272769762744836316943467834720675630489860595864376359909178121823966385479842242099739863511975778252166367282037633002249367267212653022206663936972156857239762903714234926242561772014298975991050599047192740751431766208932762089047070233334981120707103309513222947734134542888086984988538655778396063327887269197379506969622477556373239251750636274593393467204890822163349380167460390175632697997948602672014283682500016707599946067585776313197052564249487757229109432042769721338439398010649937472639600024823419558109464948629535466778001456985218782553581089809569219570327278034148510977754817454739164699353171388512248439370284087385787470714758526319988550665372759656842176407545129407283407243658922159020533360417226541709540367573321981903950423862771700388192471469379526216400474833493892006257426341245276339060992996952881004374447327563843839036787258478001379856734484103112477894102455996050306624296163433352526557554218425200850492651957170255151727335041305560983228652343407476844054824932009005335824964900657484571862727520448910932580885094042949619314857496775275964619930943644827798556391407501649895773163795170425690042276854008375948265948256372768818868241922541230067271705951972264931750515863786258496775880059273606225563193243261211185290537478084797847979634061244118035143073962850830425304891261827955713657658762690186162817642271032582457284695356982865166981423031821326250160361787629963202822707030796067080074229359152183698648014048368699369676792451574655968419106467171014415190895064406286752786388264167699852698148692181528751440729370678049557768600214378339751917548829223780664651685462192452410882395251717779402362772207941068918072904287922228542639805226422675062713225754866596746058084450102300655325593033053073813606132270983114672826246252820817904506759666974727054067249650463860856761402483348060433920921578108120732074749337466613945943745106496224139980921103655086467354431038126725550724222349225571989390605514117535071754089329445843867690834120780866151973856771865192707039734859176873284213900286760410601766894712685976835935789410592775457199613010880209262984652616404318081424161971627914406883004456538660543501569015709935157597439668804044519997473988416172299682466104494271076080303551755524243287064583880150568706524272148845781787878014706163187521121648304731603513492378593773228662652261260105194346205084047310802756743710442397081900492977292879015720202226029936314256368255102777503634542609838570550967478446651945683207696921580991924173752903609307268570202185261693387835366461150510081065316841223581432993232596675099622109998903042802244747240426602577467428771285027541507617002302039225048338726268401971879224244812031356021064891081963019638145285674968175330823979338717927817748258562066381765727134921272164458630934681172428083647511831535769745164491676242083686298462482071347431145789706187346102254045016042934707308769504532621470501994073921761842931438041573225890267525855228081117568396700571590780711768920743198524245603304542071271458088548500916788288433815650547911773817629528945257616184698185153944396380144081789024365254116595915795463447357062399347290788309775927919498303549385390613962955078958998326399675007589040670587751355979845741539972884704618957520348680042528547771525621917128917088251636757180058002580212955079239505882695704862461025501715171285737726530038423628950329688797076980868480187157415338661754856721369099910764736966133801361504706572959389564423430907993792279063493526745710791846405820030997485221861829895997029095879256407854717408033737071538404267467520866376222352995329073480345302314110577175668701734769737862058780224132363628379699960103376165804148744091306399505918537372549999191757371196202983267124942472030068468029517855304437240245016326454570571132618303552564459069969572535471768436495939087067210623475282804348765868685482161980946349201912920750064020854247561698264279108703039954317733600297769958373767949498405760966802776818399541439889415377529426225212118115642926443026616562162833727838143382952328079937121831613728109766061319636425256008956583753565761760479149873893542220780966942183851797203993682267114823291903749838850177344316326425910784568669506133857445806091154539445347077386789437545247242558385876709405342006349706710100193815944087253562208179632621189776530802002680534443275720297056127120387191467764280056130889297500189702803172025442884572494240040635560924130204054923183593704850248807559473749851381645448315783353048422589577105890341667951358792145413355301945630160738968052714620841321598329574324631185265752163662258639055141237776260229512467478418390782475333850779838889412547123879540507577004279068415889898454586170638440079640273058545110141349045709976064320155125328103554283194988345236329642102967373597216352665979087993439609625669567261950909442416497516976173147647236764567459628091309938355278194512138884993483228004515810480422119603417584072063348051674913078160928570940090108231337294292520159402948454930206285979018978239467188791196149583500128476567828196738708664513680486845984623169862344775057617946134842148830057940347413414268315689451066628181119857202668418465426550560788265175100513165329986373820722284021196157656276931999121940827360503804774836951869522345857899708858182355582198858355595759166781700465879180760624394373115187696541614013370127307498165077973598985980669844423555523650722682096965371907942528872729853685164858222553093802077671635093344424868770676599155654515389977594813674018941097956662149440968351867799143484861665730223071583296666265873641590338258230482957170297864925825370978508401780563748216170404370518010544601467696371250084151742697835576513693969835197009551661297512568630011220390498720312251609583900770453061695553653854107555234361201805807136441154965294269529950913712564502838099453943583172425109006535318304128954487499305535616965495166110773253543498367903717680733428675478292057445755106329313767188076463302517434992548551356530615667817864442706682060791786622186303729626557128737173919431763997769802095694551559227583767838456426571967572950939721482635353279920890330535740607950917338282052215693791085981898061736952359924591363871863751167679290204468267950244548667969647635065041536873373537438075572641573940694324511294551167195218205963628814454322174305425409493667851337226608183623830195559888706294748349703147611958511935440869368076119662373090728130078221306148172350226939855626960338623856042614402846089684051006119425807817651737294872287526522067923660745289753522647547009771850889479342250510174813932652770399674992417287360630583524323257251063957021384421415208682488998083973027756731552794865309691199519976536487683420285503551300526570500659704661750443080300342218034855355871674682234297965373759480435779999927339776878900464181445604666356082986624501780837491005081096230488430737938358684021871920611976578580366787322765459908739804085495504507814613582436999250925546873507140173963062107582619031474792247793656440600057402675452307218945424964611956010106865481912509242568555014377581429356390374894897236899634734956202834657542219615577274894357037247074802657545109319916724434721678847449389233023724108915397661037673303072346790061734530705024001259627193272121215807695715434122927569712116250523943549116541197573309388436938516814977696539594636917974692484650455201523915981595125418421500864488965057165970654848094022452690217838650778740101253218349501284495626871780950247627285861398779092128575964705854838053170776590093089412005486080749578219544008618997433644782094142793231389577366187067447568135343808029203696383811618846624452818658494672703778173208877228811369562649761442773421977324962450105897694618563476667245899022341288775616083328263549648526791914215360259850202779391364024835818832712262982024612964715731819022623749269983708313939474747577218208224411413077739101483521816177173081474990538572865886993853103901006473774837940583657535508730294005307077350316789606199974326039172749189311278325551755627545754809654455056815991478293885343428366967230936713772801152709846646867002229576787238311831232450976854022447817282789418022547981222001170071993681573560611645109653460498489529897637630067486538908168549756051189701217382899573357924954883078926462832996839534786921627513040626812288127320314135926037017762248395838556680350690409289888935321319161814805384016545480145811293508698471334372307295812714366252701485701585266563129613796134772582260222380582409471393931320468144353432938934071049519505565006736368702983092403694863230188807200713528978330299090750209792885887202458049441774095925899490065164021313949264651162045480885621439332080997623048455048061816416590988959062905933078763495815857651229702924124379497786858202509953336189901676934884730758079602802705966708200697750251342821940525845428718408645326308608019743970372566028869425907791645705816644884671955435718911863157580970926965100382364349497622766425762197233328860295692398661804683494255419063984049014019984621221808236622908046312967601934671867654627675910528190809369085498703424583746586113922966570873850372395464452396307641001956283383787911993099333665840134000333182610966159987560010058544570262643559009470034164062905957201121232147259074055624685811056968084194737036012904666425853974310333466990085617276063523537319822629215320222925256905584921702458590352093244922208170128571068201490667146951617929266209395998190175663853611713294846515122931861178372722397411112245213876533219550003367241953569644888744319605099365242393857131848356302429095560887244631245022674384665644983587933383254782040881343191470983479450769043819461520005774662601853193524613761548057532410125206618732514612789135525083266307339786299507004544257450685459556904755947128741998265382949415879724857678735468526380937177336332404179243208715484203504832636473074420901961630236347910293894991614015562358615877166446844857989298292455170097352773951214063041130778642274950523558183839561635018607415642227917717253557300070787810768609548070968238757561569692559314559387999765439163837292739470826186850052640969631008607900215824097580277909751249061219077656887405605328762967131426663743150695497404253241557231939741276112710114614306528590230026294719518797882404305129604408280015571441261949545078640030026512722551114571317321477148629080009906767745386008704039561610469422139058318491123728485190625893035009635469964579793674084568172132537823499968845848430116717022894164894894172767421245037044473084692844906895405436588544469944759625264618078939064374608790175696063065569632504576058652428629243447164731866690731063534118180149940778811363950123469962061540782661535820525164249043661723857433787276660609960320298353845082620103436387609418762370073595285946043370484565116932396189184655381139293456251677896600446202029558793592673187240086021637687290970449348045828882999605257114115343358523141402949318172087370249411646692168296131371941838610668756477524099518160364146155493103300832804774648544784532313371368840348341127369198180186753890655167959481890917314700520176976668600148140183118251143585354590091477345560771318031485027689124763515139307850849346192955228256715651855216059041285843713631206754185013603968937677253911507582193738483129085770948154738449229457886762457380897986798831274912313768680778617049072205792452051349801895129920616937522643529287164846026152879646674318599177437612481022379785645684040196646478233444659532623506425560868006192851297800523125343784073715290381887441083026079759429332252214037092262503113943518974169693654013170644887751959554448907761994152759097241945337091276595183585111340243909094461799063031326966778510490897641086888366010340706599255284789463534715161836889373199865050475791672840357928723873711935854614029161270677060602461524208102009189087412172917255372180309561773252477659375151363814114381491906021041538691436242121350261352741770733521408212457602245621438140005415020373809121146735097399504360384747872145558780259856739331602983065578054395911531146101607589859889019621725697002769361037967843729361164370033874294089957131679162323261278409981469642775250467952051311491159324339372409249796184267789359141097041465333182542137703680498346637216601512102081653770276157737802494348409994827049907069867789575019935653183975471890808172620670854878890832021451883471394391910026405495032895208399405951352090423486088926485204678116914699690833076290765392890968054475536144318522471068046375626685476754216835786122730967797941065462662151760308654993071726517405557123771151871943363031725033957689082332939065054020113657018139264616414832336377026116693832411564152999721871612144391534915046905677022134377050103014988312462206658536058360584562700582165272050141214518951844366801245619132605192646053971637124303967860273921244525559126343594229419066174115576165967755984759886148788959611221427410187208502224507867406597404128647616539513022653343899418333998669452106355392089372197426307440644407403246690721532111580534037621788807653394965705303839779157132000134497414110652589101018845033282433277963554597983060701536183319173883898255801249891480140610691556875332594617803883813841994278807496214046478368130607393451072201649233703758737560935221269580814774242301633501394135156638231201667318138265595055884341072907221236603105633279545967900136970642300702992882046158818904271501625520869554737808797753954489459571678794537544291567489659295110180413164146640943045424105692311091257532668062511883477057941545515900499827740524467151880066203994718845499271482559497800941611377689701660802204203951037280511435974956084898494987627001672241068069882699586138047717107219453278561475832679946397834019592311818306219964012783692155917255034940275617174966453633269499324806103237668055375337910569377543353761899941335588724037983760706081564678823108271080239682225885707297354639135221062583786437730343476274071486044374384610215924941924111674984872979856980746007099291496670879915763539452165689897981815764450856177255663647805653497151851333631559406663958341591402324399009051886022015790267272687057398865132987314464544208719884101184043697197513227549482075211947196433643511301747378875829464330738435374079878109586649661500872879122669725600692711079525272570634790983298236981860055321814725521014682073114937183081927527722520648539542296680361953951280535849957327505570221305571886594181847866922953772409974766899760203070060869128601365080182473712152407940945081287857009452163824997407122068857396912717723833309682388589183260837893277194203983938322914579357247433300651055356602097089116205006758327710370716866048707944309413565810173484284337826632121768164909327479947743031081856475775571563572609801919506271288240816798060356435057918448643253578328838857014551979926906450245555543303274625349090502115004094443818002576811240245269069020608175013013115180859056245667905347532733317117892982537310763418955198419389979578190981735183656067475557327072617657521779088125517080686824953077996559464665276930515531202662980565932562319939707174070992703056264539462063564360488284330574312594514669916471169676712378305435606205715153883171726561132121500590096223807745662834341663508446077256474627704264198735430092047102325302677516654770752722005047760768757162681816239228309411884467102097719036429662738657256716480242909018324122005873631885094589701644310094623868870408529482117187695136545585230703633868028111450384105075394862152966983675654598156963658597866460603527594204972507422746845149066398304341752695614086720527012348674614829251391812659696131418462158230622275100467316967137314425195969279309378096405259167315093079444655631761252562445845688411569139567967777197453800806240841280239482209233221679206777955588340696552769948258235614525453361007645197767315242185335018532978961044602247183248995377161447904679826213880913174161954866503583790005514281734307541055329932181161043446194138433730339615372012139484583347020766586564806792665348641756901628640547496636205460508255464468988925261287848192146469327455980663933264486337739179356177858613830165879911218351721295782371053576797071049287897652241816144501883257105038862829257735066434550292505748431140878211757913396585883942380535558925440525032526637845198146169610025271566285440500279777039767411566973271190190377943764639990123170000441197031846842378928085168908717674719955669437148359843713699577223828848905681124030696203063845719719869433304647268218349116136862355471496247379131031692982931175663294193991569852172134702277317726259492919779468712263282636155050284446161022518514700486710219705626406476816833860432916021349352745429315664761209994996612993372776632319499801569072048901091283512207160382722800826686673378495838797614393876528607522407621971805422159871338758053155127149924644884846681701297768402364897333002158740148975550289547602444509182918877861349026567557996158652976622042062994277758478273726413307428722314319756681450543905546021759869494839885029379802042136692885119073903092193953455458370968733263637361235309931280533111384438820916799130731695544147244061705219407445419589051198401796855249090443613230881221227098596756723263350901816548475735316464888473442614563526658673246728903071343259017465459413469475096786569037875892875420371365665467248945330699956972187884093123512042806164449153353689652759421536783413823573109558230819590992117285804169210860922676244583287215688090706375834292304182004205225396745767289960966245042945058483304808053284710827525991881464765887087066817211516752786707816924935050464876298561007377534085771569119387227630002472157122159235324271839001404022964467491443483649619127437180923091365965248899399256735199284995527880168462825053817888632997685472376705955141449458519847480896426982851193556866795679541065206495919099981653401649314624702139738664589407377580624532321458528951879248551848697352280924032574573829366139924292864986971846949551861232100801171867121911419494138940693022395545279493010212081526783498447156445533858309660941695437801024804883069246141565072809646319447644245675174961762848221666228130258352191841801560251443950540979807681750569140404953431777922709207111533928274873914433373717261789576838981069967779283101374243339160419294644389200336794485626801506027598903451684065526953787082948456958209728139189035178302651112970544393062647062918679889935629180865772836290967733713890920688674751177682254155491975358904052779394635493807548345282866705332733751394013698146447604399886565318007657493032918709361040926582340446052276725147458183655224423896729967628896608920800682349079639674723416407627412935375914447990949706139849966210545348126318137152989260255138003579760239303901897609219866701064124239589711284108189656459060669423689282947677885764256218800021369561928916168412215081180797349218981600261168261696528817825144647006411379093047493349181956067282183903461630897700297980490561764650847734676885284068949356656745611059683144152663152716214134961927743749999279669028736510578659040095093503987126696352950036527417195893947811992389745842537866199306985417119808943890760647298397921627995967626045714080142279714655856445927712249486294961572605315366386666925572460619922194735217998127414725879075408369475604302823405627456444649276819293954615422077091354400264028713343632460994303376442054119973066249182273743369379466015900101619800161882531466756933293403412174089542431761702679060479680579067522988596064693896455356259071167849546843380540858304959946934475089175910592219820681713173313035013181196331069849061850899064109930890611984360134479095339483242462139012315377928150917057053357088728067117242022736744475139212466720843535029248561895834902513024696659026942311635718719949702608264784840022949512629794526743052877518206589207592654325727121631595556956911362401875246726921054052388433256734939835096526682232745517700661213400246407502239588232695311762253102763755749502191254292801961372795292387759139616413780247318134234952856995487324347136028853888345861554860555121149159148599974126996708743860943065639972788012353242274385272963564172130541459360005640806380113457323329664707082497788585475207326012820601880441888503922650956409681957926184383550039159864197051066823672600322141879622796731100461906390137043549896282839173009022502068114739095974145791374709254929385213155956290659797098400285109492964659965875871516399951148513013886922972754697413529936000899134279153266225512159345048442611772294981558298769731112283953512920622875965544503265836921824756444481102482010306612166213606651751378834031869533849222179874545535970518553982358444073583333818555206551736634956965048133996139952550400067224178519875979560569474768160077329427326079227661409565955020814753007809549035247654419858137293033552885303786702761807253110450960781986134749607859157496244841008820842070759473098441268569544413282566644777522143330576694671745527544392948260161275183002397080728065890419365992109521346883123890615354742802979193609077522539400241321579201059025888325780322781133941196785663819469226030780199547527530893271149085187386726019576204112105629394177467344545118222057745268755212190936018483224683395134829695097564658787166381232954323315389535257898694531236119004529916812207416058124196872141812664308615947305912514611846737668795881541848642291862382211031744258335510963157792314481984823822814520024614449540961111659866937166050019264574152150419946512427439763055805601491740022167355960879759217533094904509630184226177433471659224054730236850238131777302145694686968958087257623545037573808851468199719448932791326707296501941034150434181778579532808728892987697300814772438995540739739949990022733949458141445437852204490264456059093788168315365561670938407298266813775534065157055010540597539429238221239268295561783060792872004692286261114662819330924405902375499317044215627471120523103466220729256046289501405108386035986533431461389288352193053977100827284353577123023458321715860085238154074487637802103901155260266176462241638267509257612875063234674938599809649259245232017588971262734212448332457593154773763699376287641989241446638293097713266663022725680504416991951356647780146087004797767735706184807388769966608477013520566067955836905146547130938987084326825534920320423699975472920813083496705412803373084633888207810694252972679201056315666361402357834404579001946156639661023411238841116110851795710553405343104705299921168707331012458586331296123009991627422129634894859165021054814777744196872206999879078241096045045869722087633401270223362348661660579425611087281549938980789839792899398618979136897555739404767392533915504070568866990413888619471783470978644365252942363684028706209110897605101849792419813730920572029243225702526997549682331813656775147155487370564307382274618102107868246523751749012735624803829672460531088946300492548009886132161856176336562119535143107756533538946189460231519959411651082605331013282723422505424010429085545541553373680152076761795064758734891411745892408527623685450341812774313272456893828884789321446216980288000646291638450808234008821658852142975756166806006074955962426084959523079487601378484691518760321960578696314924911511401643353359705642882547737883807335321759787002309505752696878165248671766074890748028263991967393079313099279386421613497527179276638468008132839588590228312118859516389087064257521676509995839951960393542477588193006380362736878916109912205768855958408527948873564510041994895784945900361139262404776441367100167520294981119564988859510702369914720836560162550267537242497945032486313300059170054444602579286817777308909548894808292480198501941790800850007236876659803864054811173082871723727836636918867254595634382776867613906728069735790586176354306960155397415308533973487510329613280659623287429502174825304559025921129232169337129688781171457111795532192334385429230028699767804020592014601838668113697970609536604123342624112069300204121514381247074509242168260506924189904628609883433612507981711844858172958872246584668986132751393260794557869982376629257541279794707172676105464138944136040186621757115984083479066964380957630922185796376462021480923629345417071408353441576693581905586825078952013423831695906893198204249751024288063066274937368735691068467094365613585900991045135913383512736756614938866573755213248503240014752332455557767011373289865625298830614490319113037838938254158556578027372946781292692981328829188312459056224694321560566660348177623548880030556089484293786342833310044175614668642942345427468870383107283410255595430317440314826302948964250115430505173328901790464284499227555326972688217559639403201277694107012357344955388302346626026684701365738541621715713727303307743747796816277367996461492807474218001442729353599772307242497091567323349922567447163722926017412051646860703234183937195543080817639546737351447549100570186759647766123292401522910913098165924879547437469927643931126735943693200634095142385280970466096657003420062427784510845485771590388339662854409512069121200215185482286324592176523597624276596661050674448154705321198134500164194504000915862094461254126498943948249430481120926406142173352683083910067020357937495707790896920312462176900394988325317227583019119037556057143918550677312805793903120505112542386150980592335984825901159206050372682077334166500978025108258223114987283273844204047588481141621595837213661668403455788042754999291116189630633294471213881737710539548546794934816920164360080467023442308665997773236867450006816581240340832862608847541847875946667009149893544849890743609397432618880500367268023041740357663201911917154139637301628784721547654393381128132687400312878631440911498115763789126312539129639214232366935466271475662694686499343012042418028734974683063229156198061869896068017271252977053182359763286818294028033529444000505390177758762223947089692690463418182288512602976586064054842829487873352716575421048237688701726165382363938937934303523143024215022791325047353631791733633303689286258594126452986865379310080289882173492228774803028023818456568321349095524372522307852735092361238589947425123386868206408283127705846333111847384993943536660982516326539817474348191104559843357391556472059091160122143123130016588071997515266670005972201711698565023519824889016769719871706098625629219256739623318921194932029216755328384648189551299325715347472580036803111460709605110139426420394713389832111181383393603507331099498543446863084416234959004514807601376482499534843108243123785990208854551244349125447360210673938595726585643245993894798930248027366495468261267450715572537285404298528352609315600754064538908358235904933019451573571814172029262452556928518896154349574095029262469887917657625518967321661438657407344649038189510736233998947704755587514503774279665127899793496601167801738447530895855281923403461772551410042129277366054489762198558592262508086422408946206019559615156619540847441489399926065032665968451943212706732792604472690790167190398532842817150903613709870402142539532495613023890412869851686692280163675428115107390598343285524531767472944311241184699387631382867694057812709951897095559554460770244350278626811392041807959295882443436161011054635811811303679611068859212035539525261082440979367133964921207846661022289789224223995189796577834358779283676872147746287843966361271234463529957136063535445038904793982573795709369912905787758774310599942233985153664211876335633239573693995708706160064990071566581053406619480073371290699681407612396836298692015289679161513025369147453873877534943881741822606761306370212297125267792912855924492677111002050648353196150442694089284382518294941554098919218408244165147544302875252307237000442070373670029013554389723750398912263361565736887303176081548707655477144474265456356927579036622210784935627321339282183551465162824020586941335189385762404690160712928129938582514280039256865799986328173939272877928189811518227857364128574046618384445326074836165256011009405399951503629678192748706375138326967669281449476451479247345501106049249543500244458982230742689810925701505550169103547816994885792236658702191811791238315445847772259606952490894569870417404247322112501285148622856083712681700420016728913379644618870017025588260050611430022045258563302587888080957598119347405575840406043609961417823129349221593752283601252977131147449300144382038443243973864413688573537884366953852706246347745959536478061060861973879023720713455652814641399287369342461115753005781911795010309333053868130995429049920394046808878005234720364176738139494341519523406665115145088808207370271032220907264794104777185040605353201977013190142219497092705780954069935984120029354175621844104371508861038954024249591478376685707916510064063253470848931218686058974347215703935688936447506921966912510468280521497273804088387878561825467645548373438929939727832185619434366374693167507140733774802475507705249666681749634044485675332218505916758251969877042856944988568766112233503901770582817055777331450182500679787737665865214388000101997429438661520435859247315659411908192022419782858793364068481271193540608938346961189455877030441147467895546807490961866665126509172832417734311288907041637555825727488971856521178919171864331451563259279843637313410415664489266298484521707342193452051993371493756978437328428110298837853724131513664829484585783708256386256754344248525136441112144170757031665617259649764781218862528963401338854795894929357128634375464772440859548462475716305222656603137438695438658227455007631353374338840062480156666314446085057153734636266123779595987164407926435257373367766755148686206070286867343422188797758504290192904624212511048749207379929060763105884100327386107071750311045246483199314135308917295421367869061807975855878493133873994915526340334607735127947672347183086075584511637990850007802885939172510100923893949848279060818476778641489908803705492122380478299106302608161685469535590260129325186638340584710502811599630359957530500406336142680588345145868750015520554440018240099615673218625530831957916383486658875995524817010244501049634712603707041301665536540087122961029929775187247361013794607591280380495440817495580340393374124088487568318752849681021402549513495013735321733145899855228648764813585531629511047675780884457495960970813943086339468650398054432146928026613583361004013215579109123751712549902634541177556188407948932912415655186145475895819160415200845607434249965956553023227488583583600089306308017309553543148244010029715311222105174018261028280886131198040030888974559852393784092432185676853459498694651257133070117986047470104491418052131142131990617668340818761620191598266311472040293306129229697823490243311470797620750393599031553695843649849298138176116693221053753625857557676229708419681190849405848003182159817292241331487000318972658148210578160335433258942065097695326310560964837327109735525827123323005750621873756980232391079630324156399936040754314475721150739910037665344678321676030430723836621767145998818940027995936145833003889703338531231884559733592145918818082612382769708907431501508695385573847744606467256841003319270608015600779730914589977794529409873931580795784632640799547065422888269593546130326130164265870369609905344249040919172562059652723523870779769942984585231833837255538898716641422719615662211713302192724462827266830452297335538590167023934574918229071866643331507965663542576824313318421538635262851152294884499585741189519770293737013960410698341787679719240655770143507107308732783622343213239415693340679219908538701327938916387240228026348169061505887998987688348765540224879637022939954648733049065721462237681003081284313253816643116480542539786139863211748170504271871074238674551164939071612018162629904593532311239946952968246074784684102075028253651588135417157963727180594339564381295687194348764461435842240849123327126516001868439829969077661579696255341671585798448931702755063659430451709350093099390498188539562208813320799199837716190565129536497453400672682662622869068246804553378873033902742644508842675867455501262067253106298429239509693364653201769264482745540780256938799548494698113610739394919522940678859334053200674564229120596693501936731121944874938221745447694375173567962210347508389416471624698928961593751226679853029109846864237036620743090648355544669679466948072109119970505040280822229197135329085685183316804469682892077326123585003155447553310742702378292679962680805081794839296409505549427517417672365163447428965853240368739436143326972552442334671916497043719564277307233902073096671841622429187166232759848891471579932942095107560056541977395101815635131862240271821312944798801557090895510861739814565002991188928241049793676404181316008685765536541910689236417332811482419796053012920809648493219940981986750367556803552694183968982853413721232100579236597651170011525471616182681591822892746934916792481027663752456603098566989974230019689662924620833392791539632335202147744085616465798257074162982826878546209265891142825387204906183350218194224550543960479596892133328102586041014034204162808739442247515952809645702253093143877356303585689640315746742113831784758694480249506123902153522865279621643507773711834347842131176936275495605844993639903801517713155753922039965631801662108803635560663259990271277383828901591046272848388813632705122059199214362648450097236581299237739380278510708728925756010462366464630410129628755440701762519374019682677779238532281168911151252548073018233029094435814262909734629398733117076557076042308016502378199644807244806046198701873405768476801210098423144279009300909126284821508272136886361202312674629341499715322540427890030989624458919831240153609626493480004473545085967543457123338446486372533664678037891176324725298296483130045930979344321555624942349149758778428277800296018201396489338683997437595591053161158827021133750867072984070246299720262358797267880872563298016421028407309407176091919415101254242859229091754002219554643574748418433847935464779076747727852613185361495190641627551404489192745639102155157532131737280615660003120679788146812024655052108071226142411348633423898319225170062974392843452267718543504776317546149400658431780688300819101891942858869220565188417996194448657138469689012091153739209166135729581024715210733080369153784032676977320815432309697464135435230559428483692443003837071189938663032873256365383183833157839667784606213555573660354470383669556639611793044895896239773841427485121513218352595743835076222436949456376292323104436013590851223921232178184182450448848021532638873739069253104871979884974756207079594609782425460379509361040828435091990878910981720977082111614867263504193592362033276342470067450049610469425827052169339468563078059600323964417775734068755496754085686261543733886356263905312977372413245914905317524119763105867499885227454495534208017216281364594796491454101338919296669765732985609989473164278002934535489074761222646521119732526746812623629858867704492982891846740120423688594678684458314489277465989204238704930283171781028109214004419941139481925911203448267287717907788105048104383603459143532108692977469815877034899965381499266618884588757664470630523532999807135185870459444667037947166612627426383862620015077329046086608942241153946884959169615060269320388978620480548669285169215991986076170251496987758448194624698376307552958181898702143648263208568380941371842047201321274168892350711080725940536146612063776102881002716553427879358171652317772068764360338391814284537511000449224789708072988507490452740474605354372206610029788005843644767176527259786022576085295540695478656006713303169604034533034494315960177143745783587597803878756583140816113226793848652278664204665756333291968123786324489392187742742298048325750652578225764259559186138319791332982171187692821298329914752410647288432105821670642307669223420140680815898255698978885328452668879148250506143126185104414314824144906311561560880822473834812527134459985489217008229408519055052301515833217299211844327098067277942940296974084421687282507684975960603208033955663895370473695187728623020851549769669139467907851105336103916546669977770323041825606389597815264792009026053700928601594225864965067288973363839020602396000765600957091538618150582681220331305484026567608024853716607046856610795066124814161520512213779746386497652717011473944997052433783409214977773106381848027944757355608498203993373378953533649754394639546353472224544864862288512726613937601788099416678275828220238913359539204626367524179100903977277046531150497441659868079129232227735026431339294684158338026502660282511904340626241750395334855063414909103861184860704317193053308795265812089299917627819418913765358433564876616576134057696324923616570729996555894071394383277066478128475977800637010720533774348909451793129291618127610398245840890755842408490054540333689870288062019364515223673838788968726613540111106966502281683488741424305907523528597472866179014708016971796524591427727710211213066799351916890795483175208239110776307604799531824058331570620786920269981151140933590615660530938949067928301854949453607013906029133785661274808302530910672942090664117364750943690836180896518252579515538693657617286828508034789272963934242031243796744356806375570240050364306852716358902441402678464414506254271247265595055850965193695625404678461251516324988446666336315702703807998204254362662913218587567592401980407793285808260062424867305263526283230784324014171817677502291577004423528056710059473000064411652817524041749492883956584432000141012417144979942806193979925685785580456231247995997224548008581639285603122734619327752251393186283732280451451759605621342386338637056182002677594512059602682457916457696500506873464432588666093620116728207280315334133747091793984504635963958108659795125340160728020314848208448631309428549637246975301519813629735270903979854147218929748117552321109257740259122041771944193386579663852530959932026486812182206637741826992369816998045579954473951359923078521809102695285056661959147669727603959915937147359439128174597406432640965402722927495908739844999712716600150333486243282862142053549675931260621384320797577887169831553091054970455886025075287490302993321284155077138300387434328107998941817004702366800201808624440964761622785337524107902002411134487827012902793446786136060251231964949813474530994987164980986009849049791548820909121069661208911290444398227651910239551374532994154913641870552520049154722619298958832925398681027931473083249306391456395902008299938580292198780074571760443018943529471614220130964867280336418347534315592390387962894492501770220307528329043908746204438480332307427189873872218394873310134433722356301665895748143533152515089806450991050687000637636141241863008167425405168174076981070932245694904630353312003076788458080186947387276203476788434744367760394143052571326289814817170547909526596728834830410118246526477696756119231908424523356671900051860075535940017694760162836395182043071515715353233095395629686547152340880989739596211940390063447224423175730171615420137619670512579195336044437491186389940932020193264975606692430198724382207078457104322619128299839145177897284539768433133525059849696553111718446860052237068490304373237979017872562722890375909168712282704843219489417766897066923789405497625409679969351429102162686273425730577169105868992106881631425795285821244779822521330947558536689034434788241557962080348821054241665917702291869017810030622383469286564195203482802121467541916399656652264735798104767391333888925690400133450583285220220291746852301224790779616611601236534708921513940089097062116112787872096811156938788792453291557944632285310122944761475566546269104494769505366081437206401739050171769910092484149954374145088424110433165481100764879743936244766708951359187474360515131151277725900202051839666075873966794904995325562707632359103646980082735650436314151297802538754539865783743873718045645195151768192961400195805819793941436564082775585033119337493492221733672883864024290607533943874884438520544313104884549504086939734946804572431326507827508854118078895347348193683968592211282201850942270398678307303542533141587262517152453089201816345631211265854117957371971236783417449652284944927679550551572638026149625952412311551657302000589642605419121722797309095237580437592740154950297827166510970251979262124907596943807161168546695421686643613458642513468450642479525440801389676610588683333912915094290408581774334952818856761753255024708030519562306934002987753155360709967419553733484587468860833348300686451222331657891942891732004786179176391949137345978036780195405443262710437081365648169129822106781760313036170819456713724323841193608927552723495016838313457621726808127872292332694687890302826368761064629236130110934985860377132679554186171810061508350763693510425617644124932198244368453814080863442033485755439530637451060548274153648240443064689280140082709596111267437285975435827319183288403343534262545461082024650230685192438555421427814365794550627222539283752683911283677542812058024422423059402482386770204406675708264353437275372530297960889644936960467374568674547618742993342194035703077546303596675817390791945021132568803958843010640894938687700506192061863328778467390359271395570020170647153554560208137528520528956563328742098161052515889843562892635448978839390039949487213467672192975686012962128007374236310018041760521723573081633974887653669451534016034692647268828092437674293616627572519028553608442588523172515063552386629982325000167195082273422268338337558693644150492740641297029276927783915476190002098245367716895954263212992241953379841458547635920103079979447473219956351697729391453615874719929367735412269389801324573446711545273262787938239552831832837107981403763336063524494895070045989813895530679400306629097157549032266038595192536082969044063499017057180494494034571151893335875900064386737687713074146028145183629646628716545371797662241457363738069607482169689344661998547771629752285865512553983533612430654580118321075090273344205872634140582184080269978251689738866915755326917806262112481576167751572368769853100696621732437322037368492502594169050686596518315709542850684119331186277715877323884718885025159131588899731011545379267362683577290824950332744945900285396564352836639622295627850586176373914829709712933691700747236472951893093362437608729958014207577962388115384121645523063938638569752236514950777849015065007117639637674049190432888445666313909360092218426391759263340544100330637659515523782529236723452438090812979977692962223549800072192609971280350658998579441631745033672891262198835085283019634211553354957175020649837264071353129564589860426261067379527436653900911814052186990793598585999918490345719760981073609047611208853680380138727422502026840994627294347404677496695706980618382372311344134563905736322098837578902405526850100353174296472414478669646214536960502417637243303524237372297067010099816335520136477203124818353794173413702863819511860512023816895527045381552461098313549686556708969427591626942486006548560507280089569632961569819500104052859714636756661587296487073805339881789871870022461316678320901444052297131967163713813765861531015906351130423695737587465895637529389177299985531522970697094123963606027773573817184073090107829525159065130414986892213124675666306821673169639831478923771501508948124903845055813057997860626562166242217971848741485752854286719708919459299054078430668576692165978702710844037864557628197408855053759628668598573334343879019417828851227546905526980487699554773618129587270234122342740925349127111236481007782607403814994680648471178200928015551403982613878971066333750454113651182266550215555497506744887532819561323059518928684823620687444184940415074780234468914130744811480992982925128519093231846149255566066762453031701760798995376380016648303543741925105222653881971119758344995123571982479467549541093964666101002627967960982846029983736786744513072310877228835837297940789268330249142519855635758839300093121389584319957487535067952807472173254303903930401828785243785056709283772114466310272098861374991410515955116619118387278299261158246143819300955565819334424817487152573178662574604452180406860854828954981521317966067603814762412247250692657608636194014449688706247663571558040455617908785115718475361385345571085158362842577292395650335673055539125647588049145873775645005579518751048071771787995046510329122506954656509427484343674081433010226443519969620670162794047213786309422850990368652626681862768520516866484846408379794621309534517269021830309685974264553828735386216236712834250399564768362965532568817691590098911411638395576486058729103760046897780272299506152419980756343977113757462856401325476404623647288208503743621386290782163955074316846179081122327194770804897511437846230322528430924249172358447076084075265671030679093755265930663888898059047565140379213189232402272251815694918972960492146731166425406091809083708962701993832005286837698017076935274389107162510433485662429632194004612139973815103231271977625804689187828561719467771478077315561644044860527479428493280222161551268566207683627798961405919617952355487916975566580794306019371448221415622648702601922780781535474871271942029468735883265480344772577013464582884317974641881981861345519402889379906664495335202861946667411118674089413726016963770691828476686894236763433031855738490382371973869669222384357447455520929124200175992744735670345902843492990279391875258144234224357834574716395066261360152471560912381450140181982643716170862915313516265006925196197949128791038743611917174909134549821846214078618602141248460314719815708417342189088075592074630187502528854530115600522157259260542392250106645902957778660389421079268672661138367889169052121598109295881479436682761379889062891891358552136108758667076531382324579952960205836200229812489464651762274379168324562988902457947691204119590721280479992203218384089198153951096110741983902749598461597607967399040975164708450473630306156046110896638481637025713970329485751298328883176002598711103610139939347717059701420044190965266174915197826570708146676718045309448111885315760320704640993174083974622138346132460328191858640639270992624745382805882466806424786723457015844218094038217527762799813431946106206551759559545203814539012450537975436041497075963937308502021698993220642886826809619034009245163715205423965915531861359338325975552410384579314433966646539340705020668745715408149789746389857157906685112261556642707148236579286217051574942308053074866628307924235062069961778031035912154289538239675899191304401896833488461654438309700104790740792778467936429598606090419143622085529112911177057206238888519777020185370448197179104568516942021721815240445166425817393494112838966888354065509926929109164519991735618086053506624249151045752087791085061824779512883250638638820573013382598497213098417543886841720984818636394250650814550938918070783039590027512273892140151773404349210418745325932743529313955937040368687860828088151139868482567566862532423104979208901279934905540621736731653206362009957708453593722295659123679181560657132217115457462393737380663164091905464109917260520906581662615285851412877305200105338726794049513266833463954800542326276148443005252299107960833384659026188413026531309206945117428671396511702176337902756427420835055717121511452046223885324119023935409744646682690949456866384250974699807808873783044926027879551536422066418455051262762241340816316906735272090919952175050097259387669538997207176693408631338358577893659358086384422787197162868258676936702220078280665300245954720270077070387307719489035033814021040920873064008754664059723402122914257272142287269565244106866483654667688713813133358549780957198923754988723146545885605828605359393501023025153860047135602165409183545995484194241233378565946526089599055982296781818799584257382509950630353947066878877583464737334583613816174921091225876422932559489702940582867945536568562717245711859988189008985158807081527031352259506789107165556837216817752912739498299197389770527707617871653516336466236058684471247963475083812190820251294446597913381683230619132770904509772371613878926266786981409413416719229036543892916967156525046329712964137138404481958389601299493959057170966203106182715962883192287836539877513549755269698547186443031073812402670686657985182863233435951684569778357984567254846907743369912382649988390627491335778145945791862282515349666643215413240401587827176341631709324803860199940620933799715557157918651956981944306656982748047310255340101311807081761486342157796323502843902650166736928396265969811127764904981310370875949733001063029994177764205403662499177843969296320339240478296879004138662106894721071078010159837615819492749521175715224644454921436977414199689140656673072659192757892174163440589417667076410907570490648233083708420463087771632762196361235569096857343019880813842164838045361558576186962325356432210559038760268262750280198412536822628205641581768142724545217732604238433224364072831509475518053182853512258506224278656520680530114383236250536429691748735304387048464382045057547730983413587446960783299316149865678918550471514754804725422612225536419204929978144711779396921721672705013865280578613038199857021039648852625666501994022187761920226944079951531175023094765445559975061225855152508638568468590293892446760913836300285662499818471648579212302898345463168896797719553417124737973935744140547900320770431628526443933106103132852647593683658801866479449619091868132889529493036373076858368206394398262862755523251084169153057844277248237724614588638166056920203485017734086275173908386927840063211277125250664959315227812954974269242153320445762670949711700809986986735540058811195782124821095820905649382019241420115941318629267882855207797121950461847572601944111129583955004240748808255813733021260293837988565084964660701820504377558665140683248795022911382843956902881348654385941073954859616007279041094297921923538112013143296520634910663135815950869735664848408758838264064877159847962600539583478338368569310507033854453976484517664770514942494806052853202180276596266800135385767200336767602157967158440153511580720989442944081128388130826266289636744732626388079470798407023462721593972072546118376998150615043671086192518070356485347386909543669276245373862638652219637435531211087254403778963133856593686366281966566579071997977911368108648008793275477441275676708745256684292513611701391635608342712664275380590429976789029456604200236725210672944387512543986459979688723182657721878731406748112353276510005639134855406102568925157411482817860704327962025109612685444673542807051850382184706788901973622592867421981772132281297352283461134088367407989427558045554868944179834680245403807965547869627696839514302122487998543133674221753446143099045778387989983598662302543828217571407054997916735733171206464137726367812825143714963231429701845910412758171038447372114460815888183490368525614156692154168633850932494495828856084360236438034741879781567669577755074128791074467246133593352524857250434679151884318255285454033240431251150383882364019817742145187393554314353117956574976858446576919442762173467662369830842299895658058578991533974796027042625169244784282708861194712590391433082414535506828108665245188060808581010017010822645502181814178125970371155907385465965055023370081861618227368308388502160404169743995967296176151899764039255721006763613015990716337905279388077450993000656545909276288903381125172105295321940489932920108912168208998914049383214982571205294778121076176196611843427930099955120263724809034983762267803376550276799672668302413609258330820422469656962797966291817059726617486638392478998293016780766101755663162662834532293152174498960144718877697237633546554774569244640632078623734629748163684120487990074552362108202682151406977835212531373483496880847560829708960348424350897067912678428925956383438116533841311992359388675476498047282576268466791930030412984135504898694307326157736935193832222168820401164989408606904363073237758640885747234659193694616200980676582583646566546445951692787007419894182622421876049240215803221375355546501979354283802416316583956792614484744057122357127799638782893242171978633370760412864389417229321515258170087890913033622793111984207845542548402314545155134838124437473899667765761525232244584061334473344151193175443363936620072168468622235997735671414053148060526911594769923930246118209901861772027175700677050296998602230038952403427365470444385753293364809719283543181663244267967135324728626679994157592899652930592174321851083599266102664982641350392847014379085167482385771466412994614371934014636668143098289778698057047016202018346338903821671696298143722215733249414491789238709054837635999589246706220431353625845092377476384839618244194944956623811806702125052528110720225125707665207208063311512934285488373982392259630532442930039231902369822667920813536950294061406930287628223757517950730334997396764123554810248747715311552846607339966660117197748065198808558314218245065927442751948825706813670116055980805909830950939647281450671404734167978111238731776035240010550054507506378586746617348132234983432238632334013703554488641807474389069655601850422624621536624379109886301653163964274556317431075739654694846072936121917141825925458137817068018412066955502332458233411994135079688365570342214008274670571252175776819012853166764321469990284957661194242128947506667233534774084631740996987148885725540316709588520902677923467745223687420960731955665642237918174965695742133325095806562094894564166250605918391070835537896976907274146067554865333795193009227870885851598604054272495308042755731517230612284832543504584760852458492883475541226178863690578816327998069378658967706435536920344344658500255730632834844634006798092701216337225238396627987460411893466047810092300314306395946723501587671892309775984208285106336523846885804433274921253054303149002040681436951106643551205585778531383653249888006867173901550475431858780175600511286259910046454058361459531935285770963283240161712082194968355285705185214960075213651311372863500066087827151708424261995622233161430933723818572769715106662704219706925756824205081710967854035156420089038298443901898537192228869543612558218370431564185765314084174160376045896847401394183553091954337010109353197935759926329233372071392420201817882023297636385232453387248072991509882744180064788186600208946658907653301707200873393625049940921874573596296303833946699182111265160385083595134073316460956843663185577037559659047843680954379297023910276965525336265158281912610303262382103896982562126908688743675668028542165957247722913369943266731951318843509990851471875377075300089775319362115972417943829905922562918501608581923374402202473942519398434120130024039817647554066787767614528778934579415464267537010739529059068421371026715838340360659933777068048035616261670856494218374463787333203320099987536258935371638239945663504917411357185967395650399510770334128451242306467761987440002486748539451797569120223361949441061179376138624231121599609776743242062024989588357178889089004638076812391770091502303145950468388404224044957205213267402604831097967085151503537348780367247524246097056056975577254858119665301719035314960662117354243954244682728898472601653655599547103641758109317950192771587981268665241046813487183482662446347937760283048537463749590376857832878729436120030113813601845339586970570395882720058595635958253865282195660593865465040439237518626602812935353488230322120105583455132953705501291364900254256129119350995359515282236959681648644725576647112813562790083190058149602851458150845639945578241855462128861216950206237482466012520036136500945007391475290361760712219442925764341493962979948808315369323965405221372081033241343118354122237643278759060958944630114267653548014197909311864879545127533933192581017279671338406205299815389763194290207617075957321932286953694878660139510902818987374583369311719483870176828533632952473311418594331485697275376583942999028944413911101798365164941681445237958747548738132731415475053603413909612008808573444475861172430741640784351848099672921381345331957171276275208451789760715812599296074868500944299973134362626603730194054997389745918062649088744024653894040327962232467818594575038381391230896950567167296712707701126325338615505134305267933357816168742773164394073301354882013462219585579422710402208885376465772992026329243543772813987311246672587520308083392112258339312889870101384218779345858315278181736531719816442139201539417663112132721777935541734667545222629019835983069485725879804196299719731800997492276578552305284777122402932492836894322244545130880368371733607530210438375972196992299214016936861510320835987525858450288780547217116211318901068545463903185644403026371511716516939523097869970912144941595622299846170944227601642685850058172619076242882473379039518663892826388562128105664294790423666040725983053943409182301989174484596515917794726687052168097772308050336968087662785525377332353600432580139446180227140983745415271826493464345435408885495521021313729851856735051565603622853054473470334767578891622998647419408474253333812016791627276287331915340512528933264367256864718419945786060152730725738637551945620764423938232771182845333238830215989026717754056122185101887305853127714981088526949064736238883990620510752179896937112029603910676934451042580522874814803487994820057498637691859171356436440319491474968733346821386366461267109641260893622877190283093389645288283104725533422952227432142815817911429634749889855433962078151488876492742784871380652596548086824245330131371188238008608380180630564344046706787250886174525701680572242302265675790890611567973891457550841978446669379706607319374406505494239447890972575059090081612567970259660134497581455012398497518450322141449051332189897616632991461443125361474286286202676924282029632968814687987690627898424817629425394602049251967660368080074356906301676907595684886679830571109639081077546587872806346554590662391167502472541058674084580055096148811435765702821722267448483872520736913768576264889587848984433458737188400671535794955691408677888269173766912029965260815265470119414780340725452434962418256514038175094340166485916854021424341798659955727929257289925657851624297680640457933769849494240038449323518368212045983814527064379706998018580552045661151227633190090754235724259556852044591645529698207312726473973217673296623783192400976049041557125537063299095452605088499029329774555229471348335554246563984627154962386508163883757843679440831835475168082444366054521538605983487679799430959665690578239126559300294604631328304107490061187499466061977220581555669390030837110210229579277159019479996555653962080218032938847586862757649421216470147782643705142074080074667786320261135879077418940206993437898149648582554254299831909073319016921825403273059627871076192934857875942411645529321323298468416718198353986770065581414095431512950615698817061183330177449256180474977837952048461847377974377737902228327268578618388884721941736124300206835933800875156388346595934104726728065460497378482667423440864258734094310374843817413001083821424453236468652087927223978712209723716215897982081538666354931464987290587089033058270766773215983054805368418912527011383567619055069415857829465616287300616779409302899731666421580914410136848307078211305696850022185911141587142476246407773399388146224102492055760002600959789580615288446174557391558352013107931003877398974075222428678448111432324607431656296155073942162991313195029453143154669127940545386263521417288739350322573668652764180051039980010618296535339943988656051185197359426151202505201882187678723682403160205273533977306394180274601059080129031098690594656010965958821166808271665858736136173843322297305976941877061380531745300003577606908043217737264737706314589964488137815886400187396253151572814511727707106377508770376160540888562541748472743260761426073349662981755938291815751929310966299019560630940723554812298009463951783370165212750797775539141129958233603400523652573432338906968501424293557030011370605356727723527206625714883900240006449458343015379334229364956774504915251997250080590979699939618269467726243489837703467979662388763171468737133049693502152992872647993019396901509485076104026664824804715909733533447175130109227687557777978420035102819627288529447012259501431011067101963309891372091793866579221426508920885203454473783442660298450684522750285145124520545722660660145080166082805024747782684654633342912384791841163089080703458010693781687578255582624552166281667855653360039442850637251470875172872975634075995155785305202956751974685985917933475729095321009086856451478657068906131181645952423232343797146245498206293901847711962901550292159065788469593873498163700354265447568328591135460784378523657267656971345771192892604209191067509400093248303773439009531914310019826986671551363569897731900991819546819217799740801424049665111210338615098283795108835365221203029857962356695568004106916475545935628566110276045683315954343273919293480863144258131612389489154672755325397748905336722180411429144932998560645610184234173651923263598511776817674902877670189018095005986763792678200411786920354357164402346935381613680360701634303443522238519602218329299367246188245987092694209007154534553528102921414376468522608840732113730834611582240483903303801391037151271598021345276188272176749442648187408194623830569374076549014882830041451208740449456690669040702169830576955100567120765247210585823147110673094374727281628514647873277213242073356928717068592778018450794525004219145243477487566074602444225969648830426923337603470319057233661284081471146528893473656388493763440487758597771537694988779103626289467541549133847297011894557179672151836002782314110138192290928407681224183102565028888216580306236974527810093649586733215173403238812871946954460675271647567493261001064345946300090622701752564685647294989168685689618655732332625510439022784435814317351751330907449113208742760231749979707119594651852054099124971232789118994170219134622501229256400019077880931132955908989444295606501164912847229051465140304366647404714366655057171074525816274171641919558253823012131249262757914745357027838428113160317538848981434052012810052081411507892650542480614574003209601538715423982829426859482413884207183960008037893373893431577197365042763270208377984277142081534087819485101433991705665082342484691234139606516271886201681970230193282420034691347995282458273499233555569185112613914888567179706347595151735231808077271162552704865594398161201021095252802612174437306576573146745322722969748683728995023587056485343098790836713493448840457897539189728195231269132584594657945961502560238401912300271352835404669717135706062926565415736068880309150713778446384075959751760483504356055570316409387213654509413998093252984734016152772730968177855172353427850959791928642294907187966370208438615450998237432175551073682587200463983410929764446627388893235634271468950570799994617437989285759617864627481267538229046400315380731523563325940174039182123522535312571297810432270864795847226491383833556970823969241953699189432737323114337656673749607162043535030046879962055333472834627766715112831866775729727214459571512440765477794808106342679348188299013340159280539704629145412530375623021738091030906264731304758784535798926947773841895391326664545478657203250318196818637001993077359517284575097697082210895131654982411951187979092736526548022600487851876812005792403199863694866861037632889616857863216834943722718748353628012235365796035167943155992358261687466769905298832877421274859619968918352146410860127924512569713543741184011021423951738980108616380779598280615086325728861016959886123060595053320853287846813109481425730201268216767336051780368882945388629742903743867142788908998783884288367132445365624376932643973330869727180393438922417922094667912552610404935549233692802085794794053294882418785954357086963712125377768678419552707290989622112141925271925482815604692045814213089983024267864760602254080355837172281191239192914234088450124132972003371113955562618867844371713667682378073972592624122991390731314833914499797431855805006745819516959095648471932045262497614791536773326695953802968149218806134953735243104510087388747485862376229647462369326947460719824710612953009839532153064219293600706049151895799451688447775864949934722194454758856463122285069270356988239525451260345062043841497279767366435636138989419681868806909518472913227519862491807416779273703221397054898562394909338053319066503520574991884607767442030153216705438881986713667133480701625590722436422551673539749720140052361995307248686331455059262396878517322656697133451981880923480248478821454775414259556131027788172575568125700258351595898622819725918288112358767842647135210633435990615191974384087823892109867765408514195443540726051017840646364503587103922701851538862566375419626549487508376012229654201766469712542642050054901572626076498107547082129620126756351951921896636664172661365784421159986194560503932696375122397898480357235971866310805209140520345420153109602525938791550296071716203312176468209535625391964461273224223429490990952180358089393681237364034718029959790809102077566519106009381142167217739561214193708423994402392105527510291531498614764749814749416500352577734424975009986490228391415593131729339174065796798095622080097424788083628235442150114357564870750649975800636591108315306208760603126393042529684580837919709495270370461100683078523767969078208638766557963259919281399597547513171961913317048465517707983693191316141234188436336234324196120965051377036554543321075189768043469868940926966297004085618487672610526931491794430747817999667516004232672179087380830304513106168050838368725843210020163049180226433453719712792940494463895264794327596694279106148906921360666638417830571326187547057931387438799694877303011182324860873668269782347860378471364075779456165288980602781942923217563077134117870384119132166016415950805798974984017166861901536318746340534209684019324109844236845058782703773931288224718975539327891325327854938053923495397743496504323756680188455198717752105866522649252068998017143819262581848611568113755178232173848821286315526254772765526586019119936084250088215141444526850263599764531165559764646223435225431663928654457805723846041379220300489205767015024082875058680696399033485594117861875074185896730119803351788582650633194624195782818948130532383838133275660371542218656722894511000103925536088486776998843381288605794601984332076125269213836143371538915391261581325657240329849200693423741400074675141671352823042295518144841509900034169118821910589050481948970384065949426425565930435993089083104824135118850568128111813356905255881663164265618423322230296068381644003876876652072975253180867121995856911659304742991000907392402617547857009217064770522563854931980134119506676155273996583698329797246875518780621433517472938249643933963086161726777372823369417132352742706321227144553129152639750426244674498778764099007647355419866615611077644782541675445702896889441049281044123844273622739608790188962433938921363287174777323083022503827606826183675056221618611678228000283793440656687472743265688341825910369141633351922119311974620253690325847304386754519469543076816814930338242316458928940565358367407655144194862360281728140596920089940566518767564460577496395674981181037969695036777626197803040054973808854443564847559180720972045456582896045026329202133302516447259859462311136072160450943438643424542423036166605136872426552873847251776361693677352584480739705581757622348653913728875509706368548115796467528163663775983875074515481111875962056076388086797386875390891059723562810676163807600780517052893302901786193587290045195718230756846949028408281570562195417423256563845365974599281739573459376286552298416861783930624238331357516238849139732073455619287574509694242506796706515210623321896737359309078467735365039851368188740187370286219518003721720996462717506261409817896807301120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
29000! 4287992889517043196716410064934242713254509592433346575376677076404259639857703689449813496835996021430738326101164104088152580797028931574470775270549999075673609896876429931511813892205628445361457873571187511473107969925188834952941624079974512400970790403509261487208815536812895415666623877682192092205356746719266322065605227653205163102392536978136804388577366648252838970119537682105619257042586004449961352986452824972678834200559732799682238280787606655518301962249213584490633695939486402371842518426877173753863710889185668871028069290267459943655135547022842701516574187871199868972467885253380042208261653763772783488775008167243751136167963946830538456434857614569230507514716024020297387271079180135895617387364183373220169955995787238675575212009469041526826394995351076262583635723918496687905516865467088719159205066141281854865156802039160591896149222466908116100895595947261890730810971847831795010091144974015894053950015172668429858866828179170542320808443971605476322576941107854442759896478580629832014543880187553852762969996246193936982975489849155264534482539290393933216864353643594102377384719042980268725949483304738419455025443654215435352871905623834083211561107735466385826102958714021212613372573529833037957099451165228954742253211662016749065742494204339799169423071499401834050923032825583593819472215700177063825429523962078784727079819368008615299424012866981188038639380725090297500745941180183280034529371856118274822728720445244933299952610672508466287711014121307082864385955660160881520288401781570939044227773163542141520599865554999620197882046715960468319411430201004556688530803178795075780024592261468224164277003503498324704198990371838260091261498933117139406784576388243579598799986060836607709975314600288782414798754291311471384217862587820569102331501231153328800538083317169153900066441013675039874500831149399714691811518071287533049875422020769863674195581674061665564277871305677867304390976477852543688216138953672391825856443752342921590757404542639150706507162593286625688202880285339229259668484607858527875028969155053148345264223452832722375366145286783723196216004017658050730018779298518377661729937319146329006844765123623675433222836449804692228887892283089679040128375670846020188339494664281903072866214126468161349557077843680437661148671328679873491046269473488476489854427012351840320263000201405024405568915071811343770915058116578522625125393600370712077631264478778024316454735750968865861103906032271706321055261337448876201165374989263449556578950503587868385691269821458125363041470456163130835305118711725164248857829248856980589263819385723145729633147854953975443880448387846042658643410844749460008767713888325369642811295167274631618908804529835617497095758168425873184358909347398737778561611076515295121899256104743426111537727678387294865961981645691830382414272917802420607856031688766916615223873412482745735184274107696792830937105432782512690236233920662463826471550101981701507348344658349710199626548564651757953141517979614076659066990214724738809869575463214893784005635808148570920702134401639251785176815255743482051786267421651860680515456466733287464020613230335829123002795472635732812835665314528584623428192201126633408679036415818515712012700448699585656940674059109066156704409925577280579956820869412910886304733191077847512147825681811884803193023545761854653189869333976267899004455257832368587386753426657247360864737675300155136721015242093476575710910873110284800540775062021396774392658647589868971567257540278048204431325113609460630034671341833158779841031939169475487617416588413469335812279076994164092041124892113937881156238829579813634339886916278118579630898383777611286872238490003148538035172579513672013400014113451828376116307330605732170860892696504088843587336381381882579061336743800055827989023031444437517461053322161121209683858816477194733909097042242781474657907568445962377479621336068285146515383841926763222023083582243483165665327323928616324139561246858086616405131666322470347720319952183617732734696841684586830896492599021649456982349475351476802157722482347468758896835800764109994148406566989287787990027011696608745195523529601003744077469611577875515656771082067414534784199534228593775209759994249542124626858699309202060746782243254419676548943125856729085703634764444256911489845789321277356304728253794061394105997189896317133970523304610376089981259979717661593829998224265383988656079002153713487191442733276477025973626132511177234895605637800536428966750693537813236885886321970836210077705336664695194667325073179638701961958720626138698449266897096365931756999903229341446730657036796848633405146350474602528066415499547056581210730667823354026759843568979401467071211674326161935583204643000903137371577727529622884154213425604218068993131330620072312912726588083592565334474430111549277056571100219450007966532853813549433175973760282426326608343995716241310010620114593006111277575551916729354428102106517274607483594171459545204169934348133149123089140817442585705869433534954572650113865701365601523687468632624720814429486641086584869445571983391423850900216223082827275165074268407338990720786075300276424827175217905224605190441556661586844995369270541127675478373011942457974217466945981757130109980819120228260368652605885780838180478222069820026016991443463587299691489854528985757807208642414982749335358464540488225839048278526434204429863498324143590405654071815120068599075208224232934985584024429523808842365957385848411273119479418704787149290936797252250059717440806910122898681166895825800901205333547206618744217141410774953433536222496072688782190893378783174450442771280939211945369778216949980143217937433544183983075859311279133647479804897054960051867193412370920771409234165088921705407587256395470988427296323051012305210100074067536509211458098529366332498521896340102741733839446766440017060148909848468385130137444523430270279043443618817826865877497222240718043219709832335682778851269410890932319967416157620689840602226527824543283925828839880814979115121044836787029233246884935733407155123063495685118206589386737468352952284991602007685108797013061732077088082409146658894057175493683020784996420251157239245637081284740550601803007247993216162873758733617716527221620775080422659246934733502621289659739101484533254715239665448977011778228783521077724284732110928192069955665005705561281616111713135870029152791038645884437115957069648116533022402599572977766926294159329793838355887447273018956626312829487651212155933851838962366928052094834003309054632451705672201130115593045541777983191609111891720730303166964642668881463596330142403434487040593615683540034897348821258384017749028611706238819065759478506265190207436656074049283470348041657846739792133145713901912880993150292113118897534837334923855800808491861309542883489501926400555331401689649746596305933439743868368229197038310819557348885255031360799510124353950985598320414338113033745410254298678300444145634975617413540671384590767168446513076713016221146137721448484284536086902441699790519989991665130432678316180727697762227491864984045476569652536032064864455270060585980408605000387569403684597506128878307067395114640507814571718918811347105169753330002170942227345894500944379811269070123539942909491006415056294937908346919301572238587329331404032785222405444013444689824243340501335924916168872612732504623943517030842232472374310305396900797067959165924016132766828942487895807644180918596023689797552391980319931038462738700784984504296871346337217761016236106768784668539351161100098900889573140337629552100767055822908339636488438142303949361524439724387445854903519242254710424354342233020242445322610310381050002805653630809689089985793713529678207110092370584737011416859692252717299448196971567063239697466736286202337591395768207130315502805654171496772368177982507583662384212039240878306597329394099967053026772253796347934697545535963939005036529632806999132843296417995309755116491711295765693194527826190993958879913292951762803179393245633238182359396210256236939527543759735180602230302241619908689703391529248564733034501444777752393036842275006232772099030212893731260385619392985649540238108890065494577502592650054865081890731112909111245302494203783830897774349551223689834959857229369733238186827887161237886801944785992610337042195414166753235095971129202659903546144912293416817715318815904777503473514043770125248732039516782293765045963308185806715121945515570008890159489977487105196042820498304475142606470412185374946411815528844660868528160247421831449084506121650447102141694580305677981053957373392112003666824545157594897291808678183241570872249985229616642882238186283958550643194319065736822958909312293643062119086181721752303216505634916606535778818340260896076737498755219677758592389558167729947041283187870412931474064030502769145060160005364423586501398483960444958844277941876061808883167908384892131001382015892369140721364943004664656774218379253380138161585818290757047251233714536902156049620901286593722227302978132920478436634827668255694838402054069280942395233093444226502835458469293902883920802785589160513745507917271179512520616164926679659987432263333257651158015810613061816143293448104022290483201140348361966912087711321836835914561360221928141487095661162550033908857729665363771895411277372328622552776232494120624138800433828505282147981513410484420511159142848413716778278570587672943170044735498104441170494042457929164894806242632125344151881638806049013142146439438493876619054345394555503497727560498558171390929246127624277574982578005598585153374274073029654981853008813931502341599500309491972887012522622253444799200939799453087305329125814040937095814175001076336826098036374487358002411447213423493742262717507868416146183451286565066931920999485581340749043583645676123358506866810487670116373614398810339344015732595160416423221933612429696136354357574645719698586796051942529899290661294461092676266308600307059410319401831272335682190680397579744237503315811735585017489387935709148070532340230612821176645385194632120372514852339948125293164648053337463608374402367504705306065732666497650414131572285906098745655425692510357156594067401874866723127375548820578434749234225396499260597356270219879771078901407351135917734885381930579473003503477670673107514393912029681064870204826170754995394774433422631234853298872134051926868628607996156887640656622443663176392161233602961639738867482215318879618915817766171479984864378903187555117342914415363878520019132492798987251458897001940257851037882699613464211457685759377927175277821777259435365634344654513721210699013230508438310474455676452113207845251814710160659000436642056053714822794532036121422981983472491133827258549776715178349222210101385726336117048803541749094208524729493441554792943577559366650502810952829441911149033160876935590305090326185382619945119266400348637710328081176083589704577533153422003773511151670162810075507828775943939700006379162214943718061901305619015583846855282049662164340302401246131169398460377351665742779739795660631645062683574485519515268248687954019086428521565078931793130273952289195237089705897951870160906114200363272084291033362288437980716094383165947410932376196453593709652391894864351813350103933337107296106860589488159031558260526981338862306615757269245276949864065787163912548377971539098523652968371924195094296137235183152378639046021326952511787014412720115483189397160568350159397648966459991677521352066283975585688657226377808943218117689872314660171007023326526241909493473647884487299459622598788554159707729702153563923184232910227124167553567130229604488999507993497181514647292351828987759673577816053811800979387065754662283775083479689684409057478935879905669554421728011246653248102136402466580236930615168218526475253025845074448122304388652996063412581610246831334983660047120398729328406485027079657393305078042303731746454199761547511593068799859385979377833070394217303756825994950028461030507368773525189418475816075341596259182048441466518216841180454925047114639863018511714857188910369567204976207327153646086707428330185329422149589909919540469492026972628090570311979935642099505880912891602593821838296161425783497623637888680143783626058875241759878527285954470037220007624421953489989756350730904838462002066037548894476961725560229329881566381766189297159505035326135048387843036494985040286342164125048816075776675218569325876779453368578346494436611224373771129872537156251225812435469573738435890502197876533911651457225001643608373631423282929501873874770885588752917824149398484050784722341592035784743745754916575145889839794706513521918190267748189929846099182118288264673101623705057960729671310578115941957720287200690724479722822218289833289886699435010085153528959310968645138817202079195258824937983579366308166837210435509712388906046391846069083308154127544878335472606991617744667205679299077704303037600666778072354487085888180473380564045813149332304632586189703256183649293870322054873050769812007864436594963210820013678077771725326874634550842076197054478850304707564661920162990729832633616570255336707033363848811004411521832472872909529957003628231985561821505254273559288797687935850754849589157914943694467429392386026302450304004141666916537393150385572130959097176356429338429291716252588243728790534301778048213143928098654442773856030741296500733797753363830666629672711532907232445455648640651274766091811924544980762999052367548940688487022994723779308747988541057969912015907774805819943212640745082694307523483788517273899289336597523004013509262654336711047464050934031053176831917254128646282607283730498361500970374368776579999693432300081293388159867182104774498927909490092786890905482676140312850102886400940442544180534205823143051518498163427808725824142072022517236606138095135390585182349770885020951558445704425658694967521306849660405802824920569735857708269049316121061850390068082281888906358935435291691958065650513623825773040336040243415863087870424712438363050361876195017695239393190366454963571831224495849977779500548756586310092047106078924253090255831945501073165288774987305038881618342910970418978708561000489784758914988321745877633868942331325607349016609768053524580453153501940555771612101230091953503408559100869123971794488914645429102232392631911309358764373245674048451212254171582388332210973426255252756632533573353185325887514579405289318606552956252907044454307790017344406930193527249246768895941787606988838622642973778850573772436618519000328393659122741412998885350686302632841457497500278453475993014942912115271941821055088141371538395394179475195478261829637219306390659421768611792546611424515121036150215137917217899220004957807522540363725160107831771869053220885422242675731678989502846344835391168170649174104412735232581689309630756044075707654856412701723533767506084669096045911818115904585281525587817827479658350804273136840232192166413315035212686669985942631227787027984643334049392418890166273076788809431850418464000076148577948379206665792594410950767439977857677834033057963335694671079452245047796783453321485898771074730941317075333335282016072748823132898545948232504373281850913173759905274930589903271800231954647286880173568869077443162724866406804789726264236411163056482604344836872378250332532157501021716271314718652739409861088082936220116737886843013837606473311492840880954539897704530667260542319326831275528453300027811008353657970655335074699563759924128900353112309702770793676670125746524460968234512122813691216156543846601376899082802410862745348225694220135493234712939905384669534566710522792037490099817625450761218016826209782141006601120299563520937386638425941908921694374296862338585480813698549855203983153527776324470459653413103861479217673696581194083950846922503316545378112284288429916805554835381286218892543500408041828462033179530202975602652748664739468932246968454482924670471607134578393941646645442823788790262426239003097256678878578061704597604191194732320900450739474227752623708948205515174788189052161671746176678004569607482003407053518488249272918020266472076654949835845868735682391784389171572579248604197364679263711572507598506365805307061382279928487494678289231047910199664657363151679994397820744512909368026214529065840342087297137555102038670001726561261740479453693702757999788231429172525162697798673248969690831903714444601124727059011320074936338141796630498992846447951449187309735715673683165150353062164668835122533903326920987578473338712974732738096243454111905276665648219943685734387786251804891084863177357548522615032140562264515297061358422746676996297145755824491586212970876131171432959114577544736839028973854009763231431030919492999350631541913013509087408222933517596807962697815035830415235079133671228247847579648615137825471426807305873302086791595548086762629045860879048806878189137622995982047555381583966611302403930637409386893890437223564971765308222977720514020736701575730616513550626836630723330836021498639260852499304916932454692100466380863629777731324454497802863290278052749269072166436054009703193787866753490141396865399265562435250952555864992793319313687529451752971410978481287640898831285728051842367495106022606422746097890972711015816559402629777706643843546816774166049386457419290178295746759167455252448852764868964943759857302362343033244505125206731616307985794786629737050708671593838123776284086030936574477500498179121161552871631850086784803116283500974972123610491797873929250635141273027514136533106150693321979594142611447496595139430334157542899424915191503425547986755521029850621287211688991136908147590690153152795388733080777054689494336816033166568235425269741710134358802429117194271546035272415764447923454218182378686014572937646084479412293720220938887040090711339707040958312905482798596537381381290539481664637227013329545861992685034369772076343694951553093807202680407284003663386742606359998369340752724580552042111928308793962997163932414181454330506106811380512047804454508155935180056279101172866736304603093605821062910830587875170898763762788869431367038089732913545546467636593582885343422923321288782101046131659505609033174583781690612728066612278876801058943954464126690308926421787736263603575817070992363961138094389218737828033099191547936092824770925802028526031245554257215060046818910403942252831095094428743608145336537949040169969876147226484615643028684077921737289369756144181837002179155799404573713100831023651634900626730292363399377857922984068259218721576310148301944560840265650175706515485901235428537065633788368223124869574475659374534667201327294840667744948422360102439625817680127391044615228915482806006492643858788556331625825343953198088629328111337590245569385895066465472640739548826161472485849238018564573372756282572873121783307275358206263169112471319058189465864796484705388617530353298129745065560747843234919818182826279942493521261228907017812305403890653753692543641983351082312134340951259484125859817561159984947102061090491544271050853475917605426644943132875179237108108602429109346631349360817182048233011079167529021722298292503046090996945629574136557822859965023282475599269867658155357233323376172829993920787457529134500318765482177702944671926181577689378817864951660604199012798501185050669781702500853683789394987825127753351597209980349322811618212484778112648029554619423782564232420840340711064897550789725327471482553992081196151468130873781480360704701210041404429212748998012151550342341985327336192027796111200907017704419652607645450454494748541266989386450511628408308146377581821576517675283511250293450600863379844376981749681504228730092780712722642718523097001634768290074707051815437238750308328994112926929686401493758451929538633184458394981853143472347840624461803363914594433442819185424888587802862180743883886287881754154493700902265069829345097642480597010406443808759384669432315429814029025095892644855708446585262568036114548564637142012737020327969594027524232688041400137403492372622998074859016298622057580665705431589124361690277118892835981392701608115505918485891535437071763092590906553317130984776011711719348586065540082944407782174875539349711282322108008463249144874691758433586835130554314620756214880536530261127133706027343618631946175850297921193298700283621397202083300155794222214796630942621851957784456321668268776315165011246115036111189966733773456884962750891610054422422732257190115353519184114147894005703055984089772848933639609214460951441598143038324048838605043389762743564399658019977433924681399244092109952685942640602902844237053651171118915397309961032562281505433212015276550583918171452623559008414462463957901121941968708598956103105158247243071982291765854705258994657605359699987330141304424853920311451479667428158912420424904507411395212433264447184332683080119887350490162857545131082759431516520003827864224563215562684353126762879524520554820254586919755736328350557171271854800197377834245997221947226941353837844408879613521582745021080818179664274647526992854098496207690144055268897109506464087403237726258991097129714328172767964607049943785502373981051435435688689010745529371296461228313322992602236170961738329969330436648104548379335638501250967602202518053589855365483553627083832109394440737037158830553339940070899982180465322529444295073564790487561786963110064324203131186850270398935213588098624252615234334204490866623455966822211232550296363018167938599680964205804936194271060180171904593682155247846543328234292670309574155154075623473123266906847865746327373503652512979841124551962605696488148148360454860598461559574084012035926805918603989575237425534437831639654593186054546081845510063233021761689989894489718537930429525069492090719293140982924226403198836195857681370298501099979020820356747172661401116408918738536747178713379201949506565218889345096442884274210223091176575453773187498074652899596969348081778923561176522260817860419813573740598498976298384552957775626740354178620630201286772266511731611215325027936440345662881192537602706399012657158929792420112946350246236946596238076066672593448281690609820891873433264700222577527416791883017769409292009997896965919499709710277278013296856677452871795073590750547593543672056049524438367255903327983357008128488771228498672687584287148179302822105660542848129632389336923669164587613966042468120478127068531063526966835112556980276655762724206075288803407579793687802010445126783511303856593863867949936125778657586068294512064104698136215934112934596422962946222370099173429926769516522773015733846127486859802534075274633060210717524489468374788755951031512145977137122866594658726720533109559726919111246921614068513252798121893922746856501947314076273535212529805725164186971672018230778796124480199996136345945694708584344573684135830908804950115629440324706804104084022697706851603147708587541426679816079285724082550617194232605870702242266617278595334502418172544744463307036279435588808779305097749077730433605082633399755301471122594490106993937669414549542906231698236774130368445271642056529267558664186026503334645758629165402340869586211840889239171410256825728501618055235553298374983440635612909625568201940638971481424957474826595809367132029367721763658983969178141378263524001068676362747050040190250085005688221079365863144659936340199514563962755974726668831329699667201742737098075554833962193334283156763381973705677473886028941792808108713672367848318092200282918673096519667179728510862768598760252633709559902968387421795713073033661455454223899197834622586731401048009582930961459982731805734585271955345234327379731752742280779308183297479818776578091967476423499020376083962644886976613012754132616413464668235087919467902006272828204059064831507284582705494018445951163205499841780593850175170649422619938858793776372189324575291147223369960954940807867373823026471712857033010765931298848016957118606750703276681889337736094781191653553135864178527373627970045701787897010248426422977522449039941736907274001158087958046278298306779138687164681868746793403056143864264707790989359228827039504717473501611009028580099860490648594725790727105388935426035769032734315324598593438347409364656003931245509782967373560038523344725581041157478363558661669042448828257003089628914389700499321508679542473544701154753992402293429641484155055297230857778973285171207370019816094805861046967614716601366178744560296340317630340589568207000826583289757359846354216750243634263423099829636690622318900169602931049835466404548628790613707539087124473893462913368982662507955119351845268889869156857738490016485589672097754305198508803677096667961571719546803701979861551978527779644362504732132496945022167043131665798266848993276036523516956367357511973244662969405372829349313036279010410196253727693563787249658486350006338671698114201054420243690045580869472054043272716829194745501576650510110569355256163865513564194455617217968061321922540200669482583247875364404773973275985352938137923973463525616411707695063090105733037048357380792228563361474174710133524142797147048815035887213228381664247735785658039253025818658700180746601693635776822711728239156809869254027514993572109849514806742878077080470674011206159313263074101914094871209043679298703240227921590315026204031888532919047083821568895559595163055376157629471564250700690191374323667033791078417082222692700966096672857076204000253806917055348945865191352136324291102114574232299204083787889036983377504036976617337388175464835600247351796776433353330087192168140167782054777973508329679012229822289000996099059261918562122042157920307485832431582006973807188274314645707374578177904532907177935660077463995468003467097180744605966406028660802780847887720604392313078764740478017519662506764230257174756084277368225487260719022098817448210406971002036206050269713551760058584854322923810465273500537234379590106864382375176866667582565434667449868241907909122520339670892220156282343059424862856440464868035750441087431589356419995247556164686399268195387119287531239061122821399673749139069188369231872124184441827983039002504480404845134161460353932681297099867419895145105416815115873246999964747337505417392319615704946030596607231325184129005890424611020722533781378343229841706659072682121525214595610508177630165740237489932068589782044835700424009186176573982369751621985440682400360907174178941931317181470937987235066365661312459980628129344918886769536398543904622531992390330441928094298638525274318098705484134372779150911187119128310567812768721399497098128952904675284445351041181938778247532931975040963548456321951575619856353515218651336434139287395162542801008902137338780537786852586124338377807571976625937510928413031351084017937266371835491803138408258485724385363560951881341223075239400600572599554488147478650238731997161856892535271941866776809672343799809722128503546689405605314395745047681060842554098401265181035108649914304179190016531217049585968836530634934055934851564826673167298150439913601019932402151025454708412144896883157248382154748826631382713358537461220483958005563921806104000247395185035104722407206150066164051683769393621689424223263688378166551403557711813908437124495603420864833747634482431611648465894985580683290115525363997163269125372094885322890207465278424846675288195745015774696504816580419910034148076399985280350128626219780401208927910517913804995360302544194096110136545369271936131599545932357627454302965041864965952333883613868824877360426774178865844556776934229748360305717772302982482385068449363160583414701795000553815877759696427277193088071503934965317398255727579362285710933951493203979165709593129856333829383685894049733218563509255458741498084903274678616688215094370288989692400589674620452373762455216390680450785330010437622309776450518701726322378041730752679455131549146010040322509083065414250011204447126685015424497181032839686688664447391254696913670864347075868295099392709040750447207738379143579451216908101713512712090304594446420585357364704591455920795811829742267970596598992436833351813813437959071477946996517243392959841025437315005668305517604214922002371488098983406582461293160335423875249279864385182754926362057622738619701792063583135259777456698524177925572500707823279560118089949698611404724576543061784766860291060808423073810771969108730834274781356208634047222264723067789706116347558570428471275403877170174092458451706039977746361356609253629985718622874337449911242093007608395098788149436278689695342327727942940891800296662759353539126451824865281699694169844609985514738471767226638864398169301626994381041907440905581359188054326462213291267300540254312886992576485955442426726766598697753629146096526740308847821729690958302073241390504649348842551704889910136317552441792429056469557839731763757272774159352350864108889801802952216963362243771377554345777940944385111555343173490927319344169791966922697732937886755375172686094281349665285316503640079182354571645649194701383883013597918570904917982866575873165580384169731316310915544973072824601975859000406685761033826616502008733942001781444832630642943304560859162020634739558287328187645192442760991925459351537669895658198165095136031816856436268311538234676667007847772820267965229564275316531533002060799117951192027003548725548199576696386952726051856899075129270908622374420670085217336749537634423999500032973582866746761662163006440939330345869702002778447258016161648305766592283442841329936252419030761196453201206909617464978081781248170804102200048249196881443726748182631313042778516492837148649197915502392344806001637137857654445242458805342511738178210632963718837267420349458141536478980783884979154924898956021151993879104919859224946421256307045755617899975090969479654154557475793514432260503290973200738719668799073621659098507602302873129712639042800963271685633146332675041687790735409589420502622549624543957171524997844559690695448189505707647778298270231615357051312825305393354895323307890287346747072741263609988753970962898991186941288993180252495381714345423071766065720056526136804597023970383772481674292846833365992642363278437631833598946024632163256746334199760604362080129804210342459127950639528487247470641043920278256154352547438095290993878105309420986419506169517429872698422571983064265320806258854092020908556582003247335822287603284026542609271833955653596728697583080833725577738233178103727360530394343796397447469197268785946838630793339009503646252062508662613006512077711725877569246288777922376992554942158509359834330047896149595347464286067963510350941560991217678443567115449599510567813279114363719144537113714253178685124805212193809963920844298265618750438565068707874693798091239718625152141857209289501853609156645939654472608234944924443207351116131311942426899036351277559676728293492059240371546586676421994556065345590715978228724308953471512605566989264032056649824675594467384076507432835810156581595329923383255214128118676765460763986117248765149239922554401480218916563782130635495761700492966176078221015541340505490789772875530522064437571249759369603189960075292590238193028115198805140271163052975173217535515298437447690566515288128189803253638446817086518964722554030305362385373760005427488639640310758277832717453952208494967795392791264236660386308539248896477401025038393481705298985864022987214322100930448608734662884072646557235923223133029668270718034527479421695543795857486324027269745128093921897812886121730464112559955361065483018879923966675213098259850111497768718983702862884247975544546008908521890005849230432854513122601338968030739266058516066531038797601104800955348043902402800586931336149618488033252815369923730101446652681297368529878945395866685500270334463176842178742140873897285215498377360321651837756353912783629589369757102364505625654026962954645888102509768483616069618597865759028052328914384932718821755906759089896933359045091604632607276524738884647080406368465585485797828908066069883294532800282404939049471317495027833774830218773057366669661508524116828926246278976312393997761703878853494699910831553507996384566262258574034773920671552515577015105697496389705391950071893641096283980709594419594136739647060238098113822821520991726013030790318978520820772113354365704155227434759995649214521913108118307021177207046071555349313645510986450214193180931408013781780876336481441791773075965043543173077991675775310432420943835580082353079626841276547283282465138093162827493447715868575651071265948354204402945062378773752037085496445218743126657394426778872286219792666172135377309225583811349259697978270351880072081175295172742016050153261848950568720209158563348526574302183471421357898601351060117080779661393457939394173145267246792420719206065880140812802419951551121945856268271051027565726104088203178283498989982775387610635508461546962140328834214105113588095455925109473690186640338673260317419641711063986789709051996668921394643438139011442741329468852637517080139134384632158760451695613772347494796861552498560410809374010703787556809795346013048126159630757898086026646517295611679816514781937272307678045285197224432408693498762251484413190427091946438486719099842512248610124842375733320917964029403104823400118721825946130894505522534056035166507174996052169507765908706135048322626099336965550634551806413743410341632130930757499796971682290002549402248846880679213442486813076889833430468593821277165092362733779175205270914700999112299870973875434708127437628572190338147396997675498899259391453844882588305039867132788276002418680760337535666370654011114342199125969732043384556999820124529962529783959043045561058745151773322770226421994063345291665200602161733734419619806306796962957145302209512186432303187327631626547127271007521069039536639953750026085388395460562191085539991522595763973133332266071596335096270743746822132257133076933415814969203078353717098533994918422609671110098118469127166662710705837966644264916491627984894679024935562131675724942441343635758417555713765734207166036123922644363401650799252439600314680029785319192479985106260931369171856044983060600841958210561207756057171480867272376211152210323612698988103509703998743348565645064493774093887068546648364963731052577849522067050237933062359106039691072395205455021650007213401130372983269063942822642150869936345882982091222942404089413574257677041096207215364506418403226961354861482813485626314219457376233404467064692153057009219119649476226810682183033390382118588624795216306493920885056918364762270541024840342529538363202594932666450248894953337895959183557898798554323017846831732664935742227079734257570408192635251279629632922686625595426312333556297237376134568885775884452909335822364823840161507656919108709619745506629028181057151647585542555900570170319343539488052370025261167767947169764713310812999317977039634989002155713256300700996885569676445700138191725880921628859755484729887362156046336996607656991777953963019372895830135789911231028284146523810412504535132564412134192161217641161599327827695103533194448029474533612762039195861852083147504137590802885413282717731663157835357274255781543096583706808250191324483700211094092106561206843713541297970777558345487519810828708802400789077561185975772223644374305791375437429567761101106366294629496530440818571019268420659886494770689028487472866870919361471268033577653249910331092534647311362432226398889047026054435429679351529312773587473454330475899574041029055815354494795737495981835895585854725951765627077562731776240375217192777354052823477948972942799900349502742180379974908896219407782964563084619325534355632616425428714941365436458891140570989903337884482095612763158002716321957614440317231916625073188991108529636542200313422516070797837654053477833803500614522195156091270832469380250224720627989364674884191243801585254809782078219511813025257008683416224228585679755960691469269417858442586144152114003573866888242061399295381482764638835109411438162021969013663694951236180000952531176001551729452572918450878744069051511879426496981557275992868653124273523472288873857830064192981625089207727585526184326424321752857272816218238703141558074521361151891175375443542558115123765501567790584056409991983914897732564664031169576490707375619911387607690134355213301677418993340925147267431686510365498469370106820850843767554003105315845082637312028026670958549007025171044807713826572594484614168969312414818879506538116613248140191759796666151246770167584725388245862943593829649944944674895862094916312354062048101783630051243021327532713473499859957841972485366610596127155163835465790003622705327723306487734028960571438216195516491581662633814566030831322107470797058492927187542810259083638120567288390337481671845985241961056607540505785105377441590509987162649339109726702656591445820359538250237981251982965906281342605186658468536743154165431124450269578246570172985746425738139814628324051410088299494405957555702336912826837251106769741791010637759151001128076436753838130231033898779989894944318706227103515125732529452386318770748014299468667688350252488197472010214843052598792962831574313124131903545190908131605118054808621713201411340241557498119067274910335907521977140118801627177403515282196826027453382036833928070877035349731126846881766683538133497326294436702767461703482716627829855956095613215258822763038561026033957147408886874658922364618274570757495602461045427335568274435665609796401630703457389551971171301916815907094892480265072544618957368780898535069678179673226634226934120130702806848443081740519963728237802590318503952762068332464448306876472826431218152945757950570088351658607515896504888861352305467391680883947388567631822719389169150645238261537249456328994379183455506389698777773639879455021760435503889303313754615950448650923060447887182536942181741234407250591297477315005092166377135886816588319112844906571565965667078906844369260179277384979972130400719896483907244271489787813524108839389034152611684650069900063018994055385083635535806755534229373753474263281958181988798572428427832618966768560540149232020987592076892570537835844676564469789187761355623147259101352459321389017349443739619776908416186012113466534269650910225088075003652856506967744164000206325109800612380091367456966481638001883402242359362246455721731320108084203683741371088255720534322383543361972926675178530699977259042401527875050679630637885681861763723504108115085457838092331948290106501746356552079551855227926154176401861855741866218608741342622564001805410318137759941390935373203376860080473164110045931907115813613612000424220800692272018209748904741487577581033770434566291569823666460600841521252981014824604079247772392142618229092981554428043883450156539209519911124698560648419645869123726240234548352017353634401123379917969253003161708115273528119918201588935201040567616123608236013162064121156816529269192564310682271751613158147200232670524614075658087166276486933561169083108300772364087361672798008123378413641196923174029043035180767042394582441567893404495647350052707924524164432301073881104468483185950759569532887631319438821828422931875428966436420438086429758384162028859673065675369852828287234502625245279152802015186083442633328030856447201376329121314829277181150070486009963773586654231471371378836827694745985460769520042220436830358054758955558889394622736427017013372791140348268663053134383749919604858926773255740732973744814685148589780018883893070506899830401883230855934641995141199744485193340855825312604119850318150629554093004053833685324306977565949025980361009605304128468204182507105890331690192869103869636932083053297586220516340397311289017290262901772417704174261431032624483431275136337787153106995424550686603217283165724042583192399181739913164971552062998210918111647330439699861359747536085684389002045033741837732895814734355882339345891968608284775801318608677675046960124381852263711741867369218815202729174518867568239353157288335686424398163872163368880978028984514221231667369098473816152855170552558034564839709165501713600362737982444027937390029658365768919741572450924770672446238753432235909130967038157394231436097657939379527640259273922532897215909797793813889139084729393335743057964429662281167559821533956003914096911501381357566675642414301261409910163065700289723972683049756944399600518182928371001584757926676044369417423707787128736744133983187151425058041550591643758289006071191804070572082273984637247524496069293461885938314798329141512923877567853623496749442083780213000529471502533305430850514176923449310394645389125190959276282350773784933462278390449471530998087982926116934000383408230237610441869550670976486433727394441449698659877804376819642780973571080926469893635122686851039111926246172910916157250088789147916988927368959915136502181129609736296104226778654217521960659296651384172073194388277592187392600528624858823564947981965829555153712128654780308418510445322115619435567128363131455055213033859625831166490056524018815351477693575055008530539424898334718051280071971937305270404203414761308765449565211854645343826337111571508242112329051410583906554323195954753122435125082166608793594225815281586278304232813610323120483122352443179587875103377338078424055375933757569658796684769521091542421707395128524848677149501045154710883653044779062740162928618827711374693521473799318460224960557838913010200734021342408903877164581444398836211239450114617692792283626086279015040348190541620513836520384813406758807045440912435998332390956760694453694559793238802347909914717011214442848574399414247368114769656108418863108394888359785600876082687040415621111822572457994595252650245596664305203678876544411584345195328527820095678431337696682079290659975018287204440020228267212486041789955739425604662985981596730956483149575340709185085636896701245101551432672640186142852159167394005095505591515230563531055764862355042308660019239776843839497864560207678676921764057581598262056373784237855391349348893694351772412208926037860273520132691846825777198894866908362924042709863312142276543723708467229827387790832224938358821071685633492217810003741572945847871392149057654089985060552358379088668475059248021248786763884963703503810909430150487020321738424757605503602293452951249229806042281600395648618622982011118742385585035510488117615909071289420568949881083800044816030081453525310612100060526935813893599127997210060037565796701176378255047965137771521686906820226204766858058636331584614329011991629614519706142671292621372091526593860613454951836525667224712338705594224576071137749600268386458287170983168414368364172953050010326803555943930952414879553518452470446713947501506414884276487114098378602778134010752984591487724146193991283331833888203907974867933769177108247277800180958252628685839991788205537644828118278791515663878370788574864446298852714066536902039944125957464504652330964704457224864803035575479565898716946353372689454618321162977433557570077191293784741299869604366119401665980802014278805248714550342810319831332892978620664094758693778101532443144044763169908301382385655874374940506292232017541151281719570103321120336703440713700939939529450606600713755061993062147501286613648193830008014995517481594762731182655122893644436372347976889560799035800808537297872913256414671128804607967341826525090699190355695495827931126531957586803575545551132704895801296218648818106944206820223149697249865684260652553047906327126747711879360100138063927511367901691253103455213541020836728045896164225052812668803481356114512737357468141304566004143281774028069320113617291427932226324484575589618449849110547711061586090811853838136282818287575943728654185592788013916985012918468583925515988616075909633194415853554365377269398578711338866438473098916712200962717306036376447596028813790080789380540839129318059168177769580757137284980758628006660970361912418759353394882906018070357523468823257463744934035673562697453025972141954663759665544301898234951203568338364312341915151308967287872256061445875939630092388503306593312938022371855183734494020732004284299535994113156843785731008304046105155536431717763557154235070001698889064396463495341543535207728928824141320254934601218333998210113433288061622787171028455443131323560705289068427953350570491839033234600237229131404443987656696361708773255507044973144376890906143395785073689758714447601892664521034504763285838079732872769879783707021769687439700091121778066487878064901352422345397150761269356215203476519556475433631512814198486162370476852861722691293875166609320831706464923097118697848416575213303667258457591590141988942244348383943348017487800631044948290115054138470979657684481178527655789318881880331695649284521008925873702622777301418903968427474283870259713435129454725448536161503687232298386218799175663511441012907721743290507113569448646413915132227819404013135544681321606324237438387949601937629029233274750399771905231159802200040325956997326676399498450917070996053757335320242706413337413837205213689267069450293045187066689232472512407303138129187406411390373194202184887949245844613630383727192041689401013205484768872283089551849894911666693792557124463186622645932830334234704408691140471484075822541436315835206692891883844640784528291620760799754444231662927201347459754805849043888874447639613782191180659541015626265509129556683369450380512080837798086501742031491685454399983829253457777496720251929758191294418759876111563112759891151654792029917920499252673228321488760153465580652745346399494240937168599730047314201507950762912737847967179456153093526369015601532584387669438566135563438669188827658548587284865962577563578618609514665650118452107792760115418195978947634203033500046205853471320952792707324004936268027749139795023249275434243808182423712660182748584566965922665930478344786235549484288866502641010882531076766835157398308522422080517015085875149308339114428967049826936817488374316071117290288328625312584910891610305018889212833988013089717798509234438732018192359132781221077774563879547356420282546679178955539517891706440612392951070236595833238245163029875487686091478817092108816556760929936596026585142064731975906134609630935954637678106830052956903887651723450997078772760050102391299969182507097767113965433905490972520616389375059023787808973179065834099180530905638162843869312274781540972881398766294298026736270993833933015429706918503905608046267838544115253232062150370349257195704742075272560543254343731296022752831179118409245246199040691707784958753484757355444670006284592383609597194468962056875326079753462839869324230915844844959404609656908874318968775974812477912153701807795112326486608218492464640054429341756829716098140340283195543096733787453319500019125885509012882730630466073040169502151584366851902451850335160187935184296809085557091742178614262140388291760493084522512384958508168804214801830639544887784162363926381712167112769640913535355689605035980470440999004581801875294797649407049145887494045924938292500711818747222181801363961968430935260681288520918611114711506856276982506477077253531659025560365855092868942237972846383565561535261996064055367203735695909386323333352736226673109849202527587482671391869538296016229082999697976887287575296348403766131096656587903368422125879834754975133026746798905313402747616596194367485250399232686622881284734835728343447104595580044769475327638732125933741831582766698481449827159474799686928914201361344228153231768959064854609971244094581813226626042452192001195925143764300806698322748404530530804489145589626714212652461199286331811608656958671480494392799883617515427081710599968355830536661638414539812290028484877559808918720343642059465150142458094254136749803804232247764414995677559022091980332178913765499455395058888216500463480980067135270290860601993986360275363222768415210159412229352345742335266788023304787748256452919210614489227815925237899519325582199167842918692753503275989833454069678471036400028145680483727047103056326792651518325406404803065125878201741888086570620142680173956568288755113585312984860977036122703383285892110805996715838617465929625000971975641641463317087869504875010922101766954995361534455098642353506266485159805437986828467145052944901602210867147355374996335533068268925537367076484504516289258491595776442294494952812716551234922165242596730153703833040017461159850023130486301584912218771233747298131625872694707791140208599696568513505766348078223964266309611814076833597059253479927796162926487049726220543334776495167002435301277079550090813459202460997372991292252567260589428301252820233631042185749248136767312036793564666039457361000156643222595760488400237009465393098459160776658782876297207526264352379501116607892575751242112827755837374537338523177981931089989842366761382677964101338892226676148115116908776407354221821177535100150176366528828582488767959642525958065603281324123915351138258327009328428133140690857100081471338530210552124575853940713252834370313828139450581827386559384465488921732872164152601091234695903080103558588365353091294850228859627799264878889022736279785418006599581059615931478599837228967826267331031779434972239615276073151505290591234443783237598221678729717584150284168033255846633178967999785160290977784924306668549272761449515136811289435852772452018695432362277252295862204906485608121657391659192154457680320413363649617004169204429094103269778471554737042351251308782937614224077333070444141881142670452466871588068539946631799135560417484268705651914769715279281319290681560019484748598424649945712971826529102252605501078674027509217179714874253587269670503428808889170812891311881744118253607650681555004774534956423618303924804888247685398113438700596686163456937937765854844244333104133581422080012137321873906424583168002733807661108139922342764369922365038493977979155018511854612542551905042776986734631501765763231873248971245614171807562608786049878832428758345335395699859276808455300629655297627503714510088495997753276252787344935833702416493463200444357764817004630013779623943951710763724963390361266084255432380582349696323120045154902445459586071339579523933009353295167432996815528176261966796874175451775008852270958343329374828491551617270850676368064072720166909267998095319663719571700997892650037860271483222177209829962780280917031371606058830693981033130998775650909081993299689592138748393900891981990070909858929571500831195491678525358698029484592807030519302637734505648107000189061055111663063506234322187086658346204830327333761280700675259061976278822957133499301232650081523359193653315959784675071365552037820301694672982375196600380462314331530887764054870878333788897632062077303534172511659934836129792322762192254285103403993289637143256068581947328257933603086234422267390197141212947880622630640910698956398795567925245810263321748714799183159512235702079554501802729899089041292503495396318606493638580481151216397569072082581931097946578041577918928092570858547474451535325444391269133635809966599401425686956162411558051521663645824036880869856831068504305141897867198955688679191993658222273068117671023342662618954686067511974622064692553370678798781280241386447392976598258179981134735980269336965417636839355471334282869093723390625431790861011771735095310297078692806199704291317463637324638408413407125337580813617247934231558494444546739816306096002340096167650287897821995361111487095833367099585955464043333309084597428178387826242634044254938285238600506715027809140269376055353522351738212930667638253302068543778874268088862672167486387918251361857735531164980960623665337942729508479140538080891899707973043729942050343630311434465842884649967687079219493734584442361799181376273962986338950116006254113459555715362265771176779085665297568381773739265891214444944919440058976224011509186410645285018452162629366660650287483803612790221942919480585727134436475579993733440281008481940285084138215163059069734650273387672598742077512633142939159689741031228282237597685282159289976262971024724166045303711764610047314077957288010938894716317563551100517579113248708040484110735296871519059454565790634948869931599918573047799889698995038329647529970758183234221853062136736603485621049074594407916575484360943074462496781539568765320713422815882323736397049034825563995987632760120892191099307910333344168849596157017786483535885746696076503981422525912412099226926746684474598622956129452743957061056658076202532691932316834019448321626166245450246125951434323394616761892668611210645514624993401335755131684169343323128565592498027638246693972175471513942323899779586653860595883363963208520506121119695951865461388188796261507041155014660260637038235675381894163903149116774195268854309689439985941315230326281582012067515340507122272172032614542414173375922992379126907435927461136545385118799037972681511282216131009505571840431803647350671578441138787142178510021614774195161226158298968227783167901605980869454405752604052546278428955874486067590130797154464943184941387766349493675659257860331307891455593491578401803168132874865084918677345656254889344119042493836156943043072251431715473457089538720710656931006621461111863217344977094889837240437853570613201460154308827223317795772310559923538209282101883150101986853493208392963436171970183072687523870378904766197834819683988370147606938797644588501236956477707795844744461514496757951501110619819854402599288769562289213093260895312279366173241097838622336863203806217381540745429653624963525595762534055256812326371277949566393750953928262204644964708117401162774838322962127335490433333466126137447439755536549328584835925624848744266662818627029060101757384145822050975841061562972579822640583507335452347193100829109659726705273681184099448414690045249342741271015726686053541056672687882778826577574989272556086663712071275968258234813799888770141328246495819931318208339105164253798499233748907815478957062581360094977069731222944159846395890826674979569961209724982153334017194948406453696178118972073636892196609369058499456761494725370323713236757667096567100102442784707151411990666031382731960632529413240374656683480992823360086184228770168992996797606004189973844964948385129851532224772714314790527957334499046269032675337536451601532358270233365376081816497887439708368130753598661581857138565494258088498980593879013353627796238335405583009827562704719229828252177702359060288320048731374781282164114586138283570197228720293495847149445507516327766524965892033470981307547494595802118807320906124588237134890264612849947306956958845946735014433360404140750043940086907090025800887149981206667720949057751850952293114831542078574539311253256498708748928084171886786132891583151514530478090863789527028784054183458480588156465426519733208471378387459173323458282067907762079848861099700971576770000046612760092498743926470024344819200774615554218307152631998622586991926181750915977852965262006735073835830762462196136519244937497022697787103179959522773899329314288606179751443237388037274050976111457117217792412552839833293264291194484761484247904465569855780580064794213904060452002867623570131819068758746889132228631737284627865989507603008378054096413435697112172594613252933473150483311749618021620002890651208654177311979687042177268291220554557301411828559257010215399303899497582728382022123535107345423521014175393943953620394882890621244571644205178983020525007155757971507545694959572196389792932633206316657505456677481976308487724886533725770497653660975666027944244017414963090008464280857413019158996523420759178345567669835083015038413083018327434468169753320696106170712848902308036436749553873898028934739184997059884340521705746488898820632833072469646497027017180788534107542621874533077317963259923612534849828505085767568214573777190069679210174071784434426773227052566556016794820367075483066426802444711025155112009593112892235681011447094183763524284502137364607676511650440943237691943158572595136734439666385615594241592619654997010685069706995314708981223094922421385426087039665367484133738875799867005957473086395462143630303856163822254851388568605022259192380242243726566162269197313547310417566955975268403535408240753777995814332636687282924481674243443816232497363975691564848264055219516292645439044637922692373573663022926686890779669537770943666369989322915802708089424802489785023449710598325976281052590536344182950019069760853170838561075438068551390885902193361634757982069838709511235802759499638937239275386868815382217290307973345142775417901726755627843246339923543745911763815669279130145670994091117716046259599287971574023965581420214164547362646397843318116473341234491596574256038806058328982418318157975686958955082815540510203748460384685715321024185017891841021177044108518992614963151153837391497639666165070357812156069395343808802636490298678808788953562884607994254381746517340435037657099713377155139478754329438575248213245575344440323043257614598114281028806062097237719960262710409757971904380244235197364170519360904365716427258583328334503399092844017097898499807519782053093309754478971051316710664151855262512182243087118336387460745798486724617938490393763894624446053981261096868840399217412158880225886689454092263599981766597183611060197075202940449172070957503599114993007255532382724695819380512077029775679557938694107228351779580103615148416201668261272125409317435342447540963515601326040819423557554070559904916151597239041506067926649228553215305459422681349223414554846560977184582262108011587923791119227629643631184324241073088849571924484080384665374889338585125152825258708935408512141495221111642279808094728719317626452325399274761775845928365534142020346870096096854351930876260985666380757596313593923237430566338514448002033504952853821776206378002982766741922464354428471200053046660251917466049678770500226546718821001942089890067313033844757073291757029528308767196326554137115854816793670883041009350819264002920637213672720433508500402573320539172009586164396695219780531713510430393378688099743275206512204599503831607789074765012490614349021819464004876992622646130140733098554292976585902511106744030903194170004342029263060245509427382911537372637263546076201816076645204964436347993886608552614673512532953010670547770682991955997782725060046386219227537936117334198627501834786534267195517247996992446465384379596861108257243709230645606585187907104411569721438446885941451423068407158833609130476455935872571567469476105778472090432454806566038490717821815833381101666396823690498920841945696174779980231653228109073262454679878100073949816956049158590219723345083595505758907223584850704750639186759498091787055830082715558293285086587401161162688113294753785680978071908935420273079825305797061046277606330050386957102398711631715881571217265481317859447483587189225504430674101310360324777977102277956710116216142683491185029511653233995154871468958888530950843512350393260889230834718843265738063244952284009368349927144977017327565936359241182314003294989942710930526002150578535108134145571042111981816656844252657632755841134147177810192586299038518070474887288716419113957053968193849162325065511429590607099489083929082293215947611003519554925068803015303112585423416775027722711721403959655743209944218716979566902592437270387854267022925030689091061816891662212993554046669957809087503971490104664313562714545146947851435632544370040674489747499348073999994395350778723079415889349656261119941217243903949884765045042122064459463168735507783141950370268833671219783689415166199209508824633740149412886937080183211999787609425113697912205229003064720998630812365273044273125668298930021203317449089389052763761138805146855236724307213037958982790370888967392508560201202174693475836471226005563130349774705576479394680825033565054963197846945599010726276079296767203738404133207263921042196934951843572288330740469070358317662807605143233546223542201737219279876854719305841841843395911839041804974100391161514688860169241937176707949653282551463378948962885219291306711470189838929762229258287797941507403209817643312899698813764845517144280161258338982543315636597737735245436337868022801992108139398046965905355580713454074711659930932054053331102767573833192572243283918338918898543433773908957924907212956697016704857023609642008429354426963919698018299209728097388438824894772085843286359996964473997768131279371200488372361173853061211063161460530693421671721204718050648947680802455100039742389322489239488222757016700427463097757865587147963385628728837480973530846840923250272948510661002796409335213834459283748247750121255778791807831909936303906957005612426802970799968019769318067351241630893988518977650148260860750952505540989434099422588420493510174896394974029139843982065276715922250316404402476388814659950807682210079706429314180081127066925367787025463700365006431585414163018629683157549761498519308480386671112462747388430694683650944117912807947638172141222909406734478323515923844187853488227546499244956805650493639167825101975983985474243481104966504181200022260321571955839522698410718158180628675892869305470424913987393236499185103416074500196484905161427677619966322955826874330494685920974184834661508942988655220925036013882963886357502370306320246422366589382302179400231064471182891623352537879571912189114357264873390793054047991426682869028012671517041981519247199955264894929214685271160543728657051278682759696522328789068380546194323479978457376425120592025844811444187285555575377088124901877360288547447302757053353241258545948611778007349713816678499812204207184383040343868531654145077389544517771453858719090954351609258557683190042668064919275802478963292451085091507137796300097373225773807358351482897073496261358575405948101782240743170144986806350208549348856359909934344677811245282964229533474009669924137334291489485854685885042463465240213685753652920516158976028346923036147071838874522851790162184185355047627915301493713490837218984271380833755128989903713804926581866174840103159938829713767272607693401550054053933708103346757791182800680982293861693741929002853427134051129398663995633465820417020730943845559077605377059240417641312417694083375162780513512672167856664282589090713863619670617573124710991943267898306058484908247246221003506266698246919583926231912137117774070838577873537519213844207404138444549584995279198704462355619097949295644616282365886660536594755252194735721624409765878312929443152752505671503729725153347962617186895660710666140045970802772493132071141511545800675692141867304009498574756473050487956909293588396946678854112791041742041057065567494503412383353157651746500827751736764447041135184782771917834337021107561294806335268191769065771764971927920804470310437318658800138058625160547145455242504300607978138290293275361737200726917761675705206213149026858993084527015973649378018233410838076095022235207909167535975189335813038911811173770979685680322485950833798423125720853291490979042304608637185020181973126257875625239116024590408559181080026443034263449869310899766601277363915621552606979022391018158698933537412813695528643193820565579319937364818595101022954584190562526885230343292873975397927388024264431483770232537489147440522212541599629029431267552103865085621207570453949672588293326603482843513545020521936620424119997123423943529094189183665854304877058726165022633100534935921321419587269125068841460207681136586479584700138373722020466849030362463774859217691726952284414280872183827255158377325088184331315095312299534615035051317012305997901922053323091983311183589221769041984695859011336979786030999188243351918347643712723424167023708545820426753706622402659610351792473818723215166090659582775174265730646900863639413798889172003265853014470526315455516323604204052560546256503371297087266298732802391378060148623835589200695164124314282610723349491414803067275498836272731183490204796150449136864228192063302219169634231803418764498595978169765618764151315677428432922525091948742369176219030282465463324995021750160745386740699696478118472911093551446448393785769963569781851728459557463636790536971685597796222492174265884446823587278197437533583082280690875534564876291455059103508538974763275747338794993340174867831753800908615899917895444532004627887248101184878301057477921803169341989675817792137230691485793877794096339187471144665159188235389582956911946863731328166492193510547119748821996218917126629848828467992037407597598757859715719604128937856884959736652510331347486213031360571087879389416229708775382868457352580720317403764472286612311012669884520862632913833327900170086595929510841381626433925893323642648494026129338119671379901251998993790196397902054437516522905221078402315861664064491227307009401779447431975454434220865951764403455457369290616621880579713642950795529620449461707013383558204537018494992583165193678930466978354909401511757677981394319113437610055732113594102791781990823115556436980377594043769098053129258128216191064279991372687433925578887208315223836853923602716886466555033041331832802841054705064965933416183303977150769561121644233436932861113772460412603519039036877407028561363793411619810148696366223546417719482228625869851401307638008604334144959599309419759332060910766412885652275900125564530253545842209020454443744760197856932759878307050287159155353599814260990353175256117224372828110426064711305283153417100470770354746751875456648218402176727680543384295616842870061148757731622120226617388249052675776328946262659863676768351468770845840516275013975918194330202244089808935410848143638653382864434083345878149574721200794304667173885162658935221546760631411408609035458870965517831113863083556354594996568999734408106907089723559346418028003041269879159675432830349881343413704272318737932025146113728179739968372224152574275428765386813723782414101187028106789240673904869139624988231620455099553252658601247178109724546618831832373061100705035073387172901870642492591171057213339172256916790685379398313113249958959788705940361106975599367399128147375344932195142023779450545760770568350158657971972702276303505792168079316560339055927013232578145045381249190401569099631111702700646137215903971609929905829186432639767000094538543726779468352417647279472653525632120585464196559445458332296903156884922232735266377527686227055588028922840820556788084515773241599463408338513329186633895209098261135206603197739749274849950643533208433081644993344248745992947429132829228289152069767800220557529380838571464173687843786589795148291651970332458755007745333888308315618008153605082775535415788142364988641542655679236767464576603944889526712643728998693547592447100185362734987574833806043686001780101240496770105495858667903821119023152640402025741067624632788496673012288191782080835320927164714469850026681955487558189181806560507035997882797775509811528139739053218993984751848720801405463085660093688465494704784203445254960572617354510699202699625275619337009300817063292034507124553052953158079436067889003763958535943385217916614795305638953101906580487254306361207759409172640903118436150374663220054068791039774954543736383551871850896207626449961472161635517665896138139625884536568083161059567651209404476632774922755017694917008667887846356678183372968145663056479413329603506722661551061801264066893794819546640536710596233792126334260999306853913760017626403718789049211373129324335095168668694099463589314378956471492165483793538145063421387031440669772731631705830224465833915739941933905378611211019555581805042759633440232066781997998768655842699471510350191814137815157698232733920038343917622684023275330397716442260254211818228109107909015377874791548379305503318407818514997364581668435778430103381161288563761997523623309074864318968697265524507598691816549858205401052064246884697276111129055650178743464549901687985162285524312555598194945478420494001218005590879520221808722175156956062952252591768299468459579419611029087555871941858164003646907617820293004959955995742673450489472246699447812368237875298646760505152100884244020282271954717069214575144828290275033229201283762347251568663084909397209037788605689162308304903448779335308045811350283373384753053950877275226815005489711660576561796630820227495600277872180413107407700030828721602087829616843986958632296976750029742808532096403849553861590439085884536762215094608627966503660467811983980730972121725032074252479745223076397427508209691082943289522872304653586109587153547596855330113179822702521214597689885519846675565885097747301800406784375521338514814769517517733407355461618743159709147384190583108291073484911573026056699076305897301007660168810211573980116930773800281496748301571522092263646942869125716133194585299840434057314494705173997092229235469640838187673057682696151563853066583249131331356530332131886124137189250328008381400816448651226131158043311315541060766712937265295674122558387799932491519737705903045814867054019159500338167986214708438912581356174397352003274634462420247218593104642413464176368789527512172878992001574275408202937125469751855970821058594833532829654294882856864526202939184542125214469665298356983640889380567053980211650019090077545124863097902209159776035213077834217900974982088909383545996741304665603807106834171367872203936833284433310024216056548404368460707519270670398035077011700476956883435753934941058696134604588912930150240315570624413788285370747737986510093929658561816374065954829146793967367009681764673438295096951775647152046821142861641409401168142285734978957225762868211792678711002500174225185172106211381489683940006128435068796177515372257978047890270508982635587013086245806934475597192674604885262046448624235953725085245585676387819799617818351030355983594351221677046848021203758967856380327707237283490974246371699299803042016641082803104575389803082943366210453780046910551443676537371088561557120812439691762149448280954242631694580822969274575300994021049055659879218477857546607196264795931644069451486378326922954735547098670215475654686357624269106539636384548257227892729947117791878386425179882845433542653056640366511651177281210308598919435403686793115773077476177005866573685814632609899040690221757021263002815446711886424026982468933595166242353934049935453623732957635637050623570949494116649047929655120615239415060238666084574601748547150014294116946556287425051860792289067804795500515630885365572987946201287948043471873545888994249708383945779354355495210127855934534137115952366278880093011385383182195329403251687029202137149800051969144543216418278928271613817973594674548694653173672612808455933924433430265015202249801922658203595718973439746414173171943871457301437421396968214673769545555091913223636151330434656639226673503743077249329187025592485723070250460606485071020241726290016051553228593747906665605878870704837586531599679385987850077905223530681319471346883957538975289767604121248278752009350432019288300684451842024308560390007435066266637422572271310000730125868178642076324913539183237825788921433904621322064148453978010156664703944900180264788882320611076291304680913577055264296639877653437227479976218591314736042530353997446023566824951219389267290821905436492911436352821335855834882783401134650466832960865510320207371324786036092490300493963717151301077685931652920479107270274595487487684813719444701802366555711777826905886866535478600610870412317272911303285835826281541937974753488874498902017932860044486700140309793104672945970686491809851124067843601767488669264842196665783444627845162581279579853280223871671943075254063760288722263566271790016137634998899679436263716350777154482495730184502436310431721372663850018915938649628331273289167027120350831055909839285545084041818796724760720072090776828670943857892095536944829897871690221192172066635205927183363726879965121489021000524092049347685402833397975108724261009568835574505796262511854747650235914760709237721400735356382920029683611581465243814705609290963963475026604817057267442116626619117851238805140641992647450163541670995819707284405972869512307246171053152408531496031386458989981158515432139398141966029558611092118895320495744328996413221138864419346255362010906999189958721882785030467811612676148567331834768792260653984900949865732858093520449524223358501300154281076774035549302307584369322477697613638750732787131029325452891992389832738416229541938314911257678354659374907880893437337655149529897404899127026922876095398301848427814689667462264645054827177489351265443056274939698913257007412791305577793665689954155973326408701796818973948531448495131098967618776206027032645273801460628667011419016116071892145196756261689147181377844653965632753381493507506698017035006574041679027993537509561809727315036883316899823326111068054112971255616516294787182538334482450398415441885474605177353685425234439459286779525329061756850240878761045844610621900367392740691429457797476459179768042012603388839511673853571768122045207242415261879552387319858696460727388274131973828680937915127114428786210746829246110710293397194521470339949515527968817406760387892822635972339034219314260335306088504290216684990575656100158756856264943972113421914295627607864245914101476397695247426939427259968161969595539515818545004821922705971323631266155750430106824001431319570065053125280465193343952643151997943224314424566571622553770015381551895346660641027026107839836661909985786060022561319163846332248749343414065943988129044966319983274544738368976446343124154104755300051929334336389608823373571357406356557478461791607202306531387336964976480628908291216052981026725631173597401532295090581581650914618308525012776865502174684870050837926737769315283282660239924199831057537965502924514892067506115171199630144858999186119989766997390072533140136901269485642229338289765829508800474014481090363439410093363033689788685255583675714378126677464148792083325349792582301028279067592057196007620249979357241269747413775079926290196525751347619872329353970134188578637815437341311056246324133350993252920925989254778457172971436018468871150524699465344042942178779904311315595580771549106182614402283649857637108282115173256523788275360778674116986861597445346314929643876973266064216595522497818925891688260728224914688596128630174535730120605323463098182255259354349789370842068548475990807294927563811393615832823832396038160082210411946497827948618731561820454388824103956872671029933901429356913117462521383680481344012066279292074355971836902148771237650708807439299861038549826842180041898302897600264154440407263701365440608720778176775382807064721311754020982381960848693806059790558234013132654809371643413059864156814758301998240275027320125888278890247566701520470566942108060318646687514940112637280448586139324006022668056787073894371310904427003413162477151636930796676883435553723089668664518359779808155220490398959166710681580340525009580572575940624802009689054083497207940324192639329671772372183440122596744738491334693546236065601151331280760497352972806807582621131730106333326102265157353207711875002379070736381953385076202624295889394913123731106496071012640818040429536884962162084351659543166197942700138803108752164999947934901059828475218616034756244762061927585548008247147898301654986277809313413109750476924049138755307665926237437513031916104571413507497459252726166788473682275545311788757309548387400062064843115772010266176122003260781467658324682496177228788337480014947364358789524804553619243924187180380114061971319827385418451463953693723634979659721001398054786807968780728356842180419009168582020607906637642563068554587216627169764144422602997218899306424959111238265265682604822150597693314531431789148781209381175991310433075118157022775097009218090243039291763397797818741273589341212899695593905149637921700539647252684274153554547095472838264499728527456199635756944264212880439220297119146636871441197389742076377213298723392529410474612472624022052882193487978590736255419887929733176342505821463378787774286489232763813207383396945736110307861711235241387000474987245861889413096380424476511708722041409928134419649194437526057747636482628539820283153204881305684535848663308788707903341469504789494141404823992617387954596343124277283249167503543336809189320444103268131186802674372818257643151878711568504387222401591754162902565012424380998145327836152784996382663791518228375392404745737264221082223333449937699819798110368848308397809878559515061887116259041868495780156735863390453553165607694644385230920222686341115175763325648250965155382288867151573774421192732525932755383617820380665464713604795618769617792478993868314517073751171357519703511766543338757394994165595147066282192608068489266546867132131984746091966865061565306518258023221122873860643336283215228704504147974032958939592154542893777826774204214033155867229909652039289199243618338182655912345366198085594180159611870558539413286695118893769733565345242308677799473558613496525100365252322120655717794383421269955789381538092457403883101793741288340867905392920078516602766883393036082879967163155868583393785011109528319843127060848209627381182447319474358750691503201557288952549669586188111137976483562605346029841513959800033157303860360834929441314026289791414222823003514922000458268353389608408106348555795486205246330756353782834099527167171739780170080658962723758109751873532862496888827513296035789726355281443396868645594037313593595732898902896577701788412564572628462341422074810592676826559836604511328992633860571798491038677226683363876895037868653746476091242419220580239656543390172229190261073043778761838373327764675467819050011707466832427594492105809999327226570836770505986688040506984345855679118370536963940195874917568750628201081736971842395602167072992529745355238970576190380098733128625538587013386692462462237768179152265646445659738493891509862386137507754564111169012938590915320396922570233499291008526285402285751073843208327082392894559395548755278948411352774322141474834046571951898063723382313819808433305563957966765809440393598558286977646231428803531125436216256468674631798550974715249935297689527636303024270005230190917109543064884002780372559047526501897711259004708529939724622521090022951486129085717410976357482575913852663133571948409564200568754901918191534788498145044720974814950014247156212409329730868332505694837643768550648483387809785835785079589459339323235674214209306880581539399869252374900309558979619842062687689548301533533555196750479120392889536875022768352465921853210435204272266052524565726838880906681324099222308302855085082635844752288580338938387346680992620936353545245278738809957083938765521119068767803211150093591695403067325551518202934475507918693823175598721417036299234881681856296313213978934414916535121815981415895613182351265102803682678102128383325286011045739310764146143290198181542516388377756345759422041085184634450756992074556165857762730040935008604966190542871911769728782835009973542249272763795035388530403857608897355173361985863696104900237520893342499521118358860157574316936536516565289724302781516141397753148444120963461516466336956025210021569839292736431544552101832896216615211426492440572845134888530334584879807676119605275944610660734636679960321799343845327765369802294770635681281432611396553609167902157454327461505052590702246667377755917907670192149069297827496828323258732198839460531346499365885255547513151418038961967738397445178778965191858573523809894099032326556032306691808736020056573453620839020096986623593016837845773128826928008700466947294995761721212972922932919505999357482381301584501293410235134675058232087478662149716988829781304611500540385964036832571262904287967706731327761220619596187938639733614391193010457756382942971494309717860373648298265683977489428765669005293849484391337858247145224571774758643891986781001360051282245505163591909583143472683330395000564151493715824568220381969202599668829943595151104771318927950243772412165399693924691957416871522918527880371613648447535132520136469498806217791648989404693686954267158844175235684073933849849787345034547493587570686438996841287414673499079365993208021036529529168133538688582848366605163066264812122382438250886322787821537645839970609625876499619587671573222232834910964667513274011880314293455428624868862918535396748579915975264608400463348177258382800571704320096727464155917607837667879467035381109190205667946503881539071233058384552264598053485527304073461772325189600563529452873136832611946105462774812960856665280570902390660084129349099196170927810343385684644427520243024250764924521341239665788217659191887083380418277413923862868494924214188979327300946236527276478510826128739296032776772640763801597369682089411167486658293748188245192141395439884667279932031669564727918677303896785148721276653078370318641824343443376937029192872775804912144937987678211549083712699096825223850908653273497868672626498594501102849592872560731622205591891331342058376722350567532524387110327012917267704456020881189511908370041327992708350162131800913746906724120447164994157922487665098995150312846930003713707461313217106927678227420507617089471189164940088135182463466977089275162340626168280444696740624017784434505202999207685043022762935139957826147801631949051871728919290128135649802719238464015719072184444739651433381801857510935674555233437293545333895351139836981158322533882510546380315682380050588817303966977845199680002919876049439913374259613581673647721820732486096074953047709972519951828491598868884272630356872200548433497188627020030363711431649325843691667749040964849113526668229393725868618234572329983460768464695646972385501070813670895690511543044165389428505282949424681122585812637809898277403433538105327737020264015252804132479145819439336834259554096292195960192967222280045935328621792339294204744145864541937334012279719910451649446442249523786229528457233984095512702877675808326976011243914785802528012140705671399281950130576522168632610651645774376516901879803267301388689127814230757978408623225607137305907802460845874513798190064764355153427325932949054766075667253728609174871585151912712076912622190503913597254218422230934169084078757320802506665103967239073884640683312202523820144364084221544869709521272302171297849835522422004538564876675560758330930810281577220546419971513234034212170157956730724112458545782328119915500991546486858184396956470116656837729986829960820103551741916238815971802791210352700055797385324242209020150775512317390300792999524899855134034486983846623145369780108643021911127869952572552319465435141698644126123381516792650036791754130777260941164031251117063465129691708457130406168543600202914001701276664773791663354435123316595627038655323596364523463208194518023267008218512842139666669122203730027010264013326448623397156060738081213491080406763456228494373056197752847661772578393543380233522072571228506760214406707503251697846138700900510146789741083985537409935901015771736218058067147647045676943888328613046893974791590512844040948433470681115440732526915569755987170152501945732512366844934478490423309355354229911625360778927443802070962197490273074031865592706545051125858581254873197845878497828470184826478437057168932050914610612070853775795369823395127749050582569215588309095651373144843873396844612239661069428854091823811270556518702634461885890673348778176625542774435517268793588827742252850555475631571263138838114061516733919025838834512383495999845407745304650480980166553908264085417746110266995932899858070692811046874460959977421820178403501475228768741146101988189777429517808879439821724405786810320025365239168125783940294530454154044576681816022472806324891492771365729172615108696453656853095325049541422214743299703651438942434794772926062346067590384520016639655566569013332757544281631755699132786251519344602273633625237749543419259321871544669426049580472433863715908903417278236862208220729205591884066417350325472585677832719539300398940029261284209816528465845035054923844419452077823012339231949101762460532289508902625422047717680005935633252896047823429918537799209327085926194023943557644703485980024086180378440700360265261801405326241268066955794217090212166708853966287344619985441607051000022430316720892641051669059028141614658346833829184422137626150111036080934271648662861121109822988450000567621092799883967050058775912597729061721404184805235603381800093324430687066204243535692769676230898310206873755760631486387959311403777349229928458013265915547670971204102899082718909727245144292053466347835182763325831214361666115468457000857145209031002488741476265483635866058435393804612342727095875636036049283223934994723622368237993776650798605770369862203192369870851892226090159320202607802069621133240730999576041193164958797934554919749310729350685522947558100048039383751922018512054164646456295833383210255702723685097980895032419076862170442402573144848702277788756521905293104906734729855038855919531909540444277876833380714547831471282082865065437390007457844779750221510723774184328525333177680633082174404803690968883814184872416329985378212077736237276009006704187867660896780145852102401913319594856957978239742559273123782438818541073998418414706061273834697391247307395702937485772007803158054214847723954909640465469665848637049335954853848761367805910157201807769452477991136025809711021515744057043152423132408321087652045479402753957903426478426332300916002256189440242310231729082205406244374336756503466355193740136153619720213260263053650964232747191069504393014589453778574604197091539899519203635380800272428699586104338009385909589711564457360407552682756735837980552338054532979005745967967613371141259087667606534417444188682845545988741954732698521890307263596181415374909328129058447754940597655101132552218800735262600864052365689945618178434166564665097067592685627145242396397942255970545775169663333933371572568753267818910504869390778433322014628015225742702188489039270181046206375561448770026436574624432200666414513777403978220324492304103199219115174555667923783805035214051094425926145888589936752525512662804383628003951410101791509382463310354275897950472709932432473683366039985607320699563141870715526701931624873249479477824435448936526780387902159534367640218313956427476394706647367482841607493139440134799676750546550568792190869531697733273227945927806690207075889151889315434842432918444325365555453257279071071162708903051888637520665270991565249673386635133724617761905201276915820409095429496672645704767503435087755422411341690549866247268588333754019017324522066513190207422704898765724589350103596135637989079636679090126407184004682712970890949643123055318754106081028360511292270084713500921061676890547302294392320982965740739769454050863356768268485315537206978911980791756068803961889220579123786668371799780146965533079158614763673958708138749642151802908968749733813152291973957963020586597981501268672209095036679740721411121910642921625267950758489291971074934681107704040385548196069610191738542100055978033505592288716865226480087278581521478138210135933048173206895689134974367107228891607419697374776387213768498870977216649835539256995943427961371026400069966976933413663772407406927830357551827594307037226535152915026617672204614624565730913393591493175977444899769867886539186451333667725302522274832950546015158506741833835833809101604369968599062416934408167791846007826617320462093086732831477486904464229304847602502747443096382844191746284756108548385766479617764731164432705498916677093748073169876779761119656724957819546291444070353026561791320352302723870282979623906027630643816687640376849422518712377854354640129129045811553965459869564456717493452787317611920927074399599435819049393744228547580034277776767580147417545349582656004499694379401252974492698191630295168950490216525078991226660849182077363581149923217891121985380295751319749168314194325674436041667174326755285796023602955991859937016093366320649161181225231632805162445725534883732212703618116518858490278530625274490552574678873926122968620293611018534816526897076572592459927080584729780738620282349639224077424768453349724783665173432500813750738902199561863427662715492840498200092687078773957988407134670349590570211372287207430759998454719071101344860441584212404942423464281171508834696649630338438116190807686217858116291729702789091530251018550790891575228411812991354535033081062010786614090612087133611384276824515620015839871744252104532783561751675922913960555643547887691870742595338518433219585865655651480062838983199555936099451074976142256525915530298968754099911810634549493868463475252843400533058823271028277481212842411159981070138083645868829864183415200417510737818103174807020463224812609719916623680743741243614559091403954624330304225508756299797475099824518859023417241637238332632055537002619351359097713988542282081813377164494292200062186490090153390316740645479638290623988169431988201436438399598785747055488856209698945080072703355481550699020283973353583931817109990929388679856110771209110448706013438974131347867785752092698957756063173841122036021246582213625774017200604969738174223591493085645349155609258088593289307449030847003234407651919907789077494651837606278667149863152617030276483370581791124139286688084295849892888670468731011039758968139910460784088588357294208032021470717889529096624336587938882275674979266948644618638824646672612265015422936341326616458126976839036161323655226862520630686200169122388416847409288814088929774941180841864196861941178345085605954625667153936278600863722943698460744466960985931010075120710495108340445224336264553532088857726946889239571872754176778646138668846309803673611094202018465271902550264705531680693459097023482758120875387247209650393728475016383077877192295409250150478158523276674486806842359311373301566713376997629536815520484982647757684075989702106729921530932917745538382364053791052018001694953926966786242076027881002922428132564722124992467655749667804658389259127644422415044232461913335841121789447115962343091140794041514045098367325422769367930893228359986422359543907871686835922082631923429140709883800598852186779517863890580936659836315666907937147168007255988744975114368202891997176936939177799865565796738361209183971245102420642328602852607768413732775322454640566097194462851643737829878797739235759520168928382431586654705919910189055423080348214337726467342029874721261676326865334084610736792648716741888860699272011701389248903675341292242858421945181561654886847220752686529629722119671675072272745261807693388274338148671036959967486085980298994349354376243186652081825674011319948146969433020753548148098532514965878990501035532278796318866487362532180123144571191128119275214192760457488638720577014699128415353222152440963475108071826693139009016014776568599958835509983381706956515033726383138125041131950997520218140870229901243228442799310104543595057340435706581767128878746768077708359230192816670343560467805333696426516319951288120026918883843589048740386940780510194490419570738436724542557984689863561016394475407516692860024452293747518989014046421707372453861412022477513039169119931259310478457528919352117208073864889105265191048454924907069421048350678134801859788773905576374802957651126092299075841658601421753119767842773665533079546953027422754433593222827183641538813681305035319932712702699768264662231587068677253855187629936447188530767200360218697439630068105710583281777793404298305065616402906921479633125811830284887202966937663963718692676227914603997258163760207556182722159930624308067396811231584837914199617477572943388072692602025050179173446517612466237646080103234946011619090283085439685712623602072402031803883111093586474309574210922610782947574890106019292527525566461931699238744371678186431360648745518629729080906184057602433196285725542022190317051153063418613198868510075612241657467288109602788100561717166432301474795393699184498309576154550132050923608792593399584872691273780882167544642001687113524804840459310510129891218753525069593821078009709442057402740214485837969960865287472029121850665126336210521755484227249998890280794345011173511899220682729681960324171470350838335097985825877267876072090926878761352071101349411207213314778286803721823005796846654470068026210040024052695492724677245227028774876544813638893817965595690762320829440958845124909939852624662219779374243423274487489750781700155702892598990502513443116330097730269304740739844284786849363273404382551948247403795852692476911105502327161492090860196531674371892771632146090638861958642416562439956000586182651616880079607062209272943914834509998676237145416494507174204563552610860547260000421367519271548444280177248181891121406491232434006328181983514455427748435200583264544181788096907002078201508260616578553445413103448660589192117916294478517410016288415946684370383425823392488494669732441604179143438696971537960140121630460062389843826808153085694406661398757007049812435938023796843884889337402455588928450991855004491135541512661737831635273457231842833773086823720728368245277663261592934758117847216722377467575678192298464528205559361180522336019197319242545169123310427812286086036032812798329527409074209103167558472712736729762969856747340832451453301503565071287577940743336063694035926694590177391938906506550346335116518178130313960682654068233896060118689653670202035553867947268344830894445118108311949450742855757663990234560487865522285515919280781485364940203113690287390030377809300607894529495512975437603370179188605733999117937588904424550390960420368909897513140303964536703439932592736139761592988961075575102188793284853536095400183128735873906366682632900770286519499031266308346215814014745168467026695159532970173038261307857220369865543524851366986854648891364594994221605094767717087115370873074653622628682901503968496127192759543371883614747492040524647612754503940222692763470020759418194691707608456280488269382623361697738629555054896166592146468391400901414327019945658912852622150807066938780804659408780241886622737860838962467257569517176831054385140757269312348681508567555431251802195611328259996766883632134277264943200811104731783262138840177734799665637379442084173422142862128811521361248132896307490922281746396193256460650285988513881010767257580833270048157996057586534082548902408017096278248509083391726282351794754736378565381176814409816525893611953906928604642380443157794074192344139562711207504901854512678418754059731367652898223965461845399910059583388333065719887326472968247534051857846644797470898010428546823454356551849326759645498304629061319967233491063551869333383928571560778088525121063614501615991498806105111549600490136060246642011833969600966326380966714070519422455197589843598042586795365592874061831165268964507942859433342204378172555943976029964807260824972706833208106014553383329839833898768393060673022910178329046012221625488943184935522222193219865437452436658890847141866691925618663743847383064491838291036717339863792989895534274320332630076595523598393971481013219820262340928128850089009567185870995846251297331642837130582675638732746284033114358181599052499406114938378702653034092122577055766475247918108980734364705487726864636202882979940910105983327133719993756297524566427637003804406162531029939931101660843545547091966210361431732991157927149245225519124119986756414749873175913277644511211005749493185977272481829519757811964978035188478063822074265139038949046643075072102065232666898171817792248401322603542186746176084803375048837317319484761577805044542227819075877951515209683597326409167626704656816880963455316412423134172030482350528408663364610460962034367731302275285594313062645842358501854984903402183065622140701599608155185852461935196646386746570951837258404960764941364059114754455989642768219957863834794261681672335700612152761198095482268892290889639324654350218738485406335913667932092563873866382360859247624850413446594247555177076783382823181711736705000591590199317670492049076627961707748721961734288315280043926816373868029489272830792380714369966256251152991772351969514999548743920645632658798105352698090576447447204466412901448646402104842510827011262447501081984566092700089959242679618237097434403326583478511473234797182175008352201557141252366296045251011616053109905777347670990534482066972772951607307944770572481713859759421205822213030758019799461707396718681664121668962232519213573745937253519280564929372746051814168288681083915899524058496796072864061301364814958493447175656748488173171692062426616261190849457201757993438298117781846428500593033691537426284126491789163633376871357950456536348790262583623132261235992260731738184892493078552197581818153954490744740174187218552032174205635046365652218184902782281339184941738291295057768743589378405476109447089266132429355972554817555504445451358584559025809881620928196034361739678212893524881007652157036644969242014469842702515123827365082876164743152209966255899166335979469904493532180858674155166225074911485507778039635979855618286776407981124233828052166605780222637890853578493483424457700817733487174471813224590651647434461605943989007375773238429119169741636996862070639883266909675581879899273430657198449500349302677173367200169215222287979624818776069408152864082526748159868592273035557672051282933298569942518941656845586962970067703051269106782200180723929952561535064284387495633118767287193390358324110542464668704382808446713034493412464737758208857216072774833465295222228290926077229959722618916297243994376562777332580666071754750827180486944863626697160742636845539760838369919092376663144369335651079132407058677858030028527240062205639107774109427904787978638175385450325897479470848989704956702171993905593305295345684215760251651011411727599224189456977709772437935420728758874444660251829155591482666970575242418259059550058934995853713578798857814486647613425389432023125741485684798325542277675517791748181234626768347695127857836664520810800621628172954154029110896328029320971046725960912440265831164224869108610694939748279984212942539512470900500082784339656834237110951358196872934452257329232866420370902730689501004333085034340051194008786805975530301353508955858900064752103339872771606027521337776532512606099153631739592191915920473492562188240102519185502754649665866829151177851764740350287158243236478786338637859197519937939921288777534740053146547866306651939381881602224314569109353724270982176570185701898148363210204878641997488438731584499735282230132644242858733312008899170552881595849600062756933356537577475292399801977640677042394656393147945001590399036621112106228336766100213134175043318585336791688053718552432662750846170097337676640159140585750072183315228775072992357497131596160031725832431329099276835673569097396440803862923887908487911217735982645023137184242110482523467335842464380251182319422350726006714205463704255573830708681850484017514369469403264543720158096168554230481146258700336488581846887687669459999158519680737226175002418316800336234149445859959967487843145223969617340920482639135977379245696393673075652196930558632303373590374673254312529299004947396711243249013069470461394722866905410019350915462427854522644267904681315223931056957291832924400811023207387533324937692095366059179313174043617444799123178009375756461307818377323925242277591860479297470896234042877605759385796913406224787741404367533244656400253592507207675590460153386591089602455061619942737559745356486739977101637703799180027632276662533290710878935834261296210510743295050256455148198684944128202414872357607578569855941643069333599977566880770180711024235644256933101749560084146340841128650802814556710525820417100171584356160181595847941263337558793504598402759284295213247944497807407304286182538892064668004222772454351413520828356481703834493070617910546050188948263489900428517354298210353941301878193528079452973292697307128857360596780176937233611824499485001577937641173719336757537967451703149426451265678318440308579100498379225841717358307550475106257622728116850941635901596033947091065269820695423491331604511288214553777196011819392321251617083060401796659636792225908873787166252061614636908364372973259440076709643499150527687169360675627090513863910611996097747369291910594440906739955743487807784619144362073495740229524192773948376512731854980697678272244423479721869582770840488131678578895640914535663671148841765933348287581736757069571457731000788695046563163761085215053532729752384027760089636070456521852885696311033845006974051299419490763121975763339083720436847515972488534273027750365500645305432654921164044892626053996071083286137314495478034053639084086676977265489329431725414567973537996853057317027091462222492251204829627055479854902391128802604668666880448497898766583512890759443909525655319276725739300937490532597249873931625762304646864309990413752255945066835405174108917592604955407246078864878359313777798947478446770705358381956340051274398951926449885540811401995238047754003182434403470510556257939742666640008812721580140653476243360555748325719296276364204224943353569515608558914991252946244989886564854143959888454483040435556201240878755963124253212437052088232464153133487646227867836226185737717102985796931546016898905163951576426443644912161993137887796806012211562891089549419214720724354336827560065917832114514290102983513227692616259478345565518789787652040066644074203482479568170513151080822238556982405773438424783243723907235281377854872844777105238372791158052092311147488830210110154738728613066217236773119317466759984028744857580867282827167764442787946768294869922145164479484983650087833202542144585577123649544225117125265451522020789807873044565052084101340788099000754521886680655346361702825800481129714184565818719107742102635895900249609844665907959142509287008340377338682961247393247733387179372901925403519568461030868042528223248299971728017875427611311994202891805385609899697386871708467910219398687499428723735095955558118550020415689694620790052218292941199963914134111489737075675419393505217039381907895410877553450551782833122748060483137788207999483566285183694048615082894244903379833376604073855521444532784191462977855027909911114667258468958339495726709278603032104635125040409992873054308146041020293889225475631074603758952650629238477796961573259261115594100123921802130320632424892416674032803651248837540128221857218531924949467962839999740523778687758677324136848188301069739217631590607767941880973133230458197661610136166455813591341007671714841395970327376807265256683810536170985620364050039947657024561401351116667267325414305183037005843772793962594478100862809205053282566356891884229317310389691692116928482272081298206173913927642615779082395816530180803803335351223132845655799178144213324663833892563416380831697130513347888323460334759237176718666820741490460557169715576541460041656809389300904473737910556521674199291356272073043412733490935238101857146926346728071257077447954628893834205834599473292399475470482475078506078645443644201495582211264011924133062269779777777958651134254111995317157547566959913246529586740667119793392759339848163557338437383096047132069278523379465387623397233784292488346730834006405650857465066299389869913554481241547786181066552352473409602376290837479698497874878624568299022102571936200759723542199311395004841281295300373409723954863845165475049188140718861071638959457777568029391908926848762337706127421142286132069809956300284440660963960373106915192377777245224380091119200875056908678212525605874004650430793506752593798114651166857881983233161869358604095851866653205587706396828589920069365055473580013347389128655181347424795148022553094868703796107989550796338117538010510915483646655512517634562648585958761580310928556615461401503394188659474388800722417225277389203142043150656961711157612721077171370560703104546488053824044031237829526044090149143988476004478128186024237486937924041090032061198545753921844205731862033613396400656392752386123687923093437913227025671547675422411809810521928573916913165984093415777906320637042693028014530469120375055570774831153599359112744597820472245998037137627096335301715444419410491261769020775411148555389674353416438074192950735074609176123824223979628961452663408868129796832730210784721142999991521145659477979119939639458647374012329471851879761184770674520596636667721879936226097822384548716299799650395050921110790431214087260214461986197865005226541174891763328832349976929033641333782532640679742925503479682012245350949281256220986656183553112195255788303221537762649980516197008652908466889104440316704025706623908481648733970313517548235795123796725600064862407621328755258936116310582082358057518869182170429560950751672798970587333658415338925461985824419675485813736390502909669198855912954805790720244532233786281227388273656738169439544079880132001000964098584851851701076549300336493192598349671860736336958506859612655621227512331022595921786624042244824594448167056190938466038885739389184083402031710252362253080188709390857083416684671977731121626042576601169579865969193198389257358469348107614847790389435482357993622698265587490189076344703310831457031997505985482318034606315672863829994396740568176155622702173521587017146326421797677658587731178733247374808437464154444483422182524818784524356557640605457044902502176980268376513498733814276264771576570426475564632329403818144279746086847059442301937235272836610872952354272721287519400523634024768668030167949882981185703644129678358979118483183312176524549195961210829620221080456223386584205101712222790085465999648625487978057822699002686903977988694301091127065016834659338853845036641219214197351525942174421067831001380295245478829906495509882438632310384122372294892165011990021448265465417738063774341271326575464206388235752920110899347021334625298040358119139216027681701762782079104165325611369341250191555208726721409793780041855891424985674002692118422915735038715585419938430848639840735444284556168000743038919239932888837751016296435443826110502710879803941719648040992470438886840126491910540974496651412898922074974926224080641776446374554681949489701061801160433660962410991184113286506844416752708605846330570953922178456785981893162404405447916677197227681097695553655795033666107143211724181795258743174440391114067142757793723899176283824927083608611115582504917336339611967872186045287831963062321559544849269346286332058436856152390991976476745516237749549783559441121905766014254313507677766210759143377171673746488368048742681127111455281451138364888845338677683901197481701852611608228499439587072916788763210384995227730483944387891827547433341477017522458249015168980117561294140007761358837063234535965431047508017447325974067077277140715341566387500266886820489855788315180054076442019825674584261223078187858961404999035561875361857707943974249166358359833902285302816255345124278974021397049564541854398377874914631791625022046137966936095689715293432747284257713408302679401925446761359708349779072925252196419773139040620235838890624248821094740550570114313561350533701053827045532573735529892671985508142583773660575659732824506013379753198544300263208400874077153964645953810143364899166193926137779215027576380315891306498410716165035884773088066536979140630231208176315679132473223631542864259527391187141939685637415464118233006952404874323844260607026462122469885808237175272880370072932599663524573833414650515985606022180970990454392292316144154842796483397880698258567616764432543560604724529627742616040877222655830565236567021518730526199040438462483427006669972154916619755079310678192036012133793382339646505916190140643305168046597547314490993036395883503510574168972585040228497333399328498199946558483114496389619446740780367651360187996692645380747755662017908355963001687291549555991916304599054617947042833746820720799526033231615480761771630685932061022259704509257930085496383210451739367194930093822232534576892290350470932228793820905003247773349560856869725825735867617988495956972485160372684189575618176586320880525276950223867128355771024801899173705368753556242675295200559633910062943949541026256819069484834203139750917750186361146623684135844891544164600238670547454052609160060237296859668165713116088229351771003130822226485204917838808136432829887647064371506325368872640425522532273545096298271464491521147431966704104125342963132148421218312505610510775200781749664428391296036716445919951545460432186527457204790451600345428261502757912793548908282270761116016697223644587531527951249371921816043351140379020389074949535920727831490761266502570970873863307233237143948960098314198149947415070623652669890719788085397355589289593356855087853553936749916979694451477959345481300609279900771029850247481252883872300064259671027896078258658971725819178912888422684789368549594837742621922384331631157604347449385669241276214409460164671867216492531951504656511564114221825329093241292477222376049354559689654020502424557702117641823088901969922909569178530393177030138449932987342701941779607399957504191833642127107548528975668538484192629521704405247033753143732549124707077548982225466253894360453713724709762983604083819105621038838818299727659607007050641737151920003888463761797062340681108146743766782223937498453907036137893117665545547429069975711403952044007640664933582473841234764746646025688422385807335985414195994033997244555934824997179147921027652385694463387478210823189990696317416325705908088783899635085201969667900905739501400852433546873760996140832840064899076823597605219527300514847978374032382488761690688348451587730567082015870046242821147460568691777301433810552477123682447999835529571399398595798555925754179209832656294819060490245839990211861490037158934716100981904815901079279295029894294725030432499121202114466193450626377697651214063019131333861841088289293272544738121491311907418729405831695472509233052046361778596645829462596752948572737176840324858011343920449148255997901099470345328802198315779830242287084709314327216128000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
30000! 2759537246219384599379942166425462783980762044529330985529635036800075868850360565832972977651204254341650306308369180105720079889211173647623998433383137184967254285857311222411266513704623208566663513843971255845392867767001593521229857671767859088377853025833179203708263155369841605042154936042598909075856430852044551518050502194448043519497955816834830283123674559621734939901731624301201076127184975016435078582758140749216748647309179050590022964374055780248416842708846029319703126114712880745936613672988328046011830192791442058031755785367028960875244284379669425722672437661447890883333680653460187556607310620760624863831955643060449770964294419715973902971319723229304227589444780515214690449430950100540415742367996932424440431797586214739669452308287884619723637082329610767856083429122271762367853165638037792200424897744323469601725987168135183985312129576055394803329361269420158952420732363750350565539555718824295251390720211981861850219790186408414398334712674366220695210737360395998180284449600983365056185334936767602233897332076408280766279313350100807738919044653247478399468118224790726891451537615976475772226646069039773112582261913601947079094800564569740187199237911957973532450123384325709303156034819289852972208081076808918657891225667861778617600382296342453736215067534260599130323659891950344375618821990241869064188779262616618897782064326939394164504330784425477057703856113642494573055800701398998963778523174197971199802001249037862845401178063635289215790294053130363790762505449659923749717341726603207883570408989458595454461800686388080985559933787580708157025423840642139204538772016958960796958234948680981716072726490931388029167387628397174251392411795142081474113071696284333816435410069606648559380559361648810036548685048376296802200885869157913750102085298869283891622993227015769198610551499443896668787522586657638366361861185065868789860262650393693681559020363377099448893771462053316082728402453902883282097471269671927157268145627710601852207513482942097037750095540240118995336906169072282548843691352328081773632006593071031108160921467428980082168422596457430312078666404161659045242247266415626039075905434725695033681187235461441433272106383854253863921330561679790688161084346854227861628470199065806040528878416365147012553488001510947290931349328921338036774993216385381137132198182213822826706462523411701372200962231508830152422410991359005334780791972234455111707614330060647186198186705417071806224684561386445865470294716932664992238954997164980668517505737006150434299401990047422843039374747072802773381568745666324627336927864070406780670472221250161486534876753369449034210816591499706079873555318837759000601217565989591615830088848172766037509272260198212866122962773193040992732475668744290293441563775508225765896179094443465134127259097828816940310527711661703122856916077848492797522352501849699613771129344721487000451117900504500494349754823393926598683738801230822884516230905466215234586470092767967075006718049873843332035209870911769570510201554488746659767340370907522192102092895807808154965844350552675323445758606329395240663588723844072582572320031778556109916134399989631719361246116537770937994210535764127053708470431360308218050214557421716655342719329280026514618978851803167515926270028131927132527415110748252482496668082753626428950993460432257165678631797482334755340819646080918594425560027617623243974643352853639236275249869486113167465238304038661944671638842461233130879726475202620476130723649447508982890926697739262100733274509067594085211947714973215422291475490714916601455749839677025731012969708328677416181824880040728195306146916808977011533263938748090400501428506732032622152245349347098909008871938509618096541446720070078266026253379783424065642817755760294130292731164883321355194077644660177987107292741142416702974557004421915363167190797385176561862204121856517547221477304556927478122535180183286364291033462980899893621900027788623821795890592436107415415305373085880206326669477743466164130977923094852333326319682063089795528774550545505584791628853502429309208124825659949873391297734080143486316644717408772461437969995993835587464337955514558243435657482243716228991540517959712884874727902965789744097366018405325130174626204543754719224173973805234914672668169226668749635597156291025160963857373913185612670898882470532508097415996917818395396029829662032566977197341987430481602278634162890641525874265189583806703824630201662804577242778124075688331933374597736089949258477998952385806671076650244897747606660754747659479608096469466792754887728256064795544622758948349598302469084048767397595801258861751089595262045036818541310761667126275320778503327298374574489336987797983677667493907774661985914885182876149913043326798472889532631816523248356892754275136357341654851840630907499657587091416720515228213584780954574487763071837820166784854744725552714512978440560092178814033869496037535303356045595346377277177015741028136402584921342581495299917608353731999136623192384861471343498386069148680679254115584795198815722864836145042759167289141951990324053676673793510435821860722219436652666000172254940500972611968190253250821417018303478060746861776006128050655579295517099133358731649683823475476934684468514076679976649073433685764375709709622794176256189057638363966446857528130934087922765134298894856716917846359651896153459392531445858811695273947551047244573695114577428142149069509146712150572945627477931220655762221313696187023140684608642699985354793714520286209733420553328173887145025974816839881131240297521051158160567748938789788758802191455026181966011373225632658077328260646368617522211273044340849728191262689904210443050685246518161881354611266819529235483529434559664820320856983086401447007106350786637899904670329501969941534324210415944632660266464710126890340439260493925477373257800886864064766079048739244939764992287363044019376942024124519168603146274184122368178503728613847583022913591636733801767638661942068926255034595860661829001983639193951988578011781357582563594096892210948705220648124681498117639466260804215967227335897324091208237256609968880276645881789856042939488921187481124837310807143899246987582176938447411227997165140375424840996946300964402244009242526058781232284932370012164511231516067396889680176125580418173622376177785996947162482153165293376402302271420347055180335094407447873048686059015160426357880447350679938179199740580090456440213429977642222773094060569567199217828516824001277568454356890787288455562278512474152545148238839139764446839855053352949395051652363529328098463086571991361180883734715062509963494119661604168657243195142281209795853639391331162127257222017387126045704630915314148944244879192223292318051373390846420413066423694128229850953416749768560198103035606997015176797652610446388363526403223111037197720159901992145577044202898053165473361503302108448802593579157450954536592497616371569867181816844046653050574854017025169513119226089778719104160047637648736726327993147684410796366208717313476650003714337566259825501422654938230299980917331590085034007138170874237835271071635943992277598308121453421252376776384649309500993134942184002196806037759858729344038127504045786025509817903804238600858800790156763764485275734428215185111362823330793745547771206452888212147444008759991038667771775718269774221890895879572773716774106962133288736490064511177840954974998606471040305374534594725231213270134997187231427488632090317730111810010480810652455084971202554049671586863726425678898128503276574558351760964654484611660737164742502990345366126536815488223471212607045941742389344186626779728658447604257988064984655557642326458241752935530776596352103967089074369819398440203799593696114867790791311946530092563257032840251597684047607534358897929622425991749525165009478239916042202561210505859915558618533349717811688407377311417027283349800487859035260337831435238430690163301746276913178845343078402141465275336293744443768217157615249358113663127757649580944883286315545169772145205573291876312988939517067504290714508152842442862065995492424044291216038036745275500608507809109504221853305667104371658415174442201910136140122520825895616900052543814764854502151445422324277283111351571232946163407906558917558416730066882161686822334168531646944063567712870201071389740884508726701373359034939613896515662545142457610663248403964843575044099896921525697010610685790729977711241207776818776243600939456518045584414785134879887113116429451133939466907236800167365839661711005112302393659871844095497482017192949256329192117259793916668582476274987463498441803243429741282437915623833584378934785067510573512131379619919114558000121608504816718785985195615280015428914733353645346536743638194128534189666483589138748395287519928691873621777908530106254667991491428112844932153330266102923556133039298453418134600710924911355071983822154150442654455532800945860240243575523175481436145770676875031448526922412435022420228049218576227173768659352816205692361857505610389794412692854743141732031003269115737079232192473214969291861155306317584381440655650366340042885669189015645165901996036099236972419605502542394690593088432855390380812108475610230831010682342177392452613519700855529628610560254533611685422064855169055210868433101695363156895912925788676596821106947472657341361372046326179692815562498280584729011925936915225491569960621408889374016692647292671055384739385971465204147001700848293655167357770636548614594016098550048638216917223701260329366030011089147984705017640597137503114123688287629997150429744575662692569580187592483159213967229923961804306568620474724623109597195965598319735439124367590341139879346584587823300219156653757353929233809531732213144959282416639313991395337222826206119303994947170873990414105559885480293914184762446590390895844772911505986237541950291055518850779435640018165290792689416767943607934824193294085301354655465463266062515413695981709944310811894176914931532531250241486519889513515190368746365154212266832954534163415334943137431151011826501097080819338137621026198467066500482203018146746260316172570429613140622391528174733637508849469363485715563827598231697761689051918780482175981636882228294697450441186152186110899743107624043921251923306925532822246690131830061355676341402128253696011468886689249925118925683684613236638592631824281375238958471522696104420796328692419708142773750053435837660425247690732391747593512345343496002032417154533279243904877446254751989853847289397289422836940841053257165593607400282198117681187170762513159625154774903325173914592298036428472525310403631037807684550987167086158724629077662830798494409073903117355973887186927913065060551614141386038122713835671388628260249603713722461186677216678665968533498698534558678105489444185428397066557023714447042325434790336687777442890975993225288201666041199030760247322754243570419223271678468081262973792999339881578729975763148710256823847647237796047221627688928254546304206407437874000597890056265260148420765439715106346725760531098217621385715712851996685018943429638870424761277267802249299818225060878945849994264756810867569891556615433237740935715452894967506851398893834493126374373306235473744622569532319738741427567294471855973580841769412670448337935229067349892337130363738760177147127387902332293065828548159220457653333705901404830806050001089006807102663201918182006420280131805448022464557828315082835969778760978122234746756619930139181891549100886037666897639420494732724296959439188698165351804529173000599275819023938013628810303744261484259542490884016785478576807798792233765045100637777536569222241152076340251091111013594212631457394776999128210085560606926010838984031818809588854944113226345462798482146994062514651409287551514128254565220434816653736388479544986927868163894980599880131656641227559906513365522735739330564486725879568753401968137382402852592108139725989653856612136409553626538115532921965963501390097089325909877444251612951760113020888129373295950547319888201246177749340916466781234369459508497137444313547268006327918498701048218105399144077820044891656008052884310951562490017969306064809210008985756288997896191318471696128913008671654997688694770046450254730318149222683216984857185192642271675584316728049303448002707931633794637066841812408294360568174096172616810405896026261503681322998358438925009522327597740871535865817334210773930606100529815095736770222673635863599698919395808070281156709976756632100534520844873094840902210495293468481616349779636059739718728410646009855986962404275208171157390869350857908101863745425428846058522605294334725939382024390430125304265154976330234093703281300124510758767551839534039234888236166643830100110437593126998757422681032774414643540123367605482988942784776294889254980279417717385538069507257679524776163859117697135350613077849539980661488080381039653174672571520786567585996993722219893039224432200141775190201905960468017680468262617680969314702889512648874280417123352035427480904750708590616790274703272941102048381605063979777122931667018172536549147668978610939594396736112758798557241881949953753181664416196707496409809484986446952346636125966926993460271307200230698685547488097830375871920810493159684622943770140896189772131540921962247131942664669561134766571879031919541963307182718138591320645612440108688178833166166935006637195303296398745687745372835050820983209694222514735285290318326521213983198762735820868833617702983065714377829008220344522050799855212493924304271465377593310486841655869622933027594847618407294966030049510987948256080169814531156021972482465953507460978348639926716307626330476090516089019776359160754118726034290422470554038254530165173229142577494876503954060925228781356856071780060307805150399720282590270963175428688822023971795915384147745175271962941536850691377479154081931998843326853856300881836057595888773862431060968264468129211952296519341752446661411008215906150636321010699909679394212823880377875714796373569576577896511727870789881261791374172079498694234460975787523399892020532242894091935173833091452257854849191390199427277172030164046405679630844291044534867940076335102569077182642847507957880705020141551327956578983736892278447560367501788004374548560368898337448420921548051117772805611826965200389302255871625744404932119746310259644974622203763934911442710254076002936059614437297294295731643207134892859927571744925909957973279877369935088968166944300647071159848204874476950145941401335305735067306235761964676474443332275160309457486465978046136524535841401777369339142720227497558974896093608437545751852468146922217677615478392618774936019063178932428198439212500601155396847178452216575163209903695161970926264964813519333853867263659969475770131127452585145933021665198253432386350606739358875729457389298569483250975048261638005769893335048412511606462754375687493576968455943615201746171430726332019878603445090326963290404254950304125358328642436030553323845347571426149671533270399060132588042486475337397894960394227675894662890837447542279451007782394225716682807423400913766078884612967209804375724236023029617525218383448565657526159806791583553950282397226366004564279872529611492868363906014376469161160815786103124453897762232189443746726907736077641230258809288286355783979273156381358029047996317146312049414890889840908196289641795437282218275055313069060836787783169555480614681988605073988380827897058467334117147160649939354474763625723637892054689283775683548021716426125392627085206456940242114939664577251141953888593200211438383327344300245712458085091921497899216010164881556671416979927538770985251390937437741987544438193071286435637754439251264447963967088295334532916772985684520380559015745297576651298671287845637949305686558900993807151877131261194533475715837083887522103095921927751608278456109892771166180488857266282486328453316438362648274981995690442731974185679986260138214804516861416164094677781356507324201241846394212270437589845077622597368715489917850590916359522084026173918108029289810167244822325667491430114981909711503263317084902109298255679124059390252956720641418490140163606030037514524568137075529826195267109826685063773819684532340196135098369693670888855237984779679683387012929445853023450426194933139974812805374742531773834214009951590007488158554330686984724973591906495034573276417585711602801158220398748725481198144599922869689714362475960147412656681684261590409911631067324408562990947317471379536681534142962747210687025416603621391861771382201364968414373811666738333307935888760373363512107469396871290425002695732862058532602509622723582681215504099874433552932292452796024972043491472464483345697482318269872713748649634055146188004436380347648225352073166272467032164610081867098577473021897204142156024378134655105207135773410645637940843764162681393318254203312971481073879680796784325990081838163245986240877152674638898570655270729128033312980159634695524522510418489359809957956214964889181981072089019492460775310339528837638843968860284392514870398714367182444678394150595032264716881630211881261548836018381243806497480600976039311539680004947274378461603803327085115428880836358436393217208914661044646023261368624097791976217658049016038333847403443549639678882908802143303865166974362964835720868074600119792306331906630962168626512587528932198025007427493333517988574674170379448447226774355058277478583417074025746275640457936566586350336589958664125830350664468227480398662237658530367973802265608781093201881135569435202428161301957947445005313200464772429749913087135903330390577919078187732331301569512077638983173179757890466564455075054769903348485530855583359386029709001203135284837586115212766098529500418498312492786049068998057708883147136551830812328487350290685900511995115098126959731795823545431178368517761330620714508987580650343415391623796242525831923219746085757127312926911995398724328485577644284400913344593620717215909955973791106520251451657613049233857691383699000297616489834876688711243530051434051886364732028922669249490814716964037273255658535105311976509610286732855752569475995907620483340043041110417830393214415301981391216407329937641672446670291477018755885224453642032252619999952100868942437016632748350756958116405551271814010676815418136086249046045324376489057688205300639366611227445123852123391803936173775968706004999286104619101998929379351808642596155827480200590725351700750260125701557244967506026122102340504851840052032500842860951474603276301206797048630950702383825179889480301744025063799852157852472967582293324390095006915405373410125498744833002531794486848232110427481822008277628368812083921144000652558494610651472965202100144512297459992886612918146257203272990443328929184753429486816003058640696072803486150031481173594942128474682503690020268203055973594382432715576485402381833748705355606513626453045619977768264993024643753114279116974798858499226941623634309627339037345489333028482620901467000755432276596920703402108058527656195683693739015119132321824689773712871771881000848084113783802841558235877688821144900419843352163746487929591251215533217080032244905551100555448047080679821439117988307818235646078767264541516459459725854428438819237338338029360003258215438591446515713071476120671303760860635992385295473818260618969530220660002159649682406215852373864620944461384905312351037426140928838702871178191131753374002300205169495849707322582257458320278242351974186163145808551615193892064014547663080798779518680462327285792753482269888676526424582247248938143875369406346098267526112552994971492256976539995672972302393044002293997797510489362623556669170820904763462038196054408268267917087529025639162105591093304379846869564762213317956738396499708838763349771481968881085126891176224217713321959489482143709246112625350740196991293547847140773397051213473098555778851957506695520357316349559687987711866113588408328710137456950268705780490433407024553627926097975547785670377516546034469766802405552045948830061753002792173856763841883127742160755286343494773061600344068323573084778634676369296824333682641955607228186871229578212479613305121454245306559982729219831038227532374511342033056504293852396991557917650659288718736619503259447282143631326730180722086726669223494435435968625372268645377242597379979269387374781582809242024316711245288463247104525901517704021379158375018126326599172135644059985077340490509480519970499652048441641168880796915260888588391170214934196599198477314111269677619993563978216901847883791527461150500038791708040172670072466005353669729835381090310751848271355883169099547449253456919346841393184497062113165224982678982568714507371035266926121097745623324160543356703259304787979729447512079745972142927998016830786129393447107556232632073286431077467551738535496335049089884265673160065837236807450094394569685772414291808925861581132286389556636543967856899316540847339391522285252832932166172230147466758418613686422506980125096981854662014330718617700050100046813478999664091463670660631052556876432067177766863658672867585447809930136161646273907430969107660070886849923403756877909833953015940561959315480642148784153967923492861922107076212639455932563009810279241325306085076920043870988498271496909016109023309674032026788539471043130869345726458871247504225809171674018356104468442074703216333541604921650186438062346443651716009903345278008452323543279348681779018695005696701155320321689264068253767167489007669357128278434140173615359841618957802152895966957154299963034072410639717973216264805293461110538271280289670921182648552618266707597200181258431217218588162301908621731863248788794936889535069041557793291859563576121861752736898794647135034285952041606793521429547678384352965994137016057386564711632909187962934847602564616560708986296760216059126898882643064851935899412269546866952005902519317988311693265052737870856471432638145638317073344938927004333675858946918228751604101542701789994405940389513584944985801753743151782179114380956926908791444982558655305828139653201172099360496327964684465451976879122067689836568035531332173766048984893836234097505454211213815732936278167878458678004481064729836085053369201153743388421787526764529810624473466196564419624519911774824604945986161846294802621937454935023520384551143629383526329894619888067310553612709102054223338857342547416580928500120810912949320214333162138318780795532319439167569561362441757230861532980183691947233007133522685804529692566001996367271910704163979218653384143648081526571150726390098405121198067222751206346635588402479390687672696369807826000713046194388778739710591636615392805913158913659479381498997840269530431579487453129637395761459867093089587221732517049872479435125362582193572163991463446163307922955662658188163974916496261569542563655687161773332909144760110217022733920430230579159927608552099360452313867675084800424167238207122272905503959936170220143921516970577332545967834467320849863896694411144500084371520913196188903451808202882319928993456721610325881844178445904581960125687695614824123722261275359511637722511149705053818272754320622272640384473759364261333343726715781426613147932356174785767855668481632431626203629208318480116238481681127169957292677709895429059200493171340738391241067296292900721856666796973791847387543288094607162873614562115657952288758448229402843343461748519311147482197293021180769002457405208968766074678418024681923634078887875649673617897857030874488006491612611000558749117913817203491938615035194722708606804085288411419865302054984860366705401360054359327144603752585984061900439347917265097508997175278050755093537874622223319787412699552742654161683046290525439317972079936371679905472449608507532556855870754192049766485095869921289311399175269861857830420969430631947813343131839557786788480901118923913319556690565287537382542801435536619947213755217384669689097874633695614067588229730075794905528732328423750758561031983735896827891483137630931193174992254815237078114910663127333536486007886289547474733370606762858367410943987821873513658934670363955943940676966677808727859186004992463803156001619473922312489887206104441577823572701237195321535646747910474564247897916022556328259190489081576418528073928829518933368916657002127945285781385000102272862234526565094698710646662183041633714931665168849960776250676885875844164067168049408034831748079580825600771971642933404585153110637762303182183809443996840204238055591738337111500459049254855463877996877399900505041613670774047074032756117944961722247608019783670896160519115228091678560150908918027517143972429864186543895907271851099179255981925905884360794264222178497985049008823985759129272136956452492327723654592810246328759236420555723146691712379896904152190835964646391866963591075676038219608980657325481720491014393294778514959193627215054564830057174076554228406525644932084776809569757214894166798476905646596290489685162589335972538504712792718180358226800755176547584194710529336720308626888522672021395734185405111783614895812839947135871017700109974055282097703214267963374252561401495731606746358491573403843320259661409797760614716241404652464282706843636441760657131498490838165513159284274803505302250823136881665890545809780027822081010651507725057227626883182003106196692182790161142486925359320620238913379294382806717323390320340974241256382679277799545124341133492055119309978484612544802768383966638265626371108812508445455347783838203269615994695051169180231569845053398386698354856141960275574918592661477911181199898723791297196020410769345979644008728051735363413998611373645917298130971927828067296675838832687064709135326723487576489135058008869027598448916484226350321140257442019279783187313563115645037217515608718934749803346168790715339429215453492273263475181172058181631059293585187827624269517480560922402852251972194726172308179464022123534375564405741037277030858277115370749032936504725793669894393190873829739974367278697376222279098012898891675851784093265116829279587521550158074462985234710579067825033096370147971653939686196180843960955468488595991812444702218261909872459654277281611127223254124453436775483131278338772532059304966299488818989175770709885688271946348352904092982462171578445176078024656978930266246469733706005639003511517766707242819611134131741504927996474389076694627189456928331593583634523539693752121134742852584157879711422324060790114917217939368427334504059700543554294636869612333914925887943742478021189097827261331060108342136616136048770762744625661520223979198915466500635213267357787139244319853344566755768862996245555011339956340067516937767172775857554664551505128898659282865938057768792893079543488685616148423521222205067945695496210632958014036493347743781550014245515637619019759048706993255776973275952392944380481062822137590338168465081743359056805341534018824849251058124824948037219876751438110114213988781281988254683884402511066902206731573721590484775735351518921687125223944382361763720085946406777676006369719702563663301721514957648870615002975783391671025786690072596927387077516109364345477633302991531498501808162810701445549872920496921766933656105692690109787990295501468048752451404893594044095345826955999879667267878552164963481563431501642685433676848194285010745731700257733768843768469699608175745147358903353575588333111508352778882978285932791518014643581201214527335280909190403555915457775945919488946027965700644216699472190251136837121332226988132069440164589877599140378532109969582282637135393107136862803056023692224811183895882942009971556169624634380456841630542171086884620340369803064520667321234510081752519991430736021759089154739505140994753124779535707417719271094719851330097977152449175800805885455893461460749324179349982330573208926842820295767288852559458925080561352996445224222342137540225118777409218505014846318907813460171293663220927988210455487935727385495159485168196560846910328135705395172740280617389330400117694256763204979590449056531564994182144000790353946057320461519090200290302134434736294590553599549955507372483929497937058329020978125394115455063685181569985703484174135237157504722464652706376389820536784472084125831682938790341247895141151672727484116775162421127605725256363514592363037530427871476280785422663153021642770826649382569229104841190696089169905121216176048160601924130928900658521992894758809960683762097184185731432265517745433665786081083040786593989343878721542770489804439480992390164188750094711443138335987990045105919957281344897496480787142123377672708840151474003564837562002726368508101301049771906830634597161128939181464333840045027612587531067410089271137825718099548653534162885531889204385078973745669838185137100058544954159562661176026985171216313030396784820208340259978074022088037850806775270578245958440508763648862221578230647250732649780980748497062560230587508338961601379240570534493618876652528009881260930064083043787380694860732769596661809147983643568283229748199915323129911796781800605222099503652562333107725047897695987494537409670235444402573505332995458515506300466492705642952696418401529403063137963034641743102864356826962722259486207361721840644460311594561680847980838438097708683379120034286290634109210241436381837109822716920252168173032862139396378403629268827475931865095956016054610045612368159998500522607981825194191667504449585120092441584115198213350673623609093065346633295682100405322276122780676286719772909722668744315549743622107098120430198050945345091009966558993043609026500737985316712599195872422274792574125119871313530497060009720247521500755645262469238603148335907635687489255525818414848728258321530554996063755164776626110425936985311651832354671445003775939498332555880425392910630626936370226948189389863212412070037853301873013898682823149881519776114052536859404999018069456277538891734281324642755503819442753869817505227690332583324432329396406861576164000818143076707031138099160318343212824285141504087028040761368614167581886217448525091546398008169180795200794314907276412022460353677864669368794457977918449959127624393673764961045833487706566055088982052833978637251341102983411381973602960164296750830778973639458153808547420447579992247073781981324465298481215584812572110765992354386576867923942165095011493374982470889753948701631693891919331902833644967029606472878519547712235856647293098458333889027820379414490980108007305754622509849251261483634712815954299707663243194999155236784703261625570529477833484304247544727078725545857483181748846598428044333476317366583518494210726314203824314048684630874933555740442910178863815680419191103468445583067970018166938192813336518238381382985813817887441090414537594415262758948378469761375058929399226925003142855622353965065654759229551392015442680883091447408062639527131010882739640958534909970369958121212051751861365390425390977405141564545677001283129175612804100839420687230295967322810608840814480599385473132723340502046855432860619752484420157909017604601097374771522688338578193024531607985697261849417390202179698410913079789370901879494684158776399903442725053675489744723795863844104556914621343289102147659263700784445652183472406825225126582788405103602861992688926930928721679012916115029677504981270232539020119201670393695703566072315996099569598299404492058530442668750872828677511774070013077064900569191127878188760939704902825128023774668236474813808584822943585174548504982253707361586066114723799505503825998014875102939164339658578267902043226779708433462783491895954620955794345322053979211309094252962474863493830405354986889750396122392365432164978887472031863135391711850467309939702585573185129025811667204061696787784561083585429255550377622495421590247810452787588559106157609084047058310947621532417880715244565791227249649850183190649582111126919895071214333992636715538078270016263093365706751754338894605465049443552618875802308346713847139580209047907374031477527921477218968802737711071512672785937053155394063138472845360734661014620566749699959610546456720325747008737569748877573220494494188124900659245044646526532618463236680360590082076622053195291721278093015470926736485600367038430330852074572247846446160130750787138630788409660876254557284197115302817137335478010635991740831443115010112142107568300849468544040819320451469038192348845842173080111708840898614365811151975546170015653613277083005707757824426344629378195702795398804224006939629408425403943866813215187053883602773193666412429047480682917665809296259133533216573066569427778481866455940293836512026939535104104583207280322943188036533504980470901519020217325504855457213787014763984831212855981831555130037387117469756732821810245693235220821606258252836497037291124245633425044775809947957867688452077478306795118546474632736929022853091588931651897099222452485406097926805053086620561287753939469542010424290052534421090784991700149897870564979744878904465211051144709571787549710111540442601979343737134476260952792027826183509687141633947595938553164948979069169828248046429779458604563349537267825400708804300564817566744964501523715134377571371896238245852513640208638132642647859405722315997044952235488005544805539843879632747218297881041258120999173356383499932374197355243243185723044688739667746891668771835748001966643195851240258278546713130440373039958379386051214425440745832300139726938493436389393742311440334629564200218014947820632881319201406104516646317739454184623468626567631978825679227144983926608438947813884833259136274422620598898869968334451610152671898544630306302989131231337757421975534974206337980007217728187261405106016678858647692044744268970028978680190075061187893941030748571543523308976996596634364945692526464052066684129656838834382787158085764579506354947166999515819226618162610274511680826020769075719338786471669244390190963643524190008087571759444780549895609171173981155220358935976481712991113549976217853766710427753937765185282142353750073809844802799913337797640983827595050734161213869399407254855943402243287813661920021906455652943532051180969604772864272929244607697386248627259099419018619115513394480221710408186442586781449552370448328522957630679276000352866762630219215246873855010694786025872471765328587346851148136974023165442067940537031222371070455315022663069654266588864293355555737796229129255302204504387627402583858392061732642267010977919651077426876630953531742623591504785024069353238664086100535428919496140736477426023691625757844384724892488018236313782199864455416384179910240561427500503458968984265517378397002809686211166411633366321201154915765801011650996276615793344795550553409071079013871351086904929157430178315096635985935809256135967415019486663221984461899407534343722685164081950887987732915776820145590816236892300289755936188458915730098413870604589631780278394458026658042611499452014620047860068976623953642542835989391736361042374261911676639238523673315791854845166351802492471092061438063769878959403646335991502360951963307745003210931817514077362626733326631035456000229144483170563638387023880950611427998211968171346406214719926562489701640625274655100369777572218779929105843249760756744780199494729951703856485990502292209745604382501210345767784309307928316321660110943234549147589827552616803071969067709101696924122249497308744142588803951505163635895184007669498184852327914377085701496078465325069775767248003657865184307900134490993345524685637699636342470370788101590881713107623839734680398785947576572133764179393179452353413743488469543441709844227107224818270609839645031740351496694486207766638724627739295575919643900064146791296939101314338806407297657084596676275956638902494068316859582289282950462328646858217057683761294367461486851109184752101166831173551375159211018036025314125624284922411534564665535870313034831128759660456722903415076454419141810720132285825017543445358030078617297273699068680606665871841486205524804806439473524621777714872786019779647290218794940541698355659963865664142684073717311875616188818179751005455041549789947206922154893604476034468261937771471342635016321908741360919312425689246433700212499927651640890731198313475428379442534097319066116790868367206567827556876863593340507580361250590136726033221754712162518062661618146233055832116324094143317180406576819411332059354163322874513288540508800605968722762072856171965926005818546701565061440582522052576941132717641465246372106683108069455043109318239568101095317132826434489618963538264857650872007084019033468037566428371696745572913812484487531295943734309512927454684372565215187231419651421477535027175791172057976375861646644290240280667474452790970626404307162834692218485235385415226833737229171428186359744050575638350890195438507168073903603293776244881032784099626075908459322416934448076642961410789394043669969728642413298564358395224036145027731462156527664475399840392107084007413176304974948932506769017139423239413733933733911250451410422301399391245527669508240743379374168219821955635230732458993930776272469418351797331418612695336285016017976852710577194345436273383241443211087395544182917728999235937856166139520237997914183395571789834790030685861765259007593160049056621436457153339950028837594307817572967084362668607881279772290881212746038794017119034943462215238639059120723556052121231265192401268726363870351228479307112805137047223043209065205489364942294063747577022957444053616715156570941264686202891876944876166419554118548515340153064020563222601076883726057176352143782850005050791766058084876984856361228248103837078172259987764293715168443743187595405000564510643283319806602093017983168003954923975330054455468328390583535775336357191140087585821459774017500501368579621021805708585425717420300216667445353228014747826046300881765740157518913279182459505413105462171119956653900434920119404860091259924193719561440099337905217370977300697074744785978661177885451745999565793802855259229814021138750683072208740526449603556662312485509251956720156697963884710204948617040935064341980126271335415779268646474318943097199327323298449805827793640103289341482907714373187689522824036320257458955694596509424316802922727590901573280141863393679105900027389607555038985587198480992248429632908674058501421146543130473266048756245133261965754597568774962141135807811265751539225961490602592087722648062908017962199441957531984337527803291897194860575237385857939086916829871857657655998312073540350662528884249170049091740650222698078837619520587944686268541031690932296140324603689918830281210481244907838739200608047568303099315950591858339453513342115997208031290587455543435244893898240503833864996418302258899746287820949117074086311691019196505754073407748480281658517510442517230042930687283694291049161351467660029534193243547039335754633554880119422950586978671937001283327725130163444245803163002752959880240759630423820959427705350832383266578902174766409886504087084623011822010259159528017630247549377189698653619587916971814606595082042568419468195770004540314451839827107684331397405927845903077688708457005505412560759602979204862478250325187995310874410623989894183958129444091346778567874604899111610103402384821568563818400565958328946472268302376234715456995669012121517504706918373403722349994844502050132302802903826933302882919017549087193584369584647572576296660288925299292994766575412835444321800643963773814786039284535758698900238962117952249022488478333006010070241249541893018741655273854119158585343263973502250621437159370520787501447964074716990498779087822989672141252175085335597064256765892870829964826700313964895317459159523123478083433477997877690836182270058468224309478352421351456562801010055011744520426904515303102213043685128128894452343648320567709305060493515670098008525798967157464849881585080254770343932478013643628122257372070589505362186269683046161760830301966231505572440988954292917725479331138879512345479975678870014257652569425190749359870653174795875853965304499168928765522977578657292338942107621999898567213846113724350945989295553771121494637126712495766546687047003656755033119128225669916367497847469214252162291695731857659319039501182891533378789193884295008065447796523811346239196543140030954628667672709086981745754666292519554480015528862728103085766206716571250752419396906459974587586797145018210088497013758882916968624594981187672486155833880523514874995243382007729588538133914569701143356485769996316901436798855196272616540133388903228202309791482254610230608459927108351575900355252743662551541385329080838880864066429364561902452534927622460249057905579492425209435877804330280829725464731114199424914385081177514346752029148733044787258976796500211258924179928145880445234823722428191847457100342515784368794779519471177727881420221573843300797243327227427119477435084595595540256425465568135273430131662953774650949579565001607465763273922715497125987530055343647068344864949695277406040369063006127394159835246089580088336542372265776746119601651447614369400398195277696085254510788385366540445229412811732378793656397252181474701716462450304940890214887021753945400652423729600427455684035419477235334439986667529512498706486503943333688988419114039924292668989810386424934450175304244696090386316193143518367030841594222477210149755176978673728807040529782019315875389768067727396617402842101154814650035333029078653715094609788688245898318951125645622827534356344836858636730761641692429685750974122136033850886667968747164798363101989049818803984499343954678789842741360935540045199635314553589849665728764158884284726449339006267494677238095233211815133608432126971219882782010503805284486480870651466196616625193238642814127397783843907826254213124066404565214985098617090647564316101974529318929440187833208211145311176089622813996547411737489999366934666306137992499620819233267947269601277298952591891993409276585944081361493986111841370354008428925191762970657985393915272130094697270964536187404313025028263848724047647797827563406324472594860986515947597583278385992985678794403458467540916698715229012013614286726214297845855272647667042868672629326951020205738268814869050919229858650698465272637360153155060853971499928897759191617872921185565544064757221837862697019293012917906970371305045677449951082897972101854664759959746850223477263736988443078355947667345895968397714971479166818743803085740183706586628996430228807856585861274542969882521273584280213604781176989846739878145855121549581456788143718645729352352043554859973541277195898363287650526645091656025266038249074401428850247028113249264128543295611950417783304607090570685064648697424646582994000804639604188054460458187963653231187100866335835086192881187353708762111432153243413555486687509462045207248329395292683963508992032057922139713283408413122843143206942434171691823203494372950938152005329238650177666354169563865497717703132787831638034709915841384083992564355622871698748442529594682407884623983860291424093607716190034388553009874541537978289461434344008111521657928034141066143710449306531031190853065982031439445934322523637773581717884260744853063443373266567994436389657765290792671343381334335610490679265879369900565641409630733137683212045503690853213899207463967598646926556825556347792754591228072768138678765359349384737250355944952534042220306680515170310860894109083687962317268577535804607284684925182978814151886261343357032560134934115263688958737280221664689170239748669642378295907097532679326147627988713895601491298393410386685043625636832206087921502155801300983967441704863290987634291429858110863837967553288592585307907305987816937936250695140246591250031176936038285396097674364007748511804019693898273845301040953675088129886268757291196937886948685120777049543922990791196230035122762442572132049455285411672262131470723823926750711412480340118179798050776822428751445134893061844071872956803067330898227130833816778760043670977942519844020908793974826841197078911640537386208557718569224770596236927760062335591653032046833504312492928762918046538450166203017589196090510722274974294784689031290785302572468985681554358447306007012214561059050526530935429523696190922083977145851713971308422692167488091589867417285155152405782311430126500062280380908804631571147672870765818349089009341310819754566443986849064208415495520839083198704295206459402407160006852377469841662795846461222832122637444565551397301808489938070709125095066361607211947441285914601312454383114355665540496282350717736158801628763805112089306051231456838273919361480576211984316674792215319577102310078724404804192508275396921736113090961615497958039088438132812933410628028753091773893162541296255030469220896745445613057290706624954381249682028789624763254856238332480427051841790998554890818244124475254863108097025648856591155122612413358157741095540506791688726990709660340138605721705608100534335408359729530502282285854113883778820626771352864473491407877648593155149509685463678319971950982155659665820345850240470641327858743890688903505723946511251563052293915778026304281790699898847410306657730550744836576241368035274284092509799246868921443536849597961159836251521093336381629615584452002876952995053266592704279202011804544985815624521265629833204534352682760177250185398107276418909785962106257217527179570250628272696778145528650841513174261846003146085802234980734320775504407335229220195863406047117334789852801930733715964667468350402185100901354196461079632807415723456011429655828729361299357961405005019778465937175953087916443773473658980692730558357970966287863819778121758737741662644019636794261970451275203783854087131157228071931078578180857335739865162678719161795821306894273398699789603964510230438180328887843622285009074837566156909042900854897694187728854470640838147940645964041647367239868767650912838568101529220835905107936623966662394895210068778212095984567095745727790928102395318373172638277835313012135511541580692393633702068318142238723583660775440428402735226531435043795761723761243808411108108977500994621022906264353734853417791953526846098488817854571395623370989654661783479877789077132464325648789860463306938365698856318509870904871153036826710526813037625144546318842111326248172141375268165595647160543877908546577081135774654905608978158738783686113247578546408880408068620599019131327371378154518205435967708111562997746014197773568160365459298016337224447189988468709901425153122365427901015937578229997703521950231653805181093161325408143079423647098282285941228632669085465144541915993164711252146232902073232780473287772071146309582681808103736492630165064777027832622756805831556692365916317338439672896976280829969002234798637876470408934480652746921595837901182856713347039399553971831283264585028576304901542007011095134095508240402690002279509555873371507247266707972401550189438830234244874463302832982212094069845366629835278399642253985883400070115537094901072608499347470555233411565473431997859520317858328552675317141227249960885631269971066516260028962997069574094308757945384501650640012798639219708598647223149898365203672538623207914140676557571829074765379105979705237167665448469529913759113975753413746846870405298695147982754817629703421833833692261469951577016613178764746198087255556355637709732835602425634433113878415891861114348336135520280656996745854202758658077856339653365186065777171763759329476425221709518541807218358413974968470000382738136656930571368810231277276453173900768768110920677512539868625513773791989239736812690843508302026911596831926504662757519233741071722799104533625856981522246653587001260937937572795653106639817913175310376769329952795077669769450815366030652703602753892160848604165309934709754085882416822007438837807367824458938402492437808599436567990620528451900746809576922484979539008346170287567649634204941485731121020030571675056978252148978930248379460097628240973631343605808530593540778152642722545644065888559984096201239447783644706501971129756265147716086801981829000758412159896178106867727781480679402724917142203908381197412008417722779800559163123402750968239508480675984143394138372398650960820750788832671947771047778570890938575655252112389305998722813610506187669840906978032415912074836819530104958867555138283050339356368719907301472961910661668004488187294887341822346614396845133770913356917251871771119773993145630954719915989529178240227022246490406373928160440202936479402876215284499060869649683964720287958720714310444676296020480478130207788939134683098190908158014585553567607527162783508526920199156159686506518547571532299588981480622478381303593634882477196427424442544242952583661053190440068310038992177012695599141542773700359727960705665916526260485837401198871922756815069168864675027569740503524647271021860725058037397251073179982651313929845663685793977314216175622564632752467180408898686235828465574272133149888389761127281774527136629688405123194579963123739018458227217447597666716851407801710728915891438986072364087666560303131126460159103673825549893363576261966893581585137997131667778881850630632780887618948570294046569858708602196905152703466911288505521017813234031752999557749766760780514380505835668175780349437373089136926448024911014024414511890523121147295714459409283660935835253930238338312148508146655068482273480251816512457469251617559373612503621276930035443418425317544244566686413434672281096242363290464377508156310145235223298080694537778715146518290539392674514010861372829332134165027587589936463736154604389066041661314359446857226272980025089532089406422701316442106151293601287883051714155165478556647923344853407993932799001197268753201374671232120669103791902684366726077475449646065093880921716246648221840519571058783973344427161539094458892442275855688913121352445588052119609535132107134761597007535131508352037173492855220928265342066864067429291164593772773104719364746295709194960046732460440397375915175708073002803807275735367319384200183170013004431073339948651218650367795024990209700568152650488997074849006635363066716376608234184766711324553143772636612088286246358967590558526526346834713507179539806811641994569424124370606269356710430919969539815085174692539683766011996072167941584202429625135756086394461416689225236883578799597332547981029017651705470225304554966145666096170770249418965538092810014028589439704615497242731167142634589837912299374348038118750136003185105458487671568680441894727218172582030500398118328541561576181236948123266658011827599710632675816481573764593729894171588894976744827377719605050315085746183032256301921223868294256752139443018596668336898460799989301274748511633307843874113842698310475102130304349812626670766158832581744696270537237479810462531545150024632611058568174585735117944230886234572612648352927141552448529703280640470355749003507944061195759956456864961138883847790168863169524474085105489466780637424839221926144619478899163706028639113842539879110319516170271386889576566230241966849321961395002063686935552694076408346164758040111860715776470842210074759950677141500706311059535562477829523562417426173854284278148099367837126904410796780344783319719274576167413067870765780022962006075120241458207199499747742287260656727997262907739989377367352662643964444499217245714250016707047706300471245821125573467590405862226321117643312671363227869942796740516927045630982877738199501765078729609354055261377688803521487523588516144996426909491102475391270100914842472381358059701351136650566726110090791041044355671768400664969535621676552582430322398910377068958571710271765054459797206398308103268762259003130270065677522473964133328104704750482227822673712328708266842408154061663424251882389174386831702877109405201964039435789234310916389453924797753206971413489593725144323333884919000536752144621335846607345231584248445279647938876660557537889595474138571890596447322846805111274654041087439282197694218727884244294067351136760321387867402976294851374916227695536736570088143556638044187502662111917564819733186095102065271948621277988920110006857793913997011127932240534445050508359897489303619254349570975722672562859693274807010727904196123054914600857289523893588789842834882553970575476793895543899266361865056420262594589776986250983661522327604424224929672181535649772016023002317187650363109357573130456602604882053209689224368395026115783001523912514131838173870100410639789304135147622745923179892291849270515380616560071680270545049915394588803525245211914763922652787955027198214699475161174571193814447257901208591884789173820471264473173263468433924172610383723861272465802764064796348039124544189089106140216712445852819143676078563037601479790682007360853720993383520963791070710607020149986023837627202712849388361421594275203433472739337548507044864546851467448592085292830873209822657897587453688875619363942546175251367857885654700571117477791099194627607604046762309531427389746367163874992514269469913618990975435419383542196024754298826994648784178992258244860929561342443933062684932101456387786862100507712461599035177816119029516536067183486032121972125671232668068640346105837186699670523921881746036459219572895804074038435966375801650313532550173835837363877029207201353880134264983784662569070339498806676550150379371272847854962597184662431751870185545177715488554285277196874289433089603227523257060662725204386126863286622636348106147992490480651175146220829534605392598210398531314922680040810294190592522959848508366325283772349749786258351300822268770989215918657373684786486157256910543912675892868668757877518117025347252572992264072841426391684939377154174303087324878800958996968232812592441578966611839381564546608247609142209657236384081900349881967807611254001439631560664887937906095407097026859922479521881477238178907981499479985642595968810165905415466949099474824458107988466199130202667961704144498655730960396886855580289684919261286634326410698458421949152387929084474035263004627469190815336291264596508998299255723565616631872100243595353261151574669327312672549396413053808929483393725357914875062220468646898754873358604855543002727991716324108807820075198284030848568012531294120486903922745062721156088376078303259979865177064210134198212010274599808311285433139566864313339495082498281292318561474840149861363591058186119951346177044294215202691316470144167156818105069436733518358434124810474525889957272136474371857838917932860653520439122472486305256066945108720903542487076090571289186755693108967982164065689046599052104190657332332285787487445892615862615099097692679702155792486780638821553038458941317551139155347530838227780077440250855076683877097595176117551638507737535135343587394914241351328233482244892642907880268249009368301266302043950768688952374689249754617020152042421597299070116918677314828728447015265303054856738179257409913192855584753541395759968349863041058929621201304144071273516936134866427385452736359420985569419846028079934555590116328930340202550784249719606396930217126579966114691110686668599815990381622365019205677085387335937067951127468581751015723402079855039401326105991153107676154474907284318564633606167849428190800761776794877030931586702537250100798767057349824648585483854701984653712165137134693449241335486049173967973508529830017312757510851589621948616095222660917560346204668288109834765239379424670518525396366954635273294503135160446905971218803382616643138065892011264701521308708916460580455167103392951182309479890751697461308173952380287295047128596729164060066934917112031944383182291786033182775369569468449536498502642614499628766925457021487032048374490126217605729003296897811297819687303553519238098119769626540097208580725996042820729505662390490419194822747979527931378244767637999877067145099519274861161522103725465789495034484529088530337833505793152429969454913070739506510510834019220696092442934130204772019754973895798986779748552824028936058206642709350034312222109040207923971540393835409701732747897104750317341650740522312106650314643404373619944295608001873465655381726139557864749312970076505168484252552813318529675488931030370918576594466158666787120684154906176459006337700878864707094701335237252859892502310305289829946034017104225572882209582013825599231969915915324977483515892231482924085512015071324004355856722433017121071767527197628912756777674229869619512605693034897062703264720394161688545321676966438237716015407737778937989133063813530541748155783536155254043975792649373497762358248404785284471910766282518463931234302798260528297587057223098356920729428515324325963411661564796496688649277487844927095217490478282771816700360821867612675597113453131173790125575006223155988257600290321530965084162844523118148326236232454567885369350032035720971247697122937963755790374766898988424035702165787702761123972993358004465110375902160658893562797190889554524447384959707086992761241725253500565204558847217287875019854390947757882948657228287343015966006013457074723006427608724133984038505893795337253265086078824104676764120946933270658141496450404543448187116997690495758965735090897150128133727227678404976436918790021150547899486455469215178971164754969647561442652506470069774098929726623000050402080444038385691232027570409467068654822390294214382573528656035382145673768481926121722903949116333742343298435523433215528375203836771605742491507382222921210391798611901541341740260038157017998698361145337310792377831114491947815368056889146703896548803569564852850149806321240057867768072589430567451168492996685324494836078837130936569540678642136049057941422554833123480273414928425195583002215426624549744904391500597624276861834871953799240301698516730113083760666131685146762861858716168665143484003227637626613034725032616548707726165892549388276664406630058243285011517932329115396850551897554108932082955430437523403142868016895719165900056547765037395640725741066887053739203174500733288800008024032261829288483703169623383850819664153433345097169968766179445405717514465874911105031326574783842780063099797238772710220664477546430576808585723563648215520379249117072560891711362990051968047437042627691952067164754092710585696717549712236616887290440140721858824965513760345092661788727113595657714786116150790433572379501210511680929209657113901933753028897585383887829554113753786974838802847564643202207582860095848325164754009944046199569775235634522713060424629721615918498029059336466631768611905424187195505795371409833083586537338895423492219638311123047536355328239437083181237871404601358082550339667453579167344845533357475459087177418018361841744151304762131889371699017270045965882389298101849727102860253661374730469814181734531146085183858062609664923957631424658635693100160272957433203829344805635096422544398323328852856071275390378696547335582772551949204553364939270535231782443501112491842181170924544062982020583334870396495145295016542991528448731051199243579741850215920027442458567939769674536988440093139252001934451421041952218773377826492546979162673505274649565487768118363094232401332956323319141084143122587845131890398088808268434401004647501556009887752494670943431253275014577611399365899932192095391342893788887944665845424608996892476233630791276140568192052105864201810417923435111984233569260414280580798152296538349102923595269744042402660969317000673615517348624493332012920828483666379742707858002281460445401901639096797937587474873510294251331633811529186737672624726896456280222952708052063245163508040798397331165087270476961141756163970253666818368418830474346870697614031182797242275713093164581830860648151968103220545369300134243406749539684487220977007291553257621258322076401003428657268085739937187533795307721517686980450362300235805826575341448322411689007733258577525110515410332906773970362207388601750343394314200404464107643047766401592448159025726891208230980860069813994382825456007480334633433019053212439941492833942976996046213059890581392536320269154091377423022858353048571401606868662752578387455028317662453490434540135775445648620677055787918341893929611856949153868000709490334673682643593973812746410009817882663293135478135320794935924840884260512736144193799782647197422431017100698530608455745458300814287390436860194038972955196210980955636410427098977148917605975826341516690769918017847528612230258445458317175853189210295221023922652484333621635568633452642411957582296863666360554944111480618736721223222201309092114193191902272472272290184666900291366080961195838811351226350862344284789001122251537880027641795682399873516119340680801268591655418687482002205916176390138599743108789163477476771376513202425221090705471904631348309020688829619013848427237684412227473846627941978768651071901138206670779114200427703359652449686547053468758362349461380916409538691560928833095158078267863216731653032606356261679390455651713716216589413264551470846453363655828572935371032621811252576626348394641628733748202332738793754270456233541246601658348523285761775508054347284587163399896948614348151059901742178684229606410480739485620195952256195182956595345306047783500345588487207698997396167615641045988960204974497085623262923460978307907723910326047825596427545348279980353177988815927152594814969698697586542529820930212855150846965352136612495182763243846967040324284258211525766848958651919335489218658377131308569691428942847103239324459727440038514214980108810367810173486236907529496514263164738978341733898387807396022851977154639675434480519704226610604596362977657267238518687086652729560352347632741712142138911942348654051026074489766738258420042968573777017221780421748608645159860278601561117648170594536986222702387711431925530767937953932388886336013298962075353769233692648653419117893923950441207152591959841489734041309801045468969443706219061720351678142521691830595036365045398875558568539182541654293441282838649732909526762357640160033316592430089783176132228404651045059800278564357062370549716072686648704071934336436173779951615479733648019063620780338426339507011501714551785063708096898646430063602145219867202065930229183494188754299893417651299980674929421534837367320356272838407731802805496840714678333615174717268762351177254913193653660726590500185352888348407749460541469415140208996200205903358386977273276458949801698877079108111050461847143371482791490646835912174310620186417987898937111620320470125391856397712080842025067311661098323965868907521362555158100662673153344859816095397851904772588339979597123303426253544343348206644499434654347970768572602938711403239215583902293669975378431051724490105581633991079768819915243430963491442299323684465878192476876018436294824249649025935517097313851892988994948812039339034271393547724060770903719020689580036886043188148767306425179329697865384320733704078676490527345857573599994987488175301657640475320181582887134686734111554967891164356863479483970477101790868328788171655845091790520376772116968932870253592499749521323709193929648853600357424792967280726109980774598029634938639298464215540608812432510210546789974533988649503414651815754730334804177986511570119371037348396689061765850393531274247605826679531071760808621751274853426007350435217989903062577982243892681098935876536673788675944455325713498676605977383838068476764701711507276397842719816187410508115992695105149894743962378694757266308287887793747466795807293888679199652136819074523324833344120670054286776164718855442355241855373691929247413663261618161441221537742262022516376494622768061250227984981119486683105746625438191147967922793614464497962565321633728244662741480508298683152857222257434779012420713015011925210560896015291314674187202859741898613157151759277959844405110977747059405392576131576733272711043176900610380023128533085391845528165574101061187494085532030013185798909305733151847674078074659894443852655940238476844439760953597723675699561197582074594097228424734131388417742020560242555778370063466609660812127744410826471901688395603579707566105638692054279652699075100414790942745838848260111137723133512609192017471003099158360684179816358719393754867213926768756578173878544645247151773968374396780149972426356479712281577971822766669969496346471222834246720059958252636108954219742881282299062675104638727016794229931487505597892693269407055334232586238954994355754911829045085203630624577483488145306605673989915802677681384837914895723286785742841521061813485249422993637402376631713009815209055713970672278692298312401200441764598383691621863420449274107848798229253160586188772508078556108666566352681746132520548230708241927899489317711411257643373312415555034092949451579275419891120922730638483778581713515447410369364857021717996696092112953234985704034478033460846597067359489340967367389545347574768382499880618893331789879517102108998373153928087960157220940253569383111592355403569357906040304617816682864049614490678586961189028366735038247909742441077573833772165215984332037279888213032943427969251367146279685032333564740492857059487734074183101411881625596483271087009269167293887148641633311589865975696745734579149463786768235365586035295237282606887417697417401684735189952316640243568076109308684489800630833789037635603534075735671367957327015226944292418809080442954281066157612062549665808155217626945870167825647832717465635751242406123381923092699090076979028233785615369031326538949707081685252472844359378026095486084805143273965956366462001459065015092979234955670840904152041493913931385976351000143018519702693065368894237526428768257820896090560836613348250390180582332733164923251810618173772393316002792088606952877760791418312702293049941736670110102135168407702369972668880069144449001043386846518860629344711326173646026644706923406736924652274861981477441140756478999793995529990496597146139831954209555460760206005427059434922235386484619702808285168610979871071149126180288306815977899458023727469158874250665832777045086155506023462886659508810671851949595959125440119129335920586651440179942913319487034232736716049203071281273590270921712599324755669417358140823709787927871390779132848149458099622276496098990384676031263619037593700063214721959336645829316029882403750712406560728534114959544556611589219329521043679828054259203957846709070836738926968403728474455199352944276326582806273837944425517299990944615803661186017559304734312427663734613175927198242296416125148370294980618906010083268951285922623763531190037223518601155090565879621696830738175804598786522495713494700339738818377611017187912267969713210948104640354409383461033339597333404634323963243165821147158784810126373302137389323149458451063859129582296464182600477028562438961361190142695651798632555724020898709199966625379152565616990187252543958918281337063241028933107794175225451619355782173706501044396179471636678934179529099636070000695042750352345386086670040736818952942865383102417905750804619395100930920087486902967417190892252417059411696326687633681323365725608472849408862802717316173475675857733484084308912521808326899410634229992548890923010355240173917995257799257475656701052868479394040005750367211665549009822591480493776506007684609197330672228950801013922562588420787604708063315850353225798619039885343201370215012158942385330578732333284057184374766253972982216957103190970502346739562346602977513479958129498494612707210261961452220040884349085222475996050367489233674441020454959096224005675338268411246258222816603584136379120142552430194233511138900081530988456833861804126651686577015737486922856092519286000363670642476444231907186859367693130627140252557078753013315112430346029713082151311090606182605172908335452850556965459312073932696709080775638645503042703816634329828276877122759192872655808692255966946799596378018298026554118806564701985293279894902519631895806375221277783957138710671280555979309638769016053724885263501450980309090856144370788264892865754439078741853218792829215492421379891737003964433515715615495181534573238930677713863270173646915262353790458721272241366136624654289354544934388415032340739232459911758397794337647969616432145625441335676613048601410436821501350977597876655087620116752426981825194721070305786297975271977769168145183204075263748064160279297184992192154491294062241900655345212923375509079690463926802403826587434077954754591733916963213058738781529648984590505644358877912035735479202390534306635574828699910422691734582248809648541651697501239204240916976648998915242787390050566250502433836909875570949714375775494557255766549447814130243025351792347229014699943772161743257636827443156709690889199611114523192988860132157975547777693247916060238842099945204307809396660190938365317621452997663427123194815182347024133089063670454033557723815987066151330618010985084479418167630672306253370040673964711484326950983286184561493316617220193090204141671209178584412694360425568237096084083887993031294994841212574166649927748662241407836108584208071470898635387546502620847087261267867256864985741325467789217889778287059582935715816055713931931771108311003553493041426371411890611961771029370096337625347660840576865978928429298497816950591319457844029210797187930702405161764529313270281830093500527832773136996124777903309130809096699976954918797269907042252877153251707329564946075085149153446429016376804177557276167755814133753303154900149165181630150086763119175503769942146072716016489213153510841596617534569847997489711244779192803780862578603270290613965413881321648026352295634126468538189536826500053007339666143419250147514333789119267650032109465376801466674231719503900163911540104864680258579399002479186681644696627047391816116071124613934197283914916065477610994871753580605901139038517175945727176021245237337984089719076967638545793934959304983461607514666705423465440856249562216529984564326944721901523972491115777747021360345442571529151310781879581288802942900236176360008246762506270134995449838405536342158766068919236181027937548274330564064984756384143677885087111262725451043853337383821237970678884008832232251944967520923469091983544860204223377948682472846030132745724803234246409134004413939430371376937697421919262393132282333319348564449061707060777321001425424402380965891373550117720345256471220331838659788083150937467403446316356504011585859016984133251645760079671036831083865941784289208980971932634020486837836897457447333691031336318509778551007953374178207329205781082266971055746387391739625301459463801269902974447019163652448721751168743314232526683588811632914228903177415634076803374449932576750028886167289918250269700746681720443455268254303675838801662631152768650291014716140772063373260679419068506646381662365691525218630658026274203359988292359550701394835300595579127656244951177863108489960006414534109570189751040496461656420221356199346717292510884388366157484647007961805446809821587864600026358228270716575669173128500973695080438904824754547317287954308719919288335583736651320481687881801498284136202026311594884819834100034672476232694567411665124379579688133342241465958023998307713603588046073592399090176830470725279848255612771397380615100618737178397106574475082446452182795210684075636716915218006370984272387668423001702455623037652359045135717321597656056564535467028668881392605072041986974827353675894238014788169322235001792439325633856968980234617894487852190902065202641164022897241826396037868530043362233615934611835995094010264236790637621643781809536958536101356625871937929607843488917076706772265572091295039766582150351316334627155524158405699957465990535283723481606365310640154814573853488629050504897317700842546252684164835014666021149393469995106837768410217321250834186674881277937793125187135756618315855819392959347232926126262740249149680534706330318394940812248924371280911764518705755137941256625860328908200132407930657156287956847014125611986805720354798229233827781033932299761147029930913044563799100272840813584935740766795992872879493557688630924419892428766461782768937878352856280279021697084665077167905286083532485000344374465240540195260609154940941761024932868854651371672002832939345909003395064989141767528411440006737704165461896527780375043363576759719108017724451470769497668183936219015087250154832169278540212626144371015936853851550008470857825011452823603674605821556345768621877730946583172958358590490460502699288129156556834638063012448669096602665935453434707328813584070669221204891434237108101800282688905928201314865386298610566117076661004784354250262153498954489764349480578298660836934993094100900068701743495477047168293307943002961129954839471192805384794404801424101141265698889944055430978481412748624790190951017650722470639702017606107760530061188000577765669087383740897077180877160014915069540754669281264947943330878011558214869941010717663399342282741390132732167866540497555985649108985901356347971065800546507382769237966044359564988943233654152204852822433987761610949487326901704992809780083825965885651331940170092610713640628148798455617046459257718467997782821724044468520473122698308547152023395120534442478497976399469555585254926749274716781077689530760915762927922245249024712973775699402668545969692828306094773754275159648010606316768312868905512990767724420539840364352990590380076629507050106452688610160558111504383288190368818461596598467866554257912880487091150821522845068388497632144672986165500944124861778864328711802053964220603898621959705129937116448276067937920911746583284910984217251378738629810355840942663651109418068588149978759913135424443461912379319584923758816442372461321381375894923857780917193365109991778465414838370027771487258372864719573543870367598887446122942993636209143939717066915024332444242954596128269947567777691236431339757898520979701630553860332997394565917113815665714977883891927964632697287730089608491443976287753173237429284917333497099454931631945184025409357778699769781923636505211788101705341812948914871275908589767366150738758971503074212107088029087277607643171829416084815863418756673578123902379303268979708683231147163932184801145217946641104052512761236672284310587030434159220647546510254531857717786999127521730017275869168904261533243080219017611220052801551402222380062822557982360625284486984893528829301315642785600426370411854958140027052465230849094741081041920905447216465977576308866633643591108699583970891273335714498156573966338153737108569641898584998964353060599400150939176020621750073080706873934812337638069626058926551958151689133364618327207732132423717506436707682515113627973784488673603858092806211743589812289590401323780608341175663411401751212730200110388690641258181073434862223888282303582492737275018253885031452560689914856932563350342487489151179523510474031076890303757982171713757877445594467293184020856888385891804767795538615693474640699508183473044297205247733031853609751458417823732942079541616425567070534483204739014890133455013409929717273322661919898373365363700017215954541955801913454748887524824300789492449529186779916155531829303913743743416106254775562101294555909677342753142281023106779525065453338985980701935236057993734373876321499179225655636067023947478628829579789132523472174312697813620547673358762746932053087991451470584141833649408882188938719990179777562701258609080273910207924394872270739856053725335877190887367748996035520582827185068817385849642552920125313584100653863871291655268788462918188085687436983698214868623000167509020643876768271422284593028368700641141313426039976048947098202556305398033950212548027102901202244797587967966316063651350746779307525654015025392310927839845454677305764678747330039316229044148491198861443764662934424322094803632610479277668667339093739260093305509476737505346804819408113446127911931146903774332107487945917780528115915256411772888709894264662858950209189473905329050784745048004162256448117380038792596414964700563105864999382439118273145656309258117989076394838942409361826085829471890252254851088327612523382049460034023397186498236088760643763993466001684216707587149446312903468076340547992000166293248725401639811155226096624673420903177821013636410580205783868602763557774732561864179323959718097182029213858309568225234870337164037196358411943210381478180960399282519464626372115179234060308748483041678699768346433385003010442981440868438163294556378736543880061101721386455946278671028344169042041876923118652640212056900089974005549037251445687095324014110043033125077067401584544562346974533577430850532292152800895194349932867374754945107774479015940704106625784644571249115540342793790998613977267790388111655581032844638182912173376138360004428096278458521979435731432363809873030025192446313210025409249570688954998419931598403169729212948830288729812353340569989273900402453572173813745654833920866451818067197423716364362555812150851567040641209377911989058609936060519729893045137163479240042151830842582365940706824458250331831114659586059152853452810575442220330338431452925990836622860418629977400455148146691066471657075047179803560480651523791077643439279034375491776028236963345998205914395099344819471413542399520871341278182772306877796518416351199875651780352913962776651086401695997911344749946291772200142563239645795648534507716812129650705638380181951801799936679908005072682102503159445396915340778142043398184307275318564979084693953790466621242971640975860256090465090142027389828991350587107938072359288284132685677225649391750876880466283784710552444725695975961125269801421168019379699501118300815596276954204495068008486698203008235097975927126707449595430621900831377462425000372832168336245289436154495728598223805734198988197275143414746167669511345348133506870907537198006394274088481060796823781270373635521133526420425657091423722516660755116116171272907246339926237942311800844746019701238944999480476767427480073585157503444954644751542234390373613423604332758339526811943005732360492088477752400377997534100173258802781767590312619808236135329915661726758962045052372582618530870087603050700853682875936562036575379723958014339753615080007155136273073363211432708218894058648502613314869603688783337780255911244036152556144301343210076140618299072024381598274731394983454942786413564070546015440280219620609429472206863126800000373055559639409104778734054248461787537303473115336820224600718081531418037999703225295422796669573575335800570770169450028437798144612393269536658849161731969132175596193912236462038256223784048988234547401736388012252819526717292332464358005571598350288228996063867000617698620901588986147133532342250304580148346739328677758966322133203821988422413902674497750493194750019236720266075981155307962113652041704112927281543015116923048242851557642993689679770696822155232755767832990235622933011606957404207971238201220706375635255594211278486315773960416081762922122791553990231802165679015941177371124686005765106163741616167433134574322523140175571922916491507532118991746512004742352709873475300747207350691612595723403744147197317240891878184485728002326565686354971488628939469057756157632238359893323266170407982444869853959603128867414976403067100764029820357120232589739875210314239930347830378938084806741142843720310976271779011023352510150031692569160469825103921333132992101744473626774442673649689210588345188769392886588266832143118557849425278609822849219211620889619521577719314185352909713400216944919854715108378656706851376682091807912073166442442833462678052396836131636683028123910510431373069436262530814363519442452093288021397731096361435966487860599658317602029267091521078630176481400790141660837044118876666118504336407557353110058495257546238469419105869885007578329673078705095982833838480702005868025088607879432960984820875444682537278501857678985350382390069105275048792983831399150401101963591920279706435271743588635325646614430021996345537716794639176126481810435263834556722327620511426106405202330295523740952786486740068273563581808731328985323517161879411657779711544902550902562900959834025978615603957236122076858717532643704645353915944587248656865174613039884629571608763680981595930900835196053029648073347921586673726297280511485909651880775643770806819413140387425575333427604214400552452766453776818281733297438611850961735851998905154097147863259406262106992581406076589195580994481924381771416647035589288269994134077284946240539935477609954621757736408921630048424114142935593975134379670353224638163488320010862084479137466123464671241647477562820675048818968398482715807392690362604785825740348330466496800588037687963074594778034206395204732952409168343332385713771458046941427766481097013105938897756936954801038076777319390453690253451649931294000675211592210299330722520073933448459955205210169330840145665015447104150902522427827438353389192072294326050023253018469134215290639270186358499116497812298029519162736868808151702754775298433599193220947872488608202225431663855556975805934156805765622206156411361328355728042294019268116467675456954650149231820420063967053504444992335316483664717552310459252472384583836149378780277600456988754786631389302733162279729505128802651543932038925147614449163265722232450921462270577884174555783940150590785424373103842785486031730926799508826444136494898691511415267626670336536881713190242416758980375552503609735374009033071894232054983520576944854392669933317875782880067961231717647704141798391747272432869552967799067095094689021265304223638700909140604293879758076502736837963171760174906794624249115388991940371562913718850540687685879952772042044176229280985760252649774294237066028633684355136586069900110004302114835986477715696060617556584960104973389581191750030016382156845980438975731626667489194138523885285051184851341210530112627765308319391503277447504566680680656035773601626109897368211665706486369642856266029863456204679946734132150754056989596264577647191122340133974382632037673371628938058142850882729915067778122009124923172275910761602386295939718410722463293371993196494881470187475031298685344344196332746956295624216614010571248604859305346632087280382141247972219797850428004992171217965875008356165840587638566652006485076311779455833090758070393850911564387559366524137126511305181425441593379885844590883846147233598134692068621366828885455982582265464263289662041933550896906297271185615980947446152091077048352959473707694533507609312448780298395436740967722558545980675738380760874743970056853765916530640386286633139692769899967141699648282220006205444080299223211284007176362209521276460029201728265635313345212459067852282660615010518562841634786846696577689276934569357366035445675632487775689919786441998247000911769708643826813782379203756555610215049926970063805119776695099640675040906879139201726466841185638465496793370818370379029198024243455816400959416226289780095416121705475496021006875455313522210465806994221242178095786549275987980433021725854954047544368173296497608263149501071001217030488109183370330583347885224739564926349450505668719330320669982952159382661063354671591024210783024469499916815044168966809195017503444057319426923313399392626020260396960227742319606361939131362785978393759146418370503564099032136332741196531521366423763813760711383890703529957190208776491268823119285574742574265261130414294684898299477821434645304769257325221351552854595328668967627365460161869517601812730961665085440525817720403843187474655269390478108779314064301891917456606081644439630613930907501205607327438937089879680860004609782657518257345844801440877202670403118016741694470073168962719067805235566648234755458602045281708030043718536612135855346531460592261514926167536833099489360305122633448696963948151021843516260279566208728086370204277719266049731590941572632235658298322018094479748529805004110059762666552578285353831427303859568278172988343748498301469880773650957595820533685141563367144495467087138708840449985460582046200614615810566180504303879515914323048371087969634713803794902593177713307157265302612028545482254701851856606572100586813018452541711899898123351384932830442241974231527711408028192787177813398950661756257117611709150134198008233651886042996875734337255336500932887079017485354921939227149980720697184895976264867008051114430319066188923262993806957416675065845969003021053848885891607146749570715623866479954015407747038163567891604898057814604309266092794967835545599374727846576842731697228011306761923024553686065605840082434609685142154024657140020821138382657961063692071083264036328321729114019889273422879060113609548772954399302656094170970503323941068055978013191550524103937609077009985578300920749766702907092425257399042730305398451852733564587964299559016895006387185837670882864842958798446991503818756400763509984872632550555102848905159058398045281880199017429617340434192454607705416688433257206783935617973304496018651449399391525799366276369680124599296674502868788225829981253929363694060810306216269115296387539532624851032570773528515457927072020833925016585555102399301244117858670920799280971441725713606656295818677909331750100149928934269466582790646992939047856200819690704288629954935870705552471834958409060297788490685407077110144948294813169769762459022011745387728091622124081017417164579930807600158755007944283100640147903858474555398581491554643509761501852986791753174079826620497247792802854761836457139348469657625000259064073534900511116871898965260702810415421320825661874223529013501247876481213398976339729351736226348072205748970811978005046589962395471834043243998504971806216199984274910082693369166180123692081265106541692782005677667102938392813009204959078061187919238225284341440373370075011393543760206341024330706563126473865785655458135284092773408651536672475265654880734690001519644979444549626179223663981666289861083328454872053143571892205445051236884724152665071665997710533998362803236352789860090431362314889060202478380817621588109611938019154593950375584726744797574293827591026713645598250841019243826976683290600132386467018053285532567881380256021907348524003558117822373387815764957297774907403860335971078893412115180850449581593528294741307953188080976067467881584405139045168822139073170658307593552674232380266528110325814289717782184860630879649147743218731305371057044360419489969469853553741163892457746931440465429288855050238712362378713153481187800931124300385392164121259423221402168841507353243816218503951329576276799335007437105696361430149305202225563202129847998681399416448545776573011410099879722966192634924037185485351669522739136820957946764386903206772659292116183445716756223437596426087467416582673633668347571572871869495254200683005797759122290134810772989684906786545880088794035589892194528657225103188342050565336696080223626981470810119356075106270486754254200573933976770244055792937334787126457860937540951141901031374294930163113653781844152798832672379037144585133291043160426430758794108854362736575672663224170336345916288576704456603653462131207031276857016851995142702780346087244005984135461033440199386513939029745495443737799030353371029384449744599970413023451887395726261938726178231625299515371643088755402495277404460593738623371274035932852692938595307011147113148631792865021743728814486691734207796705538316894371692359255967067135031661933430573038565340535256719774074538371640611614420186079265273626198524537733472767275377323843948607816483832715973347189350307978369518342487452495769455319164380217955358246742246612013521139909213788272605757942712473089253384561466625556775642661824193459619464589953406092274244818553237351102989709592554732251322949781785742453341635306061538030078964758216604685870456563720973084396628016030674817162551268344454521782815486021332257338136218150205650361668420882870526383514503156294117810918600300669450664599228713624303126441909950540225548650058196573002758620595884947794548636402963631988353265278123040383313183541150032556912527159838960758673135683665349188671156374480418426172147749320449174018098964214504511230177269171906599884643151634467966734048763708098179224193791421624401214680535602124705516827328862690393497077833130690508621860105750648205580722080467571413604178786619480745377618632030880884264475134273273164279112838127551781324058742739878129453388907618187440289333228253985175639205430768021237930245389871659750840836929324125020159048229093496277070623011368961794475620032767454394438886885501255142249812184705817263905606353398639484459402666550178569207036339186953306559436608810105864197055544697105372259334126748279907647670073350844788151043503995209953723335316816749954867931761635059375986584813391571697347179754459096467059250949319713575413779341735500331968426431183959274171779689653499409153601889062177590976780156306154045730054480244789523866376024850426220986692186288256094022314071655782624488754452298360869672005404403687304618641075459820071983701299155197472388306412067664169399186917701301225499369702444671240329644376646640953121240680562777627552960388822134942640686161408782359905452134773697872253162370139936212716282576301015122701669416598472014652007284817614165100163209744784659203513791331731161333931257196060884989092052517330146776841106227543079115484641997515542420614670053513408559239311119567738446939009518575444120566535935522632125774332070729066231154206470845957108496218340910340978895199465553162120125832741641653101106249017213188960956323719370414052290730539941219385469645636850898780542479601417475681602981553970695551265584659001809412616579352023178185662543298233293056294209758225639195702758559708896300978376094046668805388192103259485372571280677581661791751059409351540733075678289958288799346451538942590521989179909906485971174096899675789225550362541138755529590908072176256234460529035997599837512022016877773105561231210003952914207068875421500573166841366470869978130068523622605631133817021883045544902968439198962510563885075092508443594647498615136632170272401507486669140540141315497347987695498467480864345040705063754882205445263737898828053471313368978287032649033957430710895533228808946907386243427667313744023578858925915687195010116654239490445107311045527529987903697061763694727510334800340600986424946524655562106079455051689423515822139118583584603889202788665408495044539467109845355057576559518818783453768938974807761089643490173241176310458367134475056673390126443802170173576628600661364484263002134702732252858781280409050314812872603362785585398276598436204438633247449419045649507445610946210708054297229831276444778184917434946422326068626962967878695181120525125437147812150648154580585867981800069574235339963482187808896481523330906831696972600940847249954107068146888718138212012061339308553634787008741627220602503873524568596159854818954975134517899730431209013088765999758075232574984791192468270354512060901389266048444094693150108879654562122249148366017277131921188600665196819414839943665103474682244441719964285325921825439725958297789616721730231246024065127339261248390222225664954147419934672115098209328137115723825551444132786651441189152728265049275479567930494093724620427118327450258630054495250039625797539088169980104068807850678549414649881858872614005844764611092562567724526124534194192319071630292117212578151510679149202543541583791970547930913171137788437911016104928715991267434060090130876662643238723609508354269254333888170596468341388080252036955780147118969457108273710804830202133963555633075722117183451382395391860938238926964858938856364979346644560080903095709512843934235121024088060890195617132357554433443564515275119890875352256979370495673655073445493741521769829361394430065947971378520231232651349762999355960118745998548374540736857757456410802963566741294280985001772310189103305617734684826616741146745721569978723545830537074281581073969138405639802098172884467985109140131488007125074256815514040395281970762532045472769975262921424220180817831143019768087838010289329360323988458249249571118509320090706911793400225190153246589689789786503598677618806025688759588405468460528431105232699246970608357081739573995357365301425499409488843631228950945553405006523629313449184215392127397937638339168407889429438092295014207917929418388498958596823181484213637508960999266103850899553559778880068629668427845682740930632704149410666669808399665820988291861461551932007700551946510874627294260927143077133844040676849671358048571706710298081044607992123068464525731374161474660158472204579687441312945386299520530744510172798766702816135567517562393750626443438786427356560841053455539585781968297286392775534379529781921697185714780093333412210085968490415294197753445148577687807181858996420826173558234058521449588727552322637552401265168921269594476836442920251625051282351017654741622913098174149156008590477137107432703384969286780965045513485821069306494142829151002657624300224063573225725531553868363533455233168201634650398797261409048465534999031260638550708138676915065333803208064703122745016533120464673785042898083005263492032897780616580511847050669910286608656031140895668681192346087976393360296850477436333322227705915740239426074200525082300260349709536257562082362720113433015255107710101452434797786202216523452357679419922560932771668539730260255432874196978923521434073861855106932143032472726437039294972648310875324574189534768579828223407066602884461015435513177368562524186581247977162668619221629703811901713022736996190549142982603867835195294102553186382020135662955800492737062073046287665553685834712095661846469813714173076831251511106521401785245256808803041321550527634873817362247640557506063498844638795184400335599423479152140064525342800169171421818548503032422939655254748846126267838891159674034467353341467305347214045143500918677288751826575510560338998239592521732947312935226560472893849782450188490834909288369258514459117610687357704114042372221729835473811902858155288530413856104649195231377371254387827851925105058120277771323257771610970629534375233205912299206610475675506546149263592404332023771564403511743759151113251682340803598639704693406373129709329945903877913507098987965260347507560623873208388623528840665706803052063633611623354684744746405147181817090489619166713135371707731573326672707530355112865438323923673579076917445840601022502976572241613450802158799005255725652310699994205484950488508114106705786598842937981003226971659652482577479434318780899064593958741182827809500176410432616018355498188170247515632473377488702292990106358215766852659017998904304612361096503965457868760361504158430860131661624058613140228809662313232862119792434941064154617643160286170058854058299757888528514706449426341580137687729427091853362293952478610554709917149735793656442175446562806206822387020964584336710269551774299720754132487072043834611872517695108884160216262076675715104417826956608232655920994063738074936288831768501335676911017627552944360027759659209152781587585289649646699736464229394145308706171331506396667093174343986152877206409007473699899766144283020922163907059033065134079469491998388224120626543980950894614951759000394186213586459391054650247150897332247770605052445706178780720093138873761842337012896955460750013016109585925543899920575400340715280850794030071274933141536398972219284919761827110224447507729060433318547147724598867663040682344451637900432249202448416609452898003903203129616055321401903182289839431939769073807391182599890176043645504106160907558414877042360484951904675658929504464579962063904754447010296551890804009900224741515990551172960772441515557781281467183046295309607957788536739571696415142926066070077784826750063923922756045993041249225481980190112256947429205285100758997656037465704166265989641223923802380078803410036822318535720262010762509381027150279519876733651166092856601282096718652333956364700983673134222641073527367567902518482838021541444687524732031971287711103530591743422685494567043411989272745347081815535338375340093264837297378354601678341623980245136165775279530166457607438289066137067361707285328119558165414350860561012481575441955565753384265530621109406910360077188439672248233009400652451601406877251871539349487997772466806921032782174380776616187691289641163408941901010174497830425124865152364579426953169197907949153284726526503410059098687916527024299283497373750239151890618634114676165709251456685400769584225363418838941275970446568158382789179704998434903474830304176190051670877057306163251073575278250799365556752342816061771336920037968739597347908144615950060009018640684623029788652023782038797841889082855212700546472491706198612693016716070311916152483853730569818296890880971723462682136664375628362724185526921575480388539464481069043901850127030341761336903842237633289550887888834142837579463503252559881262838785052146135448162721574472874578885463258268264396171344099023563448047354309664142676407934897064431360322285030778188787255970323616918121052071258268147731226050598648480427960740798569648913083101304342188137123254873971497221653703084061119860881254078189908753406911250435091195242497811610073554865920587119354643767056240608547069740037614530701070307573819577181863956617427529931630052012347590614066777731913936033366382151832469225664673219860493924244186967361060507562270377273105663348650170623750075423830748791494979887163648775860724700497884920015024910530251620331420768957554526536201462784394366334097811797286935451003288371268117393603985656179216730940910097174917760731666960337395009077296650120198803263423699146137535391331428026224792608694916388279707109796351093016353038334211401356384669426277210204498392526150363807598835549477536813748247870687129677799301611312165290130368957139395713507054774188180384931624408454081742027081649312961009374394386989870215524683993218724009121761187550709849272956421053484661290736479694017966799634160955028205593895244450115447237540742938676823988967216674102399001796747621679585443254833529131057802924262414729431114309419421479184691116968251839571182461435554435016002446983534326499277684430284962674606377163269730130557308449488785342619791225672670637315562878207700036832509614416575815506100518138453739266962176186933271423080152435380720304286532046211522334311149330604731607984124238515898640018167681346625266956936932859960154086461641625900298855888519914397442025677308588104103778643031103039515881664939518294244613481821289512408801137907817413514944544576647840512247245481737351362178022179767150544521410115493460214672937268825633525801093676086614563920902182584666061446737800948069543578373422402809906646667489440324991388773529078473576820792462964522361150332767779425543160625605334359272054071714684960844103378180564752492231904799651119852517973848180597809796494409766087319070360807544483458011268084065067565006722228982778039201096727322702535213605623661635795610243829962667050429159360031074582794197404552121690151272820344523199631636100717486587793628599654508391767343906365143502514440859223617725615670615735502323651970237129837926601236528654887640823333443098932013895683021293984798043107283235921380507298386944600936768560724933827532877695109196641342163825765660738698520150864478249768029927258585987331974079008789327161691906300084754676033950352025390261946888080343532093884844435675585584814911375582912192963283090858160403424109771626650789194178395277845665369580491924615229922518616162019730469689215218766809407034487448285139814701124619890863721262973662421081839316551253956161984039544159906041495082777581812951090253170900701949335444019932194819453649333329919153544723181968431537943274642634091148887774835981969784450457016373041403517852820012885337809438678826845391346232238953392401568399814669893679873206638466058346374682036005055070031988347963260621614974673412196638610588814997985049144819396429598614915434700720741906577575640172227452240740326023612572763025343473608821458369009043629040741408735351670323433429063233991796278333291941081306443841248380822347795955754121166357931627260243357439269297838484376117148877706677451104890234188167938267695847274587107047330473136334867256076025260459004570352779973157338275912495201161268323103912178471145950545500383852104623815124968764872728566158249881536846014477784707900599955142150578190785316504186753084732452523247757150147434506172548807746948042297368380115017056535719403550206934573968124088883607978260590701382755882367657554447642568481485810338909940901742709859930517987176235720193680583593641173288691001287872305212197316921276749140020933596009318910499913992788290414700825213568924385754659701805950378061213950224458200021701137825212089584391171765390796965299196381010279251175291808324879063504675451891227679040681398801427271206860575062714915013852923604697826559088712873908211084049524353962768413720171640426117615604583875180116670968193655613383478281988376415541487779085461901173492344295631380016982844313461984026641014343365356818241769753705119168217377438890448885877158650433052400186261713574880901703777953597905732528821999506667942783095896008739860914537449123748333835158696730213136534765687364787998187301432632020780296303170711681172475107761822020441125893683461328135379227893458218317922624284297458774013018661123189714388455271525359024741970586323242685891702668561642762885616616353932147411057940611519657876166147341553247780534280683907726666182655013861380631147820323359178433635786416783419673520043527616889728939066845183721685848121048445663382683025981969399957858636619439382901139872494457859693417424035461798216313579194118363218097735990080450782487715453622191102409176198649207525255823801416538595261306075470508770507398358672376126133369880359539729363295716072299309595571558588165723518823009128211622918642342013464333110236314134620750235744899118221004404663059728026045057737105731215124576075769828540583020370088181708779963229397019222635531237196189967724998772021186377089633947796572008599066593757984417881195491135702235472879115664680994787885416033609898004522711572878299918375216583049437598915264249884046834866668453782571488034825774926047845368487859193960348620019841495401649400472317547880798411120463260793845864303016860041834196104418307724212388694084033125493312597688755481544286461124938952587794556045189921448136293012126410265974607662754016241833887485350477487714342671357234408138935552436900164317775177038894531960873779960406877766821361520475147626416398867866008577091175605818476050919818353666175799345285427937473898667994664501117896326816545125048193028997561177946051468574649229179476154616029566933182735001177315118060595293262779164125010832617475033440975261042364337460942999951039602481934803801913250304038453887419917862548328607308900586636972310951323070844829272119572160805609092860244196706161296448942300608895704243661879064560186408149654165439800078755043385864819540164173080382412198504048034479871448375199771515977501644064834409894435887507427228162798349759421315961781362045730150772800807109356234170410472422694572708748236084730639525165184913889497745146379213561610861102984892836267849708956048198728204824068294997541262259769173232539030942789581571709604082619644982700749179749555477705812770658589677219402207081876329582205484904290294685678091947020761258323290034964636067976091376595035845547942610262824971338382505957614946024138852629606599191286903926473483806705435546329839778005071508227679367387175645333394357535188406428602218305670849978453648288274411292874201478704784492481182925952795033504733411243952225934739210340412005992244026386809106570497907593599847596547207412527215414172671855311220387828131175985283437620047589786103993879613183020536496230449591045632418644449552660662269750593341304684800416976292881665180780316530491237962132194127510697486648902275139902599250853189489354642779810532235851566133952381116946693187855272508912724885034389682342061537458127961386958328890377960659272472585232804622303190885733729071691856472867497819903454549719328200320403347490165038735338443069660646460547513772918500011095410677187045850227674317944404887261126630665797809289803693418432570594100714687993549832637401723000813590303142710332968732247524852708875228777567582363797853668071477439641015329523437060332146555475621753393951792169846393643557845229234687815389708457756221482942168637625461175594529258536848869022056692187899088860002271441401834240788894638812577930124754161152967820548455959602380829442182321172626199790353176888775032817029182893231372131893120140087112527269939739628854913655960240860641062471617761978320465052341241523904889855452678955539031069820707955880104759994134387550041019587018719117674411659587686944589002031374872700172582601131881742190956425238086118976093647657584472867049751368378596261507558396044307085119271997369914099570654215897069637706342355736705047066782561965673997651032610820852236747104268163433820898268777486876209122438616639717578480317601153776255866748015950790258175685237319770884814952572764834645775469087149100990314773240282623433345951681152640831869351400748023960206816611840974982128061377922001003166545157333083689502733471200152761373218721355421914662915247491262346706782879276463115110276971499118848692425732403124626721383720741655561546417787116970663447671526588412171614584240573683261778366151229451149103763929824126931041715209526597409659150717915450684523653767846054586230969005161490459643924765633911893509153567212221062243135802184564495983311806708961094920377377947231303063760428504510730791420721451472907526187389282223246450608282627165463201036833576409899959879075005138628096664766904281812308289685872364834335560778062555402083698257108447381186204533475910218748078982201447244415450453890882968517413742968631443839191505958152847179765524077674786671229269723903796838448851115005297211036515107985481435768458945361112597776941145394970263473074894035972262053570694768944125916650192518775081803588540507340854090966199176678794939784137650698027721568676736657039687424212565832868862023039929982001669610747788233090851099468253845078650923002911443606269978338075505883174081052189584360238386948492383311287174231857438165507018900524868244795112128651739019494529279482276302806185377118039323848078056059730981520275338207034920570311906186666054208044503056600198482505171371455637662755571683618397065490500629131746922361421662100675360311958660581562755863376075239003062141436836472609600610532724874662861345274721258474500692397288271757153584820616158317973564318395321964006276194847081586893815302457696049205578785287021588379284823093286168116724284068600750851467555588724569240768855515464179304471366701118062472743401965387315383583628532097490965508675758149399850370569326394360745482858751189773752388277465331637506943995641591917141984105179667603881499947768918188740452656819488152579147001694210842988135279974531939566361339179392469742130019277462758030024528064152081255009219806422573656860808882142140545277282966057344037995965489190466673930715068191322821815749296868255127539499457318619458386577673753442839525793895519833033324583893282481021344476615435747369721768746986018183518203154680709950401733622322293089371973322982991986732037499848060625183335693907901798617734925325951347586451575264756407087303919317589329642526579479075929356402939047773108497442036928879941957454748618211410938505767055009248994072976666433427371205595021134775911072251197445591112457298228101407246248649529994687958286260553256658185577920424860250818837862739303525136180839734377565016691448583799350298307978338764036880588595564786762137745693167727500639995512126343902258094227921736234787278547262191419392493413502364368053994035385126156914931194470069473454613028726836221794647542950899743938190007297671361661990342454209424357575570982484035158388871186004211199516540063134344282899054638312779032136166136938571158774470811197445252256561192678685632773229314026982448874217365104045987110782317470401028546862623513944443157478283421313226395936470108548614899438378428203629751753710206492119389497213311884759213450048652450666985234192144603509714115906949017358461769265213181669745658186583418323397428042441134659997108274717060300991682499056715938100409018061147764735178084181146796573565067780316131568311215656240205702937849575336339188585577413063111746476637348972031750598653814188911218644513516741844977321501033767854548122872488568689050409345398798997933030072176450482738388328780597571827461205791304421096184975393891847682846929469870098606589067475550164622280463160140566421181338112587257622784274732537180621695820992648311043933260156367903718300555335156564708354835090186997415731392721945899210106792241849220308284495443217093041641022998223067569299356806438465385774998674086669702041776711144751848569395172156520808052075790688934815387438624157030533549820777289408911491098056969583902031840259025910990218672924777198382666857397041131860758231781703505947135550787679793244219690866736001201374946591101752619153198204451744472545062907517896014434957056463202679872396848430409078566389105428168819636392193300552063072836628458716653086989049217534022873410720208701638538566670196796368419979497487282462156043727241989905855799207401367508105319325418041620136867127847977563169207815510432679989700331082248807921786260596608523894028175595655771000619205434265654027377029155626983252228946868436329455820816368324757981451880355877261601030252816298592823203327552503640227320924533555112770124719636877088917746951083352245466574467090473833110279004173126760948374614932202657791130873646538667783496116555196731270783463504392309012838730412735393649108138976859343324124569011278569225447726679369112142940336549581440875563395126819637557851970686505276520120785451606761024617175811975711735261685750515327956432364122592160318360738738549051691026835942956067924728714691174848473019422031151504513895929986212104063774196262653155238352219897062543796438297105771904359135904891083555452993443947553530184411884204799573850546162299616364872707474787072304618634153934653108360374257030491436969606463428587219497597007061601310185424172834582712597084162176193532510930564764756616280525593324915250740287820886494755143049913087291886512007403628609512526759949012227461095759983511471654170320073148790057738726216464987792221847662159820581932811381484244879303164861935227116443196476021437983361763386878171071330653827459874449278757749872428462653652305542476189425034084164910028252958371453075301537354756225814123069328085509592849013508639010660972292222214948173551018393854381770836119132409102736315745050984851750968933091964140050183100048308192101892419370172363558418496129094906181001946597417377712182449428203018149118908493710185557638271323116166154458176296960308171214423582118923276947290921505322042422541298163795427906052343794700258315681316838118379918678553630206063434474651121153711119036208339389365335472141018623302437663658104709054320490189181487339214729826066835837672049688100168408474347489703263501235673127650137912948504894587435037415744638678725164306514003095509145029061174208723701938913556931333725924652312488553146924759556045539908779571271038920369379384399226275809025810057074240882223697618322034007917699963844421114824476140411345590096545302240636377177187020358290303577276552322411454265182323794687185542074942022572266238370649012950413555989200718138365268683487097988644450658655181102491544545655042894667308802486563503778421424153005375584405596513291902302149845732903316701278638793581511177000236705781774659900564257925220959731403438340289827164715993443926003423394689057228702562373943457863087275863650819958255969762610914264517450971690855704016426257358314813664509857741415941316506128290611552276572088864088294053905547171732130263209749414669478625938708017562390064926056124056813410191671060764992770440267519764430639548489279262469728859167482294099806971062488069955917017177878610021596386778571854421530952314677584556101650369463348474437652986953294371782897732886620895393559913536745002378907107397623289330221020008637244254508818159417215831571008758688520134266731034388898776868430480925832465313433176860929624653011076627911512058846327191974265140054931635236810755219406792827757210626548006040197167789900943507990592696506513283997782321381240894429143168541984993168115285260800792413823169371882231051804024841938989833960652897051636467905557095565172761454445790417607331018135829897872568406944853233635371185772392451628592045564519227659306413721480278380881944769468709202961802139865880316717447765494758026725836681096869514455422541531667394878746835641804573829085813263746735476908575580541784339422862041959644795941308244098945400850648489081300388274612469186645875349411184108880263452786303336857661919069281591754354396601781947029122923556800479458515197142415737631078120466021355632883402746280536061536130214727672414352613883760168595497353655129862015548514838676853597174457366553025714435547168860134584506385115302761022384095650567743310346728437202934783107669319111788895980849725588720202551604578515451480175783843594978389555156508646634910071245536780497749735758360995656338768589738669901942679411158287255977963916180304218277847572280864132898230730059819320645099908971587650476165682204322695567194189487114714357543757177010177338378845374547428783436064507954173716820240603308588336862363678877246462282210693590507549209888250214358810775151395795071244868312324031645771302243770983831098326324093837607742513965021413766127093040332255115267166457119589304659292237802161811278512299745584721413077592771482070791136759621503851182734228195584983704927377119805618944043699293996788339209258903008175843923343147510457629824910950407592394366405319350407850063954198864766814533709525103269478298655339522636599821444352862621013335628919927569126285544910236191621081179819957541356303776993632332504216130373677013127080310420452083177106127834192744404709103368691192974925509382905831579762820631682611824464819558558241201740571264016642212709072086295903265781709129936433620146998826074724933660747588736388246708320552535353779752391961756074526759778577727779828634978756728129280688479272960000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
31000! 534985252321020102783420620560716083277784390142629385606311387951390651765345272918874690675581630000144668763749047253662141925354868438833801429825237344524180051201775745276503573755637486385392604534797463550845624545333194149343898920781865851100583860994263015791855027308609249634115429486775240470644168616246937899174234759657973650342822680135134969111906255477497269117841704378117710483805712855061225781222220674386287222296952031612872648033685530343722571893105371228696415658562250059655114457466534692392100855373294994654569490508797007723848705946921055298215500987311004322059680536531081672761495658196130917822652665628016598755302889650002507799237196060629536700206812132501977537280018901007499882437950740566110751739609694213559597619082334095495763800679396354625709500025126821870765443039536337754012085229572669134558347085724176275731929148730508260336379267016874734912409266833655749638561660516313097977107927925582001162438456769634364016580809426025292242183590846344018893702962091860434166649290188104779536839815276064868955969592907329532864161350011405307341832445179544292878016141869699483068851303935515418901150121615688260891324251721940716359789652715679593224539371240997209889184916662332855477655618278005209375067049813059764352921387714971440591039811417103323160430110822878578984638156027574891991153886483166709601489020957001625540028313718648870594024802956255434212484965077692586426586749208254890913353745257277524779070008905539684308195387623455689655162958705756432136256728593178199171252947772297716109574052737113040447424798762366443928803365796725359060090991695810285803417896024584989139112248768831170451878451506820346350954807465721544773690796963746525874808322382011512823663641178075589527963053603655313676627474615146404937344795460391614271289809882357796428616172405533616120516518351527864121715026697448336446480463424632449148413664159075985706834669204791276588869591886399016161188413878710029898580394702000266178462250585852318103403663239439143809302721221753203891047339728228360877414048795886826400540232163362366104717928906298623980877431744288737633673911443682329592483039982653494309095971697458039920583616970816927497095005852343940244974954148271014922361128737683243732399335110908497732145974390577768192933837377571913663032685652804044150644383019176190319075658660790857869511762912864292000856717369203213772425666672515983229553782563127615680767237488345217860061070337486773103564206670142812564630584341686261178833963170731662613795495545331414767010538859699597466214057270870333565245151998139532014341211063176293505471963066842290139225519133734751631378542029266089696478601990541791906734414102514597858045053997595179864937321877676018567349257526411860955846496511916790547108471767102939755719270672781090365981691894564253558945637897727255623041290561342156096741070331174852197640550631211824730248839216486587664011413714462078946254056156128071818996883346483771770992973214880246653419221250022027346295747371749546708404089553116176622983902346579429981539576615054892175458844794628969571770370445134942624013987251057795969830498528246906638137886677438430296098354338689040319284158509669628379251945299324395094210607889940739920182908567556845659829149267128980739038102657220103200099225530401144939061254820655519099182852194418926357213845599838206634402050760656943124241898839102392793813931620344219682584347180498609411157082945825437519357488002339142337522222831725453839367112009337202449918736791707259043502069597272314956540632697911872595821448204770307891063874298594242880121820976551015161778444466875361913413535366527105632607612666224840584960230472649458396121163375250846661493994122367134575861318656800258853700292016370692449910825954487132421739666380739042210931942400042323469980821566493474149893189778315647697435173838704304919285970181847264700794041090597705294146962679954933527717385623588186053451819148863144256800332796204987783831387744856846864980324541378695530941505028947241377844586472965860822914287245814688234249398795741847865483152430948980284737793066112000246357840151408395420860752179916899016464674986738680388644073939287095142330303058727675817097644002650482822482169997171449271353263153626453470741839478403812990240779409677892101666419725274177274535112461149926552593406615464470581125975322204486355787342728654948144556129690649553683623179829696251900583383495330098420523591748508399434991525117114679589886576628656819568428744879779922555769496553985298563244810338248182058870062168295587874075543830416047641349564120644095075054052103168226113265807450604038391639583631762431434451039611444788057298326816242478061892570371919839584991596920603569153236642158358169258606186388950975164317414550322094077407027948701435970912344088292365431440931105377662150099751500658443988507689003005981997415976922224139969453658059927981747704924708265894457128299275146483909003733083709037532681291635355402910239972871401002715634754112336601976248298385543498904997781876810904005410848069462813664092569975926947574581091350256210768184769044326184222144567343728660305077785416284549882480069612269572045062642369251974800720502108995391853830343537271460754579731586196638749038987605191730508392467893203820041161264217490703601539001214411641032079666310708204239473344706910356638299475979302614839677543688815247823629485856199728131177503869457565778144669342079541965477064891742850086009744396457103599073035646697042598498652086692115566158252969683349185491308639771806128007507970827895684485382852541508683868733460770104680429261379804475510838238392011349673796432447029046603039118570634125026509649484601916245504611826503358477714492929124446497183055238656907947176532197021712998974723048003887035687659427339292655292349616907520274122995448190884168041802793993230728279268685630903564856485404978857352509130808532266085334740913806032033538231059729757159575605885557296317518298518473687908637661022808988332875464065529894420216672512937023163948841907800680497840379430394248099447619767051069982145253642975633898503881209131308621952530763743705525976993778420195173058772351164036368487078079662015399653084809440269598023863406363979643952841230971909257551090659173683033004427138590702625062196137117790603378257730051418925908648797645433809846600365599299339914446770680736131218589940400480136592419817591190536621709640785611490980278110486499547799468054476326133115315447420681544177776562760917271742407245308705397754372696252431179799034891278478287412338882914190196409172916940259599291203291848965059836656256171697323349680955145861835685300856222870048442846686060689130098898799885127746546603533670725535346883286492318678548012108995167514961527547342062058575958953508428684806638624977703632408897843520909546381218636122858718917372108521836321390299276350688772169381016650619182663607922882392692520356505350566214980457079790608690845726821814831385678294097082421742867811560963775324937683567009537882122723403717542303561533190332279140947239575391641962191348470195052079291614368279891765603076929878712484125185154051514637216936814716915965860858046808060152459194747815532907558507895297323424798813645442216035714901314442285102219197352222944538862133253927577640369695083547781131669464932108145617927646578589968259688938130208941470367930108665935902176007681004296869031176968269835009208626200359572130423928462792759815945411938989339809007357085612233452378373679061546708681557991787964790295667320571832971039559372443502723128075477826764245821102909308336778717194587782665455919621164247653640948408938465840841111783097234324804241567887372194307165226424249808845622229498487442400155615929990369710610251146161290662611361334291185386218019656176018832615183863491683804617932530075411623980322498068189050512145765024317973255215427288942779794375185633535203435576661799765029481335576867036386848059583803368985561226975781553619110712982465448215480227737080030564282644597405822578609901795940859237851511355907813907009722266649303784745782309070581985326268483005154288093990804668466677473048625891252286889454948661666317552427517234427318687606931779267010631000050718328519297939873768842047560652500559132160161562241156034240543839612105864032324435300289553058578145181487278211783510418296611885892484252581169642056233399773800714180531423638843005634485655098895356548277976083250912091358100217272862057919833973760746141505773571531358036916924774207698561795351429493990568391382281126800178196723450428495945644840987528153349686915257450040326307344963494934287673566480820309030401155809654689632487062875196550581304774069508836312278729984290527452358126849539751167449649248654719150245124158415317193057585214913173185511255849707309887916656231406878721754252750618084733319947991009494579938013986712829755499876027048147569678386981313494519367855061900911509202684710126930979550415486325120660462234079704356037888568789325318176912928577898357560208575826406044682253421437854652008065098304501576255424632539992169819008730645564669146449857998996511488774656114762192708189174957207495334236327080118738244982362731332664154845422694854333150000032498977195167378788740780337143374683729339583504988708289120249552430268317323222898668640781481447241894608145590003949756831491820897054802302006672098379931791942400630285471612572168763079702956675937074038377571731450377030750212525058660286794660578117553779641232980187727404310591041022366397778909337515316017902635667457106494340019804436023013640126155407084707994124282494064812413417253997996270390523076611890295117624679159038717802386779217893869950044279469292807189864892706071288127336209054273948129195291511199580608450267313910418570331011803691646364265245873099151257427859912276970364892650158611100898634217612728778718374619583211755418216282673532935560043310939627876815378774103944483815636788197004522134745757663412362327650631782198767121816872837776189285818634914705040447459164652602923316582128176171444033026270785578261143956371239922160327304927607426406703509534435013707082092917833599160191332843761365229831234502004136894438146506036736290426568554158754195440000368367543138052663756671297466642054699242248351295503570624122340507606310093846142482763655023481296440720903333142621087583452700871999023347003259905297148481311478140433898541617498622247283842242744768229863253878779742838604737115639806076107968246951509730519361274167235843597408927896032761073678568992123245234890380450989395885949975969284351700826623648108839831780808055725092672172391594948687979479172737673374940421778538484146798459332519983402709270479391221982584602588278927316727756471863426121396810665020671265339794890840124116152512523954442682094601015883028767257780783926613768573723286373169613120580597627299494803363053211018290941733376096979852571389523554973288784539510847806926738994569651781255387771348642202648679019982625281529385083805494002341226052012472696327495143568529083687528446420202509363472547419911403313147848070747471195125696633106982079477017260199538111366043783171691516446804050992407980746973986984128358372599268777653100828954571326470053509933469140014402259452772369969411179256608637582740001363038742761451701623599735061820723675457103750779003662530862895487086712439045127077353188591806427701801615682246371867805426288226904932261082200096483874066582572361616531024820934944037623704863688334520767069736645882385408208175963297260169869654016516245409577688804047869127671683943292464259444924899887213536697600748034718909875123202306256337795691412722552939190222575137503573881321641860755952733550087929481091121627180645914139835983765121673104851655743621395761229568566914331085568159335958374112412652835534615156760041521160512350873156721851103438536278953991953938779765246145543829315794369631115777937092960682882977092536051917964389588261386501122484261982345990849180191032240999079215425017321859029667016915484397591233501525953583822800610589140920697553284743312310220911152906322589555124612986724453495480114779123160073488771285305519774549551867957909590733718916814011789627387217200863689611405205210784086739432785484710515027549828632383973199186969862857530764588223260250004754545416041567374130947280533136244880842060124878633492065260551098434021203968732258266982131735594459014908712898651211133408166077986083742718284811920194528417199887197883720375606759828877727187787355588891549469950257419251386214940013223171508351301903003697945979324491229138986675094359673055640671371488850457708371257659137719385999357879173206288719012682213240284615702113336813562461255946023382035480864942373938706696677098094970299225993109778219782729297846724154845627915849949392307189237869090596350766724473454363277820022948766240670193272157997948830879522752097494300554989680274055314959488006272410643929194745629783816419706585881496690321004952412706746085693684414398258431431618016716513833778692813368748420291172213343486690086437633681137282753951592085392972831711790625499397684387223714619021027750952263704749221440613795950909870247372918298021871994808132389706590197450961367278844854235299902440705996223935016406753985159592505521578881617505494408764130162073674525583870616921265193353265158561495753387145567747279434334294850339826703345702803802117892503748579816915560855630557474665316093842362429400860321912740579912335014500069953147248598819743225543167390731389715852618104860511310762348669813343760459616651600859197822515788903222156753361968272507265368824805862092712577428201091577835487692067050401009737806540877233092545899883961646396861816925479505366997488285861780297778324821422399377384084093721362376337009425689302550512452688236028348732891061602717110344364076109609512794824662572359904191615929963322097042715037509579162863272479708050116683172179460944158374567381417790099925703013746965793285125157691635940474951183860575640596933511027017668658512967003927511531480643245487199529146955282229793919120361965758808386411610263255867527972689113285402765381220445877969731540045127344881606408018961796288621212581750399093277831395667231509055465215803143477417810533213886285732371632499780545539936451021012388281284289381265373355782715206848219824033718533649250383377279941720710066090194430025124718138657636942746766179976356714657768505458674724787028522737123786828051241975764386764027943134127824354803227389035644446230074581642103263421839137567152198773527219387965371960327253875804427169660866513812094641194084060519041557443063907347407294041792189011293064831880784511888604058200063083892141990803496171614672314068877737089413027881334950931420327595478041975674453816857808693342791034429593792681848207419486896708480259685467253015897885098190237705750137679845162671105254452030942096895815259730056437131367358228150533016616716312228959853473303728021867004458153289595888523837464555229128312096569047557147980774034607382528926653486259362550685663338894308949285761115625102712456269853408729412100021337293385356449611346291756400854905564131909921861250810901058263245456742418068009693111459971034269845356194552889261511215173966561139167640466582152135121608976949142924007340291762472007856501038060195963215460845437946376831929034831024855422926012393533244678377333787296007836852432837400489846522077142751565900407543337486815220353945553446208642999900082867346314889055253444236550849710477722290125570599850549372560912322348203326067741579810654811277089072317021996674010965572979447371265855526306814313974262709994579236379026958985947414106798524158145739008505190378066276906038302781907385257819175669546988838677924399986282343781370928597306006560618719972376079066481990642358960172886930704131567059934003620281789590322257588082562909049889674314076459238797853989105891845802963337597390291807894428183215998346305970473539512441654261219253540573554463712067935338865409133702931187129712739049453242978371729130970073222666807397637143630833876814297976404200040997159697496295247536903275394384895260229750421245397917578871844063035260939497936259680371212847910324858737094892318123736659755251451731308894059644524390533599869492635669569273209035721086017233609391840358178992305415079491838159341753984496477422804291344160529572902454141068442210584986655944672334824871679915424519196395157255923019939686595168990869524302840284337260174973988144380895771274370141945109481582306000201843355878514135003633750253922589152399450481774000075750742180523673017192457256618886370139830181459507164239089184098260093031499723925370258186374052062296862798023340694202843664336304347173247160845519003018787354843612280695594803291562256821892443659618914041696929125158002546659638874695845382893205232091810995405881187421101839287775060604600829590012897065375405056557454040264167521317555006006033374929442160392926792774223357763835009701729567737309518253491019270998074130176641470927738906820959908502386571255933595184453596910088914835238474814859109466660259342274168533792476057894547368620031366002318352076813069824596429274704065140129631261111435757173196596844519066196911178252712923204049194982883294679211216329319456383691584338030057020045908719152382240272777652212235012258325107754507904014943881874578167199557761022191659248437900698974312766362766623985241424722157777721824511091752392240238528059376082902527454547247281018681184746718049686816581492519084556488795972438894628451646169130918669745172121431006162087504282706862916892711613991723806142272616000975697006559687481052608276066474329490687428709100956212252771319400207867882614807485965216482441237987787300539661348442831403963300066270449364497846970169771989253959046230801376601052063161026614685190290787202093786836479546109518357119178500918463250077703790450411652064696107854514593744372886084674540537253297344639796631216251877250460054655978377452547805065380896039866201847151922825800337685113843855346080230894330660646218027250788601203440760703957968473281847686269897677195798952980094662162974362434067385952467537152098123882645883359666446404622464077385484153505519008350714923141819182301305587865480655146994491515104407267697188127289388946155205463448038175321846160993789608022133779125708713464005985657309765532540540775496147626480162899357122458070835677459425246460685586156911554144108631776300969900700290985736923580554959444639907057962731921748846467578929690188545057114876885218287421309469050299004133402325532515772257522886547554732672791322858495253101616605849312103949195829410436750496771659232945765042588166261930228386159138541103568788255323328275659529679070691247103143784052539336720320457187619224117926258372253523253206190752007603579342140148955295973820645509524990438593732435420091164428044394503404756059227277431066981122408045385476640783373439182996718305006037907637316491418648154501395595012061254334240524528850464762636642646785718264680727586201390757824450396095078248314063846924306332288966181486149005174912528163460361757780212668271794632971003458193682990636117465781152285703314730039402047225454188678412110561246462271594537027923565492195596836546178524339653589422900736129068262453536285458595997509829519197398225224161634654354617893516769958153169961267258406836669706712329013173036291428276026789519746018216522836038603971684296580639872102785844631468285643930575160860439402906517386901335790520834160612526240298989422434222366452834031500422791124941517597604608821055190402006636584720244047440849659573730962735631749308143593196019289898685536208332017477882960790120312170309364258772194201478884559337540220181649143517840669567762888166779483604697605137727415837637464220779649990278020347151557815409522000283832384573897206018994320130316035475470981339903288359808551473078404490195799762219172739899171623514934015806054124701188704310591180336256520851434437862603617560505348190576765345406331672061301814671597277831691607878986184522613874068528482212771146830843277652516610063741258424637960968373078802001848331578902759916224518087326595026419303319597865201280607266866424038336970778546406173701682510513067701254989059300242413327842823636446910575050783237970822391638921764624533668746457413288036380628534312096619152936970901500199009611785036050450889718051624524813053459519778610554853777487135186050370311574696660323010132391025674326563331096993774421873661889134571755166215585617355099336016385090178182940412838852904105282965239770964145709499052071781434833507858980870436664457424220038353207800856621791219074234791246992838987476072733344347117806850853651669363340127178313764504711218392709875488447388917205872349829379261084101633910026430327668532113345766359577709930704125131004400236213738404839576820231527517894127985196949210470574841557202132267227446710719556177011265379988309663743253951492391951981963361469918723543047046337687401841711786570569463960347068039634616348929456207803864557576069664809912323604429526613645361299937758033980221953236820642700688823299222178818688615323411938001863166526805560418940129202857922545084513185448822932469510421477609729440288044891096328712800000497892184815364365357783224818849974828180939885525333217400103665840317176074181931955857031824585731241786156864378410403342570792896350472227237536989114878665510632294125381324212132037235772765903963098279240822884631357838576975869711045148372688678554198345204407032319434695936399934061992652856685348611174497080155603984435597057297937348023375877837352593713277342341512176473813747348100730388595762034882673152670571876562926342403578727823839126746534936274252244766170005777754930000993214662956071277398874470653791669328451537604227400046252808957124619408514869093394423004593615668726314416655641071144187280658610161736378307730340347667243940592505395518348842451181379593367789683128489354165522315139392712762447716351814261380025400305253951215828057549181339520984636569902402740013353079398755078164837153688797139311066975743878659032753151385539854653827519705140846746020132918979468166885071874273018536590579933816631228499700858412484536640584912871902878656874376747705065543044839597050863762639346145136077513452267783658407649813258991678768445967948414406781117948763059213085457450385784794063231838812645483918094534137170483059923541136743863760297185017006780706208254102047126956774206190444560511215693237730784254116420884950543945247030290957277734430205892817688157787872568055598398878382996349430092767777684989371821421903477822084864620982240308582651535460365254472900941329997510543470824298987067257624452180681231659924289325272054295924251001348910635436679425738722172181640395689471230005606307969949709459793302987500757727767936706029701979743667537028638550653119637664381537271347694332307593365482299496478631098166929525168293238819835414801009786314912849143725420724184979712301737772213060846315657987428129845526137642566478813555059497232920971735781397699433661847095211380094687377289204661766072472249284593132902064314516377375278161368058025210282797184223710297758101206962113115443188417835333133296870456592578044397206907527975732779121034782827470576825023012285409524619117853886444149204672071165640319890147035382563574680909503236781922126239755689960639836432450588251288519794352841343222603107088304350201515317101797117471108251304168373843822760206274882195235651200277653708091762946290954886523390404609551126525396066065567774259828172025307278725979880587172813129629257963043883053647880845961487477662136735422006806121820991110549265836814637655658464532410058250057165127360896950197238073084348139973337107629749233886093713498706700694015297975248531659216678539376202474762833171166199326383363812019739513818801804009570517112538593567607417482949653244581094042605801959536173460455614890765132027881595681391121247700960290462545794758741729399200624912004856823419640048458438015911410592885862248988640586821516248037553436016315281357960114234390442619694209000299166436377603936723232853695341578284927743766972254199998185087917878245895647397110981092297428045587834272670103311535884722664131461874098482255019189390435336040348568104672256485463659814320109278993211954441989846265868358032240573575908492888068261644395013157958399924231550621757347689280682841848172806398932536006925392926984992907174860632396109385963337390888289182669661725365354671865063119505308008645678472372594591948388367810667711935038808371531848524334054179233139844062858171504123102340964126187584509912945371175302219749348545693251198687575755374490525414175017625502030919930918622347084235681964067002003248018976401439177204047589079815266497527630304567332505977128353697036398002833095038930057298239206542580876233697975321879122742508344687764228563661033289807779497484428747852774648646686545053540865780161474159550358523270831790516008598530190084493186676054846537389083961244433787297658122543766092329561523712750308737684913074105188965335015575133601498849805093035249912266125491131572973059032303748662905089367931012509740165568839937575026661503840746029161657092721990168037206251706674181504122909318828531271007865896874293695737252694031328395738683119257229019781877207358054687859924766120712290395903374188666442152215400689439759688857330327520775102741840829578207909572736169609241444927537885869294968604436874103961836004246949942691760716250712762447135112679275451227644239533313388150993290623673960125389411635392311293772062411686767727367824163926946795295784212033584642569216115230560171572708074897850181449880885666006486733295119935988215885132570649251733059658632141570269510302317563936880770777806779708135966775452925576829003845743580216083073373872249126894499656207833782727579788148415008430988787652228832435213196876689699221355512687108330612622857102862823252274813779567251728017474951577029186954996124163609732831454547326422616630007224033787734182513741570279099530643243932127747533224553529344264498880551147618382143030240113416801216756088458477953230244990442772137025426237143576905895506973053337947810062051899227100429125136363000482863843854605474825795177227847783398237010364650263016613617454274314862208956458998746680570756531243253060361355500223817939518486424023331494537505366245580911911357210896300438499840707638954981970514556079892091004310290994457254571272532767962525838343138300104136824849255859524118571071011476564588997248326355686388071747891645291322317320033094060978575400290556015819597944397085008279862256029195259908578649560946395466905723149135763037991154639800422307539716076103016894739907283494333312774251153276397660702561358589749941562837059127965048463381657251889211735998590136047713558000988286684495814756747459079247392587868869439490858005651639638330477786376772220017038484888117192945269472603523180826010030615622867224811924687180496405534841575523173024538738525572530402302531229276806295142076593293695050474695572627705256537554753724302708914375392964434546018235788132118120176410413585028846768026514052891767280665726700001260017447431653148472134257492631091964654679639690103342430007799503430366899139222313013131775468559604611603842036541674306710526535283979903837342546464358824693077910826723489071040638977591149923012613409944290742037150551842532706708578835527712908660330363378410983179227611742973434781940403644837929136409842916343522766280255030741736116794633138285702295140731172103089492509756501059835113128447831051399912261729232175681345924797749553594697027669342409027770531440407090308537618419924675826530067282362099467484695136074328067251678561104932690340919693330258844626477482773338080975204345373770170424331275946241218552368053331996303183416804200634884327988122768358102876655830630650098460552197055261939600426847624435159554185908853763638590452839647499736526141373845838226187634268179386336236549028335001511918817381383149300439483621938517168388447205864458863130044772191027186447663223712666594890647059501566237434282685575320432676902847926755151581958108981348141137976160161187657379107802024533467763740036288768698313506703804112276872151891349991887669402320524646664048719351826155142962918364024183201721494924879078312113274959841149954078224339419991112013182488761396443790980796592446609657388897431219439036410211287004751056242198521110729535033395644244722035904436696233099181074171852168034640694945523589949743986260933228924895966177694235528563109395781650200996360124583839736983205202156669065556102493823048835846664968480646555995640440255971348248198361481052187550305201402189798399658397521872943048552206404668179062540357504847102700194243986096895666472923513854011815299722739137785109366138993854954081251719467443657627766055699371521280278295014190161884742914818684522072131698814129988356263797177205160897827926985408819983072863947025927870513997528127684214993776259072184803800673238595227531574831297477688825496736390108785019068849532183369445870647417891071301784880870244240010878222021709553774465585282950981684358216002533229072814437725103561973457357670807193617817319004177252025285508596624819722610507432626796436484818562393039042456361776703352701463341135104433613553234534903774079796055778119008929455440028737332270918554351940428390608594419888672940688662205839076592841401408063812473076184158961162572242458426899835239303196157935619344858070964820366971587633804804145887667629698738849717527122426157254142947868620750209004530277949435237709588871238674963435422910636971729737085955974792367242879824455171466937314875372269535856530224812809828980658664433805317988156955358415503814952673205444174360098298297475863370398501434793500300535337333815584036595814647746948347261415339626912608009203402650591484027649610662440285089343091334885475920264054221390674650384551205118863480246058325825845924701064161946244003084998193479270678601713060234588152766809476461920658133746098114178662724223759659889306184684290544767956906482523275844461526398081528520954691225661639595037996224848057685243853579858973938090099222584355120105108123468254088644412189250548782930068915465308738320410711438693625340027991313866974331990604710715265851181412708735605320508755611311882944736400379765193530721249337903727460951692940265001788349972107542457971858214983395253040359405339526610976763252735621872006628731600367970915534293584189224622065827955023692540618060965224138736138010909521910713495512702194263438983823630277469523929743638721851221918496800042062541826156753366620220509734343645068060813447791457253188951486184014364480746951740440511424141536077644851323423265459337133137039435192128885311911855259911539449603575728380966981322378887970389683429839993088006523118534343222704803683177304640801830901357587200489357810995879968814179045537621087451373766923673022284965506878589695709342588444238005398124262025835933730936048060661245326323479850413344468563021535018596245579134157631319885984839923039291410415435195933271220797954350771437067779557379669639928817839435320755004959808594644650325546932579657202341616200697180434750721556100919055386650943534155934898935240682155664736845264315302381916625598504942545812297693659028117068586875617592659284304674940698312918890856741134277562719732834161701655865175268316091595540133098118415779016091696712518022913354026877107818996536914572924729229726521064315652317187294330311134144556288997154746253673392774427109180490130593586174256966232636190369293889960523490357098476161069068630627705401112537120113376747101069826997093002776380432273080556291578929530940957244180084141805200035905934321949105695071990312471918579485685240849191138816656819012431582792082590214690030046608847557482575026252276031082529717563565322869892419246665633422187288928704347689672852329009906054174511422477134922884292499435366595725318003356523166559479506690846864848716040820801017288043153183229936531233062405733538463910219010249234418029641614202970190743091244767207550377981729689291061766930192566305170741374770937190761586849884906681479257771347282010521768570180622676427606838400134508778001176807455039731242701841470317036973421769300857572668076100582302526348798706386144374030777401642665695343821589691138274013069009245430768586017035817164426146000828994495947020593029208356043765689748936319585868405312932343488544524885058656414578532752616480967586874682363692321993118955462969009945966000008880690210273934713644694745733562007894413112938018045937129125219988911497457051213638606886414010066305325804561910163313023688457169969517304097465341635731656160505697276193361071490764929076643809957573260388424608679861794183937216638696498988038130904406621383547255765081475233512799194331210458814357173995482510200220725857877114627783709247233948317444908438330874226201720468895505559421906300266800383028356069232259803027541792073308161394113626613891173799318373082117083658442859421467156085972411248516994173042864329921618480753623226826974100429008998983912365148902250244591911974582348564471674204509844150185358463215789639128772129197611969868293309256459987809500412305250068674019255843431546816344747081894667386466029869137587779821425453795178568469929547598603889090185498218344396803298812205202035787105523545200085277157202020516541089795321055167220813115851237178743297758234240914207213227269418024288083611229915192527380829333550581536346855929898101381870072759070437721082421017227137296890821773259580075063045679403329866586034839364840707405019599641162393703059356765105891084568323859878509925152982918110651432475107906180870984216394534430231329577934674367503127505221507219703884880209306013187939104842496140486429379870242308703489331883935489592549029627817981063510689643516827830274458847758072781421231884357249623470820084871213198897895641778559362901264657708131912613280809363777895030727830895794126182341472762098359564383501671858163007287802210798671101939091604560792461620433289223839955294160173948508671254963632731367989147911099888917376895318269702219647174629168476385087122259791196024753416642431785032349816795975950254406986730456062016962578979425664003023546551520118243051990727907378483789674525748507659633581060573737656999538719889242127140454451343013821219650618624357398814843840786295894265069481005844159609407668307771500879256058444182854110285536643310947511211822749803121779221313197399349911479108931051749872492546090470582383041281992736571594772016338180317804554644452461232317743472127050271548399931190779849725677398138665444858293147980461693763390706958039872633022423041844596553684285969580941104726332832652207132696052345959471965149762916110382773362419966431597642203823659556336239731481123828940133037679601306791976623805218339234745442250045138955604300702529666471752487872140149358226900596549839946301723314695356991727422205698841382625777442345386754792527675625634502804960812260403509852161263258417297043740288051056681993642492699328388804702020990602695730801940942191297595127130579755996673229055010521974175425865330420558257572705722371714006254077776997611669976511308870647062836243983455259206106993747051978329404792043395700252341139605362821770029756072462034936876901633979164151297449878815365063139237154058375999698729959261676530951715143467016300302013460335838695425506580081069424027548344036392022959224419707492004849983393569089099272186765833552806563210500738016240484260971205424591587253433158898862631125757428112887177751042291577101917739430034581902054670448803470280494979342157252292591497792540257430553486391786628878321281615480244047819198740146880116475787347274508600503422933501416997474627310805888510582222269922919765407797862516398757371360467309880226884204684815683166248122795127810893934466590673689113041986387484423492292327968427771789742268418809919096488686210598329519922973180240465966264094230918143508897843603277105294640373226689276274287022330135065187274986583487379476047841300032846828093195241272664017353389876114173241042898777583302127539857609821177347545054991237494730513298010333530112794585099483683898257679243420720319400724098632835047338676044638287623671604689911775986195473809667509828338331292280685802075041586350436881861929137162274038820234700998242673272619735575950873773111683120646787838655711725334763389789153280948662615396634136994231606084316453174621383651178399513211185640191950848093164137657729711979874994784203211228052532521795061082852639883984783310883402060865180047828562615729882014415049908797536899758831630690758877388099038680644925159909293613023134709298802164041789672408768457282516272248453544262176936300751495852117160648001435994951718074968777372219709646259594763997262479486147430983492082768036577329049174592651212373021821360097523385483817219006785311308575214389984703197397569686369229975084453064723167534761277507813704379816200649132063453054020356080566351075440825329418888010740959771594629037143831794013648512939876473708926138919329348678763848790829215792470120670587587684673991631286217499234928263476346251408337784686169228445884284081366411914734185243229977351914737379530142137588258872472758366224337108380079868089157674856756507817907193439273776053763139500406245882428952515045591170562081140832253573079439121718408774363438633908580640770943286831131706348896468904586089061718588363368119234603646053378182223186899388523449051230260360836298230745467788282767285233642326167765384634955868577186301083308070414043575151883343942544666100864121017049390140600899010754956475061752157248758308689727284352507431060810763282371487590243493356164006710729418648016143479339311410392175480828963149638517401808481481446640491141549089063626130060495228339305208867016711944702019325912077358295210175047678399093894484940396192104979106456938352550343501656826706546176340711265778221654045564116272936928205673130292382933464699574011526966329809218053358755064385066323254206409464163670237036375633770285381325588857902851993046035391336023869043772113326706386714684926389417964754036332558754750401663279839319585582087859748849875244077861928562557136896927107827142573229793954770195361135566099171652182791408941556246074812189580393368117348301411378655468815904778896324767703287210206903636879390156972593813726721892638697126842999202247402293452176718061776441286132165680158804470290935251706621990962198104482020988751455002678576245587911425375113904323390944121734976160078353621966918291626382117436718277644126620095759753315358458499090745387490417252616347396078630061501247027468856852890625406964705108263950415811692790937957223964116523282086719779113979988603156551798284622486516817291827113385764720743098403729970161738481664461160388186982100358426984004917618656627763190352138707021522116809960058600209583292429480931391145026499628941127133695926855058262380693536931169963712849757445634282366069740423779560317159417500328344843753670518750786963119862483342359704666592626762391755369489209715707560057602646739823373803440293953524997102883629450450178100644071756335998765720064967234971657235747951199400210254737723629187720462173779233900371090241702968882902964367974799046194570110379341701547492212662194840456420543937182952049742483748698254475005146969365517856820122711356882946715256134964223446482534600183177404547920709804052325270367765531749971489822460892812822612831519181361896204253142674599215221588699651909947077901071750098021328058216741322730234750171924046922696378051351665415699010877864183014821331496283268990476193060172412547378880429166601112261542492923220904408557527555263101630405429730138428927457966888572123752165402554266684266002378259570577397238858244808069089447914714481640195285073546489102001186150595097504563743506279863131150662386342414852596534545526431032571891455768724989930948037256996361204948797919994471455996782426002730664861162742104604627049115360032355713602083017510065606237293683570467456881076648340486380539477795267073180359376453598799219700278006727718155917628776517287468533138680356104495478821061994114987586195682095202574383227672485582054250042261636453582709701265360076996790378962877946591479023443107666593333526267917335267443781043784660266630271552221831921088753802416940988723384343940948927863848830415391018451239105506163141021706186304190562255255426916915592651900133659971861944515988048094358403676270715281077794482977491194424223609413879845977144033947846612286645896740191914903090224782309148511444969562792273146380933657076838541023582716074880090792968552061041050198839367060376081422799917203903693874585226087005121339295851571533147750929529446941357903322407179942942337295544621887029743103097138050861493840100650677748032998948423179447616832096938450695504690395647370410299730290109976633759447786838872805657088485653898759769861173835801272926652040400958993082100389546877310022839040786918765804523541384214971573995399636902160568572239383760104741398426151536354338415326076195103844011601069177248075127914413697165652872880447908526925407820294056188179711033375858090569815702149035073057278176719251694590261699011584004445918917578690689665169826369478553884730613933164660327183628230800616633626035299844888935679549386353470192423471037394929394825593509788432259102492068189438002384365648530574060588804571300980629279955405189591934300254067337603598774894891120037032493132311968238806394851015644634716903625540981862885679478810250040234576893808344871621776476946921214041266731333511460026952764671184776470542274461148755945155812542842086328568107767083126956599176716494807921510751249187238541484945999709791844122753545121610195748337384719806950765584610698382679573867503267749877196819903025406590361564577889456987389699564472340602901454643925506631624828106873886978785497265284826193447467401436348152307967800583523257792813606857614409135613102219755081535459675760283881051280149577780543002868773564050322276823456582658936488400627744840041052898743768898896931828364563330402074224979030044032483686097388675029046153392311204435171613691389132999802295465519686030657170844683516202609622462425935462124379753724187083362822366673674836279485172106296853609493051340632659670504851554407001482605794675992068389103268426669042852594576476474320721867732549152874126171251343171580847840798161737044009182740950614205529004888093110834767762123944758840971361175486861010785014374045862789190665324927074272897480873749038079817012470096138930974354434899899733157730116691390475840185697731456895990378191448652052220010478800506531336350963993220965519726815664251754013175681931477559788804713261733900833643225300071411096164948535516588555921372178417784465936641093089152363434748085400116732010785664384380690295839841428740765368742626715992255191232012251868563466488916041938790763036284226261913334686141091793582309835782780694240235820972202924854560764707965921813648960804356167630424766113976287957247295295166980775767141773275396630062221306148270462734260633900630836079302954862680388975865827204930735596310729517106299482716719288543052382199206612590191593000893678451324252580126484892672366794685009876408871180124843809430789453235664789080553721526477802289412882482785584621621185616343614853714441513958514169278478658825551279131755975955763513809293927270991882785219140596765426954745829110561687944868297200900517622768128031294947910185695765922326088994260635846126837784524224815516884778836409343630923275982431774982127721036959790413762304423223252919550277261486998428796529554700609613337902528788771336668123200545225336354358728117259015460652211220665886897331182721490235915930605161196124258189069114403339209774052623712848734851815347004311942112703100902982943311732031771879662557968572590215367808840787894135385760382000723830707430383795760921878803889115594637598900647816222782068197880608133821740213272156085851156536714671354193359676423545892014466708344971854168202233510478153261305084450291236929360602952495435406597304144942326397004294619833203291880509382074322286585620803740946092752099252880389736540881310981388969063135343856223562480380157512475750040789192707020514733050509418599067057885273649035743812735641186578062655450233533217544414002744956593982316835565286461301352078494171441700444057275276566466564873660568055985987982294934723300619028717898273421875068257545400308277523365143352052197963638075449071983488916985474976858177681511561021447084543832879914674201054591590097395012555244304272036909941589006493063532932198721435152756856558820303317470251295897608770754785966626367404710582320544269971983217596648028183548355512939394860181508064428420046922128855074773861637915860567659514631878182509046724980915244398266954549254571388293529542386190601226428291156903986321447069507043572099331234901948039606088899792662510939048274208246288787972009122876559017502114507054457081656085663575780910867428761557342126580608858062392466620174725262903689206398780135202690468719164472959173144192979704192881659082450125497926828945067239173143120143229388855278872729047482080629621227392714264363199373310155712682007433682787100340906499825016099316775822721507087192276217429928745235990143508174272052746431101236850413828104921678653674889113637053383443725405996597391301747154169690965708269634382265655298379388104236343430404971704230985590156178818137026517726458670934396331994376290378781627609180215102633045553051689873522562184755030778783287289944807878710838100125979996208510281054228004920421681516512308448979984718825204962682326427648804218393316075908132864586736091956200579786825515648295493935010180742477347430544980892864379615695716242512101352054603373264649988910730177043687108037019390670197771279979141780971448722084832703956002611905599804763008323139552009961120174191795089678649291310600160762081024884159572254871815639077549201409586292894522432776200132529699616917817602249206183804175604091607287069625382069699674903861647397173620233232642099022804670100912230218203511960654939456915138853393870036719673880989525292500664251596565226578145239419540751379938299498081948571752057093933488963325151461221962631534792431496117963516057931634547079543624001022857065409253860389717013787335242047701222585949370193456732786930831559095746821783241529853374965110903926440722098313495336001620929672986242542624518226137604323224058813270947202392455719133113033989268981909370300022578267447548697365798725732931653791281321058056091305321871427378764853425236400749750965993335198625275001820891651043329653300848410904297348228422409619370042496714616199967896774335495193819165274372665038300534649681591010793216465868499517321957423134124244779414375256424782291033175971949906186213616189651955808024997496306479128724058959599233689770431829048115787271978221728152243862212944106863570935176466624775160181014651330188162847443490581594228488295039556889979719328493776260185158382067309022792599895210104157841111015399962342441045244830420874202817627684369258554487338903744406334773194423315712465782586942633183306202463119081721489534055880500877298473271744100072140351424360582933490318112513665026897105201777453791266607184602882326411467624458333839103225768774818184861135591721313552928361466902373071569174341344203847206206775556236356525653385277065056951051592116151560286107628095414215491332517340827875454546284108470624005513442182676869974670811833257720207101925936014478130106079699147925484472710717515918660317250651883330725844554672345301481580352194188302650858154198990089039505370066501470417556002707415502595566661920151236067953030928125116465764989913888138616010117841523141369319367926903242774464190920561535784127063720256897629756968154558476283299627619271980899086673837858000344762893434178561731342039979726328976341740988756144529516019244022382800257945920010633023676334017019271068679645109312156495544642451993647834759901688761246970352731031941501700721750385967641744309455714595502136097199936670202153431381735816879667023645394214574519722861396691935472964113696625687358865798731999373768759411662755374473624949101632335422429209104032291353192055397834994322665901023365289003013044844506899174681410737344889989072094785445306493188723700392897386824269480957954463819646529583883535835337831543007052388263342429231501828397215390108086175333715621916772311766441495700399792849754838311174335457293293454651916572746813655860422379995614040825066297973608642009867423322179725901692892494000045125474892564078631540054313871382420727818387022354426096569336147823204414431833284638402726984933704697198850159662263776141162515398304789879813019855325911954178277723114548074099335108044010513295287998332747881485873774311291847245220141324390963353957329667136679043986383216565279410760281574096395263367768519803090074010383147017861435536379513705326790132080635208034906051571522806972545901788713171728768371101436649490830680722575083111295411428270256802338270579815699469263891186949876104839595182371851110437759767217292391761206621495562690918060503728887664377122242616722006746523882732821289885057300803871687476161108242757398442729978741530490215612100440806186529678339669459345162649269617790007843746179130928772272428846234597610944345848284833001358973480075963894931627178558203710060824725504127084226315302232187085929842613086461543396585624821411293165033098111053986271564660056386949204604784402990774369936920589699419192091833194883059822483443529341912465174868818866650240570672961764541717816772765192836733885902854636243437911866821865427844685645624342831662892894487173123662858366071692068759618196196149579282630775316419325170780652892711113960917185247050934768307114844076676532586065354848012868076258014407666966479999986042394985207852598646724864105152196530304518023001298414944792004038486610264030650401342333180099730894109118761207937676840600768557335723063125140096746074967167807730458090874325733598887503385628127707251200049445863271304144500498446910488220867961810577199907880398098690964477935007677375436346059114604614079267440246529086060178459172057817835378934477688064865412863800147764480677058705137845937680333243201980125255078412633563136301917945195101321486545146736073737596386931964774843679978234680210979071128514541310082500176203177769502884228325155751032671861244994426533797531609820679189518086898931219927662108995370599487439700888738112405804998320088936538583360018237257615823568150698017496431283633418919475676835105716960289552257917156138629328505077296968289821837039607579682284742517294956481908220904217215310255582607650776428409311533289689370863298527584956234709447635974076529872390154811421639943140733538224021789466809886707019083237333886364079619672265063046064452229558717938540027161325834724970150909304296583038437288083002384046733760823969180963889213541495010301287492107055189917219423468991246371138163483129861118299397812913415676209006837018770322714010119548912611007232500120157239084654942400624745417595341064334235570912518704583415759305829056716256295525763478984286448190252939217317766560649325358438141378656844116147006803818547341786436489948117465250336496046681416762218387510054059568933934608495268174698362563533687491404413978671082719604978346696478440145362213318109367255280979723099871547234380994288925266597398589740166349822760246280759015184616670378922347052649885223893093566290596808213469536643005174520162747661033112036982610655880862247581189082423644780433140539816205928553453377142136815000411584589454666193214177301121258713943891735279049775108120314037466550244417789500705244507102565900209713714023676618500709831705975931071347061710104242687999963417188439575792345751977835021313726241762828977013950161050597740516539143491867925272498656531390584825306292445103841987062496214148964150641960660664309805271601306797049011830845071693149463975760129776814901403721898852140182556361582917900810968660001764014723900877470122925967761853983993556013939922104420955727935273404164359951949162190292113500668617114721261483936465720574776984931143669770201831232711622896730630448537464147885481064268793969107095255809876075551440933147433809869090094991406511275341603596429647119562130457672351840187098803683609219198005705792760977438379982474111347706672144817777675125499138227826743172076370958000478338691260945958377497620002657668395619522131509583721537385701593441567594520649869928151818874540003212791342136058236080381539411899185319104622084823162492229983199090914781512071165232677820823497802095997576124138800494775375374876277883347676445371244797832006948317485267016407775851950267512197053388737322059735754279333423787913143465629767983231667836534932398129280793069013269089935912053772410507690891107183400995782188931844351982479385560246026885695857356099260317359148503198844239976426749572690589914728481995657599743982826891473495384049802231686663341158088282337785058866937032660332942194818278188356787090482260250625961289730250034554186023926045315384202347184872501705824027622595403356924582509864888716102744389062194734732331762031926292712297216870209065201113019849548406583833996501529133004333222744083720274870352171326869003554246817739403673321271224341203226787046712855615712303253937989797420902367214820096649101379652418025525945458477770243724272443600641144367919067307723191813479711152723444921398165139021868199918985163147952806198259647706276525310501767885859850812988734464552508709626175259707910945767516018341906562733374414927849905633799844964818427293588964253763960508646611228399721989440688969134023643001104953553485154354953167600359443249577518338938628483651628323665613719067231679303284211762774666668141245139243445020578001667087669644472271755881756382942289351310350688237531233913925773070371790053699854737905521295045391299108532768778212802536415681779537485562680495354233862704833281438321102049310206964867138321592979440929886241885785591138275634187421026839178527576438272768973379893014065967143662190512066126718538680211347411521593704494451896485400728649819957241070686179005241403649709479654191448519602256744292826860848901515136008306464219696731072444930152527065598249428995780252331433357511138283287481684362556566044378243032875580895078510379211227116137930528061166546499243421891454625703547905888185349433743017756503320051782647978562627262020290954200465008228543446521602615208734909145875603650348876293383342581690161432784859512693110846485008181273257921815502246531381739390867465471594790429066039111575803107558663995809288807138581260938164197646595903515444320437091368636856310578009718130090130999147128781350304416524273103062933352996078180062486175767978867278721981674791670217689991550733090053239186653623090959038460985106729609060108011066708810765164704977990929259461259886948144793839044536222744911773561942293074692695276373415078226962425002758948480279227755879353904020283718728394974888937016994918833597576781490812506979541039375630823976182455080529199672055529962679640425802279083593457401374232818101683225324096521641633391098886864830108536184127104920461697541277374092378390227285131464973749917193193421595361326084715269519321599716158477499102652457093442658685880239180757873212853556641213019285749253878871622993072809419570947705638104984697103730768211890215786250048173494330667630037338187373386964888399481102804853646988434755842316874142352647302023281280338890453452728527032001274364956567906377476732732959701509474030460944064849795301639715394774302106319083248076858786743334730329638378997770814624783354987503143375349885803996150513334268579715356739857489265586506387805827126601104426565430586531442952858561142807486038236905176427262407046846900141883352168261026928206358305628556841539185723048712287720182934590757184323253070342494276084827778915060106883110368241543008963730709728278989960703035564324464906575218619613321845177747283316205754426927430069659437272835336162084506284904828788152476280556644292085159745706840110681144573076313994642140419270876020375579100089265485252957244728934142009731771898042624234256247725698541122394225645641980703052116568215471062637109791953776597090761188466039532629271896304429810077338445524567261364906610932229226018379748172175936041148958634823650788997515840636013688473834769295946576244662336716632733333746110142087773772583484273175211075612152388714387629872501529082540189832890708931782663071890947274212351562216751309289455632112193855164681559909432797749982183329644731347636232146261481877967778862027113081227718043629811315192235421155486292905355609003181030758159306037598521871232639543930196700386836549467286001380025698632409607925120011292202090675978415290172360346328569411337896875788072984656323059166840113776833491568642652114517392481880748163564748075117665522078222038883860355035626020441158279386286232015401329049501514353995787782674589066647549991384684596467775075438942959976934360362361971647737796900672921846034224905047667742828319934770646136987134315664020008964079096976569922099316146714279769725099090218350402895038813763752410205557662844079883642280642651510619993251733302723535326913540569008514524817365216568010987457255314084666774569705143927232966144698172894656738292454472216311554741112975545472817914271401449275600543458939305626990532279131055049854853372069595752882192594235206918095665692405893666986160876950953719525627128722431495724391943458012198969048603728231825094561588716747656385692772684836142270783580258441502364125397654095672332106881254121171554522960807633666681188189412780556744261318365877479278563055034096132842647985232292841318963397819768305837479922345964610521582824675346291863099511051319916000295916815455807268126598884745281965059824622659415635050008875208740669658613165075634643106447037818378153729119365993865193007528721899426179524879455283704591341002403343566259487604729969331745122762498112411866332695088291316034287278492994858687128017731834095330957492015789249135723562192891911717859065674091815080772371152853784218962190371689138822463173969944015182180936032424994136312901470958301688820649929365741281102032763261497961220811861492576345050011813423746752859673242247578378365977527166218064015035385691219538028630953693136522812634067732835940081787108083718857811645419583658560206048030305586533452073716705627053114473013223282972286856598184371595948553099937014688906925147512050686680106056642690609236107693539734825405831527631328937455748218712838266028871663868382143974600667765917330408902160900567373760566745107118393608190687840383626895221844840605527687307227938792597489679235816357567029940540510881824146356245480928976632685753204606533564170611085599549564126883828726051699444943963108082062029497834018608939848927274404207864604081636382931458938901269240607212634916325046157472326080971922135871483399514434922872073793266008982612294910044009758126975883947556112807757404409590689039400206760469693442856161419352134213880854088963096483940188510877064192730789886795038990843502184363541927044324107923446487219091202774181823023879330754327076259325692636945732860362958270017156591761528747202322556376230845001586653276996228520307860549661257928282110727146543382692270141142890994514588460735432134253447348392964978759118548197628245293463268105733641144164130513072061140176015784840287714573401091590549964408540499334986240386599476873829716124194942710745659635623211863527453075535056278826053645591691910806596898233021404257958531004286358697528980570356327588638657528723066048422908106897128891562874421282521375829887554691784953880471842783114757723077028890856665566884074100845274666286949314124929530556728222139615165980264172613512410881332549653787902364965803299298014848935165017497173865268702390235503456058137204037273207698992958055601795867831969589108578799891443732427917973111110955151812862586287561175960454648857626882110592229018735392097128286559495328216774716084379194160197379979928387128640944189789728626484461858168086875182615009367974027273224364159215959059608493032470534832099630201035822989069377663780204459218074433270865616953708512058433747736112025644591394039113325862318745936206232158534179655959700091356899746101604110447182885052254787041175472329407900031342133910049938584132422481969761933536136952576230406798926644127224766964628245523552873981050300235800445060661225138060942248550077755156109413998388443227855396718820907156234484724353162010687508921891034449645985440212466240216276322108481633334751677612213342165281737903920188639954720276629784766892091197191999470935596995482018183192334134040110808789238931283248164783814851201017302126554324592972944992473758112544671495292923334232823537567460619075672898190811384457879566149001138651289166118381037476395478379270942745877402451831613406515641322389068148388320516603029084739447422749749409133186157602158201901471643169211734014346541386153089169729425824101067725981951068601964176469659433014239052942264272144207869774962598666844767256709191066220693076669860116524111027538011571559045932450266646727804083162314704816433430341213430495024648773397211825403415289411853852568338070019420805420192939367725229505752871482591065728854300161671419458248737984125800182677284581321247875486992049691521050209475962143018147145115094137974778695741574734058486165403904891444354421226279114819883492500252252297282408499491796629662202091686142525448525989219171688812624684758205816992701804363189687267592553747633692440468621287900035619703444472611712408347358835198807028615006419521324166582848314481297783250335554199005550143050805709866513843544188147895254863624845523933865259014095767143138306786533271283161923101604192225389996985441539316671261869101011930749967413915945011556987670740895854327453754046618591598694855367675523471873264781599737407036413519617731034697586460174579789086561953989997450182168914976321094543214711719851843474257631685475099700234608332702058379167513029132431478549612654675819116369975195815748231188345376948795758117270125321620164407227917734986953969778024347664933369344276250322822762210169010268148047321604768471932787284776838596791544553195245723869595845849531455739905528415997525341546307647943326571419167328035933728198944295061331908259243731830291279213469525978690837286190393693577287156229123864778691810262510312133044717098890969769905638650206365324521234396899116180303365113022046617570260025900192466478373014001037981668182847173270930330469459881795921573565294901986011631793963492921589437882626635098781553547756954303084320335085533708127794028157280491774169695374790410816700841961682832597819973187271100942623898685815708576269101467674426480311966798567140139022728077401290720072434739406679348722994739554742338467386577378181096033970209512668032725501147969983917293436498145013324857584093816776457199744169930001574455858516077163979722362309097808964832489192242507404473211798648979438091007724904396705344454948221599345370835918389313120565585537985939743918473849960134844688890927550974686575558761600141214052222922888955015080170767826979193931269928957300561652941480760841996661272496561308602343772136817993506647205220000569519642983944715934281471061384753314919433882357973457088314976608021077760173739070443687927735766843038742292477818885596488350255133622900135210053154960196346728593386560619232960227972347712563449793708872366651166592442509290895452471140275455273860619842675152739180815268358102826104374324700307559990026255993058475038202178558780140775019762287341668797571219907971112176783985584605582826022612488316250380866816308413726519505826027590986597773665419487174192160205102803125251162962452205023284803171126955958245937456890568065534123305787359272161888464432801939917590580634131718646660154181316794555900429534120834446945139743765104698017386447433192182411602488939915242358778990104204331752982055737343373543042683999293438977243591771983292470506980221115380853924283878138277228944915883937162142434673081759273211525852986327666902395767941436026615724142573495645898371665937778855046507046092099714493508811553997939674551202443412299654333340389475674466109603160403642928500148985820240205904207854897464966252509520752541219233905816279556758445555863444493775347567995990690673776107151359573640067032834635750697846179465670698996242359323616842847655323130871311325479669109960339723402098138661423923678387569443910906372759445174094870698862293837310337031429187050485570067262936302403841759398055491713919360623812678202180522833604089388655831705478334598295225556806317179773952213750387829167916258789991516616744024058409630454536526382008862223670165510148512814938380386534995145156137580311331562265947050075407864174404378843259564593515103477422065994018784806823446078547957002592548106855222134911459454821029653930674006726241160418056352377281718279033916417956826495937647039477286009809067006577268635989497870099739389666237574675300422312761590828533190990369371380696523939114263977119100780520214837541908096067608930002017506227722266811681941697336543468717118342661777989930555057678030134797246637001509144353574754729132552897787100546264717985352820603491102017426821841959851577428650952813578512875329426012053936809829602154160975858997163010203908400750074405592442885800189871669736399958996524072096558284003267198846810355883583471762349868294205599586057732212869805395242328550599271504686640023863188459608400989966046843512826260737923223220397507548544044624171970987558610693256893100183209935136590776421318344031795604701306927772002325049390890053227109603092000974731527579630441628429899665237100470395358521277713242272023677882148849988149536200797916696943458615654682529407664643156367797762856402405072477126514346124819660542620329347687725298578109694409636788804762194649094391780203305026773789093903568087984153497703806157154789377360680426504324117763992429358185830838525083332440598305706808308108726762828192656621008031480394048583536757375225197239864857411797869694704335505991929454559975713814150172483471193217559599869849158349193940332753421467991824696910181661427041154085269771869897243772351989907468049395139537257200944783856755162851130145770339602350102921226104275997003279918964202079154039964952200658841430649100879740670983463351033185932003147668515909160743278387735135466170504968917576543905138803664238588396484271065736804509662014769065523907872311800078788519136677208135555852473132024596767729109191700953007098962199808131558687467339615417903849696404433110598056651030282247082812078858349275983766315883587305154898067065584515828517756846379060181999519295126554487746436020600285351208654986017549005224122944032843667594305012685582622896839879489530894785099640935738150265990365012400088088633217551785593277231855066966288631147076619707659538189404821311393287379107456104744303567775783365633867091254207444421460313009834052061772658450341911541500688928184452951520134767136456486325169754808715018638169044352752132110321640706693224390544679716600456395869213395339532504293906535715316010530491104619127490252082102503151114905807178509928857295869564299925317237939957179510544034386140100317605791055833447549645461877707606459631233546405479755405681773626853816580745564223257730037696196976151677901995804501219659092783770088967485826939071106157851217933435998026063787057014803924468194576846556944888031688922051102559127223492874448983898604814520064884058404723237984970877860076688522611696021314518541252461980009852844020023119377308014082741697923087700354980206817191374666474280848182980486599485116539224614281768295221746072305541648026543644968901678496017332062459947729754246026820954816655115408003862223843427532546011077944625178482974030383846569564747966125834975658684997002791151324652063036617397459433292113963838792447756739685947624257723108038079029970221059704051796301705268365094966908463177245835815378487682318891198770977965231192508132558880951175740955318373508102220542394836832730707148174207953984136495026205069401943395149043865549832794076174441522708161649736223867182378961382202253455398992175548038455437209158888116410681062083326461937372115741728322558988106457021443382257625074624255877557466770592197470224928673178435560674575364529888610354937260360675155182429445723166993486670274294343286197672691932063811679524697263408762184383108168733306356454296215239695123311207363549598001449609390640963457287475519209671472068150262844903775789877625363082753775812524359937091441342634609299798703958147787393418190989294900866378209388597476761432949519838484978151877738019597975732663397815880939221233505304508606892544646746705628634307881013593926458769481634808165104294832914028329549646934950067274441697988920016603776429932980088525625341819249690810700207756978777063408262999923724744662204417083143208860076882540604326422218179954072046797010628015589804815162812912392852123419104254248640190849167454520513363321967446729195047894101957469567093096746956741079861921357542950667560659074224065131375665749229747252947376647587832592678850683435627469420555964943131663847799978687470418811367863247791471225931141530728284949330944293348609109751486458460472489540529770668545606278464719216105533156629537422071026509787643023007290860558649286078059003136067870214178930066890178099739759687207656182317103028673186103948470670270365580987982400334956324728644420654988037855495677860242923427166812628205211932466298398805083651659279979514395149007419379728240762285666811424190808634277805186298230134149233032170390073044006056960307640705705699602312160246924401488741648255736824568053770450070777304585247370697594560257556714413697385922757496785370866150950493432820895314117037544782486352224238001780858832913572269133365453807468302541346534448238961902986158995619587966844635438725261582541582733528881224801880217528683763886645952388144014578254890186944877824386991652413751981928663704360273892840710631534867843479664617369092994189094107084270994668484003892311421446275323813289602806382416477593878582054792034014304786116174461461037654951234064110710152372827053621270811058182361579527057792599215453059051784662366700459161745595879969743110194093660294291962100433861439034170235183585128167682376498998660776458178372126150101254300240600121482380465819148179817732016380367975032727726411763439795723865549734323362089651353200553774096372867861856253462023850754192609099972257891909528634441248123958786475409588273536896665282521655290289011189969990380272708962775612007932883578304402392691201679816636513370389571487472155722079497615949633366330002791877760674331316509626586075486117034070067584767181875595329257573850765631501541537068900985895242215117298512894764518306529064221743596471477223315030805381115784764480439073087374309360626817587986223620810445173020036614544591881585226804258626538996416062370103838953940783489098766766205415519514298686038121076848883032086734550806259491639366421175504814736677328522681756274798017715035905408757042667337351402627171184493002672659540322235845115551569656040632053833467012176658981382283924662537260104910127825842141722625572869983528435346611452617904685667796981476735937045342599813082515181036177787102696969589318070343441959908557371478600955810275779638144750491192592783205437481067677590759852172513749069040902859367777549518518173225729358257523289086527834977154427610108879759840946602278738739350616830441041044193552005867687355172172076014542682984869292888703828718528660592483529497203860122432034535667150274075055985497335530377347940315259670268052417198495075967056812451593016226172150034603717264818455029658817340944829044147551910687436632421386542036957613084583067770809292735276177095580651763665248825341236182333626271241903923963458868771390607326860825110639496339635709148220578383703309555305625194588013566902567871714282986254243066173402131619505512470118244946206162481549102066521036063714495138797677212227432256205888383767085906587160126701263496792731523264948863426489271369718912844432898397249426507058133329979550085521600956305016453433923918074504280440622600732446342338402778064389621685420283044817991970744721054530610314085604417877507945310607966169249168556747241755769915401579911760200211219406640426578652658770286071094642746677981366604434776981056479286830487104610073727172968128818766377588138570746005525369807267015645782361171053403455962666089459415835294799941019669005779748978876224850601182491344768374364820760070607497580734698396409079368809286758688657094338720600184964490470351325609554779702434980345074927038277277734130529367768807208382183360748704186978480649687879778646701170960234747163317882886313116612039567688140698197163821571820564732546761442022021961253942022203006032899834416255306620893547584500001149798353277966441119861007988453787707620159777969969063828205838973624754579891046836489944025354542604110879099935992884037718958396626719327007537963200800909903296934939384674231156575740684367371894821350199852512386480922840617789676173326276061536711905954250469866801727947499981278803515618657602591160017145055192769441454813768518307997067396492028276401320250392765608730854454145908168481124365187127942481186555980638987927455280986586459121284395478968172123969110826877153861009833556831051259638619785131049084448311672992374497947469802355911719472325622121696859844277692606571065772381684788045744607448142967391793763369829326941649045076248163030661051518872544369001777566536383390135053599940429454633088253169339851057200582365941965210169447093599440683140124029885855708988836899887873976087898788936074187308112859254677200636379856113061981662884651555365088693707957302487797367974502525202315030424031117095666562778482004894865539990876726813766462991599566174113195290533104462224466221626978270572805698165502676141947575173383246131140048765889767584385949187016149764556839623797764876025057937300438828227169837698959640209641006130440507274784418661601620901080184893424018695383646926505664964810155840961235005128963177094449885903045946439301740116636104554385145960471777518223546665359477317618674230422833177698901740368951162128433583225872831426806368379309187664846419626662278987460567760131858262552044243168427372668459550483540974555649670605626556936843931970694796367144228913521188357015723993140842526849359310261108311978909414346117621974036620588983363386505092991356324711904886919446979829241667261450271504735181471592389167522522479508059211886479216612233668038854648217257889588103927313317022293208445544925271697599142353492333434570001338068201251124564458747207781087296630467217799027081216654682239804478811900080421638583940872730271798063176698136862454414532592842114965971920525784273636950061516134411360092047332830473712496061777266889329644137702164730826859141310035224953361737938231913261513140283144659787263306600216383975978089471782593102721490871725661820000515561819804220582524719985405120763251021163779273160652055844585020086895560709216381564441600754106673377069858030616182559959425165308220671329368611390616299332817047851475226703759159448213019796433267318651957902948116299526716418634861957482773026416586880167571677771040468291747499133012037339742764881054949591698529003060413723986935515251551863833557562523093311889888242363258841483993446442785913556222233949830523282817954234210196614677436158860207205681839403315527940007423812469792563628652507186041605499413850953597292514845748071757922945163088305891756722865787318200338259008037067852878982712945788568622160395833712484457131999399617003076425594762349175728832987618494099348397419277574183104093634006996773745517576145963940258513730631909997731007248273979936664564251747275384613001326534152503005559313118713011154008510823710451181261935593408564070798014841858075720078364357283881711831775683076646071062484323764000675877277248232529453007695662484488706363589936285830117725340621409930458279070265042021585108879994149501057182791519677569505568742508811813237690593696146405351189378126606434500176813015857544194261928454689116981684428684076637504503328355805931093784604262048296066761350744206503955222482568937584833366430465464270248392860304695845716959121177743553918001932524137431679879827542462817288128387543152239257353457352309061267927904531356663637064942084509433031122599404429567205597297413433353100228075752145778230023917683927300714923284166558487255566738337567480224431968021087844008781270482131298618344423450977597567980642934585968144057008746627336525761694209544163417640959474199046220113452603867594966818269564150160776042499813585769077926937919450653583334077892675479760046368454334909675645843601452457267866837902995974977138494557083864006777431215415593071786305254429918415835629613630789170367740761901613812159809364325449497154983185240599450650484790927923248338996121023214351477021068616703890567510063630110060495715428508581923365424483402473217476065872928203758080105114467123968716598569169049321822350060314645479523660229208137292236007046977495810989192900970726576004191469641642060742436089550178785238094231691793102343683907360022690891399832014267549488717087161467395755983541701691238844425028888865445394231271701938709475412679240823485211357378321911300247797636414864901534193234625447839764426811837423190304014815375757953290492401018733583220916950836748610910830410076658759143147607683883110973739874373739116853021811010260743481546007764829236834739003317640227224897539179162526004936256374521562133367880174508137329050303377960626919624041100447248677196277073490679178298282453762307988224967571143609032733760414052186401084284418867755189984727005744362168716784918400509598284871402014269040008665493697531219497207754676428499697086353600423347542059025504784091860283738185737247769744934993765673437941266118690217957240859579125898018763010517590782214281584951106804147209614562627623286471870363437943641033218706279206565023542591737526136214928492288850307906121997224370171333779344800690222210917461361413896204646074335640233863618449273178126246007346998307024198331974466112858552906661248711078582947065538838060055128029335087889804523132131633990793731275293919173450195682660455575547582441506821593141532067197457452737007034087761604082118452401105717773530846861150031589240960780463064783019860220073350751613335958405297426959297670807905503319328373830915137551831048169767335414582137514445148607048091872648369153217468906612213506152478857048074878866319738378080189557452887312839100134442792948645382411576433306541195522404814500012762770987724139009405538934760926869344001448737724867644420851807058963068879305609505424622581459997719361002712501183482456024106764239507960632942753216158554722202143884319560266283547312908116872831312274027790147241588497041009147279074473630659146853321026837335790989937532091740387454311586325260085678301222707151654317706630071808412635792043740669989652267679732845821319030065537913545167960062767728737623076663053662430539858093341732618859021962165011294612638479716893044156482583507202146075167473031655429618614533377987351036386063261590268932221791002616293430246249530389372257840504092079010555586023232735664863806962533908678534345992183803230884101476583234006221276837507150960383667866331610664799934358163318942313682986930077954273808456483094144131463605447183741173145836692289737407191329922075821410516028677621785786828984680502013386903321136667807459269048332274403487974797867776165151599862707061917595813770491477365069067217135943656779104505952039700214839921477165359046933660409831367555542151333625645470757598320254891117915522156353124840919489906185616292520519090757025818104942691804550889995510400866553510365877876732158218073377442623844083593686673658116161302805418751011699881286107370067053390224739719267359456890594295728112511904831775077637929182170567681478842622098655584901048826776769482754680699280636670711562077244991370442026528984193300064499103643142073467450536198677769928361056840664234726289966862066474615101957572625049421730041547175592272037741810573935430197974381371708344048054359567962769510348669308144128820714004315946709183739888548193347104035067348125212057707458193285690949881637759057994000593790040448044608639802703393182116725504799561953472182617772083276239875798700819039922904652252875160160511393132788700376917564877907951442212870008883320319859012983776579819268152306695618604645173441753531758909663309193867532287589383381649352593001195272124980162550627820413965245420672590886083899840223728886301359711253546975486667051133855925392233954477363051451064521420725563633867296631833025617473158846218568627740415499173899916623883693085706900424759886488805308062689152825509741864138373698960819811952991259545713064032831814457576716065009236786554533896383898252266393279680363008281927354733119910277449582117982002817235884133161851013330908980791336669565167966969215508605486612418474891235174597056148345264342398027942159081765249501657187397714059290947065303786407449294784365657272195366302076380572988304112941328251216684093716214347276199690532596959985204138037331916545529979236928771182860566572437184471976443769729496409917488815682212437261437667641153768655824428338599217117470673623147438092522258413411287924086857402148493399643323804798807596094739966518595633487219735691686502473391824623367219133466949338615036875448742232715727991162142215913446301447798547037916708937503077191009182505989500717561426434988701701582265413437442866861086301621896495563327583771670473493351321718656101548402521739893654619184815078162585742121253308292012304297016594880468328672913538961011274404485495147237089410224036670183095679989016656887739358606219399929182342973765593805633708368226745007359331320284530409829642604567398826976208935302796451814267801847096726590891026917520124376663085984889054652102452449719385169133911798948324924665799328611016660616859836018065664054611898972675502463701692805654664421244637711898659334943778042306899407264160206336023813572743452736828976254257209340253799645484998182478671819962287503209222910438359120516177627506376805999016290370221366181945168789330035055134904686111421111372885616128064694911932295514508244924842897576589890418463718038126272240404856057678857012472148021463357086468727042296004372229440330101267921294879389281997807955054275737468520917554430457330098156050141631600146030382141058610108674458613343388092057686307107449854405818921912362308709853823026349306496189171346695251525010588776319442259219020759873781207840520977810848150135121556550196277552719579312823497912263004923348364871418432961482177794285894133928086890747384042703065549073088953242022253593932535472339573160283609550273976683809730227262741689077680629762002420443274184580849006288273569496674358009800541331123023314073372656447582234472402868709951617183557219926179464773373337740812189291785321651414931216861382845265550306958784761539155379623242846616003786913765668662450609083988608827046647824928150718855192256824596105094005795543236119720633576439880727069242968013095048347534371293848660691472020915989441461351784626389628932919976543743999604103957496886769486206109757186107293386266397616603161253620473978258337624323217384316632447478758270653113680739262409282309451615584194884877388915880228401450440296686506505330076484199515559203612461735127554728500028264530364792723400363797488168484662544397964150529856319395275498106180978676457329314162883596134838890789271558750861111252481522885456908101814265755543231499284453420381977974543674770635623357120021349185690110413931977761456784130771771618754336060200122287146096557544025270248986278572425669286829394640011213381548315828977530890155175600696258764080612466796355505844375273325681528908755600991245842760619017415585964835890165524763051863943033292847250446056095498405964591682379388410862255748058021117639504828766554027283197596180343721133410418513824068826710380513700031361876606129754891271129891451753673457619186896223671070083844229428502017486256559475545799912434537572306835351994811754111901369065952597651363902326568318686284819080307960653530951680408151340859245804530939140103552181605782161433317950419728823086407753246954021481510040961496858316097607317142365510409168665465241497722271270654963871129893438070376847262462321521358126247788753193537431311962708390588144332228794148749723333455434237018359934053343270092441095191828610504076297578356565616492945305455220732957594843628941061899470987695055822152448718553274080222273314229312787897170529902258062577763517698596377544020128457369661904123711216366656186329154050132656364807997721694539687601083801695669375349568136358699686134092926201354863979026170599811431215288527868340939233452640769252729054325286918582774912242038405956685457587666679312655829040399375498139581373108512615647374984447243036187700233956910054886504679442565615340978607206830797001470535301401792603423539652983863531547954165711902061425784023282942390572896828582299187288486725379567647774680546882305094702335998669586923603027259629203845729622101712574445076519840138074541379626015564872285893473656243397660713205582581288488684921187096491916912942221684250003521148628432221571186878704725186826336550265520867970616983952981684038061837574603047661399501883668724422465309081387300413851726349198730556391944136563493753097141600871800899638439171560591852099572853258044666493410537861100158947584849897071353375767562032700341102663952004584111154138875351424881669668618900089251168874682543982914433420890222310625744642367420771563417854272161233963815662925622470075751363319144587643607325158538170684679691288107307203394021261354878825795369673321334308926922785837057967059836656698023672737304808514213513110687487365649100345722632742999596162898089827095172692318929628892721677020082771744278838058983071719391983911043517143300636968320619166645176395324520997482986827408955252248603905741697471749586117188482204343419467432677247063080720250998765095064459279604895595235597950140392561921818676581333950469931571806247705330119553637456466564027956386862031255406520858567420026657138396136599380514699125763326288417625141607672258142327264360298436666692234544718918750365610463494755796319170113401957961863931275240594510964049195121419660863670737635635921161949089367049665940603703255685900370153539567611917796662254407972986289223989714174760446373734059625580705063536327841030880297998295000244286574162405940606998291770929205603113313096994441421449066740221430646606739752529478004223872260578976489287828002565603898791867743049241397764668620474054256922306229507903091251552623737971384566326545307934614518054254912561017084807905693808896007205481896561406893625287761971078658249608119755722938705779617955151022009622208369927234811449063989206169325075624452637393338425947110192062910177000826526702641780171114799212637169267293165281906777554506453335847928490245327899581996656578539968741043773396508298025474660577424229292301503741534163139457533025721314094174480022856301750424168304653538354224784654575969940909234758763799892457458999411316434374102804504789815779960250018040975316577990213757462464471514820910415601985750985213575529151080371356092162440607550747553435399833016487173874849893857405991376605838317186977107466023921340950320912773278019277043482833476919175317835696286292128607866249481874611189428558468836279800171545517502410893828474499501831970722438680063201595173071700046833135595601083136049677033186208185873484225767274042482235315879347144685167266790974104893998438945737750737301317962781053672968724290337890247836713704967350552875371540952649200495739663533292451620389453407056754293576983762815205674525885251294488179528870334056189553198191537389824473541793682176434147747790248849564760549048051993581391867713789737574618655454780732043041806467832237301573482906591353859359936662677210516616624511520291976506046521837699190922241647951588819938048047545833984343962325120253042231945406716282896607398434057375334657384005853890936903614922696732042590329861200519309990782902298575397906862949152947130931014975724495066425455394780729645011073118174850530826171696612242318363313279472438116530457565486419550417921732949694831001782272083879542858457280355467397428643262468241892329927839381629182810568107942540753210867369739945356066616932458901591620346358592577367096989493326716723790338045570650834989295355570222815220354923381650432953301099026211347244919850266297487736173173261590641134536401527940382780164232378839089283614584122161730273841216810088183127368073787592957711126786623185865920765239226203155573959681099791257038156342557147333779570082338459279901537682499458007487030024750714202201646664529116424952100367836470488635970013878448531537340882148137758430254349828703984528831178717926476209191502774791260841459561718923265749259459123862921596824997698847730037428953080082366843108261912271197619989501066611029645868191489929221530931338273245950149512394904544282212407207125171500332965661788349754205686099835872789082239502777328201905614044512421533997299112576991963779650356603325276175534607903980341123885102606533602835293509991855977158802227007499239675148503480217920148278806163214347737387049831998186335415171654966182015643683302763344362211143190089534877873874873718792189382914501616802565930068947399498065378901361815519698653621420304097204534815189262301974829422581796272500815105178340958603617082607124136697180720466863553732268566907169786879387629959861141111312954121479128486920500529655508110722164320795613687238881922041081965869825679665750798838206552691894531281577244784827319167913436293659286157475632449387182633044460957132971307450449805346471479165569136638133009528167069444951984479021181404599312868477891606026325516052206284272032752700814490275725504576384274332230052048714964931498443009830628042371807821397143481774160934631644090306781631364940166038069029680951668018072571563293117028330220730778673619453864274430238795894208198335702876815611899247176410885203556726723751844008067894449208628070206851812224471109809434742978959721043896076182958454683471632536175808226851480393255204248412523453234235331328637021268989936837223755130518220865069873503589487856651623526774421193050240601085517845990900885098793533083542653942574777474753198325105355342630442807292806974696931158372669087561354170083017291258411166211491692755300642704511327495046186518574166438309030932155444555806198529824397948542734462273961269585205457267810125759952591522914845879686439492566724393366762084751859776413376078400671588700583840050276027786408649549874652054162077462046578296292493519090406925601279484079585904892013354497001700613295299790123458511279356264261942365496835260205088836007675483367784035458370836052818590060744554772873282936748591896078048344563006571380810024321515599938655869093969347488424458256185043545906991547025485717576597957197043655095656151667008618526433533272556922340422158171354769350255465061562532646119784534308358852070149703784693871702443688481421072907276283345730543940675242454294750976501819659597333219393066468031863029329711532430149250954647911365826375969170822838944104442745302280141505569638765785773658371933266259665135205494880472835597483770413694655897154434323444055181567136108286642810864074200727330597382512695740712683016227112286667155140395097667064191092048978861205159936084641227045048468022076594804103938754500183588810416385590144451548863404131384025657694729626167134148033910803024236538266239806164959372420952295353249043268597750333365369869027704727121997591772948744830163768632968289332911592365692565172175645440713265992494761769448922879109996739252085112523871523228062071896521053811184811820362350136073736237548822215964808989197703518184283468769503393617130224150744601304499641572298836815852272959983076921202017960722390320978476616535152652900568207088730273846312735261701011683108432565533873316462558713350184396823863626872765244680724885918371313941001883043774996164141329375453987835548486833426777812187616292822586720860160510980914660041497319328355892515641480853646469464043350583337474615240888541074680027939869327370404766574633708485953531509223620779274691713391936914361972228405162465108027583332604229503919680303378554936081235846667167891969381939490064456086745525633254035610341598436026163724256917377667261738407019732037383837317496001482553929622523533137695394779723345645147001890252916857264595456054978423164818449914325159262508342827877554758800873178499684455159589861057548722441162941922312812997866326255782900386738805181638213050819463446702373234316417842444534635829212126811716917331361852860036616731360325470555678092290613826977689278071031505475281274328119915444002336845181838938759836526163517996132694714491262722292011380975296120450614806395612546101359599607050642894321713448113280135678732696399982472605439878218518633336813491634477221974200228984201236828701053602608420991456791269843654422057329753565242505141682268628043980434553687148473555033612359941554250216836361400910509373337211069390591831907221912859522026046894532757514850612253860266111813071496132634229107571536449594830306536369877453917600794211812679473402876286644398132295355384097571997935259269361828923901148726706465277337125627130574408829037404168678649807924288763059928180074307459331305208826056258257618618069347965846909867249482198793701435786450367447666722285295925987059898094630650937661384302318655694570416980255967201580440853249975748008232811850562482495209029209056192524503987707597329197552942204790741680068985890422593128587765934489076439488283820259344478832890100925685065200595000517120988651124186712906588311540315127341288567594727648390164094758414407929173692834866347544800244921505580687678458019209359559323446874637185614766413352602339589313342179401511984558771852603154021464270128165532744130043350677802598805909421163337479695404417246123236979343411950400084101270214081736814962769613470826238493907927890389489178541946516039051132871192423157902651458720689406458236369073672253069263174319390774844830766796035206331601031772882525252703883496549923165277549900785518552069846675016954283399059447546735702469065832502215844561647100733225751868523887110832514157605172359425120292572526782389026637825434938481488990624765988010290006201361889593949566851791490835347501140829150947577034205934830894981299379495569409769865538892172492361563732934276919815955536750741461309991497758801477997758875180765502689743506709791777803689232844851545099799280026246848215415464772099662020430543099469134726995778384337694095591187309615186117804019214615249259648128332864414849321572249295558508128445661227655064134084263574087487460534601405059563516541012607556606614170278717953297328230728450498384129353041253898294228373449370352166233496195677260870673133505023836568999490094294689107273916483369801102884829521812708195916855532584440309028937441220428679723183044975095697143545713784216590685806796279708392009580700413039313097178488062262825144413321618157936338878391972013571652970740425770402218097945567498160778668001216644682013396926559369283377977777543173390271394104999332406285197395002493514093536632178578983159370970365840376599952942740334748446916285458887932805337448167800993599444977060135947102697594440377265872057195233974100506597252048181982810108734839335937556700965172074142522476521175132211881036747259347507029894746463654100304714154395049145489850476116752082350661985534814898341672827714721108072820615977525610840031242060939829704690363363909380803662663567536932418177056610105911290599895019808350777980292941399101290795785827467616393625416467925716255624363105521564427945432084466168839056250696676555342295467962660548581278645044015714660326273931156976214184252711059666571912768909428165578849975367910401039612359194370779607523937899507872225442811387402892080364686077376392235369137031255487167516084182948763948557252423420132457040819791559218262296061742266738936990714916359144868959317247781464409652616229726693318878004067182717535217060365299872059919401454568500448413627879708226958837722657182692362962340184621346377914001838112633686531864725381093243018995804515474395070586254197774358070023808626546168643873456457079809864580062280996374837981695229797119073936393831437114008196136591131317698513599766544954988945156065263852864933901785456538163059587956030546116185131175983848800715260480883438937878416654184814419783300480491636412537007119462655601263437238007842197534104709053439462428960367126555635490238958581138234801777870518674796188513051553335768630832531954125720062787459482271925714120425728990907697808310699672760111666883694121195436818118035906031180307812550070285954556515952286217384561209227951289887951892941725844248888812816464639381390599056161306450689066089062848655482885992221502287535845762062236781758917560494425114656310091764493548382784055807028677504581580555884176680676830074520605215759370814189587217113058570968428495294747675480899550965025611864746518206677169361235962769722414869235667281448875885487471048805868251618468957203047033289362567882239687775752340839209381898011079729968913901949599086252715692653181220659353029640337821530928444029601532975111988599447960237508334680348732162329122378391988936496638972657851590364498608655562379109449012827147168351899222042942450742183796108946373777876203446767499223865776880670850488548041044083603944879915017755146679641839848235015853821434496662931293437649501540723815777552666812682693715836688121451822195360824909139554040011260353876914413559421899089575091831249117656189922680163224584500211022993595026970191658510967264900586345490756231638989819178094194896666149519666686184182525736190704384938616600613724970980680689317152705810586490794295989048812878389003144022528893061900670508686689753560823080353269039376554421899716691234332096979013378989688518698053052604257991451863276243282247072014070547247139940379819711790970816915530166231623119438187975685577210265943534984095995215269842454721928662152389250537185904797803888115922892953350447518313721398854682275455587272197622421338516717942787805701837681327384691201230203002640133879246140026147731311157991981726949877668740073142117690042616350177892690164048775566207172333870830038271991670450100701008887151184535477381726987874178744941260426555137306059134124282780799297879434059180926739174285341526601165655123702782191798954234556135284689460085687878124663676579163668852368307748150537654738312686816885229591042604238236778993069673164436801183149330455783648715876136218689017693701879783920603530470872234317888984458737693863301704169619066749003996125044388768276208458714673147556147088307275493768819360118942561620199088032118215281620871177975426860569563914820609763947241389487376221846291607018817775665748729487404547578226317101442927952196476187212475017619735917730948938815879789195879180649463171472084801802691471894836247000562349978741792150501138442289035713121838784625038193256314272119465969051556215092240151807454078271626356314823647196012184373577521863835681506422733813294678633350428504234204237990250982229765538384643015719864436659319321220214105246718475243225412214060864475714790238789299773684023298129845630741013178414732048811098416323484097369913068370195483932095340486604791732792669860151983934861742074866686830045572221541323308023766839321800053051735414949275825629486044230027601705453909022646828013596998252180094676607439493785381889231204709349389900493473663916233925649352117191602426274251017417689028685652229857123521408670657059212696437508142217551533606885303408295535634531271967851252411508549250390223694538385804819854618031389226839143808150410393017849538662840474714119178709090918779830194535523799744670597156453795344348050633576234610629556302853826826124587352959018914947561975282353748434769704769954024835410052017295393647970225565231787990716602908161680574718202019708817491238008184936672090002211395291372727646244093820277180833172403860264190906061076266029969861304543745862342937292347468327963897653893067612356101756248531552930648192617318451473308277447724050169120566948840629992927649004361949619033995623377301602418397037689843764012180333422138998385585103500467326121936520588080711055924466677527666148395778193719966506798542682155065480854752861059110109344078386356903911912578093839987796018401710540065142714703023019394291195080137150547805294004401278746695294108795876763888382974596099813649391359520716653540859349656839691153202084229103419786535297814680386141916690596912015845697583437774673843728256016236045570665401252784516744300232828666658772590304821011262168210151204366281736230680919318347406110138470608138416317664578879698553812914190539089747595518077962931627270562044535045793327654679619333368996876185707180496955068156456651873444755543289453606799692537308500460981638027194069642395903074255113214392625003786627252477403104129386512397026719475996217343767744552656145812461693757083244628195734301325495435112435132233546355208149497905889108034700419291013880141401886938539947265323854078523039469445122975958128964482930441597904559919922337734964278049975364290111284429995352824963128296344459023088246220520316095075178274854404820381715712481070212482790491889713404311145022257431829123669590770820020679719391845912689725564351530340705390392919974348751866851947733499700716499395070745956501572912126791708758590513466065458175962304662362759633352656778946812317075010591804032039531549145277868613001188877996297911599263235549293973716031044003424005669864017105650017986980479842811190226787775814736670186660195526057396301018872545718602225013532321930185037938274240866772141400803105132695274882136626957922101237237917459160440180725648733892480231037648221497053196881357249340385079517154362492480387754763663037569662943021497820632329114180219783390375457413756774273117591375885869285511222834382065062927185016221376455894700616082541639238625574566291200669968473887051902631884037952900718156978884214139172271447583356569703410175486855694982287296840738481509845939997827245844720700578022569040788364228405358590418986165518272535008606955310306208627583397773119369732687368017946022777501733516417113113273390220130698886070251545750856326214367672492548214821006875178862612350268876051541041345379562789653501963155403220474224309220832807410284388222154063554641023883399365515521624084405326106724213376943502641921616678799331179156090566619074269114600431267870574652513032544773823061478411345465805267014654562292400567701901100994209576624272243026579432915068888044774147068125324404756575025590539018653849092261118372406605251198794158209463343517314478800795451637461273732030910885588151878396049123690916615520898636127551364366802656721591441357178113760436631472768358873907211564957922577729290930742167991916697003775520552566572091462406139908157042358920809603801419965793444821152950459999873238207566008400929032972377425381840274346739221732917582543008925938457704155666052862767312412296790251528597657294871426078923910306738611612571395065049246696980323224435415949064118897538723079742958772545755852732083980406489925855329484323426495357279528073229932568697336105473025168419624776996169997045829982020032556129496857387268561309349385964755051398917445903916213964162700448831311244184057929460068167856549400846896999240355236450285144204502924601587083190595734815746896664909396132663203411703845369022867595631229076835538303636982993047358595434450598082090433728223713973104983880381706987906550792776588093696568756638577133064267835393139843983178558975529821076284537292671848824949024651873975648660764100631936172626418875621233946882225695769854407617393683522071821614578933960923537682358345074734186715633770292256528475600557569148299221460726147713091072197166250506189113075922223231891765557501621507365204530569378022918025363164752880668633951518220903057448294460550934189039006812290072151491817927594995172428075668040278953046032954996472288212553102463635036898970466938234428053597402183437156330855509421520755718833673560540886044680594870373975082281053568737327014581922697398249321646041145843739488105323381403327621358274284732494391786010594200500122550770734205168456426323503793668862535087639289037067333054747171212681231144559269201940725219677818403499567298820069509132308207486228577065651786281694973673178616048265298138535181832664496950513913366988884554358648528504703821662395624508932808772229583885229584343437355624366119218574544368345468345758696007182731932516673920589678011242052145647834827961854833846742888939882110306699012969078047623355806975137786943434518062785780526242070597035279804001910887230865392248419880286361128550346674543973400963886728205644070587458052872263217668592060583863944587311662776960254261348339326862048278691391838089847051080150656819318702764227417908543424544846735601857713589418065135165748876607404179980437811328778968387778924166912153078490229474411254725981129341148325628544268541490386196649318116111431731905981822799672804539889496790625056942381053230798028951431197586882657942058709313191801036728434853936435374130176457541769972201708170514378785964130212517802278385335845719716879027103892878877155856336241593707404076998143740069945490975595431374516808778192206079201276011937083413497545607927299474867957430720700353966772388785216132635781015659287258282341648319326886361864134419002995874450113485536867161388225761620658341643433675965079602454886062821752923407542458476533301103815256268253430931333871536447396645564677608667147431137123685189247417644880817708325162073173463345467672295459359023036855887234076053280642879209680461662454472994245017810338729399151294444710483626605119608041180614033630565502781111049653857655173859337983096685458314884075161963632389371485751178832352816307741250332640532866023470358714391158221800567680835310287388497063812192449660251011620500855998087312023682712781060053654542227904307175307833996687392750116371702111745780707439709834745109349081648153794391240907137673306766067165757215117260554371007472944786957345825424325666219229277573627656154033195894127936932249789560512451296397434991382145650763149433769194075715839647385081367760530393579708747331196251171364621238393581563458875777927971724466947071245181326132204603559981473368993829894080506585427847151098359569102220541332086359618474023800754275373573582125572521454220581397787958165403094780100731492204840924783928453016141276536464205935484120440653620253707073029635255113092626131947868765280395786934635057623035060188499738936989199698008978153849928462176972929046841413652008170587488807357839171474835932377358183411252381918809166689688490951144618260310391663841889570124239106871853442602538916567330781810219220951774835997122525698269049553608352899959689135398597248959591090685942428583031406219639112159198184075389734548586258321354338271495650863933752727711950250296130189547758398557063256714451666669394594021135168920989098785614585152644652269074685635702854349854661077740513290020101663798349636559350144576987926346838699406079258795328900056023881523281217591262694652366365599881656861480047243930838301401602847087568411541806226907707296308182984358316953697814255424252356798694083527818173514789313770710196405941607413132522506368825022405349125067968594995080243173477208446551129919403061280445395476285297815145492590808352878372655274019106979146726470406814473609699441583981791852307244002675418320408447972542396093196890303957021239716120541147836231681927368316237756322445967245191436582053269583609994134060792674710701036474908543519655560967505047205667375149653245074870428496293951326556890718475181147275557688976614862737583796292845735975718609670816821882890448921689273868669724141454046936189144098483957142903675406476637597578019118769298651887667018683143462983391387768053130115984629030008610240843698217213907070362077957472732637795530561673523175900904959843968962842111230561361782596773280845130195826656040699059897079771186522101340841655637698630842328202901309168230488352324839343878485813864197629704397564149013146966132882128763591728852704662194897022280792244856862273342076300855663498967228942208153204731552126320084962004439746830860032690374646461243318234622107709231189856756653744360283686462994286882580748155383844524096900216351779236787085226466145838725594299738438911353110804428061901190552458159815795880734526307503484710899013532130464683094893190893023120233654449735408137217050420399024322896846683867560761138587741197969027466661676268115905154783516208379080554985518108239680475368315127713150670544292596861002770908746484289135377076439739732621632612405469361626671325998527597088249955533335642562971177332823488029198310440554416509936216908218433652653644194923577066830652007664075799736560227181409328116477457930431763745155154348048906719178502498201952605150458017351866371596155989076995774887799440919374424672074619948745465826435300067161784149136896533171001719928610927649056002457255717823057765539121525558283583982963403930928923194235578609703382957121637423640229907862766448506438323530418341512811005615769483019221706879529255416453873289328406780130204778955351511879237111966331604934202572451158395974722349274792610836228713273164050169377194798049360772043712272010430845762818745679622928272495049209213596116402436980242613998330722852876155012229545000712266493978025921603367819122362218155790912129590294574332352497642605270130125980442575703851354801815728940445769198282166462214179292035532347494932571466066117566360810478008553386538718607500435432010728819893081665182413112538186303679556499913045021463145043555208456899176571370192722386672830122964972143485001865896834279286535990746772711206665040536625574258162708655393761855362193037520332191568156637987877578468545637770119208487580010317559719076319082675712354110280906601430658280409253840216895600615600136734589902020111409789893454575369235637015034369490427273440783176565363547870863403827917661410974264537116432034467235779072604990434725710696993153374092499091097141603349911305966532932554232646637961968853235011132802895562402840148792036238480909479271447556031496735654109837014421240666852692141054491918291139672121767105185800570671156725159465471486210965206308290204252552863654071811426199583022254910831661377378830001858514469206737440173884658519839512621073699677390543450381094174559939414331676796412957989306077350350911947632859149501447344724773153445956631493918981595153225517802883581713010718139502926338562022271433247754494634685038239711628149881561290880696803052193401569821758110776440299646231036128475995435731368860524416817666117230169349986090222520603747594495961333067384222918813421605147195069151739996189693999839905657066562807709773444662234591732402219654445864567393253466392117569329198627067660229020561676233940292435980421761144374875951877239894979400865461251864266635824341580296719047814723218238079976883945731264512129348603813947747666185226156563820066087390968479377506999806313537091599545642044969943553445791808990296520835971269039347701064059279320681174928492751095547920594068884979428131220067374313413996832645525968948527810468404754972954328287082369166288350503875696392956438147434750595747016635400968566538716344382153513465929232821799600354787041289114821668760006840901795930285743286042036764179672925502154702942318539155891867432590266843609608561882646188999030085632623963783977145114249022874233467287569816090701353990486299934266435156152290980555466846155960712869793789687147065933835532023717671416061431986903900797849548331018265619585327386101732630369945897528422391727168796374809707488173316449079459198605824399236571978364202291999111305635484306080473875986304086784489182775140129148535427878586038184672944842658269915237701439485300694384297154008007439513611441589010864091088792230441088864865851919705892147473231384353146384669322676026433533762569730808397441527618525779952832912242732994637237051656119108881465596017477184923491842123448086854418138160217553958818316631651391819076023789784237782943276186475421986845637067946942803659037365427420705359232941472887859533292156490308225127080472189827259182483761721054217691447949522833575736922062013466936151780825624016052870415320102342531164713690023755156094654860972330551687430432761003405723261576728951543737057168211308149380754893606617887706533219412697620731445300989319176452898450222529955373535039025084063919417913621240293569450324232806542189291536144281618346006551381470590061264131499001406525653305199927156222609684370624007238469857833271931014958421269158976452483121977899868883153981071401025983458339071780869270880075810543255041327398927488672035382136541432981238065410522155292401031042031729880367840415871441528582737755676072546909769447965355140722726238776994535429684873434590279426237904170871415008008784206413425385408813400790549386713763412312790064663330207781867680416884513624277988115018957620511965285795492783232938311662263092152279892709677457594850725727645086953581187959839556437033865726422042596148503046157355494597258045515246801222556891081375603182085173778805398915936404609938233789376601934148309310245395151021302866752370640873594041322821188001055920771127182859969299153442642659326210298358673723852649996604218386084591674637338272122500994611133351463065425697361717893197777503532147362182766003094889109459258563195750595990788451711249935900093903848089354259214876082281942366740585775042611115201008047990680885435489407447628942643642731262286279664207697357943861522048273426241992716370356557372393333671294835301223351865400736055590104660862604339247881668843567176634342909222266315296281172295666974795392621599849809682255799069374466732831637676431807242803258050801570448763128936335116840814493095376399316432189331308208188365333492286107651696413601313309852838484575688656812813045152705268864857298770987050923587341430682630858184644336500681875721687369303454304943098570303335405898958530276939835953482039041405132355422306728545936113475055196673845167968520587037121956423769494918994907168403721947717879654087889807301530986542422009791196754905416226242670531852204373407791499833333681729919488864907923965190955001580497545831315134857626423589062461506361622592323251374624955260820623769817884860256731783596014318835587699872796299237600668688577215649883445497557596530858987701284529850270231988893104696634590993146601562685449675713501498489013386503523065344056399583051843336861450649208847052087563927466215691880809422222733172613668545421319954079186838045918856797117120924438371810763566937810741872664706867910372582274165280071926195696284376895588693260632698224286065960189354559278482420380153852623812770480701687874812565723788919862489264876075797770537158673893250769492757196805123642471800442516871714165696089416450830694367101662826009993500519788627667763195423197591784133802728781474064459474669444411538567385877425413729757470341034847155216623315593220457396334554351441593260481777776105277318096818089599674579367632177908414497987760513302871966414322910212117608776506076275014365286889358240603591310097338948702422473305335069817841871917024782230449277160169679594695207888956087963046268428479058742001825466618972189667460290732565195470298539562822036530216426521544301274620964060914738319045294947606896018996207882366032992006651225570919061162420803845356365650686077219016249300965984145460680385400175139713477923158212418871475010408268942836697593419879838841376884749113149361687376960044342184728856267312279661729752163655470053467740372857137557351239249402750104924223698921608026734448431123076095515851328603415518000561420951478177724632779188688202413970405055396351276848176178843992631536495298275502860873267290299676621213455580318321885853149212062881233689846032144522648751741437107532534071625250914495323597897062376226015892949838182916020864389837358660475395634037110660501340433718237043976499968163660352524296108203811076362295048851366150956742054739900832568109314484385641869490571287869963690321040935360353268271648084040334141592359409471037982254016084480830320843134264278551742944434949000169508073687358428081193538183921294125474911394092018631859566533703374743323573569053351946744090532043951875568746760400712251378019000205699149181321153934757087692987303792625522595484719836963360735172388878317683308809379943761592088928944138207533247403854064151145492163426545581825855750462177358904754947253229364245612749010095674479607222976488098742581591968334822081596471027428792325424982043513550071325655681418334413233114255139886123171253063361047189164796131846293247974789109476691833441538732318649586693928126182487485191609130018487240752509577492271451673081776102427564840738289752047528925367995278832164523269511626196093853989923668026118356296362528319006852490129021478193070080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
32000! 10654949293078496967928882853073336063011399232223553942132323470355383206212499429930219930861322410464515764266933823975852046260972329482049241577717589779207129652405527811740171401841262926711761960007149902073996152449627473932318229365478620122018677239484459664505785894139929614948961475597194227516923350958220836300734596713759171798004631103511764676079452826489499821551102998991588640746882791997906766932610938434378420074962204738861126020993729804383142688563180767655354402947140591573918033641575117703170861846911732913128183468692381972208109569204865339995045026213374134191361751482962992722779794380250151472391879404484457837624661418129785851782789163576950079599155933727800138368384868242215291053755626356861166024696017363028233287744349812097849743744716009313797822260480361761769311602452957493010499354779174430399446173375769941681290155288591737123199168491799038758935653165422716246003605429548667925768314377280131277323140732366321822254601118366883358296466592164678726308050203815397490663630868643035624214829123873347479819160390483877245860108802549712101993119383991729282655779485565961965455072060822816739009114661905072659975682877685653009785935547606307790965820124628534981673920645275012825895631648869627422215069794401063208243346643296093884564615000958232578280205539475336652349355298280582997138104726647408205307351379052713538194988855069755538344698543274095074254904633273053079119888134412324230554071710147186269885065874760295995634204968687529066153547028021753394734285054480633137560105521194350522968724056790775814587640698401568879333879724649018911417089556232753272903987485118285331392355240761326503986036203910371656429397672232861609985767791516825194297266647586118456374641587558389069991066191563915273528259429494658870124927698075767261577200069003970433689204925669902739198435078639320765134064331981828072596821765331219016231993164004316346469037041243130432778798520166860590823347136417834310430079592367057898907428694049338048742497979652247038523272106382097797563928615639222769096739682621846912741681663459983379306830805362542220650432245421139819535575352672174722172381269769384578533872825526167587280316222740702231724399641951920360638104319472981081007439318077110013890834220555504367051345048454602479496128220196264874946198559098379749671713822704761679738798997175944337985545783656740256525550913260914407322747045354032828848787593968625979438973514699707738789741978804957930157911371641670083728433995940517266988710258884335338440929136305930457410798298446877021498017240092678430604193462263163254169751658871922732194920258399843479294203788775340779073790938577583510881911559519472426723107361635892809786269055391818686668278817363990535299350263867560482255574344805386879805806960510558541192012957481212067524431449870651786290174940478179774536294139372787135530676052094339306542271279236612811586139674048108025495349403791386198298754505821785686053384605465830338825765957261054423937285929498998808954587723928262698368491208922759321203221364958151089471458693541886819360603647586960683553704616817933673045934514868258535878408334185546744869733474128447065659486567583772831621125722853185653913322774638427166646141106410534891590849614673284438610826827701373218069362796915187562221699917733253024028724331250547240239226435703428290391539151382574431071761653606999652399043020286601955472295509379740216743440682085923441643234260824570231644493978897612930604829325676122208557780236101687344243049383755814902862121902214393252591034578010795569377343896511553199993687849124745710512464473585964993063995008175733195549466770644161821745044218291801125179589918771604862315269874481244732347333811237598621319429854185843631065375509747186230072782409708420849065763503130736271967440791151164203040672610564566669366348627555841280961702045245208983404078565702344046644825247217807916167331760239154843604748493425779216844649845307343056053616849531098377444229628410173974330306107724250871608888903458017023299286875387123249021156912477775193698556394405881678887965309028689334302757226118557428350855216162597883651521851265979213480269380334691674591895567016709642494635246942114702338003396856012982718373470782377821742582561407863323001208335461035744501190080181397867082283294605060520779797393669870497154797484061002990765292175651895180079943071830004443466890823708785577441656887567840557710268947907763883343032848507692540217599787280154208478636470109525505197436871039558809104870701236570063249922540943084633761272431289978932183349916485389781515895094547917120181194088104804150227174829989725871895457582395741976066374012597164132526853042993095739934898325691619850983537057988140671403338766328218255949019366320428922082254214587335193456341307589760398980051917754315768628871585370651963054579121022385154063731561319021281616919485909332339364207677246393277955909532644946779244194550053293802576290290671683443465770410169485014584461673093930806454940587870146013898451006210777176886489022808831258964752747098781345165348096255057221812039112280316630892175343337215380261269092402678684095511822446761670606368167000635567155239493745636379707839383831391411211809550732940591059221227612584078067504531335304020292923595434235154414656009094185566609856340155776730881936265651526822349020663870541307021235379948238322589061220999082713401499715893568173854260846844212187986786448346348907508771404320081400539274032578785663511001429223054747883119955535823232271371715625845605394051443289336303991744964411690131759028978470814373998970156487862200659812313138949734547665877927722086905309051470297953732065495577464749519168496649654523887211505651164435167243233255154230643616366697229266386004267785019985417686714312040264462401230688038989310284451929497073737174874980165546347681814021833313392711454401217879959413412942701957206196506812254672793284272341284639945272473664820457688143686164667603995530347697797949517558163560979628148329386722963577649981150926081291488360634787415316993785217768721760161032790386979967784562119230956513555769736264630088633572601376177223681964145457266986643969761635009912913046917332468924202243398309024898671215953875578849723013506002523879006925113931842455895672361719686713975940138912124251968919920532767508452297816342297175154008214451028922494343377975516268396292635884454999424472248728422796593136028380398518801835784972516991434552358327266891311040386507401360396536386549661550297710539561828258807967689449590614045147883794974714045288770350040020747696285206927668432297550447494073970106847528374456266972599008191989569150864957586048652750102776557800941803519277456618141272903722746949665718702798527233269071326121396354503453544109422950502490595767918888691744576752334123204592316066141787305915768176266822144332769881703533771023663127552231152281711250445760171942986797137129076875586276951910467909057957559186487764509215230895750162006055668824052635225233622167962596113088818789681698355923819981433504867194096164347028975130199146197177556153837386344037366474056776961285227581652655547893454627393702961139565243083468456749577476328152419072735101399092916673574539382633636003394190573559639055038762647291503676382013260569837055400248433779262885538671108376682685102078464373707275953069676289383837370104520428936726712970061869615695343349107888429012112559927600585929281347904424428444821562674200632072160231765998260701414644574936629272906901465015838429631772386087310034417318141707547767232645097042235081570274726608151526930649313171052234586948971087006231788902374410469081595878877124439768908979259074136234896252551694659323761665298646933322712473672408330177154627738928834125338829852836293722043818547113095117608996463944113175477662464787801366085991464121450887531434060409493034351149904728180769995207076206729640246157008798525066547025244058564262061171305413787630619724019389078231271664384573033681896695352594586420506289047737802381051483316380477516542390301238155241740272624160769049676109117305225686723798261741085253299923003979772664999348221806452491695604936948683236445950274127080843280632763021678624786515536217114901523537165796067269120630684108897009702995998999212066337659630953887622375169393363332357831681806342706927464567443426859302185601271465453946975532651971175956813007459569353087200831259630873250826128833578491039613366945546312578305281760221678051550368389811375641622580734545972114055563222352472448477949274402913202023149179886999644897230712892928604196303644232555801045470744842139710387732410400272304983092799105375508814176725637174743556229315113489839851455501883073951580458291986031195671546391274439163065757975793551823166051372799810120590587796737940223277037635574475646957027779830552042643492598709087171098002734085605963951819074869529465540249118208006417708706235022717563976151366119624668166359482160118950131959718192084520041257985546156205208135202726005140371775669169453534760538457110910077819665437182588559568529878378825377216783901170446720588934620478616217974117302561761346323876179362007163318965054359478049027010639848382386420457676127421130107116501206212034994678209583257728433898568588497460908592315221996902762006417816902368106134894437462886772729877731205830643161880929534311531706458424496035271483171872410981616198308111893151395840066858888488195699944373721750233008954193916003406027357300040434854475248853087522622432003878656960191582495142817416400548715833987898062274714824908097170625873815663472939705389181372640271976610117455479675716876215266698927932907595967958018310913703771758039226123846014218582278814911220880495261027596035887357175325126496064656361334585399899929482865738269201512300577407655810363780977465920011692682611287595699780030341754274860540495553457211750324914651918547819614714237924209422053048003273262342963397612036511516478759745268863644627030607628565037156811282032683663269521671443694722412441667003974463633150443699868433412503185008657310074151975772706813106551316979324120081074513690768139527101905415491390340170737722148895791189204269732048975735844187494187637533888140765156883491649716522144099732867974379490184630283824215098016296587773295092679357099348487183357990365960508488709432149025208088009650435010062176164485252443267844296494258102199403578359151848302661647434912020126051409703859645883004192045057896883312100026593490241437012670609653215220482001849267843312422068190774418073839236600693964258088832667665240470272382526824023874820586388280400126423836520459504759178446505592901339073551781334669429508169825637029028354197530224440456119712488611857723192652260944056464256239912588113213720116926533993221680835339617392919528906504447494016661934110617878850759463703616784244476257143605680308392993600344355252407743768040416012776995201403911624719455553292267598658752049975237461311689245052879665254549837143166462296765905590224975841440678695066854908919286243103880129814326298832828749757271015579017240619047540978406842065088174875325684711752137107191805193143731687607429211945434288939734110408028646114857269897365396950902134851445428248096074307490565148948059359848432071721696157514014671629031915352094330432927526510169531042102490910631754054520209849566333524928375365118241850775630629899608336259137591050114277508926541809282173517238219868144928661035465005869494365526203240081461483647342228365592281355264059251618245851157043794298083352971090693866280176776583043783600916017147002733311825531520581782275955435543881164259830934101932730357042859208010207667250004003873949323377966728084638305614067902171122704634135622972055855895810732984137750496944990860491456271350302314077778765095342237630676582431419900297940133696209052432618448464380188821952419569722861515616294732305803422167810373005295034696396877998028366504784899501700511711050288295616060809972516993758852629935684020760185481559285960438788726115739523038198374346490428318107122359882189624701603343516507092624446569880408421925448719230286927521141417363810255336672629571927006445046866043467454893031546502743991649991708014652353557352949917271457322266067004869990637044807390671385644056502085037174925889036084043953880911283532962912446057994943425415502919225479648667361023696719672361861944966965161928707742650935136400375746932336264298853295541778591034544488359300826996437220670870192852625219136439928310399257756215118552551755687325159358913121691674670823040316475332604241333504027406668594160411881922303943432606378713700469099521957430728406860824242183704706450520026405300698889713768952259513644206021131937737017968660259563621176238482997375479993894499244387870053127316749421547011099014801855951435460437001775965719048166041309355694063427408460223332502406351073385580863116180255760400338428641422062006988105760616981317088592945993847228960990346755449208962690722235355370661305872902153018718845259446722329418584839043031108612351873402982335440205927263820556050790620441525516790803977149345624030766719525238307263415396332640352784031448083707311496271310145240913343703044820083534216368106593009168275856730723438540314061681006421439003537959991334984569843554097563523030002197809923529068717440009729477472545402945634371737513290107316439863021731371679962849475749339753423061352918943208843420731504494303400009175578980295594771820226389790637687346596464921913050758457059801618727879039498144204241745380087694039555347453622435514044964288973128364228245378090036362944088905098987381591274627421039837175044048805947507907642050035592137376431500820470408919058240904490125350115192497459127391317928507495758081935003264274852018199680139159489818380808614088030901633206012169492824729887465789990140918683169669881933320721617965278386607761622489694977635756217636280881170835585407831546389776547258134343720174161515872198608352070949435355666806340881963535035234590880302436135119511247302172259470446237463991262820524453619415116272044878973140072403101708001695911539542391344167495745904303020559026823685041676890351872206011167269984933618474445107523124909272332692777931223241213414019368172159521856876859471892204357206268895896411960001148056699846401471811252859051073335308028378897211590454252477119771182525918975343577907092566370867618568367488552750909883817054349415294824922260897754578344304796152950409805770992826877473590642056107469358977421057934941517588453062287242110870733981267051993863490899298360853116012237624635372793909182384274933102349910607139185073946088451159285676939240800795223069223688579706466565863444997598424700638795953618615036204964475519191562052818565650191095480350608053546270591481638036228245316868867031728231236763213698372562021029145150864174123969448241710072061914217670670391847540061312824942894398947992161719748386362527924477099850593744068599713367162069491795238469121995980813113108543714652402119002593057157745916738844757767821082353451848160880085953086632847529238213394306697035330255512946606851698109979939771892062053407546149175317120704696581626750927038466905738317425693501861340793600046659331583227798097243349758317434327201568101014751936635595111688953279116231319487976106036481993316423152659969801786219522936273169355991455589989618607955946889668098882350323275358290020817954623523486631961076860023095468935294526620203621113600281280335182802206209984930375691833801685633607839021423418419676736696413793036689771726411051383319397687621021774227368665461003844744324320895018058197211981441637215069556141817140323561083520078255035212525882742664724271709337191118768154569454274165336322701228024351086611676824367392738151867099689935966979975627061069949043892503821985159613520343909052192386452832220974988768652499085016152223468168391906052772474190696906396077952440554550607733996440642057104249643060037298407612725226314888028206760319928031873106375228325772706856902935757569517246459716932224440282386127736166172810176243212863600890946166350183972610929500450077126283841023255469207399804872503756157472903903481211563373486382857603877076883565019106936512744942158770572025493054575013952914088100501542255219348293602053638066153538264492216720479080780854859227657185532265408971254470670736039941613906979050271637344648179737425648714989464352841817674516585789199332693525775501303676250052581308846111694547249566150516454049881788896275145411823653668165126141128017370070142827472235044722782286457674522723002607043823678082694208844460892520226927118399456874416661433690696582047283550261383584782587363592164527668419007127865671198395888192826875707883313686702867574921121065416256998457467652388119759477311836295660135992433100248718345090471291825310580649748315798010877653171278266909405070175631073334369895886840070475749313512445078665123649962012308761076483116633118329599926676481052744738747988994399887738104078931078308369861604942301702062685797662982874438702623093362259064525341262648637701590938641866764639633456164577082060815817540271417812956576195646812187529784145612276377430314928317188884429600236365842839136738865039508192526092497341026845005288563262877418098250825412126691427915974845029973021045963090139993122773466123195548007699131957434249942113677394154918320833820177214754264814086630590249260334695730894322441798546719011090850341181092857099159249190049028847521649347340970227132134898298605283836204533770026715964301648140316553568419003192935035935381012021549570534505664812121783475303639628675546493901542690274524079386949679002536804581373890703192913300450526334613063638602718759936238739367157159555036870158070350200621893033178021591716765872459123749565891668961612581955872781725834433033523740621076914856083408198070332917264836250090718964827313235075193411530703602379574736722167327214390357431957510341452093716786260225226684020475655285568709134353677837965508808813167642504508462627794608461035403209988713930142902854458522376281292581401496348691486119519389479107664895260576734409726243374248831432542009492561349744726774525200167716813551157452137742070526730136677650849119891312015121657047743025638389990282277250118857184691042389494765615786400149690373412755802960632641124440539374899285220997800557970682156051217240574037369523868246511937993291322803194803691133086777160066707614066520528678402927886079739903302311386083446702912815591114524787977683965544828570486083035434830554679114449888538403917040367906477684621264683057489762167545241617381187001629448265169514516310639751759828480323907102474452673718739155084329965646796508776124260450400999100396177714941738642952070034254471139096297737336049261729908879065095063567146080706078657613340397455496261632977654901488023905913989183044127433082533483630917421833053478861859073706765845636336711756953386971947841093110359106873950677328095403878377170396394319767748866909254127039653097519559871813583247964167245702705298461385110997567453767173956702054391262238133833453365953749839474553186936185377390008455803154923789906044175991612095869167235470746444281676804665240540532826183195532647384807450850232122389564211929089539358181506840863464252976402267531683730921199395398840078413177801526664514312235040087967781193058795726317963361783918939269722177113713707180538517708528527823113709373110655822852781029744499085283848009570417766665938941666353093972339775065540421316108813711587307912175937283480673696595971070485056178840500684476369037427475600712753427020570898306695139468178022314324302138836181567524877971528088469725360954194442200788691210072219377557873703970951539313602268736950927677957453786100968185261396826141721680439905213577168311395565982491916047580210650766488569630580166071463453942354871543020382487577832862544249905831908863624006877628885854619476238733469272897517281356281101061398952309737395577994342456698575347272690799661387472646519763738268946488025539234970730891842882367160100149542861536199068122390146141779551327666890231481435431180110978738323548335424784379511225184060593922289441791244503612042404457170304688365102194779624419109817520628904804744851266748341634507073669637473160461147772070010398072613875902073576913172755536370993655030900498809719903011198207504159606651416920601889762145875625983402436577645262823120229128475581623573474063344227805485344815443285512485798523505528802355673761338758714649039819719846433864967713615256739471088476801924531111335893834821548741968077457397863750477019354387826340149840214505399366492972460114867171567907644013566277147553253638444039603570182761641918948248451583559459843009389615584014556824272739409529440752063802325165084858530765858316766337218256114273757882785175148328417187979654141461182867278402205364025132211484125451048363385013576102259081845232940574136955416706185093331856836895769574491575114051460180044434803117017886898166520536605996218577060261410097834903746664923485841553268583008789653339694098975691233596642788657741613665536156847890828124568723664008576617030647161091451999157683730148554133174910492676494246331359458702999488174352410124314727520082805841998427493536836048024747924010335448190596313161118714404157850074745036640758750860017707382707184814768416100871070651380510669865453795232359190304355967023175417717721834835446224376047619528555254332781696836645857814395222467312588287406081017230926321430482586410246496215046032728400997122327151970336479096052802664063209391263919556788337142196916227208006859189641704780014794036477243805384858928092414248132450377618336900041056925589411857999335112601157516141349685117321064988929202012071259143261486732741160691463370990481110603344645808721162354608608288541470917843705326663437124001634483247416310947512442327231659090355314930618109819579304738389609258479320779763277898997006358240927766119308307532288254111834455151299599155542062874092922037305463358607147564150461166313616798481136630189090932478233977994206383143894848255037081469043401525494654898395351444397798141310404727767475798401198008447010518855083162706734174800558077069735001656769851358501009658882980736792167341232573923261994001093104008317673380136374966856960153635328613282103673213543095740737739166258728448812036460854989222620207975676340921947945302935037226500722441790556906410939796051270227200537578168312369258693044752083153230314727265355150002319670533524235162381517302969765662531260214321781597083650887607550466929152009293765581762799439401287240052026202839877621338545473356232709663802924371664757709455607734997561551896464952130434819430341607308294218143060745825323816910153134464018045213817944218933224443459515640416330922988650060917227176474766174068450971647313965067210083178387820663008802409029658067768152688411915475979118640747561037917784220548338289123442002450862572787553271187055357058754607109714349037043146598750113761509828500511929590518259512061501727212161841252734265662898236007264693197685020894700099780402910722471595142575706390300807033125520761799952185314022080360564111201737203056463428712223768040178955286485223632994621300871726805126456416291468583956530161487282903257441113387688902455687854111638433029288680721326159508654491093782947401422442807539774753571958055478548500100519872192399473728240302876158019893021892915966611059316556060099923424208661344781217799552588252483776898973958204878843517116198886685861167692804301657405097336356838673385318767740762217861702244109711213453579512362116128860470718554362995233304975784697366348586260452063111594097137177921457553044662764598843223005239777367693118216746767213619303055527751025865728779557007036108742501244537404636053799911746942386403179936637775304892885461562095265264585320677171457948521853974633666342263113959913725753562415046858250743941139343840421024191622915856907180350354531617736487185890487351084919988736967294819570387120867551677832913663908899802044321542758543025264162340542675873108058588014595231457171862777017211031908859952695124938836430561484389964522047830179373487722379875514027571798146628247996077285155566328544128566849782956625870869670691780846860350406193605618939045681521961843928229887747202698630721471247945469783933747417088455540191434922458634840795646587801979268009124773471728434845511658661019234306233124787957555764574030259719561014819955261898671099997306949669178765729565096403322247415676024486683625740924101005609985887533383599855492307522102305022738471289367288388914734431109535628631528769007460132860721143028749545913512359093230417793811210502370978431176228879511345143790392880104637761649601300253464540995635232053395060315196519700259141684604776930608399746245762758987824970209454190697031389067710637962337985213559238708448175794915095406026417899843402340842395997071638026079293257803209722940523327544466150843992959614870562863682424823695828850496234636338627812093409973896771660630191618628349375611636943799788423595843159998266958066127410142351747664336792333671376165510788946544125016055515307938999673618808390711548503221686021933503924823489586817604772583700819342061163066858971120560451073860690184325337555084328149568207485303725948158304153384736757248314054205905737733180744978102337109209102292735343654930366833941219519092452385644557771134595320832508476963647503616260343274577399907476516784865776832924254304748638596245409821958319626356336421525864615663156727819296672502962827800506309134945246439344304578805808155789847830895048463234847823951362612471842369308034181733716043917387422938913055456175683759802860864657041792035231323645677492673830443253450844432575138969018116880625031564266080653686786288825401568373990257159839487210517663691170496431978517391938228122692217493198669900445007328352872260415753876380508540399263956667799629318424418527759121628816499183052045872345613030075971230380758465767007608972038264579643529230600140959812029564422091091739727904488008455505142870755635963625684450129836092133727350598423352402503818544823589027069699937585859946779032897383696530112631094296541592606025253997584919560981203358432565991074906242957783579770245888037202193837529018033813558793916349354178072345276403979061932827014495427780157916384016544030572827902913255649525652436894042687137437557256439189718421266527539362629895391929366994413991066929236967183237376399582029514738706671686621878687510680325697238471214819998647130918998652395216885620758244361752177124650347724840517260334668349724108713108782395328211565996895477992228139141400313828007917624819170283437775687729868735054749198398632784203264429385109240111519607550315315951171758742636923851408012666759077913690086762592387817156769922268133227033104312354702553984619459337979352430413287352422563515661115558302066463667273199186556903295472673823645085145566716486564060377125069572137507749352192694064417710031360748344394862065590156894886700846644871172210431188817545720798471783348594297260505425962199987432899117711574635605896883756977743565516624863047524448513198851250043820202653664811430666108939969482536464391904185769807681821293715176838310236365978492978916329779439942208352925289228366265068609504760775178456314207761650972172089258647859045052009846038090810852007688494464413077269366469730323197112688329479714837131613496127547668875620122403985753847323171628250909866924258160894066349243092076079243773311315667829846576153633061081271988406656860731335656390765102835839119501918840615592562358000810651885977253474698933964364048849830501197188468938282615939208962312517550826557032063104968684181218509692629990212157743774625109527591536642355688055935524609397739606132161965692009279445384998814669886148258499706677725419375035384157331166060825208826063822026905544300113831914670327372780620588676002947525459985346178635167738630844273481415655685955973689577067656538660865227568710477644571049551530798668649828556241623827286597349108228266094010397884548689685318440011760454336082938518928596714103050441268564738223842579721717013530380762978306269245020291400961111514650816262391738778069652355421537346621181773551237335151446937918176606108663212206650465809657334142606344754054428631326814738423103849737895015019418808553623271455409585283705053089319226937418733516604740687599028574045665446315906169676186809537910295383327064758526675516326183640624907502783670106423128503229341028790773195481894369165775244062288769309009436710129570834570212837393716209781250982151826361529534737238600405472713482314024720877944470073754681630233619975268616269998944670628278076499374019723163921083895932672888843489629830131416394328940232997888744507800032054594715728503959750458386226876399075229218051050160937190903841396436299970714927165472046562031263673226297713872659293127804030708738277264089401673121280041020921300609174090949463343791372635212711413037869981920645231863731921878432797684640944681038023972618443149678966146746991326555898382105704101470682344614271033335505572891860216824176112556457601112415476975234798792271303122460957877262739358071054055948280644913867163019108346933459078076776691573658355850395137031792558308617396666278481729336302405790596932829549228880091451607177325455794382486456820259684543509246377557549339724796871897254024510729185131193247610724934774006206990107385428498390502625294282635438049574357948528504128758153260074130496384973065116403895463258303751316103223626262282786208836704532309042929095568908833981563982216595547334635353267571458915019795591897929563900414756036289297135574776309591900324226893527656944709475795537124270963730575880223924646699019067746963932622369734011735965641301385162793795643979129942546391353056830511001745732552191515339513020845622543576858952186655619409898137609191960154771235253127609724825322136484229163582049829060900025194909280529448953207747453636902179775468191348459146922428139307235421552491082838000987463217577632501096862304900002507557299682517504596586986380074548775769477859051607051093992416222626412419760883916135261560112542557359096520932109563789146020465005985242407808468960341804171140242376474040784176595656638838736368424239394177242636730963010719559797705254446865661245305804951188764193981781571477594447641353364169052387469719744909808369683696943107580872519508713028804464977370727467414004713668941288698678292614625286871589008732733580487255385817064531856074792972631975071787667000207337654307497394062309989774700708756938975559097851542473202860693223410653414044860743432714997953375754036431277393129342539548097603508899239671691672656430285743694984141308697377304581398172080275569870897115703743595845028355278797688583948350759315811273931936429981859353639754622079885306510678972810434190758633369349558222879098439453942722850981475434114257796633677763261609842401756887012814904361974469862678149759961541276438468327941504363344148665033139199737663125115818972462182662814047824340597362903460131997099876119231737101192311799196279503605253640038207602869081921112297843207353869221203502776382437135978355591625716284625728925033325900904967310111738628757390264793770644953110543483841028498536028313556709562061839593198224882744845755126014440901932003122221014887597765875386794148617132057610597844158829947861987608166628747153320620801667986386271671746277253941506436945492525360166734802137871752281631460325725847278893914324896408548483164222101593457949161442901815571768990510024533445894717986813751087174116204675129362636083653826076202781928524812164353411674526588672350993765747327360770323847793933359480921828728732360748165370900330309854382237717533799489559012817963120035064960745367757449384117530301895866853806223007261323401666705837578233398936796449362821334943524280022538232100179654744789876382404749167408980049616783531488106123751847768484179390004273823050423456593828926792503132762894650202141370598510538749207444949328755638540681129837600765675976039692272115047850846589625900909515878349153583936221354272629456906779278310621070346051540348722608550854602739057695743350336979002407249378137128249074433413254579585977622056929838100465001456291690298409883772697628110601848823137334456407721231539376548017058047359671410052045883532308701765070305862574396277417108382258571761226236219819975912390111624604319165821739148412290915654556463053071277890907390446245424721312464569100075433307797711405713682351568282701483170419286098365931541572746499886291560770772513274263889812977388591445272353534304100452167205785471178082932474946448325491835694101648347552397393309918762988385106621166344686671558510988326947528150825937593069491346582293452143488236897905173020238543481661251308934170382277989792242229770909603772187313612419854900886721205691255554343964519687393290820956014334183846758043757660183217651945745960879394728010015697433202400896535955261048261154421647132700384969934387653146007722013908396411887284711400853997020146002690545080248641741975034808380918165657163298254349294671855833908195102640670397104532284541925038209535326142119026811454864195865980189374066518472460668686447100534479773731913588479242220131851869527407511684829125706801175977917492937742370739804091150546009798500113315067402378109729683991589101167589538878394286211407383588705472908643406341525439419007435191414850049234357730499728351160668718332031371613922454355946529884749038353747164620836503518262461331217702858058581472507390168952441325892663954090945083564584688619468623546801209801886523929239768318630105091302634598451482077573719778027117302610417570729068473133770793168937344616750387606553242998629781138598154293224938674923627604158497973607489561992125149385092929717860684196225296072481878130635795345317367756557618664344806871428500586059324824563340831831768171706029394794070932307740717387494979641908258215841258322913364386982868590903041411465792883976966440364113352371202818126724827329016896232881133243479937504669085016312724439743119666563366153313167897092370574108368952058432682102665485329482667414264893611789652448954842638121286547733448606412871299080064304802665579679550016751295489717103137242842665632657334651504597617448082430689629908797927570741574035688470770113374474500290548177297835962235389398137118019603003742040317488552920732537406907786217859894024514935430132534058801053385982869075381261762719710705409197437928377259816536911661724989244731015258645918968413638123174875831750023977647833214926836742880034473776188980896874958153435720318085887161893042738522514951713855758743613437434429676849982574290720316419509983485049131639821098511875571802411343808382265769245488162859548291414925888004116983689284716703139136019568593188416278515011594718939351516048119382264848282271772559963392793339611417902195553823190010756545330721225037671341163514090827773811189321289052314566701762294356281212340477428304669512722567117861252871665576274291028868614326744300220926762048036628544187871495703557054731988521731598936976636629069696368719385613379919451593757720576832064454185358780771070856260615736690883647116720177626076840367338987770065594888918864844031553119279488551240981491602572617767172519239815934453744105432868722133690818732369144759265815781849759736785994180249122617628633187191562893134489023367361581869389869261711339669602067105515582800250622359910228724025676287244309747315452401128165786767150680266642047880505775869149036472025493614591810977433266369529549522991531051188463584652274734038569283460982005953746804789769948082725126256152250420989031443992315217471700868300143893402108033849991541394660606123868671212030503911931521343653892209278849761127201729648667000891702288875370853348844402303220853779606559362765821386775215055314472805171955275989135070496507005950729301095394987080939921398575873894124779603442819415019162936460592328189718467000500009084105026708907781222506651863241076283596778647372055001236519500218277014984808572853051298410091664808051812175414129118778899336283308606067317561937376871761929903393443280777535315639808631550070159512090107556036599925940301340985741699899461364001142474169915538957388951087793233479335049768548607454455303842550364295577671981708721085668365710734392315063405474823705946232213157773610761399769786630390841040716214053559053066735991372614839904645698240665269166191487314788593746329196697502622730969695753852686408794966326759494803510011723947301603874861195084501410303536881271369737177174585899619492043866203582086521211699520068842233141061088341152939376480617956829957295063889611163853229004280316584186292705848141923546009193611047935564595430814387514829659651506694542170730712179526245959299025605563237017149704931010583121573129222013055852881835373223731778458537131119434457662944683976944161619791305275004461875367638915908260050979511961541503034846534232705222952362076777936219844975896679863407058599680031767923283744102621619406213213606609332250801587402972777477772678771084255320354030731989307617077485145628387114208021772544181150887509691795029148766736260441573792756896600335827025280761486075014479494305775349270032405056436726777569333157328314968115052636697985618310202981476103045160354053697194084648769381320526612291103970818915216899292394597264171292500724203205650935320177637530764120408923543640500596024274887169657388150849072387132440588115069759905650788827118042378518111683979838954643485246620093382076130395514316317008458627602052799566085322718567594268887031018634123804657822110112125913069446578451072617743725176892714907441562488759481597680981799935559342081838150468215184420384048818650323172434821750533980057405425032079620808434862545787367077099575749363578454585325924106009767609432496946345075701492980811205246730482823200301798288590082708935924089648581078903759481797475114208750952793033588932245571766601366702896275507627994294429246306281761257634183014801569332668912977076046440260283168037059536302857746941847319554265249817452501474102659408181240733712161303280856256196753968478231395244953901935483914740888433914646190997961904056317656272618169749194097696622852347184983120546914557715421957919991302336251151147192788202698375860639996426486584566985808088263799366657144920723243952729073830905051056661478956468855946759785075664790970016295686711804185044637971820607612803660632944461309304206656197770124531480058093692284434802430333602904556259989871455713414844999394759643401754826125187828381011204175270171224453373452687745868075360520712728935892765643060327701967082126922624560923003757662194940784474968681871414510777944781813035463925941455302998736977392560818818628042988215243594971942067052967696798259617323077235315535425181733951942041525837749110233547451636772306044656679213518066584844844702556320578572803309688540701826895860373195743623834982414003591767975151371299991867291355255964095043212838856723666276527698260349748373528475480025971753685362171221065545664862594849206863380514887458867949919803423329273494889477812041570876952638645115236900001391775812305798340233861247689004574888487078368833817886548818980719695747687123198150596518711369772594382880853936869614961850214430929777498707787464690057869369482137531602892503533157885907711883499849520588673577940725558407675517913609914712485701122376254161039944168656974850486960249066400098549814935456723354803122850148541492237992349790761734254570167693897981407676929537303939956680699464743599862276244387801795816284301323326554155727419361495494595821115316431179407795232009812598875774028385800089220348740511814311447440568946561237035377248708673015186847759513601507887850581761748139597477821371174495669784650015365741556583257750124336038261934821129706887059833895969506063539528374504354796732002920538716046116569308958381215303598639907528772552271452024680758443073285777468832307642052463401410979586941978843315249210560834693079213692188949733746198453054868109046617484886117393304411277828421025514910225933308318572882108046885593178972137296174839636293221387838046127639072492978334916872907403525782838211349223236670353886698984336399579644229950960399049705297592939136075908715998323135143045834138373514642638425054124826444412863043467623724867952362981902847464517991654243756303295116607310915975296592657982463194051954264786794703657477993708391289930066667619139371132741691610427809175678441795693856185481888013691784935374458776753895449873885694176050686306926067067694478205911601179264881779508182799203668627575737309456237519045704205194357869627901390525034191186390780760783464636509534197471131712903248574619029166006080757963748321215317509318061777099913778065774960371485560467322277328575997082452597493906943914044178053697651025474052189004018736118192891860578864149612309867683876832238848579866435131426142177991091831141341913147721740062272963239462595811285622449062569368222666723771972067798407210545443277063498638147705801270100176421894724053465420627517829245937091465966335544704469882138176239472296748672929177354927246807175689471340115719860725792824760363842836285849892096169941028198817699565042153977771690091721350744862958334208929143277297202578633454665618831921671944071699533618980083270174840985931022268495994401795771730922970320610653475817264179865925294185700560660041940016343936289359634610303121118697487567868388902357869237332392937701687001096771381656279306327679947676010531582849181748128062950470709986404343384464261070770348171322927480419673600074338151138230049173938533250124562522218663188035323646762512954837092161885019788937334695699785275022241240993651965828970453674307275341784897002304100182955338705788134055062081344834007545396514000153750681798595149089066909229998941798421073588354230823698198609780014913240731918953768816064120091004446059528893997797038346596417677125551817050217593784752071727810214585179046754498059446938381052018389648640734689251474010794674094497695073348292081883382527327475823774292536997175422098099771625940028557037480961709967360569608656343976696566436640102118495673725936665672557205213703009045381863185054969506904011631712820977589421759954100073821151758943892533214619927283735474890726700768544603987325883748013406689205375908628258719482824510501649763285557947950509496988519262296629931318149587141614988581572078165496193944612455774615488239408062672255567183184811781654535747252084227394685442853617748742663958444017789250922120763476882223075249398469126663817836334446982046000606596770985565576788802877869506603659483134485912047586768960375612548481239756627959914787513121551744769702261396889814674979446147025629022237322729387891689299473049786284548539160471097550660536031107640728829291792290100281121432190288534753897301997717907815763323881969018201807836640042439339666226195735041559733404855805866778332182530276725902160261889307365717014447331293513329864887508058871402831693161334340790321989683872908325079221384689966931790508919482445583385138512214303231496023826801221636369373484735188216615500408003322810436602103724853839819965033463080677456776407882201992568385256715454165786766919618533470325462674734859116952357192204687751184827547137053116213881691731402913694184288426821626225907531015573935734242665538833499508975231819828820090143561622154445795452153702598998672902482826308330310510523269064125164525188168893117437165138181531740379332030473646591740120902039734278674918787544798001132175763379638904768565997168380922232441199746622278714438967678977533052782411073278451694705493781058741637671222201534488148147070140001305182751158104283401901634069641431061197898778449297285728021559009750565479170790442463680279718659967705232861692475267600260470053076214009333466855200373697457708732538167602798304163843288261549510667331841265427355620224816946099490121757843963335201781333204611391428166723433608112793927680570440482662854515719983525951400162389896965976795609314524201669416751121928063494863911014206941110092338950877846599855603066695291681106308888381932039384734511023901316232909863688524096627974399459835487401345996413079030485939886530357929926202422702478540991311023575679583499969713272230395040110116170079545991710651165325199286477651621433054983155399391234478436646276876958359797832865926860411327107633438725364985543857867990816916453504423419778111605612696284993019837646326339931291162168332785869047503398789596265150564117043369417889450648514416102136948104323526269620753460736571368200659980828877841028239065657053812720874252507521954793583951289414982215665870085088045838478443542472732317535864252018661606177938977994781485401144797230419410470612907222089148511768750056180000648989490134034406422779151835522691575171574341066133474527319585780766093353649758351253947908649265607431720981998813876885408579009829438250899138053181945474139375279767607968822525549994878351427132768652144865113268464162855674966424355778418244232461943725406667030117708702522466664226957982493901925598040978887731587644944566607960144383657856803180564838950930601945298925985190766480783320802623867532372854754303540099135527846765919813413649194642973339776199566681746318600508773372652516603560823666291824453074770091098108519026659331561178639407538775961458605698110165989855440466194722900909197617421982979241787310921696643972346532406253913678546054698192133138654132179722060124352371750041575291223080328345135870177059972186961228342721570877311457934798186801124117495133033540110165286042228003241178187926139869527639840210192253053088982537802851974607232349130898908647195137777289501971450459607298338381982747612546984420639412298961732830363350978185010371151615227311793752316505538621843851394245239752590210665993877228349285969793439243033973980554113260164950506782079184685973397013918202930677116842153943255993797472081746758695757528832588621617730221810918978954304177740564671230964825006269412850483677255531279768481349068273781737216076527541909074580425393407075055943557172560350679832648514087850917761632420430566782523080895897554900974251296267895471186782598569048831756481319060198343625482860979690433691447500412837195546877156716232661624800399300044506978369234706955659436333919330368769902974775072600333530134611094187023808721485789089051809638474897526523663755966351995143693449459706741155605187495074190264930824655161570723625777101296696249742085828725971292023416849870132219298556759878629240370703568536827543508988708117947458552457450855280590274610661518267148574031556761172656411884557418727357791876989351557791932760278466461193813147287357022143413699709241635090846652025268961617649922380611855317752200877101532162054256665635224049869336459192258501176288295394124164600472726870580185995832561346232908556462291875951539620557520313987185689024616291276172285430591118999601234038761328694778673233990719142782327693425729031158027664331880455311380243946252810659244783022219506396221054689688746530152257941356193398296422760347138956753687757606000991927298116678182988435145662129544888300954400700194965535937106009971599851372309684709447986388441859046228862361128361727443641075120647917311244581729329996486699157018355557743698833676551389445013751004573142105151999312478384944999889392442805627840407145060968567832202878602369602488555681398474576816870791568052706629622648350709045582156529066614030174457823029797629649046520974858369867634314307109691454323804576240082805365178293219202900088187024557072324817243004141411002609256670218578178728262917028981382863287948320450634353655174303247194101635701687728645022700523303366179930496523540107278706113680231946732297560084735745235693467717426598918914604352094988866251554328059789583208522287023124564732758482938723205682652528641088031103859573697519260645414191754470368991546881246685722200895376391583182551095504043861528472554434408659585727801312703252828011054080389336539150644991312567807498288296181293013481685137072271512099362032553557711449270904224107947500826555634861314118072238942025672883554622801187045774002227722586372953943558766281384104963533251263458990540725092281373104474147712620632064429213565417973187148962041676298339909759958059702933403939308895093183266327155386529076948131491345390353315617047630081822989810291240295422079240596845029895655240968846360320403794443098364110937149205906273097917961867516724949540244039775815104002959129051154711701581718037526530012504079121731462579537950614352365059057754512293090296825747116875570236158102430855960263014582692558143927307116497950973607402788978907773996521470644275063594285079289478248768181205467334132143882311848545801503922623164458061312180452990865205403442018207669452387009340005670261793294584167929819694967442075214334349163602889912505222014777131911088494182059225705007984251207273704023902686763782757258543166175522692708750053106371071640191377656627016488492630348766116960891344669192554665556164852131659822864618497146624878058685101644770204496300745774203462533180138379926607572785975826509111905497604999777104964517955241590708485417780978693447424297825694887917410815959583521184005206968058480496427023747686774961512473466512144969609304602987113647039020644845197349422397745565354405803361121434485345098462208104180705304964676390073972391948921090111265985847340102797892461606796594618667915022627626959318073989800200779463654871351443859493040078084245795807992311722853760068743493540634251619231466724307481756928857617017974247376510142785002609032171874619244809713157143019058461999332332428299628922442716352223210592861289609169328586291380742904578304142334427043738138061097663232289699508512436828709479905854699729273468042701557598083460419154711969973004287723189003091965542290007622856642327291528498307040324422015932408672363288521026844985810355823837525199403966297959350566273012638455467621231152163369531089722532867441612688101481547108654440590115788898701516386935947403122308985351152164484580963799470761591239919978664351671413792567722481623632059506075785359736960191034172479105166236803481387077702727238046894691538437085368176860622765315799463014442866878959163233252641466299177590624510021606178740784351467181546447649136982886508104742210857209190452353307065574504611403218354943438102689086846549720275185352779446711886414511344481494094746968390558123194510315441528013409387328646342482370555616742465673135181839739978914728783494117686602440509781954914139737152636120655628659731348401863627976382553170216646804530821540986767762440795024430194852545187884633417135110019415095082750128856508252097624437242717225602744220786615202821182885969332515388631957830766770737504835689520320358204028125204045005555995148210765528278528930394785252836260699921267020834289106471197087636313172228064129359397754241412344872688545402651302062701021163124943427237092671232919601229786963333225697376984305534309658779242334751374195233582255309032483989212463324682604774822235507658501887167037684495790776170213109156617800561700572528552907351934385007167504887739149715724497745022443938441812961849585340339256424087545411062700249030117894904423839109292753408372002248611897545519896392774605403589257877382220509869480574176199742211827053810013679437379641804607805275765515764154756113561478702016060014933572079566961103257137117180873065922184067125733077039106585916653351096651944327162081922349978290774089169622381188706357808561857775555205336099311353529475839952374021056382876634249833181797328599760972086441208131120767363588029541152500075353799460282609032155842167401420708665866113531484053167629209606737701075598729914779878880788161001234092879336172943020602104012502812489254970313559868666404760454698082915829334534006252128241904603783034001159615712725589257821461298033607557071064648759514569039104390303938883235460240448150634318012986533458939615476649391740052579927249228402286484924060154826271146765970281185988201750435913065762883714549086854709569898115378623179861287800269428667039375101143563931731267554254310987395868227393456798677237680426929483845953557555159309601557015181075575212933560050933098071543869855154828667468695743141723647092120626831075139247802239462195204046661082597959706905041092860252891351323205661637798115986881445797607661415147740014944153753623731689758655473777711472696517532497522118942313372347262801960301709873157393009028591176047939219091097209726212211223012134930367781166936202922256575350986353848904972688713676740029747078634488552288633965952701616273905427572566500952695758102554240765531151079347728706083424364395353051058556330834173579424483955653738603882362334660831631790933902710199487171545176855097921284066892439670870996838475781877563676514388900553839973576737589086820434437332825275221629081366762900220165938283200126267037271029100266920797410375452968055034425277611936639660472512507997602593383054542190292826081924761458127053685803779231828100707329354238292066375491284154829365532215412943796714870741721908824823252151047138224034429333113541618150589867700602635578458068893878289606922411137296710979832655353375479272759376447861263611768555623076786413942446816891043022441970901707704493399402147965968118927455738827528324341615497652550436927634213695066265983397602100187283794807288576931472651016313152240481727631591112441337938673320973744288878060885627793857808216796802044999778910745897429454420104651361915732149639602402996306736163168938525285955032642593649987174505972570906432206572234612209779929173995440006988708468962904218524469211095558860541837726475638293875233060348034314789423466784101194329665735937928983299772101560625047267056607819308860740245177489378498004003125634839549768127780047654918403525336438138052600782787604516771338047352706897824592220849731409178936477150166504045982052313768814587082929241201946762442359069042581083095686475165464202313235460340448546111920040317793293394363212342299607123526178354005848537835462750403284247304904208864928286887916060962453410957509459982949266149788528135026181980380572102270964655468024532109379194259860897798404550926331899664468899358452384020201725833996117902598582467702127800706287721603387114807653883820187724730850472414559813615806590934862619745656441436394142720780327066426499409577864170147455663134467504327724032920963637817669344663018521850419114773915754154645950586594402842858150311578956690515345153518801841659343662846313540512057543350371349185993673498336657511390846456254149523767521331718445813405179080653700899190985565190781340335498450803067298502281974348870140553663784908576319464599215259502375629571384180248865288082703409446667554896261515026102652122212776914083187709499551574297772150152454475038998994560986718575201660717894409484279765631011601610304587486844491034552226820820571521874219147942273343065752094284699922848981618866650148875407495345011079944872494975044288848215923161039529036965368689742482804985792057139776818789061379126728690105530569779986440478615684940299587139841314757141575012551565288008102948806969439583039743852010476153067762327551117905183089899323846943931305503978143985588302457739359591279426210577552488743457420149082430978661673732583289219872270401617332317063040844843262300066396851990219306798882505079455734129328705219145057004431739998040292538737490563345658684190396638430091979676295347164295679687471304787134125318928506721415966810318898689590572837007330249828059870388134630596556125349632458003594281337048140310997637191232013554681046338313984469892289497365225700605011934538196005867676042620442012117505226698451622666446296691272654173887415268786082193157706890472233975107329479509948311406119919751592741427648748414763411401708696721888473922434582094707911104497110831683313095360355544311866324815546048451443948116910915157016337489224441467975208659222104316319476404256378776510813847376300753658977182112739137730867760759295804561320320833916007911770234298094797120379032101254049518352325085758123716088690237456122370506405714367261307875239807124242114524165259273220965278703757239945631119500354124878017848894071864570676310823969380666621525517205440962955247032432506431281164777769907726285003491215991042492030933564689131878429346464824924643845237565621221135047420878871447275066885756287800597128097095922032331500304141903267475896542313839386495657535128627130160739640157513930740188732932640327946160722404013406060067084771819362196394694376775429936506466133511492970611134708100878788774223161567818595375927905531318176706491601256031968908282716654397831179092029356189801107478833657459053015392599401189019597891284726156848606372042528558326574593135148599184079135721376067019361664168815707472065647459956983625040712869907504881645346727157644333161492580359981380339941666724972913143456434971472525633626014478243129820092295558560388578279829163710639908072493928416103337513974237604596700120860575725400389690576108496425040445631353677614295345987699353718967411513766189026955518215793078627976458596361572223291672815976974166444706711294421899504086056981541496913820364448726462492569585472227453321906666728112483748201298183146967784251153619793737093651085291659526076021385624435018594798815751187628149857806621819140487082374582599797029508473535878595531275418116040744334408007144251659071898061283952736603522552047025282661736820752960365002797945128055275777800547413739417882451143766144554521558575468364070239445540874448664430764275701605847166457121496972249393664556217830468935848451782128820271457776772760596399834216500622656339756955487480829281058427277818746477333953174976219917255123696209755263864629169467974897210822724735114592547945182003260705024230016909619144313098229776505737663304860223535983550104773690747014433900316840888850714067709793970330395244424869057296264694097298352123027734292844013258295608222874536030840710850325208205323495016810603361096907316290671940997696297289926393123424026156093859760525059126838596500375491634119186500773894161511994764950630486476575211301521709205587146902745992122103899289304665942226891532899731358528466080114138516385222092949449009813495476288934541839797682241220412229286815495798559620211857006865091101680187599438186060498767553670598457559984887740897503099266055614810371474091503000857632664707405563578331568098038468509044181604786932603870036709797130131897961724424692132019365943828703076782543748576593146725410899097030459917862181069767941076632025410586114451298779584158528254829045818914609092053816562620525334009509423438491887788287914461236784386640745894211562559589089851983872768104242852613144975050909487720099813896501673397412231393543953776111873107232252528648529192214461124292586353719041286669761123207926656288811534684647089309503356168172217473482773136179390991481096908898841841727110632140637735702496198968328799657837442704481418925140822645746989641708310126203663008856528246243899096646899062914019620777443891551109680507584596877726848388877033486364141941114130570228083251717403764259151423660175795303964987953665266100782308906340472471532968721274043535266377308787422791692241433961823834283352441975814157653117407909551233760137438707715898514583726545889913635328079373943910511834075724037704373335902931504644841709264246993380426545276906269871821853245724571838561798583294210880325912139231071432860313990072654869122055537630522492866350891436296985209656669114921387890800918022689233723649232746284919453805076992429217645079169001549397643587634965660800217727835098195703609289669840165094906921362500976499382205956481933479080315932158742752544049202071532862336152405310454636258866226753566630876713020117659116229181170212012418077998242155471021611327379172710400981446666126344671625562669089713589907857430073090164538957030315767535594129001139601327132109546675304756644357848438429542034744299600014036748240875115477079347117235910018017501278939529202442963085930405464757528462317520956639119543010890268804450462758660294889497036514562862408462945002471798499727745370577145402022211486618077272145641491101399984181055791793952579623731412552201558773136824547755608841079609504347425592399685489787611053691368068970348110822573505429445811836168015593479871331092703586934486707508267277866396169785716204024393163916801204662446475975726500621196877011817808494182577968496676734177104079736405108318753209391348738099943921529930398224568859103981270194291906765006175398752256327476417021055496349496359535255654914832648801547030063810121894729959443521196934670295352553607895561317250752613079330666207927156115721071729288476052520758591097160470739460555287844938445176470125585469349180970265385751913939166694126388707571128711450552456350041407543716129932335262058567125626038471730334249683526698123165070934730739256552314035241950192425938646281775131720936304604430411095955690085911223479207065720699799662604759983608416486372799667836357739942018446040970004923067544076458014743325423175641708859128613984910074398544489029681904243695472891792263408754668399789987096513247979936861981527738416797129044236165614292980095045179869591261006060226934747826818966273539191936671329799481421258758955764820419007707235298292033888510998368033836674895974702098286849533668050272472397731781398311369389556745104398436170407838043512326267923916954197458446545457291876143551307300320337043732663382170078998359505314607665684479798424724592392334844411814926631718982641169091068014819495646060941436165926407092787604928555334504524794730654211292355290261124460131088411536058516990162496307406309017951462714285069572887366791700690581832893704332030523963546488427444954296568435100649643747589001418338342316323323733063923220949104854989276413871912310500587637702996083950406007347250451802693312478553160792953788360134897724119486193532971307378516689902979645709360854975618312281230622934601996354218740088118999358811423033484597329151301094127107257239341019778830411635725241596043624514585899371222404911553745235803365355340661909478823920398866636565190435046682147367709121781342340739014215104083963196160910371587128856517830346686015132030960754205979346672342054142450554826653596168992785817343152824658475199701411663965723038372106608573097472243885289413609562160288651293298564174123677732174075099180993464193813625713516716466370092888753860972943104406328028562288307972387094159138343037130784304416697723389715058025858278857826928043308916490935977470649741857571530396874100145107745137489897400331517663038746348128943391696187100517203593859256101384873879242776183302132101518557530957899495002757320645246232399753386455929389441418721252487305647909368757193310722256664060671268580145595517177105103056794436414508974351694160032706506452558357967558349182660213880086805806801127618488967150714473449556984394770790065988476603585072118040066773314636940488771807897795088343234824709670654488160446772212395264280691993769259857451914563890149542920626664189475132464622147008740891999238414077184351692898715769843171726254719825632862822583527289041104895947429925184266408084808103265277061008716076980838193847479828850148358185702526068102607922305053248890862685707735325138627896298030012584349896633576379913212659935788491424040518517596576972113739544311892873183458313472955820916478832757269199943031267484688059910310491178174164354119953269437452175876192748831039980560858583454246014143317412797456070640191961079401757700370176504944203609353069694628725662110351805546311873710291303851623174727774650266647361829559223499502230322857695053441146195810740282527459959823125196642938020629297257520871988026143744056439515426138781734721232998286119535963986800079502979023533917029062286621805269517222728954943146434911540904823222455898116684839549700348944771106367806690435798155051755095590861981580299186512604928791367514747643554942821088557543499150313836350276487118760715631550405275180442401363956197400035478381122044694508134606392628143365970066143702727403203689779674121213015538079681611149274343833505961664702333251758088812237489073542963127681040580538105870388255898111474352025862285788782511198714659516399696654620982413407432625303069204373992395432894218578404566838993892169460895326433977995077989697531780850693034408828744073596491338218598297725425646294879326113979581562478242391409733895143889679380512680772565136876434909020991573278209460524982330870211344416744476387851435824781658440608299837416659976771952823196523813141214623110846846492582620620761788616148978714123751403376512807124972584213447067098366297838578591932123095159986470632745989511767537856651788908964026741018519979893220098948412008235234757116438547014045617654541036396379335754006667123308866166736201777259889801016458286470916261062730615099971784473038522117995856453614086451418394109398372094964985473872713811942354076837298432562286545206721818766459644238483126545390299300102008360316770365354951678060034091129004940076268518092141966120708150800020576600909564667980842640644514210769299486204324341437844291092605479674919103196587129902200073305909556048912289171836978128261054690489770186263496634684987517148514062516465702845713544624997162783597291306523367008021605235885362963778891895426027079024709304582544696231862305772178928825478964124503802857708991724056641527902134341105374590308752344880646312215975989757683578726774556474593047355838543038155901437415854470536098726075041435400254893769125728453709567434497719649685635742938420061754007719165795901442932061170296593478620072300038275514100338846901243571873101513247548157280310398839337930548802490573919359047592357486039213447959190613332318983034787281067350126071149125702687866346372855484376609747864611404130375933648929803182052544782066803913018752866249222458961202971578628392806767593534482851004834582787694799303152521469701195690806612610243304877774124620052922783189381734219197734418333092845656395680304130016226949921449008105409163230937089109718026412511405251315449936360120575351428014684741175568152494898277595774398983714581998865677439979370834249950179166965971555518261557696447009330839324562372040931315027068926680926865800125233286170643483166592797495103746524935496890874499515128467897292353715436932416703273393206252038865819729468452362381473884877003481304059916508707422673141759017329142219010393553743845930607646730196786470031374065137702840216885995160393226944148971256689801836058523779458690487889751024519868316025363574157181719007304791346606819564787352038240491303087866065800667146188840743229013234404566947205656400966911179855800000102376372510730775408613807095077982029219094884464558104239861117139582566496704541735724667721299396073493692957767144637757621169495557577297000878851730173010823744619320039421175961214171437019231413653905460975660026571366912470873333404849157425541621091642366974352777758549881165775988244916946464331913224613514231027900897762223026879502998277245789595684596605654213130118096027002620564884657124773590605958079406354131841175530259768164467956136635233022675904578019518420027947507921615517425856440288411067761017927478755444945774102565225989986034199440683822525783007914570753664454761590706797095359902547968981365501015364327094565369046398349576014596930369720827574634496731277851154387500991324364609909320192995278652990462727862130736019907777658291212308498472462714130821410023746597705994137263716318192124061705929957637101068621238426158866016339511058959575030859900517613699218344417156164900388337490563238995160229801698506859393092061506815091243019476873933556304410349073115609492864789136076421111780249225210945188368755181924247399885128105480354101391065143655876563809641650292319594444524614018905954042238415162063850022256457427018153860554503695058980155115618952206043480523926124895179831530396075519419257794402572540339029467141566796920551379364628439025907794645078657065111516926722309778862575763557328234632001344442194252452530324651520372487003506667654755845980093858547480962852192380630900783442787245431512604541227234820167861389211716750868607212543697167781131434452189349293375363121024634421317554883803912900721806931503837891987662258382789713610306154517278205252756903794794853749045968996552987487284902950256950604086961449436363310904505936383069395306856544308406544258810533469632660338677636577226643210174937744934291253205668313870954342099753668710192648322002637637074061061362881425828658529056111312836094009350200725877869796622813283468594478029044318292649398183192001170134782240368276983411605441336896323223945551770972943757666230263368574440332835901758382330210670608882553140117837913725225738824374008595341613717930755562912907700713508236627231260194313997699524393689392517532649494884061299247802635757971753954201226776311601342139915773026726646126532056262610510334400286697067848417434038820783179441828781115051145857162780705869796089723254071473002448284038898749091822788498773917426366460847791999511725504055083292659299938621342011902812954463219023801521033459821886245427842980244680316523052507718254742891227151026646350147563614279722949971594735615314478667813651348019204211939254085816966099529701536239356974019514421961016291772889126055867557471285952460104821244456867943372167416850757754176039406652968899226558101222704405306944788622251212725620991894432165549156051356768160729501750408903348169703647112245245130641384895934573335828799274764887789067348645778542238620947924533453140592828142743796283900483086828085795508272223237127031803981429322825559921988769136124530771737965602794821374643998766610067272823543623133231788983238784047543669188162976732194478482104094505958801353196986897184607671637826767837922188432219759340073622227864372569221819193646609969819046182288019314621456560869560578967690364338068338754495220276459463347883296461659608881398902729987883524033922872402690690025762125165538120951440453390498852724484276996089052906945939598020040866862745860793517818299040990490415791811370602165446120130231875635239334276581453713046860340535862424358547677000399020128452562221000863108319125683847939616335282904341971283541415689571944044505126638180596659610413268592668648183380069243562980227403163039412705728549717765143827059058359819480545162419091719380797508922417022182343353429442748789326282998887913522432866380487810104246294376075707568387312489780629941471854113161888744474598353684189001191643587380232124363124809639623349812753987015011101127767407815040887988105367657642181256861382826512697130388511034334737494185780390634267623419782889324231660295920466854766030341004563708055543311209391872203607593423670410785809316079616907439132542034275984091676284275851478732675825238522944008858374103847709965255283428891751312054081958650052348923149967028753159981035671300831669261340677404876193419952745982142012483657078914584424321397930359043589554049412651459781355337844354805973400458144056887250029815782991287956595026971972864228046434940964597816596392430388603921154940149590367693754773246438714856290289526801573226987257244054226806444771123980660969805065868879876001820654755997717924577246825265735851587031624059193901554179092492082161037394271315418861329475591574189533419275585728753098407907611283370531009292185205101438159548673969744626616633658886664156910582110843584959812767691520818381528144282323241531789098060374643195399026999870096471663972834271298002989323263352945669430249910387105937568343357327160267142391580537403864720118846626482612338395911813221768896284331330149186694712711491351231916037428708057758755087677807116101813928915136099102316780398438833371028801358260051914109318141625983919540034105897036078253340370171940906056392018060309704133472615014711147057044970035799432249011394348047950565563317944338354165949839195867050186542341959933013772839634575480633461350841935177636384024772490572343037241059145616180963843181279815581364897693040178787811757389192503581072820421903210308991504100229229629539015089604018758931021615372385039423829822698550087159250000634875761617772340172945644183953157265497647598859141493636350662371518455151313268190126932016215866654636387926663377993696174015319777829918311452349811445250202633203817182752674452122735667677804382117364736806710066858677743120234934159818689693167596501284196733075701284333967499159226326171765699874561417603750835605213547588829839585093435156480618842629766789071473458092759670859970022311977846496305400531945322198166315559515839617240589328168286012935208073975557698836151083188407688305118954938882447051163697883260930884418147368839700981327158136660218968558814242208259222153213190108462246740207790402922382905277239858613307453184691474968947674755628111353542985042689457229519416403076915795265673788312388773058693416983868823627320064358679028303423264142880661265285204749611853357530828778500421977431757281789799278096962542987188968216525310965472359009890614347693430154577208334771403714434269296195513650675407973981885507252146597655138427619700164005457568325670519774083880542544813558920121876456950849085879032637628255143593532667138801094110087976765599583952016537743420880445770760062974852475438560556166219954753263054872226716277958504310278233354437541323498420569217127156228998088434101757168349048724653950983020246595486359948985890832910050906562656083084358889860785121228232584765335598209267538378596736938046382104989464926931342043276359549056066767567608286036873882834059275981016186336347118751747975039973493416661211379092527128425396740469823577962475587652229795812220270010355124367140374424747655630246637728335000062834533077986821976507988308828788715803767719606155207864464910914554995330374637545415076147240682578580711977967498449196803822256665756511261987654580457197155798169646584434929023238064098755981837662391829950277461817471624616677876288455778913299438304597281760749614987143913769073948823736268157205707099287409935042343309675434604615820366686458136581590664583414040833269419227544501532563770701137699145940412737636081093902255408072080175853359408005070565960477039796305548571659744574714948442523403195286478900474134921946495438892161053944234814380514614179744049074246501831725487920718209673467429339212622016938177939600757209098212195877842328464386889103541690714739181444486188931440634076222260369613822423943266447342576283937348217539751041686661846570867345902954018083902644138046153472480737716286876392415826701820491949359835846092703125183994898253946179531528248508120005339621889402861355241693794299735886951025706606884895375959929592162880003910551340820629788751878784083083084771778715667305273818548740467500555980421595387502132330551150351599399868073500561660094362184778279743108685513286883847257839204369749973092625599323327165758212290436877025424966017943184262558303242169794844499060992810402530973514451785259261679608802543605793936251470771207845733320595731109579598036944831341390015919170491418813267810572706163425060384530117183815020950753658920140367646249612598766546214622876552077529662474703123923504671385881650265317325269863002719131494297435528401469560336082219319960945770732537394167577610556470287269717180771822970562162383556130639888842639717258489922051341365338505163511652705099321306220493140876911347371318625876919284243726204441002867743892596787498841066861587969379677792465315444340543247751117327898494044963526639786133245428884494161855256262245173093088841668995875224202493664828318041300607998566282892559278472176955351886508826132432635511782224154498558981904917673042598508732615147433491202174542422919158710074745180817627163805200651127018296107013968060083052958331159661121489799467452545732237355279545697493563487922770167129907113978768608482057352988022675435758284733680594813560734288706899117777115778005467713538754208376094087738383576383369162694658310682957387002617373842706257224205188742126338252317305670720402117114997217346746890885831275435701089135871066083738365671949643176285158432334703396796849050272815210465857223366657887327323509992452006533559616404695863017507789103490543959561381492188656845174986043398204375302740324956808817811621825688588907763575855920806457367364867323926394095642172680055791464600208285503455870580344927334342676516862238518988133380791294394335568971830597567685858354969212804472104249640099772763520458379169414984780697719895087163057352711977340400191067795975031231024376591529129254884606880378081620029123037798717392229688946718365393853202383559114597976748475910300223935609789685754985894615958392867832477043885208658651395181931739776888546655777716856074217895624929080273008436586189938542917260081516566997619487651350466584796082189994900893190254426825502151794089177511347245214887953030979408720480190934543420858945542368037755345114091134794829142260358217345881774131735478779343932336624380579300483657036601461574637202117836046331013865453755952268009126502519021870604635944129888496522114180747019187403511606667914225882728335130873039493568470008784719095647615664249379974159495832385871530432147358222052981319964715101124412063001807405458322042511347900656240360380202053942337253895676875290493144414313623940807078200664006894990457224766999392618341153086621711430805029992496374274452032487495207116153180676190467186407139345480423037513767229320330764256694999217494366123273023728013596900899379108088605705124581821948600541218292117193124379894319038329769997079373671686567043237594178360083685120071504018841830147501716372079098073236222191712101637319811113486353834010810541215568109044602503385643505885337999950372404523627124925596499755116416287283857673892118005913133992070099881236138552191284074567453734266638622412202522827264738561167881561380570364813613413226900551729900235152504411667887594475013789600365280588845027100412361483057097658217398305589865511909846411790541675986749476106633530580374374481466403619823454218559380315285187470488334501124529954669485123898099681290979299629752314863182719523455280564624294674367515824934496853364668571800386165435881911732271203313345190926264822802501133359918281584375285199894066937694099226601903914252334106814577790966432083412389713875926266533281605034949691288199070119564813573275363168669644657205639976665985805377324576761115684941698777450354144812676482702259004684029974741993354152056416509111559232719450803136997709890020069612653954884505832503346784004478732619366245360783025162465098902661383206347495463606007121769416975849131552837495646483563572531968739170550228457399457106410683344598925945088343796163860576495786222368533918563463541574047985144457844356128395188744611354646331916368427956437824996559684610432237184355074600673563463372328148610201392677860678046106423050820893340892985289679291575295697176885041595882088480757490989052782884587545514236506575285913091558794709472659192529986297156883397519923757042662504611252537845086841564298837563841432981326045630755220451954146094698728200894218221660204200167681558785216942276332161962250752865798193445324221632654428207843746449722420114026051588620953119758938826188915578057418399876614546063042319996894108322137033797551023307317381584522950030632182201954546839770719770719713359069552512069360499905497873015206575609367511718533036909961949176523225305373283675452608791673090677026911122499146970869270606581988277723357306307258442316818039561817878829450416603410281955339225141344739541530629525388337077855961817077197708810130801402647742788635101052782472685862669808063846360985833527175315549229616980316824050765730734905974260689932507883432947531510875748246951329305083010557828008927305461389944524074292037721933759818846167782294395906551598978970374556050411785230120078260834697858792875599684975817724878238673354319866531595748146037556129815623368883978365558172725669098914093778211249756292017702085325866236979122764235932017640402640695820832662792536234870588667523177037430069404681252754858546306368060220977854225194035745733125036162311020916677595719875503077126951313717228186616044823721825706512292972311582098204794506291637504931918984163793211099024371072071024653458366653285030896882085721784377194802527998175892069086581731449558585916671100587204375023048995117365323611510853467853987009495077814609232652557434525711039946699795686874785310125360160573699821474407051803540428043640327618033662790638786156105808148934550687235956878653634275975055254949197930541976440677026581629647977073899402330292159757957927461917752620361588511016669144229370137838554247027529215972792728754974306205241059113667410512842872418575301708183451486922023165808554056302272295749842703779772404874813154686789943259711552511127988367264257290243086896234787116060791567345457413834429184037770834982209003812092262554841162529323980999833026515067595339703114964867263902021179779363155134690869047528239059354808604979486351564937580225045116350213963509117087686057677641607584714139500472176626823836616910624117885993157151442045369730442138351731931502498006133476895564535986711889087796876356475668297251085638740160980508798265473719790649614937526726303323017397435302888771816451311170113349291850215658088505328171726643594675764495241121726221637139839079862841031311304053218088138927290828886789213221104911617883531576414559048518069360495503259217282018828406711926901375639657347015921331362395060854387551738961900433294138832981414370674073012254394961397557369132383177853589015915520440818672132757293037634173688030673208467270341627894634926404271739901819763905442770379046284175246787748343047310332914692490057327736341031701442578868593756803134908097749119088207460610213803113220356193013983769479657879330995584677579938718081872023083939237288520811684563200833959180491541489092889212673689736037144098881964599710240347685977071174554385738414167808822069094744006432258555653781615532186251080629077915461932822966627998583405184596024362004995764121292777856277455507907071078326623283135327538120372653718935706894543337662615194462672982509596656766556658432703826530547377926429914657250919523156514238850761237226440302746897276719086566598471513435577853070531277839239620020602734214654892498872115548255397905056692479559143509225244724040573191337108907533008042165959878715830666950689091975605354695219592920101859779597830233508439893531473824825940937261334890392924463280751907304025033162864300472820023820590672835861568676758535560733676055717628405621834242451932492864671428996926830142944019616161878642619610962971575174210616740564683237275136160668839178766141502977800102988302620229364940709710090935631762085640155627213348918326012432511090269796952004639623684084907539465058178094677998870834976330110915506196880580314048701177200708210426634347792200437290824476504538771604535858975624940361990053714661334013999907832351116113493204954285307172067408841142973346910245379653698384599544453427303935231711214679713208844383602747143616056666380253361908186314683613580197113007939997934235653468754141364061202090511349336238663373718288026086562048179159922253736238809663650132870436438628877425812018936784615126193949319680067931584081636020918351279087707174702515342391231914289169284161738762877057864916236438880121539339310778678051361158826376369407414451021188909911230389956979765321830811530694419703906370403839543798365730230403395829196391778607861825693226006105637796456066235743870418112092907974538703213709889328927060053888693863539396904167820159387789651422492864312648033326088517610268163363983550120228079764194125268414494675600654209147921990161698423156802650327525820984457820678349779338555191398031849945565972988223730673457158014472182884519973317316376635516481061908916554027874543056166642263899471690195481637758186359839144707298372653433196163655112997168945066018313013416597557540218656951691430624714485706506180499780543571217770032227737590261228090827579201438475663505018388469624859040831639326829931939393869273986918640155234348888649093798180942065901234922132716547068325525325465905343823283558599410388777945704718644722120273340214581357488218251857130274915755161443150010228554585208356676968531702798024684363605583180270507709838784730347904993212764411136426910017808201958026308881378290176980576012435614098536744699776126294367766354627970725440815687191031588731082342638868357737021242259850068109661612297405814214337358474305227789461903433847766985523185144045701637960243758865681845422566096660042101042436661340168225574347643061249334339731791720021805230977464848106161944827614766458062280251097208084899706721299827924417901184735588573529631231119415743907719786909988243251129539623944264139616571955133810042397340640736144476112153751509772762154084126426914695543276589575320796695516834365954701436251200161979944136006064609727433856722313053785150604856625217564013534645581915042920755027481226299031720209072457029721344862877045198843111806801145224273047998887400147867297795724020896015766234324788155091232679647508649694713941120018332553986190776934055170869185265408031576444226648722284363775836820008567007498867663785111939663137182950481890431039006403031628987022111403330812086097000184168435934378553883371720540380524129079807044953365993569044225482480029012190313845553681364899182993030923636767534324449448363947714503010633035238325361147901812569611414912948276465776948770651597181343486377708991019206344982697901652114207063871932226516305330230890931908226025305532732091321087894671568223127694154185466689955166728014439785898414877520658653621656930568394062624973675813318613002825612112634520193359410044899646346309600044104968558704808095646748865429773856046499567486870437641793653970367524827972343834356082354888645816977512059930360479049421283318798211842753425719496732545339422085206830181569388483730402602787217861326478760029485349334346521617193388052170499250765659629623363558879362476159809856722627117640282524524967170199667862733626822419054780499265721823466629630433282392787083726462046184590770210628156791954923159925115293711399963940618580194061899146613366444563488812534707314038559363374368825552767048122663833572099478339293199595178901305082887608472369122721860701372082884409773459188017050733991796949159113955020089103403380453543768356884368763189407285226813801374271054754687391677200504179165544748729162452441877445372263463265523967256984502569536896482626860935994209324935259801400974749506534418411612069881643095796380881778941406338953154918400723499322054343241599941794503206479293370535141586435224504010414300507331965656730286781299591593507038014858778055214947028346336620308283524913695638329396054596859488371828361350810546079423053003683742537365216104255594554070121047588783057028734896530527246682881242536366921119427653708369398018461035262440175384685392876583798375607447498154562986406057164167743682109299308543155964310471783810029439746750782007830705271118968633697094557260716270845173186499270476082584375719388585020708670827596055858259313729559862072142208561649799424104864693454138881775061840457335334112755737174247648415493988038718298115259143848595892507111435968142896009508164415217183894733894993738865719621380427691060629573895056660476485509811800602399347575029263770007185005740843780742568386573391058239928634586252450257336180743156613349073408654358621933387785133299717321136342744746730312129612698703382950900835947772556971235503316171720545402805189263076655436014324408037131582674529433118077445806228709770092869731661100997232895175476037080000653775475331010156099738856679748318281041646318066151630116611587638522078596561608539394173481924478306903419499011921392791567298490185636587166829705007567965540680942123843299632364534803842492225100556410942104938080872052136634250644263632404450911753563369291722889979926039909121872002354024004099773773648330610282417628925567303649290055506502882708489178889530482717748757750512725545957759065198979231666224281586021258225298637470833178126252489100919928634435703613440208488910177320441960327733386277669823506064134579855952014528316417661884911748309035985395189847107728774571942761750690733366787445177148532653562071202144863180737885589892543919035225277790687359456583320466653823755706296371411150644000021687239475370661165681744122502853338652479364592532422296101783001493202867464575618223531663670570116579294577940285753528641196290724212822526743547284037585326994135821237608172492421718441356102311130450594703122213890860081451590113260348259929635398898410617223178440537923273874995083087615076976279861446032073809739164143004415608814992424521081726397162399684049111683355124600470684384307632926496333585662909840551673230484759767287464696399745758239536043214776626621890429165473963502521205087297170076401728414238235562596848539749755573342271903656039809251951840679054648504569938041285314778699431862106044991926623165575958022145929327793376183148101049877463390564358397747112216972256325677301315209970627406817237460167419948492778564809676179430895596799308477043618940054425694199857923913820551290679776919991619209762192982667690301551112254383204295844660440330962674459043440432078858011840286539575561626687999500899143361107263434842692634931368098982609924834409218854406279015180733287139772353485090143357699222758407668128205989254280286469129512338784437504055186579241648845981194991060318438269959405644478040627841900945528561673099414798324614560259226063191647348991275663511286181171654461692940256828968446176966101869158760488408804302162507007680386180116050159519345796279187555753886553096196475820352441672001122838079155937122700282136115540281846255199623422462732461498760449768089018590230906587735425107852383673032673462646089419075420783626957296850380090485258074645186649151652440953935108679238633224093466369452785458715626346115178769071134035011007605720064541693251108439877931194804760797870839736709011929713526669440910047364149802826906842440231562587803091454697851199501463188380290890847944515965031006590468479503627507768548875218138874161564797675996004762834726180608830826261923722520315438770686811005916844910922470907254187602079594323097690274489097191423466300877881180479941508060524739041859598319278837779677750344209778131592798009878211941833968454473452423366098630767477619648190064615391627642943996824158293551324690918678037265827232035237120665926798114862969302378278455978835111198157635757622095387608173494535032541254239464241976984476791877650340699312214660093294153996808885810861172751386580133720306234312337308659227504902864640280264415727772811320929154286145879531530637819295273833587319590569486934807322613223208970409069288542987932189420663788580138049702659389152630422308460783540412666652562309408615671683742823986924212001682652849053350556376290615847489049671933256645683687652872681426538125366339411630850932008475654261215448800247251419821672502107201255945875192129652840615014579547624546265533089131195865847254639185085294355350402613752114530050202060393369271185833637249483681237419849108473729116008182520230150126861794205395562827959434629535130928357839361232922759217850696756423278557782130429200063417437545212738716691670691919257957733820518666766876169983567948949080794592506417303732743392541745156050576506361946900546476768800250749231129126359029941912163886787340903064793781469320748102056772375606741537560279817132742358098375255671469100813394393392862414544020643185391115050316922815772028113568499187735253450754792679488291068291091157186088803873186099098415767181460765778464675595342234888110659178988562935031391023684691013441660055388189972588548321896205098342912704909503636462844319307997292229079580336183170975168096979834317018298492916391668436583325838038109122077468220783371811056824144925963089922526830708861224743821806315705627396140390800300430271920568302081990425574441670587674979358749476469692421038687475021373217406111549741405043956144897732817563399399588691283264069579765722186093209343557301412330690397400441138844997274471976389706955318819394656051385953784851910146592183898356853421033739330685079963143874795052025968001431030625959793564945153231452533369872942557020583371358327995893537340965261604143254248469245529481739838147674244101775304854798954945771123369415911088136390071908684721919583609850992255467849792723934777391230720250231403661959560057300389136861663885421111583349565712503167164852525798062361047147092649855346645077624507944281934340428711368969008687193675984378594378893869757934256139244693555964174917024568612801519368954987951702821713876568685644040816799608588178982640506272493008399017340334148556761338918630414440896015336545090405867885652148795416016617518277750364903622936883791177669300982189401032489623519862292027484771990471966124871210649658556385179437814553714591938031439123170521754384889813907897827393261049121580478911338732991301398243900398697061345145616649499036858441424875437533894906721046858988228812468977498754521895491858381812747542747681909917767626204191181225254165096280418207242844020885633896535534051844651749302590448254904638278613625849049212934550982638089074834358463220658761835647336761754699000578808466927473065315378439698474074521516349528868424323322670991544964112189478589245019933441295728495357788909567335869677861939575702150683627806566105974178439022673825733164331489508636276340036388528147121647463501078145333823407281230706781277578741080016740166413665624433059173803884259800129545791487798434490480090910302446394946644131075945144625645255216906132517155842956645372683303269285565756350887493560739581378991048053367989951625171495062775112610483227773217416767135087021894237894388927756472782658045354383484169762903251593450967211968734036685053482552874341421327431163808153425340922675110543694280282498070547903755838375549683858456602063937520891841740777736277829150955761068400208749983254874127564943486811178782174787825379646806868779360175571799694399762683827028678450991818424766438236781602632562342331979296528466274016601422178325116890425129037405362550772727495483633278428630551752431788722501761019240936094541655535833681199540290255753120046392583902818865061073749898069738879634643552774370845307637988782606210754534425377401998256931445596919029731220684187552332804889281442513819487596154415758236863020020553675740971665867204392754362253209938250188175158491292639096548486090035354870223175857020111971605186727855983975484923659114123537261515054819083324546957517227862691965867899791679455356340045313451234046660363501544348146494401369790419089457222686209896144961662838878627737480271587899113077781144109813406694187802250916762069116771210690327166226227116856351049437920635062926875213223354303363960350629921912095553973320214696687760732551831732802114044491158891677768413858711894755750373751625964524138373156747406513380806343472538689662477276823818505861681292693176608205934781026715244137070374289650781321829445613093903920280848968537428933344510235544635373625431265083996240352464907134727212008595076098666756238756589379927311858202714933248193739270146366545253544042131934523248146996310415843056302327275961686622935204547677542527734914210899840695864877597857294240336933075911255511203777649635885288847019662640373405285153961803934909126763314249660124042066384706974070858995975966554915372278724979351197355361215147214810137722079866900169655757456665509812031437785083444695673542503167966666118855933485516672847830504920997995453494666054334028387694977497633690258978675487266580182082150706700561650054446695756854070011556481848118002445370706975021829264388095937800304944587584428279926778457133099755611034432936993674617768670975050429850718031608873396560650073885711469691847887337941025071258539687139703176436293343392655031139776221307885170354605570365645870533567414965367815624527560363674452137558901190152406813147178265058911510205519946156154161851476434880916754394036784149097593145837204258022625718783229990324052013421624396276647752656271782381414823294495154454091450204923060472780222581165779035185979643834524689684371536157609387048853155395663957921535011213575726401900553656802772478227571679278341452871810613478998915613027985748332738522164344310600950515439069688136850449020841553218109879097688879705098631932631274275811279559398328089089209731185142859855040823014140192747532729337512767544022511454056482478426947792219203238957363972237749019054229133487474861190952487334544198056893568181522876468869122039108569280488489330400837820359781083462070792197198042738506618742923812171665180292228513944040204460621661389027814480885441294469611215123082861480638580358646934463218660151021506651488177923731267963343733287828669083095732948911330197968466016070344925259552400620305957491979823705682285316506321170156691171259557591346468792911866461308450441221483087300556010587607224826454301172492823058029285210675780111153941443092414946619438743439180134788817553683935229645514381735931004826075214568678365403245156689227396755737214404641962829938217268134846063583391244998115349148001014241991184308809720540561326740783095786454060574361282758643097030308263977378664421706295590865483492033628423251570222863533768885371826157622137756641226154374881299271182407052194689121599386265948142514064968964190974848691184279685585184503533791391806315719445234880313891301506062043300658912922252108231878811363771001691500354226523913575851421621371076399266715611791743444382021168636143526897124587389032425477495555908192205524931548087464689347631681081845125344788561218397439507724277405830345533748471275398584998019751467023182977238809984850781625415894905366557586732964484487132148843055321746147073548775755036189621358663914347266247163921651140946014199518523739024492191895757954149852568390717794270141373496021621991222660752218687566415464986788374839907091307363193782546966457065726546983522213900109360405775048345113182483606106669625641994969616825080114809863766196751863284733106306021751269583341159804073208075070514709509761953945190747501415777862530948261410460747043904877643324358507438923940226237468287856444401100786703235066987012293616201933899769739986089762939841875429496115454978126338781096956591614488274957416713659647002796264962306093540823258295275407928908167221159747657388117094449184673848450453211878211898969304687843058794039034948911334134516267265682923401745216118850268786475982170355696096106733424524606262748718575573481568703005340824129903474713848609736030396876055173629756876207804728474101763037917131367684533081880982324575658993422022993727764311506094556544826859971929851588492887104307937947170616231097389382817909579076886545257256685759913910174639390124441249684881383424479595346697382232615440652598021006198698646073233657058956782738889468460529822823929827462629473933913719837164313807232182204020686103130621353569239366559118509942584469339947471010417193321763040524018698852611299087528798263297956826186118185554400843057307281090154520355300570443152132759078113146727836533325449911617757852345259140530363899091710134345231251478392538039365228691017930686244169101855118861872754651011875361709833250377286800150655841296760085510619438824614193552531369953129367776229357737247398702669049933042581928476516874066478607140719869588319902774411741844003800233127954790781701077790655527871605236335747390422198950728681658844162014402429675857489102176267669289763792687658858144401579761755709343867604945639268145348449622125833454075528547712537797508943329579075422082248659423602238554766475735013707414205773087099226979643463138791156671545142559210894244300975205938413111047657029841811179454709603095404373186859250740969276514149949950240602594090887017958106864634512561170052596971377013015227188877438940937887118204254303976381854712082666598452901602269632932347765198391383210734001435851642548425192881377621013478703152150393035074874345123198422084853837083210767126948025940630061912986895219321136808924600834275949695666645817675657084077695561157026638330533155174960627782181779990003062855530241658340649848244266240257759918517219242861552880436219569913143864430379074488419603826990926988896267785151573309653356579699279459581641442633812956985917338927860563779679803543072078079736300918228238568423921233109117703489737657502746141389268732066224607072090290361695746028762224553915379666577165994238003022168811410055836396557980685395824686376598110443504786005979942969533198184212397242123242178676390807994607489406580833775565854595340428270109347215155532285879769948515692231465176782441680633781423905566573058307521097647869131633570251701938668929708523050615648548204471587268180019033851289740109966869663395067421414183120558326227605295733320798357013761021702433800182378757840312037841419407957810611360722411993336370763356022491609588234598536943427821190231457377657884019984755948402613397161257546770205240610706919910914921125467464801712576014065525033081922142787297183291271338340470094258091074965948205346122978693986973948777050285925908842098613221336725971812183241915079257083569550742672688428059677366236407164591056897427147739844618819752163681683248683162755384567265931491470746505262493811866885392900766357931185238993600654017104811721469305386671471174277824719354495627678399806814951032987309623114603012292005518389953487348587689794516294581407047850889025705460834748974697878125691809191203939215913851854134945310937979759842534467845749391488229356588079394204185216402174545966978293130562639598435539417472920059856518330284035165719731512634359723010047273606986190873840272558900142886396850102812306339701262281020479206142005837637616833568906466097627826544934257041649472147651218356535200500679995846036449671608540066184112221168271144099570519139005411995148769580778974894819312095772902448665284518277732480643902455800878313466873778906800174362175118216627301910798670628190617330623979817468620102451086047679206564785531334169033734745444968946003549518913187293123187130895117592614396538592974816937407961815431676378106925638072489870996594966884894716374307267691338853135761821691937139893700726409301017341223584877766621096459033972343627073985621729162152189757747168554107761156805123200876323136972327589312944099806153844987260174972861105998191772383802104147438682020054663674359368777319567946859104476014921491789428770223768735318742105554161143441097160481663561938706898816040506924625638716471889705190803378468459987049753455087594084559819085253245232984441739096323789704932885684735616976426215550564167977512837117344644657235493333549183695007418690542990967393673580263792764721267351559445428056818295887073945104869471669003490239417326164867465981013190972312837946170417246995935449634783542178223782778820374858647337673937429953251951148447577725756753421130296211048995819026366903896402441287891743057677894989490934372146209769099988899201994616739425670681175945297560457255934832497024384665661654286118919012251305610565058176758612801686922098917632708888278063030867890846976113560521775386631003487889557019835622015418291487856130044011595420293891034782131104694090132096773181028302354441310514586722478458914301657710490427041473120699876740155391648433643086029196738843048124488222542047108641877700165823830939995518194477583934554342270298488913209546036393560772334339746721843032422256720745157908277082040564639994595472255151559049612853876403169841190296536319847905121228843079516910745689890699853150396894800233392597000241091179583716727446685887602958684529572980544486137413448467408285234129358212179752447240117290315381823144466935868262346532508087165461508524041456471627719791075340589388282315110586870257392137100738419547961278341578895034985202538317184253848387108276185153619498117752931088826206433932871863992789249910535806091168878117615164247527226424199101738971279761193263348809322682556650529508795226408072217217663467925351407917437738594386997794409912882047602754850835918505924870204022064619647281482779096633348858035473224434308728896501769443639933939352070448492669888196118498434823672447937984162786206255105547684027301546989323319756468975550216835323096190273984242308109523268208145401457515166614476499539849325004004976720802136078112197327672203207005808032623926109107722945143133336356911085597180777041419287427587069089536050376020020995866867873360219764027802493944849723731996351364893890735071074698260897082586264947166196226833544701280053003367335449710898172281860853500536065946396236127167581266041165164219026737705177479694300560762716716942295171715704328200037110977862408758055267216961891723014854429459787953678532545080401186776827081579675221579841279688779906164594049388234236852789274457812040392796559440076132204944353238227831837543420579308247340923154479526521416398431246638154989614776407473719603064250586830596768928038546086869088718497853492476344721987614719017854831111193457951497040354583863870098298597697704055753834495475119300990389196546700029201060664654611532410755028748807562083636172136352870811358482419948318054364373954585173173339695639065166970875053697371032868383879152626427297669589162124743499719768675362064011831204399004391607787923833125979491550670875218604399710067088516508975433240699148366031672757296493039559553170738279528490835630732766895636303964915510647752300997925995413526532707192467151879779716560900944175132066520501564395590230236518298850306337875995474473073843554633240733415947219604662641784406317202342794950233110605287540866534172228993655014378417173047448140791570057982681318889281127688880500671805869784714901769180514954417438583786228985989063469375969943623713078615548294070925896911757310978875858462549013234253509678792830530113717981727997501317101775372949796284713783252503766361632377113092485835347350528183237503342193146136849290044664954667409785805779557715773911202791924866197717041882295803204907409148780118040177709072696214949027018188360381439204682321909476037703262288139298295864447775542498172407758944149774420071359775929078275122349662510193036296252676176840456785159191573205185281322457088853269686123606238514717308560549942107327022811716033083516966712911580710457395480991699108441311298199684057750883192471667957128466440469030491556799375784686862530154742510422406106006401393190292238811905139933435077744351397853282458395378353329673241666087576529279375056128949928963088488630072615011269733723468473600014767537275948818329802161577904344123526899926250672143198531743613368618801913861557743265780348933976633848561655819427359949964223907342549441894818599218935668702109667448118938542064210834181320371679587807337336063469341997705163751233168159744804353912051638862855295673461203299343271340367927911946747578482064068031916536089490261796307827460087230506502712143734165938096916804456428885086696649011709562924620255479764661700463930550540577748288636991997069714329058965688599110134060139187875001835993352132767947079961708407702823680774417703895035199300368595910863340841873186668388844791863676128316727349757643045589892402727922824664764913584169943027479911637989190046664883390415381788793481913149389884924521919400040241681087859191642659513248570159880458363619707397441717033469120439490726159920262122554584906455049796404439375576966069744083609510000924495996432546245526628816597420378388668173964481283352558130740964707427205698218318173175087923323423861183460979671892706567882030427510485571050996884053426059916063424160528660840758931974627911897363365906942369793713159661509709908083891043488876350928184786223417318016953926168486957599609684577953074154357359064207475587031239807602058701780370701904778479689056325859508945595291939149511598834596730961803801425778882917322541921958605696224940696305944023305655291737026005267562739887415864702058037358983742347147200324451088829156598022483406762452178969510716542107561503553768261549470947679883388910299276769004441110760576813779255393213943596091205544966247532100159727144050539457012134068950996769177640895182850944936040063531609656291461439442855650058634423977043554732804561560974745893655057157459690009221602999346219918739577107863382868290468393156179269183342076005127451824835771117066675794947625643252111165777973814324933850347930694154156722983532462254083323197746609415636099521122322692166705617291849691981194578132810903577012671144980279072913342152077599222684571825357031449184925877473609626936074091793456785491761340980477914554267945872483724970812723681913208710169528774950553924857043936866729084330381726543266037744316004557768410230337616541707084704772386839157835332099117697828978655134382957039227041603699446391368685139576413682110868521318431406073256794450454907385037474475848580016103659958416595589861320502640636704635214097389526994774348258240589695475211608443821394541631024180763025798144126109624125599315506408915422302341993860106866481214133987464445370011573101317864619878820680657043026250852670635499034774094835662143152871857544455173703359816066921350193297458721271764280694365599633286208592555845432765603993548142755125128413085956844039921823502412527211499573616077127666821641000795151501585980635182080614527012323816090465681933728009990066668236141465510859984841710320688048716253879129644361694312596039214292115496582103038233308857376123560498335655658963475788455954486505616684116604290396339276619832411400851693539359711950551830462881391234972089998074812099681306874093440354930769189241742823583721569834612922381332144140837977443062758192570790238448571298760027379788232955966347215191430195138703177385122454631998836020235446016483237957328211143956459652006512140025731925090253567989527747466797825593993727800343254007369187751406271828867619126796215125832848427717056317840691023236003429791718390306366496592769571195453906516064299109699503389029687604775389025038493634526874093287387594996792231638109574110734478426558025099832791520390965984240179329242699503917025923554077405297852666311408418759663390965093662016120513252388200045137431899401889952311102145979935498978898327960265025421327315062636929367749772083810605489020636257106988997091468824874079431551647170465992848063233486116862180150895417884631732321587363454305617166130256418543078995345555474019583585019861362550756986271856136251302659799349245201305681919333268253443034726461340629815390937785438746601740571451551177158669170135998446080714317249303554121001247116116040417136252005929439623653294344770192649211335985279584497634840677479118069642410607228521145838002360803636354350959305044399963506067086764844967054888383207419697277313935158592413270557611706973925758695649295236335930884443175630652774536774836582002163235844052385568095012793769145366196973766872871095691599977975160874244441361272179581580769669987340378540708905870406948658478581015583539628537124795065342571933638024763475131533263473305691143105573828474048340092201622742688925177551504737162457366551876114508701629021788522869220087668115986851259252103792986607196167313538087872396251088544472295150598166256915843077332234395106636184683846474653270034506530941644864319904388033742593634999646453479760200515946106384924846581119156699580785744947169563773693294830969252627995907538625342241501030544381664240137453314139460591015677745266425970856277266853509916764743050886767816247814187836846637041662308503850126891202715129293192900567616734753702179844452687884679304102978830205428325608187701486133704860712389328513638492072115875644927870896124921831818478246097009575630083279333379309815406102734521365190669873944662615861072297871376593566448510638221891826379910199897939463372917267647347026186569603081416671924543027830031347848580536725901780468167474378472826591913701246191046705380974126662391719380931499571253501782392700899957472961698937040715661900545810975223949038104645513465142963260949992614629748549900736725579475908353046127397346412200587366314099209790858730515176592886483905545329932707727648480273432618402688089724383480658366850977324773906454688259619821920005749189322050935584092855143147075949558646614730534874370462470961714089486417744924278767963259409392378073553212087198174104037497344216372334509854991437318390285822945001318051961140968980795359317438984331069381824398720551574944221458302524066843361812426698504723729818975015043544735557166576956597520402711695940464489834548149560316493823272530389951912551393909274556098078157868935821548488234666712526225462523861538334000222290457082259076343244735221401031673871714232505974121392038745016419867387881551745809772563557464913264185177217777651040040125847280998032386184561703266281212959107721850465002453685722852870854755348406374404220051495955001556283523961228473477864644782731136965015433886910397490878138150047588746123701605747116705291289564798560507757766372643309709043648200383069733071711170620662035709375604685741719062441125803853120011584276264431002389781458033556243430247403629294939064880179690381969096685202569633649191439286128568890756548056059202090435022637310512697116150247470649164103030847724439803696793159250468737408073152311837483915109978811370000164156860840979732983156855470997874666276077344462906126527521379606628176693489351995459877649739981305277761283813873308169831001175943133963244640498972779123037562819259819982224814196807855039256015192457059391197320137030431334775927057270216540146157225718772077884141111243949759419898293435168107274573070877304461914466826036275427440671479555113462123107769652542000124738182936404727632030589065924575883071277478497837830122092614277151749228811803596920222492364619614472592739192910956591110097791630637690264914513754482607285834801063826634691736614896654121489762575904854600872219296432933255585600825610163189968622311483852681879062798463240188391412088852367302908736283146265564605339123755037946117564541056058823871557692465300978487006477122699305340150607757802035549435529079140282700556530400761662987137571522903224524979029022024405709800806609662457839085419214584712496211560014946223499922556633471559988827515992436513882970596049694229809174187085697028307693679526149095731671758934123363055620230139863569871421900080249871486967058341141978805943237641843846237971043539719752452458574406082763168738726838145493250843865672982316867149383349451361314291082454423029233819214527793593182873647363822561092698945665432257267145234717680768946808029354077456753013308451496682136036999920904993040452600211396805899166556068313439495763530305784399205799874434046209151486396674435358038309439399983033663631476082491400228091059893461507012481196224045478991899901056219120857635822644457670211772909030259343403106443973511158076546572059178529224855382432575613839194385977555279123018173187671632237960081252640554582941808414100062047313938480830128660156065990352420686365709150333877486730735270861989122255826865952912566353529492317069634480624462588303837648599770446925521901238688688289998248299783340103128481817703157129819270734517669511249166666890159274366103000531092023595660638870325427583376104693104492714473609688890828198939945593097148054403514103738720562215010111552914590691626873483309524558395562376303317099575096616891761733038794705626087470436777481820863558442329977336058226345729845966654977486617308041154048884309782792367007183178396757444552549983094098701867185968675576378394056931795363387295829597753132352749496654075561969631482805443349582164427652628324468743895449014046468481558859299562322915232283328206293287075415374513364458148515117097246400646796296470678067896383226281083382798084151810250433330692011138012658945758878999700251847943599856211781966266142747149202731895145912535678522837852371999769460647120044341757187102485131418876306028900720153617159609168136211687719040592987392958233931365589935991477639314635950297929461569033240239638084138515984303486465046226815590091274799723697247849380813250444596760724505094507699057607375788167228707173144372998421168974680260014756598082264582299700331941434195952912157927395207253403490776336615656153225761974404474646727090746195491263529257486177305160589545281097626275125846456465373000855659183876656552005939345086080517050645248375205234246992904519709155676051569138833990933315665615008507441616854202046601132142265194551788874835037275514807066326660665618607417915038105459512442808759735996725114975421044402726199974319955420932295954974085255435387274014800907024178591222992776602990751953297872467452117635480081401230401576900315920932649931977633723507784000610314614631580952591363479120441220168889864561578009603817057311189495029470074409357983559950384720243743100104977911864046981121180927054931113822840768995724399489803585434188136042602117590374929494982242692629499503348437007709566597997535091611650174841977317087313963727977200461063982883974047654472386543900774929249856026176693625844173218075147348564399202341630272717173937272860549830457093672081047266403945836172962131485846184023653070120894556446608048241195940123040858196216628149072381576619711193662432480141734784165045090674518145195202027569680232869614355630548773625418522528113280533106114509258382625161740578812531310014532337356323314698769017998252203042461753174726299306717815587070901440954535631772200469597872571412008342340673356552999820604063729268585862185470568878364019246288280983913927845197728970891658714479841311216214438808301143641379117842125752139344809414492675571496255815099630506212454006622712189449550642196081820208224843208994458210231674633873342601025582736864528611385956411224015417093725414075151089018750574484293913204124768368461473020036235918345390635281056974928662849259489901969979788665641888694563605753535185117061395797419174040772091799591198847868327889255859151683054684060830241530004229206461990262649716365954715825744611718669255591711293496874005982859569214288328279828112412460101783357588724421705384325417309085953230680901826564573144179073206209708130355067482778203580356604284253401457143861266250334285667013739868127948973225532246623123584120781608420553222465389391418818205694363930737721026770999789277864464897080949774913211860368100792847504510869144660033834309787243857454646537624155268031238068655485611665758937454733405477744208216495257626833171516316816663149412727628883381669201607585708492077292817540606415338026781055221339478878924041549811526411891082435832403448860142031047470213605851798362967391776238682829161164505574734986905982747458437271104925734562423827340245475966836899227219789692205914085182151241200632394599475328258742515770932362965643847607372535714918199180279249468573931037144915904834921568217489597651038727648506021886875183961979419882431803656224433532484042987890608418560895106199499926909203634187970136107546233435435824673990469218787377505041762053225129470910964060594369451730738567893630390227596579060339584916248482372655816676169053781719875312190708665609741787659688332836430354586510315511354748007452324861351194560954271106431905750469963378967134641032567878660836511955217364951745575950823033061774392588840816255928531621378946011825736856450161724620259244078961868028558344834891782833828427483531214279860755420027351315435035743089256600982676549602666002539490805297561800426920927530722553389717568824184722765758186414931073843968504289262141801500488362070741041791429891009901189199990011595601652644276463253755528251932450867637844410724294984064933270498441262582385503504460222933111030702260671949482642540305277215146363414791971382513779869606179832527589815225723675570654993995884715414062678572951628537144854310588055873357606299254307498059979509413844103287285164817563918327972389602590036950077464374455874142899835404774366938113071478865915378781383734404799296370835483482723612088638776378587895350562011808153283511603905068464146998506992644355939541232801319434595495122933389684402715664071300148086867475603299143495698826104174726135326976863571127469176774795212825084460012474350258100881081775422416620308750849384781477856172504879532300247757435416741664787767677610525179648946957667341215816893442310165330108304284067452593058727086656388489753758517970409593160199233642975807708472365703816924443193041237793384424490823769791215286898318559475205356857420512864420599945206376668346235404543367137140626070498894778269778765266441846597253741418869778065428806835231287739498107805701305567637543752055458921070615750412720576898168899306512967566850526057187135572094778889119606625143762655115542454438831296245091034562889407434576211335164254205661024702805135869386009811073836400347122914085453327388981625634517995486063013577974593281828479864920588045812133219934714352909134655576827190485062841943927382470416469435306870428042819414500492024939916499105864432389283756435583940314362602723393134950067513397430559509121054415968975612525758672850037987794190086086912142304232944963843696244655204065777541806678931224154017948125047196830576047415056247828697114740240273740825747092055716356120362193951074232804500562843183123777939498685145541545129129805996003334778411340913940230195804517352527507786393151215051797788353977417681413812394616932199251439028061572446168488064764785662579237144303532841363899473230570672628450727815772228502578538741760000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
33000! 7951721551491417325516295836204779609254345979283242554222037639009426189325695414164773504850154764341046894262105997155760558735350908626663969010779825992426966149931939469555021194705915633244882488068870665229755924824525946967614869200900721826957535135645272580658858530360383168738817737641947783698699873081309125727000501579543133889342659632313386294868201810354948346984167867670160041178863162005652158028655198768077553672156121400976368419750836975067737510521814681030868552535740815188002404824960105263787129394074690861579132375478551633613055753914956958699914649717315385972025223576203581938803689667963013223667780057645586364630362728160681887476331635610761384885914325426283296111708990942816699548298830655705154070054034707407227473216687115485750015821495442645026223615967007732749192497204900462802725794058252072484093950499399103114295691212381657769816284883651627478504045626701720265720784664010892388194539282451499901212688679373623670036641748720219187006663299419348566301846708405999326539384103957750269390923912675250892523191299532578132218959718342021611602488847083910926844939748215062669998950847417419846564073437154250637612723679365457453221140036389395793899330106019878544239645760162494077507659752962574838855548520991985705376761525607614090438065656704984155594664758439343664320676010526899372629026074067771358809480083965608951718471699302018524204773353623435446662785262310510006643540699867707954978846279498014553825250481831001410869520841555661081719837221258341046954942197195986742651631188612092906947970743775647621197329383881691388912552918682460347295144544524697512190680738877248097763738718527237129053253623706878478533793647155060646049631233784393662423846170373913815412993958455013174238697717600632444791587370198805663359277176051516802842917354661877131835850078963682782523629907262071523906201987209024580680413699388815069531346266823127557907582531880533985890973253235567248531053033298880058359845513494257558684936078182179144174459605337239118719398040642295464504052831944972772479952116863315326685436760584192158218700468895784964509270772839516758472159651062349097974527687161005575909581374931933410672864294547934776235462657341346252499492919833793504972056007421389092403108634455719306069801216517460505350133805128636569108123439614643498183147054557837011042169882819101952251934981914005198223266453328268313171483116741651133197500830251909875220873638423322702048748228403185079469431601482478426763535685293546309467650776280220502965038379824691650284188794126531593809346803259195952554333732169844659634540470422507153275776570509893927507369479538847930471887546293400908785597728357887283138046711204289963730845625141466497301024252133038855912689983628410837336765780284679713681005533639422456477543456930925959050902941000294984086214188185772622098736139892714385635465043929722710483307089183952717784714808941938942919387491310988081496138929487158620093574122704082071995287692216411191937375814025053009077402736426721553472730328537703094748560622171591683286758936275337780511343273168735270986428097127297400296111695185610402854535207084166531963182050324824733546417940277578477234944632292104089185160985960307939732886063527899676200397546479288924220086682758478168988732789738454341505490334029004797346298851823533832809851581333458150489510977515075330820132497400642089173161752092066831579147903736945870134140427744634627878030787164078162465220906486525986808907535806111023681123464045122123308789452881917188248905541306258326464113223547474639586028336354787765806593764082955898694837394826206921322438494999760541934158519073893967387831043682358113284693031641856248786776357254947017375292625408432499316643281626608816641340326761758230565670035301587639559930332769388925095863296071775372382193440369960947421705195501579055043804102501803907239694467617293897914948874235148490145938204459419017445281896039397133483502683336408151434961244712113089663516853466372644867660597743232902292068891527069113399623475387876274894053155911090325609668895946883806115172149421679436050290071555477248326969000393418709096935833906534356720536948647144500061500311571934137133587933834213338147569430739941190890061241893753519780216040833384104586545308592518913657139994007822557803366669782516391485695163089650986528402064699274593324027157535076630182744629823735038086279905323752219948278992200781292336634852148316579239178431680863006265093827697488867453644348406733166246950802251794416577719616750728168167722655151377221247178194884749756100417220622122216984116664233467111791126172591157651098782320977114273304036465839264124807977388641891917151736617108103887825142180801641759292016273372191702189942911840961769629668945698409649207868535591545555511486081287486743810574233017050482810985675971791818361116249925715857098270905611785634534827966464756593481619641859997142368159700235304126610326035129970072951955197828739901220109711918299983203246010856841082593786461267275972327622049007765073066479264654408452413353770585079142248398770268425029782274744368081143970799836314553102510174745919403561932592823906897243936483498981612446840875172812149214000205399547476545549416572596296680292972421337489343345330446959914746080760015406485614518922912845277916398312903472107433801123569586276407669960348141325292579193065149850084850427739314787272462668459155217642386412805871063328271644206331316283898839066932440318196443667169863249718687271799000389201299339825990685640892515643405550507306586906428160399366896901113145306639141056135638865881786449141560606412509121642878485820988425090470171716022684069601512300532145111882212630321529399178244984618948585142786861241133373184006163670741050867966879812050063408076576528406463932383416677253256598448734152347298949556094814026478422215125923219424236137818785108595134100028348787593747152064892924881450108229860161691162437751977542210107992748302259846202298173108579712497988897681570101822742987818006173374248008480459057774105237418964979115917926809025216617306632035945181061144278641198974220114176818525036061515284123805455422305250373288982759263377190465001467117145495143335494583289617200453136150714135828979059713156241622087717456661189436912843783597587101117908723131833109059932217563937387340537327813033661467574517647057691416807167225458148879955667509011577118045754966817560133342100070766567713832722977882682530926076388269555260122859373574077317211319224910076645159855568376908024990727996372440763748781001750531232171372369428440821788904825567766888673594690383757642063690498289689543963916903590439323576407418574755964663832092703216415053165111021952716739228505032677178742416730857976634190396128854499934720731592475468170122376054939953091155605675143412256261769825048300510965934694231656624363972172703336861289318445902932048016657472229000004613855971973936949554742018457652328945319121420170473370425012036056888677923973332361947082829795715131861932591494290167466647526855770790337091845037007031582637197050269055529640337487627610357912094748124259770868387296210953945453245128553952190811897776818460270819061325053721048682435054363999843748779050305155606051288180426084268387428940164257001287526413300706233245436640370837648150599266251445526372388582334801092564803994076826672531005022608793478386916903568995126187172305161648615128879890757911332812337363118206213788498446280752789246201606123044595626569773182988082934534844368223765227105163883872066821934360212508412396209230090888750937080122999312872410868338821278696923538993666129497191790926818231018142878361453426050603304062810765297513665278961965273161614851280300726277692405296587266790880501567640514577335722059385519360301533127201664178709444088294153515255368654970377382779783244130280837438372465315967958591417509188851835350203100546485816673489713099033709376519753604753018522807910470515572511294297382872201050289649921948136995343025033860340152886506700215200044557396783999565237587495981833064455936306527284506156707220223800564715996952152862163054061352204795471113324869827712176248815568967473637679696467154581858841346217260259121011279498076910239254721478238259856310807729874036404457459148771896453398314066620358056066363690030523066862167131323767337225957193024599205309122342506936282985511837938637658866081111059360485789469860418359059367090967403587552625669072770686810725331291004233635711516132896399935577801902406781674580979365507082449317914622761209585075851140129339088893236537989590252995457889588695755574961930852859148730896297885589629362770952502640781688655122033734235505107830370105240505072682126504340289249708430446131497944172249781722914205549867797024339201276957843562744671749897484547379410962259627945328296676195915770779913986818188844504558469539457107225796269290074344633389788888763313960243814371145600757187656110899129663701443272806453229977764802226846016912040703918938728948365505536425637355115201920825452794971924467044472511554235433792821762183604310580778972225183046742689774735678594404892599920996712692389871329220710188516053755951446557783803607791949915202168031131208965909819550346252371011349765803781793566148211218351657308346739457191338697003558751463788594416647587617888864377453803608779198117170317373680274284220182720142973566050231311839960491949507928834441640528416967839910550992002289058010079604144088811356264520666396186522649522255419446424683647777254503799368004124380645838684563625180587633853691813501987039896954420659666075069841686914907515648239417120458203200985303526865618378820357361927261809585024411859259310645722794022383198184019960883906958785829539346676314013903206901954792572802155909085416750764808292252503711023683372239978819151075178339726991802991423614201308076198248782423231998671956191034268093879959570151189385030109857077711882832945754253692954547864310773771193125737185862345546086017130957532261399050174670216683852755646359825587162175454032588954242160966854249590317705813685274645302466730008498365522136878668305302443977436082370294323652232462633301596226540729204552482476254819228559159568261722865641451215792091621664007951483356172708320858222675689172979246962702003258118213981377931256898319048175697224453310478595757968724714288479795198854029924719776231333429489429113390584679137301917074249750975815806749683881466639295239255770025025150886510544223425263965880507821667416275867010387977945240432768469001893247800554474004824476391297092733854971976877181430817174352395771876146576131595874935992264498249456271852426099447095233870856286258945288835622677605604010338426318420486497593301711404555032691692458322028487803710433146865453837881414147761523986858122437209900836067914209475374670289705696311116646272650298231698893760699288646984139376323670935577605693421438216022364454991848696034577757085698098135014192109110999387017866804281470153392006337306611167458099539978205163101018818639143131917691064894096598535737723093811010556617318249546480381290978565704094361737879828266354500003081804217407250271941250662020082644361868706512703324559763086734947645784604372930614410735792839728407706204622722895001655893974802938634017253371753170556180580320235812153346213656294985121989932673260564985538691374537503311328623237281399566310165780945191252629236389464718260435259608111865193755397966633877638479263958674359729033956040039738580638062213926125485459123753254554506976145038998633385122937072590405092927417160149396891714125673387398995245470718010055096252456483035287760628778587895071039332411641641384723504647238146544645793394343681609032239386831564106117488676801652767576057145622187603123684431280682956309218740986681109601175128000812019591338104533422805805839024888447644460360673821236700030490831197166836743592382715975722195623290177049297094322231159070100313548789904888914879004793449100570532908907362580120268052469685106563394080546991399191692232580918025601838705121681230630817503892509909337046096357597324598074076733957168244633017774945812817999936000393131574579962664703985991954582235383756231348039399675781746464251064625979366485541767886964645590913390842774908720233608170267681828232835759043630598235708238523021195786281100369672646904028785437921274222659132911708951789338157943407644037684036503750269750470386155749861082833546786744043691875677146760570970489009719344209062468536727027201597798886976245648024440721000249680369316165745788436330386585687840783079593231741011919062967331420447147785442376144530161318479030286856172250004903697186396214903574456873740436672088283904861069123417829339042816185133862592127247563772886950097906978639440633966856737102658845696360674306968916455601912050762658350227509494328290061281264165454637253883698728048207650358079806047120246710264661145774061484088070445854352414512394868232293118940275861495250021470014198446343717174312111965671593930393048399569265028185030786173393049940547040558781855940038250767574028587551324400423749994237437409737285810967894924606367856508790880038089778399310358898432674203510465983121012473694637493736597743453010990514429249412578137414467339006419651003567646260387295161458033066441152667828437792505299470930478268829052209498582447550915771008548212099505167515136649367655900062577936584136113349719991320913740660068365699701860667460778106946236378668286673907793476980636776860540378333518776799679284306252295037686143528598282478753857373624127579663108138213639630525005469570354590400068479655015336894234445399851908953321951401740289125163740221182764212659265639940411934703206963861078767936144494715313305873577857677573325405428179202122685918762336604176073062729374415607841759198207959158358541440400998525784913707325534526249490605529116881454804284929377532601764254992910873574003831111239794482291651253641638720652597551944544572034258527231694079623170330597604232976265404101901289865353730376937398970026372040535007610578570855569458322820266681873589564214626174339168905422923265176746991270409402544128561280769056318398298360238511872956725933423838059097389814216810190354647857990869712418414795576146996749040291994627494852550614385018368030411255371116141645026397651979824288287802663697829201560825316483646610120990128612428376435370329424015208288530702139319182352370458610254357839648555966462385848200903017614459168436960097722246068082332348732074671661954897476862112659352053461178571369541230117558593456432534757780517324092832409997534159827612698123362834141214527577166898695833539402076124917525709372466652815069256621960683274679883774346430902657239221394035913758987998235079024683013184085077111019197328325326058818094124157979709032513578244210722269246897177519650432738348326130299068881374094915440140139186840754660993231744098313054518096442497432764753961058535880750226278215988637692218735533689848382278328079077140659448043380260294138861705247449258142746039540429232763328455285870092178798034344762135990181499689620431603755378737394584779813741905190172571788150647224982170650099109423529233367800384050951088237027514639940122108169717226161057210775699315087466868507460955834076292034649586650122457913158288987605440810280931002309027048772991230766191765625605845041361004706260394421520002066817092377227886614283850531898998315614124400511354473206245287784773392961542151443170024249666910597842993918591179725745086121685363391254555600892098126729876329668325886163633731288975008360504068585011489388872391408336344673924090070229119318850786818379442304650812067511804015322166080373451803711344075870381660908956572204280811747432932508794085903790065800808134193204275361982012885734200498537077682332498207034886772580878442732643595532228789424667946278594159553769531114084534674721644411332437203571011820760195624311837466241642467661809144555276411109999517103335859756441748526618190118364580314059414049250197289555279011287327276705245661643676971096329672842150162735123287842866365910861228506667386092335060577027228393733170933580166212022269674940201560031386935081428849454119621096555739501363798559684916243883231039167638252333233751487769643806170806373068871485713684665954587184681421257706786609284051203440017613716486301187620809218753211761676840912263366551622933751449794812980687520112081910568826066965644213125414302905410867071793614997753658658887657459455849228838764219170250462097243347368169302108497535032436241476897146969836404532055805768268933867480841695709009566194379663312668885726493152318687583072317966082249614779568039025789507069749160066974029324630851855566885686544746469847503688633915437175758632411193774225930803762513297658584575645944900625347109986781648236880976454905913730691636887190265492119287672531748877127950303660997638029305845578550865600273561783427563183918324832077280861741978302414242148583309121996107970164418323052162457305213648261519452625118387759015448303543041904621249886509894201981418699229135733854161592624310983784465419189964338740867747949983936094800293117525406055000514940711284070782274946575797921004961291480200957596762043378663252804930107490241154165529181497762366480174668863711664182912115635134870168247923892439600958827187417920528764830439654437469003693567849718425073998372454070859933960264459821421166383331196704971004550492937731256092714532609750333182301805988788069432293195908954841174120235773893576416237515276784674134118992458433895358766838930164818092408649246805609386012522644752396476612000155062645084869328522911027415386482976716219693373774967317685240719362005745521132484508630386276315273923284533456251316892910302799737153616380985869600877722984514033684487994836012173181832783165121351911278648756280181713933939127090637421330562798615266990136331129706237176197711966164301365149587416901327604199360289781888691445982770350087573960599131813238761966144005089051209828161047107517243608518767450978935025759160225819447572819066253203508391939268458245030148934878097405502536496891395137326520375078845363298953581282242523404315166240861452760457320177876056709193268328797097310058139553685043533448675853011171780708292972003884851770331767139280780236346598524069849492086488301429106828062902781410122633740054319188404416060623015415878057055844258755295258065214927267528517159628149461387241198496574447309853336123003311801163540320067667625968847910246937484652582905930600987804703548312386550293618882851572265682523061160361811130626345667881353231376578342099536358360471447064015881064555397357733633914421033374888642436189112593540739530003811107140135104295289077426932479558017500060733395900315270347745632937763883876030721907603323280847896582147197472903839773564811639020084299696205083035391942207227465847485503038861750250648445186987509776463232157097150273126535255594688236746026077582829591373097839383225149625951345001575327915175008392359518131103555127562584324845807015764479054859624586463059052853063998187829595426431664551816768397753418626241798141265495950521220145766686589574938921982101402980276826750214533181559603686580670470301116467620043932225067193597772510191839056771610397111094441681320671233722869146119723613283908654898122215169569775805853409782562339768048062601935055058092428833577347186914744850546055225468317767771083109207927655316837053534220396755867773059989230672609412030527527169506371696982203734989299365917528196743442915690310493493989304534398583915184445321295697802503635702661034357759872761878504462321591517254862157115821467958140638723404598570727343132888642050082963388723950188169985395092006206807563822288165744798431149501344127163420200191972118444161753957378599278639328942727738589265632535306050045231614037991245950884984670836079533247334879166102990196474278670040683925287901708924600693021060218426563358455930009444522019466727453188545971534101593895149392060647207487985407594584944816409095665005455907460745150568841976845145238481893544832475715089235974268979920186647163233070268164249163676685257303732101934566843500376842301471030113908043469034343525724157875450214030455084379286860556322251699605410133473912744893994135995924198932534555211512353941924886484010674064695424520312080317740291807185743712988276243306278665974706839807969567561247126675672778106813913455443803755500277212087254230557667650628170146227878002540450626059078442506980551927447122614303553260553186608518971400881223568123877071551622074785564854393451105415793474679815288312864032941965660513250433728214927624194951627285392989421821756198048506587341559256887686932720961121358367144016174552813942864508180831985845521533499024372563379930599784546107515003453974979222278607275165105477952456193312152435730183642425676332021264928724308032282182467566157797792901884508803399682898839138310544843124503313578546891733338867943347875003452556610649566834619491333000175234504514173816518245511084654583506478054581706798030003926256561556963832581381454627215504378285677947107846206633018770747861428858501959242316709117820836509597126023952721967209230279982775425985181564078573651306148940868438390370395101979142298129145458784561863601806339590076348324385650636254590907002425053994620981521460189192882557727991794245580969224177045880592809344252723015079638709380200180373228015923728315170675903142144221916831705772619330516633185407795997353556205221846800838570656162460383298201008417535817360711912126402024048122688923125088109071039008600181705206027230358037420538554094592056750865821544344712765428782211019357044461440639712009950581765125667589579277848545647836235497030819230248931074624218576536275641693043758433513053070216496432170511458226328775590790250537058782070628734235246152576364692152217837536027796834345002979184485500209008499480638925581004798064483303354496681749131966698347551079033965574468726407312676324536324994156505403773127092097800519026767453154506736391319147959520969852652190665216897925765605953754203966675331705736077183933565399472778168102416010562719924826176597750650440014606514319154097106994440395355107778446865413295990222882075117808443111639042664252615393029487212866592957353561622823238199245325222714855661138300662540913374134317903234146910430205172501802110334720854507389949357183446162018456326977674343155336425908856451104737232714329490658116817689360997042409906220015145044409011766307043911364695450141655898288677836010575702750847491351032867026772710898204462601603966588367986421368074450222746523948388250074152173042153234667956374359123155422507500158618668140918683767042251135163804823227449952392891543109863894292550941611192235950584806082107627731870433434296878216278716365032714413283031179099984220887348334705145377431510899202401766986494605454842186766417476426292279389623893115145988129338003606309389087810762258758029126897404538783883968130951376834928729046688959480789061150697985153146003745835103677325909585044702041520400412002326945761555612103337865249487607622543525216692512179645639389076850028798408318077201649231256338135481321719085790708279587525744435936832266008912146916392642013098408462301578934653586378509328703988720880675099292865255793074870763377952102372558470302002654451031479056692796038605208581681516938190975463750829219152666174987328471922564416111533999505212140349564232656487531677653632120354238481243902571245929467234788616681704503474729288082695752963079254689154588851968718172176531289116806721941318143521081234168649057722593387591477224629807856724342179790719243351543201218135016006866743241382524985472832875168202164843194587395478223868985918437333824554868307892144297551286409960623216914092318776424527699029997737868067420185147823903504643874705507926339966066216154878353161719462193924186727755312663608442437455528563725211708315526653740044839648893564986048109320437452974746297995306610890544631907972799601703165417233548973838385148489521506893772447920715684256676419328055980245345390530326679537444496068300237644880963021662791521842736493507459732606779669585460662058274144110477147097071142940816659374108737529669789074189968869618972854263729707016835179600269646504225825179666818419910974666282992115342066896371917905460275629035410548933540810187298694857648952434904532809684030369648181805150824012350595658513113826172931576952570579586842458516764404988290393183085327431604778200186918118635775640037422699634788866200256192107835570264155652993696689969864830011766674168310010041464914265822066452624061805547317314720055400377604119671901818652591908904266070658025275882590438098839114373529566522340966239414586377835247531380466622406353384491283399263040601914178249077430186867078251385129527667773099515225414782597283308507950266999870465723314917797236685719209698456865458196350250134445382971749848767251285105895979564269723251490674462740635952760729034594897154453442094131488717388544780120365103544774058563725763741947808032865906613171451224232063230615505356877713367951760447798187177623125247511431103075105469308493463055797870740511418997950566103808855469129166368044150342123427145548825012275102176357877764087195665141027375586833218203768585980302341378965153544623943638763245415790218334567158137681331498673199928777425578827633917252975900493783138684944815728167187634111877673416355106541868986172046637334934187771151240701980958762491893401325448078342297475427486141048754327734254341649002304387627432737051122152993192621784141647616837313665254180427261771830144400190081660008798121971285891450904960603205385295066769049837244051020136208162481228460805036628536950778403427985020315437582455236324540888057249173625609747746533969483664265042122260140514813416691574752380920887751226108000668343680049446792217224090341621257241775261865550698682099069426494752504268731430326033422129888698454650632674762261085181773140237251364706350829171856513711499766387528385611069205835436866069364296435996957889524877344284711617224106691086085192155660793158659076452088430472461841214207584702842765985460348711456749103040889490033030106436082949382009775040943984778392834580060487415905652607248118791004537254033434191346779378548199452229922341481764725243607487368183082698027606818797586688955801372962825434675617590886224263105946202935789412448387314899522815032801186225560689679770350205876266707851421415135244013453473527812707747600716626538468316653835466376164159185372437121077335842144726293852084160637728338678832767802829481980194864953441270003642696894497861644620651783681664853917617835863349046009510705196557740967255842901328325376022088246141234258895926144688466328010989918921070053515408476170756304018271593264802498706221629293959147994966223712362101948385560761781891132489554006427585407374013703009800781829545271205747515032044401089952400497007294832823931836762903693014446175241900777730644414846800788336695721730554839354712698478388566175588851275646283308880463385428840963467132230322775156531803003182461944754832471748577133745388249695459093301012069822785884385269802627398434050529714496020009896277672969318469094086215162129522136716277579383298735791073831209550868565097842249107793186473339207819647039902263647380625249348134150335896604189564430273039566371233342901347994257976327288706033192157684751927508509991445073648782152280969983750665471697627678398613409044890487425354077322771362231919008885846358244209645884108498465869282542779458816629567762302601913941161103450886326853994220691066850156027093919384194741005601109771506850516937839309866250114597564834453002842866374833833286813625981039138848517461029282133647196715265033464240759929762172620070802212252377843375422916957221521125209810660811984857835958258899420329329864222319994688282043853214781764197645188372398230183475652202240213431732600832759082354352958095163796957408118772327122394855301907026593773757402883460343808328145060750591336554020698730010848461062992513751028561389160195586753252823000957609196501022942950113337533126931832767064573408140484765648843138475595220761022325827011014851434312865882936276300883511917014135330687263032696551153250503692384978479139240925075355542255772746684163617168837335592965294406666613644549989832386001010593579486849480808975006629930557921023243751911906270454565800948846258681178100305773649219803887586096383892232359772826514372622905793674225441815805560799571958763343909805602881103942512744102425224165769240209496142681838230211133231127054348411767622566107874858949210914894223746890745030503278968964554177946562697999822601559637173356921486996498185201079802131680546459476721103757404011938173344039153839528327729611668695049019057603168863039678029404084758317440619980268690517095491444013589379027265325414454866303099186646148516041195124133429341988341958462522592648466646397760674116720932752008251326054577521758537005617129620924939821879629250064841165658997151102613914580727239638386516908839500871369601360301736612375862978458428972070503844815695274496044694797583181473722737728179161049688205063465009034298605105671407167278457693036252670841678063997574951787465582490025372920356422640546772078540491299360773260302726171449047349548890517438688301104479552824517735339965178917595064505194729587668604267951592443780998724565957029161411928636574274420744839889829251784980297247879082442144020985790376424001283270419907222482630418366777343424297151302328353499746354424588847114581525381332911510198466091314851643804955753728156463280598902107806981582888090913016585109745132559123279758547648755174543102409718933121625829594576578985059291822477072580215305489474328736858416672973062803939179012060484120886423341883130942012938251769313453121368890376387638200873441405476306711286817078939789668384497303457429820599036493004402410502091646099589715281711350259875859024743665813955072109344791790529563947649649398208541817142649987569646877610205921765389665659547169856533586362576117532514500701676677055773094592491315019902855066356970679555853893469652125578900488885743376561546698775578163152750034164722822056350792547138246483122339034921844755395327103176446272039445806882975278618522365649750357288396423871666431965683112304113964286439090551548791812229634860696968423539059741719593546150760497335982730150319695019068000842217709922734288322211918295422874638787449477816461883727357698312921816364786210668096229491894476394416251444494761736555080873472407275343097142110899137012631461243855814508444735646681566731630252507723981709320289756913378513828588351151239492454831335308550713693208688579749151502390264448060363356089522714160039653055834870144674020065697094644396483862013014122757188138834557380084465047751781671303205913266438318027809529322538556740217750407422700116597262152862021860555049926387320007904516699551660682019895016593587147484533124690451359318622428074899796265743991104612316243315473823255200666589770530490152964660940178006663774197850168315616154220600222908071463610517113860429469697979112419087730962703711190968571884531036705735400462096194781559513329263984183125913720628014767891573856243759740856975882121554807972650506517641922404247159312954670048087553481691335213982204692086753478543702046037396971534381827870987700305206271232820953168082102114735817785487815591717028721263273216426205124088943573122576495887388268820041037726316653690763072505304862605629921622473766138118701402815974016662071176010881153800488932675314087398095220852335722805556285647177144271762321764093939081485127797269463372214882959318628337250456519429640810696199699531704514002513470316219978800298986328228618791725778745986875186901858381267553718600002054858352147406070902200072427666139099205556788553666125939093766475512911343639797970826771343190889973157387935790123026852056883903729627728616626986124130176892620780469885510251007708987393899789689550481747924142770666817987381502874192294254028415598510136300846547896955339646396877956284474247318410562595394292519346097612642125204674572917482903210736916057978510685702443002995551239431413171347441937587796737987176646763323378589241059728053559517873142177091465351814710540050179589008541180355882816968219732672760774511576661480414038282014720916517204398616823197145843223923061131098208988797159496573404372486819950519608591018406306528166251295898033253935311422454570300410970674657759455310630903038566553295724996386191083457291388530920479413008133771992364946207344677509133309489537618298726129221090836784050560220677180560883697490133817632806091056187175772118018953520321958632230419897465322839065893316087022576656636243408745810009027283352819018628571435502535482068698613026586069344609004953374786701635956647435451589570153813426563217889822619270486976435659241960285012771519437617636396159005211525001562294651841569147814472834439518078692351196719693719086574621678884141606896417912123124271221576937814049813500309232953276943350956168148910640595733658864883254245145282821112038159899213430943200772351122613093849168425312471290000984827805419413981013076776965703188065580372900979478514638494785541885041524042772250387313402169421061116411190215833848380700709093520216778345270999570115487762673962094569641538657218661260033648280721904574885024685286293194620872280244989103217728553292686134029057580877658482475644613967216065423889321768742185482677297990352585524816876936576281987026195172267016149136203694654063223873626026078912370401055595598656439210671038103434875376997636123116754799110152056297725270478083858599555609122846182834357303214191254712653158114328367866972430773892956559039387910089053094960418741345473164548041703322672778881158416918996315527528447724406306268031442931535388893307601284961577632592993386401927989621426701730817912759796126034063055594854519960004353482938738277087450601501229512110295898178080122462357420874074148747235641139074121341621900479187978409660569482002363119781130677157267306909151431057708364562974900382552960346700998970659809598774486072995229326483102873899877038960199451882313251163916400084208005233327738723920866201359092494616192443286632361997378755354653383965546343529266833750283467445048948160562252369142311462423779005244903266367824460387766015711519086581971283019993519778252997311379734578762819116990859889306076324961770314069913488481366893888464406254883091844038574821017614601617392063308942217660339188337824182727456743842518056669797459067091862914027173072764650287655879386310951600669909756689034216470136147060667718636240233154969867080705625319143048958966725140100571879015299693349681249047736810287852634732244295796021909563107807585713502414166088443087525038146959952369172477992311559592846834981635647513249806143997858551316755986787024644079300167702872468911555261180917236183480406194411747664548641526356978577571031967030154056048747921719180279526157034714996655565923389362844074573471004691278192529637002569653381951671800052488163731319284316752798426386760198106177585150677306084284609649990324083490467609766892898727004134159703785387887167759178652656133620026863816360393779942569441803502289798951529668256461087157690993336930755792164153503827295024874380187703002395439251534468313306203166978746137840108925660201583302680086691884941725349424210597815369550150304133264008023123402986459087826171875642457002228080230056345499968810914664831761121985119605747918402845524156724832014176814144988716731600346499506788433812300756372725849211442941798316011743230034224066191671415838481153254189857384025058278488873389924125868250602228970456070384731094423337021770653686411818641615224020170926042706580307953022745001079195267264857711988089116865868172089785503709850190095253790864348710125423389445235181842638449133648023769525239599598898714579095906359998546889591581243827741643018481485792192757488103040974833365634380635024348700961354287645100197539734994602587723556169094619941719977303217096624455942161764040291522008318315129963185761289487801859836163302419841227558093881469391037948513739270113380353448985262956173312856684699496616650095258995340485866913210500104535035622298161910539507382075578101679775181222111009104262305911704313924349617683344102639533526169233584234598421172092863829753169356424549313869129684613648526962629637881634167289985969281774663675570442519748113724025077930835779501261753073391129551027529885852500270889093716962804057574656366648693214525859991334458136977992349540415137557711192189123438377678302957100898753575736798128659539768069250790200408517832959712780924981441638006132842004964746785448296604831221643238705717296533428086732972170244715305347068644316398244017615109753173323629220130629681497051191973522308600808409124611703838688195997508238202743363614399325093461363143429666704584674085205224300828119919513350888304665186164521654948039396630836181213361636017122363008312996068487333365570600080787736890702958571035289192331600038284695425901913051143292994651286990352027525333320453403334192394900824761298852154945704224314894307263971616768607373840561857115704809783571688092786677091201658371101245862957699321218709627146508668684914791816442580380071802832715397456586262433426033072418525080522634385204773197391977680806470236581980896424262706830667885179904903036555881213283723929189164410763535541223900394448810114793350510136216856024170395938756019776123349852483621852585410640605545431121657578993659271505361524028923719759834775882376934156483878588164514068428497701585815715358173295488989732301049387924093270842275779891255076847628300858635359888821730925594768406313478269434946983857739309049324924735753727393143374557819698282168215885318445267274960709932304612733282157757200553964325549099685237091354401345167788183829277737850219010130108203191988302266533761592635747302992451907173982277762216770594967998463413571747533799999971628129811596165187649984550940375888086657672683670749912601784198286511464173921531357549164145127005524811910063159279881800722298518791474434096281979400007987376289286830731692325748962095754366723508087701084952931396502329386071811651207493475777237831294211074793675707039233953408914048680504592811413098743109057462149551119301246720424385251421451607586544578784966192262346186437816377140354088319986932969554325741022528762724897823426279934450969058741206854963922866863405077631762964909393447311141447448395327124806012577532684294126895083391405357840252481485592564559226202878665742891721463017134165012175870048952990231435610382988300527132246948942761623998244875040167796927144862256630022142611164111997229501992406523074915558416030940982945033646279935920030418731916701156372137452560987476406242459828779713666728084183132604187562346745246173512845036512212811926238589631746526958692656321448115613464337242347113002345183575606553359586926877803512643279920754138932087551636307706815093033586526440884644426594216297292202570176735593596275166049372366439723448281309050832238455589301004463311382121013143293257330767958514439436573654150454189086946786696197424840167155715971211736392536223733767899319584936324764006839454641155270586952962356819689591166082754939090027932427246663044449736345451485386256057924986565413772832169326141595921326935125919043312962336288557262468214696596135775528806591406471124108414066740208627949319355135071118679602590256826486177341653844677620730696856153246073866263086152283734316825010715299929843235235699322297605863071650325286721860599467495610339164897491256693760761086296883448337124129688760042431731368821193085237444445912054085861403104321747184744470969179792042663138258829273834377764542391287412777311927618507609348223495854466799088206394338972285181075328876254856161431889100470253702108919973918465316977856561154478232164240475199527113085355238650498841499040046913410720747258587054280180201185784194080701969323531857853871643460300370733045655525508324586401520690350568082956047813669873994437386996421521878264722802289640826875056944849965735362385168796752717544554063047765303083418356288875366480120920440772719689618324191801774032276363164802914795470458235476140879716266959725623675331388894859975988771992551409667718163998205118526589459909502269098042569367664671655822683776464247459461434218151899055343726477031680885167766495542514039972972912440206199394252384586293554554255144878225548589048619575923928407716940609832057419750154365881471284893785498723656731544513809139660854030719794700902749141494457254905272005996659688350382113895955847748359540156126444460096852782557865694293099154231775608018972935981661844096638818579611893198764272999097308680615711103912951625257921385455298317127922693752451003837855540140703613598876113579271511821333432875488766286556526082476270195250168699155428229742376855346005196914134330748994536157597759847271093219806427381866699672413108016760761825413492072161894532602560124581803485866650717739391424432112112691432239798033253172778648371015311396334154622241688109998171811494089606330498080221651351561050587630372497377966434032691593938894935983093319649949566370496061217860517255411013225884544971066716927304894572327474938601642185551623542796713098379427614611749738135877144813617970848210427074803416452386269923721414418293847945146166361801660118505888389331480297626614963035487276947436161227210233387289258084355144695127354504134740296995534134253338669719402028572369531955321639449634958319705144689033715578043822388157881419635821379770507241010633344127480250058218408899566169141034303026718868833404226317096046657956863901013242969804168838524406008273354427174794261781952395495032996965311675220900338415377341092473990019843513070883663430112709628565121238908880480764051155941706112313285252710721375321950738973940003424621125900984708477376213131804084825301892889256556284220653837559470939126368700977876897828573149901733961668645416918387580640259168374096101190613283021565365552356382756875844836851566638023614352367428613717555878004418997124921476809288686105940489716818207381654078350800749822919496675690688671053804252651870948001595762548502596967189569233372238940296892676643605843200550283678241873594249846265752987396732436161384992879637385447506044408251170866064838270361739640446564283575682500969837365417808693620045790431860694342295624783460400710228069767573755884406859565475269545973053065232780606066342996225607144238485128056042982047818883906026390546100123962006073808151122589601427132052609142943306294027528121993411249288915161078507744425725847853694587159141489708455487910360351302477005569337891232550843306846370147700332554254230782444993497173440075260340566995706127610320743201429434001678079225934772865664872422504096723321438145820219184119111117328778840526686568454829009146003592550683635708547976498006081248535439383960045532670871330930309122367327474005514209735504651284211302774465434109430819062373184078619024740220680446060153396798359231680718164964546994267217960420521754251267776777267953644692171979164289972333103378481070199251292131587570719027718571600143668325571555032195167430241461499234539881914903634308506686044205270475015925889997495685787164531458434673363446291405535748820757440605147996758496888391018006544112809866870349639490958962689931816783815847254123076514649570024247976090339197646068780464684200405530399229011223940835505381451072491021624875412709062075330569744735691676035637225161563280466032353524038741699916745563527366104498661672166488967522646757202921550651624312792045609554257570624823755735706752932179769348445068407347858612853799290155330370828355195458040227654077004538859143350789964538629474931086845646973541296904555975456573493392710454034052823265027169003050380930677469327458901079849851283564947706547771318214697880119912521085661714573427391970994881117615778971959433469758921801445697000219727556290691691629945595874719620389310143130826502157784336064908000698014699720444935893814306578207923482016918818712093807550733669684932131282047957046946830533000609339597220347460191802880596186314619974803665367420723705216108538071362274486845168336852143975844856055436123762979420060324245857504817107124902214476742095962677404289640687280444769903433029537633693587639922349933505999088609868575200730930481932080277224329540249810477843919496632455211495341871297695665441691013610196085493888757620154682365022983119750636907522412613383175821262216451999730900843406764682283720116063069043589923509649952402889105677313051801667188220097592522215468841514081333824521341385442821018085337970055825845330863433078098901455793138293120874637026704589894747448763838742377357765527400304607081023805015442945508929471705004387397671981821881727704523541188826355351580089687726065200617479111606686522788699770377466736781954746830780847220383748216890944035120949972781424932881191644803436978353750307618809119096550879436905638749139958518881145525758026611604947964615077794154612013509228927886349333659395340633287581258838957599656377284746071343374875433032365143705309547330669946514638732556459730497160679115488368376362912630320255881487589336606639012989277051710200102630479595228632643489985531506792385012755845640545856026592178124431602936845369305360349739170052599292824597800670707341644215232603304893739192244893026732921375297164965758579590647565071538691688417575323530453268200872012117538404607103990031688477920249880086790358664844961389228062281612768369622265994506988839706081803180809449403427052083796882282964142463336275496236205885292734695201469441357035198120170291255223405812041958853452618215594166208791066218908568566467961264029749642459399173563729538313034307697487362216900097533595766956446400856805716408035496340615431038318967540558591906567036034763760272658810320842268794166361744239319677960474657452387743399452361479929084960864082853278069532486382423582873579810421276548745684826837156333730389038496095189777528842516709401984211909373683119483861899747080090990892993322911527681199977208390669419154837449005756306901614766988034522883390568202027339340236701747186969887330093950564989224617058843901646682408307088347633422999566932011446796734410860863920109255503664806496010590143225382188273730692277122508297253524326451344920169391905827043625340102858792786930475320026815949315321206756321423330929823458564453714409706198027273443830997237136177736385608029358033206261219711065275599653925557170295466147456080962110137717032498995810574339287992967845660920925840830309135270001534617284164976391985281176813389925177363241871204591408463738219542364901009805888110997078921569483726021290098510492334058344178766558287132051463995453425098303726466423717680337716205498994178242908525422439170936385473288303960361133454571467984734948463538582587647365577410299987257395248845601067773350988929950948091910764982650115012524224046522827285802931861047385264669438632161199931628762859398062164314494048489354646179776603029177369387946117994952643084955416806609269288076608647327632061986284405831407323626032833037741325839006636417718392299649877277253015389406741865448636999959302451647979524175587494554518033669401303002233075990254368675677181568598044761616389585702405703848019460374481447662978009704025631412134445850804657575564425946138431656854953493309574592503625111631582704617300735115508402442177791340709610260612771397161516163538997351801985095729354434803978350136460487500033983644551852950386231067502263193516864125312862517100101529827649463779679519601726123007477344882908029634824807100242663610706470539948879474010859566575436615395804889306234254536238077900976993842262724764014769808277414367493476317977225980431635291621888952535641539313705964698756887450397803706895571347222344661765633771375664513429509717457907316502799437657976923595474246711180046458035392867174329439698684671643988652670358497292553463425590349247231200770119410113309694826647287264472261496202986593283515367016071381385261619030902345149980080177498142883247083730350093495467972743706156021363632083697807243419267056118877901048630215084131072906528797627937775986668958754692272228874319288467734065656184278152300232228491345570526614326607410706591911297231759491296983795301364931749546760846560338270739240386943710954086638434092375789727745589483484216695336082549129033951368502777175187318322082841448467804654597225409078102843720714044129708688521188550774763837461364545620322797664304160070775995857936136688818167056940204172698764202287801814247643820891317944804217263325963026215059974483629817763818757730392799937342602366795195791430546103189416366568710190361040804469124837761783323866228768563836399845095893441699320963352641883896159279374121766666828641124982402799384563705201242706652483922110171030759200724496362429131981827167676340879996035792586967532140028703073164950048974867220533039593891826203011860942095493568767044127496740568978021985185455802985330357846480706204878745850399700197242883552998836665675341532000663494571252927416335647480468581758057949382047756964303067216036910492446234303597345775222703024451551403285921406308629848347547596153292909796471446097783359184264698942303440475786272792457173784426403178691576813605007192439021498753236838478714505090114885273087322601716674479479496121891206445622901481624512010675834133572756344541741777474423423998940636674351495384911167941734767099537132993205163994197642690614433985229638674668844027143279429723308351870909956980895063619127735271120528008300443048543121529356597715111856593021138535908928876749221037961457528920274317037618698255457608138323758470917751308591777851880467307579735984021118578013976579038159674353495223301436482648135360809988786951522646453112728769327561553326877016597826784465940729831118358590794455156932435556349776299946681547358190287858896072023775621762452794357323872454963253317519493473870117166059885483204288947008940468254767797255608061751205658432369030550336445887769047617805422497993547836863983811049792973370255917863163407177452275605611956503548173468984224896185285417128922275720098543646029660899560193436097825532208128935895643511557325610408783369336958006607989171486456880825911880112105546445995180259940000534561685993123618109339789904771528451810884303547522747067693417998470076555520646094428373707163184016602809025616834314130127198369857780826087629008174973879713540383336780248825529392593715822274015073547356795103744724954528426420049626124166067273910409590505197823247606110028385881848609621833613662314963784279696443944529761302889493540645239454472006744946714554807751501881635785799362296112411121421499625277858227053531902543086354996229405715069488230397320420165392519146945539315101808701172739297040324633283928873287860549193317335065194966877721404560790171616066371264778734009692455869214402067958289426905286902418399608232489001642592573700348666998754017986041377996012374287603720985972989303221639970889917777346990601600060249154804569707019648911418026847251683366255249653788712857694155428456696400164878134791222413862769272155790183738511442758478815689465472280422146194084859575098996235857588749098315834357173430072812984000827390808845498922707828674132700697900994655638005465439000920594691788716232714169552555814031772584169855393595491497239835221312513095153877756659349192735610073323663817733872484701657534312058176637535379226835338640941284546539993518772723886649931615767772610359589921764026925892062638273257050592639166150618405860913615533943500555189165359853499386951045847611240460209403517291845389940742675874436690913804178468469348732491517913372748368430178762756149479315543290728661373499467567811893454260793786931384039532792328770393335014876038783934784585143213578798895990626989742482341486136113752176696614753512924431364546192712289307529340572032197102030878738006811751517011791901972062041018200895629930530534510747986911559553886799675309422379841113732493547120352834944289985765670145146065163768642979520971087414143939484898328633990958965838508522367982248007032575271131129840037629085795661398871593481972518004053527067817534416270084595945859450848660294602081579511389274319920221792898891119961437568157619164806515035678100797567178722339690705401879656635224713820109492634007406080585053809000283104064521696276850768974765237541627658335379708398051019949225979078366096763141734228930068763231230082636897217282937212891705964498166589924329815740385268296988469955381895466629015955659703018507200006129723862746384656616569903290931913214413921316178142860094207978741634140251636341999832448844803784580749082597589467399607268248046903684423963143788443179361377142899918602863370073665562989672397117341211628555988277014457739707575159918681305068375490084925785779305973328968692866846043355916952072416603905666335380430814365037248060024080402144867893806304350828024968996696060157400727681039123554187057837541917560366717809864947775714826427748391866232279765996481710564386094337083253248525171925737423325909789591409482004906214414679856990184677560073967999377386879305909619200244441391438595908075048779696662570951993830047825668013849901590186004915064154525393433747329346448945789787933224828926497747339607501325019697528824239666345407886635205430635601288057681983383339861479790220371866266432592592923765780479043890571421121833343928686506553405746833603265701583346181733960989590621778986772643649440806319811480665044079044564257494039258043811643079233152592908273287520654015179145197665633791843986613121218927778588118993592805399434372472270718298382576881454746896817094043693328981607232309348506062841140283346842207463170857259295373788668352899331279368884501573969335201351528049408104906573123232259390900761239959107972881880733581979431349177676622539811307666673337770775058871125074451858034598367026612420911866082273235875982528821891831255183900513974301928185798008620624242886877642972579489472524506791887563957465403207932671251295806198592805157824112978006403802009212844414898407628560966120620875422927966166890670163944871649935765832474410791325981874621654139618210793391107302250510863155508247330786229365126711063575659907627400946929625070294886512938106734228783218675904802225699996951521282922768712841791210575189640944102356899218843816937559882397125684352212798540444091959027730091227812990048413175117626590910568467314081834402343145044804723324194341234334036000025323306191641037621085773136080054296600816000194413623890607454382287502250218978019475274681835221239998640055889378778229116230944609438507475013938414556230331751821952295339721845449702426780429297434259243639284841604120532197469290734506611617973960934736247309924124867491517505414134418906670249315355084123949904516469822180929395085057394784274306122514622207384357330337573341077042297398839775705253357289583243907072509947317466105132794630169344299792740702999090116645190585519743497261399814489272640508378302885350928289965200839430191878190975732649806285596701775953731040738733839061319073286569977143916192649431593854633371981101157246894447007146793631279683545017674494538305861360324549506045736808317538621090029728204457884120922777480415125266273921774579768544416497713041784851851720163895877200890415254773870079663949781782041398745899545324144682897455404958186278041293670615765581519501308189172836654138863263855820996545194353654142681923237387543100571499815089204252679357653138720969449666237971697848630523360561770211210452764203107525958060430226923278321203618864771681279992252865142371144676827189799080187681278517001578617350781602225000654279274284759851016107403261692993547120538452740923610697859411042308529931048364453111532201669153190514019488737406376923080104177283154444733949857083128799490996720113456256315003325599969107856800642782846571300352062967202179697294027508630479378125422791991923311432662007445870278748285661052238528679792644502601230658759920012494875169394580321450532979845299884413076777352727143270542380769338439789634529164293864240164439124180953872899343409411894008295501315606196333089948878575352407172673979397091618613040630814910632912841153898907863501110709989757771640769662699523562679525928117901944499932468512767920594223752671023138812795899826832508251724370522194599349913098699116972284685915494648672511040267761920023458529897948446310268698913451395469017372288781602319171576412050013385855843739468038418411249711212352658476938409609696397759831024804042866979515029215742756626055206181877346101030814352802364113780502252933614885458793469484380025737669750869789069945386111520147729964916190765830141410623776636750969162196185282544297832943598131629453835714665715052160767775094323821358497892368742467011361732891580197805623674005047898240586405659024448951838228032014499024837486908569416337106118095465836135893445756639155927863899118818871306421456348981017083822193230415013150446120946021238836858078774825334277528812996103481769025472011287148423484946637263330924590985635717159651937606074671519865720730334444005582160665055690393309175129715003387553737158436337123991876031252580616154433147541713554153869309618422770060390335406573149965801206844827141244613625103980671894015231134319656298699302569396054690992591115359817231115818126404397791647577281622194218447324441721034418637035145822008542390997891419193814461774817946007098426412632954652676084841377975121864775569044111213679224920250691945285315323977250936319008060803407504611740331913991879991746467469566153766774835156319860414561817820931977426764065430928824075715149336209427773441235611919492992760075660395133866743488157662002692032331326207703578216431884114830439723144399827327794355216769625697849045026083607928986829746783441480957723666074537737909615375930541686400330909712064259722647412509804783017692135009014199948530554048054708236552259671947090270247335685647211629398933483275206021808130586921316624039177974895142548998049633385067925847381771178812863078716431607334439303735014941587724514478348890353041180676354661449261577859661569463914793434195700922526928743859547348920444223794214867530111150860566281754018826972125784743480157358166534600747819293916764009034689252507718142866858492212014284573410354687128787462456590837772923970847088529873083406526741896490782723641757100137395664359998690741830083601032117553446486112708475301905223927803313695615866797120338696839276072039282300039398648088883035653971156124693808194765157052547014458366324504361051410781683226083666482582841510733282490874926557603070917370523593498938823637686359348880128428704523272494717130371214187426968464882540994089102261968837117306575765803934868131833771968243401461930532915930259719453954914077901458652233509076040643538450853414059852127884524371959915057127827726911994745741641009603606942539996493315775182172438035337327405041073890120119629955839799935109500595786993420218862247125381641951108891674597980085496011300630159417615254197414419033952741056122877881099736944299862668385934905116585604893948026269475072107185828668043199788643143761847812223046215809727190066750732230441023668529216041517718939252308275356954131796170608811618314281777426656793656671823886421094973087108075423783061361483414949665469331294710379069706562671507346370626357392441175421428831604619471186811560916891138147968165094328076026682818117299674452819599810347486680405703256230430523547288003329092699316416558395739843154906465878668090035869860849352611311340474807895206728435746850487081947550094574390597498165669456139610893367748386025717911101128537742460293904140099263716011120449770313105069014265616543582992304502679949209800161228648312751783231638615987827843527093858926058979333808042032836136424116670257886471496641702518234285548539799226385013566759017880849499133625767054512528570535052562897220354397253658053990557466971314625600089411748542262842902930008362855042482915922900881348051670549362710454774030846224446138156592653572352190561377636309507315416818621078503313158151274536071357313624174749589274834405379417828884985658446185160745608475683212731912878078744852007768731969397690133726400271642816023841213128325176725549378027047859019319296638019696740618171587673908285157015691567274098917538675428876279456481278926480139801417508031892647952174268133660451488719773744559438090053620376743527831046205083235746682661573148884515104601655046074771721720911848610870796126580386022570807521146842987700933259274114535296516174066736069863272048727699891224267987387559162705722989007007888085273665260218435082990178062976568372024490037088074698594637830812404014425785485864700435186521527573461768374069052111459215401722211442105462766141363376302746294495142976012665730356730402952134391533670050964035752016841375648821388694106384292892462110400604505818231524183753876923337858584804863878159063385954304609268414274447793537387575064399381392190012463440477085480751209716498508900528241832898326791995939997451792224855635805464948856957152197427178969031227396689735358945432151987940298126366818118050810971900525029667180613115575695494065819452812389505944284447536169244127849147772362872448281768741886109223426161119336846890158603280549875855668889433620746492305620827363365826832405110487838158341706056959646336688705313498685301777404050628996064788496863926327625192577099051656530275562162314954492000497876101043677869030321661995210157661379385624509688507025693533728349684729855834177160201213499509341184746326727036209842822804869778109376357906987473483813219848783632581077007474153499136767498628553577985208325994662994355601647193253596831264615540246859732018646435775753163306361558746997145408275538760965681481135731879018140304753936050744207163212248976359368774796413554116920136492358940117334996823807403866384386710952593303825731577193254096918794012229663079867140480405827153289686740602636246227074546251056917149940422004423461866437980987783087161981624973917876916486177502846116853283215123428762816354577874476865046671487819788321459603156040652847992909337701690845264990344548121093424539431157340129713001249005596042665787358083766853560725239062227286163187833566086609161882142792020590431577665133753340246889046028937448027100560813941368413097756431455825403104165475575781932295817970726749511667618226069970423919282286497733574463659131550408084628185600501439286827626764141795282525590456083886689542787542922488604752090931763857254519503994806014174668865051873769922493709602289451119401372427011212876702409001736735029223889082611105928369921985569694241757819514986278128930221472982164064337931618578483095033889493589411232619875052174439312056279402656997045619961158079812758115278063063869958472569407955640672272265432373006309313728460035777142533299045917733378097050686088571787626448450946434493937263898655442832184459584170608104372909121665643979114131407841457329307772064665756552405057780393514750893977128672151128352886618039909040913632894514164658431641480382005059470457654676767647242960293602525707393629429435697619937714830709565293993419722115358712756405935298713929786985969738156549470489228988738588910545811533469348726700380698957440411650073580442453745332423669377334160068975585698385215979295639854795005853782237421232440474020278309297123008960086952301912231416843603595976458547408605495609644606588427104536387965124608158647988656920310406490895943382253413886628322467994056017947335842890743715021150463802758294502098413704670670237820422107449885760013546604302169105526433473845707673137094768144450521106121198470841758013076758725843134375742662312865695228751558133972186489041137053653736375735570129092692053616896127938160061539627729431942886927313498771757950722546365723618119393913865375663974450081002968176707427275028246458948889335420977041056575683013984826235065176417562660374316391632939203386764824060462947633066528116261931581480102555895610386997166503326277047558052203134302939190929578879491980730299771814053180812883270678676876506888496298020493436239464279902959266932190727664017525721734864023539366892873907326392262664496527861861996450598276166220911187412485912449837680517225066736336925537834375002708107940978431614308254359998671273310721212502068658585003872324515412542812661156668107240925499616880334032911288981144814539795110844406315142803541120842928664030699882460259295889557287515974366818200279628730850323252734324568125642452704268220105358690801277707147817540476340512222267735049508092729818419581880168053825619466250965994621149044230421808885635115258435114002725010941740961727041684114799821864290194351306474967996920126899813842395928307776828159679124675409820840748775139002953782460688394875883593262998897227191925761904129577156594103013379236674845839692392511919413146891371943286820841693285459653314177484028960720412321894548895820212524900140132480163526160246301926910398022831429683579963262945713564323621478697389652342396482826170589103842368745966597690185222656354710529575834260820380350371700609884742256357508083475691697164918955990797850763114965839679127212057328108608192875628663435138594780780499586763993130755060480698489749808432520400203230953788472711757421934224538325326701243906130471009082184255692419184816456665756109062697946038697000034428984928837165079172893215559296897522630105065911540426679540915642785245963289593247526095137697155565024862598313472566370440584661940713694541201018881588255797270185569111877998484041337301373652651377634223481622036567002345837251944250486489558890336924259531990565990497662963064788504712693738064433548302410876924601953879138094523918223720167204990970410960479167128080788851164740658818243041371007557116579298367755351067840020661568846510533098018950826072441541453571083939416972818035013971732153787553735975905433480104675449916394119455590255506508527933966681619972722169840929557832560520071350856036624906156496996575848379646886863526426952164841409826006556402188422236444355251877670612561803608343357874340620086391363769980327088632616125230366938167997984265196075092526482290008799969553665624644412785991444075142682204218195220655553262105582916570723344692026058080081110442458838695934697485327336977963216053995110821638219096349509039585452706088360361258443624563577525272548555866810639869030804485314548316286707480065014172429982712602382275187541047074067987003643054914413051235458929051772566131212334787105756639999795736979984674498790195158283128689155952737126239923824147436831283055124090715180147687259666500494872247804468507293293941289854581799649141113831579722991408102505607573651293166787654210417098505864596722095944931660652169899628976930541192054955704323184297359641908484077380880208103035397715881444717615283427965850686291636041620655341372076781244098528713088943770079605777637478957349678790710248751300479975043050086794807310145044308084981668833184881931623820379580828144342591196647329707886790888855495293343093859613206066922646656380183642005435283567061124927055379002129756920025219970339223069641345838347813002385979690084282151588417886829179924769437142181850701430951196320601454620028780408629923572857422500748675656791933257480888206673403137742311687691675769088300828987071371233728696125073721121940113326112556141759003502279783158329235650190116512184022846009691409006226956019726007853924677789978960759089816669188592718385984538962195816298217761722264981599214690568878547617595063974118213832049430356057196579106479243508631352177416490719794247902326035222340520822630633548199730864491454041314889255597835559280281120456323675824078666640913025396267254605242785292866690027877864144531058491882970497620073016519307656831585644881941850894504937330340335657711764989857562846798510110129835957767361926418286666703182935568219385802487412160957573537227160498164159874317876911891578839653374260463090526899744187537614453746294405147536001936523299627448092568519129024717858413765284110982930095481012970202483040104985955818675079988223397467383571156558821342528437000257872866298081676179912051739748256760101147516510944403301874695993162509759502307777450921916305495098034324254677090721373946747726148904622762826729352981794490244569917581093687268002600313001705071493265060041501389210654426232565750966408829780645244474916519469738745438928073459289400165639304313463652991815599636988437623011129101299213040923204375074272575830429395087958329845273167291937990306776389946316345363047026611406700601085465225900677116430431463016734107839625565362741507317285526775079732457975375654567857822288832155522134699010726333496785248243177863489143171694148130572437616440351480912915220611588831430043138945995307440183519670686319146161509811980891831935019989369662872301299632170782185004500232178398619985923394890462349131043877507190434517294188660572629153412034475693028332468052842778148479539458346796531295785199017364935928944995385088776677934916717904038011808786979600069676055356538334126474833941928787410813452977411231979445789100825423044422200894423436239231061687554023164415183702853316783165208330847631710556115259357749118853567073695121744987813587647578329210672478223672850970649388632095540762265595966382205460033152421792248131519362883650606559044704039818951753785097998575882368276549054634786370790061680083235356256182363769055464239535114930003779776900422833467925446081526821088677352277044628779164129108001155918972697438994304980279366089735214586382153850466540378313272615648667362026432762844708297411723210592349535672508767615106954128592167083724205435931398257647222117822375379528538152062188010803229976160434149422300958673515853377291381964282538091197983035737275025230639469996860875048477079603788943064614037708159543483262481669890681925412218945380797564556587766309031422115902273555917253204930012843853874717466450869218405096372979697228283851638995625192145326454666121273458681201276745228768088541894854569799013074666511328866157797610362847792455736938052691713971760547415007869070311788767197226169984251977219265396865431864437794686793544966272585443323808429158032258405095195352313984141139949034719778278133585326368257842823424960183382763974506210609664172787289747828674742474096652860705123280083854341427039782064787062475858679925925192110970291614355899553705989882433295514722096056053566863627654494481707118501617849016797256442955629516375470608201671306439443014743500044396144415467019546977987924834565864487215388563697567748534444726310799190804843453676323035728876042767652607504039163477674351539349607141187386105805090719070409449502341839509268829279927602385468738773378518811157088689718121915984624890803817579409871968356482891776005863967895168741458800972179869685494081783901496931384496222216164976392823209010188360416588168732420243488311811759973946092110632821572089300815498197136454395388369573714695790437024970663342142721119158685842244904488526285566713051916890637178023360952357259647008240303229719615290686250584171949435889122162331318710659169820348942320750597135472972378997571346617474380878502321631592990646935227490209647694701318937290907621108977323577374116322234019682104941532330363655207145676213669977103601870687667882534906770103528268007036806990876047918894439529634578976482318602291498362757247876391965891186796974901310584992520236817696663071241979161548630561163179562919769599520679866133041036306604209541255808956946629436416773421677878213687376571362472482018912781516736306085655079431281021885199304446395264581738241762130330286733571177605167932808401435156979733251814614765661013109590485891985963061257390537435939511399877651612350854727192142923441010248950057420632607285486834210094763350728749012046758770434765203060343693589080426865554143898666299852808058691351785483614164803647066290833880528537425358554550329529591273274776157560262031875944993872396638494221066426322869344882100470455121575304576693513998444010949391615382004476347173193202139249408614974818862231034239519456894900363031252963957401052760029735222889078476661711521864670123681890049720506280666748216187207464796227498785433726894498851276248516633043633983813478651994814480898003049505906067319532907445158286197653163178889702409032739085228072334089405469014372832530597761086894172447799051775835183333579907418523330391460101489485022001848484795903648819982304957287668363922132439603209969703084370666649575287409883967331020989786941261309321236143577716542470204617761999445452561633888794491466536947094336562169753392587822753141620603594966976703660025310687149781888946048162893378192420021870653385475791580339719175441884870746425425748339954392515620561552807708449416550793705440404774246237127966049877483142507247190303896706176065037058016550950779510253015283473529813519647929671235629314454906852387716370391322658761771334864650948367423812541017862712933605644423557289661877311552232886277903350017981368600102051788090365167986313194562295916195778370044337581149707794197245404172015373837417278568659551402290049614155241537775300413119240951340870519366772261706468961505462569376431783130908347817781544407686580210158764757413980858407670377987016288648497236858384154649448637229209712457662110073694291255076210762843825780402624218379342301948132467621980379558906707508262612161104668511958626443951594763825190057772838554515158930002493400285307612690146573058456801575915418660876995033099955573186563672910565694427565533329381947445946285621978570839153340427130013011385177425134751140391080139350551938393936155612992035537282921827359648549493620512502352890704352184611404342832749741301539068245296000257980489574306866548712680780702773398741207236061844406509114402066103151015636736858894131767466495646014490454319258971866799769406348191149954067814298320331965591222271208085150792743115124825495976268201623719345645820212338828689529203013776130215028565873224572834452398529935745813368619258026411384996166970820167391871753726173068187039724446918372672454146705961331744157007893411716865328410122259984181290895881619760455831922370637305189393229079088725993436350109246462599720783767054456412605754833682985398719052884797412846555159189387868509190397784450957790336575907155224381432728410331492082645163998787466034469672292021082737514314826294574042750860806695485206322419868275237298616772526998788927428989679679137103382325656027622103239329188535868827023786845239931735511793466048454923717080488253006173576238716338296919402397122452893747140354479001670124307679216094683912875897485208301080370280233402205563325313626799830376910962411702634205298841396050678994077821728422479675594544309309871026607456000249017212472955365968378395478269915750027082580919238720494463237043266877130489611920445984041339900310716965607632150258492690843398156969718979007921018692950917496503062655693903730264743466094465628621690892599047441790591863043477515385319864298031791575116599165386627948369641870697595881585854535261651999764971459602294643895332196291244361706235014653153205376898734860624558235077790689396361925602094604270861812760652846349889251682705609638132310611274058078319055673781721366615004710641215554088422800070840024735629816825197835642492686574884560593568689839179759427089246137490032442835889787934656674390605518135603031095792821612754707081217898360124653868253811511342282667027043064800671913002040642875859418548827756936833696562210162697568228506374530287414111682289153371129856453076359829275704797377756417276100732752694484497450365956884746928791866376537010991440268717537191626880034387908621007176945616542500733054155828530966819719606118245436730762925114806747485778264909398176373197521721399812927681182707007106179057926964797606545940603734904531309819003060270145646604799838237408028854899324867570563205902977143966287009774242814044755789704915564108818658358780068829993066624835001024793453591324310286518071256757820365908726121906916495745448416569764078187073999632741767684291374935097057876041373294402817117089561188204752851049950899809656230898045374961109010880385009495680286461492324190604748329844515553450364103214553307483513841749336142723224970122270021791376569630816841914860145335417038855594354877080429138927795046692704413418614585337364446503779300632650157169611705796136630844780625650423520676179350553423119489197679575778810554437004131568841140997692627390674304456564275525538101378769239459959552909913512051446038725400946911216762361802236192996103263937872097064674968313896138678805024929636360867671733241511136016707996324991030429956211702216951077728682143249731356410526779225458020925868345335017732821103714601907711976064747856437822088111731501313258031403828243397852580729423093450574445260695318496142397720550503792833683234468642670726169065157939838399316882867081627892212973171034071149678246270810806776042542558098263763879445253805404391698324771747952284990521688021246219051404792629623856440986046769606796499534716896565181450376959646362329601121065163083991333104721213584177922942613860695032551321506714629955777261014108975692181500808692918723951456168551583000834192308986287235128964070804005713243390902612173598077813984459347076048226730172014854164077333572514019176670315307457183684561332127692542876881329497158880017513855126669249460877716518170198060338003709793693601359081170509125282487992061985282447239320783483421129133517364432248832441325043427087758050225951886649031792990851404839118346357246813198309739095552816409711474808218167918077018819353925756220108832904762639827970427019499810642630432103834399322142702914908680246675076148801535700258885323234306731184310110732707927760723615405559219461660513177723452510985839020706774341464062443984644035273280665357433657001020037259604398413765255906706988960409373024371243103334124640510944349884831426361867392232762019599861763010792663518070894257604716880125309558334904445340202985699105390442377318668316979553813296765403380559159449186898395450195191466407160770895451851775727400074348384803304378014035363682976316087379469062421171338002461409198316358287921758563390344282856362209500119767376386930074141770433460175085608714656634873701416854037163060589025605660873340648828256624009657476910754139799799887392797260314503973747255356878141372994945472495281586707424627345975021517926289569873013252678158360351325274273448045037505521411178622091161421425977699706540393312384895468143096057762251119519099501760088509015812408992200938296049392762748147994268210436059217149910681729200692170628701647288075351190188564605768556578926115869661069535400724691875121551379650369153322179028357394176909416599229279133474224553605504545493482760330274941992835508784764691575635774748367310576377552714100567171420112468043563817867113562986364886456520084448689657872898087756082938393430385526121568603752395161513962952355763376970085934567168160678747165298187698329581464747735848883858429206304441606031100174834542214156690655175620634707565272320137023968529617797787888260952399921699077599050034052311948322880180667541833937514440971948325375006142712024169740094041616254469574797584063904368481506173584896946827738539531420640381783960074417959026490528843966344905308926403251611799830307133046924324710604753725437104550594569090387525240080645054627206375354829603550609474761358719566942554548929985129550390122846572788522876745877010450176933219765531259341709240076736281239232155251166180870516400883806630924948014945504119500885733569271696973739480869783795935721698307140610832550675465211787985777193456301424443323702881417142812341115874617612739782499194650996489608519933474606263049372643867666863755023918908857164910593491190748754212507962184843026385200918271812956977538501356530627955513723443788413289355150320823466574938444618801377018385612030515306414226572538418166292580003072853369077792987377478261760457857260447231479299211461799091978995200602821933086856725748635989452381148121999429829358471272690010111440768393382378047680665855034753257179738067503413404492992878331223222690619110939107592273892301412125504234764833471067182825270664743757240113240344261683064831362465935989744989273791865622259433336660627757974187859474441241981374619322116857165462553682888609376544612036306320371128425094461033156091698434348079475503580770364319197225708667984166869317088180549818694029678642038606791518383886268678829154838963386729345205390257977711753614125672134110823613353933412702722635702953175842829351815269801387164740080149648333848116846987640612505040660878806408252062345315464805252952333315252172361235166454942603115665248573331170703469782614234845898991374797607224077031150240462234477080995226840819544195001808830324346941648009935650444864048170239391258916138501969159152393037418229194954913288624220784004495308825159186963255529564427480700289791117199053764861614055133678640711879231165816065343668410727722291447964021620110150662382137700462505292366817170915750220461770169540169831035880447059543175653450145641863332451355502858631988874708658805493467130844140571890287857931549326824071314486617230911355252255462158955522040453040313693578662075485640400625367785879829767388115450461288219049248422598123365878975993067162211675688325820798989934607722545116433422628509682757708986074857956547797442661295277207587397509002558763904176221533482951061410302754702114641956696610603939323045420941612079224686626353731187152838675469400734619631138030556163272889917090808903388083373140842710375037496396120515176585621980264027453776290916189021910525289902405341450273738684478225521327503705973484525567829655034613960376762827774351465788962639058181213250595319442302520674429649600667745428282142334611081640627012177849229447209540767959214045237177013290721981357341695378414819044859436008718681215603833703228243098767815627456182565960617654043324757627310652270101673268308682483847354451578893336681952137822774942488269549798053646258395400846345147077167064418115947419246897822676306271482409666538704923109417485687717344214044548376960152627690244660359965120706450989870287587623730765747315989871809915982610125253916659153068795643572806316312589969561213838534938066818667063676524937897271313510890534062849852479235377291398825076674192982227047104841497533563335813189368129172109686941162404171572644970996740256201195027789989767838384372350137880312303600072631643174161783098879581856414501733100573327135866065465104949451394680814145176469473461756921957106097413082380360344861238667520649361442143260991232690889169208394092598397640054886584191429529975027434425376549946214741861422637000506483378467790598284798402834995779762567619381129554223926778097167277292273944052962484758919775850467514618092916330141439878714455035706251994309373345264461474745862773392430354067056422409070605687395627281677646702700513801470849774844184136188259239609713933745473125957462089296501750953720478007074867913070304679086929502270793610631151539231745600672743228718643151227307872460921254757489547035247766130704763449138176652376129318418719614341963985860425297679641970285333908612356259326592384564366427252315599102872655656638471317957010539925450509603225772666797862822278203953267410890162534651501263644935797696785648863261777364125908435837064823102720764221862049430052965154024182156988755050033608217508124854787088328160944017687268693669433118713896599751381227110369844874998558412732935321130133152718699960212047917459648498546132829663198617523703487861938251934777875862904720811916353102979632033046546925672551081377347007285274957460594973718801670183248441542380308736328807643452991669350187719788736109039227854415709394043481176281790008556345272290709507295356274740680228519179030063205268013339346868237235678253734927764633470860199315746625824170594854044979748218426916580574753950683107978037092199861135820848579071933173919100563150410257193253957004446026720888515344214850390623703839918993697876602017976536935052685162211313130681681328262366268193550211289122756600368797019072011691595923115997297262926806392489751289947006409680494184899607767651117800145431507375813134980378664489373015821124892566932283441979778764007994205870296338846227025844170604210953527969901059779216628857700899274175473006039742131822877400471733227396750609709389938642651970810482503852720744278524653412938589697091026460377925511593673896113531021759740357894368038402275980140515428113581000891200870109506726025046296282148311657106281272700878734434664021688865058152824685032783085288812495963785577850415374683974586282290379783851022669277077811270876581503740664653487816237396875919814974612659044283030217108929776393293483136322047408240265351986409038537293133138312067677792768216273283931529154104095165999825142850251003961715900890691061542546354420793940213124252953838547863561215814823875948767904340581488764605114127657393664819793095021619516529247093102479025965447772085427948892302525489257250218127588300578303153510781942594247040677684154017192091823325880738876956617338993485437599474152703106229009812103704836601258606099561389937689684592460992107502309084486182323619553068188008738720913380772189686441502695055267144150298202795293858369868760050683713776906219294667771000051668592985647376371185165076241109866944351279793980397614629166545895952170915984556770764474772116370925410825171285070998716063960009016880729163039406664005976786485669205334901167451171715900692740586003010259226757877324727087116602321027055701808547704278259910505166172508205469390415349776826710294115046715016757013673591831217457557731028533370863828780160093107029139190574351878588182163812917613756500525930748229962271801277830452066696097369439679096845342794100476742214480558196643472366760031364318845424818991200508558587104043824012639265902484094480165876720573527537556450975029134010551457600708718341907576932899881580320795197249172909353990519191190936718489876055137455500122056343936874788620122803201290113660820856029520388269253034886722293678570132705856383836382014638030743838281968307957760961414264695635385361266422707864359294902771337503945994627595608980579296311628041818577394199628305892074305758062982299508097440013822752374867064230193379205171039598188032662205583553074890953020167077889186925882142208617426666895531170018847914057544890538503137445196695164697078012129390845722530459459959027035879752045618801900823345879508753742059737287050051653536026496941091538923337974492547010574319717549216747716106555781785787482230905769098811996181424264846650761159797611559255010452754835553684156527531899639528739211589623173649966536934972538115781771763272749072655829360795052753342927110295566262727021070218322790959324000814069727644523422240909846022814878605409059501523981465378864186780026532027924743274818927169069164813697623357574036923146150617372323323565031386461773810460647302066378395075617150010451668087994531196773329408881583477176635642114539559434259655422614856364578155726348445092005580947861379978438056118663512525988520867555086392627094551407135387802009884708219346089716239182683864573306176224403187688723000619989856192837714031488510506471742575747469812354478992490853314829261269025471433418872394670609051719327887123172163069500125756283475765377059288064736140106769092709944244233562251745866628892959461740892301600125912701778804787013753167235364477595762734370331892549355429585181261130966875766330131843885246218707076713191076228604885805245459457935708326960694055229789722935172218311136984368657153208471474213901590058085951473313779346792140302533747503614592035496138788897564898359028292547231961395066828595249406611275075814412023130226793092335268135133586361006124745687308197699311909554965204713078216301939814934955184057717561691590917262379174433041545937166194126526040142753791768400324453119107121816747290298082368161099445677752785723820986352322095892766699434890402204766697915273309462787164371593467642056334054564885461498048866227128429626456116190580693327630574351067214233195702148412526566864719222732597557082218666916368868996228861171082888159763281427790999905940284439926162374801558167772199989651379779251954780241448645310898780383619380892701604920360819103362620723965893056923992608305699706956064160168679706948514768227006475701774599607894702426532642652991029938107537621289307023591306282891576472499419032632345204473497941485128987681970568003814279942818304635710775657878002654610781112668288332849560578832307203952347372384120668325986815644340200531883991317386064610291451604348081737570959460833726116512329105377746566007258201006286422167457454829195370439427869221864027904440440418070011895893353785174498667766591242277712367412472131544881074542774827441396461420762100614573698940009911537347178456236956190596822285484195598931381632811645757050083570747573757226825218353116909115630736411850511125903943622701180265197641640253076002349100990545720556949711083046249605416146142638130463237626264705032116835099840018056694560201671119525148956494035940698984083952170797183582493799522291533340991039645114162019351064109422774745089508579940363703769408901602034344728393997687408074075450788758017264524508586776240292038806077054384816095587353913393501405177281174201701709118258854505524455446403624581597776110928538370740962891557373922427585429922724915802979498423625047517451746684684613544935402281654634302615500416007122169473251297197053288829891128876674371984651702444638380817951704566536003522650244513880432891035033528994282129168381079993443939855018037772141506290518701401038372079461031363890299653270521830122724856394003443907822978338257929199381678014316155424527684872051905950115738918163105871849136851100256670969102819220903531660082209659777630663691226372041195459929781869542025927344702758298174140296301888055269882049271748779403873807830383643850020143605731405037728135401101079751852236407311513147163352321979709446616898361657162932147133345082542170096921872933322010446117897054650761143975297306578789109547539943340681156615506200798603909382736015370070502430499903696618822289945235212984708222185393820514046586414682899352950229550073630291979350347450436342471008445878495542610034686667431849378956851669509215490361789695286042719365340335120573526672628975937648766384623505153894445550354597322998634129163788707947969467091128075604233675293493745235823376707891367969896370630421707419973117839173264055958897482288234268171587355111561664817470661943609995380154886835624815341139211340508206862697397946305362823376626836565394535675274245860893204973748004952983176817438085257250652263949415261952449489726935413063980476529395204559333714951466934201800470372881271140511806589721465249114398414132492766469446021841977570051159562442500033035557570277596186179109621372437905754333880457503552345630445380046038478811506620616235791489696958433742845140771816304021392854682528299963249629024168814384924044638943717698709892717933257648225222640613168113167595837539069126509830255826549415017399184493760204599961782370849109564659671650024909210740362649505489061957354080368995831700518654022227868436197968727798059767131066825363400963502075472772444223338915704775696536094859082485131851126786484977877105414974786613517174578395192134825654746742140528274283642557853460441918354209563184914499476364943375206414526936169483470530865656111851002904194013598995185881130942508682742838024294377654923998437639187918830150688950263006822058427317746070570656543611727288770498707831358759865945014056266083958309776594499184238750606520793565048762523520184110776351613064819814350430153060872084476424494672942246186807188373224754459247216614210913648803494444223494573263366241784386237660456117545884121993978130909071181517179549973423395316633877348523256767565087928216868752362290687433849686592058117837076452212071709288885956779375284925377506002722692299847861012875295880950683272506972124472825946904788541162246626660710579546204393218318893587601318288933233080835239040016384261504886565203405096103641127130289270293284416564037296836836924187092556523638465287472339222991307252229342570596145554748825823627832074878335911000092331603628614921889057033858573227272951754754645338661706598387780539020889739853600941218752048958807301203168370366276527968478273043431843917559357627415336858414084964767380776373426258755281638119364119284212430897179272026315604531683058850577720317756352043541905930468569594301639410036811118582467738660848517328037556522389673591056272702696367890214651730190586858555840003622977818186100010055892308314219693381156747456629553888493209404925665479807512000332047970558588244990642313745865819501913940081352558606840033086177524910756134447510750613082381100864646678911312938281804747133764798011469232195873366080711165332420504607662108485513379046126756998289142502465533214952761589614583143001034214017043275694146079406611695878220970175546267999913606382782573578454040787500913450450897809505195867549188887935578954895586245402514848264467118706619380343249255018926848346977970746678693647335294802982993692801675036124308434640722303395001894416474985527746199706588204425880058146714861051032643254461089929854182693289302230015627472823545743172478247506921251046409220829988972971449899810490265938205693408177595447826096271551090671033910391312264201694264008369778592192276413205904633478587990036681302675112787673625444455801681338023501509851830140057666062418475031487794969853298892505688208598049747192348659764337210358039435072778134496627571301573025875840250622012702348358602327868351157851384459110553036549926411320754018671057831210037598696980224874124468434250229246420608207963496884286364043732853096142524532488725372056336033843038900441128363141503058886403914522550708452517470591518328635486032911081128206726098505416618952522925116905045392160111494284958478340325968886468867277587896633689948842803765127188646902129832026879150945703580973231573686077871257165735912853977946485357586269767709500623840088631973562154454217928094772533478725509227264188649597075728581009639491219269060522605390063876468391606950018048502066618013342599145415362119762381763627564266668741387763829552923981065152192043411237815502012061050686563549403888250159316052072162760616543245434386765160581448359279503466255236338143952095309434288003139533295899158224706676921790647612048025902364542103324424416213175055103284808393110066453858090685646563290792889062249197020929186875727806450661183074481164209060292278380098368454262962529679561009831022660084725894862544459276898869867205067869820743622884109125969203607178898976497209147620190052983176312027582256605480029080905350404149731501964361832559005147718751178903320063861176226685934963182031491202760875338391938397343085564205641485534494940275893560895300547059301931943469013600729377395306042722617799917230107689131283834132409231392803796065287660859446322901408368079589419110570985968253936543088870923425153386198316828812362149278288113772090482508429634485866684274680796872815710730405558645868165467667568005028148019749099046825918557924663962052568731087314179508202673539977755788814498272297762671065363281132763350886611629894170110272627880121883234791168347324582205830347722335520016969256980934013631397825870058118566053611201638146214427753214363616074749191011080709667946139920077479158372920882814607775849446261588163088672009459810058422731732304982687782609112959386329891825300940007230143093164933324688590838586066682335960496548313572933648377780647124514642850028786490518985919406689342214734301962471300449132294793146101405779913393490655101729033068042682899121286299379225161048580248840491451110430148352759366751639787049633449191902444112531141329422523840259677522323515403628882040050721149797344177634735092110044545351125426846245421290270624562213705256531379122076940998501298115229011577272981495751660014901204396202600648289307179515014242922160562573851347115657041860981499455403646702780302150392341090421059958091130199696937603262113268798906051219008342109211096857245176237715365254037071617174912874293892481985096617951169986320755620326578786225685410687307321537185828991925148478614647948830060656628439648798103310195177563553485682582434347896045932138115707114041152944148870303186030407126712445796865880676528745238151929725560235603809024882117984098928033084661672797371990470699140132181581939093152811928221796657836035609589776664795684145960900957790807882809131455547878613725131132910399839642989931526766728022445794713329600744899733895688421518733061842825640063302586705754654563387889574664830759102180761619447025732916307532223115876457730926231771330898271639048273230934973210946872416188109966763448882895309694675488670903610867995866869605058431819012659452103566466562576070568658304580421291174079840114359570525942637440190086491758039352620893568082113630278490776509839600975336676498676105089571044949832949027738129490829275271392086315007359045567428093164088136734321171865834610948530458558335052402166549549943594185062226438232825274353077186175234606781993825512018772034273891543467015304967911939016267482302790033630416631409026571754472097014599296758982443787012152371877128175395488895357940835738779433007953499976143278892762261016502826029413044914707820242040852907941827247234515971555521619251484683680197296247803359318686152013052151674569512634718961783225932466005510741183118011089316203040330276315356031233668631261267051133130343041671337347153683706788033351811407116600785358275103464708936792030369961246431511421618898925667236612225135923225910186404979425800999067854019624599417915294394692485342910217703837503820751110314771106523299935034474751550225445394302132593785215230307215075107126721541529289952585900496890348429646625676861282518390593757863389824356019393630233532044169314104551638610754307438594977967647753711010875787761068555741681525252572117304295365380418095502764613797136086422607780531345024731375039856060547629538815023233311577278434738328648937443850020847490535502678946448810338533198355292961362705030806552228259482869967953913863346281441900050967031961267197871112822769317050759037205695767825791746251078583374373077719438145811675244691207955225063914952868743566194213005157162137658969649933201282376846332767626251316068628555447485561235181567646222446100550851374921072393982061881634450314313886804868800954741012602863042681576085730921031418180375157336433156028427817389808228270183791203678125528774691717986738343350737262837462799691603488870072519755038920909194559678479277296668583924719508134461257407624514312209876209226696271616560973565271304680380728522058836103870152561982064242653198516784382688393771105575760504958723960592242185977686774167013922647512373648276216566107715092595993565704014451272494011513009151106563143242375577251927635289456436136095885762987397399773720027286208357211881035143532504517306088009428806219037011625302154380959298851331268809379715847711344331727379442987184376666160993381345668492861824871328365537881233306734296223009327443060363055410126808070410447745578441996050052258067472625132716340543677697760864320870897049975625347952725866397085576563827367892846377122907347567286147026881260586105000801161003928526816577712928615346723744947668188903799846082942521406795447624886046298679087105000730394885585162295796061952846656059430188147261929160221998985451984129010581931439874390064578310776702205393727131499088437653825012650397892792379504193791341749363556597413750157994366298326280645694891833363305267205130095197890188022944446796812349439057474715565177030846232607783377815869019317466323643829313529772661551920397087085968922492918662125616252488675111376261921815439913318458030978125324033985446622104830023415872694387366915735691578651372296288711770437800748518314129358476166098510505216066593349576292770356790368652670681111946413519020308724485541334630037691019522415384818578256734732680372515071881845744235720830759510973854479991738885931628318321528573253174345914636823137639676523591450429454074591894440995637899859874582133332430232309290658590612766299365286041312815152009401113735621701162977940226583331553368521607417556037264173568516969697699771924118041979524069364834816595777983632625158612203199330727552391916403621232915993075362300729391150277473612336091886574334900134496158568171728010391646355153835921925517240780474573200801241705362266490970188520511286535271657495235495821135545371382651701170154342881306236461483684768956208847115492366493843886533277307395993594994540218741654066233631252576582984868580804377996847261555651476783227107789201809732132912939195274800541788825287303518372126114291996582935608679436827171661837327770014435854154150039173243785312891544146913869473376287135059647691102631818203112507235778035958723887631616598832977944641307864923393234085980598399282178866331344196498452463832839001697263474248878989364190271283675427848514093537465799113485414569558007118005822876465197700375876625226215655926843113117024685312864425642093800652144404811127826464215503539946051894290994018427057846405816588137804676609913199041792395509047788075969108737399203658127701091560502946306756767207547745922039791837368639645806355519722146070062036311983479350191063284196333091822719899988949297351404262690673260154721902637214579338161539379356626044692513387427392732211577461267079348623724917284681347221914899542299759479209531993215454564802016852042127114408246514000074024421931083213663166480761283186622438596249517973036501632361894529479166098857843946921663556690316593664338375794994069126789006429556882050598251301826812878029373978068203667444058349876397430891770540676263912475351875651306454467405905140190267175444157434228373425487754643457880746853958415972850271821017997804380010944229830366044756392248985032964372606807216527127168960168679576449937682817290803822731843922064806136315297636830180538674389395427395555555744283385712762160105557607271053479460967933202852064936900606381006766866854363543281230936787052059653112219276797565117331766176438671424025905256053990142048825067752536953292607654960145182550621686381098025278075388913743506534114324777863479296321336522612548699640701485153367804559221940816350800530189713836302944263266266438857324301752798116163151599545782762259345704704912276255921582959989066147570447304231256499907691784487040994253262060646851843830326544314634758705484940207863487904602584653612495238508686836837795828058545818580169884828913426270934124631320966814968957886881250310118307572873831603767832496885479578237541650865541704973731084703665853219034592532867382186000146179314256187544364164225700870783987112008923701128321680613252668741646276449116616599595258347380733208492378833700321883007314214122905604708452414253376682204867104341735955121147067387682925408157220117607295433827529915651150683253040036518140014731022068142439921230427359783224008269936280645924363226409604781371079002326626660591604774485441578008676352321409635933060693450493746582686718740384269489668259055137307108057509011300813885435756123869750659444664119934346934494438736366056838134521951603586861739961219942263155816842171624814910603802896564297202147649601006194337070731298010426571523408863990658997512355238926994968643250158963556454191524820472606811839409259635793801796598134740937434233257163874618375815168490305959597907137245870048211833941087952908126153372889481772763002924200438489539147835207196412177672739464253339238301975933391579836403944839194698178327201498165422255339472108444908404901125071389459618333204444557622428389944909925812695553036543681076565071101471919803503711106827667207214556975336137291572288653596577110493140775766079176532026446091306569767682860821936973140254476694812479056309936411061892056662479266459382471128115987543548750581470886012685496412443106704320164549080491018456070959212047896281511541568630172350297013860715298487242246874197241595761688437300247437031500409978958221555534621677364134870504255231134880717364522667371356249003950558730094282558423400046537299586489217253500158185042441324907944033292810121808596571383270605457055536146183895387416645891986300921814709334617472638207318843031375497533181095679427218460929178733198726994443867204234181504740263058613919767659171067269750584416687757875251770902454463062347115439175820334488299794740074749101514183174513896590920335021260117692210724397202366526972415120223901063481166457644954419765409125072591608675103232492026482289844181715032637623230704415271737114179112191842764716857211939277278476784033034689054185685180736014662446699212707545247600740499688539485747399109735298303946144194966036939638215969354618468701809094145892054018707337322745045028214789580227708530771333576613557002248389170493431173546554460350483384604725792035987286959185420292735944226593864383902831331410307175495250805219023512926064684628509431436408175444236663909956255308926628453606080055321050872711140397852329623045750450898100605851400112944967301353189854122115310983559137762720576000852578769620790080252872382510919125740666846617766944132207834307874888226525465098629636241715192780223979112476363490050902530450645286714937255933743017139797218612429338517306264657343290556387021849726102869944451062094770323523480068134149921758414944523338344701411247502781964852520345972725231827977802626341403066107858782776116551321343341225090052527505200128396749759942202672964451730834852603961018507334173646941345519349587973076102961615526625791599505579121624003600963004602146575596849655576816872038560801876404695146496843784528577271366900955468760550831886696441253607370195449059903166829408890684964591843508176100493890025520737587696709283041729804716526620144668627534780227824844729515072664453605316469381642821440187882662627278061925607619199554237079662546362100317675127322934680321399840685478528740056332206031733943667784585776423285323884022347204289693076547473311758982756928429787145228958125200463888779258359528749260686360883209441251821494928345674076765076133271614950964495875484728504191246822909424420324492819408994478709731245964711700289466487569885421785249631997276095752743832843963850015494487295267883485423164857075147953710797404495547382131191357615520677021471343538452169728362211848938590503829765017487013247565953940361461855217059774978235418386881326206868479535790117760426948193603312126155984147941625681523010953682104106655613841011693608792397717207670618616623613188772071380462595524101303527244688107250447097851535068305048164402581500823412585819448901221131163739330631989238207790536485713507316184916341428702322801480961186143543342723683697010995852495546979653101382031242749169891361605521001024615865318578356624245593395388271049462033110086280783430664031995837148511318592770049837908136029883625006858344958797679825041098911459614527025241352450938359705983917767482399028983297423175842089087383141434715180582490926555424980798692694309219265854390356017252589433992327481774553217047496993657917381261257971995799419467389168264338589475419047196321838458290816962117490893820909129625771592408664195220236775826032694552065856740717881433017672681312484353561894094899672470711034759224854041206758896785543059194020817737633226295429487073636527953048221531564912633076060380746041199022541671634806282490463662107987002491952681570094261152222324309894393432773653341741864034808695766976228776581835612817288382972246919323564216480776363823376261725860993346004107890230254465689424552679460117988721473860492169925138328507355497719227034420422617472174662001984530878602479384060308486969818646346596438354862942163357241207597683284938838830620647556358876985385559853629570858305706364809758927151662469398903176579328714230107062595860689103122360642645965781186361089973448541077823648713330185870058415934923082672888165496749287415354841869203652725819918067367319752726029789949708957390385213777136053883972575357698875774746055121334970173038518399897958379594067632662047438454321554995826009689937302613740763988339438207142373935378656985206312180119716777580216087735722613469263885721701278092114879447546445581518141873601653927085201163799192696005703021583754589536229885465804838366655157836361083055871756486177515300991800968883098910512740823436627836967486981026428759849411970819835907835678039475110319406392152209505704806798766115691146224888889304507408510473838356733897393968869771318689117369058902160530270876405354159109056298366915585934921868885700859551844995457154593822445138468584970080271241566894236015320190278449023315325457385634600381471462242463135759704840774523433135708275246904112318492639160420674428126427670541415764354038481869016380703761055136477225857715541177901116085816243624622187902428383125558947798645322006751298219422977778011059459563788641281861952861053233191130788928944474656841694222630784108709141330937363777032894415524388625492714994455487423227799625911979183459695985340427753009359956915355586342516555835902785904822702695421424691673835639683817658059599849521043396914930570718318066313533216905191878792235700903319398349047503563640139090814382408170661633221813058454424476656448194767025180048645710179287923922213849153050605143159128584906982436271630717776465061027860035402817537450844554642032080704494803047227789722875517820378922420872574737800053441000289365399527498445288971608906353920561131593322291833776800392005054802045939143553365724655464817939579872020158862812024646734221619876149453021932793144441654910519029626142032497951251394445502919790392210148652194261565462983890899276208445023084625676548952842124620700754305228255902805430709202163421494812012963527820495913963719666707965348414511780237897539434631105700626408643551046545433233023062895501211108069958729640775765744459476214313970320524874062888882821913314273351716802402080222237445594710405955602795256558354152723971341391243386589097975473275035233837538426040894389681019655006048258287374357931480248682932499920133380149801192556481619257206270647255319099877967710846315926347367105211069554939745691860391478543662263333304261050053198131421623415076934186250168139506783914777214962871616836286643157173085090006295822653126007852414699080196185232503937912415170901782001411272219073065663800760007955284893681125910986772872167025466236310224635922792674931489389638586225178317210928977030894653738027317030240270285255258465508962685605844268939351658189065216535130429371361569416684078476925216603669271353729927426795976324677171155015113907744411977348698547278954356046386947561495207520948738424604921477175714646101235776874132997716962366948800948519814232221150999726531412713499925657256566348356857442521255224548129984513373086018278532999866031875452807875018524062281154468312553566040438759789118224166380715256052236675969912864481762301994108708182572616044656896050943899371359653970282645136507146926465780557240959862830249200922766925443367191453020298893198121019580742476076804658699496028089516271033753895669177527592787185468267357835520113678842174067538888041724595734574372195794461222088846490179625941494685558767615143149763689108885974276841076081553431046959449889636065827302584416190468226933404991080604782368259800345333539902442344721209055886418603356275621600888148389234299367084009349981025471609754567694284293282326139538653154591775635880237672204658190334486656306899374131880006052334853351087904525735234540469697186710156801326121454724237189321126866759945832483172610789328883432401556143925069116898485750259036191628933732368955755149330026167938440651166537643076098908993173850863216030908196554167436841055662536676214173508329691298793035944924851713698940672162309973300175482651629481556931416200286408857493612746684965524516196224680710472785898425514218767449803581150529223839055027350133365861524313245582986295015511361054226579120404100217768036735121762965571190900942774285500172760710783236858070905272368164521779954345932177457264868452364154828167650513597244868342575945717647176081658999967889679558369829096993975853692530629296179529341751127155500645361411320701199984345296587830316592346063915115720800310321665300728904742869061838083718035816176740199029365176976742525470723862324118662645644277888451939242266824516950631648968852443002513456707069383985724199294710805668055985192503768411197551809844502530495978505528746999725490482818183186548201984843324901234508600025813757426708403651123817774699119474392601772052938842391753359470228005037792607709722433589653907751867876738902421675664278933296308171592916235936860685123688947509057683495325724537277822058395874593003682737622606993179230546582946479647915043756818465162377002638771431967664035654589094140448488007205191006116617129096090358088747505401274081067460169265375606048677124526062892714166443266465061915319707949922501792874205325035921991358194479030624464399666355100527228155369742524738114312565414422456310822785581795757464350182330630259982594427775514815829930270397150889534925019435133407553091533950276886822940771114500825177214342609455220473295319367714016522850269063137027518848489566779581900123026611233119603741491997909404487422941530283985601759036289304197489894863459724349660174678137464518797253429764147991820504106908665530585252236412603606733314119918436774868006415994553694869317925760568811709224991801823762018610647042496726156036993796498866648134823420476120822384954698362087818259078236102577129300721162411052553818231221688531995996285835718100953256674629836130466379896943554626318700639536450587102878768451137295833138290845258882144102106502286880946349728216201358954498983357370561433291919747118286555432665003427203082010986719699205051718848307098691927341817734432084704616313017424502986639733300501971040073917993145080206584248896404497092691674629822775118221454166072770084156885635380944426126385100143102743045805875792445467349200430948046794915219154702201658822700609986817205144305811402571027559145933563303406325013897869269591252320448072190482245702118536485176330672035910371019382088612959786633790946862556988638115680596437438266282318110315185139740125171468095110906932776121880003662996780126094087029893726344730818507186867851716748431564154473088599525713291916937222756862532746265714426429098217859795053439415789998432289136192348483134549271595017347640157254309874825039503410518935652428895541375794495715879358468306555648969118684354265155605493607665537182374254429952408311279140692149047466578538001250421731842847482164027811464922239747567700115995376363717184136805481169374174873935723116511356627444296300844853604781283012924281578865312862824766931516584793106431159851817397384432842516733212555269805613466671396419215826640183120892864006111663043382555478689563539262048645335020540368208577489213266102532062298584260669766843884169261297284641542867973608874302834334766249827618615986343087538298153541888446859852673122251338352124979094660580295663935448567488821958185881373535713636907726726938353384038345522409777194293529872094691408286372457968409471115780139936496471125267816166892792171723273057137056860651075835793658355643338472753417914785953962590395564145924110102550110773829964468955027252878939099700252142922424091061144082654368190614398217604189072192029775266144248624164796983779820110212593257710078235627243203795721826273435255023392899436956178252790447873851990543827810923830616592793666733410341679464028005552896936778419341489598184666755028279985638597729855382396435207444179651154542652189973312181059870743677834188554305262328397051328734250301115752272279816400162436207166568035504938323851149301501754190457218049412362939628834000428397781428831681556303153609214630460742046760184355071291649723045776848177451149111532081558029003641143801564350213422880992244319963727526101449272996470982205766438885293924362806911844562770007910776414887783268134686831861362625578294223660174282900182748187132299146325418029366565883739181095016128312882082309760577577917653598381972890512742877182538043991812135794876630625336773463469506172663428463197644904108432399492110299111902709610624541165763237486971762641750426733508400013792604121253577832100762192849888874996157101876578943254812720240453479492010552477334012600032557181410740030397669691110282626876652228528974181300352437444040548332375782570449630083753222834281127339132149119238385130563248305649815840512032143301031457519470454581336593574513895381821124045293080514577283948237539613313168639580275508552373664112344805953352007499495773889148709116128272214046895118468302584248658864605933751249211041038254559855337901325733709084616492109127415705997120545408990570083362228525601828980981207074772050256442629729591007180000889491039003977662661947634306082577741072114510289592223097645422485152213213384164172921049803958783719445164210969491668058378315848082546333875487327839222343622917936782517989814436509596075451552534904300628377514449566866367187447456281597166956730934292140090297751121420847145449827850355985874244677376372862122024575482740833596599214249788269258315260831229837605558944443272788126597880913684312857730521835782471492944267090497225167537391194458820434980421106586324896479311668118218044009122481866476156809582494088426714112070328635826584479506547407698061622533169427336114299941842681986619515113970409389049512724909803907909622414015727399915637331532576320420676063485543524980609121096368667434839062952730368645216231201954931395278595500010737160526596141529930326720861533926097924898490000067697501931961185884396155746933134985797764227716980602403876728186309499320038086765286704348385865603541248337024791753293462550450637057133105044990412190299653126601122707436553909547024747771452190339909662024441409076561880213053910659569228524123690460414910061922971495889377981611709347989279783775629294357369502267345846999581690049257134928381744359549759417204497647665830343469676702478763316189759020365534087136051464516137851666449582368844132516182516756025615254414918367297505024945060528874801920893315445327956036607282725393496995161094273354732301490247756603607874066118733869620443214673364096241497359023544899467934120206746080919520037420232791910465063886338441045206751029740889336312429726930297130775347903423462562480634777704792095259258348432403642684062763356535959383499612944924299668974793471510334178282635827470000781078878866609662049339784122236600088672845363125859274496091700711264872144944829557838701462198465879003558911678200678867481962146444619457882693523237410510699955055859972587319079832320598528009150369588213115620606633740084117915383254321732562556136868239666417700178038871347621582776041586699528042428916119060167376165737038212140507365116892191763474103963638499310232172417766728868933244277243127430542077785814638890449462995753567417914845593736731922938505504814254998622561150497659197915963131943985619918649785562923072042781655434941265482333544984567885563444760699131250739826434110603967328888237237554466880120959531227914866988755734232719595678192376354634707045168828274048382525201714845800599285320218450159517774679707606712593840590319064459068288279993253546628721772850194704961619738167655168317006588763357875990995845099102195093989775319899783002771578971174890538048891285985931403537607606847047919994624255963721365019994616277463902211655721758928734315749400006681286018515369905358292336464658543638202908420226806237084886128133775982868656980602943150036626679768677440317880544850630982495680744846145215492177696259174132903115979585863976166302077502053237171073801609971925847668696247168335543483100522557011983214323539441511796240981153596389246754901762976910536431415012139968343521677932409268803711638734116806998753781564108661745228920889293694282078954221205097888950388759428927836548837761426600621224420012430292713469310634992186860783876279005119848965071968562511419015458771949426735841934844656626385508775842567614080188592235350735684537549704826841989492670608660142001453894080298034454374828223942883592824118707164424923826223649504866788967847412060744116079437434812881831447403345676235480892275663209927499619072118930135858785514614610142113683762648620702944990026953780411327416981866750419450870280772890373931951267785670717128920969706823262643458189760870047417103160421885365344298396766549851634809456030415393930351238690175655254266626090730725710880922950330515597202146678346042314086558246853323206967454143195621953114531824495446794695373413185652934827154503811720676618202724721040717369936563837506089391496690912957982250176872317823111931373085879559174527906984012063730782821708163956867159915532511374555592917766245537642884976428876965146664809225824406470752227154908593627272002426849915987207095237659345641005069651091846556885831591375851302640984787599139276549413918610777773394644717786255610264528685628214483074986915656643484723770177797646590894059025215140953655461961098213310514714882998346262770787528581305903674849618339758553901316186477629366476997089295965681078856555158648233561875046740183244141198339906111723471319651758183255991258843216208681425308782163344361372322875637915131317030203362690042076544527805358228318673251435171398491548531070579975475247909267164199234978462366816028657188452006598618214144880661519985157082673612356801143557917147867456359490151637003759121593237010558401766763321427655207440913936852261362925952069170875757320767563372088678240969475351607892613758102023367162132590544625954495359495656323883072872987831883464379986692904513244463106995027981355136981662865769333564805466134552310443846421774813306587129422193967438704253219955646084873778493352544891238818764034701972440865804944557091324680820807476366436729372714609968674354348890082279540130404809503022549133012263120784957593027367177652056361060657624924992785215204236004567265867912085909682489313827084940105940969092299165024182098025879986813011477606494963483575246860314215585856331446433615102382992753998167497920984603558191895172347817930786537020408198256383384707116260654071626724183002290433744832951241706016522509855016402587184405080015283994987372988718605500099584942401335494561169850756282128759940080680886430653267544871235800203319888004369081775187086560395631933382524828828959734248602776066392059456567221276669595601382407808071811119708088584424141524071811679956738077055937071250698846602634750943179262916318358006858539395661748475964660943535817387713808600050488365404228483467704983494534777888812720560266526721477920569179998919597137155401321039106465646312311839798290427356310769835638093968307289655653513030781334791404921330152192272272596107114226637193245073502779304458982540852438167039242474987011031058974329470327458418062432180210237619332254293815527159799125556727901574153416519310686396239316235432664550357110118913547433934114267572095434919268072636875107111774689911424550005173994241671602888773532349542622574478238460672991766992564814663829596301090226341776923544167480962966263859814137992936799185779311917251091488944559816873269677235539568719952084085793699793139422561906467223578952728770398877778214795099741858350931454853501955501508685191101256959447931661901951547103050800455238024875588508529128937123046267172038925747535450270891727468147108935067084492420495759988238389996238672680240957340123670423459348216706973975369461268905274774517845819570093060544339043402062716942992593016241458709444799149446696944094201579309988164078181741175752051274670500943467210956933010665411981587007589148558121394303874349447406974019863166946941048718012582443025377569292328462473152960351780450418098940539615316758699606563330979008792660202644790003529354468053099581038645667819314539572355538371681086495112687405924142630751211782516230346745931288424306904960862161654471944548104027167191631746458983487709480785067151788288658504878932927600489564774728219263214168165974543879087212976219720683604836043634950678260284121727195479023940702974847842025359111002780508390073686912593502119773879704929493840067436278494604678957828955338015979740399627107471939967289607385412424355122863591557901449612837159968607914091638567489131450613265205724891259033265164796893734323729840506320358735854486254514561198449382487549919659828664569745388658250899722437361692191882265788295561026028435036061617832444527307034292296100007544029058394822060918965011819772901128736935566598403848000566239068635654346228594096012456274563209443042120837928206892840040658529349308616923747344099155569489030000479247789797995471791149712423931005766857287815452133907699745865590595338759068333060672277579229376791951355279608880049711806749301234050416161484981088882117489152664974593347379408809366886676346026413279609602473609533390502663900383063037147817454448353509141370235285171999659597126669876724801595242133394114423430288806780233305138086143375726851379060590842233180617624614926565283568938894357842109206308157240673935247986349537603142741628289775759241434789867679451403837569344423578590380541411032909706371651772554701230252218614969650553326664058009271918661147595094863667433839543088536256969104986318758505317300753879249557438053502394011932772298949861202019730974538467820659210277436144875875353743191268286436454386866893070116018780111881440101959671251755222485514503519798701850669963653388209838438559441744742458079588795014517524383063907737704633430074562193123886304085797173025221164134337726479071826804278163906936533897518963200938981222942972743516160000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
34000! 86223407764391718195302893995574802209405861523410776875148392918724788892283881544762106279819157494785483508950349258802728843437389508947153340170471049901588010650604138298814023841784463615551705392351337087873799570329794325493976793079600804835379982851199737905198620041438766435019263338475657130421774551494949880647829334109535668728689676070352887497658193009072674054142251146457948660973474824034786014209739623614182615377678449597292461700140567537530150500585547490514342918479927611158190354604393223286197049249057490000340271273808558198601364573348901267083032117935045374008287226116997908351974623859887097949403863820757103291760615540837775472722440392960717480779419140962040297869655307227015199818678627328481879366152189753633502911563404603475627553970965726596156294159335511638903787378441252417110485135986671476998474493567383595152543845404719398182764086637465332802157166129743027012431379450447350145461846849401838177753101103099169598091400755248829730840698408757661625736188580453686422797712457814345243698562739677285088952271770388445259104165092892265223981271264043963240208469984402941405798884835456789903115096680871411104205362013098692949186753220763387951161524424062581893397818906325750769402106208943790084940187806018092469637876536640424654707021613486082512447441540819943062819540414586814290830459599497823010205139858561138367598509393660401903076785376665029955285524978724203067469056691694034619412323524276830282130218806062384368850249553120782534182619886560225701686457672778847122810384438243009792736900376586865356637258511123708236087912484035105070173256029210141283199838824572263922070835173060534122647075310148683301348625015556299706815144347325880022940678638146301464839846289517672366987532251281619094483363922449359060683982390581927888990481242586324336051141202235272306484660460790905194614028979386650706162356776580039963572251924439668533146175606341458056769559228230188886306018230174491282862935550395042457664746446128718911589276664817600944526074388666979100151263630897066727464547557252816847833236610048423942845874833958988309338983764127230852301054441992837721920228691185620820855259773271496305548334356179450304413297182800194965768131563902188295268925591087445705441829061434522587135318410295380161321525410661277246899641030267013188413732571010602137045358287386896390013739871003050175808866199180559325917405477364661639647525166730639895712372895538869449725482414216018880811889718931201103372447331367011015143430770173660109660749572134890397445658513029514141622491220030775146867790571465792726301379890837709393543647914824279298735587664418468054645324493530117550844000230901117691680950154373029899687444838300407346514157811035594156306955889531549327852417815491731084647751141729128740120200316535526045453181026718801650088940246923984238821277996872904209471699985273289593172749936411756439537422963318471559247403148567351276144388657304971673299912724969534821780471533286149396884222268153968261830535733186327855703989606650616081215726154827581677722486606935413348571039876469571947193640474718080824744551058342993374073880288502585527988196206126630252869860091180998773894869367151600226881437772638105647629501037768945130949632220320216885719426818098018422132094853072665159081059518401525064996547924942551179999387259937099448573931139783309513174226083897199288312030561235367168636068957853797787886126731332787470400476836179557494486109198901378222236778972421958820056550640734845791330119255849803241333876256652249496356611980525941255048686703426774120071247558485451956273540263718907004176458049300419311756455885210383595158086251250010840673597679562145043607935747651144209565980127806805643491391804745330553078501643201767526738132131229943392157870705627838944864342386951261385603835760236715658766015352353711211307250883015334247188881627592681615448374719616529635249346555504381025071127599421646649212573117525955386258215679714056103643522390239234761934050385664767137417591084900142245441390459054633200145850548037845541348176387302375157533260466161196317895815800659512283864397817303766911402179671566049501891614172029966527503873759369851559887032669617192163664283782776834868955408693640544081649358859079893197671287865480969197772808535066666389599680547467466343345725950841764647307487051078430587863110085957336564809205290446392559961689058560031480488561894620068550502446785527076580233006317350183717680981229531283449956312263473698847354354948296374117902322516206470131926411066123646993593900283109377421912629522884402689893360305327205616225782153762327392617438638048188629254923280742642976270541942961108490759760697584301192160798426018353053858773259853469451505095249856685688865572045931356495641644529742146304766046199933656664839833042247041821352958554833164295586399756184424566391347334242582851263420641449406738258186897823997282799427061319778045195847295533099245457009248407145204891161647888306257228418520774112080471999556439631908737269883085771410984200227225109148953267979187028880904490283594512282217123503052182126565099625394192125839472502813175283324083151290235392597779998342965789128623460189198350081068894185805816272399255278564508434602805844259738485680080427067399403978551638780002213534889962694984077317604797814546572408425785414418157105367001898833507804184070655704962928066462890088677131274713349350726629399552674567099392022841493182430776909232709827049355262333846381813622130296397428732763015502024804547753722637657751199086607865893976056126791646436234444350711397956091531263813530498610614752749051760951591540544423141514793633726887217511283548259819257525211385522705954725219497999334091738792178862007123441187917633486235496888172425405678357269683212340955608741702222482939761727087195705633679143925391623021493914166129135437518292340399002520129292515456635480804445088328753939615305679619057180278194188202271560213418059916412896755069097579016858880715383043265229261118652385189883524152297257232444357782750390807420488015464680376090165071679487922134576485488802711105866161044805068516062989394444412058384352080633960378935745707550503004273892219605288679977393466642431688290400868859600576826824317507427286619588155431479514861561505712424506399688971281120776408787100141618809161768416803283423925879719895760637487253294399205020811188219350579484152125840912840669187164269457116880556761778998236184410304338892044532311327171683763368100419374461191798778726128408161212389177484762515887917183171814212055071107561267874899152834638035954578727947655012626746872984817310468612127766434571771825202702522930212103048028635669470363799969740595852554182721803888796786977570905600082215625431123259269823774456689079793095273329132007385399914180333610496326532760558355202581967279278664269245684993621216929976721186224960979951502704970112893805275411101626135330981449425713864186041433590223812705675397232577849598733239097076661685068369376472898454181163715651210609591006674367651653092133532718733186009016677912440932943469566901374061611659136503848412879925861088947206434821187265412424963175345038565514823698840905551761379537482771947089758584038336637789802056401060828554155058663828114041707098735375503838994605502468937538018457449090252516122829566592151498396072451449514693194701456554677515715975915913884005836684064076947966186615410540722007916338703571901788465927505626182780078729380721878427087264292796055360381438751658502560521018853224420313188254085009017088581071524761426442779868342038526632970960887186508760552078762013826045189490548616063177315164569116266024346121881381450705869509281091524839152059456220299871506063703030406317602761530257778224723246979447170804638469456223732978000011230788872132077268441639131343716766908941574382632349466087315094424781857435819996959923061265597752917659597555477910648126702219430014779234836503255829198691556398392338736300511048693852225002618349201241346101399036209715550679217650784162348675301616701710925824945404783284154487330079958199722193786276327600270116811827472504819411542994326723914358360456463684833295121521381370502014169952577215252556918862877416655460909200590988294035270939672611359332660560277504737147007225041587857106331520107359955700955471217400389775849098793943224941216933373091737183673791982241963708340107715159370556183736017702413729849237422881755394853370857993893812541013033827411646123153918156341619755055363527372341551074219160269032793107872049599281476010969337724458654189914375828657087482376801192263911571776454532626915261245601761499281569625176347273223048392278798492232113331566574386591507717759345750988632817696466999615757712218583469071861507087521857125394179726144472181990122472682165345093921019802544948653816672098677471937857335912464150329997282153429948019292414102330296228030583680633493992945109417355650783421106960033992662129009114969764217848255119665834420269461429072409174964030213048917783791809577146488609107397081907390627668186567801129544638447867666526240507364364234361748224064513068302971801822167200336551418675247519199051475234518419621626094829698968670251163545106532713695286651865020713251031502462481627143467799787704196473559577467599814955957225452188232984854931864903722225718869450696176344708319727894603853066010758495128585012092054055028377024789553892767596670353349312968389746803022155811847548233952614445399040508517175867545872780604933181644360122434584426156680281881545938521024302739944731710917637192594959806714934149050846816763726936261590245822297894671858053682759792003082022273391716961217502648484799996241994003027882259762589408586004176213102878622267925331748178157907007059302100791989849718349603094692650880388102199344081421956867211584240461433547586143127001539012712299474143448777043662373210219466446987988969549468403554303774221367587095830125187896666765565763498848147563382827782384486449674608535298213968721465719139674509908612472428892059072087617671196788340257847235799618878761616695814035138808640646229555956144094563032724154694896820094632358063273603573201496196430813414884250352871772776322162210375556514345679780541150283840668202794051209148759838753256025250685328804367203366258364718108617895289680773805877581374252931954284080863471555967753568138452197047101679383116652549585562172147944012204740796081733085553143295247261533690204089113744928263467227691852002016865350351829084780091883453280163520251155885230492855019510799967100111661590452091404088185964974860920715994102280989550970986686085306466655558510233439488319348911641925372390248244092623345488734053376964191288912472046207903134976743583233248569500481077521684412321231032746845688328205903731194175867719310410183936420606533225205935076497009595293896472841387052948957449077883027338663643223019294852736045476858298441827195323397622393947893199748053055339529125601100888339206145037817449080425710273332844104331366914975454319357763864297922386043723548732788262983306352721139064756552115899275789934644911419612650371735795487901536046784607184148279751689517039414986605700417579836300079271912566226667997881845234166070290724324721764410476855075954562197364716416544305788034314480465488661304934042895045988265514121023935599516216798763551428497238521155058265836105729419280665097969549264919833514327091950181732772157723712937229167286652780742772281452501874545972831683885176155003572486219223797159374665730182270195424707979658055212480620214357008843300215293647923723817170172394748499619644866893350425542514125430370848706372021104424190305065142493750652216874138195082478764042743414531782582803464757881523418869646018143188765680319193435439313644578029680037386877377193855922274000510408793358690166602217202986143015648994654498094842891646400063071968134399435515289875843978581720522407098229866352540067210159497530663853248701475241790369200961944245762855936367887975116029173349171252731246307986117450729164720726302342036463104789959750988940873272599419190095794223319484819090002212170025583506821059695239134650787639928406037937447531437558935070439881855957933331326816525777552884317264781249651895652999839997613497849652809843497750261943832500384509675986313311161976899816887205760480538939018801146898370512744951842728254088444195111189929825469946129218384275256000579658121135790851977736509927093375115860588233301832896413905707869487285487263330311079847208723392830026394819953679086769790609016545885227069403845695214356107355686892703816578056954787568962386652868644141475758676145784364627389399872540764573695670002553536091890103128709184015634517283160339848212395110997670905774895698079294654606845674444859386683612034099688491074116079607352413039759263397293165727978373090518381031621055298716894525604114268494799248336308001973563486767979578478572383458481589389953412450692926484633331030403922196218758305073904185055531663013117089300762182298687022367959027066550315236667489830813255684971545180656873121868232415460459345550632162164698930020715136489534975077923114074590803458481131069068913090663598286006547425915730295492635372643082861447946325257286993406883538272057627272812097886287102028974088591893117453675208930664650968904725098770490393725928873486482403584261363880326815203242597358051771126355795418458781425576690485489119083953506955803999309367162761858053269576994567962768424474714900348689237971319702177102138767960487961985378242597207874218052395187593494236204859788360659416841438764135085362221527172398081347411313041110957750810782514420317564360824281644578315048055119619873118765488091984656582156177227752228876552089218520812764090822164930490816641722096657539447999585230495304622235230910148189073717311780846550972790916744675820169584553464438913301810841468248069019500967239814236295433531773487588934569454792430686783791617084475608705187864831283062056680888752990037485605622606056602869365558148610926386281612592488867924944612537456841290666555858369189385492062327117044038955460468620067899493292205384951002531918691500289698883108064349713611938224288288916656577255941629773751733238303043949509588749945726001593203606817158304569718817583571536085637503273496096051654748549628660244858512851028928642637819721499295525697827795636808218119116381155493381149445608693692851807363005273719163060287777034564832918623421663499274260481485024440739407628271845985093001513328681176035325403234122174777005893578496253955244011052590214932774390349250348860010417098892807020367987960394286534553629640198988501568855594814765281341571533018973634900712504848773854835776496636143914470219897203513533588797868023050572196788791207390469218828237695841730555409950552117466849845019212886012370017987523011340085788386955215181980062746932359313765556663480996702369314479256003872493892338439937337873746265552631509221605111681709710507458571645604776398792528134479376810894045934799744270479173718349766071617160362771341407466319671686728741291454425516668573951262315560512809738581136527228142270165494662478161988367703284170493247136685100663360678925092797008732561441082775448692699837903330799303067413566246209463042197033700049918226853540028393504653527821628625417145184061020020800795146866788651380020019461475675855128240090026316086692107378368970818708796585521892692254867435062577737761768711481682031376189117110349224322697672306168517215247253823615621387505687737164483099470319801698078522515845477036942182599134450784606721681041770792852480079741853746430291193024252403550491364456138631948366668932823780908769078922524405225142104375245125745551598859978099176816456451736958738085971472520478527532844453426795356111993842735409689831564615071755156260986455434759264092087326722063823453465961865329303122172822444207242644542578070545950592179848918729426479140214223940928942357393875352117311556576294759159777258084541376524158159435574346574198541253583727348575910436014059031721134837463259244458097771598701918128092258727627157635928854756055779209056121445096340632990295976577702451666483146147435197401025151714659358537277382380706542399669258424779637689451360059904427324062855807310603556158452698897007089900205392277050368429717965793297992298542987236210941858503262282143058983991619182481666411193552058658068005238303771262093374401325854856116628386113713544190809565290675452183764512127994238322171909443964019432037060480227078466952774426403298553488891280847630656515207119599829526052636317208506621934953953383080768758217684265138327796569138776818589582456908801300973160131782405077375820403790956656313739943022725233522738186064317623825266834457334951176924606047442488990436084103385896668514985830672456359556012183218357296410589994032998622430941049918061500795991915744922145543765630183219818371255402088299230519952496742962567791720151262985826926266019223259682818142597420681564627469371477461929898786422158348796718301314273138926993912161763702906317449959352615492462174318072243945582809197147710095455459724716141373194652077790481237127194257687628108665112787544836981161998110611888312164914256326778250106053121219435990732913484615484377731760055982194271514061197734659055786341578974153373748931081169851006797266229282537855301719489522457907531048277984511555155272679075483377601107063453088162498406128936832645076672072167343483142227328490942306208077426899615260190205927274306664932455548763970542188700278897819829510156099789347901347147700259015730916942180509381974125591653315921605515419572950305049735507303715492349465128951534893595631813970827868420836632837654766215238362188559452937704664472064666512438687858932421569931423567129686312824408296520190911130462694908555832014241930830002805444071085980511148514324845305561870399502137233841661362693502397786661796042078743589677440272991871496372610523592545357046585662607435594207048852341824660058086725644043028327401369110443303655565924131914869110225168743536433153666620472386126771930534817731407678275086583564892180560460094074509352181104739710335267353964894348780905907974683190899163359395111033905661048486332918374298265509384202813916054094786959968794337947368180854883300985412638449986044088012634896637066661092518566569238740636083900886845695627139677859025741154474455019036348571544421803685638480243992937239681263513870296595444943551598273515231072971926734512484505965325402270126395101145467207247084515533431522895236347147278052567757453837093882801036838183639487776497887965860133738731707575592577966112082635578593412809908766378216393125777066883486747632822786918929969175454619270018243090877367974233998498160655706929830168518009894030541204782522856388536560602163830360245527453240757198162505524984253809661392285199330292468263534307885518098002016239992760207911531840533893644624044542533220019540865225147913583109542597463618581599105944186600172465925641759855634191675893307065839046296391126438514764038864046030835950886171468901172257380675006466899027946532551214859239217676073585013770101331776142919564312904364836907735347479964973889195537666859768887366492188510061030344634665634319418462643807626903848393661806949386792288844606835034289146161688870614419667436463132743323216142901916934718063225804019497058830835431457861095362504119328582542363905531372452625316759937161805556348090998459057541476683583980649152918187409314087590269076934565240201444634734859764281740072490040824707170001785230005278841126030976206078201717532202132327728015042842111862107548336804403679414445748559209239177049987227476271869898592104068610004289385294894759636224193065600830423683414648470963826370479588990529540477160010557842274848625939085609232534862897146222682198587432704777570471326845482687512174141950300464422151516510768077777958856134639774549119468270446482793271752327373851266036473860429570704079767173809684888103587369474788571863816925566274980453443220807308391142377934215575696058667305380718078296037371703188579241604336600609579770538950869611584963494151824185813615992763141425367188925948435640175751358069139216170534058680409388073727868500052992817829916282358437353336694893919092935571080229283424484338621814080456960622993677887839903341269104660974003792280651422989762632414920679353953590969541328217241231451722627517332958042440080749635693793643902840784537582926252631632233677187010962996568781107892887416344352518847493548814041710967075940225238334363467129579170081968534754668811027992128227576779728474831335410205215202061957923533922800945600072271843905889765005235004423045010941377738167274208731021637316744157658664806263709207988380094207769817164947061410336191616724526055939535936407639073385214042958267481436056461463818467559190019610106701348345397892875669323086067278256760043253059875045013487667324858724154961813945441587839271183016260275066846729749866857025415590299801584922128320933062103571600690853396230133133495395148999114339119694123218252758880942605644112661746411188993948685431016290832839036919217272709197161191817388349224455409989264558273203300856526836482360532145853276218007427796578866921698460809968112600161984256108470149927874662545180578514781365578272587268890622730018174596659376658170439534802905811499197955813260647482301636440412687459949984444556785784606165724974891693925579425101819597857449824390998802726637279839818016522644537607897048547067984717369718129812692592118513164193658842590153891426541949255752138758700356722303803949730612673661440695742520708730762347876389575537498456195803333028057737074525968162058266992222066687141804766759817591427387835690007600543117184426186875093339099428951783645369434895425813777299900988351973173097401993739851942747211358490237961394828022261362658917020606300094256040230400577389329523659968090502561764052649675192171639700518275029533680281525982071074689438046015887600333058014429449397997259945795278429360606579163585407957984904732619902486347706944674063830122622337691092103390814644377823219192993870153758870627225885922091672595183213521027148151002809300055256390908079126531857972395511680651375629041924798943200670665585552041068301790154826947344527753133006614996422634437090292120974736685929267515370481615638771037152086011617682958747343315000818713445715941267516837639644565643343125564156053361451615878338707179166171930766693281019346176332616999829077952698936306477663248040610032276312138628559791795955864494536224273865520136288303414553702131179734706749051406185966533637572513526091276175920614742286408542617824724924217643145842615138646575620509706578151626219760910955430214742613770235125567797080625018643666917513995965810092879037871241860205600924166749736882462061008906744657395479888512930739253824002447031434139819254046980391446914829403280204796085702975945300881873427559214030538771825037260429453413154877442634705063733418583708706362288387551897995160909305540436625470894915592835161766223615133057315110466477093134954671634108481775156618569892971608968492027338956518237459362447681632663651956218583386441946093370311583321295185250277477182528993015978017323534240745878122211967925640374600813708709809787798224383181026406324241404094755047646963313700256379081848987523829981628118406482449330989767096836133596327138593322289279303062015445149082449592705095152753787766479890272847883376374063931331946007273526218751112962165959392462079401753012868261909270169414436681606850713972845252424462988592131250959881753452290361737818853746015496783975943684404410921499800380945838070644288029050981671457460575261612277780689020351364891897517470944270236333697898597264312000789938165789034583386453135811117143269713751312492881752196428280321767050253359500320782200115717880165761355992876752359001861003056545143909196945783516705796332443218319146648956301750638782609339169924502773538053616678217266614306512252313196322743786850512056144863309045887401187357167920960677937177180220132221825955369601415861877879364323027443733042408321847491223929365940087593290951987571083347989459789985131242306818531353849245839938776624899133269976537309208988391547924211243226109037209142143704399272427281084874746247063892268972428614345513441727337210078363604361922270325065616812319926377843215901540848170641960150243934031138948275919481851070914961579352405075927648267925192460758289163974748373190264378283634368515223014848436012443468652576736842558972263853957445920010062133275684104257603648571074100246721274781904880153207423123882910342535011942237458523650025211381767444371785557537164683927005449297394607191151719239494739098976830656882812926450711453758988579646045629715452275435321181772917672385224573198463434887700195693956934102044350950835285719719011600271642877114049848124843829442262331663216368764383503532181054998530740002925981292416745657514213776755688486980678510046038404093582481350942714503314814847852427702813678754062865615125667892557763914293217985339992575635566285418031284834313484153368545579968365715025137304087864627879749950839151558222460234335908595077732658791642254677530743137380789641642540843446170891361693666832796210901907067598526045667521657074215628775973058672900413477412585361981468226177045789544525719349071588062489890096723393051918056910063696285827545995439696445860351488506364411367606033147698129505159100792400463513634206922775238239076230165987756372811646184509687371466812103094675700624021239295259864646104373970527931411014445299103982859115469064724656014847049577044285852893131615999217944541054502724394599016335886701935994972516686941345911788348727574101138970657317916567593370591980119070012969390605519596785331615660971251906527954567763199536740427853483902121143095372239638219300713852896251072807049119171418068160904469538352929783185316306038296679417809234555281800241251758521406774963953764475078327111881927811757384106014606806841789051440772949404182212028680087589885362045981908937772913091014075360702372590649362177585673027854124156757891832312347564996400214962661713712319111175467172017580587225843053836414569934997932613867497690407910236704656791168228754284803064112489666352535606197332085277841831540590408014461691025202257891665294793466868983334839755098520821564073287366460346005130761316632812907329310683881479036089602311369643718737830280917610128524443687109164001740176210109981405176069029466865807557324133675307062518147979278847787024418659241716639653317691980746648540762007204544565885839220727225546265007398066438789666586996753121431448997118731401257059557867062834682198483749893024651467845566283292311279489665923864127464793682674271730094497938747986407628206717146599124682167456246386263577996045673918457642820265987573566861178874537275800595078653690952857490654572443488796398734211662040147575279254535432996148969931678120517222318032422509959532246653155635208903133020012360688709958678348670591974643603509581488919388144170839650976296245786281451706890983519013735495243942002175952585976805490523601969308532990738802016659073694525143889035785908452276243046419124578906462776479312028425119262346397640987844032606269570961583352247362946865865704098526248563992263151939098736512645808523492238800347373653810024346484410731074970827411612440645901540473604250716492300910547644488027054686949626265924290907112532880287982630679750899130191858956593260094300759029211815935018900476452418579387807203433228980808775414749824847511318579654107955870283007687961133306914385804791221772393978648215004294157619405275439825230509313401221972323210718211499663346996855739244277399818627936157614236702489293718223062805329278350782900264722910962582745406673517513447760877116580219506966886528889899148195207347120021698540197910944840807748740939005186149785315785563187801003988119888138214808119251229199434363647651175063542147867015168024528478669351211577755648811196481112089708822555004636740639978922182019253444075535059736996104858095170936127328900693937650726543043546176419192307912930177640677878021849149825556953349256633225321409418637381774967229587528999010887895149923617169464118889319423104642321736892939101775751840092578314263681581702462271353116039237661277944194737500617971583992957047247655946847159649290620679182957008999354842029029945461092639776011139810454832678471321163084853064509432653408134306988482015249494849248497165696441219520869812318494358182439563598859180919994511689227856276801998217620171765200784639429461041554967411413945466141179440560464273841098337856524312805917662450677764783167922937144223945333793734141158775058226422159571301868164413988318998800334207662799186872821348777838443061397289753017804236212981073603121370187879893119817627572299778088162670836910440283336352930936983269173631049571383856138871291679345283228267247147622521178201304297813584618366629665792389659826794491454993944759051698681715248977737260227263779829175382919273722521980630428050762993542164263958107843019342444139871865097063730537527869608488566004084182543165570187024480790041380927566082379445272337401842266308657200542091764679394562677549990651810486722802480788812554855086206236142748872188402049097379145210455486330024068850420094054687635328609265765372052967771541983234559547076249182058985559695995795516175726825837238101831316083037373967511028476220727197564699188032774791850860940488625519625546394598483369386521593741929452256303273113829380954731886487381399686008672887889361272105065676234373181045965779273430711847511199378359576538587836796894167801988101783039911666396002135181265372573087137104959403405663262794289184073467701525855188870331968369043290693215372481355102108311863713793908904537948256911933671603302470777738527173020352276390486595158732324877012227257398452557695600039232087579204860897780338996997551118729201909050426830635320286653964649809298744860794234514571096673172724687074405783041320845106790216328380782797202789149100434653566689401693795676785667398710679882146613839332670376517200336919360112134063733137483603237852151554616888111902078825478085923372100970269072262493952769456386385088086592141419550773812127254258397075739548721544655356541994671503284830530064033423697081438543215979134109666579996610512280893177590381026135112180880552136744478002649791925718709251016850104569563908769564439119165615406658347709858289185883765993058196715727775799579192678668467200984826530238570904966102489363904066920623880553835617890616717970700811717714208298152016030012443635277247232276065941341157508136949369227078006215518313913052550031692846733336132854162295489188339222890568229614621720153131670493077254538064876283602644035507507822936930789189108101464667774398972760372952050872406597500065298791211643887591640913982214836257769675524591306503007193402762475933437011468135759820235262912130665857534743158055493316288198835681439701333480531439075730678197926208866287938127568594989694415630456321837147384676065086376244517660442892087264643663257823807033583248914865554846775055670416595231997711214278193807590834091889815588265485842964844314132681919786069918981313181799442361929851633016216085199626034413240564907015900986127569316617640639173013903232565392308560239649842519604893354574333082496641839671707635951908363521905602168394873298135184099005826660639586416220027352205451787433499846088096930620200991345989709212322326778143379805526850705406074196009508003101091329892821780283556432882351211510704255007159233471281618926167790100990158382032983880262139595474149832922420482680365748189170440619911973424220382164544153187245668651796352557636391563218411042118315137465757523705380185045326950539400081772489203412462162541797838629622218475383965189167804107303952170982719142325971067206517952228684400937497002880719168603880360817997089791107252673622575537471668397128303375571340835131911157968217663295847227045867925769427811786215407973389948395902247684747359858050560414012716507021510407006520646575147673613394283711913953650896339879464112663221046938576093788465103891918933922418086372837037199039561914266342814013112516440493338421767662945604289176784352221989519958917045451371227783639349419026927505076357070660436225272862355685047921766749492879005902861669415008555632546735089086733323773622985815911983063313427969033891137954932489591042890143337585303539697381176363885589892889578407468366777640628258567731671933405168026021428023436978386200789581331016567716769127716468081574912862320477406444668220824404790057909998822400195354343657907350656895202772318760278832722198377850420862340941089286298161009937190738992588609851494069896784444565325646904023375727983224787703215659188857482007475187636631305391930029533547464002130497078426778690516842597849359626512786777460602086527955585331264605615887312158160259608587175306376077663687246093955556998324687251798784626667878489052405640599827737541411971114375568671935530392233490834006463942835591162175621019283718666776544659001857600526201807444102474709967379595697412238621565257583328442666160129030969721709973348769754830570341084926849199085423927986193227454808100151406389493685972681230458090909179213842574931923642696957213090681548406666968107609601050794680737292217533678876046742024274497703503592123063645263836042919665098422913405406843113632902902713559281491559567936739829926311820128724466420413219384343232023661898287876266730151216483908682431979824869864643313026516118581348001808594795421744739939774884707602515955222425168657800129571129637869517743148936783783529002554562095934685682530926421308536635486420856775100817519908233494993311575173988741099802124722362837047075448525801494513151302442898468398370609091435253370000643171015696838852214798384188626300408458415373886601995253260816979019017495939223421677188359732047023211521631467884849694186519715407367814163477833121651079319346309964107913056668789363120870319636452086765265479345949184244401793888936927255503128466025641097196103752734436646448822026129641951407847540977353751068493659581365796606665779723068441599023954307247750448732716985790245602683865087066432884968236366973977614973585277435876698698628926468041967509968080417686505760231646442555614408071366284075548049453509435472237156310766761993490776263252963476414603295444846595932384542756748288682680788106464542778313581159128118950917471245000992925079589227635831913982414493261662105084090020104840012943022415689873111685118713418676583478166973362325835484750384773103161287484012462913396897890454208381677729086119381726681481503392270503217838012188563044229297463581302738518587528450871277154285284481823749739857697464608696484779207597368914511329795483920118836793228619707149421647959910802481106646764444267969354649109246936262834284802528361656370796134686234385124014456782429678749992343640357262721355312664672804153837845400847611085628645044903906028415154728013691619739045033661713760705095560114841646158876061414553108566989592106648528227570168058799842019083935942493971901896456016748494574601467372182952032050641840628459093966827539437480678159784028134750534436956490979280192792164557782201947315858618583238543677639899450317175875395970627927648071313316554455195473525785376878508583543350345354935101192068147804269098359674700207769409653208717307740898402217896161422215273164179844066308597475711036928859277868064154405517423501380460087744872799498486937423068792175538968846778692128318726438832232156585495125462051594110056964664365948944262684025191337550636694470736949955363898381284508269928554632099327907199099317307611504033388843552213002338621626220566758441934184658566538516237182941824565593415296497785605871010526110545618662574186819018742217829284516445887976476717546963105867315636351279065159649759357909514418594846623866215849302834219285020014867927671845291393752768232405362211280425294447279934818934652444401033763396239244077591568636834464937189586201919012333892981076912511971885554414948049579809513378182572200565527778154867319098659570939572708642004042223798866084858236590702568121982879532602025440381662018740719945727477882126036445294255201736892694210982748571803189034370177189522608295087688068766825894709791265156612136333607041080187461436780057672198850172206749798486065520532948944970267429156989813112301673703550742601692893918760158683884195148750411605995417907789207569475166641236410970455827530087943372018794203393870097864305701487420298809941325320051537278284596343516834181384226411184493027881690512333316422030755441407806353302913189839070412390748951692530079899672934763363395620981579128388146526457811141016639043104640862606065918954768964073847862623885503830458319038643964714799374875739401743866992731777243975809147323113329372824458018418517410472812086359464013585785696394518514948866281117237343672858756455986238137321571156338346398230758232187922580332897534270255066550480067207740349324453795582443565506555839316929021528555918965355306726852077406222059774604768260303295502067335439579197349860803555857371066305548788433949381281560506981800975432836083158928592995853618506827587112255719495934203934808027803544728920631338149767489435754554167875382851871086942987550351305563820598966496776714805643244400820190943783958219757079898314738894639032447993323439204938336359177709617091018958404251215862919815489671775778385295598381093527545712948626490426540475658587464905690802186979364989110264099361162662766721636755727527850213649687939075782172200224510220911244311779561250329753143792640828511457412588065162920761334203532185039783511782449600005344744245813512292720308308756219866740175108612691385043909473986741419794957490897637234479185030491077294105740224989994774317589418488076342941145309031816993391069687638861224455218320100644016783666032554856825801004410464621182698199878013043884297723892530135706242555080275625576719511786725964128430381885811333286846914354473659743534642174783546565034727241209724232917275022810450601671379552973818385114784178660688904921626982971300556303013794969943904342186045856428209348660765429632794941028886309255169028845650433649904389581765130081324270827260332058464988824340289957046166732685779502313135015559424500320018306853409953694989307228644932448445362011942786244293236496504845863914600131514646273929174836296149267574705448280994821383716468689850185406893629342968960753720597387180276856898627987273471056641267495178361355278947761303615546228228224049460543505499614814983140542218315087886795477256577758248422857103444110911341032674920793251993064330394488007393423684966508873099366303250584853383740813281317559617387260553827045237727659902258400554024308868528603481160833842121511672912077228980876444276560908186501787239868210200380899731005506450511369806905452773658078089348118121567508658540653737796446224344732871082465402238091303225332162283105222029374749572369901178635404864616357272307783119991291982433912353763211621033957917318914117142100760048309725141471953575908079166161852811442252695127516106678711641660363218420350639200183693203233285998699342977773179237211807503078846827548721982783992533236519213736850708599923857414172289920787047131286909904140425495022546713885333301281647640939921221243602850415972653018483288819208033171139091339489423767157488333680203237822397978536865958539008438741176747530432714645801238623510866642295296921937824318746155194238877098983295575133420383591769929526853765977529991370219240020188505941808835183925531859303487040314629883731018574303785264624773552230499654367532517751775556493979171965246277344709095612904319221839411655668492339908530053571268621915100701500466082691535939664353617173435619468312988933148135914394022864457502020441862388743923657604217801149478364105015096433841152116565104087913259285292723839232954088310212792969073643344244834839973074987147963656189434763244840141231898209215582306910025027353933002374353043974587503429036431845823160434934330382751698908996876584989912295981022434225425835793738969084232209391533801719854031043220284114257442510812192899653391402353659552129355410683254721411427519169777684575429389147634432251583905470295947699331376577847440098615704719825860379826393458419783283724394158802313330169881916644255227450662097117822994810055657634811460210293774976739895713952833321713223106942897769090768156270159957975096484139111769935965262373221318924633804325425447397895630262021705939693134387455936645616102445643263935272651944932065917492320484147470698384624071578653122934303554101766823661641887267612391780794649311507636576242647925372088859068867495450073678355700333602156929682746145985088212836349293320079558591727400654624867947966422131116503567662671705987699343992781167181012117616239460407067899606521528517825983141322669671751436568905649832936330147859859649122979694923021593225421146219420277103522937170282216648969098816194975468529066855580577496647605058309138938723768023536230707777781426353999009047129849448678316096281128409112895666109920771369732838864616839331589044181047284900043334801130999125443397797081798545825378920509555181604762791231068947306596069345836427420938407822759282498086168380678213550745588433196442818424559367442409767755398619047498376570004655823094824517312554431148483103270136227294095939903058085631228693437240395354943204793429893016073903560208030552809366708746923385491730667395995412068517016977310835595904407744974823389129814435772004784950861794616103305380493575786031496125269859713623939240773337633324102904616217620238374690319432800869160450047278887749393925557408487610912379765179092593034037006152793183250038268891401848336289992094491292493389439900298439094308508272406967918757494433471993847253825114485680766242659286712080405917332422148463093250951195594812289520313754946451086961505356886335656264212172438178439335882523584983916381067718438339243753931373741173251472124490714544506330708325060395650590623832108026337502585448660831593097764592849599399129074497205260381603881284346991362430174432955745568154850786883970605903908816657969884050239048945464793746077413946494989497066925849352706596564808750103404182465814218377637726539975496388224432795036086561151117096230276269533806655915117408901706467431779504745626159769147661486881100962759423964185129592360595323872987040801989138857218929245885124719683075261067964002387652481606252316683785218353972991174130709636902855309078957671467218637720298604266461264759290558038161799620349525083634712975278599242709016557293802821360092694789845874079647660810507033552692493063769096766985680650102371387131249802009484462295184704311730978274857877594408814361400814694582361519201059767389028971518015893523301430866735400931173497757637457230079014121141144194879292169715626017838116547734195146277186154103064515829745760365264441463377107403926978199525106298815965726293565545166749551457260141072446094781447310644839518719120653963485668501322639933576003921989155857870273511823202079428974747110688950009625097741236521534725493093229065437046298698136691353757731592592933469726798620468398194033598998242869458086217847515850693176855383986938612318593813386994669202238333957312336313684101692874103703857546039926654975383890174180027556607425413776934827572900123458135995126658358905917571113429483642157842328756498198916549451408355749744805039676523199323396572743942322784189103750322352371702693909199980286881980310291358079297135534189018085637704289251931309106499325373470674212516176183100308302049661168654367201303654975828715399235328613643193044653511170674789103785609577322288896812799572962411635256365593354236344238820212486851435035931044842865792537073323426960655756081510636342179516858958020996977096738476767474500977071820447569224114600322046561828940261680569568107223440470751969679661889794533117026016809584254877411272592764304713481244676356795322442425474741175384130099432537240565592024748388496317988079799042616424422849212656089186169076982942955194674643539644835633843201296032292942089498033866810182795353481934648337422907566885381396405386959169429715002095265411640387710567991619966381010020141702465380623349328254376132692081541191857861130147503187158388388419894486386781149059549418790464293045097826565189314103985606306645406808027989100487758389924498225855041146591082758386457321396965419884564697005182233563314343726100913162717540573086936855303051274046063652096540002363992694722206853342492213614146605840950305719405865809927850813685306524932985680720347919696367364915273484991306301398151821101319026042272692556856292017058026518050208882059173763737650055406907171974290488476881001941863146469168395800618492425911793402690089319036304329844715821791851855020200931741586406355719460669717831414228256134065039138357925082205772251345804793100305239229946275647060715315750351108745974585329550483675910397733636921471595594863828429993544327007832480686853978914552343466207889650863026425848809787108254657883287262852746846793218401033907794433673864528714186869318055255248528368605166248008984674230080346798764945322913891942667993795637267165361688495825102646754911393340619573943793048888957937420323507405987190564294273024394141214582367610144580907713518645529341874936460249582558981839155906517349686918302188892239032637001328836461548194536716136681090105369442200577309733981108275799654775342636531814676945119687484855024291010779187474162456441411675458135866540440225216068084315259389569670899127694369803449157147138263733915800531712565495523708580770214225679383161771056624596200886788955718644816206652774855502128903652377915959343029888815875517330754723068480075240558822454089847936372113782955286944952489108260239125422671791234071972190188471393473233160968381138173142661555832425045880894641563327639772597500586957447489121073598937611640919917125719610883545164980194306111662925849502907357506016604679825298325352421314247486769633286771219615979352819319991370397487406028738995308622511390768268674065119110612657345789170102265616205568776041136493958571815022891458964226738790810168269795492566337151440438303404340507550785814655992493654300788785200022502149171232330036823827792112958030690798761833896610152869809740906180685124649381422735642999392138816563506441336376488441033460568725722280285926568491404441773201992379376176772770909610348467043984762860670113619292856843293334304691353955833831490482284864949367599543952121105467127690823707154054547741005477571028371991030968284879388276523701145001243614853749102327837959342527018116782727150862114746349336076398419658020794221988603099856700124260652904602608601132349548972524553927215222176103908292548437970466310576046537109568341101609919131886114208916392133466786924965619712281753146381058911998671788992981331632474911519818015651039131159644980094137099414899728647955859283774047593839631703853334518193534695188907369122730753935103216765451955885884664257567907304749405138313186196126379176323702719708219646537366950605079904825042596645257094287003684653198603573515247199203001422282605272189996134299908020198641296912646922390276052486494902257382211681162926494087103787162600889666041801447876813955906960038694610649612571079040816414510515228724075623230325121544028930483210573028428557977483198835589286936047821699678728576676684045384171781788203601955631607235985844607799282770597051912726516693430598282724334636708350397663038317168417890835660414457371892470195346875380037372144058684335463068997221270698653976658212013512135664511656579596658344566901533557491373463564627210615821557466632015707781262569270188363565350552806516423436328052874267323621540389409161188382766605257204827858105447194546385438440585872996230864431669937616035369459458939325982102440531103116653461319927692365318428731109602312768995371665310072502171463545169356574760949637817691694944141905280929598473837239261640343105401413234255969678955751915634542834260434203698779909941278660951788031832520751417596939448472808582166334400895740092926528239418713800819863565031781012263356320416862107367236056231142262302818272000609884107662679582595805533121852585507736950805923003069752857799954406551586963984228663295806783678311303452894595753051720087156395731474265767197550007610194133476260128050390729060306665302174778977006598615824497292716961118146206976964391089751314171329627620364933849449834169008046537868002350239758393028936220531689068921374876110143286731367731956177604313279098102924374404933033599334094052670372674606968149372023263543629171687590963739855212683519434651174374505004531427660030480097662382936904458458092965790580327218195393758070534229669850326722030492924073350451569192482022061786195910105564054810915176222399761631335420904861311655146892315223139797496012513026730705588425247361773370720591671967406100637862203337754594106056414943592998378312479983078441065360102889128157281661882217011961854621082650599410649769967932183873254960935681277111015386110005457880939045738086823199832205493696409656764132529476423396045537470301746283786339684850043664038297467412150886356379692522125647720141073489825822319974187933874652009094506200661862497430689156503611605758578785968484468005533150099859841757436707646772509058534857572837638030941613065756750495728474531683082336361778484864820623721350951629453109029208487069496167761361518561857950029212867876475582886420274622052915080569202763514421927965376430098761947224556423991135296617152111521198288406630795567850206056582897800535788742674467687278539401312677234381582178990731898987223851123624275858830961783937777908939433344943944842122770731870094721780470924325944650734866470451818840153794847775127226409489286832057889799581968266080533745207300796911642687424448346304972059254533662623660414103967200089366813470345847179967617241877885317039957919294225294391656970644480498482413572047667095911807303767277352469547072164351519980415363461983149087300047787525912882907477657388026550576267010982146511729496768257966634418952771301616583435381404292314588062676479708572079722046304686990517233904554894876485859929966701898966698706704687625527666200012099491777317311539305920499333840846147983686718690723068853888581441621793124658058753601919115894139865691296378020722514296747484662302106686843064215976606402710716611929681256913071350190379688201508882419492428518046640446615080059484484539334302487718119471760826081585212924388846653585512663085351307730328320500762523815409628119841940387085228702218379470260507549169274737493682206156586943435052109609503087590465641081984234807319848586134957926326035834529445787698834404503188683089222644290544189250794681269574082072530478337684094390638171940964083263632739257089580711790753855161030602449013085684235889902635412663872998921247040491383998915421783624038699226021833253975053414378225405339858077046494579624347735519558985297219703331655541724963377692069056901429589454947586886975916821282967742041206050303278756643557720260131175141737823774934237416903544003095968635727290453291675212070677976377486844475089571149969153775412661937043409243992637423846401471991092715709131677687771930716237851720294126044683574801467692784497437769891075938666377893063261764037001866544142030747350635106266482936200915864874687733359349046471518229514204973868163077767168785369121311854027804905918999304168479814467404485913195350579788765572575194459366882306520824331830908285245316858610115539023465034815540093003778156387661760676225700134918881352530735131305165322500070170823727088553969808611768005431617011335339465039991349807494002261224901022455666626172372534147517302872931844793355416727062523132036674497627197050962541042986088427264899767713364398596625298119141054044973321904301342600232808152981590415116100174173805101958145074106689168046036997232300360570871823946782230500571093220945436079556598681312241024250044185120823705380768989230806265961347146631644975596458341849359562725981321150390731904279696208618691028645806799410846115594791865656649276851285636135765711327889341207795202766251853434093945713642412385033446369462137529905534120197607263140286151922371892555809375116794050449250095731348959565046374302251685066611342311193363151203924172241141095785480907594311923669308851665187616470307508580385192433059235267124398044438085209111956382177820436324319954044727272082607603181095429423091174931277858339534865015558589287567324388849234136200507528411356001270125503068481918316356049104651883964803836154418487111882187726327472114058117811457417498409513870567465308474766904929788522120524669549917235113169280706228419796525692580250159482568473542570662324547424412429634995887290293933341497890968270070894767284940039572514960008831825472346489886236026012369379442656854546204444604157661246077487186208466693372457911682844202836810308738230012782943710270211596495804548496847267831899054140581765678892973996178723739954745463605226965100622543434116270763856934306700639918927063960186652045075604675303156136544013071240963331941536399032032929941953399697060129403704158927823825455326558438450448890815183591307737889887184292125955212803021348851423818778087559917686952800092915122723566639033549029622571044941883244777809338776515402599060911498458534879569217013766037822062024208087136903223039538828904216988929442541692303171915763629829786504413314331407851397016633851718615099901460920486231600039144255818626284827287216230793225668259623181064468727342868383210225059435994996251598404219572998983950525071060829794339286267355543347085752975939159242636146934885538540429188811509742210378069706414333121806903807677988281600199689637464288905613997616570285336993047544977461331081386971173885659327499547836844982146312152021487979947590533590157996623831053184113386153146820048613872100067545231369187322225276227718173081390941806849016489251577769830118457938960914568282571764147814084415004933419312455436523256623778989620890798594331348299613351948122934581078766623927028818020478040288274979872488887949165164333836817910381346941539347085675430045038242018111913947000409164260682216399492025936582081208940746515080316338371454640978775998781397574721829477023654304031856703386993109228661469249654981336436117252062298984533518630081534840227396823358935412250865318767202743810832181988195245843828493156133088245078514838429626963324146488579609258834814508746175896123342493180448397026597804765495586873141291338004446927306585397879652376072826337567646096031414809260237862601031827710693799448372466817323766548368259104573513872857296528813770597224395481996185401912057945443187298238053320362783309750440567228353599385422060968999882022512601309415043491641992743776920618424071747990604363126928744688948912853871813247824702699240848603270605894772993160099968263463818957148833567296436145643504176383289697928860860236317143620463479388257195570296392962558388325842439718346999777986485283944862259226324874018794864469278177517448865908016601315935340588750017074129314330619269143472100873369256338466750308030058089721720694255458303137055641878285366266835004690200013917552690603124342558271027317175855069547547203629109125775704115153589034585444912784572342709263991994782107316172186848534964052799891954469426337244904557914679471233543277723290954047830601751692851582065249484420721799359544056708071724360960728387338463068170721078310160252128093869455792776498225689584758756481034694091466989677337690266142168361864384956035803669780800870983751139056253979230207407475036349671427133124414399181072048484884293115872080184747431356740170702972777658473124295120162747212466076349246133592089387708113027610220056159195161463057631978680175924529932254341905273474533681450827320030778855727637127161954931075013597064162071283562095220857840542415884982485314686392664130637826316637652909436928595526091951580573640627910083686918297467550600235722888293603209143097453171294663625421955020819199608530293361823931129960647312059199699869662515563629911271662507076430554231906377215972697469661933252967971134586906325362053033241366465538048425069333756484627422111982087008382199057585750764396545745571432532031906509631892854504237755880720732623641090036593105725908761701132889992439550989870323767157491176279952525751199190074075277242381413878416029243005757809545020414505305918736769224875739618344108829622743815598960942777574071939764264111864843629821917439348526712195512706576911953864673328187223622753782800796486413515608237315329002933069775381996644679139136170161907104793157950838968371797940257046543156866594984813433321830333920066102571889398372397350300570713035109273719466378362164737665199510155908997638064665397627952405353364191965824974244102992662584729495665568893412947367344453072692350312110996906654847169370306762646962370749587778747032294694760380684448797929544850382788565753850480277877099914858604406633894055489006766532640503620183732141128111608712618138124252509767474426804232425141242641381512487526411396751229789936930333274755129953086237465591426364995721998766452786059221255808205458884834826918570775026098245065201269308770676886635192932807758103931305553682473913067735004000341195489046306721838513073036661822346101956227498677780690248468688053574214534589312270762606869976747356206107868974628006354883526749231008619111584316810955388773247902323714964018468739604497486118538027704396301176834578141179527357895332280636744664968220390673921129356777788757283524689571078375211682175086005956967995409114621255323308600943454243362566031326641499531711986588054405874767968408668523394412441670232303248111696894716516054808414750354995078649190685781909654661327267476081119174386052328030922242338900883980882798663341977228923061693959138057873895725800679434065683221425708967820928340526496178109573617523518722194875801910451328495964820374958500112554946421370456255854221903410480308777912978101964712123238542346167016603458901300731032734744960237084198917052288549102133470820621957435982952286082884365723887738246371437724092740568405912786395720089828774376713568563826876096790369211465657739542470269878093371047739236640850188393569322746295223824316032048098291061606593282773483885904408165057660730405411018684284226074811197745558689456927670075661808548087852155380538329187018255153154241488395690165139287379979844535619526614243038275187199655304570345557287206612521281535847665448899834530776453504803173957680134826853264145119264248994798978230210265324755828001229287497020991827772698204161673595644983134399718824880404525553711590799687337729768969070536363875881764996500259512905588202686365193873342481243386639078037106641597386367545485403880250702132571247887375320626535088178989047347816465223285231983439856761944284636105231655667372503747503997668247015838258434103599579734999213720726880913037919716176255856131323125872502021115326695760783705892128565684680294399078587968169332609252461030512254049582540266257300218966619947239900560350174086394747294616532131808627080063760029884960361047428919411913390521475070382908623127804019788729650933898535037970200607356565269218339633384750523484857233855470651745347816879554078112186463542863453035109865481610949766302495259280859565744532786309557010824588986546314650270224326678838055323373544551255208239265252836668295803507307617295599466146872844766193849043472766885433002611000227161966727187670213003103815575266288739202256726520821481154379571236415556137289621418448674832680519814766040914461370983703685446673208871080239296003067930091923800138270192950403715597906811925534697856096869632818865988182779955776798751455643731112749947591256426281211458457230189326951418727874149914974972498121355923788852358485935872003559528977323304860167053011047635536473418959720876618106955485421696390849684288258923980696726540874146147266444010206161211553765244609772758893727198414759922860371940869719214035751480755934223573558258811563992835299264241288115746628452101088363940660920272455059774714459580876437621663692273252571945919294980129500818393836207453893247519013259806721261411923533824969847458715558746262861907288855196902502889329776857456582767480971277291488265413639938922362137258987610052564796591620074834424727281601431680332533145131418445311812818979291407543444345267588905314244108907512799580266419667604946351697414095334253201190406967013349739888349961762120270295564981226100930118644261456117250777275159712781930628120957871860726613627111494272519784348947062210961349524362909218902711292460154189378170447798033336270942690680778407737024247092515911987986039292158294038016484669154085716492056343531190018130139516200991394363256620672820437803549222384369508093704589630066532687134939055631116701126865079189267779196508633212715775713135200178255610557114072272235198122254929004250483739102557503172115100218844738703110882764525482711669010672167702603974241224398361209386413916182875560869838307496517637254763183164138386996185402848708994489274320785446992680880568577420562594681235238097894124636903034587487144477227631799324602497865032156396248679303528904717532751656851526369646926831300142164404546258882532449400042334468074283597958633123796478300559129224123963398264808060815525712622949488526101509213636835786485073080079844082086196879591218765844478933698102154962039955684772570776403964156704770218256197643412389100667231224618679253085342155252975705186951381165560052256235145292765378611441897288623748638259055404848121462020231874867352545514890737720586465500526412427086727692394807169889730866545436818366259983134933649949219333685360143205615150378457300893626394243761482249998302032544218471563078818765970172092367434087271068800731599314678787423230643381541515294108601617880422031529997156028872268440084083337354673924105548500309450845090753163853594775884586968832709718598270861165181992097029042946494932513746734862100338167593523695301379072830205807944365764437002803620267681092180770365645371062632916958774293987516558809368771148535642230336233762372076571032941230469495528396329256083032501556458026278144941949900993183122563209131712201874022746741007307900014821562066910700560820393698340232221202809400085935440871223614713155361045856638590780696679755231025384916976190371060394360196609868408178557858471917713361650472797725764489744970134730090387811671276420498008593911898704188202419926186969025419087524226650181623613494330325825839971277514566859086366994761156266856890334852618769339435145689553717376962830119969100814543239312232965008823613021240066628949009610933707507239500528430903129627448434183610159906005372101890529208097883299653621674001693548887902981633803827902145058701846994490457136715162620670520741392121095763930179812889125120738772382648114439364080378124819047166842784351588795395874312398662413645248857352545613605786133904841625107818016850075659739045546112244152658415657357994179079483533008404426388106794586084494395212156395951677053562014775557645790779484808382687685908419107454426452093523102092214573678432487427343296387174753879138760140509340465178325580841697909382178118734350800878455009914787497445258061308653808640972162866344495294647376470976024167056413292253683703360332843220085296210500474428697155066085218770833142664858721695204990925756312343905750923935528561770926377328925897368345186444431323935011093492335681180499762553687856464620982645520411751662157094953012675917656940377986902621561726342634145195772092660728257642681100448474059998006000594814974091580215865873376637292180423526783059581720119369504294969767661854658453755366470058212813140639593250108797021389553696508443049915513109462291525421738862722674340171268817839471449874736937087100431233152773852030577709305313977931345168893331601805900474765797772684476732759787079538031239054976932927209950256117716347201220939273859616572756046260510907804341896944798254680135250722837239809674406174417571723678683754516701154002840120131048359228046387673107626000078377932464697202463552642750565639944228895890558700390470599988873194657006870540826956571655395618573397480997056735203645246926493560572875702335428869389527490386183712488304273325148552418186749392147590916471247696296458675172993189788754260421561813668885532874270242995626261077212693611995725537282090079311007087556884627923946752175814002511966354398875941243644781388898414912456120852674623665020198558767613244660872408873987735758207323122660052517579942763953585027311739215317129474372857485171614552552712942964376283077240881530932062956980253580298102663527716158530914827031979253170296429103079958367805236451403043606061543312594222342350317098720483201518877794927406724545213322307883903640849361685019040723816945103661275135367120037902337209266577563246224176218203008642784700394429474995454612005987277948621211169484971576748533387612178232600837841890886410920801558381588649257885202416432581950129430588208544864162890166590115912174055782344973164240013833689093102458455344697029143374089354748627371490394449015014053597224732109012924392765574626231978658203173568223607545960595678834638938466290961445133115216924786903906005899007868371826864981813052447086976238199688966774001706665464859760551925103353138172047144761991104618147719812173358828648171914115348671776249148510650901426187291014821205938099194698821000291655676925949608809910060569347155026281124207211273874406114272310717884435305337428679259065072725761036119449933101141588858342699068711394865388212425359235548673584401824404931045646433316528514568696117999543297650183335152251670040945373462322311078249873285449654522833145224379642823262033487450572833409909889896727817886471914675443404466171144495942770594208580934876457656940549435201772519062673537472782095435580329476191257091036090686415630934653134926032300396423691290207821986552140252586176249578565776636201534623047736413915004280444980895375663177770603847002825401325612404356629813350305407808363319354791346599752259788822598772745879574420021708489795683319969612443290942573044285205780679057184273900334143335681519862340077097906558838653157843842320727397220549891343891998479194034558874603148061716919330489850621201413665141744087590557005925461708099809639212038689036985814762966080032191659238018337085224855045930291811748235642181042829256425514803503113236150537670927509793787160082163537777787541355777400367942862539588648113079390155893508600335654184002081626276568434490041656352349990098103810506278519609172607110236957512660144291344352551721673040891252215606899349274671626687715522645777717068765541578282392864878008613478955788894772025289332530480454176391953620151894420445292113561243255447081688659081638236522662220739462352171917887718114107459037734308524818457364781233703508198906237721114376551206126021798512956392773710591314797928994716280336730898999299760972020352056092030278803548787861870849895767040192812043032048455740854840311497392767871947146001674463313242500316703554266928570224747338678699499444563717172468478763294130977126932787128829084651185651351877984409470008439433381530365246977269326543335863086688766377170666813593472299695969057503844844036865099350885767656202577039632683713606108546392877719863107912410616422811112333032533503913235612333616462749603486101882296955991005252529020711790998661644547433173861876988835407659961963007501175026276388028888129547801876962939825464320093071434486420580400559026580748855197278441692840156400728895705553229619264114344663806919110570172089406224653568143442661284283675707969981299160907763014882528481819887755089598011410625414914755284147948067171643661694148773865666658626949701455842584791039071046108539408481347400318997929920431821002043383202779980179902820598046688584718773961417922967131910359871217783128500612832778265699797842984411761827125793388175919139476964795957371727774725130908473034656964856786113990098553072688542636047690965715768388567119587322978221760131211456322024927935938173394958897814001033661138146450996792625618904399319031996318249585513250704907005455306349242729644729960227123030630458606463219294807056060008554443172962347973071450718894989303865888642720215678546422614334961811787731855300580026620093923922803224775416143222881410036223743762013120933168888259792303435675548383996639039947652224601140483098636388865399215736575185055660527537992876075953697994366347532212471289026248886923420802236146983053276362816770651707792080667988251400399038055222330744574727732670652540901567666595600333608675152566514169557948466581878938927922065142846567899183778154124122534120634853347159009277212687083195748158483173546114832475945781718885982900816464496149092013035161529037071650351642998731443982309102040238213175481433792852563742026167800809646799322076894185841018149574300436211870502171177663214132681950492017287181557820419829120548386069925810912586060732874594416027563628907692423196511592284216837396971283643596922128822238154218693656043708740452001346569319646425017428423273417918724537786677885800170552437417208448017303470471111536673231788422830569281852250489361658668777598555534555837797100289706687550099993781829918036082691876320518330152291828968148278009998789096492959287160083343701665402194808091852935586105965906624292995359511942984334813729303429421671753482603122539616675845987786482053899276973817519629824834267616156232824039354357716922172907026095926609473146988676241527160780375236752213460140496636396482925287619541496797859485497589831139391215530013034476748418631303273547236623081937295375174196980381026084160155099768272550018966210586010962824753014804610349103852337162406425072822603373927104790980173238275326313645225357756160121981144999148177803134678321167978675718240110913965070609095161356101872320121615624199630392156172975286426812750889182870206291077044416392233908153192833271426987573296687595143338829901441009411289935247023129550100303012303678498047982088696277235745226522351825217585142793516343137651473315914258713956028980973380881019836515780758213956698112564116492312194325456840657400762052248997558246141646243233959584010764554262448097815673440738638014912505185612335453172887125204687120064970155498780470977236352189938436515458723406441612127307109393130394775748751770307019131586895611525247168081295806295974627576492197650156507087021633860765168518870176745996480183488596108868909700754158196999725957931882027600796079060702441659790670690966366481693734791509993503452534639153438466447752591927939222355015115625060494140649310577409060737917390849513620807539346610067415914197792716981507431188876511901965223950785640203589258505335603700971101666312654526791228777945979346363669514620415799191057421391830539159982686917357838331551620304110152202757528559341365544067958519489914210680878965386837958280985533758068720885622414156955633075466848012979406669742051842013541221180230478737458174330164050516922458880797966315011900259775004920118282583175187279363861670234586569383871912256772123247794699717507897952493418493305211738784284298669483691811014375230169853832737440685133769227897110129929499952164498239577845383379891233415829578258994597418918122009728215338636823519922041808743540424203155967201876088796161085219483210695820975138706488557755603747166098068730761459227420464572444804341005706680697706382179574555566124012500828366954792278651259431604398724072545899080994056041857601641818831717459152855289361710605099425648208629008244823711914018012625916492207554757607583940191940523111632135992841367193153112221643413340582795036361554345837604520850941975959088404401077390057085275688445658348142833664680688403716281922146782977414114107986017057348902114365669226952858969278808516563328765331595844170006853959844914796105869109466468050208979283626864111325216948149304305019230222440235939898956877736218889010491745241568092723366757442238032785342817156800984666816666387157508463266558144391471597519932863891744679528714864287820782862885489088238240067327760128789915816766985562296100217863267658186223966601372247544648763866017370596758148542292581531580792194326742072220848518102899548412699248213393320830784875707317136807820659862650357384134830062689971135421751028253973975484250469796095753752746023092924821032252499637663875980770147898668504918883268909624240186526139090001649814737627342245737664817170001586883091340294627659458264291295739993640763967702721748223483778290987935502127612278626914101647614319564322280990467319082969607693109814774899194393560807292101572677650295874557275716942175168060928236539121972868636190807133095105570911213228504802849146688681770829180954800503375872261971368473488039773976956195169157815201058500058090315189213238044804134543765289380135329046626664018187798672682563177261024941976343557289860965537256390034460234663449450554707134953833908617431497584654126375072250300246780933947906105172667860247600512718337018126965467625019944838263456793109436831329814211960892013833333843678872543228732645333869012923087854835345289637786357676806327299976518237297761681733661092120124769564870690339094841510961976535019713906121868151983827102064351814735777843872477139805984133522829460024031448840215656053080637624889775148989908243045769474423909953858150177020076223954485661292787096762805984760823417729425905219457380132768266224931982639734146966873012877445090520350284235806559620087027483806056706405844349428336352458693736494814121583656643047440052674440957101500974115830713180070870836590383121336144947593002203897164849927260571505107422746786744428467920395078380264526750020806722219571242724487550510498628735832005406968027806696497323641001907745720202219720615857819930615433033303740551265277283336194808501106928542615251052239217142184389729273083355481256167023656340551468780892495261766087575218925820566282892316376757313477500918947942265999662489982061061523208538169554768366027861551547996097595960323369981831589985988021414931641583405226383890081531383873475798188044280872417372562145712228129531349465357914111976867363758789254880043606020710093285308465291195876220218975200342384877501152122815111987452449331494556450093292249498692753660474835780197128036305820319285749166925855513942468453094265056793095683241441236344347485590994081728971822617511800231465055128445718943241051876628510977001098907482897760100858838268322032042654378964067209303003392479066449044297435729987458707287680533250420038959678752455705022116604653055131118831504418219318471614657799098285971682456061504192711552499492814958328586778366246828420365335432795162002136981626546525620709391624124629361832338775356221120380930265388424941775371852729521006322832003505120561742433703207874859434193365882299361171599916187049857853189543169221934651831806427088890860380736682030128580458609976795933138974755619882136840352626652785483420932282874826353726530720723429859237317385372345621427653964708092262480621839729911270958118961675579575931707110252103369534758282560519860360654602143440075545661855910562286367028743306112490409201618000623815969687163316062798820547305543226552550395834866854987337782502711806585847308840881169511839559787204351228228001238973033368849768732970234793079234731719133423198074923676790211195364892242564107775024337430707713110263763268280434846266749994211403992044066432740400410644266790322989464746712194082551902053889610801716905862485093034997208733116851176456319774604392192085517214790610256409881365572286601194910646382970104554269628432490546413882763349012075116008028166749930773554834721176593748997110158270050231202626307286521845870835062504074864911098766871833414853873462572562346682315822527626565863171334729929274595979828748680403759150705176506469778874650670392462723461087020934390734929922689810880563275487558506776002265287015075339863766926666137770932737359083837911619326712091666634508575160426785090210515164917312035344925834685429647378414948574511968217748291827750670553809998004477689101584010756994526524639726351188849415109116647102774389262974293722107038959862965881078455637968350677883197508085681271583442317456130047786866063547187212441717215882273123775709345700427421747654784513552348429195206014036824018347382313593608406624610824584235395210705313940593708092714289529812440622907926040344487037194607932012744574928497090358013428192099814869254229812271573919229852620937343090216959933864683160365650610033641770180438748845090304798836020302253396842870044512350689640135793058105267328521426902088593745480762505661071587646240684203219458337161195576675957337470085901665976198279294227733550220804782402232606397280779699697264161250391142937148602314489687094389404480355792040981140377883975853688415759181546452984653095978372548870253439424125721729280915279386195455367483810401575963801178071560656158625711158733718699689090082828321993152246102872923710475140854557540834450239669263332781530766364894409387117595274991182722168748740482033693548940599963738967724218980287066946181851551245947443657736322617723228903265569531374501116687715818185335548716239481239474398483440745714834226242417936445670682945448950563695052775943347689654241321458299808117280283863701284274429456531149232308758598295362075827530761855214033487827364567253933991158546658812725192029332311741503818200189518326435848043539714927635820138593041905224991418422253718670249048654587082730358531127012635397264546152206270376513053622362277493292495968181416391657358145338080629746839340340133157203496195411229017439966305837445738681741208022750458972359961423109898095645485999072557362850660786763142800551992779411349204853371199970363988217235730110019944162183911184548286317045203595063191257569305952189609773409733142342123037460014371206621051458786129140542835841560996619514143879920748737773875158204029255178855887058446142805675847296662685051357893688667199645400268859483443561586094915915348897359116524819988634732162900248056287389828572840008329447378596118162913830025877916348086980373416907879693635969437554064751714602566530686428221600890370374488621764893941577342646379565596330363552084592531678875911366348209406303634639476888860477189204874814548236258840319098432243320370800148703973661640906563699461826096910735197547050073739394949223158850828302551153749269812356627694112120389440403907344979878717821483235002709990343856098001249240702226326531442481597407828192279997148694320580583020313536947798934647668513940148482213079759081188946470631139656795898688926659016993873856743005310763831755676501828400537795976468364867352215482069406759570993450456382529912479593857789309942123235486102251117956740892579250788600260148233322146618536145690785280462305806671860742632427756008792921911444258510825128890186209377342520804648259488985569006048291163603550870638580171098069292971532154813890354409261883078625110313847078762370934854203346100735995462922645710068505889841719792074463143926349363617986764207942438203373706715978077416525101155622494972543598421136847715122739944517188154817562515842528207740919018647558004653514181502924158125604545432519379401154138542536835585851716724642836674801909979305737796735127293739614114581318918648060935000686891826822951394254963839352587682395923811104376740387370794934770290358862377853659655167541432860838690969556793813548456146226736939372880134459909131846588653974898789719305930843252140128999494307185837606531949369022540871594238856510205469402671256031259427693076753493039726943415108387838546165923490590099427232342248268692470544912591668177813264333317672263804034256092270098126388441238737699202758038149753093010871528572107295111238788610495394191346263220574540552612338374424455622366998082476804431154346951032685705200981909682740624618109754425613058161262364593044592142685766106843860133991780338740603264932104003393344722592539599845939441194906975566203865917988198573649642880834081341479463527141606423860223775046153424838033454497611196790071619150987238468036236653346234505650300773001481651140965650373544876263611628452824420510567311027037025839503703369541239324901742321658780694174503785138473865818601100601521249367072352720496569283794399091371309861426185932616228567836876973007302626722089447133267642763709807300453945726295679933879889019991847191903191728212968854988826671529540018954022800788300489172455825802854082146383878261235777134603864264454603949130596317409524954472162186651422777535250674540672607023167966836128663527196617301783918202942344473726568091808034754969342807962477628544568622404324020008540298254100793576935615641364474131169399987894516047225482196905849110490962957888293305674135136937662990739017655908922647105720366669146478786185764836536288612630318066365375410720088739406693514369052445044087631498310380472158345577348765375124791804245229478667471810051428970791810059447442793429989692179123308178230320378197700911983421549660856040528371779964173761744037537315679459560702644861242683939664163666036188298024531379178236225396554658163749665485261337962083770670270316555481516321580258475067487227539489740031417561598135116026370073248019741110140724177466119046024016501500605817757544655689794613161293611291804030639205742005838373357822878887280171656241117836872549750232257110220714869579713384418028359208917374112976245247887926236231461238777557088130116401163814099785342264915213235554322383843998064180008253196010330394843240581417847528001405684242737943037403213599802697617660088724179003487368871760037167764092459792524877512014054984377793507279055252743952085285786515884670619434378829812961240479361591566210158322007432693843565112757718880089532385822033699751918056443843048343766042560550212491764134308957764977283129432330491713112760006029088834366852249354341848062998195930218466061383565652992466710328742745757457433647818772251962230454070649514767773372811678689904482746713913002842603822934180723648948412346601164444337753727347519478635963999148579372612675747727032567080883523266891803633088085169159921076421575364216601894678836815590967608199087673662741432739063184964522996691928216130462060468782170679517664729166251816331206134538028500338882119566555031756499634003521328809871012152287804041382005095896610397355457773435975982127140722535687805192378450282821960964604335455114017901700915814627111233075842914654847676001524418472651591521234318116670875344752164915740154789344236442115913829763816647552696291639328435935522599901760587339075060226598239939579593255443592796695992931780306965975621982969042071100740770558619851908165350385695522212174071577869935693741800137351106644041371675447876484212315445949874738255453522508417526037110250461917362951398966326966747273656997762233673767211847557363550692255436422714127607065804905420828366896698984377845609660587726942195525902847532555422225896030250825458561415319711839983418393207708796393401664886256972451507540063112047787196375260576567162393646908672644369985919095148642163448713875264698133556575536438366504256348060366451988400693003297920237348228923280246599888077638313522540202906688326287890202996428294475601158506496237177159167201727022676956845956284911599706862698986324896169534696713127023020208573137243680243855405752866105204590119648530494939768175369233186632858176808456108439943488756857038620148775649295909290305315020773628509727016305771678385639843091070952700285036884878791078023734608279782357371034187466380251050702393088459911589389445255405304456870255638576207864394867624148142864648217659749165295101310770540598753196406327595894058298247732983980151804955959657310259307244963516852259620242715262098349372916460873567218562623176610046161375427887655101433511453866845954881070502966734100842246487794637197027980315539418838227788292353404329321183100502675094643013272292278719766416621091920548237689607169070381367417884254595244257217273973909533022559878988597469546557275353899813479667569895536522897014894090235973036924870731237210730289902883220364299275753684987699938194379579090982271379927502867277292041816116034539775018893260375800691397810290750369679957356606200518118068464686822506221395006655472705328388254690150017668015398024974548357224099457655899080563157258430678961250260695811659106975429977171470545748919220839608371093179336761065839555729784744951295426987280778470516129043542502940850258225352297783617988454581409730825651969242999280337621638898061627056594383169056066140503446301195819352082780477228918201718944109967279252456696747981122167933867713622952757692117813968643161476997835120857841608666953860173740519783377593323196068386810872446172073362568007147810562712347878060296101324264597890320429299807364155271320726327779946975205800994162166928838192721515339058289581486310217427290668057936219938829843087634383853465251960837590490837523427962398024916853199979660727751292949877368488289573298975457264055290223724920754026852061320065443499655037057186857345725799499113334393402979792166305887783874133349127144576853412680225251479178427818119295291905599490946757448811502534201586557413612483386099850523153182549149826930688926272207359339007610245828148045978410679421516118927071139665961126087160831317271535736435356761939021633327660625268050310160640706331871368481751431665394368348082014357878849179649107769259450276750599509355272976847198492096458028604279201407901913233961976807097793944245482516691153599422414865730534563297786123665257126867312392340478174369908215823367281569615147048627921067922634621024514393473837680742914774670904866705092725291415402588242950016986434871865546537113508251086064028190132278506068858875790280619595794100557948467834658854849732154217777313525987861549000384599906281024712755577714039447039948129629700915348018875449528961151681656922576798504049888226148471892296880815986287593364691106183381281608822447435839456732723975051668964950498147740449994702945545756884874693047278324499230578136278853927679309108097155598350377510084302235853781313771016198115097319791785161549352541084410626125983693422037394055621102996169304929201456470715081900180273564032847863282499163386417354601970421926731185036010302201764575446132354598921123176956220161922525144289235138656073559548743676267113071438146920589355085959656487155965486388055225214362575419263062082363503823002986887450582541138849993226944177468924605644110791981231506666302403970146221338173832805697716486065129860633720297726311311542546921710983917850065052915487666954492652019125854335819649207428111949031492632181220670422837266773439315493678630545628390196256689558550449493156574222556281587290695682415124268506189366234796527345013610711003409912033897511425421975409692029592964394687510951657400895795804096117655765678544450369521751485360379043609030216727763930148845536412684669990890554342566374384260926507987545277748530922774923119432619192651386972261187853749770909915379828210905925356799196490799907037249628210110340583807029589263157181196115290529156734120521724442957246949070633892710195938951971159000463889170266096021235365364149655060284794056747750185379876344326971479224355597100795628921095174854139835592235769123483009537076641715037552751218084571870275189208557810495248530928498684115876579688523824884625526421221344210989126344129490658061273310949170239749412240917822025053159803237070367303433362771794425778343893361113603472937096462389636791441799936971083907786022454488835707638330049354782418967887434246418682653770021650327469349922770670064738232917675700441355300880408186992652378505616058658724616734907117200734167741364444080968099286180735963279024085004941156676259912252113726297588897715389112925484131165162934193771493305712698628719510908894775862303006526481488439317476281049267393449211184939557696009404943477469230535242563355383105725974326783124087774073745261556736160625377049723275960911408896089731975906752960128449830110017183116473575229219009296894687151869992095656769456793610222034117599816455583582051900310858657016049152725141338164387799766179989783745933647070154683418940706335400161477133391614176448438037574500663587363369120825171658722911663187200600429075483813424357513402253320103693919394439086836200993362018444573205671746326652820102502183199044926904464322836550842041744479144279020976615949150559056497830542378839104699396376615273211559995031598708774302746663827386913627088537632861289376706964786043592214816976761756760821672672768544058911490348467153147960022939394045474809753243373140788562217567958678831850803178533452758991818777207709075593660127718484930393616099489071629375650606891681177783257070044149167642046410049125431485476843362011080133872143151255675470074580297080891370260008879136079462493889096297250183175252658220580386177732659580660199338613500907179108771876756335907456043044844070092558617475242082898211678039173384400148127357791346531034432793386511868770116026428728486342333315263660385012830675155699161925973491925492878215680436905821998968203198555750683556002933073949304931846506243756502865729887768930727767589414421390568283401050774910442421956673218701819966954407019061277182102115946042995553952015922922108831106351143591096758529328832558838523755764641659980333353664528299294854661558539734128632719486648453599538222904446305231763496654790648662216816953973104030951294209992973606849885982616184123368003228726982702717892869691516573305891259579330081521318022080607585296317868429758027087911019337430606989436990368683656544904799220395059727666355462791595506118348878574485991432536055521629296007472032103697798704354539310003363144852795429907211974116579620798177304069039081794076988932493675774210102122801212870496989104749369875715250989660045944141831160057992422028724744241738950698986117786769787370970648888700961408934763965310817368874129609214437040477564921404205984527351680070765425822735619048902343943751540158540230070307142515792186509065079499120349400511698215974365534079153647802064333331136874475933472780903482335487448041537065433439525967138503697574268751801043936920623720459096561444748531634550846941294586261845006342732353286112098040725969929125363415744650202279861704321342670490668755137558061865447493704750105307146823823720526402075561675599067649466009916907125402020925734505549885836387008056629855985972488025779447976599014724414045093311771472787052324631460359633565551037088710700264766687051749409926599327064311448097109816832888329784436978152646880943538020101298306862134968427107517585392076379864965348655535131492167528551975018518097897007016837395206402059112981675663832949009758903971361064418481134568284712005706348867678141698563791139566382967389910641501404324239037026634505877817634925452626292532649425872325667911571937258499525825330337964253773469523523153404883194278744697786594898349016304068187453067810061176156157736651317842895597010611666666236849458711671045048433624420407264196428598744784086870461322920911467543045858438777965177521853005413492539500091844055185641170568110643206693998733673589634405646530649909720172150736390978839152023339354457028816488953118283434404369323214168490146145649874915127489696789457590003235080220018170864686962834525602081987066504995719821706124080221987148858143321712081721188101623812685866965017779326066269099676239501276056598205907840577681510013520466506666388881795608776463012314074675918225920086628570918441491297041460707435797420330722162580234175971714395824916522480003916006902445341389159660512895518915748219325213675544334140729077307345264709812822355081062930942246502845152996639217678290295018423451563799840246777255491878932191791720915815592503897645346873355963165539146782675294727345764761759211467582665674447940047345502923569380616611196489572361536377994739624113347625271724837969674318262321543123174407786800160121613954619327836633406433318511189477969257099620991689340514135162288886280658371025344637719399857290005173902861351188679094572247442599921863014034632352565545013220519026025899098553823957676703794009260674880463116575899948054968180202908018310647655472874551549137714866835769144874461199068764167366394437220825441267929219553473401763643149775931323020137036442803381963310451799251695615656272532849837228025243565545727373513380042144736895385688187526887468373265460781718053716413368424084242905432468878362570582184238107782255008381011014913145475248170817056013667115689594515632028964710095612090541879620323926208840808439687997236647155516879612674470729027901620851590164072190308947810135452862513330992043891735718249256895304954682268390966755286996290200851572609931809888938915282741074931649134792946085652601528714174422948431090394539229835891307346320866071143041458679813126013865705290378252536412394219382678543575596975367248882062919289976357693057457152454233411694963026795439259630265018272137304854115615415295625548270501677506402083118500130294025603920431645949177449519147392648872667619086733845991329930393017205629017511586721899185322420756442230255055955355176019952738624611926841213641728286695939201053213854364012588655051143184250938984591739358437050667406106051331406315598385945632270941880279562995660961404983305474967338063437909176140461505537917307876834354623041939810295703309610963437158437592677968591360642327725959292276874411456628708261383668432396324524895385163995959513091682485268726995163072894562065551802422926078514342404055003799690426952182494773876515945828431729002266348659333582714824316346475564901148865558648802589964231469364835538021612336098935380262172740514718731451799791699060693403769827401969354711473291867713896679518784798607021956360274606980367756830058553485342488017792671101242568705173747430698801573711918294479584350922151114937659389787576459937643398632529353185412776381773840643633470100867005664549514944680910546666854049146571734338433925273260657837988371347516331132473477116664284511705721955994667012314724623378985465451476733771892211055646180023007938380130234769942586571806422464001286801061603548540519517499918771323556364253127303647795831635673832663569827561603641005394786710935584660352550219968133223406527748422243186826052325448072126786059514168489533492177298371513099243031593865357614218758603713974518812435535789815587682888683754646643835044850020999212189922059629102916750887254349781736980760983733523923406930757243778119463876689196719162903736730066291928932069416325462129171695746999049555650223857025238319922085371251953380010725186959430389845964182667319523204339329604086285691235782951664289240460075335195806046351473368563458746938382677192235025449928851723971571113270643004450696473858028826788308915035800001107758013153937236472245185196156385700273188804881628437585157442472400390500322722310150025826420835344031345947556767016933717783008410614994604643894511788299582065983613190802954047872853686104599136484982592473354480486729396924583563952626221772966688259518664009072756344344504325635492932585804902761933022992592610910722706662517213370205421394038221582918600504091827400749494979470266375529467399046180061784421015295743064197747893350278573479387356541997085974675620732419165052410298434662692436092888989814207089883254935352828842878389082885718481229502013059013632955640997269960813442943238673613384539735780656315432666404521123823309576978176769938221507534477222792797126245634714708825335563084419903281562848117037050055501462787638523544212087636886429279010295230441637673664787714929097409995194962967721559934763825545685223660465206966223061666405899608586977009201415528914891336379176426617653681983088615987709195337600211370544921279058300367214656311139861147782139313163935041637898882676080637420912914646192803333121167944065490485524164423148815951364845761168848748853505123285248063635827082895862971061699344990567171655199366234164307863549624709162896703728755074530050549256881329499687450536027097202155494456112400684692370036478461811450980485062762172205895690284238978184263392869055516347303516713110864879215914897084007866295092267493054038709083689928377650728227048269790210818880577297507272064145856514906663149589774831263693756503024146332744766987925822975887084903033021597819326162910463933660766076089267346846274117496359090434140140574051427739870213586842248729822525690062553477524144066668979801925639450345526191639958514059957775505887775647120581381201833483543119400407064678096889513807218258137822885536733118942297835436546368453179282554793743784010447910427026529312369293271603810296815013335073436306516042100563088638878789341475768836704552554931241023669628841595671904915979551470529766555936785193256376616740325375544369282619243996124698421715649370271887384527852856767516521427439373822286221079155309041625385185129178304494766743336816191520683493367684319564374933405575107836673454031745649976043998328044574474221620740300748011416330051265877524249550795445292492241334256058928905987834919136047802791515609716748082085335681271861184296954963131151409772618916791663278711710660430052049585839785742573955957566475998087186677639799879475068895175754445916976737873487914766027301540143121679493385012704094697319932436892481574869118797457500834145156144263981147501226998950574486311980647200612282809819258057382668527805601872243698263557925622372720816715093604896587222566102894156120703956203039069330759317965060660195931107949559884658764549223248167695018397739781244020749264375167775320638963066892337568259877006528838949738291322427857347405722779979389838188628041681814408813570430857253066232961248737250991577010351487906129257140145768654563266028896591114058741983288089101187525816507720113560805250234390911779515932982400726997453858265881371350230497204239135795992754000774656957503066358204407810346888874207879659331092720754575717863359787316034796523595459297462491717356967118536255226238915987069946331601618584424763480597731703443708765753765764808666533725937446984269594209679535990832477831536082491374685600733971069636205160169607942532566999414815414347148558648797465785336643038864360653876644621930595156387799691089630228093372409547168139607847937775084815705977236350146730813792470053831281719212574303608182626546626228520704597487948825637255154152541300915120050984940021490842660299532779061964022246008360443196934636358925836742827318692614708917559980266241515338680819274395161315091068621508679844866281024536281922306691028384478763333682388269178577155756358303138901934177192420122556888062859625842566592945802434223600849336640532790795471032765568076419251812159928709134948444991644388481949784997950432304130152158900797708827235769151562334806382407987377549338879185344429956595133536629620850758069591530532518696364824045364676499510696429334708169662324612473147300399929432870204789753228794189201839412080396442925088419406510815039113139719174662186130819476875498732481537286229603919261198843812390993110826548838926060418713733819953116525658437229369901060343957382480115249084742386201270573500398777329251995557693174301935602766704719501433150264538525828293391096226643858706671202629052023727667525340471555138230919372526573439235046362691372802279668216630020017704137225268075619980707662056534211376920919451227917979983418395539742842553495256649682017059804823269664411014595640701395662880697310249205315043450950500812311587995463298182033288778201700354440462274221255954416631164732971610736545990396956478946886937666094994480666977792613706408866451941828273261614951068667047753684780174051917466328820944805865476795281757445298733647231102594014650443953402597779119304346694001912559001626852910022286215637552061966159864365991710341236214086519061871966168234797504100467397903799057172800913036373518546767500696072403467517733386414315372846452355351023585477681139800334565974429010355289213130874461039422998158610461714411085424169326272729110339958879908943604162570059953806919957939719223647648234088351868864146231452596237452176666932957893275345668839082145411318896994543228405804679189545617364685264450626335303245762367112417193019307888210975778489588453782284590422080628961521287910253901481495342604129831405929330470509813745963942968882160411742940230640326728697827639067118036402783227287450678470418249108635488935697151916740384434232024501659092620869640109557405117646220172009280626930622610800756333366298337644453603773914750590057544600683483160591799331255415564850151348737310925833833398897505184332519267203899622499059947586227131570013627163296151776038408275643744140568611737092051449714667950273092327706178432841414805604491406328253430061285942058115521973252232341640285402415290085882124047999616148079814407623378465225725455322624109728374028599113857266626767697226881002220242657091598190237349112855573533549369359172641933342143871947650734546869526896413463386288622504599165147667403571153548964255228813632723720610431539119475350440649815384355248002610712893502316786959503607692277125708092560921421144400334769400574117883646004634517984086289950981986146039519069720948594913048906752162517441958529294502763982131338447475889170831458099751721352168876761630187187477133289053216011709214920463805184653137184916417585217098525185472369244312522101394800782150754672991237356083483980106093862369228209700230474017771724720321234891676664669587298229123566633715700416407831762714016303778210220072905246327858878337857327395056995864202190118342709563109340074909473090298093436656901932330108892191404810042753425077839600337863187365363165754008720327187022171675420148164697484365462442968563398386321409988557428725868651267754431597803840880144460370533350453812914892534936898658925743168272808351737661417253071149756400100128707983407015251577695950843956672484505249990161355956538047082377592894351424857594609123106506741975731984008372651667448171536241031199020093247478005209555515773354783219227207571177169330469197770811059215100158454928441824892771124882265475268889578690225461214883931600517660474594629600091385114452998929698221146545084082780503984626428663650188973865486464924049561038119119007454390155754217052508610470700640018749327072915696227717042995680741527398386766176301751720388228819956704377611119709648159547096360619032645743250539476720203610253719620584529781844513621154804621566811814101513620080303716730043996674813741371151909523196853577262948174178678193885983354836372785127724875792708419171584439884403578314194078999803777836940736271392736277275264693654585609561957492695460775663356579659624329744853378512585061186961123246161777525683645441727062376388416289636261740572636369534393078765490435861915214012508197348754916167834958499044441802163324137400128847514472157508490733289244919368235581721500049001478434891970136022274303316016232943944777000560231152327844522911152710125282689567750512539881695755615626896370308491387043856851286019234143857639135555778974665567863640784961372429164899565160275974676920098480298104441544839668815957442737631686721268766791512496873795277764587832112313481917298802697154419404790656964671378013918584536705733301486434111923915383457747544140617318435931259593723470804771993168909765524486978139268746122642322878494627874260700074725350325542857910594516436886744851769971394370578510216775834023626647811979071339037728066621905512919755500465816451601056398774142419990490288876877820833626145772006638972889338940687576897219818678511121963613895119772094157945724383772400035292156078661865461221366151278741637497784881319787876012416520389597733983430922586580021351306396667115920628708144541976027195072528927029010792014867744820064675423981002795141040693939036900256690770475628232173355191480736029045366120110312017256094262243309046238183263931093185884432740047865734467886933637053522208986483871073703193312107608042419120828728742764358585944841692680013565873271584765521016568097831961210941116668939130856812112346458072684504068554723993405390600283948763990200234705455992590689050583215699960316139877638903584122040873788733290286553670177465583214386199380082158845004258434731525531995243531238363448911623332327800197288048925033047123462284021299242817857279055772949105457871596600951468279709275531325225848760394709368443879785495943207450464223274788297755268341423841450869633817934632602856346611673630318650521532258986242864364455940959009236129298084801617292019319440506063610231696197250910841512435713169969381364129476406788749411765533367729014314761699965837667982075090162490672047562049261702733319645542126490982891524387416479403688478886852664845709905069279478411036830743696114220491815058877861259535890484792721285883659221099997239065462732781151387436092593318397559001715627758268577240727383223583750431785264762070733620671147843883093431241858120012704143654642882030493550868366178704306876276592225119481509018399812716350223434131994755401986684974434717679926686565840551053519077411371141350691985942882366339568327799610284019481019449054046288280548554327625482944552840041062545882885375266562108408157119476240573566584434700001943608898911233231456707921722001411787547280352632618000075230248090448890129149119342611699712055726902235532436388315776450124319617130877500587339364608554285666803866925666715230927384905446037941283895749513492393646193196892336559133864909123209133672710062801688876878576574330340478929337334087468261118806893593165735964590838725308664214215076785569253374850373041033436695342995474954527071985139417421549172955471285121131933861850493121382593960948178115690029442297976145628921651417274350749091616770405979567521453691066845128132193597929898330208092780635430367114810844446698094439573872478379282746745171700241754863837625530595512305243153608093959170253548375501806060265073865366557505444698604416385552674962844313690529547623509977538851554124206705849100899682996050782784007815187766974251037729083976193332160165622544030211856762861801166109379503271035343192767635193239471271987917509578642432963323619532440204150597909412140713010811295450707048436548471004334153431324625319154618096945047196639740670420875610670850811705453216131098667620222555573568008968250465140091237793981420040298434691750617559887154188919414360279383816597702753594369484679080249404812167750418825262309523895462434414845620635918263865347891586451241730086399919498611237000141483740048060578777002549356996716057414116536263578525786588932175344229202498627580746169156529722075927770594250118615704527223322078727169050906426302681134731493995765403660673349962800412671503806680990539371460445488013139525775030681700836956381606198743813059282832584760891439315979221247456400966702661047112856383213990622900683321579839373601498934115790994450958513085298164024387938945172139653047527920297176263818669758172569312405795346018028692285666048243059704663133555440145535083742662625285289601116433559668705078738741571744320764550712324956946724415073305437471858144433058188864438714091428102360579039866181726242130655876052376487201679182727067441399696591193543203600955240775699167384360482965662344585257980284958178125614349719994860471490774816521030965625993552241831014791927894833956648726839692799303991015472326987429681976797896407279506168319610588678239195155530787571056333642725028328165331372547857982900906381093541650632657115189034825603986085658490623592282296332701204686897253234274053318680708332701085524150595463958919474493150660378697270780051966163912921465777932641519175626845238402635725913273993952303524673740905279129672086369921028687616464643201373210747501164789194105512889005371249093558124863712386677634529213002661624277211461140039357644367263457659602487497251473982183071840156547000184543536826318548651355120406404005659364007144951390753814038936518351836668823471879803433623506167768526936574565448424343008827089582970331924014450306922624769520717392340174159775607783762758255723490494537415014716341052067910911823012228845686979441311202916602408942870040283345541140888266042448271454951011309997009540158300066041966863015037616930915992461507507045148260497266587262905953284382558945868225067478198239713231168738976775978278556190201802625935160830908232248079200032960569788345490570086547732997180562136375317368002997005384707392678431656446300103120761031512110017142179837808038875473573745254281727677875823664952925237055707537964089290365067388885743952063024799340911833137361164870074675711215233848350720866139720201412461951783713635833457862751204474237985921889332328809555401328372284272288929445518754424107594461510507045886618317061770595242760969813716870146858029538530003433339017671465516877129669301003075476432454828844599405928855712603218124160008206982835651999760162824792942118297306276876445161527753938337431431091560458306544389443365885001563611049161862161711870384223931917161557419167129685905581995516457399421478946640946776749187122007249197927584381300212608760898022801957633482941011044135346150343129002176824204634477694424146647737907118222515643030574313615800268069289999057227142606789234338923017272881089840742156942988249937167270372151333158956601917872558979529132843261537310706801438573218206964162776108895415037890450952340559504209665822013005408812243689463923143662694074110562055880196022138627395230310431666228600971556684808834462418706264696352409196100535776591828136036113063991421596814436894502462808252800690920432740845543933190945456067108688283602601120357967545273463493807327986077500639047497546283841679783145405289723457890580716512484392212679834205530230489649323902462246828174691107036137973802747211450661325582588967437235358453651925235670482078129284579273011020830420709507647072329377958200529777689429424068593933560817492864614530138984759244034173550069309270584818167304057008038657407727856618399453606006197994555597499829474409028211975352991109886716793856273600911525842679688943458454502575281682390352238052011105891494506340873364410825013946435428566059258023183607792156866203169801403678589170234765802461084711151067534684033545394054224699027042315485203507943591839827226728855909531665908641909892054206427134293214050203616145200211650730744142133611568102572613655107690939521774135908271208434029633090912303039989378723816329891891572208562419408380243651950012680194193874801884285717926560407475725056645899153284601236795431757296554558567337426708272590032946427021807077578713543653258517413962734129118608864869808320923277925746322824442777022888376571083774312207688291549046563188396931066191681619367470254812952106093097876334455653795129346373327979894078111898517895602984646646781779069518016972327153172441008904306599091570976908542044009027684885165628982627056684254343620329605223605787692082116608717898045026378325192311354613450841100764637042780861010942950416823663748618643160970853006298382752304280495865448232710766917158469224366180966945326718015958370652784146050274258297085773149746574058662791308078338057097065923219950375290562845465059463024891350286140940161258574639483177390038851536727610359530484610725521100986876784555530674481044188366762448842995311849259766890496666738485984357389963023770651708318770685616172318560726856788825382919253294569569805372331254667267587572141762035487439202351493034773862398399942348194501538438275834584389783802500878368783899952628138772633105909961280029952979707362595693487011419823857635306413335169877164841350492302284997418027276576006447422438016967122283368023793325318714906507201085863965282839352524151131438903986420009061755287116188755083470601481534180149730577265064497328636749577008176878233561966568819564226853461561699688050747106425352354630963184229216208433636359824936139499093916488829823578375375486566256109345287804300093703619360153843896868755844715755337812159686441956454002388888686074559283758270256642312735734438897859020324487817817990567283802196759884173517487000878358726976760306240981745534000078406190495997324347993393232117677757459137340036457669515421567186231020289569563841830748385211079227183501529600769367789008909364255176879887976938375901982524054735606081712592841241952479690393851204751738112325507275487537905997836509889015863695583523512451954568987950270639733836672698835309536615715901075506305589656074666945251545102982260799510944537116692464950003391244751464687587613593095072134152901228152442515917248930982014723609647920781273075459094567687215214808316762815668954056164160556678163625823402235456026581700970643783926551767440053477394382123848657315915307178264125484962312243100609932629479518439768984473658442440567082214458095229632419087743468070007754415103444559635496813050354908820266401601029028646419954706160531329805169108656526642819746296227288062389110447068225828081859252242740176557211630317556857262660596308666224374018353418595322030263000149453181554015957506769157406969354129786030701575332276624669356958362702851822661568850800113019046810623290037574796726721486490886331740273774453681159864181326533494676305150174410614536703040307425290921301214008555305917522129185579711317275662492524540000036672540300581017796206918073262931954696045794846508204354350487690192892015862705015248559856938810298539616681981749795853355123416419822310365833348150424261153706975931246962170569591840076064183838243963211288189465250572263583438925524327905791299675748445742905855478877308686839582778880240775702060790087519939462740169736209598385272697899625028244698111970648656909998627977826324067305842048875944203413634588340637318220427908392462631777334079239066652185437230491466966943059298873492501152268607869339029368648431208607575662443234370039964047425371684367926457402958741017678531972036478272594392053214350984393721223699126714583388308290963964248544109663034620542891725200169897954932148835888852839957212398051880060690572922789102632016354016832743736480906505645130298339121696562855686438785188700981759693678700940812278491134684360481408662017557806791406046041740114528472052236926321851190901441788290801180010369225424219846592406743836885604976237800510190149901065090828686686954009760712377714086643622848855734301020888724354902027277509162066860812255837437047495622246209557644077948318160192235293552036324506047203833622537680132315549733317910596955847697223395176414847439780447082182938239039309260784831392789417063686319886076797759376270126232861344297752697131528802581889427492507252314128016026818346437821531212027557533094884118781412811918542400293606551498185452889686468691797771007617095527497882580420303898379696454625391089026156087525659176518052046355491304224355400878358461833760949130863385869753238447692948059994256286833321586554644896098337761334176988035724559814752968784227493792210517563550257675428027211167564848130800468661135760961318944840755825776705767709102696863578983236620246126709074069318961164193667965001139373105284041321700439661468636961682832840458584350340270238767843175720398837211454458911595099840301730359406288037095781129128908583183967215903988308230878360304933726979143557013371258567698402881552166107736201833434090269955543082386157685725710316661246688496988330751937971384154149493791917247704961331602265617927615001801732114196548878094653679472589763291806498673026709651141097691840938286028474431166379846108141288946604426523704092463370859331559039285961135152570067232201084902620093574325428821169834177195911813976252715642454951290557077063772927306290494332589333216471981834795690361553876063647556458271169147287579658894538137630548045779717861196662849279828902771682177772304541760094408573937505312078242296505503157574504262189809466575977480589397834618108156840589577106092857340779779189723078583853625571596006392610527420160539107428207772764700334728599195053021350351962950803842488644007004236174729129744165387652711130616592291619576485152226087199645687541721069455048755598665688080604420973868352876497758436961845442670028897663949716358683220138207678338711988754330105530558487095290263452985394630643488651906903026585276398875551740827722331649217237949175072445925885478833533263023199634877213897045114721016803284945602129309440489523878125630029234101874961318599449771996089051809968700023902848889953427066118551791941873756527385188804228698959500222647765324431929507867626661627429433662506552608158468604719516669423371403372476309795321932777299036280716344452614885570217935553154645309338185295315939330006745614232093790854251866723397633052134055079817515375629231425864257839634496375494105634802353826687924015545697145804658605889982051180501080701490234626447600291532737844904019758565606635418352268997512695587527885000403142016456423532931289103062051245987855941894269675756631396688304932728654241964639850276138510978382686200064264745535951334759439589027484361408918665798322089372888524718796458444030774629361931133019686175303020111587308495249181937852171445423987825420611170215539045142003006268119487192481550866221464887227312064117221504216915595353224003740047117507884282306049782071226198604073468880778562201548358279821514658769716651919784023854238368177737292421438768103229629443383118002732245123397994794241179270130160968061698038656557265214762470231187837390583923329875248825563502690162951067775598874694445193408470966173156596743152806060111635937505133810712857130826265683117115914805491785698663086198609181704495513262298249853832756922839948281894170390159315660874477579808598287434165140617027601914998388590319228989702152638341546891660466219755364487172193592139389080843948993282047813064009388988448218913417236134040618123146899896519281526449243472428224944151353274975833558772863620656361609653931847647338505826550531194283140664422236342849590694211917870996625367420784193706237342006539523107283830811868777063348588889686899996394921645857731576687256073233616860994348464898524615359722975460488758901542526267927810849961733561199810126967375644753059714872896472418914309158844784267126153770626637439886322942793264708286696000853246357784307678156857209966487097001139947454583565552233199415876836375072349623950181317671663109826671597807554011137477125586343116239746911041237485229023622534517028419394549139978145015125302843213547894691338547932440917190894683954967147583698734788324562457353168610130520416908765220149929759754717338686274339282763898926498317137174757158651154519835871485017537368619814296778741353660832376907580852267264760480681533928333759070780421499521550613669026265897217842642215856700254502480147947776987869542011225827090977245464135092166195508649242937242451679245461362894623596559637916790259718454453558081388828954560082361107898451884983178875614920518082945293763556138774652956449858682608367416187266848858100484006922708638039609066842429530931507355477042395936427003831347813473303108598976009951227860580430632402794907528841632714614867921740907584366980166061248736898866291432052673302757473269792651425006761796649197344440347253599497640404560880983042500269902569168436076184112894196660318640798584158547426784391787751812638184110610348144464883615326692292007409012195777862837373315638799624102370817424634653591075358417051532244080220444062588686826207791202768614758565669763949460079511608656260567240603006646895446820083197349509950504931601269711255591684328721293918346235570313990311052585055626884417131605097374934648243700507180885588891585551655469173569417920531969470817252370495678447977505970955103208993563982789418451082140680965927665458883406446858312994538240909736690089508663989076589364602723382855130201735548704564199839555210323529943012975108549363070672899672677363954734234395405858726145089595935699672722914679252246870140187232818317262904986414163170869059997076693892871193458364739924614297881700765115939402406064310186300231985117184260553896606170623117997135104188743512542642734696684668582117607303854537143549964942563559060361460193326201490802921775982595355798113853253660849103614985272140162353618098387280799814908269310611127496012799213102521540171129925643267045328527876291757723841411996132473405275143144247740361056790337660981484312240294854611721112012337784323141385075941667557871118962109651907310916326289918205913033890696732330064093096810467991509929520765075126992178425363038937259083361211504144921506231642435329325818511752616148181796145117367945634606509391587240335483194046865964221113763709239125020069686146037878896201639394980736284999891001288272517850664172760089654049076904947738838196713061732074420511997400023234317977946508952618213984863829430356453587515749120246470093881903625658870398382048177309700053666998309178254824337498604565761786589169875927736684340956315884498779271157734378451534617861024236889123447749983750587079768472592412680780190813706424563491476860974594020000529158483258408358410673025052737151937627574773377300546017286734913165662456267750951543951462620615129698799072693293507064261381637853637459871764424746531152014106426325756444127867542493177457210899726836306996669904697119804261929413038064994926977994280260106626653524927206960605334654802886692011427149845356735357974045562508899067181007687396688048872545720771703139281030795260867806226798463806708758895406361830155121110326995163009545640802480238521795228567927811430173189266820973846820901879817835489573043168037456982938014196454828448489468222047126070882980436735356032542380132016206460491060016145052840633036915793260788709817814118221997767164917412140523824012601977222412336265406265289865335353808261472674063713282322770867345852943834230867217950803037802077732676576274240834703413022711444650457332896594366030891775131164783549364089211090778674586360296500938257774287313596861615772771104136521470162691280103673487262248658770644003664053121825929521871815520785076305650095473221388412814653191122799892684820098988067114046011349419580173880572391677469305340121779430363803705977469731917703963279651697653691933942520061090945292858782465446179584021973421361086066376991461623623813505144641417538120033543249247400275812827886481407875792849186756209879320816109048322369749184709822727924517098716371428487318518514217255640615268405044920095883173729015909374546052651530286639874236247755300818380215266223658266252431143989604440448167754043068930600658122356576898794024764105194550721239051781455391228924339547946643726285286495878074326557933908819494045539564450853731894511019443169805274804941168688941598582019767469142742797917063655080504304286928747338003117199960211584920934014418657857695815602689488217918488862503311068697250701661198071103919736462072146064480435566285221013462286028035004704473468615954902649434771252392168603368883527749165535665752759083023744055777878709234872125174898145578241317226046262458701904033571476642397540070836954881051366707452395213747516295461865365139780882570811189048310375146106432526150870866141818906550297232379618329495875933935455441592206321219730019933575087470610753916294026945477784199281687153219807661229299545537784012154188148418150634787830826700076036348797368434148958254491737584180579805029688661496954694841683580606909714630102235233618429945236021120475140800268377260418314799750257097208065777299687746663608018190798586768226203154392022639233532803392733009211647139344550204334072863974154496356191740328426829165415098869847407405216458151152057100732084959101046448005710724242563457130236662620663388868738675577874167281029905728130504648055579663762830652665975958682685036751637775130243779542513069462589774466870151331599189088862127381660382049534400682712724132956012370655546150409154740606342761208002096045832283018117017501668918032129845497904624034532347949672529116427846262708605601233792586308379153652697310553959431943188809374430152201200554817601574674150241144725177381572207807810965990393125641293511849556837665176647039162298393819140605396316543699104862082173479802096552048933255970495666462154015566964320853529126349579856627393874376790201226051289107673563384095513763164825846592600991764542993893211708505524887261140961803383840101641328174659065460008202215504429239418028044638563669123523554173537016650991250849148472051679463626001522329929229906855429247381009765217909900861307557464452840719641245016376817788549845876511041104647866856533077757056343971783122418783962945249511328683989502410715939631600784814637822132357958979050693536001993463777768311552986277577258968640547544444995410318476695873597220494409371686085339353868289833573885557462043232298102185404205358470233869234337954270571374855743499509084424878021363681278050731473560522440086207309311656261765226826235710547582569431199317138805371307950736779351534764082491087558428709702299317190096760214366199610819676654660261939860183974744717042645915389394574739158714985113754088337997523627385328691469143343601436518253295785349640392348895134752359719830750269926847446160312144377090936126611796278308280792430251565859393353759025370897576705241792034963227914221240439711104594392210708337019626085769466860982491710021857438029890671885575890810678748511947529302274640773658690732036525573303376349969595009852534380629317587772024404356930638547609353841834221900247477745891317003422265115015147121901631508394075193360833082970828225754093863379612023672861078563319501540553083721785230820105470976328518141309622946141879234143705722902853188870094306802267457088365230186529544477200900708247398146331731825802953105358728789059976519694541897502561875272357176146288886477907179299365040458401543935742908614022973779806419239464862189629037508873679819301667336919445284398585591388497876116997802046338502026017280035311357322269894822702459433487823157165231487606827091140081140396520073127563792133303432790606633553698888888084853422184698217605732351927014865827505220572444748178721924362335388573465756734353835686795791238407144516039273785779352189502601525269488607399521358373257587461705216291966566336902547904327832502220706902402903144720727434004096738061290312868470775142190708138355590463707404762452242064431553491118864750376543294083594291185656843372613192064273851393104194204566605670552622465541802534982028907665629978278782521040424065697438697564684925753131161070374768221760488766451808306360781508921120996833492378143175176034789832151025097476360179301658121430821613520386208038366901713863923528376825258124254928780182174551355500283596092663838887878368258427670491872206270775023012077817289820511882522479018669633274493374736947658868238570737912458735933081523917395733931106945573792206652779656630198434463503911526748492181446425736134033650854059801157630136378972135649733151802647191947204820528435792132725108414256075953271962776326799040785376868162384002504708491425689081937740393079046007484495239889510426433432393921279895035271460756053978101608185369216492352437571655686997805284672343296211323122014489871258708981913939698300001524340185788973642237514000679942628762216628300795277891973660333623368839258579120212377111064527962411988862167831708888486057547567807170339128814517618351645298924729139110851186076171132046918101973459722027594910482039720527444641674802140099257047302659536821673436855537322047506700821391943417540803575333139750206968060127888169561566390917000776624792283275286647137911826919329197035415953614399451450843553714213638635289263716328416105843867323321773242962793350381899080151472277823079216679450347915753146806854259466131045118060624102766904127105642479315292580412291256926397648166038034602892359980664663406768750677454507958831610476113421912053929228324518736007550055857825070279104684465922174177707975438646957971918500505798739090009168720275387057592599707691634444437136418671889012824133427118259202580285567453268281225943080939562736027144457230331647998986295151896451238943456663534135086786247470403297429900656463486215716544637555606428974112857670252052450811306000333413865791981120443676529486574052097632377253566118877709738414205675484473780986088038732634994942685012614095520771206162481582203835610255881446895912921869801983461095638250554596681880265888766682159267254415393505438285497481028407656614437817272565418290426478260137453608623051407909348201854680906618269401657133469954377693793213620014426193158286312021774425997538062162923712778897725730866648483347781900917617131319100179151827324586803981733282946531534948352552357198998232363609477017538103847160457413574283212631708858527532394574528642252468453875034275811486197264467568428734695604777026325135231285731726062573243126086037130914102546736747118303369104496702747185654930575729144599560047963305655146216028738693061807403126129862001818754991642054735144007385271231006671985260451515847574397771269570574542199351615407218167182810870436460926580542948608158248794638861186007987324309051419098407648845989976252969715240862121789574879323457825430650389747755411445296206486413893690289487267607163496420856963206354187259611180280401525093220676477226502233051770279118266755888087154453363356326607327821238153085779563497014782513131266834514704760849973278049816633482632821150952549855221480022090316993800194843250930572584203705437514670600699629235479869460709705043247390242125325900405241730931589638217703805286203176893785914641575987838355273910570894869706914162287900419703140338876964781807107829816458604684768434699283017076404367200316516650241076651686429459459693360964313656841149154805353375488451797539081194617459318783804855359911777262990899645005519603968083353498697715177620940795716085484142771238046465724483176857352207522095688653848265724880332765343894778587542797156549898207154420484775642992376756685486716500664788318615688370917489076469534646533927706341252969173575231088032407759420809043301978170401035038564706572979960758556249047273159393260189113110774822283458208483153786800107600667630119731172083083368993537785845956862834722359650358464697761738879312551372390400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
35000! 5569428542982318302761917367777105062068958228402336231118638409803080178117850279510882148997110187416784368305102878710681105655895277948472385982981337188378366333990127352989968981169676057143182322134821769998674426550876619692614139536794191372070179538038389171165678404398954710341779774714934279862136591697846170082864835456698429525572744219169149820858829163259398396029059664523428835253312479332271146366595434864353151518208849855860254742006281239928506275440886878868927459952998934747458564976425119346871853392676240827708679259322282087981053129452972021040347872263078492906966149633754180031255628120313163079362614686487491113442248186088587354642573560716762454262480340685811482453187587551408824377590528798247036126897058678670015586039264352995595978451449515964739130882741984253403908859369168424201300491774900138429793971765314116058500077974898713633296753305916648761421012802033901690663167630000364015735582289428991715417117321657517664912299428621695194875412821765095247061361509459544223009314449717196290736916987603627744854601371274388067132830530033528591529134083982708309952871192996048928464813550949092905914725930928529491783327524004301169567442092096365214192676050558100786160806620131063162823823594301074974441741869984611031488916140921764890625433712678639747175762722066830977842992018619534055816649047738177312185607483922372502822238931388055253079335128758939625564133579765916035182707712751123789032945021946442945737460223251915846006295341946554343028260553548524439383808123800836320000361009414628027044345697158782440047851352967206077255429879492389924989356331625167286879566312471821625061399364249027170797052064075782965469790447893881291509141975927533799827431052755979218670834857913312066049405411880085944023099982333909671827473123449950232126223651917701896612036565852404338909794127113774819163789295923894425861627083501808757429583192495143803309565656411848751571822540474363459080379082694906631242622052859599838813942258756064009404297520730901647363355841254200028987258637421257224231927970200728186893569824578907147955292840952611722097163839941006898083283634446822673167543634600235111545797380230060770169388930733841018871916074267012577726539755575073384216245324545064702438213155539758712511492208846404882831252138325875390166454827708977613927736975261515315590789711005790396316628392535569086742229519011999141406273206980773353784676837742317682162069875501850544589087572715016553678114574321411510812434142839062448164579170484981781562041256389142395136083187684900139335424733589483723662222474335824343722708988439412132486490270531572087491058668190168127457766530934385787907725615528619514575861480345737181910208861455972014009798120899619790869246058457999080590572572726408753917230368067241321875160828785688985639066622694911344670953992973331955918112200935367677691544130590875396933369547713365772104698554403526126460829670411922598459011505223739785351968854671637553240139837438362540594365783739961689193253603122961332204046941513505942153118112137308834325264806165525047723233787007455958147063594019861175132637134113142839063649940429505022440842091637328475373486972385839092889560073943809285264100084415345235900360404896606766819523286602966699439027021391816142666571517393723045774830508255912632445634524261061005162990345339927013321478041520999905598132327533538594085806869279270260551215723503193245513892919863775601292566362401715351688180147837399086755949701777248458535121719229772630727853049189867346814205731918434592489353273346469917741340962441332751651097148058910724250255365394905384306569208796070229944453632298808859817469174173717471371554511938535249019451472856358233856634746175574396832568680526281237984894423333709637337423318299956011172905152914914705165729590108691205128580980217832217616504570057649156327798254915929308468878435257421754956308449091859448635156277597771953545631966797743509941870934685581724850235999128442363962680865177448029160514604085219072164498984214120462815761658978182147976773100830338243695670440875479065113481176457884600435305672443754722041141511579430569884892917427096961253053364129304726795551070743526744332751381708600068509393788166621159880452044802149839533673885543154700504033902810125789820605544812535972761864943992828610725368956304732063082923283595627035669117156950039486226215462469611626061206204358102407963870773341605547171115507459624032773542533450456135027733738913699458930594770911118768364268648368681259737013769496113956241928358104001909225591208989765991134089758365422790690771128253569729803978009767848865762977076502633812689576363291945187576681367785729117566219841570099569070440760871934702064322439529405336321849899249084345179483695511240041266284701242879316401989923604427951998609631084512661085240908908052908760956682007924660823549884456123000317671019362739236389890476839820405811302365930096723885546106047281475773150127131308195127561837483384934814029175865595771581165200261579813220360927761466373308360054706846313015593148143887907895623322405108251565071808007269359388214549665978053628832768693503724667249502716810999492275516589974349746624906602515186473125531270367578020560681087063967091945501438659869180445607349865369533052652605394033407176029974489256277026545196537821636895888727622274116794523654641399131147673692651804706812222652468608168300614669581268847463856706674140335293230312625661749511008557238828692895859506925885735110126004508927908123805266181502995974718504663834995519961470390134439129503270762979619370191366568743308018550970253418543378521986950033902418918236288539901433544009153932931350464517425149959883507612424476826041569369768851853377577711105164159145880883542804633728490674313715659975921440873064873715127360904304598707874624418349128798779361048255837661212905752227936421841291820890107084433512447261753259266024163573345536926408433040062380878312373016314513605072784271678013253481086660154310315851499441617742250388429409885898234508362407255159860469654518498842880795862653426884995112261650852226798287202290465055303468829710298442569499570380304983041503226983619174332904375090729585880345300892743631968100612127338369472729620694955684155105349140574599197869569844492957510060293972193391669087157658492020003408124473734198612206049745958064284489971291337031489537654711785163882128204038674115875607364375286355936264009309126634488481286249825461403516769980995695570486923985314227367730590234739801208889977686097614150813275761829696124513039594036075478345001128645556785780008156632806065078989483056817125829449522668472314988130073444049427619982864686666421423024268209874235412454817866015719546564818418248917006993637247721940858850475842820016285214531910223032232633758914792477598500329995491111889564312015682168170428441983716371889311766944487155097992691811097571086067146255666256458569418140299483378544145997352546532701864052077225025517462967643478390488736633408420776191752185458322856681129734832415621368943198627869199097402329603304517451609906259812946616829142583201751108940009651171623927931097191624052022467091235160454915607038192474569193984129344586198605792685733936545478771330631301571962116238219380205094011532813165324253812671067298499059553441914213016227505044012864774884265717921195338162432438019677767674004953191544801399071565563020540759011617865561259527419900215393540256697020695898007643195458121903819200926937990279640294683678222098536444253021220495592538778250931239715540262974943473423743054366006784605047073576599643627495103419882349309493097626233778158589880611436246292690717596669954553257979822030503807791174387940340611461850036494993153404016231646478109553290124497842254824090992241072149184364479847112892479759420941149862833361048086606530543770069832195319441467251760273987341158073689698223053936512715430045432159861448117692440008696617213589602520309640172966081081618479040943664304276576329268271471847913260508438042669598575900363721549058855247184539896189906614142813068046585262763422074773979864619352583378491401684379551347518377430746782701287824791623581738161849536888244813735126374841259152030955875314600172742385730284114388945260229061968832393833626829653208820294912364404507298691743816522864167529173325476075194565964879189321241400497232803222782090978797690904213507786728621661013962538897305924319842274158986278466685587856889519105976058367669963720694610590206611398928583956946725134801066393606071107568678661221282666778614383461396059456188757149613837600627686940115152636585259679288095940238732772144278853874623111842128127432353587924308044208079828779726456240355694356404841136747645300571156687275243550818555419752514458806579502999078260946769286972090098919125346094469547258269577457433915099479971262487200584417803544501979881693975020527483546724409713704722644300172000959272307266528554852099506444907071663168880900998562168861423112390574937556835400458757076672144103532340506532425243587096136054237738940986826766684628618477374778612756056090739787737204327927620791659019392039897749425609522433674467156875258805518109348908684774843508299814604519321998539959577355171016051342192728263211706274552789988984908244801279582602981285151812159041743879581406865854038535187243140686622704415455945839360774073289527352934326036752358108306538003971677515820379796706606902500684313615005100575272971112918447315784679252720673933151184021614716681645257091210768141736775046939261792980796264817464100517881865064400004369385136652498960451905556993749404379840207113573033651133284953238177561579782192785742010819228385000557334211568848869805809861558833356470537351623412088890515664312236391108017146815655212541943415144286388949016545875807030708125249312348907373352325011481047446275712473091286314704849894417700894343572176476224211261809885755172621960657088046060002827868186815530345635552486860759646790662395872159376958422454886704188096377980974208773779898570677203345445968716271718744333804943188104541315264249048468292417812444268349664666948341402229615829655358043584321719471351182093286588521383676022132150302405138718877737584414679074927057445671887649937490502478844070103691998141624497725649712404852681940552129447784519591194330316467565110486124022879409332388315094187774594751879928295910861731067315499717599924031280497596120954345475271792417938638591569056763429907078652640697492209561991999021123288273710621392095291724122779290324069949584114939683099448903115441570203240115998169933005281590937698516940844842358635892269774724516714896241641571252865411345586633758293436170205597656901490464332349464513428217398721490674246627976878536006177977058252459960688096750190908667896302573273676123467898349135310469828947150034053639632269235527551544223522728549973600490559801803492496174239862574024141140901534013148510819401119750401488466510988295176965885837687071496338675976220500504523306972117234847398775456426956917707589319251178978782888230732200017323064190107452569699074136514981018208674669793291852520606139085743522296654731403633617721703257890136381257453750914367042238611726727674137019870643075056814042312515559661233605225623599713373483368395931424429566965467926370733831204724153184627830625012693779099871152888059108614429469614302260577249191830180959011275944368540930089274559834319682616726913030730574483619192526421935168718008592390823396189852532053146588875666565037581721978879063138445224220133351372947697709994413511192636645085433365161426820381594457286477848211169657970072143917443781056595957763344355505253785762428023484300651698429465034493496046692896497894425707644627374325214381575991241306087804271717000323099299012524451527844693894892083132507360736635958010621397803139899074603969608669013862192810177794369134926822342527006855548773287522199016589503622601408003885596657487032249547912101957477831169692158098635702998617044102983260399121033155596571502073076317721275354957019757609115080315314123006292717889976659225408760893552391637247502673135687063416952663454796071104227194182027239769485516263887394913398463293712884000163505877805674249427928919496410000466463460651165791198666884705470430056402620512877737745947801168053509862193002291930721280454227869427796694176742521878251604127573721760270278375362644801138961806744642224205489346248089127582900737273396321610969522036828001418320867201371855007743315862145461546138646190942250389936456565692298750076899698929082599160552171106867283783339379862736106640531298189993518593079132785713831884810435291472114390561622107557448346873165550345542896346490103602091577451490980939277057255025504936194139883775749026381820447590747016721542417057825274457519091510985692105636262812298701607464417396494467051830020560251158790635967343871522991425990695863160977217106991726430716470599969050047470824026260065931248041776389076486296175873080947260570250203711856402075550998426969982177149736834232623554395213632335589328981809871031833367097043514742026896278753040674872099346568494074803242174711107935337694330711384785674928543340947961948551704166973606103520104156170056979416065425638263810410655011050342133216788111178036679030584675806073498672701923127095574323345725766284845843496434090205371659043759142233049511948662674419273434170994038375692495049839798889750338847087460134392846815647662058295553183281118405058555742131359630717633091023207242755569444097588078746443665778319082375698463943207884476231708003617504940569178859767103921263481135570258281480609110332452653902734402390735108485128132347828994417566050472980271726632924844671328290899269778242400591558173858076397262037973393665975514738627240392376476548540437640596546154706698812534155897650771537770905123340371455231610192099729155641038427154506807573902693367843475919111972599743103025470034808679977252908092399929863092781049750189661916228360331784397092919504289449280099616704623809844950237527436733390748576786410005662301472147828978274539169200698743315965590154029235125391009988129046900913782817207648656061070868552066804028891326048190951217922577351021952332877074521406418341217305034866269641143965960132537847960480154825278589786839209439429128405945256796999904261372869718397231452738823011517247134357188516915168931707039220235998510822708112069152248487377123627703628302534863619647980735102997509881934147731618632244310239701066137952634379873076823265206834837277621916889844283550576738421121724092191056536240568209418184255972928511668960530654068122580918152455077252050210662255090749810022840526848547259613536775900127508787267027649365696340714619623618542469662792708440855849700704143579263034806466257640119800558656547092227526861069958909832323600311731319735817482119980807299622688223479723433528359688078411173495695598110154775248110713704578893864957760776818822616541338281584646873308183232191885922456607000750202447287940927019776226743033660229635479921833724090646483011688835429536965216460325924848792966083140576378787239723007730675466325126961163508639143722544487677268487561561587056069477712463497829498254419191431719304124945567822609069378792798429074738298924110335563420042335941720237495803621523155265888350215034154202579795829736824773447026754464012583302889681374130378267335777077359058922061714302244002269851019437276186292889473060917685029010950895442634404762716849736271801011791073915029217080019372758839470887561806284526851124180424753563871900168990932328489352811170380127516141650532791091207786812067532592332178965726182424303763327494146604296488115716913731519341233708825785575071747839639655643556684369327517861488971643626829648553951527618272078658814205752581386937856938194544068876066422268284432620962855387192416785730035820340729643913839130807150313495673626526564440569360910996409820409475523538448536217963287930373503404164893640870236075305793628145262997636476901512875176084277539047821845030873119071157473403952888478424737767926348371533690346255541856011307000870361087354085629959888414784452634295985730309491486907869447155037053072527393058304677330894867117745283806974069914327529677486886373155377152502710763035355853263807403759317643968740145710284094208946694284302374430611269868036019585610640513718507308328526522760300796028111621816813594764556480037335256199736572563429390948289388457172998844879651410601703294774503470929437174075186916154657945770568731371273716465889143651041695048360091244110050181012148373375150042856829568488813693951570797665318569853440643522158163682640113293304156978349046887783628327357982965125343565658437052291381734791786211447484455482294794397647688061549221834881055198255392923159810272457556324632545576308313644368979859224595746640880855411791823177198975836396295572001287366160417966272514559999030900431416457787785188991223981866198128597990417480066545559739528984894104712330519547110521516869924679803427292118306406394320274990321985904872707367893993161642112121066488075097722231717473667377090504369455014888617304442884588560602246107551931976929263404964569744495306902743878222243026476339616679029501991800074112863225663285766461165586457127999091320745315348967402255266799178833102592549538309694640566288472176878005712073275752413553737596006537386486302822243200160588102401793233485616718235325341945988197872988240218902932279278801337084159930525389534312142583002506945952154370980306554309736131493429489992183983934497310216513966820853122200259315970838101220609405308267564280385904692896449248014701205678570977379032930179359076245932263069893356953126849327295369328200449791036536108536436364521907821669069521704443542359654418289642223844690476728878903391583316655576812981206181023991676909173891420544019361646062866680024135381636927445907205107785065992292006494505169461686759734941544686831175373290052846229784659118452315502210004835392490261777783698453417874129784192513689832078660831618268425439333751683434550224807867873779491165413731438317431937203688098250446212571197724759424051159182882717193001393757483546210306080007882699973261168730103845689076405247819381589343881197845978852379375498160483900975315759397686468527431006224798501481845734367643187806425377001148271304414761857531282285662286349493485850304217841708937333428129956223432136490956258598999320871358610522637262829477726191287582477273843408225674571793408184254921917901266575532431150535699370060969095145208344689342292631005644183048603281468377056740733868367227538065100356031040696759893018057080080515550878335142505601450432068607481317266049068245070874713968631343046503346747033794296897515583827085032504887202498701208377039600846563711980767088383267274980461110406384284176218777791559839571677719933739178693294378940238800527148251909195309163580067856966413842962365067327366296298761011620406552494120830718481262484251724360559943040307877055027323550527365780574417183959054001689794922651482039352086498789279818567449144230315946487830836596314378351715739887990629068521986477880595697707436305119899343388148411778248088963901687192113480989603551533910016283867808258413227929582246626768031871192388940034967911112183923806736234452831324338335189284620096129031188987623422224045570205236054580661942011960094485335995462858540259073446498695900275786022586875951266118612578335128173913813560742803734460014044112382306042167503685265577358854963777835953562655808808869703006247442540410551460659941553647843744987955305046855608554888409998979228014155121164388297110374279717380191502242603246146395950492717610675054484949213350654747510220218439329394181562711472441693738428128222985485224698062908356025158792755051650696569663081792662794334936180949387446430130835130616169192984177833382829263960868320829566679905148990450424161244606793842489585821733556156351850018430327503886344068938433939697922304965218983027290862637899582886169790923608799632399241553610566924991986176217993712645055370459910050104059057429069711245967190293236622478491305038450617566981602744241164659015290105444319349641248938553608060157654382150466432480199973411297144461400386595752706121094154613671084481484995793408506836586062101041497194946853599260589822201246267931822511718400567762743667136467877518562215995084610781178154387375277329516478350042246996821583109883812187836436205400947385866765804813078575039405375956754150528828090845063683961357738412004874227955244110438597721233705294717042986751370684255042270803365628581828923715002087023632672445212274054621225465528859755917267744172257389656384140170240607066963439330389216518634806221600296437870409511420550263977045982874470946815287695585249283002712295963331294777698470400370753067184490350757263913931762247254625769490407041575740427507506993222802860807127927834090619158740878230888170502138879414586380122527094761113505096105939741336733258682811015129147157665170426976299867605319893045212846005692750124248452072739596337462750570593078863108590997223449654465834966536801934992132135235083363584473178973241002414852381716537568519975529845338825130267100980863459769032815379519185705605366561171708371181624800513848568078014254139869492283327199351789846064242112693622777672040573025432148478734924100651224653104473708100988176131898972296293650488269469412922460714452041727359351670186819726457513725389248587825702776485041593385372423649044540355231741584009546574066107792398883587533080336047714733450875336133897076410646249934017394788627415921093806312222494061650021506083126163892200162672440653101936232173591095024063820153487799374800550347665572466290077792836146420624284680499972975342558472848510316372075542515940040635262972311211313006887286694435352355240186698518844719328631358877083757545861847993954797245593805569332413415688133504915066660359456359158162831281000027360064359446588675140936351307261823582152379214778376605764529725556873521987464847546321487366327137802144773014623557166492060007249034033162726009225948688225899688877013031472388521125961120841891919493048483424452950773606253083872140104366949916061420650006473833408350080258432461321238039741877155704445037625439329844069021807376754511592392837876670359580283473188156335274028751912316664562535539258493562534421491855340332045315236288331493783297748549095178608092667527999746824663172165057801825807051869175823967179901633962895247051440446147568522952965524610806619036250516268611242628613484597211063491554679685210912201839520912604026394014098417792068660100364111484694571576149888760742524812796432998148686870574336133204397810928685909147158621820763944331171428080193152761931629213251802576729208408820060452488251866415567798319994643484054524142386682027473300057507259595113582314939029788171747421925946849704742095343423101202946256352615014703651263426287657598943816665199349464575537802901990713787435797216461346145578786053879202624312137702067230579205336148992188105843139938343820569319602200119450337755368049060981689604439984032339556536055074199845927532364913369490675692517891336155102148715339286959126203560383235666203368307128320014192431779179550500749828885014825285785873466701873580174912090450948654883877493691750912161916426016138766879583188825746975976275267801337746866223061683766794162628061129653411943120324094387651059744745459055622043741088613110538346109217148026080340418427647122761670714573383624984507259693869779925091944516750582496531717464609834196591350336917593729893374850267530302224789719888988402198494582470334177964793491187302807425461596538271499214109111327420054570191417610819842939640339650010963411725461882978491437212745925623281005130774216514496625122181970011335716047590891895727488501345533412360050570352793918202080965959113908052368031802413687653753741959877428876208952977359515339245041381854025521593362813752453663525929180897880083246767472588990114526131245642762976595427367727218202554848454878632048719923363548526227890174750663142284937790585601897447963889728829672947322293598692591121773128902486135492276514781908076271248874840449096535568154177423602744680208321200928442909412210324001475421347647532369271546189794096248856584775716328092203400056558767764305055492985995995588886332824698563043755120111939287910150894093168243984515058349561256032337475467299497787899767661253210280616996036592454542460114629876397944279595981201819295130131676356528608143824501056322409069288896265868745882620909995267793197917752144609227040998688209092510004156925084859558971056560012377042483094176187602526547224467328157514341515888788874675528818619593511901652402450780915198863094229410259258407299932574690388931521309857464507689178395425964150244034829075479471626747537918803483441430863815135249993252545948707551138619121271898120906559317757013403249921930135053818325707910210573484531867235682869886867376415667302862196214401973321575654495738203803006208627028597221495672212905771899872111196269514604695955546971096504853231416739034788580587307781699388247921473909966629794917387737544657517830832331233215384513712650112150173726416049235194900887560187864763973852595450693529447219207802360153735299689213152190168849476053336962007825841281649218383026594821950571956848103865449944597341237141275093289065843762741284840395660604726237167197646292043646568255285509628220770072884347105438174592431791466243374515787479824593689526746663714058661851370887957560579955213373135357491281079180208930838813978898867618315808814937922051437936549376796540669000273824075790587024883071832644472074718771984319647831108136856267784768933783074628075508742790787671718943762191329969587703003582197840020815436022094045518623257374641295478939948619591802254432041420992171809655341064699909199467089272792225521508910335803584462252297188619062171706684176940183536719562404947912562641926751633623188991239621014074706892838661485041007153405134498767595861881929576419022495703809700630964625788965229673047269113988248241261350887010646720145833049080261073909806761167967698637251632288831149437097339881963744588226821046474319425695281554261455820123865114924767795450063962925092291332870186788720934112118143072729843786517391216929474959671810377210578758283632814884746639211184119073952547121513584106600318890719301789582705951577058889684510144046338923945453100315057491342068900849662389692881841183509983533913927161943887409575591001749472248759709329655240132094177178744699656241707093011271709004827411790266810742756386347726416195934046579910222578912832439499473921095808351618608936341644348896823800805506526157925084498992938839019935145985634704278718525007255164937674591395158080696427075524880038202661080251329083188391740522048465218327136831483965754798198801416866956788966620434486766506590153331767489921785620514679874925430734004084237499130507029257825570895972150227187144597485692459955950090573550162322423499109484407411576408791864705828712890859204401305582530304102613363213977162236174613220357309858040598998493299267213328278053376347164458728267787960514026768608873465880714435173511970810900277294046815578345139978149222407042283961797730951443244371395345628372165325688585193769941606024140004518118204582524010938042723205717140783492935225001427321083276846649278358938536396454360719482094842657644483427828147028893538166755585967839409585473379287421625864135365340883779376599705289413311320114438913507260112828851290138901367431387260648489358629576384885293717788759009621568244112512639986768664996369956539911570245802236936267674586039540498072933738346674976225124721552741736814730191439216421846611412027060716944804604472320588603936610252585656740663444109911027553524697399261186405411755933554454837575474773193775198055783761253763379034281559848018561988550481552901241442195595645174092456627083029864698526563160605151507246086623943469579887753774133541483621107147425401376701113129474035878381943279342326282733630501258454614749335367784407087765430429439199653244310759668953757178589921974266923017593454627642972160870921434127809281815010348016520199973867736439557330218912067354413692032701864729310463992330171362038607402297039622037432632104370040947553621644081394928208904123465608016344238180807733986654390805339258564380244292738025090527228808720286389498578170775690498549692980249003422133607859594410554696749944301427867752977778288303383786865403121493301715762030082113180225585610880268462106738096484435907153768976621040364109213288362676440460126363340803960815030943217712205789285422043535761522280663472410311153996860936266930602828162183014720248470794553656335448146048435491346634650013383622167903526012630002237469554254503863356970613507991496825384583139559445604350051731486207860967775950370895402449238727933457488625317213525447183295682361572552151663936507075065931464791769965790892150268949410516308034188663485019861425269947950634618815823922045989589536760311881642971299560968536060423593705855974543211268812398738017194814762263094819388622283635875795905552474425919427338330067548631895266800858398561694415071090352249390828017247536719749791209602236773745096896372237837103195871181550318474410195501180391613764458665182824442092397126095574156609926795660705283398313048046385200778288562058809567052456234991469780369900409021639498222994264067550890299089783814356425915616578078177318744110372113547798064420076027908354853744271184612422839682487115234256289749483506803723315213789195518404837470628797681485859537285261749356530283316598948270632483305138214905582383382805848283856301047592593583260310637883365046551116848685059922451944719301429775187070923333744873202138694786370525541139983101217672778568203434798983807165777132697621382622965423321903019427197716964799597280908251084136529549800565865349765320310722798504165046577580648126934573963102373704848941984412884487342554832265646742343050449886905861745458074817826767334309064803687656110094368251341021513021308604162224997523529634024717584176599794241466948065614696838829723616409029587581025793112667347273448981913031295227662813462274641682889982652346788984859822529800631460609431426916969638814506679262968076978497487598922739061209097614560813990378515150983546664144709615197970039206944470639435821086828395990123999615234487211296843629803942498312772180441675983963860541371786781543007230318797248585976133660744850041504666449191475933418761018849738666406175767316305963459463353102163039412898767782192262377988895504740185803879573264688695236254130151403653389226887756961673640160396116378606600220102899971923312284515932435909705096640882977470239717484769839355146366698209931545353653642283799436961556423845259516512036962897701573110851079919964098886827306056942826754742763749797799867561252921759814288791994594069472319927492478761430500459844860130910168137103633311914711708089772786017872103267336561414244387640350694611771289076501915208871735512332486987022977444949471822121866323185269443259583725352041147042816272240654232913756805447275736511134293749449288464500943735816058182843132648977306293560104872691834719972347374104156150486610431500579389034562322076535921506281057653989492959453894347547785133461582286419701410889699525507595689349370398570545754622872347844701017725179529799266125486272412069472856360217132259960118527049953736124965811630780707184446160561292092903800338553818098982220771256596131196522516992946193234507699879087272159112556936877093519312617624209710086693825904526500969337341941024146880449490631080836333710749065431986955713766484633185315637982358947520032179375091221749427125414038413342814452759770571946882545345103614989268338938267827182410156354211933341418464447306477412578182249813405029010150785504542102843314194956677166823774862737644989450924325090423083081646575903834737278073023784301315163598874158947028528239878963815401868235378980989742132552802147000563923725544748941491568820967837970403127426570529081597357417667523946992457446108390070709805647829506536130966835123765456521733479122133399105643448720375664165453796669664762446863859658169118861343554275679512447426407946092414245568015939560114966804021492353708393758318464297510088807606878991020372823729032466617947709468397008155848446534514112960935735205983325734714877063576376460366593323483093434403046052008933284014130120790689763540864585099158515379113555750076718510930848607765354087526763116899162947531665542134183471337414915198523089895347237322822264095607934812894697419946243020074440106829953158618207173509098104489677271553477098184984187437540873488707551132227091818084512389604167879239893189004057036090766044522911326090216651362780213748784000493902011994310854809001592754869629875426120096945678705042965785958920220904071306361131429141925327637786332477177231602478415947706705362669394894880173217685555454288367386630191195486356560453282466421786316609396246176429600120908460131942040914094902045133778177549591575074761871048867919668462002878134571147847249950609104847118181822636932790069099418269018524033472879232094807753481868080009940911351859637062770296561005462750970317229359962007466321331370691771342906913784901055389722179257426394406414778061917238014157652481078226971477284557192901147059832146860015127308350819880881530027265513533505825093074644044115393612379914955571347940611502319024805034360943804182593217832396336333382835254968721693372290467917520467368115096564689460047589215277748176308215305780667570101994884381911853442798492096002840009975246755764736738177603936200481174221008119057913659503632053541547474737773325609618772309873291567052393301995874562773059082196612820634144770399336296850039894241877851522390270366971778845227433915999335150830993445552468191836071908623671182844183275148327006755315049957835949898648439341483699813585177475623847571557447989636042837526659063758161943049101875484521243768447962667286449633706461847304744574207804199088513364850271003636239935902715376481505848597647184461679055589784014896080605510271745850492656341934206592466739492994941847392605044250827618501354497142127390247586287067814751645061668676147587644450715800630331340061205312158087947993605951756161801133545709680863046275906613554852785007307655020915101413977254986683140402694980177668142819610554992703473913314370026519622379400314764996839265399850673895809396843827340995117078185957719635454505040950143445548440964780567171809880273840951690932264738205542994482059134039109067442421486687466872363244738755820445115859803523701711127407547442463867034820065350923313842286726591984257865316936880102491996291407243514870136584350653948257546522386713766741405142808986009536636596293888859837562503116120188503282457779536907912029658494203869224265330797519010162637797887902025695289738364495188337987240478662688880579057037116682087293163085976196816745557835256548216077341976900027372327343919777622487135614517659767105569159306931239310771351454453672716760812319484944490549274854960684996617224093511199669123562783697903511895630283066827569544518006193708203164160292083810157369716455287472770764617634293059376942400735524108838217112873298609507815252918619147773267374292969856412063330401562518376752361016946182931926107996594431872617923718287653909532333656281107088475725246953252321288634760471979920462773775571847307545900450454993672933155475493262404298942747936139119249383610629107756580878207871636743167248669744765117139641100412642202419955522465825017501273871108556016142860236738714006140119082303777016507861716397018017326573196771435298629658074371216407511777577154517014887063355567085916090569657903496618076438839380461678202748725892445956671821869833886135006554088024553276771989543868882442613472187571974185780895089377441685568569405186501910887787403700861755885851233786450446184139253428984751136653520038708051877852630436824085128183884273297741687000180774096776963414266156786492361008970856233447953500886486100805695045897757634475109636365783248871725567751680715936655562037843408244098171181654271085269207971852847121268174629307333153884132817492282508843578524535469181872968162540335911188162384829507161225040479490959801423010370671320090626190782893322353032428991434981658130941717708543702703251662600121569115120419274294181679436013698736177679689667622258314617388389433029885572951457816058513973050917448692345568752545078854673780127151396145695296576521870114966316553195765733505177974429351668336448788956201071490265866121209629633451652920931231040631157658917360363398321199736416222384377086432144077395747759431527188370782544157712180921565465183181947499560512860047825443371001805857955918033373773048881146646153414959409912536103824716706525649789759083988424556315380288296778503148650146485829683675186188215143130646985456480803643211326177316396233553125048574013322053782612328552868137680140376565556976791704688533342063459172793574120759820302664931494815264393101612636294670054929604513781590364901834618741790120324651358884459256058022544050376226552117992452804267467352588981372553996326938763627438254892210265096662900364508381717312810285246522023968946462512285736794832274239669811600721082718184137421409737479522936161527094855205604356834744306262520397501856701393256635072606639149236391616213020270110109339190985462549684103368169661978801719203749097942922195574747141360645454071126367585061545328766074681336130486774315569229555204036252367248590960488233679943321760204928503486466752573361401855605728695899457010222081043629088128099159054722298580720784946834657951230838772595201191512411630689426531740599027167352375405623549563823472839102745640280729768369808018872261790392932158565280345641317942636603407085546113362010177190126183635486011349647369419740473057714350757736972445921906715547912343502388776994497606462309925847527393696684119818404068364446446382439678306710685503478817293477978554274092087249207931059645145715513388001764947408810903186790288562387657364211506430885212908649243449540713047120195110168569102512019091166224741384977153209517709827576115555861388615543245756125727778412446846657692894525746411768053873700476895112140920259973039916415196211288724734982359596538101892662219088798831876095055464705291618841888448420400671508001952511354585165794386293826690304148898458179996967832115426792376276236761140732154169951038642004839385724431961980065809046746070130710091074039392318415033357716184388239480317825674239202120825487640855631459960428637780059511185412573220482333965989456652615322084918291235068804370575434872053500626516504129324212472256987177860323884806348115496562884182202645531006953578327990907410542388934100726294630808325130787953638777660192808050936128651509866881879213569122424876218860610189813967780550096784150408402219518102932340557035425291983332406251710350107567669186777315107821763116290986872329529699663669900375389857258430671727804080648434282902023673263486197754949488655520709936160359159486077319152634610527515850263188716345122127618346920042883884223924492698312897560407123108495095312161582528087116730054493203844816140041784006006331374497477355915586892512780169977943942156881572304400655202346344214456770577965242609713044863554701133446374615486673572532670421695298935164423907471212646127777033674204441670375693370260739418731009365187699832907057280716767029963984164704967004882972305755176405653299423437367126159091443561666345845923521121204428670680595415682462956009210359182444460153370086857691004454238953268423420319254989444584148154100474822130215777048349184902228873610470198597924251698052423297565239695552061930800908311396286608880186991633867573513606372889969648291465981944125033068114699746197408810058239273309501730424925539919752988273874788959912893120553193562747586389616768947248631953351572843468003310728930699539363804302104225518838958705210728403777667369516506102251015207114442481263533276375963796511975515151985645433196320007072094030686746941399853855392165763630425671888877745147417924882155648816940871509266985059601918252532167109477755873445918118675321713483768939587611591921296084247968550925829397303461879228516856964181244838398175767964660226237527864064671758584371003434711517730950855883673585921082127234596216490155178160360797116503658712972568525160726879283544374560624878602637438634229381417826028181351146800065883978630896903704534896091727022787675639603896556740725475199392874592505387116584065613793599481558068932690689991946906729969169696547863358218205373780402716353480208831983799531051871632186655154141838105530501298703220023380862407249402072555429872946110266039183554315505387738267604140184008478838533640880131049599662016500312526860063680544678545232812211743912252039612152683146650019810394049913345716971624861494315287250578533731901487452010452796032497693384259869881012965012663663429096607067517581087822120835926173619138464734315666578692316940561251485261059195532508871376560079573581993367316142534347737672499181443690135222719917013160125401914346682503425240479507547803274499576494965247488341128983994589029631713556605552330652330605963242752192707843128596012450899771452897396728500661528560010644371320900290010939177378736124732909914925079221810285749740613973732648426711052629369005081844599240734046094817709728507943064674355770446440084152307521965427695348533734277139203893284518328707960685102991980712572505352281966965084769468946796987506063821763123261337755407915631695680981899025267286812628785714099390179754053589478032775879732536793767489942014154432891118157204555267125815842177285955415429602779982785116141583698166518035829449274218640450276698573328544206461760267810548582327474221621422314182823695916744490023758111905151272576574949252910825817451879938411899577362272288374349308809862625069235205031069524769644394760226433219882426890699634565731721323572240842691595712653286909798820048013884741447164889697710377809645391162426334046227750260380090482442828756570305263428390805046711145693388151121244143276509234275527211558773885919695160774628082287030049125948439732307313558204915137378760040638363319812909378738010432500600085718280271283484895153732215957964317913259331672165262491676554810390851998362057725988372006342482855692392242022290289210153476095598296164384593506503433684021940752036946656103406032518062010430791809869156090339192556594958982897480983709115207742376770609087552390787932327244124119602532103169528124999112320664213236983281844072133260693639312283773724855265504470960987685423456002434799995129252717165692514406452583100712675036846650331199481874417751966924893322582586915542262322435172371905399517729868770706358462516689625960583529704656225775421948915401755694875915004994354204704689550687459941000787918657622492119031698380925780966747531553159465458803168973484118764606205901937039346088485179603061375873015729741729670099211943553325826377900182463693680750268066181765876422658226806245551587729248019562549898236600343467406305673616373106119013291493506586709536922644315344471909445816689306772191652416458591434873630897119599396921591477962454136845799787646680702173308471963914475985761392262711307919250083327422860076708732837272852546384656524824602436290914765573505178729505955513633935308048539620096099758112487579191658066584962841924786404667980691319157825579768339073977643780624627049689089396391569332265999250937881887478888740983136987795532082272842961681258188616701479632023739641191034265305293733753475426803369631239564404250366278800202044565302005254870307520446756076295176410278359484459467453598359017546154483819944303411422880186110053254112482944035521014655947278433786044512630514523209559515734350022893622186070407361785238927184642791551099831760069419111209319670025234531971624777383976297863696428467463464307267462316682878455857363203375109628292088315353383266280498618455128782444896685785705296650222946371935576318476768362506704684289643724870264701406768042973295517999641431301395150996865494578186483301641429292655179601456979728750509099892399946577665123788811717064385934393808608891262693296395053782266273539179748602712471204244600519609444377717997473782907763092658485755418060599095600342359996329289910592724913313048368351327106842128131946403852555334224515551878221253491695795155299982954535680652590411475630423516746938761382540768869702381959000590818530139101885362646701559131811982689556290017433700310415333187207391346832216948396345933114638199453716837136505250454198227295952932596879347581320687231173908919272413957895680587399175547749869260274028755723189429582111385934470467347926043879154829582132652673480343694102479309978396960191955566267806439343192690526520041540548126311105668906648996923077042017295819179583337038914740357992962707000141813488053329751994899949659876793637605743479665317687491048518111210287757927224623371219206979710434651281545458158308093610369780962962540091224730272005755378113978679655628330330296879602170084169324318056492785909089123798349193479726401342935149647091965388191787584980520351137898122468984227958476676813152231580098190842103528132456541248340269636457833955069636605049369517038197560900798397902519759858543510903122477257124785046642324775724558239309709169048198749011875675417432868769889463745249816011580492929839032045785242147279932747287011640748759090590461724102311346482663925507133437975382858869669494334696257218480494787641752202090456647433699779247658819278111751491717163283661708707180576690578444137095303880057977664945624547638807521101555367798101058053871559397022270199066922012372781554914200525640562528509088987100871850656643064296573639441339547245366419405274422901233125558014114974300335927582304311304554398091543236560666644535609714740974927348346292236636326741144048113921234005909238396585736045814005559084585416384418815755696422351590941501259046781572123872964827703243670845686780936048291656870838114273733533196215208816379405271793651222794238518832065307178674542018486766819331730614582566431949199335837863073822395939782745057000443141472977399776147101584745747009734013647220929019576630317194786076279538691590449106481761304679718388538622789556452681062845457660826444492156638753191113535759830380450505708326633492414906025368253993836001112511704866936069102150887904780565848739172258340793169399595743090457434838688571761403829874697835679688419272210963456558063544263435952043784769668250616404601937156871779859644898501095170212850529826411436319529654084487867525384054712990620730747020778548059173308668584487824797276713462946241198741439347409997263202152705857646688575231205588340974466950136707465212555188332967279592822179383870525415732161428256128204669457952505321484741895935851756871619236120814797888977813301250947427905275488833332183512695701851771426754597818477200959502863153881043969954253530215475245001272284028750508141487833343404644546178333533740323604131947287451100773430830615307705726460236442690601330835378190015112218992634533710273938054187402323640826506921879893198006480551726697906667525509193596853294047063935458985661864708102465571975487301435684596487294220692817317236312424922514759087867011689518165759555105507916009493008349868231222739553697293775082201847681696584179908164811055488216628894153673394300957480722929818659743149952236589787303553441031304372587514724688745438098313306834793952995895656402701411512394596987962088181922860042518284193440343839898054284139522483450142804813061171099509421701641820530795290445014135652932093894874800420623942912371466895084796805689295751501927523083459930863066195627962735239716327775608233346486417444019757491345708418895634791222311717486778016593012847168823716036928274935374483336214524450381324035545078348600916949368614543633495384549399999935532053367017232063208172115431076865699628851259313065610656119194051997400480485130360341056990722809662052504332227059996232876747274156168017120765430170015474806742760074714174430275004441813775114463941901691913610041490122973837584581183958655131352273753131082664355187942271406244506913223080798511942093351841032896143042092685955723281878597997038090823860619226291997792331978157138640371366013036781431746330364163670653701464070474811738790842239108201377662789398131494451482766614058092106240195508399368729372665321343768479525963880860945468708029405914225954196952592104981520772536560411616398354102835421545470211418463207305603528254395490410581129968412351559619483675602117751024104931861003739393934817862468469163809292998100494291933666426335320858782860574214209895508924189792432853633750801182442528996925315317214370752306269652684994963794188211089789781124265449686652063307770629852709140758299759226139940402959162149201992731542856408955930792102027237077980315788664465714092598201203347769833559689979196139911725185247016720185986257318720623745782047695468138864135089626527518099619239042339344417518189106723338163944636734799179483998310579411938369963682041594633506940249489927658367666520727395097141577410439503519547534847004716942798409198542970879270655170740111065250095708093197852037208965541551929753635118455882696355035705990293457487729108310719442245191105758578583669894729934149477997761207055859495061020708128449360888293795496630758408802033538924940826318571824244031119002539075646314066894596016711954213962897932334558006155336116777664773820802003651927840611501158154464217902107944647326972042475537047805053356980897358618864616337191673770270004092865638368136502914833638408430843079431779200813158650717152693939250334964789913153694957884547534923335543091275548008746422934119919777206794005750228004417892557804628758924111151307200960008352236524515859463129328088481498667805395068014122080630980424143499525322948870106832521303937484994326852965782020672093636518105367651838079874795886677423004462757357935698872373235441625242265253363216015597648720934551317817305479649922093654521041001836625140257542586511233979025530769263911541885957621796850680108852719040153720248519974137511814074841811278144647705271391011935805048064501348767706537975297362942256312500288315308659269451554806600899396797590636704095763631503179427056716856697795827612134827204612313231085352407233909429129461127789336771191102749621580421570787388900454041890803335892039887846677587675554375862211109650491710021373592951105030969886245864321309661822112439148293226507181734548308105600285821155044008014649520311269851410799295634162830294917719802788956825053452040332939314484778071084281698348158291961701948286747169556365484828262214257491244847316190999584475718845449396837945537352019879823005682180834137283814549943949611158262208008701780958101699479809637260010855430449396430216959135514698835890863663061508194855956448605286592654686242222204874069125584892713356053131833499488194566971182260662202017627637840059354048051220482008402091213722931835912238960274405541407053592827122464756949191457611279701437229797748470969953296611809172685072909859764132378242262038568997288766958453790446219737646362127022285079065242002612213192353711740735291867777983942852143696291832534411652682464192850497460463252415449432086513764815285243130335994204209322056926761888279560556010984890123189387724023731193970633859962191541532986513903940714016053861964847081415433230797667459708817185565461260311894403522286153003066512971687474965580845612067219815659064481862030553335104175937732434553843436492657525515871433966905814111744152785014527024935614479727187726372838005708188448763247379946538066164646070896102535591992501011762264843613886010660990399926018211294930304930325039163311856560575419928773312371835439416677847473965005355013485607497789281652835296978831359778355174170947845369761071920837688925439218169813514111980688236418039813977045417877767842471100832903662550577602541866353534449008484659172492379120676187547785461367659308803646448980918075373318633726928866893974796754312597640997575198656209862571251334658196029202172985600396181179229358441925193107515423262815284289420355365352260570277879248836915766385978348433367526072725395126474670336740348484980884645250092580771746831718214949133443357777053223247763487320098791994985681348394808360458029410311038961444859964253610993159136456635359836376805726811027694228009203062718401666630708522902019342272118750150164018468464560387088844040224570195695255487684262968711078323896413097729676273772355821417142560889335338798652878379564422553443334568038774313114919287765301888427337518845696181430548809003281535120426219626756671731815090450717247873786259729537237787046867051314745928629045626694072844847831808338343617289048044071239965400453976191032812477975505355547349359737586770140782179103193232211096362202534099567371746550949731872622458735227556687940747346509338170684328951150007820357229853417531705696582678126778165766196342789400874625607536887221384963541134021262291238177021983207007681429646847688634907799879103994217382931184769382572925173251917314347275211083091438213730553657974775918707417477097005585012472638319588975819533922043397466547515056346050285291327913988417578131274580828920264323252761540622984305004348679027658406367351467300196011381422159799815438681537096094185737493924739683029287700356251911859029330814950423511211990742163623242217298248932799906712692863749281461979254211687571462687604247971526464926069841431172541949639949401013181134781037751228706188027215330422545267616320236749147290013243224222691431946271279212790747037885686156618214589706234374728889140083004728396060797700450497435498065243502888246848033894915099528343084213916702705259671461006779274477106402978870325455926907280851384152943637604531111085662962885048930627199549201807208967168469512081320044159141356080529584785201551920994735469058123758505077705348084710820479277274748348832210912217280288667381576648739144222792239568069949847592255165827477415577771878011863572856857772890964710892294505485661134460584136366013953842125297028988201071997637655734830456788072626604322887557681888998683472881328965619627493971150157967267767327343848718608825363421161314722443294343841660982335782044999285737264318936026002478073942372771261682363776019969962758582343129383578822619260209555989113947479376684976663364885069402973147841225432139000584915710708968824893157430908078744003891495972220054394007208638161370798820242744247388748374766051924908028562522634877274687731245372119536784175783691274266363379093353664591054506959132345826249694555819380483299976302813103767034384813416140440156291716922881061356460569918141408653111819277857918037038941805340641773939257913984438547014489516513211069445840133705019196831140225001920669571790037268497913571609611066870047443060481225247722934639146443362045661226300848851673922184701628782864755404584111206967718300639613401889957292430687310055089827739397772935165907029049847475258143196113164301264220965667666558876156991155359081667877551859444049375341693768284134550788727688528484142202909611171560064530646904012864725160379652777275059749515744329980452321497597027233340513385345088860377286628244115062625339974497163371410364541629831556676188839258259523231221128777845033916197109360040556711246514172829002498928744954056239404442626467168429921872373057667159829659319413817905337753261894255768532605652446418295734184376580695173190415317133995792959272451347698260635740511636871016958042940897879101638943193219352150106507908412712842319808094036978809692656928658623388017272697254899792995866946353161199575032986453112247186474170956273300230565779172764968076014846359365001680360284275705866701696460468451041642867255738118869546380324397546479903735528569846198889668244888130322543463052955306420022418775866599153721585861820605475958122447438252053398560552136967284523192736774845854753276397882452536997848111883882548061128992103595877151935450756732778231569648183700209511492426295440290967887098464975098844702650293235286691326488997588263498434358128411423789291966897164023328785444939241672950437681419472579884055042718855713003216300288377652263027836496336780292827663058319197139898934535539090115282904512487262802495997606898105912816516155022533142578489732008095786515385652677871967880645467443135346038242555543288728217640671669632630236643968934386983835959727817007605040722338333220558491580920908844963399673321138129245245461735375634321335733931551783740588601389659556015464286222347003869508313028875753522483767033152244368506615761684029070234124967576995006295551925243627274865923825816686499825444141919039273953861676940469588439047547554332740587125401073371521987456837670374875456984323996663515428478713656204024135767417154769995907843626179834484084902249067172723524175101319254788664942455964559126811489646225567764623530813791129328695236165300923642606845119307972442916953780698412901394543252641162035701564979230193876695607970848383070551650436996953328471457780875530319110993628052954151087325225365852534982386820835609492810522221097648453204821805129515695903498058115986489326228036631639565075635239127108424459260961250211712702460638500484238417503109209024976778528877198304057650684632678096007667025384489907810982359611727482545235176255455264215408235737623714761411522793057979502343944827126099948215210840196411355160668810047488906050922210364641857421291637909995962577011932945113893305610880858965166252789891651495054690673131002900652720172649052646487684362744587538632396091287625388256194086442856531412194423390771527836902631707195799702256618854184779445888512880236220826518069013852152041817413512295391915397119090304301512779327798886905185097996038817132444148399570658018451373359926604822972179501214418709154257736108082305297089317631261403172293861643991150136169994821299984814346975106150922869073418851651580562765765600743689661803250762658584012132620356140054372534661796058092985184199035691322888420736586639799166268872872829897263569827600590633170917672720609665982135154455625483420847998524889206436682107632117195850234390839739312474984953961466206814791755446637064826063209745091978509790504794885763040478631528747476536746785988614148232927528540727310406150214993103493820038169767865370364370688733235072216766943305588725822524787112166642787092296476940920101214253186267770182373840861887439181555518128794619768076934868664223453521815432024974291841156409462178934244951181103317856391686476123709170238812395312055918775351922199241980329241141569097977095298489552813847824431884029013185815430303488712861856134859306290612592162323231625504192999548077925532914275579352908212045430747752093836111505133268844414657881760057432411417295427353303502566854510882565007353412433225964609498248076880507962723536979331144143998052198123046130651929623034535889540316905067678486585468618778747210667945439766058882823777734152742451033532919518034549135088952759966756302408268538481632307375667465274251222367000196912110616251618994824249337394493521144600867618980394430329203023999556170561952031192307046743409007230118149447442382069065051399888503348328429285398835135173027817853494850536903254804098973489850952364517172118740976545702088848110742406192696867150184278668884746673229720721335642413300404665466550512497244800159719449907325967492443574553090719826639061889553338912993337724579752875630735698238660967144112903012390122796035169407009304172310657511565897567080333924315234850446400502508782084106806718240814757821967249232780750718130228317491318307895402569421833090405546097397303148683526699887290178821796242676058851246239708191510990616156777407004819994816290850788340784151434081055264544808890551205467268577982663424978306207264999436442768778897208118508051996692117897923467894108914315443843971697338079781334533957183305379681030382430506023873752052071486694891049599081897878030329538956351020333044484216407733600501297566616749379562434073269835895925707822232013387059736264263050572459928271912982940003560102749215335799259389049609685599747449006645866605811334235979311604723477100981318495054545837110508393741067040167974940044994256847019544209981458484898522227276702414950912311081808661938934829973455865493449274779770029100599460811182081042864418978212201312174106803759267126602443461383185183357852785501989625502670404597105861095012745875407703901944479822148952276610119013692171118428426738459262679288608518901878578182659933641064002619674153440519981844183714521227087071050542336058622766743299713155874933275819072575919418839400307389249051804064731750612278402422811894642503329835925854526815905148746208841641593807474117683552616551291118009177446898421444301333298724185026515040505463820563737545404141190585777309497134900992077922776946581199926746775624850688993579102084265343129169652300216128119776841742923432678106122662617728313678695885826440622426003629061395418619387315856780227396368988717202782354725321973212021963898172926335738478752356096612641612464046240877202799992141598143054170176493225229333317630625108218304838680206174029503620248011089399792090302450285585792821919537464220421639752266400942394799558284425483027948736912429256845650805862227163337122057921310936034332931993232904502606229435664473757123077402713582287509392642104542889117186434363972254468088178575292324560908278579031193133113290865432652786561040234196226089771993021740639315340707079605184699190803413090394853922784397217675981431863123804526927353921783875121413702004883945261505715835790367009379924752228219937969792812459403837205691374391699224360458378812326454387659265884918860478579607933579848260313459592508139882710924480388047083633052389391181080787677350091425243146880675253179833140587787161086326570616907521312344882306247958273095909970219577413858592182335651452934317079836051460414602202767424348311575650275552048584983336961017447011158634824660007816727867974415264873832270128725537956438034013415731900104542209322764688766812215289048383762654380488094924572359714432749426067032209021880542012303008609334107938071111907274097675957714096857347309053269764169627665828593251899217584484197041622158204802641705290350445815013372013177896326032592689189418199914305524981606366204377333909200994993120396575669530638297316149354568087111037179571332935766932734913503812460656111882526547640911470051085117262586798004579716656739443730833130410332075944024712494264820115915739767057368017313317744189806382472973844323490388633689460513266703200231720508043256402248897122693400881249986634560335296011423469576996380730190932643311126135678226583432130484302240327764689769642940974828756094147719767079169753168134184874398691675424144769153950865042637537303683156009600727373736881599572975115837537287048980256356860539656957981122327268679942111679520499871931853895114302955858721628571216173599419701802334842808961608544140531104458913215596077035700626272255705916441344279372096121673338926151514709079363525640632371662082062120161937348666504576959072136710866563367150324162522600431009815425830274184359928613609703029727177217092233508015692662897903152058955025657959771455126434079864233523569995674834606082496712258474099375158873582937720184992966270105651277794510963523565804931834177394057522632229067505917404775905282149959792355470587386088965180863597119919022296349153671876734961548015284584681534422012020432998274587218642043848587853368025558989240660792981745736928983191732814331136452353564237867269592398636296251878696383852263744185714384655612772972995379944783924331042859574150054318701682990607263778926539792419594695559733996568857903316162436994541742837233705244774602477535930699493616913949844343750129394618154469200498152505069516296583408658485655070977110831148263800364044007593900349406607740379562048435530801170810415392078701359777301029972846136512385724542864579882472504917827261918480979436793095587586432956356523645056759670274085402492110788698870104160150579812402494946702057528951628302019765860698174897878816991399850496381100201317665589643006582504287979928932652814151440155142953956410397207342118997449859077791751972659193837486381063844827621482413902767773042236337846308995878704380645854714357635097470757146249313332229398784675739614723911019068349227722048438685568006601331976447086141946111953570536051615524734490393793077282450642338732555521786975779232065662127103221697993684982098649526372033678430982402056113997272763240813379914352362901641900392221357541181118797759892457924484517258240664291651637882329506312693177106463609526781662901232427460570959119553888934365008989842448101445676293733742802674341020072833857650318169547154735489740012071648197696388825897369785910500974699678279541905023984324217418363750343071321101933048273357841638013688709564113422737526610378192587739155484744474626881584644876071084906143143237843559233594656022916424417255283586731219028157309816141517961008993447594692112901153041839771222746152843950820811503288853901570171843538504014244138748819561935286717811857919211558673666424744201280957687319128243574117962659388378779525445997862693115895711295328140554527945847434139469968760872925245542091244912322753681527649279878528224348057275845846556315940575308129903587976696847750613965704457680934127177084666368283196396852970087794773939223155916527093697463769939283606048192271025225418213419426724222140852763365834320023925297971912874313928204757999207954772916910932686973940675844532092470294529444825885113424185560124355788989562155938304597471900190426639049170611035659545143912183904581436390239336508288005505953084537070549806325056693726542179881654864334881764980200323920427329392510447638590338192362188594650310060522436014567706995748076256303168505934596283908344524088676966546773906662171916372316999147510119596454159293861962447105753462718446245311988662018616659692659679048855249129034696720977741461129917363052456230478877013956626536357133512507671749305403865942216727834333249661607821623699200430784097390053543040363888743866738180726793823728261539469421275405673817435824394769523357298189647926873803520004974131665476286534649735421336817771363637826927007609153971075897991666775954675187723506393898890673513318242023796237374566377635332110421359871796982756146176432888863701574556409051108231317698081151288116744802445012387494833787120124824470838394289487231208420415900310000570529634467062981142416519340122492909613303886419690240308880049006689919785056734600084426558696484961995664229714943419024338418866526083673677533691973283574149214283561552470433438594953820918945574883183299164747300859876257891533205723479234861490964867494531914980235241928530401222822432386950678969194845659493387253322675842030779506962156845963451798114349387786354752700356793641413544386412539230665978431295212579939859736931546035630615679211716392321510174669263125701142825038294131896950492678588835113951906029402779850568596323548168228492258767877168812175612697835645238182027905544850380273349332411738177144802865355236905132246762537935186394623239261027056270742184675830664873869344756063499355068685190247341326879746245398488218787206318094318130055740896095579229607411122590855579861631042761706328987614292300878292145561095211980062483470130296815935804193691063284981926644839482395220637292414818126539707928287833229527550776773336849876621427198799313115252592844039488740092498026469883373495688446760044283430593045115911407870724220306185097763595441393996759246181366122422769919178033137159113899456471759184778671590465618560023480046793966341619628179582259997633260307929300495152860452148389475194366083419680983472351901656649617195605422222975631171828395061745785491891315453158247679929770721719984566367616034604865994272879478526354617368148378532931181606711625965479734645728281613420286314763148669794821516956635435961536991417419160165442535950822889644961605895762911458412327006827728059705981423121877069586869628605064214207818953734109586937906644463471856520284896244674544126096293301846896310948532869658500741150078849375534818941360745861449852341318457978455807295552182673215300568708308495145081779474939162357848800142821028251727683802347549679968199729012636510034383011038730136315135061902256513886513435637379846352627222935068936782364932025430176755468940987687952019487422048993570626149193153792185121259031619291898846455691758193535137160207605547837986494952545503008839463883238008544511715239106660813613463719478151715457080582424734008270576515320936150634185444329736582532941144433756178280201235532890206334702410205289999271026919293297348798620378914313395790221773582254657163473783194402348346933825818549583486129468139608494907450875206805477752109515942144888626164596058764590960597119357311994257988086555579662282948658674600747061604390610807632070156747169613090949306150202324113784170205269991533266183937888182331048347065389453250129341100098021610815765584750083816109011551801759936335034144791187478829604443187357575912899530375518416423318892014879147156765879491693802200860246030820784538603608304551893862955352523175281210693577065491481084988587394128382277478787066704275647287509069831819924396190933977401690763154554950031631400611580849242303228312032540475602195416763087506299404567227934603585479241506462375482332046847443737618154027963044234185953584791387955096177135132034264258746663825075764461920523264475113217240224078359954832821232754002932430344918491510296215520414264175489083230577996027767402867323461557715404650890925327137452501916476340471582319448326074072979162982967838572732355356849409798785385722960919708096297411358671246963447667790168839191288575075680795203972088214094872772297350925983348308684586315182533563550600259462773886082526646626556278738561807827769600672458815466441370753420299558635199225368250834132903730396011601947487558182689202687706432444942921659214064888270325753947776810604330779180425916120864404071018053037032554941557694029812090830015213424185741846138165008248641446310568624334686439890725215184403418326085575498583868949055707357908956349030515515591984620201272697823245055682841157251375046578821341715476291212887644648618725696450361922183922634808184971278763072972842992745875254656376888268024275750391665333184304006198967651351151230673230498234154803276552523452101411300392507163440308649613749107919358811431164928589398338187115470785438112500226480789534378663367402269333651211428487414800450804476770260191900761716034912522958992484797097903786547409277723449637978206984303866652402712723382448222584763020890149586539672171882465980007634147501159749412288626048392762247919202151188162125258688971694211992236247058573351165093450557492701051650697704343364717204535227625204639753128704888544450230345687166269800077495298466483671030350750557913862482486797977002633440752840075975939501470675065514981190184597198579633117361733438349252492032834163959240756827500014338767644738630441678378234291448969442843645120532619012213713310088606133429633476306116945675820435367276150853698996122810862174076104139834976406057920015229215703790139162452833900267676492320072467591179128236723160843998170247687588080999931595102657843985956532654899507353803542466325407618008793434906479509980055079908929432538258252693793315028699646204146442209754500374047999833450606628402766282764183429405822934957423093149485557325935033659549775065569956416099980984174904583907998409507013093631105218192061529307938727667046121962735907287774025729680129299461542077829614318630641551967579292521495192133374277818550138919313990982177611338630002330129520836531002967720394094936628028326214196262215472021213050640134792556659054082961141191200476881328654248293230135229214276102017782028639710046497692239721700562094169447055218897222128534925313969359160684807353325512918023946233892387764784688963164292274406172270090161607934487534887220863830158503197103739299349833067677863194085129841412574765103009544711926847062663958273805530650394214956549365669150730568944581830747924396706567128336249322811396338384747261602974377869336358196723670269489043011032737601526743587568756060157955592229969536607248179548663266377567746356305365362047529429560171458166718672005432631476257543329246456120458918985912082149351624031992309599784775847459011225075757624473972226224319374082857194114046542117207871922418186359200645583105724161999021616204413949021236359284289762433512233532023157952081518370660292915513565050296988362749187675786531253707737943642236415854395360505720272158165981617764294555958297629645588183892041238407139670922424457184571302374901899969790785044975816672092082985855514622117244060726049770033829540613259739729083950563807740826553085722529168021917315581413275519780314394460395769746612418882414638624190240683114420795511761115366706209551837176708282238199571199052709136560686256781662803545514082701341859241077481834361270711658711761159274882293247095379062053886964014238698247303963531350568398787626589835104956362330719252417551479372666031779390119553220932048541863241433470169930832679765256350316576823980287554313470031728623566956803127255776489164644118366213804404681885937876559189684292822606609725138210695816411083581883225943959820039201268073224122037869836276531941191301742773247884963072466890003967892478759214877156949385570907698985170329351776012973926115396418407574539022526797346616472747159857189695589675824119489184361077296925060873152462014280138651142312127482867585440848132097310476149243917210734960842102205043712941655966646950357490484090275943065911893010212793074701299842426818637990260655575277147596927507958429787511845004767086906046325660097017317762936679335363824183657289219813136418471817455459059143536632352969003951851790197351172927946910401079858714362569564453511800309663999435395946725430757425661298375680245192238135714815716289325756035841429662073417248447996896991762493906371172204702884966564563172006039897456596057645979902654137648378564797272607596389450303360952763452544480656574690106200066975317606650350825247417101811997026450329512588435593064433855129774225776497470960334825671107842012231325769479766502818486213606250181947319663489400968832268386006052379230994088183366007836127008666876750944521631314322055048961564419168427818256685539456359291282667955659058872184045096781756173680629567994676257849841399041495091418896938768905759736770556231433632540333373042538291542286467831010765126271867787637839167956817612029103869473893319584713405770653132349158568023593831182096751206236563469477997097903368325116366359784749107059237821899450655514624786888630471164520647889488081884750614409830612716394336187069498869688858206195548703750673681200759383788826836667323682612327082665499909424249124503710929739005050710735990836148929813900749423684220308963785269167748364483169541892177143010882509120835357705746031372672065098552552701290946363515387621709661292099939565142465138401057802767531472739234827646789829834051417286726485793553037702498200508920586771691717449766335259674684390589317514414550948709594952319505747937250736616750268563799813845596242978917562588406568770312344290594146563560751244290994701981988125397783714903823943954598884003128369187006278099338828560412192004534754249708106604018387623605398591581775090563091238887782864699047780073255694375782402398821593652844497722500116961441491468662822185546443676082664747397514098271409473779716074552869089644966238698389977456317835107085329447305694227855266165544266997895289087210558299682356365583659057759143015121079156044249274165897569153517949966842585275931500967340630729549842541081246361834043425136167309864461364915713276444491091497468305965752020137080950008589580626723975739711424534350310672407860599720150889263370702897164529572979135146819021696244861312022846927652553471072219039264953029210118216388586673805373481799569552556030608048444823117747209365572422313376132748277578007081389379930384627292145879277448044153078919758498152663334097675930618698900409422532309197010198857930292839516975047250792948844685909479051039182497935221518475601906916425796015288666632144480967101587803264205289716563191599346147375312022774004227830897797753604389063784820967077841168558721257434697352853077844134103263534739578939602681315101676757189146789139235308679086717479491712894247397725673795159662254896897132215747809771509224084365482162652721732424491165754170774192975596062157217786394946715893894646303071816442369999938256520572102658346918737705081425695290770888379571602702126966281313296200009596514854874205289450184101147647266487600429262218018631265794228137184303044377914212668874370541831760879461533028699776062835753787843141818686914889993916728013775055636829803828986013461608425658907376723728207893849385330825650590968557526677676862023755686640063322738503626442967305746679010064046185659068878390246798935345650634564723759478208055186120430496008268865465711329943559658234615684289382877567988973109435037252813590807282048982317230102063952886463720447581338864590694221351660857028975895163343632635696293448550261724937953640207345246242943417776449578954133892963464407179538408507488423550024665544594661104505903696518835302795153100497025123215154686822393029273005654763901061192509718197604045895307885975541328903708938427675308143868197666990300655416714952409057185532361521635099184433647611189516882378764232975599019457715372856524222047563895922549593699852810913228892653921571558811439421790998575218176551398214699571158116272975576859715631652910675685960520697937321722685243873345899662853854553954846996653313361658402047205184006250543767778270365477059740722126592981308700758130946928731328677668816140821814024790345803772354525526897197654507142072884258327652632490543460779225296274117208047431525421953994244880409223999098846223170161786664648558189517435842753573971105978134041126901098326099558653667116970368841482629574225897815841554184314843164720247057450205242064036516537853527667730217550510221040920516692711514600719658604269243738435767773110901525292603862362841618463072103410262647613247953137873713268334339793385022385114092648160316009586232254030981735971790411208299714475401135081991188251673913784663398544190709189943869019373782014595372019099237303482734396883373231072270588889298619039831558428660580428420894673819588593793954842260640865760026479848414633229049005711309927684334405248900954381536247285898083721485863511515298650784951847095021341863342080841384234522967802189339907829820803562046174440643333375383259000803677418855888239274380262080092125447568683267304220396262378371935071653707946920934720581071840388386200607510712632126866299988684857081551676440947494573303110527219925113151033318240893851058240071121915221327709569706066088542729292523224157091870165739306111180140528631656645289051189644133005790902634041387766860528754634737840891897311559794275532925893806167005739312356312316477107812678660330160889755076258511801965983349784342735378086963231989197178160873408648630063738228016729828259272039964294866329804619500680857262884496092948210078219302618036765589592707889943078475231851225408238692261066110195560082272237599914462692764493670607084376402652572988460289812060467905647788947281231878958617349584365956666544141277900238790555139189374897490222996246825051391308722991758607698269991047762385474691407068026874206780957192464825573609382670860135609627457936318212308999082121345152726259221359268960315571242528532061444785033553284230939315897734099987551506275715022173237527796821196303720435514009799252074031079575766090457684487630963158310396185878469439528279073119011681669918227907588759610314764310553509282231606105613013579427688351436789754444472727369681193587316944710593255980368696409607152797101359540919539333203605690332269297803760175409622145390899127623394804620282234561446465546065856006834442090611471383633780153143127068365991721905952074338934771373663208083590498294194664446537771196346191257366945194551089218681180198693245583453284068599754238657022211816324766408597327065248208295592732876782046123637036199807756877633435777685608365622349794913827655342040316604731922737441080427427518595138322306569865907505008131241771148364739107196097960762813037106067006956042320747153348634413165123513613671380826766155297320954479456024323046221282236376357699934318525804545952702288532292549307964639887668516552903297239173212873379410400845686978105993795960217703420277733796982934268334531371679897874581155579838418307776481794368424171677783256863129164369790151770366452027932727919296258962652725615241882578866245476559432507654181365062328089979141664286129759337732994929416561219993458877192697104223423269012284965069729995774575641823255013823739160365948889148060138283492099904853855720441744707839497184490572622652420262723378324492496454973897490000971477985964576556579929521078847288519053639403646561875650511189462747408382802630142635539333788344438476717526098859115770592342070330610969495807509117264863643868976380771353410027410902924885094067483785208619623646572205376138312308929959569677051324209851567138944110286188268894993949357709294901745752381704590597374733164322717041191165231813019460085077070028237813087943432632171189234983345288245734833645245417124627644872097123119249376485636998107930315059989570314381482904632150204553589936884067895053671671952120492025065961719946481326572442217149196337637470777246185545171701394553852418326929947385505090062851024258602368388017121692547757706298199297973219207462811293745944435754609487702194852141302440935301894132333505086566121985625262724296670286783440318463653362942888032972246535789187537659442469808479346386366661118315043620553478038779693132042212580570612898832536365235628929506473365546923248113441247758657364136096583050929889197946255224054601866409863606279313694092622856774244485693560520230141935669230515523688235355344584457205075938622503177758787495001290098453061040526572189538448423305286827751070189368694192275608192663240344500470920408023977747512210809942202432622995653088873635282836238672196756197219245260101906858806031638900439228196735805954435956735971287961241549559050651090949718578153398590271433521747135700112591680083813987244825845850193951687647563153587594223380661107021968886942732987663949301183422592581818485114852434818661881766184362088107295440240367847868697896827213962306259213516285559306948055397590351374543735256301293621899087613926351590891619774790274423362837710568738628836973939536397185353108553046946221208446098015988551035022084382449632909902844654695059971305352716742551097122344959407812778351309096137243149835722340954968030662789427246848783306106013901396552939589815063414796804381934850352685151198190339291515537317431378004289357804055099589525134617375133958607585633833414147153950527891061020347205262918203382948011829068762259890708610479497855485867082743557430600551999484393466171989675636387942579584723467323684163427125352984842407290290758361242387624861496372916054394016830912287357909398291489650412746895342740985972019907524935000539102707443780127594327882415177924224047069229760108312991454928955735672409358735448948065835973181181137769959066350804805894395919985710915766471229297208697445340252901982966817823176808809956254434121659530145775981426641966219722236643838002670412487313353777726256186412713472911433165359018505817007658701826912275085970289352943170754230720676472423501235200282759240871219372118624770450890798698433304939577561797526852881956303746746255132504757982180574485190907149016628044790143827942678659376387378505080506329642364101001076666622499307522098716727698146490613108214461122862034550486034069006590701792831668333947173956368754535721183143214618041135555459342823343211417892314735941605983558424701361569596463578722021684642853447737709042134373560023210744863411635830384573730061570757779782467020559912227097452193525899606442057968594481065666185072746002847944049791411375721734795191167794402577571432734967793780179340555734755933605002007004463114292479875656391437434415890773759444598170097198139455006187028287814120085719221937318986936787763838852239306935371003618854223394190015237901600585688415927812609158888358198015186762912997896884598574025262689196278223015709155005521270267728848678284113016471832966514047102489370154169980781074394297192446545930053518459262212437036385208161650464969768147508603646069943613286998575990863874546828047856256608301151748368594054321601690119926247842797237122261703350511299783404084441468616817841472230498645555964011956034413168427996033053860216789494297315445901952047153452513736654324288584450964918179268181999513518134090992188504552250188945729859624973744959921125122481526134519735111121973161152839608945703061324506313422738651099912992808674822891984947904060708405008753028704002671254951089608975956844100343364679863636646976700665890989449471950415464656496555711020964839988422368848764263353554735084861468838357066692455443297853481154047724132647478026660846190695975343641351184178666788922748127927852465751405400798565997320281743175415005209596331820494146492828903255830156958641006873472658486513065435300832698757535132705335966976622859932000868072121680543401754865641834659587898247531412913053629542639530539747037017228473621773839660426417097237279114265531530958632543124066467244169084257118663329915386495076570943209597619058790534568385785762982006139645966065710078200815214308841759245211244791287487850051045177153531237684945543761458350715719865917332819666051997734225833300560145118961061186565124606961029858527881755910079743066888057033406549952948273276396424157851902895216466751211939929588710131852345903530350549504506448330731864738952131669204387230283492552734934097816093278130480556365205284163893727723232068574557136472909385569095392101074449931147330794508745595800547166268720333337709268333028254468608953512665169565422684479324818172274084048012076023610404794208633095894932111622227867939207271480792370018009159736014683366340594315699180911482598831068672158300971389100706578063832213441971967099712991543783543590385398875153819274691564348531735950913654347640977485921270459910867455525904560231490736578495776954129182591073939093670794638744871813111008385314676837723816382442753706858041404709113647772851878436101477139265430330469927015500299770673357007100708757331511894777853347732870598788427731401152554603156803147639245298335662068345799534912326371340953023112503572628718670680082410542384042170191321144763026809708636989833571477774239065068402448829273103511545830902486957111123681527717363344660093454017310335979407354649757127332216399568785398902848478558535673593904488718204180715914855535254538061391761155869354218933501750857186421399701000323904994534501581162469996734006559903575867518624548369819477122145615759504307332807849866029900662512500354330971640034052157450016710447406177018243823763338546719477148241394357115520769069613801254252955269786886953040241570201155281287340417935735604149355733548859971989603131355271458573237815893345427463830102400267379330086800609774782006137593475221385621950071164134719615671346339088482549863127204494713552823682033202790181593090484874764915536054078232948687983816539198947676264740218798658691500251538380364337552686239323578360054210971448355230527065895260490263303305663318234562868494034118483364233514379771413819257664825312694064313656423567248338859849429899596016183328716035729499853105085585095372077677161657101291480118991374333736110988328591983792129963872861986167061035359138784517803011235638951403660605514424271322607216411850832913414419855921573969424205886998782014370923900652407772468716113190541766515610755242820959017568660808531765386310740740691084267776002557347800180669639351885841366364460485696099472358013440670414869818685322303738953600427566537526756879915420479717726064359228862714200888893933722327241366725859130798119172774534139962193449730831991637382784324863362732238962199400606885960533535298404947791336333299980415983489212628060021975373005889021546819503615178755363433763810903807602115867124223978563403638399625062884381101477856033587535336386877892419895471970770921740408553998507249717392787940948563778163071314546412812962274099153194439089858926285166282927487095084567060926570830566096077261856282837228774444623518769555808130578957662456654526553661650682029516422822885036327098366671183863480407533179853803132405263132466827778885455145750820194338705136703347537611789540552772369335026028197357232363442145790576657800065628822477020195296003254836614721934223933646236290569789975076466273366008165026551526733539501318569949931017339009726271275908334947517029283657862436733390060893262845440153599350830515662118638638412895435510178639856033579931809088193984567160510834462532741611454185482107779209638575179303877320343655483956379465357412712988297810850562559408616989443072795869624411880027891694678858881449026789680159244053578201202995000555428525928074156557846333093449987575206412750897940798958393699517124668317245887223578807560606912527085231887344605671199050825904512017484729353580675572723598820667257298493316266056177770476390149222174663607946099035785279846439659676174101071385380218740619032153432121407830577741610973899224844983346306150568604283724537940046353774929286862609919064155671572570399400018391297696475177080225733079828110681184024476890143389851762390124425917925417367284071039208165200390629315017839051024376206017331380246099905946008536253913292122165596133556510463480286990855756805772665652900035684560283613642641753270267130720299872860361937628134239864569877650174724475050839216361378721948507679627026615323040443861909947218613393788807854771369777328674090800247856584649919612979525987420844097246947221633560791155496539218619872501734310054008219054842584212419785252748157716981923427853826556807682053358653868286966125100449187138876890473498947675706615376797876939487147768707059320394171458989222001409876779449645048583520043402798851184995426359282407082345196592849596872589663748591796585956754791979661263118837538302817749280743224335606539008325050444371006967212682671313870839455851117793579548068087533843390801656146413129795206569101279633825815719597924867269225353341638832273311574325992180599579576872988025884280073409414676639026340475863165598508955400422043044250762585170297136282243707498866217219598805951524793728189731746302152478794325658695435229945915671877657982299327893745818737105765255953757053546372122000011505044801109016685518774580997436698635497249886580720570300754744277185955194398581115822337995518092762920432592262082135087684845415552891385011955370847756441121909550787582126548930265105823708737545248354887914944817645986300035154022952146744615727368247147739299040278701615572778512676309283911805004345400759774149693099737402435315145261211495749828721239232073960903234627754549986841088875374087986191948720395291911188615000678615501397268409089186171912949658361039322381133928261819937893921746694198916400497178315234859823294903920905827356191509201887845524321814702919365916711400991685290912769885913017839641355288120890839635738009620343021188401944788933627255439461245475764224279738459670385933230222645335762867087225755530534139438302692302765006191273026659916229857881230749738337737948843261898673448934884247876039046562045749584343334583674907949179215574935714989314443099816368361233317264077776714854967771993443560320774098238479049236172808680003693467030249605046921644434232992319939717223231409494499678807151422862868621278578386515037456112692991406882992041870815634857963122997836003703245438604119374370029088923094128253753039361344869864593968342602716990595637070392005083058275158646127077290264580397832045510474033464310577274110577582369543359647481684397015516487706648480113020381099707020913893123855636552484692566690740665446050864508195278039737085202906885245697509571684393765559659212459085535650768576370336749746422999424082851816514264826136608188312957482249923007384919537866759805503554799590744220406154254063126408248373075801252705972091754534932832173463014541922220315624561876094623559502280644586055326713835879821648076448136042659304124514789245549160359207463834450260388029606899974005420150631339117116982028055614457117374555227402165215700494414990442935667373277718761247924118208270872278773248659280423616051302312170275526794287069989882706472992628423506870054481736638273903994888618829604901801582104482275438109184837358161063688777954186036958072412748010794590063567421821608810578351827735616600414614362120101205637554651804767961632248612709038623231377860031379975658287636940598142384302437743432996682951922162241487512645321979174440844245924155108036372824666822481309133614812590489665535413672305407709003636744624821703204365008143512092463713818071219174773932490059113080348408691215689095603986019188885801528191860022421894808635021237364548112440513930206100894242161059684163405353717690389719451235183181472946275602816247033387812018914611726795761204558594535071258653398049814139244945850915050263251066063385029211341038625202060343396344594640282313506229184951010016875009862408654914337272488560195827776372997664947074497123715251479667840778212992852394413797881209517967992657878908202345423059842701667271229403046420641420365953561918424644616416675371188849373260017666377888746207851105233620914670703902989224670814578717991472588785190127590029023202481527401935782943162320264935703640354209235780500503359030488901795153168404830815195975490703176090328192693866394222859332770244402309340172720201939603549001582966402882572900546415643645185175339570223312166182220964266113835954959187399178246616872594412683473246498617224684855844057478136474722428620655574958888427601161466078953154043313652717445632826142021411778884093831341555184026519520378551318073738251667760873638800597305744913174103575143918364557924697689213466423338260879453913415111900144302495315777823975635313502639221762907255979896430438454219079155641409542626538972929739906167711082906478105774837268871904873943093553604469573168517354278839423842454240222762521764049168623116596230998858727707944761466033306024289809395634698907245621220442324469407552957509220719950396330094520637999388691926802216590436594694463823187371361390739157590578471809949324258810242922644729718995317422502600917072387722196098971278059121468586994075793588192573218576434324104327448391069882824803694366737726262720831548986924887463901714871275100836776379424382684915800822166711796104492058948918314492217372760377359020007383513751872422476544642578340084427739272897457267609641942916467863986760085805752851743457942667634878061618043147222112989454621943950214631190252766271989292002751682889310205271570900991786775204201114104235582716505535940699302305887377727109077705321939366165853234298333446941043266863848160402027015145568182507920371886386416391919774420952283796857433616109077907751443842636689268755077810915138321699304364905773211439356081195684440351391830478757637228480278931691709362030006100897948705194963748892237496511403438888468007620172127168368313810515019908935016319116031836139019799731121690741434032229088117068851865886188011419313093088113016165391787102659320028583160175257673552267159118644690188896370200185736176820093304800793807175228350431683497664770860942269501352383307237402300573464583299446838889089303330901051609388218905286039806148378599757984394223865688710056871755579534055369205447051786002004240906904829516726552509333467799105645605472149012798876163678589773464160166985508901775164542055974953344812575164728549316970561565122729788011020191994979279402323802073892105094070544304907517776888837611380032521220750058145039267015321125941210008460200144822224806606597907958640830910288015552031712518034164762914898718436318848285551257394300321498369486985737139819587393243832169259134257929286222217591518425514911206420924188486060541021690555924575843886384884351727685623811891188841324116122460145545033034137827492525507707188493780932078275422877421182901337416083128278459632917467176268566158407970023316599750158445578105820541011517128504223410355954513609632544230422602921813349067337972127031755960167355136729304766250196945592398293200701636190805846681237233736280760995910683602496624040166754472244530380850503418091677130914149384390860560744750721601739527998125045241396558105408640434179284271235290907771477852417494163583298397248156304034582056165672874194322801710587144053477172936674416374870077348162911781996631064987957774705446830149399207798087169224882185279856038440722043918723190433857405363978752962322178022579721339353703060032604217405667724283888397865977329370592897147874753549007477453565595685247808240519001863744689682615132682800111806196640773663438957536816975389866416957851097408775030975701845734292645879325721888864992445709824032363224115890577904751084264147873932755540810612269369029691525327695395995154023590535864046092710630725592831680653729362199391388792816320652330850383524267101050922589901305962324413595324225328040742620255329869007294357966215669770623305192412837157929542317083070991673463271349152537968901074138907246064117629408125471813871485435011916830400282877792017498409367412458206527268505854030281219229256722616184271075257409090920554920452994772616903722302584749019425778287448877700233491117370838296522469856855628319575015246136279988502481200653967778879433716719863837363054237610641686612795944425350434837825191105756734082438269026292351583856606295237721892196104831026905501140502508750531689156779688918412148418818804896360771944531789189245014056294731605797513494681883052897479577116759838113568198099206247906653785382621049117235873836032917785599912453304721330135992635328522598151333935746876960176297534648223424838384902561712871066573660044311564919431144749924375021343400936044941376803556222999198783900972384692650440552305387382608869347362771939173526110365954031054889613415058445608492128887794257613616551103493100686714020975234571904056740846661874774354898293591272337376942769011800137386802482658540510532149849417515360426004485407412243899251873315543250027931521102965873155449194499222512025889403825773500519066885135951476811114620797551696987915113699598690888735630521182695597138808841921461318042009981911391848844359563686975132231221078126946926408218828434223393476483054478385408115928903739273335306789161173969197588507387780238611055249759282994874432465088152823783507802528835703665757376165624606826563318564335791369274730891479500360904519300600377079255554708632913645891593694167998422768330779669123750887710568220860530521608562293761638481367280492524605387996476750892763023959950772853513555026902626761233368603620421379044486084127570194513384901064814158139162621316025169469663989942351602806506262785822648580272025731939781660022713501808634612406086166326513110440158710463951537100369960576029281979810384818457770916167408083692981703072496799002611557219367053744296123882951949280275954658975618360855498133427278627301989120127555967361564387956841581945067868296981096385152031782528430188426284139497149880164958390950223299412162110686112863019854729721422618112291857108826910788833127172221805462101905495268081537544777126138568756729191369397337896001669198874236318550865795701244682677429022609073801839304189121440716555786421731526567678283401002157444478375385420075828761728524916534975209918692347988677455955309094108682755901876939460999623360075209479792113875906541056143511841122097866571389321919679462701736170896040684486399133892525104394356535489983579362055512029889278601086432741640757165055661553434484351585184213017422288586428633267999392306903610876763354209526011927486874045670100122513760569005830994677169244262573285913291185792665391961021490789522334703469418455649659850037999272412097638688685735540574533029710731033132364897564688098880636999973754313426649547050030921161594349159634175031775620970318023772112607928880013515347991217656809679578588842111716924221670149705709782932850938347156515476559611142649781826246065793395054600808149460864030801843801043715565972982346984063389060390759174407157065286091348239546355410592183395071715576391345828182074922048316546000607901532473573772751408796089497577069586398736185937018493797810683026626351977110632437890836865726113977435911298519993161737179225080142316090919605109325339624268798963553287937314022734816685671771638571691835286541400837457145765264164589484114593026141449108776056533569549424611852850042307044909368816176228274036131768077149569432006097259829673153926162383216628295609767222067056031589989414091825677804207190185122626997908000997143272654977718203813400836978885879178174002136978714596467635632068187724899571404071955739803233602542375090403346829210612131825648634979210792161372863335617596244809530469988822252595495264442297670025816643171981119716395861679581985622365926707268969980823411458355895767739360644736207410997837895673525145454447165520461069222283862031726655272023574852131005899997025740173221798545365852843613989964627305957496877638207219259305955990528161602965747641195739759077919035935241599488870292327780943522573485682920705283085507717686395284614688114615889070170110746767915928935668899739996232979143810387622794332789442090439912054199625662959935861465396615019541412558011071931819016333726297428809841510351606853657500233099460896695265338151474050670250697543956849411545878711034659907417216314362240775204795226672431714099030651893978687191045423251304317502343823630163650232594010753812856434102842709841329905462831743322485871162212309064638606170218784770525118723475204739893889778618301023684689114587962242232450058621271528743461098597060100430312986015839119052833894916628471845717471661192542458045818201186355400027982820699597682898132073595072932861671454843002867368703856259970256337900586258191250092503544976106121716420606937348123718878042120266240263176998033411218734417747768897990698540859611248846502946782874093014549985584697012334073432979274753622195067970143562115015058000779962076419845901653927886557494094570317707520166330672801391703333102703221068768003070895598595167299291409505375655097159786164623063641379046063430150713629729299684100219567155515657224170624502636837490820183555652122631509720562917210439234603172834263048481327506248953410270901241708668635359966331068832663414943845521772930658347481360732525334299159293410160778856854307904049065586566484042226391358800433407756406148044212652456937639429102721710917338340649697886287134578288374951438643255346992549798267394807502142223114830510328333609337135040352670888200453938755529716949340769723159684967236291570041887762695263920670159045830107886016420254544052969345402677918394951189571456850100953335977440704908327762145451583790601841887164339996253422532464065995359911198401621000390492310726702384934453777089829060129562446076453094328140115748148887496422253920475638783467664596542589153021761690184776917644040540520563815262462404281272123383738845968871219902375668540674775192911006281997676777543753001512187544978756602124510450613385325360800018769472555983264517809898905853060591764841936860412139129921654486868041288055482066423324369882097588678391282743836652935475830207047579903467588084775872520511281193458648923049135287214186144795253357533437454125727047498050822946121439930433638511756515076257478324711607175286833305541015053137626138755978862821772142833833114649998629905606186854184079670636021727225783630416374231427283476992681749996337860694464285745043429398558289307490710296869436758274398404837800448889726389499386931968888315714606422821606620206624007375023970258598996890835565845414878255024504939525273981730953277270052377643405571275110143287229222192023368275144895290543230050397913635426723568558077705373389166402928561946540779466864086411325225966579027794751711958816751946068598046018271101686690133596768205574073834711301375798674695908380636570672088549016093949776432406785328906176559165894965240805744245245359074859353060678755535682512663872350757743459049142237217056364632835674181596969693858881390898675573685162649351490105957480877497128869073646322139049754482327769437195356051761478219860984348396321238379806952975743855963824572817973306565284712592382630448750224711619160844815662846039095180459840723850851773428971489009606482021764969702463792953033435849449648981542598096518398036662740746465770996187914691625312051573136889146728341925570196332642634013386671566582858349931030367471116118637188288114368767546132491578185363555378943496133247063541726857895021775159788771761444655815038700156652283531585019093843110360521282467375698574602760790804853588604973001881199880847048245786999130860735778039681658460244730934350606260651478494775102025820581767791096766455891944631569656109650709855533884443420611798886210095863514425620679621779204951395281439670066034630807054282544083267287193281001147708199580855397726498787115441085017757620421739557041632072529759468143627023416735929900437761906902832708506651898928547990788479239819876139665033192230067981678084253418053956556023893810812707936720626239977637659195540765515221036681847008794604405036670838208915510731995590933575396194185934273641427203793854317934779546484809515400246315011380427907509804703278472137580261931422822257616648415866733117597231097486944857367542913120958469944080729132048955936750232209811419200944044602641119272558191672016824393438084382320181383032854963060450378398528139477890882928867747016884937971068538272268323054354471990305762255918209879034462722351051334701769633091721303517383974919245698108782280762879767181976545091283593090135165623533802936350966073886989668779458704802338389712566349928754852544364290189842707728418718611315529932306979399353582445190528872103098092929016053908283098938521828916783028233231923683830724922722388670791317229889915643640810381685003748896509228377594098393685854766558215782692962333873287114933187719605821606059714599146220403202553571920554519450984517432527632389353399665150861203858846513071626552235443124853508043774801136771552570831931400639408578796972085929354431148830613634867018688165278586662027448056014605898199571795763819371831091133566887307991922005444842433475331802444413504704319063651730643400352754340441649249795434130268057209624397013071848021740999870282682973094036918425645554515661450051730247359911505733598228824357319218256063577819999472699399954123510010923471923902927703047012705416711322697965047926754626395609451936864064731508162348281930577777283630899996199206538231684711486846660320776294938777366534675002702609564273521440689008988919872932029601666834092302244244136678134263959663550871145026624184284680162370706484092629544919864883984594590114804084142802862077188802895240308196723998513649246455497772057575186818114934624452376757318047849385217737566725541067488979590641910409489672818994198766791184952673967985264348797887455484147216655809776531371685384740422411338864443775461073509976903704966609647087121070349837876263057928710605600237920663632000175730300713461008057204441748242153968970927568605827658918898864577443477775625616966662414418237657975376330309129092290363581386358563517302571150834068173353736869812358096049480082131423436126868817911945761828317929885196014029717227016851247845104445640483632274409107820526437647541175916834910971451755928706654027165089586506096179753820107885677825418460124062653266340650751461594475026944880799656076154494687316545868330871760695383829209130740230870057366235774939649369023046197499375655190858123488966251203974127414345806605379894939224365448548541212289134120430205942362803847053082465905208995391658906680924488854058829302664817893834236103401666757561230744274711423250952146151742276733953672364342156903705602935183604266412208981550696818582954025203389045463285531040008912242171304233199803022211408417788479683125041954437886260891942412975494815028407321551060339899882639061263950946314184270836139673152556654351819721517658872413442597950782860688127897836759420135391485843254304038440902723358239805937550446100611760270241010491121461533941648906676703884803442930031866268864037381803173661839276127706654046536426185644495298879759495825894712184369057061497276512355041099206255465550483396959877373562333129453975900509889315433689874302220010230983272484152215099549666321184984016726471893693718494694614571183867745180120588603376809155856741904169915820593410510915433961164462938148106840328212605659535709128514261323850292365742741536840965906014974632891406610659609709449755028600757342831578919492289056939136760614762045579518671317351742835264283882999466403999370844727961979769894454480718143267497053727633444012885825900726139478816494873637312855530307153165813387865942939708372038091525332261167641332917321475109748861041939379758680306440968231074897192564109866862538317524941106463138024956767629022868983115674891167425008099816226545385635428525210118566939462564398943238124488678260772395737556462230292745360941681792150797256190812922135801660590992489147688400056947476892721934390833121663429649498125064127519919899634772049144556149801843020354149527876288386320291955154053343008378487218528339966458812113461434062443003600181947064424853710783663407574008007300471684952159870889750201396492324624705505311623862269228062305899972859190220050805661775659885189611943940317234346233074680685831110976580664813951652257256492837952356805868528555222552215044739904861061338134988009378896046747102671850943645045227870991410671843102289674698728681016911451126778063113521083769567536197753241222130204583102655475860001936619033966775135422050402879265835012180473261780039416859149387065011754933736251787828296978280548463341942979318295131492711526043790652240211055785547578400586546737776361568717104117333674601731157262412246312871988808772596082799877808464138599364158238405108087808046046450468308414378223942688626073938344629452303035978639541064063404903285843997313124160895905365434213788097452137962706798814425145662770566060813263356310307066165997512260012257883080316330487168099032317674291557011031003922544367049290237303205045267037807812218134101345593859912205611763737657206146963401756587964274741433834965490685916680343377893998322951593625306023566694606026457646936449597026322506691763983795470027574489580817397893225395808989173203170234322274752035843690518097533644889248579794033055227579944600507549049772117943425579740723877454553200518111742540383301136905709290646751033397658785126378369742514878032461493538483422517388649139979949842761637567752824543145206350674541141702542745395531481810044824438284043021206457011285189203519373417594319385129057697259214646729195747414963321640678895922841595669080812668566185685856722921989486548797479647602128987037160443600156644761152701338923150565940081043610880619067377938005679661526547065612320342570134493889880450227496190649809338256813255466805610631905828634731485338877585296614194442512962878239893554773799080875374914328902026223046262140311059179523649427079500212283482497159529767601318875359735525689733175092178926397855052547112552771219656168321368873229485596691929132337815915395513723791680792013489815241150471048118834565408914871940647979762400360972407631308693440729292235451778993199697571249251823376750659596442607558015338384824383793232242482812038035609907215899424539675276951385799198928811196953849425472605895537974622528688190015157389513509452183989256527693461593784812903023382767541053492703888744742419218541681716455193158376997145680625807815593036763968806377667473068626583134004226748923988734357402487354170647669681156865157443742497620030174170225504911546234404798792717376475642159029029292487657258942457376077901220990920921804727567217006345462321907808642772807743211492214743222671604048986532539932781849438773730540392502285862020795557357141693313290618653933875667134422638390107147168288552582409421319634987123933014164509028345341539955844245591537251538138249480355060177045732726132618062522150714227182604308025028461532169643561749746818552852707613787477621306025520966839414866531708090442398435025120474817080941826438113662874665589062399496288881439239967140395687256754102481115422820192019695616232023585178758636106663375240823155687977781029312478587604948985240974233077972956609867087287152131865576361827561420222686782767863306087949571591468950234032153397334529421040698268029839002749311652133723586270205179192925724171934593605082478314896109458352876991179317204068468097521188844631182101828830115950999145342966337553630937468335665050054205699472151757324814325300377189174137485254939370848755288362345695151205788766523938190769137518106956717607673217386467540581942664843895272062822397042110662003131509306565251869132073916285375843585989374891689709693366315889609462648128108502216756175049100130488015455741570302597287348273333794177590292419536030742878535681319696946510549042168404751423993290914970347463785166033489939829408089730201694501370183425230570439225487235873678217488927129220766359900118189127633119861192180526710676887826706193753987234773288734396378843457362884321564309674100347174966355355509706374143604933199773995591287404339613997035178056655336545826909338259864048511024329642039383647949644302661525025821033726116232878329820679046608047939190577386820297889535701249537791622076599028318934035067120869078989532733648009488365636280142253594346640049210415371782008681655816501091439502330791387032610802264151664547954141057139154033166092865084422148494767220429241390663077858386442116184316620625017693618092981932986258107025260842608893549003441924078657575756115790349344501439738992092095117537686568832807918884256334244304958694739125083766715168103504105053874733017971494010373278482792064828864756361482614135750821290607652676665650671287673458401249571529489596920781771297706693633755852352282973945818135393844162087045113519271592656455270239481971491245612954791616865650357763045488876080887065244115378374596322972890564446847252467744905514072048340153081077208562864109506596897050418784929451289147356265609396285983762441438321730997425718223597731510582420570310068749441812170743748069282915774103771563147114901735295511463400233158524940099054362777439504401008266651743409543969170030371409232545639713931557833510275069994671653223877152338522145657602061649055705178052793956653419883819285793868235788332553006329075689529786231746077715701452483134826383381974561777580111441072020500824582497497480347859742180956694655604949927958768896572071299817470776456337804582785560127651116776488828106586664281488309992611030754017263451718551076880158907457130463453859418258326856992101134265584534428790947690681249267312201697847401413725832298909430482429175890368801433179970410342558154810371139816177961253052885431762413814158606959896938333194268785456046407624483280834548414469535769598489988760128844842684455697525699372691557911158352851468698250117856750631434536652662291197338401215217531402908481390336834066386588335992761782624273929329155267708913459173631216619870847949976123624824297547453937519501420857662568705417538899943639500815981175867392279818633377447002520795581158745975440710203144628819293467734201832780109281619022152873452622319116955001505968999959567530069620359334525431657906226181770096333880056007881196160129781271790535683936511419227030511891014055653996556980086968413744677411496649000936762863363688556819788356740365449922980938535930313976789747457917764554570451979795109556570173005381344301078861181618680314026895879637829208072194378125821036874665267660010439263613332758012248464103875029860307110656897153251470304838442230534009912294963911091352110387626284601581381785619607041943719727175274445644923991076275875107991935273006352588315721416473689487670622334537700031643864684317548707278723711266466272934734957307578274208458547264094763157266672148572566523476623124889285169921009054684572057922257085649706504115058535663578487394093372628307955972547175765729508420770161386149001415789874822008894458430262571216046887490749505823486427402321345453675124983702136582766161474374294834065037038278633639555126921878833532158375400342448387737185526668480937223340758736349988924039862062635629222975816740593075203938050608887837199775665415643872842489135577914162412382825978520043090857652984614199814638763460229397394198170063244116624410454554358804870200652934944724469771760951369418665975064018033237827759026866850287083313173135053373188678024798488234483443496381430028489455232697091525624625880198373151914021961580302808514569701964193628615169717434894491104735019506356338868556061486872463931655742043304175408681743712504304234868568540043489746478305067603152624384088619161284654584496125619435983871819964590044987114365850562052518802457439465638273588260343134104396082305906061795777451947951033938248569998540224035378831745013664117215499366863480166028893704143753781684793111338047186581223393891795505761469981902532033318796555578009097128522697320910345101305031491495787881880267096644100963951105948518770740826731414158935471990738772896045853304073495076567689983409082091671996891281632663335337228252829086802948582120354290202328897057158053095855839785184319185346636984959989115373121092833550881784749972722298179277711190356096569944423514936493670754114327905297887970869059948920908348374571427662199733016110814799161942280186203202394185270672614055847213261000154406382145846303243396309093100239011339268093600716677207175359683343963498086908992686430319700188624767735920420880584323490592309594061097539150655310874716866913863618503183899018328951241562702877062357134959856224566129039285551879765817740073217189783449649099874169264126811945500333457032812664170516811095926155576302296088024360237298792402608877972502919541590068467837839684776411955921542100318545484197945150103069965323946721631565877138214525370138299202449570760076366596223606477194484201032318514234862938408740139799239870313800672644952413727313164578355025743480748197124013695180964552318694630577137380661141776270295412707502607601586311942981034654501921352940840867976942749684959176235082857625051410481001415061283617987938963949156977567102056898140571272545436695938492975682846027219781707152146543281008427675437668184927480372575426861079346231805087372800889411682693350883280702838849720959049791364187480060658195106387230102727877738549631646200871605091586672962925520249916423063274458017610572964477050237295279780851461413420992079480713492098734004426762853416089312024196049277913636484535164769108114755588241045072760906067747597126686120686410017589160541319895792721037901827677624970125401445694017889684588305401133696615470989971351770202511631488207920127274498017918042094634004663341357916037554839677485179523022640148442795179338948132823825385752575164775380960748596243943545038159242133115065819369914735544463247078290761458986882225581081437594711392629809476820617993286382237037822120402246376245605209184451069225220205110797359910904290982816850181878942466399922608899652506698953047707157974227648950318574903680478523275272086872609258007122392917802516875835515938432656906309809670296740975540987633818954921651854496093308713639792919055762546870475810089580029027457036655262406251213698295557480827939957787399899569201943306872249472454920255584021374162638648001940491940677527283034890635205735740786129336791343440966973145544879245676516654788518131656514869858694945791572713793548826795508619357513981822888935347242083157649802437114380627756561532578196920585970949718812487368569508864249492685284141394070214965391312595867619071395198659531726566240867237070278195272867400647218497647892615019540647208566416441065456372644600436969199717578355098276844380193980890617400878890276495936301430784208355096469922444598913900807674173462161086647698567155868805337645016492818086927921958499823371215933986501906430512032281995386793863139711535223493149886726807634360651474375904659262190555979872819988247379772519611399477936911962003650230960514185762320778886559108366741607686674358379228746728638913679043351344675572948736756746132379136610630807823450050771497615637930361432720473367355370101382747449009136249537654774189039071502257689035604634540070219547305571073563469453821039687224101339473941228294005608478693194891433572869615335240556502876485151327126104206358462541892381487024149852882293553636199134326915171833402349784534319655711637194931023861149004419866590711832596569554890878308977668712402773611147060505917779024647513715406176335226064466011480064789308900367962532736639127361899210071515903592298740747933491806320563016685597634040631344055558897429927137354428337250910299259032246006610461850881513593111553246708833626457636805476230652175344402297956442981997699862118448345989710702100068391866025554060223806666215504660389604957117304281855311591060117806760386839308125188652918337011067861630315356058578899100847303024329377102025941906808724071193030559072887345187854485730720316883460045712395301185499549004468636456815535775904700692923607122693753987087993661722014393435423130079857366797898216459591993984048722991526365296311771849862639893058985760109790275376186615720566211136984632675714089394072034100420514612939611275605371716883732358239545954690895599121389375088677574020169430721224481110119517643300007147683003675206431622418708581893082795688742361912245259025334658303696846440063286379911671357974220675799185456058346321924813882736097755335698957869917189786674021730546652346831679640213230683189073276519182469104170978928930602066260107057765064022537988940066866248632205519701233676432321287149216775654237379122957814050659141961222929850771454905700494415667271484498533571808395650616458440566103708847265703179497801946572758040148191768253155123833194863266885753411183525167426234691324566866024521025342124083925335078775506344210035662119882438904111259815224230870154624842899209682273233245767846063683675437943004524023942703671815116569011134065497470699906975350392146936959827319241166579207932671076287013972397761723980412450245590351040292433681521945762811340050848072452990186781641240063609689931522124760871202960630655874095003722858781039629005649365643597286618820106021557446269228098419784954024852423284245634375095347036706228426714881092581004132855203633790726428932791660547003874021906244633570278373578577055995052646433476598236260957246979028069734358573083033979649686220787529442550952216591273560854664699843650861604190032324918645870451052543390690153225055998042348404096698955389391886291881374371488447171575198576355655682417358257589433968286380420704188100440968484563035874238209675305009051411036470530711344522959481920039448684074117047792283123884586122644098875723137851823332767938032371020263253042282622146518452755723525772082303476579402324009780349713499875386814002383042704245757513808844130932683383362730684021661644761155505932699784177079370027412816388873530642428482133908862057267770022048232414945665139887742008977077394833874696475164275225712223800959776638728167114806773753259237067916630887522464697257307272933147469219951476981492057186151567409555661760568253315237835875095145074871392800167005957090589282749287255343788910523617029705323802798174150714436119354885935539691996102541178845933227375925867095532398371343006333847544541639534212231205185261208853266186907261939981363677832391302295320254403239125088401205087842758912789138957984481236543317249109812911896888195487055682648176923643733931279735400178437044445627995619229139967888801089268835553424940511135180928070031392241216127211706520948476224351717326346846942887372023796411696477535662723286542133498256615331093043666060870766982053344561352559039871350314291424078173375666886217813272178124183202497994688860192580382294652816441747363975321788125802415304638448281025858195743830193640433920851309785205438578725585453128428985162312762833365822328413907314419288156053123065205389081134014004211268243503597656482152834867717286278372024407406418993726495901447050796163908373649017540727924092603622426107407911992130179495463751358056297051695003955127534463501215965711512795349489849509250879253058970125847815616663326740342436358417985291104158507785357755636337580745219914941680889393820685471452215508585511986372476309463116750842417095452410832891728713412036053190507111980274637411680696941368612603511604474584919028070138065995783489670217823416499284660586607449176963468440443884573188279747723803022415638306876781267559699235216988706292857322330211254286400717406733780359970645652177463601444193475809866076775315094397909452125165496475848264893827472391027206448397911986847008689295236419651950401640380037591927147739961302989280050509627752166976150282280938323977958768650541188141732881874139444393876830123115817345402586995752896179166472187415085494917300430006094805170245928623049691977258127393421237849672292805351307443669491450638658660394590835923138976520285263852090637770172188388759780131795299713012556804295539275891249721384252097277895624950361814882432319021660465042755402099705545452024970593594951896853111442689732770847432573465577132798423750833846755135629053524352395887430547922944527337507071745659122298898821453421401821326661301163377823218985852409822963505022356541163036223026529812572262730451183368368044315866448192818439519147345074829756823799455822384047142208920017775949334148093619830246008012482284680952007969010681168657025364281472950392867011908114131503624186733002544737966831449493021285547068435897260401566666025668462393977125363651052898634397530153849738578106709799954990846633587833576843191096814599372017478175613104286775447754637370228700448007903200261870611204706135881554635435910616533293354021835208498632455668743594689610685249858810759528908254972337139015679538517670749031894323649856698103985925475741779393844472827897795152586102399023065995324644725249707408070275021250372640168252950631466023282780015837855688546201930293559342869848103783500289426580579127588981369957857600262068860112034874103137918713191426374245676114516974512065674472578974768549849901572537032966168228556381587406634814413124077692521599427672599616138264687391265595542706694400515380030310914610858561110787725029920608277198169835808698238159456278802823517332848519919625762046515481964599471634292759597919984747496140704086050127303662831360360031043494970895585384463369163937387430669270505418477355451402721708311744471421490957109294099505605235874583003554430692373565718556577516236523301293837428887344342583589053051632618795281040071018468320322118689970597341701174982081340576399730512048446179274015598078217599604044367677870352618257472406491927686156709401220161074777133292870978282432432600108630138122828483914218614756346764926670605673209656805533772771883489494089409887537104825524691067079372675487341552860185343690869071754802098263355048196224274215323504053746994147537000036886171343415444971418457293388867467008181341803324212625680520095721015006467943617430603271006775788920670005475509525549353248197343299763285499933668469233097723668835839205562845644587622853549200084328307274775380397455996179723601606898476167913448660512858056141737060814201989950769786598593130403671085195804587226957059603905179707866516662985091394033201171768790112112994788031693373491374847960588924794694615000328728387475786811039113939213707625170019850545482333079607274301430083967196403059276563339036920331399547680419330949479920226617100511552882961916109147824396842934082871070033132346770626438990833567810754398040183310282478322122023357294592016702113114434748445266547523006178694611136887550452796705702545932403160947687641911748881760193737248548008992320827442958209467254683689202015981371743699336342169031384806174364693987382132495577697881232171061689124687260336797224119656925983751250340127148706007999727823892936635973033138017058286387255922609473769291610586595605238179594653258657856511869810833813194492952697355514040820986830097257662426915271414461099755781826434764478555817460558078847341618128834388239027170363953900630648328265902793248813726920499594198926983471164554910250814173483953897754480199412856080624190781531076314170280839908588972044740492799154938405713844863684963674849482707086804633872448052685609029593869839787379796831111017318371848498745059588785370980240636730166470431831475665088864967238936526302907608508421230676334695495040097082741775717536727060201655673121916064925030219150482911856493502603271055964278745638707833964948400322762395447125857688170404801631984054875136494530798142973071524463016816666601954834184895259911576614554791309336418517433585517417517720537107747289652193247635097983706772041367771047811909502123562821911129521253205883830817297381563572985296451284561549755304603028336209782093975512386812815737519979535513484884184874298611069725567542223411208219685531458029213905905115669711292489059842756434187431353909851734956954144105015518150001675204366083362277947250746573703057338029431282815328223877423764030750155961001903666871360437867356150324379484657443433035517627865965006713338954385342501522922834523814477484334857116568616823757713339073880920259479194461676881188872910532197678993384093562451483642201132420234517835702392587530761460053382895831089615807533160919361676278461032015626920329510273071588603449967043885671533289507914368458164269283037224243471657017912102885547927985939505210373626074653715045538495742735787448953069406743804062623442573242883922474988207099022366563545030504127493211685163269702857609414819664955902356812495852322149336998872609057379210752653830297520845140783132813920743987739336686778730568128809710352639321348136112620785096973271224132438661004203758888430319456938754536675563092804686130350797522147242373480854928042115233610735380507631858706413782055063763212401607643660113531530579197208945778179875196217584899230935482247606252533238086690441452223184417050993213924353630137013366029863757234849716564518673274736749904418434691550060781880449522572955624215897467744404918062219940999398530868068898597970404160067256032342322356511737335749208552770840445994913828849089987761275893419206173260766291199770636585623908104609651649803367011888076802943998229149350163250074177617239339234730264424722433442827179495157558839760940798816171944117831214297192694368433287555615325227945172750996528213159058327421156738583873025652732162882823376199937399659195713804779238467078516519799428353027213508835675767413120304042979782976938934736787102981533912712116778206898547916450395067357669709431758435319586128845815338639729216651174994137736090780251657808266210405443860238851802474114219315228974066235669375878712750076623704482950906704093156692888234440328025085372100255582261560985075724598721515308612404530213563148817783399424954397285433096992671758428537700536260960756128271664759982312643905876478971273308209713995537610242701875826335238698449452543383565280831368483507351246243326814225856718067779584476863126893798760904512511923859262092137476163145275114250431893891691539173423637079419259457201782134989385525403873092751382624816890255813753556194237596479238867151791659404411086879967038848297950671403411536004897506303728054832169524201942632725688427585625434930495323671135403662602466301970468884845760432086834872956656487478951585475804776615679818671730290890282622317575439523997979819933924342967967435638072322817830857783732363980368095126926557360054284552966547020677025182612318721864107739530647008583284641500268974584331051608950665316658208956123087761034267339252509360906367160269291062282259295541604005740751043065922794166117618938028551341969039663605396890315767617860262226899481813450264004985322173551154870435678775537743298006090257654574373821265405148378744255604138198469450699514512476888842540976205363640420462222908066968161863146313637064367708634138887839209295788908610409139268290534951804218907998211940912215303335267225019562959280255790348830875757282714381398343820494715929485334689064214196475570276475792030758029295777058134885629351164476382745088511813052613940987231522555466055978842641362006113159294176365210741562494289154273688358800087371208248180947364809067632722174220414853583334745325679649258313144392336673609816869121194226857967660497224597604731635080783602816041917133345285737481462421559056275368933071290825730238534708409866309686474358516537223580705042595815454887969745230400086863940378431766685072808965478858676172318573846227137205661857388163016389504860793683411373005928658868512399206058695520696239930127899945028544088479420927339842034565278115167740868414340019110205957208433098848646650126123598716788448300638741023044192962939246302757267833945153062661213007539543437307660297927843095820949230157099164510614966537726464693696317341563021521507138306296943076021816987533997458866447700611689231397129699378505403395270102892188075929673774727230147785944461902625570698542094522690075894270778026529656764244258764203412866055249574628906427810081028046629943706227733967288374430148071094475275874208257175525027686956022309273892126085306527944995693492891336091478383967805257555038126801980192690722209969400217567843937674794934420231244351870701238484276907176594812076717604493856132133129381771180830666651923185693589512353644321522802616733325250097457632122850919378658117672303234916901144799374741057555754985191188002674950352022702192551048926590350981158870947924660183622245463179490217965020703549753576586014432006834650716964669151816367173804361669646701916432866215625796923804995797573121563170189027731487289017030531297152688874795734961986400232285551978279993860109372866119778372000688164768583018100637860858208346098625114486803980880664836324720640000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
36000! 924530611051434383512703644031865848179765721372802356993070623677141856076615153178210763484459995284713020365296675659304152465600722177055252910621243848317962302878096419805059884145580454151110360462759720348938758853791124462534846079778274230354126277446911908994178229617050558927804746490480201116579257901211314159124101656629223076326557727742631930003833743013938141266616473431558137506323925515299355042452018417860302060005538722490371422289714893323422504664904745582825664837644228475840684971990909083134821219715297130525155520523313147338388926989157501995615755102951737532066127221079297743736095537643718520231102926413766176000905626981144792007293982717026527311924657735196901603426269961085810221098618376652666837464507032910661835976920766748480261847241325201069242876421122790652789239177843747799596704134364119315303912495134989574786400403835171923497980581340620576695059704399934751877885324204899437674653995535998394062050769358852621419796467584217969675477776420250291414698500072409208099781508333481958044534737157133937151759133056244866861180708345566578670034876133180269125997786818310399415437496857275226919844040856252910135059721002001067805118918901873674277773442921462791075406685511186113560307192857368356406248857916584954290515616086511514277204269533766803265426817339469178804916565569116764302389000587428911935902862864288645848620323732424531512336948989044295122930514378635144076853183662305097927342984314071636142895899449390501909466195837468650870364470300974337333106319271591181024414975135596536452356853389549974429911159905957655517325818328159203910972065403135371578010244488281773473103500322786114442905676970622784239707331525282428849095945816310175407893244103226968417423822907697188107418646403490267686230967520624314261177451698916401541341080837738869346773144139860968261856479960746958099926411418352704407037656495052277900562332840519889355622128511478019358445847722565865444943895591244214580255092763517091846278904405854801567348453670030192362828360091821000280301307656003016812638272522995420678172667788545033127738315451936829460218784133376870334933800544662502117672808193459915255339533699448568125335500769021129480485043012395104842765540203001394596012154660010655259304998743190173297653155352948404100826596349381422862863723068302407150333029706906102237712197693521549576064725878495786007091405288493145586646675380499799399733335440127655379816681827631045531011354122198290995500428909296771467379325668926521449204750794541257254579928513930706868070478346623582152500006193702106153641055104524454058493903108721614731511038741067074501924365662764826756377320109440818816082259426266613132908978581727591863918848182070150145744553786865683374663155527966582180704100181936931912019679306126938468040014425851834327189947225804715561580170743421624299760028902626898924234553349992747844871851487826919752703612851321251019519236932904946597858198128032367949927216815573164194405504783770268425990865348749504979795634749569446292469069821735842924335706598597775607566081046117997761666680208484949112156999399934380286828287594563433454145620413315482742416835801381461323486131000883710281957866405682629657044935871140709042224290454414842767792486580554981680318688344456398656885112802609909723540339079004760231842616373076545232359647477187191816224820678166088857535257418256640232083331284817791186482598287934985696033810246377941211737554086859444281670114050700598490217639109385190184244226150243888271055743723515269340773150454620520783277652104677275919433914574508771255799182805288100704460213861898340517998287334115467832500503550399297666602210945897803862160350488894261875717757495846758381726514416449352190756709055845857865549534707563226370527659243894744543145339839112747678708856758970960093707625753140095297865110314840926129872217669732215604974553978692452171595365151114125789558298624349132497270461795540853577931184914365235053616510301156736652016973526916116103108080084265835105595269986614550324930328327951647596286898179445667406670896060553120239727689622492920094001927665387645899273859622248517663701681688596340376233803547132639415454191315889745937249569904505199552317152681888013931613155883996236128040761478735305637768452145845363419379092695870275076764100778623393294916672877809788251406560385814226149674322012975583683726877422011236078810567406329377354293431176879455677970957781322845591854719407324183753447211462852648386572755917804530345658136461924812463411836513855471237932201159131618620735454028421457051381743824939650862152004478088864672759526705969061155500533469861708648240246299958639611328316635920305186048737009089531696903593314805113668539715875621463874810256182833049082561848778244736054291679163468052932147727655510066151569015072281260120699277121488596906417097659253180211282930710384497684988267217802011858122686300287542146241839916341944533948922934964723157976864773081442445291895617297820977211797535154203452570379869253962976544853520155025719518484769028154974618835749063859078869033258054216397133346386766311342880634655597357710912703948375760089902093547934778536962176077978594673651285761132951621805289538847044144945432588968837978640664380212707535794189706674223314468807200346055162390645135372996905385442780615736739874824368996480729172544295972255749793097047958019457973125085811029106643540533677855155696002000770184809217975036986648564745087668297387025828640609848654533965858372585919150929502977868880812152088769580320335933857469045564497782610487028741225434996571626063066053650264126402967597601854475808760586425715259079461271312733461517738299858382895041398745241311509792115183760028019448226107977739532358916245406446402182045149787329481664474656711544457212438194471305213053151202696383603923170045405431899425945620754176204772942633265416374535415955917833383970356090845449361678252375011801155308422791615804321024876780869768599516740432690133732732496021245163752945586990499589862478017676877960567796920735205536796846601289115772010452938219255328250993943313367863803110460395269673984021095493362468818679994815503395583882010237783831618175494583216230804035079601343745478235042698581390802301329510080758876785047384439564207171131807732856542050494190052068503908908515128802550158585534132405986070826366004892394530598155001206431245783960416709874847855559445641715929883963460831161934292726068735545886793574173677482634677187494004871082778921687271883829623655511499048858058246725450101690458974015697889990339103389555895168000398891165670762340636266309135969821957874591211132645779172804940604177829154486794346424496125230502950258619894019945729444116620373779611221383673058727907746304864854398824864894636880826870711222405564351622979178596918248075392552508184118427187494898176257233680920570621410337955301261586979684251615667443344171326006863703091997618286893010153431787881062146300771129807272052659590443148289537395708625189425075266309513353993052783712383913433662277564968901645658223045264985088245096402569131386559205872799880640032638024036817413128321540877451073947911700959366283972866219999273630762902333587491819811896875029769357878264871039042406362489202440315931786715429586877081800587961478749816252398888253567403284767236295828837896556563879627652459482100347144179028790501277051325059666392064688811164481088027876981563202372500298400555383446608983121425624652327910895333127217035604967986968411088273697025637780271838719089804045098836042819303290940701318485555642021695497631459911318532153179883438401032312992063584161608917556236304124448675157952635619714255600877159421851469084765445745266956509666574867891080523822934623320279751341143567146005439733773093439067293606052507824151015560974084778287439289413050304971280940728802066818501165804970872291299307359989792198716176262579137646671201370230568700315732000188436906571697595510906346160778551063055797762520699593478321246970386363957477169115061360270569223214177702321939437029972984487929474320134012697673044346495624743457359973148781539852911266444057906302631171157220368454691003883159115964620081561434554052844077197657522638161782549108403373425822039239442842760678488272440470951458255769819586660863898255143889030459888616530922951307170406795449989044714292296717009218554028777527659081655427370346162745081871962678500112077367495694443422414974948919355193900608080385612573288611184378926206757192565485964841945561218773313094012085587192306086153242182082307843469254372123201219099241335533734779597244863450023941507258058048547400288036015460490414412698330638222966500543709320787620242964742273773593697620269341770176231308112988647754821137964162180791599597362809083390733130788579443075129259104185655754972733759831972421670882915217362216972559147506619226942832659308222102066663831281150985556399364016650001814855183538263800790429467480293830652295080863651251582529016249377210162377916035970165261749173721484587675805794504576025733690679909099770849129950316143336743502473545897386904189854704665652134740352136304813792775139360029225425024888279050497555089526225788723631550943997035778013331052392191165943244809974725466066240810078542234701536141624225206824448983319968307728273334249295974516622824067954567793458943190023737410574390182994589616398254528930105100115744120230590097690697468149545232002116474414008508515185394220828925545722833807011826854836480907661036338821743357451199008927933062943995189929546189244906778694302937548068542699474998587444691549500498883770038750611658479376966615478627846747174386913988459459122774305006845724087486677256102985105037624609158139346721097956509377338942603790210343465912385518578462597541231021487380784393012649696291777233990701740422215214613306872979011916542686283573632590650546931342812748941970215773201376313952539592737598596638583559965876535863509934131528757353134606849654422892165597837067423385302305160925441188164639797894926950272466506933253552329199965173384448274109415160029477064546644246286894738841519471988320796963388832732801845211118515457377134762132552992374936272116589326520745175377599706683059726974452514902362142119227206157396236588566853320998716297946744922545242251063440579822555044057392748381413164860092257344834482427088993254976792669608096164269666051576489242792313614951195892817320322682082458513124013992587422220234556266119685450995127424956472214796449055292626755120976820576535077963853752039976311065183755605834019025546563095328096934888969556086974650002799310995413859321716910637853689772139988091409910376561614418410694675856306500537788484184193368348027661822406330585744949093414968209789687430489427852823958288198755950928729369941680855613415322025789041032450757096297254033817871457153343201088788919964381339285741789313941477436734114946974679035104120178826388577767597007070790741480337405351692072669341041382659420884148775078595789794535418731577402447697244766930302400572069776727816579553361529835321476870211159815821605890278134641076642644985217679098092848933429295762649319931337576868059250482637547053001641011186410344977138646961850369786842373946160000393273962945969011632329937297375779732782871771732738497421738483289656790394476259216169745177237769725309867335112023162619197635879722694680908328866703305725784146886964089577754190767420550468429017851845089418526323991157179955809213848921646595331786144737142704524489242705350493128782908450849287554522419344472450448447966601002291644234083710930703654049929562081530706071858457484793948193973473773005823074153500672227893305169223086618006012501126889850233832467043660611319526943269109372455915466138723604270943484251781381807291086403932008111414618198374822485461820563207966007127922492076289419307764144157321801091739273407498300881049722983778220756627919167576055333497649974350356774515989657862442594587784591901247912540850090003549755049648001622745454186856468009674920676283854941985050857883373692113961340833914709300136185455588227763804847619182977701900385824911687779684662033295994934309110966992892158418628501060581020401266328622037657437110787056345312504238663895665450789423048003299723867377592120200326752591618583313343402101236908323619219565263641009998273225590172369516393902601334325467892708614510971426320600162108731177792044284433448547866094927229383750425855952322773268009919994987908501922952867731348331110588860488531528051059792820286632297534117841149118607870984917418923591771614614192455946269405163332314917616537100081733315302908234695123232442634751772051532269236055763116793712261874391582295530649841826917083704283551368966860314619818048575616846466292528775972356899622865263001165723770173495832296291858531862698598120597737860310973969578060697732761769424744324990247152516573813080276851667091273457399259631806879896761865954567163516925668322961736302896990325055659877083533496117463526306362378274058444114525902289758957275163638357577540790371826638636622234200649033473769835610097283412570666970889614266989571369563491901995129060647290104853853317084827652467993514741669007389836066296730444295576712259404500196607224390926698187429852912308626661802002135813100733623845100002387653739723874901023977145033802303503996404460946364035256720949697461322568784445429095620189335836446625933586619609540591986262159096647246769584467026745052649054622122543058477754517417697099602441690106455926181703647461837274189487207079724790022829249567957374694949522198054761389071891437775827564015443424969527041799757625062846769182947099560209544170503695711861570230899904021943122265793591965806582685600112032143441891636773534787764479094551021554124349149378238394955704351201170995147427335137727262795191521761660501312224225134384050109720875243420025761260824077760720449893652838102757443251547093588471175209427181350004658595186336136553004980955088497711508030958526668380893805955943909129376000330759866629132133701830585869059096311512535403830921343569052611401687850508259778551922938007720589398138295158615791291151572914294193556180209717697627170213468993360954582406904168818470727371866959769126480463346968389003816808995494333646420117249081601523791257666234394770920070682746357750854200526712527201702961360343974194256176106175821049002938082825859971709200630354695616878186688298671078505859678953725493238678369601620148884805161428990144725567345526179793979738969641152862881538421883352748698370712401026111204449332936919080703712960526529463128849507656949398393210485721885359895258167478885745240424193296938368175155752695360847326443095325755132015345554805421790439207988634171471304161333677073970635421258451458767116001245246834903552611341382102262702730408810989940427262724298549694766747692092865691253874661422409833681268987555226352992378969504982106516327048588402652950126737588783957837586159858715529759260658778955389874883916714117409226140358475743462407201700406816158624664387331108403718789214444073315699839446839925117823093274396883674653614531714206483465208000320652368126916867168603358751010084901856566365965994460241125887898808948272939281668141504139473037609683357865094310028325979412374128430941698858799200451181198358898525937424209126685593187685884279302944240593394786151595869737250231789400726990042305957457480294299151749676826805395913188863420481958367558908935928263547841330352257946274855423194892710254402692553023794712860344689566501117323577926247017810865571130621899716306988868247583199771744249867133914746493470590204397342371957950134830282782036370466662472406945010414559821472437747669202830676121378985029301198922746106646215856878751120888135987751736518998810452869326253665721323600626605066990101738125759429919532356817209582618477930794756476063787412571024322603510031030038836635296718899672303242106057636150958054794279268438779826405265001891570823121459424815492872890421423638522927585180830754856048854796363949718603271569094430585051543073169528909979977309599099084127658043995264973142714889254140418190056329263688582422633358643923061105459520147196051252454560390868604145627877458226597798164299262709553147372689350978676125473818398964068369631941137618747798752396325783931602329508954593021197706454987950445776875594861507793549252081600552747903797796760142837696627212634111277887288659671157518113476283501529298703976711879667786176780034381348047032882147736426634780377889150267191310496747001736223131461264190068988639873222487111709573615537653894590109646065112194134540896157601012076616177860973683108276912630599513122086982979341715836074163270966687036268181163284771574054579409780108538282606712661739926084554590684801461845409779472962863594128562231207488024776931845093890708716305370380560118049191771090047081720572812421625654610509813952809780558093901601852232278532884121336684059944617960756849027500943141641521027583227034855107952229264954929527750078515150534329487808814592978583574177482599213013354029625126620625305562739534526369734216609423755923796721680037830997310035585472219396076716612912792647057737666848952371502727166475420915355508889210607084300897100247963392352943395012955474093063307884290998516844125266521344854237195124495366569547953347575719569766085828633297540721589603853158306835977141044006617679165183867797120851137920972982336453597362049414823171664025221223365392268377344305445648529850567629017351042369203372209494229275193700863365735535947752898377960123173740723092173637084290280847614152673025693717287385769593988168088112783869820890374709991130839468238904668908500107801115642575705145579717961445972324516373968122326545682866574027313392715168937035610113927647068584152845206079672214641868901813120255203348779122305520345404519439926694981928172590027666985574117018304098060274724434852006010807869031538421815975813317714251501851731235553180620119391332849466989419045722513694372242531846683338726236234519095752905910155834365552552531147182496262054813168109623115579986271822930763751488712965479011110275316652325753431526176564135129176376246910062941110913995856962048324958076478078961700801981680921928239039576797208060326739658464726379897025392240655563944064844686870292073860888668207950143875770422423380895273438034697694710225284095664327259579535278337007489546842460577589586995392047676304935227377108605855938730442776328372239738223866481930794456435456676090577236157754712429927786522664904250844205729338046251981956896696771090612377791049412748911999675131686611576921255961728928137787356963403497847185517045008416417046961802000533935846977670058477038847788111418956626563467217123630581404790897578685492876347807765354884183581644437698377162378334473523668878489092332055958378596872864987699587085921639162278429880100794759272235773310878156199447741174946954031792356089027862409148269094801167234159818371454389240926410351930651206832697069039678280530979371598393912191854289094414180333712896388189967896603133659187810150392700728954626854036519626574384481168370759449100462419868914443857169032835896734932914779202133557490607997546537434647215942429651415850877167334122512242333914679522662357085289960639801419417319944522879142820259002439291288843614654853978730105891786227056057989700146488063485205249761424007637294148450956771429465270413767219124370568692204852848222479400035479124511189954773449948448515970319680850914295272741566684152320275327245349893732336563200841533590493726069780792263741316052470077736792626794393572470956036137512898741379224288554321508464796699135056644325355377270800612421402633043747640620777868329173814063208175614464763273029986528711088377769157752673237097559844260584259369649436928130240227426470477121079545635813132357014056651269539137875790836167458287947233542097072818059901103071251944531255302944350848043894767801334616989847658842482257353096602534713846379128435815854307069553490816213527679635766681587505439624122328264979266663649467767466564371712677475556935702877215845280001243734094923151426480032984835634879703109201907738290951690287297060857073560146222932313944134655158145836142976431810519235560135859550718047614156607202179432707796333489396934962864858335835017337539771035013809977150317508545322823602027378054197541205495276780682211475474757720686146778226936779344630606219755737483297441526799763242763114212813707993454558366839885401105543891840207496166192302175199464378802650942964397812447613299241460928775095899937394491789003167159625596476857463609369049407128117051243097369848798282087860421989957157713008566754082689493019454452217453331168427526511257124863062432712203936033688446527299139383440095826463662153694182172628676593912475269253741757343618740251752484323049703103467653629178089131008197457435147632996229892532121482174972090170088406203563451187347085761181992907288416519482313051435963487659456922205865597819320042298757446798875633390413450947718958797399358236301275133150967882722332722881966194962692227918480216060334837626244256273537721512732258705353175186644414689220308304010580977113157415725788333038352322221906532485537946484177677776099186819275928151975251603972038141011645247238965769021251401667269401250132211587217524098516575842753977817449984744358569099495645733712858719872624152666539470402756014870186648524939937792179729735547839467012444091225433259170637956282493032916081885106857627792083284988211387478644076611225703396957382647092297348791375628837369409904819486209067852669490836030815987132844429868817753330025079851339521817303316701618694570557591967976566098449305355534227267876282732530934178258760293800748681514855962840718387803218811277005469005177444083005584431040382438452617048742698207316872709823801019219397693077336292927012635919775563169145341557349120513461664908459432496364728070237435609805966102901085952651428293546118896663332709207119615597428366216692398519656872550222537663198632345755067590371970055410833422728332082666279729705768097046600328679826872796159746864796926872650445103400591267667949868705135964711794190229655110816835972697376110571307148576332970966572906594771787078614261027227313419652232219475334099829966382713136790122693576958834126791674068178695924876941462662631544657948880301787088536533308123080969108463173372369623365956268148498074584510467363979312377093883637204424029383682314387872091980096696362087991642020916644880226408920948191110455228950993329276894950049194048998954847878893412369039596151675146001171681983432456180968318252476780473739029540637403418466129150436126232895395265089587387088789203922217425073502744136697886347966405456586211896024095627703608776497284772338126665988294260178754559384619001081722859501120153279870355804099156995524066121122409405643639925844808392727722812679522514314556314953965369441733694487335690411122027180412583828061344654266513932233933041087896867616933425211549346780097149544476516988582249269838328323559979125800379011608386631681099959228275466211223081340642640085888047739434088738911296568575570622151787461974647184535093857191334040423858676762603648080537570746074299401970408367970402080626274739798305552671258475363764731404501262340890601486212217661401112681836122708277715817889132988964306483199658121363173953036918544694616056150809707175025605199763912052185489297602232866090230305122869798188483181773819542104827804280251928928887854833976020074291791046922190738699816159002792163631834310824154851933591291545637872591257541550913148370688692228576240800183077772579960968321380872147389570083426890988402764699327140063355704395261668420040995008858380313864056547700657812004783343883950696649857362686857844625781314278092869757492916302872849108750037128179301301972748458012387109299225480950579870210954894104816124657126176076956553785635773417022598664727097448069095380215557076126482660687410612903749189432636772087560092806336716953297950030212224923419461893398922687654783698124018179847301814727971921186381075239497858251650267910254750916940766945819786955011155385059102987640909224072104926526887364468451709008710651114269567070071327059888382167394232310502186458538536452592733072332866655766062746975574905245786101267192295435730413251128499489332639765182157321745912581877270900430886343075275010399603801978390342436863265012894596079767916742837352918147249373838226056398448812530004917223761035193734914156391244716463841535526191338883285151974372851216666063482394554241084003923056089301435646355856369772155748734215917393617635892383678877266622881079806635756030772733818428711885287591581327606869343648563812589921791822341603717770427536585511938441181669819489566580303035215396176640421081582777815232086841422055504967481681688052891660325839172779578161200191333762290879164338865719224998427926808797524198957683279076090456167256152545245334248327708373866636785958249534482468715242258847931731532444605260445359373713579774036211331210494354663319625372420871034979815442740844009161462079913465694572472879218664460598043928444498591442710249686350576807944083976599173634304296370539195187390576265704141066310368680127649665063084716708813453787865307237722724669991168914497606753629151139988492641974719953624365271008754008978290130370542054932959609955684256201186100030877378440745403345251937052376727160996728938453878858781583780048045914515040480440937267207000854589018071120257296517960418087451900357430947392001035996346768371548446587176514418903049853596771029456496184546683793311929810678007295212156303977611876661873050470162399957896130618876874164842601503262452464952255838242005863526848805871183973150718615207432735439814255002185321603428603970153161097481599518664860053934536804891810512685449713908629776064674600668108439696012524526896834703463226077158023977275490990972961733415717258586460773835343881044814348577449905172131932264315701241681266249504609445765045655239260921548542555787444207966132874691429776928738220642087484699309445515727546393158295186779715990419198640799848789057952467184275652148660668689260127743514014651177777321147682575954974338926593173443191193981512097604413605733075437985284892053068895805455714736763562135612101838444351151052224780205669589978447494793215738416800911316366014469526401442533266263061998984967785603304051670472664290300219217825001605725952118054922327359139586944404746668209415453696320308676076787848772263792386189740376936347746311594771478682359401738467495134723555338917421373627965310317273190702063509717596265355505852259635809940808709327784655938852970210184302963845268565937866960605767908635928576198612259486792340151959993109173002197228759712051044738088034179863689900796267264936251668365371983036312054748893615637253477599423215917729911641644914129286864396194165754807192205812293968951628158604813647840616624533226018314683142591666603332177797439691127633296382671041694810981961805811339009573075807995990040506927943754470500094165047920761270096752970973268757256376671607440306161912433366400003273190242796799797571179709705512337789592581490147732775945250505312345238163504956234787795697877375965967053900042440603405431282813030544456985328594197568730180513698784795248740689588846882452209518489576136232409753155418611310879409096523996899927659720491992243253037822678592148228588643907312357091855425770403499308279260442397431669738517925219321899203565039791902141153901767446150785915948625031977308631497856119625245782325068347448108900958547412019778889847881903633392186805247600172306042486591002867072362724319210629636420042981468549061314471717845059674622160854404054086303129807851011769183775412394228016850325778319363676080201791773677352175734101315178548790065883845738024026199809738881966503975256224252439941128297621872990323324216543066994214939559424226635634501671178253584706571886465013493719135764430149825313167827245084677025030969301677698234145246818052379005246811283947225301316515478850762257012794686914251538791066727692541611040782220496344598605552322085681120891947067783334686410457599600393523112116463345635740381152168879612032658406184482250003974058338078140420119038151862001605328022777334755056787805204336769607907099682974700611386137106964962569125061084598404734383323137547931858436889858573004613716053114985848306152549107621862864733035902038319927370198876812031896590743391516783676756949972879683636172128080297147453094403897392434274757372522181436385588843276206957770873334937540435444577997152493993073759135886884834703530575089872990995170918095836620981012127909047412098526304698448035747648933879594299180981331751481806717386342301676509727673869952572041313001966728719909725917622306969878248494954581724605021745731374654244396129623831205674617937594434610875154950948169424555631318513552153927293795236538659422822591937485094077244902460772252759846911098020387600613652170953626902801060623560943223049319713237635542224841783298375940161104378462172165478401110243940436119421033874064459996243360062316889378882459614589065415755984261522055732982146034644541743251338466402646080599902594792721462338698560176370569735260970985147824978789355460341353508798018815046829067154304230492925634538558613620707644064810511616020980239439899671834118251248134718765895443358069618645077630351620293703012429895645523126334383809243358779018070987889485907497072859951486465873967157341494112884216621014729791076471577177702086315100070872706178273855277428342899019763920605637436291809677578740196924937348884346767251749052684803285270592952122346109600027913886818944241415528845972054924358141114889064683767994626118532381678945196049015694453132905017004082805324806574969382672591577946123371337587789553473698079451782168136075397276758375548806058607984469872792255749413100073811987919062891383208605656372670503934486459700919458822757949811027801085385092337666602354165879574668952170233376931302572217281737147634064369498949706477213555047967784513195662195190839807455487626175677241265968450212323871451389799425702329583615328183763784569586559431734765760182229833547691642916629599288767401204887549011685965214258528124019506963073848190083857242378180230991597424183163263633705801032049245565466659045415029067506442743822060179060824132369606680381113077510618703865957672388427309249403047697245109283871720280052614189319859594996937929912837443315673956780054840266497537931436261816747915116344402234028206691022493136513673803586292971960079405298746466692058221357256962402892192086897193140406606964095553407711939404672179007730281504060158976347173537025109355282420544063784212785286361143015076045706563759953341549553584535442891114755133352582128674028813152225562343680610014005063228803098006050247448325220477627965020628598140874509703678559507126448650101392013058763053794636960221763464350755457803562037261385587501564621365160998948868934737184772213227491357433726390146201360108308392757452096182772927947365869639651311621058375094780175468676346542989951638846865303698594518431222699699195516136728342950509422995283327663410301233145994169614452746103862344287052553441100162741387143611709555670485666473517622463643702471904117257611532369597098451256262437989383819482484027062380455462342516359023440409168746844434625704291018567091183476398004925861967257955033226526036155845441558191729267128910051895483898537602393398965314491689725744062737782233883880034366371333751274461945649007923041796604804810649012387215671083098560975060835225200735114395897251608625264949226756112993248186845440772133660238004349816926085617214160018216419974794879974009521723541610506386055078004014653966567827779765164926072697195565586616835072650017547494292204836322423642271204944157420843238453584081468769312583630032478807180444984588072011234655245561636574853469523029671426603342497941829775158661708024442545081440538198757947386654209492770810640949328635502415135457698578480381585570863856111689087485924961026384383292870876283539142547526393042912975039850584747127082171099944452051020048400769324381747341417093282682122387907312804340535709687363065262397369865664078699328793926942601244309259324346512183975694629427570009228386812522484135204165720635690949096314861139259584763655473209758501841225191173658509419111889598574160995194036090050084532467945447246401323064371566354646959679519005546162404663994661053561232147809709444589851360444083242543594365443093286242467326789286199485577973387683485811721396044818050711792295907678095850924383652386947854466280434107378187564031439932087032286173445385762516311533357525298337549902431332795844093456471318978665947151778065629465011203711652879109531762519938573017651253616913089960563892934332826643490668892144827589935950854748570732777697478443485409807641296002135010723898721902355190188080972778615423384329018809787188872225849258276270230174054723919090063540058053721000862249153718984481266830933134306768468146812891282619058768454145443401646738118184417813814480089385234642673514703085228940933061347250990585750387404921588253943677802246945743566020887140664600323679961885658419749252917324628940729950133116230260455761378596949146736459755365819422412024103042128029214713527720613640220310477634357520871110691379709061462721028324044777532258831964395654299376132162784775548337809551912592878170456191494337420978325134850557923588122088204725141060431361847899520472321121928107004790808845862191023512561290428447733330150100588891446389444048837290048776755876608488482676508496911275023028269454999987461084364414131129193762523933507272315645229495546950310521004258384628430220233604470103767546730696943907337254142733289634313275213587521153535768405393699208148207855512005658665928538770248243300663155220207719503810085987647523366001020680535019565639406163709339622641441022389103569558979523083512168671997503021344631140856525568530317376492819346453155001494126927527341520085643176144083326796623424799041508064918403248765570432230795752875398073624007357758601258557884232719126462387173255467177464105221962670104954644554823570873899834256838734971186438688513262905778525766162264434744766309424702824312777270349523852543630339898843830326436502468512581566365601761208825927306197759176613655385989136765556654900200932845083959609785529190195322224754327827186122404279526660600854786530518429963932930230432304082305387758830315993956831141818349976080471691320181062217443667436229862312430884593428206833445349252891407897035338124381696936618217345769617759834201762854083634038956184911287224371283762824369160200455997886504186319476025916326489635307753151833475765033215921180052309743951204811250404077961234176961843943872521595800894005808428166972130891709548029109121984930167076115343385443516417582033643535058946064567553779621298203734181474573193826009886071408602013372228608277431775026983252847017766792539097798831371705862301001818919529749037634121003893454812497421629582636986807045178411883551667686109505774039342883021294140073592103309220389903767666300745944765225065398636618861974159940613178689738505255608534904914327148120852681492184684108614397989769585734784791139380563426309482433215640475801831759214706019098643937629595781718045432865101705416984191645074687931976322906681986367905483224054406242599459615396813535409122149414473025038192929020246939524919736407612763720678289592306019877363001640934321504392472749028768331515402992986393854841926696634368641603567920558827303653685136716958789043382454309462124335053040050323341804410518307628111288586179310443753462299250368195449692841623848538915126325684808993094244872388340454878930166777715528213969300198783184151028422939573299891281325600999081900020432819094842588799943585235002016898821565717494236270748823005611275229078326749026317549644512646296677525171539867917096448360463342694252082709347438317697242543662720771762541778910294956104017128410789690631240294842110836705860453818878936363314965555773922297413732021730433564341710060964172636794158525930299479175198197010761312266054455608198525697235670030330404277408608134030569312035420611033183577481115411480313549709900830329936901679559297954626241745139197519037042985210900201877234289330494855672424916878179051050271667415992761078003451072485142240964696178282487862955285305201586839333472158386913022932716710376691863355567787614523001748850346151918464623636495374621369510435589294677823343454523661937936714592088553140343501913632369287309079894080211223263448951217622297690154582019647282992850058638099858856256681810122470895094532922411518485645736883619630030261048984295576508440045238936814657769134217245863445311292750402776770126787528707597332145030180580536223171142653124960898035306929208550087268504743793925008302583210696173156818429883834901694051646441806159802290205015608070980756387502443336019676464958211729814813954589748409918162284707076131933421591298130071162430919235728323551190000669432781164223544429546068560663748267105516298296538090489689752166947542242436651580476223599728073530824499952126204882630862628653958945969855556350612026421114254934445713178033707017063369957298593967359807074831897392797528222015945356103014144116347910872375693061775103531527336810355659116408731275003179830356833445329156952950915781465231840641406915971048172699513333834623075717131996794178568562627823942003717722965062210157710843505670265556438319242075219183858956817384966069120917685190774758701668763425259315202547098750875922813585414519429405960099216767108608521907793114902498062204993185412698213948677790276654140629803506148206945242470620353352305683918663739035485028586093687473897414737344247039916184347278969079354373861276016622271599677154547432979955617492043724060440711320936377052255588668565595693618532510948287189237827880313710446768591335269082692463777612765180911219455167478051057163601881930442676308899396534380563751562317477272148535704836059206000795830377915689669718749544552109152920730958873905530016652495518423611490423224260689852803168396591020490773563246359743785473639392030493840655242044384975490997001972167397261543613103160532118456979303575769989064332619991327163018715992552142440610371400474820961417232129737261516218126762041363091685675381588399367892296050067314389808369712501430553862044059973952207935350100903558178704125413476673243052606707505851412377549275581843156910393626769923077970718642299320675088508679666563128675722330242057651340121391046882734965128962268963276848976036824782571348271383221667924228904384049683876007042291188366206391699884155716342150296623733289916955076950491943325379479513997675950912130732823947489577424439485368996574866102785594990181795352595868209130170068239872520297771269817459905741899371231618479050098358659862062500961709558534682700473401633129018194753519274981377629011451190284627411407676753713500976228950957410011415481452222571742558930725642263976385216111361851390998991178540156491334828788329650266435041943836849023903751580549121293249786309403227376012779727060363967677690955700310356581841247218528650731077190154618227821814458514798897602472021149094558704589598009791897658152941710629378420649439339493246891547028535265587553089201713136798814742897913848182035785461991865875616064833050709024775152133672644196510062041364703820462072874534617349978548135019190244324832549274107378429298725757013293777789756270834051548870814483643398722866855858253282668738573661589738274593756567099826568754879012997918896992116520168624740302702546128610900485347034663769871551955861230117651352387149813557778994343621229022359870011625383648198538745201023672030293319458400994610161427226347727857448807207935423207470463113665756683599501552855105635285993291861123577598337496376710070640693169645396183923151565972824364432220490123669371601020799146905376771664754572246813915973014729347121791526914639503838572152736968512387529236827323679062731814996555149279088780055955868549521244430041447706226026926709690857127092412914961559667676394307924838014405038009038651872742928279380634853091766902325283410416026511008073676325045987519785062363827926842973937955560897864419104147358749988869581271581681844327062807374317265603342620403746012483785786714904969503897332904882308166146890765614950726767541498040034422352977589160893077447550271024195134310869260394079203074654312446437736868580971020435068064198611844951502212117722565244210661646627063085445170881136061783216539263789381864327669526724150934091926561582741704944943563329193526747197206847525585990872124487106366960465147912100425848341417530707236478577834028167622515101083920338108554156898691482400306063681109022930249185992031646107861263989011575432049728048557083455859470207229737852619420416992108859179749421488645686650214717446289978625839068909422847809873246665109807368171292221688978807131925064001098096826587912195509903554989903201082667607026082193647865264626275288857911700936626285289787096115982562037621491087822078055139996090689918975685627234581946520719347449067674895185008641024554545619669877570938607659592091953122387919291118960819746473921768879083685931161251181396944394118389862742595232969335448434339902393754392197443182054760257918348660226870745782354386651237882962309161166739966089491997185900646386600083930514451396281365028391676137415501473976782242933983646879790005349160781749298915437858096502673606642903543792312862840024344917730320225521774646362949648165381003858128037198946598712551629809520911139444301271877826231603825307137027500960787940743002808251201458799421168735438880743770387157990804404040314291619259589747212465972275757732911402685097481416299587133292359454227957599110085162561561851191589733406340292781162523050449081444985590265697648622640290761172169159373897063627283884468990836834895441633592439803856268987234743812540645697767111126076364083561673498861266583427573165404425160925781587548818213225209112330794748384993819439367515666656027139318636957733543441849024896002124803594961403965699968699215700419414085004783183028963863476435531578566085773855003522143199442330458219874404654469572004263994392751519484377604368913807482833345934487004101955759796968329933291114782776286676467496888493892328170808819837216144722172483594135222688427379287584592395960230265440543467975851065572630902337345124268434754267440538030682105037497605339031253090023125669521525260870302584970151162756268220142552736183120251607907472732002509782505607351565753980171581716854105592943949380031815716014992256156121606297260283786285438907860253665192284525776757917797749811917747585371411817556577576385588727124122418730357212368867156175206096318246385037770324297925411852236962762872367360264108665187158258193861805797807650662513722576981200992272126845565305545971054652725274831512392544714373391951864139688508262599958963787920943699783450416352350997954544758835376046217290076693738732611672513663417712609625088597335896868003936072204032595070160677144357792403362955848254008348494758676236672584936654311737975427878022941183685142171938684889891955302273784549347268756702914190280870718784183613136931344037578510851453994638868161239265337413815206875921891671049097348204251327550785849523584800651124987619235317168349032436938383293480111758994812749902477429730734824805326751700332582275191884372335385814572077370172439534589227398611765077303886366451896561477139502949966051123086663970408653497451052391942625378847215359850637158945511851805327969764071513490738169271113572262896744026761722638137280335213959770909546436498316195725931868485540771138652809375840473742833904339001895249114438291078592515801138441289844759410398554512506833810278260918215478414219040088246172171919813222300844333115094652873889831529100865015048777420379712552272882722461492671865117888382783991680993349839881885790233928608503239124927209130817844716943944464436948848921126968461430956827523769482108671501064986737671245991079731858347135039895803874486126107455918843120788017123324007141697633798288780315296945413227330448932016337038814788214718580522210953332143835655331232742523665078122429522828351185806988031166512357992752275544030072111930320470791184221282548208988007254186596234311412781907269466389521317810802764983959686022581080921814859802696335056174468157894726690806456516946274183997926339537692309324419191728590402280868054323470195193751572529727361387470745978802327876239879126983630393393011720927953016715740369308290916100295713126059399063487164386579195678969431557217221050879530872860573128632534469550756027696561056739992424058288305257189227357936214669026013389603319188191965868949873718070647765325482177242709889482320738428885601050661523011597416670826520541042238130034077251252033680026685428308798791131665648832186498888603490088655403154318974471817136286503079338962807738506889312644540683030107569371068451970524056460140219645988362604901458510727282045835212805897692520575922786011690885965437762647637517793535629717493570832184822348869593923152868696864590659071976548221482968145875459908622452435242714954423622149952075860027134485244092804687011468430968484928265201452828569190104564382019124730915470031541801115334136757865528833708563024871955725701536838411762543105049168657431351840151072648356660333419659872625745762048264700843704829280720839669375613625661136728043437960089133949099426153686378488482911360527448102492085526796467861324505052881971776972408671167131720746618252796066954314925295885035337228600912759085988284358387766878205352417692030102965574164697852864377228824570239815969581388447337970060953635998185968541608515665222713873658911926250944817172461679860070312690345347848716643549255781017407106477115091005805104896803593974399683848274569392301231690558293549228804214030633624020891989232630423635876565081707525751436191716273554140252640954658459786618620145797830186064094727317544318308956930694459779741366972654356452203311031721961546108112608315262255296878289728992308174110627871014888240423653457614290683221951722148463059444689977389003013987512452048704251086556784767037433741246376563528524076225076062221824802027563989515803855817577662864196854297475172447656689027420557628566064548936011344668296148691974583301759101560483762776001200625303046172984969455555647752372671201236422715710096502581512104930182319874936622623164902888609201957704175076008874326135111273501564708452786335105760994066173422345170245868431843798091399904442429123878635628377296998784636310987224168158462387784355025744124961427407019993925150133708924742170800537797576189672604121655831974971746203429254236964953493524705374028762214018053102432286683456101636947478141672355723086535251699413887626957751563940939055927395120958441593205372213902248207288377412207002599739597676942750715377671256787747049192487916486537912573681517532242922305264127375656457910953040169791232008312101368357685884163772741064662580132014525490843970511973855136204203378544152866991017919342229119261504903499061461986603345580894467936563132152284551211503579010958204400925364936512280727505015381081835281417794314824923616791579788978746373636156420792363050256111362231257568449212506038434433269561678403182094268884593713561394192484625852348340630207221393959691365421553879983567913804657529664755383803428680109316618922461120183477369732383768846236809054266328091020776857696567033329235932900481791889508776850240882189716127873502657345698624678588193160799148668957135331775004076845854261327680876211866560710911221103252828528555587302948110399716467922804252227010691693970006509915198202433719929558217971199293035862534715059349350651755567798418018294886314336399308920376800248470617688773085048115643359431924771029786267882265018017680988511339104898689853269665338160052853083823845857839392320554009182923134455999025029699181907692721611684450941359391572480301460856993472430675717915589844042622973410571145864398743463846511703134532543712524946303113842625675567236721027879039826494483486399696195575497348555575716780385708970350963621437567067489341370695582265582929014183565999055089512875684379974508812477180012264953888483213325774359708776504022905094655936125048068776839490040556126579764953578244647522311583326208064097338663247441710423586327425789467491112254863036091148384748642750684777217185081318928685217113836477381940281721610366835032010732287497402990314973513876469505344826650583187771135051790123797187013923418044675490661558443595522371069193551818981713744819075566437330006830323543445709618747350582625373966694959055262043299281414684420915518945514118109418447957070607842369323128892070217629891309090682543816706617559222878637888132714914406685582170052895077686099677345403230255803837322898602966645317770930388982969195671378740115571026425697389610022284551758735979222564194396508448286091280322073086714268688567900764786284494666392306903957625101779149824152986158267045517398297425997821266348405639857153269429932639577370790012517341007767376309312691617733000754869748960478247476347284820270645214201191865542339111173015242333988738958796975565761255933741784950714591494798340159046800623974156901443943868480267042256202379562035743288320697181114564020859646139988389725824681562978015713628529547123446083219624031715105778550034142441826794628528984977689173134812856775642053230968976002091203641541991213724566465854181890526841782721863704377588249834503002100016600578826952663411879073466657129950938722964106234857083446885982973105180743071776230360983527717631431757628113817198608352406889976519281521946185531319224774855601334887336325678461151010730343843932250598588429783448281038661526714882628034509055796429307843513015072839485185372377233720764734007506522498095108982067993615423850077109605289492947361246673461987025180953173910026707259101524202009004635843657804093886273348780959705238012211885643342978392002585885442151124664889942836457612182671024306225271299596331888004747111469600254672964946699589388331521886891651541205553791215757007920038001179991751047263394188118260547789039184770162691518621004184035776718741886107360825810017831320183835594629608300794126410464717675083140761746785610852165008543466422637534002362635467916916380864149398532076643869274521871630408543957608021597526448449452832485992004363022720217457287780734665788849523129600002196529525391159166653985032987387733754961206153401666839293484406732612114980865732300375384076834369569133511457470351607249188911903671684353835754411617343060482561291025582320297454949020378795678035239675997885198805166971116997134474937770405174241383808212997561971509996399720904114860738382678543471077658537505970043143775412463748833130558034426972772868508920615604777464493360041263399780484891626658673699258839336168678206579689159201132423503595883221821896267823953246095349063943699225274728379860806852908081234480980669079345259322625073722589512462455519987497950502560714355056710542409231857403648500568885670755966640612355345903789750510545722998257078630458351165983999617472149702919521865919137282559612423602840883602762980911496720722207255802905490689592571835116332037610383017191130135625941211552798701593771845813721348270135397851341806226161602918831707061978744340136700246276944236084028523823261058425452430884888881925228878866272511461012878920763413945010845373426098597763060357673879737024154793269043735371688008186516031805460080318948361856426695081719639033606097034752990633482039887105829031102307648053801521548514622373035686586617005130188773484861425059131973243482664991197904329779809559577571512694045598029138084608204831953180244175480058172008870582635745802778949844267821970191539354249382522757082193206262265479922781213261796070126685814942598224891377481490575006350517860429991828897513044584342021899482937605166258992896012721741198898069478257989180596437115901689895277663656738874563392050772989567338026437230103771541399810028569950711926891912306468134917479013456009724375966417867501288832966589194732449995405507790956929777935804859736410375546332630733299565213662646409401716286288119097328916061926942866048401635612420631867172887710007850516657303223540269701913655953610682871854329018591422784684024165282286567170055931357198159496429754654015451223846661700097713793811007323794664046428243693882779418519683335842794081904212696671004480902867838109105752351692070770360698575698927674771186319258932387412132738373240943415506116598231938050753376849512219012262542422740895295319091240395849464008287215653784099946403195989392791918150807283812614360925719860909477815869606273105702253898403606271162247634287223305686595999414819272106895478253562876845988007648671406591852688138647420433121216754897999036742225817963721825384177075037844916793036970244584432418117775259165393775143405579899658655503009751545180885693958803254134062709642737386237694562536782776745531137911780919175148654638880097487720436143382079199884989426172860750057397598661147383073889591598750972585573513283389439507661672617485706721555639700588554774457665078508326260751785815971691653489246486034178976445202444792009679310919529066945059012823722107628297961431983663763554131235142317754868274829119613528905725695290449168037166912047982036096343638214194837730320931639374244028217864244738879352039469433754711999810790936404896448096317763450448317262382219446913001573655348326822453345115931769285494969761578655204841603799314782412668059343177759894285039853272910270906659880341779944760714468169218410007255928832023010171223544622210480324663671893720527511358093151863816471484357664729491904486378739629286122522702105593455090774657281610153437776649283155049326218534266995612548078124452096596923846288183178285693302470379617501772443584790367579870235684293158796646062356383992837118794064990610182334494560040743801255831592064616878616970456801995955747379143963424613107824486493074639259547846378016796929384462008024496794648388852445140555639014592546309919213050082982448814420329950263086832249775125199232143249891076562376040066835238963048850279594305769171610045782491306864346613635602637147347004799113411618056193185329398767657965717014274647899450472060600139929492838788689289094644585920357663618272149287069250401733590055726427889774764002489935164160747458778819248185528149826879131899869523986630910886415015640226272643563508546409049427040761090552927985674952886642050644752734098179900123259282399318226178960283633795022531203416002723637286681695011124418791122129888398819518858684617032324764906246147884603969511371066346937655521126369124877830208686802926145337099364749675886271028384362729609680573884773472449733047768957956287822636918224211642870263276983327024791808144738769066991101992882856314242903214609869520659923853478719870741895816827726566520780893365860534770722659457097753291871168074853727232350735691480173199662235394736020881472564783903490375020349659501907370194114512627811853007469093844720299693269096779181911764242347831824832138463973634947040591743582516817733628598214218377508270495136456616617903240406778847237628011611332847344819198803006062359554063961486088008562399257279969256127893325210507600725894682585085993169000908466285598987273646775861557216628903885858626329854178939650896213584453354771379082481217929856938392759814729791235743466249613258615233408956980089612020011143026809296640457796979422646837993060149065581919971765741043383753829201001335992880116668391520022640948873122169968775999724619715040710198745704441689451105852760561413653275849451025621202376816047892320462684212764694808946552410739392403922577226772517544625632872516548338069530441774076627861973348256118487591872862045452509976745873403838755428059674455246597121717034599100410614460647411226775330012415572923885226877255018467532064749849528296246374594804528412605728658903820775695725328446717375721694416445432076536101949022130668705795122613201377104907303608501183421383636389081479335616701930269970241449616026775558636197489870662104003595544912095270236866497110488826611075077056397025894944615213001070058532079901881142351667578052600807295946762368250859970235705688197167896564305900894635471948036297836213782335193927717102480520216886908009516986990435285637955256972786261774681205153256989102125542042551096998496009073991366483394655252208502873090801167679961848815438684741245743629893678184387613808348894412149328797182098372944951545332780084787898975990620408398722240901795187815342027516698935413867345246148839712447772610243815863545260051330692254356796330180586452159341520938274660532921482368088563735694477746362558049238859812609808782391971211017749881253499248783231570831220499776591794448859718788186257770077678104274784821724693398395744761498775003729437639995603458710291208153515013055847269664271250562194480726812054961466085254930278289211326332954210679066653046736354166754266792090904986179425403999243628958462423117933956666041766662760404085237182405457212304747723255255757175579543214964511336497310423227002574621179320261287292782341392174652791917196268149611593663877786187421141791508507277623648681957034262126680603078667952932196607836766757325272002050470908527953465206625582567033376892689796320662565480292836429454346740022650662662198960261427848737416226241969631719444896530263752810095227966432832573933811849342779505017132126348081083062519044373679940378428487292358831347732321259507145718981587287098512339618480342473174316845659174039773425036339532409565233998082622434018154729055671265582759884596976452161355594853099438802556845680187668989993745729557894562551249120577236692550811840764094494980636804018286192181306774563953280913008767132403122053205568018539080657117147823955086305645087323048988454240816026444541241394575765083945157634403199283946576728508280398958272695319212343233927187599724553465778788854757980182911027219938004793716441052829709527491435296161340477808618640290854541967644806002240754392873001040211721989306618991777743560659444743454390078861222111150323972958618570485938593956832165208683528755546515752527257826472203309313012322315721544572284154937064623013483761108800085207894691853478911296824451227049997847736132163702105375247489903195421254302625227080138630875418255674366543084355809022735087369310856143676011029625910861781455477257390635577686686829588967501142170263596310341007854045542478882827316872415356655302962165247635802633224644642144876662656643046548629967415424176784063755710907722017448975407484581094186639549928406067733334041976073070542897226739421226077043281259589603075341223811214705496832343530319402140923542533036401101340039090785099183534043533724851498368040414097572064269131700323676490630997255371579750882219183483319931646366470225265849786371326310121612895652395890045747925251341426359348416303088013984395528599155935924410126446112264580627428877194994512379011251482997769875497350652413757144081452789461298386143213935973548158041148399885020135985422848899747740442765492407810593577463753763417257921425636451920189728217873739122294295960045196861869934306750198993718646212145128750412716339479847004006872379252252793051399926804655888852019572397463028333107342039486632187917039786457294755891104161047197244947399315180256022654250797513739027368420814308806190446637548295919274796084610747225015842203803161253669393119904759184224760541837629973476993331361357726059680219141066590985609793223601128337650978873720229013862308189032476095702504256826506593069753002518213659693331907528174477449574277723429085706907189678958753893200874954115736504184286192077714532623468111728842592254070044162405787332291601841048245330681247307917571466785298349837422269182410936993309588089223631083436147641850640845697634755688024535073492789148866950159439143158701709853659050432892508097108173404585453042608957776989997558742757720761451793973477979994334458176439032176351330606707141515339846222659515256923739835356455290061233949568568752094877897434507636126673923798939441717113637871628510883017132444229879185539084241781748990675401032891525212195885632462552722392622033545407870466987399552497168851527113500140125568989142105009100353151043660900469660913923595893331010468568272440176096710825849855154660442608544557791749483557062555205923587348660540385893509728727842677264134246548764906760980656510063343338162937282358772763538113945683455904530373962571873492762603684993110720017008382332012826020175992726079583137517841683364816651958276889550970365704149054411207064541723949500566617498303525295249762743715699060557745604531058521286027881875759304216717434834550363218156721954896100134008132192811074562621290579390020318970421709784876871831703102755877786064583366933000418909290543141518501277375456386806050539847853788616181227782172199202682492876406989164037275235953999384435766753230223952842099514762684326658629613928155210180649173552076829278573437054772507289142267214931308168307375969831508887150355152928344888505363586673056062136336745223680403905653073843748226727362454855278791027810205905580307310864477621762113795748777572843553648162091428973154274313759424423464312016771179053250650855502709322831172057044525545794916090658189045332673169807294953020066862606733752221926293796625463834609321020610734517650789561541284624579276681243130730302319444901702681186864765963471491981465258099763998583066404255854409934832183304986806620996789923533600916757358506725815770769851470886190042249949976715397244362772483017481890430132663119190604116120353083413822800715852521036833621790098913058129856980444359188054088619062075608571367360599991065683615171303809406855388985038806802478476084655298364239382895967576334478059061218747042358417202043279616941673632368552209401791706523293353408643803536412793156913682636448357224224807943206758142472304353681890378916394995153706518443416092835340919562967430127989954779010472509653439796331380126068260767707166193085215442300986203545470736197465196922651107224499165938359313692146738102458758894579716226976479011278466098718503819832508265675252489713090543753575928197498067942827247438991616268585939649516389866246541194580400503170921279584225546810330991032716145185931525120385885728405520512209566510064468305155195198535554585140662550925134426538349939890781859400231409015882667541913669597011610168252109929577896402150977705146372883479701383004627668685123305779057688734597358451111784121641645895878198063632237793985502574867153208203392025478838614921656518564771904673932458094330404769198188177901674497023310795628866564510994596998044105147532494405711002423615024379120439368243815071209158818682789542902633868451545797627824232265155704174351234811170175658094211374710697899017260317944789449674917575910990001943689900262129682161051184340595176826308520066798936829826746024378714923642711446787229051623057286580941158887911092136956203061870754899531210069544747640214499848329351892177397866087084590702871852252523216337464670346961997001078307285468274914031233907983869264404337387663536930089165885120531214526426928287563210304328922078867066052966999861446774730801079398508649934641705380236342898755089707186812631908273002338508455064979399624952634386293211384628754672687749962917185348506366134475345319688204431077854770209704653851578767133749340073554538163449892120428046138195717510130248978224227347641791770807061392048145022586106540234353381848035979530263804262282804786437398576700649053596763264641335005764053445927146201736544492447962441872784166210559440779644013583509176693303215328834449447406169081631546968727441641867295484947344551433796914152249365526185096781443546078894383761578540378388767595283996335455024323032216065360658574341823870147886299240805491887835517951354636093960637472945109902393614752712820643065282103549336021261389707389258647081421617787765118104968763860058953622202588328448359714834936904388084641417617906275289864765948748857939838698213715564152777257393914849560004279573509955774429768569955166357786490532313224098247492387707084390850708315169718648972618300809995465391597309346015646109816765606063630694142729331985171584247917475157184123942485558104996803566938022448688723457717769092161800507821172998092002068043146152273808668149863892588626078690305090923130069443060474809530854953558589586259826927008491711685549871754340901509604755753053473433847089139863689622936986237548598096562061885070853221626279086328647466105604314447496457833076034849108390330738347659237281097699639296650370796695843001885324162562415922481237212074347595959829449222127810230462823778297637934748558574003551109523977984978451274961828773648547311920229256671972328468798491392529314178297755579625100113821020815105314556728267057964121624250001705887123199610807034229394920676048011063543439048084891161732094497334873784006052071299623971826094242433747902852617103961363832507981059765316292287046027602144250361987846028156086349336323356001887841929559804793341119851735586007103886354848963806277064773522340173681473876354831171287950128990953487569242460262534984082691445655635964373850620246593906203541804808875289613794048085373540583958734991902289332321064553880112782091705014825763898921158269459524677550837068444830272111509674685647583938876390384415679596389209322133495111349621915923579158958023807353126916811040922391785308861593585122567555536799805699633864149365953439330032077763275729515540523744755399194833438247386303986453962801683889230720533736176816671726265820836624221834550209372699761194992699253637992657898870700974973489413449170506424570808998402960676926411615565594814386455964957951082183184791098118758661080634350352644032350485658650002614873022603008770974240795470026459320291448502177060467582583617353894678792102320749279956747642484064142585971104423579518537229068335631226940368553753395901145765238329846553207937313140711437499198416918821577879919297466858344270759684439625671740420117668679726988762656405219904307362713558026497294739688529374450276134016326933057436150196025507317928854487155912781683444901253723803895541533373162258951471191704540940540730879479770480984535078909940217995256621531935071531794481047033364257052135351300661105146597385566550158918814211852506714776834297011568366719085152280570869377984717141495517286227953100159439947728879784838937635247817747879313502860045178454385224715263256694604536038918745886088109546389132635395801078709415356080195295816003907279254287765006476510482293327352291158946921680107049373071404216322809557633041277469828467628493216195240703835415955600395529181537485510351958388288105384909422823806147083254468252542203863100362746752552196225045786666140988428044822852616486675995228432688822353823610557114113475241627557373329016522432788094806467814920935349051774719065538950821915882391594669373074024195810104646746790933121061483986450769507323166540236625641815375855775006887148670008342059333819448333243365758715503932661408942159740415608243552044722625991262113768258152132155883317653125177894686198123021165993634183545556826738974058813879722715817851888483320479769216628807222629801658836676271265792020006365221952450029583399424637468660508124626320022843099453265216586066644028423246801472532006851921205349057868060137240791217074681991388653175384916408554423999716798334555375388186727212415062108340825192085161921871405416107597318380447136727731950097033941708010423336106773970573681239584521455407645303793796974205155246329961002193221517418492598016766367573906094409201265206212649960669088615901376234613582137939123038404491889678104408242537772033519878714593360048386822644170596890194559934439520123555207372578947135420838948630559936752950757033540232603724199729390730357049190343086584804039917308465548745743444101690609047697966930712177245577088072981475266378341287907367887634292092114615273499086429785207337159692688431806496671764302517178571472059862649926799409828488346438407865780294225934745280963329759024922063618237937549592324979869376287107638128455759340521736382876392141812695639874545178837563027094044046953571779697315051782659277908092276854348862241511239777392270026946918443687486968862024649190416641882376702499778314640231471592926639462402695002735109932329087693456881969940362973982162572004904942605452976978668550336508118050513497307060102576148185465975206979878553422581077965754222437722290860755211690347638234160053341594180792614817806841822878713633003239221235728115104132337019611976757030070847166393398895390589512685494093154273216942826546215897519202453087600285958595479691461839259786406638942594623102756165812637290460157300198633275738324436220404983127164184758479339904493254345974675094177223415857050858013204009328199607860754035803278433731592618245907642574908795330463623825574713639541943791441844922090105504843396964160111476787834128194013016020934338552360964028000610300418721055580859456195450620553741361034736258133919423455929558262256465017278480423702437757173032918533487705295855977675298896324965335806442226378419784043076507998787920101886409910582428934509245396948271186679001762065255313289573494334233005869232027649701761888085391402585848755915021575368689442706913763979815231022388443695600617279142139233737604646017597691444263403546704616245491312762618273161518637215712132674903249072569197434255031513719921469787863961247126745740005378927446055620926936306716573217361731513680261790642802839301082812402210103071886489020825124059155875349351652017693969171003566647070971860582853309549581709171209548932114189931567461454583091430178326431322965840287561898853721831659479660546344258267013047268552889377333614168422274143657991554460032464626854802589287406077207746413358760668745400398630000314605722188350395962337804812275972752252244367513847284071461643043484108471234551905574667330114206381076339164908383293402941244291011719908341357093836562904818462007415609810881858782758486845927371137977006277512502077296826265454856287087476103382326087500748953528296095494100304101807201373443045271448078303739902726319520238473212811202208970353921612349009251732128337374575006455580821419276347934012819512364952879982925382142910384029257833861017718272631660802756675656116009317263270248523946790187271511285802186636967495271748438302254695459495112059464429172135868886652268939838072351315253643376611250899857262754118532653005618407414066417711649035179981297487391358088593902509000721546255208896534869167450574123391265610607410747072666830588402623161443324420238414649289114549172383429002328822635024036083019074080212959617528228788053699170574804388808609660099270462715498682500818868564872563269313928520640879778800311383933025748730208423035041013125332485829037934646480312090090947511523392243900402258684271627408816503935652462671175727347480355619395382723672031125516104196145069181442815863045880442726006921636487731406413044955046207370313750362383472885307954566797400870310765656145742285253979229337971727653279689479357303416595697981573009073668986290676733493696445394332976610550176396943557688833193009316459072512872118452739036151013719272307248856097268673081890200935953389763503674297207979653139383777514016943008734769122770091235040267134711269614649708947003696238755710368252021929285676331832895032334149933567015340533094685642851721965432427978903626854220453319109540761110622020781851296142862869128599901229224740689166200798837481577296912783905406285461239474221636967842814748530498681399990913001802780060187516019882050723021392422869554581398819924266136853358553081657881881500237612037974815668446905180981049795474499229514470154781798286036242350367776730312477865327654578546704012022853927449838659314688167656660266690300486703668651975371012571861144484270853463858365299252717560453804842984924921406881501731248694400299165563237773907663352571733414839501533430458197274800799442579595419275107288962980191359875713608819733576347998379164579814821133629005101525708297309194340196927336990942806387967165370223078266572707426263701338430579363296581429423980006266523919516281919497135454717175400636203873923148507924320400959084984634718938776204436485948286663787193285565677699914690754489643316106058407961193479380041258653189160327982743481842550473679595854068265500908490597118956764992211655870201699429531578429473245355590524816900429628698054149424395560154607136788800830990816287314583536136804291659682578981003956384255242470833801984623634132367337246615797609359167822966911626246574176121627857841163209423281265765783329024323037663414502088848777800649580074896953169999332918557443599813992053710051300872674611105197645193309956199216882924396416062293594837208007163219260475331570889932214183540333987810761049573943489843828739448605972332860574654038146657241947657209713806013360264415695028538365188150795193554832289695526480698306273184745849405275869872412428675175864028771463855605854640082745488113300400788028316188055673033861313667600280861222688749102098559817130584794630496918415623961963875392241951346285661379975014444162844789224262967950734215722188226900619795361924469203826279128463182695206080979022014522439340873526371639866984036551382326819213433776365673059744962006863375698654101455373455099503999540150408514000409707429287690032506465489454793786617369834714663820399327315993859650502608871403859768215940230294898612108260282367733209522767213135430696664311348772137029133966848248521011780548463750713066328956008744408255099210239558303415357921559579019224625809078528076352440411034786818686000675354854151332553012229869095098975402817144186627515751935818305550818059782220391121440001866280572806869168980468973461361244004218415632826256379919234917193368782173483724837618403887285525232829581223078538103732522334401558833751421262902557208144058673233710123067982412382478440307529192936824033252298758999306432052767756303295722451341056549214471253509855630565711294505850783990791907967540343481753867798550873775265365394648259477264843550718666082714314174426118949310795639357542096442570546023668881323915022373627975120135461677378614015822438015276263286459963609389246500488694829388033278361238975087344281311269775116882806085871969972895731076071997217640325494819175651989823008545546769236274950930186446296865242934306315824091178154613729975608695228896914143026920662032347088897169059125051177181315267585656721434579561234643961392074443303776546444970790085363169327853393984997995167804818853069016958830417992706900964861339080799729131307056360172709455184115941324983534949399744602439714187961431674082207506163049072081633425896671663957339492551977278048103093701173366537162210470743683393100747408655220673459046616605921439431301063037283812525056481856286379348526399656179935877261851192668534926910778131820551526772545726861015712003438597762029530394719262490397885990730932877465821591823289784136694675013375862837358852681796513408048807031448632603957649651254665843549161965606136218315897955141543858132648885036055162302817121836836013161784529768031899211057028799349156751193078652899474131284319752068691609046736253806711537593915051824512235673217634249632682606517150809319092274774927919901724788566778078829533028282031124788423574296177584313428874181529364689541736352394862456690453574424892546236523514372969165862823028127029402649077193392500480441747740083274759580057353417673178012301262904412498182753584046092855486445199970555680939926242032448407500001080938195867027566277219613348794042680333526909843403567084794943282140806520522086180240065797912139839454158685289824156164973181729576320077588342118274457841363352919234965531439047004300301677727394402934295493410823459456771037378142995736333957275396019928834290348042815667085041597461967559285391306286939747547428976392909690492589718200749298837023009596093272560453072220289153967560601738857133908877800214020350949004801591591621500136933262438966046510678177795074298911169840753183491724103628477695697921368930684506239673139513061176115475082879258568412032484696670310724199145166036222363891693496455655646853312140697713330857679509969745416114069613058739160898050718134105138852275179434325312022688796036532754227007799911986658283244272949904463336998701659361667899352868868951167009786634193582753491566567478903466564353199191102819984130389053478883370848734090322516952565191564624290979151952134728985780272795494418226411600471451635180585598855286800378729051772054985389199790243694912357169270489436167262730918985900678924822081998641995743479577741862137087654758294205549277344081616334482628799043436494937635694268712520365479402411389424834465370196667858107592261097533885761516100049033230823801153940071645525460081293518825642608051768374127137061885474630666465230826700309378639526862001388408440776972099064740129321002269990351024538708884665864496081936577355598032474382133160064719963672144048812652963635867010756015994874793275029409299751177197400714425229403521978400205225063068577614124023482918152552497788667384665957045641274601092865576364699840308243182488501607526937026728535874211580524185563595154347871053282643584862930494820892853535634870359727495247894627199696541007448182515566566251826758946678961489600741837174278438099690946333319357993622126411872286164927036467469038886559911228138840496346584762589044605591851767154709159560369969345389518223739698134078109166376335733822861130266366480826437611089931858517277756642538355884802717993410663633471844126260538460628088741153356829929911346260076341269118616356373984344337161433390769853727753100102986735958675305212643979124800895388239307471929052763986528548775020393977515923250604288808015401803509201145972739887712944064956548965991891303852519314621596313572863131066629743692408918218730466807543923247415355421851664359908400665694967081986733111184755753134081073061908067841959527012946565698209078691896919754218869499986073003026650364103570370586178018941436832180751255730754062380133873115421823672936063586729303874687894799982435518064301783969133240965687795353439273660200349013387683738458718999027575281150762344727686008284455862766950669855835899828916084729668558541753424641703383763798158415468074468404060265024424099207514106516674651855481212909962398373437331666176563429446757676317486917208025622737583796356860328138441950278090786494367646954415757667925677050755069527677129177332036908262804515957233019787515574526531057008030036795408194893957585929470663472354574085637328441778633524617166224707120135236081462976250374697440137938948748779533711180459816116479799585923836014304548972377816619637515967272493328507655506554380989274591934091287251847624050808135245396148041239008693314761172698593462182854714820366241656021851931968371956155592432293229162050028658292880974494422747337234735570216466874255402429469881116272593318684958727392557113315028375383041546180553601054132431268211625962708899216619806177726007333707101331094009900222067160084834349377367865661432192331719871966256299987962978275055932861638336414000338720990468650837397287105770910877446976237435144129690888137336590385560390348800864201947396015217007833848522771122269031622581254600811643320034755296303780519229375315638637804366738974913460888390302017388320870798905952822124097604457948557391802167511381928888884870544952313004476306205687008215123087743363934206188966083198557363548550866028770985163763118017333310721322644842482277508502203089429489474409669994693402493819622862559423407835874043106151289007294097468230989223828243840751731666927396754857595726202261855787862351290966437274599037511164663268397675439201685175733324878628310032265384247221099988790663571717202143475438486183723594559218459455392501902820883142802571219221673360974330462040778502320175920368702422319964590750249740829898224658610466623254648378596217971988950550193587772358256271908970563901530719385328537662858323582191723985426401942675284748787930425476121602215669971505783927587456000602474984893978947345582177477207764256893998493847496651690085540987733441894439221869189238328682177082894951165987167197674477485781219504336811447503619392577310961867959600182117763477664030660658401660775335606796239342416089496356818633742720771292378770820578445900509124657388116889353859825343365914047048159556610457909160716018277176874199402057942286337126829304525519434046111200658795859461564017483767500331683410929468111277964449383847677171571112220368702617578008606771222318817264180364826545796891732798127990584018834766199805720932213488654525937037461078856896806225781800056150139181937680028532769560729807201545680415245535155562609634585498578475421151034244625956595759504073924312072995014624499109887229937150119000266278793043791454114804570038609066696766823395882364915488731457318405537391431277706550532032055886888991377374019486649470920539599749994085589010483461475821739677508858841297049983022753675738351084608083646878312716911950751706508784193402655297749647714306588493459111518423350630177267365918232799178647278395678706342044308344610180418809026474483728140149965539901580055731415651693954754516469995141604712008864771225062487595498657285087349716104736781720185914821181230079262318743959183169518784356508060549091768746887168823828500958524155509657279165536926519597174418459386500862027603656463195614812738868867694190264856765431214492502805825489022042614683620732825837257931357390823865276992287338214340623042855696977804602184069908611416959585341287864978614231674669242131536091993473783802301721833056040489892162793539932013403779780269484504356144197616699223981406663419009768194444750755200487798503079010082373262721777057119013733553907498866633349397662476042863318424133750852690838204216467766375648349192508344563276712913203285245643710101801164241591233027874517610640396698092626950705475466007288073113141674219948728566280300416163626308073339084534596480756604975926652115046732845682939926851089661254042728210392619314421203150491838348658221093701886732363652723903435142240810579014203515560014841046060733910665737053943169594406507296261718712943030977608605304031999434503282921681679119814073712575310807881451920639354460617673461890207990953199035865735939820725883929912377728856637962783224647825803430844961685729660978403222760834697865675350746262158294056109522071079564504906645745249705229831663478428172878741881061036105332252058274750682429774588866902505588754076315968603679995420463522325447605402856240277172841886228597037044458086599912935435446175012374557241148951982751570367382192321505941172439279084080530970585383316742872027771494338385518774122916958204406063232477913361005882910192877249546398064120011621535270907373010320618004372204017759004624897145339124907613027251064904929064011127763047068893615003338028252099154684889109552842186760712732041561620004038821145506359773740203248231715374409653424002495453073950931758889151835695951319963593705559755549830265870229719025058201046377637375540623305768331259127310518782016059262231749941459020347708446776609766350583311572911711602285583663390317243756682069042585801079462198091070753906951149079898638928395888598754237819641007494223455411176126631634369266022449552729064096428492800303256743293642826186661156087246871369629203011652376585290286837648464546665924493324189480522984243953565505550015826371051133811118894171840934124878293916270009705240804924932861351515188255073607245226692972447884701687930042409953794588235508942325366009555676057407408655778236813687328377139967057808588642888874804452254594985728043456596283849644835656377559014895960154042001583726758330998879884425352160388815857679452280480041996851464878801780459346905276566798278468605670619581239658281453772364265169092491499319908460245135093125191657254846421236874464995939637218387333901561710500001045358459336737910172241185729967424361497986021043870415255589960771310832255599956104935586604351976983192725052486496105056570698867607819922791509194234598101946478279526148341502484362571037204670107222554333279898819215615468058295981889526293209255417416326545306083401823741632894697618506322968947465668318467069261317274391184609642064334804969416423218297603205254678248257986656988841177250236169870095238173982000315366466590226445856027298879142346029172737299268720049738086680713254597513592513247957639555110181176345555840239588324946545026183170988622442461284684484841631468715867233008808619958643671690809212692699856452235022236937388794027512446201278036224333646606905627077736345169972383110769170060171193082378345526396266760882151225036980234636800918621681838766076635584505601871689268257317727080282851090042687200489400182614806604485381701617651601455786843865838503433747188201998353138381747641970941187961216427977459050352336649348190341368876404714750121844089434391527636730227486651620700254757655398377555110425796776531747366524763330236510916539168924215574581490412499282538189892473913636176345453423930876213948451565742063738600160927443302661469759930489531077863438826200270632763191903322998661224588715023230236806593963984982869748541735623798136040733841746536590790287697760931723403938914573542164121822263070983684365307271158939884505906121706644492805118373434065934262506685889692971131678168971845827321203308832213887171868310569237095954807181216880545231222526760477320623139121331744451519776210296309975119161363091487506056967981027258755623475105559698047616472417913560893285276460671947865383226630074009351876696172591630295677385018140252186559502701638460827641352047265734905280560455539781321445741344983132674246766181835484904116208966107344944623922416359428603069900170500018511750787573559070091444344761852793045890374410327210388515663920497940538467969904919904683588427183614354355273520150363728959630203771512526910630573655415276005232765988359465059195771370481440013423665392971982678733006290177385069255298676876550152056043519597276886883576938966830944969781707288836744497448135064563384451026088485789412941456162288489141954603083033275328603185668085267549724575114416130837286903429876006671229660878783664114631765760738562050096721725169818440477672227978020613504145591788887560342950044167278560515152549788801485215771850582214202289156870079880819709082948596094966827763254897198494658234565274007074227673071605136737807402447977889675279461053320837519637927544769978032642129044604037035676700883120895062678782457511789943414980746387665051996496444129017916000306988298835488055625238241759492331833773244017776188692555323864176386001003493450678578523350971130604653283850421855310966154168049044143378964879374994794332093368383168402498933223027583219447824221724330493773675954969843666504459432517416491730211024984750857186128799720434087170384412070444927902063301610885365414211098332750084110829830709138104814386676382749086806524759465504942863825498481877922279695662278071328512409959414678839189683242381548144358307798257720431185982720748210128159349270115535921065416905912753584578828471491149050133383198406846416732854619997944217443060910840485885172354827031714493053712175176323329306885769776793515628600682319104745799187592414868826871588225687712227392136092618000987690324614912235955798986091951103809527433993023688055871216646539325230481962621502285748670984407900712258370210301548541880340273493170238522652981792644524127271875741131696040897657991988840030630524488719321910625804766131624009857441130988941672460041448418636829190564120880827471594934488017152573227803970344574959055397974965893024226973984859088551032299035287005263987558398746241855334695791593902202722815088889598887583652164258864475852913326611654374993881918599653524243619220233851354940362221031463498466302528713825404912902895831463885751946497765664091469513525049081119580988250557174048624493133822997332296233810034485774200533872411280657914662836830886954386222368977900726062739913299598681296602858086870119955249495832649723593863274225099001051207970128273184637702784838166946944290489970182748245397377647519440378300972544894082427251981877961986575517187938420263744903085143063461519749243834521971552376359712805105361808612431110230744327476086226521653739861353677954497009125688553225115712069672408045861203868550217564471993528390739992937382411326498522332490065002888067354387576498120726277988889236893532682825673942403099349248751604195662042056744377524171597469899192603395340465360920079107268511854564433582337194415685724578926897281419131372826016747849443649617470444575681148167744188311410771376825528374390170017672103272247545676256051629932923428127524365480402899033952835195514384543591618812379806148875610036465594303021257763263205121511344350081491786470436489719088399882031996291845895877322048536351447517238212458878802584804601349520803416215421826714345656624234298524339515234959171960512078596797102491763049031133882027309749771630571848402940884833332845762137985693038316159956515179667916954115736284246594537529646408533930692270540623520807843465550461117784898490377746625916539868087619918494715724451906949238663420264803581360919069518490719343422972421913272492518070342823732184423746924561764953731192994307635770427538092015338423368118525088085805385628710701406683968720681327361774904294714344432516412574310969119491828286343082306569150755849495849502711024362011019773377281234194892533473400828901179417510092589089632915603224894947258616235401138891592959717329607434339106687549342466206535134653931953282002873074325548176533847614392051125206644303690983011496000209695143625689070317956920085387916658697823786250817272146207880873882125215666219543200670056441353259901522970839964114749156354640764247367137414738709559041067391689755728766572378135772394593317173907250700014896457103320105413471782905028228064907828383310676891797554591625221863828046649113343027757909990758812937279700335343991331284521496958865866871585004611007071531939705614382025045401217128739572737889042271056310007290298887874982288070598360915699872402194961426632570466737431279497175636042642234125160842874124761296699508642876302362655879911331537820292455329475417877741979830730145445548884838575309984619927975003830766458245837917392423408556888961838382321502940349787665961386310717277210372616403440594761219473854647345710601964759946060691727492854797607143739906778934638172111831773645117403137095615603758313827108715735503498840000210014915962789783380560012562973603335540643945748853903468624462814949762778693957688199884667086800957949931828314002342921979726891705688134281306015872581413661045248487490526530553139656680256818652242750102931926297233716028474841086726076141949964425865735427998804376913291271972289949087922844290455120103393792704630646637706700438323367332229839164825425794239254416271875112359056358601717642897162321495866929922230293435012994289314202683052419539680704552414054412805141804254133243163404879649201983254815344451353451828503971557792477660849356548482796737692514128346373481797957354319119377479875748706418848564030085938532082219922924468257376892852769492587089515178775942599841324447441556953405249083224226471411336137634869810580786173833072007398029477661968764261615120270516489823322763173430371725008451871545023968249708664860121372662490269706853204861058364813345993929737118521834095311259563408251657940793754011104097465257178381792159188632258775497967364694357826384812717391702372067082177310138521058386455762964197949586678072478937326337855394765603769581928634536548785386052617937965354392651886342964664306752701554301815027844698781715304802400866791536577605263521076052765471381312333721450213496416273740797627964954488166857252212420014793302172725650545094595017034128485094779906438743258141336951887704810945165451901996845890244318012267694443452457511063609407358608873864056257525260862551886359447741733731385350900874304823573449514323099557030552492798689471438132257315071656468108637032403878446325850808454824882531522692477694381194537719148999920463076079550700125934972884533915954269507135390922087322145873253329860251361384480166846569578964192546739700159637650750979865122579783389407343082608222924983220573214556850867940518787127152001668105451238541304346572954943182148118276521334869413917998213265704218830065486942925832026283327014100456693524152846936578829464931295432416279470180059526826392857916253362282956965005214345056568253683733989849353320072494489707006173128467414109261168787156340820462567547351249690880078173706972014860184140506523479587237383579270162671206183067593403638431624210346440305121942716630790744955113018187534874340266511289722698009685736830085998678631689451410178930634979953327212799394533581863326725181476580050866649442585492559076128748170549737741587432688362600338545782186254090119942658191706810773742606311500455464184737204441580151527855740497322323430254304934817492214426445193325070228734672138794688954675151258368121289982171727680723665337445249027575518214497336875200427453208126876461221873964898140588706878429304822299246938748931069619062572658766935997623672856401721081700900137348374920409047290483194134972440855174042534908313293824900576468302625895059953286731974091125627778448222432169339430881510121709822008333763735569532796980896460834345145057154983322368859302184386056427252520452036186396526218233138191620100087645669355848982811709237041285784232387175054653810992054117756403752138834858733157243858052024354789930727273099559600490582401225422251971843531545614020750592713368373080573799593647437488120990691851666414711531964084098878265027066074695519623422359141757764987918994124389479654506737197573288130015025855562459301880048861088499119790596789215453663592635039493151096097510156141479553906211919727344315890807966223097377541385586910921340977767610523827117349222210160676265067080770431355378538901985825988840119241529320429065747716088527591087773704206670148161297249290357875109041071070842474173101581022057931852034670744403013820664749220265420026683860442109231838868065059808257290854164799829435932179802890324032633674266917989375762999222018195488705606434138454774802892028626533423733668231113985286376535860679528242756860815426814793467401687123833835072587569975527826080622674925253757132602825212588588627559573673870204820848571813422192110400466833674470706996434715813696159723680765510604809717741263970092693552269254628652858147396462307762040165744696099861240995375255183389465873019729796303972508398412276154192037904035503861393431870741325272715195457569963371588378761705832646832755717679958865098579240290096616805490593347982932222625978835011138169057453219522124199748290004303615517554831993563043864703348447905599937651664185417343096857540538129790909708979570131466125234681492808684039621279451742298801137243803421735725044938401827216157310191649220300374316054956696210965801427875347245185484477027907208721327806363790147116495389226960031223593767254968341166349525073922942522635587492145089984954780833570014206600351676346704557342660601374525892231556247590666032343425006679298821318506482122080937634403837828967861943749406439163945549961398573220344312012101711500400580348569589562918077595726744582398195622531524714570610241657984022096216528893446442784134545776494929015858334580644799269314650956095700203901865060851408559213647530368608854254732977267758864544470463157736936774124682754541726579652891956579823220862646311981204974154083761241991989426843164349790800403506592354662467385018576711466975505775844456376187232955311726594721969690255331170607259892831642888819300405054771577266870272583369362780203833336207938466576616766566171211572311305683735957512092787978310312852722986638235858553345461107997408177315745848407287865340491282756896486124512989811985158974859894638343344940021933768962371501187557557810482743645165067802985255230417815803366928709344709634548477617596235434111091857685444403673608426677309092636653051459018504840036841666383743453292879919339411441823436760105174403753325337447245098063255187353703905319405712476168079041873238949911023104885217349835184583009837801517490740737469901535673166006217883822582801283833612872605148946345361335928942940550674279314055452166337738929924960773226609819609227394985551716008283677236111230276498081189912989038348047511686659571142472684047849796158452820408613326174125523605389500378610888586398707414691766039702407535981323555966641740365715612498240076281835035453689020379776964988442781418263450067285845299299225255106772690511724928485316062651431688328040096328921993978246360136794642777702552946393963686070698587050118964704161477220979477372201340046161071017311681876234561431789689895893242159143418534430946136857381146192350007329803607597352245908385391650165474995670065848516034035984662424244494717114162345800259762301893534325922219904943121667097126214187456722686284104012326074696129956067714093704757094936419829411496034957844722514756386685692584433954003879841940599823650286838863429787095950554581449685693537405326559562195204024706286395706850877757909989162632181276333757549923561119758404799826890635719911368285439890818919252577810024157380304291895644276889571993232651110326325809374680716500765167202831531487834867480765921614019192543248768514035039262831337642691599222600754882339691028492378061977663789425755965678087941802004747693426061885649398935528781732488780658360987397065381721400437448246727898144790330089420668120128824745295069441503672804497462992630246234950017008359308688005356198288623526828665482357792181905124973433516172999740022926503600849076377968804658772127292701981765328057797100432029617001608425413187891773636399763691475938761910833894936813640704831535776528054877786002027476824737678509730329581840300384305012396606470660588806954125197121656304072036655574103412948690833868806113208073927917903305603095466828096816133902555823428167292161245985345472922030341604930153392749642694177006121543763681273418969587485825655497410751549649888883563565003556120080161206957976271868389818033637231864704737365756944470191043865864908685575435664953549219184206257000918024604631736423719311094824249345722660612364538395655637200613735422498432241108732635258613972466024328623581035404012094118311115208053937115046211034968873521041306906202519201574918429531522777595042350588277200823741043537803051105510081929635666175505778721815934804614259145463553173585905124892583795292656273542460532396499424720594226144732218319255783209675928045667885013283280740496561923320643829249665243859232595560510388335339458285419528887178815805867915619838678078810316928230005221531972033494421046488263594051050572721630619140899714293317111717256868609686478189309882112683052817349439345953476212789074522473230273018620269310052918576595097958735665693833434225224789570539739922551232513947404139304475335989982517906271887918059773745369784273965974423902264768747787387836750175716540607767785568686178267495911247544702008714266590514594264537295865203428250727489459612599134543205219013774787417056875027614302825665749678012444119814390572722159648172904586892460919244259687250268981625881985989847810926878793242799189622515344477787452008965501951101291543672664299824816281534988566392558756547601946351735119816796179155318180662175172575892368517190477669245041410714522252937483764186279218225004301019358178715452366357333450431074773847069324145491147351434970896657379697299812686155350909663022657343216233054013636526983552766951890349250236763954588160367144475538973228253024341123310425626413592818518285540656443109104683793864657480457432496891594776606173344126602393866056479401143486971020105748452092010965841181502513358510294434732044297908056668734847664606244884862028705910656314716206800310059509715671798015670897106711052948391717504330006142522539314631093048138832549243560282472955679732126815356592800733326669064092999117762348450304416867085773331667758184820984132416351105663192142724022774616813473908960285069597155474337390697448640103003581033316402985381721942471930500642360911030848523575480294821984744329461631498985530995744207316861339576394062421380622562379890915542835610455085473183454401039035959690475404610995142648524219998499960060916281549079592509460431346563373305888083820776578034050103088638344428052752174524050207251173125931190658191488636102621780821218560094217469367881708229098261892519726520826879814297478474848832370299608475265050007313326376221602800667213117851079839503816819741284680824749701751792168259359162741757773483554480940696375555467563848870502389585935800048816021719315745319455190102670321374537237279623496085161050223929674683165316649344235841153207421061282649223814584416415177216752510123708242810954200280610179639157056392537928818221500342799076277893721039258145069729680284676733758650605698022450683899063394376497384550872230014378355372488634309542940584293476221933732773681186307641866167437632945680270233955670726579168727274098069480756922878364849782377716256037570113392578865906978334741552278107477505339656102590791818870869195957768988541972701424503404957027538601796454384582175174457503488293485138722630180182392078761195480969706769092298602524214711027510972920257241248622282859145413786651389588422742636736393119526770364217974583043033321228278020197523281209551851916413996326209789321393621538182715146102218611483873147391743221686021041009094791203632939982176971481195233646879803946572772358787910359244606697921030156148000621739523176466619496795993854586575641789754652797490223183445861829402187600806429811363737529032327933308100021798779949289598180452191964662913619415342208279223293535211347547650131939815838890634529820508018738325573685870384782288333419812498999953142902643757484365260470264940486601335150031303662240084386316356861668497725224810641662981422138681862436033337061462427129641096437716455305714078739329771865577518278246845053830077452952343901318266926553216576511247722192779233157650353535985776349236335973667551786950120113079795315226318095883392790963032383950276753117905532759035230270383207285290093316208364876855404818845269794673601059175198662944027171533652564162239484382125670268879965669179835476444560771720770045020874212839322833094972952792951054370079416939320339052546586738898810843195748581469921891786432614272430337879195808858387244456430422399768009226572041747850771325610943924453453787392121153902707518800771378950629963521166292024597036673576315339949974603469172277602693429247605123148131321697003878733660607905669703939813838286499996240781577823645652911088048206064158154922462801649138744437830383890440918886993130781559273544701638664088188880680621552739490449403664885880241002580191453515739903978811790908952633162317466796993344689219881500396128155731806910599053267601573167071173343546281092101431950434740737897521799829622295828946191521095875690163392563043518253096084841021547876463586516069558449741164779923052947237461520687609838917197774647850415655058536126182224024687771391519530793819377726293687998252468663378060948267427881032412051484670476177529113307411774275135709688085879590924490241996320601029942634620031302685791311523189387528738127472934571511978870653204313812903053634417170329425268678448630353923331296177310604216159255636637208483436845126896074832064056546500498465048930813599122756868343605027817262147072854605640510628739669689492989965575368958643554405305735254809313297738847647763198672668253542269049891991186230392128226850726116750723874803838058447887421766159505703155409706570523983935413451334638484002859755838211796696043455231353207495590328631023810286472068172743620090779817745939054785694698789136755583989705397276231096022563819368576763130895130095672149053287046249187018971575041935944967681865283843282066287089485710804910682609771260980550508635173948252524883875693080690574163999091845252641684663465248439486601110298733724287293267512851683597070161264161973049486255039495601407654357344309036032015464886166724177311190606361646597816202590158139579261984917222460723296391721461941669125409150166929750849617865836002427234506800612499391815155373797468594359223291158609421723725461793483340654130397583392024975197382784584279208636827246389527443243033205102280256230840235530206971143794570747581946363036179271206941293185739175424162484667889315084164015255438739636887889964134741083553611438868111090011569257167373427654084548929015693012979608667626933339762499891686296656539113863385975395218194592806005981488217503613220843997014576575672501294381922825331042631553162035303960670253315255561725117171997509529966668704655255105835665988334330780214183709479261050796732479416451234349288405860104978694457207822134558664129505715491453297971958708628770239988719381249046305635301447452627172358777797141446601660523190696227640307288942476693487805522532417178027383282899822043104160762303904748147663253399442226119608777019600912329750794770890551058026035963727127462225726538240720458735670881191010696161081996550471160062632897916327103281734080623186122009063524563979819523504196966089425173813765626831365164649517084248482108888591682424595031498184514333117199941483091025154885309616488664079371706251539067910974978823671260884626446997850948676217715429954338713862865833529963238444036244186854808588251381305127313171505960400295286473983890462497010611914803649009240832001507284195876228672504015258930789896572722456020565621660383853495660148762769065883510362772762242959362514634789396930254856872396790211184719205592855050742637682272276990337110755744179750158665820190625283154557903539131092556732130236176193831110009959987927764999033773673216007768946148727939456049298676568368842784453867397645771391418108262136383652784101173387286876071851798348926688379405636218188887279622058962346761381418930136455193545870327473486277611194751221802755671931620352428721160463501354403897694693709123985353780874729710175611970516318690843936395384185619344677018460479119336030564762214511275609217377916137170814208850554460119813410894414340359675239756024034377039319074194872616997153561926275804453340455935842501913350509769122589884870691228380308023814421070687497140500298172391801539600112355198814308884544947919452488360280639466164351545046797765868142532794462257531216188265207050673145255155062886587680328204198281443783785372951549978545361115468923537108407308865754593923126042531728844620405681029393214615626959404035847035932899157919641685192916431991150293222633934909353358932697945074803931779563178146337078435378565849825750446014932502552103167378476664728179421705452907719818485542549026421764796178230836896688190014121494107303493763011488542736234984341548902557174519636350299364241971890136586785104044512177763132386409593640974747763018683223818725892929868576938814056889796304089984233185162218311107138967551987591528477448612850706632788954413787406233442819366747891906686245524979365824959748186026866529810229647097857423000847248221473601964228396168673036137908366714720649956990871983257201592695102087460606581936605852332569162362450557653806381075409097405490200574690956915426561910174487908026817212301898791858618314549671299487298764451636532569168890809816012428641880485511171273322609482008771518533865252700384982540054231136303996364640917449382332454701053723260486301431826884337849554841820564560173462521851756392218749754393051644108403261012220178943721586052080279224756362794181629443665837027359731833131438217103434124481104752228457651091407663887269256918854656601112738091493360462067768759888914194840437344399135137429923105492067178149589183837473522582750935308449515745984089160097525059488155599023051209794555995860781626965856132018663972114019553211049567036596850171478417598894951729141429545263185856066956763312046151391576801300422480679004546758697817343399145823058687284141741520028225419990471308632014715839374062240780604473680370732780877456833683794449209056982404069877090579354228872466195349294012647148926095005663818294876012413162658093105784269089913346516560858094625207984957956440649220823515987282619460504171001930759767089064918186118509893994844773176654776627247583168469595000243527083402611135134518876070882888166960099277432694685623320739804249544126191802127855139519298487453450874106736158397041639817886264785439900339275416255548244380764708915370674117317527264536997537630548181286874060742518540705258596250535032789303671224050238678516529467111121735126455860739862091312285126412789368303986230588236775713138492188738844020185839245506061490199983782551075352224485925237473755757767443446545222010290029315698773144954488868428686558960056148793944972899915202732284165445243085347817308640993443492778726789525525309771377341737436501114115723125183217638550884956938729226763404805077472419935285433743574891948093036380578913756365918086542738157228358665756269869902929796536918670784241381424078718859887110697386434280559191721478686893010615423321300781957750660200856156230239240542570116792592099375246848872666474899297556234264277468533400912191068171759007867448444066021387933045460787667896260709234623485060180454359287357636824040021375386450109308383095061998798958175545594611178888679996264237515080756035550292229092052917244299750165620514518981306170007300748422139856399825929245605584458741541966987996470358585933379436541088965385732039284634016195827854495796825282888707054936905747853816796620549932989191802246183978458828332534254194222232867468956714809970568885866976532068403489199810876329203595926658412039039993399256525611768987670702896753512374894503169052219817890966728529637216242312044400711916128814060632487276906819718568810006347148648631077986947231150518645952094483381350051658298305726847874691288180699960776718767896361356852932472880168205827669586535021107804859928099313377722895593148901835468946543385718849691751697614731227765787170638482481105137597248165260166449060019231548746507437400337395266167043626909434259597862783240347898545255310419427001064857564275026728831377657178540367642561861333938376545201578608031730938471858018897764156640229094489186842303896103601304752722150571810977153538696237203990571046735541125401032767489065574484250404069636798943103100168860394942940615195259896652646960634514787616701171697532928364647319346013806697872244263045739907522724710375244921186220582918010250995670476865571222630368546906381222464746400470484005731245786777987614453872634222650418488162740041519218804839404626354180982692921033700476371867941903947979791595370862986805264765485076610162201836431799856432557702577641566158954156845598697988347841247611646601078806159624050801651890040680246897742378651919541513644899725543296666998763093344255998536941703448719979839646784513890776062493666256684415214826595493359533351329093648557519505314152985967152780141676708901325662015507890077856748324514779240085079549837460922522467702166799783769395268874352744552564260658463443304514516771537691294744396732197984918994174307852904095667197654183739696243004598769602632361395779213077764367992255011064823231215879389651604525687609776174420290539330232201156553689946840265933206334301903370536068920143266293492156825140446604960294652077487267132210634208011931702086294722585288904756536306982640936069289781432221462845138203333424596308427662090966153284695248248925018054987724161208695560334148985137380496858420399504400512505203905522269228639546281424516829899276931116188866547460833880733828150561394832456803530964888928272684128221484802489736876852775190011990384098957250479315521402000664417369511879141712925223096321894522622369296295856587493268625019901353367461130069920233802953955241142078147205756610816169266881781665703401227222252185426945329556646518077884673598400560399125996658952220029851723874526086867014133065608427822316763843859740779187192054361290131392371981990464308275963656450763878173359408046007839644888030131513787432599329004952334646603553684691612523602594809115699454018515575744351462636235358161428511416071459714692348909279295149376568240141507507130352210799482669766880188128283703496205724513816990927478459205128196325808887489553418051913128819710868137893816577000178200934457731153752820456524240134454884147721873116861646324903248125504598810621474045721784558428317319889469699467306245393032362137715508483963766799838287194113074076953543636627050960723880394680809377441292085382905801163599339858061764529248516119296993487905209637523656531667777486651010264403379706584898125629471591450034194307649351752553780004041507718152417848708183075796201309864810534481621091056433866688303379261007609541663990308044537851382878638208576734650499722773700002372149390334020379146291127789816351602347227755903936077007632928699694182240945039641432721978279356150232267569381496368887806771247494268784090387219704058672428210089692117613477919263133355822205944714269013481593165264483202268725224093561801470143466698206237252052452132315889010614633485799751619431881092845099259470653696388406889863303258552139485498918558533546603607980006825371526560662574489406100174880338885938807510955166288346528404108937786945656273994777060498055148608668481159515228803038560679304345191771867908722983916720528104760782236510190320846442721832882859523834314240664512679713537837524465400401760423335450456991560927652165503027426822258819844946198677270405028719879355255540157856387562279967418603829260216175802948230082732623025053082385770066447725619811898086037050513212742860237773414117731284034605009519146371657710562006323339327855937700277313770945526843079495677007251560422509052491790876082189951239819485399000514581189693809569542658836252818377659701000062644994632644662958056810716513427680878781292733928918868788428210760547928089327903575832314396432894700093328895036686243552931612671734919397399138741477687971252255790466292897910317960761852566671735648734043163193547659079012929178579599628230362911648543130029220668951450067065491174597716004359585537527170947072479105397764097878148235372661540985696480276583533810950567758828999758328209352174475261872722723751381844086080158223804118355342288369281666529035215689237650131039462857579051340610748257074887221766412585936090330098190450377003919427751726925974959351702538289288338634425784685790668578788555892569574182102974259246499338510272264480197903662431587512468923826449877680282475314433228372275480393078875387513673604700638724367320326483022083590786432254445080595508547499778464600898711030324568310463943777492316682235098901615252462602775568069656055832611979497902915593784623883018957121689098014645531783858906144798885674382741267953617619785636268312537593040489443519892327186045260239887546908127395529234671408769183717048187036888430015335389151889301096714185105263234648718192999271613857158621853722740129426198672393535448533250063500533709807894466211691463841671994753220462166905994430292695087653602024445107014145340102976546184931423380829444360319645573257278233979399706634335071698683745886560794354401375919266042588551703806327292955522471518816952736288395084479123791374012878819528440327193451558871367457016301343567635564216704869090711958092282245531221797704112694873681324004855522285781713848909343398878197310332333375084247095167701835056743950312859198483378613261528530890911981660409288360305864843535801866839705809775762570457219419641525882994904088451539401277295992142527556757779162858582226060275593937010333957568968216628382809041606217314399104978773224827063649732885953537193745218263637457774546882265996591951404433535960095656349794839644484112400873609932322825594801845113645262211301682826207324750912504452551817019009240123732453450804416861204796743367226826592277399525158549762023456655304102505419856722643970603773598259099295398678226571702360390724739671137295126101604589579669015422417037188006558764367771896369920403306183653057445564944280861185564671080620699781026432868346649429644691575414266012705796510901468883722300342072479046255124329810409121398588897531411017673155078937575990568994383828147657532516912101575045051967148032435846846000718932351482452843509472252399585336885790002909098063231467286213023610301549841896062063076181870228065356583937031784131549979389249650067031113177662430131698800619605369600524336015986232958532126695309500912580169834677404257384646839089847162213634298938476607227468187970285836061464084959282801241912555538735272381210108572419164604709153312949393442690980654399231144207404412871444799865942649076579251066410201779185147571001073894931505245579827771066606711128635289913708203772891587177738293116555394539074190207929197658764885045198867822520899299936047882342246364599575220919254472088054568078702898342270585608626818764222241986156075103551549630973511179742789767692660232993660565860982415165291277030161391020624208435114643297336506877282150156001065478559534641764858298925495214353031440773228218517712375243934135962852994857066435358642516125905648459127019293359456603581021665716335706322460688080959266622693649564737776928933521353928782201024355180831462747635406486801758650248640943291720471797083456289565345351433205460421062549472647838784607831680301243285160766577995716704392208127186847308984311953572516406900705735983385651167478519791561479502228187450700536918514482585005666153475644095624006115765735823632081660183740909451002223967390569778812526504575198340095745533146817461000620065909009437663577547900585534225330110340342493979994198762098008523308340414325081772522821073295822546560863944882576595965732985606578673018285727210183181320787655961173241596334963377450773686348713828373453172185965554199588816749087581717577755629630314092892472903057293241941719839094747842783699519153394779640311682416028510576443552127516312305586362241905910390042635537385324091053300085064666728093939723010840732510740873814112870443200821416228388334537559091848699697393651882982774973968710609288143702604551422342497077159396836555441572215262970561570649995049289842816295476119397777288384332846250580921060535767922242416285831150189717698594238284335787329617972493228208967363904913278439636092517516579131772209675021572668259758859943875434248317442780002782947646296419294328184615405451878794209488260271359003860256851464954558225299269220472455083264756056561354472642309894268401230582883986008395863200374012240308192848712569464290604135783575823482747516262320102225763592123928753932786219842791371408761645600249487513670773468310001049779468290990876542589779116640088018716187493032795535852922621847212667759416857983669982431060782316861119708596996681655996682879428733277984029546070958641062827923844698645631279778326324219098401507560195295531801636456691459047414964709427987185393140918090380009987448063573709613190420567595754269355713708948724954150556206706388434720292989845373709771257351039463068382365296523971922481742603722130365602032082384650197801583140157911181167878702989201211732203231635137510626988734935941243082766789083188136364851836372336612440486590014234505938255433537346279544408257548018737522472093599274307913642123912151229585252656161293066092675794375945852947210712831960060405435870989031709800922297411093219203676657352231238674494270969237090062963684796620480085651121616419291923543377582709661625249647150654705431906746433075879745377097104205750507325657336946768751793494544324776442310681519557734859787570442516542852311014651105099527178656071133350904226795870898358595076184504063329551973863373833951795254464628385455690284878256208904250678497016446463453816564785808478239629240551268211249015961103279060057428541252908617141521331185305817954335560594723535106821345693188317110019482785029626247631561507724151087292117708692619697049378498094733253681956768743202705190517037832553109879131990876871351089840417404469007040140009854940036583314920271720940426386340032259589556283494659659590419090338822102508061426608116438981677309038822980886470030362398242124222002470587451986659456726616214623427178686760773978145659295924290626393870890463257670819336064422099066103577896524827058794473230216609570252050995405739763038278436973545475168442920398130661148774083571397216950465630128405310719014379159858497680953362732900648523825625859611008809773266554307080665766752772102010256771925241140479911290791856904453469741019190801544264368592190463399409959699071156738759366610015806903965682466501931407956316744369561125025198665657037100835826209852844260462893591841945314122916160622277997169775536028311680381129726417683933399862524577758996368643467075029221970991628691099687804610871552789681366497927120278181669683613609786788812607851482324312768114199772903104936866311115928622697822373130635990506699209077337183693146890498158523057688486328923853456208632629955899025157196490064839865429581527863340499463777246690043918541920450286839885650479672021252487273441284132027619357910641654452636495441983055863690394396064954224641794555430859146009347046297950104038324925174022601237894982832940013115556012480947917473160563775081616686686701566015384148645445999555399375414069721514818695929790623960555354196475201246998054408159220098218687949228934764345786765818757762835060532820467094570935070438585932783162059937396336531565324285468721794089981031043538766195620628750692138427119523701670414242820378014628558256026003466944104858785139323335656085835487746116557907900450493156355429993194636951727267940811383182364192365346846494894765070736634735916677547593043728202835058097439365214278542147219837504998527359649756813362793586059358098750034075187673178616828880521140446522920122616410661321289886982600000918438569888905813686843077863667781280295548374079412188395858429176346774278611282827592163265182537358169261977700698732569732751200862116906050885986325629525038080066763717435687670220268390788858397685065511381194520569502264993922669733395803857428557976660505782824511491180516483815032365212685311717308486629069084068355516199216255387701340644621423367187852849890296546404056058640377515569502989574600348224589163848213675545425380097422330955487442521464148927682178274853061373298843866714445889831990081461694462234955904283515487115473509111850514940514059236620256967971901920465295998311519696839254964006233195175703970167603860079568682730200106054050478202481049864480310119743898090953253516409446965511049212139302671026724635425530085085772703160376318951763916855688952147130449771204591155318713745700670626592522637225143887593883653853439935015509424008922374331007991698522586728809370905851869376359942006653584523148793301946361232967984733212356446193063957425571752452419190355679207693004954457874350281048045593670216197395160995648579550610857082249429506972415977058409236740209794791916268396279502456802130019920959541956373654066085983199751846924705925494989101900783463365387262309059580007017723755219473428910260269212287312082944646313511338639127401833991648399891453839372570159510293227134492850626661881655981728067572939940476032691843062444999129459936405919025490193945829344809396890057087451475439713341514715646490102781489203927390152212399036197787408799605056005097633002541565805985842397987090696759167055571414486586276388892701809519482764163974738197098774643630644370777760597646010491614112450450481411596489618614061363217078904291292374489182833946320271019532347256271215646887553421212551770860630529919942890850093016525233157633376059170785055989054148646733379078069310763490151905927039750720711707762240063817480558498192849097043416394189119029749683085122225737044776228357101570247317164838359933430287455652854304240525371846543037394521955544057665802804389581199338842346529202502314577406600700397178449188437088450801912630207928165783857949110921787087194821332858176320764148713059762676370317544799229478051504639524270102954641481951306345898462205721179181970279404024897565625124641330116672945416029616847453824129411430637523392481567327193615179128833231279623590131001645979988595832171406243009284793112530322406835525030347005776859115375388504107718089046247659645209526829313733738307119650134142035971303557370838039625414446569923943183901040417397446515545968002593056333477975942294014519749695802887873474562333214906547184725121253842208584846831856346731644297431303920917551438692353501538685009283092400390814850488286303811182517575883529064432495548253164365413419451890101322116547597689332193930582199850566795669593107152250164253291626005633755490301697523404746025749669792115829231042358224809359995275210006925088712634956739162391991836562305650972314870167802659246826449251738094346368339176868194610732665417152306653768976287320442290710139803563551115110110290144727362382756318499936941594690543430248010131463383337941181453060057944589672152040337408760908999802899250025563573590897188834730872194562495903546307180864710604353931408044266029815563846883041483321632237957732650693364690266811094994117245395706919359925882461768894081664927400981645977742635412395053948888831940997832373028766000026730680502503263281170065189803687935015915610811327856442650966604659833143986812071598508119299050016193941408171020832969858453502231168899710489992586131432655429091463909388547958480580229127263215546671212359641062906199080782323782369100256270536430767531684572523166066026051561326787319501622808216933270436487667417564082279958954501792337955126893408551370419907154239620213228703821274522031986141902997161619899081980419885724622253724182907687349563487567268894846976160876698177610489487354864403751184635651464473519232947302761533790251318799742528836819358480324115817572708348266253333607391913054931358990173880751607698013889054398550102612478050570836636383912817821500510671074216408372320833073491055649559588725967145549751383668853955602697339921903521460965262440130105557154555177315058014795615653964698639631431607038891048863448681381089360489851811716755599571617284656081640498662398627413122947754070031376671763717009716906733824353539407896721079839941037858018587963770517180032988620148776353372108681060545383368762251760859236268183811949471018476152063044117489312849590968657533534872069290528725773558191607318478069345390665152485821384711376792798059039729839043086505377514609763805160560082313094458949422138944902762034087142257500442772544602945051013149939546497643237697508078400047254616787050935594715129626642679918843400657603696114189371949099826234733568451178834891057432591385473366704408563143432819952588630314018248955944032875946522115772684945105410393538284818511361573026701989381221093729271938532279979875079242225949535567646926679496465608436240487196262905371679231021042056322820861096838805761634118038261910469636949542573512439926173918086001089038174753891874778135367230231502277008011544087942080480697131264910042520014072265927293414297630745698324792384846024917647782838269710631565057911465255007022803902919049260613961138146323302977687492411598198061370546566216749148433343570863251494163953052425284345513119257277061833254692848919547093483875981232214369794168627367862957349075299275548083218271987768510222185078410830938415628801157163347330243184269287836154402082632161962791397004881600602566349277483256478087641926690769650207371727220957488856326636196820640367204429612544742148126044071339305761501350577982868492472318667415313646752426848727081660489835532198686495008686607083811092526095791562698547504971510027748708805666826093683313083734471228440256796358726801728567073275711617183750434856499252636564332317731193533938238197281803630053255233995394208320829359804195106153923569013612877705196126182884976758530940939401728745690595874106104394181122355244255436889880622671626969336269856745325508868321376374420767549988999450937071851059840103018294757439008135653062801674576298750541234550626486311669628138503397667029387000703954248513416999851112752847931855926677079512095345954608801403214459649889824610152050190251532817904124322887644472403969546712947533000197151771667220304753798972212359928409183004376505449927734172999072167656647404451763822564683674549003103283211857987171811058841489340830251161199614266858263519366116876070683846357024956921526547090931185757603498743457852774271897057695558341620898496295827932382211351147188916539871897678237182545750467544904521784189254981874253548249638959184741742721777430137268377814692232647753506091702534512535493580380112358620052305166079303499697385086227479939142367629821214719725839675293494687373617873247188100587964908216332334200461871437471514824508746335253231590196655086323011644477877085416206168458510772308626136761092327733457136402178715948212852745622850385783784035731187288782897274450130828250142961436377077467372239564200110794415032081073663799336165662097725580173071188654020126492719041861969488818847276651096895516062137545662530026390171977536872248240583313624124011999634682679290071475058568290084298899217042924234943884222643931534459430956057472074098326911957579645580419127894430260129749841973839664989176039693690738992757006520963243065584581992056502958005699083207552626035254252021188915603375594753412350424889141187334080041888947502296767849740127232802432749712438692108293650189120011451137983711066738983175083768679201893613186411376262859258379695982384706177690449843188843652822312278440479304458582495797027610474132035064490647357375373272625685904964926312495519944354169788055236315568174653875077178607484070209938493225129008067408176611783627071287376734690819845392972463909933629975339398084358176338214726623492554710672734923587077534304693651611374226734113790129048070159378730621363028502918841162167510659723808871329313759214014541992592346667095103828454289865678977521791086306097899945560982177637886648627131792459496552853637455840245080583173340319668664249567120823061944108785387601379780369234750309471331165412332489797950456988350157408308529168201687103200977255986089179858213058525102450431406597955830135611054474202880362705965452258183748911789811573448110992271536161612588929567222818632601195333991911898269033054818057301004876636741294685092858853800769671315506645364554446793247218643597144066402459011792101977120012994306703455327964468673330620849997648700977162743814517594644188616726410562594089477906278953565911828967167565456512541234033962890345321093665357335607599524862800956705352425685106402282652731313072259054982666712710801702929152912276724924013293135405694620276078463279720193363769542804454975674271770408950537874096487099581919589723390599952628042568152753122592317168919703064576058204707132223453823779772700683062180271184288975270258167299033492498690519605982653045642376138088677781367045085498476010142570714396885491310869372322475294158220438031795402836597054030306553623430533248370332615226412397158334830936392239832662058851956215680893940618395139784960483042717715421510727012543046747175813642219032982984080260935997007342345358610503055918835780289371714898084227462412903269940044228049159258099078762145956167498879848371627209687847359966530934266206353698957137343234112358460851133537205571982334446809180271635020425678072389910805990944111903354747084254156299986084891804430272220536811443813590118692994950925714344014260985711036508566278040144317371006639538554614670235225138468870370781173724955221775076603664144188954490423683871135147691314795641018510008036405713051028214604123062163646001163367708913227895874646526301565411286830219379140615948027989466048518897063931161425165473700099114657986049928645510682572088610727732788465927525219049496492567430039205896936971152931295335789695078109746096193847056926296658013402211413861232825401210020545580937619916301307917814057788230993323612911423924489600868120022567656203064869371832584599376165910195874856964039540781639850459648757687168982223771065079590247339334583306047455024556052876862986518694381694285599536924656581652421059954776366664751105046727252470883107175494081103028009943754835899235955628977789415340410855706455771728115094200669570105537525638680850766774470400502376396753662937763380547959557966746155585631109481792797425808195959241597112483946309181154727267610489203389556955925568270170458954817331303964574947783808590394244107447172765254909792440912032459705880578217815650830253136818927802589502142881743455672938158189171391668452614366846473989054964407952861452931978500585532552808713355227859205608291514043750442288732431368897554767819575193856765734208137751532598282177243472320419530070522317046344009533018653336886780882515131052296982051933179268487915090411851635176664097598077033774234502251816549494019149204131501385074046420608787131427865043663569499322615204934535882725461734406126347512288995095474236646663320297020574339585345649885316859953382398483212337320652251386296248627299758546288607438226104580141878135197930317062152740256316286111911864232837923163133546551665526334443761695212307380828712437792516669333918368064577564679133050383367401189656346220092804153323033474898881119520501959930550990786116959885256636989814585462927356687142529464724999321042335062837455760887911234550089492575373532378607967964291766522515978371402762734526946941432275340996352195621540044746781596689549741637746499755020925965210548363356619524766712625743162320751697905157236849986294958491571768785417152978813991289759939147978455422283447259389918876503901260049549965747603055283238678047749623158757135188892220184309712903279537588668716882367497560870518564377798766377753730692210990422471802869528360606076518772557380758904646706321527485844104151641293765130751102129152203209394572748113276287273857803747835632121292265632750873920388597891974520214457042171282110913118095685981442107553102761252928255969118141860973613380222413516266471307715116529591117930684498124427345651010988592132251089034086732568853416036972810230351627226375705515436159731354437694355265477896636821450708952412458244756006917008010867563206681816348291812816628512790375496976201506174122133873705744757611206054200545742084857928059935098750817314036952717370510358583886866988151384635415119045038406293069293137219214530941507677009415460125230198321908324314349773610374674824317487838047709796893862806729630391670538636786824802098208088559248129530697749263040416926234515668611938485022928797748617047807484042923253882723710407356285056131932077583747478006579618421290177327392704720433696543293592876621704833832653019748771466043593941205341583825505736265677236143651621125355383080785467824215030645900895312665761941535229194269188502688470688487067841253493566472684913846732789314888306623877433865893553692992498587294241593859064447390863977419704579298896493071256037759588989005391689830100921103324002927961723282658603842713940376461991060772197289184339335713268341291713350782115565741055555335810504738678808805082060403723868461518698140561667773878957295814946570262989718177006520893652704214899071377516793417291690143643389809213266544520893550549599196364758962364105570482383049455576576387964084358014562411989270147333762842945954772695389592798449347472751748796860704733500445746589476092131824045403569082680682267979063343993018744764016678999806732940335702267850594552586720182791223816850784970416154791998246162331303936117090413297877460151403338710663778957191246423050424080140690707868584748477674433354761671860019959258912325705843321565689514001764196832054219162577700146351795605064350885227130027212534895269480057723704948362073694735541703967787560306673285859979727670829685965074371241743817916534898809841853187960335869945051472215983094911485556841437555178949708871005861518042423324119413103143437573886458534974724658920882278247947897130317606261281718074470111528508816587462519110038706503435197291252209968527330750470216750114476263930415809463327064376064903699226164234004117087348921407502675015180902772869541868996774891814119239620921795759374403845000644510204555478975541582499527111620422135214430029951944370809602391142745442901667559412357774841050331728814089131249079099557483195329447546065376246762167165278550660687996105097395694354654768897000838959815912469240075790261026602659782284409019016774700240268433735136349490479194856368799928434113756313787858628315552987274324411907931982523643882081995395472479383573551579860696304587315684425216466469691263587713573383147187469370448760230095860227309698481419449464456899758104301551507947591845113803480684147424635284225207289664891549490426674838807601683680074131994798979564942794769363868821030402689672730715047128651201789997506595926399644870606751851002634159698374043353349710579203235448582943257675553920431164823248884171797396707227054805739622890668425739006481168581640400846666935777943306884448300942303619657236505388046612410720191709976096484445241802689252928166392464475238740628146665117442743478507518612226151046445620766351629846006977512774373088401626329747596399544051803048497940477541394237278091835697733886807723484606282440121890652352669187644954563977704641427524538900731017207285813728367626866849422277343130416962377604627531599203935800106206610761284566394386048207060266416570563806977132955210096625295948005579420030897959118021542295126941765320767131105660056597641989886337774843598506836292469861187612060615899550748926038958109445116192375805740997732492692888553362582583701687519320806326860768474572435713568661227746436741689971055634909921842157477963104088176871188792347278262299782949936696348272617457535735312272970738748613402377158088524996698478181452807109553615875657476458693887006301714197555863444886984214446831314837301184126320210433216838760938739453635651132471129149751984008691812578474701148190419546314320606917247523049252180532488347137087837765574567761741422049724226324646966709484257805432281746240226712395400898995822569733099875649048352864701400677740126550656834008507441892941685488124044413684472685303889641274056454927282151524018578032710929176434351284135280876406381597071614422446498015967757133251855028576510350161390121089636310898783233555465587055375039202952117766062686724844406390047719141460261425926774446064511987830920970305976170143933390272739255930198264857456548488423691565175273810157087224959950242447360000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
37000! 178300201036711740400987650311008502685156229566738023442216105764262413386807900050849332607152341611827256580331410102728075864201836286120953737399259972217637421742239199778091458036900496706086289275992449046540024540076664090253380118605241372536382730026370606065929527151502739065656080162595492489286804577695924780860679295502091585470108551783459348377925962433831000449499448676522555843323474491677089165231474208849309277761202916354041771768539819496206704933749754788240749961218240343872281560105716848382259183556462235942205851667590123303336156838391072592558823444856191339644576708170704791843168274871028421346781304213810013861506588319412563628041354138182132230899454424680347331018254827589788923702856916072525561002570966204649182874122237940761140644650273969988480881302866676665660455779360782982922631502532933035191938178860486315225684587914267595168637182404167129117561332423821392248974096978534536116132050676142778565012607764191091656666225293557129740502764350757105487689220937934899079108032689380569855954296410036535284488548137426014400852668290283691871389738778378574066322191962959470570379788062409081867550868391346392627342934119755166545731973157501520556045614785827331297891028239045610438367375124601163084552430707146254767044040802380297647183514151436032548066683881799651899082543908465645138341954836561539525661476840731969754551930771693063196957787050382249042868877936422576347503649579564243015569940477996635520556304875803030191328009390411410897180155531909578619435697567357514847791371955505073856659380184803928591083759040113197783273784337866093125715593360262436134662645303356251211642072915705910072799597440048848153544074331612039951423731071113897902263128908724526562560849098209968309471092099709105610743829842647603170180037821817650403468649328518790435940218124821015464720110903348565634079396408128307569061468410107219302041699146458283927073633441353241680992841381379528790644787521645622468425071058459568043191578789529955526292655991261093734932804517279367637890309204341927928375330325190333859088398623381791842360239650214238329164890557688609779000543180983007880781804562175668299470202979428706193336200719272264467071181123741472595326424111362266103011363377600428143033797341278102832801652364761985335545437777327924201749459802278337256754754776676376362546794870056677971291102490117499494242042259011394429701544842912556606915597953455247828522365059635431390522654412533398583081335670284708731357230467401929783883074193639954166519441650194499283086263933224514334654976296522289674400575951752117206318656885132589976961897189429787680142708978339158635858593824503359310354008535161259628154316770627273613064039978148642416099980112775660338446242236320326743953192061235208798047035839881610477047836680607986878600243718364600838877451446306978877879294501418927047446790692503345286097648570475125010058784198347629662866754801297012416295834446089487636244544324586359083157552530532841266171109088965518139893463291631929786615124602532807054995388127579098910567168190533099654893530540898690696372371070352326351802118248712188542694038859630863700797761294713791175164956996081223928662052887116585080600601677957814083267543145079801289788267620187117761550720809894563335612112059161614467741327250585590972491443712354695405041780802858533439285378043888670027979373531732713717416317409142896179231105892545724183759674299862020211768394664371747818607795769315236386620021004857651400761436527128431103041153662786070853233254888184870884795660064103781942475992644366624659759489134974742966754940043081532017137000578336317422633099826787753538664074517356206781846220189693545294378372221958044748517661693823914047041284278529290440702840246368207906953935228941540042672648368036140629560651943528595258277270383773081991780918807530672483878161499783740061411751846841333558615274968924614664517004958240928664691363764460326184666130924722407938917947806632845730046808927618987034589395352878228337499449016006170741945108438331761927234845219507824839134505657495478563544013655431447708644629274737303299707128873550077428141964076073823847472631746617864898866262211984025354161199319463538681863537290217884328213345567563069492078767286726342623272348869728086634331319090046644954912874824198818916011767017771168268623774590451238465113636326785962572044882892038118212555183994519110515854254076459802129402182938136608566767796411827761532894261130492420593862960878880335820100562511431833602986152376598952736466428725368355816907505425053114683095885730813484019922203267007183963562824574714142716223257899371443624412794312783081945515060310156287270428325061160731626501449456009284391763514558230682846803777845683327504498980594989066039915336975709453595471077545535381023272473941777545276982742612958958389050368072942785678272527394878157322562706289126253728192406669578961580718903835657285682746622257107951564233298994352826189657940860586626537931107001000160645629699364477073735346288165490637500592993823958017964283626686881966346452590370887305499906134775316380443668816496263013481788889189385788662606513579115262406335958115833131145341654353464593828954515399497457457745428089057889634974777720870420192082965306429739259570998336301736256761088935596742622217779085663724561972975364871800679179914894593567524058932418780338127371633868283305582336111977314522577396153504644930200071148205712237780061471990443510108414858392916809887560284748177506147362725488966239413544208752157105018728283668078960468580176045470080447285354444522843233005185208158983533043474673809761223081200847707123898149212886020391428030393040886281958972436272363230066785395837251933678254960785632472006602591213368664755766885255461583371081606071913855156631904389198263309246508522275471486836985093993773336132189856494589276712122263223414031191205981481223545379411399842629792639388128001655646283026772784445584416028832694298278779185719613265053758596338746563211388843485658054308672595872153039917008248400195344104541499596203692766246467229058102902178789997016397861638475782345093866331722496265327872204230448765785069933580768331679424601337393177465802753669552343576318540177770483589824474110410145519855201083747025862367024361208997364541269208021315088152936903366247368044534455256312024517587859856527725590602067668586812462971183064397533133271227303083185351216309892477764595546500381232566074295787404792442268986139931148635538520946759431844710997356680884532554254093924163600510437412855421275274473504154394627090460806356670783085023896637389608059681107450678177867727576285839122923621603773801749408144995906652386033660213100876935600285497293833248678163355746361774072920733779371045656576497968318725001677899745277101022326907631932619167631280856016812418336222844505326400217607212621079149167888417673017865581889663334619860798131871485898136786978143250650297715379624326904493990147638909167843499007793679444604833381142342832463224103418066088842494138027156480732575677652791391328120529189277594712621851748491402501648922652231614918870001044512065918291066931211458084659580716062283255273090123973884046197300449750013222317719413959221117736874503310517692920895514317427985880362140535345884904568139054899853837119264616990046636411244837363175446842547586468665501207797836781067936884771981539914323405440387395535337727599703480987174067169749197499515780907729858777758029341073575407770437540954607206358152898262764997626049606139629643902306981946099419482618844730296392456808406720806067577608412564936166839026830826244818772840693432562351595074768266286197452250423808707604368181458365910055877798026597316156121849319736774084527595165584955113278598436677597095373937717050332792460473990049354288445658722282026596930588314417607726257701309221599818124279432553848791601520848824799560041975526929085752268209257001335361226838456787625523218096886444856410099584025822076330638103391778114496309137417643094115012849567610734675679588658028771870071960635173116837387800246124276426170032984053375644017255714779233248882167937123267951880176024850324427166917791994694564446824013145919824346143198346724437163239138249530010609508547282175577941153640712072170342563606493390736577215033446685707874326810899928710311189409890229611597809243104062244081499260795602405471027657346078747078998763312565823320329153492399094628179334026510263808854456532231924636101877072360415057191519196571734082360347570093164359967876901468922844949702380244616728312400393544898144610496295412291050878753711193736365708287064008788022256656585629742152734098269863467563520416730379394083737336824557025524830287459275321810005279435774593321789228719481974024589062963117827079540984581605830060905181822033223507221362877191086085512883116917373376823631695735652276193823189097831475131533605765943382549268661579381459595559289786866274131758745543203326679466367017218110760242123511504334313602469556814694690780834009124490769783252411323867269556404412164342516529087142230747822453519578929769039792853628712244468865090402887640116144053835681470640719905590802444215882950724430962453065955452712024971731556800185364752879878439937542925114623381958035975200649018764514260006784066942858941141100087224089853470736276517908661788937330408992490981091081958644461695203504197205719824098902395489565345671177589144055008520817625602375491175804177147002483967004338332210693362344852639972593750149029133003201850180633307278529378064940612273209846202152280316539928934330882874370001809807659114406386524435181043004554365150228210081763394938803169634520659619046756585736707721973760779283284121648161944859988412305054271731420360217295548423518120833309417794191508751465041834293908578573134781470179206743009796916601734750321832112931664389711450147853164284928133636158052116895972194918309237946413126056453310409109714397781257555648028292669638557761149353487126622823869313708426655075217525832694814959521170580398523697004062577711955871969278283845956989711352380238488632645670871034057730321674890444459255500863752279738451418763505031075530557350368265496895714548902535915254936174053766527176370360239309793455585777104325753671242167850968104964802649098203984634247412216879847134428308430773274659388137711857279088461797133528409293217240607523137343298339456449755315719851365014699118410562198270560827543209094193325573102390305575997736537401706878877255135744203258077546515515690870617060577637548430258166966969029415919092110191568111123095995261210204436244389557315257020226997586255062666326383177157689897072352936931666236026835991254136365480201468943983016298124763871666103829239872072720286229181871923072900018566854107083305939100120804154136692319520638164781176550190873968410924035730551274135532415259039183959864356792572779597439867633133411067262938058764057671271819247824564473750563897231725752881370978731750964555856147337928782116945416555599710962337495254564918664114111408467152041386975095498426894480730330577971264945424636363250852869756477638907689354027790418448470366444314369651593506134707279612426072809123797591428528664838078657560058555166021737807538810224525122539508494216202262955748262226104483338127590423609821501246672351824844347297947932921819794898221734924195604076347797025588724422484962841088728552962477004170896085616219021287236546462175856010276510856362707948923157185297408069568723163571126283087541839632818672504716548395567309542236160099205381984487222102845977241995362704786632727072608184162266672619039447418653290004150501985599698874249831878267034990342691106907631197683427393402366637869241203092377557585996048980510964331489728511481410201022862825114967395772273431323028184291353919875019165286253373355793635718250112842716073673626761268847661324077223608730539870785196952155803735738959193682919408497723057535326581695387301405766046302008241947959724351696066560778991042255309736364567736195846181503191499349454925665195579361620420373776557409256118434456721268118992551891094271084782918545546988226614442456886498747237322676420115470604653971147539682188464764225658800696367123513063103617462675976241659086887120581121541848104161578797250075980114701908086772520185366809625398840515851179528706351875295305189728761164998654561693061580241424104324203501556785687101913940831560178091229874361402360512272186630098075252336428609141345688742892707908573386121533007819406408979881454380749466000849960370503479179805132731048958447857488616342880056702608457917625103204194565857116867973860375226101682784558428171575080421147690052538193669051367151823249883535116534314941106543227553916206896614461245748060047481341395465089684567858479201674716156472073569168415953890523795281366035922521018062517616462997396842848558132601922272895312876309299773548186393652646352861543456830216631423890595695262434593890906924243482397097527625650596178129196333082560826456313069974542041745849964116873060574252788468906219179808613467931405927077238253946876304752215885052112938813582344457163160292378059855734023898207079365307957807507680418735865577769336516739767459249603505427870805325774793520799009544138931410042061208557685864196661239462110949139423708906944972025790876631451883051304173112803429226245815609894938976812138632603173369279394783664427346736606294387921265921291357668893093029846681187412617018776888910501799604880545058373330538915716714566739741703999307829704987348666773779277732893815564006526430803634629394500130400484234969549478422004658347120411073714253767776800172816050158648693655041893907486964291376442678028006547207575548739735960231222860232771112996779182406660147855914099362401483618395417010561826144977567238912662538978543402306727567463513695183764033355823156090680537934849097524883782940257396718832419974752872748805101716815185768389343128380711617339747756766238432899587559501853753301957377776718997762798441938355703394876076995758027930063372301664531805613306365574057230227832875348537127286315144153469166881957850490036765367326050938676014634589775489291217143075544350787580516827744854418523202850392518455871385777184961815286890032085891188759463225473033006314177562066713409198277239003484389238661412905837267579840775998283909145881209522024403553599143113986649453759360980800754274014277558193502061970115222310047862458567932797771000257353329951146207931414025136146038675695976426529409291617799960729532544150840976569823854676700615413580977368080882373461618958234793719355968147999941129094367772981197694489505486248688312472778109730978624534106117763858037052312511834894489654970898417626780161273161160840467663244976405995330475376367560118457294657060203616314076017515372906259318618869217911539327363712581103537461252500808433121453372797439272933169058772186744104288801660143070833429543643690935218780149596561460843272917444707437436327356915073102692949182823506372262474026076707376160436742488606135639986619579882448175841986207561715594559752083415888817507755040688304137253815417371183427973574609146962283550408318198487429421754122419433490389438766321435128695943745423006246194083577784909900804743316964643184152816293934299873943090255626624593764293498374555479604992449772975704644951512432208290241323817653242368917605746583453691640288870764429436669935422441274444470769028708447661702788437133276137218153956961799183494265173780635444032187177356489993496325198888138326734399754306012074164427836384924641852952577671174021089964606383781885192122179375725556961861176266543774574514827188360769909525756268672700209259515695763045270165764612013889641723039374479273937575617429737362443482937699553496332080929008210391095115338408465487318066047960101756610126091906353911629827419817573139963355504874742437159392654501440594080949826428603324065740942441733038322420778535913586544330500859867874534729756462913165535126318273295531424182024935852395634714029533361267014710636581524728053843499594548225963449679856110999583025668539492693024220055504248817030472078335267315975502634770792852647454301425168365413468067059840010367248889599136998256935272624810521268823883260982428022742399689476831505342094063009204678828248350353280201790950792238581783128828355656374191055773354870654616867780096357708677778163468290483578075968439208184596996968912334805732103376840910657158732540636141302442912605469332941505936930616678521571689528556942507810854107155974739466553564697609285352907906920483183391548005130728507691591358429937413477469518348064004429949913186643946880680370976242682911540534809175012969432996187892679920994669774873951062037734553413043884559449893033056189519372718917190771108477232550773572001619348698857067178282819135239437006745281192413636065377705052491457896799694298504370442631001287296282884615977856785394097657055695426774238480258511004756841104759461796655202710263385154532981051178766482125335398418787471481355207444005508404542312821145129205163768222051306360108845078603553441285582000758011306142273187168853711539580195304802852558325260630936781081122516939599959896841730401960140600949244254064689141758931496904881211704639360506032414066667732796754586737017241484612350278953803824740875467245934581123899214713150839122243189363226802321636150760530428252097197780138788854087412823631836089984150495998081314202093747450151376937999466612997422399238269128096575430191743683853337191637381357378621146893833440477335792462420222051315857936847649900013144838003263210614985151578165201942658772546137438895161323512899688878808946620371851547642251891860783969645446699047836846078297411155336145463446802706578899615500029634793827562270200091948197855274277462501478697676892073683432732022951031706820720067992515357565733690992622555303810187260785961607405294269990568756229849850042312603762514365146020284204011196580945363632462572683564672548743461787384787683812843123530966485994349626966590994746376050844105545322349164888728460393970771855446568965132210532048805364230246589952367993189868666169397742117223378313095137559517450171548149770269015077760292519760026386741525434939663947073507298134142397129644708691670435205958819662422808811952950383598922145599757913855754670735277656853333291524361746176428068816146718345130746640959392629963054866776024407998040380290742309887135377011454703998243889838807388591982741478952121587592689084246757456439357693635392146305410257633601959955207897581814153621862409309136512588812121801576454686005021085724494310150646335820073332940810893179061920035170459726195705880611371374802527327685036715220363738501607737721153237844579850722386923657199368476579882263111681728220575963736937959954873224354605578414779260017987057806047589212860117374212540126293926906401368010554854253188425427001974606445551159461918793662203727092682644218288399024498751690578533324122574250797973252304052127227491113030016296877312784482639900539150177741051477391384114327165895584117433960367533662435209364013660176214012674842524931339800117087159330266273034533972881353832133218843884897982873218806108770326115607971872595894296532251178175289836256291331417078265289920342160672232018660197739985389483545750817924994860239834587315144660211805429098543766401104914832056086330607790603069361795825001483595600740702463985516608657506984199305299598005882666968507630516732785201448054204451347921852588272093917920609506518476969832526967549540008723400227723791783606905822989827643268758367647727601145286004837852358149475204110232770017756506582811119150261716815554790538948990010131708069525057512063249597365614164976385704428603425736252990107966741970797387401873461481187978450802197506268117075783055705191045873608391348459309065693436171280151214495297918818537823156214700840118237910123631929821643850669683879941507322540208387972082565960439064199594297656099732106516918851630534386526827696120849356730966160977264948958774843717091658086856269069919471156324162986364689670169448650047243616801996162360056784861238004497181038336748570258741290081160485023943089349180370568227096173631180493136467760271333368811998447729717431036447233875055534552948624577130048482964462654734544667066272416287051543871788051418632017732697554587689872334155014444312686462220062054661596261902947868503033885405171596858252610727531280233012025843035534853260009931463662936026143287072064488251225112633410397395364673174119201423847950892875860424913209277375775090725540602161705036220827677082356547168166258252930039243180256794454610985364531547324492573540351063020358896310241548892098586008559703855550478203966213406347054851864205363255624214477168920784034596579639522792372403187158349091006148650887943227289558178736668199545283069770001255820496629674294188467503147987912482639297542827159771589958909241909654254074924485499129397859722156136469909920567911493410357360079551977077633445290110756705580019900239113347928836452178941364726600048438889178268573122588145095643160642669074002161937277621822689665797843274611416067168376088143365768229811998486356401191729241196720016895947058479466654625634878916020675950173843326171293129309965844361846994564110190574597967305686994892209448369969936952737854639888143063199817824928657145091443309829545728361643361586634178404725600124152365273629708150113314441110656968888589535432903756832068531836996328633279736742757869928143509958599564552726911019865913732492927453847294402182122781918609658702217474945310638463420551907488320520030999385653864101636828499983712410217913558777314325730263415884017702954208780280941203677434894417327924303528892766214129574286257585389231338449933686882576548913109804927270735545697641059529957804581225405193356657121242999723415880557834607556931180065838723106765936806185345494564824784578951576234195764327560784168904254098681956821889288351561992910985647962694349425737405964085048381010216410838088391117359794830751529546295314578044063743914120066535826980441420959687934242828974064418455871429891392428470517453669539088792002315958207912202026791299781037820093921080464055819181343669238226328149330203651996527805590681586996275290687519725385223506595867761270567174145838959974459570881198308889021534422329671644259816795104578576169420748085238435798777544739673800607363696719344624617333798271824718355288842864370827494569956253714915918058413125626535392774222885425073350878890074381918582419157861234669268669173275777686279143711253205384190701238001243612812942202543049309289754213841404395366527132012189805348878220258451166636559699766939123863774057772505857594806556595775440838453906840088663807417080876105720773969809493789527813533150384025027753128462467003323849714501195058488849862326206431574475015572934588892966386237976930740147884828867361419623679294192643721152305990797305996544127856267280603670112653955259247127713376024009199988725556577212705867642007961593973532576213050183737823003730301419867898563459439705480212502378844453411229007747256662209757387886490012551216093376131355601171624282373489824495474283195660040455361878963988453032486906740203319936119902209337812989360866975770469616726834461433246253242038808868080990721726425134760613179280261669564058930849177735318818969517955694557149231164417929741428243815025747061328451295110376681546434279787050217364706487237014260196844895025905907592194727969122974080823653771039294280891363064399427604667510505448103621566653805571135334062054161224288670854661011020013532952563953499258278629255720490287353282802554995779936913061644304176764453522180116811809040272276568998976872350875162690196708568398970748948224566072720707782477080885388216595486604024488219546207584781827090079131152047869565763364033650096470470633171945152070706016213904459234668205532247054911637089778812015950305074264447701477540769572282239158455402470753881030872798695486467222921028027672792279246993538298878058197750818130919271524748261901643559318189171440208413299799115146750843756862188262546528964805286660041050243094422995791461814750013317326217301655383633524997984040109215409204916542635981382941829656012291945015538061077822362573273165476676002721204709816200996921413251423262049867898196030591545412754841140120696397092081359410464781899597295098718840114415075662623391852803212681820035544790696784702650972128652848208774226157534032560447072526902860861401882614505817889083507019217778981124185736850760296337319948450515515340869584814240499218329556806858351365164904024977853597150497765190623448490019622216474079872565542947973263270863318789666792778138425189528594687908450323364382932861724639279488698976666252289213234797988693327876093299705893752097585469768696117147161352012563714463026713500257291609838171944727227405932855192572829171145407428954378373908327543181767015785911366048724013924207859438514673288295947617838639176285610158974963767669006576445214227406383085661007371678905385132470776308399601280309143208103920489895849274609401737076046038265341819743999062148379016898005567136079200249217785798485954013789251851747181060906219217149443339928315459941609698114509389348127040201213414532549012974277386728094527360567359292345772537902319472823708906536353199189955980130218196919206032435581591898911178917564320019492848373124241054448380916045952390724986745325273042573376136265060271695766269051122647281032111744580878412574207280351325673135563406909883061104363646573947239565326763865654493807872369584017709265609042687105117392459306860080995150830839030565262856291214204282296637577503822919338116991810546966563609185849583306922252911763089490066296843672310803159291683938025048018997463718475703286540003831599917836513066136019852597552652643147878831092316156680098499781591629546965907817502899671434688040635610990647883597363663206702441716114442949729118300196322850019787732717077986869453418500978152075249581166208616462373849373846009429316939174660725912638340331475434249495566093113765104466610592873938060517264747645953324554453443213526733014705449391594652334202299284071098857846750901944346115180880149974338597049520701821770727651386061509626656794075207474139970987923739369229349536586130635235489289231913758974747640605024707178434123108947207300338096972344326256872109996617862650795174968341342332836614009880140159261931453854702164181623381940189165506932667612931927939430656678662071523563967160345722385812963311892046758886610501478342634454624278544913623174984456323472604625511160740957435640413697007610684845489762410457576857832030360287574283910084853609547976204912189414765874377274868474029340208401629048537156618162386970527693945618561755578748494802206103175256974277442318159828919384457769278977224690435726737490112634021169680261788229731434433431451849892919527005565623695895375485102469392764945135570477559276143726759480132191310942824268358021874046625656578981853995767553504485965483786900386794976090504055259927271887385900893006679013677740814829143773407315712772537743933488655568206264729831018327970087648015074162989119510579764601442731403233746810936780022043564749592350773794562533020179179330105850934696110213694585754170960376281218373855817792201677057045057731251837840886847942887976404295958827201026224347873274334071620643979979350924542103956970859109378068646426813041595442069550774256678942147921617045463651140282850004655449151822880140718267744651156486022490786822753704073682806276039397228978543167702427762066260524974100858034674238078366944463394641278544045331795664935390261664197180885095745602705279543437145026533455791162336531265896319071008941338821637657923640741362057093613119309912496132175428714587089624927763338333690397147654890522966818831502898044414236529358495357019138281652789715349640490852143768780612446919599620061444657342463405311770851601240165468111850345365373704264714790362776516750447235081292876472754047782635782888309435453438932200586973674349675109544444726539903296690468403267610860312170873436171013206804906303988938651790595102453777455222455922632138444376515483353567201649847907804183323136656307674726628339502259972431119961046980029935657517655170805131735399465052241991095267202067148568799802063894431161833710834310060054993953247316710443641912510957835839247010614948803456760843051277206564398218172864168227989810508762665590004274476785966934072555897229930297619873152934544987030270183967219472504608304409995258180902450564088283011461875883749122007734238050940746104208621131159321672597891950339453568008363197552891000034162446951544459174330815774513292579605057067759084853136785958813744510243668942376455793184570972777442293211454873937242707532947375770640623537301682806522986922335448711884100900105753492579446080638037054590656840488801538823889368168787132886148489388921527769208709857715367059339037402779149604311971994322540311207118635547111754073277228283703728930047251569333535235491123111196721167023841570128155786986279071030943641191010640035236151922569773879909968056104807653697950853020821602469139594247806182264111181951103058382928769282328319654565030602994092264010321340645345977678021559225638203428359837739669469921189377119638390680392725401109285051044183200571679836321056762521641757516577893529412007301839201500773543348118730841776100884917517986432217175290616805741289723095228453041116759551128551687780212613738491659599876395126221981800019535558281106682367371708108840972905355936483322148708806959810228232717859469060199416250486713235861206331702683743250219442773645744943609850671106783965781367611715914556789111902253557044028827629800504035533241822891110025882657491428213024249621261186808618323621602523625587709333089786941288363366982016100223504203810061279905786315538320184263373030337579402800445964386595612202775375819987831920640676475778762928993191775828043087155939416805576321364006337219034699286976948265523270832691649697921046760079411117246387117689222617697944499727651584324092060736612128440092704226378854291101844095270692875232935886638613000548596245482571205076986305544818461865399983083322275901265685473152359487208046320796361968464467473655895304452154296553436270811860928573836567551564120298305958530153350977504258988778970017333375540481797842636202732006904006079067011432035375271183802957385187218255621837257564889036330060993085347958544794251874997940750069882864229565863056236584551211984206398411091954391422086920011609319089166400190692394112418033544035203688797358080706271587225230097964755917384907379384341228730519705675500125176245229556783276683860417817591346321832779083745596459941223385496954344751240709937591233904667562055881290987492046804336737016754931846527407030746963163473486832223850122626734011793513241869448469963019077447520565797187153952526563555568486352552902284804074817810308538825114108138193330451948990558922877815057653451638664291734621191106323027991600910457432779057403578080592785411550296944487215038466704495037528285098419524670547491451968749315966265249340149128584229354055233199059615352889429782167191585393152610057509320776599144096382858826116266906588499757772476605109180855921387903219480612346562355766099627871051762836259411727742960457443491237367805467994725167749687975588053458163210755037219755418305336772226476731988394328909743479211243817932913575372049006017651266158132806615222211076360191275688010987188707807650622691961739632693748326164364421109016818498728883997740448168171534831362983563773179076475213307414687967747668983625376055330011456507374435466357219881002924667277720520188216570554609328812497651506862131602627553926160930096130867901704654277918596965383038414464970266357042634509331220375646919285444223820761055617815493877948105651028394438736846539936597609096005956978052700154380159355593400652918837234163796190871225330753626482228583475114718454819517279667206591847269235203113578918331454377435247961025850058108279196426388624405542422973622355125443524325057207901118568012779303357805396703039586175861659046795508010306884924346749115722451145767850641325717861994083632451163237266730267575469886109181898978596218904756176295318132888106848252295683155470315859122413889486048344725104407246985013413544912884095826909652744316361042985761547231980011709516025045252095234610092171911045072890510350579055411352731545247459414029691334544795375665816734389404591831109698161082994777702835893129512494590762782899514982475295622417622724607114566055066700517192925372371452428636265417559459274263333652633067943989947389382353859894939690912593748587232726731411605149332366060895716514881980144229669231270120793524442857469232406733627682519393966202528013098093186866548413424474963270009404303513668823673255975487019191176950930924968137249558824698457555118099171355127767520597536992410197437061557860733060844522032095797282855651192879778546425147099804148479700989469552912648919598192718726978357329964453883042940589030092597629420970256409521297102452612304608292483216651078335675047706757630660310706872701558245549907742906672602114105732105097962352768066732785730138291095341046079651440428417960745242929992528269642631984979591387638069617275241661906908495415975375646288794117603713705173061181704734132118678324828799076467915014466534467361948882922196769629155217914216158593364599604510055812191368564287058664347195780777604059548028425826667727471106426420735259924027461362177771215633271771270156426929675898750653754295570676326584040296877063399109022002206580641624643401148805123660307607233904280551977004134626265425981807500774058124963532669844747288205448281218827834357199049766859317396497469686718515103945626141406630579303258870789284008019712347411307039647225645773201105676226350619995102592248200194970381066476079838995708590694082965404037241652746310486961679403529547231289517251527690255624766301946125523722098094451385586232633114912336163401387883313845390097287784077145641154403596902803156073506015379376096902259944025194487827870223569326619326411043572343793527513830733847589158731046878525816623886223931646946327406523085201715850491041582405331709397787744220048449777786520304937738466681897118119215269094545276108350454547990454973709249882259752572177750728237709815328122398315245701654551142950238641014833379868385540130058320656638847345901399465819867085530359433511203241236861466278486619887863397519880083319264887232498225244450794156677792918111813109950106273338251154445864915036258241134406768852577945537163590262597291490595397137224740571015888625567022103324243720608342095294390346351509775413552913470079858187863796009367095419632989841335048110669850206423146768968378580053549780039005043511064738693677866179210525214625636210019428751519395162615255288032028955244187473707849872725653905207646299099009881180660067856809978720714521439059291158824717682902744709766376915146810899971113968716883339155060507460105038088419167085108981165997186984926948771045186903581634118569551658979246740779947675900141484695033122444185158439192571874306239883434768123739720676798982079381107935271202343375961827520621505876008398444656048558878565930630160782559773977465227620369523652911881349953400876286654645166553799143302435581317304059578342804835354918256727059087606473750935636577855656551551704922063591553510225267208869840930087596955215869467669153194690872936556057474599823411770647871536671807443984367717399809395404671744728481388034919915890740670428574840688734693202600108331549040229407387370843586597864020432979728630238388669976219188312250203217719974266094757816747571905071982565206772027397695441904182189295603929014556975955721123597458961625224744728863775781740606324187851412807373557728051906356465645466883344816896884735747800007840280204056181050206959228989222708072037612884665962931742875995094575252241913529316220455637031935906407210376128513371230130711894757412953070522328740074437302254895631005956452914389422554137209432720755390084880846923888269004560299738119890124270508819702801864426789061146038760529743051319212440801585576218513638589086237252348637955730712824666929030242664044603941385073057801575589892875089636369853005847566062979082298556844111463185658601384543156567981545421924479191736961538518685875187411538609342406919709334141510275680995192854590149057277830978632595805354331032503411709350264590531620944187584715378092286037002233184103530814091681066986707696028176081396320161167916135836392871453806729152363270427787740219522617159878101281171344328204302417013407980851522361044848501001628834977209419833650068728056878990249348907262709825958913314618806743457415824735571926682172184620196026250736405969798247801522708004862603025406130835446060355725025943510540992557424375169869058692691235258673764234621988768079169956361662554801953852652894229392663913807557746239176668648843092158224633351576587187451937450837190331462412016522385379683580063457636046747774429200946785919386211661713013948467749619339167816315716208644041772043223486329773576259200821341598585027954499690386638905976738982672920308840252708573808599921035399089748461556825339179594332398382908243312203229779703140692542219044769960281786117978547385945219960543299276634345633468904014903857394489404963661766331946292722011403242869702447908730626988303805836404452817519029222395785892888216756408574928515945490209007708994630864960849667383994565615951634597685763680856814766340560826490536405736429681266415358577495790015236978675829826819392875994295045095759725640857554531572067764683191141654397729370036742988935589730325145984082524695849430006779968744545498868409554819067302072465941563520022259548388916039286518603343867146666191969384781793246303761660319886701380484862466218756844825627488150736625329444240106469190207597264822564283628847411873127492276729856433772155151833145070459074528287528349611620290460990528199716218396988637467509385160135503293021466349838973349346382412969710861548949785456166558381992166938994500701548661345375183527649977046110588001252564469024206771206503787309995192911625896444540439487891634383575139617082399550682478947867424882232752135297689693230060990840731210084596815108300602562633622717644449081408831004734974541568322982555599753760840753589534983283390105060381468223075212573492074876679453495975358041285734853522774905146538851309635940687226450322446595844106562133371883607248036237458128988546339464283048431086487552474126488102620146931078597847761384950480135528542785223699780237110492828237831862432685083514040855191109980538274890890085332000911257124835733230225128492484162735759283157626216345998977418254266840164748584435213243112040003629229811326376553774332704837750484663864956579924068315655528020938309543951888097841238526163114632883925355755333584120081156347244907612754015480381788921062279405052905685492736524750469631455896213380849726219657908137530984300899764150631322512190221483642733113803509539422511616682101655180023497615470949066331849171617757445367645815847623462264455141637495697157196644111511124716491348818198625794195526013383269811487490890746590047055427732886600069096601225696838764712600111222129477951841696094809345632158469858464543669904952311225935971583695369848030737534684985023174176516637818207514820885351587419784497360059850262327427312386142264223150134677764024732482749669793164312868491016170701926597774191298828309781796015895631168784775654535411615793663490802332635319806576213113838096133335727977543871964468308188013016885818741482103730323659041098522417278431643172999089811353185190010552776528100340791055229217005474295848335685852772965745677153698134495886345594671373952322976298036491055459448466477546085880816690453573348151676289057002353639775205913575778480429678296065345459226377327685153865601477199301646825400848997945122616632116230615580955649410517242906895892552439131524253643477407900259494846167111552997558710016558931720576803759527227500594263644943092956279479627888927036802956447597826618038158463103164902447653044243187354426217536421797059331100581220641019510304242588534428029866784270612086240889107140855695247600412188547623152044052807257914568896067883225228058559519968705179754755869627560639613129035078785603800243692185027030302459126138136274940926122496321417115952829589303740047227940747263769944374497244669348919034785230740084702541888216568880723728777665607701035892771214929190320411742619434700807453570003894904120431417745528023294866747633057838918692837801347732238805969908153778433282310636356373425228152265475511531931664305200028750569226213647965306085027765520980931278767854658985442916369010621201896444518905796324245624220781262242917955943406953604911231711207122749833133911708365761454193563338127217998083392058023950316437719115727666159315778002138337968633036107541556835201931112233401888048717906942862519096098635871974854816308339167853414467756560542555948395148254077149091022928210132792290625728050448368236549654981408620404333865985204061920880737179712959552541893167567227536774118955813426908251160356586321395424140515524364729987450057629045866349548209974344337958072584329972832375489956961722294018816017577668276083277861902926643352910481127338279239249016026324139335830998417372677653956184725736173153395001356275229195583412092084052591955235193420818747213843959599403160016239792778164207851901914776887423890945676430671378217145122045917268298863183436378688406367182316171076029744497538040663583676245183952612099306127115784344753813342096761916147345360943581024803376242841282181192262374693831251638451774539490729450282217974604524194467742906461783909542525608506837913329639478072810065530144437436942889063874011991757696733878221925405374843129871847212835563946887752327533303662425114558921102698125458316666698314988534727177665040588245558388886035352338899690895425288740816234360182867895956084720171472665919893727067092607105740999347504360816184929559799339259647798779266842503185993061978120569247160065398049187108342986911397360843894834774265713350344966059178895079435064186198118922634596981968723639802697592771330981560103016446170967890665174043639289652302603537215798468754004193469430369998941022875125218440851681249447710726071404932700159507254465170502489943247022001615579266959529333430538811848710072199985073666539089458144074350528584006103186686052024937433414716254104993244585275522102608931882948184260950492606657668618882583013212897779723588504499403292014688427579537361931334985262456960422944846252664290660664864730492849150304291039309186727264872298996670037926985576646496906826615705008733432951100791498868535016280748024409529007654295748860104287885314478191598332357697761204092226440794969155169429069315496914411622921689464491006298508056918491690495531658107814633905941337649884900092949630675603992314358929339886846854694404452912884097053192195721671440147290923842342461089330268297467766574266154579752738199115263597894782414290206549777871420397226359840188958251869077099639007494750729863719096540333800888837975439616190863218090733335563476967842440725039154651872243206592685049186074047187107792622211669522851538603901287348787099871716854762239225915986936485991873048658706990958797104535652354896791115495585040995946001563960982383067792356738491453544547886894808605729296439553709667500526600747569778240110766093071553624000797910767441051610273259065193916171076938495534702154909620400577565568068037031936521686124450504490646353900504083288720913882916120923069697917976798227700685635928195694872106724103590321285978413231434240057807745869698606810245992257192255166844730176695663685620492870772298198338428635020194627912612063312324288355708863027971813471894852639690572273750463042989422029241503868879722189542304178628807523500449457767800288210844940184525183352870875445461562403307586753784000924507347792288200326772778737811888241842492135683085415605556436207118373418342629758686461133478479027183677821926233895680979763515050107507076859567148766324380801478601425347965638455304690327348098891695385581615684971092362100453018759218811989145433250111541429463676607486663118444605501140637429514507252572246461744080815498024199735616729189968747460506817822769030808777780350246683894168740994621579918802382266394430819431289826202058527515296989173298033963949355658545599729749806834100450285940581446103292331231857381054886607508202481545676998049055218070179800110726982566929282127200654123970272604289056357351213071352523932137416357198115236456886823324693315998645490751625084524495640551466469310962846352179675360521223006407137574798872617871601107542958206357245135223736948351565650061724980093669005338783156446609473991286894745378977773878919261354278554522128802606769608942777377352812084394894777942303821589579912115482784927158712786053239278831329675791664724126499153595218803768037640923606749378519768990279598934414529977321265473137700230026020050115314811656799303609917679171048250583517406799024726743097482935016589220615819438416134342671128641789161014430640457979923105814823311540763222953361757622198011414574953554906822147368170989695646744122538136431487865266368190782570894231076003577727353274369675332013146869869035170318712726095275685009076102420099748306600208490493136554933862662119210074155870965644034601219233339630905559589705164174089752782867223981473801068433724558703939769357311006791487320722287417493874878661851852351340513913997950857435055204765677894800130324534647540968633956131726732424112499140117193542690973784899178475768925477731242575280287790122302118849053121107930587584580413713994251028939956885115167705034620355709503306663421005677490691377778932001554235905261960536903535142533253212157598519517712648982926232454105947480070078133646075621480444956371915364584820168773035462035641740574628148420386380098785328689057571338698212909551328939050837676565879649885588894087950714900513386994467738198780468772920748268332504775205734075942816276206156662193736355023449618193097696329942129852755033623739340760493843764090918195907350153183389903202670863065120467645684004114470708055321810479407390804543883507463206709147203582742371180463285860072926180952374224806494845178750644838048786985702312849144296308691024302540046430853857679084291894370013210644648774500473005126997952386775770949398428206533537294421058708150108049967176761282569509844602145259962297845886342714302795337323513269935900745585584596803866949279300421889461545555993682227233743802264474510270287933258638665843716814153693713738057642544099157269625359043825186924330927650019807135566816743773358287749690446037865994800274716214059769755144817471839821126669932443491469322057227491184880357423377768449265119459887094372995524698790717980087539861112252615555094889980138092787423198407534009361146336585682993784838785713521396305402547732219558615212544777567452546883210070713000515664272912729497493311484878206951087761517677590115569879842522152779926289370114732671427174767948266496601443064536219181353541354261629974436784090392971702789882195138330134141834634545342927020592120702645735758395052793117536933587955662945684804592676052725614101994614112899669563208251124173778925388993063850083554918611795797927617278192045176968707251555888610811791567694839275000384850491946894751639127232733318834440561321981141279267823423949983333632606628548593256928578179837433273247801980641155506485864925042114526559765946009711076717695515048423263726243569836548062657835402308382313145143884420971464818290621541141112032089397693828223008466266770433754737721904712903832622038069175293644375493120523465911640585973899182785846119906351447176763984318891516882155996766205189865986175316435031939446555769043635368665359487811209273239773188183523252753386812792292775714509642731044622295683525711647076683145410044945488916164131867216459659975340377533134310038555958811148827525657207468173562752952030599176633679758033865577967080670388962171187817075547153466951390328675130283359248828110997974170824522219764741595499262893027308531863573023193430823491826628381067720723509720390793714607104952783418918431463938134938197570790059550936991783281206277340154130906885850280055792709501959495297377346859477114759679629187860308177248964737158472694037609214864818013420045623214500618472640799825043008027731362785811942196012900824728912829922365245709406071607237719991078114126162162809890007768296172441919763052221365363545436290546621989252644003832982970486311448679586328096365345864498374618400792882639424163544469649307784809926499045662068488402821526588214155345380535167985852428613830647546847269385475804662791824402593948664357033177481875947751817914812360561381844650973205966198752156118919835725236348735502377892487858015388473775819481217186047625863225757947409567012748758827746581978753190206689603704409232874015046922979405575904541655061100059118969882289475432040508250924448559700877468305402380309290025607594762540618626544879120100735560018318910121595522651982718367753191101162276591334889740088952029145746734887235451837754671693093153553396966914014481747620102797200359259516394861876361316495211015728818812856936013765892679221119151585179535276048895155486695700171485780561702692493378343786887737923037467412426800319916437602357428660330375081067470628006671460651733653084504422959047363198851159867029887284624283947759175437547237001322924887577864885062861046881423897503672146784764240935628359479591364849085287943063176880561452430169444935250614985420088072244865473000577606038289070100630418561348657377040345820858277623867935932921805328938777983742686411668774989746982691445267543165891419393677014199035377951842461243728885450788214236951806572963591929118020009805410937641858501870661597542375890554992925445973946642509258435433230320619404453223945650059279136300927291150508048719938734995573150340006585853781804458162019101129244915760212472829005859992887886117596233625091865509189171873179190333613638373480272448184988508919445696993365870164597654783665425784400629228843902865686518390389177525609025975414968940377553965851317106098274710052510769229489578043296057763191820781093332648891884846255147720339765403565397078170189357388046130308846161438308169667725932423975546565369770168426457113452698699944257356976327900293869203679454098233234164467593771671535099193198984534596156937166658024975449547852984024949327624518865337551650294155870982043908400881597997327740501388437782550128026291057139668642157602821270649537989994168257834984207776640432906016300642999488483085328324491318064449001025107014375574936585164215121689980459916756949521763070499509783741265714808718111478528651413176599159286969032844551432299827030453230261721326972525890114902855174799132781930349253240278294049305603198022099834220427143366759280133492689767686344340908584803750982628683629951590107011561370487566021302052061086555233308333522044739838019348885995419713487973138996026727436171937334154625204251620109955524261474241425941354385172634569006337372980464177891115814432691647216737863940184272122748796836280315859702797584521486160450571233080254228341587402035971841214559181137874003862447164222460663011676972383285422597294671910661961945222914655677507974656318430301772812180841752323703176640571294986897166210604062068854604810752218625455918014870092540395979996267209462908918263622812422344965469370103077195086670053083715298717714447543028013868695018472526475599240464673185152665989420069081044797288242455567157713315355050560424665400258284623279224110389862557048167245973587891996304830239234713174619903095642065526317305500040874498423219117956941420586773488147090279087567980308825761754684487148864366998510372934481450706343965441379977459542980291501498843987872923766854039497466158693490849475018568355214071271539715648819584556598728260101424129179614238586524499747880846159852093242754923184390809997226871230283940880998954008354834445914896234965130628661868156239749724809098748025610949738602738802381737735628062404051495457517502739671539679070024945376535189064158785773693308363950305054663759288087375212163128115992627351905634443347781611414478683418896420476473443805006193076628306778159632932606455210537925420977932018603256644707783822911124538347775952567993164304581110326949849280150471510604217932996658646379519321721692201866257904634525652100163184592988462207730127971370581052257686026683074019111704644213048941160140173379037993031189612749205995067691229240924887136859408968513639847463735103950334685208492757743343164972126333432581341502956106542236266305012272916024737760222676052550766881182950755604519554713933978350385683926974485948316112846642610917416887258129619135416110706200127570406538307959645806700954909943702502022914141888962065528313759332795722237669834699547424790509012117392540079151111424621954012597497005456377780166251954937149959489999525543564356562842732283079519475474028820136873277554337548440891772899806065679809557980343315586776858044877187319502537765702785095654658185348207586292945373173678845335302821474043612602866179530421225386637875505924997007186276447612719778046730476044399231788182244890861275962916954270895192952201948191546809524599733751249833653658921248822871943888288764563114780162250657849653932416598599307126972319338396597454737501538370330910228971392480952783677972844675932735930898626120188246655504321166812370730574360263888842998531687961832570363289183088139604186558590669415970098693135829837831519486778125717853724347009142553489711168228559846596965846445659046969906558368348257599865202847643485201805474562457102624215476811922655110106001128269857794372417000449689769347464037762465459794973585545681918225352988939105255469743905910000994639340127525640417823379143739560673484135961919888108417339972263496840826789820175111550060403347576525344078454897277949909794045348224439836900311135938091570482436780795633497731313774485839273968662159497994137003919213824059794388634584737066693488658830305906530750893985051666704140646306506501289276987293976071043977559206136906497922835746266599190354112070895450286939905275647429766592545292680486108509437463694517356206120322826622551424019445889676640591308518680186408156280315947650559573225631962188199847041008905751368994726205195452033007027424031903678337898310340523949007271264082433658162572495406953085176708461528550987163160221867542265315567088767820752084575243513286058094331298861227176658521843834873106021772598248885354790820081394639613033317578536490058644883729158006646718288557400663576759320264810004689628064500109677402512005222455843665665515554798636368354291722940709847493397779978468552820378437282822759914287256134147975061124910917879854027488752041811923499916457796658390322112893246401994924524936413049948007891075111293275063066752255805531420752972774738558115702739490935836858357456648267693999081682722936303313328376633344692373315150170600953458999854017907092027099130099996773372052982601251779561011770957999845027341213145352480939153888477842444531818740348384498766915621659654784879595574882015085606747120138892469340389996903156717713161613734310826716367098944994497719716861159595902356909744982238099708217629863067547239295682641036054046660645774820782652695543770066990482895224557196433821575598819510021467417028982995225742309302464198084330896425844154273850564520633777111963542268785300590530648289401569653727408498329793352558999049180132966580843880579105260328361127539625581952210510304258818652674932325447739889586028610988115466693068379965580943568829843066631966792003064005139350460128484116862832736197326626220133329735194644593566196757980254372488019397524995654886039628803443302700426886946078533179196040802876794359127421807651755064603198837995920151420822161153622846122737469096507925408641966777153402825173828555234981287322802907571606502837373599493956398227061568294801387321715423470505768297313580535298471055290525538229409625314518273895826147441682152308430315829350378724142376592228178415812361851724686411834232902869049533553635826304152820840663959088734796105092709165678758165949828556399445643433407426391936875402277181499690015364226952053961866800101005699180085285101299036916577896701337446767255170987989103383468262693131132222491805321531902099651964313682906332526687290372857584444444481098521959659512510533376335380115749955631352677114834191355704580563860335278144532347945519078978120006291849381956234232953968077128019888133035090614571085594787014458078289378343722217398816322817161682376418129049708238449199650670074968944676414908746461060969505926564948511693710181249505288216212363451578370001761013845290201387249758437196979259375408180608520069155529116743903140429773695347202661384751281605390581518242266363468576442994093272395419584572285272080000634370394442747090279400016659157872495118897534209870630891685039733313959671472560841111865257717408300409767413553206871138581504538843227254464972103354097981129138588901023489112090394432453032463647556049211291121281072804965061973772571417516740177343530219572798026552457557483895205801254423081093910543704119833005084818021415993227379103301127459732155326679526732752794973145101190265656551764308261405850110366049069388514230224964918107303209423111068402299057562682137082537974883536506476590205887659736378401276324898748595674421318590326312211291757846472617830692602943402568859561845134888738484583340466958957255368885130802572842715059794288893870908194585274245954727604249610978193434131806882922059926203466587015349570295094975580637355003841119773806886909743848390883867606695673827077538064268792576840451981368957731955437565499999918822780972491294722177187416252864503593485809303024766631301296294049541704912503179049472552453341696559046487581513591663100312294480202635217429828299267595594076377130153537659450264219513630875433906662730390394869903523698493758363360484081831764152972216360059995349209504771773374514285887903419837991295753058785455308590520482904780926500214134443199251905818810594632524071958818627977675944363070009157552383392265437937077268055389759361684903866676467226145445147861800945122707970203301629576518618733854512782394594297127745291444674888656304995689162344027981689670661407733447798121097149550065771222643998290670554852613811610495496844046634513921743806512345086461276203316926278786074479852061100797331741325135088106820746237880861995870687049045632928228378772500297736491309217601902177462983699720182376346416469817801709944224100476419920150083442048713832329707790002800346453584327658700222768836598971003753112788264748360351438486804676664265433957964056444879381647938249728116124429477981769512825458354704366046822170260454967261841729865112583540456417161696256833218461956350766620705633609144548037810204282903954434019672788274469936355531104412325590615149833976632405021991504763065939748758183912269812846931403836683885455630659954420260822704555389586474426429340659770771379372504103963484386807127349303473682062444622619537118489443561811558677147364555555814956440023309728602893181248759484098978119627971579945658075574254887599692155128739798667752814538877593441077840276360999483262203377963926284655042076262200592476994296695795815475831652008169557296795942624812745047652894335889416480563917812204673168078742796354744638447527218558963926535529431729233483949840091194548875958623104659675974383019141208324323924592348704765444864539757171066528632413724612869660517931787404306011841917801273560196532709875093183614406405349514949776152821936767248702862697275791148778915818868187716957641610655190191851926476714454701606090194388639038408910160471741248529705604938278322223830266862526615689491482995660484913084606088140060416716135341854912254828038091318813118106461649348434595375156623127870798805327915295066760146059468972386235274082734854101412135392549046057822878871680866304482268656683238308593162330042050348669182324596200469522638499097642097749791775375988596063441927377731595772682556249527357701565925354200391739670902991220369916712253834184850683649480333935271692156210678907337974429744384286055611658255546576970435771512764763553343308670486006416757961753874086392488769749138006866361946624393619225265733735314685813057224920745102657824021961510936353935216046963932147922928475610402733608236277729870625521529938221101541947003036341121882717594329255122189982527564389261259754409882044603483055020832890057034638004739653467811725609530475056264340141737992170443544509664077077487781951910678100584676852886414299773418761502296363784350079142138450750402342853500873540375589031998671868826809281659830392522685237666674018025745001083941851574253094790783799189142491634261931684740994280194137671455097274658717776700156713369117265836731623696639005248660562289574560235780093067681898547046992823466391137828861426139564281683524197288626518563826538387970232792358631792218190670717378879893407524215189692781333473122419490569506909490444439009451042792565385783715579929744798746192769756891201700693422870077362603538964466917336462407283004997477459223617240105941268325919441587936001333576844012359484998249241022712859519301128451810478742782076140469708174452523511957984955544838714878002395124468446325219603203377043841424322275616014174135963668616216877820673450984027221693855802661760553266438140958229884687107570629694858867002563870542770503870455177349029340958317599109634386445312157747861774442668989125745216535704188457458675895650791572316149043951975660661710813771912132656462271245419707524568210192976845539182928849118951495848487042469690314004936406043950688166794959193028377996978312864321023230853742694652020890304342283276027166341556665804312204408000374398055350902258287028616426937178456388176160876313044262796778107194383221259286324645261322926307119989311528288355998223724508884428205707935411216269660370042135883637753482853319706193998726427986488342151154975007683033068146442941069530538994323646769427463724688850162418152670549152184745202230066879895964660621416824103381697607988387178858942035445112601179363162900532463134877625516915922927800893215073123579316692664184758031212555332655305244691446480455463283307234535909913972898980995451529140521185100814964015726436770052816865367186019446921603762918764676042016209875360659059060161811260794756705067627147413456208735514406038514291676447378988942758721558876637355211000436970630469742203213749478611287887807435113571916346884473938576541372525819954884225139039746613756502039353521811311585164991545442785819451158725326218716408407410221644026449528081712415889971525489519623355519525342180539612543434301983735339469742603685401554071140318093826999934979334854588829570717812582501086935003345872350804801793051987200859152030149455691160680236649178487969018903206638859897140627865528358661171779985980761189938715531287444559737542523827234739348893272562771263998337968540079404770812612548146687238674133364572453743593747866538308019387825491970357057785219889073691105619313962408230171727374449066753847306763636344485156349251122996734688413771641861109511017557921060392443364375212857228476456092730964767912619897509526121559767593501818192128036197803231112918347052447891907706815011622461547285234903355812162297649579790480294697049354566616845734967282754501289717689356593757098452258165865720826812934068701862903591708858638712481298789863148239445622769221711302599080745232400039478201742377832016859049329013432751805445697407315367044513145128979247219345255823279581326523377596799654826734744776408294134053325314590538858947800744406926266766083957686452952198478891894130396790981295509356398061497904900095435063693741060781417510847666722946730316950856696166853448276207890402268462722808989121313023981318061059452513932142703822795883902531822356650418812185377676686815291468439435294809900676730970277986146780087422169092262032333656559146354057451708511946731092470325471862576010773594760394397459619894503162380459733143593277553507098856267180133757609028522953277729568213571347543668088328470513570106280385843583910934648482223493757957204619893674700911744639197268991860071416009294523021590617841591718215494578254449126947671301718656109934179925185269713453680860726442150190297124248784721188269418407317221633845704594409383019707694357024134874201925600647191476535716663476612573241904192081849315604588592289488761552873280096713494684536757727366778283973538468378951311587785892081092694197142851617161487627418300357686155124053994153715299033040411678938418118185313115763858124051399329041458001163474892053191031638568189783983486836900029582842531813328962515349042857780732935330985950206783129594524115038672677916797895285559623501531596152548216646086431604092268997111109533321976969928144945557291566086457952482506232793428853298056838156515613877001628146508596919165031309341612274370012030696709996980538817764504058895631357189066109341834799337019280970184862941687566292980807936890882449457033894249457657970983601842004769058644316897738361277300904676848926531925108231194921021606873188315387083033795469147958444819190740904503778873766828697271523293888592226448993540064235182518168073377364688384779730318722803536302956902598119146012979998541822176725165993888676137109856651184225361649172528533100605000808096711396354467105636481114118455284152040220768754939352232370387905692460343356481726675065978707913573349953452517781732234671452578035648921877652533411688724065940481748102480857923824388432092635444804342795592028571300342943855113925938183175989648810151206424534805685227946504104373436422636909407930284307195683869471697007313226964786097348503897423334891802597675330908155918144259255300402503773170059451559586280082107358382259923547986979611249475297978573632020801329054595025395815830667507199333930012977248920583151933680006383643991414606197508091993650034031950961786351434529480129621903259607940603948210734284651265244754305004693979038248588382178548281691620716521808396962959934176394202086016462349615006643997734298554623912394277282593995332546798900531717299767490805825601917017910904946031731623139691911678937097736281720925217365356244885912246755809651747523155884218533003016719353191768419083091394774788766659321159672925689042070611656616529797430887772668668072268440256153513422435576138481953804742593626252419515572036966563339874395730224939106299785296667100807341164329136017417693267816804201860793610817969262077304987718742586485280807280904051209841984823477760437341434099925322817439692597700328306207895227270042364074078069719336762241861872546266778072191113265603778871745336465475054422464725813591571756772123419150321200589662930364835948614176184643360197266068483874079526754018446602856780206536218586977792648339811520902408666252478495816924687909564594134540289057875043614968792453295739321330756308706643084021575230812078345828399668129155635511491092981484770625837220783330743636136972060949248615165437543704472167810018480034792571884950981922074165812203851444255472881550532862230539694760378636827866111535320135914894935233926605933674653509134384640484439741262791593100020840056680766288698729112635283819757056692013638062710541793059866634856508966299432022678016917204885775236564235510153042264867925231798143537673762590230688954113234705627468382287919353507789412184298620788764330889531840130775748766359076153350444644286629989424325557874935885202643603325977295262517166973924444638127231586975425179854991710334665582529815737393176671245342896302504607726967830202654595561972446900252448233511224181965354967822580393267741639971613596648676906737640022546662835033163817121095541937621531959705335923213267174383421538597090194480048191527356529065511598275191920566363862359500395731227560977414847004751138758640111658790659707218631810135845371208242798439072432039582964404604361862482812184062952648341322904315742596558472711785108813910621765707638012755483573438554214297364975406781495715772481235739153667131568563242354062147190376688865597022276343583264768350151061140548074192163952335466732735246689753683623360452190382245874942487082754002893382984244704647469743193057606389971258019138194057857111244830477646777299606137834544623402416732723583442020393597842498228523331922790693975671454486474041213391981128338853056436837300552435403293641285864788160338237943634880975169793870634715401975193204327085195759361960443190582945529618426208182413207359265981684112361536481636047351793195120765234153152175912911222176492954464255220842529313696555940741011047778525837061379609923938968452658742137318072526263749580510463166794725118902534931803726968763441564595363737091686574558743798843513173311565954967470817802215981107583676285864080454351334971156018152471443317365638755457558828429682033314588021194776699329458904258058099646869170815115849589074411084018781896099019438031653375958832355458590682192130360118332847249127183191131487214026758219505743025499182945900781844630325205898550946817764553435117627669068043609567763969757968116896065275329788167940676047517397838091138283123293138474868654199997405375587244794394671552497222560465072792766695366258382461733401710446955830167400564253854219895935138744403087059007044164923323454087645390589003253325659202898319100297899604819198545898874601905862809602514076626729755244922540963184963837391528379749961238091992857995780768868093963738679548267083171604584485695851603394833432631014843073265710771772475006559460289634763397611801706481345565784659047180188816268406781706895544636478677484641543759958236240561989300045735398830318181424830848006670826563900329091801252602493557157750064614263080455218015232061186670172718303595128639572618675131864525523965481307375408763254082050735636046283140871051333313651059765527005548389998287052884016807518648282404155620093354789405490116177433937649753145952715314860398910747959596065799594030239487075768351119589461283254061050772161780032345799518809786126142344461132247719056515725225273032690985015999088977460006204941575783503805796668171016848830924850402462306195718784080319542898103629850149073556481416143137690732652387749731218800821083116938800701689273846561430312778031289073862522165349182946916584565941871387574362646847154393875251317520509286389193389841334127132013997370556533444717972566486028815792575570291365157092032132125762151894041324317520812756347425873307530572963397398230390229650076735940735244583793370704779435264584280514010266885460589688970041880548794540432657218751182083339537001693224005426253950545086627715039663734375621917860976713193480128251432092173126319102105579014514983912950404216244001437955967298030975782787258784103062360266934366862206518378995660622992177416993750351287854638226332286140173133752566288199913192738939722051453671322066032835937781557583230226516333879924709393557843370744168468873620064780046992875352718005565573751895465351378979878505364943001383739614997634888049660938336266357624616478580467373102743009077188170148767978731061459684026961777690962451635414941396724990111809585117997435422174487121473250068567534239137645532164362652085662833996261735922693867819280808542132159653842502729044174249675081702959671026041094010170252474998890713214140010184717344397889519666225322854002824787287059750942018158176492823710984055960762207937266205374757435098049136945812499003209878332469342400277110823599180605215717255251943584476526381391142752896635200658621710959171349647695053893828131570631051087213237038036040905614662622096348839543665836704157005349649131929885724899035210327087662576002423720303325543554905917061146263850324534965405415244020971166197305937444305740391093070702326388150067989698820775579293980456748326389349510559102294660918449422916382913161692730050445059896219113619675839283983901950728410514406221131438684399001926882225726878530697280796826164004166014904882154248544216019479120932202507071658655700889121295599705389119016184526232068509066150499051181779546934615524519894931634457502413577774349195095635549517697210067741470404866999879168141752705465800159412267644705752552438892328257022796241177433481502045536258914541011233366798761669189303563774881459288679201232898239692672014670200676913219403507196331743970489175362409712169191022602674909701708197880150269645118940500917500649641476955774364889645475821516612569273645551703725590318606243300823961265926777292165318060260756127044907284642259567979749172163111533059051731379038738499374276236358254173241650553097898024605428352149092911316117583513270290105218439432111488375418981750760880320946805268036210349559224300234601176278751062880618669750414541319000978870160802078318825481001109776918286396453626754085815864738229671086461310891499634554119014888057606175817895662354274743938576426432832647386139015923674171879421574189327154093737122123755040316049258200291103647912486096106296374427257650911508605004538048969559284112566622532810329028815872528937506782803929197003936372726983141724013919347511096140198139376312284467847058066102873132619282523380115675904729860333429665026080609061516754645375982719573260713964175648811568010194433547047232052532748151454075829302384864056724381621234596101847672854143371956043507274282916066725999723708506947997309952874722599153099055789353532695235777199392291048935508466460396085173426019378935588066451199191868838893979776482024069351817920172219339163473677204303133696070116884966205095106341256106157313507654870262166185346627414797142558676468998855347502647172330615628627338791572483200095163807918583261587676217849612310051311483060535477712296469474507697481076190517766579441211781969566425970985810102796363241953781272450277331874968601229502084595542321599677465679418604332723931951410991789739180631241972733349744344889933231670759075092359554335411933536509823920990301712830672121822072771403287558192907641499431709706943534950692195432530719568153286152201505018609680300952688625991674177859646780236717205199843242544236187363160699335787809124331093490860584565876857429551807384768426466503897255928335628992853829308792055500594348676056040233616466139288468897628238380492876681299110681127594926647655179691301679548609661336655635438438833252823933054748405042922445597460817104659692551895040662379462242668594602263731658968872383281742735666970601936569476872120025669842456209452507888577321846602665716692746311509999184954876591504036109397422164880351154422291910672076838845746043043286851668365255811557751775498593179496722654993626335244510018003170177526220903196462235239465144531694907326560893162804195109443088178903816532622020770902983979656438118394543526973341263709932517239765480480381784054094998924623258397765868866922190387503017544691305323985814636277088356370597823826142059667626412858142479437716946356730040709226406882696093750766947303857370577883143992259458871821686887842278528146529423186272290577964290861309823975744575097114544453507330650814596501712291420668421809221212011702456982136265926034277084084368024916292967756219296061815489345367677085000367477234660212559936903963637596058750148097033855597521707076049751957204244447076893117097558775859932705595254471781430654663648042919850191148709005172091061070409638653517316047315624092481461172736546678201709240489823886835394643021771388781137038751961614373155789263429481770890104067196979476588300905680541440922301619428048419820812209127729148640170680916987805760420626943617635419691011175701397020579537226079407273674541979580392034322409607776025943205669986833656709076013590558028684052834125992071140782035880028487214186092553555933145556670044707702999234842409509647730464522963052808223371087701179653717627552678778423128463205572083746668408860168866172536803606207647523004944198558748652819408206939274933914085261733276358004517629781804624284201992860841573703840304274231686237401630317334527461244717126663139849670777274517207427880393487405039449249032274886978598646720421015826699211632603232259155982347856360558235047511744357784035099549246407075323023640923765511484983571230577380526964805288654035242633025378729070981164139622972461288004263236346525013697627375686441883923007869197204560364864863612054406317959289839740327797363252484506236670286677736337019396473939952630033734818063246537770817241635281390326573261215674574799156921022360304486115343877831209247007367807459935567521699220325096431834444226694766995551513208991256694958972121479159264787514032314305827438178286398139394886081350258376896005487143594414213988040662267943050157067372478206050611592128522882901610708181835405161966207180679080175203957989926966663036159431708365184167445573208012981133741596066512609230692828318673709594634263901200281219513495539423694291277665442227257201812655219753335002588181422560200474373474365789058424430794672677707273867556226725074774941654686060497032678193225156166181245602061913708528910990660815262530388680790678905052047343760283033791408455219901752392631077364761153807736768916685471861822692850213187570248554296877142977508264952778379503038229843620729673461687134578072717090207088015447357930482587275051897284312069673786866756915526667053628200245233930668797063824234325917017014193283987836275236388123955311362798703691455961151750935763075580410140478013580957141990513615294226807910724853386440976144213642862630921493551068951435972529893353007143390285013082987094609809852281341654000204080720200934079882366881613882980170368819422606763885959898788605280854519880228754382649802293371257938655094906766690673399875576755758251678086453344649149118231062635818908786808344338959414531587905378428917839217327316398799545330961313540284433114105652195185818738726586994876242326470007627387115167558283469274943060690057823399396035200333394249663502252698965094450976523779856993755626094204891540003327339025889390456641858492228921931977878481162378116825027465424048063008915132133786716554684180407533148111554681865439863591495077174482419881720709502689663961585568942433179729021445767660414570177917139809557704786213949476257172989076128779081763093390967377353044984934222476614109693346199940061263834466096563429643957015663170047258097100680127224532949323540461209878524449825837175906806536237724322259353517068122084221233718741368324721997574728809775464577954862684318638185623949694396949514028341730774494656511283455210629857985203622632235680369918229731011785365129208876128961472396720733919797081434783440964976622606120637083003096979578101192032500822094547271697265029093040713451895602787416368111587502956643854630143327043061932333046796348962348405850175155732013386796051297745726290690374467908007769463961372838934326701602132034158767926755602871424591007046548288474111858755042589726542106714450854306036876981315939831798823371470654115791021783715887220274367017046755312025384151771745126391789629366701433906388421465145922954954423850589077427146629207217329614333113895201658118984162879459982998558048351099202856363237738075105768046639355187797264242973348281425380555185483349886035252964951266891145202637665370002974125605457340486971098126333955446044834379075891467713862256310127439032851515668615339250158795662161891082357276646821205167413227095378802056728386453718973114471674955131247926526866617362682819576624413798015338990233868186189019332641340052661704266069381371188230965213962037538021250077215569256400590309466705641913659443289801747618853454902596443385191669356634544769299811211304848355360287247092371023672835841288630863524922887047002543795332648485190407110589000597750671360061618936462468735803299183480408669615170710755961011331626331433935553683605945828930433335793104252844623975042208934179163981165807101039009130849176311397860168421793363012465142781147638147514733104897229094968175566600300272811042222877714050594051092549016803679054487963311157027479275334764482024347397357377509285266344912261288237373605034107887829231379988507647662653828758668028171716822161061763814097253306182443878477230334105197943055626766608537246461724277905112561304914588662150120615832079766066868243884941340972301649309468806899061751955012645822232346693329540640361317099991072367123051804816695090275882779737279908412561429225243814149007359590577861916327345355610041054766266673286851518889283943461209974982335790161795580025455973440933811822994623770663996201196358920410526079939532742013597845352695109652705353871913890835248803221612008915571861452349873622238025939600451869999355408077438102695534031040016699307431797773491244145062802317272996671313559246729426695854940012068873728382190925281097185706741114893175522215431703221271932037756092250621712420056345812856206526407486865586088292831348403408669514300637782168342850427014752280381989213693894451950028395201937844700380046282557995067049108389838053629369761784753944198875580226604807497363768489523508355717457493111313320382836813253296765954376218691204380324997746809394911560022961081816731641466135494215642390368476652658472930661554092557023335702239210734090583558711132353647494775129090240848022134267280955993614329428752301880387295136255372537254563904069750976161614287308306700646380087053084915475277640054757604432179348408191952534423512917728960692907144675320804319725162546937583016381664486805150401852654471584433773780758668707865977897412324100902092805000663610772949700755195308863443142142071379835463901791220621728424058657628017772873312012355040162708548588373005226592695337598638347963929012643189716995941515716609993109362426896013546298386427329428436382717865510278062489697824034990083794785079144132064691764870219494573239223971125341474035120801802740856099424902736797317075936798131848952198618556374960485538883485841257425802514675871156277118040992555474640147841778920319534709360592361621164057937156646579216128420637397586791020412320377000293996108711333045371420912060332198061993198027422082155932533366082131123892098845568848316028270534581519635522495753184177988483384255274069077661728337803607321097593712459544565429833576008264604346965084599649126821388800295599718668887648394873240817981023171128514823137270235288194108198992852920552671131304797249709897819088329894265979157858872319187984787432062719238498818386462095930475278485841169342035090821088344295688726932488158212237764996424374923534219445395411553451269160648254118043569736370212855230000291930209054612149217151806539505932905453819758897793562655538066985307906326661897721831828868717639135530678421016117094191525244516418809821454572248370686618033819115518052287679843371896974145686462442544434016199223424928051874729708982616334548059125288816757889825953480202547440001023204330060444174815256996452656020914127959593355455070683714993499566637009290466504259112602976661159360393259168697754257375196695338760115434026931931467405008907416469144828215563471720475536289900177249394158151450718121553211633962683328669865198294176275171823172728413899953353473760058566216982619575922057781139579355394487791683701513587603791657314812792624292853591759549816534609391940447923337802865695608973307365020714113236099727829530634148988998008741770469354711410982618316526085100382765988137653653286304622845585494113485978519296247544488732038893767036437647215253841323464722533344575337199191450412439493421152769394169098361917290625903702068352530798386718739106786019436197495277570984453047919325046744497691213553710190741846858115233924079283559369782579472466506095150767061147989458302903523493043936476381433744903518055426326224208046937267576484394842052310727855625343422794441560198174444849151419618369701764596220119854782955490339665134111651683203115660300068938972279754190374766399745808417974898470054498061257978436402101495434004822668585568628738381071028672722125540909662651824948102886287709432243567619964984852209307924278413500357801376114097638490453069261795522920181650200107342840900931584819824422832306356168164578068910451654265174472515816967525956236584470424007426125088629259102288543335122478562081109671055056382065308029092239553753266841826421088771646264353009177541757840813280948014288301726347248053202586666399024865230853631767489094607475887010857742049033903352052423975093638870505979567176175372759453657351231500796521530632954674264248337668529061424334643094429092412925739179515981541537447682276514484663306776083791249964142005134017765145219699253129515101444583315240918504976798468883945138993945828526808928937183853681045358153620888696057120877633844305733324320755542680018885949871137795378776392293623992248287913556193290730621501662328382331994526550753225240496234573611520681563723252932501924154250381049290858034410367484449782958826892213726078263831123802410745895337975885197526020826881157044439137077092377295566856276633672310658468994808428217819773571916974711905428194218113007171018968876555184252861928088549262831587934008031722453808261480829266969585998509341897310206111681362643081688689000312313293352388001147116543047603252230954832076838523405671104953326728781821075268328493262347999941754636839527796160606970785425971729553933957075280096386252452056550612330821830890835556984647182945039612340684466460445711092451327025098291493742739777625878462849801842783752384342788118037706789010887071646334455669045491157874716428612806607130944823737851283659563691582557983122673883342734718581118280634700151462484501798230516934900045629089471714556229762017167424017496795760211613645711326890459720909062212475390767095075517396953082160936488400950459869198181372278620312152202413687233169873731237680902541020337551005109572959813066981058169960689190763830140667728315124626878806788282705895424852863446838599294654423731335423465471617915101506719952472962828429383793320252999024401322261919783395724864874585860254554651319630798559032936085211298707535831396277200562495982489483026661371358861329429983057876545584441327978193241235665017486867260450210397121861608101316448623662134192467582042027710394893328237799752815768627153099485372090735821436107223433527806602366199987271375182953537558081587864385839279912676996440282859613930020089120858860718485296413322398087333852462093061599580568790998948185092177387231089428320804101250119865145214300345804920436939693312324445347115670839672851838957191048425425928125367703606470325063690944401993016322289906754023268298418699424742942480746112155423440494213733783391005621999802139030105553292437741158268125807312197984731806559978833001208476456884034507552286192515233669523236112333602297490988192295400262578016144981797602391542585956647711915273065721144266689863974018135788927898614902775964336545489936917012510494080394419254461437580420052195878932565639377399804943095853406070798706645256767707415664688043325965326091878216720022846589426552352651878667014520364275728016034811531945678568211688948194373192281544458635149029446228096855995654430652915230060802392633464134550498258720363155599173921726389684914086808527620859362921123263065023670284992415349031375934580244082964209436238331193276286175964331233985307537396463524451310478826132698080924726054597499696129277366415893209083029658716749502587127738148299433207438075491124487522501832448977205955917100264285285917339008035062999458592103003649210580598239832709614439002356162819044843770096028463933310296773328970836229702229482012163093332986102052486285167407911445047856601115491174395756476258728997539182536716167466943965966536971005483748150328838857717788580984118787183853382920633718851987978361831798887732040309410756190545468467327723175958568437065204076552637947584011941319832164390684744000624102188159590263667447601748903135557186997822670256057471528807473766872743435096068125933580570993982746469579430826554659079658404402651401924360332013392247224763357995214534469590758421707320957518513968347776177527370274802986260205700639505288004775346424102101980806776096751584740885035792829889016750978614859291463747899797174983513802424418033194805159148191058373236352943134788536086530315504928890907409025432985468415829456079806007522378797781457003774541098661753610095539639698204056565218673380547422735434178669454550735849540379245639592488927668177809875464772013678596707124480978285831450941914642189957996221151088335280573515458339897815940628749622143407114968500572153702122803265218756928781423353405982029486444064675544056820677363329389941622473273868275258864265675429767700983310684319091754162790373741975502538516457395217791031287792976968698977366462175812972333074535034834942160581869778649481614615252766544654229966414664387980995808877098416280360299003307144395555981716304076430380517377151172227743840475762566842165794315330903366570804636173772750853783845843987816818790153037418724266133799612962358327760757835269276241107812251473661957141844194320760295845722362480751279720508600430613521057043224918595921715664690067660576358531661839789196039443491903630194390272143131729022613166056498166442040854140287894768623152036612445621137867059671629258669454338411789130191434256224074818285261216593984927190757036963209565585743133435154710491827279994205073331765364673284113724185754405177320358840810952063155183954292991097052099171950626613850870611727368672012293165825279625991042346337925573623219786188031158159962841271475159678836367348259802717411338992196819238789087827920511812383360719113951930453349219823638433672614068604484170632359432590034703970162322813439973570117536874240369591788130757857693637341676313757298083012800818715807044152404809717840762537879917333730987079533153184032118460684614407959831229054192167371257642235350463639201602043275851579257101025186424305878525480849815405065142614758157431036196395119116324039377723452877935263891116644463684008427802522590174270023394023989693593646737401831447315583863777365772097946219910009626370418448009469563119287135293167124453381900412854822908738189768513615973051644532377715828586168232030093976794202091876870960141098886355555464886805442601127312601787329475276651927677618613636463075915255815148757154664038538498970647354902457317156343611509184048541567738926302023673026895637522051602854863382226323598969090957679929523033296301063231625266455434418214369756332646585009408321042253319416391994151961506318936660972491326868799574838582158069229897636084397120955736994273588692636024623600383168347713061638070720384104948890800629458981778166663105626944013518312026207236344715624215836729525663402913947636710429716748134392754311549443270953977785329166021006018594294239134450611420023925657543514975888074804447644461779923147593187271609921754868185617586075115808103672431702880193383897052400766270274166735387371749418087870745183059831972936749886567841770215687899031134143589269342172193820775883189096504636135819314611499664182644012443788978784358263963819681488154845604734064116624004738153968575733207992551011746224282940344104520344908209819372991632133947552541734124619645665997115465540710967044843050284444955020903775873379612630989002331959963232059111008847803300551409273315304980872354151797614037177003383767571290480689162473297879810343988928576693788132370111306871663122936404032415926621247402029786826567397309251655015744149958324271985811952749206784169860098670882995920189501987279199291093574388821778883051620012120974495505037338163836884147670169358618106552529061459892862478674850245964848276164949343678517583223581285208670647359448693308999855921653278217485715039881402871314961903101412182760934056607607183282450919578290634517220394313535428995686489726206471337968449592881811367285588498078379844123771114801234762356647169163019178472990559268839805010064147468284201670774219098095280080192675255757927832572607414499448841834736943462429908069423097792549976238113709542029813474807185029864073266527935228137138440556033396386928827393646751711779458058270757101569904980960314189641914983378205184132892504774142082593028427177827138715393329031927916180445427623197613749585889731545531618489102542613822973142474498113789212245667398888122264491105939367891659693193641504709859637133935061488472981250531329840340220070930590371928826455919899713635899105957064577716649193604564914912333861351165457657782400946702789904984384454642112185155181498021708643875162413601685508830681429341589410535804728894309492318558015948117301780779572261992287292403178839830525907826624103484253096113576759213530547557967405018169049424204337486795663309902724498765656079208306834205515132654933111524357951856823965445817803190702458759508398189126388561186205169571372502834922781117452456285915232951751798886174638247555292383729785299021411115000773658278531608321078754663842817066078599773760234681726780310405761361247687889839739174457507957509569311200262902462351452481865929123234997424311880538318917494338770720471144463355943418309073255649163440746638461293723958773290707805948622338293816979631897475395740989192050839118111803197542841111773895081587647553336485943607791590155480126931534600396569455310482742624001132553507934948320119313179624496062086034778486642232939564345134960778691006438581282035114174705172903880836105027675670074684990789896893689533615632188553799187597111132315014965400592408389559230659817031060256589432376990556246878519511998874097787563424501989375537234829528269838848893952496816197856749750950293672531356954093406054114281691604907227039280778702043958655810302195313827487255873599222537821595614350059018383178937851259512230325073609430614483578523466025871571213693889003838828873669567052687610815649094746458043328691713178313639307441383814157287013232584182982980380302058957137459634783706116613657264767553814579300901531585774470758787113856120652709643667740740125075261228318645689342525047872065539505183308022428430385201343286389184364705075333183368208953684235686057193305244924257365621120232180548701948034010517678962399302831689554048822067009284086444934886089467530538618040888879695507772495614311712906339168275903583696695532763766793604859957278663610788349645645672996362835411925849254990975701070850865652874134462545603742453379823151074561883578227781087277926283372040884088912678946700436143839895374798646689341952873232225889948782702777839598589966620241937962096829585762166483279942252668085117033813836547389274174537748937775659423440543840294131086900094914724577935360895106955186640293370515016824375161264685072129138623617931808876735070177710354184859594129925156281612622035972062026774381110133105525736277161983784110654334945681884065136190761379305376057115642315141728584769150683977717891032094757204895006134229758419832793748410710178819636586621295863869281976671942833951296069199739266569940713851678276387637952661848496773271931806736942509761788315065892603504949681583897460164331313117456821067736188343273667902935023116215623738897725101837104412955808830634841535906246235839200425787757003964034606929530851372018211694123510489135216935357735742005735365219172846791505367537163755949704449221677482206172125684314744769304233212392518031804501360020498119605011949801521835146249760600980004577882910422863869823700704943075653321537011502944138951105505378846884159653038173900018965436513017945220115543064099369592267976426035815710923487388557059481087233354654342717251236466496536642461698284110428769137834447772173818669511259083573493484929264864494302067843675210730668682995888527971187650038878768279981201692449890323281301414731430880179122882878135379588080086966898570674397193446673620818802138224599375308901738838799516776941989611813153450167671943678641449858504100335035733941016641705725479762880979398994473699196748812762231229169559408404527178377384517783731144459228034441102212541083256361604103608319277985206318205384313573688405874678690056169575744356769092328381678046879401079064504802782082126904407128752843896331179913077917707887344574226072799559690338817159884790495720178457751832963252444743742182407454089561659199003987081470031787344596137307895569310103425976238605912484139367649277366297016475579430887016471224977326449492335681513120690164497937536231443447025748135216828396643544572738933223396843778723685434206252818619289271777108436406527990094515887535289012854245101721338275740572240817913935927033070578892390761048487544808649032526864650852381950691354846383748478604529894172378000648522087192313074811441239620062685970393812021183420338709743911517149965949207373818428338089067509610941554004970726290146203057358360415153419932186852942193754019423011653408139849776243618732953684354185129334848403596796948006318639962090158863765863766259506294829685329976993985172060225240261633737932782306549362622033067049459902073994079303882146553067975400597089719849068007727661200281704625870850367573392667694449543254344285871690167403315133008044106680116386813329915995422958581138314201147791752481412247039241858878749922337004027176293856215528661218297816839853693616909615559101078958438245871609304927335995547205622241714523268625172953220201132462858853052204976729691094928895042850543789707444064139280814599061221798346286952782982313253231009304472504169926672968421082969529242932203471406835943497025107082622803700460266151484834910459205383460300041882180195412170232262764106276735659991199946616367084416233885927604049766442152562377292916802314917929867592767613285724074625275112299449172350453134720400137808919437225584169145639416764082625830280206629223566697311082093547646340917890054420400489218767144784325073178414303012115467094097391995638722410449060965711893334115863531191189736246144328645768712759832928469371206050155483129148966090981489313675694724632465754143660237894794227490384375326734741887397398034866278797988056564423398407546521541603579255047862160057585116318694232907311983965474787694742959011339312051047142590657791931225924212440344523577402616494412934857112966877654685819710749101720916160787189380537347243151522882696175030153436889067044042424873581472068525287366806088750157098484664125477646802919011917114256994575104107105547678279459754500152274830828840287976880582621434439181009123270035834044603258577575544353373094754019696209871846389311514427401608711098937393827094701117880420493759244398873211084758998217238123859221481796093654821999527514915583482739610342147836304352118581230656072197487473331040787261189489971970700404257606244670242212687822597876313127394237157483603512555595335307104609532419045725970582735417127036422618515285647444043828114229121557804934786795387789759891359913561736226006390723800860343723888487277842911432545938065690301401951876624469547466520362927016283985046179858994744324894404136085337319105219193796001079987138422864996909412182571361089451324616716337246541160966789710631456262637976850095613689551963521031278601053111701325703777208365334338129419117387311093127952936968317005619589271487133919114577411805597987165959313575689077303468163478906743554916677048200736352982245412037413766988521326470556857730602855614347029156646199294072562928721949195148023880731622259541584667428001684100787050787590058706979319193476760796580749754899377706484483744828781041349151052535116348255100604569841709134446949604089736911788720666402317528009880433430453980086389084789928869722522117576171183674200140838500271921266610715441545594886325310783228917360526873113800435041691662174468052536622251800752546610763115468544092310190204237922421812035546169095568241797758391556981238237816898062425314329145035941895999282629538241349346894270819157277428310168093199281342480803019842031979249586081625410138792034164523456455553379999148401252286464121153132411647582841684670839968459760804318240915322271966297792585894355794266262601392336884484809140120835335839845193182881299983760525222095826516021244459735996262405030390373227907279366341531119537668614151064963313698543112382865892519336898747712848926202274783418835089289853677435961059418284726976715950049194000483863606342022364451995510577244011683082707532576700061835152868795271080347299168427607345985080212655158771974594081532403163511142808015435325646203730561192998410613720647056931581533748956599728391526478474349445294448802493965053923407920016078729255931870230286963760881147902571639077906371154189723412307384139781514453062520026170047473953292305361357377463421812001617602376212543795286073611107927716621980950425044213816238453559929813101221225967743504577527956163246253044117297819288123635495866514357532627671585843466359352432519784391117013849049932537510635313966505015376032704429408286171984597839806667695638056704485493128490364441861151107327528638459441960204986419799942379369715356933226220015061008288870916627714291932213546710029772936462051839299430757468317078230160980607367193324635902032224597643892346409721943368255165555211494550640336046325075095837359286232308403759300079241559268465328226642065161672512650622898584732825332698971635577278325134933719050934827079923870700243818064727217613529053666527417478177273521720914596748577632663098163944878894730579691860125568837031120829098107318619614529347212753729279030388994627258248427171351801647699618115249810138127581802884875341632924672500110103778389117411150605838949475213394020996545621071404009593323089327013152697191534703381627690702163605603474618636295916396299662621329827749473196107919387741606629477535663360537232363809766528625881310377200563249134650822896458426697130636586327185144144683700690479980838793932645080828988843213191890876440429866350712095124234958105099311286138503996006193769419621527447909927767690339258249039076202597114915776947873739416921062506265374821234230783313155596461316590703138466797139287157593667308302390765802238344672584263290315996366281480709880088633795771938168636124162750574167816411504462221087874009670812185491656996317266929287681391366173591064684407126406931001956123841100316024433647317176863776627558838808278945504914277295797234624854798800721147040186337973926208871531420811608109446594401638109056081471324398377032050966128671188631303298146965794774893185683256483321866551222011024001986231994072840466179301588738056998189034757214737073256780741969142637255955357667077540967401445681998417133095110846195765699560895888610529553579147199006472771473285252129475383234622605704499988842209018805972103530683091841502845279458446697976102265907170793651975227963389120424595258034978066270477916464323329419327818393731833823998046662306297539572855037593980305718878472296880042211967002131224192235543547395063511517855197452932677766487651194619471957830827761598879907789383351230524207750606017979642697246598794481893895196909340488679913929509718215242492576398331101974085563472025999901320144635305037353382458284769271333425761654311255054989280003665783762185584901800260645086988744828785883031551063346219669379281416092748506716425817950612794871911787634549811300275942237102618912574860799021317307242976419260712896683420262289247606255632372303959982735450293718611357920447303536232520992487785658189245723249890448947858293496982422887538399024584206479729076056845140281986858834016587688244658542953135035280902943128056214057859880186974814791000470892313475095224394525890263196575809781051990288661588725551676276495464100157134622228704826094401308082161137877032477855891351759558240920844830306178392528374994939304885322945111366889793162491224715536490758746881456595142000089680582828588404785050086953424587732596433939049522118523578503449911826169327090053755174566221427894914120453607639624000651499594241114963519376779116975184349741748347207730892249808451583448574448417840325684390477255938834984839888001159251655182562642145660390837297114584116806387466409976164411274822044008866806631221178613032233396397679083199791376628244725734714978915980380798706774190903086621237673765327948636703175375532049805478259652626708925769471272466650348216776606889003307854357996625808953812198573415773220409817035784869970498958010173355711148034285389368877295358261218637314368587180010967753574063725540644961070960033146473148845984313130689986482668057927631580370969335393037774221696459467079225394081844196845696180188508273146724760313606231176350558860597676216159670189555828253541503297905702508890687855275213625600558643899518129949719013754368559216179246759584182767192437554190981831743965876473075477424348999122592424013857659635873840177793013947917329082299132601410987677820745337527876431718889808994942102578679999765163412614681052084379219449071348285658943148123941391674953652287614644065182138527646877091867703308578039505923231205407668425471212440083719064921794800191335628102465698646983895273282642135244550142002863589575917927565203401017490630579684294843078924074493793291489724070367398603241609808722407295899924779174692352998130734464393660897194375817669821656033836171625177666452881270424941067263437320286081173177170245397210656899400878426221898229061896265213805036912481644071580999081682336072013073254364232885703161902843393085345038679260549703307823096768834256153180948745646383617300086179802710685436073301175725077191558755593027730777538711787798543164655965893781972148547597532122617974303807641961938147321738449518398984193941139982624260801137559363529558624332698955757037566981580779892828093728624375750580962195968821595235541816885353591151832343839464330759650203902613241370304383819367033191554963888445342689280809562151073437116213673294582500646741219114947336804687086022082895127849595475194101651402166723534212305815586356743730975009482765010867000673649854010604200442446211450242400839565698914899670587041479537209438792128718774118090796876702108304375526236800231189602192496848193827625815839701385093127692634370938595158601772456630506687408917325482712865260614768087639959758441632219349328343468447332851862943545031402912567268892169321020524663701309463323024275413475286620082544765647711684241482886886608620928133776163156012324644207463550379459526812336818026452713140255309157034897277217631928688735012583092182944845364269188521386940168796497197857398124283615080939262237961731050223767614051282981048785197669872122328643379424535445717069830549484365073206469743396173550456274153456608836869943774431569005818415052824602324525560873483800709943683914073385254237068372274282205475507387355639720637978785702855650932578801515953945740612564799097752794163934010296159446468029376222210836782215053075241066565890113385319464165298198389322882495810566417112718042095030690541629171603004990623549360178494993431209948359068547699212667025733966043192060811400377851522564752048212571899142885325209438447300739892117906667959417580490924715031865315507017650062655249972655969885125318457543276143657691554000790648277355442107948276930960601821245407300759750424421626263362698512416109390476398810922964534252986236990078065038994905250658268708656736751437362190321647063595201753766639023375670495364209418073383871659099401462666755394667570673152806475637691625889760948934533008131151301215947944281826965714619454615682670299685757141700667307040011138426274448301956081932325780406209839794120337356596590002279903119192050671958253359483756395754002744187958140255589916010190204091206561701320032917222913154383829491483838598440591796528030471013859277392536667903645000278481491948923511245930541378679258585447624417502840869942546041715294277612913629281120496358099863823428179032192489120424160482016486912084110186021064386273832478967456988819139579353297755120817743892068979157308895197856945009984156589812296809983215366398538444842712971936963442437343387628890335929045932392689721322668041211962316268022186891593679196507635452124665907419178079180007276993219280130532742639743977358309307706149273205004331335147993494213957504352550454188913487955284812011566509821657566868919370262673720232089961850659098160269557032323560234401874999665204370830289032929567864647984129154374605921169770532825329199735491002478937789957602807549187041630853186867553277220973117969689789859305101970801998442492287909554642459304582003197864937311530323507414232084648340767510053770085281782476843716731398628703389051795361586353455244882143787586679959524098906399700811040794473382906558630962194537820693268387834965893269673624754645921434890454435165585184317663702639362794355552869272229503248556387224290182218084386298606807350832047427726476656539783613765031257413076511914290556458916803786028887665865167824938428656437676222902144764169119099231855697683275462133069458677559415833312670029437079785831321232805675751086884735878774802274857374143143091341363776491708514800742201282562172957148473485222084647210969723203543045479647367898685387828945939939842512657623586888534600715266941326273799778060499732756555838356143394618295028598525117015453991219502071928044411697082461868906666452388074644780182638352905762330674447720401695015824570981283056747081657405057511329108747917640196349643646132525653933801293836582061832967503583205025023076960240526476638162123344151881129636152492452455181253748287502638213211421333991614566323681627402398543458675790584405685482151901689560367950824818946177732363730436205355903016673199912984736999299097016783417716525542888217151686246114583334833112189019654935835618983202581966440831132878976832526272229065512020265330970581024317094117369621185878296458542892742811610364583140581084871604816487386008032469670064327435322809016689007882245427778722216214589116281482985262588541887887650458664898155676080245713073005821489213179527974925526456111703374524802348157455284168051139218370890234479252050395949600914695244557013684041927217664061014283467843006076309822021814135455475352380945115841126082301942966148988593888094626540916901144331303102788159435487969579923448883421071383457202628518861061402342667500405171013957879294862712157879006460550180237921801468337886741505802550927463482479695063173553662015220460618964919511924097162417697791187379074502738933892271185955947669974329674323724563971562478736632844338017833849883048610202798122822288043068182884885508323035785434563396238469745704731568914590357149267885882891248830213357301722186143301688904316636982946744903044645188793387689832681381561743000773124614756998107547769087953843302695193411306197013557808600424245237510940406444602693290666079914015048367481782162392505743405773359423920507256417353911935627423093520872830378606122714749730130466800314798781335848718805520947558507928716885037482459009453386249059561742240483053074355956316026785471633063424054122478214861957836063074243000190430882950498991178581170116150239862366370903431398721747375548394845430308540811307321467580465481946267953121785673282411920096007479937290763553268817782897085327324203404483566752428703104587123075805979302711887880122935586869125978805301270059781666747707693522446955514654926479098891272525490497773439864867334982347154160587989869893816153338921299715869256040438685042127003446065590849262482532465537200547692134467619491715620033752715052820877456350702886607715976378993005761759613408279977314997462889703319182703609712864402826602031419808466919214272675212437564742930847341352793586716254044958025556034122901029741890977193620928259452034454383000448557019279365091007646969191476604930989757285430284571787048835364595077547972924088804157511385066243047518760026206101708436853652265805546866351630753561468800753555938595882068133898918121890943090382466840523200381937127682091001493484248962205567238391514377323793758096411586735361987500124842424477982683503396461193486036573147507305531082384650906327211208663716702335530605091568193211876255884055903192442867338954372877259991331116001568584088456668653953133366774931561015313650034029270576545163764973446307523466853872840060619372880173796166246056992086878432254697040352013410430721184714145015938745701251623942231655897047349555654613368423485439690183062743546241549731299748552047493453351543046972470635188444406658778691823135004593707339350950650709363102927978896064630639762038477616730902698536139332033268754898447690896075827605376764207584686389393276565022157638902600014341638338348887938558721366748305456792622123865175553696483097235170892390870053016945055292532769687017851376530643800050195902069266991682256043637768767979292297617668466073714304166942293955819599507724605492099705197299389033464986277194591059517323275776430963172510037726937313193619047518443374635898473307111823646540390832590368785257412760072786671712461148131582029417340044413983104860297151725854316205234961639273573551864390110919379397575194621931885216638804795636592789293351193523904893332580523334462668236968851055648056154707951862302684277423308844294080889410478433961420698217748829481241854261549124554408022701022847898106692539404244155456392630984022578141944515622024820566805753442038758841502275550262709612011814851283618341093435886960130573620193087704458938594736782852312691061438751509617857122823693988745223067928043774553343741171676014099536206242051217554807300217269967256472701618456318650490610128435842066862555026490917688096999305702698727698610918990273659368252043382737414088118990344304527100437689683912345498729664902595220671635822341836112713008305241497745528337380228562276798042240769525838427449184135752585675523301428889533481342501286926890480662157442323752897229185370474875010931590641210726305278576772306024329541884610501273974417828692362632234352708286565996751497172954614469562916608419625257537199650436185767719499352738667001442145709372165350536199134417065063592926301172288636674562715015680156080210869247837292938650212425196719240057290446599137654018570126369955186439881308599309816043710182201321083665686553186212091862606814793567865325267667494520095986156909931397540778355659986751502886897758304893591098528322790257614960268071981537961509766919120913788835214083486177560279454797232296928714048011228242943798432971230815076354237921832567234333973808614220236032291085849126492986501799441567484530259021744008990678397924479013386861477811876572350900359989563695718467897285518565053578358474446442129178353940617465491343283482997224944211263863596950246326345529083428026584404183791590411532893003956838433941010625509336507803034833468394962763922534317151189418416114003631790558574218245687126530493968097595211519313091624638586835656575010503859720994791571674809376679124766756342796925139721906498707903663395021204810745845872148280460493433385059008789029155459102125667996031932088660423228950111078878072018382275457233018257189693095784545066724568458811936838686622953492882369372487410745362231870278268573707262654216182871032924980414422181466371260668575621860905321927935394630100089596966179137493675383384007362484959498358185051624474772398444269891798974599220301235741630446285840699140093197823140042271489158174473821264455364944724174902415146189861403883296816662399365342191157199417492671413216727394555595314825344346961562072295183640015674880157829303934214093990368510603890814921513138264502437399490354065058525930157112438268619989110109049616267138898058431060004276352912863166534630764281312744317279275458479897698318112842925683049721538130796453500899073587903419665770855422103064378663173608978271626561958607979684291400302844899693606611087271460138817378586296121674666488344166619495122283674732148454169833842177433667858095490285576950880904769829576620428009631634869798634096731142782425951990944502305231447539300222605324395920833800867288473494653357848368369977016896151968010486434966090950051207671381971199222824262108164140499266389141863707916152280788063966204277309249647888849230146602442478326503179992240702975503639333086850748569876394177817826573489980193892621912379346474386743068856797938022141048808042286240968643638366724289625125355457483716196780239612452743858795490780540860321332442285984305535281212622526509527120671413436817555693899466186337447161174293350700006220846846583300494228566982855936456368655490214810180208990914789071826617762129499600466819126163969166626200935140657723566029242896929806079076525554042910990427320929299351623448683371047109984165587770188732439602025494580476322963667560272103508377831141328764625943852652880237964116553007162083713378640532432352329149500064129205014782357216135060392341908274225407952617098070264943984504454431944270770052366030709604283063212722873426892265287680842246070063026864777125919339333998682985483203083133756840045392230506246869008133561738486525982651477306668181627320165258153366583438553275857450382888923011765470136310289342915926428626983685445365291596268316215823457118756977331476618273711036437667168585240706191657846940395496742547978878856429648479256492211097188532121689884642231053107383592723038527669662213977131622485856320149632640165110428071237627553427124935488773751869132130120342607709978193255942638027316264914922245948192701098221460115068202448283443932067040311982285604441375390427125505497977521246095191714531479519588898334052270513880165054485337655879463740282578360302773044205350105020553275962291281297013867073798705625870295534214945810529524352939791699118005021013317380728974186467184521056542715260608490982894738457138645830175586479434488701361951715409573767271512756202137330278178151103417030080000865363801760376012142396285177927478398812800273104305128131543940619915363320851501360281831406756939925929362686906122279691848236961997220119900635841155354667326786621251347136881466535994530858257400678212641211879034059469628997718433402122502875435351203211310572781941959221061010598657004866964357368017076164699807856149627706027788550548395216281577977643326865791331422007756397650961766929471803971033356504678802001083961168549572080305139120468956597132367423439641638585282869507885270046849525524167551230991608868611662625084684689860837236446512657486470797651880335291813576490904237479215964033267308910547960935651566192614585626687440563861853668101930909159757357782424922770247792205357683019548423993901730626970783566690872892493799081639932056494374718192085113005087993346401015791123476791909027344621373564475362772932940768921432838245593573743121958981219380674392411374802966159719239912886320658069855382677975314209116276802670883831927398120034473181998068715588332035282742280143563601605404987861366921712604634287453846674271831833949323696044287055939943820884463094716273889757059377634603141668774857569182273346054510224238543156332875737976121859271990502483624323384650097872168145688136204849403352738387701370607195121829962477221035351439884207404797374079562743589689932571505738970115516477101261065410007383245631881923269158862967658462141226479473502213254446523755024840162928106845946837193447525567134499186685938508700291531497521363767233825985370699103683073185384946712585361266587638158315274109503717223692929898169343605941258392835560164695726165346158778487963436464465599397624996093587428917117526613643571157181463537825954609550809760429170839860122174801446425314506751643398316769151136018923926760579923819742208482821915692245363775003353724921855677994405207551999585680064551757757929903147354196793085763848279612733496984980150480366826104732043813048253564108454202484849866411666901266691703446273674175981081945341609908503426125474992717361490907334078999701543657578845583951092203509618843887885636033884489350577467840857545510980998172790761044272336040551404828507905900043238990387177273481171716974462674746726248262536646348908339419933142549858967736345415977867926373166698160260678374148236297375947998713337531238180569477113699846144076227478609537106399896464577532981716960179987401276028591852769164000397743856624994287554502640065031219952035809876216628031400115416099676724979449937592281144230351958787034818123413637085271037526963762754672648356596562459508938207101023862214232242296011988906412112511533279409692714363180313738890168272333727270027345096800397977016873857759881645027734261482044308440993497810789792614142009517756123461113306762329830206190729823237746186656634724099668876303654724510904641692025865561745697355419190904594505623668870629733504447004621639292620161227482889539780027523589499639056656049132360426419609154533307159424397962199675696046869560157082193999115290339252775330619640199715624732281400717486654711914159756878624408772249121106115374376122797627389492180161922825383078614923599630718355995910481041777992451548752759718588281806353780519531944162404052215476807737757257576534136434272698915158209727375281699010339458754142782361059122616881830266403759097721161938126903888469201200371335260618660967086747435505833608803529247052694123071719354691835424994375585544449695773972669621213344204462765792194150619613211774522649150589301472313030039827072103574907764813939745965485740471069108731875311652014546837413945928184240821816865521566615270328023073466139197211567341285674201974701504596793623707817694411594892512626516654932076663230773704447096730453621723929259324930436737575847875818024144602904353755892473678802009482398292277755626733091135139108614929464135462633580174272906038120115875005424545252308892343905853671469940473497993807914028619329597372232122582110740784816673335150403557417405398840398565102660464091593623878135208982958356487134474811558111161006458441935404410375873299828094627974019314490762866421320490128446895833222143262169023091564333234129679089797251231636011498040635151314841414368908959840032843793265011086289681039605410800759929577309424125629396146908096715345165956115842595035618488432265835435613200147189008602262427356105571026859525225739976255812903585016017469823842833042548012153405946320102248818845206949338916971421702787460874539280954838497338892238514625257427477870283151456493151295485002997267082582886776934196413706082860505889350306440890199387081217992941335954122538239295863211331884716764557376725301785790576237965090709502410365483923429491697917091349774780497496142954127708182394666090431663962119746963046738543831285019709626744423980762551131884553429077444987333941340143043242597896186915198740259553109702579300551881164751818208726947540562691502373933921311209196339001049779705195596500800830636236000851123547331369158682561342135530403626719380503710306451669004062764432619683740898056124024405556206639648629077556291200686717251273469514785142508074580622262283716876261365572020749362565702198345038105867470223880587219396703250007735738842144788889071734417779041406795356932203164233652681272694035138501051788003792876066013937927454163773624592011198606595533536371517506237637415568865618286133949347975289929100072368750149602809858283054743411405720108623019792513646293126979123853875043347149730439328295544478097673755406410723089098405888865775119455231095594427597673732710961642211378235272472904868004042492262971224097058133709555932750747261134828878212314034613335674100289654751869385210788856534951514413342391252985234833785558682038574385901599681428639770622246550390749287185238237600523157035397687413692526627196232720361452516901888415430545839830829764811705178813348738774956445357463130250472458895775945368919681386101459875452701670985919613567192176450311466228252351909592821087497172674929495090124955407863212580143673339351504901219173447547289860640949198187016649352738598875700369479427849846636425866672266628370038428171526385419571018695050707671847352351523689573501740064803175231768307922433962732245652653980415028530220267741016265762176192230481227230924799282453323344048817353762429415628241544834685191577895070143228867538088689665262046592979604658406354084817792607708094927028061509338813458199678294824201774763035585594572861173481356481777969431828342569149819300526980753927886765958752020572956566960882756674927984686024036048535908002117300929527332606133136475144221890734370105112911515925282448489769457203191654086092437648835229029778926284184790880761424287245848009173484687598853123318014195250962754084688274053703020243637830802829590692672845651086765652040034552554629847096273066115192119145502672588032562117953181271909841273208836490018012226038914849146686775683866343420681907758682566741171810290070696711920266911078501802063829613446990018228738945122099894234205599749711501672892186069362609941512403444814879593047920260242326809745345030479590674695765986987010645973888024505821309891164119489045802642924175612181357683907335880030638605061432926538667462283370145858340596901577185563674600486279688786665810994659734806806776497472683436223160639028814870591859341179788654914780128631172833962378993488097180944247849642102510644804067086958488473727906790101360220529463875011906422065877046499284206439009569107317689279904672322530874012253499212852458170869540795292892505489728074723115088997989499707477286885375244396858051650604547395854727708909069947335595967389049937598194210713748422005607301328338684436230383767227351972140983283505634036265990245041960803867877837479690473489462804577369008686669559108843296722751192206294175180170034440685527262794110710023050393944279925009803945626650625116852957622604633068023692910533151907843606281801189877649973318632634557208252808005886923357161229928895597226040745558911593738898827238410847688832413529589527916391854778751224096860142663581096978507609371710881893184128100273883061441040869690777908889082677954461707504181083365791546432611735449328905154431056094818381489935567080584751948103088346652040848162609177008751744005822408591765913295562434485137802360812881479190393009912955156276861593797310880420418733251788162627016298871793474758330346163250614421553115844397043757275181188184226228578013926193062127836316726506410096233435831310529278570992690171475960473008630459281999693822951200703466729260840134198552148169839026327024037242243203405314048725494573031764389730727805022900633657540916969682933863514470034787723679315837622643993480721883682098338627985196290236247335018093965439452940601992908599081517826532711113810683834540765666169643480487324692723879801923002221574943003515619434208662743702857627354883905014507224652201503905922977205490643502491785395014673763059676659796868881418654027254847033606105532926337079880716639786856295400602212694013581522212700984675037248539358151789691311643826615892030921614101095920470713736871829343724959260444730323620201321183166146525048715518779860060622635434931680854557982914652760562691179591243962107082739864673716902727046826392510838193012086120194670887424690889110086794154418892525531182951844084008052181808526837608231449635032773791253897874022509812671642684951449876160031693773095176803922480423413098822340709785213425943243277365567867979418800329309538837119860294441029772868028539071795878885356872970815658644557064951181885748612835849629376750487801618459645249440172301062188051657318815914353271396117808900182230103817063307957805669757233905473922856811466224897300211769102688004028448199358682207508628020383206963359479845291731747060204862644296472768781545976111859057603548264998592265592729215309621258314783790476788788412639148809525789597721690507401632330803862631272380827630580782091181751409965997457198148398545281195513843575481172162467876411906175343915221633688030883038651525185838139088870475505891147516515602826783119864824287541044788413776430714561207681058592636876477345597409750149583270960170797668119853544077549133458502875569938158871512136114279168103890795640514553505235743732160654712513708971570341614332272809898029995318963297485321422341223577683838612241208562957781060165327637761083846190806661676715197077199570276371648375743484355545546822673447992121498644044650640084766979222059679128738318687683915258049926730313158057660482321120416806160823175993968509242884174737208932288525900814813473867186925265717219069027371168415508008300257187133565560961906072210240079478244490295822813247765409520207670813431225079277793873195848850579660737026648596558461984078557461950745327360528088754535431251644912687530731372127895986247290802671367885816058521284086336669062350234084232312947466844116092384255452424243641499171674658757763344110988761051933345223124114787236203656941951140886261955600660503111592442079848887062015579400916639628689381635619339225117985923070643522101231930226681208715355018673597172937966415877122169803698876802124759236053773896353179875594373908017566771900241240231140328745358498004144470884357910450871825096398591839403869102856392272076891179759572609066275899443356706303110205514064148871810320163213045917727317965038782085941271240579364649296306361282473917603082101905061331263616772353631229874492157757160673894787798570279752398949001278371774101718893922972895609616690521138767118718897488536449505082936958348176394466281976879842007339439478069778942355715145004511167724954853076183728674221459977936088975372236277072098382783237940569243069050165727674466948836954094286462109224174795116759659304472364296896193822133504782195149385819742629466903116398957920884978275920460448937154865250624493591775360013309349612674127974348453255188218276778367179179271542941409140610771493954315772279991084960137614221926358464792816002411991513434127219436039451306182149082172982655688811408795005180906043277929847418580676902999534342307237800611114286377372006065274587459324205889375772527449852521499824946905153789004172493430999473666251545273093450340700916088106595160522853411342238068470518640128848545896211794334317460585474006945646107713763653868261420772709040208630786574045897822122682727502255493403543475740034586783299486763441592498217819390292312899772995888772580482868822535949791988338104100743906445366215889067777412521763068882598154829256341088020789832731338229321168590088417756957888627670721290760823353862547307964211788897053585586411524464868673073653822942940547315167644898055611671264051149412307956499360513884903558748367378012357856821456569239628062787786502072215742360073496042088572988527598691883652137832751754085053885764016194630452136312886860878602377890323779616752658750954920670212420665528196508640344620558543757015385741648256902169735266129863857633740030394655189971635831773699660275347793555414104596977379601800218605464677227856081123049279423603471554078636240931588118434660186968927143907466069174191051421571869222586547297395411359100304866642123024718725860167535990109201355805468136156058440755156800572878408789486068013972732387283843268688095634589697304457012971596373602194039312773549514414162515424942825080175193493227929306778295815050233700285555053060715252710137107779613276780347639662835951978669409503322651705929695545715733711168145735329700225324098469596685556010165178145449818549377265137239729956143456879620119780932932159717211745493549623463790469300924570769644916737889773778887868007080399463787094699670635214033989646891933007251924499855564766354034783079348067565177005877277091744770345058872410354926322422517716158500600600440747414085538355820318741459880319119561762581183638721234671511830399545412740585931592230123127321369194162418823233968651526165577127087740996763501769211488159850694792876305851450906906394657625781258549171680353714510551409531027523218651730629056929596277617107523580536886193356280179554417855555272530539453115897060789688068572827424551564418835668667284425001259344085800255476749021114943933417076745219637145890866864294252104675339280087331148804619426819637704926533971448511592552916677160210244472058987550510281222606300614267680718229213858880304102217584754883160037618173636082666780223792435077629144117003422914393010109621288373794332095666077422988658720148773703732440271392774349571888216563067853707510070388571324678396841373139228249166113554452922807295288961604917425083184485210761827727409957290012825969465372658089066400615521739923968397036001663192822168671856388196619656648717720295726802955827038943754609981644702414156280462009620740692132382241849856307717223229310680496168007332812596500616569370292716268792283485095172482009230713751594132723569140466106303254126521885632620278332214698710458252306176829866041832375258165930659823963865950764056672911348550482524301721391660998383609864825475879726220240543664509958302718969459178553248316048904173594056358699468127988160029667020603190439398612549169927438513087609751315602200221565946057343287753834443815246483607202620791056639963376097782565231432870951274193402822376434237581222870604110938731942074599466578703914386429619472314045868979700209629099514138041112538902034203299676706714201603225297670912420027383128511771045011181703431855830431170171444991758344421125201096396856077048679589803290159878870540368235693515312816541076424497352405603238207067093120967188510649081939180048004526519105707512956208283821615986858107362733764535253377944379794616063783789123415785095135900329887118039497244957278221346725241319248757536720077779210399069744247164803242181700321741579761577560394837024749745028702102797083747093013599676361672568276359240406276913124523572722384117409974140544027427150064121927295343998826565649282054712552412834413294486580871893803752545329542985072964095686028008264239712853006140626099713967032782915040537990565762514613591308540680605417911668174846997029532400427475745085397846470265798262517924004947626299310613740398628576645795692328497109322663014777679848637208070511794551372733287310610649108063615756010686968325518887368347676822108458626016101620865247195202766453921917453301088961775256733918187028891541874061796447392200214271492893549337173723423735137774781752386893005675745809860960285568347636482758253687959510244382942046237260923661756589949942660201726741716650646262824983487534141555361383927589211467135780204369935388511689994768486722075910942706109253197783778370901765005085214519585669352821899562254504602108617517572524161600220564193368090282037368287521291634697809813784678836595448542647005777431211010866338186550559778031680323132433039897010864563186472445083019099724544145905260849980020642017356998158564601118054640507975338595126064818307217207680203756054514038777856184516449681773911249221639035142579033664041447664381161522426892993025482002169534020000670818333771111191263694198927471329383016098141780293522436775190345590419097947581913453889544032865346548030242753423642623697805216558791292709308498237443252241363417603506405587281466551071547467776555900798626360917444477231472004885284699756043862991930360714232313407825854856198437901302308087639208841329269937811302602477853094970703005151877349846841926289986960225137887645583665972668602988184108897977367483629899107656121480588238102392529479336678371353379076301344253792988773184550330315855315841015604439832920546477649815474262553394138274353941411381882151948765905864599643416879060952546115953105212600655066688755010184745464991884932092921627720937941112012124860057329469488912822707932125556455341481074623268857787000930138979205618654793193699990162353385022657590486901504916825191733198507754948286497142501623794616116255870957322359861250862112182502149872552824074049902682368962523860388568856462948006218925519741907703918838182224744741856169479961604594136772295784482258944313256636741893928619076140268725208411806601508886072631078426593138428817056764221559489436061338070368811909758525235307592581542012733546662838442586836624183370749382800555494877823836137884645719677904414389201520003005908863967727599584777783660834880254851893876638945266726878703669837337449368997208610051099090028595215297159571142727842747921482793983012976385662686374952829480396187916276650089116861367885119563185639711289720891430453805245370688633963942195934693450702245935005409695782099227506842268902920726532172879965472992069037110490367793579232385015207164409268793411004039997812848440746098990664199963286252989848837890936608521933958508310872324490066369359603355684674795776326568489126555471232229507688525202500872823780152528633620051538414784108701438539799987538716324870475649778119220646310762060827140432910432906159282410112517890172068260023372268048203087034865714394393343775593741320737518901560742041249902964668673513263820737350857070931602065710479335758808055918830653003070634015813917212662000619608907047071706373178794608539612509752394363238409967443829200621531959470768819374428836391591334450678543860099289524492280117289015680589481684037898999644864376493219895235735277443836323179826571082334286041133352786173252124097044191269835152850539516523510100128696246004011962051937042237635564427933269469309639042377491684739184667803265911909324093891288933828022025560240360942401948693068063919670310099123052135485923046951735050052852249153974742237277961442655670130055879679379078321374295036037489052863865380497015655255101099898803592943714037168880860571008009756279586156248149068549992740332717241347433713175971417484359542849511667204518708662632415314998194423629168465705382199497760325639253738943298260822974211925416146733014856794780319752931255276134817578491972913108638487856372706646330297850999725645659591783731586012608998180107646322393703409380006932949566652291198865494450413143672250008006405530554485684419529608610621876612683576065822097724669247522628320905970858256888805412957470175881412271048609049411022100949416992323416070540837389072647353812469970679829931151302581496410332986890275588773952331651864262404694625280490603870871278155614812184501836392323500921548913114852092189727389107341056524585565816790014234678924139213136041663344632688684304581537745190911809776931944237961511380550250460835718995410934086376317889142470868211723710099942423715128416439991601551494713844277614754183320914360590188996337704999149982283890416949903391275180035784130403332307740664020705579408273786397861955491350986800282630005763197194722062708273594839104408907220520455329118352565639180998969478496303334142742952990246454361338195099680827575105378419071475259280003368152679178506128532005488402934126430985953039574242660010212256518386184596526774815622285707306992113797014686025977615159807003320782605521121699823935354761095165419284168426586371834780856174890308160116603911266358796474007672946826790990037583605299132267471494076910303806371272399909541113880686619801372256101068876412286384938023037823107752502786419451919594970501368279856500559420460109056493191229834243775883250535555537996821507438601490633100292999143800917721569193199080273921238953641947263955959061432915177407273523212830643085851459999732366969386491017396941380839107413561861005162401179942055702136149335229751090741366451807307405191275096154977805075953651599772257548754240277589854373875856642661357332913762865836679473361828566246118959939117248930232238251559373577382523988402459222413506473634245770819322133600494265081676518404806439613490809742027637128423726134076185510622384843835208254331578782289087848737683830181848958885898971315007172994664936287686359237138310695881488909297751063033235310697743710934892054213577807107744328358372350780469022437566900266462995266705801420598481511029123972884180979801099915882313203278603274631791158595374379124820743902729920316041359372287733077788523140334782394671562828921768049981923041254904734294395977041545823106837862072503403919948520286094617165110689755076801674561147851737486257134066069657118549653779024457144832102805279970851152861432004635716542759808939457762614867080635359538138618910665165716806205853757248812950197870957489999195550907573645316479690132530189405461951680981516884016166469957313843868115542418939376112898220746814201195171539993885098788587066416925020626411704878865680382840013034353675259069484727789432178174564911005998016212072866729971569134080645070656322203903482309225427776700919944813533400670356317646466409743408590544708422889123171408638675602555192279150478632907434785413153428392434835589994929225426956383972153525590462106824525162383687827727459178507722811916136499221560694852397751441548643427169279141734976317367543964226134462675829255977545622981780387180970673193837421162992664623463493852359671258241093803810447957619614414306729787070478127090500134903133825810220711609829940577418968876450748838079105492838320444835446743651711545355999393463758365743593998979839029997810996907723221842990939424292995669727090974164107701205148267038259966141072260387987106688629747366140744108575352681305945823681290967293272186484080153554737855830783947902710703842002555149069697157024446397303912436147968392289422420313687983757587410102625279371240030963789433345659041689479674047637795763679841130571594207754273781458288892072777961183566157058896308890569664608324365858929741472621262568379089666534748292513065222930984788163818225014047912147867243175407350287980503741690470731917009776782552200366026134645826554498601910648120330971645970086525933742671684515784344957135536838795330407554165043411899667030479227456873046052941066356379592652919462417060838057090269707168666999871127410244906513116796331339239315438321368903276114315677380098511515486440463189343008238271544709416491777839355912878614592068749305973769756988071425866312702038315880460979895716745150476080750264550896481464503579271247516447825166701604311951937442547624299691025653144597327528060975486087665711500486514383900346931126174649106408406776448324404150196107525262278852743171170107803226163028078155776571710077014219787767389510507862607619757180247697099140577220056708329342331045176249333893739419960290036711733116761363247330700050601033426538064719767409369380788741921884812214051250463561427101392859849130756482295555574860638694955504312466254119965510007225696957004197021712020822533203582191992249449517941182775278806709721778847371462364275965428417343509670256778158762720867296720464210876290836903015339005188961312708933434036044148703183468865089256096251220516626615543947985914852374722988455532743593515678208245873591379515982882630258954738353977187088591027049766882056365690274800061715497759442325179402417816724081309780830443240732092616261316995832034356617077050990396618083572837182169813172369970280008279199040749596104215985962975785876946365328115046903973148883351068476845954628090289088227918143670522951503993152705823132483451200540763213359477698536263741843037474290769635462537689993551022471623687821352385873328214231447279370332870394846529138648320579886991002630008924016218718350995371141369954533230213896918042306367876475414369910920637514808128650653968057266716386303865366701552241910046818541499398152986755785765115673758924800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
38000! 18851321497257235416202988281384373030965413756540355705359769791427457169946743332941689110402961762115685046136391035127917591625699755698741611129670876981770234871868690515640813865508801707558232520584241209333091016561300255238530142933977000401471928684005977473432575898975209531185314901286747468452682058455658763732462978966272849379569627055801708029603182350878450452925692339730864371324952713956382900390444006214925018644587518320017980001168491776033436064767643380307202024081419857166421962723512223903711697684917682780332724841094500833805506192534338484796673182485145470773712300386156629202863296218440092516965323146970721315352325404835785660770998882800574643000545592789345762456890427721660488608876122969071128639103507758414938708602696100165303901646374840459062396404661156805879226755041818543924420323586458601540572650523686893107128750128849345664828228905753476004255594860455498368078609712045326548368348480114307636939675493612708666478974306504023836496607580848493551195523517163317965732947547638434285368736147250318386134357398452333144319871618951344533643537226183259758707927573491680995448051258960372248243299301820856383001967190906892463407016871657548764510768382120448965642635382810099419617062534982886636394926089832590386574781132521011658724701919163404599050204832536096724365525113552990805589439763161309026988712369305911659490975259105905131980389917772462575664325768854149335096419933310894680627534463522790555071816477361131766095798111522417682654737573193328514403710836882748651354041040041118423489593157421978613297214489116911345724222789174587452941467849366452200645739773622589357350129465577405178302720377954795860022723954583355141954581597056412154443254155538136620726270318219153389542504010348552675487298316717135750885364680653535636533441976774844623283460763427272415204466606321929298143857345131200168108213324248163281960545051142955857448462823570801575910553237965192454224451882415709223599744212382270708858526616642748790590537071402631706518681344104169725151610228898856473449015183497004670237328585787445584716124765393336083146745867462227783021740523343584908878584851092648616349719204988746416417865108326492150863094783855005639285569260891478535501837907464684508279385786286249029264230976000592742392822094479149850873874609159347122115410914740817056278169825885210629695966537165755717929333914759122203229083049858513894491915141208115998618629365947108590295893792090520648616225237395225999377384174542420626339974548187507131740113200822775876549610287956663053235104000001465293832444975757069487412358034808958985849315549125818534055945962173399230216534399247581527197212808250789230976971795392624116628607125701350418692399885051893888538995703727407866737158127483109228236967543132995563774854824057279298024774527276768957862758556847890314466762615435133276379220149665923876832377976603516035483252097548629152448099754961654503473091137756342320292233638411020789118205706104477058369780900907445955116624924027310211350561994265431347867587477875180532522453085204713356392961402787321634612548896896067864773988975342311993865310480606813386018134203539727120255505569360205279846334064967902394067511408420903006821039731297832627351396549558912170803338756142256816244735152283422146202616900119789074839553578700606472338464437026771833014212104341671357279345875498068463032636335452705586970282686589469570097421636467183716272362946355798755273299905476243375259301545392368987529204180141758941501173533229891551293606783758336872681260249777308049281050563478782209815206398381756221397930859573105596948794405456980641007306664452595931302972574655657298563918524504123868374029785622151753757648630250782094709193168072958288287417160532400793258832601102683211621795237599027601405866211296009151434897314776689630604788570737856714656405688749743422442830135095170674422851940077926749505401261367149171653470463581207462584995711142790000405568535836202234870834091863033024194722522378607761654662646530979588833491565333276554683767318759718984222262428490560684505076904260081420758573836353074228388243551963943931665547352270972524414738369722871739616176586522677775767093825754594036049810904367126793683725278675783063710921199135768401346583960924865108997438469334904349956660440178724074081954213948682238457795713292046525501571838053595400589699334524983942607444103259756262032233200242355781709470419411750425156880308606443987060957691342967422604516183255396029103216716062473821774074660637754324987349592128426307291136371880337815455726506604278365512573547475561325753799310913068010181310776126304572912582822874915566409665796519515546057564922627708541203357633395030173019848158865770512627979679904105355466918018982593334575632114412339541774477893852628856637545086754995961238045723950932006719020552242676801501645135254835424396936382496706170114706318240340254729994439120209840994988962014104091335330070060114161094711691775478666545468898045561957276449405664570846029292667405152548408630618704946831266246516888508785739357926564385305423299555256990593655325749294563495260596964524110243297734109139324324803373723010910166763855237535635875918970900804499754793220591221237725455088679024476974764574488901151224578525058622193926514916879584912536818334864849945576760062658433239408168350730556972219547787921249745029968789947085012442246619609637577380370477727559547976736469341330269186556324754807951766750595532439359284433485903370525327968648687378776901972704570712169169843891928404830473469030457550605974633798232646971154829928053316963733433445126101125834514847411128630253273616559774782965895964342159776742170347455097357231806561886727809502924112255394974180322374143345403760891022315275276351705041243975126838910232831922932744353323574204886894978425324097414136192984830160154391770909162596157082159337751201829063550654186432437824735794086212714335100335438417728457164252115918183308305310964115903583526812022809962297993401906690286414996755378942918725103457343607011525170165909994342398631899060030833521377205274520257802990506240851908925723681612300059156114169213267980176233385557157955843955082706363484910603594479000981011752618498669497159385175802486911871816749337952761434511156565185404378679908655349336180076217033610435931826182750466674960154990065610874923809153650561153846860181180796084523293873067316975083114152778052666502759910820159982170966816659189992921321394880103624177806262442245048894933612718992758652741450747218769752503810319957238852616539364833035229786019068948561623147795664606501615893631463473481736774629165160233737060492626702533468370981358744237092139796139303685478148713299354304581442693010669917534441065951647984448939308859863780283559142152012989649422897357804623213724545604753573858503976388660986466635988133286247951037329111563372453037789609725066716175092921288258411795990574372455504741516369017645132873130410351360001963328187542655204662148841338688606675362281134495479479228881590048503216028812853129434687530713528913650494589824601082529620952739625860824912990889779758609720284310166549085175716607371732870200664963207727192318896964822773243988291735906060594825946942158895565409746546621065828064049144262932238185320569086384840975071452890161578054236683941392611755451107810518379444408382674815578059159515086300972220169388816772430480701615429427802983339353029932577409713977459162144064689231386996532490216832956446916179756024583914271532256880025631071259763238669653365010813422748759037896084192475659574091912007568483966317773963766682526816213137522735780829153719723019287254151441848492529533922352196938925107845183459543763664734513925105232932507750476979281871239834546980236019883263379318257832078596534974492206586534052362448441371948898892852309231917727389264288897332024667816368011919256281133993845237824594999743230667290772387249826890909002928249341986545242086233929595358131099835679393960235860607028787995039265438827396151183892108888107846102617858302350571079824771969925154305413195656242346285704009108690639767267967120468154717594220781490440146710808661139668000076708209306219117034759489764845201617976650648531375528194117281620195597074932143498320040684477216127790282431007786428125065288638231178978320961577008545664593522240678268513709639942844404365783433055601949939669015086184668921917619936067670548471778361796630923357299678487598930112015280739074975672667955134361972141936073986810130555572125330105199054608007808082586847604329032275740973237601884098461849347305922986177102095781518005499053609503169131853184120289010133341456222255016515562526221124362689562780883072098526681432976843133607440814380379898245482752947008959153828533974723232094868748002343501133606859646218888044179494849215027802519379724115504264485080028651276206484550816934097601266461807814276626035351859461455798596401641406700363525156359919340936542375023619974386029877804887731661659248068701461849836398130530778238907213141943978053254706893656360786657339842102959167983002820823867315986916112213362794019425391905071753459456205019936335477733671043002468677089254672856131422248626615207154392457585184688372892448023343376397816663020087163137549060888989813763554081547075220498829593550348199378104576878991822642146116159157947051514426866909583377685074985481015343813371803111183443394349645089163398259914527897619027765632857245308555947420530398931313497527271064209499151609121448530224204568442630011314827743682581247896807100265835639936794699547641072107211466879428820405251929281749043818740885027986497730160076276344482561507638424277590364598603561381199093934489352255491258953410619168796253124042625751915183765809513574146302501030829804963297735923462246610197946005971272288141468201964920727787887476160771805637456946855959328750973299209634568070968265814380629690435948984389144056556040263384619884262079703487367252134143586968012291438799545964029962086331814083094893169507356863122616687066936737083049246097627952132674373939666613874511185878675493195114055938273385421596255568890501681048609545543232790504393363334670504818699736193040250218718177937302221636616786288388842116384123398806616836701313707602212320867776500870112988144778692649413657308338159771648252128989708294891461031254222595538687529932407884688328226059226386280480771164279103725230836490128857873575650871257935432075792231649856515799734914670736794773891069842266799406248498118181709809368741372093054519247821157797658639742079867063300665888981176486829602000972013128076893002455606115628634909694579607261431119239283450756810422548061230801294489143212291236302540859611094372134828272486837750889332055933218079687246779584287574837197108828691809669772854217474717440399766189819299671161975761495408404567275764514460897091935225384128885556532058541231492007579057142562382111472780326383395029639367454508957582509734236124884059225517248079649770499301372361547907863881370931738062689926089941072601829508514873119579209162416734196727749772400312182259673563374117809543913641580547367597259315569065554710040897014181705494457336227704473157334591169243076569554130124006277395728531853695218612210088919873519903538663312446062092230980549178037407441742100532234008496666995309996156436103484052191672445543174521552767210652949905660717095779473114142328538321873067577647394134273349676839071629278057255581796898574481877215990714325066822766314226235983791818006009352350308468398063781772913367193142983103681299241888681620111431727132315760338723157842945400352119252304357468657963055363302614981011219786965422872842321881691828953333938731296186138920653078834292942186229301607139833088313291807963097471301120440494514505463818364494977808410817740798471326730354155846506767450666160087521824702363244030296682555730585499264051037541597790302800400960366095979256069276978596646124753206658192271013317877220759512206238630318123402383125615814917619903955038057739813398585337361815025024437553659735141571785123441497726138736158735283572315320406546045125217139545441393963391021982141651613417475928134554878195714234128368824871926344072597103388915741406044071719988616570475610963886091013157021626610407238268539595619944724666302765665331280691938607808992802556131830968491996979104371043120733257667432974570329096692216631688889803559318998702556072076892090855922675641744868860737076117562613987063650890193554881923660061365317251535419684964121710625222817496332037408202054818852412508546405294787324977057383100545515010036299861166808766618497620426649963626495633424854023904493015082898824796520471995432402088199135593584238170989973040103814081086577128968317087291826428720383706546032947935974353136492825878754812373640332600968548142956513066324592114504013410781790732258699528411661207326386411379570228047496419871264293716085409347846488752834127230639346860582867365152463950837415978632513877557382514786363945995394642498725705979961441423649434899217016664739511270070984317656337576597634722654118853091863428535551330620761385782198116872691918186115878154499023270873186449695144960041624999638552791676992560379491742485878217665403026959064858856185351690980008583221046627845075444726660727731527369069612278914318771671850325538766288591153521203468061596761145395940101710330091505708965212769197884611068876903115829371742599234835892795188735995913196167071274727866046278877659793545108932589597469669021566881506895127801299821972680809218698893992408346947595985153716908722233002514701883081766232234944071859794423561768745186250494118705273479117860238820462345276688567635465020081760200260060481931931361998743296136525690467413059040933980210312085857676065607495930412738233760385450660358467766675429376408742757496109546832735648848495430174731552313636653846682974885603653150474867242401528571263549640697213757095767308948860101696249515124262447386134994746054851857418120031374726131844514139889297398895722741689515841788785446722185283540044787329093380820852690956440730456521002649440836159636701086069694503146537285322753928295933164040340461307015259806751330136797811805643837288609309680945320582575903892954126744733847147500505874095342934208562139851683801007002025574340245836744392571346797981394924799310466668721537525233522354504838595680667432637274834163143195541143331351724992057405046076057988975892790771883418974979986900270820582639070152545951940368733913974267724104107722666373563520800600908456419453038221547900236518956949084064983990281302678521836456934523164758634297003601187343670318399820213008573875848989392508927278126031741305709093291046774174674726532109168451071855787121965521322982330252147970411832252800155426477004724628451318954456088086226103307648110458011906792929168977906136149495169034923501880348105285059923068391367270630223060274019587179616945500072516272095146486593915760208298252946075520894534953636938208591704176494097536112753274131900279195146467674621726429971622058315099954170128701818882650336029348615254875064948631084039923637387518943216219545688831441382863126059782520008418039617482753098777661327178161775113034301726361804490728632124360567209094169552964860858181172325610153575842438021451680019164012650199412106519249843247844813603313709884236073834398784596513742692352724525997606604401260043921606716397687534200439082542152625818876370554682254320105720262706603994560012754660428044063421450249894579044444008969206876773737502214856041269661843812231676877501162384110383738564868762415145979723927831212702437086137940472656844997476657459914016417865326869285599937842261956887391922412445626033589270098089640149944887532853704087712742210826672065243045031753403386076134453399400262356138103639961159295768657084624929505640292477886500061622243663064769035353418519351943195987662656379748076823947221819253676829190849212079691579113511570214919591132583736562006018703763455163189089990587259879352360310129308618227451091941709441031171045130334995084746410759074103400344520265871731623473138960233314968730144336262027793341434748085301186259143137973383794842429884605851134149455751471061475555882992062450556321076902938257339917004101288234867959102039702496908745438375365354379515170032220963061823782794597356604380367224184974680749561498601299300030682674645039408345258565570343888902894649671991317517061044989185442808050222112100980264605608709953872598451843071510519917249114390515537530758493184489360901195034534080476176431176816109005045925339949342902602310336740528781461812998362820807137411660363373178025981169956667631146939949750861164112173916995431623375645036350440347144994564431956254200286188176792444190395583492307806179689668828151695158749974812334879456124313073796388774989073149079615084451361267482516534876418961859228131909682573177334796827831338904514675790241872821528570193802047082362602220135207799554110303215919260261591760944285231789915102078722561464570579952487231912226236160932668881260606466302140925330384981149485820864102196762262749048407853255934253098989616982026474943518394360510945507580620375009381565348519949104012744007008626796600055266528953650559709835276777220142257525929684147558978215915204081521653003252449363222761004191935730143977990701752003898244232856862379351534887313787203717748154392369894235196347143786199931345144849755187047989950825429596851429087706275175929807474176073498326788941808074414424928857484917642512824554575479984662426461038187153944134041567388780806441335110853382644110527831341445706768265675210601967059277609346430922407233223469912869473883220461094911982291901554819839123756856493433956285429049781994779164472300225456809241140358133642006241673783828682738185061370197850138864022544201669993713335615307822281825273327062778535259566828635376058188738750593603826694315538550852831568885913018366581587903468620097636422474480233544110609182476510142380323879860510173574755056552043335526425234146434509216784773416381527788426309766347620259647751684789809100921744665753051903118799443707964233663451646022116151664251098394266710335061736866233947607605511006728948035716435568764625099570073295125865210320640865463638899851934898471621591300373341964413129314990439932483584416267535218667906469589333541933032022733163644959655856319573330852548660180172281814518172654199514663769480594929431615706863149939115076099672028326430366550488428167873696530404968121904411053216775269284414714246755825538380032673501301741185285682384857235433704746598008472915201204441723242686288691729877679598951440229231523424091301331498543469267925885099243505574022684243740018461528475137927135648367209500058428122240245958347113812193968306609614518579253287929334666768357354246486780045546505425221468407682773334876653458662169939786914263678065334454779638839297392541410234601804668270246648250165793329764759373351538033260661761336227407644759862055178979168935802385027711029922357822169497282531963601505719009560445247922634300236536282622659986789490099204697945458946855649416564641017264886806976248675107947246391840055553965494526224944902257686342541247273121972913343827719512935514488981859343534741682839727269133632124471533550083701494283323702168090664958896338735965389283514221893075391143647298535718739190627111581000179849054433821069372512650891426372054479821968541298721533805286815004852068194901524362700478050788269490040959888710171785724516386630623296749362062932880576363302672976974691024400028239023514399801372461351399490686549886839667146914030765255027575347152482275977232288413938301492008629977847853912449270669913488600379002937949044501915424519426318573300520618061437867009486450226770191054594533095186321017450821609994764067722268525222297993246612303351871862196223299293389439548796423321131995488948227536713276299338107985314981217603788000457398876418235532355542442729973637343009701616096258954155918305018594221265440501635730371350260162307146392895198707390694150132431435637020335373040101635484358661435441209814225685316337970876347302319287787167905503145113575115257237822595096236013857242090938745476542911001252025433365018991832502187548840341198468993379589867149428164475280359108001914286884962919421676820689815546720187245511535799627113400026298949913384741907228142136557733919010186966750775677336926905703132517556158034068667955167493759828778403822710723731982786041547546713178956954100263779694831943408563977845889311951900926464261096079588864276154185956480981361607029084726011936778404455834007932091039878856840467289151167659676059133364015173127244776258707689497147465063702988319592292549604908526628700669262828802729179200085384730618531931244292429672869524910756832854954420193643903333482361675682899258103928282765829531992752326901548766662600261607447784627196310459540003094150054828682684475418365329331162859064112125280120500295234068625794731426920221503678962427462876189238350799268293240164583292957423531489909345902863806179726990627498221101777639931067764025973150540541667966286608131953200707598493576955742071454616967121295967692079230559458316275822571058688705796994810470038428657821053166244472016356607720397698720921279871759224743368712024699592706502335803206160604097200325707704225983421200006045191198323810079676648934150865295188471838269062354028631738804212490028567121951609153359561366759236519413016059265537780979195415503948051020941336819570031645126552835356611326134578945895674463597661308190141418141902606297773074464427782075260320600915135470951099743534964713719432162503010385643193585267904285041231757035475943958487861944429642341360017080028795559603274394692289798891317840947753098189137099071028854760333169249057379861567053380660222258099097448359452947646965588287387998479156004634741486141344819294690790390184492881936091147977317296912790528438502216040201160631351231842811814546725364581068058407161498366398389599937945618212515094816277949251532085701336533710055038749499889919596738043744848849609659272527883520391280240359562677380617873527313141028684747203492916526417760171361231037708127764917667779632097833280141904150481162675847396915700349300509599853150850026293998364446502783212370560554603020317289817122231556929301502511741207649816681327457121121974419703131987256401327639082585593648681283466764222055057464544272230843280594093292691031451746502194553887164912241798438038077025386999951276420594829600604573412440731854217256984392330161196064839286600677438062567340354160299707475899523066831332490903041898189737213244246810955281945639248595975460478845933281432377381390956727408571203897064898670083612191745502417147795025585237620944824459003811962038067651250304087834909404059413928514253775460089448153352624226345004700515729325294772640235090033125047168744794688556001465998506393392622570110920207612017969169491753386506225353450320641563954996146123194269249369359944411541051166220013518948884987814088929396038036058561161356694980601629320842125422964658659965993207212105780311673378582815745640313216067614230438356878146335607829518408726057602555690307721049089775103625591819484721391472364944669521063989773339635217478935098637548474783477312829315646543844999719717962083367016798398881221925952998412570738499044671068301531380316868633902840386625120647884945304220768678943523179626908009986169089533779664842419715699133661123901006516861554672722056194216159130373197765492571133166058144586662829114106830152101396327555330602527919631644602269515665499893956190096644744729222385467320452954359793971993943311103353312573566326974151715684424620045643758109458621164697929438485906811586302699300743641789088628805821320375044076977068539988710706220170575727590492726584125934790135015146517548015664002200263011166655747766317416826576261755651930505999098320708199952571045136692621328545410229863547265850602978836928341759790882993085342954779536483621281451146232390566240342807573636706844298134336205961515835197909638997428416556694008202609621997120471191976422246867500008253206265859352969873843047276919857736060552862075903994053295093396466376847974452221960615770452487563723121855837384319736846597081782048835873677955007172310425731715614936454226045324513944139393260476051781558354086073771046802478507109714398872816367130858608165928403692391205842080476267866786122323011652484549922975613345335244368986684809012689042251904107578669725082999334994847868145332296201752048439711952179081817529117722517571588944379679414834502339903946614001999452656019567895443135785901030885988167646291320595370293888157707851432320910453508907697327801265893962124139173620493356129528944774947767101481260638422357548562697371335328049674310389964113141988394354173997233769198489770137837531245837375199594450070832957345220222586911719774522033287758239006636124350616861724636214797325890341833340428194186406189202090859953208044359423473261177884518561203226544198565805189459734498990829143827302233106267850534439858117100911087784320653437096495528754507368896370512497039770248809606641909073689669139380095634105117551238625293622173687525247887559908214090568002973944887138732301257309463222116156720970377025661279967916835428620472926855487740609454818960051238179943524382741882028679044168033678075161861774141892103718461842616082812411673271621219433478388835486687282088773195486934996143835630003392057938579102763828877125091649800571737516368522192032029517071124309266046606471975120742262560907337043362518829230306265586005314709476976623183615540496443081686993939927155780665457335866664523959420993410044581176774206829659507519886814559798954258422765880210163386505692140657423465572996743046080022322639962155234852498346131084511981547854001268299143208998547361019844724705790371341453304310194215671459282926520298250699844551505669447207028714319153174386806276888262889505634167131739000972686966626468316729990973175042865232587786866321863050591611804549891487688101354520777558168983730026304916038167216961536946177786100758987486171854325737620897946982093318031619123955336848607518607164732329677776490874341106536664698178887264304572617104717578124601760699176081092075714008786985862321893394562051916983051399147511872833164322214409166822427532768084280183677911107941028945206690237112403195537365390904673707588459305967202791204602026611881216264628381144616038946222656491774758134812348942533055763582367237391850774318322149696638675779018399625507731214558507704034378604004155173042096605897244107173385084830340883831667461106769393572442060453129072006980709661568542595432319261702173036352709240789759223542174158763759037799875050595378760282660829526566322520814946838603034528278119227969616090235675736317106158979894689390667078386468347798063103611783216273032737223564835741403679249024663624372950577540400866317512513354072463777160574293572894454559654949501316378555132039329821485128715806234327858019754637335035133956645502020831424950295437647718737834424648382913054448216646314054384354526546164728816704822096280915013249977619698665052774449541853168417219108962084399824512588754116488966984029238336566726838571228256157515056097507515928417938412123149017303617704446874290134592902779753804742859642306704697020052419924564003804805508059503584350339722785126475074258517160468804187405600375184511429171962968314508523497310517404941755629959017855560162889176277737274922141784178119008077110631544292015859728361587345426461445934477200456741289532281968646832098658467042879692216079678342282254464579126167267587594030716671647677752703115991808962914221440271951197166453946507454836049658092143569417668385682657348143301562023686506418823103752821916481308371649007961068572572319140934812544947291397358106461018154069267061979827465642245631647999903711721509719015358677913773518289374283048786108955975288049761029084415161965470784360867305611964940625777007858202540207519989563695543314267464824017564228020670905944559028709646893734796997913958769076912847169795654933784162249536408671526976236887034475833257372815301448524058831515172416079387444977617742391043802581921499792633070887760949692666419607312692033487317992121154304082070957194261013953949679166601950791198801832298244354607022285824602311091821031366711088402357957050581452263648003942783221235062695370477094575744717656598495722885709800408004610334461759526176862416450570883105125195081273439496322598516352608320663248412569793565121357857154574799495922867592889464425436165985840124378742347006413711599608348104921682825806377389082829933023672269875560788854154079240007053274598714615821802043147165801407064758184054174375056277069531335749065934160877514937247906241239885303297727971951662614981217780667218129316474973550662860186325134110064302293815861796596726350536013042522025398372724218607279668632496605164372121503170149192681204119263594593304004502718168642396738510146173708646571640007608176503382305388493102933995338584543424533625605590530246209432845293032287306468052527753825692705139629210926703175669416419331530206797929480187357673106266761719680860801081249248853146086713165131749699913694970551788576418378173862267102031360672150224513539551420543257579064418956383486317400868763167883999020111629727417212136634225333341995067237465556136537127604744471308737723683885762874406855233284423251968724625659126332101210560962892928394765250108401496119771894009209762280595658225643658151088027325565347682656762771624171853497025086486627662380880751605733943767282613905205843375622347458517364235948013409084611855972448881981880418740327694751950538084928255204079327020408466166402563240294961444802254952885463994779072203473300297406074734434179129711188847271600042615338163220026069031893563184515643129821251990429223373773795415805842681300417312702730448078431145241287904106216295681103676929781906403255797496024837195131846050647406495767988447552841967306657972861588719670584662331172573034815844786986064096713461720997290725899568051081926021933893272484464086399216047465014672236106972504458295611790115411313686117674543043778077067420569167304502453630332547902694755363660922048217000671569302038294607863441838655357509673235853038512963933920544823524700601200744311683699011447066279750716405175624694103838839561516522871034861219475962264348236760245882206313626475444323518333931026459463290912901621054880883321980738363612391812571984695276231894477639012295530584420524264344564894122914450724594174760650575243787959067624826320642992852324201632612510843499118866162590979297366887726708351529077196179882509029043171884442027636104709905433241774932651659801333203830670315541075476198958773319126959698245902151320452184067952159249923391449220526899769112351832414397935548030433262267338902529316324647627289830407434068880800097513278368054418827687455295807861651935494861219004359712124877488862609805879452422013652767942922298352863432205120083040000449907650486163403380329915668099747461874490254572166666110978962680877642919702752857921249457551009789028583808249628546301912778752082433576977210675125204337938458332408975468478623562556238393850333108651932658795688181101229992858781581894171255393618607730490158460960268416129273132937771768066956065771184571188538154495752297392658030165521134188139140081119878505766702736085937897212677214828806580348113008573002389248207770047122309330696551098462847818546364692075403433829223992052493648459688080456027970363050267359459268512023933170372179462573352845886054663497844930238839358676668873097145209720127706730600664434294000471774737376595901479455002233323769644745881085464166931967088079888095171050764950294971793602585175800568549078317539229382584401113263299620932985876723666179059394235064749395797151778467769728337189369327316875356912738381349668969455215515056705014446668971268182109806969706639325546877034150385104768715488176747505555937455302198013154664461706740437486601996548100564788721382186667625406127006865915310036049846222115141044069837001554621917217913553774190008031924900065367157778008990510111831963677134831751149592930437339043317904526742182484016057007464365854833382469676452381291124509921071152392983842142183673737615597217278133431763281982071038212687144051788859800438011819616461547115370087533870539164487572569636269631405017579124943889947391919996005907264367365116281135144647588003839491019442454407528247143881956527235524932329648410810070779427146401784864312486113931391735854520914532464637080944074735101306187892673471570582317311422486100217890901245460621755352417631013570414681086336612226441900261580317425124401636219503298300495201502735946376820179247209493369598915584772135785423758430380547116269019613901790063739521065047761803186049583987233864630144440244407575459822622590784468271661205334189410328041958533106305244174804126823695109056922249503048552271877474743657161740784830242808331764175723767204959964931314182333501944305192745598193270188892047489708450089059979867876870104851885113206823934877694329668232957008003626865164994017566995091084234798538033630332383016226870313700204386392638571435472058998153561055031579441557527505677920690295577396585195832673483787097564012152646520261496076846277402994893938436643270906639257526685676761043248692267645507404026833949476973332911348192274693607678005739966420638408967873692836525476462123875299352368377774906021665168950580427448237996906971676506438921432186988712143493268215174344803165354693372590656444738652313204987533114694326212922337040064262992672783929571632394236811089437803593563160963393700186365887070709527340018078027323929964498040039699556781093099105368199513091601623309025061694266562585351589832891321266957199185029435440452681169859173835918686481183896079878582521578715773358729013761943055817791434815167407453545521128327980554395378641218617035383961327820261530741017681845720852465227000138938636315288330271718869510209828536778193337893331736172486521638374948183715479077007548814817593451093180938012214429907486103951985052135910579617650924306254309709589363774981250155276010664723873737650359520333213141171235830209320692424767738795144702045469174349421981001955569237693881986736594816471281989834756559463308459370769748525658893171253366184877411253289708423935850269196896530260190759235125343510574259076660114733859253363421066575803472165683604691161136655931999532996030296316576601722310279649525087711997639300660200746280755307507801361161103019403498936105303907751891953424196084021625926241576682353831772713060237285955280609772933451032209783797414176011116144485702980272840447774428273368634655336463339492427958134008886989073709875187415050641672063859277926261397948617862469911481569021737757897135839973769194415259297432461168656948880760044162797679147207836829484868143204508685664567407739672172021808375883788732027587894270603463207511427422167322949793145306414212953345404100587885379800138498198566883710675487741567118105605779947657533399542741679298947865465343355692192778338461458892385875698446392738953640744500534902946266768551605827255067691343102660582377065098465639420109985719660707630696481965633693015447007104888735878880599211569854565411240395980001012423293903449913468103774664481161920690197724770203205735046729324257589962965317070072405443350324888678582149284491282184331186766493142098642796540551758874508612852176729078990502713163360696296312382331387602705022182109575686907208553338595687753896228920706103758017134217094623500975701114869575313811015207343207842782997867467769261231542503947985102828567134153164404541617040881664743518138089399393285801642253130456478083907170730634413641706505071411597930193993758183896983620087191208239211078956932250862158503064483589747852428945135027610366822114903952731282510050874728955458788910116456712580608015635984943546411806286967079345230662350973911132248104870552562684740478572310304407580824304273705335100172568307429870901142795148739358153220573780002002222023347690799047556192424425964848846347271930161679353844036493639305479354297960855771864482835021229109575698701128601498136133879618591096692206292534762988346386927628955645343914575989449106574530218440527973875635832407751225916780084442308971448005605308641763564518140769399150848761837158359397934326820337085960108083879354242732814577675551515879634712091556711703813046336580851883332340234248344904194123514656571084843347440828588801829623762052480571795738954639031053733515156528463664426351191539503542716279100410650487975976276437239375384132885114184370898689986462359650004555225172920343712960900410129095966311378513611339114040179814599292166129876372009799232439700703484439396900375823019688630173525821697180996072314667627675413865694256729362065489604276382056468487238065951047655279804643235399925164703335388065144695387901217929987771118383000243809108657390762087767007007918402754415108021958866479118165166959608402933827672128194519110475923795709715928428351871155025606889656522035827049564006523862171376256287760469428180629885467821568455135402597330010465369043419053292777225038546365751099537716234225474479869287637731965070452207548487229596704727628505758890122729103100936367374054495033437025878155991749552969344023408378307221965206820747649877831053052788892757971138345284813421272574168214147087065639791712011512586238626275517181365293387206551767091939886219350387176488384124908816986008782399731441008941160495243644733175475705047962066953791020775866894159168322174932110419301606611580048043508340041050245632545025311684513834718373647846022240449360297754949917635244039897196155270387828483286755995386204466279505674479303185476797316291260805681402363793699312643222621096140796101549083033293411948792133382470011216426732134896211414848535436429976553507398014259272465304092121195952749653309171184120175583151116730874834410575171292618495066597400090476891126772137844141694414037018945248018789757000358893629723769221996824593592507747725004409220046927741575494374294274533215723779619554665141588390076457966931102847701934767258070442402559468292894275257617328649789894617173142870615635778247145655916152690516783935450935867714160585268593791381121041010478842823770373564249500040874832869121530194651786505613023922393331024351195547090511255742523719940576530046888676583195595195151528563581255136081243109620883952887956621868073675118045512356035336557224137189643679466889703698142092064623330721737224582128171002722820895307878519097533444662255839114956288412197761886519135957542740619254366720505922081815206159738188236473216134770694012836963244877072251318140415683641157203701907452670453809952859609722965488322402380592633690181354410296541482512953818544780712262786796536100099392361323366202227447701037179870697085069924407993364498182362156033517200124902442583204668443180040700051393056258332708051042244769391367646185300445002889356554478024801081786465074662062522106431777140259698119765607153083376460446982730978826858915886235856710354780134122381545734114164332776016991525250580065813992208339286106819290224450640148418733261371543644514690569986617560807133656786925678587261251379780754880885425150147918172450764423624385776365649312734001243335300619312706570919904432965335099724221006045133392815466329704531269552415610328003861979289956617129883218152715364081223705096435744556184389131979454445248695968321413547307830320638186467512696455752413401108940179840214276336027400182918481421539906469542598583632196348403126631111192641968420371357817753316169560188748878301763557755869070433763995084399826020533029486052745896832712701739086003276805877461461712387572730670258282361233595632930320670181825998572339517008984067430659485625487344206812717872397953334165615830213431818030449399306656142642315213073652616908111332872846303294971644196804431774612369500893816133625102619940382619352645444947624283530502940940969386649133873202015453753658488952178533604348502421310288253269251442758362795471044005300613692520068858537312217364534349960669423146891998900263500093186904313618688364798757262888524002582072940046965484239789624774136413800940493757095202013668238443678260826400989508830273226259012246068195418769993148131957231934639160477898413897010748401278790168950706091085894055186684023234021522438715672887459058709066817603095398675757345931243989227541216864297743108243127273623767261293710992659664001781096354887627383249767006584267094479855937108490259945339137090667284249504114216193006377799090731750221423502566048857962330475309524873032617290183322081734939432316338923283401793755024265940241982378451434887224585298279775487620498253678769591404405616958570050291666159295985695855266387985427375246520881954483775398314840400820919283122880794726037719395179892688881220575206729482591563626261268926072275846687686411715463763020944952140358073741634680594507346501692611660426957991832864774808737539409087198798769011150410130344199184959679731036432500282556944718645100591239908965200059466886543240934074512721747708707495929877998976725523454093682812728542755258151047374819890941713889977131643608387070131441944760258365532819872219003933943129955977836926402134431136287220813752142136881805179865375909788741120062584378753074566234027547018426763047975521246584810436286306589470481412290409966569785176860581744079769525979195836143992049488607057098718929380938656435884528616092936910023390879344649698236116488395068065412920012359754816894640014715615096386715145963860021215465228477538460031509062753439388679841394866602638208569445412215424828997695241880609716514129039279464381161750672731822923563812148551016419478283598032881305157872777068448206450693049617108430295378141308270890894804354985134230578089152584090462128889829727180141388571488097192859892005446170371706529916063129756844608191198247728194768742408602843274442662500106969021458072526453908206920400236494130057681518018225673698811316324992082976765468320156087199682634404136362190555404395049890062198980623922799748163226007484950606078126021773043521186582180318855168966625887647119319889746336984392708171804309573897237755777836823087250720335027794842969974503632388100306768250245828250110931746378952149868897633714377106587820284282142978262080526654576207863577260531794263491944505037505550991963853428629809160596651526131137060110263256905293944162734832468948631625134056423008444306094495783152588887792383256543928380528012980990869181967830003267375877316696093332089330285533352953297895983035454385728317074304589666272683469896755147505890122726518081823326335630066958725201197431618576445988045543214478339743625486242145515040203608800049304261589527073170701675337970005168395823014529472499277013112237316340123906079425267808932149079167643767677753274279684330350895401773035892498695401515655716227091777664396669841325467824032825636154564264176768693801988646038744956280114092989420762550810493133120340368256870334801989476145245793400397305592498407867604354874784831968718605306795163920221639720681000896656894097679426433310972859433700665305609772260587366816261905041505823167620492711404854846406856671855781828467288949873443650364753379398336532223417669257745832748976941817002356799319830831873353222159249470438978217360325929533412502011576777825901194763625159657316637778877246839698803273419568122483739604526367397821948404322788804338116137088791153365415318746710084933790676870446487064206918938731170369742895897835969701826123848557588447692070543611638275689161695165960366077730737197358287932133651229677862294785349703510276005805691161339394703000906699829228458760410247717065985466080025481770099544646248808872058869816809517178742169362139557468336881473753027525797333717353388897795275278706499483587184893971555628673802451597184948227588222022949288626025790583213283900495715598133709595771438870325901412646194178765815599097910528603047334363545277668123348966460937251883884823645200618340815378298682513646864638144991687131619693697428332761287172778107396231207317947023725086314937047775284108627446458039447136945681140712993017324937327890951480755344721985940803775548878815212719247955601469362900014331438535304678978951561263243062782763265395945238323689282990222502848117042725911465184568896853522269197518942806288683680253885654319257068016780239299776174298008875297105657913732514543735729248160273200633392959957743216841736329124290124821411002086909627450715279132042426222025355917587016381848510237000419203829978297298436815715767891029189319595090505873619911509678425389509510057914138112577515431140194956980469973622101551900421462311033690646945605817272775228605390567889306946642860254126246847763743004819782693022608702396251438636799402243608205196683106464155860796596582586428986111439862388884915731944265682136199507156468243650718348455423701478277962186858214104866812876957242056388794330719702483786699503227870117861533316465208029850988647673324051270999947886699316732703142638549325982783375119284329972310805541004710756481983622541161694897253290026860185402704882293363023525781435538890891347092018670423951289618735777919776176802831844096630243566292636242242679062855853628399104298322099532430612983160904276359716039526871275130869896103006377326247456965762596256506210784982901729454224658945950795129247485200345549170231573683954461592968020896038645102462089148393670851111323207653686051040681652260661466621545806416152740003052025868824859539397071743072886334181952471659942851747093250218831924536921070229794866961882475504335715488121633007465729312466172119441526945069064908181518686860697262414520594301539034310082671473624314153416279279269092246802293901208440633623814662622634636484909768967752985445157885630685845059274115115820024695398290045391957441941187093940859405126358716868077912288218318606890940643259717121819572740721763086619146957160917263497571159920612067406495452953534689404990994938561020112546675256107697206565932095644582895843001414950438497976796381967068173263780406220242701039903805191966496787558101629499301780967467985166475631217922373830089976085933457350644769024914061702324359498151155599519591558190103394851470584441698876998241889572049412167311070357619963460533538217544859027058198374359434167210061091734864033260360208956864785096233067657341922416264369976224927707898798473999669678071659967776903370522594017167316925949912538755913329813382269485545856789624641750325456165865031444351232168116774728921408334966313304823985194031156956646612812621532880146486899170876723060722080734817354937326946035679530219392676590049872096559088532907905878207774244086981631386046609313855106367509640644002985348578868737653535141070000106916895717422135227791351711928316360777575017380334149959125936299979038734996975259979585152116016885246123016242214300363164210809197128931046745747450449924434683006131981394397158595336867819004974171688780372682186640716291106076668245685173621735693267895334971852660893345680012306518762233041233120137671687232886109163435678821788185338681834396422224480391537541652645555390764848760356528782806053221924849500750424114459463476316163266307370324283711797485505808023925113838078201774264393583719476878799564298652084960769529204911013041339583387179724975033262939544677941496254467652901629927627423248404690520865862024582193013608624655075633860687016864978549355393600316727391202305262527795845199061053232047985589154121828527159209614216735116615170847288032531693217838751098630550411530780910157105224097940482018304773501434322972027435746534446698473777782633052417568845495972861794057547321876212724289772816979055616205666835919505668176527386070865938232370389880058034127826999845924608134327099260170607214587108940816115546986577708464283115282933984622981930989330749332337826609263045121188554641605230514399284778458983306582428936082415276969112852071348060037237098932126074574219900612386793432039236876904346054651008539823882500954745235244841546714288723585941783203796609062288945653248914349657731241264112412025086801544205116475095039945836983284514820693522894669804218030713582127079348448940380004284296043946399537365535720365165152446738220520302015909146806957904300498163419126951848476788814111454651468873925529698396228354532248835599288902654614823633304969047497059318705894199299586054188289114749062136461557906145776838481396888798736852895142283157856037892124694925515779856022515096980754988337741747261496078355179004068460013668878375417751223685818762189667669135047670228343222253538933039402533923139667837978820894840847351253515357891303089810136408377409827359718411061895100404398590811678600800141434900974615834379696670892471947383947593071221439878581475647025147256535246796960964674547137048107397586944835051275321958022964329257614797541435632179105183735174984777712973138725327168855802536657130370655766290143285433007555641702853033219839948792590164530030553598735584964989209476627027709058926079434646194084600947209331525870024122609151689521490454391830789941429769626860066726760775347426371532152320152352853090618370704918050070553445317291827485538611367564694481617477447700604254640592612453650102518270374805297628138732307318413901019140655558857963617260029881860220807672717898046720915018544761345717050533781545695952549457985134641097913399435029571181808578182883482766677528111733214902310607513953063705541133799802020668803355872483823797228107672690689307860070173714502578504056731064047625049131296797827988851394329059455465256628135904062201350772607390630885450786738074681399159119235253092068784537339286414251615214550470054738113375501507459517649456789926596732014903429279086109070347741032003306280955135944530402932428016115615657622481776442101213821538803445663563025743105304636916773097389303777272464883426412150392848966357165355113642657657300007934314024002369504594185845216942925785237496306665968853974053135503031868697821282434135857972522549488491935653993316317718836960918372074599574036582651942224100563036592816987513200159577234367290660183312176476604165331057129706663439448299468838335935875818947846203418644149149590191547843010590390060528127915422532929636347799178992610441075355210598523199570431483437419622542830954082283653255712234009610050754168683338068296359440615726970656533966549666083622644973368702413745156758230695151285190720760528580814345385409204886298855854257375074303512373629167101561801931193329914228631078288462078987303755358390947829150299472623149676098971980191641482548054128807435684089434169336755818900729481030078940438762140498427652155489304122232753444577258371311013773495755957874037163780322412293510024776091532603677973211578455084714264896031607446598628270738339686354623013820264926734110202355878062512178578807022863975366970645534560674459240875583512040063319104708251871483334651328588858731092571184610058468080607617201724715542038890527577812462396114375475785580028822196678491362672641584254177449532463905094221572820833053887080487539391811813906665932435254355698287140361196729898577263200057896037926526590282410503543353514621741606170077443138108175669086938286872433877353229644431914711953563285708603881395649460733529720641082501952487819498743592907154224311104934067123386721418411342757042756314295449556717319190062312477157125792946517548282753912770505545967863150444064390231818143981456233853800318260344166553696809546294144751528854873663185746527135655725801377130342552852969148360338886713490643400481991195067983353016614607029233117619214646711173928186934751951696305431803841518265505294274676208651260214717275167678754595089975669132505325103531816383907096161702187946371969635829424946978414874455148721973956628830687695351119941858814819163512358824467664308525497342253671851246226439281751620221117642042871098717051779517308677926745960111467770333469194349684253148400463619956593356125417528433493813203196531362461314652076404423020636429481924679306228198773235602045902484034848998311728323838391416862022189447087371718022183755525213267519872430714675374432636548910832368190159795352492030167680139529550256171177637634252772756435739492359423778889361148940618407501126605389477731450517976343524036161449960832118713156977426508611031135484607003516126081786413116633541976516849754665888891272977101829501292154856880652186876728420779019051723378585590406595181252142533030753602606843907939808972175134747053239345375766109459789798985905398601010689987485809811523466461874922196301319873727462091748470347516185673296115795879034050166015966612687228035980734952179115690783337069139370647030451030908370261671745471322400557029020871557904145250354004870036774954594583961661641152577380795598354544107947589035230629748282392759627175917656445368649521818539749447171727022758838578826338771959534819436500038180700840268233608618818606389468476179040437926035606938295237369045420510665336169790168357235156727377300302399034943547235799581278366401088839230153678052848909590111613785671181002234393752734498835762434264773620405076418417551088008748323591075154429321065117123323702360992421282414472303942002112921747347632687263815136297810674627967592214503029862471702736687050478156148943198382404276656645021880707446693060661494489686181373315594508602347956796698994959572710234096563401616782095828569765155348907273728812578675044750776919810714817389559641979510914696057941858148241974917985473179047763457672489317907481627507058170142193895513792423854761231849944845314695804484869741015408429791898456443863362101527444140318541477781308012681674641271916551469652778018252277450557434422999546945691651056214970503060938829603134631280569531489535662627375756949202125198688417904912325410899124810279520096995914556112605527829238900504229819517895678087170877856808904472622823787671519573344447076521831055815258510150806214283750506689449628560579826466564818666565197995698240562935236307409506398267256613541125595440603722369448209453257975825603548505757003817002315974095300943017123866973697182759283175262548034456084464725341090129884567716795964865028690201178193915116830931148533221977031374645555955867407174140847468990217333879335541766853689849324348896410710053199575096620198046595761626676647503834302150506987166170639294425061364016308521084991705743918893501336893677677252012565838084407710567725976489252497520482854926540562254687028758703917309302916625409974045468228178363579249059316901191203190766728630942945273242254675238019335459710653010407686194272917117368369339611296243296783098938944727778417973184266319512274537345025431494743955091797676106419687254034675587661103149025466968483139958091976727602153136610215507993157944192237183849027420620982505225177753945225767413186478616319326993710939571444250629796253505033351980966296135924141645106735379178011684103489010131067808216644014313249037367340157070821914413115843557389336817499419387724754180091992992563889817605555631502985318955547767425811654329942922568949119446161245908236012210466845076691784335859871600084233378951226492041896384698602943163733537386336099944701218986824958021289751700574862357786224577874559633981444858511504412103663872971106885934902897356671585917984532278328417767411908875676761834828268617165146035732898690824907651912929621851417210478337399183685700277142218859474635837420631868975799643916152265897709648469429994416664694422842782994803771714585272428931833414129538389355254448058360510223433770793152394253393455930423648920566916052688665200463474381547643879709879004254221429677884511468046711571612647700106729611177999999820056513164952683076024650585535487135012879792454868929557743746470557595337133254906080273525468938530398824223771169044222284847155227020045112126992543287745714726525266030742087195236972445313456458788641963230843146592705049192007199112213692290793741005437396758912276012905064375639404863181100011778169163631361979731357329300313379309676896141179509926378623202704186730812739881364355512030794970290339344703135960161003319345161990776725497755714106263398388032560366554983506478081077963514030504393955217571059393485436465954685125980959306951327121403944843813340045558500934071432157461162894613064261017870742528875179755998435833415916194307266001981879244778816481076868016530033606122967829421372732079378523183671823646405279810955104214701561970310377745199402305207235089357997376417321091990688779064263030741802210605092298821579065822015395931573890356466698247873013200122895860395426104694025920850596401500293794268725966036326619869300626853324858123568174523105518534942258407264237796906782666110660385559929111042995094354918101583363255361708199801269368419336079593639800330504925605304206943434114492753849676926898880614296462042619872398106890639243067693523906637527330961554387106170504117162270022633584187224595352941462583353954976163924233303656099978361725083477611019985641871110220407629172609498340726590274984722345226489852097901540873820625494720861937886513563976800468017204732216655824705062254450918284256462509707971244527694579741959704303045482401410570264771876266342836795747410549763100506262453627669457433248754672334229318153301564351068247403348798133428954530134097788623657165427240594387774953296489960983447785278300758458434316477587198972780164112676541386593480822262334707186628166632656284588071431645574183224380275891266917254832663568564189541183718240112255508723124115883966943272045523321170334559312088966917940607932003824595166358511697007766915378629016257750443587133694421091258696375205545941656474059554820604781918868716814909648438207935649469231402962399920176818978771762247227301517271272504734354341453812576079052972992366773041881385864247166641274066143800623456776176456909482999380483115782300570872008368435761188004725255529217892671294144831189914409120499949201791784422590298311443051301915783911317825806927496436129127738264185062215285553011996343326366735454577372948394101712023133868910865010563177161322698823197772690782436259017516283054130104741032296857487392607275194266580348308182519390414043968464480348183606325011569923400249943782995451558630489989578907495233949871225699472667198455811169077586967152458512106760397030642468834235377762073373890107830081217029880278737375564981772761892661942722879065241016778632953479976598180487893438362656674980544941101707249905046485368307395159462082054884618702485515862263648374778085801166181149350704782741221995351235525328773889080106569389131887206707223103266233195484053420851123163471707852086001778853503893929064046522740613656905673752806189379385240191263866136775984456158927503323960252246735771366292972769792517132610721837663009018552558110168431138896303982946116558646895611329651601490704381863796933003615485974287364936659246291086205773693731307232321233078093795903858322885109740717744077216561981849738443342478012933043972326586799115330815853915118771853531518236721878404654195350831203014205931647021887309066281279536750981856300815627776284796852235805772621149644323495866248564429561015350247482789420395403920489340717883017745861480340166593863323621716709446480610558944009406589795235971142893797549715134050392701789512666872650545088137811652744355210511636802770775926064400268894289216972410823257493922120918371237579828711235132329802531060251450794669098658000480440234395279235305898511291389598664371636996310571748025278393585015706534569456406320843212751050890291287118738593453121038844125925432756207292673651630351947709597504064054944093102245955668846618329729898095181966201020350377988526031915014550317222354771221157122098215169702876076851838872687958644584599492153412138769796931134301428513411003848535948282682193292871077000783208784366162762711339847313892318005544517671264629715708310881209761254836710842657268715457565458070458649418454687201456874437540875882567718394865897894579661781051140861296398462479823683093218222103113770861598914422930671362619770523317739635144274107432537133229695198771951217508282858305172652148692235625492962228735640061744314434770568311974960289680050018291094941112748662973414420643542852759431093453875642598519108777816193222464740700443434939968415319931758877642516694499498793285148761966815430578500627284562340347016456405737788679541000024947528932601767995577006067556520443820890545946028585053086191935270416672784187682826277094906012492148419166436515349073083345659190492468942932838569258528555700536936716685750890749148537975206152218432640482361513877123237922296882749112061277285034640916583425198197605845822303896808048131286082853159334205195761830854387152997055404031592877111944942172922591105494641867879077171320717473891957143417192875353400579581411810417214265936880783716473326948913031580551517808479771238658064194145231966817025222789656203057012757868689924254627227545362794543787052189289001988509741734342735063364520636385196714322718310741653596892073898534376147499537368917293166905442722982234713096581155434730407403424698649076965594956851692361399424753418275349076092463542263107441953316917556064695937612481322015830776442974056795480159087724670750066720075982106659121154468038260599843799695395658424570842156791588064813560845081940708237082254979963340519148836077909982697318098273852632678521140555082953518011101249971565295367450654582228428720163170158689699190106562998335599070453304530759275183332179745548451524389005841320741741644847901110944860575788788126355658232755739246844378602541660533625607047434035822937046323845560523874474489747438384315676210933361021188658278156741333090518441740825322385012940553236802615050976495374698557267986443601395047583471292268454541926136488287574042967917674626094756057509752464832492376544284245256885348493259856580519237746544933295764675634390643807511214394075479199861743757012839750925122786359976180929617416843195793408410115305257525858413553009609701076577041295163548072041764120317194738283469444306250543517748936266337381251134306547298809997718367701330975901709011007065459828090248039407512976117002033872757643193191765897554810857158240966779873738304433322693750022393780907596229823415074121523905345414798697812929972326957820081249953874212277643503198032202814987966184634308637688009110770524669129342559989947430013462622719410020144735223257115353254668540649064202774507527448824886682429908932920297181716959353812368503411952239419439530090565646684079918709404283836234438146153411403902760876733197435713318949703817407613993889695675146872384691541505260843601922357197563840997661232038645995009852847874992992894066897961781477882843921526312214049313225682703103344804292411425978958948618656309410686622181742721255488003044733193595901359705373035445925981464327515514635345138052828414497359017526379789749724610411541092726307777769153323743194538919318112174386591544048887092580974494897548459686375773341460182396048748663605921648008026324976651851369622902146691775669220768360965276525937689266941515952807920725952762913741335952003257134993295131651292388487960445306114194556737682117605422156768121007575696104898252850409811594691601074187709284266575232358372334173059365523642587291631778963658187556258841816571377525927654275732925060634162231051666614780746653294986887197331422792247426374998368921011826713831314102710619695485856803665537038115725923611989375973864089876003494480117399751341596226650388772112673769183033951243556785403646785059843824527141979801185843622461402954713707443761599737335390056358571894195036634008733741919554801637108597386909773278717622854471787033959375871197636166274857841669159400174901778839041736537736943371642241934161007567199513164493234905696767307939728220905555337565223370677635037226914389653849638524677695110391213191105269011748840343879999939958172315677448455300381093923991891505339259335512036326713001596558374510413196674561399397520294007498976832295212770961316523713592022553369248850011326438251914699319772177814556660986954755858475620905853754411360882927633090226543134910048894539025470452312769395740959523214443882780210660540064290215259146500517898863631543770645214291503610950750427854010669102422564614338948594075725430754268659042788328407256825911827049114043740567751419430667381398228616309704157586501560725024951395519205077546171402053641509484177309689224780046805959331651167256591482054136154850300115284456583346865031316125737533927365276356648085342410142090808595623852897769953825990289469390538645790610743627314415976385144689457113115920335396199033695815277768082476128407237304773910459992880205395383139568235939502786191584689003298797210328060281518188089416005504714681038858787118914446470918298467006498181093908492701218058095319067653846523561046254854011622443962146759543898950370581166413180221680895689586587492228046971162785127090288973203607878384320542129943576649281016457304750612132520307672198841073885879373262142418839315936437852574522806423499280426661527727110010900818799296990680695022931940980234514597386329884306410476343658445144590028383767657598247939846559946755649414803364769424062987814657573956892845770277667175994311145544482287189158381887355815063289996152232616690681173497833899546165527722053330982417249803221018036635303184789941472832232678857076174799866775886488542753443590715940300627915142270220593004376977581268200580321479583062862093338840050233153453687954671690349286048607953183554333577457203043510974877769731105704288281638858534955747324070185071473622951336391080959552860357456668395791798444362870689210379717788699202300640107623798080369243354371189111793364372336840820402816793372305751791139746057684121593542505388609578340996118130950946436797116257846488690660571710356211317596246750785130349358149787455434625891455831632365669667143439203658286452704243307544074639894346428088308745735029504244740348615511441198228396605801802198683122473639221974516803540776941659467804801498630758598432603491623190435176867148800691839920717271764341308111757864718754125496312492445093945931393090325035086886627246014416807546855222684659384315254515193419392385527047149576079987312915007722805097602096803012999823112806676162991597038580227643797428740963052319380876074433870515717436183339868455620234506389851819133915977570156851001006823040759939592395614487350803478279604910758253937734227474026538148347849625048801267252209799218534145734193307868108681201635769566972768851854794398681069065713174504878721732248553889631093999740038912649475804836646210809407837867824373118323333173558936086080177641930721866497632264752588127313270310543563567915210920291251125937696076735623697958184408526969031086004976344636927220589814163340406802388537769069244289336296997937990877172871921427990315345016911363922394690558086186448400900342148825376374803292819266874329165576206936640502660906352829775636525535024458349993127967222929311097709072581519788081968162659947675400619108198545748333097096526690671342084622545972133774952295948128370675593003560144796264917539397005458847306281946631333898593871621783893240861996735761256282057854844636291438189472616506815116130264038938126797943959833346089569122087916316910367339162371474156649833924871760318225753175874615581107446655513994508572754540144762643910634077124064850262869833185153226776821124542928218710011298253287288226933181286234604488237900855539825116942349063788224696363334299724440976209512770730335376076742703885906090101456372949468617480300532217697262101523547084283771880163302383138657525654472753701883736611965815961726185192348690200537658330868953795310397165266494874924070736200730734807848741060679339787414799854084393149109149023792155693948910562547329296146017545687183752052077689815709449795134028727231009861719638363860003297428752528338069909853590353327660427506867495484463696502809329885219607677372143612143417993675535752710146770730431799828392080234752810484451109629415888984701589533912138691347423717929343398702299167239023477737643888508777195108005554720417258713040560970393151820599648900706444204379997769056640649342999529893948022127152247702783814923431457074577566985532241351877650153267968380414186410958149872208916518242987276184537595840979910719811638800562021092588307944640660287354002863183841170348287838597746848903943164062060456405045693590070487065246417288965393788425575208465620543698192917142490497720860417016181188342354259650794311070302353667424644300216630906402815734893576438808258197574997806509306670795734354409910976415725159092962217426674766025250282958522470237968074758655896640556227969654078739220888165722396813414559717720898612753517433343349429616572268042228260842172442542943547533711051284928216236921314140962176546763772101062581551458251901243189688015825821799678483721813209579266127929292728574961926954133948258736726958261082313690217663881581535941632368266744990534147965867863387954622512213675998230758253962406710965880357114191191994696146357720498656656469460058480828474939749301202396340906274189804140345447920920385705732967476468735065869913703011401669818152851059344944654665798391354970432037601311946640368686368544456461250878745093279526126808723717331597297946731680652783443384912250489479069867276994158903166664607498033862154995587566463147324597515747731440093306254844839225622560570598670512287971829888289976332687748213159975877779683427804608292529674121272741572567321317543670740411882931535543729237962096756938118933171648956624691234749164347497838110149008038288133012839959398968943724297080173963936094900718204238659763600747961264054660463476061527479270039225804440142355275542532615564039755913070877578953275396683151181425427070726056560932042604262275934715270240138997826313462674394324253639144717789585939255094643922212929893873638301942829090602355556059621642998527834716914832936044112142553988820508899193757051597588361066263062081485146610663928282065271164891141606068165858805813356770984428179129357916298963865843901559261423569108328758682209647537710729182519548964090893819498904417340877375520448883060405272873685385450090924692480794274148501465393310000783711435864273403740789870366059404197164908867435901896158860979465870192629370637959023565015374749217761288542995145133022695182772012833952560818431598208885121157814173721356948353121207955959701968587640106575148454675132919333073618181904118683299349062089516000832206905343311493945669634805914095721019664413855182465944178929407559629123645462473464552480620664522072549648486927255770857085389946878368580525421999604065678621519752631645881067495916885832635956143034446622016257786809412778464350319614993153554090927940515415765359920106752283350935551244044379395207619154270289105852615628375456664322534881170373237484698896825232070076207486171952019660314542812756389164437279700796611969111850593633028313416668772450532435202315615662513616332597475637447370771128270496339938099288723517700289995067432155818919462972358876585516556758459284481124743164699704217307366629212324642973106251373836553229293543190089778915030205709891281394474669221494916907542664322759260061871087462211267538864373021598386015317727182350164240593221503802762913220114410872052816589966432673870483302890026864903750613000477517388678788411809231284290396369843014154648573236994058195920281481979116605382401152649859637408650157874180911427670152841599409021579214877012556506284054295157978497283767206412334117003559202121046500875527132399428396903476797974200193549332731372347058421326367159875965516563734002304445898607829934973803621727850427692465396398093480457320928796128721136142952828210603455102951866836002633769251771324369472467868892723025488284665197024236312953087318168167813419608247605205960270913050613570159090178349304926225163832455324441036222525170168603081037369737199322243956969173691575361706034767100182669238091518910664153617012701373711954190366950689414431329177738783401411047119277679144488504865268870480753655856597418387041726304856980677805130492879191692795270846649784676876599697813109813009270666719925297676550827060196139865380438922450601079113471604745316007275413692038352419651959017182756619804619708364618700492445723550646555793739848713963513503031441804968817977041452034628555265016996795528158398435338224211569881234639938388306433791245169333454752977130776032406373868889914466551631123613556255245877865059865855746609433588142741410352588305923917528505443947959348432361683934395799653615559620925482401202841793071025955905509792391083670191663446827741222704141414002438602611172931552624311492699277616550399036888171736866437086053915689501568935975183897090618331715832276580488741316604670268018364682325854553884696342666322890630764331945557791325415863192520188866296927369994229869029428634634308888942829174772560900880022154634236365425396995907136458420926216658218097436143952526240708429586333843907582705571503194580131270400086295030885884668823272490503092057896342426466027120536641308406388019331006125437106952921788623285245761268945178164478475049629164055738578935285895432671960646155787772931529644463725494657766138142944858461171612277887399355569501743016602788908236145297546949676444613508030699163833608570333012168592912992410055623664017062537810108133626820465390836339480637305638924105685647472446157377595576189477433871288174752308933262320610135042055497253970755734653905629263434808047007846235463067667807245184208082535581938474336891227682180195582932503409812994807582600107632271461247936375589600258680239413223997795870254749706932521632859112551692914083067804407005428164120035209522946544257997136056061731408275650880796887735834783957988414913128549820302589218253623319027329059560553072709477329614993469416035528393060009099186237420627854229724475199456811551025848956564849179383334623583694588153598449041502776290415679564437376712039147203518262597301521025609393459534621598788807946384567204815573224403510696678114966192192052332511062109490556276489633651600997248136702959785591460908915766682613621502079724447367565700729793554079599829885216105981572611888362433647536866770247790096017341235455655263734338945618045614568523422369276957528127423862456316445303688904068374597070107965933969239449152583929828784483286639610001061342661113396144642670346454715869000387176390764448130913757033993302119806746908442991702061170850626832537443254251309206858991780298443615073048417478120182064740809546863359389429680555644737369553785843325483077663590341876111087048007429737296649669926925745425117461072812121105631270930041082274348348409650697612337363920467676927387906223228614262749275898399639131109671458749420111516592906929703027155260376277922947427439382649847482482940249272679474074674530359166961292451926161537595852585832015897390001475714033908535751681277045198194000425634469729895769736894368325137651560065245798357027243572290029298628901162434348502006893421799224058698733008884619501216100125752187947130933607615856136037988568756016596823719734086429497645920373289910512727593631008625145821250444717445477034455527020944475915741602746314387880404433542531821760934857871470189484111688531480494088558266387363572089725125930249311087369137787261988771364556181909077869253637974878355021006452481649996955121771791564851800387591829451933720879258703040335385166695243641276817027332615314039242532826872118170448107602275475416748344549023681033184432640856768095404280620959578110046808111687149423230874137542145490715698499274046332231382299574172581418830142034523331656884559169031390557312799175039359408653454144925321492259158971665095464511176034868823326935193045339519049319446330179821539103730342816251320803368217488115911812922509318899374525279906066936569299059106239252209019407406636771895574409642538768338891586581167075519052005598892266220455952380286333951965577318754272756700631881155264845237498460248490327223121477038201567188822154944966967642248709863480361774631957705195729480358976034522835889227272021262468187849995491280823541508657945745339690871777065457302086714171791690345372808374599520391777724505244461609940283823742629777169408943270294563944731908426799291712713090854670394316433236710562146170290057639998927102849954489612234433309534606362672811413892852181120350796935508381874848096808191295137321433002792679249317494503467338853404043985445214508712043753752928823240192649017915098134409567523898214454200566478357294452116020192048197261027303319556976639131142369210058697275743912137361317551757301160300587963027116587022620680514578427401423713789045626866243704430068929124661106005319704266657553337486033958215702641446321629591276549275001126374758237982699647581639702459128989346752441371635458626381972475896993539662329345742027286593860636674508571196175969809244218749094920282892651016642466653127858731740777951407525656203631242310301061506688264548198080786796592947642909763382357845999053806186607902117722605853026824762679466668451155781612084197492768940416613590418359158672235253196726016685525788814015725446364760274473531056944454642409053492790367350239655536694084024550522717043106870679239523637040482597402923352899710655085151271400284949041511079105306922955263616051891294797289429596168224645644122416774483660521883598454808549730118045968709484990809638905585890826056557370689144276951435231515703443217636577360177322400894087932029075246175299352708430313231995945155784524980617194852685952010548007490165016917473188651261762257736623640145205835240341822721747893143907618570578256670051061906005816361642020659320299361423190831907316374780945190702309903213964823651689848707447787496824709530030874669938230682461245621705224928330753019708657760085559233526929833206269102301527297954376554048746428667925220238309268656452705851645944013097513314695411926982393100315629019814471420752258010552984674238410610823061714090667579827084560214891136562510219789450704606453471459000645875323186463086916270175913547789593137397913948497108892924217253405118975156272691818866622652902248419844291071402612851659651959741811827459203531488664097862468582072637786994169007689703979650328398191778096245387748123879584953301562105416849550428954833563609003839076187306934980974202209914735964377257693021899001384030656146894135772841829520643249915877595655321091002650759334983481850548596954389713103093137479164053760446746926300674596788859302059430529505159703121181861976896739267160226075123758968988582750766264745280248314567277299696476821272438889339931659373468350398851364784447336128523424018113252539344408144516466478880343560618975142947907181298826697104117420233214141500776638183198960088051199981111860964218693404364535540871472706447657022630683077885522563275714796388854898764356802805491095608141238964201559425214922807310017092077385421767006653330608337114463467169911659560486525180647908000218027472216868106561497885595868446007142147480297603353309650059631198789694612499566930150348388980886731972689989272472456604550615399613051309659201633725749708571397027311620557003833077564872238571571486021094206430362845303968060535688054826612862409880649685926548838377242036096727108913997934103625143223312855829686939637541983130285244574083777214886960510098794627870122299863313738651481136915153103671741434821928469240997048331418869759816683187742412249725615832334718107525864375750389818851497103906174576980468903893323224574544098663642625284059776794963590031773222507955197209034125230544365616119547919836097320380760454496597879698686495990682291148190612630634504764833002365521151570029306962512425538715993715555731976325956567175360144320010726668088544818595287543893479305904877081366376659558813866372708366750366013986476979599631482287035931658756346612913089343614910401303188528872903978936769183708207099951708134612971557768510371258969754074354459760835461054130231463073008752750067709861708468715405251624164126795431290022747636963087649292604994951628131016250074167663260604766936055579865394705526199648712052005309767359587355052629362168234941423533803923929725896282619830348411494210527485884423891957629657757423999550388061126258017761045587808184811152507147645534823164196809818944611346496325650009523173313463934390254867346658986282139154242547235774601266128554206792138060002186531349547053000805737996580118090542990797449264943431757461229444929367196550410656829584449510551273482483890104476075567764308120521637736194281802470038518971543776263299024332551206042968550245260812092440161265973810863722723113172428161419074774479212566402604678048359451798485076709468200807866776709537823866142726239901918086684233760727680674316456481411493364125991561021738874920851419821187241336954140693024992884815730918577912843464430010440769695503464807673031217014623073942606557913616575857930252592003733340787139458557112830397381702379839359355039240551354622927182784564403846172847360580444712125208707224674551338636307815852373518081605108417193835499032694468923517087462638050632168252583692073266601858716422192297308772354817174142441565999082457464561939341953221507973544434262744496582276433506550300978452619844051748624235109915188615086951017402501483656236591514446898737333372079754562272870764772584264368557647553573040108646494305564504504478719514683135070563197788905136230982373766511673907436911950801139386293052115466417195387285575181771112533059230787111766739215663381572167573549569549962443797874845674737511068038607423930404758046629824876850630600094672618401899646528360327790143746075044097127288117157468397662697898008043897241258191290363402530269619309808998918830658615052351138860305045902807013816241063609605650182144606913325323757491430672975498192005754775872982925343454153594552560307838076210552869862294379776955862430061409948718652841785660918163171001984645526740726772141703971794688591177841885853198095843182754619972394257980825915057298988931805988406507830559191684447290924195569079638859119674016211665695508762009078552443600767130037676381025150065423240919974315826933162867119223663283527178885855776541664269515533370781073950390628207236847168166253539061858268090359370928155736859198953892904113988451116935321074321271026162894291907296346610855197760534045871045716756107086960729787660294774277313671774839074673448126761586000789507719114260845661896019895357665331902983702370441680990671824595352866582068191377597477556485910655339501536085959451385448192546861199844278801276312896131059670928242349562473699746260555042784741580459298473382066783549753237338676424530557773376763076076966775204143926206356685396667266526492437604337476633029333057664972866607805403388829362360606297837018513808841863169838546791552508257747105240404251156289850415621749500454509790263947664526237449329669376373486267402539960756666091996464062139215776029618326982661463333441776856979038511725572411660374177295328980928307121550969807086900813997862203369849668881345826370018580985562376135288391156425849967852068459384069133228473829029858489836442457428597304756628408291807104322264587202315049799595947442203992143436183617515829360933976700624269818456878557547714409655619715826669811920629866350785881362582208521712798323071309355337257257947005918219248472184470281520193823962567406018329529603907078338341038344849677948624747757686009737725134978492049421449874402203733133522586645305658082856520299777310663505834582135447923876219281092170295748934011473403193233863818201807848256070411370943408537599908319461888050600167418651893938177767793779340743413449504809436730122472265064261668267389946585940133517296453904730312569003263028210823093920590741700878135200565257154164720321354599954287329061246386149387102083933884891149742952266648731330271172832633285447551115889834707568977442884781512758864671172742910072984465615447620986634793704478188662522333200673472522251767440348273527105717881796302175442744724367458880775583821977894459585999342907123998755388322868738936960393195066724591652479149445529391856200738946104496436001620071097292872419908436582723713913738602558000980845341516715641981369908407574041921984556060477755628970811369244756579650654647842959282427438503896430838063536975680233456024597616332940164665259336244758977718054047364200890447050561854573933153035114428439911430186358919954194089441817553350767233617048365666960050369963749194113523138075252127653077424340754990731230690804597992652457000295005076027824014063270623355903172120432574767187264438702787514173026548235196695246806993956651218550454359657797100940059565734957918943788785893636590697752624765150896695543088348704465379140010655764616108479701898367175954770292795923573900902623008451813770418058592672330859376618423679964178683358808173038725105555991189397436774844262849259056914009419280112455557264595555127883849238033688531886953436845230558057275789148098179721017575742551338067127517176191702706425417439603654937547812764363843867735214861041734809625558444122989381373924935873354249525527322581954719207822051697162628645887130446569065678349322900670550377495483002922284315262585542727232487764535679594798810354152222976138288402831323953914697409547242018558789166388947782192157344166672510005466370717418430801447815851119294545127594006822061013014910362607571432693351699263126710722015223008738578747815616460805243049444772661789236053259239807190040126652927106454794577909269609155300319596573054179468653153666885221406781983006461068486275791608128062328286220675408823735116873876331211208671539921368900367997563562575993281106399987011798092151621712795080514913630474670018188926252857718601753379719184927847259745424396271506346148393714336750281778316953545275669342254911950106063523720974846724625162748606389301045675959376724303242798962606511272057164131832485257895262899560884033131672419718470174675157220899647377943195429340126084594254233661480306741255098555312168057288898105605170804192886356846951354340549688254157127467573638003636178791054362957164505240230377427180648401777956596656125534837448700247622149888173643066300964922977037223307273353622112522281839311016688973437566038323690523415560452415089142886683461525151351431252898552239311880510186730804938660705960003055245363218391790288518888773507958904564260060450955682653401983170183403568151845420087161616994970093694624497860732851926961747865428592203885028855158431495268353311316519612716358059742517933067864352955937088474855556759098992187404982520653112580283303882020674677763462754640659918986180058555460012253571461065047585701315877045548632914488599011519252257295290622272191892550786611905791436807807159609016546726443583915044878293565031416310148604363771303693309888193181825294453842777043174577501151837702498573839704254664701732261645600744905388762306276761833595776142039025165287874705828628024052625616843875652239639167994136421332036573825370426302584850623192863027086509049291887192447081198243404303381675594457482329027758712971505833728254697890514917220111973696626008280441495921118573644701322054197895125447235379154541976842445205088598284943194949478599417377642171404098291454511807360562897076157577841585965587954455422380843278088765993691731454617951531778578006662371630515256766847426255260606069309193515342697617297734715464285754315037671144796560867887649569348294927951334191360399109334461368148468594927063484717180812484778286952701268103505935009290052971602167418425738816466470264346446067188608595696153176265884255763429696496536814878004828783433330551770632005547530387696535787089878486989984642712659974427620554048427232229050488861121832884820999997501577868308638310553752294196760071367555346451642857834100512536845624239870449678935322464436728068173474274823275068721258814468786209773711205552365362514369428007803284993891029644625541060451067039913004356970111055664793537911360980979696781198549010851711753514515580619164554823880984954829392569531472296084217882612346166573651454924725321289988507115992037947882883541098667759386043758253641974821634669549187978330452499193676545825183939843529930477548390687267772274321852605397667736207559106815074621029896184286461817858243722615687542367243559304344768256648405229983969663661304010238735370934119470796143626543357212835764077240638556814838520753028466986560010997213297181310412636279451340322223592320424309513194198982127159508296135199050220472194802840181186429229140993013510664396426243703321107743853415038873237568058680425886461121525963382352549443645437267343140749762850172529853524103524630662894253600665797715406941089944300475125775826438383637405421119517736683576714953209483275001346722586576937259050624493212347924118532721810281512831731890547485801103687415188745447593315808595335525542411830376445720704924327856187711612254336411231334918750821694765080788341879603778934415540793185258674189401086067514100905800975804421465290884570605738111284728013362095278263835224439925630457670112914329847355314751550497929111710333831996895047627998000756739033043302572015592937278172800746333311647107333302510724771489932573506019564981080461136321142203662468254919566359270760210913317198866352223404861816947995976619237642754311342391141993398445838820632177537893182598748069675462488315144267825301990466192013059804730890516972746378679753383299598236513635727743856453348812053977651442113437236697343458247550479847179164673830538600683160313386761636575044339389314011639334984206650756832330316149793244126480046934546534471578375356253974571325948957941266311493402973332285571012763668225017546032914929737947260741769488992311854625314028982451813811597318853091302303757213636018963340672125152006788198385498903693001627252850493486741853438394961430424993562875796907079209733271368321229912604435881747794516256712080674908867431040869833613315255472374407223348841594067230010741838290605536632940191609696730253212612137036428822577816283475864748293661394645395659418108703004661568179383315282329376027523959428843256772074246361903542065516392428606798445546115976078041569922996187626032046990530607587288026866123339946027391237412357659299323350968918940064277885245597550615760067358749325061266680752265661881533025614649725150322835897284798617844822210169624294866251362267944028624821776267318170104136633459733932849541129909568707855860964658581043149096227915278531275757057584926648771993790636184556113891672050980359482206600667520687276296044121337522567307367554822388723043778509007073033176936743494159790154954911961199873537068043461369406658567833063506372553913967180174483516853481716947340705557472164796649506618727307601387895303939762970907807908460025565294149437823957937448735492486584934101075908680638314807782603520930125418089623519986546326935659702914244689080652748930712739074150341317203062429263183643135261688718404555476302286374980849577803533524071236481699121081716406682433754436956023728397750792860544526121024730305520033837115157439388410624434558448647961231957407218521681406258075924523745659252374076513598360133696574389218194748601589407463238356693594423735986243462910586640248428028182975757150681374981073033793858040659086401686857390710661232268905762850637082796568786287153573855145186759594977558315569854178296082349886611885494737164051740683820741350544152669609043374950048179356341316982759259464679005646575430743793099118011858058240402339386064427778585274048921209613761453458882705264014079620802957931778615237532458350190311017819297694428421815243788584226928023959291681514824113892020004752170955237127129505086762353379194875487379338107079034734496015198353660358224766416607881633477775576785459256252195394448818503289530319208156216560931563793820902995278042756893601588554978546778308211622154447003553160255474599941674257520233723094791523655963224032594826563060696524456579160902414959418821125848142528863536761562020308444897195720238668790410797337787786642761615873015516589517539010949021002264062427303557250726735702497697657582526196373195522066677058977801009428491228350215220801754198496488384458435472505001614292060686431511361623529719524487996322901550958696838053459880747574931104029427402578673586534759476780041643870569158850908153580672814779526307879530804123455829584600533536910252783705132414757370099598511816286685907637686741662980843702103516559427158303953923536307558831288657697054443812500734566744960937933829714533973666962869845497202751945668448001106258757527148937183286383330921644246160173783230696363186738966855088387500407858204808123658605334587897683914581553250196959219061828406567736608175612095059378310878482276349076066595493874239912194516111831759435766957580746050183086707137395934178211347830379657697790495696137876664579982971766265532715870610486057142203879686449661396271063351895140478103154725205144362564581398168456996661510080433776140812193570208836374885294005677905767770408592879857747195400382306000560909105400010477364531073547782673440461951426839158459035625384011182425779179781657466354871375779043004598846910898464116432442086444849658082267702756807524790275507017333650428530689672685360983226518842584415804540532010116791783885035259267106538598850378875813481927850652655848195829548325141513179382009701014807985300580289139961001128880537566613521235664394314345714480532599658261737128377863226837912160753669042559545018756737417561477000580202087457301662872004886082585451527911041151517955104467369287543885558323117081547088410353626099541623829489847618934308863597213599805579016498933954499351720759217691927376835063557495374146093412415960612836584505369006065274807545283363446312351320698824092260265102463597714891126735775905033162373224918486849537384448039829321705386692807181690266740985513901444890383441254894194124860028855345196828662808835828018522318747243267770350758309731930212399889043044352777807401608314652327653999263460939894065744601834568144766997314493818018617228468790851659849862176149151997026163807034939335413485054447093179374834927072491399098948911892271787922024853167232231089256785009338523734235285854828902494822499676557514484507528938661880161908337863681278295745060461748972200552179335534056386931864942085080662119534723322767385965671600672458797496876092898920874197007152779024965253489163360357325104293006388019488119203559513268756883302323916967236334139579137309856027597909741711377708596871607935836341233799157743940818285039981348827264777176285327556457324142791652150077193945418867375927034193188247028276604392615342383695603797188021199052478350853984311116662697284515985897853648718208373310889943974069768174159966398712196594584860455290290040415197697818976238957513617925023529258978611929062598337015455478264982461905872250609082153419280401419389310965214009245054718481075206499343610578302961608739976132356970192444360294614450546555355740000110220536210395127269876594911816492556442613279046051942296370861710121011113590790211245657670882607297264868094170193823428381723711215840853314827494871417088373218420031786431547683729373681807796994570164026159075237228762226641223164261453717367110026591264934532255937801904059088384946345935587989526146873545531843815884584498639251075827154656921116152396751362296788291092545748836013734466040333822910972911688500313547549989057674699970639228914965162319114545927649771809866075208001997345572314899012772733382550195086338934388643478909815195204188929844099000645918235708443976987751994657572982945662428208611074717915688658224999854254440131031027570470411288362525114134654642666950067816006175686259811257962430420227690443684012126787554926680941528230978887247119129853168133442016028077508283997794109608280056701112535174291250966609062544486758795668987515129798772058947375703679429146482102778971832669414476889350072774942793823823551829206874425837985049766110656007473910125712533424567411348880799987149452573451242177243406850021303105770209762984951399883558622229995124492014476073364065522269794410634210263239710726526230470702071424907392269000092057180815618850086952488052213222055925003366446554017322045937532435934206775320113590042710568119658183117312788709969357132046253310839264890599921245606831026401645629187558372982627815130584570376680703173797278277188744541736808104060654881236510684118291026999200782055082702451273172960592658420526882187205239677373988719217709007181284901773790218599303151582824374247714549166954016874223100208041310872817447886263754336984699940358729282923105553688094294936362654322055723452593811366250205194265998429061484930301329630804136899852716287058125860656668482034111778680737210008603963110183518948992982186943551872423167355878536396618172435750557513778102099399768955662525502032955947394048755999711418732194711490044503002352420473262991525062223344160010166336356467388378248694364988242270410858002365189085653187042972033230356526246834239036600361868142635180933873244399177289462067774607729903011861893759392576591205755318327600825989745568282803684468444574077641015350702903565131619518894929354839690906743234160418834694145674752247201717216541610129029874335879896447898362903996304145603988379311601303811360923483831375776961564199605481336091307692366185809202322534185208993320455498580256863239278613551354611128767634297044536669979080414154230671341165602472356118887595828644664258269460234951166748663030562214942172333841644602399538947164421272298969067689021879800434274026926491571795285939378056568427753055352967994127141319132212734849985802345923875369221695892419505000759917517972606484328965270073091190137916198323355469651373759372192511636133576909933497489879734042058847435938614076362552443176612108115388587077560404330533163958633418160906996472695319832470551638866643868832424615232214121380734305941318902024688261578897902759325603322902730457721792034464893995012617588171619942153109287698960732092490325749365921026793064227746142954177410451669696486556416034259354776755174162767924052692283604198776763927777234458836888006658751303726582788249821191843334753843169921499877375318379738100311474599074852908547206598933347893866890239602013773165254926609631223114471394308044607200916562708832150014979015858480490093071300807080162397045432321355026843721852699871001649593910523415922929524126515066445279038464323303840532136910088351827485021604092814209893061946764579872712249677575829280585098250012637036087361983160354356462785307406928009791893338838464910787834708248678559264513825723371763820528215334085747938811462673092774993612451410552176918837145531177830010745393176068388091750886851967448303790575850824449168285672159675798007681251392965499898290560320971752311508335568240016574368930928088877079561926729806487229231019640704023556918635558110083520557869591708197393063722968803891241610865199829875242405364129945209457953654251721043095724178525207643340339586180760588164378170355927079662001958757683649485510561270262735277563994770652801544960121374078980931618721496892580277070690317008481329504709662144140418784169928929035418465322541502651238519131157860016016393100534059392215372437258753774435584687079520195266470357657754151822171168877358759358136986888023922414571397875285365944712316009731136208985103234829897841872221680803331692517393412583315731104637460260234989032049732773045582199046856296577651885830908673473148811312701194006233040013168762715127773474583718783637681453630133100208353278880373850268787497709165242482894704938560452665437807359983997032115321664494346662753401670507256534924258052915072382438410913925744916096052704731285263365271968191478051597935873159399925272013027118194936321868666935475423362614609700311891318282045734444931080214986288161179838295581751886990783183711863845003920318801950245845256641505847727836416118550776262015056832286800395278998410258344913493263321127480970889470177478087223736969980267867084361314896249819660044067592886220822349372621242978739985271092407000559080421661978687884784906221802749607150536653565562684457739309150439272091248313399735736325043846839343810942204693109587674543947522386832732910082836239595300746181521427934630863885866882250705289788930140645807479382599161937650861058993293114752847110015272471352155913648697322534941110570432096569429662105647273348337231852320219845544116697359213988800044165546539825719606580625029094042038906453563343301788348749937975303725332052572512593061960961047055265297621932291296821831411573801734490934073174888936096214812702740077496891929345864006511555104044900296905037124021030498640316883177358032120120182522034742567195887591506415765420370423214206891438436990968548774611303168075168859213763805385615888790463407744673499236514404231025740709706472648203093928628202797111366228731479605007061960125209424914462139948789678448497949450059126067835756770044981828107521271242151423819897853343779856617505319098863146179771183856030964475968408049849481434835414501656890993043517919721312787163316434542932602045775491356989747164903925064037692211964399436473070773312388976940456945870436093834445693600374459156132000662540473400902990023920148074452391762860365927342645194499301331918760920628840047593742770377890265177175390201723987820479749282195317493450805389801103257280212772854057334326234327398821175919124531100945512491245695818023124235061176324731181568488699075664673769958479675319561979341543599788058056715919794115142687195143952609129375513677768342997719468769487498992644534580239943452917833461048214535424840940913819545486916970643066429775529923069108569275027949021215770624630575762562971633534758972610836689685685561393916630010257149082988098959957441375874959145694042844661323665775734841217792417734116688768071306418374053759695495696462388478530843516971781831511816910560221826246179244174646407065467322393221523409678322978435637163202971470911033496583847139927030500981318485716499959719833968557592241005301011276569050862008025870836966963764914525383891183012321187495972182261281100295023273946990878906969605100583974293162403082216245451187438977007702989746693399080211365936438688288062685834802103004073643580797544561410761781256990300360709001903037365143920000217173109798273664810686220739467931692255455132841621308197541318123368631401353113249180820762282485779273059294643554417548430751477405827156134903778644596161131206720869136191778760342084077593052328428439580594881575603982967421067748670787850408259248435854381240766805600284357584988330788060502773278865393008879993894135004162322164457697829144820559525418727279366556898604052711199702402679759282983398084542394953856942333004564033280570441623743519618074405441402995074500462726787408607873343479032200225006211325142723628592401174375040670666927777423479555318890554329643602146136031532235403959303647890054161450159618026622730403510884834770963066169142904502922699698334699014591325191333413994889092697508021388742551840042901622727200051892393932487178811155070519951202738766665901602267618107315659778055095490811335949181843660744541098298311487121999325045219844860608547070009312511322415495060019792857711877922632309905144613096161262179567721525706285678686932755973357567156824822838458084613811722826004515678508215110890047143557072111922063945569909787903137236999114119161650547211214479694971185732142001951223228932673672375302715508714796436887175713712025383450399731272361171150716480789928594723854426116598835430088507781887716887994719302553488319187526355644531092166562686761607867025035512400875172312588847818068483685798957064249659736526594744888921083204156702948143324333233789136393239359558004198094553568549302053674778738396421194611667067862688950464484559399411930573639604585397336966685395377937569490122538240842493663926457184235791432848789265644000074222640449535560758726715923858923004346137796061640322732471153156278579800747652390379540254851646730231589045544160953421090141650011149850117763794796360052649119528477212318949857911788398255033090016330746301862007519413698136677108018451179919920991130176006781623674033783402069400386194411108562334003440119419257462523872963047161830912242020710054694305027345218762857890736571970718952494855799527674733406647337026108329014014309376386753526531706125414639412668506988193023187111878769318219082298528046061477973349741621910619794532244534647663704264632086453107609122731673056432921366246903194624294178213060679631217623455985505467981763885457569606892736376418826420926784506713054831864993756781257379094246963713393043759795117404267280584773488404988430018114751429954795268803809832729603428245721063694455551528163589451691559537429058346566596600054749611230317525086361482883851749424918752485793971898345630889464957748677048173029902800296424056136418921973826507956162594614379396014649763260661368296416763061705159009694158668368150039637114365954347573360586447008332240802802068333115266435585315257535875760965021434147915322769376198673815472716465694670896504080500438603936168645227341206247400891272977754030438851552876302194556886409439905829388442375902284778782699584294953828532782368031568348176327060370864536553119656434093514833572367601688820490379056959094680715320580139135113540307922197597190298119260781203686548815980087661645259195923304448063867650309395866137564890487489252578340124163864212198463053246382895683715775109970369590988126007626437947832603734885061189738286486416027961076797094598510121276063449719585348372506858492572951677622327694260974418378321395145556937481350280371120069989955564113087132744937578890985335907122860063982555766463977603136483734136098021973653454308446791028344659060301724804245124958400834128493790805488368440220332673498266027340020177763230788839818624744768071892144537230548594057707814588382692146588574139264835330894260801780107324771015586343110239496549422349195357521760207134014592199879041283788629030602330940175592659976609788415669604720531467122462330885422951286929837116244430847029317473931149628993191359689155084998253829503865161260304696612641927787112134622899022095691973271597693357916193011947941611003939018591914596768106304959610215980162575792489474464158760169944149914804220993549784159865340794756337084146460871997221349780488947096940357875463251192277420071410947472336275477390559957849520290180199310856945694236041027831378641346783505548458404010405474975708186460291452425467328166763622048832743167269041610281934952705440139176553428076043801014170479640787938343613853695466371891130252072767426079720161340846160247162896442631226522034719911479232565334995237650366681311485570940549606066985218748945125655378883609357625820231110707952493430230437853701442177687567765476482926218056433940664480128335540524758886850374883423838410995568732203263626412363759605780399319883343905259963235501235856404411537183603764477886934386954081688855124193614305859144218795555765988103885954475731158864200539537335374746165044428303991117562340305911263107199631398203675787002231567448226741765221788547726309495248178025108251327436521006490300044683248772554796813933655207486335767456946302393616237244500834894176071639045166933255101192472879909797187634664901250413698731625057713111235820671399576543368926116204519585614866433312087879409548453438669483878619891659639218984598890117929544136268908951604857269802992667000992447532077310974179602036722640523043724638443603342571221762447677682477418603667913243753826776153337726889673152496034545582824015073013809621531303260321304541658354864526431793922837991640554357363556757538909141008224733679072579860859853861529670237639449784109289134887569036333090370220132023276985047342883098615764947534859075736019433828313980720282108650729428658992476416026808691124626630203051147183053447599284734064921372433586707387988606777433767681667316723045989431826069141736761571182431230614454463925890149659658836707920693582946049950327104994361964969104515745978097327746070332997977228699423733642850857083669200056096372933665448170465506484726569466109724870058116025316418892774734283316302906595632533563625304707510473404938869664478427517125820565925489244637519425874996668834573942298616901251704297483854235241587954717867521041791707094738087468863867336061948837487106511123123398421198698505903741580173498761655565639505164705900674158491267305732355358497083049373955196032239206086628916776789315329182482049080035090521331473532680734089656926871076117435031847860807455226618611178417255085098877705390251927179608627733851309660105774158302981702379163791358093834312689827630670209684041658758482578662826669637916039333924209579043962011662452151624379011595958689749357690147811122509862106344640821651230061858501441598496866857452733094931621391166678962334556727494863248341877335357564607909334240610551118473029492822992828741859689588237722519769287397286862780675731432350349413451612088266284730575076602714553971867283959466554008639479747868127741583877429920689720117341623319459400819540658615527941832528006468983027371427590870051160333860086696327225805295329274348239042055197242273734749377857820013507279319846152960837966648599041582200775736966666564360651750045333262279268097949133883014343299665048389933423171791736879378412850196460802496998774978701131133032072038216664888379829891940250372779440733206436801252748707788151913591795684779454038006752091388214046498105766404335376726417389479084892228988707808164912892900474161457592096633548435799647746065924317626211779316318812450872111472174291937087693509563747139060758759133364146520475393065161699484744045969399013816156343158012184016898248582069007840473495766351298120254275365483798022816191450117960542234572752011348764326777755982719497552576974041388308798291998886584044965818007989514185474005964957443069143328794849755916570771870125300176249862398144522252446033730899091437482117874472395862166283642929829445233679115443950943485317397247456341385780121693714796145345946966201195608592036082840619314580848997607296405681597100675007565471456058563113534143429427881888273362142924465793518450349337259863269378144214177140857289790608282529356776165364748796571649683958706804177300241138338258310860477172333000212893659149870231390428700821849015556462145248143884428700211249828102089783848818915111722545031959047404684459064633251391265802558867063740813891741954074537018857973083199909542909214006113979784234593314228540957904964812560553521773951343187175749539713507275881573671173617624484177748956429987240354334821301297516723890944393815005088479159710462094252954642596134322593932653226929716068320349737787053794746897680370780165236450008979795510056697680398175502415008305636308183378484154978900429175197701457756365741931063438598018271017844511941090937338891527809931363896706134070523577364784936806390853670660273985389006846952231053862314371540324640534236627766248461941963643891354767000512551211497376472798715234580323083935133290265087666367304437029726587055712059473696982410433035114123837315955773400693037237366513039427636407320959011832476348013890444936330920528112662727135221798467529779076648496531126648760694674209281001958563791030181918440646842497752985545943378993827535645178426508380352883258563824234649220392947784988867926931294898058493828544849250639185093212628136109647985604120817860901641905522225092496748000585156760131978942724111948785335016053873461115770740840588131460208986251846823811734888600774295913329578304940607519817791583781609760120344865911643785793765247151994451726430251787241712290380282884840431319755584067801194977596448384925370655041143189243424012559190458608493362456462310791413278918931588016780909878620235987557687477895688234206685914249447672700988971506633954818898737664717131478961978055034526493907849617652135876079325049262107238172701684116651189712027362672072973157825771372737967715268466175962166656239814367296461969104810475178707503075904885265204161243314699069214603168916165984862219647206667954885778244458886390456758497249796089034028619343599951434975077299609961497212655703476593905151037988893481584961238003038554629433637097033712727783638280645410446129526069638949889838244400630332682998853767070753847258482039117867565374744014931507526706527251847671395058731278801698877953325659852271601173948002710466090697580988758824254178454892763486090139485239665349496115364197401936507106956932227676866393287455148265605761455588636969427801433514798155277876515628397739609754524755042618766548245688335893665734274044689916201887693148960484364210369638240571963072481628111379400378011603830320080049411408170971462332013149343592692550043557315386170505438994506312795824938261426803847220291553913006486256106160558535128943628051327023918347816263432165838342710710371826084579556593768393813385479577645878805940104551872040754831135123638378207546127532021527750156006677326155275886246070890696288205786056878813297763603230580790821212986194051630797280721344912171976647820539413865547727829355837246979887162291440182822542310033484280096890318695610581992065871278944409679861840012671901311774900226530638687795934649053542952439711677933055511027324964728244276820930218950592126833709775648908206173455050288623761962773592935504787675027336046098829881284294428059042019872345537620283155213348614157533634856988479430650715576596068435968305686540099578744836910200511333033674854632118948513392466678555149910027490362399788679999701153232527713793936312738273254940759638274650682013766897775314982432611906392105908549518099258323113322031516152181632452748990803428355188003543026575904682719908531602342021635922924493247488917407649898296812199508745727474173906956729903770354732493458217975866137621278596934756364347209763247994702382598547374082138841254872546081434238229237816638993580425643147533917454576823461367864613129820912903785616503818114130580886033020083908739627866963126240078520222001153352799392465621416928892567083802095025815045686073290246057907057054726170428745697940399026842750630528398644161075262157418035356251108357876006680573517133019559719373388525192701881121506532411161601250899337945546135941431987863463697394229361957185499548593527238828973556346692003861661243674645354383135280786743059411100575545752585595254894752392070272219535428078911340817331916648548671295079688395279552232327916216829094223827029582034306613778029280049213917889084316613063214469152508804350965119822241368885042765412957910623497227733031884747487935504651986374376300088411842787124510309406224896933256353672114762713750027104164118216724792878914214792485480472326836976607738393716574431232466462343060252402320276963118895541448820700221364074115451425710835495817772488399522107270044603696228783793160642613470023433759868021580893899807870953639305879917696386519538593393047395964037603368291857449152954056555873796093926020316571992728624061904617363242748283401589886435124432185523554712980572197228259423696268171460612780406350290476965791520427568744821827864777051276628770766993446368171534420012525390330366404443397078567363711093913759093293347621287446233665639505142651923589303016442270115857501165396994964919526289600249102936513142891383764503452426907584785126226707341944284885529570405403139077749238102601272390304864753611720818618776196763699071120841770129403567897580143064532753955122892531405337578415218738678420483026843625947911813259425401519858937898784899228975998441120950940718424725313320255370447044211828076330599254034838008499002735202504823505676727521764251558662381786554474790394208918741020588896326407517021573722090324274201722553188346341637205234654505434438950809684940035614123135635109198352179328709657870298042561808738145614322870595032796738031524677584604215116383239262100307425960836578662379074992752319034349619250474275212624273942255079864765706757605593867187057786570426045023014468313445510176104694695198704043577747983494656433981491761594112148877731147506912238183227361033177938375542622014450112864430947892477415465986192803490461452927354787073081736342638548226018046674976135574417067502397980351606853989298591403479167250152234587689227417388117509719187893612405930180857867859900169917704408337076616915494501433715940798126338742633115870028837059931552866561225548870218709822990740809274001936030463148282535556854618974121875818779018547594045943955759231658960450664695624551604958162384438475857071008701627799494344262721026352590872619669004370869540714383691288178763990021866350339787237440857841876347982888641945137907390458226010845313238015647579005230772144962836812089715389186444450071739171199574300779604103204054492052211712289398146775048339496454974770097780105778771643913690329565011629564343493550859444040450036382786571629344008085353434837834928826333626170870289827338284005612870015014787638904072123959161370473296275060839693394555445343939979922431607534677121811798438325417322178950320045957050735946226205717657992881451717980540085374281245230920743306499823946152854995052634655077033314055397664797512106026610087675632041331414073857249075719440430808353727567596810406147200105934055194859940553228752370404338964508932333356784294949965036335971289057540971001600859246776456975175638579580069819384655417098289439643706566351213823314215521651961833934982173376788204711713446509069362341682312421100692589618803938131580058517522722865179352266537934444974684419244626374186679148437238162510509690411772047126755589789768174831720174143094314618842035958657324671483426446262268007558871590450080432775659586264371052436135463387348658442683467466051079475070873821709564806495820484742572933355142716481830931132527745594799875941305157607226123746356094640498315404251774423781867466552592494448909892778115994551553272193674359153231514634535074384179679176013339488410838980104847768519653188778155219499210883239005665851741246474518290765972823524755958717730628380368166747681632385561556728722226965845507369501896528029100382054442649483381110271980816287224567764798434909405591621618317137155615461088817238116896828897861650820690927763645186580764187457160428673378143387867086391928861424920314925323972291828754536606178662528334711803381581999525966149260605270516970043654795070769941108923339409534288231540016785713801059885301179618296728714816805850133791013906671691377785950104277443812685317030219997141374720265483199985157894475268849617110899253546632520754326073337590102408224160251082847471653991851688800505126777942541568488015538002471140610864163498192438317575973116487678776919660390157510409666275884914509645409269534048531911760097364977283564828584082807678860327870720043696867992337702390823868187887106461602397840638893688548443458925690845317313121892028983632770028119153508454122916564629217089277150845828440865886304311686900367090595257048551528546516794278003700539776106361665376506371020824934169897509942442867073098850514317482376090226296177717583134666779385229199365745362237752739620918745024850922345437304533526027171654099298834343170588618063519794133656350580299870584785677791152915220735794630260760567851641092180394545737775863763949672310357596387420057313305358453650112414615899515414675041331285623038627804469125178165905426876880535669300464362751775394326980049041640370156183183432757149974603436719486687461238263630131882294522395535973237016459557335430294366838289387387533519516973010027942408842495986559332360886923563706428901559351162044492831714549654567594455629391175052856355855481343320738790433982648871599212252096556280406445269139312451808527140931035535803476517157702266560479663978462452528536427371417022574367908547843724672920652592693633550977128449753324040057736018333564545143069140917517075363267659447370645442654583829545705556849150469360607096510037247985226411701821365706426675494410596915655235715647652114075843430078904628361437800988142682776000985528008073075152114977595338449305912932405449433538231371083256090151584872941317851225204400283348502006286618826009828195007168244689032611115786431302132029477676048493784874260803263693627420046293741029706379624360584699269463942197671708461528651807735803279217457250312516519026777013100825389181484712433801291946281173574316798006419982270196185163943818380338166121768917130348725709841780397725026149577007780496741975250266136533775097309348062822153880926390385482736674556791134226022936108142080215050940297749774820191457288663523745519059230596309948979378269154508658252732062174497397197046247375871320198949265830698000316244045947361492740669189547624765856117165962617763052302981340519020440479972331410067189912840196854369905492907882125899237116228245984814857349935848583760941522357390084265756112145641074533935585914755252506390403669087583158720234417584214878936033595956768936197919352199337046610989892823492895737805317166939611985259879346012330882067272307249452174179105708525849696595793602828062363186969693802020605439060986847340719795336754684932129759010952222597027162761851566240057823646905628063312141963563518225566116784336870301423081713110608718643269622559368166108559108895600521041736580782246859933504481635501688467867489196298352523892159961552936967873521981575628573222301726000231681769113785359982610591452308340523789005094988014038010280930631682435383477267291186263988893808034087863135683266365599805114859206427532941513272135699879830175532260533239589588585461734561249679787142442563888797119720553619049720407290198775026351015320335295713039029687343969863239409621068921035237122758131446341831883131013845133161969649636742401740713001242899654976589323748685556249381982663654354388754925786718665569451929641254685056546776479572597812798372795244023858718462317606226208112784918700223871369723638110494769861206733869459081808510773268387480327055930276682867218472410598604452767240130709478761845568701810142195131250982179531727350943560140914659697652359090514538209516465322284569423370933871651710139154759638981051894437886692520530671879768722784926271934199775267336177127399203610514631263083170558276848787658302789675794094039051082390641034256685363113146191719997686404066201347119800827903461975572190843682725079952900147652246864697387754247465876972617262939884738253712259261981976358325624766911554820954707335471932900511273643072509876500958245445308912857204258612819996712185730460305094348537335692468321467197315558904135621837728204841911174397787304958903970617352628883641999673901099417294966915164879647678920909711212125071712441797609047351358967817004891746839339622904112511691451037004448921806609596214073949713272046885278460256947130939004670484561729982878839207506243215911922763046577778539095491693574150903191134117810514260699216549721378773367489409713736299715303714689988065559889366129202985651557370167339654965158263022810926001683646946962680914647968419680241149630972001021167886134898762866346306464770689911484099964598849445566499156521779702905270799528511756295350757501359516952848237627435270715116488465902639116121924827571821273603892812249000200901638771419126385257194432365408808516786373824392637702407561220273215763531586816322587653700980385033071484347634130196621840987066574024979078988410353006881228207138250650181406515458944544715157514626520544768919308079498948040120409726902532172423424989836935618092228311871953872743345480438019053141285006683357246095239784060971406548571785042041263640565525714023725691181485908907024245668814131724542000294690810561767619321677232029849552565471125260269671622547688547988507670016713271192129666314466469012740440996845551391345992823270760224350124660888435795233748888798041889445117074653145590045620021337233499024273693947764106415310091189386412762360059522320551048681326426124781428020680118937307553016011046939142198693987753213851991070452358216810976027732672001195120944262036748139970066208411791793012621751749815992921454188937095486547122501268867881355821901724571514000803680988741785160244077899074461549865487465329690501681291532657310237156093014473318171507225664412643047047494152799141270774973737649410378921084350113697723242082435027729352655529197530250046470884869481824637508994576065798646348557308051220329953514810668071752393554346716677157607506624804304387759724748328751279345234843892251957497915737797029150689825142020158046407173702993671494062159638057543279420623778995599795449956852573883145302030298209227762931290283940863595379250441690175907373004685625797090508746648682942915568459484656220460994438760722386812273500106381032762877422424864059653753422056616649636310321558820431821079028426909548495797767583468360885783162936071646932171542698310790182656678022998865220343359648408644537441625408537675967470998313633163571744588033988447928266789707803268485216789843449693004206811511718571430232501229803258875702180429641836357941384513659947421360739652416283605280910241501032059630264519485720511771485847223819412368137508294383196245572714325732769417799032908960700853508519890679518157800094477624951281587806238469087420569863884458890391962851428345702864944265994009874573609333938261063558756264165683537925512862408600882322993778743474660754202690447809177850412073705891473915484767220465034864578296900576788468038569213216638456330708267530600547269538846325681958460535622383838933296062783844278887126966261021982844815190503202622068413256253640043979170963481138172328850644435110802497832532731167739298680912837537281092265781386897527562598364893439773631471977022648879481747201897072056313573570101723231977136678482583396666341265929725109877134897485686684559501710746735880402861465708134261517946030854577079824145697872955764851452072608171501045515016695924360668024357017642414281473358439797373566184020062727361643750789677216513398598876678285568843444831720532678641086682960036567553187960762619739827126543942670750230294655648963731306574893990435114300974444732462862609686826491299302943751496357796731337570172120680494652811484903340212043105616072469473054419132550612014317720162602700769699389679583417191872505836089638166922195722614931965529806917191998936867889885324120162246851476549024211451187120611124604971547576311730731655017369235366734243550258238364086896992784523988959536308985978910586317666308010619727048724026132127396122423336948590248663653631622925100170170124998738522951688445468847939772052182410561659349292589115979057554682269751762194566060022707666102964831821500907837072721332430191336968324740265298056793260824974062654428815441213154961700423318772671359432487925293792351292083035468327582411469988865989556076053762574080923731730903756125286250587409405349480885102055418811588602036237250391541471050188319091541574657915787220081515373992277413955827544729673920816955698106242823406568255218361206654226478308678788127536172070161102239977553260115444535506676402037138360438719012933098155895546137444837866909265502404756131660574691700317404039299999477200638603107304248153417324314553439366417201395970457522791271763686565678845254366584787036209602901440516623665271911785623744629797539265254353952600071936020654199887088107521844490653798369416512008567047129087124160591480055704870344999409883260089786348951440890259181092287900984673026399322442696738843720338757887649778674240750204720909246715360510677697079393305282508138290871664265125613526752290191253772829771098940858757306552682766934387524453297600292146481462390056791568096870420044127557937545583191694282853221525906591932081326000354875821188125641560658085710848073406919518797415758411314968189421881308959992611152142888093847171971588096035596498298406507876485032656671128092036843198473181956820785564874381310981187897245757045910621880886894568439291784946826557359269414453876037790733289206209159929496376582751829057564653652081316587081391571369996119406451437071849967372591652246012229929874078456729102141597145007068575159503184247486786160628600675221137310517040173182623673517845859215742768273404167842006050786891457791195626390863289327244821536631078306812962535933813394612138817828373397550081341017799980723112965946872675478767970298939618271591374609491350018436504630089657241633126612472827789248064519827603583087283777670054194218344619533278358180033391187711786824086958734691872780402812349117944364827087057093345227736952512250081018417421118207682198903469652263958382045690713286471762934011923446876997226099370447306402078382730154353756714138853492005368203395167210480012647315323754775071486529302684766999586359000707719712118911228594000314319737782928104632086814283852525363865573878372784996089274621181455151894251892747023195927346066206333336872138079095922466025704896706385302949776346742502431141942615883260399208978673242992000798164729605974037554540019660671252939036435063375848476781146852434955072776306333914722186370185926334583541028546192954166595929440721054607577294944841033676369754823996127650755594334195784679269731045111467397517407260612367833618445365756812974399153394882605723197983438007171650102872317521011844363640493684735268415600842472187849059348913428324829617078401678873269429895542945213711525014775467398597105002968090926240678132843546542468672025398483396872310296175458851280393791221261231772813209799285032355740901181603095552127363919260562277253580590836287506373654083556336983763790154625381423668893998866528662868353396272359406792388743284793788768504027350452117454942514651007340590324591094079485298378899688385426995364367188413071541025366443233096356343919887340423161010893901267570181233585961013096599706253402907729320576772338754674180852552497062294370616866593647543227482953564990625603791906966668323328138431651048282983653305343737417449616424955139813629086827871334275460560917199962693876216242244846701628906064148762198586419041095449840215376973903625981141888673742330906279334904246780503842438869036689537805076601537223172739319795570615290404504402970056909101924057965558721104413489203030162314347299197140208675704253031902795738794250467415892689168398933517137486149383144747869270198973309073520899258161995976862943264450281433081372288079126812642853615230493351000973309590624229970194470059386979083135894732329485712627540692616979174572085854304155391312806960638924642222109996610765785540849613583656699347761910552783729797764846048493146002571339903035677508747467366744352362134415247116057521172758104733110784153805604433527884465349737852489577832145124467561657516060324091896289823901452427778229116622589285310671135287581303160518494035581225964658222504618539610368707584953026479742169005549022183372251760240118978500567182084270771962746727134393293989525501894755050451768158873459169238386771487054296644248531538864176517957021573464206759802691183997048877257492253078042832437556977747312586074191774561024741564312384022446197783598122303053192654998053131545732621599526822662583063563723934177575878006326985250678630714798787992166935298108604912697511076625233558262407343899911917398948949038060593564326372123638092555324133362383345085502550865399870742594837192567154261063160386922379644036251360705145971970574227679605619694829356467947809216690304644968678947197407814551170388083936671575321929606789183316708354826941062714313711905499738282410394577911501643942582468549606059565527680433218240258620076632945252764042063140781543688223120539577773312669180545016380536184133019298849532685865739635974222986509043244524510534840877323927589198397382129086910023778877699415102538459940489450059415482613616846773705172744361358458984696383250089389720819156895221591244409783682421404847244546162845866971091971343680552008040681269903362887016574603372655937681143630339684627894728697647879232843633865510045143882250131235572056916713000239193608582238893408570171799611053508757774651490764622078659562239460324842985293550283881600641403239299721626796705099264623204414272835740253239877169685107364909281245035894514103682398668760119494333056644057147869906165601997714339893447976018267250691597804575206111559898685973721856798196665929566149325403506156874389940903893362135123798101985256923963981640442760244746027184626371627215838984862553883603495655450295661145120042312921924823153584264685628896484945767109054030247213986681534940687979969585263646400890455272232816178300933002984042809562844470603973050889327991457214189785472178034931021448380999976283713480076628147442991275637427701796025889097813366446934058585471641337219308974827858405992559846036809485033206614286404301648017327875645476489374839756629471066292251647549620620508435489080799650853103490231794514775264590298187463972111655813016974556235618000243832326968523067329389511901056322122364324750686064834570772643243687456479590548455719391035242684090890147325151174935213098461418651453466587537828766196365773181168445391683919034856788983414984336121052207199562296982832063900743915717083309567819416014529341048365420846157806265946394799603790733666795432822474189695608291329891647341762852891794106528598927613372955736606353466665430148723874117755513284563638129213543291065269614876583089289519299305133481823917626444729607408786444717274092086680700382745160921483416574630159353069552006236155599593581703979680980300159461355232668966658098909987555344756088398752340013976462164591595120506487214755429227260331819271725688307013856927334617812090662257719421541458652326832233365731011680357591975380024935364849546505912033449742338819871928090000542538961167637152015094809666526917496672295022743767756500116161011150073816864155007910167876709695402479526239063541269026891941521702634245963951761238717365006600848774462815560538874257530216241917843018240328961088907643438103012237679501671257302924177627058249615816035716591568285632531081280391443470928589665253924439432345124324197336221345339898532229353065743833011872589588133368051264287083402584134754196316798578322263437202935264622857786981172980150717349967975128566351072319636380549125809648328693743498533310691964187723307712937538051534484142429870308864590402292939162302381133747368595669282310754287154055572604609778748601673706647636664845681478383404492468518466142925070200427957146086439883600783889416292083340928342171956820319722078792900266140021364513001708955386618186586867928342709899841440461002907620723279123466164450625360686866360810812224568553881001292170048770152951064504934995979727123894454530528056318785333619970683641235959619719479190748437186450017411548714709958435857115734290815334025711720541278149347511062160093369641041911004436816755236873918018215714231019531149154548447243223053103492804218254970050311389337466604805821671717989501549769683862578142120180159836818489406841093001051983984547794383437901446280463216137043579975150464738508057833521561534270701332456807453269742881597239430533642618157786860703949561536540188859840630183981634332577679986756930243633283484754111156759525568080851416351424011456183039725091355624635818991818329492860337113074740219210487190685376609076951568081404674561161591054879853064861155792050145090386177670426127857013715060056699181488487350443381850852623487237199244661235194855094758528546319705114565352671939162387916030358194451834722994321485303922523891639245512355992466589215406004293206887677878930064618004311538769585574923088454299563130500445241978244696947299570411760398750137736903284567272174311854144224386927094252072769025046878389815306299612439872231165493797446860769422740445432757679590917534887499912172882488115349532421547353913675381669715917577062412748973590188649702339314572064515950690566969821700977864560158643524103281180547644825942684046688202059684242644824378988284429989098233026836180728846788203804984555812824227749218011745654921687753855762980772878562966560054365941752178104162659098616404675860900887768784894122447245507160343774143103770068361755532411660136332322881311351557665764650740982639704440879208139911506240316370473614222087898203546904890472972623895450811589264713521115360494283209126294062816081143973418857313191952995182774243270035372434325418767423311991982763946720432962733012815885948817460984872951804534577928566906706121617777360033672362891056585757476475370258022610777378017829678932599524290959847040090222199315455526726387708486700299669973069991773326946876438523346707585061650842985728739182285387123748041643243289042805401272662150218098897983529598042108380147382872307184257659758827113154052626243096181396451904449886197206250730319847798686552834562177033475671625015880516823808480337184835437424752200907200938185830914909619838027116399279302475942817927988723219986954739644930474861587002948509622576090996873672742243237942038755650130657721552769268146387385115642995191933469492557646986710964510206768488615091422864484905623943634814506272878011959948097517960828423864938201855256144000469655584567159008023816641575752238601112566986776964612124126924992573860201028194198385177168901267879017064220858316005713935197747481486874501446884702568241242060819321468503729966812197944971680611973253582269857154166125532561345931046299799371726875680079851495395620291015608437863999017821170302127563469661447200817786245002033354470136739208512757429943342382393624517029797520295664097633524716634763144358076286777074608307799783113255076931333352558061733970585984161006275209219882447996516195047354570964692170874039962746765009998992174590505568926600666337858252242203642009632727499958454742523132311369122187111872704443277228457128681494729043425714708056037938495548327256333487175455579633455603399636708486386670778742011415882338201986028405655685426646061724769322626056481759427832632014711573502026143997770301893069586010899540325156200450081756879210270581536364912675883858361718885405754987677987989046807421394599000298399392821307510956361848042672319144448329205701180972719788274192116595321570002379712591220904883293346592727408784471576190216744708314632082399821313549899216037624979585824316550816661400800899441039516193456459746843464175855430317030427161234427847472421991303364456931075661400270931351579971793331779852571104991077124081995339600036112851198606841317875822016914934796077787913623326710898719409131223844156724283135255367384199679833147144046933541544965013932799494874886497063468291489191303746000388797376002716101541384505869916864858005500886761803901479518795317161886622286796099543714815849179115085735756273262787403773123190955013425929630323784780182581229437112686513373090928710575536639489120935478640385927615831914928871773191696200070780016654822146199031630952305567940246318826459754772273385093510783104236079861032620454083694577496280233995774422959622283013204496310718506629967285619849439143085105224110338198744964790038322019452610311544915813136836683444740179350755502459817536814643572808259327846574474471746953207085376407572094886661806498287846732099689978118983131457412895526085122803218979421748827018347160690147929566119747197821735432719732584586669966737841280095108087050505616983695385303767768138635042907566738572160579569425170267102709979971738840195033578110904052909156745076011926176011348796144161873217970812793535382060684823970558242174237674494193701234875818713766156343486337801442549288941811583996222966520351420822053088388138774465754662542796257996525513894327441325182596048524416420145534012648650166519831481297327130494600462046638459551437146724840519673666353814316582093621065921819490666088247348068246939949757149753497918803777870338340846841150985158590623125569543251073419609892485463381837296507349945606224062717679830594519412520645412570735985330228190258539002002556720914684470942470585624347082280279134550495020557898350956503898152586686671977608995979584974524522906315688728685095255838727866439101473505660020968424610768771154823325289569035744806033262527404096684007109219310551180036407165837479091262426888325418856039750983806492442489311187595287974267897296107744093476500820171215682114725511285189247000002097896483874700153823947901609381309683767718677295367421561205991915980444478940821625573163737842509591725374420734359924868661513785678304657184880865592034086080221444005160410870151666599894494891198268295748386948218746507532851156843246136834168272985981393984842624169891473617736793806321709498581083200666880941383829878127010601207105271599012979683305148393476932949256591956427500031174614549194516207638087366894305823109567572109220047895011223571701080159722988956165193809471721987477027936743717225015093147407439491636348256162587603144087387164487274085777084311972598343536935382673649196080782683819107097303487310629259171468412801674212559680579304285875060773558900571878612529724845906312803141917898295828926134462975990404829605345904190612971170659338858220186201425180577077110995268487643928438718455648337548164366097956958277209463394650841281974777952262433445382051724102895195927402522871517610668825509387986239720628342508876841853396882683496691700767083782169370170244186044160356606408050483783511078599726570705558946776578914375042483608057830333321378885015318980826573923776786091024107820957024687103378705387663321182568980406284270114203329007201724559205035846212758513228010011516720329581403327758617502445815206000062165860966669234395955705099443764022947653366153473382915078213462786863119139340975773929319473230537928897536257256384517144500650688275888571393214619610872101499905398112936999325893102920352111801364573487619750039637809277407168505268790636267130440030143878520999445048025549682450124023653918442800936932272926016373288389981644827670513059490211584300829075843129256339666511664976083417237421019792745711771568466094551861041628429312882948950026688772300814567463604075557828983022757215609416785723363430864106443038412071932402986282085771737521857777185921335083398914968072936982758582706025438811948631342045065218626899868637821177928300751116325827560724110988336125192641416398704433382020264132326670423435776462483820312341687712333066118363004059164142738624778147143454948771906446030598991931708545143048705684043035164021559997106391002251782550277078964768194111095708880654741655317246066309375819372037899109430590877551693917071147163257711956582743994337162647282554439578577166480945262810974650211990707008436725534721566117234359719789900450249115262485750039294178306682100452309662636905778939778708755001890940084768752773635509084884316391355266041774526563958917754890520711818780370866385274664596444707318017838372454936918392246680784788742628440006334118298537505618549628973221910038072798677274824256644149825717161480375995783711462825159915072547580788503586542243043022224848551303976407834740387340699406180154551451151178723615186886850558011846474845696586873227469726608463786648109319322727789816678036998841590247825678134695225885296838409464952523625688607871621570154821899851488205901450242605356466615453371329283838123792462532159635719709419452429049317131860662449947142335099364095866314405704832556400497244013632498636681908714790560508171886087502125858351482404586169349358707837703211590683965522193163642070329746654514469443104014280933182160261299394366105504462891682871018293961377364863471468255289322714504781684665418900221219296599714809690476489187325517358835751254901481299429891606817340084378082549809776950869340907925986971486310841090872166057598616616214865292895479511724632310687899943799288029804700165683393184585493372374391491904055129011041550133948872103156544244396448128668185736259290467485486275543847703250024231841492217829320334256998590029306757136447148422998238796092513984692239929162255197380460674455507597775937293717016552130073362682320255725336769307195955212213603260042528443158717318044478996133756387958633537514982200072026461499445638840541247925558570343257740428608982083527637322825916978593124925406223682485721536757358421523716334159214935623490401415271803591866666773720062729200659513178153009038461379443272738687142636913183676319445699371388815821612647078554770365526177543986206482357672879121369628428102666261703263651331759315809608992050010895148577860526776764333485745475227022294199832360060316127927396296728762291168111949346623961565785095654415513806438112577415227814942553686057754625720231045291399203144603593156269990937485209298487530019154839695218518055062202501567785972342847840764915759668866073764522156243046067451482203512536015041442528484021136795613536554172690715374130226839801730526513484604237970789292901107253937699173467461334700544423698622958421138882401357917861271669918780676729412011498762706947506185573723202825282675903844279970324657206056149009418615272970573058583139346935267710602694334942627164224650543589197224815994799296720457502771894050700839656868968720253693794429365167642113911287619715098531300273740123945261258135644600861686389305436057379252296063484421542684823850121704627594515405095777439543754205115667929176471101048801153574007000365476143284192258189920057288850895782588601960280106890952918029755742210407415131133725098038311797332806377969823120684546244124952357443111992926332198226363628050364727551905197425102052135871259078207970214218174733251415263589759348863597387372934229781377693909736201988985011179571027764312239129525547340328060463637699060135940430865242892779557931277480719551358390462143866254358562903513447058519652020537161039471943869975990499509316585865751933244680590282059310850566548784016782020985117114757610050313200155881443596859950773077184916264698827925521872561998794094205027323652306888550073385220155143098505049448142884102660402126503278704157816540978033271027871079734593016895468754896912709099452107909962609522506652749174898855238587249462622480935001965179327397874411191215847764845654118608576276754365026630532958096461998594204561427106120293883014108997144643807127436507816522183916953631326861440631529719595839085629312581910427340484640237093907566639238936642726179685518059574097966796466678205813911427821573172529519090375809233199946664796355211642273412902002481894075557446307435759987874813982447586244019891411415953131848798391757836003005664567169430873341449558535798097646901322222300924258489894761957987629855262682928986399929419655717563364343908355562492567871974857241571873769012370342401085478124562768946385818064561447455937465246625663714112805509676353751347907998098755386930915742123104125295181807933253715242445382195419473465875193835107419465271570714356468900903114292837704493119611876848611300148729618630723548643518728452457491068158590687936747843299896903318201318464720310683041111661074928274743364341982652044452220594135750532025186075795017211406121816956816647103558535046462593546371135547334871695876825934928447064257976815582993660620145242358216737938457066095550049224843972056650297429764730443756202255331197923854827311327190045586045704073944896013589025266083742373626869099917480856272806783550572269635321066168181996666733121007768838932688110199836786838226673301345977849076937506522582598341363581904544935438188544000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
39000! 536417542679660002187246429078806075575263427152168751766627095647586768776129755200705429072640121982014336397929171625213801996471368937282069392263134292118941031341493467495896487131432052640576568062471565304279271452267356873073966334810617004719781635922955840697058047423702146657031354346240797446196022507823743300551432810240645210560731931336238434135446850287457577445490096211143239595168761568164273285012702531318600719911578659176280121748669198437009480006066214306154723948024598999990809872477712330438575157271787255825305620578579122726857410155878720295336533093368739393089418474898384212412401804625571873737313271688719115858795216676751579652404585220934644166514482467905669445030845803453400602155578791698777961561101371909502404087040146001480574336307689609830088695185785184321066134350568330785347172218906626222473925926262419742169269935028036092631678464262257418199466187517758202684412583534442656486796835976092481063060087437803973645742660529275012263291475363126928005702045992992735537933094130149823682213773454925665617068449485636636622398361688493846479464719827190895154935412600903241487366145905821915971846944866683768440048476712189728620557485061628200605486605244042432538949929887398398017863264348935381245872519237875948979511958446270908623566432356547961874592299457441520922627973894594572189799580176948856053226882947699589373227425686873995134170016317525654430573224839515276672196113066061303994789205700930682257585083198468718335765159366180016515085566437700262968402933507350339502488367518415104836014529507456249266138018654496985668856256108622492929614972299743535241197439308208742654716727735480711049670444291890340957831476008590628525874083419227576610081833733909585299754513092656248032681784733228445452237295404976647629419745769907552947117906413809375256805972587260730465208853625443046695724250789880075246462013711124457325304000577043721473442515435732277985987530203754564931504819118211870946582182392256630534932366533182049504054885264334176128289187070251013746572607804219405650890295704943031536385937543291543895783326911070500677438940868176530423855178435717319337749569693122284498712841351138430068602999345017743277040309970745411149359263663969387822122881162203069895873331103304463916551895458937565864701605200148246648416063736134759633226438379470649292371702588085341767806013451814234330139006596356391514338471820073858934000169948640488976720322119947731918500599412711461021002875916110644715637444422952557259279848478327849225689330522698712767271403777911995576336948091583200955677635889795241150221092422667937086450766490878876700801151391269172630065192566682624414410820363929812925496043465575424037097186605195514471173979319641683153434105296298355592656851169790823657608807678901250235674954937533047846542631271250414403664762126929436505744111413304951332239650647590211028367083689675305441169024486701853743515739821393954086689250149838286460421609935825958215900125658569337231126086547884669389213792725941174716562319491401631656953048724856169329150944568459594613529982098732351515242623344082270328106727076247019839291019465797886822635601374874492888936665832511861939517746740548897080423113679010675507380885283594010393051668670092191226683710657598115825595233233277206111038948953185212637142872410756689465423070867121784080454849160702316028992085989349431083727868297636937006418616631861866613969671177595671165669179172919223880590838470769040826676014065488651805393613561600638653555579717092933178636504806845187609448004006519112758171670735059026295543763969609238267035767133632052843924204717055546954533435975026211094703238655425775642043925561580394314574383683560464341481858323575169111184949505279754624856252108014057613370916096124907558294996509873147943493406935988756471708319553052077951451562967238687444117143296980991971694995911309082895001048287314435044857881216602947466334095141194470138268469157301132886889862293378104840652054705401061121877234366771807507347161005092440438247338157359024332413261721615641913201216803456755242812975524044413631360559307265349434957438712062375946409700035628543310840180060028249405172834364714353875538010904770562658900889646030504058971024955040657208696704205863546988977096324835720165888740988779047660639073336835330233540545163423499172697611023955818809941795436265558157967139311346900379892177920485845989455655656382994039040367453543808014706660612842813654744661326565546395526139931473437028637589698936343493995963607916678304782410598051635255954535807991064046859219669381189820859753340744278989646452629935262391358924141410291035503072103043076619337464679854509102612087995738723933539846991422908541746046678842183013027337616015498765218416194135310130835123318157612638763265479313430139447903205020038557849785337540401003793573852432606182423802862196060182403454819834793473270960529944036358692398191453344865825336693268721157941109773094257788282904528227550669913465869693098796719511640889168955922550988302775268700564564888332815094545499299153462824107319269058460237904071910674633455093020076866063095017786672798311789131769574909698930552095144055828590518948878261227765466676272845461835720790901185899268915044284152471331344859359995731169809443652242789653634255991459890483733260731450260363540676469448502287524845733490626089889147478340416282030584035790383116782313899308017969510313041204152908391843866196511343115142420381228337959743538410415171767756101041153556559710900100973150516925619629168935160914343117163234853478917551299490478870587139304943906439438729531040879954599194894235073917909954963890742286584429819068459721751031828155398179176538639803501140764536226738628741325843682476061732979448470217823105063357803058489767178459216716952038737183687502346985774756262821263320261869936396398574139630016281430272860832777018368516251760553450509260930060966913132000074655294983926443153079255887957403129801687249188515013180257574572058033843138971119333687321453201559268722851644709191691700259154941465480418184394543860566662038956919645568058731111213731533622623096963811212110877845976214603017066978327307206953439120494970844519898874936252444334128754483573441323660113015607296715817488511436221045445073367944254360996778045588490319358788017474076173909951185141515216005426916506124665788031308894966449351723317111045681955274154131880027505083275081923966466118821135364123786338843667871288090019250498062791759160861404572928598219458712558210972010045292634521048213670712196516227348146933847383214552112331253768601854960730821214302790676048281479845199399458191587803746058869262103245747083444506347811244850442262788992195230755653354380383665734272159667712892758031014776354624641088258559629961485994135258958104023072850799311208426845455395154312617671121376994463627669888556323709176391004072572258157158597336654008602104526342984528724279626282340303636860238927007176340072560926335340030232327873261412205965022871970593058058426460571397271140415133896309809961218428323260921509204113382329310820828237186906597335240985826292574073234781965611495139619633730089405867332455457493080120578168384683195005546254281646165462391567058076424388208228714360834194304131833470355630261160510883559708054369874853568264817263724593215955070140699275512288285380371713815805712906750100984397817708175468633862825579359253380764205380980150946287835118089179731161572421035717881406849306525926802498567787128855929343689610696860540964673129516592735393924488288243394985074978681727245098816510804759155834377325681122336403360658827108541461981555585626379708287943219398973075413629110625629062795312009303636516115674917284851345421253441080607807179972960348115363426416630999292218666354699115968228515856350979150632903474433841655460593460160234660452962317150371781484663608584802214258633667290139944417093150842990230435409671453222468917556062895405248712802629549848678435364320386151739700173585749808756917462918298835642966612886428397113880197173712695335061820902053006596003485654097512923578633646517652472787888669894889288703361603518624747463171700576581997190754822304468919506741952636789749934672006959108073829606556066099779795623545083934825915044281047809406300008276771023292582120105471390041278772653400580917219603016695808627276361819973387033069986182789351338896680354463269890793275003507862521093980419767789584947751071454016065849161501156070798831870918770810313703933093917279456902373289575253811756852492683033694798488747682202206280642766661145517667885524249128182229503212788084386943923954970614835693421599354228991569844029845973878251625006057810077937578329325895134756269070188620473765949662075808442914265376577631693889393885932097129501933608369221239857173548761881438541836328460793349348157142708642634898473424036959663688822888249743232396637155200083698849888770649083757277010380272982268631139511704465899899658818026421894393800245363302654148304515547446267586561493717607340753234087283969009537661883624482291433409973140304189775478347905359583495251686708012976740352162250264357520279900252696793811625649523499234463819499191628332376373906613109884107331897116144500436339021022216953540345300593913195444713080921079802138628962322414642334279955211598497069142371715290723021563697540344385923613485264214497966647716867683305765974470824195920966787385977546688277349982390332438456823250424654791526752319646887511581460388114440745326971883369832262680247167179315055686432581858633030022907773465124416157185117332057173910010605207767350288239825675894822036265656792438903586306787747895194254388272509605460214992752614501416524964273298931513043897587024809908383103464545066054236071599690992900011687962062771505452559911399127907578093004276197813427921298018971406424017822865938992940740828620498973687358739186991625356496788910501842931997345293046627971532581381571753089103967728017724407745195332063355645076105658649778372495986728511916533410968508360092014504359030511521393363338081133758930589195770030162599682301043422101602352631083166325630034966248951159282363268330311171621963767088978346446115110303814228736344297907998378422409461046035208916685237901145812772466504288632359827020469855122591262682881405663095154528321961706913168172592151300941586662326257689024918665606933374051962710073414139184576423194312944359644879053088821429765264338350414365056776726547169550372364271979797551581904242179960690670268477797373503022579137824133444991127334478608006538719574971063691381049788602438655466470867067839509005067417497819482436384751457544473367597676363346864744098563440159800352648272609837612943881575057957182544231654761171425098868074867982352493050090061209352793233234165744646578255904809946854991733529137337484501651861265105783449333802146616611114569039410685776579546112411703295065391179264455386642542528974323574060714189018418263760458081513320955206392462142527106110116561597924044192369718417089339994252191227629636234462938681511490760198159316352899406950567939961601529426410622866535908381543351075572869066953237849282680613245137868296569324905872394331912360545281798848462715898202152231283779119072548969950140195148582700931538571470100557642329744652525324959561750656949764486700964320302248707298491516007878523018535340838627614847626531788652235406368672628787168182836374660235696665069602138604001617414194890551650725346550999378138762108588043434930498152369572177910819126685988650164573014929492214453882000002002066453818307389495692352724001388407012077880318020344863872254044982340634269580991770637148360635822337178967426819441946194978536270131086415959763669344525891080261058483494258847375211246881804058335736552926953396356293448099850359379538001273758149452262471750153142610093307593607378156729810360051884767509547530612203426417824543845926334058857762279224807452449808226136620221870615015519648930594484372507349151878667721254647425979411266297846490004127865721063574456116191807763081829418077168109923797491818918307052215873050013106638543111829028796301852392542688776159074831680038038120422652098346206685170492765339453538565371624288558579744935936129177598466027910276438640114364691979725904560056151906762180273021674419684573920999878465776937369824338400608810781263021931093230074355679877267799298328050988112183301333341227484034960436467387675451721335178904818268540598907247203920402541419506067015289449036126511057190913028008707964949930309811624334749330912254997101275066947025241191042171861285745064746108215454143464976552183052244535603729751417100956747393740143425631157685716091291412910483890211770631846023656047505140412503007375842892532490844558043681313544148094291321795258221022002715186753366323658910912297201725396479483050282704487368547495999648263783860300050478066046100447014739951390539079749314064465705327939146607663091166331445196753149291037641890989309878364980064967848777624987807085313631953127171589668223915304142054096442354697051791878026612426892161613409890951908494069489278225836275795021821569776387993113053442798675204515659760805809708558984009289639350986908584487068442926299089854949940125455240954656764447834151611942343012508945793386880368917100173787896580909849249541523464198328272921861435263786971550052214526796694131910847722563655478358893780223729836557149688988548524679617159132854510253737512808185005317911926473847889216564731790892328404486151633649192911132295168256662111220505710088851262351604552719110894043452983491902439447447770411829157951830690141184602458272455518895437041192182878270441513373480982634481685612723320078452002231562239597341471946142052629190124667237851317478354261277522558939930802900383723064680025493946529995035193615770115061218716520678060534203595154448352219693989113945698648672706659291379947471990374616058594497243301869185345219159559888449090233157666302621551663477972519555649032668869978813355210362115525358193117048804339598302567920475997535996466615803820548049543692168932984168501296695919733575990128002929738680569698192726098259399259466042770879918659326139519089022976223116651105588348259316041958509563225557803444656496312785938386507878660118264995464200113853241831698915592372974808059326789119580530448036676334228925986712269507201945565032553193911835958218761386064972042184091283996747317730996454033603186934210485046009619734411599056258224620395988977650090444456798467331995438696949799299961338190265633170049194840509649209771859483510143718370887438883620574034327682887263277153403125890307229227293512567510026737420623196638545950138298367486417942673562759879890801556177996428866261864922488893528432616252642748569135315778354182463127686568054922771317135744209918357672066964817981886989938539909314146794452010300538824313265394480290481712786178200441533468388856583435251651000865853572683410605736402296590228409958134713491329333830307412995144382151061296185007289027027668716232750820862852633830264969115735749061690317305875365146827775179955323984442062191542303211666413488897864043094649085034986216004521002616698400342301079774846541692820925036704026812482285843302053360776392806614122001500835540479737042249426733268293232850549657448709320314301076323405447372821739248492103177006967652905431862833399730407456370520374553334722359045243859547922401484609071773695523868003580775212704191133942396783178825684931741868704513802692762373970714832522559150791730797601135006042268671865118059217957095963462101002036536954343565385407814984542227136737246273439005995603912424446839747811008081285977709693439981473823967919725809582604917429155558065658449921461046867308129903931817977639338016658849530744727572249241783336707804494478611002013706210259100994127145181450941547584415275187025958009058432885390782340732981251801164702939156353510591891377149357095629343040726860929507439930299793425617883577152704755657844564048622682884005582502331995005860115780836550528424613832769234873677816592286766217629023378394207945651468226516370249570012721975136512118744598862322202306476806927026594527940572417437538308746343665260694196523819356930454864688490241255082323468322176917064493215336712914306444872461906782750338430228382487183953079579065287825307308879852302246122793868147544059852365434312066000611864589011137265996506225069813841298085621574141441584617936832827910877320729997627904309026534164697259858555937888440867848661149483479868510852105626657363340316494920117225514700273797473610627879493640736256912615016175832395473721694954986408346562851417008852286494735942537902131183932693220414688499425093857724470515619548256551930346154275319307057794377205127272732636359758525209197393449140525058558155466770101301042950439725596396957978910548340429462777921235443040332923556894497814085988116196206534606510084458986212719666205239018311304551328197384158237757012685984323680989119688105616016587399668229613984823818203807859445018952389932049407245686567375978454502630191113117825046929939725143420423976393671751014400374281725999485450742682956681552446599126444751514818822068906005292157185360957567408439294278166740197684900419975507385468803953200114676344596904118272012014655627839017882918730113761288637289174221649248086101024964692623065905394899424136684364634447565610396378945622261452486083841387342838119625137017043660331590876273568628879556349446491308351078844199986545988517797962354685323966838404345888125861348707085112861897674398197109003663224098874104397906989266348574904279978361579458513164617864200188565047585477336895770601605137273574221605413781414400829488904809852415920356178333329582450692291310954811291189513304605987945272020639655962364685516427024642818131508599763250411440440300242853968918755459354392902564073899492656999363792169358725233232476993648633385781568337288067624530458180432797056927407926485715347877237173006647549484602239252945181498627981522526513501629167276932629011034854561225899968345831946939931055300222261931409679394109595439141631605126636671425970929279747935486598398732624594161385141559940602909026549083579115416837943027640403495637477411204032929411355216126509057898053360259917684354885337250533258296540355461934478380049562057692846264043506109633846193685019357746714574858424058316988998097140194253305052090771494048702179640924579781732702750435840590806971534032691774342923793408122857496104364552020415221653938866887059429156875525755393183605401413382064812906662156082142322605060821619098417039987413823125467045690547407242788225682624312002933116783495196853168675171655102033389802123322064512423324962878844130984110406437457145595873783324264147651278594277804126184974137361155840110446573849005231184865106695970007429259027945246490872619382926980770311370814181210307554604445799431081773815571566562748128678576830299614371524920767577057236050962004564452040174519153640745119937659834824261317732326898180801768631511170679413230704590031668388780623432980751374388557392781361835451909353255257191135906805500141437071511839898700732144501968343485278795098742106112212302697212890168703245739762137440360402764170750292952337136082094910153519193470825858368209654573653183377181752873996555896890571264665227026030637901396885565905702243760034841988286453143154027450653939522845878631965518210553143299634502565224718643320779502052233131675748691965069735016030193357802603236924233809205620677316394446100513511977810708182228329798930672793331815398166197015320075504625426868387588006658453142663595722783976734766136624419532510879512111949760638180086230225134706460512750468217208672370425270227296013076250924938151583913708258401042976850377987074339628720125622613543867377342786178092071856628448319362389193120871912320758584146339209689015546051605805004502012311343611546277411297353925589866309159651354848150206829709982751229255035934998130286197405219933596926319785149113647802413631507701957784988726949186217327176380133324088223646826487836541483835547378441690161892756611218242440371840614273012584263484556067849688285807377766287633885325505185987264101279874344113608658287741391249101160893482857266236600540414891590903484908144119843223354100496671566509146853508298009418795150433081907649110407178858312761446597834826127003935851066704854599353274891666297661523244445603378193356906450007911386288567739129427371989915277274379211952391357867071162995682731517057387962378007367552275175509107552340328706144211994719260847045205192805829031837063070620850290646606464024538988046200949501012935869652522969199578358397120764477313829972836328297387097748705427400414700627137548565544813133387413932890742884212603607007290474849030617419927902536955172815559157177839577971182913513104150102273450327944024968278754547814194239355268901040226940207787178318056745686356362669366485021048751094066287778763596952545571258582577633522214375680506710581924965045838716011752146188432439585393429527474113290216096675757081265984537157129374840242171064222160193707684110400422236021388397443799160067650546265064834003467401601538239742664057320725024520264897004595014059579236467257211500698590435968123200164917130696023952382030247385781277152732835404951326436672829100250403080054252766362948378572332483223115260466182359256254725051597955672511251006643314615718933615455890940953717828673951038696416441186442661873056334293735742519723874385963608452348423131258429137202940469722055792520030514075630889831351595951780853386925836550523412088887267913863162915342893001298693255970567642143277856729423545040693371402883507555042657079616650051274408550661109322931608551295730194743159411874419145542732564560603741947457341189479756708986438003938242242030306294653444393319077212398665216387439648320881460230890156363282398240683565194207969530345462514354369496488033716152569225507364151755110721265740609673976431837242388768776223503542514027733563048783075195571510428582733063725926532616380636656620194065908925706340450224261729802341539327491907737829039291817818217733839346109205644286508327844334758445299598348339431501030257342796389239876624915220595640026629403961397275782755555872022150177479825138919641226377060023722152463415481040523039117117580310003696472666325874363861637789120093163340585373404615084067582268960583922315208979884008948263061669306728728864641279770145892049199760510051257015274229859332778869258267059300862419742200865416773035937298504786947770661715888940247867156002783344027008802131217402473030980793693299107182779220876583836329165208673848575112283707313366549882396954528019807939934794279561490821294264118496707129308767054342342726202331829274080724302859185659722768958841105650286735685500056694978295127587016431082291985758734682127052018426371758071265260422501383745024839134993912301470095423225646475338780458124419372297639686008617059522656439621166423513678221486531170111773191465586047482699627716854770926232313479581063178594990843145206001007003168065977689581364548703986036302957930444132047174615119338459746203481355847040406346319977377339386277372823799147625774686740698133125829519763972185328046580941196249241405143186780419114807004811241911425609932461320157169678170717119339265441582646679857820234503463775922838392899299977125303654244000533481217900681315213757282653178471914895050705999959334403320506398619251723261103560434496297062472103039595527830894710088899098590768601380193247795476806655411620424967517440731265333978677255771341389352562688400732914991907591652700606906868612012441375290477901232111996141184771282713618371277418797254443139249928447307939242612440259302669852439580901955262611096668603552846975748922034889166102099718783787243396662364887303484402540602146356370943994776284585025223490017776750893745056355223883140514002502548179072844604919313099646977962115873583423492573388068194762599731552608443156466175703622702197783970231626726639446394924543265348127377059370378745344225524915859324249362344524434586542046415441510020979338230309416266235380053416832580515484198710044430430591851356896077592858825589820788885175093378375980279503875036826879580771704256464436365079231288320701722356261430230983049109645252846693395211583166807904168249489775211943434316917601923194635067325309069897650204316516657160712522229258932945820233431222052704402460300660520038894922956085559773988255592771262275302300611886083217939412166186692181427559340964067024795110845675198033429122507489509159872311035151888326065047130490232785292122433333748090794639960352414270974596703308722474249009078661105462256669959975393445103430811933685885312096102561114492176535135178730210764402132849790643290703827703664456499069405496583542471386045671072241604304092142495765028899003483607080389853753367062193133417275092952313715230440156612186079531370022179528919465078139993464039564447275885296776146609686795250244516004085692184978079231260330272270449495324777768279313137221157901674740602775043459276212475599488257872286604911935119943180047343097585387309379014705766606191085473155549183132319376819824689013345912876427074061289104003126103362223254181389988800933770067915146949754271316575220831766292233921432510020029253584191397862418723909069289149276617156050504693614481329922059487311177289012136339550801308926234380070090268842116868311566648295986540011470752267956126495536078438641806105173775032638849787934654920015232574325755703007041340254208501459528680690802646439666568309869812008729993748725160330926344901328367827176731029326185401785057303537401039783126772383629867226909224623933787900535317334004081770885793669644943237968806350604813986007208889041041077153807506697545164980734619473567803115370081763544087785143730486436245445872453638631321263328863587973140703334702463906489810923331173397752205679116641003858954953410815139508697134350596823098933558327376014076248871973718220020835256832393641049114311572029210266853442286444123190723616190323060122389441419343335301635418947377513095758818396746015371084834391945571375259998772536722468162003515373728882674258436042278451929183995420995097644164883661998183391757879540003929757140589145364173010764461446870419579062934670859868168901589444850198702110257305953459617735885477514859879057290917818794828746555434457981682187339956621628039482879309493565012077864540546134951598812897094733966877074243583476116128192373917868616961976710834762854789342408546298359016303297616319130727428256359196621024189199173472112703488897526795103333594173273384741201359126233654329254984107905352535884212999781003652909284092880666778413219437723518088161925226105230149724119817059549632147770768171457759063919040005367182385921128566563858343592539936712533397426140874165989169130957419475546068659717420680374810068329000784364865898435011366757760022372137640187719779234316549279273244905818557065849714659856535636009585417935078573354328165049632439590461744929464439784004481977501364315252629941058594119566453784843405277263635507200629870539452956127452753094471221834012709824900788536311614343307840036623971575515608652423370054608785491830791379798271093344143798814152817426749258996856993063408741354173558570801796402285980218104551405402842589728490522120079351468791952981364521558955190554252973155198636298039712111172400178392129236880166875931858509499277634691251884604114409215038666702085469683415208797466731885297853627481280567100581806783218707027173901811120300057087569313673398148437443273370835237822741322067468689002165208504117859513288353804967756976909106670884126500181734582634391418738590851491802617097562316130089177426105997004298858738158973540607755773121202510939663351631525863169069259689019778096242640978891541332583309614664210465992766979301774751955359940386670309878763593704208625157949603352485388716055272202272494992016741362945305433589762404757383933480067720526754331750034273086263045141399440304240993315748695241733773589454154075241259516304347070749059270718851696333637044430111709649760044808636876886435402327125375950177393217964232420057364365063943450580068344942602015216411479964630653357547093636560622251478278579032607917333063449659191570517010623163025747319481795101770014056161860733493431279449163985273304036732669233393677462252041466448027493532376299507819548816279803415516715238417334306144698711460991198456831891208741928985135935459813089934686298450321765773999143092407047929846552842505615814980692825018678866207019593412985029868881260013766191621721385841176120351020429774768340278439930472174834527063875817230173099433829957436204186227047153118223088229666079171386577745223174326386438817758084533990042320400624789342737709158553435068559323205626294441104026003691943441458088827486385048111558664945608840212863019954714288340807809168191180671014453371865992956675255396452733135159789398439070356307232132297260061016925684936665171993476851692135724351831123506486765376639461710664501870242625152137728030054522945783913185603703643538179296012396818112845935369978027750166645764729064539992893530790470451622518291328680407121992200414954396283153872154373338768670952678440525286348557954262861289739918253626152566938258837660171592112792295828471121849593615739113939123703693454116826915947221965659570447250221355865685898258916388977258653976187301067149182394561968271624132324597745115430267241068167953999168079085865070667675190032545894469690596603014412033333438939447125023213182783526086735868830537767974138809230312262014933099264983182201939950780905155117017464383204433556217306818169812587152615909147636728254995780350110304748939398601810923870195972865436793740155322514885915899656096934116495865197710252962825550325237131942589489421750260886092217801246016522336189497135626580324600060767422609611031633702000537002915396255992726444073476991518407028753721779308020359144371940874890652032805205555317763222001454536987135364814406688742878721659965327789693369090724360478582697198758626889957123270829334623230728373848716281398687074270398790066761834927674280282988329106518336583270725502816632077738660285395702397199259396949773374239849394239862454559328446147730562668964399543137638052422087878872486257905018674007620629511887088346022926826520559224661110200414741340990184465486910548903640673369493388510624723934041385458450056809961605509657780274728769564289946667533139972108212948376948056172187769230468569161711115618586073185636428797223933658409069246706980261156876634457713666933179176240104159570073987929175065262442139168138248960850106447281750706884207055914418321579736968847834608621574380972564818965261907132016479657203579577838685450610472068680671161377935370781104761018662727127453156791654651534782299962352653936396872697862402666628336796270194779003173369817207058743819986349815086504451695276965082558713729141518318599790369007608415667023696055194945824208592549841009035631780775391388997907020668380105796706742714912403322312883656404174330372621629324378263382490113250524538364737874548359048802878197220930989425429691297294584846943526201044825902282542191833056473305618332835030365875722305853276217513748456758578078620243357063543257364840049170399643036715019686336581746351887659917767353476219025223686367562483553727776736254581157700741971025493029247461603188748972269032314163399770800531258321758074785573914275224618748165106224190029096716756307324761641666482586416172207589618701346633309725896218858624084624852228882566468117358452729774858880023627812774190498571010539592036176370307615340918420537223565331570760464366655600540150113618190432732703684576889747927470990853352397321796294211891566123552548537552720464751550774345241438216070781936716755573500359997157001429682531095278965796083216707009129168337302395141015743811142623589577088715485120890783905709912818127107730399770209481345925821625858697477001201101117632674513606211225135721529096056551528551815719042486700919792132988417344711968567761491951813064346508020063830470515385514783685741910359472100838429149576319822086541596174517605998301381110017666666290519024510664123174428258194803390222404516724637867188902254763824368529503630682521383993573437250852488932624752833599503722520313626529362472717241870720609237635546347739821366750670457025211760811469460510778848111012741593875337923421368702393016982737833657158418411701594813357530261955214761773842974812016689767559570851578485941369358144288176005231962078204174639826478105564301876758533662207317967347360507406304895444986115889369094329492088072034701004361195010672199200860184931084283387980975763366764841646162121255151341167050261137014217089475858586498223865404903089079582023368901867905717701334866053112051456089092726388528232146404419740685397208079211979181883727920703925394022570394450990645336663338411122865061243637493652372314186171074966125687684453420092801834451193415713105715450668427166236042886525339098088705771922295519101051885194280096136988048005516796687948633600913783498171444912013837817239657065289815258853505941420496370740831296413823402636546112784909426100727558889229090363127645898707811696587486880793558049847791537542106264026563216589253990529911788459872891193096008035628481375763474598727505334300802349873002354707620289359194621494578689713220393257238621280038056504082292308323587112912929761319885227450853557257487077504971785756959333006558388928269911484521190727917907557243341183035484403972187070523722725840937589128410454933734622374023550626048864926815736431419721301453512749661379738760060829585723518149183700330763943405718414602537788842207869788344145490708030960070059868767481616053281861405664374682860646396109667783522897105011049557444729709345553620567290645770097841538798197696283319241096703695757394062990777466813942018873388938032962341708950248698581436992177282861681151142547418487373025798457940955207916040050913246920872578910208967201772568821254536429758963244879971998049748973775803521686934488901855404318051453122111016578070077446528878890611506037889570151495585791238586104460065302076961728183592044170656821140436900022722202073093208162107003766905626754721171547113680179272112182664673958414509625624279092176703451494155172589387989363810306891887156130981330542190279960950860682576946302919381795387824621135285925098580292559632761444619832154476008612954244533558450838839105712119677416137429081273159714949283195963530510191893398483075448427799274208032539476180689728707127964355887239696345654091807760921015185447279861034445547130497648762675496172657201586809002374613456400731504822233539439424749802365599590923119251265120269687318096631745055645011220139655680585540630840733325672146300017472191408667387935398576785264601221398896606800746303699587069539762168463343281206650957573617227557564395695521097291947605444137823633190361613665463778575851240675032814562466340244060421950572980969860056019558411729256081792189461004787552677431259972457982439802263328246272851011160397394561499025455271202728931629685794224582763370111762180140529646140884191764944220470833469303560408454315683636491786093703018219320025552302779470097910709640569547744068495716952415823472606343691362176252931568917217592860968591752839202329195052189918685268326413884337265920700316128093159695735664809611353484710418282255973529594883742554154265179803609066019267837767785547115655477023859472924977022073996575351336159103157648793107976458194345322072157189394457168824791340100371442832431032952457123130970732662031469973207256321287736221930203106531126165654307350612661529546326902126007264473154110110727084386986879756823373565666921171142504723174054019756111946504520821849486683252241503457679912972730279137803347075599222639454702239620422349128246750125853519189820230323692513334479116606054016800017513357301369317291109345446216499899954176879700696319777709062946981875680784053609175278277228176852194952841126749279847441113785676126048597602523103727986469338060259405883341481089204699787155974646012887978041699003560169529813276037146284913146692683626160768034307667617223080391676640883079169607377381516832004688086060717997623698024585356054219480780926743281842380893495625634356111393974053443602060723191107173077740272181599045931780963000380200233801273180272071556353841407550173937451331592847604039141490794890769782745656523125459057422100742009131984721047245936813310276839053326012059525981744162693252935707744529964767372997993531753349815531007423323960981938512193364566303989358681441649107270727541716276377171277442698094244479065318500676397175588596157732190099494338449381224650132048907026959055096844034858596818098665859950578991553050893514729727924052747191425610943708746676916831755813183877843466763043527294573196263981178341636640978350346777706104478218629770696023846906453815113237371425899451540044358222766591393611732326458825259462306935631759754150972837959244552490007325214808384466413798471443740796315131526628748515290856346449957563300935182592426854651461429672481195846313550273793460883045786725710284878035982446445975232035207244820284873300130325772030118183362402247137157322068625201526212392255853585626787988923748840322548881147570439172277919167496665831798106448535171588377531818142257497984576573115800662897841306795820234299053378376434952896319646378088306822184685198556634044510450900903292197459315493635286481784453282909275567016189071389301805971561647361859983010998359628244531852415591358075200272215152845476530532999206864164273400461403651191777783898030605433525882913576704106560749535220447228132196649818044922288401342720629318190476321885983540591219245160681988782733814491864280959887620450131699240739971568073410363837918214402210929030026120527477362220738968496627992556200019861655853316246650360990686104380666842301070468952712669329129536519313634792249247383804808989885745870712063151525727056517200446095610025214306677845617591521258781320243592265606681083738294388139041121299067770872405960831191761563289128017717961655459672033535101809275767683135985208035402844633966392178480455083455244172241252993711760941039896860549421519296847061844248742885423643838883368732511375888777708030520611745104047122851485597532394984668706125080389243051055394283501075312850493497001297180100223990808074047831146689163473032480522741187198345093307699358180830444730654669647781501592114953715066216901171248747840489468938709859348695635614910918860076591029223183737202050380194339400961061635043349811198621766705914204376611150688110097933338475374601183348301547007431175700141608547926472933238882238068188880498006517919075166196795764426676070311062229413794340948057228936060175038851247414412967060863004202022524277962602126060837859311716060633682682840861197530933007668228355197120684254044831099406211169328536957839079268833116521012012904150138816635679096304217617018894009628220061814728991058851812185525359067118918738522727808582871130724703188438329606553987540818192084054730475687478785726852444274665778450673645143468610260258123509633135004946050536622423159002437555660896847523662073229062903007233710243560407442411215039378320733602742270092081705483455505720156595679329726334415887433482504555918335383429878776804551561241876430970317244471473530661935431927097194031057957904761548228241898096628182649888771351404653637927052922573570221724869852399674837008517684716169656010840526681950758265152747866041331534683890045971640661535585097263937648225143222581658517468676321156149802303095183819365542596422647957762337944123318913004047144268329743322397827321113898646720672341319708158430461457057960819588116545895874799376315511731819094014576546393497772273852457724299346664871714198310327196711433610651739900767565864003439063219394699545329656144330574052339029901461210637330942034743328477807755873782193136169500510481795290439256593998711675916018822618551064489855313629516430280449125516496737027868149843924172523070428601818135953348607315822179560318504365322111763064113464017595412281150377244758315354309391076818385690853002432055782245632964852839700573203305291423110167563370848638475894279004176103905998078893726989808218168196233561541691131556711726468588913808540305647347046420347001065522378979715912872943078855868626886454981127236357473840095582247621618939438521580339497868408837583112025567622162866999539858654894919596539385935460448935793190148299803263098550870602331673906103106163888638093703862500107225821224000572663754344657645869609620776661543991628017389280650309966711085895540664603732293870045791674019585990732349292461618977845760788413795997134713137310020773972004632100652792237605704138771614778388639076792795621035766848336136713963087902690429695266881815161508510497924340582445436352697009909135913714520198429046624984824449826338400980969714231406564902899528262232574972773863219992343727754761579383727803063734355937129766610076141804676999633452439334928581917920233998816041097592152939749159292762961810997986838777419024318050513453569133821011966904450505024105939476674137711148030597328990397934983360561657693859928561953694705050687886024659756190474488322725153744137415681148933237890931995226305841972585242437371299304329202424557703151326374170542192681222284997991086664948219290797284678635186026874310089041782270680217153151690539079140990206861515680255929653097403462976717098980052122961630272110097213499651911679703691800808651385304072792444758324062866489030497403893618185725362950522009525704519915630362506826745098266080352141026527863919998200385961420526805008773647963808455435118897142369006983222451313331137496312553038272052934916243276846308422986819135973916649609239503386185773956463753254370137694504809149365108776581644302594030831948190814065644640138105919723814984446451392537670279090314377743881741488717166949939295310061485023567878674372263961112282221156065981412116715203806972111949567616498181692360500990873326863272467741132281510740931341717917988916655851985528801742707800538709224269252505605697465671357401860333252451787321757688211491700041794113370903098169599500024763613602521514504849444410079434404696874529066681845462124460690603501319649175575038026545912248814764437432936826828232587217565119623293428323193750239153237027844007114394988155531642088643246546572842036573167971027310606945815105182852054043169939236787899662106377838956531041655580382772722837960347511962067899463427097003793792746051296779371965819272330885453592977447335513663068930215362306620888388102203644120631400058042229734996542060807638754547869029518843338672052281958115694433457244604600808843080062826885288553401560634517038673240182894788301109821592232207040922286301028522908534416416579415919591087666237992591185326515404254897593862591076625786177021324769866520427920029212131169826104237130573764583535506797483972282750862185139305197035594436195882229958435033299469015391144006596273893583011534478853570725780999465593225606802933601107690322525961278711714984691916946087674715818576298445684967100658066189299417664707218706788094715768266070439529915196514803312262047481378217943870754010335327546437539934556989468739760232584600593128728934017127585777881149356850645058336604079194635869995145089358431339497043222027647288166328520482091362657298898027167813032358038062724016028925261546140986279193982348284137974136516058448481074688974790294220405271383969577131647908442782535403359779823995925720922572396152061614740030352801864615460835494993482690272174600579972388547267209639219776745248615330366931949297460238006215506623897363030436308682489322049252911357288569666370490167647434747657405037907326901052498042317755732266764413445082462936788890935484559655569343379902321591648323534882825970336955768090091733991681032590662290792141207354981541274747426678409611602501440453571008160844199101330134055820054063288050701821476901398493601626965115093126897897839681384356544944345408124585693639772393266450809756811660766706678749965833971218419350853071422174107407485313909352953722438282052113927506611295490255475359175348570090677677363611022413395141967568693245475604979626778321775186541170373003202197765969581396250841959514054797239341356559124285810410586314680512689505015780160408398853856867171564441338430825149522052261190293077006613726570171188483380140522912557825444928368960895757348800069919362541920737813527806972053209525633917117577507428458883782735692319991708175106308535997399068000680417779462856082882285863185340417138719171707972155276121644030937503512864865244639912016192388707045833376948993579629603597870117085479461275549683515652352547847722404123282668464874022620532684149132245575398512201169780935396422447332910635948952193439626848673661388563868400674417643214575613325209052009176133776315737212961700862863056266629337879871266549223219057605019313573104650632511764786117773163421646242635677019940203790731385867048287557220704867188799912001988045344306705231923706602337574526705826137909598333966017784971810700785841002882841879686631624119564078435846844307580342693835278416768227627689999748347432167575963964012966218218387836309257656610522030253064137562511095132421690440949873057630288204293357687329595532798384171059593432946299819227569564479171664326551669948442521452310926702874716429228086876529204162299287102257740359072771689088729293994091440019739126647463699416429384125540401767719251704809667452277361460485141473464452573091660664314865918035854846816980494045572285806256908635306286442635702281857576013828945236751419931592072599099830040821112741577704814028608425953766397413635507090321564572415806983406611545188516906952007831934106018394025947504083867632644237591777225546054233507535780178506991612989088525746006368901612453525127109126341385366037595581666576501343290052820039820820897504909787496347443858923556136455717929930268007218345452347347970459402076569890236845297157547650583756600151014049145024942531883378443411271118847524609474978562063467366441415171950076169729447972484377270428159850824912060542052508235377677765698775391070970562255556638797753354751166189842694241754561495370218236302914582242026871382341914653020105994056548704524235713435822792381058613431385473344577683629316760911894596472291610732477042252140533094251283242455344809115977334986563756585425236487165487435342596218678249152907511957739182923270566617498395473398310421114141989339112573646395848247841612053804469099034020153391307292853891914201969776367353817685656909673418105508725318012044403227382556193302223977369952139289637566799502004803512105666866289311579381065182869352786269045845839179818274270632661995035038431157598043351181683574981354244702451947367152269700519057939234349738248383596191331059445002489412209784867526823289478559458714119661345312466846714730073326820759228546713384078498207114512695470964125582559913623047616454411404546814490099903565318485141874344426814554644828337983923793252301742784653802651746806937510214548278907612094658763861390596815884209701873580832902102599665247629897665299907151318165194609268214509885607081843016909210132895233139698371423870708875778490601493069066062027868620644815372948035415663652937206114212850798145113705235434062756502895243714536002961650854931667249096887912802203789110563559648524095026847766717185401038896235624272169311827232673128228878672876907997447282823963203461314782109845470838685494837248707929180296549969542863273730011295783585211604686124786861512280140034102830038785581124729806154729259896698068992071726768738876197249397292038782877011918962648917372931183347345913019650298832557663787082061992683106905408543321964592856083337107212898871161418758237442341525819593260990696928569135422692761604795474809843860373197850826562214890082995557905317036202842170155884082239457387813718655726342847378780051395234267507512397900301949222685904259264119029385066527307194978496308358580755493362051938395006803574141925517941864214867425457012753717729162738681936689235657290236524854418972777498538885682496867781027870322792432157891075371185355388852799500914835839774075423983264913358571831336890667470514872485270939733081580475687845771307911586816033345073364266746439342784992610631707899048040190192849803257588713872382297164721944365981566919866074224760408481920114915049435894326476750159072949867852630365898694072322926763800175725887974009555333419478611057325399248521793586574139984735443023099555796618215468649441554992215849850555037697187135807437958467009071084399339319199506967909277804935645466174574167287148854850112797078661633830336000583869491800871231511639889412332519597753997616733572094903811563161491918199096537888073554604719140868469734367378850064165885245015887347883354369682928792860224234764072225387881886274861264064679353075615169353000433102241810282312429885616412375842970830200052999229850793587402311521963118762293870603695671511530834713889625491326034779935965884647614780394874401404368318688237284763941007791991022514793883822485128505525889073477950831343783451943764004146375009662308116632875173430034264233286064880800402906836864242749212529530581384758968259535145010681217796397232723828533306300362109397708051296166703614442136508909771033848881225023053510542775476550450104808210797347792701272360563493959604511811747690792248692019900639884509182007887065998365431699159941757274528717206831743918559080097092621000512832798456545404317468876520238204611640875687114898292333540025398474499811678772478253610556036742076881993519792123683153200293020116157434207284538885271277853573834916325825157861281312207224213312143819326236790785209981161351010275595449201385072475223286485236831055836860605264152164409490516501652396539844618589355892161769111162452316664906105950359984429876111729262129711463075777326656961678599994052402165733200028845908486637549127725991372194913191674588881371586766935944170848093345938392761803256425158012866240199102807414148611590680477712871015740999557566594367316331713065181153536125067956725587778992064747763311510457062401829556231808342260342480081261204896792024879991269410298566791484546641834882193128601178200294136762864120923567429987544900762312518743364697630981118323633264640300583228414442177890887334640422998883847515975579079211805814750449061902420752783429143349972330457539068614022623951164229092633837320919818216412773050100089325924421794727071267194429340612390061137691089861227457372359224700932640037611495833023081970161244343149510817534132712940644964206753272248122558640716396278910382403188715863911901641992546803151645786898220577019806024730303495095545064387550416457875584003435191761792356013528663942785859525096548274226983408275822792721150855218917677583621229373746929193914196518273188281480105644630722310939298915761488731135440522967434421546970468106606757449512382123794839781025260649277759905620863490297447772736765940216932992310125366741367378599175987708459975510153248793843739280317882556032700655178602763701915627258526263508629928672291308743386247769318137747034816954567377593272504873262616654920916624797156629545156094339192884918424885503940078254494308651706209960840837524190448790394835610663489412477848036687008691420816870542019300235039629915115017047359099115906643990019709477239252125069019324974907624188844191855936379989293381855421077474912049100242393309265151011403165999529822377532277707678120801274915660989605174584313136816200267580450168545058192963882016509717059519539450776420015522074636580488122913819135345787572371450970912063170397259295891750228847092076164952234833167538541911401464820285179983278527206580793532816880986462275973928575566135221649364281848418524491277716998684021011497541724643702836765719811042507761082505393027523975918885032203930484730365069149476696795552464824330432997469824432859174651961560603314715169827887580564405281110887043112465585935621777700664255594840178870949772557053043438858618205356975546607129924247457628007632474361439553457160387188999818175651021608017588507779306138432679317548450863615723977780489229215644238567181406345835318505173583699509152881228766009858878766618954676243329730686202598714212989951985093366029578006968598165807619998732410558184282486290732819634116532469717709019798363392810128802890819363231541547360911290937517074330612958036461842205140473015517482287230071768998618206758480998905287133713291772751010997605840469233647360714627112909405802995149454271939262090942728422846188199182153715707849863860410591186844554688694956769424071805969362564591538703198646439381865450580067388600401759556851436473617958389683909784755309526126984229351640251615447178326094302199565908236811205092160225367369664062457952053484458459770467267153791847629879481184038408985550084181893572632447485123858151572562649769335983903065364874539545362985100995203910248279103355599048255662197603134625313855363009428075065580858652343834961120743213648061854660578153418956964525183012220528872163045256844918756805471671288752714838268215757956954553342336369578073441548844770118447273007838632271760732810101564461277658706032036316699874160631046548670007425220697877505308789810284443922987896077010811033641712035567297329006478384517196316183771691207365240184551800292934663816818093200492203034674618720349618066932750886424560564710834516612930223756486843484081447936076405043732280363014623166468371534155600173183890303250362015278207701470835303322211448003714452117416965228166423487941151080196072290356843493108200455164984249577752986221915574811704574015691604710212124312274945107171036710916516039301115603998108788484451644239984650438385398831710766203918088321627019649894338372709483949316216200768656493654953011589085946313120146750272582984119170836008934923091898763880307033318208714459712616525809814334426824928950068685379673507366913927460274074918046841333323722302470363394103110245532970495543731916472137050154769324866333301234576430309851722183189845976464508112518956868003300377787183505359121301453272729003461627217334852189638223378703667186334943967408371070680345015579688819093927818817388974942098873757659208793959219138888198610135467090043798609422654989898793059656026155897611886043153373545728378319128722045806523884737457133084978856645512545698485700916652270227559376815891945363727842676673160930822482929073598560657245275490654327478875229878388005823704200372304249740382964878001202615895142463750024116448290475452276093095465963965186861430596410352473274951567145147216764330423859096283098677697461009068246876113032769164806287180559440426314476055312512710103789414522204613151742438720279315704855355185896713628202118861098776154705252630954682805594071336470188095457696698295786989245258969133358786698464672415328477132907361942861328927373396045853042650675112503362844884508750144061310118695675588200159584544940648336803843194057392108313316591266732061599169597276593518630362638941645085660877518491287885744192489524228716268944191958237647758202793894696705083571042394694914348835123941708261191395766585727245650661662766456702131044130724742717966052882423273202304905748866195257956710926549946228016248695041779846413304419568837249819591798512575592985894994106764027355824615308960043788812536217189138457769598320685742200191690242655530534190651216174464970560842153317686736501680072300957629838971910919097775179030901865562240859376686377920560257502178161074271822103336448142467934787957769445652284691509000580961793759632348833265249414958120132399506963415463305961225654773331381656748944671358019741602527924132142208845124478123179010976662359490015296185894219322613065432864126657519853101975231129111803001298386138010899567655327127821188758594853055261881027788627151161093415064524812989038239954358097765906776024068003255379943678580634718680904010016382783620247309099587971207988252118354554000523208842464078033366721836864990887683649929596896860669699519261869392436926360375314586478729116637581288217279200860286500088142514188871099369883865991333416556600550072259373393247509091129003792998497604300902177342741796905828282301600245001580736850307892279904810278154075592208717696977387221869634809893572486518897354485087198616577655655384628381734818954424011057271799255155873353672136499271571068183876831293427319702976587745482121629555866014224587573725096010250648184652462036126906834319004459077750149379269730707926066684628446796489311462204751969783441038884485643257505958317672391138163871803800498205810935133115816987663769735600283635781863114895867664552794341932692612665000634733971416708131253783451044297131469324782598405142261881448022011176546040391765321523331206801194659301737773330435953544753294101061601922085778639839189119811587652875577611716961320394437268126775914526251955081104669399967338226789154469425572157573257961463219091791967080281763122374918720384717585570976716135202019592271718908936261458741448061453126999108555492292802382797906548612064636246154088161563916941569291913081259267304368829766517391393206434835537318498412663718553384268900279448870224376066568187902816421589774344554274839112280148930314236589199043155222866601595059571660926196720233814469503815366125934316783903567641197237635391902475200690031251552392759931792527925351474897541072820119069486725138519366209058050806557621172966996751740232789107879804705331625795896580375027622063223969247323459617335137509946642905475985487009938455741838371467835464353537430939909158201140050885908915059642698123326409204191971292269160325041712514135533314329100983423249662017581800926808164462683592170866268383991030569301080668950634339099729487913922181801658980890284768294059717856177991411574390678629343339966767090200404038744084100211064765412435560069569562297028638744680723473149357472318575296116718837611372249407285382468113354512977085943440368097353239659829940748255227726307899810319555831273645686453929748045801893993985910665062158406143557857093879131866112097164757679526546588376821217669941608844471571130345306255866557605833301635010130031053303777157307024131496670427080779605668082838742862035969921086843671266611736476046576478258942222536994329838682288990831973812160612027277829984520737477388527737566531986778126356083066903239491686032947720272545182380835083393137137650481516487488777101115589104449875979034772583483128911642921815013334655187119314842056779171482662239663014161593211846352774883872197208433638957789838848345097698481550161529374153228447005247649251711342044338175469698987413341111079036106027205044899905288178506623421369945352939908691237801261794262595853223930581258030187984758923885582899427105704239092190420002403592464532757336099486013765082570008251852609376266046205010277454817080324030215807420942684695544420252956155784802072059565965509117742210483744961662454556223059283960071258852479503271240659612537726390230675737580293946682419531552001306800388944670718849447084219424163437291523060187763758773278656795897233257053513587583317043119216281567923372325343132440520522451164166207466773492132820892205135836769747977100567546888803880498374707819387235775195304699217335581194117516481187261512025375257963876302661252906621895041012533833728216530020798408174161693913804427958644631183966672540265892847483790389616825396654700020578930663478798866339893605989323946657787311986096279577144927227760973023819943661761114045225655030206643975842007811052009616003708874604692504088055793997485851547792762372702815634549923530810603387744443041239800521048078570567710606540092039975923817284901463259842213623256423975405914559234305150219910858985106798961850198922718888548120505348010519865033005384770277122677425913809572796583804595256628376548713987042902248061276300144972509123430869264354657538934993624323960670160062115451814075636727994637031996213545628704394021822713866203300634267848846342965667366477659254224905481018002655302624558878711399935947636963302128795073110796731629897808579921352383597234526223424961150783285862814640874593506528324077473139792765941897975748267437993896887743465627049501885014733052742007952297648632431967872672275786083631645907636575008434706660457707914478098410408816931602528562270509697941200066275100208059843588553137677469616962801428785108568596869046101813843443888126992832075134259292137226670831045590923481503886289873763387097935399349222275867008436106402381594632106442396949179540971342229945604446245539389955153146346387166372572022771476281322863423799248978723414519446624372371629169946353637885171739968207041567104279445738350182816880925064706943153026385930359592517364491206141699250129972034976083368977294951859781903862512804064682716352080189746501430475619400386961629481433257676076143108084522441061072105752427752780519206047108522470197077295817232092357070043197377573875460301277347402759889558431428601542521768910239196827347170748989200186245355730726774885970741694046139821795094518962296149093256389501490252607798249255210628596751695296301946390775444579105403532740096722699514973461763876797957556761092708800497880932163734183509018894012266678465267499985369037018390620205326509746433049744728634842831493709916474246412225662708542747982455973344248543568716978080174288197683123902165471462205675032249360877856867251114818648641051476748393659499934086136666225576186188735044507554662364414510091854587463655658625582948702323931976889080390886809167059495787334872190284957853348758587025315595675588421111672745457550397077777660195384654199039903569759803477053095850858747102881039001726903448775427589354777408788308764856785481339951451800532884589983546875142296006116195546390717477053453687845936567308084834704311014762181366111984385352275612947164051080158617819118610298846463194134013148227415862015717985493067990423567582980995510940198200184425940038955794364969108300918153836585295450544603696920621903770256611384643943921266271825733735571142278018228189621465658291434375653911929040508241775199987851950474022921112243802822843675704967801229536408199904511143737810546592031882348303328058522756807872478178034065496203232834178674377073185927297384369051886158316507621845181052458756682774500164510404832926318955742237482391569371193595965445730910348658282132235194023914069982986016311116101556172175298332075086662645511371671041981424194870056785784497396288037085952017998308648709989456050234306843093190607315717212078765171432109427760400796577790664915461318271382881291527857182794961117573153568853963263538149487070145340292996152993304417726773016777504178180435321736551793582432106587544451374870442545112754939174890681763104742409038644937980638134316962690656245449516073961136470676188691314813059174318908850269704011457205580863583523993704846080151151405738512293650525193817261395703456175349885081444943362552309875335114192933641305934179293794334206536456694377178284339424162515945326456227002985104527853202149226351134628996308290207069163089345380989323995597889425402329753773503338540410515023057139567372124529329181943868655511666202118482316000594395583316938422181509991674521100306020813440988671244297425771687009202823712075189736360458369832084149241912369525817610178026107651194468548320747219125326068087820013661422439574026942683018229289489064521783030106267020730299731139506484918140312150547840223466609289627089549909119885882478223883490422209609859995712442343750122061876078170561536009925723027437151809581141508964313673811118564962290720331728496170170757968554946063826979609246952158855353357376284736249625958519250891275538938593252774639725774416111556795959135936768123832841077299424728828931882652882935326437705769123362140960012597416413207285272417315317095135584922670895108630071142466266631214702555082763439134930867755643486562961835334504968923690883585146529583420397162961015363674429454174822584346640299712533792284166595118624257655603428269105347833503696867842277573744657805191023056028979768064903702726603447969618890713214848458094505113432001500560464831064670199584253612910607570337133290908623319705348547490411550220861037737534801380080465698734236894501412301262745023995552867395943337724851446401576781265199901459449663492356360741256201987845657787713998045116515735235680688184417823966768569688312351730206320059347287565990023792411656933730082770909628237305258296410230729654807688506131593757902622249088148052269555527754387115924117574512781794876038079787859662011810173789593206156437202722181697825839734850719975947911403825642282903717700456289786302024159901844443913161608506773735190429508318819498025123360717405291839590796331136638327410114535684660122104374711544642357689960128388827107021717572297530022872826870072879737541839134530143583902072571757558369565826525163809135739052442373506167082729855099886281578974954442832878498397025837361723367578272401605146080542061939587723590147753741176349381695562415779182121729605558510366159999729006750670063290225797587090067177616297979749386988088811424638476178513595795146322896413383076839823017575162426874266889474864153807256479806927930571124792079337833227996965616304162924757779490807705585941084961599142756150572147020213715646790766803759763705599831243204059123633242444361905064471326966345999097642745944183439562439986537020739480507704505380744660216443620964065789804399433791255537102089109944233482079803339810568882111351477390094915033959565303119407067711148560066330838593896942825022205650108395139490819151439443960085089379087069962542790493883913713972976470701402152454217776575903834404127710103909242521350396334614459989988262707671923963369107046406425995685856288101501910281077410879373243648185522607117454354691293080011726876783227596668126136044962872673040148289168049734094605858649294743023364030487613216586702809668959763644306388362811866290038526752215383689503126585318130593726568408238144396261095376535493833473755190314891983131714759913743137964085792003412359657229933152166770625751885137943167614565342886538418975547408611116441031372862694124461380821195414216422626812597428441913680593844781378653650741502183451755332881170325447075231588649469390490821445818126458257686810211607660215991899127086366690047904058877195957692471255824802407559622251148487703070905217247534024091394299870027319199918801453099112229914487912068458328627596729280395062553177908437943594947772941988396474127360242066360360765629685226648246906757030977962421723962359501091058961055589883279898026269317045199323545293688232000613506079656935154497753080152207810620582211859338683876638275627744342541851858499876680691282687736697608251570342881019331419541997161665831598499029323407067049236005147406969668324625519428797640803785619140633844342625530094991164129022378255314767876537042536216479979572769269676679542911149196140345244380808760101934749967953118687994478985218005943436201355957171555887228327001641234106393800671585275985429473315210719354567521494421187934915439405717981091208802091486021625562760800811217087269915738718757244728035896480520335609984330630615439554869182223961697179022506831679463329443365690846199232350436482441635370666118530760690103091832130060311427326341948223627149293214925306741816929044961583558015124214548663654792517279735672773856473549580228124613117180621272228749978440515511338765360913844210001302613970060956269760573048684823702897748445193170305767256316977845122589106376890055696035924700788578049304503779868698279580608751615421556215614923878418673175910838046768432029733507954791187838261196530604394753124396401964673176956218164627807359290900945871483142593178432788814979548181682430550211129545895735493637270064181230134692447700300290859941316437817181546473661425718858568929290525770995895418349962569865933641579712427466101518527038080275971407493106976494018462967576561757235653600778637780972866572626157866973302101438545303810240259469831781873737099360673517544544090957188317021466593052355496894116573822122731140901629108583671713624963218985496229290955072942686626358022575458334694132882503329471587167121100939829220736841267208352332389371847957120786108615940490830144490848438822488510262967420490682931813944697855943549455635030413222438576622008415898625598871950439488873738635727526999297348709545188952362183138180204759534212686170820288350174997818758031492039206768836460611479472350822244610703258775272180389830795372705213564499335095761021775050945924028613503967120297278222422324142819646625045621790848157660196127072120201417439874652860493021967783975444369399331004804408200978873011257644823747221252000510110784459330336130243990745615769197483736991883964713759905144513173692559196696495298370906709372153830769560207707630066994186787680005024419746600204838970322198443033001440125351595581720193975662551285516476167104226544417636212723231970223467652120327602420264038628485090752568490981760799426744025446768113117442025374636211342257959537975474672708979662398516512602655237455542038520767459162388823108590739823276580049849748591596287047526849137696966597040109728490496755554451040384845922722355658725749105532657075610689056743968692321273409369861744575804461325038269594413594345549069145996774535298415388271283156027116167579620789597574767988699119482294925883883167177426158111997498124213278007718500639848265023333082368640888850751748951017001702439866063714682620311880794993879640723413157082022979033590930562712153911222457969190159839246616766290693397645100435245115744662606935596155047686173448672681331325701682495146913087164671919957496539980428492675255775651175959084246679696361885078024804103075908987899581564471238697676982159315577356551279710382443211344199206629240080753661503911311343428728081864325785512239526759949095968544152688707158915536215100309112023923293448939443622706266792433527208114792393553355761060733674757379127437486526386460191258936455090440227399746584915984536989729976532829784780639639617201777055576058084008837384581184368510225584966119175133881870541859841846865225860626293967813333758860711627477342323272617016595276769920655776554867603074447302815523560940258322579669721926911913979586193241341154735975030532557231949893821917768191109206391697463503887820955734877467811135648285925242379539337567126945797916899264183462205933523068944926136839368094293529232737264768435166727858711781706422116492288601636591087004060557933173610059289422567010890295640825255038820285037915830053011124310315569941014646790821230791326183900097731412745553676445883730452740374841937515053043611507524031558918269090354936970190162635783469863164412418648502043089747648512218098244525597493761855168704581611174886431699796576173234102097130678561269593697910099902916227083542535799970485377168728648947888942656221757722528332114854989110063731393730817613778122833309303127607133404466539956653364810988385371709344768581189274727804020779546588186468878908183406734464389110266511705757789914644941428937166096371675073900283174947439686231159669361312017802953315832199497113223420037569298428337597657106398762210551407616515417350397219465718138964966488223932915177966810638831389564039689312344111533462339943475427827979660818732527172296408663028774586231366564115013388368639548715308173229718260724970070349512079108804070852815337021237036235976019150761221414914114106482111599748527899000093518281152171718919772507217007889603614337736700697791044034140176764827381161062072744460428974276855343649527875732759834788273523960562623745323849718257614624942960514477838602792666018676503363106343874194621922106253283479608204453973259419798107007524207907083977964532528238763754382289104421793631633325256828320315145806013993874116457926229612001694915056364125446535387129756500192557446769296018633325973034047634986771981858496715876163353215419045778620510500313768043762663203520839068904269575873387652313461386980042745032998637566395968492866673471912900600433281482845967931757286676282967165272253219898103749154285750871467821350223481143740927125663186166965740149094446388600897331460833617535964052612267708602480445345900841117904997017390248590927751137779150130570797558261368783030843120893382511710304066424398672024693044538137458065748563068228487479238003539358055925279065717040795488995015879373347314659729670306309713079094027943415234380843761202975092561735596182039648446691013573904897942534525465772009745672223890171800674340781775110476217880325539632284990791421847499864999964940047665966250410543523811711315569056230528780479920401534845158604691533964691042116523527745719935570804692948164765693176185483596107317409421236768247265370544788802698119805155633262985588870691346731554937126875188687017135284478399219177832863429638738679251668752253206142000222786989005878166675792573727624423868893665477334562480898800926140179173648228698741460741238368110073605185703714254017330533950850175316497051169104024766851623105502149753596251695751490244470706077581978765209332426494595952146470233706967222673273502483033412945278457674164785949515427986005283768092591438559486858666626384244201749596188578405622588409221545064843612576903849298741961544243718867472924886114995306691011979604561624510384997605251169128594717700408403344300857852489468786202246388041959198026995729356367641068840234253063511685656328675455221294517121550917957819583141384036265949099419072403735873546797134895480504753876375199765913611228350493856113098195392654603547305588470090998796882906278659330399432659511995313920910576576977224924538035146370145956045938777911483237980030644014589738620296644185664044452489801923841154728668047599163600170036049932248195599682848574587986781328023309247924470943353838107025041351548297555978788979554717117269166924435919249310537739245213240367507046062446225025508010067137750224221377343578240081321443729826753293107829742519197981691774612475526224444514109929673176231568006348123409803743424775106147658067062893489655054997086738285364965907253118531483932025572520637460314008102923372462491496902440988758167535999003108221821540686540998372276642870056964903024995873364974201659296062513663769112969525579460373071051987136497099586830404346873093251476621288577162315925389840027778913275546495811038953867152194962597601357469487907330823899639788066952829429258391096829569316626442477582123987871983544330166334693584754576067590174113751497671557956077137686938126740174465407688312742444644238485825585589697617543568248987466730988137173569891295337089262617867555752306562881766410859426115749331425050389031291574934008609657633075798900605547259861413622279578445793474239888082504868569889063982450018095339444575980835980313820149318026412607633392587015218437958678476610709236969965382278563588562332224487087939929068743356106717260197729105240937474964743001360919425918348696523562753670795636483117720340859018394698953204616302233981887347146934695113789342433906010089469771606445709916584491537081622804041480593654802354423746031049466853235899592997269424961169605002630359602130636508414582120092813869665379865548716569486432413895639072739042473047227085275179842047765210239736423030186772551171921749213024271619556056634848116063559120241362814408147671530411863770904648718819531091326108626577280661699742796621605438320203870319541058367526942724250006903031619802374023325800558284053007837650244196361784287296095050614225364373627631796932377927190419691748495218726836774532292629702751399170159251324987545082132653975418150112760446373368206918505059599865973862048664317934022771291394738535153640866488958013525569784925190311963424315566595733946720233115449058182072902869051730272132270025071298341086666180116959452211800241383283414617768718513277970505314964795704928023339306727872298762972912328829629005436395106411757862130142224179996856555658664171723260863966294816192125601697941724944437790013858940977521439347242168163945357188845067543853402101933527188921627874049739135290072575817166298996652041769517741558750552171368228891969578164558141810085543334231611281924660051901876708644490943641122581974710499258406956483824216927536594673454937435092584920717961853078642978477354442189659650448312070494754695444987558205127462179438652248926255418544314948125662608041648737935351613022322268754688543635515982335420993596608467128704756248083286954530567528286264976766018625857047981894877735899034642469498054739330762447365379081369212960188159386547811713208823428425357414308059579454426769381990855169881188096275104961388634609862942530094252834623974859051332240654479443546376711200687243953452188013103129357475659536590851442073112815289297860961947974612882200773433409415804790665036392253972314471427786748697020111574473646841342918276541134792552453388252777148584751868198454618633575857043879065140896105944340009875118021819264833557663363792955657082091646640029595134604514176273313111898888906589891669354135321634570480594526885770517897764297142704762981572635063532102262885430209218891080711530927315136012541501084474642237659155630630214090165869489622532510342344646393393505560934052634265110289061189191016023134054944443700792549783567763992859743202634864794818524626975231847331241923821786631530255224391318804616554004840772879233670284340662150590197502404521762698833903856218147070277156391901123901368812405862894544114351316780340652942768952089394821597641390237504804547671279381522370708044457052952531258983022071653496625485660761543693001531943681722036861812630033438809067394155223691587809989656898933188516984535773050627209204516785100647744823229277726338723135824613956701112980466987298229542818215991971441084600248199991057273970485650733368875140252138835622276770192844169315433317993931061400682066140998444534390791158203240607956788327819086060118507393416005854384946338572464155638063988483447063203406249461323178799493667666294342657455763937893826128958534137899822501288406639051181218261543079243773118657204526908261231732278236900456404975670826207974908401069873167902298263035660396003393205914224712964016926244721114932840447897365870179852498509317592778287412490549163688760820513899819842949905462427275819996552217833460586032866355477914036837411869526907719217400666730334360540445170253523217146414034152656525533633884304968174402911911747875551762980172983173807875768468980311680735497966750229991686872713887600679686205255833403085354570334901122907318599284497633179057410648481622940814275800306390781829802315676727240055062901072831865884139254640924872138220896236459042797518648622599128055981204234980102596445665831613411143610940589342850806429499504536961569282409491882550580557331442999232566931390299246224854677639951526768256610232241866042868085237514329939817217586822892938139868840029535649658257764824385218079737340233867739475458573018403533713621406671843475907013464348521732583689340577682141122758297108904897120171652069622913039134898869761682585610827809388676975130020621740397273195664191459868557883535482662873565597768446703544718056454083930817757609484194602959785628913611518609347079092423117190335625851920954738400896479886358372911300681503170767423200306521606643252604519665532350652163526324980669330686332091613171299702691818878302417572144571444042377295942097335065183231859015695119815222986325119273638803529996874141858357769917197264297076857370097234139783232768324534517038158348962454132847837718263626537993333757139097200587850965289067817230316395207972101284290922061902190045427537757456658946110617338212789310081850516146949259394734038102515079992329808562074191241110022243139043859055719794986885642449171202208736585212179087864613216496799005205635383791822475436461680779621527234166567526705783552637869551767885327229568621104665662621867758694599792108194978852269186877208393052932621389620792090623086742729330507770150607527890756554497795430370695697036099964600293780291359353532807615819029056097683332385743885175275536585156672167136491765646515389302465226756564336903382320695256676233064945107293210945594229805358481675845794190450130011994690965183399363580662490251378512887577377262817237895701690081496427569142797408796841686633004844258780122725811490876467979041914559633003204464019604057129389171133912453592676974407546761674127174597753787963022435344669324871408750042668849113514956034911388551904446397456158579354204887392875454468674505058679001974413937069202658805091544975121667706631651545420436106670055890315114047229386519427504964389943295063006988095131166000287614703913161277610685421800754878510558110038347150339959503192795481043818237757306652452018782765372683630637729562929700894800289619126002974652256123437654235914944688176421592193341586727312330875556769202246470064027318536076917651560358066833737132993929608072934473894869419070656357355965293880907234908450818053883562629780137011417132311200648730623997319126772517911223240483748738585795932876076117588303589695922683536439771833547181629484390903923319774287308897666505126176137215096056211605489706973164145594222949411371489421911533789214233088433914056673423231059066763638113292490136296666086624058046412663993201564485015920872476796904256292562608305751970083355833128296221071978012690569695297074984782879203493238502795474176504957880022420831184936231517919246869591123873668040712639122595742738522203162318472960463385688593781478792434575891127197721725977477062703813892660785941601811786866524617852686046373897141857875212138598844909251284925145588081633731703767354383842863351909948262157595831108706749322197464603118438709983751654039234096011709034328231232139234149581550657362340324357445075454833455786908734398290795761002917323296919001340453265660866738443477709826245746812266460932295302297750827503438108830900166625701914598043387029906500984529467271687197258469579041624959438220872482624900652416364454097671896838148221903902379839658741755045304081440565622381447184650249189679904721937061456760755050229441779334100224897876261854270723178799496296143085468123517317799231050819874799656156308486253429668781714552494469927606663228888008157107368956084460582527892234718368339442702574039656378689949019098860792471507630916059522401090408818404087866009466779904407727625192320684665341321444010368684860964659355159548396752239741540414031209834077105340203356907672847353926419417853895750465406496127163012752472979923489300247939979738469327842317792956951432047987443063159842497128221375869181074148538823178535118292897038057553781787299969502526960032166460757202995076185570122955024001404828120564395481028580246473387485443290689464800707663240110602920894127450541464188925640010184204593725948432043447354469410954112540233913338937865101320917007923550729670840584952803027119862276663664120238397209635833660866658111510624687155684843929287480034812266204480556213158767607185417490253765267867864724181335985355666055087330229951239429199204609285855965029576483042605685066934787569579761093776856220181214862434138163187778040542503986962088586158790193351614683313841064138582773288015163104699421585316343703028217425215699567117382523652874400809788051513668911796729048751538560761601936822097294120147809245527178830170564041570690337337191330444696338186649318089179003152233355860366030636896938664932367450070089231231767561966712276150100313023796949363724014015910120574283612915565438101326146907542757091866946277925052243552428724577555785673701792040310899379810934600743630133838656260787381654608916665328482976830879971344504963003684632053401998279386578004743933755318273823989797155963415931684898902065723861275037899692907745514671854751367539089073299297409407195521716846960854604536681276479823947855451571890223404734326306535911040115381869519066185815299606109373163000900341515246276554223962854581087298856505928456271539374524313489046450524146131920083844968699168692196312547496492864554829253001327633227892056117041280929808752584827792689159105070218115563554858508625213274165196487589676999162533263205719855116106739062143998130389886597885960656225845027897030806439267175828076153744628426576236889346126899772499962705566413928425384999324616710727738496128378556969199990306206091836152285892283207820210610015110019733629131220850220175446984134939867086819604869932206383216198100565031733801708239028625919308104107292193318038989230667230647747427967064512817079708493328803882195407069533912991117467043338565263651094040010988455002649033459678327124198189973807136583543528156042196984688385101514862013658276754857167436490332966062468833602727590718746807352101635443227353570761697734821381016410126446267360107488671887085378781023533982946290027090543890465180947759383591958071809150999619026285397915702513336158118713513124229453439081164965481397588366677225747719300479239369756334166287829723568746332737164254074152184900072845744719013311463835137728127236037996774648790894166664885463588092384307557151487877259099376800581619394269357472986734047928207740184506153008064330749140997021867608596643268168352196014593596821634238598387198642690836759752103639363059784405935542874708591217095896672213104067308155604030134354376104717981162544025205100328450734937219603629454674436203447548570735599299459483040214084155252428466330027629138089682181106837621088741804654123685418326223826572190293765349432319506978090212713151651649147782500467649303349512111168408319336932983512809063745021961958485189599873401014744638874917113880263809349794475487638345010597215339696815907438394841285697068014402043360052296181367351693073927273091409048129679055193493285433192474359369755773854717985519691351766892974997760287383677759904305477613635360472073609740220588783528753926120306332191737986999550148279912808324435125837070223530079639581036931886997603686206128261206658009310772553515249599545180246702596130077692062198943982899238205007314522392967077744177413176876713588594653202769735184023564050365748548763334522344472402358531235014455416889152172689879639493467464071771044476954699254273276647257785799162954333857975448440407596487045472937232352063501259498284471374559751115674224208872611075610494616630731501174489932008886306023751540213196668097422761451433363897060475190180685919062281865059272326159815601350491940543274006950610063011814438528494084048931962317195246508306846822417001912492950916647806917617321707841487714391198016534372497720318505421879224003873092949062790086865654432463218375813045101751804987605759517579634048663934629219028549123282434439977404935172241110630985061607281551469232674919631312333643125874455404762777442044685019899445981542831541595508626494700973896638870610681925705054019452887963724801699736922950872617653557640280235565709449027585088381064234859008559902638543844561943026559005697116822559506303637999699281322900133990417157280865557378814078629558349414681494152111727657514774016239439142313178802298786808792341146562896286879878263935820329037313528102705357562219017408936856658458767415681597376063353188640208712663462831096810382611512453049214298624973197222520022209253730362836485329800568598268154523457366482472047485874874486208455736605122495258055134402606725764638519762318115578300352812268512419191506082046089045980988866505384318343940913178251892304483812767449620669335347813808867377584566013876971979456409999789441033708627366097508139180590892012836965151506193091132568030021408614462391368007597777528499594822578811395649805987589050077997637074325161562777897803846815416605639755212336879476594889199511373591810417752225637528602210621101454770272547681390152871194842117673097952803085302556336773140764768696739932747113056442034099064060003105044282236558634503942188879969194354237904770811434180698705329864143920066426135988766212302953695480099087002743275672518634053784972681214113297480332412058934726466032362010866239602181789053390972597980955868642477944076195054910274034089460127438357139899486560166695903186858203845452235190895550752052864853375799042079840279657818791790721530236930655673279238617288310490338434185098383891779600672813056443448110323578076670332866798300964476362966833621794628796911687075683524267918271436092143722832497516930931865295209729433310238219509511111933706969065309225765732575762707958499850082350794237402639759501227601255163383803427317925498616665249702904576689535008101920350776129433368055322029756472714589747888247692221847062148817576326853035883517071120733026898601338164204003445778682599864395822483980274684353723381963133322048807130775284004585870490890421434004118167755069041227706080372191124974049244045744636439935933066439440029722369729727302549640218232580865084682720236815613300575655417358801642951265657452242092186603078140768292615024876081328771069177455998674202957681145508797538540699558262567560216522708994143169810470552259356854880211100679124621456141646107835670790329495970177337446491631603484302885939699145485326165080790235826238289336567280435527789356256493170024612555957557708468052528912872092073579029206113020798236219155330921919250739569971100742955339155615572548110667846695176336686304513549849573749469027875317883587078094859695164165195540220982326545100805543550880207435767855764511170833748114963564581690452182276994265190768310397396977943172756163642245608716380148238316983160959984671136115301475858403193120477230033788767887129922888071892185826388241437864939374704172209159267364429679111615581540330549868964294655327990819642988673217062818140995613145199400411190624421751486575734817610191474091236399082377716721109653755216488399820840420794658223963747361795319568401205810615819360531314545762464063788111891490535288625677250686719694040291833657594005092740772499768231858864513671059510321548790964004076133992987354279643613615856084745622097892778580261898476587029983559165377028579859567028843079499150783793745915346675888290839115617937687107981654180170373035297983749075897775780526627564502642187268133589773083925628449173061597117031024870481947715704812840788388199345665865867445257827342106603308862977659827229819295159539623242965657374695106328052074485821174407685094558502023758638886964905426732061671865144345198209575757117711869618248474885918044871797494487035481450768335889989122812182914782541997593171758273797008748497345247120683405817524521904408776546453828407343704655786643585345156142452722887339985945432833445192748254719533019658844723805443849068949850826535344145679387488847685761769636269404062024772715295785436687916237716982100097631946579834278329565627042935769926723337384261170118672618375372349745288696183481237822436822093338429493596329680477106966050762615777893627471439127939503359100424137433401410718456109693047009935789893998452748261012691904932234233617866125009388909738118153319614384519628815002028024930138268187433068731367931597662734634172619798390619820593911285973450727773404054475824837033618669934894867484053117671022919298894224484053110442496237560354707932658695843373004235332404029845879367816743646657537478302092973375250178393066236027104514797481362665898636621134112962950574157945053264536768466087655454012161203441237478397624008752092372415344194540716416866074764271961016353918975661830726337053554935518106172565742520260323498776102158283591543871126760592245517037145961235692261847704135173795703360565931097966273475639659624881529786288581225505229380584331600893521229259239303145201573286757383767239354705942215828199753307301833951063667185716331620148422538705842751361952526245033664362181009540427995819311184917986491797631343209484343624943902634338754521946639779324701899406226740995905948959901263543263066176648088774386935412242826552784792286966281744477551743170634350742395357001862834195343913115406101686803331826263484579733041430983622998389173765130331240252668270490025583175079155525097627364437345025769978577216657597994190775283507895081475443541172957918391554566353118265370578557762667578116651958879965764251579277468703957149644696561311402336740316442969071761463635826993884131120454169604159205635832679315578351605377761548265693399952706563099145159809782330114836416621361196883477338001499002136562469383029708282170223936076942224858419750159426410693002149567468413285611255889276859658054837620544857266778258325333028627790935978523235539299154440141419880812982211427746875161873320783763421345754583595456058922759008799878623747106319038367532211429816885899068151369927739396549210158814036959777120660768506425917080293001515941805080225480002962789574996704501708111475334884163626799016416066338979600203546388486908658320119401380356649942803797801040548226082893918253915724805324129315946134498381667412047594778535304772390721319021000909049796902436660546725519763902763985124879069783883116299292627391783763846540497405509292566940076061371269804492082543282814992356388273903466705934387958018854948894990532970973487910077704744295109251095077357838352588906800092895297080918505229407863209820038005675268382925681019866787348385510213078345711620479803483849493293573830805955822076900535677800309093706895178526835303051040727597634058418742438254698508857792119256058820531173281210477121903862964193123036703260003032418514625641625258748426531933220449888922000999177189836463096437226051035834453359735691412560411258852260584601531346972680048361913379229830109633992215237714482439700813005892478017646345499322876916129275993179023071374747946785611726845325331171064283321834774090790983024566079075147850758313005944394101666930510315622138301219833387861034739010222541548257147994185479742539380434648992985391502736224149689726992057978693690841879728539039367826188263711167464716839350366585811879764097307698423036034184841315424147701170031038750045469803889542826235131635557763057999256163020211538288759980695904272989561774727347553395524240590974878450166590353859657121770610310476865749059681414563499523689806437107846375963223819373933767800557408771333851831073227733182382915166772565493403409505000720132896762020165931836864912256860565925290268794515958738063367613649504771478564811247186331493118283507543710321422294323125812101308642388851877266298610027553037568964334628315731109520924297266709650695747349837873203057140527450791988209755318321932192056905886456717144481456903145957294289306396839185476808547243858470174238087454372076462244422068867772249576610456375581538170126956459299965804942934293654747938799375672992303167963999225434577609598533781920336414559345476344279307178526157582770191948115032812349485105875798022323978057260759080837808730146521717097016116648328045837419347764309638360699528003980583998836703236118721052881765259685391510687781902951946405220596270447264356964100474304541538717547339263188605823010005063054463946651328479424694111554153082320226155002423926434035856038462664094768080402795804471899543007865696260023159076540222634578034854349435393272434021193909918015506511939869788236880212933047614231297497702753634270502300295035557170317383350087425387820255173762491582024071224093635067032228694770366817875445334909542300479623851736658946037528109292141798335254974922221842576369127897353763393775272780071086731043850227978648511745066498730198616141518879713394455495583070563875125672820631676841179798149571804733346636872832967862336267421714079775465756478987405871217326085297257239472926753395567845841335332444904225401562975987757294447995023453991275214490208586613723737569397633727643362216329332419796759268156660098584432418221194906699937200684191222259948547562097796860407482667729981618534341347599440674409939138677409431936305749107595043925471176457634393575990809089800990396455995523115039246579089829779945410172852295828938949824070304702035294850444356833957883465223222098708593656765225625012661387821898938515053191185164696536543493644609697476657525965535707017437750408800512205518748903530856000436118437092440411196146267107743601456984821907169605667173420180301802244377883626636519727420390803853613208476446476157143536762553161573563584600679007089567161156419862868359445838441003033127638025452555259446224504381950491219960905702190928541978368278724507800456995809965808877840079854533809770630554113071420601771423808054786936880909311838925128586534494196565159026346596796641963773498987971094288718132748262662338890872707783342673412952782836864861814106505810941874253069493161541106191127957293261402519909387254445177560081371363625439169970135972059482264137320797075544877991522808707049495688556920288887156058150041901767468044457508902415227309720288318898984836964975404974106698724493705347715034811531321324391290952786308115219461550656949091162926070050372222178684566163412500200919118033313251223370104854296401214687449071798776393494086488930400748578662884146878957028128878306997320221366315750582326844512685346452746073958101454972034197932481213547814649414613877666952392090072601134369101299604932457233911651128273034520335950886186861198529628292654668948583309648643808404720012201142138662083853388597312820375746078740411687823842255454353756924872059141876779835890961062758290290911284494564957557977645323345959680455877371493936065694367063662677408724873338840869524277172628085699197389444304369047341033886225324536181056629291548975797814724935910309753240590449264751495871734094188404873279671027054402271547693098329868612579743859646506419604949180554742001674196614112301917079661200344233472215249621462203377589912251219778936054328906816072521800105013934927539732271623642087741175928355212061161882202391832587750225888571623952894592165441732260462797597867310358877057960415516777691340009195422370061285508126762010063652551677244409833295937073071413378955798735256458081805533317177124525669854774713495300491498211682544958699157685989490360592309550258989758924821663299383470777077034589185880716972585556851849740716386265056149935590240678730531431365474970392076720693799004702884300599135904995543382227018426169921989153495469116362316714904242539490906988774081964540589714834931718869665374352590036842251311294021447138128349469658451766644244454132741155272933526043270238899492734785242452488418063345419846591686272685744522408481605130514583019830368473044536678889944739300444433072346289702581693277412139393069122539304668932494317965396774429763581936252875069378680111855030000191875414878640639368015980801308959782261753824474337456946288199609469692722040392839715715557803300817497653391914052142778668271705030143069009908595015414755720168677502095453502060402995809190189377523398947791376768076725715879079591840677256259569119544192138232281615899963675457013513351759435432121458445173994362770759745983924375774179075220702820132255322781209509664499840292152621595492660241425223139233036007118681779780184389451625717798767540004446561364025136555575956954627474057133491476515389245430955678020593255176968449604752907751523707455616394424132853240815042635693782107719290245588448431730594836346129221993214687968900666352716584903296496951825713245183701996072354935100199909229886455865852614922628470479954821169199389257434956425857036078583306041738111583871712068060274059407821472403975946632402796809519850108486607728238661495868474879885616845226090751496065422516931825899186252566884435227784536841907641968671280171990016112137217027271003757998110324607783562032213754224714971243735833744069493930560133415155133692911611760333635351349563739984537952620083859874168506532610769538070428690395888727897122531747820564330475007403613524623853562386495019911973679211937750706150186180178952616072904357082123250622793784636535928704270696974114659248169359164229425971087246485141814948921154062344659217811680495077020074510120843493808387875908974619122178258514394354798026268183666725841246014417278398813194555765076309062866767190776606516162442981829779678094254029328950063826835532162418467232263285319418730149690279855187614896069010477774374625389461812938694772932947133870998509669486627465078595281805634811721043832298652850785809145770495876956234771885105961084143890042018666331691939836503470573827114792212782558189055243447124440292985030696285553884840553642253717898905753917270848782131990151830908425774040656065974158842145732577251278851889745114138652970155489887219120794850492557944342881035617410545849866632811164477181583335829054273693494624903049307696024252970711474712255017957610998704323257393623663296210204188732135787800366566840441824802806997885601587757743346478070045939711768821303414010411926562241932257582692979384767025019922904340415634981217326919992502844836719693399448385489442114751290925226961530230200956235224356385224140571700514251469662692487100053488653535957994368690496298713702738376328740275279630919908773156687980745823401724972413678037412686893757857702337858696060525540846442119896657180527477261299391221713587837803202753200026321668946343119906473509316690670359103862663748730291894566270788606109533292806001164968019202133951221161924795477551171701359046063485432842519471713871725703611059374175440743842684127058571965458837064177065520493544538147635640140990103041658698011576197408543406662307041295190447896586087454947721620875600937682339092570865349848261242122117636670573585220123829166418535274252304276684584024062045853606764958292135537853458958396269574866359539604855778770745825196018305292403748778347816821141436567428087690903020347273963224299591730967871993161980254189764042825997600376117321162258701636844216739861193376394933659313484093045249312853067175756665651652874936823300130332667463190688046785473209621803380229679776331660213149639316852532467595875524071945371317668695293088322765030090336864354426800619569403159614730972230652104842557041645821086421067785864658243422649411095839346272060450225867486755805285747681472137515949689323010615654749955293495064046511920775632900977767051373955952917314590972398841846520705128871745593542277077430449845935851055315465889255806420237534602221915091770271227773915474360458661891335606370479451805661349450378049945956324894688111282868574481970881594198584065574092821118945867680406899603065462747159093525782003045820434588983641659479370533153657017664073068005725976344198897353720158398358957443070190796368369982832193893050933921563968890131320805892816913862950039896282436546825883786127263468069909912660661395028441847474068185317678454893472645032967961344403159174138253955511725169652009176449974956573673463438532494543818521950784839519090667640861457739676079195435081921720624027527629314392215392353667540843965290340087410624101368406430240398648764937220661586069763812979984726446136501722380883198534242030066342031221663191126051619344700523098744826473307044616114646429008939219168045239751312238165844860390075255899454855799144395736308472260803035466973835949161218411687765334210047880934038397121827791033034027715819642234774904383797225875941410385688808903404062133751929960886961142167488246846590257207772355506593734435915630020579937339868500366711952971152508125618282736521174285299903048626002445972222425300016847954677077198165168221530695170742177954305192530583857220586125305942676913043314544119050916796177568995186310698640137089380931419092774478979787248954941791257394761501563086923097414727422212902725814079336649979672484325669389489485090602309560127471103974141758199496782761862294321565312645067060409706899085207815808412096841496285102773567528949511606572877689596526592396176497982641690923059858495471560384564035014483445002260286660469699096773414251254274291632974886101719555100195115723839869364925006525516811725433292413097769047068430857150372644903496164039672138358247427628909359056445529123439433247866824903033424889336721977445486985020876467344238808106874469658200685106373404163606943539803845960060666446149392474961515175738585372329505887810792285583701178219487778342207842583226120318309499594799338410369540367240947691904727422908967964287692011670148207560285047197150889740803426058497228676927025693123588968628453731691242336157186740233352612600993363781050227782106161774279290753437706491892806608877018551515728863221966437454648658315975172989785210114529059590191916792745704501458634530453185610880017633531910054673029117325324164893123295925238143734155487961082615135448364836354163163478231081411145147447300242529734995759960524343801942543391168257222524033770582260615346306588675703439430753529427265040454849574716466932016963973979736850068451545285511749497172184982277842417525554321226381142079627762328153077031853977347874735230222627141817269159937134779375651496133796949008737887924192553386099226804663099623168009428780219038214917533990793249223046412796267955768779808463851168223504430880307269482040424369730069947710353735174683965233758284344859891909282966767797372581602293012349324570671557801187147266084067660985984448320835731231155199429864054919496826590321782459184283393965650033228879705261343745031179735498570027851152662221195011585156744009391363435137826767609432466700792946519121455761362126558179778623494563731803556344959331463167020034132971338931646279283792327697838505028350089958492153947468421570762367261535214606061220050661930963944270831917891793641703919867859689744427350530404395618328616904224346467457912929699796385094679762413486626536341863548541044083394725480971878335287766427153690422327150047173992574718487263893216472173655848775667338305953817888379792855753610409063461218890354260940151013483124550728335598605968177042463410729794483351250638103706317952928579380505182412240533136472530707638254723281868702177495086261072863679479746862280480032484987033727454936847641237233169116527802175262439862137870067391032031453811230032467450060113764556394800963074634334694810208354153463935106205859513392734995756963211880694433693248694885675700498767051518142184189836879983719181585118399885166543489419486627222458993205054871541143614598403721192086608905768315116001122385445412541777612562583255344956707402037740215650765989806571329922331814670218140362444018087229358671350301955254247610741769668598698745296935692961812795656527822029437874034256397493034073695467938722747912764718907482933506993874974678610448229533767940371577062535553177627951215691392998391781358895008620747870130794850327553661305531582291852648185604006639725655748520615196953882597295771335709161253216757343133628388283990804690459018470903370006273188215378974543371177278324588596050060844720061147496632542260688994570049741097082005273801777130981372007690368681962633019686005354736151382109270237446314227775446874505546050798776284335501968701904704904083356340684624428593851068988072618836087875764346806698824950956023751319788931646075442809244345221600408565800834611389021724406872604173593288295755091443756201175772429869383052299973865284047801776449311036307712085024075787708931341066982637591649841438381406161980931608909521657773289875543934118475707518605919896707779533321918592606533536832352341015479705036380879142541702908127343471987838681301954532091115025519189235219481695510890792651041130170613320737380301058302680203985428843703817054259369397473630167658562501234724560826669050026557318787179754761980877557525475690083977067282675135887049649595334028804939097611454601464426924971689486695443309479321092596338434314997995091857882891741543942006214204733022136848269588062500895588687000883519478325087272715711333768577700352444480324930419950391602732032076062284938830113967052681234777571489911709413354226768196935972664887748506764730038715320594308229646963759118083238484749534210778103707587482695949933857021680696589037150258518032373039779598636199826378284806528276064393079538073408479759530211272953829604315193123151260911935240201582284630578608723155062810630867792218894736921259518131498845805962037773113226181935933373549033386494405519802760379537908837128008733256895198670131729953074779844746871795696936156506055492449701647963085932398801326504275107883528640461796984657095351425826899784417394442162860623106220897544799348160226199137125702389371398896284644074123606564993397328576538630475127564562468110209826383307621944976788253423755680797402690600039448899136471153635833913148108465103929731494396457889323633329142791880646249317048083925308460610251051620419540943614567456873204502079132782709240099100878705865376718540579339635613039347719948564284634836176295110044547641162694102054713718925763618476135546411719805706813232186684985866146571851603027762226518027561053619556584298331246240631114770550451404042293540802912346877070959830593748034606162889282929198324767410735945246291454879294751107147588650651935623188299443546265868080250082377763552751641979616797813058003541006702925192743873188043530124363308377573837016117187751634800784674844672601902337272790883481952780806757509403329320946999253818042610488935188950175550310527668905345417598526185527148991453163824361143314107444732335221449545297560133009139364445827745047372763921464304689812777629852049105268566715731473896990714167399884440368527499221239821716939336578345616260710014888875026917616187969523353037325637409848406845887429777518255296374885055616048697046957408501304244316113929245741530387236731957333856073014906562090189538362780158233331189313817585895244194761186358487048857353237410685345635427577765536725756222553447689752984255156650713792791217714321090314120208072525059023966418847925164482794369484006519804065042433238865837075410506371881886929953242613511733885971146333655373313559381969774383235778715554580235674356467932080119501079143526548190930085792013218258300762301445958041386389211917274717821409482965139777775192692617984953055720633250385329296723360069099041732481597753002253256580655535370418132252923031039669799952643585344556452667397501247019305729424352865524928491292176763206550831267553962336013757794886691135506635505248982762761273690019887955805532141184772117721620682364537632749251717316610456337563592285759888276788569893391965281636553171578665999305890661769356498666862661280826133746967800423338865876259756233056786573778555815014530846105792539604007079734644604150672579214775978652962514685275603175578544853820609613345787116484518886447663531333904460991189315392790443993203101633517613777906826095920590594355112074705963404762499508259183300365574028460592867980265080351696721267050666795439739698665576032755551181219253526830616779096399238430698727128138968342540891742345104614329320645888016179486559882748925437513394810030737640500810027223507942565333843913745847789745520664083621362768935280967788842886168484391371922639288897579138280848236944731355853504069837930766032740476839686409349376208859415003123138254485526195436750813959795932620921693942331126403490309211256658837396122646426054047452643403401902379263093866605931757313594869009642200369305370294152400173521243924648634209139517178700909866768325982663605651978432179216859292298765328534502648481374887265334583807792174727138833499535017083363438617826337631982326760560228996258920109407557759658024041010513364190535664945550058239974130681125813300682765544014536233061007703510242842615286467698848002105884941987365116024388115243697898513043857161396268261263782359692212254812553799278539190746724232457744583146640317178848561538146763109861464860295681459574064505787811089315891304990009394268321706470631046133382726152215418925779162803327800014724989061218648448376078821631164547672806808041068476154729376772632877297623914042769905853805623334454527408497384101181429281996335613065087058453171327054721613469913144678480403388145309692022860234699324729274804538944188239929196248725344023422219422796324367183779565463151588795764286742265952458083631597948572498075937979818229930424158119222014127990872809215707467214951728108467068756085422158737010685018724345596087803622677485481237815768296974027683727913493173611800812411088960764555388115892302660763640506299633645761898840155442074488707301305856915865608142322246627355853558338106619216263263738857784213982820144615737299460948970113749169131233891320532173310335027131102356163311251714383657922967336865845437898362929160713802187703238793501424774051217263598884174378358854477538217256844382255331910851783518267093600927894818080784882517031387851306748470441678642441049695219227414303762160923357592888164052505569816946623754273759268716438550883615813362457394974703076527502413443302937662460277996032610959825588496053119852581508599256628785223780332087785164792641656694134828839071230032875167490162187299813287195190077204653192370831998965082585785704917402792150838859051086195022889199959155213435219326198101544070645028137368634961466579923691940441880837540424294021561093135917317381114996504736382060165648214182991257267778277690904799880591082610740749947222842867502440074714177995104719559140319583349478407287055535868205146312678414793444640900848226138825591614966670012525278580290946660695128087446440675151781583537527780654795692360205290022607165916477818582667462616053699322272852616443834232500804006430406344227687216057763047319626602604238447961729372726612415599528221961973369992027156340235895342562464032046347859185427774971141500939116498295295436388863983493963479272068200068506186522568742032198635918764972137031562236949326904801633675425258979854706132073288326079880382716426505988089814116792337338014002371339942724240491140817028857907283912108966639643770875029652651182215174993923588765875806871545735301312040790645914588122324180443444600407009002692575568297057467391705656401632866684402606985108920101064444218852571987632455950645577889298604984582663220241518143695262078139043699396946617002440455209189164643703121577245188921098319686982862776066045341086251243883638602667014630090546752490449140879625203420439232359081502554098207829194809324568291057762357817788535258957270323259726411160838807061752615879563054402617896355395922255682889900329624474731494576092824743127914309694070100266238252624441249016986196144442303412801269551977045833761224264582410096426605326866817098309386709947013081179431295183808374957402790462570128227637191011607609874002757168525582959376713545636033290836476144020519764306913652390652294255053581868389663800923671845207905892663555747288860305522919636536078828576876827830965053341482307213498278738992435799586836445966641517722857357276240059636170123641189085399279590166770556439032762838394722335191728144263521748664917810884034705281179641780527990952110351770679153392609259623000127984420016300893219260285197736017719027684641019802930549461718204815438828961943790641804459732191715677892848146535541575169662953947843562370903243045518511391897216621481314939444110950959019055656722655772634741881189288718251960438249923037816741955510943470084354602912343086185494587532142646075740961277248347164232437313713321502291098358051388654506374435527082123187410954428612472945696366784940755427420202379732883158215771067534973603318711796457874654190663961381804166335893844335641231847781212852953194334090464116135626978912543850971955781153634798702689686583457761614504865389453563482972985382039120117404419780744380926649348539266473016802265855638245426053593478918086918453470532598096975166906459055916293523975661765901830308424154423839855979915012435843312092559072463535244593116563717398117428762700250351405555833076976790436828039841769264325454457355332811072561492176431428662719969251378724870961481377299010327888659898128268772044975951059220263758939567360378188175630724274105364100605062768942071333576494778332087754598670198803304309585151537605848482956839056806303555139919740179887298209806456658750383523174546150447768058169021217844458981716058314663591591761555856065371007157361739824161100898690212620562930859632292584380251769710084232770103720840062459289846164646686047073723681144912943014456412495637068046068143817072428723286515500798426511404197081222011433058622080330918602593291400461076649421036403363155013276854283370434018813408488942459807201567194838990732805550572532365433140587880208421341231155887321976652754158370959748127550857806348004569059602572934681533317738076538725484501417231568815905821642466944462660296068118601519113701160788256249376175977567441423059543904943022690235659406713972030911624894985187291169343119610579048939893091503733373337052381716132724848510202090402503899058349023991025111446273180053487108178920852523514060307777298387129184283048491144661630158220400416412291521669208022716635574433576553312205667710902991858260159935322407739089380103098393053111296345393719872998736846701824973051817364564789112202611556886520709218498081776176441014136319835610456182531183559240547864521471023599609747025507757771174184348000447083160077402803450915397014351637128903870235349626168066554863589299868880561681099013356842895226713712866304864390061363208186263296570797969417042087397795934524330806833952884471385476372577312220550904108446898109996167441872439843029769517466975109302005171650307999448438932780212031575493728902804001499353733268075066030851256551730510815700854462871122157678251467693046184586051763996972809423162134510440476723396117459474835300276656874837328532460009672672514466230373099459229620732102669081684640881461047157225003611899439512973493015102070197200172744622108282213398525476801267508237135108910542152969150162761826745789657399019137900967506700784634338065608162053854308219010534942408261017680703601813309518384916575657808317937645847893497357814724222377676113777779745480887143254332992351844349250509462999100368251659552490132919917641870360478776645197265133343916009593446525307263861583733750135865883276984818234514627772574845504627942837149418301059596980411315224672876749642310533377219400386291276626172974733987742635805012276192609407182905679389922835625565984401986009365905096901237682964029477385238616921990697042019964808044567203732983131269183929722359717054853158278198686177388169553087685337716562308559881992338390998364460339469939255578141244737850087284468093082593181572673902407829130195428119615477449611074230641792809401014740456806701501406258855234168945851403623375602759065437601352877074301337524451911080923260021564177620691751678657271257866282202548320122758366914166705499983423964948739106330064843420326529701391062994688888204718851386715932172388304158617918102084431168943871559941554543674775581611156429480121085449688260849316704991999868942030412028211271657132116311246826265819660838663783212514900481215064251848507765737520308696865901505879430460933039504218236209189263067357056985245763046275815068856932307265547333431320405651997252659710020606302697011825332034364304344602780070401595243245516390510421297824690888541910775451889391144461074761240248221947155288642357421043074105916444997993081277231304823573653675583906991793711494122294336256773090906909101336205852866585024695477103001344812852018082106441695577865891930094754133412537175752325993987052445839231500953965109990617294476372125870003733859568851280253326129296622779512889318258127087629397864971016223947719618293915411442999585892448665858379697903340180300602643911778067869961464586974964298030417762952551453318831881269925176825853322205911715305690176639591662059066354907500112559379186951727477167083571603369487608404261836881308108831953284892454217454666849332507865968294890212829366275124978950274250856418340479848556812260775695512377167992928782255422083724408368384681411628659974247099050683295402899539121590301260140587601034908173577382423567005712537684039935326155139154519324549886946081424458239723782957444301331534437102910211947298236890336685606177703647634007736689018991915140829821424307284404701981193419525294629146625350494700459272317066727152485220114252242863212521886841937910950755887558085938294528389672523563588574400811859151948399632866839077615825967658636575480871565680412193366263405074924560599624223716358565565724239155861844124863099751178293447885732650086001207774048970291392186757985398323595930988969343737632894590642918806692895666021939760956231709202965425129638476508304558645588095839992243053154773949778102981950226644945872832436225396972825588529370095407441492708883489851824959351013469279560487211044050235140518595421008423765165749677153086443762957760955494473856175591697469062298838786181615880372959487502736848232726041368789313004747267777734000037509600293654010667943316681917631877593341678020286612431823725532598439302217382766579920353921041497738983212102638876081599188832917084240039136141922661865833760692388789656443989799611090317249298719536018064506718043319710886868955156821728056640178787627652069336706578463128501362803126630440255200049541700178012052158415672436329931492938662783531356870202920824780443518238648857794089974723850805999333502579155237679917246736216161256987786579254498506577112656425571608202630015158675524774889290921836165389156687155008788121722739817085357817537611468751842053506620599434615717773014145248889978670851088739116117095858626360719112716446306816311391386391179720113290538048105552695581303198248035354964811452060462379101799146540646632956430123556223393570213466149773935808504006248421545434295847776091458034325593773383098836822343448653010821446303630113116945231539914412621868433866719507983151812581206112452483567055879535531159927446425111638877738885801256138103018654640819346822572230494082368627224653060196902607360272746998440670629284565987760404508868325717129570286824517406733218704872317975157999065053415150979482951466450161842948017069613490655665077701102483222037441261743533651246582069825179277333443163931431368576682971135235152331189167988594644028096811467128317623389136950491379910467953863553772605764762207869869491372453355766247467559098839428170980024054129142825423072853440066185296679570332978025357412068861795774246089416520900830843878744070270685633405422725174465766900513424333755134295393559579918832015291109192267523736746511571493560926339337498814935651677096936479230033910598638215659645608472286744597221461241020849053009292449742301897745326442038925870866634269432986029945120955690704602263250046058825316317648893257925904032103498053430676698590514017906826263441625684562923405256897761441575540639300828545232584581875049113512878740718338096768610595968078889680198371924459752415374522152397169186057987510139231167692621442187581600668213378228502766278619721467492499883799706445543256503962970635665901994917871125970075850953139347860043890635237718554501235233540376753339877227636161254511006474426231692047731306248007083194067757294239151012165782213205243220037396058215912025363575283707266365781074102086881011520153081656991745113501204025844757882026844636815607351672427542103223756926462600819302323388483196834243169848775715441380197874581927554675052734617796827909999488038051957321361446853582364788664707337524238146422555536064136147075518333635880906387709839946112126846783782556091913810760122796140773608494391891188581313446847552702162884530854453835721105835252902009840205384205839828501983362601583636715645121251313951764412654999590374703907948708560372775407200248420960721297626043301003099245558825612010430941566194703669142150100039984889766450952792513523173470050216909729325244392628627386761405540931011666730200011882379327238576094096920669154270757566575056782244372813145847875261821692215405026062641145254370817272220227120344838939941539311573864905660068435086307935129910156213263697680339133078161394393345877969672507936846915947363731523977544601314746801518629457773621243787514180994134957188251079205217963656937319890381260199881921460109513954683074931539170184302634719673978134517836116857666666293720278361240171994089132048192001581201336538504949970854042117068367276228018074742729465349794306634443315638327870997734318057522241912598045577987465569535257963027766864863293037395383784656967588922751713666049673449769155095606413923032436352491489469412773905599909904861612861368743585345224901699287578915553009877028654854234020739558607270371090051124598823951052692623521756492921694792229384605257179230030981731430186995392963448670572371299746527110359708990389228087462821055615102267753136811067540141137210395112249803952146239027396924283312949627055136161184689042182445222776152545240611369549435582738075424929379326713148719112979849951118159410245666960086133913755812824626689898232125848842796452135374492745120057996272182240541367060919539717278208567581967464780893649537194673770986158117892368795657830914209705182136011164725924358223056536803055860834891522956163516763398509006799512630160748607702314473802388203740697580001738364109395647359884309829732223486307771753490429954738905050851972643288666728608061263849526088270318683064860590359180716292721503273330274540074483495264912803831327200711012774608455859092947417749651108745511925847413896216479835748170578414767504304669190623704087714001087262374059115750775323073475968719085773024893388669326291911966446410349410275732437587323733457260178248112493892529916809163592544534371923896851502562920410771649999818475437431748870040704617253447219730622482385848781427316187484400159887304700308627470804243197724615960201519575660056610794316204441299936231798630386421145815698553544795942502560474456941071178515888939171570682534772852977007130665374488509822375979141010525194036272926733605519430833145096112254993663196533216739854399648419689260852202817930555540539214938765760519504053826849554365928297729374131393245853037983917083710269978193779307451121164663689565083432283053936880445136401659996319086547553831349914651594097977839093199516879289086883996370359968611804108040503709892762242117798458181520955473758099983210675079569199580961850277030833538601826140436250553486648556626283806547111267951948085715213863804324626833807612704282008323194584780478967239939655803585623332360872584440958510661380370603153074120049929843756461491189804727290954820101014832907601472863317196079250622064404468502418804455198116283660865193662397858664495348682614418895317224916648703301605132579856311891554025382857042627339981295724272435588206290179576856013042601801371459678914065586949804870930212432461319317442752534604568922720026242476468670475537110735553790924043779136468028330558077846450649491608391943504392825700146143912866197979925113499589811526408212378155683017932846342287024167288711718088311410351490031936775677229193164675400193397780343334275633786546462466171747059309440993515447608120247140961916903912482242295005650289078281476787025133717324015584189900699805195351945251997456396590803404664557861147382984576954141786549999636542190508620808545391303426408964067669350662417436675091511456290735096391083757059937366413127201328549322680666385665956153527833096763446514262179141924041729515271795143271892508848511851286035875921697792546019459048573157827928740695709122396343064988693328234468344380469820630083022774445116746073556094535836972485281258259717582452001003958220907662027639229622749196751919488219032088555570531422476019556819151720713761392674468501502877967711584273756137024191309565262469217851911494184721961887894380944680438939898549282798695712793578796709562150584825929470265204964401476890344695472747091775443475388647438018511384551568796120597200488948353216683087450842623225688216886281200747045601474801259084133657853842813250668226393451608303725715091265232315611781034403613305689888809245538038984312164654403301322564716717059683942140667195434666248520068288847097871456151923100464892577074269183547171410010798265555701834515223040296623413058443094795840368141752655216410792290244553918393818664018538322199243481484061735744220331744014075431163770443688305642818648352598084107415025250001191744866047770804751211059232640421625981035494601487873258153643145092398790546014632460538240983537825956476369986290295837594654642982758639521774249353408835789961835353810026525466570590764759182141382673404340355335068946995752266850403411373072968658199379274448563272072973565048064775396673600694486166849611609353506436233416761310771501267848991036478499991708253804120187951238942672431541365335576117846293263557809472902943654034297133014690299230223547499104534319795688800503520484429435102932648885910305807955946782392022387744194025240712105412104913082823162619644777479718711693575331195676628857699042981943470517386628284561039331491689962848031764673195125756182006068503171275135626235302869495534787042586369623356360356067981935267310157519703570371017079654362028570497928111498004262555233255298465070844053289959850881707478043819167531136620503512440757489208309381429834853908702799369852859647582334452351936203339151629710961980438375229798562886165994067438560751751471999342566954628029801128825606475567849652225613462437446780315030220642583728892081808438239056996797943834022993900225869388078973474154242545181818730439789439383936640752217825372279820436110565328106429538247451309602505691247859015941945850790314752114909785507985845677570475285360743833971035765696072657733428982131826712502826045762502705774730141644378672350316090452446936214326445204092492686821346281537351176190250558902455960237416887258391934313564650299737854361959838506132961850865558615163914914021133628945107748144521223563889456027437100615188309454247640243907163011728750027718365999285591321356072263824671477606467712669855206342734971730461936712003843012062672190067897524970198367172550659397706171918221116220562352630060058670927792538098046235677791712750718899077593967950294392361090826550965326266335879242720717103758231323021112989295241093507479607498857577938875592132204710357918264419663543185512963021835427436975384363738854313711362084627835164811944268501674907092833383731288702540522539210243776107219613326724801553998038128156271969723534341092277011668147321691688872660237459889537798836483326236878019074354314956381070486504119419874335812445566852937726954019427785879697654858757321801444001459036905345042338686726220067181228483225942710413096092349603914202638717092082460649658971952673424793518347263416606227424527058982337359048172626319567499517417197264901370011037381412865100211288272203907226460630146486687217443524645018535269330685527160043893867624307166845161382786362911212809673837759595902832132738694813658845086184833203877623404825537638170154873332991193805235981723399117837579401211152615265049755574094664909166410716098848619225602515730526058394688493009424367077853455155792831032121212460685163968882362057222905531406328182316150055419797138788609187195211933986941182746184021941927751878573369255728486310394452322031223712652191026475002406101841157823936936392506804646050978517207624995019290653363078763052856373510647696494432010911885607360147134053213116031313210249171569183641461164792821728939857145619398476351189269129765965303116050555442950674506621555272820903119565976817068859391320691124338261946235839268850531517416804700010807355721341625572260440401384940209908114248559636126511560906608957340215635807083353180096727157425981704752346494749626455334830787630206948368710289130273619157529065690023138331537806627641866616585611410811278536555831619240811889299876506344579700596167286630837668927372334707912376441824169770432605076687711768555674666727982719786675814512289086133927212397548515945014602854587906737782346618011712236527602818017597754103373162066970000698346093975545665092957087318881439147636595907195671096782816134876436485185995737288589313947337876196185673770322555325570493677840798853155884406352262290989621153713089861675246807444899699297061783057007973156995198678564354426321190330148877142803106332806976461398745363453770125952020857288486502288291437640331174564578974662854749933573643201800780208147507853656748700503136834553743995433241361838054878570645929138201963147607374888451291516545720388068757980706385799380518114478391852982711803444306731611545748440792877448113298438522787638861980473904429181666330274812599668816561099316182251065706225701111502919580155738746631798628340694276008899346440906842686318433183196776910455027562253717637752013589029564697922130155232776934041118757318985404171219604364224917601978862092452344953194055249494678348397389894014156372919681630642699512679229863143130305370838792704055359339104199056012227754365169106721363233094947770075694287684746019427460337137844975424282824858969235650825932505051321032114174014125698529861051135121161209776137364369661647813188943622843877762189147133597132116613837976391983140201210302557320899215297371596677972932003314090180919813393651531258401834861871735684430417477502778306202057814776533736226206201013561908183577518879964156971921904422818069484069744987839841750910145151849691146398828173780962322923678560343635167776505352088133526434053982018677423181543532768941315227986624277502242972300144385393842505347285137139216060590334709960647555682257036927705742626056779126373958834523482381074431258325368161142760798834643722948977318504073296584857730610782037473646873243625184369728292168537091220079980640398608729452857170815356096085086147952916973040450710800843997419739978126111837409004114410355103844119826965684490228782681611134404056954117754401836645935918753463901937003330561501570924148422645082963350605363318231802005965276927452775407053590639242528212429614311153864300564490334111764689312851831251567453688175931698197318077400128397115649039156157353412753688528287949164499797126878619190303144441752604657195846461449177503633124248194234700474419422308676855420456348234256850836108211502403824023573973606360956137996833055397326765791427598042973482210400241681977875933922411733932650191561289170149977081571733319365755043826494027710394641671494679360089887476762005506109371236574759370637208385752068871966804091458093995757619164336838160666517606298774884379654339336456403382875597997376194805806783836719311318962230382427277961522746939793403408479591762190427341953377135965257329553390005678675777182539504966566653239862002885337913832301217693009707153510477479282192262488831673215178185419265649429150973672365527480295026594471029499150889102960668992874325202218407042079275011634216328978886666567114639321354595807364777814863647203606991607631763556351525458364164599501431593652784689191232478984631898947404440699373604384643114215408565307474955987526104360659975317549503375582909867942153003389856879731673992419474982232707793050524799514846200616192802426879678095749054626978783851353788962553862082789778993847282626884814559354884639392343828973635766672385228007088355531837818120114678120386838308947338224270776815106252129453457345836374433720956446470426675758893081899188084521007113418012533402060999412177680452117600909115847695711278257178526889955867224101000354806359660048458071302169473866946286510863234100838930336289282478795603003160502870048853980664097445660270666777493184810487165257843947637807320950058972707232392001792815168066663403048473998703235137762671396673265332023587625004279606998654083618517013589211190828268985109589936103473655566352180010562604409952860779528523643601155326717039294517664195564723815112571757258154543641103758769447254220559346605021985177845692887785394783262982722988559163308135216971519083986517170378327221820680871663833482126371713603701035523318131389442792588269460599758969905696711241641191924772450325339089912225545512019224212281305076741654694979787337252345354221108308249167472652176032304105823351368459334948489582866985705102941239471509283927241491351595436210049676661869771076454132592365360879012825549363855335906395038873615181211995045871832875598242086046737650183697526227226517340289384176762158633934331676321455475559228918213563296306167392314762209988816297714128767711156656715045241588922782884470553221862453590389574103137152425576490042290975869616078658289146194520663783424190727354908807538434344485489476626870568920328549581602257638588424582409070724552481428712672070074753309039774063773317938369132331454307422933112593124760793087617539072018139040133935683856621304082241840854214185307261466533076958617804252886527971742205067220566242403685769165762440711823029947606978067667710268461813166126117546615392967854619477377486428171028629014211438088767029704292640126351701635734117573972396503666583897072345797658497734626566957234579177276771038745137552254128595239514567143377911735838159753732635270713831209891737210739653248678285028757580188966265110717649431383806889753943910771444075552869493453721356659952123787797656159383368904661988773454356464728318724444885112416945285204563111043335888065492888994042135083232663525056185338689262238830288194030840709310931452881941560326024505777486624803842692334630773258463380909019657714541006821469543848949196111563615691274717717170185289695022940058051521814056050960851470528517212410494082271319326615847071894799514721097037276681038731617474903868935103303831327787698208095211409563531150629110037749961252707385710715874012879314050660028458164392693147559613584198093765362391389557513946463102255542613461331909500166182269257519802682397098527096635364626372702676366408421365383295434407925372807179513820332558204389150912122036519381413876405704561734509171651760804134950678258532234666670487651855777793305336685229262489961542187762498958384570260594542963342086619897353567455689706152864699893593007855485383946088512049635105582294117519055826264950033009526441107565842237678963683146484090287190995852287171448102353587545262953558821587461860148377927625613154010500907415497615030476083315376651320527937435797837575271225599216788267589123546807656194437358811155118448417946481270485443124851934519943038084566281400147880278823667990059156648641955339364770225186422612078933403505006785102811688592240152300685510843529541617551436988316401659822513210575616713763275916585911819507421360977944160072747525468444298689072972591693159631788297998351278727366491210442569841982326450048146597553130461277073865988665578117912530600199712384513032984648837929261884154598530108965720038741431293103388603233900748878756912519784833348179995858620392013486109736966103953654042244759342199877761184723527836265733094260844812794138763748482123410286704139435463252873641243327327171251762490124062554709363275585210585230469170893133908371938138319657476583165438754825453641708921254412887000686371048444185362247827057516477033114413237914565058185618680607273526878374664514196939928199998259080218463181825071819308653480009346657145906288836997572422528623313968729904348525946949025202843351815309694067373448636051246750656768014457240543254452321944260299530579740499190009982939419088182863791104193245091038890187976642643933192032688999513991446245187129151906922637506333232486127624626719750797486099258343811083801303496990638567272618352968709304522710325673438954467362845511801496768725595595304933772379116191238209755818387094286268796021808158691997980519034998474070903491636740009975608610077433029321477630618441912529287008603482946191917475870323588070796394934520414523166805477956397355784594887091850155521449897713944684756321115879198657201800605250683915083263024375288509197418949282683016898486767931439148665640173306091340463157030648105383616305821375755565949719864572142493598811507334877743092120960278742376974842539788504029347216629801945523558545074235092883155440996583641500678224046902597210274970574017154086550190939268442866353249961180852543351272239160267171010216364111296900601790517559588500310107178214082392425357283514883842102147498271514123806253892982103773254562848455588782918604245216777113743586633409060318256794344446361754096077980833986476173951364333074765047499183569534903475186878623766080435322572723722010553111497049861089686024607811346220535618168276871311144468263713892003440411518307931010760668288881911296725668785984050080688581168560315279702469568042033048147044691703119886248680036199079075610615374286742714622228199805297517637872979661885827032924208043280202260918808618848200325865599136760086366792874469802937403437655622328048923643834803960633231850800134452465551014613354696981504757922559386607358107993461282391820903634103193918722805022762997644890859220035328208319000152813364549168295345551595890629625523920050524316106095463786483597238072698539934394530396888780691226859139403416173250251967932839740197086267593803208547968846762501176898961917416915873865494726821866401505585165480156140124834074555841038636093416322255459832755067698519847827966699343289520230625409636148886491898346328224457586545592097424928347548304082760155352361731510854084855205516290009874581173224072595924245815955900415390583038342364698916586685572851421934713062878802545651990532914202822123944521122603090666364191570243337223930267373504696967609621327598067318542840690355052392072019015406241894599144580292938452005430605751965583835387715395374017244434317465521959698859797411968119804583047457999338064491362919872229382816881419938723658512246097700087823974180304437740592418079032922969315387694414172810340879006999146393164084384602781744919158879496751607426666201429342771226168824885486747722403162127320420701677102166131063990576030147090863183714058115158391897405197096376885328220675511638287686695328362005951249943683710206049307024168210783350283580282313301884282100322390256668447766618804335352094347878866789520300075703268010401439674691885517102259261220331589118437125688482684508175115467155891829632345579164935219685713406099083273285142026385213891728701334751735306334564807739114091287703176613051897217184712789546880107617769436321437291238945819370517068469743821046310120073284176964127771680661652282986538852991098172250316589931057535297210232706214827005867853979501189569662172669076630295687405033122365218349371913295697410610144068811062226301547547381410884247256630497805213611985811403603486572899881203643997983556662976681374591470600489777322435553201147080477641598507640154808362191902398603742353668249084247554167059526336502674175846225949596369222660533032900456542612942048219151758368598990010086807710674824846026909030838192254010147887751718398694154377249613873547267914067716562135166141779691371546788872428355273836700540712915935800294113600966854111217360337429656610615141919348137778724317661016003354838239892142935493220444316067202750736677011237877192818633214768427414105636934284873615430755288687983588890548388504684444813916235454569297171815211603750017335454608994538695622812639760348059328666249444405382951657098911053558946006790804035504000907279301725690664481330102728160242587019002645439415522433858088404167444060120235480685700996921986009203566159809351388656684371642888158763624891819723649114498555236413988424739476060912589227875064790475567114670431263400818988364514672877858797287163503348285300582755805408906357347720671315234752173346721109716441200313338885261609934697333170682785910003482818367444671025829597492890326234182351397148848317416005813024858142121454332925453037909345497112655502631145066430789433676227132588219270475854393461216930562632754799456254586094548569174107260129607955917134481398770072980676609844875982800285560449642375942734497697595998359598481799061557849434289250730782515755084744065098585055568451637855747857154163896173909080714449097864746286661931679363025312375256946023093226656751742139038615226692633742685473521908272286303051874947185881944083987156052962779689151699635015395698336167231443793578636266716472096974810833099019659647625538143352057660977910940761970499643970088682691052642294734342399169765153015705634851307847045978997170551769117826366531845301298472242542903999708170361740168892140026123372485504447525016136114805228278524399031641359278905940797676123691077302297166479309057853985861878395033177378804699463234762304338086195669752068923039948874007475226309998105769849143183216989771596943535852000930798442946611785532479509969104771939868147622821447598647616866760304536505128185852373082210014488210792953159509192673897723091692751840231550394278577791236812999546843956605970930066046907478968754922408714918853401383115228591035185653237890870382820025674384679223079309679337448220984995202281849433122741240917434310179113972178086198419160883931021180854683107108064778686751526433183380807847652214253095501148568739335602627382377337696212800277643149553107285179525616532947466480524482358579488405780288987730716773635639174500597012566721827974454194505978473230061423972822855206519987310285096033014698739416493788165454550532560738013047605749184283723991112798293943577135425100559928318586069201291011953638500192667304404773720661552330603989950841568523918787861070812171236136462747992159329712723951311172027707213705898731607974860526871845987519911394184526513633474302461763786692507643622871870813729953877818319532368925962490732919947079613406533934563489528821604248851272861169753155539114083487690674027810455426321745824202869722620935380614904661728984561842472683393839884072645841358528725587482766375405726791284277620883811081462115531928121580574544578444015232291202146499514678038273941546738843349346630128761095701789211782538883353584863529097496114729285919974114923023202670879484407234599654369174713249069075077900843777782747925760339053472641649357097913310354370145422567937513962554880279425185967853409623294952221698555047921023357630405117977294833098501395331510115512658069985696584760514121033153281148842689095958156654830503409215793236462266156660991227411673422189459906945220002327480942600738383062933344443605433681949176592335140544092294034064518637638422768453344342637765001371823655446158852341153220709773245137158695584431218218010781139444176076691849979796031981595890958086964533866304409515357425221391312797718874697427166473535489875832128596576162949603492917364365208448370919822823503154466425093909710559122993107366940277256086741914668589030765167202186996158094589558519606862508258158753955894910469035807441079081124785396371288382367255225883276274372460543114369773192922831944853281020855899188106356594473845097079752441665137762864348674320900402340906223298528222641409657367233993799103688326184741193618572720936159445220051665367912831883434275343315235572816291045357713578815345903873899357039155170923704501625980745173599038384705125356330152271531166204713710040738971810770587971220328443841024844620744609318136742214521188306853290712730885388179672385890488054315811017912643620230583187131443085232476328811834158997398110022864987688201704848613867181371719189856520170676519692844208969322274733977521635738457954677894975279986181179065061667018559815532435049370606235268514960109330317434197308123832074817580075818188886934827511506318935480665508732546823520186522930442883883135305015594531141743231880887505563676293273302754243365279721565350935076973472201606134548746491339420651986897818902795853016350377952447224281266364308229750900452280082118498295430484293753245474701990090551286140853098531314077570826530054975185773611436468871169651761255075039052964509504003535337573116773070522507761398394366205763480097510388437580038726906997054970094739571791903138236126663476662642760342300595894532729297014687503260797019269284128586009790896854313300811628810433467011731313975160151000648492999412635374072817113478679391422694394076082177626991484324891914981319799938357172787236977043326833338656109674244758150855324304278384453910418025111482042277462157531664697613457526216839967644471432900835607253792384520824106111041792486884189907228130936031459490545011851882199601528660392131927081860464607980625039062929904460890981808042886451233878033434863155544480777044247143051067402290470923555976700471260688248831503960088091623598362143629850085817830333774379518122223688117000754454930650524745317978350239461668444832395440218803645185332587698319598315760536047762774942795846350923006768719337200033593989184185788718137777767207717757358864765953329031626150306424623842959723639075530771873981242702395233155184987831718647114392401228945669098807763543672817804867827433419708284265638029717725431576545674535299161162199429259599053035363871878115238483745020465515631440777752582843183114641142445495712049593610244659024245874701307389666282177657299898817633022055717618746832475473175709369815418326917091439193061329897998696292302789107699905689792362317344306933635266697509456989736201045578132712221103438920375974384343182763015313434454316688287786767455565322537669682276895240405797105022218708945571474082135044699034911615883582601397733197708405408015263595840632391135843701199372310533321613769840630484105566589639560754705994635496259266187241794763557802284378462220769300258500689593546426586311184103771533611938690557408019517915586446650344491072185094964252175165730532459315372510859231917300647772043010167797570399810444165015475293273438321524424117666394860740649484425366353232297193268642850831369788717451509277151606935995193830990121555861387036063291720796429143678694326656601192988186871864693294918581902911414165581479343380877671868557353481640116656093393624002401571563619554155054167427390223605032703085717749912495211959648886092880691689954404271595485343416332530290007279529253899289791218096048463406499015974489669250977636919736660254403843259249944040211904526625455693958092304797578144404353641036918368263874443786277904429638654651895936420694370382248086200676336548595572770809009921907466859150104278062573961394222342530852724380130644563449359580203933294258362548926346850017662524837892977911085403899924666377100859867066268278980996212558685671413316459189445059000823332687578045313993197891831665704317659981467802338899020114267885436546116852156555778637127158608947936898812438968220258443257952666166149528431234509645698963527034902666822321175614128964819873960729968369955715803155284210434791945290836436434787839733452510956893630547385742267250759532631895680457950516392224651202967447468507535831686056112424829769470539814273494505022962567502376085372443883524625544573070028980619591317337987684388258685995552077270693567125468901107928152398686066174407156709684722004655460998664518754796462680485895032922653964972771278118056635067624543941199254715911235530137071855219970514931544533289649551408813334609872666753043909481958837583088688440553001330149100497949334957868985257894595163696918942877596413968240500648489495112378531356958181049767100036786542363753587396633773368487424951648742417480245698000795814182872045688122493638915490738048093474241503823168645946109424499635718391759372516750842398032008627572957855581666280154433395536079892273744726823105775675000245444915262555783263830564514361296304277122064306924972339863957407719385102798454248009298619042406812670190899830359131219997225675755216270733944499469695510196481102630690596518134935642507611542695958752094130807964791738061417199405071653475874549609694531465596129787318851911031114703910404964777009798649688954621196958128847196661303572244185144799867517026940333262350217478333251149474877824254925914971748259874460076470944668425381182382046282482900914961081145749761688804181420063600486681635559767151527497195528090228215840557832942241302298891808994754560000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
40000! 2091692422212132363320455256764327026488373544387534341830741967982111505751217119995973082785361065166789606205119781016319696676957581942997960330630801513429863514028055719214604951981209395152310820912618659035454248057916120247113319519403183805976996755886244525394343474744428152291012215876121149773541800767571165833124465347361694727934296870115841274848932494037001286694767974004634204973971602786439107331371187066281455156561556186904736420441461580499411235636960476704640175898738174625705802427232806282563056864623573371009055276850232848458310267768728953128288390562928394253308190863656763405968632203206277892875870903126752225976855862695941332517471799141749887293750723535286401115948811769665518406310569322684538795876157123192485365616496825629677822385727423110770332677338312378944629014680848309451567432227789070000591024489171142206216229050069184693361578622431254269308910080396001571505891722801966151102002834387284354089359814869141067610902242457712053965956065153868811440606359305837784462530705806319504693132316824636671682983334415784793487429668393784900235881627003799952620954422395772354312366854927065770673580138754057426368245202547432822277418587901750649588707382443767123660947113446975885790035927572994765556075398836300123535550595070717527863320628678558186247298822112423162534328065668086145651930418339617149761914083839357326116618397988486646499081937021827006743106286079679635898244687073492252630173587218842484396573610997532883133279279457697480945949299581057391073017416863560200423540882673503099956244578641099192587493131631297229473201324292882824090951979702135258237933633854413379287525033369689414630526046740509578410216328539918065940850362499350136207143416802956128742033114218472219940330553039785771977704966120155640303729771032749494575600654944373391158908853311303183949875426249148432886851117781154141872538459122706367431279156825858429217116145769692708638026571009402271886633930800364121200302445776599805793173654462440557385110429283885624881831768453021489106953194294993032007437997491004324237279392198494485983370395341613847574411394992033212312541754070184070691955812553658468153682254728607557772685141428132190291033455298338262810516689174685247078362794668001502312268288358593623011201374625449679920356698174627751183648251452353914746325422365630179039668605201977324207113673070481263543748931818550744156157055798239593504003176933334876595277069210067861398291912116777110771005910223394339787850831769613846207534797781421991360136492088082276814193162266230112077286205711160623477175457122656858260011667205653491124729499078611178826047366774107877330970389059529855971793547348296418554403668750512207467345063550031569688643125303603676678411360320650593002807662022376877049579697019961503441848484279138345739632151054726354183068420217992553804776250413019957518643044083576368401448537044318474012722160013939361401659741624580882833056958992628804470810980513984913499976947386343506810892147889490882513514748595990466824286616809604711391920286985697613753961293842811080240655966307119236300195476506174471780145148117226921049319312507028634824403396958525697991536650997385055510447093397783647364097152475943591177254789641158951115398151970794466024316979466244964327435937193693626243894551919959440177711851891917343377617007135424932656611592438402574347638886978260357585813114581863908656379155922602114906191195510774147165299560931815108589457157638099887042774024557486733781276242241123493274417030876943310969060121194442493677982064246765055475150751373556820072267525009288273173882731929481852028227609692674350631494874488901747590667359939633290734997446447369208477533234119762659259549008513088106692051539748931958160838090822280107805766989116845888796944896988145909310510512937763747048823139744447966391730155639430020062266060669542452840992292611217015860023360853184111258508095147315729712090323085558911105268605505454591831858392377039412805066200739715323276557921570145745470791998543684375291638714948753610561757472332404421667789699380638156836068050012569295760217999268643367060213449502201416546254756575814127078555986312239428421121313143327638093671104426086801462211388750527256291987452407318063790268786957553529876828584837160117257676312470903865116038478704944084353091358447839286902016111824877343639292586825886045158319450028827451741728550768172063666147339978322909771953729647486715151703272302185132440871467514067160931037114136649302651444161589346597260783178306385828799922946389734848932791907790564447687964632465991121730923686916621432305771589373246644520692399796656541798381817141415200942023778724028010311478862222847657378597287474121840702606031919784395588895700546451257152867487167152275040548497057126412461818573906005025677012573092420551469645066438245551652997750713190081644290229085737121083375603603762064882720225278117550320047252075343981855069131530284251740111936589161036262577695564549296731465420035863679488477057693489634718492796955871698704956444385371639490599842758806240166161652726465865589405481383259465116598223614183005522430590027321263533401651555657207078408926796850218990408016457321023632040559030551056872491721763542986038507730507494682725911483535364143943357697951612757780213871852095621765014146825354911985297316544223335896099270503349168696439389348060059877642246874492842420504649798040843583245963833943593200988190224545859327697149341515464183526650794623570744059112145214831376401619310681171903579967160200922322734046218790238291167749270664670439491542787007648228491253421982382836270737959807577666280688639401182920401097576621796865325185463582633117972471995098568888295527737922987479619980427750215192795556390955225775919774444466619831049431447373454943361367768186286743603278067346289343215265650630829015721375215222712610651672521441726666291801812820141207473168470886280370628935925092010269141292037871440825176100081164948285304410008477738831120829879548416201513473983024712593494922219476199194624591639536524292580390406858843517878528086897061818777649728598053640765941854830970241546032317113695332443791833166231399167893939673983108407129716152761743592462290879869333286060862172980646917804941886475454155227351521923791065117026292903160132474417619645213044793243168696507471984704689155348270246928638480593042115235383701131154872773234964444428982277149539215808231381169237192883775502474793082367495067546400303250918555067793236393800437721956299163926556435312561280736909828264686725989494176421148055678077780602513724107416498839447831086736161264653198291500478392617664407107029738322689809940527426508095029557326814734573208912298154044423700529800065575535885854573202454028423436197810805947199677768614222245844932164454019291137692141242069920006817768608352713385206706479064626664894364070507685749154439227331264620194688514029949067523237370789486655405448925745874646599071566268655952422999544629756438203206349812165611281378560369015767077439881854194164890236123987882565251865059649684040287970156218620793151692833662603712536906676260130568330083306540254593264169106073413254185898339865150573999900811701594545291316225135555214763673351260055876062044030823692824290058329295796879560006975655143144562454843937568253202080791589787665698531287350309035936779994064491063200994716305352165489316402795961373997860060567028521845950771703193897878208540706803196981377498004312391325470092447099139337472293939412886807912415504874651420362256678523790405460435170913475898431412071076119475942769757840846539182415667919018884440220446044453771734793380760735380702277328932289462055629464605715728294552688460086318737229952117735921781921271890943641719437722364525505375514133272714375911945865530364308188045735715083952601438323641504676704163710478272874881317712806049897332831726950627635099356200610018303787016948282846452714118925255057772168523050782351623406178385156423148260341834332119260691317217430351491900294151403817173212571448114769190336679401328855343239268250621645017193402580406234007171139688586534104867254432188315212586739694726037060104667037983016028044798536745497758019637412411636954941573128444809352314803630004064588996463494096555995710492397999694782161945167053873412496465113037344573412033080991200026222775800674525939585522067165185262905055292988298503148542182514721293252781248656738948715834096170528163513469768313420814839285561733302331230487862963225382525330332847551404594205817146696537313329873104637465020490673389533533144195245615705111232982679350482715749857638843419245702434314313888244259611974181984660437144600545141415179590797742311061128649003422312480909645803492530748675281459057657284043233422422891963491362975489006904586690601443401474020949506178312126508439002792764270684993714748908776089391689438509848416697968177279821271134005313656240457166669876453894770101408288803281409775460161741279822806968679718914777696324290430923769557270352787615723336077461134659720436417920293752094605445723303585412718997125355207015383405402290198439448163931071251290584141279783390598141827131603850198246636083473064046335369363397096171465539012020595581089726448104771565021774760050205946445772281717234175138293718919910597573989990168880126631760234997265599464496444912860417023937629413071811264521799548109051742323769677403012263591282823273379146456909676717210948760792378611096990794215866182108159227180875181103701507391397685638645818814936921607378002224116486983718962550362710979798236100496018659999113531101879224179432701731684486615116299406135256067914907640615960783101555673985115832711960327730564403514539961785347214053737625393474247224284230497018823916996348385980086957875957559042498077534349513473435069481843047200779220395490981695798714962344032324727306406339924676379995149067735899875750515772090767121820084348010194373694356509710650385419842642541666709191152696760900454806994812140947588726975414494028323278750415255406876540325863962707227896002706808985893687914390316387751094850371633127002842264875649476680594094448779642141289383607857415136237820326709509639058216103400490199930686451685650133202607949029788507057169460245779515219936844811314929592274239173124524280236091650978250485732043668828950209854845524999764665016254599846723816062026022742440224077695889031451884686407712385119237992988550190240469072329216316472152372167668907058871077067901141756971912502833927351686094173245000677080672804799324758940975475700234846927134079277354546377782588797603870409823956871524865435918313944834283994982339099589167856415368170782648633458815865659208411327397464795676889989418830967160547449468705708567642513052192270127250869215316096337428785280100738962459251781229268487978342845255081110762242697648648123281291094209656542046971768475857849732314774578624564044482924402694745608592678961053319924229300730238124949749141137567795918183863091217567420774986110740421523957348889634236072549330279340222858815684196199953362695765084814299082838430882479413537315515123137244381006123529848203149077371883338434669674316712961051933303649813967352772888329058406346108316122835380217511536573454287850602101398486241657972594147936848548225164943099787731326784040628613029067745711206051658244161296194149542756755504496584881065866878966433908947133527248715165532942252043730742878745731333885937391357075801530785645702199788734177784348263856002754632386915536451146360920729079344594753620870771537535166079037287077278647985427065655343392110614820123461133138377217338118984325243564152180346714849787486600447988520515373980184349484482642905841711194115180355663653934884163908802692867734842017661683860941144025373868067443816602743584712227785375653688118786042824228407896112249042547172137057564162272164568878602824948806267689742716840488939422030478296372117819190513138591891358731321121334917466160645442499452401772580647235566908992018468822739502446456447775906168246835909146009454152451436731598145030951271295369288014897159345912235337749945509913245177101097070232444082165971312343576528194199950421187079038442347022616910946529879429844073124618169219003996094571604349133412735296010617829762773814274524802251569171029370296899794696511521898519338842978335530601005492538867985201365488066856652712272155953899658981147942249738017826422471795799757345953100553534605592095747302036373117960397127550340622930655799576335792572521808418255437089644215699911005527880962120228762606948667591107467532490082725030776476177035564609314041363173730018291034730783351813990191560205618649738914169055754824659588597989494868725330340672431189611236235278008368847539368044102858093446945146520526108856437019780397480228723741276031281692895375691552169941204056869736289218914658521345745695080765482694473620502111035509128894932418845497301527941900109868175755285765153241282950371153293327619417893758693117762564626990823782985178317376635213121860205808311722488386943312775901109253070114559809228592989824175267220379970396347875576371066237948229665651265026709622400147360001135369448548916361646607285395245353607553257455353138986232573641904018572225896460326642140338242864890943589622925057841555590616837942014789041919988582824942679721595101906337770841561287257227525078589822356741494738611587629019413155936987015645915564417800747964859005240689846765147969579125355974102475844544103648641274337353843851711321881119289926505691431295668406095130181240004033321322673503863911105489176289508450545622046459360574919909585476006978846331009784973559153072272184443218136684710158096716919386677522534253422862125909112836127176520193328850962040821709625274821686041602621867365107884651213631081973017660631409751464565483798752499815146492726471504016738184238093664739228361687788610622730373173976867000538574995061637745285260949020784541600127227112299408931394210523182171683077603737130948816819199992062841108871894555222010078162500667561373284023059288212399325033137047382103499990136300731198931053856437780285647332915815926915953867177890689405255634804219792732175831473439595289303349323213475318122242527285815085038044045017739996767166787208310799245924859442303373671083642091470188153641275908435655249687139579563577490382024167094294947085732406993164316279932851368122037802079668531524902521770448621190943979042386036845244110344726800515018098534609139762640156569193331150460323315970428158616181683471000258091190260298602645023853361648284717495173011754055552603036051144153304816784670000633666487873500047223778228441747623774818835522073910997247359026856215464921335081562909341922379792924362771122755403906627295053945277920061362245497370570593923300315580486942937192722812117969024382159484668516452766649471906185713205527546239721731858212884052196468088257271937735801291922823991772278874364401206482973698472061870216722398942929095212024616559781563433727843777046208818772949740464557926039846901287670509398230213478551878380859646080369331325230511669283047360951027031570693685101275886276937319149922493098998858812121211854741114901444514189952340153969740253510396635066083863666309140011433929639393280951879846090677925410812260960972709812575640503545063890604895645441732348561517355829378454146001783650554984368478845512852144532285230841793744072291508924034372029892312494881119963295731865277059004987941885574067758650301544888016536560500804899365400656288977351353460889151943126889286096646935431287168088072667082748434564942667582843995230257743512211259795784181896084953413241366876178980031279777407204531140154894170214411892179310516781994053465580782474862223502580778720270674848520204153535654222269731358358744157210500595934305253160576928381491205932894592393694441882343095426007402752314056734446405385773734075881013350131405223770811340003632958830049294202138008676268491654059952947212788732503987201395264066731031724569502666608445818916827355714111980165110062011077934385505109602276273401892304856785394423616058171209475526466850102686248914071771507318436336593237209324971167482998658076005103906395408005535010649660521570607880780414853832449443075958522958611341685058282223980734916215403470975841073595614835154837388186324147992556848315945342629077422012320870407028251373147784858751908925923049774524977760481210369336311383536648409707341273800718417801271533607553555071963788064492611005165990066190678098009719534521059096882230770788896589741446669679408978205764958068090388488683629942423740552004728616979839056860799750908892547260717961892613923111423892700761773013059223092466522966544365325174240901108146095890826066597658701341119294816874913717834924772143596010967611421340666476547313495957335127999674247631721470232718607535701490630392065855453458479860558614723845478711181120211951233975264986786598491501508861440029091966543390989054909369303311970489218597707701304641118819036109567039036350411465122159689817503588327747668850795014474024426492303149958966857444958564973884513765627083128860970977991541371753574003180829484732536530827742407585216218883142890263188379896676151568121733302458853443467765009732056292009390612692312892128760606635452271025220702225041604053836123632630690160821900772562411172063637432611901085301518483964184076648197694134067436062534850564962637045503683928926975728706425065840116413628996974655450811145941502566247000569398838954771474480755599940672198742811204802192367627193364750413200633965435332698914603334598459114343249885761283874086194829549155438930464615707667000565541258551502015920825655355271134792967701443809363031553911207351250311017679400043276951704373766675074119060349344826059191818486631459685366249991496793544243649132707048424934542137158034542735411111911551907026691453676898920911013764806959484752282235038220663411445648821911512744590418042853394691070120762301820650839899885492835743031463852827837115766653818764798279956513151607396646767150118363640575245425808468731766180006640962615827482259743228407789410813077042665079457715464086115278558414480304207550266819575159611791204635000399666155737486193283019320961517249086986700409574512310677577448093560216660550711564787124239289702871417703812586880442048090653353984469364472431241249896045342711662617789054495107749437835311400482264276975716915418018052300338415512712694401441779755034798947106277321519957804049446252493336664853926686516275128830889211853572098927583538305655899883812444169529679713568329085267236765459609579509561961642575123919705771195089710772063024017552647422245045800740257338523672872953977459268864391274165559985012767243598797414836422691336386798381615893450678184739401949127250365989898272947114839942036405754240671219998640450934815119065712953862582027659437021281388450896523409033401451425246422898311631705730967688559477312802363850698441279785343470953278918415954723532048174207508990155857886653048694301623537022569676536761535709472145216725254880561841662930273322866276055416148742157667993511569458791909349703240350573508174751008615069145317533886841738249961138373950887070587212644138773454657787695078567765810567132871874263665269436880137688468053708014361604092087495371920307762804863219945012247815583624162551475746700871309775539414240922900338783433692773779009076215680651312393087284231885863562800703417867258196281724635527433969547321623239549436323628457775639927478659981455787972831619682620179993036637463255768222005376656879581885362624796813870334719450379823459195917201150987298576715862753110697469966439261059085471398863014854281270825238660871229575884321867541155206824734731927700275651812017899319574379446596703478134814432390467830559998499268499224479676069745686106494647556342526428636676471776063028366169739692209137229881039794129048330927227395906419981793775302391450577004394919103633466810677714153794017508858213748814115053077130199992422290550135993073874317456714457271610974476982912857814395406174162394869658375801448880741140918702546875609111243855910939320540267951163316002028231176654535642311354026558229771144389378527719666596823057040727608355592870224122949485713683731628377333379338181466600477747006680104832694320160147500689554904036844842539137843909264004484572804433139192243792981407746616320486441509518849539863676036620328415583619941851473297169333536265280331986889837427837698692419995529375954112999880954707644243200956038748988281888186135039293440012012131342859282641176650877403958508672122147826956376227442479762466500522741256864616512379317194218402294626800138901988679581394781821833482571576896097469459444710285470254451338177465412314146810703986803633159141518377029566671998982628118529399591168977520812463725506877513259864505662354143833665481038450217190532511298406519548968693613965008125232735070041568177146715714057920524637950584242700150388416609506982802739119588046229006988134340473351033555028149796713932681078246525462951658873335670108067169831199419631906376981851349452633597391439812960649143200392783969798374166670255771185122359341691183496988977535205434045858670861483204908093253836766931899379748360031387765175223852435248215886037293475531186258834019131031378185094574111109236967419444597694083598503929799665863923036302240558579603553957365070718344321849086291373823646391640329065999706539481796668240705144754245848551199426593485411349873747911320661324612179990327239027734215450511252207137622914888239788212768704046263934270852989748340744933812904023074453773205859604508497314406005902072432513575386577211614913315511529002876021107625163971992547198045842342507811838168181934930545520792839409792441919930144036089209374500385505176250081218997573886378417160670317730309271548095333835205677640502587348472327046372809725285024982232096941325258708216436562575277865574560565553355005525071620564609269541771688728050286546013558077915905033507533762801657356167145639955027836359098893403609587332511500750698804647113154444487016525910495906683973568118400920829473415312688170183914534788627522420804181242279397488387173816888411975470812272907509758214838246481494161363403779686025834155828202498571314641960109282128653348261646417410357308543306809051611476991691980525491617527168483875782091590442277749879403465545358890192753025755639438469486877547069722275220027186992064959640242123928418492845644662164926555616804262077351029722797052308001198099114523644646639294686393580360188844221158483363981796476675473457101467425129876527366315671094956519880728536076781379524628204173315889908865240058533842452964362413437386404133423980436221788770497572675423111668772979795912782275651757519401066108222728115411801533551774124656988433905653534781976067328810032788885106900757254825748722725437221787662779761928614089400863026245184732857419338727994484565462208937111394168460707940378039267468824113910712036544818828883310751579509171978519205846263068682606911857441916973281694225330937505624120885178959007829108671330227958124175103825007693284286988865569378681522198216301439880888063341419630745023514537456104764839991923715538121435214641732821252719482409471353072986733206329195545296763964374897933971498341955580367870822268475285193522973658685821485533414993459697043308233728085613284899177361545562879859330331054136866269238403524189354054252658077767788225461824636777603197240597514759476720640619494387482809176541910909950920672536079288643219570536332758405366822472467639188207027712828750171803473243193604274504130355172739871319996235397522598938606074027420396893593906044997778421975519131430213591007561743710242829889118532762801975003013841461550399197871299235650556114104562415420271914748756215397092959718366670865951151506068757863079582246225915703108009527764377564614220762998584345067525428391381756015460676853544960767398500126857159669724059419365102599462734689587019750243804425467931449088241652978363850477632775941742658927582565185347580392148613320022957502142722419098742199498021367399117378808491747147240430500696290050848430588706602767245501064085228845982271453812762223103827068798313468511667443362983698555413290554666535181841252537751234322338373629200997347055654081059226237661177805845494348114089605820183099079400056131705247404700226040066608530725791000468673476923534848607250668631679206656595073230855024906161851843863151444649757237817052025170674859862727025797125115913330110417575415852441444449158717960796772866525664557572323043725839266295520699508076750684643095274340740081713295058673567034155590014185421871295281830457084446421680854443629140202508395623687984689766525845676452877127261141690437543416156057826514596701560939044198451079934771001348991451529726701474736104897091949011517315895288046575811883044596023098178524843583255180040353379805632426903076360112437136231067684195861221688531014217759263532681206173929151147903156481467671146364407277672445993721565329448630575855951997772837785614985019960703246119387291602536916770226771701600653589825954011251940017740543006047863312972833851846398222434136342118360218716826074475750127908921668498004724677805986626652813923385848667463615524676643606611152809546627585587106923504753078573865778230824340687303253484345856981339218430463416541728352696073546617806437964539277404001794050964292122660913781631565216900276528950087179223286772778716058805857248361496638845715626120874664680719320482082534991335319123300444353469081484529057054850580026972275902494797982141058266695723472512666029094100542858959461783352340735020665766296923144461609142503749554164460921496925923800569304003986550119783335002975318625143757032346816183326304512144420154802561584264094521078266303708101286637824552644374656150833935332261052070165065800812054095550655803113360114657722479664894297703824903059302958134873562598437316549351313865404779715688500716852534151176587041840141393843482523946016758942728811949332468913105536380340066920193371770131621935520852157376901970472590402920137000928444141449158583301453654247982276913255340974311793705558593976724847626620359961630642967758380287705321863855928248658943421281805044846208655159616414604766614749007407419091098215016810592671693477764629109253707416241278363084353989188503062080372314295090709211684251986381890891824104482714216354471266362984764054827835079137067655372566327517906786783582331201297882806468948203549300098566599188617625910016952767421502280937665375821267025493623611798727671923824794694148114563140429216357442483999214589479901469170150334489239395838302801781002870542613273104129976722166878946093231329740219405177903359364585857249138232586685496037317705572847769609513722007107656138684213014476520353639376168430397009329202454593133200258325843319353289135495616249530759639805117859358361290496575565808820597157729002292194923110561536751583880952819610364532967743324857294923270865920849470032375734214204632338911092401968976588609646619315980863583560778543413585508795001584515559810502147045403508904082822730807938764013756191052392278666179495153365709486697327965130079774924466138221699761091069054262707917372922525172815052370105521648081796178232888193133473540994548103743496819286229363433681027412521372402020612017393137246947898116335586095517163486057492422075102376288622336474416453286643711639981267601750379001882681734531477864056202841702352133598427682280002366133628529390155356174305877539686008763124501158083530014887123995557242506375653642686791568700483309929690374199966828804492627881726644555919467493784969066800839570897384481870054466898040842261692524278166651859904235712136152799995377410083609974903177839896046117879782140574092465042234171165254373236378301051947316733326225329570791695031265002415407510677550350438163465794327448722343201867073045126885522252302894660573794864078865783349336022436153334887293046402320293195517171365329730475786306147941239083221502080936700952587225763152214996033318379284321026011652240082302093766143161126170205027054760352261998472194923888353035242996633850310174299395416673771898913269074707026440387381668632152930964386735155918266781442762916572524612722995728543125517491746297712371220035807486627652250364092388650500944320307484626587161581025590465668853509107246616268085433658670970756505689998192723995966553810045357102899173934907595624270869993058844370954243804491244034218502728708132779087686939184702010727807108818123401427102237043196760629531573241979602243833843279410987666153725650213572853238335213071107396334475666974496269026756373767585595878864264452201276286526586097372403643083150353738689638843960645957544917216289776133003819603221214274563114332616617538262734368438492730997568114020878580035788146976820157050803430432175777369765572439093422855634474904569089145441910777950859844788471233520439290889798024270066247572855050980921350282130766005524743839777987635422792601900946464283045463720071459770962808918297360733650692412312117935863438190726210777664323527330219814588001571329732144409339518497168124049404407606901786784618817726292892711675151610975060765292593204001888494808991836209167090654092327281494851299153248295134125325227032702253354903657684572477372906451735786637654083127300506227459956734347998261291864460050792878391567112169031341625783404991851059517972603867721514805238115679134181429472298538251526621378948453626719575122825309722104649020320714612824299043999950835360191271894734261887451550543133737989311806309398987155453183965545318705841543318145601353058293481900717242590023722701741871748454499081594711427771351903478914353098215082162632436301138965164213840538737028391573717247591875667229907479562906725873104700919860658665088258313603280364065209523698668663707203326416163692314674250861568991511255300095030141830777837338186376626686328489362998316278076420096501182777191276817451077067479440163544780436524425099121337283514795625130003673380645272591013767329074799197030238585061185738592299039541220829594256502197540963173961852087266523934735924124342660003957018128265391877887928158498901827167196998989582011592582722729416819182616922988771054450040256001082533337908033444721627746284818254649961773811969279412157099822336855359848847030026453970263019102571365819976048961443416681195646211389292973234595170328688192592578548997500132883452430866593164668547983569652179786809974570013199596422471421866973700407893272407121716298546230410942584852468150993797408209630965122964132507482221902377726807619511220536736690887421150931371213777035411938326901674918600803817963878120210913329988851249406350468378222039982008711757445389360871528652703498994189839169237922322169254719636108957474212244962689659851362038645667478633488892664362140740638075865663357476450980121662801344174463941339954317964299039199144435724492882104091073963945994048686851703344346395249100081646604120802820309360783772257680448636691865090878249120698688081650316645533233059165729437272806177014322353559306396840701292833148139807406185418090230960402670805033441803202045146273487741869009354681356807699916356840878485074308255548604672426411950696286903666465223799361270778123074936587800600988505390675621552965400482610021106066013441955983118623461895608832901973638487500903656114000868603828813679863572156321410833418515792433476006001439881978158348883239094785329370981295962034675501624338149685213598019887067840429846049304113463516085820498423200000235401483317207415256583147750262587316371050059434907676472927779387028521029936711280074498398147646647925751961775642733845267689815169509974138677418441622583561101420100814537764478156258163396426200158087704190320292032068849657662074406932564415254224158237945964540745520053855215096350990798476306110841701827260343044809201027373857190668343618958161832854300035691885612598451852155165092747321024004641145916319133892941395837052199491660429873358534329885723969475838943887439394064812948106531501927042316216298384065535491316107365605962836491922918568782738012314351892568003852341504249752450145258857191326671385909676210497949350893511247758537849814995855537850278455951885816337792219581717042896702371602008820124907185873842566332159242915187360478124336222574703160411744176350838037071883876241752894439535024769416527598305050229035344737491303434669809058964431018182573284348506912834700895997738008604426733607591728119668693434594826237939446466446360831966217675724899280919561220838994248671724028805846936235286734467314461347503765723294165068764836023476325119116959773284809175494750836932744606314886642872196811144436596026419645495054231070297757491738639443568604771868515416246603811846333642098073345015476019983417315460787193534430239530739204350570022471192623991174553520756710170962415071801744916522825565268199505303408568589984416598449955884134341262496600971717893944280613858032413099776560821089321606958594741699040700033257742866816515125581337327370657704632175414120132682557578876239993037187028699012579864801267680593768929248216957606553333372918819643318085592407163461841151927780666678639687985325618663509308400962288595845450211350155773139000336459389990141820704477315538711756885803193794395376593688728978746475415293684248650232241496521557593780649849520489057905949926958689362684554525023438179033336605392211430071695573375072870118094737671070953678357683021145882721776992655737630939724778004900295000914365658552556717462575231840472573267579257223617354720507039250487336877963544387884343652003932662659854643309593250543581920162744431897687567549515034582158191842900967359139136823460586256174913473873810254516740856740268425547195449663202392493330617064553073853085742813988374919605069675013968952698143187805602970052926059405050459821502655422230626821056885824016754866674359772458195155419065350380643277959151387979104833859831583463742245773902700133410250991751247564842582490346795910488732513348079549940979114884270606478882478548167190106274552335810339306864386912059692352806158774584578037736327612652464582180334800693415404191822216163747813965589188920338213670559933432785714571022745632369322701457931218173270766097222467815091042941767202893501190055854686810762075995333549813122395779844299970715662950515745674517444164692864062083935171465016712278146432139468680909092804203633494739067719706974007854738839431016965639400112761661041041456725086721900030628859778322305854382596541264684050946390864228310706646573480283922646674854957307864838337464673782174754692601534065987674115332076280302428995322255259238075834851552727858626928852734746042497757873605701117460052059996123577399393530119618739698988194668979018183988140582180758908700680358204358100556354535604937416606732353994826601180841459075514502861396096074334259071789420854905428235747357245017513413317706460046238887348547260093559364367779633715520548194776896490205433147304169985098389675741744124835427223833901262796980914453718851207019428857537109764196952679865620832067416057809593087177985230437010906315479693356279788708946763963091862790678777747101023064072618286600622686428104677948930370567362667280913470344872812094591863800477613525579852605499648950657269362079098696165725151197402087577669453739352424841981740683733117379547373002840605229869122029361662976085062751683371083716627704139025114562607246079988660344184889085472079245158200501719938820616100208805037892874027706582785992065207825589272161146045303207265953896582249885236195497582562709956680842691109568264783601315706601725315456122509987769434156778650371974788527163438207216336366527287569750454688503068176455287350946926388627088413223989253777681271642349368332220805598072698929240184086601199627342036277051913038380440248290725754057017226743843336902233569499571704942377736120059204521768079725108451690020303188151512791418993051907575801645851019746628764652930828262577751352159716401243861197539106878602302226250692442378610171790025887417203102041037769910128803430823552481375028372464745041663806597881295799573302005031889701043321747150322416241809653836825790686870412579904210666931211061874506511379392322413642247231626479045047245570371424629143396863901122580475052573691669680206590691351502072083537841548688438376362217523161581553113056409702844353288143253910032183833500609605544202348925122849809586448032303225799401239864519546037546839183231271159822322018412939125505783595210315083405914912493275235370386791423747191024066538478027194950787466084508867441388348343698914918120201389881515301417738305039805861725195291452123026304057483967105139259679129309329964055322078402060446087863695170127454774527342771668818019412877523791642779993830850868644713988845770172145345897047446265397828791671352045362446075794152761843440640032940199131839446967873398130683682331607490886302892226324157498766494260829308759802832843148208911167802185711073273341726099289661999232846474880884823925319959517949454780117554128246766045435079097833544533659950413663874317734061764426841228377551161169240587979413151578440181771079899867280383001376235202919051921745642013381884144706285975602183830629598570997375584034787916143792869720303278750578177537979583071443592981341079340220440295446932593716992138270068350008263834723792139726649784283460037022954508469913123737873761961081926553446660625136889984222053858190261443916795379802247155983314639506369398957977408031906885447334517723547422761918772361151694382129331644231978908731395728816406946189798435892935918699574801885805121321054074919287187366091385880173807119665442813374966697945661880706397231959259085451983176283801837554290502677105892840029773271185645696618434961229060215540389912428659911992675766570942724540689181296349475703126642770690273479689279578432139718060075327088559795958554857872631391081455089474535859221148710239830859732788324430743810618864032713740606846147092720276266799765671120708952350871911171347837832040685722924437244984857897242267898835257277645481325680795956472571700288201567819875077729534410277524750012152109962514394248930582880815882624237653046665208098657531988060231916963566901634609567424097764188556372659574870299827300360025758405227539871363875169066780595239590045095524821958312239648907688002124039612492705739036292774068869427290944163243368772659675062033762205204093172085822780220922331767163685990434272738455701289534416823200257450753204944649039653059819897479838833360777703051507673257148863455072653275970817205853419774720654437261648314039730876208992012961530503264656732356617037285014738393838942754435849923974938657981202772881492728743230808461298809766329937251039079460695082332852287767556478897235294314680675502227438706448468850866975869553853930339417399222312419213982778270844618236887418013247082473809522669360119575961551447902186745071672248696531445909468928777238703628521558994172102768326096990424513109892970860702303632490014359438143530365336242685366842291218268476463473637820047938829373596591896635870927128997992068747501948603495219081721830788741471316945013438505157074841853270726532570711401206727543773024030811037849221972165055320018328845969074455054557392362578654708824032510114998889609245663592843059282823009617696520919011597314171444678845092268779709552390210327519397417354007449244671653468288091378326324739897669884623845941203645813189998029288359592152769498584650953485166881449270139542195648640679592720255897849662495128346705209294714996732966476804754871230342479085575919004923904042581633149010677238830567284194907182793930306254463489031308550035267460061831501951729936728567270505722867513559294408196071787294629663470669860739884239957587566219953390883472251334857730805497503441132030494453676835164529093041492462675439840445621949951212570325150240117676709695535010259746768661080467334743070492606969788971007967448993507041395352438243913734608763038411653756323176951964694415753715219970390918451416237290456720935390365854912572412567825519342187674683880041860851110788646743117393246583548297257927976181692843774326783891574840864475504608519694067112880408307745023991825198026357943031979815306740817445331351344469557556802913046304791580476056354841464088484794682344151213934357163580154147569811653312233668091789529303073683518958006839821359861277499973332548114741137829733304782652427437331647253203232804973180598635143725314338557660044783570085730435644086143975633610945944844855467037074524671272041891391227709279453555639889964680438430966035378820059085251885648027445324765627018025977370738770254103931087779331871710361141751232643951752970195635331350476665165279427577227436119426698973995942855634312381745103332208477210629998549304821950651973061398548078471474120050608242448490523310130826810881970776325717353034563180514513298493683968433934261587057355927734058072997262504191947827318064581240989503852027999637125499848688471634197664034767350788397652329089173776863187450838457501566881166232624810967878564107286930574005902131542116326007272621376462919907354784810755801776077463360567438098513826810260110316593445640360296408637327007904434041875063188553213001045612568836916954369481645641752048230644221985895058416172413568155224828300526278406703504855965945027153987409736261149919011043088532885032458367763896262787848666245628698042728460372877548260885253569300011694752376478065465963723826318192446560743333780963640434565670940572571874825071762002968837916587200074169157094347261031975536015813054293058470438561748157603098542645171751228350269661211699865747679486741843047736129061508708072712472281030592278775086536039262936216460885198479181833387211810436127651224185897539117119652283334171461977211268555948690777408608085880410867945728424467538370059161051710125357187393226314630985768869353143490212003658972220428530708084779256263297175271434712386909386032854831914258569791854678373940216593184147754837730153617022323544041204111824455455125387998833151604836144077945675563154584973087658889488026678809526710472124116489561540148386749759779206882219339780917844976009773122124997572749605922032755702189525102025592090434166669368673818483611951903322605752065514906869143749283955043239881596674489099862946682248408140394707851981975012461055461971063898415456539297953878983857065080761164788869930304882853223490180896658808102519018794336764082692989520650080185646295094853914879851479766561064175421922794752569255727560025851677769885109628630131256119374177991985901476546528506344643275062223611192153269947691971649945461186558581895776338503690897152299977744905616857065553696524597718221980720248487871988007856225137886349136781280982852647941758120600630271020678772018164116002414246157622975896450392375875912733593665432504699342525387724020930084271843650270710690483890943188178755138521571271719833365755243344863459257590647175196116693954389169404404966259472494498694543237183260338746984315233477224821671870999576593918266676327220100565120909779322712417645229926242783423115327150046847005698540235107306902379809535235270459677490946864628374526229993061701615315690839956636966104042598830562483823544573753878460983538299794804636410421512547758913896055024370937779319083993227703452007301196582715896165138433332808661058834310989825566583561730830769977893946129159459802048811171557776143911806270697368787370888328933744018049806103191388497005635697141603785388257743238697567915354939862444826285247555811888128828654073054991073037510824474588984990526447560745802593291810139807509557295564806488713565001677761980494831588376320686897348616016486486679079237343469287257040792974805176559870700766422235912968817061235856426156175858429750497592527012536736811781157553274700368918335494710453055593356533798337742552166957469353793464136975986379173282188439881675976246317314800241062655570731939016925072427668333979122877438404449508247693139319193422671148672248808840475741879281417983967129126600334510001400355378861152092303407411399478275162605980339336008020879152925443182244762217344053133134829957850203325455802231033653820740411575488018668819278374236051368749032930408965010375769460251636359027104063051817045343132723973047235159524963447359009085262441356489050242821884951628028852159611977402101423536317479969427409755773187369456848209842086002667913677868999986591592916572506505515595237628516088594010020318069212545624735511197720154286832207533159486904573993454525498379819925707200004517804930946715002280675630991571531910131622622836855452737231024561264683318298329873009029121416700173682564575543907957072651995202422812799298986742644434222343872797944550163406858927432249706032816515744308725123337539055067595089464777274018035789545542869862753303418462075891435265279152901381897874754405615227691789434475177014331630924818323968910924851421753346345387675540728542512548156969353282149436104556075114855558827213064891083066546653702558903047814811689959913949384168881958981879074344326513851809208312006596432394000445634809805167727508018461037455444812234267958540063236265304156675829142953620386253492457554668001728589279767861420026664079741998639558211165106476240756246912017212673304395955030556368533245839124227932059638122441810987732231847711371602881920896589299730627682412987173804736110417161290121159084510099796515168484259354999731834010512649236890346894471497008817199810514927159336431171425608512317205757836712249391561117528934670556840817227807089298298944006883769997829220579056254645185991520458106770151092686669039393003295616714283586198436742468892216149248020686174020676594167962012781624554748189487674206647720175384386334117683713436171799440444500561547341157413752452568323637106623563710862459843523819312206265964615435441546879203152140011241553357964553128441006614085425694055786509382446362794605119173148137515626787489260599038726680858395713823216924236815623855250501335585131353677723806686017134578844351727219291069495853460402098403393328209661533683354098025239689271468341617573070115853886917439485803820615118081732210913813839188355302104234794264205974714236038960265322597189444020273672331768674497355128743972558574984412536516288846691842780324765092031535332181135842235986646385824301747915436473382834714220709531844223536190869775755389193908535961233483847331670044812251041742248100428218965232144088483343417708993934405177018200699532920452613092370182459486040378337272371814276511075291440192441338353658719020899327088123313189352545474794270741439177974020275924106299682723561339144896641165423485823418003178514559566802452223395847440890018025083753624083021483848996780483337386790610452757158756738862329623248931211014143061079767549487177492084131677151317996918361061729516260489375968936690920211121855167018630373780380905498887250619887842380844086799610293079541211924407298174722560429232380869747141178002614375875080001084040744747559329902199485921061995411998737831890435573151580228111346076724293740729360176910304317234206349309196720726397323867004855798394093634190831472510747783567568642231321681885295635202768134671645698680901023106798804787539276720256525586155618584452868998228183773636004968749915255942467908571403469887673202165724714305694897881341282944396898251515444751440794205798976961216498450380287834261061274591673463886106296162368610922717943671122736746176429007116855411815437585841520065959332149557240511230201847051462179166779978295007272389397640247687141685300415784797111197321755778634934818463746161950633045069343994589383689321952836856417101054793887025520068643205365583389310575312079543198839026535806704893268526815807044453275254385934418955309318340393536895970129368282704120231189898426230617514845103595908268628879459333124081205620291614773650787422162947515161967831119118869676945348283925082922932648790546232419423807053955140675786343275887825850295921253115853787243051794164093717911420962207268466465475115825763366670732436644928930708019074882991277085442119015657286900616044513461564973423918126834642817608701857699823601341014980375592747595372285560262187333165049533272642447728674662643247724922413707321393727975744024627016040748388809560118175042309246662908741235534857823479854989209729314114620780454992790737257109543807299765781624092803227259950486359094051926496335609948575755106170300330034920328215997052650019141864364961279077979836446618254954453161479287764173884422543996911018427397720142491927710970132450320526434352494613975198756403641131471804226625497562324850207006496600378431553472639340053037210743931945942624607084929047674970597505164394147477706946583248284369857935037153671552082929757580541655303119149477384387851813241391253702954517617585610929276453683089568131361495147744242614425380077407767060106058726740576627771621253103553916443621683054996898168417775853198156322568346906306381472181328121801206747323238339522156743212335657745615007474840401497215172143990417757078854967857504885010435188965229228329521756512754491854100832150614097771733775919641248183995809440273425834937277083119019246944615567007658055815804260548826383627360483379893537150980145256490708541369935311306405111040440467862960610694196666407306144925281760236328402306029496902290191058962629575797508471106515339024956344254868861655961372339905956790293821124786706173775314544629984015574677323774782319333672529836258666223896928035594511713119501798787458798450388276361006395697698406545534074491861284151432105478138071281869739880124805041833181964775277490738187203656226071097675419719053460911482891309802952804409479123780647260150923518748416950489326373865436432546793374199320841963786891352034206895885711432798155642903568364213192964063743402631457705314521712994898176625623505490218076463355142379791077181621822637269150095966597803567133190150119862191799324184849838316459521440241952626840270241990123732818509892119878998123022906779028440302261007233389299738088762624172799987189707291122111614478215558962934626456212520657128569158252146689978227380488164290871946740753087193239683986143803196916688873567447089060286040583420210473413997092452351589971572165664220473301475195699896831161652175852649690685323935526974566545686163344323218537284523749645703778758363610098799671968459498355036072555090413642201339295643444284099278292985413867561933975512018436333877176215187578065575494404407625222246441406343848458283341086917004544292561560078076854592744096131515113809512656339379153636839848384961290290545447404581946549456609308376229001180148196446624838450285385230022193756861795768083263791933931134847223798847910838461534104652714977288314903692303345175967260374732750975347138985267366439428657249054529378069934190270367770532205124434207850991313032202429799743869892674296749785135861101529990619803826440950989304070144034335384951557138127198176010860455354147809189652014334097710094896059100832070885553254180888220895150164922889085931193456410299973986799778981244537208320670282924555665433190795707497345573916696429371958453681522416730905315250605504131409129082849947552693749444266777959956741717374668799498036346030932066655925295815958688641937541800519916036509333906317080974743588426527867585763314286912347492906281977146548891899306401393803292784870114436840038181823340250765906518863486121706964320595600224114517866294746036529673529995040739877569362137906198814135320566683726064822183925776552700083585821487757789933793766776037152231659406240573822718219121876397926375582575834101005320585564755168513192057063450423577549285067492094369366989728157034622019944790199739261181881200442275672085286651140072769787863325435333009544737215976072064159772294632612228554569440777731211948325459370641640371408919529235170741384813135290720319042737492339107491462673277575095455036927384556520396680897282900566920080770934512405072914209481742886497275562742998882292925025200657477347991646917260833523005724830896298172183251416144137799584040989359317551499189803148400445612080913698919769683252253410533683184281194693559152892974412588011667794430788637803253127695238018111391043141444845900777028426304769158069325902737399189304070781346882008922651374108669529240615286290890701699332311222569518814600402662940782299967071592031754556504187106506680819645056905532441547611453604586157062189264983056770056363305765526668878025429184253538173641645671714884268759474441577551091343744725610596231842269479648665301981198368990690951064613209691797101780715621861537226700448568754741677254468680867834221102360459522517497238875916450563595738646121168312730551512477569322819009748475593857855201142126653712561823356375870018717407500285648020560904746401272678879253774130625241899815865216813502013847709074445745430007061580342443388232686257040715981996306109633988368553717471683102825436820627050499503465807372248499846996644459408850977174467914233559962482363797667950605083042675466578352136160362575570840096348028075396760567878759266938201186748266111937721722216332739749060047607959522464771750782343090125314473951788570582491246381864228816574906123722689549426272617635034629463606797120847941993426990774684297550511262878589916516716230474814082821509880734796337912187085572005770965282375670751847060884279185909082823226698555521807612618766092363473863253728882659003565616761138237923642856604097796895847208630712272655462218218637898795211531537412380949027652066117364207231227232142142017963760792618704119990960514955665007720765668992812171505797876129239302489942454377866386399049332726988517430876464352199280363176255364907140423897239887500761542712764302681479861177121648675152824332516704233426014823960261332385212574646908995198027278307697089382468803359666338173415343595022957682201728180048907763344464069805449076255071779823626429156240961796259426211410205737567896497114297423923918464512017162973810124548130429435403107613429294557216376204239033653694828474919284062114832791971274515768228759869254756513253042379722641970074015509611711713695648720346005254442211140853359189250267186425562658289286351864131233876741973760673889862861518747927364209485101493506807803241907813281806471005393410365286398958108899067851415581306359046965343249787646109306538581056999228499007790660895777993580960375755278980473593634576025482386955721455627417779231901683639056044502149120825737043628795096846985401784239729794111806180428145578815497739733858002550836844810223342586812914068980902098514378833432023521605683412891453722681710954213689238254471865484503029111880862188930695996082092842718025999622141624251595834045419684873175532255212425669952072035163372864363519166364054771563197472253077871778714442971875043373731467713690381284326637511826103488112141737483830279604992171740133056095079794987400094925719505796961269893142582819856110918856426076585983786287400347908494679268674100698863879355162584091226813608106952120871776044369413139021875080138316509369816855820834855349822137077439264486405338918284772841218857995073881721015331300315119781856717808386574816958250520996644702887683094287420431947670322924797084388700292040186785013228958418399054446864204789077806391917137294280932756572032337185272707524084301858004297444514350219840933218282798250429867178090934400759441504653989557372468044609002883747553998027954702795089530079908588945248036205823817600239452291744857452735525287446368543777874209808890079296477894747480092883188985336649425028018583986789771426843038285616937701276969758643294219905752648377501806082638246911192183351816335122037883971783009518392371263680765314168353499381276956648905274082433431253348487109229038170286464538217181174707110829230590736435250723086207652850712185018649614775938159095666604328165132775846341728941517416386488127018761059181767703908734431583647582139934587887761643890611220074204340475988863947649442111061563503178084831592360480183921286298605929707789704045847079652731011254756703961587627813816596834305256926408142555058866178001153051081308770112025294140036175152873313241475132980089543645487493090512619123248196009656614265374053515140017883790662677047701206772227078440538266375488793751670206400997892068357600176179352432584778732560684638094605353107373438613166957176464844842167241760653692135477536439665232297066290912277443752867927922082960014427414491044186307062177151222642354439660187737088778694287594097475820080943189262165099991764535610922432821391689119581310201310237062966079610522751379330516850991377484406703845494482592502580027117051207155015652131990215954380052255168878493608913305967624615977288483981107701513576828724113549738435304558127170831585164115574856134246409076045068850237377219053657655733720163762823910002369853522303405589690155281003617956915106688739088052408158855243952581185364989489708658045071334702127323601655600455036466716263163773457569830044509191148295253266805608487590297209405720417049937220204081820453398318652685114978044988592000819600257219735361820159622442497776371816589873886481500092465072012181343237590466268826475456426354444879038242573580821461271767986572208957321571549410919865745688297004070551185071698989395359976048531785700676871731353397831675715251624323290678241541074450833201672322848123250697527328382322801182619381258426977431136115846684792627517525869834168600046950260895415868115512393337818798997759087609640682210691396029949090104831510737091246738798619246335658813956314689552534740359726316827305276729117350447770608934352334581504577332890660954166388949365548735338363501835024701572708831135599119091522197317536006514703113402856915626736203214937370880300630813144645016876292401328784245868577947549953648639024946627252613615701340792018678924672776107790098987698261759938639241011708031627242497564142637591351323944738928349662376796723835724855862975243208102460013209636786228321260183882647651969532476502501441816028411571172557411247926564373538575258262159279983642458978907569879097067741557924950021497475827426103914570642875843190311936756620246437030904655945667382647819533801640260855449655979776303137281628496855339559048646327552659131142563387261891360955471500332258896894459871904221669650818516212948192718187892175067634220125159795984947879107206564865932489056588372065235924947562716846069887344948388376362940849996327873386817771682987820425052241617932778158660863643359192329820941389482086122431406086889753742276155765177414140640885029988703802579232304868828032086984957862550813220012206442205176342586239714585030213688683309770631059916029267653732932385024637242858607835063671661935339952384928481018176851859376128632532326965579156497583497095646794624276451705128837301505802446735414228013251652999987495773095872408391883875620213688777184267912899190259661169854841266292837956579140652364302211723078214710251107120747857719944447398811769132453599049607414627529900411686228513382271217333630608385850860519989337555681108575164117029714318252770386132250473231523112749505927125881616866536337350484151189733599818556636412076278389580087345468753094393368076690007294637192633091514084243609286919496021658398753678167894450022077380128846833274849667852724516772895160384740417499304358801780793386641089585242057888167092235284781008367706932715740774450912912244206229434405110767092066906759682249728290362218744656932366567797636300134304965583546756240221684227419468572200297497814998978456190221624421069000348060527467990454765750149255833004538685066856319926193493575313534761502954828570717898709421935415568211432632023302696105336710365802230044520305015722586321751356152764506781546669420909706519722552251350698038979833946841856594183267941333938359224409412483426358227765320120378831386975622844492638230416971330395936105892052998339616100467172565453145995772165063488535443286957921558911304344514086755783290039518578159418591553011719150366457308929832711837943506078661656304891420494092690157231368989707987480203691056031511965750008367687504924672465589297695796450797380079102630741463271099029694524962062246664748058789313620428464803012669208659286226674134721396499265510616722156068389822754956467627687741539582266819040581998805649349081421359164750416778129324575063213766777041070821910772896407548051276408962496966313230125851599404551676902171320347349333920328841941474846733038747093467117596597914344958128550131329458881525912272798308520240587926940906281693283669302999793181307973596529274684204081714482897227203578257238789681342494087136853268829301518615785867350607750710881220430960903341702050037500498661020198554656661273293904821118104245810456920173682981987705500353583926925187067522826189810282104721726847768571546573604987778300983914811486766938908768675155651363718377657806386963788071836165790406466888602177729319869089318460910279210120238050713119409674955705062942770522515655006857571272622784039045826467229077771950311034518410641570073218147671008529175320970823850962198037168514945062667547063888046077210970280280966147727383747706474298592736268829417937677003375487691642470722261963263482505498469984429259317774829230055879708980274356432656415265240753517576737944327116424583641903487969039779316946152778032912940972055780850599177578109380791145945854033057004959099302914352831707028943526258361057880403767448200001139509501397227566879249772231724365386335636418065188001980130424017116765921627504554792594196350206094533932835026501541057945987496746356807139664051654672797807148154811349433185259526622211079751417008998309721823704110217567828023600487611369322570678854844826310461951758992211031671873716136408474343079043357796228282964027788191314930237953701657527207121951892649700037371211096919007472649735997426884926396421708368694162364376223563301237248233835008054963826876947549256440223258649716953023460504332609598051915031676001826282134347560759716651387204505157873538738831596377439632250606457066324024173799668266642346509376858264709970439769171413275342764248695356299177383864106627214392024534597474550387339286244655029398169818581896826161914835223034239560646224038490716223974815564381883179003980072084562147029818378866291496633422566631105764249894875416050427261013127839950878066949227821044034313419294536262798295820195106949138313483539928276656516433052138083374222043954785510658754632581881034213018650752493213505697786673532945218197839525190354809400980490716554539111573494553822770305177736655859161064979562717189553933292862628132114282841317290132417254311341383458144684261015353707370555390726828469546847358514637956228280374950591000287940918522500549237725910698962297816405261461643474916043251195099242959851205070041929714636938506763179332157566538111417942954234958505360565103535678472059335771600508113841781296356939096839343431725472132982684111528609790911313415465893081026491161966099357554599640962909225109405849690022679833595651129341816367753885239973861027859989088795866522806472649898517683313362172393828560744685127581623780451249191593131822938367091111511700535701664869516268730961579172060467782992937320108748913171869433935893390988368066893090547676007622822544169560046232579388363956303930758527903432219519299435651912696307677133034873459958601071207399975423463441884042715179461662967007821300446135567315708802683444527264040204560437014281657568250269478429267799526122754544672892330406572176793331145225592743586031360811437257431834979651435048024513864689289757912295171091702847247197197167632287406339029971040230594174603296967965637047330625016078297508756162633299992728200769381545777693803813800818489695267020327816636505868652067545146438105027839693039022288327294533202858662917193829424003342331470083492538738937210742762976667315214163420612156596697730091465235000891724211216564308318207561013490359475431966850791771628865198740307035878973105416045613412113615115950991492852661416787604741784328736888104765046203929358258799566558363181586215183402814682795988364678243676275223243661706082274439195069864414062979384494559633970672063114280003229914804804750045339524724122865248872233989180930173068155554904858296360680147904466138765558647044211155773030564099146885758056212662811037639290787182678195209188523709459567404716974123422717189117595063751605196465541294534891417132285307939657666317659111664865783488136993983552163629172995623667474004082163420738474399747599826643031761739647772545276286773201074060203757873479261751515023936867669332786380324216256881324477644485240010235124930640227668701294730351167606465916016344649969852302779424137372843109562222730541383446726800328892368498346089518292699264540371345954137731238044180231809189430651911538456967237604528960083321860631195166353595306661905032880532025425341031939979532551765621915099518662136295124782464819560776146318006540235911493229320560512033631555608325229345082982686431790243709829761504806006467210459449509732923133215269412481315335774849959828450554399471499624250435973657665667377003592402931429605283266446126845286699773341888144033044538634882895449765964903967157201200908835511738213519066637485210507049749294816550597897749717684854367031831758909124923905192911239268083055556578367554087272714647363044578734049354893248981162775250605073992656243668063051110395039529857107156677408631853560509854121685056407003651026102286804774219072816753614505685174105874880829959250403402255227646471585922038039309722958076872942722340124306857029623931862452461535500370629605013082143053622516192739987536493556938455592068544366773884620007198193423165452276618729463475863300592128526241191307925772047682506117935540886860641601911423665875858505382998326368689987585185144679668795277453904632591944186841579305041074095074019265144730434784178884598083282344088876057429844795753751142714568276045188581151239182343916506758175185902048576431787585191247658039601312101760987354844214458655044251819476584176781752299091438434323027786221942102468066413655678648145831975885451930343035451891544547078403329482106270458499317676524630023806087781853559143993747126518195283809053239928037404909599681040221559771296428502850262092314422209680518716253570980016103702595822868231316496370694296423960593937297139600356412395270726653210393918399720994737922987784409048104394592060290680358597832075938996720664990903456241832820896499886252890704162727552256497717395386047233807392174461979462433981137134123865709312064403404424402188357335008487366049864177523793228402042250615501781555698943346296457724867136583370314503451107158666500632174408144656924960962006966442718997538493885236773028570274464958257455467011882840190191475892964208307903150167287566803672994960409563507998606856331998789924775893603537143319712110420836826638277174678734023483531933348922483422286065010800119327769653455494556757890728971406187230364600908367957096202321680155498906315783363524809401595741148889816003629304206811265813340106855495791660767030873352177481027695468112088162447477909879412266595971245836238107181760861979594827833894135188545206260441004541024808775676937505421527160831437729525599560999715551870360158238344922177459950010246469679010487896841781270796591307734040941107018087595089754255475327111643189358968743687745222228384651739927248106321909398353214538416222673070614606687586628115429487467266710914156951811853895919545912539829123356531410783086121380968519954203022470409474735483404209926549928715310915148385997729365161066144634847222681410015276197956821606364760664279545563910917380649278590959478027207139287652346014553553589117561257406959257175993811022251581313568988805389796545293755094906866091699894401745007612529897230229261081894575245072529403869135513624001037379780042299693378881991222281545049683942367530358451227608595366809834920875850552338169600138336074046619875900691464199028445960696587596896905599679651062398690044394142362792530034320515658079181995089383818883531004434948164409058203225468511242196398070051574778912770415958901455011811161673560216796775719170563866574320316877136280424675790992130395715242638151243472686415735670310774351103675094206954421018920587295364417501735031133518203850824513152125349753656399051186222012068173091470601888215713604940094410683324493993285958764918672992950107373578389501204529909196399887018635805073550626260250232766952705145137574046275082999119255900429031054162024317155314230730561321983018614089062277985336464615488041012462303793341901057287763375063132986351903471952479697116123581750290758446425648877913052679225461834770273820508122634323714847109228420241633444824085270483287287855953901139701393643967782933403881569930472078307882398451002805544904793168589676552546592639549588745117646332403765267226533174570184529165730570611850847649340407626249579909702779789023526158202484626590341408616383920593549433459304112398605337026219735931706085382521075408181411997954374598343677965121886461531930992802756897923059286103175688570966696427648401014574099971365598806257049342953922870371496886016571489234226225744560497350014866203722491921799404241750759076732273747744533051102006468189487309452055109696014897725084899274555505827341640556800865077026170853697993744599148468116956026941860191972106571655454410854134857332628551853856705990473697261783017127636689747416407533899960441899917848961189645638382120971178501291085113308098176779037980378272846684155989277812126209465946168536629984672896039184448948961258669280621395632400048598172387037897486813024308419958587574121075910811883195057790095326315017127858547172727668734916931601903040505122080073200625463245136141812447032356880495921553837389549975131013471060446445072107542147489445547429974243963450728590142176480438249799400940320034240999092399319492099030116292825389193322899964537949326102166878602691248003951473402381888792389926927089197464939202368049621775056496787621728602973619369114116089416776748223538043875642395786739528806527741173992378166765794387653437791419623189663309046663394772573983562873211844605230130109061646708623616978130026140375806674127257202576217340600929923624619244579449594181054788075114145089730871447691037833377152530777277820101174541558871546373054078780267795928970642406502288162700554637495758592113207265122613384405475170214604654815355756999218187387811620223970987491210293349795974280192431502943059030801020152886640375331527032839125903139294970189214423269203859590789044440044665916194691688392153023988220265491458236582817996554406080660947036879057829019174924327458816933894863050073231199264780921688785107307406106627474600315803882828659388196334472500716233388622895817103800188659819792249220813329638805315433103197976418167908374959814653556834035595583148954973405365571737938505141389602344443148605144432114930394705993408726024545659436213999179694216766081090352586730701271780738131564029536633844768497555950462763515980479285945103939616266391520046988664050503330708382396212495025483764562808464677580186211329065798658875301717149320216893845295790248269562322544889377848196691615000161634821140789065401869379898814405297159484688371108110498604748473269449593067157452526321627945436243580359620889593554069040260912725702520365319901829573464958306619673497379849475558286407315819268987826818952265703611496177180086655849879010270916577078586360898670572159680053140686220972855293197808432787676744494573867984569822543172903926005639920395486980372023632168405158776263453925456313662120309649530220398918827109973006296565963912044778358448425531675036959838315615610407323015872158128499170430008009285668581354839722324339913788461155112519670356551448739123855429928760777581042434714252165663976472270560846413141467702462539154058230906333843183382583997827165047095958722953215632202010212604747553563182172075900560758075351845730744370286774335105815540516574473906401464311639837626130117282046249709590028497022943996802693768577479294481928373992112929146936942512407660604584827952477506559255919643821723578859624135959210332978066064886060265553993165043128485884632420358268657372029967161484250001765065176238145932459887761662594450977301766376488892373433894809286857973554426576458870052764249214215958702408514609790374881087138050482794616728704228098587357333074904150052979068509715009926186441884963979772255032122256407139841926527590957648661999814970230388765630985537434054395764408210399569865600458785310758100525077133672602795093679152238554420348299854875074977494850816841810203318013136838526971367398807539173913323205357944095465464710108567485338618522456138461976428506730233315093622260351083157089736545210199696156478798131159808626493180563003171404565762791556582457716918256433496620529288855511246691433249203252926821958534689162203355890253967971825274693911634170028406087221422743469631623128800032732805457000043227080254393229745142228561421177732349597895191261500578817915871002156612553438053277958730522435570936221109309297750568078814087839839918399745576646721242379969753279805466570886225185497649513708627111356925880573847243792895970287945494902250364447626946341389502038908730708014457494241515132342206883094268890449095749478760816389633162778987775860007410060360300198361764902849831303343294798677138481481892657264417329554645432453986301135143658733673806487959316655114155470588559488886421546365897736747420418329233403808012510373987634284283871516575251415109427564895593238513520731920884991334689825415230965486551618237377495978508451090195184180900468297640303724756580948653330569786358582432343836467065584708384135984862847897381450035709445630010998368407238604751814976625816177077381396483397927222725261674658764827470483200422474940867501931979095860299922938388251862027002331593268001061857769114272128511431227237870598505849606960278820058970621169899356366520806745345130719860980969042609884197283386623986960673360553949408951774049952821007028698145418308196967416397962136562976446941776887996016642383408416465728362758467814259015457861260012801556943288790132678805125141811007251681813702131944467196222613028830001109259830578186949092621357557708467195727084551046570635047312192715092751579326388150767445629206022943340988630296688936056848468110601170710111430804884641709754031512732973379924269398429507440808398365690520460975639388440773882078926377325500337257635963506947831878127713607974043624398203947182649063866609978148703962214524188398213994827320115200097947125824111249558502655646301274951203506529907377296171690239674273899334532800316254718795635930141686251630784934909922286237453931452134169953902622722381682553239954411639920992048309405665605954340750996218743739931763242071105074225803364289971929122532026519315409190687627247681717005001967328335378225801410418853692795543494975773759567769864080196028511629042589666386896391832284900280214580016845590315589426509231709268652430922117459114316817070530890229506902509654409913425212017204164371939408030105788707710194097707739846654316572954610937315948217525176664364348015497012326654807424736145805846746237768295203195441385271388323300534552797788927526569852438841035473747995976419585564250203233947413671544717295642817841176310699779566074423755948496592751478880523275240047530739927922916318119397477350497363140688286749749935202627993266482471501481705506044092935427507026832656048467059847478560934408527327040168475865289925197079025475949775889686029932172220184261204024344392643223922476329766684697742492859574711529231489433831563427292039323278880088391529499379778440225548544316659917564262733901730698417918689537772587791108803965747603927785562073773013249811288515717305112219341261410894933997757291247699226454781386904887066524587550126868730379086279459713429668479973350101011553220862887911650694472287965969175694463924852488153738087862704543110705980534541295122177366212936130859912410224245250761835354161449359038965682291719172621097912689010819776880456000909986675254561091929692559806654098654431029357727394732400727641893848238451666335444465304263588504563675933859347168089518077022282554625691662417243568557763704037350649634280925838958550970258785220342872817852406975633695428452066054797883550666658083861559514962110356401646417529098446806892550477489300210824433479158374372748219212049353194844970105561465347682831088708516523428504760187856160582085966421543533315685510958876770339566291526697290966088201530696395382403382503314738958854957510991426105573006827565074413390019982571022841116073054262767527726945726076514813495494142115755942775448298927301713638760220703923322794067781478880898183397109089515151074931125288815271753606091417427529468542810539934543903621985488357300169727704426875383454117340367215005730753590431528087950257844083334579246379705539088976768950871911112175708259116681960274650412225836306203669749176809945751714971496261490806686775288560801721689235682548690555770630495320397054980807237113887930344208898497277478914557401110263083753857912596327372948766034635644023671556526109334998624235066737002493974724223630928353474693139390539228088350690789100211644119456013707862778014233201851136729995730830818361712739062140339772594641569603427748637726758607004601075314805803449625249770075354452825895281699772319372645899292349012941731178295712615802677317314092369545387452136097199106021110708960634547707189931596300044801774137002801623431419013695915240583958377781345517340031762783731236855801239621387554081604782022233267803222814181296564632136511915461291699285446974461822142773021548889358413675027103200821853126997832005739966791941635477289850499273191998533466087706533451529401271810795992064993379703738032632664272076217655558115264705814860740947691099324042025172010522048634846738488440930943956016122657395008159543602787505337445592834650241967417974172929272709535945585694446762285235724978928551617420025423211094526255732833185676084853953087470117107768166058028562035886360951928248340451331552814212363439679583094876225859719304703813036688495738259030463938624592154328460057185968808103677901850012998314079511790113031001846973833743192896230937157945433144476892648797920116117362705024902188261206017630504103758279487116082635013294335364903312898148426050170755523839235588162295623823886231214269395886520475886813602590063051995469382363289837644804101782253134932882228301202007073260778446449766751414213824899080505877391262434894444490364995484943667184852431489173521809952302021465301802899505888301429674344893387785505410280175109735684561895634933103048024397487423582113534654331762462960864230041212901101634141996210363445970995943872079745543898668446570830864703486436111186105400111398234828048183810519918266232805987903631571873109169742876131374506768581141115410184089076519155640591937366608869601547058919209116435576233889837603851270545748064276510086449478913760205013173525269036582503841541034054120016450873901742235886301907275365105857457201168927103628719292449086481271350489175881630092960472278673837465429931613919166259559527683758496236278567233824417091999520850996074010848602549215340400106008208105751115044516281479035228156920784560926250915526377369688827374395125654926701338747236461356198724612216563755509641660917840851299051255339327487304422718654258885429843662190114453434808984815648594936164098744179897545154187351457652114270045140048007629968351042448455536963642314802981519950742195779689282100097048723460088208295666497602289569550536460334109963098593357127247515794958524312352273344255884151261592645225743663424897146575407445746592490532084230030798480583331128745900084884974040669976156133225716789388916772575293366800032569413347256362208383263023532899740983920304871452182747464980282897944349119503689611242395022372319509451754123728925281570297916582804505518105790938321663349624024702706221090693374393611563003197100429889080988820804262817829776396140342193205458664928615046048395908114078719832491582951301562207073638622195617711586650282432027929207944530104735374051363712142274648118161519919582789120866580065901633789631737917956237283042236028695815948032629765506630658176014645739709568870294579196170122687972245318138859850871344321066629692836435252987996371866125055430806280505399737589406198967857596014444618649989034344160582198871060036115949925377735672971785320709858743801421770877073382064658543693996341175930670630218086409927621547935863434329883922683909810615113147676589789393109022457726629424342751983787244203116445005946944128703851914025119765003781522246295278699135529265422161723551792204126891703964322419451542082619316064407016625832253080461390290101224460861849370111117702171695950760553906415456508657786639831604139756401612313693111463687117483003731667840937443184217341471291466674687692369539619875674518394652323884869835648063513502942090721379553448650598847362526681053315430952780925568154825811088316663761611294294595882472838733613054194865461312587064341904290085551609336687943943273888353476599985159572283841942187208063852182279929358428034165878396217370383009379662694723196889944827825798925433947440740689738968255450247682389285018215235398660606833311359712358716851917254147609229534273948520371966995059771776470021940924170890753134097553809858904608919809404424939097777033547122249381285989728908592699856655766416272787897914054582314191488712846297406494726651262592477547038530077170821801172516543469983981522318503701147228656791683752792347868349443723523297527564873908971635914697511851549241550522848662208434212378542944102413971515804710764074004553393927547865282282605721554975649225942015596364702137584007029960374337536739413216869413799748437871994882905736365500113651030207616784387086813828569042130334613180507272584907026236799189592930804195428640383234646384874435533257703887999544839803951826851403074915045136571614651092118429393520187544265389379756877506431509075276580499781522098572591241793216755554499627774335945988611982171985495504387837544632386810194031588770028153020927884792568876224049516250254961145253676883583458575278769048112864252148641276962073284090456787420699059364677228962790238200590031968962925131485653065783351724652231461362102533781427521354390729644928319034403433823960072807467308204382007422162693869809033891878915529134538701488616654322601002975920073117301248788801600077805566586938548749657739435652930538396014276299013589789260072435170569450321654563427526072369391490818500730516711154068591143809601589058303090576658524377224491650796813968956057449212294929336802452673927172807008720844633625826755935700866410506511566474342776319751499128170508746407799100833756598523290010641021063098951406500745527509095882746776739956994054396023940403632579157775119469420975299963248266341175830227178591742073711673145004947524085803394799046972211815492068520217652406465133732436573489133497945373913653007749499301414603768908305954267835850881370204382504732968708585000839896476862127759410305804850760941655899004782078030074928608359244176460417495227073525890389819530454402397393544274402262561233812356156744539237753703915961231627777781892870056522510074250805965979487022615517516639259565329211411432629442975750763563515353464360757127204929666167126128108262351669120426893192618738064927671287704850361955066144802453622861117179171515600677954610614719698405825688882272772716693438076922734171754963408123898882185144359595877888637340563444240670545710785826288044427509498640858471632240731735768556461449805948042109580541860157540446156400513940416607718586091897276384454454988972417707894143607841303977958891406427574685773494664141089690361541625698466246425623940245833180305538225040525514467685517045686124893226586277276000418416452713738654504818095892843826880816365067121009225517488102378736081372931354223032520506789582977233751164555698719562546113591233506137793154819927184148563049705064961387330187123299338642100816771997427427178649006803322295745756999772261581707893415979548537715883070691293374444836383852181499140784655480948137899553793125215679860622094701984369350467719623017192130154893436383360959659719315398935880876466908420676515588959322886606211140318932458715431805317684930225235414356065356845440770643329395065375522739705361267409593422287495672633379174996113179558240280698634030980639994749569402608515133953496145763772300860361629949614653663785776452076528240567264238453665467656775132032924247347294438362852060743956458959419794958432660370713148666974512422411000965016864094424348519965890745393010276239831731195684364333706161189478202563961149127282977927852284038163115938506109739302491421392768025446357740550001810653645237237931253601820330303979697303000136446230547712331829820069801642061250662752306951431664810757854050484524032841310479371275787311921785846101999083454749658046674475000309247655539330281847756028349433538756413683639238056453732541567210370384755125102067489739379323933977442342568269396937694615837266979732663291572826612280381246753353331802219304171475227432384342471139270489523948256973510096161213598814941819888672711724504757324358250661072248797115325195996367383860173629980256388746774605835537745942254037560146404150751859852030217279206773002181671783630841724581380585820657691979787569353630584327534529200640232538718046206179971284277596977032994428181242380566872236678475834531740515385404422857446419355263997883198226711921345489507161051794920698212698537981726615925251272841465172683254365683862400525911770840102378729808342855377286702143153528337691358339750352576863869206588495115844475519717176065053311431341088598802318262044180494488320541689943449209834183159705493197937568565007931607974500022038157734617187147820372738519799197853669329346987885296196297970391993271893997443786784735789691689152329837956338482758500661056779390672181493869319252892677326479563583151715751753914070783901567036959402230282997516264319366377877240642318273369188511151705829991476029839397653749313680511649202283550367568249932319945460458841728593744584387459197817285728918610738359017142478777215962358620388757755738088250878726936157123621910608106472292625994501134532768281532206331407999020045274880645814432580026605001425580288876309951582666526686166241615424194151769900037216788153420158951533060792682250177321510398640655932053871627449503825234890960151514500316085253489439699183769621798421963115093992623334037560132222439024277266398415992674719774704424476395142986539095036141713203503938853703493012048084587091280572630549652913133031061862343712328401576208552749948061774194639887992259763284590059745354161922823183914422322267812183013465968140523458642837927813651903505951408061238912200926346944038183012359405306534864613904238891842087051004219101919684889286791292076235338987684050977816644774879972545588248903713868210497632859540315468169326179305375664644389146474244907503196598460168780003019368597131487023407229584625992516845108381017076421224031252344244880344603390868692737968535843689437256757532827183021269209463302854392355265327218675615778126249014581140083065922549786468349152836156085541537739725431897902145124124426024211974988592969133896304088775979065527429958240194637945932571399525524905130338226140161250924170473751207122348315566393334010343975863947199625344913674573409760014571835240818012045487636766365357286050391611346564092671000676496817064762030534018659956572361068785392802272458084232409833134896151793870339313873127062799992067613763921785302746995501021581438784692660455279338532790547815664137264142035447936291990115027465080346300004721477279660618034314028004813480642235224893436737134628949074662443649180646340605859190140655408879008342704522709115796994408646545675061374864799181875038818813270754423088108885054157873049938126773401413966582265434176337807211659993731724870687290933725737301321374264187172377045068842237103843163390084327985748894704381401909699675215057670828295220351411870900363428789740910420632851013470984676499406887315456589117517667786836500868701075990277210413415101108115323628911362646791533938468120275079387790430446636062367422668986154764961617230333979808596038477717097918744568304520475297000702853353337139296244863820912433123401381233368153156046454902759649821154198555955322807721562273326323492325877351374548679671981023527880108528169781864018743067828339300237192367209478199665569329564998804803583871499504077045462641789260952259688114577013560340437110048393356185537458058744780791130995043356413345279193057270949640966248351087972959780643717854465558277076396543824056332278815219469715431718737502322546304575756636762550644400964044923786640369888807384261575617930723336052302079709910649508095449308549844679599667508393101462641772360423735632686996339562687095043519876872588047888752504362961582716594138921841753893496940818513248520237203065539524732640105331691136157112219411898542399916660769886877558335328864209210526711998533211394740889910813615903946357551686926268482136061925750469325353614684237697515482644985114092990938989967487537600534728386363927778121796224636156327728399869867495230361249001677510227157956611918639905974780621448778571547345933026380489371911848526888272288901564774298218770510904306776288143377832897108363619872759786837554785698526163033791406988797644776000828996329024385318826299411517557162193018232746072579173702221148188948662243198334268232863720137283839308142322442426961847102461560323812070977079387984138134998441430534909324664759565759363663056354220765692324014587719744257319668203873981215390844853593819205142961086562414513248211243991715460609497154670133165651111084964257884808859852502736114487090310546935406796462150118110023677052721698600218709557548756429339665627760051825480391333477701334032592231366923053719888761892668604342319831673304069331364973346805653679583862013625362267212165386177079332503534335165532361669060558557530537418040331618187655944459453342451832308105927143325242320357054770338238175503691931324439149791785645641224097939037316744685485180595142712345676705440149621073702059578483345957752438526354621850898082590593046811585359179889185671677036991641625824216736633326699788075926486384559266830955257351077943268152635846316881034212501488003428319046181482549524415057634742308017502096642222026645844500467372117043715220558481714122976344628011200203404223941186438981412000861882895891264900792003671307126897154316167552883637794454450110357430423402999438492304887765621437531936437503214382508002746924817653831943574470699172639460082253668309931325856373564181296727380437844559886895633299966207702761143675672980346118582668498749107337514866700228961552479747436478823366512450127074071758235752291526659935396050871946934620127962365641355243473280669054890649152101721599413007373215843651696690671366056777512311778738310324674602230727131413109122770991951350316130134696447942029100346843994177603668786261861497185495609633162224859839985455799008894620374880914873666052915684758880448427280081847492569034369625910510224602618822889642953132700193137527950225265188497144408645943632588846367388682982885181516648127775412752322118115107478574494959873111328662852552189671776813490697211220792582281013346256054353175724101362505288317791322071090365158283119551541541146697152047167156811480328665790901850537700189876220302646014884930279299978502187316087210455469518004253432077934692912103317796011560229993237638441402737073909569283685643904025366301183344986837126298073312555770611340783303440259670598558240351473491149483838496486903899206564264242027110916750178494723214216772877606591358508031526251022190277821135094044502153189259125550687202864500840893350708495075325271409892836731356510670124325408220864237919390664845652337410388740004456707714778734670478566571805629220843280527653060892803158631990188271974202457998356543800805954598658026561590138507758307823515639027628278972497961140734922036776140314763046075985100626221550495447351139141537914279596397433035295709907600734895497384139482033317667625815823534551470885692895295657933179420324056245880333612230697497444857358354261497003467400199703020798672615422183158461933091306615297675325506875812641548937683536386033073775209203180332721025201458707559816290728431313720040600495837055527532869784134936258698038758682867218753857079383899049445946018421946523370606458824802467562479269664455956216678161967349188292683633720066690187251250721860589809781428513142713093350011874786159696509590456228563598730160710671036983507626216621810583789172637339817647363407962985558852584335430196834573531180393800923076132951156018670987063002410993893328687353642001080864161147306545711921614806845010286585474703005781653213618784191235874094642289204041061861576311864222153176601648183756887293550534727042323318038695215073306014288743059869938756197825543438706808200232782532016474088984326333601030735702838616399007572975902473841582888157420888461199062451096253768932185128703363663399789219403253519567456864864558633578842520681261049149851167429298611803013006720083912036538280146923730255553386878556324734382363372565871466493773077592461671208605708088241339028578318570150966917573059678717448798415962991087513665026126240831935770382705867344830000929976072121710550967194861921347094369736543174201914595134280877979014121689213003392390483481054183252230175058020461172900886336347454705260135114666088281180658139203759696477224339831930345116045258962538158273987145633794111116481829512806590121794604533629089721213673753177538259483023605960156372019993340971729334606952160448527751854507689995247102247554821958621112295153988986544803796096145755593562656548660747066996542853121311515524228869718376547822225083571673665814882741606463037356934283306108051617281454041248281942574835872213525738994021233013942276102708233871681368531093009805087603197901420736876645470651732407716144445974884388811875832337745559252453061110560140840884489150739551299266996083576130291621003144793893045764795129292833531323303629292072511905659518728528791434890953275625229067603657708005652564809040149005193930935353101981770211923059625852750050718428079933467233510672834958628457116319027944139123988286951088072247182511063984223923505572452051337660331606003211251076712210561165343031619956211704054873128624998332969047698312476409223757745087888513193274292519742743442868120004748279186742167009393453541109051289049058037431852729508154464600611131640681252449036549173295563704365977236378450648601445904200509812679029654809785058956362888529359513783401983141337579287544004959345811355075564660704639096255688591564197966480621487718731877310299013308165964944833162173862221766563954159683954885541754983713985307865577605296786262684413508871963618745064687947082496418929623917937778122551060647777718638491690724914269848823402555039057307620702733271640134963297713570507240740245588754174352595335603853383943364483423296983454281531862032176260387767226623849985805066079151134472514518439336228631579320219478738647688001230273455266846823678331909219399770114725238329899999478045059502415986090279752771160854653114002795872363570143354567598389703590965397534218688772449454253908447057505698623675017127931157841852273087187896320484217613997602144014413918260691190211040378592160579224415597611591207820604495944639966214453648742350446034855274094847586977822448052576733845242960665162678725238707396527804076589496311781105254697934062732073977409472327046187358706125230107879079977175276167192646507300301809989639735535863361460728490875970572520449363447931373449982478265415634938370008624761047163470425471090930034422547781388967888621181776078779896675041489602581632366689449139428965349700493637443597927979874851009510401230464596144306855113212792486845674912867860636332955725262950450597610478731649730417277680587057529089842504750238478969489465070728014826962764093826386146147554646564071146832213124928348680529301148052761090224971080410927840376109658366950387748585011944387538315019456193055428022417349726596923998072254128622578884084504040069084296913407656218392785770042058159920279491301535107058439683311198212059222644186892136098319908454833652364091662896444741072270738593637303690912536555212161404459734502519700287351694317402133483814773860679290829596076437937015655603955253987511548624198947524769978476733806005340022636062503060072303064580861552758260596932881879388040575001955386577788855672418836783856440271104525979178972894957107736734651461467406276391638800503641542114427784867124968662048173838615721290576744940764444351574005403858667157579486882384774354049145003233031238484185419840275576540056942115280270335341883696646305931450782829167635492869751054104535336782531712839040945398844361623355278571568455202383930355896817060171776385244152128620059785594347451215581537114783719491346814293262049218507969473861329867689554178544480764693469077570388266818543566796950561582855019243564896504188565640265791065251905208008998155343147633955300165309964788214811641735577833914939076925571110498180673900525033441913848045468950429230978491924854503496570853442815594045409159133073316147226084753185056252809792028723169459693285768196600419558621897542710968998882864037915871164715432151893085153347151064899725218648885979994011450433336117879415954941735503351870571810942164018747910187727305153937872446561512789715118795004364204554680061956776839650626191546213441782522642390147840596830779705476608441714551279103828725674015116714501678495216937998854515299957321508125436639081752833123981714582642203481030477712342017906453545251959830819915699382422936534223788490906925668662849753146352384417521504778394376274607070488362914023256133221172217792995337976605784084684492263372150180982839188780555554588181897740546620766738960345714029626326028072049314939916333803562343894985406150029502616814658526313738816222709287592473593554939281736218688894404196616765971476415202889725557873488779223104722080359358286797295114150229244135241071653919057395387527647648166408698370882357543459693407782353058775707578639451663135861995378612872469560849400852453443256397854767898863217307279286285198483707398111737391508875132470336064553292026165459843163405218862980711885921881239341066191805399267893026054495887670518181235834667083724412806734854503514843850896101865650046466642112677441559388428651944766798499365731852448704740467699685255738887876889799522534203942372839430475242268777668976909210742203991277340112107304745027742202775376123031585562436998609856466458980880046077785038512355708087336406139529967355804118748468160601065618173768554954717867674581346462734799791206559736719464036983438446823399902018252928723634785724651590137667328665633612781610787287023809689869034842965251908960806110601900505367194612064056868129110131188309274334883561373448036162376470854174937695468992264440547283215015545807123989258615025471109699708430949265106059375582468723274227754738926919237914774230816103597821608070557269962657214524974559997605781132105918797957818891231376177616167640118461398189750370622033951674196939043986116142627125458243755128258285199474015616027828409741794114611385602716127335882031049841846321637362848022919646066077915277422981000247725511329121543640337933520371226082585781653046047404973321879214809311209241399675347172572990983866178318688463826988084595195645918650173253136666128361043375173234888550059897392827718919609814466256406847438558427779223546233541380424013161581470170565504981541051695308494586224023807478249725467553527026025160893998546113175060785076494366350069539898582594617919293197817253146654519258774097850842089079256190301243965194331150473430902550752291597379790030329373495952552319023456053835990282251666245540720611576282190489999383706708839997246165998779552988265773510837911503100471244255709326519942723487042705379299569474517364665582791053129459510464668390447196543528683527265088783205854530141435407550841148548281816791559146821956836887300731245068127993954232426056769762097274587126174869775378459748739100415834732427660237204193588475024020015603314709956611150765221333027146111145077194935355355550450808104860584940751603331963727817896686190162999072297904788299428520914787052475748410190711859212248269327693099856780001515602221412558225374766162092026664741695610185701253325708765825849996580224017206626175147835224887545009660674711601170578550543577226137576532749079421024486880544978678542522350607455774579373901802417202065969063811195238283828894817942024800698897540640243686968747732056806739919548483271833117521893735800741614470413039470642519794027712634626444601652270040119282677006527454230897548851346931252222821874069920072690308502671595837602538099128279428506942281415002854736419877862627336712460286363807038904006030946837034423719041906180020064488206019631465279872828083173208341439475527144359669465127761943182034039448841955861754202129988575608665921528515893351448696274875463778590621581180548058564594672017699896522222241821226419334014941099954320762905501995610565545435889385470761840173975631606316376665607825876064408302991614121777021943966614111723639005904534129872500874927537576835922746194579227800066259550437273202700342140074717228202489807620652236645151224299229141287585991246192125561222268189574552894163664476114604016171078613222942949345528325347094841711271269593890386784568347520048999496909884940380806511654482147522568680832413348724070363463921301284798889478947784964127395477788105023196774394060091904790653491617961288605916958832962278732581875075878536762427140434028489611554567255564361817565887948912974846530022490124434219461226623131612920736488890673588663325133384944463352335958695650905698052226634365973860869327019384381295878725901161396086820055955646973429380295099939216717611997558137719941581063978940409607862853712244799656104745511178704092432186572871453205351902893796329778501972414289903833957803715079036169101291967762263047962389127828131623308719063733108275768654935524052645724592689764541549694642043595646221209753577747793503769805852244912719390463217342414157042278326384439902568734310168198658583556356984678838500281657827382019567785951171897619662461076625658823683804687910879783555645230232795170819288296013103027508478805528560812060150556406399602226344763645668238991772900459821912497333325718669606871288318782730213842820522603180155483147606437566971540320194583261979797651514767653605203869790849062697704945095088188186364993663045541245757280883194335640650824711483536720150933094929035481517988556801030438780152148906514063151549901408665879433053661658272176061962283100787234282888253622977680712077520122363227976060451831457010023831625634195648979808243689809057655458455801329511495287702934582106203328605084079952454314204603213935892656085187788028420748337398876211485134224756852161724082599847112043361362044980193825200823575073458802715090454711209503306814354582748973474495296853232397712995545135813808580722476095459405010400934482730704588460302630930313638495170352000773592218851921759717437387327318712506826989838857721147103965777698185641864703538781751795768756016490642213500194944792913648891894926054978992543046962072821811579253411488102051172043879971697829454193425620244934291377942847429067056598805993701409340583389959199321376904570385568437384299966031968260016481699300633238402122830634426568534858246682020357659928412966158682529443448889193855642988739541761584348258707541480529331179539170752194699302436736485961512038665829469764535709460654080423440893510733228464400069763315646124798984076031421972161446414694305675511268946896865015927388142448603457444051571471114246159027873762177151039433012606250944741938286286252645265157528479848096723499411744335464915338143218709197508356556346841732443213388426832483659522000669369667033466835283901431720900281348675227198035592848205621186176246626943407027067471021690098299314301595537588993316495951122783963441961106818463200105101229519595013970958480295905072447133710644598522600906056082892100666416911789107784605723332378922513331208332329783189068477562119437124813204668277556684543416783401929809053726184030757567782025645013456209670962260427785580462250533413306507288906061221643492704400990834857818977332405271638464054311830037376379627833389208163418346685694599452459290800328409411611553002463872208927791081022234724140491006854362174321772201887681839443790364558477093105617996646004584087208243431829763641381294637843714964438631334915594517307017515960683960662787759807806687086302900028025696780039228679839781892744502651922012744324030154730460950108429492575739362070099748853431168360707789256786372743122168199080939363002938011211402451747504823529097872686810705660418438389016582255778204885279426777066740541611787192415039423362209739313513996102947591266737209876507107542254220662186958985613840001416916498579751920126096852428627574143543893583366737972069338535347232180032798418485150109211908143355594591773123590875183629235063456051689335211545801560822304348108092516235881781023669144534976301227511449022454713470474774239085780960552747287209183508604708737132337038598811758447975891117847321313488474059081604738777863133582252531339595006812873581307074902816462515405164013014155186934568673076792179183536545153031591027793041842408511307706702481458552402647779595647449477660024258420544869731516246219125651141954925583667414028589204552487280070467330108494777933395720116730522170661519940384027892271537432074204072002526151936758357876334943314477033325510189740183047411912772090335781601435266716244340896233780422980262148936495575008672848149372807616083418316353153134856822483470213440171781276664150744674833318337356335252826676257554161304685907153490783675244432941305431794896118986026037589345406841248969602315923129249328945672389778879931442750668486305681042275854352025936431035475878620367454887505899391035127873717367959279025502124322970527240183889500726096012197461539425007271707825101295656662288122542901124854411185583328291255551607895643092265756104749386113935962172138586455092686832695306366856451102817542711587324949836320066858756637595501891284994033885719787657639099874140208562024094740101046147077157712201113434241160194858193546130942877177773075323707225775676354607123210817371610475008388375183988633155033581269166275449822906713654199063064729906996226546434213864287973836400434199488013686689748132974519971772632518063616664151682254593565806906967056980423108903378287503257138109277965547742325638338318401227659187828496670913983611392355888276718571936326027605412898651220039316086541139539492762867782099167353187020487400117694554265914702123733334901665003404447570586091273846914701798666128495678788062002097462711361803433196503172924403034425300929188400004916216595440216543973451114227818938042283350908851435440412387901345186677105735586266488336810889829071453310806132579648553974104512889996367375649244398272039283471728115297879029965852995801387330873638587211793495148281853552886940269873895293966418503444382365369028662637945827737019570377433072996984214840082850979558140441191944829335246915385867015510472704640623896504585928982477635351473709430417374884573817566782835906326597313815076578724181707399986373741343276513587423408010451343871723515194921939255659125266982265643993124179162469580975591199517382015134551792306549125815636103852637015498838881729328480636858833661578456419832595713241097513682576562069793413415625829498476272320169900821739641973319060172013789530849283988850030679349119012716812269846118162084927299192023606435138995413528681396874445351231285789676514768359014656185960847857319195632194004952694604419987020828172660963723785031984903315157131875984243840010000270269390799978292849577256108597233762909342198232082767293466267504686849670868525056797154131158594311637100341484960212444246368555401254514108543750338109765674162660480709576549783944737599476932557119105276231583428742183518838668821686042623843907753442055027760101657179411623028442494167828319838590770267351273995844838771444159614369268955510193548749981802279053692206299411304072018287585737244585423376083528232989108073072593927152739221172478349772092010524272458941388476108875376078936733587477554399418461246077859508575647536059779329577466270538110471007258147453001719677626381050030231579776211327587485423977991437669817020139644182520736462840611303867949450487597297123786846565948191399903238505854590833160772979209939213355718872507761512513047107015680707235381658389820108465161188502464733416241293309767634028860982506094159146727495043850739078142301285736713425831141672204686872375715956335389836085477368799102909585804834805488211058256741589471229968983302980387911790893868257480143812919636537337315272582054762597316096360898309815379877817852698908975665435116153874553690181002485032805037255678545886461766268683138822972939449326003603402109756446819393467998070369603892968589980122423630608356613492259059173396703029906505548634594071141516984250658563184398415435291117414051501411244541046200026624558006673362907764117347112944152873734982442820552100581374508738911068237413457506187644431779774959157279293113551144546228046098266441400818770146176905070766936351735801420355012047722040446341634809249883792447489595786238458256374190179340738540748281388991351838605507087181795397232393053105661463000377962997108190316963431379883731259364957679412352527236091244907577940884869425316043120409643735982720410711891102415763589152324918211241215175196744797422550819697769808516984666925165329818939401383083874786444467587188226401090411300582047718581851879879607292961613143887761967708981118196459537976225832478235749810725251050207165208968217695304174507723272896648170512543959799930743048766916836117975884728938769182517285836274276086618747627709344610852016762976514858051682278590993338195743983196080733972942534319629588557707116806404662112409204301539988404997099338609605623498796456721212933802447630249353787958374062226635097768488840755109941928302635484473686287081054312942973731194987665145896176897590990300351335023793070471703491829081631944270023220679629432523293599449487290144540614284705334918574260658855708182231753251406379699415266729907908437006475053362730273235583065355111827045611893946192393136427558020276508524265134371273597451830020912656841656565179245090105692982178172462423654711079810417013361641995853032774234905120499007824941463777470222175029371340735246024567972735727677386503071769231653854544062677478422650366416001908393931971629110537161383835097449789436887251853340146744233697929709337296475778934375583453705022736004345757443107673333240325933353793736732164772897046447012367146991878593434363725711457012046446746671317997501411472177491184395518774859942561310433797877454471624787993243647877171729395919452648204952113615802423749590690948288575232362548710501109535899988308352683522043587089233977450635935538676685575511490794995233736859299688429693312630170609607047774091368937078912939383646848930754381151346208044820107507766378175491744076363888651746857279665901556815395327393229857390794024817658247785544635461007934087290756408479330395118872052902010788117288524597357369127531329391235140844268951879185429716465435562784958245908404239464858996114436009051096973329294259395862481802291261662941080390069008583034266138618897266381758739306902030454865207734065482875789092014996873632937793587425169775990331379575502966169320797727254271248521579317917450488809523861090070508188214460239302014394423290410793479396065992567530400825543979338780343309366569493663421484932461036070270875673442010685439327238749323894895268462005472479303258395432466103652980979934148083869546908578202304004572736920045468027153831322535240489147359731500694226762884859991243069246279274982099806582786365857249234930891036569447153091567741791075166616872757626502063724379601637739405033187781066079300528362718342868290756407992949512943034557438659797182064938768140561520483564103849694140174816560550580431923018079125377088205826665880281382485363572806518144904712463220886014391786788793027116694893841768454896120656881415156375639396704762179239171562513955292675226461827452560724234457170060866053106632373832407733982737616561677943288469884559254600178743548530737641961266271142497602224349118124904001974438521603201269712109573350438263169500222428953880681675901930687378984731526568284514726920640936078096440651379472942707585736016134706797903084788956573964973605258223831297420676853996237191678607637456867635188882295018822697419129539598449699703029699330930084401726869127330005605629464390535118669667867110879621517725625503486826251293067487180075883995214910351554876141187700871252094114148520046734057745396201264239779838820839787237055373405487410091588955746992615632587302371585194372545789547644792521176167888737035773225846036887402881549297930210737546512976062149148864893543413908262548372792809522801534528825476166974403048363790019599816124571367936783222914916292503542813936711791024247395464226723880042852847812454999284848431558794487823842493375676918864025701272928279563215402689130243928251169217049051210412077979030116962654407576076109223018613983739770428128382236526226068675851375136412243025295117417896889850378801643045801559198250960150846201373357774205365753896980250063601554367529942440911721381056970030377675316180982782178848773004463978227949462294631053214016792856570790677778185944548561610638949330965889863128360422546509906762028545244204720586363118142204185219940800056004438609090488803282648500134811849519535645587686750835794113528692522126621301809362264484235690104758084294952042331816228008553988476439693398406538559379101004299321917544009935398639659527659875895944144995805277210370662306120055024306355003670714133198850883011970564822602209424600011580704215994731810755478911831160965458537790556490589719533012273182899982089674889023118166822059963733224185331322983183641827167379619296943929889860371328317840266374240042946342230941482625398221493998823285546849218208483286696336427190375568980343924755129725607556419070569833815048125411553623596712046840618747641416871001238723261643006463772116580446012475814416243779430928237945506998510587018445865078086582478841120120171461571531489485640501827409889563384012119554392860200283546822831170602400286774531454880271522189587592004500899666059345617395436698398978266385746792012507837262745484060000604869081233649326626782783043987268632440427886340130979816713880705922033690989853944269209164356781854568203631726688271979375965442674011138731005269945794025760057342160316199410127029639072310373268752238500159890828740488515737456173027890777490431332741669206084808559517206587750431848900292040839224201083628046409789585406962924006545128262862257003571511260149906370613690259069724553247540645081060363925101486530320244344448344477925716042624176200201009680119910101781295014196112176013292071941812052711014016416305755041395489247371416729622047193778317394440139548717092559783874581776312300289992429466436798631796855477559153395455161622390058516487026468140268171596649647359658910816582468313141156305239484104509846989503767179382387402239993619264529793204412450371782450419085593347978812425631528606411015011432352460143042973322288531167112168038969869679980883714408840587947516405696188174686912590932372881891609850190795983355320884392815155468546690965450422162058692561251286080539694540811385486723075721769918072373417090495282257054704977285752043537103138637745890627178732373391282200896550688081949762199645641404066637807607001761613751662118508601581250223232261636140504893816774670968930117990577407463271811382803809630520834080108895635640769339655296048800969151583173834117226221994234967919995254697738042441167844429801412952907697935485595384512488340295575019440309759415845189157541326036172298183226639929484471214488271816664922981998613229040007765969572677484232552585127031037551049538102091861237154428683842460789484231422668706160554638177120183610751720856252808161524284148283494791547029780304382034219474857551396927297080595666904256338016048321675109507030883835267371511751049204579801136041190551067928735307681024513157310659340094183852119447852292098408639287365628302135535541855586370493299550640065158576156793531346222294215185458929699593831188129323687683282147231557967733553836960145525542711942811135040172306972815767216914673496036304426058521129689729988640339179098370876955952427771127810857377671899177711228955562849759220362657441762943559509883957983716062811570139015259670613985118423664719173643529695032019948677665525976937555235930245980986379226659093442770406876432010714175655810431092048584318602774318008041781424398002058632750372129476620973502439075643415674505254841032501817887567620463259593613300190644889240714317046433082750990881220398812838670519466683083441410822042533176742077386624380359663618131663153652750068228552737690110652093527363053094691322638981649315329311494319807564142106502057544945975991109976361392748454562284165440667185973777420115988542051781055217368420088696050373644532302336243731730585067078621470010485025214848746126526310838823912142917020114257299654344718311593376553433907157951932342900199687541601482499542128942081412190263194990304835172818328027374540315380274411882823482371941364931028742385916897390557651526100724511141073619190653931364500355852420885188591525680079654620061291987404861125761129253584319526344060066781309489394809979438245976208195472903988123500593457124928031037005425353904150179437180745649422292144071125639297397520561860781123476060723522065533187197204845281266471722773391603176540665367984625043362831121774301959546912073521018356266845353582352206762452539528777180681569915669998195206169702670582174391663435670926883445319864301983936407448767195068497955734391317361301572147630413423203487145277469649681439191498041202997848417100465254290240551546126879807774320635847701167339100704877702754054799324744757908899373680121933138496635648437568385311537348897369654145592580372417229388138058637864452093881712961747709498333789566458020750192123415523050506144181835161656766160052820808451869401139283423604833484460387259608443265920435502851588602025049751473909640437646422807192082288271381437371873297963671950275145131445121161795778102222123953989749244527070319169723525040814760125112336566295697779563446890050407069830130665838660111122502343598116211407796393972874742845616839551124746257774904137622777297428996138690876274136918220871807877668720497911037012673623317304371375510173993299344008623688251146269153313982747704527405191930147638257102801716681492458434425031746045506316196342954164707339586038064097277022890217376459181274789835781988646489653976931457540755837302372458965631916960126722079506693910087407669716508699353095540880503747563690932193334566618648010089667080168558021829699462178133566802559675767998515914921501969718278321874542672955596996887636141167633747270912563158251507452255496116146794461089040675573077658945242050918404031081776330651887344177458413853617491200995545638788759151329188206667968177081599122780030199585110263912215238811818945358346202858710934322135012860016816224991958976122736302488598177070998037406933922701257592964105802506088584418901030646696994753016522363291653155548362048562716195887999241007010036734690897278831481026813564304202374436164473171117640743268122286342994620345599890630115983857043763112322483045706327389452545823296599985020310038145560065362182758252037351721406284807865752025430949930663545578421661944025030559636145971181876528821494445877090656653837692102485555667664581256802976947872360817995908125154945869973271437251464092597584484091791582114474650921352183935065412703737753374217350398506046942169968040745075919465352114423230749848447244612660425239683717748222494667582420116905469239885712982590174279814453181573430020150196574134737709356018360955906688074450902291569721784091307086239843180784834411586187660363936406962204763212205541206319706061401437028883295599513403486555659399943096302790935707645857300479455668434517255988005287743801324096027466448095174318471520172922604315198919085570629334122237696763170456956251364056708658756637751058625017583336283776388278078841496166642296770460181969057140421108715131889550342861760187712137204359147542643977198929282077325617515194014571717062990281657621937087825106411424300911308916135650762719051763117935919673615524823556832078695476137399213717595646140814616079797367590598240769831260234137863700712241330352528836088767191591333508601854209340671061760532237957086280972550995484746802297597118166701869160365416249023624692212927927340818825171368911712876283161046890973889037485643340710242493993174513768376618552070308680079960353983285488285202177101580673288601663031048207291579106418926215354188737416066631077447036127619817063347317961222874693359537445818061689654648029098164854524931156717235785706523266756301356387012567813761770893098043876217475910154758759022141714093145509028504440605315920919445599341395060835674153886466070078237924447760381876536529890232723202392070889590875993152968452659204911776967871194803060951992931200640479192736002329901938119010906475351371984651574780275545823717498779299950468528471064708241430683434753880281131141248502407204807237385085869903118893773184996457563645769018858001765110772249528028228466361993693782573459042606929309605179794254753415996148066175057379353022419409343452157723426598799450120314174218574969668428537728948077716001452513129601575819988684082610022176778876378891733151307551773453085150802361530406857872750111802240400303960328704852983043454051958182234891792100303573565256197057469953709893369965900727521120174279497446126858426571384925637969056294598731251599780250265819745297763238326454339239137375696837141584871797475942837478394042363978349909404371390223644822757323921710726380674939286443189028548612162330138939458768253554910056042387646026575450605122660919696019940584124491016123021990885030684895426046763943325748906698228463461676721296775545466163232137700458616377951003296318123289568584694920227384761263054682280288812340486068149286847027898311615480369198644988990378609604219106660537768976097099848341125091164959807826496793566141453989185538930373165899241085139590094923869908909854472161713046492402402965287323872272996468298423307410762215658910680021543162207314787649934107300221159094331906649890600841819873489212003803708922838891170510328856477662139212711979809371485635476003917762112760677315984435391527930777506741705413964961647711656704798257094916841872201872226425033174921181432278824389196998452645932006419703555179967095647155130976464212705407608762859222284071487165136551568135406781598917425675541550511761025633559886732091637860378969774655614057035152768453754466575351638073486754391279172170685302758905872438498390599299064148173943361700426120315239747338455976133533426425134040279216537808533846153732141637929189699461746352947304921623084326022229859703501484141718679673560671719279008109990389020802243953560895254142069490725083417571339811655559763666981764954025030978390049768424754090515311471754858092917497887618418911746268964583141692122151836485079303762449183132945233474538937717680649421328371645506542973153903566396527017974472364783550302866648404388705089831653418145097098422097351367788500200139521600514106751204434451767996616863865345953312407420370723776047528146898603458609392452653474488895108237507223668388043162450061405668271311961625932162140267105802514879052125698280558586843108761673732921768292690786378472419690774472632743360287307777830175878951609201071941384212804485768065412284954620294792740920426018621036200980666109325906310413041731835889446266970469073769352494942813972370959072992175621231604485350124641642204672934075008224840141596327079516292688330293464219371065735019707502220159491797505230140513470071287390584261525887901559236634277374447436788628924956943067268862903208675663603766515614893051710253944888469806983053416164896025999652003761566851767579876782091469159475230062763467633384125396743869772545626034637849779269265735504460079548246801649040387647590899166138335443399036533585640613000650329025259515917627008574160794137625000495292103872272323406271794068563157564879643699323634130671563609360104749309637298035727875586008215618648956058856476366201988620735695092551177876337599943904247096197940417661793022744383024377108163545164788450486614692382235422650841061173356749718260361435186933590701297220814632966515670482437139183117081268097139545377232017477948759329673694309678341053644828402269609131332908278039947176608244907655554838682030860095044398933935762133893925332438607879269240574615390632932698337546498267726112418506635460435169215268769949792440032118008255178284119838846870677244197680760202054380070704903434953479737906000852189664557033574544312919732830531810092417141323752146138464585365642199914468453977195550428119981297224350173440854452172490323310075641922004377007671467881976178121756297292039018536355706853247333232269328152104259346476260121393912487019783800641203995700925202906289391078931251302370812350909306846677701168448130281581882970165930007687592901352998482913722289670137008150211500352652132118088938803825063109564385265318179652083481280947223469495157712855072499151728100963919593602901712589757825247414031435206457727672775025961159835726972759952754956349108806086289426276319823121383262961677624304462894618556895332458685983115379916620854545392935107149043953761183571040271118047988145352324449021993495076869505467906439403972355778416564847665824655622352145709093099206594842085076850000157021822806570504188188830421321922804775239745531125068712145913486302679966546602661672055537646234988057870553814665713968864777792698239135433576513956850320348506815796609749022808494444905140331397596060288142314172073190879283950576216805798316576545669155522322500271723497494936068189254134450454268194479247021391361141936755844688145867070806243388060480804874396780117199988485885853704774768617965171504693169292093003156688939010869385378028281683536501716740830012978656820482010904552024654815268996172388145344849778003816534475303323235273926792366443569791428495123382754971654953609321767347770451916999360528842017227737501546631215218230673698187672021681127170348226099612643697245769293143307948555665578583485606664968448814243443129797516879528992499417569651892736922844224227139392219535734976115615058683733403193012156246858188334411453389895308950345287241552987766899628783006556742432434182586812053790505456704532095857557394571221224126011117662152184810619801532281097822287960612434470645636205235532369131581476461229461903540239840544249995311185340514583308304230750249246706176943765157537510321998742016782685864083003071617276884469695366756123031334109576723641772421192243630013034300720122033803452683283585796213612871629088395007337625366295716324495985972600214441265332194519845191936556510000392605656917075057911843214919274913734399609350808331547497364017317368899301164219473673837005660523795509179405342631781212905065936797673604116673716774987771630320738425411009025602350013493638022941237647079327553202752431200271496109664406692753683392492393961031485172988266512046598774295880563499903275098591302732365049549282062222259440759065491973964741577326073212154207099167256531216492622327727022558515646114147483320190387279489176646519406939941290173894662277274401321323543171568712608047666184441069828693677478791831709976516884547189260603469942930204541708349665425415979350931324139906759669150759990247526514427997839174466834858310039608192289250720681334228899241999004898043069157087879148729638282202192936933810313484599994286870256128589092719166729852323205746018255544001355765423722480734603889192083250947143442918383990305313122946464410689831254154124494124702144467295921798416432752582255480139171993060319550851802266765265163406250658617348157329678359426581918748431803092298746497129146505367560699641049365306414097906304614429126457239028840719247594340211814696102970083898391589416161245965976185912394674160865905769108294169274100284837525717368012405583984852100472448188072637165648599011600995269109925077425436920690658907439668740630927703718965849391460027891651736953506924925618640617697858538652631025456736243346002288701616801910529083390268438549277996409558623429230810074265230670538141351860517340261064770069593068726661037337374759240893592082879284075331149470275078012590079890572927010317633941181070801220446845027635516484601475545508483771829380112116910543159168922236567984257549264742732404914035615455227269790391643370025738502854112592087160964531119027341595354914065901436916556979336635674592417668545463955889907103887003501210669348606144251509900864065160028184517424795996500672899117198920918997088457334686824228127054371718771092510876438563872108071911061374557854103176515795810713095753239025071309906057590393856088919069538479093592908291742008918515319826270592141490487898230007966221629664600245929157990107821357942758132813677183511015240463943423522011894541026547553421759080829958741454630426024247100486494917622351233383932490380656356342293559548795927272858122256659760701253323683113323141676216117288167381232921338834973496186037836518216163901544160568344325330016440157185314815451164365692992661365154854832165522230243961623346415136190391503491452879553548255449868188060442090979273088730739208573881075002820173715367022913002244557521532360710181796483327077942802084571472750645319720795386115147017734628846894596853780005338203228408915475437450750094563138408863176320451936401437873072034327767317652870199020019959803074419304100549643436218228521006463328324372268941328466753586088867601315750666860141001816779549315988239360178522625328186144786653288166050121715508078790629511942791823583763753422783172163086728558249925103032476442683877012046370433240197259576904722027996319810430713468443271938442632522888973699070481569933336448456452777306666372081195633208463485978804726807037733996222940432252370810926226392967338674023493891627655963270336627614043819782862994333737565169747579642594197313150836114824628496471447501221235378246427440755994988791284316876846558508570674925674285902195327985047681790766744921670308732651475897879354271866090973391630583925897973371204876741622791573091121805800503007291348792317954027695064206428264320680349011363378590211548320664337884859590123301380144835456945660767809156746529019299234779590914062766817855542781211811985452157966074116614901356176945301973294148865777540532376921312575772025824266168797009087775454827557858011989409504893685587028515341834281455079973755979912682122896071326790904632220622586802782006223206736340619364900173686262291474580463582725626105744227357798005449971602045788706183164964001703593724661509565975613212103132482712379844601523292117267413262784089840091269777621393944107518180120768491614127606730945352824863264442162423568537333435808657272959645873884840332597904011280018138551484812433167538597639780371215682596341646090954980545973762133153329824295092179773905203736242834587017205116240772442947885283966002068105431180057621093731828882596730341761723095904944788942160477837644762539113312093761967416889620309615144070941119013287807528471114874944835940190824649609276824871663878783704827697219899701637279628371376812020683393218734397318084525319442907551076211911346463772577491984649183199879609070046448478720063291425338797678185769485749276386064708639520933457692494102141772592009279465191405633896195722784697406016875262773243786084304934013804193234437599153376200991628499826087509591663162513142270725123806898569661808606538847944550223966280969760933462853324592727456449813305187028007452766068675637173238552113249496862729364983495125523096400253052391974474105149140153002627574985203209652022145484955841960234152273172274159647408449336466336006757104667086813458858876625677045837713532499946788756570572099031813598200698108366278230914635933866845101630043076485591445737438152871965890853261856659163248695657096800060819359468228983097721220900066593269490024941884221695160572955722291932583296992059746323112326589094702529373855799498089857593860088849339758417810945290335994370153901971743796456344352114706570621208515868206452949329617739759592286837995635487516234424281673757521839097893016363632629439381359331011570148842344913456934816283334326648989043936046385807080341724533395790645090714139412096814267578440659583147311464855726941284568775172045557140543944400201576338269259087284095640796506408883800460711272240668849668559407836189418996166362733803204220408156493873795570825035309771155078207405653535391147084163220458827173814860489998974063183164094285166543859569517956424656073918871709115563163628371450091359924595988378150014851692741946888946968665954073714712024832366957014664468317362705425900131167736093721232370061954815778201085428431644563315857680037842230371044530478431319810546971930361143957246016522937246691923243882314226451688129719952861581982526098543911846385510199780433055200182587105088420951891678682570034593790593070088567723247428153204035911776475778622935403940053351772518727898451121582620196221734280009836751254355466262663742423511915414155413778145277977758841683882877295678014303471173169046645252512916793833040683170173355573684818868089836111504565219531520433490665289628779191801506533111405514250375669355797312502777750150932424489436912177676633626709332560938051422758122883691475018705233066737934596246747336820991054306982662799649194088417981717348702092285419608821134079906186650655402001239505899698011806125368949450522322480280990510935491836681049105153947087439568844547303970416317061445521690679738177802203980251465648124353637131643353604924129164875615608834134205861183494772228193181535650718686380598392545449531663803280248695830416847320968227936130402074351069260744100209907297614773739100085924486977011898935368126542875754865484770377785221985073171171383293620409171413743777310193491471486555807412882656921143334017860210823931702423824570356447969458198640001889383824673613873287762538075424045632928227272192960873977734311861524089803436750785961040973201933177002477275205057520776980029982275363142398650873545953313114241077876075092392097864397981692126180687173351907113761766467052030314897495118545153811492070353576133522003415984953506777197485909301327323013823918776434718548814675354721693470069342314349109606302067798429542237211709919304369768587846011239890352374677791326551881129674829259809845012546519762013637865471990271098244191228924440430806319251008035564418705730941161140588656240183763229103983804385592689448308466759304971667197964020261853114484468858594864145580971646279528202640300993869669632474664579337833999202415678034019501054881075559924646845497217206242123378518929017387601294350165355293620379744358124532630792774395207809148026270023185306753704403972862932671294892955584308620176479586908916959004897563631253305669961069406990365448347716649479983059737251996893844913920832280161510454713680426420622571392971304272502808364981803615487631406281622657571411481848733705758027013567644733503410025714828604085900105327808793222812899852220637036225018318725851935775414696466657385000200680279167573402134603744309288083419348027809108461425276885889959229955989919528906540429505552068456402600963830260718396794783938654040147811245249969188153210594908054864678245538365136280707449751176774386915837297945513562578595819235440894647012003934585420649540825856260374247840322831534790789032516782260710988263425376251900653990508931177372407202315056981369702530853171485587880130405524869924064951937307003785465098028164014974646958139558379965808237187219094747549919913675267744798949863608964800975963956746787591261472254836599524853828035247411088905474525290427272127778485445498735067456794678651232548367876544647107983762617258440314538105201276766469675007680070656586609417489399305783199888854918513978940825178443448074124215703772488560834671229695344121360487494567369177304726580180971457745511041995694109340960072474378861028183008810817635832111118832398425667949233751991373736085150451395877698107347775544021664877237949386481264421227311259036369963250136176256939831039418184980110249434909754604272696024059638286009230899010027898675008445977681428108440097377698722848869892363090635151021455871643972570788361405923031172805332474511501548217848427342629456734895237859996220604129510079055870468906378892417902157966654060899616504111470930303400882020545373061451558362698137540721297929435713591283572249070055105413673166369379647537458620313387498711349453950997448920413631424743771544471790502567489518150611411435862030160679893663739216071713421233482779172049415087978625272673797806423837128344815114082598087446149355144325469954185060219072747000406580483764548881724181746113986493060411166152952701273383030835307475513154201892477173836644540695042467776041657239971151431929626722340116053936036863862135195314061505382069276243359114058650853995976598507438592037913712815372618115556904184401599440135598812839866949237518082636246665846684676081181639969181020273214637321701535979109364489621530690037284867441813257520931753626605635458288952650294112403036744445584815929551958914517896136083832009212834585173409715542816695541162271635173034732736476169940772353532445352051277396615535894485209459469459375215128373085445151239597691124821223647222975570743972859764158497379623227982562609541757099574474186332014837842815290802385535499170187374328594670501059830265439619554413499230676352696465326633488970991072268997529679177023330370905449689261210146373545658906734201066985402149552998922337132906726202200749693184446449747984627845199868321553318785539339959484009368956868014113086005228834677049994637835417875470815528447285265903084461820372797578437951688101447050065764140266053475339768147097025234110529957385275554513863753026160674167798331647235902560349732460463781526334679986577103607719631336215131294305448713182059917948016191038898521298889787593596988486901677314445077458860302113419334086120906184669013784466952088868255943754430498668178428628468415582623635904793988596962647839216444763324135612234873464084810072791300743298231433080770038987338820146994101622047935627618854373349944259368741616866890708422555937296068270605158953603104584119913786543003607728090508127593624949691433742019492675884712600444445011459201046050430536991977871168113251762505082164331794109404507609591657395550002495750870509101861067106700734361182265873053277235798344238263581141277632810864591727178954251407218846140198636050501584266783959213171122771204055772430064580551522954678586988943488030360923710195860237704217245587684320181294458294665381156266851670985811085129386056881987392664655320392336853391998506263444720373237066402700252051864433128354382934334637313195894822094511282444202477488364270685163964075881901856735420519138488661736616548563899683571240603688219079918818839238864288438940317095743578807054459215837232823928935612139124968461802660174690085018253536685515450750046680442142542273545133071840582240605557015981436351913915256339059350383708940176521566112106226358783025706901177368211422784212867487844358771067837249380332517327603832097691582793633805661369298366310989174516496184228783009335403615677661246079370122120511549866592717080879551853541500671514502321487330718645211741713400966355927300301317233243332578975901196708068463825769632758398132137941053057460809574970898109734107110738111991485892722424215763103725388126355097815362206605348838296612876863489801577446480308969376957668250412671446425936339185196116733679601749312484184174374551360260885355982424502400782252220495729771785328180754801423349477920457789160140795715207276136267594387384916306449879034869347290045280398311660734932107354777390578397157873442782801078725506135860587751995075423671274697494332430362336104960386099602756299119296167609182060711825017759673008562862517949331151142377744873974649189433162346249650967601783448681615901598985311560005214290230139256991582717644600377258596549053976557629697321105536610797859077654929891754334725657815115787739220628103476764832983498559457397761902532506745437622803158623601331867360344099731554298172867461826395895490535443365016759446785325424334237907353437545227595985504973256881495186407052466452751186085436895378565569989608326108633846198944089582953315650541724512135810213954768997942406565639896048605672504336651242128471828721951725361294069176916101793229145498468325037040216305228185781033480565106687937019444647254985172310832497719119084196803424537975797730371528899324415130044585097942726326384117852904354797634598736191663066273551774664360239391531309326080490005876605833976191790906578776278670559452392443616253596333903942015362792320004507847350547595711016851630055206361367021405837274711100243413254711124775611710426455164812548263361814031934687843314538715094837457984974347428222466324424862319985464286922859460058354636594766504791344498153265345600261296809213733169649021300080290012289380769081056995014526832969724853110649302700052328440318630728239977480133716346877109920019513044371877337257795532813943205422739246488163618553267734535337971379263160806067009189685214503280444758755553494203115978290583415013317757584494562267022574324581175486004762385399496502810524018109069509293319104086798992310507491289911824483526486413840286857107950658584481407324862828539449461444599258800308423883372847874075019032725969804670278183553720567983964686342367674774263680868198537244305165558784413153200251395687330396159877702605007285413618996728025666988861578367201933736254810896627816483260472750148042962216390298049881891868690176771007314998333785450847413261288309209168979940505712482057942753264098549148522374721616837116233359050596329841827767773270435771297073554842505876271746923102093199231100535244013832927105474027399835741285533351150082703032497039455794832983822764506698878456037654457729059967147503522066749298473968099920010301740646603373689708466878484763997286944576382990305495306982510275192561868320782446600367761912558041715360344337353696943363878299888855660049623155733498230725256742951118899255829983706429495313637548845537407549668571391068599327653931134538620818237954459150041717854612488474317400456248896141689930478027926398882754289814319162622330423750452986943567290606108299967532950022313959342369436060802749111185778215258063255240043316344120290566880136782240644247241639896620935509723981277514179846293095912014280564151324967167225712539758954053986259144964394253261333931549252737482919669259882016662799159348487802629108774466914317047312162376722954458247775434383424892417353848411746497132010354183456055042766094019923339315944938182431022911926031208935806540849496849941507321708567941800377242728965376355407528886794914341107773540932838390790965487585796283996873913006523609223737637253673752691310356089440289619836443722354894120944724623314667705114620829167029885021869745510553927859888608789845507720230802478371782497056549715489500624935105382652304122438687694488292582652642751727566866854766564858373354393829434393358156867456976097237878786721406154890278375199131160267412639072564892027751113705418919560725327585289701158937522719962395079635196848026863580377301312911794105423504909840201880330153214993112349263142822580686279480638021386967451290751617621390909537472308868186559862648484978223020714769503047756231835884191959926235682034691763278548732722499466108730466735055732795751149904662888369788485502270726869209269119629297585025021986615971913276839894896035622714509804266389507673964971059308124311299350420249763996336609728635292351586487465717070493567411349407507263840387348328138437308853243139901848725317169813034601929191286731633185292086325879497831748542667221523153301869032697021721951351548593524483524170699701507437212285658026852920021352446580180786355992193285304645614931002609694200314344987228091566690922797887619769325544920109098416053037204409447732085827155020266902228220512025344184376667505720326129892239793516647035556754287567442840223899667158225701374970243088108310707529937180121831165103676786610451230178899143997975863113525547981956980270423036133328970878587112515826957568160791994616558369312308929695368340282393010555288907458490076850818709662044509927606839051214199042163995834516615453658536246064837376402122457475287638325758989543877155268452119185687004418280373573990197483669169244294522759925361809813492287259947876499566826145381076896146431359940669836733551242936540657521680445192884248621383492118564744074482681997899487228798887567198297429132134263299521114809959349454542288349077809189095665334491033981983452026809559249015268261793368808463617063682575012073564721723438138564796641406715220934817683075426497276790835251530320286873456773961470429631911514223429313048603198487836890295968588882901401845597661793605959197146166371266239028846442869046350392303268196536108723074427233843154825758516015783195055620753006307202598293034934982027785688049541726957910466133865481202341331862102841563781690428847107494605586418465175816186630006772097252495239841133371123994304906772919626539632250094599072358717447467923631244499026814491744109642084038610644380844860508450850055754154899338068346510763476619059785586209674762617005145288680128395364340522062055535467746510042476982578474345360977799343216286173968243406876817646633251558329668178870733059594388480963875249801973792235824170263381040737131512049268422807723086451449343949877659586926244413441853527472679682638419348225547802650342177343915658276794545118112276411214811807955393143767170551745075105074863345315236430940994544450286237674163747087940683160621408150552651339030942390832304781041690217483940097415972570832870911535413679103871122956528374415956930216275747672001480320035505645613278068486220023390725339337554788205434170377844554129199638075614062542128564023893862678647439970258686235540685473318670866636329795929727623021754680072578357636812630504336562476459940797529187619950648310758960094556712270982920502234161305035601015056830637112883271232571820607749058918434601583025387550321501191365620184036713775151072130872245648644487236593534890353397373113182819129669125392264853611611257227887070085169380539696650219763574648163603428871649007571833991218408312286784125890756431785965298634945430227185302012595018629589215232653519570104859920409915369171829540037210952574778633390499930739209944922626920155032790936372903767795984484304172323164500718418422606274062009640079048328992070975561736601622122527646231932871650391338144747969765022506533680948791936365998854492694888679435288130303280894060353940888216970789046099680121235117402002721572148755602052009746054065893482068016844181624412868236850256913930855517752381775912648377360980969010854867309859756127639517339101244980308267064449226490151281121816429326262887145710628171729729269800449308785578322254159367000910802458279431752089404098338716807197297196115765994760867787730627763650997992408267087977038454526478500468530885780224906474995240180941801147229584589222380794966146235451788471630495436209527668080933731484003934063595267932583585154604755781377740214448255328896725812587916214451136949240008586435896229646520135208194029562198757097699471428619268498614276967737009316840833570711880426795929241756722325144668486530013707052718479947142680743921755549679236831771627441809976997380689682684933850859761278444326967619176969903078767848576555932185437695703616698681667655069145207211609902598306888700106419117803295559012996299739418869323691894491974471178755691743373899868825650243166960674314092556235795731030823703378502316512942599328966992742493056670789622910525293626016094252347557456801280071389065221582834585793104531953483875577668663626960994189498415394617015576902892500421356815248147518880466972025143882085077808751851470990829870018806586003342625252726874424989378813532260185006731297714355119312359214329686287304770692810245348315239927071514070474935284558694454378392961305858361436470992654590474143266075588710855868282745600417987651450784816050502069939905374192910132484423806831047582222349935420751493535794608886625457674007048891414853747643325556167297294810442206975472765122192867632298480293502850875416237650753577569116472339174869115686996357035995970787494182386464760189151834108701769299207223969632857481318426943176943837011437739601027832375319589114495266930632838750596439028247153352772917971831249407025858757849215179747368943477525784605199464759217422205884413067853575557493175118002731305597627899866959024896962177171258160571738111995729769720444522600719066083736931714239762662049670832846454126850301931307571985858777700528145225973295779215735351200978418225724351587620636748360680007675028788345600589773819491026055649192890568469726735320250826022682643468965063951058910856105669931302756928032610941254343421361217085428952749020039397928470763478877413197936357300531714540936282619421979275350250637095519501085944799832046104015427844407587259070014422722929302245598690102542371302601171150792604607919975649944057423707796368332998298336040319899621193073767481820110363468106693786994375413424633426102529727404829508686571706595959132975607130931764532469352427529368051811738617055161366717618063388813201945989339308349982187913860565743718187921944413592298168865021023964940921239172906031297044434163225282480135233950165013631059303493041503497970490491188367528614921520487277246386774975779633397964687792730660375287743430748807373415884501692464541992793551490336660672639040521538064043926605353721844365116139970338987152861670421470984994221962728126664210695492780833644696783351222087340285167320275725285879317773572122146895224696773246641924183759478448115526867543567918306624443638409973250532207188022830519134517223000353735864213949045903987882137792295294358837249030949594787436052650340513535180833407179181250523752388117680683846671277388527837259480449681005096959508741962289755603841011129655412465606465367978127411276847553107849707613500788917994485694860006383177437894090353555257487173704573400065993368091980479234880909629647201559722989719604925303123815288266637051703683415746893659914583280924904835648871424451053086157534110493273624725086293329761519738238834397518998808704664979910915636505688103609971621890323250344095164080334793698442763840561343390370461869239229295522607688272330239543754944616036042850093729851961268666429597852967662967795586095513536664735518107651792692685483861911452416432574763964208473714668265203853586830339492003082446663847317918303188557140159751482377191271032824226470866136939665005560821534048380189230143696083839195989736665332432369038382176757129323212221265921166987842400971694942101834381637196538573743984567487872902924662603611953507968264068625511007975581207085944351096211922031770890217952941019742121288944955526800542148954644357765186931384203257496525659147121545097033275919163385806833269955115156324961712775578420323242132645521767752702688563070911447835694016807109535875510775901530580083668214386850689248325557758262970317551738408168205966814325216385060965475666833696651403613179170634738178808762823003333137025366508081346513892126239234541348114072455039733245093822964589498519907981788679416080940362833115235895658386819718681971461768654220258630096509513464810109944441278916990391131924932405023123597593696000549071490485103153041540091363809953921981299143892327572094586086724810093162087804663677251580117234203840553510902984010842138192835287043107557164887313240977905086058404170199555983813496439773045008144266170410181857197280978286031359475725216770361729248637998991175991863879041372470574676002901494383776450916086430297009133558042763212072392256205304976749072366162865004840536610216198246238322892583737039245142578515110555358056122370044059165774777255495338581889540035006543332074532385552357388567056752787457699255358108135084405533967245749590634446540698815326517794908705021393913134854157033813981171342263477631230712998531148243822297226162539899475556821650758434678159432816925486054340629482971896917126893009149073025647087004677991883681871266510648975266328651388350873691795050748326516744458547111714857495248928469100814540484616796746047271563869039778620332078987366113808500988932897318879156435218371539733150671208365757500691395398709351243815817098058533473597156901465629661903601048532150299471734541835014624944690886009182254859902485693228881274532257436439020244605276364406124990522829705772771505584501038678005168843751478480407198084936199407968038218617022620120158173250375179476306311496901408304857606085589997270711669829038347302258476860322888178829378757228082250799863584387231637942154076534365008415108108495434115400853573248942512942218198799411801038606897793283529592461988102389503765386016114096548985119543777418264504900229638319368079927243044281925280500743830464504348125439696049435095007612078753190381087848803037344205671212152739499829300400267559880724642067103262852506876494821542733887304761721976769074305754432826254479394381892023116966630596026723940484483477688973831381450185573307444200378254461988090583496271606829468957052962544381656375564895680670704362450651469541717108378365490839937363280515245081985569161021971139880354432692540050695731043847622022307302799826516914908514862087145511433718752710577073142574206014338608122651052176022108712661414438385891885459816557575393504462623186665669562885794132220609606907837341430712442820852369134716904763457563402439623277994559834546553315483138187472314193180277125315005965409216009111101285187501035045918191566877509494384457508843098387430021280494712680008764951687630103029479161149882244461142767380504620191591875401316693197406008535549145159124307761317009998096724439863691643104722839841556643553999723334405349116178394210394844660376882708287003452837766833579776506308704187571279556210037325764898171693003397954331339000233345614129445569703461781666387612486991721126605734807688642664702955284160877258718184720349061852951097935932246406476367801138834431168170336211498143957014347783741072898929859672313858095237915482972572730719587380029352758438309256479421312434305549766866614877633652759114568336889565054838107952923233477978964916863964837702308287105226824667324789443769804839143182582708299171276804124511423699077552014725306656231607552548153987043932978064126405429497159685971924185319155376296667601426138031258874572015387844600907040146982535714018571808151801585147534846335563769618172431450623582252279502865023446984798134129361432506345241039755830564772800992295795581440151956571386039399818785454440187925790647161515644576721747437328176189220447251844227372231027118767890856644420393362356988411514002128344318396318681651926940913697520549990734742684206693146162292144982876142989182013480073747844886126536282151888828816652896537807497214419664414180296646263285375410083594109957951937611350812327127618974763682417126986198674512693064668130174389080672174460529708537739562735364737594702929298729147017504450823212371295539267892841639071229036765963621398285062133515283237294289873084284698486306006001254400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
41000! 588640610733361838388017661862934902891984704269545997696379097153840826632576263960830088103590798460445271655024993692508572128004730272869430395979812675096177035404647713402038121298427852319572900652707041475582091839827510858384549180572721110951348005849727086305096615546558801313216639781771579472804777945680139482886616558443179308077457534756644573771925764995167141113468076295654374216537567040419372387294617416836744801206287877174966996522349936405164527409667955360800423940219002563052760143142880700235836983837531970809120169473541715577816483120039269134509224570099556168317882248944807775252526913856379882264835825508353104043039221700222207639982214885297543315699973528218792812777500164417673147023444295296680385709837993980661003716171617940898218409009793606167277898284141457201558694853286519972993561294669505888598403975900084998771218003253486481064246590935293080335101822980027093612956889275190831308524129871707752239536364288230495014937181864983089938996958289633324424203437598409762008776096313394139499256243880918419644729312626915524329654219985960414934028923662948081725282604486084991605349411972794564848039900082322106989070173853131100337520161055668912927705025700989209902853520743331273418918325471929271511587236334866295108685216732411439048049455168255312477304201584906114775239808881761024450549694241915158194225533688871998087559115454499289393349769253024315692121987311278940398776143007828728885703267227487832906985466604075849460955623155149484737891309290803205138725335478651721155624834879529290760238292997903617521549447682784355928265578398076482732639593687663697317781835985133872967974957096007582651233457931588706262505103561506034612198343130755387175999118903533890838545086894688401116946431416412920680003048458904241833160386221544361348506888645130395365918705233315300425556125317255894415499102896750885828071221493378909733854720537032008599831531555589232946249757270287237171080979652470562823385210341052133247154676392524850633882071645347360670304617310342892345401702923617492972554021168665401886984742617581028138775833165444961649162852460851401472288584236180208580958571118014389652333238628355042810111475391665746351926625071393100349218507055400223743464086547830593501758486997159328305945652716143688709042962233757792894801310625057390183323172840532084317393623358820892932242918792710443416277603258115879587578480172431546503323229908040118665367774407809493314774760696562208184216439673688554721152303347506256608559362790563440804285100483638366668785764535808823744060308613675900555006244552895216156269508935939508626990667109905303341822062434672123032714213905554924398371907180927945737827685702799204278887742080088856446102187780970086776758128067018663179215489408961653382921195703904591281433400710930531019427593286531977524034290031992201745831213707861954192378007853749828718713844073417044655994290487041467762933408333061737745636569912953399904067616239757622782071266494426913992639546174741891990039064044863496547673671343009061443112215909199567598343855528488047542464014562129869155441219226928734959070806956138049590725805826141322977750986479675573159576710434918624313061935271345970553016050413624629287997316036257307585360431454675924565822242318091722032301635603282487068271698294443700341593147820713804616536180173083409647750230464773687339558052786077894680195303462197304712201390210551014948842073620749628000300096783544952661670058761829810335262971261247041821589420693875256306800335166186997160286709853099805021315188019021160880504753133496897699119497766355486989481403880076165019356617966148212130072282304642090200585457532078645193439724163062271013629780831560761016494485601895502279721076010143434194712742397557701886927972144357306117107233485069023014048440522420526081186794148847052083141011135039257579228838068465441198307010831907694340927161378183692830570421756101200108809971258745832762519630743743620774702988571246788681073963826955784546373981930546589314175308982083359251631633245248604231772857410986317682419538260329681039804589694962700828750098534667701070875171393196849885060278245278697932258350873415681445448419920609786369838428928634035373512141763437562868651539088107867560113131836244309420829793230837181155963703968606972259945785515710027188698612052471102366127511629578781122782247228550256038084440836879615311957637609831536139706659036087375530703287018968667939890586169979038870959975005232554402940215578941410681006949567049117225838790047456411098811432614580525575562854995765642995711169753998395650761503353883378750441839745198037002794959352260432726554828465285594744178694473063125418421122708517703595889499291482345704688690429196240982943553021839832339327393627026035567926165288647243347847494387894762632636644960043900026922587778971134995643587640866312987681182685877071718244864240217138218968086403702335179494212050994692642391777194658125319728450641421154933338781691392378044991538510310176036696080443971429127629042101517342863048739254799488937586412440287789084778151587357450621406788009125539870251188631796841884819427295460198004060789534137003146998866028100437950476738884233282447952921547784878297147807321673897584031334302881731987730389039039249042110767096151861679432580405117551068365098413423832031875150631113606558731740015369996782216348612404264467774759294430010387656167088779293295605916352475633520446529457030459334102523461518594199679338374438981419201274732004643293706852972845422169582383571312728456808497730224152462469814629176196571128487940815095800873196136435525793040884320198047465910460904959875071162700149927201314680355331712593620360832340091188095661322114248702671763779180105068490668645517320337312565004037672046751860687568440368649242527690752247378456683967286010251941769331954569914897786004052208504882722609285332775972092378992652738875441621519307853201630399247415398772906599775963111048007348138373449535341042369896234871909510361304991505961011782198888636083321871975145379549487607155016438969086618001938919170267192469573120409089009422010212917903142373791086237531679180673992915449015023529787311844346380233249368731802686798071501411230926340208314471137081649882133500595217221767873372358297816816027550516282409514745079396160460694965914683428305419794609827894860568313332263004845122355779503998610402680870558962669206210804234368247099343115881013929329810035428169917038708282289145768274522400116750200564800467924902132643789620515115588257402635961600554674771813832912598069312207165968171230938175197134162413225084274046912295706357842246255238570548287732817309351391333434511015518774446829191596367149655348046290238109938551068075905192590620494938284851728388641028217365784015853103792909743470261817992600918555525096414771847635226960897219037849038452932030168024066280366446521376190239132357424661394215766773157301985146108976054540887959711248017598121774889112734423411842709433394993978740096904156686581202950191160411743730848086729872001165848771041944566817207110657094853586910272877354036559702434168080864124222107465934311458612019892910781556207532716019249037308808651660646782212782311013631433092646808400059382082946671820424628140695967098862727112547950891439314931711025640901875020963561302644310788504495444817396306614078423380099916520391757588956370505380830811683740021513411163507406116391116896037907139127701839561466038826604616486548657713835519187368798498492930996350634528131716989267803573479015307154945680638920192450171072992797147622849363573407787441437203344890480862054656262817994321890040441586712904704451981884527669009708791057537106753180036237208370774860496391877572618824614206538046151133310143730831208015480181467330863536567401992389645419972240285257725914400196331828395677760311337433556189171383631959394564436989545112844653307761474955434930345895549802719367402014074318545904287961919943290854905293144596587570695726230155833975263082004472597113155408796188020514735234057632925956251650288341658412128713447431186920391455673509656978454798884810415674204184462943801102564576454045589215756791045282229048486417492080686197280506999319918429320578532912530646949436212167511860413941712519585166882397513636862814387243467280525254500572865239550050996869044188401779711426691941601820107864353998864570080820474925609321110887163328643594386373000366616779865356662923594436063108531702046228437516269355101225988869754475661875773129087432373177041736945477883651846615167762727981411082583505805744280432709708527476386255928821281124657771022639571599114278555418822715109101029793470827891405885695957150280226568263041530522606230595162093500639515059900970173350406752144778556923959123318615868407493610775570492487302928623326634837730432004529347250177030892451832264334155635086647653064770101610474777436320452283327766478905813910495135828690463809468336587810624620269558363939593631819713562041193649599438418329434291957133689987759290183989625407785831365324203001106183055168290108948454272188428751978512317964430132389398199354589516915607548620460565385494198378285591984647397454983398575432658547331859384279081850656905355686273356704609012303922127903847147742685731372330989117929972529152209671219172565453256619001327354541901328580700342379592610371908145820594648062528495750819138152343905812573079648839437181065072641705303317562891757332680102736621870459774115574288983708388753326934578845326595958697908554884877226417241495121105149409303932470326332251235986951013896010455934811071363365487372946743897412809640677618146975007141703308039239379601665027261441903852398086585737584344708842763491366856810196516612808809877895496067777425288742687423725179204999097345504484791362980201609781690711866277381478067064724599016392062787192177747875260716711568982642023588438032883538089171617012493948339737666031014020476693320481900885028476738599793268130618417943126085415033247476375495190278889383038744991053371023520731190288471224521666204725236312668953489076441098547555104174587521248926897264309928941852560494985633767426531978170264206768228832143818254170652178222771242227314547885006014095673806776493146803010528733340296140168442175536968583642086521969631525545646571418191042602903893610121711276169971538480946930120712107549299201102582360437495618216570198897628893712110742344324014619467997410983175718739062428866531960731567895975352734201028122109092880955608711389189507691031600971928261317215202878578542715304515148711603097757997086457120147073453888224923177797287951787027445826946200683534695474254278691215334635873152519452153611154188709135549400975810488871728843078067570553118532980831049288553249931881381423932421314768548588639481648235460219499561752728047949002801732913629524772603648293341243749402098161463623749338129935434863324590645638758306155796730120459865604511223635792387999997974390138009232061144235329836986754313690331003452718714020251515726171030124582980804522948239552891040282288494810828640268769120444407379922369265074210481296943628100199961243359858176272257036276815657663190702167158153890267940136230473103290641281961418078496796660618829234208535473861800280436607198496456612840830867206900275655970858572642146505578033608947259153125541363365126620513984024527577134158169129049999575748432694643872293018263467202420897830281865532547478559290307984045062582400043337188416625249465429379903324138749011433741591864168444875818585312181792949792830298047936390230661122336479541962031055906037731550438715063359618964351880580359521300346124308903600939573689163445371177932435957514054317840361142061753100784210560517388124937770101790410807220778220949459194642049804913083266138506358808256943508894817227688255152719696661262960343778264077409985358523222156705934104141716182504733138097202904268004609681627505521717876217840266991249339822171718501303903247892261531162418842267002964025217348410145157761040836362877160566791784349926402216345652138121501022896939966444171514118723808795533100889900759623543586825917061186394511063583740508119643801905892616798935828094805779780062615514332461011368524154171611301927348847987694396398268201985219916777987969456093684761159766402211737281048963571645611902406885477114314273870470948924135254712767931834474160867360357117654654713965513872294835755005691655397081434298753385587086783157526148895214598719713964928434676439986166362032911566664328293777977717938615807054985952555606070494356230940491033882366560275794374817928685511947006476912445447590299082619010826410409937776527867495611322679009111850967276945273149887070368511991766901500513108950325595130366885395808775663514399084299357497399251490482775116521511052623517870079355352574607785308142954811547848844485176467628610491837777022585356134086927469723372729974084160221439138361391753175388325774121126480875379285887364923200853510569140134159193176036152180702364830256811134351757494652301691221369885643775882365917071922759898101421750281113695003556178716164966814778282045737826309618623010261461310363194793060503202180224922438791922189204238208494619041466882382513486665760635489819472261304107696205623852994742041029582890249518659995878070507238967567276546754118545625462816054256548281310539490643432645127942621672071200741188811297367319109151271482939126854454190011357819871683655091162760362569857147719444883485090904385529851457419885524840396081468037184970148881392145724794586871664622653980413272896540796824257450155749507874946821386124758349697261672751505929559977610235778086713173146982522879191645005164990889215260604315057676765235540607128987222282105681627072202214526412618907785639668660435473842768236107195323687130262525479162158153347930448113275858872361681694016346458649163865400707388101785578538455761614773707517453286576276307211679629012192215387995151544272004183401646574002776863616217224194292094413773293824602652538751743786981537062420057227963644835473099975844691877390557238781711975482684415663040136876581009412968597191956255026046603576228037387397993246918856884716187447870497717496000367504178849745363535552126206634558334820779826394981099950821797769953827050623196276103874514047454290977406573131411661604873151071269571376598655853254973874654653737714836763364273474038365738319847567969868205270960563981957918591836767460334842739371566970046618027385745266689376124598463936264167410003765175754563300140661736725885274732110043983011022013515601357948613287422887193299468985751270533288059822155143367071208925050706019094942460915869879567663669987919851726831191728037578469222784661737508301408414988921969675444608893334565234189134060991137295868865306425118459932325873653724532713236013039261008018879770284883328567130560902311552846950134181058743670489351941914137338862464307479471120963566197209959651225775059339569717693963564191928383504516756204156288267606351903019511391858457249182360554413098149588422761124925156862831671934290229062966861677429520998316097425944059973720136383193443715937338078344649915205027241195688057203382471905059427363380389233458636340532021640864726741262950749597357050430351348003469407159779345271559187068865091208440723080427507811305198355338816306896586829418334107862564172849793719619530307712490116759833747799211842349207160128327534655016643148238292837375399699903621629980645787388873348941804474223322895072919721947022896763441299767267004652622093794288929857221769433945281406124630253708112346476498713854040167432365835839933690801015878158048469185061818112935359834935493283038082333266764458516866325931514385714498297851779003717790063954871385120513966845663221587369450279752100006504886003076603380098392229114051330050785545400472600538043901809526704696876885071266427046100733497090561744484285654567038183346261975496120047744121971953913652578931748848830953521323538487646116063766954739824664872064014998508739405933494211451277130851341473293362425638922509915758804050938580238600838487006779753320992117071300875061134679426096023490402213608391206709234831375580985114524655512713368357029778482443931576502205920333838607104582220736988307920945053763657351636167109639117080021301495930137649603331768819004748891708507719979685503128132850315333138004792110219996985906687740950275854799296491960616076774007986967991637507515760147721214896935630272196148324061990391633169938580348688932960597975133706332870158051532220392957196574199585804198344436273338337790315322331457903085411957400515205204981243182906805850228274228849729706863812789191728490663167236830846024455718893893323479633884140272840625474291573964999228179340944873182662209159959356650539623303278837400828842435445739645496674909441819458500845540002759557856776932272534784353521452196982829455345231181847520544395431327256863620138336617557135396181390845893580054012825487435658970079740711469999154094836775193118089813449800699836239796912236392579625901470889078291011597766756288855472055394137863115870487694401243139090636948415091374593988467919146305364173394842322117735011324348445809028446925170590405480023897719762264302935592251452943380213732316075545601024115043733992499261402718777217385575314941446319327747546743892032194165479258406430951244056296838710699130355372061097125218044637973931451339841654186356713404696300745962465257249913184533202715303764888876980739710725672609624663862047916572584557665855990262346306878337997153230424953580358672503405707220736916351037929297948222436818987827355936530548989737375265694082946741171741521638904563495270841249329955800208651668044385881482820586921601359382831657348161353641654146552700644243959608571444323071766755463049356115923652691832196315465490007554332854151097595133327814735144869736361169743974654521125792276585858608490143833673545963999800903243698051846882819507158894052010580952882020483322571235195254701783621506095897555465129704552662867797357207348643496985462682529283477750238590415737618885153804980213361351936414408171779005263178724703191757724917944331913605613072337865215838624196383166413814331126484442333384736809602399147825504218115070580567753304813665797604392914470464864084058718138476626635010752248918588221100515600278079623056875902117020316025320482425279996872463986216945428945647161068711894133840502589181021268749829268878147217266739618234450025617144378917690940501094034069913289621392282248259897996535888369042322480080616365792363515132467962772228231391405516377659812931068013860694782843211209936685953877830868326106383839722909696807628089238685333602840342734179520978673111563348997492195454750368196012270739554602932320114663353646049551689573568877212178056263342032557030406870843167764831331746993584336281725972991549873623264662508917430601482780542461673629200797135336872004544917890827043241029710646275613947369049274430716449440026448936708076382847894787128004173082407672630827687182263387672814888638679256509212733930178188408983102456853908192959660214579713838819173243951223370464983792041941158499952103671368886816226142411253256170929210788132045035447627102110866382516251519943236451005407506853309668131583840090813338569007316623928145238952201661512558251728495805833075035689203295185511110242941280298307652781845958444964432708329594880839292301404640744045341583113568319483119819686537693124404932319587362234005446741472232184427140386800662381382732487666681797335141919892428831799627173420913910822130292233668553747132120176897183967925049674967745504410649289614581867484451214611864559996204888713146021763591500735692082321024872752577653903063798206130280894679053324829092457510787530879297214550042209805639431173096674210729442981277110206493464047948556875987145305187545642898439509338263264874826243191217238035040622598637927985585829663840898763323642134350666995199963453224556421252857136316123178787258287500593162100747366386511492324807327387945478304744521120546268504882066344294975133655636475527007612445761680091969436616288288794153887343921681170188090293725885081377319388379720521452189767208373956060026790018240437064381810674148101385584559303158287188196982948532640217994283443517645773557143832933271563594985345693413342262044643294444427570751075416544487240579833966908385807328208462087164788761510500159730061443734453789165524054732191418202940611577370517151337502330310682513489175489901746735257996236630335622142857697831223962460317890202278173648056004391844628358418424370994969136357680424053407470403767821667912969803723427157299699367314615640944240633254881961798492073716176227809377357968305499823242735240834013641543091105563326104913259400200727937134678046050139857529237621151678689918947327454508223430322267963266342672643700901369421712742276461845581684206845563208361257177008724926231101644237373794053595608031076769206627381346915952416641530435881729991461047256597171887549379154775264837630688910647331403295711955625490461326895291095173806480733861444898592678077974306061426267244361335644057537864048421375758968060329956427048661392622714629291589085105176310986956636876274998006624633945569219853840801338646196235849380770234975120924687565852519169263942448402167134295772115194489268310731391914193352988696896759524196347794575289168053798148140432639855419612920516398383514064743038583473958704675745107156665959112529823626634082487805000788184659850917685030641558479415104806836796071274110654187482741110519626244988131509745554386021552211844322292716910030851749914383645066353988666869029516096211989641506986591239460009262486244021091466120470592831675044551226311742384198683435072185943676388671900096941414425958089088713028839438541529460299465827061390355465621853194976388096846702728928423266247082861330748334959327527461880717282764991501095795221834234384331218246321774867889065668666653131520619541859265192381263840101148096604529016906274949135348172634556973018684619847378589649169420999236903627818032825797075427933337795783641964234650836902839666259664936322022535685130435272623908453017484760488364519934974524643411447244755458738674980092832665793697804448727044891777537133308969715997290315391990425312742916007370715851010878169291115151588418086187915256776457985917900037344957571860695425421240067405734817434807827908102135039646241808964071083847934765297362408407177411771834175309625381803531677854575743152763876227531823522337600099240147996908786767611480567980969505147519747413494086589251990532706165331135499848302390710820262230964481133118353633337973317394474554892579677558668399629210047724997807255136178240070996349842295892270425337547182306655109694168116013223877142061559976416134057640607718027217183700318465055648117252023836734084464216911015665622471089730071749860227046075689500257589095851285803756157115938277499515926380431833477578703906238975277410815174147658104081142791093159249776693580151921512104316801226807855967377458336757217568781269242318015770136689849516015871747074538059126808019910717892323310238873268078053015300829687892990998717512435524487615234580861938970961348120292772159308417797196730490074568647438924082432258332176153176956750555438644163069998455429650192124211186824269527627949207551603525290790274941730288109365641868788264452254141156928629325583020009288911414692527485808074979939034364316968601808629026166154911744145954167767479408714569608229793943982389500300216097735027285804469082612780835929394372172497056853608403463896228653910741487976107832412509967438707006636418376818111812932292751791156484373829870248433629393762062911582194453878113577292809177509447902172481927984805087279977891393144499839705871506208953917561766174652452041798758669061095225827827923773694750990876446775517813999125278695927359178963932293302251337634213591251564723510516548537101111746139641813984907787536272048015016990036700637900783417175688126643577096513388629724956166759379336369122433100886586614129265825633622337670958994987963577060010214310631812432140584985124661854686483059769589767710576107561760572454353008505357830295688697413677692029018338011635742104135755318208801023523326603390677444833111470967623461752769216471126185545171954579411434219470257486182197231956491127510052532951012864766723192129986481769828956873408164388680837107268475859679478536365885491320411801628574185141879546068286603424076193953897779509125013631788092223830213854731225324630304626235540330323932553652845211868636924887208021742959661399641737162501370429240972784235237546551855497845899050733889115758973623279491107106298987550020273957729373402157649933851740136518332240139565488392734437874947081879719291912396941682133939178207344161628003344570982189187280769792978751387470991125967921668413386381640240209203859420454472703036030480899125847919114207684830742999349409472236397510485297766558544420220419690332340705320811552681328821199033064095247997026916088277971851898382051266387106929902967168751449326698652098912617818771256399900947750405353213043046344610701598371326935524338113818045021650020093059612711152254971952199653163747236260567769493148537106561888844960399282835064219566838768058502476775506450927819791637154158371967250237095729458191641627169143410325620179369015397640978882037370950089130815831366894155762285611786720679043954160988271246692445213600119566048281420917807817808482664680522667267668185069857187540479794278627952810541780727122486345444796671407503339797340027439207912925458040102305633693352095933827880787404833251355732641139171107210069787992090432862164344236192610421037714750190371336805259996545207347724756024312470257000740598810749579376691027421718436414691034459918851945223792670189996749766045625629810459407920751057398893844433309759510478674070377655551341495273619355733277400128656845979017682347451565126130704398495021108067006360173189910027988615851821733147061991982089481841674065095162629712508258209407275645263096013645611866807199609898286600855443262590396745004165468156071904272617593226577912170060710311832719607090192905302538195822718523977393037308227530414074758980929068262748737544793155464133688435472578581062803138993296022274547268059067232168393292377029237079321510345703889006560972027722767685409800310753130627696852286832297581206608453254561618467918890951662487451025628932961076147026933328630845226700243287675375170270716586596246195276755654551121842001526896386378753327315691877002773672888682265729528146712492042572636272837450503987280481096189849492050996686113199065271333768195876206056258384058520961759245963744788611010328356514296233506455023530932116126098558718930996434190307565073767354781437888599062320769869869749898956227112193573836821113260049999288835365906558791491783165448707917195236500023940044975306999687191090114243771677011160003089697750422719103045695145840227843667838909295938282756762327315211889564147368141432959513096671823779832162576764923654555489203444644161903244019162553052859465068404151880582795126614983567023767730952911611286274901124532684021723779817386595383430510339584587989336349459762987651679279342861579391738562148425779316272675634011933698703871056450027361467886081378025415955255491051396380179580226852187073566150355350227750401958559765438852637664496868359768209344324698390317644143636612014639170755774818779298650093900564485201794983695821395395873637073660666174622628877924854340591497640941918242286140872990878976443881185533330956109149993450695842615449750236879087640833646860055229474202954678271741310416515809386110900055261753421533129650116519092440190122086601173443070461714415100904762065923120195393675759607452917163325114623917925455775583491217566265691286786756935487671100691399611926923646624281256471925644869733459119080800495049419935392333635450249033190368942785376303158050715241537379408229465490315288230050934701343871092219075197409360633335256319626769357411270753583984010426788084613066423913333818108320037515102691239399793017619491738668911353115254476848676690806159152916299016307133665867510918804416682618716256866442574029468709846181725831471300215130329290144278494482054823597972017161570835496397510814338554393173944038616985211458403562965704326587689919714894097436588831986377987410949534953669759422780151053885878470773310209852165727942945503509913619824362534081014115802063848097203103261173928254687062098529401030659272250036516241902027264489503926824983731565461842700553307794027563032138772975297154414673429052620298064174965915505313129696655151340264783327269941915702306060336274585442239949425740663922773484508644290865457497651556067809369846295586176520303911284346861835710356438022084330040680816788514771609521048475005001881597735535918728211463467409656327126095717626348169145816379441925148293386056994002164199212622241485929498598340295475428128535930160232344660037186292092937763043247489289453583781640928267697904140237761356397277324258501922954980986767112270664663903579606479951639457684394665045759631015976884517328537937382684873616633594567671319666864952175921088490899356354400972485615273250028105980971212669430112469365820849148864063603136642759103047137334517779543807047847764959262269596287110235579182813709274654593718588074561287366278237736977777024107720752405762185505412726851281531467478249530804400633412307419985483198333400154344336201521020397429312646235199452994160549200048216520464778444132210569035464841728290920002153602319263812748136147866010992185117251997786412145973620892693798544989033634418075068904269805273396837750537080904670733927310523715621624765792374268360020120713322691388685711400182103396486830342224525269898745589747495789536164456233161542294787861541591400033684483872872439869043230005645862576015987356687645236592359992444784656021559922723392327035853120153223879320136626401777757917372308757887041299042887195865779264698442796048601991420634745543841800359141393611135845961900091703533030697645430263474326767979259855218866070965665836631244436974801554723278955233603208332871922517081799952659406364223174727861249281625928957042159791161739453910952541775522089648101753916916965182113791580044189761202262794173386980257414516935604785492536134422130600083562318070255757785474897189172379189920486217932515986961468189652663082385412088100984191633958630214389595649115369371618596820470291628158267121117264592747898658454872708469754307994602447529379006290520604167749592799305567591868677266887274372429425105900021515965891150510431890397778222530555291120945002313569821599162999672035176417284000162830876678215604940795766815836595735207587518709907579885688488301942582858007816887587867192162239606007326856142435238445129507216766576685140697709506535646357766270917073919608684377790791181695364217810352097731738667551056711172149640412842992807237547362478244089132092446082837987205977645376095359832015137239967255757957323729095282110023447790775435497311467070787304833422239015115694755935260057162517615144806542433594274475135103703935825023510132526993364633383876359073548257838640920571795383230152841566170911274130974875033410102271503523806324051203996217040100468027771926840341234739777612216769669782470776097129298256302857117824067650885625416423747116686208166028141491266696985411108937745850795481949748027417701467262387738510403825291520852731165151448892945978530061326344711231250394958134752840794430795098235140985681518361151292103301983459662107309827474592898399637263202597406991924272542462862340619795270799304961947289445528469998817589938938719613724263582744780568149007143761693039008277135485821546861815545111761243116868996852143232336301532640307780511031273142329655376967345393083571366934837753700756905190651113975367843204774235673292186856886091421803833912435607085774487683408950170788772978709654229455986881130028798344387436027335864957904809081626869209253974586602833130601368670880116736346245055340916934955364625557797965838554904513222637055896859569742590962328338637770743125045930487220541674128000522887816095223046068778275787157159375869521764281986368273162972183648249524970713818310108036657935721551377891154783233964937649113852612358840686676736986746717540062563006467647469289346757247594702098427126359373132219638104419369117068675262913345707858406447979716502120131255327182287968120888974691566959819765902085212143876198633650865123575091494788415905333863188710980453347186915218144388738583688645735109047449529231362381617777404730887064865082509988614476283530447574619426630994839298922094036127289688077361058411131659109999001204602185815475017879665350290972050159107228081745038267238282518262873768965417569072898667573665698092294902619483075276255110019571383005655810860686711013492320454044586159729859262452443054705808283675820301167686702449599770923616720166672153158262971685685768227277187332709714525495883330876632635313110393465425529254179379713115223078048595121705999836004566393618145020593678647143744952891352536732800705478649765999648443881794443761068870714003403105571097426285430204325231736403025010482168381607361995661783398847563190712273236296029902870202932259440545777377486669202658922101332645761255681360977619903295785377501356292008235221699167757786917617772975401667606956486223738952311046448607963110434927371772396870765832095295960367785745379189296549614932619638734093195911977970422674791689982786303722843599402091011497367192064425743395422926898956733429501573820235468532246118550546390825349328872066008628175722280557087239981928165463214551158052917189773318913792516324476507483282051963278979697713652966637871378779428601111762715469291912419392731926433561231843410654048672718573652449871226752409481585259762204903486256254330961435194274291361988041559018813865263547040655106949429050926426188101241517106097236348687793337407536736556309636006647051553788508222621383399357989298834451340809483636836598749982830928487364743573402070191780798029519438690912914484218730754149054450191902895508740108243616211850433397999469872007349864301775366586687427480294583310725621574766999515899145997394176910356813850492699177624365621953513803326337426489687978769078062347016388289540452054222993286672198551891228792695303024129233591998212043684386371306110993905755262852417206510336238102333186974048215454542630837165294963703600525070411390284691222745476732544340436817058888153187094301385286440380754076880511425152285632402681376604583498197591959199233711191878356531006592006043241629900542312728675769271463564730739875926331337679084181852852191642204499445086210623510522107288199178749590502799018343345551266126535895703042329360706019659474746647414408922332102845740396164655823342665872150224404098373269368075392766566299284794127024816794306984393529605848754559071059798501575131569717321969776135258992629687343435111682955447492295482914910160882253892538775151820304774556120941015122679950662626880302387544902006257050388749324018903388756282623225627007810278431104668162671928623879747438748975864403900964352360033719007158899309047235778659822885740990617762895661257999679620525542449383018655729368223498347236167813061346086945013914498522129799048453270158545521284016997417818779292648558572786526221237672599276891303726642538928737356675788472462516344195744341021586557697435349278655408761574516698849097030389292542221909019567397351038836976105419008650631626604500947164491206491678373764960939478297921579939693696125692693328087081573132615363198848330569286924363364719121578116698251794170362395935657471118863735572045240155031525307590974171334458365254650928859822998549126920161777753911586075900598061411923725476350620193534497863990722856526329842135914852098088092587720848078560506311443542746199487864615717089883860631294304190709858629585303725754888713078580139872524323112664898726998550928775992225439659148311971372363186380193550188269907188287932340469311359972925151824866970322444488349036613808004293099778672462158242619212792138137219969096629817300002514221440468745725015365741090783447959099319111000502285095703799094171382685795737935402246565089071410882312728241045931915342166913565660563407054110771684443903680356531957126547842518024863053673335690189840932782454400187284714942909181821904069400645250371020495553380122748310393297677403651177366487191548641082098932322923187236081304337471719146091840828346663141095236232183139245707219423269137694754340179615735310685174384404450214078946539419640317821499727029406777910782991245801648379612233625808030489438905186705709409849152447557609019360201372292523545966449235280895623504957016642942155453565801156109168767048014692985762447109092284949732955949161346195413452037929992495924384423261284323285220714477751989161028430819819233294457765004101031741150846073128813143358326288161642869994368540437582719092323251215320798268908241139520650591950964740630053333254097731391021693669983636200717105316527590448752948288833013420015933344785714618106596027521992031223807421546560821136995810916100776940106522841949252632645479460250650905894923431429407416948724304005054456218026595714782446306953777409671403413141514982167669313848219753815807906459056267414187379452624596113356271299216054103908443849199441243046014252504995540993087165713804325086831494003027854284896896446880159245463718983635607590715817827400581683816366324761680704721383867385716586148233276668231167738111430610706164530206845958385972376132624216474217713473922017719273603340934046096158667120491153147095549437466409936687250763797671481797830273266103343405909513937128761036485574432118772381215695454564120447579985881100542892050007623178132281300202770068629469154146453759780647002799966220078140662058739035993229401145645801495711436553513290848075165068013867797559979349345712799725571909580078386789212621680192854085841675493969894633078629991043829431679665862583866305933001952737853419528329715123689795502734294629291078754688712901943776232600853224566472330294069258900876978217005483858500880558474128455272284229999484979216362645167154604930781166827783373640185413061232992282982205061900226755035384577313615929171729109805409258150687904877270653162081229539246966389713962810058157558835165984142052029184214088988129164626008376511268729016461380803440900664490139916238644435208753615266590609250137115372135045494095529342812043526169179550171237431870151142850344692157744425500741801098532567047484064888483477727363324809145168994397747984948729561248104885671273385157167157359073548868890851194959186191207056808797170389309985878235138723830877914530779297682452244890848030150364739631307642574912892666802170623874730618493959104885826627682467359868494555929155727470873767336152911113090055012130182945105503918434207872799041589603735617911819797623596566343270219225742013845696216752270944731899338284206428066498704054388934697053790746951778013362406768738501329886920155964004383294325414510989923326248864708379675525397736039141719164400299770849185669917951280829735540941877272344028401595092834189498814368474016179388227688945095431029113548124076580991351962315016211347877557002980838352673068544430322364901571895402245958062489582435718067011960433695814013609472239703867331839635102059956638800516607348937397915733768135842926584021039140554326966365384733219976938786743969601627127333073626796936982018866612292331215728856450163468577274638185727582485040410013981307904418168018625099667412562672952231513563347046550846882241970544719212735645830760537557093854510892973704584293743401711455849698417779957050773964466501438110182369186898620728186419534840068063691288662407049513120373497490847468565501001570057384787429586221678353906336882390103309537617681082469612877163633298482462369485286481817555443428012446243848505965553388403877476431623423764708148773727802746160851576831898472076633691282461741519758256365356818208853075194656866953710160504533268862860778628199362040222186592798126369945209767221048025246389823159429792342828265821160673659059220483432365538068416283646439528002912820378223989477441610393900334761325023205854620187588561039089043948630444394213634669328508700032750694352332777146076697396847594198652390542424284682712077734965725104621553274700679629794319129185001662668930296225923090058207514715383004115653273839596141265573962594858563556868531240378901471020991082247667318983728761368231160788450427183911593619829921882514542315798717563048095818884085342058054737896917056483981818036177480215201010802953204450834100635284460326648330827116849244911929109810566633381214929596572607681721799678390707773680806404491096385683315667784713275734408220925117989313274438215963825201838442067166796627334473037088467256154869672991040658787113007673609464194960715340871023893257660486243776784939039029500482184814499445600168691271028271537684336111706866266236889812442452964495465884752848242245978428928373307945886873385303797716642268945581074488606737088371328012042474031269069757832208475614911371515136203730563574560456072436270398916049155537414395607696169244893176333512066544491457767052107556518783395323837979352281670547685905963144420828523422639517178503111141530821562705938835350092159223217382473774774085027395863470281801775957744270793536513861882613330824458654370494053782864509545145478709838790213103756461804252596072071518478432193373845806659404749453608146424034106071950216018221305370931062072332057192805567453491671824668130382300027936618450889283104999005034549600006059398613044351036061706059452243633805076393576447594027491116679359996476591359429848389772378732683201758104260532123218633754169406653942129953329034136535725349636905503361923665755166769387519747253549220897821679152302422025642792393836097038000044883336790716282812818133222853849513105888366780992831648419301444478144272975607918643775973323155517056616190571041754438989300782891968056179878356739298842524530790854072199581811383660938587348280947365235241378748739965332786616417741780112386362415818690637993394821500337790903899561669347020679527565707655083347225124999630987775202942086815692810986446232521724313996544358785990753035888467582908118872156198781343961566285217384249354075819384194623774810998550223795554276791172017866561556027830868179557267632260511071720926732243808869562699531268808303370274278069894659964859890754722264053432453158869967056519671472683435765625881703664453285753722613101511543387289932389951227957916326841386402999161936724171704436371074424456693384054662621677520050391029405909083096698231342252263755418337209452878915730939820044102308714273006288667349504185758069052767066293933815267573808739190691848860532145333737144890709129126355071715061762087634037203130873539117907619141308973254136948940427249474954067530530675109508629315223397340661043556005303379927018429155853757790276901987422227381198070910319605263355500140724588752732840747985375986324515348952924171633571755602004797486250661946053487567219550008976522614840522737214931338848207453889405552715552315401986806588095691526596753785517311072042910356144638572489329622415774038247616576474603330743884171973925515041957300657837254260163719015061323496294413898569983076249454785712616375106028440389236005492400161307788579466282037974599954737253490209685056437073629237526824610651229323895790557550578858854023859445175829274935198488105345579249159509014152710958717800805841318138293224295650458591941422859087521062111679591867461090621469485955579892258471736216678861797774606223364907724446149632243664813043358835769515535712804129225046048912301975904430401105292772265854862133849947945934827232288794522430424277423175640523177400354130113726481448451603362884906870366128414685301053134468711330829569668004579630573174891455018768574922304781937436734340315767905331284145361852901720790889087382350148418159644584390206581029642438337125203761005004914419760396971153357532412679608011828489176023304316346976757747361274335680654360458871494146011743109979725144086981726104091701897265569357816914165298449816561201466902154794688619111645906270174333673522188302074020117533591802034813333296545714788532103269691946135528552149343884600995027114182950415479138589128443384548991927901593642752195279956375026271728358095064934176331559803459687269621986250825192526780662782469997860589416406165564810975117288687441944010188737641235336426222528716603980909817250509440534920549041108479857024975621481761172859580853741964479047429627703552272601117557768709197917980994159381094257700229361691029151574158948013170818214658951115612394000161638352685619877043375952055309109177815906388644196165422221810430687795968440174057183629410473213246986062525402147958595882834414412324897106665993295025474271575162059446091756871485703720541232491146157026675622374265442161953507588989657127991991725186656153631021487140816223574856469963221999721774786003974448655690001213824026790223201815975866149171523472315708376683847314771967937986954697773294244451041358420595366383001385548975303784406593555986611426148399024633143704467375829403360242425670897630314963827337676199176552215182689850510723639716839573115199460992835357824362834437974019366430368313589260938967524950220954550481951015965621284818639367415677323078059828653580415370082552469372146212534438579274051708158406873147530794097156116604872850581896491354708456848720694416295680660199810310730744665463435231498969331433223402555326395841719704482146526650874977574236742589284937302084175963693019491178463989323251144841791140905687652448596404542377449651021062001810891062185721820431591880038508183330051979859813680354498366480030082163311989871104059907724329396215757510406845352157319464386709802232702172608982744920999415126390125238364161534052616354674277719027501140927860663895894964715816650444102254758787050921215587040542498768341192581332145042984794879974985684383334290952225891652975650945561901403447745687776449368677360892846235943583064048321317073355348528035491003014073152730004081945135235976544049131205595978221634571610762241312376633223867219071115982402863149383893568498552468938549979458441655487036926797197711031432494311569231203178785570106949404045502843163940931159507217883789491003437565272559201087252610962661287693927399186912337152993254618814130741329152538085391564971328370073113113693565688263536169868471389515535807628275622964785755574158915762439675884616261158976446807750566534720720679980751388225896906432114542895409616645485279549655747116168476463961382849149443103656434667368837725342482456215471182858433138191421871148839322217019036823208536914434531127581120402130059717338245083342535678605765385999561927429962042048746591749894729501791383262311379168438270070151963893814501470253680977309574812193153569607681597506217459916718454323727473730931249094419708641113602431235746739706941435390358807976856102679322404718900255991242855885928263252128226966741652437000087564604319149599166489799064870651231709354411606096033175158157450723488676877835443977921695455949046472051308225588702074140516446764068724233816173268379819848480080419243492475462131856287137463094737813228683240578249498258652785724840997798669858931280924513328427797007217707423367804664373823149767311397475131066302231018933960556188461806187711725442513507421761521365261062929573144150173179091016407370808671774680425067719880255708399454869648090670816491087531660213041116909381638353560359966681305621165886513914093985757987803622352504824312006336813854857991272936392116442163238670837433924896915751313480035248328667243507487469913568155200374183549012598248370506409049330330778425426771793039196336807072287238129243570133445222824793443826306121429291316365256131335292999285351513364585079818009114627926372343860503648971781690403844847716172585529901609928767863131018548923249237229217090629584510468482710080543707821005089910849251802030184953685694675440645654224493221025493520938112943592208215806947410966588668464140309874228830448342590189903660868814126478932266149770471580100246497623030761894775733232615961130495943937775832486503048584750633523335273760519427659652234627299029580613471349781341774216668264855949283694038877375832632550289435239641385410755731658112843466345288791659924508791597938073564954245846079494903382260034281317517453964722270096772891379354742464754896860252673026303431861704291112887933025782292017233373776576533377719642775369696720807927426204080066963225816838711071312796910320185262411056942899358473727137079461034805386447661349447088029360252653923095646661095421079718565812881112465099286676532319217841592135300477352249673683392043740698916147551901710323503279155727667450162369375026859864141047399620843954199692383802913367243384423911209552674638795718914954248602794554599893218410331685783361868754446060231530335102813060930097992784453796973129454408771280589340688393180331906005813697830384473081194294649420820496729277949828588101716066760405878626122526468472686610587133635930382912454101040731301051067365902309759061428083133185893123318419241761392794900405537702829068930222541333206784368753250317078964242697565552889259065741518425311643246905791135673811009645381089428750310932847978383137561365462597585549289646531476472744001011239895091139220629057969191408000784187682753922261944119213350312525753006392322555756976774390178602113790819181979399434803745940011877498502938668514012989368377316703626800502076440354071599708663510589432402405039064567637688731759349929819718430573428783224343546147294838800381517415196956837056433756728874171997952483198853534826808048998129898195248048955363724307838876944752678517085997625007972146536996980383418438093419252200424194333642837040044662453691210595732288058643298867398410735667212716580740540903186821933345315389437267826315166788180800299235287431001191401822099678466129367436650576497374400906510499852984985592432872169779128477136776819379064407041536245827010847003278911308027904365248007505871913437209466507098023841643666772717184334037901313851857867426307830436181454241612448673347803734777437266200220975682211435001280082979578296570462973717581913655947894653492758674652635458614721536254686160783821561382291178629540036236734149844753058220479472721348061368751954999218163150614061723828929563463925541217353661063395535351584435905560622893351329302439545037319842619543904402126675686677029199149788958362296082161213334018866108071892002185791506363059055045063703927270280888389781072940239252444541616144752912853081235931538018180771466762081534090259921217350005288669527037076597500717135738233166620831338995346140150659023048642968330876294455608450140146543174062539613712934221222846323292165452155913708102258846940007312875903284206569731323340199401437786363669489232171618316704736993162390143885744921709954037258712534337941014927994598583011051777047674598303202434875483898343490609133850009317713390454543815144203012428570118149442763968418988528277183632867646418537889423548700166568848264861952765596936566274445889290242299980718659316240820726757249683501110162142304143794845140577126133581133301109854710216051292061919081750919375415459549682452114876577623705165554288968091703309364580200930340110100484080962964222732657740106042270591967395310256948598139312858519525504854678783593801198307983627312983644585120838657819190842548475719077890325041313532032833701613230482508597390322335977104454260208624045808379433046803818592262547701013307284846596758539062701170330004734616306403079896004911640821401601394098426949836314589107429190789094956973426296021573985953641977093058813540050131009024334042306926936428779517436648470749789204295493716793906835413210699408734784709262126214339358078423154651715555779145906394315481112880587028383504614434273933970551341102760393864557506687139369764221498597573287509044815169504383008208421257778213380200088977934586395677256717758267601437519833740857824327318971623215462261120216400063085194205475847596163537291270997175282843218988504566648092995037895897550189474482479990516348789793541769259953358885345414813819534799552155997613639080484218892251611959374238900272681602315897646373908505264577254683748916044533683713608253499439725981924194214639476957696215804570347775715950034929176259214553095522606387290697819353783441988783197441630071168660236059405682875562084259980940855475988715807076023952666798234229872661282420761731425999529802687547991820501858651871351733734569610308026436077502353775646582771028435558767514797035814494261318886533450647691451714876447397483215200429222501779881793619585012216208868293027083239848150608965163590503074804164046245900102266789006330639533150707455650966152842580875102255185541538334001198929042928173021038560390954131159421147554875868555611355055282388726898026501615769792823912719009450870269435360172795138474810176447591275727773741915794492839427291089859961456825325891693210240835624889025244654372740588306101378058697491746550693021963964491137346177334919769119281284590456280760358296317412640759274126079852492576082755118516815843270712376231049090855494279036523273572903462322707186384049271548823612267889653762894776390280764510298516657484473795589882136926437819857391295114278508203161413409421310715114533672057734874225657058529636854824535940524898524091675735225009681405933243490269964760738995577309683394454403059384563647743397961959127604480120775351499904802512611954910636865720895532053941062339736405816945741401773927578197284801412116165533995690735943568135237390436787093125958027590016601526104632839852186347983796519902160035789628093425979329378324092066236939443557853321391744836420226947750865524273297456531676699263817423292532303134183653193364401417819679879791243706098173883063772545089681065789165365688623007149423391962999119735982982452528941112111448312792835302719018316745970147291225067638065060310190413039168645493123115501041948934375286271840968141611855949151013197793829461957965692402561229647967249692329895290105304587147000825999628998554601720838021159399872542981934093966011939643943345203579484942212164960207823530472165450714931971609541173844239898721741285538985744384700021794922233291516422578525501048632002732869952021729818856675547235023437748561775982973636290159413836978495238032466556410454246533012062666832177478940178441869924803688367458949350104773153670679677472351080530934719649893332605328290392177350866236437358431860159406605948288334744443411068411918513011806212837335542637188833168728099051237636115627224248024543133627568870007042754759466582902755124598276759073941375904052287792140305066660080879379291597547058255449538571420229309042142087417813940105869695812599180963633939003411104011350775591647949681352500614048415162487426971163165920243842311091673492485041419800082872305891669786949893074521514151486018677449464527964117721719407359409261281031406715820453701379179069642690240947954877871812984292053725549575056050316466780559287634098298551569632446429009214887585528170977515295884937401552863286269870135975782143196666405557198136866575864755397598351001136249186533776706881947186643654335453693109100155136443686707467492667405926519358952335062205915838780778721125135309262895894769837100374905817718392880141602174728374289078271029384029230961179612888273080148653014464791996873958285772398138758544084796686056087222825652605698404197497533722765069478425065007386935882611651034281606840098536958524404402994570557666023574204445341422636144331793543826899163616934748555293445284353837758017814780876013620660738054074671625737212873404130218462405185688076232407234194696780620057009547854398056234901468153004776694288322239350985432574942500037324819878411781454927753503888198661931019396836820958534165076574946341839614244744518052593444711874397258712647209399725444213169646634192271940192939181339367835782540222666910321230138353950449647661086033030747176663614412651434040078652378359681031431902493378832330681738873435498390859127573025386031762751736404606245841916120143355989270296091448982207902458099912409951701974396395239344878740258118345673491334592584250190108905084334474517170600554800907148566245775271405301298012092556098386521313884908799485369382105430655283389137572475997779563873568056068030283451881999891540749852458491800769771563262364736257803272159863935629241504237097848233056249598319635095599069938816945899601684339783662047837612016540092264581206084871669626452589018654674211141501741959528056601497222594517818010212709170108912459553574119356244185561992192062223388955355606745039869321539735872052494849982877172078963489228966942588573637499270332904759765255950526336656672291520591844821939791724180846816020311699677093413721853509041009683426567112449928601301470447531988234081080315059930008145348954367817577195635478552989348255377738148242369908349949066867466753231320046419598230041190292597175380562772478484004551424605189378932859000140612198174166876342650374633571699095250003598223969430589495380462269269208435348765883250783646548914091949160470948859375264277952442986161032576692769889949315139849780567381860967294682368426041020843331633382122417730697352282001615819842958579317640009113311326727139199220889108745155458119530496195426295217762443651862803870881689476648048715684847893074080899766580071096371496769144795606755837180203115306595775323975788233706648252497076756284120211530734592191692887362995278527004140778000899169567841104282634508416398033423212014996656763688020841082416351684177690741323241498431845305274809929921601593850973143069137241848728404126637624487923084283896017051740914545922144467704789705858289065785051464795298142780430643344968204864674160701631482193488297701684021317365376325198274130939292182372474792846608296120517029467984125923433675062736514601676569113430232959006837915849797371468852532206405402393114680016822417964735684417225519072353963785972650946257346101303463317332871723903429331860253058834773821224424775737680074525281462974328835965560119220562655332732197596940518137628140472016302570223251514081335521124191886346928651431386903351295973918782600682141071148340775871511685887728496578850062317084822157647661936126533464488326457738579823164769186016249662329227646551332102993602866727745036487177993408753507841025092833574927723744281001024835489603390634376569066620547356593182336098699934930860392311770061560139420556140831839539945844726579440699717802927103952806561356279975016430375305528052262431582535918531764086590314999315875729127643298723611699598841041476386807506250494750138403304794618811609002078742664198067042086571752476395588408420603814488120422210066808050194652075236506002865708914458206170882297684776525344699303454109972394150561063238567638774507401732437682073749304504108924237373716257544567480753200447875711815113838512222790378351069695431155929183446217168053034926598351110228302397052510541025753732921458612380993784467329099307640937037652439424432396389622136789314861651164356480020306172924868785639993586909349766782742328685182097050305549225112403830140379333550334936788336324736720183331797261717604084430107625618187245534639278619089573232265663840134801094352007538111420591139122339398570429093097670178609250040186861293322558933362638618197016327743829388025283329345545879837354180781635175463837202557147843227787298392430348620138740543906917475321315179827835237399855282731013109477741077765574757043069221591926223345308070736243814213976365619763914108138694276885744907314598491548537145470854675369707367462263775653246083179836886544392353547758005806753011333007126186498777750915645244892276706751020315467601430990887655976751734738712866327552388283452526217727357256002871308279895413530703268995301900750702091100091824870887162391251610333606009722836419903682558232703121514674055351780311736953316851794782489599022585286236897290201839547453044692320687416836522697034207166872292751348636396095197599805545383649288942389748789286095966611091546435279956563936764300329484946518321658107045846456084415210979525597043836915847894124906588003294940595091759137854853099726070400580283046603705770412528979214591421048690136770714412598861473307595384860074920401956225337317108713463347590938622035690959640961840530287592906894355467497323192827458363635202647690938201500584084650873593231688964030391277340914459650711758062194780102147425053998214343411904685819166460041770186740602876746291741907029227548112860973950466182922885125730645505457163528814856968286009211321132548161422649799423077956860757009438808878625045691993612485436182844674129388329099734779651181837659904825883917601725435964925394610959842546534719183320335395539362287976282643999313817694474909946733152357253162843789942227316970717245293355389568922625200252863268018483453631804401529261766841044302741719587800345227278934931115671430751220060570213617877972576887734970949632583907607843344228255338302792842400637981671616442349777771194269778285910244223271639003593095924715557817980564386021727666828179638446845489513236741822342972873320255519854210207032043614125059753668279796109713168990535644941229734176406723646683888291418189844806298241216296219216836842172732041748847594425958182816597896338861398113864432741337070648116246554832785128019865635568837532759949667929234608750817597862229171366031592417057072255397936896847804945883779472134280744768754616061437186612159755845404787184756004830143277404542352454531583880938735255103036491192075209662289681905962543188257681925814938962201203461363286627754691551657595883780286743841569647029353466522555283935342816173854842756245904240731407049135247739008095544833083565053160045957426006063979268225998642901313138204533108116842625164554731327280560648931036748070575015543864953030197943872714082752288879822100889869771269637016989529448311954530361609942603242819571955859628356332802131542739950011861410989697940191875890037463503454285643726261354994845519475690698556095185282156270687987468927628012077820068697341682197119302244138036168814856343655909631598944215500347802913657850275860683752123871178874438934396805400617730305234171526175249265570293080890174583297772452479344495003027848852222016410165525262576157314895833809323757561607995498635836786267581142015682567208040664257492406850507298213238789969216274349623658053972730364705231973926888138587859765924266324991226686084466045877546332098591353272801702450149070623106497636114028266618337063042492560826253249492439251765668778527114984696646133433692219426130958893439176627378915814495319090035651315988732085191956930431310148188920693834971493712479605184084443492566163036966054961670024741973060047152978003222269502589802692758655666843099256803405775236808527759532704466896606987946999307551058788536683336276157341622008643618822071599691645994504135121427389835880350471234394378827912357531264438287353036857193025777252144444791403276282644938081388198764401373561182441520601587388822191449729720848720586918088659872179435105157100911779007930373223284720724935481939149144920727510448875425500423216133335074021626580590210616394053029386961456822680328364484177617446275858640444067725506320829339861740716571266353299447030897836623257407178224190748924534715104689044204907086921435788581823563570425776096953580795705696306385150046829583685860013637550036203076949141421887050996711565740798170846772971353921595905099285716793430509256310802122027609402457347024357036072516105831927524943718722461318678332822938591001924490279926090770264188774344324668070718951473937115432654178608992261634480691317631985444833978887907354306257128418723690995272571601634097883702370181093892215100103767422189912302765343683858161900086301226620866331845168677833446022861553226259811029789227744947499702624698598330811793346057685923151942115106577742514838548613754326390423483152002910192446955642307047354996353918258922015066679786084497349576353736878759769927760252554733550232987748035923548540436384545915405443694330673288194451200252522760812968909476532246559289443740357237847918946937898544184024311783298524578438106330207575024051864740176564327407880528718839109928320447232837521816056996071668224979115690534972123603781080645419658662863439244538366814627063097137592297997350808685308680185936877978669075092911753304111533803061726586695641269605677156676011525649635600637668436158681280936779350756360931470024821031992993446284031850824844633729783637637533235138981133109448023466002656333963754472744181045338623206610251062090135527979278084337947207107372274242101897119014947619520804911296661031716929386612228618983696965994664462098345422656648485477962896729424129575250398802836716377431725854957292659110535335526683477478985851728502978612584580801127255526826576350214732227733041519021451109690236843079144811075581167468700189643934360862134743440733261822913057937210888442480761772568321595703076396031952493452133351251513238279070884164211940306091198277094137175570805962843346873533842387589704799321455417558946059537988928780362073695606431575706352929319441425307956081661650548448597429232354653264646307320005300691103816705236851850468009443222632056848090976559960043654696777017065589179716321798435245106012075844230957918771739157164886752044925792431511863762456214718880095443260708527499703844477414805651914601349431160460373907782223671059990422145647891800040484056523821588381432073999633650059455322419994646769398572058986639870212206513065307078491360134282680958463349898265213694472663203535351077960133712845112037497644576520833545284399723168856332539721402313078452514964926659739621716595138643299174303474466887882459413434353371214866356785167358656700856291947617742706538048289666453797218812483908839925711746682128749527144746629271909449755622334136057225511908584605639363798089030693429912775604350428124463723581641353544273749781428123229478616260625717841678448419185164503282168507572463518730309367966517140324363422594494904952390680224335837557951384207412687461740056827894860462877879255272315835598678018766643190536402926482912310426426530111620887645207687677465057242051085708756924187485248475480713046745392971203579474687253187256011174950035218676994332256025875186181520092894206155539029670815191884591638859293662572060100778909432879712588992147631594865730253217599393581622681258891336065710904034126103391548349813459776663934958083076710257614359392602612834362640768892310167661118671099240135456301609817967974709669043947752758448186128806569331875242586633452147053215164455776733849493703156107463503116153758038730565611112851078015808138579689878394692885509460401753667607343214669997292926381855748095979913440163662455310234245171520528082555097703538708452532884506737697279305851301004947701558231413622858434324300370832917544859674161673792051067167387827431728401664339550430614940697460009913493340728322255688301529147718085008299512782325657327607557200891218525498552582059518216723305620113090008509084481767959053343417326966281778549661056999570688103099718147309314211251440925552065375749189038312100018509017064919927887166238366923990962253331035993126540575235628886392556363514281783562115895292163513230800795789738849933902844190523426588667161189227513373142330494311423599402823600222152838228312525349604984681593470271028262082124978227008671083169931482525669965796762173700067621202308861777112313404703150074454756824643971593721538224312863686407880723435698972108979490160112986099415802191200844491415505472610173574334111033696037428729217030626356851544320476062909422683853340004994264832027461790695387908379470913161845451272147075689380647499035905785325523181360166664123270092458040190615000371543924942789430465288983075972078285770509042317765299549848028927459884536033879605034417722698928355689872352656312282438760581347035097066017957143837207642058614457910395926548169290655240063029587937752019566830711726640531236717935675508574434305108181257868240914410518889020954816866925470673683254020103105109339272515684379269587790267928651232735704935810903725726396517396720650494777778242399627714887746400813510086484122352734443779684200274862643245327103713813045183142252405358263563637261421400428622699593294869004281309885961476800073663257005019252904298037913671819520267914188637420911750716430862761441603748777474453360423591530873490050858398001093864477471299577744619505707346993515815351553950001651273281396084891076302371057236551339533946545768708851090882629411339644710284323828424136059340799302218365700091113836489773272625898403887666940394289685569769233078037101434050110015513975170714875771987490265857307440548699239285981006595802819316819541806002906839601966693211527074578371620207910151778126069339033926332078335972517963101907854691904258200148111623490113508478189057538581265012143605017790695293816715530731526633186518099895288753553911217454412849612709201433231207907627858183677456763776068985941456476566997170618322089847398437333098329737884084699802106422801030227828451388668821532263932148305033617673449331764193101593064834856140625117648038111869975423150508303512147797689471587293954486417995302225526361147669062409644955546558062250451606568205259592808236171180699498171100957648271403016173744482752205401658642980081741878562099750598703140548861872924674424731328886600921107799154086195572761358445238979734628705626744488530134183935119809108690162393797250205655513952558824878271154982028199752246316246168531312229238438435863309755417915459791480539608400156716452747221659281517058486775700102665182112228401325028415822264585444564437611152453803450993742121261350968021157388537558414060401248982701734097851340936072647035513787996954648303053435760228494109662999395735729425178921993009374870144008134015322718582563377040975544515174912212536978663314955016419071724752029886925190257200352803999236024429629728138628428795869470078813818287252519814387792351266652885587425822190818521219026929974972136959954350771725389547475940993856589701203645500899288857369434824521828625439482595487573847538140768490467057098775658228774367611834792854778475500771537976874981356303084461012781416518247928409319706686261408976817029841944244567622971930576256921281103433383367566552893415627719046185741403389375335995051095580363672352901009929362237497097441560909774644013061757959639586227864253663568220568182324803393786965847716360374302450553339374185021253836481918806860385239216957467769745909667987218643302652336043885522181100770493487168601762032852980020124666728464656567140259497483480124071972673894587583663733883263974112178140643300242066085980563332962016588713200626704418796346348968436932419740917428758209553651143680015392496330264471895643020685090086210150294900585603424590463085612961135642838992846741600585219368789946891838920404675208837229011400612356890343225380866587713109307283150353493597066240461646524921071147051123134299556051409489541291573889213726561711356689921520985947996150383942623016823318859762249557640363472064125207029713865384431561223331448704915272597138901592729798693828905647919167943176653239788004075643562046019080031317745469212430915193421338110111546644405422428822944548748839030603142594029507940857534811811269928931573131081522256344948006447746157292525688517605547114425425310207431622338451597065685930905465128519256324436448589612234922727904738938028635494594572478240134065567981617929074732946662567879106618777417306623981811658174124124249080980720032580945596985006331976750479232898590082285220996501670055269986314088474459007068733724609538714234163507285101599171346168599310343096198651352136477513147811877429425385699086415188781409475926985921427015175732567377686447707022747582342117328273265130375386254274005024492113356094829145009069751227483654853708706644085540882276455942856206970067122386441997420012514561236863677652405842882621896895693049719907954963064528634114219670081287806796893094291752414450585002812634877808694104931626330813050790870764003163284616171237498255009660079691843023126590195511809787404049798006480613702861641018179338255641270922329410814957177299853100766301831437291890816121802093030469176797332489962109219529129837100878897998766521192379095885488552572751536290962463038445235045309740342859620617821814136776312590286979634159828306313223771047769341582412123241993584136205948743483439699285425401609922721122031626184377883292592820365977492398967698978023973750673651617036778160588292712256112067329691440801943009905300744594875338902361214936688280011173976580512635739258722841517530188160112518638518929609760925411658933009711779725971552355746344997327752232579008309180004517923882409167477745806663993175185385000320748710661467992878826592859012301334587195916393743171852591144313015232688752886494453389215557129117706274637836671858514738683673429315886096671669238250290202046585624388210318146191465459208012624109846149554220726863915876073248011155050686765481727141760817579333732873213384421224786315738910935102903671366713616342803264045340893935944240677982816574142480427180833745600567128378558217697011844899513917989916410521368801487249694953703603574024357464592348879478814597036984045861529270868931453712591700859167853082994116204354738161644970691853784621247035577205599000865634419211682763112068563536215593889815328427155132326462690216370223888514436218488260928359112071011086419589197911556475145599618305086399690213506555011280260121891337389717434812842925266423696280835303331732993676963377913226958236482781001864096644155951137180530832224783553185234650837705550278278954959411620763112073917938944325624814083404559355815852621601564724463076064677285294397097067951165620742976797503737445632599751349622829221253932557580015733279931048882622234611429903471570077875723259822711182150027824256653494817437191367724043724774061236612011082066400858491424957021928270551131373806835175494723572231781503269158221207020789731429954755551191262769801104246608543334890075882606049499580517989090866284395919239318959111656958371683918115841390942833148343162404454214351294439894907013556814319986184346176530695326229056322401621388664512655355146003206071894411726863440516495428019123414985992218293606911568695684129964927467283950110388287419762560373565238753072354215508520864860653353750292175038740467532783344386801827292720409372289364202657197891939558155024243206414629890030467749424477462267093148677276280778669477077049976496488429561235099719002964175179365470768510254546078520720992550447642597635834816818531299288112751694625903955383686684863716247773115277165366053125657608256824211035261748707172840720319018512089582858036497934994687253668094493758672849994489979195594891112401391490323803318003617650754220632097852713514636248842921316253544995166898402413798482766844884580929653668228593925105500425616879915655180821787324175584918315449631859714086697848786034774639563916087832399336558264720399897762574636462088155018994205429571232825526852446441044184059158652129185188287750442634140546924280305572470848054805954957407049070983476130588892181191220873184452994617849584919166216759731233782107674282022032312309594897153844235858433897645014222429756077519517084197605207881776927900114087380854785293147741704946366727458935670099657643594477929794065699816102290373600553043683878247547315041140197052672514937860071246400736070097110360657104931285749761510985213447074142919109025148397418479164051600366494221769811032098860613037562993791170085093899676572666868116408862062098227201218848050567236738670741626806673554441753694805604778066414042767070449909652346485318055295861954337780222590945735818009517798533322771794367382185919296677064938472561946811371076233805958343793966539404288200472426522562971776805050515654537087419695089654663975469190363576693076611093921782270505496222100808615166940700436019962117914360871731502962177449846306320509444436937676742425399066967977984982508866214317913170282606199037582854844634275864142741599584020728349352046910838405988890115553319728889427364792308944376496412707410300701870970652552266408076187427112704224527778539062777111811391190215224751217227529166987773233452105088942048438311275758817947823998480581608126865834191307381075904956418614439358355654557399524517542032929484560422272083755923847571222216438932663006110155214445808357462318381404477299603408099857918215933489235586194090386047103486134423027137617195408378891177036560116960244978287769104870032796716135877184506805685962521375747481796909208133447559598692018610364926325654991532368188915048332851571142871028631330991100586545762342191818532891640734169061553527256998429228778931093469426879568756325404662558147213952991715616336348640146162573539885801732481177127164353327498790062730422913432575596887850074550621102761844248319073022259909899207467320864256079466559026046947126372719812118531046887228450589100574691372210358613465331381508373926089037593468439061479309217216112371486120507806639298802825977087402924857989695150828726634436948084411874680448695312004391285996777616910475841632748922518502661009093429680916942290953702528476387699129165693677209585617929890675983555269598274763702698327233710817391459067069062080402544641024331875754024698477398150656040986315334638772502503446918235086347313062555811959597281744482497710305927641771400102098818791098475399157913287718713212230311615571821689479130732198202373052541654619651885966164249780216622538359692552736836217068102785816703844043631901850923146928293848178501219020893911820752984924245515373267134150581610835140900887152910245605781729725391325577703702345097881723119856511442963608154775754612054171511921994917913469634600322990937688982473537761124977243849858697036281821594655194301152740356868866953989814208804805017257631845018197945400704858866213318079105527380486129519253675987377240355805583644727889651296691421988446900356219015711824156744384485937615221606054839200040631245689724082407988804191658241822455652061011858118770755661950671251661523679755810224126053387715637045144617518556518436691635490579717068882500321252965888733024904348634420642903709539568312307596022848250312809620900494520582371406259966697180680854639389211261454007978003823284360225885551928744896962349719121733157733061069539134794751497988855162376536639964206426463605901644152032088419118710296780545638915988269608088485150231250072843895502350252502109602207630751558614037153585821659807812440015784029406565898447844223860540739178028120814393816426942775980376101157890826705552802624578627564214460859478964817374525262399626991275374086600497896122598345125332308339942526773282936968628687885430877278016984514516173785507144002094764084404016540296955872016704175969224123335133023560780905344333775880883800560988171391330207505943400738121874827334481489446629047727911199887022606600206036908036495856065951214350833882022098521608996306407419882459254970701530483578979144972670433259711426554656242969708400926467549825204818694274295860607393581017986824100352964149462106478574859090781313999699971012115358900904825688921023281354709436477578833610910016666237972966449899381613476878471754552137978283024358656318981930672711328279805745674538171315773664545268375369860879228388339970903769381706736289995256310343270590362349654285029668279276694816775913456376022808427427422098150451937288198802635397974138800737222717717658094176065726965581514681981574839876558144836575921909345748277626684077228777159844103309518577038193692975911991350802896244269466627581471607077664695373608470277612513268779825238629991957079722158624845920500853882647435428288351685729630488408694668540864321409030559850807143702567487727668012564057592702280541420106727544953462447377554617054983159608429403902841345813442524293142078700566544294483847339061262150273702461584996608002757227879942632542775967312871440511401501982166429880192517586403164184690645425489076677687139554082188382581355753932261179559929605058850502898321738324180947794561283932265053597765708154858388445760495505358515566338773187532905841811975498690840423371838124535920307350768943301115274895294759862965468222633261663228264970449249324727676902741303532608467763245356699385304527543060201593056862234186225729992786151099657520320695815435555753953382957535352229195893477758332378769680996650149839264422924863296265502668390257225901420028198107245695766591943174182214118522793176133377472660678575145386725506911364491339826871977610813175722067139497181329268962987876843106635644940802119059691677143663647141778599234524900292348428611674433872264565904728414826842314495571384661765782365209342646005823421354840351235326912653804617047828976978118181108288249923729741403253065212680403718456884674373348534457846255326837855703953974874276133209045718058130025049739043588593160328341828079709892825872598228174089182995853730190386417826571760437009383028050758814603589996618068145015864571067004013398789002009723032078037530492929882786108863276456878294637489377065526981728263793216491635095210998107658226443416486640580913567842115238182139363558921950621333399262120757618111389174801928549891641907130471932820786418562345968927370625371398822555195223697837237621075726770022733528731978570152448302267283522937134456868856726832883263921504139293008779549765290396613146742219430580243587778756282016684203852635773846794699437061372042582141281689524951695772365464199816706277621709362051595459449728035492055783982362584473551646507976993415714003244291045498041773693760637172541009442022766903531104390446462615118851634472008394620710332258322145310289711938479026234152658209585071193693605220976607046556891166856706117039710060754335217097440721348788640271086309159058391169266567043106129991502636592983481358880438683114347980415979465516396405505733960271153988748409400922264074295002481998277324523507468773795866167555886280826990844834846890262685711686817134596537651818963992031435044951122002139021879269147407087708026932870279124693914344472220311225250475853925109535552593785728362795133806323302168422287454226338659664112816420023894738688424093474231467749180217421952970608267357941572164973428917451795133950888766310279753889102493121180957661142970564033158808941401073264952923224217096914844201446571370975660257565417244279448335547505219102811096115791520928268621530553114798194853607212194019626123351995863931075181876394362315671969639199343314264733704671742323216469912300906643887837371321715055812522075781944424770229643108293689707101727121744597000411205022511714086302746635652483551902406897351965951793403535602414528685782521718315232990358589190054388253016021352895425618647909725935337916638773563480115909265454638401628454595905991252429705470115518295927763794924650313629969631130450503360405577905681369120381147145114969755081138166317911398458903449271282251410980190550775198209051213106573285650541931335981732836892136087045894746948967467152194006323307496592906776950327248498845663462581869307186051769422901104833899346489878262347851391490271330599622609712578094969077167406051758103771577807203854838063369518795109937046916966821211542828879032880122908828463112216573698202871040855573411309655341351645579877796730963064400009720436239874156898522651257335817421511282175345452358017521421973333125561084249537151889336520815695003690543999519694202811736189343843505740636675795471576769086664754325721106766382743459267055020483629419031998986636912172100404770135524270714069922593475087955757028960617540412340972095345558744303156545424371765081388845043388189063583522350324397746421491007747505905628010104673379925144159358878872430428712737978232010397893016164958234957464145059557109332651849470316105640159305323142713369735626095137943230815015718812612501800328832657266254075222745813397014310391305252385757736979709955844726339312479567142782563454960824367925521684513644869944871480720729102750887850777951917199554707091681405674026622670158675509791155853546577350577570717862808942691615896200786443099726171641703750600511680019267024730643108574641925833403303168597123994756341857755024950850705311507956834582139712913529046809500825257898135647606919486509397627288384626148004066107114167004588535683456323554962975166813850141901300201004995452848592417720856009537630200243762562965401967116250807095199947559230871667326588213565775699320838831265690431310210422794227767178931383337796636287711918960141546517153420378884965187377740980090311218609758423165431927348585393773624644308094703905085289835012990512966496088900551101726447958122498614731944457181941697623962044510205083170306040375975507348845547865092308275172458797199046459859734786397130205252831484675861531575894421223657543641873022541151620393185016823616042119795506075556563043793517476235891970083460561768459453488349278729730589395661485447692540516088017179218826031360223313676717689985067146892195451799463125837928750097054650207706274024031420727484365245655523760708683697844778771168987621425715765613408181076058250660567240103317620506322473687009591486446387156510800475047676124111398322768126128584522187136493876874425293937691293412062758013164616982940686135759204834333018949140658517508690399246888183657090958905936687586426669672442624605126642048264737977062377594031672430746824081614804041863021495613342680096728230979066530351793012977432970338962356353588125507643842386330362301783233364549252120269807616387510080307869782733787151516074972052696645169250920471487736001157558177254699829272719746504073660420908918818559621153200901668077086084344550641083472540022295068430437477451537479134566887978975522965886814082761846814358463151068797609801550154833688170728594684986383273706257853728672273881086291811227395863638435277609236323567165287475120802590915039159105052269812492835603889425886060707094816412063501916704182936472252901181807299531342844204556471450674948323303824501566335584381461748001276783682096581009902696774538131035133559866360618153612651520868886068432561445079206953448450006755149125123370388375112069552240961187794460321489816220923368277270855300146891424708055872702494533793307093153043348672865322264875150406100264526332239231058147712515221597254829303589343155552963128809844345869897417510229497795316287351852307015726099054868613699123948053343737321498127884578557567076184686803082921225083574697362700972366122723551574079769617578253053647817386603821061392610888085676428809100794267108286778590954744489204295380695448678113170839607985961637281425374980631705760771364053172969514979624832378458568672934654378684822688227539563621657822912626959333364332537444333145669424333045460986649931076817033070688466191937400326027985940008304651872609715938783672377132527354196433959160277871506592609140076454160386415932776819025334041130540545080041759216562918931853826757826205401749606019605816604136709151038458329606113913543074531805042365901382347513789473438409916894566781818631651431595087698674804662552985727470432105584594015957272863247462092066500840242154628317373428305924127472279917977091347320495146552204735585768244746493556176559381882628601509901849732956732296409512248094450253155834847723378951969388661747830544760579089484400842683701849244988421644323578004246786876821045841223917231705614677919982825755337763377032509098885444107520739445719222981113819044807787413458727123897085445232304283788651642554387319742495430494314379718520839858290274827017513327378200739486123485489376102138415124293367928809003403951507134557720985528583487089133407782325737296479817055407841263502989215190090716936125735458867489237730342830848192347782370301097246923132076902578875640469486167384298946640664102178350191709890971205553816060963347278556038107119515984712508588146095912289075548246481051954957504785890427963550871181080104653253209269414358168878246323396929053787643674403913008280600708507856102293273852906123794679668513062425907828923283286969860639940569298597268880557163122268717822890832980756304419026072673875537002334536354439456374392549743038178053961800118114664659393501767811351774445495639501837924423731245093394524401909798747693939578975735281149566639862363308929762887970762683868684725778915201609750074114034658246650704256849184046256301986278690829284842550617833186056618485817906189810157707776888335463917373526254514673773969543799779678513334666180386834554008979968773640652840719325089776479747864707423998420849448883599929559071826527643435858979919861624079474194231641977780364712552136847190360700492078492512172290956379824021690553006747325703438534454745816440205147999868125091630105135859932131273945021086206689267611626484550436413439619029631997226191815597015638604295531087819091278034871568183300715122655736488673273977861390551761017049035130203511603787394175714495490780278574168208964700858897406022901624923536687406287239361085975353063098111861637092458123608895436160132867605449539769055622705220658123956537224600924207689983770863307821788298564993155861410888820465452413931780026318889667318122387597215888463957244736344307266432334144976008209933457480191627388749888755942909367852126276381199380399647636006849386073428799224447341768124889809082496121952500580775076940162085041052201931992803780020910204342093929574867660651977695334403953514478657789438357566762432773215250312276039328224687365330058014781794692881196611838837203097814140588099073803439200848286211441873089048081956932613195205018131789576561257410946623587408891748211542818805734539247159357398761162582768617621643592815799495698565754100813086778961301136787521448170755657705096213024417547772213160619553987514567965520293510410540828100509039502053744567451575062767619057882079063028861836712907391338402383646649958977254151145929594962667071060081729494653966738815247924075146547237579788606875969668297622649947196427270813284721424474011130504763889854815367761853974588954741438870497767686666448837329977458537391676969127524661953252881934593499422416976337096294403641812669565084260691235783023497470622963182464886650253893837818771406444427370048131252853506187536954940711764918724812199269842701302856297551055337296046525795086653105190126993506831118300203473740393769239624025032014935647451478644840520790551363568766382867102836582942102729288183768948593926376885921039766654080549834606502792182265846404738018039435106335407759139478919105508958929091560693202982228083803479516300297195389632221829050849535109400023624967953285565024770358291974977407208690413952864720925072042379408191755871838419083873904420121487136012490829246983718182455654674047528229122289335681744118612033080478743140220927214779957522105353462118639445244110415396401544673997171580284417573801269682480800661381682472536561960330577510895279555312257748983773794478085643827310807781443046771554651773031269849990474824126204739108911718595451426645422497380539070556335791169581660311307451358544978405016944176985804982914396814747966155661739759804539338852886253705758493192981077338316530777662742942482764706620473287487566838604024062393688223939698399310088726045071748203884159068384264194673116620671629659260467391236623092575456974328945669856214773897648141592532429650194212608414152396437117499860279522732371885585849876885791755374989481145789670579018837583548820479646968267534108583140596114520797814884240869995687759886891492134807894181055612439223136724880149007102930224525710136210642203523684088725731430437461887154937832791520172909017428151985928399957669273446658857991517533658652075713048866378001965513693032872749909507667558446574448024757346296788386080512310660912181798029696291676597257710831357734692646366349146748249959466172306337870040170928528463649901838684977185637685262506465560829508654965907870830610529759115527675173540533028681189673466813955761502493792914524149338157984938928519933831898762854195121367022929262550059863393531561362600459461286454812224684225004414766660263728706820121412435983188791310700182390410428010334853086686823597815549124472677024114579689783889044434513894415767817406758648137319520345382236953957777345203133327834592011041651262897836010227213514926867313087811830352621168734216135339247225447041509174553594751545970080224494165806703246218623037840540981431380725057055344266249453422424071564518368915358061509219645856412331929192933550392633782931279412514913782248762624676076403868858140087038147122278539193939649619422283156122813473555265174488116497404820496065672836776941386612765635476695537539840282160522539003027425886489236915402460195657634667167295952543406102639392308302078264358269315855940900021382926495318766567060333662342933963806560003281704262465831418201498128081913489854607358005559987896752893563698069160074459469732611982540994536993552027493778623957602926210511326244291367938458711481817459504610739246306365235854927285521830224089434820586054383285596532971515123145692231608146333498083189424969667005326885541596358640341029501133092056342666059631794238266751829463064026780640911081676434825926346350239118574129919670695202508417780060732473566920347132012555893553264682280720356860350489518385494647538750850735087624050254252142823288230773309078632049935985021744500949673215107707521708316910775348594792484543118279445174523505001522412669808638760687531507796847098873147743742078204078023033976773919240409563266638159688386992303924371704028616013239077833458975988888351076757236616813901913776397548065966230457640732970736992052057580056298581598097447592246370951851686404902433005705449987287906343979104531513597749595773774408067048193507120920988077782117175267610595649012427187181101257490313998105946139690624871236697183657506354137908641267315162784402026995265960612295388308216685375956550038813626069208398644411338039897388777996102576897619862504435634183818511459508456131836581953351596762729967593550503922147163779448459681972523777399765029014845687859792569135030396656678821562124675787389282930005416160026225737497549097055734944817668054473603137887859426169965926241910462589497174884873622301950778833202654247250083642954169862770954389608267895850124283831609055639477738867356836609703392762799317378807433896366157276769826061285903064111481696810057654658413995545950947489327589404559344684046057691882763502360572169026696442476733297137250637776508466129499395399597760172360297608219547759925517299722555272773208627081799701681538000862008702704716596491629879616487334356100491869261482490309872819124530858369259449098818169134800914473829814506368580298191162896094770363673889765865712882882202311238567950519238948990547033517849271980493762995143785228123876095357366679064070159418037414369704529740381335046728245795419070797254401137268639194375905927032414903783436550926278239857105525869824890327337108001786086500355721192479252315977894261657083115716746501008256093173781856473849053747543737787204495118415325024790953384943786774750550796760502899807903470921053206811036457792484121589345727678519828524212414121591061383923482208677609178107423605609482821059733899583694085315802496674532403892026704183448845649318125763568924266513937590215693254906241898029610344747433776937678139679820450259507886765618831914262954926910190614320958700101763719071500829916916432914092624539269616159044486295107405836489969921004221351968838875460279213412736442842529561737359417312379455976651242202175440397561919905742065145475722232358102705990353104305586120528632939602376207912446649443213941695817882736734827404906243805870981402330344394647996387068318437760672379937049035016036282919314767966593823677520627453384559122709668793285131235007053617961661032365192128041077021638283083176137772979699550792407287717267512236694744902291293286982859862072052658486483630401588874640139232745047520420390651476617142964937652087398671312074875819363810496128821240920018011616179931181150440965979223362250572038858207382547163184894282856127647821192978854009181756194861151209319200903064501023322395000557452493648952127087523212369962101329638256764918258337865722432874681753253608641096114882187941008957453685822412659552345324128904709512971310930920999600081571829167984834654521552907809580746911414830453798886825666863672827272819894228933379436390890645834794824127930516650706495912875366699133886284171482497430554104485653293061213789285269031911993043591375760266341110587163362349518370882031933113162146249260670965754679938626745339391814015011660503026104603503541175982157909657302019233324758537158018362113085045645337771146892184661239137986812204597640404750857919464627584715437215155679159265984652605544930169466552228909087170251724460401376882215760303479741223874768520150760361402709107051065713783009905997759967719956752114807056611288749125842892182387034253047879417464178306684631171769747255528133780463788416025326513305719323131395483548869235408396622421397912508386980219130983961777027958763861863338209400750528736825900853928156499376021185644955861515005760660514724530820778398294408793483638358772294805403181713241491995647550778454959255888883927939578653959266663876864127573031978137382830665057167886826323491828069193059907534841981025414600099262948541461982157441120455205326947081124205365814300424357722500417661105394774593215326254937332454817901714453280523338809299280417730839377549485861124805813054369456013137122458185309380504361072335612278301027600715593078526814510526660220995649491185323411172244298988913281310533178977652966770533256134799730566880988654108370309426172509024742495199275199021716149833437928279830780288709686207621472250333734287586209375511280626024856752859506546418369113576425028053501461114037427087904376594620583600881082839776813797341458272637420270208359186569110413139134926783584285099840806934964841800657197887278041586467534864825199368610377547561810938337383837313893662174428529428670325702848690685247581818983691669909475457461979168879303400183653162624061844187474074827871045015910972903493609177973689775999782490766683263268343640772402097590574935014188042372213850964185297299173858215164676493062400313572579650941607553747329256004542788522530490113085309337722597652402625706044381670189066495585928780220221785615352332099626479384076969230073973907400850254802146134284211337736687133004621640229361909929267908484093180485265147111027732708136212681619195907410846717470505959771724279574938751148948412013531158928314594714181819837511877849954493482383646881698638742744523637117164304051088130201467456257397698650083806670915730688171362725281804557536074213192209498288855361569884602444927698701439424975229051786244684168939117216285421699650371132207442022665295455448894105312958245503857483207760628452100033952713723385825458162861446476425824345429827139348166204689805503654732888130856645529934351226931533743426938373194848245041083666796396271936259423735547618039019455595984518236225914082526802050675390786044127886222910093511557585221862256740251882305683116020461204522810235816470059488190325336732424905396294654380068883282549736514554246766560371843060637642004266332000973554721924531221072955439398265756970529965390860841923680723223116778947983564214025477519117967687485643959943172293079504170698112581058553987864378949866765716427378084135922724247380464431875291425155081144924445037908131333376263950559459119024378638151915034841370614787093307364019136640842320534850897784114377708261535504389877146634632593819460108314055252603160701619394573535194859632424366242356251075626637972829828549631304604648425364090219997011484999174965551039811091510096858215363834339401407697673430145707632477751674852610890836029306194219959888680666873715942556641777344036274981103367907314237336294365371163925389099549432598127124761874833564642465872921610042037288963450399141683177877547159684012196099732027975090671445061989483774389612702909694520620584332787841615796808896134537284226371527290297691401817180176849349400084301070143907729637946784785082000175143551558085821267399622309485446192900606288130638794516808340326171697631272794495955720930556090352059336731319563536536227184134102588421341146459889173115006169704465624563161692752958542593811250696201255362065967315035025533067007067343416705506448033423472104785073629819258588772735104537688500007474232144214022030599430862041260682383420996764057888210978046482364173445686778853751825710638672860297398416159987091647150597662960575688581748797917375436916981879786876863477495337758119519308109053611653509817328499590344972506431877981221265263369933672945260605582094164448424844598245191174153035155374782457763080702656232829041081216542103352043177020483914171884652667199592582840194494228418463530242818567543234738361590805883148100372504492469522402375837605590278720061739439779266887873405573377299113888540800530393929594358432630902314660586784636384392748345471309354905427914745177386731774978177395420653314480786917580761485773828083518892880485931845653725516943618285672274903390281639018277215832000949691402200391919023861575868048387543816437259864417724564924599386984038001904463486051901894140567322280377137443134630396791713052421635212045257218095722553375877232038357249483073954206588698099653677353753692707453347049806416424596970270850572785950472721087811473638518064503948460655721159761278357656562989682809240445915502307532459967312964114097248682009360075170322257684918114484577027982580161928659511397779487567568912180836329657146834187121848359520782710817530420864641269875568204611707994707623732822858484545125054678509496697148379419969467957531444975230312901134024517068394791437106339284873755727342174076073925896507126216857712393120167392486244406643248911677603013882809818416356869467847369002163295006611236266613371391356414132293820839525580492415466862422220910695624400267888826986853315919233479005091318725455477086672657033490503256076021165972361499250801623944843035198770286000835668378269638095256508048345408218257092000084267212589190291965034847055591015096574355710446844956027030737219163063404255333092952045149093797179417478857655835639752192392043289150778358470506197022556715178641834365470744353014382359530446920918684367024347948191768398405798734666281654892805740674078773980826646732358033106700296574033835040994319174668781826539753905045078804694389156977019010628805302234833419490883754055986934615868149445439088856409517249353894444064615710704946813062322085833301937498554121487645272465170416130583701175994202743234398625874839453890193266971186803259711001079871631116943013723816627167201403278271861611448150060101800690328675468224479469907289479737310678054407620221291356997393802484119181374897323621443798343100962654002166634913037356546371657360008461729885404290995956728110561478353125479513741437046494515447767896136809625684159345711086625185035345311342601029617677243766175377902434632924261263617861216457802345245863129598970539169677355669449446192421506606440355361538065006720752910902153666488310434967532336644262172653783194548938798404956949095799954494743013673895412379820242906936051519075493389953018936974305783109736567719643069425035382833460740469267471985843934333998177256962771195350159275710296896888092272989431691012333143634059495193671246800039522487475516474232481459323773089505114745079941710642786836273225474853018493075483522013903603773191391937114531644646546797599309763123003868028840384711832070454970922460025142893380231294120839446852062662785945930077933449708174931904826799130884001154123894714517907885735938074083944468371658665574265298584359272571781114260129137982180335026160294904601164095658309750200104371742212687872069339407919809731461138640557382388719969247449870336270434747646883001146173959056424945935290291737893668915668998627111740430279024063454257472226311644039288189066628660792582278013270680724973653566216966065862641312782768281808039760941155968109502605954323721252696292950940437087261055954075281207761819227279054953439279922188689481494969700992744443981002781112414177889286115871232363832605114445420643871879571104471588652257836308646545473821357517868388170003534016905223611974459798296883962643364836081585709618583735927671717341756665053583430162473841748742937203965359970489820964234822732765371463567059521621995753470601407326683600810791958457713743613707808885435341527819940884199844725562607838180013688495780642043734762995266248259581771642955728023654497809106970731595040114460256937798748139052630726886081840703645100402940941063180746497891556244701190498217221770391234483470028223511890719953843679349070763473024430043143311058360695172007839781503666027531116362327378137908798866359993490912527451763818612925052782530569356905437017487968338599732947689342694649133242278977891543929278916867286152381211796155136608576921093999401528700686880472774031662227384061006813068711202453357641250845778837258313775826619135144130180937159436424952217649033036640371950895381133930341117297700133028655603528039683140797174365639826122734152338109859009485841465746593161139255167734593281495318628432850108484336661766523854954192961003418660750461660956370410994160813606572296593986173365619860728530100448070285251115081801099296994325109161113837220744838875335987696675389410926883778492832119143536139977620268822850432615364171877005422558770877067041620187051923403374464998778354247684930226195196889078451789526431111395472557859558243164466985062007264651719799497863129280781387960105932629736618620935427202851635831071732706380492444427219550045357767360318396923061537216597171203658720703868360805662759407349168795745156149379962691186560503297323127241598634026187977024000099510111733590815968702684639842767371894067034567875006431875081688763261036751485816678242956087052279585319177271495009717294853869632590994631456412020279699238388756377354236820470831143583146855482200272676887019163064243646596818394067461722965876886748905254523369319446650699420003378096442092821660039210547101052469795099399360441592278457706156138612409261311830679546543512453940553699703814858012398038694690309914786667390576872194983339851526239557152557292854570368988959736606330994282891668188687716900343091390082805537445146588414946910283431194692696692858204616064711656843024396705968427891697141771893848444995409983390483899876814088666706632056594634886182849860349018331783156065439691902200954934996396446016734652646409641379686147476472606846420936381018995226337540348201936566500001342524640010062703456231114479835840415433782190002790083285016888452040585972071529498011456627625449913712340147493418252504508752419752610776531696221552023703924429289955291645959994617639169574276606772359451687632042826331472389596523060973410905909643698601206386440207363906768823492221834496369942629450318682228271772957187702201924544041121884387437507913064122828934208871399968239544508633257925388527612431730523638367266512926842840539531331022160910694725055538998603880409289523930313285528683137343602072479646265389135884994121589326861518148991441798952424925785083376063337609489898824340734370520213256639629137803897547815292605492863092585855031947558502101212946059176052203864727415751075624440742936721875406536877774794406495461026726264530523502963637434767192904961499580098407530802222053959510893728304377747698219872326851037273873628170388781526776914485883790088998214125246590790012207784743568635168957271797134166770232225805061745836581061572522688494740613749187969010600953152380558710882131026888936745071588587380636863587276088697315442799321180279668767146111488199179915656757363401368134346060455165327841821802464318777200693864361390406025780384425721915353758965270753035086733386964907478993398754570860486483699549512014884564029021602459197178694341890838825905994312391455708115015126372416139621533322840524558163846782131086938838350581925100436499035691771410572991512452256926929530890535480240954895249108212363034412465590985055986591793056653611099825948516677614863649626740991271276553099597271290717158522281594746997869505469154537536791241392107356252116209944952737766222737066401858494808094813947227406676689615573077488618939360338749909807531944172117084771446256842757276468279198705995902261200643065841555750677652996600362922656063916413489232642720290936896467076631106379735760707643224975951790754464097439144701752669924877552769193443101026571245847185300942635699009407112607430040962967303754111184784363395925600874713839083136484138290427461427366365424129094938268239369166387218891636047751404316600635449647200847099321557886373769251831103315184411916232113803746174511487175224732418936179024385843223598649942474104717979026662581098348242048028798103231623289026989428360830522740040959510892625683016670703512768271340600300178211478076482671521553572301381903679676976857512703938345152429478568074851276255279733692144390231898161409644348319610798290946951657570562102171417894158284019961938621733915686468736864468097321904129070957132962280482215707972159575267878923867229802980199233368246617253754701688707366786417093997658491070542234856634049023642424651301823216827642496196104570623566633828932065458730265382609277328568227877695543597725861547443725458536676640030310545761345991582076941663997530675225227762626303386668844662703812460527146582244952451741742516758170850404544230673145732806459771981094789637947175255847920180197861708629466820005663981301005557234640918488117071625368121045448929758188924242136455739546998178785042080624304600364683841952257474589836074602980840630295076785831781612208725971816111290989744684862849632536163415933604150204426535831730303944848142459428733202155142916843359500759670430076347457966478357977776448777167104651695869784599847648349885390394657331769915710071759085410149355023172487896690607308239398506145684518968763067871424254339826001638562465455965186079648132777092085997567984524329553873931715978374585317571235502593130839024907446030072510485722576403289759260163026616888302569120942984720957829430728745378381476003948162287151775274041782145596997617537957099474713529328566747169213453662462494518109489060450368808317202444988997995507658402368747148326951431529925187549651973584518347306576987759686226333510050541960810798092086995190142015138176528660373845655584377438787429613200410703694942176632668238632540177080554023213661651473246261453763510315128505191055831480435459807033337099484401833216006458444762008991718282135904450180504131020265337313828023224448751949670829568149832225701577256501731093524691617097984536396632513129607574384326231108784776621721921314264434696034972357988007688564251438245163095412535870457625925833742855731505108853917537067288401455329313826863365185344683871274354335652253667658177887045446536428393533182586582063170466110242240184904878160670538300629262439839262226364050343317082469542283417703684717307420017998981778004508860177365732261780562576991797448644308856176049076200477460995404819900572279139447430169389138722643887467011858014578179952549567262782129731873639430558127718859305330484486967676206198604176083395671374484825653819660452849148016982151284852244757539465794600238414507151671366409453418965631845981206066724586772635152833883049355539711105371135212779003440517617516779137065734961309875009996187354979084236593092784467580868491771210598823791653077406201553751957727405130073599575953243997204764220193452802687710485158573602738292172432743715372819841595617116965045718178946047990606728165644922702158723554804440692615612177906884091171166688586411718856419439878050610171229088089074681640615523434346709220704130425050377810026799268334538025048533007505169580612082463855109224369246949277509661652884435008376822136291103532086806549611349705601716017813133961326272366023554365061449440361625532271843710660771530824422598190207933407517497898955491683406400222682746502187372765395274123358553660283631311392088506224729927416131757378324352917282170503796337701540015070815177437948196607475789162154121745186977950335976077157096659529172276686530204938189913603794641863452672315411684563149806441704187400679669644597026706856731816654772251103881578033826382951581622729562561969217084847263156973646941000581453438222889522398395644553611203110709544404143440731168441067601511941756450792259644433032148978643136760357921880769167815224236750624664443537668543404836155408602541589029410946241842445938065333873502880178570558832203648527488530313268272057815552946964908878624303803094672970970023227807511539419132878398855222127900675403814428245560944138758313350256318639644519353975430902064138597721682771822369567120158443684866828816150619475518497182600223692980477361434824017301491786836635356393875585577803819626961260165266561288154179496165789703113380828483411740787149026775786257733327485939495991060455571933167056420616682004555494610523148701507219429137717451546721150215738896222792761379286425815348665203926800182862541033209297666470027921086618532197528013145203660398580764433824658414295855428026187349622753238259151352088787311857490931300795848552067058218096722552027324668088127701277286833077858000060892513652051166400307351687549880653917128134581232745259191041654944145954813905941262799957332216640897967457241637796807377087190770790878525259010438442549728556162568346685343235191385131728329216500951040377004814212289059729094432307641737619700625761663362033440295048974852812610822604892313167151662464850907844758278201309228766391482836048037480516854973685523161458381251518817297982409662969853210571892410598418711592718412302905238225403535221820958872394815144625971385580887205769723067864488678971912106845599286827031376202161836837556577091306229651977796014441691380242877785566876867347420925063025297814822556285662898983937323134263254123136891637859823649842606791188113585668230224319457931027931144460623141296457222892935138644492218880503810946782399396520788217961191965639363642014201056012750416257770998491897366543621873220138104720783350244592516422686363429271268756249718966155588722592092545724864105476465392343337557104899955880904003144449396778066755675822606023551005159419126959709319281817588601526294946047309464936646015534076366876811270903020326076786286721302518168593590072914143959515793091019100813503758214064661047696143833667774680084737340530174221838356204060006025823277885282943827855842483036446730900782800897762382144413924898187398549792435794658821588409158646175464648299098848271547198259603832906426497393935590416800176186571889562537892712191837969993280732718808674888421247468571038733944717768991555402498169017578431436167201488189949882145512520889550623040949431671775500315288319678615314258683835900271536087645701106267073326067859230691662308445446162756751764984546245330504183521034505085088992757158966812766469572127331301222594356320520231716523833144200030322304854911833014219991845357555376528082732475869008666941598667470336734846991091311784247380571055703405855047949822898451537004974379475745183872826822622084648075885354407194751417657893711486495899852457368088321681060424047738258036162933577082675982459188123686240740592787758152053807271335790473894415336162787525887832785860010042472937708001267291975944564831740692149509145633829575700249555863516340607684572672393021822453907964904897778569353034523512698059684700842025034136476024462041006883919071677945602220876665348308779457303183057504434816931037656844674676955859110825810718993980005383468079422284796205907501695829250282559106103999806885044078097644178295599415592430241465060285685881328256458834561446324590855363120435784446216316109799543300451966554675517933800241536495673769463831095814089274779482727325373161509270186789000371510938985239395444223084584805237074960300611852932040797919493875721351765816887574842442091542752893691327010914945928988487921707561294229946361519550648599515969592762309237913280963959775788617926288594794347000824466218746871761334470176942752980066620344008353127157122346404195118151146476828944370989800051463903891043199295970535645079125805047825967832507802165100347878222169567679307146829295478609923699045897093650379497159716941525422715082874559716424164348071773049709207409895733184172441010079189971515106591577148760060259032923315550018475480869550667744871139008818036699099110598869204928411990242461401840840126970670467903865311180670491816528389722927790097374265428774701405812869045851168328265574143841932044836297697215183045126011586617874644488159145683204463987882134192683640524039745383755071745811969643412440378699617548899817497102967636498649577141181057980034692296117777589381446267966277801675986105241192407814552430827495060204439492341242564645664735827211008364582850458777343645703144374870676558532954278002190024556433854560369395775379358139438979125198080717354771199419569336061861116256721543457291676863372664078830225486315398611916912319143684173693072241667190558153879087750951263809900131637339611738513658240704080430040964330904351160131750358130194033819046635877696878603319787413532396296158639167723567191008724332812152021108664941854774479239577025801089497491628976792459639481835729744306173894311978467262707791186420913436958055609853576039831934603569803737284215080057648529812530465705623084658969014834127706047473801231873449662308878815411948789071271656857831977520219891765326261077361004923126117582812530998309759154314873104356027265254400200897120637353383437015329946796745639832128377167095969693316666045882532181960931130237311695811069267657972609319873287320403781538756542986492017368033792687525638098778190648872348114873914564049398075750274926254680723507159536121580887878947671684832604549837275044947694733496307259168235449108933869505753955696917305364989318235874996539145280081575808870491464876382873986724912827139311516033035937193801056573994385197242290498943140632360837406686440967176397371234026174048364598287238401944832271459798549571354992268000062041861758825900979351499123749313087042516360563623806164914779592415802625374997406468692477618991372393784798601340420325437073985090121386616646081965756695332359378311116896399128406601842535271633136801555473083377344947875145371175572138928651906662588512191160143001676224305063356288316078776683119490539847807234577734221270970129440691369688853183137977005687185991135469573563494761802111985964350659320661715137595109251996005357924607769826658097937558720204658395164850342032362414651947869181465226071510468887923926915988158259933287437197276976873020607078731836133896957658969636504564272611392073647377460735662234049413407112528045808099652475456171012750947450134277385807851865478994675437274081463672851900019801097956102943500192025830600248325019747776930055943681343037173638765460376895512295871541518454140991944988631873630816283298478871044728443335472876960681576003875428522888429257934108694850249166700607521053118229143616720140501207436032415513074969155320265843202698923385218805558730351383525293015228669395503971989159419513823279382232065244243996022409187340831697057985623755865597518561716751525087488068469272960174516454965234057779372995361752345693675934944258305569223913723044808357749206523773126813755486820441218126948733466112706375997814486888936849037421821978583522629167933994459642219933103004666273970843745346341166278087480922066512893890707892366266262372335888225806750352161468247299977568794260379754261145840953990010097651445596313951548220610892939868957819052200908547584438166078278808666462698528768296795689280004673663343410896916585859734874260277123996008032996408022509593567293972714010354468109961187792566329694971064499151571710451271808213075112527368251678159823366974496051444125807259845083188685383450154973954238611117674230198074319481369063754538797307217929448024531146255231280795666046521047194043763089204088840539727625001314138884393068723301369589495413142443146200518575668946091170241053856329332829908034268726866490519041541068207199339927809433779194475484001438890169017011139927504999491970195012616494586187151807784206622033025068427542870906881540233166708160531497651986561785047735175503010834195602760032024433193087252004668449288749739057978470092947462546781729017444887741921719911219604502947041843293610234026220138867290514311375186029425381428523132013012436383372242401192231929894729602554948016803883143960844639942177549352752951211337056493704072251517863347324321961272153903596836821472219291984749912081424319393903607669630938115100148895469009760097145085895350414058226679158988332494476612502897774131868046977648664029547820492633530337548873843841758337029223745552512461782473717485969113442232227800632409512117666291426316862552510031760635115973993260610559379373260620924087123272687402785121732939870017713581908006125908646211515415423850288423630072464318948768629454813475966504146672279144751345020316121346019161885427222557884007814197889943204487807459631942770487741246925942466323752307232005732769199487858051201316416201918379790157239988230732408936109613602695828098313600157390089403156509907232077482583919036626292711218733951509539556612955814028876809138834625081598529256665987085889659380529500317336469817241160179544898363556650991151342261332279773091600689779227619058796964607530230116632091471581525505129397320775999899965480142691750323689054286305082681068880336605009930397980208903765505141485597836055651116900861293220171275927980902003972256539094608204716748751591797619705037286755401408466185241176137445818552088187792484078121408231712392527283346491372227682635103512642488917609070857782344837619742872061545042473168854870170909674647216017412571472864179658730204955693262867525833534129540057448769643378838957980650334516095668616034995742205530868532325359226629579197271463553789591116509593255018627331852368593110771233157896335069029332579358264009980827754845835621203328428506257010709819029713608530621486778229450657063010691838566121076419586930575001549672143448076842535187532832671181834372798381813758479393475767045964206747584460843025210096205180353083572702295797052240462737702225666492276488155123342316967413298894037214530723933167510891859838778813942680657667255160472517494309851628431045819967426742133889979943742093171151634474395641734677921518710311582807369157520827233329803757176021007164252920158122963817363132084821091787370500444814491727361279904379423326600508228712691582155202099879390561311178472255563115376236218861309727905509142744015135569414842429186118585377453624055441373545098118065302308943240522246080135120825849559037792495902267634048287161222630864871213048017116188655077695712077645210355893848583085249318687820702965168966623082417683205078033620827070558524467621587061537584818240707723890944016502263287000569656136731988339290175855363618103007018137361853200496324946159333676010859719149836931634001182653039659063291302924238427231868557303459043075200328500514445043047254415306301812527004314872865615147379797190905020792334552203918371495233030232678262823831530682681666945461498235561674155303610935470421006942995676003351286698371213951758922404223783552685829007729295498743305575007384636683293150309617021614543347537722154564500005211077647472283674919403075770438771262967014240722015827908439616597608841730875793065377877668064333332663853427932031977330385276530551280264614789432889004233697728820297878601847519562275024171309716329113667715333576939702005063959453226164162113085673623786937535497622043431394038833765196952846992444755055599387350904511837988909094718131254467429723127335922820653391477575634168519631015793195995356861120131647000423512928279178563135685298622193482071482561793331083759437675802740046902732507785038157083440058396820705336701005454168236357263687734895253316088042198017340406621942988026075905468930220434898914942068221421867223889283316844121272704305838848494071892060387810012260371500129450005452369799788460042143687892150842594524154390767359648565276764327562915534768352183871613230961823936665587264634117187597558127665491270461942662626299050462752574291184425406303181565530433010145535498797175852618029351406794059749645032184139945814943140325832155897887041350434943409688525172003091018108611790161340855987285838317587863372786846765150314842725679702515293255655599588244042416411940335532234887176875065551938019209574935415733576722373058179756919298818242483259181173847815379431076731515971599279040631008034474999109832848450138838667716339021775938739392896133369868681877977095154446225561436369640876794928541620617450675218121014448333501579957674782537353505592458806405240087323169219396335459710097880328934773419478720750600562515951893056014149471355733738442535586035111153929983309390249010342223600302688825782559154410296028489043982968658515821403985530039981462787973688371771794800049136234526092769404421193962401167153536818827326063383710763972961450511381265967414669003378214687724510664079994399550804890955373002410709891616583596528672201487582269538989587849546919335043722369770673852286110683673610607365020424012091762530279408504824075121513037688851268150179169324336028430407437684722743939938101360742185580321548918496206139899531119258915403274779186444640751362423307858224867814859315242152560868993433764392357516212541000603721802830724938991089406862957672961996371125386245762254560729532559554108662101732180799088745887746005480760347406321681886597828988915749343848309425546571839204128830301315660266056840387708425065358360553192625755563773455489169306302543689901172262641232667268433596065061107135138542479473342628037894806686459278264332784312885995455321106821908792747221631274448463190389129661237988477074865924559554214690321061872347085443259378959619349652186245000075490961158050532786222943861083843042528260778989385681125509117830045938695040235620133317864608759503246148693350175813693807796641787487992183932364426466134715185081106277018114268698412607160725988342902945379010197559037017479196183912379595990960811867682255977416440507597488736861924373479682070315586047201988814169960103262894307471307643032335743135626181269405506392471539795574311896637983656881980065518597640179610916334702849946353940441694706968158634292445330896104186848260323210428275696285476699473156830147621644614390568092098923011563905211932568204543108147178991032470840957257543949145117673663818160238992253918073765410667769036823888984196645748990141205511689707591644949445144741395061506164865431505500039386542171865629701301000975196738315455330608065811420121453994203463322430261928583670814935487595689802297552630305074195870733896528823350701816963756887014978118864047496462692178290490882646172595586695674028372548150371217080849619765216547595100959169295016115947588473362936407580607719139540876749352894083925728028447075475484925266539294608164390768642616309182448601101638599905022157117277971823365949421649959417657180682212683809796646853453904404946351633796497834146213852252211811429218209179298592184243820870954057052414856684368754588005175195922282557281219632480470407487028635514091775652311974521345648211959090465203971721713937638572156648875817784463065852992906925025379411588495192260176052283014544021345031507599188894720926239396408627043400382903936570246416540108865703016686965715783867130997353364204414045857903382570865039657955264437331687564128612434144857490660755136130706077277541447937982335536820659854267073895011278652553781496929824614010438545792286382047148761888358822698364936542568338451069237364949629321927429281728653613157098514072353414936503457825301369939265269915852460841014017315632419708504231751368011000924795928957804521049423374470859027292603437585179818813163557858830158797148382056924099595480237978060283248551256095772657885049186058708574198966053261533672427151148455602530243433461227455867413822927777004876789210361674975232152037798244505824987091119269330703664379318091151260682311855288023321261041047320488582673248155661243592050944250854081478405754555426891821282471829769926753529059904022948038484202253542205753900074636203629746028207501923638652525398533434917796761178775759289836985549814659417423317852462137665839627146725854556229615974000493139408385978397259415733528338669738030598975005280139397187186140185068345592924410351279701109966877360588541569514546335036225879124562840541393106520587374898213646877831069839290011236302777729863593584906726392988097965611048161991619990195131264100810136203481286287718161937876559619951657780351317879811470945197939226872219472088233420141925668050306548555729591589271713249477700083318540117940605281553924002517086642978130109822839889303673373077938508993808526299721126609784330286287241936648790206723101415730045871972315641715851539724511300084006772663924068105729548778609346311545120295644460988313243840339603004014131697831787810873326328084270940984229517882877246374320987641411648544092665156928628230610438295442007970500561648979688545246012633721324067677980234459854231468738401604488807891857794329585322559512037707462602652098640081168432443154210131093772033560935968669228478868985468240254192613098477147378142972688748999703181613560635660295853305307982336988209018670153310754454921885896711786524337248704294352396809970444613144023568116757312606235194630343399131557797803458503096600160682498329020282308814187064726806468438903557425237959355836773749832924388075746106027005008918861208647883551921865049911638142671680991651688075913461067954676211142405215893474735605374393971028982271776091090490583823407181044674414163376792334604582605967941494898413930855063039748690586487305896643805729748760397640533385905451813069489128881189511340292554356024516424414042901081462369418632186747017573490508246123509168808239768879830886600215366004216965089138358721357808551300611308260281535044181180234277207300430331600283612884814104736114002537884151793457895938274267329109841771129591507410792056309604752877713462877285243441085470879840263461301475319350983144809310200392966503178800206997238810025432577970407702568323203844596890667574840623103857853014643001246980453407695691301295194232591075258375103915964112978227055371036614095004760068529210839970575530870212168741694970337193076127294852282573112813859188887909070709895297884183013914807558062242472284844887587598346322445881371942862041769549348938723228402789289966986961882301761795292598010772347624943667614309778646717662352682551264776474140297581049193292514761500503314292952274666792317532740002606690702263412500056647940010062220119754911204911805661078708358514354550478861530270415187605482708770979585249440175470761203592619376624698347523671262189130535293963864827958495876664923073819885082560570141419165194442666902828676938686924584914145406838557784331809198168982820362410858561549835664876587850167548964199826839984507470266903092498189622240069398409852325272616412795730675671425499918829619150697434564943384943962002835178384287108032663914018848549787309383811288928889904055057946973378199208661222877092166166952535197633052763317537473978165085352164157334478346924001862689661114590441532964907035685722657376860905377088206867670630584394146528189498044526470756588308357641047598365583711233911008866279881415377086663097416831541971121493723964262558123495287999785277672307107694163499466643005033225642742161439159317059845165704803233784940833288275060355450233445254382781570164506174538943069895206319671501091673631729856492316034953171444739029817351755111554712211052729710268714701444122003748337556909843626790936091750609048493906427471850613302729586909053228689985835196818985972963992359276843550256965178193486923852947539977319614554504079754251303223617921006293395513828205608650013899723400067374201234881445184237076883072092534928338649281282016778751876883648090405712856744477701296866733435843498913674680700281377492965362918708200972445267846845823357243231310338017437532741043547653048553194148554525401457421071168049952317637231700844661165226942828771586566730895245080319842168385606899676033013509091318937138075965789564802802504093563676733076120400239806731300401165766662128494330745627943319862249160811884831601484865517328979141847465632029406348645862439015631647637588127075862294423124600227422997651480037682317313696354277721009188670527867889297007630042604376540980116438821161617096831419368931704861182754497331548078072790925478882735398748493951433263765115011943813086001701020319968897816028184337996113895501425762973787549107946917298789084437699281662726937297439834764850006844251578886755915071932568701068883444155877132608008237898830722303256691165436655933836311181009588615193700251551102376769101667856606727274445924986910398817529601239274311008069878442296954717552635433279334530325088620774044660129262925860073902046944236418362793136043337518526022193165816406148430196488582023291979436695040763749354043393035914620195361062864561290018503630488143385586977546406428897281614824905077378600360858292313854147141680503776850423204888571012685060153418439792453170521672834477289950038927209387681687016659439586782220639370297235787290389952352877713106467751708447205217267118500043125667225028581406267010832550613160802261047152270085924879191642613924390693471269603727776922557468081578984191617205753400433798043172981585742100608971602917314319146917075861263057009630088368292899027398554669792373084337685195992273561668195802258093396886098689466414464477118952538296374426849760809156620602432138060987147011147212374469576844606525370003284497604337139271233896782394983646657050873147704296066499130143464977456963995775683466547010983681840900918163288261706318492130356200814694310285223356711437438761469639917292460410970543454528980302552260103378108191645306185321963514756930779797239893918982992287355076145769926147740066902836391676938776850738019283660566044145045436134644864940931750306774144121750647539385420543249223676665653988646126723205088975283013452775928903602246854642014885480335250563680421583370017209947388749061571840156741758447623840200161506132109389918403219052111097204217591192916521186737882658002110831397974129550068835914446207373493806676501301312412109376711302394473607638678382551115869076787969709599600163362270949192871920172289050545998307212312299676548031681983682000494611630672246198718527911960933466293731270753340126284907030461537017202543084036826163327370795844214242759731641871148198833445666531842588085958158857226885253056144319287107819790224503341564816747032334917336490043388339411081730957869572196095365263634522048739546999716387483938887584913362991955539320838579875358058497402724995378941120254312881830645723274278005850877910821209180897997401075035230892774657511228194991607101733346379967428535429775744147663240713858188554894440213398980929080409625970433252318126978230031380170951860502655971700284834567729889948522178444271077705116439549735254497535836934205859632219650738083993060127716426162803751238991729168444145354574362114065318848998141959184814050669681040577068683529718846930803403142667350767094974459505550013890022105528742684332751125811062675741852330437757450449069331486898642902163098907603535866159410404321331320166915378137598359397503386002589040283401961636078262186544244801618325094465995430399816612957769742469918040057450551194820924800738559566309924536295121287657025546977755858073564830941827672103803888868350304100080886900633878513043213928399305458381403719113804155821366273371196809841615742275250869641878405924645416320137866494721084817855478522821831571970948424528233664279718707662624009405835194701274141575468747653943312080167144404216581326577859866524659478958164293577076683649743518639844219133354971208674154619531744036341541539691629751451354599441548308926436050788785803071192215890122925241205451344783843948562922514771597223895674901335417726892393085000390774804403247288430544967362890500045838133572518465922002051841633855679021073590747840559605873213028141463833900111731503727345759099170904525291695872549389846418032442432685002931751374572607583361418576793387783377323006566923132577998321379841329113884515258425988598392493407001701427655132195166953779120330377739811149540352835488664908849855635623471948638810522572474366812780128864265493732549981003763112653855138070584086655401115477524573818768313397943114508657190584024373191775323497393699545890632516564338991904401550629329236057492649515737302318909498700169702413505049969489930415359923720044257557591695196490648397831766795297732133794792822165576742264969476510601883786388642579496176286789756855469485382848677551547118199838203378919281909914396336310265592948179791753990601592333741036553552805103032942737488321980781390023230713961923223462689920647877168663808103391044328727207919098152390323429290915969581210200261646580540213419899963464932478779608336920571900816245185704694460904739562602057862532161929879479785221705107612928699088225431377475085349441795451774519737046538545325477344552747936232970998365318821410590879159770703644075453231427249914666459104764269257512639092143054776445231510793545516315237474586092032287705600250418185244063250160578849704735292565196980266654539211241546082005671061628594338460900392987967219312808923787540710637640890877466450299477580378942633240722747428167919278937672046836806653857558170508298759134476343730438659253425819320784922306305813139692935620192360280932603573956699874337942038443919133049385251484761542617834411281938605105483216085731648992636987220605369423844165036160367535686249160326699398197062467542208300928302676550290341137969710569709382534862116409855455799582444743891609030490604983543035524268816378859853178073229958600635841256386506024044553771960344897288543725841668782566377804830748157348764734036179702332453741862559127807812592056627765154075448685050234498403568131278870377275455533614507003722640688149783668812008880653270529489726257480902188893384610699773595229551540959619185618462743845392342362969533875188524396916690112600460544385278058445402884958194458675994464993799931472767655948522059828283553272531076028638433632745921100905964517904651618015518673546972148602932165217908490167781693269928069761430255444478078119638991689189608460109616014162396541351634228794994605961403119293868503590668463839813228380519078413537472282176340550317478397518282835034552806569592062032925297172271074411683037144518114147014234194529866303281129461613868878352139015999091240239058226408829396566592298758839975571956917576682652443297326216467415091267095346485119655616987234392379370501043793737611997981434468829032804224912815664003631213434033353064915166692571327238474530153124063682769328159597064242332227183412216131592744916079790484219874132740953971704324679804547465256495690011665983756912054713061586630945773368368953867161987654367838581652821890435014106445100762295283582436185417669312152762612347211303514900451995444141069029592568792911503603212073704161232095971453281539244713327909682531656838420947109957296049987728307557594995118076130386425131556546523393888417077949327265238588872783909859814806590941613765421282369957646599588535469598734342994417036288038636061047485060177469788048560218638260543698519043829172429961751842429446499057037942458336197784160640589447648050682158189298954944786877913203292472386766049855156690788762387650185254228363785531274069661769238570188793606062546590617163351957631705939467973908977815960563117407732858826330049040316169963161083476812297948770033670440745985188484507411753182767804426133751338041693146880582214822018844032306687693595788005011393108372557221719819792392667343765884985918214043577038750642260716154847356991858003339160930983363406308162947352086464461238253173416730898065075110226446968319219289376142019996356800825529514103321952845918714970806077155376367183755519275792289278728000402990145086355883051247062163220698862244152809929512059557804446593436576330716435117510765496561730486365019559796844619281930866634494627004499520750230073093184464487663178298991079287362498678163248646626157458783938211646944653813581762502275062866000525581521528247087449249037058336738300721472638917053419262117331016228004771931536038093146964677703310526015207159263325556637974149549612805552504905833926087872507197247617265256146175121886337392983736086662800897504552693961666192152112311856449479877872648679762126578957034303270657107273668010914085973187832760669160504745360786990516531249291051071351931030660510170510095033985953830549890461210711946657006609945115513101488708992902981621576760705130338738042227562546060375986381458188723702866886572164390040386588780264440925595385677875718229052303817598922046210053270971179123991014567827070095943390468330678370462176724452240258658985639265279034438827303402415376852578359202982246215077869832514489754628350372360944879187229441677577649864799194406035545622894556814821188298850634553505845878409470321478486857109496550868258270236412247307129154096270079892396307870515043978097777648013532008145626527480700486644475591307507511420571609978774610370756926662616421117842912678727141568973730330774349594632762778891303529264518204973038604008173748800576921920907532462363347855345421338981172616211453626774172775798147440442765042770724199747708668333649406747430872370138463679994278181352528281070260118354233605006351088371790281099094782579169747921279601963102461332522285449059143560872168342859047507100484662913660889633839043817530267326205066965411444511119624647732266951010654591013705338031497642431276719405606947991157221983586662858819744573637963798540234760238922990437937646244428941500854361183745199545726393019045036448636298752830785350519581473595996046526003441847062619932770229863942258751424987076360936589428899079917102111248429002296167332020251397854686995520626295038281932841406171358813526479905739973710914141816707011398169535105072815177986216721703356590395986399684109371688828057498012980050247564929965548825821371144287112861565256110189644262619411526138287541180998873647956702130886396519521740858761308904332814313447350312373820219932784109368514557156550007322549065433639112796882871369153307237979745002555514036704657443063511955228682940900204525826996983427749735858819029139844982571080685566364775538271405931305968319754067642238347138379379105178936258939221407220848770354959472312218351183989813457776743852922783087283935830152769990874591069855238399662807026137938455912299680428934399083526641023415005995206047226363913788633556653252521352620388454845267994082871662882283709517505605928992033290916446339816641721151811080377431018411945483040075750046678338378931208313962169187528096239030701658185273303485953130527267611160944176919556730635238899881503689157018598911075749843986609426159608403623242699408133123678533019872275248029426588992527968198065237153491461845432120201131368954813112289205133066503066042055664566315773231188322873975452367268519292109631978205297374161684348775554468937705787292148155366467204652881987092070668583546295817356994150607711871700653872013213148314663941532601954656349705508598839038764818273108599728664941281183381855670269337653980371784060099263593177915505553555039594472862386511435831786786689037814850031873009151798475721327343026634482109860095880590848650460084593039673057524537405595312321265894911790925356599854762611385909940927820486149087353066536972826163905310270199562528694982899347064307533872552570246511688125842462637269585332270207136607098153826690083784436541697939765365012095458009001976064595124215759062787712238569296150044170294609967148284738900712991246614353835462129558788572683374155988859150689280054783096565198595381251487808161433276279023195778345946782454433888224578629471765989807403962506024226373696740968219009971714702686411718011918559688462446924537116538524402160205451184648539512789512198629873040999865363690334524339970814179639545142860843593977767051618866006874552467420706659737865282802043212608251117514552594659802421795242188766718764379547653446709192147329202978569220707152081967988778051426121689166384576981902899105231260271357917659388122884779750717790187333747267384632112416370684382495919026486064285691100294218646129399417367198734413038425860850486644701887320314382187379592353636614287414852103469243965492495275983607514408926026535426672861512539021831464843746551123166281076893479023629481827287521968099151128997035041023933829943954273162531424775010158961438257962021770785630796978326194879125403039584596164234199966056493855873253654665715416177780056910485425423624565348004873239566857010656061933846285390558060401153709608015839261136561379348360303628532341354635526300339267072080851975450490167214796708426494317916700922866110588862609900273758115700019347901059973271367207956556746742749787412861814747953807305858743053088513791004413477709665968310982534181576272331530072178323273416706867581296746986913499374298274593844308326453977129702489092698880993114843955750882666684803533944134893972503159788886894303644200222252892352234682406767521816240501522979086231660653689270609904277673826394315168835601800921443496130140340443984580794380092312232343320140453481291760195890411236722099805527468221808519857731584559931626433918103871778961263732224357219583592698734095760179696616820357637121045056964871284434331764676663410373943147621874211056971225784475776903311211181171422667758152369447273137996022613511557450058425344127363340579525189338092474878791912503173648981472291788527235158480181967953812794072754246313579951205712398215490219127788462207000293168297686773486741964707412847482222428172532298041764610611086663186736094692421365729006756394586331795178551026524422143859173477790871660011308866079289856277970442481893554804728098500354259255960028408649830771291152885241213656146047426745225729280216863461059738018076979701840704243522330652195167659460935707924183876627641475161971195521519401923437821475935616161907126341789510773161980234448393770137839404997102971921795559131299318839732251753523271707418179502839642128132013274165293626884876711083651143424583919560397639979347423782399677214895553490525831346267825076305205008873357914608844670817431157856675930018077915440757481635941865625167167481348521826195189809925085769901869877391548324597068125618529952510786569628295920965091475422495064639616911636057184664627657894992393895406438066396054545800130795280823096772838296442358718010068077206763808658845221121769490621967283990412174479275190196668486238411965475591970288764205816314168000315668966561719703138523503140330132959398841435137412345451356305018559678559839653147123099331772854582828532909503091609027343167052602523110482855279138756030402890070409014668886054147331571755049334881822444735911003795101476288365202260924395791362541790394702274601672936078450459158362368255956950611605706616155256536779858577130922869469362468915939749652335480266061983574165945947902890858145887174143975407845544174554828347904507732092025928776506259064404389309303679483019267441429236734961357350655376695677613544026073905409250890098823228778409895241941374176577489136239173475708133167196446996311367993703926480241578740477858829998366519761716730321710451484844899413237047621319345244712280398054557255710709787049674776771533047042236318396971817252181137582739454163188379586355288732107934825168865837583721845730075898912501769545493213091415075041983414786173524982760241874323857463752092722705142196751545680014355450448274299609052011985737086026112569664923240254030234505116701895000000331768228234739628004108284839030466749405462451495414924770484447261532008070110081405246064354196190428467145985891541953687676578037605824008920824938416839281657002044836529553544839107343742589767073065465781962126350175547179699453440738191477119912999248351847200121183425877190063589719772746271058220062092528028349338396261443112288616823636175728448308059367305443629333019781035320179814015552077595704183748750034110189182099435144639749892703202988861579996593673751368554930323093827898982005777799289592487548893100100276556217043139232785158539745798171212651351133479947719385522467451891222824447307400997134345248776386284560942626783575349012128341050196314209770473633765032313967669432651432015213712010799320556575491530957173074732003373310873932616083819474223126189634217099179204498064838389144962708681776404831000526498596245225793683537403930843097805990585461676086560472086840241092495637399047195237708670239606314020482678479751453724528609606707686562337711847987610389175970149462935887317792382617725342927777268639005656441844752279384040998476488797576008241327302111550857376202021932850111754339065092408114636568342973485655049577564058357990034625781253300346612063924980563330522399149046924229029242112044328199758686679358528534915067792649826408685406607993818465350015949514216261573529133170435446971221045810077947235256307198918632249626806270745067091638031362549369835655118221014820169758466594431688024729271611259316144623223572273013730667550215059435919032600522085468833154199306686515464211618429633159957995840442355872558020446240603476451683705747771861952445580157689723879732716352933573366213143635121474889499788496089806449403265163110222501524922255297588974381025822443981822706528193582565118097709359846931059108104510104030772706596664449371280752242465125412880756112457099145644826003416388390145178076718961380666614665817107163620082846577276635728526246283776313006042053652303811129651869063407077154093569778891162314071386096726243012519195551601783613942841161030847351871264796414074825990122243819829391492068556456635154826969425699121597007909388119125178087612304292119143122002532711421898947247219829616669756214138166200037645110313384482417742757846259065032248698307181264722302031786715565051178050736882552124265722745657108329919766504597830651195614197286455315064017303471624793854872810727837200736911300654900786358845556944318465200264020759891412644759989035127720228958532038965413615321739043037918267028685877192982347149848002125297149443525127829712283044362094698824952943979431179497573234039568337891009503950220065613244794088915953971454369343479831509701907653698268908509758417704133936690290057008223027840128923895643871860576125118176443825925363331247552771134627324295723729613280043381743301393357479729056373128730309197347625902603705081630858338790816725900341388695682615196325975775929075186559042973837215148204862943428988527779327126946507100253169328298938138357670721747296851486585224833639537625222019542479641835367540591677333776748968603280153217761046641409393451619331892218074842479323705482975148519506304361624875475004421428012127195417937292905736133670285994880704184156806083705348174300628026623312671186339263087574927677225205052292546004590236741822606956273840815224301793694207806151032218646293031073688991041353116940225301611643630001597702581529773682724457196364620163265071909116388807930182492260733000010748733833803222825725590225428466432011745123271873041130110515155248593627794501562657654440051389416766766853587117023560047400271215827316753839082294889088114270824356041356349185482868510996028449877439300153153363212728199749870715336542731497175167550273013351235302262355170696198217931144840473378171044339824486888295252830935893395107003127396912193044957545056380417986848043005089566597165730789136892082124211366512990643496912863644039287046485583198052209914343438559371557067198289584553555706214851137280890577497514874970015579457745982239704208551719769504764243214791879845653056088789035142821902964633041097153966861912697086707321740764492714392672517318267013152651944325827345715665100673045017300376531712399901554406578829951888189689000670026265103271193686208681265462307473041913930435571485919777631947407299432695480391968849465343998333955236267114558214544045076723841362601420952630386899472998598471700130900848850604198841773107857109064193936042826733424984887707075837658761111277343426466341856004850185115030543813063390598683749860146368319518743998550443012647271185353224653153675748221043312112955503213505856668306432948190707397739053050016790899015583236983116110931614448921105034148066546753101676811021374020195961344321613072664821700389025835289034557081908484839217143505629981858811978476392907289365297307740909726966769556434987258410534831992130594866783731805633846696597383931405410797992358462405434518887771126150602131425038846201705439437315679910596842809952115568354163229316833532048306669364684910411879352381180891738663163732598981715841850349892772047009429851383570822429012257600641763002387795063607689015315055629062342261514243206693692119122721467648355433891679222244239777842689402228900404007820251662857373942232917924019728265936787787797241970482107670403844452235008408642667662880219922764615075399903765270272160854898892642648301718298956378920135038527659370477227705600821589033615272565225800428436451163454720306980174108655628718195394549698890874732516694685072651142913962730265335415962791149963372955744387063783561279236551490678467259159616529075361684754240771882377653459794233605725423181992795490915094692007026094216265418099218346971130621044412905936033059698369660885256534715294547295321248082342021738336923325135532243285641602895130321918494300804833567639932221473915140730714629891654134179976634280840953083835112718216566825133761811614217208206478531527096865010259728409393315957831092615714315085082533065712637936038331924016811296287238772516899004659902328726064783442163877007995511856905186579173589470233594589744976098068804635147432313208753129418963412845819772705900921344061229018517496659258412006115445776544515503976955990631059475100137607598739250489351931051971750095265850508642282260658777651037021832246965076399603600486893034629320404278576911385972478924980212539563942762676806959010292723394354404940853634717452702678697869797314069215677999223779334205233806323869611254757834636689872532066041973965486047484852619744085076964866357919690939306353495976603041740330300513885037523583182946707010798527877931570250448157605830778552047325750360533845744325138212617753115259218438870809768279103019835538008978039123644985288593465311321983775773248270522626624163363057509314191312487367399099399516364562200010633815815284063125389131663089615070049710411518807388864344600053860521037838396273664314437121815738195995411267582761246561443095423604891715597369163677916366252478505135923586864865418125431002954131426166839180514780671139726607179191225740861044443094615498519576075519986997075287251365646032400935850997532521773282359518979791731487585835956390857691840827116343908160620145134665514436416599536920443254896806407696324040255079909321966210601772136206893614694396552602542992602562315001290656508275837869958471970161478581606877543301492841923315303871872454557722670334712014610274366477651828878329182732912075676508637722085603880792747755310130727527394421271930072817855478290424537533730217845450856212085911188265162099101120356404126879313958121971494665771398973622563864733973746192410483494131261426531443371789029077276988674669407681065862741122950104403532873389028579703069271218610796727121210977427504352470280831153105105333222538590838063482250004006702130283956569950945979032706467574226118314903645696687252740166939168576639593009767294614094654402591247559774220225895094204795466375302209381513241939672065990006957764199746897265171381577250698002186545247112604160418790570083492960035643748148805276767831529374293144657021310665362274104254041546875428529010272807837309778973892106298882569961430966122969686138919603226107997316034172607730584773220625254768695994883346731878442570600747225742341825887419823168439101528757642671544426029676757986546623356906774779274385494325491303699073667375513508654969622992096748468804901446036057004364583992663792200011454928293593662686786250888641666253808791928924423913931835526931066703045725667936246886069481800209553466190992530506065423364921372796456548814132463115898042965939637399754568712962053824146736908939435568018582673684761031061739745161309154305560182994094556320970945797885930155884148761572415756196958665113628489994885025942823724646529355663400983417269406456467123136410117174940872311013744601723195703088107395835177212948216373174753254960077798672294765490872043723464847723169091314404963919848558348525078512892068124440612592329387410366172269637669631627493060056690586932276211469347010693770436111582839357829092735766187598268916246546061879355876208550243052638747918995683540120868833771297848934219625085625525144433521251964294556359669741258296377312230940878368973929062578870005074085483546420355878578633515096820681155228028441099270612680414451424440976057981318663296873743690187262074719815490511544766094756538066426984135528295910451721950188298757379146003176869999939262680591401788862484606905695806779911589165219589734897616759483203624125770167780865875297775926210269880213979148682732864394566471920540847397121052529299919399209205414251784295623208082473028838710349156862224661225358093746815018313062600074778241791404641341842445463300815212884918223228987377294356306363657695050123165156373142923510191823717914621172919223420022605889329115971178488366019294664237756238047580876381717650093223179089696600827436808361476292183683635718309476788685053517424828998340998286335373308946833902438830890047318262580470314306828444615901907481093189170823608233008441661392241807785476783048562192372385605947384153008969587836692480489758966490038671735529780443624611051419260522882182906541004700002729467802374494641937229410264754724008250866585020002781983529680556338378673429656340386707416724158855754187917834069011139686722163710049625970567657693492979241483008219964117643727519259906560514537594753598239070380453752574675994809203720577016825319067023060787869513987441869268129141480843269695949228860749233655785387392116179916385942489293318259575664826037057952505196651625350787958930774029519705474746294907645598955604769550738631031169169754199526005672687374045493792158412119764110831562517041537610263397028059774439487366353660290927279224923930964117113667780064781819369807801519579557321836843687352036054150408037671475990234105555602331460976032177025666936927328345219658153264511042763938507492111094675295280164496096270201870060046562143425776935661626642842876009601138506097765074961559068259193939424634233514815633286479374926112648960881284170520531641572568509983345073272458670848834938876228996124933420949844342999695928455840427194181630580061758579883078093343153621729473869544826259373529085207080025561808793634975488396014023902754155078445188353480108653335562953982790871652640822093064633504523235174917804686694679624697455002731513017576966406555509841964348676928629894054083827285718386305372852897743149717611627544459690796819204696044240826070362402394266124444795165429738375471898478880943256519277172197128761439161198038744796283004760198814830857945615904847418603455547921269443744926711951835263937753446590999490520655817454102361132255596135255666853245717528139631878721545033888935016366678912626153785362192557783449656604645935378476120586722304320315361591497659236075181926370942194692192414179775882749389469473478312945101804918561068099112661057738651564232302519690665624624759164970622598065923077666470933850001279277237981099449385416766929812277595567752079201745616349807956781433790446166531233109144414850482273822736556061542167392701707391790698505892964486134584834221682048531523194935970420430322570552040674814146033823627683876756304270378142228166310366348100490898443253941241765692481791393900940219334664568352400256341958249415308344975233121251156956935408070098993859435673157632000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
42000! 6496391901992848045192282880632366443816651201573201022950106157358698798421438230397649960435023601930797695250993366285253755051166293125174220723270706466405296651858179320145504275596868440798235653134557717396264080470526610307570692903343919110718186024752425646625754852519983950430453635453392777530345903298982073895437013794789871648889899181617950497651125391764908436231087355363696186526243827816446596019010857967757906277914451246036785852791232634081247456033193361686757549913861421580387085958045573184666770842364634756724065046291735769429742448497577458787910326180677665216235572962911527544457897444223804319994950639855334202639052713795263236635849456177927007435943355137611424515152064424518341490462377868357218082152306430435000371675273155953960323862219909502833134610749517336953261992128960083055054436161472491692907089356168461361298053876299932534512028647153888844834064713183772043342321562894995017166672262499389918450830274260742360656943819321748448961041854591033411683371243361272728213454744514665522999458540144909672617951037708884738377058731242188294342937271278622212287069706184130406393449309970301421633004884863116469455485427440558986518447175063404995132678051865193312283993165317208575237870724772485757553809708850600179143234528512334896931632887887751832689720263303354424209874851265771528146439829515464124290823663410303484350483262151544271920859939673151759609244800439198658020376783359058109113703872326460872693333921245806328132612897883555922377144211680974606398419557164114797735926581558831471247502081217604232154965008709510018728661194050741863868859270875932755023258256412532838155064950012744355184177108816074180765987173151678259442471383833514160029462824250033547489377709054047450863468754986613954632084772544629026419396906286338947034513215175402862566135445150705602439825706958995057367546947791204198787302767186014577684216562001206832287806083362053057606134075200102157411432326488914583237711362135054963380545692490059669267095413526067993979278995068551968094848871941236141565915136173363909716354392260614856698160144511642980999971611756693938515471807893375302746772898549531249950720463316198913430257953847446006774644524656874208947208882722444981962644609265567859590661752033265727239391989042994878931097687940645195763772596274929956161910371404997850488591837868132310522892510186003187430250758314561346128730067077407013879560746214258171448454732593129725734419525990154504661950170547235856954459142263429268310924698357376153895835204892461159424957174020147191584236306135221595506845561320121113449595988869793691419580995445079967145998270171922634831183602000680251063529203653485619468589046704993804346310919293888534671503566366569979824279067468448684219917476841975545180381208616129250783713041257105239195600223529659427962098599496115037595525654089493557781892393937145668021746659655402306102300172472338295655103582613750071606362760560907753785930892841299684392331973360951997863879118819691402894720200757075593420507962141912798426958458942010208473148237022900249022925431002230135798819277381076610579779696974664360067421471818932064761570015275337038947823812380435627677255310017663583145588414273777116519886671678955063062775183290138085928451344512256900239423427826245206994488791778056503829842124746411750736122592551621716230704584375283219605871598879123747939155382160093603672683764814255075231862619288911040486693059254075219939499520429379566945121055735577523025429691132835786959089593518492625268609269497934568463453120881408706592349452024393130580474679766263880127607154212379235171694930108472901193543846782740556596199896619167397711204090306739755129655526150947822102782048592138582348288087375023438706089573721858614665730924799908560032131812227461731330278973004949661663067924440719970792638529329555078881006417061322813720522758063771635429974500909667097317503405591729031521059654962344180079742669653795594677640408883012345570334675704334208989035616929370479617716641932801402865041599218006095770783261382371515551866386663233901568764765706194368529230118444450423887581669991301878481247045730632774097501432533263126577322886512181205304796337445315323874041230496749523181190488522132790776979803769731991314109482586419194800556968986173419576385762532149355802094874782760878098646966689666044485866234196436552646210003798229568615481298862641406405958938549230407847219579714247737373008435385752228595039634262362678256978750170027555620669154139455582127807215562651977555566406241985552564859292527054309165585050355555321822610834088403120138118051860739371444981563591947170092250494889197740017860310900243992816590605049866754879808395246588577839129296130422789626893967450178106782155623949272160888898889820387112969666756031151248790533033128297210617187357453131078376322499281859392777707135433457460509486117065202925417231935422326192945135925216757828870004598985668266867661274022716091601866917964253378914160868292820181274270592641227203606876724138552128351215509489795757860282217759343322410742057657783782294576064434021574277645278247833704257983118862514298312723255035302125652845741123698541394196448575007369530293030243512570383504467968266853401861022673009761457162959040469134407460820719232632617013126691292748459374970345302156978784199390934926276687532087626397011730453445744978090977646431642713057516475459787407849113864222846993014111710852782593716605069647890713273490929806200822605609103292543740690526505292496779310409202063782442859873164597958929241157863073217937119663021423648943146462255998478459517332377309562750760557191151969083071641581548799472577664944441822631059319187982270913142446645923843485442977362046429569203442432866818636176132650932298205919075468187198477470701240081503989447095258591439552641345394596565042451932248980842537521210302803346168775233504609227463325165398142358421763141015810799000410673439306691642063840556702776150997587582337492749667012570333940042048508242366765038779854483677103307706688925487712425109962075508917748107755482289684699298037316723204380426836327376573399335109517483450474951019357367490323481903029468105623446922266543978718117634710687616520313173835367451222843499091920169482761113508412154758364116737511122446693327894207176514950316328721364566250872380995645021704616922925047739066916064858569223404427046850157061252608865244220300161201522775972638941374447541754540324035713281104022328965378235739762020492110492137928810170812339882231553873343963711546015446605266925493789166642443681162105507628197777017128771505921065063166626570026830800522574365181565288075920643153277907965197218526474413685432913566669171681408926977381003376457840669902857421954204495501519995140595843753650125695305839672881801789470527553974078479218956580768118927397357380075535573896472635662729789140548090947239033979779393387405316750611530048720523253805095566116572316519779679824895511722798767443569964135005511612644472919324370223021771214974097020982009466082939422918254820158210858470442615843431420161512513655564594857586864307603791530874533901537758451077987099430330828703739546196613479666678120234412901769161750032846825858981256676677948237058949466463926887249752374990225872398803013510225058239894772200536645527491669360200940557511163024035636829547760594195575392627798739808872849492305439330482137506627969839654038563047114998517519535263002452248136341154009903761097058723097227414919516705497988284265815277959792001045103803337488574904958580488308536738321425367169416329608042442170835216180039843817029086753903970678368747031083756626601931429959820410210436140957137755945640178313355048505045946806113730460746486844984779681899695402005949731986169595534099746031081576597111111146155038332782402216480629353278684845318602058734823553191148179639925011190079319024689634693443513517818276921976691861553126849543871280607797968784504385907044023549074406428133915239905002228364251468656508375963821692889740941373146319759086298184211637975231865799024570800151731482960490344436863491046425058946747043094375829955035306198709979381262543106339294303825361676472285127401677701715129547352051361931442247463897036708036643346170817958503685542685616625488348532815475501094660106233045209158966623933853377019554505097719391040434676064810139955999786565384665763704095526611660177005150928724234720403121255752719073144462447079103655336394055720821846051259768774679463272567689121145318907428708841232795329335322285730245147393551939254879835762583388029498259325095003222291217193206800477297202226353494252774610119216931638923562582417997209380750066277838713199737253262178950031490870923684312225383782733850222901937832418817657032532533722833229629910415667019134386086531035408270386218346027886917722968632719833062043453970753475209717100002102986708340379575177758602990805271373977511080561018426015280848987865533535446212299263185959184929300196497770662923537572713549194797664773585889615979150285085959502925917454088241108154290942676731090014364941191818545724258853401808408298556004728263281549336996749731207548802296862838411741101519410634589411113054446075705646060730523476902157506328123980750102764751728070927968538914081310953272877710417202489376194003677424178045273483422828291931297950693313203891403325747947694814051058316709023309226082926642205291096698042367791027319289791988850783021189687362395558375997447640667319336281724867849404735755721439974045602203482983324697917453656826328305047049211303770083324678671414057444090587661398772310643287009600002031848326969649136803898248782558375980648302132463705210435354332443968400683020530162679201487466694823717617430820474237370985550848268941313830958076193315113546101798997062327195458883895421818153599776446967848553914229306504103705373952824838788612032403463581997052488565684934127638944025175015973524805004748568744452824973478260513548574491544899211540292445282626480875658415654052928673967717219488242427277995574033965400716648779895952582048795072938010747979403419380218432303884603436667040188604150767371025224155923956956768086978625509985531281398862881321613299130496613162525175657145398951837507905395442751464482702553926401224383210555663637712110534323336171246947425189632507552610809390442268359411774104737227634108650012603505271567827292741824389829603978073443329352818076675141063122638267702431558912933572882896805817588132336805733498235612119609755575193904851014984064187361635924852699356986679040084422366002955417029321958219435511528821947617096798269169982002859518965436123545201188367983488246627857375276975174188888083259895827498318003595666768179034668577826215705576994418758010849138300568166163919553654337587176267208324548987951253944772131864481330153558007313004055826512919788551343603074974618971579465626730307032682673597454828597578162899570159652217656649939766824989767833858489153104368071143659191289430865690953468912796056104715727425627965565317815974497950953468206205557486527699936549006195425753380598570210968130994305594051533731569457871084384753687104240191884159768543452569851655737030727101353770476593877456546850600104260549544659081040382462294407447251465821377553140141118626646775962002285280579654905820407021395332737372814613354237423310006620828878514883723574450306735263842650567445125296160377547419942879757178151399876878405348993137994170994953736738968804439967887734760532054632926231393506934732500131571748660720863857372168020326545864309911315881242573590115962689506377620021740544920715357376052076867689527421432630504047958826506762207618523672756125278433442203581839445814833240711573703572353571376398648027257119087252388485382819163320740584377118904514942170331227368554592905061781116238636999995021777544825838183345382257929906655461556685141567100941659479542090273957670007332541450818874648767946426407673293844346563432993965085167603516391670854794864347933184827311692832571188082044243115120535845201209193217421602840598194448265377715283424658037283351696530367926855843315094804096896342301063424405972387445227329221630789537544972277405374526827883598946758972306375734344712753902615774444112672981658488635605525943707380469738430011922037745504715783915668752353429423211753839429611162002405247442915724629187523623717089730343911230958496876889808931455315425894164567102837004654255057410888505669871529341110372356746232306016127287054724467456351149359088813743650003288800952804691558119722360588475588924148205977875467572315272372364337112984550703010252004125381155078562519524886438761508366052701660014755457431073625306056501861227441783400239523437174996397279659804210705199330485132814737614607665170341553984873980167284755212630154049365992074862323767145496059610210280017616395521840998886971463227351201029507801020068837408554610362497182668345302592700901969619188711158842510387612545643105521540012937895104444949791635000217326447649982433223426863109226654482186501206096680174552306756537093614400450828446762060261541008697711856300606531085112875495253118681566767471385927304641623303596649642048406929220189936852330014531556723903787685624876416057917472729137563758595254068450539170160390828096470141478355860551090135519530706649767100654098607546329363461673644910917989245427092124807139028170065927154380643563855640493581816574141489124573776215066100546912335224582652810085189778070841057219306672720230471880638793605740701130913700787224987181518247495615186383798683009982060442459052523572852118663440617176373133633521847189039210656280963513867951961486215112572961324456518666768293767175502707714306305137389105067537024997152373365711557077781671368799604557359593938565628570696204721401280342940077626419872017693971887352351762478963867289394171004808316932305276755192663001785600769322869601687476662420860418566909919016652671300391917314614189221812344734975472489661020421615106774507241482017106719972925957856013585016986788669302241712310001737553925473444372363286351135006606484115053036315257177887359385682774801672268872369128405381594774167018097582232077669570273573739583005917280576429133031066725769902518540264984266737100600489580395260084536538577206268413617170211453936780412404966722542104306623059261226326160341318223766053468485003654283578712327727485375599703096569701434237019316279134986241468769312370816228071491427511938667910691443207837318408617474184035278566728320109068381560857853346287483799739227116147389246442031375624422671197308648102270483528312386056891623811858096460321617878423945345827820695786850789219893621344037778931736578106956968568226430513317557381238152780478875765210166821464174535668250408570671042649977303652906987613525476810640722288115304620737489292784438316307142224569412570790937755104341689276308347035275246020007121383574890851957888471673907937118360037576583866134577883231348533805247058833467429583447210171669385932745691998133882165845453840777973948762053947068715391891901754150032631969571216641242956955885900532744239667188129017304860906117723676015913825168834730989195703034882656805532428289163688655910087566813652151597443237388440102157839617154663132199411227591996099946177231233130173659483189667619965043725401302105141284406004709082092557518072208471112849724673777295596716947434313120896181801292475564638976440850476271901386513143759788664288596234774015583859536599534523979095880022436184861495355687305045787736903649232585635429968748336165875558409440823632992663348671691461200768785002112776166249460295418787638849005009354792489817276546351131506357605703673048849910061908539158286112803736537174710926221968899331923354186911306594693661067259226917989551796442764155786754465804058443860850473298246441823237937004679835306175983066964970678226915685920830536466256908641940293198342841532448420862371167747299980364330031741054661330970164541415165383338775639124066924229705115604982333889581562655666593055885165633329556183483727916533885965713639634718776495570949559503171555738148419817775085258218803795675214020413320427049156888629905989704349553378292803418907043500624564117736532635906614450664481484428424818278106038832504519697399985446375985022656957235933696137904922204430631355257333382692745408575718742115007134808236913675787152594765144037851627144376199313274529553070391362310666714135343948209461631976966793409410380792781486735761669290522361186812666790310332093349451769259688211284514929699543081634305206106804168049695909690968780014321474765391450490153178843908837829489563805161082512655802865258199836475599050750147424263173682031576013375928798795022905996702766282888711431730649533315978892198150264693524146503186910185756688193351074079272032850885651954355699811301536560550098813374929747773052779393660207427078043153714412899120810271895500016368020613335242442170079067378924507535708856939430753747745971842570196627392569831412244433932239179385556555741251599350010521629582386051602658371179066723600501049085532148172238384357510887021836487666939813234205974035245313476027023812343964627767150754384094319292015070012231024086137384233903064772828269967986837509526287217097634213232225008492671853234371829887154209898459151231708617041009559643029773801072726765827167882696009269605992477337838377769004040971787289737918301899526736562176129433619800878417062245052187426974080704455394822473247282036639079817007998999901823652743966245651126403142420209253478736659030617020927251787351473733467509254148888851220382916778609809529494442520559795697960763730456975097304487520133134120324388914274546083492055587871892325517232745190895726253005339464090608711632441741758184491576542665507224293994985548783110722963035697208355259090442087663441135429834817426535663037316502059057749159984170105672133490481233783791900492925333499768111290649032699267808348276515254078981739660820347006840932786310723589281955741713261841481071199734351301350749775789473995425058652919049147777447289283827383289224589354116237589703263023899929764955708395821128479745074872856356532753003135914565339673458898391742322938630049723762775576736845953439863731100804085362472132744441627726705661467139476048419378820566465241088101992494405063211409807148386247025578347016114167571022768137826417063111326829451046314063897570173955156316289705375237701622950549366121954627105094213791970201970786937573732497420696565155516889137982135461690449302245315117705898730028209373574820547336122459497201327281301541628049084847921131901312728365148142632073302122172560773070058582261914262532864285773477382941794467492123421033707885222961403696134706540321687608099399299758139799780214609764616422957588756740099360893774425275233797861060837361233276720236536627776892151386042533161966616747665313274782977047036997891305215219971890826885925703581511848778756715854109000640826361460173895376585774060757099062363957021683044597750936644124227542703064253599318561227127256005532631606390631737826870168525234194229544215790519620544967219515933961121513165501705779632150179952446792951192973319174127535210423539020641889010238548302555110105536914809151458536781620380627323340612661565396548655340708460329740161479778144565275725454512259804616307796799788823119855657874153970980280652462768872900514573413926616041650027749373335100423812236111795568567987747101710921034911868677750143566183345054248607265490919685176262916530788369985096327577425960459445697724555034216634237987710632275054362274685840148462741768422741227279908406060391841411781908342474919579798224225718855066757303289115533333404102018139452523950505588295479498590327897911372243088736757501776888965195454622137297442225519556137729202532472074738596511173724882389233438316534960612295829531800765582421693883437897979151879769028897087948411965324896191251560928382661410340431819713410340193623936482225536092527410743719543723964132663532509518731750928354654227793779726179035720873532050054499353443923337336106864814099981161185393639593156564406393068222414083779815323857154116294557899449457112093332781061561407372937865583028296988198327526496836540241768613006731371459034732976963114004114791873359267906467127328000018967378231661303359372081461578084480701170685833401969018161229756639975677787376544525124738699538191944939868961539516652126035169721245032041306548208370758832778435444436461297638839510684520006438632811148294317418624721843867704218347800852814878801264425574279496775631961412474850057616672220977024868086684035455712371195303986133494404193971781410494187371118252579565865768111879257712975298528716584068697661414141497285973784803496551418172987980762421811682795594148371353662747624251641455678821337814890093761949639913652958618141399616416091810395220819969391547475025888756578475506413263827063088131027703686896396015408881354155386969762648599474070737129218974257286310569286372326195201355837814058222361426663848058628044881681707841971112464774081660769174844592499314402157327583848586371430088777705440043170208567088562819932508182920465388229315645708012945468653677849281246554746020297713199429755743919373218535554222082886441156038011755754785556271379501574812535530456418595974129888617935861213924292208365080693064820339661372359279230116616430982542778886562121209702116757300607360270630325907370840077632027649217059508663162238794765036512836455031641093974696443406396410939766002910711332752493248438479413619490345035386714301055439337040708294809196698431244660203969791286970957426173026673717032837673746865733846529311137154814516511254072317292749589829409800550787045013660072926972052129719881096004131581916432397579566421833699939506037058877821397979737063086710545340199839282110774330865342571826314326283167651955319242087252587008743911009595514320234290393249673300877956880508604001384709388339223304877882193088239203609122460670223670727305703421718703556269444511159106051474899954080025559178218416534417559109291082926266171864673862848949719388689884839927915516455192283302566621130384704673423397992710301423595724733598516372709456208123126864088367232800052573100615901331341297886416238907780793046607281410539568338914926622390348571785340007148146387560291911961041132143801390280498590364994076654734975498668988594491747347012635226770285702791906723652735567428909038354537686463105036192290062616598325728989440164091220009656461125395703267778973112489242214525260952894667911504179417608236894830175286576892823735106813127743380334794648958262631757004913135573862273839758180729635050719685618018285155397607055560945771727846220513911496515353268474638400790699797779952669474555451691807915573343047353278476085764313027537936817545536565961607369047957799798411805004153266664633244753737296520483720171401356820106625962033075929708551221788515648125939908281446199444263509509452999879151244712521862949138576003710944402603719360916744173556441999842281523548369961348582467030564772290098283108199637452573624127774576081044080116937793367222654790488576962495531744982615893095772173082520550028886688043024175511346218085281660375740273710004167793149611081518255950195712270855523471477712605007363030050057043426462577701328996635750243506777463566213778259892541469505249579264757696945264570761192366124747063095945988085102540757030552644634551376844364647941992192196252519116774256773083912564981515805982001516470445768663861908704737750965005751478670787658957839515830916552178895833622067967064082968529030010414952282790300315670636603184371313121303161731862746784830294979052847985307395037202131305679041399057662937810707319746401705323458174937018052286699911825118935477268145084221723175429038258491668924780554235892518247631189617613123375845579124369931684510438364021951616576448417870296864302185475678766975623446417521902624177602525563352775402993867964922749475141202647204239757966917140813394739573120367557628286290795625555815685314244844284750948946926155265834654889963363971458375862208385045316398140828746899378004287420407814678458501642097632661554018227446002033739461047663368627567886330485865821835756996048840418703544131738368962219178586354155033355675168136841978011906679617065966721507832543467699511410312508929525883466503752529645107339196235009008698222371638387454946170896399376209884738827472692734281505957032081162493000340383241674922533377292350856644806047184770936018167034282983603759952575056632228449070290515622078713754594000497923346851022444572993600457184673011831938336238108768041419652733397348354750217727266615797855221944605298928011469650552686890824557308763782822788852840630664244588296909195649637811628120672576629561048438977605789100819744387623910843079983818218320164486240343209211611716952970535848862614981373359301211854605801467873612293674234057000854563926547244596519052808633650378175574957917134859258483286746671433219514610316516826217625627550705826647169087197122742532536264998208369160266182813528246148706433061356959421631085000345603862855130714732206764778808949629862745105572051896180937609276256625760101988104755437402568898363280392715109156924660943885404878977523175508119715243739955699429568837202847143204248711490114168384641480518940554283447354610060174480873170054350601069946737113442826989040655646796995138816867532178533416000864059640892516726421282780936504867586956811913256528557110820614970841246801809281905382115077272142155081035903847409820357065642920269706922311862542937507483005584951097167744143956352078247858361984583066976867201610674034211792401428097128318351864303751506777610965323193504407350290705471771582435016842253107951097546465806123888913848988689648573273249861666171766804583819591282380547480298140357399711034050451557243820282027330958528529578950481621659885008288087993552698878085767149643333697748461507402669714594348132335617710092688809467337634271730103875149824095726401966717975125954836165289479833539009415897222425543790372381130118530542562106378092091019231892359859454716259683159119902109649677505141318260052773788150735838729703583893714152015989942502952994530051842141563847354630836705862348906115567885625226616730923801672816990506556177011831024238803265311364800695658234432187377557368436168729648020933086174233747380125640217890845708965728017096539169019933905164159063295138491570210397477213521984111897000106407759891090998484342207466702765971181667971957237952632402064607488741750610166922688058251414881858110386556255780528447771504516128526837385184467089092231171567563547503798762429494082935566584269815987064595768593919707207758904873455272712474491959231627333233531936570987815756864804123888666520580455919706433715960565728477497397587944855447493335752666986428315801099470316728194016853531164207361010589623041980251502670840668276533231064327461239164732231963728616404771004036975505361459407705566970523756488306450816871661710366274183756406752463319512526028579158541435986105475929458091361145640711259086342906558225125508995911096940857952654361762758780514156116425345878700204113897138743107570371734497116460873066223490332720068394794166608863505239305977110165794346962248209972216037549823023625532920008840765905848432344001266197076058166308613926172570969930626165368442287308696669099851009316989232792107960442699145398639304800054762632085663127305958902253552419932742236770140218468170359615413171992631065416995579142112421645466441773461256811167407634102336007734237707582932765034558999289853528661003825655127092033719694827168945713232372463227521046555976715527223542978580401248259715379386768434830415239755878499071823167761063300574403581515203609377260491427376279569450346238596340318447014588939270859516133292272378864739696330383453409114977762346940262311793422352830876412027098025638608807385152440337239555983877728176554490385352785878730876019355934820574629459276979902512359125236623078156598001871275619881679115215372310223746328718843017904976589553313628619252823053815336102689266243634582705833673661623545273735638220577676396726746363947311732855763480630702034860398574051001452720126369819957830071746746412648347599699183125879800664554007522327421957114946993429619056445078249260740320015581706540263284022226482725417990274488800003018897569389616826773078569941756921586834048404149702108149371794516500233605259510912758349148550471738886978564085872195920919754295199218915233125613646428633970135018471894675709257137687085036464084097641781574970233247308650394109942913506707581702227246218560780670644225898780448911274659442895866964968994898501926771405438371867882961560428739689016668639631099858948532109580199360628277397301776704976279162893932066171145104743521702799329296615578753045451673095650452064868246050268114200569855160948883811556968959368708786940694611736818177413867216879814016428990610689303765642567818344804259374708082535709198248571412175309547568925441537135029862733621337521591995841700797012479340685785027565490843080669398038233966016128022488880708582800489038056097177135449901046042663540804655438247774923506928156047353463547085780178431240128025284191394762188159906577989545826887368672968052052829754402124736209320369717137877624928101461584362447246331726766395397767295735967949497959695924902983978614660735531283688518641301090659511942856532814334620373735289751187693582038213333082713707427878893489802510710004608239888392105392163222097249770684605407518318960486494385280476881057751565070894782268739684638126390251883304256753568010543754829783170187411679827821571917600006358607338344023314846460730427355077044069626490216248633045521212131211932022110216459675825670215646366773875263284138489500514166826283459226565902293574071592713071977655566814150343186229980453337312001470977530417682780208906069225299217409610168554721281141291209992376798643409260301979497840652539061246479622029214899960632240580449177021274817440427121158271851956948266259478026229221137056888358215133267161190306688942256801907343261075938038775969514740249633314163935218479017197886397061958289016714564003790981961880525837705592993261948960606288612552512129027748662628949607616588840630314934342821063370136524027870676942023786518981978140811291178570094702024202255693592328791713467719819029457988675329318280994040071665154207644259018438872898021488775056506606472942957018679185151144621610220648336933051894914265547939243614354416352594073788268216913656007017232232327295936985792765179165012641600774385163244422914961042187858131534486790726977518930892872863908757519527755356726268430071829291629762812012379993850212374964310120285753628856909903233331591402689057765518612636022104083579407857579043714712020674344288323196755890373617415060274095863636914777326058049222786877644212946481491638187809300700250484434034335970852110371456912152640872558814839989765794192952192876319070231475222518592418746378935857861358661002674132572327221904080876705758622134508004944562386075215956473620758321639142257947008072944438134198339524852067350602748685671130282655894029067721306512833563678541995533619597639144935701297891455371626786705899413101094790394004762243984371248576117206716601320771632482787836875786333292824047500907948036959046490901973035069445948354988053495447698989331025589618626354237334843735490067664723277912890406989766464263473033527152398204575202663228652534852366416846711263212827012722216071703004243752771714811687131857805025395722421550600685366377001816909152663729204287303658758337559995511960420751752451246547248279143127527172713495897550797844255193269308758218590227575059192606933581396196867492759238825701920222704248107222800101769571142934839533381110136080905090070115071612254090198084167805495439260249438736778480647553398730026906396550623053222036196101043433944146335096726321190861751919294287866552116474411396825321097975106200023637694419068297057934011627189188170047287644990785178910058990126069742745047256351899917439945771517055178602585051929937557623423074305126894094149522239486270183017823744383591228590933295759680637967425586556344113704538890097815227083552422014226121411176058443620975758051760169154600559767692579972313310162769691813722095262707670062005117111865844090881617820289815728119747003298932685973327839912376811944131220084467018472968246413316044164551325504178717801412013810034881102319176431112789160598545840148677652723654142833645870915049246709534656027269213077464229043011896526145951120239674350360412788825003677737858688715159525649255099066108122903780540672876964734309600021387887691474308498953453232650769298783796123475197015843905347536632761797330459026236181453614806195576345231231764422929889568092204455412581836499965829021778710246323898670487484245122202605117788454552679361457694369276895809021698958683691438760470864048168518749613616457290763006075860441899896275121940767558386483109388969384864499466391179424450330634294461518659693470279778250587896361538690609266455505545122936907463509760090920500013907867549265057688836311375964462198550740201248593458324311622509933228245294937806770337960984138075378582373657819126037079010409937089840000637609928049638333136800304199839449062628390860825988073606916130693723058788842351205036859163703795368519723047266720358848507024124909531150926434892458104211159889230416353206722288137452378030160447482696669079529271855503046863588500894257234896646630656946763779084051697732852731070666505628843120832050583424747442549400136382635023964454240967861747464547726982045847622251230011456587415115808048522229920660543888622944120605921888924775671236663272179907121204797071530261299017037401933233641693695594620301408036316228988717273130628968551996553262848493266604222086934085927777256724129789203249847072314088851945823729565016999457780423552604297850021062358083421906550558116232323450287914725517099070275090789727289608919814427131063770737345814534816000053085914102263298681204875334734163181851331459560352322078969713844856039114020919804192324156945717838427680296265806476496016505011876092950278473160528578515462116041049993844123481509544585177003578987166023912097389310102272171324772853736831954736324608354166553613483294045045554567775156618782204162886584908724458053967949072910886675472885154621347289461673784984492458428082081151679907700019329854367373766432861700791119546102827553340194716818644962618981972805047972556962525318294819663238376152879527835152865577974107386502276215280430235522683197466059861517752538444956773667427609336478876103082000549114987732846449361324323156899804809357947164728608693855534192753021086359592247721454294812316688260427972627551001919555831632120269120915493717842175489675749379046229563866334656557436383308230627191495269872091454290328243756904866136986474436371407894911433916505883647661121040929034320773795161171561821408377571578766652886378904066212559844338462975023610287413875429146112011424376240272621576944946544839313075831417804653459155559245139221922584780141244711670329587016363435642391259862153340703485165368816245481771590442176454860925336594090743589917125878339823647223118417883660555579988046718550689774320021440488988233949165116391730128227744942937992214568598619688477786772864537121376301371945112956366210155841018443105027524900605920616311787438137641683918162326466798153008879137137476906631507587388671257421352534612694982164643934757896271969560611612505481963835823337741377920043190113956415242628768020231655085866544891926497544251235588504234909866632885739885537041599664441025399273061874942007829104748706465312173781603728723258907097129488587633340477625547442371168314535537813368524083569809962005429115518250640811983223404729103823567156304297618244571914738641082143750585858582276574749621127939640553550613899221331532323257416698676281635392464387630331453189402427092724957913766396552312367352477355867829863603733874832703333769131660204007478016748278822509649166117420268467273453604202692979154586422596469261825877795382981505598929569335720957901509937227438870748181717955388428751144549211230656959717537502130632288039053964656125079236486471099344089032393941196008390369070359270272993395299028291356900094485172832442415875217494481059392659241779408609077124607645554674053711269351265270568203906048005958956815742013506106466484605407926713039020893188491163516438842603692123017576526088094868932612720922892641983747635301793377558703756608723163697681743456798281883019840551882796123109173786006208357525882852084287076704670910721158222288046762249771081379473649780313154265133472581086906177221418752943269637042550114212012244607657607932217081844602075136995979610751415178592279246834839859034262854729266271013817417146322606780303522992113078378309802617673174034824404259131960043367873591602394186940946555777147967601708672025670463719696234534347620317631451999572632981992654406680637855021151359888251637018222196796492270033567639768498667300509731993845346494210119024696039218669997216001196717128129199697193400551341142997353617980159484952590733914970727151907778336777206479907891958471478251613336985647713071856726070411722036622277214589639518332291817358338999660851526647885918960020992998605837946304057588656996243802280137915371566459636037521337051595000538042356854128027698286614764563293361571846631025254558340567080473020942938342610106477880215634295197422373617603189528908730108193762035441661641216908619076009122747117636592680368201431647625860273680585534900848023754651366044528980122667699371879129368839096652609074931664782911964243516272175520226444162773644560537327188560057751462771419730107282960426216343799682544473066091605737126555583480222349463684841797034744556750052384069670193362287110625723873392740949629876412779702812199352390053832249887224353899464524453544476366557238278637566759450757675457323113691888903798572183191891425849881559498362622450906458109755347699025247499748003607904760217622304935983582224864989384688258280384531162736419880893066731825792793257802127589643092232513002187753766173975981276674724794291423752596757370381073090234808251462379792354695449288068874892391792884767240104518434655660458482940527269167225884502424528008006238401586458857943246269892064422757074468421573431816013023523010151807807835180287174008995229068678948348962395995861788821900201240936329732486679035427539062842918955511197990901352158429731677974836886177571947347398686202898643763289332248365912041516747033725634394826558405936899795956315960389396542486076881785924797897298396763098473761173450968232077332721041901566681015161825446857692906884828909713105509098212058369654193517240006957572990593192688466932878171598279371925220127011770116419002748451314879597471353747204568934863403959887950572230905105592186160507737322377608345179671246507077068805147823268106354300395824618677960222942986147571782359623692608163890887587851600202243206303180721437685992963944782945576089405109106854814253722713146853843569637864612914084314934399586663676193944756924818967100866816094473126639321087162441300634794046766016645693286256764537705239452865826214522248813803039324502529369514839684761895158268050886295832895302599155677632519676924152209395949483316001481561836272095516173494614642124861824995280383630754885703734296054423158713012215262054703751599241313115112822762593263096844152628469232753577844678321590507854771517782945807912862323123393324284808970950514585867294126238508354542330834323036691082463327925538739956127726454138601780148376702796000233368923896726601562820827437729584404088572608192647399731980639480058534725272141629043197384835035992038457160846031190327639942243305962423404875024246369408006909399752501739544156884117843366642503481970372281796612164774729364751859790924268649475461047192553253860628176896484732145972917373835135823279360215454049221310800672825339543932426048386271227610335520693049912587180545695944822925697955736459598533020290568799048913543539395983848882018368897463840598800147234019216327782802535632107937800179495278933772391037036546103611223268805288670953212704636852307024255848993537698278401148421674787351444625093224210378053344122680675587078537471033911332713293986240487150989315587875547655917307471390196852434092586168053746016410489921071296206723009032489519635952208187685262692088924403822228632010988215401198803209216677579157316986597231220183255567921194834279199736722537174827934179760965803545249481984739906506364506431907733178618552371106463305941625764895901921876840453231914711784144842927052536669509228298609473691405620879210105890528944184496905386113057001536567913225938608750764166577887815497674054934246577428997634044817374261827378169852740607727860410416111375212224917629537993193199868345151375619415008924573666501820701842166360598193655494969812262200117015539037113696759866226237726470175761515001996987624888286983309378025532962937122870399432963444012977514157265352199503666552921107920535652133088861232603677747688659101756717311075821015708809234092297381218891207552049124689524118200135324369744080069550817295001476555817225564591098540499936622239504048866663191753523708101326880901915364513001997497047469525824923264435113191050179564175983069906833225180491522932160647702715694270043156408022043344434121309300707093524834048184521862449542056839759936304155564775210672694116591267785388227722594380432619184071017210521368097374807371212170904363963954564741191469827156381652033744739008070658205481887804420962577186662871071511406053243090100781026151592316164520617316237204859028833800881889887352472469000812143620206535416343494943284489251967419206603047730509678415138525345464620478866493942314110141503398063631594999644530913973495889485140996114936879788307830970554610095934130378726246470832943794604803472426549993487500831365520138726102426778020834451926384389174149934436518860682350964427444249877860959817940338050781977743539536945649707646156626935214933399643144590935874022992682942751486498648014501223048635387120231682059767299893633248659276098560729271694220718710132175423910715461895457537228644170196339735431668405188948930157117678650336158197713408823836798423770263233757512662971176091529044686692019645492849543369696125636052164415217142910140408899097661490282706836536358519382450770718323507117629076690075891120830508083729306952681632570917286752413046971974651694908870436747138422447846491414301267519474444456684150671427346197263226095077429276546293495104586490695942875571721915436450460679278786868322067102419584289873987789478938890965717895358688651741311924209615783357308373281035002800628694800370950726552136316258475796335345563413727631047816631275535527023221302468811059704059354240627270596957098860414212288856588078636744518383233322467413681928268857825919568700766387407678884505843405875370150562546884348293151029572561505054371867432601232215370281176952311254261432171676458755710422843971672802629505302253889838053266808462074264462967483698337149769437773170303028638556440914501155270524692795868582030230396739989318895526694146475646914720364950912639112961871633148368899374227982215225289738831755212288856085697045719377364241624561307225089090822261633575917290900752727634225354637454045332259514944024226037014726620606277834339313930467169247142953496389906180514795097197019374582046029270807988165706166091151215642923828170319101404390455496446565094295980663569300384210532570340919954707709176398430401147722536874777907025096682820855216570788441688213539973097782377894932330102939572237234868523574386616155973668033774602114874081914489979811356406639434382279814414459412956326398557665518404295866243855664538528198308783860776822262259868884378299379663502234332117871362972537065002170240785189758208606683724198125718578914235265810623317068390584835433236040988039096769264655576293097737801361087163558143161362980623850777103760403727207181100412669846684417227943309790863342922900755291823521514676638493451664162913780460239041821057857952713937093631565103806890603461786237374013097662190433556850383819114853436946391128348983356105425648833556769442771192950454450372979986373372934149634855998073722393248525258458635602125695791929086169389045046524203708090788746364565024430384121859878674898390797710965949174214725537428846186302730305929397105904405255373340439341657708188393361718280170301238254428052238643549937440895163828168489423114604593915670859896536640440639316864739392663776305992010659647401403652784356562898245482890710616508197503596471879192153038148745023725251141005034102098650949359838402470622230306574222787691730438632475830166215332331930865285014756299029210447700646447523648831066321553275486286685060735840496173100293979969788603397831081695555855589059390385765622866650762010510817213085465812162674981911037138193567939612628795016876426239071837421374477211384935228949199511302948511960939443395625020958484381088261312541692978677800345873592912752396898346920406361441973857730102235426127529732732758946495744770087643451696442721192664266338858407716115869581119927503261996276911159008772631635672016951483892836406740605940441396832189539811660861733583519984237164258360360213945024077116554481036068804042105061764032457087406652460714866978676820506961791136865448496336677237491155449087133736006477318316234636154661006055095346408542955183902755068664789627708307430453500429287666087829233650864730158161682894273192461945636055508793218173107592024126058324219495407739988274386770002032488267468816229923117505584264986454637433066623883153433769958228377306932794606898835716545384144146432996958773825345525524153749534003076628271878734558491868586966180421114659521019389777491361685340491229929767117857324066367070830757875375765872629660821806953344330721921944423223666812114228904383665824363167571795019169387544028618192230995577556731276372287569659933162315298272153472350614728515201780265842277671674500002038935180629685152414589059291631654157592761309281387168997955691314687335340046513687254437636845702934914081645363531014569003719293905487626858163246795296080859628520243926213422590621247995965102423388510903008039116084884954094191706384865264544192214353324631541762469078178968513110361924712265441125076918570846014533602072312492567670158325122809627769295034931482971737542361466457891481491673002653285064657240826807803076616376313670224330904394116413457416487711963953643611768852193664929646992697557123999387479139040204247610790691357767067457649063565945176212181797221978542161014004167963806980355818385054331435557671457084923279003455934570803938592019004523335876356101077272095864569214770167721549318586440204561653687459841065257916109326551364329263841092000505959033473792933450582928552223219667506566579073706917322354290522521222289943031636198910921539803855041346481536502493338980502187986795173419645341651737888756553558518688005847765653383110817602559090831732763980231685468321595180894809372299613219105411664476057491924606201578426025995901225072671011332362781515410116631511151605467235630205966313836739697201239145703108642830817261501667882854495684381423013801654603824940173192371954795661130756405265629752352946176959489675070567610159589500508352366679742030452820084602226400476033437251776945065601756189549661972071431718906540192849335532970536429813167740905403331064765055080098813695189204581792540027278920015751387669602731809719460877815077925268225133872056960845319509724396982802701271974003167153870866823955306981594393754335060350141627529025664279453227888554973442564948087299215949905871563816134609377067556037903122374876141875949248503726334807997254418124644618962327235391981534662004145884304041235393277776932700694528534993934494471047903495822729088831597540639912391542208874407545367381318415058414737884274459531622193341468849365519899434080739117702678123908339269227218962805200967403803538303236817935081032443300736330911604757068022698883329400645143550073446546040090412321193177710136652082020881111723971893718027983175913089602631071398340646044259415279406836542515101434940509313222715680556724176356254646762737761923623534219359919582515970117541671280641142986202730512079266157485053727264236834962858099787624753187492766496189350455454171843974140854689142651610549732099527467215019880899454819507014728175926994052320791671652093082484312233004129033933510002971223364641551020837077851066422372939007633133304791534651074098473464078519949096528154555536260106815595964277514751244913724340436314761736408722921182663077388014216947900042219782381869832071329321088330804208735418197981358656835412538775279399182201021515466240842437466614007683081537277679930735943465251324409244043489373357289045355080735074347298965891794099173865932597893987115701451314875966262465369102207000673653814246027036219203228837439115722498913214582976884301739736470515739080747786393280872334812581667324164356690539333074684821606542745402977926548528345304876053485633991470869754212115919730324943333825659214675018838107417246796390848881025026439351716049219477769174341101414892093537156298005985664528285917467595758103788637938294099370498506834534423202438719685578064037760233183191760053992846659742829210025261547821773235137247359605024430156510893654604695283862254374493876781054727544601078375735249933236693809541221357543862992986638392219938676782914914623009711263147513162948902116926163347665950916338344577809674609399107521481490916549274587426713373548710164257911937606568723801959421845821418966173425683647986325341042282145238626635375431646192047076816021911373624664840400694301767423624398058046547624990592242168793660304035129390941504563235468327955679680889836429738668710215458545344117055476349317932625159077027679707000864722153231674123395158192991179128530146811266199969655404948704787455966473355757239012719796181165108337861772505339492593096242661760095559084784401746277192274648565091452645731858136675324949155617112277811936885791267160505697375985002669846418416715206339035970747466276202460583042945599224473373553443330082784506859725034649682963741024623200776384604606590425663509975987740920695433838773394480620381998921875660563599029230108081386773882246491702823989345500651283174912079701307418368818353464228857525059965341336480288776391462256656756575310781640391468705149100042083029028249890173724158512163710487830737254476594093888666588894932042302208366241284739322912852598255681794462483516989530980902901681771618893603030740464474704439402890652039904208695278041893791495401803645023217239008265286667379927601286795796816450372801678057590216845880041022266359791002529865221194819054811819790562769299731416711748535340508113313437998981269047197738038238273341179636021796672613009013519515641780734018422569755564570702990914152668194321211846627902507995975208327514947353056165356661222704334877544995419893904598093261762782058786559693317382015217516832762911385013322709870959186475164190417240311871471071426166803538665940726536903777085924653455052947332398676707867222992199117316501700024083118106489995523844620818555650144054136500610742361412758507293637708790236575981683242872290368508477303780252061760532963726409392638987718667343876104729299392980919338602010034615280482308212283877610440496890829332882085634994875018261445604594700744937414469511398645773341821248387836325864796213365513673266338727040496518586157553560233490724194665343691232275330621015989064438916388875058197346804028122991829495367170418841945651207333911897382470069877378736383249599984518753581177192755247289025486618165428164745032885787127183428994583743119839010783373447161068737333741250809285077972824059687974468681005789666438115875088319313736778667503469938306720227273648335322628506718037229786219076598021911833968134343235577457914433171777393355087638684009193458550808132362843652965183512951501514648893009752473496079403318378116031780337949092995997303102745209672930641971822909486495437537279593276018079580935097262373765321764737437914717887380825161289260367383797331938308508893442080118438953391288306950700538618355234016547766304239059109189449527997396493493744269934959126255963163904702231067632853044297331131882195756132335439987079093090127744140385893805002789972302666952445924324854796914444571453568508371485765050498698284963928023335663465519574069827982307702141772125430445165471374543572199750282994011897336925777216048695350647904096624669104298218970282240308641455170739278723853953147913716152624183580936209601146258038511140383650256037420738103343994970051199111854495898345506130435621727797756458842529560562558368224919253764099452298141536580846424243795214313379202456445821721348216088252714503320913088011513172024709472435317658412893998727305765733575759731686833747767653977131408706597845640671657089925811761471341314568317079581517801338531176935618467573585477530035459524661100795065832497421529372114620030358593903947265341038475301459857489370830435742250776403203586585368259931903134075897428484415816529996174231890545853540864754971322455026428920499172697697473084963337154284759339797630886344542626585447759262580308318286512595644984475786416073436169323556334783391389044622713387081674963603395876625273567148000468108856363907664356529006581072707994596094893373603685286584693513081109679497936603970094178235964843860861241298030781872560592571272855141130087928517487984152958898339053878911945635765877052741889874466193484090599841598131499768073767736060467236729757927659095809213548889500179487471872114240431205950379860758486049816957202054278973567491747583372138890997821615921602638707885433111069141876919965549121704334381330452668953905158412222635691848640846317475830294047701157925760243843010332244510669698619171987767264724831657456101004893089415615410456501649104283135658266010334827513784751359914708435538140192511586858190682729998475754068953756876881644769800161169975504850077151867183131417310395828557832254354287366781494525795806001256866142904402156695871273476277734115329016172350046866746028182875339543842438051391833367256460472010093108418330074890475048540194967219147816360903448081282054402889239163843531402564787660589229719965948547620070890940400959098482142888065979218509655213392219452399739853346713001135107054609856500932363322695863626664003614310866482468527018055603493882605695873437797506141086540491308249169377757488919704231405832806472562649445816571800737654591030632951228902342589792885860216246505740590934690105703286292010285563190836627942207781565247414342139005538774415773040621926669710362242006161263039246407996261647770199176123964743574204055877565178132847021281138957824759959043485518244371363933261879070762075874435349153101111914382078292778081376506495010764990013717202608254699033661945943516198770755446228099897333862405558094387449930416640832112193714687351369128408140474655146724715736946360091859476904583479495823526129730616466427839138178366817466736074261863184803275216298194965367905392710121586726192032808139363896696303324887383146561398952755332083470321811640651021775960139630037433559149563554888585550855671191686543920649693410506791697751404520619227455769507819275803114133416557970989841302444432919501048291991075531886483233379870984783884897864294577984173466935210747545939296676566551096882927116984943677710439702970772119410754953770889143294523755020393250986326667356583745322096733622316766653489051493509792818204201521645757915026191478060399371239246991629731194408187337510841914664310411515143423298350486635265056226375867772831873488914405353568193959388498270959138099457630034748747654744937354262595090623540119548509081673754194535723155940345788827031879503565000928302495838993163650400025978028296405246735332824256733412852468505445684528882032396083307275211144272031618174810397491915973598011435689079799591024873482924586193252448699894392275518909017562225622067118108058797576136701499155110747092063224736539408469327736756850461138311611900823196497691017715204820469963740052878459275243463480245366623510717957316954010299115107153720642991791710556976729858092749687283813445404198364913610603706395146018073002218807334314467536767977760500134691915913190927150710826741656420142114983737115175648619129611071392191849061897235262806543900839303634913149911135491823072219394732301910609621031927336694052710305279647409263397607676836352518937428234986015511277015427585769624924988904419919697921545532661750005796375060465403281775520265228890448829103415674084427079221724633495868210341664252780597548323822248564716593662617952183499775178901450494887585119042239727417945817101130455212454454350585768170554969699296703238506479778746669355235755081459972736317192824631486698419211231456932144610295831003723212902711774007462679346785196224559915753826809014003545683227575744455335941430955161887956995245010251685660305318036512822115472625162945364620916621082919538127135888336800742712321600487730848005345840856860116063467363584817115308020650282447250701081203099264319634564840543390018743920273528940704738296923976284044376627191501407902138469311275132033315685932594092091851053039473581207976203312629290003167428740339617517486848451080535917103616666343612692468144377094353610609483314992381418244407183253138621406274245093920857960593500936836588381254522155399964450594681725062763697238164526788723831772214425308090872490714185950551106865040109279364036244195176686227716317090264832663701479313431487345680116310023690873463625308584596563189018937797980166918028761704389746817256283175992580801613655040832751427149536490845894828818449862730150839091691446865964764826744034388531422230154180461501002377379468795984627669756474973161594624163814737729317583139969358779230163117818261377714717748710931413569361427404858910993698565592349926123914094175217175613984812850106605032899464066528703019919258755831790068325128416624785402495412141849331731611400283870483293430867928016593307659154726084171900209228604832418386851090247220790839913874677653774861636240797388958471813619121766788422736290294958558900672556577600793002465695418127638735521886043691024987744461273172555699967633620012561659718791736781841614880309130531572556491335780241523761582274867483043774943766863280277700244175975446764036434514236704173252423306310066489836989322414183415803292294525866050459359318938288995408273177351062485979829953308421923563625931442666332767116151994781715752789741133687672046521691284347279779047960735986165586603663154311934742237826296220466772790619413734840261954927474910260060204862534520380018310821742985065042219902904892861130390899210858818979569193860347386366569784728418154220879790698428697191804869967806836114840314817225650585862835755225984999440405139294952976612260166386983464550866333791967111725115416880923800165434547976540948905284345121352637641281488529701022912183858587224400606605628882268556474121114445914824274989313677123475224623526209071843035255791166572400213239831493503593831630177488631326206694975645158404693094150258678209146701833796384895805398864020501510556800833390325785997564055217817602869404589421759735610064341955534743065216978256558578453374117640845468639376259401958219250038621806532701639243039303096629537510994034967576401621914499018022245377627979367846084040873521506787432811149455113282814906555997967539910936079232613448456609832677048170551961672428485567899888932435254932675379065048845411835674294310448526636160531887336056315963880805098287886125889031247112934501584149138994195719421858651765918695573060265789259412261645818143031577097937297709709699532788321401945381339483474269005620820781526409664879142076423350556126074837427271270578127051362360915857403998903837924875963901367283279712832807376932067079973551217679272318464878403748719800267574910942697528113052683776110931363081129307199549506414236321978259413286601013689701299233029703256439516717586661510306188299424467673143413207360368309427054131373185252625303527947958923471934462589669813695783923482191635833066649584620812264047915680492841697199638271964999436088936920836029435616203733539234752104240875554746809972501744940502580926488826889965403044935513394307720623046696836284909946102902478088734070288539919673150677931610967288222523587407545638406799975852993932905962064154824512326042846874867893682038298771327123536118615432776416068925506624775824856049525035950595213633403742019946471923233990896908264557494313516732839916642387642120955439956483557236581334523051199535000561128442755092277501175285902713208130936402582755570038265547612398030351532370954778297546143563063383202914013372398550301205784118057681072954960828922227297551463338769566443685950237105116336616633690458627017161925246004768001683762600142067824524710243976147091384441973363908636263504809771525634616255068697746085041088292708825585284754013113059579265829340060252889641045189750737025159375646961844530622004305946527039051794307222128986957030209852687339835571152704826940428107243259985628985896231799761010063578784934639375983582261806456943196935476361553021430062293776992540324893507453797356783368737101262304991391536332580961862040755743412281499948612160729242114716339270605356564243772873976892423062487074010588974167149297376959884851354887140295007263649942428085535922899412444623516838726270492084487787397789614934278667394107431361050141846264616131811551726914989118421296727563597000975201179029840750491978580374357751732590877305484875454197167235747991163370138698256689749238569553444223702245426869989679627056945375223592904821966202065942122663827065131025381739166813312381714512821162526984307658330409382594804250528043027273644649729255036639907545722771106306894214824354869934666234024495091168182651464687671260014870006052658313099695354613633917571530320382819905870085209728231959172338207786802718345855666921936421819041917058192367778751759792135340579764032767159561032674171443271482504866973113772617736506606756881693817390698740163368887430711925592705648255778739440674446852542275476854854253594525999559261543585320342593878989194789628524993838739380928786369818917935772153192549457003228651800673433215288828671666640832527088341315723199497170333043565378701411142650166668166348977569797146218171204419027766210487827983943893006537128753548531988246551016072133261476137087240220462456910393777011576992972655031508988963958527647928981830793479233915382657592250313470414416875577678270092347986425596377623190890570060966011234992424371232928563649945074011265368585976104359528366794151191141766241913642533438692018937436113751420388178378051185127948702350668641219460132083579917313645612230937702699905338560750212794764213283459666651480710652072371011952535158328675562213914380197035715457218303135773829380487892030668214737351532781267425018505808951948832187988650094161886627893867269676482684067813114452833849027338254335251566308791403324915518204501387428059856029966242844352079443578058128494442118224267194016342350662455594793987621698816512308451958049224328098510439565415093101396653755098410095849198450706733381969430046425178488927780510535823076558253957469902142148114975689638214366629963318117689204955732514527775423527353745063523098895714333203266896224079326203816762485759039254664140502879312277324518132109727684746842314973265998351111280487503353703336203829602881309227957940398757820701644273329691157090569892571789345402466074319894299484651520814725076023911706184838702150393404353389233300050204722881258335115281674286348500913354137411418218629550501353823738183037266977878447782265858570457227869096800197182583149598398146697485652992775885230658636358145551523177893359247630796703838348238365096067356834621014536038248327546582637863990046730823918241802676615325699191114172182247471950156239358235629069193349767393534409571772804674932609716918722225302809090241306803575910151058495760789926390546723815800265244257573342536546891939133596673497492446593094943355422739343396783989848749890052762815316584878034484326167932941891635923157449349839650171197939263034741579512983049496148157479439590617935237868976913492490281568518763526850838487832960065466957730336622178621859088335953669739349422622454671244386559634445779907574359161377284687450723801601607171321308029935188544115769777978101306006405300293652053290316966941373629252146517731594173598001722587929954452004823749971515548509991566708216514377263501673650966752104099504731644134292520580824019969497561973935698159594188432706955468512674389856639205684034981903302672634947857824513462906721956587230454637515677000586018826956912990425332314359533382038478087307442768260544271240186070302715405950660721740258071079296452484693125036392089499000638403521846640774684373250573156597220622968334368418096901873734981061461185898044171833249444701686670214282787598621264076168051447901892104292438522078752816144694557281321863819235000511059910094842694976452934408039487715798640981859835889987050213109265293096168769432574249295586027304541485331789534187940826651856642567187429266079139244302873171587937966451712782103178009961855086119261987124774287094223776314314139937336289010221896368009237864828989227401586927210173277692524755807602663647213508816208701152627489601429532637133159504808157354393145029795487735020088328917269051116554535403935483095730976206827782129129550566127558720971654573355562188218869399271265033082000181398240250143853276056146231573983647756981459151601589880372513508562069724538864909398532917551784431213902064919748882236021616638259429093279138838757399248888041687109700232088159186668674819431577188122433243727219171557028428543619455066053020387914929603188582542816512540870555330822520157469786849015344942723924836185493586704342689494158644910523725455146743296127233261276691765758620412906607431376466525396224692244771254789514590963573020938200854232382566177158291397979073661736310440085496925432621637160030262224218161815168530025129090210667652709946379622971599019042836756547526584324262072898185874903400372911776935477053896424042345917512969707611464973653511703480889374453558741117838248127959347656906835225628502174229093971687539988765928831200914986514805037866641718966492069380249525833493812048445755040680616110430101329217099018493752898663342625701384945548171496114982806621214869530360367982884010631307114273921790065731790515283065951981948839751118811864033802740380626030094648168633583154986071442968517794907443507743352390937482727236775497896918754299167294664623013640721092740866752786045187526236380396921371799397047275288176522796576572304739462926661926719842762738671372059627501709276334248230104444143584313374651613513764392363415677032935343875758971958829722475362929708182771542050780419783956179671769305801087424047738258363606342284079705933257028235010050115426456923825161227443018502344155911481541747643896914618375558291379987204997493228849627240068803469119159386051641179204936498134657646941854965330198341113916705497287925156983770122552169164367777493184246470526541939136844636959141722093434958075866571562009301072620301524305806566875936074552033758601176488873713223710152584047507299288340049345328003409423693448092395978677307872569141188010251207093247734546375187556428476696500698987252666420367698066161592976473568077990083841242383141111336782608432594301295202400247770924928238786385753912737985001117622516343634364026849881345357159672425885871278240892134476926744014896805454543128816861299584815320604085014981642057245451226633381509286038534170679164592522720201473842729004120396143612281302535342778622788038816662176185156983684404204580183016439536136861937965329465351584951540832464531060534724714330475040446436693155997669323903194445171607600978888220589121040534896560684107292817328413286809162607464964982118775902495870628765825046643886292387871671856265510197447523596618330938236008598769345471886330699114546894276444066027414530492888916996756121589616890548819615336476677264264592467326368217595923836284615788165511217472982500756670868981205048766536415933514098736611699678045925243306648538193083014498191518034081745869422018321794227430047357379703623914843333284728313787327581865584375842661408069890993538893867277048953687557064824010322331368830026080966485331408611330867008105476144531652948271216891382898670758736238205392295590352703023507703314136773248665000089815202160160550189564591123612195793566900161823413882268222632553031775251092597513754632820097249722620540949594270822797700700666793547946701135992758747746792521600822866720150887312440857426158737417096630631340868580601981468633539988784582531659732460662767655459678377802494547976460675480238449155365187349883917650661999518258863670588531372232779262996039730961902499756573813341757055488907372462257168777445061339828725031284539066108915314869334910479731167534293781084487645779107885936539759615884613956460997929293965659192443082038630487629185142357644127000115728869644509621518529630561006445954975914011831612605055935714082763968848141414606290306400485621350445693783811397338376438343732721684693703435051845142272847814693634949955900163852568690255318118658124908594761540495740178456984864884555365095668393774410978007569216489539561827226923827370780136682657297776312516244636105687258028545065215074978800960110726114189991216057887180264893834360545676267260584932268950769416589841630281516808500983800335593788413505798141993070604621077188955674303212986713698391622345060799486689982545833161407489901807181975114218581706585719948765664715472697654545386094801794991036604530916127612508875155042586205463948799452460085156193222422350589887218778557591066786468895320378903864709451456860865568920841789950722150031294202598156829307576309537221541327758846954651659772426690920686091000505831382129314924024614310265887730606463041467899622544271810015138962271202139395590995445044769212196299488906749967905684469000003173275212082119276090752183362401743190860761311432942775181743555753059093853154756869285975680826648638263409297567008878736248991108710002785224951266453034260535998662643109275607901546235814095545733188012693278668333993364983264351915120600528839898148473861915179676614591506486445315537521985652377577208373951731976957946848543176457877781073732564672667601109336848733845931182795655727433489088977261359992803183473637600438108489157530474058349014949685443587801614414967527287205539582201065867727046903120364908414531366817933370238750601983269529675035214651357964203987162237840398193947738256072468346842616208246661622245581937607349696441574857422262502662155469464731221656028639792173651797070059612426524033025226920534071344687815767897754103890509720984855919223366979281792371582036856272182861403674650384226210869060873126761952522897554255792246562851027394852632310685780240713390256072564225016825520836814923897154426241611294270762782347511059597095794961701336638261728228055366468641714394430951960509467322333048090671214783959751494166714878709377079588440176747597774413966452033146003298311029571505567415822413255680148442060833525047270582076845341863159482565590909393435847704706914297140168314350332966467463789495821008160653361119472893140981796554672292365464371291300689973469313067370187449889326274302154412827641841800899930468316989380539902470005905456274744574771646198072361164362873217342943633853532399778062109991314146157655308855340100891028471237417551716777376647149238545681290296347699399220820730427920196212604876307945479004783897183220542809432152117524404248618594337940695069124199357016081311923630921830400497157559044338038255651940670264170849795379931629698505203600542232123183943007978221457710180162089328664497030897782171353522898071453865271221190149316178736154161486669340421609311602086843182156769945675523522865858618852941655609812570673188272014793983488230056092565810353659662253520571831841582286193597458872399889286557285284666936202734299514031836147471526573136730266733488293949727906022558415329344729441391579481750781277629427377921692412740367658377046697414653156396348136122086147712351323459591874930340219408375597924749902069329047851331291080644678831858410443154024370386842472154549641531582251183397865421510050906594527082556650727336323329266027193743383922524123996158750370940787230910105087035143769847962823501008397590099521943800065914866577021879268433840876648223712239210610863921121941581803766236351192000167257427107437732157974305782197223680360528725180180045174368811901578949465720588300528454825002614774996554763248444063067312519433227634638070369133448956285961002791140401891734015332367129067379948834830759858545230823168411440353853356328290073750689884670467783814109405602204515347019058231554582181869541060939375448182678183602454830366848954453480410083603508877644484279832589504750344523265309647569950691036660975939420193556432535938777793766760353966592670207040444293490199131882246921707831646858173271208337501147137832419499081327957440695848660308956375790163273611920134276033544901011001365595094977186118514059998864217347335525421611034010646191785964582121849531658504717893477607446266291628644226866792022722882738949207566457093071504858656012694712771103175116861808325608551662135561233381552905880169261535987284832375320804359059153783191470254751130349899586418352619679154716596419367109766605301148412300120038520972434817300704131719402509672843030827328740339231516047505209564877157403059212939990566304884938680393285166463083589902357973411032962386409770476585064390868666671862757918621909148749612709392785717168299824973688289280516706399558929648490720004627463894214167797527605502373579692170968487847972457743917780663210608558045705929009427083065246995108511846954846541658552278113465645655955572415696319246886512068196170571191411871074266084174356753869479156336595112703816480176371184831866246035483938686327008577435290572747016276375253404873862111082424987452731016947523376656851308057008991504253589942959147242513686686992116186570006959835019042446161436818948057695745615915613856613959499147836494452784536098139273677418408248480486650185967073139683900379376888857793171164570215099498539884556379685179815642773491076502639532156364942732297041955501204517425593420830069847296723055973179964037644249835947130355762942482942883846908762861474241409788237323463415405953293395318947939049366540221566572075537647729890181198922129210930444948481792502657965361006570515319808650059974430002505934060521131657295137434035909660941739103723539119199780983864235735545484659025927752435953212515316152005473784670772085746691096860938599495043825755362032109835448219350731249070867372634595174449790231689518699248275925036500705828828641944798434767970288993854576323935406407269369297950816701258851819985244106205702028345417400481185072516566770733206591652886348591127921932094051011300481481700445017097117318303336625750927412078223597129320433332582647833257123529047799633935360049749791348557543228577852262069078358796763535904466722708345964924732865260575394777211853578884413513367624777301754947363162586780387339084630165468497101986170600216260901047876203821470014600506401990557024001406398850140936611709468541276601522839428506296379614845892506394549380620402834164070411905342652962211308993916729694419307945795017094235409647400602611795167387517034926746929293997767382722320212780523325353001971681443135299575640290094042267488199305283741937365816843979957351948343404981855068653395553247619747658768936866844185879792882560114507553923961935952467942742098128556949035515294013228342560914364590693349039158016275012001481720200031751249760194540656048023243481421354325114298031921484511400289896755879488351840592063788885411557025426532484940187314583858863212167786132272914139877932338478806924731534357567835014030573994411586832019759088296608523851018057296042963286360529069856771473271012055577896741142250673691726960716614397657964288242172091332503749938455681568648798156490193487972873106479602329655914856537749057594872645436440219289192831702376398006879353341702334130703936924772302002277665230883620475788051914891163520862527014848057498827058078249125446922210078216009042371240512114469095039823030079922686480114552112530205489976607413227086271261443610214356413188304841157912490292787109623594508615227770338356848560656815757277880835027629630631433633149916963025500017272653256040992126737326223602229158565248639055557874597607848072063624237618951314812019174535368042048526141644750535351550614085895647358800402917536371728332106438081414682745459478672731834846576541230749550066590816999433873553433756287762001423877479090291695134749092003199125852964717937711869534263251902921458014654757764955854707808033240971345002953832676735712225443955559289201139586610750998639492347282624603709140561055183633393507188882133734511781507360492981960795195646594803715602533329659909970169424063820872427457427367496608684842667070859008988219889540943533979425588247563483628076721262016468608790466070488814424698253207477224645781048178247923510824689583530401863463607310629625257405366381714375749677440366007306701796372721950888094852616047331908587694359115875378853977187468124578617138645856508881645041510730003656511499797726246668904429420883598313578322689178000333087136104791200392017829136959275417858857201851446932625783133725071912781019415322391218653940986922500359507479885783578270753188975896747196908368683371591875180893638891691336958711876758754015573880598069615767234193226023675851323557713443358990658905629835305437466779535173432352272799327038376624695528281330912818087916476828880596943454907812175757839540553301985556074605128725865687463660152943113402093239764253916254660698589320609711324529300071051181962597863542201415127535846390837246124965201924466468965590520673403968685681880571055182742202826843317888547047525798757342289393944691756643165296087405947663866504597627253848186309334708991871963420100312447724912053905186799309198001956674139447624158772472597151506994095193896203719020631462119908979732528236177194087628194169787582570135052335066956031059860138661766113342938895462405824145250079944547503814020009909811814507789772128340967670385364793308648890597846968730158211854725162547416272193514694662505160243090978760589639628946177620890843700951019519875763342083240392746661399055127211355287890266714985895676046798675296316454834490902098787390835580262232940473215608587866979538132286302049088300199662003485664378872318154557447583283555251404423119818547265833132968147401204730642691611051158195799043221354319770401456341900900705393686952798023530684808560916813311920033723865721018487781860881022925645922153271607121839463297904124096797725230303913882882025707654244785884649744506577631203123848262425547423166438041679092010650865641660152395889407215206362291042125620987514584602102206466288324956925702290788778532141911692902317192772731789733316892260130770373437354733280038504519187345412567381214175904453069435905895689883446444996252484621939456987739184744716294858110384625988714716698657159056531017460688820858950702844107430753728799383399176890484840345730084728177496237067608969869447941484374226130843902212669871843022115994513728449864363392109066266096085472701119199264168211882035064540637461622820056490896089657309388044040912734117591580689283765472377424343331071076081605417862302576785884510199580433713207995072560810146368782275676401182499560587617149622996693835603209472942824743684041913136452655431732011098849517773637739548641182486575687291586039990693262298251167824850357249938379028363790726629191223165612805546946863509503963905433489590620090465817105923906605479235654627860063378507560312743877930046458610889881152118869202528903034197028585624136921187656582574082417004640059521415641402672197915857861412348707960896174838762241697303164783104976503657568060690688256270727697524282286262859110900358045309307229624993795069870172887143289787201301228260478642926002765412552021991034812732451947018162054025971158106155541991782072272949909145834028679130718596207109965102548619899153713817010104296744618747314490530972212787977439939747487163712840167682148098128316980445415519319814279571649111680366067346605612478085159274617804502555096836554524661842302656064720238794602132943822944191988407370490075817618443236182755663997135073711256316109313969715461900469911005387374515653822429634143887355385062010193142007688396646876847685131404298136677232346531789433051436815260474986641759807661220870384033525652499960392958444743128566306919654260015403370164848196124257637685940812434572298887706824536837180058333528342498364599399790070796540925099400743540435755291313771088595894051757260906478775950273195432406742807097379107460378619574920019151715334272642543718331003394192686893365810116864952187613179768193732453520746614665050661525153834759151519981813175968191220652556802890872449415650481376201362423156860861532830036299839652232716760641643148217221210508393057353658383537756221746968323825786981448774752280636409443936870856426422930646632879091904373384409275779996041746526476671707610710657382535710950133981254368687123562991720722768712128427888966949991125054343886779142484935446534564050984667416322910355312934120877731341266744679560453332039539677707537688982230599693833471048260896385187080842808488075154791734216523859310392057019380803824288228963596279104702184480223384250973085922855012911353573281823435047053403813824285767202350619684928198254936988179062376313875784196744240646057652326071408111910563925670429910436594910765128990135462582162024977888493302915682297227529968193579322282343083139970053142763211493293559650547066998034576127225401467253503456857297627623248233970301879164748623924622850720370098866794906898365870861165426913070108966692191054041798774770592570887775724369126169690050890626653242700002975378023104478092743560580588500020144240075469020781901355426519752433652264868068333598507986528707541045160516424159651542603624405406386165841874601075943922027814588565293214397132191945454186779965458754839835010393723833318611808461589675433336840169079622207604618231422122509617072132599681051891911097261246114299343263822913119878740021290788804089421870495735482570177507892402567842383780049732371042036613181919994901143410664644982903334751814871291387636815423761229692608129391724673915604047776253597755952278803440224424757323515064919311298079359882455793418403394053420120452871331494637147064678569803990326236913625913487721520329275338208401222359578825155948462402162002536276705684274749133082161534688455518211724197898553773035544795000774287603851674686791321002391302019669996292739756117386059213423284689793028496960149696835544398882911345157960434547487776692875235130643589272335460788794924378811919647459423350603234406663678127048775917368893076316304708554321737412974796987236627400491947467869041406258202291843583232933389185237734318737559137162902312535199911704764112588438258990015465395132089372105317544731464927146899637644636095565216591747628538776614861503458254396492146802567331499936151687569220347486225104760275075008809163453810024632428007323103425882391074760020258498351318421127518638220491154502952155405677474236073502928939419726988196015234843062222449357487188211197165716629930166600998919995798851955101020920757713390766551489036338739214497176203106256039886861839535955103242064995804588050705795862045875085656437673866537115193920917763563771270344760658573470325178993521236876108181448057769845920263675371581196860387194557455404150940381628460961864561599685074659799424435882182934049554205148745717166747305531916845288414708441314524636812790911889179578691582414792966740205569068940493589343685340249634314718129296067483610091229383658404272905846047237851455155878368534067840083281349736760645320196316865180916951339357044185071950820146765945817581960124106773423271157392358224485034218437331900848899416251646502236786339684020182678258961771873765106812458982730240370266274105670089112633598049799942494864954453948487974447722412126579321029944812464387975442024792515793421536413856424470207183190124483101804757143886804982233684965744796758641232412117144230206997994572545720325982984717253540012447051379546343320830003093415709489770466234411644637593375295056442404748661015606218909054417404278629499061903241834822486284788397382350632398564863882842663255881501847599020941649837455656216836342714693816615836661869313361709724463640470294152821278042362314331809300079574518486577106564699979250558075930811609862389775139901753127866907026363059163257522896190728896475206763474235445450797342849993800999628593325772718587671363965745126032838001393660711360535269238357640807130070298906777931269318840711632250237926313347284600624801316625313404428999020257288548291533585199515899799237640916329004631852720798891009049160448180763500731998675328178259439422715574894170968547636280822815189208156829670415247366835109566556416023132847868648617732815428470037094864834068340799432464299142176755284656225901590087923617439518550227231474502401537364328242776371674393123316602252852790674537148800949576137151840318245830710205263085641629541557404628095298804749356155892297578727826115718619648923412226623480396191479512150441690067959801583177664133817845137590309399316587229899565896559676229164060158095207738599620486064955310809820437373312930842561479668661956123168049498868619991801204463312224914614393833514528796602596489332848648117826327805758122504675566473873960230677389733405585068466391762713438671097848444083548711114246344878736680153806128687529963852187083807380380784490081674110076544294151871239637582774374722628357224601841795482172339540100435177696423946172856573466955124366246671312107679069415732225856710720533093205286592541787608017256336102520423838835823933692130576076231945283380644366910764936984145834409934912985550277104952961384074981815568887283677321063777457655937907617001151384832297692851373801358233205639004842636491953897130066067532803550786278753733341017173645565843597422825489129724712281058213236426121647202269508397875898123727024650987838371349264384262949693911932305821224405242361756381684730701752710533062442635754713798835299162543710536353245916052984770634810723361225747163082919273333283031785624613206698261945418646812951073207771171100761646564333734991407177364377930103000869588738316242781311392766323623033078611610940323059942227791857811047932365846169870991363699481262657142908647454646856395857355448490485110090520550537199112802596805293997709494240784602754605562488302840226171245930858345235587782891938699200788087949785033178307062110513132540454630698484972199367111064290766118310693309435969698529047860916554082414531046797701536024824544192831955806310733955927471057496721045621908126508523037353493002759987784408775019458638544927439466111136484994552667145293584457675500533925867580819652242907528713432279173076527216440714375973977246921320220801093155703058671943068254644798495467772557505334426096578812504788528756506537591867578530931861166048031943817927419046752967047570449917172063412597171385454861367561126483627819140205069117729615851353691650562231159707283073531347586239553251205933832414172076338553358768345651302857948931103657409710451656176829250649767116463304313195027677203374059989602095492590064578873083903418207980987531536886816689605722199625005329299503070429250744235077626971002172078353947376331949593025743264278878485949408500852419774588867684282681099828676246351456687182212699491903616150191331656068355459985765767147784766398115241250471801789695720458255289839355252795210435818929391693790360165344252796928767027197577659586682249421496244119603995707676674474404166519065010257432733649113722454841988144091321106272660749259359299517220979406164427936980304821865449884981270960100216429401542679268441951105551144968842195559063272216217025121857598967413934956027494325939651507687271428256225278415759698911606826908885654309958667417047041261364449646384968404197025885320719507211781176124466427301471259230822290629222114647382777792718711057577877406542093736767459275031445277656800246137329894736825498992708078825789287498357555311379359723522011269681935532106779653674213047402200294333398143062927727128906422871764399805115874506745999852908126898175019982975403498621411991171739176894121737476075227047333599413414133077031741487000593118090637739828534666737616865527035133439818189836977390321795241614095158706639886220966205558702674601962270328771278278570900588003066088672191749779029883263346302309805511688595711287959747277873928249976770673398937566371829853217694107998204247668030360343145087257348835742632292290809072399038784514259550263156190749771695170482833734018557807428916429052305152579373620163470263898703516316396657397285801304604153084004823604256739892862004298224285495344933386909162508946602740375778946834815789801771206479409261097636796902130468719380738007936714489345907369079792255426546788634336641023206907957891551686601056137211489056856259800819311057749305847004961366677784156729604021127866929793258145744953439312611653456796738388349643764364470774589173936851387620305274449423053266297064741798924061375834612431979170591079960105394079457014907563187050836703569261167980403579482422472924814614941989941923047445209965872817954494724142752995122374057223158346376837278771967614255699216211558974241676211175216934406608162817890504022181827113800392050048095990764877354874041801561594375942830557762065140617320954773904796463912877015484263300157894171128665484892753063238214570763301479053652897093814393156734161982991423405260660161132706413453402868937887817879525884514667826790389958949987382482418248645246759945757099340822552211723854176832020273712922428373213678093572846035057720595044645759198065291658114507826600260451821727444114113100489863969677885201591135686569393175980062981899908860472963209409502710305340597386576465775626652455554118146394056884440298668792537805056407952927648006102071354771947356140286700803066461442345635354336482423824118343499449975390104206896580517038330219742969484140214479151927999118634819661448340521160831686035939446979238925963519632288584345850762547486302378408162190103646153890527253093478970401082072671422455851133285568149678278507293139135521596125680904378059869823115295411224821018630211763989407169077310717660638022697810169972308403187191709767441907406955672291625925182817818038115344354444894645954711836394963661323082567205980642503744505969087077224755041011394294725665087294543029109458188808781949000420330369037606881994824620246032650272863576906730012384867181807186124257670981213691597843136344833226847853636628601385487900263355912053391847163397636178718332065323970669495102984297690343422349194844605694315267052561425200088730742133252961073151222984216913179716752384556318550783674407071644269945816885133081653165714536727996535328155001617413545335837829096963974828107335890538041860779836625651335322524393736466975751181165695395812340422157745365785770950376595901777121377005882071203896537246211288315578388723502496920538914057620733990161954644993008295948070553876030534674034453470237289091277637891322879574101553619204310158475595700276478221736376786649076461339760010563743505847031531503032937792264682360429569834726679515215212525196740653110173112212521491113488374232638154050546787251212205392084883023432343838815118801162734948865366635811862229077750742929406624803800601155010328826495168522764043937992689489049834219064249239994738052731381830239674732461306935425062094230837713384717662850722014745706350408464290582636097176054259961497908340101344580660495788126187720903384947112517656016781243922414116292245774951345036366007975486863131774023801468050043697555370124541502150612506234714665797995056192667565378645023184009486993565037965346189697246368477838336587258678544633060746923148111356631161625709674839431439725691053607434333908257675464265373125220815468093939804477924101424000483200177071705280497135090176935044932491708803507968025607215057849312041751819407354185171426244632822608600175340456095736340143011663618431497295485545022279017509945346849222902594902076572431519986239108606856286632537365262947715433038748550544679983983880813423076627980428169472571348048986766355284193048806423686032890844559453889130740908706156568928320105769403324874146174609782211078573993734203982718352988123023889274330512749182834400423235190552757631063351343544303394943081550917530401385412489105946095849836897571362401089284544408693293737536685593208273112154881077136008587614002390160397221739169144178998324937842640780143209290834161073436235486320561605163602394612037844867742200195523585319084404609333286106089502451697357623378197853793598375122728573062418009269184102725104134135294843710070609286982553715189540837819647348225242417233519821816175402853933262179865062782350587091778678086231544017701472863706400193247334087024875977053916483175634164547978755236931719529098379971918544513435187567841055468519283790180284788586734647996882263018100436863301006110022171380449230689204807679972479924072820208044939963687004941718795552504199436332523133997751499189383629287274766853581882407612180106403094320389107934936953693989535073241523275178926136714323080109602243840973893055712083653529552299482029548103225878592268327887928142242847159216053990322071055226440082835504754890206938835318749053765775880902218448747791670456228303222031205414062764047645021988320759394801151510245662101760651151681737893430843678350729672509817766276612094767196526880965245135513058514179812048160068007040907116459938496941156704701847065106870587649757461676839933205457332157798476009839160315412593839080514965227284699002482744852699307636044515901175603581681487699186588856460371237873970420730272001904881979618961079762670774423426462589907994560438903738950956059917044486043483819107727293369425244121710497395303455548546341874782845645029796382921710380612329785121964327793609675154497497290999261174346477567029104929762134084693289824784437734022705619661995423273746167133804355121530301802362506752818782408144269166402047121754604550047289463395011574445040913695994601739974626247510449990805285594209250207111327479389499807845110635089284245403989407264356014818411604402846713125135765722480696091486085592386971063928712483620479228480264212786504634099882171817634926971539022876618589625361287346518455259100788051111535035853892565414353221178022125370312955911084224127634908437221681001262482297903898260936574729558310607063738791782798904418585719882775087014402017542079840535439598508401251282993053081747973026528355094298325640698387885331609031613568563626717582803026008132158137422620563066538477985490502154673909146352718417170948486017415042483481736087578961258403164340946708370661534452462613658972952526022353014974488733146223614355743914886020363981551419734611156409983869150397572158327065388934123990264876732758145362058748527498411247902262385810031245213485053904187324259476936866329231692558350968085016549450980868938183306708161811463204473906292047000013818315413764022637009832322591768087266209371284311621851178298724645407851319937825183388582498404541072733963705284939399785254979660636998784106664396739033726936236407435775791625874871890862097806228247989724747348807652525729684520770678199291825769314903039461663407232438164359804415643121100937636537870255094279416835350429968397728698671574025884790431205157033549596092447511565566597392954808133839441259866381560505917044703771786289067461928694862376666520239307477591914343828285550465951846227130174075066608620804577593919235947456525174329840515576105610860700140568147455670575931294906926282486644785462884056473802393033525335032773340043994574733297279201221935374392488173268749464852628098268204424748245216385108120441397896515993451035441588981531539869099591289432034342203300396686598646160014119405844143004667513211545307763507087327298903657239064250548047208815775552841180873239341330069412039466761985258712738602197908619827507261269334302503907041293363827464769133537734449604096674872570451567615607188333811401769415481975713772403505435880096566874088717695979324757734658831054105748488383901558162766161741816494216178758702835400516466370870611348233974941535865453096149555916855364119252343443021453998357988668256331096892213901598826982250674656688220342831860131373307916004419204706077858730185950938036062008358251696101320993919730350536739010104039389823223872783211982383445256155846352300534883306052384195936054350649617880095452510405482245932345644009613861461712071117580854140663586844799563425716274534654715177772802709631717534420254575887929445258733087509269416265502961821677442682967403319812801255865062633352626419389637909100228050328455299224471635988101756228657357997675781517837608947451576448451074153041065810845079206209838525170107163356300261013420615621637175636364215263143573308307359987338607080692913976762669804183886471379924538444073729223066179057874422551437578904723174711683932941879665724172586552690457261643321074305629498385185265236545638626275493239680397645910850733383951658000358087980109846923291858284073226066715560052523242267404224623971591367104321002590780673587283162886724785515210162714602449298379457640734055146088052954909400700094044054772187743005287021091461051587945204548837630816319687156595175766547855756492601502198238828372132721396476237637482819377291536532107413519508918411320209600721110475083167237610030767550505589610300220668191476312103870304968330902673139964787098782641053058561754391216818601261318167337494699527194207708007234297082863355108875444279720869711027184632396098047539402011316459628667123694224738027612221231325330834442952274031514284673317056626885881342502410955487027025093599314300796275411842268741791096188539601244029140003014513704252290892498642654185349976863406151935308168004183805862202068879956818495654683754182499529101583584084333560132878449477912050807604439642053650820004425243838367432797502064399362269276084151424615574395918806383927599665037754495136131123280435233820886150247225934878772456064882722182614500280492263858509463345028216576097065041380044134915277802974263603939174830001515304388766060677945620543631037057409595094011513237687627645605813132109003675026894847094553882590659852570387309116103536584674308034439032594088445951046575796829358140182992327119790159400741433414361644883084403093063460582940793727517237095018113118149060037160681617009008379686507119211726630292534805684545726276772590514035907476191374982663595660313815175533763358474959711307786203665240549277656751171441059520222999886532834624742962075051976913111607667026523411053331111595177622284734534548309844197154252789499388614278199058271245730738576361130785985057393400766164902665727059199405133071753133372740979254764880451894646856063675502272824468968527122598575331177370753907832936296410587070915609549342810782063118527904450441420095878784010361821863951901249937700878508118043304828669485783862500650370547879832256051915131712387421464879003282683188240274570579099437460669337633648598981055800697009327564969780979054726358578543602685451393370624445282485323815998315369712438959930385259411392902429642099939197073781553149763275873701595784990605885353905703466282759969539728996141525456591488234180314011159862601856199969073531841203455061278968962461759127026443315595223814853854335210298417995234015954738839842721662817288552189535697990785325033247835623990700391779798998266788637262737269858762206905183731885900060738466393290676128305712673956982896884557889045632167016312185122278939491593850496450006964586391475759274377794220151583945535862713091068100729059359790776397184029768432321124767903139350447745352481180696444497032890104590534065577662235150497039539895049766105087966882746748195948818056934579245378708634752004555366900769515483951558300270547602557822057500374060384064113836374878568531446762955905026861129288844680346995751928830628631934745129825429961593343622409283498080287821622549608573118596748701507754114793931182861590215204792892934491747709885092580100501750836052331781193439255872812114478681049963595609233152662771172835308661799383131492610218992710110687692699141849555708804816714812425837699959968017676025689968067343038255813562715211215878151427482884301876764331893615663653027520348659386530807750457297318826734752225027630114249720657445436439149186850637063804838894363002104149733867829127495862277153535638872328911282642362602861767478703485173099098567811861024626571873547486772993008093751105810514553226493896350490488215539028524249859654507100556345397991882451641005783351502368216876501083966781839851659503495152126201287350014546895013724161078836346464091916146516894250333831234147840102145176050840684484501148416561706527571692465907524853437447707280613698312210888557556366769391073381436627638066449373194624151196649150298581316579474585098581888868514472802977283828240297674744751108410443725952170013939996005177392137511944238554943974086297090967808415827663578873387175431108753379810610925499172090835767450997559653939182979528967247304492681602721061342306072019710841192931983748321361518694294451738307067780730357112371162372856416763789057119637607286321485404274962599060267008853190510734580599298528476010071968611866571637739186765742690282787853574467683449446761989731041580261933293959032220486767418368900404373131179578449974891774613295288191409623499092890665355102808451678094532567632868041676126713202072144926423831285799139056888032895617427854092892507600502783224284537716106194153976684741321469369043070822640837356467812167032443199271840758021257953056608229881085261874368639306363276916480414303638399371987509574674872099424479553417493743844729813068780936287212790049042563024750445566104510234156017923622794667481653447827070095585530942161057346914521994605823881838844882959936917190474379655258526051891782568072286560630364467507846923470342261066926363258048540979746469787781179867249736902236286653039712404768459465378216275836703874418214173775375731821836705790053046339039910250364774294065814533138749936144341275343575069552854781704530862763046555707906002107972931510228339122452302770917757071650301353791648427103414728234632027142663921623878408930419126824351799827457102651877881105743695858258484914793065590004603024374779838265501705720456569029791952884882623978106811411729701957537573590365110036734173450894897132371186443044892730165286536963318533365840560269906795380267220276716294280492332955282641913525926144740730510671643961645056770911058731468013740361935829112730751583263144953061772005252196614397074626383921356852155651633560651942304753582594760675486499440233046402782477143488691519369672091674777083855717332603062708969588249751513394642396904020819049321621642902905423136725192515418468550026446613539140237882634449498345444427719880967494467779079850538542414781099205823668420216297856916155358321641508216054915568787186489945216331866441079915840162146670932758639217930104832908897053967184622617221046980870836915627797656179274331682434615835772958611087405327175388032256268311376965368152260343490737627815830300291106222845010907128591893062911556477772319354592422263798979058616312081952998075939671841457621935626406266064879192835122357794692744645769287523355945329327499296049042073583106532238091804651821277213413771213756509892822132986224618184957354649347623707114392709121083737848175548266448708149426318131781557742857872910021282278985820128398439593124335164239097069106376212192855135108396415616738757682581590040167657160666917338499133244011531862801161368356096816872522799798975812806311841988005738866160480532525300961195094622136332818304046068709151631158717345653648261687298945691950975480924811006465328948128573724192850081647043886850451108191071322393551532079495827574714691279799321920506011764149202893433634084815098970300524345126918680110525098748732895670230802407853482117714536897821540051123347778062865737258591194748181086122916285891153403055180068886508732809634279782660423923267628010101607886379315314855251196115335706553191005060494779174157357103945106391790977449356087408158941491274689945103569389976790085148885341450371836417278332857437235665856890681100261488992801723494744305370583799260247055135998758171940087764599020674258840100639990253520856452677942945688941155588619899840878517884637240145990672057020222593739666006919223814127377684720938690017360265404827645562272241687231776938562531143924373457893402260594433418847471510287072428672889412248688855827906764822886621089542209236699513761729702178322622845148124136904305672178404000093546535411244746103063319138474510327291763821590615966509662343781188671937119123544193904609017938178535049427360890423431763886350428674822335128195946035300532779071985361581698165178202021476955110845455836150684995117657608831313801481665369045655473038046686807480696417757368037258505715011354156461986592662502351734458010807694617471093277880407368894704821559287480938709745242301812170379750430601588279249214947860481681035751896176167716932816927635753031616034844946501533883447548107087218820150343510859399345009682854372175616312912906030727373817740419637669012176469250300247689267092317878071349677411779295568586677908303341612368746340124077903714900985145294599233631525226796986362026628393997409833496560291776984706656196942193124140660839838967960335020801747871975689009572808208966328107316648446286306205381069363805626222818220208071554557504334182566073555560218949029111286774110265196073633061873516570205153787728305625743681713941764288442072921094576995177398688475799899078593045087899496916353244279356201540633573045027540869593454944824387065675891779452989786705131438199044732555713259450490864728218770102778851846216527093755299046203439891762802111540430825685876084363589696229652823511411795693858048746562710240157941588945110081187084481080525229323566322126610617031813320670316306075583509338721320951955761754259315522548740287494999923532765020186160126412007003190143634946317874582706035911995524231178992386078834807255279818614117429660902076299057088224083061113624841225438966827176746218722872425055257646870806341613672390725682737850961198474645063155491273990485528509568076642568483152567105128037818589223014020470701130332664497865421795285366305152708462172110176252566435653793862654971196346774125874427600585394718866521689577361119250014691791101965545420466597243681465644840075836130780234363086527083785589747589249147173861850691376569067910363947448371152892434954279685228510621293039553034367935801535061829903510043313136122988277119030435623375500679081568544860528329492997831988802465340716706105215870485641365996796702800122417559234013811835732219239325528635786149788609960828199070121085018592833967206119204164949090167285907638437349202169900792701640144612375796643388139304248796944384021933469753360521890944123200792185925046222884712212935150127197823877689128244957229391067180252464817198247058385513360202778220911024166259059332800202370967355548641628005075629018913644594903844771596615056542360713459626195192836393299412097920983163118283509232693459508156389727494784218213329514181905631407874063881586366010958942519030729412781541996814583429477723459122810056688584426496081174289093822182677086267863286233766190248559462381303643587616127687377084507649973004956128269757755468021487873501900254836937557597794124045122807698101532356844331270646754991133801653562641597557680348875756968830111541270188638577902622694374379130699045537430844576473086455331669001652026486490311022541197850814985738144182995065931503356560647268080689470081438540233175447941682050263224434755717654448390371276731290091577877753698101623263904006079813665553983700044636958013802828209820248799675928803151176996600473189991526561523249273579109818701395366972697095062945404528121985528863889724781562880594898076789783129456452317577638577473954476800009294714190435642316163493648546035815179227180640248221337318529573386135407933364087794119282894792252380783146223343783365288833365515834626702401558887787500145231019367701409801583335975299124877310715007691885445814832425564123705004875993986214076618467540670319881326459395967427233788991229149595571185220166478510630875255872985965795664775293733695092602245168689066527053826036563831477867412213943040588443700686093008760040389101908388303352546035447105262292022608236164489547759795345583509980787577542326478470396230071509728459873666369725192526181417540831710824763249301468400752128096865012001136732642189572324755136702459040599714791122648648756212583274696397996715068756115882805355278409635726465877713842282642856890321547201887800672966648142292266351591232799898603392518172958697522986219124754858506519599251766559658923315838947019896782670850799285033042371863535522063847381128767102115887008398896801487529779140301478753916523873688000071478848283617645584183066065748576147562561695837934945529873927364704828008461201543991500844374780544928466339599275103233813856186398822660100636741885498032422488984013781364570947260201122823531095783211056492031184634974871746829299937709299008841776617151734549751354827089048664745073261528742118455787052388006588308488955283338401898342874490202230943749917742247310952478907989326204865923295614458908773179831356029553783508158043054824116088419557909480981514265080090752274402621176442691496466653111820206016679952787710875945527797909487558063965564243106127278269654683949678898845014055665776430122028534886353307102553739592233298924179057036319686042845397611206072786818629716901184337382619983458153836475509571945268000827544035557772520141649726939197868919440098532725907842572309009486912156616800767250158164031390627768567667090932899892499564857767879193575815920417288540768837066969062756165467479906778466492386803102152807106742513405683981496572682884643934858443574072738135414831134564051786045922772522319672276133442400327379286241309526869561878845792181750637997262323200450530492005128964986225716829519482733739378747137021703041647273439129702286837989911705191566890845152612787524509683473587674564432637165926755956255370944779755181590014748049254441305537625611676469737174527936707098491290036161480772857364156581547826272750567883063176748973108961394861739927542334326103397032804200315821978384086185027415268757573221384017241401635588032135367963427777889383670159162344972530849754648043566221756655428305382782142590703144451278459086050619227589093743213334760741742299256668840161570504571016451917392177551380450826424425392266393386948154109994107298494613164691647862162605300770339433516325300460907139631921491429241176700816302668125592087736331760968483981063037190796333295933810842009856297041736916305436540260302504465310656363487313096527303095737084492322291629941917531311469364512896092881740861705382246022914280687381040549150882578712283926461318492756423497617034137549129832733461319015861015312087514054632547881407264967135405977327378927875082549745754175154093949786843876790169234139614550221301029699587751123482892564183022353907073657191866366720181099875444302251635351404975419683757796367045080767632953466785837883101542055803152107660545813874324457639940666350706178281310889918175256296186150718125187250515512191299701821137262744955776902076546967932851586226261028263152802038811095196206226084990500117370213780333152669972216209689983775920588568960075833843601054552974010913693594989562577718736362716970960188540384193568375353857082055909383542085953048917254091781840099208891172149533935964444676478361570401639814258584156498156603231588181963306230212953328358682107986975911020832430245733883273666668096792072708924576371279575558422033233980352669719364477165126978817029289399693510739844500769323413119400949963244207205272831479790582561734305648608588306078435638962362656528446095603443332790906012616166372052967432394844304260757747027799178505551884215518014969090115138520907492340789208798526129861432556370010538399502609013151824766349320256102102535359892596816017806597459935340251030449802704074199642106816497010447746020534747640122565570699712621240654735371100793405204096578648389082251380365375734711797571856404110450513484857286612187963851073636327571339819334672804026734329150082944190146594381771639224738058008680726234832502656451751757478454144525326819903574563057771788864414751944973826435282187033325419862835621855049315362047919622110259469878233048856655504776135805927035162560015188375752105635123823603340162199659447032201890366400124344994296835928018009440078768958389775241068541028351857167879204502331823623958255629487551163586887200521659062061701134874789637028399633348845264803604984322599320754684795656008901333538237943661044919198735916078631058367990734921177545088736669251446660584605378566561060418397806092914191495970650143002329815780926569971859276451960279396665386222555399229396607022938910361180996326852203266130395196492329889263215182350324982309769618705192193559011510308973124221746190134781045122074378134204657978525378455589930594546648947702577442968405192475642162077099211600656284962539655064795964704742666289133261046016351259638888706013973444857484938746609478919124818306902689737769672371779839194233461654206972891548741750246658796442228611430075863698290831409326809338149111726531753201135843445501139048342886069040620476776582461880934770287517419725960887586175083960670239105308380817291723899029916464032485235113265558510028861071854096535741325851319867121757073665280236333440077195839658882329002645244289310123202541940181912534128864431471293922436959186425477440320639299076379927383923353227052430718037065151837046742642069618705243730357141728702421632579330623896475949514492281796285496038369617065358692969667945768108584277007289071896668105131495720413763293467295375220057446540669196673182167979833399725716188636686637224287287592496309959939029396028076428846600718071908265339519555954579966597178564413931251194397635648774911011190332045925678836158363593511928797559661614705220326066547578764224360707491409057618297501872900058622780374778382868027338209452530791605647669174089933912613905416337720272859027817203107584178690521783778617100445183348164284644937458472051582749116028228969881592804240728261428079772469109055627826791901692299432413036890344860605484307044827000110361746653267435007709508575074478473925006056704071959610759747016641950098703035091538088954592163628106265672298376711861453000767635921183192399092386116531344429247044733537089259940555296402285384748585542753934782826074421805836610119770998368792807885692339456525951692566219635833444672290509579586598624942258016962497000970063945663179081888684900725820576421908146840065447666254604726214259846762071230095489757248536309796386757485073088287583674024666696847674102446575395002446970836888553730091957160011798141645840244414151918062345452403206451803124399867029813844892161773629575074369725286331109950186732786080129442224843656104967635065407732111631649993951069785888120240116419763031712829976115634650849568963579225042705270363960913308030415832422826455811190198656345097613342495618705445303031105345072469499566986604417113118310507395820916781542626113636242670017185319587940809166352989340166799301518884685276748149657065074019755412108842182920848309520018386970018257750773690390774994217796378789935174103071636759784652226375379161004967145632019500036475941683230630334726972058731233192927155523283411218823155137356348672929734103886428865437749914759875500341741049576197508611288036419251446961439078211049545253008128534247184797509519796971391092486183192127327775807461633477994402629575440924922978979832275367546263124839363714201928609056775861331202695530829843121697759099594794086496769595836976798420151836561962095953466385977507597107247058839371028693146385065021044572561290789867385436275285165144967953676088144626655972026160622085117000251842260614149355498401086894426857204476457275561118017480307196350659959083505706006062340418986600692895822959193900609954898037176232016973714260507062743899855884992699593513256077450676214021359012019579311418532847798094891532174815045935045070847627209251746017281989754257129602909995206069567822169689842453391867857618089269053207454168526326547479854992613848960874026748393333677452748452345067659334174965468111572936952235324057143008377227090560040862809803609678381200133102939231105863276650167025697161578006044519801979072243827175071283541211741298569787067647081140892527376559024087246807363794177475357265321418558304591542810032835869806751145858414550271905541734950918441842289917877054004659254295241154350908055764311576415630689891845398799006113132857393828767347144309138228888080684431461475393599547884412584914128791808887977482299603204797873789776881849575818753276323237493892087936405785220770802300552153371333618281492017313463803670785482430376395586193763919954258349792970177448863246706207911550885630287079510153420237703745110721804402263733993903813809758514996535721478437925351818213287861384452310389623203039231273256206834652644914142768642324538199000276567638015651166157327668551115334469455145746975472027969235217447299062550254996162213103637219241340043210063471656211283047401623552290548609887447146201285233229409799666591253742248935926052783252143876231064481954209892568397605549887960510171219738023568160687860379637862732891191867171991873589634687813351346462775495370315447738468524533803903905122750941975110950439053083568841947688764547094727496941980475019208185895281053120411193508425147257999866713852328277762137208173838355438009954276509292547784163021341893143036327393900007931367035765091759090963882625505944511598559649436897502148405376860200107085228833305982585933330872950955601909530569185778289560387993813724715094180045373892242478643038834083574751439313600610027532860229720429467720088606706418645763865242132005916461541933549880837606158166871962658995660218681556754587083649633561885618335761917450242667498425037014164836994858941864793836043173670075848875943106896255099613005416437509467699080989129830838665897357639309480525227642721621719177756762606426469374524203961118100896446072383959021512496149090461972017367080439865782026856236312462261920437488630682627220076239735026034118023721563683021007044963405519451615443202509006834819599047838761698584128935888697046995440936673975804257720169762272364361262807824615051486661047827917382053133309262068947176163551149100777203502276793323563644883838095887013612415599433295725453151078904977499435363905342256580302430218878467101052254083277585805992511797417775506834353127791748697994460405968992303895309815939630840752836721470744297680311858888605586588972892488769598165720012986107844202179397834084203112750221681901369960777341222261746618729532893052898909536777221553574949584796208775474044810146254610682978353844889891148626816795885464784879267573547644633280441565027533277173349935327254255914726446162705052481163140725349242150385056311854610916663828405424122683643592483324298692729795146691555360127183912071257776233293615014699174722822176297082390914555247504863278175728238565756439001196611370794339899921794913591270621046227496762161394166546634169516996357122288274443829808185385914549407966100979984563896627341827891959704400542487400135805900540273751959155957499283680949383527118081046603373484503020514315730139368079734387644177630094512008856685651517824388629022300796720521377153016272356496557117352188543150093668057042583498133124883313818653229055278207113851139845391575885858473311618897402834962363281794080133834988592183754924147771727642118517264564606883571917579939795260765866296377157786697298130901009142924916616370077935869160737908344408684059760161256294687155272416744113861108255673972484914961960223236716818346854573248968092297387892860758208175617771703143328121716059652457078278486184462771615779707170254245954487868179537207258574104645453505997388924112317737446271653329087258233045747095681566440411760018792548587381657017797621038970586241277462392291401799570065612880238577439898966742946240268372215188216660527104739932006824757778948010962666644703596830297613994688760721341866589469367011289149060787201752310304360623517434873326422785997789534458307701510337954333098346865557655351963611032345587310827853307794914633400912119601803599086148187289022466819160562761373169393230022982878847097794485147245742412623846371927858914243739427693959334156042391208332481918623144818778635125083524620124506000104739551575146043559827965740620594812790344158939955254080807831985858485276728847954474370599360984378701750141441292466447452205938251453385884659262574619020986380283759515554584923849921496738227544554462780678708776140723356590259394640380252488044948876499956836677691674938710424409396576641387499056304954930532297194103328299623171716117309104964026966397949004777439086315141760770291224341216925220376323594760388537639752951775352521920303974789217842086862757959620943969772970750657350482499327987084979082675229702054060190764336817998617572279446893169277543014173710658574682744926616218926846100271572662007805536571478989066147835433690206159502524773167424532590765558268539629344209272243029765421718386009718939026674956523064037046249844920978174477919071976946538816767640250410816617400894787201945023910442026866816311449431691875671276454789525214335201430405945636224712997318550735572743552776425479318290009694728927823726963670737707167532175115267363877357751431567893668961248534952147043618627185298221035673760456767461904955750979254031535974692233933435598965093789153026551412757057043471856931608088403379915733008439599474406054417030178414139868878000412688191198040886939141603698190050414713966505193481329595285939604280893989494186981856452480822745844811132803723715141566555290880253891163843817716818815323654475863869793896754130814801221723215023103895617118763030826192539660793431672336335489565294702343777970256034894803619840308031727958598100882031506128578891555936022108200183081244527470499022795856911087254756955919834140855167796860234818916638117744579652588403182515525816731480938642195323565850593615674095773920122628981261135604491607600594569967986728359380472855745468311587977153626192849972298789911528531150266654839953661695242215831090143650861006760108746215264088974554143267985258448377334786664218307076990261349943619794033203931603507798641850260674813950258219069520716767855378274654923589340407767272389559384309486431679613788037163977900221539054379095564402027502215212219001518603422322885811073751000559515505678044062123140526953348683112774998780062880737489617217275212396840600747791784129297953783493622789076164301346779723519748294956191193948759548209997123223176975483117109346548388904548854589518583571581999638412472037231614015895180606305851816430981411587048366268912186841260437374158820085679806236660570851554155831037476736960493250802275894041346892984676457527282301731081984481069793688428516757775245275205064382516656720309657550376311752344780882652660730347658914787207275149375962637042035202656216266807597765040194359185322272969059312440954983255615165231816885214757186446365674917674756028878246684558958095374724180107411156398441053442338200360777547487627859440191326060546535060475785953777437935095546124330071872074337411706060258740492142518050191769852290107989008999649762096176794794293405181650408491010905421294532850479429695947558828963546979709181524616957556245370755192283484614057620079615032278821537038170053755585440071049552005508203825743090676041061089021441957761454054952296324773067367577612896235571489928996194104007303387334584550729360090618836256469207670571510739802713958303481827124850357921098896940466465298579263687326393027569927572179965726398456703451304281903507175233381001144564646758931837373318321246735129495999783539722380297417043140504929368229891764634924044686352158003598251055562280442932470442059585615370664022336373562179323018170481256236389064898518721043982800968603101570610329530364145136159799294837014530716442603088505924105868308186174804460820053013118700115427260485500420279815480976474473846658797250564180915998369001612962699375034565961722354252971515749953579159072331640077215850924050139351369471534943899225512587696200911765962902973191708861781112565180739637027014081397041718480232125147547196680773079848650244867826127873676098165969060793665949583818928143965738438409613179350697969355890118884191666369810985720013316867451036864238672336645606367729215958738012990667316536687816557672816605504088494703921423574147999126264536969143411530392416585728485034587586906604215918103970865441503053810393694690023783373414568083716154940290824273490808249974687529137135106280511482537163111541172705405603852174508542943529046515113685736408748015219225270443084825202876363035870414983466642350832379561227008705309430495621723334394023912066792350639078223011334871416361401094269331802253963174319871626656555700495426631605360047972632363308168756536648559009167029697864539784082353139168748853762623235666309155071618590666589211707960420564807305648204488185545831654658484477171728765876922725466415129654233736903279748649073550648799744053287636187046479164527277035563014118829109041995501629553309003472654270720443615047456343164905781425996637108735581778486547694530980221165475231004017206353868327872351682382259550462272607102172032925678850349557360083487974077540041901586823976758709764611778902353150659527933818249463837627297969520404869661061866275023042668599432875939868780034714354478542839316463375818739807577903880636925269359188666433790995476345896512732546784920876401448613357758687517018022768646875722137538504327442449972578630459738655748921839848125179640791824864310188919539303028643294355228898847686346985087914856522479494379486129937165444512991962248047009904750583276706900507110019014569007664174895234060411635905430832172903418361329570665876724193354810537704230284832038100248921931496939619708623850061842451223050046072118270355453685280784117979558244032882524106293972185000984971716843413886682214773316019231366650995085690811522880498653587841232570612365046145398147172666992362867805349743154439792420055873209223008131247234666862453278855568450508202990215093997095984894425779092952333407459357761629101067154303304137967208257402829186373930033745480534094169733028097446970301092732990819868560850475956453243843385734993538978220259910724911376701760153899190803001324421460098739932378362966517759800703022948218319589466287888134392041158290144139962680098565559617623989591741854191208567505577709346478355892080835154918233677985606807999592657856981042077168756273249380709474757861749536815335527452451477800804808894094699204114483232407535778708271564617236006002728439887735811418262122252148178517121717468701656043913810883127059503397592868756136033162905323881951744808086392792854116588595252315284207315018480907291109426997473275295977885843346714655223000573149087702783949660358230146610826268994212947767777886894173298768940596517786201971191459425207931311256649440935629140184783684167153586087373533903732448468393433752365956164192563865815159496465474433298708047615457282131551256743754849224140556388541649794080574377548160404358282868326076617256628137472863945688477408220176636791853607574811045544081518538415088839984161058700101191190822990717689942616347099535931890644117778311260325141501363897316067232199007506068626259349812596168826802425161046261111548544369569585709903017730965386107709319087768889436479133787408605281008081420912341549852518008141981945327367181922508307085840598118474473147960142258561544180206832975166801585554518964152332209216871643338574997523950802504263195433664385339405230051469432227154620301000473847844878478575802942764116361527283483575163223151063975819537349084048521916046127361501838306805751016944367542218108290045979534805365450821550652834854215798473309352718047209392235987226843699998403710480328259958677303686579161821082194853477142227035241307067880013481550045592927043670067923452320499664038668420218787660809414577480189813066782205913214284776593807026990037236186504409219239622325200133787714375439401617427667245505644912858716172446324875377012058396604056640541461002059711754374192704270422071494795447119483421306945903516556130615980416054699824517073520187395104926704065859401885329793065228131118717072848123552297449040265034602951281334346751581726735686518470841324282326195072424689158755841319379021953602140041161440533614656840002207894379443939063691816901742465319348975752372493849828497313673849510772338352396077239933238149598245280758473932192326751673888006777582049861688450501126349856946174277888772239592931747527235133386762836114873395676774378545411820459591968671928578894129593018976725748942102382464054254179698684322760638106851264480261096298004881814179803679392307214437121863436830258293097202831402183886032726092451812844590336386849371829184349284772923054040011235388303185911547233527860453730356299132515643476037961102186760804379369528982971063127905884687095634005933159082592146953807982607004087238561398857505899590070909455013592051452171802666202952881725355089171811829208046131214215692807582094312830050187696117863939085374572234696255723400584172570008442758745595097128274941642600196983122803396858060554509628135190990933917861747044183304063198032718097986423810359471034324002525899777323455600895670101956702188083918926314537504755657735664102635048150086500253683594302468763733345046337763825723758243646682904398588936984583737276817623824839168332395856982009004025591199145514500572921668062596379205692909955816354808375191227626297490512509731455887385638692321405325412523958525001338483062412483134344729116849856423435808429239005263695433848657050934462910909369372821568250951580606465552701546140598462758985319796535173329216943090309059232293986272271566489221107927758866128660334937399645877462291158685358041777618436552952509215646634770384364924108728825380932596112542643732562215880435277976805628885403418396096954623612343900987012010224527723024984928584226129220195893288120289268048936555464749599645402597243528751042609087851194341912338742583951303318454743319896720933964305902000727135695151620883069406193121746874200636294755371671141154877196128201423771505055023994877953034237379788067739966734995499257348150634548905699257107208493415817164717948823714679721600443076832492309107787487060753850021831874822361246211960184277891886239712768187526772775585280833974214092618764449070128507706313895924148371829004399278072549819595024191710101928266212491469231135367746970521810858867378376743745724376089503818779402131351503673651849491297186483147305000022526883112117787477708976095055307280254057491779576597009926014061870525311609523020630977142516460908271862538592397714492271946918354662044603769921971962037554823225271226820366703066705024644629504910287437823991137558942414931079959757629176283838071870630971748027095512726601312562226901733983139595300800619072448223254901479901912806727448496278186863499375303178192643201510861831446467929278413148855757158859181380749897353929292698658815740173753852556120017531284349528427228023428097705322025240832506141450243986956365018900544738347680014304660137061456247685503280513948444726815707114441787626196093083283016433758449602081483365679030820026278637620111646330685803438986292724351779900522633799523303372365036536712673007936401730019407358485656655879683460485657535666749269275503350138597747660490536775950152876425089249727363465688497771534933739946413568645160394543008476647157791060765826855536549733241899059572296485480662356854619812227985792175595210030329508228165245557784321078327232767410243024330611235991284213376541777919867275993820257701489372783398561943355837988979807756025609249084356749849111366627846342926629391809335991585143529132039099832076692650320945077245607187455626363013270084166705872922353537268461277083452534509896786765097595616281503383050901119279064283246828341707537651356824133623605736493221793545488690410632665887618183616773148987706072228688343639883088684929811019354910011795583993767758324137020072957967487116420937999427908473434053435888660287367860322833568144949279708258077776074209814993984124602081103150532133084663237212381371907758460900972064298843000033704010078517941607821548385329887918989744506851930848466590989261302235073735167145248582779976702618348216560243716410740824005127971862262769328059382019552559911409544569101577653770685330759087391382277438977883535504418387908139704628643203027580748803199220283848975690663837984869952081578684042291333257673780505908908125969376112957418754491655883226639642455372731349310333961160571417783731085053127054998357019474492555355315344920412470169856458833535673974483803240178384441737164451774410878462887352229631420727369072739054122472847047437792937798404512587605911314351641692328992254726499562620513730800042030509184453529689009822969981229867568775129772689848882432966690056119440798998505410561990181447348595291395537429348986888513387297014601851051072694389622407813882746547058307791684705265978992426001108583197388231837573168438406849884289048322311602292436981926384418142087903427015893448931478010556844201630942456740433613010156142469259985465306918971710876663580682433435347963184732356828342016202139978712433966238387722414716984349099762004762150038879030682273866534676909840722975443050454589898777366131207210395011838946185036069703927955739585655156472732457841604281627980580579208104921709556139102656638274184313450168419399441301874082136241003150276650822046123298308783203603170258742235678549899140308962948582272535664513069227190566776849201404569736055136430188282333790859452775336076427731053659938230682807995332611766112232984372489366926726606279230124641282329911960077877520212664241807956852806472726721424185422359833182112046612518473275126916312606180880806637908470963214491128117971502149476338456471762275639997667394685672263999377269832065492522343369848384079832833483280784473919519869165369650134643976165017830567577478336901801977615183858128878181757152121330172739608081848995433314047445601643459546650050088539724664075867274766793363586677594105451547153569935258839432598112352043433270271975360177600939372193638801341304683092141175789746345230962375827841310365625478547711819331451306770239737337505115056349584152246572110229495606932992923563551214639633188029377887204528869696548687668267372648315021910146590298626259584017620483334738438411520118783294786289669665565298522876751746754040136183671476005896690983294071457638762581410694929507356855754967772264135919901307750726880935384287328078244926313475762607764312280371725536746837550969360132288833321965232183177727448093626889588198878036307866038132871738618850391313929060372642735595850402407028025686467775488218607489996089369798755322367017749339148396157703245563379416910077891445013779004813642104712544194795494766922404462459686034432686475296122716558867484110704592124836369742283019087381005319345396272196083172656926866032558818009828720344753307742168160441277811585065161043070988152784002535079436594303185613337123554912425931503449659724809435292108973975305773433323903438294939753720347401417831041711014729379974614623153450792509808357494120053210420314995284459993555650234017695662207867879774940636752402200853476587399125050455713127776842119576661089681177559318808907363262119651196228712232225794679580262053766269655204098876310392753721336770649021123429356612056478320757813789647481414397370122352352237646075645816718702193761761232170022276636339225333392131447167493463145801988584468668309638411613010046465467591409588947941880650962878167898788060384325999606980379148722862969319769273786492596337228447660004584249871021505849869838397355200195806661624944663800413074513704768316652851695175468771173009564660248957884149504725459148553541830548439715777382429295550439292036637989354390440108378436150202825143720779574289843657755545269118213297329427057766292387694437764198007382510362900703215016716523732869832930252358157632365184219392479575728606677575113057664805736821031098587033750998767010450362543571709412700541710702460297564373424108771138236756601240517828937416887567119206951216613729415050943840555200753720880139331422182497618052632673540636459612042911304761362010006265540772556245693916511351764312808069023424743406448140321284735665110042391154758821063824716735287839811128900356214939383632173397125825984816850161929987845012380269006943981014592740827043733180000358872739753915446550496174493733330091969226015450820278730676685918341807040363031532696174865937580776768830419570704343974558497121717859432188730100446437193009990433470236461169246933528098646259355273974652462804575002278602271838490359877963854910805006487552015655870430882920200204164086555858495949147724658864894857474655999702544708225812990454317510406904227138850450769721911492035927527722722846550933404736075843891929574607368309398720791772819882235820462882939157680595570079448359251746405929170274851785219343027314808783983599103781689974706180366992998552878048664458992272312461847502434910064259913918648516953377701360515953692164517261127393774971583891407621946203943187775691577211976792740536956702664771734097797918403741211483077012687455055591636123105377538787693116793954934605509797284961001729652794836566843852948146865226565880855451111286046116457633016688313963157446480750327398050637629757455995843093243919554746143813258127471846798054552967877933491638242716350922498597110472677442652126716537683050824898019807659657692429370322842138126587953161393855096311428941750119576027311775231406640611705976407817868066273095492034069936966114654295108847345405760357866809328661446680313513381410957961930826528153127955950869003891100851146107737765310129423079458693055443432777915556120351744898957983354096383295142201410458777719912563507734127339925348543209295652457781155337355844448152509842578136960823618974221438844561648081326591830147486499169160737342277541761788593706056950298310795921489153242402474694552707462394730250217960245729544222438686259816065776843076162319875324323513827678492043171707258628375071816856828159321192308755467537396991356525551783483067828787105212286877760660760008572605441995932539367611126254558180704671580082480521084239526311156617996371836188304634066910753990868237884577518530985955542115652027993694885780274532663189011915420952048071612732177772899058312924887652932548659420762083194759188272682696675476291280966831148673442730350090362493683075668111807799274241783960001950942044206292306648734993921615739521004277367775652928326597928013787155815839742203051037167010284501128834247865768690171840880659825925103189901885172442008522438746364582998208647165536585466715887811489131814558864907079248798835367120598617841974753759982222794283945463421653894834481942466765863478843811215271191214680306314852018699321763537812471383400246444208107771915516278732848787354837643697803308991968736521883554906848064310793139953154080157272059633743171705015140850464439371078256094543335082313046829108230336237443405973046705728305330080038037397159619776233054203767473456891528531293100465052704732194237926471990474302337371830580251290568351902407162333754948483751693599658467817969011223386294880314751303700059808838081903834673448437171402137081540718983320083597460195741256811638485751823797099769062356288441905195152416075782947238509235012896816482662304285623238972869413381321810697070359464535367331395818815474574439402618509609693096418744920660291864218933179535746693482839515142553044398375107143722028026388087307220305563989919633781442772829470237582885246039176044928058727028572478235461660149790316120460549847269929507476732952850756230722165873015252318345467337855533213027409104714816039043374948430062520380775185590111220503150102665182558533783114861045908485670199977152948672956497026226533501032504379123960189064645917692357961753510215823347514796580890063641437878215605279991867078369082308932036680011604465886714873627348622814943463270317032707989208044002267339487585081214819415919261862634885951704027994573199021846042270189974982590428625664565729570082694652247031840643212879164736301417090330137565459817156739945674111678120896444398124047252981202611581615130625641524793110396332400875714295294626939701557419164860216380436775287607423223038496934168328067821775089059368928151909805523644020620640727069978664213857530403057573078792331543665062245220402772881722959346308292166288510740846414517143343546061569869575816297721206912127836221234286235497664527288663605587409676427223818682001049582883464312351936215937654698247663040839091145632708340956419543551539330095766667314336532726577630715197278779853727021199363148915727572416571529495832423935464527001480398150392882820121848480524974193103724548664570205379117749794696451213000621806570370733664836310013749732887271677897319809755736709469171498938740398079819648541983514559753461257019628528539719145302126845583585700869284156638212907344674956024657108409832481236319811095089493436635629825438835609253985131461789994911348501536872995436595858105456437212474790549284388817230087476786264910675503066844740876292643471130434671665344830207168766061015846113932762182735178803740374249715933463021058715907346351342183906866514945075975117057232735081586865616346500434081840428494841429736814685518330365370031584776448060840580363105898243390869932421239930427149165399004046272722328106754658203192794008429040865335791484220761980076768438597803594571530699521182012238665999966861527399840443001029488911756475871906444726131532770232333670059400168946045469269538266003579637191578659669910692923092207558576670561737307286466881780706381941231335687677171179668321501383964226255927721491592611252951243430980900325577968054631889174464475945694404307035929583552138706356345814422647944158052146965123369309286732719794046841836124172041420636822585727331472292072764081778893828283091368866203781283941157351911420716883582861663501788637475012053388758306570365039243052345719454841614815397102814708446387188614993375521537861092107492517520904362899906845434434860784710011335702310330334351558123640469877985824217300233902063492372968846825819923620586817375377401669559595614496573545309786223294492363231323888626995968121731709944539879208511502345124523908566679459359083122772997729832033345270450672489559752196876772024306756786265432980728505592654314348209767373396162023977898391179986156833292313420774984828112882573072857369326032389990718082259467803895438013815107934926892704475651283072450646372155007209512114170634374325527688226774867910946720857862804596053532093406161559849582754980520620550126056727856371632835612642434964072677613120160256629925988724559769793934052483078755736628358890920610862390752022487927130035467991904699637056542617060386733313883124847772908100411433895345636170684691239756083936659107282319081358057178358270189323044420648707366336714738471898982759416475522454205619421869302699759546076413261014028568386050960201018955402628655071746662252795945017007733237443497816792505386979974454793513836360450840949729679825858818453440778677035762644229799171884937209204573665993377642048886041727736827931017214328811915657670043622305131486462211155321742610662665141890539305854626465180773121938876334998091806947568018062729699708988461143185451556792885232399327380047498107796837683940643123619186990629558254580888601830058316768049220322053195798368879714419009616149043503808188402182061585901510421242692917330690492074323045534375542766540396523539331120166227263770673543774210048857231908337521355800437839081802395971416330027805680888535786092406655171056285798402093208538425225317566430878236241127396433222765701814842219130973912504357263967384072449952484409023345118293695037273010701291638906662232577443120940042272789267788490455043774774158788116376431462619111016493027625145361902008903839159269995538800205353145980032235014631866905079218614376564256905963765676338862490565191003325739889784694952151282642153161840764974552944924674940995896365452231474442703959397044418517847010160409613634318786897314652557251144989867675092808378578860846219649448457536687596983673184468026130334603947700352983543171851657751064630587555422610380125816497216529236012663171506737076466503010178945753921135994421509541057999765892115991956161107396690131618963169086467542192425570225993822597640027076871328676316686332513379831135756963691812659326490458415792540638578840729367879737578848680972431355873216088518811368845782387454359350349358493762216365544706203337350171005397146155459048331395176929360116514397532878946784195414100287459704408013237710452576507687788879889977049265241901350473623131262245711963460091620660640225738602316246000598644742049560952113333447183245492564372365178875036035073529820001415326725696308243144656421994475119315130237103912917623564264119963673829875636425108097089489014231168025123970966110490317738773629175706688455861486237823050980607833954990356070317841611909242957905446353624660415161695194974119714460611786474329887765825214633248650604499041302861312151322256618268302929691420848311084440084431620224450391974367796414619184807017669887213274369001542927155895871356729055826334378398963585637296978837376216203750650466086229536202655433008535795214871564325779446367692838282964255897061432013235820856192118115323648464804282035712310171809663207505652693955018646180969594300829297749259369678547081629912707518761416286680333583138812138780150107532113472367895335217047706984361745458351588524019456211904579732059203663491457292309679522338156409309289905456856165576623008092186238759465451148700152761426250541208855646434859627704808293511005568102176669353307310986059462198419888127090518157011805036120468910891219846914585722349056882470133366780284019334951553649237457595337292736921912942583432386806564990970631393537766420176932770617852918009181605444098269753400319521002366659702959077596316892447780762335046993355330301834139916122706829008765090871743476366894053909098782114956115944463412976749504390573250901494413055688216013630529523713081007033036000531546248120581515069104443810382297558997296684892478375522128342189766137519575420914043197082404626019293229161958248822821810045333944389038876321070380461496872952884764140392969335892950898053699088012610942107788337101998820442772016627852106930604146563749764877423541023838153430006724090741724211122432744868868443626758592949410292491736465341189528924721045181586389757266899500976756851438931597364445062889944449594347849230924630434831359562886113936776293525018422503984878431994926974363453273112148144073079821253376072407346805566673580359937285745302342947559280459313190227274496833714054413058906686376085258383670397756582013205788215683122664627074562558190409493786028230058766305480666404886348094004645549969514659271990522517268281901945849928554801390229953142202638306906590824593660248298532595574350106875639264392034705706990451524863549280132499163233916214998531957186001484806554688120410911593648023049319820626556748054881200491805199449612239623909859003243462810723121244379520801790266381704907896930848856731744050935782349266585516281231284005010694112359173796563755997373725162103693311790678773121276267213009341417834318608685359038909934272730197237319679692895360629477975849758324545163841632484086590916084196300424660384325085126450716027041354301427975535363213678895202717027068868572058160230185898095534429247779588261692723099705271795378598233318396573363544440460884785334809526521531150449384409338630210027777770714606992933564643815645852493811367344416401149278764657606096793983137711240115909870692496484168672490497548501054155907025590342152606554464714743804227030133850206360463587278671705014046873725292900067460987130390680893449226430751597329859545932477021083791587959325226901273572179736562881472865297256226508903392037313703740071868580000822913783192748687027255594037390119007549104012342285956864905481518278553600554674227870956891721934901099504515963405763903809514228352993687036980911649144186784648685490225937095977394982147221557718120413776796454408465555843521860009012603034475227633002963534672380738633429051222479829755485926437834598044258268381100275798350964982462405325244669862636936468068954179368929395316713548745324897915176434617152413136522566404140331758159869770399027346487451526328209737069999552413506942824485952718608636434781177452261991894164996919733569530908015914265771515504497647167885632757733703674173530537889731802155448554919086054265798005925125506534089868199021839410540621002661027092370314415720228531928470551179376643109543242617407432728935199061238640191440338148577998431991738304710124640543816603682519619537597656863380676471806405697017265274729643676974352739454063925489445463163095978963531826810885276163572788089278981222902699188924170969714395116600180898362655374240385293535741798202279720777607793318503031174768447114047784233969729659906820236619600152739715506039936224471464937504204631169161116436187037691870770771690625631905229631202792450793042917580247908966560388885791295412516377429021178461585697459564553140949303324326497829477991979201453027188625279888262248616439169341422737333174114516881778610668647082969399470736851244962474605610994351312929192991757378256294485613448153085874856153840452470999148843769507039957635978826678170541087186136405434986456553681400221409450461120620288758999487642241759836243162459691159135362965738051650220933679963157551985084179502810864027483474201139416423056401928250596933216993207880769029307820970055266321258862590324813093456635881732886026607604161196690444495137866214615980199613859656273774238324405449349721774096541450041842935213041602786034401511836744495094851829629310422883086230323808433571533059913556283046512430393276598835226590158826409640881335116140711609181905565863113924642425300896305769763637671460553446851742139499426811884933150268332802329188928572551195800750871148678601380480554547488965188535697538729503899494886720268418592214894631424904556965756378668514238184193899140400655648321924424380007997398453644150931206170992456547940520997695595850257973015577508137422043588333714610071371340688594062239539993670707639095686617620585850067972091777588771162366656240885999018607391098404218984191206026075762513976107911629014837149311027977234148679413973603130109356031617144448820060598149504688954200019058665170869440919759169601358120991910673460697930498776058699182118585726099534017830316519638467007056484671251390159368848298473233957995340054032437727602155336623282428158973606334836668435353473414962371786700685009579603163265665203213992185645162708249978785160443630948729954188377195463507123273386043071555922927722098694229419007819511894991068810840998994456969724807612156367208187642027815280019212258543257437560314570205675231104015486453648696653073906954141642086186599366961806907491517403539007657790529905222658971885126753072761432274642939029865911605858500319513650155537389707483185678705393867164919294161334198050838017546428913291581957470360414083937797250255755078018028309741200870427631559721317421365273288525265275858742105360775761257669670223939998457353453750679584175038067407895053328818273469231568144598204492556886158892360301402720465875476178230122715657089279637246039607519790165656860026606999922579749117413933731209055257953699649857187593680575036500202557906967124995323681883303665971846971248867089335988226539910876090577881137214059163504068482107723200482927978646698726650327913496753161005724333833287654721510690367218666894864126987044944956915120594975656466105126075886604673658840373614705716667502907324154468442271308448718831725004517908584921267601569066018305636421747548097629042783255905401720694979335071291024197890318709434631758475691399929018223032341559504379634968782945500703201215466940180066012288520292776474897395345716285417135538739197166778616934997002645814729875483247818350458704494745221982953011701462046236626017390782811168013738402151600972621994247596156605210547476524688016463619775300186069183043474230579183988666968841147174090363691292827413599318624469603660084009642478020082440378984561376918503600014159599705850991970825283523200927408017344602840652676142673752541133685769810024511695819354997573058448412832632156922460226677453185607910734206413511232635583331116742864233077589079228987155261435705656073105716669737535050234964865570734092881383723995129654608145409766653475618563293723584229846159797923584253836805900255375668682236941172882205878818347571082474775451540051631126503824345614422464814503898317788750068429047863696090945091894997791238568049453428427883988460436876947032969309036496368381154134253519565635292692832647410230900191493556593813499693106253775229116520708394405314704650230281515578532840013034495723517631100844856857550636153639684614277443056401109262146733672276661049438375865110664076021069511744014427209452905680444259348503396808899648518670893313493885991748725067234093403438626381274178778061447295395525104698499904842320293707826959575751354037714580106481303915089616338890310408474325810087426900720532424458070892944056541909744917353973887892561244963048847948998163201122151790585476554569745026418479060681100140086225905655545631258908365566949465410604666030173288829536150212443591471722133108906196855478665272439076532205648502042478595607467592165518720486839914238272419870834289046411492550911860061057131436159499933560599967231536463987337582366628509228828642389165850105831592661310430566619107690615402021171419336633126276173055313244800467891544342481583497115730053811842982886342373031282347335736584011622162846953579617220387800382038049808755400938931647817881617007550912175383158195470798433988085713280638946352606595122086128412891673423853607812916201261825451299561635381761719994434803489656445873266081967996131998776953826941014138472461896252200363182060279305633851376912408138120451321655484786949270163665554932524398360840108842648780899573127742565888904304291148830772454330149575874794819293907025436243285275242649986354636912224612587187880440825826919527905994429362843780257480731498413216779094864507626394081021368004326220862476407934010196602526704101855574236989485008733930695237925981150927407010047653897321930029844621405282905995514998871744408793235648295612710617761762146271379620032870193620642286791543199349816576993877650841434779187231858365179105261163043854318429633763254379289113157015494838850899884947536171616589963343441682826263093702207864345566644052190927748259442565947437673952955289938167103479654590023012107359595933744162820936649684263137124666787624280352118112466201825735340807864984677392788435930259365156355136424619802787775975986715669922279153308483765738087134138499609945794364861185872745802816747197929447888473467532236237318043632048026964775436253133678932652892445923170104154051041497630181154081943551807709240359572007956083830608455724472856663068324434284192848071076044686451459674306599680330858109318137447661227059390273020767368931226924846364233797529827008523228552479299029506799096910615649071384629900689136966406705805377893144490536826583687421483208925766479292178807898150166379546483466021062143438536460424981189046283755703091689418615324233972229542828543350032537766631569823271929320624442103205391368716361185105135210232289130500471598249747391633427969352725809793733220468016036481736231311154555968785622573064612657762401972235254082507231852959071618528313698506679715088141468064327132169181015092192084035718134570433087060851466599472216669763152740784522271819195137778375604069527448685884989216754318508367563179507678942074678778385781524007036453041149803584547079494318479695126474884149322677221707808698630688571939730157206718222268882001818363553428006496451137682288283823906773243239242791804837859725845656304420919412306875914579292183029883106145996818192431722793837866291688742522892309374655777277715472762222803934634573666743900629449369837697903832914356299512583352506649548943517305391996172801097196358713540071848312030211665423052794093499171611964945119294740401567302368171551021672353347636123070803747013572160317292441610251125120200965823727962823720605637591894330690431430494584686383113066596788040714321551246850995022208072071763057175907207582579422190895523729683710452385231918003979037842080337811394647319168258283982461229243369794014965434475105032747959317952774414103572155462380691419025042705419774952783170653125118063411495384325730340897675116243417804242547747007621481553288096450539382424341325181096357886288292887552055678502917183402141149711826300841012847491517820283905634757415099168380246204666435757199689984607287181492188432598507514077040626092697907663161470450900685677451283555172288266621261829806723299499761398507567954244161236174526206947169419227054600282599713799216876811477810999447289166778482844319462604447069314094936842335216285386926105901355644642289467251484711196443718783193589899861428360603025180285841563576197987830521930027380685315730876519700051527565979392870210267957656896554762389519022889051438693362650500253360091266238074312297029858063541428515371734160379539538460580524248856507631438025538986647596410733347520466925779554201435462675891916533706520557758668086441213743143060907916178941308058715080982323503194663381540650296762721127695112440857005270178356955260760304074347985248419309641121261037089831784954997711919529766607718926356206784388761950752182777160356688728819269919900289481610443546915203385805871863605516198766440823321542816863933568115090177264221307409493719922405003090181978932777942389005769257794660588413412413493291003119634079703372255676988802912681685752495613958187318308799886153579143134247076914586029799727260654404806946385699198796326812908576893284573393813779578989070300082928518270382850021302409163931074898442107453913563472315289621983867025401435264924301547454499666985807860940989238377067328650426358430322350396769580881980448458134325112537526291814340040145289736719508687082458444361421652974160933765137725004673388472505248512203515224317096971194820462022208210007500708026296512790099693663431789772075601677793362662845407566675794209068648107458007835286873790382813008438979911070297202563883036748719002000576632290679839680902327925928541543386027258253725727940347052107757036812951197516451872069635133999163543367715759824043593205400771147820864618709741051637627084581155029229145537688539307395513457981923909175496516774623154481210966665988821112806503202034803747000254168845516262936400898332372604904646339336944968480603031444999938484133340859291507151259853712037605569794785733851956736311444074393219342528171705612095420612441910070834028882857537985845045918864300346397152309107759566995337671773167453329459231613834769851212055334026772975574632170727256546642380751393241385847877935686867737045786193362534953411959587216119812830036844495620406306166682184588941314661345795280245925517196274289699877834224986782241179821898562690778449515774801830694628820400611413598539378868600265112475092882275177844720962015889970230856243613359579742045828972017300353640648102827332235814096791162765812161351462046363451352385566333621662458581865987401367768937913238781974658091171071774439295609165503347022166725554621151764404208436851082874568946490324178650609344668587629707129231876684374649487833852153398798608005289726333535899243110777000975573294771480629313511885100728040162189215850818569360861389874144293291373985488982185301479955694647356930493864904510666309908529045675641757521977800041364651676668512954149530802615065950506565143278745798031339249895577547488102833641441887338987439551251472567258421679909824750334722743100586509509172950674701012274673518107243392332813113676025192397436068236260443566317536515581790319899389184461179711387938343216750925767328848396457839195711169039194452157461230462388611224835096066239446763237975147368495961781694960136568230454659227934891834508416648175727615487420221309700295825987850183221818113090727183826010626515332075039526271194828286473891648788093697391108420007588712553954697363569307912622046782442311047094115475572791870709913914075077237561516903826686484301839975808269003129101403168947436240051555226915801374648666348880263927451433852688254548545708454241505558499222495283801638309618940713413457008392156402354642568908392055966119009622126245356226563355461470457828238392169691241423066614941130486235297532527932622016112987775257721130603273421424751433637486260145575523561200815532323146199217612436295118424114812804657299053173896885294975794758772738367544818642873505427625396696972342179058751310850771609687995999381361511652379382642696799586932295327382780125877912985336132775030250483912229956129672867764494180757646155306163522431509889647015783042110394409177068021729289472752185757103882857032771464214574433472115551827957310883761126414959691479026696703209865240745646019424765508139290323911665629234225377986218695588662833999753406682742270013777789681977967939641779560354315923563639615781514671106806568383772467050178269377545772692482071651538495344590156428778007966759120020808613851552156695777926370389352544644891370121937570746694478747094702604557291747259638069064531090894304504252892271061917391274177318197879987713398247457747089665992854845575926473519827728847219786056306162800985654630759800725440929239194715198182355366522283727940694634851530944302441292569420957892046609044644952972978003677731521416205870431178528049234509287246890189169395102991374143939166380432662820996006732482828865089581713289929278013400555783858144271112834786685525363402759888727853302923189378790678413491076170369559393991556318518556655696288529324332105639546228620632826841416507931960300258277689313052093198147385700504422036783933413226735336098667702692132053717260722356622788186276095277171928100178756116909779154106792287722807482079985438522387888189799261755465790335105891758528496930463814459130094861491753983273237545405647802675515962587537188355291044858415837118522846022435106878781952677127172313465101665966124556553180917954841970172233530912125461290595158511788639325989555713582398094130519564232072182601506352487162787791668052278541171235778156063876394907942167856630076871874413987185248503234352754845283919373966359953305693871919364793265101604413387249730844508360612022364649247235458790164969898874492538890433350053250295585899594218566168394613171237643942511134960479129656901539806761492964555423618969057115632021965378631017810978719231013098433789409914352965827654109181988021116074410678268134141492536106314684150056354604677212026201395182182827103171212920736232841884177518947209338545124737723996403603804357406965732714210690306250790792966498601710183082408284345790650463420689814142395074778016290001131904237331599042408815232630187826286141851067405064972568310707800242389414028137819170703271384940537536732789904841035225897619835117186778724656401208061902144793207203373976183798727287558916123866615106979352260339794508872846585425699684064730558671832773665277591392649923526387895809161537601915639843061019648353920479314072066028337763202255439466138204167629490249279296308833375627495399678955702867153661539053630618026490845901805999457645028812680189749190044078934788208668469768295408410596937346475381846581122036026049646835570779996082893904801947841582080189274844858314224793890499536228981226515220685745100294965563094167329386022011192406213376737454740134811081538919990761043223368747593131688392795418187879960516810439489497333760000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
43000! 1572870930706231886847606962834654973575710319353107024354258719449812866190053317884825546967069175769206219154214557317433937584134248079828355122303260055113741903751354584659178961564364761224894822075922955175581141148004415438650628329527713022843947111730518885018455512020021926975619269182543949195259414910921346944272985565630030153204516374556574382467431026007656090747387126980310862264808845693256204651214636069816196407958607776370198845021410385046290535064337624130409963526705455611418904237006725405550765742087484260172696633428302656506998645804786636122952435585382081634918494126229254589928884121636288590335613902927790489267678875226781678980258359481544739595768878231419268855240813858436670723300957225366809364299834461635250241561539100373127695293100890856991325649757092558803003887580883884718601567253796901211880439118501645977589010404776746172859821798579673785139300071695604737019943252439485762238581885497753273732653355830087777010562319718400261762925571648220163238922615545431679568229769643613479466763371832087740510550094288167798972714502080967905072055951553615060788373389782229938607541173568756295648323329046461471500628640920042157585896797074553034691196919289605067853263906588345036271563325984115673140388387142189691677988458450310391870469810543589606177333509068048180878774867712434753586873797117730459689066450175245691570058517930072355045229482582678886350000415685252884642840336924576320787389819745701593279833346844727843390173527105292316136314164280729318688095432556364708222168463811965651840755550170941073080598038632792095497094578870826583540080046318599592845953619953911332373667913848818493991065133056098124365357055296052271789901523029195246962723051362136139370025102277866543468231787547232914424376380629865875735088121558138079235015623805468839656484763515450034545570617876657542888863722148764497640140930638136953233931075080362906559703785899099806408903492765198579223619763244513394587178808620492995795508857142005506498533065567870907396341915974476293868434707656687760930686973067200027815384864016142552091121791807984515812672578805677743095196854423247156663755439374779235722061869695386451444386931988733703691778875842028392950423186936272154471038829652780362207663846708216455212109195094089728009626371766822295852903305656591307450145828098096804216498731448720362990767937035327158038321928437235754186008691719190705971300802364535613942811736337661358467934004081133033809985843202947078400714134480825467638313974092957110522611126158652120553435769372198528682748497187500239316812817833949240062843825797199679847514143975236430223821800111989528759936701580933152389572038486733030736484732410751327785756566607744951876176403251549108261612549838132858615321512601317768014614255636334100771305446875804718433994769366797612487004921848672079903978507956762600925829722162676482299513200845266592917527170375001001033460268166293621421678517819382311931694936779580953772668549068863770934679450097596425229331400517040293182142198522554926694624772278990561018628192194198719252840076345811321801910047662146762836771286481785791609639877247666644686882088062677730405272519795931291416449427544448889514575134395243026064879523513402356525702391561830024204786372383669218526569931138275696677908919296075686117738985511064957302146454507705682762275260149028061618275655015843438504046815766750874631063476960372698504809993762783191108668435338525090086168893282449447751225280251988620730172019537700919549412349947214281752133394386273874897126461289825433422097693082595909771888308415884428337657505165773287118302990444799751537846495369070930042741144712695303355765970004946311796441271784549738465243953423736263132744025261978890177484240024666309858196413469944426773582684906653012867293480020311527478108684697407066531122400036870634652581995839881113771500508347859801529027215129905907829968330023675376461609570455914677638186697454580953153741996979803144215685198437821842726053110269605609704734878962005362055741694370118258425901928974118514064226867098292394904452875198857412833231723607342257910773519428312895535633033291789648166598820806163219389167391387401404954087560766654481573142676722604507043866696077692677729626895698430720132888617916245385983287717453603859504733849113608873061291257172496129969752041195727254100831562058968943767698298296708480814693570671983687100502274502219600778410724840516552559064312161441895103966136126592123632594723984015600082592546248622767798956123678009340632605432729272239844071331753041449594894182249542084620667676705268966534971387305142071482673561938283800323552477558204205212095851898970141302199139592382680277863928980224027939912257493307424943760097914125372481028654228908123735553219160701873549958105028105565496417975395626738741647876032988101052088453820476505749515842326820238106228929206868941283080100170271176730996065213648519943396095280663422486755117939069174883900066786796577384408550214628977391361944383541658999390800835064678308787366058376889043032634329614417443477722132523888605493113315459681164597472920399056411768131279795431624117562339795712232271175163438904498548150015259035736626355760649750288353333166586225374166290680597683963635524541728971199505606360999913827310475670428581438388993844928650357038348171531869589855305306048911155019880903653966077962022395674663189725329991189830158290367051927253087594810791369701911363028674209743171369982406430885389363300689184480744926645282910884536128209475453022373028693473231340229807104871986582065671706038072438103598865669819689582379919968840855750216451568556352388354515912612765515800557364700739452005149413514562593393018012921950013283294368510833823753274820828268742886041130289802272034552334175433294883695146144151138244756164230174060066107361811289971693346993970426574610111462166227147518422755304950596617241550217491525181616507082527939048232338626349895707088112363613259736391800813469302648339177604305438103446953847428056144563123271766815541567565362996609284103649093119183873124813661451235825738057260885954036324551727438929825497471702425964308717024647715603721002018452822990705197248321384763897578980891887410408668206672038994741811961202647091685036562337529517416898178809175972403666206907929883681867047833414902220500203993579765820019739285099243938828335889430566489209321110400467815470269042127684108356333369303659826776487776460638397701076048530025021506183905179888274802636737468571628474052818082666927050762724138773824733651740650911390839598429429917652968337326855999451196339847669747056678067384572467578751633382572093158132000799765867793441450405600585745373734349403103482645430245490515805370875833779240261284180075659605626101039713213037081039694064383448293194004971413758429097790841386785197395616319900922455516006318515309292365150926859738329168943424618289568498535688480242106849447057657589206643793196214542548802500790822296515719952482269231806472931467674549106909163361503265374420974166825866758529556351280464416462681339985825222938195151841518986161674174127124455219927166459436959952387123369419114274311747580115975767680903578885707022204359754339006878521212782792423857486348936543861906129349214524388108091283459569995734249256902531534750865243846398676133913956724052035089245779992676319488723524098273691085608075407939893717713530961008769991280650643244074094233213808845430219412844353099513254469607002683932994331620975863044417357015189416450158086202827620051002967010091732317673929610104331225947236087842764841902250416998648298088430284008767399324886516488572593004490389742049680919422534368372553386260160335329804945423797132234799840363557793313020784030029638261458910866353043850756997393910026450557687906518651092768930707096429648449504464953359037285452393795176635037818166182753035231852957836071540257497243034015739789159621901344885419645679293147305720517002668586949546797546849524852015221486149714863578849803329905051899075436010327416246659529696551356149558036695313498116650781128209792152892860412678852612550374582899767728590170004210154358590709218836886814934636800979926739175528058884282684443572038366832993206278994800477691620048185235955638959012958477038719975162788420698982559462967160617787924820501320355066294415641069122490675676669119826907457708947653156057245032663831976294644451562057371883061052128382267679684480589704805635207825253099658903555509944945872212348656989285014009504894427315791173136957193433987599644211254742192391366851273966963044991145255504804635393700527506859643073704869521234189890998770262568936112116905714507560398108939139838161391451105571219188215205037318904941229967661818851141737464257331938776585367139370181360954132374483276618206116147460265803657628778224498694455414663167266403983598136639424021929817392096797978626135314393690578671776802275316874075138277169894776806566145038388299416437463691999995296659993259987250162867871309952318509022744331729093676633137659810363960769692323171369552572191476069138089675555404759088296882602002969823107967398047446488226313956871797341849415817011092710436746036607023502342132625673214637267445766503827514455607625403007246185537205070156315253144145094203349093992433951069483864780297084524534390675745229551345456548204047464024271882687866977768654414434041780150597191043025825166796423523072346981242307312566024289551794979226365862926632272834278631383994226930172566037702431122028601496949005279819312551214030112603830103277528987310964434558309581671699408485400582225702406101158323989708083116586398369439166467603514687062233281481912531282612606902707434236923135356664028821829143271695773135568809587056348600728174222991590656877902477954921925498912677830525664561148332368166707412729096321542648921082040264460858383756647631453818801424931323258579865894012658311378763606061159202964246332211363005770995651762932468649076537570262720801375803196418309949474577446402557141625444056797225471311344384976823300370771567967885836745632777155972229339330757826488529203723969627983799724492467604647142269157488504527527386862535183018734405347507344485412462729018758604741777536974938516304249433581046305294886808118801773673569368571851716341335541991169857710190350178560446320056014361274850128351232607709203457529374851610979323561613255144105842917663268296764974204983992408355361872238053177191254360578123308958932531114068512914901283906917983773472859326629242099313939096535536459709098283854994415746365214040758033411987336537046828154550640209674014763322952295635015076238578342375539630447590783534211120634281031454698012403327612148639382843090613574440277293560064681301802276269496244550270488259195424755828301225520753384804803067576749253434106645251078458284877799024484580642481792108148130073020248668761862112620720377235365961826972928418061462852613417991276496005797926549409424746217695889000819834514999946326749657441006896892532144582890944231338844834363128661841096526507599806438421052223086190323763906280833027536530958844785913109754870073994677576249819863962742169740390742906205959246471867584567415357344710596339961774229078120480356775814449243722487722058250571196838483511920054851447490833850107827110196081281074539767507217430269216875080283956723013773974995172405611540667947416328092579735609521454437423104560231882557515580816136004547892633755078804206095822924070676584036914311141841436928722283879327383519397222660739026178240586210253102744156485538838551590174077119743158201869638968229580837896808873314017397255395871215862301922874719990722576396382428916149167025913983059895703027967439786499981648398255069835455341927046229838285340733124229585167586876616875728790732823692335947061778049106393825151366253271808065757662676901475310075040736237334334531760953718625503869383067502568980535615310418209146262568533644550636112189286678055290828759793628770818557861935455452294967433780873745718786352379307502057285425040697444709426475317462436736027017551410134569109282549591525827108011003230795011566125143116791380855632718482958961510624522524017337745043003606119199379233766905874239326643370076952964937235834711260852967758380709593977369532108543625644004476108232851843365184910126728072052585701100894206777368112464230724937589980582658888281540904662559795927551807993438307543423522277269534196880854897083211940361522998460645058219647703252185026657274509630565252363868945933253798440976688144791538235359006642904512701270028174198756029808045552445115220686064673368199573525611893276776394894222266939360729456700188285228178982295318417059518700107806112913385746117221324282775526050587266055967221258390410877768007096768870114249311379312921968852076493568607325919494001251825870246993358178500214430616021141192955372322798535409146982833390627724806406507433685736699199505194362772296290724378331364474183329571142468672272404936829818289194349228199916678487100499116920275801388304391162978798094049942747904996792256599024695722481685222693098618402203898438108912714344265267344590179299811799411734082991575539491582006703774480530453534563210947525550143132735046032670119629027251738699546402860059917432178372940959247248062418620413084187687883918715210094590109722555802159714449521240499242354430128233692716933823132374889284877595486531130708210692032223725891182191743162472903873825169316487068065935867989238348922081299975687099253924228683906089370714096956999391897870716319275053539486513325938415543965681014184201604202985126905391629069054916491118488452304011675459219209741770653112183811260494099285238635545931965051780927339743126625286513340844812826621910357767321679832327901308714780984601939403885116287682998599598765310620872248231779337683657713688460071063204413015756966302732840681446895053417341183077542436296379249460904334223751449150445335103469154079461022091633164404547779662728622443878496597593629274138821030185650709502576263676783617277087913335360225331219230275786084523517526134690561291143581001619518943950186452316222008486544561483345381195891345972644803249002634247614080499520077704399189288608309003178265889804742820525154953874781773349151124623988265369469963499319867769939312515258735005214443644890183046315489300343539067252657025659707969997446982495316240432995338189327650353332847690715343487861059645143177050067895579523273102601546803072982534111821034897229047655376581926778294343750787012871341351987940402239304102495144306353065222158524975255164109597267264905739719065378131266472313204744049300324979551740479632096860710168142457376302615161445415299072694488611233287703040774036889297555021397449438529355643823758843467982427511636985282151834053887608725400380710732488135250303919960215708020983313020939151812641756949860784886916617046935989611033637176101362712831931936752637736938990157316874576209363170032307175710500671586352737901388887252955256440882953360137195203194571815146990684752886750287054006187388064244971263822309339063376312753821104079337915415892669493807172841264290321748923201810463703806124990308717818066885941508219982837484742523920903204973837660537107856844615538650640764086682371243055213390586529709467262283192901290829969947050401640868492540689623909307397362025396321269693520664951159720140890685040567476145418701440005353866852064584428282236953863332121779366025037981664358435198353521657775731143129994635910701101550476820172482142793390185239778777008082291865654999998230455768693584641458847296755955437811155640869258969223576750051525680785995068736847755475982777923995815540255650760080768868530403942731976805431231209979200614012471484996717270759211488360630670827770570617481653774230910199306345912140434418919344243376909828334057077839981890178028621319842971934994949569233229138912990567153093903768938025784446472478814962743996464147461298878353731199597064616541330990336847940406492548978891072687735334362177355480635913926391264071139354543526013567004556718746525808143377657997312783430579902789726762672522197835963024768597276497858803994616062111028007033890782581523350198731128645553214765792182793563332464233264117010722837810026931064142804323916117316416702424611148730905559360387175643478392647895265297920078939897115470200214654560153078021983158440050543726733273384060329753594780526966690748316197160815694649296562372468472129945315448147507574060715996605576120563755831675644612051514781784604343118454332090545517731622429144533334907814778606018570626409699575682716873073512164057595130424262313970996230149843260362370911520588329827255484286005312699055529289714851954294748264672053796976757600782794859453926970346199378393955062550428482066041508063264174581469709574442373810567536673438971094880391288594410068068164129931984478946924594659892188726958141660950202524210790280471545019842768762723971362455432140913232030943904921473392941756663108711966125432770808286790597319673093450840183939598168734387233290310851573856191603594580657578850721540775194118922102067639232286307838885170155956606491429923239643808043966967518668428227098933672677812868345044136615202373784137364858737760923106733253544305588072977587792487485493285904021091352409890886233588092656509668311255545139973405268937461618263236254783828142079485278677568808524635743665056726212633984187052323200569998409063945654432549217377438697700220645235888332790085685178422698833628933043559813626147838834398008385396935873765916161669656437838317771761099489558070886718635914177605648241342381490669714800165341603308965796503232647316908302212324793929687360677082391754313095322650605870006178338295771001959781931022674353299942523975287458072367090031996765564581321737003282136724811239507458595683664809345193657837526486754291667394512103849576879166270356731137251724763096081895138169950657982469349885538808006207494129942843212624882160133329201220870315499794229199417050492948784824611157445881890221845230049502073886279707453062431491664552325532951046957709719590530407291903005928341564846405439208192294478298415357451696168455984429089154801689903999314876594345437275642766551683828581101474376683445973760005646014640669644451593047461199822650864416222031806557482686175833945975685111470501609809242777769265956653326757893859598555299538029082250777542542054025263988106066214356678150660960863556740917341500787537646528118098622343006582130641974573382544896968065857529702064230112746635691682961164872292985632493828823851291639462183449686157666769702965354774282664944990157284634104178440680146240451723619318120873492351573622861605950057429503268745422638014381382182190832086925561355176251440142501137971453664226350262538932869305833132518834122946726779649052747373947632267172507945780589030140172222633274147493994178613875341848742954506301539834705425879221643617090834794397722321721798229834476541359959029180597379929587675547994840480209484868072619186382971340282225099962328368328724427059621742644275102029839062648343476236868361488878846100682498454994554744922658284733557920129967307587877465614120906501373833148362181409420822515735538171791804155627244493463725824778902021209234438724658478727721969426835027784281000485042901101455109285699607327090541759140471730261143543659892951848396489035132643050330393207604105737317543050081170956691050170096370099550725270161902170639309579854834140972004182503758310994287388212862059312433110932507271369384705345471941975713366626292083414333438171283499879994728748828455515889747085301886684232773043532309987821886336378232046054713357548821066032348795216230753478049675353233706426880695601309319052716246436374164783764396020507995421673634758886387070600080877710254263277539300723618824596338464913329357812792749530646723608417907080981368221242161432127200542714904615062762086905708165606452758592134862900839438528030430552903079164928379987277686287341252828083137631698076938567470421750347564115351421949493083755946294052933905887450675508901015209933525881265266748967394536001092415510889844614907366112819144157484167723656788086533780892168991915402914937386715978659112448086219617244400361925962529931935761939521258309231167595911352453481880158001611736933819394958499080002700194952003691418338065257038526412538342018427289833798322804324360894371709765102219414486071238042258486204274136120286923848731189390409931970574023871825112063483267909113148274109390733457421409839179716393479867214551664507742207914419797562677676278220364806995080478911081994325095192242409017485970527287855090999975042045653168037480809210279238747366966459098711515448949815921733482986375146225505038634271791886959057748008712710382781507141667475956240953444212212218378420138378082492857440200209586128097825530865529344612886093801368552859242336636969813179231817860501207466704988424032276565417300493731897961541864184761057165800373096818017983715898226958094771371225169949821059492614727458467881414655561979181626318197177798872860232678050242692248229341462634676681912724562385734746250699355368020409194169228807275201965774733514743817399092118225384024949921710683645299373933378205401594767301901502566295841847578430660695840875759328244568078311748480843424793046121923702580386053977910598302804302624527384269725968755981509151649916687345021013881425323261150831456754574500063963799806999785445946832541692678660221700852205740628993218317712852701279202636647114561765382352897091847473235550686125713970625609855226794196383016053332243303656725519138231735256392555063627327725878027681187407964832676258886125805096356908953493328858537342847794341430014841937745977090634860700886805897351415701948364853968144295053248420732807721098195243561650059115977375531541455927834106020884004896623658974888081964849859394973103769632439048076530942425237039717144161976877097095543586259445656077938341472101693836071268099622399044386472966282182272508450981376422734410128645688442548548969317875398466536830428453258414085364180380502726569393111736652065779226317561873542265099726386348662796908643361034459761409373684468396090211737041791806440841583552953344998180077696422634516673883475472520707357497498866941330655196980844302917298148280958711152095605978277126586638440536408017533733553848347385720167458277849402778328443297624275143563812621092502619421261218520937624914002090561243644823925268019445110666383922970008754337798811047182642040181699061592988095734379445598486637365423224135956619638539531062627554197337195969061749997171962586123744476324260791225442720240392854449349915405905358209091417228966048927172851469765032321174063020713826048151613667260090160718449013303642129606834207913906315772642350622357993089929573856145355685566760757119355821346857266432742713031121831315547714833668924247429041889615584147239911476455890738469442381012203291417559682027715372018309162221769777870083965678434899244766539234911066377126469187676246689869736396902378070837594708911565308906952142976533329171900086477811841309510247329599218623979425254504233930674449331215863548540377275207942073282870256517140386880045030272113584342486120655039312432924359724860137075933275293921132852418461310183866340147348764029064076751891280105385768025076762738555056656048034642801902060393057401551869020508285124572017285818554566944731602435406625423757761894311782248355796747954675065352490820871781623784367720551253347101532948489418817771166011241212976599679717010959486482541799293391090274265258279531190151709827499282767123467736757516159292613487070813087069954211873069625006794006959291292094860771262591026481775419524658953040006077148173564308873131941405412690632759805413583968647754158942738070275262392143103124337779061186774861518381413621784400967334618118461843528484396850386841479265541755067143424680296688338715040212704667270479477082034582639338108210986453224038090087103985358009086178018155787915589476875174031805097326125974003035472847722048016446590830909084445045471248973823598779292152891572028899235044334293229227696094740282740684174522214085095380267165710153889311687575580530048496460747988529946787205407156273812442955897736122667754590867998301188035687807028385466134507882594975095408212935077004210143334455090253709525237127863337724744749267146380548289083686065389950688876759149689160871211175843713516268387774252621684176286549150124065575193521407980297406805219536403665821838515050390035465702494897135215755958986092140659546117232303883319627534447695636154835585125360972272459912356773769390066943853693022840178847360617353026283737960932898109250085375863072434227926670351886906161338974392354473766922839735141572078660019484238084147789972362668829275455155355500685092689698459702267939013104193910488619204760940689164671104410375769978624959202849085907853887133514357125879965047058689735515743662522119872902880022856290476725488552240838355956128760144753279154815047529409083508414407333824243838494340513174514387420687365402002922823893106854247086015109645723608075888771169926127415837067570044025192108522231851548210741447210921312275066853358216913595204079331615392154037623727028953172997154767441125130422837096908446708552494911322957393331347278855174705285349081607088347528832078296227285125281212502371337319715439757831948941648660068975371925136189490531443562794806102471100016954088336049904447447176087743527228677959125187279868999437442906395358231497671703503763961180083558800113282824766873596339777101909477881245986618837513827735413534874302518353608933402001217228464133647286978711857773402861273589081901724034834729498593690618205248077966892700306604811341486160373349644271556167284372240260848390532807558442955882398876391783281640339727394319997807385419103522139359240700762605120689146632702383907141717269509531491125918159448617522868484617803204420829228510146261558531762455508455270156603719249917166483437386391353982508305767199509919363868336834310476469481496547792381610753284880909722965976636841073564301376564263934583375652341382876490066727706898103059574636077289277488950326478718491303030477307259848688225533489302437642690873732325892897062476592105673242101771554138021288516375676774804802861975304065900754786142575118614429427218344387845032858711549278561788207677275289249367659615868094828832291361262698777492103188491676924384109598113854112152847855063946602806727196527054802553258814225588834809628915887047804556311953466489974032233464475518856031368098181623464428636593220673589748725046173559505098387797569044913162122424986760446510855803016080335038407318258307004577610225456845599336430233546196263238645259777895092960256410157804129240572225781199597647092709414510126039299683127193941097677731467814953769889174297446401659331071086166097682352169795222916670104860160911660682853517741416474918055418942799790054615672758469960994022674700009211551972018744486847185132309196838039961281991820326849036679447347752733400043591919630554279341453059329187909443622515016381713725746047819885960998546069394159459644850262150936813425357913073329917691131324252206978341108340966248285553074222492509945725447611298834748139327235461585797828218015763311208150580696659800601823544454693803122618403968159868065402989063995084345326664822747604743742480093469398609567276173267841257335385855189851654783448634563892163141653750824434670297199669598942674023443259435338473884671092267812912289986374703945187880221463531818979766693140510820720659591313182571204084995908930075978411397242690573553203122551929473302353926572829498125115293133108403797216386371402545501514605409820505175012661988574169434012538850444625605040848880936505989308674269712272368776393600221525818632177968727609282199069811098938418784786998068792594807939655349552372694477599544796329070552705482200326669177336111909133321668350904903010456935434166463339148343972523813330254736633946111355675834805457248781427205968157205003207166975526372782190990565274456792012502035413953008242587599591307979926680363358279362977045927775594924842701388495476339693877184706701519292456929761623965385172772968947066105023355720702666071118309458728902244820616784612892245103117118265000763124636341710742141951830909182319600980499076588293309448455388949502930199836275164101005401766067902374958944842641669726792524712701023927468415769719455849527061528834316880697349511970461551070159264098728370679413646569246173396570625956112244659210633580099847636985762762460970126714283032179105249972250605870903367972550507962605627310034188075325825097948198528607650929966758440722225290092891264551183567438132802931103162986131523179026525709384796737689841745180544900215931347947648962671571006148705500682737721253939596808031140064220260278839141121328328695428116464312918516420884201166419700144695429599965290122363930002880755940520515976371899372747505440180236726970122261572614829063282188613915278131044880030042445659576502146200553078213063723371874276442511731598777900648932522130859726091951654022216334459242222213283624045400136344350956428264785479479458373282950093224043790370735173472022800194842107115368667230794491430136992462187817622010510161977942499002350712931715641037748660227897760906730018014260937620186251101317263574496636006402609731270682273924358705219654380030086420567560839380259372066508912592937260289154106946857934487709544327012333120089911178700729197103389809909873187702386944256853436235535083483923796070103459918464811013947999995094492998683380093905208390510175405169133322167658102171147161773909433794394025910871593713160578887607800287040503250903923740245648520685792432258760626848174108865895740677549142335814521520876742059538949044940893086469610560778960181537155736882990730659800644962699437093630346741737904155390789396822913371920415622396729940307674271124072291989511781989371334781350523274405686169276028453484440433663883612971646852065719557227791478001851328762925789285261482152998391281455569383503567869175507296112835050036660489593949352578105034063420806658685269393199922547476112599313160760285678286738932272980721604097700091789408707166930940536924159562031589326649423567968573214158213385975076301668301473892416458512180668135038379337835839330418372534837178323906290538086566655508434661949940920633583354805503634119073379664556885848992280242547095533238413963265463517250041657320540981216246307304017295488331921400207937553824483432533757776685002057868785523720922613116270581315527463355656048279725461973414068242316291646844423376450390386695354463242893438238490977770402927915763657899450499044022009366989752286837454757856141386383161015383663089643817850683214270887435982141700513394446753171892302814869969534620366250152451506606675432527701118325611361557333328103095136346092866431386142943539152138278312963396956412555097038441853705894064344606879085638944801558609832532046237975289239460228095956165002926420949695382069381307048927199367762754521127210845639152681779687988954113640018309659900732836483726093513195825839372290427432142977498071224570749905137522589932791666221784714302181360735412316009365072392430114359069268905317938353501424688164116181442608080194376183305785992813327609170184302690045598008811107204277623192049395313406670917937065276576323979521363415657911456488855096479456202443985849594004693109914648398445716865523015365756102254974869684266674391999975692703391753526275954914037615841820511231189757191974723070295532710204375056217411569382165653477071659178402190240192983297647850020738379963193771939107596893191360382647499010011291062316759633778108727389686202811196202196009907867640289192099811431786503836612069965439286107721713046603922303868123102848737835561210406372328948198639255658820931640141428181164044772670911323826614283026613726829322397520301522810101251549855463833286023393464446593487877935809893076220679559807157195918338760312082181019862684179816201523325201300701960888406245097847740467499071122870212140305646362643766943683036847409757984926561597861075474517193851475281561230349156021999594086492059578311016297718264734540818251121135107439837959563581364585966238023939282046447914977818378320377152965182628611645469971660335303554148386782321259977382848867104219853200519677556426000090512625425747956368804407149525749248660715272009121225578764064450324987145515017001866111871102392108085924905584743700278611023969037604864238802452069485432887367379796249869805054957300031162020720895895512054162862866144949962850337925932353291817455044753796647928100391140484275215873590055567126351387660046702384021659039847702940352114831749461328814136069847142259654518101804517245001458754853715989231209416466977472272240507642770368369884715003811380086669542377365500584932636435729677660571697741976872539178587026018874399480552709527691292421381395914053648111110568355953453136886437100938387268226938530194453204694833183816546396499876343741047163859138586372623193512984034735429265925867014634661955310094792055137878473537207329554015807438034831001498595349493085188241956149940177333153815110348042427457046756415076030696091175152182771192734640900009118863241392092764781516350728001634172474315479922636604863330506110658329168482766457527157742692282253972349020590545308124889373933621015909541803886732758986553947719386359318237892163494063767945126945884761653220674921105857465878923485873566671338647070920520128409978756434828600451250470735496022233874114277930065057647810282289924695084707041408874815609104480614345214804352553777615730017811047639912103736027870295252248247236484917456692484381415522489837360004377853899437861858244540572395118892569000711583800343836110050460013801788634140634144631562838025627545799717318858768057848459804325599763921876226450363633035446149508298371003640792894949942528442085152934660850540510536009308083377416937019355327759663103825559849341073011488754296098731997997934887216325969823839424114659885534067108782744601372082607777505022670564050625733556208986750762464380755931860303575346748295035530713482007657999748380676667515101358087853055602344311616228126619246907082931097564085211132873870001517678788820204109791856658123675584225889833977297016964394745951509950712440271480971074715426278907901313216887133418957693998293928338994830240663531580982758885566060276652352487780293578989239002975264795231172046267646948900793352750778353624981662127443918405517753836611388925007358966147188279926989944577906382750123395562959820683748884029917585913355913936735696530588068586027337908549921290296607132067211951193259118112564575542131904873792889858390771057644683717349320273834564062305067816305496860412461687152766535085275840573417585262148893761237273794664448625616516854866807314832900205201220731859815111084453016020590133714975556868656125508396540523674158593439991703771029386739319270163161516823663341843853351152614226978374362894094909160635696450262211461106748075768764136963816886264211301869761554754007612199532522738820178535896134203503883221726869115985109221594224561617356441663855868302281214570674260512706676872059744344400061182260157924962259178356997862115709762540356675658042874241544876650222457401098365946913623139027364955757978579053992454402501090002243406206593443168443100073035084639264616646694663953188569666412676820067931680514160631281670976576046848719638054947852378439571088463398637110580891508974196385268269479941107335271085000456969663361929469880371654859567329230511635552944176613029873345503660725724935886232298704775818752093375174682635257638990651619165263468517009254214886668659324110929356237282958355998103787992919583549963668836128610126180636173533474336359426753012655098293669700453222318620948087302748509019273426080662334743144384176114678630900282839164988946504213547853342950468051969758106012822228384373491769759292609888094485452226645881196336932329880781184818704734107007667253522671914742673592007202061642519840334089094422410968456622740818747272227115733624580276868197510572241970880974962807103348248845338886168971195027161378384595771521500406135484236471738385348557618645496062495582135601868520184587509317626482647231612881416101246444086501366006784135769031727798422710021211822842835511476140203603289202744972041447158936784332197014247693738384056368393185014608583370055067941171983661776495217645997265544779153805553318448567962540118563252359376660022774112517431213064743691299294338015341281120160886589792651065519153834650242866356015821474607392232821987517426363050302527042255217287912902785936113813025873038895702953203965880670796031622618809539539979538155441829355936217156030094574030253950050586075613478285461348378783091954720391266440323923366173557217200785701310228172756826271652037723885315074344769684423436371883125429878585289332610794878654050998610170828173283146791352638702964441722411829377583086868599131668623048982179897153513908204731649365749751825339056396194328791492485284799271431288569767022377203085522706859730736562196048364796097177022609753769148603741482571958261575407343529447443949324276549066004260609175281903233961201647455939049775356600009264733063062657950371884052862600837959069333772481899416656862131492422608649374687933816705681295817538704667843281471107297271234539973033177038007990830090582243809481024180913621782816404416723256226419941359778589867767185547680177644491780967451213156369703319922061001007115144933753931202192757803720295582856838921594282264520688359136651888967212939702554729281194428798968981456760619581117010373284607368462081047391671309185286039869845296975152338745614086215695770432173783395127324826846100605134621852631837089619383782036838322848678632012989903025802204373847374646619496778654041580591721825185206726524077258524700529568693653640402321146127865490836133475082097447711062910223755724687250009741299406645792906737360777712023522810679095346688258324246705321711530936592656467701545055916906641488086871512166745799637050866013140938958855572845932943489302667433773930139027711095602856254053364128274312731726317653390959079895023766371523206384792182523630625350651217151617502201158126970628991517686262086312339747531363918816868567966033667623373581901344148646621673776957871682542897790404491107145533870510023058494092388193078303872453525316577902819281332293337442637792466574210233169960362001043007986450704040761705635055735962448277822780442438420044267730518674494729812063290650163976057142285718043686307598941751593006613365718599045480767498283810864506377266421505799571631333953340959961962290613059154884420716727877851669429611417918645805570258577645988303785257049814448778805023619686678155311953283369048809808946479938859558279592880861437336795691209661250631125052853654737300808051000793321551657804611381626850917621155052719941825586254792015488335422518319909269014109500247568786023420223799080420843980855294161889641625116790152731246383701883042737525700584134276924928633291137168934595245726096911532535036332927021846892663088437653447560686091608054788211354525779433878639420467867791393825943993891291376989419173455978110901704645752819672977629188876586870031422759691701057397027506973357440848534000551341359947669428055965781189600487556159709098301878171653875470989765277765561281470742231784486020580972033896858275358832340933066365297482445237611054899000721978139353898461211497555500285296282275108825000456617278722315680526678915626935844914293983669296695735805783924448377924971137230782530159121375904237459092555691089748574778805907593731592746111579132163034336568788375655241936002511139076812224749565096673288546612320826213429973431518409667633288877712194674631197672361361967205514327347870321127521929992615515257620586742113004500630444421830798056604433741899232258574056531836331193007895758624851386589227333619360483320071680866349005256191892340272786849448433450512188216109112662114704625855179691698044615147533789307904758592464374433621854599321238284363899612396159093636883299993164338205060538616540698799143746353007321719002236636750429657549860226614049988323860948599757939079808689997955399237916783692966267720897798023931542011102575308085329522315381591674216658653270346973766056695455537327819882653994755881305700865184128871529826412580554544923149329411850728658016127932146547131306905178057563671553803889042589361744479941516789551170922162710367243366310202930900625008803837108821380543914875175168348359755270737113581079488547031377944633121318456486346508125307505401695845723370657924174716930790150569006332206719204469670788372302957291474116157793936937092189673749409860951319624448944368364035930155672460929726134934716922564591012165426349527940683551794569061368723555833665590954548006628746504167265996267326318765915751243695467603867448268039631420591274985492485385698557967854888875451672318014450084792539735753951796910436781631248762026154804385376697117077698755925093390612850168591144427014182757609815800160797662588135842731406913025042361937224078583832076753907194149974993690752319339675555256812524646559775044295684376737370498045502489371024285585719445072760578982962249400938740015707196079343758424583503598850524109364858851357222632857419378562016988619491266757791507038935458731508481551861458158447644433945254845359305666172649469856358351415885858593638406911821330503682731616090681290218745463456014220558157873725851557814747992542909293787482326327601220618051289846305728427019754518846173403235366958972220574589081427230454400769986976510640226143307054999254966798376520984237335200717108420221032229118982224057348127108282095555585244005309155245772932547718619131659193530133615602088594702398654051691624278389203258673778488918532670525914928935977238124898497953627246483088301808779381093715564321679264130209448929417646596910503543191777081974846706984616455029722997288412228302696567236178485530750863656727974479967234122154030712497146285793181670051828489797763519937812012407483726160421761830450905388430814413615842592927111135207229674595475982138390240450018403054049703048322313546747964224828996475807813969737768612099447945973501862735966484543822554552344526927681095270335446997914366446405859024357819562724318585231272857601701166057478530297064318712854373710439633476689754224656282539650418807837040645721001544144248998683951683797934234122582540198681932944694699498800728902785570493414542426254147461486807992037956063126551382341083576439980802077923647149464000534666293691699948847072700642724202622861533812654565449480332115758461348356849591094623000982138124785762554631385651767524589868775836306397784618310666994187222207901973208094934099389791150248709338101464551386001086495445036839792142096360527416159918979760180237740825494004653442567887779405365666404551233304659123170049260491773132904225719181991863020854391972031362008832212628780348855119482362508962460180900822659101302669658246469012501221280770294155961420936901880562249521395514135454682938403713528476953044387651340133522153315430681105555957969463244762181488378128134480567234652264685984729753410059289745640164747386494701969366175286290170326612990264649489978183064332140909641057502246306415728576317061681145492410459447135410076289078569929498454500415224350109187807405966294358073073814101636014940887059543552133337644269621874996457687312020229322896105455913526836184903730529136732695581038552975737627741565900041629509538406444787840117144579148623303859178867031451545400630309487111865254769639384453834691990185494319596229214897890777841135643249654793260400626848017887697275857475175834231137214575220961398804102536513779918299757490494424357769220255270466926139090357677370722980058995693558727533304458905174297872126967888557414577790346309806907422098790031590173504126941663323267782525729165736565477813941888115055932666887065709553282741788994207720981799261770528431405365139353313353143746648363984198701585597486593827982273735914683153375520004521595298157741495488583418589401761434996878350578096488744080925088414105144306007992772591336275417594677041090743844666524286231099023711267356174878912104814929836424877824123983911611810140353238004238764013120421769882105428570373140039102877651154492965247416849440122532021819785141692827997132100983515418406126621147077322959384860249263394409882041037154980522643534081924292959949469939722948016994579448532590476321465384697538023253017232373331232988241149634698286402995664124332801810469642109041764211965918150912856737313934807784736028356038007545829667223002925975888501968181879841753064701608314327653098822619682666334604401955475267782876831129271146305607846599811564768421010919715364262265410575825973394317263844285986032007908814939845121857907575242421497393591145580180566000503492187527327013571990349796014158480170895215615951188995340077388274501305065456885215256129865025535560527388065225977378177868803457826155821035196372606694790786493454351283500761384779569280894143896218824509820410423855521211222894524570033787526619398519704462025316267169740172475977801896101444061889282627460161318178857897826906749191608281806264431947031543523273980569909098300732648175164921223274733602980774916626721633209353698406093618511940422317948672124752816686768078236846671801970219805626180001337423153689143293876782484180616919645797303117643497140090316503959050454271296535445843168959984166727918719053714064375903665124359551945427626092525738444368163974663758435139163512909934927778067186262014905436041017760326611266660236234182751019064097795523101402832930617987498260801927171780949151262582569746403207035415982479950634262550719821327048250392365195067352938944685528181230081034982276588403004921386171404235037294980604556958215846140801970522455607643614339236822699958905376207278935944091025777253457290719678247604336115132977374690337807112831194470110774713961799772153738880812248663932106916836119177069704441109157363731041778661864786475090091317409936834531700929081786510338481475112552314409069439039671254049857246042985606081453647511832352424660719737393699868466915674881429421581817326555533830194356327444723657740396979790560975748445939321474436773063000880761299674048209916149777272273715242128245880497613445021793957999383950516622008786229474269925295202106069899023202024648350312519779740094070551770140033053631267200272959246723567081709092995376774925992617648537030990266255633989795584404997808575655861589426295567653494952941647154684275139907487975297190586711597628269205739031976937196701368399398720618789332918938161816142946567606556535868324027884774493285474102780969469923476885481479331713885982186917791020153813421655892090965377558416830744963353953692248606783060218522557605765161909908585273786626384390639739970139750796857804580551248587590982334102336347286063676290197701068959975313544095434678131681497413933768255589547471212919749302873915710842296737704262709627500989241093383554192899502126594804065232273693371740079212912877746409132831755153274895659219214105303543211248110765206328118410290260988717865450784452967656283016286040721482042835026853263439796733729879720593607435739268566952132394757101897406008987210627009389216009208243623401317588337587958850767280842794788182958234563902267116555068696720813119652577198523532937233598978623892963387707130654998209450499562226104684203212741845944097023171411102383128830546071456921189374169329667321023811056771469334259581652164217840442161066670511441373247474376555069242534885242379684011587000702693288426129228051929671944122532928488532951620143395956342247616488074906834236533181959914405948634886190833356024331435230686256551677184600812455330364869795023251316011159995748423221548556257425325132009029663430002862410818140492392604433201602920244431722646491810537782604770525869945265441851885848406724004128740082268713646224431560325542215214501097426165499089463929731329265686585763750626435082570776119355689667819882484164790058185739566123191571200634097390595873039283007401133255450275560021862741760473587701748989697229715300437234996657866178085141314429675239861241916881078424079139917359347465715837118346630469662736771061329630960944365052443098560262683991012382508579270301451951587202841018318189119618129151572815660346035822310522465047335555913349661342146678362429750297873059870997601801559094553647268453868776038919123738410760719622664838785551252899017616218662714544836527229785134027855751191878260781814060415064667666700798515487136445433965340828427601374231788367968183577914987570849938788606977313686669602429357413409429786458111894522151076314248107849821813140574289964186808117211615617380011809602113429610733811755764120953410036259779851936918206317942608736861260757646213203598733480392117340122686645845359315707542885467420240357380900452562051933725841744133823939700545965712334609816853983914701341457302119272581430954951082906695180005773427997244223119865392789967267057806955063063610360012567076037443942454292284043171296336741404016014247494848099846862542261802898378155021782881192728288922492413720133202846538510137726162670927760654909535283969762439017856461470901400625021185231739670194290750709486939555352425106471741012403639123265977224330005594045331181938919841664411777409259538458339794611734632505942660268300826053018882553948735432028416982961958404149688160385072446421678352359311663333398917878084999337978663601950886540497233840329653935673932327185494405254738577417022230530029599933664884099675847169001612062095779448712424168824997897463481373173298582768940545913003785656794339949541526664743740994361623017124741653775468860949816578157296588199223581754841531568911262184097001546861421313614974473887625455431069877093630586448583927912495741649982616063004887915644380547832236360066669114078751293340457605579027175858831021827210403091426388115947608340253138565171853333996446765847555891165527054183701951895757367810091816369825729010543232148776968451568394405505987839234086785020319572615670050662710568095667787691874175495043428967648856868824826771508373053132825493762430383095108602067268305175051596110258074609793379691622768674644218579024154553491530806771635906039525243546395383466872205763138819355563755981869942455328568978309560768826945071601065079462216012790193499632368984766806137565436680979821309913009173557645525412531299812553135471264464269513158707107091801253726945040048542959608992003876186153803188458814993890890686635517148279435288806709161646865863231801597362354996394331813361496758635188301503916695237452257635942265661810424340093405564300254528791481357210707604425181685583513199303026857122356382962430194733026992981954806465019690151165474766639075852468482962805287067596121163097586397995026471540516792545080259881918884500002119293673894250974547734292855486388548125541886736173545335592522237362697122450570395747249648507554046864094416660565893174981812965555179302672175318937769833458932625885094406626517544837405832384179924851077529317742849613011300266598534372086348816104739863090490748082305185350892425344558773045185849007231845495124372622823579461414564255240846079743224622334661631358384879561137444194559038117241454363502590373604141638217639606294437293936750252893081955716232421762060177015771903624210856776273956257003802208552434404340597118388857753117055730810087548281884058960941095349835186517903068044110877042604206468218605261734019886833101031954099255434447767635267688851335066969908799813869667073748894547334803883943843495720035894084722318904234282760863852328823622465775908121444496061266896429381019018663024124432025783079491855884837878534250387560874594041799763449478475375266495052874131124780591230784543145558279776963457100092671992270327311476772524965093145180330682880166910459484220848941480860451139290078007406081622770093750360398084185200577575583155655820507377697445374288829021953180507052236496202306744006611024542388280388809540100983208802554205178409767507932161886807121162155658669420076283738077156809616183976251182385597815835808086112178731456686863086276651113467540921871011346479518086145860535483895795271047396965604604201161892848914455639960201668316420024207532301622165970083173408522464417961411526273186280500277711846521297068500107949395050804626687281076320361799686781153420615104570682024348930271737967503650148522171290418563470621084855573906407620118786750027468424960954296622102050861485277660355508734164307055479443387997174267427186900378624364923097902742889152984094063912933009936530484700398991750691209455624066003624939918836084411579685613375672817600636514630757433260259751017096951714917762804861618991931561269245060451926131115428869389850188645791594234775345466930163772560444726235093500248613857666166049269758766922473283356361694216733086268291697638710704129979173766861882079257075583726981911148663465534449204536017654805431743027245657280578537671195280810024554501452328403077410834531606409722537968474811721341122443538208829531239990121390499203639899547740332657294428813456506002016588146097155169783631484527773504982807940250161736095389856996372162180400992897268178663386175188915418652045651396743217396861904170310392418087902808733077698815873102021037436257200403256379381114206258171899304487317231986625387523329725564775308392327529365495760426765496492567007538822850845716115039682618713447187940107983233063271379761581279025193490225658654535523321965233416053590629953066320195178312824324692155156604816926140896831758155682811832760913137234917858020932389872153494406697638755201060836059169580913794983988991618885415137089235913139075563433531011316175603059863436860208130129707893336976599961022148407775431245550855078162599831311946338651565907482230588118090880844393581963119406175877132204714492955085971226776793329538735497019849097084209729627412640973943584032384872612199021485435587193168542761845903088247188008454340828099222592152727758470057118667550947241438872141252079011414061119018918482070251715505573712862785269281937491640887807459599844025873124195885601480049151040170851381624214301521235112407326231321066331384544074837624227078415678710575319473634157865329916770517419788444432122733210922119590767883968029130044503137775561489511578553443959137206861666629356427353757569670563603334571804387486478878259156626733471708831979339790847657092343072340992954271980363992975181538363572781312619698259987117384914147443084825560552370270315895818543584944356324309336529498937600739408472564333960704975935464521422496133831992761384765187371663534704036832790065068267397260097540965700543510636379130400611838433505386377781980239049242477275796176292411151124689244818759064192212253504954576669944780186959802375484077909474987947413287900131869917712461047150065686358231197749430172566665355523537853037523412489522456723869715021437468171266466249430979360534133308776409128089050035696110054344752473650795534171878538785030014271593761787437397021999088198986884581999341935266279420593976523898891586574104983406532149133031213757653407077715748546725221017633818934915402997539279379719521905937918036340550163197308243289627197335718860485858212892990341021555925918885495800284209995027337048517774339405566596591374569719375106967680398122742037925838732160639772367828426182421584149730247139936792878728038869202587211165447404635401493486178064686944793243291121408606281211383961408586084353453865306485815845597982839796985830770107983723060686376354692683230014678619808978345642202629018570183662138753264845257554732838744978784246413026661872613673923286147918888566307548186137859173536540024715237332180705620653407241429310371391157731166613508210428845759322519661672387393653255366167631788111437905393991232388192940118058987872850241527038317469523164602186275503052843095747719925332975300074224067328670808862725733739461877152489338183998988290336368812349693137010047077973156096877858398678510952745029755151614709003646778149450327856267050591093490976599585393552155980658634691968788726213521993722666917127498710262625423339911880973071466912426083479555384186490637015398059160570652841586192731249208813679901858582674198172739198845837331467845738873410433729177755116198722150393001692501951929602295277233410233911698876431865210894957622589746663200427741864177083323363313456059926059307959692362619829749928238421065855830612371379726560580253005068837986343102694205428620065197630846166708416056591445957929292130704879594985552601582514287283163371702485021149122137950651498316927605882270181575456041348421468963978947238173326649987514954232685079537369183975771737404079961186666572322985751391448936598942801501809725662542191372284840674782366959022567627985229200531107940686269192220278519319102513472404471364432344999590477184565196046095646953241798936529073168039895517249452405103377627695899853933522729717226644156236371452344290732153862953768531264216495589884087177076518116079243543613283585250277298867712033496423113674524775370224528253668693880275816947594530454203069202514640742530245849039621766555358546588210914189437847190753142732450932558173938893403967985830680857622473461759298583263261300961121480607214818278583513978196343156750046303671377412185166422600299846480470431713571518200935596987043684047882269606209352235775210670091137884277892857510412327678071632626469101542299764458598366390565948867111142197336803130644623554345656433987672482956957104398005436702936907124610477210620187045095564475527339536163697494152699789701450773189065959481227310839112146413755913492129972872566612460040354393816527803280533446217302965986769460248785912195248792121255869399565695689913019370158723266417836540484278622984204830929924755586223745875389391421977473185895910913309898374178894228931303360108283853167348740090612144358899737649729098443381897094605427268253526964200746136037934941240778578657976879474062283586386219777377590527286654536926181689695204830252738228714827329879465428796602616731433123431512089875084459697157632688464519930585496842722585868291343260875074334629869726902347498538194501026861391177837221591593908760656285015982867736802387272898934463931101546605666632311150539406053838103543466559492341825158087206767909399407465845717798959029292438662346707804290161444316308328997858811080995524349145219108834996182722212209836622005676675863766296376855015090056082785599607992298500040099388164655439502962648917901528738045759120072145434500845560096361283208804766276634802416590545285220881344711283390181293492778660524657772810814266273360404939433505578277252271281863401894725628718115659559646051761612903019548098632175451402410195783234103871681871219844343868669400311585337702538551166503257985489543172157557214944736470178522746932905456194708927914200121560690831348382656714645547154235167205711034381074339158448200966005254936644543796278375518613843646937297908080406757180031243904487980390250685508352703315628266621074213185607580789961974023405744080727570721170592212408892210664306186925714636492006780040960213227909499012905379061966536016297852771467525671318335138952827196343851648273143666734938167957394866603486605542258484819336034972242764546863131608142372470121172659117536989690690752644925463329007016791222627992739915261074074668550864533973850641075522206464729418988770247429520115194247067670192551607735299687020394807469383066951320023172615755361197305316565902821691446791025481093453806754148716175753995043955931556635959305383206297771321734311235697482904490229655939801231329681853181037832377558593539783863886755195224871368029775973824152314862356988008274418251708298732408312951162523398236515135896011637305220563455273280536429107736050569953118445998030581764874468763481458561372012109666796227082037549290543278282735029043327453711786783484322229603444079603889811654257615084411244457502400768102244195463479480162292912416560009889831123293272423767973745252901145864761603257782141288745818885409314742616468634434305112437047431918746157233812350646801102919087068284345764006071483381914550159217927680232112205298319162175772866064260268911441285309538687740249665703727937454459954701526080366901165533846598742804436064021560029520416149086796837637165807395061852238465297974881853381948210533946224058827462493812113462825859579081946781988285238136822258670917951523688978987903649298218327338479417326702885724199585293888295210668728775180283403648542876026199017021763897328559807044525870025781599389301399062413600074699491165816090955631691763659547515895220646993941985663418687038008034116567327324349882514929628839022843659715738687796785391948890905706984633205461278323448358476809228526526720567264658420593586009594214827101722633476833687878688534032725837894456539480043329118264808452921670200470080754397224291061260081702504242596237435390351630741532576872122030851635005131808800871092848751360427249504661073540202650359763202689576832489985651018086505299186915389749473112719101878512583773913268902641824652365733504335249767929186185467460530146332875940892014688581347594204247289119084074022112798096871516922629589660817998092519353827383720392764726313880870839866305044090858654986691306519699896889212721098993184399424428619476414757692649533679375600858917311452448853670630438897011577173480646820122463487718729035985973508097798269069507572976118099929853655948027216183610875150922210613724559312879922796677769896711814866664033568934952618182411382655570057240555386746829885116992890935799855412882636927560039609294554552297214589916883472057101212345078204036774870550887326757044549980602035021828973702495086751540265766247032765316308428019638373358343627230564732676183186543228745586778952603274255353859117608457014564847996598138640435266698836552070415895115551934551561407766997390045726234363715529023349716316272937732001735995980611893103020490429050413395262980908421745153434597782427921829509678545441938901484943492412854568353221905543120647219427625445697001996493447896886478631004199369514036201329870127195879043150102006468246023965609048216023583134674786420024782907037461312539942616692323489318966063115925887232712270237785027275486270586887072769553482999256179546814558253512332771680653342111154233340554315177759697505532896673074470676594939176614374691581434354353756303020169680683941803950154781772701864430324891471249858766831541920917682764583901333090597283271717734263792788525088996704710747723324084049031917449286542284838721272914857938845255235050898569301177779804111333135414473450598129204206710920122064183565306720198741254838579402446780825582096936301180054060988361927400804232393381811601538549359438114594722686108477839075944892175888404649889154714823367717348608018413994922416230357525110900276732036604928286498396703806670681074388396195475684620263589081563769361907703791471345122830400994607773636029488436884266912362263933991127686175564798462025991252401503680927199791057960352239371201909968551498270900792962444316938520072170853376674149378055312677399140028402751910874765053958992450770249624357099791922688441657426605389587216808140432800325154798462113459743297437679138078264092589649379287851505486071251731597760177870970568169742502163844841150580544589851436123396253573496699036624282526987787080963344224824228517982634761731863801237701195892320200872179946488025884087488288928413932849074375810665719442029049887793499120806793453482303902913632940664486582979701792636150903010405357394402001120484185622766614927453274236259571607681780945972749106942056371547954052000099815147706267377952584671316536067855481215927566497657853953386487016338085011183809586044633592437379576969477902942166631515038482247921850228722787169624900439079266736621540892073636808287603910137468434178959631221351356416148818046375847924427757617669148405981244091979793251538393019747308969649055904593657211540306471252307067386148333427724219516364452815582398428707164931714489242830733528541490116510237874753776099692131604153186588785322078644278770288890055457599267496677180297587873820770624251769374369472888206206523931099217729171677573920379787169546535744559230994577280774846459471696026371475291574487570640130054552863685609114758721422323912152859597668671735426544886219354626578011274584199519300487925248942380976217172535082851119577802537778304660629617606435431968319846573386186257718296383029754964692880550634608713005475177419827057010570026621940568356731561838601745216311811085403114784030180755760854785589851917668908673958845128740519044070068917439251868990000918844643493803843734780633203172782218364634175004187749919113627981620428446902479279871951798325817670052384511498672173527144104605147351254372869328954025931014935479655070140136356412004556403899481515701210049787099150730330699930347076437641102452096693013806034584156270064665728630294499677229647267759036336093469340388604149872102165126054359823515511956557311303927309865183862974040496994468947330588286613947162205775661857815908179101504032666127626254929453836780057022083677300255371128255517411554878655200740809932189789141505418552682596178152441954914458562361933637625885554223400329468958323566227194002408359133062938620166412986092285679830547247524780141413219826362073484064924087498841777624620243205219748560291601193733674871163398872434531709283080412045255114299006024374776578903809720331739570412451478596962256726729838192318463998209926457441024639342645770162356999791350032086544676539171956687619058627547771963364885347205671354738984615827076197334399126244850078502895506416133767212950248633352869697728376531599850687539447483334555167674381650575205416091265156062012511718556110827686136294010985383901804661720258139234404277223235386996580804698844226309424430966594744366376572089120380502108831108534591397198792678766466061150611013768312033879099264660484533925038300251789972491951519147115248315622318981989196769110626417611644574040330929935701131380241000564112252902226425466320268224183959008345576241112583027582617571751948574122399947731026744443637906463455863480660048325757246262402555242716792868140125293871451108528586554750231935408141464703396090026990599129700300624084746677374982196414405782227583873822826620060433023467440334417841274555363823684416581040058928119059965088710544300638955131189738728206137635034233005122607654185976128689230044815836211769295309291245504499278851996279318597996476348161456885292918844628159559396684845322258830050888189690838554659134260636678703557943819728747734280060408561922524467170698967270904949285156161024729922089497023611980190148094747291334157924440407540461821963461074844848671618605415131919702609417699886775776253117330100968855138146438699582447280464378879821842175935612524923194709289420702904088323231328550921027333886642915148596532447005286615175105163779629076010178102449593059028467495824799376852724984582469202302106589582451165563215351892095714650978695296710606066159277280942236506838844226693311191850126759262897302194666891624776461213109880593405165154754093102958236782071238566180863817859391564421595264898445033401357701893719844935916075328987740663992849400254256633435900479986124098737247309875623110574973556290011758895655248591808988728072165227635192096754460222335139800012217659464195505006122821713328712797339796646242063219071936020588586429936736716511122399764693085200964475987780084765472361155042606600330978192048745100340751099813437149603330366990701002645560427356586990712861894391661955789265701433517383664129939085902338339430066782959182512895361729729362119621960083619896857744212584195509259206802352834325348416795414065234996931322103055257407576590674696762749179122972347848926426824209795687725783718596513580341200648419784457735118901964656183988785852868945651527017630349034015082947069152417328642899042315740447595126486687907882958026125981799497434273388747946080691495881054844561679357936704131663404332190166395455980306299050513014075468525026406572079410225694778124170659405627619465255568021171281813881521500355050586859015627928203944784132132311638185380507292931123652684159008452895926743299681629316512925145977402984554952920209687985297486603469504726996460261148856788023817120908100841476802083139447013048431836870883174877191294977978148997236355640504251042966693701738435288455669065550787333327311872329964898160991430436985792920571312113311828697832442295448916271729209525468289771415628826620822442284864786966923784805427558843430399265655701234009732650870284996116699455026062699966192777195696990131429965942159010471223150991938045819133136334591533924946316877790539187075875263894097209820222679822216644232070362415885217186580806414571773815250572246968382015577770684187605618061423663467908163967188910448662219141248124038796561103254134069282706581755211300899279699572648438861368601886140397877353965326434963742146650716780660617291333651456284273832476830449322397519634530687611971315888941907942980495411168337244609951009388364513036614426695674591434841433129603098544283523560138247587836216987700955394659944780231789740011097152346723121525661910277155230872173193667753775023726931678708804048513088010269780771694050191200239416669803132459272407360415371912842478883609740744569201741982069051653337053551341971916446984621595673173612563932967185325580818082184238933323708345267095903402285302998575686505686716100417752905614735613209841314050761109149396391729647177041229397842263305840047444078710848532495762314661686015432228076869631784988984483617129181058011423537288925888070959376439181180606802745823893118533188614450917806655549398446702696837884050653083535353340432894375496793755801976759671745546958228198726385772347254831341599575326279200238877161706413164750573944548492328317448239759072071328244294531004618065905814886618769655640159572788642205866921188972115667489483904583470866009705548803849240158908461932820229367885737549455531941178155041680439787553221219058794337462008227189342668171459024679316633427439770516000024651386282821991412312249235527970670780559835712837585958992846143030656703925090330562510189767027477111592940403197464826380716520854717971439744755661232224597177630179100075569770893064392489389621561855677587653748564015312343566006312980624949289683782988906570486775459623087989452940529939956446922664769786410070713579093896510639915537585380288731032594560071229007454833681671783154884363463747412959800572567167477241481816065572157611679638761894312621333243915174173310851439785581818776001938987098449147219205766086245542471204620134434689210120628837628439505998572462971019094274905036284485407716619567775926395113182677064129951895971989154818792337878611167984490165547391067950820589347645239331184878240083108013207697863735828125661845205203215539671156491614866070224420097427774671172199152437352477124374774118700204758605227440930677725405630960291403408183994963940927247798779721125230414897673247024877860686480050387220040296681863760675700099204683044987154735112855496959240959365150482615184670763518938731422896893269469231242641408821268654152251617206947102148559032566537931017120640399841575854356849086880732888547236888248820218083234395409493803819179928804856260092511144430580084716108837235723179732259057882427284339988546010934228402690189931734574340627201795665626201389705134073515514101770385709378063618253272766668846553756826805824224258732596922540917532173435752710059183170546408273904577589232203238566636130810076206569561265707539821117759380002131964801116553511642861838055000383897206347527587236802943037864452168963554976511265961815373566548386797577956332083261190807015939601307490099608161537320899826449549742582391313837258253728582984168537804465561487857633248563120365029220137344825706579578805284619195340901746131271509045104186786705551106936283174107497870704458917343714406525382700055242768078132712035764122811891199915715425871192360697854505548078565243631433407862254564075146796339588947056221883410650217729884227259653570452513987394001310426907804747580932423428543979232367835557743819523330029568484004792397923558697165194950794271329744349474980464431774717301746203119564349395369482592005466621019360436419749931591335023987105069954919945325417681368657718960108294639443961288477384974125086970856969918792078228953271951061062387823006326110670314140438328088724343009131536503930707900888405010342338937865014577751135198659190420489627816133203478294203637051735621390744502862846103701332888893134067215261094009138300068704292999145351011430320240372688173551605047258359189438559426415640587158766064452826431068252535907166914937969895793158076889546583843424751231531111696554085161577514995495399800142673371248295267289280441988139443727404414467138413526705912586253761489508961845302686814312002216802755141322854661363724955324056440920211159718186719795963654307488355183184401732005128500316190217987856841663905110535956202696309176910834707218605194097380995341967746069860826219086658342032773159681415711971837169129061647573415773820353362208321567958443732710125063875957154087922476881368154481507018891297961659813678486421892557078873747879193122205318640369992225978099940173054590670840767544771398611191793805792342738208745760720297255195214888790877285493461402068318220493165074978126839587045314118525390448422686467073912081776745358558255476964737621182257856091709589029949534395626126515081912036035948437632306169802654769768500234467470054108318267683684481910553628769824535759956877993906564195901694649371743902095480631451000310958583427955165512999547788283320166268392183378892963872391330478179340104458790558425494480286781390574511021959610563258527990200354985975339783527115831586817443561628979965877516414260670394490075942626878705203487563210731521729055668403694926260614730521873959966968574600323488199852010957799818411767873563061071768035744796640536338042071165851316223692634775590707756893501885046510170057811687314904855493929893738299499015704709306222441572632200958700832449405637227590409422847352581407517692605260561509347201224947514979076013889674049098784870084617419661688660644107508166305188407174124726994557028568523420218583815051617461160157113960644702087250156048609279563726933582501240283492013782838791195322853978827007933059711289766083047575316454448095594891172787126012858383363042256170286558890209391545279855299603339703185631919115374907073153259749188798751950709217842231276470042417456408722502298437638443839824411110435776320514884243725233880100205352822780315837711633921540837297733184106203400294124069068228029611981301340507309242223163036250681663327252007458855333419179583777552597377602100630355893872490622526482724951545994321124125448869662890070033293388891589915061708540094272531463936257730157703508992208175565532649911019874290075175102257568795666760734220800893008307743037439237988642770550614187075395357724064493520853449820395104592100233578008655096450539935291406873073194661184579178251480579373184637278900702192260438344950432304050534558920230057883685917679161965900940014707369683435873235698271317239644162210674849289603892200592724553293898857415978461893449189418332674274268464851065370048641651769734014965336819275350398472799289891902248020966767512201094837829146197868292147194027815518427191658802058991478971753303500622483394991453933674113320132884720750157557940308942573380337896223527627031925090293058733652574303311507251205930312984793284163493459572558816422620716142397669135288900556070695448572208899482011296396695063037096644499011257214142671196331911665000604559845425046595094502490757736338966901530237961679792091861675001823861264303136512967904587362517528363001115276637913775241792672869714961678450775112373022045914167347872456938879669454372439097692945850086918285153436053745428363842849657479926584999340948064595837420406916409111272682356881975153066248564696006788526480187774517141553856056512269065328199619568605685851167951074082804952636360346125740948760165054922788851059249390031814224278175572223807882269164038588688808790123764190044552430999706844491882791503382880330391214340040808875447775153255531203443837164799552953279440901050150868593651235614140682183151926715973908085364966439920380378200866230937846077076453341472225841304060195200899947655513039221112819308082433000475596824898140566044982881308805321057316378687529890581776472268742075310244757227400254764038524323876842193171907542534361912042351031561606072268017167583878706979279902137451883067180059873045982831996377799231969326292310658743677957103003427732498898534818172115033383450253024151504880133929976966501016869453273847603733369554089181134008849765804707325286537170004932901316371178652610592534391620201087471662509729985635823394319377235765168686506445656833649601555884689614009726524218370816664550047086467735056285159870294078991228082256760256446841907074227079424292068963266961953305566932359700119321070593015915663645507634320181137981774409374681117965729716209299214560836413489134978722304989818410318803574654637244339878723267734739993943503558815715633594340932857982626838373612935475366977628318047853030158520172781718828624462433456507583252330602886222546685093624992315499331998175574317775533477198633488585970824259153372114180363918719092598239330910438232669758725362390851498939644392786377182342765585120550139623068629246853795103282656372335187987089591837737744086641439471825671575594901736369307700445221016966601075001524434256262978873499074087734382105917719956510076746730876220841809951522166865045949038467813490752181935894920800402313179422078412257147721129849195405741122729823498381950683699666002233316768649589895199831553545529991428904019177334176769480473215451831100628662026191053070782217122890651864280942720263675337419292635241043426046404517778776393082737460134283210718354998428709865492534357306148301775840991862777696908413788258469978836322398132509776608565499643024466395230809229630357276718407409617528068144016621414101849379818811466924042052569747896248646224699927136926754460558493935016894666338736326975680077552028710071427890758525451220846123800477976423992551347459499679198589790644832721496690417905792673220945388787356904737918196307745490828178649835719916788564848836075203478801036407506398727823515974718788779916288971851452824715476399336932669042962525373345825268865708953985285043334265306537825311077548842965858319139123078129542457551841986277016923089120640293266750160548643952908050979275696522524507742782531159084882032006855893056650586510008939229961736526276878782261023290168504105405724590177770908815345037094801045954280535978237813665952075662688109065181865200290355585904299339232476746277754345214137077607619886530983737787621231450985786451606906104367829483854209975829377984494638035974188570408340234316743776807492288424005434573321136015317787893314407436066789864294346694584914253282560361267158844105955035826466134155827691913138185215253284218775048680650206050237516014175032545017581342885586294745459021221142819477545168281330657780295819060033161386044346269755544802491088075090410005767839371657703632418504473751327529597091401077405003735517525480470254651257054129008141715420255711258023002265763817846218828835429105298790526560960567054761387857918277726200351418556531389769897016187184457178864463239072164827272205767259906065234731417146487480300302307760051796321479047189981466779548571626821056736608073864091061359171370474234383353600301963790324678461439604323310478503892932996831985155270347046981557944725990735464645230076963367126898795615445333321687680178924441158495079467937915357008423421313163147683787197878419159934929973141751667062121078011903279770941521131640832008173728006077217193023909402707586416498429487561648796170737905279826250893976746055004554745423286481709259997828392657549557530165876915074752665248640038771050627744582528811683260422435690365462535590573879375668359755435768517461031604980743009651859489030765066191254537691303553586634964021394997902968086667033332535815644650705423913209083711489191463923026782561653182384987002320584151514004184615762373205881211036788213926671580512524976031166791636919389396825669632972398805913282455058502300120965113192780206428378816567158483601857787961655128938269117479697246897123499582953832204172066607459793840473431526303969288708252140956030553226070229377074465344834771263189726715585794291689486395830280232863317320060646497982960478990279975459702631667334259464433612666010006410827457055817325272869785169186872812055828497917000332997670226025132896300643629996255436766226046191413438575819848155202707230662391240271073432256107836561324852878725234170399122768160361115346134902225425428893362347760301017951951240239965156204175761700192992850615347856345944497867782914759872368357722864775925742771131341741638199786976022505069760469944831339941459733628246803311501060189269173813788979208060137942630328433184893450848586292067311665611185250481297138957036768573730432432849861969843260253747254045267311291051844425582360513078578139940559098659420018519599596273095270521630955377039837912565886980569492458986623285203084543041990579973461125400407476305387827533343277103880414312146138799237173475031224314540912269372046376530748943606279076956222889474752318301069995217482277714457663325398750757779361672389418476454246708276385318821220238384588326090270528525807608590294885499992836069523663786714184739477365522491845258936769632043327360238292984568407410435312045788202877343026547331684278110465028152505548415081826427477992218627328901559317278082124148247676295861740239363475812678279732820396524736892072433126294872194496115681812098549471882152543441457866471034239924560273675574677740423449333862455808325915222884707543262628246367039439772375439282758616191270549635333284186724334904372811965670384666402838801840095643558554791923445869316276057572819345916653903858369794621112442417876244877588736439478545375738769598539593714444015827102880064954767642577909039085175906254559634225066853601052549123735098517488426453253044397955110865893364237533760686296283672963393247898594971330398324197665152004515628335408699484996959331899966824839861547579719249131016082500527206483877720465175050777845609468636866703376324142803561199563584403262389300347003028757448552510966833124616567707136092314417936905699544073753461777939418230416636120763638902983730070951876789322931793773032578242867147984608576643449245100259305531313184063884990429460878057837893315440147899399516553297236937260469413715897392718127205354962335864590729986581850865832217393572630966467466125642820201005158626617387121485375827633093142085059664748237436597360459718699155954275301081731817749205833854548803490341893707830918737450976032677814767765863178612694605642052740718991608161164973115045595260972502040909301666741403840949504135475963410365892843650435911429301584349076240822052224726141077494466900551920825373833885330665108388974133076466407455697459269236794297488934313625240563098664963671067439087386553184937471428701482851702928609582211569213660130662536464571664395021271606297999014759100439009712262015248527064839866190890831723715838028477711414062211077246092320849843470949511749947561467049374129523002111460746973326678678461825701759568675128417509994814977271302052457001286974724306289177265265649732465918505061714555565801366769010274365545907593162488751909303296617736068061389815441184081146061046774086539098827813773584396655031693400970721386784084730431618029950411624176799935743377688331523323295676461913061696318193578206794725180684058975392420698446543377913051954887753200345595648818063348915612178180325103481995507337614030577325938394171044696677357856736649329031844352074165849876043163825226271154509670645082596614173185504096613876741000804634109807423433393334070038491887735168836966783288282331884061664283436760219232000651491688785504770946317158586874458914542417258134982325768861355827120171807331653281123965636396424113622367584812999137677814068270518899843521812998634497917198176832594978901738820791817940267072544650247193789193442159413820573995982438925091803617636608253350319360124152415040761579751695808959432396214718141942733559261285199282779634060454528608192613109988298933410848359348365777680809674563163694504571655555493945589873095795254515754355994782051026898192028823694924264794564324470232559084129727720573636102978938719085788593341546912658737285248357188776596487643599825533614704673371919750746787796715447476841026295431789946304795678556106461549490923137345415594301662936639448362680940406721091166692601059001167365489200307456867768613205530838440290378349973576073795267573820904258749158535321065519270763264140032156715266501667379086130732782546655780064871203358559336473095948345017479347163740412043242129802484605269507139822328785877841746123051886411985274093748034615397258254028290388053128276690772752290405562127324363879320732206359466602977560810774764227619594083461828455802617759832814419403327695049736456644450947621380044847391585559940787011590965871643076981380149814684333835454245583278463996080917692159003652000993073766755056580186598987408711443953997371144587567833028736496853623583231263510411850522113806340818002284088065376430108568416332350688468398401520064838221456731588277523933017997835101585306008396171648168803678778753761246706556649622190567647034009194416981451668993458581222151742998973817723369180486684040169852054432040750665781600016533464540408594684731010593794833121188747239933959792134018046978980398131704721480887936338398629205235657627888022749612388463344603629495467691558177624792813144579153098535086255278706683632648154773687818598896491634128358330827377736559575222451069818390807403405519170329847011941236055957335940454853836177933581797714246368441412880456685808493958573442644410206352495499363510661850715083213960838843689465334415369080456593411866632224860147736907793958394366434949924869178046032407677586405619526388964683530537034194911505566910774935752010094767803237579009337147105559665262942910263178787859992010349337701405194359008953618440155454049344794391596116453108523162103562985200647042646960632041290405283014919169436490975693611540156184208179009052253487253219482312725374535925252634128405321065520939205590006963340974906706115725850954754405489044204354479762840359246257953162800151155680180791592510873161390958337511712789846328957570167212991985272495156416164952575566110398383611925655829193589189616263873035687947020094434982868617982320447188897599946892895399747926609547953475178231819209042632977803573562221533220949018290759491231806891559943018487166150697234626224391925905515755555686275726204867558730623120496053863969362153383157330466651332178183954015217372099484077125668139884651165856051940722576834124543468768673262737668353458097388814559491379354133697683714425492620132834046199568284094815023214120318473792154062373417221128416023934910510607165954376694594224565708444126431059759925298328945936478969946149624600196099681555724498017009696228372747124489852799948262899128365938172570281697046735467628732855143654922349268042798192101893595611491147629082022201234046089898358844220030104048026687917171174525926535056821984421030967277278923310140236857462872875921531542431764127992384778596545171469454994271615011716996027427739315292795664141005480367030455181622532307350184245642622049098966005648737220003045497445178504707672966139047894703183751667126839479621212056368676280589942197116258195424576984481817718538992734571238367575409091320798011037520143736553691889499924745737198088225993889200484389529732322700824864756644819773367840777592763822881040721790816698705939204684069296112370399418466297220066376797215129009281516516321077645586334733915733380065968165483461158190400704177029713123229653955395471229965549593492100636183714652055026707526027256921904636232473524615660057420808683423790779259480846233463043532320547514062552782164496432680931144446522411794094378623424034868584369103721661369979660917648921675923082204745335743414681642402200392778586651435128043453888752516380249034257927145758127096770622561610879809095344596672294939557713110020120078427531476775138434918483329024225811358469991153566349066597742824126601781836844415047807164959106269920581009173168705906323288085159244675075704219054941987394225301493549071487552714796149055256702666007678373926719165292100983695520311523328022141772112174362805830946091900442157519151476797367060236457111060109273635897432048198338372017031869736803535273809481371987510990057159684687662211956156430234150044435757705459070982694366493463070893925467139117748227828903674274708261575853887376247305417179905936021173141454103319496213665536407507308773407759812000252407709529314285626654111929618108971629709872702244961609239599674133253706829072079137694130417361523018139849877388267185193784561906536653754093582567508731211326396103725990155681715067805084388826889437880126297711931992400648907646913547544653501654248533042839248453863824023818652099551535777971676666408901062847709024932617008519985910705796347045690198582001517279838546483371452113167053304481315515861965708841313044538751832158929057870145598717396672920993636284388523923301209780381480998352279175055453561769384414904071155577673099584205198126438206597790773455772496526141685569210550712268336553856646851550431593893756926478464894015966863510518114071944861890101702467537362447190419416718199105119573804586893353279033953403348962163032890157461843846813488844896228690241229346987897468948738351744663057624740950352702910358088671865518477055171131927301988507700683590588575038113073859139570251515746063209282029307794520622753003306738269981613555761409228628599229852117783893012294553891461436869113611760609899787418845905514358341890294113867809018594944383911736562408855361041941324646933885953658415091498288921878657207906015347101194813853093578543836841034193184374793976844636283778925315914570951796502840643746045960328106478543334010075139920548229716719322729894611867291244079453871559862107015606038793077272653683669619018241303444511128852953286162189054769603554048909436688487008966629393027125941733412036983652926971459899773491028527714403956211983484619788283828686777681760058615927193904400711656156815153794407328933397196816605598000928297560107656355567686547374288697012312562686701837336160077036568594631320027759448447729883934294254422491882024421444557510383025941966101043802824906191399556414721760826836857091089208214281174678581874113144406391863452424257160436515210020446517334470733977035398920166640596513922105778232491139821786272762370148310674362630533057690069447717636522993944764316888800411272380840183747364477541023444474682114365710171152795803561049920994939405740633347431255782764876563344271157041529291931699131352093963187272319540222709789626310946230622997653476173936302125621321161261088498910554881827702646551004195595670504960716321958313761104012905973512812024570337436684760507589137931921975662706793557146625413423684302244564156484671228955265781783680389995076440306350380517892219523435121579890901148704667697141447868688490873308838026043657655584228985095537194572166135651430884649483161484604331664587803919057398200534796282381860379926723588208933907849946700843364678015551292808361404344911434874233357557327548437919592774742260144835697181742314916187157404292365060868051319192125436069634554616705013363995902723072549897205735618186502946731780987672865933183359777846228164698593885789601244792786079381477310016900048238613088916670039515427281466460582874262614402674540474270999550046080708074838209579324662826651864673858372263892345692552282916169057758151065319034679244775584491757246420297553301219993594548209339439551124640162997838869745760045057651009586680360832854344964641378980682351305379552561386070946206492388791660636116372470551077203364645924088315497369191438980067101769928863660477577703194206641531185215814122563921897810681734318513519824864542469917048499826422650702179030101248086094289719905627054907392443315099052786435211806207697987851859459097185242934939306891460412315926700898217665152843599673599315718694132392196281475481647834723912526353680346628975767428209816953546284955596404617758841302895624721683573495556183977892744468510965488663442563427984640061420260993190201602925381691806986771296167477530642559787171929547731411055623749168659163453983456170036529388297570709437955374058639560085280593292913935245127536013010747323354291245566337959757636064306143326662948333021647107318446214599030271087189773614421753321217492931722342452884512879670295866180796695899402989679881306588196779052922177684112975505269561981667995002127217487270056308679772654047433651975084461420097737976291187640094693177608790701499794279216380112637284687856132783498026096850430325608547122373249323244885716827042116474241962883813678530299277054610719347118254661106112490603861429254651419082773188003395900088874200558153630316636014518580216852005601155805540460828709609143800776120760676569151764887997411265825356984074588289267840425030733298481091880441621061261515861316272098219484422227854332028351946367904157168963137541074356029964480286481717955208737931611457934260218845808904353360520041510591292555022511070390648958450609675515717598692180298789182781798777770356348745218137711617155759265122270261722157241221981562287738135319040368349901811094932599059606573864973430303802459728632422706402192686514199749799144756346311866326675017764755932901171600395966394827588817727215194972864217006414511362935071051428042830990209819980061778513367610566806197403395225367329314247436787358992723452054632349565461782275589747444216370962664975767609103187532732848912076266658170495932666115830131923975165713129483334856152171865953276707778352160437619591997112274327327220134116395580280256890260578462340661582679046096277584652033906388664036291555987368923301523838616034253208202587659218898858137387522292554465795338332325306323905603066320936922106595128545726467666352743372308661573448900346740097309165855816969157822853323660512040076243018352291971518287300148638626915349776543467171025275244309765225178184615280039081074757261314291875360773730705506503751539825912291322949548406521124831520273280943506707644579562828562368050253961197383621959204033216444928990158615381679442860180755365517792541605843388344997563369751399811880563120089175831643115139489464522296970321477491800947087144350835883129699929415157238683126032669984036881700570777619564876744371916346610557548633249409388187087045618544876764353668205747625954659982249540625887898147619416437735312507470425231886771064365584459214212382238605452540498660651037304321161998719736635523396673180568404350342244335273730404459002724568928505180662940663960111210835591396250409345943863243256911231561101843938310832286517880001675222416630661273254466428281823901501616799144132211240392444815770636219193589476970272832052217061771787896196941662376974812111368666301021585365318569996652183520872592330493606096956029039045023512119179434859740719748318633374317159957846267124755196631303406013919768759023649568969364286095545086702345760993260375509005617912707931553251331177545756698906223578252352817872842349341122945270050692094739670430618178104687517930833568380062256660698868856466066965308257925825794682395250186649742781009833758487999645182121680260374530457718225699888902878673609464997630558543097496307580210195822726437220778045733391004802720666142193829782714728765888816823364280294241252044898674219410815992973129954828493969638751913267567833275275220031637279739540860271284819715269174266168993496703860948398505243684234687651087935558394698781036443410344560458289852319544319327110911093140843957676221925558595414664324107514346592768874872442518705175878036299384897815686064480603474268123822020767716543890374306710515065430132467326788940259719495685734208133466233427432248265801888443115345300214880417021930361218744028531862672139898402110131545674736209699228867897105370246031020823597018233316191640423031924474175882809627048474429843721148746284090163689415739272798189167308481094987495413909664172651416075825349012155847838438477057115101462125972789755582927645071382677161354422719929774375807293838991312463218609000262389102117948298232158766376796736526415779184751206460281083531138906378437505116625005500237402437597739454467717897562398876579555446617942644139053511487551004186663317669152141754041120073626146253766110949193272585753976286863939482252482616727632058807638309491412250048796420051859084492410888516121289303407564139941404634845151634664958742515978098374983839715049344076291757943331422957724991401465962571440763966767169616152181849734956077381667393347277169335005041830432190334780930857971284144772868487372921095552610590908356922624135312484041497298815338385478334797471207753049848209675915035230653812040856162141407251422337643130549118548051824004713056006283324846732628365795018965803276218713970574556988957268882359726173487363167983566329725109172236754175414508438965387630333693443135261053301891840911677491277764117815167907576551902058116345450461231908850305763054520884493279774936171023011522315446561834829406518922901567808180646703463310761200491000312153712464339277022455409416736248982255693906725109566395167828982092053305864999189850574573415143252226127915543428672035477668343187399474409445983902334796650646085411150550042504840225799442623339775836262469205567773894552084803914569834543629041539954496879429435740878048816966833896271594798408314838281402170040921250856996676825683964294209672810646793021054296372628702049654747620365337371230546335261365858625610061043728528206544402984734774984932198882610046775473218323332489354020018279923221733651988643455402670195478963605711222181129296406823320663446580732375616649346042387924791404178724752512238683511503808514106564652772679809178086763434684270101657217562732218933393425053522644917506474168777159278689943010729469615681797776655468465484599843634023147179069099606323173924715835036535581082170485576281405540061913487921291633355568611271101157035950481370590643396541122500629938867622357194097626360586001802258531440741801561298006498352190383542823703332877648661420869100205509153634985747700874435743715606850275488406154019106009979173965126370259508419438210442152900249254599251908365432544345630584575121568485560153361113220397507849593583015198049114532877674917163615052633471753809104221298961485791186547933201912034575959147450822197840564709327003121785618792569527300944354805685758328433428498504305730676961123791537486084941053830382987707293201889468162450971470987957915313704251411374905480457901063860191198735692497245517845029132485790022732746679432705659333985968556776810882038489569324091215402894188088629647991332626547112828698914020015407248436702179666736175178137138643382325119538810694374635590528802142080670358241307027366056167203272229467531706264588099535053388137847428230594597765341086233197297698876113657281422204146741896447681794207598925527714449949096699009607245646190886638017421244540512533680130237378953541037795588868385419581883546487398206842907234058385601024110296573577376922799087929610029638198156640677249706085051173011483821464689833384057951031071008024960913466120434638905744611708643296396092015642542428712926614517063419659906896737107113000794273997176284751030509531224809205253529666934436022089378332730101577728363110934874688249460468918770472561776579783158357094046526872147996202081274433326033338032884071235643222832285888307123051717173821194638531328030373127154917479361854259199797381948912199430201726390319927601276826005107642491074690684794587567964674208866091996289609583342740825338025152686261711339217728937819494319198124262036101618619862375166846179401270974331481205471437802922767967358841019648661412146249483911882145303747789031706522104196771316440961247981118439065659143994395992328054776315343938771453327254877609972200284903568058387017720536621844109850494377882515276533919070874414717983248446672169191480608126371794719676201734170613172392414813452062228232568180864069402378134885887629955263621203758310289980065305128225097057729132118496073289959534819534382021332199619145277886222599449898571093103781160720737088950106116312132574403691990051925631378520544925722371094095253958484772032472559005171031739436909672653929994308191481356357734057786723961629401133619110503110006672509939417936911583433056001919426546847660433289618743029364992574351197158036008696670368647780493451924636683262299376704926348589209224660285102916198184181358454827948391842938203991724964588930654763191853013249903452887934179937196884420625292843434486016134788170376275329065143575694218762389107759826255981541639193091845223891057156936895437265806581558213946520236570755686083387209564825796857145792121857388277403255292388567947055782271608717507206561299937326095439539151975246700571558919340443701027802021679681660856834478223786554119831139953278614761968570515959282068270280143594898272340082109618990983139905094789531457972370036416933785990436081358306714699067471136431168355782049376442399011571186514056046704558472894759936529927809287890320135148761165025638853864502898267375649394424236893123944080394118855781127029512477956379695534615056177941593353832813104981890598908948297552846306684741022239001774473738510301787588970248328287073306617270884709709487345253392769254439843285455314469641868479483215649043454905259819475700294626385788702230956560921547160476595232769234260571231225422275439716043929469292755482939253312049212448435605855889597264917413403149537117146862208579288121948595248282538362620082191407957143281085245230098811314625719411289579152835698527361082587207709315978839763863595150215836048759898770788016420763127649843232023011893412645324293492984377164471871444041612303108538717580399307847700270658966820566535090677600579883759290740805465373996582031777810805644242207188927434177771181892595976461381705926258285262766281102729482331653086301812425047390443814295260239456479314575671503086732778415623411029303004903366929894594954512166024184117391241867630245036057957022128751957986763889122070029993055465988134123730614164344301260754096330884324019637816047821990726766948708800908114841438372577952383206458026190211613401731331693456299475431638903220687866778117796568012434135601246206965788339971453875977159438635730712708516711538131740218341528625668181685998986819400887957551575200736577805199675284270061455850109076512097806151633316084065856770261962675893433656909019057874647393437852645095389696588153192410941603712681481624870321116587483626504245736330332473041185721706941406288097260170130362942549188492103833092928684027811001338689820798146244625046670587153281866369726489536305444050350473852020331561724851982418605299892038231377781390908175745951475265510147756123818084606683985472184460084445354073507209620576277741511369167074895347578876667766523072261071038180634881517456452488287109409753302682571434057591205867265546181882978127580773181950300090525709487409218780758235307198003969563049175655788353769671079398661002099878453588294770611457970728979243241387607218588673640438476808121247950765449225274070558302764284659065957024341245261514975140849286866837225580319894351212475592524673683452497474074672013886861472145629862867968915531772104931185101918438382525573170833302031820151419746786612734656472369900161114636487541173710039104023899612424407824867607535520727945340375801036610331631753189322315826478106083351471501914822722244394491456859347614374894632390022787962706981909939916348564563430072837305375592195395620016066692612669013935667442237851233356627665804610140475720090538505554664141745234646378322428889625248142905334603461604832377992621329632041756995877979108617103950245582248459893636819204296000971512231630027127118121566693744053203676883412628098363852125851112825831672592875130045423292738919370460199727916723398065009909942505702295406407436872256666445139954053473180473465986750173808423932375813404223037964922670898694799871538888737424957938715388867227414451078279441088671774459028916512579979097482465784556141838048752167300679962143542482848786655392528562467945185124245510222247993055394160316629344333019809983880235376640721144969601831123846418382254971847162735109946489563678763665097868955207885114480827893574473722571996813541163274454165408295981293977326081545456184690186268324439828078850088763594125713501244478139122165543994802547995807873376371658170238183298602277031568263377152241264787837246686641967136466727782734033374555244449893804289247585211985848993994366604710925400598450050680441642564117376307225398985368882330389809392037045898165322194529581364664531250588019585615452967499364749254006439871049694826190733007764982242424706914686724263953600720130332652184477398122682422973827397397221320671495250574221484458998546422702254733513295399315146603775933132548188780402863272185278218733101289462320723994260424273146219423960254695619438226607012243448224019412244204799644967362287047112503387413380881002311618871582509491235658707401977486629499822728517959434775056051276625187366997410910809773164715625119802489379735466789093246702268204728366237832735112682108155549361824092844335420090243928742904449649868194910725246206724729020666771918732995386770147817459995967904916044440761085612747299337908070666239553751358826952044315281529832850640796253222284615157344415835676246893302698465568492039508284720894089095321801487159377971246359755495035755937228875883598097451532308368752078062219128657482796656055814508551683714689183312511588184215158482636424542692977556019456844181703207214662495021257098607288066323610719536915141749644503114771285994748328504820964106139911626241812518615815460462267102529817989554593410324360228634151565741091068863755432720922960893622217928493901247897813130385591739405023251353833349333169813394314587322748091735904490953963096203435029768886849773972177598184061424018226408515797494509992266347771239748529994655306854221843958644804440605163421275519878445975608666182152157191781182260680787840068376419128526746215963349677081351532004148026209572550653644260813526742713183333971654184669037142304108813198237111114647494576989072663916073487089645561753828061028177428312396901144963713873507455310881862030081201138448652256873114651225986510556322809323576205532864317238019743635184629740558601126550837256425848337285573455845821315942683440949312301267100066363871948721888208768470177235254409941760531811376897291868718281207167258478608176080225443456909860843340466508424751020314412519121546390472610709462424853090202844861598645308255584243731579268029219177382880738793767514323139510153152605834604892631463876854046988392116379921021977573562108381327939211420440717739249397969740479619584297136841972426233881330694411478663434143264873850413047954485779353906208725728266919969911386522119706492238647518235378396207475150527240506111189352351062876553720565774610321026964540161116416369179381516830443181266109703860899266152807370265030150711133233085850140860121354955415603698248446662189095694886503603036033676271660054074782815173110991457461811514930728969998174849716195940722428716027201790391359199599753565638759953434583038993414086605966757879366957008814900995293094819520843185060375670707597065746493083952441415612615485987746304159309932557933596128065681308638649670533212724733762896711532813914175960659318674145376557538809648142862796636019607448901450110126677248197375450592579183354549607286479704341780383194642259338648916873849324124037411942753957858384428982860846823284935416040111990296828828420428273148511832881506990221247661280122538105676159659642904179334274823081242646704269988728602395979638215746623972981358660983137552797790140209924026093541337802597970923903555430315850223352077161021117277596073646070948115237406805671177621475585648556551571301386513681950252263375491377742030140340207069525733881898220026139203217490164667288137948382826434717404188812293320005505001253947641315613795249146887539842081434868168425080654960896929828358864933631157030548988274990012778721046058051563830191471581630601313039178992285941555712206654888941982532093544170447788344311273233121842116882475100788840137023506991503458679713884469808402038926991655725161699373803153758555398482937854612335706605465821021658253583903067309682772301158501800777956143892324122261246897010005505361955671538080534671185380790915641235227544676446272980652924226421748506906767341338966696328477709260903486870198052340216318557364310027795870666927087721105192023419613108811665214231329122083989036747113131097858072745385156968831870228651269385384512360717133736737484038251836528366119992709644576420480866849021474060663837801485250771515800654126836214351577085309069224537862695399862729464688967643884734800350726701462528623097616379452458849711431309639111972712247919787572183086007172657320784767336765883833081730884231223497256344312902320545813370022760849401868089375649960388985970915125843066158699940041493800175848756584242793872188359056368814803325875272891876513829633126666664292710479662452571123285165423897558747924280583373234769937952608624126387020399733310211551669090783327218744368120683669409524106892253929177663673201257188708178696792358574427988548384394191546736612655705926866659817276177809901649924089291731588787019399916774165320352536612120413965623852971530376978378575360769135973351461146010996010572348079210404235800651954660397254908479454066607989226346396204746981688153411310724690474865224186824185056286207639821048932269021569848336649467927073543703583134044276211249447879252665046949961447244251883290218182873258825285450032057833903936560723780830483564186173332295684488279867786003557288780297478509532771251677760604205439408855254300469920374796617154547235226410519066487387604213394183714815862753475517559576993216322805886127300930817720192099798631999705755186240837743000099506242455198684406540938671848438208337270085920121201230637354886067308012867881309586864124165151609528052163768174554973667122626852715994131697227863373280447300863486186375539083005201427704272995949004160781279894248411213889730569107252972783676056647059755182370054099181267728439424612139993449151432674772289912209598153814204016087500499326335066864514872333558340479996855493365342941309384948443335144058928642288595572264356028365016416746510669867108587414431117649572077896315942769765835856349402764594765897518001359615063755747032401359886361961718986147041634294569581286562085306672912858275278033098191289893225592814846892674104565005363151303357273020156569453534737242597956968523790795221483538644712973553854651687431297858666328479084193302801080899312764896183888415518340480531011558835398004598590305926962169445197761556077266906016340224903323358035817497777940591697173345400265573947948034702723061145492695123869548449729481147288047046980439331438128067762118517259739482319161308615049057020983169180149145809973257651245113070753623314747700385348297136167976685269228823616777271333928734829447953459502960725270768714009693537172293237043539154804286565082236847918650802855244959833512429262610403033940467352602113642081722989265915127819307875136579313041439427131478886050444479797480183465506482530865175057133418193229491595100770147052913783505304987354712203701545605279626548471007055179865735608294184795893311552702376233430316367994310942912633311314022109826169366440075879110188772671871676643264371479131628009904640770529882001683451550979494649242558015068242006675515467066103472010278017507100954111012441071409969128163921683432303816689481441056180728629573165467432502977737131753052618919427608705798125845425324334723173608103602185333044993210665108940023348196533505522634342891493839788400393962297759564848082426464461590662723816848981375182478438739640284811365130550443381926767844944695191289260059089880411104189081195545160568968233809427205994424939340148369665841486004744754606653544550519082899457749786468398610893765661238020474740356705298475729444941722862462221231473976514766082766184121824063071100390573611831330738350012887974886847780594597627635211887301608840855236824116576265017298837619041698131604682577414559698236131466447798799924701498869943879717164750866392921103782118027559985868240222794881674318393782505271312975285406350042945545734454173927005360773820881056556291624396002051631063896873822940684745585420768859828529525820581419382900427325946887542845965799714993136954655512056716661239115414693307663240394535680333641542873178055105922884883410683148714211115769088385333451850865556638786528816656893733965881074213689447164108016547841993537073918379030462405799952410033054946020794614029551356201545300014532687945238997943324200232404398000280413589227349268320054708923599768750011492949098577444154535883956003861595313514627791001571689956238437560956256250752391953280278810033632270657043931746972358289988705427710985166273582655254604549314847976096322189028555900161962469766796324541548023732407058126302596885668012691262248085846696695683378742918167558727697537801991052703551731977218871678251167870713077239625808821630329378792071422758988828166348669700894824969008385484513464364755156712527807392026938687570192266089304492421646232180271001838605783657169688327135520085263276252034583248381632098669250279575587643999008390289675954193235465611356173866054059466366221008220121610211719843314826338778997503350509853913941387955379843787201557123348525944226552711293367143464218845884601392034830274351463669270877134535505511234796048124001764097787370686117082751100162927489081767523861554507596873176841195532718083067723083466398081980328388155225321314700393688978965189667199435604140376247076743092996721880275095872110629771143332616870412620632317062506428451010449405399477044282987219967098950698971559618162452430125511188861086984256067372628149685572466215707927407996816584785416236518785599010233828996343928870288035334658366258525742476393098500474942876048952220790117501967506306982541321169945738442832426085495456576135924930860731760179256657810109065108289028862940622483719869002601045552725595143514306797069103438087017002768417095005094518779784610417591922733649071826232609461592085642473757662778929470596711342434376549890160010357722385946582984255006413192607134793621994816650286251568679082955839705411492025021225598215902555870928425205293443065011582116942252544297834562359321467060781762775745368750429833526115055866182037649033132139574267986078882694362278845885629204800726582637279959153543881546724778220524057418068688355230266033216756197516177248555439645781219730272593705111689901656347242576309313384638988757115961979640315504188134838676597500189965628988751319304667300221159198394771471486354617005785047961397156379379842684713385496297349037188205836449988118627598421809914958690729689880184965796780180431578970680687408563736002977610457007200265109012757167794930170467253860042697647021790680674869403600049758913398060540484655798192136624676750999870357731909526886371936077520387533190868388539276097128988845343018261299869946395361016102637632509131910890441166820357865304943981188247598128508574931990802803639318073996758763337174660173780146612361721253707406063054556782703657910426614191730607101158855332930676219227753868301578674821265762038960917325241046422364609231480134947565747624208876633462990039698679723728972048350377396405751810388132562349291216645307240574798224717201536817704674392829782096612367938807523974278444247281156205535668258339634640532091979346644969986166910145257671499138417925168788585794029333585430919716127852477542039637097563726911088926408460556149472617218734162773782328731809513684228138427676947085610400558796120023207513992704334262541756808562309275092093876122838369034029763840812635298577916779030958733034419034038118438706095855779771509353884137949278228234966749805329167958079828152232186036793686675885455170496345715409734778691519231225983144860298010726841242930143584342442190195304517203542122170829640608528241887989739421445173509891685470337150219633391341288318820259911896639131026694670159773495062515004709777791422890938514270751202450163148615184540852713303770652496184388881060318604108715259330030468942331122579843710738860659147342407223496061830330058766059626086689616108841194371320121022596784947384841455513080303093311267739734374892798500036189545607023630804142734026268686031125551560420852839220596031464484434049657251051819764744641931774389908618504627277575880287203453354088539766786454055925856929051198170596820571282986740257687895915555473425263711478274736844718300342455189957108579276218831851609678442268035768227639455352935630566503616018268467115797599210790090367783157251509372585727315073613229222426612401985858036541079728135269782105637691305461894572885548993410051562958950779593338026402136665019095848225910875486979111479903681326683867006162519209331255373398753039875216431403418930640474414699099610357757208833524141786147123836249184580709655920707619359763835834276860628844344221816838599131328933876906971668144372170464452291528000015812532728961217138559797187250249966990568125434743502511832646519864670121385175706099852967822719179899923262817354636871899025498351880909369524674747405309070982247580655862921898876279768263467673433616904963544673591667256786290389053088402260746434413114805764461385365435072629052036077345123787253547700922658699607000310331185532705850530603949907859175499083563646847425138297629598135594676106332674534855842387459760271453038356414233066106475771957641983718345567944624684549528074774332705755631442651740755791852591428571246987841037190013562752383114711709005414083716215251422398812834091319054638623144974687877392327770667442449562859648387458754749763580964002356794151300254505151960889538015861668524949761024962455350507778156102441249597364435957344883717748113079559309081793407734113920733590601861816181991716916721160588577090869701206384646419295026042858026395979765064270552022082199851362519241489511846958117559074835193627046642860526624753088688653814913081149699672159595914468807858823468518992852137311722409319224730330508355716461574742787260189517531357020776312339899243355329756161074458434853370204389117742190947343415690149639222840267519327206134550175921203076640302338435194135627586432980879434193901896389991606382012439488466444387493826070568752155164519245119922632876700903873891281307045851114472145400857336566414216809768560048272504960299267228567288768501671202141923798771379828507668387711202082156208367478490908897163672490112028192175556280665915088980154972103118322995136602385683069199942268618972350546110177914241175002023889040045371561957202136950290378619281119801116689666598320707393768899308105450536753906488458554425309738726639120876881004991055243049479807515093429047467348362411313988179622843113654769528876728822246164252936046909104675266981283559117295190460540235119885760259776089189554476493650371220794446970849593984589835908489397298709409515949771688178250825561583658709099950549731485328435573124976637251792503086589079665208059875994110691047695471440965273760546753671065325779193310931522846873841567389766293720254213635441370710436116545410921828229572084320240765419348487556983550185476175301729447773484726028454770042515655099516978566707672675006423073283574240545633805921961456376303123580753653428846299945459760108408426380971334757159321342608834896226226010411967478759140088603498662900810730156027788124761056742678747536289115826277433171347344337127928269750349701750169284007330158356123923009611952865489977322603271920407071933602806043611548553262412620572652273335093965637297199754647925627212831190709103331828868737780708281601513740694548175998879102849069988891887302424471568225615414687817181558817715204634652915851321949573445397315234918521127539679971418853945242962097971798652109799632293568831856834666588326871016232941893714603276959744426952956031346378196322099445741025792935415852834594489643994505738772362491725591179192592319962822990811869525848514057983710605183576133750889620164750544955660618159761210286950995692442028782556203882862291565168729829607794908253507021751468032083312367962689371168187907195730672648489174918727670724436413336467811602132092012288768035249410032127966849847973810844083668453298981143144477184698106867684846228531145890649119319865432580856106261562456764517460627895490364141345828081977645920979923187773780130659846414696710727977331792102657409165310058995377330428702518605012491806342805118421410277496239684271454789624102517727338636724844954884629352644311484148369129704753659435922819891115910993179100453836817198636571982933891217655398052684478618889628042915054626953536793549534856189973976303195700002674501025038402272458413661052663754602882079906531363729385798193018703683150171710128313088879271669374507631494203779374630443636727387486644301530104612676237829029279143234039432561326644140098684416984079259424749829943633344527043352385237548468064384539772275680821252782456228673815149627725870682894558880469536401329737564479130244544534328083182133621162576440436424170337217666127464849761732593239066490598816834938816688419418017140297285625842552899971337677710319847571014914756094028495170989310202770439746131172048519924601551858013270501784706146753238741847268483747808522000831800326182114656430667900955315457494676937651869165645930328186195816680844884483446242724983483538753513052238204728593506818631449463203488978758967330132486340803480282920292163348052586796602938355306122734672935450209186009141029444458837418716423555100143474740747057378671485012144313280622911666179391722553962677850974670182550489662225847509742933225384134358186136511329315755680522282607464470560441512904389150545390839367145067269178088273708000435087740485986764146414523890229948093416953628642751154196054763029103143626281992367649729437880382832575299953586443563661825740117657484811460180214569172046288988534656978743373055218018702744219805935602235227157792343420234156538706567805872849274005144061829168573665827417335951115215796737561810209240991804309625001964488600540878199293944744010851781550331194371382609097120655280910059033404663347224581749179168119751997417589564438042085092739696071193680875119834534274684460122690526862696739197766474585915385539856409143567116325647545435824086194684639352476911997471684570361589165261316325187480061017382842058386010145711025402128174201280453948152323300624837481479366901818775927386937923753390193486476525785844536850984500286569359988651042750252258746863403688861837851898981163240549274241001333130805884592398333205798189081698873026006999162736144950865521125335864496347131477478132052963064671649780058658965546393049634361322830982706432198489252941469895536272751857313523530152442111730815340400409652811813259710354397787649610653936617740624418472207732720251259938956997034351598067102122891266674795627900585559742409886068350004255054932722094445376577425256413855643432444882029083585827228350692958601160736629422966204457659774611937292253438360445176403562472480301206303283317086782186502815438591968841818766749225864774133936108200219454132086706779129787004131477236991533835096594200734194701970522695333588801708974174696488062598324478254650307640274783167364122310481215001365540766480413443396970273162023729833538081637404622234517371567516739997164617488678207383114674915993592654033365780698432880371369429661611052379255714308761438187647496723059277232485631709226115176748382086189161992325533617090733765384630090708651929410885131734089604284078031248899873224103251370673446076628022720128143780718555736965885293644084679275393870492100823585119173982407293209867482656026547140674793616280941417804379128883289547240099723432415140562013451719999594615990804193805673218631921730335263580257997407748050839539798368090052872575003464525598245187995678874033009420306908772950520734100058891149387756341294737979214092990715638468895499688507859864740499158202819233818919918225962779723416600731260621176728057054777359403780989173141704723658276045332929348686405960777017655552508994803185104571377868364528591903454370301079466501077020283085791540591614864309989685389157995379509997600905521976956710374802161334331970004914292087772141295321579454914130134721505321234820719279015775084867596046282594374426274050361489387068824161820936291509953857296884564164551637583974838556921099053532562279920679823383036074344315640341890939745226086628833859040353276187612658810528868308202544723631547994602073503812528205679735311519190928955857957410817258838764422449457771842678299317765543219478530129540362966736257563500239500454815469062758702410448480959563914243438098639912317693333078131485526081155180727096620290088417793291674321343277150489201119527766271398360967932508156921222389579610639051288869346790952214323349228300846607725904987773848949204318323595141692020177460254951970872581625335747492734512499692325319728070010141282276940496367290429694944273332050314147467148869581238611456907987056358885776308937701230053974636119678059492372861370432063065981595339851736705764634013369079775682010189464072323165637761470527981176346360164100219616227167427037386597277917734571827974999735776404660804804814546842719289928195360806857706462298210395269831806067549595727915971104418947682979930294088818460252914487344478224717835118226618293066525154643956659151264893922795149009421169657718317606100909685492981630017809205885660885673677823512065586926735820814364649438920130567268030938960921814339077551139335696366923231961276171640099328498089578756853020571973270255789580562208151421583520732001188029890254825301650856515784543042830706396963705514622413105134396927079962365472334465096495537880301310327558966442424230781236723456211287024555026358688022974520831776480552712044292978544773081486453344912637090427240920692365293637680315130727775171450459007260700186237541194523290800674966578615989993137759015259163631651081740011765552853225287373222956784934678255697225229228897678844264491763644075599286916705818093364286400065430607701719223875733859076736840499112072840466748594237488402358467248161955501290696933035673444156740807109432273618624461366788320597443839754360681624579993192586040892420269887456357484581346382375339199635183977878669883835101556964612174596755484088274426061355001324985308575244352801651574096753770247524100061480415787788826718758554849586825013719575048757079347643551290701471447390975123351325413447859971349174116035355242442088539300674238522877606323971011948020033412161190722384506662538524589461423866990534743394873223416630618087483126090477350658330218741619903791743394659310713803743134816650705117730987481294574557825565475132910624127115967525992782707425143159484119713566101393320830122457706882445325163894070444453437265670886723623384373906625597330330599980856144785475182296873668552448745644999806986642406116282135601443275262222791698010785411083621420023789955466887020728066295196949535583571388876814779673859903582918064665376788572197194809885321132447414575649656235458628441285333733952196064156461056022847923867415188600861422082878055408937516445908839824905822268055858909453288464229150332385047581979918695789920419295346850901905831502724005280442304579999772877062898572390370002684223751201727039164180111168784597248674914411463839118268616358229829250268194071464269084484458756949451989120410045407270072125360831926065379756136747008166922854021180376845780482804764769699478884030833039902294358485886403532092655412122349713377895154459623230882712868047897092923541134444186461599671868102297182215643670692054617961461608378916076191541176794655303489551547623005910573496180933293334922007162425205547048153601511039929508412202360839586885477158307860063491066470164578700511283941677758701599931443638014403038648796950131189760262512653375908408934337939735089502509300056024099135056709060428799592146851561963180166198661348507899335494775122865501448553806586709257666103550867959871677124996205595076995867778091038334372916293374896018432197194581850627536921272208005532618912802301528580032992337769189879819200883720723344498660760686817283717438848602932331815434169231688916839787678936159380513363169447720442737063064629821755354040115467511032006193387792494700305052816349385648583460352565829955208907262958635830734900960660491066303796771516558977116736129908039762255707168412100693417934106908461068023421376371513897652633637449370706530937469622925503649432950141965558435668062873675463356317472711724619107942216853519833097422148223806941237791943975483638053066153040223649322487212811707126260306507254123440575808531800675887380693652924714502417585057838457655185319028882353076643487267374232532661813027247322946252534990380779599120029756512776027815497580292308910756265260969000288121314735246586375837629457383348934428918137015633975779548782763086400121072194003726345403331220474592965868710435641288949572409796700291160898990997875226638141569406519882506310879798349366835577965597972335004265432094365438305859015156056840062317707558457924807561343664553766247824731901005315914246324021879881601824968247345258101006428438264509575353917073674065422418998252624922587445615928606593136827988566800533855838919495499438126168088756293013229275965119734060579039211009837763040625252258285387938422731400377819941095732444578593052588659611665705082282511676469148984119309725897173814625048450715184161485970021030756714723281927399036981444512755722544449643112013028483980104986784980085116018989067535574560410611250020392016921461987503277123955100951347865924066193016951446930987394051103157834098763766838469725780824189068460730179755613372101182781507563930934879865091548205098080887666981571020171214694077407799229964957151047699778799690958719322251417558554838784606172997113425988843300841200099349395522710336165302855190031080839278882614197503971931419835699559315698985390824366359192153407891566754070727938313686648409652138576922493938945141950188601790479702549795452855795029744672624943322821936803687086166210171150223086781470856277557857640184096970517709775754587146190058590693159446910617248765040559285534494182621525360219967037732859250345832981342951579574423675801366736675508690113448744480230632106963614438855494331698928413617122330858767116104847101681476992713622595758394484120799061955190139669949186223932076798123404988847246475742268063289809358137073447532951190281915566833337011245330536253267095560451973836406304844039276621625934422146252825410856465884406613662481602691862384426049052203253370231249177954992643934544630340759084471188237314403413216731997062108289630326102214549225339636815392609198644636167164050456518908449610071420648952531342924745803196236429537391254544127932060102402312247637322427302112078701532482114438866328413340819900415679387341943727969110576333237806372646924144912582427037435597412332753627322098292501080731861730161303022163775230313430226479370524251941567367469271717926190929424110945935378084188415379109863536044904208327562840528047947985002803894754929942806037144707995383160107199641246414428045315167298396617813808413790178182083493489106559928417812240040778126934433865186427736553142221911283100521831272102495759090174260725978576842634326480065702400085619455438383412025590309077148156457494401495504141830322714058257560671730189599444468471635008999160447055435384908437521185336201633019078674928264042540987574956418467379764491310176354584004884756964144081892613989517905005013109299483357739979490785260266301538931845708547218323387560006710750108522812768477152666708685754795190636974116496934133801690344443443451971929135343407198233865201493549299289830851181610879744168457933341550519252434622016328672235001617919346283653331871996551171373377163268710312571121019250021938515135988436705563030070709853105841915226289650788649520226469277883369948837588852888675921072005447698167635310842793496253091653197823969053329795271589023579845240540249500725800634430794581430273951564037366684078300688494569053244754462276000793997662060316463580748067775322973449738181903816964188913190767287665878088952052469463245148385555801001756675241437519941794581337053317834648207422929355551665034211699606187473348172962983887771421709371237752611090807024925285006379466393216711267871667197790526151087607021212587504439959184338723193650599919891958579436783433368019422528789700907235700778573736126483545422191391346457290509603600442861804819319321210241144710841479857727094588632397073376435050572479402202913333261765097029817418768838932665582776006587991584221462159118928909806175201328822106612521545397665194738250324581503311382243955595581901354387851779336090179739888255013126453852688618162126010658295311595934252737767466040667656225847022187467282403927245080148077608495848867972501659840282296529016294764454036187649577598968655847685572514314451842929716094470539235311000499388686724303089081061349055702896838747583841148470103070455208612185537796386524779530553362147520386400788218387294820891097713223562746457540139668494852957092709152896650311100880793628871819052293771588422465067021899591509521110840594229391821224535694652344691183627741256602091428858306654690991952360175145310524483202387516036613384803602981665331986311591710278538473194443216784206823228592933750478827195653390694583121535302907561724688400552539992338211400057872684287883411527633537083519104223393686472964892294098623643248474687076926102518553513520033074001676656736277838399805633293810864238906463691229674135723736877861961387379437836454866640710722887955867897310250911702843093864524940695666544179346466690865482938443735751138321231524307633639827027058530622232824099377086386787109599499959208856638054297663033465883041311128481087888925924310648996667835800437300693653939432808781679002829414958006255106849273300906529192700690201838662012674916633504815621776468833045112445423334120770077333927075050021947125326543627037214971241908952093740900590733432697811006455271845788544706862562095161052615304408402712688970528103259802054899345636981904258314830777634782974380127507635452868971953264211837958825569068167312655999728666854439009775584352172077365970952774130496396214797530840943000483523692560333596808148029133428051439639279568464323615986751604365810952438038798363481682598621490499282893350005533114611966008875930947173096115008815083825038287330972934396158383181525445550343083639150518446342095214147658754373149059032196996540004194119665927401567200285559454686471481427861094795805847684508329176766804500051592563567234208802491746446988597077005579108704189157720312973631040394384133679472677221011826607782018342147074155912348072026667652232125780195004580142366537108080108004475701722493098666625101148018233178193490656119298365741480188531211255302018314956184226081803881258703209888679321140875278045099983253896547364158826476504381505918120784455754925271288047100833087521514099377687097287113864637223432006139839430815112445380528530028735363549573449132662523933681523966419715016528010781272471410692316403951191248461384774898958415091925316861019765838949815929151733778146883164391899461102203612238814666701152276218931779489209207505122674123566131070837272991300368739993679592683980297340338231727639674932340820163653330794244768775526028063781516428689580388012355744430398751703613822141508923558186573199957733649309235222743000838916661798422181449647390701280903375189876067346331385653662071065194806920747103262807806829930911624711729534853112300508540457725070919395412086733971076574389714364181992920428493852435289313184244409672302113777136956971258779835516179003855415098892984051037883158581223391369478533870436593613474059154390182666199079962294191443852264060673525689615112800313942909681982345306482060734826790767324003234443870151065768315191392671911522600545863545685836364115042850791052169712332367708116212105975520091897968805508458658074585284175048824030471465674747921647074188277680790603789304198475920207109278887154663021999793671206982575050061739864498954225067380887649326414153012121971373345670134594955948300029923746085075503946193684636950035567126503833191053505262720174330828694518924730331998814440603881080714169554194901938670417387729534454141899610716719926155063512701741699447235739829293400951945448504104132735982830826319018495610804519034997014450522884436966969026526469999005620983854286320485343081062958963126746197474836550159030592957109834303172618207622984570640152412862970310806757945716747428027936474534135507832539671589385088962192320069345624971225960090322749183218208984852957362386776427689121060984487316072590465869889057907491777949653555798862258681750571086987759924215980600804484418156936767981163448316328576292865618567039199513503932368693121928849287242824178961715317169292623208771055534888578036285407555205925578880633472939906824374131246560687762362512903406043705934619111823705604842386484961602537628993752936425194079472556626397277838775601909834951605706429636992511936437887187429135210336966959208159743122538765208473710208662704541896704705574326661536066658199317878915612964213867751391918020400242791265234293825647530015516270912150770828097862179823248122618857220046595360745514717203778188877901142403312961275698206706685431407029152612745332449964171316771377106749746618032897703159471501472898092626224583246680000434639128970138010078696451947228038100395431060755092649709743648413710532255325707715676281860413785506977836935734304872166472227544512245028372479651730296880458427879624321136436035919155941172287610841772194369217209889483998172083457732639069439953272200852560176616806251292656152313536280615682943057509399389620071723967197443054127653942607860957797184473247113622300018584273128339940082499747333467229316620210525325752013112827999147081762300542533793360747600741225353565937499900819209774730573931409476514161255375119501561004439593813560217068652164798570850346924163455797860228342992497040389266795251365051831477403218104772942270346871748343834171574004175453220263142242363541496535868835361620250271683064702718826369641329369840091357564850930358832638328087783215399495876023438211751177959126752183759662404198369706472386767240652924609799433752400481381053722022345026816512424354802031966435533491944424797325310996601994895605034251900551087757238594123849402343614330763710014012609573514220169236857899496725811350286224494062125369295680697104975956135475564972300368289154589110312758657562789395479299705288941841790217194212039568477953889487899896319507058603243709378313736515435343129661308043930265830655466844197029937301364459722044537129858196822651862265940492884351517241871151737036434927711225968796241976783614671882313531663128819097496172887344722254649175491463550452139538823935979817828009314088589441865874780033910826668433364638984581430435290768931404427747216890063506090280516807404528591456196716402163820736162059394864738546785122096624850006528345930448865449571042347912593534521720043924167962172263074861048008948269944959299860930701076911358562385931823172229246293915266334637938246190439396784145117767884765019955760282072272077230498038931731741139865771005315203952296777260208486266602282823323792627177350394302472590130637578842165941963385319464582898817718173490561941923464494996731278971123703736965944470713258974072479943454478326098002297835218479687927941694373155796320999482304135069299758126310827677327051546194782840352099864004625482951967980876490449294193684863635382793280514226354178285662733156325184930109409679404605865742264012242460445184927341930222627967345299248026423042755511112205262858022709475338715458637239409718652923383304179748706670047058223152367210447645862453059417026531055077381653475584488453391071351337414893221044152223832637736037940994177279218296798254205816739372047017319233929142265663331024754806532348191921854863450526713868978473686039153486281315918226919445657929855026816100306953697796767955139061792302698845269457208264127504583667571204698265128028638973677743894413149551747072799106523555569134233366731154252203226713954219141110886747833155420991780377971997909787042001753569610197114392182422832294966497636214664461650187477742865005923449024384292316745105574873516113313210717652380551940703916925865743120434015409354647014941362858071624987250834836978881588309763757546578824913290427842576119003481832830500507430969487084971023123670072278726495865469084105315543357180253080490637067346676429014271192129619602028888780797854064411323373939274930880729204937099457957424528864624732343255474440345115332456924147858793718806987455728901669526897978149867779032240667666418193208888835416989123100964214142954751586007693246940903624776046086054552713226003547817110556045748803763534901148878906503497933795821195529081876573997739731148508279699523901606782891924217625490515103093497076270379920966461934565080861511411897144997772682252478829253020264585955000095086430435662622269074368626254666195981154958663157907550098049846471991724253890006681251846965523954754707700352365439505836193291668722158491046381467430122268448849135403247885083769041742714301662910393010487946768517513554242578202019362485014806270964319856184009431405181371728846575762324476558553913544853356458355452329278485889642319074860810461370435782848769066906164524297196798641188811736085574209809270399701836241915255385306190925136937678112040627126718692214487659034418009086007010219454597862690995740142704253087010856319100555298175547495051099770992228717592125893264599131236887611601816520669898087557477821135859303041338158118393119216864786273589306633241461530515216378079510374223078556815860812737810923079182079892933298202402001432141605052458026215185795034788472880832068897260635812826894399817933626030897199942364566612005501527833187790054683396069137391551626186883796901923993683571492697547617643140839377637419108673502340169162732865736055576657527199209787622329483943711378351777529888123992493681090972881197844474176004894950589678634898866647524905611895951624516497748366200733156093128171609195840091586223305928344093660646698846161534669908968087150555746493519295560412575700478376255802815836328285567451688408010075422395997884818170179585787565279288246653148958328655560829716325192321208498410525729032168406255387743384391363346612218721900147694874315064298313276524786666518769189297170966128984119753904349343000575122223532979995946566999284638774919346277874120422593881959703900917950476034524677938836656401483424714189541644793605479327650094697932106222448278757206484826290730127651370236029557133662311510789824370064382613471923054054886330917423397841776590905230778474271672951625348926845152123364895172899916395559605864403470003000199406726384245477976652557456258049543297992164355204643311611822371143427673998895702601214177929549631180719367002744028098185659939776746598181848994399750134507432111683995546074721123549525603214266850060858124142227497824923217962714881885999189485294215872372858437417138731726451644880018927687439849809726345581093319338282974248391660068195128961258982676149720775344924200764255329584797287909555337933856833256791829476937692201768019043372331735436886918767693679380189725297664513531539754176334864914577441432283017797422142552059560101823133136418072865650185003452318742294252625607733868863940189998704100242114717326048434990952041906866341081751146624645849763669899784320525923469396180152277630979947407399104432288691063799028231970326271410613715529933632427822740837235620935985079566465605396848441887332038490032220241490634080951418001986310863179974995696303428922270103347233361243632351604979232241026697391454958983630276275678814326648962114314169450098656553902825944757328159437359748852784313065682218667868364336446042121013128997226749049425913295454351384430641638306342134674915388648056440874599198720545730297493016407521687417510050232885230039897850359907675370133804444366443792924835898069195758461989052153726205366123387436324730185087502993537392134568994988334314500542678991664416954608793045411910244628899001401678538758103711757482726517271417225114073029396611544676657224701226968516815754107285201516700735093359337898305198832681425071302891527546797265671055602685873153645866108809148081228872077662577195246986059130394821088574253939995100355903332461698018873592555538379711034181611325668562637001748623450501704306170167604184047139752503595837403538862284123163886971369309652220328656220205520600334413723144349990729478747316009484552563602473124369322877428855986320841018569746319700924136854294396027910844672748617958918171355724877767003595349894888090412232134915958740903544754712308706583145472536112909174113786154895061333899924951142777865326353180959647631125111706797681575316244949252702335705142148277338743552493843226247250854244398682214790648132687228949048229194596229801294244122153091566789820753934130234697473389610778119808982536954673952365812038848444175654587165721277385280002725642522019988818416947863403026115536053250971695682090685437392369011524891046305985953075660288728026316752442973808731911164614337484958578671073332851904200106149695760858532158714314925413732261649942581150650909661740210262804570022018161529269966545016340040245044714906820214887410071353417853977406610976653245339226322718808342040633267972074404405757571489551324664479378712891408427399036101224396608874863033606328315627428273876992245126640090388772992379617764548148786988414727470498028354304897129930436142099895376558621236237076693798915247562316384791519750266868930909408655512854311183227125069539823960781087472136198510880367602609366558986207240768667447311976653922340240259204268980619977745637653299582941858688718010383430319894223751871496931404936799414860383930788294145304407506782970363841858811301847595359707208628434287777693444119224415131994827390965736921329349020464478566639936655690528624187281644335526621182958064438536714344587341341937805647969853620324488324788674437142519489058142164619383044120805497069290281906661618213700823193897942501357067313122513263708636082281437376710806444543507055641406029043610849345460857186974758618406522185529893123119455292154024925271983300608864395778909550549606069077638261449049944243705005079842943916209389455021076768128531926855311724924353925040182503040317684061324342314873195932695100390487715468880650016203859987017273979846862738148991574623683312858016116833817301579756874189834529467107970289046133188653408192083655981102477378243785608408856525129147593371922202730155355743731943635235907558367846864495275635978166705362413375481804625629414462661048102798453143500320203886268201613998008011965120738126439845880747156764098495437820267017672688267956302489927207665905765513928134866142792768047976364207018162217580550437200681443735424193139433990080832538300460072403130143961952644821268236291853199695117994153837764309538299635970707385890453027514328688947206080130449255742603551687676632709713779167762257929568515710452300809982235407127033284238129192714858240099394439444238652682822095220242801673656283251522263020985785857051162410131215909425027205357168612585739430061384089464112715828712639268882482911589402219579510734926785503156228534377853141520380062582547538031159314728240636454390261734829270323328545658781492919032178861632429312686852230089870414527353489693799468185730767925482372078575037179342440211204146992193173891298413593758079863744497969226320823315422837909345181038700692010634524137203908736264356683236470589742096262618192534575336808088794613266710283142122961687982301605974063193181956952232910503167946234982925257391073694328632110054857271075384720512198672611384580018266753443009401110438003017185786359441473106263488856466260303042586633070001995308231587328337438348774939758215104875976930289533188291897201612979363739787980614238913337582785469704225980949887382583198848876508474646813365346851265535603830975355215858021360240675256356150588422050957732378885274355640146798186914503162425955732485242311952489836975974788988827437098395617639944499520240759669781435957999584138233979830186007332087392580681906736407861925138271334314733700669558479041508926632311718717374864598257850794948918138947840372751742257697799760806038991158021619313088578319307639924810130102362434265117137891748201755591612472950271907116111228327527149854476867104320148859901014833974235993821976345489359748820936754897204977200380830825212955716861239465052538263099701498576515316954717933540798987889045272007483871813306523429881100548997223739221420948351886473798218101805626834630315209210659877185386060542598827131747453658034403840375152049263852634479741335432312631374116833215937443176075151023455701662850806085247286730863013995778943047969721558587296943851561669381998064651106162261112940456119640058504541188063638915242228649549143595381411136748398026697996011365590287593054554307914900423446521516771854567770948410482698741098726133053515600437966555908693286715039093872951611670725400301538888289840717147396068817644421457193744091986080177533745799967568027314512145521059789995180566798472655183242392177033131469572244338579824173942354980216732130684527833828032115613241723259525145784640820827195562976735176182466449235675010739421974629395739720135379087284872147836138972285744554290811044446630679187169051191677648510873952959399038390654290296166630548106837887435141223644112251830850243266708242002728200898033715381822613109156509468579263369376989277762178512780756257905084928769972969359653127006494086055048212038320927511589758238436483017899208095546986772108268559350182184264190279277145946228448040155483458106717578252108613068708398493803385366971748000835110377978268258515485642554425163694529634815799094054185410572686182666194245052928363897648941829357748272193086331426430752444942422060377370812875008863502171895879139487273571985833871480766671349481460011346630151422820681976792598801845192588249146688224231325379639063475224258937199466295662864185154196197602799882598955296450046674656719168504177455935679142993796787895353870408539675351673916877370578995962779417302748777895439157412540282675737444081166324291218032700236006909861910302030118237755424534266091910919041464455903272268463262547140065708792575806657481907328906325448534957792207484427294806312194828289684585731878625094869915691689312392792357492230571410300243413497747270153470958990447282159768057405477123080771304093407187981717687403085228085736207287168860246994615016455127417759993092648289150466277100527859242069452379026809054196942579457690239239370493347574275620828069042849501037586809674420625877475178855457148565228660833205128221302809799711206266219874841407739387233748622417593780191322178827437073148006326263351571998467659158457435028522685534060101386436580131004633249515288901807652932147667014393688579106943662551963253648853070116864959904283381567994288126248637137737059632753008392740390813278561290848625172206475925887294753871402607434461291718335241619125724760140131945116639209908478938009710257317102456714252844590183451333975760851326948732009324449286159080736653361986949055066985525997827865291470056028123751885864315933694102969821462030746199797093235789845257567212750790361187686217038174859806044433694248224518635533569863004944427854465690255468644380235710275311103138210875016511284292293338602888015754781795596729751881461566547303641329353948527830056376708940118435760314648809792264438724836835703526863739215396733117191850299792474573715961268680813091684700699009171359094639437586533134758859039756510715921376314271281399429567610641937780783904355583549923730506547910725838338140164774768131426319135754771965943617477439715491546091098079019476478569585748999204380595398396868344517092532966474885827633693266235651644752818204628324292590429446609379648567068819445623322337710952392572452003062540397794567383211728998648422990389123975312243152225798275474706476329583047870104399756285815491159655124305434453720604155400161655801993138560334855396419346739518361706697739505996143157208135332306832564503206463345017061881623591925057200189692766093210455539367440830566305085322632386755468202254039281664593808338480538917293274389600228696058685234340112895009446119552969269999226670239938733309035811322289414398045143479347886509143316386823657647821802731317569876523857393169062632242114438667741030186400166320429621909173466286393494991400577479953369119369465688553420405316514771500851111167579507497113615920707414092148349435728867283941169831361714273257092973922510673772078751415396986527257729804342120454476899742564853961686901240002453071755247940045503760700372464871826856373531372742401727198720788990825143463002146428257893804726146159551749387429678926755904043382314463543054477307151353551182306568469167300709094734152444968020545493828191929438341488542866594313494149159594081219954645922191364363791634285968502443350303808808237671601624808531146874410255959871414268850520425401870145785416029926711477757558265471974051286548715790973966694805115737286253779363979107709263187023710270769336949153672880919948418234117711501369608752167697334787870523540943234915845318625346080625794534479438457976903375258156978621794786232076523727387688578228537004367733163579112659937315889602992462850478210729564048245230015177277545757456118449975349383301426487338687520815621772832917030501741542403048808542550473632059951490856262194846349883678879155922450748337882801733178711542199012843435669472186568834836146220521453456066621766193032040483423957051380575653629352670008493496007368358247667308954941905889050524660623060655205609040678897338095878369784262374430861774379761837054548066947478525403911878479125697708941326709980733194928045080800381926005877573285387828911354914473577499557769821378226228220982745115439340996204848626078749256925458791841669038249538027628148128485503581642810356839279248804708095022872751911591647448503971020212956783139915771137715151049373436732748791755254106668268664752808510494216996597068586161495212135286803331736894012245724142238732019552079995566938089350250150031482712044154916066258078565451061018291131449255235832735508116931996405507838870908831965751914949182306630345609409351719358818694705170023406064218773441995101043114308514619803537834905868533723582646176196374631274160976033181677142337302814005997907739108886632453006294741287205513427191430652559603768092633167259123170323239299388964342453823580103061645075017603672431645735531926428147041921534028746961867979006050983904380375281289388510921611499324141727854831029637878132569024317431812040446662745894362090156847629867831350630427753056979425286288039705899126253593068655777160505113433821343764973515074540567005038896840461615386051684290254843440218157639735398583852382995855124660537866511853355722874860325433127852753765398716065181480373585458576051833220346016216366363008361013690914815126297620431088996435162172628582713328735305385509129173453520488578426625331658952011399071173302033917739962754230551280186795488580046549084076308788786782789866115966798970804177661079023914671983808911950356946875004430987824434316451850014794487689746124738133324424831761043098985336818443062803046172440441414976208352312381477093339201309136794869168111383611792370648307502847539686120809092328633555004088590874214982912556653255968387838112023706607046952977785180211585782172945694708182231062506734836451462914460490528621258341202685998011731010681259080544554195946361782980539533311229699481115725806799001681841359137710046677644523347012111126128710624024415738094259563280079575217620669656032439789672204575961877722776308948560881422416592809439207286006630390326247052825532000784438242595954801448292167370313453281269466067121855637148641160897218959453661382289502349318765502550427825813492143562235794674843689099926256747727600923133350803194742839334499668625888028925722477080744995894123554176092156210525161485459160326719254576878446853914825448117563376347793643389962426649139913498334927679141661001407175418375729530434710897604110618642980852205557702302711068102179683007711763846501027590320326873519533891379827133787939800955889684100999768876487382137878828230128591787981890271543433652506047919472426680326262019296019960629697732943205068264237484817283821654736279774154448638783370149978978039537911347464869544118963941883019719829178517789821024517678745845204282223161758364230860289739060925197197141316825252961079274528305994908215522315065459414786482454290903953856394999686868519006405369418678377149175459201731972683681791343309699188177568741781388994607733004545809387791999397280584110391944867338272131430542919298217373049060876881742383088846507151220775094901691926668785200575662791417776217730208636341329997056051963002323231000029282812814347440490019673826617412009143062715938508578893521051069896915835156269232070269019691490703521010258412098907262410782232212057486714100100482255484047022452412996241696330664685030050896167183714276252492132772957502603163033287840106077451544705893424350383947994079851106412585001186598093953306842566060646756275404675625232970742513941637629089638387591295266117431371093902157943293941696464408433161833833626044707624731567166370147126536118772693316583357008123610349706935546364424120102525149626617589575727753398501904279090562349088757184659442716060767383250750072829831633215222595216357231484864714964592924369510666552554874235926513540578009147845442064584835952765491848715863598507401678338890510579139224906298552958823551554582574264389084999471562898007838597003441945978300586194510581045215685296025874975500331852885600796764073103313981151543915929938505362246164777809943989019819422307955736408285845109317601627170835656365759483930460456409278885628873795900180397314789873339369306256834473618891066866230912159580061645481815384968933247861689041873711403576420362273238776212156845416549086994922113816703483258847097823935244161491227911163767679905901910217521707376403230686198265554029012468308916273618006252629246605429307089652269294596676746554406339929946369897373768691541051472915537648275533304465249417147911409413156359008378200900051076783277788760333280228991559943507869136706337653821624631601595569619397616735085240285061308049337894657571251913931758652063364801025096969640406274806551843081366561693115307733095110195228009711572716526648621306384066375484308030615985882125524358309253102820176324120502162893080627787694105881336675007890364639089992989561293588252309708098933948461156780642808969266619673279651097709112636839438297459271001490894153636871573889386992908056829521893344761867285154184563990143432077715958332122234663495799332162595986000026573296429777319097350821298239892976757165459280439641258682400539356658508581413848853622866059991060542184718608399690038125189886619142930683660071106956422881483548536665383512580542936386752573934305113776605857116960032283768604416495557313861926781468432814680873081309066583283269339134900570741998241729309678369846559712372793132350718269483441616221534632157452521175406659838174940723701250630350364639322991905398331374618210404567951195731084814200574029423588743802021744885585724597925753300745578996748865032688369409781327568229273558247108259687172034812528711100591312393137412546285887090921362005275503906256698382209828266844630389118435361598967614216306124259745600003714904398547330426986276369335629916786984897583386758817727837918230517051548184985232470688620067572029591068429078669879795894653332425359300818452817639554275935401394042119639679897731075620517664343196989433782301734416009702289710902566129629076803994853811033751002286758309771301350541693420227733179266829402515601814228443234617612067263186938013176105399730091559069732106223273254264620496946407511915463579572140159141190921043439746956696954775746288502332126837081776330720643387676599200681938394151601723452348726828864821007169905623606450835536943865533218701937308064412446866177588464585621593434590867866260427552692969035401705077444102730174351909561091772378765526060068707460271805280337547781061755122078923520901850698126591875015866314512928323245399516478485361557327431569592553184853611583265579998194445627605784585231252530059851775343042552450392010838968686261574896304530530337448848597798449280146006947507051053173484209535887663473338952666911457282598849829124935744195806101631478428173786871371818747570526894152618160454856788498514752037143507112967530491538200807131523361410522622406615285079847209021974008305222681106529483312950973243304023974876847121227335281997273726101878877484186037501399071630667501965956315246499358181339991464484019940152893960417252978913285842000788603368182877656070240333883190568747853665037498568535290881680558879345015910909382723252882930449743834988785536361087943484140818133035816454239924960736434921828690048584932863533285132186907520283087360773165142298284157809785820339246833351741248671717489778434454729569225658659627376161727311190804638257550714932224764102584416117354424098720762955978118934849346183612070600693501703616578958907454577131532706654460190660113173131151057657835351388715731534882179202132369177969105440977579943539632521679486026159930927285117469725973919053450574888328781400560451451092882363648956728692323228125159867990025772445306705450809895030822325412287023974921598858492527750922209493058970483212258268343368022193151071077257632990482437832798170480460335008365171784263076764720225154960452840433599779043904457677037758584745136033839510309128151187631563075676637447427630142544217854196668782064717959068883187894662791322499689287261679190781936646205904161713031082188742865255532050714390241546584679852126360677444372936843820653065233203024586212414038232533374317685465171655113392926908426745565795333096826570939962095630422300916531089021666164658252779673530851042706734761468967941487113503175420120460680309137252737487579374439123040084037787729623536136120297629231628892085986597899302854690665666023921496244134178374247895565198461242468346483400319034843685772038552793809694544213170903651993540531453989006736967155625297757060571309827439757201789699039542112029803292341401752944517450706465692813900003188355381078600661446282947379848233966552864948088838157366223291283751277430054331061227938979674756818378189104038635966042906203803642369964551137983374803456656650339250420644560640078621926247441341009030986543086132092810873242821065639869771584409576033308329142286550452204027725377941065806909870692441324027862741414322318221241714968323351688650056557286155311436932088896701950118991417510391081417307547924785701697383639092347185819955927342629054808759712181977363421507684592405459773124994550448672295954819357296088964061965681796484681497475947068181491285451711153261389595860405008731295854012124302136590506237929744860291192592043635668478211965506847277654545637118337297683239769582016836185147043162148658241402640728646883745542964538794099596042713099426173175361805782595502179807843640397206599527831027231661662135179716041858861621980528734539868362679721919475174948020341124528632719660036432377374650432364521863303105602034706408794395152911872103461655016156760763624048209616095272932032329775698272906685614021884024175546386416566571338015878920990432640960671796763021257308738449534593251448693969333810728562134544100844334503828270944462280759393439544125207065112299611769941107447831209090655476566156512320088490761290656195363982470048400017944344577759532731194731936206196968021261665394096120664528781562720061624829778581126783410567310359596895039152950689644873019126776105335040973937744840339508871921356710533691265962816799937879693995155625502123994509729405130202361582905445560779320485324531521465753143629220169000478439383794376699485517542860005189926600279146845585529777004613963948912108442364123237378915087904043365544991357652855623327527585774352393683307328769528813288873429812409594589315334950617286131674612048068855732184787927884960869533086927491431046005955872698636103381517078211254214599858793761374845169291055615453485358686705858942490253834520060146495174229363550562548412588533651912731613373831018839019483082369190080528622250272920990265821006692417947138940462653365034382426937426037267762552457841142849423914725977730499906141260921658576396126870662467634195262209786583879668365107189592914874631020162832369690766571157081569297752990769013212017915085560941990763203849676368247204992884041220732558385159501535155574480644273203336511243490302033031168589795171866810615656962900438572919444810368543311908328399642810218388098401142892572210435039230722110400613662076241540489769732365453549157997355553130651628659460902323128664690668035804592146890426808475134456497480225056158557600747171059469993869554827200169192927005402469473235800977556600029765052824963110383777918258579837740068402293684963253792826173693969175197679498282647207881657692960656177918385707542007588750302334654006067695872886032808872894129390614371302875968523647348702518236967578901037421124476453517441282203177970412645207652646506280132396027175570245880530550553093566977123247144295406033569213945201462339999323841695588865475338292848067806401626561272784936317276176816425812092975150822746601008880652510401638687808704087692985920599705262260344128672176389293039920204062642402942764061283201588848454046169438600785665821141413158918558705090536387927700723330859368731981852776052862509028618045825614132596986242311822971193646272802043036706113523273118550176228865266949230771170766076895113640109162499622547011905063111743508340402782158111627505029162066490375130519089410553502381050567889562831957724256430109673644508900099503558660460252457653744402981765677178692096900194491304824698316007702634869790508693075071680940691568287136593611031445796360342612381906306756463365194249783658284162988053086881124516201793228459897050315336383305872960976012486360185199694979552864455118510257093303559400028794911774252954375623490640109215380835141421376188320081842661690767178328777817908308853820673059445639314830403014836435933792751980719109093009473503310555854751053749208264628771874287202707260417634528798238981170769866176827369514378528971598809971588403432298656521720283439039611653439206909833858880827436750811077799027096709793808645935253302578986613556612914239728585794857796481267004305021211308598298765147756886851246931465430537079195225927743517962428042166491943164275375903374901123736789560286585232531859041126201185518036444372280454546487055307655212918132557425360740570417007366154246918397313320353279874900595288512857808083736466508729327368605898835670523437310289814048853558059602087989226810926708428878486251583052492188407494907282272444583452340401902246033629732896787511823423103279694055530422484610528948085465715146080814930884072391354319165950731478004366092131248677273055914306517980101194755532288645201162933018129628479862295695351686473269203244452925629291406188050536102317214370266066505819782982809518167175117495323127345784392273710793599374916643037356748360179845555588415291505126479453793847087768062989432570378667857193269490507127500458186871846847232412129109822392363811891884250958472798511366604119320261096975109027685616260611133264273078216924863909418058118485577822661636097994130552610975744603807943695751618409835234171432345122977696334364547118564035539887748993806881001465271048484801619982236835783622673830621441250402461139130177869344503249933228376490404926863646492083107082634454714731694091550141277877266246549956378438874921025167299352039669284952339714728655626367567668214226288725470145187491507864761615846154380207533218162064500493416271470146586095282049022083467821556790169380179981643636455342789940985193209837286953911642648094617190683901449146526653384622541826021814273019976025854630915401497388532087226304451672749106783977332981751991233040870628904998230438324820123428980490036788211825773883178978522224460072014595419200779348912542801188618240000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
44000! 4801520021283263860151210408169102933595428346039577780644006266759041355328089893571152106653705114269550275232139067522504173934498466288401908910752710097803906542646902721630776403407406201757805713623034021013672730443633637734197051820071473134100122269522818460069610163404601230906770028421830822187718710580769339468645910710916711503008259382667460424836612118979305962146749694284771724790001810857358804836224380835222093512500654522242570349751594735328053070441922596678913974567266387706389289341882647364056870440667806737871907891104382059130831841052346933898505526689243211193867903668161972152796279224716067512077029806956136653001801075969451510856885594676216669011150561605607854199099081854459535161201695132539184780302499743077116196446983428466406292069176721063723744799241691029048879020559050753916266155286808970132160417755048429917840536156054916743024245778570837329200361497877356368725999088792274539083085173687060936898246083873834581198499430507292792693315210706560258656817597737580538811529273948617930465254112131325637289629488228125889421368154306172866948053968579002570427746296103789601138075592942885788478100764261529258121316604154923322759161821832982953653166099856232152331843390210482077449791080590161470209054949290805320299911413739220785756092853849297124608082585035574849199742271281105396442890288448569992016098869417270932827203608519170786714162458350059139104887844628210735074002495101878883462664603217877133308872779472142960442885220363534289169284646291429578457472599229004515422687362843363420077756413110384719571856632530180175546080886364898788995284430074558654558233601395239646372565752623590186351058219703040723179372441174285353036182500595271853625091948599915709176174544019220418129579826709732696456646045825513355232554031657076054595460942563996805649655322791955293461307718353252621054487157317703334408491491365063285108919831579696162075515463447613539339190566629223752364486823674393467621456350318656011711609788796111051687625865639074048036185676258369174808323375939723264528063137513323663971349962539285056252971142527437364308729955136487631690799475768680736530223859674133635355424764482746098798834369187731801615137708783125644234837474148559590454062145670065192448700392418339666334132412290572955543572172265312890771830132192086094908967371837650194824597004740121715485287567259535527855746462936003087539278308088910676959644795558428251027143807770320542835551881769605360560678772109052823942358915386312782523050501788060677728189633892055331343574185142248804311846119526474346050223928630420240022539743942454225371271045830505324763299266991842460066187199234925588886773306053035894595609177976907362817747931500746491966426796618311682316168812132284173702062096209378740068857490789111205700705380704031583912391603471803792574640454801801963277927637844335083334316726298378885050403041518348068297814697804371524190993599168503523419947503033599406244771502605013568988593181116420620744774560072340267113835925067750552087628588362666474188886658845413806297940182951238922152686642115612880718654681816512646303848560821873493772897724024627263768441975350372785208314644150217350746154660463117882433419373181243335189771121080445027998201299156217836565845700507576283999881388912131850685123294986497833821075113045350439896738398050668186540353975346447171619562782988418718363338932211681337289305222752904998708175492927594220153700446420191732605172201936637712336431389294809111226505589032037427136118496120794357648585428587955888643859285663617235383512752535569710126615933008791805489938430304111538341006407604353786408579853222273030026250048933857519445714171174864874677826975031689876171589358025668054392991637461146144803905714236159621036975242188739742512093779959828095540992792543676604208608348635021946937277018191750962563057550731246992372685220820833800149577322194353263057611248599954175919950273642554205995799062605598611071579439289736695429368446659869396944289610995302046940414193692149287503989476370374615935846522532116340116026241663132878119493412389824991373271601954867002156955500139291302082446144040560442875902576500074743697854042059255209015183377961537390255227124914189051261785424349859299601577751041078368391328324720022395762957907852652183822878778301856911746889024938120233965255391388721004159627185688486858292285162444263810725678692577784350693195943883991979063935400398552790971958328035076069829240584466463256794545337927711340242468638511125438330526720762330047759353370163179396904504970380977082145914073333365870912863798016058583166963845455456139999639253754542043832997719339305495986987340093717057929341155775768668833138238273579101261605826029422440890758608048406969616514091601463771411104266812091892572802035384799526859125408033116012852911241314607432154389702818323265990439285736057488939511126604947460215735100396733993522850158541335538751951703021636256235890741010344658478000482342969667403359582646042330118038246129798250712020994837227325486662869661515784661605371435791911239199791365517020257331338980880541506743110491855947680621115151316943514133892664539499463071845970565557176922636227577387584194970177986470736225184483079279254898914178889562502143945834754596935775872085543108278256078543221778832851708765032291753276424194118008894575659789673606032576725226196942572403178010378351575647432620613067504765490552020554218136391207861138654774213937747404302199462422679083734097917685885270787382577289486325893478824237576261349998124193663223173967816646289734919767350612330717039349098024567458773820386264492109181273303828399853420554770238881272023428794576849763503560780120523167782223248284469632020878345766432347880265901597357130060718098694001146422249819276045931871000891252929323646321258328257620655722054768549733068696387309202712160067112047302200067959305550689023529121279340539450153651685559319610279518518423407244645820591350149366650393223934766191638042506303427034836082608771690842347529195885309743390063295820181407038281328653881020851544815872406766182588621143490851532866222829545885834825040451867892431821804775714383803316875512824523606795044571199105032560356157490861745093672050944384115157192622449862737416337841638562300801560023945975790750909632248506015740722295401181213711504459620325235359179341982066103681071855697865790112509855874074295718628348158608359203758688659158447596303738859591285143987899923554718136327456726895003800734662438862267706028605534181930485726354187281812719020627380271666962612106099794657066486170218730593348415934955301701232855829655596567650699894183243798095496123015323721315432380019936356330978602386598497363732840283237138696320339052576604898058574774557828941496204941767320457591527491310150170899009506083084120759431030102058386879144562380080086726530547539977870228451593443308726205871272827187942856778582096030375946497689504504854201099618424833310600009678226677279754498816562957648548367824564539323361800904825261362269454155686759801889222891324646080882722729448584050277889110996471028312737315149588258258576551033550494300546757186385174753615058150573130474337703038034414476901770032854359204465975675812044714695181781285058838978108160887744095960282964104243488842102491376603584040067825300213847830816909583183139333846296388478859448442940429057223765811962226806416645465695333673779396625849473602184913470129678369916351895736110896438827230157575995612990111482234893754723202651728990152101252546033014129404532644415785302135996372090068547550336588067540763976241301375743185821173186597092426127134230918320969372840436800308356928103289006145024917087528897039165520573832419702081898209547689105018549904923815707435072635106073323253077126702423672915668071393375284617429634411344548417692844776854782446458641446080849057577640596201737196694620303643667638235629291559874800924480628822379855209226382395111278361309263918694863819128111833860185734478512360233055549463626711469426121291236403427093411582679697425767209971926884870580862491035858297284023975243187181491287812737584344491365460557790174633481606966771633518376463807953857398747580065028946780300339526018496450690873131945178172764638702121966492247131974399302651411207872667946389498435251290249083675460817241745767462755628238787102074318149417062064882509782058577216033735032364814443544689417690889699005743515140533475509980740135123183564593038983899547325870123033058644255741127417670836295289327921598944259806698028115702721761323038999387595503440425255860576360270764455111631061642796521352207174733416324404822294273600758326451515250546843055870695867284232315584354345876566333114811571258527107939963769562970909304886765984368301229574349586632779059629759306381519852648239361478405853053444679023958662913374897273441528416106519197186604154656973605228469785047477491674299435230291689074868439758553417689791042771887783875723946020827635345334949679759802525884211292365359318367259191861100300644336695053999761496508907528525361861139111562693081594017936903492227334255642958868125796534147868664082428669161632720666483701579408165266263375643991182480347307613733549378595605121651054934077668732123475762650472832314262909903293566038635429010084195343099918671864810260585325787915261507934961945437984653690230932798189214820899901703144926211047805139704441210759070622398561412148739402881403957654027519226629573129569165979628263025324450440570293716712375637222530551454938559266568463505716520566308884645814888112663681143510922579746610477382900480355807913089194660549520918801846707571432539299950033267126352929811149271574564290176313155834969215266499664063417668147571815735499464384205012829092954445967612374655380512580776986426425487498029961174707951127948682518551729704012663153900274157429079917956060275580462683070825476179431677243600514296980704181768229087458182416768914063168527499341649646751680504891651768456053813290146829831805412424845403629008478409828217184587335684128027271692105225589409444728712871015320274309868941655347719018772244713032231051630589386721126402506811999853726802047942232148865913759693328783333321838344811910793276635232384057636889534684356188537951586556231494327953186221040372781834405127269510375722843011838482259388559203703871684527409958623944546221739346582110154639786518205446951817663915833359171542065079814179785522913545855214350678654839785111523421148448424297046813188732371333378663291253733931248638617511869403640786034452028166110402129373553356607380804028968842647630223416359616493486881122087822393844879583939953972016675197082341698448854564667203041973737326137185167923781490198596227090012528776518761848104816685459489128169967819578771427774389129309757786039382485955473770542525115238944914092643789851094440166155133707352483377725540545801015244074384800841197572344538433061671696843489257393330178211095729162337936791797819139930615055300198730899066518907715982665308337624566323904337161291910980940510397898913055555966212948759857240155139451798380425646987802368852070461416845832356423739670895732734983205021999107257203818196777456538366880498669643910132310584885066017028845788543113150887630317040068760026184583154397947850433094873985193668758429410562813669082695342673802665750105484851385542731787580171522043360595326078539539528568452259508771749683835631398865242761803797562202362572920743221392224168676063111072119404848395478659960498935241217631353881741082130675486132373990953984547321932099623232504336141945764628892381565807277972803615469037016489629226958769127625321090788824678828275681227266771789115936362066012237669464208319557613154913426602969413733833830081528288759937411621284921388456821527171927973483997285693837545117935981663625563258221026402076647059349987824764523849326514869729266491104442392882032799074501945530323058441895584306861201021387939921230925948175835466371170275909518556806477225568582810364871522790004744603157831442386776494729690485356333266634861283039347135916007672171451024424233164980472240870813804463570983963156553941208665241037151020635526163382520037226442997531767811938072088062091934705057469538675547489096677755910467042776982993073341786114433102242834969786957748343919988981918316189422017125916410474030966628115969955711532634873852168561860676039617353883125453452857467992044848704488296583073870190481139608027266224586443909019684261104715888571949027038600024267403397897755974292989317188629921433138750485282602713326785476636133448912197921399617516993242975969085564544149261326762772050440394201804214811969337578410637041748301594417045103013535160118834271134981603122973102512711891517854572277975557837030273055133906667283338057743039703751016159802202851025582941495418469134766885963881117361305514254714756994084868570279891807380106018373716436529145416126757459455075068478666318343823843760368466053741379463595888907090085625554627950206871422458850419900757548487759677835188672885533004100284042889112654240177045189978462068706500595850493126645386497688660724573625211170908177356110101701172433673371443980178295338501850421864061579340165427349737659106949821117549920020045340513825814597715883657172039813675320171838021162198048498631756545428477862845464702118761572395819014822116108247412600420699192759863257148236972065748031458274490581054861594809317389147794332423312490992554262196745603396314753873106256646831102967057185475086088937876670220170642574765194091261176971966180733001902832185432343764057952263450697260693034462933259012337144593545499588089243101779023972016918527668061803010265397272331092573283724587683005197959529767711162941026152770822506494583629411270454467551310590364593652902481474211168870372854162437271824141484568343536785866947654253521846097043233902015145917809272817455111528970646491182322903394552155029678348004247900038050756652731172235864104600303258687222376177414204111306450590187166418043879049660485824540577645575701476321355584525495666002172054268740500141433993201297937915236492478075929331727271922235054298065766617000899290032464401189926577680129662735361436188951893184466054969370577685041653258414926484587123890682858046732930992457599035319709672761107873268693852666399165288094188140787731970651428657504398577370535130490620415876899343011092014693003648760508509735582474687453642954760406747320639307053276471681820745724359792598314059413967812263266193657727668339183738248980882321335192966609500947751327311960652198512786069968661219126247025067541728890931624796134681499571184430676948581785202615608387002255864968696195072862948685550373851098337355930868854918815526485477424732227588939224663106838628082718936879268613979699312900992353718979787692162422049231021563737174607595019679111595997117220217435747285229281917867312782367338915244858280276489189987230217014554694845317336732148294755095965067516859218412958831765260192950409994169925864487057204231937159146552809309278022247943716929751567482556625778929352752891149179995812746752588991211646172705016515809571684598545435055899148072766908507784873881379674957592663993042962510754871069935566783650383855465315425581997932782921516238114455642492450337191781532512387636987073023475123981444334127637394810667953272752533611232154020800427614770115113605806820282956043898979544491432040488074105797459229311766270039370701446516289161075538122285024717172659407650722674974896869036611162693470374364100782737947135743619751066911030513927980130751355816661076828634515651709462003657716179925943328045758121186640443707268833198103845498124817796644449264150068655127234557411791595035174718778594427025989373429631740338989180110460425929771563260973784023549099678500242182471247027200930197096970342636139666569628556774514554023502247400975705649237778738355107988255321439188471160119306986021536043140257737442337665128362086981698577641259180508610973236162632477360075934008710831016704642701033490572119366730939938977050771338928354331350370112701169051770017887163319654509776751443752028505804300142954832288189231641162100890615522078490414101129800661211827780343313455685926460294109897884400224168444324958408363699205000795193444523141123881884379364063475755465210672976705499188192075292537740780771875028403678480175376913990381093659424236794563034227975344346961598504171927799631958918782838533520959480760248457744876314791708086636308967462542899824118294070003619592969523177123946604538597252330891313720199280462735276275105901279924643897144234096628225698905182985358283846150438871741398145589931918036291874499721433232749854016982483424220385372304553276968878572436902090634736261423842203256748726096943174651486579815633732593217724212790248349177092143991546114585781692217403286620001079455633047223418020076199610354261928013964182074477642845588453384002436669766290948424922655809920445151604975649731971244564642191253076918419913166722517427075380963197049850216575480018643492912063739939269268887910919107965102692762649038642638652278164832115308423995118453613820362389596945956298886595292904765511616086804384609689402223235764039539487257125883432209282713308179318508820143267400120186526592152248882207040536497847412159548198214908891635322077954892054826410964514887062516855214637203978823725128450286710554090606697036994777256852112228088693016053778990105805887673437121785275015579930557767862704917182044438293136359679666062804986679565627859488253646882179645641294018359302985630777700509171540520668882560876879582762808915784273922138768509273908899170148825254777835662393810290038909954800664626419973471344790848156957484453018320409320221488818320205855225629362260312710565083688762132420637853694389627749041064582058935368501313800072023419183937095461779665329877535198575208374689007060999487486231225190707968297363989341954957548251640443422342256194709392710586558704825117618949939191483826643215561302924819392828413962958484534437714299340904391697415396195746454534441020446830908680029047102765467462363670505592973429318713975363335492723962931241371520155790444023398306063656869973634987113953640759584378031258243754893669381943917297346638497754888896152854792620702988876407410445960724554484664812910567918478510067928803783001792033122146702093982199514934253266143684896999857133434073741100918002088641606233112607950980760191894300784405409726849073844531294548842273111134298444888973659721036958518331568282307662774710171264300174858382338308053146408903126760164138921645002078157624212461100189113681286160692824168427656890311106743286079848754203475987555110543989231662968133254306833258225709291652030859042776744821006887592408009540203373373881277702458084809772499486863828163885619263338940860233728269941313080562314936386628173416901385761058059112124970296156614459111031499813501094842837793361710761872664482825849560403523491922143134108227667902797141157184398190455189015923171469826024076447508479621761988269424858478677719876283338796073265916076002662090346448353085421912990875294922060498232820799004925311707533928577984868278577102457792551620680679921853528612383794241562981974933728906619138960175579029079483679455245216106936809031687164618563674796617340580106073406217629086207264542854369040089875051950819108475466625814388340964815001644671470543518731596130467174083473433760727075030642941317112122368949950020420830749533166735230241166912380383214177911355329130796138981893881930402276099147123517005138483409437510040218074253657195259863606109846493419594919042885737765518817176123570223146302373223404526496662684846169818463347069049089963332493711967904312299052543414141982117724146039970009080029453025001544105074985357001274687499545030709823826481900975899780891004046902750102481573160153712389144310399116972233013687487206238481699453592577754200650119254913379198346851018422026975235024174597099119565457222257930269633295739001644632063162556519870478496546738426504588782358065499592315399555812547168327723535652347894816943085064453117085438765845104563413362773808919677765590313006689905248945431204587282563660586894649341546989757828372090897416681607124505427639216637114848702725421467181539589030375171437937111437259095580024353352628144155113330427279192259346100840329852991877429180505274224365071441070562581727123948240938036743421605585593822111042657255336456696252284577193628997883382816380638603639067123311558002829736668762414726653561129359027919745772233533751144863665905446267118781087551962877289267854783205846078160412120665743559244774867529211165334928197036679594272555066929604598745967010117433559948630988620100178318232612655998375423187317231422171161476446824672394760572309335285705619979838654061105241207572445490083172412283115702609982898134710410765387981820644177179380553024433461434061601488841231492182431853783378735622233840812838666485510479590038939723460659984117131839896759128230126679281073579273780190263305814569461860990388656442650796106541940242915475213635855968375438600905071747089632953766307833392102268992467287317684384854522046347473749710120321762103289894278951974509989548855698170634854767216446628298089979027092375007659357036988479655691335292069690984761955515404620832075016357502389848086173559779445769397563766790707080941266044477712547149851980084328567083469660019427033238187656964626512294305834939717965572776917284424680809924466058133053624319249433792452008154901298778426240007712381385545370759266725142784026441486858943854441893217803684812418484930054298809230409822410759087159621833279244779818686534745515097050056257043584663522023944610290923990079055780893394615410066781703193955365930769627715927910538436473075998761838303480521200347414631931907481073628827911874436736417113412187693956814057443952336999998178420363101106721834720496131146007226725950964407463313349178639033400361191171028720122787985891845335042539206094480408551432483682075300117143330112459293454447831850243449111107290006065661398564731793052629932974709179715216756203097648568925999682996586580546671847660133749331008015033019064164337485099099443479515905989114781733733823366547891800773498717746491466305715700778045025224997600890800523129217155372443627391291128344915771289445494613269636427550189052787298827012660574109831389826900926626222381418836966264477940661299934532450062246081388400951923002655472963425377818711628217463295901255800296493150417617588105589136490692684827254548757504051397586495846102951370715328609910607997286796965808889573274495937158070522204544759693989767883068485983242822395252557428826574612897438465335371892888652008445205530220851777072208549618264079763775637003953346057347738698649817067224237807970843951575019348901035214868479169769489390942715277758746344269260020496857059450401154148275969440926971249775739308076940128562766174680764552185297811595165523104052323125705974926027995742708037540408693454739942243992832777192181440702202417947475412829612594540213874653743893139866988845775779510466117224731990735936709223568219060426001072421277243223468234436298576865050676565901700723605040744597569169331608176071554549027313001658990679842957295069875707654037272211014266921989185411268686879617980762847679227978232152278476304147638304732934791469977531293999889722148661617020637129238498563354006989977994719879134944311272573228848664770474275051352838469306305640852162745209084318760221852556582463346991165618021144091818362044339424669429952060959440569312732490089124360471219714561282259854810419963340699363369578390067915719548439484453249747423440095229141652667399417234368631272146467592695412731014504329193547094405368307575138315604244514961278503760505892897715254731722903325044125734531936306759482737148380458149563372096435474900466570575194328647762302396900750000629738472741434170802379476540729125394094438978616716259029419859603884401413940320788012073051939972666861963629823622111704725002948673330648183697440052715495100559304996459664844281880901914802408185046794122637167404839492107601685967154015683355348235177928245177438937841582070983661076407895679904121322748192687555350405374738330824780193168799261855031794121512911315684283806889353885769723219863147546456914117870462440938351047946157448911373365578887824343639756856962920901422786520961563182581065978951679395593051620839883054949011731223789097982975705347608725224635826661497341596630903712642325810041056654530064008482271588705304546665441865187446861013245813584614018139405484828047581486417102671578728122655173876012568885731259140322045606478023902635022879739280274130371031089863345783408927735616826942576286283945768058176123582092755667171208814367650576470332382716725334499086559085316355912213737863346581577367693012263402918508098837446483323252464506228110607773215564030191825061157709296784757919683636591388923080444724118246712841423291359555583000153680357300552423948632008565796618213703065354683002829330347132604578759565382106587651198610986949733377394101598900123586738831792896362417896893158440539385065268227007702735589066815383013987603126300896839217863858643282206450273135082752626216600379386336214898489572184557182812469279940538560677666069826381586676167283146639686953117810601349786152412256742353407290515485097647312418392928665802437720764634959953420503854611915039497671764248602118626141062145099862618597300106030079069434018845294872968403341866757708883562750402621017931903526819681066595032899042451031416346787282535636199000521818353006672737365036165730656540452055080337032265415720362334863037004221525994553388407860423760751879914301976054130584051775356187525462793317389276204889366655088818979005658086583589320115219086217317272505915981994398680287753334450768561261941870298691437813040519265457130354861881230661975923716552376580901962688300605259168409685395747301053202342769073201406207742050672631542570778057878737335293982105243363346864037184137303636332891120210102375674264611653459825629186107180516703681250130899798175777226426336708017339751714777720486227102090089337436052184012331786555104316871026266920899582361767766086673098905742533250325156347842665132311386278517341134487101927605080784272574627893537630083795741904799597943609248835964894283356661392025809039988906862145095354692099172814450227698637016055258680106520433776140671017811588706995242457377444951281223872221950111159377763499909249957273154457643831405216982477017656806214696713037087708659350737165978196324971066859510571946160607249843846830665250155486026169228794190944123825481354772209570448886219298455417046327688361078488084735385560698227553978769828080043906724015354772891649811872830725151744057137832072105195925051828022902078848493620617017075733247906023459329492872187132404922955537158170557564669307260295336493135265820020851018356224551808366334916225092990684278238642861340323258862972235477937822944598781650248807664189965472820452784092345526377666502219648759214826744803175464531439508617971049553221394289477914991661393976330414639236868633995630359199189419537363583785487050706930545598305034746435661661055456057266946584520317719595835039634495447458709874622874124790644684258095524859796400463130671836642985067007951974567636378804034848692864371522808576540547595912040282394549015580226520032164599868740612167049507263186375058313906011570321087255996191615968817518695284371094669627768022875151388276556592624615377470335845930675142385969962834784957258069528037390307433295628378660149947067601707889654233144405320717283281861697786259177877746958602173168944666562457431122289391926707467869387220045763413210844232005721870545409650362251112432733204037164804977039473123422398092387362654668514092893020012546261827611051040364836131471331047834235095765112762775122288166654512598450268043817451706980532206902568753884490521380031392887697158318950802616898219933771927068261036997533897497907120642278460178414315010316415447422298239836321680258985833203894714403514449089091344308888159228790916640999807927907575982261125467017123248618541886685689826641995474967201253869052809774140409112254987304071125581352801601721258737189746687263719688523048224183693230735262575472024143591045817715991588674011779299968824065856148284771967389184243360421026700856226029784398072075750514745587875098622696622204007286630438601323898659101937528345957322134697305051824542312057594419201847727080552855648180469158301215744798027820966347972731437291440591159362486577122078519046171266162493974189756431143185143586515433314653500205450958340694972710760695111549864768359217568877314124895934412713280150756540708955775342278359038696909174018635445449605719774396419999788907524366035301631861935953336719724887609188543862928065885694481516255973043754380844697095769092239534788921048334294926248570138640028440056045345010432385825967009349641666035248399154330816150234081612421215319646392775651640695697276516082597135507614876846044473015877436039862904301912325273578977032772470306398949628611361803537662807595996176696878797542359513504878382833408796863011794321337241484929496966403717818045118903206988106118093190440617497844521830919677004935208515280123915106064454045910815496343324601963469284171124359447366499360721223646135553395873898831310389393650740519532141387764689871501818981068800125539251939291379779731240462144698197527820008948434694671201145261874970897460679286418322816494489047476872830535937291645142587597659828861948331463418470435927230828100863231239231202740618975804348671561101088798538101289150929195954522649270216738917882443045667526944893374188636046791502820612574356631389373642351075224838041191947347851519747707073636067893209528737023786077987357212314837767098170596103841851041704387956312673186378243288329172911450218130407300437860994648648613298980529969199341300164149297095890451605360894236106818090773174420517516073820640491505687533180751806773743211962262440349867530284296831811091841872055792921097289947132029610582955999587923031217912984590717110004815271090813722660112635264379027025119074868243726948639344150676038156143470359539674135823378452024881875203049672129921364341012495753230980158541794260904316832922790878410473796000073091204596410910479724763292713724553602470603686182554257071135335466432997982548184599558953033553460991734029053730461157396583914140728821356660996431995686931857646064687881809147457356849639716477798244422627281897980396940266794198661169134532469565589909787525848375087186430648774741850785762256521276283634018375116134180651912500941358941011929397272926828956766425963225650004776666137034452874313974535571874347677816308142300546502734048998042001306987912866260658275681992227747232651070524001799904235191533888265591598354040476206324833466227663256365405964059601232764446485653432010317963311056074335611268555128517102431906747647102812453567257621475628041958172513772915098814455727080493799574160682967871121335289500998222483364813357732204123310714762701705049539860218274955871901917067090574917350613295093506824927933957893999071850592727491186092210202504984077005587983108000420085640014892011011364837233544450517448603546164641215908641298624768890691448191019745557733737796845638532740828526012698880291295242603522059456227229036437881095354546126464530325705692622270195654837128385644032953904512602251429732087681380696207738984285232130083669744059124661194264541123081718096487175554192814236452486900790105845164143563973493184581996220097572599886934381801428710934042836943307680508852443173789305316597896151704138277098132274262571511212124844088103383078937506698561128734104956711558402345926959044761823957692444911088896137959001941708915421496076146931591211870149317060237288021584485683061998873128630631367894422172424961725414932693541420766749428924621572802584554658570338982416898550058689514680915829131189985645967893065609553886195053736166084713569101406625353359499490003520523732970567501665761431610296116121600973478362266642273679439521271440249907937550361729091126316758745212394675554854743697780101704512865937907456919873096079697039180724499650187663588594340962355436203943336528300989055562852948699374537167914467964313818569275448359216805380601539324569127870362504046322128088288705216991235880262169031856745201522592280762166766631754494071620469634051297252788463268431594922590410735088714559735035652646252329705250630714646952278926138901419193429279069056746425227860586770137692079534914435045041071399907616427465326618440957372237470812669174951067282385445213566890252625772385348125077125508934701684624858758177704863118589398229737157207626735927995367486893377509306079952171980693286509750127410003762532214980231725361600078592021898518585144753046648632749606003731709807624973740717139932928195103682498347235743551710045082455158921226170208522792714056194999232752959521120188918471026379341973966346078252498775673408132346784341503555337584869091322178472233175062734827654298471907801199038610897641874748335809694743857760799240781709915311867350172612437997269325942412392029369361105112267860916967895928188338010167219977958212945765651516691886288597383472180067198250881219173869423453061226956092640050628822511997902812391367405219089644043917289174502970163960192636332519561273857795882408002752096646027480563171292076819016361738217562683694773004345688448180326691115210353411901338451232008484916923161788166294542690116665102141856272563518178819586191264938589528979513383169363876563284662027801749750463279865255482045838231671975717038754804068222344662106776369312726053258303347813777838238518308923158456033054628008672168676391133609318867840244949390416142498324591050031056680384634816100647520057952383390768095548357213936709352862050953259656342702308998015950068409801851061964448663961176394832348499325890773498117362296746463516216100678893613815578667641847813842107079248861616973692363673908729901157743684352732982578457357984139578456659085847226489873470564976447334915307264858774722156327313665583591633528031487979834886624507220140273424446432454495029589932929359822074769162155928686707424672903310224115282019205998246029510348853385761307606416467154259654373303248829472164404302131624106142408592172049331336100053202449468565615108085635831269700433478728211873158970323712577954372044279364182871546178266079423568345983623032392791168900591563582553390379507117249052612729411525168146618398173219897250352694170365962333351839679267343191461270969861004975152436839191198141208384751491743628138795754084160034009775829345846809945951935585593471715702943098721599002724682606921176357380788243923859468570850799760635862645000631307567034483997385489580739133594817834156282164513424801123798018177706252360146570668493722673103036546247267374610976101716191910871696765522557725116362359002440148815840661873942653444112693358222738585844378316860447956118232400803539456583800023062042432608096917423588434145262311308468234709984044873552102867885779098153110608469420899460428414790980682019005319095436040182105957533210645567781717028080034509245780308584081648674516565247779422403189880255482945624870901215879473251475769072119980452766330204694236313543218339954421681199964955280725416365315626231330004524094194468950097834868751589136838445696076877131128778831515923830186156023442418488541363060383518941238968531989291556591587300668307526048761675329858863546147819295914304634860756263517359902696509670166962998397505260423970826236749902611381232687878495203547893825937445948040724568313036788045210280500113230126462666330287431626790624166841988218650702865941522333676754634170027464330919205252802207838067767098110019261383801357410247478006355465612494599131378199296621923245972548448085334825287687724909407809386721383361095118669494162967124694153008428954943097817546753757258047857399696454087091461493125234104345435165048967952181992497681019755462796495753926423055362712642546176914069237257140012931671742365590563338492244612676806959186068708460949370878686423660681695946915132454021260119199939905514916725919929131423453722724715101946187025396660649973058058919707577142329578547757477791467267562401327034313189448429824532281147723318646154565341029270556580436741036118958136521735614970199188874552629988824644670653533938706091332507222530307293748704859456617574582242692632217094086387404652059303507358925407850753175396010647452613098811639440924447840003821918996247520411111360181490994119298094682145611533316501491263329951795694234229466339766543567501189455925215170802365273434051405382045168037258691897838596979280628690761731025222421011549910181299839010480357539819390855882352181581784026498335604146988655079624504034734626419103808865677686565272682178507030127080138291672402815065992073838601477368009290597369854225446755887060996412559693607519034258646720905562658371997539540643967811383998085209862631880929859991494027730179284378941078689000144766048848282968113380035900467545847807983727061270733850426926193544840536035888099578350676260948233864407023353911188388041586992851925022233957020139417032893443388206728925199806381388250835747699496791140297967424725223017036714809976449484013023042257187042231257472311173388040713784362543866874388366357965229111901676293902726090391936494428328900034476455508197496026517492245463384269840760583332422169494386718194920614059508472014642369684888224255225193297065095895122279772793610928156835236845368822209065043160028650954701531596651033929297910419498247193937932009072452018520634600908857740495592927282316758366056568011321453139233715012398866332923955011396619794820799600742300233798615236004972978232917971423799067032923856823066330489215586469498929211868498927103678374487998965951415528977083803530412618675134392665321776763273526856419035163916269813497189310678361400601814755084277358484610957628665453904252083563120008926445886113773955620389122959899072553996700480965414684176550815137976777138835759647620101890944774664987255536637898386463722752347792307434314657982927309955529741569798375393767626636254496854507969727779451762411913067300539383832193273951609992674839140561544210561835487494410854612418214057958521816435989014610980089568044969346889546288535198708565012960249711985447216423741074171935337591066944527812425833222849682262130552076385318476053720152195789105499861652514804647276588557242638592859092687417030130094468846369740157171050004007702863089312802607779091892365582521992996665133329316060999634042044105519950747439960267245909167652402315047689339612770642460569443548259481965111846899053424890215229182287620552527195400589741397330338909277902323183289995088562618410901630218540415568776430497445561777143114268351307272644295190148492109647220210913762115694297776058320829908357278231179710029205017913148082916406275369787935918338106154749939523737508329442222614534523368012765253094322730757322262841219814001735086083072053855935894720224139036751195870529375170821168669101273097391002718776714291619844841348980624012117990044858894244798365111337346088848733718671707911355920663132642676294727297834089499603354946692849031872667791171756331077582675254051567162932393677583346927692814882407760156403693651158193357740320439498310735789632270907584276169943782975531815276446927805902813573512724569501139312844757182748852820310214195574889422792022842915884503107463798102077972854197298581789187396086046214603176749517203508867927058136780069140544177771709030909448562156499930612745336594072803581706692653804196960917269175983162921964604355412322580810112985046422991673382277862328884251437501255127345779475373123698170655947319613247654793352507358645092832563873248218002031155608041626955392678527891258459589450512349550970338348757811430422251060139668847775288261679825728466861066891123800125848870204747468400028010316667939460857866090712269190181716915284316955483427250177036318889066484660450617603553838639618339665919451468314791615801483333101085396811416824811838672018628117025995132781483694601808382933785755623535434729351829736602128611499508617268063075903940016028629688952474455684408217632954056229403631543152859016783976573606399449996391758083141587466961700222299723256254543393280723331218330877925256640229563517054311498117146716815589588556019391176410519059257545985697438865598296129485131295493765081667794280019510761998149027796015679279773731749965126163143126921623434165273728752889046656463812015279406513807423645590100511788222197102478037191468119497630545888712615494234383953280862356233683373821340719998675414964646479597623242072884263443962438574818800158126782623269679359225176339019648033875579855473340424757291500595207746320882647404803523238302529083788451907925631249000713722732579550232883327292078630590670613909279684950531988761197895278646909616271187279439666338744694848210452669042413419434174752416089595093593606358878924362114557391574691031824154772527769208875926846640569842829194812840931208269735350144666708195970118038284615898160520332577628239224729173361080329617380235033848106443533513228095526108241865807179679522177654204735067779722366594625164339137221632644812043488594877700814055582035450263482052039157753024257403221150518952804967214205708649861565935738849059647295199853069040756270580004150669899370559963176354585340262610250261966054606149832302481481652994152037117816805801972941800429087507782785789395611346953143142189248891096432871740676950526669530157986531642633813822389509693054896241500993500687865776866510628432365712881401588466030692607295173569502132144748946270074654892416891046137129284538728446902516756271506924620472315738036934764058838550055076380987002263178237104237792243127089660197216341824436847337738347454214254757021065371876929430624059498815696976387798272063515753929463681483882475086202522748577841437762488763594606429626586975658711511693683459070035266709778205989417505138471786895851584909613466515013364072298146972620942593294441330411280174823459008657977570881361626628547755200100620625694729828858635670124612824979572150408750777214010548311649069131258050092294925114281660812521501601016883483622695666151198081459258873362040254895341456500132394174284758166391043542549492041217891186437373541809695152714693671878029446425192162858490117132341315238531461244572082556508006298052713990420260186460854182159570462411284514931132406439623325825379964480645068664088396301110842610704566518226900819761331639914489468123021874101232220680559094297519597287194996471647422569536908394291144122086604935407745903225657037859310940420291797734993299745322432262790701490084339141889309490129834767049337668510740420181973062353577692207519272063299039238092004960588735334366583594280152878724069414594035358320213536866493796265849035137503199267877754161334870255532588807001680088960582992390697335380600100092417151125573784311583144061581414935526913211686218943401861293050196126889770493680610552501904161665155617921812795316745125562345337003876012074724591859049857179391883795773104991175233077802510686567114671862866267300426412104611480165722360866130179490146032723463359049339601407767192944899913780739481895045745571121638739135163503812370018778290488510969561751581792536651070436136564424508391152978273787867237742874626173552980592062782300013082297587467636663716935250268145121093464582080998023395472075103752713496814325059729323955770657898986850395498312822159800805337408435203804108328239432192323572232566595498839192790464034762531084380535782913432341554020889969571355704445164788964300724316727194006326846854912829493099411203655764534501074189588924295588597686719733785525501735397990057350556530710496862301633839878853003665696508146934890345996212078872361818270595552391293670259570860755033717768522372641305498357319919187973571995035002996735085182094170095801454200932109825763697271902718013983785489683423876191773824351469486146213967977907815435392161332854187147418254420275782532054406159295204667075614875935339617288425556716562549047812936023666314021361419091325474777696219670778615477723225743385480346367100124280519747514231343419683290363948530949053692429613624813240910569865546934686925638939317057022087251968681991139876581928405324571010480834754686861916874178796551002757299623275488533578770357809589931646085742614144715263770617415414971442096130471118139728355463888485458461679872803494106934927578506883260628607996304002166064742770251795632913377914665790699026480902362829177394983575171627264668381760546576793992223925172925256877282422330531250399742191082711263288367980421244780069877787358823766423232153411371677211331654352085951577664582539516028326141065680692183623914584385382927215820742134429762741469092931499222183382752707124126213947762968964615821812076092500458318720609570669355044014698837982024074225903271725044000867677974861867248030654640819835661079756751380389639532235280281276930865630490067662851406658631519123520426583527586271884405520962754686517901988593219067069943897547916170678323768108700133669558755086831508178797197341678707426630575441728203621906986954816608034261871106358191633532747055600715313249542122554100629876661633078379740971851578656472226972152991312539442893943583150371969084663304008779551242398384834513898322102196377151058080459865756666527025405894112904056867818541072284088740901825821247447403803876946232328775703727660065278358994734691286626359284643274223389049421801995359735837094336184249887728689244897215288982360152150806073828091558167559186086096913798614020619058265809773544573008979040417965597351215706205918899675566661187601024362977085029177058191921032027918263730413334044452124421739008330456050448010649666725375586557960721426507586332946421941434180065133108353305285138965765204462929220844003432906555989612575004993135469458121731094793476413090746464147742665722213049124788005947327349519203689419817592920817358946772492027398384086381304327806726865783308090603462810527494929979193315529752247630143380583788129608678286447709167298062349988201666681127977660508922908464948270535131863105067838905815218178578881511544971178885122772161880771308737772462839766526587026967836607273408153098041529267691471935021445123881025246565018919879460758860694001554810261014022233957323803830674429017146527041608839411905282020058906828557886831879697428023895603431481341273563185493098103722982530149281416493871246036088375342817709600915204127168813445743212499854867009778339115068211187349972189286473644596292698323239228984394253127274873013519045128324492808078447747885582796846431290066244899863754708539114051809606812750506446311636525983160998699863975553478490394844664820177278370199900384387469448107799434651503882457416868717989255166536449984111979962807016574616242364484044821448628070840893346911676865243469111273711205855438506881639224335142559094476113813337949032826983004888368496449844897669431401881610714460679627420418722934692545991263040680546895517162235192014964477913137542968388002599168448726282313524183382110273554744397437848782934947127210458858937725109328448043751763533354542345253294149197134482771242181525603431168947329791263025956148066243985203320318047605259969398211100403101631672548125093774199545156991197264027118299942654906883156647396823811398955794433646310179564358002608404580188372618018270109399932065065991900554677746227497622961281732428882765380122006767613462285383320199654487192695458933528151936635976572653645207745560062698769172628860308214958189616960081603130489670718920253768788662808351671479295505170065526293271045265555984095128855609039956710039053920348297226489412847468912996258737803936273351763748763845767395522863015422045035269883802562137377389179362677089116755259444511104671062715510015065145916744824798651233658646294778423406322415646098339778156203815575837440230136217550891452142391443346943851124697299529960557367497439463400784732767985131364719653049721593506963251527368272349479555738608397728142578854060462905943169907987052796772362766324899362090973738044325340216793040399072782817613625407759049859102576536961735707290547214502647661813643915538760884861451396191510618696678419704295560836000368136087091959852986572224480619437820620264220741335159357959107197749205515985987767503189977575262123004009962836060579091719126466616653197805477301706807793631598835969493976519209272326323941947113390579080906934216599797373561474819408886196077655380307676411947914488697089461063821722492001232159676178807156939969267899507201610287802034153746895266120703412326927971952660190498560774704112711291964072837091410453916749044185400246951950704646927615600987952938738403890021973287459947712255983802181202758326087534342836255909854039891365008636620323803260919750289092824273465288089132305456995136339380078333137411436547390805736499246674349515132064244948909309656170780624642305897772404439312379147328910283589718761277684210035520547332308570348159746300925130356546750994247209078585450831488913561673539738033847815032746402820013580313934045859109262887849558769631339314240808051866200013546767907209439906642607103747043579628218822217537079770024248525110739780956742049724699025563080136266943306786035327228529241072431584077308225607103301886684755465759087432381848025341573075820163772328338483116437824319964529382471651834072317709548341355566501715462928653276449273157954985598952838428529341778215857115716050315486176894329284324031737330073971018120275974348306784576327387240252906886382169767017774700311984645345181610041942048676346263224722663798590496214237695657160106249954758916820487650116571997061059352153463072740913082369206533424888904599088832099587742685061761340234816269720783986600464248616808767492316820785462301972481156925580278447634413035101982663330932609937724356503851097483370500916341928195464632793789316221211235165342034351329641614688284277556502016158468195977522561188146193104397159084314584705521866318714651138354206013351639352944913381075516396744511396470558609873428932197118199644699248836071027991056581263765806135729517213518702098084394627289976805733570789090379099070027412701027197472049891338887892838988270120571420078183743190462259138224860879279421852879545665939302542131668474832977243060392965180982933944478438390465344068388771455501855809100828002374463435503736137428453043483634291944098654047645766822302442118363489457062437381557799019542591204938733175297638414657941121207426090755998560304490290219262726058501459342851908650683259258996716863312116016334093254435353427016699365825436232143205739220522972252069420509673321272607177981619231369141654102046851536996052292122479057416055937369667624158684414081561221320385525915671784675565613570890522136714532083776234229068692030319571224514282659007921452022434862834978401407984567263994636084505922267711874407042639099222570379509936382402989903306864875822169832342116208673695563163045899591705877937351831700047043205724729556581879210709586439493444029505826288922922468063856333362895055803901488625151231458844259868620803287193170092928050384291941269681570180148634280897096006927705969739022987446032655889082313488901983105953291248122382150557040099101369839623530673548835805695395605198486364719581012874429550092491130892841251217013325031486910374687468634449200060157726365145225727271873114358298498613778002540826148491502139437579347980604757416300122670413517545028756403170172111105369136486793616653068153927546958133667807401468220109909303630473490563460457086605937038001664939189310266863770917765239813509194136452634549933902727463760465231246249686523791063222335379351721133319290201099877508982914233961559192851702379949549958612770566256961233831223417692911359344689690932598257336730799128027815398015399239430990789152917451649117262108886153944845722576948308839718728792703414336582852509271539295018708216078204380046066751634776593111841088986892059042521966079015015925202129116685731549080614734033186638492593437669293475818391819430969696765152562206462828819473552875882294515622945770975455011889321740947772626292847304949925081044995053726751372389934026637906836415675619713239936921611075463400908425954878076436775686719674326057852232618689823926933283264081990969870726943643929794786701805048492352949189046366980117336292951514681383147956558464633978741623455356385538710140728052646717084672925281355504272603649240986681599948560108026906956795194034106008940814456758059476665694230057177094969667109036556325427016363933572446053488516029610898611840347018182792679072237868960770300668935901513026408643865548518721618272838195043014358177371105934449260115576786840214366594395123147426873925010269171330839942135955642058748660102958029722339155955470631270569033762977084567125068784906035433513183661578257610198063058211653998374153497327173190492497669625252899224928630094657002743893774806336933134255986955343469637103820179248446859331695102708338744278341087814587079137357429813235352547704159803824638000970283860571617341139747398922127844374974416163824609930820638919803184868821165815893819773246226098479047479518597660326409729525102072604881529644031192427860269789002968886539331002308161844202279021150913979893200337987037289912143988758190934973068805556815760045600907351152004390686545519736408991467192064329629647038195368458956635596702474144847849764358711788386420654419646794101117181994350207397388322820985118019441124362574515904678133734525699659367022950665517366379867899824047795286661405892164398051398677842954185283254976111668673485493363073036158468872626073558977481545250990465767096443323312363310014000216527697269936913334206165101788661226149373654382498128989443228621406849827188133247501907650556837045221826953798690345004258901826069684083417680321206798316631117102459483307972468146018379588615578932596276747163954119782298884378791692564370075833585913323692687047980658942997200525951558794725802574347179461411288380422478953760009425656343766813032224099732214160482106511562074559891939585518448237858855268949109625006426056053119511541370113960551446906390098707473158703766342070460032893160941101437739431221108931674980516258015990679487110916696621028791434830148932488973962834623147232624726494469930792146916956545062654404995294122263269497520802626339671393306340678805817664364029512181376448438282729833558763512061029510481366382657745464940311487542743166394161539639567475494939916004199849514572484236806664251109768487603106016107153066646034429081811194832855144791532261071270358289578358163613938202969956020030347943863277332309089584528742229598578796148788651271965953748959543527023854153929470521800106697262163117785883939164774190272104130381761168044455497263680793208130987799876409092678865494234337754634388403433949697995547732569814120124701053815995991459121311604813295749115127734319755250130166267856601368369309036272254413209871386922159228862839485361412076686659277156308514035283282705100276616322323093740080306550247165789823462010980120418771080944498947610586229208962063739732374516711783124992480865118857261902356672615330463168062216010332144536412217572678134558534504827400721490643025429266296246145843011490973009317554843310567108675913510987655374536706230824343178976566504302242268071541662364335311972475583368593472933578177474807189539889945103654253355837718919264395597420556558564248077997465210996105550523088664437665123533907018146217802453388266065509208235412500561063871196009261083146477983059855487984075415914515911200059267401493997164950785829196773293318839593010834029879015697685318113230811076144056572904013895544858674238665072459397079150681945539872393729984454103238246096455870376589204398374674784699222282289271932682401412430184556794569676353315320342936333480109667615653170102931650869404696242992359748757462144684739764397343456482519724668552612397015288690738579705742318747685532272042975741049180930550888015190452356677845635628988723476322335457555393295691038042237299338989736799332190601226373882111323123409875940646715227687949159910865145079504770298782149566490938226005786785056072879031574427741728965694153178236085925608653085671611298850302213137776285695372326858681763428858441983518808165662579688810769354535217904043435978518870606286699827840438406294485606878619276079191292358172881981060833628026748565924635348979708978218370820873228358699333980020019748831267222841425552461643011349269122675156037395698854637381610705689334278490652233910471939269668179973633322889571154138849059501501518994124050514817595623518076507463259814954109490785757869527421510117791300573220287766811083366018210013923855569987668987539269566319682327835126043590214771339450436041437832674416811069572447087463318307891276085266047293461785742701117094714795999327337171368850890792095898718675374787272978125516599232573309142938118164285926913050052293345025406118298817345188202474224432131942081208108601324362666756288131182625358850119821834517972953622772411066827815104800032071452148045093864556355843792733127130613486403730280447434114908003359625898343194258440809388159740940639645031205464274720171167916328288085760319997457401696713038149920024655680527019537106713850818250186531079856870414316196725788677823298172015984727729458871642197791444647795587015976608689303985190443041508603433771574582880519815740434565465139163830051203196444736813561581708155088823333125552983581567983573918673584051862725042979684962646091071444132756296806760702402793130959878242181530650353479310290609018532631489857731925164723247806675956183084300144195846281594714071563360299535267674975119699941948730031488576911263499062196520728945298492608664578323592310596781522129865391965415015964611886772436387237039842243881769420939181253663491952513002891460877751453711635411620522663492761049463772082427399347213589888793182122796293556528706921042774136535939406437552821523210332665182762509441909039177457697499707819606244944158263529084247265866039155372291742001714247349337520940616117679633588194146498704165470547832040532008994787071144415616293321151363377707297131037774454761870822286866087968522833153612476298115596095265851602609223618924975179349028407813429796502991712522419478542442755837185316025102733049717601554320188734832663783045676529024437705132230248662348449518225138846471996072528892950716128964136860794535881049586078452740583589525257683983319575899006911429856952530092454672206596937866676754225381204661680314913390228991258595188995870798797322340115648464742665733583911240067599973928924061246326028367951151512361453453042638287974139457379413033470222732750161562960998636395152849291599376186453074733618713922446882846000250454582242562277613394862573790514235652648437079901300814279440597856029001917154767597956611019103565910845893716705323254804202696073259620766470293814070812393419650922959101657138159586900027547739168831679752039273090203080723318055521648052946500249149333998275771685036460018546140410819440996407019402608972197125326488041699505456500779719996641337254623820427529654248061695711987433949000022604627889900306141723345236103136727865595704512462272220475192736667967375951795587136867011510710896017635204171069402156962132157827314720893417882442562490292201020510905510361008367312001472859196410913168898520371925295176501659047099588370002569036609988891277578111914436792780712640165892686110613859751690972509851924459910479733834919057984751170460100255323262838650843228246197301867529594520150362684214330460311699937153918973500956828877903276080061652757957050423523918412034074847529704397275857551255811096768352309443225261994689831726607073085555520060606367613229967072353493708981225661851050396112045840963623695484490505072058956781493254949763473910176252915334084076570012396718877223930384042374518464106839597384057989002592264142627050892243347828672086263574584324017398258337226046650288981802781547305466037015424336076396477836263463127957265840017752052319615546285038804527320916138613515484732712346194459823294919124459289980670552999978501536060560813510706575904533567566100926993945005760282357296596838896254906335720094659611979175938917491298048971678170156562004822452775590030287245684914943306406843305116027271413896230848541742205217330009430498509244144498549817359401180645051705234646435044422403674050833130662785378811210016550671428553099276160781324755417921988142020569924427163686053413704189567072408956084450354138456133507036070226336192189821298675156975866427780024795532155640044992665044450361704952498234457355529141905474085996393934167229133645448008768830933671664515836949925267365544732834605453000540356860343024537117420358426977181068281510441577708125876422379762012681075424742479544036894138831576101831763451407776705134966022729202609110132375522926209986525026750611677141522286122751901847229572030318347595319221482253041493809077097446931653732730301385445563230191316847261121809431941418147757804442524263391896434985528596221077758390790910320307012446570111516399206963491817928180215972305046569969928134231388304798468177704696432677234385219894754201896293317334352093903450628713047309208275419492815598243405295070537242387435851933344431723806634282268513488384941664550939678808296074180547209104422132321808122859463389361018290297883327930355475614610228143541408942099701563861876986047089354154565290329322612169450181043987902427770320525615029403799496135115128581077606241243811055815821135705282649095563612504959989051212465047404860960121094548023271279602067404381519471633948784869084967216899919613054297228259219150505045389227377134839777823295827991109359379220177779199178523863084821107813940747647674696624311261171146609304796500069739438287950749628777745870062466461905353511527532908631139382968894114121215132886096631020830641131441535486741576772856374609229802016970248938219361289294356966425108868566775651678844091815585262700800641690493877437158810393731886008502312780086218831415914627072450035487752182253321039772248595270845600325484919213828890802045310187054734308273323807299209355437839329934665508342601166106720469607130164556248764561327990182808279743014622149133497596450662438883722726971974269770765673472303217752128122487652094362718850446319950404036665553396692471972215621400896658124703907390534249933582302052747008131875789453350144709163685039651099724290697944505667130765708955931508118474916154294122646506274618016274525512199018136586507311330691021548304847718918479426963817618382595955667781245656554216341746282897357394895037502049530427704848791644198364007031957625786079170693656088881686567505234564861274131327125483008642075129405392149944487528528022685666202819497798355820093339042967057382787433916916010463330962253691327607461391262321793406699587921981121816992760891402260715172300372857479235686807640948267937229919646215334938611307305820244794538961935663172246820079394224150620512690568859337645121408429515940498383101188327115489535645528173526616222492543505327348347812930261593186947590507139732221768193397620831208180629822131972516469660568449943234143898906973029758330015814001716056571053266910347135052211455134259724008337083431657200908483050040209380209349360309679972752312145435716785809038732184783160812893528168093585143856615370765360843007704351874388444704242357973888340496356844485557242288993648747295236777573876396371528027688923720201904629097407279436586591508084551318961923422029848332192399955662025565978083191382644885193568941162107239749216600173913039641398429574862985733079271280514433135737064243337969999692875811683639565488871714314792438726592924489145416467405934735142342494488787003438047116234285170266092589112327584015250328200087586785799509639093623887938524770133775077020555085882391357015427876605609954666611993662574248730417815211942183619649789821369822925105667024347364601006443014902347871418914903894169739770226181579482858289689987155805663575638549733252581009337328528685363156873071099330894912379156066844302031090578436760601593947105346714165829348765295112773328774750869694363015655760022420430777014981646183329271739273367362980940569475719248261148084689872052730663295391781118514155620782902347218043972420372907884518465343665690141614857920058344342772460689545665376864361672550436828841084436399234923119532412015093251569483542530088108198561072132960940322281105699952594699725647484688781171597395575081534775372745090607222307266066718591471118909938614713837261118240924144935551160565005242295739926999258462386896304888407687910403992649074348002371499642693583327137385713671963469617969305847850610338357758766414327311930967902416769596835257591039686957553653965084767962588798977053949846961725350629379694684226539291987554988757299721130139631567439295993765435040092122769501486450694789863868355358451320103239112580040633088884957634603565643336653777440162017809872828154873852602988389796732078571485442205793046734309317613766353963586948435378963754289087421688133649868928388338420571873721008188763725493422739588077742430991829057308096075914497303363341806479925314060762932337750411421263340204880394368395027365510872210936281091261635207743945758908480051116831100319381888804902036730950675337415344732990261444150509719219284770961501854739695528099282744218089325452553231322911132201155941972282824360674569369403906279419510235074524426884148259124104681007677303180559224267642749309917860062446465555305118427170629448485728247755596584523436210801510858811808404213842922414051533753139066280285843444705225155241224196803020882094925769911705133489464696258024487070806617948311667412314952159249383745855599235536771449751541515169004238281088087537150904367650686572134734211137329886860978427466479574223817173030022543963838748464014687008136877275608095743846643383622743796920537465025839738249848331733201260164068064202069163191404737016850104856827571483134891045797882715526833942884865837088036377290809694168004180027465154596663530374238549829723091744128655891942155997146206472900324322468525990840512220278865534765479799174974588676969899028193464146429288197259371029822323220635771264983503906568890806529841649163714590508326737885449263476392787691119325679263287524801386944139024360670620778760983477285786548755470128173526773964715615519841625739933171866394564380530888563644624223896255198928035343947460557653952280384229122173834855810212845788296314655506668649460853899129005021293699223364018715183390987761823491313901344060864023648936805007854917575676086436581742200748986220409518115107393161238691615247382437237430096493287588009597522564155873382001602518726970866304941147065744228536852908355109849420037576873949729607267649438087923260022182580024895426715421471970802751924369067479325611944961689553458550002073106733034122786961891864121805552545524232985043193579908746298469732466244119213548294228891670667739831542117826402564462393443185686709689979652515943578182615555621870646739020476293568180817223874614703465718201167359155757476575006078058168294354828511461814349922754544089736897595757846958207989096897353155890974528508317173301077726833861014682481887134560119674884054664266626689552896971308701076371844990555912880990557039049679039741694946635110791569457090246361410556395073334905006560064113590137869657022485414456836574440249396158623724648297257559571896983702227229826917994913814937881798989717500670802359747084400599569259974815362531130253241785669253292229652694226117805825614120167015528856714575752732128255940759365658158093119401569545054096496778194908050783551296298728012471323298550213719338929558293080038450787971944202842688167610041423998190060690933441164900401072769745489085962567009652037126600352306067817801725121078478212832556493292313695477337810411799114181075276692188926620027428221744642904103855623373108975847342826767858728866074903691650117779588117086446896505078775206227527169028688567375805077889115754808739548430150239514525821337791622844482241526665254081886499963137991453278418662893482686415022477766793940763374958258577623168321167157110064495160193452409190286596093532716031368511971827018779702302729138414292029123870757787072915599715880028049795617411034414652073406486781565749149289073544610406148932725855119869001374181104634775887665345110846228543220533656963657369373183256157973100700611050005162849537026196881673613237257310355520344357880321067838361013769277219867944682881343077423242745829174141083703240752343220135717871511462633081746481012543701646466861003432332017995305323368697008284813664933363433524197974331145888073621585771029950227200735701237758308736050812969299957321099421153781921353868612680340540858622375927471298346801278927251222104468180938249368406114723414040624686485753395815148996897689223956093228045862881372926760082007503554395693910350650688395931429906699436189704579535548180964410165083718617576611623295570612242869959467396027673675492422153874517932297271631222240799433916053357472665550250693785103343169793942399729670295150437260940672978917689547268725010494051680950523691235517948942148418742863075318245522159620989208689790640437343657061925314311945194521391392646375343275058274534342944871432133375385628611438896253282529280127066178967649485705761109929932153744026384159199886602459412821359433433203028612201057319626050139076591771047342798904641605206366285249167206502905491411235098372109544800311771018070457565516259507945346678799731092103495093909285153423661831258725899356258753898212941134458071511310053412927536026215839596587236877177795996496965298867127103150557342554847701073393354843592764055400394754990173961640043960803788658593345022245917134540414817856071090913973908379784240105983486028300764913216341555015038398521936144233392535457807659773138595887496981070069652154140240979281564411310445633214830374836096447601936514408711271624502453308883531492299418648960134866309523913793442390529903503117267551394906887122325166511365572443507972142439463442558157077517579597337558408809900789862484799217696155145530184894522880299163626076329868512002586390101129906471738624058198046924120345079396251165263724252014192658941928110203712984785286730688910891971284646511622161182904430456395625160425311464491839065072988036356106757149168280902699652768624150995250479761121203698944173783184853145751479321678767593468324961014587751702745254193843834418977152519526399194431929096982826368772708148297410449467847797860151868515221657024526520080521655174449463609963078732966886583378811343060406517587061027997451287443999218012236976117935495466064648450170224659695588436294373288718361643381295692260920828360816482149397607253587779090120878445466107582074599059158286649595930219362201627432055102855049489359285473936149590578440908253144673355219392704993109929669687086744350736515129734611618627510693784974093508205103133023007903136985645580764505800166916840579997124272041407937870534745839760853057978570508173825721747233006682530453217773782212183303391525042485888357638237662135867454542701209412830300655492306535937355980145428332081464135529036795119678525214236355369841876810583622226890065018764632953212167099199871744099637736170582021531739542385853127330798757660505871394226093137262602645608337978640716245195300031033318976067513428290510954053931836756125725457157404985712530801697782851518175561537519340623566155385490113990345301952201741237179111996554344531069792486672955860269158684411523016952377688585641784326355691575118357045043118648319509545191841474202670214965446375240326645522138436940144865679461426341527921641709695425331090268131383907217424607129996019259705850323818728993235965903661266333751868080652436036083025779463991584590050788639115005711079639607039054611124462630693771368277210460291528023495208170215106458116095041753560057789190928998782592166951079615128945751637118298551281277744807752962691227682835345734111922797028681186600231864897510261229908480512866027640450465000761914038870318321814129213123755493431472614390734643367624327987830185955383113647445044547164246951221930406129339048892845988521448786373615206582609207059425591934096328857397936767620582472387919397990875235279132787797030617786882342218411802139845804880875720710007690650962580451248500618099141340917611708276775718736415175985436027183996968758225537104473574206174389753403058364061190277634399479708249502249678998009237576213889382234943628647441322638585757308758640601007526643880859010544253361423167412094502840025575383211121595451625385580199083434528180281643713005625563024490626820655391602209024350383942492604758746634320305081753539182030540961662789860066653567292320647375782738947371030976307914573927193020986908956465675535867292473168909037140923358265343556823872862814659289455106357353637141810443916181114918168043063531469325631026944815210030924131142369679848598586951759031538371569957131482458259208971800740597835142691274805070687005760046943932391603890499499491288369189541056660898212863695633800746783850574668619037011538276509289534050628833660172956171788230690821094253364469264953258502962272796148703873505794786293765139703749458741438752638398572655200916884317395379939815915740294037321507585104881701367396958930034732265659960326439669421225324731981366760840008829598456717082681268758947275989328147333838012119231255492472658330612211671598310235003787833625816848372032775142937223300689393007057507370625795318901029199904180522749481396851033702717103463033575544478676444163786516846148500721537591790046072473811121502411224789199864390738525233042940623677264206861079634680417752792093131936567854282573474071187776470979888723900005051582057007758980655706371818157265163191389947226732905498149485340354773458885151844687503407212448075670427327613188500565365016609470409391317006204518134503054552304890976183778262267752145624481016232584417471735616690473027209083231974278334806113796422805879327507690432874498781171424007015971921407492508217442482327206172206860976689138598230970609008902525704402244310894818464928881839148770446126171846660650399422751644328545340890983799866567969541896914727102083903887054123523388971455132654002258742541966687061669998543074590535726586054768885772558418357446680744454536166131232363002582804052157015164614913356096968325827497898373971466703013132605262931836973881546570717663821046984186657527752346408721991932988706734007623161405883410906715924649828511830837510945970155117745348756423861136384880902842681013557402872699984043001088332966842421452229859177026988799720724369419424757685135940611669270056451544777762833121063269707854150936844155377716260520781487537605232181661176494986081197097010381161360755718626031519938800482121090001316061097410786910748783207948037128108176058156178344945334168184687253323854476156498814954878162884619733587928909744883895060662993214942676312142311125488582907927304604831775752332192788831753574543868901294743337499259194907325359980873146266201535247127391719065861420916008452143957533702096652433471551636454874668297640442511544137907000967636701418987300610607577530905169495604379659513018133313208360975555363350515742307598374728203733483438772660505339726890692370370975321135870602145966399206322049103724602729053478897608782703710264358273267166458734729673993119306297476163209100835060042422170066280684575426512754529743104662598097062868407425330591784175972937052615159139398844122529145614395277271181521729161305979349689186481474816067793618137186484960651599414544648736096882163394488723614400875435786082656465388349495541228707250192899004927900278944984422671367680462342992961461674431762823799831584588702083250300538939541493869984095926230342882317020831535459681072849932875239503094827496632280901042849617509912510341151407718588585389539846686989562908292424560036106639472230060188330384237304856664807643248788178187734585052062230526757468371312848074619738852777053792336127261753879070016987591720123124426484926829227380940445183212902975133791774976201294862720197130813918121601680242153956847765440431988189721982438037061773274047102648825383616920279222617422554302161873498526322561482279088695662146149751674524002485904234883312097113354325881248151980537267168590890782760409049554492174510923625880587599367247039524057622988464040075562158128594653297401458569115309834906718105560721918276707607028480318328400338340602298132411851895355626359337864883558984741670220559987703062130261776767825314499909008250615221010679012591974079291333905796588239250909480509872617029244534771418471963901007888250854057374471113210665971492523526729905648393841119923329362590753658508929485947097830170028634887963592631320010157562588650304712858765084788837724554392823824921167109266775532494756776424104613091699331621976727334994514230071418940167029735036263290444415949005213613342024180162789198013386788465177592410850533708821624168408761153618819213960654220379383904704587443875239576095055719108838194413480135241347767561226943734465906481151166293079600255658116123188621462663910261491214794611835438507274639236911870680589047454217424565129467535122496175284069959393591064610324995462136898731570492305828218993504886907415106624138924451727825193669458803817896884895705469683403299376965606584000778782181153181538475234561659507035961571373340486434041630824636215133428501809218139057826886414496714266922108742911576359248538489063189705053290513882978702795205212557417747168434706609405619149743143513585302512343595435661413699747402377387999266352080467829054958933827205292790939987521370617640996024504755254413027840845996934229598645601965547206456017856023635627098193789187455250798049663260630949219291145598130883921042404780999572884716063590060787704302611077886376032225622410099825944073302812770563460724195276531994026379963989089595088961262638021650812851165154704795065659597160865631857866278855963110385761679367917352440524423838100202325256772753580800868676769297688865783080560452071836458391842892702324448896368836666561266444176959452453937188603551939145400982733644432526845167653240022977671281999313364621437739536872608183409893498402948133939469525514294290539411076604958377995641047696895656573510194682285063115512106256439580442579459192993641163367071416420787200718220921336182546572924081743872211055676129092081020915361408914160996119615779573642279610472163272329493525132163444581981177112588641104318271611915376273620413627154196292833931003155647491308219219289450216604588537548303733936591873959986761560537740028983294829086503793383676336990630112076934191405296305589887143610308228653648235654174191581098144492398977850727469972555844312830912800286234882072007290536665697008905611518473314785414521278611740219419330643905882736289706503387886183177297180867541196297609575143623347005452702150073392017910731372363030570502286700331919758898556358556242586355255129011863933212003390038680730456265627233138679967751936659107377287548038961250937664219207335773575404071377680259442656296836766202024191812392575119861129109052707430664896196505685854426685806699672184796260821225276622867755463320170616387818034772539091398586890605360281933839031549317065755432249170926471253927923246928139844325499122640184745800502031650059319043935621640776970260322535952498197204797666610663132659043100123102857721360083975406911726017225114749557527994981863834962259319843538034887419888733216605432896444462673144688405506679483141967085366755938276008394083370316002983990036725975367031150056799782784775896676481314910126639238381722887928117414309887635824557804036521696030043889293115998048316755277601211049007960531805752681212136037562415525932666052597708356086723404355675175763193558123123441747283157469949356979618284753838808922157646922104460129580388067173549269463300968576536837721645948892236890739027573778002945024482433681160448941223621570595437999787969289352948829819819183301425753536069144581578064897250712030118466235925821438773630918047508290104304766219435177848307351227908051332631633935965971726761148059813237247616087188003995939701159961183966129701747078386585220867490914036939261874279734951601524580562929443449403743289068966947047874034586148827550741999316194200642590630230204925715377807382640930885016924253767396827670227417820296673715455354645669997176520983702956881728183319393080078926075251229791474380733044199435064004095612840098134913758098829039107444837159836658436275499634907597934234087836109041048678408269153610330627013654791233302293666557358239955136134537604089382912628682593660442053734394142270256658766921640453077097753013653752638221350771613562917131197046818696857287387525075590198961700227656495280822230028450461206765329354482133660193223475913155420275563058741045391621532978335196915529873329103845665651193537720866764742132362633992744280768367765707579634159499929103326217373106767449704320168296999926267885816895586017782307975488754118293139108125073915279669516148529198361061845074529357179355076698481800284895850297272097879040419595304869479814446231019445235793971986115379071085432856064726793975733467138557454924122132722431354434120357611880915066135041916484581125586441681457368634107482908561794071345407965023707778394828458453651521435264381614625317780220912576497601527427912512152493961627331036692301566336238586080019677582490322394872325010682655622541606988563169791057274015463703911398620277290045141101924074498945010599902389659231188258610387212705582880247849503316510592707496389663730965873892934202504079723476851869545132043277837985574831335927277697479700323789655820481510754728540174248409959964972598074206943491434271242302037633513635458723756474948809330932534812763687396772511179421911044231166216252564044356991107351374007747845254247752537390404535579064038134288906699902052374630026643780105636679101595548930400168110767754003624464185687609477426522590928537238448882551934309688240208849433138169516980946125867166977664155162562299416400392578522616968629704603027887812500469851203192015722556695994526456296452630179088972280242284740639725316037786345610772414589979922443581352657553662318721046298134036007759381411105135293365566406086990746471918756778878402774617194495930845611337828009628117636990705843429654636328715803162626418829494762574155604091941069926530811400153107841839294356200139174373596325501965886492006343811272029916424104695866460040826372796761021167645728702319879946183495583316765760558315188930653551274721760326168669044735369803126412289557782855486566374179559316430098309822293469033873103806303181636838189680057943713260161789666197366715732407659385157018915411018284731019860283678644501507755526164484347318732694621061959417349835105208079869150419987855770661287374988260839768928937994036168471333460578233839525618566529257222775444931122453517211118817227997422323467299761550428301422238591348243606368638280743879304025638788277428647691048134288166176808805109108702608869739184313633789453376015575485152190358581153483137399657139290788363203632412750449047978796698595649794773920980531367087874818948861457242270447718201590583417067082509311566431765713836980993975733191133419047371202154268647322090260672086084776967121537858072992110355742518282553242918291922937818699701373889098244419633474423749023908871217597577125065221030289510978844775021238214226060589529978789396940153167305087289670168992010542876081151351432083450256442088947844812359307116655979547337517381391820679625482172273532436389413346594031667431293846047554388021833200882079798990602553929421870200350444223700211252483336830098730303882229637612422162879987999769222159952828530572679045093585376098669205320804171596308285307236481557608581065560623999500227007223872053611000537703652755179719299343540273924305029233786750613520713422950976543037755873209439576597713826803025486376016421511984846114685583482867128739422671214225783313167566224991839946144017644333959008250475005645879927828714119166856673771092495914828685402642849871993029342823082033733703277292871773324474029366857733422066866836309154335203195470304055225503210907096061476460058615706879390672703128060675905975414315128196147458679474981381421100019010897560008003925766474901184580136880926836073849022854123878388189881641876959438157176421350536253867840621806318504236383985420488578773931656241564935169954856165605882511728480170638413313610948227501249375529960745041840061699249442257774713083741610346740441467323206566934285155972793376502604493886111351258382872169907412272814771919620378163778141431105638324677473096834639242188475490320908485169901514046588405389842903474373043114009944577915798493653063925873390043286084181683613054303397974935428440468740601192724021560585031247449576700296153303623930546944002001890987108269484066904106559293350520888589634302115124474959072216208761411249162306242755151145544077692701069946051626983845793746643468197783926615947061343112025490838930197408949223744796109223849133728376418842950920933893955134721991517634773511021334685644922434345998777838413475562309603918177720911031299401181059909048465084428176179983004597454148298075435118620808714289612398713810733794380667058660740861055060486738786646659837092261369937147203367548872729338871720777957248437735255172688794715542899211527701583623990476982182000958968574964089060617024891422189070103622734659343067790659560872058850870721074189361620205267429768247184239202898961949128430238328644004205596398747905880268862943385633394438585922889642173974947671000357498446571285235231874267071548714953891387394750871768362367094700107563788174856853352734798669672341784588663921668032124689415942551552610165576934186434330564668008904292548880830954665322238497626234959222234398798316091846870547455800512872943423256155563656790408018977351564900966543227757049495970404994350488825488084372453017689112083526484161414808523795974540487570174318801384259013086225695885736490716719586098072469343466900039737845578209866283562941955243382728979288790679366368220221520049920662377456915709541516025700876877908813172593996368668426143966448169557843939029402407037892069124653657427343740498601070898996006040231495326642335422893870227137194850332616872709223928299040512286689350362698466386174848831291970484830014922520508762765376038432347329207699214876902153397081238897444023774670013677761296572434284072325988223771293115304825554697053470468700850136363357645362604104738285804450388812000707359889877789631973511031986170801447761391535404998105023731844639241945592773635414260687957142559226172525062199428109538869788024023004884245660655382985880747130443741270939205455345864100570990874685372153697293294650691072501190265878007389537852072255167909622349908723338987390865998939348686935419665004619921011982124147847774401744768509755910695648892512404166786220849294893211777368399599172299766216060001792695359637648499844637303393688482293886138032355133456358876288516178270448299702592798056431372561789395198636056534316968571976035109051882940216043488839207543924975973084819841270687285752095004356978788392543255406414249220994228169328159336195321296177926211620615109125443743362752588934093849960467662544388417005630978703868728279400678077364314584750630001224323390029121366561332303887341383311483563014938217277205597714754110308482998534242216283958379079327434813305743850900532413711733499755600581307198037476728287053110502157994884716394862917398683770720146290598166611483310155754771734337472836889993992285201565842404195179914456041226654641165360946302742360540588661210936389307838798727695640519086373875751373007411512808080568110835180234649798386400264807205263720951069504432103506275782205629999786762370270341756514988790546628953847183440333588540104182729189033481980885475059333438292786926481670022011011197032829407515332837299196970584874792396192321731362244893954102634582539253986204469204960056441400705973806726438185100294288099947258039370907207503142706030379337607297884694825640298247776342408967964140770885308378819936207428125313103442640255838354942868584224383559470192797613307647493414248495539390281092514079762300464715466100051295612788987989101085742436141635631458258753468838458200816746552270816413536483758778888425733488052668465228769469369345586996613469169664332108118570625616235497028197258636288774035300963071937838648713395639043252665798824655302958521169360883553193144912352567228706765324743996278793829175735078553296354833473274695940848833739858490244028107025162044783050771357826196712356080245973823358489830750943475130201217136387545670880246760348584955143914054654798641017584451729401782266478196563892507573275019573778023630318351891314179350586669684299307478530117507085360598700320528959186091999066219802685538626243819843147074861078183597454632398088410481611354918212677188611671719569761880515521567649718168495092607145573280896773081777685152470801052091265574228027785618608252410160909433371099356892138081427651575725532889697245710708473606267857247732752837529475341518212337074658252541854284837013077144170936170533324579823665625346696836746252002785621488187848203889889245292753719449467502768385745519721814370550808512093853773496452611509881755783668202228266538272988840015502411389098552500989839793703571222348211619835046115026424445681537389693680305041168454601761179211365055971412107776803019287605496609816934221706033584372710443685405143649042258058767178085702116326566502007643934199059007168785707834748863785861238196990203480117934947176281645575037167515277892174543686186796649169273617670349870264796395179471247402697569010767484262017393925170901822614817470027454146543808888054570039052644071925431898828093214553195029897384433986398326987032646021220793828377439010816349028167590726823330349299614068192178358869024380358528405910259295770667138774485257631092897759339805238528783036591377135231930224245227578889613810937943642885552468034994342661106483117913663278108409416975879484952018572651117039324952365816993588123375923813578731392314661311479358083133156299549015145196169500130296487146425111201830974054209057026492191197652603755517660014000503500415182220298823739720745662419724127252898134226768621634239611719566800777059415173119849891880065940813291113415675097667568486862015273154246037352235627304824078337559766094220898985018392060648134513465446964973871772289087690358485594630981316448399619566309913546527835523926661374009793280806243674324827456510081674890980785992185963073574746360751793265506854246128440281059833681568181597434154412329430282335191371695481450059205726727902703899510435565541031507038549817086835914180853232113314055911969297912155830564535505072673553038035106910183816789724181997977039717804992035559366991465054534142883103878265977271843156650147752901909462333646147454264877204659275755593998667620242748878249015879344702533890232427094623786687593593057686504037067274438288382838065816670997366778146815898120216912975181345753925832358574888574237068054441377886383738641257639487963664022806263136908820604976315050289706301812836964976066253101011526387320484755306857639966071591704072526217175844007014881821588562506974805695480137266871727693766989077324437762915195043454220093754955720315865155360079717983511154087898551248174740641718301435253455513416470257673925754100057481404566877130876629874466631247237025371922288016045548358033265553137788779770772351475139966593573519922164838851674942456929462539975730984576917909109006587444012822162189184156912495568126553166568127820212758405355136484177825853032350643975493426930641870712370489337418861862081526433655969820666939038848082156871563061430430682323476169344620673998894194491410634747655933524735518667791450386107868520317263247323030666263447954873385603704660069235748737632652301415891751946794216961848634289456430836367807340309003498776458392025070867651230434677455618274161417914369674966047283599723112936740090321406962431654088149486612886771660314842715428068161783805050327150854058491866396369988472097607775955883662077670368606459574419044438276921027089710316512582420931222381816483337581262755670977813559592496613057980700271450158980099031170243959464490273930290118705311442090036468906713846681937481298113889487209015567540251192097126132421329285473478444711748693382647625693318713330984276507124937600291641644802090941024325159478780189027594489950307899584441288100476335889883375999837486874890904600291680760546972912175450800685429054552869398318627261359488374530983019835061478862593996876576246969531842653880010255812027932532168612204329154948740594769456418084719638133002178372474565150216130103228208366461802926034113569912716004937605822631339234082183837247113772075345002817565104876827966176329927349703905626455054092395772867808367376156551024557719966921646899646065038973099938948210696159403512906099155166736835894232875828434021799904372436109070462623886154949989976849038757728435760939182423379069017581578611600955836151216121307401245534301079336128719627206890969321520220577775661312335403667729171516008623175773516060377889471429062545251903749117986649757350403270738889249725169254714168759364534676516687703889338883113000135703575551737402617784926525185241415768257353708828927387795871167184786159522525447269532305761840395001912934851943615192083679618740201363908499238627319592087829363248366528087838430826700560010719061601296255532142087719886372370628691663143877681308455530032071097964166202446570167006402222671327950272428051203620204575671805095662061969059730822567762742301077948564299285406648422739772320411428096263610956377594470486514544625555715253443371010665618821215774950735491630606820542588035396555383028211293151540186351033360274473495218427208923952540527170742775044615280299101814090513317841929201511911721384300451969743530845227637816636933010385310808249035208506953884704449157949953595438885550348553825194690495187361637439066936447981005282199935633334468736658152007469754953624468046435858686119956843655163553846617690407046037218042960749903919004182844019037681578884092785000143122651814622636705605772272936416084296133519584623395277792316643996873088282270915127264687249514370879433162221304700479080912893790326883363075911914518816748015673253854494818532407971039285108932853488233110992302179171802630875889527783132517286400025718711389335781510872200741331998220794749962466853092028030527023805759621409314295509359540219798479216495187621626027111817586066054716995963643825067271906027453281060911683036611795894609616198239221203499470082200046913988599139641304614927965121856544858986557122586639394598935082822072121865020464495211947720417103701502827929792452121641412817269964377074138713870722321487897668782401349024938674648918963585500728396242750258768787259375744386633045801854889415730405036587106876193377619973589502340715953144344416519658968583233624752636853783482342572277067682273622194229547735257211620221524769793487547796913951146407361092767631039882507266229837997293351829807489027679612576181805491084735001556882896880363145790489480230236002568239099270271581015553932302182250362320475900073087831575968306829773495784303061680326821254134052259771237561585930345114652358568584772402911369238362572204155772354982380324384561926215285481173441220950552805982199088259904768215810013819659416325320553104743830524753524922406868584305928365940385929323805130447780752406373102618343387361385188132395087252201205785140127964836436644276151549826917995917280210189331436646814089156217501896917406802390450571289361542687748830114361849909257881395161213268732597405309101635966746456211884015560845601639686090722640856815791707146490430576615545868483341509358897908560425692052548150465712622757375986473595407119494595674122866633999405238906643868627169953952686806563334314880024757813717871811848722348248114086426061457115804486366399321766809379756766562442645142729658848867404285418486279554098587214321883980169685319119509453194782642528879446581749034658804373892696638554402367735626959850538452861430807588757027582135760402235932077004534334498599151600883182012663297826492401104885573700426624691202476506416063158277079290670676768816119992341293952296829428358466239268281935070804831326720511598589096491239403319579643126426437181277453897613508411548310276198372513313142179408207024052321870068238248092823849310574515995168013187748338402005458588471128263059450241421365784333258538779574505136432842146192439897074570831117185475872767901369480457676555875215782534613272826798963496006937288410796244787484028042188431488870550511826463159226141406095717314844077443464478944775018247985886633132216497904424782801549149424797539939748054777300741238815879701388357549802485213876010519924441367327523855857964622729819968371430003603221178733437553925481279247581216900480268297179502338641386508745032754072330578871739607857492338706061649754756031271154327657307544079658026615585712677989585004302113625817651658539666928824805098508188034069443846544591268595783428068086172028548329406726596569146977412167597118932002793801370132295590564549934961727607347075863442185087463866408137121931306174397021931440724972225793238951780643286663835742855666788064672726048848951046704493049969337104201006228446688533278727959937888778961302294993589332885912780257430654202952268229563529112914083184927719840571110582295048659443165274368613713957146375476275163195612257953389129399933666314748569889838244276980645092489257093858653610227619510832979940210405225327020658253333037008482068412223556996657773870512096240197888216017944223747855445764371379690130514472495347155855673760033211882340519549505592532492202658406649536313768329505119495595404551053051461240126989701479063248841117127258011311726555755938359067013367311047287692130761232818939675369969540616989605853125401333101199804292252833048269731010803171210334653431658845116993084124046104036283056120188945657485835175977530456199847990257753160154822440075177710665024722622161955347925539505593355543127259806580008094750282234438607158038107941073948862857546454392270626769964400741301053610426625938825985972500629105012422731482379197028221353558482012185714422242073085040545015686494988959031634253046229290900358354184538241435975110284508782110278209337258819082873270488657078165307738833728321392270822681413237342736448698173918880838584589789828236694895056577291515091274373756298131683945892360983442381342068228963220383900484110243914446760430179853064213952939259579651900069251367274869965606910192608398839800434069545154081481068273037301302293330133408954586493115630535493934818677333785482499649344988594529560770861637889274424506503045469118354910430439268118115623038003180167496613409277090039172915517309461929030818135823644488299716999266828609048683972891411749731620244233502236155540917000535273087886835175109208353456590425635251467065157803498081271177696538402752950570805724235158591741557687482516907484484721595351892551717711568538376674439133300675642799028690056798073618531911016327638926316302320137413307994489785425524246173530291281558405615452888693172098408595691047608211481215129221920292676514599994433048307885179797741744062952290736222873388358178471684709551959507380208753105823619883546585305403576111076990321719399864436614861707219226810566854448231611523683563280783479153225443856448424499205071876787766712053676616984944618493053817585857982052915063445581944773641452437133328964774525727719489354371704006275255934935003210839853869471721315759259545884080124384768277809418674445495164227601473784934207193767935258345248377710347780619662160826701934888801145492386742397479993282816651568770302570783893706676791047465138427144930252212115151233867440488283503501695530262670214040147449247099975053509157054857969341115252257576082945765978043459848283332693543832606319587133027954193443952474406420671523229384786556850845808141202718742760019679251181714301051235671797603757981056565383071690529917417548230602090792645569530382493610961058329017993786161869712135885621134180449394422938188172656817758958491836976370836490600790126068910213970592849917511738943160041540960186858538516461394780098485990293609394778883194521015463815538316167450392310264402193027737264639424387421483208568927573199154845374599336063172573214149542723681518363263305172371740261288173929479153092400168723455496538100840267600458173900741898759144417586594746630571938228197635698770432816056537974467216509089534959042505698615453767332397527971906853100040559430574773621342617854341554601380022037042164750770749063049327691642360011154962114585149703616275467115140019381900856063419260506076318665568357399839364029710679661269464268765324044744879573633848859705173279509735603703164683388671176488824039088208235114273588840620947895085929765258496155927095382608581713126948150563870142742633103717842860077446351426174097024535563520991460410106382494701989161788921017181706359071361215868208095671932613249861074688421741120468844276293324241299643813272204329934155834942542034869147399576154452877232805650366991007406071438818410728151257660196278385995142252934930617303592134632479512512130391684246370187202834984317308171324107945747973517682653096612045731907333408340950940458900751795729133204781765924292457961269280098009326852793797949812868430579547812971059802988336929615720286378348277397461025115156794910384254143254577197765857367467003252852611218882849646743220683436110022922632542410544765033449719679145595359473475167980613284472185287127118163194893909373453859531917440069695442350523197029749925415668005932497174644705692625977607373853417567803366123638428736193139568408278496556372258726679947286853486377415264836706849435510002602672394251223411314585518482647416534736075991221717749468509556087832961552658927275633474168370330237644979466455074062182359975308534059838931201296947960988012355382553735697021957139929517146156779853356965815277695229531549462283361098648592021209509392057447457869017601879282992904485872266517454711580025167361170328690187216707760983705417571945060036256004709471073525575782726409722159351075508213016292675443417009356465442775968897434868388282924232623878047728922985337651919017281722649650648542756413407839395260660399146228290125548151635592690343508492770709233178059541162236615962652858385774828025588783709769687121444815788547737915654967865807243366269922672448081357102615628166412733094005151007978361387983459624587692978390175559791571796582561718697242523422895866985154242555153813144219469995632909287209493289346255374589635135980536048504442843190672956039392418553968822428836114990873937889381909959774648121310769881961806402821310287609733561789201360699816492464018812068925627411475204381677959192048702263405897947263397501935168105924478066460272059386509673144569749880701155039679984355849875456775258241805589820312154725026982296128588942031678119626190662141248278671745648645239133406627016930470314885881299771251142715774819825609925707984381575419478870488763072257501483396418174675338507874842383561848372938339874725439506923862161266133636619334339569579313336138190580168780349756919208188627965189424394843090446176682262663632337289066222257972488454276484793745205452305279819670528269776855385825404750966507401854933354007255222208896393422420291071487059621315144567650222003264204306692551371429584321662205663028224700772898822190620407192005489237050588084118950343040574917066990681284602430679865825786233048534406623685864356272836961119931127840248777987035577371642586851988128885342399505842504933976013000770782590738461801231876282187689664231021884095749894736463476325684725105139265020619136708139364282922123176297698568508083488375581533016169860359958224248281864861015550253276108196127657062443428309704538478664575168101115010120930485595665685181019198427632613310740441917014888519417313689442726032743832246422411759503412083623236255210427487586504451263233403670513375831977409687125329110060722981275297289554659903869631494179016068778500074273334369618014320241465292301292408414828798360058185494920648662600152790245264781362753265336572189514634052372217055319929983327029235263545329096439203259950165041470244796129673501756639719872313515511639457994478126649416267541529757943818655339469421723761789926969190097574185740438416267251316736854169025082424726418209196414024923165279969673878903530812423663165173205386820547393745263322341828143098679164545443214177361047554259001576601280844483991297000923148676530537541585134674730609571238153852914538265058055594013332246693949098387579106838598701356521023002641710945747706341827982515965982395027446516726994771687810460979028029077128180452074581371299680879482916981027130353023878011714110241924558478150402903707934318829213285261630163892999767795448701048668824808435554260438952631041490356251837234207110332075954274072116674738213854186784985116922438601890907137938996295368038330603467226436724460088504544700015845195105196684263573262090701146125053383803889579035777938849002336867968934351983606190622120342993887384523059429673755659749769489540823346653427049391528135623791415588588510661210329550651284647037062743171724094826125956222111522751725242827611892999413758640541367683045631465610587993666466111449876018313137557492950049878138480027911738521830227303656037712211026749259062501747722365879329896681545007417005822343372280873136502833468106936950392123133855408837316869994177620783065457114407269206398442486296611212987622916664659832996936596769654118765441825783688401356659849750981831495777211033121562361686362697049761966772775555766102927585519969327258613368654740549303426711153137400588434218990762376381769626030804705571623485081681313679280030253987160762799483175519112003329593991944781615059864031462596233249596427979413689103629427745814762154260937068414710486415212357045283770390598461778361428768303201701168339491088687760752449909220679532157494832734065100021470124242018318714915009895972038282635191301314345608442773698509114123002021251795097991266865207059048681721223816706327823614445513194474778416312296515604273376149204152810045728378692456743565967734214570330976153229180443766077911199825952092237825762792855368395876276161461144055952593415700700107795514016906866139416003765284100492967449194181551330941262446650925069097261427790188818593632022881116709439641828617737700564458738018026912717405870591084405785670826173374877714285349287785309772005802683362842224110798460045367334759426909286265319222711303927414692083245414487161026974021409537761360751029147790719463095669935665167155653243533968904832419896844859769735759845608368684017200929421203492982440919651847171916744983588415620000432796540015256513250908291467994487716385030333803883002322008776378376350472708031806263626213890467529186077303338605962284572591843372002051934883355411016147349886948241326567738440947583546816361630855492859178855744604403278246487305530337218307534702522027128591035298288905276003149550717316288137176816350151207549495153673530479690070468565376770411510783333529980726465753206697113814425164371276185936463666591791139169788866312827883777685050380119571581651980239964293819621454864442346696367804513513378725745411063909420052822548442314695763907883287457949306669262757546190094641152201155812113378398491427989359649242135349491181622139296848773451520970043113096574269073463748707064781471446459112962803895286703156465719057670904094428398614500835707028229197214975593316494517088349214974185265974646178444951629595486702395845335066989170552126897065591465964349068348621346563928910347342216552459828204058244818430324748731429555347007037651488355521576459331719722907032127655573566982008168535272696889332729003328698701611860090897325330082506201636355460300958927071583332718886305323639761578300562609113952596113224994901556097517900481860822083824178248883343758680372347868577765786010335772988597210979812521105572635611314471694591150119532365941393683294924855887525606310543567045221966069462146960762608399609527361041870484875876663505610828992542710347479257946566619353296350996270219487200312861815516895174569376643850832327433619880148950602253769333268969168010154892791232001186907090520928485442363270377157216569089319270859230131731584154239816668324198292614091943592936302348303488178281982879001882834606610335503273565961704558133049865189409540130929097766304242403168517219919130332556070997336344498697114160855257791975485084846341314782347847742099206380426858517139126820307051788249100459334524256680092640315466478568432730247897795495821732737041133791097773612957137732372208919588253219692605888269551413798787909977558579678427992131461659647291368686460132357430807645839769646841078403858588537709172345840169608826768601824976986505389584581174800816400072214225535007270859927729489138545749716647925082993954729686087474944873232280011256290293796456859915695706592020600216918810399015070200509719432434031087973326190761881835942237801609149998848544401158768663281954195242525617966420270865425839493571100269230640281484613311757310987220978955058841773023074760520158912702946344405248800082859318445846799180360578040354628714147621751937708872361281821529964018406895106736128197290585150513744638576591411207751711158676082623430468512226204686440943483064527182730876782175648089057221235018975609968900912832521824210366697939012256399200667563267090476526406208003518814801904652854175683736800368113261466134088033581978986924245134614232643422320298473863420080856292270381832485361189468737798961640022891232781316300177877908729508156372163991033546552985064786046247710871476041241759443877044429507392889791168110618306767673695057700015582291152231999526496826733833250766102267607915273173781359621803440990296753249098871782633806666372302215954077773612784005034857120558159779449402531416821550275215618687083534135889484153693646944800173959559859095433270525453476716761381542112180721944105004279517864973564162633365569462947262249382864798760354533405488562571637384110004254646398072870237878956009101820723751733705863116249752279267817492907634376450491754193949299988823029634346321751665334278979734102408669446391568482118386355892451993641026063164238957704913347671991000989692534296415853804227072327341312916289713446894556755122906782379632489295733860297279297717558669983089433092990370805282162906317228149065497957718400211110233432806393497691955095243606429990338277617026670317625598226062207566160452732548303788121069182329652601643212468784163773944078524088469930464927257393268916737762208283886950204202620176359716258255533339110663758253913900807358520508863146295097676895312402355423684444502255499955938036705748589667582413474994600020669307710764243623358132917325738866884139826691290557132385336769935939962030552433024150355133571132305757706910905527332903482681924708833849464475408800142015386400829840111393492691066326936892049539741828905264299168471875177676152717116705831034949411782750793655236975350918763730717519311531149991815714066935320983432956230605437879843563598205434144898141747711605637474264855613379973658179545151543600436671674034607889178606274856914035243839465240571231552090940305577126455996519781304802618850187807480739667749891308259926244893688058842935940159874583931691738857565168050285557390644405728268087078530480569273135573017595226670384008852197874659057179196607289646427553033092928467126825880622495130215074821311665722040629899789953484364954377874874618060288542823144694329092074187622760695437221472563923237509621687121707552086656939515989500261625968353039260492744871034232741769399691041894586116296187711413023695943909177018575461700003252873297814115806988225008905319657973329931885252713413637630342686698368653994313953521810476470952391781881559638571182771289345776325453168750214626040700805119166715155147917417809054475404847851079892375067328797544677997543077319882981466572437845706208809780578802972887398394831229563693495920518907985959780201536463242760031297415572344925870985082850328058339726712657708365329819690666146724178791847297851995798040424194329804034622973099037054756985832415876769026376782325087534057728302673596463396464249587219745925164404374491948784297152248056551196298462086705872019725113628305641179745319271641845968645063819583373772340587754263940331891288355805713640885550549977040614083649053589163377541758038800414889018854405448270075379748689341633751964419343255404587552260244565086510401884061297460506388774129884840068206559632195080204640521149974770224081927299867103419702165910131211406987992671644319655680292040798691163040274242505253648626553489538957678740341844006215332844663729845598372126185754279590935678583751459202080554883202581745688554463830619652215761632452561802359826031370620549533315854227597711240279585820204309406405783833301999499528681827863157706189790142976150978882855144924474574689415818381276070291204898485312595731236952876162864796572020158838064876414974605385697020555355634826188979732700360259820414340822192815359329562630107296460490595434577403406176795829444246500921750238397266652397371642455731268701467809474650361290584547801686338648911661703699706289762262348915071986162632917070311165748420955350007266919581553037462150415264994818289043946377374084240900330580552525108716395293971467871108861285325923954853858547186366453450790485471624313695739218952085965223863759997108187168372987433632325250803163592244077503914189500052721059640153517498891907407737622052338863787795350468077930696027896336850625765488072652436581644457002544476436549238328179126249929921087893545285107609260055437605888483464720361691016841198952172619517768353145336178718901264682605304942569289321679290309076347018835617857494700286777571409411718622459425850451846249868604622368881748680956014384397971073041593836036778292649972376557584786480433885432748469609126292654373250376125568906744094007533303556199305031895176599477178632458642607006764307223255692746779668930783362251589686545821835365022326160615765760152851602035481179270186687913339447779771175442227158003090271251681761065528070516722786736687022054863252090167053614015334856201393231311411815189478378304023480476636025228801774168253479703665224057631717749270840978710792297687981693432811931550057672010655152309775259399620113496414006994275015938231254881405993876600152058128429638427510858160966437890533105220095756510766096908167394672282579426700299209793978535768828891625119169678438327029541249496440297679937226084390493779826673863866781459363556208930175753646444377874677993940648769543249777653383860833345257611711086799275174816817229538126637626419517230618080343281565011937420876533111468905880072255245768361790440774892231935039835967588967125335979699580736071894414976124472933564920504958399257216415619304959041035090141981813867107547780419855846466444931108204287626092044153156658820723347961348098703827588286501458702725081243895667326791633790699286754845449280171635186421248574818868326706885480340719519587945353393233623810868946108983521207525027469513156242960179244245859471406253585040734090651129127647063360191117830123494247451329467944214471755222912310356650590316144866702337462122956618870321683168387739500150161369419094599510127046942048406517249736137863666478279955132740316279529924730276066184895381133533843503746889395746342305206890021928467933219693104036546845947103327906643166910897477249999999404409191750512119571804731552229756515245854186945097243186120532754191775258546045809166190774796517354235603088826807537523067095023078928545463910173088108634452074856075161673470920615246524304189013108509320036377926383326927919917351732491700127968769643272908176494545426719639858481431853622505384856574232104895555214303422380039850592138474610136367424864430112929470895712878420037636691216445270331553136085247057780834589558148981918940973879841662004682465648559745648204459715129286108145245553269198943091190063427729868698756557251531530485459645770895594795663395523960364105720377809498514138654145654600293988443767945691839688356062171548231947681395617876255344770215537028303995336727341623909832638505314205720266552205939752453547671287678897978354894913879304714112681121872025422954833619456991374843699748938611819648465692891572391792792433098311228231511613188250889650189889305337656669746087280790301252397680605431167547302980487394990719760856622682556153905019609537356336193042265220265884828604600874867593328112926368132900363873905477144337266166592786351208387357523037779401011200084270681468083377015901685540808939479750422825425043394719205479122972054369128272792521016671966133228926688193452242333071372091866167416608920189379943768871319566785992413864048676161187480543484730122158642136793257708744186294753895048038788122576463467331484348164315404508327857669791800777486496720928050896096033226465359323764092448924520364306052018114973228138398524358066549770023659536296773066161537499722737536234505148899098824423968397156027038063460833537890904824611659207748087087174740533425064867024537276770091881113477421990436978148551171603049130667632488666021540232850364842315967943812393304056361939900904426248038011949004353975914131557815762039031503856426533349273263474630309698058936887977524993218460343890882133589249302754295614709058231856998086303167690484247021733443016762578853451241190170637871637064018257474885084958360860846424256314490182985297998694012857619287136410742622635368438594874878468294210924618938675417032394781823490065477904195666253402342973280631941074561711793653438191917842841991097990986596968102503673040853125477633054210603458811190982956058407147704655349921748865009025998206286038228463033261179735954254686587600118537985410227759249672838925550112204928049098732237642059343686320893324606604325607529063195901004883157486538305732841084466702916254442810722802300417592569817474078145243607136955209199130817888718406032441649536886732010185992526498790715454669938804026326579839744680479614213444169716725361986331276673604905469035534087661430717823106268444952883010533008082099142945291366022647958374100244968957423041254195742648311679457612112113718073913292787235441987834113812755879273216774004632610048862278564739387788297018775603448063832877527544196485858902074637650677006976648004063838909549706393701528336886181415890338364128691940090610324320087007345574857771876939438750424082373264244279709946028287712482268620656368852947209944915434240655733412902189565574473137201191453253548463749506261339977653423350751183834293628578501161086630536492825518843236450743905900482001330272813628494870406128405795975051973244819281951364721678057011800162609864038771227659273585776813014081346673047409926139118954648997603064456829410462660989196165613260925106561239864754935548576528667279798467849076575737891431781528229096491934966964162926596487484936774131286757494087055614696539017372660804980066260218725894973932002949824953806435029688098096751739497839127203017025133526710662021695198924033975625963592396904768861978860464982287107285154544491293680592031099502452194461710362845870917334505398000894160793960172738767619964401835193131470795714314620004170442301898302082780442210591949534984941410023483789732059915652502403267471860523227893166658649334926561466702237126100690379175282756302497492236021784982787374654006151434833800713186808013737399275190199100921003353770992846024727433741384999427169185056368042847694794491074594173258360452722581944669735692529572891229332434584957135598228379339754598012532259350226654303926712130460464945022965417443671755424278170940481925337853773597349829036614722374472761248192640947177930415890254339053222425288085352500165499715928505844009830075320863476474454316048569766519784459151023232619685854058569351080157953068877617360841196726701305155883990923018099657659142870887940133374222473751744243116710431452899661427529052860162594949669530826456937768926092595211595860050811923169063750702562425252971566043937812841184217338143802400557329687491635125031326796769503270983581954407165488586414171695062171489532492759670421565756147621449699603397086526684183141955920828639359282398706892588063345507031127295339203231299903416072772894897520287646754433658233817033247329611509877043892376763453070508654292672408857858534758167317046294662133903734428100504710596642222988249525030262640413698852061574276091000639973737253238133609621374587391555636195011322771322692056193755368479247025150096132584213230783006188220073024323064136451789131538047818309583855882390666866651109503464473619838822948768031019350543332078005217669732391632930824384300108341364583971691443911208001093221442852618658670919817152855386849816771904260213807707804991147997421958504448374480271607273656865934180353659158800827515377326415030752962154961634147685247370943451324396399474292027389016830529081625609536718650456717858826068915657017530528256756283672841414722903367510583615423269561731009796009768271013862064629807412805260061977248504991884356441770285346713206216832197964468660346343490930454428469257014457393183837723631007268377241784785190432151279284653646541006122193072774274523398638480230690838955879417934345853836079371516475257182808348746345153219334030720011588808768647566341611007771455998273906421662599817161301598820101580511889534103522079680388658690123650647808893497577888889347003375170317831143427010932700504087428724036900450647508614202505897667687599098582662473692358723408771244799724750523038574301813796581875959492796605072257075718857473975562046472695321308327233619254392466904681000523701680571867421904530894748627729246697585703957652215483765837149524494238433673501102323872196806079909315137388197111661264732259650269967315282271081703520150467908917857270516431533809376701739504215397124391388105113058835037555034247051177029954996642878557361333707956183381511140025656847896597786583537294533556571411557896368789115395361081611732093098899739529602934124963085801324798094321814855256693077414983139854918136883086722506224117730613694764137135758798981822850114801785813332698584419683399432235112770149118763187582775549249247300673720915790787850706858648649363123862208840195868363092856444293843659537636060071632925567353639640312378483604442568278433345148946119113885880152909677357767460380245782797174390417973526791408236420495503786421044068221993610323606648049690367427935975008047936371276247836345590613727926130369608051052129435604443570259217613135625068497190331844316258987190175857802993275735115633483607258990103448450313220472349675850461080074976186299476788380219282225086087415807431113109231707698814564718798606432798860663729064378670168118053350994482636309065974984417194031918989700887781452746841230818776154903056819835147757485121331581959963530229393614319049446342083362141080088116494695942919779055781312006098270205627105859079421070496255759099118060149205299741075935155822148865959721051028563984565561529946245079158850534950572059442256971092664876743631373554793769137128536846446017876613618301078237475543217587845160254057769827262392763671605262850618225068552506347391909288868285813551371222933254421212849956620607254246985473528030953649468292895360818227873504786310820994520281462731978569961156063949857989419938593833678081124736387234885441506311528141508948726298465857688670560785733950600959369090269645135110164814200060727889481307638007284978794384469924124727083194945884457093075778858590813030709918895334459884272623105595953258843702569039882010240529599677766370806956461742540602216678369560217560225503235483819217789193149806636099193824504027081782332004340598085961545216696877365431040572914192948485598937641307307860385141787005412491597881493240206284645516748888353169333573987316749689374016625572344268448463388776200715901146800454362479965744518050795523118167472203350088066671027910300020083232240004417842172479058073125055141005245785940340678883954508195247282345834030280052041868797943351929569462004539801459108831327326630451297000681384120966657806243393410877013354798323475977686799762410033874370920297341978509708476487805418682592389038724699821636356409366682667775044626998820529000077515169723936166687963954847278388643360994167525198306408481676742360040629535250063342648234563901382289276323979756667000222306835867914952336209621877284980925290808389113826480145925308440083364198144762704909339977556450080559945922786924726070283107353686511497945100413490364523152261745298135170150304009436456692008996977523900274730576982502314495847133326853132408244871371568886074141117447210142038368452858338163350820347755358499180960113039982764670748358493193339963963076014277964789998555243684536185811478212407691603627690836881869767709644172499491818493676614406879855088931977791197637684266352163204493621810629471696753868825622047696251458048558409311854349009253621554055319089978833167546790652113503459224055592343381719448990864721041169333340107561244950610096815609311055585526506114487174652587963068845189598350334023750599363034690289671849435084682305146979557408617732552647340288031293842696874566784981809260080681109840778712597178196322345318321755818545245277327416213423797126394884255474046210253749218151462787722272542186970417481102081968699083685138507113673978807167594851561792429498144757021776922291174293264685450396185435937626253116429283249091114722332813096251694633864084368153617209073173932050771425749626852518380314208143275974036235426605818989058067703157491897423604174569886153962790455032866273726302349213399368120851815211717374033320807712936970788554851929029788202156555691105131767390806438381431428387728980331719924050246002244932915329531626319561845832526851224197498362304898844880541121468501269286091364410458407513990234576856693383694379432884195958105900000744006528789385316407568955074327660613589210585054446091304366249457938381458181379137466710556284943895792432864510247533140767964655078327774789438489959401050261594279635907007466842332196196237855545195215310241707699962765476286360882925010525578132205061665159456966916938849810315888770233948908335828839336765668946505670882105474410377935148027910908334011355087107509693523941171021342964227939724631898966667570315105006612374013754068106643101074417682469600163130327265899172137337948765446949807680952744179602692440957890635071542793219870942595273125208296903302645611667878151340354577746082259209563086864691541605743873738193461021284484695445902152228387873819130046852483408552061959592862246100201894478024036578456501960420505861850107879463126062735850678478980008160291460071819313120461149593472307567023359429586362567934222270662868486646348858812289422339578836777227915211238883354839606693543875030496478306270998892562039082238513741669582013994349373298627746822939844265654248630272088738512364440342856409315120536714379341515615983062692700503318881356300725336432511486367952200636341834224123502951129412578376177685052171698009485380080282958914307824674700887259599188202948006802100733793214657450003020220475622274757385069889107324313283959344618458834552943912535219092195082505697702364714410759153284282026482726231618079395518734217152619288618322057406550177480637146524218536864490898493366670394599433153902168171209731769507052642913418764075993466808819044051527785027277005329952400722270623931071607231217333870900645917191623188094566540878741679341201773169981253681872018727875495240284988879292678229805422597140116523565015198207843700177275042577214069616153399686666813623635606407753048979722590135354554279678139839340132971193408707717686003808402815303791417952774498598796926134353775105483057821250292909864119410901265314422537567807406546167368484209396451670242698695801875764697619488204999586213936666568119128563518144124423388372905120308487979571846955360845833297158072583405868828488130755307730609446598986362583231192573230665626676017283672193471137693583111908320199139880419321461521421505061897697198161992597130388100700464095167080801891715406423817613377598235430879299270546205088768232050858788228079875272079755992072262952220771709889467266538441158891472329014333218042965425671886240456455893288896662674478782670705568820320818689371536265894549842663903545355029522356326094332787622592842879746398599479147650826708109038842316217719538955222855324840871938244654539494566081369170106912758604034647188642100184641258457556535570683474017189621921910912059058716746080952492976069183349086849785862435659699069272755307510954793846727749844519426242052924140001084864641904868843977216486899279230182662352222612097423879320419354991552298046396694079159852417776202501178952524620528210294836615437716353597458948936689507027042358951509860920378579827356027031127328788116821613410036438389301715053816437661366717806138800065296857108183078726028212608931531189777399905381850313305880705037721989762978968129865025750383735509917915498447834684375274369839350796139012139018002950490860534384251941785444742221676518451992919919678851287805607168466546029331979515613046653479073762889930671200955910311255233026371439111231667786910194080793138260798579247237994723129521983631335151731873356979851518787329195528705170682337222860937581020312513911131755123418492261170221091407594325489541984039503542941111775738952541399793992711404474252154881803354793272776289702540448099992198690710070287044895738972574747704691988277404417939522557849707344294732130006379397775776118640177420551570379373407844529495480273076796750015241589086044592786349088018964565783846335845738628856619370640967553375550246418937953639612300803526523749353334126491933186523293571278700243193725321326702452212879961519337994222297094978855535361675279724520085510971853006463248575841275479263998180163520727930974892752601125657136709612025528186286621070865344144902335079438662473373738860055112503209847825660407847192298035000720510010249878709027232377621658968536971213814173687873078343199857013448759937744913073092472066994571313045741035139720055353964914621460821869525121563338704605610734826824178463571479459366248246865777110120273974881810976079431660377613366450631982595459049243681543657920092109579967923433483764411789155303124406406460667205683337652864906056225289087389361049485523879806315135168461177978954345724230101793758748576592261012005506345875286954413297221899009227437899177609756752759631899391900685095103470589254689226008807068046331533630044454521712560962698771075757587281491272388393190242538731085575881037686467087237680972031612426493738109723656772061481964756191371610264424728848295438441523950211807806506205285930829536567932861374019870190139358424152032793454913432748530545850420815417975304090416747979918326867277783868952560865583121737712427802870856839937314721550280778242305079088251991453615590943503306214611201030946740050360617542571914894576071716443952591648111495190107471767338755661060806214091018694210483516443374807210940762806994454321861209511452651648309173515878387171471501385103900356425760628624748915122269797254801632653075826304299663243346300970868751127812150987039011953597142857258798967200698474879501353953186139445997504649808524711619802817358694318564649505398086778145400745154766099739838848652831724715230986536974914107090295455237236586624381973049278908206332040481788483503959994015768516248623792073769005169217936195287427745044998123389037306540223278391034246156692500900939698058886729248854133114999754367776601050337526143053736920460656211937181438814785572075926350193540518704717694201107498213263774533652125146953691288992343797258237382762988322433528669966667803460526106454151363159971608720260363254991815172965510867969534026883239714931942490112593216649822855106645442614708972616757467024314372258384782545809349658259900395744569632300829092252294001036211502317573047037889654494556108154817559698145410197216053228186876329973455426727729469848186755837645248563773582422969846460782610917209816543120261051012167001083372951391910328545809447903608497359661589335280054033345373286844736978305773953989713032678695789675973888813938302914354036874920547670378291272837337784209740641212056834155931280717851685926361514218639009502317091325699303949208099237182794980391329097569227889405483711950586103765661755258764085046622857072192758994879070259470135936041715477432599432682678448784051017621306548283059575236474850786600011944903767231560412280924063523145094859635503956477663310809509488879891300376096707275413988151652684246778268147124025460300030380087606400079301770895223161882870554405533364923900437044250002430149928505049047992990276351210668597535694820496163674865463934945183196127677599653650411561404544077214469859200568880629019673955040012932966504998155804539019371004870655355119567843021068132907656746568402710016406720846266012358454023601402942554958618303142848463945211928447983670424381656997191250214983124194467598197964077856147949796848978535811195706552092406124398081125113290739599797757208234101291731543554036849630351517695847303337543540925244197545399252793310311485454723339938863308936969369960465476069333671960413703906798386547882507702594548936192273947615945097497600122846623788997201015417960522059258708629978524308703799631215826790734400035361240283388770281705542100346188338215292595202338549857858762528024636772197942289565914246044632780283137300499750485044990670975864197526766244341246696443641786527165306090110848774960745164521506956380427389369021804880832333222060588365241575704039753433963717815268760703620733622495140892158170559778818619222779485643248806153662094291619715434415627735378301019321468904566702991971381073343400245134637625936018553311022713170523486763919308956898006896112692770301372096728372081737226760452345728913454631868901658864395820595162587981856811320151206839919386696651671409021296537924486158742711056551167397311128239095595470710923767892750060405500973932687182294036301446117707686638456089596528107494992721480622068435398005308461986877801566572838153920570517146821930423902282284023930977568663229275719801657492622383428481454401483202605697716953607148442382665027556230230172531021546205883194030047132849906795839714329041823858648563992218777909686576149745357067736686990643770519050356345569844526010988257786964886121865926377868641414967418677176087273961897672795622670825960161745681770949055522931127822084054195889180972177855182551168953539824849604560209350982112812625468701562416069859957410272634334404427757341374471144696381372936215537244086978001966720855795360238519263989706681100557870351467073276950035962706734749772501162130555686048678372347404398267392519457784897672021644272627687327452272571541356952376288800451695446360606769995451568461975528106382433704512309040075213951094564124931348430418699924339682543555919064143839054063043827673910302907080105592674368109551042573286701557272182964453672299220212545492396478760480102199766927658909042414819977240131381112434727096876035945889592711184376112020157716397179837506396569180450725639523974441572784745034269326241870711426587963237834969689808933278082201423250447626287429838589455307809525964522699544000354025268938773670517193567561359916821081103272976592903265222260777467978308448806087259292686168387324665480052205602329876198760877787496530558760440135619475502194300769561986679544365403272726054464333003148311040813682562082857014794527890904953573734224421205851129681378554248179358978448296943672272644652652255334051038981063574572920575263253118596579625381415820146792891948764921362420714237952713350043447088733389222792957393758807351275152132580853036451246150250624072328979071672140699768147709366692701284319009396481403876878979764801202400341068633779085841088726617007462884614627170690637941205064904782851670326470342700836964499848530126024851056156124468016256728760902272558106080707163946308978709802043769689655636273698981805431934413163946151532869924317015142656959150159595978931020701719499291059568478796358893336043048459031058762480844008279365153085441655472785163199195334202244426821373678047490481848040625205636115220858369200615148763163572347943711798768568597568514366789568393040368745155885344908036621825123871759273383692333965435789074363034200916675245646645276865124279244387842257934129691874222826199037301939035029700420151369832357896386607139712508440982157823479573559485964300823513890738120180272239567484559627776904525045061150368960701727438192953443537405608966728547226604180718971032703306861656050177442159499541464267939502512632525783207997875227414977972169045416541071750097859120360465246058465816248885310019205659628405256174380061951814227127552593418949016910263777914083916302352947385804483068023322651462291082215174338314867386491078006795007254995294107650017405519134068110744899425690387933048542742607652194057669707986519324248036745263255528395410712397286800496891207577734499549579507782163247097983336080414845255356905331001534681665432363505687017775792995562322993962367786498256501054745084924352790434034543005353698387997546978872085771222904116927670318659891323000237183450615318376390846615329311848897396706326896447066870696193571096425465169867551397081105218354368642565195238380559903853342686092432840927847139945173527560169948359789965614347004430382671387623705883547453703374433579383534249930239479174956946522642755092887156681644297793454413360809551299665851736506513016661129697949116529688394784158886419681296100938936769950768248339457327688109643207985251173367104579189164647990337271325147509442578013315315204495760759091017679650452484581219840643948505820251959802650171395059301829713002017142056575169633831132900722691912969634546456866805927156014635738810998792350116706231616146521846822061958223926828843606955228951594890023539320963412344302410110578291664060695601778509289176656715802952204550731951800330750561080612751983403203687963679179031409369352527233012726163696148254629569830056257679014470009407482392517069168036373066793177917003253817170055615732378955554019749262697190875714221290621831180586936791423337794339395782291382331991833559853797917827341082822602954066780500487456848424714011424700148571803920972654082099217777669993534093239161502676765238945252675862581501735774624572871737608738396239548056920007288747443257282686419777882289630916775670800955881459649146967994207909787591638984241024060431156830204328847143393781341922492239752541195356602592813313487956561465945815920782567949381805573316766142508633141322960290695570655420498545687756644077720795895988110977740495372144480781725844953659507323819816131848860859391131060250832020599157327746310447673662924407945701277708991294421260570005235961878667597385246144331965756676917360303943373755729289779732583320749387502202752252954971101240273293242944029974803069267639575350107501124531989006978866462901292485470138579743814475914588935169105358903707972343511242822048065701750114335189251811782435292679055464840425888403099073824707461963716290406632816734783993990228065051160631804027087987111848299780432428560404810053502948889980139776579622333109005610311047000705035226435842917217727927600259598948159454245778903171328459559279230461862998333891492317680092421981922726006827371757258283155890153955078443218298543300284959623481172688768018846977018120562428093363663535216995262881302511906372822793316244214788268338736863490862616508825737121396003794604867644751434221932799990792981607584695980652014821137292580179460353548238493581469281801608321343147552213949601442363542317208708973492619130013742558056046004846445355598246079182511902029850283119562831827586660395303699348196826002973947287574918930898269718454125097461608180717520451599944142984101999122803131835639406553838138682259239143434984854496377998730295399605999143060512945856056387142265996339993961684293518076345635588524710030328581386318764119847447920712122984639127823611815512483700490521847715920445178813030480495226755352724353427472134867090319035190425113467181522183515283818311802550247270988561037938927638650468616375965183107168313527978527615861285194938672369659465171306300731887007661404474052928471327451354238474655061656761197417134128181949302909243724525800945176725108773083673226745462311307428766985429950791673079505376265697423331198794839120699864160646276947839780609264343632587162769919408546260034455834417048912027934010237721702954107069919804598137730315175269827080430361105701132698486145633097932795829268057915403204937493791432708998735545363762044196721879502129170028144896348370979640449113154051256191673066907200023050119199793819708702132026783548803179101931095387187459444061456746443575526300812635802459981116425034785620451935024492365476205730810738304301921503301169730561907035583987424970650667981496518758418668664143693865112847552846188777982324038718698762887971219867138673450626127596894980607105376735846596836602483478529401246322538699514428374800822011221214502882082121581321200939432091034166443658584785922781131408018997945184613166995409423098026241573862470786518564414971584551926238835818461694748410544544837782287054734802993537710402552818145027054571124847125487843056387708879237875114243898170051930250348503552583188384129164626119871451423871733879571345928254046182321482527031751355334558245993796803834748894701225971176834241014905810242482278937662555171743398020498007703080432258864592333837486235027243581569889120231536570329055987502896829824578141709319410843646252538889177854574292702406046191146589828252116766070232072053479454291831189333529942966676803576105181352774432598333145864440779224090060544668745748032959175026324555819375320358527505210056346841238663602662516397540648501892948521948703609100363726223485347966203154940977614174805539126988405885347549006350584798725266330384399924915893602257049844069538691220149062315347418146910593324275047660642883934203671809249594914821679158315578906382456363430385820505929029200219024685055491811893946492066795072525171059871468822108209685206048422509042481912244406051249268088811432878175849812602151594444946771653733732194962602159545676021067415067781820141300272429693499096905063989018254763345762485521821948458092217277843881724688176567226272455672709051902075713188844230457083029510228218191203880441959382511350101436332749283775134551998165805487440197248372774689627369072687451107776111543984117067923876807552826858707879228241144563753199081338294029399101948848735886598603339309723078165941570537779144492544796288403006507122037931164907014006957573959204392891021571091125668473306440965204861602593265252810385384165112301715705914682031567432053951122347063416303084128886511454789170099908437255261986491108209968594627792387011104164116387959339901501560953158959663663885410645310246898819585025434668813308330647597707299418482088829587791022303564654116733610656619658688989119589574212633958151584400808382556779451211980931885206736115700159732270284813242275774577368601692232942143065576923102128925149306725491878557476189334862368494198288643241857180405396309795079402370480532010793559501911305054616928237031792503004169812132350843010260142760819520606020498461472673843900603330532178970541766501136620609978968094166699872679673555263142739739072229541858394787487944752407294222135684112004860514679871632109170702993136949231468512191786229973478697778607725096741342084967750408779683953092005782477672315716391635512288711308231850910385439381195809197671156993367880903517121158696690764411212755605528708556785620555616651169791944800522535240101296629035014469761972373501998203775144679784019057725872494866957303805218593332469910069738598397202281675261349906225586603034321722208405589092417183427745238474906870806443068429836904122269288877262277566536465627091727202231476593038956574103011984945585036010006962094282411109777692490432637595048295513461114480329314364015298447841568346770471607569854780228135963377391803259878156971083814367564987265494963447527992613164674942840040382535112739552400257271563753059509503775577318831520038610959849033041297086558329410933892099107344785513469278069228314526389662841626379041028595113500394467913050593985365667670984204948149769881691615229229122695394843487382285564707169058369458631178169488991246381226548788989313027327948034406030148575101357774532505118849858499946902656873986386510230426579632694306073228773137881171758740378830840336049169109870683973188550708297374950978131275015966402948667338174286375621628173375587735118201772617480525539667044226701047403712699022375673158215974357366378558262090794977237185426151637337969852655547903749567515857546840677784792188739623255238835797763398357098149207133118342856477964316236601257778528766576492212694649909998599828206258606995842898406392782838211817659819200077778924329421865792022482055025254000733092054286022081720935636764687218635577384948268765556262982763958155673007829604770635088062184509576621063273261544279577208908573390599795506372117832477790252855522865920261215021277136690325104626382564124980979685727048178305281829619002728995992118154909162552801481161249757362121713465531470114966135717912130848866275368668161388231422079852532638701814401671509768414793785131377196496982290219459907056208930426386117165486905841190136368581065150616413944943216798465649482658612601652798085814612819098028129199093736964459958925547103367647867365635689150764137036390411778607098077522503053655531894831503215505285270819234537353696861642468922116204995291714924298460131202027961046619355229671218604557159936776215320043376324947468752681446350638397177398276921461383449422558948376574929002091408240916564708126575062497420131140168451320869704251163677014804386632650846271383563311704114748315682835226787292865388391399486210570023206387409692362851137853539398058396643912874912202893335263061148478818665999646474197548751974355176246391840429761011737280608952881820529712810096203956646502611061463696764401629905943348542031248682899914633555536666834342429750894200489978087387439877861408224598051534048462769678626725126172397621688735316362948005755500023691642826816418867884756478423832625816199416484834078568967683624818953774809374317582697360279335307206645674285986923265400483562165213262431018405678670417590114962185478344403865379047941205639453200865893894249664416699889178128634641570490572427852487948748604611854284710960470754996410975643700316337730843243699961781119062040855716271450071868006634737871507706619797283468540781030985802221485802247850209337673840722393237575894370970556880106128414860002909383779037788405240920008339894751820566228653560146118771157293166431936731407247934678052851971691921576085521140108945323050204881766900156292029817077637842489653520034370672391953472360143397321388561818335591879052497795007724712462659098130322235099715681561331677637302887929516732327083514238379589170936975259289525361609325269579067191821002150956160440145933956282592974266753300643274047969598608187153837346308708816410471545671720695237450713466105249769901562315219771015826816352824733921220556108303630179879213610295419746051282992731074670406311639783656512158421918320796345920458108801432667850391820217321804085497240743633690385085476703487795738224410807449508377576883228866065728220621877289348604558267926657066496325257670701579229243123461137640494845831734780557397891997227123324971285294760016929624310950187065679458274961065883229069241165410706093219409085089518384109229338854608941579546223047130004790017149723377202268248173364958162628691462553431107246519186381993485999364467111348775822908703690020164993674129438186910088067158253462329983635147550021086645761438740105283663384509166004962490795239035657883671875119943233727771603838783413863393911141080084960559107003857891691293388104328821787232514961217516367799359899206644060694876280397836966557115363040111383194887417091162348356151990741509806031633311128507811667019559771673650923405919290648233816920020057289215887926175443732057325320809207628709308143258898176772177680662493029060572610412255414858350156275329613287914689262709289356608609359966575645584990224125597869761741985292149947049321416997044695965349122225459617902689655465470014565648622678631483043629615011148222131437686971388370652684348714263833302584440853335088841172870413027408161365347897478412354651583685687563661394992722824003912297627144993886417664321944303971381603618920792396602717980868491735463189632833536525435323349910085422849829016494893232846997320592765822966113702577953742777874700534002641376984418525308366389636910525249746612621711817973491615973156381669374832074426644725095617749929993550529597561766367543393577057601669343308784084785405848566243305691254302230013860709722018803222516877615714854895867119198054759179693386755170059837021264239994546545399038408876973960614009587602015726435602047989572671934096939319759276893879163963969576389479741439583891900603416484881490539111548700163823717446991928592094713546862252204649742992130070035969296677609185397954870942228058778952144677999107544184953627629913646263867420052493102613239813902888230766751606801484926199915784032237665912957989116982798722197271721414961938789472420294321091633571007469981136999504415276172753262156848963349809507233904420720425493967331087380769010408143326811118160666322646938957238553609746152528176793005979622743114860739192459654364011946790896537856994275226511604816036023028260053696710188887564162755242519327918211010205875264851116433498787221296034417260662864926544768070366098635849029816241140930265337380181256109981972906057588873830585451112963180860624757351633612669068524451672784847073012898893594867194172018423592089994866453911261220233845444133075079274853548684143852478535194172115628166267927026758817928864566321451496436526671502964950905170541373263021765986509657358122661666302283519003005277388923931572521675343706480938274276567845620199885885427112151940894407401684496226775400191597906492601251689378264006281988238070655097961838487542762204531428973987643393185304279584630809448819493166301245721509805736771089972495645313167903517189554916235425308580731589698990206750077221328168594746620528652811249959276375747106260120328096660881376398946871972997567931313567908112774879386546797418770828525379914520977352214798649150983411626904767566431936188788490237010121771534472005472311533054466653888626418225125801168471881417876760899429035384234730943011074877266546056359844398455172450490461476019106070262495438206306673892544306316035366699177032128927477350901366508827234041564858359594107383361609693885683525271832693685101392765641738239762565752425616227660088615003598315467915280189795369226012723358918127961412278401145989501329563099340593600978462836728715779137458358720463416598282562118888944358395120968193521622090732333580007957645949030273973661152652218518873475990584019078961257776994771177845925539081567637435453887641549320882861602930349439179220992945896582857199888063389381343095226432760946522066405344559645520632983783839648950613340783496640646517985196578141415259574906866542839503176778408268110735613957435899379663108023713512181829408429893497340518877232265518582885618308762380419099478740205706865678180441326884112824161582317680646114403426988927270893449961626156046320549180472366017997646646459854572745410646711676983525892332500644360047100208978031625546151861315106649917897426414411745360442951946213779980622858440035156743869004957644934415086237638280057450595075446793570323877037907766556944421745386103843748843181766945551999531533288120985639659628735409261978800544151772166528647718217252088374352481076552380512497244034775776524782964837489070613511354985813982485644757177398488907594869573847467834140827003073596705916649472355236553831648767600864253684813931003737604750401194407058292494329461611531365288008367579906190082905821960691824762169249827437785362453947903147191890392855929667756312548551693732382222747743265316114055159614723608690976735892374777693391075325666276756194567672414465939958062561288572184414532012732855851998444763922661555150311319443624885965979548155204064472104547635895251539843904221851804249734030732892046390409036669021148507950395173482290776381491073190274709611073059961221540688283020577790457405915287568648131033185862919155095009761508229596626365941115286459121296780314486036884803868740375703045223612962784317657053046855625652429703743969273577063008811009611763405420450105785717310222453745765994334777812854544042000304053909891686302633187161856557795522732556071986366940274455325091821499384180925081904035395378636773883544164607460235391031893044512299143927320993531429703176910551075993794478471623027215726634426508605404668089531485992379332734093856697755956723726289470034322745691265931376467208222218439169499528926265322984174484628688872892745147666431015043004872703590885159622277694863290082213314077762696586464778407417071992040437292911304272787605317736647636250579211883673655633071177244185850425674143645100657725618322479828683427746143861451053753849095400795912738497533595355647558945190717570614466916261385011470345392980172684481002656155129864659150006113816503957053797236891371543874116348818637711622945636111164026709224231302890917169811970051042224787652414591760793790817096755031117778710886231664198489237666373102117985000843696217231679986380695500144244038733659479243087534238525109411446998677547703113796771391653541823417373633120503224856256626347068305560670433564018873139913103262184845940235900570966913675956875553718673099521335151229460949658148101820642754122891788934542590223497689972473608768485479335078709265035584459769453166556249868656457847095341278878786679100724801566758563554928734133690628180701398149699458505724828639004108843483394455391296224749442998087717176521532797933263101733633621475688303312300930713377805714131439045366026963230321508504223385839189342301080542911479425739655049412020625192943667712753397412285507168026006748135692335383399336734956584218593947710720212926043967218798475471130665914638596263012341046584056356101580078392261996077635348550801686579406409899236814156661740179036259465658515776150794805710289907883960936351606521969268660886414975444690943761557644427783163285933927369973178164608461638088398561004761993709895308997262804081966305694080521607277688962323435633908258224497438458413360409973661163065538021273284218069572146016992133389691665867543527821973489792840478196602715584912288639791364700970395760732939990929546907182851450766792399961199949130714127953618082330835833165915353615383461030795073581650706075002940665778436713575097203844975928966163519029465441120436476561053738912597992908637334010353778298244775986060007351684523491283753242557360810619049544780245949190647675171643888857469665065487156632794265979081565588230887056329101982346017426761057004875650423021242142825821567829322796167413314741469418192935745277348955654573905031843908121354357563449586247585547592952281472128703527407950977284045850426699878825839807088504467791155249021365747025469811867728075520298655757893434682716986476477107191557360968469942036173288828650794803470066008745035481624808969521236473185038625811898535246369708911972785085353688413819500833637784311977813095160315548141227269027541521827425507769434743882498258749251206274525460403074077759522881710158431611429293742523523716123565780457504902092160476842794112621742337576630178535093657606718084136027615598783501216556509994991927022642550180425542929174502408879041873722681783889654974668907977513712819565029010075162624189555184792807812422007921564188714379760092873063619420360600907168001515338781428517751875388283390355502819190704804619741166667125865980955471664445683444656594752500903767223578579020734784547479209320283150785359789966671650872484938532840704854160473144316689621412618973257520812392535369357685836153518812889470610570871724441635148683367037723049080052125308608491649304459979196998393992776887461809354487306832764902035065332743115144617147202478600576692077879429433505308647106493881629472265474993739110317552398743040948860335526572137110880814324954382358857577903452746109098679331049470405413581868330826536163198506566752890318381471730643757265618005462165861684037727190039898901611712284465310639390527409115639718798453646097339709299473707435824392856485423263948607247772580330658748127027809863175977320429847254008731154865177353649047410648840149557749314284476158368856469113112995851352812347566688170558472085331408182673688410841874289827081561248105458760226993315941867259350612648718162198830623280276038458097898351593535832816784690913620197771119944577359630154607837162191873409737237785818020495684648465781830671727929746603505008243709803562407983132815020119545884868057685175703909989387704750001996416061829905049270734194794524570126985799630336802653792308288733598855191617460441954463663497791035741594737750139234779170989687709334050518404744266672728729879593023572098737984751692036601582824397109511223998582893617680472095893357312062016314131471026516279781532647309046025571734557185261951320999526754905717886196881522825471064860337462045524007201277640578999951756944221449563193012390513824531047925780455296843480741769891302403910239148050762570123428511367032940765575963933513818559055972841745455150035400877265353515513654156749990253104053449465149207615899812103969491970469962936174095779535579798630492881770917099800423385223869742143886147098395891055915748531371337817316973987204348251153971665584730887598970099592471247848944539041349061967109272246598031525980526803282799759358864322841290199352916241480332181803564346965656008995704499255708592565994888872087274892317440267639462504741591733158082579168264412138464412099389244040587547372151074194561213182217409122608859435484613640740804797073300031816779358541316273596494346133027440783806506855570011082500231343711653114312573238604638583230858034575281758393531131222201939505692113577333474790937816554478908361808987739163915376746923451626130205268535635885953544177809979193634303435759111305014800242599985905516211709393293095892966174107761497130283111361589973251821678984413223886541932808676688433229096724397755984994660125358528157263495197432445662535789334290639829461758248568925744814015103418061340753567035723772186784118877759648067905101169539285038074507569354240130923445206819584566905785377516369449681108583978495552301149654750317633915068852553547637586058662077088758750059735815331716935872793892631078240079269530950139764481822562316043669720268061407291162743547586099671864727164437800067632983349676114965961954889688783307105636708978661733883227480077576797479526053048900347138194978589507813548235535203737798424203758150572318321432778310429335776569481472542041352941620356996543993431797383613743026949455092085495608203373638366893971800885569710741325270165676877638783192670826968855083087833551290674210095796220433686476055533236248497137467878497911895353491022933744670729501880391768752384838137808744499939312847879739806985913915844695991852134611012784631327414298763037979299626390549826123532272763970406914565972582489440391716673798322938068950716551775614592615934179351355559468987921192878913512551749648724695473550207373440910970674745112291514841767417180466932751614037511328967390735142569287681974903945006777642051747217089302863427314625491586759429351859223251932578444071111669597173062264149481001014169815148289466135991771413954676053573970416481245007026697522821020518431241366872015110600907791033680990093036254365953621873973969527790890639229943383447974341976965663026611933161487719703531637215064617247194829414972074392253399659434575637592362141110481580232742112531720515231045926809778673874974880503121941439483104860453028505949691599892552164865500081535563326141496603979677873074757616060978710389482657946280084845083293607312725633012582566210149642441697531743230312308622262487618776939910767704341163569914652749346948528263195654943052178814657125935807236744353589098554100550721156376992612477800845601281269422601388144877876811185000035618640219450210533886696168480317207949974296936753439548488393050575930498157590387862602840385261853158234827155272562462441294925536122713268471265330773099458274658346966822781815232879628732147422458327826437628303297278448010790390509817175230077747768025543295236977692797339541077317241286088957162280651302540410373379042041205110509144645151998899723060844888423803217889795400731582699535784383908847520689695907202623072456951192587687176083553641087497736007296373955966933743112510930770870333290954222970459012771116916168110557528884556427453208071713888120947261192794817688244640944303148224445618054917061792552158069077889552887779833863936819783331177853667116133136589506451368932378426912272807819449331297149411174447666350951146340267085212986938131723227465340212612273816956451638854029757364945289555043441039919513750558971412019876278882006380088630393759139461605174685781127643960739736417254129232261839865199915126672588423060245357389464476720682909187625180464259533414458169220057946505705995009245975199011351930785420347917420779059540784988965243289332824460669372000639362694967060128596512628807622070331037612760454292686226740944711743946598636795503913596956209873021199256124082041509048224075495406726761137697798581009198376447929618393043513224803457974089956009553590461913368988342823760200347562649161522880364658275836342369112504122435898454656076058333609497183583360998728452468987747265819712423043251354081045217695481277035190895118114600769053587968433955221890906578607164775765458996093286878180014415518062645030819964308645528322546460122215765680155340398721760035201232587935091259485272091174970728558674883285774547471950638887502735650950254432457652557375409747748074641304805095946137832095158163438904047336539510066145809543160069971440646531296149122740556294706246743636945108948041348139150683284679459528955854409474474138330264765160083026944266318091785291062184641448328207077734382014274298875080779171491855534822837738672969972771011251114998193708934541294880901251665356963766826327094494383994959041079496861886904410521567012051142470940479661847476233142591546372599949653357593541141799153371313642280375007127661200466082244320247138438123668553656286681787869814872105195385645499829198609950240394270448077926693892795370224966775530281819871851779808075435843173955361359829317506128567220643000900670387118895241769488233267453336909909393889406675938289080627955965930753894004766557812111734056024241636045401841208782140866205288989018894969776807486094246341492256193782534029633893255479067563479792634529340449200896790686812816709994885684356659221465602747204111528136665656750377994480128862450925092404964216209986598396677089100362509087542680632233765348895685628499480961230324212912592026911799494642535524312979988781863736830939156231187952935576566441380946979176186297929844641436954732932274632249787559962866167137801429397296792013635385793123507326903062927995247452947856941228098044271124508484099227462468581242478383616243088050351161344372347995832725809881581662480138381217836232999096078273637843686098923379297183060479545697945126949549990757081809510417213238753776501645052313856963078179430636857059204788295436800063243236542958856021198701654895361382859482391828506061216230411031670366259251407019066213299768203123815084003142010002517654122256160873051773418220266897826233590293211618005548217851744304486702891552552139207847760137795318759749228216972980765367655272988610340526391276440746920071945610469287059055516904967437248738760993478750395194859807169623260007300812657317022296272732828195586124512170714341795246996797601597067778691676315828861822236337906670635081042757639853771281927650050191665648256627486621487982105640062952645845434436787005384071058617193786712845863326233683006489009134054489862752129736893489425057236943149183245204439544763312221772049005370632344506449923083992039300913961079005554024374520817880447428050481185329519357086050138033590962888232140091254844319371773582400249613136159927842924665006862475411881349506375823002477168801694895840097783682433664376284290274334297495487160804959183877121871111615714481451845027641417200286709422068042640529033414785261715334641870096559356114974571778107640183591353833946893734625631307200936658991355631449576236585398237201236813655686702849679491295293079207938922209334600576234370474709049125590517586035137039326175645051094221810300236662612886800158893096065842753852425201802037505888976886892081890631023331146491042637120036397918357990559525921445802157796874634797918581929898140683651457155681818520323897621014322015255421934123336683720025464957029291082995940008430334533596907461963146059412812331117689693989082502808801568797418887448917046474943257147990432766939547942417041171867214520845702551297146796125431267966506947955058258968150595206442882455687519799155931864618824906112875483835095152386656955566592448992380307173167373595831629526553383657795336829977778428936156872197994575108715848964511640434941531918868561321949711136721142431643317648399643231463469099741519209472794187943379496361181803103933170315785248630526245771929999696892225444080462776565482940357233071096097600573302052196487904125253127437544748721605445007946438070922430157288517849401939184646175502092562792471058064909548122497607229863194403896780924369746901056690964788691546479793684054282366531736693920770186726821193680946714193985340265048581955290298684523749068741665846863783448464316018037940522382519519918761744796536265407270061479394637214594087360703383268582627964750683855557527097263907199821937326559045504900679214264242005361778284400050757503150294298630408085374007244709696187482707266175411216594910138786342243335984069563411600355925795666865522741647040488178145785619775832467254448442880013658285794895210244748876845330035204620338280846387294109872376704124068450409900957850678622763785900170572717309784588776281606836228026815042896376178432082532617177330510696210461753574798870353577307587285571566206079513326965295806794830149800606801097553983387848652869707675978063657544543816368506404444132490008007205537473316155916571875148429351364928993049684561269153761408468839938491530733000256602702722128439508471549879288905588498201441064215518772630264982080846759603641921201758698256595743472822011055033214742645969028940933399165918049198761116952084406863283721414173102604257384717007452818011236707319789109640243553657193360718140194123553834963131459238710754387636017314912696274655319616509287369452210053742194149811535920120544762097801867594902496503543604419426203336316213362097729526865964031179278163379612675230688210856892269298549346441863697594299751013813205924559806820421623881737013651704862916107557019146727501056004181742938492436283648672681915938453526649337178423619787466020127687808926774227593638480017480825013217976312393201312867348704359838059779268620441863529660319546144705230769483478517345656665894184955814660241884613926644069275767236685046092308329972997096098018483292161313516876602619216717424275097112949058961624133008687403351634404180479447809635243816472949853270388135660830466050764885060704454838078500308582095842414340310471487060888249605805697487950989314225254208377407189693747765157112754110489354074006199623604933214843113565109997868596018554634024070917924955666384954406923885565208627303008110568572354326510834193498840772116954142236160045880515787315367742642157806402982854472252817817626301569617912591984659791979595976361779173511497977072573546424181293324351152902502167241267987986683519668953368574120047811935291481506151982410236447015974943377639248045338377418129824938377114770686235977533784643402519675239417532560407651172248504982579306045723285717254952045578724574640466756757890234741623901802408436715121842574216435480748228363939216033562684674959522589888239942108681731673451430075752487287394400510710190802941388505360949904556259845520865250728080751457994754302737052956468670799110744536001472669982128966938457412991062125881739991550755591535653359060150946486348155923437783069037806508805778196354540128346611029286895252998795607564552988266281748978122601521398212605991185674393259966042653449243234243417817796550522717405880770927610315728002297368372071506246296883544909003435536562418442693090934537156588350824823969671069504901622701603843447126061065821448676922391395247154659765954433026945470592006621569084706588893778426935180192721599316306934714384602273132392230638258334030024491072906432754968639440557202184199127760794056192692826955296277905166118005267892518040899049356899646761348443504326958598436422071642695787540644465029425375769142372811427978939592780216804094642666753067228463624196809969909314499244367567229693875533684717814526645369360310870506612769188481547140763576425192530620398096713520547358752890828659025266484068761145886072572419231866660715527362228922231564917200426258341545028053545040774062109526128787024796016765904604187893086434598142301014081152866041491865850712894119762107507490616959739027318110771276289579960670760725321385332255392403973005291973636811957696602177520079989545152459774322188025779203248782482075365641669554105876406164069658849798108292379782061734676201912687582496664298063979886718486285145488699787494026344490850935280581237010074601314587916641225328761541263857407644087940385583425809038183553867865143248955830861622719836765390831180032727559002635248963237181354489266493975852247554801321280151380345402758098351613319592662062627738358811520487866315709755834821550392706011213826018757365466611382071872331909278781674551432587120502407151439738279527661115255067775256631726994423857439141080867915163166955435698683040497832190403528615020997724238383500904513802964737950567058442805074391504305336008272119223901900084430950182380712658073118566143168627293240382839038748538702661430410144060902426100134100389468703955634744156521116239511367039887844782740824460873811286118636941505471706336918582388431528593916013746575235352487989201912915424816833674447956920933589547088716893117283582893272453634120537578658724715985139068786531095991633255853632922442972240258975910651101648604436654700789987799632863340954031343068481598190272245371002458220070403882069249139607782540427848233863367666637409056876130761564726041711422905169744435178382721033360771906864799893021675601072901851926481785111462782637490037233750381982787158764560305830781768059695992980490225854357075522263627518894536877400465304447223426985005977367457604026519687591872156230131787490980349861919565988898437102200847250040611328440967986903655516270990476805242721942043754673182360475314916542998562296633772564413909701193951344469936283267590273268745819567911842552012034501986435433041172995644486945709139352326381667640006084967244275845043603951695149417204661525218056983630965590572057810756364067820404065850876446668568296186530766357576084056597269924814907511263497243726847394009674432469622837824786721083696829348641840331767160600848142860088479700746973738872147321235455796255664066185014313648917378549120537039074528553315037744725298924040376124232337234574712672748220160278433396026745733475467598689208898923354303317810600510853341314621504695563175798621099253001029828412670767722265091737645782968389066336027800686442969954958851992902231936063766839697256880805964105391520887064094029893300784465357399176777753140473063504179442696218699006603927694345063988441379459198228129357111499302027502929558891367913457711422701184291319597121209823403140360409828269249966837170253036316804932945441977368243349135725431435837641395463574994844480826111241748881706756116166166056961345629897858887567083538557944746667660301674942046408445176352043331907740322896139043772456542562070403110546104628183640045321129532550162290294929250436737088260764094604479681558373518106425666964928128355368904991272822037533643665885088933936578601475144788736663101231024625257958346208880304482867330646531052248515891490893744730916593628903100465365088051190675132520279793816889224200519379875898581538745743937519230395379767665844149736667344719029388005411159855308124415101713617479880262438722082399036032414469911566865519484645183688302728454606258729951495849514831905352496626944617855242161957093916222629310557119030577788449565671928394222493989535779097398290610584783969828331223016477805360578681123816468629836084595689477164525881838650578644156491952201159406625719194221936292915831512940335335244353507226866259664422611300979929104062817683606731955542863950466514233799503469491922141184000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
45000! 108925920684226397106258002681472976452137575630155252326152592962151607459485883893865363127962817699705432196843456614605744055507971270955021637449374659078671934082358340695528054861162730417642377809318249922863611001017616175615393521780359916181569621906997439548671675088898506567496885307323533102629567320977607992421202275661962438026956789443063851118763804961894781150359198831604587391841186958252530847058433857162445085308876509982437524141756705058581926342535407158932954135796787710555999850423899825389770321234452804869963180272906009598798606636804851587239422288006442725104354884459242460026537401217201032728972292444627154706800581919086991411878967144586460790095698285346802591230503151702224243786647625937245163335952042029591101632319049726876056405294875039615534294812585879060756286868925402396131031808007784740069800350472029768730090743273683827347401651192927616279513221947098732827038627512106442960443814854295916617675253107912205684431736804851960300720010701728766578397873646556007458002630509096166406694727826629527513368436546857805984771960314309394150477088587400155882733275368610688404313938913155588463991347887091179703250729532036743813606708666632342946458650238717652729799016692592547898784100815233600624718067117315255296829710843225839571473508433783608383893953870656320938553072260957190833529325158034561953012935852078539784553054524219395154663175680411168912287859781843536824818383395051836011702504987338668794063662398261256025628737058405256155729490242224378015423999757396958963081384546138705938750569547863514770463511132287781071232623667382712402443225139580162854805746031849885337604465177751462264973209189212885020846494381693539088650442840473991664959150526582671643656971255765460725220946968532638546407055757492693683002397416207664946610051535422858292093728523416602615385552079177900827557265716733810690539043945922366390688526187743032586863464098870366103239001502411602757002765054889729275104821448656151746976421294486688957214169666064844214004468494046841564143864401456582759238922798588741956065376008190995343854963336709268733695000062633677810078647761095859519593092388591769173041873654707816950947996342910905949874262796363859871288262565116083422496081220620860506472405371291898384644136245214007143800963087596345605233267464904107697761305123853426373125294086805125504284330026481814573967595086513450222006677363267837326728194779617587373784431198077213674822286194236057073455886556285018712464283011949127966669029606980073138240520329085869710534062677439962929041438624198142846828168854940555194730618801673360185733867396025193474191280920803960687954157577784424923712942359522196562667518973196807058558289766095081662155492901061053867192136757090932996176172439954818535980330226451523604242250621021539093680004475522640123237633341472915766054057237070292358796706516328814496260618755966798205380393904966146322458275783784251833886820295887707388545783751385749705959083449366881913536339452613385744435970886872039859058048199640899420032216969444936134067642152392933496624892295262165248726143772519646399258369317782297795335666075437312844968356139214412350112622805335842784111295091667930048890754380411398816404544551559683483222348222500651904914443630775874585542791407273290271086723975174450650898587111597916911120755711174971277176286669478425911840496806424723636010831300053909811893950237247893126830689290778308871167470454820290353180692447586785972438996929867565642243466975722313133335326221281834240687091451917542955373182102010442962718980967293036276231743005683420903231300071333931309002489183333227047628400319995704679097620937304711010073409751766746753627823415958697513044040000364825869900859041965927003347925738011746895709870984941174731203330141637568983874625693588942482763955117996104168128074927841877325059515763338651248921400114227402397403389135037099025526413407072298576284252596145180493152289209772484218731598392502968172245744925665753565802255156683761347518511706648588812733819367107684880497798591409848113666601660247167810344788502823608359708603683726936004247223682468491979309294695931293468694349599283129426578141830106229511813656274619532728456000964097902498696606727506558645616721289299562715940303448057379657351879996845017335539636256404146468501394375440969619016743474731201065809564643741494419488904948821981282792178152124671664207141860290346778693103797015767948330306702465894850178854955349474410995563638974137294334075950098750429523953217294741898535307709427888175066816202668811697952712893004395925527354686754234939696792126786814079655896138963744206595434925892650656597021042131376253101483989609361861699829127067816983845367251898367631028483106887229817466024105033755365257621169278136746192495388853946765978186374481919387727648532583151582159387162260582609382695353974335873774635423253734142861450154447465111130325700890359274579880507791439384483740686768630691352049448307371261821282063727224160399944098650973520559210608643082187399765371617707576348720382497358751486475622425065384874759115777417016883927851301901909036558934303051161548384227647335136862536677441068899490726740845493135596909012550599176478409946233127336293451629498009619308077295620913444501456884381222883202892169423222886059722130966774953285743639649268931747817862399485547528765257156488868371709918355384432042315852351087388233586200506193823760727786911885554205159355480698388259687022604740686602883794213683343517323939420479089849242227290012638047051941635329447538374903291510445793542970832922477241714966946539017326635831382726132116640724924827346725369257300274440312096987387068895682605513142142209242446373020763577293053168428326945591328702733091140726394364718707113540836431036766655340117116774121517982508496186330508125173514630845454217737716090515753631776555954652229665881828888008481990935679866226303359841071335609646035424969438566390864045750254743281866359510257060042538188980090901866522635256691983612260101677591993239084972431614897254455351932396182205706371399267377004983819679618899539334150819919345826166305211695068134286388412314675198409352031600667239741727870598976868955793616861609982652772959274823650877637132405710960118678700368863810254152844357634514329880202405200688974397766782244830714565784803025309650547552963442115935309844695546526869142144106215851725569003697436973809380216841769653447992599128020259810170885110472788432527644429626856878662437995793884241614031222078215046916346215055724840061509219413581869656877012860905536469114697163836483687333269088404144438216135459201507122714125717163550574000063917900029881653635888089279389367666618026341569136916928851764095971074703087394677800876261321724780293131259175067086704631973077836565994102883868588942293917164689138729102604057093052981535596516588983900036716353484780157283826861529777112753863934073078648641763679393083156403574152568297787170098743318687629019290221757899931292558506237215719328156758026274884697746005696062905568297296991382870860025386166575831385194736108617418204503204117923753828194409044872278130163774350535792582841452678107654219418080363522384769658232292534570468593526861729102184042955710646209077903087303583826071381599494189394972158256257246884759942073533727189136185031734895668063657823000824507368718766656795772378083647698707474857382346502821251680839116822526187639280886842659460659451419264264690114492013576078086154322587384462958335696364440199751612518475841937714087451209645038267852177738841481449765366887344303391199815080698715213953811179298017433803487059477403094524912640251009457574101869162668558013803789237596321205729010165681788200653851814011823857554101865807581854740525163655625606699311026927855923513420091512289753155257795534587382984422971419177301738746047985663992629011675345148745078282133411564794970264409927789902623657708917816908060236944748726707520032082616905920613303969460372513722825499191313759157839227639753589917355943412126164870891266402104740319256231908919143793679523539347879692816608607768315995299954634296041882168988199726875777023610791863818900985457811020098549827121979305651343839799758187940789960423884652472711344096565453982427534587523281579488904778807604012094323925760625635129276293736385500966546147942083685375225248811446802202487895355455496042843063042661519151989200362021468450528933192103477761621506550433446436796722456889009886497888829732461131781043811774143756671740159446168036198659514799861535651182779548560233303554336648122779778187115991468085572845455205614162778039327795064484116346740200123260275266395860395600992634787363029350470412052366161407706520570114096673584077365989242315389021283131616447787050219775675121581877226378478921961838020656458753794190611695625367622149401625945306504737348071301787979490438087535852597162840736060728535822173826989919307611048415715702909981208602011867959466358045147416472443283515673613373175192142023255057147724103805345322009189280786756414027645694808165034664576469085248028312359602207154962534280267518305208122363456980395086007201617209141533150433720891186290022688572606868114706230156320543666063366120745989714106741431018099545115820757362710806760716488509027013725555520187345973314525040214928490762633586628310843522506529115052138499801361055804462138693049427191876029111694523351757718400306418490535084424894291541698645751065525678862011374221771285953388959264014564798767282373526203679288688997990405584337372361939958721797628288602253153617518258026379015537805835413472898996849560480816017844904287315247139726714873677258657167297529087258616412986183267358766348521758595021825914419529979060363844292576306594778425077859668391308413241832766421528533907042058549136611994648272456533963082236850858667466060133590050325210586039629132337235397443609779152026216548694249191618228631839377450279879404128884967314144820180770382156411053176217934654602966593619622416114571339852831932047569460282167486011797077741452257122383988305154037321427197118591159986487268451668393227435302697901876713294813278287242175049590753125261949552143677367303097002221340320061019857757166874982530817966993574020055667869964138298188817017327873913149715181739449873356620966371917657869767952998735283388790711829624232680246829945192469600200104788114567195284666533616660020965190574655447400883767935059839623476041215302389128809926806645905922850523735167812864964039723174587972531091574543717999217562887437767121997646456836572427394294079557679887229828953905505255641036947523914432864647881956412089860021666713337203730417299545404672623970328052913811304318877828354190761532092345128664933889859744610734648445088161846999752863406753963455658385436221599629868483362747756492973412312044546378685598305837113805592034789353000804004442451610966219482865136211828572860615188878614173242025797937420215437988901127501074921631030975762877391491123706340419941583571050482688453188310629446066790320918945933888535323605213001009907344389159505387299267733322811899746112369639195807338778289917900298916701622327882036476988553977305921375281395824824329695110408022599160684350715256568223153675620030910108269984054923079629170190637720559008636864596030500925761417021522737576971079486135570670391811744745328642621752530527572861228515396577189363424524558514042907922641155283185424266563763020503284759326423790663195432820593016237429088819446759391254673704962302645555219865367733649920519409619545074059959045147578616881837872621925301619729467084906422204041455848410353366245080572920068908830170419084810496431870186446847468541736596895086858698183679025188415299987046929858434344882670820896736248120927008852581959502188663278997479811220517399565626457113779578540973228394408046117298691627304903664787684857100484499211746160702091126368584639814234511317347777031970567294685442118791642380501617870981109256378839312788760392775057747680718379974045188147385829335807675611604733182926017942938898203217061954388865657505885582689934083124880213321675327444765478636433961860734875888658710092780805449797477211772308346357860953516746763135947175677127253877665621653058731673011476619542109867498851137333679331553518360248466565167606474122498969798585874988336381159499751518666309584159581629478224420225054296615835173847202667273857666023781191503176395954596049447059973518095591930987623427263800052426967028714597181193280085837554103856838084205098991652238078080182587288678269512317116370618242454258849854329143802727447094631644435128959766085375367119145709323552674461211306175799158404284527841391054998271139832153103799026724743846898604699849408517976678872233669680819523631532909188174343601582537405712952694442148936872751459393559524743242301610397531596256261365946247700333048741186880956623712585675499830100878643747112818197402814727354920500776090763427262206018888426277995470535686195166651334839876256228572648869722705383457666499875620804224575478296607664217480286383584986453555904102037127240850461385059861620954910324635568310337155538293588511294572960959283870665809455520229321987129615897026213352364277918044927623060921791848319749716557157639698911141912283998017305866873366396595179478916477075991496141642225980361177580000153765424094488575369855211902999279727962956392376045403693013095916210000342519527814229494578846984914261989908360891764151120358360277103568318611360743498429533931215590035366871616071821156376409330557813829173006337214594509945373394956373303559255630939710972762692729613980412438172736069633149480284534717901119532489410065125310191067767433301142919677692386033595880401629211060081986248756420124378053896385595885868402023247478421408833951978527494020135534280711388888992613829172250310517421380161142221030470508522239734874431508103929425150638202349671146245971960475747873302242929065719589761636645437964274577635282707105081419838523754711041298439397233609435363715059850370418497038688005920918838872082425459314748462987766349230389449792462550094854002089838073249621337956767692307738916919191723962593755187131328129713427819731366995427452434705594549508053208137248841011975061100241643991683491323225693047396508515907816035606437561127787024239066099652363662119355742101629703558784627248395055372743892242306708207211509381610057781012986931834011738883144866852805408459380459055783706616167234227807253616497911109907559350484402229923922059776162081173272416676273589353904994972916000355899825135212212171943577664117055717768732715839037375348197884276912748894158071539770290698692014195838403330096826230773268091828780245869403455719647589045644911447774553936940015626099870255092440374803041837702806097495951432377250388184774574732700728022743406885339410198064384072476310565295078148850943887327715302009658024000998902816082211335277279492388336424789507726704668708620457439071745375213128524038084530501263608438929598374149395176937873013540451269976206590310027793704590679840056693064052786621025663141859677806350747390086732184475285111503068008281582597031289921486424480751016744334565561300323083054384397144547474937863593647218801380207149489627484480843865578999858208465838342443609485376280459864761844150083178143855042362005322305200792959055682832820301154563135616982653893261590944129915314575116786681984860079522792770881388204524286875865424491830778746670666546433488492688611470923478070918302132010485997415083240754902142618151694540246393243231877980770201937860936451228867841419690732538631371771597213672656841688401628561369855151001482845867487387645066186030964130463457590663427280325865451433911011911391965710128211824137381467433210225433882797668922868039881616656812088226024430310563072571039405376928933228455181747387598358755111552768947396164244992120979387074283799713253743615429283916411192071201032435113190048170428248710345925873244323229379865361148540992017939678199280370936303961484727828769210004088167187956456343881762845696529177586545068014949993079751393898353679275512563739946354332526533615138165302781576772029372100917892952105969823835296907436407195015751511170447278086111868734794697615633637169843035039371008413332545633928970369512296228600061183388967908037225902468250412771435712457783059125180192041823038216404601045268481714303625170548735560445395753728717956135707872230545577740230578247833599131214395026991746967020020537545154715077179141136896899869807872601288787645195704810300950798634753877380203813651823275811047849765019409940956854336874839053276219878243468764960419438312551230892819619640461319139726611510678935934777109070335455157334939467703302657339510113075702034276168566682084828737237874085900561163303082137728810340902766357716740069177054776607190753316676791992368702690899378566224471674953186342686993511052215625380397531932427102268504186173462358302430254200782653317862848797476582909290297216763806695757253751091098929742960997894957578580805625369316310451464294704286354438986341089204279736363269700339368853329841586302554857343020532365964106074995050574898974139043659681652221764722849136010772183249933464988756003549191499583013444348571659500177417440121429654576171910124836120726266990339773701742778032064546078494401448012920520380243179864617018159758678323278244899682350801757646140604789612529759174297493302422077520573793625671472905647999027030748170910089566970045241215981543388840967616750814046305402984962455482152526281147510047480773130204485333539410591905296355273250105889038745157804279723250103331998098654600913153291228725874716369897448009221589600357630302528543687438843463169867628102136476262877265301836884327652832572828184363273493770125854883383000293475299133441950802197627285303997008853597754257725770899688123282099672082901755589516045802765565366326747273535151584837106371096630374708769416446033319039511491061904527268969856042803064998027222153964607098786451591005394495266459098078966679782432879487875228230553415825688013574011758855800492617386270450676672352861384372547762952900926735731256996859308505607369724037325102830564736088985124361200430402748594188501872353594746855775103578668243754278654633325532941459498612355582538400077832587605217702488929228115572301461544108916432189994424935571556452534413106894807917922421286050155313023262873518078295476531918148263623407061560262317080150340539169906631163188023279097710795329490009445227077138597565883050380057625706209759165265785401810592304469621420123849001670356912945921561639052171613158673521325869005186711909789103034907984260955736609766625778738803036202101169728736334824663840567779832651395188098732134539286961907357954648408399128584526411619522551021287925817432368601032370520523983596592006129374309718537300620613198745099459657289993106236121062452187017754925959320935962286176599705825697180149284403918216973897459111667643096581112646265889858634374994391743604936300917137665089874346975399134572469207160708517185408317404043923350384201026508945830045597942562227564460398828985963056639113723081564786565078893878326379207725185050059740102862938917592081116991838861343417161974295464323363565624523886647210011471510313560273797607146934061924687955504773867956675623535739024575762036767458699261006740771268643503390561380116182346674039077517451908148136209497552738127057896919686530876705277996558524532465633163215741521282036254820708453516683443828561415378590423412776219785575318692701419164671337291956772966440791687183014656559807886978130431181419446309050027665994964603547220445321502175248355536658478106032919013907479406384014850786736520247744716629491799347015732724275711235549574372032646672273109848394132013201655097297476604962456050358390814708639297408685594578080606453896641046905140417993570542488586331765973342312872741276353870326387801813195664353132983578049397150091323671506957722648574767354237868767743623317539519356608023853994650742090187768983665503539515481633582843144782681261913600821401390701162356746235244197550496712250885406662638421116416705813656807502343019995545129932549818694065541534313835561618788088434959696084095088862270648231901718506906801672592108587165833920973314791764781280092689870083683534045598992983139000568571870999365586103784123097936643360739975975499700570185763740950020980081776437663505094687664116491529168323483774363391439623687737279242955525758654767236805978714394545696926771848684023806493954071713124623339968972129863880629218915835468021128034815467853483120923506822444734689223875120456796539398859547310686906885171142049081508890042101470991174160716551001426930041698282714051578837835545092069298664158476275345146142056877720695927156021921457713701812557115288089383669711657589299360822260202571260380588479694729384491672012242897061175302832721915715450040478538153166001959547803808240698054801792616431771642572700978226728115961629648708222745168032210596635811130519544669788248317337894057124686787268676589646056393808078086813274165579451507250187487447936836752405448567641809787440677077591761806515176028830725783352408568549835978887978927626114611161870194847531504243160668140841131122471092215823077715663122577259002405358118556364556270472118912155133112460024833131214278503047183478944440920017552086729553173985602438031809181829014536793360258434408758476464881614458401543825163258795589910732757065719018727271257760492348276837506299831139494860190518468046890439575601820521921094412899889850062882985269977458201684746842773542007007184700853996069169922506406160972306089783511684555654176292624990931312318947884566503390029322955697912759016009147283402384701246600046125464062941580875235752950367558092870452374942934823808851416155502434105003947550272977740277477353251784836410356039181673381920197101574260671029614784330469998788367968774938901159511113528688603359812105343281047099340894352922204445416404109831436895118072659911212829545371937088820285269292443368161052270748858981798220580842175921659243370057515080904454252939221350645445091529747860558964694105668401150497283936201628247371878187536046755331700500869527169458599457566756620249976928636343765230526207046260044354769847975082733743376818163668172623857269784867092294205391183065360431466043797568271856573050623359292898885573085610414251481378520920057251483007574410221044031260738788486625809947313484576764679432322546335235098660968749585680218622065728984341126106675071486854113586016552247336236432968612590009030388264113040228467993067949533865395707409441899165840573470578062584680664188135351126211892113617425228806224442831780176488622162973545496545476760405249144700053444007536846377059805575509316826835671985901298468993454487463980718159284424609611342089377212588028218587745692004575276345273332834762941787323744672214266249260973436006639387077755019263467464723399786464782323012212011922511560777720984423099028440908115380904578338334928959851531657724162955199531919219026700403929118635492881771123440910496838493146290092479096497285252267959317304098329504498251320255793069884408705115119263332876185348007835534647377582588994916279762566472271921796045127968499101778072713309971967377074961171549032501900287918577444868136362323393395674729390961229318349720344241831972569820683997652774818584483051285543213760372803693804272556649039444734278316471693338118062087702812872169231927518418308910520365246157285452001282039497786997160362623982734050920782405762210333868681337032077917850383250113982670987474282585126954874427819924433801729667030162388049108507094615947972445062179227978038721832758113375750279925294431414111646747247669522797010335333170494584147284246832442336126014302729850805429057739445763065891282953029787794118720687279106710981541205829371337343515621343935848511570966524613090866925670942412496411420173529612096158660420833766730603810473323102758470789947760601312630996338749519837664548138729293732223455551431972548062575320833911543414938424000515953371452724391068748942803240103140212828686801345893632862540102721209529849098023215499931591709880611633973552957901964157142804107334875914411082021164512869634709748426471130647491643784453448164392478344649730674588688927122211939904254025204515850790412676207348766379734206556618368221864263401432699601651062937979877428740725606616857771673036202561283560003787252142125035077404127432114043404087964130071965472614107364050595104724619335522449107247088043766586388297310054269166413452199861403449681018444275125324479467249542332759308030597819112004649584529250826021275711380715154978031623049917783410983866982981929131131600533267054761669808917249827483378061772978962366291489602377619989445654473033662755877571419907222439437501767806351372194053233459514529087469988122630366265689785837489938541218704104961286108863646779428113493997749069390931853730041595816979350936798624105796887152303889185114606524863297028099284884188750716319506013936408430970489055691115310448723798855090187487883798606100187323588512077195040436514993409687886540030326821893318851106350872373489352225467856132089439686858461838292191570114503174364263563258537566036595263772837460850708996281779510287673693520008170367128978375748974768469359835314295794445273381144163535059833545671112649932224877027456168951365676476040868822244197973032500335475358891102867826717664240277814497709148984248798698994153874141275861677152988287176913241720903807820962775769129932649470267330072232256531088988573996641927559954398433454733473304840755027231279624849155441585048163467351161695782261081387466097994372263226006181276916242152058722960874519425450494800086315541429480574109401681515580080026453828389884306652958226253985940413103119763388052745584777967218161945546312020900706901017170837627763957777969353274038637700154994150401796749020661123382399430678428505055689684714626464712874616983440225682084849245391128761703887549624000057279554707534671508507164508677137839427674511723953115289918379260568758543061555522994077602468733884571160292702281083172375037398753071512178986622577678689864924533471597900360717941214306119128178752139350402132542984302486056446413933445716565236905212304930274066962938097473969992730790508124010528395041236010622776529779556504862595789626667529261886172605069242282235680028213838024843564622457226099874698436263749245195175554710069228012504208824137154381151092000341159079912959744697264931633534925643904717300222728049591007098822063486382604645331412694588113258753829325886355034789888052117211164605139066845215409331915049108140042586845046657683611049668803135594110567644984939726934569911426076362704829591221319232943157673428840919275960129257247883005719450693352397768546112362319253794272634856135305554153812440518971470308706348871279414221573794344307902604519839593710977321099810294434104842681614008571670695966799794004827377552633226808113547579347675631448605078305574857452797243294442852358403219441193176064899907840942332837335719607178216186920636528727662587047489884347964115467929326241987417348260796111154455464165307097167926253684935469731030641341805026325713394923793775209635826882378081801418507210952177154306867741134357782297085372985962961298275559933454133277353849645807203514953111196680204085839939518052583851363151094084070514616089467745015843278117233036731802857553874083631373122810172248830262254838395409837139199129457826329783087566109516070979433018924148936495416465675408673997058435128033660068961780236600187484038107840451493680496627551042180493735700993313796764073922350648179464797483373686653849450826470472404613126291441133513403421942396959805938168090450970470822296939926828510541321758061057629297900862958258409406090505794461796235894461127276114564189357089235294182929409181170439980912108241141584425336399477810236102124863732631830005735187757693687043969300577446230254122972440789313147902652217430976117107517093167223371099002178275180426141477943462237247801180643473399610556581125903236825096080078871020659802536583303016871733991405108004113433695245488629264761933875650768234601322208760559508861906055636471672680540630419790268982469453918834915367095251307078160072015071224726929583379820964066751290026913480346807694520282981449842876502395350455187664567548086932552884451863313989154003432245182169245995158830893163019492194656873421925212077894312358718643131261565924599393354643492964468339687103569926384151190759885589603051824067945046727543919622754944178158261889817110404105046253884003460816656820692868701029659661591132672518136564417870750162761184785873447564802210590397808191627396570872345334548526465756168542838567313222142114923634989183163384370997228814131049858752967863590135967046361172256663329208674708219798256721915535515484812660671417813221904664001355532420714259776216428044623386383659394405620152155362026196262835805777320956251221905177401765960497624354091351673876282592409450534561766803496607452233480419398617496424963169482904693566514356136822165852186396328633965856872837755992688221076915061952237600245730740499973342432414162501189081077280712436760669556614379472330796517857350886039706561428355609029981446265324698391965785946524294190932187080546449413417668407885117398507074927837380263914124347778298195529209036761960906000823615741699912554148168570093587563713868256768800046587164932491223804369155396185950907647963025580842711136281400329169773494121532512713230917027178665622138987776640896534713617136298453741204957519071786870894735683352675082906694030723739247459246451278030233667196075262996738937790643485215375492993308329392311556085137083479562839252373522724503294959260933877685326754638441626681089619483816637638895770357421012305999099118637513651863018353321333823896334416026762193572232193305462993332616769053910386075780937993872675423395890437708979879911221675868455003524743505893719071928568300700733239974484618148610446456901591679580612304303770557687572029594842873372491337362272210006924250051652726491922084196095558919835154933381399047462272254777895389627499975796938807095559863902423903715121015118701307960539464311655128084618289329267559284577535753884942338633218619249442385401361851503449533816300371546195000215054030022823175765406100698309113750441559660642480200098444015809185529745333872188943164370776998217849331384454163004462589072983858190913368359736489199229741722946548823594569720034303455611013603673687281802302273981873952681026669651772672317517000379577847666336396693180463432829152622793162895586552926363701698088134804976479397109341331283522149415549331624395144505355890703767297670819690157048673233878030575791448006431230455006013913935981834292915658312973179317297052611995218356451404605955487791500357618895185013592300618435076313541426649171652946254658845114921751017787060898542274183235409452139077637437472339923742404237566006216922805178473366788011125713830708990798767720605499632164590317617945607253346761304457936159166001117003459691521450072485720502457043034656929607447438045120602795200108721249074517583089373339686273623668986509094194353944535043669154885816058641730773335187286203598794106789028048418392463888545750937151156713792910198183469090386363054821276247430420289864748614039113133586724198885466535689928929455389606105620612286537478244011470303942559922776782046332235728986303661929710281484558330891631667833273049986355410722215528929008638784936109774837162454645382991403442537683984659523003468485063984569748292641274850854873780381470705756425945131476396155625838663800681989233707714241154185540376643851260072962453538263818087865212499418680636008066107805713845178792444122940300443922047582401778043750337104441381737140395214013000908827833207474568025673708015410455593909197151072654654016968669857537305074368515046667660888641275259459883087922264273619915602981141820772379118985563813196975169449440709401159391213970203600686975245270582317101570532208502241322004140503135460456521379489446984564716884825805489740786477951465754505919160945980023097354141963225950624009674425189658097378614820650908986953701477430621327035620885168676339654351270027925953568386131056550834571441361207327919079151003324263701879235503707560575814070326434934920691439903194460934263700857436016559211440257431955884971355408792336277849953612323145740870694604225181939746077904695719993914636035065786875023507423870727711308113722089330670556172720239351097160145194593815615284913140531400768097594134714026949899611225820733937832124795459816701549280727217956671499247978390492364052703518413990750673033078259952986290225666406914885384688196041041044586282489202404760980827620038220855454378128271785168511131491767638747272550813523771921453675265261612618944056217889929655304792033297930644496258168391431265560063253196641291685091104770743388763984208869939745365651317386980184265500390255263132438390436324335555717771587610054688992985539231601471801151127429245653700840682010791281653581301025678518136201395053190518697023394077252439200546331125779491461716384304067772353965431299975940757588680760741223030796864405479863632737258286859673874831914075912487619829024376021194535386973514674793978934491892103918100344196697810780872841040608269078170942366968073478431855193437472906959050278118308713555614992844606677891384612832154085385659526197330353050527639953925682911586440339300635429809712293995209477629368094586336830591199353004521221288176095824530201047780991098560565225261930307794553420902516376525217864705415619396015371761961677805379044183740162425126522805885483615703142805657119797990502167481039336131161139646569925693905225924059940010193291677130029405595882005899690570267792977391679210875755645754283453194015760473587796149073364506477803135225790651940883942025885667255645234584372136409503222785789629569107918229246254315697192280686389858257119017511566138962624074586238310849747507556326077359146622165494953544234005284352015952024434101091526399191873288365550871093736238793940391491233079292116804959134589235099923888026588666697951706865694648612369363284637320090602558285620790903578609335887523569592417257943540472329038448198363933807009173170948596014833515982427653191103911804772429620622250319206663899615970287090243358390244029272906037065000758080154364289422240099463127402124570628881203328347608546707807854882652950910836744649866759142140819026699352173958897124064411809878987863456118272861520851428739626281666748732885729825777163377743431661650820676740255580429670251359743029973612473613228086129038501539867728860820168325286209574803567665642733900280268012804771582576060747457650468429026182951509880424025872447581846592067065105251920418878596880364787576246718660505762762801394679734555119543542258872530529267050410525916621850545083983874961575080776857108008739066461282472338517043993459984618145016251293196670687542607474115608995619928988610220777887191281310324653188605305660923473113282713360045104331132885789725842387100860569985449324049581410843441782060531972724610945944281105254137619879155196788805389448143462837473815228491038319122007028442160041625516625888148072229518796003264152288571302958962055433383870157464108463712442378557112765361804158900270671237013226570197548841405391930893530687107295147661563929155385602177264644899731592847397689010032934680913928616742903518262436498088126730632783353352165357034816311045822371191024817145524140422106820135468332719196749363167624943249613481579666673155685139651812834031371620174359650765261528283147295558518998018893943921772835788467878781208167035910244582786222344405005260176924522735694605916292151913337123397800833615915977455637149764872370484333138506046420919001216539725462101493148587302857311678770669649149310728258141961859568051171629793437030543533971272689101536044510636401800294209301765867067771663903747118495366629034946637066465644755869720812324541817638948917921846489672351696951929710551133183950278588902494555605199133866290207512595246730855806563301535245373505016979326900986898824055620187921199174206510250429424067781228804719538873770359129585095794670212787265160143094313633423299722362855769914274201177774130378387414647313774663419967132091111201279447454282508015696386035110021333785579288673565140839758435003301336481511829510618607615169904477984972356441120701667064619525374659921223072517936798197205079067721077415697137884244747411755364769032587077299726396576731647497875484943415315799800241358400899823619024199916726986623924524808218001881120835488638416825051735858167432402649066824816144393437646584401386611883882996725477310593057563633669787449373065860103926210763488861808432887282529199636193180434714233076447865643290666642650540992316167811187604104634096950189412783249324885596673985500628000221116820879798352305877517028010146025616019711896506314109268505698184546711980174755981825962495347756595970932414406193181075697899594843744668265151234956262605005218975355052526200239259539882167205325695891531590586342716013433138332719347042516267475863476403032284919066236576777136665299452235096783391024825657245362464291927418381994743358799938182174182817306905491977154686707115705797562449339765166428605065711251491775730187145721713088822058097146684303614174401387838662030809307145088713423640561781697300100399719823123380211137276253406626345787206483379301256227296556251758147071658126869492864152372701849043894511501254356322783312289463628805577260872865077540345108208484992432993898148509240589739803082218558803430539781127092787601311709054924392927858440858813720857874363270446836819237413176803778701152699113901468383152910288133253684501208587663205461549874277552554858104893365242304085158364837692488589354563259839473197133071186694457537403417792729366255525886532420915141134354404140871873754128950829741634098140873981489170938978393451592715746899123498973959430439403560256668354067917609217371719922247818781513350054799161850428333466072393724817175608066952629109611854018678452933487970630611510663275811416184922915293295937048749650569620680708513770686204327889810519005055466532964954501272801180513534708842480408677784139512359561570043865799072174075885832107993401241591587560658688017899731145963539090287030896262745075255453566341678758663016413670674561982107071945322809590612060865133350874525635639787469456432586451794901268311896452809009374120272580607317626882615915267597921555898099021720222849304301286486457613865781797392666862486215087690226583325543748957343448680534170095450717036277131813267565594186603955384210925886297506524914718407900909155017379762427108896581953183971915768406626734391154240125736816407333461474523200089492119624680664054995141987984229207740291613421240024623415658537198540188402741171770036096640283761039978920160188505022364280903579421521833796876273942421230337018490854807925415389335830142631098018904486603177389406145856511016840416173012487534364213081591904025232418236837787837616438150823936863512808162872363880374161518646790063734360865836088135907938613114235773932279928387232600764492265788657600198002693954762215147660651306614387571286617163187701506700493345780783177750894572393156396185778736383260757856425856696388540532061111198872175847847722601351502226277616906092198556890975538392834679566180872592886544913447685698690266263882796045666203812267333374962390906367676328790317610298858507937908902531035211965593022160361206223310457260308958019019981536815254737830270350922253766806314093734586300875550966248378835962226057460425284465027736019791337542105124217896668532763500676191531697264346994900636242662583641715591602946097957159858565728054686990453128458739358281689496563846371422662618468298284667648873717467767662153658619752056078170954560058089118967576271278713379453273857173284222232016287858749622391579721346149708360227970559343062960193395869426522537969410026674387641593741546285663224828903401138667959678531722291914317172916201069485853256502168699763407403854701603044287284232358249939161549377879100757613148632030837416652377650125383298178709498415257977919181091757164342451985400699188017166407692056079683608305168939886199643000516517340708366896814839247772016082398308663139291075579039383171128674264163383227413131322408452304199659476015083026971719624502305464046282970793861364786274021940314089940590797792433899682891920725903177813663335054351036574928351215112337269597305729795003830296273102105712420507383221733803565683408942694758001126333651736694913287643518561401762994433311674504568335886458191276196049822257664536590311868788712406848145412745000930678234610316743097866114569524601078754372316121646193134823238107367502138262178011608186775737223696797226488992977307987558978551042790677903750285380382613388945315686815979856949921883709456844158252573059012535119803068824048438724772450726205547987793381809208743596081693100692760748210234291538124621410889025194841330232022764789179099172891992130955057968773339137461351550386192130700666147729886979758332795572257239526907638516867399296724524794842367361176374835361907280650026128807908222934277863268609056204710410494396145291585508037727546863425852214930702231966056026778843048755245999806894282050581516675525897672231361098231872790650777722522473970451685572524816708555190938466061242443499940213763106208786254981640007404346401453471801350630731050526253627279833215791891397542501912887819787871903764252965067625063148460297828942412122266007661927535805655266822606778178323256412317430563522898437480598331491211862750134841928796593310141496606300422681374133873403174674378487915621828764815829341986127750558290349096664064151803370567332696553024470809127561495553830889731039980706831189557670996322119471932367365587513656408992612465066206507800972239359139394142299435351527777505991885060219611702617792912714298115845406583174162465326168856856955449565800360541383735034732075780966403493151718622207994764802391181962830795509129428589244801805382859393805399554338771775916027899955250103758252019771367390819048735394458564916934463405576259874994177403888149975957463548751327124364416636632767430236379488855246200690290460215076781369158132605212067597527854421744067145131698910354269886743083857850613936415128405898928430264959083654793759255632331589837174032433373278602808759986934297997892963858238285606145299563051675896849731642795685142973323343204773811467385474895844206634258679323098588502431224771347697520993138520510090950404358946238068447033934699484364850813196690639719306756662077753601688618074643359451088621026514083616130831496242153408596579931816826438890806085124399156047788368890830982169054675994739437447377784713996454877903815345754177907274961144613254851038314532609233740227486848219134415428233430045029693147534062534039643599602022781282791755402514373846384681028331656396961267962595751069583851228968029063200280868595755354445856482249309866330476284448832492821868988680607316745621074322737855510179397774541223046187691203956918777850612634835968711773232901411305432609799966942611752824941789925566214542538020596846527268271802004412713689341391618139584363177947475677132384238154635721189109878116812952871527884575655122847873136093542373570903348112284689730209556104823962098021542024316379942159970700147388206007190140566837944697698608579217818982382688535299505752486022124126815000044121418616173692107361625229067457545254096017138181158167229186532966373815485852532857835547812403894811938275545188753892015184650624129854869865239328505607011489663850208937957434117022440657738110528645821413474751338842447842205945851580447692774941252442631188438820819886649779821464557203318575649607151577117659041890259802776483747717058290644452542776430872664645868704642719754480570148000414167765601237701305890562167423408015194731046721844796788291633598267548691128158911155388484522393720179757349096774391701543701916177013655569312068710841498676062599612213847664347500617579367758448489885065375307200704864183527557717733808443627890717627186536044893187515665641949575618583399749818617311660726367695600827561079252782492740851106398662969739543097453052179848738694798275448995081051049863490943061243625555694560348912568755149356484090941605091881203363721929893305403017558745381134951050920850543579686702460730705579529405389369910306084712864018101939266983131892110539963363803789787886401223765622309613088434216484187280555865676556447531066439453657810299036433532439157532181097327104867678085587332590985791879651303373078873780616893561340100323154010456805979698912336504765188830123153698028405253405335035533262669068180222366419970278684467133775336282924616056310440984462777336395790073791720400949168959799079559040610766864363886751781964682335120381650792929864315994846617848952617638054190267708046634700317621883019891808843936128155023177284264249116066391080997742361964343098662386429549422915510956088555280800104564755068904181085293689788672244750631658792969227434608151118848335399146598065503536639725043936177861625635335469002302076728793582040440521737965691882288697032487462063599070968956208729571081333021083038606676443919041902788483913937418194013180607892287777642546500561083024293144912744857063059123505553154669090534510392290452186515059862614204594154763686728613026030585555147916791761992845867220095590100800543947983495319090825764711016558147866196255722246745539913769430613328294428923315503982114375609148758703500542758217531050354288288702769227351913371738025170195458861557553655390186155915131862809634352330272191652001102102028798731330872093393094928001006298010710836408696222864691057782777773176164308232374049025939253489311645710110081641030419270099975097646850192150522347239458516591401619597649433901602659979466647742279331722625853929538165998479931854736091396515579536400935127968888895758345682103772573448614000877598535797835666547315385101856446558667060049611134885570633378662868939654117796254370728051234134249891397690785913643277713788428287832482198409374060410817477221777912192767881115272711807247206745838321283812903206970982561984947270294987672189249296861013885456051519698493087735859988540907978951456973331352606255101720929756566585423441217234177456953558229534886351541803957300924161258658491597115780253026249922261703981566732026592450597449161302241823638484145753746529165151773444834362827831581849548157471043075240991623930598690314798160181412173183421523765297844070929372648661647407921322541583729638218354839711594056594960714535892776399657424193569711807934012154010098317468187357527523949576164954724658498757278673210970787066843905192443377823918509171972251297833765400917455318654871729395079978924884451769386062569648802614027196799069716952464456133935964132495837089451376423662431943710096030764711138566057333879147654384444089719549775432945818401086475708609519973075016925206839344601839199021541818856676359884237148402859336173597247407189172442950543207296942389240222742462650209064984681105747507128490560438374433532094678895584955054208627905910604701715419793142462715635561023223454390406490118201204055161694517264526237463461526799551445556733382415061027410764124448234021851708285457144244853190487287546255650223364560957523933591485208588389297804244130277523063954834163628355204393354137730592422899144470409449449624726965041414495583231209640861969700230499611803815361668404148965712953769311261341503300546143808000847103313925601814625992834424315513650888409374118847726267376937248700925943280552489216515569344408052581903160829351890488483740734138049899866074952698815804034354022117505144580167976771090689278845832732393535436466171697147667699741414114224387066040908755947395698264184670645155686931182982985460210401342613151523152503781190156559240902564830250870709297440768410186272308146516387452286938950689212656621296302061134680262071584427286824186000425809022116370463111801720526130172580338337997868257623889702814016911257581074254593288529965150742516707533319022815937535602495395584171540681960856667720386462835756741390447535782388996873647136787174936715116017264744162908756914499203508893521520127104313963793962370135893767581824011170860636611796997146224086638961023492490910125974546645249178693813839586772293604593222108381619349763547588428288511293383685464665223952691189930559579568753858522282802983367811876303838612978170584581342905378107312770561459448871503653422991402752833992381931311232617266276073705532470668174636550375515955478864404106111266617680535828347090754369591630382712740165462648816492707046721018308041948458124590368139423527704202674423852109439831221243722062984190687334928551769424998060308387514359331925617067003540507218567218718898295314745522227392099408679416214037724586366843593970517004683205721599988504768904957312864881937205015339671564304793626285242509505292124052560767993259370045695245593975441275401369123572568786437571616836984544262251589032627716574081864480268080679667878904681903472700367655932872836665240575459827109686404316167456705385745442027641848752355062486242093129148807076228214061655865944454623693285604411244003802767234601572620698348955122280654942910605002499585323888815412656018220957298544343722049649699999591355750743872753859166142641126731751589782723660721748026023515850637885219068306786414146208303100206980053778983225245289177083652262054076205159455549382361104042642319245577794438819345908074135944096930989832448652059066813539849487409388045961133507959426125731200806329523982514921209589235863543930422629171569198282362960022076298182596330143518135678374182971532296600031513171592025992673714392118630588239358423835982921144989735292395726223873522268591997764188690957528795047754759741819050423302065076467129213795263026370420359065741289922042998114687602837080582563175330921847915677957297957656146055834034249452867592733937646444678741822319055122421995686296203094765716015072936609589649882580755813938802085049594512586184273418304874718627572946321046552296991600346051035964802178435500017079919262807137982685837194159948538156347597834981720640314339322877302816954515871086961347663173641177396697947943681997085335127184694350140001623316891748768145963964295393157893107386247957328847764361448644264357996793288694556998716142345930150610638129539771980037294115235499942614072190619368170868001912009972664698440913304321774372751639472265298795327197797268724602177848912036222131702569211088953938505928427852808741657458649442936634082400667978467901726436367409937129345291468739636309792178950488805708478873807196774030025247625555509062272305342786537931777254168120330429192367359017414215674574213048618801795050253871098225805704416119977648911123601077643725143704181523651545147816292999483176112691573031346031863473289546939988534449219161154138213377996386710205106068551773889980738330358353185262711711511322625374033415610659532392073474619761335617419941919399140770510835675389554202945162507333687692196176307109795716426485256536623798973974346244085018758861152955024911517843380481395389967557566996356843167669382376143133612082648253226886449990610282663185017547527232319582015588376252778204992577625389749676134848832299534630065843035011733594214154197205516540206437490455825866158317570266677351647902914555117786977489148509907019822196342016629348498177304776267739954360910605631981073497405008298464139288286995226027575896239593949619506799838374757651276737893331053255850944111853000538717850628352116422398354506450124543639471562088942039710713306995448558197106947615430537506141123491432186483339579462857917713947382810279580677531098466093506940384301553702121735558415392044697004761028905444669866247782041356069281433114489483626674329081243260456057863988726370818207250776080474279346006749132016174153014227011987981303931558521323619859426703337115030321134444615730962106765729621081403878067123024911783493782431140248554435838726627953678473407169022085880317312781218457142187840752935922945743363422701045775495003906688904432836352672802892736888980854969614504420780336333579673344887653247027347461467363523607268066829824047986008466173054095917077215899703859348451672962518860999912069118230863483421486610441052133393813819820966491993590280491377679907236767553851820080443477196100088596520123671484239448205155884682410248437437563588243121619036338841237332740735999892891524231634861400223449856390289050168692169199060811672515339541801828512244951867713271497868041867024572347025851599577566979335133087999640289897045487649005279031879361303278102650977722264484244473632827833127545875593015090099345808350266677563644749892806795830545853564411116305235177926983205807971971398634991359201011397150728133376249531975953221601616727794750689165855922409724978054356269921680478611201411465570850646624943000234030866343314367549878048637199992925772723523246510383511257048496279208671388216525219268461173091924713618696739928525499690864073234366463853053855618405731819533717150051960287025586257521446720043210181233298683943431262045291608111158621198145493578115444598260466397171319266270324257916388359816935203097254794152046758663731836942411696487733048451330835457161907883082198965557554489436907199545327500087787391926262978765243312084780341736888140153504768096779933743495607825939682236868025307950398555967122942893232473877788136775991400742784226294564810329164916353899893979188602647798615450038485746608930644735027908495498470753877846125662800392163675818435643891732464583104110868259779322777511113761824938501227060366054776953067159503717149638880583255407176383936503117749673468716848391586050427161211242162163338622289876670859506113518046329108285643085798695710348260235552471144144576527821701682475890157955403296830185834568271426423952756765369863489532322554337098814708707416306797670488369165513227956966488007638422979973775148449187441358374290745268952959538691840555256693313891698370861077919005747564225437294067769911103193849195302323998255964105308509384870085250405500019192159798328159987168148254735043380266133301024031717337132233596630459444245556648867033970031479348235499216850881705618236857823848204952750580555334736798942846817340074474050327911612764275863818016605118556179422671179350378255769044687645084704053082165451704626644218724489449042019024237672963926790572891867504395139236363877490219125261402655091258920047498035865164101732445029294291537005192581176499387259243887247538763412672082789517749954455731877544889823061785642760433190551241211714114160333099100632674524882072566298493243886140579476314540585382727621259263483958843444217810097285769768330958319073142516957989192345254675422445279051963808603840187402686341140925146588881393300371263383195272592644424014405001299208714827915077792624784751521579559563635094151111624933731854572737737662666366043857448792376568385721198028037949890329789604597792765078881037462071201037534141646682901741413767289525435738235609581813656490351166023321902433367711978883553185857636276531241177453535735777473989245407517850645614544066662465918221704678838369235699796362155597293359817985084726350199320665132674866128082268299934219769346582590175985302296349141422363643187437160550371437844885003658480000593986760317717210357747805434613292263185723572546522382015864052381043056256880398809379438096087289172533251287211448800851458862887062582447226034538477775779977755629083093631996570135728662031821577363202681006293410896227658793282507488692471353368604179763393106349438057011490649219493409911369819176406960617562311068156052789454984814612423225714860250019630698553182668484352262071739438808207815354084034097199905048484203995821896177274581569008135308604899630124975942590720156783753007401591648810128858385960357338937392726457339299515715329097850705859804067800336330188222906731273337794293610602899223595477036597743520696067496604295121275821794665100659355088269824639597330946922854244889276729319175597413561830135580573745687937692701496934406858175437440112145857633622305330542871472444332504163510087575681765970374601099300530337633650319427405758551692377642919318545150892356507557918238918117645199335230240178921169403370862616157030537121567774162955102645969180388450933429297870692128924686271213715022842476541863939329074207327084533704797405419491809728379074212742898443323548732589639563191768173497713190052711788695557274836427159979577558941856188253633246628392097854513630409585240244503767963540207394759234427824455097549243324316567190425320209816818821752537413174622309642922251126959208273592510346916756772141001897154658497647857559065930099555152247055937338145879027074953549061805623945035724431258252054166868991660973438551983294841765850076528082681114079814767623789404868899787395509183836578163108098384369020522414708994044422224056283280050447812815337079315409208478212387995354482753694670689541539050300435841204022754201536682608828333063340792731930907650125358837165781700677982496803386368480837729606852851097696209038986122579832476099600845386487219484573278758925973825080898746626995500587518303330317681303863189121509943759578934535867772409413879484076915644859792276785570686338227003438285548045115960497188331753386609689845613669277357079489479489228540190077071807126407392330428935763981795132841811120264967650409425607536842090807908757670753271524576233868964557793525267301436453936584751004556728779774975958806891423933338374507747171232154739815074276365107372809597950930151908599473734164482569777996007980990059536273474059178681840962481905707818907149510707067425742276974749093518071846365531543596703702708399595223586314381670868767542028317265914137712008661668600959269453465252490492360537195924477033918305448221540153565692992670687095281017940365123502956001755454734633642224460850707444349927952516480816854247125283880416587690696326021814655308030213077818753630144278804215039779373314798489256817329201610026733206711669457246167959828623615234385525679555283746540709198387676773408162286712280216637842413216629877509901175682538476412455834346761823798077397567756627234836900909921322544034814010044873771392196152051661114751806144569795513192640057425950817785661930209864196716522142759234808900930300678758909104658074856547551110617813742929868769566517741061377884047334489247224611013475549504160363429855023000484273875973606907547794218003316899065530230581263060673231711213388415552652768727535925980600643235047704278245300782595606858757326105274594425847118101175320818831186831788488749671051752797383216115702013875520628278044741825558474880035820456101787192725162820476038598078002424016659052879833748322942389142506761328118455137698258693143097274296177380433077855894532002795070398287115324363025298710589424695246877917539834003266265076400119208854791644088249544553677761352753149615004660432336775661154156746006657921260193823739530518701501014204558976918257589969586033107898084397348735893761119028442487178232747989496363599166739973037504039072960075493388074846507348349581586383293267685628955392906006114253810442011252799147655865159853018216552607215876443206847651095833844639197683940591653525352507272225472001317503965574670957126933483143110053377750686175723406680220477539454397432058743927248409824975636871299974174222427439034373339824740901001094630847634086005599763109578891195531507085628866283214903788644927919464295477815175289076458474836329610632184919325807730430317620896115816625748480017912770863312274068093088340523084126155629550418939738138806635410716880099247840108229182734148199080266780559779302953622181444243132706465879797420742797945545417989871368442000891952021940288391430343097512792082564776326786985747220211868855207088525992403910067287651139010704945187505535254229705782949183488827261376006076345092881834907545960096292456708139703842218612302219914897455629061003016378151760055840771397195119171173519228802046434199520909917970740796167290555321084914758083272551024152272541360960321687748879448353607129841207339581814455180193250167182457886675621322515098011497303816797540502956738327513103890988236380935168268282500817837085592878439404018366393196311723394324089090421209059960632772990781236924143962629082078376776148618898316236245614632619290273757132168662349841796741409394225593777947681844646030677519405151892070598260749411936001432232651068024156577781766638906958882537170874493515262789939753290459270924418801216034135594319987177746648019494996075590052327558148124625029491574655469804613111929280844632850265229993158544583203208970663967204291728108254249511469940677226957059041815187277455081121360975827541581267224623589179819590814001701652868737267221400620190926870973067318823396905419640074142089922727773251327671685274112626863476300299416546294775820140430454526525617053836544699867327683536193812263760683415818491216510846042763554384705338947018633991351068357847621942610796022142816483526981891703810164751510105399236965763073817204813748702082715283225275103869244972437122919256198320374108568126726257599286312412583693688466846666646395282037984580173620924394303017650483128984430529533816991777782974921847018909053614159898652987911831735748114469383644767888719470167140994052264997172530365722154825168557072276993885057830662137263948514857463401113119318968360773011916655612009576619921083641802032133489309092174879264545577550264326843474414605389138941531543069914197482665504224132945783294770405393142565309279974333768963996764764303603734002298291416666738113567276541317693977618543888261089057966490091781279839308726310707851183749991878184171597133619499680342690466209336120931554120169721457517454734036402734036493326430568356661725893334406534470051422193042034390931006477062727555146933975972601275547230852217623742248707045032765237397815426260972121292075244057988013037711427351601097151402800817696836542172202963789219367793718719410013935639888062343169685183951211720817861666124384907467357616622886895731327694717115391310621167649243427928993082008202990536389199491808649206411904668169686950257308345258754522870969283672693682669281162469901801677176408923670825232648521696796195493159792996179711568940217110669725564042734848638039369872698557136039060811415717786544878118250913903493943265346195784153612761021135557422681733271183384870317818897673101469695247463448957106668813316960610098927019834335523416054318786217206453164703222771913579633110446480854162081604980814557219689266210791625240692801233957140278616651171853417088792006035782271011808033459465925985049677854208053510080665424786220275775898414809013263785434563846617210766304901833601547135911984050578167737020577171224736691923120900004263492317484405023548408593605481306806958294708819098198602873053349141012034274303989974376416460871609786568557146247956870386215135271763977235551825395903649482373660151014638380371779751058293626341817951819675447253829729377759442637419711976547132669206924585424693981508224022775031184071813212133627541987227693689427118841133620051109563666058379330679232465699352193290032694081501274115189128531207798179318148739933622843704630216045663092110498776560752414697768450408846759559492221772563889413916017903909196869350481754523227426126734134754275747649109499100729627207219504576456858026678584190947339563033301170882801489470302547385994303007484986325373908745188432361312873245125022109628165285505918405685492454279294130470720038639410859525594608702162718997865043930205787884723095842006183050781162082436973006729721734446853260609859952557187561578422414762094862407107296215797329749507728713929560671841700010029983738560724498609789487243365708185390476928204927291408645781209055926950640971201072913515740903179189568329184823194302619874523862523846592165080172754674463194236252325299971012750289948632072201361962975114794581323143173703711600288624410846215844870896174867829512744534185164290313958994378804319805192317662405322890250716339740147013811254036631573111568330147136282646879560224122791095471631099833364703328303842017578901502563246448764745514555103870469746651703543875561844600316235291867387950972160071612344293726868454148326745696362196454572456681193438071930794090818906262353284503190389210084950787411731658369252222896112927784472863478070924824973975442307444514759893621870876508764761755993228188257566410338710422559926191817861601394667917980360099008873008063069528286167886991846311889045288944021841283148526386847317703978620139006207555434081418568779932349640118494864870582076373839167925555722951793048190224533550318248920801305170246551157136691097055456952308541138250611036688619735615757050439496920601981797918184902285377293332315053706466797941241176763701826342774404725662660416152948898601732309508740974021393141136838683357554654907916996611737565080257135976904784168919638593802125977425965863240787790415646021538536609727933345653800112947094583379245012185393450865855057589106890542767016947369024378469420492223971224735144378352525081692332358834721377953982874498637687366457412467060182282719607872524798754515041026109930561059858732752882502137512457298803272809030791382051217085049185704460018056753529670660742196227924959642304743072531295103762437249303599710792047607774886958778896215849026992353555197690006860721543335664129160907838485428416630825130427511222992576987374006172056503839277475557328766124658979593347312183147520303509307725228039318240795031920988807012581946298247397871378643871732571007202606070983304828065472199704425594791602831156645876966418811136629378187956602838316612787759145650580677037178803607970916809640300875369783340573699297843398292334125494662600642208281527021422415969009346277786572791285664137068803484454900431628997467993106570785245814351450554272462152546371421990848727395964214896737979758776393808359604204068063443812560959341728747720463685397539484186159803200090635890865851505715774371662020544094799930156067787439473659885801005367596210429237870314385914187783550863810992604145625238987904700090393628437899168726003203642660918979499013000367411619535689539026108185536336329204517011620345493713109786501710919696161204563349835067350711267318514397247672619542883061744507211426592945872126048286240965299706247529346994156202425521286737746717692959639219256671011888437257735165338989051796808299432777180878141508079212605306931788262537893580408732626488036022233245623061420054484557426211425288987175664065342398716916209082725960971573548604760367194883166206592765461077188291319054751877636526664632372891253508682036218988748588236169214583345365462843167690436215934979906792083761324466512162000837353426973865046629122904519393481862059966352225361003042854705636218943715183644821969125315445495357944132625508378351443070537737539906313540079374945441105269120831811673390423737316214170353198511736132827276850000615336315656700614938431512511342245027017220286981193016458221414418833945610688064555224423466422975282028454426703927853883482945851382604394770349082567810662542383494592048393438453687705970709255183241565806963878820243158053952826685656011773038531191276120669444646618629741877178111378672816533550483659159239357643456019272023969359932079902980861866576448062611731244517089558562698753206176495747520763705320876167417207331864673298283721569912694350573280100818086574210854052578260662125151775129553059371727257320150686675143417027882400609743520134083954985014313268979168635760749910091215425942258063564720730661629224310908259228679391916273837687099042083440928372750149974441570018992105920212376316599415693444503813115397025242684357698306672286506219454330867587634819162672407545274608927152182296777656175105740516735765546705504380732219122132239985472156664318662871927929036856844446054929183309311097941182678473192412686042066850791683540576979081897772657772235355596295565642570679254475052056305917468896846126397431041240710965014110556712972864657174804964733447310915039791917653890685343041565899108153712353968405993196034501936257085316128260153121456635381049930212229801768379390035644869953008060191727482537074591492093048201289634233869758131691887215071475596502543260609350284564617692606472146043141305857357193375746940975750804357067049570088459429347678486298132946208663639407809746453133024609227870388835824241673551220286891559353695150918809570520416606541210734463107128546589553689627778785117941601957473239681575123635028240746865252808725228870283426852626789362512304849383285556948190063281915579407016539631313234166703881561943289221685728175888104560059428146910883832360849175653435263465265636175695830166374429218584779264213214827822771994720286868306912961658260649214155253762055979185115700895427432381855198118173469222291538199073062882085635452094713969605767090263052710512403098762658831841964771126129579708901165330237328151361302036385227717662341539753502548713179289909223153440354798448787061855288351493199093801073982125178660621173508601261573407328998308490860152518205173698648427918196316160810736611560753217065633382150781000947715354850532391851372109549569316659631696556518998278216786264840655993416792772326804841208287558667723791370204859360416336452606464928357995243847242279890037504977544459715635403113581358917983827583583711024413339251519983709103468213133182243615518292789030708623022195763541711786821419777913089369745273833007881100010331282032597982093598053364417828440935758511184632610921037340524798153744153768802848670772463905337728057704161777804759392104152055278603705153464907030022851924216628619392888408917950831928361837366847030482589947137206043276426388303193973483129458589573198308770139814626443732383856060415180731811173861299765381013391918348390373555438225526528047914653339375488407546870671778529727581739362242758453361942493729075709515846598227332642818345866621511853023638175690225975507439417591389355436310600642590700412994801502207682769848596288098477760444024063251690662102712435195932308807341377700216713692421391077114628262933628661021159926914418155659245166196789777539302220626348821175664137625611724782561055521613699496215265320330014687387892797156163228767066389392685545828429241336560841163443918101336811132640303151695243204528132602929877595396479251725099165406241625184736352915652257913784674139758515965524407974279435172031321868743781520659815353676354875230307078048762654764047638812939251812361304237849709460796238799691096979465571731886688220388305504542219329546769814489073930659166895503657530763076857797321388004544460923401327375694320385509540899364289152471930790604091473672289045294498948610999789569520500679683703206496081122571053240980509718774112834118074516581859299477881735014052330175909810236076242795409593073456293517870446663470370844648847034137454200304420573080137885935114437742439500545838405964989916796062380879930039244941456989139044239259666096725602382299686700137142756451900508348034603719068944228270055620563513386406791995077514652087857270009174956698815569947544486020175761564475826372301745039209342311812589845174103408647987587008260396188295306828558990732887318993693740783970221150226902991595633578904241643922724703423932205528162930368769358574895815799703596221887333513589614167726533647987024863912425885514627690711857367492314729248462948149722820626046627657031814784338252691707097084527499402532111257811931644889249547677213704428862150211024371556261154510701824913033992977294555137241914912008619687255641872300707170552020233761981687912468224418440952123386819360263217978386483222040896117069495497131910951355751233441815189188569175418769061145253171638843778548575703056961301198869979078503470275043877347738297970660084833305450348329390964705206383318708082456872857434600884016363825298773818082117186398957968226931818561331716242459236298564553252236289413458151273987308681367389939937978189432495858768513763672605926348409089486203405300699651960836708439910383748230189598817484502724951139541875645651363564649787272765514167064750564499752819264923850351727430088006142354473886739104983203534777763030360970855129978402644017077875591193050485563583980839185957943679861711805445406564048003103594685757366416588213419749315386158899309642193222458543691585664324170199164159823242387081879052411607302012378943904741959912173672331728844610940232509914345087631389384818238944218183639691289489064174309377125105299424420194852872319217437903941313980765267875421923656913827086644801738561665532635455558954235412044451814739475031276732997583082573047985148134383444325138394471982425645074010731264980118495713987162398120968664510132711018375056411302509109085427543115750641674050643313417480173221074991096524511234325510353985986721772800167336237334772572908162473289882627806407744443116671787735430185566345306314278190753922436347839065392568542171301790360154208661201272046828061311945753358413870636243594167574562260538252068886278454032007876412890748173256941783455239593573046324808433605731993798899368761829880935738799777976006647683081611423858311999213329968510641304118733224985214931546533109392220035137308276165251407139322278636990643653288246690786232518135311027076226421911325467496049529953507369156098488471335535616248149790672258177963844650984563294241923460202604049554578017301262293540920556643596099165903185672615591045048523451598785797010946015463569126292412382699899716808260521085570522643281815744017137944559638497760363662973546501989337604742837836422491561949481455385231325267880688597166957223428206993492953850960511503971252908596925626899069037061067564426485421297211040837983291420288376008355931570202865271694973702555645548970028453637770859249681184500033297848420178426964084142331099160224919281322498455864677797188457551747913499110160159526551504355618452702737733670009170267907190674780199957961150625743265227884161874489149769954047761990248532598145264537419761829880782489616156366481754267438532233178046781887186376428615960105972148801096428639434148547470860726770396371538747660238118327990479373424531788425512161635780380798100137990289608042961274715344650304387813005121407432008713427099585192962868199422427086396839394288071814687088808496795180682592512722506855519991786457581191839219872802956517765348173823995833250923177503693278884720568105722414853736992840338102574398079879880966311254928910666063243225567857795167909458648338974694658717025139247518533852406421803491233268073925465368270566160738657778699049331301043423856530167801662510017566645326832444118944355064018252755551064090693513333592265049580439383510073214798999430412490068474713086611851554266437522942589010481137673871416442094447040636091002053689295609694880834912802889238218244893667033909114961789576654814521338716413171255076938524417327898401852596125010539947128757981404875148516290405793124179210715816368795843644885248613558143731565288324467106680774350661145776690149135003165193196057204162565334263374164433191435883357728060307099806924754064584824201373101087560733138311884805593533349885099802957776496868570522322797188706677780955053922661473730094875262537120168848767585354729159464730105044982469213044060715202814145600339330584333077775405017613649947598085975720674275032440377754825872336820846174133389822859068755149598441327792141545502780897116351539557680657543205037536811384934442562073600698005470956246509657403355158771862953832600535232592361281335471616187811457578560214526243378830770526071941169360233491204114211026471271206957871842413801873065417479771692963571268097470891404151893771753602605565609958504891166954120708229104975598477626442726907207231931945617582494912832960476546490054765375641230172679765437104736158531510168982997561919693249034474693470695224252962999993122408501315551578013221912386328769041168530612721071010687976058803263932446045495646966209732063735958501677635496572961589911410715688744317483602785801833849745253128815163729537497552601351358008641312116793630237624891689864734416549921507516847524573415807828784103306677065500837303668369670792150930955418704524322673280991835364928331515969447731882981727242046295098956943133488128434558985795836727526255365138051079655703424489139382673882121915113583571856817337174172415075046874149968498848001107970821614325828784588106037268167292955423030997108260923434126205973538212162847884026736719715945841300528212160346958491440027797817680762144500118296638748217402855422130989638224450478446007708043108161955960372769025358330493733776681142891800560989094089184850322382030519313073261364256899401619500469723374780961756539932333669961874039240921559625463529835367598912757658508768294019497802551028898029646213532305538616894717144117357459447022791667304239699452125648947014321106894229704238415183820340986833477282710618651819155253040677435869458108064320305699262330874519183192147975153752873970784477245373984336102295043534773746529882941974384899116612700095505682736251953922396893522421816740954601685569502364551391656148854980009020325672071695278794515977848744774739703478241604491203760927705093267908433977301442584448997596413779966652529824199910599530479143926636952818373367550686006232496882674531646655251057371898088796012957917502531885406737203677130213236480277298586406042178487927530504990662728341231033688123646376129896707452867738507029018934182717011023619652686336524633154168800490612380086664248495372488516785279329077078030481830629159102289187277448836870004475299469520209520453903254207752038166155814598298860162528812445540869445532202638642816090856909701872500072318524850562958163295227085841652220866221475989709244940740407912345721894031778421450207924398079716814307153096118707513707720427348081394105422181645927724389441347198948899523956411715310432369928272019284241421776555927809251945644642057155778261833975624077086881715859138652041066406064216677094058892093266890105965175779393729734288916411677326044618974956968948912957993995548678901253125837576191693094727936781179572070032472133805666951501057128138658454106397343863302314370477212334519999958269196788220639206385468885813919038820994616804482094757465311034733186142332346421100815664858457006437738473931143569905665909848497219478926376993353887016601269008429076075080289029994636473838799033198855357043963688169794732984497270504402496754828571682142682356749341790292542668667686455163223536246826257478961240576065817778336202806024998901132137848455603642667511048330591117672073098051692011776046831835517926312404258234612656092591405552119989327515494775284431683779154133478113888731052608610349711873033001528022278461362406521689483506533038832969107129443329827279032675352183879129039925005108746769124530653425968437757110699739774112718936005518827101738139692687719744632348473835938125788011809540705128930489330274502299423964557655303773777878715039203085396962640311368153583262996539514838472786335869738443853622588816034055481189112096487799163879745354617579835850568938009614618868916404842361231424265571527475484702296836434948745480058970447108658694925622589198413425352025939945876050932922562660807681922357862979495729234738615315254914774142669746960879014700873674464824826168323514037426323595463442622122413117918928232772552558552577776314570471666981914387111680041133509363017837497907898494802280634277521455068628184923605074582000975638493656490492416066964886035300881054241841820053167116023348209830423588154264683989262473301460184534253978969489008692073714247013882753437336094830939747596108690377744408345221367894510600483569994133746002020368092140903357079868453585917269117701790454884496236851368549154805935471989108773120797597026761261356813773917904764877314286698576891339230093250166070764267107604577134470645798372079304689470197887715296413953024151536500958457630397031493807903103959424172667184720471981445060247008426963506683738756870774839554925276264916685692995989639930593729615021906230621627195514638192126250559418459943370009221527457578952681170462122042423854557301152713506612006850221291331827172828918751242824946571114310620675533392849730907719165581673573244007872602939588870445197508042747032681450218233300033814858983011945907269285898279370176231584195447122517148861123836629230548300826044569385583814764166231663507114391724309065528878856334347054342197893447862637236853658017147861847899282731677617473588244629255440091090986525328139354116948119023267151273270674212040235323280304088879347695471432076487752568410588050226810552024389458740154880073446097024599324729540346096962092683262584992864016994509003689070722678514329768910223205065330805919410372367634251160683126796478520529630156754476706587324063051653584115833490485479000166627709547550122654102561616763834189436817747228030912899352806767313285371732526217323562862450505332023050307515139470463066675285634015380251766380036387676072905934132717720486413831286685503613084841404008550219188380855912958756149953880022571607302357639753697018108991915594362403356568824479848373970701209097845143965716295145925124604645651359054647677758663651335946565671103128058111691784244027406077447850464868143633196548923009997516952451711362013684963230160705442586927016702767522752851253177778263244366269454541364014010203573644154688061465603075000546944550461499236863681354483080088988422887897526800654815153387624569613562212172151567339619460631158377788705482819315375736198688451675507823073519080140974263922194555615222589679092590124355482464221646196181402056440870435195630353452319080106491049362199555660387768816245487760470949803616413704247898847880930923163602962422733966646733035113937017066108938264294498626343762292516649550595703625261189917457839148861060486872908109583620019408198185076743459422641911324754976181523264403803380918585788903080859515283995912876892489150519691162888769317656081338738302881852659863458417644961316990436042712910490747021643497984050952408975216761752561621719703550707223616845196929890319652111995456337667459271406033407205056358578190420808322814503493041903957024607229115811498417744991454716513916802464623853479680728166768095219339413426461735540714506451260976166654978497959604938028585130212158052897891185364531692162787112762330119644784867052744133784866378834068791543161489850824701029845789705359846146689015259485962684431562921693499711211935101538690398769730820949832995393582966619066831276005204646109469696500371440702529346792802134862181718149543153942250121518401057760380739251681689863111167757391901486170255550433077498243057017215720982740147740444666765915989036232096046722359508889484023160766900477371750962967731129670868653133110385446674379428882908225123256515551025204127786053115126127797241243757259337985535579220330646418114450300276609892454410096694373859890124260368707190750937139534652961764876653453567333007600343052216161215402467658260419482127701044381911797802054775225989680646561005149063738561662125564079347257816529495562292929689414560102922330050751408747972821547920355115173792463360514614151419428800870538159431666909246632285679622821904081801951793949230663277049634254759866113431219599427581206291562526024933131148986889954356848023430741734269582799075621030475391715578425474865129564259130336731424564491866807192084702068379613409556791077473847795962359988133026942363881662405674261146833653877794080280457574739670540158591400679993363840611524161019007015730832408703491084504032453593890729679458023790878488796234408634607783967153658443124447082371054977548443044767930045444037075694159092653424741161057219869989150164565554240812018098322570913840882473824410740501695529420577127979124449977434308180142728416736485203359210147271262574647178073829884889370025081784854290202359528429731838414355864500601828833916196977779828188668374336928514707113322469341707983228390271957039979317625919015542373224435435037594101334174029794578082763430820110288440078507263672422252499805798808761928608177376696422006501535698284335467623971432418068753368289412875468744013862243328350646704438751227566124720487576387058778950492756021764425263838831115540192621493781774597363062388285746533912959338975321308200347377164247629445652448183132379259393948779694248837735461986674967290144335094792603024054316849809947634857872432358731925134055898620216678242981490865842882772858379329913266947913853033799533761226274700401109635317719835107976054078223560137226813972784840552533570951373888616617522033856655604498477811053960428622599658045398114762760610475432297867067318218180132631085665280417287904955856482234154109566198527930712809332425436874854496989914843244869891721500156753812465878738415148917535428330638669745348883936609655280628735068884646762131863305740603428993724252366218266779963285797510903861058440558009288427628319147194729917601309185364046170864488338338851442923138469348608783080031036296135970486718807978507006812819149833575589965775016156774649219249635887521972102948166729649484005412616720344910779458187878051280100076865538258062753075104620694880668774507383266017467408639907179853646984525715465005489711360706639214323455237026369356252852725761418662205821938767012204261293682905659015841040542830085991194110936117290989454279599942915481388050341795267349364901267719644242173428361922370987189869703573701905339681107415694147907819239993644215936517573012783675553931869510710790566076902663315363920514467878026372949302678852539889665100096811690812466647883243347086897663210273998480428016880846048686331443516648113331601724359689999127203292860831243613689510450796979730741213554458227138659136887593952997162018630530353442194061381657577329356332058345864365644855371310471506379692308482766978473379127414571724392367805498243834196297072748559977270589478547363264321652244875193486592461386670216826482867305776385793863298919876121010931921111800940290591402776689236373089021292114499692638153430919296469021389699482392684177663661374988536865327365531961719131176938885395055800366913401471690441223622293244541076215471494046634135548044138635848099299289347425382930593355069104313054743961151254562842916452004332718911621055281542465483299928413984464387786879408466227061245919379830709869073395749826998038062796413841616937919172832530867806025596528132719501227717584276812389359955311669623580720037307609842079178400837190746548885830178541563930491944851116972224301725260588226757207856051396614425989780558448087771117516861513530517555731120421822643759375971844722466946298869104916799003052600648587471126831580490230902786738914097946754850895797931173943615306111661673195827732379106870195773753797115789166210486823615696686967262377079285409600520283746690796632217255588987761495303164421606291555838392842972552388351330939537374130196228326865222973982307044614771963923620412957297512495824749550361898886852735247296519332942919764198898901688014472820986616114481489594127160333323126336418234116022646248692850168753455889121348283663209865487445854096613390713631129147321859551604039728457354337973275872436393775777941908944704266470069879154616626399292284913226595363716960079090255330310103680472693471805818225368905268318317716253440258640422385186263808373924883581867710892231945660679708822327867865205719568440605963775520644134986281671016707875594591722877228580956021696682285240171613904903025415567637806723118611332147242393845530260237219191686848061810717663831450503275149641559577969879216515977787717045736585108021847390000434377606631702687479387039761231266606196028523754890969441047769080536829882295401176964851520324043400053802390860420340792108899356304732433456647241300319481387607192523886536738252695249711616958023916894621618596094586057641996612991383261175235684127585181015121232657577642229783069491756833314003752259441568348684192283159064404983873200795199010910714571376995153665201188210923772049034326516676832840370264483023396085360232346124904148556057057001136800589493509855099870224743679274227082976701351614843876815378549037235852493362057735855761093650864603181515924072811636015070263238140121467588131786557847896170468165718719862131860937768396889860885103512280285897676945525089775612964773069687261298645803486254206045500690432105005248246913312624739210370630360578905269349687329034505842392635677846967807379851769981528413770667965191419091926073536167310561766593969422283939960643866592834150096179050465479705527116919305315072639322027996984613064949932333498069078839465520258237604206546839143095773957873498024890183118719479039677458536678146867221325537686536027675222808808140331720929134925953447517608035858047783111470337970839190223165428344289574492584410640778189448054459228055777528053485466995747041032140839422288462397796558208978390780140251408277821414532716358657434306924164021755234223074371479662323947772594022125267048895503580032323197227078392045015441136935600775996196943753104436475253089123859971639780999570096467875018418885000688184123532478115816873708618523342680508224836048645691280886424757940040031502173853385381642457660549499943570447260972361870850691477705470086717782027953921194799219120080102678039909777118588385911903353227741006689887922638346097956950469414381418635290468634285715617259863438571597643014782314860735694823743478466135480723450889111654474449843601597044095181261654240529413287099131442286726375474093847304407976250608151236577583091875435174900172865992918334985804080788989805383563525173148831831194781126081588936506829576516450306298638534561270836759710665865834139846188740277309179661129602335759445796275750404298815853196662369696974698820843575234022853283167767111099540525099220356342078286086411757963481856771734519782429200542612852049538543256522337206176114349638660314981965284879804702614832450680304491000787508161050701084446029777253463282956525404755786177441349121226462682040312841946310682231510225637001070558517080691337552572362151957901180632125629337848187035116561352342415744960570082052363099803246750459383435934927292655063474025032688929324560842398932674527699011580992344669595402838460734360146106683957164548064187915464303591531870543375846390494968014712924846796125153713224989474023482722790418574233396092881752665438043283329825267880656605540535093518512879744790639495313920085837752254535428002164071177349029604882517594347250450166742121234240004008899790378506594301968288022418835261870669836366939043452052893631586093458082105449718502021007603135855862299235284413476803594247096456251976176763069653871079637382805701619751228921750180702711765658353562473918652138593252720398839536309871749866587434627956674344959132715598960971964659305812111759926389667666358975562360935727500774375127828364900168610745622545673857475203483524524622633623509807935552813192590922194744370599335050018442811105054216191607308225133187367812664227861613000192467785193598191005878329451388066121425297916961507945118150922540756972497183507348798438010189913289020327530883668072037154949253429917688435936784335189974200269932388310050310945950137558099805076766927280969062283311425369690791814729456195773894214509501280583548750640678915786789019362180072826726569532386316500235667194408244531000388913564402746774814296883201558604266654515115402778233092045019176316143058093031911449447307266817454021608075803361286525693739078564372337021464060358549654736780428769297586718157377426236909285145941033815467391951353524532825806726432497492905097630765311479545915142149798877952326877394230299503708363315885896313225512606698646047787841913711766497962775128163503275425143269913840496048790371914322889939348017341060510062363952405891497447948090140920018035175514381291076331451993833570061258686560041968191490438351626124153464744034953432173444838550055127922039259068799613133495354051368412573129002130839903553622424043810744399203602943102874896574368886006328700799129527094935143856959839265554069208453231773655350035652055605667443166811286753711538307306939612949571897414164915276853904343011401107144746758684040816253831329211398869432357528922045759164185949870891345638568174664461982914163543899050630345995575453900561858457689788868556235214793944868077765331790491202436624008508585586465596198675886295476673554096989945775833410245887825674447443266537382020763973017440212259494280110278643576410917583216230889403845636646574955048479644227042417871324443621629200266560151408619113030631371801568954870478594458413708621960911484575011369225345704471764741540749722530729997173435184778795938185322213806097181355944908944608554031981924765972029437202752031880850323255298985129556343343248492211493376280161614325403775624463803540020001539264438418628113889595563910886888772818924407625046227580660675860054190198979820892024368248148196986078005572778584714664096224592371370645060588831581377471955768477997570488106597105809736041685674615993918070398569567996102393820686961224855922232746697238001125225914964811913155761250377603315137063120954694951433815696840156298382691410691922333375091364990296412749083590181389070100367322278137990434291452566279396316546301706388845548239760295726218533495284336997006160825940889779831675363855619328987936003661202127153624682696806427908741440802992827290228512608908434559403497090533967788166344175570458822394249413755623639294740461961970263589700502061747278081879128867693614577294083187215161356262641006015748482222527630688318914405474706799858267730250612267997127954063480239921944276889331896959638943903730682984907245610364020022609638753327443137699275187181260748068928032888684505296998688570952937188791447648912452250431171696666966537972073022870982684660771315717784502506260796995180812998575209971432170001880825571721920255101119273481887660369161319964722499920729196958875411212690952207601935018396546379094541627856594601967922060745065483165072038412630332500669358092915585675583183335165163508523322394691145577562710057124011480578303719313527898610600625657599793558950987495464565641805006552541733337286163155138157101358956222460493221933446611547516090302185447003904362154536099103439738678720916269428542425355824439899756533923931296663609153384855201704347592124226644645848759671747553567445206524482002555367913020998680034452128414951549429958463873784886313445914176216679170929176653479454301662956355476871945908100602705643494899418962211261991577351158196105137537936089303984939929390860986197477154595692398331403254401948561188511648063126662490223416188227693210279517031321093145868334949460484154227180690950947414414763395205841776995243991458850989005214508209354816059590180002400343620227190810464263946765828715987425291128336993153597315768624053470311907885466828918831648101637534026476516512592590445536386609568630399952211614207682316454300940749887866381119869068409089480168049482372234397666519734311152392923525815467972346163706898710941129501483079377995535192328322073214661289224042248493755373651881764358044072645497639942126047169124451047480554370451435699073203865545223044914139610509999886020909835393089780550334125709834713116181577217300155764849091744483121388890737614922008286280572449218400566367794892142836094663980687597209659045400794937967841723341452524389436605792102664859767901007339273205041960372122055272515842837838361990702233112760449529633098380843256219514323034706001954488056469092079087911520278358418937868486640850423537153739707361073716929271883242279175552981892102631923076318759297642503510567371805487909432006787867370864290422442530536245208155904291607078801452718207319977494260964454072610938075927879998161265650604166876279799663718725213372241635585250552558318845165452769945718857996162333157877393208015972803467440221470500961810696365693879888623098628318109119914430005441645582239904661367924487968177303083588824369914024453621485523591354870736363267724943430876958918782119793898624631282466944059456404547790995536448938533440651975253465363925810995827263560558580651687563138173257359726797434568097741127878942110961117699345992097383479208719310077734874544377574847295258744498466650800603311925612437350052952266333565643318608981010382491948457535537776994278940668312214429208911297733122531699638551299144812170356281365542341850337512053104607684765369074999746426897821217893320456420915789629226653273466962240945554526384936979250959261745713551636199626069067339021708505132871216599374682293384895024730449530879528702538066105932806562306931920324261679465899633553710913633511068458407597050868639293113000306848860257335708323725115876980176481141575659698163378428267468520471231971280371318863164180682453638108108718429959278691339759507419465632750117737775867525948243192769844695638210611807637596435340161444855685281209791334821308606265488147646467928449289001372333338073466461553907868989604678314610245570046781060387413647212494068341630150277618141567642205868067090422814630866793705432808525597338373521026583848477366576861107611251469386397753330958733072793559260939181789976160683212529933706897897945730955232288527001279174305440836508766939188417012856790019768305272412406531677607665038661414523666395536363373139863843376358899992877371968333678565404298557364822046317838016757038596570936343617882057290777188343000277508596473451611494186203389811281105216138276219952059186834271142484051342968767358033709723531658368386857888577730450197563314378330939411125839580383852218913118324719761020412027583703642886995970639494394549370152145840180005090039080412341717260962417874066203921922790328215255496437010656818789997898533378197938118223005113528638952456171228064234540089886962524952262449872054796607986462928956417204637059031393989971722325453711347273491319769333838634398345920028996181452123740482237454611494874060121457006224443701027495268166671966192323082171772720986617767116881778196518314307852155250269016505859627220553478807375816595919331361436291705872798622202191246452068745881129620543974466828533496779109851871580961406377407563543441446799569222841907402652994278744700358337493639794611006161931472503538389512038822056685449066823091469651977318885186367746830617369657631434372126147547182178199248717753927554252629244492069758444454517822017384469802966596278714437611640146582568119488548388357906762779135197307773839540936671505549936310187049770375424396989504437438164979426632829815144877126536665619249623619264043626244757461063244563716217601405337572488159225590901744284155949231897741095883419552425487510874331050828207956424782585157379123401751321962920122413508653149253466771963852014071878983062497761947276958323638083323584524045335603821821438880567989941540826193019097466573133963427386810304567735479184342004703605696706024999257196661836473473351542858059867834400119912149685568165710605840349665281949742523584608770033852812763507110194255442690975013451705057121121268867670119265041531414786236921675268679009579564092290081691999177119636358310945612066536388395096270271136619428511774737412749799535928215483948340938546578808793114536616380924694847956793275582380521558317270731169541684618894458555495282444469449303942992542728748201764924364189068610507552389938205195163083139819803689675111651315517838859240804416770683217787689803523941623762531098470429592131067552585169703934113746602726780602351160715441051686062883109316955888487003361441274108654695478286190585192541817754875492502065085441941695337600025452628818743100522347566254504964350510463274981207243625709208869386135870409070950107005327423407022630630531583612409374850908423782474136729095205515302704213514144792872238078316428576157072632932983726117569043466481313327894172647999850488296451867674027318368112267381927257553985928893764949767731898885319481681309726809845460891787409652400700124461335712121336639672869123477521525897574999490848388987631885292112759113573095316176017963636337337999419996245463701437767904103306760692540175021421385152363204866476325372251550940521535382671267979669794499203420738137997833413005887547862126950529890428167484466707923962073358340508480205825055781932031376345873018908163140697650225210567963551645463188353001218433761762838139194867148149695762723289305985689711187857908933134986710549345907790992104136780621592342034232224203012448002058563828596746969676582800676900083570836863082635443748754988789287588256682535140516753029648321766672811446146053234972955019544125007247124907502566955601857671259565775682429657052027324468959027190603905835493866924646671873838163973368477801907491616822002575433010336946853509830075333963147583870579003603326658202584013767774650240986064811928611216088672208396221433323933119033727307378090699650503381619442649454533234540118641211216026378420291321934178573399181292507643156079378772286633558814418324954630921632456047886797572910049948419489390217367682796026110422367529443652908743218072712755051304118904785498411834573969292880543177284928766028829718403861600932374056452666135054208836548549018624205280693918174805500225895840033780708161752758444270385583339585329919347375783016614679404914891849001931448696603044417024122038450298987970839936613148678002900013798126855326698584259521131103260899944580166131438543088381905921427920553072090736926994157481918020660882479013843970417989022153961695486984925943495307445983985657600918788278597917111082302768564475445198027026465585254300546203122496535296035703507989162060374821465893678283008040318188646596857028357411748590587057961701067216911973596557095531776147468232882021925617605408849600593584750517485586861300130023111010850747953608772641189024517868074113119840125729324914011673128833611752974284021499435245857068427849256628377041814901936554920985643490571572316041686965677236932377829859147177842361072187513317283170443145787507140690910088088472081813238281013868950923488324481978613159845074045820485735110603539488813476307333480281139144992394036600506632386622163396787177149988267629847159646370315557311926408332396298771594165611795161454804440589973916603757417496440753959631876099242980501291394859329981361388180971061028001928213612924744892152436339712807853476354704660490812422149255877697432404895766032857098598623676419424271266138296645292963136908260449148580233484882887313912772175050393473700219584000085531737921864065981847476377798661522566637243653361881672429848886878230132170904482609735756297554246760766722797765300860232816431844898585387039477581343745146008914191147852268344754648775057324742616323465536546862014934239132641744094870585989834555558057051552765600212399792305651368748593705566438417968736989210741499535573094172043669592753897351641095018473025435830375684484392536930734075127464675612443651411531774385914763263574845562785437267823876619299883669733881232864082081772302144619112628131739450445453997819043685011188837969019585545716451095530910116242201907688918732188202542033506251992982900059891625015249896025232318751772689481321067125193644254812762882095775815647687981138187197617248995156904978472977965105666709247810842628039795971316755086595793504880298254354752668695474648768544508025727367535592760530419345041414111024768019241819052535075700373201752960677778256444294920546359944509947670225557215157984313080870203336528252397286157412109107842815300364772487509573997259320540838222571358859385160319699050809489101695699534543566139858818569969012278093352502510257188508757743081922051912923753859575530542821481977549571799583596916762896440012970771422807720586417295287118652254424347687085756388269178575835602746158610657992829898683778127196996837218526246043853223010973842868568146196618395644052455795953607576808959889400518853134117205839816246047573061893278850130834178399603346605665275301976347196026386007565648474984115705773629308167701364131856629786215638082928191621869525775522683546291436776703359988890866996390393794817659066325935596313342602241500139039005944093183617860516293691463919060693362326567510835319564693995209641871684488731963044890014625477628055494905992064790813467841944293158653514534169496914926395393940186339868698311291961511739274434617496674034041345911012833426513081934945021962158191183834374750086917680417806642039817197493418384798465174089194974468597542524245802701468586113563449060785747470596873838678317932269971619823244297596732696278003527848538133018573672415475725016132636488838245650880875095322519792816976209758951706127450668844207212291384401292022211726707823165796100139440200644094586811468563250216875606102762272561959613278807028106053167208189760511890087163557945895649186711828293975580037500205533733765113541242892317370071540446773787401284741150411793663367087132723557937450554606125960942311178947095899548437727393812143397767916194916771563307479853254422601903821481275965822609506628520157727540142049014719157857542799783239090272258639084990149263548457138741716907608513042594881276789419566205740532857630962813254117457812168539079967361761456136336125163146669076416559920941237106907686118639172690809040049239055803266243767836188612053460062534904178424144255340809574533266676503250228351477826322089732305237173989864413909439209047182564080020134828853474942007320665255334518662405126707357850685514200694932119204820818854485227189766602504813715561657541711296721272960790711753079075740071247557972197057265740306769975908526853517023967036750457929999985066659596372486587698389712079024121302267989547942585817398979607976069440101325730196842657844516355879755662190702513839030292793615199837838249212419665277462050366139242869795963304237330121433424561006827488902057945315177360205076902780261733820685978165969040704754836714541328323292293583939053517624184727922568835629753909767333347712301317230532093563569328963054265171483954793055860438058546709741577637365902893030293824862658609639109039866909080831931937706915523376429229324251618681882702479444875657747516715455227323807317724303129470708460584260059491222822730362568465285414027970554908031090833866394695730271437566979384765540994190345271536669426281866244056796593993351970013658678419320189784821164156201868239112725288651355488678923858017220937012192862501313884364729787764014191516483623263600156319738641350827614384992477432517881951670781620122974929796865265893412142282392184832431305446853085588230787313316050661239397550650232794056678114972768440361177213371737057720541797888508735839705243484894867711994528964486933938475887899676951463590810582874659652697427772510781992085137822556886526984858277841426207526958790576632075867967363271799817488145706969359277326733918464266904551809984341305529035179358372120224440045320738735576057313083209728419768919577615091457083613838539111365507621160401823326004556700312156675281007782327735964252823697290833442685621525444131535662884467859286674446545988167012036794901245558656224569180138844109103704439608517317918131048529370966190974623924840682098541925723231758571796375070127926658624615923963018079623072550909642166563181881506147273863765627721532507971845724802672054010803094397870814252312482985165129727494413885988821764480657981415446881883585718566394625796947987351581286031731508131648140680481261693500801646854691911457051301594718494119483850999396385091120357576313380040508062967275043524374061043900627033119376118817521210549178356202918985255950465729672457827089027186470516669917087184393976470518114871009690242548302862443959531709320538332456927346083804716049702285606729091513687900534774749886370020010624752269781452326423649132381152692284399503207417946028543803199613966410709505976491673392576960224967675566036531954824635537954641996266884987661863957965186889244327076873927546208913902500617230993930210617721105615033189082474465466611462863789287711801416587583000584576971379004214974216955859480171043391741945988609758837529040530207169198955119288154635975834326637069333053875869338952193739522851905551158081265633277158259459159989637263514748138422815243914757028523408925036541613272822542033100233186170035672728686566849302025248845274838689629121516939516496172933867654936526905499269870738746869443751475109011979758820128053261762968533762287913541826019068547373159783773770670351732482777779679384305213732168116113468584568854730739681173972120148424669503515778899165922155444672179648252192431202898570720251089018091152661708773815402392462799719795907490930333451095911703626045175104908278493635427380372072227855863701447514002879288929491257103729611323590563699581688249399349131713798911646751952091202349294052620519680478510795564938816537077148896867866484097579669934394531529155047356338625417064494681335770020060925303007384053340329398203444584300987014238526818335288879348827989554997798623451871334800636916005497103805669277456321104446735841283794795249674933904408367561602375563363852865780017596060295434749910857108135492771902890406357005464211675940641806152435749761200258580214011236812849910086371969970695134908312197431352502999746839982553313005086928063314584117647752651751806395835714332313849766779316625103603960821253988151074721421668103315491949947436960215775913787982550232067142170716926818000932486598081688759502775041847653234715823593531887612740506110765839400466851475660039863805609081642044812872350955443331570026793663134399382410386979161827468203676980939880595723337040139891336045177868158568743492982054080359996052080037531938382439341046900785507859413422101703755879641912334236959429121881724456597591059230486193483572955912899890669506036946361576072914360731737827767481292633142209936110265636239331480120790139732263557797441023705806714908930092895162103841209502020587857858016858682143109175245487500572772510368999750581712819099623001845968384545163231080447537050966671736286373580777261323211141983743515481370581089905773080532979036828645303403364284241939014960371199215885194157264406133916621183148535198749655615687565065554114253295051547308209950597497026437875267285660668446015495660418401394404958669057147759586218875995796645560272644030319409009220454921400235128913662864684130817922492545258307281491823247670325078432893487887462040675312764421325861280516319374803296855044958206469260289051814239707064640611720010409976917828450294228395903173448983474684218185200879565944080581066336509752012891638651026758220228674331830721971640633088482602882978318828314015912415859011061754805161002620480955801869036734592489112182414276559385509896591281078030222733457934832475721966618343918682040460018903492364058501431674198980395252644439239184087341237770725155279409195494188417456588276696185386591205217117216029731322015914796350937628264263992147833278537995343906414547233324132367192500220763549243626959347731440279441966586881820840123233068006192568342755687155562065829861859005870814822959153260773624128927854689324787687628718530160294107770119386789162031062722139478755722176126089641003690218405989772777613011719362014330395547898460169606551998599770852760170076859763343086503788515601985603337470017751699220680734669303681644643209557544073208572653254185111569371802664521181209537336784990725074472423100717122972943623156586515016081293710474208103361832576396446793192760902107664905299589769235392431147061456945143571737028622010374912763683429761246850937954160476025326324154208208059222925439775923373942702761306304906052178477894865150605584354630907905243856923033984278832919588662274070987242838782026867865429202392902095210326924526676002338311642211209854012077639592157483348652360192619469868926677350881475120975006101084299094577782776568347272394456648673931050924602987863502562253029329658525900063744009495824030245717950710233530844221418755454246810816403342010392816544932351735527472265759078755315674922557221362098032925087371803509414008063381506178441769486512802319171765930135973160386312842084116475504585481846206878146760915888572475678872135892291904245762636435769567094506216499384997752574065139292846225322518623207673871335312151810032677664213355604322177141108210263890480771469438034565767664416984661019226364990867980118688169450117145464444206028765186358550601255440407032110976969052598549980867201467421151869568234885820967248005178328926675953692113329956974266429404306293426553268241717646463242137346491359038046631326613625618869029089079206311640608142781575540152854696138266630822719967098024197557204282867666837897023899581209803583570515591421647358976652253390294407563453298948301106369188939346461511691565526603117510503818811645602693987966134387878149433443627451978379576265038737930189337240029197245254885097936176123405272259366302950229418858719730375296947184520090209648907911532709657083577622635861198026443710648040617835144936497369258697108330540071563119423404931489675778984496967679941688196330859213896437253469048787984835674599763490447370380295415271818679309784457630354202563781204015943268180634716930236742499562980713928354425141020660087372512776339826111376124886519468961864213625149165487346812301211124629775564941175972318207710771087763293712431482737809638501874778146639858900828530868944100072361275034485667654128041912589575863696112395446057318911386001424875768993749511840931718306338159309122630363023864525030469718496526809620205363920227268153423500371527539541192263156859573741551019072109444417576944021349487306864451133703540348204175508833463141033871301327922142956483171246974769233534946225387833601106875712756234860674250823184415892236110118257532566327861516265274819698411074739409516957537262045807221163909692597492125009426681509568841634559201461583895734695466455710054160269693610658471812367537085584976680715639392115118230483312066599378515124218291832601254985849743331615697542882497672475446480370068046428048412538309693042066675954242873456302714734260046635435244904757378838055373687173060742466447547051921955951270727677678240522410848385953744486740231901044375994830024592637827942926346395419191055078763090600649873571407265069501075365955582565961992879236527276224782743025459707571252494131915578777608962767593299376622137695956118521453249527083284262385105985596775804899085027763505649256252500503126738888842896057612934122627433133986946092067594808874097562984462600131756260441427141643563977415641610823912669038958867691506474062032084618476399789069187315479824949232208988464648638626046530972742924536177589553091607029297278681812378172145077658210647727860096418038446885706263821344244187310958133569206025054681103722639467778389258317659317040515675927225727264674005176303045023769862911812493934097184590497935891210372382675430016482117757850475814195755144728001925851408762494268227687540705283185911857073143587026971797055352649824388218256130967204939878593843002694640737331747514811697439254232447289065848951576822734687689814328480853430445422687954658623342565355803565950853227042530416797173602676139554918344633550696581199800387565158261621542067636302680699113320206313556320260053960714408937298993518731870432587396034934187894969208225915754474978495612343544978826129347184450189675641075849280179214040830098384961522233816620299825789665336381388545444259054034952440228323002548256041491443163887047472283202194581928265215629332025016958340237516008714083101729041861713762832026651275755305020568183192259270716837076361416345592068467884660578456926880823792832985043530229315942068470347967986857812477594392149352624574612438180240161670532514461984487269215830410228282336150003411094484129346827611397797175110752488128893809811560788766778615484976812874277425071856121790583629538594500418652422208602500142920844805599449879594967306990154318924210652130480041574272658533506895847588794765895881327998059310176259014465860526947770297560663685365811583466880233753977080698114336997219899516085543145707717707664756695290222603730077310997214831008730512008676247771940187902131100186571477869927331381952621623741562714884405293479562250806000363787094014757798503554528180359793138352774478715260385531352634568926687203285512112067389804364309421507599927736291995659260901819060756873370838102414895505894122707824850218837699990102520296372343299336697719448168000354604610676138721863347296098403478277379897794374110769841956094607967306376212069566550212722181911235908858724713324295518302926449201748742606838881756119748629246494903113053003736428817144012306879548685327327213150186203472251309377737178557436355673065273427275740587966843278828287823747589078473493145907263501623351731542378184333431596650664248067292841805333846630940535978951606825327864054330219387445750649235015625185442250276853253893054934006496054768670392951544507276914859502656408493081945200647613678634558880243906405946380471019618388011570776211686057632672414578675213757868227967892432981767360447492716995454193740790586429519912927082873282763188926657158444110397159235425701807400668158909642491713790606542293740412356541516696654137874682739257284163828355067263944920945107120876186375838401768846592706690634246752327764080700990458454886925964117905887481591374404011017034834699259310009707164153921345334718190197033526163285285704813345892844264696253987567905600873477949967045704098213095899957076803355101822780520596354738250279202319132773857412343006831268195593071245370200209345276942421153159553948438162342178226514351058002010182973322105631599395979159653492555505597891278102183436963176901772251522770669624611375258916328256520121497132390563658184515830792167711346868978304982878106526710955685314567356332336651408528706441279718332452269549663415319150648014710681045807930685666941272726653773287479090204274159911973903428635797262404596543300965193278771699086120298664143000062139156171956159485199919757568255685702867170415847933407795639929855544542579068389708530727112979213059880151959026333302149129506714642704883727073090892236350017393526159633454893322339154935384425942724004763394663806814728201611802550920126713464104672177775433223470621645270836825039523944838282841492678196176757490150992220482212601126430584418708295254134596566348073037136104762068766742606602541436255767857194485594702353545646567638642348831795199007965622949303860742858260952317644185870961821521794167702316044031423343425339147770254526010899934072514809075593983581847617815884236585302469741450299800792981512693489262720394303268646381179583947231055259485821903467257426299238218410306270967483453131661776182613136452264593239925943343395916205669174224850175821834308548474298724880477920954545900743174589813895941160195802985166218360368792914734659517062089345303556296062499192905909079572881397456205402651543809405023836017629983573325774205846648250590771662064801344453607068823380293831507486925104357135401188140065167520999807842990339602260961943626107586417596991741595412309619251597299311367035818328961948023171232658565231202916803749014270750875606491436318082833385908495067778400805559264280477674301526220198576193704535031554619156180671547203566870646495531513740930202107183614211049056153311915500562810044498722801265213920530032562093499928457050749161176632439160697826264722490412393908096860066128177324290244261167324103277858956141450332180201900338745920009948448264726955801194210531344113596148190914632835721071570220206369066363668683484530584866467754669502915119247384469053866011417987103620342109797991106877958083435953272995073900435019013593728528708690638263900870127432387954733283491338186565325036312919400901319021793129998372999405027710060448499189453832346663540645787513793557332787641706818139655949103724592574706072462898144415904444709681873889265751308578248951856877046576546808501339392810515773614681096625740821340020343581398517631907903276300692821166979307721723576828532727547764688428559547299776899288196665059111922966076887512304450527050049373759975281991255183215879723890369449316850161603424454093639372155877103203575983922665412107751309047253192970596652686978154865543590279927587557162412635658250277537409673975386473626440676692784586714308561413838606837854413905237627118764539878894813831792210492448911538769733370110504502542264930586690230627908840560215186136309790668399156919342527098561279891790702152130905401736398963712705993898530652825469988139065186461404703624347056548301571810958492030964945083362142246424089650279839149617038623236373319816174600048410750822226748890479195654432013332915885164623276232447007815703417312870934525954514703304171017072338056548863602917887005086013620083964108917087843253095022831587005147052946097507017060807205997582427889028472492400296269572706664762341908170610896710787049638938245398205025906886336722096184347539510038429851788970448471513819599454253062500929258264417469341514852547656026207925655787556269282737647882000627193165837486487692558802270874390442895772310201566743165729100472476427920737271557668725516497809454745267689146631284383906233356236898289144589622098869584573015039812678423194752804538507374159014996584345030500968164362158882951496374440500115977539924999855074047192540928020976544547342016849675222069430556437786246623650152890662084287913733363015897987990931721737554298624021455567854966295605030020998471063889391989590161327688175948352358781655974969283911265332430228209226967160218566820487614136055552439577677087619893057787683374963121613229300736710106453934233969027782476685448883089314925518731745400146600475430136326867830474062148392186643612056360166800381607271852569926162251350633909297746816384520923495988022629663629809316229641445969603392979024948666794435014864070440119134465110730547406067841669912478485585649071783466283330008731887401333763851935035390252304604055141522769298319179574258853078698144396907562064136292614989953163348942329535509755380194038876802409435752495465207781433252964946798927408488274702986655681155269511275442120430725483699326255452636095097319609056671399747497874718818953560124674562232669539117451531058964695798068199310344324861267745157468906665518346285316266792060441827161753613654450131968767422853467319225290287619952672450636247505536972939053198931587804635636018209373182924135401063923223542823520086919532316319087137267579145522071815786025728969711869584998283774055335850137065809406221103486844860384984268087029441020220865021341754610684901528485469671131819039733238197904898940253027533412425619437439830177950324219895864647540958977650111458546571457847302694688403468162426367090932959498462169867928950633456342838438944476580077100125967320910192966477825931205895278112676169339289223420594219400366314973689599078698308159556729175828365106695681231590225715332964572679664638695258165366050925960217618037068535098586609209771257371383351753925876062944012452406749668459988218086830255167967330945357199150944392481288984427809073315988946039499772660393622957469393157473108169898550935619490110410174508053617079087761819718721626574796727163596294290811474636840843454932604222631054863556316052068664971790921054506211307479913410161878564197138021752382648178418192023214090098255708956117453702012689101942525790493876949762106520042390342722206274399561071685014447835179057823302351651984930410143295623496057925858484952331799376326535335503388963467468120521878212817554796237283491177610090865416243134393032739234202558099132388170676291526461689027287622920750947359544049631545175344600052132942336706069188379863894563900333266074541356732177571341282487913552006742425558217139395811505140999053145379437238796458547946168448717639486963053658374001767822976804291165501393644372533884863899006538480191929481673552050535786100817841411416564926900668036369782352177033096446383214314614447856554958381667694149970547052831659767602160215052554331251250289140299282507514922408525668325776438740027161293913235194631359678533566759920122190539939893236150107393143593411170143756155680246646687043267453992959335779473447493836590698062205574444831209237923608231980833648914857433165894901846266555450865340985750433416095549162696822566908346284041088597574264319576432754557940881618333484606004359060367189287168719103343436607043339792103185213663213330040564430795198564681632833101732150009092447058657865806654162943170785532373574080686111235244843109478204701785997487875854998942046753617594174344306869184973746327897397533989976244041566262065217487190077895181998922397342492645205478032198853631094892122924795878228746756415669446428439601252445835264814839880172567315577559764424548555750380012689421458072631152504230601874304092487726247134380286002715555326612768854197082471893454579687778350460269103179259076029208920117000287452127977211352890142563759941541025884264239182344811772596264315468510034244123454555231792531974174347961642790521309975282613156144635277305471187093372037798417602274088321202931657783273786800194979471824432606320189322637879201548010369678029025151221604790790683655724709290888179544006420699481755060188648556417250975241068126608805200977577600924809443765612557210093081036846154636381978840649165471463887875856533665224362547672831440707218064255603623160327132424424483226575405303828539194613102124920506650676336528496340239753244914661927419602636352430699557272074502622794544633562697542233003986581383936432177906125383156390923524532479149680811633713880130107589035139502126858059274843613266803951939789515951543971113416507582488272614732806228269139189661512313376021142195415287316317459931315501181197343204744995781535861117018779060232908324248758722779037538769546712994042465814354254798490431006387309653364720160893888063106754118620340906122878451302287013428733057215958885596646879889889146620068550761747478750897122262925792094066163912844069175344238157357919554346450019628147174216759337500134908421724014827648622990204994343774573433264728413670865771895008974427130887057482920154206317526527222353040060495565645951659248602782463905456384507796283048095629349806211255903783017959029268005959487421201780640113785362667152852855355092683623614986389636686317387115884359597178171360433247609270464729055209187260254104309668350125066629650359692178489915269788358315624517775860871797946082052560625449469673669845449283179078864667403934944870055058013121491935119843168846975149246667226617395355812532024078794281253908842471241764084251860391163335272887611193859795692893156889202974699813876167324934353963547344697422819009532131012044366758461512730201893203515760286250029442608992263787573052347069950718643093024030541454973018053848830528379189133751687640165097353426234600103465649641239239451629729270322326554467381232000024454116534526333081112249528311315375906907875319093359666344733798226783886476792846599476386530235003323224427986167244105226869353436075680609361563620359138425146575868360382388584181322278684435438694570289055803325824403344624231295089709399524786962601177994001137927444997773331563074564522746805406240518089097332878709255844461518515604728414145682760659752233046496702622156127165366299213735122497477874876599410025899910068110871549615604053267317305052425229213168764008502417263212352458277162683242222804070014226432366616286473127862518118840115407700764560152510326551442355140264196571944827737814001453506361086697131858278615978237617662332028353335393252955984086120176190323209156534919875403192773160176428564428968903260616017452072033181613599893037019454318662824890468936658127286894592316824880791509676063660981067698085191762248261577644032682359140000303588408414886733208455113798659011938069272714959069200243093058916716948662658962496320399918629884974791323580686131365802580411846799129590897970878075688665372040469762930139435265284282492209971832746806881487982952126640303820730818791612778312795239198882345043870501507454925535870596361755770839751733530745704438120679739067533345132374755590903289895966070798995930628846152400810662261483121487741522408789352248559754346176487405898647049948619232344269373961151348875096749147945570028550045004625958589629775384816831836601980298108454173837624059657405597424259463096429175791739346354520426457199501110817905249699483031579698123596571846599574201853304148002047852188863076997758018741629958842575177639087607218856121940237313657400800449032721909370644944387834261354310303879334941822688751583898697587558376955482858230402225121600596235300572174280728760440778570639501986390356149374755772705162297720594891343954466468451307305214066620146201652658752658093350952987804686886293745021322539314828076302872254568331428645268917175867023052384405659455129587172605820113158195846994944594595333750806739689545617069343566717550697558911914878677264682062602960437510826403869507513644288651039969805422312920039362924860205667365582502576272087215547269136082358043677108737845970477049487986180374954946952863006776387954837863443603116265791525464744469548130778898629269304008880896597195029562872132104237664417805977687879562918133703289245726364219248723143068093963297082986219709354482980024662458059770384173164671606196189592631974479878805195101541978586323047992856220307992810720584282587017865884766382746544683123743637670951280420499142346459991224659207367932034750959265160390445350398999161875551478555428947108449467478637806311143584923807750616370719763429461425615277989966614516648964617396180479464126973886363733669157032719298933930144557475350487517940817935355658969386599396057441721683978596618615560554728504106924166438018441618665227177212173188552386646192012186154972766543597807267006088794301470880262994417760471313891045645095628243658677656741948625506816295889404599287682050358647140000827745645246542147293516798806794722361491285426523542060778289548580290849165009081797381368477292799343128537253063656667393322211412179252885950599224807402053749708113942147233358185026305267757715031598310579689681402630229464701809091317993369826716494088327554118823489237353400468082769348534832659007751139393228075303425546178478316784624396198333535069434589081690911599789883299200563380009478336249654911159461414630297721694420330464542284300658483700053936603927636329774255060970619466613366188937013940070457016698686891333504390581853580138867587941036852589420533177071963916078983208424277531490355768321095697174113852347469948964218637600732394553393539442818412595194879447642825066800015908047660406135032668797800430849367609280995490332627087552062810750267808560898482256002609212867536923980524856270543602620051498190776663015527662547346362356000551884854730865369806437786635736014357839868832830300364089927809169898927527320509991556538581403917003266721527109282434292323302972490562495988889969775688425243300339851920128412406556594269278394472677966370030579472119686280939988286291735868649598737615508321352247332090992126323831301603123156854490465737851833884713538144877527136825733682115630849438244029901699128017188497274446901575991521319092966960404401201704158112766432724162976119866803876418830355283001114067774895811568073210132718092210811345531334246000832910668378439882095875425986085188544108948719894499984155634388903006662913801236342780333642897846398911123616046228960640354707302209781312863352351951329081017789831671195267514378706122658483745456127247841442362457212602341870494501791664753433658627765331487037009486599203505064897391365280850158265509817450728815948710926864330656779246544060579155905394433579026969564895304171855096099041561242204827558328151813297301012180922212585113539623278109974120688308015779388826894116167818159839507878267676469363710683506677310880265739419735481681591646979566070047736546183789514906628892390853522163002921908181105973189123010916599424634806744312804162562900650444733096955052930322452070152776135442762321270126707275193261616895955965943017896455845182612163411720124961422361588044726045879584465309490620383914500541356275872802142721093234287763252692600425036421987907409650657289334969682232189598560874900309305499862455826187078964731750416429421760933179294340415282824587734424790179645313521803751760908786849890089458408417406556151449372357079347448238763538416165901593653967279484133193156511742250319085882475429957639061956800513210000963835687524583093318785339527293450504604248578933094436769289521686798165705604755248568159203710442441553077287934805261676529808851205230100728189258150738597219271465722934934484204196388444524439054612455472800853735713303296165114772816526350236098948870253411994135860121681763869624918312919496651888665720334563763786342224331090867708580304802671297396061179618398503820525500271929396938343266622534190106957256673045309878038572686006188510981011867508930690658010755579404821568857796326656230684710124023392424280177787164447798914330891918643119841184046464864116909034205601195830424615337342900431192560298447144830444038513151819610966421260660867389688053446599372339165443676792610854169383690758263247847432921014942466615111098088024454271540313940479273225151314003117361150602499171687271665176771905496451831342794950884561629670253524827122243985344105281489981658309821389982301783964555286944139397084010905211239696980292527163093162221057325055428155682729042453254465622962177786429191581088796282354786291309633366088530771814789682611350421301760578473123764419577465954119923333026000295986123874812436225550250627804452459945283037103521847402094953539105543683087275494424268158627243388286431852592794740677771401082684058898176760430492209726670490979046277291027585200446235183281649553472367664105678774586149636872955664613489908747784399060447388134252852257013199524744826872532527073312029040049371019793939228029274283057748745895572595066505868450744645337178925562472098549198230611470004317551874407530773190745519578180458011342253763151904548307332919319954038274812857670419631278807216231239317147098275691471742924558903769556983770579249681817628568360821798748423498893722279801438463262797046382286071404197343179240985598020174988844132120671059011641122353948044634597350338237567321581477747129317248371997070145111115718076454071322303588271856221402902416408796149965067590654056817298161097472157096900524580090701884792989241829046517725382230426034145966124794730312800815430947105157382264771291232503420642259457705918710246700574971734201932963666757737591852245888920094217539884091975196170297045139325899943628077727680472425697310203746265110952461068289999298663062886447643661325256168479596167335202638487479237027439088878079814093179641635258692060765942718280014102138639020033308364250899487273374140570678294689163370202714822531425628485244007426732267609661159016417770457981120072694641896530882815940370379715101617416723116874540520541098915146862842207334837150524492647314431969893025456242356011623752920575636961349458572461382833795136737756748857838817806673725258356338022021279370953080921162322865803995763542973525733649525460957459976279033624910251818266675749999302019011904456348851279712894514512693121620432292999038327865725593378637100554526726549975957753972652464734094575960529108321212854835661163857856423525858839623427199229543634284695515083735937268074600652594982805703969403632955871890689815891627678884170455636919505484859892687184335318784848944699830741573831811194638962433635012189111171652730100999752538523587510173892219258173671714056704714960538346166538747385442780979467536755784575442083861700960316880687104384157170569627108570037400701031775552947333618350815044585004505264152672059836614320369876260113676658728778941957163840665384166603566753068918612570941443234102622899684243129280906288394864027000656602179716785627592253773374151937455332054470903848117500666573287780995478970474179156473545409194971559996246869167788918004329646774274789457491824189977655546082269978406556412403426702798649983775743260496504535656405307274089477094868038966055159953362244665593311528885202483351263314772433777332418595684053081883684219000542008266097236630429089872117268012774738065008900035459977762619382702466104306529498011063860901156153113607378518577888148371591345218881584868722819864273864909814467005778407067836920068546681893151912300062872756952839817177029190716436800287734362389086056073565569438147915464708948985564449110508140511670460426438843697238696247895743847482295829633044080522611216760285156325398070237471060329858981383653670309131121759633979538550001606827897008670891778748097162528676914483918136691445207038732385055215775558524817890794586596142303364922748292757446014232711963817102909392509827149675640325238364877436021154360514103955800309217316952145404057008388427639736269153731351113341491599040350160863176878598090345253234037027742612630943562136683299044340740390716918035920232001896671043177661825691680311088230817942430405748850364283852584425030491430321340655426755518013539559849523320830240705287172241124377472483751995772315826444108043018719813471648549939993967576446831545396118672304708416764439398561678483834393104854785687327407365217540838574884549918348012226935694823541950040327826970481528977775544074391006919451081398204593517194800637928784981805483924384289083901705175045952819675020752515619682787684268334577871167396494204575109107446081399522285295985553725868612163139218039634935685195717804937042711322959665633043121795180888926445739476309075904066322400006311103451593727071895941449024725288409143049532331976741992155945148515724237495638517458271599310397204446307198070774589687209113469280533409493212599023769737055131558818381468286576682779015468957599765402528133827444031698845321699810768593257175475848965432345207079705672199440732771464260781538252607294774086121708718201537479325159100789365519011017993136831174034318716303534823261234248921892797444007200744071600482736266497280223659174575311172786702300110353597513898521882214529312246039152153502795873296722426020032975919276090827939128286822101357241321759923236643709054055209176173418112282816538291428290895677968948609896398461712898461996854586542540463547518529785240041872593156811475759606590559906283337539748482820609719780086215399476161452195281776221286992304218768971483711851034322319694863314267391676155159022217914405656880204390329106698384675351726086410494414793032805627951312744655994016077021141303034889340879997547125524725136668216525308661225223496725062821591829005238378737877675482213328584067551361557188196721443994204278770241119085062894462815496580299569619824440579855407285258624329832507309522677064073395025791153991662827466962245921397154684884711890755330781466492306229515570216349927526557473843413499490391354388847654723347930871071019696128073247925705928081179619545817459532427724352465049600479833662299040803634221004847263629894633900069147623504405284137812441436441605207690830654376141050824940916183196352387244812728977832731082022255874733929732343401427117739264660828792443693380809873649032493112759204532234686480662459281765940793298240243737628076953096731795374698492517999806521525348609657725577966145446561934022795395626125809689140136146502572948582831136984387365707678321520667153762882129627297384734322716751338027798325861326548428663578831210659601836607735518123047214506022586132076299616549104021261673586914900342627117095738238583174735105610791509034431372353235704141808739823926672336447495495562382225013938477765394682860970231981710910064442512904126132676865740183439402563613190870801018700234984374614205820109092551902103182297760493513861165864185849444349681870652206473945698010708113591296741913478788648656886266013013777038151116519082545545298065351832227341538234658147717138020436449591534594908339596661153874364810530540641118619215170646659541806913656901095977717326427309328867416026115918541529885907575204620148915974129972349281620752615580318186215277750711386719251319710486915673202420244528746742719053870788703120261586177093930793677313583433841405202960041086376226934100917444701996861670552479324252663990427911137692966120674950817533420580564730040327635074162411946389430650269691526406304427153401508637490205265106704297653823872783595303970962457661212652751131580390241688271303143942861150561347131743016986310192027828444978882622757073280394618054967728472833050593080597495482146397387527777092907327726638525387181037890959282156683251397611080698747824992179055950545161185755443528035411913774955904109656063842421811851058363401870728429124145640456750278245765210401051735468928409041746831502704548583577407980392696233562309182809676283119970034611988041222781016769662116869841144340334497409479837306393995489420037663820969348769147367168282354005154940149073759803289907301697192948748918186330117590417053070050466522923586758841453481569892151365764242905658973222262750686122980747855820599301861703836074965496153557980689481115533091339737497479107847308462001726520765049204837252138528107901389965325695403857202339681837611363431290672001167703681566230581446782331559574798782814945312458920327394104841490332165578037536000509097169515167430875150592318837263283690511813002507054134639389153552492581385536845534320276019424820496112020397631684436836581323498658495263569511181402263781695087223581611414903394122348238201686710614115666535008067409631005762690653514050769321261141555864088705663879873370780164245078887903889077971460272276060572627230429598401001809432546829499287519953886911611766963822973178211575546802058309908986116125494843622087979872979175881287693286430126380372272868186282254121426662284978164752572328003230491584905576788193402234286988731025830744208007087708846910142544666771428923236916487871548010470003608759605586518405953386214937292515183157590440714424631985313914066036363222809111807680928279273852384434870081635172153276885931954073430700108266203524798448457930498056870224975012026545547664912678270109896803874882321939058316019625753150237992533580382699179483578669109779547551523100735454210380905203351567978506919452458314622817252675718214069399068647966951166342645888122748673434413748097774076025109501135681553102453274456615278201617981752304689840023031071560625685184748492733421647535259002159080960819301416597299310780909285600802696366596693185264573658296936919338676482658412631967405817679962545744090274182643443727843371622514955578829840382466462524173612289839668343782751860007088613198731880051985667989544069379162146339395128835355072193774789047137033203521992772187972083347083189359601176577753122092163870991338045944122792922036217072922992028706899951817261972875460346770353472566624111170773782425119065039627728915095752923621842835292277699105143066784547660215499036882183134586713650702710104648345104020569758654880073315946051490791274694475677460914816689481079333668571020634253668011084229403897815241152821621621007421787843363845548978923965719458245502513323942458545618804963379622536899960966941278733788191396067592340049508436187220946919246611792127662415668700985378808572908945368731040322923339460597220678532784860408923553324538589733232498993754290728255845277724135456485664440250097641588538521287906653275918661211474045452139998039260667968270311334511928530091848258465230169502174181039425197446312612703083332009665735610740635755311747340689455831178495886247048857894953095619830780463141601072957164767480473328204733619155288520709461215833624926392613379625145416830627695254798353673612964139391668309485285172426573820066273153640433646685134240795087557296303750465496987009596321134806537157377498918696535994405584046474611744553308342879327419643176086619245598948438619945250809466171526734046267946948652300211879879247616853384268838300140289836075578994666755664424949442392519028450001285974677871444120461783774089099864475934945114401188158170347854725878874435821063773395551202917720639934265792595001780146245028232475085632015816378302701928928047013552661719958887378634798744856251729066806449549543461817611943295734304402401427972991279636137046501553983414085997506861755201401232524113383998065015599028926338525891803635525021843766358536738972719852913781853400897704158567165145029205670634769640935775045738684767877696002945130712271747675213996537467932070142871490514970346925768462896135888552764547004043619281876756612749131468090730705676290935002868238605734866362460810947196762595403323083582295179700441323731772560410522096759745011403111707821275593572660429702036424612952108553775608879418444769750424157339378949375865202563458515423601246404109028077704896835244085849424009091835470650072720378477086130131192755326943328325669494354766243695907130343380218642489982470628203881043226361579895811248447982084751934097103745982403731368548141786240602364679843856285210334149141784852587994973286143877616869839732783158528915526391991968482755059064488497662251305157664282911031725579379229843154864172817159684217773251844540464078216578880462312382522461840700442964048648284954246303193983572795947941306979044891018328084089240838549629956278178183289871840328474912417209121950562902465211966097679292410615154033007218895526297742322534176820814929330176359884796885146459522030336617882768120507897147775217855776551458183793455027847247877761812368499554042681612177538381395711797178631106312994629890373071102923625115253038676175885547335941212115393744547761412299896220806086791378394101998440233547583352959355663940265972142757806679478858312340672210389877581894198063057415655696267389581553489479546826303083356681818104353078389948757536534010827541349594891187555884777246237115289685360572411174375761052975673314015170888049397861336906610102104568310065942515636937054889941885682461255095687738893932764781266283916313406302326198494040111932360109299702675650629438462383014998885788350662567611824143580425204600167739042922577393080958245979361592759144166405028049828945998941547765426884705797519153225932312302564155186010529990604595651352035295156423042001193247178364329745007642162848158706786629207387214502259166375949543575987404296778380965711358171431210195149890160844419658987755399111329776734862669827798366173212802566911952750360507234398355374193447129915454845494550133132932029265595366433834469363812909266878938106221181720820770692508430993155713462526074764985811559374971475608848738371125975086113697324180987257495914096826393060719698877275061217054778011396249068168737041117787051128981317422289115169980806976364779161344329584024774994326280787589154268008142777419052545453988715267220526133772449374374131731840564471542335624975581065575761854605919703353053086548580742256673543742278807698962890329462852576695927174054357512652128417219990356192919700666295355566496996284067401670791696624005004893091734877947002843611033226469805170142288363440088809591134117845638040155885005288263025647366284823130678696391432358951143375527306849577674474528685364848950332159395914275133597205158215999002535722485632893130225745583934473438765888800032389070229525532786197684110991986715262079316089528095307491828711039107440686481113870651535495257790220964912533441324246733793328389148281761967362501110859839111747847411124311011871034359269026266200190010182153538979915838218124859898808964308149232715297589962059381429341337538574675007967867587987234111374187478559191732781204228868647407490421971862147085177918892879756187484946584074064213905544762435267066373778031605781416198354365400560120604632286656660063677872884802688920880271627340173013724601967349752737743765182666762665908788712095044205893241635112878776004489295169681666021725140846090096713810434550179656978581430595145692184883595319669547481039757547518172760688314611879253312156382537432951710313871531734803573918646967093155139863132923816837334123718709424955360547450887823295130965440327517651139206834600150889374283252882913194219192766969941862058590843532803836716871234043343148245465759548712176783209475824729396681076467210928064476409429653994437228289448797851329551792455626215332224223473011425846486298168944550404715392564555571733761979764304105054653996847862103813952373066077577538534287589347261391754373655940372510057577436724285474438709556752175531026423428941698704549748891283292734393371838621076995572240680855797934637800869009736316951239536006574213396398436597226874647107649221232048848601519202026801697960509451264466211559815503450648321353614323985123670971286906047786328487461903475576676764023685537513031793363492343646059857747775954949684279400479934382410691721270523017312993352242820259221721376812983138890222879366432859003757753408661412689134988209420915064838528220115298333849684288758666440350844932324411083671342438676398003979025573151927487727826487238460935395525711563572417009235711339714298879867329866254961573645921943287124311629847406121329698231399959052229183759606389630937946523229712950747083101010164355607629896532879022782527659085976469853527100172680110030852428071327148388683040300005924252922253890364914715018884551128802041843842318659835019349127887068826290415809997057594747277805440031240153549956532830939632735515860521489999437733798670246944436780765949389864025238834277417284776530827856745355709961294626611237035641540252106625783006046328123025050799667666705192987729528412166331564489868611721914479311526059202509529938593174926214212517518150947993139740855482791931382228028693438164015570382594798089579701943742694136279134223321630803880067760548068254366781543406554220817768004309184126400939281667576721801058573845368928631120027950126814395053567775467752144370979069229026370158928702726789244044857709651675904133368200182343526578961174520684699909257000776429320918250594066740665857827136681764876814549499528953491289747572203092598838028399684807473046204616666541312750692282814219882486282260248360618041432201975044943708532735597945739639420887814613503714055205106144907628191385585546453078160320099815032691137945592199590232022584353211251824004955313879951068455345324091728389559669862925844894986631473992353503331518679903310713563509983344115418332130140852098211917124917506612643337143203796099420338750078920100086500225393184126887543536768501410347898813083288645076038736575137352100013066264286611128792158514323689079515791032350684163500928240358680399191557503510744944808666825156122644496800189178007350258178075748833084150215660266531443942133682523914887044472421397080082817665023408251365867366748493336927455165153501768698388945961879465028695414349099507772173565217516271550639680362033602928331827637490229592260963151453414584306227586121274117180091013022791315854013836252889410973225446951444574416926419738746610110582722708892170717880916878993627261784999141386482903025012540497098454156673427219000115043300921493945537786226464214467433902348016895959101667154730538294077881008867834893210926581909840661588346025853923220208037626583403035394814455318895001500000036694926395686491097483184447870546598324333776616295556789073124493883640906613128822226296046961306031957319240443634940942478595321727431538935463591634091602442283489702113755044264814519085215027282180401606333148043397012121538453358216935994712020515850281824135171053646365471124734091709150842218636392539098771191747242741531916980365708446422310447315865942007187038396128993982961699279382230083293288720969660486463580152250531547248592875019976498887231190797610722144163887871464725925964561126908010770292033599632594815352718795348822569691463752381995876722756742742975134131061294664253055580730485932272873783075495960257224443124122129473170722873478093539737625297835684824791084024474588268680644501721177915160537969636380749634201471080987934929569599442508520973862084338827657918092227733614438911470632304594954492618912995818667283407056856035851398964374619609435738440460405230958932553520628372424574618162204123864887767348178604132417376724353608062914751768683079500219352831671051441744462162401439274340535215104190788798027028617473162968070167596004333581882794272297056961432355910585624117800394746188365132812250338814513427841691718965827006247942724806997531101836846447464344948365220132643448564403673269808073734597753431725241461070425718403713698919746797982108702199640337441933862508003647496613669752758832982889220592662730728130867505411398196489858082152607388411688969988733424882661747211156889197276076222364407407731554388053234186245072417432878791326651621474964429542142556701307129055390859985397662741173939627631904205154715587949188028364668911213874711725845824258170481474255921710509965760010299659162185876676889693722417007765234998181368186355177795911167711142227711793424910092523559233566661030512422195070160146365743193678405148563355317304748426144133200123813050801705969709665832927903982555638026138062042106760582518205624215224538394577297207845345406016007224315920007076690749014772862273874661091068527431968095663382006538417456849410092944318402033683962108931882314374355832856439949022194197151071082988626184649401329595818389799397262474215915885429178550597322622628575841907810852224454625973426085949737432834888951164778446982203073477160891455552654084147486980547405111736907540646465218076104160126407776030741089602853070441136753319688841070547548081244874732763111457366532468592622071737627467596871660255351526321630811864385162545596473843748647492533845625399165480156175103106963164228104328422861234671579629502040611735645810714499504180175251794706441762788597493985558453596901862482777646481789914719536953100070851300350020486209785535653774692577243165532947509314124398839938535902440922274182725043017913261390044879226204794223329474344111128326059228727243702550208649857711763577453721222576598476448363139927551280984653034660862421507659345316776532519638232956377001616883069257047632746755143422261150237881587103753312608427983601832217155567249320947137669797858783125296620122309024339167001987885835539854083513341802920128708774487328803441546478103744772057271603361310849190806427530364223545665324756888361278924390342020262381565378504004275002273861715677507515613245770809846067839552417442166101298045794329889460681941200524373397988675045018892538072449476595462203198208036131214373379760925640785917302664416770064385602594025987645174209420820718038910698336439839006094044142032511241824030215016611984422930153853430022007856144677236164725735380919940485035849497102933460278638044695575926855049805868360233140082485387105058838606662685348834842998870717941613382693415989705358934518179363103131318560675003898901054817335493873695628605322185319449937434534560294584688290229285487772992932131758296987280979210780069453588786085137780461760040410214678966562677484465796125431829207057351118310596010229689019167606036563257203895214349647010343103437959162345648660673149876088783143577443077046023663098836655553173561711593692059037083189556701073044141233207280349077549037719156351428675893376649853209705966378789460456704523016780130990110714540724379529914636231030620897874819087475422410088628804304721244619798701809423340320925035985138187520370102249467343410190273845462375915051221444147652716107437184123420126004095544860775003103751609834752558349690973676651483940528966465706856283087076146774324787753967610049447735443444136858438926622038901279210192673756153252023335137843492080846688790127015721897468610727072443829618137297427965051773975605075787319756347264822919271753494010764370315047980551197750564265984924739709377175861166526543243228236806487601991895448813122243100045350222789579797151650355435854842636607731525161394152605417530461003415924991411188608928316792823167087851354679344052519228214900973553887220506139122223406507033409496610219362276255512441340651923163632984552242489789918358925887843980836947771956603245855426357328454814440495783133973446456103215383180298401225268525715442171599102696988847671298047304414539244727824882476138340590692345451401945214571723618628364484684772861104195398158878627217969046408637464969151052494749223842499566596118955122293573613616902178442229151801319723043219761308714091564149300581754497966747938475755863159979652324128251331710386564972409926591443424185313070376757031836560773178562047389231074292837107775098595463386771372113055318471203218958641176161925252145474412777597580314745865102749178658679480084990772708504935907984385544364238235352468772974655893745256650543379861015065945228427649470953118512490726487416105845209392023273301356925373471950363291808942762203098062275003913249137180324704320071858774745044375527147488533438924409506549910435554065992669057396549732120437941725290295054309436830705677744763751062071809336716487795482129317471486000714363174699992501340571109702652032845504987129520627743028464334107940147180922969368048594156325353564364205562202402727034392867959900457805735029192959008115155291067283225842844286210369888191234910472012053213343789286520171408737676518229506608892144450228152911053089256929497510022832188444408387635446676546137685914898432180316794339067793340853662580923419777864900029160342421637511271903519776422052266653415877520527448888858472991675251342233095593389254998610676459265304754208563700340624950757882889608929056747573775892182437815786260082550245690198754456632002690886556688417528281155252868424732495299351576069269211768199776954875926838143492992275308037225174971660127213787627393567771253855542977327014195748243565468187033359262447816247943848185739330096917986780974830316950873499273134912761228104856771760762755261911207365492619605077484468607776449579197590462001876145847821473803719063205941319397768987525605283962345559874738503788081029293780083877504663199325582060019842561653082617391430783479797255057764100543952286832272774976837362234232506509052744252480821576400121253377857744712333536076961049674872850467756487006237484933955476287797733204097618646294832536596329259244231158546636367474069176448434826433180432245724600934762479914386853165738708660425994735016379961780852378880038432927487232310522706876631771078244726752688964818071663238256198014233176354559743243951489513784421779396944063726093420950148987271150629558175622416666939666498760438009335230453610223689440912398574210626984036680506562646554879390199403475597503304727083493943526985306138004618399238584972930809613646908535229182751422297865894347263530661516939476985169831705918612145958351869301281648420107756867221023334855935097764695272473032211380973451196205282509015784970067822875101770742173930777926467109481540835477438297865681210480366613429518655776506311595411893294559580941022636750192293855762630357597928508396123044793262211339267243862191619803314957706302204113084537615941750636242755467602090311154975293356949604615711700985456399045414794400299643407983726876697113387561069354068074434271163308089448231032647211607111005927104827614293060413978975894952765342496539071748234068136700681109872010632332954177412243403261667146711616998138061310582193657863803959870330542805785520387436351913540107116657551625200572071050689926698867992106114704679355406066522871523586713542267589812990106213484111021874758748526016459571367585958459357741773261464792714075487998377682358689533088795863329138280770001880651582944165856226284269187669730911884290183431852741065378856949860661845428595279045343823164059594357462378514558468735828264083868481007695653134423666974696143845030536071360401810899008307883455793126276026328088276755634116449052545862600333695485458896780730859242227386694821848355236231565093303663522236041902295049779123922194500864794803984780551595991839294825117585896647243835943540454995128129610251823374036165229440424219616219483293219362184626665859661170998569528263631798500069373203928746409495623567663562045165321002620561896562396082163448900220930413938631538650056219879967081783818376088812775083385834555569934438641134232939350207705972867152123283446572111961040113668112048254672312587343747507121436686205682806503983278740116432563274836982050361791141280492478753156994056209798706236635509670392922661981648976532810598873336167290823090601363471981588025672197044338869963722923453074168177761124813750184368103720822032926605904016255271969887086424886821384106871173444767541819428810199683235466636974928337304932844475769329250529364568650732049478704010375244914702181460476106577410847726595953878050086209147776917526679115842012522988222209541981903586524893909613063660923889303701814311571470211455894118184996345958521147446308851017060219037904959057572938897413333876147658299170423745807133291488905562923692020698115058097582722788120653353825021831993508962934625853471950423880552135396085164592076732739792092963861091603520139548950158480984068507883061316102694939737763332594950061380439402145333622715946474142339086711795024282199011597488146901858482128118789392719884996287649412232761246661646440434106703053294185017559768039064278518106929024993562461363875081290656225313132401417639553174536304376144373322193835400030659438420467113715474972273716489951772317335177871925597058700430239528111141604125081416706253077917647209138889568167436848282601673510949588209552452406369919428870409226489607170745043414751997096251037423811430481317105340355422529211100891668435555418430733887058542818668966748643446283227407001037681303658771493812872321000544208833760965013623534482090669444215646186638956675844326087580063265589856715391644753955634194858002779373498360837221893482997704206710899717375656809001979942045528884574156401324234845754412870933929199776232694713721885014676264714640288655514004306639198218067671636967134888591564517844095573165111410492747831693252645813829646537883131549031749747613392875429917708851937842255256462976748969451571254849014943921184988822518223426408733522676330247928839890370690832549038115869124062606267161167367314400073241004827202659968615981436360833115093051742488871861995244606775611655804114018778933124885450789247424877632617278799361850520055195651201006888483028196993499713825474155614998879363468623788157536864989495970120733953302512150842932389974976298929713762595915960693785122862685706461682737941161335563885451921987136414224641899558044983220905516377876368043403526679196959832295680473885101016911755876867430809757743712175531491081620812869046712664456080481242711767880102175922795058294374777383232791516669365902005628527122574263471598861958811413767008412656112731010231417323111240030866482361503501130013116526981340058007247883655311212851532042213370735140176102739753097513346695581444046739389924808951785412573394027689891022816213934800617806074364301864001612264929166676328262414924593730294329117292898871232002061470354862188953691944608966533403855733021538797777528120244366980324239187116023418869519543516268103206796189564598769841197769466564025551540740164446490760249385520745561716615074069099361536168342899042483856770097799524121127677798922704670553544018277452372989413205417005551315623335901159307605196760977244663087911870138363536338355518223982206303357179640286184966544205931240819260190939522839479101877244006935710513399839914312878373751262158231103418967524409086588321542887587991291663736366208942140543466212111817055332693796341407719164208189270924129663381719169009336041067363542927874809242267636734180639323520031561460579707906270448885257147924509088681853548056064464014009090989617172158594536765432933125208975630052812703091753111264807673660093617201678809548607069896049882723970222958895199655140654777876393686723617457601441164319004435006718408429576428996359890840995586299645539839159673811650779772939062459619292455397520874418271749659884063571617057791394298700567636314696608335201102697933549332288550086581183349289804380122681188899314237041792893471581413383527412838207105845867274546747403896268977374563497291635258687279759703497453269493201854247741128198161476069520439278346264195294307428780577008141747250126113316796208737270321879151945615159377894779101901622573215652901947056133631073143688538916854642999805659053477691334647807234590612532110679593870616640037503142586104865304287337600437663533975119710280748172824356923629090196495478768697010209692876200272618183006237720276550867484965779402427561192939349341373123327026267102520734799812543319311072667578567852880562163588269294699464464575171534623931905014677893954949600229342577634945632499143920219255304548806848115920367786802282750408028286915284115023610401356823641161728806634497294438197016205019607834240735384583566572763077981580015474543969119664378217775958158288755978576976667411956763125796318170832104937161401769394145170018105337998462942852212331043533128190982102710639172173753281888700467355667386454122532255741241580878960886133569472993692550741165635226990242974890028921505675876181440183873012793956325847330329161711653581253066271307079698800482331795387477629968114216618500247628985826000882865370803404442871059222540491370533613652351191772629610644677693859467664098928996682538395927615410307205920965959867095663885440787272477317856861536396023680208520422224021276342194583546805084980733931731772336155338253185511423479524982457607071368442432339872954605968558382368158521987178961099976286537278155203241742235449039483058737453616065720380430953828114024607341098293240430619241052651369234308754959154879526004115323599282175647268735657889585082657964237605780665599436094112594445427006445488220605409429250511907458138760870239307176273211114844357945919654923172850647440812566291110623801896959363957461207018673215680148147947252026885685292455250844863323446078597436302969306959067538492619261416693086391828356645397613701854221979922608631302739045535267672595083557486194035412372459002937447271147227656668207094992908536703333916530989092160159638543771634676933154806381085043306338719509692081798093012368674917772979584385062663676198859391802469260429378125005238591840306584309914447349608145929837174648101928772369305885393943197651443391676278839197304009803132880643990319023889219517036572090087321162659552281856216813582397046240494415357490910845590402144029289768527521520608426133503168265380723166797366754287485188027462953567984590981536855827622333229600536357254658512628776815995606083540165310637644602474076332230998052437410726204954778185723075023424636217309309780282627363463503235791814447010946525954422653491126033825473337716318423726839866502296981677100880319931102726294761808625226208619915699506142043378443495692131476169105597241943901175235813067128789927637706472720966825412886376701454264425458294244827820905249333160210562954034883307862487864002708023333640270604811972712813023863542465921798952138119599955417640132199447901331007139566082049845306197265584312042389105992111169638634207987420932737499628961685000454620479037909692970521785717606595053914858437950057526129372742041434748413503989359208073036097901350452716096893032556458935803699961841476783782451850152363602343221104762892488737984576433944920223015851997256790689345216028874392763731882866430743204826375964744558592707467008980640291548555582086842920304271642381299473789744547363292160714268755950910753406713066788570507535778238670035817023582158037659126318167890862900362856911027255514026045532676729764132474902701548225069940405152429706347071895641279632416486047226032646480319088907143390273463689640899243901525460333806805772056755232923500628842157804853134601571949672601878229366702682185245765831827461716860805073632608214124224686097267515824179939975094762130756818545159594868797670517245415755752550268090621011076670231305353723884042441996141460463747564944780689865457488110970171167275368940625757358319027909458156266476788898700226669487889776531451118965301614245760898977718931059237995714909490134508429602163215392905717897656936627694772113820251833964827292102499469540466123523256640577376013379480268628339847159100980855003816072717152370655749810170960540330635052795996450483577032736803396166292584470436728329193381427580136103259443939826371423538544265461456865327226750995607573776897878386427206734797364518611576397448799558118442512300555458284832627866005456657088475518858480422931822675902357912466229983229397332957030122257067471758399255714550750037932665738421182501208752685611383490462482765114788104283753831208408941387131384066329613278166950395335129032119189457965480964330107552418013960954907380595874865429063464443955493035673908504635554544331793925288116762440886454304518779212389965124059463360939858370818152270837322862528802580239705547001104461032949588214776260029407447514349806062811300568783083187633873823352202407464643625248593567558835336973370291050783769539842068517454339553985905893037301903108142451665444532080263046398653495477820369733453064794258175700170148549413607381541616359745201858192713937809620734700908535700242386217031751024508995062548092912667674839943720937361925479894958620091275532621228572469008990950477602672799276354388818048633247631391894177586078291635246402643404118469744571438302062034525910884893666285382495635230251086857586355401404878936874759828197052152982082818917402301034973118653901701486618319575259585053035737466568282419230922030400177858217083351454896335563641311684630795660765780473651614949367145456552793346730708874741878381975855752449910185968136307821204676743854706234384409844504998140583620288593461066541394615572290197876854949149895039061694267881107671436433829022984936859041131920410185972348573660078712265601569763822073623169526496671127691695765710607113424110822623292430158413423692023875427118425107276681119487722653505678671960728393500410954681853599285424758521612441450465003598588988385245786747968455403858837477179787411742925927485660623410382928372250173038775707689374958676886309990965996041503627262182683597399065569152834811726031507364248515353919832849984373150227959739822159658386766687684520673255054617341618758680762990861291432663512189443303910664188714326026434325675536898393888899291280920757926809872125460324585034527509762670011517237270392471959844545017643976402982176425747744083852123372085550417094783131581794303623575165282157216941113221484845980317629549218211494219069031324955386963596135431490646722977684992958275271722421955372226869788949081170559337596472841684115198124546447886771951615179834439214509025512391956493607070180996056472557588749993956524106960085989291832211228845622179275679213834762815980139735753086970758582703191603926503945559365769818415990348042810214715090338718878422202885403631985409853554943729852857519519265432394194507465040530913210265558689689881042602090877758656911099190635028960291482563462541354422107894815091014162642459932588854050367858041458973969177693838875021694606520253064573101722906475462678833361181570939840552739918265125038615311094711047785582689358965503586255908827181454121256399946405121700157081689395962427114635502774648756761564371731016803017351095594403380441322874729144141326120695242504743771258016422043712461254556216635289140809704811572637480426966284662474749970349153453745137961617901657682749181520410662705891024797278470660162370561257577329504319749283971025272579230219228823183845958641353991237615374319922292914986636730911918630010275821419165462969350570231874823829540265433313582007991960647414222480649696953366773453914678279551766059130469109734779600506110301143415794374969518061756071534572677993484965363619804927836836533693037990481386269604158119823493490487031659520203093217355176481363594671598717160971452125444516357791194670094720784044756851442000654835829849168223215119268796268296778993343316029788802939138536813174420945196502433904684799443287773273522691489945830849322031901548175989906499924657027912776419621434736547367897366023640072472978776077799068900116688162161128637164162980406802316501331616500780484131941270061793552422424010789529658060541118353367951545474013052660883483288163274240713784968100454014399862227309255474343548607950379423183030118297279806071470054708415036228815960916912990705617511291411984816814702387945050918018400243647084474215586932814487866423096323283414057233336969287840111089030482313751713484188764875549180685638872409313689496741973807582769948978826470040844107502406742694498593417054734522971261324819988560404139079761988823522310349327246574365115012201454657244051349042474184552381094116681301966564794465812166653403502359557801296619375372846379581316693094535701154936646586911533689977159876967781408131806856812376260085784603740502215698749330259662121153575731066759552701589073257556559193486418398610035917620776045528716354980617737412068530441892691224132623343618469611613755381497083691119267870114670025806724340146417506872103912545825626221926924988063421490421097668491447688107094608533281616800480068408325010361744232536381367673855388854038614841716893759611157870976115883779178613037579891028545968923844006703112071619020159382216978656043286965844168559761962859163276640287244114584651485372186650671629157202999304202700160328344228476881959909604315786497634997447594875381771611092864692767329744760614407883372943873666411551862062694837136859559439850876241684053809166527416141318073517886580430970663213907170784228390023563173732415666493037297614263980440521363275843817058007371824218666496914857198728123387066875367828841744225399678911688085560030457640012971761473395547441659818892548322615004391740253863242932481394588519406809163960624612224878824576589316714124126250924419788188197620261940758509380150288997820028231335805995710112034537395191584196803554136889403781499893171745478902607738051829272492653071402075097274469982422370380917730892526368521328690461451510674294305723028313690832677912621517004293718383912537574791516017088463706509612566615484300436771151019881306714628249034268588715006099422867330142781823658431229397201949480957815762443829124983368807483970815945291457580985411130969604727535450926440707973974312571712738356164194999545493617367344096575125630123489770413951717800491675961230758170958017803318475475078876414426070388440402213358385507227015107385941522691182886425943066937523885291414166286655725285296083213366173779345422180243781508927837212398530623931964378046848735178049718747230877337740128242378190147758206128221409693474327172192159930915907106233680235238918082313950603104304757574419098031870259441567161851792441280387087848159142638789489184742500268701199108763708204327338340960878474665126820569046316584952892353737637833542597795034435144763626727943300948117594313915353700723645293307959085680351841344661981712762142281944395708846695950216015946444426208909102762204036627784030329573525430251732040817568049002125383184307058509166956662613085042507644104839062559865205850904974590792928835231692384743474897682544634569540906899917500469953390422697450728853244771884723937456709014851174277550366024810207813058694724169846684594371965286125328854030054000588755104480211996233183541399125840243961849248245111132303227017984758718812362701440424097074586918716894332743880336544900014126660613378494061086760494577316295536455846867106122659437620663614801458813096736325509889344510433230786895102991248380718923378263555356434010714632023264549237984224515825776838711695876505819264743925164574024800060399127926900264124629922640013341816353909797601447656398365805260796957373714742293971826045104740488532556807919682393577358105051645164938503781486103620792248006003584184561954805631326452235947551465532285399058833900717341467888092916985808959449980073029876447576815390434123509240949109435222881162324235289722079249231682599901760777690632184476261159566821324308685662071699326873179678468720838529682786318273046512244609602175998266636290756876232073280099964661989338577596303880592846120955708387381771623588629337505930415658919761905830264359445303782116686239444444675942205111092239893172063349171210487682742965052323057303061221531795651440544822900423354940985839825273656618501198162236687872261759133101721779592217921356818355382414749706195210117957109728420319007811852057793654398463500097908436397247747305395323375196788824436841632669063201668469151221405261974485527741457285700439502894783203623850489370923243800245321390395438002134751115593923086843676648040626467702879748501851699259133300768084023450084675976518445356418562289384632475561878712522557372005320112151330463160423490526556018237213093237256975181806184507421798575338623046208223537580116140292653818737654425864063443916636883934874454493831841470534302999620526661290148679169226066322509559500604062757005792102450000031572064444320013329294700524045203053088307328442264637551151637949325698078180588178065559394817607853706737007800042954929633193408346203666969055504961588084320474947868946506064104089510500577747278377192060068130601140403268423890175927719089099698108157840509615905098695370749544897896377003617749459242087750116001589852084643100471462947858943455743736643612579103285411162268976795436687407241951234411180861640941349473400672367080242528906382283378575204458314011453034564953826761342565810602808012477545326326225026170068642626878667009870050734389419154450350000020531070256025539102165998122572008436676519351249315750507126748823055714956021143055589841701805105875638466519370871230782012681873188135423223083692023004666349637850594204494787730666947566632960000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
46000! 11080502080187749686308941895901451735449175258203999725484450363457542420133884216404951368655470051529381428096317442410708212963680655513688207824443960157467807986310937080732638698441262656459189384785092250817565980025986753034038906283385298278835618140521126757550269827565432881983678512247529830189189692075893909586804859124509475935484503152137004644301313611537086760007380988666896484581584527059118907230092127835106269604433908113162453522101337329464977596006771056508263548840180943412853713644185652935501362591141110971483623165137833442168833796752719647583754696439798441278590995786584922795894323733889441828491886191113061327887605611581534980876371503032191373864377841047356145765593217395474449872224744752345399693286687874342504920462646687763482103718286555253067522113621141343141530647418537679686471897764095435929241231025971241928928578359459740529507795859469008869800431209508861392438686998683458073257036449659781262713696004431290225074871333782751401402884821606273773995070634874725589813610292934733295741769016711131063766142601355936552716345167007645103521903250038934736306969664180074639418336498174115108683650317551082250775228292387129909112263990780497165667686660168911632878112426141615533706320301105293527925201247438402759592191923301073471840342785258503336744247512500854916958898452169171014031232016298203439966133803032752562630801695472682977748399444759381945674125187744321817585955734506950895889713195199786193396925180580591881807960852118594938345175472883727464275871115991550031557427060216880107491925137207846053884116450095662481903565794473547247503372885588011148692711237133951831753973906178087430837128322828130344236657814212747149940156146272673669805581676913730270322012531693058100969639648395851139658269097690889143509364830856480264877664444858434967563078437205211837399804289294916871343174048116722551205279375847278964107088160748022802785561252595028596438372057959907780325933340913680186766030370239771444861314571891060641845702007544198459211864785703590944664052696323851464196113337172650191939013873048184831189747897016144351238461258054496451513923365997224751634918269344886084864460584238108580010570916433327830157267300703967683593821333230020440651019737130857733390813043423927020707042022650771777184894481145438109163301587653406723293639267422047337921900266205408824663067359656970075273793282234769107249183530352252301967257542810965204351902396328243314671331564500030158616617422608880669395849876830472691565667285940316740692582455814549058528314544024891152234037331484564286624542830984314699661112089845399814295321550603784128607184192531418046214163359532216454124311613174035902279175542121702001542915798895994280669158483211320366478889673917581921623191166980970947705706625597525875128611580517435698292143645560651166357243819533845813034604524861792725646131962969129373549056316625965400815837503380152691751118832497407773012802743441474353753059318467451678462489885791279308583305605930057810474950360215999394604075404989640044043095359149310283741656842124840541146433688365943093705014731052916165956375124128429885592623403400982057049852894979790031861831377344980715929725091141980876140415890243531951347257228451566045568100147439602591305580578784714403497564658235822108033218776464397550016474508291104356980441669948862699543170199936914637004503491361085006166502994226103046980601600852197034390198625235443311378932352189860287187736458822351921694554228196521652431011034644290439628658802503700773615869679894305743199061915629658073841274448591836374351475233075898514934048109398022879306711371201253446534008370381883730930794519407910897474386016757648438943867660962656194413701407252018724117046704222261031210522068142965469599643482091932953644730181508541088298288547619644658722677787823306512310761789291918014768660719035870646250438130158008515145904819594328665501573880756589343644135272027813702788960822958776094160319589868514479868322855492142626888178845579320092595597339387029571244545525248943983458644468485991189373113976803869676969748722962097764091782143489378225339847540537676379413400694024292855328006416694816659080357850648984688452197521438812028329982635234385837756732139420925825138836166775148258546425692431481646166037686768449854054570408601061916897041145659706948779897415633682775964849121669859824196602465939606001442713500925195657745624951194369813952765617688808136509781516147176972274657791536695816332400301914973249929196998884970431425066141835093941905387098669416612381862548507775068801470662016461016338245728826803011953344284285931927166181888216165247187355046865649671739208191310556337059299341166916576966931141424040161762295677016246888549251303413216558513060234565341079183135322239697979442936321079252532252988008866734294510894020098107031155561685058455790885573729684382065561832951064248262108589661669572034243802985909539678446050452186935139314705259547537205851961794735165184629030836752780856997823500637840658101890107971813159385934946798938985499803974689733674403684653649296683927815860954009942730977722446084579554731246655492185114498793107644514160582384153637841809612155910340287049961373082087058826199681437655841426935028583215436002007585752693185351054225684398752332646633469782991941756120493671151328083140613858332898723692810009291334363486753702277855861994563514464261195442834932818674782520206958273957953128573530171571207552475538038096821747210049458046129125100532512125461951171499045112111069266877002208463089616594922741863595718743053678253121459627078195564479052601138411306355732168979170218787606483509024874941862464183425090245695919523279689034609542839447107061309930327606823070109085648514074519659441998666435730380011929262016842767889368781639176001126160290072961720211623693824609651779482226837168208838345610983263347882538049427283565945939487152915819055951428923912961343575186755984274123280819293627913405450708502890483182955646015594239991621955526491583933790368381333591451455394234544137184466372185368158902552383673191286404890550803974087496089222977007321080286671171749400849772270041379942903561730383512134628889117080944268308872561009973235022519830488936349042401315259864978432974162791794671896124470922215330393870232938405105295335594389758539811414916718299814394493779411927261206051117218424554135036700905150730140503750805196875981834271344919847957272463127130220069510791846518420525677555003398961755058862709917507839506538863291469792593434233651260781394480342256271573942652783575522643934079559555069169700125424342849088158995781661138831570053623660755851143490372177847926551445750829715470305854130739673581929074361657979069676955745655349310746629751593489309566785608284971155674502819371398673373387166706660783059417839192376980555094524486445582126474981243557084051920215725217881621666405980431644281636384113161054776998345447145993608717588338458620507143085758263921582581169743860620828512862168412064469389988627751043300428134288216181001208858369947517601072203993530155104673864260455951445231824082336222554149125558821785189200919374089043448122032575931052463360559496647977400656008254559920354616970121089493455887479086805992002933377546701540245662530630369474749908727072780467818596401401567359750744811715424627851480404495636294166083613290891506870368630306869817577665093403298319220708396659455914176218192777320103194823908535839006012758883732909182863159049034521976106678333728961216666760450680845798025611946931671812393499519048161421203842149990989902096095840197236580661812723168315512320105286522686393831866564945815768214262163153462780014549877019533875369228288912270685434056156269238016834658902879183350525540518904089300265392039900945150627690331999798524668922412368591819391805721686814913523356368830347711768545048701940341028193661700921896489554661368742875408678603726145887225461540685296168154526550744662020902785996239528863196287152330883919691031353737482457435770010919138519096790618137178966814189751652242672147878673653814614214754288826049288218544782932879814744752388468922026091016114404835691822263761138224373077291571031569040425824527007216111886436725140890942932256777296218540925151763368016740620046577342148794018262092041866141947134225118837474518745514809159160046430599640263632929583041540282372243771039155584066237605622362146082661790813215685701272391593940779357500166871539324713561680870622526618438194695341997771594099348403598022099577567382694596570616996206971389208558217422558631159907009649028772945481285498055491878078780342885457403938287714851633387515575928696065799971530665605313424468744915973314540981996210830298811004225937285395905770760387014246346330651833028405434874010980848341646710988885854057613697142348900753742058189037564991678280090348404703132385444530607314259033472931571193257901027120700741573258396394689076552666580720852711603845581058066369337725062574119225670248497453930976262782951783750831281794733307799663057612177157552183309502823146781114542508749058291939477642466705705151657207053453751655737705814773103816833261647094399273271545177952059799813710282637196025086177027733537420209831922800774606581051187328420241460323150233154158118885410899882283308409813752000886480608561393064645082194307876113914881389802449462862687115122211187362927069831564381488520521243885162960430725389155168312057013583059304191182165819736352203185988861516909350764271386138585804812813379347618223169790373602075085355225690947031204211545549995700019741435666387492627933356865664871365721450595922060908973402599688667346853904632486617101866206794484209178641619773947574614267483498355219886057353750392020930458191602212384325712173255403920456761434023001160149759268432160121218681734432960635932689419286143520615733907175993377276986920446383372620606936781808990671844286850863127666882545045433210892328682116677829999616329007431724443631744562067886432123356605909501545073275313614567057011652204911145074209717358610700530977711606215896749012917930418357813002638595653473605710242678769183231902336740484101811339789754756619654845014131751244366457791770865818649926732310048459675355197408272440915921440511709626547684531244705458072191409314766302321823847828536772806531694649388642851190312359685553548463167570613483613584441058176208357858159021785602226176670256060743631405091403340254926829923692730076525049313486718609508516903898589245762350604226306835201062828461607225874708219987596371855665698403354226544680130623983494194685469726465867213276699381620750904860840776270271595101583408924113721165899139640541351712791147824354777164597652115348074795316428313343305930708994102914784618040385662442457901851029401172004905670500744499961907355254686274786335079517778920856215740989277013716520845208258545299076690893857334316369630047789448264841652905603214366213981642208794389657189658305144122008036689920107051571163997501997880491225389826780318990243396003128423826438641660633943114244181442684451047823117906579968588592906990559066204066016566744648448378649706723348170985375826631622918892755468116618628611392670833826055726545387634479882384204073813730069974417199919677242433356600324224097765679271127895761494736819946496669622199812327444639627796353626848672070029799921972892231941378694263092498322959646561795872756279866575610852505880043144352572614502916944610370380945970513998661354853110590535075501378677007331936326748801363098584098759924328126529194374355568944944646311484515792220816266674353338045848242527960200641487046314484896208764851792329011121147253252763707447521926227682679605604374206611040488695883839451841872080066260681769826983837683190843037509906309436117505068391432410636531450595760938674742140657690817402856888159000172588754735696826686239094788476732659652319032468154700604572550448121023856047279598573410705096018905120922323425723387044579285956191157925928808512203089010146246293827016410335620701674102843599171808575001290670450189287129577594462179737714423225994758043528849088434809771291735400338934854304389187985947309723330085845017408776490896130580744134873801191334576841007875703174562068940117163415389915369761518229560697718365532836479404791744858829755702406914630358140700925039706104762329615429371541239457588907101999150388850438513144283367396162843591110070345482501545258571039039947551792088824601023346006209380366757920635898457591079135074689192231447686704175466890703264149035597570823841345307884017863308218310333136914603531358573800657944717047080537861549430384602552924769475644741069249617706745592679584190812585138778777469133524998745556853216180509715183968713774893765585644586789204657626986071209697590831507880187208109923259459057500832498511749760658297727076289654117695417460146987056276500616684538590571194935722366591936746774798086322874724596882684157583691941135410866856178915264367348919793852977708171931843770901816234971243057564645947035612199868302198922412778737526166967486453930914737990648115750645047630350908733583217984525066040220980431202594280489134571271625761898658806052488085699130535905063643166553107054901086846378984582769720490601961855162475061476667090375934059881267401571950457706879225844025207069726970688810560070375894749930870874153747688998388719787133437516710525549748468267611179293123798735961595465229935340406172261869547407422859224464327961157068319709688605966078523285746241766287130236891570061006390098104121344172055646843584012271488185873540841745167378276012869694269247655230372467562631549754049421036996258883856995472496111004821719830330990540275256545636760831595017623823725546784296812490413231917509046164132352771991532254747031992666722495323292257160786700934883028280569534373557613322839729135629136983589154787193628787629396299833450396785874571435280378985008498222271695515090454274978919993767889302836915438382434003781539467784159139634929160535124172309930022350503020212911369163907689334207391901456421155059225058005705985075437476671503158844982156934882150105204499540501200935131305783843819454774714471868231764210127963132609620548323653175488224479448234067357076620899378848693993530061915717455489633689639158559215436907255812006009684304917397609443680346231210770049350182733126784491609537558666157951083389115575066448527163162847511168340618648053668065433546152665394424628404329221509050337719872211988818160526224221410677604583363713842696591192468964197468043055214339330352446439932444114287124019479814984791610514576692807666195302001257805843985716717489435938879840709476998585288822246561645183715250158556530931887364178934061937014398420172581377789545365431445824085525207583505323154786084268367408742747941973765528053047214556147514812060173573092597173968222968482414019535587512873717719259711090360014633327758541722231838638384953578600633871027356485546755419396755765391625146227417450511419352703987950696761946949991312391651830377764833909729523907556989522560474539024098650870117080835575536654037675669030085767969128871725893539056666672992304991856048080504194380457777842021805632947360318812828770072284338194466035371631356508863943074940984356004490406419803744119209618371603893091871167960466603555546385474790363128015390082071343797080875037849275966590927214629471986511925917290563813197551333498605024002191440752241236142041110300439053568216626318842736360222015565132998439181286517748755870913149016176447526698770912656979232095397385193552611385833943812350343163149593979533611205178978895979009224580821268281331853138686718461843642874784433101700226185225428124919935466449896326519316270733988835156279932291815871463952039416657542977288841721948170274704600781529495879354674049342024980531973014834614445115116931920009893032033085063653931247952552375760919843271063772034784951648245543152737986550142503630363555521111813661276261993440859241374760787662628789776533318455094868843657467904553588938789233507907212495423288027704041645652849549795124911372181595980619788526890476311236574468835297739222076490072432467999675526274792931643992426331627460576374708578250864929516394770825122638319046904668696936878223668950817350310335610555108823297634662147646463366224515171707891874440847191345167827834303151784414550675136328592506812758924824882559559891360147246572138904953796934986918174115650366052491575570910730108633736909347025376758544826573797145441943890008653294331547360368651736696999665595984557704629127640453272715955046837927262729602660593618918853411388786131916382631452318717532124303167233131836238770282170684814288043056903158561343644773945147604743361035195380385499612108253029289883673719115532368353205119891044357348794651843741458187125688941930742478843372298249985215490474652505634279469053696422011784373159829195904160574860680845307004841147277371114942915628514922286880761105701427734300619445657777171898021309476318555341391836000663199954923888738003236064144700565296707618742213891531629400229037783824204775162411308649142830364814696350873519740050049102798489089851784620130589612848711415157631260350806643149742253686625314912396567735229607661880599646189512218297836906720432055259336005796867585897165584154586675965061138225498299214027261572853995150932413303164667797520992093433989691303535904080507683126284824719769120697937493230748216323259462960265086519053233353952617894698870493913384708204013401339897526784609501651118569717114020122153827966042154324395949572292632988634916829114106408287474319973974515413421643949084444193311828496138963562954918971786807335639615492887080510906077183226960088171517588651250760683243060300009133672003412648279339161261291129143796407666039169032539495062550818181275853227354886856284439012892884688114548046186678822990137769766732831238967518896629671242029604401850894086907090830760135304674720432564234086918622902504524289467778805927231384643468874549645606859989582698974563257453785095792636322563492540991428888213653885533574442101465221085088118653660448585577326537475852229576003011731928078949231329719186422989713190957707074222493070339704375028747674937434230298263294005920926414475166199606641369495858146133458323400056433911518857281040585653369645264682447536231813507883772144916581284453488887707684718772686705122616334705993780886004087366893777956946366832074316464315215639936932406486994270394730855195766847727240334793738655233790524533569232435676081937299421125868916840105592479547423925534391104867764258698279508163304957161660386649927042412356896104020691287682251005216868321476118671507207309892527168487841536161728674889381343236494097205256964100106777376349115651039792284762652080967133436348686143246313328560764959592504591533983188754029512187315101865030649030269381792068569652763183709076083262246968036419799532192319931062111620613184414923497083110305537981847619272661872992003933990999900474568615034995157974562126516105344171532263061871753464484292443188445479051513902493391095489368325111106095261993611021533253830724652606061056110243237787153891219984173186515409227906994883043392941961046070431750387369132651992220847169631682255759428588156762219320752453366051642258655675948457125779651779628671024219585279497367215434768838377264470030793105594522556219374241367500094917924221675912210578070566287856654404101506860669706913325001145314380799720409055101693583613177685682946321645769157633400980137391788261714610793113536494893675864942702370541851016399497648943491039636589326966553010081288354002787752465639664708998227208839847480172337561313880150816917684835374039965992533455742593985193537020868230501038446774593779653606384945877524558507445560285479061424637755079950006375093820385016376647817455954094893112575665632389978709110864143033246843891569504867349547028651907465357305703681697028699478047941635723142609686144556519632077197211408762380660947416016057431999805018627074130263697468168405350123969761565533018010505171972545206991267602910163042962328432699731312409600474125259293406531024409533163616385799043702715512746874561450007753922918711370643279520430909417205226614378723838363029941275502434086186423674145490919497462938374686820482350736614296351192575460197483021258090952471162845486889225431128173221686774763130469827317676238064902874334563222899631352841894109741346301502284053794878281816359086777629784403737984664000947006322234872218091200405060347157477633322461965836133068346860030232518657713176432761086612189773986932484459031500810331995744144528359849136662466727924412562724541617602450247567583767259411159694524476184882824400273788823738592161434731734573893693092101878485188501144631714109920700046796036321116850239783420616405749822498894918576570151011039965696483796564672799735179115237234717789508357459529463931662877195294558346582344158247211392566444033005688528734921451438010519221410409153600512023574842460131432316115512201674356920789868779800274282098327095652479933386940903095927739455740442618168785154134303982756285537875449390075058102902476583779192669536358721333958045039510373433324480371762157053560678626752509920057498331370801344174939240374891271020383706919479505472905698362191258911942768749164152730762669909817955462362874500852765993349707844758204407979209529133555521355004756480381070667330297105986659295879467199085204202353554659749068547317052613082509008624614614100033584055966201170618136113856020895375469030603713399543503315864320801605749243545638389309205079584587054670961582698877384815273732192220407844803619928230433628122088499256296595179998226887243444220286633936042431792067629242835777067284257871101449296355614218367519617937406716065811252111894232899991539290540068466009099783564929660988309653490501468371270100383004047035407608300955133206535759238690433324248882019614270607609591250821489674788477789748221020449324327566488196007349049890730208149533258884518821232855886777562933763150188709438024222626601399135188030080071267771304180739102216152875654926327477301474907820268093357597518742687183207047155043201072251691001609428052222797906586919969765062324626276852613759703220413522038626057047480235334338252595885664920404040616401620726966141012967425139894823390933602084443564996254027731840640881777662188201872527357951957854649069767980887573173666730185752023849370623352067182198776078125870676037327768967048750944317467136555259258717000381155716483574556739456671211542561277033721745636980128844372169403030598823582932113075779503496858186391983229536700508366166834873641636684542355430791156611733179862823250121069677608660660899721852770669571065630908549262035592597046822345609714921100030913518320921172580921114930395636438428976883887845383023733396335758749825018598521352768470658957302243501729097788516818354161196402449615832977970480792174428055953495941634972152949082128134979120957173147619029578059384423247770240861558371434130942288093397180393864014083713236103548458052457262321770003300533943729974921310925582032788534312920642520148975954002440704954865834169808596232244607278877085535868997977290073045153359413625303318361470948767379110949858781175650241451462917417503643085449917630608838041825189971064505647898017343877049027746860460570635465736923986409835890733482394859966365346363957348575746645205255105600420438546583748047526699226832987229178640122791913012712686549636577965244062905771977654830020743208330303284111793645760228427953697919189469727118793439000084445355246238058710284478036375080281233817218154112772737552142713525230247190618931076266090254102248639084098687813781491938115277696497371405924830362879386788063686602726844642587500352817948409566108353228668954248567130842894715574865009183079948040944028276041383502659146260342589960682508323532043384208599972777827376253870663736309646480789537701492933260554348805665938558423325841609997823699007547213292262988562592791641949619395992100902937795166350186912289682109908445990577936265792554250097732730980746717768381730002455198478312570798696738812384230454025643990629226489720087245786953858703685569636960563569344997077792151749348531970146682036777290277400458647349263200845892029316177100964938853973886831552565834038982163746384417871502930472562185941759455147228551355686166473110659053819856384008823058418728178729141686997118106359105917629281886612702806853498759928442378613952487725420559681490661445355180722378739182574814820599943980409110113705823085741492301888606377716378562316694587511871510024096076215274527281076465469004327434290973334763417128631902275281759204398712227830474774774892363671487351016608558180643188844688584802171195481628122845401517997324210636533585218581728725730735462432326295200543777089852623364731293863788028559240158368001159824685827592075823477535656659824556329198454958438303250639341118279652147497777206725423593674291977477981772876720911178100039605773011147112604374831276644014539358645394033771151021407002692289969764850865143570095229787406847508963753402628187535278821219594382100222440864953244957860791279325199312454800536930772639083633511594421451365813215681143948242010689966544397675516293718601386504627374937465122293485749067888792786586282714438828232964323152810722592444017136485687405413462868907231370731507634816845888381239556436324053097230126940364874297900661098417681083358175820268349933977688991020128017475827991102270222564807162219394519615455615623815520766845777146077306906699824860426715373836099185995164740813294012916501929264263143666677953102985284004912461996828751429554092249216456924449470285940875981243836158213896313700362970177811258921086075691181701955583206649988338121736644952038631714985339807628546605767187088479832819702335952463458489586174449358402676730833801889924850102317228787420023804232983170480474689096346772039264362939421331654905557432186145679893878017897780115418601929539882887483558749093359293705342398415524680513615916646459170783542971724092409123409857109220390823948857633953395972603245652638028048465576796833448468002040252156632133697655714434909042986832063550181986496154702234539579124458330014982944047222767148911687000098261339511888418859838658926364111949989467701457727063163001536387220845135610067358120527765857320667041409200690487485481802971238945508299185706886811074778000051917036910164726760074618632218312263026612429134544881119859852327366638808110384520972509172665211545040944395135823714659080279439026647500616159000515084484839269193648368595290657126127269823879446031408381823421760977720560674230377340824928101754501206960543232911762436006991846110828235149047630363535290638093459568022184607995806499790948457553494677876194166499081213163910028209773784622835942897583507872634115432921373817150135449582220573739908742898706118464386922891643124381779309324434829409309403194313491326086681251320373628144869224291781301174043606216053965802332389918010305781129292073313416353757710649747813662330189495714794111115163927511959515604947275020137127268701323306737771520009063937683747473158660295251871616892612623619895324132444033616594367060394155774673241434569381436634463348875151664916193502306532595512250048663900095160730585256216605288707501894862237823467076377887949915412936040110531051149720239578852479093892213237133737851577754880886479949302594297511458281513140016466639376102573679897110087938218495532677749950300323318410755168148529856921997188882780594000421711423925363195615772619435983558995211604113341466677244148751604356417574033795287497791835208398017871484547458741957360881955868039136499380013419170562939777781917445087513104172286028659173722207059102333464006136005542608992559409985591965357077464095208544312579004146610610077696509005021824473382661186289885936770398154305084692060361997819267506458115474512961833454377938187314810149279403119075613906732301435265062619488551064235254749995732362992653658180988574606264898782735833405751262830274224392686834814712120397338659761516112936022757605576094447271732674022027840227052788584121674445710702864476058242568875419205173721603547166025164049732655624305310129578541553962329674765538733150488026208959968443900457155461876293087876339252798926656609389363578980011490500134749250562358566006315834621315082249524365631844823486134445937994955027393644224447357013289513945670615912389340629599679275302027303413659033601021859391972691317209388108441110888535613981240120640009173553763581322576605683743034369849391367730493172134997371335450011235483213444826067762092940441181934891316133492698511784346833837349469062555629909698513388196629075782748313634691778103340352181291033865407841500403733096665065316726437327456670122901924584759215205916120588067547806412175334432693866412637231927315858632597562647557967692990297668550083359260486030289690827285831428914472897922300277106704841687452862423815626556035719875269832365479244779747627756509355751767857679800671322067877590198309807517068074461170508443655235688218457606797424915263264599670938647718095435107855192812824269385139520133051109271760184045277719271877044778645753161502860293537760403152014366512054661579677629265589814674921970125839021084963865149385898421000612278453307614660154041846313828518424960656776335138130594689771960327782603663038161693162036315467019185317660683649833066499666267940321444780615146371443423474718300774138047135581617812546110494941417946341153373855533051290197458316778038311925657417228398233559680698538192315746081288558819798224285491780244387477556688890251958542057970711570684068857559030506961457184966302524207693511116207124677824157469437855135118118842880836598330730125378869877877885658721764894955470635250123274897574313038578912260701154694158193565985971362142166633953962802067493926156528013726224940422565298858877800537837808708544418771214930926133105774407385089065350962738113559395125710664045127347521975611286137961847504013375772955881993713370580050209176051344398583947204044012680033800843707409117369915266537254260777369657026599575317213338359812252895080875562823567083078049175620061857991377535292849361310565167558666330723231782265602010543212688866160763567098536481665615505703999180860495849708756019332796888160561045450034580094538168524958093853636723880959497293832494902753467738828193382061302658883873935397406905610780920022462767800495142970960282818945807517132154877993385846578872195177042495903319889247310573278876739157861642993878929464492867740490620950036779615643525562898582169319659339148902268641572808887557887548990505104213439800885022685679005013213472517197398013430243220537525097480030776873870183466926148082511487284833999633419619214064295793221020044106220388681308892650419797729279684994080900530325396588958638388448306833240513092996706167802623815621077401576701410143342415208255052067442833527293957306648752419176309134398765388540855451967049158695294189579777618666260071495369341580213971886669959325251612156077126859204533772953095636912058628111306585750208026731255234583216993765756147482145139595902579993475879947232434941105597764964350822415876388710514418733127822319216078227499874404249884119758554257992284129621107828792105753309303466257002545029847071760064958726562810082149872959729592723399603942306557762872885050926508416044865516122302714184150094129706995680373180932841452034214748746617357658038431908553462270381890542126302349009109437212688906239808845853686597394613361636043949405650471813362114245629984237979194530932624664631642513113612737448596956071395501094620926848460241815172372479233106142889615768424558053547558059727311410415872411268674617791620260746647125444534701350090247729085139153112234343614778488154373602115169210920696244204444713368548652749802347873762993825581283289499264447363974176149110862065114042932273420640747231360501211809050831547954915013483341976476330561840119312638545376453335111805123888295196233818140521742622702681625480266090476595593077104076543760366069618573616853718846733767632904078348556052108268347154924063528773003811340371727718674901646728657024944321493832062186121646569268639357203369479002363220086139102064239115684948040491668694072896284337442931603592508308124538549439702876765796700119533759662282511863582200928094484353324328815192234481383067434340540148714864335409145417966797809418422773278516844236059810132921767309939957650416157288602943656980016187464703682548127432157048364684115972226824755550890336640479532983238409537928278268005202805364678295842561004201716820021332977857211373716846214510909298330643598817138537083047021805999991502981264683495952239302763236281953867069334624513907088141341331369075990844895522038655010835658515914941880601075051657339490304698745565362746475851715575198789592042255282364532945324366012806478217116664283841526216844247091630893929973058086434688809615848478909268952676241737300723787308727355515970877979202714977058945586353891980548254587486022752579759951474827656972862506884367920727747451942389857744485837038279637101856397777384159711311201443591985201480324383134022076287822492243553102864135124102193195090309624524741360619360368862820436230477522415710325242999393615408878539284177203140238955903704728157192300519725301156061469520893301300584529681162674132361538003130234621380650322254953814971255668993370677311415649508285552112448151053529297710914475732678363658799575737707833024176732925659611552845115272147706251392744759502360648089938137502106189759452020811465234939757464796429396925736679559110533564351535330014823606630394126108037223648049310932830390467826576198769844606506474986310151816840054226014925024678510341936035332786987273898555002806076718679133806950285282425830756248129315664837748005203954723645425654720356766945623459804323691579747037759454017415479636866063016906774913181740769606401480707691752369973407815659441852791875436567168321516406821140691632488397731539931741194710511325292776519194232230098455490326237137843845286555360331039644670753681510796757449498182916215570306176268660214424216314573305224470040263819228526128698177734221594384145437985631249060707756551876846504075621718889488274718018712914258895285759954271361824489010645642837371812099390285443235901607552443403808141532344476600743106006725873871772436944684980796018254537778476226678058940552084620781587073343151873814464033451895809786157058711424707798428073349922054810323105157155982584831297447537449152341225035483998498615295116976810362486108342652725600630761684620752397696174177317026668190044170047632753180263250240859446725884432737822866384920071415988582311762698619121703659827578113733294396312024213625634481720485818218536345246392079601167709328492968679820883999504316170824814428225138506594993417238332027353621836513024721623144190875458380123755693340107182559552711686785326575149705357669853448192312365375657160718335247996478236774606891423555214889741030211105221317665805447916435085880785523327625739355275529397510386584299978040192435957868679126029359303867023919697344813597625405453127161691921781789521463808976233491294546693379117640888351870489718566910323777512253072933659199162469640522294930841320064381908464673745784723921982784816954133494959503321428272962706647846948577969565327710470359183971432713332978984733600672317540282513879260662524488657088796883604089014743572410417153331467027180871778130138911985221142372691976991826363937262839336892209361233614267928118758298077893386536159563882696531194759002586759307177545702578686462996519615065590292289144159776464636442259031771466526548004460378053772176876997377165628319953671713264538989420766928202395753222209656800397208251436145399906012722196398488595592439101695152644227327714955483056545292031443823173666118953473738498363447205446624500051371526739738735698888571108859739976815902935942859841568019233256931593585255140704109383536126084496221095234034662732894961928986554014635126196853109933677532338473658733949034522432825138138698005691109590300979574764347868001548637302455843967215804913029457997567889445792550523809212812377776708644312932629322710067089203060783114691827401567835378900572123117218408711613571073899358612801670482679592279236765135237156932677832379999115492928392185019394255039215573175755625650780902981771630727201482533143295805893791414873411908233369326996597844007259504005728545622365335184714774178823146534227762138199783645697913739162957703905887244007230703833543390632139649031267968679865677204072649850806148272218837437880649420528557999756907126825010064292574091314349059306141205549524889098379300249286119810631318969200243772748481575701873984660760348329949985131425325877326928477322749847583998028141472448988971683709786649655170697167322961977602786851907985739418586168139653178064791697465572116025361132884132426006832759360808540490338105842597670377385066724642196475346985680752499311430943628442836655894913584470653185118303382133139474667254512653098757485892978998888443988362192616940510382796993438003586273182370883699440783391638505501801730421252409797060216841471228788073151646734060471238106871600653300134732185401570539449659704011746649074930619275519434687287675349758273123667500510342281192695474062478647077415816114489486235975754598377564298176981299992159677532407044051347898646491111406016816516117100437425743450970045592178199739623840485989935777152817942451251055398033081396859329527188125148019059982368500235536263241307281308586912624865035553465567304651323460016202347079493848614307679773100042034834615810339552561884796005576442584067256251098362966520357733910501597948933372022360859813855780496252058580300788864030091352317807635881303573930021138437345878703600735578385273569472301005620969997701563040193249595149847956210090747323582639116674503877368165478557576896915862495885548448989662094010888152739139985256110327847462981049173869876987200045944675858079345497806936613778013514619096881521079782270549077047719928154002853336434141654910059223695977501177395576344716949790597909745539136330069571318684516831433588341736971594143797353590457001231372277919958229970280084591728439979640262160092361236412611941487346379311743014106547906107226355018231945030618658782177680405585993852965583739027530391501672468255596927950546176290527759551270358215245111776586639155764970020505220461653125269971437062747293549610726563396290346013953967625130860823852066613873728955545520541261995991124398599537235368539132389787767685732046986925290985130911461387204916190096154881377860577893438131780365808025885752377230546552278911177356018250266625247631984943252497183976235607632856475836307161149194428212286395212000993297763330948207590660033098999175831139543253049274830147073328870137424060144298227964296141144065263386299630597464639272701159132394291331693885081866977806478153517524965557187803738457635934894244027713512825750409962160848601659536167912863952186484542400295904892107628601250363434873701258495338025287163003935669181353600092480864009148727367880274548018788194175607373836283965845477960297764810574774165960681405670990367707161458029445467353030086576278094134681209806401874174235658108409288508143924026557215552000330594283822963208955460344185455359076326603092925416273968545280882897930677521614110783792770615655621582748141876980951352811338211206614458955458382257187120247242190199701221090409880599093271640138207552907695982360319845513081215521225691134207554735399137592707405221684797766901878691979511478036934100104191054318893607768870045912068549741218537261271168049947463176093082313870695907842821314468276210292296871751882303631781657499793721277081983512747152055839744427104269455177220411918078985261721142880565144419672943693679306074113408200090406483075289656168998043091279852852823896156228338465144781583146402584988697655710435145109537206416953431768172359103547770167223242614095743644346275335128313143080978880041093745550184370636969385485579949078145698963779224724001434612099083334635082962452948816487249868607466483460027562560115838274832589047508177232504890930549701211660250097781947190083730295480258170962253131837951480782569561192878325481106320473652217200583510243661658073702558969983986742341564246711779955446068522142316980760836723888868148126542928787871517630405882023804296442029562761798551651818669118207373303072025091624917557478702935747562810170990911190163121974064891546569302779169094542620530274622300147636558400840691366655422449141082528631736865488002896154709077372784158110348199416139796135899842244582851999123101035354909911914579064709507262454102576556830374874489834602944404048196401939839318172525992335314430629618424832979561056033618340625328282879338168983301808009787359120489535852612640392397439104253971258938055671175664282561548102021739144878244198173256369417571210427900574074603746272588759226774445408036595514742174829710686364822634724731735648555060921785744189117888386908248064128204062464344588742133548842018654230275972857285444938934578423263038547586157836679653568827522560765179915904581915187380308980679642567227440596697539122891267422364520924589190193305038578885768017846463716564674412895500779049792010343987616427070750385795263289341795709062861359937137742416784677458022880008584958580898633107627539328797578724582711378700216358718287034590942091824166200383303828866416614799790477399694165581740561420404614365074778433934394502590813563308330440493776379858331293757661048574753774292091508558863992820310113430057758284356887629022066090056137867852114738353769730266819788991135206778960035861980179402618175416663565123608335212155718251091217927180622574378524714667055235697611323557497784481818783172771099843008891222838664708786238202769937760429071167919489215386966219604139319698779749537039246221194011886790386477124821139761658049047439654646023965666791252835084359710392820270359027769237595859362902445962394558269937326873535892622034278345810068401510892705842820928571339996034061563633182292841968117649777617579493318425927544214479996380152868070970568714008418860483925943184429769506136270661787838817655529592171373750482747787590488605999218276757269515572357014725949232807816504398597375504640588318840828805357650982369782731930538072512663537001023349888779326896482745153950262634631585806480600012555044712199497484051814663655595974750061096305605819699295727782702343296684963940577384791006827538815040901080408689158469925406710386218818971492291174226496668524001650751862305551113454197346941730545897522509527574889419712034285380146389137174995357441228762873801543481046987002352119892007797456952687244545811234959559976756008766833216291454939555806189886562018544836991508517422057571433219514033866070175866721573551372091555229972239903879443340522187285426158138274688731722434360682051462011327588917177257733809166018382406209448598195053050432942693031694683541775856822506149181569855394972289499498290990397132079034476977705126485337449130904335643893854460541865193079020968896068916852566731944915449597467183546296514799248171023418173069167923184742789613530757618977741875651809703842162609496623667327041879270998532173356460628768962188960677111679370782178030951107728283504005735664506734988199039100049820618986590050082118158632830831813370538765029485541254245562013927328961344505823498503042383898415340165914825675258168918719030999786415271446629378775526087543068690023965788059480703372485058599780828848886173956033385310819164197652480303169375281433496001389238496190395981941432655541264534569868365426047756310506559626302368730488913885141514555490232627474760426970688241109676273189108515477370527711539588991493890696069358642636146022215562461776911589448801921291908563598952848996200769264867260910694903602409064341826922217723810510693443372511204690802613895412350247131979000889469736328528089305342837427215905236485315098309892314217261398078511905090248601316421765791072384360922165846995113634562028499061452644060719277718041576249669759233039327337937914292692881747492993303396833661072986117614914578557018459417143046954192939072170898107175734576245569724276513444286345043069721009888538071966364311810054482294804421838996188661148610807074103676748833312442340813916663885456245425893712517083767559302245812268632503165436267677483009746277982893136847005601197653389391365865205605786971509502639442145045681771136661433906616834713781945676097804106374647192213922274452396973164986738080394670099073157469836288620941542786829274284312656211799463609424694073006734874846384653290419363679073730649810449020816049364958373532550192513326599227811378384016800776469368057632648082111781610573302158760698124774074133273001301679282594197361860799652591042009430835804851169382458688813473602836754188684213386695417640734399708271306180831237275825543190903331427970421334966272126457543442252332338044758781491956678356424331991722355075959021387111579595007868178056194938188844625523640978284456703167995664008727746732413862988495023615188234683160724819853167789167752744678541363005440634106969901559443087540052642541713856357689969611790140422806155011685311689966293631696800366345231287613017557347590960666042830542898834180237519142802392527147850491724424511355810777228952900862736062794610830995420295030414928572740144214716155366920156041418148537663003139266959915293908238867533188852917970600516227487619592008448069567670906143602148756007792467413174442337132917121612256480495774065619660903662962818778314948851110622177532707002575344898224981398459916497530871583431873080831209783501830369982096182013703731697902514576415844980622369101287938086790446630300875068645401524318943332076789445792840619515447343017590147901621060960051899676051238526659785637724177332162439974681517736744296975032749400620205203110654076763391884035810743391604502044802152985815186673698930036297192895742964639292268687719308684772175008951731871313647400995343519954141089799860449104528357589272954212934082722722516525341967932349984492418789140119043321335960809653712404511844461270384869626053177448303843924291140739518357479907948211446781441951822149078097407476272997686587915404153462708444916467178936023014313905263471192211191582184625621366728390964566742633087775087683217040409633217893674150221256983541251951613468603546342692161638223148754228448886105850058022822104248538435072918351897234468581794932132096989572816627679890102716971284999656134552656923036093132070114906644724228319113040273018037753821094030726292224974302009978352799005645653357730248872110085701679376591171883305431570846815662423225656003238705988016428048752335745994617401126175220835368877042370853332037678639010741593801123902985650523783209316410840997344981425071933687582368257328637736667707279123670251766704998728046845973352755513519216547383415179405690885688510788176492949891091381737631415421244712299798690129969050685273062004396922542236677625463007360534724490287508041785423503342424428250771632651805279732272235818440378994000303706774474479660850385544554311950860241005467013567567717375299976649252040854903753033294363881889374936227218986208284870746899124613455002228160624703989774881696317303765914729227359171267381332282377852313684887426316727254659507467607149496967205266797966551715495078202992426859770962636781782333233020321884446914386899666697439938952922848726110119253000260971874847022187122141022025064016230235778510880731218707736367340903130602297547088985163703249366542683457845968457332572019962369823270024422532833127397496427652220449204917651662130970044233130372413138395784965903826944929896375265633991431972909863534528164434443356661602713891908645075636565280699288838055134360755845026105665326925198263462461914664427790810035807857344131505170399327192951975726693359655031174838417039978901871078089533082795334737673929932702407522051455590612972413721506272122131898850930557022976264552962532048208596809766918349578663312854674902490750388797962465146719320997963115352940210991593114487016180143178737102710761920262002963791808559796785509902471245921100083946065478117877359510515118616345968106637204437074636314238972912245432498570307619735471420804863427817373527744939879896413916357440847818176175900118593517578411210151650840795439586192833788053865869235125880480083620392218399587925859539842844494745822955456215329868996361496671300642536400696320864937345071959033551423916612020523772438138922225480604356188840439415685321770778973277177576986798499502205540875904271393727645463967392590118763889499520004835552486290747171452728630657751720542476644156808291355094360755567269756027524434479350061372373797629018318148006321493424397585519392848377810725715637094573017240683907464213384017145827663644860131835549996212352705297313509777670535429754408728893963177255771248482643906089764999763923422894766852290926522890259219137310116127428993131132001794133520591015658846336987969261803394445415462370789214005950370252182559983047399141381241995893808496094772235534407036973269447982532461977906726992743689410276816315532903538194831819957569811807902232104853904873686731829510104522017075247550351704090406400014343584703216182249281338789035055661592616821781734230889327978033934913876485480585815106053264096359064080478827744167914299172751441186740838274467219434040848032549324433808323311307346311755816692150640585768082479612295801055507063119151546551846355007409052323330670866838577998455101723185353654599024570480314475052447790477590504124440241251859380493237469400697962530128026369695499541712685635228355026904360682063763791270039265997889167852094516983412435927341607330217860888691200312528873993609577421133111083928918490205206382480999554637369069464582593214045662517057462341311995132302625717474897978966750622586101118264071347437358042690222702383173780068480134490896468247229496726860429069313955292352694935187855177578834079131758529803998012968672405788176102067474790402092017206355499653244550963883258747183217666317974528377866503874958161319327693116359435042142011265741431881677114090442163881684593647072938221829736557897984551415602190543188126243219719662752784679793253435872737988215466587594990415779563054878037400141442818503669590924476077691791806936481703185219473720702186590859261214491026251367971452838122857324246152465179695137236391537835117520658455585039503392439473731850853146197522147331280107657876247047949943329550637919016528325017683116776334580330568024689953010321558021464417937686467891675550209966965590729191582799366648115183457509290138325138261056978688378186943137221834899971382522240488227036142349798149980535336509497086614978449786606598166595602743862941001191470447488322073645847779805420415765655326678549932454374525448775506297712678034051030718790125533853366086372170849785767927378357000082621136035915959727717825882401589174531455660639379731827088237754268255880104882975173336618079144930900915032005696058402005308602385998026013054196428193127844492176825615030659566247540745393285507587246390983302653690497263373523853800413063754936582438037018332741647313319938580759098653233700117146268750651702478436001817060488523418206900001174807862945068246339193266422462996649676278358881415744503813799590355314742734176930834499933601931763867945275302652087184185503883726597112190242941732963826406201867490033850625751489402419530883543387748124573204249534904101406114895543293844929828452210040115823404412298269075556327378254029187343216408865495685191303655353403043509751581365405249084436324896267930725600523338757805254196536325210797467403892492280275388047586941614906853674621676536115340904369363756706805241164449918615871553525699784159887791122445408533153367688524013188439640889494803546158117336868818795935597653392942535339987557492210990135399703376890417857717270406018138649515769440764933720495202398332104985155713988236923178260030401610843151761616068630363134890378531503443053959373714074696785314023676768299581021931982540804138337827551745218071586001359034071816587709246008105065799678112887746020304132472832867893752658737715657894712302952975386147032765035146647042501922364634795625811921204449600349976503153108146665497189772602384523383660917034286372223341542507420274397993898355756747958765390092825389161484866414622273590263833633744832242364539456596006353843901416321951518518102244230554081177728920435398403425668800762246528155882231343186033894292013623144280043474188993751816610076980928165636484723869640752792716126820940684226148927577172928207019563271112665456892009330497141503143296615218887985356182179466984260731071725944052266003668590383618458319586032864931797893897073429586533896214784930945191350912693385361927839824944004610662637628482493028772556559608782343733348555450294392602125870366354867896823405948024881219216058466609422359782321830648896900127915472296563048391750248762472555540506788577229452125088691380983063696093302577273774783963089279448809008795151962087859502285286976210341087818404415537626370296729304963449227719071311191349755788140790333011742282835175487556311383322153021800895594476031824815856232853384534763095530700344679437793152991758249882303719732256921074869123199387367603902537761050034620047613761589007041399245540843407967011381740935583659779255831174391363976075505471986551344486136786864677596063428578020561387467553610720879993911760817047732400124392131595819312831511980554635976029638896275552384605241022775238899806613546706686905791828946482042475680966772811606561915813727030055339927755433426882392912084581144618614027910641390629381554368370190381411741045386423849505866765587584038118517199727022376583084760028644005748058821756912963256822646983074869116944951017945348183506125311271423424990028308134711060651037421313936231323340712355674291574986598053901887400526877591790538939626601331215801725711593217243481732789839598493250229824588742780750719190675538482758188491351220727697487494941526183872718714969138005461829950337609580335051777568087778509382903828617839485189242004366944279174494580875989111869498040617312611584677274085871916341264615179213235051180953391781881794598349227416991860335861842753592212208094513049462840431881236017315023947633625145042311179659187456009504623109263234764773647853833099654380808152865205165829243271399641464234621172640678028435388910677291825790847064054275696082969749594797154128756584177007521011663034485481946991654398691932880353626355521466674241220675824605077799630252575546699997924191230724749225843382499435101284988400314032985916732137649871417779238070945499488797128391797771330643238126209808887087262016211861236675785359505490729810281914696495160704279450430301337091186038842950659631576815391617653721518373223592802417218201663182945373575550475913670105978393661608629763502896702474595142462316277729667605671018828740647000468729724760045315234611873507040252804071344629208870007867344854148986900723510791345893369362080221833123348810157379340916147887955258829205898949530938880405931886460504595715878330573868330615343380366232653465900492241209298679328587003919899729500159451491501655984881368619138381411618536362819333730348964212278453295072958253229166842116180083547433525591879654285758498772930425724468392983667837983413096623679636636027169390493169688524437607275803773879579102704864805746518698479741553224493517158637524364528149400678334345035364951588479196254433675387432282429750416208254910993804520789930611420768176979249462694209081837697368901571129761828363013512868234405590163331956254211768725457013701209268341431497120598811450146585109442451337130155569442881111590274242655457842345730064491694912997532439403532783841752163203755023762897148891027965170572132703067380208626057261024461620149086872908823032558520785555036310464599416844074894823539637669685447462204943356095492617575953435487081597006256012392346212948121990671376318639337518640033235730264303387969442569813339146256430846703732699319386253970918918856826999537151562785063447254910917486130085383466183740716257326799958327318438282479488092183333670354217437910853318211419040338640107721932155994744897899620111243716722990946826828626533405908027504528624591660487334437777027986917189219855339693026829373161179915510349035660352513951358660922560739068801962475306695495580061737840761405123447580123080029553188253097993142124665917578663761944391722392748810730097257695073687356414398867687824902023633410936464378558775717667842591590149923683984852431748716559584410783774904877155763238480708574306034210717680519128186682512971328701694956923038181267944406036630503115071679769145890271481242317136983468146307142716392417067192605293586106521804967655696123565289766968508067203367775879796148584799085611468389214292034220229780199945677650709959800129686285189192333348802654482432334916172551817345762567314184088773014066909231042525974144314437262690069880326033458263486247361382843290659046052998881859329228250386587523881022106737403051868901739027398702572362204946353523110564704028321433278439383494282157929171068510888443252364486763974722523993141666193586238269571330921449601933645740935558891956611372806763346030236113451657079814314784481275287475574876332273046220699344410186801693152656502800683628850706409960010651209686569321748860615618747270622172997028989437730800469176647113421372574694083260819510631316717861823175055746467869221007108192697901707138287103433041501552684589784129855305004846219698942974184166512722414295311397070961130223652948488482323298278236082490936392444275657350253068166542083849939263805288911752949180694681094708529065508918073533998744049525310876256113840211720398720350434545820357880742504787785048379867773068966396740030733349836923959950453340107942549675116306498839209658185731913068894974075095071285851401662961376429855428087021555657126375327721715395467154173911297063835466728272786441852519377288316287573914737472450438420201045014290764653157627867970328365775071017080455387398447489139534301066942176456187376484614408797803472148471141416205638840761139693986168534619120247298281611017737972378257412971947473140618002027536503560774705398294693528351948571884640502346355960854828032141521445805828638492852195256528998422157261384244198294632136238214841214299898631697630016782365777680749588036573733620081221311965342497076459054270665958226041004722267596504735028648623071244858218430610410433014787171926860061347692339263055171617707827705538816400116159241723260993842441318229570542841500851770165061523030775300271243035336171292281758387460649689477457544169374366556515922630059261486129145125311898891410626799270896284863013654904353815012519348053504407820838217115415448177653254828263657270641940650426755621727695943403549475107560245730029964656455131492655498601269023703761935369410258204273853862749388873511055863300806298024452249851092107515405350253332662195733555735509606828607778471507875038366889485362415703374174250124321818280163591645935299086807144496407564404777593237279172744421869598621875868088728334325380547974134480886250030823960466019481018832430545031043657987432368752255610531493690032046786552542116797602111835995723268078164230559359615688023705977096462812210512304844988038995483858355906636167332097646057258314483237996384860609231467968329758121629110439645065217767473601866030693415266825180575232251197649119777010066757366288189073868834426573046496802576376871687069330827840101229938591367942310744808162624930692819710003234400207951025807822029859783406267612724070114481337317178520678168513537188976341938367690965831068162018336407925654829561176380284488893523076165219426703136272976481701982049296242912587388889658436332151040776948424135667398813046496369818088151260392604931769536637845451863457330519012882583686231466923849697695303103739212086543677250155285082196786284834854926016518819365309357078208773758332089014354252179623002797877715579297864373446579818661801779027456453862951192681473992000318707044303693105752895951495727676417883975769432492892061233964054100009569024146550643226054319933820842045263274979450947652766227936085015644092061698610477628860643795959405917868730276437732913688657954405137834814977051892809051296383917725606177762938561291721504654196561730227608158917774425492164339994224755536958731957353713954874911789462712865176111374410302137067810815289625162565604569904312927050628818694006336191919156457933900275986620978496583979165255916182630677520414362221190828480330298198086251547496337823355020955977509808099536849242242513960560863761489131049599983338540390122107689798196842280192139304221915966779308529188251712763875655409950544157787073555086292810380976979526852275677043122458137515434787220076519386461306827110662740741995886707465674188333832233134872119602056653395428858532152278554346605943804142199551190868460170553013770218453953401789252591624954081489074033330593477066595370614473824079115869740117905106462961654377178885196845090095407934760351516522221711498061190493781933392798381102237048233951474147492031172667300853315087193361339643144768081319638468889748824039389484666530251206884107066613816348970442184983024957424674270381770203916164179941063158694959054784363961370956213308523259714087905920826137831031982874566075561967778995727771502302068070510094143152218070085731368491435564913376884600601571338912680436503118199811576304378540847424958783034340449739784697384943987985246309342691343269651317234912100066427928566919006636276240827666062246199511158028898786337664220377952537551910301229991402710453248521075148079762176613569109244524569096159046537356525521996590052047121004369110190430662740505731384339949605988380455201278760203039228051317054244191731924500140660973627092075481744716181909865377511231397308723546780851049543521425110135971322463098771137214719189828582138561973664201290940714088889748777429354082352257357112407718682080141172893637358178573425037965779151604726020669928512682811790638442977450103034341438625451403881039735895801318281801011241891859116189496797928807678827884697706559326318135361118446183390555286735422322772420622426497801402744843344352198642388007608498292133461839318149469411900255501784169641174129109329069233446938674544197092358926434474979574379074477817371161219070598762119324464136133680407014215962936031824264137279328018104265820891905429154889372408055523009759301724987765103188258032680747116943377637616077953460081443196116106921029430730248005562119614863301484169250880578439595577817894033178805944205269565011636973701379630478210990327692683051303544328079109507813983963733522141937221923690730158549460859074499726198680326397973835764499564385526614800508031725140412720161372660279528324199963372318596815464855750928647060444537624948770187005465519423596953646997617775608513822899091156408439935758744604985153408970978516885573241991920551598633504607788847398056337279009888176001150613292923444174926281785273046585769864306706166086160046775113374585529392574686823914724022940265732986813230221890767183603240543434401961489036472611832296956051420002846000863724643135127463760085047019719783927876515086257752164757330168157225120264560404094685141218699775863594269669694908456718582130571767008304377470172198230479519019818151786408403454346272878460613510726966351427804984282702111840857542578325217027555280445629011630705876612151400674851248090259031165413277080506140942794938384427412064710577965317042190822536355551364364748334076788643795592285675575411402495004770644115427882003402029627025474190002763015463065407539809710108522629606273475122792012865880791105184901273264740087905839069373544002907465256656111508953211366567607547169116890471803609514239219337574943050294987733999171647993260631852990845334403260047694100486494859552235810377471721489757446435064539830313821972147055296966368662258004420943220217399928097003252610056216702801895024102160721775636519840638277339491686734918893297673791498454057720749743371990319584729838647018350623788664757696868483511773145987584818671307253345712325709138491846015153934133236080526263422890934965138652090549535191455233173848544627284396374546747112006448576548069906224314596536592908647449981100924846101235783379500068427909324687693185779004991198230062247743575300552776373179032135481831997378087676635789895991711210544505715877159869967104404370346490583160488423880103193801081453054057014580842325837342320308692710744784949259137257079617109849590148059601573461628808930493605383225920102019954482303521167820190074355848495615061928691357014232867023244591346990202547994688802876661182539270457588634914610584804018057967872808490910866634671040085858972969836805583851301990103347999679832531581953735115855785620092329043944892743806295588231638583626331723666173324737073857024724148165698893910120988057634399541358184659326777934916369394614311666252256496453063929609880101608566406525344375740941056189603424169340575941190377628509139922835653134128416994537834622731109328262987983105203167059705776830741071881473899333101836501414741222719894028317186582433048245591576411745622510271008483425106566537596954260575860609842809506408009545230962118511407316176012411794742923942301401294493102332211627387183011803395676992463131274434708421466036067464987259236690035839204084959761483751012932345461614987221371807100772294265324114796542466947568317833782104583622029304179519474827893750065398334287905933144759905583921490269626822505263645458017333895438473159527176900679813029314225476748339148931183439838457399046231122911864408105191329286336957500671210795785701584612530009937568225130705218240139998148180618257263285287893410656861952817088047071187297036764717366215983084161002826747899240263346066956846081968465273607525551910596309938993206718335641190387036593806060693670029563225933526262169441515009819354600262458101253496943230261738252631825972286262546770719976607887914809555496008197491263117662102693932783872107609714152784124300781130891293806385413692734587675362705035386681691514209244696980780319222311748310943461277261024064404939971480109129660878748493363234097439149466986871567582941035353813750789433144778424616401694888283711938089936839113998992825805480029489322385832972974515620794263896847426160584499259004150156058837975623863700891672643249222156822207865830227291410730930084645603516872443758039854933582326351432799579045323087854328612440443848152707521908704883600625148570826290300645343576774154520813003694905591101239117808744335520954654880492650216403094295939764349610853320339012402188259666540524864115471934613312506113867958231597963243059564517252795746045850968365225080750716185743541929457232152481133691270005030624553812798692870979162789350967898251711108991195931642251904075360136041063743319014308226986747582640778697723213783960004101838042591595476615782638039532829511133846435362251629341853537633929954547247803714268346481954403580448178827477109379259167830526171342249005059931035598703287310468188601226512318620415977036375562835867881987122729551734164788879117108474148987383711333248808503703810026802218425739233380009344000371843256654803793850631244719039364439088846877456736719600759029301638981022946972423240795062313478517764395211289587223233711648259003494773733921393699953745078897015077439900315393569975464773179249678319865236322255170056631840886120823950380993137426046956674610517450348974508476775002858999990548264728297138493009893673475469361720945925220254340998936997328446742369380172377480574526102020747026863173028507613403172289772838178391587035468799790527311598963457370633282533623481065051818073164792830108919186934100104125141178252932628487336377688865877319640025977452696360529957086539345709557984494039441894986390066440432598034876449696008310197157610124579010566995806253715199562393095473307038287880644232312864809071635543681814330986036710419317657480533713316690457698974278220991461225841266473745429015578423202179254638577905940752237782121233481166985968827957101400727854666579175772126095559171721407935033261974494763560843111316017771082032931236771365028937270976246429427078949514924677126058164480260665290903072263115035458295876741659447451181171804579461419648653050233878168365391563785809608777191740285621819779373407127797028351301201813816003800563539615603468938105185469045729503843818004674437968472997376038938671876972045612960432124115767145788180415780213937844040949374601438338330196279546069718728477515166607431646327308808290618068518563181620578672549414226286319444012453478254598974729352839665221047046884366063471216165059279332755831680926391506327338974840448469565860217792573481200274829356975867616765996361261385324542768983749301962651268030643119464406338967090793197409124172192413182282313305689330791742705628580999574457467081630155588772862070233298198521623544590643059596070581316517504381232800706441822744799870337944977272547106728812596143181821472926869442066012444110157086308630381478609587783632145322027590220190882676229036124490572027392076089426509138047698723854597532616893698797426624003255592311576130145263490557744389233991732105114292494384048592490280731910919507642782877767102183567113647952315416357291834705539570892319208831538572143462475097809129049220454922356484745604169544655506716183556557298804259241749654801252801665881931511764773681954019256344594273069563479610321210080270415517286472004366600478111459773566084951793646980090289371787744602227474589270401627587629736430405677895382753065712805346123711972406750916133848607049420490852345984942939211728948444227270703036025618187480373270286294397498010999978744292565678044238540729070960494815275563384850308619685080036876415345771433345803970541083110908020563866426668921860034825070975384524844359983143394143526716826491595256331585789390949122140349561037124705254027968152966090828938208450828174650569393106768688247148122361989167879199642592568999990974943290183355548712815582038203025579057199334015603358773233910668488946727648698086557036205362567485293393581706329128897288469886369670283714624433786609501518522446210298089063417645969797329496536976590961302397875720926555140098619083964911760595176888892953600584827270998778075850886084236392947329804037223178921349630174801429221180313088107774407200564260760888248619674387717622408409017073895181670303710593813972570832707034054856110304171277182947550794512781237816214775178277428146094307436481037222032654861563279031647072638912208875410640968538831314840732641336589014186751897975518461365589378034317921427569277911682059744132386402633407289770486033745956100144190073163786102482396923943668934875154654594634505615713937324331633172621148118331876354368284846954979957332344905119465371809238191257196378630770658400583768781228855791650454455565828617551529687182655050392012976649227184926685537352329783210153543920492706545606393946700296812984242984220141431724300025936591840139746605550796194035541816499598879368748369298993736969722027776524895697401495033733454506762543055616827848031255610999758955395303411940542261409467117031756683380017908126537575677518164718646490510215553282110364752812424973700786848311808693955428533169527409454594860977753600697408103755419515809173543345423489215842175512264868593797898186755805423442622834403844178495696128978782679913429761540896809468441859404213950171068648575717272980138413303084864791963391811618480558159120331889887418918257642877196161134311795131411866488367340536424153531786738589891234901361677527106443723133509317346115343695941849577109485556728026484908545201708630606716962287219824960911517120133419102774412921685506642675844423887449660884626542464256859445997681451632747306345027942447809099481436068827164418010715075790069443124123408452574471161064676630490397170182873556893422609568247654531802478937401543755588831410244322990892705796424851731384658424424939975393346181966362910688672831980245356998623728777624564465944596973553846474786347997789219062513559728556691554573070476432340137343700088983396698434713197970654686455456003081483745615605003452096522613150308633319501399959465698494066358516098533419107816613851343428095952491034411566811357232637157389747113649923874699982363882244802526442157262603952932923045385633997610571632061277789635784307066952210915702345498146698325319991511604886838827075876809076402342689555021128604008259613611615876366522976349440340398257000739638363079469153767090432210148653694558594498262652024763748274186904449774058269798824049040767966392447683626301435619687258092143622697595613405904630782167448796139739818885148769369905082527730122560858030765979399342978992180965327864044043216834040964986939183881840816618659751736893877815067439380207154745313345201235789445023490713699217511300008448298978345899579444894241359834098242668138998390870531497365911394961752407740394223298924793449351153658476447077630024860552317810642957535631377834779979296587180944208807661789026502348704014764685045963431899602550508658509268708298220306344830733074942742765979466855733597457507841921464413329225120594284587532646840851082472589006188952755877894224835260707321624076055183364181514485939335268030984412611955964993777834774149331085882573390616373271855914486035480124204557107929927427991718505638883837383960564749861212551713711917803287272547575197373557794903963629700738372742386707937178329040533363167703148517851222897363450446297759722836883604357821677998865088877459087592675420456991231646038360492650333726606602118742646039958764017090816317946790922895163379261977159277932906623582979366719438028200780302911384140264003574165874206853769245164016737323026216612497786847255590625377667436603299776463691627455457085145864585116487363315648645205058455388497591556929738011578693054123743129402394762656545796227820218948074121185291352682536030628578014767609062204251184766678998628427225685621547080900863526007726470497666587307719521282057619188902769291046832504631919035736157869110464233561720345526249349896327664520534828318566954920476759116843412987413725520708300447550387515840271253553347564736244398917722720895481244853259743933666019287998222564740585474768394513087445752762360553798506310144998349893783553981099027718266321331961380486561321123960238463260444446406148632175117202592040398123837235646015266798639969456237951391365388208930374353868574481977037332313101125868560404045963708415325347901339977391880188019464651463360535072732634492717426160814191293245925712156989528763783538668084677816854157404792928297127893449864389062976711380269064362193063815175416411913936818228482288303753278112815645544602214394187961541542709508494203918820737323475955690804367303636630951991104904410278426317692835930491419451139904060621702902791075609963759083978698413044546490126790765462151414948675235057761951755653086126085356792017347419567392023482977744325964453622948329368257442735665823980850272661884878044305714908130552407569536192585516673325702050483362101310604589432810285783920898629913837157754279942712630338101641431699580261143816626232486761778125297810705758572991490111712325295957890709013331142556354885131902449035588122062622598280537650323543584325821786435088535139123285594228659049809457555831452625702599464339859652820067891102182636407793010449804255035980962061271971082292530917113376810999522806363653804850626512724480326124946798817781944141639909167634599394037715309937051252657904689158128270232922581100394486016834814829118427821455194705863749519090563945900811087428997303431679162435891611504810420413335730901610338687350272979306539254885406081151978936317519445648737395187623468724939277200303141297909747050679384098128527251551260054886918971892070177662771551828363545914629389096320756761162500879711509311058775456883542084950072762586270964135613672067590996801598435277575970934522953395859675457649051980579785802340669804959966531710985970332858521214744535519204098364664348980202317391603156368772467382046078521749067046842509851081867188147243691623021458963745876914821294459038717263918697350850685424907726349405778656347421642835833670097041974218217193923959607498495651935518049196922880898514232215962174929614989912877318437343361210636513709570710904026694307372629815224643829200008270586218311257011993961958582921607350326581046884968289377717813203511609147974050678756501475065372653409062250027910829018351945907435182400266247167831500337589267624365846250311462739166249225184986793157966578421667373350615373897684779995934999555298645328437861127332389729868142918869607541063716901588102298728205072067653205081127739228251516715037678146373559532712904211025944890606298202885473149800258475683778789401994684645469313203054739141242042334970122142838691445693563390177253940828451930353985609479758288580456875577519101196438856611806596562515226813465809253615859387872748954736503650135619919170147411027263085193019940398110450048686340252242996616406627420065040545540776749468526271905468886617580321673570840235194232567363484081869273158295802706811364405972574163464548041245720317325219700482591089555813874306794130756868147024885705636381557359078364385207467682956837626978558388620264124389487371661860611969375908450804759761146939062455200585733706400921539834380914602404368373082383685720046059727793289902890899331921714645854297001307833172711002825951646196775265811342758689263398624175977130027363605056629678841055556615009256116415769517023486879928594612225767104522202845689132863628509143610853435972436205144827283538760453742410763640785044515580167587195083868454354282437956823810841773020090768118770969347285749391886975507292473180092599227149092844622027958016174203891872692576269551285439654360369697981687271376837526618857962073009935731698232865360458764232344371338370522835508493585408705161010083205244644714018415012735921444896602256794846390682144571057620427035678267195613988684144233707156867833011778648743861739857521018782826257278643867804306568069214830135586585476861182948787890309399425915112653231369685606129042419251194862203487961136110397022392249831333101293973037255178015545225812227376230173512017557972052268862902030472606435934172218174005076495691158895760378430220733221389409397713140307170690651729497653223284782742809035105965596081248160784707435997850937712188385913160472543834110317436813731001134303989868955573564772404366529099254095733049646066551965270375061785706173521882893062162349916562460931319134980552999030558279262670043531419208093238030806234884061819492656050086221569555906118035668890623587415295495527448079486034752089052784939124392591008250892213993636907553029676008533028442480440457671788459474289089036163215054024778144573216499805248808830671672945620899334772748220663748234639092820645372559315132619334533273273333074016778037259134097707702635388752795787882472443685712998044073495152961117879387391286246110375644500495425521379108672176578537412295301217394172647996854779539922592388619052094298810248369248803533343710928716561372761792883631682539462103349978139257392592269242161158668140682076069825197670438716055120316399022151385074701598550794021227929764159921920862651151530902076762190636835964174110044142714781166545937829883242189868143005436701263510751210114840579588498357431447513028196891006844503451251106759634728793674012105634012315178240144202733757244428220761285115026856132934737440411044797215938753532930582424693066496608285766696863693829659548267545820504991345232744045893391454033935292576634910847988842060664866876452013128486581318554232099222842747528527189651965519516665407480265264520998595182066581714162361039178963750285711108176686278695931884252901291618445274187431429621016691207618274116547961197539957966191555759645274770812855820643689192424616125299135210809495741846529511611331000775783266910647939219360178557042449037957503331965929931219649068982169088793866071492011155008299090083890020389994911268019327138282829049768453155154995117517235307662881022949889482237800932087281310605760667923197592035202354320112886128162016770255726197788196898675106163044777561933905801394680552092964450428093090541175139400877730014877008659980405705687129237301079943766104548270240298144397472109822447849786276990264176329440636449616021650614953236138604096264637493689344572546970415539431252702597524964706697068731641095790143339000441208663580035847885299734619744289982284816586120429231290414581078676526099188353339837454311517295740244751161627788534588023030205272921721699695590245020370364286389291630016902657988854900611993750542946320973382310129892197857713364958262272230968406712403804292086322114200175054580904792527746776884995880509108249431152963693486229876479573160206342631236948034130543522436095016549763448475500249333206624650013616931895831443021517971162776133195967573343082517544252697004905832792607902534204498556529185605055400273625968740335123185453504697438558310920515707583420278394488798203961694115929953901848966337764488801393400327828907577282190010880800610849565484730247030070012584657594722290173963213259831843611929987940306627467814196940176039259183158450016478313062438550857815890314680332518345126272162284019766977199870553435989553987006096461061226809595875163015372224500947097313292032750077812597400335853210483713355328845895365804081609424258789508861688239687688930512677729144488369478822626315198802228677333066295908030932179975391534043812044405197452315687949864690052328525439458301290864111322192453289531653938629637551023816240863807978026852369416084642020066280143162224474270558985316940865931146486902183084955330782699943733433567923917507399997648841540652273203423971642698814787623224135274175650906985301497563765791040403171109654110602720065119455413550254740724140639064775627130880393551722271453688066623973616677846300040953455542097107122843616753499796108211097810769140338178205719233398870686297756874639874212139615888261454652491575704483386167613982692931524668883207179188618119265461017444464724316760397109483783467656956452672985049031767140232840245104637690677847705893572214886356946576506804908433047590038889681654868571873566362783999449778453141380309332912445013928279798253678754687688340340037398946142597773623927457545344750791566699702271264624034420395270877748210240964076159071124594536866733877427329063694316385579432179634934711270379068563329279850369744213169448638167518343528215690606582799190983432807841018640996399927007422091795172340916515385618882596794460691868075045079098314640397895606141044982618469714752959332309930407320208264445324816215820311718514705880455554143970730882624767435504700328096249580520141956786724740852510525552468016895286840827900721267884490670446999860593712714863596751025188276677560435160130326217425735624271717095005007083001009888568652037226402679334415368588238875378347981216491639375355535153480102585283653958033797017082431051817861390691699955251381075647097287908616325712995667551756723599696526024670150015734141068969336160755834951924444925970291718906354735922902963111058071455985136617747912973243224934371234584101507284849832644390260849858294153637248671653730455650543186882763298372034367912317548858601062108128724211268762464255674422237264069532637705525969675498754413451247854010827617072949966283201826662154955236144472975607218994471910316001440638915734551866727778505979464748166301895268647498196576436322649102793542097385649563340729928564900461447540558688380531056204576031841875688114197287143284361191159279349940403608318278855851746308803901989776199151131881743505035462626877123233161770120104346242091784402110247383146561516648712188050302632455025150753847396125877853922374391814644625771349598530894192633773190091646607179062933798868432526560495946021986374221742641716232194078036470394458090251602027024227074186943958217092313286056740360792576362180001774448831487329435945930024128240978684673266507092045185234921558393101397986984536294136758447317638217738088292740382479619717400192786568220187625584032654032640793330845475698169212722422491451821533899802673760819835937514978179714367436680435366957526672593665329652225263038310940008789164617020658891323296863542791833746680333232199623995412876502786587353042309390273023552108299576616412944618958324767187614756516949429504868688294534929089314985966968766744140816947735345444525955611400055682686522637094304076894671304309186391373214371509775657513786017795288272669688399246099568387478187254345032838784337783411479586989669812440871931718771052659800762420078785725401420809618028466257088526356151110150674990930596415147717366923587906288947049453195656718374765380201712530294594846842822823102380755380907936516522494052647337907135336569715174763823301723857596468955252366416895859372013234659335093372147443344354302661353619006425397595182627394742842321967767154740511016341499525745602114067619325614982273696431106129622265302205083846288036611577721189952869240362483365767979879913840990578079903367832102571037210061220771360312691579509280342073363219338724453786359046081219378547201482048880685619013544774008635780150439201843719541063454193280566969256002508325437606981530303880743761024595912819062815553856912641602926539003367891838843948493912400004059203012081677375578673446147913549572237180501243686290675870009688123757633688906092298613187939761815481585154626415815008461474263333554603507139231785744331773587606393237734532787551238119215340887831906471255706138071268642637214228553599191849935332479099771865483782780609356446398176841865583731683307971550423094159299914818326380907464930399481565974020772662722295535945057097078444768847869770919668472955986476172179086087263281509618012865413812487967555356937146548959854655989002274462280325334584175594159117777039848100507374920756083993772075141910810848578036152294817464592508717351986857135575659423049336314208983348775020547879326892235261535576302589660908327804358200673795388304882925723094016259800177884175074647364568432692143611788364762222966231550909264663007321940406685847180363086866484907213819759958778284985239362487371212775019379332921434462526098915898488567892306764117271434506083631897948224784086946868208325907326141945131400813022845138825514480286883410300145589022808323103991163187802989029080231912978737109296834366998233890967007222678917029885642623837030983630734826284333231456119374668911686351765007591415264431682165612601446589080467654942679386941204756048543766193188437042718062893454412059169155900565917861453547995585400461997945352061618443685915473435771094949026831205126934589398890211814962891770537297847045508293149139314739365706165844284822540741557945858293329846363731969102643286203302906983625421568643325792685275316057905306004230430596346598902415388462059760293739713058007040788112354918888695803461154975534181371928475086834311290443565603842956055686863874235861353805542785570187826289146037576639390789763212931039584252395124343802614211096961043197448485951081408869063795809361430532503744105222977658520653268892369381554591807750695125795687109020859462403032577238624688391554099352811194040743279051119608037513872067316545729228068507778167975356989171916565032097844930842854178005163440242987348194886920796264966414067271597640526489203384555010464058075917368441359691342154475768785394259018149969655791642425637049276532307326322228858640148394149563192360570614769718349083811435714070227917740180808205117213162310304324998077794917345046761055879662294539806926319723171760982080222932293842223234067701534857350039360877982245111661038478432457459249423372023777355683111550495891083531908580889929240965399631750451674683317173963392682617620959040600349335703619640228080308161123171776848958291793035214462159435121107755920534512950868042501098480749485194630914922617134140763128525961455193260530051729517460563013573086292616175694767633312932736197777974129270408103471250285143572920541727176831806446810981863992139265544059414913753305114778840335191142272741359361739771202578473805826198653617194944944677183356855999361096475186789988846292030249001298818307410670609019988590224934287450452114729186908417152968584351654793910134052531637200176949207859772785615931663419822083132382947937540553325050464916344398665337379981557483338810285949863072606760706621397637135541717383978855353912453594432341608156570100801651753796052190557607640176481266620666265421473541301708082589074313020325667088022079503934753327029511719157182622847463039540516099404970785962982394311223679912849824172572563973423378537610854304756946942009490188062179503422995425726074351971540726065296154792355416916321341557925569418968183671612722055870275253951221716838314507171978431096397292799419845564792058638104915404149532972108516307871357876711188037180564822358323309352828395348052222276478499969887483632217949097016130298817296067685544554971295808985520542235659062100441488363540730303595408928121624177626864341802019022157948105342498697057987321436780884557686225355035625392227919060237295599941339154796385507681622573387552621260292477042437808190993179645241654484963498536086725300979033773039452802239408690080753481428437178242517697215426438735955416223287528497932515936604818453949010539399454256590357093184907007538247079171351435617032076770037942969493455400828475036765496022074872770825756402652138982430690852130680159500278662317618817445962611195755095783831594421173813391241333567398439407274628311884049944415523384062438665345327154359147169034994842579744281740569203889258542363075886830188118472317475868386314978833931604049142911200452441280762886863066240935982364980234753182446794117702763534835870625597267655353141150427890385341338534244529074535727896758706291153747780476602784581661507933650055822080334861404905808760684835445976842628279672731804378232509103116921898521674114172692533241147216477728911722530012688024512898922723992850627524713110191177482154069511184535742029597850876009555265636842449557450231499808554344734677383155992044902949262003295578228226946392787165351548188077032380113105570625859246230047758161480510914810961736875787740689522021998343608981270893371887251472692186431175004937485028068657628447168883935957065738445153748328546497337622738042721689883397970290737198466914136032643861757458231723127717865445865565719115975550831101109110412768293892564770502327932829924387545122840811640803442123068372025227511014780955431861687941181835133135518493249923481856446025346278600571770717275209734102429696811604571910114993204137569466962437572596551221019288009374141026438689186571158851464281624321865122408337730200121860410117875171395051337375526059845102084687188827207576191388140242733279243330262411867753777026546535455713923939309844195415711645164075704294468741873635941956298906200933663018913648549694473913641845143980283683991415057889036547460746574415901987683023329603635265930517729219915752343618762362077775503840902525173224998290027938636319554581006791679362208284216532029597759059285935959187651346117656756594439458712431307140631661808614614791335758964824552254718019288409696713047579851566159077099176820134429680494456998791622974422442654060791634140644015403970073889406628735987878343336430149700813360685732130375032812409298005508654063582948928769560353629966545859803360948216712497986290176593511961597954149523514690571842281539517849912202389923591690239634387902137349752088927201232454948878448120130061268054286724688451305130406346429934318042975552055096050452805083199050348568709015250628209688354722543391666601425436494736630990822536561144559793020274637901909141958481583969546640858505921366530307255401232505114423140426784787799311372954188347166436993722908163756402328819294258224999358714777550483570447405503343822411148893298792545038370033172989251397815802164120038379095549706399306024971532190073986722319411560676157881889622800470744252828365771137364793895159457161288614614196088028204275705140661888649953560668655705737651988012098315104931129310869566827726850279552372682271312665880494170273069290926826359094259988660394721856157823186842489546929711717785452601154665406069983870147612182058705327816249666470056570689971048222077828665924955159156912746709756450822994723387311599049443457749439715264890035107687520202647680995624067624232770239735541550772811633556302786700272030608256825344464844412731766162756530892975562289745428621552294469710051211509534823680256524114947585944199648695134974080144999490876297758034980758262159373998620033759076806281276581645337951028212681895935239870432904716367210182014411318932847676213201651145534211255016890530154554594073321560809836135661269164294437219340381060023761115440752114436545906200807533928633642650638643917371270486157719821956413518095557287201514546771177685850152064034049755384476696028638576104718592073242804112968102130635723434372937404972677213551475884164808281179615234567050810799341316007015045771592510543476423980681088553364447566344245437023630848222451560188417242455572923408018458993946056983607055704826136777984974322303653332070833105532325541502796086562973575024542962985655632751327578596319909433670511695008572287554095409997214205520152035872183322429722377368175205921450047621202287861871558694651067847320169291504052947128639573859987760124025353347140110542070506204577607381120417327497506225079779971124119165839157581771715730086468284631795255547050195921780507844229043705454638883907506965869819927639355614204178193427109581778343638082655451977571815656754804371930295961717685498258505126826938998718554005584948242100410343831334922924264343789605873997317922877650349553066239080999354173320693964745651002584359219713580268489262257849964741672937303029696624502838974340861058178383758535538148543649490368116101769912467301558682453655944357697989583153737287921314704038426080283441484480184047965781846054160100517940719348125973514861741452675173497503494532391645506917594650961201902644804367766426961043315864374311587657684231377571679080012595804564953245213091486010534568376960490531211657165034537852741356803568452233859312803815511445906525594615817674930622085336337426171743006886256505965661108542815507633573765417782309302030038112488131963783998723909004691379094308117785625959998006065441553875060222394967812408908261795856422570950996265015353701283174814285786025026586431869805949092722366242505304893842655004020866613832115587551581873871438442124446294180101968233806541997436085012964978864782149812094599394120776106644618364319479994385508959641626344845418365451610963857021306496366961231534712390294416773211222580339470682397432304918510579218694210781204582211913674647990601914657349271248310070069823775763268261220351004655809262411963543992478914929794201432230098633348883745045285568102986720481361042333540439602848005106701918398761553520188903011874140766223750125926557842127069201259501512738251699072129157077785683154937701941258206720422669407570842956077801318116706857163657362645891686454597388144449774220086384335854539536480678880746431802827546028668085613308547291315018529160568475670884286046981351891590808293551595050845936205395187184781027211752013585879978035611715364854939058822415194336765900242074857381164270282061845820101876474587453613288332337827078857499788969989872880952088046758783595995879412079483126381916603881721087206760435801755114919012794491292216058052364172532674763976695852523751065943026465235291375258317056027495230322353913488390863451436572143915353048770815690088975079899415917553546328540280290307410440622277564411027911286519494130998093956974639813463785593148623460557507180713180174095258540508315046926417577309761296153630612680608687095505507417256899766687535101741045328078626359930532862336883190973679913275710724049407571237819086800164277294709650446395612522595387261594864046803977671266829839396961584209254953287502279633867090599790560068687303429194329317640377518104165396680390657983524314953677244923830067644846185092169395665609542015777989504803641279828308040546721184777956752528637661428394621177881563458174229082317478821188021638322531556120368393175949158368861533935680610970867422500651261050537261884525882488637491522383329941652317632696748099728097520021926936427183007458352419886628187549586419062897964128932507390291019137371221455424989529870914481323509142469306697828494628123509859197649722965222512749624701069081190467914252103087099777793020994538839126055762314738588362099954239451452488271714545951905244380483359562241110780542356147533334020237393268889400661333961824039600725118126669320852775461184431724894855577345914896721230597588335661474076496405924179472902875871729092484033282085213854796713462046470716136959467139192574121826957960273891793252220836339668936338686623138673846314597220282989906816378415551384331022847006750713764320592194529503434088888643600805813756126514328660503809391792196950417185416480385674988871062780861619129626897204647628981350000038678837710431353599538429144729564844306676781557625414439557972545016122318341823839552656386340299301143809794804305529682424551521725650949449373783939652341646272111876934271261642972049036933074689368653510530846389260150983504793407800280891426568482485987245902108349879310590326337399652361877330529396133935489836361801424257375338189662440383949775354347107655756043424318247190849671229589993401646116594609188892337644074947531899854479105644906073419245215966035490110239799608316060625189819169442011449670167301360212103886355009123632518157793894979769860231607696190810238798319550663285013770549649042098244824774304634997375518640738107105907321759636949556353541960424299880674313793902065244708673393820380873117812830971444371697847104308329459684572441577238100385670155853534759942753828940256355209111832059975444481908533320553378763798980842817188313274872780445715480048784531202105655317144317326377082669174436085839294647375679248882411759782590234793819659351826539166100066735658109623637910962036453826506483772156608157711995393945895499640350324183523182419184835399662914929057685115188867978710617348356919596146610315955353712838275038873259807793885152690668135949947719513638567460808096645402265748549771866791339746101523188549898173471986136923087591782234639729364223956935099880289592725292804345501487795019180554299474010300191835427734317979499456161108714382034815393646903345666840248118325995062092365551118141578914251839436940116499929668964266961099147901160140932779031994341578027640269589984818016156872398663243736737884379683123067768617561275237660761942966459766429052730233704946016695221556735030734481453479771092257490204207581047348345776724196568501172303955190679446501237137457497819284175449338085942672820964798539121466474098308900382208240079902086782815604903469677932884674600227432486287903657535112319716978658298099839804347126442962746690359346523810151218057705289388516814395301025011138827121132663811643974659927467274857258352061259306893708987905745421487977250066377278019418569181783205342600952561564750398651035676794101862052859962892975142544902550490688790673864846747680831288477976587449331408821960691673271029678953481999352831121038403743396982991735011888205896739858553244495163907481857371426228666310549779114869464687500270734241587013529098447020038184518863127362033388821736602110686411286154573621845900187722516348724783817714592240912749868625453580491870013014217260322761541518641162949308791753510740393993679409982908090458301852215790475893904270395109513647091452021970890654459480446619605268022848026552735638739767343346570750121486903671192755421268668129495195848348289461828407324164217835833176190122522003834173040035384215983186933914964670624715663578008385177454673328984333645229830503399170330610854830392050123559213193088162428330933050750064439729381505080209430590832352781452530422664309399330603532453073861666601669946623599908941640942856595092419193573002618580364173120448128794575311626487339639907408769529524059873117742278580940739260934084169677123584058469511879789408507064248502510997295527565685569955895872933084411644001926759296905142157849047841612429939026336580619805347680179823699032685984460906443272553610226926663333735690139481709411423458489595056213976687649512914643427097037340872874431357209510242032943465272451249084297416416459743142197703794921760634879276286344261017804558592748290478221470837467809321962088659481814787358492517945382911077704445599004271106179099995263818765116029118432292156774849720214119974087875685519377458779749687961576749983861526494023719050085333231650588968421116057228194046734838509871692439399672631157840426958083362133753742900047297170766334911249845852723275217472669666988296335778054952698297609259981205020406266848105530209852683936594694223268035937242512968378556898228901143018792391990349311711526428063805517910233842727980841946758236750660701875739631627583974816849034261161964652364034514854101689774794455227442790013477232406174722978906478374398761741249985860763391898163112841567817322191619400940710610993491528546249819239325393039601751509119359769606533966454342945151480134356691856534105319113746830540607234087871338065496589602824253715435487372771436459772324793684506710555109782818553882505582705212247205618721273579761387088853082067367444385437179863805274149277991949748468432625754342541382108846178952063614495514548346661070421823577278934339408357504723097115420764942956140967495688045538308029189851563516890575831289521253779396210658042536210336368871866389120951686709746893698965702858441775472198451561630227211492369563075576827188612336430194864497463261309107593639716925452634506186156962605285644953630511445100253183495229123889541101337971007389723481702862632897424416358848704876245004626227522685712788964676310730176159868015658525116132769859674183293361119251815888842783986336601726256835662762549398493217184492621415869186160348120768618001199963526796605193788189487216431930431951099271788432687265134369720210337979591866233504476348366663580511488990552127184095883377776464309670565785546334294505998101941817978843893652818548497830933105387596863221504722955414303855719308657403769895787529479496148729267543914206451059997050531496632447338323999181600247800956443840300690633562736962900544240230546690484934767507312075718983516996393260261858355234920649561517459793325356462320353656771396893837185945131040549006733997704104779424318718317556168288852808667506831703273832559430254421389197894920668932699445288119108877263213693007973183067309666463859084166253904307662538193469691814227188213058201958014908218131044248869468361193637280965420298462417732316365027558010289481124506240612423564013349075603530565696291587287340849884585797109783814474885811073895865262612003695321601158047704721940872536547764859037299170996331534493042457564337832311966353095637588616930513831483971506165638895407162859782773515669143738340212316864609035885871773097734623580272325959716625736439005857487251594360339596680874572124564655795236303282343496756765627857124303838614466430386163304786829520208702379659501807355143599811992627580525443314064313388425026124988375000081514891263806547631542399378308103034471583888742131971115392539351747452548311282947772270664691791692161542212797177497366034554889633588017758633231344122997906499817450432274076063977401894999312899611948315912077874561224272559521001610850709304226132887652110602002765100046824942926959677502432037938105681081409153643229441065054616132061277298441898887564271178078290019140961192052796312100691914757505678613117693223469451433923137925862213901059529951948262617759597502687053589012335963894141301447809032661448925134409224642993627521044426674542696835322125963779670220390567359505216972632308223854223332382095076079172647804485489510990807848348925609425024015117759519144747961702761306425251154292416131352792926396860257517881475089258309175290790418715570482890020456964100328978653220476299151628235229380294655943764626316622379971266504264246025665459974670175340857411292994272557923877916126156698337344208529997694336646659013999707373520048519548991453623988784283028869903635798948115629783933160192415594203912088620983556769145042765372603284310692665547707693925817631051839276689338042354295613617995496291069111544575358963822211623398831778590095570394376154953101434698914776409182279251691581684499257487493828517584123736660964488342967013907780568616780135734273956074049821691069557697793623754897609576525812951611293492003249608400105552067496773472915711058736840553964390910464311637773967594683085992552747447903604209450989487276505933997281055325839960339715048405019999131181612832503926541899380335740461845277048635649737888306109798729438154185856402627337408177243368365501406311989156453229715071378955199388017984650392156405360482638189449310423655236257089287322545928148656767530369115310949377136954630826203618109879489395286915319351706696628311340474103203484689721360844071061690276926120230917179324396022519301319769564581354637604133294915144981113299256117104738413925208192466599913877748083650590257417102154089089763271619822191581201663698962596968466798111588134743355329973495371742387707372187604695998286024116696293960172174467736333455962831453764135147542868999289321101182946704328559490135030587828851594270809460376931612607517752097390657894913221417561343089428194795202788160528668313268257980222925397020364543268597051117685884878084959905711526063256001958224996630631925072770818568965162146254617320523655613298752428796163521810806162294618497047515726614087759753211847341082640747558379437780431330456808078226028537800788764801785551436354225379917553254356510081588017430940449266937345085481789269573806460100037255872631059241884667060895363717185885653892158856304131876850686612883386490061586421078372405507427182668868713943667398447894907994250676242220436231524692419754611749614867263667008816812419749880241381754545929586017623405565842182134093506931800562084433422213905155935883278197886671062820556180320566160736760826168501887386357933778402059410439522464387512461221132027353565193307527811117549838526587228923549432515020187245663325187226502467892960904140043911837022461268172816529524910131059578711531083812785270924517056214247339570565718803076999336759987928375440054102106686661166967292223560575526087597189984622065546855533951605495711240261896621848412055906358136913251936446404065813347541170182730924681510902341767173165793456512898872006298398956253473595937698160964489732882648482383063588252697926853768960089634346308758387220050917706929677297831020624295229206528752474436977672668175288945472513110536666757982764854847382649085581953040570765373697402823129822767419898827383539764900567056889810943684508422969542255834547210695052124951644649289309286299592938176571018894481767951690783012739924711607505316387952838911554215335978908466643015401421899785013758775086204681512000791315748014522161618237404584042931616143349885295213883235376362481006492407863140772045783640550320640832780542259021905758202221345232823220134494175149657361008182543405939252726371521367312104098943093808771578474399372443399850224434418101012543601515497874020465282141461151253640594243920587625088906714854739192551597681582358448818111387186421092264266773115478763375179742088247600486211125347852066931630805955319456487852024859003276780917294772475501954350693383796659525165910193997064280365419194798133802087323131911010259960717449502663000079474039119716219033183490376029647362022501111969263520750918260798120501262904008018937673668815718130740011067090666642324309339522751322874838992922847126085181741776695488173522801942317017246378989585977147823797218025594907069114102189210459914832597793130998859656144197536222212339389068528019271557799272476461008767170311948695810016998942869793099805603250430679853184490361159408628582387269693214255083487966977625053884838773651891376296515727297169469256205492238671004843430198744998437995196545904295004585291868297354411512804633471418278027107136599313475099509675758976678109008325020279262760908102738201289205154683821867806811181927183585679488106857841637563975562871112912405198167060715529140878696382992906069356293039319366507384496891163215710835347428633951752511921971602388991194680804567068236940325954821180803874715974618277747343303898704060851713388962081646564107356707309724900684650681470079944624427200218595191319255346036619039875688016179561589957488326441944077189353362420882669370565817234186989200338723811619099858146041072962661774138695163094182500533423635978157423109061559068508908351343193692278287937577843966477693607964052076938856532790777365332115529666771598471242905154003343157999370272919606822503532218010890840469920975553836917623069124088769453264508063505856680159952868032650045751403606054121698244335811518002155254485094282944904157449671225167071185257062760885516258561159847269321483872991327234677296213588825631465148119663175187942262481711957670607139306282639395148578251269946423685980693349640007510975338955046093836445560807580700370425505133246241055478262525066241516719436988195434159507458191161278469588144000189234225886837939859008646184666458951324005393077256182965657797899451384276602953270296336033553572800241728888870250499482363692837782780137126922970675054476089127521578085903145378229750144326183590117834206790374763365187200254928489820189517873809752987039812752164325370237829086728134955736406492283881686853837678724347303771740100164364867739717106576122905209973955400952805009565292957159220170019137604755454184348946934310332062177599469041242601089835907213226888301970292207441099081427790171996046325368073115819501222891559950504397887772637495027003020351835126914178042295012849121681501593129613803233684903652947568442813535697240202224007257515129515044185368902965208727603140107406853841639385188091110487571892203654374616976259599102764952028434735184585238379182693001221871854045968852371950248740771647986796113850190324561548399596113509302650492780129783690208563576242095783314331493695325151183965895488987575767999204863818197307364705102518944011528375693488000107491988853182666859274237312892405393743640284197370311349168770050202818470213955394867373050909475416728489447693233273793222281588367796215539628448168458382804363750639871908747563605594939142261091416135778656354378099525954225048211769697568288638404250075122918018773129033204615101660447635743931376825098670458938210331754599916816216257613905991167278671848968188180749096584534228063748202718163268029905911225535026695044873901568415043790012713908807210331417230459499546794182101901022423537615857663785508537210976585368953626106186927551524490978191649101977642205161749513840722574659344617974211911921138317947304202676577547661784592915561674589635535578000996758785360018642521122987305112736263946253455795319560660368321502743636747561859069974441070473675893924346148865813353651083707368138626022410349022433041285896069578099326029809466967455230263988189796870410187916614215076819048782523169278733957264425940153556426209645194028725715052931991080988043758875952169103572270887602899809291746075683631640144596444629754834990363106153188546029382778018085971012837190957632838375654354366640338659861480301469825098494614319786320301901885660421630736138106549455087974177775037494298975671830573634069281117162434241219551587861714113216439006569492888479624328738105933547245793314547887233752554208545929603549440478612846724673959789085995964221073492694801216977268058992101222832324074097178025003648449262535727198600591020446908224397019279306666127995861467192244312742479301729434523068903246215834723299752734595891596738390872127192004043415333872403460523433736009117645081407762615161128323169300831753733390826855882040566962407466673702065586758464196572318981073052743598342446111065209659850681053806287599498838308904641173786943435407358339477086618604676572746432976574129730630753196307929714846842677634209725999156187193530997145381176311001821399956331468161579925777036036531031590736293719276603087520806594827050072726230205792716347750538006314199180500915066518040082302578700843771368305260233128196148764726367666244941487484167249779159662618579712342938350246059353281170302864837290887096753302453707817018398511431614401210821815892817884698728770507036237092688303151037637408294646447341741591934172679373674555649573399482085730334144303717589696856746423607648123690513450524204099907844391726173467170454811252125036719322295978245180666594490653718109338396302121730538319718650395675877161826730651026450821553092880709009550339061793376689051653203734613527539177348638123351257546796633308255054960449248418000122620663280777977286315751337942537280071291583063483022211337295548465825693674819023381197518502914036844828695430763218370515975174576123119530416804547536298999083366816612591465272078675960956726243664991152010834894282377796394510500402327716602524138806744467496603250726145977771248982628254934944299128592212529754958625174169051397189461807434735711871190780630951532319938377394311585228279257772697476487845361825822015173589339118867852143040468601680563124736617791110944786065047147380167315586067751577713803892769330363913062249135999131093737668782399444475503010698886296381919653358648946974853457908231676653342987067514342619426946663621135742396238816474259154694560309415801522450231946703656091184348576767405992188355184768102100022745956363094548889768596149396659759927767538102709043767741266742882073618470618137547331965782052706281793812414388942861400657538183210236722893881814157201946320338642955898474093198378895774678963109274456717903045362900999541395259502400474150174181844425830367937432449750836175148171849968501342185698871899911463142852375745524147056207976080896257324289708029601470328740793684856618915031074980148433696274666344366279384628797814734764553379578494052620427779658683637203790800524663270510435139902639788144314116815361448369058214399442017305036159346600199705125830844808223662843717188016689145762469113546579372655097995059427994172205425827191771878579910184961188428134599492355946792039947723836731897249401211514369776502866333673049139967576691789700278452676485920828260233053816984341647171888570387547953097775108261540234490948249638040327120267849957076867027451396642411355484995145958710234025674220287601005218605820807308927687785696653830457934780990681892007627503505673005802504908518198397929240370463889574922218174711595351876586869573406578467364564292147971047915658587640446957677394274121810867951005031506922060739474222415857730413500057509957802755844675436399477121543463544207935321772701441890179248302399169027392364073422236315589102056809632526245115408653706969790051774744900960765075770354979812130386215607432039758317405765538187618035134670811645168127935841132102639584648442612749967656692005729368262827076598735594291318678286940402406260430634433784833321396338227438631886169518607231878382165909855691319455243003337860384784092640574512497522599026662430291898712802505048124311092074040189055860836880712351269366408034047243298220203082471752807927816093307205970362703717398633855627725479095348470144734940679375944127989318687139391866090729600174124086529040303984222841127962092934019149097316870406094059309681800499755050545974504910886404158224516553773171655465019915857422370373125593073171064421794310419541665200877379249783284147490291202271321435000254141242694614014734960112858534430260017119826262479219000822873177210538196421299229802258827416545775938094636151570158582451184579962779654243072834195630337536181842676628401797485026474296148536839882013644248527452735080961247378829010542029812622408279262147808120358628930550646448730284572533747764569066565446444512327182979903356706537756670647749776780467355467556403488965832283118052815222887876859890879977648581391945722830471872245393497814630026420774143249316104275065631185113652110988720908695249547302115777077299346435017528854135328314386808634781202966874200109046389998745732956557227098979619620797957788954485730558475587174347519664951755453079614472339393012230027480995862025812149458674000175559558152879533639036954788409909356946746612104024431279293216265568385978646718580489829879112353742844784483932781073099222830245739661529102787093187397543659422873263510447911029683664500856008281740828644259934010597304434758886881342934120300499935201395895085238529253789779074161460015253184797734738024288178823760199485109930499552635587822430942434094338746130130022025713714312497713219421580820348844203000765845925525703800878006906232693251434409674978980806448925262160122635506113350962830485377639491082285738638832517202945462924537647211809252122228187288685612524838740104887383063456323079172423822053074725124388433291474506461990007115670664644032566914532843011983080569841447180397470510791774990234663699385496053426391014101002612354928690271738320561779070408735147770809944868521316222640235754363470027851302364620495948807922412271662289625398185105782741980552446924972723387645531081546752317361244561683798089205121345054189785996994751226394334615708862019150630721299872907372236256038473903598719917286280607049299582142875587407847290407809516097409538255440370724435844868678335602149946102320710339351717150630525711007132229753881567087597801836807720179674519588363665769238261365930155202142071492396552318417414672154049373259943773869102952237383076573846135626140449100765217679633458194327816276858287229025407409492621675265892700830221223519152570319575306601875146062480999049096895124689346505924233712710909191633460615092850289549269402576751031655410696531795486212757974960840630144404224548478461374170998712732955075897815177962472081840982483089829065555129956451340406857152358770604024749284565059713360636006451667282652747478121744245180040711720763006642443027520022071985105527636002173964493824227319083580693626087905446808432988451186028266211744260995199261655763735700194809411080062644982248519703531829778368168586754420522350335962794355005206672171615459274014719708199606435033023727708532373025348341222571899454590004166494974640422015990191023286222624736864410634056205731569595795800232894876248230307674560783517816680272148876124559282953594820421219907273669855965608772240277263358316441034658469784382832600754937904825086552641252609276765348465816398820420953884264785935061238868147086054565590365922817166366831200355553275383671619548014886870300319196993743089094085672245626632705937576611505259205610766288812745113414719718018748587247132335017513182859952626410802995129162951293063111559870529735688882066880416876182220219915956180417638183894127022313700186180836521235745254305636197001986216920775312450879742205785356352461478181683759573907440954988316140887892235821235266408380251332139631073425448936558566742288882854169714677388682089179606582531433040803709847039702422769129866079703021417134403396370938202403537451198127153877334550929373213828618893836867058774180502040222508088303157292541410530075257773303410603641743171574053918209139654977233725277179848271458955573713119181462743182034898611947015385048005603825055623744944988985055134455091939171998540756687345396822787158688263043663811563430361557197434425083307699416777565475284051241304645044153455699497490582274423891757203495586856343137450315925162689478410915330014085621944286990299131411336648347427885812674973089920586912996844506308835704026783286974241116336451713565115809048401645416137766751229542068900228996554256548612589253878008524986829194683861254692945728081908113706703264242040044974528741012714710165696145593633092635627408738062372607577559403849539975472256976446327380620114664664408505017400175321854402026018580846113432490786650851309758430602464919498136318609898730759589311047188231170909449124839235940130622293137458287801784743956108718998787158933934894670102660029139775653973474526729992963044202108332181807246751110631257823437213678703174704768417354291078257090756534897940208851301834999324147620950704996969939009091551528120626842088773202316721423458184652471134205374604199443326511788342665703524271328257168790447706644952888522800203229257571319059985249487512709969904206642653270192969074474410455515960036124927431745160406680781352307088932018122862370573588238167722811111777229079023391375002405598552524160501443872037213517664768208271870328100248070059012088097948443644366675610381871054482286963289796589111891070002005121906051945153036300068048065008095145303156566546453488650453081139523330367163035402826156035260428720452206841661446320031982745074626243126416843240209075102680966422396674750020684715851841566022479289431563180404660365619272705571975468965504071265344586332924164939228251925777669974492401121734035320725120440130170549747539525747068990846722384465637324220249349964736945286712599481825469727007876564735149110812609271221068328799092569362338982900850579576445601353232296606913191265450797949870681173900177498181770514370921183628168226757302393033041352026290561695621225055018784094455054306041093544500984065690488355278468017876252841663213934372479818993976851858796293226569967031239426025435433791043164900069893400988709003757785504637421158017814145152847071279072001207030267378014530491866177852511254817463076010837078214180078301197217325964779333194384606125383147627775284036106010672968159703185927658119068604306403827871309855386227653874300995586413368440762117569676157723192315282258071746092160094082432849857395884495086235698828300225385319822258336439537229521011353536246864230862169822181451185324842042469723424932073570939416864812214746074310378244530999055889779551196572808704752669492744594939621311609703930333259079787507628141317754330971089448016632935705507714869880711897745213234484124409678400917689801902117711981933501704397360425188980360726568702715933249373034170226302831402766627687799550293748963428603119640841535158575429410286707377102359440924487534915440818687638248618981089173345316531195642357382106168147673368802114719165825758494383482834074207133291522517050016071669065266310406561273213361927189730901597928023781122570160250378391857492949665615154488218266375940142281850874418899951439407973634653438471119100170239659443277937431087144555455745299976878673998459333402586871616832908088248992879965637681859475797299431766165335609444569040993427795848935968538813273847143710896569308561625815017652412107289415683521207549889864093926465815540798159780379701583464929993174563701042260138935871170488936112058212138855940285769902874426202213106873252595506238041002907598347554190566032520922003947149958387469784236793405396943931536752447642687772565272513182238134510057683923908651813426495396288223641439728938008064234511614111286686049261865857931581524437402957924020823132801371770475496416314881663354922775585485904605280251809620236515865482794634624384001398723658844904509856518193668865468728983142581005482389835596507940763169493998120506407685529201575082714788703219117515417580244216073880883004986214711556814929991912427050722393631741644050739348129574947519375448134329650001772799401579543178825282734082711821592360863750886993930201851107564873537179295727192602042558777763919381770509023208612814155640869036655366190574426919978715189402978697809887512847310288018468070381767172335610007767193433555453768070023014932491717489357066613391391208242173120660697231278324999214464234186522881869881951793950990241543570738335199279752020629878112108763130169350043539966963202383724193183614213668027336331124584327581798268603036099740863929055557635924584593104988477299931533638227609682868981957302827449652904220186660945318059441619072521207917014798637299994451960379992571079162051073129553693064406305781751999121673627792700489511766250778380686602683339541023558426167744697011852121142549231015503354858938570268111683271443271586792990467463963732302173694260002245036723670626334961270129006795661527329068814421321651476324306585093460938589030550782996737895007376852276959219875474629498734094575270897597504535987890089131827337312625742471919221774313279200503607066626519943847189527310913923464718569593632751202379902582810690095180427832953170450006143844161201771276392139160177093916443810666180357423970846169334741796407419185711614144007281279193765872711284113133529109909639795280869776666642243419282088557474118644940226582492096407895593969293181556094865150397944195743929569549972553873558513676256783649767392489554571432366778022224458391242114265482437303106623884821434857089913475049438271326435282895517845042656475058275901171496340293278063904372569229240268699510892949661596622185287727605211829020208378224540512763579342514912311471622077122557787702527353483563259518862070065879638456143858629927510419774677083298337588500684793629313281399866698574558989866343943820143403107503016502386140926036976453900720864584837352268988472732246303857899933763226209142123317389913795313475685776780607795527131587420755781466175017922872620863525430364094579806545320372822344923013422037847914836919984318915418341247840986149492523659956746469673376289429809958905214456719184901059899755423607699989724355883856181508796724755935730031674851663221066187506164963952784997775410088677836433996809473198130658393380362313053612241748896438376711842799846554393908056646026069024950937775636296953967687300284789673390581602852839802429867044884736081357632237476491441084800853370023275909584138075215512422662634773857097662425480124712173469182680023586845559885007331376021062017520513817124799082955251263752836971315311139696556796453130928701231560813805841281391669803113444378795109825201609940322281119325351037843704910323416594897509655466348578083653200260581088837288271936597135621749463078973130185831746809045856084934402122498082622591131090150616749460922831037140515223943530507692748559231416236782363911680928862433540374447952002643420652348304632299696405062784329803140515961613398264215137114421355224024855029642913422580512019095599913104723990873933609205208528290407718841122472826103035467114564845022058707133413211507751403818347164714093967122540327269610082669285961936396444369443863077235914850468870926741887501750523689459389072530699141242346631918724282604943263975797391826924006819044614543149657198548396136904713198235181688109445134927910972546764056436309545030974095854340346469615568472907824340241199058997709282341619116931372577317395219983047030527143879198975875971455224280916633963352019305006588702900040904022558994210449424914411698729356985138975075121464726355435693371844353921120055593248781516444382322264359062010487582092658840302319231455624368299088292530103799192767487244014480208866387111646058949314220607275590204691545877173560092121990580404234098629883783069906580162403577266608360681459992241845298682054733795614218271645341851250462293521378189322447190744322453542581176963889384843831507488611067608668792448609550375939027051439824631810317891991954033308187431495051243967472159738632395587090919682867897773246079187510271002854069237441964209729862784554940966372232634578297448841473015338060740594326520969181762213399543034227776683807119147854793659396018204730182218810399718343612236209003379095781244032240549981653766369172933815452519142902998977616959923765093068104621474654597494836010324436700530937021096799624655334893879990679222418229210777597460591003461407404494577091047777090333229948070085739712771640639657508179309792862016778118512565781957201707142071875380051305478340588060011751502010185078463624735161738041298994678725499676205507972049190891865019564632733844933475161807212413865959777509445789292516428226356339039344797677961077910648011459703096544855931705491335271392594891908178981741108167230396723342724461427300002640021555679466097709845586912834146252965467548460814607831194666321458019970214322334975641114368023523408449560827785185397042705138449880432582275301663667689234937026663247831141443219528926198868251243140024812955214828942688799161754650282562227305225229999763658844285235795759298043688693377943247364296027091948899031834047929493539762373412641545186835462639333139295114298378286083414660340881514342441781332446049701765787108545400048310447093920768276811653345802356409565817648454615241469356169271529584626792930408749813433284516872566120892458808850746761296505882510102458492669645319520950212581249846928601032548192490373971076505755337753294349344096612032285956807175690053494089362995372803112409764603516253287737964092654545567060827042284898157507196950746177663248447548919585168391797452385124531097394530297394328193006689160356116167344874810961999368256843252401115375140078292215058248275834303984942754966985639398704906338445550141488200562777625054430834722576105127333941461698038438917006511273274582452979491205178057380250904708645305166328537375363411947984043937418178152788113475869828806245253863094687719632863360652478908935865077771844794084017163167107351878222812616787415661746206506443347284055858408673435318349037779152596880101244491216743280313578112866010647500009446321742240282852592056721477495158456189880783107358030383915104388060225282077310673067906084018906021687394996895878213451689207436699749932081735462397794648412464133241619844461420102446394595523539076862579292351222240175066903497692703356138362838678728267336920496956942076057077501635782359325187512343780219214244136800499901424593052753257359049157604889416533097693942272881956085553201817662836326956989906533774567488129412182496163825201063364917035003124745987550176516851764845815271053483691073619311774585482231857137270857038935564790978797298130247428876301163743262874489889939827461965507164998059830394271667004502065592332745662823906770784341583782965750610278177508507616563267169238841664692294411749009600268792265207926035105401431525208982477233810680773448042735023043067886584954137170519488784171475272486603470157649802722679133055680129309559324376383961018487001921435289033957641030740582050103643840146402970452960937809604860386747105759336222168158417880242182571175839477489626024112071739309749779200544764093143044578403511018312607820749313036100219552390468598625801638800561618322734718857888389443128002678516342615730658540548180606571106810435457861354745603387819608114271863545494712908610773450743658137699269929981663113546175640264070643750093735924426705813094639683333946475707121625602543850051091024319737401105184160337854608350372503783792517150152114684033951129142781808292868008462232725316764462240674257147303188031307539706400447045989886076059987719380761551505389018811966275125633363484978720315671775081766537259121810346386570210933942606232439048420589277601389400723786217813303689099009217871213777398212425124396445726761144417669560110725745463599846057076154371675048471451100196628375210248442485062255770775449717384729792094263543292813819429279038632082501939166589239574022713011053682309406806806173137392151285309951725910806664959206020103570516371433698210602662089049136008024194711640307139779853006887617830273761921543279922925804254830364431029657992112986759002494574524692981983770568658202738230207194289877002665449072718504765605301768799592890466761321586358482863348546131983281774273075980721976904213107341568099588081193345220827074694568267404712502560258803853444282242545481061728361246822336490928888428037353711716976939618213445952914603659103981831437564215164032281046659604035005609157520678859906294858821959080163152394787146425441431980662799587687481646503002870250644910259151352202028247971706938025058126479582497656615757356395662193073658985614604011140568671996144374372104722425377445404967608260758944969031279280018529439810571471833556177748398079898423543100033712194098309177244256555803376468101643892173076260637649784901043331844239140686472774656827662733653100460425426799351848843228690301367170238324705827522015535622417472306365380081912983881803398522781565811269394913806822801148945982233313673657613639791131487968370607196229439522349550234890199215884482181926474916452392690744439739120044363037560487300356410200405700235664435541537860852780223702769666284111182608281519691791709725654295980205279316371400707575703822310937189009440583063397044949497472897975093086341704177277269981501657865620965487748391139930886429032194623054374501635299647414176384631268759980730638639948689097772470439464279693488190619505731729564643724648058198941869783281575503957306751648117921235083103225133740268268709352802296528902652681102153346495591387395700345721108636234427408989357882804008942609083875278294585519815490115613218187820128397438564350274970335356673843252732475146501656791319546488236497106053976015524736791931388608809054908259318984231793190020866966332363074611570053319943414151537067885924293520507985355920727242631524351210958008044052467172973070680437041667082791599216741256347443216622854779113409651551198424296583401862859218266427129026645871059654777921321678706164170536020493855058221653155266710312854493999368488945114470657876539242971027129129482245115079763938270224768083166999923811406067960513945607211949201715274492174841739644075886287351373197337902228375488587687838494950071418895072909287565010998648445764165299124050923161195314536687628213023802461104394964675104493706388481592667331463017880980967779871589135632497843100948503366630983969261198671314177172532079734854068757387341992811966680416462992167762375611843643519031248042809448424113872459111088646869140845857650286761729157857677070171822396555525503444879435567514026076076747974983849294594912193334821292086086918955941489367078432096057717490920262067331305822017295085331046343167878036793604434520457258043057557933584668278696499939838083341053938849447744070584512331488358200995309689257997713581476066806249442647183991119972620606028826399960784399430380619516357320572635571926906298592989384601589176334468519637677147817655567547854349832853674835284825852821026898564986414960259645512643318088621986149745549060484903052737410514379807302054807937376685749899511306587408970551906551469261631780885989145844163157457646553863654882620482873424585629499110989321831181862110647677923692887967849348979321959554122418526891472851392468014004515075809660776379829241658984365505853659244620816488439957399706537211857693907113901799534890161343670527314323699082372631890191970818953684083811196656373022521862612937098059850748935067436999465217244375552435128909233513888906068976761006339916502233731528275148180469178966785591400519837342280554588555258891472360695135922509734403436544944493125273003822850025059753430077920571654309455695961052476017066542764505374380862373084074184399769877380047763353461967388058049200173832587856857401953490965842785099258315971577359595479674710570815641390481681447917402822126903481277012737048395376004517998156465900580549133406533736214483566137961740243498332875797581446498262264124728546256718084468130771876067162557331631995144898134710495058636827757232498569707975921451763166344796458161910003723438864767617831421962970524195952528348390066481938110609506461159929652932351605716722915002560022415808860686505015641146373890007060440398239395836160866334786566580169829769357802884512117252825323934981037007672861625186260862087782336723193918414332512263975698966602288844750874606927455563460404432270219708079123187525291878765725527912522169661450260819039288223099257219486742587059663348420175710725710222004744847375449851749310633582701756353545144250326002659965882117521565492543337042559354330514020704888111617714130104094645167223367825203930742728377024762245237302249648213108229046228164669446857474399595623723432145556189586355197326587624286142393340094092226873611961684549103853836864213232683386324151614523380221291337566758835188904912423001555273846572128962137478611555495786386503613057976085894170561482024403600576063583591633785741970304490131564682270146186638714599447238444804075496317678506939858968350824290831836299415050487170714213026339535546357439931441172958696152651922591508287977040480968042616458993870914405277990044379961252142479624829060873168559297784707714840183492071081980446989972236512290321836336836965567429512834772584581146598300689674993810187972770597899027469250404993352961854044122339875971279040005377389434970490500949858137703696193662823550393705101157380702589476839482872136841483741148633327986392135251896368250977073562260746955473739195197812881604566836943979196057234874396021881142630843429476751229789866653856550533454802165099614679101318053557597419618567196890340204707121227964688642466213050136023180282933727364445217709675064791116264323309149279481531091293481681040914945697086823230055099875258569221578911096902739224505276968511025851362762881261471917541052352910556670348282350051041253908865498128968802927297916655993440374510647731009544431918056707449607944271513475175072588705744400104319974281006489836447091585260455688540228413427550014474706373082245521768276210672297631503495484823363980825450367363851959882562841009437204380270896063940063407983968072037139179118865219457679654419118977613933499465268414744408759376223945177204118608662871301712328736344832933721783338582408881035324529813432150161391849026467016889666890938883688495202713814976029437245639592720408049482876171612613721537567107055853324765175854908138931150513150983429891584050766121888756706062256998588538560738652511246726676102190213451274939425335589054304952877469576681899571221525802865095574730441044705325803105600596405828936757978833279448630527487572530139242858405851314463724528185191060366326244835598414887165648293835122746542664644299710615300850455236557185281310568219415896397751250762357063460217082050559373783788920891526173049752143450389234733363310040583262004392529303055815301111701858087435222294944827390571568996335148585085207338371133832790330989872256373290811397108782970133525065295991482219632564447883321571451461950350534847466924773997036355354973891221944575517967345225218806757987161646441141474678933032362509841279781765194861678129136841323629060352794069291571161306195785587605522156112557894963635574083393778704824869194732329894890271765745931429312989259684665070184524957598000231807112261510750996938563996987478868026155003837731612486991826594966549147266886195593048340977451439669694494913001346215940547165605688167487922228990949714303419164828820058329760074168889947370339257793247759975147769795506796036887419471720076963467917941424111395223862601040302609367677432299377370331539795668554153065833956409913497421512809884326743698726879600502980982215757136595466177274184812816482130351038995280372442879278766151772525695442443778495938022225681995539701443019405634402862442276003818602150592643147162232396544847106858398509493344011135711704821131746236620318128000427267241813557334243669539566772350074174742243654029808883338919812865191075966235046067482228112527197886289304313027422092046080589106052587432084802707806800168677256885363536891696221257832466625051072113479704045081387837968409137338127374193984176703710933043450179860934463150821749966925336522696855250427848124917503595529385461399171138550840982826929625925057474276003340453110935595744441243032568061756364069615510351507769708741745348081680698682375755310362586784379202454885340475850276812361238974717909787584096377591647148996580502456095610945140535279993542436538277844172508535146006915180072390131353080464165575807446665218926578723566477476848792192319295068113626156648466961514933983003271254255137336868461485777745077850331153739661168746800664385371341050453707169667174842358556056249386431356553499862518000673652015387927331338047867306917457578080532873062540810074602121334412885866559493243116191503885560263718719420426691065940170557488844828965359774860227732178812836965223284598346975752913834637966026465593641823778212505369885612878544598720129789500092189623793317119239094577476074037325799882994091974959339930890793776395516093429313387953612574054660503881766117957821413530657391501587678477666372922806316260797109601045135471502740970690544392917155392688399961497847816079370988970117221202478994490534014157470797908040882441039710661772733622122499157690354806255866401545962698436049376061415271536770049277741426736038363418189641151116729262075987379527238675654079066658478436127051288972581181987422445898159063352378741759248615948879232081325731427609317934827039657218834198318886193878842702201757006624581190115314810241049112465903523579395099498561160299457443422781225193175237096114740620542638242867330175187297037597364660020188244664095776589949874516912065436439483463896670377180000407641191752978011042249795635191873872694053186754258200236773718647472298383334245366582582253620363870974567358218637400315809337315185344103210654664871924929435441215762860195692596328532456322953044427763184786354790138550836210094430888788875372831984351162363107820720089726892299889980087317516929650973696344431526562088840474056467374821739591444570964111486977217235447209342282640648263441152942356549352990656541790962619725210423527348231226936504849822864224119932314801394286828914140225967325101120808579717180689076948303438733301810017467005948120098776569517014467251281403654738270566998544182027816401660460196892679507613215768512532839116424015325778197306307027026294826184717527434593040747001833629735052023553196859153007631797303338157455684464824608041266652256752237910910709139611885312155199996358978243466714720370246543863399840926001662440033647152783174530960518270366422517148478147520883197084216496819442125057591487539522118930080767480065172655859311728532455266975394131695155924244681106934544094993580184103202509958113081905691798061018523965911125220435617475201889165945360468875672634617648783020522764313779163748517198636776975221453949712848223794332313110305836783284723008460834242495884340936906511822598302551067072450665771435826097526849966086514101468978776372358011204752438327601686941949859199305516976953721342876080469392079379348940547801956862900199737781225018595106846811902576620476715909545863170387368036015534346860252479594087989902936506119159682174419156456571808195324647534922315418372160732761344326099628911170775275991692833098647307667191528707069100861426008457523111541340847457472588616976356469437117108870927884106327844623808473454144479915777722314730165796310128170893038196405469198996375100339294463231668919496267483923857254798126140225244001026738763572229520094761776523816461996758119696035003282818258076523306107476186277213403490041613203679275189206729177211625974575262271057497175303363464345457840491267173725749169970806540840674300045313419694533366943441960684284483554482911461285971860542107568719333408741185142765764551532752630210268028556609654521370390570987745772808905338659935968181469787039599960275853464532897904152164467191964510592060026610390769233430538778870611448103171631971019903733900617751908378509825890681641471126711703537382466442008619784108597195769197485797456671239293643431529530494435920113614749225832308522140569249319450866737067708835408904502838004499047387004971172237118824430005141446773505793252766895980830734613683674173332428339044304241930195549885636814083002412632377412308462204292600419904117392269300058693245837895118334525153036941963596502163516713038016225744088617720366577611133633741737439892585373936029223065209394050338345552575133171929876715113129438277504764743496443546334811231689477006957997259161718227120909927008769561654444269522989022261966120713873839970183606977364397171085959533917270248310601429973758107790482788001956351499959256440560338103334767605313797015231231711721747074765943686276002462935941639154570765278286197809895742782886891821915390141802522252253837104961008774981884594015178882519825632846457085670837018806804879789757565043554476056047990927506642151684381105999511850672212357800182163028974907983448575290290353096358403407700010509619148257721059915732027588358744311181028679918328946405420490943144809692949426810073603429711564084196619306091821014808337924707482386296093527165111428929840468220631290395045568887513873243862852406993171138486111000106881850432051918758674335511302384032374519723360431512230222227587214053823739324084377127669994358845318782405686445815882701983747944666924735889758809364661951024771747828347595635826073388729923919290650552702769116668560529854318219938031160148714286532990344738283656084445187371620096540359526092898700499856156658242163668645087401405127216660393627683517519122323120926658950870770104734919161623038669294667270074409271281712622892174072354379087649137166354586050085780170766612096512414214855965547854833534852640774628829025365813351590531740100263524315013816565063005209990950258655661057209519243490389903058248733491471339687223957206904739725056884837365205129604654307691989264417891917255513538144999070570080637131538801936163228050965824691201551523983676220014966214525579530071495815503422809884025183871155058437802365967653458250233047053281508967880744053220679933038273123864728524742122943402418195779782943797107745813573674881695404367033138773619164583381017655451656796338879204213649092745650963446116323260022116584552286157355966995187745570835400503236721394754730073461234080916186581040210158624323703636409847890041885709567179850240172054799702077016412313722898754656571039452904775454779603792754516282636850246063932931287042222477364416211042153960716927212715449403701858631182986421707299465262720472247912392997750706729794728357145735186471549109743139775817491742860285845358491329172429590544757228982454521354434279934318936135282562276571770501989746228156705166481536042664808915811615085720794494457700636513975945483997029563291081372988253974229599979806840873694096055337362783573412890536330997455205398110009943953233196229938859974721515269450164473193725704416286898500537564269448645954192696461658756714215156685413066198875919533879698031938339280567246583929412227043381606074480421072015069719830390760435888609912262243927866183927418945927175292217820435389573734062501537352307416205180750825365129496424653137446308813472316563344763409772471387929812972938401674483568236308991819060916932159343940522702701051008680747924016485197874499440561085553337053019166158258077482805509640269799425309632002847810016535290579957633905611583907511848961956889684214540589947784407359726076860046066433977399510492231102178732443314848276930303823377305277239856910788767067046215899453930742727016420104371687082748745494891451485647638462010463637066726344720422325614438896027590687423405829388807320927493385316099569311665479474029717988200877731879198578657929276132724209797976401728324743636543582231671776736982212886504218959305399817942468736469966225173657691080666675601428018233686457550812514946328186659431094978869306226001935651377089395143273455231730668603143643385914044158813725471689783409092929034274373961851615205006098150542233826654458474815928822925753777643429371023066520262011928902379434633524808587905602088417146634838283149801875251930509278165889735965749845880729035840268837090630127989053494834750660210176819803215810359785360293780011634199059368493782155911674950892823493145630414483232228294799237760241699506668961118877141991625957366972319342508160372159026061322084255434224407312900469541672646328236809595002380682598222228956423747259504994302204132693401618750351497437250086147234791622533967068868009406351132776615787316574095837537013116962682720457308369553193487718444562648041658981607508024215883545222555215698388434565202934079099393392831251174754815006170805257095546631835733406291829022647965891076614032264764256353796311754555890615944641447894803841748120645761493114856247984118510207996658066670750227131276511662291724986113590281944280668666830356571972104636743468416128227133606231750972600521540800052646643010287782671259300234972423799016723091604792774051795281079055322468359276239239000778973921830536965822686411362386644940848523771182626634755045715058714566822833337111293416488503925332499683301448734147491072965654702628878838075168931374436728505586694694408028375794031400440332078587742890287131517418093999052131954626953320788132170094346529956597894968069769237914823094670827736426096601122573090765740666955769227987760282625644461168285375588386548281084760724582316722431644860436381918261888140691786288391729904775221719199379544373503602192710565238297794346524734383159236940228776322454905976912256129165019102747755590032913266967149787966104272626051996518874400993067518242489187143680994676333362613926619956209977488521991661640764853923972373858926231237282706206499698584225223768975155200555590272046303525273288631993229765853994859912245810087350051724695057279927005786954543242222960837370083736807435965905700424808325940819808829093356257409817554062867049327479020477707011918526453415814625107524252770035330057351214134466986710724590274314383209930443007741844288288275312090135229720951849999754082314216402019154548277632492098594410586501511033879762600213670277480418389759162257985036867852468365517832729762401687251773324143076402595121837615194480808823402531792196699797916691658038800005042295989745721092996453606781707126673215373086175318310337312292688124611102231287993892572913774497088955963217705723232694677872019107008878948074365981473525302029343175237233960776287163536823853252470147030027294653058800838829199012471641699325367366546571031769222382634908356838439213165115674629385812740548574264843621636140575055603178828257335169609121507234248480926730978200603577949116499562218979896825022937602899110174459435990155087377023923336172730978932633290428132117750327656681234084598292400726390910739116138045012780477244105280279961189091194170225351926333661841360019535211124389042708304006530109684910121463400518681749836983877367445491051349991304804900805499799343569990918608905084961142629928050289956517110243581822719605575794473416609236192901706093724665544344363663467004598447830892706547335090274122659601024890797548010798557048677431780321161336546624539627104137892376829696865515328474402613651283690291147650950435577984297695251279447047927587586579152049645056988094071922197396878682597167940766737649115038936097446105979964065254141833183326460223618858425998877948474875206744433944170960470454084956274426197801559762036388166134613092998753359059330590826349697400364660175693976900769315028966998624527180541557928125867633315616900548186164004330601087782511409266807563984655527325426107708317619759122305746530519234547723449507144461854379061592932478722376511857424700857402320092649738116799825928108710629595450721910407501835780427822208691420993566392562564020361073515922915653379439688721393037595290782652982206295878803156428586862381065935923558472093968432885928664232601485542503421174721442932657324152131532610575516536883681753470279563049870269206838781831849562370100430514246044173848059508889208291587674962106026170201492996100561197483328803429007441391570127250561511450774888435234319091224620105085344088679243804277592702837337276677068447485453851311985134913497323220687816134897494686029942979523517655713393914560535732335482427927899940063823663688636346718007694509533760173091057047325956130639701952910957213607774383558022785789842984136166615848961885289804045158340398303204232770697534085529060940536834205369484646957719285226658260266700085245529973172256102801355252995517353947531700661459587491305065235031767504055275565770094050069958912050044028833514771521065359788258522556196771468870798661331729619019801863875041014971041443593325386083130489633925355237094476208977179303896978185482372640994075329291339768995270184709094419409058748782536967787849348105725074167444077887683733931889799683179010163739364565547206264816172760414515107871642797032135208456071338574370501984077248363130426560307786956540043773229697039897354926301457215474884007337460547257526184555235997265645682054932307883320088153362257351702800739634861050083797698005793841707530432878118868786710386357735161335176613029349952012014854943077995813279923877715286604994690437797340159892157216830800979324772769888129433967092762871184760502099205497803940429913891475324260011658777285456538511699988100861657901897223512381284444852159049815894666617290775996232476170665189128384506760696863209426546452928818368458972077681563827972685193846301885137309409476903588261272408676881517229406179467837049911431891826508078113371700801121642447454673301660873534249382496029073824618139419245831245872650885642956941744663262097460145884172390767902242127907049686753564596221960842988895947403913822508777475934369323562603292373779420720874617869754760391661765600715479112940827312913507055409964340137844650492867034079092161491324925531344138163009422385964052599222476001317269619959348640498973467160024661641049936869160492913216210678521266587046405014606300295712706210593996804102370969644768937853565023030119681331921534513040150347163157113163815988750941226212347477245355252727289225568926218858772892843293882647264716545704053632394108573303763548393788153354016216539843795276606430986602843705485393197625351214093049308889257955934097609657646539437329894924894064700842109412747717869098863869262491164530454010729172381346741521519041212128024662482052855042712015108427000344181697958030071527507081133977719624929883372764477481759315955547866364294780284302413092045970429012153408207903170607436563260085240862014058969174149846923062881368935019610708931452507385965695393210805523310669370855846933703421170185204373707020690397144031055909217702377883767388264471463446840002615226868957148725001388894226473495189442452910527090396189369924862980015808682581098678268991321576578401225841519677594343149562181863145632907197196473536464449142101633877918632795050795472543811886625616756765716346125525669155130499625694709564190531052693319338099289158547018564208472150311754297630040916659483802501944506197368499667269092016385238251616262553760721312438036360057609402930665480892057118619562650157574976158197865352754445191103845611310468074516118235712158800551821769029924644346514841718660583344077370016933439313900593509206818591735872260908768717844821053934291352207810703330980320492459995183700824723073375343582459261446063655283636987349730697076325377909894529230257249136400913806964745547971089020423030424068355413178274268506483424130857662970861980325439934239681381464954369324494793024164666838808878863277069716185132322091180955842622229708189668417548447901744632674208877054161186261919743586260319873715936209095482802292280531384076033803121599769684848858341374280201050700282841038396894244923963117763157490577158716789422773004630156081923880895307292480388304131046700291440771276744734573341574039615930291767658485606219458514741406699782252618336518986043200643401440981586972753343230519654491063500810060204855175347371295597794657330793016255949092856072963545768708932387921551378226359352208731014890122641426439374617613241402941377075166756046244912830245924860102233282094561223872084235655641706084224033296845858527996110799113960325190128173760170597098305850395539192266050247632382679966613435564367330765398432313478865924685713538820408569536915891346279298954489012823635484703905426704185771693843907991282040894222531891341073378096901976801525509324642054443318077038167749306971931975217677589292296064738155673534147755005735957969736522124838510708699642754499465253161783573445790509160606545880568913879365625474240332441922110373029886863749978007108626427912878480313485056534387306145215927424455208617925993346456434867676719243257282748091888306400105025952387003625490521093144266165583854383058118069734220656173671857429725458390259884941886076670001182788636389283067593301850619029047735254063123674303448580911235619825253149946634741734516391232697746802679967475906580759340639074691426597561862746022952478505189348456208232800172126839641998248881678424504415282870557473788423886359948906429157159987488972170868862084137071413749368981184985012930044150880954231683428634071651038966199425671497248288360104733616049021684873202435312465655335174982954531554431364388249492532101769408827483471427610886592504430987398600143831136426669452947528985995034811901118926492870006008613865374659537482036973359434740436338937017328234572333147832505615833745059158627245370796590255453065800024459126177330285220971365628977169057190755670915876398484323598137630728466608560554475718542563696808147541308102269378494021474646411429639363727538023060709816292720254541730804706994135336897050909743174523965170109490310101199525514848708375414318811926019598685972632150992407794727290009958396842792436093908794147424810569579372681408724233163954810140204382676774956341299615940875327844613487536294398241416867445376724971956201212088801517736696726956010729953776821154611502704801745259821249834380696979001072093848082767958731523873680199060883732995349410815258375148044750834236813456381160592831232420957706430291633864024314402977459581852559837225298210352125540684484622051767706533872491059125348735906191693119255718191904563567757360146405670770146136487900046375882465724529007215471327263326623629125517607955511805647322922048754631804782567341393520351129416721759427258003613160374430257605256859875461700060302884422043151035011234758041810873562899801975295652712620796411093314236002117966591741004843900870171489472411730430501850342399704509128324018726469765095734982802665638067586429626476920856128369920078227099828141483906165722982989942539600037408087814744550905462654533321053811742362910953251730595544597050296284815245600875692435217706081943743528436808741989249400383718430238279005026616496259124035394232815147630402877576503337178132270658737346925660124655046856663875147542736963189447340486741360229150928356805235872627217652363318439560971883241553817059246154513737080747919584084148026969874866101024656048457949587798436784111694196363765601563483978121138757499589073199941440996316321976450919430481518710355007591869248803874341064276159936083263691157631631672594328678050680481880646011895889417902672055900450352532362664701829224904321046676556424290070638546626051791916090188928843270285322555038349442813793473020533477841209466940081398407891545063011230782242038472343629791969596148048934276025437638799405295561980583520462083550574507294209430674135614920969054463527089898849525360493444852841006886931163547969912497977228225403061819278910895751417725112588995626394133981788933664952051984905057977722404013121844974302831017479021263979512838756251219229465512344632686012269587878673011996615114423246956478407271320009590167592949552081130774212722652814687919550530035944068266822149884331703466372910062421048881815980935374300540019119767298017611095431849725317018742801794426659934277704617710877116682655129314697110805522334363074152487752680948818023957934462621064272403501517617910145441634066023568184469828761516858806214608836871629387765300784836290511765955669788908930666442418239644172355445360005892103369967368848821143502874834389337822119907688595412346407694554937923036373550130622225139321655908971952261102429949822339436530215844665695527730897021191373173205765695262321673262090625884472556861357404002377838887161476075635756332058321368758819468909769457381308972504149715617300570332508994674970118392261519465275117466518689224942152122272713490874242074826992145858326861587086411724982982093904884021569923766625872140502657606152064613403673551399426127359200280257118051330702518070006758549286887711179429571204332172240545569764461943088739402704686887410779230624783271917891214966238545193741361479365212196145225572018941739462732579594664551771704357629668869506362826792428013940175085740040651380859198397277774940178804674273623097482050769625668840411528724053271363372848261392996238652032763314005164754007420500025122101573253419880894632003783871460891443146656398650714689087864692716628528457022217667333236022596848311076712906265253334044490757223996366277163366032880552342064470814722789136112758866554810700867022865953701514959626610659113593489515923421801301066656608507471003145160687037183544539920872514336389530863513704651130847204863652697043478752175174675753563014827813871812124507378984956411225950167028920720463250506895306122472950065693147756743669902057910614029710237431139722276185864199648433575239347379354624913349022936219514503049019619705442053517487043139720619120332474489422563436846197064038674141022901705663163699189914224788026472814488223421448959925990557466710266871298014975445734914636651497301641805420636150428627467763646401250738776337767000195752064450877453776576216582258327701540823972216680007058846602544944698389920190528177838022608592237691756610309510349247716959027666576433885995536229409559175545142809011695745452372745883631623861818120237885717058596586886162361265028973973303886058581747975333784406177683294666714536802240464494707124165127830453349350005372699401398469676478574038643921997613488105758374263519517390290205071176635508637752680469402497471986046463074091708837434099390596132481385355400544048713027800081650754615471484045666660145285056926425435631591136410936003729890533611296076110493822533746790142927801872174239182717695435416435773614491357183952612791744360294930317729770135302913584753841981166998637510451140920888508066902613761767201763879343320049447565818939376573217650551863401723963220845344251415982491852960990870329260730034311151366634228975019121863836459773562991966063116309733238874205575181653073910826242532037823636658825425371129734946107462499057697495838577433768162734721639797268229000161828204218398724123421026696104485891426967578473653769072089090666286062516328615673517184023720106962883570965682419040834308155462710561697543135863602987350656527075317845748821517839247382666196160040442746234823019921165665902108063847574179424905733542835436401929166114303412720926306647437789747808440734140369387924640725421175442943741979979074839336542654711853828263320587735364002245995418087400019204141084282788375170423767991976557346341205942605999268793023572359164214161415957272920997855623739835747573411555366941312999692129103241673435312465016886445651070728062194735319775516678670041180779290762887545391507668816557302757447621007572580290460239883832829054360295289966991761507914101327814416893384760398725893276896288667179008684780389211686568547057813949274908131789225034390511317350111694694763210722227711278578379603065379369954699514959364749417826821568870460040625312121280926539465174468367393339461506677734544282335481420924112047470879019417657264575115827143336127204574264537186031116129621906692718973231128323649075495369177359678101613524022300924032414440702303824966145415615161717829774658376444350117274771484897444464232475490640893526637419527273635796352607960514332682436822744304765342878408675982928634108662742291094813174608678421311842788867965437523861819168391512610491736926156189023999321464925555139284785649080070748730279930995805404918034836967717109900721031304667371633908226789090856242396310753482823910950647847102636902584429912544157669859667670547809682528164845228007633506352536443440698281528771791608120948371127444949652074994082719589349895499937834523986957301998456793360102789741470857470947312459013906744005262353307779170677866114179801066874787088651083691671314009615966640835764497765680972137002745893456016683780913516724850037968311799773785066759515033537621078112343466773846418600431652349070763724230836587140990757757778114802583892610805908068264879002820092139951071671526238641580982235461430356640692265185839760011072446559349213648575942329141668238681276530938526578339515166167216441553666989994156852958935991674741354385087276466079735720386404767879356451725300131531983228398067830947064167988884938874887672672306025682825373420071813725829180762971989789767614134889174959099479393325434930781301352998880837825021006821185489994152582648870086211439152025869872495936571083392184610419786657152222867912211976161177364983912806351116436936929207186090357501357781181827461590181801764413341270531361049536728182147042445738034843154562729539291266286190573556395884351764504224558660294687289328663413190334493546442212303042030460372557090211074976466859990165152448891994802828542863632456162131822835523663597097082394658556319106495721419919688347241809231231467320528834216581296785885054243202092249561574065484624735315635947978101217548817479352659886581981467115893977533758161565066500952234860501860319525380893038935643283738996773455610585413996235760347341695781306887113890797319499542722268058163937331275722973004799021259041433713755741907761347124546532216670205013865375974951922899056016640151881500320115568187201433786826351104435494231209810385918014766096482957046746163136319173127609197145781136692306593705626107956993953218874754833888872244071745923097497725457842843957683836236030297295888712241800330348488558560880736107380078244055383360551294407795465139313859360039625634529881161462225994135069637888078089926412487791849651654517529722318285446340001882896930028503772931237600999860821534535026278539659141234557667837826165757037170138016254146825029570426621525970339494782110739439178373217534902788715625213322140529041379038380057834241291599607860704040638700052524999807260468315380097055152522157340881358057341997040065338476619927552135827709197433852182655265788062306352271122248836915555145210977992803788971372941920686211017737628045303953675794117789301801966866971011877059618809004876541505232444187304042738487312562188170006515490506060979481952563729259010411646186200146783078906643159161593789317159143417104516990000628845933608008956859420609911461151971250426443166312984937947569272919763874238825213422213424730277381651486026243822349519832709656760057013296313855897543397411647417832709657231483638661294301674827191098642172156728283674000231213572763130828117380186074398971927478525926085976269960475848604711417322514122661984248839704786556077063133528251454275796802671151372474480961421694494477246675237638301494288623701410407924533816455820097831241682596735068606038585856047622444197382032316370685837725243782803845085255436497524710206652334327905979251448047269931110792873055170317580574781586424369553706353066994322903344798629929652923609771805837118467195257578561813053019973351903348787130124020406377531704901801000979897056690015584459007935253174347049861615051637376482626852228563578229460889040880443992771953738665857159633475727647179433702477566461313442434573040777579759860500787531284212186457636269934486235741387231117373383018993223464301834149737799473582000485748616338457210093036735096815250377899316246469551190339549268145621929562210736001827684730337370398463444013479489671294729689928511782686872481221604861362442176625629759389105244187371053214178341390276380231481069533015882529089157234302466043809723363836410907068369682555883240970818375830291792488941606105890753245146975616491774538947141853570736474400437148113598884113588977228058264223390568433804393016908424842291808866156439484789835168673715107002636473651776402736577255651241456836553430157181863739514720228385588023928231483262179820509953846003288461646679125691847947724754199307718016016495685342824663574133527128954182457040827089941225655022445985309636732563303193342167452752517880878071715968302323101397408670474187879927000800774230111684646343997053545585455825059940874405330654721901834929693804511714937575989964093857932172709255570591498176467283784271387128292897506207712228728291361572839888336852400169731556267474534054779283237453878162102131466588378423581650008056344670884107358633768009624334508777950684776350912367238784587468150770356823265906483947165115901179923773924947028131145179945724384631272840186312740133227345099415059109398118402429761527494646730061723479230247251833343932853669727407363609140284720063219982510808205224013093793655725045705302912569016751051531752752949453360845740141626602388006392075613933199211985264317310989846775250332389411151810613264130878690444095252404923601028967561568825248794166860526148408266500230732210027701042016625982895801268498021396179368567954501933187487963661027486055877846248066883901014010611369853213116246259163373162109677582166758422363290602538527745944309441594373300871624072466117192416526464515239648105307548269389143429270873109361832091516072209886302203561320379033952011720435656720154005308969543635285422464253668636872996114156823630156221414035547250643672038880577490494691819734337638968075013605045664830547788278120386242573653966396073713401753979611539033720906720277793128382104569910761596658731832633134263902484966803704915615065720800271582577122425479013430372383351798870556659099689575594048203149385504237147679349341877882787326838048575753369835393286019384879477876751508432941418171839356751601883620982663308574931041812017908030521511398989525295866764326932271023176824876904063607511658195760448269156122349142960407736437179597809181241335639160406550051979249842374148895142043786137207814284877949718459562240517965988932601036199633267818501227818482946456231055871225949669509758882995500493983701637177933483797515466561156909581565573314536784400414291233594311044470851162813524756403249510139198797441201314445542195877774470068690062787310054045443845100892130154945318212865544972819028339613353843344814806536244505050904285426389001560600601468274271455038316994590038103819391060845186797327761419024416449359775804304186116364173747853279290219453988886096384722830560752472897665883926641465350139476285862382909154084057097358543755710430265120924601901106871290667612929714074546250492214341763707565736134923189843629827805868322828348284900381490425398452978480066516892516349984206290167924606588140925196682815942640850858723982781890392769291752923267497820463499923213255146841544274008682322953638092575786765482405208562838450731922862700283606854097120574718785478477786977509694652690680225622422260195043914274810496387267080314269198434788472080888003633042397678329669228154863922973527966054234044858285403875472093352766126666083800591126439643028974623968715521701307008314606008113452940606456765381904378844189906215141749347595429267565218103589406559517479513283642031917968235645161941021119731711705694514439198605123754581454336781639496653445670306967478767778036533347435549951419914058745372589668087049271932307073795575785474576439645042235464258369606454199732683849217811618584883528365982146757072795150627239258512981500052854000873610816152033730638480530081491489243149597661834417973024950877451651115879564133126751656433435475781067490987925958480891428616533547441145490033641945050396376404450405187876666657928193297921089882201193527792402428005847351199171543240992328743568507792433021460189332444834129984964804552566738354178168776131583316614290486034814379741564719924955594977375491114265422929394818367702211422231865760399683807735841485620743837039391166596197819511378607768705606373736358205328677481615001771982778375202386392155344367946599104350979932885862904683900264969548596531610105881149644171235270407031590474475402881821186316315548516793537455819236805110485320524499971290765871583638398273150284071986935727762236501043879261222780098909465177147559184037830276601317843757312752369740102389639093565252534945251971762561210133245096423719249531240538211083271054445663215274817273097213533711480037288141085225154314119771752647776455598438599576279793479362646723425642561297956385566682048902262441170955458401517688355159335440572268058932434591934739552165579092423909771306775635388338020552065912816524072333692685454592247613700969842263969784213378580952408657393991517904826399496568077363327948989155830243358460452784032939338283355685076720674079137762977701058943614502166900049478663241663244829927534638557589046785927863270221380762816996577468007050102074692128159376796784935259709090715421594805994644060983163799676896632631121865942851180918967285521990847084858338483897904051573353736342012368241793740025471385204130605405020478349866969902697733963919313266882893549154906217008947904633194437941222877737196354347196751153990382864344463702991083722107002936429651368478589925560596999272647334010840945635530056480191021898370283241696118234430771455831379940270698089413906830015644251220583521596008518913817255909970282365606761754959204635204422547184316716581065928709550773079843728942617211249421562137880867483969719959246691426566081115394342732860504923936264985767570353255605201109766827681700201375375584931035001369433794843008161996186059933997628294196380828189360197602485713058196031669851247327883131586554053807216920124925800115523304298648696039719345938212877326872725276833802497088159216543984327219661723084108191821293041791892850008755979209198129996397986806966552298169140413580523824921992045776849641569598211009696853748085684903364799244617966796466417405863943747158130455968581487171893990838933168173007307382791780182020151184915268158838162494640075544618019876181924143485747846756943830506966521163540035343173376822506457939704299338479358771401223825088224097893269582678480506567882105886435370051230936261115470920378170597459436776691627661750067209624213060315231673086159805595856389216243579550043334087981151777338736016319634570582472150568668278235651915210083855923528138087008089000741862003935168983157233710885279154556276688856504431117520402324506690003445923757766990356893692634482972271558156894485077884236818104781365003543467284096738638032563042263646747426090846836294220201007217630423449919889579977211615719201462533705742883063055750282925897079222857883779151930783041348210422110995125588730693236403226733799481321383408607443005296691892792099900061987944467686451828594679063097337367194100160882745121410265005545153077138242153621769599821902538350948254943523863859186961996187781021309907568904083794333222113006516613819237804307490264576838397953966631800857626461915713508395797006487632113856650915590877441873392984025335249947510289470965062781986413973410005789816519809932095570494569451296851242987694403546941907219981204594183462494288374709156816172605128079519793958522266458912609315586798383047281902049990618853309558246231321950532369039981164243971959672852908184493404013449532469376853346054802640385298769499076734331090654185711529389235347785810112155867357125416173426776474270489079704040246574629047859495661797656268038850003528338839728143903216801832995195371737556677598145781178470698947120584277276455917239395535417047688021815717582953936098575372403077241169822450516786732473925223015577859204718242344146648879865803318365436994196041720257313295297201979219924787561848343152711128585305650477512204778906198779759112323888135199016750207946973169368564280387268306273434555856271223433556444248899148177879162060624181628587399302775015641183823212163925221750308711117648759842773291786015189259927072473146028030047104954861757005449387863271612853047777686564252706113395512649496989767922922159157617906322775412178974926469763977186058727124541393241560237984889581237726968717092617801520567366604978896070753257523907167977963822941987452237956705615030269088009395820116880384072005926985851403905066518893608155181807724652864672251097628128601207724208300858411652738204452512336923182108088643966822023666141966460529743620153694259767993170721672631399610054385638496192797979040357528251534374059825041609620258743400166864639403622820640508012290586951352215214205453232219595812631216488246123567739690967541501246581013987796904387855574393220652408658284904998500123301332734701440774918765542861987068517378855098483476756913122941920947665481455341715967130594114378471905964371487446149262634043722638116404798159300008744254699696526518227797830726450962873269337257299714093958252018413623427003499467182301331890099357133562098043172666720242695172994261894554128861902786528485058319006018337535008131934579451858260842729591285181306462649825620174768140707587043719619147238714103427478302005810210830070325196584570728266836613010901036436887628577012229913722881641004585209236596417058240794869919040583776111370692161324554532478844194318694113901668058545838612684681887344447411067893873098110301347951003821595473494356029591366095254549953605312402063594134536846278176893522074949229177396795301841715253841991573283982641056325916613587065945224714893767232138882756389634040953436101134233440715112006113802768214894407041583545359691945762402752329654063133098663223663495851201765819653645137757870173677840484850241440096268604370000877159733087005184937711365253028093911130425089623939681410978251722659749656508560854134360989669118160911605650546655911574781821406449115567056241796118592360314913738205809669238005654174109988609659915270866974180526090795100262737487981943897712050917396520761145200274990505944027223753945698582808853515584888580519350570728112328056632648757170599247841742254026113487589673354479573398101132966080527086495394408240465204610547008024705005959647730167731133906497176047754163211157011775990884536776544636519689825713424448004099741603846996307335256847107945938246682669919076232499063297814591872318317346598400990578803846603043363330636780989291950381342832676423340057628219429656219397278144968739285391115069769324599450127985765349681417925171356166892253595535273954673986834776113430108619083602317698537841031735074275807744987758533300633711710546711825321855139236758638411053831580091112731509282021779464326615390327365411822818835306577591036659508682808957056856167307506013817670770201692297385789596793932151552083447377276502807164399351594462102626112819213561553149327653927034270219758037189774077021870956647686245192062030563990862539837762183570549418908332418803707919707668813187103111719233889532979825569117153730497644761600461621602176453729510744039568217851533444350294034919203850474519778337416259217746541859243283698790744486033288507765887899168728583001141911337694735464447146457237293150423266826004386560594383620040806755369216578839159506105128515218053170412428419437252503573826961940457476342640511439496304070542821322119520355383122830253685111613981377651629523149910170715752322507742929919423353136175671215611080069516026659366762515814705613106159091644493789037499129101240210689869409783238500592327068943982182220062262002486522660924694416668567808366197771305267761544320851966294309387158276189624190557030570120745658670959437947688577429872751901516954092768540083654433500375279884200828899744283899965923880589312909475479196172068096258344776448362093625814183533576446055767741790979096113683191974520517971417669685907909285804828486940902655553572224348091083887866424504760715794107477694779903046375902258518906336142162896303724479268338725551023286068985216915950336888036046401296088614434264728978994410499635306614426314880485883575859141606525717365376004818958809874376947883737575680421157307580560152116470440399810666389477148046805939912156186558366807301378336715263467772736912622631310869614666775968682733358910381525354284008451361087134690501113606809985684736988372203401985863941549193942751231869695565555043916793906452799826393835749565251792371247554647207293389145790610693365053935364712080208263661507735902184678481438016419698151658874105320570419406188572140264806397425909893591632116855030840723497223171596695745551100546058227472934972083797332250961811523192917424003157140841061069950639532558604409019778789788951495839837132811122150825454232682985566191057366636350952632933763847874619541600382874445702234008688650700773819659351416126580963682103517794495183457320680822829407408583127917037503878850847102256611489327853032149742013053887698896817367755485975996968335941806822301962303909542993988204625585929575354760501223841202979222998142215914804728488478174192307070874017602716378246040295732389267169129758028415351225646940897161126287164777377069268455030868964018470134253106846309360730645472771862779703239145858383817149189219377148488129828260868975764102541437802953782241738210321957927295453930364433181330233489222533592143182427091300375385173714603975175023262301633760516472242428236301128994655704445479874746118205114740203979453970910608713148537524192668452306785594312645130708498567026585990896492924535140597742553429018789943835502158539091968511826156952516014060917940178559986865885400993741654791885360941218312814232065536023976619727494443710667741836551462474728475081959285835725591990571535411727862849927921899877898789257694562094400505689234633842819153564299554477757594770280325777825329412570990357137171152605329048893472108493069563907585996187955818693584887580685057103899905004792517619411029220358664574267721229383675625779437411005800825551034921889633570606242712073851316585521436561023401308543020594026421277129628098514232913032096714616957406708448074935001219467099356254020692727313221465174921224195838751031875386822621670908672741789427458576074354361105744066061686707044955201743695178364491450360100615262539943600561286320034363619880110203174208455197668269604250727972429535459174691181612879402178650846192554115966272915600012175717524605494477455360000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
47000! 3117548072838195838060441920869202241057728389725741729177265991620798971626083768133756617741250906583392418193197708765672802983179531873573642606401989406806120853856128855360575272526787776061929466278542215271464898578724491639120079499559392002276196651488966218531649910205896000691652104797629773269143938298976708801297537828794311659257413584554347013083301945739603854123086997286842579999082898923478841059447597736659753430891904295330359442045006613388880763730186207451814305267398728258069875500136532436721465891551532775246462773386949800045841152806040949078516349964687794109389621075855524198889699345654021826595746154164291619825697385592982788066727302740683959872699605149559913238809669320341690391315396094544279367727915490357082196754827189927468593210501403681743581001132772149822816294311591010158034560881673195430073734223009203978724105545194048333506444642944606013294962474824386158855084749481395984476331241297534679832896337419879897446573719342726649903035759535903059120547546280678347092594331484075591228707890235940753015510764005425910708022462724291221383772634773400550136264257645478762773869362136505707642052628524488137018139344858601403881254932124324864933450241322084450258177604880726197194686446590570349279928803498732294502802678600374589325789159855118188634739332429079558690140679622374109980107772975365609961580152825880441467960115500226521840245321371542503137125037208042466340020057251125791323750576834434650936800067757573226043537515442633897769796670843752194627011029720697041283808518952352608797124302763343165738420778585564854009991997814973857379233928142613222143193348121726999151848296250894756975756320472172119213128137591479584209150174639057802763308507273910791191263894401219238484634298354395018537910021478749222802705224129253858379786616328135453261190723164602925253661042780245663342791711935533819962377722935552092616740033796118156492968674485161033895301914722478023803208873439709309027501447827775524899382585017854684275194733936582842606624319176081772275707397436552075324657105234696374352848047420671570356580421390759639124796933932960700988860235857303001921073056316619257852968727239031868140113651248977628271838941946449009873731646546349597035378589517797828958126142918750653867317554322351778251545445004709238563289901887854036031149785270106768800459109817220563810636913472077449055326850952919964338618655452492092841307847233748374594606785838554714727362008479077055526377282142563026153926352946102409978893428758005849242756331179026780181648938814701583350725911312681345862999894180154369560185629921416580850223969532296760539186256254237081354898579591551794130544562773976247251914286694800077741241777349988629884758320562053451732892121637391356251092808460877141393301426187325099209493632099844684263246020936968460167427908711154383098535683028353928517887463935741694959092693033433104537573280376606043772138594655676576963912514837358013001864049758053999458948131196627048153865319353790176772691560492007893005993318685515643783662031896385002056617768441730501147106918383780343967699690059946212759983813190383093494687841545719084519234037970735083477695718430130578380633509211196960712109471894237934987485455499373574672757085414360741265338826120031548214759615730125291267372701823475505584068143038151619412864835902264580692691584778921138104223485922624246546032805852258624669714363159772554228946007038916476133167366981059610250743084774960138463969022697885741215090227467391126940593055867300774263463893636882174749399312512514176840176103530464305579786091987770820611263258783620223991399346716628471592967941639588648448339406804629598035108812887885065071844840414144343027550167132361641155663622774838664999163256240355605314883305979305050927480339945592668700621470048511487894980586326551112760800199368527488557049417652400471734955223721160011219436675633242018332512081962255613577102842784593671373994510285952595042998301553747183681971551784021548002975607039932998968536278582222749027515531687951301293020426860990242981060422090275643785620607816204543948976113816597939325256082441039804699317583879422341773323368710066388057225740311483740587670895096721216845275458993612933636813237681770465867123612391637565849711531165508248797341615218604338494784864962041046122886263309934216510715467321334994880665426403501538313099913996021301749635748099040634557391435049782433956699698566119123849097497213054366175479578724995020914457842453552917280124048672585816468155982330713739721307070289906048180271941154137021573637678127351206809183673379743997117399514916177294312509140384709480945944987176869424687870615982935029017625170216746779681558350928764865787663794351882950140249702601729898436097398266044892718741310710943040266720399742278500418761427982154741260469869408480160159686218195488204907519639651453470790673100723761511761136171344064608885518036185660768468587701685428325869529141335596198814808332110684534558180204316316002500772439895098016840007876782716248570761169573935420616920610245090729438878461427053343499735786318217267217325286459461682550183656996012024953411647492811470981768546581093812715702629852769990002162534396969452590764341869724708576902352743401046282204540862455284513964592182141031780989543194927279239275171371055347553941733624552340064391407180927638742604344118536820225365490558339745604702528410156053239265138426348856162401116728991668748014385574654685404131850754193226044761560955920273453593074383195672471467231751594191164948590950989504313449490554624415266534311621505850168945695884662823808605230535236164605409280787493060107991982039660582346586097830867316397994079905599604883599973569527350750814203091952174650960624948306138491308328595214648335264450622850920578040491341116075356834906344578272798272681545025231065889709771015633410877499718753193192385847001945494281693100842311630350935689141172138053165989100380219993402269499526150501541436743736281490215364072304663454183017189114280129169403109465916337814876470340678893703161349953241999303603996351181474127376917193081486954998320157825136961360727254628303513782675939073918701399432074655607143361601435912001299745389588200498871926878434327443011495668666182338910159128904366315313289579518288531153700820388664276218606821689152308574318445547903061903184115631960734237940580125973402155259631027546001564724093659417386615099244652133476749831020022250426028104477563179818877985054445117063390499099749802413469698316951811922801797173789414159400308257677727955166779161803610533548759834574953307291011245450625531862105660360356080017898419329530148839098632600544422113382533845204438908386209933955050325429201319854891866341371702101344555608018107806142101645203117074794496357091147081105901901395708578026346965667768603209656373362554592134880803572298565886785791490276742758687142099184125910173530593428116532930228800943072080945314573774237457037766063725351278403034778542224609562921498156255100126693305630944272693780498933109341872715802941016211153573264287844232693990003458775083355073439092436233732694287275109184821510051032127056525467717030509997869848687320292315729806646152826849187729553122993496412249515961267757807003386583067674184241443181106897703024026620129694692274227182511745479488073205888936158403245747370455508673279632401433348618703117754513679488257170990614555614337770981088005436800058768065927031127475260978476887407732294517288164605921809414244058419906394693188110745877049156341859120094661665034137090129194455252710143909403413612047807737002810833579849992135469648434894269737683348410773563346084251621559442548052404729051097360574245841492706984966936143028427177242394590483725305331163715683823564284446795294649359335046984087778098296618269317973936285481956354971185469579464570723321916075725565462342775877566192395216845018010396817706971501747226137529132893521277344923133214766208096265026470830588061380195362259782204143120779878936059436678092330277431205642253087071694822946977887410703668154291461224147127359899820172511754739209467710755014287313030084983399914549822338326603852386323344075071448040794642349963540671239480357097200629220781393591104966146921830553643987230675740481818102598672598581024336075499153348547147531302659158409411186192277054019663523520103595366511486877671485041436731264395987884467723435364274055955118192786696526021681799742132690439654944397832964424773441924074488127139180456392909788531834068457874312011874427911639807242061568033222233342426076962512115745392537652182020859564012896658110444915317835249538875361012728841844815186276591797387117377379481820231496807720475428013794715631375325898794555976088472333930479977561562246897903242491479278298100879696475104093018219178251266333117851602202197277174300815117079286048258320538803120958890250318255760150285359711943781309481118636448271882164753724314345527101341851437764802185565560154594775401370283262220649636362180149541908925382380924697416336533444427511156742826297503982846075766716904562167541830050246628921119020866066591268117696182588953683859159592776271967797425519343760272891962936824326777155301307035737213245529902791239542250662932927571358052225150002999384860574577969812830043285505447995949752145464123762958590731247746268661334193208421557141051927723561202049819023984488264187020543397124854973748424430677455039182501298919953911752377399151029239371621287631322082144162838468691707698003921189348569730182715011075398158491488138336102586246380567680516996416187526079788731504780779715323519172235522972372124961845431287586893552368141169730660987056225244001536989013566984342401344739018875778568448719524741556624083243221054525397793129819335289002625564215428941527781018047341457816760374245291868482963659886034942646445416615110250633548144189395705305986959362697432752512916608605317617286359362531008351807450828997811851156484422462375817758807582782283754686662375226591540798967159869009589724659977409028507858493236222736623225299914378047896563492034150153579386932643663775017085502686512695753088512090516307764854857499144026860517751558252982818625631940366330847327182269313885033625553706171204372231256371046066108242697448016021110221036671105333984634462647853795453353703898986630640147638684417062191266465450077169830812517247975084050888133667851698682644523123416701687529982432028279683202261432937608002070418720181290070905995075967216677425656078680008828940927775712917522207523292124341426976652217390774033237083300827258738349671341384816368970998249946036579737084001475132797825239549011344498028934141775965847862214523834929390582343473396055783769903378397074944869120383207143180391172011482346223509205336280289302274367441130314406006596501403676925711221675027863211952666680260565335947854726127525999132898071247199377380484345339450439903610621264202644831290832538270676181734099802276393513472222295058613620304993314163153866327431605339280896754127892882722479470541035235203346717720478820135765178875399079607109779592121945667880736369962346810731500082738754929159292374231791755363267630374789254412828450834072872991576871621663077791680429292426084541912234666072804153236622154543914035643751863136056069668017123930224922511498114672225026161152595565448044975830316682974908887717841221063456928654336428863859717519159177907956351511014052513413723734785804887745397006123790156036897831146524283438070219934615905566026904653820714960104968256623990114401070610531977581946553585850684879653400772411562025882535473000644587961204812059233208722591682973468140858497011255579240237249875807571102427568486049229448413086149262141182959040023668480888101779579858428351858641081772844952397125265859810509554724429484005881049135846380513269163518761879841895840727382771589875848380225007809928103893891207378020733466200197206507605138737268681323155635894970923658732111468765959389947108406377907765149167777956736360014421683227608722557745331253076548332748947916410890671487296137666445300973003072860896452157729699444617782347559802024302345735046814277872860496892736642349867015629614944508085374561518388076841233151320986437481204728302428088309025168784972602894202471470092192022748102912636223931147021521303048085292661546804922995627401910424476546965523034917407873005243393160976252195782837874294697377853729337017122148272136320398062029793895523360492858678013121283761025474278673218283694418895423428041847692229598285065042156779393758403055692730233236935832662682479013019707908446673121716227873108462416201106887531332799146454059587828631554079035820231284193412183126976426372546421360478177403773535318247095267369598132865579333432761356709903832646803031797227477427230293156078097392014684812822786338605689639717221666497201126247392304297954645213741768673609979545072155136888715676421888156009768399579452017642590236807087512559530501505489343061927096750661304354854423301620294117613073494679140604422973501247761667744544046636748559966991259578989891743847675726531355039644484916212106560023390147554564068022033350660873768057899006214338037363947903868156695391938184814951957207851763207810764601674538466558733998763411225301978847269022796819787043788058534469405723860726642459484605030467120725231134872537492559080205000274827361378825394162860088684272961012888994019851137927550853426259541772784773214748984485485840902501715123684830576994698184647313649479031391967373930350549270205061711453139269864375976271692334713581290434229012234878130013621934974868982268607715803839321383304834506373320757431406823320098825499072513003061101470632911633761197074976282065491905892474780529722932732743361706247070821262877872252555178900227922446000979046725110606082349864116738889450800864157973692749120544007845822504904264848105116936456734044838162002722310198464452360251987123788889731345686508049542554627706536010074566212620728251811684731192372050170780814054168230261401247465385103175281199982197034856468361759885683959942062653045029538358291093551932937957592071150468997948348769817963277773774372489736550346362832988972516074170842176821773781689438407812601670345653388943359783053828918972728297263854491530436337613742079400281894561539621822417947441764653297357281795977510675827482800317292838601951346691404382563618823204629721115287646063886204927456770053962072549215453846296604919737709392484318647101640754235708761943178428802782869399433890839342077181241961436085120410576228012091062778416998331247302599812392632968352907973662693182586414925575625796187187694729302171199633189807583564681985582609218677207325606593600794456317030025390400984387233618353705374970571842428871307271095627225394358333143421045660240048051849310919422335910371991601351919964611875764649540061553494617730297328253665847251460276935629186685400595283799099713088045853783694392996944913542246777361582602356976236679711996289723753979584324214243866725566832069941135476523825423409647710857451235313927603132691645872406797395925572047196589671255702684494908244667994542137438607852447908449140371186413344226683863778959177038676574734122470487534501169282884468445839069323143274461121448230533919334633398072977190733919172059543291070672125620465912771444167793979551481192486565808732281736664167228469046093482601371840657572376518330884552346738209316569186764759967361606443689610435508016197495437163216119852528414926306165358141667146727534681386229162879965875836701842285320429947723035169639011861685504031889320300331495760129251090994142192485961855353943732309899910688985993079260615186853633256531352089326907948857037392219349681765855575879531321420569345097199103672349754468447082889454268711426423715854988845363289155632297436908499657191079443041374635993220845218044297755116711422496252321936796054574528219681650043007255702252442874625202053057553091172711413672053567317281293554921334764373842195620954442039529300309598514323185220294253336005512686805931528690768680056199477980493718027671076720531383924041214928014370821243078441293798612652934689557308879447510715519724647703338266175373502961537165654470539349496299434049142223386813218412549527058159201082511837324741456779799300122466430987144077912754266673210939089431153017813479772577005362235088876587211465534926003466001237005638748295573295765871042706928050640888033234513503917607442071932279380310869323991501738672066446028068152104607258332152862767618746635079183278249262174426204085759077862673438766318168828542379438833206939891482224054519907237397238457017811131847868080203146093135772019709812959864816588415851758243095019876272054962059508566587571143902253460622559805184947487482583903303757450811605708470609378127213694468646698004351863595886723128006125807398450857420148949049912992788563804265526408032266283442372860330322200113388014388439892977284878788184411311604272332815845971890927641007748858687326138217737390892218723115338112417185576948345667693493322576989537271059903535313175963563453449235806329410536103193656362023309264437847308584068155483918357141307800199116214579532536972495615468331657679671481326871797154844684468657337717933853813210266693646625229705471874316854427047391165828527319923324035282300833843080763732377501454087554521793302103432636270272435063695600313965044897287264164769122079931269755769244191029491357986539216260917584206251370891389897839671653724384355826407268834775008950938465436079857440794978160661667607805013253093874525615949824227607727801642991476216107917683884638830014860872967635801648772864920280703908288390041233043442011152867079549177609315810120562632823176120071559566791953376528816519427084324510414418855748581054132774676099183210798897616586414133445984949258866211685056092193167048617194619984782216718371713106944955029545960486701256267019940576052937933192890230153634015555514405727331687045574628432199146655360501198885537204758291746013268943482578766944275458040657224296374278044004515100199522992538071152534163589558025550710471007152689116271361747584729969852477832310441094698859523072740969137695630820112157883764878145605100192077584743126494925352297183183252557371751292241951221244498513544078379470107233631828626658782609024309076096016853890699165240066483463077867790995012200074995659562507054292289037167996506078149268219018556687914856278643426969202410587651534529069726439606615672040731132475677529814020414508430401158811888259745207349109447186513933113604386360218829024499975599008994601288394991929848965082179235839422391165850650177999158339434729793226812394939406002951553265978504601480813940304543473351703505053699217702042150836687217510329007328302629740415733981524896665539493532919306118849839033114327153628202370952687644853050869162035553856072991134837027391341179973518979800834672554711475596597006050181837320521772306358947763108754649704535132146893251894724996814752608227730722326987907226961900761950748409100219780230500179438722362874475585248375451901079498160779420038837579298763465267160764223560777396625855486755545963176005059027353130678718516896732885069206367173352716443613575074757140077151337152600729744243669204407098049983691504320467111810143601539513431112071483207266911121365143825869995085809283010177387557994396851863880192744483728181318857679121887878434557455718311258403210824472233398810520454569726229762513850917744054833683021244980070181126703105382428819895907500374027606910028797771824677217227901911318197049027447189304182302409751128110267323595573248438576121650913672418039827466143689188637121263549436580765893390343572420430154287272420267040643415108990938535840786311373617769926106408167857373288247734806655000507253360216328584275731185443364464293936649078499749283944991067176322383410455621873548633112099896033190124867588266229080084068823430711598684215573726497403432777096251448142006571229092503506309052140192809326207624925921145238443108654124469428482563970612229633466532393068782690777043056756156052803565364905114800585475370989568586754911951854572433741497802483521996466724142747354219106469876223478073152266582081450517124886506742085111922650077635593499134937697176336960648287014883689990481384773203779893919964480754529105876238941865251526801793835719802735587436870660846714030244224731623969720180101218677427561536501438498106276537719292885517071924856799274417869582900774892961491077187874487700864768418338408437358391459194612958641629987977543548315892707568239269984152759949004184169526133366918501718583357449801196635941072920667130021266256152787813284926000858379761491041732178154787707555104878937629713983629845300158563998617481029978425032529305976309242834497879852619225643352147042877979677867405179315115680705480197399564731879781265377772647783000729203151581815165352752676996642788457723265653046806940470168987981635779104905168345757690294803114428138674614286311343904922177425537672177042908815939418405522625929196425591357322694793031982039786389554242806014713653552772329619786650883762499960026865737375078508281213701987734566124296291559703635645131711228522834827766688961632583462365126791234072698300886260619251017687541970411513720822172673936550428687890472555204352119408507295897927852587350749428767471716991120497098656641049767789034771713653172636656048364564106832746264036871936560052225127911710073421309326896783855400730493917885652974633063060736792575207832507889081889832280760680421622689803383400366860498616846574889461346049835231689492250772827294914897530830785354633347411579864937997911390759972373959282257246094183805092019472249067002803715254384901772403276499609415183333474646732414128905313256473066339831319799681499484341301563242793356534439593709152904767154242463492937581090820403299034009607898324808232982999056252466576302863102788886991357977963280775280806834576501919826694846476169709146070594344885672374462312236626540467766681857732872485374751883100605535071418492202268683477670768759889444335524094182627712723688103366035462236697439297521334336679045365580149828335279182192174047226061102307252931838812416740820074215944701033161006911259856478033377856432123751114348888287797423759777743329832720970256171940750582418114502055646475306498761984972415288258888852042792783555908821737759115629844476898619677931358062027441091414876377041906354574826430795782311289027969772576007009557818095787018542295687431616484723167233407325468487871825086604301238107358229017663184784067664318236113308702189613430420342173066139825854641238984164362195962446898170341304423893711527304293977462930350798561983316581449004305321073759915880271627511229788760452838314451844696452551354686474275873042579659699827003443016770340649896871375717492844967154399649362495761578070966888152605604985062655513232090152425587864594568180312531730262307792281644935769742348073219605646316094204718005255725888755145565779621787241403797472864888614370058820853296406678741268717178417238930477444811391301592438052562487890327588622729261368728529885867633232308684551047039595556224257146691395467658533206954691026298878688674721832258163423336715338713716399759699901086857626267748424560170256145220449359084924025768173263914574873426883796183652506732921082621824955352364411827790791454004040179966791002280269416665557671704128415718988877354943518453869378246809080336732491298313745298882738209209567954840359218827074693769652840271576701578379377286219936011482651015894379344220550497325140134628922305846424242890524930797645787611673837222696512358017883324886118714425359924348219220463735204557162188101322730053382302542537172084886972581370673808362446931143984453145373266138464447156049030056015530678895740541274145500108801143088152865759491924849785286011454811796869030006905938829179221272453253446363569831966601975078704975100603932812205217275769788527410930143747371186684262007942638886771101383723146673637354309033977550221354186573469503492212893454827786912967939580425518270001685102651194215124488160271278251970135906466492497126495068004353262978802419883912358176718942479596082463696752951656265807553927474247959477982518624931147491839107988872787787842009653938733713156256097431210333721245861765780742823919609205621422859957382509376663576215317190820300233966593536731974406673472761311125263870313590889733072729402829762514232982995020241979679248176229769950986473861177452356085800144095105290882315382369311380927314979025476491261667172793832994320678490104308965015566671637059322908502240021869601527904043110180594933461808214418192634349234638608613463019978700565927092403201021482881950658784446752760299766960455424117376258661989802976779774940138650532955150104842920470377908764464755494336988067511133584385154714824928600311754912967184583140538383149938010531122280636595635596976857036716360551983758494501928866646220898931106466967829095848699544504716685670116471654692784325074535936450044777543124080307912704714151481931137992457416307860657078663232365738219099770376052139010027257364679397705415813595533759427106088570699114406239423377994503892309459130542889269479218192728552909031037780856506139497103871817936595200231777519360092568783969304779203679656765944543677686274825943261015797271715251828592199625105369230824659791075312708907514380496563712977416977560403395289579763713716666994910440811219835526843573284471481397962151580481851703432707282126210937100263660406332006829887615473339186241233711414228407987331544003831627646014180891364349195086180088611117471888080525666531147375937982034622183841596421920737622860368117649582616708956795972439641871787514370686287373846281517615359467871466132831994305317589766240752079822830960567180346754359036729063604247915612367030434441122924085956255820932509880579228871265134634881843297732819144278083737233054617717295559731474770845474201932959330334700901148661590450188005778929582942060761164874689694126827776780544308214321972917482513823334407994664637628584312144886137426353867593187763876603582075341794588010927804092610550572646559723871705170752042045765413571056120275846644181835344850649577850648433139456323285323495042126352225670881554864408424938341008510554571824969418775950012681513675438722255082426099524107728011555044917543532414530472763825049347631306145860263311876161185593740948086359693449043602880117419072059957460683676596757580853183828081019995018103446278396394625697476893573103659164199919837284795601955961326469491442770559099480936600775628055050541590609775172933268710588070803868480232855786972832699120996757972432833350003916609690850215584622695815118943234983834024401116728593079543687360547861396913563447013060735276410673184691837484422127474931251112279600214777698677608668765112039396479380637601090202375608275843365388855979345342985579918680053592557465739149237382634688184028887256839356730567415683325683739069147947958738497289299670153560742638310020249080404769418161190981946722312462285434170116026111643999729617747636369242136139699949314400167904997116117312522954400585501804360161411397462406446142937893887512124248095583506568132414674689283988998165614051227116260320387186261218679491565283649065584311029157463801717642011186782121650274512931687365851963705579973521152561335195217880770685011838268196832112160975859125439853289600781518534029175612450504225038541412937314307295867746273553630134208284362010285202805537445191969803387262473085007466773101552193018136536752907043192372378006549616272354734582296846148428592621878886724347051190070582108545486091516403853165309935217071322190839869419682794430751088824169318044926718029199380447329987572459313279140674765582232110550254168606594077749875254799114870031292657903259671972096492618892028997923170448043505723608330128823935519818952221355439409766152251936475955838849606793610755221961762228462611172559922865499690412697106627589038841310311344219505445608509915172868815540005448259373830399809813719278712497876479477613746423755593724364939442845120572866127515991512468569392528982617280771611133076478371687415554994423534060739708375639397591696980912138388825999340509175290203281809033304938301141408242270565441234369154415646437001992430188245806281130594700555090686279952294840869701948045829008646637190230538050181457644066709098359409143836600296676217025417229463672979071000614917973276882261398081196880225741410969816356368665099243810869602737523944038246287324645422718355771087740300959664079710255799917096166751487904044132571841702387933360930627101007588060978229260933539009124264351515026440159477473275375387853902120806471495895922164607761818443407864178212955891855204374047853424151348391519088619109902758489721758456495738724487431112014164283772370132942763977895141733044458107465273714373060888111405947731282612789077071187245285771930167345209918714949196244485042260671314516982104499039418468410696787460981152298479950395692149098616733927555225817834549825431738634183700864063698631838656515676942870899137137702109337543618139139272803671011754220982926735731748995830994766981296110028601980384781016161026233235602342899992998388755927259384421916753679348899338902219067683173793269430387435305081732759408009928618138936760841083374112916932055944927045992227755344363729641907258002010831246059941875786297459781058533734428504725056072671726212082330922232757657384761857332042991268194438689707181182991241303398996907846939211902754773962835464951583704207355169316628238859360985349171391573557893477957320893524133920446654545707949130661753880075220106748981767018779331011504464215076069776328684458281073844880135784226607496377427768172248937021605689069881273224709571153220284417029783444917033218979546620265353127504446862310302279437680964592444553442304642777100452899461879021373639567419663342063232317639631262422930433215877127976773918950969626038000814817996607332674246370011378754701957652360895485627649727160925811251026202831657580454405640559808096318286018583803085229974174492870555227224892685472055120419107840885265752593682658604801567655849223841396037408075993033035283195143418324005151293881768245371927090052169206937392392476429387551540950791407125401156442546411700929809738914966747465365691802872474363034799403118947679026537360485631823331274297165544925286366316700981200027117858648892623281377887939401566007407464126341483766316982252825961519089499943348530768178738372465237504934213107531669080845591669667682643714157989478277921750253898922724762708858285191550725278787795627107028939252865678064748650013167012818756150785488384388078761652408792296808674564609854020116749591387176400097420511728097305260411443164503469597294510387571418329422874315216961189258193797789324228647110723728723550032075422787267864564450927957364063889699422217209668881579841685761321187619858083041731578006552270744390129460641584403491355294442363016187872103755115061693816142389547638344086833818835911616424868462862258345456782575861438008202689153583847884732540015582133824504650628490190328908886275769373704458588377094358472804070752121640570470545790694077942832580266428684582055827049846206948256575551453285188811512579633528835059460896762225130940616573670588690906026166024082165551697478104958211327671898640645364870059124032299586334224167080502461521282003165009458778418966968265753248160896855964740667175934107311189530777906624157215608424910326672139457080880867188770892087618851539444329547465720733068813829506325834665933205657801075717780194485390146054161742262252431950976004325998360588678450952689590193238692675238463106705324446689925272849022249533082481044362504807913009693619812661893748590512190178763204967500275163170832234238407210147040361353164444443828304437515935113953654297031211893565817806990993567719197115346491972362341786935711458428755016103941960625357695771277013911229701164201493147001655082124161845749404318854278908708302673990178939378607062228961150249322827310122482704848140662706994404258607013955272404942307485759143024620825286198422204058280161744112796270317856888846422584483330919959346989900562266418389855968160261353172665352542150270973506116817017276931205943226781200544020683143342238547583020370316213644932265159982688296723403696916609847230077658014422918038037145813687839903568731586923649701821946707875227426617793551194819202342076995248894792001365892618160071952427662609774525362661916452749559840960422781395907544354605293359807904620217061515746865702513649815891149729603398165915419795528896196293567094144917491088711637481410984357730810304879029372763659720609798842409427498024256140869297348824326210211050193497739324396358169953957626724428314949283890980565867578472556265579644288491170141684172538519093519988715497323451426565770942539000579645666820128082385364360662211498300993152127253916690935728796317095692372094734302875034680948659074202297327171608835020599657569657459708473283649190451643481497114411309362431529143548747696680870034869282911260539847640695127326267510346363473323310403615085234071974087567751452865511704235548778384734858928416975047885183102179414456928042797863917679710492125071103164471224686361019561083261344764720386388057423237666953409494085688287655739162309985377676203518833029933335566586028504604490854171433932061487361634068626397099127433854318535849092202701741031627045171011554390293505331727555906668093211411727608058627756460851321837916305914856614425216253668151887704601234225080281636867031471851902983112521233779049682802873452984819034189967351053035757800364927013435679692084904035225403399126200238674993376199209343890042941647145368233191086884931363711238303971787886600877415331801686185051610277664720437910388591289271960321306610996694860884211524148190008821964462755738478677331717453438933247788947710569932984720766047654324487417427673605005278747362746673600731413144945791676059585816297966232823202280444310369716104126615766866755161915107304545435475132224881273044201908141495511373149574641728728191152645003934241250415290474771567184943418913894362486910740170888362967096811872400844168750434823389388941596435071946924603185795195981083909655937236026015133421519709626257672915559185633162422216820847481484373222171146328759401546698536193481388297367360906503061065431116982835330607706681928538162232729623943271624299206651889139865710406227465867206665482628344647755040010986384083044419620668805855307018243373549946164468033642463529110195273448566434891972009502214719180051185464044092545223579426432351465942633723778197451097605763433599538127959672457590242224741579751005625972401431779952518993759169548808698481307930004361157497750733741842664581890051473742396317172885905698817363195123677005275384674143891099065107762077297306140696869771730718597685315098108018146138731893900926578447783359481989759675325866731207439688565469664661661307605301416906199978068686988083623152729540771571835996020007778959138115033944962830450343024783633184857738511757912956000066007407116242985781122676696992996044697756450772564354172283600661823488739833561930133103461637345597830804316580568802579570535767274639219672658776362347921069510628037120458351019072517713396278824015931354877172984774568819093267698563447756821481378915890880958850060400183901372533597098232035035244674455986669945625526957960715955642705228118237716602474397557430585431302605151025257666243944859056477260918222241675764224993910734814947389893346245140343358840458156901999226317585056552885413558250276900609074957102055798378155253975246944769118946400791151945947192256189517299434984709182318196138078375376573167288961667656637261754555531317563176497007073708212065594615183382321922187649325483554151981328942000700126592833816719470191438268346412712795394623517987101497578939714742253437716125600449020891599479046332701046854269709549222805075801639324236009028929564489195223676050144675441613524404242101525152796672925502923863710277673916979254345296234674132853920121955995833503681367413677734420088122228322704412386035985341514216687693042099190788066939818168115636299953137550990514367369771888234140563830800431590240835276973264159639642831293367704113067160364813724674863721823535224841075299161974434593664548034308883673639803013186235945135665410143946852592366263234045744336151947396524094795780037537020943050775453167998438076306517882988742321217516630659862595151368570286436403230749650334456504892412986044338291797424988230577403265417700281039400322095069732845833381061745964621442608336784405163182416156653738166827273449206140404422151089593461736933070972488142363324123256194885055672374610321453554317416156987097442383381863249923391185918088955414985086447960164966034602029218052262345605649857877121523429283050354259335719538657992870539625768642017488085831459633743693281573317981585462233604790155847673433420948408505882727817423349161669908722668828708412163963167886659678022201581968117361992712044238197066675645998883797058572387205902498708809691381751517336923341419473703956659719832608140827016836207113735923359620572855808083732814395092634257947087955038474477171060755310837035389867963036644857163124382094342059600588042624971362563789187526937894274786859785353374076504204282268068663367150082543059762265463748961312588863403052786014175560855614724567075098276618165611459587834523650016759426270052432444191609309553345381808594418516990293443564088061217105257150688804436598119384033703352645376668942220972405036682996378802278311921120740582728765672370884879635167339095118663022303765807492697346792423582523209668639986933638705840375284312493165663937309771810171388183576624450686130845864190733976895136766138881258181683993031097597026094804796299087164283954950744012932013535025773923536139606447188563048378327989652097016762362836098692239151343479565383944274589222065184444700760734373084729797644035458554996684166604059118351917134157167695274833741045103119374982253170291041391497906811239311715008432791730909800377492687582918315743583453931184547235271408660859481593518707207909354143261374601055754726310110687570068886447726855053915183909848965914650104705444379150501470584279882549116873052721334667397557412964659784633147570206906778168008356378805353925907874622194189406020114853269907629466977923718536271041498755946833278230821142835043926530624774400665071971249525443534047107099163127582085571598509777630417759370019172636245757252828125292848400305685861383911616111793280602826089778923141738911315194847556346352160074461509672832478078514604019181690960839177466126223525810169677589373989511982748634217231918797512591249375481407419871631130697748594758979979781870189353904844695578645253769843594493527464635989939279950314102900449866011138773396714096888217056297555903288363995350589603899599072574992657266876575172010323431874656939086293804610602627901956444705468855063665662398504320715738601042848911257760919664419249289396953033455631563372875838144840262723928146041875402393055576801441449359659459318774600784285304878626721444287921241428246599346972107123973891136439918870678058533011728170009894275736449433223679811965647382519271573887226544955330991877981217400823033737466631772757441099440601357588789779511063787324983644168578295247619774007967527268741335720321098645107716645871741233680061605896107713690974739112885353210497775688986012434637270546123157393756094966556459689976808442084978681769828318034444206047622776416082290019483689798779376334126680277873030062419096341731877118403554911337677008703574820237069440997447703729659504293183770258556090746032794127131365923966285111366506609536792119094537033573683215265261507595683432550382089193655835947332927743761579683108499304351976046001100288855669576569293014352226966763137400090987715737856382758851328960675783948594131130130416977992500447371231156687781648281389855495590734927652798255013147305378610848630790919549093238119749005603236726789906217310514295070324656349544732929442148767660460998368435661591744205183343946649353883172779297666414122632147310687966734274662653260763739763534103103645695369141772097079462516087741556901563950490709718601536301250174901835948413416275575351962281823096579664895307305805924692674771061337065173690891636532257482188974235184209071685641535175751289085245247926862749657907195199088611669622900373990409895510155349946996215838250257031708454087369189645609347102010360961777883373503421740767619537539926074645982218324040283183663759856062683289518092061509760232963557789848309782677248575604186005053785233614034736129802342714479628918176046738495041900780647965762933853842419962678471734878447074722841861542176479489439853949629666896751630918181081455724955538694338498154888942409812101601205778533928327717431000868314082283619383304993224756500279093677084055737652159808983206940628043469678070118045581320437706689148015878406180186942817055571508230691780806108148727829101260030249752965602092806376795002507900954692627395373279535303042603404888213346148532051144237269449382779383807734747114426123958053437219795773261764411063692379366031668394878441608085981652121486646458658019671265554388829313736472035221198472108718433139465665838898221066472047940423170992455423664234793117702604944539403122192022559560005808660521532751928756732110691995147399325758820967909254763503532948398950146753424854361589664530780179718444313125251976749280702517701404669908314280698183293280900685735023013303547901596838671748830387165340075359619698976998469983422955969809522983211817264748100026561454554288434465901942453523713415527879165942163393196001699977147917410310347185349246015496378328174693268452817340163973305073005748946281166685161123964249747767010470605937364043525225473338560292161035561523552632637956255471425018033192947916182921847346296316086323339776549154069534612708897200789619108931639247186328642861113880088844132308882583246893948759133785009871610307250943157352532639466693076349113452885500303826886522001704162624330972438579755729117862109781649751915451336618237635250292303052913290861670809262092738936679423371610735630630199124622684065823852477998945856924485187185214387883542391458708847617919838341618075803696095967175264399629746702193025537974723167705214906626648148610017102856226168735331729614201845124270037601723278115030394395622356629294184603163126145721982283135246816309384396861587134993583291853223339825559303813473731627430796498886193190824907337351769726662167216524928996664624703191831153493847137359106001432414313756079497311771625277375764857224082412683201052879592908473293925301436411793456132147389766492477188364135100321120381232176534563968584749907515495654279646599090731849663494600498078310360864782113737968148766265085670876159940219526287385326554966702397438029173151320965444068251842395359978957347166867312580373297441837307840364978921221929662177141096093038090143769921408117100718429400705401070240724183258052978360947698315886118603829162020501455488158928608544622290785712921714266690298826073417714757362533497828823083594163420446181764932636267972635444412237981111354825640025605293819371911750759656648477841922843350365318144971540191453763650875248763033016573453374855408470503991094831761895125655343518248450196175093297697380211540616851447335537813096739976786470144546405487127697668394327881509850922208986453036493341402413230927188551910282533418672701706744508898763300785519853057508171242681428715605621810886915478084827550710730134664471705389155122842733732008822387495087580108171934510856546091579258486040440017301625872000430705433160560699095113111294960830873704607546634865610308648843326973406297226286538701348381781299468426048987936785628799234480715993701143603684123268452842020068562165776693531923644888060758909975669111481370801204307863452118937573988846383504558960006262813415118239480308704520296303817893782253796521666180157962102477841420115122950376726567637103652806399550953184740483965030043487658132652995562098574973103488704886946256512063649974963652773661453000157469554602047061742219697558700885177790144821699031706896659296434750344709919833247511791127843369313632077919940145006606711821629340411904004089398430826872135598734930244425321505486909589763551131118995440981219716046698272483147673754631526557119151902255621411642341422942546059736421199742250900874408634236452880250597971055703686580201445610512458517209976627478782133148310752811211697303547705490067884821531954017896010891404068532261185318139466723303286963736494167599480984765205474420992417000299684025248144862128087818032201387749058656603512296229661986950879122412476380921023425777926191463837959893561696485270953794602377943963017403911113238708767749065200477351988454747894425138020866872493147567264942095616422163099379437389548558215400162087641890449354804532478988101606495246694362021949703642523715435895917468888356679975415701942707116781714226219765770861013475060089364785096578758037572746370628371996553328766048208372134052225685786935716492541106869406515544489867685806287783228680332220118143211106186756850284967147684031939866333229355497157747624332938514134098963012889033123455952627177917754143313025237985726424995827462949144165996721573609635679210000288084816328260398905627748926227064197789037373635470305315125016844607136490724321685587423988063549760859445128135951860686962355551169185603622327681176016440333495698614643243733189653281013777096641659315185619686171977034664178991196967213207654875278724480751996211148973587532083568883981135711761235162130279576278775654834640262140947035112121275059590991882782381099357199915518920771030769744024441525736496055711752716125279653377595594055922772858645656596386182059772750521646318089583395932674541623212841767528347013555427943934706518000961988719079716271750295605317637033248039208201687514539976496078822441048877291295593831953944094913442188601575377945518764434147687135215405086913337120211942766051855516248113056556668287214492699216037799475037133934316706178959262785869845904877030018075244915542584505185016913132501913395345850590185484817335512485444229404711767195151687253577072930331168293594203349977839939473891523671003136327323848356978821883246420030799938023995617578437243473483441748517503412310500200366475646389991373700066249065918505667421963094545589181196739217214754949183446178164905614517158908143038581564244215877004675544472090295732866217069741326958343838755696379560067049481459349003679021657691218378742249435100581911019026509947496335633609117938673352482999277139140261152834670748893880273524968744879329030969359060835082732669127540488920607053631499070459200660278261922471941243151488994315365732063352056836267517843128391271591640829849602327192038270646252128585213311933079112617775437371681472544538149918011091480666084644488814873585175684360854330300758193436702459963317364354318597771712871527969115926093074290191658345281393360569420776986433846765463170457051528356686977292596100100845794094405297912629974978653917028830161874004903697651570030265410878834357081518274088339617246601674931670833713155998187786696807558318365766794340919673076297767081244008236110675160136080363260712232196809894787477799243423920591606483923556854766548085250946396886276209501321684416859685227640104985575499429466494902315160697839795135399804592084404162855304823632068102413554393308846557191335909961851501273426501802371452567406384388151300731829069958916458555064431416548042757530964949350559381947953196193683678144240035199530132057058794447945572668182046249418078783966443817627616683376779524703586440042645155216407454570882681588160796120246682119498713840519397412980636705039518898478795174217185448664564391694018539298230143920235942484295717997307082706242189586780341234735141613910566372288034374825628234754228089660538347279093333564708980361142137510309261171389276664382911029524592849498162999127128024460010596101740186046848556229874843767780288080902602810461113959265939314599173290911177206802378138401520881828339447685845026307733340864361414092580190293353713771659991337134265776532184406867351921790776974495050576180047309287064669536493162057050042976691742314778755593927689510102271496177390431062889356196895695264217712426895967779746785829525786603123014813871796456443036195083242237539993917796398615904637878758344347387094519763675873126821831283377340041500765769139782630469558774812847981125494722301385593338984661800823211708227516685053558639547040868849854454662437183508190743600589765431222681409185215500942690695683311625940905452899764410855734096551415635058968349090278661551703968553512029675053085203439595147031815692745112028477898840207836169843368503680394033904737908743350174487631784235478054212491983698047819000989833946524262435802904744146378627390784516855076735086975013186380637438901861672324824644115755017083670451545556705853292086318165082996339808453878731336013698429892210362738315700152242562683132559204088878045561277608472335657571217641117510615700832351077173867138649064229142649071233129261707941091722020277852501343288789710173683250180119863797463273301230588402218270347356568536340882013188176611790531767889350153444545589136545454990846409192646766776896899863354445366299467958580773356628875493207590118362160448839587080687102294812134585783495693336774818440131332455255793977261251187826351434220826849236087678708494301344184948634020354235320997315891201191816684252114788153943909102321466775345444443827432664326768013831949634658163581345487620533682801388140235794714990476080130429105673439401581056023220390557225325137981107986418753534052161333559252794779870054909836437787112205123133109031615437809214215877513897400597702855599478402098036255023265867178716186841619329554394572949938496333483568329700729816841671145628326597686035511369699018996480139254832971671632714602077959929751066025604966244804485499874416712679415788959506366558039783404508003070445575173967938935644507504313887301826742725256433807350316976659451629595398072432393607183043837819972433986736574340634755646664343821110399104087704597846329995446236053521999614930449438579884994180310899602221501710649669029409123409620491365809245085246295088233388946561595737766062365275385207816088757328242102688897031149279012122057812167211871371558035461462228011131670133127532928101608727267732336224539164292222816547383024060874683932590477253856480360365255786877892808380881894561098306501711364025499472075093332522331856566298571234396698269838020634995372101262045860120640051463925227893102935667431928992682760559019586234239694762366311240472152984657952895721966140269244753592758667264269702010985352478131737405637582437986959794282123764964226610411351685199241111217912355469617619711857642138510285333877475289308869958352117412330205339745472198862496953479449122521261168037016748869551854064471955523116057244304643437556108474302203765639497612935152407561177850865486595806990007728137608124799698306427874898064006043433934333203921320735828625125342550046944962471756385959950801820454723150414158389682552881254745384416816850055550289538578179427751558994661154580997192981905294907982583707227670055252144210172976615653719711012530914223774355954813056046509137640491353601850219594983025612545298239777436508463720241753221138460802611323290819763590044734389338320633740688966184663379305789594513406820472253367298489268041556678483214270966292312105805388353091247649432371091299040038347358802733550356144554102946822367830518439485133877079162047941388745746662040339464258468898574886616463571196734179423270523553337287654917739647659985917720945120810462065676761938319038580339991959693032113834701112637684245034570632038863648692053483828792945176499247893388430178293217976136104246821702474755605333872680006124136388658165778538138149428718668901911215464879933677629669157483087361734835178834339111351755998490976181187286081458621264374225421394856893768484945478949685197833767690944402246814883022850397203069388128086263405470080222936927430497527375912037292755443905452674486290927805414184338014026042968943216273768948140901828853719728580222594663381320355089810447570764933529094518008830531070536187205333280197553416412859410805561187182701138301394654461092975604448396427221289293990386557082925632824359014480990593986730097243204578350999837960144905875132396744769160642801252297415271016028623024618235796818721380058673991497964083666757917255938968962030140305485846288178315973212120468985051619645217567929855387669298105583070632558322082065672578289153384572689125357991600624945911000313075244507021289989211975995283237120992484957593483863648997571989147692632363655147123814556215909812633051054251061732532489318249700574967355890839883526879775760118862111932262159013112353580150321518304668000713540125264573849014170305155135014459837886675838644195380924520832277601467384731390747334640462693163104171919143029354184777801340853139774872765047448228775793456884606656112792679779778109053809718107241468274487383674563416613385381505254697047507111348540826754194328395900213837609023564395797762761254876893729672733845283566291523177408424388855012576244880532140092569129649196777758728984693537174599040498670439965234974021245299267786676516216278375605013751081478238265722422599650567541496035900928085417304738822420117504334808023563075520039528820584955534263275774100231821698031450752188414207186937785952207252245815873613014644389671347548853156970869737411741286862858664458800915735150729909036356178678001355462663141823287911870188638400351555044399145847183686073649257566541869770535183352163933544151095765386416471457976717068797344500440366952427938261599216391722979214622879747055561663453144180846969827761522821472426790068975440841917502273803543367799782864461405831116216582476288805847373820334130622295421378178725928938821182564112901451648367412522151273946320284246739651264375557497853602564822464676981385583544673453122868214839494956330006424537549166342903800912793950862650759883009881917367321537249371042901838434421370924878903017366207973967097967668132779682191903328205490393052948936937387468960001385436949793077488814309345223690713936585928924001498410297697400574908954123751926454503610014108503137569440672538798452920468724683701499622843094112714121646548211371543175597332327490299269015658749922294950830895484878013063591880257107806047944525929946702666151245700950659777946411644488014957112327534822807350258340770997324095967447702392972588561128027030415605772633586167621134328657056034941398113683956583064998675986614983569561467508546706502577078392247306589703478840322504662599501231324969187970291903681966140914228262362482564792775886649724627433592884467372203447727390756235185339613109307918453214455209865846437355542281672497181637429725427593706421512564394138513877808817476668279416757931955704340168844245005192900528517981660864510755751772571529947208510335373439626897269371138800155124734949818352168955115073268537363775418519172963661056156811682257455691478250285582677484261006555066733004660055405014191924638705342002626777795095157461278010819695743128774966754574886521631351699536863557928258697695645991628330369530530603069030284438531884112358132178945248244087250490121391875985760642999719257489358884643332034647721386379450102156822277296621108198024482790789864252927212882477203455725747493797148525375976846476502478610233998212135440926761737561138021168604671831058069555988844713892251481244607001744342989017902322258312803947318078717891817339136406835297211179482211216226262960576337587535796784930457734594206055523972765221451473725945108318610129116416477292394985717804449975708065645003206166079159801458426851046530373417137857560362560398004274857230060284791233990725199815590100366681512178126695983891377433182530508337946020942468773004505164340312368590533178525868027290036516999278132666506756896890250043068657391257138254588288326285955459919871440398964120130495884461574436579193458241929088030016610885210383817545645674094550232564483565628843828672545976409364484092159084974938525713053616032881460879369144115497628766429217689312675019661486620785504247784959236021534349223304491244064331593986473969842024547072244988026371578303480479006576985157680668447462352768731516462013486289573229995974343046116310856765004266126753832782528870158488660593030531511920868155324122359515576744085196022652244021132828219592175441160085330559802891051547811242037792692329369838021456098829075215212806689635190828314470865056057170704147685824671764900810326591411367716138430962568547860059780638014349465580287668862722986320489492642232049645814172079063406010497850223617646162820272013400908510841053847690163199333326094827831789381012223310888355845843449118143036288687455847257558502681900108269516922029124549780719640185053621391471639447575243800959799176388806249454467276985878557351461661177103178098499523043778289916903001849203181900134107234658518677291347776340017362523432860538264307934890048736689455994176376219094338404809834985725958579591314354556920056009119659409693611088729179070895127544448921072228223033293618067384653423889858397419435966567642545934060568361223583851367026133633500212929680577691688147577180729252900831420190764459410150519418559639743394637611357824577287491070203607259682473636310463085210469623553370862714555895839263698653125269693724730879668813305857382707478218242088627414415537871002706591236735673409471291675313970087682583985616856300289223148933485485918457345807396201616372508735499285598905027057315099833868744570189564484941288886699358469581720379269460546219012128963225473009104845370087227560201788543528655334751555877320333961185897480335090844391382802192389932265068062131348445492381227604003147271850358935019219789949975607194376389277006762144919036579869314915739006911703281070288932246856752833923437322871040025956611215661277269276781397153466544463821338447125944885925311454492813863966985145865912869537031507458901359196494131136765370157665661624722743575638933197931503960156200860253850218147173214422814202394872373018072050382731673965384415992147647252969949838107844192239877476870984594212299126625339831668716516860053903398161935476640706923112090272924601687708724040175109847845429878943184561193378493108347662104447947530901133533011077855495131213007207616540267702707636295615160213109146443691745251553493445955150660076228504493085797120334210817043663399574937824793082146910076331727594846107809990562217819115017329446095437493673463997185652946447257683838650825561316364280582559828205746351267213062619449756072268261960869824060357412683929041418030172912558244604096582563047204031500519003390503148135695870453833627101082138653501353669595856965796232380367044588445352391563028635629499383236392888111122409142384599507447800188663043843604939675353942010433634122375585466686476901231619983328972187756817175162085834201385820754524622352596677603998751155528390998756879984808992945146290430824855870781849472564636996691333435799794004151196463634614713257167123182723095678447579821050868121554123831547796088414837637163753766343831090210833756900933679972124245311017222400922256997397130351315993517324183091834740599567966434148402286806741959350331647234960975341213592052903320798443090199117769309265293036669166776114550725436722346245281509252028562781936280933329324770913919290574233175026654009981539485651034715542431290752165437844260108308972373475256556605222081064669831373231387293783853728227883614090823902548783924517649028664835723629549404045369615348150094731841557917441207039518932983547490534200660513616516144603097753841395201108886415028651885992724410957137750812454824998074288933376952869435423674172486372299403921976665581344614902649938742783540206647278233736785784242206832877472328628718289677757447893593286304455286819998611652751291679597954315172729425458876998912045223503842901332055571862703587449787557849437399379688303885725986037308526972058128550750812254126401665326278713608324318717766841255467442768991229578989731596145282783138155520559062815893173224223707949889165374995858179522121437883316272770680953642381886612641363230006852254793741044704978718850682834616316313896054850786169694575509110918619938930291657256519268243335900801832984204252748554425895217219995030346369449359301978559050300838682140465759211733982861324924140463198281839439714392118477140643201435516164680304147918718027351167856596865415313440681760940238629093261390335967510703055531871929244725637338550644920879101053143101058293630462784941285770897891064442660353994558558786810808598867199014642687093543704204642201656017746840845124041804610844347396952668235155091022836766935743743665523013313661449630609699365258614697385049701286574699096402299486981883378423004215200007268646012905818643580526386689082065592212406741851450105538533805750631899234815104649188997776533986910698896228861443183926845149802522966732080725667091628385945642131316920253923303725275139984502625597164069503300456022433705327561547090438429023949144911205385439944167177727995440716795103824027784012065537192893858867391201680347952988680564557838972013225753952686531817013569794790200148576550948606594646186042858485842752765527603823123446892961980515421771206441218027384261211327424433598148139712438705459463961100287560423523159773815069856622633884826935315008730968681636155203410101636719719823710761107136947528099740627639400406219201918207765700420498941346822141033974171005842053602936370764217470518765531414404916786400112944375220501149050700717175427348679050548462622793255268235228322985253620518613399216678044533524560376218519455618687486548072070405481159380726400027360538736481743644926457119297140488820365050662108261407209926681784709631618774063350656592130964578738934638621869586725675866708434354584951613071086769331967388980698664797381486469441566372869764123807875201163240805121094313801117473396291057460850058740262504259045138072352863002105825526063218571540875215419499760829546216195865557885331132672496886790953960429771728716974829067201482067161534951763436618351405525717110285242728464451699702135766607731067984835501385007029320084288769787087301502772104993297127194932431361282006705978328037994687952829587121069005979307312754954157981097934093685095702781769976175572913194303028847345955954836636727464038230112023238141273693040160078052677145279995195709006802755733760199675272339194922583094712651278579848038746918072447087023829720926385000243521745112670768755791650001496651542304417937637737404513348635370042887422795143096559667339228297022079189454340813119200263159574185699788969386337905192399240617425133026890670543640729611911473140262958022324816445540372195196170579400639738928211220630858920282844106294393069138286597369900992525711171170941233535777437214009889731610275692075101791705503638471761515930512062160543613524777797805877907156478612496013350423936869182333162190477800425705553760435942813083275045045035176993421140375848465286562425417794543754943483789772944163841548969824186867807361223615285110294322603670151075890209072627297256475376818196402884905070103120105387920713177624302284629410450840392563875829182280200135613973681752409162501469011170391569338741385619467474780760068320381378468564287651961602557376606868688232568211070324844479997147349173909021526033162459078201979481852039641482363446467323582783951961518718363893034906946147512090981590344126458791750436795687037518583941183481840771513431092574522468683790840359150869777563041395787257682485516014199918158592216607027349599011079880957255773742848026421662034354767121285565334732705649645370005566101230246721511897494746632726135032019196388504257238070649288676452950731470344538156940560611631312524295585308684499416601814955862158391578274342205424060643847597555425846099135605167270247368794226289402191931799894697208253793242992523598428395637888679295616544498633186918204037790973553906115214887512462511269312058747833460691794728837988493953590334219846928647963930297996026719385369566262298871951424591395152901160354451719466603818356158178601536680913246766976782885559652942491463658678289139008188802360667285743099151249595490314893802250384541770130011422764369995792014897651782545106939843993130817629984360767737173180946064226695906162128823871074628987375607624850218707642060194389884285503864815071675221737234874738376549773065307245339443016063592625581877301723844459952536149010197796437675457899043056458394813423282843552668403501223120423901164127039888885553756814520223097100021201859382515021826716523734446892890991738785890517542701931457001716719711713730160678128177857349582817930958064354348882627079171677095546398959229080619979362024866527758914048804832975354017072686797316713795228467296356087091292628467179750206487965813512400829474616221824122052454428132656657366149417176276511226532264638837648805804406670144138046552516437576990684351843096753945574486638513563524810534788783166628137124964466579883027268746664198073292288876246393351562443001573176194268343450149553429552206780426606085913397488162347384070536093349187370952621751730429870138610672292008133390843216655751787072827685598362790857091448991661901938831608214781502058194220161566709403084823465189418558786203663189622049059516590103574404313839195648170764525704338830603130948661062464243790010013427351949369532897333424773332255046056990594214833424638653288166058861844013434280338772298641388374488961039972878150049025912262926568226116561281638842313697199394407598762495324878007174398316707739735995299932634198815195760439702683280571148392974076379971714329523749484399160762075159935649218697153626417193682150102801700981354248888356417602938283900746920718714362016092959869938926492245592889004367160062584333848806641726974867530484973708172851023479342611265932010191762737908810216044902985936334693230951380188972876462904185582532255604527164669613836609535736365519303402739149339876436846309505465649809945491995891307982097575104261743260155407932868169563992935179926804851291150843413242074413313024918092896441585390233876446642398184280895974945820350976521891536530873670926385881602480233136120514516950858958945196686838126762125441546614488172555407391491114191267165163335409701050186677969586267799811351665017002108620755717360708025164439029450887278843883606293738162130313897545885268599250591238385796424173453755756398146585825683461524689680264579889578448025964640113054011926901357765148411222730367783932157623470753520423418126965485736884172765285939565567141716606763589083827225639744944372231341202129783085334007678527923992632410848066720631765656068767080388893285450538762388576772469665810215878967672197529459207438676799545188603456059217306043438392925672150368614541534211555701639011083780236967008716295400865658636565213598757896294093612635537156734167188091094001211308910073773964577492525824854253588540696615440637383590191278685312549295374584584411713864385587901394170840707474157271116382455152912391644807207825745496906565360062055052689240961774955153224522922616266196817434042181244674065203716607413520214968133204393536890245170368516227058948875820206674412405276279817223514508546951816619625434822355990947955846746202548995464859681364481609860035450815196057247649990961828562885496622823684253898428253856488924080152269557656519079287162289056749462012394059487729198276604318030943352699612582150630591766933262779263228028429573054370248869381219752773565111272328279230023432923862056437664766858703387053576824373592665726443309305934640092568559495870562089247547606132646311243487934867634057453556794021822806685521181991744779996000173797330245659768413643637972875906873969037669992823176650719998545848441390407485010413679448134229921737933323333592220285611587415535903063383194930354193182310049244997695341673199683025357435830350643601555600140778536843674214621354785720870217666055473252357921657334729617100880084109723697986739801878177964230920215160566742434153139792765773744710663245327699800557587760816887164789698923398930748051691879675187099334922688642979379520839094799548519703930399891277414675532969246562635887694447210077161889429769576360307251361882606078075333362719842154547822058850178530674930574956942532159984971554627531563607987656679853787845310365795013395942217427533271321242628830681464378813553926758842581273180164354535846111541063570410290801784125789252907434692884642462466132160643217863294762549937165292417588412681355020497909906189948339111722307497268067260079545080821445013895946936101610491543977563653963245180349627713102772117752901302148558751826285527390824331423042956380778102651259243408196322948424027062497520067726012901820513021020555465448349987106803478127849863839275073079769636045474786791475968607197747502096262579813071512093229268634875148155535171727908254837073984061509764952398588917738639605227641123055425399169829695336778952481953966033839574641781644490300318958336007652110297951203831831675418119115905423613595743913681301614746337004536242598859585751634598862166829730376410470720396952816205199246516645599016944197383427006420089550321725696658408576976758731495890268968658442229569641890510023338033495477252450419610246909612145820286977992873831719423021822316618682179533349736032513163509224915939170945044508471716019886248045854769996857149676336629318434555804359199900910856687428140961695841534091916995444546987311279533173860582791710332269128189224387740800181494014365419617302130260016033835937491400611211114994680172357670701485889897446397382137426611497000318843158797819482134703675411041620243892360968542794857219454903458294144872767193397614017187647152800570937152594314640415489372579719850475132166382932832801197927415078117506757694027198389398993892454950105596035202865845479137316478719223038662419724973669083288090309276462487217609813032437984895058723298481834930302917441208994358131910700655596157578026440546221521002215666242287704825819767190507527188873931716015753382835789179721511517815539281904946517609960963972977640505271441757289797736180145230263829237141129746341935213747517462933847802489732824643565806814952780465846339529620213852039072035558798782959409062107947111315640448283737579411974783388287576630602254249797822406598491502778677290557105107530538369541700157781484368616247310590562066844962985365501570294231636685775580875349532573712348575730045571600002921982098347945853426175847098100271557617256251681103063220504914121748407863351686980910184145556720140264692604250552858128655142811016750195023797950689760094460397781164182052173369920313573166341292163772212557757884678288783577585872524770249841159646180103092528365119339825622360562144483625769592076775214660124495910949751027460918848153646082123384397654366217734063526485935444016662957783722359147310002440636033381511941789258376801915867848751134790874806440792013957686653349886015290239441559056913946910669123118556603538426939287471470220633287259453429665720066565501683922161272393918191995600431591403746864796430398464330638907331859608855630201588496191940137016015379158993076033141830685412980437019216883078187171724881668589490245110724608036079847121101387139377636848483447333882980095255906703486859370524994662057094837241011678830986389644619244542077583513470496344797683884251801448956775147045701941497993422666891198362069330437502026565879471726955238095485051534271558586931254053351542611335287602359164049698015759435890042301890929653709545984267063935602092007363418237781382802094392638369989415712590265720306740668197778316701040078916954000307191681577557298545113465495948643350043444362272870796864772843650586525095964423682104072326255913133526752671200374273671558149389066225318441254586595356725373696819552459559175344858669563143230515739557542802183462115170812087058611941659645902288369573453187418296582715200675460993325289728571125856488110210613970276785847974645067458800557362966754747299221810798432419296560293499340507695535772868635967612716576502185734407315129438848915839483268356894835371809749031857197930330904567985185159158814969873733198841713147716529466392953611264706724288281030770908286230194841003023312198260105267242228833397703053328913238630525113129153233320956743909071693218289359067398605902677988772113252000592162034883418185576921993518435127433167178232229197976176971998259969230696394443429737518466659742649233898562652676072839208006864632277356014688067379068902410365247672470516023414631147201440521465563737373062045777525231749386855774729089692670497783213385456587292909301999467036408900145786094161488818452331775352832289153646937507592886213247697864501545258257794825507406768380286785597834359749610957695170394321540988977466162104038026043289184174841809226651025305054935692084232205199615656521988173982355288770493482692343717823136480944186948603320983881569924475411061186670726961325845437927096273171489710787312719729026673383922286256414286486954342427782512325063308538907176808490760414409996417268409977293338854101376880960461666016953295226307436070066421015095076771675402674471442079364702879681006739068248172490256946317442035570972858806749033140679705761198454771332255142197200953946619900720470633824439876127448646562564203797060826825490793331806857747930386034287877013382319389159421257109654134001072461936618418939768694048098253703256050374801731295791706380229505712350195990588339051169172293231551726196218269657140643152367920424427754969327238391909486626363903796530896129522725189070784177094347398059470944719184267175118005343815958559914683276344941212595069037444079648174892158222988907982450365514583525947959438214620531978575563966478130597036519709539087811539212852806839644042577482327565948629110103902165195674229781896532207673150443072218484378791357917219378533528385913510981393995959828598014121853843231763024284929408178125288986302358553490871026968406902320846158678504726436567251200843514891282418862918658380832825520662423454231108928243828412741075814434643353935461186824250088608071260610089752542908056610637313810704338808887687774564640248831978479790879738279756329473584357729451349063122093637313691286308560526925277094369865616458790908007959206926496982057753135981519386045975806805523438485920180120200519826150427960155106951275936593725011690467023620643284088592180829801350047822118516066897843288918552005790586101444072924098584065175283670964712814268640198738730159312665334839198727658030525235840077092528422096369831152062398859316021565405597134077640384496540588277078761228034826186764936073032046470796564736599926616389804619463708121721095374335263751880755361051943982268629366055205541820058865021752127799107064360430664137480392171684193795405465987164851210254313346757082736150236716811429058961859276051962006100177986157031848142412642496158455312720668774174540110754542358885074659742190401733885739387736760436674414242815162252348234951402611184961181195123859102745636284423694346569439094444167984032525788140685417237482149333852669043059946006851327532038238930549789380430383259035600865914851362747845631740114118709588317914994624469946498967774631947879820563585667039676214906991856337917390057238265089463787399499311658019309207523796222340600809635942369236366099182336607385450579967155478027250928323890307302590321492255617819465452423262295057830281572410774655872421549335969364125366998050491711690362466753489335327662550320444540078514760756015275073254608339032655006967750322123109587345191739326271670083147991386493682036141908714291917357553610316464521590804029222751021512795652762140919085009217782520543656297710560929820344018074847445541331218899252952147948422049258465157331747861992328742548448332072416347812960598342558468431558570126692969456831490636534843416653042400910256790183479487694947244214452227269467193624495798368359684477220533067284649213257785292526337147246292901242931903488160041797631614741725551947051925029025169048753439793110664535275788268911682373173400878162181012865429242296412816555807610335218397589884864066746956111384437839493585854653951802205160214982604614244515247475529751633926818546350741543706721378698325658744412901069261533112817328051850687831233859059215930865632579985500899624928223791672484211269685353958400262860371700342057700691435322843356906459138210035396685824868710137152157182177542009996777759998115823178461865524861649941698183161979846137346443934033985574628781237339145094068167570923953130885448519292300527857412789343783389170796923753025432286119352167615717608964902788715453463823091346640814162905660083116295272411755833918646165589639917420066495996482386938534481903186857376764873130069191605519727758176068657993463643163364359308459804340084864941380821934628677456242118544423926602816749029936586222503529115459442900525579177832807802394703302472868053110181891189289320978612417708685397948828592282734490856807487541076909776550080905175383996191785334662075465053169786605165408230394588435416370780467470795498110303106358200723235077263106655098602490979914390167501938085036738931362528742777571342742749409275453381532360085395509484578832454900615978659842203268929870119072643377832816789727553056846912927437048597035810881202077502859673405846668541742810039558375294206525699864902231408207862979547488056476344499359659822980802522192337233903331185022313232534678553237660646481486728191081142207073387133836764808484011869945479337044865688796694313199019361856192570104868602057208908446534874945294458000725096791372510460478114936094607757260926090566808159000714124244251706866579521444710132545785015236210222424156217770723126697387340637867424910420464389958350142556516258957967146963824558107828996527578379495660331574228128337908823302559369340312141260723922197017887398031077908332996880226147970395682414736685365918459612556064076841300824735971636942604437096503031951106182470284254679615778656826775982733671805514486452711443693803694540954020235523129041596112735383663492340084881843365954333608509141531627507945568623572865674099689547062494586107486965045693745078052770797773672704682704130142241662070934954690010357448810211207252337850226510409938481054537893377910055014718590066741796994092029207647786726959914274167770882399916649207448074392714962488061627241875885414690941283759702796080822442947642182016290928297695926906102794500051529222678002583122757557180957941276329119621289545626695542622588626547712317412960053354532764409130303327471761522741171964011268376371393860303712143512496814150067660983178157597692195733422696466876871193569944373067088809211683698455317992386665870338331547282444128347025877607017297249415880171516193263375116093058218973820131287685926436449642834659780529654764047279939605699544870548559334325122158773223092123828131917060161922132766655666421211085810428183086214941271046710954337586853231233651068333064560071624721634503214829750096755858460549678986441920813305797324623891388403510352005804229203740960393845060486711130590990950089123860245506672906519805399976354339158915217240786801450798713115674869105594370649744634065510422512525223241828818383399829083581118932776878950497585331039903498310254962834186042905117432423263296128823840878585130137139376630445389149609858690094019712654926884273907235466315423616348022122137488477276832671263992906816958413257288551803480354967321982981875227375528094165379001656853166219395200007754091250925670515500976186655462003990300539715760374386193697269456063913032927617606000257390374544857421699349911444358374011537975061429352024850370245411973177245021259532922240578187430954736103879460295062752381296049034328402425625913090132801528219312076189812379257043931202153167195666453245890313135282577888887828967505957956087780169735163248739657910483511005606407400893802508505126007902413095612038156981451974520877340293837031818680848982032410361251451844672420420303527998471697587127282454152319452326672494700532870077218956879356179293758741423908734733774669020262651585591426688261560925806390169954825173340640161637260045377095739521900331356790357471755717669376027390646300445067347533227996542287007813509962803724760379449205670810636999655156319657670441555286648056507961579878856279186254896590803464035853951348740772839150496986001120088849032892403009320253921363775890913939251940339026475253845380748382153699424400459405353745830984675172632298027848681284726968854608951473108863579572889547041198946916051756690737843614875605820660565484143332343148470736928629052265556361731479202148094300538966416144513597602450080641804177591487510061891092754329878254328568904675462917615726060538797726143459597761516177831722675828455994131977020099126647641135205021525056133128268142052842682298006912456377899991777563538489672512878239146545629000425135164765703948896057475918538291676925212658567146706077642692128704723491573704346749045993128219171179264708209336944302802525426946615031252921454091094705009447203720264838473605371527315167436024452979555521594271653186631651626838765772827294720512314586844029733457773967235374391125876357471551238391593311660069186466971291599594265785810539077328275647168826418201060679121260983743650914818027634471482308276561027610413287575850262356208537656520639511984127253423646285605051337324889955809193066442289783990490859182553883389305920033900452083529328716262145335750408994269122610288386698966467149478633341718599175893629099649661982318941446475346190995606578832088417369176543585182253006162377258273278075002296736520913944759729848843035467545136514430454076858717624680251208597576688717735916039712211757316488948434533652393444009748156792827476433214980974047229471708099725684482041162370834993885900885841952449337139866508887239054441449784295844096272345858314938307507930729334401870535375924187817470399500842454037823974533555623390658243005785629394254571768332921599532554518734585697388122628922425266586869907991217852750794246920918197429038070101476037803197049403832960318896922565500181990050529558701808769102825365566217573398354121150602072665556598429949167878346197303527269708090396651099387913755919770263902692625791087719049362572071527714233467463241698353887542048437140175582492130821218613345373975847700538071288901803271750563901296960033924883245778813136001334360618277058253095749573481263589998913350572546253296068985369989952220171786814132067810447866511127660011851737506516908594713086493429632506900304509205251642261286555293164018977769500475127785233757349368367004048743810359080415649744174672929279395446993016671798093079508513576567353500370325040100345531449325076109100851798888976071505633706975927367356255206442690863124910976653990538722218126020010201607948698914538826442088814686526753178764525356770467412971852059762940350078721121081949081903543278650026175185079877627083586989491365635031816242348257340458063929931046971201785695474050204465567597443362316050070312409451727050359810376392764408328292654217495873380739290089584204809170241751367375381403788198547506904729432816488018406103423984732269330823046026272242973956418740289336318673072408749085294947604233162427211649436157718590908553428809463984963632021741159975669889567714664218232795388661475747790662997416527084621962816924162208238995629192833642924319358149084749098748211552529451633218922195336031998876116350084294130168854104610081798556634582565929478498596002571653995783340629309938468934557372446455515613524911570478727415624851257325332769264822000450626085173456528893366234570915574726773190494406440897926537617689661134581124370059219727238450722387545894285591111444657907695223858643097930428760190317461960990587743103849911834082728116535189521065035431372094868283841576314842082094111259141735767999641358034275194373685504021241751485291874786204219274654172118069870792736776628250472108525271086287770446428945063887925925276241364549369098398460170254373268055290526699712573978640021573143209528877707485151577528197959131282818468664013066282232689669822280939309139237736668267186738179080792520872584904382894276047130515473058126147637153430606202105696411051259551096558681575787497925288996977070135447587026505417839339486624863453542658638924387273558377233149836387590510645032472686171855142178656618233241187875667931601900256566033458481634724535804112050322287463446324547036089390428382528099896505008134313505127633158740299322527149804205255414396260071898644894019102611598797182718338906567599290489654434580674955393442228673551915834017492459917375566307212154995058250717281055929636948239206877298542226643840828187250367805351514534794167824695241951343918135748488766782369037056742175311464270060702672920261020272668818780843157486131035107068407403980363038228070167542962404910464365277840602790947939594096408694405529692009097760999331148085269880335331654119407019208187509863047544553350101452335857449867233520279820961050434196419837238871623437171612944214779051107193740049815008979252816290860395018982510472280869549313069764580436888295018947077318477909791718923300932119336086317755946660318033913389208750671102313513315283295015423735173405523224693866271780781978336895464262655465169585102842421100082861165323849389874163396498802835029995841284231890058113146758719023297421790995947574443041353285005578233876124991084822459596425906908701416957037139529355575248448500794463164620234077365448178094764363571906925610640527152198208016816902742857735058937325158678744828445260289383367345085066328751429040992708111962392760978144677672844146126567229639018898910633076774287578575458522349578219757316081458074635480446386525992611246597010567352392721394964813267488404862035145262288613753567102138692962285943608315699803828929757225825306300937009078137281002802564903102955232579408794584069633291181941042045205644922881226037649363596922872761102513223726329709444345191157119200312609045244921740688534229559855220047306406371695645856574878150017556010552226593210851371457142886404900011231110353626986455868469611091954328865945377762599657499686154078557965103976677769939561318893141488313690401320380381265381272281637960911173383290901926712702400095954667295047198182591189772589063168133047273747850793256497218452683129145302501645798830201508274181405090467213608011693755875468984049118627581519079911305365770446381853450036908081591618916978300678669050766097546577089936881984376037147691730818706987858060011967873750382553179833359182809428963501807284360198811650957595033847449108737476944335867956805021880114323482000292337613602712550954198931122714606508728513512350914394088045303016125128431814488507849050033110701101578102955581228872816802229462828908545703587410608449807129633952144662868933707997261987775106248955233129890963774128322316885028652252618948232556059594739823973989612730254647725828010026476550470675453049985922577345204346354065783912893028092293221018359990375023984455900213758876589268109577814711047439325190020581492628782102499523378196950254044058779350505073305912432160739822545194634697913544314512978629000105459184130595112303507271793599363070858601444382313435963731065618570610909171219461832606915808808213975702405524278996532734736000334036312168722033239201220839357308895527855579011417077708701686260259604829978613223371294630132437487772305606101720382984544676415538683443998168999640547133599285324264501237695084932721781325903784487083421268466428424390773704847617373833618135012614783390306187973682281948393032840128521774621795138628340808541706701940503193710364374756330561101053892090645581370189471417190964738032340094968723391204130957643955833598214349814550763392193318641111188802571920636370711897258241519812551715657268597954691816868196465226241527154825169395489850157953385167167009009746753968303969198345479619109101897695306277541357153831092159608541076117064289602145000080161578977959025042858766088274711621495503704667886003098635090216022514096054168762189143363313659010598471789198198416602198466147751433097227513456052754347609055298755590321295299189037023031514279744284927980852168728314623530192619384694472782005049211383075371162540435837989653716391532945366694649029476081300055701926177896336975518164502317637109506302141834266487799214509646686063349677065705409224111667786906434795464084500000017270126142507670799269395082504438786840920458774708490777262380450023001147276415660780356468071834426391195905747328673439087867661725245583967294200855854531857481734667769872982719790043382555475617217809907561189310712066918357607157810671009997486065452296834307545052295057909437799174695829284986839859556516717972479013158242430441323855243822900078907331595604019605224521285444879918389819639390723810258195623642296792028324833922067493970695259345486267195662483792175027639057849374301568993824004063775365027053026921764477999991156057028673372232091469197773734621924597481559225891431305523570851951219963615734044082175176381372765453647273366354364139705911133522178702904045762985856284668074761259722367771711943537777656786661255334748008831002408270497590715905553692029639702951943026115267504440689773538279495669114905878720073721332097273689260849625594364931143155937878630612176561301769278413070183521325276226580124702612441047838012442304134926460996747757700651534363646143052570308189154430224882465110317747505105227880456018271942505333813799031227394195586383650753212923393607550528166745954636136918120743081448860176673313402369995323601972763748658545529571547902762082476617796084512612145214057344390561859928368768996473744069404799323468011982577466655210715593856356320808791472651671104575694800163237493871101727977919051505619115183386506959121150900033933291279623014634861649132937347382369582955461306725210394146695428780848795567318144260614593308919554655265299180875671741619467617304092080872108376875279099762646165726032552341806515922057318139030596271596043280234169827369605021412214231023530183656821029372660749134008397572207405055789390746680862127502744512800522287549970715938551908855180525559224059190399401269980357703269822666002113543020246642720417441187454419136494401743011813346874430522750734786216911643951211992398194880323884706854723924353471217790849128555460785582972620629330343661932208105222174024668887818517775038696709475844806544691656575573753675910382403551624887875738732932717498989665557663585910812435417622567147516607167937651521361952868505066442859055368414508877707653450472751597301394132044915820682166169631708856452960831146818150238923109268540265413704207525071667833538360607522870337775584105919442665356118446664146039479386713821354447578893570008320853285304278840091190993809581217934788683122650056580684729342175760099896292047589762192439194115696073057144932367521445164279318806804332342372607750430897469389468229781979951684749299125322490981586689293473896330967032463106196273156910539097770282744983250827826514435693994284817089051551356964969442993464415108471310624814523650635312375279502889780900609980130687964870421674318139857202294338219326374721252548911015861076699817888998912193057406694813795325163047763268372006910960058204765209967310493142248790328069754864757355938524924832835169258763159717607508670325837628225862037528845790874565794962205072530677526301349122997075595511587142284450236794705718040123864770351307727287596609724779533267510491499035189371966590359324213139178304188634159620832482752336261330358723652216215886394542855994863502221076531742417270395332191468744570914858453028008198447998443194135804108906788454513609318328969405625993681196743651941107047815532757901304677544212865692189365885351046476719955069632058911558157281927119875356347951326414695648071890402827344036907991088443312969517675432186382451287816138024931372765221610688609830954392713374764233127766856806894005440538273845993939640701998294422313262686379738719822369560029884662648069034553167551354003178667257675863515187290450002776454232407543500424157423994901616971336305798570041925483234690880577102485815973671517220838758852161467750880797597796051804287272831601602545788304993815059914599952864107798061874630751951473975431237293414915068547121597357831921544282138813744626613172448835652024841250358011609667958690390862434649920366178942539581603371867650160769906932181678788152437067624231050931347719612393828274947079729242026002413466901489416049463610031597566333532715151332468830266066911590978430366186216183180407111680901333578849428796277589006608302456312060481457456209479395727303354175695944672030594218922960806676381023203305669090832035858764795985870070467754916966986900212459521717913740202505791310841776982028001084667321657835117937008842113272217844996643889052924731806317457197275522707460622556696152071216026867657097183668911921833402624196538599939356190473418795441121526113154259919012735922274720501347232556628400723046228764773056100320753356998669528012066439407804656001898232475293561364995524617146432060667437180953996099913953992606137618600384236453889924350618206226691373111202875958337242059238474059899216371771397659243330359238877542297142771168202590195645038003421321221665016965311529568087531891712002030259650133929681324620824532760438258337619517789079064485725640300738989298661389249933931371148503086105201856402211839093769447449886409857290801397255276319575806538006434642843011988981640075441369242529833908175706248124798474660582185352005922254515585635154411241429184466500245378391625035600877106924141124302420566927477141270312377418655874796055242332267568327850308015128591113347881284484204646888192186222102702989453138241758501625585187099739339264842003932608202080266073404073811579683742622805163217698929616149174287318280547950837029625747085643230874223384565790413745150894329050536811772008380337276214409940059875520131054505618996217311932864249945279178045110253701287760384665018224449133641090120696040351710512755282197318654920613899600856521572662616977867460861508242770803686708622645739768311631921004845990038202005275406102382900002864689716227328559471723910269733635359443503360504022060773833868839606998365351868499198792908556081366272823046192873959988363797276888788303104011181725772174500099354993118761625346660256690695112901757150849246048427605667230665309156938571104690584201801680064875403107971734139114501668927448398708993278407139073248140972320526988800843492926122797119762039551310614051708932335851827463491219609472939143981729198766468167431798548916982759783272274775316850692071883589354839112607899992814165153270357392211787040270839637066965991804099493295028546137899826620326104811262287304222798900680304057972498851549189175606641361811110572583967246218215878774425368899578460127069177921516755385847827510229953663805712407885820155370163949170824116405950474109536768854685412483899686662215030924121975055229349456051864480678921220902670133854296532920561569341484302557840080999480090120236585145186438952757965416658787907108033252905212132406862117520497245553437132072083814423772228760951689991702718848504621716602351698083138325130432131756375173154122329664278111722518857294332472848298835434336001457788204925188248613943535690042873645105819045877085225091428756714476071420100588795645022213194438806269814110944947004345287392001114508895973002574283856929365281414535050669087349028435206774443860340495207127761934365806002941196140656148362664762813664653616039211618649747844807279588780700716540275991960528584217000415024471624074026690979151643401028466479401780834950750930087878200855792711766955845860679554354226537133301815237616640596032073805196280586524739392716969118667454188464422281193442460190307930988665077131957881572479239565392495153294520790104923378149376889368281297320811030454076180842601892046042347044296073726901516035557666529394872909468931774663950155694879564396477754509934242766829032255974445817722577836619331453427210607734548097014568506543284949512980191044152565486364643829453280668702630519085055642246227393041236743073639053900705585865083298203052613674732923186209334994644886920607997346670989527603822277471070525268383691295273598329349327519828433062606394384157811300622808140367120279719214004180054086008224030020621163681977564986790200888961677796521621765477435028416196692004010469287717781096809694991719730004684770464601743969281435981673951444572094732965603970106445833857127464285975888339876881670478813305212191777827573071538051879782058195947183483118450872688141463386915040065874147129382341615918834747939680764803601701914307582972035458547512017251561198430298067711671803139504679014831345055378204697807230465507944694944007077108581389867390955371564752809064312530360080335272788990081776162261295734762941263480699681549800552489657065049935994459837027771431355990677783102347697979339712270403360922172714679441699341291646729320231926556455451546225521909567824879402256520934099638780486869142660696385861388203462306266450900467954189360632918265797096876338811795319707766994210417082468715846090347616870702998006728792831991603026214737454211570266387219061469522225247117865583079457749219765980514071649026142067579153835918579729469889470680507579030504467172819641215407309321255766479348231883623798296790785015130792766676574304610348978976473690142855955931166414728946447196168078452417315610797656561843129641829674994311183310986760772513972315793768715942530900532600839787197881245291120442224862005899326119025191655900776292774573469603227859063482033059601031408095148083790864756130978108816583113560116692807744769425260329726552819955546009320957874917162307282960697321974429968654395463392502203530365135822600526164443985652707589775542237980503889038278380187693283427164803395291632206197539606351761220254340332900168433671263628471271378643576069350604117666044505454693854798460558987991388150216577941349361079476399469759560491362494609119615036232776525448700897436415857622592620045247744205810758037210220109569022960449101858314132816151954056272779395829129117365701614143702851069643759635467266256077142405104136722825716127451453525161997410290411224269399749050906128010307972103387431130829038070556048315230588436355390334075939786577793043403859703061357902754394343530124765730257180491106926581499658698187693268269338296241965208746221023603561689937832795340214755426816897844907581305146311389076022970463461575468513718862437522438683249481217326834270722864688709462388584716344632245667381133161724964948179780654300397302397508288933701766940713416511034275036159340563612158009150105879433294666736074150654321637620798196384961559196723505765999269630388394413430644281718039149674438819827836006288542123678591563585865074811395772194725402524092493274831940890603198947606744673019681791254582556715229068185036029910844277058017279932552656025261947810591594458068566146539614803051749156953195210434824459076134165877142043692777213421526473630282605734454202499321969818906988864728671491413736425167750184972740456432681094493561183471714968696782733612403600976665048381354466776002137869906199170526289320020198894696471497021581891404712021228859585248926458236627867758324465954239046562026880370547451290873566542109953210995931520816366463960577693006007873969319922028615387630417941169849822517234993310681106279236284532631898619439733862545158213009719281096514134519770743806842129635573572708956297569636908498338748055367547363230847634391577703507503295489324311258258145837342122963564154865310015214662913346764447008059338194322355335219209637492553287151705764578154842552968230799258317583936630773279347785393206730067461498286485978558654712087857394482222532023561610031668395019847705032927331324439989769186470860218548877827267318888663887075461887355876673886807556454702263361318919319061618048702138597216856739521611255549680247572673572332527419675992594679456226035215029925210021750178380627559258882077333246987298299023854030051097508530483279627858420325282341584049200641934893520475616699480953940586882287989708398507921806306387939509005991464179900140172766433873035338503797318889101939785392875699282895758755418473313298182212161838190414509297109976546528574480975233397237380719619322615158470867209983987213630785514617655085400705388815226279510368051274049291726164163288329206994256835711513128857173762262034349086416331315846311535347175965658934763989894176879980151783153412556287368798847702077778726117269335222763136236749451844647858138546055562908601932399511145411421306162694697028300497424373188396283871975747108381781328996573055518381917713073037232177763690415603854941537910773319844973652704912538208560361971016951134402574053350089645064351398413947654864529912473374926635298311975137394959598325541742288524730293611376284929168101261550467900676273130944524212201118831074111937360522025373895008278179299320478073477007281437288399642339794305969325391368794216557865068716529141836694005263187149278561151148147824916191501463183047124976840578243090319411829804853052498495021779669410363000180017046736928961556166316832637004927696911543057506220154767238633232640371300192365449094889184581118099117426702245369415062272140310002968877331504035911514074938694128952126238697745398404184915058501574408235787769193729345895622128352006214481293877593329573689116122966422189640186106327288404988835989555395414156197348371209430939535879964117103130758718816261636469857621971431493403998325476521269501455363552742991906846315520138383320790264696014034256615467049700952967349053232826802731626255885500298177517237584535194218788720890327246383299756159515165333688555736536400767001661756365601621990707511392904651387014970772687552603517161420373671923114390795419299930182936102311284540596801949396944214175727309190184500782462588167027284881896730747944174446473640613178223260358431248437546279126910816194988345034581282862974052781278581159538643523892783201616288761857085304321133240591833151814805678962845337780380495580199106866117751649809151341422837117394157787100717820928607237403269653580331427709243526330214790092710395447308815941951047958890769975552117710932354542425964995788025714772823247731511448075722223021291936211429030201346196811749072500695343643535229761253012219827331191334159518794445135898380033861149536311286570425630423490875020807565100805523873592525083211876455938197468029800403749235434393705094386856869562364719969030150609769227901745866641595331386889992003845603998554015854165230345467673188820780012636555926821676902610224386937085472753731451869211071739451093104663366194060403289704064759860375753787582527361761615056963710056537968613715455796877958179307498884901483297762609606570519114126888583951611383244225604057540274500284812009117861250642683183880376337360096265019639412862108345366282044072669275823152815237958063661670719573004595720504958894039270416098962745802883327840502594754969346540044762012136027375907381132460284818730978544952659864821571348254308261159613318717890763774570948303375229819011618050245355391639789927676730617326421905057476331866950306000784105039887508869417771536498183182562931553155421087004647039995082293130255615949718165450729332065533976255023902204473205526121867732913936819525207790744597119465945270280741501750068989328108697364862075005435741881225209077852621724338924018179696159507474976860452126734667080153884435352755754600944854500708120553975507496114602356012932755340359742320039776306936279942376076811049646813741631905559806531295042209448153142065482288870297163322300115856684937599652290459116141083313764301822854020755193875316600286722378836005992938037488263572219403947108710258938712443476137509443957201815460521534222495418168065321533920808289151703977326738094377976772032785222392465100431058673292397780455512486675267213245091076030235458527495278101016948159209342749696032986631674155669752725848945257911888925690637991558926569327686642551453871829405948684650403138084158515954237747587204163151401235197647312584467778672605309331054557054578063107219368810644700365364348120690236331260949924123665305000931463339907354468760707146082371951472610861988112621418923776288750954669898799172689623772723957734467202013628152102465009899973110524338198668338276808495537217465075299516575143248507354782715015085044066768395582876481641953692711161126327609987528357670958595572200289357982657460525687161114614117826360312669660475195901213350643180421971189127368968077283628172947405838673751430020685250623975054209547092108208714767120991702773054339118572641848826487608273805949191405244540958905367994213414525179427806874151705111904587191062390222056766154784251761209836044744026389015918495771384224063850533612743126949866535786422486351140929417454037114535820378037376913121468115108711675779568925460236447583846887490726328038344374627631019951656565197717090287651058029241830012075532133645274618959823553439659956980200545635925621458254849975213136055498333672699098970970813897931828470487593123879709199666686585619468987839298554194246524390582594552624481981876238035630675117557226817118611640365737475361621696780762588857690651637513591370359074215311610879475762628794844730142165794994894324650592565263683518980287999234567177746247490023176169910462416633531584772609929056232111316110221365547657881888042773286576231611351880535047059635341602079694655242054508575955159459601359362414067722642845287281502350196788280950213136323674799629910943745807492261469901579690962148648464779139745246030846697957269634218364546626500717785195658214954487037070603069172804777185096855035146849068376321512461963042260507683472858786771758533988092521756190883742301944407145846466073048406157166570162788865976273547243585814931908152864049468983687124434485875961976305553430006393465323579505533951766154788617962717606604052479325811256370674417717128403023646946439338737238050883552548079089588635187782263055174376399322092630103642912980714840411635792913322567086079223296943886197420038123860230684188609673350141661999678266454582581342796980999537341365613233304927544870562773574379876312779609967394147954057855493850076480463880688967239948753768311650112111759322550356183783617771582583303321698440139985756241104527861015665937853529219642065868440450779639635067366717507227151479767477944543274691817852678582787659511708132236009527129213651122141039919770862772551205026890400689544960405004303106933300026707971254305424347670986284516613522158399275760733163701753875915700247622656857073404531891678905620826029349172783307623755974770154367251520616448963348529323862414229500950809806959402962338146497106019102994536132071107439645285420211273540857747977221764983114889045593879274437097887261058263262335901803834316296592245605886348692341429033096156048170557542312504455469195645119144086760137120240549978787013279147663491291778507468329769816693182823290710565478173761852776724059098318532083180797785897325973838632695643528570747901833279303334200436202425384307239539815232595891648818583824740157605482530258576805074234615470801853248219347510653054929941848414725149887187711312444362989774950318061819563938404463683277495241190506824827288984467868260592943803031797232788917006431513783174434372121292235266377661777439644779704207677600837365491952134501359558200049310544920880616199472745096312058859191571780346384369337814060872567789747635506083094341842670609159436614693569371755232296641741886120735183589650648410619586216436362560649746706206959290167970953021363764115969881060534849462255145445631354690566898961186397489700556505521240276425411819870128532768137212012928730910489221739808791735354337628785259007563374197166074283760485609721288318474249072458629496259931398899826043256969568406716414659474022939111191384764243456290315953326231759853201027312452264312000467333903987098570546434342428400837872301242559769867923336984823474180248875729739118193299835985344295452025092860594592499381134940480602724513798053941040962422051533026203883643971987131768286367614801903621000204691398208460363199959884543740450853452575715555002094365657266807047283607899287057222647983709776917360559403481613344985778891864825548866217727754558467125824965518857446521445211800890104120793385091212278576536072275462240288874119548958819699781523898388082161901564890099717595961151709042890383595703565415501192731564258636417580601220328977735650620683572290389451225956947501943510776896149825139981744329936488944089266483604552387148424146171276845780796819079386199701959794128479261352175236697094733738482943559349153083974804612634435397709472674273673537391759943835838672099581245627028160374977363791685600542647960791272654299498388615893657026872761789576648031602648103806164922585317029465951342956907525718079465874388788852690409783475919732881292549690856935824775286697650252193349729018741773336108121593090686310684783951587552182143801162880053683681450395285914048982035342930439075372947833991884343301058928229604364187531084551687037583426646141580603928302975213611187599251740891344280456572116718797817857214947615190304591907835276214165117000300448530536671989975102492684515493048732268810064335117558147641280268520041212159833507136802168819672957831866376301624796022424699229243787377541361315251421318182993449430164185650301768137749200465222031925217002755489292102408810564463069987470777840401904222893796229800017598904629740128270093438191016913320186955131947613892734168557042116169472375199129111702844049688358809779058231735054416399151669787816623346745475281254313180425193856847588174366806338121750790025017338124319660934595266650264646856654698755147430756618522837078344914746351824462605225398196889130114385767847508320238979405305209078992857042968780889146501378757655947830394462613694977126751542544926783474493909976797127354850973920615902766168681885335390372619482279862872186960251219855731586301334970926402331844361310524918110935458902930490813594448603170953088003121569742389838980893442151018205333924274645705555162077648582162070613592936641987800622378247084633036090034092167821633910131729584711524258364095763761398086143851778088049721322917429602266289830897187435908413354113768102585045623900218887190363521638069507334030302767031559911061169265698262928410265073075935184275577531124117344054415498995330260382578150673523412629829075170339688527044670867249087412324129474966083836798656171713595088060925246912346571708915652685037711684485672613104823000326605977048019759736165477054438916478858045969188343079812775091058932011940650203707161327744865584119741555736260652314302955165924918614377857102880321255555674070846163250724826707768310914815434371983428231475420284238231778834289194450586126982178140622938643757350595822418767407927964008757202890042059587287601618576678033786344514996570133013653972727038768769819217400702977839993482157644275429427322917191478639691932359765505637335545606764594340156460959890513203754690052100263510489176901108629282243108345250909777597491061752663767793033335260774232899152588437628307004691886366219283370187896506245458135395819238175215016408928378705732415840441386410613282107123303338629086296553137228199712003647137903365167932318879987298495331190985281362488274493957283546037559262500818679472727672053085685100268833319531262988879783875192079675747621560877554670289142979337754827074913062483909614807851817082542728586635490835110502805347422402252877919190781791809009642330786858969304535569216186449428211689157911068750385843425548267115109915746146053967879691054939323828079551283529692622793685096232372573913546273665565721374274044555653384457302744732086091384477203251652295427798591843646975105786665830613276417349476325124265485811131335400353134001686726420903797256982023182541906837312419102209423962814935054731077784702391403753004032714209005084540993409891250199664278333182374350181224180092784857525218774460261634209004601754099814180970132545568336700781743661544029020777361044622503663708986887380522881098883044278825707425348887236945792394339513374361116023882120980642105331214167242157108044223863427859322291971279865774504432864700750328380658677478979820794240688815148550435469452039641542010184343950680078391204723890413190117155220119939449689475501506272399698307408722812578109525966559907238786217329847101336071011591219684547650400814951713595954470194611415762549347082059113129169230128241691939446308781623988612797301141434994794024757011568388374315882331084689376588335759465187656711261179800978719798904057515694339827246183181862587106875355223011282004000120491307725860992440895346749829229559286161186950579438535064038587330266035095730561083277871341912367876015927825712299981835627745272573060133603000923777013445669846965696021061869299480602497569305662766489050800477655164809762520173635961116086532840460843869617011399528370244087277228930729733162236453661677795867469420760145912318981776054518314480660385917659862296974710676166073845052860984883629620159306527804482820064676694145562826582417683260776644390450845716622531903732277895155095627510652884361909313509755480504361723449718962027482279576074919321403094684781690617416099033022004542533314334557408798648110458048182069635496824284295001161553450578340097858867370868892535656802994747848909018519711681492624799411631851767811369925075495756964569097591112255726183358089024303537009531751137383301433080107907067667547779610756572181565474516661512323521236519398089324941875383667107214785774394306136479806401375115897957042664874723743856036745256828769538733421519749344624157897038110861238559010918721458152352584840808591544717302632926984714807034076090247810236282514921654267511106416639190337049989668646834570504520981701885249568264636508289612651540557884531858693117397259777071582652739435284016665428409243517837335249690769560278988772784192743218880334992587563471826863984276118317479342488656481302334797574172230653661293675140549149749071404631172981454205136665755333586563419934616179480503240473321231166516328956669745028937610558414031003740974724309410906840246177741774724438226047199012688397396465431971021578856706013565916202060579896856276354822853778113796316093418075477606427682082189921284868699657688096995071512194940597228603594272439217090325579949666401383979419929670921303312145587883968517788862215258330868917481288781559056541349282632900762247301363078058925884989938348842701541064442686738846497187443505186046186286696707867750104048870078304717261410656329242110539118009942754632250448743109010314882110507836553672497508533600332307580017556522696460461767527341258920258840288937145696941386699990411843753354658377646232533100915275417541818923163896878883373437530214784465967362120426937861190013072175057003736576285326667449627098125839995407213539106085833899777562538837471483105039348947934869236500114879711532119640826297469244006813071201993358356922001538240490692585365650277822904766775205006173666213492513700231616914397984878868029416290536339918961043857767786707709082411528204537372047018038538617854297377159010612369703309039290908814952471152978051976582724196791087190726931272254693630113340019947533165950471352052505253061690956422906574581805069386203881692099833374515331177665103042321356094048985289132224759768109349210251653707342166355493675173395269653056258154051503348422680202119920233734982519095642104697021577401444664839379240884155326002480707338655777268723053973292562289278329930988300196264985560753590995038020628226398962755519936947351466886037950653526837623301979628898536336586161368057341199919527637751852771672793962824482872474385848271874269833749615204354495689855597842108297062795894476020939100110456279595733777790688706369891410439527566761131248957352077472751834312683611072522568890300849185469153118702803419107471828424206038805400498641975326406890527130828084750596889021248024670970456939533920918419122564748634590888537280643513311579839564129346416694803757317161840166909271068127158974732566526335045205616081986065042697026336550083613053591592146832467734963933661804417031069515107136278932081210726882216687756356384795379118266520112930915934599089609323976386304158384829748862083944056580909907077224583491551229490378548127854621828392452086294276917041665988792597418898877941152190998582850708095121616576168427308007585069735934082759681078906546592625514580719011015854373000852322006352079779009082790844051447189932556921816623672307070458056468832317381674777868767179639922325645793432252979702783820611416731341797739356866172538631396283795042793714890947647311607382655837366494841929537720730867580689308560619089128378039375609739819452186332785612145855677585077526441965996644218108399609348610342872732867137038353621242006788718791111538115898842081395362267011618338532038077558126450843571263169554622511288103407414669323086582179721327145885567667633081560146246623510521305270614378427536206749906447250174004180147524766125005132597537697183930529465809957414050668835456787982003443948416064447249909673318047791129006356009465813395205336134515693007971081100677559843945623800439880344103609012196252915807372593102863248251642509497464327373057022200625751600441517057447140479379858022278493002721124855881780427224958104120711770687692417201699092075131048368175572806899561783841009868989273714273137240875196552902249754222131680800943102577670470369647791966272150231230900976949241766390604956024131847552430173997595372371001595093204740842761823060430984925819006946162686734621353092210147387647383979812145734502863638679782277091013218799109913772775601223197358475502366076351832159560325415035267757458134172702744547637621819618098783198338695373249639117870286630218344842165539935441567493687978657862280383534628743939759528830544067913798479479232561571187446594662517686172874753422936348841051931202893759418002428103245396737371575703238521553127098837494839509041013810308172076908734314803204794836598104434622126625849754545398689327017339656686360267430048821253044108719630962355762912581237997117243910467105549372640398841432551008657519282023452133025643783308731704037151440970702469443969653764793664324656488227016562160076198935342201435954559018160269048704014034329702899456484722398214336476255135263402910920925246367135444278499461625431438487258359269888888082012448242022613358799620988432468691549698236550808996555256679605651515524245622398854346573909650098578936750046506392349741915871323744923832354869991723899974603412844118694404411142252569159906625293513954408913367531848862121065590187917496478594703168443476174894085510030839181498943825935350588590692240453891554504332305942807488564355601612689591694360921626383465439530834660834368420929431571244660951277185485583547452473743321592823775802153034905330748991058430790658410261192587300026738363877461471055109970508351023419483579659364564949276794540609392652373680278460641253492642624639487345894584685467496502240348829866581718330293432426308293860214541837364326955553464925124652832964288283198672993994566687148223498296226993646445405506663256118651496612752546533455951828436280298335412446822815185000341705886712439625529972451344224938997608666818432860602581752088388843724335654419640630679997785678286397979368212619196018231197325084777704498902482067964878120934781706483816593517573701434830830231090762630261369431522656996884272423250056566418213871723713657438723711123707110729763579871542531556193047148555280559937828346408341278935040257972683586859824135541279865129951155298024274897357208846119662794921192051935475833196831984321624951716443499350999406620585363589319105746561925438910038846114963964508119856861638953192912690724645762605427878447936361351421909196736105978382417488650495098295781464466629135137666301139537098180040040893725190797186059711873720561239492731275919688378912470172191389955986286662933475186213944126965127818079059022904839492486395264055339975779086668623509995107076742662134526747257726943725118780569862072652205740049920408148990802009948216052061455777514319995273804209960689964514445159621106974636044281911821259687208515800891768533337389532998464421390709348199146791523327650701172293629021942223686344990722550747788071734203786153068856618918932312116398403943372815101193506848301839734575262786737363232280440152065025700634079513981232491937125075562175115554299538679440814849141861600113071967015888836633558746924444416677699806730871033905556365042875731118920647533230670777497346258629551801278923919378346386493117413871159590673908017571274261646030053659818269702212975837231198338286639052643946405811515190695099557480989807052566755986584067036672928164306538246924844507211403672393346600292318127437681328643148768012401437228011660303165567980180729815240842285515087402409590103868018667856358368646614553764124795009789937869564860174980842230842699713734909673890999537237677279751917190657471076454415743073889699041003849329648224208283699240601123560980127439674321833012524653913672847799201193637136043649207948067619258353556368758073293257930621282500938240150702096612275758931777753434444490073234346354644846744016668746816642929839145897962603264488227329951890577184802559036637346625260338891111400764455998890199165530122412864635800978786399662560201664377795332346754198032142156404382421620006893027708419811738839545136559840736106180608098917933762748974933561755008457360533434186454151138289082627507633362807809697881558564662134483684797191320281478788958779585114627354590385146533048148248558577432217030027902136102197923379458025608839493904081125619514559947237886505369784250411908475071032327205610345810645789369839663909580718360113012674057927954656347542830940111703130683241928479617873327319434928977178702403391453318122235799266389344271348796296561321311588745550215534978516898300279628560963997344045590616722312368102952216992745422129364476866458038591815286117000374304564546432268401682061369435226348717983198830462129810203571527112401448363877566287849375544973331248001377045765363672011013420667460512593376927568590145363369437952964723423056569443816192712425646587008608492718700126716420958287835359601209188037164981308976691398616103968009972310717130777717580538372040963856221701385981086652707723048630482498090749143302071753397642084639728785394240879738715332260090266535589659242773709442567718004757065520161324006307108269178128673923487084916395623126897353079154740189230801715283089477545359076567166225315293502923583998463118836158103895154402514585915892620128141473818068747663858122688532018213777615265307320353839999570834678540859563482237742533943484702312799193970161203646790863636734583413236293846022333592336318940853123539825544820511077021914733030818344876640918915790702826979078211306196936508241689194740334358214148620500212653968724118819441944210724260462631020897349368933775121474948927201711876761555548870340818437595264316482071863344776896787063936476597612183105758395047555759621749766611840627041771133263794187910998190933887852187304658543439170900993928428307405080787317588660139580979540042213927237826501702519927824661871728946203294407724290710934472955701115470500126879178391376965612345952021537455279204774985290128381189030580001179769194609471820940881436018860663282518347586093566034997639890101637233349157737969058570060076967326437053830684537289826205020243805829575398224407763506929512620298488288998713205518599167207597756572174618267720774843296071042078701121992044849295012261882129084302265065993755269223430083673767468546977967164981281427004898796370032158181202052603273379460801070784864470371431414227645506104130981037646385242420159332063562464504306112998183240215622292720502119429565051531705457832284369775816860991131461530748299368141309640877557337119561153447244066748026412308731513401937349993982422032568153583762716266589088964455784078770610593157084536805725211490328247855738348706690696879883795482858696071577130628087669532026212626589089538894241823603700598348944961567341149643796385554746048204475338559637663031831475721834103111736506077372990271469844840017889592360118662119155162316985470478643867846289959014930650919259527512172132740857286239933697881703103234217775852182757099513990369879013844389816274508098417310727224750449339459923304010971701306566171161770471728932057058071221268480857925559787642100712382722502622974826868065231155075255347674668995143371225329128859351884761522970561565195946041776304299839295451857522433117326768972964496872186023380352284349644478897125050664933256348385289681233312021547552743710732736245457264079411331028384752314954743251335646043182381721990199066750651988865309093477522846323607134558149240784550498480172671865837795988925815516858689603728955070435528795824668790228552837903736674300331294787406840185059053698926607535665683961210938799292365439821716639826216876683701700545308953887591601840874666896416656217442387654765470642447506422712636047417133090776179354859901160239232505143151576978106932676232923450634983973675251280326043361543189300184025132825810478225375122407263075463144861347659567237291845529946436140735915862768288912610228130675307798222991302439947431427702672954468898855573964551189377244349989008891537956939372358144973055244185179148999944958376834269092935725500306798841454206806134007755263471522308881635707131510445448834329897118741855007097563120076423707879338106713376562835036522488189429302436325244271156264007379528815925446115217873257107034325651342795552613916410491873856043061842451060840987982361502199360763083566906450498366922566279397910028267214091070570359564934853292928786530574190308508326745306832787395548545820610430038085524983685667969614409988659294111426528478059239001858323447829885793085328538412195697428756802153596738232269997394449610602190985359802116826601023147262244590796013102222028746452529326882439422215272054827874432285540049107654779284157082723540222889453152876858441546727917922528769377039249425454528017621681714268446120505738820413653974858310495010459924558228969133557925953752865765166095585326084585281635247904662801692265913578505260066329797563244655871774603019997630953317222775532670229437963563188563423102911026122666630214041650844660871171443862026239203153311741113795707285915203995615068798371023256687457805324206585638176351534573477504715260689418297750678285964630343583841106445002704388251462469993920413038954991124050458936509599969703583626646689321444517445283587960921941576819828351709175476998823900548000186122270934399184575536439140220308612464443669631652035906475333717287971023645041903518014817407758193882365809442531638155626845940768398035336053151870885783512498404562983027642614852838291485232573137544714823742071817517970509385653252782512873902328695753725820840587747353668290917050669614947029010884354208945739916739971931892140069730145905006051586277732116776916445111991941235541048344945463017547135740698123269088415481663978216466368361645433110761911768938428816298699452604108848443480373767370116812913579017959125824747442624887563695258756895850438685455159936329333942427767009876252449244864060028635694101709273591656619300313592435603717331351822263884045468154608167995335041239163332585024852444606150838618667152486052888304417946369845516648752708414474071669761124263684134050119362516322185258328679783470604841085605253581178797760333933103659170209457001476142924660574220787979982891949042391422383411102413959250147711458924019509545540020593789608119932512862475418333189867809627987630692016388881132883938134699328686786830841729345540314564435707974863725737857314650095753543576723154168060055302356509901165699511920247217291267518922170726466788815642188966773415478263593915459579218440397369752917256880019318299300642781154629391539440410829647640640332064760631885487338934299756925423321956693275532144264074598081662849889183036476392635880120061210257524484132350773073569036956190776121716296478468571524143536618247338607668893747476602214584347794996402430307447977939191385330905459533154616659472960247296476774426648908142989048613917013818133898643212592905256830882981157054060676590526233539774307548159903550522911851055974815891745459228475324048969045210964138075720938468589710762132545372898496404602695434577444580597476622164016275889026240153221050950675864991684057136283393527814793828060147320465765293134625586652840706012353328596622746116702782191456123327672971665900919754634950281242417023407127848960359688498753587019926522517117440919136979384793426322641274965443448047780898160770698425436492166820798702766320760143458548359044425570711441618883379319893380207720771021950836665304520548920916799350902176381103612270043555952906857189894224778471176117660473794919496009985433265761030784120018868715552304831507214759559371348076140302408708919599732141488232138495735867495093804437765192288658303348642063389463836001467300911487984187772642235674679305421041631559225838500469762497389400462672332376639191872508697389219763179293544287499459258787119502698515075524139606773956855843082453308274080631928329436262292453760353518763213089739817402906312064230309394131458809389601803507595099472161957825951127579254002344375473973172517381605570658583021559509458490899847122902417101933425047936545108278325070534062832660699098384071242209271648286407789246918799329969223149305218065334785417145821988716205611442576200837273146400917523040662719955532502499764830962167921074874974836359790739322039807650890824159904313579401078558009299808965883092854655150192358413249235912600455534592290739773998109435279388423874516608360405571225342643061057606917235114683411955022048167450837142717203705663013553863924631301367902489268701928620080594269645111634946266899872497813438642396712832606948472413663252337524077536357103749408068676173637934681350566834044131483711370985791926688549535181955618628714193652389764882284146290111215970573776963918047861915966065692071407493480943679254856676173306833898851783254252771792149830435450564084347351973642848627840938558239073928409891626630055526548948130767189207713158155275224796834933594023920978157943908277766749429369336966289905058948687067452019888767597165096419315497922073631162270686412420524912036771703035241776884512575696028674931835576626084851673959351942810920263859117401128813993181556139986858564402466698185489114574028907115361532468602552802807370817166904540878690850729304377300894937857566819729591225813463401270409767743310895754018720766655959960556766627615232694284206141631826095985417649300374771513917923527344041254478298073730559219826126189523195816649190624630103084791569916723396144405134798048323607065070955764047942204995250503873217796291622221997165751781335905527522711651088048959300046946042834099956112442771727521099645588187951473418192629133522347917497509286146009956559331695208483778756280796501088559469067668896697261188578592307465923563107741967214641672436805894404047518101900765928626158656144080227382717494807808706536254450721478714987669910927767015079262688248874742761890746683530433627126210365750217961659346237058200940979597543588621665368173571177419728834489968579453399617730031479122649485096738642048177357972029958647275108169386873753777032751928881996714329848301548271390391137820818340912816282456185966539567945491573999988937542769071055760955179253747544888742041460470753335029159128541642782940299572339456848070955284451241198717622032324516125545490622374595769898868177483892464862235131228989124577781830664060058077489370697909104972963858135826709835393927518637829315414126064337221304816296239021475584950883587491162274512361970513781392980800245328027023621022728682286249759586986223144086936705697880327500567818804280786753909772549705953541482227885526352846324797421606675276944743437214732962840053639039704077452006118445813149454223952634787853448703473639137017870512441207862354749393664116730407570618598405322492179726248732625008838219604346321801619004801126415548287614193088373994094341170970166302782667748504530797417418053634026879634373971948943405149244167039894352328588152875672656086117672435426377322622984019660203716237114645822897765028280557763162295340655865388542284304876218590711518924712434222482765544521573120608866847377189524897067000890569455998848698452181041190683597005001453128496329358404721171895844838304479815374390911861643325874364767621716054646041683168309250743934645105007485772182176039895549763613799272365973025460784628183148588089569067179619697991473716410714930438821936333626167520235968607688168023946456573245070741268640923007177870274088361177075678384600017549078511675202812476499661361516609617574799824213469237467508444726143615994349065684161946093057056436831747788693320705476356791542518348370054661008725936932358217480958455911036935532209171753880153616303928759663747336279509941265534031668372896283904793768200517873523207566405549936138129223558497971867047829990457264152486097656147288318926360245647043508656869860917663936578174552478462784426012469790415829446143324171988501125546245529148822552862234819391660254356537164272718820519447213233011333508045167244346486514390018548569929755096357642661451243320886050042425732666741550516511501599364020373750474544477238673097253570853538823292072432488762720749473326389605656472327951187531994577586580592586463196855820352086161755678375398732879978479970057125672584858638845153397914210391915846121662719274229727738583888884618807916505637320202018661514561833728989005937345826841541929609369765407991865656262312333800812255066696832675660845198186467948836311510401202405534012895735218390670026341789772615114827763812779479206127583731004560279073257045746802028153513947988937849062268812363363905512231359449527952648738695463856555471305267671875997864911126836309355143933667034671863105775810509575784334582028885392155441914884014613295924904207013372945878703258427690726558402068524109521355159320002153330433784069110920308531672923877816544186213345882791202486650530631360853491434576488523163620821549631061683704732771033834962539263334221173729836474085788311316471849398932681986826283746461497847009850876552003687639234999558322161067411582265828090967891332056172965523187462508445766127165588065661170936663613685096043298704860993184095961916046281226998132584820932694635911419711620788604961266821667449014226492304377114012740564693422278986699646642451263407690403547585005455303549532957377064629746122244362911396058001712745638966587610532293441655173575567636263083868910623960912316117370165758306069864914220239838150050262512931663925187720358414677522940563527440300921556436814455181868724603783744342459732247505483150640312124819450052122282864328079582504283015115179811989702305729471262176524653611124474547110460848948409808318573433350492720171379129322593118487239280831913800888850006500580444857826747003122228543691077244432722522441091294640280388859260934873738021739817164641100449739879443675415017527377366382292841456478991393683382043727885229944209124900959823141801058966821564608551631711133263948472564094084074925853085206935930909396732388001099848762321101404799700014332290966607531495476056640228771721846883265749391557362950335124270589901584935469618696206844493708104270940452246226754919388056605222359676268985644751529153103847488189917826873210356663236203798452206895550332669644718215550545283069063616379253822871717825971618372721590531879083487518943065421951116532756663530571567520002625021442271899759842486644176332832824634150114759291735874501413515326018549659521502723699966922908314720347185439614460578079568867349497401784725122991617706252815135515770535938756680305967743815510480332124483328168800143043000038750918840159967636244211644734084694830750002013270264295081046204276952059640791830133590618085871524504079542236980385904425519684044547175887963128324679557914767880656277969909665248902395135661444345058578221774833303039109211623111989570062864953677775662906638324900491852375175100928800289769817535235040649033804749438238325942417751190017922767234462378406091391841773795100422770987931650844243440080116120544083538348132635160919173585651835505986931039148900037102386588069077285232206670746742100225252100543541018308623512338672367538281401526906506183227578562061785763322407386739455940394637187265056574305179203580055911590698693928697012521621123065435198529000968482199040022829328860334635335057003675869070870841113121911800372067147454763005656124148824704128910294521548164730319991022177195633989476125735653340793772735219089786259253611782506813616709308106408930691061885293107474859208576397228178931516353701170130789345894185204736122435404492018440337689499882660405344033780078224864111044561435101578460875669698570158936510014551436756602002337268986955627469514390137858803426378843119371300303097408070890777009213516657020821281613289434496447675883644084183062027769414462015813083345754090167000599896260627914090379330823265398053615731351241636725077289001868039970830657583645021491540326637784920908103018393441434720809130353133380404874430674808065453283855375175846466347505586494593384499405384100707439344215423485527443990170705107060553283807000352847311485959728562181809470862922900453825399109430826107657780180656999332429813177535960128275815627785999414755594007575917203216766663069246014894510448351157669211186545671538059362195546066248815298225480176410781514899627002093748891329677704164508696110391665641578721728018132804143660382226289572727041395336516122023743122251701912541719702261120077196477608248324488741416332519081580877113586738126867935231031273738934202351194513323480061884430083463718546681645112169406337707915566312776022106726344136326782546187997291237509837925203106734255288029034703238903846257346460307125826081950291017583127011838218158314122603484661278538328391542018459377184971858365624382763759066637498192603679687804187929760588800483225030439698342238379055901457402374825953210653927230744681653734958281066306855407419774037809499571092873187343465181308100998086116141704231540669222661341673035250014305874273820977151156024474482955419203538232675909415379728396366785330323176934069359958103178646318355300830105079875448699798783318963976754430913598935723407833764589069777571517473841362931172080257388754406445890641101252758289903403622535994445758057699432462494472764005250282632363302802588089332468264307123684569524857307757040551977630089483490088788678502628099510680763967714732730430472124749711120162943391262404982899346864905266400741166953726955907745029308776061267619589555336787798788602210125126831035071528037570141811223284003406720597846260291960748146351627481655579167935288189856874433350221828720212769002123231769151071844184007159863432470091799747135866576095489301877933090678184426410433434486468778943086846521346918709024253790650578109442057946074982897446440436751568095755235016036416895330148087948290623267411728969256515258950693809136485105871525736037969588854388449990859290709656140505600598115270320974764535462262115482325489584323525323227029364968228533634599391764338940432377768488314388116835961839351026579155219693897775984608350335249064408394417873593462885056831196615072722544865157821651978242236855494740435840328253028235043441564219344631200141618970837813537142725496953304171626888767199912148737877000405674405901511674311469565157506412525572194422649936158204073989015164215636183023898040018945100954932305296261282718803004303496125201953096173880181072957159074395245733671344656045326789800749284771410359031615518345992178132456965127668356403970411907441249463965059294159194405664229243524342586188953230850277215233511966514588798199893840446723906605442720387124127327103159858272413125851246972047987934593203603958687378540440888801208622753181156415050322889247913165502707486386709663264673664625630650992652321671605005940998209367280352949527519356730533199622709209099153637485536910964370577527565728105754323526363633250265854786584179673517467589686899690458363123641314669305063054652684494986488447640390884929602388112128381919873961797593891864351533379466580694693176050081502243023556920394802285509902180736553874793348779202999737654950345933179011218771855512693440466246288576562772996458979632706133230904392235427047440085171063177005903796288287469797742879753129599929211685138054618964618705816943555700926746142481015555330390941402630824375986222603428806691764054630331464779606446667241205896733802678909850136095193685819975403486547228352491407218636116088578797474363456813511420218358245396994244673334991783380276680438231753692891152047520142809516027869083623529407470657703292878452553807736439905008487830554957731994710291664297745365335587511627029701459421533538893134168786162399973188292722298428792971744320958398457774809692058184074290828562805635676226034098263541736785376062238682731372122324176224962505791806614151682798638398483325149627004415296301770068363029736647070783362978851745038523820939866798293861985176306281068812228028511265185451282614504306557004193093114315033291643266976688658812509847817370741158936111558265370337941879793640576042862837755748516549323883741815062684687280966132545064658808067930068759025892884249564998529096359569559996144278532572725396565054669636729670824112491454609670673047619557504697097885535881282858337459764542483332465701436420565215641468417497025013339080390863474032118942510647849694361205106973060238812874472750598022140326060246937122913025363491030858212133337580818821264633535021124226070848712881678225662566079472290667530955562811794830898361434550958979069190415453469822987714664702958963398233514410837862685606908467638424240993145140030298405804261433413878827796324874137332839434361339426254083396906873598784142063658945527415365256447673135765166618448010898477625801844377554421310982629362933431967612297969066409817836049992779322578781652359501652340106047662849924841781401729851012284845694769582905436338079307527292054701494805227084898840868470409198733210130470306461368451547066410278891281762713839803102686998723941373289296533000758361171187111858329572488391370355024702648616456553183007109315978788591926581559983989582536241820296985484378182976126843634845269027697380481371953403575233937313321582868381120512670845195619984727748843142535387589148069444820874318611729336874269699476361690212490889795682731265272847961036595318625053530597673125352101445054921864740753291931222046666461446376137919400530383245545101165951029446990107965526483030990385939804306576446534262905165682323128527065444952388159902878805537435990942922685107567309767931392090551827580634919725503227094862778531300809465706981460233076898214600095102411562020392638088139829019551519990315864485740988876892552328496319699352100536367809899337437663553288614882483351455855012712061175455672758140524587926346930301746799463498326956743016439754208514680014093792224520390029158001864730898244447313315065056172804674319317494414804038819513270499315408931441702962156926384402522710372214080524580673823116197870211397873015622870043819615409750181010132145925660123826876918480615669608919515391151811435884202830766905517265967859195145145842733298401967885090325065348692934120898669018844512233309078232675348040903750958110674846598686990369383108879881523485758966791548279165496129092313530012990607406761593433434392602294957997982762133734351346570714970039933019887563296692863336551526660308342373172811785107203559875258377487990436043372985014737040898185846339500200623841203662837415838550810700146796166711258089804003299274405430618513672074660961752730858960956057685225731384006494010704154542001363412958266226278826445111368406668014249719127991553312466176860352154582893574013873270506694325737937956221487713344256855198588742925692386516925335361431378558005638508240472412976561697897536328734925315721984667489405998352382612385138024236812887194491216386680780458623792014567545696878470837708812368528804345277492255870683429074078260238814572780340156120403992845925456143218037912123936275628668433237406162004597390022098444448444774208274727792089783410900581741746344373928462114599908780734174049411204815221517369525344159333449602242957510164073519686507769815775828431267908639459593794026661501442873789110205839621762479836110405857576686439025029030674228147676206863925873583041875293735516344961456004657435086716020426423010781934811979304257026459244956492690237176212484075785326889340749315136212204610267411824930322589712331052981637834833466453859558327359822737111373239477997452599632931933707472422919943838522461979895911879774136038937738232705134751467869679188494965311958390212411447000355046333025940531116895158260226810454565354743054013730554452776286026206275127476147322209577074243316905300466721541078889982077601803247750742429371232700817247211616645957415339684225768292873921591628703202887195067571140650722546366727806899357985814103751505764868910919572817940344860651039929852610277816853798766142191719440444842339372626422156361613255482213923990077180793182121128360804220329597727823662927217986097136103083209129566823762239887771675106012406858422240610374356103514919207713551032698628086110134581922081009997338690682346855624385201970948614191999250463865739026299092527307685006084861315176224418933205020358524490135098379679420931568519849503416789009519646681695125462511125153632801694731988904252096488000400710356003510553820112085544726751352269711285935021906903427224540809927012201375861080394677168597995298652804562609825940703395771233643672491396662328401848991960928484967035035547857826641928624598357434840294385171711880543866390819980042157073292800645080074100876191776724574570495815164808909039313225459834034504363263858860753333303414380173114966253862748385754326346520571741686838931890661632087972387212101408833182742846026502921067068484832395061911923765489817102122349162369080868820177667855611823737796324282280597661613199571258256049558993819829560788576194265548695124390568857129189345115518615093630653268710187965220394278696726621813395890353029659693741914837288797232488069119248472650706687559911497479385368855344673799158352586870586953677940288051095143455536460394904211196846977729766055954500782109847549293480277322115386105314341126154306911192396033904512929872122194247486627101683503673452230113530980936395715440583163213165268679549821944032003129552675313419533394796537721772185234957559008585419701231981808513616715285106775783111320819606808665070100526584249932895432184102452997862969892882104517073691531705223820529360264528047319191594808093371867903211018885002704473646635232159281990418440789615555653447048744669853732869191414540164180472587816297394716822405907383607692439263493721442731275975143688552471351688612353824679774052290575128602042224896374047480390350926822807221442017637384885545861068732614901709629437399963985877932777730016045026711072708208241324403251684622652826243849652219669987541955395049621933902061282863284097210535715969690969871461607592738025250086816868850298717826651474872818309011919554731458545038216319436879759900189816856877746542388986703454328691313392872508186801491507033930197697917792612162283101822646900856869052819153272429478807882975263600505334652035760893125925600231903563428581295934181050625633670919135375452652185033346828367845081117448417169813636968167611526626572643025833235124088849471025297214069332221987226294372917060435519369506873347099687221679676493230501589756492003426923408203484749157363375311808942858217948607090580293362761834802616401032492069457870254812745460672912927091666240460012212561897612480429596077676507075444647522533950753168029824309378007089868805273252410623729245899539076119257501711563031836594221656638828101295049940464925751406464873473153614235174806927889194699698129214642488294931920442362150003541989093592115130160802683635445120653701802364007162395445361035339558787271773025215669187707795956275306933697228228041930082179309894260193359781070351970075466870948441010504914702609853585256060196372318247828247378080678552084918459558094539824873879437192830487794827423716514843046999525845180584424462414105709826807131898253411849520007235664270113412572337706675932228368376789762665091547010449020113704251990389112213271310261005652660255602855902565094308774060912311919678127193637278960890446715894667416262002943402027740641887839896594441278703840544787712691329511297873364301618689263001471437231461780178642402020206233170351509129702723847915952138318181886471131773245213066270528129036453408603735766825409806656868413193804610053007737543139852259965203688803313435293161636746343511074429422597831103378531364761930457574314115714515932158002341102676274615373668816573532158950305361532220027057560142983541392780410353434358624082890001797415339606131295174125495988712287277958135027139723387845492566094139348070571427646141942915856031019171827807626493012487251591086168470060163476025642824641088981487299979935020018399003125897674555645325240559959441574895288745827537089865499538368655437185083757071741934391946969197889412578078382436140965734198698486416478617152302342111335949948788300615540201289806703987787121851896948090105429438661673943693827538284685646475460146134542896366264971284792646838714081463983437487140933837293302750787231488092185087763035096971125355436629590666255920780506893160897766070737476928403462122890717587242422788391173334913244388697109251374798073108871801292299443527658791289863719807073129475671846271647606244441153719981757339506445451217837552781912879211832851186458212329176015806266025380485548957089166462408490923481729323380299841839938658479209315848847621752537555318854977206465946291037146674314513854296638845096886661928766317836927060528479020058419209171719636443120373229438689417612507709572726676922479980045027220501581116513778408390745635687581338356815243186848017050454106088476094345094984444734627306206426323692536679864947841631451872639705835813828932375455896687826157423311789857612851874544806103726847794211722657217478097263234095137703475141882938493602542870112741070664993899847251048519916968144746438910325255964263971581411393074118698455960899192746352038417961436371370281641504737304342785697971612676409970080790480089797322819182637816501607910800619323669362846810473376413050993852610332420768874027762905795585481778132865497246675983849565675395530235225738276958187652785390590942294602047077818033345449728051468397217317294268472040558256470791445559924074724827636013228553674473580969063206996746191829296312006551353449962311675482610488452453916942993729292768333212507269925097679762629501996785552048339311335447894299375638049074414019309607535113244044089890256100953375799781191063012142890797060138914840543469770360384016029703086676568541821655231268959773064523986170800312709411341700707409702594149012865456529856549938153490074767316606412377549880723278476540851325433252976800271665417359382542424459578988675060791288060292774909225978175959617668799593074875624112134025758098006313838221256406064375646262807005761299691882943706681321233927796875210765326327465790629253090672653892894097585492580858919962320403447188413530658917645928664774561604337619099047991412020154715340468410624395872759679438925819977038392935566427543000695287378247498678393111960300603751539943240499412927219629954371245459846383123714334106331656219650567350037622459622116496669809788974490133306234408435822934580992880279593794787675865497087444448275889619370592076723759059202476705097600758061010448890626694073375285223136777884215076705296140877547267567796970704075604662339163138831440717751227196390709924907962369295347765698196610409849776669436865514978579114366951943648218306309368348977189035426678239355564655179448212940443493565327976611019061258202462252870384101497774356156590629203964100667970884557438538358395566155108847390413461694881205072382398876820254936328357974469124296336287022787681261984213293617105374442957464660957684848915163367861387364719046152722036363207278099647763603179841684916294574327483011437929621584743763274257225012315279080616238163093428287705710691709790219814561504337516507987400718368373989842310699923273463143807817753579152465427050294913998732213219386632616038986886254226176557092324308630847838937247607584070731559766912494053278911537243061325648102759745857964336634618877766180181844467867938707198827281246518890669462077552550062267249633747795140985603908199002431946964481174370387271530356545736504629434374620541618754153711321092967124445598486247034195240364430942957435624678160644582645375390244151973715437777810960402176361697081755896891108032199194810028814411285254219765218778972168150587068494376423869684001196689626135375962209763968699377774760664838511406349963556052010654632354514885610693649977539846114914219073779319241033450945367015399482506508795361086228442518342364944545006175467662822198667241901466927119086573016228819781903556784634588098568423391395543951027771899172709953583201592332149995161389131273891355455301204536338272212898602542527757140788710073062879118475600453875095030549627207726268462294176467635529265224906159546147506480966815711039359213186652952040462499034839957022117417307921084064737773178188507723863975437434980176068270371576815408904876623958803764157212026914432501541796124423685287610493430597893435201627060945302038580505658068980216590750981762673098698058143668618763394806472087965371224443523839399911287083381319683989212916131830117035300525788830557323242755250852742091525159369221640124711767155727476664068339192613274121344482376936232460038491201686073425201970517439401965432257460904891108781671117245440275033793967089405318957767354387022616907438618096142030979700949748721271254105746921734725662208366361854686952576585270385121925909650979243702560572348082434281903102637126651288993750539623404012718911542917994926075825464232238287264230016311622290348481787589467288938384746827883862233748719948047544615651635418750758861350213782339256866312849082119193377702067951303064100274678680790517685969172927697571159720912845839744893293783719742104405466587830537089689059214070831433188295818956954449167328746050145649215230326504474859656527479424442227161460979114287461487669888511888715766341891615158388380974686677695643619352533943454735964128627901652522204858748467958609165764988219153557199590142931758328558364165470291835456048712746657282747491534645064760677906153314228942616023569306215053031504514165615902342990628677984848057043407552002337365959642385042134290660160040609098041929005852618661623281726223573828904296909329891087547300757675352242231371813037475181101527685221793301457250284198423843420335337901703889923680447911944107641462139654907114290409740297148672297703810999435867567213781938689547619823299995539750792186855381870217057788982772619923845490597642579412787080664594643252196412744494633099752754422482384926349926606766447142857771586436960217654378293853215438605443544168006560999928374541772582013319511001421683698762913244990075326036627578988673585075388005000537164737457936910687886112274226723167769008590188080008471937001361234573432298577680763426918968296263765830447591321198952691082572741015305745304613823629940955024129732589087602706436251669111469267252815770135216703205522111995268876897967546723562527799524814423099479970281777363825512262632119342195949840667182228658049667711426518468746641565789951848528259808247588585152910832585808830635435753610442165838350365259263377512811431156875362010622548575379934077290247944247253837071813925314686110930881908234035185339447037085701876367411025156232307846825025285722435346885410818565975213552616683641930405396136572280935093010218990923953859454177268023399011511948068608780442500275099000061268805313200607241409802859574816352354049650747143386327379578006711266037797638532224607754283000942389123116422116801760764075711150938916824706080381472818252955700978910314175754951068895826523424727105225377775161610475482972757919255405044650838107224377801503426618951255945148745445255134417790340938223911693209798924828081453423649289113858902709093556602637388834266442997018606528711491922824418987369815213399605270229663339720527323833685970702796400712277018493172120098759682444546350523022633509138367808120960164593776625846623243108220049989002555785774101370791213846544295191709361845503810833343686454028259710960759345254189757923695231993464253399683989731250355767390542682865678188667995471849069623674251814157507256509551474216144709076067156668809195506524635811826418436085766455703354172242361133136502234644363717665974199263756995870971314125727583654714944022516989142526912219123116542980455425123860080123818108646215427109520062971689561702546061368740841725771872067361868866999482564743821784297643679947188424227730754835835012098731746346975441678702056962936857192889199785099302676251556724456253309861032578043211560781894381964986227419293972378418696470673939403665742756642127681778982389160414691559615547566564461117709280394942877066923522206617185201197762745791450696404335833711259912525444533033078484881628469857849927070809896005660186354910725591963877118905668847217419870968438908538400248105933507449816957663392660939084533870563583766544925533099142779237617960494452929369992958422146289498778162971290317221020945286659565799296167667781587532865710881348012974935458157152810909367397928476124776537023978316442725781530043290291814888295707636243893356849301467030295108892311327859818335194793427539128163535101348887706392899502880023622425995762574599977290940999519126687801184103778381470247996490700367535406358682799488366778426796528819482770869073362749287313451909362835944146321575503035389337529975340233944197879791615779269992139915189950661613678755979595321848344893563800941454130973737786363325617099769037400678764490973729584699000759249789594063313915330113728099857846244530104099158304889166210943936239441508883116661035237267519554582006960006143320963656956263879323290282513474316136951070705794502480083287903508230037877104856321980948277677702076923506944917471213228615259508411614447714571646649147286520836541840456278694482984768658770614724820059292154109435509065455802214233304142423365703651627755649790645499285404935260377352008549287996998108353576207003622968644010612341365134045317434616212593257779803104717632269421851552807454827713499355185052475592325382542182428522634576260081325905998090210124951299691493618493328201204004892068293704814289224708567506326041362588602471577137997284617490031350566767165503306216822704154697751324346691614936627740856539614473798399216479481663843328222863479129013756316243619649785652558952423823291352970258335121972192831327494801377352448400769345207979853308033946520046915483942791001918054424343330850502830285061939311395747676473340275732980817523314003690521078566948437794550270944701945390249098169742207661478870984696458359971189772436694762057995790071616156734194100023494985809496378019962969862911826384254433386094825337695240199204640079186160630474987284410013957934921738896698889453075008269488766266602637564939105555790593178537486405097545114979651940000870740876372536324570556519130135766977695935079671396546941455651796005282649448774950477013857613366569756192950943655800027018239899881539286316191184252336132958570869925968056629539864900535174978921049921782489172023839052509037161280644228842928150971900569646170479706088930219260025961251322624857215103119209415800449760759110995788372205905470494998958852844706621705562906857579369629188473214701357818859882853409196870405897521588619770839543513299450512866501314584249404167290423612192433560946932831841028024017057573475640171155197210584295799844002250551454711012690558579104353899843296671256305391921874038917750685418851795153979173135960336247973304960419021899581235531403441778816413535227159980568216026248525009721148665845179578948142390093664211897483146962252090777373697353999303381226412325423728346363524383037318325762201725451280902607690422589252613075937399293021549410337757988449870847804024182784551639360723963196210571222130144077195687701487286694762530287865487920980043858223477895733533912105609441948998231718767430103950392431436053469274464435520029032119189929494797230406664054054478974195425790617579391662174910536750306171013951692697591742548056486427759456514216806700682579734073209736267368260066465151653116699422329355004401641774996836134315028156693269447806116430504925394292635794028363661468690609246454249256952855157763656322876856639326954342995157584253886235911149161591060662334777184450244413871391548650365495268843617414735967557840121671518175165189157284098576932050824888029540637816557253314029720422565928887437741069086747830861007670042865782123655142007101494182812467221163935368620666910582904079678177028308074445009771528321112258165357981583190122049497991812398661493319032805245636211223077709105469709888772959680002531838388886553780412736995450371908093836277805091196601147155140961959608177349724018403228983562484225784435308740981782542285609839445272674541286329883830482718458461622016134167902691771095075353465165149718365931582574780693852380311966546239975779174157954283736639982892334234946377541714391579659033349332634464002583480853709092366547730944097791751613650455201471123664871257071430770394852321036614222633391088809970083345543470985488707537172316837184607987902852040639316989261273819503347150774067555847868915155749721544456306321811451146939822925122964569698772584489470284969392106263744243614765505969195610085582370765288498588442362571077577894536454850191330289695092185684326001680198992068703710282052233137155358703566750076978624420959426207987118385924000984571473261850139264887398992349525613438580440206194715702652847673972842977596811373822946464855630253352697284038148839664189894032406337422334723740185834138098410931698951978912158544325923789172205086921270663942647313650983351975879918941871132308386118227765110772529901545770939446863882275419284132662168990208166466537928534549056955761291319517341261998794859853619239393933606754677713588163160914867758828416209565461426334911410940614178319445401731260393518313960264838848078617740502764887086659336659986311062070963137691409734753121751544071877793854608313833965394126614499355951519614015730404470602356360825698822185820603545624543274493167696589720012555177166756408710768024414325982603329988698516826230965086714496509298777528349966379357926423755490840944102742768141295857733442790645279164238255261688370725939657293890896577289625552460676588845153901759524143213963601471068574757940126383794851928981352275279474509779318025357650503079108154018732976796915557266290492931678504024772071437179748230062848384511179422968759692926769543585307836064238905105870273456601136811118908044661226573896533604487885639311264591058236131323545566348565846937347909504812804022419674426238477831382957027044804717269046380603593319740110470662623292037865758685840296560013559331698971237374670152578644616917081803322695221748247100619580657907147239842659386878068077301160768240537130532213430477147099287072511143893861474221486286953899556841434649541056406110159079843883432953878352860939259416219337713175478272645732356057953715260529355029908969556657979533906863128675575803803914221712812234087841771824359057886203120759420557378834491378139711222587007680149205624836096496293225800356899914177229347013165946604345149307784511496461869813476317082516296260185681741344673439471109047847637342890767322162613161954221469006946604499859607743811370102792819227746773013850379395627897842325176800244380473325825693274799395436845558610761101705283201027549076434054072476501753592541065779339225487526310698738173285777553084487788793339322499535752454039675553084151449083995017934415292695458601211749811465068650099672100128174640220790577341900731951156083852475597099349208540903039721406988407149731707118977587105446007346492767732227080446625956963703987118633316953360191084916362657499279919746371112574137460596838438805076404840260316771372929811344634780932563477834315053765801741998332066931248168674001598718325027314919369328970508009421138561950172678604202592933207907532257747078863401028352445728993554670095269331407688879748283120926406434546498337547049873169348101052085797069886970156227337260876093460544413473312724580537255793521891647126261457414920716043069331729896694422090618981845440444970743018910280636872170339182416658001406706279266212166924912452209292495934651058510291471215131983707548099462109540830403857867649844842113319892958508352288873061150952033876982485848327697159301021521920780922120051908006963975993860360237915144532093350968129441074783962389233004939387626178472265192345146149957990505057077531283880722298262204531681354457598546779689188216786836222940503340465082092353367276427742480357294422573285013228000682420823252767269465138786274860635260741086963083472871712937777042655843398612219824403272731468516150675332997095446977570057753055943091214345403005824293340034522551864242937174472008770299419722019366784032013577616341634851204861117296284308323816026217685855796628369418307098062021447141309412809319672503314982225627414410350962832313042501651802144663208723372085717374135694708414325925075754051936738900772684550091667262352272883128711939989118996276145970705236996092105471263525490976236628577352208897706171193300321862982652107463739940140882942620325576168613419337878619443626777623926772293063723502754839361652761001715632688439094676412271563308067280125933781507690233368109681093894955024843015466927996065769875169400509628318756088147914307059913854589587872277660797319668241232956415682079298346176037345946635338912622053509501426935702356994725226628944741500933826033411504442451519048099781085101581555564474045562109956059445104289418953247870474576096022764817721852276308333115730443484827345524290380527369225263366087051655234066743899883987208300504425861051540118203002020850150740973524577601424371764642192370071970946654386356033850183280342851265326196876656429316920096986799927259804069510079514127776967590607257782040998708997886562698683724424667169286982955901792153133899686394229447976006628001746137264620855593065181503055976880737558417947395825501532200624224255192446929194672059200115889660374512197352677842464909194341417083670586236364897877267186799442002235978142701688492877105012200393512466856530407802696849059293767289739047286797527069763240124432446970075826450831281361228863330547243463370624059565991240120103676280804662509655449308209981957088309624522834510132009190778344179143424584291155717020313990011405128280391651846635844554992770895759536216920854295874327558500753704978126815246826902878458137144824065344026022070294821273748775641338479620458991392157350314550321248969068697285864781979167072812080065779252505376989629820294877095455295234200207398835734698628748591963868236341573034911384385548124676627332435772367988933962215851176512281998973587572956643395400137698577302039983328014149791943331272516379980340052089797814931438619093294923954622272886865570788830675065530836077450041112844394875769635052973576863119006469789626538407142942610140562735938985579662799025503619367693449012294020991734118782572209243776490771646720572857855875489981238834832425748259941369336628082581209823295813770620766086054317003732251882217041629814616718621689194162826416713348830888205599285746258754103098547328201692223410097214512956399590961353567648479876480157776534564502074493389806611639491749660499472305405574845151820530249829901042764957827013903190978798336700350419100985070225611516978896659743121186521382372060716098631500222720141586110416289382243539186438990270829453702620032100358596626383649704447088781496461655566883956336570581622953524560849656155987311942331690899263469276196647793217863728183977424090433144701230009429108147540263300015365054887512661561640729053052320686563135112145160458434587250877083185395625912058336060688996889711999016352210634045337187740421660822089175646006954641941313833299427212323940318929022845243405313448687972448006916944772666104180613250758818633287756635404247812952527013802238486254067328875870626485384559101400626155227999360612046494855665905594974930021527739115106673022493702469518378170892638986842299687927445740005868991412952434771532430555728378704317270824428633417465336077393256265094487299279923238687609158424614228187694362883664899650839543977466212908450020549162063038550406480959919346463929131467189615624627486975132962669969893124747494792567747871630581476370960161727934665115425060750049731331212665456363487790090372807388173054945206027007881893806750338868621464201614408123519547281801603766551483134658637617332384741228006304777660757365642365257810027950189170179981648843418524825287869449479836029695692350655649110248830412532572237013972894712425218816632758001259549159426780416199039089238945492385232607207857213206020444598681043370209927652843521990869020599228182908748595048647444473223590503980103030912301300676518418877237647908421569199720292858080511543504549471584567204150046971019016979522417771896943839337636766571499882878844864528097224828480774489737959934422251682147457905077633003271327390293791781617625388008549633677077803760148871698188160385635107523281679390796149988480047165724960369619182554794369728723189775313844151609836840792364615676409456291858256155755871186128609592844365683244781040256619158838892291421522860956356947491619504409064873924197384598763134406911874090427990732291129592222796342841097175367643001549902291161365385110521233824821493196631203162922406494119228990646343032599721984333174969186492009631943977062874337685757984277520854870104410299522433562600183548298016740182519568897499570605745232532645921511385978625728493219055147133767863802936217098254775616354406460582239658056735671913462243866444749586126247829474900880952901881859043974738116006100439697853567172763045388596022577894488990935520512652128949141931777638570212457239587356798583780826318956196609938206962975579564195680176182722596975636457907392287364592414216138137258244176296778161388579072440736649992334624138349554168659637328014223872170980549078535654635824405229609877335817469160766126406967931537048932124439173595973072590657764488715781891103471728313644611573194277921919512242907851224991039813708358744653378532236851473649563276338470933965798201898444038573211190123442146388264910465871865028939558481669272814387528191546780004617227592722013509708844758005948712518703809283761224504935374708549960192157255915489647213042306935791007435036289042020806451927973267613292914960319320465150333770345486206655103981981571931928980137331676552982124083723388956143012007105856027371194658559360891334206599964564116639935316281205530274948647851054817111391287311447678940814528096607281287325281488399584363397152046053856726084399390015119984461265525295937368740476921037553126845350543140502321338596438683962899133649236426767150182504897737886346672397696406513457283939255378803711100470521852500981661946725883593936664598244312254130665473817505352091066810531384357154065883162086412016822517576271219415315610415135856859885355771213498680118283127322296751907020793773131021679994661454741282106676560645062298847453135896179264691211706401469968950870670683822170162912802530586129996409152872624726076195888888031542280679620353421237491817620225597672547014008780743803465141404488880592183294851095134278084859646462858028089599584084284348616568850927429098275201091062882205336071962801028296716143103399970103591269136636640625141652126454265990044365452119680086954364194118192305276763851830568707084226930246882054596194266462987451178153824827080177235853223842332922849237587371190288046241498242534099399399582173606219718256760282878753838693787236313134655814829555355899809636218086642095633664860329095879834655430554818633339294652723830545510321437698686217139472257013297849238328414986775405665078292262048443879092066976425232125257909356316633457901290731511506689978818081423381767553886085386572754437729452263698887303385146611633221763501924064987342821419754297184119510010486483179929677655768829969556232095997268248057123358591936639325427328274375540632421142069053038803703356673751902093014153888348174502667409735021056661627589056892016919368511084222498124063920727755941574892615918159248737146996802020680352589732941669444286977011121151488541196410484082602386242637723538021651965632049486041214745311149301228746756326093661258091762308073639725220658046733936428963418988550978622850183420822877787981876595752602401713327815378838223811970446465174589007418269692135260196289893889920926824752928203963480742292579858818293201299837561070648778629137230127861978235085072487867360880097116290970557478724296892912851811208767367384477882789377511512156689167136359847323949662586792117758888402740168239085956800964325365436868526116167478967645242381430706093752824943343594179428995669036395212486627949499935290237221648970570580454822279570528353492466805915609519370280876169074659692058786876020381384373081037703690063685013597970296689991672875303120628582846775406939502398732068564902220339597070087433813731405948384580569284036979475095380588073294141250505142191484012559169198123429193214106010189430311137371522513004720242645357708481608209614301907698422213860919176470977533389455220006842649999653957496866282403355438766155798009508606243177065235294554921341612547177490907639696129347759130646662804978467852479787382015097814576735147701637699399438813697853769731032688638370793998191765654495437818348802713709698342371817032340926803499475119026364839228508719244856215162358876641085102783254523944117844956668712166649954938369671883559542881278096231069964391097892981900693632243241831591283254761020519058346489066957589335878555757669420681294748321291450925560222446713759965268930712511804195175046164633017172081148292740305957818715836807556578807144545629312448325999197138091378315245601098575719070542294406809499651414181431022008415604359151628100618066732345403629454207734959976231098017336472300851743119600385801927743541700863895854868148241506466771701421272695485294919535696733816959221679772988720412148230035811602393225188506343924744481919796629860480268684332682093797112485245514460160708704403869763134978110649338657005631712484513127779387289253145898425466714182241265459643330015213602062664228401248972943393828568375523908555229705471070911445881790010123771691535029276093244620034197424238386729787464902840100138043695822945662305558625443310379969309571648210460435556874055633825037373744218524520167502013648932435294058053041180763260454602875511428842802820370104768186104244236323648005503343764327089897932111676184180671913712328720593824307256086828540372090730551665321387221183020023847813380267983012096004720434522838947213085177696742776707390728696022689818527573429001251382200027866548425118460724801405283432336080725283856673123692617077096715438590273182320362294333586329682903021561970717180358643599749822839198558471039130293680164530443458543713998670934166318830515537331428384547862553144048064548759554892355268064771841042011451222363370786557162177945164815157890099564548288085831599864842986367514153864253337437845187152965539115481117372102080794244779883912526738234295754457394735764285224605823803147173224634206850087959931881612377076251932241196907333584101673936045189785605246992888677183705601914931675389901968716010520003280386849951020036409263826555834685905559477544068227097477544585061642807194517580656904743687912516604099023668609294596462957800496581205098248311202928616120019532615610541818046862502430427016101205787122009580734121924243686752434399929016274873310821024895236787809286880383971880979426962169489086455247588812045411585133757516873267948898038752917886782014137353142453519201934989345113384838169283502407678740699733703002760719453053907323453887674213086918617849227232157066904873592755723658879514211140104964184649731438871174504935666981725320768362162388059949068444574625428151144660761021025212607198939299431124111754336927332560366301703614388112694567968791239011270288698710427212536718811711700970138355721453353561351330545355290691659192214596613860790198802106913039743303389428515458818351202944293554047908199521193213181883865982066993244899861073850364939144619611247221657726784753346296003598760746005318804664711561750141603597820888045734140425143442006517537290035504735506237591684527700373058900029321226885512964878385053872112092088239745722894074565946306916604668793946521820526209044774368064434146932691128270079073575169185404499347605248583896861987571700165049168843946448930286082070763924224585862564614524183320806937956881112988559631170643989205653134484120043912429428195611494011040537691889142334610002180481934649741070982272433943957003277899100431138245600332697500378875080871979821909135534101632270608719309240562532711989209062271816359629622402149085641313400545657254543374714426104952795462951110357016713736314137170686071345511147951080755817457008895703416711821244608372999281572610516165513804807576404445039706866794957664510444580729576774888280233900728276920483546760973346355197996391443885518599752791454652379906667000046017708271431304061776446697193174299851185955413638916884260271966712479743399254396115474998785478088292709207790219271981750226069233549048507420325039036042325416420180799358148471172693662716108338188958976624083311424236261530866761483188669066497515003517882521492593009674870885385644885468838308784215962683711257591014660401456617822731021141350668064353123291693078499382079262120719500364316043687181458083702361625813171826728768751943287852041760771644947461668517147049006421499848337357542752341454619868273399415089629836010392325938432168620382659387777973982854139953688876873223822791686249271181918648050665530319768554293655048622394918465316346304488566980268031354803099875150738617387018931305565600273848975281929229102143087776011631316537746776099428830152813590272449905065026415575722683588043838791135343529802849755070256614969910101329644723005233697967484940707747982958642352170057314921679911856801756776539092222953417923518341538482116188579960849518287472860594943858422347679383130428384313598939200496077379664645220691357664837576239336353233444128343178632135908156638565965303057778046057569944030149973502484810946032352682078186188267768159118123730743427731960511265639875398839480921142590816272416366496596924031859985417716008608292831328940906233954028219928385831537034821312705848103933073729084411811759972716488365284607875493653624719292286263781069678214237417624812366193081786980098646141907776940102406012243479312524117161274277771720783728003335917572726864236013795355042649021772654798016341477961226117085929476829879312697709944987444397110600936118812863387278768650555020271279755410150311097358789258541976140540844123500326208976902737516091802971691425578775780139580145472353447323637710457827563549162448546015195471140958155552069883410581769604615962025095862995165600318700226211860148596629381007529384265901195018035699364721852452317442411402382762842806968424753647574520692893397511061475974868926370362726764325048428155950732162653473778487874236946355351614690525797691246009073621088687433350384196225804629059486591203315296800745264383491175487179704182008638453830511945396515954222270604574113740391187909382362551346159580048009618681865837268641579737585564417069664652489674620382824952122584868397496249769629886647175088215840374364317625846450725121862407593360605082394974518828239470520945673946042534868530067869031735736518013165667723286783790302410748012177658618854340429302633549697689445906581759890968820324579516580340627477828478372106666854801826973884265653679626536364145635198338764159679403727540654697409769311848584751283076325355965012896721758568802896791161995306979727058084717510918633280434591148582436825694148330152080458206572277756760257553262941999905553693349927492071512400904026666671468103324117964095148725329118619922412938401129816196972584421004053925366380508451824741702263244506333941759098457566158837245672414732209030580675790957084691343127780899062670073028283167472250622068053903270469737490310511821021735024877220639206804197717387140588298310838394731714960857018461619893349956595450435998838354035807144239699088865865934093857860047355798310503736504672590851914015183206041009143820328737118803681982272105939474289083267779191359590365944707169947620648218296906092056651966971967821135663567014108753304344980743145023141329058845339631332130510923823914008028793172805728302777500905498105945356307071771099527793750824034159626321285156113499082486406164536293578882706256488199617481952527201716344625144606728360642980831702981686978362318778481278965758706393854551397501780523913518552586973154465744632499484851811575451361700390415583970370849306652912425264998465441548023346931725400116190264630566354092236569658041216720823276129716070841532458346925579939899658279187548483042448053833404992540854161034039434227697029127519907832621657804923907934111131939390258456519774943254781216386419564163120748073375985275623032943215996380177624438625884830750503751443521314113834621555128887158492320089955521683585436549368359180214541474279949197617595808928941616470913492255293159249323645435497174778874006483593702008352734951825564048799032494853708867924250614687775075651138023514650083641068147655855511338832554425596290772649708738815406290429677931331888378599698833268972632375623322097004276810887914844932309228111155612137989914848945303549836949153758892868765535479716932269834843504631994907921398848725073365481659062124511550169146751718222005911944844562073062880381722039767436050999305169020472097303291434101215945482477056522569234646802580320838253638283008539334995662641507461227296790455169652183231220965449367136266604657801396011886268637188230904035157927970884550842571251725300640858075620055209969965449000883531566380709606594880154552547138049264756767643342078174182144824483354171443472101367084118339629752196680439799482841831787445729541841752714824802479200472401842026917947992889373826766184969420813654991108516495701880755647753850620802259649566078404674834643647889930938086561749501710873462906411198236202065212031133587237723453244543496942590786574505433185814442540112455397761814441333230978858119581425043203129988844013153182827619438917189949529574393228781539211181404875917998753734966808478483640904454480746393670419009173974069665878997697340131120379730822665442407219254702402967848464076118630109558153864867838566413925713506788330371435720100599909164808147879639315665193418434625175347334709774309847379470086945277213258279866874688535469055823670464813586788229241467730733847909246255176813234600591556128519669134940359767261026116155505579762042680588000013263109847376961015587510685000157176967631120201020041922534596120347225052938767141637547430837267094220980796145481012866266012684076738905805908522764639585779044881357802627204387847568978888286583983978220398045804859318708300376123701688025321761687560940654033802171683762322436515536402517363685310228887833176037324983580173295825594339694548075895227854618401562487766932129307049276131398053899708329465306679138090878168255617933554225120233633251752604386226451094345034091652273742002640708670778397693724934026764839026847951773090866490736825427664717316377957384767347776459439548756279739742676223519180580704943422178368520617323708223011426623913436602431162152711992613071578204475758370588254685079741057449016930432308608485242139202083354251377814066752117840426680524339849524424958174639352758726877567919104125969775121454443648750224072661607158828923247425873576655492507721673953244841292738459388198525934067376016207823177658154682669763965411216294678352847206834154461789760616121693652988906894676571209861031894337507848979997342381588207436121022724149689188666489550879397960694592336103268001574231026534286053081427916675805927044691828310711175462630927675242732359303693707949975028244031566124527510648463535411886206886602343483149985134564005701084368968863675191176651053932106706160206996648967624102993622584946264282296774547852955789578053809151148484425158232306671296564210842489315491357754750193589478870033674962365593995023395494224526514520397172604336664130051731966026458308707270082467105546224795189700481923980219536756106110141622704059777395127249049351028885561911551182063178919000013107663484836532394033103182558896679010911662562323892098009884295436993499868485626883655432643840956715877211248316213016104554943439432899868772415301977874546799788470083257684362694376884288771976813702134158649112923377059964023939547499016297161651544004984317747777716040289389870678105087829669824139342586319921154181107780196411030456319398886190871401634083903669558761116055889529041454674515052665051568312661593726752067147108008462669349048378937291592797413900931550537006163285223755783492167035900958235965264027757197967362412780459850827967303009013154502629545855821999401650799867918031652663151930167196930710744888612648894831786138938641224865708730219259359279143463995286898617236264011689281699388937904259239899995591365993772070285250969779110070115116420077637037456173287054781938669994718826636213011185643084986355332257724827865607587920078954462241190294676825823101787652553807448347041644777933893851275500389395621117781939149067065738391544226935994802484647567218766557868059054522209072488852589399987927087103574819948419691886300387477367477461928698590776771077760565605720119773492200036916842507606505512197933791046533120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
48000! 1527474535814719370006549742612185468545672310147561215915955430066121060569184255307941408158912857152046190815340410744483721552901244156188756577796185186987171597785387149993429007774271557378665300801155823153187487906264490486655102472339472575696898468787654163493790910624609891970821433215704746103105229355766282940956228742105838383802387124953068391493509522109228324472421059613763737644057303295438594100386451208303548869052349130743065782208072140630096402228228855467282825253746358247520113451295476204391595999260081540349818394486445710032686931806931667656067062048049765710369549204567815957342123753552728421926788273989353229930176931954056141059220075562012629505188840728351235816785161870276589919021214466728576760763833152464868011353303111099066205179389210328098369410809472995776774781154006010965630589222018151456881834987273893614088312266138841677635598174153053119996674336548350718990071485547006474602418816625726867764232619919241934499833698966287540086998492653146995079467881887120823977527131241642491689776557874215867439855760339644680417154212680661579887447692746020492928503919888660707971234398881851474699099130168504788286960809932439612739114970490679403196330953910779833282955577328771136772237839029718719028942728034399865590163686156378869436436053899684645917057073540489043003980331574793108863298322193513906877219046225571213927445946714365049762560704444864356850541175069094816212054129310506984859618605248064520442544612010313870823632276276716088147649414870156559748148042972981736197171779574903062098133808909440721887407472765438623629750980908172072530080019434992438707363629061585786968473747754329132852933886440826270066643709140235290168767367036845564972031513098329540859554391803640622414414945579034190963920695519113319914814471864403618410401244552508817090979534563164571662677428639673016283174442162094859701260300670330321843601294552143961398323104690877716763433646314208967847021527759920053954486432434956043058070830272471125650311828119370552007875935793951784044082294679182347543461343667567541573193701946589248104788374544069435960734998206161586862487784951289317673643380251631291331533291322252147331318791578036222804185285471690636846645342028552733264334714568907892687691756146421415254457413410027195482871436574375248994356646873832911643363921637625273178012935578388165294456087222110773908666975096418306162030333515059398084518643329559925889171127889268482599798224974664838879953434282373990968024359105929554563961691738196247956047600610737811020812052414869565460321434073077316159560934783373220722394621312271789338635647206516521027727654663044161462163880638895140023615988199651398484317486501381478789423393206773534482246556314839548656497547850855621362659884888800443931905597314028503546893648580130586667389796565180300554953076844270873807756396006748244614979756711812815604386846125979065004800024852177647545882249542023994228337520113697808745498672333850526052995319100188072632005260756241916390457401290821301181734645430981456723474764267635139367280994391061602704388153227160989235473482357763008750724644147587857339103778593797453685138936631878122496078944796672769701613773904718557819299665579082175757654701463105197186262451939379423756752217484613948948441224874807507223341121315881843234779505448528075999833053925006893188858273951274401113255176574484341167521319677518037684579824766072684974657346026143879701362001669293144857811716934971279184428079414311348913860186971355776460061880107970932159385604354798397506427133435739661992963880663083949132731583616600463765516002215177849924353588712350421855874851088748769682699747068166891652383373427741291205028481882619767208053774740118043712329461852357217584058292544638597643498825305400720247559602708026129694966614266276023603571540428887449967206906558308891373236654701297410148512933198565098998155647495697345912998665034191643323123751847399825870984323890711292078228317386852276467615315553148728429149662754644792585219502996068875905580602972083138747974988276768862318997435087113793731814009819758823754664839696945590182437613182985552018694636229818129184343117180068097471419821111485707716305943056498228613952152136416026173590796823639101761281630693017320864002139322405922127887700557166004667230927376640544326834735069838631429719047151600302123852475646009613314481549413854137632975022752726389140153890207515435975578290429116263426135952730432743696470672821055566922688680321316642714846051284993649207413300003479961449632253135205194057242599858093989482968563600881669094334069961075089393698663094326010263690513284232010254973619113201564046294357450610618136523336092466265232430230964320646339355659971641164111143107322397906951810758731529209874472652797693227938506081543695830162563808121332145752830087093562172642731796903928401201721235878698979118322775321571700006361971637709905002090034450544151082426518298134463878973629430675063011835419659732437092658425139405176391190155445141690496670956170709618814844012321695639582653653909282175655004796622532657335918405336933213160009466287369381489757015831627528669850063554606320321960666693165436728233971040159427521653969350990050747121055961942382856507886298085623534043054562691046629933029981209018208467324528993725033967727000304905604963227104446797157982636668411417511429272010439457729255179369752972961817376879883967474621794589656608761962433584945180533010139286527790070050685826503734961228251988546458615618814388783904624800616918383257998850423427429687805978418608069744091512337788334188870022832365025112694850361014985644765047546612095067639515999725048672486374181616448090298810439517016428550499574858988172874207241111189271368031364767151666819684462252059688888691332238005474798992056031419013752453534960630949581124490677420196662675527490221593354739188859116185376509958709552224835485134994329017851155699650523431611644403089602602997741397299001502470501435779986155866129925676820963267888287713270090194252290673064260401782071497539402413876062317624380693484202573452447273599253110226519203302618870607497936465068187285767546830463415548325568981326464213977579416792365638843880417384419392087313428215582504084168155450367278508508088947947146416937635590756510858733053906668208955549942928283723027499951550457165349326152884966539352064328204526929181772329930589935390671192564468581708395104975925031037293464844955508847912281072622984806427699645112480061676337145864860689903026745476452280267079766711500972843694288282583625302125973127760908133742800313091076970006952634241614635362550450531399111643912618689602219580727649037670511896084616251871250253175653296599266975416752404669362961635090770267197913023849725071855731510696893394863216926822901812678639098158254892757462819554731781635217023369263498228110418662411655318398643875017466376346928289336144995833563050249977629507501593974908972792521753100494641689427239462523337704148684220792968999802626238468188146714375746692853346704128153286229800603974143123406565875186586598802539107092973898939159415530754044499500228327109706125612690520756204883250216953151442930622728692658478215929237903411312288086475648836635694584958231228477529249565309413143913906352208014583936316098118642616556422631820867711235998306119527475080970890420626578544800064485458391905399400642529906989583646731752895104782862304552429317000144981556296014184149162483145553367417576636211692946190177062224332454301644720621378811383687992499038400957758812819835592377556243713041009188516804709526359887820876603806279988350811556337169067363071004055132457024798821932080477671194083299338240780505310606018962254702370394110855877861736189539981713521136696297619708122975430516631737756609893088181628934323055138830182866331357646904062738025620021328634993231542133058543429799157562030047849231498986741613199117528599416685319584803390917450573130483779667325258541330419610351754979866468482500119354715904286749791535627068571731286458256908895126596869660514907101990884658865564956229176286214748436501957685690429598690095568235307728342150630060943209039786591999435364239032448067986358711685032245965025648276422123153630782038181506088031146119051601235595043625802313430488044485397409913075205143395094280871614870359250186787080348977863148205247084270495718317154883130994163270786607643662768001993524110652777760098285090551130574550343496860731974961405702353790494405919173478610589930899452881474297384472559254159428240376775692549019323544846295772155998351381314954176756369880613590501357605586110236774167022788686849367712378875073928617863355451121079080286785108839059738438442549825910775703843493365364620885905623600443221091020022117193095586325077406591586163298456134208295603350925682460786064023566027511647671149265910622769174269322944052407155507741642259238715329201109600385632582550534313122179866250847734274526731385312725169992574633054112905894083042551507629313337231634847116090838186900372990913391218963166449611726664566742810861263285750467057760992954747385866001449555628156927085051591888269326137202993186596075507297435558107689898929613561467054007262071418497118659601155457894022308402976774631666400240764568145849258649718654737765790052891924198301482112555684870324356897847417602283767491490789243813527734560023378241185387568503638743699611114665470268958132696016951168293459906241485977593630936429908046126828730678806915039927702007548698393630100636530702329708903078446836844838718213608327933890695394885685049374521357519199175764343941927373481647694070675743983291253558765314979377712041484832477538792513354699554645429101355085932845585824116217407671671988227088523516380301755831534997446175153473728772894605428972323278653143836788650509533503837539685266544157947629405766632641949176960008446957273976386317799954198660659230479270936108433060422291326121252974947134882287924630155510104177778690073267115146207370845357504442366677028667597084365389477669939991865939139868487653710952672236109956035622766540133214431834163460987434324878549173014825649548809662270292603729501622655949708928895869361925841093356255618161333494065172106610606931155885592525050154315254245855033977603796296083925355972490531000482115867976374363919279352728328741463456520193379748194497870348847846215953085307064756519594423590222521280782302134554659482496087550257534305614733162909195797734761332644139354018034694657226237093241549096984790879461960158928295006536449988066347057852643505133905692140191042801786796180539595277899678493300408328099091513347365982797974890814971374952719925939939646928571576760018555868051882366662836867043048755466144675013655195526295371033575692489656615781230340495529064236334603908745872284048034497218381925372947392694045765544558431454427800707572124872153630510728077701913843647767764072985971668368228899474683783876782976526437243015332531928327228755353510746636669800338650163694659106322814974220434262040755515485027442117574429450712525981344897196050488431791241578093750993432775924765700355711971304037126292615205074646996482954117848523227537190091909943898856053991867661334888954582234007146867804557658266871642091250021568442979294599462157457668189820895611274031607481648264085882469630986665830962698308993912106406027596929222905755349255573295389168616361130348534364096485418922951330537307275233981736908184115075929962705763320235354810725865086534319541046670147713223778849686716187964542252733538025582784950299802511216245185001966799534243598962147972140999834457125722668200806209404634431786036465413125267723813518559790905369411990264275564587670753292904536244012885538568695045621389163875144064878942787940283420517547871225440950330805120920080764878993294214092553335408020441225157403137884463674186177105288993550120064667280347683836976730064050861206246991179136599411136642402627133723208976059078071993393514338287490561684045110768536703038372074212478904008358641328745003429833896934522902322664519335596457440473055787754562681558988645558235250169030257570426562874181773205996355658131693098344770736522287919407418336556150419648195973554482408859004300677812324915416252697580448313955338165936408038454886798153210620036692848874144525745925295199351088076441508515110419632236231193408580721415228842142771136767840512457988831803023738985822290174531074080271969416635555204836365048774407496365543119019429014470092391631667135427306064436195819253310089447610219693658837203876316811170714356132926483834858412592308151453996508103510328701777139351668551776985661570185423931268744738817518198280474814275374418361343746653556895924781019440699086305647532029168620759580067563449538900951512218415334701546761823904563058969963198181669638301500190667388988652215589131275537187140265114289111514946169306123809590694200951810969708596100015635861825352281602455449756597600338955025429482187227328967773562327547138093209443115273171457826923870870166600777882729239523363288584812502240448405132227607711944914979036217495340344160332906271916668994293528533102097239525291401374559926540869828690953679134472909163096768482417769915489182174753930344842732601559411971403117677438694456674632605727394088630743249136047834162628459059018621471901383301976872452283711586327092486303498303787155635496567458692542125066156056040233661402491857424832398560747048532980775693850855221295162154130905498773471225976358690873186445940540585240627440101082959530438569056384772069497648592051702259325312890107100078140136656230895006803985124607183435893853726839206358295087766126402754560888663193313681185264844698294355754618609567586271071703926521299566986668128216749683654476921820250144117493770798123362099237923228653848822191047991946731203960439231841222580065208820749009189087622061821870696287902197204130110814801418747613358247690271547797716620914361760330767487018112534925205538174615642293474919154804319469896791062579161323296515644341862912522978085814718366876185799011707563699122059185379870104861380682936351068780816021414133301219327526984252990816275428674272253111837527166141162195986662443548290583042659743142886900494271855560708690008604713692397381363279446324419130922628098966529881363910111048210792621916506832470032996055069248111833478375854543010323597960714357272956232672211392267712538901109329763197784147842142318301011158008186063667830640315036896052302587318027517495812117463838225250045277447186030825081735921663206599317657690738914419222124085223157862748118291324783844862035477815987337294182306875860453694725252932420557037178321373050092188908448862902143758936136929215703196624008611172538605031984474903506200333491893482536068055424550018981252079917472448715475270931231978119285628569082996598375756052245293127577606238812806556651327107702165348823278463172612699805534109325399164724776742630037321127343289666405522433249198297313174657621380462301156977021003164889571868963973750802698948127006794842777809318243862941391091885285793821777664602760035417798134941658869448291081885099965622479078184831842344152184226095364411877035179599374541287186926005197137724862681483069657061755206159307526935692688388150078574365825376871706760783722863516913275100698736166013881922902822945266509165455142695632575938479917424029559511859294984712201362821559854869424876302254398642735532067672524987784477664658976214760211220290313446281465107177792563861839629789940549341475558657661055417144009688762808661296882691069569499338017794531264450642425693918955430939475940427069232833963925194134959531629609763679328651997235341161251183670793372879232153666961070467349082140307185834746239273047585940018511836867048624159104052812279926583272685908416641211140538081616335019384435341191283215382898670013533280293776881697244245111095653289386943221265438155157594731387445433930402011701127901000448858670883071996103140042719916280914256008316931541679411515153834645246663567016317141113084788992492483747929872609789571421366055734700029923005771456182055143076895497105901997116063869942179649070298492470254332357207488880168252760024076548063553810971228442390390193475589264181785133032859315020036415370994802129294412391590099730860714818162081862404333695350732167343576343325726535452910977384221009200153157530256160385822388199290072572327911776818314913088110152407932620078472931103964122568857073430328268769796944206631981366606061034950796747470963929417278870505121450592340478852692206644460998114012186333339419150834056134716395815909414068245988810058862087397331923110698868828221933061583976243748800521525942396104287661479114742190841241130299945271576302313756787489196962000442740779623364763601567703617026380385682571657894982317198415777854562224917786565603214966571644277986879949802514940416323233373910346911980235154094130057389325655986829952218241397244884945387277232307103714547569042812391162276779436471965775795149903768924879394112969881413170141806828605263300750676430299308893765556777541626739429997359178405260871793594420090379486516547515006844614010606883063899174277530063245917365814415727831368194490215248546848580039688686030699680664416226937407092299817359498472517032616628438251358832214985645293343909731998389699144107839301933534302021602681851101242298918074314544126306934377998724000770462060316944367228643890825890838878815869560769853151285093499296765330103467906729062863366545969670450793201390387106430625128470321149913416151267199192338258296328405156262678845841702101070124560179768743217108465692912232563494666938813729713572547184270754873920103541919044136945149596263402253504714447709472186976757497517212999508255100409521665531397660928017669731059858081851383472492609094997023226155453987991835996101255611391875089107592085738279841599944643549792452529228319453939663015848907598140722719931408107888844493705306029536010162166603454516911794675076645886491590491268470139493279254238341850050913585392005908223258703475208064740342804691316951151983606042194225415360335658659122933196538998193120721915846195146756204392200622805742346678431236906403278621103031934667605697071954559546869312383811834963587836984388157898513972518585462474172542900481278613981049389953585482626756709809834081516622814543159440244179822595147492635810226047338776265738894105726675554530222808933570311470352766096592547313162977091899006550286486248351999984376016350406906964375446728160963660160409941251347527117510034727669116043126835097945660743395483521773711390812928101395119849590585296472709953628977540892472957648491219865518196655580490006962731966457303011057246383904068111603988188593716085374632367498115020374804209612267055746373516816876248680708332632207282257209465970470378243793535092269004312533617822168394779011238121800111725754876994314248553228858946221100813330401325477912375742578007463315977522534304706536169569491202265945327205577586877199060436673720317085543919181234618146562154635796645614997893586023203570006483884815675813855647927014310384222296871286013257204661235113036697119136985353019975065303155867109844592965203145159453014084080523938206816170823725657739470179241920295800976480037736093616168665474010630938213829394019848968965538580060216993733677009401094930481672420300165573939535659727628189699799099525171430304249482944149887943714523659055578502912607088871414931809795539712201524716908572138664670194527663606984843790786828506317957562312195935871231681218765779950953040100348675525059619883366585191649873188805054606924929310024795210820146306406625589534954328192265705038045871060383328773350720161374738924616331105556458652742685370244620077532497181487224056025519059297045927827765341976330237220733387071370839039354842620537263594608698789462257550548460067458092888343703734254274755462215708048879381648910693327941614099654317563520395301851928777062814816715078849233046268343859040358941352471406991258368262579769963387127722608070250738846775561864331055269316651825592226924094721988098272658799418490450267653909956934149114989201957644122194496194733409911766971677350536429386042963417503043999657645683923198601305790963029469709594411137337205608236645647796904446184816037904029428278649391219482788462492329519058421041280179083811070199289324204102915479056778684245239313773755837777770220309196831335490928664531365647588297166887148273242619050389061413532198647498340664921047058715849965412764889656846612883776134795152449514924848794557865224580378482962910739277088508057775336495826769646902620215204041838861579537701953629858247049691977043032103378458304890823361018902674685592124620192101059226166139743216617509263844851973918883305252354980358738244736612963589985396956174757441938187709816786315537007357355131090467387611280095461989805337496312340047066569151813650045399270121377457485341434058555022607526881692821869122353919378935279247956450604609770038458935004571304577910305918399289994886790635080880644927512667449188603942163026666077915301141778276344661900426090212772257284123578446984030719807340779337646312107253298785995314621397941928078031773028035053113999732192363143731867698984921253167452086207940308183799687909316598937403698152732242434422127385114670471927836953974016327258693435432733889674727818704731045107127612346379366009218977999025114061603959353717917072942564098250675407830463342495076932133352627976291778880536944235983148253609111506384437407037194943797722818240676201576645410788772472615541699906705734080443814080064032336891530109543913436773981591398707407462154084337539787702546721215313004453357948318809244878295351402591368169270669431817111281645740326056926634169033811947037447408807292845873839985065360621497146533556153606077219023609966624271480795608114295083267042249842820300288730836524850399798398139271436746414394521353725225799059653979472788502868829661895187082091679323914235794716100531751413072107619500415737782916510329093848415824036763811599761625021446800883498950970076764411787014448941607097967924078338379674386865222947560480078819573453643839831067426641931235989065058300283458419800672499084163411012802482083069718556627014372765660500328736536731344028345881709442764055602519794630624701936933589257313985828979093898687107820994298845727353130165779093168622429580096803057794841013820413103645785681497045738392753848639703394531442374093862449381149658866238522582980580404135005311984830469267350774823565351972625606740489051958348847019828458679227860159344262502380063619347127205505531617357141856563864981419754369888733908223129006796245738077014397771164064260783053569643078088195848154064206070314795939686394327271517852511276847920582170432899970722405154483578419009460442278210400878363296388258922462281362155783988380402123748139439619224096828712089384869153379369223349485719582882878878792501421675190055003259833254972608336496482417796114339602138701156174104376696941320960088395331892199891557790961539687280327784001779009188490043089998856163977790322200219623559018332507805080201200333066267194726542425809976879463360544140650028856167662813132595438669164735428867575939484051890136763536911037928331242844628330261745045288893692369246622846251446772222207587937873714376870164700900265298377635435300292221186049116787885866330893843067081080725846109599960928508508520316053815828822377944654475732724261178180308991429212147120322327308763140567552141339494483362452033284650410826694224636448500763038598863925526564293529155991746306859256927874567483067751292083218239729526632585905141615453376384568522446855527168115461199446634958016073444096176179273169981647946031363372792508598435551680175439111027271346315501260364894134335040136216378003740874107264128982074141585720126757743103992260786412702517828763280221964607407392119299065453555807796380121579671528278067459183699978706603708676603421752412721500333286477536090934213207887470332420045184478923894279339850599870536984924342828185463285342938061368665760501992307997039390330133029575451196194704768473223683866925869788223799346547000504271502942825183191029384767601389020924251386126341848943146411299327898826215476980533320972665058038863459817519954355294163811975861081421152561640327424121168322175933272775794405931952560279906753454884900351233115149659671940902732398379597635994129495398120002359617871521683425314253267622694644937264449946455955575152164166115496093145784774450114061168584156218639784456062834444400255944354533162965439098427560699766993871149528500591053322070090848335839115438842619005188003269400672471914505780578200267987804462864340984910711119452403530097523559750009688846368986873971810568812369970278939378665085956178141363317745609019272603862946834807923259972924626717713487803598865994833451806171458098651465109494634183967851600129145971197794572223904971955777132064970923764895915216187272069317565813454449308042380553891792565265031689823266442901087367254246563967186885793042467175933187212048483607344703937205796015860054383376364633477932886739501372926313784474853913499099297392646954538874958886823153668889736258547063183403389683663675672045381384320787062338052113896356978984573299824214358912711902087230936502709421853449030308142870278694612893547986668639885102851272241650097318227240453568426252511151803680476643250515567999751604251836071288746519823325561515926313384175786893563151718600025897850607878297920282654136379842704959264002568316245929055913740448201005799406654750304729414650309937070708442225687081473415877342940724894757702791647334524211865784221911550987252374992212979271491725880281966645527932274439991520204080129288467334068994097088441362958874217023787573716744524534461979142649324726303983683509171862480093628737539646684852401010067099542445150370935366335681186225421021302948205311539829089911926587645274109167568743930917569565264913919568741903069490408385953760705717449353125089163096882220377710612711304887576877701176619590360562711379725634363693951115058206313944728460928488277274253288621061173927313622066285402977315057229130929939896858082058713507520097128900298060855282161091366444746623162682544604618360154182513348119094900894524650791875777324020929118969584532860518034301185028292624756581720782226085913489736777796692274724822981407200475171952096368544645400517884338124405751528208540919127890770540131131021200391314708071043497977710285517096142978430005580733806934457867714981591221026959134946969213093617417756778826829973372906762634403025176217468002942577882464260412513810594154611316182642549530656645178097190465378884286893996229744179671757123152226253388078516622957598580043849249827258370532023484074717428764749437208636802832091772034968598546524878971156698644153391861630776353261081523171261909751874687944563646085895284771652721978273399132407447334082686666737232122013297274848140180693030499139313337815110102268618298168315015477461582836048132323355430939879672870992498952872411387933973938902579422974191637175597260043983488725692311445966434168630409195409902046318566128005630354769478623866667361713192204833410094275035429335905565700512700992532719280993040659699712586943481760605423689217840902426520884011199101345102851948666239275147597360075269328663638899533022074640311525812358026869742890824968865276941497238645803873656626235787921791396883265062795841401200014918604300000662096239364901642662555376597663945923474460866544511989206469109823824926659417956959658150646573437645489797918045380458510706450610352853078691571704426547961437475735035057217367518412351556044798501316067924776507445692935339112180575068848502560757614506502274356795636925118239937369429105906691839997450602650236938299433089144335661739847632844877647565248199166333577416955215827518136264356541122163677234062620617494682880011839166675110341915203207054805485516130333063076207970335588717797789162337659146088376310404925981444647202179830569310792166615879539512662872897524323792519684092838496362075092342345728267591382299698372793005884943107458118580884231219300061924575242461766520463953545006283843455335870528749541945767344418590436152346258644898589046542198607294460486105946687541282730041703536404246026669297398911055331661966392821124485379553600742400636323780904487963542470511541896069779339886607283666523692057405556714777965505999136118667276270034165456454053185872918751963602248336952741333276442159142992780481724992024508159426296284146302931980592877657073159028316369648617369460165366135132442802535233231164028071493937672900929486600868619311093583336034923930113687897827412743018462663033979050348249005791069727246806978603234701939733379213937883989921832468550793971984858589685154749892539376862018844929837688749905835058069545417862974319965882715650568084897153161736528889380759337210870828865720712472940086547856697282759601324302274289579297265297982002140333635892602338112994689439436531485355296259934395516934549493977553766716566616925125444540963831497444109819464958936723620919482997694967676507327159190501315586665091068210254307598029923156774374080178490867037780405377637082112902525114949516732961978776956051642256228594587059701326276258939049516691785014317599244531985561559115839314229711090281301780535379231264235877495396965666944751650116026658133539278824242242847561115681291475751204410588631976624238732565511619749857159270225172286756473343851068994254982331931238364441314435925387281576891915890412786541634530803397981346547979069686920877601646686808012500446660771595984556935900606867067813326835355363191375700214705247879215958203107112584908933560476733039482274679020811433306926995870886704952579308279882272587947587109798351555948516938131520365601054604246114123751205002338787986044026115646079499999482045949288313402947127268365258001170356589440418883364627444500938154403421890492192794563940850459533087230285883506381540062892109019928538905904114969424430617468564061832310554660164686184753970580303042729095263187257698754364686040743844728013581810292320798850700365871275173647687931561839804232567315319729090834164282287853025407212063223234475205877142276472787717421466164748946073835530403410704816961270651433095534562759818647870543800304495504248194567853798689990448756882284087734216599071478125856901792627080220979294673297463473103022996466207070681433393147983826179371990937775559981401662799565521253619631346117063396343583918145202741415947520844265595255534375929317797169370535410360931378719550934980291120761437293445951811651386733591100082215559763048623408843029093183795997614138302622574553734205903817646058263298649610308841569829709170355408624961417045973935167041085878473192916032612555219622155134443960350204403459110119485261622736059097592556669950182461289702716370218177904765903855861356661935435571916275211838357225813234288896032318139575642249938951685431194982324996556061851290854153271073197065408767758729367236059356418401937111683470341545741123758726564161615992985563316481058951517641887580194465034083732862431036944852506496934289217518746983085835649045800237033457579402310863666233431854467101196863562524955424088032980190356952377815080890684202244239180421435361449538742186923684351012797896689725534190210725356580958089487544650095179930984921423241808415651973307910211523949456356261298113356594148725099489999716213950487074896773391922942143780680058014941390919860440702732555246229929151713042623865096813657739638403814157883058434249045683307618727758511091888431707363162709003554331833011064654692318701650651793073222136353924996279124859002143689478250488419053862978552039124160561202652511297601071657318664071919505098626759633587785465111430551350648375600478795679278659125496300197045296795496864563298783171429245277581408394233176705712929079866005665448214499171149163851149791888993080678252832230689325537108229661781571222760785533853048294360879092912715330703752724451775035382907980593290312342752116392993732733794890524004155403509879351906397586457175503927627946258370472409896915562022013195680434064217118853119793480399862873680096813120845514476841386497071820103692905262808217983730511278235743080985869659532720799039911931568206204658170287947782944167121504546708586438337119601927850494795171571057280830894374139634732044495819064891970025365634811050405827109312984984999903918020184308221728373974967144316906661271967724954024499167050209193221745305268490215465760979087471330787820850057851229604810516813949353965067399010798507365164455085232348070691809646956743463180167040494084396117230193802593541296632862846488497384089646069977609629247571202019135865453925001331116308875614540964993833700358679479229345081989918865681263979798646979003067136579577479901039257460292746616421106045340668808618137346376255464232656671675025726677517897399676230966849517102724555170594051712988858495674468460727745721803400707751190000381730904467733511114028272939018086578766103172741789956037020026996584560090019605835410980048973656662760196333639403671776283983637277690661503439851581081789931583691731523596974117049621933495162950772294555631238932779842844359394179871879231965105857277901559480493642009145682590335144651948955137829201196831324117042949993223011211606482077521658610813619321709607185059921315766493918089317243169148506793239989966426889445096250520893728388289971319644678310046750286878047294487374799332275596440160412740945898220279017137487641928125978091318180650098344123285051444031598669647550989854671997411045244061288487946269172265877909334895297452561976786713048254249940110036708637012133610397296088097411554846427550806442939196231760964726661921307652446221693744210514032121236452182374549404431241861491869003691151774119256878299645982814235075627947602766384460435949912652968298147291219716768807423122458293956833949061621404162143270294386277075564984893308346421553080980195706432286373806535286690326933465484284717895188902909312081038292020087030467578431816186309260870049920314528509576495881064336073384437409346460487759062112933092602277766900670060603010683352336279188491188443485418205331174470910003613012397818569633674478087655791482196047885124525109296344254792645068442637487963200724347430677784085366237769477822053940639246417204280756222734509994813598523035296720053379330098015851716904686388412735013153848479429079615171684763801722780454508137363867637398279528903496483286847501722347525448470273831818041504772715190803464260250288269061556170593442656342208975286314886730926410572642267920939585904082042102366572856416820403739912188204094353799911641273795241835618629804107673170465006370468122144732819013222556367529045426817833841437322577901167029831424186281278749330276013328035201012427024165081857328075880632363379159797901229420510192072252453264751874316899124034891582034259923756975341076754025360784981947553738518811422074679457347270383950918867234921377067133717185049103415646739733047950906656800069596730562271447315685551813368363726897709270216988918372686465140290347664514074617109600413539620717322312784595277298928881121492016892160718007999932017202179457047251043234998919778853100701235556443775477753586204053443227118505485458222313682372092013240676875230524851727534585898799359506682432627950126916355962358971669026452766769455632171370274310352866731656445877587854678500949574723262487382812731489255902976940550318936427514259677385994404836325624200106398940092075142565449659260460344216244034030596982677261577564927500096159296015426240699954524449082335439515460008671634670868114821586731583900020327792996877697037759307850616266397873579377698438188096860227165238762973256923009772941605792829789464876610300513529387417483158948634646987447326678501293005981836871615374902565219088570183126676693465236408454861873808785521574766779086060217444753771458071656837116981429471045961692947952579811140418209900521149487874972367805342522623258252234531762380844782409691509980254323589009903386521379503958556250837843716081841300414995050944332934080799808800922982161052476489863439846962793283920413842480908999596773668272992910888266484796656204700078190797707491754589755711652240482913786978410184954358060305352757130082229323147115150220696149094249430041932796878312047870226457059737654725047380655809125463179866745275795869071874353190115638040608464155852854096482111231842031215096331302760477792668473196475093953995773851100324169544444573692682341407176970193770840619043123672672866067368088381207507482574700142311116240779582911501015379408148333978567694666144546145189950873249270727409554098610278245291439652084691707252718813473170514927401458412485820911743594654887215703366141067739229424899650417667498037236514046878805388973731696996653904795576082943826722859691795748659581161253954260816938724470969495042066784342562472859763297623762616164297544398203416767780285330232272427819334878980418649200485688238340682788566049195599231720969538564745497909878942103719652858290376858858902731887367502349233286236885283751534911143892750227394970464237053982174112465186478036452808977644637393048851428824292918499956697681012107213830729794052433744388171164767990208085850631305974730473233045047579764527039358793521109955217659457564296468198489741768263887262763498029082065657149964489539849762039579455033684765287856406162022696339782411939162602660856517175541912760720913747408641155183264091522614185865501465423016377742399508267543132757809269695243104183323652579395127074324860400231544962936300218123931292786943130999848111575977586443085887990490174414347816985018604252300667860201316443530018738630430539369960471808828920127933765795884044067319782034346325154301615043695951052143146368507483522249726792553721542793692097195438480532063680351784787225444093554611757153078755918539785212497257198390853508516881093928693326801989298128054511932755983264141200403650439162354952884412580307811757545102792815162424176962393996279449252939089083257288236945654539917165135672452401915401389760824245624656716050707251551600356601166217640852863394746802512415340258507499032852673609399538788349478735613246413295557762616104383377862093794154741313125617608549190279573369330998075389404356433122175664994076819267908252398104830675152905572110546556814820889653789403075674237598101989745906535723257357998308443502649758498491647738545866694883485035140248264041635467982750640803635708978090039566291422973374007283649143193967857822363454655800693149293677444205070903173418802770455616754056890964334963372746587738383041630048309752108593027088137167661389316956921916200778220808667542350419550753922600598009399201664036259526785258382970492757228695221848338738702588500840996814751047621594868125574846102559106028017565820691019224886324888343346098978765246046358172425165681347772852091100367283577002284052549634830967281236842869695946161820528398258492881387004682834726459158950923446403555875664674997705832985773738715989567703926403735779181057432214163887988491173526264351311980282307009045333867610891766488148065391145036491355048144947586394688350040240224213595005899684969418204460962685790377601704989869882705194611428797174449459402537720459707377531607028979663522708014287997403457086521915674296956405897372321550930439534050256668871929217400300070696754574280153175524335127485782124869659137183178542151781558760783320364598875380987660141213129261636766845268867908071437871329013228981678292829317194289416447991131961255398635518200045331364844216747717586758760955212130611719965631716005919317182771303594584954255346407968482795389062742713146787335551936360830909995001988638591257505049338042413558701764804993679168727561112592514018912982351365728529974616288388429117803021234595881230228547634958035366932115290777230872957066264146068301201449995974912260770798302758853386033171098979671269140964561161474604234331806596233427856831816475464825916603654666342283901861228665258272391071288555049382966851125206882993041597445147619512523174271669524044770145033099300959680659051544772459139889359690162491858665921710681375717771335167811548621755831152829339921071167888856744726540828129606250423861324036666654580006107177798736595846476001150546033362717694106104080645204298628801795533135960343966670191235213639836522887945776377620415217880448696322170827235703095269260497666315559780484351491506236602725487851160850411219455787008902061502271214223033886300516529293469949663138113934885636585383173982705132924735094891414595298687487857565066528042094266328907073806634498712548790582766382857285423511872272616122763810666822875170165042710686672505929878462336007058124535385669164565313747784139398590903955372620433532035465102781445260319470671497029861038106446207808476258339908546448569166584408061849184180431280370451773558163728064436016949786201090527628683800418656449979550462623541072025480593237580109080865630899752694178684084839378042946555307717184430907689039126726681007379024952451604921863093881315735736064305688104964560976852483297048204313778608917059369821538261476641361636849158082703932531981214215367821533769217437742941391298203019012605721493635539302675011596425325338083740893422787267189706682229842875133487127151520398952489666900522593945062033363496582417881097717949256438880410108480373193868546180094090200987915852944833219652821074374082609280925884339309876084478830181206395142517359066271234322600326359425670270734279620315493419916584929027839851166653973701840691909890222318831299873445341381894863516310996811258699041246490054558388824371782187099594678882068345367703805021154679967523834271863952052008699259451262128322459926356304541988548832518926696299089211902376712578997363648817844149477691532065375279895315565321678566328147199564103320056451752707358264424447256938138926440188779967493513794262031765109134336685912276637371789285339153295462987570488507045661746350020823152172458830633705699310900693949828958693617296882714161899976420231770130274226307321498006245565216584462857970719968970746732440618444404719423419968271522287583862673050526013588910172042802050121281485107850186652882442825704812837327104018617853342526994892474972002551153479708446270517827210853523300814445693299591526753253889248776439398372629787189844580587519797304151640973094142118128314088703547421586943409844003617098088475021416782873169528108462572200291488157678851724016259402424999013491518612424584189018261900383214951044165749363010056773663852817473708780192111984594071411567787045641223793898105561550931668911983220324684185126055485144522707197170337565733987173645822264169979329170897166713281949453339447132600261012353144845325353200297213166945263507730579371154591415486736678508234335862249096721635691504081447833339742384223969818943774133944550005982600057808741563107303935339347895112204344185030294612896710764400020080187058659177474901683481699863582458700866732927215572455240163248852704077289835553203497262485312295782254633531185681633539498291529062324399262504675493967858857908291469410845017518119694726958420170061720234916539930653965996708119167696126557412515197005779907519323568197476501476429312184336654851894501064164755853086198196218862018930422531698266739256157851999982749963100317165057695893557309528957161387258375796384877459615217718855503553489290763592073135888509721829716857472796276390942320244859108644325579824987384070238036481688720555622165714469284129841400025539175798227474080921849638385967613745901937365277711785224635674731054500963965970839332055660563044897354014397492724582518960631033338664973797466220324266205338314572269013195874150056161577963374491989486025991225729952488141900906545446348691817843635112357771937621340173096230331187498700686954839321462766586246760935030159286377493409261841195858466228029581983979750334622429423456177507797651971870966360634507465649671021282283454570236069326307147997801431405200691708015022804158445801755960398582403610028879466667255696133985301512405360497331954409039738755186264025167518536645154086444570090963287248758839568627752910624373826867083495423171314276813991574553042914255122822535575186956773536126014814489056506571931529333292052435097653374462799434811134634381652579124369407958608978390752809814042163545620389904873523408422754709422567167399770604088931223399304495984945715806845359163652587040249897475178018882598372322014607228336357859602804670839681704685569307933267970913697704653665206228596605353260230975577313898026730153870487510509551831046917619533743922597176856486375596917889124717639117731634095555783650213937055387969712297402147601375534517428817100347903618663802770096850142465198324021842676334025801723408924866582522151160575545353677228591980134633886929333892312571602193253925424325503571445212135195621921099952957126338029738516790611468691998605357718896419230387263660081781260329054127954703792350509466753788643201303580641103838317118386697078332285272275207852765633111909662801266881947631814948622268093791347499896427315934676018076038710932622371701988527713093639678606202058979146556348781417447449173377512188494975358275094878014148239337280359779946597692166767028346753918911556026129543013029850997281024221488544415633893616058727202511029730549446878514528036295018662919857022777916907713380884889557036726478768888911787944272038767858743844854858944736618758101758940405358312724679465983683823456542791858529298666008929197109498573885065348115691162280669698509150400144752709562800736891153783649400204674657454867399157795659368343659778490027749401248245395679804268638752796449693963191581604945023856182952273447359760889640255767076685684845120583189079254014442126499390711219655260266487119740573267474899172812451747750295754007690700720722152840693888077192971721872317328558609735913129154339783914889125450478241435467704768587251608511103698795122347055464604076377901321152950832901464341493206983684210232955181685298990497518469294184717616750252100000876836548296143320219751660184360060757582870961368493657080813752361474655024342946206064385032299173907157135685155955866018823133069007669560982635628062909361467611056983287894406706153539050197806718188179903431367384186465703022456508082984242497959008081313782197217354939609681872792072267164134987184017736829465255144109821215820111570323987974631887970377261241140676791305698991071258481086109064315283898130963876142265249071208159202959640220039658343168908138945211486514837742150901832063636551164882667667199193670100512071094899849833881370863008091766143021104730489184917988080065888107707193766899916542496872473950461005047076617239041322680282535684430600872456180631844006032545228445930501376995515807987811039336638282681304586691704325451704326518211687645372247480258877065103258582210167379887864933500004568056865736584689392404683079750691390046998128824968160339354656995097828990764461435877656644539187929829201120127767516937993861527816244523595698739733211985857864392350283521368293491540987695005641827024970626877588926055981813233772249237387633436113930982305233136562963103523561930684267349216873683020213649265798859607598656673031608299002142484467054314044767767928685452251025409337340889876354647494917802768139378375804052778114588535577982141306187578371236082127829415394565861129307674567773602582673690159303490229362335789801929077716752849933822656598659151870764947929492702289878236902486111063847318846165857864254776893061731952690191879839700483816021199223777459066163050688014539584436700481958128101729955121835192328570544476371244882668398592621478270336993413364884118043403991598999468706888950526702211315942678894068194245006232045647612930890772893981893238562618806759740371228839131834738409385704848104710046829162606419885623634274692989086483974063158550378737044901500722802775827920429807153809137584799930700148458197793591194849846010201616113519022687298619366310015554091044264911085328087580562440846500017299238235373910493329762703818974019436023091751098724340207843726859801396997328075018916164304337966282122922365350451021269055056048503008636951017474877942427967396574944438926423786040287001237735165638581803751665587248259201346443792413193089915567867173649302081458762908377835216134952862926451702506877014572751458428692390042419393782414027504317395701072968529190002243678263843395585543792877101312472546600491444628421040885381442912560799285347872897714904574281202471220671492639645084979794668938483994124041485562851267532463192605054093833739370766340369642707671507113268511538456891188724303266620601539231823253377686487698256730385821970485734852335688628433251181491830411819573588288731458693838920039213124209523338854444334745374612597633360290859568976671963737740692002679937571552966469722322102903668999905055114890967976905390578714625536988322969772727913055910332819253287828520034538347538214448596990092636649415143465266801344979676350209833126388251432934484899385078082549235092998627229627655539322871210689370896935351710281965923068799424260898008037099723294553776391271249291564526959755357747610075494765854638963982052203527549119640777796893099991487401668918083058554488057540224442214663563712209441780770805079335949468571627280345138693422264989555427206605457465892201860371896526767960084163720464848590460656258223290280547190528829123968436060381410941135113608447926335264896993361511822500109748198381507456387482004463630324335365640646863153479259775998845700866073402088143688738309651479913091343981154725073351339321370662882725989962640666687794977323967682894763363487194647987655615973331732745500569563626681352902937667177048666241383163800430955700640757955682254350444394358418985554006529643525055296905437683109276037968344390800623597588485756499382896453704461508703512593342177188955454464670458441325522921733938508045164246696988910409297600285562215400719553529233912872394135700933346261445532153600015996580732782388184136914188959229106735141999214787395997840020447933223224443562519358917191744071162061242966300161175007910383959761966543225725431294774659645090428180194269527067467258509841490648792332847152839335699325970314522652859087599388090835572444221554396740451480289995442542479651547766176481975759163461983137411805215049642228400685681024129431240224590754002075133921927513907796746016823006727718731671667652108821587303101403635766706089868895386610168502237908853243975975964917674274470365449976653396181818079022467619476829184602902534002431011153380774304492884212811540775893502044269987365302341576783175878145053604277380550298983329455197954508107921653476462296489880842793979465144407214327831405757588500657148348875892897020602265455285950330975131044242931127517636629112494767178355098242610959115289539572654733034358197935265878824438474270111147744795958497048068854339783550746771286472415525897316125122615701558139518306831471518074098084922654438146639366636268826747033877298514502223975930500199607538944492437049727771724872636112302952883295420149344125204841025312904826887018203776578545723310732986289758424576540889142527186049069140103903952171109272782425191831555467551075275860193604037104375175221455747894508758078210581093208390240567080346731773966618568341566559448455924638828229288170449746569963364514165516294460916399757012370203679146171288402713625759627402271232694631335585251942458871119478578853356800302896680072137171117886309097756266724602551421049838914818902563305632037682423728923258841265220706746279706838140406268394405259405268475299155164906919367562986356998648195870154753079674301846248374645559501514265405878208486918065556451738821239425404601149198479785760821663768128784455778755720216501587811578345514030074297176235437256339236315020515286211095902000962782221110531850068880478836209956095668574099126319246979007123761785185522657242760405622638321066863626823177314426313787589109575215944456473653389830494571373834029349651001470940505666638345787122331728388595500899437641114499880863655769814642202177040479684769805388273555526675416571036605573026027918976359441037931571479643472944679070140432140212633241117545845295917910119606422812173378467710611141179121086845252253428161445519888305749921598139474410456302338731884844861901829794895673422461598280885792579533206745285177063834457682128053013988944824401755169376800069827577096250874294456523367298137310094480238858291511033585595001200543766499260379925870440134268456908865656818351997366332255794830480566937554035737695264407552185825815915598843621672688733105586032789613919897135188665458898775084004551554989867913891070104303951729992797396344596352023636968970482648701162990692862686135847194100449918961918664794152737559291312706863453373891316551138660148343116675146104269590007088951179608659206321076704717949300536091498166564905154042724239048153389615358919735810499698019230476398356831098902833060648372475690160540722730415382029906869480105885281152804397823521102794653922599937368087735097164767158568110713110965129086517734074005026078937914969129763872412026192563016148072387962808876446320082692843381394193109622186000696557365237627096192919779708258194924024954223353032854421591095087870190891985341751132381362317410371603481808720243028140824381131991049040859194989450071466560221451673687605351110562422850228710464278699175770225755520010477936437913151037000113757203928255499340877075369182372581809387511815048816832711499394697758726300061437879072690843846955610497187057395847103340001320414056980264942904489233930552007024737881093878662352611019937042707629460431798164148257336955089892498225084854993495347627455267581114846048676712784455561971881653674405439467036857618711771630010894986108375230397322136850242025574859763394837852460551952199977929905344909740631418137915949695124392500979687678064729094979440364593117162200681304244261509935307474164653368713673491819389369734640679406290544526413023107954250202000177556443775406998864295891835772076126268638399157135653587818822344668734679407861601165334681355777678052978013339972387432510847902040501230006355006637438953358616340205898940821968010705294267125837991939200623151345280688782113265684367026972043921587624234192637317320978810258959591248053586799845525535392701222515976395349772290512344007416755059634230730122813023901271885456301937205533277739051365515376140520160801818443530270722445052426891794857403778546197973610717382657609533551906055323884571251317133498577871416254490631134121611075617338790642557952634846129158019840098015080339639635163679259088454577069091521183535862990481720837167845258624371875370467482187583380307427550138003954069235689678845381795576175071836630880105485766974087616010584672214210144006735450499131097336951962297148892049781105258406028174837286226384614986572190972949635208985116264656685537927187379191540125649462107765360512545374214677671509922848738108916950509821106438179160814316997963878553695625871105589140639164609854934715861546678150409897158646079813085082086459448691075695668683056502236583943775101056219197316939797243510402482456359630355783919940025618500690081305099313741031453508103196811986296895478022875816214624604120750993506484360226630416803240356404976216467840593717041475385349911445793376796215456774457600119850742888697114665966980848404508962035092610848502480561768415808448708842015672584265051640925423470805710977491464179445595023317794928087668131014144120946154909499378073782413515118400575765796577982740808387665924707673030708712268353509626722122615150684814859271907982351184096765266644252076550665133840745313299451172739178665198707750398904409508987580859623086544358506477116462158988385362288005626713111347557614896229377834931645493169334729496465346911505461700926742150185770948717022539859548939223114273412450331638638119914479885425778113338545895227717687209252819209694543512074446168260796074927145835806291522726211126012222463998651165609412066049933062437622757256825429512558227631315206077357741577229064195563754690330669883032161791070584645576436147748966896625501472479974369709785372266928719808595683625378915528363375724856497002442538739990329114753093867754523445477961462898989695955161389922144779859177577756701356380989169774859653959917851355858011784720348350334033271373637276360981593781069953687709553903575269255818696112660341976583112378852966450553377600976315729809493960782227465543887312228457166331107348371447981811288928503701987214174599671798772244537502950361656374030853238401924742434310778032919253937117558234782062797449603295125800828900189341173134131981190987333702758290638174287302740270045014547413360855559499212035312515037186325053393617526634355094243449605488584796034276750611434549772068122074299740321050338463875844728700706255045038498487249466208600262106024666837109490499484593250170681460835414613602868333671262902406086003907847763973644780663894119880882456475402051103164836280769589472503645043428134225115152260377084949857369262417734250756391311811646329023723479891342308872069383159570482618552349158810135831801851534150639205025962685817942018179844381370778891849476243117092140659860833373323765314501860243380903557826520372604080688658998689599335881844965602137518765889175290897382787151321767155255992506052190707274940055290926988469367474232404140117790458709694230620033182488336233810227468555946487187476750544723810345500858502604408690637066289933088229678115164269166172333002939332338442983980895748548965744463085784143263659143270574698510369351014175606137979634701240436566908396188692272312301195754223448365022996664768489017357544583683624801763550999274421984275855334464384226230085483500405431231684057602335683446696006004712748835021173506379203913852975173188900397825958829179397293928433995519888720712740582522750679104745209784715577978848333746285817514892433686580000923584693986972100918151937013501549641771393413854081960132186203746775919521910050380613442115161153805258263014283641261391492507644868123754400894409017241459905153285996083028972761489574886163309154245860578741856877748747385660117886956161122166256943586749748948946699876282468563496752659133752903179301955562428820898929905271917309088448193691699061409811432502822920181829905293595341696531949770553169279858739239500436551484305910249689112726135624823968500838160230882294020672853048183701753201870388821189912445730835845202513978570449184709732618070039793859443142828863955731418799229095603875470757579278535529322289140667936294669276417112277662670239528480462499678277924202113482028729185464040205230065640673521192310902437612644512570311000167174445965422029115557363957928257815823388256619656679350246198040231382418850926839008759749664852679287194154919300361136681201375988186577249150247310588615324136482069894152936874166900665437079812401546079781331327052364537505870050078650182470138539013237533830149677210579984811344153102907277915781491511187715381992430292516590407168236727951642510778085133679364816320667910416118679726392880818276314957652837730625806021563585501199391594272760364788672532516917745773051644143540045871663205049422789943050037936456245075322191674789767021041752841903015332554546798487615429390059365936352120387853089497061101294910965904700393042738413962787340776793776607271162058273495280785512042450022725946370656347011801849601529150528418536842506200501032557330140151799044738238402588048730525723323432882604759764721258295708511094505576591163245125104659606462268889444527400059406512328216346433211186030118389728065256618047625285804514210121173389976618449477238886079861184506035935883154274687047394605061182539199994604871686700640095863073282295735616824133410206128756327733516267252075037103471188243909168366544801105651375193769409784868222899794954160163688976285535626999463409743178939241463394764678210352806190844525802692034164247197458400891583627721868928389534640129666202065912064983648625836049361875570547226754216124907152390776486034433760161906753954501815511327931627742486332030554108462732794472695106323928850134772084631068096639497423023375978207063880669687101286905218829256283003957924314754719726266324039193016640478843024858493004799639333583744485649983841749764171981095713262169599517718050778873596717075908843271395578074282102873523935589002035408741047133168837210076529968417575923620694382326058885704177962472982560122737666272873025987516422614731603343858103881589944924612559201615180850038715912695874429988246988888728999724259929898731733494975374287652669249337978460829200928626638637682155910086501439454212971587817571078546215053321585584917712188357211729169082821843659118762349122205988773625304652225687364760754995421703340574344723898271670716325009224720195587462228273444601644238636183972573116098588891672799004302893905070809653429960364332566087671687888710048584825829378243278740385863944521871518819695058975709522100407400380197848680765348800027431072706811914228285685539189266311294718559640490363672235753199505860513876696149385222539156143849802519885305493374664640901252685317484948552346410561001799514784019491305491624173803247862512383123202341732736854966522993172051663307439486868738296400504590821586753758179288897369235184176362854977273752485722682622378865433477307668791123147492692604521440896107534945231017554538491899720304663717314248179800949052829446246079081588231497340423677019958106228268289666955355111421358984419567045754409252286377360268559487754236605107594735431411718458550051701054801179321797586569067122680640815929572220187880593628208908797930474029539610373763249049775477360461737056639915710769800862255970951944854528265317274118153748235524705513491439462600063176418665136364160329208332392503921961781456438506108526942956050674765418726609217251235233970782237101119687709557940662467647433658334425192578753637142619088911836435734777865996848836588292220967148944488807833359639879406510427109645906655154979749453763101275634264379065583211085386013013947893550276743806897452824068018349492509968682596123842142988037902238092084021541476815929516817506230698575144206952070595763242644343652843002631046974622936721484219884306130857525523396818514253374496633959713360385242364827209725887002715926930494579861300694837163555446178988542324401709069788649137979876392776133184364396251001167675945426840897507977708210891864271694536260519517684401866861908536424618205995123282130088633020509282503891322955968527736395141199124549750578558222568720893421478209675734004499928054365199930168183002922779131629418156772771672682366841380897786185576769029828167823105753281422225819236202229757328383264999171398267644962931063956171121782284531898685061214191661760105126441032313702059417704033291898608062992306388257246065472341773402775081950473445983027738718481313767205601172016247427473891846148756847934471688923731946213355355814111680082988432483175173358109626537815715854660957025266386284497953271192173233098179906346134074289297943971811202397844684279922755212763249109123292385675593274134617078051307782240195011005658806619057423420479921957077320141075661763026302945835628157833913081193981383105345745835416660986140625286370874290171559820854669661550949507801948269478348410518849625429258878125632598363789152818898177624118896425991473347763132321802619125082796539097371612658638338355060767503430483282182255350732226046199033654722764740108646541979962429676932845012982996858822185777869234545935383534689759623219066650201314944580437422908406989981809707904129594169290527137400886546995729183443058081919332265600194421884295893905649035728875604583257900908771910032170460831272227685470332646629511254145012325194939451184896709383745103085641012547421202132572434998396250392100372873819521030765272241451361445794146714900201694371445978285061988488592866747578093545397663761125517319923230162136459811932776686517712128109332459599044626997766193089236173303754792611818980274087207290125019201375950372776063421270792553896162780682103590224533513171340854610426787287631955363169982000224485446034046736271159866434288627308565663495564001228188202883976941160302461632097823477050341801956993739862167420147398984166231623139443595179364069569718657376548125714194086235044044535674916337494204725812822857928087223402027326901411744538461067083443222007008729028289323110724761286279352232526904206600386458138740694539799999420976715530406308862367331730499430653051083836505302576571661173739365119117127088376634478856138903191251731036695516797745542759094967735098311630740613059258930302345499932974694804000791208079390338689555295165165970165687864318517024563126402203513584329501497456790295478840592434885171554136154253223206252063678237924708067372859519052497552222208277060537059362509480640703959861491761285709832404905095354648112065715796875900298604274668067178588487247214000870000626884393772063231731342272238416305459407022223522444969593917256427529115607585903586919961471691174465238049667096816133167863560466480589667674935184011562961450468150772903144496591059944119258046953236549585213478433778241962899695181179630402138038301702076265698064986206284364213257388028586450044984396275900852762186408159930904747384213489024315816153243439738406824250397038269088520201967192298092048528134805414014499368281387032484464480720954821408566294479421263643076103744658727893946020460494985173987168452981244517793059846747055372284946219461799068005022311419319250038285847244188782974141203229043207499442329357789654930215777319198443872965384052577310670318401084504489737289758512567864617627567241120315996526820252462543271282170475685123287840100166254084822439222798173590666026043791205968726356723800738324963016104778722463853066622805148304186742638295790767198843369519125514165505041370602509435418225852998755486534533897729869009434496980372154509551489811093016505961469916601661710258518785665407619353266796332352164600965096779059863116204783744052744347416572207288967685101315625746703417104943409965933343737316894395058688589224936514683909668177228881130346038421599078823824489655344653811461792698093089908826331889533084240785145858075433228201685605472310477820536939861730827469606335947446241741829408124880981659551335512924234874774225322729700017297225296549674654787173140878281078305165602435186112367960519468509597991049433497686131440084814545708145338294002343020724793006987159705704141584359043858935270370589286694812836018913339320674820503043024471744682485559359673487393068444574102695393093661066149532830205118822966873202329865828179809985215368238805537461640211228283241206912813566318230766166694544134834680851812595654062253563899542377080668693426225846742070850328496071109916181132194802811054364620648125683125109579364975578378161982398796459103119261318948315299554117721588963653155433568139480237113158103373981975283339390540690000297773927372347657974003566634869417108709586993125382176822114641052336701019475092493914106694924889364043306632235946155302989042586450577720165680910532669029049609573652295542957130198768312044098915233015043672981411335344440175375305233991285699097596073641172702082701469008751440421900388205268341889426422854970076835088891673040029265664678451641151875774860600797596018996613170402591082743528518083674401163856475985075470229245298228038117360765191405991421896400834996685864676855666541639967317935048966836144423034533351004287462499352247038086624350229668562608250173138921979264924746337917592460092774892702746917181029625804255915952616789126971052608154455857108266589795160262566233124152495793820915447076689339419724217027725327537939659965557945128193087168722667777840810335134883952952216636886619037876837207675860499974542287542448653649480224739381482641670642474371812286237258637523000837399498730472206010478723867783531260637202250026585205184759999995047105992860323856581278953024000265097445531112619085797999360654197260874057526582577083047238729208271638080074345437333135768528196726870453408544304556851640279351709856947922722288317366772754088371691695096313240506708672576244499476808772162760377357801724191658381909295691107231024460882390673444236813079385705992665839490784577644743993576521163619547384437574644605597094542228441978643728989586746025399954325948275224309234888020859465970842989900303660985003413420412199559552620174415526070361080516311908814830980023804373982204294946881640954593979188447601290904613546143469637527728062580996035181059107361822278843333535951865289170692437149065815184068109590949822839799543571714604262556978186205635663182751976745485910795524242337954643832160193850241517683404334869568642166761128135836670309238813488035822839491506290986430681834309962310786502731478606697014171049145809073019708581234335172875873609406243417041073395327348681267139371554290056811780694521591230710778017128678638138941457784197030660397460017351567558037574986120263919771943265621787917967305041992390234216830237745779740710740264279057160316785154294375958792376838116157904815268863948565986059118890398404231574842470270069606310174706201112545156814694928570526691351847104179693401637043525541249665132675198737760368568962965860408038806248902275037534349346939014256041338805269882785124050325391357139155889134980053788375454778459767504343205988469416389958436192863159812892148347067930477137639972567282717942014488901819918411515162061366474717177018167756493352761364790628476321017152024638092758124645553318115086049810291726278782146445148115236140628107099085187039680852018269473609571448786189468978411834024861109879549562311529368613985798775971280180106884567282225877624593405437348426232965605432039762819726403524545016701262859682967285814898945332314393487990773492952954415063060037848326951922029120777396787231964363070195759854562538978840539882337013721948511548829887094051405349502221021148278163279857322129164394887773037050283461919968942332356722015627525866985642904682690356629069336579713521744353706553197789398853388847858237543568947899446733374719234361992421857510110401191344146172507279360275384654517398488610175042034903907083975070982573980107636002851714551534962581423272698768356187160110859409187352103904762392198280817495008922311504816112828361258132280763534101128160963257919985953898867190178506210603912552993134329699208876690841135394141408951221000798262280611015991620844944887304373516311457536717175920463095869593790716103111883643775209923103504869216735119956960290494649828741067745220081492364792961581755359494968456681579942854837620725661767370828119232901911579527550708964969230927244853959597586085180734518465292118572367738462522836402190884021821555160353759693110664169631157259468177999100154746934315241553532266649174981638990290503189137521575758640794779791221571421584879641538863013878346104371782140828830897103730023021818703671669593002532524396533889638150308704571496730437002223914295631929735878225638935184526104508548771230794597414607288749384996467889567874848985687419511321213011619557329422242398950478917608515739817881986882309226823553755588582232990930318392866154868155679192851662153948380627281866917208665239252640556676679939802539887029957098606416227645856408160704197728483477927248423722471566139506094986601761650903638426112516651242476972526263147144298643974276737644636724293755162201077690753736802210482848463428623626716220425355502554197442835735047572258506370963050404033398304631891361688381464796891497055037644987877519409820940304725049903788890268432924693142892897474292810284379913503742604758957032283002845944176945969905435413274428509601315018392827424756113779719467153447867133060941922965838534668638353185200739998200009924102758542274820954162460977045045347871802274589084200803931128500216703477114483759867995928261312748921151875644835166003570622213982684150981737277637289649020646582418482544482505641347291275944263725666724428919566389145729972476182274415542496919212770072277338509604212212274459283437382975562990399354620672216670811127990907992770904444663768988121389333226255562933450837606363935697585729914060350335168600566064597851133839091802916725121968656454033224220526207950222967076834760258607641011209914408791866738239530917966435584762729723308452754883878207603081924201469293461313359771748463901323854607037620471642932240854723061135151316627651046137315307999794100714097204466127887927984497516381882791525815515190346346393059070590212592214510097525019303229351436943521501250560335457600569355983928182228464991001256608192712085990442812647366002584240998593601425607239602608100096074913975742985105272671096739904424096762855565286715311928042868013630598198337825713563095757471536704400101130710425164862172855596872527967588400638829995529850656635826530734534503936191092575471944598236889880182114622934754878082518791865126974929053356675843033360606501098283577720093639826346926669707220256914400814014962946850924006553742410152040386579053963611111204000010181386205202384546123855321760569815249544079243757930176636294461008783687313424291944904067295270457187455317623645897475163281399908112843464139278993576546230922316011982589143892994625448018652753138962173757104451551470455793350876704622113885746103312261503841726140938968160293080794108379517483403014451663516476136732575966201371457542789986885375720318692243072688400311635344978176269449684199451514814316512202861297706111025379077595067882908055597725561172694672233081892432368482565921676451180825979368918200576254364738056345809993164131360539303002594194915742409679531638437975286261961992793669357975102320983144192113554364818996619781133406671353527690345736317538794251522605304404021630997890396795316196952965210651858908089738656862369159420068456459587030431996714612398559623594535813958682195401549757089230056821359545576998372383580423731392814941067886785432424158061148099381862025599736884191828629473447679411051229916611875778648777174637819486973339136512844751726402986039606564526222807006767877020385012416664399814014542939869575839915793358399589438942391054444236913171493092046682186764857109184487869524528872121398972924457004343454887772551842801780950040668666189842551868368691206348404869284875302853815652239256994530488467013815896790343144156338727991198110620824235039694512852957356509144658040505450249193795569608775311286200800173526080836919596529977673282973434464713289823856478802214031214421174243448452805340730001374321699519722797848422254224455310990027515949000895252976980603096837930994422938225319987880988989160255055867329241777848868067271521783376817443264240753442316381133911049295744354287192000785964088765270985758466963350474181875690276342296228065997041861733773751118786554838552413585212216026045253627560904149522063583100141181312963582707598677029850963738258102069248732890469547506806482054664266436671726526775458897218824833908656721523811107182785565879227328082261629105635671581738176250592898130004915318351524203105458013380886944692576005877678102255018022973270580412649753721278854120670590438271386404192645329314073804857184711109110754466647138462726791813141660260255267388654557296305460326154708205764709984388593889069618557232488717234337430596836397736133478472819537006670085041007098854259234312285970301555025524820499547427318934298650497258774886987704435699834167497965750159802178726199440703692453282898164359153845529756067838872863030243382951192017616851150793842989583214908310991024143686983904058334879341596694322066414304871245152758636274482801897211095665157798162449036458777853741897574064295383237876829181836571874681561592841078862747758254547464630862306235194359968670249561596328803232346858188737564817022913336199236295733576517796006336912179368777531492930303735233081236502905462370332005869395711261868255034274936636051592629793820370498299532845058140176480150033266147778260873639491683986906277466024457713960067430531047127370937131034508636373639134709254875427531781545849432128441758993151316161300384211410845573247216280082095443463254920531153057664842610626285561123356794098591407337436061156213223509973543500459566194557134151981293206158238225804016736993430138390393668102773432183083891567738674984972391426954430339510711339253891651588434694494468286581250412868124508722867658544275253336746412232344890221905065157679879516539977725072548955891731118132827311723021295095661107674621410790124340128399515202848095485623290001313811616959197934660085970234246532837117623760249978042550057896623722428766268979775595060582207147025803967781602858736035834070266989383547851835698464269002429483135753661235044060729242938724400364960846708637537747735082604152385310441773463302674131371589820084569775088259462479330998997082288894857087697980714372251671603590510564681663291298512795024648956266902488880598244916731321941199568223449700744424921166754366919813181361578727513696082644677804764839592886108571090249432800476949751935567619529121036395848304721334024583992353806528071641269959056139727899022414655266613418679239304544659498625324193348824958781526448852518211091077905427162567087276443032759951050112087204004632143637552333786898324358479674861743408561490990089226431375583214161350840940068072053951155318832433344993387481871532755993318253684496708883581773214363242428571591547223448005175415537846093839933101034490983954436022838450582772301074324322323774881841804714117321424318014831012929043772878998241902776764719872412448146481359528319801022263635918251747708826598070357884563643730734290638713349557831198385844985680303223013742442905845906034200061788162041837693156531924687916222675268609719865263839900265937947181071125720731425759254152802148435063692744639065214156367867278173184950552372899283941923613349148328345334138072301265922779639219438644617698970653649836309259868583586688009451278253919195529309884522567593006851739654087567509605754365633508733390800107845340027607302546389480658603031919216048891127094659405229664474005214438452575267106445026332896382755297437628451655096353111649130227880589750422313756481956749196110628284730936667075098156782018677255566329464656253489738735145449038818059025736650103517266615266380071070607226942128566103165441370544888106126816474812453970383803764229423932016161981759670211556693712085430424051420253793172434445272508764372435169965446741000212496109167163341480704388744717822127722554916600182522358894755319019069795092541889739400225971563787341156814299992407888317952448493372895034604847312876782655222477674265356590268103959209244834299491628646549178144542515648150368576208735200549451260033828835687589707019719842239064148541971865520480362158581206244519362637498173685602786668078235497866572779215791232756638083385963831605525863756999441695729168236775757430749628088285901485251058564767079432742618062826663445336529810495414190652713959332081364868619416476170454432912513198661880047407440508110342831552960761560388611585410435415073993192896006897488761410355246475029256432005699102262489367194812047348883009759714594162365849188314352280208512993968569750601314737489408540941029921828359537282510739755710897139883341350725885805724783679372446548164592020272067422089010994370053584153271574989762843248032941597642970663120997110880340948596488888270361365552152460567111426081210466061652524012454724165474736159510158419567083204311270078653217762939008622167542211753921005505565228646075195519306854223560148929479327861848557120936752040860361117437363807615832393035738727426820781354067427983545343915240828106004404413326117226426144650928430864021513524312049453350372787761747447254729439155164618297999371456992313967836768941528622761424237479568060179806006397787864194784475012821840287059321063470032351763374228130304681946375119596936124799201598128174512431643948870639207223980596599454860331465248577372487323322857259722239362354788685166022519211280245479844752043823678304191988384285264335625247284612571558661263542028888899273811440183969888262459827680601804112429629188226163679057901277476513969981048392016779034731330441048602681546268260448014014511364320024545276363293906357793458172736504816698761840727860097299028607905263540556290340797061247848255760683536737046288304790828592554470786355884055688240322827274465314438997153389072259181621630034880995082730633858480671533817060339342212370214586346917712210542123627230734247133497236612957026704058593091125051481372459289557264398102420469590796332483142521257392646928636180263789285307813870897911076350884838903105193531963463627822157327708631752994384615036783905023045405291328238124140835382885123540592708032291871109427001218036253438210831584897344798165212515040720461015305108297848942725559754818341664744524943830467432724083415517582854010105276980894552258182891929407739289736716436854728159525847405138078409809509473446771313822685092758604446575845784757366212281020021260661454019907671634147151451219546844529589483316152083313914109325403414018146757801864964475409199184846237802121613783457259927457899382614645965077169400266295165712593802310490815584033564629279182818738445249344224906994650644328662756602529386867534737576466029731716003926658427756052727881234268271870613598459911443150084950541872252538051099671506147280833734403321250065723036428875546044114709653938630817072442516105062129465053649986554873587228811191344056556423482718852578851392580484010234021294901067235688312494091933411034378950755585450854397591292643554893503471977798292149069535341771421148349022826326750518593285120773866536818859947354566010065664341225435017986678512071847385746095476419180154745180354673672420116022992874031012462291962119059592392993796521714983227630582462290369073842800505807511884117428092527721047091591904918509530240739420616497724356933661226815898210628305982836867048751664119212248183056926580977586020194289066996432548354997079850540102817930424121939805448043753588441924483922541267266943042652227785695619182317140433771541935999879718705428723564066589083441386718093553953585974320376660183122524526182427680768852107430733369968339876793654929789791105550117890063246579015317793316539306177564354684828844606169445412336012412948631332166386480666548323450776504076504934475167905965421475176128632661975542543360505398731774157526113012999216325976720719971195699414790971074288897781674166602901463561468836316337604468576548560344331000618962619413299778973629800875509997655142077627753223182710338417445384013327640668418003000592539692223058682294588972130785632471531667774527130680704476534734015308000691373528589681144479667905115857494931186141000867548939174735464196221976908120917864100301167154645081116348962278481124276656504847849311511601364908604586286468550330054332437803471602472048149791387918524673604861218338774073053559015529687785354406662816158051835323743994850507432367577664879625153177212048174687956029118995460306638487864578157637564865172172776473105821630458675029667524501831253411495693959064558960800660837421022018291884067544692980080759363245971652921821252624608638092157083081033740208109884389098447135047211879061376333040907200149233337142793508651178619344888764597528756478532641650261717087066222874291461954685385666716709174562957471045658697005591605350105976570421867012288471058179744031910966242952549081670801785797439062400616805897951047108247829354990981530650277955512109140937731808962754986090209127965602697174951954692780947227183072124255235790614602721785962273022075617763150395700313537601057290173814945743585009249268277996229922767679674054789312087507547831651423724548385930970125038236639143664424339760787649197675562045913285015063902218099671830731890386794776733067051731387120212774983988206586528646189974991213225224924952567474137189494674272188687959226910216125464571027191915596633936636330646980118666587322156176464646017014576689794799412681466784444977542728194733235762548645667214289628613947476537314950733120108094786859780013765780714955266448390346387610078606230369897361027703501876976048600204671292167424346767448071484665187792849094625406047472299623862352831866002624806278921558419468738261303617323289580748139190653830475655794463907339797609584222577760956929932794128779381378568535543243244080711622732483103942288899828473480340115785501752179714125734230185562856751811589302069952899218087733698032539668799643463277641780122288980545040993822749029787117373781876458918622992686661697113349837412554263921400831010566616383552345265286998661137700319207526696967376990470981732123445296633779837591755486970714303492816323833250085449601577825763994500167978599025808524881231850731925121624091885129019964377280529045732074837397109450181545570078767121497649195395674129603174210488938161551325466829492491114398479036075165050383962521248081342719987156723188970454854051062288952162245450294616645621179385677218389819487725548616840007059827144170960314617853393623219864471413580427195386386115721315651456335343802564271512685565816915668190489239984356411063294681372707214022478892419988799489667287709019273802102354690731140169363137887158811383715153396592657095657520554408111821240862335175582615270140027633678318164449294642024879661346844056709138224317958732577679447577759349339490373434101089341267644934210676662390476546326853317006683139974232052510297176262469464287865032980373891757574177020739311250829112121293922660908701078031947749060040365385991021012811304156004169646188543618002290947129873717441143891336341693558284624225797912521205777785735385703240527355255683643490272850723844905518228323696563253698382170193626891220058110174297480145875581687999199302809930956499278181682922225483012855992284097200192578692688850862682462089562106427389396846668372841406362711838734212255134384208883652702041786102001240863080209351777593552714675186456248540086014459782519744409201745923015385327042618885144988921966598748544238466299059028304910150493194761973155345529614757077836629985023996632220163244696108309065623396470717648080159748928474916815848203165240511176784720589919352565170966930274163818430838778644021529992457897435618187042361757896149477848497631554757544432867373972551548040791564666456460394258786167581119325056786834769914277629264403876300729501793722361637796223251433110614993236685292114337016829908594487758025568053005363505270952157542080575688719612559021744614984039613465056159037718337594872785410461004339594092635354380948185157558371945418059737846997843863352743722142989719722222287906253211761859449105959584859665506133314482492597578945043957784092334897720586180510381382371437777417947327275858076175330202390724573465374966563357314287561549139568768831845185200221261214430527983251192060948533652612719558562047485727092753163572483763154411898213106033629990626200355533385252093672111540588500310614066261292321554685189779827370836609207978078849897370449923114907603980295232536895295131716634079216937928697712729932149137433545224800969075370042227456293089178891929104149337935883887773601936633910937975864497781250585297030688591937242031256075819379381679235402488512238811235631918308553885503535723691494845533669022951951696313622350165038362106621794825152599628450214442819096787288262974347179909374807116184422243078005953041218651394901980921620050025367362186577329019725629939029107984554703201737359464586946160323711737606649522444095146663350072205101659165531816300289786032386257358142098320851657084693193892752153294768904558161661339119287875368663281851185829471874029640078946040784073431541484475410013443478392280788431233115020261675450808523487462663023521178857072985684727038217832084457289847450879338672178659566368118644396162606496423922771137305736841798548407006901437413323224041595972284048801520353114844094784353934511317301758678384853537868318920959343316651639660695160219123056873936966127616052974103077299824433562010488735579751437171456742755054825204104149070381317004581642746125140405498493937025095049211620761470113384568980234545355292699805757495210899596887831724227605643159991745358454237175746281477756412674301987957291409617437286061466888797318390901363300562857609696039288706387346519126394982098244038173164814336151121122553261825801662827005111214778927224170733786061746817083172824755739002777600548254565193846457931334751441715409222280596061709909808572751393094779618174465566672540007883472725806057123407972357101803249446033930841373980446173672883352311190729385679271680598392085836856695410259013730324435450831442435030120834517563518172852495968207875604022320384426663624040697002280385868771574539563030451082326715218141164613484172786328793483757604116423169841678783685845002517065951398883492985966545374511847596342992807719767653631339709354356847233988078330063620036916291888210055196800148928306701612431459258814261500952901538736875909407725295332135879569988454740353483611815392088781284425064846691454685023198584028544251056106298452888087997869423469898814308340104183415586271043420394643063012407465121750509315959552384621039871459155174044327695616170536851736793039378939478813915072984639266451080713356181306549854824754292699976864775855246982925368446825791314046914542829001998415044076616424924730544144540552820035921713554743497712797381277781072096846621099219248988801755522004750415658890094380487900555714141463524017472177470784240355315001034928032660090679199194748791534414853228081891998375851362112479667803187233972854764336537533983635584002061514627009599149485509950547821936172157247051218227865056512285653731605798904499906387259817177048715000036186093840794340703862542364219281738020941346409845082496627462681458825542124460514820398287769781654887951363875435942901307715669041223109977258117640219884151041446452817770206506610801030001834749755757150545019709048496870284914505462624762138434023388105083224754308681375650735508752132917177449196175807652795549502609994354392430497072958004554733424177583813079446071491901255377214999707166016180499562836097671451797367522797434266745470772518600762014940448361775842288957955382909865894944359655995103360710528462956282098396510874810487302239612017205623225758574690034545526496539199036041444184698339841001856945626634815389498276642661576002609588935021330652218963933480584899326576191018103108010010827516105393298526660333523332410415779168648287484073040840904620570747533157490869453668641333453997741017531615474497936870256430752600652308333737602715790020366111135723972215689045690610692971647083189429130482404298508016959717854267908629503525174290572203669692343765372409520523266815121271262988265276262705998936990398872739593637395656952730080499322305986474340512239544042202762157653534176317517328778696794022342925141996209576822873167718885983688570789079880978348221559433428887541556880364727901281001178053374539092116045047424989755093517628419331891179990928691269663480155218576024958503506041543699859603197966973692852459251508445056075492585843743761700049515404817662366688963682286666885353176254564441595190772181750776346853494194114917043334721868238694498141980763002397607832187464813719982065322535166833006047425319729191071948680523847324611157536914098567562967726358473394763247395568972943313508389918028954337077605084683501313133894251729730413690322730601644335228362380078917754747980077838955355448203258750993986991503691443240529221438674429097480784212860836541988008510210224145223114228011879542484925162341769167009756413171382075259612565975937396491027101787555340794918464860706098349943040762314611317401852050184293008935699125434980226106076941017555293978467208806348508822001855790257525123512138435481797133313335705030886756714286719274479167056466728650559926114888268350320649691877264487823741518079202318513925702740897125788939982305819538866918564598493867358678885911366582858347228684584804640827181723883331503083279715465072302236297149177494011819429523872893767994567629476253889113842967667952208242333088548274809137114263616442261987717118291545668924722494476282853682791119108844068572087874012877437622126771914593023020121687173638165684722452219589216643118773941271038378715261541083720188253017569926562367531809388655839640555640108754320705533977199096477144583826521986734579936847715392996362725755081885714631608875729095961781216178381430971427426311597141374340352442603416046975944025170823019426256458653995492480472415760582115600291660762335415844138087866651147847437262204586179327960900721978322526658033065887176008388715006817669769191875423042085880036752796466504775579226840352445888172272038091868820569060033789851089498671233547933092472075155322619804880602057000052370658094627748342954599355150653627210805905742217226868258166118631949160497532635490852865239566772594524151096963451098259605754654869734033746120007051370024105889787781770871402263826530532424197974931022073010595871780840783949964050419132170856129768404214651724105877035221764595880689892801911210944107654450523769684501328274846147110915276161099477556877585193241446946228024528953650414640723440517171072261209561968844019977632486487706790053399141467495879158642115523932576495461340310695852366395179836750023003015834361457350460104077527008571196486627125649719353031750872261334752874676974124948870181414562407260583182983786343519920437710903328679024318063830924183050381637328409347110709611978831310742228153355372182979399659811487485095515374922242603945532295288268720116038011117048354348921614768415683758399117155212732700259797153984806605722858134636400375338433056206042889326878885553237858750594370293927047975688273394964525607921928309546960789744999561515299542582452039692052793187812686005545439911845444024174112537999128827568325076233086808627462464388012002581030055369353810431141861087229673798085249813687056762366738236826363670025025228747017690894848785538355842956744639177648849796010563595986498319182275330639145551756418510007538765910254784273548906426087661128549309255541679022734637431301476097122043313381881960377917162878521105174495451667442170262304455388471203687835597052176724555459301709341738146449371787837685283857680305062526426387682754767790403326516470879514380163533572451295367393084249229864391846616465955109365051012939830075801961981913336539155193337581394624072776309035919858094753660701962127754726206869999020216531715073200379587704004283132557549901666908347373892775267791370849695673858982251708958911876885627015542355351982273265432347539777923781160370588142043025876534037042776551322704644520531871361853572457037379404495080392268749213191921756033329307503484464274773874261422360893878727825997928623494097838313669821120357483760626340676841312607596656254916058367235793927959923398836675159469081744534730704857598849013856545945057613612427623208558065335040968839271623952182135447413184039345398114275254777862383377008115265259377751281428869376106655694478077363828675074353112780629142374390865486897634602916034021871487384677714896882015145824520657193709242875092565629936619747314849373534015357696078923232822330570466915716644398781096967860811973526119872236827409738191551784730753452962459986537914943996058053965365087122238842591401796997165470886953113591375968091963607682744460386845755888534468203950041000939033096485445222099881024614015626940573832237643363914628181651717917946144766838652548978289123894353590488722445867835316409502713228088748108842456460952176184114280232413050158870029755077991046720570721242938655529849957707846584132740735055432331834565743250739433244851301853947490701501383609910158149394146751815506991155156926856973827712226570551913490965374632432239330106617027951307070898039002390901126585574984754264180329602379332736233312428535837047685272101882752871929397534322823849098134512181952031952693850869056389792902027625003343183741321317761228956062442301785246657776861263136360131497767957828257524473940596841003076080623850768098936406693379555731398481741622457442525247527754819158624795621299550316928298642036781887570612825309779072150274992216531936181782098860368957614650029069449524055960964451481399686073178336350860723775005494422697267291158570772107473080195663068374308253084070600003818402093807474696931610239216653865262289899223088905123373653529719128325869430584589393549622770899655690599718830735990454314680136262695860175038113675481261049374240282981128877843142226735418366449798092518538695503545336576099669169729358947263182802955179016923466860994915161942609646500798086253445875347833503595342307171962319473704635240998629377905241265082326637192813048786470450309714877047580110180557593517603863472406535906060430424653656092644414380740912603376776971114887479441673436670032031077329733455438591114806602283499008924153001640800884252914646341685065639213689478389260865630244699948661628750456265902300669375177864294708714056983084898552598293837786616037363790573287561223169085639376066171888642942290234618897928777183848469593244790351052658208945509469302901585109159805495050497893340491679927573788906403388179518483262995188436964857447149979519836906335537929034582317989048395602375569736812927334975075285940193399452391222395283953880396706755806373693890471330857473803280970087643999326718300455310571878167119820292620497543417421653411190824035087386438892309474845377695574569311840317568765138525570741039413064187613101254187156224461394650709369466535152321556519609074868816405248856524917282318091758880038382115823493132661224513204111694614391966904639262452537315519586572483707896461434042602734010712167473566015573413938630285182299102843047621624207626369443232571619361365481350595454240325146635564149341423447835833253057162835838613134245046704730613026788111393869759100859559887531058293631545571491469515933297040653660603177432427641897087707075596162633249488463555626320455887671083152177788153474651829300956032217290810180792181444136725920373517884884175887501975226290996352038859895321602938113455876851253788550334173327012042415006897952058579826080360087062815936307426295680833453842542456775987505221155120639940521595072625369883561957548606070703325899143313431158596183772373343762436041323831786614456245503732226720150782752011932294294242478424180993599199817361021303033307692667324456944552920580072119878847769686895124697680240911920374798541791833075399512494915377749780906064483259974207771157198782373931843340845858842232389459335449659588302527949606071697468140496147002106561242130663088409669052492388818371409396468379637888029491874261528139570331935556996293317548422263586779679463142983344830128977728898610601353981120387771785082748260791740572506787553872644177369581194107257190137415056060567505533797335020960060835364150148280932787753540285523331201741737215101699218532541839895630223223120726736608717404380933019082757989797873672193960953572840510702284480499674221546339564906015130282963882737981763965169271507640774957078812728378765808374820570162759292888727614057545358049653844005212012976658334405828942585794464692752500704202967982706675347302437643758750978944388524668328316442123883208538080920668272900850285625655520265044885596719258134444575379841920313214043083054995996532735850368415794964791301604017426111606985836997520854768037303829532241101901644085700304031848639492925272993960530009756504764793956568610935170918841694183682519835469257100674668068365349843362485780897860018834423671033425273538673898637109956285098075095765524492397388103878984791411173612656215170163644500400260044197648944837171639058424039197788037881747060976654229899798901621657698956683429744278218736519210701539860028680382761432374682708300290665851272419807336192416326597015908360199267022775204237923142428984254015148107041638102769400864928617010756795355680403956044671756955209708925132974358750223763708030673111989946420979165055147143713609593848363226466121900525588804766880086503609368681441755922971516861025930376380094706955236579327676720413041074199927086926898382806782440362826284988197253590909403364750521040594918084863928964084051113443855269882816653856838322099759032237499025003133486842361793756307604113687662882316982788033758821828971678740747285301343735917137625889389962524561654396850438143207136114359625771658696705506987672947753594043818075964138529103431317137640465784503705034874937950800249917220453510365035080523239684839984515870862098211695834664451307657874724617474128717456441622406145574564338330969013282052599304068055724863977429197511802755138588167707126467138040422611717515643244428247560733198873820255267974835833144045939132426743671633337999274843075688303338758942959683845620906211312517018280107358298531509916499821783655901364353947587893008651690380879479280765086876809321735212991311951530614907226473958438801560527970586908733303602908382416868162014670218991339430439717217809408266614466175792936018843647437269046262094952915282202146453572971899517000515789408406384671841773656311872405452900384877966238536105316554111026022939284611665955434811253633679846269506678009405674099473406659472562541686220613782911563565932931196188097534625340873011375817843112227208299014551206411285950357544359760608288873436047142494121237389515342762852932702909741898135594931132470355442721361516880801491483537432466278621314256407358453360271438282516682021500398713174021935737908365467956021849192099990756313519558203525344260374190596701233227497754796882026360302568974929168158792661989024523796714402037011746648690860958317900887998686156587598537993624407009267756002849477187249750715119678431487323959450915318022710343131841371512935392711133183879268778357490984343515727503211194286537862774911929524296334577486016452352645903708330052032344155373432619482561639294804715124608587860529883564334220702811609967051766669421794418860302876300470700906502167269452250995053869612854470316373686880248578376087270874099630251365410136136808722895213090537519525598383800018528380469047149351818390984764334294883015910173195671493158260093469178325126726388271360852004530940687460804121808038487957293254232181582689172847062600777618669168909120143270052397473291840304780523508974894600893558803022219225861209429136756145548420774221915824940861035720332975724331004663091171380328935906668478446744235020432526078378541706211051424184530628685039245731459043439875761912497468862733129412040332401619028604252130694838851716753767180918643601351165306629470151411982266543316120451959218645194532152474455101508734295635878878642988562562224046535971454117016800568245229954283603197008883859635051407108304949579809468770930676748108547017068009590256625689142348797029497743106850382044790989374166008714572561546254663487782182554015782646906131969359573266531583187089013441272542298138618986775631374808786784001657671971570480661901173990934145753479889530320581786383625620243275503919741585619603791202206824554597207470120127843060462676682615707877143395092311611516433191460176032089176307908425823021976425568667844872838757154903944181000189206384410991634582330119956427379140598696518608163981302068877452087520103421115144637220086685666865537411607574439952911881211448627916771156370568268383873471730558899403742128158294405538410678972479900070425905098761403935340743860790082598761814082218253555090862305701995237742587689742432640117822579039726581616392352658267709570367618870212366036013993762741127469758978456371975203284221010000634520636893448543965056320299318587629793664771951771038076982103259398650034861923906419446546756715960349818245063676747941377916402036686330779111128162349612383967629245185606865835285007945028085567907036915617784815540882455769779010603036856719683501997646375564940004171951326650353632441578638638068886125498219589954576426500809504021597413077486307294659973949880535746070461692764901713610326256581164340289350860994910320401722156213902753895593599912813152568000866119933578269261083999666822138053592394916468123687815541462348652288265731045045111968911872052660846029766340427839059820418225042350820213750861032149840249543523848054568046767052651150348848981829584942663952668422304805734146170623886148042030695089317918272892516624907235560365893729240719342978436263571737974647761297949132581791953325217582997897501191257815065589574654498103217556742379187078936203220732109039905083738317815154629614924615939860726854501359969340596163527899175335738655289782525991729166861741724595749698581521824604316821128833142176106274533008511954032282806444233627237489212177154429042463376100264841245298436983030398177003077448299290645394986990533889262940285757084005132282734864669693789825759513225753469765328767736671927370361358888697368038022582699939971958023159289537057859173512696200008652465306441017009438025675012760757147269635944659726997946536847821844084317025112538455749639555321519519672780141013878986871318994094723957229107578344904296012632938200180561863166047928100715937893455448253800630149978351315115055018946039747894790936837321559398911195291705779699221572378801678515397501143614473589281967760053672025132137518209420680951412760254545936115317336521994441380451148486680512521930102509953908187448073437436708572094816698578378954506988146144439291714358279252991817974110694952442250989606560162992920491174309019806915759650404295739103942395261341760500634063728601179178469360598035466994942679537867485106941891902632774891155378540866332957659649570841888361696673558447682075949022728505718305448027293056686447349375715674472682152103373080311723863146048087430443774522976294954990395488328425534869083868537343887929618675105759418451226766802849444225965520383570465391230553487716984868258888313604785818477319038186352457547725960023829504184237490416556790742613422610338402483512238491626466100344690421070915646602764868173749905970119570036287435356655253735801474488489293049537571258256652717848251190147152529772944235282921741472207163542783532933038402063971580228965032030636255653150866635630225786521379840997391138524536784122715637670690752015906510207943905048633867864880666905198836660429667705371736200871691049151479379748880380851103749376097460440993261261700853829638399416912379617451620131140866925054664199157045261817016664655375320509364350011407496337503664909171350567980838691703402178617828334548932354521252286785590080211051380460226580961475171582207914843706595399190591584038582764275792525252593658024233626438702682304901898785623160044219313601685107559329228359799087453058482638609034793516207374153328734819511170727594210571111565100746121395216099484945795366268074401913314427687426373162732275621555729519551072596132958639615466606340548817480225570335495752328398106604179446361162606649693122504983007369249004191701126427590259732689602410052524787730844788448749558738538661970923719721800413855923654476484827695094062795332567133128719511399924723087146923072007448016633090683562654686209622756536704425575368734276445211866415744972922921990238438387998777975018146699737929250171922813768321719486664922210056759044694654225424268004257982327510180097395719965780539543188988779617467576050526855406806910678259980076038976594968619136426477152027640461568167112876546579485183706969271266508239037301658681041066208502024466596598485535593314311420109601578328740313120399568702886905424019083072689103170283723924043756565859524131766062629257728904097511683984345277916238253331157858411792178486711625732917995662758542946854019361877506956520473445825739104247819008775212820044550567621792885624111060912044601976996818163953518228189309835351567079307989231434502001763693813799493737230631017998312378917690062728161838052355849786927408526784870043422721281476168486485739239509850751826520199626836010560295038344904248828101944860320567047053716744447747429047882321949759509584867686876793021786436758079037180584191839139715497498811841155421903763286217166686553059449839155724278522264454941897943543366459758470897553037698742154564498838603591614265505690913490768706642021043226655031592488664832632058617135801876401616812310161950870420948797425580803137261099170788750928886349561160422463299540854891831045172557644102149502614791819298936768189870208167581999523105108449970897170083983396843305384368171123569897051087071956567042005639343241620770011366207377144352828748262448814235404377461093277474624469573530142158373951393703191531401638955273041854122776204019653590454413838305068112800170500140917670723247324585343784111947368139387108535309438812031214139680268027631430547895216901994119176324232290635010418999934579227648472961879407987958997424906534685515536726925813522495538011073752652607933398540416672737398987105341547165510604196030056583795080045756940381064023833872214111191435582024795655851660860632570559075063902235581993852775681653832130611964263454300506582146929184913451642858797154626486706865109561953421945379774624111319480187702975107295901253944469143292056490292653693006938797930348936100220424568916233047037495758910878520857486268815510864226311800944380965500657797987907078177330000644752812340078624046943875674183241848960250230816017928497476216899945059321957087020205885654911444659908069921665832322609021466131299684169472255022948838495818877873112746170123908485414053632236188872155465458722610321084208984918689879630166870468663531639501755494369988806001503276265383359143545582592489191640019732695316549371051086005247675811749702697779877776623147544587925328259086521149965864633016961555433673158805211415575021822688419938465032945155532175108166868891227795391094304783943673410542326088137147423179010748690535451510646935416582774271248187683764666690644961519817632121488093097369430505944925981294850997416494417747787805269660367480379190543993482527500827627859967232766515885733232344964031219201827288879992445686848758131617381499629959072539320220079100692702598933281483747596355377963633350612024728130710901721504519481054492468568211987423846045564767587034089089783845771034278067264404454819420341170275117380704784388525533972263185785180464219749231280312212257673902581367149768165221656741723928758434957531691655288475897381901433386861598590850273528200892230095002420647803924781857911347697146850200483629766398994867216157357148665879548016919368451395512798971755478449357748051125516297347186326441923381351328383979868753289299350874792106845806968430692924770551224772342070838967593486307344286041169140699327674652685399983577684930339509533088304035388015773727537108835352779507452314454512423000753924142014647424761313584109635038951419866567250820805361911891640319301608400475175206929138281247510060187983458203704925767953929627211381246392602255741392158636556978064634805535016210113537488656073472937348078029321885032701221916813432946863055285725213735670894376589490393683887407397374421034159640384395797834031538903911665398756826151475787644827348455304833615449526763593616448077111200220714752915188391371312457285766549655999519834323352098494010724582654082538533731995860283884902271875696592477274459804116621768688052899926033538807338292088982832542704902812140590507008850722215756945015832472667010161718025564888138640726895932721132090364223022625247002271691831853341177457837609846984968251659437648162495258125261664723446962280705852677116473570425613001437850592994465820561788957611459323107980445875457158742091102414670985167347515183221131897703094192444099945189641443408248539039517487079567493287928623169643423851179190424560157425811698826522443803585572989146957994916129268313597037465111948712568970640946784144908639012191904614215719852883445103821543692094322038911599483001875104845194585531236920528756616903574603726080578295045517104450324183315741724148930213849625305117763635667787335601508795016499126034594203022252176493443248441225534747701425498413166451549796762372970204718035033735353773233559309825365695253545039551029063590734571512208901128764336062838193843839930712863827090803157426392303763402209410382920529917684248562877141982539628725329903713958315568248101991226928147449713776339173517108764454510584067769635049485551407142983630702504687140920822611186028848997668482447403347422679579438967115484915432990190740643837957867509515125000690131657801035309595854375439035990976082894976648223324462964618151765461525485618719009051847818981874892312879479297709860204391675271839656394077709838311180614880672008285714346411723591478480360038795407735809796642131274040495429802094342125162839074337827048470960393302256350199152033964379569372467795820113614697203934600882515806176208328007405906216940166828645679518331481663288408296700990828415720786146243189600904193437901208159890841083754150560174609878688306252310340809215088142391119595316142464415961320436158325835310302080388487675353230699085297003081739916288833106380860452436559339311164170861741238592729414889258981134772194810588075756921949081477334164059623063214460706701892046593268062955639178554600230945095404666046647234495008389869674198351098591745319424414031621040069859661114457213899075836298136906988112156644554885261938872303120734309443606603138180115970845967542660204223318268820437897823112966432854430347240951104809145372457976864801077161987629674334694054397506974472148387738428701775394828435779283921306371665160119549281864735269437410096104624504205917894034812466367678960885490395038532975043654150824097235138281116937365136482954574646638090934948680443014978013198088413205103370085361535787567453463247567987692388623725528230112026047088012245284858714753333233874808641720006175271162534174464146490931804340344010718294205723017206759519389461334093837870317940455519520407322030977608374713423034869043226023625121469972602534775652188022299023524133015387743556371873065977336067058782884251931104723984924772446964691522906579607981896342919068209936098668742435579916205807573606728749487566041482028050963336816702475147919472137818852111769288517864354820308797909447234080849551638445420731647675678914182114468126447239587645776865857893290937093465243828548555431981067258508421323769332459208091967640470376332930056476341849599104971485041071036466212240155031837253282467922843672650626528169873184253731212065756608667572354093354000148963545839493198017229223997145378579766495347345901239476424357361610726810059072063862762089795115335322192217769428202149466959458027611273461472445724342551663967272496355826800082831569741419941162374735650560018097185488337482406028942758201464021320388006733010472232763588789591517067540783239398941247564576808302139402425034693582569826992716404828541358253145998949169897552245116688999254337177547072257508762567300719378700925217561895527899781316787353452240086965013662006988111236100315417251405659799726834920902293827583968911556105014353544291540626857726943866029055252355906268103030580286410900246747331358726733755159607704535472712419592791477597822032290413670875613266133046378432148386341372516110674762377391612988329139960583297572653528321603521890719656942985262147652508479946095437874485745351277132571891024502927835365718847794947517209986518913373004244826374961375743230342889484967122097821994769113329973755871111280899000574713497547131819526993436677130676750393236216443686014980812601580455536880670606732443128963666234872749721894406908709538088158630319438548141651718688488329070899743650067969225141173370941243773641594510891443087061044391731515904980435653781089318724470072148439651163751311535821675985688437805257672224636744151137264998715189414558346293628946276957388328740938544265160463078416499546951516425068225688309553689626829172417960965134519030675832094176719687945336807102135891574789299437852075517663952668977003432130042432286736235414484753164705820809265048725821198139655100356427856936779717380325055031061213972516672402247286684397750588461348881511207452782371450971483123421195188114393248628602567699161526148462874737620038588547863395795240978174953060861036845014618763107664127108021183607076397317638046199264630075993843135556884365782362492333032212354897204812922204640019524987319298214573083122818745957910564963808384031392200589126243250347134673444058187206807271486712383994656728964010165943792184628925002269633874225909488934490953692401272353936265781497982043946400495661812022901448132763329310953882273177160115519789218294671434864275080220767825844353029481482033273446239946408741075370618542163633872814846241310676766260658626110734549212807150412077537644098922655252166716582386735986323749373576429313701115908239229644693152393443799346214147329960900391308164796424448441337326101443358452300929203558307603777140774039681826182923231549777843617555716284511861852983254708990380409182416823018833293271920893840732793619445419481330923940719033217566472029392643093642828784960083376188663390156247556784689352842483219638490916228613941027686870194317993276248935425832866877329923352597217741001675624641831107866105066391135379212084703727807650889034432892607633324811552180769114872439258512807585207726634758228218841053442283414006446440661101092109350642774446769364055081206364986495434197114175381751220187631836451727744527130952063958457405610211482398309232891902310227444191549916839605642294583915279363426904317777801471241174460133687160883706073396519148949894217410832237987661492489811009164365308612097790341012694459875170372583740630916384740908419594550888017166099424306103413829277509909143431397603079657970709712255230210720617153748532462378904961031247624068319091744734994146393827739276102912753211739767194873522938429374778326544999035323123032134716686016079071501677564082133414356843471439070009557367498776983965392078820637481070808860547410396954688315655011689640190117839476173578300363899024029524169214895786284196311791729396124099281944326354536914845058670169056291255408737632711284144978423342699721606433928974766215341443689387749785435653982407397930612273545670200256817941756286149307622489693526536023106712463218534674911727452732089068597567701812014960941119466479016779247473919358779612604005346437296176780063937861594562018830869274513650127534506337488582163928719639257715340896715049213469006212032666884772427255920191402196988055558674690125500076536792696351568274424193127953548870450580109490366506709546482081246897090475923523833331367183927832284108438095363621058195304346374520545361610150819778952670443511206163793932032058236003376727966400648080823260369767443395801026714204346036386575053557446767828820227902458394654255803421884557557796997050174378510988439216323950967890256899896164292992344399513306462094238632359770611593127197920471499603368072127548316018654524412867359027072662680230462409708305835109999783465491142331543052938576245120775636412008247065665441720606301771346300095729203795139864036165036631552888374926716450641510254535552398386679471110395312254711079080637521776973376575695256083577699129591488369114292649015503938675959419398615984227333185031980115947220533067096850990507637550643596410644446424008777951877340258681650475075731186534785958194371898418278278690290839765524771062239078484779240353731984614292476937986588638792817120842231063140780651186986764254600787032994730159445646288032295246749044389762729953769105245611166318383232825986998875712868983432367248885655705776691134108647944314203162930331974988112249665857574074078567212596272378743018136749378334336738906567437383286538320155883201210394318506296766125188962048124843324032245748917534287911059541713862933750256151533310825393623645658346677254882188234989720194539358212585985976908425016703002760599350310293820539460277123947065646849380590876154624531762058748687321194945464828931328130702205008486784210491871400170302420317774014022835525394344615924973218393882174003813310272427340775725752272422310929152087131685190454927469968578208177812473358773644492747061926897838737724929267207279044814398385986093989916949438698178945624422260209038500994997398156496204085736256464549359747064842066394756940292843410014413503480851062110579103885556380811921640879528236685716852499942476082437418246832816163124962424756882001729065654714908268406879161255715217139580476245987667204496607847404955900853625746296238813476792809026345916147163286543806771638364202188102289724700286873209381741283069714468396991300478666793440773313735946541251819113294848522736609667215586531271377921887546196390061716986328951286550982704753426560478013557772570071562012281456166494028835301360628808550270745625631006374995733640366055058291170313334202586507034433835165803860823001411804879679927201779458513024972997153139886761103575810852744915983313103090565098055957681465622235493860384251849464317299557128472853014069552372237528408734593653318541362774711459725224257836812914042467681080494118147873893250627431124166183929007878835343957807436143187992756979766774213845452198304720766955201970295189422687517890341380791892100333069483001680296101471094605571354400519254031091925596634161702179158839362991028937095204879788137585277455814738103085854095865139985240207905381134966937151085064873070955092610433125642347850910472184453389609578310523275528129440343704404520052059257775549358932429836211627264762924093861032980777365110099898481993322833620460844784557033962427094127847841592005048182512372213743010185740541917098453572828800901300009818018079452435740745571421342007141883391465718385555313416583975280293150143888553091126032494190677678235423033902308200535927181871461750768076099920400406241243254952951071384965496542462553694680581419061240832490617338485934382828308509589054690798906604117395211144396321773451149384851837422982292069448091013294850030091632199578021771799143057363788400375221064850358913332725873520027940036591325455968755883294306754218054438025433480207359467331282657037836029569418513488701694934354221921002495775854741330093054507408451092257336525617412592682698478110481844102585239284847650891344163846953588397351537302505139611518072484595660312632943160196161753427323307665017862682000902603026098694554615850282468647673155509254348596232958720200974502888177366947847644615050532085120860559761308004932977217809877076922625745881562753616744128039737582776983570375122199807625729958162326690154299601640836286616358085661776919877335023912734339287240510515647927852984874488110457238857300114071592116169845033199754020228872971204703789226657516515684030907014602092930021740042490089565236586058425732466751648929465319453861902355104680793301260801988914944787182288335434008002670066442597319608882345731966199687204007766783052432898460801199391890561149466443531489698921344033145635666880084142337979365833661124170608271907012658849507025888035904816337969009265962275687596220864849424704131262574334223937660462812209712813797865016690739376414687763258796323647317189438911993373901660786270032738369576770442242853837196025111150679477834743175525158250083414130913877788748984881363970431435733116283921564809369973489756847489648028144204008520792133063484076739830501746110230337359295586056507192981669039000880816367270651301868414967263188462080044509673177286592378661636834870429927884209179153891001323468444882803085427025399010937209491006036859083337396624483834942242427698649077827854044951048133114728881253563382698512717251505999331043654959744694818603994088270387809205858104223860436660197745263660334089337591552079420021437207418889538776378654502694478170216676243013463752662058602491359944317900093571681763050281108134377974063733750445667137740812870487599419918459172703690467668461403693621050333372400665924885055027535257018972031222062859439241324788187322982968514266658495216773903358281531841334838941945996012240996100212447688091804340131508058391515313245335815917664316073263195208509239657951967703193090896694951701085408382176040004708592477116344554018899146641287141739260397078450074444020242156931335038225426883738516298039000807426584788855588380982229593142816963108092021880060503060011696562902979645835500631233274073241226211843078783131489466017776992799985282037298758130824710607647998557357413073776092692689141449441246030718585116235475215983371148199687069168629615944976504987787422612263565087411670190562983439499272105908149238139429549778084680617234647565023551627103983312849087419261363048283108134804264052106416774417372024378868510468202110346818622100245802283323138774992194598481347466273094994667239400038919267026241940347033389762584742520763233640316371482761266211140809749886357715111886546152533290025919691798617903464458789908257741517517351580030592182438687472989371692434530155038102626335484583054842951960406560581225075027384695795902752712920135601536571864476249664381585992566560910948404748247903942227436347710617746487403744453340421215195574695402937687222039446254012289952094010878216772100979896764464247087518908762756397644813531355551454556750343170469337865851021158729655316285272559878286491439075566212522018943002904963626518241479438182124843390366467635752435989004610315382526660996557205725325738115729613557700929376816343758641888269469124862710558853858200291393424750215584507886186918005043711166680249889503615325709292094257833372030380951601819590873985890166507755132123482872266137022065672422954691542106623185909032350587904469247057460353287353618418604226768468758834957772092126527362958354395539462796466965869838744000970506297465089440364949846033756613105912504274289653759886401767286148625365436259969311419351414866582477709020767111729959110706539180148916129984593389535442125449267465745760504909175427979028921661200097285132059885293243066422134889710932740101325370102395133195932584678415948578838748107128186266271784889424399992136165391651167877917493774663261163271976371963125507593054719748085189748404140387871672951733426918915579682168959131358835410988112187601547060437540888489881470931242144186080467402756559081417876367997287810743324727653460547825075913818072143943879898144436975631157020896410132348062524504410248200271498835797559369057372698337643581200371931670163478970501715298759281411508276241550072870207073230639475982782493066995102620240648700310526149277369426925642704478726077433650316050495795293957553136227773078686398993877273794391131147717736774466049181530680005572234353872498039295059134638218077354359570104796498311000625018677326978394972612757983675342669606717614539891656543407578027234587174190439322076616948362966794743801193943830669966742643041162211114233357878950370056673352345791230397397615784298661688443358587161339289588159230451291178572515539535479668107872673667812484912806061563119257296492080823781496773221152982006434491442530608329508976126935485614079498304149148346143103275075038894861908570124376889885118097984747942796753675689842001527847461413109036305835968273458941309311967799037026234825222371940247636524552779891769726952919785412901854190286161767766683324103236847855350110902449440112141831967059706595099477611109436559120390863451136488021862860688008896134278766889567166736353042133069860804883639800226798092340435007242454491409205307521182594670261788892412421996087957089152425149228347714684887396264171225341624262267931636473004204472191080456187804332500958301012603144883652823373588590823916119475816032175719059832194998388467815246825961731192708783741693681407215462921940016883390076944317391084711824845320606763954795952304093341191619810748408408412310789971768003323588055012295781929607424326723915087092468446020324445326230382819668796958651974978084084038249616221768880025637815679120383966053524093020901996901858702010515559773079761906710850955034765344985137830409321565335986699873104802005329832232847996127158236718265537677384227581003137672266362521360227514193175359056512363697323332850282054875981740943255870108186737717908740800927108036943285562611686271929507554096225384777815714378675742013294448316118048925852714476338726455477927911964586256298211479999773854454893866573060139215400210152434251251074419736652090691858932806718461611383394090406988350382814885965703167151638120985423030901315552248677243168188045927716131739747012955034539228058314111450978106227985341192601162468648923928381480503345831135442997537763099870290163799339160170255403148844336209827668272182030275022850288348231079996400683741237053426916343006006515057979161403785617651431209643955755311942355094706815424856310286708886720376846484916641004644451733015094462464761801446813293755164657277211786183257743234083217711607735428867317259646540840504185381371453118113758663822980430910760197279329921707076071150252358262382022384406016757560050325385509116094054707886948071482265625929403849294559456400334126952428990661947631814281464797995287962863555018909297980914128059190737413519927713462409917152334375482537222131862945271138387261252089814602809087798679435493727943706675016453795606730358471657922096345175150352990748411330217439642620565045033913247428828038553395023403563661036402560484113110298216729261314941832826763000706070157942239635787417861133394870262990567726836235788419681226015885441291453621806017896426460305191496096757557796507396886656502680760762995101504917704647376693379848900048518306145270196438981277110531779781301433961809594453073151904140957002038740609545674716176830916338924577276144645494228198457450504130438105044163759835151436181717578455145550202996370182402921954827519851982289901560511581487272529246014005487923964074502112071548699575997044395262243982933104454305822463540780198886974122479613286180672818867178779450201462179189873835544422842206251499939119079872450350565222924497879677487923599415231390401816482594715087621118335143466918031489365435774069609401726551019407435682165712945866610006944977397827182982176200621332469765438092497444774058583149788642043445222893944226948473241183844138330268488655715897074060963931754399307977708270216028572562843205527353685554371032979391566660553613715625700030745434674220358937236194521669044061597740633857912394785205473681740583499374711496988293723831138481272231983174291730702158832783117552110542501334868680104087048016585221336919827809850019829419639886088122305763632896572879415482365817076429275306515697935753423310403691032041594765567687229888923454463317811458589659286442199680433430677522483814207602169414219627393507316668526124105604122723233696617545801881890405414812663707633885022158723481370150832348021142179473042619157234897104235979422474173334711422956843036322937342857004992199151389622718201472553105075760968764587394868619651001254068744557600620107618529971773421792924324411344018612936573210022679557960983203063983634231259510277535872081762352665554198590103242637837003194933500634796374615218679383703984051360229992360822419951772593384703058255995598744679976210089323917309128294554922788051270223142665839360343210827977462598420172150628648168519947254695926418197478927631815195089254031292815275470580689297540720664296138435413827132535538651437156063156564453098580765283793827508907452049517029228665286214586485437542273312920931097322249973477229532213839884593902130050765606004432798531797724852975725328962725840869711922460659729658833633590728444259555081685620485021705700987946104013795037770659060981504438939300155962805832495737431198033505788468850574789287721900650768686147969776020107116905139006979845954388364288374249622633919785539712202445428196283849247108860402576464980342283472832924142262797054870730439015617954926175984276957342770824367011849140226841290811853482855891349490179738030336107899586317840071035786185536583367714281507349937186275967743012612565470885022084659585803415367169470932077024561620621304052643873114966473100433668464810663327743318953681010175452430524605283764940555165476340471972063662815832312822750501382130916147683867437928046621181031087637884844928866923065649168054590200799800491862312965556218830265209962402416918665431632753515994841605598330064220967526461831564073210785808575487018723194410034834484453322939115114952455886729238744781367175711729775154477616798768696735598764292806336026822257101380765912486369145834359697005359819406708202368853076252228581194969737286165651407125776670504802265912100396179597743065252738884613653243487177125480459157938749228859218830775504279063926753514770831402028254109253528799206419699888808911455093813945855802741592834365876524683457470397403154823162424126227963870819401635059113705546276141508288606448023912204100794775373330002631712333551614975088857145414103132437056648586444587370780442440840911954646999101748728642603070264736171097134583258761234231046385436727663122824469745026518554371790139787238174704523500339308808001672547602151672003137112396401607838689489839524183204273401329625137413549640801789996512293927357765573814339860318361840862343808615586006511570406037851223847773424940200466215132352586585962804492414984596835468230611367624382485821813095627680355410021500488497280716777970380603869866974121548710241511906239923975793731509361651930759307327103767912540005858608810657044747001256727644769380400304975933980220325225047354389647346678456029506273484620968729331977555435524585413524483453800517207137195766194275143145938706783709180365845455202123062028962038873713554073774263186657913316491753341499662251792862924608094652905329009541096555881009691072233958878370870373699276969473287622553798324149117122914152517855888079978729391020892615098171212204585090799021580734583672354246841595459197130564670004575463756467129415106900124026597391122127198149729401350721729328152117563284846943963937996116357960762883879892555997977647054165118517257340352574166317619969085705587058786732945024804006831590054035797146074446203735873588559362396702759491873348448723327330948112427772245236494989099874017891575810751334475760201772783062748222204279786708756835207810273350961676233935010960694625876223141865357310899080552308157236432811542571067681287949926018855058818465633294982892532161651998481801477269900888544308610062313864376634230002726850086090395998118596500325182092865185958758181844091783651044149445370119224193590164691351643079688357441199854162237121813665023178202509526388966692845199695810603688904689103364730154041706243795416617890344547727545899612465000396430457763551828603651693918584357295504080437956533465706437297596914566113187305815936543004894937247559066148930201438461013634748644174026992630970004637131746253475066713628476971693710433036269161664601522467402526667258817127052297117398800868659868174205861797869140141514151830812564756661677922565090324583881525292151115056337369522724689381824342630983410443897030740562729143424432652386534569275683968032313847372536695861611942657120971165164255727438269928611451571968277883787028052897877495508836230936845797748201271541741829369128685564232206514258264550741645245388755502428388568178662478468753753429962787707532862018469523526235526807968935264541993609133136473832922820674730419098667141417888813329514380410128889714978963622633963251536336015862925548505851229206682645023043476026873887847757492238055665446696833867852619787184838594374803231550390758164297506818816998457916582644651540113991381724781740879096302701811796989158753545449527271136426215987221673427923273656411147537156882106733177080782734516021636145243932391825011156411757588998520278323907921471310662654687228924885365775200522994243718399614131684809948671358785207596416027972948707978309356656107380627871994788473700193501291709522463752119474922736591583768536141353349433576968470387266799351498654480266056648435048976058405185903738757082311696527407069520270194200810340682076144961709483747111642336035113250253185140196303830742647606437625236249999450452946258993636624200795621632094438098560713780874190888303159329309488105950167180214187031123442064632031828323906222780513712668308198047730777777300075609744210797367881776216860076430461740998363052183013541766545755152061103778932223826123573792729281969697776942892313890317124174091151677241303527417540249804403427971470082379984771962747928339867832419405217218321670576286704742286532832695981305554097151962431390743134325122404263036409455723906032150836806933039288567683365479903821592941737089493919085566378677988865949492675171931926968599954950104142345026270933976601804773663312399658944036439581810544410175706273582758186624948679006963236651947798952470078091892385018878205621529375187912998194511262175232342884160833253033954921619225415142346974533647037419294681567637113733185269263612210990380837448239045081688399711521842274916373325235301557236320595298727450718120467356742938676856712731795562399968825836647736837624164044677790213527620151271141732688072972844754840767293742545227865907450029422795855262381168816461248734108501020611716374129748214369898753285052773930076458696923757944862100693474444166448831672833718683121489931082871512220276116854371344746043664608423079179782473927851941927804633487930770780580373607940084830901058681644086792952511634133471332261899424664874679242501472640625741898571175438162126543765588402965155211950496863760624958471217917910270380195950966559341764234722639618556466970703911630506511032071264222488555012463376841159901595890987754395109234357312698097288250587437002148109488106449985798140900187380031499956045774881249020173646270894806152587874193216874420923964753637809192945971619549290741893457897731593208207967453725189394796243281426736797620502187743008437974328771249416391813149301343634851832847170221558085264597454276758535609450688257509448479659222101464707418232708063478616904235090443239180577927685741156927709750194226273171664810582644035936837080402040390169830987475166920417851443778892422914935072619509877273019741772461136732686334917539471593694293875735275755117940750964428389277556093364518091169791564319770604289238886239628363645410077991822173774786478917348775836692070832223111728743657653003780461801000402713696679749972488234975027649085259299560502593772238645643740941340308235304596082229838099916818764331143905555447722989489451480671128557171859599876972944189358648192751414922369039061435130007115436065094398725562741867508740057471921965265478301202773260753102777145464036821131237515744203002480730382996879348440122648339680708370215667933959574312203729593764873079254830852559020003391068944606745054590296728373929238504964276520861721868711883786137828164306584067522314184040119835498637385843215217971427736486058803777627299962714853413989912017417775698864927869711852999983633038066669402525464969777336047948341096021477783335612067544098966461979038855601878905637401030904362106484593242999893661703945519357739924360048867434414874133122647866426132689708050175322490435155827118974728397839653675836715038622700759374542561585146963937683433942011260619742850851824317853607229368166021590048625292539474578197349366083530484611394002176760746209239311855454299080978459808055495883215801974029214157336186386485398337500154557648713877268337101763364696064373196599762813585204247286385900118417459956820363848873900860716912651947663550129661897686758165769651290328284136688380485527424820214247361447827197604606814072745910612712225687166457044325582594720265709282752917547887246686758479207875156160528264611062496460364205151942423673985962713567541569171695733890834084096633133220115957689383048735164858724448304446675720850647074925341310262342841145385954084457905795088933768221872869709243906895112816004554371113925639718861381092168513582606531619828824723819383983172477952839244934878998587789417429511922914290166863325854788837334327354998304553653028153025512904499273249451857871471343585541414031173619449253710093191893321429810883327080181637824050507090850117929058779123618570082512849865315657411100410296331902737671241907515775049293926400019245257794441138904661113391171905837120540599316359622986154517088356540396681646570768422509648564760339175563934377821435019605554889215274970962236163697913715010709521777339889964122929568810258591124731917493214208970083384353045114749850821096351239417932640466601895761253841376381425008690523086635249641410638686010653392568860602088847835590170390045322392634637400361453644255931716141221681092623470739257822572794164984683630029192347525514272783051996258074499125973270384196883165115731480994890794113508711811032663523975501315242505774009863508946537223402254044544149253118266535875454525248978860504999477003738624804999777769119736831860801387551556783556952422231907563285859195110637298101705692258318506511690079706462583572441304181514553624377225901197440215548620807419980390936483030347995739824016452299194500801518026148625872471914930065686380155265696113263905125255832463058115927174956172347023528451452188102232162027294400805545659658644969198768113326907793580023214213643789465120192067704407087926845380246008618270826872531821173134377266034591826881252614747222573304089000918959617981031611531407608255824714542445960714439203998058285688680694427618982282000967540002750375022212134676951141409405913671656700039311649239775879552075315067941856113923232733454057918439811471567383238549069532766031498860630126925267533803935587146106222142266220386843462706320127438642272435541842021351177662647561724969608742164850234463118507557017901227590486392978117790536035624504089022808765167513300488858106233964197993409901595531049540404870806815526149948238496485462353556053616835652288359985529773005732879943632135544654189172802353154354548617060593100622463696888618194915940541686385513058478133493782470726343374902017888819596996205100073654435566489577050042321318960641163541078024953073123916196084510488292552622262357343879497548128224516487851355901853927179615365969411355848582869874351894057691806398330607921159061440786953658620648466843667550455064198878365122465644526522999577020578252647117058716364296506276214041120038946923726417532255908503191893434946720954765578439182358976751423582296104829429355542817747732375069231467486030559622017515732406933665124646714550431485098423404220937067121817021031448771666972581851635842505622808273240050210437972921619043236798091245845566469974142379797728660241897697534754901350427109457534407612426861939611786157081753661369835699544296543117707663744432760743860136185037224277209475983116904767287518850028434096067620392521732932053714720293679628158484953028928426216230111825476766294274049749194685486820135837387242816055821519472911925666847982974877927991873979294706831855734574109392706370037480186677627754306877683353991122258782642932199120004398092132816319338950742804425603682027628708135331703902156353247341672927506185125927091157334033385016585460473668941787511766358665432271212877199127472647836962109455242400118796891544736604214493995977556904716021713975060814441521250795596524186918616561959379583956474044346289947148497059549530425815491176989037353187158385931226585471201157525632277105244008972374945941412706643166209144916013921996583369630821056693339215686905977227004345192052273927297678412246170569584373046913111440911793622670962244048666412835460743682451840343822815779987868016407674593672760572205646338995646233795459356534214592256592511018960771571826355201003363958600901727585056815645450569507433452555660007902160509717219440511457573263294811146037233876080491927374956981135932885034497193924637587261185428073326170763122720409951027187915464009195711967311510632772846372176630201658852917773468231278976004954452236105989338674160966833400432167668099984196895278707829209104553197379361031975232094509334181944694833294979122416035950295830679306847385346073714252343483358882996953007743775463453660170314796713271242356525731697682568635271561432048906093206751556786984981269902191428116767396019838494676365713858895242122294861226485694130620280496367910197881523587514973676291214784630844988040861244219966513986967692077390078734953324920433547786678013629044225915994408057186028021868992060867197056445535994775756104540062437552465484369916112782984989431817099797048325662533472520850134305847421074264802318712777057441963854808879658281909919920349333717332101027577190259588948826327112210031222209718557184148024359440886554777842746302534691006913416058487425260537085255537858821288229459885954300871778219384984221260362689168548975617737918596356619491404940459423671781789778260368849962114158007990337965733955231843563513373908613969142531162930109902617850013034570223225963903507754406890290873119443002435710083327358297658610581167355130022671491287875726049471897635276702417068099837554416679177322679057530641571984929645270626042565635158526559653510569143514172598020647969521548919089601521836992636927144169429024127204009298010597201777447514922362864802664975233887308692387768455196877954342940649280667843427111360664067212193207626384262426825241279838716321760844718327818302855680918443623126520741515261279981638654746866331414930642818375123325868016497451048407700667734988446066713349494800219144516415593753084434964676826284714717095911746579634176027232903843617423044035414314039777573418590290310976953737908042648866017082853019284203325870298912948096747374909364376758739943332596215590162127385268665363304108808066670859719527191355397619469005585655401412566510603134046106334536135443415206808579224792731202057983196836196447839528042782278344635817958600752017494708919008809513366874043752314082912477000639107628991865548967864955693998967529021946173108424493547268473553357027065430073072568253482484033501793938501718503634614322127895623117619305211136582397409746690043775941306220006485939272365557297937280232673587305800202870757101427881397616627203697445820488554209868080039810336575799419020182231810371295510573777297576485782282901857360327562235318437207880938948600714807227124511767972359511808453783055140271594459751528292075868984507354970980804586742462667680249091496483583485114173124766219862722589445916474674983665373381325427885400941378174045062969700791502288779312642779258701040725371896714267462616271120470579005473499613254223198823876257294316935413006842951975105036708408186004454573902745315504828683807312646791944879340619036065435106671962570696800218590751336130815171955309551480879154114054368135734316401604463806004878814870981591173695075327525525666838382474447667272367972171041097902847580684703576776436682754719787126881748278609203725379054216400063670458630815303083741869312150133147264431401808439531123772757889538455847969724908023609810210212506137135489780783291516682712022052176606552704260854819665478641359936756845280276042685516009581470177066113443951493893888162569143787820353295243130777546599131626323262108865745524707155653554098472799212773624088006230745955465971942866357759897830521726634578070068956982889941382213101859829951701324206438529561920032213973580165200118927792585579531610901704516071533356025298466537842666259246853760105241663440475856418332089489420425161812651029518575132083309217325015660058058342990955382541940435496575749433315984689140436773310253337904838565424600052808348473331150784679035121088313290599031336673436548713471528191977793100453358991359751558097240603971173785095147882335202781526938999569023078996569808039176575736862149238369093809699733924306599487295589095566584311177770835128894142198949889527525679784605593005043369589423240843809731733334357734746890970085774266501457575199386004190334545643424910344493675738220609561654896961107012272528660847489794091149804724046400570717301211988057104705783490919515176500227348926769710215797692499268828372123091963946573421550321185336566494960254755265391902110239639537140949346224604698471939980771507140671998720773824315988012936229601704434075227818011462175824042757751990241758199447871771498255887226114523244918560706310129763915527806734438253850927656679742998341959814787542829430444599104043973084615688662486933011557827837221467374581997364852229679212606421308647546286603719699625539728954375193209476055148026241905387706161213102997826960847452384575648384177928423706687718187666685562396899500459085117150151517089042870344029649108095565237181546697043902455066483046217844431508139567261972396278111528876690198364354581936557225175364870343354053870675762822486678123517363843326723548018020071526160670746938155893319256517889601643369535391078907817763850561938087200496479099831822762332112154733463972887808375353026495843251715342558891261950299537412368138278239169479660998622561295748676811196993912262806379604684405403255609343668420604150999623340899588426958861820302373644013074029409914427027342701510193539334340321768567782175756653747136557018624630607921836034964910595738263419039086283739085915203365323974395326361362080582180071631058058864756105379364008170869638863014441458662387348577182961845477952380238944940406388955443086152287869914735825662433381729602947793539627074632655026970839077855175711579274740587085818510943618725406929397561925729791769751719396298825087156459850853511457063187825046929811069984609831137294100574296092873463128207244171443084234449819818514728567620417800241714520157246897934045398717033970026519655145182959497657411914680143153359407837999130217776150153125310372606927586254041980309722682493046147684121295102477171127041862392037815721105635726346027573028138007955454474372346695387747540520980886818288985694125324823510713083396204104574906613977009409125095827199470401455428812266460115496653750827662128728676638597451640535584613114709254828019524896921770804893882712516485871941695249707762554816613722863687315141227739860627826601309082216981100179266473666088983423696529761908025534659851161549141273733491639118313452551137281311091624327255840427456855230859808543522767285269027317828963205025488364994673782706219042096897300820103877312203895055690739166214954960234311780501877957840845727008752356250908697577075512886664147711666483703010252855715404633735318467722193854196206523451887179146852031341074530029871461832174464356163566824688746683763576502188723548282885379997980719841619780179325634492048812795585746236218567602889495043909438970732933454669733935089891946175241732939140688937731881203546592556286028842549598867548367354564101073062156674515629045592945532182112339989097124605754409946827393604215665831961551684040981561335340688633471170023082885235082216806060419548166127275285981441154537335705875638903130456232872601187460828497356233202410896464583363255423087356937849884626301598603636547682992788189079962450723720191156036736116524323455962603569941562497864390432940502597146744730963956204253531019770338145803041889918952429807271188390422229409112876186807248047564323989121417969916136989313936583983634909502356780604926389868872832385082061656255991344979095510700810304323326255844209102305081098741529678617945807351877130888266126548961816947646926698621040436578691875294373379896089372578790939854939320542734499494064507543906803969923126739014966161560610387850859390052310375264378409042650495835272075137602232127941672675731257051211166666471743898497252492644580734783826295171497253155522602504081077906578788499757478810160491771399564843384569476323949652669030327799857841976739149509709510770651148655141788927097342915916481371912806686075324709404762836325645781478295759386139991244623655456606364570423332879673994444549829551229367817119355390653755520174681717962068444393861311829230121231042981332790685380003572913542734580927098235943902731720184092929679655266201986004228774324680373729059026313674084948526002636855384443003548480011554188767183535858310950546366976266065587132868212986043652558373022293390719161055893254317873464396159749260643831185282098832642799245210703632136974891176632409832871787984829842667104718380429718822402468733994722237401117781231620632460957230193038258782481676351480323009893794635862827957018845446793182188877556635852870442884764932249594942870764866811438721406002593140525769122437718538777426395470593813434830246258469308884169663876337668793900348832729671966492008293077326593757651033895896160424024863312085036933140899206334272845672196459277689378628833507044199478466158739746312756925281362722416194973369331099719857850748200331975192531466593353831684723398094742803612657116963961434181716167250130774230331548613121831412578490767362391829661121294472841951811174192826776080555748651068171540706087271490458158046545355312134688249304586509437135430219576507383460051996512881352158248184616331632196806080144941899727558132493850855086507567596996182900595528805356976907768302185517756438979675916780052870547806435272435319757390193936922323719861433085631861214324812826464691681974052246832645459198480025673433644389023148550776872245491807440881300530155214157757338493022953133976483968273564454396160630293408452867704899092914320528818634832825861525855241436134366178170210963540496230555566022488724867229351509766547124567932321366876952711050006313987241067638082151715596176320088912636229151363979473119452354724777230384231286612528786350178150867462160512189179553165575167092369173867339178370270030026215439231870321315182361324121121411156578021676241486111051424085233330201354736403997885618863806719822797240102687229272718055760340101535988607730798780930730575505634636346980252796555279414128009392541206905557627458432643127835896626365183860888786427522568774025546067978315539616638290114268738998880732497958948613457811022174639343713055111259689474251117480557122857892884316970751302256989566887991184653926041668674011240564227249731026718592141458929380897372195334907936580894637505231055604491836222396014373231653847035259766386814401684944101623703020534998150199391159620849827382742773230159388334329898215519722732545307133199254158423173958999566897739088819200298765038092839140518076837523525148187270391879138997841781260696562520107144232233154479546537284843897295994078425413481798818607145356910970142479491923453042615404530492240785127114537705243918189061225580907762364431678500638270676939431641854884998980466102390603798001953517184231209442252689782047002682934611989576888261272421767376184636951210606916242376802433280149418071086756470195792686949995021249570716210749270258902563099230937186285687031564990349461299349522917210083481889102191383075162419692040860690328032512993378421643605071820445882317165862330110562337015358384085404458491058826618954889378815095889446599375195751816051083111645441486196749507321727849153093911551791123096647165805661643263097024033671165292917743235097580756150036321865266921373064617827167766887155408155070605822543874483670415179052756534028295809626204087874367616297478852559813885853175001088365172903822813720136315538513268470294310132559211668146276504799881070410254358315383078674633572299939487322321481834716601250053275228934591708478905934436489696035189206108126499246492989377442297138560481162882978171517852827600914072211991346634126031567818891779178352444472550320045210490649408725637848950071391741235740620628544922497975210065216753751626519488084802488560086594577532548314835301482643424236864463436649063895911680647318709303425435501989251782052125856642362784653554385961202597728851398283747152040614907565626574022269324333240672413252922181472776128647376067043388701382810919516502766740393584308783360213631618943363197517962373767205812618071162015321537634949849462410927200440038374710039790836025216097170864380375366990673232569434269773785392618541890989006007083878946999836626431523696475003063560436220455244085584326952920940568162273291850725855713978439208553284064912497109830928993892393426291477507185775760376644625842390903735792234478398151259088277797866997132367070185465863015305630642023889581197868558112699612933964027648331663562211002003328861995177989589183458728766658095194525332558058958468812801072230494276772845693042144116705510367962572800673793256107039536288654760231332221972276331016933462237488436554837133021944708746341383732092962389391088960179196583974868339669484923151562821060908406155384194452918755377316326317808895411393198018892536948178522159615860686500937575701041334554637405176040509384957392747426240392948834258902548798194351314110268772200837639880757956793896968387504944824733723227565700754916428537804925869522428824560182199985829947481331426204128745610842696435275885396332865598181982135468946268567288611778020801785015295864362144314125550721227059608047649649993073964174193747404126693453457217616740006821618700459859557509286816976325235261626249953148313938504407348890337658379985254168005543717048872910153227709818113120466152310879874347159976561214250065397303476588639542448147598336113591747554224441708947597717026529831163028259307203635531328212322285612906343748342831936280756445579987437264034308593105473611684868406434993700464336594082769051765953285210453984333144496922041790839544366773308414058351179670022568634992859055613947737910740858623787678099482357441596420396666373641292397521809361750112750655546404953887663845537715546127485129272441630132401896339513290546667897003339947514655237610859590084010399312936616440607660528214289424781516014825063870424122576230339547600146975224453926581682539277283563740650940533028135186116770249290219834473359318599192217755947840580298921086658720149046648441470542218714725341917721637528673383466241307474976324020157712481734953848592017763232071415228504821240231271402587359922320215274188729934878202485670287391897580037129449888388805905435147239128413606270615000612036993654487021016263712380863306078697496934227813359507655968043009792837688883689288609682750206989293057685072214857493249406556841909395206891662633013726493403933303735301528998446562093037974247314076076762563334620407682620049850070537051293131992374291124241158906845129051524622247972032484760374617285349665785859105899884869694057659433876161406469328060679711345810442115350458688546683470523803773194483839300657420676254708650227836830020899569857746842126201998090693619164855677820903316532736416845628983390053056105715973591399757439745484645747462835526502744814593181824611735908327919151653899901302569395743214205809305313543252877148688751963798436613132138541345440773632474603765369534777348625730818903355524325611279426703505052270412117456157672204091314215381188364638257040325936996287712605291182432653642537029945018693243136507650753229825043456150392033277257403586075284233774517358524529029820844365411512453988306015887330398005524575228560345806900495477299800280067246982851617098476907303498441116674133122277382043866997401738466161213926781262142688323408687874701807054022105092575650897568797806694314543217920450648586274103573728369549000806085550740512151200913505362003308340661050737959967124715965635089598847392041880793693830250932897476673070375727081380361526790918151209019888820221539279134451114844906668691458333079860323125877153805939594708609241645732474484812346408710109334657209994506880077816888636644863250867409503645969069762275929458619843325042098287661339347656443883369434200198634783201993410474789058928036502852612100116409361098011882581614885912813365467811864435418298661487636097777368594410896228207519088512032329967034791374632178878419279623305229189994170129932884319478048037116826478582053101864319034341399945691083393784663050762721348556900594781002361979704673749397146259220466653004807003066955149686391230739224084987372620379677851297393086085903851089326300086943818259741211501165175582913280322331983454664360955349956331728899679855105756232316736258797660256028144544396067933218218491579448471376270226955669349097150798228265580897652969272951025527596347813134428417460541404373785342660635828190129770459197721099283400442451826620315994393411521904681271259478467815453746569682897466974951725859214831957194301475701280611823332608540443772264963989308169922207211036432294942939080259477693778843692230873035094888075960162510110083528605548169213636980549483702243521844001918028711433845048566102748239062729250442038888461140381430227257339841716996747808585475219522266148774675963295432839110604568750901540440722544480789225977509233124158534644757255289094556013780784477990437724789142290861993307656230959302715219985736233763331058490054905280100555210761883767715770817708367498966417085090208035016401384036671064764997327818832370472050554384029723816950323932757290801992074461525173917402203526445510534000250592874954773987530756614028394083326113323879562736070103668331309210140629943694426441731445108858004826482081002405973528032083191985170256084602033184618364885188181250157552848196414471721685154370063145523630659369895709305898542406571742874041246548395464456022911859529722241689830713685859150364929811691584547232417282767586675261822964935939541987744526848889469590861614469970100360927686824267714579063929557882946425991039769906725109598084549653357157035419093142304537200815801456122907289542502606406503197806721535173188271365967537471022582540409466447639995362799645286404088219200938711288336110861015012772481533224432185857965828275069293062675978809296438727252500782195724468579112176036346796472451351265221757593280072745015735910205332399127973435029087358899864988711737493489635347118973852902487325917629332557022421672429515163859899074623918641623675367043395202333615247226921393953139906758121859202166437653431255916886676008377536993736200670990367276405067028582068006456683617133707808853706962057739266248969708868553988812946636870645534912020731064200273472397879476457999703951024870323076072471423383475676580018594804370474803334783856036871425812795579824636234499797025727623320239031490341353636426351492297687911367899661895724999238976719509265939431128873901542008556528297035664350463036814940029524827063914819566225518127604953346429445229129388650825316420583486873368352874418797858833808593161326265173749275974593179944185557768059641660374926556362938967902460686096421209470488252737990262157887972826692706124958723218515831959903855800953347897224973746681616046184182040632097870100971806487439933499461333155548727579678117376864738143325550092605366153147450161659103183590651108564127974817314239849338053921908234760959785825064473976065988248017485554282332514539290604831308363154707064026520639819005154939143293038720176764177562195423985245602923985719803822855518860493830983927675469874062926559222373639311443296377791281491930761581303786303243291535288137332765031928678563305888282510981937276262724689454962634615397980393016842338175676615407343785135621321246934186784701050671708822637471495113707497344478777374959998173927734565866130713951932176087046937368826370424864239852240661972438802788633090760191808495208961044882616895165368528021698295657298559485643847993985310653044651968486213649841098551436091807872883864223362936786778565384668469377447109120948775654929806825003874966820660955958441712883637629124499000664091864847898397210483171571746493432669857165278545094188239954238099278046825297087616516282281801369532077942468910208928380804374981937107035849535624475940168420891164967324378736257168963236862883787288369057966735206961135776783606832533908660893510600344846606496827410112997977871858481681339882307327571510981701197276287640204827712005439766299862473549284725531822239464418466688813236902650788321315054104311773356878460722642741841951600364877802153551959108638281234988170244954176695968830968521367830386206109471969368979379851823936257275168458714042620333560415688587311220573209254023076344357127714201664017479365533330135784168182118994696196010850197350822522132570728799141875410200799227742555402629592893867943988814154963008120038174826516646493713774749163170408774927554208202331810512115072754024697648900718518520098490351649224894407411479029995421611191137775755184599145225201781890434859081816776065941550494270350201905112162211765222522486807685814130746572185549939699186502345644513899164193208211291415078995777495023938530340668104148826718215886217718687297662645906439755351954884942632167388162429578890550463411332832293846296635107396506975189962234922638033700432501640172793698909846067767483457232653223902099964015577819544463386346132228917013788190909927836304680029328756863506174572600804743290897030272445126216544992854326311015997182082007671188657535706670525545642155919333116090800307403571041736083522714139458844000483752577929662067116764192255435374828700075693966486807913601726198357883496464575375179783884610562564358425860069305330835083665060840936606994810333212953861651570203911935165846595475753342899900450635614515743342963170615088615352614525976703837349392164739673693125466953637913202876157746014051833936021323688949504690377787149144594666055713794584672498262122373000885465161560110249893924804892537039280408584174822941961047432479651261513483525806060000249556683499099565343504603392488657479115738276267665068885560452756938022186719085309494124021231413307041766668624018153554158577716299436439073931302642887075456682267895997899232462002196658129817258950679456009873400598082083901409198245766173053342429003721851628390564040654869272360523542811132771731102853920896621754873188800136532909384866571082842866642860810441083608773796387066322485823698579452124181552921201642099866687925431009385485140799883781920597053139050738884623072983751551528208399652115795970175476218075665794388873783093056355919352704081316995698449119705822493270116854393678831660645428381205566782444962918380647290046450506472692462266485508071549323915839674001422403683505494499696954140344648667513058945200054097767083930107684126454055575484453235603751435843786992992793397590113352480193250453132218936438723660079361454708661413377662392048193987967857837733159267246794269889691287857121943668630899221229675369987937622954922881634304160136781785925752275899529450314829752886602863189931397790686827859671878975873480736191825589258718173005672233706736842863986571525555877804933465566224321602376897316455828595123751582554773991831538042896966675886267497758953026198379283126967842618043337763201052422877098460567102551894711203852477923973445801390502812165056732695348394857400124827614148343352558479942822273428929849554295083146338760481804452661470169242467753493016904815122298549943421713032476811761266868244977723651116903026956488110172868381118927060403702694580069391340620121214135188830392221564526450710627534309226561628250333142360119511872287432956165865708305216913525131492452628347896212180201334718073280669381203614911067567119722738044010888537836689315111812392780106103479088782677952094817392950274167472618539025841130760087387267149390794887062578270415131113150170753171044473201725411118449501026715817570082726077156468135280610635226935385401765990605068814497499073308834568427039657563119575807321771753640098173120280153982810526275741071355527880470275508746310641343429269588545491600075715337724170838242918193047650842790486925912184536831356048356872344569434047746349949293561435734239636548330722159600395815448352322845225112151346548315951265718206016784424797227542769995840096405517247772629897657297160928461628137127670964362914440687453686876100450443722954246252072731745062478483086360590557371251793400764600545529629836711406498044786851159516310818490500207368481362409073198527029527126101523207290916004895429130626067738905655227923066620898877299443599934129244112179965869657119180237838055687810901496593135468193556392338572122838403779600340062301826717289624166829758983182644223945007942391235447211727562592932329450353870864490299202073988869088540805648263209162512687443523903419787737763273843888684417187174353011244667837305989838329209340049067583124103067725730413434405712807512950657507760977290642572923990596067273174816959245335676345248425678500816590175482272042251823626991860145555333552539834131608806357473409672887169475973698174182668862528903895504501783658538226682169217085708630440948683797443284677434306315724102965426237116935782128121864615593354849980936195451000365085228672463452136801446714730176808870791197909090754508217626372925601837334068072578278924950520309377651731207681371405101568126145929919767494270127986701557526329697130099978569924980484821375759797796220300377360564849201455346286550338474657237635961456940940390478195437647050727906683926883394741698502912590280304806677405831610180305638108091188745466081373377033282560109530852208736580725680964036469048633373857533638851545527913417491308074132993448596518570786823860340664319785942664802488032569445321285786435599627558323662536959421097548322707367422625483578711430245207290999279371787269079707474496595394929297805019344872185031470462062958432136495094782621372503518364629431743194859945520218980958283764954514294867756845468491880194172851604825292337540763739983773144639395761288328277053833010642655749418745775199755709179515935915002037456233743661032325658867836573703144709747116671939544858088189403534552732124201313428149628650488725933089552131318483702558903578955836652034673314081910055130823230311382330027749985397545734510815708402684206435735428530291460026440259789299446668464375028181482926136636784484205723935845748835226271513521933757455720777728068410607731987294465200745742229450131975786768013404228835498864134991596090331376180159749466411949155565053723680046545255877334868913853210068592017883379355314042227039468318649778013054561819948118151795872424222900021517999275260474340320362507707095413316465332293577895174786232528715544322606094217182427080150324689990687147666859509382645786271788239733358231461621680931703395838097378654999851194440754601599568439369509979962016686781692330896414275857380586965882277461216091192291039243554220281756685504278386856111442971022346423642854336662540347901143879550899796539563599777595436965035701134103735773864280183456029415683610005286812023565076041930676974665398065864156642165810289674516445159702364461595557270883352014685574143383766324607270773609929860111313891569405789684554910457513734468567476830816545634929169558418941891373471195044167015825424638917340753266873356363170766008294189758853201636505891160129698987644003605049476964290343531117220964067110834150648819303640153515186989113045172312628869684461450126121983495559830000944022144771918647579931486819378369242729912893983875145453299554428018602912821825682414398053255376810519084948673440475024819350207154661300721520501984519472590185896640381100941196906185183315916462040652399454896180285028337250870562102805844562457246791432195371887477818496483077756828033635220096860230199986802391228935980213337281877813612993538152448061000654622369044284724446368270161533235692732916523820689178404289858729311642896230030505659590696178374250180945213770107896460365071397271340819187021431267323408796407946341977748846886567597355408507116037737875337228162752490681485082628508452353723555246198947659680323021453465205445784644555889110298427166542750431838226947274277671654581371345819060178534438912253680768269810263367208325520693808063445404988339047128258324020595532216483713302498204522205042035681057130201078874823887166017431613226799249052662352142607377942704907568653165813440594037957288766655096171597193218351358532287622281273373933077913162572096235311805849632028953718161254871276051159754046662356457542718140112774199101378564154720654265232804293378686382810056819970093205309464962312722919578269861543112836047166370732619449374741636282611023443218178421340891287927946056312936531847931585764658678663369719636141030601803115352376652934064075373353528517102331039501946129025950987741787592579168316001680620785037626512005716052307542285590105305445582189948003779136161633400321038887907191012811538822566866572599105824071215079780881271382081286959426441044033593993255788550368971195773736803260020801408982282306056429197080850737196750771312214906471110436103319722428930064876767358256152861795065453066836953267132095465821221816613522283496765830544609645638623202105063026367718202629164669455387896849217781482053077081618944899025529152378260536288660867045006549608248984659599598811675834128459567536212858373773093101238916136867057958282532727463296864396282047045369812372939722760027463223071072628398909912827877611867070228605411538312632298872678015575078598829409252932459851074968553843879947190321964606554877983885798868473133263885800644446416106927589142024926722773124125047465359079577764550426788803263761953522816541911667557572529294184242161898033754711597431786306896589123759216442652893848698599636178073126826529100031705019102559493408635080857958930922436335985784973969119477829433889748552343606510281497517234827435488779776264082988578810826531974642726182361377205792266829827165592114166114672404952576394904621605322134072868993277726825088506048351056073813887938243512369125529962032296195950589177418069998706421567422434018308936325722302836171488228382636367059980849602432475531352336417311576135361160809279483670510064902253371471592286291253559307958818953110843313698131179244572517200486608442204615325540252699046714442842506658165349316439396687149642205983240381613764505498578193646291986823510153502845719853502897989460354354622920450774399159465257011095950460911612969652079277794732420420323997162717176280766285940873908153889429726076672099861594793861005733929474203177399720853350374409277119933467509654044023567485564485713049020459283115903354988689024040337832911006206327649608782409081644763444071395385369568427653426303731317682660284384073095499719442387077400288581878655620681404845650395048216462022210494851259338190524139354711475089111092951693876064117147210451521435876312943003914131813895469572307261975922380990625842488531862070569677584409581110409252086358114966382728863499949935845787554769652049815137708072561473421526517055483918558878297136502351025900768223281168679496889719213401690542234528540229251834019618904018310177443151468563910860685650351590260906433252800371135474147486556577688033705837347489837403961382652536329085251275137987033960308365280291818038786873602032832000794415104123772662765538370582923491376152981346909689491115802867906048723218105834290824131792128933032744568351703184593401083392354761351562175936085492795072343419003558943351419929770374711154311084196809369045257421815898876774301019955479212068107663386701586174851626366013279302061599358231149718076381258518405708030112177513370079459760843893914839804558604141769066904739787639076545242268933744506029565729650788654977247396077418137656028103842806219345779014757729770547850434891010261484715118173503190027738001127650943757227526004305200246204810200232723018643863892116764422798845869646614238396910753683699150596391046425943046082652549088767758641381295983235629081418492250534780941583625961643750207999792487182904357668900155614962587821940049267642192563911341467103425658876254703911750175074941123803595142058362555984105043318521092771721214160658409481618523029006096512882307016977399708548746754033278276427574837285354201854187153565157077582357860755177869522534951623900638110230959095616973216639118994533028951527618628804796577302852358622615821695343411643732802316124590216524681709203899384365380673989662909247208584083949429599323961703068537708583069360317553757127207399191220658067606176666327371615130605689489171672442251363304221348242392129045389574294142931311376821653262200485592952934610905386145762623671858971250428096206422920846775107963095071700929006448007166531804704884665120099022328063400074737426525373472456314448921162746392065563508786926524156991807099476800450069645920936484666834312623642811446307258351609692009018902583150205658703766460274827579589777249445231346295437275350976892384799910449410060280773529496875759416285468605869209646629904936331961010169668135150853723388960069127006511723859338870941503197227784477337917223395211725701724517025780209576623947898686209597278821915114685117313465700178298568746950575182992747837846765564749631789865680758254493508912468121159302571182935349727415416458980419068180101791343037376836731206220083439631172560589121078737706627049892109028343057371190222074153079046219941353069121729935470862100539094506701396795345289666125418998300793252329495612122943842334168514741310679051035727554719751169892752232017687062424492213844250845795306323611153882092709485037286557013854181290789899579333946630791086468888421794194409227431187210413069912236810867360758947709604767195796874325434442555133857084303650314141153766956007853811840567726300353244077932623859288228242125966516824623659095134299074239348395680200141697705590757365177927820967953894663532716032188020414752549008548296971606870537638245377940680403850863412499311201664849405274835873192167083185746028931270184293677675779486772055093361646596959846147617532246564033837248948112130191602574299724741305498568483104219287625415980415648643264616389342550486679185947605726624482815114238700428952819585854270327653335571544608476195466802261092019611302557918269874298627953847527602067094105699109355727935425709375249022229382256325563125444949902407135703131185156881834133823221656433965528382598711596815584693637702722575669370730282382872542021227995367307794688875792033096646238252152022724360438126291145858734219607199193261172624204419136420364685936713444968608114998290311750007332167443476300448499282964588096853772912025437190408273573192958409986059123649465730546054459960637759560887471656785245019133421537348534492814616553412440915116080775446379941572368629764056125345416624880681776329857346778809055876472029286575869633897897745301714139213878916645980454653764891195885928798722321401802067117947827947412759388924280149176414648120796683835202806330037355035967643554850639165392792369109629600219559134308615498014238119857934007518958614708168501389978280391728688410773517042661879014905612718485669976722622680068225609920254977970642508053796806778830844707569054677913116813148601924455085489381005242256022339788897575595667957496100636823030213843974644396414286976589174400152256448579880569810147072881804639311670364469008367975232703639052768800443736890887074448246795045033435012815538846688764976952700000982893884144081126255710476879531480715687317626102256422895883130976455064025158104930586659930194599249475471051644409900241518228124930729174661048234690882018183178028416219992805070766916301347070632728810959530763220947049467198237693009510973042562045051997642903869887659283994262854851865627541999730277700764446537394410480436812243145330687885749528255631786635122332638582131583408147945215056310419422071977200363454168646244381965165549082329585223932717467363259932166545507389890876890980787229410550338275483392772497689601449667640492323861247731340256774703498219649978363284483410011362272394627971447539879612704517967109381956985580669326794651757439895307060779048053721796487471536144363592371157687609231403912393789349454213156259127653512771723496402289443540940885601051905790822099130970669465379535664609647048392418113218848286091192837356189480695006426741010683702687428109850914733901252215205038769721426266616486404956681264589255759558282488198204384338465277208397148066078828747566248230956746757266436415709420696571077679942285815137711274271722280404483302024591431918500634037350647088373632760751025418476712901936708463819595502266977805433919736306539967597606048363061800557976123978985912682063051902816059833768595397314390958483353354599680024699081108129272613888342531993914405477832488751892407386288491422966959208202331296750944128788272904245520714869232934711361900534535653035041379064971857385865543405617090040999197589288116042568170640370947586725570898026670263225533242076888148377292937499134726637727638129408312689951641072075029165428221870337708247714172897306743879126768467795250399873334322747785870720902743611285180555398310560406033073035688492966304612380750405317720468604199228290477266521302341257005820146215700370142089062255897059933549117153832499668111903173235116397021158951174295040876900484558291209037783311163500842492891926260596005575733443241606334255323986845336908306845586774415512531522467855227887465891140185625805820997490308260835050892878449374889898668998905683624141437468986217643494571377441683762628829202801676072248268193535517948134194970447470603617349772217756290285822252568169768926973760723849494307115657571420365654623517690199921667996352731206277936931354851360408575836672350221665047922264220432846389350855123353432738889508052450028402871264098262655866575956947698864781985244093887730781756425009195843990205131972783016282738886130537438712794581267387177439024287021937392481457801459192200594535986143671937559495239868172033698209885807144003247929896085961107302396890843526498495659153827919947682745448378133348200180494675051131252670560580408698782506248396009330910778333690382407997988343911669757413578901035671265497906949789085761773380341549238958346971258596618367077200926242980254170646561533594438531839278036143880077332197367330419286081220687134619318491461674184895816520221771585471501720383545010419228536669660621906622337081555627453008834906231781629368651348732862896899775297444635514857574936160291067955575919337421327230469170995609748529894076183333051982667711479248354330050575478900493508038282355435066113967854379488064626573710425230813361765930031427263741395397468653266065870930758637181063909002405677669899833535275629832906001645469268168058937795152217176968257072484794163034651870454715039549514210247777021356557543954584452313178940674869136122397805587092340316326538353641086489266969935032131351683163233531397453057495215401645850967842368878485240516635577771480090221941099482089551035288309680861955210835363388569477585879524740742039904487697294468886109259326703283309688645247641937720933983773562773955313470450891025985035528641755822192417867694989886290922526604601702727571584132880683754941234793451660870931016253665080178470458658485715509597606970783139274711340781169923798913468932224815505728683985925918202751621720405613533845781683029059682431698806124701275963934978476619539259279685174795113928663048187284886968890351021818751794408982181827436821957632392289374731724571312080256253625068993408122817102531703413026835929656417917867294882200647551456863218302162050812074203677403245945052745902147068653391141535508217115074959611459278838058828938854113570144761893084646290062951293764410313653246880159195377828196223502963579600590042589085323551156741165013423272579141456035199830573393344498988595653374495501858596027290474888211686937430879969656356062217929882571113402133075937080795335929528020792824108714763586631146193602040020704796549297011398230103049601040549856610956041762988052038712505842396242945215944749952158469112606696892883992319692574334066972255271474059173551485778053921148430024540845939421786647814143716543997307974603943434538438570687819002194108066710413516788770169151975680904425136821907531635747117108421961188688023236361371106267900533391664981543064495417942502945324292445774938450130287071772325405861590404993979638786160115996257391014086881268293011227619008958583438661915552298921473869903268756838453128689831844511974691759019246284891976223161388154477585182500140173649710895040321816072214863541640026846041282380212366238138577214223560704683958995380408623469277275820071835935082255980705502120400997455214468018497473895014240487572996791235523991898064452453384311899521209747100909468784486024641877062421505881987488871411948077209283023286135990877676120175249037525638784277707901237104882392858124142693556272113449921655352008731561800293790129062215733385320359875036133758107341885411046974102521197736884158893408689204907803777742651763097502839881603734972195050741203596250331608702101116106930541452966328643681552645804595644004880708454703080648640329647710380100972695614539194017657107489129485549479506605923360509230534565180733577343406299449213510301788727152896973652538164694465665297879798608984552814560916608418979779525899502115760688861447378754845466679239285987689492698245741003000859119183070334584811146988017142701805972731835403976169490754014575944062655611905410237882614104882430729054174324629140292213087354229680366664150570409271099707075285473331536642473120612693153593400220504651314785384443843752801594454715346803459156532519360725178242590839188412386738069375804810184604020912243053328282133414748347366974276909226295747892889297745660819182854733513856649627958012256472384006325497397212835058128243275941699655913243783469530571380733763786165641165984921349607292668857889972234170273699535205163861086119514521868090906191509488655899695229151614420024884230759247996818102184227849038539714076688691921119221080517189234208404847923223372903550269313300493052727590843294048604522566328929042435882317029719963873606063822902448163825359654646039362134946150971347031221960539212275361385420197801207157325441556521990541242248814864329724986667403994874804271971451372150150174149475692602666168311246336958689690916476966002825986623513201296861039608790463179937243550043417879074672051683142118416250431350752232245483433064501938530500777283908831505236496654529300688619308217733608112406245614000787109459163948526240831393070817379012215555306182369679423303485445611904579910008188235953875166466913414831307508019723850361291799616514531192840886077650053108176707199815494890094527292426375931741374214611085964472268992497062761586277369039424451412423482063679794223685290999328379917543022394652876688531816566372502578989193295371279274569878917760701685112999369203678353864070475768375137095622471178883539670954005749247739232712722417769697710842947476812958237090940400610417517145391344485149236391100528385551605424637492138313644467400593159913873095249147871278864021346187214942488990641825795035959325489240551899677209687975837380143202439659305198910306693138173117482337093194752605196828152760577888100448689389714487135842199617781547886065641148315410975014475247987024194373236334829104994950487969362468377246513324650837310690140395305031872823253355441827437323440799683201016386362243532650200834050607255567112210409048575575210002266679088845104535122392217700858323227830559945710020579775974965515067774344857486700734258639751853692056895752976406949606697128731243184087457253566338681878807842576379444746071014562507359998706715741976041608091978520686598665221743804936177354391067503349829605600339994712467951273271487729691199409418029604271957440850864124867120288058591937497124390798801352902955099364502268910131358962689497474423827782102001013270510463998254062739145137169456465112033659707538532777150818517647692149826224878570365852662434442413779724535314635447600924194922655940705496183943984750343609500035671221291990568064293900948663345547600071658902562964050686756514829590403416605406668244434932147315051088559584896822119931186883226702664026764841834261410364890768028168280428229512230486996262105106991919946661638109608816734198618108884786413496276761971365232355865198804318957716667746042656999774630234509563799746663606857762550197148622034028552696860984774474169759276349132783287630405856473182603158787568942525401299916918640305541343192740142123042176219016675069180409925631555705949779519841536846854938423882621912014247546766273474150003870829152698398829107955378527236061450707590978890856861746339041889953724848527368181703649474643948633913870115563672295027696999956836157676605637899877283074073475425074068681516415306726692188793389386175494185479071568616093062149889324176090807626668972706948805575797189839644574546416127846654683886847893705130078911646957437727293024730694848764665884432693565279250519162694937134709564723680694296823107228222958251578938628859022790752972478712320922876230383405806209071229719593060766154047465088484762177198332085773051010847802642355903423438412566580365220638446629228504781841583417971633415984343073472198608011390271834431009927818488997805108034891474192329890335026912136191185011584813185174852146463125527766597373882566362967450682555625570255991008743292450185439228601054189696000254350076060807557554776637969429088235964195221397877212449520653326022282970178532743462371502466002835428094870608687637301355885819039912429282590821768450132105451836126918951795017260327178067259440870019971431227780688076977387820892034554567944264323341335133590143243493196805347626654263705253130621721573695252212206132660248098639211964179256726420570947733463582057247395198313647988933855779077393019533288285898043692156474093660370170947623007239985070900904026275079450842116477144625917501087835423478302192525497890686380005910398511332888017222672118838232067325535664507278006566010881421074287408257921142458433214585798939403173143557726560049071215617931390307484274720052513304911155913868047759226988663145372896451405714185148751345086859175212571244860249881426050771648031737948189562752179795013503742964488668169353415735084194410106611975802220527451953424184279971697746954060036310092288769958653477105819941076261946841839016797883748351178565657268184727752699802530741308856438369306815215537417821027424646395498979010712249984979844114971241734050492690425435440374023849965630283108354239471294802195601098171881183655941369988246223994589047350934225134379216226656499667530489927685284092049798604894124463697557181944457154899795210643957732848956188895028467932238609325304477861326278836609713462296137069591937142196732006933234734427191412401602574117572879973526579086351751643186451299273038611484027068315359635362338301837447821027222708354054041033179219035203596984521944155504579921361526684059520886283796905116302619122418152526067318198777781472903175525838379162855777394088216244889656292821856914568349893373986974722206990476524371807537908698391802308784529167605082561693652285217123373071602758631673260688304629454549663389034999866403868607886747260552512932190495941031600795221888193602332224506515581372980285490878750840886908180004404262312728623772197954757507091689553039103443906278033373841926210151468733633710756193141394240629835093641091999193466431752356603825839795398524716996448166377489007686566806653836554129607332470749698292584016553710121775388853140019096831005096587645862002036740821284170655140366454067520239460113215087542323068153969487394461380550137137868997044687165204725760000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
49000! 836559529240669802447551808169142910564275043184094598019578927239352436945960658449173510082044745945694490859978948369003447764235591065235349276004694226178306623281557249263888070610396147947367863735309892003017298544293936995900495888115901229916880540192792022115882594766176949387060780877296860427332667446132653561729300701003797149135126032626740574360998894571095329350508130957420184389065405924951781599338495424660050965809469328396707436074961801944269600151976317055931462671173850778992335210209224191606470288766974745153378347535020619668204088021939644358608883100957989418922278175260026383284477793602951177820968839203423615557792286837192605454973467619819781837129460850792931072518609161369687240701659278353775469235731353630151889063374720280538886286591838386083735102007866519392953797834273629627320476051363244739401282507670638132807313290499689143888828400662225243694201925995818230282881009871973101478153782456551637423285430465948603260476930276447630868860989225386397519306112212412140546215475608153050626401890262298370065921028736935529732290779744587487920872592192744845225102975407721129105545169177419851150631089591604166769990692283000561704517610090893179618205787519911438862996125636276190445214185963252220982503056211630257151920800145685722735096809877056111733054856840897647395803113209808813379932930907490415156660246231822310836503047580082613515952781309518704317971474772757675161539615661277942586541525357579032314966105774661827601107103760967994122419436728512656516678116130523785196439725548572072479801978443310979944136036933738159132138526645109915811701173005709333121189686044480779299255597209760814875761464577520538269614660290463364831796047728588591363824262473924676689521246535492164944870359648288530409014444771684716321528606315244700979928401721436354088592582777373499502290543756093788212419184713330312274470919273856811958002935781138992294301797276831503650776595038564258194875047322097425599535188299453028167089401351280776128375764190890606128528982999180366085749708691154599047311196628836958288643385750329994659173003184431316211159821659300120518644484363611320957068957831239184661716301591477263816512684073390963016072026810183078092381339988551654046968430051989590158972634706573695863913739056659626378753095051175908502955572931860372439873432334933320761755385485402340366092389577951609373044709295610439148626442967511786197288724545947633090567245662455383309440916264551939500756938295320331626842336137598097662358458504462851625905145622769129866754715951186130374826311193212730497392983282470418882875245130675014518193320433953234535710649407662019213234118089257736608433542083558977011313489020791543364452284128085544481279155551084860463319582027847392469180798113626131830179434346299781777913512734862612131894071513418790172254751012092900812594120677737915974212794391523666399331813878863810678162159830280466196923094151947707581378270548245462010219578803057282775015266249681042977020289646233174793636389380667569496989788790459819352870751444064526837911597166144030555885557148734936543841354565516890353864719788894055494950206606627487814733843621250054186569494962768648305056026733608186344994500530511099231824333371856726622516113623521401674970366686399242504287601853467513125906114115601474096846281053522512873767285075067293897396112696264223265008166273485625176389991591322963272708012229778795914520065089328736375582750676564283651095224983581367106042374301529677554960595358078792673568739302035703656059285202065964995597478396054145766778863723667041706072653966557549506344913535326531680490142767996214318415286422941149488411637432341836350790849404586270115183020502852005433197723722307013719141428991665760581387126786606766591731188981737802361005855177911238460041603893020086268989765241218470887230485475096206117898185001633569332035519638893806253700336410871633481524821382626176360008092065837200143159404442795951162502478944546324072595788060839565778673021234620117924972290774860512756675535288627407654880001562242879395080304465613745739488393004729651913311680388203343033006448810775673323689442524330983017673587879228648342296692906582083223220760718092758811652648007932801731688626283455755446684408334956153720935284254831585342913814750801684783537089033261775037688022688553934352823542782417521213723748929075234263652067467224328475983848582005873343396511774299543104946182022001599110094878037343955989519388731698015410688806278207591994105078473837661604273731083448058534663657815988445058060501134801165167340708849239812102314361786275036932490483539378159526216711684979909114442963421889688236514020161459972712874530655107324977470674758726003006973904406871967024174270122421895223204915634673580823535484609741268289869058332689993472422870717282030844867423705443830254586844389831940954292061041946673564230386893373544226888729565439458318775423794316334572444482067565634413529879371636266959971415969526636095888512958526312199265513466378493778304655635345392504383052481065514111785514317503305760085627594569316595926634940530768519210532549636058220736980960089191203104031614633221429032043436831371756153283166540497241658882818409449280285048596784316552998590668543380579283024751812102274433844063946274434879650277066523994431120895303028580224275464105700065456257565565862051381699090485302340166384570803359775856669947296239715082295899800864296859164043043719429350132562342234540360617851110760924066904513943059813337447903582063771661365826405154455016572699181438390936484879944953927024356347258746821822808421292502340202089447588563745802499320078429014127466591787281230207154447216765328568612609562973172581215485345084767133190738154743935405333662824611842458687773418336921116057725385746690625024691626192957331244160297973014039351164032457063365204157808703368142144179781978735509438397861748519285374832400360628204417538805049757295196577681364905575544124209867130247198181172525933377707229790970375594852116750217426788345311932108256127568555399972547857563175305673108993267026449839173990291480240905747827410037168177900594837205122538687041416372506833140252379584213784219679978741843425716684251126177632956234042263036710669114217462224518296566757613072187199341714329155645986292501598741695303745265652240581307044538012949866846562413312303397533086665954819969021055492434751995617439470828205394880506558185086296999692195647741248148847517236947450742131260051789123242875039787179385946076723984755788978289178835991265803521725826485314891378225178882232358644712818724176280289970338942544820804704755101138944923607526077506170254013769559776045496560885313756113513751678853949300669684252392272120571588550865099425604704108310329460635140694804451806637097887648606752900056747672858443914581419219058292979100731711984922983021300130194818735522330502742792416332942238331571564542087156150795571627208047950239248792385935971322910501354704071606118534335483265965259541037085665991560855103050869419219363691327876433584912985042624031009757953763901009686657679390327319103491507973432491419591896950430386332691354362438757883298243367452710372374149136606424676295426984508150585835138883198472743320246376545367547879385092458665742366780903470512129808086322222213781403758108992793256955424962354841466351005708089052069884082807982538875293839180340439786255982851559886915724519974679528433251022375191607652469395575845661531268776915798246661206772620551079327619469250203073132556219187655933704374202340960542348494332981974321765362075432563833917008524877315799452052844674530574690659146607802071783067386791112027486453501446197920999021256754790430869281488106367021984845537366086901967285850651774413267121410134204739011372463220119153482012536953960523772686663821439679502070501630323554454714449287741989580271603137113460926904322298622071905238868781189721006673640135186077504377684436514912852751946108413845090420772953243433117228306343383761346900493668336445844721382471457480960077393878679111183132670851343656485660458190564769179268188901082291378912274113380643266162387979532235635663558281113935412125575440105139973117457693952249402256031951161012651283185516952124928038125357990645037016700333213875832967014289514242173480686602345209149826686445353058048070190547114048556207065408933699939031328191422908174176300225845253590924280175547502963850179928013396987585985949379026372040088786786070310673517862688670165978183564969847249533437448537623979230118696477914837782792743124551358684041119537860450295827952176910502209837106657594881413840114109257750242067254187255560654326391495994606218057280936272816062537159630308947361357744454312007953838088135887464178626846985275059542886545614889130673694621274931352716701528803444958364830794515442046436314418958419287508990822542048774163343769217260912267530862620025912372416558710240931260434551552567956089438948794522002441050730837748480767446748096468733687765239200412468627772669532354202235243342976886732057318616363382603728941965485610940679291858670480310195101537233559270381805509385396333447351135568575690628793976232803456870016196095910927757843246027330453632645097979220825787535524536448532566168076507158943857627420188205592759153871449089992913759713403399314676832394859996537220752490080442423405620089310951708383459422250116632010355248662435547987399985272230390072105646459211041467992967865342638208261364768402589143512482253216251263708935433258301746817966036916891002918910738413717959593499764486186343086278090719995505099063516427859362433204117625140633180450716841872857849804287361258048343665127708618909116365484189545373194673711317884304515435277987508460013064530676031628244932979989349098092369681257497974573876679486336706137711014293604277390215023066029936077791143987485230722923790447645319313231381405273990277470658877730205877102000243513773554618926999759736221051953962439199385950838694879952454024937667598862085746095951998122272853998531126358240404918865099914299370410013301682732272976834220053883099683971737468556533503665101869738697600296937110790249948132086607183208380962789159183788425982077399630423960647227388781051413137376550897963608965111618223073626911870254377081033075550054326630535355137994681423406178054587905753063548304357874389017552910036342138402279431783950884557840083922668139894358504876135851339532110548471622156001190695535090091081941172459950691615046806272262755676763983695776960632615202944847681042783389298615650085965879347633102725116105380012823471704923413993354314048015857656631989732901994982327535469207048543205331374990799241107142648867307891394924779174287295661020616000562916193419807678714910393498928687818369541957791668545152747157164755879149263968209902623943521378564471998232365147640881248074998340403382720141515245549159550644441529192542661793151464891588945383938364801836659258374197875062147557142604453786352365265194997231359946026648142154359098134966136974945209303107648174776465135168621587737318967287973491194002204893934159441991358513514543175236198523483093098145542899123467564137395190556913541809648386223626443895504042714158248433067603080406477199582806855385020641899262325142458317739483463440788047601699263032915786785920219363216358277828512001884955328498012885164736634583267600622319452591870133625037439617644197744972231999482445859695742420405868507723510900360584632372490460262139807400810757339109633798889464834412063533640087968744716639510307501424721099233189823766039950165373620589305460936863678802298802725070662916278990902772790484592469042187154106789607845489190521000727869169929642411786971650808031812392682899757493325892790018018738624334846527359085736909187937103212516897693372339845867313886776968228790115432328099663088909474601612287392486005932923037123519774196715772431044301670854381182656358101825294843276288427798370765452151126075786197967996437536404000312097923235082672471601675527983453238102852608997971903155254496557012809036092203361535443709654243747862163096257552171949864431964991115363509326485834122374275728422526752844546046236914589320578111473565153740877794567786304286475712991663384641863731722089838252087607961449741671933074027381291671899383514619346459854125485005485830318357879255898013912670500810699566562621408338610522518104442418089266199851673253314581460595185166390694384347496003903355031730249974586630793241718368643877646766586039915139538294594055031836688009407956641265411814695686557653382025212761672739993636820082677775528666609440098055460703377585428799490339329124710202267061434777957397231465351546446296014394518060673130477343841293714294468030876194626747922220313538557144236407942027013832288633173174431597844401502599673506435987675078353560385857322615368546442924886075043985943015398603974069317198005543917751515633611270917350337106574509834455806883451450744584055202642947392143651007176092168730239045432485417330181439675371350355313311952013644211100531086041797148042100312352783379582960965963902321863584624668784454959505796442573006358132462825420711820363821116655014051689195315482658943735224507102523137752826303838112132576308017237950263243506171375388249594052644109214872647767863213869091191894057827717002990416170534137802480585488611405923385382712667290603164122925837358696496859342706846919971887678245649956947969917088911290941106268413650529443290418251545943967000104412112891078898556267941314489881199163124876000848915783197488193597458625915173810153234686860843010382843500591632001524520901900701832390609587936919836993497543104912012674419757816394087966891292733303697956980267400553091356129700356359165656736986928316854306451168049919330260005485169312597674887354908707284248992367408590632088427185893838076422558893876761294717727130022033743114063395535311391824433731003220500669832085157632749370883967467387026288922279863247495376281015834790204988064531097555607374420461531730674492979592357453596276510806953207274729709507719391274755664913776927812753923951936198496016978311500164194932842916405468646705153579717316537130597754557767019341463659048275726527938299180610820435474862726154736195710273600598167975776439486755173607492703530907992888637773987283054189332213149524984217293495394569005262161489599725776109461010182499070511259783017118952663407658727518775831587810948751558077604333999176105880157938461037064779310268874968966709690031578272219018721337178632619392530115966544698863372257469563122860391664808981791374027549363698121112240298448932475177678295208849584336874877494894246722925196238323790655877013579789482802996819014918221789790116606325091510999867240622429936021004624719553497776441493572252276881853373904415678177421569697996029013271665112998550786233890725590744377774940444773768253695802515562840743470843417481425998010905380592967348775275191152674270285740860259368306522581266922829690936520756877282130132565291940783966878670101342122299438355152503876153765246078243987159462985501482877825128382517981974020837038221756636803966549351185719638159878830522760519562898902147411741869198631679839035495762049159455325017510656737977918536551744666919567963820864957912718154544406064663980969130684621314759903666929952568128467330750908374071908580918492930145212186964402642253285984715026053485438189053153320166357339982385602983255420794726409869265974090648879856086654110337521461093089962757459626587361063851758993422643629523695727055546661732468879145704375206040523986681910297796590687065259573423121178420162563133381589691555931573519837523735773678448501976967197899873719891228780636395766042934814618936843307653060133689780752478099022699377775407796898804922916246107698834968461031111017947590062394398418789553268467254188463759695759751830515158545006962326857841780038569083024285798538659249593835053168481034424650785753886284324552910177807830546625540368981034753734295633405173443243011470853350732159555939679070657434543731185311209848865023942968645322671901970489961890879022137646098190538202507494906130848264070306464004204777665174259578236211043159742772351951607584772458874179133851234699598470613375666277754393978688146312593775147492911305928244908933582361271357125603398842612673561654689894998946042717558362557968467087718135378012355708817037206225489134081609025116191142238823169681265627552788308843714571918103350810413840905221538906524209705910072980977699122916252258346776392878280097355787854006442353600828980476757366665156977408728498720744992552220478959457574855343234373615995137749608047900058273024784725665970279879267312278141025904465749599670266041720934218825570416377022468984067853393998066794627853387340957035170265777759751942044770506518124644601860071584275635762567601169292509240213577264545453327204766179245876545618731446384370184953324689225371055822609119170430991420319958132224253959261771453590953734227868725111564272507625311608142983910330480959007052690355148908017003734331723876400037426009271067869201602565230163299558434983316981392018769987343949512937794153545286674724384885030693638197674494328549987922830891946281357271672376155235602927558538121491122703253882399349970308039295909048442744247264608380416604950986912221755407410683128985342655862453666637390401844592078074091200286252427264462096497197382733342123564088758072977434823571504191654186909742550735104874094399821527731805147170009433440130284084407189894124971454035088431646602417295134702093882790991707576025890730031967811095993330798905920206356476154805580046649935330902964465305580100295272078064684827877072849027948657968822235046741586095809377349595910122214854841820314354533490865353722191681973374621166590410980718601522149490308547428149403647325934702542620590989443329329126326320053258867475363784766544478564475788244501264417480902633297869714312569473482786413397083436507686451469004556756467292558565338087635126010584117513160740365968049136983535356474503815842311401110075175131228537641400980131748495374719579377710773941383700427413814605326484497342293524146006093624047418526742009144281569129067322945153199730914481258524473951027752150962272242842671893288634741948219111588839411292588218522466836195787173756190728862665767556152390958933999679889856199630305091131488220970836000960789981371478515527182172776049385059923765888442249323779596033935564302264759810516334738997770959202854365097014507407443936681397614780787716301874801675239567960651555785036299876394718091282935215102399547449421789301675081685523549052020233356526749376000021315616600632498483819972012625226168084248426382590195139833769125888920148085060449262726438697463426389580060023882440355625033223711769627880711795528367493299018554849665818352480553944342551482624223475858266542472418569668071925666159809709500797827862634321545070489031654885761019843419627026332552074941329130997412754323642683535993247422073161192104290766246126750561818464932095033918280440881496014005372969910696038935050885533684786940173967512033478195236028090823840504002869883971260398025950183033141537819954656386580358161594989614297168718977204629776440920131285391689500202730426196023579703632332207451178699775675122724238960382459597936560354832626291428701159496290270715845912907575870617651477366994075380164869487774425742837401149605093427117396290252044159738709614447306820038297285477053874555887539831312520385680342586447969256050188556497882230688446644937751853385306072556454155884577813663519176206123895039976690585770913620534577899532862944724730554350577560980229130436843949780627343191179331654867307965751225837084148013262265894022151521940145821516577772621505910089917924088051211475825983537594360144445342248074314615417891999536494433220045584121965301634559508884200516370188373089833044636072811294865154171615781752197483988465898256206928646727502117502527437254871198512902386170711351260650747713493231795822750515236502383654323043982634267664328308063478629156920322046150194623257292771696218862281413356777694495594082469976673416790482111169106514900339836008072457872075357563118797271710152286081499139420379707814582990161103115854404469630752045819355428807075580906641137103240478856793756737211632010273538521985700507561846784422808740545328209171341252448476136124079346038184677049928684961507847236203766485141345210019947413087730345198856470920892451388605608787473428262287565560343616756691706848394986227443921605427122783118950259866612702224697663727832226483257695098476574818526186448787864394228055723061738496870069623928215760521765718318668419443893730301851243836440823909245618389618231313337307053674407151882815217612292734200835438659386067044122798906682897159325953858202752847683297263165178721228537840704697786205347466762848215841535955266036771040016862205766848579135053534225786729657941383213821571859227858043627855857529773444729469985666631221118375161407092979005744459867543810510104318974147440919183072402186490959918352749229052724370292340269463838846478661505821575026299924531945655103372001153541871029043775350855045602300063941214802515672974546844794135803436455967334620652513586887682875198312070454031316467739411728738478610315108681130791173520997088164599745570544294381659856294873986507321445377014882621451462791205528616355848327485969926220354765301432516997492461213784639311960611256370781299877777589646650186474071443817668993889903353461670699517057298599608926096205523452505763513327803201851851114156460307874002156225456313021314864387028115671170129284232600768150659057492982695148701075962588931959718963794250983509128091616638246476126754006475091086840389538164962304894761507630384637962811770942712637905967232037727781791996871728515463473663952112736809947565695476019013372759397819897210338260719355933761042727909632883762949398023948665715779425500856931734064800292186712146785554128134118925684930445694412903506358517165244315879369186619849553810824577621917764793979843670202394159275030289110228803421605405228508724093080849333301427952688648470573854300281474196315373865934092380987707993990196102955049327723365317475343610333183583016986583179111850918894228964701214041339289174598407211558602645981894762215961165686661034432539813392701820195098419357317583420647669822109913470508963426743974032746568940522425368081610094247511110738718967598335225981884438000212243659647591189791215346396791508249135020990788177455672074156540901945577103063591090626823192757182763651779954454524976896398090970621887986876762007258886627193690520366078836687996508233517335810397271060062827278653157955615650178045470534763544465304598657997298978158213698653223529166568243170756221864964257768018619497071041538176507507141554782637085286551397795365101376576831366419130879763119465108943197974120286987413217428845422643880681789492783412146530194056158324622902783834244268677104575512109816173800524434646354946970783064454293747171048312270831893976601583804710264995696099035505084916400559204638981759668418376471318587657864840108380163842368576978471589047123751468308858691626950449138885816365722038106029548015278129100109845289234405906595424906354658719197574608108766502392140153988733172385021488734042250971175373268965400611795177004001057798450530936574169238258008212458721923805517949195593299768836115453371774013841444709171437904858927771884150088675230165917266112807328836290600522102371640176473421145455297266388061979708702890263287199570078610683347637474930944996045857094506123162693146576021527191145283894493249735796367274357513907048967885047854715006627875132982328363635156102285598898874654593644543920870152270518193614422317045760233877283532404050039833817828133648689116467455634772371016588888305295213335385131018502633330183153373918749110522103655212484728551807805952926424362319254254031233298016633192937027147053552478909688888225177461150110077718260037141157896680852870646945392117347605776698515697267222584356018152196077593901883045297384915825199871314270338343283584945380102396789543547718860955519143111349846210942579975403209080062811399741351445413956377521975109627960042557115990174101124161450526645417297339175642103172990476214503684311204131882071989336711408170717617926151182751659040794044177036286278170183935842882249779764866578421546349236408250762571461783362198544969220298939294689023597900696545206700378100110542499745827853052738537197647635289340433344841154832127925350761521277274881385052567447183817317836787030869397508593657323862971184934363303454095648297553960477993247750861094873395888192593983974910101666314123201684686142667327914336796660801330369969154550987079346937003179775853381572053836518065851658404993120887869809312754462859977349815563539252184438504181604681937016559806596389969801848534906977750377640217537029122262960095929398896388027431908977106701137719196933827536140441643229727925608046418646130497530338682731804934197246757835828304437846306105673032165962888019709373736354312291981458660083360587119138013566895349390228135006521584797114259083639898071385195753058456065735075894004423860103723206630264395166841028774434825139488671344683771470076711155811271859346669254182668310641032659028772779419148593022881244148155090845277188194715119028316172399862078134287108282057428487972346488606288185291550569230101116188006256137498708871626212766188828404087728626246571702989169502830107406665706833549418799993556645769733571503220162902802405721808335697251562118831641074288513565768516154240164312016533515016023524247193001421437709853841301760962061101128513156749656056191802969939196984347153627688729404873572848210169824398071415640930135314961190110122479944995918031423935684113134838710449199812237705722808059498140800032272907735986297890370527530233106840837866166722521206912134110657347459762372274324188949325609641953088924224866267823736686265187626606635039514242311745879594592876383537637689682799470536700408833676514895239210113625670164255204059476262783687577959519242550771396505137410960134475263521809985015230111654656515426687238545163354941744121897393920683590445839954633336502102348848883789951878051096986334623820768785336255882662599381591633893861114687177918488034914086169751111911609691485373995702491485788082915079368056746367534386514678511130625268270944699184199135469171638619322190519800413172553700565226980804210617217563932519356622690063967277565973867304998783966274554944066379710687442871406304822812285972257352994400104366343182904280951314083868522345481948464672072172079134881677513417003549707894092965757892111494644034768020316038893811937911571348084424765154487632074475561646072300029973318102555326263654867643797372815741685707580481607424378535330907776949786018045940244339986521104160557391187083332446868798647089925462003428715111079296825552456975704593930015001143359406212504327913513971219916674452178279786661362109921051727249562992592905224652514084828604049931204091490495893809459777474806258060452267309515479679402584161603723075999404813429577871311620066632578975411531276047161113116498690544745680420815894773263568320136288488353936906477185130850293733446526307057343328977924836444176405463781962897893243539552348005926789954601890842714727878230827746773984177832287263964206880248309977130608430721972860103619005356368175579132856430991667134519143732209797094692436322029013114662351167819845682641176312415433042093433015555226244137064432548828978725297814342210684789603834488488187692310257631687428465392374201394394638980159779672177750288946005539132184929240449574456028485979512393502081915854240300353559976909472379871638582398794469053686406951435023365217092755293372766301741515712037416648442434490077483888590009983055096334202117335266110232541181020913355610281177315459522377132571548496864200724566825221594584379878268692651829511972286585466556766262558999760206535457201247389721453559313684998901861468259154786631259254213988677503505579625307819967505325564230930753001617594067163301204081195775699617305428060039385014696095336701915777975123981156994131225350215079563514158837554436257105100636050754718254872980019361584685754889076234978119149294867571198220855850738261922532781983130181079197201548344110891099908037018240963138816410350794884478791950676803803902485380745259652419577559618373840706220326374100158296017275012265540785449273730217098882288711189526526846637659634633484707267371972951669853005855736749988098036104163817968801928284250881690276373856855116814482485732738962784314025670243109323820735727265925337227355278721900758670262205970116543037219118645475731172425009733349624756022509568037035056215069399026780042902445838830551780687861581388098605961592432345979361348589224441880662576274188612263332608317982485526057402987873120623972681499821522410732418478481631236093617437770317390382069195617570277354553205899882767482548950376713695751937025920376532916650815361906533651986221023790173556887950369501592313899899293144669604269160759321869528484255678972379226449066716290885013796314650730973807517359855512273610308648458168478722156519955594318654772732877839661216671568016809491553336618335224735261146328440017316359936173280085867120774997550501223367184263124566565850102271884017667805535264157678992452449594435034213420400709602961841162400804681954846267142864516221288431898856691291696799282194558030864100743165630943738852433804308737838758224022886020324759852182884325827449281095238094736696599784457547427397477955915297898554980948713667620595002242508839047331069638360046414696568397716802681385495681847249933860343450796280070414593291137355781025024942081027345165204199448744669973294726326740415620740231560686900045528444891890311985077230579388102130402246024735147162880051365598830614117457774845368222969364841678915136667512606286835889125690345816049076568298447091294530451431318899548098621167214898374747528492489787803757696591499139383525006602235589341303730328814152842848791303721761283093207428639033871044295549730208955119387581435459151572503046139910049587388151353217545785876330711420331976168518845870918140987143034269354039084732976884530776891802591404199942314428228650088393969891612806420123848468340316994303333626224221550782387722486805491169634780503795571439355371442992212052920154921407519314488975793079178835844344939833880578705100439325746675487241843058530055948358768915350631418923753040659614477349414726946125388712380326654425128916408937884616322362618982214209949252241322318734565464196663516885813204006789029036263457463712584344885876173964275630122440543798541462353844069411275012410233738397049850333533317082978433865068861076937926227188765239242402077313121968893574034418488979765007162321614614940391706486130938365538120378634537317517121096395089808885933042086768339552226154588719813999667369289253068424937543017707081292520941967355577260068225363315969693675981816560986572903182986277175023379294064857869027837805526200490828717537926882823651080434379895651353378331658788446852114063044182627214145260034442627408456848534507669610987889242394430881811615314865160294514786797439331070555553754424355032068714475687355758181566143642628173957909888431141286063337126518177593056720338213786804814669814430958712933859954351188983812312669682786418489199061768379572918600545823349564037498175604723410607474445412332860371906204122623992224912177979014869494782731247200661823825327297490182865147141521603274662189521624241982620206554813197800667212699535954101403432737403005016436568653889367232716236764232504087071392450755337071093574386907370429479608890649271590505821306892935800784294127610822043083848674596796955103698863815157183036394048560671273451276597713619307498101477637862953660677616506949017482414897407342777959813791263975350174688807912684953447122564341508735112607173742218781144960607282418824350905845996786717783037309344822924296912183651410852866291797257735520580494934276629779563367619977477771280797845029802475089686034110117674493262221725371367216629435924631103377430083632306496660221333929881079029791754816816777407722183579638333977336571034029012195335276823815435643011406898298515934187059744265091776959558171984161413849376285007944060016211428694955735345496435067849330832562975542602307898365016123907508009346847795770216577463060845201882648275590146581810464723351610133855533930773955133686382282355931472729281685717475295318697224155843032867919987561608394658191426112239942337145822108324435173133491472251937571787491127348409392200864978395200247386403107893133570345913673439665695543396297837467352676401246517243879231273025163117815078964792830292380996611669853786664881383749968335131317349100716309219461095449800782320518354883468918896569346939800004962261586092042653976224873813730344121438913384680671835862607275339771273127120173539602297792797959213273763297036683511329497085649345044691081652790184230334142394466232263119354948592714075013624911478315524044499671849812702842797868228897614102677540342123012746172894272907654845637934570530956575830834658296340661094011871576884639616203416834359050155342795530533962484483421036236482639293403059147442372867189635437648955745146034097598872614531417045512282638024814491503489810126493448196752704127480536047533393971330146706249025579948793198837891804993867005162499603264563801771237809098419979420738659661712489369199924978778504185114356625464090087836297632422491068218464306468947910987539921581196557160416673966138549513561088087525442981035510853152584855294278525615489096253424129971462803036120725198107713692364225759076968022188899174152036130767624876752655698548114550483281495712677871747555089906444997331545099299459303900747303101508686885062140617416797528092516559234123862923971456161094831852467742138483487827254385398257542744706756696808100323864336866095864326219701410277038097242364840481173816220782447913196816499257092706442928040273166679880956530269918755430061182387927075817804254796338453857074958888863367420828790073755684675683463795637323469666067855104264936241752957493202486449219348594422548323640392430219977140713689691486395115191054542226071515547236029616263694425158258202074854543794143121826478324229993395961092257656412905954230857708683285559581396502878361883866207107876121738547996221433467833204187458337082857131578086725071203529367730526678371029089318836195579868346681566109963040296786715196831076065870300896915750675160405795334003250404786104328558210522328961159244574503854389329594009772756311490322122125101143016126605305834076120351217744897585572520435668782526837710890342164466661476293282241320648847217515651327989191994120012348076734185340795039261683499055326880688905602783799409051377740938976223385975408059824304541886525657493597665500929667826293571958631366825447580731667920828727242188423151445379272842381064669698222282187600241971751177798357647338250710806875791183711996553270754639591150472829891183348542157332471965600673904155273262498626593279194164155446970842809269570828137443247759112748718676110366088655811253409053056627125653217713466162269631705435664844496259659427421075800325893970218859659046565870377432355302884878394885332330375124566191437103187353935192844989279046150603680861700443986124896894943565872110414399234774441493487889226839528703483110648048343761338263741078258147281685001896387313844502704287084225317806985401506354985996662692882006496944125485306697470357847205629715591929475084136610646012520748927789197962026923950596734221967990246604251427970944388736931531261594337756922633085945876638635593939276736168696018253096719637061808646842662635344135430110869026026771087051156813877644448416311541007882838834691376549885140155325387133664871868995816746181433749327642369270790708564559381646895656953223703531431645926350966817593569313193114781888880005435562635793912514279448011163162802703267155659439391557404803737123851502205955763279400720671143267397579102124876512116790003942801252916182525934520627993606565567760007863457828423719160694575318130142467074190300657957598314029893910051104956650220373048123450881920594381521640288357553349092214632296270501611113012241454846436272889562397051432924805052941588008837149692851448864609669112346698775776572043342105998376704172179493754440868170689533535645524091206912287661946929708533087909822737335625102741528076794133907577053541343221722979705044917279292335648156457124179052869542573086759307415348244019430043414337119125768942398744200368347436348173702786094777925178843612742927133242812489791006055225132566777784235021457614535341512667908738458061662611298677259521158087351147811566560999796934756440762021323134797149269342392467887229096377995860264879969612926937776346563610832825939901008277626114961970216525715737076853317843003430295170473664498278758084321564708361054606529855008233233480708662732790802162440275276785461017589259127330306410053650062998333916520616609144060672335269218480769634547982575761631634465251165723308850478831439410550019539190103558071289473400034516110444001642715751297156965341608535982843287482242708988493827441240119734279757404675104644309911363872574815114704362970263294191785214528894403558052593567098140421418350182127692524673566913256209118822696687051442946448594508755445618729455110850810745627055729517386328417843122118049946798489647040061129635602201708789988976072449755240885872064590565395132929736500820606443580323773307776281110334733638805140670981389500338596170283561449729179112686936302209674574103351672118460117876379789205128794680282412290157265330691039342177215466394213986983084855783179814553506806158988211473399081394704509004670912578502463288234175474966464834911280944571881166674499714660545589950236508795029905976369329631886409875456965419644344126528925469854196923524765170771529950863339284907423906285237613007613744531042123389541000011381054999951190339384644239972072342527325778391628874324688802387082335594675060930377326517177837665034334034988340172562351738720477489751407704737543694087430615420944369052324825650962312550020865152119493229046637055695250596681329839427451268072668024073296174153546279403963419769344817153225520172213098833418475690487392324887856561895154896149273957807636285892522303434237241470111885509451654037858766049519094900615275320855206411464355326624114547251409188800096001992290886133622564798741672401983167086503483863838522726845751413612550659768730449235211618748746467469431348421878092146642858549214920984684986025603444594044074737532077612796332265584173333142255733941084662283291313077579716827573590403945159216737979662487178296313863895971613696026522074531154419970522478041904895401761059714625041887289501216753205363116864185518094854352317354820976223911743232954470761466669245965028429867448707562390863357282903305347312362670074430212213873908876624426320971000384683758637479293797676523417043794021362132462058481273314901511773407755661320772976774885781042741675653574977824342926487184625505155198641476236783838075029187933199428008155624061703274833415857330007441685001718120216105952631459122420413292352546253525936473130757722350386656354388072282252496466918503653590225918732318038080830997740119227081430529303853125222548778919831971770861597027446763027771540703984453575781303538744474132229001203571562680991016432157326418688086895107601681732523732102910834110826607930114978656933270088554383515627298902365608680675309502871096784488226677560008943476489139344624223374999361246141752412098588825582557979091926622793518062421234731368251559930643344207797611758087484002601904657310192448224040273683129572660897816274634935825067200736078576519260547989663325624662180710508891308445034062217087715814503002081857433302968940164412840717982346783303116123755424744161553246743485321608734599341756067100644623549430264444663634419032861288902493874184446029801746346506503673731764871108871139059920727499264179094845394595807252354275144479314034758532280313309857823834429227392699437292827988124948432011646107563751051058169467758842315890432018564438924495910808389235399471287142296668117532068664218303673866167753562399591185575629780881673710680986090661162651866899413665689732846127177811615594878313832510400463376377079408641141346360709493384301053470540403012187596695824044571863349301273964299919147740966025895757380323846071299103446891127646711229432096464524210953040407594879448286181623586976400517157128395917152026794521007383828500086292337062192403439303975207957493925585558618313907950289490680539657589881924676112755348688331987614090987291199375124756706485361456722814244756633430320540234010967722822441353151756226672321662267394032331559120992184229407478580466582109288551303574115488465584089075029651919194742969465063066812826618217536967885915411193973794569498107613865124863759677779924779894382414567302054511289660453095572898782152857452214869090625560574809590083327887943355550996046387736168065868590740690160078538887172659468660065163934581428411312853065987732780357685171809992747718810457474256359854787994788294568755218616998062689285149465615090035343883948598900474796549853484767433374159512400208383128791507313834153628587292701590726344510029701739338258675451515279758922296939980993918338471834927504895518621722243190403735641466955138757094480702328125089292855885248862389207293423490720599485226588106077001333392813090294353327088931293301342295287399386124152454182679980552047713949934905861659379617487464237520752473938485629185929594341559855129607869183451105817422434954073580037603801224687459052232173535596414166737060682386771794362976798962067006741427028485124556019299390645934453647612395818710070436762245275218867795774722393857217547449809558492320518232064594721768382580364406923741659626474238801283203714155855582513425499256897504396369019866938207082170509453065657552965457831975899233977741547927829359569662821933953150262485996790233141182836973290969541559458097391674147652589279021728290529482313441981934353480812754512245955465490204924804974388749109530453977965556554236569822946689249286107630312900173273195177356429977266498063874930357602645620297526277398045704283323892203514952408618464685722676397349086007925781113746809503354701408051519037057850599055904530935789439308264664487428344074083783986777164700375293054017701856600218707903435940599526161308384373525117768545288242480403488654379177474743905707385484651646675090792501943762669830794998113603814605953889223467882361561060118020535887649603715369760595917144281633429217622950140867965590055762689295102262856961205048737704879255196226621449803944246415720975658965099407046711182698767551689246273343646290470807046115753456962277360033850496162132148424979368878822701262058457387847872788418224640460425949672530456879754030688569328250819966882923657756571920677173632011941805010264743295138460218954461006553709186585485952904566791763028217379706883333228261846128129889536434123494913221760202945779106620200995151320712661459899810408332335358036473364612969318845941207396377650887557002906131176012672958143224466938767268882151331891246035746433983492057698552875631987361206083052674698099347039219516499344291240605159261364902135232970967927712826671071582792784839521453546754284608616330510315840586940985571351616892955622163967105685270393633665546821739309300178721890070496288446376632906652336082437560854368929102246692959818993806901914466331663912065979816831249717022427577981421351648029120491986368672802758555297448177113735504530175756734040838765743761894576069442647266456094936483509395651107144301389822353505571938136881674390707759891014790984962243274803631897529078704972650427255230150589427267114218251016751408265095457147276129184127002804419962724304090716891415592685761456701967355018782398624629855915953868852824015956910345091713447989640628568643703982219166958669955848751674879345876359951676157359308079675816602821662691516154794139273023455369089171171619105353053720621722158539687304593242966567500178065298799385897681333339699976442237840657447175583120671979528348379761022954886656101585440616891544312245773572316863587345953889986771650687358260969501171640634885886707999904560077404955333413501910868408332164887309478991510857938658107114709338515823803701573708086790089079693169703505571829956401286578488371013784888098543546633393843442308559067930213622304515297751331201313813187087988126735150941581833366761682892275936514538215323620268015444139147149178932788519668443155116727394598049397035860186619247293029443593551756441102342056731068798939868417442059807338621929732717654266523869448541741815236635964169804323751750825328404111816397205294718397292878844547609384972990322987945190970117195350512154126522021607168544631475088861389679272335697758125383466019659140025951744470145397365624934468898741771757017151171464353367980840781852856321679723041944471545456953483346263693538857867044618788239805616307793697032060290655857595193357203460548818909231570834639559267825362231653040584954671691692832937599971688528123500889013553777568392213592793263933196567445362116036980800221365687454475326025374980019238858235285497963462759345643897578436689281113187354980897580873970599959878018251829429855732050045451826945494877929534863126066413614540735358741546240956611363285969117549042911862912012325248428034460645580276037728462507396076813003103536096905587643120245493501333257280368840766823390726400864351700593332421161017847395009700850249106860552227046755019111138760032996987573141049488304214816351843953441042654502084785355345859689409435640226148470890388648586116517402197218289816663162958768031572029279377601294494719286076872417470424625324457588837190659125415005924489482378694061371611943235630046723237115397075473848239630252746690139781647182136635216982405367122308462697562254868141033155309426140347653930495759497219266419036189327233399460850951553875965687199056948931768767379757438866902922249438618786648490473389707208606974975814608766602692601822931352903834356529625509726353233525909250941051624601261274865414271051624426621193882287092716227560922312020672963325940470594833608688088791055453316552745923835075874492269589863044229071092345935892258452926435918069337067948376401631085487592021796434010686821663153692956580612045179870793767922620347359279753379526022067489093728130958971620218163408544969505352561322674488950139338853642098774993019593635853010372870282223647287814846893604539130711280537616638149910803428896371743861787468774965339905385874840844614364337769731286740908775871786872647687370392284143936761100949700989734339874734607859644180520099520357793511121945356733419584273591733229920868041293584636849380719917968182795155968509460533271191265348007179201496186304679232855599285725590275196994278494575642957264630605484748146528648905132697589011090328721486569551068226415905035546940457294432401301849884566018452363119132755783881817959187460665114292507371856505490565518763941358843169574583065222076547030554534821990394883419710551570784089910933514261921311406137846175145703623508815787550757533954206658152717734347461644161599819927857054342033743812458072795551972955503905186659015908493736082786105676548061641545767498468835173783487333058611989245317105616118733972907952409979442339046030387341763687061874494013926895221625446718363660505146261073346446538048055289837099699854075940479020328039207534176530369684535553951559339092510375003139512421985392393593780830711328113023166018791233410626018581816731270871326728900268736664236341949501155970686212623227569586459032087580111710932094337746224546852289096437537876010712735977814853401158123418112719962892851900052805920854052769877122384133170264664806248472098885380113249435441743983810537860476800182551763376917682824674131702323703934788890555794932938175121487672089095460502379950786118890354874536654378690549934911502845214215571997266772619446930758504693728490665861573922891821501040856751504086099643045075665488485652361690531704835707531242498028849038702422805859951759938939156146667980835693877257250708913608218697500694358865068255923849305719524675700064478443263634622189604797999441366477991527278630643578472069865349069330986226549745596299650875721868197065501360500045883593026833618407852383872670837242968711984551551603327653227187849788029124800299278070934656431792421886409439000660503789417524260484929273339982869026424394266569699320775904502787759071450979037119169694939150922766710925174620060462648974196315181588466867732887245681712515377846246501101569082933117925135011345919003766002193162666681965666611525802442658441179069385918013172270784843545810351828473185934464134858558194512007804434783484515777634958855283607755131867896996192814421064909551613797428012684367094120098952304957928092892598690544648364032409156253891894007590118214684558569271111204617099105235470184624980257718915140185180886594439928061685944936658129931647042985062347779952894136871490320360769958775639501412373681167944353954444360695742266879670184531190955910061639892908000988555638951603007047438155894427098866690793201468424831824810429751179552686430726061454441436801405282579857047725203056183497872116070749263180887426394366155779612905424896444156739949213131335729002055442702008868171424305399631028711955977139574287087164416485286222800183206158980477731158361511700823802737123950495689374629789739194349246194439418715387554918822115346887421427811899675808549387255178683197250490362091574408270471106726409103416478382951629442298269540982038730201544940868222720221018509701586555297079934719376240969257344269757681350845485651042803303155665410520248963627115751288477795105446744871181319243426074019603305432042273378076929763894959869257987149031274116444322548805242189070517658987801402110975580312159513832301015885276623747407927351475656041325835140135314069970713092668478482378076934425688385329296360422870517611310743606895088319287723627867117806585507602295418718301693826300899289601653330069894346254854948498996730727902693051772378688714041123616589716709537304819077967554669735720115024956788502397369368058875890012615514980268445416461736885298944123024859728833436095113841985744697194584634611878437429869049606361132898556126991181690511701602956019321406806103298584180371848109742307781800275443799704902347732165404479447108544119036032590587220937917797598977099677179770775412056685680375160921271277548376764557678986550083290504423108231413289476583814344630119575043431976659936212386051962168444073850195878636029429419018173151801309986562811513656852096446949312146327736551226068716439648438105516281249044004325777533077895177905642411835016571325833981793775815587410884340120687903945871699097635957964477516504826086325535404355387669499998898552510677720163649718951691122093579600003782432367760973853971884915575273933371487116467333712284900757041070307013199389742947945239944392105847214675494534637917380016242976765899384095030869485887523620954190676185009836296394917456399137415083914830622257121261852552554548417619938368403155254781864167921262992364276188040921721668913500997520620828860282085626830214392678071765774999738131779669955502812245948277896228685947221117687223944117430836221653911570297844519361821748057816627936441743001130241476132539015789402352989242314008709517813245390323264041538196650068799970759840280171002007829124619354012368519410025755411165927668279905741615894504017183110635233094043129307745149592415425223412951062286562993607166454628231157807347411642576157520664165867738188189447833623162879196039816742524963767210372883960691445651706093550315518255246750361806661068351618478400717839693419986753982180395811375972852419364415704440409814835651682173086892015204449381504401127750345184033041242457934204365186732707765750747080979566707411310445270708100166719924447204767239740207288371867153080389673062432126091571048335170294194762960610776908524870672887718756606167527387580739408931760781860431734849128347551312200527344367518451756285374670800889620083419893515779430946670234257719576959362842841662059291707455729531852371926103359053517786775037366479621391147061770775472607819008962606067969296963405621579029278723464640215092683528187419610250088735958143838923069552174779231416125811388755508555866159389560399971938244690476004461514568397594394952147833174793659512925445613603247193339656173836196825121110643180123722312020563906508821961027873384722458768756699473076583680489183460021674058718453176426339899403126211380314527916897362328800579225959861807713003497597300099693518820691123685070259978568061568203673256816856785209970650482949063902923453576761166241476296243581209279436880036750406284503004754344920841234198557417698175881414911425434669994759657219170940709738793296323464191772280757954488804125155700685596205935244651230432669368935557900875521714030722469265792813922256965192872004876104672669823864119856314305841358358482309780919995170613006830129154393652011638319660246486528242140942037875707261868270484660918911380249343875178788872231921543979004735634699493297458637009901734566129696797615736875550371558957437472479682168156811739341995996826790780055602158135253835983256063523852374389786778873616977476000614453440527742968162589262667584025089312565184079797146164046917493524581860962954585454381809951933305277345570570964494279867922864935969062853841047995861622495777683295877101711276743024738411806441623471364302411914487798086850569413007124027586825096264393255521589728486911939461965732511681397270804245988256156500027110431365522667803430969445904566190916884054804223663015090101251079131771068106464131200647208060891548405044302482345555786554105625438203238107733727667808242673419479231122290567244394380978340247418256560197860602189055306556768851402920618395669842309525216594023362861786828457591046755753199956260254447889116162130613066895780273421171666540114287623377235580605733440321602275320561011258844207975248967950983422330641829449785828871643925692044520270590546797358682009151744392117660620096939523849242989415922985805933914329168493814951726772564806733643101890466461602801596443928932457558067061719937105984735508847553693788727544473366075762373267949195006539964267821814279334059070656349539946789691626219632805617717755231294055705834677420081494072626754488071977799218582440925168352426629534467318578033240976314210304921498617767608120506226339637703837568268731607114041373413891759235947403916792193709962711928643514117499550906891340613189857300351898529163715903534435314146746214488573391714461640163512811657386727116117461064098589099471223142382621821743729255113158413751786140799780520694188469670802975487026548456202717653464727200562979916494063836165972856026537862445358297428596921632176186001622597657338449654956579512063748655471051908432381351836893424246379530336918592813676807044306045931834056082548963675837666032018001897007519541595196105586819241461920752387153024515957427195052998557065777962176397594996492627094313805274951951459598131080341902004838552487485732393777210823407716498977491520967230090607843331684602945212306674846608907118853694467046317001971570474778961973889820119013271947030527296934652085756161328475604651125360267946965864780855690061719445313750491088529280020250938969435158630034938312038853126919301961412789069741804512722733130306021491323465923506466724152190542359538017199292540529040012228842755796314426266344299878573215785999593535316255614182779757797614118142377579134426725892579420158335822501580626738648984086016181155400364706182113538792620572776306773325459914310695517912851873419634748676770501185357613725640168162476763251088700825594849257983738622903686644626578899645002791051082522908140008067774497818808491486876873917725958602665653937445822869273339606979153406957166084017239704053820791081814796852905036968811182619837180491120006752453241481703631669215845076304225641408536009294526580771304034056192891836744751762761296132694286025165183185237842666111358991637454560075858285812193129847326588065206362777769544232920109869743922488473662750419959791577306159216210605997179034452590992974752677478764939734016511208556832973928870918008664248557222184169700761611184335180897313252467343171985217105335582765319311890292226140592324861707394909103638746381815615000234703164040948471530791663451233314675885878804394528955060978043438156330890053704169213222707308987846836358096917862471477928671712183814825590596302735300518468920007538093308555635037352263752186493552695032277409237074434702956651265015947107614997530180950852698858264351544739376392400387336803180003590603124757069793495547963993063991520923598236272289487782558497393697768885044715978494067479046165917994249614642621393061023871223548618466729250456426550543737059956602343256549567418326892572595146973906041362378069749961977708817020106748198583256090320325256927961942557679169366110802982435680702929715262159840429529294391504982866099160727447024658198653130566291718267892453434021809606608465493405589372195516775313839184209826811211381447266224272182320327119988459323012955167284392966164096774531817415159499326023046196033668887480715657585449748852394012461637935588593340943453403411740462281222084781505012532279012619694771931443509014910282633428299259144313660206785868347327938805003309317180455632318647396740500890030985775492707936351081935393051180618401939412804829652459881560703085328745884449666709473515458015138671591871544467505578513291735167497494263451430174534746617883791872103590730728490576607803679382334097919934628066298808324943705400909377776916040234804571667893985399424992020368858921587009479507443704288527962225019987634208100377896016027039079988788217886123764263133300454977258685353514748118422816217826020754409081461052400929306977018797228268337178260519760373615698979282558940285584534173302346103805358021016507709135469205480740592044223764882257263979865666429608622349529559187633673064448036943622214796648065752650297051472145112763052609241198914222196225347210739952485211079996676544281070273748629582733510188357996354626664735982622300065334657249630528279102918426479771193819694271849430762806991157646796671971315084424469792709676874248563829345919382809291095508218471128562714846103473839573510226229125280455004883827247470547549900244558006167074353648261001211538185595307767705110144921161530301517853121696325485189283536674673869543479075477758533206666610515624190904917524250494244138051371546849194545681660894203208885271795388479391391494414061538871824717435569078613887158133555089029695667710935580274833716953187674778162555658384675164163578290183531443857480557522162026768489722029121925479291242450781938451359429278914129112155970382825814843828111359202817198708843913701186912117258479970593006463358140010036113524951986364966499536492402971160081086602554129619219305719158893526580319197309759065324557228218839489266696255810414342323121254892844141961231432488347366951846612078814487954287480862476121623552420598975981711203065661402312345868933975653224044628809257618145073332367116316512037499667166874997828440129220690966020200745258297773014422198126899723270922873842160721605448866989811799756738542464449219125830929250349073979383639807752608244816833851755735997913855283388914931172458566689288428107442390883043222753323598773503204204847908615178153004972929023254946215142375260970902383967779528268248245344962104898595829987135180000015635293280040623172906233776889452745590861749603626500670193327378856468683265994832763765921397181506384684722560848685367837727455490428314452496068847372792442600501108868353542580729838656047706884483337721358068685626323174227517394990108913869445181082783233895960688676533183722494389839375775253388582940525174849793829612975316271671486668199905496748872818086748215892763755834118608568710638411086799438124147740868191564999337757639784173830004437494699622947103377235910703968630401229037782387116218175679338366427506778652280972019773616466207141758048712684274293952019753149497143664152443406252052077223477975305939998069501119685174794126408201214408616548064827046962386245129867477061838007932933226566496150376997280340910739604877681980869016124717218508058418579313295513609962995254368061360989781076788268287115490597192967495648028455046343024750952685380746081434978894571822779395768495410013224596727964070056820145659402430658226541369303014540790828309412633249690282517597825508457686698049361069919771786742997767240696163083545446757720869728776642380445894582068082758963664782420636096737318299855427039752788708623473438245777933005055024229046021925485320757312973833798203300068544025303821453838906952031468467846614974200165654161766514198386803303119386797687924148551133274419655818407613363657434936228291311293764627178812157251911096005743487269039592677486593579949860289685858346416906390391842963147865828443420364971456467228830517634682066698880454268361988214497334001370079948105493013443066691377839808356015068027993866661868920061051549429574418226957378293700572588365125072175269698295693688084129803102033094063704076674631352034422034703966308560629992178551182270980107478962455646389100768968110381329378849124432804628488422231125709143027719211477858361796012461121966631417269941230069641269997709087830720267358957375240305854392571756649493735941748939776877952033071230327500572807547989143903565825330677139182021685149422218319647668442224044971109434831597547363742614987816906331045096586012242112817243171853050434091388779328899355035420196450650240429175910004824314916449662985500810674549831523110710500984652540599951506091150045277863589503133048336031986649874247027884453052216486464918008191962405502500922690810520555203389625369811380090550536759618504001288199126098421841468250602924300355709102909479958535288776624594078983793756522318001607001973854060537266949614923236340920867594206181140895358352238238689968160009986171209065575722922416176874210114168520258407556452372627526876309121194227263702631043999027905590906966841736601354844762381454545242973634561976098254518281420304207844605552102352601556478634204642882826855317688226713186981529603194772348011122934736165123546211847880816510797147821358362871709780955671651676304892122585960031185268204732987532780054969475945551414652487619712021563785123977528684488020145032782014197958100158836472328384698067801116245048468641651892384629610111935217018071320716385672834291361868147246784342998018908130718244643428073321644080017615938757208208384475128803620374973001213829230399713764242152959265306499862417202848658763424268867587016891174098868971783411573489235624230958617455132335233309544553297804643918082286063991851931140040782909729625026102830788260561447433957308853754658895739293105377493226925418526825822030503218286062130528446723390481874360078638298868238073895165014445864074850450760141276832962785336564589255102334985702205293607423954580770910738959114461397420362626780187175650118915348832606396564376007644736486739951198097078437399237381095907768523010104896252049079125321904319032929896713403976134649485603509286247252197134155934711550065958458898739337777031936502689886488168996959783064149822086724217050058362262413366160700580494743780996304478873721825887705313420559310472237416763688205073528618974226006003869380325481847300532907407681250158560780416391129226448361575207531409704108793010417977273167605605952820594440971920397127892524898030883222491654464409496665656757221702935762252785454159635865969070405834182568031670142710301470193154627477238408739301423072852558007919840434768449701819207132062063360509013940977200977807040043768308246174535522068523525192329706143035634922286431870508836826366119118957725551771726929274685389409927309337946957071308202037186182224992387616372019368442061965367143123976547567041615327584147236395323430803427807840393901367585748004083794556621558819519154525626878886229240570299107734746801003555031861741659444525213890935743412654265199959667686937648333827615262620235273017395416483635553169682372309877145734934760639787522496018948633284435543154614994380642016925903004679477673538424432234581954400081421573560029168077894638202045314681586014639385267609448655362042280117330049157113349175307088214657203817795536136950136376675943588582700558055340968819154454261547003869767822282629568471946507521023641177377518145522109749555542727346369543829233968676412954465840587148466429465175368389789108876086339033790099560311539207780642004796877762764864137469027027719915054500888104016265783415434266644198941611543128810184237224322790956394383073625200231690207643539475628442467448216840194617028838395141335669706067878511590429740958447706788055577484581954869248343418189835846336516941986155274269097135607183165418959435467189770473444055552380306428825023401238287803889435659127656972574471762638912989246699994543367069814638559564011344333906227538076494557339837955619393079178154162747334587559561126039926640784216543526665080779968114843855464172323041907469903333094378137610839296806838027538152136476576597869023334141617442751491835569359004418315453439954752998644354672995103900118261189801588415726867988882885856603293096280450274155125645842384435460461789674238718986063395046990097296152177427387157758900798981759647410811298378103495068285308370742533816313603837508365176875872061805528289700212677091963613853561155158475660227945502468280252649452502306772709218845077003958112098353645984615011831039851714129641744825324569506857887352227804004243863782971987376736368629540849032628958813123540284432874885466534588947558906544049687517071352598402320899547534091429636137703193332977431379844764169509549949167570907649217185404020117603114293966969518884766254879062921335785976096055120207115294961428408931908004624634635760353827663481455522361549730208092521720727952746327307705220913507864446974692709135241483944516139068684431817388066256968700046053501346576018745328853989537579562161265084410020999739963896616390868632189470003185812765500249660233259023803433060536186357896723004846187465955680599750879445211648599407908324108902588628803097545887266718174997045599340374154897280706470232679542455958345511335246492003899240497936043261670048469084813104806787845703656068523964952120000863763751963963748658350660191537882591259364897715501846832663739667174093797705403390189423007168191612533331732472579389425517109072333730244979985561720432750933577320560101223963119963329067964400986281596149187226199786652667649844212555750119385868709118592098910735147203175871250932922865440485640783194587755855745483260243055966591402145850677418805143612550348017361604955462328424930026313877160204360674926635351209906782629225107300712640296020219395004698566295964496373766613836915321401136944710134222321416750063767058848132840685735686871130470445750301045924798077689519017743492605817389877281894159811603247666525526431319914369222152438114280054322828600235382545821221120203132012216595023905024002997301816908986200193602519946443094256339155106945696660796919215624707511657622527335828974884556228443388011888415148408391815946446142320676119391895392607004174515549421529189580742797645142812959660171916229106727577826846284156207882652811005694453774859093512707026637214812860964495634535740521728236170461124497602931015451572440196231495658675020909859982443622445592713797828155384516397198340861346349060325615803757110385860355672564097767219861317155832535165672817813180244352869931058217013556831495030798729455945154406622518082139847458455072956477553780304558207977188766894077705917570029552591228428362196430026938804270039193558878450273823803794997672241904865018102131966918393822870020747348132607431201200843886706302313752962129668919668569263933365850933516483564886149964806182194932762747204167973676367274733100252045737881445081937851499641376380524968716253247899140465133213429856187163375157392771312580833994685669300277649360767515559869681687147341963331090217157273462099270426612249475588422357781658740106109311472267933785668220864913463905876592916172490915251849372459914629569998272109819734022977320864005928448237700413924125178077199105926417353825299961811942248409499762395057091532904190794846939095450374852727810486724546505458983972551178149129071372402305197258245955069896414886703308525848152707877813749148258708599946208686327567458886470348255901820938668528077250758486580802669788056650087153719301395485990870890363322547829451517521541209308140302884912944548957545332626407919889476892505280596690672338419367723013557391611470148956514242730778896445259305590978025258446916773124179548834623766876140550529942755516249968552657637844176251097137918480688064534447182548548307816539259199031784531241034996379171323488471406042027269154838734570899686374730250186887408944217048394110543189213091993168765179118959368392653084610497814953957241824046395711827796130055645576051805642859422547712714411013528540783636245612470611637564530673546304895888885030655286525058761678123516767874756493029030757600326996351303194967148020417996206071230665433042040676249417267321288260303489283427495453954246666962866968082503200846078563383192696868352863201255042879432192665809464459341941567508161921575219341711293015862447595393781295113926848653690895637524694703599492760930581365620751004257459625528605489722907244875072802340060611574574590223406125326004951315746614864174846311717281247961060533317884573785730847959529664765060484483766131814160714229746557693784567466927171214513421189698417133435769018137441149824279970775142430012754286430430927565452814174091022865712708935622530432314112220575586999687658784646323595757532181225474247742831389995080505646696167769455714472887640285687573953305735596847085768565203244142568759705525903565656489464297214003791647579326005335777976542487253113667923775857161090742305566838264206491927211832726090332902401623850434655851939690933199174773467848830118128012328248583178779933031496960509846199656065819586717892401564340787237549179201957471176035860027960959134091247577470494382252803366944209593784214476781287605232229675163794713991971966001525907112714312136784743972175415933115482242603867451559649641312157143283382362228822059624065085115953047084204007052191791812707410418869613941774427755636033863451395744149969583000039804779781262408519842696815941545880689593122250877658379306666520223572245107727991847095323753028220878007940534575191882281715576869145731668132815244133038454938357302340566060594832701953499067293777405073398523407373372380855988354320509969237939501633319675555484742250114263265687319166146408969359847068283360701645355803377116385400102896710291327085550435267167343849012078368584970335608802372467645791788639002994951423441440567048764812683331315811660758276175282389816745718822566220240481405159774756877832708190363779557345399684689771472513769048718741899763926740777566391995391894111164079435855524219819499650540556289791257445852377887578438671453466398480806036136330886171917609352627040493382753552836721315072365577444472026161616998829030146475522008350802100167632048012509609311001881766441745590288986184806063779607773512650897254916097840599568682351372435691774791345585665034022249831487892510203866851999316100395034563525588723296449402719133857818355456440452812588805662136569154286430711345840803903780890957426012856637660574453143225859033690380346580942107994376012548736749272572630161289383379739113027381890562413274091792008474645760808697893935088171249000611441170171203084806191418076768597797722571588146700426787042353387242506615500595745889960602150981006426109072303240223340860740392101410776130119222905235041465862819813228379508718459138792503283092112372099598710349320850591991448596669646356515970857692807900020183722017017394442296234064789618372177684972719358972073409770200138433875751346259302451492733977045428040976760252120361288113090721220959872196640162397353580537273181813453194809376712744130234371213993158594637822954864572085500878361047449180577366489944396388719675391738524068951706362306379192264173926890436569857306409501750634086614682397411637635169222171975093204422430690864974357357043375130557098687772847418196242332182955723535896791707263733154299765696946459901723607613838061796218807689530962257154803785192157335287353929776804362318037766238239228970100751529558994361953238765712272759100231318231476307450992144690737672944078194302287130020211179397509505508900740459270673410599378072258129504574032754669511576886792238822145909544037238494830201889327749301615408096006249918606666905971799960196633868543657785310981259339521258644476452813817064981801851503721593729908540534876133025200951446481913212517260504229580874287091596530532390948521198667675615055501151717626289900760053334934758526588895256808469498571271446315969500249969897425573096095108357201020883503984611660604629974869464579360419143734216955215857438374695571561803484339732206751132457807710285822173225885752042309629612093841377807263179940076837643064892406346021459070310092071705389830062908200811511467913842208221889271902444763444154006774304176138313943254749415741142562709536716630624975157645269373890188622621454361691716874958832762066580526130212544508968115131271353447357412134776321268831571796081466028205919890556299938715352273045705273807529158492859122827356766980198434416598322908365198169607675288323159355948435991430675376934230846421360320352418830688978191709711545311929572509053211681854850347426265991526879646903655989488920944933052592429978241031554440439865335606166895265765254952723482868412638803596037982212598595282454063705159243832101110889709702614564419367798620014524009225780813415404910533844442122519578753656365726360713578005766065393269005383582332412140090581779772673457646109894203674286350597999751766452014481369301377257843816868244132556900137175443103668304439135970844582126554102763346151715056435317562667273718638332487752808721908074650107745854173168757790903446992270927050037303633991649463468953075141805302518331749511064524647580777185000705386228425953306408845653011572220311956662156300939152707905119390369228118866054001992935981976121873356016802753067463070781004658694350944321052225395613812272220492720533408279124047525072039370204747012663883088938530681387671613095613814084298424049204383479838513059419419562265262431439519573292015830981013387081151848626523786995363934599580586716357826389331180396687958221858418052486830903176183224559988171481421789893013652632717406799193155860591702603996798688549757619102512533626353316016159846533906506777693096863044640136848687878293290964730096245809356705264245005632047964066529587776583937386556176677789063448463500219910372812304260475803729686232372114089730010321464238160294610755046139980421736835428931880975806450170566187289814837270177737499953433862919736847062866113669106815188997784318861196618821987929169100768955016201142075484572764347009330737112149921219642977763378068293191952498428245141907822032113997973593743114971786127936364565548473169289788153309605507488425886643508904040009341952626959704212026292502767446691949736810572378148257964687099537201749861606022706545111321558383659090683543898903957438108639644772241205009724102792278251093574957029190339164510319679760686917968536988688545227377980510978018039645318002429252638446986826003919864034474719409834691382088330405672099380164285525495689846910107481230676985863031877762582931329145951405372999619552868290823858788076119556032806044520250317710687818867729231282124335409548089366448451935578908612618304231660178818358470299951161879445381166084455290260152950507096395119990945173043588879902910456899628961222642115977264374677344105833120542881930801694612672227778431107536626206269077095485167424551755997525461759370532856988287199099488299090682912391301601833589606950496343274137343612619346625467686511791972654296193072010830997715865339467614060061959371013906542717238065276521580796700096076373258558373287452089739765544641680806923628816500591646795886979399420109057015787479352449490957110488537413248787828041060402874038540454487160317920946268512656308639682723576678990345877415923080596642719195657349469214151848974683117899157771133724836399160550427258675523553891643287186291894127787104254279850404647549127009428765998679754111312064775954218059440413329886328624502575176389338250705195916942971056065483068805547461058022148210807836017257971523736810094267087391173657701771722198824740128258598328584633534574898765166653129744792058540896610578808288923679178801963406447291605434275780869076197127365656238315113704240133730591963720454836774228847429550337302384790636735793527018578318353542381509917105339667777421250218891510506963637068951787429495821061481652971630993555663223217878500960341782170357742391919751067614346595493947481801959264583733982749458122417351381125506050234538495172749758423954786622164818308888812693979893309834463366637956224112561233707624963328564460489261582802896942869261528453601539000292348002335723086786551460807552311926934716924739441753692307671325535955023092301817911803230369868353581756701590658080404075657522227747757380669676798049877771691887163202403633420067409669094444901408070858435752382251154729937583719725696887435869180943510589133740374984642812064533324419225987171606654873692691509838591391267724604278876824426217432967485147051119652850919370193939641774704203483492438664772364649057752091034677014481128247267002993777412162399494876912149428815823286090689412957159004781295678012871536107827459638801942586500762061537456271886466999787849500432650105812179681026708971656689386694324275726203747089839762653375573085646858395487906384771755173822544026285726808100540546803897956592173869521251739380456935193234533291006646956996396071473136467833791618158830869478469145966097794001186441686542036824729118162674091897230498393645270110484267047919389951110019287882336192724066954465239623604302507205477231927314592484728127986372302534798439754910463752189295273549412385103698426673459703679087037166955817663739836743361643869060969360061572228250876145416990948449080692118321150315708689606300764818239376889062993189808007940898777702096999345464337838012654539329912709314413927765576896307643734072553182219247801611268472999012787602526512217716586598350922003319923419807480942652144798087337639485677171705525548075079399769056976826237503903950429679052931954360869827342895564921134843748304156687019736549701476050494836309219074784389787308513584148030199578234349163630837960343184268583197327574443568395479851567590819642258444781785248454831645880117972626852573923463163723953359337721911446988059113616117373938007152736959384276386206186599352364376618908734401618909910919200883850415102652583628734347792352758776417759941189326580790378670346761083574737025612394991832557291160873813061947422625400808353538986005038103614298653277249449567958313736140953934177511766006631753290899651712193950875734751956680253814731110688456474698685773762461631520712632975558724848963027382141336599554597831617871330855827691026419595561341663479002633766364724260388546431270543003662333372930989728727664385938788733418448823595882125511038019193360813440609117901273803305658388252913039151545570702035442469192995336138552908726246817244064486088248393385648906354402149799493728750090304955815332794318525350827222228027496286519150802266761036435530435674179352433169215754232184931258984829434231436543371338353378079721523905636827310578863604650545090257611897804651747355349525146389923250798775847866127633285864528495404234389187759182552103565939056189149401062076026134801477303302747163056066122983203721508884752610615904902251543271286308476432021651954628495795157289753624834811287415933635046286349541387791528938977626120433625454767448187374829165721221947027255542167711650047082445588106634746437249288185956072428738637424664172659933868062744182619900892977666145183774503769998244435474783965992783694395006209570456054021460818601055112801385323351189759499880748345612574547906698715443146552029212343665478286549854486154723604406716266914000312347017708428653527096814229114136670199743944934252054742874566998459157690890590222277330755887176716321691978387210947605526772926793336820031531880891205425232930400796636023439132859426111322799646348228333823878444634568261180873871841780854439868294491523461778487384105893700674869850312612345017617483320338953375585578382157078410208942667331679126800178191408795244089693303172697375486874738573890881905083329549468273390053380351627227813691205358824523982074145195546678941718410131885209124191787778862101847246847579851599803448281839277053028091007149077806388044921252919874031623233622989278033104315853733551773884107252255424302975973790562130655015463045086812986356870779228795093555520394841862794543906212595126551465596588775498720490765784954179133252812070882784488450749356649702705996585424915054136272938631695075980459041646805776983084199414263208053244209332078089677626993595596847340982884950888127388895020316278607427251988526019132854280545649285243593801564671291048048633514485018682205463768441523943993710698059395162649756729565777223317893350699114331753650780407112191315838618338258245366321351327312146694104083649597345381546441095822424133489107248223421309477348651484029809846091171794832427455441149572705609899340602268405725851800683106774861923161775001347054604092017642570164269521360509204004816052586693605197367966907426273069428322080782574429540095016103671753363160175210292501672343461642476861755759954295095934965154028045975694265981599458244209766081675412553644132122183575874579971558480138350431568243559145834423246114492062821248098554035228997420456782909912834047778353590991968505904563630931325092323492489955922003192966242230626542578130708434317963592130236865916765010821055518948796998019330573644314026385792677138431062357236444601761294507158299153792411151473826917141656832060384931817615068833360062978978337376280101366088250872866103622344623970503116125087690997857304296416219709654243536847257607577599702106085102228484739742065350034908741815445395463494284159848208674320076145844348912146963189276889518350683982755903702061001622330846333507966979620973145952399484870369331366839536473262916090612518174819244220734029356260662692860546008476544007672002666120648957862929025739034213529748276370988980159718682032359263016979417262997798503664071479488230539204696571083150742067219879359650370000994864736387711825670140231660451750597388901281788872305927399656918017430671173426908344734755659045570750510265262954483506729526412899345108132109847735473479681015992630209015571975585688203597239168660361891192689551584851285473507705829165410381653606973683434080588190795821141036039182617921144612294384873158668618130139729158832164282888903574495418119594933718404433510269277452004216698647237896345648478000158776349888347465604945715502125386393631906399784618096022260705386233584371669559545176001860508068779231736105435632145785188556944945865898491735859357948972916293168941737904157326649985543150263504209058309257417344786413349262770028269423010480927352171098811060435915433010375614711361808565081994325209124704379316250164916758548883448173177624511160601385636853898819412076786153930586291697422404305702064312673176896445427507248709462272201552242044448589014381827739590827400256670727245822440865118033187955191330901351655848851933736640554088661926635964786095593395979602145307272456062239539228748726963967605551311017061857162808253846265482879851013043385018869191621343419352262405690159589964190237910520322824086472301681721584861282231154170543923327673315885160831990690566827034481038444759253367491141541382551373358038588553432504659647368904579685033049304597220436382045398300488031102083609370449144208908392276703815334411584171942120659682674183112826032328269831323743859185364062768529944238294015543534921570651710794075293962673359912176811040430659183897507715417406006760954595748205793186091996003706880324186682505673550442408413853930922988177944887279401098177816619818701018608246064189297835135985126085438148026823983489325042613068015724095959176353452783413255197420843037885618706636081372727361236402668128690422750217183719455516723096403087495950340927965128389271986761992398139785802298845220922479415697584092138070849521197382028232928364515274782124684515509523264275581686111012949117492409707098419730401191376831673999977628909556122524398508977015300928762837722338576925752515684874920077672309622168937851638710589644396964530616115873272250588524415124799646537504522015978358616173613008916456855252106474621464670278539088897224322109148397359730151433714267132680647707562319436408310183732556495673399807570747775428399376683941926272732614802737081541989698278636365036411587043942158463367494075726078342833304235497211149518000508458635324563536045872030988840072140891959095194186528439040811567542761595236992129398170891895309371024879949707930632144776654190718254939302484317356474165763119579119264635043136290227186255362081715970637219177717926372696400641342471259928525005381125509804440153308139847962174053561833846979635500191497218634748577041118425369649636966703438535897678520979561915900582595137928169112454699138080511249779794507004261178314181224556663371833522950747361654851592595243270661761631377268987391633943472836415524041800691532294586038699545807171098500668720997625239455633147399623314777573069015297409898896991685058743488618148239950719174573936866880360755700592826864216995154544618462370690456447032496657176471067773681414747583643490626203440057874209743087061100031526341091165417440737714771371737166033484368173967360079506288208550587469415585156047870498889127052463537402966165698561891934286309613389772931310100977104916979156851813170818499035782129986329019189774219414387518449624820261025350278520429783251231570780170835415442055167053422709495069215401233113746855773749955191279041928467293367199154620646203434800614033030343378059045026694833585103647302843592171678031008733632685523750588689356886021942669964219181309775698370127879942698246416648534243719174561176071960287294714173000505464757451113419202289348566462850147789552416155852122499476228935372414134640983681779201371748022847970656509780258851827279765849417979531567962325591611784912651075814566580879938756381637894196850416605793550810869955476175236877001743886551431206567190191362455436865911291053272170941928298707156057608746289234472083998117270998749150652022581254714993285448683138612803920053360648834280912790033439244707144909870925188027339500424458775889971215168657506177004229855862416393525037713092210240480158651904669226860850950673416987937842858024875124132889352836967972236157692588301550315411366817478234498420748063893574459522325584183183501577950198677338900369201740137447252542180598774699963415395146251115901835970960425907258751535456572429584561881792483308288298467757373109828030299943345042463203395853290583620807443099648391860985447845742624995392202873351918580977093314606404327626343291488387933929424968529726349358543919046273779571710062821449770339806065857388655978794929006752659711639516945297622767135034093195249659103385237004011409048317481867075752143853410290480284000406101396080648913296408227766098008926183256146811523793387185200925885568480005912801349673409492274870721151781470717440842844891083730267487761045554792431804412599163183049167777656018447490893066276985116852091587031061438132932807677760319177075768334140258981457608210964083567457853176065001536683976103262569491732839797567768425548496032254865182989950759239621828256504490157536244490906652699597906461972065057619159702241047085531344006995423527305194399956989504601759666597847632170977197142289994508091960780996313769031570335839514972882807117075315077809567160585629470207417709379985711383688014175793817640120287420371036075943531150440689797140754299472725359076146535464494912438602552617128904726193401494992036059185785776976656478344347224624092986224679799643737559368057822924172717987144719786568436349610435682829748203018788315214105076239166997807870966614929108954079168401275015932226768813238604159591153328785222093865246651002149320274483718675837312550589060465598996416288325930915379914113498247073372683081164881109389487185592946858192705176339023135821820850811178065888684194270679922824117133467754784474118490616708606297364792429482025977927737150366221041606840445168041958960857347332000119827781561454966226012337427618897662247388107531582666466776285718487576756043811877457197691021430930037497729787374324394992901715844414345834422396519281667216762986587576223813466747591609836785945555191531747549893934805828136910336220937318005637261521351668387552003228074039614005078827648581742094271958363943514407647170256743153648795637404517514944234322031362609662737493631064210403187724851297290212744721587648627394635330290200356795043689129364094441346737048497092802958859220644863171325475269201264011860847641005446435097616745975665273844276940801223339623862399336306840382975440386332232042814817465658282735499912936596170423387248893920591928132269320836077258639195354381914381850305965623673966244351381342482088249764028771047406327848498865414354383171972169418450802701419805884741256753969568456160033567206798685145984183710649513030622305518282076042078903237641932291684195978239652572891412921191419116874090112186128843506272158832799710846666198215214908978668599330805353754613838123719598931876968088494134477062974014390923449920121556029681653765720503351162935263347313958652737140085972902935911297738809788772239757516239302757521929628267834598337431188551152270203080170794111854455352116814241517207228485215533074636925531533405268445972582057382252951648920785023427158184641618941519384603808782537762494065258948732448386663843624936167309146589069442111847077558877729532329996590706033004393179313189080690744841867861107163015513619011764350541211494973701257073030861457579536253694176582808981040818588746738229719742723445427730415759458116101943889247120800370529316868994058916903616070289510093753770528309498655697818609911349071198841156090658309205335909117804565554333257693972076181103508937464752468494987771938862844961758257170369855387718053908712134837132615888705210704352307888763944666682218190507925263375320369922380805250815895338886097180947323081894001227726534563554171340222331564343654018648955444487627377509318795097400392272782164686273993677560916800184639502737224162674299128301608513909554096731525732078091480697764942326624445304301606360338829033568219456497992475918755149210805097119852469710254550866985141779941596152358985586450256996639111761697397675054751396693290238846394327997062867413795277628531797214731064224532620277896212615516982159014136745186452712000259043442323961451760462215376651508117227795780922719990151681825437153698871147054451939091719289627479203336266024621546427882348908229577839737946242431024511795182056565182526811519472979233273261871004959873336968813949768687398766424835542564950423504247009871211928960972369616523644659257857833651495596243252459644451648976062116615062433037845189631273391117993259182482805763962645673884845829936758206735662281304379316859819036574777567537510824325356423514034178866364390630003976722781449749048519015346303530667909233171196855809488211092907376413526961799502263190542284475633794175319793921049896392335871578175848739312150655577238218401618936436169323042832872525514665812215121067404903060304688210415060283138360863064920656516433179661120552175163296942529421672875432340448531508422928686256084114857254984048696544208928105017131315194145783959848306158397790512713548384485613135275534462260588185259736744859801629934678073052387278689859077539621819137895596358690972999081749407028198427191985680815672452695170181643108450152761179001213719642499144312104476274708229258979764692381490803686077618288068160968095112095490764262999981920898656418187897021525353259934624484510450136765673529127272110872565784300236485258903622519887903577019447420630663371771719349453299376540218717025863633749032770089405053559464166678064869956006523099729034512104563215867464995412123819246594899743125651376333276640698651856328965586903492698240135126073948752498308771797444248359971907694005909389346680059100397026237660456516923830611812891889002151087810159827420690694147653131303074237861953676731501743699276985406290117007667958174222987588338366382692396403375602242829888751275628678160177308633988876406773728868631986899402334223415142521172614830802576170341099564159494728268595660554094986812723280347770319496290925771502953403364247081110456500331244358596447685821273766162296010879944843112802779842861679411232032853496703644550259600858928791638149470331966143436959635912157165419450763436421411698383107749583413956038803291078065966994909283722690718934382786539513603305979089888471562107646354460353296645899778152725232561289483966454756890836024679979513708551016181001581746735939176744061792254279049378379548126636819394154763163432476783113895093486798554193415104766082757839135111484050697812370185693686143278844199633607096922912017851169430668719780357320767326372502056553463584654328375437131853564872191234318129425779804956589163006404220646783816545309664775112316525083242436255044680215747440288822579559641323972876135662552876906056147216907821985435719533607687426262506758895545933747682358802082143346783516438339454069396859352099484804203769800169734586907972605079313581653722888882780082206274653737102191747752192285259795031624225143755090409746414354974070287698194828693190428025925357512882668513960538215150109336546109062016208965150909439660555557716099019100843081938564234911059077419182819863873376769275599404820382332309759753967771308412641578458749092603063607588690013687540331576918671129125974654612726465937932005254732833093646903775348946702289193081746953065271565174598462586427404602826740654662816018366386409222319364527082971838449684925432242064461843297431327223795279504525435701783324599440082922612022359033513078189351369799898065274948975034200722996110372596565910858487010221279438478895503698015330558633710167568223480147839916452076579777484064704731081375903671839716482671073608570230024254994279122420984237492222941487445013276264579491311293982886699810349676537165843632875744394739967656815276943595138828463483005495505563893032471333175774788145483372088454545667583158020786229663569155660861922830082007863549305083958693794370433317034933597374708208806519636171021130116059407773993647553274771931896423038908376073740773778361351392466972528459225782265517568238324342313523084594163155790917042815337136583766669955367500822485757130249729241201433338526443501379295670774360798409073760037342967642474999486884125164342556767742209957425141301205693475295872706897956666906775163120315680742132841259951822412981572995204635212123721959530352803976691167959554808490958903472562365602048239580658509135401250639221653145953606409329170128491721639086583764539613465933011172513349101911199004368123505405101105651050851160426591798983538620517708953605281072999858860752597912727522456681563364607984298776366976236206207384903406955443992154833205201771316735080115833326392577696514232423302563622708602426027079201469425422753418436428167166084811630227983782622154436552619583876573066626032336469227445627442928624659884046972682530970076061218041676976818215263231753682782146359710602208163248111155533035049055170598803083142073901703625137470686370514426179904435073576087216269153044321359854684965968711151242685665276265613692870393928812169945753003809176640244617746783108594571269564164076510911239224137171985731617223288338093759175770550083453802666616778331596483413336507283475283813066872023199084328213072537446288473014446336827073301507495447719138502967968888874502623539597954605452791018700910404837751497912749918649655277157855786377877520439181165242869820332430927066549549309795191698118858450975963079927509795983002193353382244285555806817770449212450920344630232012829580635618532899423507228499900956726098287155675404679661832786595237976495252144145973148205451286812127996754820435829419469667325110668989877832336868695069477162526852465653023486140062612159252783961055978414176740140201200661074416881086626945727391422929945197980493626231113510954164292294367544262453859047363325051641130000016839976158922398706027444883583356329065083594728738181922679168123693101211294260565353767847716643753793888070300019535203060148051010022386624116440321211281905000830127994096419207055462010265866324628945611394998089189626447119969025747305041011898567358137737995035896381850662814764459741335949313984963554152184358404720911460200661486799739250510019997666145166589554962010178900315323124757652128437618899886937169218928543290856642768219074314003974830371566895630933182208369737226993516972236273913716848427473450240668220179239106519591888291285263454186594382072015020643820995792137814413757404839459235008440472031754994509063777515914218971066016916424164631019240377068238060816365456953997929716717649379152535580763779055474882104298697335817816424121840640276580330718166867557696342818600450443647794687152895130613611075041426759204714133981076542646241802032790134843681432481481530299183187613912100985188032345166645656440912328920648448544385494000630216037574543677400266911733377688522169155039127366031768848704857827091470167097984511599269128711885460186312356218404423771917061966084774964483000632179970006477783123091734832933223488777538586157091671685629865302509621469597069131831036364674414205775481236104503875570580374414713738268036293338004201969495817329040856362214234610935299705957093725375544018886104492791065206600019233951332544578455064228588075295209713187964995841869442857917211304473761799228530129715324986730070357780874268155200645009462410955539921961968438109323973408035057131540189398561995702008605586863316162174267365488922340825291238748138530815952728048969383829643322466764430270261401077027245854669158529458341574650739283028190401854820454392728984660098258162926320669552517579794941650843049943768114138630188600935966988969408176839409612282443063673674868097805899535233684009315592902279233228548422157710441326897376536127023965042520549474804802072714510409167433099888911064484380139068793960110367893752667779357941302557961419301368305904877448642244686909420104056384591381874561166447833330546329917687993449045524039567392889471178821860549819755018710930560677646473124014313290522345684203653910657987973697033513829932394368047200370234698290667007750287289237730452652082197655504014273767409997611593021036521668312581445474389232690979268192404867521971024313144808819722213364616599570225842458750192903328720976788079200344739543349380703992686998932255910641203110014329729062807042343938844666850964917697592250416942955207659003414854170303715702673103050682836557451622653836096818543934754185444035788917486263188194867025860034354057955964274412427256372374167027493499904824637171786602426041873360831875021132357516923402589372635266680189316845019933948142786719188010663317991171550334203151153706500907190009648655773073972858798269684732967102751508304486852593109578387230395904378569155243772536755885622320255962443821209263192190168420377236569125811642191482435365331908354089984480834079324019882457445228613105450492077630179960206738465511899545472176838057029981552348497530439841337447461129594399835472861730356181295786438310383119507673537347659349522393315525431616506136660542333226008883751243828776371193619373615026119680058681549599027752082914240225304001945422848182180730202705335899261852474692275457229229278584868204504042027873416217823285528112806239022972094877663903200830153771321023718177949877329045021934405499526679243282946925301752050905751734934417639649358381540270426127591199952252145595576286377524076404117010200591419616827965900277829078261117212779127416599578244453783077156549760247648786084111957471219972254169680355123403434800201061555970345285105762627293995333388530857928836062603738378687974532543011719448339034227519258734245479790766147074000874797408544211275752847812136248866421467920751460750947381385056513136202604754465793227832455998313829740860266921592458985257787481420183259916948333652827581878174510970136719614324510928786305203501263349801675228030694824316428126800409526032540427661511640876527105109942418105849531425831227427822396869592237080687272485682421326839684094047314646727380561226270699872002215712500121581660374556784175251561398132122241111221230171894744290198754389280650269457911401266169790502752205496462971746674774085913226866872354282407297967878123808278345896406989199188839186915293988491145808313773233180100495075614297464007532263319420965663667961712135188891416885973952242968256221238025644894143054951643565857073783846852236000248796745668685365003817724915600766310647878847732673238074745389741223557693715698087931335171523706138666368157232619866357668105226273403014684314226336274305409493337422412665177318862766343299242863919338731443117999446521420229246595293882572892990248475461785391827169753500125377425087095069693478731437129492662172908199969803725374802553232917373663324135815469655601752675359241789283052972351548439161195399601924748023021132889389220550633528650587048665052413009123940095447798696797727577456289817731496086225545469697387658846305095483961321422995850150332876811405092121194187725912252333574837735671298115914297239428365522063738423341531754568460430146480132373910655807875639858699845183823504798458998244510310471046386891530708442617827235956886402932189167149776050725340418006025638730950755091433609243733180757475959167196456865378945845438153629808402440645074162131081549700830544026626620111934259344121506544109049452258443276141559388973033809601493060247797950692720656012728849605165587330287341321670205723684022134541840590356493840702430673491214605289627620287715507559922458088070924275435275029754226588421599808424991118866360523779236483822102629623641336186680515073491666173490359572282906665152160465775120457215625531637649447602285151652384563645222533885867056070947237699602384828425910867711025311582137076987360744814633375352896548881856387678247575588055492133052960597443240460130915511991313038220872480606889666736266413366832716238180765363898611875318495889725433737653680554566974494797290634106300360382112102327580630566710442045632843421396611411098637321298410704382086638232596330999336740078754350413745246468384439515537893304542627305234463336273116911527456374366305307667890921767474310594805975409624431905708773734075918959509329793303355067047738649415068276182363575410278085700469178992933760613078069918982057819123841965376884755920580780861039057781556687056942301071283123508468782380594848632841701836513715302691875628428733602440128648659344576106107846094039172951833215113755895596965450536962464594371335000597007194320881486364574390777152086484589194589183493116348620517971546012635797022223811793826491232530555222572528341364053906051169994274581594453283714045718108588648299532994796980411166359591282750551847212464588249479665166587191567128245361858188218466433210006993921075412885760160725139820515620000126128537054276164914650949643783322788896796008289433319697489496389230239707135590712089520271302014031668042994370049939203514549276066569513011078425167246253458811256750586516131513293474473966690468194716178239164491564569675653887087966645968287487952281940499588340008187011639970325807839289028676031860398957342094126469416054781345631784380720174942403485337520090618099803004892949489624253756346924621227007243048927250841929163764275489539775127012659970426852505809917703573013636874255647330541145868043700118114175645031583544549630263904669455520106177373555066911693352582171474429015032751273098762676937580741935134321094478760139684232972793958121033829291240470096791624852804733826503220050180740815482812339494248787891754984178671542493692849953657411615939969297491915942488853660901889188684287454480433481978537663578383616377773764012313472757616274983239942177519788908286454134688387411307180917988613081751087659345467890626416440979986925763449366000089355871753233746212328583433105560635563245913970785182923419311445121820130725372251638445220072920240882253582320934247724541510240953715415253145916772429255779178572578474572799269435108928278331372999277352131636820135779179135866217835468489622273728472857311141166118332625135185297097803640439820061735718897584741460999922793910113351719472127057124535388980001024199950100195646929577511873209842014485146033889956388434696783128164156564136933591213653033098981320666365157961347091136094306294866874294269812923806264543191574582494482927868472692648367190931041497473346611835137855202101128482444591309579714049829055611786823170925658579490272461194938693761902846614879799181359722412105194769459166184428844156975912105986008732674659415256755037964379669175299119880410074567527868379157662561949120651022878369077809368108237689842141452773882073298748300659232734016929506826775178661301031819101292467456630620703501973083423076403431279689195165103101819463753377945536852047125294177406510149387120261969737685111434335076045524080765488196470789903610933158870356474320015942304379287797164678275678665117306596506412052309626378245553622714665202627632002263552158642849239218514908693426963081912257402083573867632895555006968349523138641782613181767760294163537450970227324532850584592765078637295670030952164321840473360280016601823443497708201097920514288978922847995620732410524026898945554294315157409574915337725652474784121781989004094024070741137752465443580675031146970706341886140227630326826800477448865672414811216830189633184214006472018823879316312209413911734258662797014682025476910679598072568317973531171935643254915850304324357788401891389109625097745831100131866778791350789489210420280170006435123836637304678429839154186726510009202990242314287536434310504547984802379333929928061299376765009698931778952649042056038261462567628415767110227011383853270600955957208931308670902743507647743799949979091019260352581328207387524863794946419308350690133702948988548727444199241232394011210411528413852184189677934251683733005286049147343080805937404872827496809708955328691540329729948687212218995601413507063898967921145687033823015017248690983481660893514742338874471798122768931954690227648336391543554439939294115689459587812438201473548182669941479764677937002769643992004238729212247737073017220382788029990821547691630857316426023009368772070820386172932598412667836412215362272945844747361788517189221110568664742448048206094919753080027184237321837246875341227127108152725649218652991218703484345791495722388048410010215574848277252516007975796518453615863771858215740141128470198167858215727823316957643301177531852075779054002460709511212922108542695719978467600734339985671729477321022483576839107514982882106759375877027236373370962442398820761688067218388678590731752772878077597641308953417156374253315560611202350144026356259247410344045496937412577770482720529284188705392471795485185997393081998251454726100920060503956495119861208914822153774581164196995321977515671976534818548816488439984068505537874449108229053617435949921430555991791023689842011385913549346679660739796365061873602165196861963593921858427119802547677607926265193002316920231611242151047665240430369314646430451860608913617440796351783858524935028251275764149924373265693078987663214679520029930307467725176316758206960938183420055288967921110877551754552106817275042478507290233174974307385508664924526229586876258666897257244134525108640040341018134086804760577457287693861172000659786745402157420346717570202814405644204207699829299218532406998814169683304474080716697318139136494957904041668213998815893461627613608749659222521071081336614222632523943223685308656162082269203015891800998459290110125098763686198443663839398150543375880565515155507001390449100309529574069434852163660841169533612849943754309380620166361985483622732339290338779230161973936911328554002957888746427991928123363752321959053613423742268846210914941327252118885736920596964904694367112874287955628499818861148791802371184472530966896860764170419216721587062878002806956486996369888044037635401440575916858886503896998722169101145939140468366025482079379968667553759677416257484926730225542778476979264351684018038517763026454071732275070213997465027921822849191385792026918638335014114280400550661802167083859723693711578199193355277558609609328008559548889823874069530344758981519577530115656235967914998780517478916439403182743392460167648351337153870308677317517780262815446612711234727432872405788786835367547228347516619266116971037087121886035020253924577326600848881847530632865945853055309763837112987956825842865008286062815680741749132785997920653131589287271278103047810417436885510015695616534307465100887558423380829596613282027461820222349528039605472183944726649009589921638315942033051339462169012441033398505913902617222832809012277513675005757057963713794013480863988757513143127571749041657351139282088673741019622656592719136430317993303513644299553454997264064082056626193850315169771703339077084562292236831320837275938900009356570032800353111930408198978634955438255036412946047413282612006709856171782913813862182429275393690341955031717266725660200562654489153744395086685007916199678330804538648744529828633693656992869524526814653726626981546111672580191769854179649994895039923926970789403556016060520324091731004414614342411574519539098021751291315785101292023494971463766811774704607434396152013980405336394108363019642328192342300635237332451252503419621755049870875645985978504131750555843575153117013064278151766332744911358221452099618117855349058323571321865381827111974390608365349479980978927599129613265789521969031131709727933365062253489676697829007222495262533161118125258628015619033710713949566482607794628881900531440438228294325991453543220418083742401604656919441827147585646330824850712561875263670775122187349791648531274047884275725737689154804039340943029332532487344632178716039661421438106982282095139587570207617730064125234668893025043042023395798014503858143001179971124896521910904935723052645379090216098489793189593564179507910898469589641571442626129386006642001516461115417878403536956378498736243215540092277645111255345274900691649960418559789861593519770427141120006224050978525002968540968094022853102836727714397855978646029919273290470499657925460712448591277197847070731346793214779767519151219084415251766788843102732161522583215403145006392676316170196495657598128910182685528490652024223124680382419651007746735763613228988174431430083925633637477981792492214633625154410684726094787228990753784088162210360299364149685889316043493409104359573635266551315352677417679562396460863694991654740399917320190030963888904542325700515861056972109800717198416035222074613542136508134046623660428119244710629403134106194215888868618243295950469335381483393141330797732948035495310404782807532977639374503039725654233557809672182434685572927685808972310156462201780419426607599828785685642068485343973096571442615438804629625892046089100423121765757244694039391176663903055321170623623916488287899261460484252433507688661295659607891329249520750851776055823540383761336467529996409668534743472516201710798983158342397256242859322041995783000431827062750126851880956376708822917098951687938221323131638156072747723791354927725881607572778361081441874784174421040961961201240400011508204706719042415380838534873627223649800675021783193013735721248576899157875379277628839810305569644736904246362700475034853807790555902290996230040771200514929586083456271184960808180882238300848394715436221303374294861655821596640089926968437280863968090697146175822173211768322759246056325619802800317472742981576137029678493223250515826774672154785683428664560480906351073847114069195643476261414457383913505902351566326653162426030872437660977502212782386170114064464329466402247619326640632818341315769976177629919724634572773076785095893878122058072910476564087760582534102086055519912020689996023309439537962464727592708885561699896398220158752216168180242714837831090302022701098819505815354982953824200971587298960857648388675245431189893196970965090776528509711693751781658045222284998942458061482266847839724829141826347348720949270166461862313808670447355139372307055474474846013437223724192795069934412941657308811204320565854830328407881663817345272013184347851081932069540127316517849652524282432274466160074976548009141726337599036724976083774768387667634815474133187007306864524344374180536106063933111548493339050296238099451374220337411142475280299728199172629644548334771854696373330277234011270734850942135963731220806273577567139819406273233486279127617559664949123571645257361279301047260587178759799569433359389133059961658992318583045823818226486421391114604115512440540410401374827715607420521394720974963696347081404238607043825661632944318512235549417802682656443504906932662543504255025934299657670703122421220529809887262903911435664873799127079439280561793819570666533244535014615294282433661151247257884931830032465929318005419897429576780201203673380643887454497490032910862966786975246600683911101005786467063994643338872438057523623140127806590503506007909923875616773618192693764978952413738346488438738587774664320086533314115477433010787638732762528528588273980873546600846351480811888305385448259344370909712767792211328404346877113065881790882245044240185956505524843243297519610848466634550120717818946606834441693401382132679374353111762937246215242314881586667271461230758579292108894378275401377024251569399716086568360786565738358524017319170958248432803057619611358963621356789091945072922675995729186686335203226993783988069121037724527294750516491698712048546143827339988537927212881452174621576697932092719640354003848975221416980685962554434639325866245450156913362461330944104435337158854378355164014501048821497632002508924067261991646593106860510614603780867773060478949621953064529670645167757392721699797258018151550697339831484422525478302785018591028575888611801660090112231124620735925351018318291953160516032053769780726887416910529956313629768882636757647418881671594187503858247317752656020778358888330271803513993945199153654369837309908280117054338894243841329195032466640567557068062144802813529362056980856207897488037601231823661429438789343995614352794523273435820713155349618305383980849642227674577632900236384035927191267087485072536311737718823310638002940434445735371993536509928539825175885908685807789285345137935020756107150737557770338035323386458038539486440287524281839041551032499206246759656912360343058269359694294422444209043540669190728192838823244837274898454799310911774710784990844198735691875197677307563514977612870261653802337249087395289843099132559772167977253785502868939759283401054544545934057491080128558636002666451425299356613119499670860957044650728081541877335423097886671928554605557881749404103218794418838013740183446090234409746047544093004192503445095797185660128304136454223033642082218477219143377505063405589371800379727330894755116646255983248604498638105647035158250919800607386233376764548449825028991842168058212805182046805939319971400602783141090795567124303788904852806354942775646272011568031627720529948951193777047691409849704698989708253130027606666902414424801098802796437570410988084444358747017635855624050385034032280505742811355608246747196502251814481624399185593941742789467703159242874546737971310830255998828632478944001643733468096849568864449549237414580135227261729905418997574420014524649937828363670261256655460731238412511795789114255718552113687375152185325694068834672142702752376653280790491166910278900978424689288545817949287060276347993799811993434928784577285051896375095168824545314409738013962532136495509659252913093794492081590594998562776163405840928101952580482844725413282783868714107689070613112241218828455420952790600320501778133745359700338610965388889586337513359123701330341789444604037706844196022913967134042776575377213146616424373424690701565426029327506557689121396191552309461728233626393216239008336383499270788665442678462922168005668963507346358296771008718944165319360092027742006468044080196953929212594751314762928798469772088910277847473813226447437672537832775514188364720976718163197908179837138429187790679079185433696509224629841516652201134122073098024537171555770014626853534449361445823433291893531999451014535358979465234833075118776465188976877934589613234646574034536248049862187616258512702758119398049092903429189179178815375767702956009703945919882455484894193809078353963295730579211079815925714059066239665797783150632553635203035095449195646429544957711701412235227517850660472626247345946835633708873329409123579907775932194344358861509134765344229403509412620451433200145447999418217096522922527433685814811872133833808171433618958435296291187110643132397098390619829289006127689316698264030422427505908016680741444221507672075693889827282157269720324356999437414308068538067118985293693628724536433502810046783077803017126383137476397192658060810696956681331029982217443108522525517695930091575916612872337578045612351291264150701905666080967691236335251596882304331547592081980890542241790087636216554226429040204990324375627377861854058936746534292396978896589543787378767495696819762382324029847741164837102567663355951512807086181885666426283438714360363311910856071859973463799350282313726590054963828942660789498614047915436884439736709116512164279175776106897611583022507467417715540934648792118493863052314510048476643642134862388734198148861958802151688815118103594926299454022584840888060517696034730023598344462374026774090096107927053475651878897248526796045536793413542714387204982547246475070124363287870254313293421267180790033853567557489667050232459255613233288694129809376290212574855406685937158264453274003625974189083605424071643578367938842542131400379913106317525185169644615345588026159390650940848613339139634979540605372112558161089700281730615142851254257434881907402733689296162248424760339592146389243734343937144274415492282331026024581447032110927241169172607090363165614048376472276628450617841549031360881997301440008068999899668153677006138337785757517292682773049910351804801542291527907964557675178331511247260196422693422485323236512785982780632631327329748495201381305599869355939172627296290792057038215905336687700359901486794781584581798746675275986574499407135346267382471811265342359568871840452484509591633564429291070990054548852234964645499250482780920079019091691205266134905048526109894199748409293606669565245101785941423430903282550646360380826466264539215215044501946297402916130948057144829825617784253678653238195190960169512540924728878998484090614456638433255661365670956491293846558189310902757136770714499230233291807096275809511374945737942542302064339665320644088870671958553544348151100482593186238892224890858456517749469983606093890005999108637566848562706971642278394803733706442154249281634777981819562730943426602182291056647436659352941644282036902032113227820778256438799227393659511659285876384257884723632356342919220023816945485541270356889994999287537248980362350460522352617210133719695075171351674820403106859763107803001340300827002830501430551560360526121480915569955509971523347326470222267674681211721060018240579731728856072331143125638556409800438854552039728230410343177133150090238795896225287605307786710903930098105289006924795138227974632536595389300156938641899807808628038408229961326481324119889199020797493338941010011078641022798030805122604611291458930737919849337474054249145293650666661559599194241301370891655048525800062294140623646990498054246801537286152091765843790585262765270841110532331772767430414710642757480098554412697639085668650764477375388275958572625721044011017367499971717326778043791671501292354374007996519317371731109396065872191192055150923938516919464938390024905411223600003812355891391352505460517739997673111661968317421460010258801427238042390070568513940410394233917393469842414934787044515773786430309658497797416104840016456467280544865262835873499831176615541290856908017827602354485176964299917112718236867804006726545791538470593546709837897942233735479030200869410563534892722669974381432203668340103915134670463989704818421094730207852351529566141955097692747897945445753619482493018186928380096013012242957622080201125701079245159286599060642405671179636930795298515545033481841690312943079009616031140424050565727380223260823094017317081795246179666643513087948271875325215773845505636067909338332489429882971724348497572995248450931508230139952238927204642136757892271441389455646244611371834135840853860560288104901485753245114738337423579478178233307916488706396072357697214656935173092501143721203459918329215793483505998528267268783066140338721228654751580728111326008500283011064258619371629796173026597085548063626868470185431542838233651781353524930882232915764656902776827849864411991644792638204447782495912797196003599007172828500913635376858962392329036337030135755185993564656029225471476099607548990273439505685077547292477867011750375524919570383730218002686705853691144304250083982733127098623628118412292123062383624672848601743768378268367349827096383846319520824008113340182018238063916180445023124539741978675946563572594689718289626017007354914646125803530588313930251917513547904554025902003875963995415246644493978092704702829610047040329530059728066945260582689916563474710113980211437654863858211918827797360400707400847649609200388367504134248248217157612602473584671163139792929424714564838995430179169321056826705844798736695523528665013073392841737177267581841455070404280624817306277426890162205767721884546747504534641583648588018355810198585336034959830395407565566445215864539547599218320451465000866904585084952390008842260825962861016222657620450592024987724720895362462148196904469878157550812651407313582771752684660112849054871003123001316783335531406100512723732117900410213356078676421086347320305347461376374659747891637614913846740131824335767434374152387633276979400819699064876399766019580756249148720881528492720372626032942380645705069302347791068810099610310173118089293866978237003793248931738636144717683955316750989967004619229163599097508757692369074770927258843246070843799546305167904572224016433031963698677075458633799935030933332444874049018442280732049059500937712441885369512343228094005339762780379158723424970368455330073640071817944422093894439346277357622093932501693840683788301509200151665369164327246434686081902712226108543803953831863047536531498768408777144736613836334248052728402046594721943397623936566371342554016842751476611432923188736274117178731094845363578851230255319216192865774990500676465060723824727840325009208903305083929609093546836002741506196935835939035509103808854275482509574823462183416657292084870157837779329142022889327640201581297595541851259315591471243083955090682810192233684075953504045299863834826698344727145924048318311869727219956424615872950197004655559526196413880084441224899510413848634938121007924487871649292188896960409526111533371987037788804180764154904627986743575692077868865721402854627990241051327183193236781833413861433280570613033189513666074253072532959312374741164841752957461838087580746242029647585790816669625960015678782217267491596510201750095349260234321407891818088244773156881564683501172156724458308064490877844029188417194916998192485096302338692889342391603487065457581937132499372328896437905069890791538810293160635854510931203661640954127955559213677734630626896821371481743811881401218601334812157507046127666526572443476425081237539498196564301768650742771354857180950430962902284846206474577647441493898427690030537551093335840749059234661805632484739488960641313516387870073812315568186445594980681124834513739582614764443242598730807634001917551873980667643903140801670884310104199045578679160047091328649254499883773592589063667239317302325960194700210727063533030855502750143919934245459380085813782332951366918821352932860485535861053175121665146343916214515312948387298171275297581816407111258339419462598409669570397257787714737236194386729096609679245863055731448659762910493586247337397410215531697455525470062599139545699512364870541177555673241793746061012645813590298091700237127610008237932534119312075210414187494769047387338252007299608811948615022691420399594099855027574004053824865781563550122466962478002748616989529921353194033513980411031285269036969866574887681388582124431405694597082580174370526362665959268858486687448194652328125093960279516985149001952173182797674079851489548061973514123741237535916807885332762930859547235810558041982177939227713805098242483260464807310765629656597918844179425097399849747008554201646539010169258454747081713681980649821459398452543450245329517073711420096353657443048474979231774726500591982892324113418796348366800344073828419355754527021550861094207332507107056530085617972895741593969505603046728945361795913499359119119203908408289530385902932702128371971043179189138003152895574984827007707481033214049983625242246477751141605033320830867865252844497948300846239137377071307980123018949794716020597882418314550096993403788778158147055556982418208664156212565577896064818356599595913698855712984120098954884869185274044230090079048458189892871699247217481486154055766232099345105984220991453613005674622693459476748254525337830595515239319555190540437908301305382130084022268181434906850272269484923404166525979936404981385102413758767848979664625567166295851112781467709620879889474987027056507013526799611131949957823495082332069025899751552380253950323217382074167102327542058638767902497009542970013137547521125486504897476091541201973557040331101189599268955694412567093960915343444561043703197265409419539062978938775737219376222260773317624023759303345093304912357593016997993509983242659533563044288924199906197154225405135797664752936997647973334440815396931361695260500337649080753124539706622153601274905879524785669017100891577026603103959003502102995593025871021104158983742051369313424342608142807313498556541962169633792660804673270148337031770481695721840339092823500915678475243333108037160195360963339578816032061442056858900428244439242145773630985662905213231306247988985546891123352778962903443217490306746906572992973293561590641904881454365415856298468891995364283873850712250301577690328050373532858312469810216225292301771604151800199923793048820258287190742109739930555829141050034770517977611476430346127028193765107988322900085665260366827348036086807020210448891676428592195312275740931158793517200991381716659915502162910795373897655794155718918451626038601507032239757153231840734675676155767683423764183643487054486251749370366617555315696602105465022203685658582645258241725443465181525081211451512048702190207750640341126041021529767983699401841117488250726004372707403232470837755694945835982328681517880154552643641086763737504653005155206016016757565803920382598777301970699255357444079591271478408900055886924902203826402901319429036359484799773376670815369847337511622705651434472367430600033706876036045200204930969178807771502723228396957859756914734747628305418897590250529378433930698905659738424794711909363800181599724255260774870876813671562256531635871517482705095006460608783880333486506622639517038268676602014887048741149878800583938039624604950921366369927216010128555392495554827388093016271818733393085604305639140962767283760928765475636253853997981300787301895314188070298719722560337575507166942068898195128961435197547390754839065739552391347322206536781094541664276048054430885431882500903145492983749417537835176455708205852990150013380674434392622539817746030397320337959492879533210225222988709663448489711905720030599188960792451379661451048524297019387285306999001052624274709728382850256659140383851072676137727673104390130701994955416115015335085417715310122195764288722087299555691071243844189656520279029281756924335626663036498184024243742846638437500988362161277195117546534685420743590700954806940668012569267530406108140437444909633875378148097186030740324127495990918068357703422143646645239876301885664429224671599193449071843088027068590770291635034704145331892748070669619058725710503007514323723389559575770181796026406824183219117130316389207214889558455824679673798935099927162695388024545017283708478250426535031811034546090047727272238149374045961007803139936883448836586616329326588673270612274074611385598970985877242645523500957772657779132507003861579935109560655802314124900475672873973326989039921273671857004181625754708735255563032658455955689639887771978073051629962174514580328529379364708749084489309608796045627804270659054500280491621535019512421120935730458746938583875267948527369325889381622875770148190102859055330086645708841751046400066919640664464668287151168613898415513586448669374309662791799136427264354615857890491794980137711485255663690130137431731324510113818746419223924930647206049088128022358518910165513438796300044890232150902871133129968448708094237909804101839901722045847957335717011014294994353368870712442997884003067645030988233270943693356683763167855330598907843129427675739561761518601977270569755722284452981666575939472465949996288977183565708322764411860737169421386403216581487636667503712775771145116227235457373101475905532629322467188639190970078678524037235444688745289546867720075445950716236309246000896080937967599498370729594548671353300542765756394583721250790680794236646310710428841960570690451261574281891561561885601680504399900409619322693728717969896730938926161098684276094634085062282004289284730387760446072193553668029108932901158562485562062174479455262409457940279346364630458112238210740334582153589660501481416053356164426294186107012999074346771143876290770629808535324494019167554948501742049059377235808942437212861210211244756575143456027849440198243542411294300346455665191273258575732812590592480206689603082411413248059034999974716668525574186764658224154618269435409491835424689214033963335060656358947587936972609133315692714447270460990619048277906097748157128792020446536801364003790038247391359038763163661879850259672275536640080440826732928505949647058168344522465233278216847461976377008655640525046810039048169337511812333446474005917573567461475567773716213204471783213079555466790351738867943608113168223990039745208784989899658091820842297787251949316180751788682959386794407767052483271720089683458914356163472057640064018960192645551820037835156519098512053431207009511747769536114628735078085976310106678450742358656054168279402888867528866413621638934233451902927191266759860748141719408559318761019792765566573079466912077019144544215736652601419106441307499392945479219416537636213031533640197127455217686221578204316642033785934045087876116702455988872921460162029075818441871943463324476979022023194341732202063565348464009331065729281450163343228761311292125345174516433749919751925827321709220460422436893642991653119869218435888832002378251641589292599002750440686214936733675030465610067204699961877266739963210591086489709836121741085399977268616354863265096879283180772963249314634312163853343319865033667515342763050376497648240716396058686761436090895743548415909791068690353274256967409475215146335790912492425099463087243419321090283648099028498341023935692158935287530070712096472596334188312038425368557182665066549580905392895194370908535155531235335321596321822460167821185010805461106685978443674502596773083419673481121452549314852645154889859226746059426293669883023647786659315073438251317560367504192197079395955188876861947714339622219972953645689056666068216975559397918224421118542138654261010600978208319085140614408960185431376323214252378334936624719494690870331919732927092586582230074425706830012518661798069369388981866366512630034654876514858780375458197937036926733127082465141259748117974480106020790304956446694370180888062111003003623876727837942753799466857116556097872550501813514398087405090956188501528708487832310839870832448390022064726037987088139362131341962147321247866394067190005765265380712200553164702468900929808885502413260950889778721118103313872669021892651099171882496225005044314192848618775584366210622658127407825315938585587174064135841970477193068384683091777720645018345972273913187173529264188238843481949003399979439892399083793819587794705521153006693887091213405229123738675841835842711075580184956050813446789740655685502618613586798036613080433692591667674721557447350535415745535334971916110222801662486670548359216021396689769088425799435034142168360958203341020487835970822191317833923269748680040919717338069452479148124516646541934268984539664505338011275536397079206429971931493404955518735624478876461277028266362408279513709507216010521370443438472500287145938925881127231757600448617104936210638375566813287352303362857813400471285047314580174410829845659317630150777828385451830247719316331933699334560959761092778504284424040569906980320991360817623781827931370480180394348780020723889647387806567299261864792848874820061987245322459281807579642034947016924336857205112886895442068616295942031343135979950135641197098901729588161940293547049422239410484513265726826498533872649279629754320985841609007078317420575774173779002390340219925276241380152740679352732516295545547146811954971350215737798755192568481040539235822561768710232133538855762921291484196838288676393169234048636668091454116353548322196624829799309299697912246536269128371303747865899250538020060147705791228279143314661164316292014352750383068081620261010740022838383313058713131769062620940092933884981390113737338346726367474558892142895318937820581539955766734913457346501468323323364040389571631977130141867128701608687236398666388928611902856111904842068267909239675643031935871477576584166783680692710422463080863384710602396483638172439341244978763953252048281744870765614547134545984820613754544715777115149525615396780673002824097560770283766138346820853283822669773837198761554205799150576498615335240149160650721684455880158081072711541703392988730361330052470084662654671300012789855338285541891268679476755795849874940213687462726967460388215895393269764730947129243560311378686189329419573339843201009938625852318676918610643320094538157686468965574494831046403587283026934149565500425948263280109534998470658320145282989289022490052620758465206273404984534884107356472350153414162557176263676186024698222491766965767538561095879526480813889980788417684798551524908052787360501293596614816549639081825894157544562927561163206493957708688157466780699339356679285127174921686843757036047930823037788277149034056293764930056171711816844089240040217035332041517756609833207989138943416494423416528730091816152912385912707340714225461495390692661340274626237674794556314969742580033369902743095202294117556652818690649899103123520137399426737116347341178954784310372030726924858088250824460091266979973956692596540001033079475007795690526377262140679557093781955774769977709288355106309272199948477651019977569399703472004451028954627798710341933345501846583472439471395540647328583571508843493622203054263831733687449086327274437082219031204873038670286764730703348314550077986648798441619480091563067091260662540002859690471855020973357156295261910880568394577538096505555414225151086551772571741168926795652895288753573943764301490791930135732038377915853019254631111763890021203701903700236643021529559722279348478824368662651611632044935269287638480909652610756737145126137875437313557434099422040653052279688414782193940095047704599100648694844027084158889919298203008856165276306161650406218880883763634185844691608304243019316678980671957445064011461416974284141864060947834091949411839889663066285125553160620961700306610174737581336896379544753325258572075850231535168683247490357318090221529239272554427633099026497893611659713638625151766621205295409781691079913611747664843751163632964365560851263233500407189387431609650645597227893188185917297007045620363482626123443983494966679645349070878286558859424936843633842880270073170753714654500086163616520345789521884643073857287855661911386043279005740496301407261174643714535943583386636190183646555223573451629747244833164838053699700642545589421901996546740931608290157788825091492106546963913713165445274816093360323704660765227256008861882722092209448299527133744651056195826383786406457626411818730116827465032031711028563602324179104742760071192685313865290137846914707438013172716972455446440296907277500358482152245918322152991223343433348067833313733016199925657002195922682079784591720134028306201793918744332636479627887052337039162711503908831752515822065525768616384175892670389938182275933877347114409693400761408573074631659586822910920046929238150443273375449726554886191287502638126656218494400270390754673730472564109256072853357968418010268791011842077370811687931290634424985891233834849260765137852693931620051281675603124522148010058589052571047007153514579339340522058810103285532102658244602619531763397749942644276635287634694056068382660035209368260163019646920656475028543609545542866669721293823465511254653208322636031875992624142933705536277198492708093215447469345080041085681663590653306914389719821836615724468199907034466880796037474239590606820031109654149941454157089674854914850691396423926678208598722699643831291347741965963965715804738988786856486400069620396059781531363714648055129351487657216535292278723140424032186598095931935952947297313848056571694180576371068992892964616080996568485477422910257913748078361322979563335136162280640623475543208542928963916879756751038503485192557036950529098792076262073816195465287783400149871612436637499570609865171136988708212873045884639698271219200917441358578830771987983981711282438084788145522445022917716642354477930001294437895598067134688564262061834801933198721609666768107668321244294339835856746867323437633980767125404360241673990639284943980973791975607815230910368104315516638562750924657078410160907260487242666023994195135357089276536690139473069313262106622099212974166946727488947374641258938217808284420753509318444686710859629285834633812006804971407209141423592109992642035048517900995329358312003558300664104473107626020839979097029585921579836712220028431034707002117887231884538819775104894392770265817018930551629350355296577035355753361132640165269100725080764897258523252252001218922887590523121917959074963443986880604713293280139110221726595259155964961475819861645367886265556344481056663799478940351894931582134102474395265562409917106010244874024947473799667493542474774940290931861401209756093431713344187723826712250049436117498064175802133895152846222585972959137133967504595801358120759971616683956086541449436229672818461437497436699784179325812346537268926467143940626691217477212386742533897530685639007094921311739725039523733626125370590486708635898433514288287736827636708697083260536137702933737090965598795534840679269277217141689999389029809565250081856401400641902294365691644671652975360715169558017297881214336008346292255862176944759100448265783543652327219003354914857276983022990353727750201218700444303260350823262560184117393294729247042935762877898016065716015030442655816038348834135406049475285169393477171811185900594898130462160363815016520436896036165097261861642303122749240181829634119643406575572758110613248160281295974572844444073437061112969810998353017089202136756112841765873822659788084538600778875334673561497218247428182224000838810278783820286566667259310842628204273043139651444037078223521719877120869075497453258026373039779241052465220759575976519617036461858919542799316678142938028753695423152015582319245928081322637624530618376902327141113110080590969337031093265945580222536839249939222862233692886107702544883825068362676597631036265225926210495983236897496023388543682626640134946342134554728677733089165008098589577537610733045791057559259782116027186958695776563293939256598114968126161577192336690223944211447238322546781351488042360600161626068807017789719526991566715561318729897524467436617320884650934705165672572475877829197610817602744718196791363109684202567369529059570155673376208008232409279693350287709657095791225397196753705057761145977426390886280232122613642567083060340936376068989667868567399490387464501042208639317694676287817464825814178032210608231999799535192993793610581370265320176665094131333881706527565945347139853044065088732043935449339762912172005038978829606993303979525772360235517420739402925824462241782141936385793126941834891896069699993566871533516184911976056918273376313622434277868574952622770638183859057361458905595746468836687556469018971657511626247361621969665884532138027436467559451211349863004726296037736477950381967258311563288602594617801495916954921520259738315026973540179456451102603903485461747856064906021202285046955152431902515747303315491052310585487118419234116321243387503402106454205057593785750912731894815536476669362108585704762436817665924990223345182475223755330259874878298396502655252489705719825133568098001762304057073241438674516097750513949136900523675816771862277568497529097863456348438258855389172342861708021928566240952847145240708102107006979185716725699964936866841721591783292681474854980750110869873470395192843553237989655853878263768367182740172970581786849101180437096498755468955089616459551342999363005258390615318247983503188410704328746309898837891195707405143059161982353814538223432490950068586493223579729459168454182896146799453085770716348886483803357043284755979458305290374997260997506816825580215655169273710945459125392359961071539761447188263171804873207321263935697927752117811081173254959940086665523545011408275550151114717833105404558707283886613040719343608311474415325674556102839024389960645682563000293001956765924047660891522181232065514972392547097149090237775005738024436158586959667088135109611546323934620823421012744936105945370540717846368447051941406062352640977279485771011153153875335616562205610951740502625225301493643534107805038775435675978951330501879733859737953903268621491653896916548490266641716290466683244857437835380406034203063688010600999520108122593090155452638103253306505677720883885789678943438955245799832707274392122272919480062312431479307786071225416387854581980403050453715134549398571796010237965091845009360297651663641724368375348354447360181520576902850936486342832505529406667927880552960976929485993099778319622077554526726484975352043536240952713975022612209813441362632210245378270895094117032685476162055019190470347784122844596977555589774103595192509832042503002520819616614901919201722225794172749752152858764294926740492589799183335110164283628256637450587621745488300005498430034026059115305573469280006039813627687189901664928886948544170457806735358977071273948063630930719236392971024330940392973909968654487657674492194447614541608044725842167278462488137263385454265523486863516895883473573665912026067218300661615315390135970281175857885216297257092879766828105815800855280934216745021428827358134103671507376880233643395332118495499714963370465593477917767081474248945274879985019360994479612705016867583351414097491817639789200805203640738955450658882484948810912227326763042182876357861374734578936844157731702033870968379330173016692221986758879856855123604459666562705982272089808735360903153102006465270402172564323585063258256747196292345040317674747721650117684101125802794097936456299042100645900154980975307468714017519795763284247802327153384682852454181524609597076683808356029429399946024886074244285061398650535842166186546472276976093449206609104623901985112639047964611017143329596316574884758875063885088088067095701117057017994884504250667293769374312141492233717256063394346243919638987155619049201307262692866407098521251207990035627169193062757746210736558700868012206786156161754743772944581214738570287240346221210855743400515017603869157985222878721700673239516514050236835490529825592996860783117790311627326202479646378071199633149097940412496775318587002337292599979725536179394702699714053906177076733624782314725689299086533191030034049513325069194153896179235509504760088449653423221107683344221461566006871921239294660477912338552068602335795034626727778820365639695284753323295148780303990487214240469414136385050041867225658787028370751039713943836127232453868276194881579033445323178674912949511549207517561372266144635061574501728583723943764749404906090092828451527757496862955422400041344640277364009608609509255816055016483857206946251237050646063187568348136904632912868703244033619978207643169069781350963093874201171001710005311782835377710577097927845840017967497302413425189137861922954331183102177868542728805176344869841816293860514222244944436987317941920001808316812466086715540671835374946100155716674350120601883669429998289723438834844524578404522928643776086077810830763413754470941706201073665074866545598575622227028719767384294125739616574722543258205147324807925221362408278384599857456648565871751381813721871118603952511975762591229001888634352761031070189262698557447016086901916682095529483356095677361257146377094545081909282004998251093242215411311251193393345569585203184519098056037721122072965029279885301140918724280668288318535666125700569983257922062851404871091674947930737237241965974201617746757085896601475576719313276767450958370722628107791612804252464847757337865079227644728207271677926452473754483757889878288236351054400142904247740878277755987709815906716803481671376327001507862991517184379928337682873414436544253279946559716968303614105418048864465656060667791934712302728863422762483222565047372502857728015686147233517306091200884569099628768254153141068676423026711839028853818883085665273780526198747874300726697405035974952566496175520963921896495831608022421259632692560709998826623321692609381618307188201494611600565909360897993623763704208827778681686191121981892110128829447815906768101943841674961069274374055398449948878879633612719592506928909592510922527871089357140143266384746624924953047227091198412679964761464675896639450411688099237733526232422644320921369341426127006905464316415242257449173192996894556763935341921405009761280076403336804276535243230645772883391732591832347468028543607502198459852323485643876926729930545628026488469761077339427618193898000448937371811592743234363391368517748128304432445435950170756633586033861077800888833759762679060874360854440492795866478508367025284579317222574253144152503306510363570210624587857621292134030188471625983972407903046508184111255429432716106805513021259554849611888779718363532597722341491109386195435154187430984535409342868121339970909045111693238413830478981202252583317797711633684177666396686566421081213642526229991669269545944243976161157434185947764290094744560082930861917882881135541227933285862507898239591306367090196273849054998246883776131174784368788851103053913602316179687687277413427388296815090567242670058291893691983845180059145658084216401185978998921811238966877138697832735730043857239833552469350821472247017232020592009435546438059783130119552989426155436824132677658251021698723428552871234159737409590734877148929622272229531165668522235115118866099889971080053214957970755740400394461147126920617487362785271754327504093712576505097138346695145385694688912714064469573488961336560774804467360505324535944876235967895394157440115289959142196788441240540483375474378120563289364165160781900060634569867132579922723737195862908827039541328344079302765213588657714535797959386896806358135325109353666391757563387268929937703361748790731995133034760509780200822549048670902679872383131454503222553245380127093936689417646702075821469841643586930889715446580704004995139488465974551194226793891329135581333148765578366113990844320088409089930940273464667206145299257050321416279147344982726053312815141649774997258695676059693528690953547580853274769698481254336159824412459424809143773446640868428383922662014768273167484523637156300686143349011581464949597256245681236027831960414976727028392089064291238081789469161937384058814990410024017944233760928964812604345545910400647186764078658038819751004676863662088051030391603171505802762974750339133230999856488774160399563056773572559527062486209422380501674599886200535478367094904658142826634304650760884244720540868763049168281106294911636825713474502703040766067617948462754103375211407435328112825841481690373220488929892910373678293831458648761980976237957708888783648783253365306436506066342214500984213310515181755358202262216121903663383871544350224014759324735553663383341324076502725728753351980929250192695161157790358341354544494490160800774630614623099052015385275648581571287658749805294999489721589157481363487018061623370307070403198856337506574529065921424827490999182373599609705884129025043786905247514610748972814092609904664037659254516051031934623961461038919190136264784272875823910840904256803041190025310703179339869330164759036166275313496328613448354625503192217136074021988125446132633120088816274214842132211236413605040690666525645990549150172024669723919879315422604982328700852848963649471908470896171125337367276109882980241431228639627430413413224284923805133921906119429567532406582534607886468724543298188763295263072230585186166771363730449052024483790920808192131648692082669526082148375095629180273731668150114940770999867759002750381019845563961955576096835500472068127050205017939615090321959667694001550412863010084421730087108037125239392692142560892088809553491958967415588477804676024189098118934517726819377431844901022931036352905108134149199583158030527268618748896871329914052837286431533886867820470983195312808673620975604506076519027475167115596583024651857992736125173495688435333584444410713403283193784781956235827997921308268284328647926625855588742582276197852351768000073519847806264957323279307088110889450262522331353963352363995831607007884613083310963051723115313724422706978286751871206573582901725416212155616029876403896577758777227141126269845631209502493820632720310235885339049381142050330870457257243980726990166939156503961391441752214484560573876947386612337728672679972646474331128618826159574308164438754599163985073930007968395142694911067580631544705646788782343359012028588099611261190959053953111023360678341766910502733746094267521646338058777362733625644078349160684372569145806909188930801558593622090810966099553122021758673875841433419543184469406715512970509949678406483351840103418517454685976793742800278337149064303124747733858639027457289548230400272533084457261473933595707786171867296540813321761128190841349774389762643020908117773724349676066745435545556627480097030347412590567713633474504736568273270682631444465511440306949201508489501591568975864799103987261909602527986012705565911464222437746645119105683423196327134601811015149405368342188879556047885484405483950054613098573463850312339246869674100014770013256418091645010208116225490171863646493089097858482009837802928316740007776183517873951845493124059041550724532230256777682985508818661836589660869295246202994030545343143360355866840041073370575755792093629151605655072523523030033331558840780122158340070800673956916114889526237854403463669171578335514072610726668529512780318890826210368610811750468797897336762302014136234303487776002237839575961870542710757878452739797805026791863371447522001248912421643454233934345887949343052653394239004369940769365575684485755259183807233245984311086124812983270237951362530208822346773232963898147143326427635487349831369879636443333171152705901643359129911284384186572994773403783843320800875863020147604956380519918922921225978400863958445304933434525372179673696867903865330143996936891800384347723934909915277668915310712841791073134112710577375682234436572030832658281437288238830309617153656606719600597989211281828559590795485483609068060871325219406928690983687788483508803363787257359191642610298604351245073198251575779631649090909559769471887315226807066474713610404825272275407132601227683526659732138458655788780423831746587673070417515484935132584371574626927157258662492902445144826180565320256488844680064363731280320639686593407749301347207798919205912440452395366649982881228794279208940594961044580950720736544058698618740644272388692098107195034671182864611194363717796800475238323550759790710082542063680470973633585789498556920581803404116743199589722829536782229604896211355273546371642998850010658130294073658074716852823718265993253953057621906597858942031083629209989372441760273981397475850049668614197867928786448807171972538568965494359453111114720681823620226263009652211048678671348362535862367703751250429606348349913267836523156095765962200138538909660226682028006713981080032088260380720462673647069482087649586780813135018927792856383198355774560806789251727029943532438812993670881521993270139792934619457434069977608517988312883564937254513052003397581721489616693680451517685893254225961904908618851418764637755257576220730764452643719062523652910151282740236101036003939360299414390977325726439036799285431866908700424151514729288144172908314639802628935337685289688526713285521106722909922779048843777577949195734945472167040185215348857818822674729788442488300199890365191774929037596266844718126712630808545561363495281673295904591203499976251794294082574241899501187825577629004513646190430373663321275295567067902742656550593545147970990561243390411748549578108034482739896325670233795650095945946998455047013841242840368288341651992411530125843427370663785843401483946380922375893348813529109326153981654837487500072524625843211113812620107020068968756603797391965200467573308681048306672297523266276768913398832277447795049822259994735188578054767609562357401666170606876929280722585282484074301155992185623828695153634457298970908276812051965477666985645481492896084143944336291964451410019847143998076709924871497781668386034620943698630362746186238667749895403742699875507296316855178926229372539633623457085463108645852174706835600508391501418256839176276327450615192603589712756181485279100777156910902491469586509526351057462018953771976570765525293211298850821454397319022726569974329670035541663601593338803525612262932390993790476690930678969430031951656153153503343259132709438281847999027270266975284986527664079756233680034071662175674770257428519648626077162192502193313103248537841381970523085447051716837958782301240825781179580488451638179159125036801869980466043342629093660415301655980947855401902839012471597634087158254122657634966639405909922247878790822010182777196387533707863526645460872768926879778250703346105194416348066305852650856770648689109266127256699567057153701573945877533867216363179500272680512051703273136015270443489559897590149035075732987332958977584890201532541591173900354613909982195863020454141059997859513962414488462819085807194870871049936900231319346921800263072637319903773115076707377395558009926912390016242573171624253119194483246379909065560992863594620144657491686807711342716069009848221117229898514800765369537173026197473499671265745254678058224984177143974261458460529903236188694173191238437858815563743006604299497842311474401382907340366445599738184052862804615546653586737459399391589490717188173703099270442038938277413427730016915158785794088080730570726491844931663887274689735978381296975316535929459924941503184141828406223551806267602993080662426232328899007054908783981779857415909239086810956854721592399869151965848718596655945780623578536548066653283300401807593855763108843899877442397453476143648299950514131952172167382814736983750605891040802830630759810139642909575968613808324225905982505921431018879617161512214240582278456388088309357207339151504214506474106635251499491645731549923834305488315066212538999651221117822346250556899130270108083495415415552987127064221396220271522520851535383610591674788004791035076777610942386958840297243654795514804400859002642016827010449439404313867307370186923867322749694681624038460874912310782997724523219517454874618330602862482512903004393648606261433355605897639135869310526585429406561099628645363142573078114510931453413858266425696163924933504412284780964398856305578848906054898189989993604369217276261799250987821845098973847050635105432659877066713059778134055155611857235167121148371052824801934382400114883354755326917408234486084480510812119012276804982457320355392907654441774613640483805604383277045994562826619851333057354332449339236008694799066767137001008318311725944608496761449045932191483831812093435485127970149054632031545082439229287219060340502018640568233596484968383551908916159972173669220589642779662985725513386187491254458523419116757862069861557027059201490743516800983515495472140365491948059749221972418263575871098316956495750570377385842941064540330004684644694238017494454914187050621130325716050718334087639758142349937898962542507112164332460236304131714317170947130612031412420413046496601805926165389871880138812628721758744338992772195347228644457678121091380940407164120271984228260185577241477199369157976501453262475597040442263453912020301986635730495740337012816188779929719842976237861530822564928535921222640257101435613981667701918758013938475355111330031135895777318202238428635929487562217149389468106093844537682532517960637249467911209353581211787365816428524826054670258340670705100537677834359314550657934208038119557233279857394180415360164561672178582161918987065888342556750491567886009020621122262561368973076156168806227199208344015226360914581793129941886542888388606979510058696020477035124110019398794237454719784068270592378412104536783445964894099214792427042665813500354568216532657763612566710063965734645329774319164161276937206656545971184716070053941886923446759241190757972317468470652394731274610061824047995372811545099280983358540116721726175862674113465760558249034153482127109410076201837410700503900765902908264267061726316216850129755889328118187853320550718464174618655435104143577164962890476903182450384931304464129302753505413679165373854931360374967578267042397154271452830373316528398236401212398711804923257247749129768367302952280546424545045722216350580539252871579923689007361144375450391820704670259658258659373140748386055998691933640430794586557167692145834893002557069101375573268265166980915590053349467286887088402690811627263993484849355845248620418574136105955796182710081650959689930447522063782456204033630429237833261849424728702368440936269390472629902379655944188906031891662022610930625978952644098035431530382419927036953235082194521174894206497855646508828884327922583701896273699104037361516878641130489665276904597853669558608714355891656661868953161464469962005376180410382340133896459320615452912842532286076860502036321529122648002812198654157354419882453482217669923572961352390056539569451731983778208995506309548096397289521014553074722777313540361994498322714508925597015329955227329585441999897220002101554311190812329326686874703940684522846978226851847052668125261897600956864573736193640606614904365055844324781340163266161011302167287426111744310751740342815682312929691773582345456319031137281299767296858451491725811609569863689923758354331759627571488789074132727623080595036457341533779042435345455940905631739785547941133151373855164623578654225624151453153610716150994625632816846481028748892380311780857105407776285214217997933703569492893035571892466447925548422139928447941327165861437340405304691436454053595328652780008018148551030094163681317425898015503480359120510567911430089660087935549220045650905642667497220991563859182417616899488076611508279716540327199591719328873423534497246629390393848746815059237435590887812657963697301335643866038329584809309423630141306717930602869145218375060739918778795220413429948198507844039633357741501130047392807167187356482618773331758245901375368831120821830842001790458401706753496840511760804544876212012326943302385226177170591043296497055257947137889829364511758132550256560239788101151344791358571605415119029982131509641380109145858170858996175868085500275762198361208010354171334422871977074876616499231344750170545654331568867858184537996528083119985725691735259421004861649016649070143017560398173464032312254852891861968513369968679371665539742603681375888322759299387888324988389778599554688094798608876763448879005545155492542034389547151176865646922669341962282333719939414940346205621758416961279394199365620179073423799567445420285584230743445363452085174426008887420013214627143776029286852419783941956403793400085726560476781903482453609595574858815667362556264806647620551430911303811749172140486653611456308682666239816300980088677918266950183729554196506540970346654411293820732941525508307206856543300239531108064032019492744161911798852354420917841672820728043744124059645521036338407087272053992802105728730408702392232328157559735352419110353769229152740178459416735407465640098153496478908135319217321433459493306981725420777971871296231823332886892456139063213557913616798977180817343091752080176391757242820032781736826298549556124633144428107121743788298776266617356313939874502268238404547271598393265037918272151486300411304592697494296241606334764989689166424388215492252565291505891326028189101918638232265380927962509484689849252167876831892500475185977049556814435937819630724238770957620304824447486995227501155982910572921441958455054440887583667141257164190146411968260909296171851479355022941950594894568693698651494483334062488520980840207281452378949580179408570384591574878185446512359933001211267677869280567119145971639781797105739648690323384475475035320793719952793382726298272643030678691444015280959936724410773908525395338587752548679235486168862308259248754630864414587916291964520293711366935060394081315955125289925942070771289650246315548123121670021383186230473593521122982094156769770407175772601052503262419196111486674048784190049931152951077624456114260304422532446891586514902073474213941883446849897521984833291857751219280890122697598410303223164857608101001513171382696950682441520134058771189680401546395272765781779408633680531340755576690818844179956527510389301200762700353997748475327771571580167003470028009643094321375763548364950262673752584662265151434001359694124784883643557773615424392668674215258969771245296898018598473218799310201436341169201972522497770034090888903788177052438714754839130349312717989062789547832708037086564941854722454510586711579104197930043358721951364761267912587137833402232156736824379008703534352011000617594979113373335976482390297999723424717869501692454886892500578078908517833232232350822842649695375322785675245679774558527309709703723281343962854276914818967753816831858120810488185761343993908091001014725718992721756144927387053639765827686301322332077256278551322928236371923349796111365952777840841926116852932110754909247876415877362857376848429743535780948778725860234668810234503310256607506282021315370355000949357053139603099735399032515232795989342649298653729471317117553767929761084232235049186242114188715816807905136721220556735159393893088397679209007884620925007701969310386545734845193955317250473626332327942394045866288412213737589221308169386096581019245643041421413937711636611483678846804709117259212583695766292351638889281694435528571582706182536682251679181378466244401568080458227189223605429995015594193061251658900280995869774050076960488811925822947793805066022506172390827393266582515083830431104258312426089716934923187366043820729505806013599453353182196858845766266317797325153410271172745038596814234134822726906581584814719587104475099912943978128608434407226618976146843526354357954472435886046781365839902288415418054954361375176545292395598798829587920989973923411512458590914078302320748108395006077424877308221311840557230020808003303770668004323396814473705525995563879293944069605205494456562919413709567717021816169509375584293372257107141158622097668707444924760030911361744939331829825977001558866538638197246364766847997794261411163966602079236317628192286193483028767071372857574891748570507948107016608424589460650840110654830791583872508244355955810813000772822099253999793594830088652659108354038010003678439026611342808813359095016271268504668945205455900201718684271553618258659856936454749593894952802453487367391216590874537934218888266376181888844969290472248830178447005808199077143663821408715408035512135269630027108923239832665217939912287678516386918656151873736155902764546070224268769410257917363921714172913221504589409408639890490148646059684354304034360917118497992666980844428043641154705996900764486210045853909302649424343524361102560656543332822730436102716299569551310376927330195982966699621526171625544610164398982243320150591134661835660090985517005915401854879445104211313193963960450429972523851946803738119331824416315135160043100034652097818371144680282011537915359788127777687889177473407950977667463677461547447299309116438766949207999925425876975132906234002674679627140104683691002548744242485329884939307531460247657034843260487791761053352967254398022994623516862029077742499439017031244178921424059695716326038537926301037245253075901886035228494194065468321853842638792522482319009916485425412170215447992249313531161118461948150258229818043573484173152564338824141330336921235776529501964243865969967000455070925579746626437470083875968575071965589111663835664829820630882499249380015717122341386626277141873656571717628576988226883631788411831863486245510896831857115141777084877922099028152813171570590218273370403964040594846032419476948485360213542298961185817045340359484400012432681882123744903086844978816396084348427111246488801373377067495193193086686193111895330724552354479687816559788382246653788225636518515519004481040362095134076334724234100358254028159555682859250908643087617410294684560916480496887725486331905454395459888206492069834543176062473452155701541404607221507206681313508005892784698595029105445022070004953318779750388433600920028051097224169495471165033895340446290350859928774013082768802515997362622019529263645591040602451964482036689210912403007138405834777654421421659039377474706760303373983874178118687882306425066310206919590591121570376940598400272300520274233185530999420786388635030714003324721145460630268681523402473450041898311014524053470474276789288265136039683859496931124357522055493850819938678323368622242718190505582028183250829884939007860527295159515309720093335128482441179217429572894438071321069273005879113674360081099942446129076934364633514683032872371095098053947807162548683103072197584942591967708191704277341022927468236381881831390250812231708232244379545082682400239761462718580479859734422943841775387829094789338258441277960141337409431225636163850656457677911960708152148832866385633165160933341816560333536578692463730784052777217370963168189339906658581751754795620702075437081325860185862932046262433246053017201122056110844502056676010956409610456407914730601870971033958394316880268012225226210217721852326378288736801204346728179332691918546832010335803098831116737151310328612306220049617253428077488661883384012770768798112003956809979965005160695688724919695739194509924436523995220842393578098479552977641800846849709162801225134432213528307773385413581958254058775707026801606987880820228988948176957166432738149610732851728625317293850775586623156998045427357884771935903428689206063537184502874984575916596558796269323716766770355390353509384277206811465010886731465353377909109536717846854241523159293702412946898048342732879120789230713381262595183330662927248486879121509330891250954651654311994168168873013505686613893366571885974675061295145287000058423369821460388087845323377865928925631692043550388792793839689798703441785349853767848045699645053131153392795323865222443222931830064956864259033549312320512963064801756636159197246396001002545436750636007791034786657107440643190751823449319740234194843767143763449024498669734905045490928150461918079129584346730233594695373915852907195092509005357594756905619416925025333208190839248131377222742986432251770072089063594988209806828865025882146000319281605532732651675083950932684013284959257286433754929851921732286787926016360704859185220687017095390778967066227152859014157125843465476751003231436648613278588082987839227287001048257968754812459644798426086379423167261852577821258800362307736392728770346419687868167526226148316834450279331411023064993876497102248249099755267696928473530269208660861970840894992239091610877145111819983197319494501087222060524042446237932369115873632463667261730588623517382200158903846626404510448402449468386751358084606588388488255386111278420784907842839396191559233037894431094514150138733436459264622637106884475074373455512543735044837108175284048313539653047466244713130696102510789761421604487785391845325811833540493817110833886904241960293500486996724789097254331756802114158051571516440020053800455485594043287120028497461317200191629961415423446548296830457573992313903384771900587061316476314016171470231515148095594904428285331400603618841461725939113623583817935525169112036014239338120748027307191780409783925855496385292140437989268687043221903994918674956184986945019114675750962425231195752373863620744485062257487627222870503957479461331674473416968875971156257961300800931086007138147927837473777730674006467157851988274368213156347957967477571511707929280768900845138756106670832634347848138630823825935158792367628169771615139364105214062314596970291949570082373680581001054482368267966579575733705085646037967573901052910668481920696224483287000827644239884655636244837857703631276227729327664056166696028801781377795720453949721944997186239345705232514470078820566611684867352133502013920011001838795267479467620708816344529868035415102287713607704165888119854304087384154999646120910900592619574034852619802397058192532835876605757908692811857522565196993937883398473782846564033598233120904357237931153171788816282251983444471276001192364630343241223908683523092122267775178169987247912218766837297101811375542106207450021110907721801862958630773386264497621464358857602802355584703641723244911734501737702847149109524929063820660062362088608619638051164996544562112396482868246866233997287308843700295149635387751100310364433023614508984492756424294471672646577852976130494075741604855544609178028863582345487908280267733871314700338177112163761812865408526598583750250456446907331710949411395565064539420380747923269099070774531540456731699185706330577916246850174197639027692199354812624083945085970666064310470938250354432070331965512928594169720674122467557708765106576139224798591352549022631418453441755904419720909401718687172980734192235305405841727518014727328375335279058080037042056220081728687103266521889732422109380336963828319848102752281420619105840795398162178160928997081692854978932134204733410674165489461239775465112137513292983333931680698230744770829561431567231224174786926849296828644991421936670813287072307381615148676874770628390726201021422227715000179578534817777352768469129568359590791874820666947042204618530720015278880483051322615354136348727488970734883577445440333950178082697586236443726607410422240856668695649789782634037429855511465505595965161119921054530804040782497710057023982192794384981223967708810258822859568558645285076207971871020770226886867096862927620828450988081934117276932165075237874587541191933304972164604135587251134867786522481685002958868555274467659156565377327294506737529019807300312465173618386521631525415149266317384389058575730868741823813685411064523884582647851664164882530192724025657949547548450524244659137926588982843409168337219051603927841290091772589797860726498051861939314952706814025564347662157690064557199475785798860680027851329479161201691365135435199285703842132259744727678017719941151271998314813528898080108658640052512636016787669225848880913457683758685718762421209008883023939488494819293842486725747058403235701886291127001113373389097565131870612025840559221877139088681351260123136939815059313067752914978531789784017066003323253712163181520570340826933775467360806174027114619279360923635856519782288345607552565056999670050710637420639228610922793400402146126267640910310389428727201228661654983656065073976948342874295178560243974035917151322255021902965888275620031965119807611097960034829453179774123811067675986698669204014067202214184177493911013753004347598558723875183128038198655781819871679040052441379420188261933849363555885297346302804012224978723109166085369027965330157128426877686614682077581981797120001925140998275446615592590865452720716727024335110688534249836776880356899426839826124138188043003641749780175146145813425128626014782626007529410972259844732149016015269650391132727179519710205086152961994534767792744749981698907499377154713467799448971780779932549065037770962772314305899754089090936642955388207659772027596339437017209333342293859106774099237201457859798010219777665976050713132411761480616225359551905840536703012377310174653357007139774147417309018882701294122399580908494502608316626539592264698573974693926863995728592511820203149147244533155008263970990128686356029875324499357024886060120041560155314698295239437114932297558665687872555596054679733208805203251477198691412613284149093314323352481175045338482612439540303120225797782662637238442825393578076679501331756640251852730527823637115231220528649823677809191075133298394915904486405854992693290578803301557628006539458779422992524673480398432278876855097863789652467994941992125649080425385613903083174555852108284116650298485369716190606709120302668125803023855114078534753712157235799180407659582450890033031609846617368218295592691679963227140840498379223613877347095568054082161619305357387371366363586196247399699312133151694932204343404248919312940268389321751258096492137825298799846104481195113924504802446783972827054083601863247611601808092887818223634166718295252368789325259819476530105376924731182175134849352175094944289216880082730697884900679081978660318400729423011856273922352379470423609171857740394835391159779547134553725260956620968040040877594682948027698183246511369210895991530412628955606582248635189399257745112806371251544931665118866123538198051772477196202608520418963867024450575230418462529729902510074917485732499084335178618995819702118685353894079108001047989080949856289570816545222571523614991627590521296780771613303309812056572822928538200796477564464692678966169539184160827092718254780134394479688155264061167375173039545736176087675829327657956695881992779931135179702357554035968504998856344300687464168366436601569746071427264854159355846522972087340067509694290750401772942706848482277734987261066143103475694636541582715229053723071153539527403813005787065857125045317739574756917018855707113289248559918335666862962931465703508349577396668255574953097584413562095588138589642409884629573010482953848461627581319233545584218501408396566217307325261653458348013799032111922181023367435284789284824206685596483886311502582467628429073755361058249626377565041582973308523210727358190227580412314350721176872990661033813378000364445851243297718233688351610776385282932018669224419195259968691957829647824033382229288157159209296460488232108222621006608415294415164889907519397319493038136421203173933743396818143744936659132441881914495293003562996610659226732485964951955280509014707761171996518001866974356693550073791664141092441442654191558342755230078543501500008598966426281247313576420133591470997075257172075014336130625963356575680370049142775261107296020649215463725022491597310711804169090664666155982625707382936594830671032134762606391442329082061160448972085779859117008405844662083647130833036010870075364475794121366560871547908997794240840405347299758011918075262798460705480990032941478928918346716634212023598791077131229578472046333731254248574844571122540559196955422638524401232828994873083092800455047898953529335286456800296418199320886795260364258868346894646213696441474783735840613938343076681327722360533529829607105375685840201791545684033256695639408643390477145095844323219004758040649222138861180851666891858975368193705849913175053442255993845804592936782349241415331204992805494064410925392186826870785833151417517772069597354853330112315764719639927154656109652102231474897056318329796287308255930359295933057142568706705154069146361459065475927964665350561951354983588826490357775065145391386856931588760012456323533807832587141310309984117179848276320763276731307433466041185371918990510124801481943667699084379243744740668322118791167214089506843340444155246940852068605521404509742986155010909914742397793323731325060534357617299187447343960665679368185888402568684408691595689125015260390772959978973624186389363464251208029589077661320433745358392601207209939368011190238551275301937985124665849570346663241876918412817926477611319055783150854631177466802809547725684442989602452684080488343265431633632603508270846654803070880443167871077512730434753049602384627894797892918236282346513929082249906903743925952981030697286110899646337780811460964118536771512107019042589328032473348837110898650243889946438699453709462592761793289763600611639088140467081350180362603982858740639087358348331164502419487046805856305583898023138852993903795147441574061933807759028313849525476039164295693894577057467388150075029800106262705507678195971269793690200920754600494115145476718303546955172940497790114884968115168729643659569048460935280495780720560855170699884834398466195136493580204980314665699252546186752291140011909624134290762049858894818311474133803035035850087015850194519949428677368479491577347055470916550933489589616120010298075652802348993410746811076504993866079338667160220605958294649553010637822777933083345164716371866963538892783592029494398137474806638670482033350170115896032170542687443025787649271994698079463115653170784781970687613111088800648336588095386757826258185815111495296290022731128869448217990692429545180492688115646742899745916006886422848986252004364150193397805037428283072037028899526654457848566491012733359410929498403624960861805310997968060278116087372969543819981881384380295677898450141819478431422516698216081284301003962962050969808878662824856307096157506802959937817953604650220991435645789442944104366094289744628456741815208802416424419031470036240519276003616190237715316279262823736302852961729873680338733809184283212627839866939327479780152271436895463206189133912679310788961099357312681445244050270608938501725882640264599459270485447923092304490796165705176755974624223190677531125794482802929640313952357068614581109470470641543477068273943648795927617964844312027123182938680996335736509640051910576395158616192414303405371993298077751221445423707787491055919514819293427506351661245868745549935783085391584748846231441645238551982228838516135736265355337116748465083990854577634350191342172069404128539705645282367434254152781393918563591294930467569363081119934467029655422534108707703827755495743137520109088819241748896997123091659443980349143116231687996318303659928099164800645947635583643610223605607387931514398537769266582488420491842357427838996633960457910780827676666200567899620772151550277597012218653971601005311296434762891900429049494017295144874155750838542699680435716679466043798997800538987896393235811633576379289956989406995863334782603919560486061134617616508531022907900561349394575852291726242638820990152181294133485879022638316340954220564499046228975628761592315244134719174897559351751615161653391551916260770265808496432292405371780256655275653210993143229845271292989999694568076822047686326926953138513309804172512261512301266581685987357680552903384957383567046917139156873680800390769062991519094369770264604616806820776825034315122458433913323079349758521296206196826939859444030861944073469980674164350844314898359532547778905524057218839113757421193920095892360208245771053000411952988158532190837122880726573992648729863432173162500210462604190883821637334708858056881687198316412194478317856218037051142861541324880745441633071953727857242911623732805788924158541002501847661000256206372640323108224814925564883546621740743668377046594088908511348260829727192533984895368723401445756062931904584598831867459751555779083544700461095572441674573855454748866641311340329332505407437376813840294575539035120553628563180155265296728190427999013636599123490113263537241417883397878769987032234544542997927425549686906454517558451143827146848903977334660477100760407200819842342412984341046331540069091646101200433322122537811081926597876437030931365251265356121838628945774925956282271361191029094721646020799144307404641880543210472018844780984360182807164543493568983158368919471090280958705991240591361265534853909095982212360587821429277911466424857570640346326302029955188146226609358578884253041368781405715220600965248497470101224353587658238079009982988976229940854504650458092107943088595216151074543710673082304166306007650404533056148640922336804596009390631279091631323106366351962476629719684085330942409232444006203031218747071238615989492067582745089154722189985364223464728828698357083044518702834858451468872105950991529893282350896880963061566247313400853782292576370899026238128598238129800657513727341229446387244092883432500413165530625566675383785779991372701779049981849019340435212339703501094101238697356881289122155703600071892762984970621364107806207263593845880025778225946024456177342704451692061507805688286532381560458436944589261175135998283150643554218488124052910769297601447474310450711643916050584482215451676077688182626886308504193389146345628009694134898988220345446657662816082197608306700326569200331790508407215797289863311284062445092165250250661682068251419647723178217199471056725609716439096593232285447776703309182188339313396687129458743716028773290503634302713061527832429919035892289406158323730029200147300430750929006826678974470787373847988788035364412046077496067784448463177906044883990364768018262517141437208337650278565067752289614936473387206074239782398594928918331001995597495579365546981733755160905992898025735624865161689231578488154072128412240552085405906749904722695674621384937221219777830238759584027693830501792833386730837071370081474820862525138989364138827887832184949056636780403868939375836694179515087755945569567453524184750040022176708504174078788157190575783577050006173513034553276460638024337176010028660810008791335869834063432395261394550337747358413117735735669602784962785482459353170874381705227680355711516239419115853739608303989405878182806740405163319017356595770485445955008885625518314849957136639103046040849646187173199670219917151638819083611846282700093133593556835381350139027659652910404645920184774713065279498033223611650262046732789229033714379819503275363606153849108639973881327703944771679521432226470850571906479634894481211213521094005672737740926724186368520107687476532057844945815026479361942871499033294258613113936091721206201900973877179094317037004276678653600997085997377722485696988099316303088045569781886113833854088119480914424932661686444862926074875943542589364951354506672678593763963784098191619123052395565460279550792000284980408702352190888707164961652718873681051096552139126830515726179575330793972650545165000136385223966928219932389439834125937037063645908355055210930018019791765999439373621179174961077937658408253066374047290061727153193884469374764092294515421109118465924935474540703624176809712790994359144977379343522000379379060391181311364027607967683114800214463113092252772449210310152590802827267657574642207974496373527566013270175097151654492651677969677671699124762225105738620508794625833784820521130347813907986151536977636863487268650251283110084571316615001812941738778502723846563853860086687743903159148496250484290529633831728519612759357126877437291204218673013138625577991886355932688057682257919916047782077465503098823803961513622216915466068505720372654712263114489158915080418754399448258981932688187367788713745745738784888998754670498313744721232668006649419982509843145557937469495385856886825077453854069034856967589957598057574503548096000551029452190884381204552722701502576260009124308654451427187232597967162689631589461962366495238100692895228623775417033373503833581209350104730673462481072045013605362850660766701284233168196439780509148121978584984121609787288988107561067864434869597818204509441356357367919274270041705476913526108261068032455733487460182366766347794995827225970694762156690447095617187106549239537814085048920499800053677524052289896782181478389356937722345166580669463167217773839916793208135337516303329307023843580573409910494830723152713909268486947031105173102829269197225014592311497690279154578860664614361725566933262365527688633507367795572592524212643762181837075031580967862870539623926612965336086918346716505479510800017907136812243329290550779672324601866830773843840752601171815111924168295107393560550450971275346640090640740882256865489326625458472366236539338947050739449747414019943819194848169391892833853446803248935541233068441754209899168714556995281329621445774761224777900573169859736188830013545563392274696174237211492216940087300954518069422598044753574739950682818428621739934242725125001172585649467937209987974869032896155769980917966725057106285801720956268852643492034391444094455435647987261803779956698978198561087018141026179536930947768818325962555670444426881377449767978404312988158097441871648835552568000350569499828920938365787123313331247035582105579031412844218581804917379947547116860511855130492097888721316058666080076958903349695063473998358577862594579063232507200027312567060413460946063146791716933438005084967091911679678058434554648445025681188355270890843447025192279702048679290813421255310549877834357546412649896310708351356364045893524854610105152198863974247566347197596891267858760641635338657802455500056341711967482859765184414834569411107808017680578021369414147848494343851926102202707644092246363493477147192572831823279324421197450811292844239727194810468701540909160625634749543424780590196737781170188093231472853473784297243690828642952410443620747316532264868185508060832420367045576404209212360956033498475716258120692728104658780198976966712398878126860329881608314920785361640510511419521097813839360818732600382955894273073180939649492462531465354712501183554609885902351405020548614541687756971822949127589948353807864587478778318697105195832640388164806986373026774039590460669288083926993840325028800855576880986726173939449515775824629809600022150948306983300319294143472080368553661839007339120015663711047963690255083781168616597102342283094124638610901807808187261043790767840376810412421055275880757890474713940398880155793272203832668663951104612940207092809197170902760063424175127117295274667798876375199638274961376648221730327499001365338685252766693375278514170648482474189643978405016409080243454182852297469919819821596907854014457365853307293697802796420127018782128819403315812906569756465529387727952618389213352780217344173600517662859787689992421545069636202025673509659555996323737135459512787641086022639399377996014915901234024361446235769470823855004156567626120290950554772720942390518713604794322333456581084700221454746873669807150387964193216726006517360474766841746903470072384339068258512202994574813366041782047760789404030610170007687059086205078477858743003440921284527319364581754936049929811423038996127075763106137144767149420461243674676930764989220625695799920129767641326888828415668345558308317469359428729875552772453063930576837386179569907137873352186068822131815415369673584516939155485770744327629266244751917802391611997287141051053440608015539043091058031633417549480183579729249427382199484413324120835006366658742943673722895272436280394990568643211234955538917647962016187591390422529662128574642522946817535248362003230664161035038551990581021262873012101179481433777956781368117492268195183647579985647736211492439057538409581976153373456309766281653698111245570168409331226702186862591007032084119070322219575997058463730968895826261907512348531172936281121202868026355465206797255831826392797783927800771780755702797710358260309731773850397332969447497425843065343795153808260615130038123523681389002935890602688685262630037629320980754203576174520234904238568609238169697278512497236497941963236331873814076490215895446155650704554327017678451468640037037575950417576412462186298927812855491595960358082886179148233210622703425506927274925848868221527876494470017748510952523845265215076490941632626580436591527383647786065909856005488969453127359573115980910472801314964047925217909280290173407889832895295753202144588568183926812164221163506311920288891514908189173073675161699181929346228951578873623783564146138668010815367270259690051629968665136661036575131526656056423388341171579298008549340411397792484770687752646052978133055796469827303203404698680132143529541521711276159594362553982472758380534956339611868782324261463478803894772819600287544004124688971017579433161435582271569970112529692253230297830173839179882223507525318828665799028096180882195736408423355443146754781544503384719839504034356616906786912808269132271724918987689354237365237279903616678937942979404082508777151253704376758165446245845407307987971656886019878775642200841100117024929395510137652930770228194259484740029541582627353812221638381058292159092222981389421910663047312379455325631646802791278220188644521434509467170322981375770950512832377121748922950616932802388001356093486109214989899927030207027033547427913883656022025845703984691464398293144066116676399281281656641165216771007504537174074606699541128277616825452860594910324289397801183315814031369469952396779936953627033808164672176370428330083984946280492244660850887810964451636667514926616010931416105943728172370947649898462678510661042633721518882688149448111759230962796796273746075771436037413936095907764742347380537657600464605965697997213384674590369990155880880024866421811334341944265515196277890496355371540233971572949723172419251537865963985094461947395512977933735517779569645401378537333850265665944403484584885095054683059096500828725338343242297132534595521119581498928509192969830429667474626115832787424091089248321556008822793148889817647565961402538560381674823975492201501327707950825298199623289118087209900958297116981114079589578334326881975173463383697589887808537075636755892543737620604348042999081194167865000960560202249966467907685730820971566296123919784034618883160696351802662244531706412813000019063986188115530638010903530077640219894877219168997271501310280942963222242899796307136773131500211945127684131636654493062388512925849723484460547778119408617825844968115959123692673550968308866326912951087972128736848371441856664228971722327890243001575667118228283786835779515666204321769767207998502218849246406469501593833561959938446530262484426270393365772438037219119659779705988299395941474845301943415018142238251481424030884140938959744555002771041805460255092992678046102752009003865804880321533137252504465615604346244341031899491100999879765705731935656141454967589005683127666694906283600282437983132586224636539548715593300799987555857058140047016577812313512963322815748058341898084404267758727829500527123812268585345869483767843245252040982475266288190199933597042387378115262315305374435032254524296910090891560711968704765418597448793711212802569515710791109597243544807534181181039490078600458683623713006980056154552461808332388759948348909146925219270094059069281131100657492770211115380955926263383938805284570968135707288008934541499606940295075776846608264044392547478722699619605837667238626963301107066913152940130300474421241585721442690998295704087807956972970519791933211840451289493646582636599848345953706647666945412940205552916631013006905603122179592732443599120860681442538804287668416515574722558881715448035727014494303526572762545109552514306028440026029048579645269219755486192097578096212855420191963557928830872939219764906143024993652570533377402438408371039353528923378987985079608401740177142569449940756418217783272596569088961556827595477175901068783105898696873232887043261789425960469324069004902503828198582561605604822175900352950349172527324847164436074871442851768143131725587109715651325691111998695327754970527396091005505889828887223337670854290019132019983299551351743364780254541029426347786419851472663007848984805672680337988994473694337831015402882249408643330693586222621629476614899190904774234496143735951228238083024401967605419066992210749005762514330313907863431383305144054548833197055167723815301094990744118494845961171781278066408097326394186488153744823901712873668407221186003558385275386129393281128396677059969462858898093649648397916376371753787543815334351581730061236564798230919362056737778272863122844148451623613656346855401995847559109275856291470213439189973494464314691492933123014858876837567639490983347612325690150969287466470759864186575689878445386478006573400483843550908242662790260798993812287647622611492284431592130079681891472409430689362449426104676762756728255870067054974089213671616577376852248389962797652169767670626367884189617708863124925743322595286673596074553090547604830948758908696741970351660452683859676591727622307206502214144701669295721692187871280339542947236165149389114519881189206699101175861826313401277414624958476211068563296291167596492062736048371563853060376947362127407011362690106760112009492793450876070519481335379507570099792219802069544881027325993704300867535159897566767170379095577125168786524078679209917613396896841386091991942330356314889711189125402415491927477775379149980665757915386045125964489748523433126545523843348320023981352592200670775261882260957359517325211217227819304826565739605816801823908218000692173887352168145647031688432797130077318335298110561686635298479109355087583387955143396989556436713126164662449393496099496845169626442427097292326476009372134616945618885739660552249094244942176733756707043812732460355976582256389269670549043849961876858634094903937571676309016020175434100527965997144255530001359532443600767901408841043327600151556550335709911736239334226347327736149441410446790689236594319296600257119442418550411100484153470527796442114994874941640710958974143310863303347208812306690875339674994116292635999048795237877871405908833229311327520779056051685805336927137142497254510325780989990694216710359170409594227953062079916173237839081390489116977846874945249594378425035127336307688789702386328296763099756793823949867868161222751141495221073798102169182481910218924684888604043592264583091739404947205924730338345018692861653262268365594353312793432831096079590494026729392230425494213781890060884012688060738698126816213809809216817078543965645744065877838543878790204189783244723050397670066534431660574255358214123666352858306745314337764162240814085985445849265447353368694796783927789221061853806654930106626633342346585929815017483518872611743503368072382875103659374888372341266225343886251176388489037860589821235323398323936076569848283404265471447621210120311095271954095021599651746193306984173335760534228169140815768910271834099631597775047287859494698538827209861082461065249232315910155240063487597273519110113932083200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
50000! 334732050959714483691547609407148647791277322381045480773010032199016802214436564169738123107191693087984804381902082998936163847430666937426305728453637840383257562821233599872682440782359723560408538544413733837535685655363711683274051660761551659214061560754612942017905674796654986292422200225415535107181598016154764518106166749702179965374749725411393381916388235006303076442568748572713946510819098749096434862685892298078700310310089628611545539799116129406523273969714972110312611428607337935096878373558118306095517289066038335925328516359617308852798119573994952994503063544424784926410289900695596348835299005576765509291754759207880448076225624151651304590463180685174067663600123295564540657242251754734281831210291957155937874236411171945138385930380064131329763125089806239538698453528362674590973925187347791738698054874418218564843850349196433374384607147670018127809768669571553722962855502892722067813944384180192842621504107232838331803147819702678679537202978399081912075143853203159873508025987153376253580799630094405434774880623421544764474119338719560503235668306908429185723410053216904418624280229692109061803685482466744572434882678145573895940986798277509425851264591400783384675311162826375420480007690906351469426674448414878058558303300255183125438195911740550322029441550300725993972673870910904105090489355758561865840103431356134989157771951404134321221996056498837271645154717568774181498081293806215573829299259016005553770617218680871125168811363758097456670712294266534705924072874850670189906340233757264094876830798929497811960182332559956484637669786528757792141792989019024290363790981187178091578389496300388047112122423327654340404647024015328330900301148371880506039989426112551917617602690818960257510642179761640472708047838884294230752486113879911852312600870570711750724911507370816595936421405442521793069692873807250568271342532965634247179352916235248710672509160744802313411520172965043909213450160625631919832901995281888012230833515426107488745110316489719296956466804507592437238259205254880664430031568750759490415708741638131403126834875441142680541604163129377479841906605262439799730634356115025918112883601121446718159396092912253799106515860218465318422997685940014157797973538776393776593142377544685792673730678264910662452458306486946589842142374066171757985143999767354747735470280531995897591305597012279420850313487199920218038848397542723499392720813192468087151205272164205243213143491169602682978770786236813306462185198831372930639878915992582092188130953975253019707460477340570910909711598348659634837635238198824827001454458898440230287237895458006648888862001802317860256875431366724138544601843153510565081850032786794242402555655690553356333024144716043406602529805183799800592751357428095598374934167770438885224190638630533811846281015485901495380583074944759696572902091524909672773711876498155592758578093846162640433580825368897854498530245952398888329934575578067904453332271930715802009461892545033933972440356033186653405133836728551454158951628176415859682694318146363580412526245840015228447301164813392657985934902070667120908243749507506607083878276045091168424098834239480512141720574145681563081281387991769168758809661689045045284496125398591803195916551576787987333362458333315554648891277949872381718451824644712936207310219088506485792914079760837497309145006724028748421231744533613846019617945885269064245488661527026701665782942869329028896372459616547923524716998433414425729607026102666917040465045650967812019216895223564243923842333876217677652069672715845426263745526904324339875549614575155924568640526468854751005009949219917588379733594730183146574403140837083311782465835010388582842010328301484563806793028468943203728704008890080230652401999936959167746418330584602110070016875415170405307590467234635400443944341025502443850390278936720446133844256055529131786172008318528720476267744632297864098389145893725886232321290946430920490873157040221708614919122721857317274793161908619817042051413687133368366703574536099228779574155889455139299932544198535634411629439158857142361702408235430221035668663991334891012827539612056762096701384780292559321348680761723484714802357277821132623407597301610490991378484257988995780732887642958522752620701633516413022436798675815126347196975040077716986138499936434700124766906214328853983733049644512716882339963170009481678016338934294255912245477892855838598530936703975322163359285267530726944976062269345730401895278588000895745567012622222157594476908277814357895618511195168143121032954822654988401219308215437298144345537750048734109564457800857531662857252179610508867447933308755236184416549101831909370680353930334805264779495503808101342439321196548138324904482147209379085177588763578117007218281749963075131387666311713052000042382507977084768219196326242671124314117755050373953028387829046084585581007325607346994439421668447015861694824442606801098399670594827335422938748221272617852169881094887713703257788122392839251939677434713311079757775458976292085708960585467279182113894040547619603646181151183624768886171406855362090692340557058094688833028402598314709082224463355994336248523663510231768951254716111544052082224366810647922377669685690254353135017016610130976333112587182365816348020340835530798900924914163841752137160076935900100413752349699646629844400311036373532785115647589583213896529170189536391562547932718544937636486481974409140546226730071458303073177861234002781172647947611032746762151296566362219926908187074352255355103830899332966817359221706348079131178472049374033082220355236596697518227888181043950107888054363098267354765846601597019769592836835531140111840683331169061795353419225097051667008748264015112969920889842584828653155031490047601493425659168624752409186725863366892229405043400168833042521949279276423515095292971863639080094468677501901491689607651572744576068211121887652706592077926479828506160885497489594994901274216380814615637240660740767396872192116231773380072708991528851489310042312758105124474062013511272365496265334417575086974375505937207877767084240174157038329093284918948445867258621549572128616595624143777527292468961495532452240853576243582249323126405261646144957099880199715470586020190122344549435242331202407393884166050026978106419323196306485004967423858712432487990020365906267948076598221037555233181495711778849767103682747605824251084063906805330597846471318633062278422779736207147882506371234544003316811350277653387527163250478632157531481693775837720654127602316371385370248878525385021571001599440592843745579495042968143551195440106235567788503449683297298211921655809920630971713313157466214653416238406388659577049048888229428828888231120566149274253022130323634267320290612491023667400976623635506306881698464968256481471305888866603946368616974818154846891367152376578688935932163928718617371881358385555634477236702889894364112286300554422743425369522577040388113358826480303035715774350483835660362506760559029531744617935983054789493186383306884399557058986415828493175434773411139963731965837998686394848836132463816966688790468045270021415729162590047713642127204518624032877678880994749089989341682904688037709322926455081225775351017568940121534527533552095428975430164735578595649628687982010693711928744914867878686003748377962950014084636875578936458125764810778401052180709234998508145555547553847684634499925476071727621779413833181293300127677549970698486507297571879159663820481483692818889580739266106787141813208932729283392978407824777405159506418034104521767792199625260502747422501659976471638830754647778922954331773727906012992216157985833035460542266505447515647344361493642856407336227393458549684572785875639401744500324027260425973974026002512532017374734974741622597440749825440516069545732505625803012740430540868402887088498889261621778537321187516627631218098998924395063048546740490940978413708936036013421296406398204665866769112666766269701001822148997650552867591620635736330511708136176434626315030592970356087891310675557730629186258091925871530750073998789067957496505068857687764079843863877928837160993182356481400601269474674179369265351289429172997345540314021899896607083314302075358164200696843611556624470014048170826984672788735653192797078890454544911061038175326685849332531878862180773741128582752211751215562811721676056392539816143935328617677926515346631287696870544501491002295124248188010747199706785606976685775772285991783469620771298055083826370135422201536750271155441939549548514744652391282239013564762659601476867544438386241871338485650334477378272854222207283911050751994203863471120082477462061737311555849844518551673412895256612690513695817169683885043764236926138359145751802710294509792394936635869071527282380512058560627893949353937925907713330325459664804238956849621066480758880283393694088397735295009809131748028802926720783880460983830406220134273010275130755121182850835019844381994459518997288118480508603613684249963139682962662070341753139292118570462439780429614100629866413890748397676335145518409893091111581399482071446902994851737723989934127426082903777286052419420736376208926418819126349720333194169569277310209727862481749084701315315992841679217656788949031661733353740763528191636380977969172418002827959609772615014623589512543646388344965057088543925064451644454948774656042969217518979789133835123388969554218154705124860096783525251197678138227733274157288903198372629636831065100806366775479973089455596322291645738044622422022977728177560653732213040364081828507726959372828084643123662100031292624280467351038618376593676607502756395610226220541509046492689832901546308154578799081486110151407052290957084335992295998580464498863223195491034476710319490775336147628414852446039197915268580479257382186549514679462520174046792032339843516973426094421853925939895210187338792442189454094116986954407200448513238581148216232995587169725923193150473580265149819653950350958379238680792571731181012452381291727033798408189538557434840817950723135317846489025506090522821252546345013601447573003367167898820916500534246555667345650813013946988861365477715697841018679261739883858561766500462896761749968496455926557391003517201147550416505425115017575133500630118466457832483541388066819912187238667500512024088120285221595230823704987630460153237231484329854412270927732280819306772829010118370888021904590305221156555829380519739215348183025618024145714043783496710925654490267239561557484741056068212566136856369815955205627146536856195633335361171256823131884532355839232297878382762102873647665590552277491290055578889994463755742518444930819476698282096984076823599440161900329975390874378145689704768758164228321639349833911344435773312818706864101040098839288819489725867597932721515889515064256536467530679066786404368955574260481912298110942935241100867287803412808530006286276714399455920762707690069416818897151962479095003511410349636426789841164291983044861589764833660218687691956359810882972733849043029729141647030234196744731745630898290369746019202737075477031415866911511231282457036125873565697783821894928087863770216441039724052517290378369775089804902339003793258186045045331871095792965131148777622382737414165994329375038973465663760381319764221159673565792524754965188882845489045819170448868164745459325497290647406409911337223839063832731556955958113843469621470786460780355448527890580843157176992547268523932500166988040364978334230809976022792587439969753314624538541201667129175570646995748765504822346456497157542898491051399563824772030100777888239756501042309779741341616262101380190156254168832562134479385450196925926649721772316404210007539651216385137603349387141292713817664169046160808592026247666567492820240270875981036729677154489569958932487864065267092391610100386172341943788556540081418985021686831706518936833634037387380758390766473822165558215452203495103206378526211847820935120456408855168331998607330916533098884623985278345459898774423160234208694601766234180996302233535408498780466967474668240323848678136328279089814226674633684273660446836986482629329894357103843607709007467097053293630593258484327002133040710626582321828082249785337686103702154197247282865195185704730218677682677591132234403755318541569671532780911906753460566206385950165909830418761198796790817800660472838691006761524999218449262419902499808816497248404310785446334036411026648678949362564829912600617783762560243969660209555133120937106193442932191001124344157940578999290626453098896916569213845313073846929653210573576953654893539408966908109071905363910075008850748167178838771330160279487634831336577095681148489640045057378913651986514652237170906455564531686352848436423960757497905526444647450279284787642276393635791686042761850495584923749338167924736823859365368473424454140169031569652221308374793455379899629262051908302685757906820463827888272036948522791215317095542890261871118220019282559753850677913238414370389095872815544833677003739735669749485112951357423745430684774675967288995908562172693510860633918956051215177214995414144069870652081890919617679306404333646949172370101122205194543435157544086718428528305232911665316942183264872676460105977120389821762637823119087202138667458654740743061397151068488211046148276080522158142077425865009205364781775549094453223445369513555503753736937210654486635487714072091133323469170641956021065956872969003193669083023951141169692098104366429901620915744146779229794123954271989377209909897918465456173519288043394059239888964538693201039371822914384165051360921012711614729927246819170747050966288586789578799682541799622686942788035491624836743625793464356236281889823545799063256883283494226856024936348723442101517697632666418920268063100307428288255466066942007076119169466219724738009082614802165474484623165214510226365663785529372494068419686063470020175705237886576811916895322155990761164345290855325143834976550090827738295249277068258755419110626614764483217164700302505810514840468911349875329561817218033095459009451917109344259864619555559571897034777757937801468391385184611235612533480156450907266045196235316390964682926011719357472744161840636976769328041092511034537778188532405029819668660457852925740025514011611226203965359131494843361707761782044621042577343406082254536585587799758067174988913634031889746765572926645917542456205057309552044334990838257242879478174914711451030969739442938233723478356152029321375366277495215055795527338516318036064091667160670491012194523185396775055711124530821909398329202176903879320628785525264947545910340347388811412004011021990841928794317642667939801601987561468183926970741576786189217075342016912767396449138837321304005690548841290269799950475407817861186168921258058570816112529557970158070618069316135514594183739152568961680730658826575172258969191026644247716907283322897728551237694620257990074495142000090864833854490071715493647670225111160581639285537435400876984592778417576211667228796698730571591385348960789545448519511071760511598841372106662449375596817433528038971982907247454056447920105122118130322196732718741334613625917315330848652467224660056191768157077710056389812587410649487949125590291496923393971576073233705708197279600888101698937467247825273427791676498307926120399916536619182973375849428874515191456665319551998541221856644607671426859045348032855732969441382887068259209708145036681687538287270048907699920834019598236829761242781262637032001902911688140505525898774614165714972358795025665956063787641654773898837268940135736194718111446999256507977249050541596173384346887872801212813854758578673781883949116518005999859707346970647122923989857995045094422858029701388458664399533279544201741888929011962566643684365441080888917632317544303823618728473097611057735080664573714582319852898449072357437624730631087966155105647707280389452721268295703721103863023969533102099464904048082651500648285961298585874489627412881865167307101168367467126755801593676496642256080178081381701615933596646292048077110261224491792176751813815717098543865856606719310547795317740593967629808971277148362353499967238774869061094939031110230975230090846623402323131650360841973114498445026840213266830518806197323910813009832972247724153002783451355991960970507163802001439326973578631948068707869288331901781057082383444786377711982790618111515905268550672094649258347287471554876611899197265201534819218998526115322563625005513733611749628959482467907415330576676603805665326504779862267251902647829030555504513850297649860766295589195397502610422872269783879157002284233907348650077640097168081055295944886215718236172784651689004045526606544109053627305894036878277023458344993493778132366393049500511426467253212328814267829894472090065108995533256298058036921965160907912028516923704368760686550228787388188329947643715174158573251420616576390038501920877485170707820898178019893352017735864723526825798813073214561431446736047136129171958177227692074440147862060517123039188228807979048481179294697036409838547827377723521658746623677901565762531383492329847559140678822656163950148751024553887141365129350513570182407474012261271905166553316823883960840948681326111907544247699788179642397733785751092492554270537983026240832613870538623292651960038011471463538733129482689721205462938561651078138156763218305760026355383179552086064645576501829111681179554574154402761078373784246344584628939854915074724125109387511178067146755838625733234985004172539204049878187264197629786277257471422281799559313288972952765147613975708353912784183734512022487922062071934899787628128332823426626769941237515828710297931330718495138215675622300537751920438952267919226026477526481361491947233935834852098502739316739522199712268335570445479283064029489011683028337518217843907631801579011884319248412185917520693568842150545175578099012931722022717147259664157023039106517629729925770272794026122839988946160632209868014030526844725730340915329123904544104083121537642711993724187144960622826368352437642205309135776635810693195318506102437172800436870374314418021082515490550776070221237902343376265843611409991601021107690374252322522069437135889767666735586548859673973517467320417421185612886022516104970098330408682115826777796216832272327039625651457651350275096761707723880050758941641329593567725503932624390815811265758148432290986071739967211856206562583582454782346708943661300895743564826689733679609823156765593601648520393702802097371762499551949804682866942736099264308572035013744352730362055934126964967145928214875969864694967876328864574320841180229610174256104171301625572497928683967807171292752155778018208987458014563970528756472509300547205941675562461540832426564911902412538810493557133595194263946531444343309285320023112669163711006856710804291300193526527360118860536327310812585732172237339281258634647305596588016558643752197217728512725357346505186899587287456667747172954301057619747047505860579193139551079455121588383958859519098772798442920861855932512283223876203154422273497697886110994411655144720243071376501588032325303560619611777229641223336946657421072465932923836528010200647505910422213063112483906407505564279634655179261281499588826211976466120799101504964334026796207238660446697687971393997586647944581079403147287530480080731838155046206527505444435293847066911925393635381073145991455351812770360283562256280773427591465040808912087057061912589967319236412207776044712081171060207423138699061744909880950929147388851343292680736102009066300147152401855091849917766543343389262191147411074248280319478497565613853437002186793142328181865029960219838444990069423670198911813516467998377359810429705542133032279465460494183145281032374022540379053373295000848800542927874176791431090118843280926257610297698846624920923226840077228573050153241723751213384635423316638246655392571528257254307930760456197691879271272627650300303532390719151161140719349965446026271934545314085053673674596882128086559411402208895887663668186325023898569129478944157453398184390668571088821841582070025830552804727074519277098434718549000001220182291947012197905796842730101137594830166422874868603355359098162165121157435329862306439323989160109196198967209413736960893461885094490490425654407782843627947080696246060002763827889284905067137756520773424634855235008345777749859781937441085642192272184654218691307021485644516475332256567380086983188792357389261088953172092569283718779154063528472590285947772941191251032954116448690717366441634922337509492881319572150680073772790680312462253291808966245341464572586005420107079972348148347826854018787743917824502012118711294395610544525972955007710430851909637611670369568524096657774236829440438343864506787815143872146128878822507381812965069362793500626866670587153975030565878403974804961249381877834561438541269104166799767226462033169629817113946831717998771730069591164534067424995580003196494281356879495897314987800547613142962574384196080810753237006363276884389155219082499136506744184363870644048489889754463975507881700055377324147024684943809696451279307759799088332106018538062065236700580245433845871870512228878992027307682270538792387928011232876644475858430061015217222140573926594786618578294873170757847097644681142556349358619323180056195513281894513223960837136409372654133721759320643884954942223704570729131575455346389162575813031066158747806946750633095292855405851265365163012765640821872857970306590353093533059625320380955324636483594115344659572477761010525276393181765469911458945828698295470083078252198956469823819910791323760972900134623701088175381884616630051569699598884320358760822033650041804918617258875317982296863474234236925668563115861007467514617140655710714731839256091406178888560471491550057202298465056145144463558564141342647181722624402441762046652096721039375427127505886073842054471126579329885739293777802773276397174620177377655956836200155722615394857794945996416158310835985870485587237340019655952540290430548442309211831985157410479435386999241173320668539540176892978496602396089525316816010111789717414988075780637966411080219059030614766608249317212840972107635547474946739220155692112450618691655282255411338561228464204008524846358273835847585145384680764802816079787263899935088738099088343181816524267600339429997167359573196534865055117296074246492501555130388818350948166269726808948442871064957268563199339834549295084582678851986971767826188838703345096809618479224777442865542439247009650058079865862917336520786734711559518341277394721943363262142885791920951594250574353388016292239594068815849557628856878150385888093326230102594873762802709796366191643808071904302413446606327491907659830922644140585992644119913138757580459686876243587311179404802676423579011546695443397957870798017011106673720989837873466357818506244918462318334379130131434952864325084985010225714101057627223207097876526400018487516303653737946128724279059615057064750433640714534112014116730623682248659861481985339806771670182793985997399299219204659387989349986543768139448574526642430001027168076453584185206719961282825014847108067678394611038110295557484640214664115691088808432932526461059312444797512258484448594648968371862291770149448929464164603452275325247646062456131950242055520691018075803188786203775251337899794371073894005239240450872278760271276961919154023206151493586977241614509811221691960379086271995625629194844082663884568644680030555901090370868534429808856278451401388331374924312233495550994432418406962254969281812892056660474723123776445855630492744660973632589620894957868199831243614159150256310487944003979431951541420917097742828014377634903009651683162119222045322403653585426494698340110519820033307351660597546074987860738413919163330670658528680110649476208136711709039145250283391228599622507863931399735267618135423905810560459215166622756259040892705902250431617975699341121724162558454158497406091345577642913055229940427154953792170269522902792524005193951992124041761631456274905725489879939606051127439572175505605985898464869620748959762793657152111940342840444749235679674823973091578307085476467484079868360135597171397295262285093933501215988273318910763450578561446022170203146947469982576800991340384311980924134275351113825480659762997150677096273547209676703080278428886872310374474845706241554301037982103426803516349494614754914169641067603990142195146235367331977273748453969449066459209717056540298451809176960201024829179961491160644512027110640361053003881544616731204418430102984127901338455326381972424301851823362054873751817989363615982409558174200554752718498732295001541676468373457878761868753719027673830042650946632835607135362666434133558208546048460992091679267083729225028817562433261838682127408388385112674897282183021815470199483025252965927520461246522272766738536440971112945712705669699186919890888314536283996461981372082055451668331705795857050456189020019079629100308662890642110608524283008042777186494232338012832183975297844637840766670371731818333237613445685639913413385115389278107592971793841458943626210786269250896905035264934464552561460774540144870838868640407452497916215297205640127065847677700988448357754366579791063949815005288514301168449755492222480403573237251758352193126833729898275829177630257655820393654914341027064390644371681891841141061171206190643267909728633129903792182025719105302486919881069202276006194790571209922282169757434455942890770138267487582020131905029328637073572517914471717671533763303315444188361659694824345089810876384840375048927308327157196309384907365474951045367713229772012545665820555002161167487832401832091554006281666717702708034664597918987288301437655200892596304664234928477620299961529561978592614331578731473773601544936996642947038028934903252266318795065810401181551355800461391640821047203031936601597962457305791890259999705552983493824298678402252863414766571509293337419984097791310890691295410911086916981945798222915919627110446476784529399689237159821382290128629055597728023924933038484599202059849421535359337069710320669274318034561355603881824744749174865656112007925368186927004703647986554435342360706275256999220147779747159710158210634245731572062707147467162441488775015980483822611519932580134166091803051859369663912388481732995889330345896302027205186789650877505335260788676289671748147260422403650738235564221174111448925321749883014961878300427321451900305727118182535959034498195862798289675210755009816122968076387111302943334351837315737461748981032660674091764791034403171756733052154338437702181407760085323907746610193238823085591413575693181584903087741731621621065626973850008787803605175395268995664686941116161854899569783896132080860081423408373048429550658427225511591255396000146643669670362326780127357280843288463673155065101675451666487609431625308153709211467800324312880800548550728576467904912979971217470254797051102068871058664961927852926338686612301637273148884525398977732081837067733928593725316594946946748888783732594657155212949870480556424149463737400530630473808701932958919395074324593483734244567665813469244575727118786405006159525182448518646948708140215242222708703180407993001004962497739518350183139323006715838451592462176342584431751159862996611426746277646050261682679747825681322270133185454866051403737126487493134275139551044773978681824121319688313066980718564386698279906552939643888374263980781286530888841116065689676178966737957919245220180602689307667459320243726486459784163441520652359422812828193085060061180264209688469733989138948205986543725147905957219676366198758420883134147280517678069581896838266312544829643803547243687018030803083889875067789565191813035794124817566750395563871329840471864633045926335267564492721768328624807448440733755628959243641919093037632160722168279799502100998899445700060986782700994914184846525350554061286864730205331444508861255876348767628380982413905653581957667883307233005218766118934652120201633669263982164084862299118693831333368880197414250026732351313656770015456447567287332443842772747654192682348118203539176849759199371498202252406242710767415619835515645866831182338125009086490488962552466930264725727400040178811422721062271947025287118170861789312173306100472945303478432764776462724041512826862653838579525174831662282211702484897159440665196753931460494578876926950455169776754828255933683946589474108181370930202759593028485529859777004163597335718823424453512785993361019802749447855410235371104292166473244760678411646241476076310205598510247168198774063237740577085256777286429923443931592819196260362659130550518149418767841441439127362148732957957436747276816239296766274349978486375392596957066568218664254796602357133934840506512651132521752453040809002520406248362163706623369410671690440893574795686903128267427844162361038910549093219448465465825825315027607485476557733139633616403346210284733126402949769206546084559824534362238450026755012673956381260442756260730677171427109451779472858122871891234553260521854950681036367100275086008664294531295157357561827537972418520355059903788359065092553559622351895157705732823920515551415218284381242585371593443955691470898762365812781303889431325454918229326091779311265125580492841556738569705943134161734113592685385568879200122238655716112299621019893048056936178588961166824949309221746821021045240831856318930694751854253397456772018929074856619491422772560665424746178267414931093918605388141631142096022616585838343480586886307761478996829824909027336502964000816030629901729951552487525423396261619824690245582804711437579398841861077082792258062915100079684117444524614993888881148193666239153946620124548754608656264464016162463376859199898150109287950259005099819490862438792624904523599990302628265310222978768465178450323018791679053659748849512363447737470484259339307060013000957275937877997578188906167161573608090363364564645361983367337703384832359062633657887964145753064307196765203193012862465559478084609248197909712515050014390905213874932183252857463226559210854683246652857824471285042558650420837251955595382229127607246646510927436720089629510488901100214123326850713721361689672253750384330232746605510884102947603109374187173036562879186538718522603794326469450614826095686197931035975014322132559946535958765942998543445289659847115636899206732725086703176368704098036433550440477611610824924836663099461850160540845382996765243344771408656914152152713059780997503739478760821576394043155542876375368605089854897973564364744177890180225329888199304653420397911732297184184895720251776989443778832764687384470722716054525356239119964756441972038648878913858021268003861105759369125121132036567206583331251497472947920842768181506548881561618407444228454181190432957539238789797707499189078940814092695889223503659865903460554187018947677585237195470635711918955966414429616267190011993605178379210792215060563213097035324251422403983221805919668905246419437378975549471955603620374265483450418509342362880338801562834391529228602984964308128203932112601527318776929543636911303718338337930964137780564861446311524357513927690991547948310757783553008162126236022753408599637183528723678671868434743505516289528015482488662004338126250264653759897399300858937107001499745009046402810913122654309342773124516690720443714842704460110602292469474191170554832963218958591535863763814749568503288330952456352167409664082185828137838827636919021860591636632103199704069179127747231724381966172290691907374707001340749756304014119268243865740916054599705894446086249549558063683517110078417778868981840478287511530084635452840104065065202619931028185495659476149540122643477771155202557536700878854049200097441131152537110779134417240973207152750539314537370937940248140934272046514917413690829335404822044826030493648524933023356553573449957354652110102025866044268370849821953063167669124497797440697896382916263578474804934199610732838144653588478938204612356006171120155166381129341246253238376121106060790897347823364379611813385049404963312227378427654993400613984601680371745095223438212410463317220312342854738916064603383774379673746365578130410087963731611173916350282071183004672857526599009427133475552105432516953341626014158909246629793153765684180218430315968661226010028901185559642124359155360510959127626277546259191385636362642628143035091194183602947745472184257643498230839980210512540164386965613894201449573499032403429756867971433292997622658617106775246864396146307979606431493770121590743765993923762794511767049040838306167966854020321463780628799875365612847302854887738081544029832272665585313237077058451912535984233583347487595258057613080185570559833723426270380313231481860236875745324335455752374690141228833997088649508250332183383084821788207557888958981190964598866465533456698756207224018751110179124045429000114566127170841654374697541345773839172768526729651873453678012530307468394041110340808582741564239676804868553791434848282771002814301836159721390740984645122316686187692071884496698048548405377165893297868151464531771553987581609998550688010793532907102616554710609854548923643822271811948916672903409038265585363874083745127611544497238857983992973200389399811247143853949855031654656201599967654156797733710399152734600749905908355870526998001120462067106042341074140259853855750314045075356003650813732578735528521808243353726812336850319437407041556116342983806311341361042491820686964460843593993107796693767868255171973313460519646037390749888761530621383678722186015198197923502443377468760882537477956620343402274095826673733131509306635718387520958610952817652533720102847499496638389385820793093163067693846590210418901072219589508955209889268607666728039703965667263814427936070305104796811043745947982971140205456138125472397122920806493376226679805179711435682589300712958835191865746390673649039470840755317159686936529912923500489958467107670554622960094392050077222681315973639964696163212449152753775024759914176629065059265448112642984350187638101255639133588086262625188661313191071026449445418138662899690700802139362665908040903151460923521250989942352201303200314793876495690980149465294296289844548427514748709923870883570090721536527599980309224726126258051410942776767403024571446130761570407918634388984659801512077334920648255440871592604462433818816339906936538623392965228347368259963913146121715837745433490331635613113993276220403237570902372245848582964587863837701758044543051523463665555217531535470962909727809559769621724477807947696491797489970542289733349784510987117482391213097374887997249349980154211221686838531487287104385117270488954195702888891807061786121233785400576010998716336158068759344735909529324943202789504549715064143984875346583594856829626594396213742701017596955322741412396969355639871744881822497308509287017347106882352406589962536728959210529988930594592021465956320619931070289036920852232034456322565370177845915765746231691402319904553730685056812389265099521356748966507016903979730309742916717327088503234302792664055068665513116770981436195810548992464074283489217446224623761939942393124703769885991222872077964969303076839921692734339396782188080766177033754737961957810038544091736230363124889093338077750231011911144509857439556130751325984996065244578816832027588046250289304528479678719595976433516463457549999252735604504986049446468031984517215024075611465665747306245553345202085273025716213405693332723209899733981911413327744698192408413348997200571138234631436760858186140880369397064913034810711598474245888755903926676935787617678344776846688539294307046674666822043609983991575687039312641777163540223250326270581630144538087323228477290868953252852765845370656492293221832253354335574750787074314152291474285537361525616500683135132559861259298928698909559647624633265855850994722843184739171430912855587164560513364318536606046834160495886253206874863405001453215290331038329357251216855904223339395215586527183424144958948655720276028155664598236126016984305977207271026380695867854566282362557527482188397665287356609614709338346628795567232520249657013936934133204381288206644518845937923804436627075958695614898630893775883855481465114855570288369235915245965219108213544884369131952781182247845455488623193534740668785933214579688269197777072823952605304984606449637319690893310475183576133891020587840451844377263529457464392732442582763484639704637470162843859320925271030237892641098799850869836894311751680309336479075699006726037451345776598567040945855504371393906314472179803206586459387300643869209033506440379737773995433448948159695565111559355084595268575208871428274937850394135550275658462699938560878457575270684167974808053351989208744758479541250783575119892360615978845021698501325365558291910256866490242641361695600351035455620785881606756225648520682951139499470049383974733126062666090927925705718949827567726463047891224105933026995967061827302548431034651771966666532344550690230970285460123662628151520873102782954526214469461563686297919365783371734028923062271427351589283425401169476354324316391211210863356009835985252947612354544464602647772149500673878780190649470271893168917838926637695517678849263499470129212065655111126695394215866473176216819516657268176585295216670945377163716852261257383489472188566102209200353602614117603124179943579446089003083149364562574163594883328241376447170182947305644911359061071441992635362245906662125969693721285662597299465644801036859999260874629280925732180780505860083438647250190706960251107296695768237639874311293403706737977811227265831031519197117100744420350374399277982100416424531085157054742064332898125702390969712772421323472633988299425606816852272354634923187922656130216176752925123786289525556456860387624689825305206879613609846104297756526743040310305858088393901565215524429373613475948048072462656716172550233548906593482493214383317243036070365369427231912800315710729983703900505217705736730877115763822718754644086889285743448013801003956766329756797799570851876845404956655737022641972157274487688851910204670260915096810667967497386546454462776816828443018308696065139284619940638933757513886311763600596737725174979912755326040303595778780853355508719393901071784187543914765993422579309675185699369178218731080923933726965218183719552563277759314166594194819628198542326459128389381732524652092738315460786954065164358013333775935109211030303180380995163365910382907006331518365250517162708679505050035816542012722778884145019769535004219944852558866424696613287915470949612535850392114637859614735402410554704636077069539794285257483491652945068489704948514804628437174029298953575873661074350680540773337420034781611153496838910309632133320876827583663901678816356282353218427117592017057336103286620318095693262211406768993259193309321153196265913840199649424027509098600200488508325100828606667548376428473066374239631674739721158308351240127078326004874067739215394535653913253670813899729352513925067266475006395797671710689588197305893884097067976279996035079869009219758080305234347601793393127636378172530257583819414101100294024750249321536490030023822447476591029453583038380207964795947187648878597483959110906583691636805172050770802509285056413925662374844960486965138299008745884392779313518880820813218166767707150238223682145703828201827957271988120903557884844162814224730026059486343166613547759542134726426148955527452001049678475224233906776672955449093175664054481475797002709393045341792430649672650166096541408283506972311510545846894258841366337324238438972823930832530705588132149515910363326475337905778666496338796920913839591784631049538480924842141674566009312952366505037963902201086273626283015162351489696085694116749565495114369653427674156619444680993803250943430679944492832225465322820045802147848296752126940447859152508248477898787503921275533177654089339015445065051833754155851658826629746045847841509097191752209153788903399042160901454879678656543296416670895531986516467681480067374514760294920380797716201280999293739516791387707345643347227347309227929682815630349294130289891783654819790822020760305683480916845779933040832604884660095325315729584713506694302534478883345968559399973520526337812057074256567349148135498217809830612807228939060386281025948653670492340107388566780470558911483572740452182174098079024169618916401877606443757742117961184740583263252639970759109610481220659499104739772839507281387596312833098331550092468526799469197965080416472571915627890705751549216496275909282534077635244659917328267585684924803059713003053141722867900513225536855127325857603721109931871590022734987050853301422756091649378816324529269712548812710566520690243261585599402714370776239790589255649598864851753974422200684147317132969371908818771867678422959076315441424329978327436483525879598058112915364968813603325881651092768288731634042623854758654176474086197170933244858361416001789971858284714884652504367066497030185305212739554943469053173074587701857784884184196125465927179647873511038793335637524682487842708858050587380668976970290762794179199425437436994687216874668792527666043872950827461659488476151532704105926258802436608901552744286640491990161066237337612596428829968366927458982250393719163860240883508330654714584046328107175895436723629549548742488619636773520593178836115547326895774099398447882259269326595942798148281810078459997532364510650398081024152496336018821923675511085465949062284132076495890137131955687706925890027598013935734590895014349623791138310139810821553852954377256246109028193443329049977225240848531117202473323659805585586304842089442674733732503125711388183050472490523906405411124517542572792734060911632477929642103426491103594069815406551681492585373650112800781479490235027636005874197411397463907965979104646149424303196993568442346687451715976917711153530444878259845243201413131425574250308366437355576404423119212854742354921442953618709633999725464377233352648115376286627823303422537871156766224179746310062211129730275205842250272627020040207810182487525091611443110587692271102257193742212387261995599913484524836223294841626155518646417478826851196923853076376639438138008714843052235662714700051728436907192227220509104773805252278142480284744551085532034255674046028269862982497619485920958420140097636004302861363082218846743961235151752623872292174720826979127397026015194709477324267661168237101425240608906381321212311914163900413711018843568818488849206631825365457137789370789935114862206412520114186449552647835695843299938928511485935177045553888509166043722491753138980608998446499653496328739559386550111748895554331618071402425394205644039933795886594558193008612991120669076026734666129215166933492279754403838337148108170546603569922921010934502033667272657543042369043720924653179240093739165970167548091190557625771163873641013691559053203402565083398972203054656498593263143558986440488012252448688657786809026965525254865301908778771535846221950210281815564877424458391743449230521528956569591942269199055076189012142824471463679805032777285991071302020345118790715069686738493077461183835772007277348493663413609396681124382771125843398064545973084758570561316139146463379803298514265750397549412820396736905095788509800633423744723919725222281746123070225724133190049447742457434427794106800406513797771874423403473195162245788084403887456638472274612816458810249636468900711626075315616168546487812127155843932825209695243083065722053931511745498554013306788961359452983520670137828621761060932364030138964664246038941559074328733648691281299667793891068668490559667181445106392497452712096798897381859267963754232745027556601423288712846889436671179723226295592791101038760844042826654442203318739853901391258050668313481312979202394870740786076738674321303300221282193037147302201794747103227980308168634615066411439134982469697813474224299946040429904375294024013389519310292875758591993453153040660079772501762411202168856686051021854705225083904439109813489469890620501050771876721815187192202559937681440571545170292975821274232753812262844024094201661943252988275945183899988013279020104823673624937656063052846979471716107873218578770273513529831009266929922996574480650842153490784259427570440334606634199674537019114548988459898090872884965457934114161223752749648692292527913873218038939808378985089779108459468798166822087631371347174571871495168640875766338181363694120208728412187177198516777426636327775326639944870158591113708679873975197965934617924710389317115972221576354321586135640458303620085888964027826006666446367954470218066531054112476876140116556615313519214263164913220858692846764134616423386349800830989503494108139852387081379843155553168223421443366795958429172936620363928424161884711385227129437078733939806831543615579835648615538772911673009676317685850844815211935819287742855388633417729798642110181021451633381456003214488721480576812358011885610629967000547385697680502413692892927531086910190229241109320324820158676414493890747012066751934106141508665428429688102811272090253867050451501479110947499432966834920615032532735256585019910792284611148468118559838989335196866923146259644065394305195661518944529519672672030713952337778977736686126560937419254485547477015273666997738143409647815588213368689291753973948088185800631699336073239176230848764307059980230567608962712946373218383491646122483138366710464098110232277219716667690822230782182349653927611506516974298702397268833123122287009721419541147063178245832706122581207040441687876529326155248450787220048744853618840834177584048490371096546941599342606491970519262476853516293789035206364277158633587320055562712679090109191652270079508960819745377796462398597650347282374709197388957587039722914380632075645924681785329328843562140524832842011951093947660800017468456288465101216092629680846922795083461814736278573110549990370838834795921374069740201865155709645794787642338831255288024250525843732394560954586324754466464725261662850504514729810699889441450650732436396943236558148637502796213331532316016628600600810157143023353769533592594398445443921363789439788851973939229238059441501918906874811614570954863509399285421860441220348578317042697643577031350425445325566675437096110850229676352972045651838260994560404403680675914099853123612050739496519581433998741348664714049617731937591101909531411966440774637844407135679299392913659905413970949410048531780226047525040919453546009450440057612677801518546392015183454935131061752110716061197494282163414998111834012377315983791943226553700403411443578565664788391009480622733169634314151678353273059565416523046234140252191149053499963489506667927046508094717910200975029363266248655216393534339777546614937666208463691906380238782430516817230280493152926856773313994732174769420902157685203038799537018300422249775539164410491832638639838439057291714503287570491206223053845660483378436155626955807019862056848247288762537022270542336836394641849484619007679280964265449660528574113241491916842505228876650858675627004889951546756065002589952256081704966775045297183692214905801270251230121932678699826803101836097495332177769038455124771171476188068119502121810499799770655521944699471219104696134051528748293994925019063257708060023036477390849356158494692559998238650197851045823163413366626395712070634448342010569833487313570109566395944017785307881458733840034386022512260849705309084211443761153438549008755368157446608179556490206719400331200612389017044333282932412436762244064773930806883278627069198447375854649049955694905212313669572249213186257120090209702845866997164982359108556879869599721058302102131740805055593319393720211567440290698686000759750554771726822869501458288354339011803408391741015615481176887615631268312460171762594750910129995684182047933825510594208704482884478153597096334218570408929197089330730848989984432550355032351914942317481819263273637582773374369564542101851990878776652828629974226544670444097897967873722076123065893793943888135047179830164051190044126670597925335800366249438641871439683349294330317249743360972350119761702765958423364267731332245162146312048743670611611817860501294937019675684738214064818953686880376102682282807594587057392210450917583446372092672617722590695051161799452614697818113727017339876044653666496175122281018722417160724753920353630271528034093303831633865405030041595347592822834002657878948538122726660520883679932122694527546060390002742367947989736940557489594929570155248179799788964336983117331230983022070501777565323468393516504524489073715753073593722537850311853408466955128801719340018833972422210054539462352018479246015793613335645451433686852434150614073105822629074130224531743713041720633195216252467993769612205295267555415868972804339356620299733938116001056447509902513480215265356116436372110633769203997061098339104420641736588083416167987835193319074331467194801632522619068919596527743734013446476374412738734305631011148646704601099182609233038807998732083961502325165435371398343222615157354748091964620901537556640351519923553125932226175452317220101920931011421278766896206242665256230456448572086227785416289042141329604248927215504492985209984393381725795629683050879744645735579046477702224375931421111060253468650592899948839598480593666991803554077704323783108049492711827888008493191396422312241811756466540140202424619069933211907542855887456649301376942202312597921380964531749431204416149026000530412310673999111722239954140363581039566767001484804666574308618821517530462308642781180410947118982039556265887596065319860234046958047516893416719571643153859325742597162595785504886208917150273121463776361806637457049071250097030779574593496867898563706220942608598686011285304133077627639221483698368588623542700814870223374019367022700231939067560717972724850727769066926257744190197585952458979469578078743681694323062302260687623578079943870530582040146562454881370742762477291091349432555765008790303952948008019691704705607087932897975014937961560255255656620634521095402950861385482122329351148555035782327252674155924887813587992624676154920438583332324509759883226277205882787907054016773460178418777155303447062376621003694601491597734624267208696765283262978834282633408732374284288394915838876385007146652174164309436093620588167416711431658314958848680598320706485714588023235847946124571472153840090873977496343656884033406441068758782559399776522228536885680474199492393216445681587401091023264560712019106224625473559500451100906984355680375180981114125791411605112140166208191720217942164194843958444511655890142464818446119844700529335368369775353748837846191882982710040619314222980704182996802513829984705031764090225598757138730202408164320926937507193373087477120410594821510131558908676539652224798517022551062814534734398822268785368368850787562045099946198880215133544124716597030026080930425073749247122292050644083794344730770125255690286373257975142660202954471978637136891194444845023932302449879964878369247972656321811432760492367735831955800303304506235355512630276794890353652124769548544701402170560432997635367782165811547984708693362656116716661928715488127391433114998037835309224778288303795304887123501907029176392126161070502979822800527062803138656623517376500568138714928042786480197145325613388153911801222292208421227506800087714068998102109004672755634944950830442592033503676389212350782114863329578941290340049483075510505883363851502150084437555528000025661955382681523599514505421259398400848960535384645429305895661056167412431266893198534341352145508497698346383358405003693469770321157836293433640756112409946287079143754198661320634190686228841448844551387233281149128240300148345155830050633588307247564337184680946552203435957833600781968579892149122526218519105383419521335165607402816639616282655732808670145594790203790832285841052208894175863650205428589948377273135447229183719403810800559623805607030321527573455875310521323587591489800590060212595107661377125947134951858308345946507162251586899826765188130659753906415254150752058435508201131232090951266442057823600763941188558889677272583157141238229859995387250968905069736254352665064343196090747761536672930527484256271270660625618076715756564341810370653134884233873469706689468982312716142498797726931576204574701412671513659954398131374508924481878711626508958141667690710367836426051640871422534594144403385889136650626028915875704907974205247977692114203320306779126827863869348163348739342632366503447364912711077535211236082768799020145291397033724404375923439930962053097869283275300276396833401513072689179656101569864338661109439729768831845361652818890481637900040970468286907944305031341861110346752510098289787580531315684217093527118002020647004877727528848770691720115395778236405516678481667209750347623922932651500534903369668491869851848290007177779387733648343086026767927108312601263286752543745401115225410602173747557904286293879752807785827732023250590165649891299015060155792572394038633849407527476964990802978660762568114197905665206581563552964601874786478535844576986151305285546544315882030428580486504583249780148487912312147812901810580790553318769475873990443727107161033091207061720143556954195191935659495539325613743537116723726476370741204845528142184478493821680181544858102336189155496524607860484934868258225485949190300570903083946809262785173679352591058123291202572588921490085071984902955200146608588600385460976448618910301716085694339297252133942121680264059761513104380611970960388781942024811846572224339360859760855977262120207457125638313485477814906644242098151961958365062215383367940255999776700081425383544195253545903333522276084519485174636642647641074531370573766015995858862431118308949651768490817920190444190579739499584484035104068306143915719643145943931648198091022748978095884865962786798822121803685787500258269469508923712603480034727662259260146982557676820271427773934942517936545350844639640277990390574996556210700217781432138571105757962199721323608347792268739321096115529196150683258906114298166259344969538789231182277225447868477877526825621600501902262822264228835532179408941682549565037799522144100676552610448904939251851971520957872210990919775354388042697871806821140888695989689945649415750832756918958343274195190258306796363669753467186348714912311200921989162494757214428970404451711725861294426301369452002403412961603522755202367312535450759354656664109105688413374445761431238650278026764087790391820688400676053361801266155349446798176719006572096907135130228155337851280981463757056400104819778924300924032569105279436986343003769030829394873925316020770306352366032236188960152933827950948605717031218252189670808812792616534722236967865012449915473763178435178771473430835279865328819391071260794065408276804143163124373709065767438213201052971273346421335639611342446282805137974658487287185714630247907251399108636433891137801186112086900654298572763522858345033745407296039716610449994105256865765410127338223948527165732430686898688427404890137155541358251050076144633184536805182827325635533838203501632199978124653383460869514633594245037254233125261752642567325978826408519492771269464824776809763529410125572769371715818375337582611831482744575615745610813409973962609046923863693285831015294845750274218052941246353115288123567113948649024205936749583039006810740057149660974098495438409767714281015406036499221366293417146095508220236114828763964071299412393267111818411776750232752160585134318151013794402386975623681665296053471687883019681976280299502484364316942559237261629124991856698242001457467291177594288950889636396453978526882180126821980505945391022127675406847303848722974930327678237431938413016380993756345794784532266405864100562590479138686874572298762013897102764614408791536393868961060014182296863848147213166800701469792600261175978017739860844903625626900190321675331330090869545753804170392452422062373204035091022552686655427884367829428729547849522807972826063255057437403849446802254473378973253032914814211353351664385114019265886398545824236077599803640071029913368639787957985869933252970386155299551859855033880358975215038495431660701192259030024343900194501215006198607659539739454148818726277182438402983003478190312680772653543972617714518746237898371648788086141864767330548051202119271567004915705378492081097008802951511040570287716177647583604662534904013997934141982783948288782116987023213844601411135578469550894030409982620815315489475793398923521225549022004420616085651925197309148154860161985257241726236182413529657606037669328022090294659587855485494137154041373003055054883836216099369970930555145100770183714274182763162069200097526684246764651758309537860668840607425842296033116305116935847181635824194075865365884126948414547702220236144125150816387437962035798423257040027639999185106177946332447815971622443862363354147567592696128431549473011943772279629564564147745896629001687912332100368106013892653079677219411042616910464562259272626790159639542649443192026594889463911627141563529403834400098658499922534676862351480009957813863881309848346168381535329260367851355172038756047923646353879785159187843837597220316801874936428612656123131586012429017240010177058357618927978869149522756339340398663109295997836528851653698521431026136374160379078928382382052112412887615699573432948113454158285965946198379331719435623038135307121455994991235332769151493396837109223555795535142614103526663998074161724572874142510408865551691833146221761765024442650956428366647408955512374577207347269041708522862463836008689178275950540377212574633571275155162827752382791530368188998204564575147681157835981556294545054119175209518710734405600888824776788963983194192701400219425510416778501639879593568016481083508856965945360615760357145447068945117357077612431125397281263344820132151246403840805507017657368596389200598512807510486733436021885117904502429377921479460086334329759954168223670953083221059798138109462651982969016228366737556638364940510163715898201418385693239258831992112009219794967345916733274322484482368171989169117227187986353542298652670888305457543219729576234912434663712243440949559896395869451685544103726745765361394631668173260318026843564055565359054155522778751571916586816358317823820766150494048688409021906947144636532958601931451448219855236375891959124144492514900867981042839022301073231794069304170920279363186047069284956675493773089963774070941296101833172625561564253671073104522291162482990838560357723827353251732650200929801378398100036375546877283164585943230223004182688076758064606197216379011261974576475353650725097543543197034559507696514122427591989144969119750462351426750744952223778253249061429355571954264901871903928228316062187475842216525712498894032820543906421654933205882192854325997251781690899386977640552507542808352490491990258607627109212318605510220381113024212620055217219756787935283103413149265063048723659534131094248422808436683213249441455681984453019102135039398203209900054499790720287441806667836284747287094403604962109250281969511186987936937496857012340628668166271837101219605365950005026297022840099475930245060809870795036488496491818521032720389593650428048690143248622283673515006327150909909362356854244810095379342660846472579671818757894704748789490990195968455979452176359043776622779304296208559539204153664708756568502439549842480570933366430131681424184910114410831775198203192815785179407520964393635948597165232758884516067217526062829254413091033533529040481243188559227139775692810301719740606094656712848474854775973306388892455489105220127381521101395692932136802434949438559440974973697898908196933143527188772382593679566534390517713677287336537615342864753853250698494851474825021692956596380163277203649260193633585105679879913776751259419460110798521123170441121625616721251413629895008697084426340420166647507812637974892880064163599994565514645506298933996936077317889109799371438752899223301429807614906434070607804817067174018286518783035803934172397710006615319652731417716064182826764852017845503714732574551945010298425704631122489323897940040613968043121773536306984885111094607681429662631704715696032883697443777082455050300313638673509712068618281538118409972398342570310294830091412577691728992419691063132261294316758296904136356338420056874911687250034685785773649683348193893812449612771910279116895564438137647581918943755926612443945069732750752359449176838990690136553959107865620710273463665408350517424428091268231432670316349307884188118662748463300388335862040889321045683825649807215529753522956347163099844429800477042097701512207761125942276641688790092480437952071880865386329391356475037328015631220912579078244492635286264364550368918757408158204261868541359271973450061412139298917391962847220927169913693599064002933322145501301022883862979066936687053274011927804533518111029602551918831485355048430697616132929982626534242123524623393624766807322967995080123264616766175163997443551019870660313072555128599315410106027607056214712113498440166016850847804678557698562707569784919768904818140111579241749160787573080767224198452090113969970577220267163211149138029723115310514670050595669999541783586549902885678172761594609795931792528225721621788050505636252289249776393692493539705901539764920521305296745173307492715978859146496876371574235004344393006891135542137306577082610961930315634554301801482648268803265504091047723930913232983317923726586180098400416072521045445362036015222137163513056746935194030918425312037142529092703894812416457631826579928738096250118999807174804638834367467233064328460469924599278229966900085189129812365925192531193741353363671344223533372920069736928515699037131040260376313343625242201416480015375021169284041895180035398075982867172899180920545257413904128496720834978868132723098429420937114699741569749178892767621036499008137120950327654463025223276356360543376067364995312820151270179943325825904546987650966526374666009259717898737716342344224724553941676127036769551500537464139397582723071940041305640597577165458582287532164260152676704929838812024466974883646159161331620516005316480410129296950610073222646886293622483982460216885118327891652089505746831192020547558538932732988837799101798608580367105034920078283618682581260685492130410283652738642479304283473123782898518507250384383056237359959755595827897416894220167974143719787586774636690560204575355654068176799131320196940143537590556531701958389532996165639245541393379075677208191588421244588908088617249458647376183381942145186644240640436037500460297685773211038426505315819452979323901378278293290234375748048475408001900949645061134322279636501515069458217448835680139724930608793987394311471129507071152518575973190170193862563786909086864795223553802673653113264826522582404286289662844581544094934680269627566227499368245598386513116074715925129676037160270046396242602273742281545261273250040972094218222560585068279997807751846725703074709243056533611280079116776911507779304297448608882953481860709503690247107171947455325569607729521171013577909097150997004792209699904004687701073670601586776863674842555175488172190852505850268988678038140889946880925838393003392248542126161033854012112697440375545022427472099603548730323379986433290502502554559938743441071524999784684559801240987342497273950526603774950603802867164629220277048576262618272887036047840345724747752813562359157812118575220543580989348366461743674524734405919853039727534658181361137034580936932167586623447156565327000724713717816732591468732653173118882935847806677693830210605257252644451710561294665574004016479051535165837480759469849589859367552176545697518884205009868999180087467738525766330368601201608044694952675848650822037231632930850074546597386559410508742336747846380727762901272358448817165430478701245971812057455487297382256712982839451812276124743864814441090098315139487584619468485595733776846205368124881326801662898390267367740548761548755288403372220688546311107643171232824546051862109085275286707925907065419002464036471165259157121164073872290675242142667572791747405799339436243315594253325769394640626491962105771806965140299219136684900181085765939175837855499370957943857109265446769776426250474225857648666181584591813618969591358948323916953505187977503421698988674286343770247997233849536449618628470805448104811872960579043280326776805530392319591693687730338211177643122830203764045677016541217997568170463077226349711749452247674346569253293113452720464650039669311600413647850811746045569212688072281191866911847420138653493828560809989230477659698167309809507768861872252556403850805463107593028876285896315744977531606273366160641387069585397136104372438098433711615443466680567218158724810948260379016601067014718796257374313067892521547206539691142252876541001029464867335247416791282653678043591450580930493620257685170302630870379688368497229378536959990704333468025591316462332017540790490514021131500804138050119251664035417879984233765356836004281719706264172988528478784062278180554332821567362522089073671430958487223423095077902966691850327861779272804047292735310957177028909282429691676647522012052125433079973171926795685799370616651295304998314288565473958327067828135273163534490363338645621113065758291669838987093627907898341700443745792845282386175384325344962995156741117931097535517916318773957983132709123226417609935059374517535844505684852142890905028224752621326995058480350620599273097897265035512413879779399910165309175712395751583436901538167212876312191116070509226874669185033347244299789154835519755764339051914710860182854684039639419951933851595929711999522104315901514609414861666251275414963630642188944066808284231921086495373247563168732776366318691339142417163445594897224147112014118059502307600260914079031573237859554856882229321312883343235077355470028308906255852889784910693094870887929868116096830320988218623122673322397402477884798895382278787549081042947184311938016706742618854636617802019178719708166273310448690285316063151641659186545315236406554958362325823746050996140267049150094390069573340744740458615294880492887324628909586031878971819270783381889020801464465091191134606931806156399347786633151862541331406852147760570775912315074430950447556199493288736669323037322076162670790611681321905759115485453516239038828867616369061335972389389860321656813802991923764479255455849966752714823642139505437029992642754302074257568031006039409500828020066856409080762794154504133062947067774222996906144756340054145421568535409666283188573273989118749922724878139463384561663378980538413379058385375504896725572752621743806669626596311687620857338885818084886553604636959748894937059309533147780157029960932422968280828838374474853446890112267267146051982979858479783761891536402304484854026469403069375709217479575730179712812521480206022969851376749276224379714892794223603646356846018567441582829285752343966792482601742457684151071698297384236082891602598105592333656846566814110502613052914899992198574238370237347477434662778942996316370045051595679559418309779669452743113850546294070831096139583464622558537589529295220681975480965418023599177526125492394786826089764400241900104290194727465295408362884359884637512889636510666621608240987940613504188737487314812774847991305471170728502134611832181646037175763803019393957218274601342745312108301926079318654989616372046660159123093739844070398668352022942836155761557288184373577508131205471440650913877600199469132942447421432680923731568600686918355152083695956399076625194488801809353561133020201742237522545718164872011322567041541213472049374590985809266741991820932194682438923245203172059783577128199061457944309655976190997153174011621684573948224692600711805386089630987844876223119875985274562712116330674944150005842953007293973474656938087529550279029530680151761630049682608753017973069799184061499244139034600168911616228934445793389355300361213453474337628034656306709051230272730523344629544249122910606949343104951587318869976816063442483547117256713667924314486790984381149802036299816122089822312574910755158861980199509946762611651966676371399900288390006567495299946855949842012445987897594975094261768062489649700120181519068818903021501223879950238921197702657968822726651259411500944948892772321873679574267079704150663386121059240676712089864085609055843428141276890105560315701783582061846871494408567084443209902881818522811110964576085802039709118963211712789511517130840154958261406342327498228540718872058122164548335669264846218388722664872061197163645186233943965925369843243647090181696923603565528457857489203456957252470120556846073330359513370412463184555206579977275522351565051276048145232292182114029635249287920736423275517093285252264444702222599642233554900228534545904219120512049811047371147210100695051793336242032954687667890934699276391059333362003134939800932953635552506180753444645596855408101207964509931043848807230427285534006947608320037183061399388500055715356082971986028554820668507110664462377026776096626543797248493548879672518140975788419080441514996202916308169163310363129750623734139968019531910814485480875499131976306468680892416336396811621012601852032049567366731458395973731206246649795823569512982970118172208870615725984240087684660684835777078598639277615875272165831287556251196027364502989216027428705757501059338734419231739409644802371483401519941180502478641235145541811569163142534437286232235701577794138111613196793411724528607214202462976989451241390201722088838980856746734568836357265473509289635522912436924768005168476419918621111772925067824222424288489337077635429948205672839493132151259911394739339068447230415622242357570736354049315525013468807617102010584907674855006680031852931937677664917162999515432038214877170503646091047906138410337258325385232386270600667257541648830952777955801934620643029093040418184607271624576282741319154528668801297059981431693209580047178156533570944428661679964567836387633235621394458135637830608062911688334912870495023938389336476312517865080914383106801067223839036209327803777373605721771518937986063331400932017463574268249628323413708890432120930645707613266685208017670613916127684889115908062786851910007359024746227576120582737699824209734292851490183556917012817136814134281344673280844588390520981349699925686446304529343591860036481220796626934835056730637058719648327376732649668195686047661520438830915418361212219205355467980778528097182609840456085552370014827762469843447293245837831896882876419503107544579225171031973704129254265865488408697224186168049896752291278961153711050764732634341737450810727546978749390611735334386876481013415704085100199273269885769397307258600941405099699912468760500374552477917258092001985398612705300426464906933849477821977461332027726745364594102822625100369688086261706410968635682269356805911230445291384333555738790042514960047160728164734317681015599302091258766548885335357551335647403790007830594120545825384508173960278880990668078947551690244954744228304360154808564234277855655267650349192234963565174307870138544812403443845963430946202108759585424174322330296422856722696113339131351193143829765667787435471924751545789224700299218995185076762121674328489482205309347720966883811148632477561209982885805802935488547247474932420689174581303012761520960221534289146142214503002274595305466259659791362068448995707666511381770615792096720577649048507713944629832100212510145788581758321086749589037499450500030726137162633547730764736837643739771981166221601957688063421182924549465632746323406053682819086758927385680982075128071508152904314305779202453579793214096744361982286676309533591281773148745935999217735132466441157061006669930499735882480468822538817419319831115636681551390142016396313201231778908952011466475704479060049185677162446180949506027031396918335671562830066171515942409614539592641397991852948995291046654943427414924604210814411995210949592361493976710380406122954986509060249790869373424403224786498922061577633853082696679601403612282271066296998506389952849160022486317175815819024601113115908709130336792348666091397284666573262406605192683103996023965747846244492199608276470273695879781054543749140490766243713469593040765209178329209393368367528679860411733046319629186873302160674831039054420427656038748247061373194402404199349838614989895884404541607870272866893287979333420454137828786248839333285463617163032887291975791604438515524801888429292953596697775730086321280999156446485558188232106347576693867435701284704076359842432033215861360297913954259256164934588187742597027309961317841922415349194104707990637497983493841893367704211912226803719732998932964008037541954580525284631972156550952703884318289547926394110497652973541199462618145445638481537455166098653756408613306476601280271399313698625660977527240416963411689517253814580599779276258461067965210102633520291100595513341640897245715714446001875484509784356824322370347985579400069212800453036170231275812743003153382108362392832236111630449868999483017831977544517704350630486922223546356471162131106051619701606373423501476498933660051342034841370625299787608427587930588084854749171162719599819480664150392523529244003829071531258830078544695539143501569165633217461848865910388792275374432887807180246123206148423620621337112526483929251479071217242967255684354061530822517955584975151323834475183738704310267270239515078085170285308908230119403399120889919163516169584456913056748970570158867460594687873821199703996106195004231746691121711579510523273225640363712759324496618411932535784760808830177165417147908088581901143664630570479947890219507968423785585436250324570249425866529395370543239201979166129921920958582672841560999058901842656408755542424120118628867760797517564435538727862000834572631468757068877716249235480229138390036636977436369863790361291688475697057625679642895301125454554022017055576123242175437461534233961874722708864351005688154641067662084069140111732297857834904172849945344626258076412185904119397004591348801553659969110467805867324004649443113855554752260644260301604107879168487420834910730070593054627489112593304683259823020786565080278090075735424132049094865036297374574685893615636149227031883025773296893122776411050745756913160372677246586070717320203155973881258776140544023098744559259691029499596513218813521009813470252918443083492561583253266711631634701339271540571549754196506904558675157027387154327588872980866633545485220531031034591994239647072104702899744121105530581802955178232569042623044975226822090364415699559375717480229391379890975881022273731191569098210234332244311899767202478458268613272803660621558606954613184087358932019735974517153625873576964785308232991993888542324387160058987472315900757989014239005814013036854453132228814863244994976185539686457875600418741671003463907253575213952436172192331336945853921488848624190873967522734920743207158065238026459046494313778137919333197023301294359961916615975884473569322723153644665343897448937691882717892563967382440700275743548424786089013771348629091060009498298820207020039119662757624895727881157580227537694074119052476918285082696371959377534941978005130045934932519037763289989661073773175228859542916660135045456687086402623336106235435011624565261411225655071795953686977838991281988114395563124974837851337671417234652029577280041238443058495602394142897316296939264853307411316352561534188064216617890925359434188195928581051915966198828767876707368818289142604152646192893353654290692358263792200391086300227582270904344082230342498915680654308052169087022346747570455921014411410715588242114581660189907216201642550786192846107942425764990266926172530238995097923912397905290855951158591951188594862926598886350342301553266389593732691476094167502149829220155445924111214150233548257112254357678214804887372080023527261035125574417897296426484087091335058787424337456139591591291615538521211430227322936460606308819784712947335570990756061706093335548267562270364318464434883893591484435778099468700536739462639503471113238721530347683739302526148336199725545308070193956795840133499660730532722646706806527260710303050983383696904753400242581163606501781620630341730727688401828761610033405341471393075926281064277942767628730658732129366597416401385669991655298042256251339018230914907909296974388153154433399544222323727281963491402537486846611960837101092546036870138023741126263556543090726774035136447379240255022880944361605779253234233084064331015250260197535992970086266342901699071455705115161113337648456663257444260021686887933945307398564305513378225537831254954463916755054851260075801736919922012997810650410144002367405801589695846928184527338290846693259043354328999710239098046422988583335307946848510342484991079061471604097702103305813661112852560744839642719596631115958877727483206923406089339067136172803617354460139270323976369593065241549539589095223556278353815890919857737769140857205987740141437377434308294916020253592835158930319537946699757091588977333956938201888847943187973566804797492510986953741124684744878117817619689445668696913788729271105457382608965274608179353865755159248843348323505463814839900784727058838402675552009143054463333259083818302561655066525349200697588857776867011591939791085359599862510034877584436469889157970662896413687796552624439396573516946802540693697742685465998355040603796450563541841469681463721100906960848964193003796412759775445150085367836908141149087604770582325555547252073941376224234263043033270042743297005937750495496486441829525820016652706271467206796442556399552099953192618763601082220329706865727664578768103634607198234880405400304515791057609883950275819843994862141524119360536765727073819419573214153543308954606788509074730245858656441209788523681720530565179729949655908578486947153509749484047147806401212707092447461647250140623083027824199925065298703728148120462535402753183025845278430273399998169925458360462069772443774028753162016264926410900071797191368794617534900257125084124492616427953762426040583894883474483672234281829751129989550062258808235879123370445590851278168926896737844120684664155289726409007144036223648810830934708580419716265914865709367683416637805732802129116665349025143179226052948705516086475212871327096267661878255124856642003892654996309900526687535384103843791654029544736260165501858961487153172418818935097265857522861865635781057239582669400420392319655222682502399553243740019429703504458754954316096821577007223237034849550633688019705950648622739220205057193051461133599017043117585811805617028947339446177753429619781904951875305139462146093345914648984452308569019129885623157159099570309589903573128132387343920649633070892610477295768577950235863684037328237691389919940058251765959408659050428487610327628865004836272601195261262540231808413041608838817790570753805850737537246810892775542932375427508033831181354058193987453863286578524716712290633546549296869607385826650396178509177424566792445025239685024062359996810615260793244734524092651967032829933196470638007125205076705550192892328204284181734734019390314744334620426679597619032685562123647305180474929184552175348665486342526267410488260149091307801779882754500581482240175026156122627361605184124249510480707110645390278878305419876197731134435996467098851935072053724317485835475783566825451482448713351661106346092233939902691279766829202025725406787581692237790118915761722373025230011616922292937782294804475217799971060087690278189578872545706231040668178700334857109505974670400534258205399340631935364154143481935296442264967613560519906559372450246962940949846741450014340269291676360917439146287710342069968642882899614580668999893021443998959041845963254424139523983886605679474928650292230188509353783143975733293634724463295300700559250586903341367316965690802697648122203112009388419712430232555345972929577679923301014634286007811578946287434565495620611659140582376828339495172771834133080136622772608460575356029713102830283400097095241684948058289958393445598801466549526130881316067696412216530521678190920445277771511929862328648401535177312738243134062407893362546687612195787979594717668974563348846251138726473478836449192217084158050865617523867566011362771048746617490145533589484798461603064252999382653637928455492999410659973551511489299935200279911664384455010473132121831391530099350848358072858348597225097406408459847227116284043364475325389065297270878569702351562484312515958754474806742504070657194745685906129718659406695633633359473068529634226857874933709800820628034859048677311824888989172024977489375476652872739890859870210946854241486943470114428477172519381880604787978257068433952908706163996690352983674922124073522210718608548223546265878754318796047269808745906511121620128891060154431256215112718786112160541531921039604314223138404892304943390261234010025672421252450626382891358707625869656637875091138902190882395655470291474703882934124171987812000687743873247653888683613833495056760164396488567079298826784902575733372381211588498536491890240096586691361791762072503023765145288349528728916474348927928359250856889201315636925672007142533799121198285633997517042377205955178322314334932218976370107074050835743008433741392319724735344478522721854127688239336225981909100368854462599158975333983349440909823050241292257751952878114094660996485830251846793929303409373951417322531372225121595393641777430047762041918103316248643851715406741652813534013476942119648767108733340373875972225674591782060053442319315249306223199472346773058944566715836854486169482685334165084636549163511082187174871044259545840526848106196196672119130785167988545657325956515845981178307884412468624449594487320325970719573683546898910950114433258198488060644938074619029635965381069871543735189796898487779090029429965525424667982720909200540419252468200234152330615089626752084756513833701907296563300219955859288754500083309413927781094606452090588924174466990371881878315266219573439479109472681886667488005709243059681521327795426137501762530844915364230474205049068552721590526863137570440420393920914712559918213812359225784033359542292711339431645967087564615384114900352927143383878782013868730117597222721222548142740322736073664333090599175928695662610741298243134760710742995914519746458177094743507115651138269196017561864199471753079343198004777068106950483415779697927885416573886212062056007409628147522821704637827354638607285088603352914877633597872662310457174284867985528944380903982444809966864160828684372280358417976134460155225917973058546018555879138315698455491829324392554019493046908288251437056557854671444545923538195268578365844184232576862505249585059420229889717200463825263537941082736059972889385122661524197005862902739619552304783955713363936307865120012564394585387883440611741815779333759362956711754968425174803575213600992136483869222294987555735708527149859003906211390958890808052313482193939064352759187659064441156372066181131918718958341870329128195453679197101049193612013061888270485316234695367517995642881145731914740049880968293074555785630967155309321343913034570004213538292656911129598474891638546555051760370864723434539609362209337097764067438593990264462962739210308135706541417726888069838560916686655290736118238230276325269677911426783784257482436876532521157118786098689452280062570316858062963626476116028279267935507979041663419583421807143688338175113120300515645585576705017052276274858697828589461093786103220477413463820332654324075255400266216201600387473752020926915698575484440542131014540210527653407925837420651878532303009984763249924825238795781170948633844800467050095016088876979219930714254887817558801662048010972389735071299050785689987073139013079622337242457976611256104731387660675796874591300308003046306850316571837466245352277429679038522639788404861002608265575264958276450921634976449409410561617343452909527456892151857829546849422755837699754757975262603873275184472237992224964489384052831684344965370541411311963389859959357282002614225439098356547178356154761977667907348158640797316397412264028605700958582335415827785423673824343911312651001076869982875707173680476096756985689766040632120717320444552415479772585335059189583048151281198247485085636585089912924891039803745652695794971038255966715705420369561659589715678968038430742381259792566508704672495888332526781213811215017441274031707688697226181739601075364719901431099848708518917684494655636593385403773181317591572798799150296625489996214052718797011556776802157082585080262561814739733755648566482535487885204864308827953275937322546847425873623955225199952216652432125731177427869972923848763616820021673939116325496698891560049129208281396980018982261560501482327095796486464567160110800404142928693572878590937467705047086670354646200232488418428676820929672305939317490054472341219901907448257960088905722827291885078446534025177783816340264647122245088673193151426407018221115388828159086613778077454766746126738084352139646467412538376603787941806973420313621023355074209923860099066579229836249259240730674594917147951726233033770467143407726842241343289128899651627682260562780359471409450594430275492050189239033262996706765530595505243955695107921997049924100711395663329235406805815956358863052797823820799592793421657554178551693928939150533731956579268021952569803575185326236217713077710756896364451199891595654727735351645608745254224173775363220542182061455200361416280685661543904499789101099385695418263118928765907910440850921951068577854982385039550780612354304454778133997413226065754304040459779314681515516743639064342107555736730368067478468828366114922640082956295660606449837613229613659238304061244982525243263968147134409844713588700295346131496963805728528647840095715996878145455232947827023217446745426625158066753683800940460889380274770760404846403478708246830768720334083222784417469260810882585254419921507801370073865524796599097865758394725927848247496286409651692226053264994201380257843118292099814192169110452410370409830921166580736729940950343161582735695176847923771035002680547825477103840395809380091447297471204119601613687698972512555460413550335571070567178038821137841196047520937166556981336070486031078167341801588732182138254715026272694028899318081374404780560362829587088799583745643226457469511596137618828208401521032475458778558200562548551736572162590916804581253115924908584857590563549471727312613198844178175669937269777257339361488280246093575529063801732387759396212600702990758603924281193535894202302621386843081400859713826745645621637694738367809709361033066121830383292530920416274001453711235375934474294152442888025288690749274724746243488052359126590453887912881837839348349236254877036672699111470598871630091957602986478571510093527799920220442531604318517397756298969746091826079294219611234772283882087997626619092425901000781507389008733999556699006202266134540397031060521532734935448059839445606821457383023226209769934419428627408198448673491166320934547118928301432753390369046416980572220328103031345913957492981115980837385195457400527567811012953703304812598880470285627545515828455598290024054895414754115247475054506585951313915308359850845332094354566565199804683683985229218007532774569970829355288877816567496067854171347392216602311387637260649246538115851025292984403716881311227283141737906166025767608361513937794284525645742201942002820759307317966650597362608099580363000369029317461932954880277706237528855996438156835390728648457157606136094433237649461582051680064904997957395148938450986366062936485554023414615196484430810680337183118675520596608186795207791769199484610641045007503062625039855961685788484151091127963894598070357248976205081643051176102997610457193884235235939135942194777710413359808375838367776626645975634442905009953924299117384242635702997445535245756469651290123185123460453525085028769743801396178277987469774751307575468378778152852860013730303301723607180010335610688552916883010198851767110776981316352524048758504180369407377648040548652199895213638525987468672317572413106906199365411343445747899989756174987890205928734186428562163558189917297138385746291013838393563005753406047595037548773584639017095791087455662835187417965861915091906560510902387085489269723682454510784677038355459438121787646191277557562034175690109348851535608967710508347455743877350874878739032527749009104702685737053442634664017325259674658640224328012250456046929779125303747661690460149244772394875243633180973275476530244138359477222601580117488043985429031004553267547300144304670729821674611547163882261499209927528765154125456831669761077873112720579664838748697882883825399208116645811939335060004088021804597050500223952768450683531808756727277903232833564897832592722846065051559383648241237043267457897955247680882428993184944339326135095217250183556915655327149988893030340114356423240272876063219450246423147346118491770852086833707859556778038552101057991317518899071085334740274586872991376866087253106843610478102332258837470728143822849664467835828308243553035890545857663864320259655918710480800504472162532342785132407381522691429406560308644197630773421796776537280541986044969602639709689414076058850925381543649691059861033539910047789123813792374763846041227821984245182294080749901310193197676362762250622174354474279210224104237439387617946300368698105698417955003114177667124500722657342092228481265269729891668376464151802408101098690341513365310189135891908617392110104042220827026822256602628998757151060313212109012286839904268914464838678208637987515974322546172660770893576944053614824921192962361319698197883439176972809123381350804508343818636860536073255724684935410994657393973681792076972359744156446529070234064526213413143204797875091962346247492282785063011476874541322342603146876778731413166489815098974890507504843265055617530730997076902454878830519175198647779908690758436315482009462639170217273278205931224836367905844226008502056851568979868115916122168058384829577549703837159429009896554080013011838495492950010855373419125525016298542714442860993954848481317534776939411571826210845597508260550840002126654984093552127252772492347553308189389773595186109601594471312588523897928233589775081815934768274714593582613338618362428446668302802424837392483673200087275315384474971803502667960315430078560201035953217293330106946485722555596613307034141078427491880138624181637245681090383432756656696549776367328592191224792031727011658848899083862293926691063598787555471220181296038081913307718236479198070440070833251453060312454852212862291287495447051947914234305118260343542022528324889292146460575926690272167550923996597795358733070849137146818782588108364242028160285212098710691266294403964458608674319107161106295512532851405178006729727075427665056470434516218754285043519612003962657568548060269838275005602792155719669785386539271634269592832706451629302940101600294396487764757380803475655570549061694787001784679219602430904483313459127592948095141943199483429139811197980590293271478886860306477589328350501099508425159800247530264618107350195838495283714830248943453169237256902157193648158716501511566121951886483930068299964114118973976154083198940131523016414462882038721560170020627043610525683119185012237693268390937316979366742824028549374666400278780716253706318560888559769956807401195404357689094521367468895025895318561102651747506558456099740832442019758448560890231731656850943028040657723407406828615489664149887317281149127351964603357181353956240489684190683746470759198476801652467745729111788063297009346670799996400995877602744744838455961512873526242212881871380540486001782750108891916573013947001865344006585253262184698245776455474656206003899562673351323929721171736898819690879282758442883909212037139923475343863447560286533817871417450054503849593799611273144723814846287335664213465442822218011862116636441084013716655097598437472981833396362637366389307941660985158073318353555820950562626682782179409814518230322453843080787300115053888330155350663691166552177035398122211733965479552261545021779350777144668825298619640356319902172768557194242080648963101779006309997808585835207747183387515797995547355429904320675827703125267306267342567240453814164098037558811477945497348058866648537541098007165892240411930238898664811531033863576001909160362635257454296723742597614312369768143947030286864135442245188745333674454022511282917427780099942941370753142572614140424465351375211897446885066439778867482412930482712456714902318524555390101671797153629132989073719262036937961755505906844116297357549840937716473720969739932718825666824523746038010616911838352662601068466194658667986040852197192964445684246811389448988519234308016066906669030944301286161379040315201620058767596497034783044458517597462793777653509391556600783182852399070293258752496609006321821254007679385181356384574165072112130468796436235413345737445252718251342574033310740162155128775949828414986264942193123836066702677825118069480955084833841250953539907596582472562148664467737922691110712735200948339225885889712717298949064873018804066058766141719802304212303755370957465157792331812909675267077139337512266045733861111443789905347162966750812309594199937418351170021208027096133016561058963944429749714352081190477431704102374487590170681963300179793957180730383956557987989643417510145433483556716532992360378132381797670704064967226165249850945222889065456259942385750281933994161404680039956104579712260678717600847728759514374947702871064595080576920092912746874355364011952592053329075545688926326323539816871754381198147760135787763840579107860972399626294583912544971534106923098607511714437552712637915721643412437502063666711560172837932809313368702497198228460604903121501500488881837393102003494323111480496831014490081175292898313673035608021279827240759063931166511456255487056982994706823969410915555824869852848900604613829273534086926500776149630948499978152884331061926358562557541157668493785673564801430304857323932579287316992723041836675337557469036893761613740302048306244029554412991944917697324014535147437661902901091560679487824024977745058864124014744542456080092184482157223457947419641562502558441803555465116079793334353494992939846139363102271355842951745873540416993734379954125699281480149579870194965933715454617885805990211114533672306709323630843650523229430408406180790948126167769035276056258069661106705583746162653069523354270617999269460456544893259290458413527562986337447908636816380195952687030079103907365315746005066172087847814320332325133246991539060472366375146375072912054661226680181618751737741326347243294651865550018622092069079105378285136396038107860988550150745964846947510863481957597956154773858583824168739695359091505078778918221592450115004046428254749496637457801058503066188974976007663391475986633203187088598465541486823011948841764943241000442835214792470801295793155296737941001955115804269410329308864705185112906028510385944749826916818186523554703321757520170950667536110413582341698684333052904654150688990725566278645768832540165630933713714182406673966252758683430277905391187838604764360505506079167625217303681056980007141486422954668511597328893263391003974669560079368178009984448322286468359217223118272774999931870154692978609952265145404281896672325818988955764373110577833079229335686778545181716573993702465650961737948890037342044726984849936654019768910796534131226735272867232282600840887810903906041447435975132765956223809887745661566440636670937128496300651019032873166152439797469466039905895586487086653941487365820424945895475960398701531411112150317725821288682780739492817068177424860802114821256445901570611434693761921929299702002405730100941694595530002430383523280923844505423413312254133256096563406616528884254169841513388612951031968437943034728212251886428042585952539574643853773203429301864636960778946616825618082963672502773859838168268580484184520748881676675491173727317918527324664027115359273210188018946009289076107896528273977331887597491905787133725027513757308903288281945283683764378979541511624708516315128415492484586550569139341038982204485785932376388330000021259190353654045252917733109683992292674447302369845571453657557730021000317397976850528380301569611829765928078691169514576598826691719203383956145447806077813005815238702414239509829996407319295888523725987349083097185086172443595805587354460203356128280571575463170914287789436139055037969080440809904583601990005397278771953566525033654283247863421539458548619216185550715126722430474269530912114099591307904234974522673262428922021768939621116860934284909058717958998197207104652652745619823186719912565129089153003741632885173707587981148127550296331087397150247673490798462592892985134529226409391579109819286029828956020364190050200343287798070083257175171514567930713480115940284587900798540312402565604600145503708459621306666260805425326532191094003743954282151314835742892310278468614738052718760820216809495043368160417242251932914504734450760636151994714442604741304960292803689271095332609249831097574786997115395768981565830459675586087374836366140954272185208505695922599340692218531820149553982523356508667609257321670658350658312206514623984605682776948970730963335889215391756753214546433054642176213521431479840397107714404199521999860681179110022861189580314709250374601960729828049803649207399611100378445065238161445692012328846575075271765969921708711965182911821404581844284401530878790275060176557507632826215185131975068036836201613282110620829712348624788712736589500175353092148527019258043059439314762009904241725478840023221633905322790138276907094464803608169650099343059449317382621656670294772067039354696616345007283479447769860760626102609421270633427686725369616132104062326385948235923132056140918522997803081503919017719580277474324674169824587891894691485635024828943426875740347302624242257526888963286432682039748783413741716720270700784969321888094818574615880925826419679915330267992151499915755214793492122622844749546544277467827949677243043919425181876137077563517967909272839576832615734301249857255924439730074746598487215540295712797551761945421994006607214034190873787600763514553871313183734388999114793903326355850897454203439860603726264974658591929305789508607728483962719437616024159550995471937536577261401512745283382949417779459249021535272804317265361384202520004166506349372353582712511933901809126074802344005736019042625871604889658186002561422804368113925871142695031851977042172129007950865759651134891142262153951046879704996734939493397741138460882517209074803202679903585861346773868887222978339605371538665982749472070427617799476838402259944435308612635018209941222116741698693365425077626664678213961722720341417051344940599519872894940351687163782042420139140694347876039049935547356205725399350649196955600956315501169010598013521451060416350392941008823552730781849616671127077244527071338657857620188278488682509614214620416009827073241960791625473254697575308639782850022919941990122084972409381077719903368138259005539740347085277815487324427527611902702546867134290020677712533578539258844863613235423766997027737858716847280391580924272893316076674557642647552783586289216600213700693185024992960444563174099282577377699705219779884549462299927446656937146627884123762393856003884468486207018905804290701507844509195513086917489561464502500276715453263582680001583337406646349804365110788403872589287290296338938445610018946855113748876585348561440228708620460540892299009466162381011596901256343557863115830782120337294881127940264702037358379779853775649991011249081267803766423812912014044873741299627451888993918030275169748916464547192257858510590591870867983380845530908434429791953614688626921930381140370691038450129774167092598849127703408979762499874111657697979261625519775970362322596377496496030036066408638063028444777759066517255050990002152595349708928374119702246306012533734475693941311950666947360709438415490250852179119743284243947344688803183460117624786608706716097232634093346552691962228485183322253568628445755040484893499580743554098099385311799386900431881860985237431867628659892138841048811750841491378521578456087599120114785337860512377989688040683019606448742120114861855017266321694250882580328373259095817588027179525999083860922061097878206351282807871295231796513199280886622415427302723038632995682381430947363898762040104624058349376155866060067748690060768917217525461195346721174383385729402453919035041927239898987940848366571039275491722210308671288729527689143369973590545036399786437884698678401135591477836690618959286355760043944729340042316268097764423107598779546568312272666690713703535596664012809653534197707608648499042753901539602344590606666027797512892899215556138248140553394015185737940818543273248051494799882968707465360877361945441340592230757742350482298020870642308388481424683061725242817693555927951941278931056640392507053532714314495524269152829632153915938285092855526947629698366638298978665572611087247194864508703425841554497572691739516207816450267567031652822910141140187395165104702164292532054963362990286247281684675729202693804182467480905592784166311782221663587783359660495685173928317279178442375082703835531683023693307795631343091534972213749558817565098157210366507421978929775769113666279351190742059349013592087177621408035477222223648711352260440348135493146485485293920260138217334841240490084978791481610247310186943781784770646823430720400071867762352596532208359637901825081269631790387550166289727553553562876025953361894180054105391614865084883654742653451718554094902199469775447457946354100227201943335394773600636473605018965082483462015968432050290536175480023961665569446698021812980644306029557636521439220503086589128059072177536571150711835094014980214780541282372779680428819523528497600132417210291244312082200548659566504375007383561625476313157868756528272844502941949645824157275144575585212900258454055087503929526232746956192922200857989386368956848537836058595386292810381525056838883670904193053150673002316964328140483808636551130575534115648919123272870626137233114108365510287992948536927304813370723225707107396455083908859348200808445852780402154231576796882402720828827705326907801586032094349326099617790449672468618169457881852375619334561040101442193757673067469220216125397778007458912256699041237826652086999146336491832218872152045664992471921083761488952045471686042956902656644851731725004937691994363294255889145302109361953994665397939747923969500751395795393761226249143296965991420219439522609130023885209356420288663191246498852814016693623558073014202912388659119843839545661210386879389595828282156319314863613860995803607567885414775716412671354509130878663149860959992683548124745625124302773659788623035860450358950519343083429558265220768777215579425479906328529178908306639230994970105749075090973897970940266196708177563584499606146402632548743919457066529001545666867816021159755029237010532016708562504575482191790996108261244432578484078014003854966865721097379028971962836025116144547801072392881916787755929005348912674405561587555570115108870920346919461464990637641965837246991725510320651151218573092316831994957039155887928236968489476852995630252825035241520915584776456663363565354093114722795085069983457840191994451153324753872518466465986690379181729958840136186858148768874925227561818807727319957261054487888618554678660644994277672562822903096841543768286516777003049889082934213115395820591235030788258717312734518150851773962515271995598736475840135494429897430501798478656467878422505054389332015670305314946970711035605541191661542583813134699913435115794574611327060820634692714668875101870588489736710532022103064677541805405430989397727879698087636700729543416167908893856069388241352233107999644987273605060191320355794959706798634577724245592387114768216383359952451768995385845009791541572866419352914277230664534048378901791281559113751689018056485493229631311528557129800067967857259554900808923253013445227076155394980879255637866373768168477910090069343447811955320953471758872436457191767285697972088234180423799267152073145611052533123882821794040714545100137582963516225870687454088757366415893025483276483574690248288280821154400055922214575915599523644821924001345751895444088015636462851605797591328364490562626462493686689562475833697300956437506427585520267469928234696799728741165941033200331718975780464786891561571026862313514597781463222776459391541214736015721441896077638545943224222341533505817695322673598460295269323465167870551621453562733348175137221125531541054618335484240232641630319649800999475872066001793818431193865368915539246831208233759913391777755317121575615332209270942453218781358975513824171539346949481941655827738526500894129808095909463401401857852143557374237312127953250203203115544223739030545836992274511986832571994245053727924600636540626808145158058329790899974679504783935283539345284297659050770028185708353909463854262030008117995426821396724031866980988639869929595777708599940517635726878845180564274589016076035682107464430762365896222568402718373081321376026811323063445735433678952565982946374932746556532894262738512732926241475517586461369234829938202772439927327926316127824004716752464672612482263778295229102711129242675200236279038814226655551411515199324374098617705967332139636615218235521742929203641153119412020799768244817114551890623972124487454896167675271648047653657790259265021886477316793584607357848518625925085347365349129748395869629711082959726657631311140133040769523936141219757030200413255994018260267908451279409369894098946511173663471722650746993271875216561470036483692233569909142844834054542404554598434894602173741357338421981408802514465083489067893243232304759801623466319376405907434457007075255733544278036182641929376430699691102473971204553264930236409984332282831584819909771281873533690799277723951178261935917874893612468353825758900610327373076034097653046834774553160532587538817067840294604043549664377158189424654498727643453591222564392946234338662458668994826279367496325487037245086289223751762123031617670901120014913648393152008337312530656814098172471194135925593263030587081012524655270744619797606771062938723770887293979619458863635728543135072436594120800436513120996211749798147358179659956337224945975420374619104642398928308634500580923020594962155745833436889310271382999363836604955712599332034815292713337552846172239290942755872780652566002132614449589505995979239148296332698238319603289835191955609475666660665325658608528588990759699604531082279563420853613159034811009115419579678884931508605378909380280595270040251015399574961123281613579792459891391112690824876739993361194487800189313555641910633488504380687497164264886410035566316885910681538591237556212946607291302947915206803774054548900965632973920781100743833288893530522578905557756489852688319066714842244719208034075120313723484161801414919730818561052830518980498287591319941067165120664594946883059264247961039389954602526616503866104174197699312042147032274571801569792201445856139602742848770894044165926450136719382775559072687200177948189274737768766838338128846738804075382319106553136466022950516665168767967259535879014877806375074181378362250848190661338406998266393409212479490745848447151272584192464252411726361597743941179725928171456564236093855997018279321044101523181085900551292411305390451732004130320396917295152393880939649547136066703696620015411880755983409307129346609069666305895015704468182804348983143782897711175328408421173860299374339911276612270470753332752537069548659515910122402826347215354362231871091195474746184882275529646074685168494459725710093562328365617419378920250651046867904751559728681890433575440988947746723110624052049691181782753617408284906609561684449414457772551192146871237115124109098593473437743721505496054504595358287955630645480431396263646672743907538168694660951701382791722704400202429415271361798535510427739262888276409816791085667486306578977795415785593113958242406421250532531538901853866586600941126762020390150238169117592621480956869672896458640806167623070104170396575218817444671292323756245070174142090107841986349595941290126965971687339173221595830403109876388506409737845768098859359504130751536185747701814043249300441516038614663080918395550330268543356181071882718540431723341600341516329478682935413373241802972532096034214324137949950531418734673226159751306291031475400787479764781639106177612688083352555504884803501112643288928519093473958970510411251988674570494978214278409704535031996243996490820158578568560645395889675002981266068792613846199576877927507582629727399400645275882686120489036172306993393963243227685914308728847356174897095195554452847808576016516608296649080371324995568696120725201128771933005451458609951115704858316502687481523246478491257539100576267532074870013749885527680444858444158128678630192084984423426179860815459344641279559252116344107607299447928850519568238191465588097697338702007048130768688212589820622544499957601088877088206340069392972654238523721659105028257043722378238606765369770563319560693317627435644984644267154677161212642034793547651351523681906232706735017364059275821293241294177444179293695357195621588568704296496533672189925564318080970275663710337547819286148288835946355994492884614211700747517631039846899691356300527958583665817061695550006026468459144613790030621739665022854965613257097684268277621085433392686745361354837602813039007431309166309400899910450985700855588871082214520947760958937138427399447916946765377027688011680551945889107518059753702966596550891070546235960934499555666064483673356602480322175717586614089367506182047713673091435977376717032699769389464982240420608245833684316084462735481224194014884015658075051685864890842906984909204784926132624367606775043672626912855088475649078009551036188122118293193132937621330277856867944983304058589060809167762121065277666378330819684466911788103661266053729012465771445601254962302727711999341305375282810566593796774529509514229589922584932073410339839127104210821288847763928517170685620429219057085245019633151838397610718609392769709105567043722429993177292904713677192197460039070760423733445945254811902374920225019653222062831820202352982508286613791374468803002020700436504308814109856875677951593409607697694440445070123860769644957116860727803722258851089871114697893992343469924227884100453630159862205265362485735004222303677154276525431573525516171529833271429612970892638015537119700981411400495313772720379993207253544724552852512373244589395404847687779841336823200429879306749210126235069885944749913051438283239273764528913352991519848681850782115101462859276080377649963658397945008010716779780448775074517246015352479834311733763338950652227271843889852985273678073508784135370370027536037738813606749929767091144805646267874773157972699840223730025910115829600275438385138458830590655416899943175402413997709335201505995386200381177267456829859903557897157020622967336713553061888706742210827892533953212051473457242856411241805930509961384015690749162108681399657175980012732464099805501375439984288607619866608097913243932711462228611895900120925606254033404502553008330310440072154651874592488124993394984974646595034871712143788801740605744479383899443524874100569190084842938177426125274301132969819986068795573927580029842517961510618321100832731310811305493136766576288356689633431099058196395889622924235934007723559854299410881382700445784447804826946272700426085602192663845739582151771314478940852359504160146838258726688666994528566801898063639517757288362173594441347296763209366929392935857588129238985346573080767201280460650137876145259013204964620045368051432119335868758798943368033358721365286736985808343721783145558072251894153917170168110785466935817997698198843246742747182367830185512708863862036356939129164869774716324448927129091057745853326794308766126367425401493784299248799010595499856560862745718680906957897929238683162613126578175807962845615700009611314803322793528825297082224193940390737199811762553745598043195585412497327321441448827739360588169636238028100729046866205581919877294670119347556820215901813664988751196334873720042048397421484243560002005970767051869511241483831158888188446395713964141171387798810522894153878483422995137114494983941049915092231760199538587697082226886516268262540341239904903089453528457397201126269638684658926794537253797230978127097638920575113501256644701537123726252840940898493192238314249368750288756104523788600113660085865919292449443035512999508380906524402502886857379051649226271408052922866625862530476155581863976280171412380438825880451148052112277813795163424401842435071427712784199273894236122253973288026939260314211664236465114386967435554300477917975010290132186987627602273811680028013928103521882718013382994406654666485291335651805615205471075264231855596013241593974437779293274008290007769808823067749937940525586551258429213859027691919808291210386669376578000956975657003092216242165996410234157283178145241263121835311794035317321388801647002174245767228271080819274361234403651121282111890788788837472040958696165126290147430840973063856794264484782318560120937399013780549707264839901061897796409128336236402302039459000435973289464195799986737371012499281692400174815837872685603735092970625976506951497613133652741693937022550233233501417815014462419483818666449956949077593854270582902826428376692013045880855305640702310209624810865224761410953394454604239067485271760680801658849696199858403185336521495063112201690810223148104750221901460206080483744097120713316985841725520448840068415993581874164646816196015548327751028381373841987098479579510579787635058013995169213338354537118327939959964669337867428761315098784354670882852909979580209722975525171349577669197136908023362655254468325152309471439780964031176847275554924261147860581314153032920942704263690048637145394579152821021761787929611119074922232714998526306943032468234205643416145140923507378467583235306434632876356402862377774504715591404595435768376513557915818747104606992243887636963878552431493828154958069460951583247105602265797748171150356240068338287085786249012869968458252345015694814546242459965320965017495859611696967814371230977413316657727218916091485119818449024231273694113217770528509448384376051508823615517503260692756793241475614877882590777871141236612415480053398337041207508908548890437441899356291545244320659929070302386228471170642395477601953616202381131083890152632108270795267061607567315510506015181672520755461688614507771987984215050611720806330247271871521125242991715607832493136107122265471488978719257482051042902656396125657096624040895505109174406630448086409938267986523134890700010696799469762965139386908764073261069916071512829344009787826392096223853237900748601351948694412411561445361795673195970760006162987335783511084830801119444338113825911310857175485592987653104725187342653413828488214108475270238036758463984250784543857817605247142191083542539001140405042922906900915922244391955884571868775081839187294797933032519035108875519808256485749184396017974031971251581245617617740137586210840180459430469647056788481121467256737915837207190288858637225339000645894240870698583661676762559963388255997227589769702280758920890089867982323853439061442924603017922360822209346061787152984267850134953943875957802215727287779754081054814748954225756678994998192459234544864470088768888398859318785237866329674556694680383677358617105624466456783611544633246074514035119911172837029871883765455465077707896487361779041569574345806552450008991406690966642845109561921693839960654375801630759376524317001721003715394924836645038034933259535777091539159707041032465857077680217326082351240551736972885626648414757199862312256449625784305178041408181964920242717329020233874195851146552083551509974401457870953475996783740837290096814039242690685750682446157014548957830341450963455903356138537758442671733549042806835828516022004435909903632792579382919221762657773839530512932935825347926056160191135820748412028841701667066992305187429099697181025538831615028921887919850480963758181275459225771744477541258778251305929536722874610186027630182134665565780061819345861998561666104468168603111628439564642417167766528137670241450022096628856988060064358504696674029652595837102644383505278887920380343018310552438217925304032110444908928869532714311420108565708707885621615950692299329046560373480467941330512516351543831766487556825504128954452339330847592942508132103034319194635541640636526661130867200188583138776399010956878880355688299797424471222098386801413343165782359953120930848573351937839210942990426981556152867628397924276308722975001937247807503323555069235290849470875478918672345834632985857189682123260976822179289535913142034867691477905899882517290981309079531250751690099955556869987442075918497757191745934465196928005315009023537634839780299068346649855974098863914143314883240542500124095136538400182984060351258368429502707679670688816498473278863861217632357954175527164716190591233377676712907704380708343069325448654750473622914082745924779592974881191420964460607455726812832233974537970711509033387842362110119703335351655306075459214476016542266637071450692457958508998183306069714666045358415994456086153796992093222690623193464693725556710049232521910891090372550692099084799447692525231569482330350233612116951035549844566855721218998700715762588854381916153756846321927034754884483501545481115430536804609956540295942846922862029894068299381340484421166860131634768220713439901545862689704963205297635266938726479355546780469661873370509997110756129570264029639262098187025501669897264913638073878254189323894292426462041609553114354085986811645891195190808490680542111291929214883998529378526743370845564970283786137178038056646976991025993553700304464082991559024128866418413248822337014324081323090509216992860033817007162351788792000929789384419885788508291057212578893450266653339369481849834909654598856623151418107309879009147836254143997866075798933627988795844422554303672529702387770345891597947903203337907905668497408642705505503566313149778442871317310263316282142910950514221901925369799035905446573479230506826308558905275686070213138069060269087594097536885741400618850043360218338588033064490665268565550713106566202428013399155066008719736898914734876466198896644916363656403305578083993567997033695637468939612358757768588722867984569875169160918630274589621833711877654483310661804493683985088201525510106812208956414978757849185973635168935609829470464679780106580428327746508934515428234112282345526838988804237203217237443583824892905103863302439640814823031249815417562091841578804557889964951430929880637259268662305773506969232347790299522116981618921261938632159702613597645715726604845517233157563296726590206983591451200632342431032806987592805595449936630817989683870743837208957847505438743045114379354868005756341765472944254652562458391157586409220988721163701481572420348411973172928838949471676874908130596009099316256562516130121802207006224589935076907680066978186317342602753540571304877439337336765744479951292602458827423419535563437730488353045240383441352063751454748156630503039567980834102422765770070763526802633595259926679669048688126580625276015051344664271810409891244778048482274420375341999817359023403685474260069432042261589131863771941905471083476862023924380588659118602008316220532590182556614223508713805291266456449424473423438724995785834190922816556341464442707633326274936573164585483002507986912831367164975442401603489851925936745330006465150392683743269267476708664935839481154110273233040467332269660589180484437803122311666210368601797005591765392847363731445839675513868707787233506509841965588245794811609980994079522489228515778097994574149333371096155129620694502843910714201403871271760001224601419587844399105045276947315885038921563045142404230927740724764035780450904670574238304231677911470270088687540926214333189979841392393264750424187194528488540179131686336635383522141130560620131877007734576391611062221246448014772188465714832007264387794506719683572463304009289231256604546787875059488168057230268729072926504923129937745337763667815192844807992801740462252096226916101302587896126029215799295043176054009768665642651504684871461772771035832636798684832567246865953743621794728188477516138030876537356981024349911207579572700146034087364584193772087582108418200292449515761776916375154775852947555624732384290263819952096537613359012626571870770505096528415815060406630699398566862926407026132702769684196520734864337273575611078531424308192216662075918069118455681352971957995872862311295744111593489421327751887860413405104854414085216515837084144779274201292823208580742675516073453839313109392849655567033734527047897717804338926471320467676713869752098239478106984978736101381744286585307169996093088068343122036671780300009608519665947411734139588162385106528231121553121671568664358880106183619449605938613741375487797858077234292236386321689332260893122618983910416153227720770728431288485660019479514956373167870863585362427542828266890322536596056576180247633803718829590458357123960352724082370418743586241875305742009311348410704816686954088320494889097846285779362578084792240315638807743103045226554065911910632200591542426565302458967165657081839795605488436058024650459076312040052105554004771382741273182751552979582184297614170280999705158468425086563601998117236375688604800128083182738298197609964779481062024767985455951560558360069155995319382491224270514912505265667932006963654954432783802761614739027403060120524271340333912977915788523565520076340282396296592992783818053737015210300085660477291042527431556059098746022302584489723875240163183812010105381515975211869457150531134995590872340838446281826611901715304069866457021084009643081340532311696805444909635683250712295114033266948213480337062195184394262395529662033557130314269073109933239475576665996599235122311506890700447307962153019289742979616870068605580571636277132457046984606912385714446757038477232705724525763653903152962268636469944781846255436084060362968711691233851502751252069463991224934824849493293448707528649914044055612061109357746889956055827141628720652727101538535700506505254359472823257841918570546746965272176946931089051827775210829548224099129902798582784990697694657417213034313095320905586375043811600136793554491612662369262158104478731674986588343339649881998209096303136881869165111581662442115902142522088148724909223856064231099213507218136414932561451118373549998164746205612647260572550690546436359093160386353633684974534808878617473458564137716315427335508981358312693423601114945065542239614071077665447607625120364661244729439521592961841318493855782356264626426406157974067413912083084346303805165706030352791621544205497666579552256698315805107308420319866910417311548958273564623317799733527998550961554476435632842671189689107921659254014576286462077346618313667900440971877783561550431995391572879301782791408083400507794075581990453640194389043134728781944729572540317494427595451648207904941225502510600371760675043361142104806805928137538178693385176600581750483691081635627548139523007487665266540437814938505306518659671017117098318057889627993026365105607879811666791499131091233031655937805915481519254206810347911087391752252333450154300224435995725574273999745675624691271018408615350988913398431047222027810820985520636170029438277650699667739228381327956971263482354397116830878367664065781532637010983421407743784168190012646299860233045184598755085977544584053231901736302777492202743957141655908055306532445001086766633868929480070570322951269581532093345043649047123269276976024532410267388686087845641665314906818183460777315724053923966926526919539680185796938778612593428346270141609373547471582389982748201688220898447877610272132036553094397163653269005609777664776420500496020499013874221648871196885903315415178524202466521070628583283234765971219686982022443956898968772606198995884289272574479266945335341771269662488801201575357812779624329899801621272142053149719843044952542403000975869528858039017643783694962619625980690729437523770721416009117288100322246310945675655673242782039768279430310888363327209433473931278304755183289862856032507709216818825814873540112612334558899292971464392534998653439184785828970297009648471171433472181545387218898926331365178699139840245119420030557529057041459899139804936084192124239647390957929879606951757928950212724421951593454507174695689505592419284937898671497683202171993533585012910715316358532417870372777697158957539914528864939997533959477164760511179215279587778031221707385290887834812163968134529323286542450238178033441670776411786638301703061826067535555334705997807298982407221706669395973596735831444446719984623247825050912822424494879725961264980407796080014887478673305781256115109122243435208339213972393722784751417999940656868542376512289550819696891890119254537534987160780021882613670658662416669524022499540311745438400951828527160055168052965966735519344309995070774465604397848149157407249347833106829123468716744828358554551419121144486267048488622050296612110615497828445015542049436423305859691165707223725437249872006873157274693174768078860495227382623866684048778057563971903087373682187374108897545280225048185901699519775734218542333244933309580990991490031848790578978742784800191857958186953654430384565476042951763886854663856828990289283221088381849985998600026579864069075166846395511766601992673581267772493948611213595726920963145101435218519748958754780392394380544976756268885424795601468892832404631214486718174901484142948466592926964721618274167227444269150426038416222904925899272787157365100591462471093026376602050885819478623591151699442006161279771082885285353117359068922522693470804241259256618135819397975602645146353911129806201417556171345262597968082061622514079735842589538900299569427219432034697434262639667396473865446429541583382349685052365427786579281874788028209714074615736381943323147439283470465450302916360442087283761629071631516104006192653488894308543477017386592399044040436994247378209639324079183099884912448597131182957572892017672001781581475136706939765036439653411569436118701558598024855001861025679592864975721933204817977936423060944567206738012235099509777568550170343669063020730414203117976516248307935606497336107140811472079490022318483630777201577998260369384979504284446564233247546662334531299719100011984559929241216502454209321037138443720090519768182807818222120771862265468128224114718761867957296981150656021205464605975469577707267673718236313623262159434030799245592121757911559907884226463849442023589919793889588093369156964114332119664937286919827976040916153909829000122704152017361470831298817257775515452077292674432473333863130015574865423522433134815596029197906387580211777989880862483125181854289309766513352821723161110329494763577174588866666020097059054934145573798852745367324452714044109984783781584447276361199394365274297180043211770463270842319055713378756980750222127497431611465153402562753041520207105961866657930973271602813028748754709022337343250702647435589505892538786283627539856470390138766156616439937304780821816554905133849346348500558596610453443331665127640183862948816456129533562502245607840644687513572366159922841437755329299597725798584966084300744314675808624991170709149550382438574613821666307286782221079373805763144985672933798354641277071938472568350681680362279997133627951846320502827791927666860078064834752934513547714652334759858503192272669880412952240254436327770543627420518695333656393705180743347038668889432262227683128618849871041114757171955541110760721363043908890447058251290946903248734547073582641460585026217352359822076863766969607778796470658266417789246606856404903806686374311749103821033608799570112265126000430625882723949478511787115967092684006772454179455878321641312339773758159651835213121635241218960297976709508107607981563571164937380475613188786201403033838700620146750471418649031445310329579144795583174948458230441033042027972641540807894786424077125036727492419231159992210664376698389260117384145780043045126299612656471903389471808659740228812235199221928317109013688885274868058895232668953539487175494690259471903160951228081380848314457922553300782434066647004382150906696139789164089415388731243137142388488517492156365564195719116320241417675539281823054788093063687119753531094602175017682953872274593257404371047189385035541209014518899128451242886854424348029853397431193336971229913237860115633906369126031046214632926920233557458715334922877185671882322615955503883971743661936192556383049176661374522488123493264515175858532678623479179625868901173086699504299056402219504721402189218060545563910056002932935179257365827102100446561941613254929937430177459753929059839727772645892251693177564715114197276998331542511688751761989946763108372842734966300284831472465160562984987246511856446432426989318375740830649182316536227845799676056151600361512221669563792830388726323632180670671655632746257753480622376220105300548125315803851788040756835089718526533250780907726990111330305599144798671115680386128894294044225262913220969001101051275843136557400554895148978640247231214451617513512719934223745634480150619967449512588421726860121448473110518066351571107141561094636429783022867546101845428744052147814903166149251750329870848624682225287061243724234177024225950273651542377283364564717670705503633481394224673398730346193078798841050677008827828044855196765158194231226868618398380808802604840254492661216553177011431885760769389382180468620835258196847895471454444008436886380000329139130269726937060941347444988103989154750620545921160845569297079564450912457665715782421047234569638365411206448245323500409363739318654305855346007644142130966612544975057807580201254430532624613911444037159568672422298264236302983808482584051611308501056939192018207290589525174437825850539758519608025616476718860099356568691943857922551624420705552423819132083288918978862235020746265990514264457389691615147496540968116650217183216892030263466944489999869626895972922736012081485427262259786159454803857108267782448360488218595318977038071559002674425097402505118350049291141399972560002048183212722946174565054114813683926505560788748901250298508137226197340444870606864731487501708398268330013718702199750295807998228330815948893553156320240974226982465476338968559871129956958808504274045610164843162056904178911521574370012979371149091302062179487814291598712697696362551213466182569232675873162722367968392010169706619815149890157021997384046999096636251850683016784084586866118521337664183852870763721282780704379929320345951069913597027482845034419460495065459029628473893837106735129832494422580315725122261501567408845036364840803228098114283415365399376387493217801257828957576857633617260691626417108850416220696439506416786224821669368183172217895881093933410494150350359674134951005686871298349250340991719300616198277551388221774135591684666535780564216754128616894917438622082969478568033794707513274775451419134551953423725438015926845462810561689509237522645067340486732202620146944540598777844506692548237651985424152882991131873169336192753900865988220090802406305461143936983462302186873333393662572378309653206510446127445789279464032479617692739824379929778752849914290551977787717829647458980740642131250834114114949637457302274480467661444940845395239521645176104396613213414108096361506420415045858926507151864640631619564788429166708106587191140315250716233909241515460492125425288041012049091883281965248919144433277073152527308706537107982778316909221320478010614493961345579630069843878280405135356298955589418365290588662230312982777085571064624698207689465027544363615428060885533577895905249294705491578507245116828848891321619805243050996543541970969522193366409475801333100735534402722625549683822530370409232584017538374985981510354124669909681236878542955776364651002714206010321339532792047749318437674286275384308095944914155749911178100978325043934748819828735725722461591426793686819652384907655851098633673153075600015002022190001417675954198826115038671319154291389486497381022600095665660584645060958619487668380250658456633404614469122252875084610797714816136171176156796973375118940252960412783532401499825131842975543495752206441770818761167548196815667745516048241225925523616151013967425397628478492296181011935911071967826075380095769245171329726572236775336155223409749171967068881525770258849539856695188542288459470512133904594890190228503618258095754843725070428335058217035545286546307779482054050234734485850486378022110083914992952238212932448808569396749205138358474688564555054637202638887111006266583558745058881603378328848580173000121484198019456964176420186387530219023062929451482450227746607111577279927648115097808271369941938675814907614185688625964342879446241644930012976453919865015551187921672087391785378754375014680335839859834882272665399556041748272566815256713399256944318140681779101141538306331445649069708003562993904309841029824438441177513325928157973875227409390129159262140439037437103398810579087898376934422211673481099695261731137568747709315258186832143363604968717660992075115053459732273370197138318538667889205618869794169071565443191241211820347048936161971721144396044869578586309434809254143953333280196207952655110220697258135868817282702447833144438213753222587868336862036813242943267930842897514846533236498175225766233647365361712027030525309734746437784530058265281069081208082748433867768125758130554554698749538724342602778536384053000009106459360777460751120075241086079858650580842472138347968173130255687149869817303033227068509344994962774816022027605034758597100762715263836741677204612959692066964232114143181944487173437957504920976486437284541237096336100849343310456393963561727642859687479914188957211876142807450383699039205652153804339459667792265003352539318946783256208010885262937827919756859411509098895282726571710917077417025533851239420051800483499175224744997210197031145636072442901901605145619440979933556837784956777232761294344366826787285536820704989919346109631370441085733863111362500793593689383873467039325778081620538624480270651860620748671295175800771854296467548978679097762586375943941780945518026385786179165024325574806440167273699354543930347851099035929328317072990792783566612739041516372929049183770533076293387914202710103742217935140352616310143577745169700431386807898357348210209726899312710563241494921629444105439234689588671561163156378675559065553034929825074672662117772560317562590351834986984675089022524672552235121367123543226659396058588991226152718609361678678265839843968973722143418586280367160769066438914370626471635067263553173906697371023188880025013346777321822667666182852979078842011857501157834904435115586314639133187874929624683704879297037230295288133483642079152897966350154562698805113591616596666992894447590669621549540548391440890826810858927326774749330544649083921254713653216111221154205685136297764456169823798984576717194826677596605894229150780336432438651213694118834509657621411340808928995197412133410816745512844855350782250693697359778848655403968193885055424402728971403685729364727892803734058186948506457817971869252590402588511117348689865783647523206126239045137954256701187097442729686138883474045360712940182934540090259441865440831396159967614990412861156872264531523446078550756232669863157186154342853221513709600712843435315617938941747563787574301908988536140281495159873750998128721619799721856163128983267232683431413430792643477003328430140904772045168747808985611505020405245096983021538246372427921844793028599629409564196522984774957171989403816490426521206099499929914046969604198621794561651553912055384212871669300923907343870134167127329962114615338609041386158241025018688565234419039781013934916116713829894616678627469710563949733054248335258370466162176881209813573224109386792692010747368049093023208912736247072441331523201003508312238798247459314395450162690586951469996365298233946934248633249454625982760832402918640824173439400465261349817112664598522347773109139502575285372335804623470631564895420975429761867590422292761253295504254340829323036544560660025019694148970095196772082950789755385527561729775761309957308732673772453537891755576144223829393170196828217955771837638568137784095790745584601518265257409731956882914985698595302997023055875999447639294095653696711549871983673874444613250680663940293443548971452624581503591682895153685485185636269065545649747816944794879625129797491017461116660662881876281209203852800335722190541302869483873392270782191728809603071881111116648757137531746837497156194445405731301977884351809565193084494055983851348883943298822050337684082270247223531526760066131176183793044892173725734256464577739403850920860030165001112614848417602996223735196744106859894974524626204485982113443034436034536247499300675778919914845306522950063233567279941560726881315901053601009597988418179799782002733971828734601832139717200630567089208921886483097462449052144513554396983075883896431138499769811649940861664454406233746311376942127287138561080481031778609114324618862854397920924406368603220234767822595900025680244043513008714836308409538900865937721970311791363024109495018977151613619723550763237225610264645881860183663940911177032889453985629189666455917191006769692525124701961245249718715389000309103778864600223940479721581170196720760712966436953597331006450145839492771964337770833178986323478818058815246567552232055370673374957422562053700229959564527305157608309733288880734091363909163444333355906247513580586438723654995666430638126500226904672156776016235084978867268172166179536071785266517170218788375068518105914306126414300478909399586863170100550369108887902459484472485959168771996140735928485430213727031925160522760788574395588932723207814000875543720856951975776670457885799126610508151882431572515052921968925175751083636240999683700564069267792528623697697315243850404487962458486620636673050616367845808593215363847974463735836170414046682271876258622754302930552864518272419461354608773766914172405758724631543852432267955174908238986535216262116155188884640828396479229340925266483213143272903784125994895777226316304335183428847540535567692854024672760431158234537423336668724974723216094331553291312017511844177989869736678622001823058668423278572275195291135380664756552398810470122626446370014016192936991742739874318501944536073849622414079191894382257267436520977581854220845518681497162392086087682720807608474581315883927782339065037024600040949152270281293083717409698034291042345566439155642156909491881471602130583163952104910072449680852451801444578666045208258772619079667202928184807418103892154470318040912689734316073868153685191145331637694063184653903465117771237981565046908620800653921339202988480754059667947528881495758288939762319579579320782491469874470124530197538785876639492842395360275012864624604589061891946044932511810871669381095655682587546442023314796955855710061750556652085952930651643606363259102388807355446251248507984095666248731925165213819845161798685779469008385095829948641688738414538925803534957012710638566288306852166135113925854380260119081030323483890458787694525570810099021455174479782593644026032109355513111298400765761327723359017432678779781017985949190241326929969992623974424053470561185239700657811706066530523219441955065242613548420573407567618388953801997129176138034122620228994769130093350325153729812134388533896359522562041292343641281520283549841522897207888914834810065539358049254692394036439558982212800601443162324987179698803682452747939401335522802716362161572838191774078035557723251047255088107483766951825478327423880685116528762338685729546614076089583880895181014937836389970402355799808980262483138166268527060137070379833633259668082618201919329335609566459495989214097542793993983059947636078991570915994604422190263886603965603533957046714001312431914066535250949279325816779177887456580083212019305740841393639140250222442044723977444086187661919271436737926187855387816676814011631453331064194557736151330649089387983809845566865125527897290009426112892469022694432214821451549104715044285263644321786458327324177649135957528763159103846285199312839789833166011632672541854208680296708524636783203672473357210523203652606219828066719508676231630953273454566335002555154319911335675107750387370701230428224772469456011376109840538692452548961769703079890303076856038130514814580837128263956618168546624532443965022438214289052465321450043930306894901161528479623158265971919720662450863236645672528227169416948529461852216469963103900706121331949279960648266529576277393514059209425609726290632545077313230622142087941994180538663512922856450766014584960844567616255375737013521368842904114728712148182483465986672851320443779070733387406066172863754984388528497506120186786059049935097950994761396077372028698230819242611340829942586480917657951922656008788362191890267312603082269096169540048819757864426071550982735472519097961350197241246188905905292423058044576681699086604211668935573468195638621100432455312143344212832035042911096164558900008126793778856371575622969641012880550058719823849897715266393053389464937061669318324643326858004265761534233449837384418781954017216985054413493817885676952946373814365916566786526296099597422539078458404695017053988813462068366108658065374793923214005927314216255134326764995815543653310362359885655999213348517855700129599524974300055349368487106263356960252879192970421217984291312049741730005336270021433996027387045308235166363423537017772699549540215597012998055600872121751376909620020438873639945608743477121232990917288601975857535872416791574911671321771958413539518204580190414948515991912874952917224516250099597637251742613595430176854341192938515360106260738093639110447851640240843128634457113024792448970814046541345278625830848486649752592653141450174777585012471470650718992923203841474141161719401898577430252770957406570477664615833828713167419359994824009459317779555386806578327623237913933426071340589667896404739751082879677950565532912257804916027120020375608346068969696910043133909409748353774441470108545661630866528134656226220901077941580413721704550059915696313598351326919584586362775734597519927943490056773759156555094104804913725662734975987486686744247733125192723754613823517878223258180313078234233637834873605783380277696949384363620359538606138339880093209224157196858805260405415559310750118293882741821747533742864360477727387718483174632905125329921131166136543687755178462571667374136021647153122862018436467880615145274268149039964348711676928428840458696925833829474094240172900117974339561886154190457488968801345772094445489423242564430057424868275823499745568127038030895245360014789871185564847648003809009458150122490429310612571181804268214711787335877106939795879378904855371535548367793015318634679203260518211518572375573056019979961840911914001077435725253353272088818446896580668612255020669780894913592439528450003328149941157808076909768190844527872597917515967486947394060981674580447483959674885881110032665382357108339610639536990410593602122281044612298662613297849525547541351295958890715483552542328954106177882748181440094314144030908581552580431614955078992824223331333940593984975274288356891667599203548403665534312761374726597133303443649537164649871198836359253874340588069057198903812780061102199780186703903219958492995828857424570324275794884617594445251067778280669720968146282267172218795513006688500053753478633087046890951505588583299512698270666293278214758585825696407560015325305973117180564400068643595716239895072927458304091871316510624938646498331405637022053169019367351785056252178993842017870263670011577553610742407039149107212557451554093399141992756481292574919508254118046500973854647152252168333888133835382877631772692532147626010423029343295209845828131025154788016340630621668128114591261295448127918808524446681061785177203478230906308920978093986409908584009578995528485603851117614370886315546662732499011363754002100410424296550623198749131532459813716045631070723535707077946022361539389719899510597619902669659961504397726489621673363630711410668142229643422409736275287668230962204578491157285056887668317052519837740990520483197789481813292732727609860430375420683263829590355171257560282924078449339819879063263792666008269949427105476550456836782688827410373530620558399740187060122421975977131996294418260511205260430492440868921827818648362664997811669275480651309662123470410616994990669489384850239139241512946146691380439044503334804182722846968544288124820395371758372202706737067826385672828780986225953834848975554389494873682936048425573562178924707951870984976206252113116111595269886543546334302728146074562140502388526231798017105023968069290653876732214388676610742318818528625182744915161171825020188089312289063862702305386468038831081684046689485392267701230713471930011000272191865051481063224023649217753993910028737438230956696900801343691611507123177134724367103109365719015369864735049177275319422944476590662452554514032422902012650169692360769441982672505421737459704858239691329094745307573618802647434560018327066550463808493491833141422592370742227781888593900317513449019312792776863213003107897906630701172029627108919120864449567782319635565373997504281511217597573126497538083594798440831319210159699458114048417430181418208074921323007881844552475969637746591476457437935291456150293146615314349931630753890752110280359382933466119902792495862417963030785338681606700366607117497306614669339970461441846268197335178622351615170867804886940999582759665875624473764184555273319660347468122943995350724585877992853314774823845870337441653499408299911837316194891221393854294293267900573527655121032089437581650100756612426548525461083418448638345265768356131523019410932777118404981040245747889128571659177531335743022942797815243466862299531735540145635180696791196663647931680808583334992733875718365327373121941227167986571463392129576827522100011728133087223641443690858466318133461445044908839958417744558716155240888129421394093416085414873745134464488855624269886691841332818956017285153954176367932419208224973254417493815625559428029715015879050795464522738936641803696315771459888973056286367353812086475513595503905752513532235952771923907187851294551072188433866436911294586869914664240335372105685219669850170340874285705124797625273772892163574270489044430250812594627051932511011386929039337323423355488031399602540832097137143253297084012102482232104720090716668414419810741486755907119892752652065191207825314199548258743938511071202278474673505444466174307013575584059316945399277551651725552764255118015143741317131673505751263046404531274986840245338934654305844899629398841167950450724577705549584726023225447172788052367853030770959326977893087007523795810925875635226646611838824447585563797425875325925040910464084309724786859627024936832897024988905268707280792340983674965801872503755399627390013440373909631067331430619046858459225963739148737857160588728667897372412626956629614610171979027044826196550795300807621049130181656475443240057502922258592044726478085730023611478705101482406196976223787709488506234942589136519581433675730559411574014122910287607136655122288079729872468246487242448779968041406922718819748291969231828332220937587212789382864987188596672096385759850299529342580232963945881979015448936248892304274912030738048404192793731263128550706069022574243314938404726630335602332967930476823285247743712509467248546668296102135544748209812460351730912365605723734821515654226558714289615285594882014574105123828668721027174733385644875748067351871186975601487987986489715839227891430245564686668161784157468778292350816867404284021085345383991618908183629680624987674039182458540433543449022381497720006525357159524628987910131833262643337251456931284979872489841941678310221138227745790283700138268459270593248696467185538246222088107184371271319724560217302521994071266909711832549146574144787068820172271789753372982500322694820757796117082975353206188112441192428702364910975861188841057662368972978516090799303914067840086338253171753476954007136248660665861743511540765659295245844102812164987178098293222687111349382413528886497483639869364150630299641380646023987817300465658648043676924649376771440222485278120652070467931068667679791488770276274034854573586392055023315143403464805965141289931271127974278462860004458524885036687748452338796711389258118362128373628407742140629942962181557054639264762677584827310162411633810685622870695752130461349421002103661169177671463995496750489360493854822522785953614423725625498837773438740087739414170403242657462454101082927378324866164427177651679997942179620973200976020979792696913492667843951331936164505445812136180865591188647413305193299510937460902747411745328861120201484046505983906864588830881548584806963642664491026221146199615761835384424229804381800012290867171117612602928361399294189078994671378754625558880378347771792454537931815888784560270213223436312309927106003878493897685446160173550237861258839695048515155164270898962624421774661000527098868946067136910705589205900471909244106277437317491504681129147780406232390311482287863787011524939450955474410483292659327938465612404051277449165946828765869804786744804412197718186264137906988610129558746527019750658756173252875238310300029987096104010476726092677158355253116925856470658866136156055304368350797672702967334164031193880022936749546942706882461503561512548505249674485639985686317075171205673576612017623816949946691713601869873200583731706077876057167799795564382672667576298739881744982939129974269748114696911545450820503876177824361063626761618433950648859010858942189251466515908022419429875424579134251054329639689650945620364125193292807008222408718202005095726906225442203519097406146993151943920214488475426393573432167356045624394247649172300995918682573383404510774103932704115759319072525099514138725397061724920505288291569153076006346758639662494721302786180810334782222342726458803813688300161543618198135565249624228942358844132769012715308995907721265425622056584720915029161537916267656635539368757481997801770129675603094896536971877442797974329519900566096602973650096051358198185191795666976998393596593004765800237749662205131382292378919628432174494929663785440377111377548585388391351696593958851361180117617993251227848977167508716248149289273876334635871256896617568344091344761122249998323115468809476921761668156770067104737970024460897973138463993444683145224623919360613248710834240381344879681628600530377462084021802203003416243123730494436129661537870003982206308090289267118928853583266725077122819786187743805583250913279852282139484530433786930805399189194997930066310152112034780375343773306169105282938875249887183783308824377796723225778167059109841125941051061093936837881450587759296048336893407417934305104911295393829297923022713703616521790666534319787042687850692404287753339233882030254451806388240491288481625275996905535862071464994133485584492167834848792865107574510685017277638400558372481059670758025865377972554823271762637063011474440164742109212631081446852915138472114546344723003775543953843438657052604690819251559320976964554916811020756012744511755777603693556712453909303636564756674329212986916039916088074254302200432587054620439315135093903593472662220892392991699273893045151485457861620578859292240111778381049936841757064199912743935904720006796802639107465618990065516929571424308261678167364774354377157343840270497742185199670661102958942429971782018942608131724209185254592707663999557232100074643402961794725332384369783184283755483715165800273009579242955351816577464012702162867514406104014100569314472159132359053378581479832674822847465606110243390042572487087705985370178988442798533514060532756738592285657125464511078372149690996592258796932957426948678644981370466522224509138988159177636947706845163875377054880227396673865793073503369166603874132945832104033226468065061835516906032509161428436233661666957267723488690498414722236673508759043581189218591789895204565490857440635970563601273831514127476616714869082027674180791438360557230843656320252112045416819849486234475430423374430519317348230239093140686466955712868040096904996154633778683194163548978772971912710642669229424438353605982316480014285734098925841482829071700820349326551526513432941450170156797316799879057709331597336853695280000967188942448511372359438116297067418401419419353764449289166387208278272658068783138901512627442933953555795607918782132881250591666493735940364263144103422888088533250314724354276675689209118659783154182200660850525735786206159607938685434408076124321104755124114430559764821269660038499371506836863937897576744658872954875119861019381161112243145541679577022155776064115941329865776761032561359889685022480869148703437607821353926708623023941883764920879262601741119184956335463355404933882892143297595770479124588384144340127594512076184732306650365577706304483599830601053299140853823570745468401369355997274014219531319169367294102429327683392188115347957341333614919722786047326257934407078785271690834878363839393548283734981321130606980908848946805817883613632311805496351610516228355100386939794353083402842876782235497226881257505277409600723974310217530012936879180701488305378356034380114643812115537571976437392125901813974568158784775564760928369878442171821957904773521647886108890162134986763936633044913522368270993367058849263979542257872074818688396259967472588748617540893035748427093234367987216861077695713141220336971408651184981037610400313717337105019516714660953632294755306955990686649140992550187412903962390552915328445573712878406371314944009060159939873156269907210515528714726823787784150266063002747988008635626588310375728047927265639895003206063005800187617539210637404079606174515222943275865465891638185201057979853465294159081764909093797487676452905578076517415670027232452042905002964752996288915550694341583695582829872077811870784605529797192849262651880400209550514904661262304914265834925039370027697154038130673348134696714510568926467711876484320922980080525933410757854715864166563312194778305726953971902332097487705052077340232171148460938756612157934287201917682851509100694181422503989656883874436066113816730412675047537499625666234824581015085259402457459984940934528169542200321171354308018805012818061100565716290440325483678933344577200681695782798117712923092192933486609099940458637697780269306505907824692012173856594408860604842432196918204239913478837622904353876229750592187391970604399380199690668772397358873101441571558131691317348979808810683600576709773474003837505606652058904398062368822688672650560341105703883821658529532628433892158503271888431697413200361755459258432339903315288711104632412014994381826504990993627274726453344044339482306325086649834116865401132170238231546513764765839629155046870980761326677282958899037278919162797873610416846552676363934916006661559947542708194197527996057245272192842303928034169360727202875238351832704808326177314183951764734131312665031219484102384614824244906986230333574712251815259773076708914226835718841406296896993385604111954166167108597064612293076722901653818205454066451929406438172860623815769405555291972458766381112767312148390398650075284436417804734772078355292710319965214560224472955197758093971925840521893880168943233409325811239495008914842538737350819611842417737240707039672451667060733651634996188997769743424549152472101970263889096525588986827092872715516532534845141570367464425005727128358119043244074996889083229621914865121486781787735775523757825860503722726624418266449645986057840206584231173258238266754198954848191131656143803037475039796244327194937196933425705766334699239572986221870070233028832594825748196581995623053301580733288086515026513877220143074560759310379949567058698015167054608976909992474266296745331714651914902578307899661696483271086372661161734858918255779935798525759749950970162919123638731167176526708670660364776112071680255719530605432834117411881945487787094310686685672779312979004049930710424203747961875980010463977092337009766460389996559978320291606944119331627561229850206344523510367436951179300027368922887171840518882505065496976978461782116980113168558952874341610062182306745886072448248008046837052014946782918400471435733887191374634099980781184864989867020651318100394019695632888705790911392102087709481749260694319902393705819666021153176099703825513876900034103575729660316558572969676379026415964143676397933785055097268963407171921004913707373851992010105146362690498732247409163406805634809998804149732738820553176692274991664445808619798763271035364834588925398928278004269906163733899457044341521390096205597858480277622671247870820367445145071735817075164983222542467294077542361078042028852093581955212893717814292201921258953168540928452889993589544739153749435396765632662905764859387902365237100339267401264238021016455345602925545453978250619257144178289827998368394560481472532195023008222477882170686730395043175372694784246728545843070602761268062444369823840776819588761135106562814939774673941146866469249312285503109436828714357926464921344419043080306818529746106405059745577639497585864747613436404659871310130080256814824662225042474047995011880382814194008813557603672834375783218129003841028342770274525947384353320274845728978370559270285551434104989685451383428037110057207210956358759599267422495903525088831730721881264116840631674814442517133593855720017560745979552430000658342035563893222071610391684393186806413534792247423480432528146021599514717631439491346708820922645759117946186026858642160537529279602891746646621131570832895598586502682658060365372326247924504602504468217733145438438799790636506721072740557892209952092780292025670111308440204761859175430838960637012888519225773903232821018788017571731783046017299908628578834807787738737336171674554585081180500021792109177513629980168508274551693368442704359718953714926501364976658139879865022405989166442595264778231691767506536936634673202940916514818388100244943697506560316797583642850013609592039486363424346460863979694186322062048012942301048607964418870949073403631942312326048793725655002224547402478007446257281547937853146155637113972342061354067686766274505248526142337174707002725238791859456119532667792769509790192282068206987627171123897996723762495700821139266401588214368632457534534207610628862449394370707373539696082680832084025790213896240562786861087727162584712282142078450806045214495249731933473845383179475751330415364885517916899153210880275871750908087521603693027198505360081945105932207914671152979268487811349863472463646743843024033183832217831316096823509472833235067750058527634051181167531982063237633743280688391766060560584653287996496739935658425221903218772129388492018650005870930719704350081416536605346901833307458541990926753180144966502626200386794703475087765107263906163947538761756806803566931406855624237532715024233989349603213807783628934322551696705652012174017647015567684969459814480690673301237358009848313544591220434831134584011857772362069118175431765650984736772896943866864332831198979725794622652322305319261892778929306096891484697698383823280431635952197172831123319134987934719593655054975483627549234724761628885227739404316810667902081093971332670026194395753221222068436828757690995482308488550940960715415896683359384255052663441648663286251055371749913793980580065915296130623320278228382840571060959250526353011953440195019028344392995908657329146528357500758009376270186487406528029795566702979602873673395770900788993981528175283533693110504456933108482830662231880104833410681041789697118890136048717395017928404031845497412686071989840070759500773850177776219561123664766205389757852832038041435387173170944424728924274161225390611973406342703863429946037239557634424717049555389142296734672845002478160629574885259997746362630010166198623732165804645681501146741522799299802995021433309718461806302501496895999912189942965664623679418494497068633005279990592991106766203524846919204927620198683253354352259429020736066754770319542836135890943972691657921172712253779918516060328747740861155521774702821797753575639709170710426553872027070978329606479068062741417879811685321429881896778425767551020023132065564104872595498876571147349646367870474108013588405703962563001365597043551815274777169249501246862742840722276511452857702499652690133256446537097477919004486420810440890825230577995451498805677267815574141997262599169718715750553976872714718556603531543773947665530072233130666972445538249880381700847646920072400265982590218001956059919800899391739322362964845881595273320818445023252911001390070598308684732071363864593652319744197536534827521911557358107597574829277886922919270199726783351538172378897740178764831467259174716957980289950203308765482099858532459802929263900938230050332112775587773375247649629712678783019356872463587968869123368544208107549677219735754952359710881196976857341976889816918789566728338606226879641366003578820235423589323001436284353991168545365921094598327855918933479396742686589985845994368631746748965325296970089509889069474148880902936132780576454863274555554961576150856316978450856060603227606077723011744520737176246217163563990961075587612883890719887818763531590137778317007051566201274164579913253502190627044823438685307265410363377356976943383954573107701366430490512774649410148457550692506150121832150310981642383013560054074719088565510322609909443567559249767655424060544269591853102083228507408004207258615524244171906898739577034419932774802008113480552849571476190376106554305495166583862364322102184135928629401833427742875730501485076541763990325413122203718857377412905108380565562330875606822641351742489418099980648476919391291110232387520420826709974082383026591884549717649960384758996265590955018489267729891276421368192357727843647662912420022564298480847347161007572655784181502871344534524792655000126166028700342895361251075264047329192852538394673693541834213399053665766647595281470948211913521352731376100705203703560393759305539796921602156735934508872996472526587972459835648701537184872461053954887757675214824226238500840441673821773096731192950583385783043268220295802203724551435474827109955065550224285604818726804633794927888937873164596190332331555658774680232347639828152483751532517892342299780714362446867732689914922441155353565805934786873947809573829279047807538432007671114401078302620165554998967232574980059794334474821048954153845784691600608007094665481269098139355643704630660726113668883499948168531464088373301871849227066921531877373741117313055802560706156833456289407453623715395190516827034524822167179785382134987118425381688780545026839252794788315259272574158516818265881713590313186272263677696214768258861569385073255868277081261790367834077440589357796810643764393346348979718974709731026505325196852227251776677679093317187169155382385471886215675941442845522927026018024724378905720762952453886679685258543844782669212299003374100915936293844159126455952162487957474923571100717417100497095145360288695181030524282588508646896759360948666780626301990913071338342574959873257222678536267110367569630853929354088759920734790889405514115812559147400157988341048244686593479333400029023005309668934706009043376590886193725481272030650567881824606348444223199609447804931787914720523607387052257855448516350290722444288118728511978417307907525595874458717593615548928761084506001166754958879066682986115806445799986936674192745125115235600664403661576566825644882501720281288964830525856721037406054570471648985607907552157779732587519576954320087135449102386562990629072141227046808343911116694097248148814857719208069832224275611657104097114077798490129103421793809493868161109882226670924807950236687071683514723365153310159329471813590189358081022034431805912350524062288787159175267906768092171444355204812370121531811116519812725173202146851896689939739478130638309302197065892336000873257405274559960205620577332677308172484060362072089350678362109887087916868967790583048539534336690463806952073819294501473411894214953306405952999516374109854961064150833895783416122038301861944360429664909211732895471421941139971248277131918859176373220112458940895485703972099819650781983709349883126351474775103938201374695753890403241864206468070764872940761255540763763739761315121906277327048319029207039162035645125098487881605071720282355331622576863280034039252137580204136996040479448919737992215938592313330300573256044000905575451163231851658686071632256617140453532380729829268518162567965889737569853996042618992403363216379112080256248452048617175618612979304492739628366343753843121904091814432167241105353450725366381037305821140004093259978626481780803973547977834589940765084145434024976357817099662091778337012749684024869399256962005856620530880522118135277246784963664152932192431657175353304676928138474014692153218897342734550360692429603336453258274830063613691267309515195231217603403976890951162440870911743457043444518917906486167642603990736365088050235403352555876936318973285842696703669060951298340467861414011162179815009431812904888487353310941047095395419007081766998750594271812905285343131181733198111919535213047614292518624930253415170545150549506432228639465800717734147366326375458952006351541881280417162662646842713032292939554190097063392824170432183665489259170071019306357784640631176727413547228167627062107673393038955566102945548484079494497983531346610244115630794478040646435522812031345542100741097830870262256691014706220449627661740522472695280951434110171630832195998327649625789829421306111413726201942145170923815958247999457729900216369652650837264072641154619516422414533563033062917798714581080630061798686049270798414099828134858272932991776199297108828428969619288081570373504835665206588709518734794000074252131441834486845623547839536437510813211196551065338095502174316302816047380527121760813376580850806678900922653538638557741407075769185187662615600823294907065702292597863196238788320537020856094471315199202806722128126926914368474991609272178822299701274924146015313814857508189768358757718923364497984227997717852741290638235095788768339473501993634722018627462166572193195886124229445556375009587375399672254028693118862430954496965611748611845636531647054057783496811595837976505810644285027547484492162873870782426623671116065713481856812610507752734258369736819484028111799866939070128174957767667859478949202562511073029163950018386757893785735014043245129732321767080386220797607351328336705264713495580722467903801740085416753299536321177686725552343898124537693404538291809403304416532129751812496753321996892892406647434365536364902638559588431386416875993780054690268303061596711484566740977801857095339892081824436844715694920685741851666044256942309375738118736688614487538125122348414435782084384210625918606121663133640888768154649869702279561552242124774297051850862951834330671164849617165010140337507313754233729951353649934154439960153135924827874844947259023397386969601262208320985818744088136051713360425011318984067981097196346665658643443195421994358485184268143491322579864911311948556778187662521722632145324609499377525045497216345090843512378832881855829598938698908486045270485902109578100694777977673646414968121855448778260181741446396547673521335488568070444655071298816376374179900190656888057702453695093038657304300752642943541499845376417448794069706781881816659901402602045917159961389107950838044949839938369878917993713805418806911546539579820038664190370732227676616709825117931131130569317199633284973192752953819058200346929355920863715452299655547580325397558548251003247527987858064243706695735819457853993442521270566375996603290495914216641669801141539495202590540610548992238900405697393407425712641922431891613815100858960904521554077900024602725991243071079332301936646125575361924425816969915112102019338151480683972655234814289185609653083392373916722220063791464602280698482467986792341963396308264735319487548551894199461020266390398946589344201294628888037050728065734758634980954585215427949546002080611551684517272899782688271758952822455825032498691066847515905405235717642504701202335595823151056166108121324534478497988688179690721710545924405968930707854275842315524366634673440340115512270710764917619705724926900522965412557777326732037960970964902203068890334742453074263630876163278976814508934101061975484375300327486324357813197773511236661854159328696939021475260070203224316036559074813384409499880041398676539615712529738511588475580209466022812388040761728064424731171385524359108653908085514714676429556063523105881221745161322268556165616769004975793277470700932340037078321596631712994117240974711375036449114560467300731493620207917100413549935591947670803063066753915459989576861898162674518226098868538161809477349295408253888454157768198285720266871749185382084954649601157998599668336856894665351684667602400901281201042918744368932157605572619754261427996906690728045588598533722092825051914740135335887673985972648858225598876574009544859705347763831235352953223178913615138318776846293873112704639530741913372910981188929777740769716852566202455338342649905905399458855051488863680263501211946751026964402678961957674904347196897118971023037154193432240176308667252914511330122398593600809308680205445930015866978953688037465307119277033889770461377290780189648076681699961294703059823183447935187448752992458683175447211611728085531715406862062728495642719192678264453064137054385102579699876978897382749353692339359391024914629284288037962019084560483607284470991427765541228067259773967698562505203282397397799794063970484671959746289315936135360206718016441584974667582449270551858814737937889351419784119404944582720521059220494559636143133576473549963334092731308865075111226802822616675817170797658232904021503923426934536023476626682468843145707934561166121799866015253376683296935075568654371239208479754548333112472809039316388295687974226917004709626027786594236345621353712397890741845005107146559750970456936159539910246602383093690723527282576139685888493531717737189489970789222437774800574308994362912117793848859160868525495139472310877603053828776078703230354552257670155439475620074062723852366102309293069196942059542341762157876002367426116373901457740111771916216174525466096109028849087117711057802072046740486485419191993702525621119436931177282686451899494036458625557585104164412557233043970484109513893893534062851652957375663212310307006124995681982061170702484847412318765584339298998016179945641785612076852407527630077180944327553213307798028550101549562139350337532413380808289518922895727149154840578900860271625894324907427771802404232645613488515209278591303515321992390985289938327313368069244554657889936604341939968487993518948613899123393535409518522979784904470306670280660798258982789224961633789995348045140593977618456130930066669453439339214321470113737524857531337289030772616020336015140463019870420540359879337075181047250711551789876429861312764762411981304166176635586719904794415724632701984806144844826361504194726049254514272592824565685392078416608398063771730048532599216089161637950270633225294624289082370209052921073299607061392391468116462858861243277054578351754374488484211674756021175407357836116853170772709907127010767980877216726797018408334541173370723288718280981788773989210609815144343201047957816403171572293816675366755353308407153764470613805233637012827329645121018150388810502184300810497964529163815839533621003207352172097058066744037163811002240503087333017227888338531097789369873605248173221966104182825401681369839562103214238396288660009957212244592733770678528009625451040389947977279463947097533148898129769581818558397573253140586371777587960676318425190206366595981435854204344061759210605938804945430630783803132604894524665051445786413889205065890175189116759991038756069847769488661321190739038992826476662307586537887548577176115120874445606514088828863452005632643089159480612534788611924747416354562216312942960542835866997515875518943173836458146405792236269736715659140481119484610816041915666167828753523933973063301729714158982799645169886719059104846803063538177325077725854929646266271925294902474382913965496319942631400863268494082757763990293980538798137539523381478466463036606760535139840734709526788926665236174371669953419046191535954704995616245711819835518982418452405678074646254031142156141434378493458889203199506452887616776946273814530585936810252333619800516884002635137006439860765087715175740178964168088942271751336011149863680895480405169962803477902361860292622292604684574968838940368299826454450977620600166355215979339451505006169186754110984120603165751459391291153050449244531994952430165003036358602098752987333881442446043426536354015367360925055114664111846290400983837634229327823021086121136904828507721371474820295245829682743139039214296686401804802070373257200403213032730477072566955271792404332114097655488441172397869059351346226824993474070858727021987946382294291869250570663690459340123407966928857023505552890023039226098752131707937657776304434265377720522659586549064549054757747723678147963277660924527873956061206918023971211038367573889855625534855334260647477541391900302842423054133763325355757667061224583571622798192063748094600772435086968261485438894460234914071307440128039860663927887235962197828734153424104123399218227942090252582892575920253853175515630619430306735425898980393714328982215259700802410035395669865396989789181164978476498707873587360632998660025715553400503123294420917433112245313806727831565091442748624583913350312887088869144727582791467791531451624727406073912417863893155559378807235998400755313159115712898121978337619617418156736609766223576144330480279659040880593485076657165624689302852307124898309489142323826905843690283861935386990714426361551155209936931235076298282475458123201018466059794265266053743578026287164176317691974527343549512774433698315977594113564539230959640454810905145754536551593195194902263211785903650202642989897453055368114496005950348690500401851228723960290632578849684613404185758162260632242114060782924934812310640345085587551023094170969105695374509950913589506968996746325440802047273043909151984256696051059102463117213045313088191348899981343681734334891892162682630373849964696852034391840375067330989687258504568858648605624738291724801613042057091857828911018311741595542676430643227369830592242737299915705087679048431379960296485094792293842488405062578456477812752731547414614538043736919017296533542209762282250797134304464594840304118304763537812771203764038083458273607885708167323251892161975802983918343965697649541529987272819549807301277762650403058923720174549680896057990435798363557171333799805514573596981894831536061924530340910197890787737678433573174467040558267099738061374896596937484332437376920959091332101447603935727781040276746528615646129110486434140555297796246659969316336872782915868856535789691665603433151035990878155121603130276716113771916633859894842129536671299558147561545878667826015338990797631500914887701527709184627170568866628418486249856639203192276083368053437415506152630915725313924224986662422602186278152264870451536632448980760023887522989982422013940956934341848172209956290387502905060250961814719283181547501901390205178660757160151742635176162277136211473309384268819328353411321685138876935529824654004056884678497090638036331520621781653892262212102259546478572513974711302414921519551420617614200219403707767278068884301747203875834456162483913724866068302359585242682590267661767625991698514859084500270823525971557144325377213674630380052948023530822542746166154167459621776992285575957825962778568872553384534361261365174734610464451644832246426165854965910690596647595845625780499750796039838779645596345367291332250400981451850260322862377095182517559841127824539051649557025687469368252252212229542570777606935554213115762694341549411088469295354567112172908318539942944632171096987938397074188671404780012146793640494939382395257240521459831688782782203367868980655478844397638044758175201040130710338337743441427791832093005929414786213209437740043343027619936120454362433715656913071093156492493927639707677725346696687550075366447538013285159629524765257250992469154190308765183136263496772661115213238630180081011362759644150201064211095177728219723621800245757374340217802911369978357165700572059926690541346674453571790975393700891699944054299802940834016855574625058854851521729675588358927090992874304198642759187253067574990423954545483816628383737748750379243881186980855429557939987212430822047575649974633485816738530870905077201970409348154098587609282531416388683364859004027767566196372389991223096816485157264029288225302156155020416054986584528306712346249215510387876191724532878491131733893601078677358711982401994223485987605481078344319211727351798614136809982382873022789313230579073926971370240436753403836993899718827775259939811565825987822034459769005654348811075593038917453472675910617987775363521507507267745436222616679097722003276511284898961954689657657435702760481186572157005751248005012174530525889651342688201285705413068778863453498845792282239606983639632972695207252449285542011600799046038500051785479324477388705412189409360226659631353161860745412711445567412865872567269290837247382204495127919623437161557703306985818571661527399393340888284001116079639286673278813784856325929378381329192368546813527661910902913783513075854818992906512429574961075959960282708497548467881389887991284806041692356866282041760789206183140061670335901915873885541583079184708734961429356428127224180811074678666581720637938229891234682750403117701964053858489626029982850115915258721100449134021878187649485415880458531117583797313163427194757125159761010396811871767341202296890108705331014519662460591300585784352040563267012912918124597247123576610360424250172456400950971434213584539316685420578659792521863177858170572861351800177565033905943243101607577477077548320307508446603101283160927477293263939881388197073780727091960930782435196841171040767732542791331861336859224953210704465982673621860047887720984853209431885265837405434817842240472740390004867344322615309722421564588483231620101785896749463418014175207430668762505168618986612575034250304241651599566021803182016138247636406163138640849541216807487087026364056731507029098721695045947139196741726454907324127165379255911049883233226047210747687549910004427481037533624522785571628567335813318641282306564039454272587159443442405379990895642702384448720626402049519340579179745612799164084556903015998381633707281659069504661715756925984303807804714099082723867572128498743148861252866360737833253243370732986042471290255309040509900631022893725286246382399105243678308924948975354416685743447982203390223633809493405487012531940131141522998868647842663524491094454047214482847233861510695948977381675645643349938236243087030023389449516245293568732981165704263456278372005809042523524887950657105196542978791519032867050671746974582037795856257112342577616349556434012451353552685332259801799993590339094487065773238900373929506621477716912601122718055362948363598761413625489878637850841977282185798722526268563512252996627991656946214888175997949520789703506376931805716617520075648452350396449782042650719009629617082544499723675423922509335252670881465301264949994755274241203949115871203383985895380795103200654073219817551939446705947221915014067878969945642691635088394243116057268311668584676458224540287447403266050945097761265807574889954687005349448309876988683245859297780296111384843093507689186266095096681490831824552546772733931303441218273689728929642323731086405058339503500554007570662513498427478694038988013005132046187361629002795069290989162129445787899845602312868536764547077042741628849784612751732062051361430183324282906351455636305755511953451367162846235100287424798042338611046771304532598885028343023922954179788091254791971232703195656836377918097593985292999736459147920776199170520981648424360394392106163088775824235917939391588940188552671178581195500364447850288905577692899501446569985791532749013614652684351317395666416198407366988023027038034689216351393245428691540841136023844808467345389234762132263633340691888928156434655460121933992839532098022565385660225959689789041959539510016569677944801868821156451227875367796680749224396978446687544119697543235973607374230484668891418840654685331395385981755642043366143101987318295258895455636472732024228963412946534664614065634062046874688359485437491097840262002483617295318108996033494872935353492696131418581724767005423314959221281973804781317923536393974710950465907552729319490740123116189357200738087418695380900037616655193003370021353257454811922868335460826770004501229253896776117067490256766664233543619187058690282644205356846365305882900668866727835797742054595109567679696107301125962322511198728715055465434717054061311951838971587165426240087294629764672097074345039764697086265099143415392402140921279210176554038066927880838236468996642245018479058661396225398216648789155258533195236699411688921486097655165161171584685405332614088003493592477799727157611893449958763521595776770847202305984207964552375784585455356976781679136304540450755773153828918519788728892267098074665438481320829219330850422429683336694745578264182817121946320791102793603967264976783161473087208314778891654417604535646096987081172159308708362027427888545134077598138794716199563483721608326490435515673596642262565719359086037093227830910534443571056850021630754385906734181863954144236790787522371278890469168544742991975791625689081752250318535245986291491949097993209099899014439236151837297084206526051288971733792822334877600950796443189241814159104381087353705969292997687506317953825873356974922451061144908661515276050185321719076195936516976847732392011793135550524453876870877377804603201102238486221224383616782993276113566515246327540610327693772606151778334570545193279674966263317837304541637319827673807224491226332298006275123808031320400480505472994742125389048340034289325921028498588961759815963171016186829384145210254148660511457820704753862545101567165467826086354311309599221839268351667280647687647909198418295852125319640619658582269210501400360920648859336356810707975805229098867399212620864377505262431066892017496055994248919905797864700057327982459445585698208101789891984117543541186577235497237934508849804801550867607173897797015359307100936132160221272092454151117196095928995747825780703657005888805524266374470661871609998341404153052359978149515823169092730261731040935974078806785150702306535654855002228036974700851344365142062227880583204163699169472181033532374554574211123744239259149454417258561367644438706706832802919139875734142943164495578469245367681844991926632359942254058549755059027273056769636600924010574844526079957567107778518500977540514918725524041941318560645301621846395476876423408654129587234562448742400374070711980586475422919024114154967123108057921281689555462683625702042749162247467758261766947832912533773675766008020593318648012706266180075465342699518851080802355905178116089522406210725660177346897423796812091325187601691751077159444564100639776968820022776703761328503547418957548092178158837522472522341444207115686186200598758751636081133577975679079334162340836360593434634303131833295398618489293529054159227322828746601306404073429988873861609627942453955682378385667491462414171473898199647680068154120269459176448070274628062080230790382360805604723319303857990211673940774638106881030721929876526783485113501218347185527192885483304009620572603334028237265509941618063293211535861529838179748520736955741958571911248442646972142092297171318984701672944923577965225606058132056846071784285576506830291899130463272317991526121375188526865941543108778939934196665638376648816121540637568589356196313383406861542023113218841044505456513068555243296896962982097860152094265759852653600667286667455785067743261386469694000159873729016642301250744265512598173898095305978698711198293052884763723705388398573008761759268948274930080170555287249997438420501411081631958319148418490312272748790290397264937134360718766374214737504162603218540361679316426012856409700579679387927644742016378051396823634807523049803766034682986149408884636712620522183842463228141920538290008156452591263985966790867469981667735664223317221799161414114593939900775944335935371272379149815158903970884238453900260355711422394243794843616479821338762912772476787206619646233457121754928321693652583039258253078662881371561058861799184369261697948768066109269035147626717756936854419629998302322340452021443057887732025745967776043584162134748241361907555992510936799058938406524939293547570576331800571607552977366069210599312888197275392518462681818525923615187330903766662834366805185344872578590724398700703128418444548377932137783191406557445606826724634883482443747562714856993128671353233613377846645578410883469138540605552779110809138099482234876773466078445848161337438195048168548114783347054902160391517057275557281057350121904780971596305685061959268373780322969558489512683178800975882431528364662739340733309050362180338609602626420895262131146180380724673255894430636205982457923997536261928812325742674365372343363128475039006195583619236442878004255722558300109292408649580839689979986235312600487398766219975931135612802238556986760807708876564248761384160032411985579964293897737815432273370272544253237954237721118331209515439350847171003388793808346877113644434921433882148577748457285911612748154224244885105990460813330581528282112098396483635997721856666271168795334029091478098839213229920413216361738748904382978736989946515982217215283074445966286325401883714061420631885408756415172868125823461456622812313939201712975616779132964061387522238639506455697786157602283884578540499501891057542296050050810871699637550889293680579847440623409746309709699373361423705073652325363509995353538351592435063682827801529231212465930425240294067306167989593660593874782746503702860527207675876723064218451765692288393724741197357102097925004249123992979015286659328859291150857099643332019842824198940827976454631702459389536186423750923521362330817094671496409654573466697895437918190103841197846651915289801861085835838528521401091886534762545999602836487530158199933642866068367374689746312589125604567585827229361683827414573185768359416431036075934274538312461252530024284329328870999020687687949675113486202155645666740706606903742682110708131712772055607398727775425772442648016016775526990433656911565852189464601389811478304081512663116332320392800490260640072045157581013944106713273346904373509938163146964007495675483025013293405039819418718003562296960340067247883565108729212713233549155235117892769922380216699677161556818955118016683138469020289398308565865175903409649730476350697497207055868630016121979958026861373034828094202517279828220702224284019952853176669362017190892337387954922951601847862959332355747887417086121957772075158800741466798949833842263365391885851319045549109280608444089506306621888337008367987763991233994174452515874021801573448545512010686706211158241157509704503166412338881605446160984533643611671482514382062432008963808854417831297484272740080642629596218040537014776802022821833617189527990610701460649389081282482808653738571190270350776896996512409844097601942002355157568788792570743118935679378967639339075406983999311578332529806008382277514988251363706290014365989434757997611891251137870615787196484245707906576117835597814965255372953217630528428915062017643288950228199194605935416062282592416417391550102856393859915337560384626053570185500324971682908184444365159158427028716273220624346705027928478216152549505259612604040722208865064719431000119282111655797582209127844386804911507010187937713927960621523735516943935725373242752098937307101096331082139899397438891235403315261992368447665940808006193132488994506176707299405418889962769300606935248166975887604520516152476951364231519577113625381992703082405283454249366363960044942209792411914864046188323977502608769393082142836203462860104979125286164342317746766573451586318293450004807850381496369365215779764914464697688027662417440430790288016269774758372018390401275799875634657156056863063746700698064420351376078675983505251415026135092201048654904800886933828350259490252651727104043983950791640224314161569948629313221311480886197247030092505376335554362427796543700802638138307119920052616043767188097267734094357694187537765621552014158999263959078672019803861726872250208117600124444009865049799922864431917761032556225445466473064518997243040677014059353342234305506381528000487881320338837984797973309320658216172652459080666859125789901008625062074913815797965405853338908958277936778097125125890042681484789446710549493557783662252746509225664902655652823077822282429010067327887834580705923671815498744097898047536671906149367914675446317907790553623016068570674867697198913253126878777094909361203045957102715282570391608357919581903813490008153300925601794717780120385928100283214180014209196730199179825792478088304838681801073692989907659857959424437513439031828231639051718357500311764148590014123629327390533399044446062972776699953560966043268334109343622364618512692349987900999649927637747950953291392018765350032734795356780501679839057392432905796465816404572964218570844931301053219975076768726355964871494783258451331545869149990412432768610304448118428776776078125506852094414156677785818760336603876492617387195336364378400231234732376391468275999273835654298880872176257608076210540939011178312811578367657834261415319401499731523923859917330398328018334889742922614253683962526946542436492234465608779127501133305706195431559368277440827344079208537057448711385761931145289499289709837680070577236947855457478063285768661766496849489051513694276206957350780563846162370544228047609743791848514128216097738919797448224171553922319947570357952075318571309806359441619819253814519592518280629175147328774640715558824535491331961049245916609646934532901191945614377925818499980577228900612172655132207187721445813908328139372342462658086097108994949292280529376482484032472887479697855463007846070826153019652296165975002042620872525820919775917601980673722526898369822361130016088646473755720762640822773006840060682106078617829576849519453641744793619861858581895924684992620902689144342805118017829557485535801280874296875837918684193969462428526005074803016842903887349095811616022072690905376699015482797899536854207569567774787356035640471991379206501508541487555388708518586581153449744088526626965842516654322423058942949465063807678802829045134269873698039738636301513030524629311688877857313480943278565615674227373860225717312052958378477738444202126010146281249929062520873651953528870242295295661780508159748377598890781499152606961034380553513892540497732924084686065913188664727225732466533237003456082490343054596601878979338070421238737635906006330657467983746808824394541902954303226234258116690920691827105599037233023940465934376531575926342587544086970039726632418278447651399354143043347322223994230265842832489029059103725167441337293375821393760903360961665233895438475493565962150186912219888033272420323413693876306343005297331479782323617440977239723932497206425862479391932018607595304366836058139351387035099002335176884650358022737154405144715148554450461292895509518637938029575674048904668124373341973114342701852195747628799155141597116604940053938393670159219061518229182936811494126879811952061074069932955469102109271895010314206660707313745674586683500145875601436510930094820089300271089282494487075702856652688487476918587536358478565869029429316101496991532510767285043300516360473200565121415866636928953894430257625817421770031702968552208572158756734451655074450006254956631046912430571012292456568005514410607567037360806151196085740845354404548522267201041927861340797038981607329434211595956483789039281438196925606750729718938939310070739983962656172210713368797290808272694454768633260196055091835271275683675634620020724098955593513396663175312866094815287421861162200480922776033388525483520736818975844785982399899520307106628584620524288660955048268553271072136244460433129178266486737856036482090253617431344543822801521007872604533938179813261776519379876733314172847387192426523940268225523457047790224275251531602926879627263687108780601853073142910022682776387296409827992616578799158246065319536339312555139179033694558954873697724310058282432361485296323361879303043253803054378375404876043140480872220144951048984444034001651394891779990932398007521140603001251458969489580454330096016334913076219048810866268048709978043062842364354763589833767292750431274198735576154571682369947948508957823263989960250910162573946648626112914326681562998507019336328200463297982265792357942971236604471205140585266177619536500440476653115554375828487103320581650742677963293582720989216252244136233649573047784595087254443445440900797085789009779234469268560285004899182097271835400610823643532693962315420688273699197880616811821166165800590918384090913205373795064242344607441995480167092937676182896551404338767999526944826230323254868195668107363138443350308312315905219753903377647739055090353241081789473427145097691674123339378490715707562189345959827909791073658761577351127744721341174565664159748648712196461016057385050328868974202040007796505327388623647592771217696800947648943759936942765450858347206242722660758478949347087648470449946315343020440505977654688306417052160096522458195276174742247237810725693725598383290151362056382412745486501187359681689862180495315820939121989891735003629762224517666025110322517380640471437895752290541358046288520021276572584905950242103602764859360930123314069622118987936236749899010179656516955210295727346166190987921397223090408210804142877365491355145390911238516317450437462575193092840009299588182986057816701098626593449698641917737455230878727428970649847137631273124177316535925515047527532214005098428472597604685461464685394776754772882377340473912715230805015828582376407116571488307926666007856331202059533430280146014717504333578047886154342384341947611984021006006042685556663349661982058848639947824423161156998755601288690196972124030574179583483728201784986667911208440982096098730998820878138909102168220158270393004432594231438010105206314262376878499821654638876290067556456277105793293743040807100105078620737375548213861356425098851724838532334017552754171751506621917194457981048295684865131418654740909210476367800653701379059256307452252104386067250048696446984074649172293022876769039861156422302160143772140930863107116038772094506050664529435636355461062495712296291643240323572748603156295577473547132493556353567759018298189159193642740693034331078208260726242574589169120857450968225333925413990189150019565668235310163102979047747258039460127781466593968012502442287992454170583641531761805379696659731346244788807946613655176895939144111572054961458027111517947242548548254378108808817382124815784140813283176179458873509076542238481751841123199436034840623705787860598622384327540814615682260031414308600303789749411591598470296490172840470218256958357600791611790636232211828206839841586273751340984553694538392885420737893453653009255151015486762965867683322063784766623273119326298466504584150065589021824603363216723054771962154686872726747753326205557514381442232119151630876354581439183312223044737519704620665878968500515828217686306244430712629597719722297657174859189276580360752332037752148842638672201767504912010358832955600846667322274317027503719128763316879105356737452059621315637327991600146352126172892802088560771151971373225661677120359393715663124144252785717638038238148456940405614748506638048105730147473313606672505491239690356915679820627204958296949504891560243154046649058701413547570461416958697216685363080981712101557498256492272144275714336352012334395089294362083376862446410277986131083462428262842035051574883455108155626517783340725657039844415445383892015587818373986706573696661671829962208584038005011028234834885307485101833234380961055722752123051179922467570126824325103082574863304820533461861695529644172593838741307721082123646199015329789094649773917764262161240660873890826494111953775957780441127871465022553965969630806835965380034211071733010319731616086230264857037515570984674399474875452591404114193922914589495848049613681511056229103164562005770945584986098395105563149000464196047432142039883710604605096653581251977076385714807859425786132264728968345541260283533022182984115367495562628388415620033407011209056495759660677844459958817354571223086872325020928656692827198098603062079441724192494234108801140909711365120451487524320400461520019324713359132707122158899826337815920210625363075492879212511439410566143158294065661041750466402094374499941479658073913236123125802935062893841613505949241547334096475593229288848060042275608038785376819790665190881390872288995747413461425920779942181973466520096779852623525929018231239445418631073283232339484475022452633228042490550010974229966029067753036528593887383904152477724169176250814156573511339182734251724931018128643683745529726541345933895604436280432199523390887424438054822380928660019009083560890320035980884973037121788872649719064819285470181325908225557853985062485284467390570249619278489321093095358358849911985859552203062111365422062607936793202101198867470286744406114932329380782541357816229714365741839491311196304335626224285176317055500862543836008112025173628318932604053184046718298614244793678479034753603495209653088689817381752825194322076520035469177592849908172167716047727788822049447731629196346894683388423160092400886748666346063141933425008149167694877129210468316844373449617233418310617362601902558536157423719890651440615291648153949741578280388404698176597311637914759549397452554016086820401868934373878413478326130270407627690622414170807879474935325767590106135695798423300729130553271486710626069984105651234244416662170135828973376306986806208238366644905607856622421898507518368605487074477414834155637286290613236919839199806128468140857418359599271115269273780246206216099196399534081320040563462899167194501732370184595992024216506129500484480249297737476695866158823455896190158140933026979421772177875469578433351651306310585196134513140451228273621688124706378365497410800549358391057261324036097484544559262543175464315482804507210579713470523095756407299687842359141060461713556894001841494054740419622735072259522239175357222701111031126578535409986567328980051569532199566254642962895980023947508798279803148159253732549378765917489032342819241746974815217320761610501059133654730232761600284651864076148358566866214100407771569250742682607169404725721081628004053878351900560682404920829740254230918625845879048318860604015234073449138607768798616612825003283821280937624283255138387924448534028255375160700039349502631218032691148056493356263278865506391917149490706968993149613074963574045354901950616085903444664496026956861007422939209495333977573292637926487928077985357200426473926457149402143763522007764506166008087916234730794175245191749603071240312412197319201551336434213706804049373264481080556147609328142048992776739213381670427491167970866620745040051119383576239590962111308564383823782388111657092565227813311859391043502658771498501581160804216106473788235598739300802974934564172360390621085987185012957042598115110583408541669224554410724239261054052598383336386333458343126363721269204611189160519181116584721885594825426847435882527305808063058948047195583691350267879891977686604384166265418769598749963454272686619813824350452245404898422492912431219653247267154618024536393618754678288109774745270526657403025841797188805039723453217888162903141834648388026626485955558632098276469268115239384020603711891442767380221167686813752569728070508406371358121780116398014509435689883580442372408298202001008584944582249801498106658314089792739638665839822406675203643852491527740710293479180472234322549136945411801770227772551471556534572139598145431978083933908066034896453284681294999328745542872633703709486397902298368467675384134913597919779589928936124503967327939831241631862445814749206896637085159101526677689665162061748239196890677435705625461017379103137827736848593709506268948207354010382767488803313257341539327272753431913431741212630264757029063937990063660508952096170336324989337486073942682507397926990886735320388971124870323519249361833505812857884186278665822024668986288973395191129131957574508432114169656546964766299121891400858090288005369645331989404909117014266581364509574494618504835917041453615528621247310842105994724796099037849242304273993943199326732417538878307161228828991232810416860779000393650041603700594243949369371641492080188870540185244234944679375575248373590376317290600030460823927305136318100249889545581265143883229961519351443591251707364350138187668758279850099922942267230719040031384166379034074651558194999144592004227052992751073936652470305919839642182269686958508125767868907328830190738039411419727790080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
51000! 65054847144682335876571282180053792758833888117260094254306869407512794588435875983534134558957075342947128446428065515730175053823339388769741074047401699929669350406222808244219419731289504794368036981033759217664143132900620118785177107242835245469235373490615111889615038539173821433567044915688399669762303608288389750024994646607527942968295376992041099044332607886636063258034914098671439950414643082776208274171771407269755437644445721072655764990808007713396610847355839023755541994258862508439793773838989737952427058148075097708710353923064914704828218805606653819249343572520115635262656487622895575022810486843436394705781641212988146545738794263907067577888598070269842863571795316389480098903303084122271779820432996611227525769604349615451952925628641516036292980910291499066529046013214719524749258512346045330299211011619445149538904996617436529029452852391594165708229956394817978388184256772085019212530758997155076529048200670550986457176273244505732862773312022935390677219142448070968457850931038286807280684408693064625158461141037938092849632442486174999517951014785791515863309315026368151598390183313824448181611953682028419141251776766211099919230498274017798438967955156823301961639586933810441989964271574164884561911018691185521860021982364205353972395375974572439161806873502958923361339211266688455819804630186189136413388908075898919133757906995589776919974201749270042349640836896595450613021469651173047684077564514097946255375655770174658709200112302666312739068829826115554499938744423807334222090251332176546855713056704906686069146690106507652591035899181858559900751786579743086473886900652495856410148862242542278489483755708073761301546664516492367735205216718611317807103527297221234361470499292212412073059894616100161203420893743447808705412794081309863919409165592812719558009930109967331453165284083232077335995008509410452653320523438300724260325362611862282225902825666337942481672120891487403618838557051718932656842269977468155344128339058480911804650135466718194095154829466302398873541618949965380249896303272815768088345753970082748804878730865731496026702661110615010473561838845806345660446799946037942465589791661958912045510446917143226763750348978779403982763910428647075737833732932066038764105982645176432138815874805265044230278852324563320042101510104058203241318484503199659790660762004845122727767508750592841649801338696192504678190154334184975751750321622318663386354112120528303281671846414368037970334811829057024809595743250389234673020896274744912425992637370305849836779401204805463465697630928139008278480494126173578805183395469753473899145647630113043027449387865545051684560381586444959056379782914392684617663161554588940321852534978084450699741681404505695880013352421200734914305270335927405258302799130661787478513999760793769915267329551589302704812658707445529782176381316776469039692093770183407270833147685278698358009418039918130655135285681461760826338942210751479604039609429623628982263712980517793646633606312004678891696968710031592632444274735163724879749234762779620532830648327984941404565044562203652519179552733160717934938828901007978570666849276839994762469527899282561948381258632343318889673214875394453024538453919051976174097354196225053386059210052879374614273281608709621485462311098718524058904548180431935965151868054689741091942384486191795128951469814733030552939163911004421972752313638678239510924448754855482322674381754051957703282010851006518925849345765123750456334578277548908938888929782700361916017919970114519486689218579772800300420382992367758556183105922532502500610898684680903261608319202115628017624312393877924480205476818839634862700378334400493553473509456413923911141460045917804720548254107055973811969364066728698156334578097766060631249477896371627656065294512525870589448807276532562628298955460484629481348135452416604118432785972930384411674920525944691099162268140874455070943602045178500805609094160274206408510297825720821956428002463434546371611323442837086219464652043691558316083153507960605932846067618343396258202843836237482215204173934895726719455404653081355114492250303520900999471662523683232170999829024825202836743877835484464726019723657533118463642764326766174955372062813382144821657842260448795051632660418522358847866930971806657247218308864263309606344858042922058819404917580072614070127707282083085723476137902563402710452164385754384667309023808757345512746444966721309176262100940712165387871868270422036878248948577960100318959869143233455636047736001592162120372426171551867430558298646559213647278569263783838391983931000447248424120169527627957548987361444802786691889876614837379781075351536243732422904579878556164548165713404314696755738306738391767110972886585779103630718970532299832713861708919058053291686725045083964376061625346113627004977232019176562213119442148647751320915991538884578722540472799695148033870695998751243463543407459212648877942862425488195588711615419425923687277934691610115922929851038319439323965174038427016933860733780073203655628082088907811718467489209084102338537373266123277296203531845448949230886891725914860968832580455733551643659793708977068967266518144432065154287047400954649596333859439224258806937837816534842853935842903192504530246611128403510197816545109868926581652885380442704067652375582330712503385882198965781020563288807058952836991739122721854775997051373193701434447256027794125631103545733131867603943638840151568361189449495558024252462913287177536276854836518760210710998340103021539268935873405230178132038287919028520324246051261891446133834392570808564825608644669142678873330433126640718799909356859762457963130893209490100709917950544479231567435579074583630446099034300934058043761663560860211021979269596566791354456366690735308598946855310720227473925112202057298574991312395859514849076819359741272664909659568932776140937544109990285840312836118217616811239297788219804931896773347171385460388637379578184212471598526001540076265185687220249578658409332209344053785608502525881878230691820596511206816834353192882644396545129290015987891407467676584696436109021902306558412631111692090620502567878744513472140212590557420226289530552005421569245587173594288801035342200742757628112695468251968769523946744064619205378862415759721408703212647381650464530451774864178777785374318251142827986372019499987363930714243624862584559995507296249122277836730363001683773592702872015486809692113607384583139673721759257432134147810056731318828804592134334340785075705532595507095636438593786251949097370816570088913961385019596154384993706210251001120105984571902211969777577598053499923717916210857355891286677913218528220699574144266282592709442397889567307460000150216688970668398414809334700556922615372978478108967285400353435765844600183456602746087315858621261109883072926789966571005332600427423867267200420374166796173722093985230094618560946792491554675856576136913568531158772186007125517582891504796618753151349997840941776225268258606331409958587187823560878432302595883717080529893960295059268570889135082894094204495984446906592042607940792114257195685185011383238741920940140599275998493452781745705217436719941783747976629162785880944528569468231400367165197786836838332311226843538352050436312792623475923407197606403496039249718490110087193336276878138118269563889593217772182621598929027368096196562568060866268065504416075081644457272744470671290768189007797528715134611473102776631814425892153909576838825746745630647111420261219968956883066838758922421837659237358032948760500474168869617955157039340052156780527089729893117426522619676203566248461493709992507312359478013688108625340485340063288737808115969569080971627871370596980281545217589638944890701618483392082118935941428058984307015085655586161740296544927696840992296058876294865275412759809876209698526445273034352653417490630114884888093786637988138421056736426589816705874917040168191758367872946409166669240810035115002317164916441603977202824162607766750495354932416566533501785639905446778833636549332722028572367409932456367668429563121756746763311812680935171312714474091833158996289145251607696159838481926885743980066529060125584514430792764294195040906166290083785073604899631506851657974307844553270870741360727057807330329408421605211866066341872415100959497333252198074295311341320799181352717213024316610287098508812360700163388875796825629700599837275655579619447436997429736256149116404453880516272031523264557864004344806491390472933397311088393299899452418290793120159544365221445348916814110937181640051779086483428254664565966061084470283690497588632825292321323625993364492524292592416986351897734864235608879797723352448851545773354912331383137790463440026582112574079754727814747836765659395188010262941941431151375415546055616078278771076420087112211230114222073363661488478713397021610440374344478622507053567364347641449252102444232039133372832654468259071131512411171101913617988190643382985285698112770886950924613200778026550427655614171692549179536815942812309837663854886669843784104548562390456710099488686742726790167518405310964575171918354551570533816354414797783047894986552718924605222337023963709456923101156187600088006996856891541520420633182811335656371569492691816187487249269641201431531606113209874061339608591480522716628416068326857652562315058765540095363068916605088371903194844474289647431233461243241837209714160078718160706071908887967767668854754420213150987741143950443874484922012976970728175129761176854620415219024111788590192832126041205133095491711220005607728701272964321934556852682952354040002659532350313581156514816952479149679174523338466790158564520959999874638806192366034836444163075626869692284715374262544994507394249517429958496319940325874878531709949650707156365683309565870248202576097150361740276234562859987789659332832534421794390035668105441945565915548759515066434965498062399111075662788398263529385247628336288433634416263092021064119070389149303981411109953536096263030298880712080657169921537171366220094501282667278275709627587714145203041774617088807105124523366843346647557540627786830650645999265981762512540056810490807160147776771546197580028334848226595284538047663259849997822256424096368680658889490600823311523721815372785281643938197092822766385486722646044710653463148983380715296477553778802600004800749485817559006253401959277465721683768954495561329033610419628471946373755428855196523669814009181185573195101764547428206052531911136088936881979618756893310750783243255571578121595033582643774502771929192357015695499118150580270925236539217819485713769394806472557340031885461744720050886695120019223025358243381009877764007333172627515290395123359758030956379388220336805594150058450940732347404707729000565214188596383276364438867103171241140827078955110552450282827832781506090341242504108637925320840061969257124743230939623786562422065220245643208222664657600908349224053173654168432005381323251998783616808148500711734714962971459366495968451097960959165626547998579655335680723665753582861735059685534285016235774523291304051606411274520225835242978508549451208210791964303446818578209549199750033197277707620057579801966732924021675857097272652768054773559915515521537889111729616431926479793109591068853592779314015898586500643946603179121252678481461449276028656199303684927358132385711289797667815538031006490572109636183988432627713771550075391982592195323798999008644024793904699030270156488139104753169427872920512080514772927010974960559946426749526617798740993930785437943454813104021859285180841547740998415621305791308274255308607308623509816547009757548515891129880782569848180649581449335373437537546367809187517899845348353762578659244767330024448247652949649856745995098216805547498269815005295061804781210713196397161418428302515182446885384092397497668904335194555196029543799291848336547091560363394133347632432443107906195362766924768005640539744014561501415739142301454780616898956015123752802276248498953278059463420494202327640332716107477791795784423818163610449112198359451270347853310075069103227477992596712843276957840536666124752923950098422433053686156699810957229065296899178477730898478197659686926574486254651851412578031811749521151647752089696885306929708693255344545482189358245013413186297594069283104861069441289963737766090970739048378518868437353861720283726126839160955713334737027847949160212491360614627498887669599813420003125703528301356968062547545841830067746428241566745765348561609476660712083518080131079043196560989591357772181369905620549529420216266684215456910507891453889608752805643524061906470758811153309053590110638520398814263026534884044173568600992741698816101914967396426363056727336827630424816507156425169851587087536762688232679802723594829459052636167984264214595579163886670647306840452628448597539582551246026494398927204926501921003750111307916988756646738468430710998041328401039088417986929890826005377042190848298421429225549309264841926090605464294209063943343308906386639680742507170817252201454856101876901872863395051364087660209279905527372900500553679659847284166477666778511748560741915265708586025206378169047315727031050524178533236953191498270634729708421555910413964886885738203048216069550635978190187440844656939094767145683774316212895500475337376247144221410931749566576694320991143731464545854893898931658887251184122692956430046630926460261367008608313273735455666909402055257303574915580480987492996835273116055796965167501539952921790705830659477690873434867735115574478392459963427378889195599992176525624340255496388682909905256455044403707477118859299432885145706124093180865739709046094312415464761169277444430570691477045559583314105048898830691548086690062089267607953290346895077271884719236416951684460368778720776023970389473596936848783275563016982988306201554085745115547855487270007417477547492647723916389432971762590180345480592704807953805588164840738958459914040368130116860383068462056968264907157619950475051601187108446449252086761621433772320331241991386445948398599132201550255363865992912167911461280988177272496631967224141563631842102021921876237007503897186686302982925943980888213553005006401518286131022387307663366812087451921147532844097991602616691751345255955749619597980800302939101580388004944793092610114394896664888893954422174431021082221491801921940276329656489195895650793235267159850914127364473215192591002382930558130439558305929300057471437940822670592986871575906364675963622286303730401304291858021931275274908153490483429095226961091562459047072101239125381087844454611945094750475343523650690554514066872477320014739257721271244461388724508229999937757748619040093143084369850603547951553426918151451056551258630846158519178225988405828150086096463316575093768021236347778787920000477650376460193190018515005137754578656159569275420159818142939699144861730588637339906284111096836739924508629123290769070210038362544535000924869428858588523233485057062369875151849987161094268309802539456376550393593518047230353214639198638857054128110879751315043741654920618263899706797154386864893377472428477986921807374014941261647885585435348458511620685621289502372431824599321864727203126216544187048880693601582779690405428432074435509898491258263524896683307417892804695403348939420535783821435804777911728653340763788222809299808381189089829732082500449131525305103996078697480527571535898357717715639121241019698672524756585710119837854417450348804364913004539254968837330444373655730381920875557268573165082865930643826703055810885021356665910548238377949817297365922406438588964748410082118622862738143830830079904540756183774996112491835018135319574324810960816660153558726818422588499196467487315160316101436580031871138762336657812005519923916933279795592737898605069176024494712612176063743105690668302212404013840067689411274132851708535250384877145709904225351618403233080683720657451880629392989774242119576142526231573083078963782295582694362442504677745146041248604259054560452805106826392993031226234155753511746510083276827703298376081452023265523283107459149641711323673756899656125619402181927785161424940376520755652319027479831514550714146750937597790540833974872216056204097514132012592398170337528957089071089462552997860907314434364944023889882496193271171212080709923642727927503401027370664070644766549913946054105920288197403727394941490913788360916204595987133545262031303693680708802390855060519201727310729889147824885494988597782284246041394304515088604738081362110522427400351962810425707935081750193065947171181460231002050284178513576440727535873964193030983529328180808934720597865249717253215326085173460240267639856930791243807609362245756376618201908041070886398139277279361193876548810002600599438939696903893708631795392054687273082743572059052307997572120987661640087463614802271396387604673094972215606525595631139294680831700975843421432514496262713804608667290694894893510574151257259417101183489947991964205547395501221135617133073762969473887653484474825226117546780465348581076064885391139413029648475919448135400745160607741210585342864394030330501408930333368050237093025502054519502552367521047098160895075216579034018748317574886949309110183429930986758425242574666002042908267481039995277638354104534902049582868085642252413817989522381545519283598136682288804314038315250835597566244670582024850545115522546370966388090363738955585236325397345300227995345085552069478487194773438666582697308190282514597313468955338748173162508682140448629065127486556700097091019625900493282098119264242121826126143361822287787156233414688525638002294546997166740035229256686629564970598345508398499332886240613352428728653044454598184259929158202603337268543046936419743746682941653846904184864579839095478608486022084127446201728978198245270094185767576442822482197019871369565713371960627128684927628709303247765396261721991005732633872198839977508137853757742446444428981850383075085658386875928630050358324103585620824831996471910672602273659922964230329881882696527500872988661984409050526432486360383831040016650669741804027545277348720755760069105641568525823121245885938003258450480952156418055018828273893597003137398233783896887950389414243520073988164830780224766800917673123091918764568464520861368933742064539494393219878679057896537141441660763778334778289675019518404497939615064696177247523899315603547258442415968446507834166776468425119306921355408016100068687679137177573097310138919447751982263363181039772670812322021976473707043971585240852243922970631267636528675987647277711710562315894467183582969280564978369149494224993085012526943648661320179872521160055420695337366340887707450402031196971368168600470797101415062403223799353535443478797600121647738047131018112372767939411468896708029586639290945038148117972277971867859760856270148177408242429423590159370619258044066751027110122847904301012463129729936117816909778066442472456519299639569641792495113667631566876212285895733348035594426375721187054344559297395181007972585997532560067606632834911127288276394495574323746661615164079948243717888578587204967466763177153956430590761054877966589389824831043289334393901719105785642180726344441705493741386206119189844851204586049633340246343391228984087140789045383325451052923519989446105243021854005669050674597318624122908495901729995227004756075756676002163626872448188552082383615537138105803528654934899493764747831935222364188071646342584573093882912361529521768425536343069744674195693627422811661615938165662288373836046395944968506627879319923393851531023680262318605518423659678683156110473755551550439292737532661263532111372338133202595183332999602823232339352348816350493671768246174166811123955218964947713802743916064823406277630980737837951528395881591216349691830069930937891170107956120683595283982175684153229047653737112910501920880462783493531329784610410201696174720533892920893282324815260829777550833978944095603427757046097876691095832804076205054025027237257506464219124827400072205305342962119302256656490023424209343387054707885321539894541428757464958712923362144566942722442695658266067179441982288000933348749339068641954561284314406869376946536954362816475880293888686684234972640264198394264711851316067541422025666388820439594310951088277030337043715913716875510603629428235839193510007244327647559990213344370529100992329560600291805632283133694479419825967199959806208775661328882627418761951751887374730462850636316690673603731520708589996884892751852026778500327553862388399012261138764765115034674889491999248733743301075024352942148962071981987567038139080356957478908174258204113397714667169621232156737127470716508054108832801483692383205813483413123628047265565033433204001956970381682609566945098939549325993927422104807948851402529184115233718533220522824734541121703248704670742856468245849540212680485609901510203509130903010425223833046777555538879761454582771951796718026707172640159724469733599954202400729073601976819732264865901630880780458225274809094611003861641627794608633410473669633056848244865418207640005612206173193599133593778247810195571013298576386285485997886817156947070643586147978676992015920770114172443769659779059595947651722467018995681246962380104935233340071925051741335845694964449673730252232191270670135619340087354978747020577289606934131326101188552786951772810985039665049192872151621555910916134418849578088523044411826521827902810249378152986084646900121280879989422089486481355022999256487960576021831339466780068501699037410958662820611591551901653328697359920343030188216789374214573903461356408328020954636545771690429991075576778940543289340937303935027112743423961786286085757776463622989102285516648851161617762076217086703846644661622229831133533896303940766179820797409756912448644328937606725711321370652105921043415544087080803728829185939543589739499186198807315770204165648007521803299098326098765956666738429607931556223353201317925898850204263426476881160828623202739029854593496850034218721096193330428471228452494728997376099315868598377838103919939294926553450077068149519164355558466223821599007349899527327162496384102645995796844977858004266121056725609786150718669596112671417765904241923731164234956001775924713184728533574160591543564027684499555657068226475242606281815316007065317557627250608195715138780329870008063548548714663986457899644315126202266265632732319930314337579113581435942267240112035464184181410185950536731822200736804756182075890518880616825763386237548581512723068956267619303847059623311845199309251933305675044366868555215836504386485244895630084675193584432956011145660248032666282516152590607280708467671118880626783735508071045972698024021212484336666794556015177464183003551710308955164475562243334883502049098977263842218254867088554638708531840490057827703465919656849812653528220819054521892217000619603862542557779242751348460625943462710850657203539470028847770495365064774285362799771206002901842140972507071404795416762442838235977717683911026383532776154458423311540968105305014552981454975296850927471318843097192234634676935947706698102983063288572724939653088188739414289265029696285173676091124135387811962983526494085589791465438943898301894000415680702723831535939941489870840740516124314739191908389346262240724547545775817470844736934976265006193641194041437066322113828276375042262294568272412726943593534590628207095505964839136635066362871424509085854488085865206397606203674606314175818501575428833632817563300600301865020922601334143688485088767891302518916719653519878171641957082358499069752766529771419679194602406406179817127501454215953994815836393937455295504462510377906966881902462363896466469580639607656986858001588959709788369577377795259698388480430094401592449107772374108545159387412774842651408781016603840337766480368004627211355853668825998146687469307122595688265325403400541410935655821050174154439220875359562115153018097149313107764152688762559052806630443461975561421659978511673422676341821174561697494216889124631729265329949119346836785448877526665905562793333604734963204527705083525961073131171508823803664332953044968826673334089276263709025348364778958823619217177779244078897222289402860372984381864343847208323897029314524346630985325841091034294122145370798640745379629347632742907591291565176841810385812899921522453226746296546040424605974425432712532145754253005603404329561571415672863648479291383940061926051692264175508744109580061416739736303513295634630970857250888794638876701041252823720392678890016560748875254447146297297340693050846495833149655093202946622915031862841206160007180748600360623380863557250212428338177476521411483849786639915050841232194884990327443977658538680636002726936174998809641214845644820253818846587031885569613525906890665093256056493934365572208647873748470135255459170271134277777685306935498807306848712694425977853109653514372539312102581422450451620143123176948920549555778650935502952403832695427542452663663229474372691973869411985856632350801649038130171500399989878580473702470659941530102429644921946426835098954334988225512194912365505917829908874111767160034480194637901269776896834803207907396179979867583776444967886900421876691928633747769125515017771948554230470036748581924593583633907849113717734776057004090026168516193297622635476052172050954379182334477757933922835033006331676305652571505466636052951082377137954026259536548542197653255723297777660557217171872379556256244861084319529036439242818836861228440623450203597194319097397711528116998545186602016665014068515776155438029528740456870422517994203775107410499092643835779083868567694479143260869926334716199431869634587459652682553560044341496784924383530126071651807954289816689404961214968064781450291902495590165949222235801762247553085474712800331851952295368254619047301670492476577397307186713338971336024677976791267586905291991304577955378132738799932566008296571389566947041209645678038123733575083536722670711352065553026953937027427824839154564971745983092159701513074465244642932629312540822752725695039946704517731723808321003855909708988572369595926593275043110447563306002989367364317315308206634543877137018564220941940700601322597977970011796821598834189884720104933871430390419665277752655184121682500566798182606729592089528952274688534264346873334753494357178716291516482587964212783362757447342957569810826234158366461092093640206078034235771578142465855434387310677624097791338211258951053151273707382995168348009407990562997079005728505311150688824568477922409246885176141255803809931492498082287778627481743367750496227988493474721614116688652719206864714866334131576075896992002238808410723299274199831135217368386872411906294700519266688979272931624511319098466927892323256323219230331937176381970908207383218966323445646462042872346029025865741787270223979821643757343878795733800320104938286106620699234354143446607085881908792217523370318118529672416178623411148545389267722377590507395990924060762324922282754617295825822053722134265454557814598233661154980588927882359319847561428375861930802173414382129192511880141056183317028681476403717859240283399361263727951550103392269930952072115869835461089075034887119276666448737798623151624952150951046397677046329736672690039637619091628716796993303037237842260955481825916839548815045468291301076620189753225750913799212848251573938682486843759532525066552524262154285101414316619757424394029312354462406801913830038017888425691718595204326530001807362492566270708912654737798400586338627598674444985620229860560155910196304272074359966479387042833956354710199719264419289982467238782671429139397739972625246816923014128231025446497720223400881005164336613794383136854798962810239019238851936910902957853711719842379053426211949427964446510043643399584821075526505057812310690596767090880572589605906589557231888781020874723568695608549331936433883005536205883336358582605899018454825009662217714964366024284026981540920508385923561004832005797959302266160831353504465333702675532498769595651071528638827166704754665732298708604313227096023275918658081082776372512847161313531944706482045136350464101384500900081046551592934756322404642323528475242453859106616981171463775842685491240914898299082491365121308193489854811152584440901005997924454416813922117057273390723248989803924602747184506490506678016012478750860082215173137359492458286998021221107589765588929677344443030434066741274466491508571333288627681926794039873207142941747753762175921156970118561993028707182523431373635395230742769336968623995710064861074757983471858662868975731855955992797006345663211892225009127429309699927353457198216016055596208055881953239855171824057048051606946830512822672724459875601948268308067286861262331193325514002355209331195134972410807151353671180852958244430377005182763761421455770991369620110093131081966339445276659255587837599813323026469645224159195777041957109559414862678895525646086608366277261747759589569138663016394352169009017067821715279659960663915881976324887803650026710895501305461516918824013154789751234095564413744706218661193381564259601574648295820905582779572221062978726371626866525528102703223871592499752700143867441772603182852952439485275364223799765668264497482826490060573739494946921093696521061693887560253345162404363617338747076463052635540866409492703852190874522506450620750915546311912644334877913604000429822050022595162189761687683552149727318905562868257478425249435102305558755839713173422722303838349467573712506176613433477485501417907346794358854257014351232926922666895542071779289832278094661967689075136797561168064212915498054734557153036753224105989733358716411181965664560870911210634649707757933972969022451553248907000022765556079445764524920609386068467364793423909029206531562351034217049939940700020756911709674872845293349675948663212531434306056715843750798590894431358104150851472464094389625703122103829892704350770312326472577904882339880883022913781102432994780340893558171675195720721144439225234087741983764593224997527312075393460797288619676494782319165418369730825888016663953003734424796173137351856434937099986211043348108043261623428840168686322330054036519466846878605086612361386884522351032608898725626543907674792573507188102267325671217460929083601897306446058706185691172364544282053326841830715712021440039153734309638787404177080409536915386840112088994484271368742826612235075077877758264461592029590871937574861470067868466199617844499862586543147983276271779994954527431632104932403372448212717501377312030745171563636377721407329907663686192010689620376319591929580981918437384260999991344889722981797353968542512511317262640031660278503708957934890180012881303746577449409067457726598322355017474113254935760387018447196662952779951496310294867155467962330884875381840351042877338494911265899360324887588355318926236004495749579829596471580680660964680739778381984907174708422503167662195582759085791936148419571722432524764938136757721841077213918921376560424544899584971866458254448621242832416139883302169466431933662706272532629391488020691565226704659060624891951070314117846567727944367538564960654817382544153482433498577684113393758768696403715774952559558931527537073414068955401926855625484807285313145152732441718316661045311533391137349273104243727803152717535248586048689603928462705572933700999899238315491735097810467761603192120045621242102223285206951820121352936619066105696215637873448256482849438549515078512655017372678631544607238029728845651208315232784869421805904044707274373098772466539813859984956959813911074264616934200622903368604010767829568185588051394901053646993567699005686100417419395215921193959795710858913133498056560552960412905736488046157132893292205533106748139251278048175102200399622492407367146517327922804505824031718584402865952559720462311189039553871032115053925276148194638098793775488177495061059556534562939814678926402548527792359021008453645363770718260134012756422986239797137123941858948044852805146399462566767834171202137514907296246556908893380246138922091021874551924566986984009843638351255910146708479576602979583844975027733019079076651431355567136021513821020732173242972229683529731870171154425807736667661415734128226640884952793610543909701522455892696674765481680871938894646680679313495056855841908033712839365991608144471163678126468373723644532212485147660276351841092982845320853334479274647192313962515854412180157053292464521461412240557483702054242783673063575467493781253876776590319636277730222295339114030159143338725269913189256681053434379709241452543796471044160562599049027189634405265772315117910182406826679579071673653742383490965393534422095163495417444499892070965967520245852838064465919619475368234410676522265097801240109149758514302657225452078148444679419558894129124674201141605357622010896816271035314921585386965503006894597682772412641098222176859736809757462217550911165657181337357733232806855738145776549031504328348226631910373319904410397140928848850892729473062992318152455599091206684433034758654432087487295865587056432443073724119015854562178038789836127348179127318752010078675992733219383694438901745434978553715991524584095503599426448800859809580264359613678051203885698556555819039129980442725807413126259729927012627723378493237727490179440009272246654495936270268680085966967095679050407389719938941640865695584116998006482902761004600063031346834118132515353017805351345944679374133111313274463132318958526534959318482723895211616923131442431745096007076429961313342116523696348716336653678811990487208962613001274817176372875887919754149919598862426485043623365058336051496360429933012557485724393290523863176777688002496277284993523987631508223244257464182469779344641154081054387130312024916945346322322602878464966760282203488976879038632674028438384411122985357469059280133112572383761845491263534268743840460281914957310422516593552709128967596266560160398266178092702900611808331232488602790188681612402348246575382735322888915998271092590391259376759396202065109602740460907661366225722852673506293701287314603359202889897953198834001909918074279441313315275727925209758219840122045943298373954138482560603150762432807180572142574214062012571225529469922267526851395280838326156370621566786837170513621705045584609035698015869236963224346385001460517977146303821356107148907848955759937158503027132534025625688802627552204005023151217470484862789825119690131594597075885594595734744855175166943767085062428464163989059330850495453420740461983625213847282511541402509579544024376293882817340861904788945312125868806323771194272721566436122146463401414807050712892615881147756989446590547672794479014422517810681327894665216915995820606751035747758349560898293051160658523956425805106675032317539875851408705600485075816791471306252519898032835618743447952152629896515893850246409753141817709112223170363195220134944214871195824066479837996752289558023318542327551972012924809742232319508155735019684238789843665639867730866544520673388704583562584498051940884932951270474225729485659744146969956094920116421561824185538069904356180823400551718729292056356493308752387871745768844977605283146025971936362106111099513721202518880525872241257669621868848020710132331807957256663648141294701615523331191278052489687763144735573397409341488797304391484653624003037335837580837628811363605127346303857193811022480658154834178718917243412381439557583332328516522491406293296549950951604624487005131544980325825547694352562875840261654328058440493087116721118288948881829181827392741103413231077693886808776383006469895142499765370492877325393357167842607107208697815654676307475215373444595273762810648140547901856570544411284529373242146761271485373903515026530838432890115263702833554768141818515075074563440926983776150120635922336740449709627063220103733916377646141783152949619216679733274865860818434542568725731013890578470790658629500901434823805555447808472386767510907103389671343501908676112244824138659363432149337513282335723608809810143772096997280019849864291724277656018870219789136945966294628127815712805215667494385201306907899425083092377534841369734636260677097931040708209054594115975697631078430224513273717250189920039260432891783714642819043511093600428278517193594906434800949908094764200323942122909183351716601808526867684335153667831572821356779952880302377138229645914333198130142686426782763270183655292721919923064520372344273209499178914173675138728661514040354944206732509862131361709814983745451641831963903139085670247267547515416627749867871646792902346927714106761350129902512847238716088528110946929190400539049539184950092695083927614627834823631024014465508830136400397319902166396476913924076530411951450242362167985407568525825387550903889058055406806591317530674215428620768556667231731674410233377843712491748120084822713062631430994449434433032125372630847469694383503642979308115426782476797546822866352729279647521995949311524109314285325403573516954330169388203344545105983290707026590147137832431519732691959310457543744160790374462913407692145274799888288426707282062933549756746514005713789277954386241061691190621928076516189457866674398437220675677956035713528666372296542049527622426901652959368906203233510719132522189821193027427328671341417750802598028154900697076801798395706987878122944899734714581727693209959738463851461827233555400015477177009359757270655976062583304209000833628416357501904037155061042667691501723692779875467655001959883043287136837037510453872079138495062168173957860317422516000590740600445791677705097603878761004993589024561122228408802337396442082341798701875899165310415221451840550991036699737071826202457870788182899057706036692114709881606867547999868348677194328970089747988907342680331554976730319009333657070477053993226331478599067036949603145812297802993892550833491724539462530897716271126118245348893857825268312954099045569601283769715937071048534074933075670942674672682573735493020145828817648716673743092962403956049507272599158609121987116037120042976911343822570934086187244436860498212359753724599375747181768745675281961650102268155584084669709066343091250889922586977103533099965905370687730862863756455986802090748309122527992174734724842633085744291175963691931922685141599737211225746806660615731098856236053350349788876301832822749322583016397091006505797126126157364856160076918543115429349199878364373662389823504179710893219239591883298806798056395282511858329218189136246987331629001941929501884897193544223749541015956649554923431071672045209658686473068641714669548608234872682414616303005922079628333880864739261470110661843675567580825750507675761621890494970149439887980055101771206483167905914382788672649626637537687201846357397326403611577309025145816317226473309963398707259783595964331331106673792093917690988271934269432755434133591383855427571971641677659831922583042932500931791727266575482778111338572378725316557165042852797012031640692697447169737217705071088475137585245742838413309922397122307706103636525634154033405156223261458689314448920911865397209724392812889301709137977508504092351683464874066264367382312377912686240270500038603918285807656037949293020682615123254441428695093299590269307508464226294624101103563845663905351126767286187606212760663429171686740354222933432717880296222975689732411111078607439410997321412568242193987430374071924387123354569240374359328677558013205183557808737000149915567228227785756460421159192835274362836243124125244113789480290620205423325562457065430380448304421695926884293930564566488831668489962037659858848365242175917140234095560536550705733772066164246033872221937571888359014654506507872750966639662782473488286610912072267921313612809995708303753634544974391423920268688637360401099107630677264614654738419819459369164799914833548666626404805365667576775912084953382151023576056879310056772696811870451161171375075753266963958156325675621966651098592113821141617526993490376418395809654956290427224076443012613488780391453653663501570181440929678018962607120477155596068635565255995297375008290809766426636274931713510519486557169011603234091352430738030031670792615789332356883381529182980013323776121963078449811941642767628981021542561363660756225070007375551094869178702720480464283679097744694078081004709559438676173536014413061430990180381770456000832693201836442482676656456699368527914323398003508896697735333009525836433514671946481408746363437797228669532569696007276187946993980359414181697943409066230535524459032244114399175002122206336952783133591615923887972383953044899683086535133412539821206540839272535801467894276952690552675694510645331817207537166071754929088900608769492060852714857599282495223646085317854168895203174419871355733637494011032851441530618064510743095438874119644107778009186184082908770990863914804311996437115204927714169829221258103177496506917542852113640270311501452536606884964217986317051478418556299920511146365866787902542078377551537031100240325678103125804558564321109272995037265677365998387093711424961668458642321778054056434574660799328196399596589966348439617700123370548712750956303010833034610885613963050923215961789849646027454350033241119999719419273939391896315791019300075990537022584651926037706883601358977712961256675905573006353108212712328663043027352798656590347168391125170857665881560644804822175459293688306735724228808908574287012087044738066274244810641889175585327727167533700067544992194957502824811609651841745194320987652413604185399973888927480798424755434455023166073165799661143115340396528727940565476067793021221235696594379346018812899585868068577721368596110902166054684025923897656218669638243899750616727866406236099344125075650813471661100278519232714180476355822135315859912023387296858708844306785524806752583792898910645369817485901375850630997571712400944747927322332150642885876851071858789622279374700893674570213230792995904221264471519128737136157514298033649788755453900958027015498991075506189226140592064892950954535943409329810667008440249705045229423648383481556055114543065459994319118258303269448855612430281015981865580620553258932349172859891328664012995699525943464823545548974150812939715051682618749819752357623876927972438092939876967770269569715533362360369327498555029063889218453096835496441239686553682543943595995928676637677904344438849781860700175804504157682907203675121244879327585965470507449766680266687728543569501454999355392961709372113136054263769742499293713488095211739475818711479064793734337377886296356680520181038729082041574841159157458695964586979646814006504829796667406802464831331804077537199165747931490521151714289090339203771801352368804762960585447157117327477776235390904165646022708386986365413491730779098133841975278362796831460615689434480443293936285196105955420983157633718692370570223688635798029819921100191101821364868708992057647537925674204622857161795624077263506235235495298538074469795728388919219267845229762017726360709542524646525383655409061978391482364799759178516643154861998152508601761558939489640177654144607287169977300557886005637810911563274837574816732123019502349957279118818164884553183683782388079432307110918013320717535454093796672820435687629462628269900106004715770611656781565903804831904377598331870025622798623738360506342401809053226087051480056972437160112010926277103443035601100538676226062956924252238030297600051830819611950176835253851551545352077732837553364759203229824324749881838258057674174742939664118493569546693074170328080932000396834360969762629527247604147333368511291737497416928533895822203276748934254526664272157564297565895604047942792575107739563018899443573031960313549464620967931913186719497780208717978955864815237835269846859139136397443561682800347606831066837241257796197720521382657267591991863160007321384915566874402188850073764303896883481480824319612979090811631572017092581320587172793984831091024078908572517114206127508257316910364656756401723460600360424490781838478803463312610717699453679993637786558719147865403398721270238525001158860787766816357185342899765124185301155311024644248071022876017541845798260909671115484985163283663683066638196003520557929333153442061680273619087003020693279742284300365313519674562482787653619072674254404245037669011110113842641027152490598435926060526755917207686119648793759472824031167961059454066554509538328282285855983189607174084246981019982797869642354126474451474821925475862515101341856278396919206288881011525322570096155963318257021660798378249689534499597204767451663048246023826962111335321032313500050721264682270925799091319737306124970939213679941042778194843184509937476531555993124124912155228932343061650795827114354965206447316089844457674989895738049312447027788472580346906393565804413627685764114431032411537118353963091868210243818252910673091170402053343530702792660019378029657880410460451926308526785664295449705679409853003753134859541405288777457714370841163137922048227561430250856623086402368631315190350698032111110931143278486018769617384432135152020265184177903845773165693661507622525669692046058019790108544781644086226205218830376260409398774267039129035836061578854825337792953639630947902050767814100166289686646239206494939849540828626125818449029079699368128958946059418233809403066023888564690850850669276948427965051486601008493701814961238390156355275225431156380641407326316530852729396581281036471310588611330884537649199788872686024212270613544269954913569649750652589119948582313239800387010220155074084309476227385873156954801756691701151617403536205828812192313371470565874110097563817817541124876729255133976562468617173083641063745224540058015526590264064806166372600304346650323838520897342672325987119854818040840798717967037130410804352468598280814354242197898836286686307847729544867937813567040937096409162067523228884997263278478176926712117980580592916900865383029990952700014470932074111093006490636680552272396115653674668218808869765993108883978055628337756762211628328805862050409088721403366713263803691059034348484276436808465109033371447237008761524882370265449822929705997365815748763651047351150268841733961430154463190852480232717087988078391825537421161121064399748136265506585810673847491464645971319948317809472266045608490663221756922178003267628621568097308095643800959207324353195389937159035583695233327023541609724459256929015901186900998297295882950779730411241841249623868368786644655797763130602003792186810432048033355711632395122430778126520453850237505172213285623365578025650618471244995547003061315906275747750812824305089125777554548637881598752505327611706070841734091110633971117116995450427449479974785459446813591945984093388031318667646477086771261974965955702417814361352879550761439559243392054733979393502273025074132514467101280467023791457560305165743038425858751470652153466398189634553293609607768761243176549461586842379448271231683151888934724566490509136301839269765544521365354766378234025086088443502494312630287081697657452413401536533917998636597142262649475326558492398693612181108081913158693443278651076422959434577901032979421788554316724493342692680698281136533089733632204272314552433684686363530461212845106982526858508613225165530609963343660142916344232156289831106667174206233112280585126249733500355063044043828238028446264992568180128782963273060489701865228795308763854918238487939851981141033991001269429808102794007231743498418094404309863580563618818572720882715253723817185172521012859074338491469632608736644044626432900123419086991699921142774833596734281554791983582948457179828788267364587002539495261732229460931958407103650363211197369177966908834207195405206945657577055685541235176439991757860256915905736405541296901142918709327080645504344815385828525310339443663436304986748623624932196325669109660057416780165108808013234414433094830622001131112040299723145435756142541686482579020228090936285995503091924461064350356425153222358349332856083073810511741558612008960501925952398400536106167820251190577251154764463436929621092865999925076926347562666142714790042303820641010353241986404930873105844485160305409035891036013210357004104819419460510180652822564926099542984632234921339669602236429247361042117446040232996212346756684463192096387629633342571324786212921684739646238226612440438470960550483437701388291833061713619025571711085990623322248092346824497832721044535996644272674176099424117731009694516641174989744870295972614225472435993158703548678605519905559842044946160702138731294644967932884998994297528513260250644547330576556769790060544075996213343063239245681325237158828238021905083185873570903918870702834570332912691422900575169447823505277704283343237009557893930860800957786581393232706779551640384105766934831854392624522604904213004870734352533139460084697637685782249580038964618493608171786472891656440848554731066329525407251564416232083288041429924772074156506430181584118057894406574851141959024971584685333537206210597841603702191595803090865433344652704958751657515456586767741766907323937813738205310790040545532759779531746464945624602188255118538771423142254554066555412409282506555619008853404558349776948747262283100004909815072607775521656071130051124239856793528503002110080219344698106862238760380220351864323414940739310226098528131337815220942035811542437480741712228226981164937233884201418347964658799277577795012261085746722810510999408572696634340322597910483169816464787739174563954831230041922367177770878857598422619863162536023332468971995787624837760631222554103476924371127917348932692237893801684671128922882318636427925476114853737644494019922202306931331502997027286562922551227882793537201521167281796249543551222742027411632739327452365879270897712074750061117402046290513278756999036335993908706493848606868717663662825017250446808824985829098977618240315748158981955937537752186504650720061031601334779168627549112644680007361173725667071572417881765790066933835988463016583579332192924813874294231568480077318689212643296987781189157112976474822039237981669224694158639176105932116496126457822672581136069869524406714848269823924236056523863619452869809870979053882915020438620622041676472748985019499612269360711659140204000905398734331918173570088804418324245139037117894307612899802639155507466337525359477176069717417137948615786547280994731813989061958808823283300465612940116377418111509335886316287513567787326488036783647314347559735225534544228732552745547583390218494775772425993444603372972578449055664657223369572693936893873906567691239937693913408910228669926245082474046024366791842532408483535023920566421966362937584183383278233629600325904041435954362164376517876292060776938155603402211783194368180647086860596689266404855856149534660596900863622717793417070080724944676145388177716957464771491553788311950775218779629439502957111488473749233570541079432189020210273596225608585440184831136267753656709015790662621242534234712491013019045794483526806728341901848336486342782178896750068398815986073918553643946807680827023590213707951734204363002512982434063022473539781725455812235977096643058521774475504848111476048798890527706199045454960035714655986435716633099673904685751454146011705346948763132628669511189393763200487697612028042683012791551089023189044279763605907920416167287311446844538795686177511543029360855717771430893199702709078958817543826985067513803431369957297156758014924687143450932189739828114509835766232917515149483659214923825451272205868936185546631315151821337327057533097613499684586980734858128486751829891521671039789760934537289734057011371165120529592694803084069982628923737467654665419231399222508564461039519510574740900168326438918383297254009966185816138220379069142534565873941293073417494788320902832928365674003348399396459689201290220098615030074720898304228317050615889331854198410302296089328848513283882676117745923658909242446188448174990924393466211443409654592448281891628866485842698814846739951636571010033614785172887022473463423584062041151630565440459288008465258351386179258016546841205851757246939203798757359644144454358651479329614657952747670935732002101591098184622972238973418209977341528340766950697982455597690938336593322389517065174541923548219844197296307854362875353713901500251553419370502861580904773709232981315864152622561063222386684710418088487682253419962658374338769332456227281150729271083604902645189768273428039015366337735979259381395284546641921572465187801507696566132309064499200342988487852758838794718228497651415573238206201140628597796270798144460659815582701113946414589500733336737621066638326872665491208537336543027827270960836801419819141550893688408352082726490804432200391349716457207927437616934392506378281262680040487819562770030535591219683605690143007426155762107473650216162978797236124526737501145084603441863525429560885992954682213202671917521883122054505161473978203157049200869335756043374387994659164671105625110495629522564356718659480494434008170932840620868990941725128426095058801710010566782034409669540535668440397864354754993029296597146727399657871563530303783628656558802589463502030900841393405203090193606197974613660730613946655429321205226391098887390943190684848028260957616418819819831984095176238051648566310055003568943889774083222042446671743034048008779079809742268594938665977350991792333118705736412803088170775835873202290055215656723677946864609312510276146683210901536354258287923083367083606162134907893952307131756823633292404823695348532802140605251739323611822120293884704365849309455694197455547105303539111588926405843105571973368793875010142662956511982263520305833389902335744890642762402532382060100073831649910792051497971579610433904822607347009777811317572467608861803623899554013510046497600446456489752096085234978381082218583763914771813290255672976373257437527557224691319065230915119056585618806259622406830123431945157584483313414056343159055938147542782181702405205968180438527780371390864270351769171403847531750853180991550318947117725192423257107492904872801225665097530844023075540062369462532902344213780667300510575717617093817757713686905716574865365014554956549081154962564830542458046251652751591978091891971804353599164271164860272947784807711043014166459877794379283645361192386850553187348437304112766220997056774776921000050768498631490695539452653370304484539906286264526942624817390092689394533507245847456016640853479802696214760652864171835841817098847472912679791878882643292601881962301146738994682172932694955687931712577067510079361358949965128767626604707562394602752640874515140760065006462626401364907516876209128158010195239306248740362855664117186687889726102009325044600952657432389912661356728922122751278529026119204770082183315094440993629132372624630958042097183025274609589440296952530602645003294827592121427442779406586620960905650411489209626903039805472018900798598661948262757970248166840105529214760742113885336689407477328272432834144607883566036374856926440631541434898061406854717535643483602146162159614601563151045261858690641053848311646990913485918356020627688176453562247167580084663120103383175393479310559218151977610656509256313453187696387354772627388153534124227591932916073269947266901782882848019455618293502621131455112628754770349354391789981137077378217328909028206422137300443990292154424617356269201945526248480660409275915919451803654760444321927358300239948969396369177536631348763686295815139738985273700380550885487751909683718258281814748985644285267784053721677140815720695572118858193500421057356576755170550895610626917818291527214558738294779156353337786378560190016983474298725215396567176002563110375236515044417761413748509661350814721722634322970354912350137090745465002786585853643330463981129330133838570154119737960618144336560814533310099559495788546860559887599732907204991145796187861761126105467524888105586762728003714171235089185234651682899858558958745236371459944267539959422238527394282575293840147510476332299799276501113328029091097880237820133868541419856776670439303505821519432999315164073906976960422843033559204079526466246989703527990171364466033069028093715221797922375704845723194623819855939150790293794411658076641833584679397360129423139278836512786845634475035553719344716343557404942237886574416900962812281092848776789559038616913356775590012950514773687654843333989009530850759318869067886065357766452447805015633945958063385198189957083316812381075366652937425063304048659507273743063018651421679520079751807424580295347144825593950504359191820784801166600809570728897416676554246162339637249989870950857741771066581963439256079844522266524488245803745690070575466562703680269333598449904510712550481702693271817112616875015144884977422142189940031421841318449040858366174473380155261580038519780138640622173241981610226060734995136449079469778769031388476670471293482200961541114293152374618010737334984582513975780347257689930451121690813943006885740344848155078339555967432283724783272001658891758693665767221587367180701678466079478877875537435225541249420325845726566905115123800253323103358107875004770462977051012590782183046719512611443115132070205290795307585692739230375050085341754748960235320696459978781609811220125595937789536755566243184724276953056912339565952156930577412075775675629718271489527174914447019872560978683735862826690096009361361514363152773404906378930449439338245539284596540867000570186385957964984741132018834808726890648932279205462909136845442040281905124239971681963160241019911481124060615584497798884695663008705056935779591519473560650224986351431833463694335377216855492512354307631742599164565798943058085897137106454836551120212359159102664366988729672259533819700282019306604834412627435859686183900428003966473070242544686379107980798617607311406466976065270242632732787682957859899626001847007038425940068771183020236492622913660192817914103615260368747327271460132961829841793462342138742434331258549417645028674071937119560834815003798707294728666634180598421816184141164015180941018722738085948665667737729177721743472694172042433197474815197526396241703838953498249140968346589583222700208740007433936579617359882617320456571409876201891048142053066622613000029534568948179716524458974875333362788917319741946570789685364500691763070531347445830581870321831040244041810025905395289643192055116084529147465500625639796619406462941076461953002390404641793900675210119130526869969417836421375401531527743965864544831179908583272777266723027830429540211420119080344381922135617976334680293250296158331472187326356531447401606210652024905967350366602550548038702136116324860174753625333323618661462537831460002939862010664728815890811135208323154113492383575489567181083584156658580854221809425851120808694006259365327794221653320820459179867989710767188324668113689059517122597339405710837241841466334169643834120571827559702149663460250152240455113718370527612501215769220344371011886799724406514307258735446187805885292292354083549698322038516071967621969942826061319169629392512719145940103193916523721387142408584930346713037454598578934028003901257995669606464685736062667115654404284146969828519058891207238219640134311790682495402067224699550124439280292487785172754234472085492757834551216404710250025542441422822067867292857011679039979520692567808041735424931540701488939759092490729757827646939212782338888110019975613185223877781851195878614594997793225290114760479748595955167075489186384247565685598181984858816666478265380102950435585928521197107163921370399992328488829527050591616586533314120700462879954497863536009054844394565151737375486032912204663505474355815376085675812213420526396363253084990955090246107563783880415101977767837137931199159261619004391613274382820957772377661138816087355302065935301264752571849020567666124464341716185263870415862177148293246834586272135173601167448976995379743836769353600138679363959922192674579029578560707878302780694965209287493150644945921329757739049503667194962671572777627874336053738936108749513311113167281207304173850652139265545251323380077244988598363465818528248851133479630179363777689886721032011957682007916593384316019482139635936973927709336156001544733722260504768252755527207341047397455647003446878094900784691428957917975779017941631930083188642196867599738620828290794640508892603123451681790604384996174946094561961087188713840565749686763245614762242990188361767563307541118787022084796794976371024374793330006739509208685232198860300890306253540170096649792635227294480446231422250782691686045126127805041011923548446641296793755674635833147843131353279543896983141663422751878229146808935409952132359029896615270290214526662795080496463983434398564012454550253787780784910881272146002686183229443941572410092481151526357783773048005792798506817178715661585902048412803409274047100582574139814527111891083760042104678694122080614629167083410333935703909897965674322455931060839978035327363691820225579107662726486305106768986307918787719982272078960706887184987891321932777169602010845308835756607654117539369728644318020374095652118655784215607917764287214495449599401896037160011101767181876900053879208220204587672436384715523627334175160763934436422209471478326486958457340992377350541164407540148407630095045426733929707931432957383250952929424576025455045329060792875685232290927984130971957210971386201460329503319695604703840225936953614354936966207924227074202696472251628581905749134990637359384017829396380044920032316888768350371190490925443844176601376136113426906023661470086825328014887063482307614810254060359491134885039550158288456179163128288754639225671013254229673898617865938516661176545218286409719995619329393128274340516922883673962323316905443899985536159003820234151077174498602240689495671608688478954202286541105908139897433468976140305895133278906192153991303364964798001793690961768472515483313090620245528327186393204744442568401688476650519695189085805398213954339222514382562998762183472851596119509602286483340325347622891675741319999556878766119448048615899961007173374265564374110813189484472158532224659221987734503616059260816432644859240782592662303717700299478060265532557966298066968044602930002559493582529076207869913034728956708279996013623440832180038760108120297782304743035154969538377974089656607475106083912829745418179059978057728516992434358644581544796727834124118446242696761315176479140545601886943263258956413520582027336359513443946125233171625461786229421326283514359922262801432604668599329218985091317282601348661485113801313231592250409001724718196014853525949267620319110232623367801809291746654336963175222865353127689982704393092124608633242418318455041599216286736225563754856370387243570425361459704680083097131712072580328003875643409550261106897630561224509241291803829256210408131612088413536858199235329060660643018557476317484133880695883833691814465680582718136137689054271245270540358765573997861000954897130426292703871011374885864006375757980724477699012447003434642666043259139877637064527380218490731757881430620294197648961749422694709593690081435574576160338656963402252204306279065790633920108810627658968214587819036595086463100091681932733188929759733443784745720186240552706878591993056439327800323185269541813575554573977423832421078389804692397780336917108617324007219940607428523031560795804880026623584113331344203529613264569344499921795187715104351541113911052634246137570810449597438305937669090542858150801594248286714071637653857583449376345098832283643886545916314961550433673901282990719591288702525473456939947241220382492339963240681743436778213413737101464499701945591887685901016761647877507251072015671815837551398447559239469294142512115795778904181292461942022276615763964889557293136380410914130291828558886253583395578671514034644101602487928699548252777288197638860768500255318521103921118246637700133316590103120251372822332933103891386547725574982384557510285467586675490257483320815571038422117038151860678688209722392800714323971925671318595255206776105160886337362303536578619528322541550096414476301067368314017469183459042655787761273930232265223065974662880257058913507899308949109556680976239811828407111098175839155424276388497514888822009820034016517904870698670151176419566160650787023995974393737237108079951958630115395976627378308962786726845972642571883103818457239286724539900859766447004001596345345284956463902915900268298327896334487135151467533641075645080086700327507678377951661849142265123812283278103957362009782957541357663847021853603976902107756831350732615217252903724463607119274900760516356733424255942613502538065013158263248811869682429353965308948912907544264424868768183408390192446605964272666290605529159038058191114056766495954523902210791508345434544891624409163087358832444419562322998256504091348014356112551437981777259904045895832855721100081680053648346383552249936636961904818534850681134533758858333032540199652469228281294878075131973210085059327909724551312214902129253591157346581949717253121587463433246852348436534148145106124305353633723828929623982240190501795361998298630149065604718158856872092807478064915996200461180141974791123349234758749049834770480149814749746558230691564347068180964852022577571400914061078682316718263847130510472114499003865350838122719281670058719816132613433616113578665257400057653768688125479523035780708435435414259791416182917460142908311178491927123137018547319219040416722000442216383744397576312025734616937856857226210817178677905377134663647822217163583076510565319738196938468935928807625831473850386589027700680361018050048031856048663669888855180614982470311916203013603887234696272888727395947914247109104062259937724568349850041289340427236251691642188343837379574886512133596953386401069918920918207206765010180505853286452074101193266944478053802055589014466390790739529877601527577443486961454264030981081357238631486422237587509549277285597039748110234967968664295986723288985550293113955313945665251565871183478172535918511210829408452669764801182517210357725713660435125661244046760729447074445025320844236772372535968365617555887468732433798720635631066319296316796935277092585813652987086951062054961233999654883965870865605800259197855692197105079153259236935532470062723045959948789020008079677510688954447976048924973887930263862512181089913277600204421333590973260550168702682739424799909450431353334646916969308191540412054661917393487709696582506806066740005471396475497638821250692221257993135301443492489369174014550849857986758079361145366033616535736191344631283761530777181344973051601824298853275990950098252797274589902380564795498031981080059156022788273333242819312777569159600837745861362494882249136187778874060467687315781240168581621353947952315202214451144195957918910527645971956579772105055904407144865221311856175729491229262796056641540325943039192567866864257247390465565598134356466284381293761208359295418245578625712665132837215751010487802299631015765036140163015718816213742926809729515657737921109821423161320290238508580296039745881127247865721567133389566440054058775472868729283777114876154020969475773405382846784753241143389315582914410071255888131606314435935159641598933070119684821092827892051057899353892490204882623556199476744447070385767229441501970752056219710585816688181319016524284844607381078661446501555868195826693592159306710430633907743487653306951752179035085681738671455877111449597869064259478126310357577090440077307988202631658759944012215672682211951963043097036567157382579334326761595268508754031975412771767339221530297562922685271295055595203880393212151994945301189104867662701573664221371381552599507247024874103035039500244699894995977969725736314151401770024633289091621540333258624939156211840599811716933960656301542520217807765792059200425512226283943286573082163287396307818199601077287432195319179399573146805178300502066537431242573225029836445796924686185927836399606863252435798022378409057538865852935228313990928195049868456362161152835628518926262434051016569445680443496160534519953918876748768038038817199926517628035237101747809211382872414150009698119016714320687200676600045596855205837861714073585258638942442982173705206591957696648652578320757507621300441965443263002932220773746870184736336251259878562003843031068660123201786705476521765562664849508294316407194864496128017603642503702503927237154453535538527249789520837231773118703211194022770255156719539883937074933384875063971863472147608225427845765821405883419641261755224552247158079101601454512402589334020976849295201618581490105107778779924558140133340232927287796409004063145958723092844778831040232362717135346957335897724197100516115325301618608475616501479318587975319352882692591780365195585122711903602519277693221391401672611175167330639058842077518775196241950494976406181629202932162683782793852551341681778937771313237643868169758979389082971461012405872476503337366359457968710691341399076021090208199738386633217141286635779902289888938468651362936519040720997271998618859947891830962830210405558013443728898894966369157588382789872633070515059894720082598317296575747943523263872404114386496493771822044105004816219151731666682743400343534740980284063291641866433305024606950559780908170512939405318275510667791372539715523367528894458729164856866597647129873874316217140760719719554797230499536361850552724918343369961179586217781689155236664559348903550148606137503291070021874055083637326289151307218560788043475216668304229259142386511234984096590689485774946165585177711425777305724873596972530050191788396660357833437057323664770876937594894032950154283440921213440025243239360434343119773071682340488722150627567474115955682490500818438394328335009466082275617182833020269634634262824506522190992238252480920794461894032622707571283599633744466106199072358340690048326033139628986716117738819008464604355412535163585173599094894360643769384067201861787811122927037087655610520126367920618303902266950668816625030913209422751727303010870806759338752546633266790690363456310109199781757564108908624635336222787254317278738754864485941768546729601846670044721770615119142651571227728165634802357736593328823863956566743461472298078917357765594476636693978576194145188684513120896360970271992870486092338307887464893238524689780053718199384184831100220850297819476724987674583242202791257434408290133413057885445573277708317558951149404471102735811062032718233642628691470078640372180017584510497138402023579753915764090685490349827493012251840094589366178205013661947591428635674812711256965035416141377477193928921390032856868863976337287258757410995643693878380038032638665857855310318567452333606156854683454058316013573397800665900269724256349204422185782832588624635249995099106128834695270013886222670205125741251615534390257019422130037519780818146157459442162028077067025173209046502597311464293006192758300144016213030924873559565074721907650413684609054477474096148222742541195459829138426442360738220096119746461089186003295684432696732911110262606491082302056155033273817223909472496198276144963479502980112050370614782276829080349930997474212045247286784884683276994090568527492664624903260729948664665138222795139268661765598091672472172183355984120618141462698902698151063121089430452132119998608865189207550233398594063878743558140593505932055247175834702376474071289995360632731176210367204802272820394656406727643809365278719453650349114136997922523700951813927759759686007478224429066730147997444118055004851281800733393443222043189817668659766873056332656658316137808100116809872926839440411727415154893857914008160648014146805798492794201953378836755270756338160628527463720528095531759964024312115348741016325004080113605518908999698517871556966517752954935264809997663822678393054546326671592444154149364209579476602252272144917152071045531607154629049203452485036065822940489697956128554339089550206150333387116108695331705463609585505251875566850399030346341219259902392599626988727542613384368247443626263352419424430930353938722742782439893928335580315990660226947556789911007407827432273536302636536492358818361858796278638114965660990692401021649475745917440652485492609163590721243881292131637565744771852880367419604570318145803424851977546309961719750218689694377838791038232947916978884327196652163798948405801617762446532971853645283323232336613995881350802444249178701233235130229533223665588323237971943177976478547108191211985666777181711488655076579865501470205843287780506973056497422053968936260422829441821112885952600414907784090946584070944678497732974481088572867148147425348729202662858412054264953840150895094498019775110749195589773946238557753607291819980167221861788036756760339830222324509608969850325900534729460595639366174728080406084487487537324383961532603011696520744037828665628606194035737221150298957096923906352649179166397808914630282766416512399360537461180898797219265590182625591193604745445042683065385395342337962253947154277952954997219304254509811692518395442790715384051396136015265721239009883185221382882704715144635366729509724027878153182609883745303861203368280720718633367902625447050701495240334977753017909807529658768650558527904148061454274586372110774916959141508589066116706325797397244447480081079499527327180242749809406375756531859905896549269721050596340332497794728402218050769883314680398236450003792553064294363120361588910260221092492644451860453662898019795788178602540540712628744779233387386908399861970938546414998746108763392974049986610156198845823305976766528029846813747248883985217882154543820002593811620199607735627044076189140269161223646867056928100854223941797464118988060796162250182192829892755383664944130625725876838212274772015907727162767334822162277969583799834302698300177084192120867440535087483575867358515590580035924054999302844289690792206665974465114661077553503889466949774912467286251684478623584683586494069116730904026918054658485750306362302851334081804581049556178845858918634184796565962752014430920612951838289100854105328388004565503547306435508388895895485119870135807042609251135099573686260811706434792437884672904349341054888209150796845923361007272884924380072679062927645126333703069878470504155996436736033478435753373131073985367031078370383045763121039501195547625517736816995289629148782636891474584775877848284142117060636454926461181755404919658734732134092455452304279605285453305120048114273358412565401850358456638733223511768287903932210852277209682412531745795994948754226270646132455309109856351274512521041796076002098583837320855183252289923113490224521893889455137471412042313073076322923490087831917047097483456208179944723871872859109768513238742821404842320786914007452040780785492919590730476746120988235871101167784644596952289183072838962766215662577775876146084830047677402189426813342764419413354679621370851430925638036386484579367968147676044678459901299170387231778337382189588501797705438228036634101967984472958015787228499573439262735992129111763661737671739460112030386289106120565655242085908370986146042656534486384594594174257630849239789575768106480432588193746778056740104279703076050735616889058937380187221181445671356385741633517469616599314041811994365487612070875388175547022394966658694285527924367881556833308838036681377933806768295208665214643390719996154207536567787698535352805901077800698443245207790784243467515743347529220671296113927424058644217859306561483668882883263584828607064143611310989699586665125821475577843226397793368531415800764382194301664506643699987625419577144456873156078626178300174834028558926792270218834074694891309319031079499593061241208512666973164093440654456194216770540369098184825901292454188501335464990512350359702537313270782588299965826722929004556389174770833330538337788816345407312607322521847636603828392489418289891446789347812327059528476901455964853433527661870039820016104955130025916391264190206842860630935046195084642957103588624965179853241211563824011517837295995431162311155795608124373135527182093822077553279737877406518212414297232275119172734074216198304606549761939346283033929616754279088267042716633724014666867784680697006435019043059423891131730192235408690426802818780223916762408716330192072281081904837011416071112706844439210357157910801432851819655415830001953157884424358640954043620718328246991461813481290446347187695214931941604974679765852582174324353423483014975408431762982095048229210438116739156727577516372774473728670962382941533392346603283877840942070535793863363205609140606117068148474495932102824964684057920604638088907803890865997308792683985211846808585087822849521896563790725830219936748809810945036166323716143333666571803399194808114114572405522075356403399972127503577136447415902045917771224498849637387926203363338270945186228761673063184758493306304809778987899431319290871254112477558988525497766205264169070608910247707119861091336449761617302595617812034118875601187718832198509156969358571510698250239949477773336059089796239226482636631048246167036968287210576725819202862545676330403976950044640294088826786936345624178251402467559805430260622931333281596173574142606433617489969410677138324905017061148684962987769112175237466689295063235722524921392563142254207412247263225938699583616732892745406559076294384057174359983085197809995508105091007624068888488124364063048606282169741883730123050939445467107363618106611619418032077628282394796662462670758388970771407220475928321565713553838712481279291999093376872093633629868731014055059127298663236385146094957219646702433296917941583402681990820509966869500829906018348926968659288290149867939687176899474983538435840159095115831366779215542609043095929571217351077156424097066908240141165102405564944588295207439995199005739744966994640161281575843065134647863012024556036302120878078016679208389748322814461942828524410998989116465944903894790551088038847264403639171865220260974472673558861340672072795308495105667941060833604280181260313281038876525701182563404769424065128267103849091641139782292734773353689795707343205767278795448824818642867587032240145078884866144838349789464251736866327481909596050321743079621782803036178810522457365459651788834898622051633839315569473182172179849291895216657805423105094021739200252526698027302944257523724189417732675509129181526587273666657936068361176217045589428198133330494974854265015748723967251229887944884992010186514778376147301045513335414083051369253978473755585477137090520110834895328715422015966957422258612997898426025141113129016110818378684264667485111355723786903121323568682825947762228255613097561586983912905728405518357989833622324571407068428596070288606698913284848320161213019252282302112114273321445517615945357442556812158452855105248006329606833074486886865224146191638624305487759824510272964042799179739220415743137288467399297537072933503413987461831479495186275401653728148937375276942199039813018554659476238475821407524684088483933508500268495657219084889921189537282428882609988111820656708736542360623939437170254988622155505147813051778478279036652964504849339136795226386600571075883121118994304924879752201063679948303420654946884544659537935110942927830193994129295165441966740614649373514604404513267818723926118672901773949465306313756945210230313723181391057400011962237703677594154531174261109554076112103529596126606471192488981545058795335528768565772972154131312412959201727818965063312383661945928049310381767714480647913317625449560199210160417240280257682852266487236644054070297094656018640555758410307622863566395901359268343358783743296575773213447964549551423254350287854271012414196559844780492887731528348927125015337802368653225934299447935886320648417228705914035995803926273421958445922437437988759554358916128964667239714826840889318938860791732735262916607775406006513977157775268787283884512815716137214491856738256955472071989859965620854564329304726295828414116010953233653257166438655307493472269730746525240977824016588440002340792743327424605147440314112586984155284365991799878752217055191730966545625225854551208576563830096439419544798368529858366299825686803723530550443099815002523092527462529785075935548667967683635165162295525852399184034041236745671428346243693586771713631665881349649590034886611447613465699685029858830264253814131346873043971804131552713559406768980402895478259693299810018697918854841146025759491492291601846309256888221832324401044389232544776002191516508907221730526058947201603193471718798716317415525985966449440681110059949214370736172271727140211565201737681181835416430413863547834310734592308716162819053881197445931242518007178596521623585130728917733094764090856495618728872878415626932949126431283917093077280698869554732385176976863910797641084916885952088733120591777277652779939106524937759313168486013525399489146991083770979905410486793979466060695803034439778024645600644276142869666220244732940364067596282969322321612702681557614745663998081828970713419508131648935234649287908807931504077393161489838322505827894468262143326007856351916769998598419497134106087203464158073271275440321383964537217001045084765953697695628745723807934853128956629650533174555813394053157907244005344645721696971926107179017833921044612728294464182920865240812034954883327375738119192528414768662954593715244179553886470930224878970325199826825193456203133564648487512968710691626570770540180799553074337584812718311061552132784974208338289155455013592264107744181976763602827029902131582524633146810061068241836509709932913756518196259744878692465885946835925655838993597657371964956122318228476088976717720677432026460821530704066994651912855900735241457561453632640073559552964584012776194758173717228305646910318111207536270211626210581493114618304747555620300745581252633467049046515212678804041815786030806468030813744511079170403776154164378012464271028451368870399717680567365503495018307228508290118522059518202766643741920015707997602216491008783727305795739788713074836757091550077375711742152238000076244065472345321332087636692772394232937498965431159207458517846609668018781463594819880860345987290676007739290814852170503533234369683517213693797207485719337012466903124588947913739390228093375843533108768115136757814091021495462121788860142620722584319309585341523906967015165698925332553193811693745769634516323567635451250492301178888378781850418046635229457686801304562059376552043459285855716773013956306044526916402924886769808434869607366684089109889958807229223727527075824720525547744351141635841957381126793725761144055198479466580335438469233403455840450154035742301887154802977692900325426323696220806034650204072128470971640675876443175454625944002293047136790361836559952075362155977499126653153706909268807910251348275759446629620876631658427352881985320447227530085380851142697914359484841089151481177042222189813467412262166514856248222384423159684676048414304274763230924615515591793012856860329625481955203195009680034177984946181499599757538633650775010183032240189558948149043867479813604197900572039262228287906027750016117620789319134424334866883944070169662858742976906893943579662993637954441963434767310491130589077666463851372371398104290019927259064204635937524349731762621186164407953085440765015107799282840274007556130887975735197517815965276564279165500438275856875831674962722800351976114096664907557224560381178747487944019134682529863798649317327269650319172446491159428131785713579339972334140738718969760572743565628535083452447415814450722130800611883914301220959674369929670541792917189741771608952021712662472754268697540841421979008767579676651688980385020874704464798423961886524403312620603911218570480259792153808222592817959977958733578210142142800856047111696578823585108640119167006384642575795601883476014117765426923381402760345575319831815948785785748281824901672013746044782529546124520949413692376795785393352125175113593356186262389757443800675729444098161982872043405169666811833270917919420417586077012413816699297687608677545945264002381420146020582944439730490152274994087815924631161591563838807348861556139185943120888174768491792906157201158144847882658184759835412500006561905794109026582768907121390705849304360131477394627915195827420251155622283766419742248072972494968490372779637523702235441039406559961861409613980297950259322596393219778398993824921743959616663265809589524876260307921385874554146698055293248915025009307411128952439370014689915565501144837087376577286219074554648868524299780517912319035655593837750974820586503966556590448071382960549871690488560150868316606052844151205059063271032841288567677235506788526467499245463619714649653181271368953420169049504517530463895171644326453205357054332293816933826614021421289252043984367506549602173329973845280555511793138196300366583578057362671791981981003821242825251902918101083657021242777871926369497714034919221321012968782634549835321911059385100245868157745536509744287925867369617669139259760841299761796124898204567504109195290125939474482724400222925716747146667298886395985286246744320489661257121845029696345801228778787360640887946204466818564627679951570117873325754842975242489897798804967600956370799696352911363380325089256238733824117126867476189534293111301298928563091695535278151257117640671905362354457558609521807230900230106241728349334044964377788317993438137677645991960452884189714997534684881850128537379035170334098116674360459249682884471239928858405777023691759530387340284292563185094959537688649184516454294278560246807841383216458336121866914719753554804653733878430345626778965956654301913286832884202945796036831249652415481296458174983027276437222118995328641076777056517423392928941196968529223096633966844381609539811972500485295473425193989030362727525923945173837331710666827681782457613200327926346847824168705660459337904234830478808381737975258180130703616570858188106466378384315365842360366284296033152754811892894840369208144138706055002593533261476773383834613600771931137997367990083098481686166646420858244339296243968315595992639496967065106845398920860985320704003122353228906798469522696022091234489296426534217778618972873893033341313079979917853536621141672396887801377478803210855218858879963113223544484139337235108347728202408284514090296346894954391122660979909827037002516850383764109459795273918821069307986070711102691474387985680686475173376299218445107695564093367353360351812982199534598907930373693331865748181854063382231940534309830961907877833324018431270909571347075033858796503046413276187688829121150821956476638260092795440558057290827357768490992842749751720489089907532127558012595690808206501506926538399680279396348996027880406915139341472520228156373495021570163967091122686423458740430475468557984699887666784786955623501957389388183408668838184121423207701674495150120982920763167089132697712992851957425598216477654168562680537229235439229924691890799256515317989826168124262102948358521024417670559352712572271651821215622284584082561894656630012521611493707661865851241610713450122727310784524021866750733225808678212902141217007314701480313257098804920830364721724563751236945077934937854396128174615401239726998557355342266037158566057058384408169504618575528587925966275926289070809660296647740032173335935975669126064242106832325866109230833883921387108717374073491079476481425241834101220660097212554125031962828333709356515971709031967112552724337510712894021410824137501154688173488458846792249025029828793631723036447735462195421272836873415597321334029641955493495812550891974951495393904173881340331306323366994639254349877110670881609779559336400192728449359600597380864083347767740359743774095646953933747389315049036680593403489126499999245719020132554912003564312507217997585770103985781065896800903311886408510939115937869925895432606491533858082787899239492764621365905565342744506092380347984188971399828234719915076441502426421089871382254580980522574419324231968174146965590365962807555387954867347815497890287154790602923300154973613407027642285945465208893511267609311516190117371749482566311021043436503321995717281013742356642944732136116459015655154984876474770663320605312262831835518124351402533286050037752176078735278741251266941746260213748471739687537795055276850053538487838890919090483058376871939001673488024021993088987706227742176710064571269929638548147892308275568347981164754201154292030942218890810708216634139689384970434274112626279035755696314732946705033427552959278791013649690724606758846651702764251407178952754433137940938302799681417221430433214016326353199206854018232243714388237794631814695553384022792505589192172830318262812933087248124834030941577492938334311437499494697197607297746481592065768967034548795955264484009144208260748330317063160796533821895559388872132686860499227815438490270572928875854075031867800665317178879983620841510296497552895602064724170045381650544699348941126081720819314535762500602977735108349024301383863704044667823294109101089884249457318580642806701353077967759217694143847998748687430502338826974386273011745253901100161991944914660782797917877500987698519627120402586824354188216586403930273505174889386831541833128119357831599118040960224804172491061730745670919290651185068287163543821667197675028626061833858773328250416669488390480550635428318021816448453202223373459630405830154549003550522026316772906823714670203440769845062449966932061640276983327655850193068864051477100443804199483578331946123990663154413862755335671482700504323853680576198861239725433192076372448832278012527240433089282150821414584794005144372335434796292776110318961301026576350975516571710337804553959176046164950443294782674118240915743021500123672671569941384447809406823700401407437040486222281988280148631296747063155405764689727354313049927465071751603789794205741348399104111918346813402287451006073398154576490730111083478459976416357383222165419438750263231578562630026509824938402286616468216828258694900909506439223020613535180423781024149560889830324220979088641646236510720280625469436868440778649135122852626161834011597901460899424355983561409604536485477838383989699688451269064132262583486359639094803971752645362706338217181941877272611763752126060158788250538657217415739248559752753490975783071479692260168485438829864508774042456481345734493969440693328634087200481573849508101870151916270745749624120732919911667859207139120740848851931001330615757300579375153840836773931437095938340599969349917023822258979330053614654463020071651111601208942399857446235519947193388112235518747492648624884714965181094753249587007239832220486353387161972511588312386137060312471968362292395334106638672375186648543394097961772620284009095666123848663141508317412380334925837336555649546834556347581324996632664301900511036003880684490135183290798878068088511382491047475691292014053223680322845823161648301959698538854301249423478764029904800788547660597099044412130810572743687325472842920193370269249872272415410998285003302181301807035786660772974632352922972991997984607335578694542487737793803348732212720887067207076918705132582544243069070235262862194123850271915740823504503606908150021740806472028286918033218631369257648209664867330294731075094587228970660840121533844532428297474153283810894288862295990923750163691890108218664976059866172486216325554842921184806348965959269333499584281626197520501953510833913472324279612008263757551643043412715864117682964505302879629840905042240946060809487079592033411842831236222676662331214662670499331117582401857116863010526699400860372242349407128808688469763870549583300257929227118649833958523160968877028922342310470800629469325623826249047307320695566118827557516582851908614717673994515564829685258735864661801137912116264998893273219432428175591479303041151572330173857306094170275045176805090983898272748219771927206157788794463695408421089076607999622230866269953840870587783763162243963615326099233645145190744652841491877216955814612800290178761088645584925940149227153762618972058713989414157362608559570166964526269457714261055837598088239621911153387787008600726626207053126184783984098659188420354242350042962447046495815705546198383866381346246950530788413303761833230387872061907014396098130467152955071093334929888958128659106420895575576091002057432062758519517558020588946472967717519407969728507137052040318858394524939111644598529310925927490803107927077837470506081784482097979076834926678669276036722365851683433636320204489587298305942281648971030999265349096754173321550690645789032117177279997420900633757545961523896846556691309717635949451529409293768066551839018825796374463131408788168470396969933053677203392069526893607929372451313250788168043294949950258503600590347508877626357389509268059141739765530147946668789148213852421898312254930622624887071428413939906178360481056647135016499028299544067124756175996906567254242906253053997217830934653186120543386974631404258102280715020029359916513775917010811690868852770244180167168755181741625446854081386168022874652179637666833663138925347777696863802037361217728274138650834231026003388016975949525092121411294203039666690837142097764911033974915269231468944477016628898942624054965925432935178648375730242833536281546358692411811355703457328547902828798648768649501250986661168543983715946234401669340584819649284934523353591372358470378249738967552974197096546039347790682093515437599440880063733295270965261482514009523295048087298642837657686603779971437996500270918479558238675401988547869919136087591216399851350348927264781361023815525594066829189168500314049987308603708127290840317114167361498946719686340868296853132694563009357746752173577272599666266583373362025731985873024994110107391491359974731972983151496913166493999149426787981276920588752078140971309581610223952980104699054728701639299688552651943680355061144414989754974062261684399450299003518524759328793440371538233459637166025803043727173598411784989382854195015401617865454694623903621609849981475343357843093630798212603584943535517083227883858086949797397185487120971476136974885860208883269935989701066327564833063709588501551905197526297648062143621277955787760313141817305073683754318528802737064043109419166842885618207389682391077985344364453762846192516195764616485299181315806798534776718424053156373613017286146916440244258213409639450557429058241354599819112293090053886200444817386751941389122212430994898019606459655125936533885769864570915367091015489621041499985718215255278903790673769699248897271620040761652135805734008775884752723598538357749557182215407641076561594697610342602814663496406005848965022612420495696036228813028577384206830438620273434077477720744693373166576508249780875838630245468748066165679720314455502633292135041260266700086719840502299272465518700727549675193907563782279811308938054206994958127917410570152812562404885710216047868198947809834185466797801119116828697198653794235018842994158062172767100901406505630135447929860620121700989534423273553170546144209438057959805699179564125615144599878154749436281819668718398375685743928751149322590162745338041269555213733748831551717263308938121294621540751551118258639773750000537235506592163346100549274611838326972388857188657917848456904271256655113890721764669378628722838019465105417697880862000344331895119269170099181331217447753333322145660431217476075160357893196029264314022665315848139370530493257361742184814537390398939966271011050475877620855601463156031114204776123358629751536499042904549595475875476226635147171062117290694277977881303029559102231800534588684129703781153667049300466448928259909433425071362256000036593649849539406510402550539467152262589218783635568192616339132527839900949177494798259005943902630512855269726884146370186630401286571789370317817475728437244398889397636998608976271973005523315014325563274869682614196726509116220290625088993660716922650306152973284448017538629457259839065895356707238190851565463431609415443787371474594498554336856505886350439661915274310207646146072238127478792413492030223677523128474673176523746943257833093173743060717168339757258649466622790338707942292935854237609566514902748761813572397706181555557296601243193578476267726237501084586677838233806134674773613728223341131535294990209817221457293424108002961671112879942905895136494731781585630624003314634350774215368985231206601773903131858033141094689775054821040395506735510660484798399815579952991985706147601166379504667246112073071790536336002325497039177148175950991478893290042018854400265899305842597971557345959258189515100361497438892110723239805520917212904355530635752239160872615027039349586206141708577129123214504410400400115400532586694954486581674020273065665375365820285101268731500640008190435374094060712783014734051246016591997283725654078116877354111549331836960328394277381977898920383784171505155239465333475680745415983479237091773091317330620827621289363560014333864392406462821961801401418255231444465261242390910137080252838469752194808156521367014105461656407874559877085373946375958349174454361023929101861768903814279088794375947437986001757873750412470706755567539688044052259608825213687214993330258309908696874403129488391864584530531234235110305874130649874980728135627554527904887851560712078225828361676376256246039540760470731542357313519442170538305255173183941961919871413978273596832759345923905949987894834470673827958421019436583460895794636113647396106660103048993245276309447017890784623261477447907912068587876800235436337531302281348031126687200949147504213437413583089420463119726010193625388546422681883238900326692568247340117550269004178170740310412913080380232787490550204257907456771286731262249438856407225821794661304022978820829988551885645016300171416990765766461137913593738124085031297552055616688169377585965136402279241207161118278204588329115643300289752325015864656293345768157216097841787747511090736756077359035611173971676552166288964254158548481888730176469938726893095412484000578318851313529106215537693053762727267686950206836133619655166163984767683784833399822410283125140054916580664017457341640539876197947002963895317863272980960961174424297145291699271850861195337707563465647756497830427035568630887161030439934079244431891885137556033263351031813703892960648562123298731010500456861634018980679958613238561040345670474911220430340217256694201888408654640289880803424993721849643021612416766414919618921333283964698053780671894841228216410735862569931493494564735567951363796745922211679937723505068637623337510286477011973527769160865734989602435226069499428609100419512262369302087208429974932280830314313640516505261432551628948967372408222677383467833800388303850102423994982418071435148266394644958501671604210279865795032047806390155430014425446814667595238101365768194705473705054225367220694028104452219865693448203801225231818166590086836084472056420791605263162582100068604188057161681667900155895088013985461344081879057377996099362204910450550035729920243766911404359849112026338325833819187899486959779435685527459181955686260133043747801139565325234695465805026787776098724672571089870433591706769088654230350271145565667229526800918625590065138358659282946297326278686656095930341429775107069790676495820949779433686592406717674181659975246135910758547321362695367870954852696742065872259732499368760619305851902906275452661604595864700418589913581547785522158072098773405254752723886716994631153251870571582787794782940770935375959377519073767719460693451356048201076306602586105726987733276485344325732705915006842387123888155118871877385168714251251772765935235196669759619555522902525453483358736794942879326464336397607433824152922078214755399379801760872094213033780132677409099349936031455911877622589095397019523724020243320053512932644134021850094701109349126719670508086480501081913404737580318686063590567088336297633752694684560556466514142305805691831685675524508337962611516920271294968622779661228403409878500767464743756448168177275657776510489094150335641325712030960551529876502549494399350266812458883397050594203763606425915437573216325506174879937476707722911984404056740703796397442439002453275127760542938690516972439100306316162892431131266925920616418618100613002077632775748070834206251893451187015897750849618778191006113283010706463351115917109712152193536271495595945410682851509313913217683664550996376727965431788384384264778867981301555495150501338218350749469569721184986726915242571075083767367982674687599706464034136473491752856888092689870103073482444513913349318862491548243527390783743732039294721498215472328109421178460165355955245906712128031555318713752491243755723130242717456956532232011889234822429409680392423778794715899065820991970396532753127150492164685945745262276392854317370075362942789106270267824276341082525477012295941432808515706156294549433608030902697373921701445808290202573167072114155742674989176769997108292439590418220839814532734541131170338669161819156429695181666022022779012377548005511066903445320658430840535615788624141217050079347603260009057243233999008644611872924336465221341565572277183305953719615461407307918689813538151928736715084170999030084750393154097567897759253163074191494639258558359169651912383738235246419551855543140564159863512569065593248103144955497094414413668196861020731852071371985956134331038453756230618558943259332031901425056998421036545133133954916081340423921259493683595372396714806565701371536386596645630404027792024306091301422337113783017892273192829749296263672126112277241402739614255357205046262648593936495744725408554540958994835824475246386718305166459982751327622469294585704314498869277021018862431990965618138820213585485321761445665808959613842140137168375919911869758069372974947103365412306567740309673591808028556830109781334936367781664159978306225362203794000259216634357929785149121697534608044604533559373166993591413572750046634416664905492841534769834900832332515663111637255503790956055657244423871252346758272136425464127315957770796375034033662489340077660780632128818876496307265746192841302937008761764399755736435469658551960372558898058425746951049585041243922408645406411229496653794747751921263416367913750553268776563298097035200298788261248737665996831780152576273263432895660413201871638451151290422021261305591945497862026739464983854369277560543304560913710932784818193412723438261660337289629597837809916531858936052310077851605070160231947764174047251884060943977826027824267583007598505652073403895107810893329591702104862731302792475827465353011316774091998402159408957996825822462520782505388468783627533333561937542557523290634717415331810491889303414579043382283106478498433043174506015834600740563528133110445802944917931601081561932622531825586636748594540483060910447507500400830595754145748957682221762330086649819787024191489472204747745223521044686157860537416619259584567822883554956566059009713687049223025504132067217103401908969976001352462200524879239996566086180971647065149822380954164098833713484845094890654488285619205714905441359268564126096015252195251272686812013135334026240430330194629209979876911251279881620425098351356560863014164876919039634763885711913925367438430450584244685929813311257735315102579148792369999671936425084158558524700477878659835312465100597077228332625823761924927716714576955519524727247557377288760061722782531433272538189417460316749159046549407580467213993140156703325104796958844002924781418421722905640026385015378926697443144091775004126106932875350029925165917970591410703656089094237796541091886970540150698024322498677194095987936167454388673183312576762988982150008982241748272622046721147793464654325230755798242677087614029862551284495819564488439643525070993238844281645040936118332026297363564932331950316366951888153678573384932354088026635856727840122796845893151690354533148535528729694060019866841752919137949251563962042809544832696576884417860301396648579371098972924503583224422084778112957967815249601841001180971731371246272533038433434104812819363197233864895519895402637525911765831022489804708423409081792855978067102397525679698155314538374799495301280079692332170017381601490642281709251357343373798343671156774679371561244422916269083351396271659861396587853690497908383340694890077495572326495322106149871094769695674044521448092353325874910553884530857206144554696505080889858935295127477586352925700658514152648139416040950881696181059022334947919130446301377549538154888685834373217864780710167294242906476602232573469070026578444698965863797549246057004043673528951127684501427196318434899204824384767568459123424081338310265353100241507915991465148721383355266839464758005596336706034130273763998452140689111320336987425586268541422878609662065986009959275130118694077628172876716965271558057376719793074619147546156955389552375415388032360811859523461935867806513850507241584600240425248684517598701095278846617647652641857747687766470263160901686966963600130729955031576262893166455743166266526699079301968184027897648358467895757339417939184812607564524213085117073277564888003689872855055993390090285570287972738257837306201701352369453547136124690070037692966446937907431177745183104567408784335617006703303156836117683754533259555021714979823561426841000227055999979898702512736602943360177925969465949620446374367417101874498222990257488190038281651044859940171097155771695089165262414361890995953431934410558607759042021581013985808160138025310202578018698164430300496459246884877304825925059646055065769139532605544304517420413130118658211606016798611691992144969749116112293187269217322425699681483906834897890071207195833531986145705853721914202141745221289406397734639511628689154534799006083026379386517391528526953393759938944698839364925356219210353002115137382623494835377007707130067768730312113962338095494368829583836795553801920442206288300203689800057405867321614127588906364223848138946499506882892734638277217193617594657469686225067933895038713155029491243614186243088737960494676668053330067142867379537473334886043787020923703473576880630774804731126814275836061101744087869423323347882631426847212625100781263353163894031330396215361868241712452567398203960102980312101080547137749035153549261835360007538361517446334088680321685907247943788967338726987718875706856848902654266086543275225102592315321004905613557069479161952420870282388517266669845798740812067433709395400339827018021241808749033698857685615855016739159062463732949046976176806214593273862552660582521027427627155563780170286840706568245541855186356381951377785481600028305100331258222047689647892707623492195852868188334051031033232421881808507727278673170126435212434737595183842687648061201904721925482833325941547155653840391752341315556432038184336953047359673129594397764899581012909112810672743965429922490636794998943932061698085223563611488317682947862087794861614857707306167495294951580416314875807857919891901207658107875636794377349994706175388713467687016168123693266978778960273806603362245203885448082068754497599666112948831276240626331559570772711083254807007227129396856328567235883868203760302393087957147727095413922238014056657426485860184607367691526210137409449719890276592863757492251012806928138859592869714451686454921781687016757661493881816321691984084604752040996263652068208532304300652906090375721652851238775764415936879357595463240705702049160594324186236065711820428935766980276887176576820584426959074477704304462052968810808953392075956838409481677813761499253946586794213664864679252748129391708755080408170796032801443334402557851470954703670062179719057993519415384015243473667990214357199703895855249869704475703446241985487832952118758321371543561307350733664418362075110170894416741825734647039706808283255848895922564531922899772761522374552363892269029438766627217741214225951191006079351855931683150382681396530146593569847339311458430152204676057085773087615265996501757241831308750447576703967433025049086821001638710110151382604666737396336290528668410836304472300922562220531501825016414144518710079478554025022129917080696434834628446769231117700265359878368460620067513618689933570296459298952437943849775751478292611822080702079963560836942099037491577964844973951255719574872817145570180027294397463062706805868197931917979743071456505385177437246576355768979083078394541491176696569620417669236294547120916509219627922135794586872934019342186604088175296745328245174553944312243080984480198317687901349555840206742708014915380103488578425850817341421476278342564574475614985086726934542403108661308847535509775102078283576069059075903859908941110681138353231927278224201496629968260793043371787846043217105598973749337826267659627772885287209275101887040413551220712938031206400083453887973170272037054413462524478200068040669996396880590479721620241666070517039919925157628238917206441762432257861147413973970665798979217061699675576899527743419574026192002994625268595505064897754139714482774093364776630934710195250389012166665944577319600074551302758293761325520846872046673408838213064414537389521497202565423910637868762456273616499669669816421557685517067380220814990328393347029578040694196887965058436166094817194345988102141245721392547486053036378597039011918545499572011028850086817468260305468559520620563710941894065027062200976312472045707126404975516070370116807641332194026576433731323684531354549296485663090518803170191909432668752538340201607790669905715411238152896722583900645009335394674616827608005504981323251424175274578167394500498726224401773600644948798192995067124090055917830065818228291729825728729954152098836422072058094332469110304564736364155945811135547827384397708714914100577748427625096430515091507232348744916853223735578807077326492036632055524890194395122771764685390413574467932422519651962099688268808832766913779901421433199323909174612520793330439346038792397537645581790119991876557590775689171085075443646026702550086740210899487247321126847517887821932615681992402628340591292439455808736057489573137200234171828738023243670720562251819450399259621675693578697149456660611744634448270418221848584580785217548806302633945904046499669645958796649129208636090026659384882090366443922891414426267979903977069199741581546814916552741097661521708376098388304975854109230503805530795783833163552768042328302359545027661999512587718710768046661048243009779501660278996883941262823868545082429243525419940664430949057955431067156544250130860725742456131943773864170673076443818129795351649211555893969698268085077958865253570089663738239484722514916476591111542456871593135458587315185624495363437914275963027252146537376982064756271749209670980585639926931793429267075288300034744493051119905064980366580263949277465440210270721137296244182441768926350651729215989677386391004363220518193400612653545831990844368307422853496293763280203848438487673797964648161588129453779307256349726331207555700135292865496475798582526361282172170474739171033663850080149703420083105215461102107665456297192909587156261476853971082265171386819507184537773769020320938387354152841510298840773878824669431507058881237848868061752242427912071377403927928121574612706803525583611134217258625088507420113099165444727336748456405686321719704010420892889540500011168875511446954464979996751711113406809214422813763430790527900480158689325712855486773859435057028540192126708686775441100530234643526012151940296903328392333382810040127056578763602278906567876477225577238583398814104485050195181290006280985224122459924867497180163628764382178069246652528452040762882001382299829065186414418009874487563311516478236632881989425419338012195845326712563283790224383529063383335375437146739166371317337216370186542608555712867865581127506835588208581186785619642558472835394269912306997221920438799490017636848422602563380564178868604702116668557488594750236796492111693958381330914209472299075090965302678028093397589874546555996635215422130123756596093784301178463264827785957140079594790339729327902740390874024938087633855528706592377312418331573588800277788922859242499801211271742689851068807779454490577571643073615922746520988286591688640357884370654263072831748699577743837654282858422980644023180009230367755186898595077997890594047419481872003850088383215084878654849563400110058176777968701566536393682918612675057274244396579575746822693453367733935129463562201960482302329360508622531960159887554000382133476146247014679566469857366037496066449989696356119416497500701202776560189880958442307390602650089927829818266258507303855036577313540393865294737947834905033259754928771726467163453848837571411212275912309427278727510275884256078050959600525703470614500667716584309475191816318621233646240762352051520479925304890093042340425716869480128291204480967256920765277238246406644976765171302699285843465888806800745217224943856939105971990608013470147236910468098631132688408587073789366194510840868727169814322061221305256421556087654950689778552637622692886705720149131126870925938621086911152293025017012847076471390501796866016528666323769705276116505686431055263423091145338729421748354133060365684793637324274671986959114868996119815061309301686290033223918837790475974534502864314048314016792968338319214446646545946927986089066290248706603509002104002706910050236959834456599492241227585172973544283681671003935482603660119285155913120380205785738615195051088970749274967068504675753852645490444825820389865502673760386789166245436987268965460261616125747631259460053683004685391446989461804546002106679111189309089042917654329055082925858832183243219304349598917820114804562777414118261279047915338305237678698666569403903528914104614248402807431759430810028746481997831086095780959050313451446145628677362640434521445970739572224289990181575501955778685638532803990731715063685731027740338217143369203302387204208354411887256742523424720867092415774845946249306765490022787150538765945531039938981039885295370955023274049218543497693350557810503596438865945191036191398836914208246267404169314069558456020755898913357242026115029673666888134733910422094999279908414626994819307829952048266443789910476963746560004740936892339844366927405717541652099861401793453713334042673247207766403533557053784902689378911790562424232425889689921802158896917313707243074284739077822131725284156269044084037802781403910807251725292145762997551873866597413935103357797226575226828652057180257364257991877298610400139305726851191579961647350002074796226050103570688741120503954804590469693771504041414020432378197551668420707004998470366773007219869702889848605873238187281966686184487656452238062479991692025952615528523323674769215874142781231962740382346334602255637938272127887635905678015634705259950608599271029416916199923906213027600215065720032650527005377067714359100747724304551071545785181149023808794420404581010251947586462303445869499402190360622645268726647917026114847071614045209063569139845933302787273523701864206734515154255832999459426420795291013494461681806871458419543898419561902379906068515318282949213077005515556521018438240203134613481431111496005259324687623663044223012142780735174476288035488971790803877320237732394853674466516494027896967478128817545527060456718160283453448782219249734291770398870771584932283751936397428762479073829857415499741335860874806497799497092555288099900151885746613391388030265689611681189730165326539440489292615253963107964526303109405911342652347586276762172892006632207837809168180717095024575523960789412284191756329504345118438745259152215789975610178910411219731471637826178934214370515817211668093844190633356355585859829096549096536540016256557048263250406100321538899173676482459667365753974005312407272139430751241528425343540294435791657964514181099545257062057941413679160457513477155991604400695425933412269879734698543256022585027610050658074610000156187347518683381023306598592077535450183978908079844580097534919509972449012689102203312577639005749128308304019022366750303917847806534680667937475950880114507913258024565057110456231604972564105504480800014284780659902888112410545838240137413380751706375731280950100243639720872074263099800860443975764681472600048355534295686497801912510090326217654298354747653725351858415799001204492673215930066018231781993683361545072244011926033032371975538574359502278318687845951871881622927666201567084047321267720515754546606483649090577220779707750100302871867763634682050290582697556826551254519953361411286746344914807280295725897469929133708843741334790529304159512647005316947807105359177585556716654691170438909778046996612883561369889029215567880244974662899869850084671820952440939451814367225567825035279453187863406932452059037603981283054689381955305006679544640198835875873946900840539105431609215666856933071262213491540132839225278535746577095027812184522286861951279038684781862024358528588217453790291856122705669968185087384954055422079049868142126455489411916995845148022003324010082645977109389808428872564434243121870906847066200585486904109538952881020942629893076944035877820377959319298019205127711400638689033342592063044541106580617919950874239461614515842327401285207729533684561987509844500589645929007748229948693227401579549512623917323334688455603198585657641874793741711693569135830888005205527061655844957435279671767132556383532051303393533771149581660658077302312822855703158846671640356165959825512200465998520412115655920774938926913319904495515889918366179459397022533803743575464195152841645589294549907617083919071964543267465354543237216212304113837632287878492197577672526386290264823830942914484846631965395813845065891683434643772496201433905367683832862303814714977023863237318512661688368105699423775499987023728968000013543776143073735132150933844868864214277770907936283551090976538791311616812957605999674801402403719667448323311966576317904825342600464592588359325282302767809069980971190490735998862550603115723805817934148106329133404287788064829914079978504196383442175451739299233264875988789121082343185229632974613077048704798450854739845066171267027086573139588960725450035164522689398877452871892935103351519058051678242299761661429098949100421458057202340714281292093392185386605369943138347379637116487640805581206624205463504358157445930622175746102445469291015662945846278283830643848905012112172524966358687895716842679602113320428950812066996564370921903542991177223175943768985217273527102296963526520190503164603789360853974397070008264667822898293089348172696662327239585596321766541117643468330319317170932422027279389581530220139897123721742322218351532806763077764302092918809008923573432911995865963935580436188090539939143870067322923081926221818930604409996926722829828069178751793744854104675814093754825102249020534622071509724041730024287879568239214105743164966288693892087373864208407663039304675404863632905283808854129881471666958271887482971039578803982100289030759349997877758055474511473607266819459314155734310735373517165747619668248704483379593745344372881683979674865646127663818600094395257924813954987910730544341353948962085392169056161321133423704551835709811301091450834258267033522459188052240668773009550116464271341467902695435869105928984158247392912551315685590754359985395886878461902793146118301439462509258401737030095946652564946169749074446619128155599256444886427960899769474875900151563892974010864865061084381856140128304692689685351435808554175786473316467172275695645187987509891715787632788188803453935578495463140231889278451045162227504539225813580340468965509244556993824983082707138272919708592951218654894992808588876609042133725850554513055784418030856352994845699539601466240067794524103658810766264905596420944565190891110571479693840563676581846095571543873292676499763110447342265213534829116893555264600642941006002427129179041297646838164055216330776886196033816188118474212078505947488575979601236633203030902645524076924455830186266349662012032778483521346152738546971278554204964556389997327873384470803417313817319558860639658914157590538520725913645073064279776698713187950822524671574701977247471478132151918256630523766533532109740300647867585150769884587626180596020581640705265425444717450264888982029973596336874898921791501156919418098718469710479150043671592275217858754884081621669534288887292580572683952112555609190950225472763343113800516376008459882511450844987030181821426311722550273588137540820399818849676105007209330808643542887159667199472601026724379160843407608091000902934206885634887756805593773348983906838508218092269839242250917635608713315080291543742996747501487572838946250251805178432157901381590429114526959683471795023928989716867218472901498351982654990206055543940000350416962967221279066165946051398097154988580779073865137905784503050653514933597413178892044481865598974807442618177155505188571890687907520445050227755669204369612652213775827457180310948820809382855524352749524571378041804742763321969177929621488037775682936899073729325227545873595470141321252594922417490783222130296706736725927351769388318169911095985353615409278460706247347567417015980158205480456699713068166137554325315013767577237402323470750670310676652981602993546524377681542081418292556358982228286066359210803516968412003731638659759141091233009602674983822125098045427544407891073201961094123077204787623069541416427890372275961141684195061153483670480622707764831682030565296693537466413634734919527741577177612281736417530625731437412378425889896214655697036600674705681839551269752339965133097812281331849581961878390946219429041159162503781208623901167764366707233303771846809514555947115808093146276372397918572770025179940515447346376892430846713846990588742663691675305002681999738064608844952669510742493950042867298720517829515663031106526159225948077042841728371286397799920106117128006696689341524174929612563597542230559732356984850375243789424682437295220595942108103446971414497083668231070526442363357629745274133535002303846027019019883561233538684936701034517862933798310329268368688201668584955380657800598443149259852407663284213642576506560110455947873360933785086530225865192724175406232235084375065503950701657515733789037266195085941478865299209740138489123280833382012937249177352728578451943198884611373325323121142246600765335844275192826036184487577506256095026569806791265791460475462989177514515672135206115037849098471295875838658012421377050213220100984918421044767372274003221070854103326087813105328712294386640663796787116262459138830683344971534719077005397897970602109955709332507046528042792092105408238950318358089587549030906247234508118715119345595654445917061046977951418592927644949604819534814208948024483839849833579568467148875789082127970136299720333683547629268734313788765551165569071078587915530895796973871256511089284625858126369702303218459364760957360520550436257145184662557268964251356818044989432424051043398240325514847508333421691987761883474865679128195295418651687053805823150132447922874528572768880721656895185925827033722076213803240233461446580371155017133532917723855562978099170642812004437237359065540154419772708997032840784551360584613590879710511638770908047455004646168742269369864426796087686735880836947671134610658952908828864585433564805417408227297940478466741218038441103446025287420780564587991100665713782016469703242668176541761903434211634783035059978314892417049016875823626930290180823424273865778174905494197234256663403952090881419548284752064457022933570264841040138096796363403992729988772177002757528421774682713182756469070632437693856477061367033970474177077624298089721789678474638169962322108461298757189851708569944566125532519430669560342960617657347734147807351914117403397537651812019967847792110936167679829893412418253414581022244332520240187238088040633493414299870216533786114729345476053262505877706552018432838213303386194508011637620590581273124636602958075999034525069132585128834507334828792492652852132332520367771396481483443881737592017609510769732282362374699878535197900318295261835823217504520959236588622049003271577666178805892378253572333502117634075117207527199692336800890923393597100670959871328306158260732647692117114020408949053772316056286732121778805855253115414880542523665207691811780682225868270696774918925649060587456854555900481129789570842159100420075269859963537441393256125566556362261870866330391603883814360718595554372393827823721031962132350542228984722420596117297996402911731006112217547122425434842270975402228137516232482276004854256287031233197588255777179529489239973431253818141739227459146346308912553509018271016709444363217617697755104990912572897577822707192797222154841446503104168949756936447038915485496462256736634849858180900626720754471602818748603631667530551479965663271678314789759043642395124043241994132347203769462572586020928934103902180680981423754868064425711539289166088175502867191169612233140941946113484086105885967937224811499823874673673005781279630540725450933019872533059130211914547017942665609812519373994095845494511687936808851526931313265499948884833171956341570497198454736539016821160532372786832000558774670437487110578576073705747805433584656857580739822601876981356941275158319462926970500763253149185586074632758911241919178285508133615384671402528313875929360608818860401449615379965384451589830092227833892775513164822991530079625182153372704597696705277086070547334938351198058104761673759713594024990002672172669729158704983575727228330342440045060700772547884046201794071782507816701077206813123763060033455804110700019310717127378899446018048835060899486955591690723261716077492093168151806226241638530841653328725898716844824967699387703778966334110138713493801808589527391997399617322448008717851012513878284245082407419620841521191020702848952721810034788939254023323520414527742650947030817094060870014669508048414304578481961677184930711479357598370940869989580097219909120707341288393769894225144852433936681994665836658736937024643518796638856833386072374564572583364419034850874326665989074124597756879332062363070700577651277785188921644238960531512492288852006840007968226901058792803428586611347195143223863085979005835605585515908765385094630412114823569589330970310682652591721802043773656855149493860057150214352282615878264166006306725128269368732368939948301666408005107630730959204694390775866981862045156081494913034655766614869558513210249438074903089061871155909815071789562424292352979726031000749551450126686426280016547628733060944722875405489161116442703582312024761644929077288218911710068118702497998823616434797762116430314484953246248739639995644079171071356131315505341960618392630728046727531474898480650331136122509124142889437955099465753914015535990352386283965243664723785142098836636625027517704591282579281321849336139776099016766908834690940962609398309538608481735374229130672528810634072151642877187699568552580142684319210297110341397622467698440434595494559048074027402374352207888011392173642208916549351854883817438558474478940924412937014270650781322711660853195331480872707675459027234964678731241868044293215329337019563946648309538725635664641832570652413884164311555230338693196970140706664815956211789335026589427807949004669414644817463891310035589081761010634307152345169164694418747412762224876588624596123692758912017016640792739068414369716935197007511756620615081392451015765573115756464028917997046449092480985484416163285259076744226636780538842721106245731743882209741709307232092683623506256348582437166521041930624538893066447306084908661243390580815333882155958563402009359961792944070623946984879770394746783904939653248240761926131631533938870830236191096328643821969502509470611472978074821388570682196896913876858715051430853351262168781350274483378971633127128417554074196883725435040821694178714918563651958736433527153209788556695484629402606831928255067474930284389093773200661682570720345705952385929997207783357202626864239328948267675751952616387765922820510248467890203689365289277174304028053724378574025178494248467363524455453616386487473168270685669495809809788918959313809542830296303083097031684859578911027107256990613326436275028359840472278258947514573182294311942201245900194137559087399005107871222650629371865983378956999399918172155036889249667740605563494608043062217203316399455101521353536098557809312189480367972421833481977983368734657389051330616840356096526266313276285119845030209028494559211096960879885535738278711712208090037930684181464848465350928731298789443343869973004170028113262060367491507910379600970675188186131661099533149208807758466648706662977856681375992430568762928421181125861206854411090952745782291569754917913100225651184650677319390110840607717789315168269950962698105625105350361570892761605135799500227829942332771135855023010704944679611098107407873781492510862714617005430030596891626299280663992725987367618347280682225866027777347271760462557758000880794872100762024298989707809925776541992778921370786341295947203045983982980814659265397877039630413602442281142716021324537144755292401761940366915870082596944699039384106827574855647997999272038911027887433916939847055437622066745820226181075327687842603083652625940125924322792894513357779624829650262339039320079227067919203755612329225597624304896393760635280850105771755731379962218538176023314846489179024511908419415513823424637425429129732148816118683732089039643107552069249757765518433727028954786989737352819816837398139532840026399071635838310844237347585171610834792656658749668225787598391690750766980437587107149820800651049856761893170525105420935696435150618607736595819637508276654791800000055662010682300044421408056092926226687527703528440047729361500097561390832447264527568210016341477630544600168029225826234232479668619190085223378421565040326821277458814307649172153833072163245952222898657924034539107595536976156134472180307448070926918363766309233464775920963368208672752874158628891484470719852427882527597531376964263217306497851822660420493703744319690558822989219481527322928905118569210882900894716881778526413320720003728488822214687713007659369729095829311333389961729759275208480660958305263591081008809678212510850861641462522905019506701196875082159729709875507444296213236015744240644311532548992592856594532536334360633995222996318561163200942075143070362595183702461901594263136865610694128595168217285608056049566434156941911896125493012487187596617894061828309772538936770812821876214162515072044701967268494369662183637779143688787238982527557649196887308537560954887455066987588098968591287040147375921145501402133582889206535311913977747691305788333978188749756840700236910545776620992864837424645156581850789124474429803200373503449617284897724201113641009025354205534512170807124859439350408738179618684050559469013824376124609692443534868507350417841668939475936267928725692032442922030747545599166437732675266732922146886307256244288128750687469315980790702725955910079781308916425986669071377139306674807629348383621701124071743396961819502754123397256511574431210575278636593701488289142446913526309991156083120135197869950901266782670828057380977367390077286612185173111541774254911843969214055698911434170974937388763204942679246350872846143246132106059226495255982851487865101078512973276879476911761219442625522493030236182606227611525050499002766544514357097271798720206686381204909298154870369271522579104984825157192834730829734864619655863764829770037841648241937492080857361810502965990078288190513864344928939624041240105244295350622697852963310892331491054358389830205054448754928387842229029914255992942460779536611412360915307649366818696540667886266155772617677428554364876044553540041747139942712984856553764290974651018548873121652113377843308633638698528329048129913602516384262997826529043309660739578657833965480173753030040363826746322007484155476964507132453798288325830241724255598619487361124255097025807775503776869775129857073241005920330923737564766046599996038137986016181696545401453856949555630217851886792788405577738627101927036922473457155582033816796776755425000197056937698420519835352912103111936985728846820727361815771226811601384360879172509254360905589986118662280166371350184759700987447154296783405312147546612933607390004832803507880400721726648386652995535204721763133819502796125492707830229917247008273552998665945596755413905277119221558887299642653347520070312277416478254349908000801070677989116667501236116100571299405515102916921431683140462095396531378363716092945694544541931042763257603170521652905797113391314866438353065741475022777506491518555045408028539671314634936864821329120088391580254516306844388495244098308642652550083299609478425611119671301302984831993510200316448628266141532782237057527386573424692493418505320931576986810720059588910699957733304760028847762008567990067311367895699715889514779635977052980161853721515122722985407310963082947210399294726330069052515771866996239755930770896293016077926218538509753924501046510487586857177392958158539350058098993067645856503560957274478957745900740478927402358764821230426709511324068792812967029601511169399640247115528600594578559965431888327561392194742711821157464154622178044771270436499498602463710432523703435147848829347660669083192009991895499829531337179473548398168780586448481062646131242950196658789227676104398196427246156365120297525289227448471812307341116818158206856901997793153551037963584016661106800202835452700338000143919919710813670087044747430153988343534348440101893165849308432856132989828014097677506054086203913500944861939420660702858818043263109608300452165739167868672257264000421828043264032833188281430802350307504623980129876299732189951329487990462333046331258853404970950860248110726755885832187576381231527893985324369240275015410165526035004031407992646921648057458563031099176089306497154129542596152452939470516793018153425482837542324131341696330287079732137090112989043719712052464537772159957973607805179884470233246081808665231328965389095338337925673831024916917386126241094675466525017393124859549094879697161991273388845466301478677835038482006073828007454054152942464247391017383418843565114407855996567380852105116674267805571862979442663929405536657925604055669634914239221186011043034386844376986581909302565361746556568513922354157006312237491337338200034206525195152606908384614978728506138313555487234169268838050972211441794792369876461259926930051666556212496242458967238855920390119595406979717000474349932244458350104604465838967272297872089471483076771900271809608147525231685450230783030207545405054067551272544522843893648401794061772310384249417513585934240339948566839245747017354643365128680720020996199527304738844038188542381042188133853730524693787035771208336837393875479197604995542374039571681043179691891487066363931698208491620407509175427802501704045062984381748141313770461982937562974677457119442489796965422378560124331805328702827597864286380596326215051862099084622613985125958469942461380718753803377392005292072111103363890868137278549133777374312260007562523707911131621768839561167939764012056143538156521631408019895627731729357648992588993515204865027114074898150503825740658382231625223614017461538813946237838447768631370866805805253186885820588219994695511876149000100744432459579288529262463506524623657670992319768838951956554442313595424545633673138850934738871448368677716339873673076074890150895911060763737230089024950201678368639963536759012905691705231227124375723205760110581240612337190911830683974505620976768092191541372495353592653713170206899261763158007919174162367559033007937217043693655531622486523722324532853514501807222450518222908035251714947444058213976448639740097003967613488718739978025116747959447273828821947126052215316227307549352841635259092039459273910053141165618231454140304145390956154023425169518562870253136051561074670202877617430435286576346624681480674083405605370151817353492158628267773114066634241048251091246648275642881670577967711053564732100628730340381429302266930653020427169394012025245883456113279170442472673645762534280840740492997358547838068172627169529507966776975666722698021036041313387069296288121170933936959908149151336096763405938212691061774417309217486346556125896633992163562874147755936557591090823702289052969073891585079423700925251138462025341790329912533966789507375526720210063489315634011207435474598131650787531635636263674712618778920484343038500849675998404238661186017054147407261220448202462221255788631843992944924816071400633945408432496948116612884598168038189602390652829615169113343935729190792312225975955371963187210468803340284137390244262994434545182582503722181944325820831402340994312077483007260922737794316125716723648754075297686241197012335023103726447986402982794120537700769330977441170186261928878481199000347654905231511442691389685118453978105745018120502565045654017038628512670858606942831956772693485430188268534182095088956815218170495702664375818701934519034726325103420961927512481133763725908781720817879006526904422752239918700137364817934819172642933195176505751904365611130471435092723397579933537619482854102329650077811289219601040251113120210245010412803840193221806065129750819247530007744997460214968180580451856274360922544279505184983209832593504292260696244522353095069100019862576909808177245251729489487541382038907369089243515688916766773432776071981820649916137057829989358944138716484032797063890380014718743779315686842088226748287407250048977194151706505972612540951935616105872739242146137782935443890784207538578036875183513388532085161760696251439000173352211561562239968013726780817903284116169389786462004717989616293279940754252389352227338263690378623067430490726705148648247618371914094935416548173443794264149844887887155292584750782059809031417425502437696013756891386505292751005790792074844366050288789522588453571240721248972192560873390261143405747136292456317584736769368093467928249043933429982159624702318243791692101682632329669334588046723907530692083761671689866230340253070082640110888101542626477204729171335317383660299304428857720462657256672470292092776526670661396818798754186732863348725031610386264925816098281215166701431547722683287297897601725739353540653622573774063077872477290669499067958198002954073063997424561546634724452960164546944790822076651784525999328810324851149461692535559532369111670147566018336193064685821044009105814392305486939361292109722499082460111040082458835851155586737767894491387087016458918785844301185669308639570653977646679873893259449628905815717306192966906681580501763712144300802797949097073687254559044905800010308807307705193240553428931364830157056911523283603517708065272612449499984972534490835632589554179304851891478152197690202407963755755587601410129157946006931977317281938532272901984166702980082512937316274203875828515231529142662567596076550973407815228503810393939273347765561349061853044243217263297326308180562107777463009994392866819630884343451288397572790731344836167164628258445203249059852572651063715547408789368383596606658541132078180438356015440532522197840318484247262740183033645755312326146343018850951883627362681927988646087806466902609679763117126068190727388047074340859937338064028051080024016595130703192150923520925050497145659831707063276620549545813665901006571532306949176442369188754162616155090987239314781589342961743589697930621460441695903171406675189639607915363845765384004898736460986159586028370987965864198630257591576329006850579664326033740822657199934070516723581930791123131616965285605439200361098273803003005554082397978669553910661288941792571431894833016091517739458062483790561950649416579150097740163688484130688033854955691391632344955719876072590557876220347702776704808690360222390524432954475285255369125320351504796569220061698897664623513741716308815806629684069932046664754150730584923696034248159812478809539773479073449446665813568333879335209189012561402107893122209649099242184846350826515398621235452704498439117202345864594128077794182096089639642763089679020124517167550698199359253431098156473320785099084619818642202641138734482572549093044702765262605515000658012042688147639310563732591896660933006163686731292410061874366120263668098223001143488809056935190344315727759276575194683181564358141593239294476505879615990734080473352538759752784938394325573387095417251457411983760715281750746380515428819725886974460997122877779531174683004086792966433000621554684176308559093863344210085728633923243819349877161543405548262675683493604393231478366446501398587861958655698755829348669198139287525050866833296168769678387539338062383717359735171731519287255545082622783707772834276108112914718512980039938505897595368497357483908829299038299818436847973277388968034844454144984899971880177435478474495892085507181377368988586338273110059514215038249912264941130274634524837513946568896587376286310395200274699757114078506023631063123443611702602382066738355100526304928973271784579326138515307363762241917116571620319032444792753939961826378616341277862536287870491277543473062466177473140616902941013367364795409179371291452444101288306849282489610658662709845816894374407104615312073120289428502480893880967131229710861437264404562168676889074116097708792328861112217687046021971543001392442878625243661929068411894612336294664272815828777425700347516244876079068523400839793925480275148402391443936679911104305015494923770627380374986265972457215906840009884565580309012953835050609467617613176936643722026014467834987244172789979990186540692379427035145693610756281044715200157084584077300788562677648525794587790833501762464702661746526160627596935679683850849503319428912243294349881536533114991378724172415669941820277257090789046678231048949980154243156748482572876655361887612056757334843456947624021310243478328724510936786015082795595384517732307108184574403142930292953663277041072654757106494389742234623153869000551296796177362675826659021608455000898604939772730451743668954115163962449211697686438587340649000043598842302591555158157893359346205661265721761632903647272267527914996109894673619732308057648160699650084064634234932283468650222481824969467981655187703114701933118612696926855608018240875001807526307326278591439139019039926325171540534609173064819014308208258511292700472148371105783390297250705099386800933308849469144626980498611405294639281239262214227151350002559686411087900260764272400198661952698302949903753806771198457543859200382721866799216396280481707904844741335467276305340457411886709540377369045798703132345658510728570613850416254520356349712967763833783159852810013123479728115638008819000069926102597494742487907867767638143173439582672544800106373986480013581814500769648029103716783957707596579378945469578014452385127096510554003801027626622898953445721614893887975631753961759613391279256523741837899960532594585138948204450669489706798645539807501965858325649372690790565671327996243511017490993144409842853214725595835480515225856043056944629843572742378218270398351085324064600776969836294457290311400399150338768103280110891208185137955001099141988545752242880610765050607043682963685838346393399361665555587467081343031346914830740977330467250026384217649791343998119325366937387026577616852650074551544044240151618458697715491544306162898615110433491289973023922276739200716207796884663449062062109890526771001412588093317183373538095132302111979305496548629472739666598039637469448109270366340098983235402730078502741438138537403365417086817367318448765041573806085221846144867651961527235679054075470019142502626788589644855726979444206787915157553135746073543340185068894680808383671343690062755096753144892662202236536206666465110824732780125829732367146593486233236822881975657889183398843766056540706013978204149286486104886101770012549476388396469051387133566508877856135290571598084105966946495472454476512101871906602338078543647944594178651078355455750118661397368046393799815251919801944203490603390871343463411832262053297598594986472943260692934467349328528396766246337974583997014038464532593909784521792151034260362850390211372473446180423432173630751968608423284207396098975822085103332089213098779192818252815001859985433304449167030554075927809070122256004151565181432439410109362711268882344369696921986132042381387824784482878339901857441628563411386556628432953487517087529860296036106548852209436621784717929429598897529936879253252926247829224746393298458584530526469675885657542847464800505337868732047017681695025210482654531826770819605561323267289393173817783830620027340874643402482520503994210900452362217288252850140589725416149576264291184731311243238481364283659876317556118245382284286236906064952480146075438595442384227076043493408112268771354020856031345877835185652362253741048864179554229089585076520033869153400890482785411331471118865198528978801198414764747166876371296505067810836005220654002828842400773680898495233544722809538236006700364059496255096384706731727121487527882335699336637275173326426626374119079154667236280738987976086716103656631893465999958716530385089501765908556133750734605586867389274656812068532707647875396131530028832914821350257850989103310787311644036295625320783751463816532498752351681794468606487971858671809731417062536813792949392486251520219316977472530112258652635249942782925165241810422642216147512563101765210764973780922414123570791547097094712581962997779316162273576261877535035062798326900294186445194308735647957498346787130013507743770463669203906344871485403252829268432775513741515966180714741135683845379904421177668523159218259323730123216265095616714358800817917886016667153080504993712686172424602522607013212991772334079437518295395128690818837003041120074651112679530790523719943145037791606372235972751627694456882987436640791260128379126783450755364254241447359136341272953498847604845598962925383838963576463366911815528418390905392796438731351118268944345485975683744939187125730216234004272189485750096273803820008936440145221134592910832833048784403250769747953640490371555457551375919302657042964562444800204461679180484867006513283709439185268457608709575321228492612382586960321513133326679576626392837475811523466281430527390465289323045523780001993089768587100009026861590043237892492632540573356182526850549707162745258020125946224856105270819402682055719713911035187777226794203085857933680164424817843208069661984116816384944878201263953865642689489844811230243733974550695805184410754436309594753036948767406922859741308588758459370963587447551436702183091271542334591364406957634267673072599783805789903776117790453174425343421631743233763862777233892651925896855404022541314542762046058975236710689176493196824537178365124088708508740440123644758337086878963327092343021113034666093058445427315966104590889934739188454002078974567952021959829129454706623239477018698343055182046850378761924475923807152070318548278779992697592356030538576648967994758196446169983118662199993220246158598887345842913752018750065439789587316738745925362008489102331015655356973673860193036242549756748995886602203818715148509751020049181585542617779447336055790284725062984440032602162553406321897758051244754806472418426049900436595376598752867589939664280128000332928772186356530220276704727045529971085162734569741768292341722930133971883545934554586838380579047158646542267209052783007117899318935784944492780032487831493730694429822705186247484477123572519434829158925871867284756535232939424153519811403845186148063017254660942182116000747135545675310835549298867647619912493942300470199107085490544874648793421238673300278235823679756649393840283436516411970632865645565702739284684653972005940043657744558258630099764421654483970925655782214925351251370072973886373639059855953925070694871640309819332301976629301520318009878084983052384235077380213057077697332575535068478852348890089855744907075560204396365882168980740852737969478203899363406303239858492069885233320240751415811361725631998209636185528893402889081995513584102553452212983261172158296274447399647582497908473320514084195097116152414910907634975109501017324810046698686140544414499521165427512712570614854340535651152249981135292893904784745685118369518683602951980311907002227557598667210212826090823915502541086901492392831298631063139546342199777118476265289213984441203003488953193907346122656636239331071950756778569183883520413847077965317143762599909655794204212113991993623517286888028562417398495588108412320232240064096209059209050097388614996420800849762063525026386808194265962854487915770905979814879788344328566439684853342411907440956519077482997106161614298877869055109869434299954482941636251565427411827512567420538977442915978355856156906358059143916405726911870888855981363427774763795005918562967281694776535108333182164555518215800447964154496031584802808196826642130771656522442033677966546578884325796889513515537387963298974507909095030548540085968883763575926372063814034471599076151368828527482562098011744170126311085419871925372069027944724083551370243918469323173344557887452203288388646246068167706542039267361373672393402278872512669971780335919733448925812724976292811085465085922164383149158355261930670464802058507632323709079703668506068778911439027373996659172399404008405959426256711463610222011363517993864736341735769659572803794561868208415372692221366047105850952204123833535234054775635152991151138182285214607413934126014201062842709503133919851833873889074683713479640352334810111730033374210759550619931295065223916657417787909994991460219002014403500095295452166174267227767267262643864945961884646745786336095847055000646865093301672399967578564542595777088650012939795500212184269573610817948876874219295808323771534128142897514246381917488436972553811513767986558245195568328223434712137896731017510619856918617223237231454880462239389357915519039719422916489879514200788870627387379245309805625450371937188079946353050477574773485181908541078800482870475512033663671988034221832788925965194736954139530817675295110918713416751277971583438585401412408947036375821089354193659571842224841366029383433489291144273145978236914490950960292326187926420927906057699312351353541139450081490926040633285972255659066386679867761055805853399744779178478221620930357579341561861147820077334345223026687857917873035644658216855733976493882983966863774879351201796402531396861588775789940159024855442148368880846394385996313106327948455667513979420324618408088765262953999243832524165869662681294786444250623129809866196188665864809034698610885689300010097924327437044776451115379789275902155756308297267188658979295119560991861532127394195216191547663496150264056659861785951886609576044832623420228578959500121369186843730349104243663049810522671074354683814312640763383707746735990936573087512878468563602626600691583386593170294026115301415129911595078407658916371912676090794820630087394924619938178921983402976301270597109746257234053719701345344092071942216591256347807314925108103458748682119625656413445046050088852145896746417594236626069994265399576631264608399265924241181351609729603028040914102406188427276608376109832430581485286846712454044770858790143384625875378399118975465525822712743514695172290300068111175258776897519938687576764309937866054142346051666125473735961603832032261864361142100838546340766308447186577615074672266825615404025915699372949015334653790708555933805994827029657064820623236248864417565952965420926965762178816933111855483988836002797922601192677610065918634583923948406282656574996928061869347199623910441399825529221100386095683913954985397800165827735352464072139334179556692703121945915791143975358264981475537211552490168823389998934172729037849309810917942473481608101663285182570002042038166067754966716477955357023183205053048257784000291984575491881136507057282628481638243607840052180869448604731857687698282998653665649127698489310718587536238219307287176311901081714840592131069966381991473653441651219608999905096351444673839535121865845918523570785664852220300453842579061084416587727895454429499564869087478596522229015779246546679144985846992596749850478369922662919679135222396020748821165387805711744906391475193990699410772310230699314295945475368384652843524876514862546187036813385076626271011715334312486872154271538702826137066641425518207707984959892620560156655172943808088498065236848918277015468068317835820406830927577293315496132646270180762667889509733507923655719662947136613574581973181198462532224514947130222993394374786625110339766167162856423667426933187776246995316676379308113915605377295238994647018301978866492172983286971375793232809432712953192666596977103447003513652303654653692555950913344097302442273304529834818067293226405819922100690439837869473673424398238027298664439840198264402170861303956995833668344803335081950649254575124538844861837046122236318361096130394686734931366752454806592105658033993333263304327909994887921145726180728862974033181711112162924070528549498621862126751103517038982887385393647841926217719913628761404398540352933186509990803727831854462765585144721794105063924934823632609742823035334248921377822095251925282101315176395850848553423367960659205678199973983142918913763240525562026102914696098100685275140636157222560824335594571081484934977526885478885055140429730701451882822153318592108641717650866921690501351463362061517749499844793102582946028936295214640782934899955669195024017027139204449779172344103817273148442950336180097817929985097046533092152024887911691959263542502763422361672180233802862754458379650723868131912367825982863719444476486888459904977643194732682403359738106936864443634758764458811864425238244249906046889916363737492502876070556025872446728391559701254285619428738173392816334504199395688504352523880453623505777433607445968204181112683329514493259382837263867970737645610274734689452456702522811215937619776577065661978462226610847254507810142091927587940747634520817521161047351293920416677268268198928585781240417155612025857415134130326483259428144931281718220343628560375526176613080375848484959775798828498958579333625075552799021490232501897316664564762613296169464547170979781656760986397111031063981367507266913099100714264813953025311514300857386122106711272276776033887978717839724947821672984877951051427664577921156538457133018625671343463582863281039961377401287954221616228420375038894070976127638170273653318442833230033960347749992914391554278684164361086603438261141721006017852311117614940311239441421061122742926533158990232275475970931421694585605810309194163539033669414881446678886372691112706609372614670585848304070131901729264108333203991893926999516558880057317846244194670155938706490564450085197429098573803477689160999037146521106000122961197377966100079138276294021511332167101518805971757386303410652934464333664104498889383049879050131994137922062700903429232918172499481154424563512069195744590402576090840090482712036585777557283997868385774755954818552770890447869223868396971911156496757885544719220166722761918556314771219437360474264252495040448911494447994633829693041055590027365979276004253548488882130475062156198656346894161415067023619865433171273305245590555957390746793205098529909403642049903822018175627780234176466333897655712859879820817752161867862323849017792058616632294735940487259815642952061971268672541965754115192203840278689191280884349875523322837761278548325924619953511261992898546563999512789171275726076726688312304981557457724478752166498284393009896625942280334786423155124800952849923434353666877312759311530521035154631274310896667068882873289550417323729936868855602301171449684737489418362344946180180021841590442576166113129276972069432062876077687983880952227486472940844408738171265723787891014952825114648341784652851556866437653681750753108743897710349964350092617653160371677353839163015980391030436297126363830142711241272882428742715763180229583200876731359145019838412907236377693020935599630042741218016954432041552478764705598727765896080168229625716934638314602385559695108906551713083660257246595629438599944546497247102981202315166328732237259376596709261006219773574922727563138356222606608299450181104697387372503136094935454560900195438182541264522971848418560767986010498227553107842511634630672615770332337335410505057680267898534459641472034410283665260625289385075803681179012587009153106284303147290519823535909720473370575424372885251511403072767621677441197553630282897782851804304518341611769920629380889179270475275350550314778991209778324192082680833594463965052102470199637282352088540803906674211977402758901526239522593120229339925886486311651596810491347077855831997720487150895483274266626299480795254469219701446005368960698085123413944412883474833063134188393834734338942222372417837766561952786481121412634869777560150856925620752276289456642533570770996228513073327921550636736062269253506326947841873453496137294479652869312810184488088714672207045888089884646484692151609575343187191059716346634531876755703621866622708105243212858691859073482952686332967865968713202245489598008562621655077145842513018672146952504566015705583129059564553974755084559075911231908161181471178918423361114065120146978313111582238969360304769217270092187671649485805230819910214825990715998557140571977312196055755766118987583315814636306900272167545309026219094067704744705136645485525158316693814329589387594672806519403281036894110241841123480354040473735180252450886852342167715721024738078086345724274152294847739425462755543784496257436515666054200780015008885154045236624157221576359567130191844785771008963535726629400026990147852296743673910256410113658189872753489628625388170456827390148704973696829848094006956677146109551581625598852792930814795023939364217894068404363425446397770769055625249292854633046507941145459861009890395414794386736721701702539511009904265384307951031995702699991932466132755461257583878381104200576043805985155460335959206400949580573769208974986313027125750959541150802622717817641794100034904161732744931426350043124613583183363988062680667548680198154128809624653470135524049319257055933311538452464899697069536312296782189711706710257160147755158642006360430431461514498937820108744507167172191131635967581502394867736862574029227186349150856977743797799793066178971826331898438975487971816135387585752576836758222156086168709687545112867946488072171815679095011204028275350744111634905937744372719627917437823595206883481779107827674232804609315866842479186024841925129060550715371315786760700075971244080855082260923204236658528069528802853195221695228714816479609206044899146933208249411584538210314645052810130711425127530434961031823996259177805418246913397562290593352937308296957370706324729274321529502115352403710082782168025576280790016760319672785599224460147089484849047124529281612521947236712852070395094851725592448865197977090538191703792263616927414872201040923583134080996401498907907552675843404907852414025580006343411932037268233720083514470384140650146163528327136905948773575801646301721482680205837247320610926279129455944636565898213587470941713563855910000193689992088822931711791198666016006002986604641811487309687537307455788465237939735946605659792943584459826861580027404834843910814333273406633145953781662491083912854398635644231880721580566871977593138915182157436760634498125086974336715433934338338635017548949728235801496316750012026981908570341521159977516492418274074572465608495820585280593286815745551781479641792894419836176054047962796666359677670205600757283687930852625102179178943844882522925253894360984058597953165577712743261528013292888232375500141013802589697614010874230511159044934140002142079471726971930858754676540832801015064653425162217744638525703932902025943884130225933991443357356572853932973262470976806427714697039506827843407597741066799506913007222760287870902451352456886029720497713775012852872405119900937310975308256984165927290992331810758006990883512764386493635080110360713107404741011503753378045433645030948547297978360276177089321538837155134297974830070832230797990845207918307559965925025848828683187145821951126234508996929688670351748248617336995433359745712729681005055474918617958967114426266120656529886223454644845890050350878158003147429534423548568817745219749258025452273163722755916105398524116534758761423514949803363103309893252517947634070799841062124106025811290832954499170278483892340319482355250883941443507788343303459314677150421501189022428236751918098465179592562140584287435609438992451557237664394522928909660503924290851145057528178407661835225605331805442538432820512435599028929958522663078461925826871219056567432576466514112234117175330285465398842262495067348920929343981496610053918017164701017827244942156835831758077230308946673672311772850925126097424563226361467364163927346153143854445604324235596871190139590368407615385824846428481312076434636602029895661069540194535281598999621143521551520406073599674912841326745415411837443300734410911217180654375160775869291480870008773221231166395204715227132462361702409344644715019541116055480363193071760596985618242121720536671029588912462936241189197038744156304091453240180841575054270127981761244760242696307978570525429620903376199260243094033897040150324525026807924689832292517608606123277352494586198608400345575194168955963185237033333889060141394325393105745726693500229076103545206464271306390762250949431095335694891618476647325650420846025462184953090662562637276601116022474470049838154010759229342681436535285756531604242758488991256306964425344077067303705989614425529723117243040120358708179251745949787219355049782863416193464271060374174341388940280267867545480322714623028711159122345796612810727482298272771364707082561347597204372054436027033977090463767742960632799475507691705942152359270487498415192578310114923290831961188687555761175516116597565640280210826987864694161909342579855384628436068233650172213328875935193333540363652734146953157165320036113386868209174012756161930461703668524235191076168912817712280027353918363218398021259348060280150517956416049580345032502416509908381646294581484821336175255187351966594650672255940822772788872058694321690023571989791971890927888202048123767277781729686695690356882433423208388531131848044759034634128060494284325591247368172152550631204311439721997091388671876774970261116688800515959352782278862358413104945959041361871856973261847862916298943610648946776134758975994349346513944193321977060611519831986121942590677390341734425553884183528994776934219752957034430005535452423987362372739228125847202003045971369560158424986964254514665810865361823195007863475156644586293493819188090664570583640233863160451066901468887205558459658611645524765921954324567061878628188527437446060427811397380356978719338594990244174241461863497265517053932761050556129393708091745155254115826403383343918735032097622582649840863736083922869819467743971550430512027001201349757677090860599317079196007604640188453398400631677916524862823099388330062023798109393774894478581651759172540331387355015547488320120396158895900230233875182550851640525401045983512210018131718268831794161776090141325956757818619498836374637217859353766556713650883708197913385437682610498009416945298873661936587634585129928712950984446583450658717262866326962054867498038492377729042541248989349596978670646588928367203934927208392788616735472104331572844342153973856164574473847297726659989023647217427286121920255774926617547841705160072007422313865224697512805535855055878602430913617772711039613701188160150715177361166617947889222879538395903816557138037415151718822165865053538642388048749930078058987319142511476303857966533459893156807464005334846303782461518221082159947593700337078708481397781683556880899154786323896851540641715169038062801015032686658855871430143984593409690645600705934407035733691462116543959618522854656871779665651130480206144265324156883966044315634541028322052438230359057017384894334935267171403996977130097406611530382824112885119791303101705738734578105297184290568326393026099115881780214662313412048949019620859071411204406769762189371878620643398993802671596844037634339522416351251811301494258067436741500745058242025012836403356507786398425875580787323494486513178533184318467447654503285517390249759400332174698961328144082703103241599990019874574682114626938770857008488892068154710487378695151452091096174007064405962826221225113588477018143103409778973512465417613232044496481156182465510578457363174342761469930822971019224594449266129830525869858075644687413708024998857884773211361139047295379836114474899507971086863773547322756694889258535458796110767849994357007231822286927194722996726696004495847046958938971787863946111786989498278779167549503392306676236579404228525945603834370551711545528948403454373145696299090308126419809062285578694909204070878840212493887741589262756269964125839738112523878963473428056891395593248448880483885583781045542212548927230205021291132604403241443342988822117595564493552624087026928286816963864510056707386211750474415424487979339328248007841291834933680126870892604451978139180056576997953089589297278780558530094011017081197088674412631221420610451664571249465833373537599019308582843760709493044111595141548180122031313278418102138871836246067757519726943209080059209234350956963765126281629880175862141365574834219671882627476273091147758247083319930819530546106970258418674828893359289235108159057289947299199027548546310336176208771349921776214997676317832078953075018202557448568806571941415506293469514062866793908050625362692044859204189542377014432952409459612737008261078149760352657994329562734447568546432112851200476987965103734827626836708197670227479724348709446105293920373116696484061009305690010770475537036736080214641033033473700377818873137909363859339312198417663813700210209270862046832698100159967398986163974229501196659291272087077072319254645512338697938660361897573847842089568164888972438457788485860325363986101699452686253055151119308409615344439386281324617257024609830501381909216140957948825851909199057288925521785277715136452299593971246524676785560765246207396359340326546757101665679335576255039461845659443610998945099198081216564649351613931909212729057191214335037081536654387409131626818055052613073553192555234008768458941763004098159486397972045110969781351115420405779386776809776254656185708842987177952637915272989715792263897394172285469752746953275790521353356313796476316598331174632464610193490692132384302123903621264607757028994351571700473366759362641213562313294133596440912549356929043314599195138738475219245579913517482326229979283236651404126817122923457324452273364566512245891790030322542705342620500125620206621952044592884282500994493072473986471251817893073285494308062436832979136069895428839659790011711166456282690052260459911681418098848924831979787017572748410309244112766962499132356548156304449214046528437763263990062640733472873961407096601309998674916516375508276841717250923083507789309404096220220255136527673563676383153240442210929683794755589496192076051093307378752801147659922427221949937826555349693450596273399894142138391355720928677360602257865387374192656044633546871350455271224451848764089631930890664708329477470742208752157273575672514639547851676007339556912173975839717900040114626112268142590201394972366096702315869597942790680500025018871250375297640949607799061752278460004302446115811566516994240753111753263206228299757908857943613526985545313570884418912494973090481338694850182906302987706598197633983086153557302028081606483983558474503123679424390367613149034023389254658800809108706808193180428629952585313520360950288139651889833648613541686420399574524979133349829082339331691538540321925974190868377049281904445540898244428058497636260986337911038744819034893783933600273216763309144035520568365201639290581632489301096498940271011378509526283859817500236216850584116168134607478811718985135820348260627972010951036633566184840469007648822638807049610126204318299917214979567428453714141463844117160770418769103587383556534905208399099404183196205665394053300008578549842402519306171615597819790527532523293193680051049852450364799081487833113475052458291106963497207417515326644395189641660524994658858304430938535101620887598865911212690878802237249496382787529342306198106181796872810465944970192436704339693190020448382182929476451501242974375030136261425982498264203238119981198256254052018914210698598642951720598932429317022076463212250948522548708115116187883462067179316199583797384745076642407918316372916097540740501753059693482375089889645712098633992653663628996079003209909898196658337711514232650664546817676371557999029244052664773552802627969460541206337909738860744934697544742546379234552288969740592767805776572822833402458150182851210256692771191952856345980865832641117960391548809289754339730981449126345333966876268311832644854917652640908919213384871088992372239771394183882596609319071698627898690131527115687818368298422826980981642162160734233772877447572493395819258881388526632517827807307978787623176628288539395424880333715898340044331559864923684801760978390631582465965042493463157616019758416058785843165882872873114819968947608291483312210784028372500879482427541818988689732531168503396340725253661317964726977879930486046601313042150716720120776883934090311923266061013643682210038980890825988548749342353274335291293172737492810123524166544582443525592734961213249967050131192141782909429357596562976768878022310671318137711615257897837663811519656518624972689801257733084161965807736730258558664890519942351216534521893627772009210491200622411980385078951362475076539327940974631072818815545577180598236905286559547674633092710296932867483647478801659487051071073882145960541145160649875754556357538197820326929382333348514195029003882495993171974755981666829768074870231789116787774032419408245916727042756815587331171369486804958355893789695976334982560333265015561265192332259387362156595576318635686034077105058480445344555860232210329563466148893257584423685341174489332689112058562992565561909037142855949076492279306830555570503574263987116930227403645915013984476594772358308598547398014265519615016547608620106461677702664741426873903307081642998002343321688781986310758620390290169283101781933975785758117490740087806839187402090462955031360824486552575993598575131060407206638399366570928104403442695307583613994109203192695053560808814550648409262428439420688497182994797701273313690081845928480142424918028360963124610448986699551526686546891079680301174742293071244304419152144201530155665827981135991154025234855268798871596897032720931345965584414967259370069295491893314724904861968390253863232921451259554434909661222579721665379788614424417799224374032877224143285894521229776363749077615233545099711644448723423842071331628028894787953674751716684416607558913233415582465870331014097978345948725656066163354125551318537871723239887421077989249496600543485097702265844028407609082398285684404694559653416777503511694536341768269961658925320301454032396660330607180175041101303075487907881917585387585107119749662540214792481010179902957050512502627914436196776130489619556044929617937044673156788849579834937051018317031527709828452864240554306888937699284537321481726324357862433701818278519566484332099264377153311503888358020088555543284862260975638367077432674891765192182043113544343952597830061759655876678942546059353555602944913251812275272796987090320858824923852953878781769655044677739643408764552398586571861489922635189082683625269896237279752962355199745226149857854974448647401578349671160737119343910619014622482018401960221330659059979613218793010863755222041595455122090571023286255587533303369637478453111637986862994611799355772801519043461518606139983211558857804295798918537806107493083978053903154558856777370011279342554078744627215560217448829688077520616299239014141675556152286782343734568741139983306109726634438942447344063109239682005766313982567677334851353362769383119962847308484674551898712720269594987843771680340923987638323263794439345879222992277421337838403654183937430341764941282784290632816848375550236979274802434946713862555648872455474685503351602858537039280303103849200824485121801419408185934226354672931231211817798790057918281498316134867506530218142982505424951922407131229226841646629831826545323227836273090894664100067522427021097566842348840581845837078461488458635291654470027869971906972388075342065231233056641887512371240041216943707874178794638955850221252836325397934793195441814215518559415545135332593938971938887461883984196862587433507035354743157578117025176956357996875964162212284173252986598920468654147781674066724441873724380072421951056314973762536771511218365138304200107750824593033717294200699991509183128268296631345393813696692844739582979613577850279181664676468375137321782964666822496012276173539019711303051694068044619227835425399701060844861095781664079764015079853416471870849957788284964214934450319576504911249965349488284173539595171101243353747802696699999470992614352108830484336744358912132416805022721176879379001878442497583143954006375717163551268232928069897353393426126093344923618899187858259810117821559844519038028925480401088978288225964878749790331671328955928333390900463726298819159880340388799780030216231151890161467487447051525246190804250066168112849785424547259861212424177028569363606489417027369814776195759606177991470081557978338987643953991013394844912263365858926471441306596936247360436728474804313991229974013464077774541389506361047391288148494233941331974293923251482227288421699384041030356687795501527565154594123396186426553904230789392007569029914895754649668885091610488385883318418611622092804596827457615985155975910242655094362780002099033198602728101715439980958580158306800641865075588527063275425046123085621522074842927398246534811973299514042433048028821477515871476220466160448237617925483947641316250293470009696832255288493337600644418167736847931258124420015366562089034690494305319455496190885735066457655171812970181016968555076337609332750693614417778470301178656287283507413607552424016201394889432872604600039989356529904579201031761784241581527407290496402021271577049548836140012642450021522896630285530411886759967452337744173008253330066385306630664574509033803725179361780462389174159038986507726306904199075161102266426417125417467144381430761648049933767692522326177576042702937790905617983977492491510577666126875557630844622638410166896318424878559436574732614171366446798657853478845695595407746585751617540591473505926470943634696139534566593245162966032430407956386031474762285409781639494803112639893986215102594502497331703159557204243231259554799101281653113389721729407236634672517917074524648700358901626969782046976696925385512114482302809264693816012893969652416602409899156535497889173489541465884901179052391638438451001957229370927118691447628704114650625293145818353684470397370737612448506366726933980899514723289681976725168962926183977437527696718900161641459029562020202045003787370343746380696788379505667140431962423015014986630539473895738516414152358270980804065505326178739999186651519079720119329551086471897549703200123864515440413748671391010173015020965561247178402498669689068747559947394565197872408279093152391059628206510585418569423514258237049484492500375037529227222342682059943595474159713443629202463674044361939926535558608005742051617287267706905335374319328021860436850014112235026646162086821999980937632262503072956351202481696076355400282543582263945334543412099059933288478424006143614483859574422873318569887307488626824060512328226033934852768333267504775262449508187473635306927322548131966886755014134843698661359491833093031718422589884012730034780591310218463112801995503446782354824538869543636122023620734285419232298238125935616949188703316587957379965971692346279489812448476581363223787455926562095866390696254396323027621541056271610377248272713778355603514044610583209661222901055204233758760562647461971838393425864787286623055982909295934174897710898489412299764452120916227109030789744315503420974376389425230374200793640426283584689721453071832950200482498217326604827075947881455679685299908479414334400645083262706808955286015129411321341028284638498181480238696751710189730431376924085881506705247961125830404025361465092357634450698921705483880899377667634707053606346075890669523351545860802733608364357369575213096750217733262146442346104932806769740554034394187866336041836423940763965734375318227377993006839450149757592969554356511668006230556392760218957894667061742450512387290781413880561498852313877984589331884086824881056431723681613349143885458717786118927434581190048182944989943852493001422584770369077419074277761441124213624221847239019956090701778726916101994012831706867484017826238645141624331224078893718107100271477944117731218842004076634645815628512341647296294272244197382975838445301340429428954303538674859805938914384479608993922940542255243413803929997750909983736470731308711879737650210091295626182043079800129992629401865726003459612395592293288689658935374004386467435642263855255377014427592803471088059364421413503294223675263478654028281338905607656397034591147609690136707557578772758242974371034397031412211989546374143891785993485267470977120171576251056321462248286329564456197979284320570060853773770047648240296638724626006914614105672804001046059823058347503932814730718377428065628305124954592134866063449422979471923723006945493573069461722599580921943594533906331575713165326513250295379408608589322363359400923225723902515585716144018318766224017041764046609958692193040132875845516143501193485611840649887707645264805380573527185781986278447083360331406512900329808485777452216595762597106453172670155792549909306461875479705398480953475752593102579521948675659023560523413611119593594792042685400615972095697048121898385075419954537172008181133040183043573131579136037189424007317439498175626078552598933276515776558984236734420362109872165084967598931165577691502974013381612446747578604869575833732122910297619630967882721741252902342286674915844088646335905676695927705616520382319448426582355561401992251876220858561682540094985517004290727837248642441427334450633938861640915447709708161020090266152904040761315806537649651235641468457200789676573305632106930690628195064316129907717935728077340018027916440621900930355175806878072634098298908681742164530586282663696650874523952470075826363296128175250415738002207725421867624220964583723016477778106173432504814180897945829037493149338591032219748436607375685778085796923255023257925867780792443723792531854011407492129278614253876196652289637418041484199090653932145072518458396361723028154574089271212557918589394205994207916481137686679095276687514070415578912004503315253447404553167320682812045925546131446641884888397052743330970026127034613945170091529492460154861356712870857139272137710856106494197309225811051262855364441847595406005783898502794313536995855636289190331002122796418689977205706187385846352313470374210721879639250975359301894231032422454396155527046928988269845352153419493703326490343968525869257401107149199589560504663382032660043363453620745901705302281554696665806994416804984533239660689118125419660642739432739529549745521623478137837052853306239159261365379187625092512030977614445364855299270117842889465657878969502215525856481554758054692428225942780098946749617492722023644508556937737975697346669620520982485537136091355424317517548651408916150669492464962280237803759275372360909532649818422559753164135525225247415309015400589199332974619902469417221420999825389461996679680091650836125161271179414623458483627617173296886311219966334293921782615546955287019681965458468652487328278244140150978183893996247140207643685828025757566722668738582895715226709061339409190293239148204152245198416352092762136928868495210891251422819243732685314385660625281989006318544650026277873315101818498965989091376765951051009197353538947417172512959277791764485630754179718796557518377133643913686651921607570379385140605610653242692786396278214490464337772526651105535484727140613234633721667803112609227167778766259366113269175843433178615473004286973226488455489647678823664290396287508841079344123933254417049407802449521472653174788133984367213774316474570712901268440550211759610172096878246414427192772089454701226451538222059858244609876441845891192377791420592130772364530527767219762726081823697065875936608156054099566815185838693668145662364572249239254812488794183771161119096502418300941907996638434442051900312922817984412894536178071342268634040715573578434448583029831558472367095563361308504176593082236296780432858654521430586559838666791387461301366401352263089977618329357346345022379444825756648240775441067748039732424732742742555134533093227929154902756744284587453727312927669478209438068701864536997304629695320793013007523625798222622508645514754090904281722056857424950848236468956219087000357752375581964923093493929249320559056731171563256876434073977710042893006044629180607296854482301072803572192266088413192506537222097711689579122367726983240767993281792312544513972353815231030328373703263679908989152338488493775918652869493428313723457608930855332846130871224646293006084013099281085194687654405102586907220215096065692501465058347609130496255733369855254395680812918782576691637994673865467791193973984345508464999763901263262181235409166015705720368659897088488280284363149671492145535660358639807169691365782806470609579919523767515699885576072176776938240486423367773440140045713942095714754636890252895069895423410522133064254126070341040536239136104043558483500338269286770385083665100990668418198578955991288780659079241739859101057797360443591354643534338649485178832260362707893116070151435198114299514721679664839130546562075072454801579372591380326421871718324409060881889593834266210330628039533867746611024265832078634298568642762628233382970980038409791177419381169333023062716191418072984561093007482651601946147584889833522660091086825850837295368910420169931801838416302973245443088020052120231127962906617721999889221987500248270848556893764487481399937180864752871431803603875582563143279347231814497653593268796336728494847918994248851923195751408149394436629954503808627928123558433456322221401365925118671180203298122071597899737770488496184219535307238836073406244339398370605057028489446451062817248989303677891574886750512956490042626243552288385791954491786836404642043038032921229204513710346124683595755936925150796093754365613907634037850210422882251551996571167169749229190915786119885307709680884459915115622559475103790051193601887753980466509533337095341640664155596663530146184325656472333666352859575123799140771289422916702078581037271610541073646664421481261053973930857692941173310923512375713698003336347807587836059603611884568306800028495527296080409067620418748134458864002926950593944647067629364452976439355844850026275452224156021807276264256824024278433335246844131519929366002948541183528037309577696092124058318864298853798674088775369209378586091974572049678422243318854163447227538137301325671097577590614864123368033447959594044056503364755168607459618734615574639607411297792039337000631023665123208158680334347915667218926919611452806710053104038597721374256368277569206256084556644986032127184456425109153074538667199868741167084470903850182503808884462392364511572151986725676390176915247742215540193027117545684264526586866015262450826927248480573806510299761844229958844038565782081777620604148006082972725137570526963798725907424874162786926495760126155657944542640283135973142260568689434616514584330316450589251640103024767453562408654389853196932078319189624255509082595351043017587196857693752365809325107532987684222396224906471489677191280242813962319789709103081864148710845044955238722893107981925638492556380243708030111694631128421556053374481647336331979209637413741371040262247071827229033295029283642395544883196765099394213162129330036480838130210977915920367113290694708326323834348659566071271212040336094280546964161238221782883702354855704744195640944611419432597325668810721830348118914283833923866151934042786239423869601034831561045913247996581095714780673219334923361720701440323079468568030110299397478694644545592063888321430186801623528723880217718322710073996116939228965111503334687081791446661480861127440440641233796725354844950293338620102755594045576903749884761456237350919284939534138053095056531530653918346893615823644336365501549418932900269017324435039560826405294390024828105674343705593706922752106639480097735513418274943381850199987507521559414391579647245045224920687078903891596069432659872193102014301872727824159546960971056254445746765052758231568303853231692908330595231599371476572886494030800746357370102515162564689664604236512352554923665850684595757171767215593426724570711121944128181823319812861274739045090001342665672370060889983821783371636170429632350528840217658101769082384054524676284345158382851938503088885437383156922013238878061162377918753550195311287611893246031024228897838997744279851180263734206760909725501923777045788304309449324967846574302296857414189909899470886007202635039928205744021026695249308122823698087103113311286614886500600449201593955823552997907390212609830077748118590691099986760481281635523366801216806761825410668255259831370476961134232798783804776499049940811179407687795495137870040724543918913583503013716971210480765143197744496221256632313111055531320738240738998470567918273127797574073137253596421017926157319783463166345154613036505323055087176493206602609370477195379313202965200322542331188244261751743973341507143617591082497782354377214404379095202923100336122274364343359956824272603201804537926311599797093438778799031995478153019836011941698466861380656580628220075465419575399239037989340711919265609879703339188249201919478106811364819868023380423208855490429161299649657436193560537145113502308938298482245731062569971748358376590769470332105623707175890610793841218070576057896302159222040666632248784003054796253553963403221796707555694023418986242136523699931574002262320757740711829934374849336659632455550807748267976358594687656520864545120188606983018640256513680387854166395879432997004214325522524050586565219007815163895842223322629897980202180752392707294235928439122166574666542864673858451865858676953330463322771622159252235666542141139577864144534070829645840751768636256617717053494801678305256488004509567536963203067439065261705034405496140247522412028198311654944673485610990284289830726558955634334523525648129885044086135521235239622466401670974602505825170747553379697934148226053630467942885160723855025286293766082817346106863602424353387301344695328018971031377370007372049724557084847791330164518204514744570198911392768376299893483590452659688591839449394368613500909061463907912796611184819304186390087351123722702121045735307997446295829199031315003187782657725397772253286970859011705783510512637160209163356117137440074045575138584724798730834037118082977488836599548898463264367983687140392500649414361530603826747286302791108021081084569457052466532126287159195640919981582150546279135784352825718073935093118222130472540972262712351048392081672817353586585272876308286540034134979485170565941550399799193977915759726254449111027381447294731614078451792087827009768237800932909969587820028082693949969240372614779187613528754184897087782845515334222070159260861006034606313950550877467910732243910677005842287074366997046070509232380746000654653744389203124049453948294760071827002903982661611588765191119561452965564828430259105858610545550855143114957722343439660474808440428026328378532776097633850183764178611554637966849878478832018849852526198186052036822187777233869534339417683312691056697682094005290880572344905207276831548010175169614566753150691674168739526243470483747018040554867263433131728584955314945201449910916419781205183083085413589106435141065406247014500226129364697288388108206685675300142378227197409669170161706307169177143111663944876550637811290158154696550174985369717218168657884082852854470542331416108189089285054733886484804042648122547752212969893835083287673938684052879657700524007269438328728517590632589486492890508441581504058094005180808763058832074426604188382131202764352711173267686642673377037947446421170524898936306844339281928678465164295423136357348725043056117337081907972475248349131894236170406970533897873729489803265045897779156560758171848806715642937167720147865827648184919302604621736694361227694001290784476475488933596758723152377157734938577640190831045271140145120724116665061584286267589013229371335805857934382238247692776732610024587009805529097610581977500589790132312449895533809769283383620473652004509431780056853919344226965066880628603233614088867040074978562893472647388942872297321066104058984434695171187919833974075250593653997978351580178099947786918591266523007401086967777555752955821928333110508981516332745768648407325831731712423097939855271592694524792622140690595037748845229418027545993794654088511349206608369261171945675340567838311960056522892964256743330111594965265888357268278195012145996989372086179454711534972898188182926179920418857586632451863695236616856110116846126511116231849472064361837309691781042944227839382511120861856162396822376990175191681232792921855286126732015708353687986577717528394592783008643363187263792536936938868994912653537122725000812406172438772855161491771557933879091642567955235431004442746972943484171432333632358922589654945240251169566452939271177851684871508605228399071537019212008907218785197588426657542101354989526158199027938724591112264154083645380085576900443758389707825573041994606047552350512168797210898369768637277688772743912193930269457658145174800772389119915470165686385809025612821181836444968833273880613500567103313509915295847680922519648270846817644456960249834279917164926274543576960437872635589190752955517809917600513018303068697414677383642591539704566715432637408662192575500826974679219552140960458099788730015956311001343421995571940829742482609714403769896598415593896302160566057841888756036175824466035645855157786730028026958802957013636817514041054766270654264186938072006885662307575736243506325063247610798389690807385132583454675404503468657436050976082780212439899269056970278602120690063170682682075769288374660733213117822377004525187322123751585659944515768190345657890183301443319594967247660307387520807199477353697449125900276184016074126471984302759691845604551300583044060261387347964480299072675608949939447130313781195052335451675184397054915977150649533974362945777166350456336879598072371041941398967298284699750064423156487354697633800268866272014689645487528822389771738093482614347821258977419437390447538676562355119897207841174956420449167650426621588970881171107477068616044935631185326695754538797231316300331033158191930001478063727244561180229112974302583121797943110017166147694691025760205429681469903285074033511181532581690709743770115337559893586693963671455784930415570475349612911463098172949451961836610205723330019114921103034187356472165280127326041330080176853180213324325633402469439707112073494258486212703187385166708512492820328959228281311981078771943292009358132533258836750107703262361584074073119259318806648833109364669955869349879234060451356536279582154036920880051410454829382447725140517805293857651805845311379199927923307683334288088045322732275484261231070809797185070016410796119339016458182723205681562363736121818090859099193493322145620866295096576468123044925512619472921974552938875249753840599108295984306574326802102366156051001711386239108276757588147052252727608273171115010068843050802958753835284992861284427185494931943778571290970746389528386985341887875173121083114928078411285635707232594819277777187412437682115998191678907260575789613547265761995743835564329479048272275410496214520390233009504699552195009437537425145191586845820929668428397956643260593248899984097097297823000696473317470368991000907429500528754694156950257185588294264092554061751574438686407708555130382073120824280050610155458706123062896843718416063697635733919914064293425203948275064706754155367358379769271049229953059855954215571444351173082834906505228147446864519412574550216311793301675088034558256542028150997576760665310550421161669782293795388749307384833841391412728045696896421213164811477656881980135012535803981220213115180618126242468899856796631602710974546650423843033536719302159235596074115724378405117443865822546308842333759148261944966363989193982080800987973519817713235719200647176193114576827723626843992078048812918848808948352034017011031879060348699662794867116983605899781732199905286773243536927886914332871494031258282638066045207215593773982104339405915622150229156666395808771424927018721050870030221886300480917133996244291810107929942714867745418959662085880946806370791105387481861549169292013100414536301466272573149081462214066332239909324329412711793692311233541747423623475780179497571413277078594909828014752538874972147018213448911379444427732167635206639809039601632166803028929851116396435009607613926913874302797658577460528911096624965028723510804046700864004265899061147032094502409475070690097751418862458360465880421548343225743252277157733931489776455986658851423940181855305568302550387427017827447192803833159162272866237115453096881011038848797271782981765937011199487723865086758814992589229455941095116333770168891836443240247897454971967112558189045895815415962319722496525503773218037446018543298782953266174489390325309014667567177333711960038666137009522429942873195551696846212133854783561405646134946423092560143893634143501674691854339593652868707374283662786525315900379420070065631438879456783438834962573348158679876626623274050374298379939155172687393800930099229735552798518904174647218204555546394966786800015594561742659293112094825105791883537463888106824646073344281248715582500212058924406680799571009587855310476650217593611310690738219631684554119687071357465902260018930488557723122611340273051746992081599295970077658722074216248099322057567057039653936865240075866700526444402072267819038038277966693167249885714459926199581066249717907260229925175818890175367573299134036178054916281491582628094428393608495882568837795914252411471133862552613609872086793827006648496757909294070480130846827294854721675145597515859612618373263484395090786052793275941590215339408830105503921594386148614000548310651551675174440950571033736723702551927721650724444861605009705739442824916328865980629605557252475839066980154949913514724410478128740653914847076844817838673669403858389534580884953086407704241693065387648390263173689853623205319947672216835353751226847166382273873684262530354246078526634419253624829117206330221180146749587598941659730938658836660590064800795292441953486089352824064622637018977367795415257441678647360954329313199167276318471390583386351085060925920170813217552729136907310424774171914447421273785203872678157594308348947958082571321544528130925589618462613235836612085511292634795924900241837994630573892420628679436784959037101911445192589699886248850758670702651166507164051103641775268597686389325523840793204873227173547943377389158877984519459935902609643274003522954888813469284541227392080480568996475066909101727593721229565142177501814427602331443034099189345126887631843210832389623743179396515737455640101275853717832822377436545957548652433635505610236215722412508519598652491768708681402841008348864744092588048937011264260880879976368561313328567421762939772210134143791778564249524121605376610140049636345671010000471139229076614822371917373492958252555150582632360142621277354246369764169820441618821450009971910369329205577710076576401929361937554894598160560419546078500072568278357511900672908015716253823563489779814779966469677909376679886440980565365815087481865964289524207879117034327655845225195910056791780248685688919678658140472211003108965451743012863984436536390180884031614804034242565750509483517262832815444416874094203006244546198372793882946737225143201846489342202700547022002172613899152875093326697199582816995189063323118548920972063008757924803754766110717692067495358251209174464127355035529619604522761601469677810927642439604575173809171285405931461028214892577958923251048499440162885490296398159614101493543052949176735862606383646459255678660306114847129222152881392652879734170922078265241897563472564931448541019862071984397613133291196096165760277873624762572307874061992737472722293202066720556566638780672576533327809634199088270215474913681333674159908489454269704249860225022620802310418532091387456211849048470408430113472959490785703452327617232163114619979759771733573009848356414934196127015169420597588148359318715305509032387472810146894527052738111618411149160678591230863816374079513318434213014116592268889447639558547444272459623616502990576605146919261538264176694405211159944141325092864217401619379786264295079870548787659075584496328410330625745926676905323766401093193680427015920457345928556309840166206612296908802286880990602083284935999654296587042398814845203397384243520948251854513539560719913475088503129281404662500096850263226192566770102514787855234326951795737604606286577336008834771900617335962971893006623850254014517729074410346690070569286567079792897611072903657445636567492467969964238174580194218904273909881484430676579161804376233737577330761589626268758247449572305384522258486352282103699114512244261448579747899362589363988028302675644812879862306475005243146774495331576297548017783561448199307048381246178205530437535523023560017198620681935254937089449358453376317343955648935357072868638123212030987232413539391060932912902826555408926152226813168123849409891056485797160170327304584840177349350069166294849947174630985250022508901633424083150223394441669214751342348233714073754640194432437523790421770448454330189783861724083674623321625872453551688167323397749749359468945466540002225992644258588135073893189842798590671503335753394888097956264345620542769154633746908283554046517560473423801667677917550464652871677090961050272571977655228252287142922173262064726212861511160523141818457658585589099551368425006470067450480651402779096702632473089118692960187221331405744741364489682289391242235988232312996217366884783198715003897178674842303024742914205136850368567309033837806093713129072408768800178435461630416706849986645538630492621242571317461468934793229592668176992423231566846326532504736597931898270798483014497497371173148555574846746251132802003396567839911044824395928891366251293663995377757012716702215775327302367513533236471821367790246612588461950856429930578490301312446533477702903767703429916443747580728776287927835662327861526079708806120705898968260574151499005944219943992092708723337672653541535694295315522712623774013749823187711928742711424264696786169915071791175200046921583250104575383949909544118691653633621289737216381818181579236150874687181902428211314347834624010598744970336350752515376723693979583963271651865948821860201553601179928806106838966301133216010587491735451227928320523894279954431235947749074021259619254416483231808436095894721802143328690373546538996569381105020562522280080440388913939697762772261174127971590775861014513622836961579086108370549899338974143804948219607342237645552041747853209613528637505914678814271016910345091925438956363875830087209380651041187123125015073121063303346174068382090154875198929278805853519308180432658061972602364620534916543700584541890110350534352636407169952255191591459017517804360824004884326210893286594184931049291639669355497202459581099451278559796091748001020895921455903333325678719877645004198496077695866037470195217267474113438583377217765011046409004304451441978140415490804608678020712879388011141531103509761102483933282666245504333404352427417511761021735726752513050376612952816412951240929732048361353273204770960044936366941389567732201105481345453778716377723812072484650407851482221552928404541840567320814823272113059614656119101916386465764956602751459367934522520548485919761326053931619530815872613782381146045124467233055595339876434327490434002514988564115490594530522788008546604203696260168041761175309546823417893382161502253873378265598866841850473160433276679065034706872261620802244770391419764362749659277610315734526366733663974791650590921972393963984348925532958511121977426946007006916840446088270394202301154499398766183717201571096274411643427426354487891681783419827191390401077691602948056209338043156123466171529983762205571126903277987143414251943297186595924902499927116290754753682704368015304038284728293443896318021318014056863391682236310532342356869892438222230533472306426604922020247627650245922191614220114901006618817302317056463759442166437814356510328847601822475918366014326895752941172737222657800428562580070214576418966171766032095410458943008824390846112142849111803559045241458183085819371986572379143005193344003087865301899932911908439203467550744176216550515416725867557369631468949170208478136170212043866134839117795001445592131993777794684230353760361863707388800019236680741430098660769998293758176225310344086713437414659071515212309145680823835775990636586629260824485613267042568625412791109877086287823011313513771909191176861586217551238810558137024148830677938597547053926847209412446684247755036673099359809210636308178805052965244187140161347312257788601707274169994402672756053087373611659602493837962447390039330090435411629618265212797148987823113861548990280147056693285598293852268730888353556819194594418705972285967868998870344746837915976147568045434597962561791454860150617633589822337161778042500183993315986046460977812530536748787315087570382424819942953783873195388349284991724234113603331395928684941783771618815306682531698162009333635570328350841785502700566667772165004096792295407096699577269526291157705302251587808477324341033255699308941582351706337079073474790465067954347171870867884061558152876925550795110639200275412615044847679941394655076430778291156956914202182129717722531699295398384437289672331171080942814451045067058259027523713343492058200047603446274383573154206532833932953986572192212370999521858156596513600200611071387247268929830021839222922258185799103124865469820199833956619036132994677519158382852589177474637702954490591945498430769616174431125289327210244401473746247896122106753504706372833953786944931429974403839455929192916945874432864211155100296957405432445455684259777971007114055263365567400060084869521204283918443083016363828701460749947451665923585406117825427907311454120009784578743262449000967111600756486870049413358644668813238438373977922066136406832999073667010645517964721517444963218940792228467463133800997861999530137264642507200955294362772521820420318437896102929705645766503925462185568525385082512819836917286063420436933331150497941238828222655241979906154677187465482504538751485624635134880379604505495917781741763733211595190052636378756613799777096479278626858766357605833556786994463525602794687963667317825118934955382700490538311146709758055183555642674868124736524425187740532620734385223671467168609660613972144112395367106187662923756084060895912374893389007550717045540942690521825233301866820601853513595540537102269988320800776672414382734968361139789076255962575790419468491347568453171276447607996341222698882110798365653895923508923209241613677375204596984205279700457216880457991023998452500852866288135510319914930343463631093754065427042839614027880910726892488141359711750883928135944620395447228292504601181037161568317321862390395081868452987522155507807343857461768468693592808663939473216304805670044025084570830007798237239117718633332399400658238847395874795968414952663411175693589667413438691252728207707164369113155236455308885092230726700960209686381975106003202398174770570465094746582288193230148477661868269851082003895380149800543895074869398353403090605101692833710787524237096252311053109107756894161884983649445275670099707135231277670839192423853859935506128035431919734016900173411318467255671646696994464071447574212834242053233275212163837005408359403853766033561393471146811501398533057813674282993063378790838228130883145447468558613522762830820572601135661403824256987201913425075003585195003540377959093784643749028842291812744473043367612021965997239403909268457556897789601902636060931225700633236576141891529279738911733582178932625017462199292731842443648114182016674208271361994198117077462026906504289758552458813238872555905416348131940754541376622612961522450236079542048136110083941152696388587914779476305294271111286352907954245557526251621035906569542043489716090052724418557290859806690254558856265292540987381110766684464101980752863346320110035431101188549707709679865260199972275113801178372343765509144349262416727078057689400943076299234370943740960608830183348286485949342253131815124859940710331272558551291274261246614150873784869471262415076559699107830533648116107218489722354979981541734209904838100745588379976577550708185276392285724816587857611245325036676232006993845273377827836715430322507843316799902212587535119466789015153863873517035510074544904369886653457415608551690618316577565832481187157357249410134488116538594673600366115659531093556492693057373726654890628131687202088966017290386685655071528003711299143826595598107998655848838835527296818508982642583034126331875168385309869058914926472116544214445807415225640523732078221816256359165684845617689984943200650817486132009081146515577010816001239609973157239729915248835141256504390640711012340369778167581476112973958709330898433522495412009845885017033242713328101668105263009791563357036846791312611158480069435641639074337653589939803925818532914128537859373391746855482660662111961523327264679941818982984395834642128395122449076234928758767660936043815837407671324067472539923972498002609890799119674339314929759410964154950993518704149641369296799514142023320208483333504220567426572076839941924834016707286452994247816642560000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
52000! 4148607445516600804520656073501047397031069879168717039737343508364170490248148911101650505828855753100140233933399528099434822956560129987932366979417498491889171128205293692294253229826551017866300911935026458199200882957667438288310719211401642359250483388619686706177177703162935714514270555591253507473783557664185503883686341765771739874600193821257347729334724367660411274281377707682574420138386118065324142656430593113992731123338842141418027667091655344720979989808642824917212243889185920669877410239340662649632465509173754580109477061270633486357696439607428712756523884530256261056168717925566639270362790098045919725381566906716407396073196957864299682104275436459830804579525346885315082422229794133509331579749892588879074260485827460694448320517645006846511767180749550626820831270688434664591434500742705108006614954587258342193320102486046211305844460237846330312066839700204075557150232234677421904190657824820446285063867980958349418025339737056072772300273570714051458083657833266930048063296522964688089335847760886081321159716767335184698528287919504957576669251322875113051419795951216284208101190007788594478163740047544730693587012381449914061322590830252870673880947798057287344159402906867216426263363272720379209469822929873424944610838080296552113576335756858216020006847255401677384283556069583638884370309276574839728399860032588220891282467475755513258094010872574444341121923946386206213391654343328973784757459782696556355309059495975688584470496189908777487699869538960122985995868320097246646537348855573139079015185727097921617740738975978169696546295529059066208921829293241063834177417618077466649154848090145922829060806169149808651664809232859359559312966914907182237513314839683185413898133227169093739822805381801636478630424370947803237721583089308933900169629386092616706252394354252445241420306598312049366178279796157818342450345688571022635460960620514636263625440635733834491922641212118361956671163385801757141663261398131491373302361078644038408337752348289608048850786889154564548478045438431523410373333543367717973459163441482871256576301043104362842103781212993479527799830343439696791468056933656545444776288551247572345278600416474974305159685815139938958341597022729478982568343346688249991919362232031540511585064924343281548713460879757423497473351843228808430679756703302198064567417301580203956237400162223465600432950836665379109551508613243745876709582987494596879813843820687493951390737720025987544447337651804592323891340776389415847069516616348017387634675348363682194065896225452506834206127623177247066286176240399579281711899042249005047699208517148332175217291262694064455212575504388905574759831014672851566238771927309079631420955000339927847536284018825452018468646826887478751425925135049592040788541837701017511668284538200238158173261209527213572904942117387825353178585133204602194318997294908776345405979100809244883637282169809213132012022996521574278176836508384259628359543180493980752347646087152602807944286956598019942245242148838534596242026533438475326102349931885967729132510113931670123055548416690931109570715614387919911949270519141616449211529297602964458107964216931138120433319614722130529688511667363518773713519309746555135138813763139654501781704011822002434844683152893555893466320493742470770462869315180999034612365982388551322027470781696425888790667866487100582743701151703370951663989461722758767139562667499276532834705403611577232851287525365579824933503687133221089275418284542339700910910299346437706602619249520468062880169041222685370319596001351418023108391979728602907420212311984170127133780847248191291443005993985799980073563220732940872493145520654937182052143489566031957205436585181014084978491691970404616750218971638066748507893748608974840351600132616280965891919042802755648684014595041080166540244639208689946544995528576435395367340120494533464895830563294336077823404290553856912836944489618587786196487291749743410453535806122100322480689181605683187283246049894440568605308654108944780265449030082257264397419833622918946523703267154669389639127629640865773413525392810100631032084324618504876584349637064313090776033639397712817216244814844274302410918131637997396181165673339075269075223040972388316324063720110140466536368172736473843361435969365257063569932429052019619368608265580984017560442257237289108146044259463324519152350542078374628817618590470361620496790190786132073352806367742840961335639715117122568897315273065718585378019903230207175671894738225529775441881246663146609391132000259743913748612495397339584329883447437443596926938201961437381316360601816874301434717862677984573922681840219830877724316557023225028966450059582487722817222960583196628278337336558980244690499257932746681327571727233163548015543231383277425265866283590240614680131259497259135659553280794296183829238944615175914935351737208763041514850792258429345476828718054248394695775945973845415897022446899967946694185400415559758300308044892531383630369040805527746204709441539048949740213010980766488643872430877606513983449291004788531333136459323172806399984436251354290823885606999924885333187365421578224803305681577862861301818117047587136904166577236329016198709322245186653914873150950478524869787096340740622259903146504950337238435455944761362399048148314826617426932629243988161463076230094155847223864823833587094525553412817731522817886994794867047378864223037239955332452943181794876164171186661798615006234056097419641381450595565032342565564394018717043726670545616958254153502203306138469329505567428830824988987634552555835974100338541417579877059635970393893826428526609758933942243175833584243914023054415240266674535665392173634206235308316791165716887920828476589075106625777440000864326212957612744584810979562971438943214539182718800945184644503697998348202819930804222372745452086685522689580466140449242742735589165824273529570292004848564275816180189756332638661664789983713244082071818323213551034005584632312296214358727358719462240605516396488932351147571859798515940806719246579563442276493052890372240720729130579857652382410548948656672714973864453377590290778353293210880361017489617553422405205947836367525046154065055983484119499620174859235594623014156708963304753992841985765431831926112527307495025881525936323742608898933046673158316683009127777839585375717243338405927572564807332421230354355478473877297999469644490743013593510680229261408386682782868667223744367360324147074609134793105484420811662937063837540342990931923876169741319668490669661549813388656895605693847413505823667107111434200386823613017017526240278303564620982436984048357714347704196773565897125560881522648591820293721489279419931311772353803912022565603079604610211624404769772677048710325302922796304304979883910442884943177062697701927108821135136581237866021194247963458328387666896493869501759153657489232356940586216260789926644439928607051287491594197141552313747923614622890631635325077571219880744167159841368626848062958825613067667199254021434222279238485004952938304610257509968897994069281161505395100686222830333598543146383526351394555659107596610715122761693533833708055955860234971337251266894114187022921610548635527584415739719792899124516514227498687407604549092901048679937749229973044439837842656622315147908432251033174107043172510932411910464602368286724524803925219321518956422210530283674862243750291333542077138838476866363310606774039840610806887669454748002432357065616968526903692549884013307430605704566834566542623558476265157989138088641059323100514860631724072693038882983032049498030446052336627902918049502846766987549497895826947919125322299250853374549867106418968178247645647520935395562957295340870210317226372934527855586856041942414735526237355283029658002367191429108652646319117155217681162934316902164041703027997536479056590839380901339502607610105237654260030747418317300895900235949776215286116497397577484606130293933381570086749599380964048195325633135993735625385688827250835151746815027267430735018646476579911288421058063630067284642540818151481531273377994563539349610016204816351276053313612442034869282973926841505099407821649229242778034675285431189809485803245278237482042720011983834795424051884137609433153572743973152531337746538721647401450238957352812165087152792724709135020206841723339651100705125903732689794934609118679929419713228215467342633926767494957364732192488559708125801352293439245425399212620573254537102200057915286447470441106690751615352481835812220291398043466503584076672412295924251973477416489090952337932136227724231179363528486276490262194457090741094790441539015088572418695953798654223440718736837835714903219058113354116856886083378188980453690686668826168803751776644352642042995965713041803478343651020355256867817457173665844232467308472533499201423565584610690488445997690348187309580787251469456059910747566772050718955171631781187571359174804250189732744719377808412028961975428042925292127734071718210359456200420670234490627041324594532915736267531579672467458794666683706952510278792145361964660458917990308502595289875097672136433612363588355945184049141717037247565530628478680970374760314379922651528173217076132025220780807996353462618616201082781003268551019468578541707430795519935687390018516138627934936539436432186557496091557950692503793143145891159282196598815185197465415967068407702521401878637975912147772139815653716181832252613108562947930396759774016516264090811942732310318399007199383277910651350568430135889159370623633457124653710838844049064938152836532345110705712038427904800374968470902843469913122862753247446042380192895996336537255434359672269100031560402426140361443398661965510517024367913986686822930889759574804540722917110969636040001702208410047889064071340501323462786588093585166597594809131549320107423197579573474735864007782889528767214176817228404309477502935249122004440484014323426420364796205082350478768318255173473183143486466345568682461383990777776799713681597350515104573731265693185902408976356520606881276342119028617735877188296294773617608151184223085568350186924951451059739468634635759008791231238283464470148906141177312552708551136222296720161721886407764870485199821153059580040971374520902386852632736982021139086230152101727854684565401599149623250671708320897422675944064335831941533592895676602318704346500236000131551159457167428376283347022148899883832651400688952648014456418240366006009683616322424799247019258502672690576488076173668297589795970954715093168497944357507775086120183313586940642919646258042374947257032888987336575248953882235775284099630286636604782729711730038580754980920832923383694193221203686209505909675758330609912832459934177318339969334198403248556403130798170926595182124493333581495372096433330911626615096340702627851327189700337274967516633986073490392003110726464531478845345275531687270977970116824143574080062669432055561046933905306571547869433722301946651757359108515064590271620273050716331818565609503552864751528052639175768866430452090194603815416119520883468730042391806126912332020596931015342024065878697559681149131127082378602492618204146686341437912880619846774148695615161735780675629030690778962553570283340468935935536064255767581481129934858610491404699610602744067541564830275320486651285346644342776014031140846220308433793770391858873095229935246797742015156655452673622381646657749317904523242542236514388053190291322845805507573140242067365775646675151608656823578803626756639848444463163881959914639482438957181700530903459300024760303508921297093592545392458234869579274555584553843204208628450323883408942315556977261748319489803439988841388777455364955186842716713525576395653333452468972098433283333991216623576726807452913020127701197457965165896059037975859797132511911254778722532277204325765529327280982723242749268093924363383653812189046751324739376658470929943993346898147878489378702559924780225648082449484225292956941268806526438002810919206085291470034224004008734639282236976816653882331617441148085814827068075357125821612353435179105957429429354978069674983042345865998403096372230684526560029665326231350108618680708505100053269349510139740373334078770458262823878211160041475956849971306974231116437381492816600901578448791029660826092673824688775054982469489138812975362094389183251596596948748171139486079806286448767734518313406864362412779682734736869694631193560167817413971792004268801275636510290379641118392703379488611166351121738897468900889043102622674387638648424533764382071787699906253003183423950841041395961415451154221230273256053581689830893379478934212385953780666075284433722361005231068025102448990110430653868813574196047928987665432967081533956391605613408116331352050195580278240550941123212107469866957696908932488516045911409942856656177361307412967232459636527378172165670005856222765378694650974630483992541569440726728200237169670652337166663192073562801965795950921900840129085991892350186302540089039810014177961641809680041036342740647194027848368437349915694185903520411300598341939269709581180681539592665955501845179055050977310354547019699040953668000173077063696941457703602938134956606705818581493984184648693551598823421220866663297444335942230874198499262102037266900747845209648123895646042688616135137770373383709406321134293852106036763493951801097718857792982518302300617314481763329024186091319117053184738478049941036859657290597480921344321799133704270203438735930802720444801690669530680587994538880507930806213744821170955833158079083097322424737062695912440316999249926885233726428620952069964774350378201120759758458749943996794535861351839982792124141279777951390420513802596674431118999502067299180160506403104950780496442542034056145308120640943142929003000613786181694845306388476429129255152570194601771499706513968555122954816732436355997369985942618482829807561454208558152120716159113760754369568076356639345070241522753223923511061130600868858793775635387677746585606972465524224639491039740382388818101360271561676522002529522117128256624672125803135578605523099096758568178321040059617575869851721299065442766472651554479659837339052382953247998198895751394231043186335451890621161892839910630531333949030908371129298896358885743888208729546393512944252937263850390583613228940741682023400297125147862322493542479145505568887125424217860120309583451585911891090251629736474397584000919325804417738698237779546811011297699580672053100448151990731417581384165695002606187521236192833231625193479820682756021005644753024892868666595546728233765949668981023779749497408615551880016446396069758711843017510111022289090793399459052295827307485243883834057018368791519333222086492297401889277202836463168898305560727033621172665541720651137342792733156728167285549571290215675982888486412199481409307471037815192976709951549494456979723795017754564470684861305807292168532699661003152526389911624026564766517653641102565071613511933204883275244924687683977482274916693499100525335638059617393873864109540690502112016944215107057251384847269884524319810044034966531648924615137841676359412973034072039147956932272775090167193650118269617710808493387057451442641497334775564700944451823509269746257428225165083511560247704041039241726156175975841769753645827243269125712537947291376454582512624349855505788298185575612232199216711006316800695877571224449907289388996059764154542564048520669268880109782594758456415260531765686305942161071083992978205018904096267976280613963596075008594288131463542528577207140803885722543852608003727049454059844256379403113283063818686809706747316784834049389614849490400778436495044201926608710444354038907376871137915726146641717482868865411702723094163508734693994957032027709954616625002047822467114686073264022071621822849920448507030267896228730849099217588052034187910234509072987400333365787330110985599157377005097145357531695277154918532080331757074220986454495957865279198193568675353341970631171964116122276746430678053700795036346205238704753166779067189507621574845410592615566925532621766654092194934558867360732376115587340946530892898468662743439473510960745357870963751060920348544497058359536317218776191059437029469362696724366976810588062693245664729756747264086746651627782436763612700605120238345549559240245377576951280793109120138420798162927071824364428301934724374026510803108133948412194853080404002415410319638865249523034535260673016286960599783404425457158809383100344948558971820975113807010006969497065182219392118905176845735487394912170135244283509942517632544767623135449673174559864432604890288866419516788891534577640332764147323272072497353466299792248129279671815125217084664874978430764842403663287925645672021737181357878391421821037882652337654380011909912087951580915670638756160589463969381196637964244138663636712925981060283931853495643045978832843809907812450642094759811772531870681104216824409823127679533180514844397126767304195168751191604481180923490873889518528841274659207268313578735393366694774712751640312885953369506115459825160741970701337712794385760401215903226640843088165538821777567081242254364511484358750295741410258015207127031284552926992920524981548812854078850557592606818560785583165927458654291820502186860807734414557979094202491331398884895274260467484969244328155900353040967136154993698012223869595693417325225403363179273180830630115477081035669334191963925673687755631618712385521608086595252564757028082477245960460626315695810218587963044912149247251095857073012934614671190417447707635903897542145981886504415955338179260870431630369533987269361736221852017861466903731585879001401955242224713594421579602734293382208513491143606921144619264256193602019093932995099686518800632272620457615649961268256107098742210215048796719107276597031914331107226171004248628611979390290806060501565012239594374897245873248422448979600993901050529593359435861084463118697894331567072614832126264175640787917336513240381888259905012153203225259087147456335409792941739221413217192458911796915219494757916089262840981452131434291970712792234895908525272054322267330110566658197945738718102628863907601570728223473320883216368934862964223674137659789229985812462292126402756957828984618966406982347682906378277780856745004312202114058814236421173413254240424855760443810906319627637186997135938160240253844320831625869275074831093271037542924806845456911670335421253404925621093314577427685737314338338214380071131320048310359816149032484761247144755915908125513491665838521322021506835338504216027257348487646383027931193840919739011212266689753106748444633553576649878388481428713072819863458976990776176301352646438057908585439844080746655713262162442868480865899052591702481306687246377232821754807682200757349523359963962712942637827415880932194954350077065359085319293056986513968124646503375140962255965732945190793358168739010239084178399137026797460712440662174955507412757727845315261787396608197934441517048701578969728716342562533163925696844072938788558593021838653181968654429783352017763055460513813989605510166028898728268872411712402217496575644573804594815062237855591576149342092964824618825600249813928678097345706588559877117506380254237430190397078346859543980482481501965459324589453117577239476207879866318167634510829420499713808335717432500728740632816016565028869222679323160882573291384270002718157294499471048982667846254480875430800926172340368044955728902715931582916285911509193466675238305968632988593130309218804659874228907859028394151209566003351354163806766973444741296515563202853791105815066669892185189868864263484853259802937414846836885760091749515405991900461259665900007556662226287319419096865322938765755737809892505828244647517738773675373376310998547669852986848858189465163761654819528946397581814204175182106218893023258555322882672980868325885699800122314377132420832435814458658238529640967319789955537196732343325138164640658568752226242387770055374162121400354747041635854342139260872531679654408509545144985024779379267686261838929659176593551696982492235742195338013526313707116227141220467094563255821308106471550401812219910313643303010184819054745153012660870672443883591839520118416654748199241757073199601189389685367018780824932100300852763509879009585880058363579340032736207245008470932152222299385021243071909435878478000855954484510407557045604958500765200907088620395435683457478808752792369283128818644963875075942078176282893343168279064749387100819070695676937890135741772576147244863360499445980742531683852891918313909577914964250260129057668277091089416756675789300466664216547187500481234205316034090680003295530445676315130659889073870052623090067701545696490217684343924782758412054581016455136493953113830607586960835881974266312525274939819166052056991058724128562173702635843896500575122390964421104030814696928957611669419867646927005213331075471348657954347111367627232436800328454320211997919414879013852028367717858405176714715685039750889662408584997760169090214624749891573302004473768994516663549617663094275300902627153391685536946906387651288267124863557951091855440309384176174163297486260956350529000510898133341997974840826195757647318928250699215214699524297486731151219695968958375581260076213790987478850261277741822601542423409629699983430347117311887646432096443988045774360084505641992499169969347931063063634120494285606285087146775257435394705180902440423109383318657924132560572342607640564988346906062913283304121236649630207923019695723334986947445147910733648490194973381993608479866641394473410452716508897321548336998751485763279772845891947618821913083342627770905850435467636672026942197800489565704853229764465169079153506812125867611213678314103470593250216276010754048239175779485408804121341833586913070313947951006089321691264488737367533127480619696574158031329182816658457126084099432088475934669588906459261925129779578799406786765933992340206850170815643952893255349507608737107441253311864527865998587055058406730188198982187088068648051862549335275153192806508783872413841045887304515898113090995734057446468696841320092568678028655637969510142494641575968757320029953414984324111718380041427952577069039634493031628286525231574725451837568572016957328183679918274929491258781549739833608196751164402404587680641727705829278187645328052994101035307443107751370770827806848052221885691617383533934519764674353558704305642787054839299950228324530822784625693686315615928254734471828335976813261682628832120384609414095635120422287193327463019954790422570714854541240171958797428281274997803956619769458428492195226368456089444337153724951577419704786292571762868575582327415923189239348760736699616724253410265331709846995326428544361799126287305293989593956991422401222987055724876889929027373741013711799104584331924819339977674085614090206070950734744421345772339855343496559062069275750021334299680024387685415164390329670376928935406327956808336806890045624555316499757342538133706410899816960460758911110850125743513075598704206259343967413925295694720314121751132815227570796674173813394003985563895611441580107691195232137854331911659065668590844056068861366145684413505914633857557574626794866561927192081136725313118147296494312561162724035677632810634801984551537394385832649966779605379741576285968272543148868318830122934964182689106106758903891242490193718968278681077670026260109657422173033526738862097132725553674218940404938232859886661012363260568413954964625851071244609320974533124422964397400170921026226496653037497400618181322826065052794431743717163219853819757437909055649638062721371143486493779558353078800629975797353676029102964915043432019589364717465797075882866969238220190518740312214347785757758282071542519756867470959522617737010504035064513051197619163398711289451116474739493916984313196751174747439415189694879208918968975132209340894529217471881077534063243092653318544892802151951507119801178693188401895214518216525332663326312791761503846845182605509209480583113656470868015250338561799473642926465838282130686725604379603883856003802492397869651354505373374903623352832395342094351627384902343237034320649892651547926323338845911525950965522771059213535395120353046006204899536581038668510582993390801885198200912096955623812842124334817969188028084886472093948536055576743667183654501021823540750876044509360360979620444485060527189882359179660547523668280324946112683228161824729684667556618946900434948844496101736760470286029743284705887095118007348614400637348148907598733277726860026215316905014422829820503279379159310038048253743298954020437042970862103254954624765320035658440595969536907102880588543899219001119415088001419801584589137803505882531010937912909422778116529213813861014815917046739694880322452905322370422508485391448121740044618494959883505808994158741964509648860926703516767675538229498758729604338579801400440173874206861676381498282151981644009867118139798194340995171951606616729080617578558209675375670542182028545138163315231129555618743539919030269653748092402985004539506162005758113374500214854623632967914691036710668929589367804059790975573249038647788263863140337799081883857469593533786032777097366234402346588692249769940590544913816008771649704508991038292964175305920796629385822846081942021031130711003382475693573601493455086877609183755277518380462972449960726311165803170380861645873263320531017626269631077638906172248871780833238693274332594076607061604105871994106045506052662372313107818076529880849045267931116655383081390524603837664575672610306617454188756121550345421573245621856397171897628409255878983652462152952089869282837901144592224364342435686023250973315206251195526455293833375785584553152870934545098975432097991284539098877900637782744391732913659937993807573893274184637791606435120278671049424228043997965810018148797541557322168316082894033203015212032232967717297449734269340872331521639637654951464952578587015079792706498473181032211666491712873024119245340699352325044906175791176104939383600757710182482461445661036203000388438720146139504354837422574500607134560406274480077071319411739674873122876973842434401263838772504686796638387088346270491563386213058346633942393560579499787954467186826781367822214411490980815482379894484385191975657208182076315869207150494396602740664698642105324429441171778039906919660560667209893235564828543462182748209269840114063539874487413353689131395430833013644761995631974613493244247570854423235153660972149654254587250481811498384170197704265330409428272855315339607365841662656361254746272790634077959971615853527783525667985287240974532210609238259270277667898342572820752666775273956375981633056454392411477048039652270584190625421158278818853002214833773587655649122438752371412861317781627876814283581408827765816313207958845882094447531564797437577748109258126061899751795438425553809395617106964519281918876063148699410609555033131915497428410388053579237874466980898885493919628807516185741178475118728886248895117937916366632808634052462072716349475933430077191726429962337326969972693564501356328861944159834504762909129095883662133327284087032487736673833405893646401327495040451574230251611391104373500418680710538750524772719337999400716420330392896950375985818049059669590343606646284697711747368691548768713568123363393358236599374530777781206581940752263244619985856357969493213310449137133678234257200327514426666371733123038216670033353483342402912801654791490796469475560883195942197990808315004082899360330324866497561101230821702897870206481192826543506374178020359447551940541789577823508798975014852476306313008784643435622992122853900635491725769511535536199015406530636019204983124854278867162870992750795320203571582668518629873454413516155331357373417870032862757398030289080299031880796115142362915675942246039069268956210447786045377427201520659976270309635087200741368061905717134762563083357854286880381545214256888264143783067584345712779415942653572080887117647615153312718967065290321996195751020281744066759014540542993777292354055431813269517518712888928939070689420390328431701524148295696334448986868570151875909199343920530235727360203189573828658920142767364983945622703466725388390448151616972094261316473863078047960327400058644724648522216849576976503103209522861891737412331240298130566313361006275203002300921361073306566860821752114694429469475034445090419755969967194287148825505662255758624909927149143790235544027269452212689347284345846888927201597217844142910375788748568897096970323418599563122611989773768414325599952184932642165733503203778183995441349029470992112556148779981109165296662702170081063674427914406835531353071782060034395683234797010770435607838758086892627486069438244371614322696732998456758304850675499890719282967254178398973472698034105113837016203744811326545649126735718640466085313365677648734942571595260852149253624115018924125304599736621744603816861449687439223263529335036020609085901283281269736853340917266646989223218481457942606093142919441152580612035585819401687972091463444031212731718408991767709232524769700916285468670809776784888940930065012173956946763570918697326211447579652488299208119083705048897267645366104415961251491758074618994452737406700063634498591097851771365222776070178050093631280630100022710101434603933435687140919527620425206445288249006530896879787364934895871633574245425833936344054486531770747056203368942643596527751770578747053389322649616185183666664519868536220568290361053484916317322720137594588747128821970484961928036105036702906167209338511905365919826202843656185947657173029771966367554293952857974833234339222178747542554778609607364007177944877343734615591046064698397941725064482894210016894026717742024914092930368027130575641047361692642551361591472168509374448874024834560148292661793093431185398795847458414487435620734685180533450445607824040637688023628106727924757819632675249916160785598550154524735519282859528425002616486559283399240265331247538947714467455619286412242380272504301934689781185860713936672600882677621130370813241583032259518639513236466025085462808548151417780415389959005160102710725990163889171754411393737373237175178808096832055226108201973176834617858840048610970071283352016497792747143909564174441146427362295867669994434629092379102973356902734493652452073176867588344293598697306667035915804177067823635836136779392546361694850568656819530821530746672579302301510242086330728283355429151667029646739946724445779607934636469776097330440660046137176386774268959360331426333133004073304012117514249024907065370455171731746733108528787731975988247405765837122397435529239674878333391319902028641675630375540989882790343150403662812313326719005270754059978629253423753395207024657982057896925222786789483878693009815607700832608937620642596908427274360375168502845518824416093491050358357187068481334799546964856141195784125298603084838921205615091478168065427084619646291438253007335048711620502195148056229298956087514635815176256358544859728932981770705018212917574693716259260845713597544916689703735431180648836078699282089025217982467568041936688659745236232213221930580961961331104976656782657004689885123353308804077315661932095244263503911381407295195308299798436475501861829229878046203373766941565428576443515192417647861917551457395527104194799594332915802737374471744325331369442883331186134035526400084201688405878510641372398225977684611329971203913264346466650525890253697015088492045794509683808778405680387983138516695187903148683428383526977937931342887512047982854184502866284893736013629788494867802458783342991387589777770528755938512855642330096020451599383513506572137032130519935543803360198018823508334056348830154935152531744133764822582111177579767963217432013140497496235523264268263817600045881052268013428239847098398517496453007134551735586128870892287183912414589964098899005566063485469366924565585880753326728020953261338780683214999507728083191396587925216970683647718608982764702578405857966859329596890638876762453883142143634017910940480200121537686054175806798380644983867357833519868869782132856493390243056189355805279402870130172195560836307108528038542753069730778562783858076522548264487944957067518301426236959420522408789165373732462516984824610137368782276894311503818408587659762673599369182870871458668851613433617522522573062309935163707105898985994406379636972024634057881933225504538963795246739097959831226290737217927949511427328486809609429049693325341362518408751433897422855702996803513646140655888335341908108839302526967910612685294887714329466148223727212123175318327263974018323334323656958497092206862171408830978827822689688652211834910574972282244151908289293666409862603242302923149613733586046258706810909468550728892626697691066001108075491334358633750967690886119059961689443848663361058720260180968246304502250685430753588503524217634626062909893227014790261510093656061337505929282992980200438488842103342487658671135133265081949108957607997239689486983272391189836890672299229582312557459319949476922016484250175413542927123464646572810204093665845727004268538250740750634490350647459346634080833879518447744147354360300170454376388075598981314159917472285961983560025348036217324711126503598898095340490030912463687473498967680355152064889450780450641305624866174097852449492107925172341713810219963007582304699722836569340021654969687828046651770963363153436620486437328504603205567417585093009504566814515396848745542026121098851459092660935521202443293698277215840609182037814427101745488608408570303424988116203139228605544034884621070611763852531954250917682332136118829484427301020663423057607561371926594916422925145339474359627437992191230862382534528910702484611990952587813864574743200654223748183866227247065297288371196875915240439942706248215164810085624944160317028189426773134768987012467119226363355123956842705474247367511996197181808916532610650201645915710063557951416413981791747317694717372106112533237770081966142561227361422609447002875643040473626010324418525973322503907055347798647206698647110222173008867789824319000971536667684793554289839592008830093644047676013968693472860133335669803170354298835381518181599020487129538535436192490578316798495648247139017108494582033527812482091644964355796527168738171627005854280427781023559693940252193354215535173241771777243652976789359043130666352612440834126672817799940131234211252677739328327982089035459397234669060145487057664441041580058283838747813439575962647982239659800181043678887880445064692166535868388380943993859903736209635703760899579099718071793687577953141392888874840448147343047008375894116041145138358493192125870745584278388046747357766649964234199115364479974572967824366058192307682506373190528629137290938171318851298509832808665828788388361397966980513885795930573785523733186862406594517955969459926574574375166807943735338314121265744788531157480169202079603916467229390901950099912376644737035132816680115241783089296837414812661870480453161696278294874900905715320055528654570733601610122703417905584169807066605705293175952118262208073187925889020652757281136614833225145326515446373398646548644673275700421777059927604362743155254081251668729837729500132431054692059555842965379264777732653031608288238821937907654583330804989409170025867247288353602906686145567559560131485192361513382749673426189320625536931012210679475002523542843370791077982357757180355932054735871742728237081950992800021651044621432735778910521461328671906259679835124001397067261961704269943273535051560668951451093441707891690188315350914152343104629193752580049918683454268672411919859352883332888857129270208845795012317106510373850385743304147798589292534233770973871885392028565130619813117058212052130599603275923909546840187642226577168605655699634702446865015250089046499239471928353561684339763845215677124573790756223005981401346573555703714167554792100085127858548310010271385794599339852735242375571101407616636649939394275189750433873291111642491279653749129834829428106368387930809288722094653044895474564032316083084430304146312898012882763653684291077212092223043704221050727272284192487387877506177439048638402941167151261614483753527316112452135612658689039577025175454225906165645357966855013199314945395264109898949934483165436183962018173292464614947177501520420168782059905756922141005446105767913278276235740022480472469841824010972634671044792082525407424276017929485349064776020484776009279360791051711812944208351092326421290116429080063028577111624274336603714072857739018528684527964025381243464553182996504432344451327532756441169678077988186297885577377278801668310407428834816252467436240221116459733857956569377541701209572057174786780888915353118664127841193752860674966089799322043643871480602681541437160289572760849460148422935779454313974156051462334209921150991640681611735127337141509788526261449157934548994334931675609454703517347027355280354325373950121944068796815910742919674812934751877518531971913728325945935861939391658440334564887661183988976628990639454420971612653904913461753083517652569814012819952812093087011002527032571964152733637539990467638738201402038151931877859499808949526673925886427431226851007169471136562079378354339138990487938289864122218007082978081438261449379846650938760486104906888504029647037410367699355283014943083923643685951333462713533906697908879944866824798447026616082056979595202177536720635507540910110095180746352187989108771276435627907625924078753967811814041869466095949639314794490348853105571160092666744184597659903025307199944785008331594148882748831595837977476778917043680889213772934053150754583785724826956015715911090599423299464532776431236688248670990317880096599804654484374157847152369945045945112377371416277744445189112974245504554292729023330326367952888893002562269511590123049233328603934299988550040844929882639260943384243913349870778103180069303586068434887348609124669118053794356963134303511975862211182223175976519158144047932761027094195519105202481273546347428673038638374275569389027721952370623726346757144911947213256202710509768903343153406528453080124973234687895390892453757920171052405910160741718286368764760268646393241135434097268328071223872836570021136117997045764570178739877796536920995330615796578139609810915692680955669129896171232984060884688510942268646824245836065939249032358059881224420730374801691172873358748068794196368543647704065985550871669215592372762346230845286846425991593134920154582207093702259367231710476859706991384497764055122075639721832547199965747173323980819983198652590668493929456796210584596456851654789426546446824022214466828582947572858093686895259573363289047351269585257614789911418240591335684373588297921955666892377697873167084117298173278677969512150022057715382664352420566497840470386230097538586275098619845660438655544294832495105681584381261983330024556810656500729986860018305440257503638195173425996993024921638172638178947887925259012248223123897861597623468743841525881565726678650141142926875369506904940630092473922379268669051414249072317095704407710339478895109568019076400870061367802011174367781287920126863816978281425090758522896461182365605657104223011369176483419618462116806748369811379426194205097135915563615702166445943259453346339954483384011188177125884577904650192621566704097638123550836025151868491577357289443187439265631563566369134045570995475210954852601643642858664476304216579813046606090324835651727163130347175938638718432458608480567609250217305258966152713581609548433339643721222387278652646883293436832673251145583728629661468468183115251466389241944094502202648049681677420714196254370907904713795252711885279586426383797340986394669386908243923248877019831376972261629323319431205453513436808313474197005857722057737971578250926297654261908457149411894866221701489930020807398526219092577502434136009611274240651369718881591727618784243861818402784771303910247414866757943739254687574479775363564162094918156850275329343526508108468172974570470324785379468582134315344307219926723624618490203162714621991622512879776579261605529102140972376796383036308205820653363320684517337686168961136506001937808794437996648462171042459610917671999411909421953705600453509349260534170609177746982873795500304207986620012924985263593220864971467732328357251984217171337119118697187283507598766801506489188354206619595723675711297870717714656120197103304321920071371483101387576718774260131730937815156307421288210181829778233532437107194298480377008561430059718374339387063132351357045410566137508832257367646330674679002860791954387430680467433161363634517614162500299329257129353675995803753737952933717051083892788045419545774477559459810092684056738627877392424009603175607692841171923804144031473213943874738180458763089369347299654883136861875013678415826684470950302915640625629404063412398856677216176294413186268478619997115788873833005922091034917357693867852804634291731202173037594228593512584940158775977366161172064685523722294842653042475065172330181680476289637431403616377570206278135721565207470884537277554421523257610194781832776374969415415544136202585665434884558959169034513652900709912741605097047025399613882350930130260217132691360771144440969119343871844536339920976279514531527641815446847706887336204939541753308457341150554834487810845416525368894814198045482038036422325425504672071826723153687063366108231016507198692095781361314459245543457212205867300832649342745891254540185295952389382282834517186292159502279174416401512112342558704561929911247205870915548850562476978913107201627183652102029140662638695072275907867394928609418465523620627401847313111283661428703342423100462297854703710704858684720401440902435591694282026845192942610700986695448874470114380717434157299765543213947820949736959269475626235059704842015078564818811815639078859975060213850770138902676428902295819472586097015723956814489610813751183388608587474116209118068949848383708535589409443991061865535532182835189938399148367685574735535697712272429968559846526521188741134228301698815065941488534527073248576962322385242701103139462726779539570566769478558504819681606772543187059280205102477052411886813954445727641392854970314736256285581721039623636348152989407856156424321044123419935059669874031521143800698108558320258771435389870037356725158199858043018065665135137015695986993102880193323422404559917641009670472527490816182937493003183483755801280114144410760147840965367243427856436846335113574778976672457920540851888728868145476507767121857766275206753039864116379136185064023411360180187104693641992513498561989148464412736100796268978455797990060923135977140412686346757419114545224302650322284636070687173337036515178011540714312250786262063453811807286844054050946867191338874121173637424908000193211434456303843944514760897565641836456528883501574158299553645353841022298701774623682551593807538027443568283612759488116721146822566725898640967982848774851204465235817420207371951582389259920206309231455032641931551495160420160330682599419277172110379084527491405119650392457389545735872431496869061322378944922940516801807177562378689585483060143154868589873492902487256147669967903092462911034758550064784304806641753929728892048673540443768332425073720150293163193204477738768066049334252935373451391148071910285179687260525565075754462762595188590446578738854926981687297344365681968239004253980915812970586065224569252689677771006350839879830481119137042151134819117168172867692539172924535630224622695638036061867960966424065747980123463159178063283296962528428148108309128946063016495140894491483028244857882169312596522956780345519480149708174923116824098373556708926898319298787996606188471369214278908513732395727774563099108194167002210043664517444343472308143629875117525993007078569909357051260945592034238231684428136106022829221019014724076342566250410700317603971629494179775721266611574918193520618070023984904411927773067698743914923414620540404393563737483250318513340909929224462261254720333149720216969987171104978883017049220075031038744688636816390342792290600188230035711199449615633350920452737842562221249363655038126788770968710811486303118979958499125965597538362293276166275571960925520305943360435064104849348929127526040175752988831414198020441322379492518753403347081613309161958190546955352202235429705737518488522609671084396077473743783831347936081733724002218322469514377093923370648671547851442124586326971326112780536965607630723332207673836896337140047157232639597045255923780202659468544228681402985682471947140956981716668567508437355190098603291048349645061922914093741213203763923617938149880514940931414330869094798713637478799372538296808361536676481106374933266119945289714240096741677454978023108139522175100928607718593778635836830642723378357968842514989022670080338354685113968673268987030770783535524274276852218691065952005107423563963077663744538460463178090453282016982400687773985849715361267032870017925365015553628766205451734797861682252593601567955673357485137393502515138297337806177195223076220688440893554215716382834521348047995501572071268892144495444506974569437768182800830482529366056146560057460422867413743752418250158918487495902613765679297781088266881816799016927767308704579255382294546629497625880377078627431155904619005024094799888150374233804769842781629157152984564504110211208123231650823457389165498644673799250569979600761347144088284353983936310734580999467017318080417602893326056048878457887614717799229924363003673072411063044824628959940078369331942491659696664416430667378201633103286632264127746758919681220503463271672493784537859771973746027732189377995410860755286143616675488286989726203116957334487166504275042093337700476854056301820700956164884151627046480245176601955011950073702965582457977945374312887449688216372886910652507928342950421601386094724670268863459448507296738681938091425527911887187876528029034695365636082662887333727549473967703143712560186927077606641571608913300348887951687827287149388257841851045322745573347882020475921535620451036371567601105154414498651981042643549653044267791449244197354177258592434304466454206911642227144111853316638834205876876847990390225486307269805540892411546332596598834691593819850443750381580526304471659921875302101502301451472434517554905211930311122193349906906205837853048021131553290178962272099950822376144949772291297524763436462186619675725214359574433360842567165773670829675427439694326021153102917331920812790974516775877569077534972933747513818022750262492317355802306680595528043023842009484043711284346684194468385157168040343573455466373933917107627366538982217128497568418005197629774783929084546133916111154911806794090206558925039645036461435028949662235181948132797742823380173259373461221648829898226652645666312471842967027791464302104466366639045334564975917900482420729531925695611781376250438272654307578676788217687226250857009401599878131324725089552759022285513538022833337824292046338097861212458169708490442200254054530879060535396131950623742068823309832895285112196630257867990922646229614761059074343572062001679094380654906606532419461237594463810643468255061113372076520605157881564702710048848828197548443626914085669506901058771020484272990267597828724686841668600934153329976105893932810098401417962197847184758864743879331027445301698320924583717304012317883331014907560943758289454802966546946327526074269105657661350503263809029877145230995674049764708749889389718662705693848257529433505352228424091829410602681786999697933286839356071824394192251505887031435113234876524811571439795544948859834675053264835745387946497984866682573166312125710561487235865121730720238247457763023016698305734720278685342948543226737074666508257977266547958469654577285826195182277728512630538533463273854640328625663731039044307448630039872545100437682179413723699805381731249645094802126765897577275286535075473427407911465811301952263493441608481526927766898020325546978405143733015233682843972083424570773148890350492062099189503512979306493497836652838817742553794819195740296533845231977172796467632587920852797200650918125633769820193759742259038330215336330019820735779143243691232974683638645568051952483273495444275612366360417541744022332558440662763724802890405597637483560349559894981580908980019852770966830437629589510710702990759804712958146828128615270669358341739842348377860004811883757724374199540698818661006021779080354325887566782327445444892757392956065437574697152575301690948146049732230013574971468742195305859506974565080788668648228936082364287209572126605817902080633078537251151164551300045167671225155616707155434072395105113324704469101251118267901632795106170809571355958144826852199637837001202162753289671654382773160829822480535752983547521175049416136592883071745656648330233234793651441116970493884979957578333685696058632040343541588567549674138231133092735026541062845565333159961976431630926430651987393041678511763625027630885962736978769740327514694034247860309110454349597184870409210517553949654251813841147991494843841732091514138936165637130140833085566288269624418333444226746669974137406177713826609181705597715190111308690668948565889126140262205017872150081582842997789837397708050888926887563413992111520298800902587948510720410702407560736397923755271593495899747696842343829526036969017439397006025023379946445167493501215996706559110047094267190574051834484116137514989688519461560903566604807916839086291072256778336627208862540912954880056346774645587828890813583715069712162975907155819868965379946439617353938174039074082847884145593155990674344408928305160772311596678418299080755241027673987609968204400444022785997900665238712628992081853649532765099777252722140311706064170272598830114177210986360051714188605123287659417834681748053745772291852420229218859747376231014302996162432714003095804634234731224719901048138870347532663739243533868911557599612718538917941555880638565449803681498932749753655287193356392267732926268507797954088702578509864089588283653454614906682439564593034928797717048269240888330908485293712395856518777857993009923439304757264884862330340878887234123320082376638723250667034789482594867492941656007042083167225518225663440431004342713237281055225330217412395008019827745313786653288712979461340254032454035217403948845404603271972806465543569397339923637761110459330677720873197009242796103074181967803802063437000157965297227455573806312403863501043450862389864177488565338123367187411348886779800328610691343951998496258778506115006456579371975718541609406488859521188522486984170358272903515199765714582524615453944216544718515260808921139219483790343617614083791797797326439395500331192486169143276682978044730629870241238111974746379861574183850214082385023316022850565434921010939536843145525952596291110083443825484354572936123768302270303080466330699459520746924365223385566329265811723424628380148998678018776066251252082757544245046017289929626514630806191413360819963452665084033142965349774008579711483270612172740092166406871331679878057622050065496387863040978339454560497763809746847094763485536522840062600867139883298031057817662083607374028648390815905790109285451640815001679876955378565896854407569154969710342256795094301425080499345457842892176612727128688667835029682446497369489935703956305920377065788190381691894513644152257302733928763486923087200717954537675571717602747264619558325575477613111321693404351676166677920288553271141383565100388285085021669610522831659637723317256660901112234610384501548744053859874748443845282173901397667590757561866432561212301079446198150789801171977700385432007593748459209093970389987613627289144146992792773437555908447674228498436686856231384795803550512681788597783364670542796298494855654759947876489409305065290238975792634903318549725089917259233602613544325892408229351887264094451948043788465705440459752004822149155856345496249081136662316930301932531783489536072985797661848363630361393036731633457351471685834117748912576383314460112516832059530976182661545130824718322371275491685813690710530945300310970637618434272273478334194006239966496809489226122770635456245481138007032960057777489975859245560864384443896505900980996063571868666387258723295741164303805009677532362702713608166803552402282251790820001857243600767834519262843826585222294028095399953173856361311900163946976313307031638371293440691611782649344125967803642780689945819284371422269158461022031287967643333773531869684636323014271583317594524176231949130904101735497525411754578585141954631316674642909531494512160723805508831427704132319717764384051246955314151002752985302601007156263078924845619710989326414146585949159016442765406982136264679830852944128210418787960621164699115806919891312900468592699297735955979492743292448346908661367288056870864893436535638666302556565962263672758886034739224286490091868519036437766312691068939391566729020753630714989780636330695743880553480174223182908223355721674869913620416652163750207493819573624942152343815309594064598185115903181207915590969040758308467846405434945406384468514077297079242864057851077727047647762749006832781501008069831150941366744478037001401920350407348835704528089684341308498290778247612950526321099157389389567179866587001670647749138742700592172305363703371657244995401640283359388193150237624044611570858467678186587688268173801959055398693990634258196792652311198938486623082103868689233667748676418466249638256271556886724989283979924542830797702782789225393812343039553066404701485098730205709388073937804297783806845644498858792920124909697473827179209240429708774833439516991790544092976710919853356919658970982016678964304123873702676593631742018589117007890090324211841976591164596578587113036576212336873094054922630161723146349015036065579217820706861643524541262382746776775275899617529631107081961946825115614583650547695811821798762189415082912060188987813582374935661949076565831800916366263300689503767545447496352289924766559016684903007109926818625916975464223580317550668007887024349775296744310536446746813815314354240212930262315522534083289514543426067593650561588646418196918632977107242019003588792877274797645069058635193361251653732118851752629781771712486343902599297375676767086245323383958511450530138751670056114703335259262730855658092479625325357250088484312124009006437955630946539867004169574290454987044592409978920789210088031609403525124427416698626862807859468415268029453577716869009857302360793643984974036554482167487071073801493515422582077393980246587329776262610640262217769925081024281716314275511434679561191960467232252847713664839591443562246912606612336323727081726259133561911326215363252921772415525998787310379639818715780858941301090052893743186827230691921926975131327382466747145770856932818354360745974107967314585071883847095184375379389137335744318150958946184009197788211337136611239926414026872405024202704798768905268025748800498524713433499440889712072580729967003125691857583381068418851235185995258794519213312911372838865548190962122362311095866197564970661082015531643970245748792781402057672932397177994768129578426247493930579356705320081605315981016464738619246155029306036064643817841155226754899403886988519543477659486386748698831355114341346027883998401538506237078249074155501131077685946995425934978989900044079624938610103589417257092172985999240293410910377931452757786630876510696566149477029488316920407463806080637694291862593291586138956619349894808057989141826594724009220363492226218483977443110195429672369689235917747764167070402496236195559588881433301443962045652899015909027005779753870890338480007647737148413874919431303200499250628405291223663876547569597461190369334353789854162293657067855239164032909784980584091213655326279945283827436984714860027318450961815759815003210590480499519149552864990867308937262527184104781696983083497184084876290809220897715359072991976744328255216784165955026996537597198271339742711911545920399866123012199819209254504779451306066261471792386609758225493514423431946907421271345006055805063679388854852504367047885057727317689629691779247103789633617383452092758041574012163311087783934337693280157364923601416125342834960403757819782937170759591364678043451722279376908408371072192117309350593314097785732266108265194021106084300759963499879346154568749912697880330323623138786417327061007365058747621646970158007341839313123802276770325723497084162927872280252257044594334912280710456027615635156589699156763889523945201752952640728439701084981763867661197685020932490341864891002024514789606869537553717479972459087520797751844148744939709825854111697816947985074648235220815735868427292821709735987395073233350265601303601793827626127057745043598522344126657295114898581423346102604915790682042646072878007037126057460561581334846596509962066691027324604183651186096383638929029581392187618247068765725158245215249925958320453826181025386261605490816998173141682135398691844644310931698387129935727842587471132225944728687428088813721801805294527684695367161952492795084541352156700143780720340355336722663793434063072927873269454797296583190020981970411675391128236950752435942103494656812103125350604685801195412290754059466675251141728388606192933894963963234711834729821607887279598072351767540044876046613860233607912161545970482968006546870838952630120302655636270727323162486704880003017511691974943416080049277648922710134132129956768376770055673112856181004184914658965845351984413057328531673925243151078149602417460531435819235871234983738024931478378244247797298617636117380229847212797970391960776817464060090287084975933992922002593848872132422897731661250530181496745044470086536949769785427170144546414157908081960838480850725252475675808120266386537041653984825633419139817090680110859141139534902569792123968898317249683539191373178738002486613374044202772115820861318653123391254140816604669090480356757618757225000110642040787234055004712528068833639345633038927181292257499762932248072933498679921577059779241555842645439646307301672697346257301518343204761784627599755971069496043357071929225327903947037474738979654980108216635567146409310142511282604870586591852675558399213350040271167457396967317176408306420871086248372676401576152680683725833755186240001089985749150658374608907042131575005838014412934001058054736289943181432633099662164583459565650041991844064125359829426214732255703384196488445395815334259313278632222315693845586561144387112634391853489541437455500486983821083621668840656487817668647845758149671280255801816850335852867297240378231482919612483025536875980086611232089276106627300320411823925150662079005380435508427625222695571303324290964116061361003091571023030990480784740250762033456026274599734951153390776116493640234684612861430771760677006686152745133056983461054222101700299214492038110719218396576575292245522576128591127433735788205059731424718629342178362332610121479762223558731783249547873088448457612963720943744796841733376875975796680206606489443410497648153458309984645464873392602646681895820330789823880733272261446736033973296386362290286496389866067308702101308228991611003758574426274610718085959617638386344671663300537627475338659080298022105733206923910212470877670956544524152632846998783138576878807148861519242117147939261534563622703713185227826517464434764162736324904877617862819925924286142073220546518558602067302337026645718223254174622462328583980817554199092861657697855585735985769558027916763537826902754731440369640403123983826162303636973625554284156298467088444196289040059479618610041460290845281856848923717253361817581133120938183091081428871114352366411345731271022578911120228906453636069841296058853430956728285065359724286783490327712585843390805267009529897689842686904710438224918345071406932546158128027048699767452829314324159678298624482675985760570875449572563435245318835444064829674945458242480598180449192359867438589350669193108908784254603318850948175324284407358057495754413758710479713274585238562028841700132303589137790664903558922258798213460382174626556835793211854269070955756345905086408590766942637262693011354976551182393185435492076178570835792641842111263737121583714009030694733186245573188069728461437904200551219080310246375345899868149918097780039145988011167977678709411853796154642906644345809631604730019473415604315006258572780406270466218935505866174639967778702775183901932821441427830892532033472277578230341209759089243413230176433673871275180608387670761568284453448128406905320126307738316596869507603034883302574112059346010527297802450104712457629337394873456970145897286350372213947725307819890889702592041845706535325376190939446715369324930660954860933017128233166064977289129376923268279568573422442508307759916066431892711407381663917202712364335469154722739678298466084865339001897661613688109830712943925386741417746744803439612248614380264958696760992439647515368509883092293657490685230110086607824804010926982890068702908127923872363834684657380487925975824941794385965415332126191922855960718060418386227392788061073480273652670807953460475442560111643226613957264260752817281434770969650903657072803998955929550708606735846974627349115115489280456577454272128334329911147407973876580816420372276284797791564302514459639312749579505558424336484489944732220806674144529870541833599643525400069432546677660654364707295584524618542212209899470635786300030790797238857960151274863790100796618028012347584941125723266387939359314992498028313290514431735452614477477450733221987808995229316602227726284500618259725386057601029669107422820103463386430979299073197624382035582971477752823519039264917199160295379020197967021374094531139730700511606028164568370227540306429632050790774219867333794449074073272348344790080763551919837568615108740136157640591791673131231798114186913769184128325379254907876676613724399595431526317879395499750691119975590130660691908747103165648775577624046905067420607556733203692057844907727840509579645807674204188744646050451092627545456068187186093172386181882203574504966525654530425576174585600432796139217214819724713452329021441609436148631598170412627822770075179976628735085399929399078354277723241521058570380701728140450262773832034957801068009245565924262454613113264229602305230671243038280310447438382983279338219422486066422209956761303370057901989651729506891902497110962004133517509338766169392261729046236746674295072080384541864301984108508870204030123579383261849485405440298592883244935491617934947575700474859853759853177736571769288490588344747808367203217922751979846883754088008704256988955088067391875267316145700083303834561736078560387124777438364607354811750598450464657943175355928169987845389947366612618635775654716854627731392435417450452908577972604225253074939232727867629101431470740789483055679419081035404589628569950324828902158474379940466878531925668335964707363370311827130737433926598920389699275546239091791247339186544535406914088712428489438125761121453187063807120825197674504743913536392458227288322819611594222125985305841163748159424273096063614015166290757093112318952186641641560275943897548132567358391149164869265176328953184536523909476632326621853684687086743733347553868557495621341510437348786560144785106544059979836137989288556466834557955935810921839729725903306056012828931702939139701003116035093185708863099107137418720210081191251642504241248996727690085964765342749624214997710745079491632466493196355422340992633621312039584862103945030447391168091409496508617494278140409398033271693916748599439296135974826066191298883546087154574241467857050818829530667319288129115666737775905037347407033749202706049375092686743280562372283706497688134214659018276611402216867611210111751909306524143475236128160270965382806705907613073685114446529911887805550333959026805619988963745219286044077111092805164130866858902065121890973051512714030956207334543298503625382106065910151657070161064501558146298068951416163398153071844758137185874741511758559729068203251892723000189243046985483739018097828602781163279732151208996969483098656102340937924802873734991464340792088969152297379756038835035899226046117373994564369815178371096461488524123023865105068195914012866479226260404320301267748467732722340840375668057975780401077669706621278555718924500009377468467449826400460278745486841197811042657118075148270207329121619189825277178060934692600487243544524779805001834770341991829220260182391716021074287913059265748849546204049019498212934609986284901530181323314032384916636652922028008501035305430908148572187385297841082961947743407765172818796822837299002069369649626490693958167488506827446587132576149874745274851912560502027977043335200554646569891134012962153194960541671513934022185635721164364950167874617080139982957452190100528467957118935936748213852933445821734170858567449203556831269983763712061876362620036327436447268484900027247063464565448873202912758659462388608183003367048512561261781102949315143197413307672351926479007587730454271188766231913840609516005496801745369193003500493022337184228131688119552927118303123360286227372439514783990088225446939475321476773676039390900532997111449220402970414348435572406757045410981061816514703756644189442891411973118233338971433882237550803681849585076660166612404023378154324643291548797521678158756761295978560186873360087402518053030106642670714533691984674401310646546672413993945590240857990241263223068058495560607377968017656301056616947116411947198717918519597869182666679449772945319047236725688900861296303226666163554621274689519458576625536310627090882928812345876843362945749674777970532433098998812670271677130757323878908055329645395096274425938757512217671516690804090784661649809816858870358426711548817424702821862659387232182744634384197018732794071500768911955376865910013697881444039273940101094750394505299004133357634408245900607287986730649665909600995208593200861042423548004318051531034817585604806072579936891055305240486007822676858642723380035404064714946322865243012920042848907019596188724889805247191566455162485332758691409022164677767850171040454451602108389140973008667914667014890196106271572316610655738080672863925698756394143119994173146722942236367117885475261068349039506470603514842447453457130986380865583622198173369517246337072279186471808175760247891569619241300080750682081569944849706140374306938963644933578907264444411770802245299715601806510432793880982503549124440941995761785605156282874275887377614964677163026056350112774699787003611392925000814801008021364157857975427481580477721445195750288599826032646556874090196313713032484246332986569645985857798912296140602412504806694199085312498326516356113586382522514252023199498640265544607710217613941334317473522626105702933045101421067476113203740524779473358745588657437328006608416564847281432498624904802959573264112886031434436982115252122062868404078467636829092776572315286362704017042617684162065086171069395086492842980653206381672037283560585760409516276561967736415771524706543582396098207891161359723590008527238042757061413537804491531016393450472691402612683838047832191898534629250998978662115132573546480135025186463032798434190403962894911110217942172332329740314762625861301882412406146657519492396361069678210243522332642350936697543616148810190819815252939762235256843951046610940277468400563166406883962574325351577848150535908668163778351209675504397093616995401533778309874236757831730195285593546414213934332366575476348034724823978761421442983466898526077909029637270477021792652882407352073913505717999583705383449033358177689083890772202568056215047308634811051608410935222505059601927045523057454339324549217688115679970399000753034704507769689004171666356726485538261146948569552328890610690322362269617279672043746387985967136919495813768489099314376145668621920141115929428381341323700789156336420076232281926013816991995703086888792263581735280090853495018374344465993866509525518905596731080665064028302265651179813352099806196139610854186670782604564890278648332033446298356935684660964782891977998495312968411758799749502770608910649973502070725598277506743006307903468940561078421285855713494291945417437724121931733223464034740622101905649307247620912931018106934584686114741508264952536947319049029247712230964637738245909766795481161267652508625639886347952686845774201949825241150395372514128958567717872293914321221103377897550860608557019296774597938192586753640231908506445024995633708883805354038453848372759977023297395496300493713646724364836027289991731323852205298254249456188579762364295467005695099584566165900203737998907968518540893901404513556556582855987421962437740980351709265285529016171491299253424394152591658402900028809772485635610434191681358087248138115746912116348373902884918372717835061829088643828301227820731031700635361487874628952393189589370904998572929501708927392469789534460622799512871126272641256998959257252761799715882089058369266947907021469756766559895787822568085884577575457942045731870704134573416330513877003649874323052255881011166141625837848935010421244812018878399513580770105631390912848081430335043163030581124830906356681562898474625628442916267254260889389085917036089941297593260478298831929763961608198135538151306440109423028074449133121271145316975294481228613916750889341234013534784336667528086834396339057352881443713804276648769447301414598363225602991519970936509744304552721869295186364225683453425911411309645506053758272470378106403798185011721816261025468039248888319929537248178040163737335508406217136994413841465576342734585995741566119416732311654825444001796546413514946373167679506276737551532267502555360996350247264481506392985115977277805760172963460925036041303864436497205569491111710465708488386590482872004757194109149772971547983570039507321164946680222309780335352369919552383683944748805469894514416872968603737003881590235447474118762401451405767613064051782865787309711063063101589933904196140257487821540127688146313853559200491138916399104736568028474016363046685370324890442880872777780659019830941653027031309877545246452305293545603866364352061978353364518845329239674599101173535391070486751979584108672753823087611725767483111375155272619598383325259141988130857123581761566865601578211045234798381583500129477320769718460624904931074376088468207543911532823110919346545725556894019169023441782076433975206874151070758538511209831729352871583828103627884138799749721308336359675447974714813263001429413745350455499558509722757779001553096432028709409809344674917476660161889352968816008221632510272952472537965668624697563840953834551444726852321634244378139749542902624377611313776804271887824596823147782314125943224878597953551513804284190695138046183438342201408756348141430876704927343197860028851226653619491469717676813585836818043966038436112980311795675712568112118790553642751405683083834748154340961255995471290762618921286161113578545502419800210573745027098717413205377282191630503094743221141823758110545279554444126014998566793352193994565599265226338189818618531606216712053275378483383233914861661729526611112757610077883989761595952190204357977171955218192790719861288821546548228042158976298115991985986690207214019326608582531862700570309863383182563485633581973234826111877980254966144351161787976461022514205109455686159521053142235066045844812660736965602911676885423497109807922088404936239118398774134768570010694268225699739438783766915320949621948905429028296871144353000825172162144417546252660153446135781480182699004886467197919068036293385076519344692011144036357758108605182879247966159368828192591036626716525308473626205740009429228534052817910933783434510588757455643950033968150958612063604129356136889637206261346191718279968319387152474531949644211053842314701333467869254318065852796876312440220297207903676101294212123142276501688283871553896594485553481401306522478133170314265719767884083508468756818817640236847414138165672510864976023136639632481732217733397235436097029594377551114795946821871580001173536908730302257844743206920511266679405487500487874068745340855533634124477017059437436320344705650575892573001594613364272897201622527775702960286775980405877815439557687583671359053523681003115299763419093822862095282347325152799300542751467969461207704443154559410750306267833401942733541989309284329855518154326375411824552555619680586739674047404937398436460868021661378205257432680669283896303701602079612087235751795924544289407942559046120677471946104912513058788223409460253796790548063279894444723272041054927775491156941242718314842739036038155256376158305569447849027542162793134877185727180910498259848512928638832994669392946220259498152155610333245340276669066519916201549276171566123035624335600295195615983790097478991977085181943644156133733105985470658173436080403312966685903935599487304390453494874080576909062091951770850861135333212422391913344044321212346891951023012226922513465731732080635259325069735454696761842829679127615350184438865210547522978267068479225989689725638006222066785655504791172950953275165660785111272259913296636286467129490358865142243634846954324770273936107057208912120538478114143429387817451123124138140757865390918377881218631428746358403751998638199257362438455932207325830146364465192230593635440285685643320046749225334596480226429899858399065056806168250976319743158788251995534844746357392329694216437350533672696848068226860811354815507788678352787967388360945517005171699910777239279585112659825105920064338153411058968318775253266786878907471716682023620890575887897138763492394800372302759229223013934674975014026775223003568764341313426578771925285921644128525416851628948703908121089161737158923795389268638486382121822902791317389268840748481779828015667042844899989649526436487029705188667140414133112536075375135417354848129338553105922697617819964946246849492655826998889420388935446439914942245971147881487424798011260709399511867003354720524888588904631530195921463345993263386606506962171994182230938896259883984479909414913502233413058805485793727639230413221430540284336847564680836514008824437950448435781355550308054457013422597295332911066399278241672950702673861196164875545975483048296825267084493795606685727925371297316270694108245165996525150281160024204857259473725788404789870950913495646840263086591427752306794691276316393284367796418517440396964300356935031588137743527160630377428920072155857178008020728961951016461991506676260296394285854749783029968461893560842899103092578300053103730657941392582195425031139310250216730781748216281305899421931615324619029731703407327276005507663318588823399965439039450110577888553753573371491303764993293122881119487450203563172801044598547231887705738630715488823381353538071730336135495324047143919289834549555656815387811756357178097677051105447820254780230855831449120945548690366795586994324996028854353771154365842295609147919913973380960726471609771885336932166630012190147503762085509496578612395369034790905384594316142717686743921733001109989543535607218131804148708683621851111127514750016620284422164211444603224494410534720810513790595119737405231621133871305370446203364966128919722808979027467946458707753139101692333800386863495904618372397997643467709910508008805628119740862763404950664194362804483853714840880038217165946088881283728250223875859803409154763881732319818254346032257472815881895942208745797675694487510421497757722098500557522726198327034071589913193930390437210575922591943277749437992616731135062114440127580105975229883362033260019491741774192064498720018807703965002081894766851191116368873765246958210491288558220813774741850822165048383198625104707713295529011436766831378672877905137020961069314304263458715995466065179048065739344385242017458978859063791067018802059729837357564337511757655117113702833329480119402846338547815222055459205966319329600282340122254007264737128893610878981696512596721840209469528716476655350798452375774730667283058685187526396430337504525718361117838767056802655327021397433340733136399589116207610030039254464886640736482133114979820641845920096641266033937221849497706791736985125955682256887136142072677005489948960888462033519236846718520715263070524326209214552896336189402755746303744038148165620851976957409336850395950776904204661171138068056021575356915802076774020803063306026956576175163145805201892410677746559285473087369829488099294356706729654282419307879584084162636791100959483599595458959566027488586710180373763650755649942360548708988731677041620396626879428709617290995098467785756352402491840005722206080040716934062253968244143146446167348667630749389236764466998989007883294889152173256316443976386039834529922982518629799330698208527971563322629723873307346125965576949291069145906733150507572521616405053564693007409810593246566305119432599079701511449773971635537471127500102891951704823965711144936531051406290050570527667511944535906640053074072164694873068101514285886040066186384695874507636281144916778237280775589403760883287092059001549841952788503033796182460787510022126641219858578218408733868225659947740475040032355962563505505285291277697541811229333589912308866916713870429246858670040463548850610897183702736837043275886630264428110036255857464219266126056917156294323843205519783926023152064087931914579460256200670397440859162750023047334165580554801425650177363733076305201004788298152877387679408131138411895649603950037530253442620824019390885532735960124038026450000234357230232830334862659483583271405696344623727642055471570738223788036014273224526132749076579664766695765781011756898556318886168012722967404328229440095576118549311569766530580491425206097204985745841277842254474386495001591739264267731746584560682333560848582219754719149416921099914201886449568858536967237426037426020187128297628748709744707365809070110023820990306695160262067524341594269032783138046153223836360252480570408211405696732678285100844430292669003708253247797045456050217258169691118323884361206250169273419968568477010173537890238352747313501674891975818929423625362324655358671029797339847883807536236541101600665269371632774423115472048780807563273553268102048277959966427950678736270565824397801687091220069531768739103390114045564990950938416000149525603982797698495579116367446331323018518875687434102919823459439644334648044772628475036529373146560006523960321667276734964386065153604973363259628742331705125559060969996681562852548969118415609041445753806536878358435850149533231334408359855579544697651617142902823435604322003553475019025862604999772990203267180838664942872804350611073760628536137526443493713295782458387709548078636332098573028406747405600604469780124036367261294964865486507555380570036140219348891304149924084919390374773831419140716437516077372853343718539270802658039748402830881609263661947253346303043662413286357489440312033589669591349324901451160230800231095389985087306030045205230118591296672656014508840017903960874473494166940619775087007167018234297042215973210640830484496008732790092106433051309514178453333287637763379470115118366249646176562844705907070119024312322917060303896841723487072286275982769234075254524380460113635453054538298540983648540416246326084069731971110440290361206794835730886987815694452349758873484032912459318496234834570065130844386829098137920175393331896533137586769650576878226052593724441153679749084285178973955871417033957641856587465970766750803679341525976493309481538110534661635176182548367975532995162119295438450114204369948655161707826023610648918115635004584076648849955183462301176553103458527618591245328984241747998387252876416836856180099407370926877563965925663999616473944812814601659641690988062687633915798875854215712367166422742666069590829758329709810773665349817132816355062644103131343308462581246423069760403757748360683414005454046873495928735413119442108317294987099031953716117048946967185140058664914492124852208047776934220988228700824470966052452028722759710302441566729714422720709543959417363590264752042382874737931728590310981364698481454441569518413548345060340083547465665330188281966139427756777455982886756906074936757279523986818302130761548220280511612374231553987527065973085953491447545646220145959225154009310536531970199194385485262030468555954007908795684285692234138108266419183266300727270531562785606764035969999089990084696732416372972986124815027884757295101679841754940694613317949435183886634109808501780354384469439231101453254081392162195838949103673093214083458899621403939854618898865583658046977799960741647221703886505632676466458218666717358235821887365408522290663083417783868085719099777984850954843897861474537578969711732241661276845129576091424343702905457464344612796483130161804761040128799427280137405824706968061739823028392167484767387361610488120259944003908189053436973587754893638050122697746286295194906521899782010335725133071443386180466749888894984714666950370386247339530339395518168626683557273541980573522307176553905206722139313354065380939181798501312589584584315049565721887633200755698079794638915271785052760291436146635188835391752763559042291751537511353968888700793242835121036898414169659472823732333699542656892568017807639183222559302358780971483423126518791884037063232691288585000118711623467507472628414725151549045456917556038751106226196698919041526561491045075066959400839995797030781885301565665067533679361758968254483179007644943629273928710887211343984174299853635512491141322099689125921631331303971539417397792637403859408704145801649019888512728016898474514821999358629557777559306275255592839931338933043470622361213384197616280684641419877320630236290800260507121713048402955209797897128205224430429003980771269871666755184913972417892486579032153290012917711376168062825059710385055501390056356473025265284085150711994207572559527200826907120272840991784403506329072284066636452966075620687238576128776279654938912189539804116515344092604892795217589470800374854308687111713705960659056427648620665304849348588352293246339863733266457921983788868452097960626010163448836013735360521381315321929791927045325977461726875185201840257217634162864963492473456781270442568116793517406878279448300854307328098689676218138453484962300963802769617007056412195476095145590133159172891267610783445215748205282091515221612537882548294915772471292018964101437775151296719718748996130464639475907921319018371533939871901778313703319804406477229238801563040073380464115320766945779655277573252536529465459696703644089680794699998749270256651754782234305039890269547369358341235924510303315268490007180757863466431397645435857300087251243143483083749974717503318101581666566247679965510345941372182530244377789964502802557300831124751166606981640185691103913386820062339796163880190868676186813121727289623421312100245046946298757202765375060886582863127472259935351687305494773421442917083301633754739056967816034996045158473067614833017821617081711054665090342511338864650474167425151921258259070185993972472421175978489095194186868999495969815725901575076998345428848689740288326915743176441307211474097935369471055021466223781915926558934620180259698657838383089875541085603778177071535496854657726334076220111234384572272503365949733250108253399045415920132206731989160847679758373889383924338810695576607945572079729477364542021668801493439669837981896494586276607993573637305431990010619996323665467739197699920179893721149250047917003716683233281865653914551491730276123267998910840301933056123627231152620231969100825073401580269845378266159668250481684426177464074908807342052464852948719382763142886114150401558305476487342020951784776722265286054984769856341684084131534043179847998174525768934297839442928465353379519170430542409452310338777077967409420793342739171569578062696538991599203483996294862858927212391962870347694620017676541068418708048883721494983087850599613941985929467152162141935494745865518692620069156453183125931378510270956269287421728160953176935184765372348791251692346003557938122675268872560555916411173591047672312466908276922112530792481256027183211815634689416508893103011775648970627114181183739005015469424289689931266312193226766742331736130436137576939688440289750563165118026646805113805655623367129144735518838968441079868148881446125251433652798736095953964430259441193046330314043205282189513505658784884237854792772034335098160731465875715795574505339688567040522161691287952467281715347859614804204702889883828160919858718902830641960182841768623249888055167129780404863905300776171565137838604034278142266574993216066379596743859707529841578617756298196329743000188871590559065749005124776892332768431952406640440427471764002041099298527479735324010659037171905251085915775887945011457327356540116549833992624164936307505767314094929045304636474452704035129632857897256604013764657953251904391612802988119971666900843483528372878018943975666479532823392800184699286426736528522961816970811895988707042121676510932494120568705062285288262073229477320784970958085879016834794374715721929691632148162821690339161088301979470869632775529028925043891278039307863799057829451479510929485713326826570751505844618661182015767938291685491456556147244037285118051592794580394044964415981315837750286038895803929713729339327575502131789757280408802285170979100614333547400499529214060738796640542579661645423409524327738404418349195501917302592536098751455553362099319808185438322172439118283431460356401917822751174527588953669880639561771062455816499278910159325599995093299922594496259787840783115862348193892160966877152395010426750251408569666182548191775079951267388733487461191758306187940711992668941623326140997896572334894893446149147280341203942122844206652680967522737187293842084831203051415132832205051828977675378004060611099501682712062787105899430164859075940781507787077536476408619433098999815061321618320172525494131601944599821274609030643345652569676803383979603567888515898876062381117124851032095474789025760023354732639758450912801344704239999304718048835805238559235314654532771166528730734720006161848004966345727725756968469843259789063633460131382758071158555471250883718496680262807905596893983800000693220872112382840087532684082472809743539047142829738205172915878030950908779314008801304536742391568020746115221044926735794530954595594420908649951536017548391949029880378548062292211796223864002946107527820410478761131730916477736206712154413709216551470617914696923099086750354706631140961257665313141409993086529918068012646880442044608515016516216097450454508707184881893589455965422819457915616829787250301881256847334816152390948465547949362057969680047951329061919785420420702101167209697392106782856669838888662580148285412755536107808796412348175269486004016192414928966953900860769080369238633662925341234300744951295329086447428736921832855408548045183230288690239598503555406187888743521501813656540342719778850750013225323605988442796693695241192485621438707373980139809547486742564184715544269478628506921067248643461000292729281356250263992088974044767596604067489436002403170605362246257920143091202625166813670601251129771468098887591241326640659394594561305389031387881914547148349108865433933301348099929851392005339063764200063663957428206793797176499777310094911856055442051939604694761860964358786122985777749641909329448278322175688413114288865562858851923802514085838053790130419425793576256433576427168772382472553720285047596917700633970848581215901589994964878312280642672067323678743952077935443054550259234512956859109507691090480894091425588157893985981896856356546263497809649563581892114805935296007855181637755198129396533276713528209217611132573947530509639146429299960748453164413071553814466432948442766633514646106869148896218601096299220465084601882087912027339135469070341496523054958625761977957273012090416561848814890952246023186203934897831659626352289352927403086595177513424454698795598169874678960735983382877103208656816925716032081093925212079000107219221571339675149898336069351805997188719377232703856028852937048402762723844859909778008135560905148075267226703225071146288925232358647555044577712318046524335822230204088812638822095883947495356145003800630578518756395526658724142411520090288788460280582200112279743619671464664331455458458249154084822925807203535685758356264868831522042853294004978540907858615355152111999310731108139977888370497807341393378408857288247572998126851465343630046617222239491623752323807187577664299052870438649764492021679319328358924301709987481645204819195270738931022148001784201989375626748563811598504106597634270210254439861275586975208814784259790176140623069474556786147433907891589804498107887678121267389400046356751057025960309146795233191807999408625877529495016416224536205505175593437683356826085028676821537868428226185642613369953561330413766370947028594268589327157042477057357017576315616717836211812321411945682492518346779609047733980251871979817605190694868161497750968969961943413793062238052737588561924654194367612726165642893238120958762257016347518893527794345053355139319106840126705094102900426652348068844140891658055922817648454229087623692361643671504636814335164713685037677958542187563898863466891068828275508227461112660378620990869195870371661784444024496239159384643329371156946962991784245210480843508927626811791158349763148548356116218670015687290645486406552799149317747316552006284389285114257905202932776228662942777434645338864817610135812814816907279940298279095248586931102990058243534139833369646830680990525166062079607579016889826346384929600622769005559686688760234234265381764723302066985703935977478680734292803011451040542327897227695393229730620621856982275973108439587286093936072663539183722912080448930963193710196475086718366749036950090568682232240131287952660931772762264109125833632052182426208921727819214180926713871489718561865257323023372423559266627469916000336494847737172625152143655168500397453834722874391952907791520372673196714164275048967993789829090588219192610645589586986690955958277880363575710774101167188396595644657414597335031364487725312234034097491155087219577242588567889830328193175563039948818630546102234975085411046735476980686430414849350232696117395014591618379500189259318484478517030748351750590504596151305419272575517713926203639691338693909648744350028246375670953397856071828287941752170577194920960474247088413910371964178394501668331113167667468895385425117941487708679785846535028160942724403774150626329397367304492205544739629812645471206620087352327463815198639714107135918750931926821862566430738004323207080536743645220813108202110446605238770102574745145101051775732108694911498465213717015517436153097448163655792315383665553119751139910835785549056997252642007536281978938850374908128435310669557610974311248414600780732619193245255349874012962741503766867581561180397669042677121954173099426125392982505646945670756764065752552018256489775592256760743412529097865002793074198981871775515672098250561598865757676649204539315505122822983414283312669164814386072201311770525787191151273170395654971917921127645604636730434809831729351654730674723920787558704666192368042798487234389629506000129233277074790005744406997225620920582340979845054857195856010823537662527125820471588533849078046723741726366247140603607592090928745575740548921770538154175717711655398713702889578361950662688773293787917584257514772312840953561914434366138105557821688114810068724129937166830726162908630300657421248635925894665666492052225675992864599406276517685197480595355259372274871977820571953666146474134939399579249688698491317638918100016088044848274763502162040271555773566231130395387533114098990338274057805788185986506482985531581459322420370908109756184680082416152194105733147427712750334909490231802820869137905300440552764640423241224081227270531750651869540407447455627466344572043243397585140856811367306528966982345545261777609120145951380973006851832946249727188038673295570904757860516991847486266780125049802454226159996073255839795451041428106832956260820638403633501653282112462836314128817988693293642165018708956098549198108942188938304232963212170649570589934223972635691024144542612011282269594386693993951347220100461111006883810743769212435954004047468147238791972362271058425900498547475478241932875114650496970775990296964048605297800300686829818850927456891665178195206432565587000116982372064862221030191719252069098517421208388154136569514463096798663899647816400795617394348711627912275130338411867180304756734359693046712613184105747653697575870202999430851868840288316848962444898579892029297857681214400037579613207039376831961398930209830886864155297379717645810495643716628761959159705774597255028696635181909715794984940559283912019706207937024721166475157988258912910964521508028848093415619646952255328494037059508255830032336488823099162633993849247940763137413005977314508047749488846090570982798189051438842817486638461713313844115895901475987110176971944224115485219848116945776846193701517030348118328545108379877722109375414088397786782876182245714260435552001455087571385781372981631173346712228389110805919715214915873370205346658939731737176716247804306057290973628272034185669454612543999930933861570073542104654766260450773148152493430723112781451005129927898787781372409603408345653291339616286631381888025291030913133616566471907255580934888645175775301019498094487532583513191410183398690891210759014609952311076798124167090802885169821135515496777005455540600912581048990870771103498304861178599065954110052808061390170041834379277604031800114497144337049220257049942342352129187709825752315831615092081120187086771564129003591320961386015973720674422903449321356387509973341133728383574651445136923220381423488687038833350190678363416575395867670880438110852201714042424930925360432468179379640482207240746813047870664757404262429071722639959158842370597908282835086634777877403834962362938005816188506133481900052964900028360190241626701346711913069965694498632535073845066023687711186430007499917021189513861860959088092710426102481380357472374680697985071169483476899904801249337670807442579425493854688295342317317053436941915764311459995459620074242241684583424328001630490002362188510711886389081480649359696161046570236371329329367448878190839291685827093076612145936555244424864782035360202489484740310850593600023572441882238245359795462261501943552428554186862244357632091414201235517411174988842292529691873370674200785758601886178945440110663081695857265225293878716852811584908514530361638062688467704434876533992749265284851778797261517066938517376344524735590226651235245167527466285160427661174910846927519370281553129820041293637492103294061566067751833178739708999600744185801114772404956719416598871007665897060639282945031776949914426743724832746653124712084267689144586330739994875053957190405427264750088884013526905089215840964930638701284109806243212933803995099881978319875472224915099335065783211673414852209905212202746686299484094967838145099231880762089174673349202781364751587495226251448532561934270150664158034311530165605482053655522070932218798629016673738928072569398590889659873458787053722027327018447467319962292408794346983808567876100771654417519378144027511774431624562150040355190085780158668296282325343243894952614289479106400548351833704392506780790131673917090405537357065588160203283481973708231057720927041950034572424527859540646705001018222161360175337905677435922813498531272787224926077491503899034639541907370568641935106226250986844802433772533643810473701791455505020346405693072980319979057425996298988102003342093140908263635516105293939349060045710161641245068064262496978348378611546695095589461124154514812746972461048108826353712302623217488427400344590318594908139626368669049717911440303618547034250344732186244416977643775901575881533316048984152908902782075271666643880432814143654715791558672724541064094357632205908871153064875378808722163202782272460602108149774249110761841261416778806722179661126164493156376962384507731086239331676117010743706192067290338461490870586180708976722271818666161427211162007677648198990935524340222920080630495508216117874459760494246204078172954263426920490568876996187435477982388619692713222789794081101284325773152070393163811213060709007611344140538807762748752997718676423024714485956224870589918890446663502420496113742624791950000574495881360071259581281698893612024849643074414486747884457803418928035825520485000572758989995956396481630433876935797094304644342988217736257857588379763708982706125581828174657474556159099322793513126458491564894935039022514826064612782953110179699339633045996940734948733393080343876969308949487702984434218377247560890902475787200120715603228820643025306359825158847285904643864465023917436467703380068542463755302661546722296790543532390371460644801872926505817186233631803493437140162861864379272561919054610788127791674350715664680622018296476409383562005050216567589791888080077371533687880997247421972786883010144091391354159387405521615844944358184196553313945388638103148563151113010923510570810968133021871380262586085256298287410416160918135535835184214087001465986440605969114150620473832470399471446455712729244019814451831578148980299143268321551059603318355448453689847487754947280798630561195067963374447105055537716946437552980783392495221363039643492297541363263596890223003894020746329122757586910446615564666357577036962507871595972585406153069181282776341176956645868211717989721065269975557103171144114400938105085410823953163970173252004999222969915315136378814856504521345455607769222802233298132261149932728712482342825449461744439984896600060728262316838440108358423564041224433001508180732587614925305119659435668786376451342748254494794048026586040716098016887715509705700183405634039853113900051884928108887572895613404044619202738139419469762427077458475436694980548176612350111759145256326230424335919933449856184959935831065113021704726936870286722075727623576573846244818074657733651158122513671357865341213134353732991029415371119741945129749197891865720264037720770864401565999630879637559670575953678567083715067583724390780266143705388478991477570241473135320730985696435279880251682803857448157830951351466400908034226241424537715168328482468088356290030788660080971771544379057150077941751436655770446382390707558438005188429692568957381586892777912743552114601793167505351468430990812087498433258694613367293729725163158624542664162265730901229138217430597185036476626091856912187362855348890653430591168358858769371391151210650931892377347536189533530254004535162992382281996085973429759734466544684544058763152397480434435729066799434092503133429144866841309065833507455388899373449662125784282133248895386647758430622796694972774404869145884739412607367037019964808375684025085346361351499310026676773549398078228602342646255023261266159395428051943599148198822322915227201341207843320330726210081988430818439080364175479355467787371502508192239775612452984501878762639713642386226696834502114597473480641722967459860479991131994780618948679426069485064350254369029734573022171816002074909562280469222804391088373096242733496192161255655729321000992393970836155791591773328624137213858287339635485735142361286745916539568638131605598769944894697531055243795969171457922693131004039794296871922397785051567002789224220057811303913638991549686370926341142149150396578411387471712764797058373850401593636636004441486430138862879753643446313605532044228080129267133245885790588168032858918911866049575584976724078196580544653051006466292268358404488475992816915540918552109062000772985705013325979891534095186767741390749367274658820336398724321500119564256271385157405441740352120202682652668726640435626049702962165701087179345012583286329544555920271721166199761889658611646684691520547494298257196396594483013986084909518931747379947340181881714484021333604950380747457099881089169160371681386540634643009075321428627142828715820857380747372074568782152258187693434224862798884306359355979539596489528702623161833705798305287919406516918824332460352258211952355893118369637343300088146023085922573439203923961258032800932324453166990532607865213463046032325586752554326869100016754017935279148296497571485907400248712282199128736091642771116208926026421032593157992435811272704126150025804663044464191714655565727299578522999268054147930512073476533256857595794253625441009447861703016397942622859717701947473708631635073341156199254889916980303720385835147645905209492147315146042118111610713206780710746100242375576114998947774694966057888014650129275427941026952829638187077575319589109458360673745718510160239984513236549476799922854851235170099917573572886305306065832656750626195268889909846884664349727828396872868930324787088566944126130123274666211939414924324116891852681954238407848167871508531101387296761539256775126860503505387803993294354856575382648696543792195199526135210968953215271906434459342436168868434591244736941101049057437477832492552039712186499609507466000603312493062438180048642685550586536948126711034614018070394722719997185967398381184282833377514886807482786586047371548394750127235244658604371930977150357857368321675687723386451806710757674358296282275186689157153750881156561487757497269634900522402251369080169901851347042484260475312906268079339008708004358624864575089503475421253957475589359639897538246669661928897777022233570361465282706594867456360693249532677848451572994119822626036278997284491352772985851822754690805714266909900393263689382428316784538981020086336039568860475045691243860502459176249484188237611874686333344924636888146218597487288064514139988808767695115683455687452776406044791603601853371132096593087033000804588212834701085136608251550778875425925839890169963694363951154634047083771047618492986779026116114421761267299720198716749207462731277498073075559348911907428677815797985307013643179187458664951715845185913916897277507913410485983630573879272759655128258339572278032560697260839787482474673120526730168548357828357346503994373214858041659277828491677693161176317746766158759365291906812809342815881882457871158663711267139000924662844073237772285568310746789966342859928954061429536767174980060049548720600118854176526537351171058305760231362862235747021878094241388149380213447031095438420746933439372273070285897034728576242938795083061340343165134019003374534533959067334011579387787497660788070223694172863880379491605513969566853913010809626081978861143636015668437108229979946353602132606858972978411998983588334384278464348595227566557217984793590857831115821060881874582120467000994829770789043012746718172566889477328483950888852147481298525540105631387242464654877355390000714854270915602972715874442627722520348412363368453489787443151363988575304175625312181659274688610694319840855032736768252789418128727397049252875252276764723767994771860952282079785353574959672129947662483916253855893634340574920833421077215553602138402589028195440872977046636352945185672754529937957250420108917761970405180519349764354653914457330624855607334403340231221496679268658250437319608509134142545022883245332460644655647391528584223543386697478368789860300651422776361717901741561297902119548578094978996903807240154988050437202503294877660769047075145503749920900225682277953527474100949415556306244736244909815171672752263366057193461010833389629413630139214170109216311512616723434441224960961174122790028691095474760496373191224494170554098687176784712939020388962439749845324919643034757620610264326181070692637666374535099515488157783225814686006733155611498394812451082969927708833532182879844781942698493299442517176221157374383765718887481027539065126346216918426931854455776213114748911176761993797718942190890254299832516648389446291148105094384334212425830585646845355933979780410822479925614916148152099058889491522365502146096658507501022163894073554188156000247222919117003396430947788508768534477938700500758444369578606266847940272569952946092753330599381955153713159788260297997261612205108983808331587871062724989809826290754475863248500945798148709774503929160851377038661658993174834726699105882588928119036553595752215768422816144573594837537162792576231882462183809033401900548884688037996185551390676341118856281292127712542828239037557210408120017676685638573727999815107128063781174310024286738736510222581759417329310016641977152279846497077627436184549462815674738045520065803903724973933766751636951837324348504239192151425081221329252832262486931451236888074008606771090133481778290976364004744844233316287914635337791940909291824681584536258162495675431422069979871836833360436367551481467052607292018287197126244036532632149892181638929159030462320466781869308065134736116228036371486052011934901894441181454240068805006910202629088869222894730631430472957802416631519005351500207563172267799663055112002525750555692253427655199048178035556325805085354939467744880487163628386421509546489809469357819554875893283422374544386066263193679419611582261776659822449688396581597715862383614274128481672437767393199209445795902733685257914785196392034512145657448583916863144905066854659424504672412123412631138346263301030482575456056883654707889319183817164705156155329638207375983034182938640430339747906819896639425063069376321166452585902582854768606099940167310089609799338667807513797190109542960436946098558233695133495981198881200516896577986554591770193318646879012199185949575441521457607898741906330800055901194904451128608395900019007449450185393540057319002296294353361655234667168798793175173538567278599077076965868478320865916817388100570770738745053914828455834454467058876261169667921219036644109412111854436916722756926801885915264654062856700734709770931937880559000278804465199764328171609973049660941441664028204694255111624159436861205356266412630933132301063270257480712570391917149517744775052509447093067888528936255392236807790150804829881825402973843974819170517340803327809848108594194906697648149603797381050023557224038684783149306523259341101068522667852170743835087136035849425011690925196301446708382553982548045829939470862410241239828568158977183452184572096584386639644852175701091928719935780301317029799127025921316419918510701199327407784643027032884675751220922090003540893071637938990016216642320403329514822117623288166546866254939732328714159680085207962296966611215390455505211712049745120054976850755659202678111034811646861527876342363350779056024567042523849527816744003817307103747302097756109762410166944119061652981343417494297868359583948364772633337528349084033602208461045114200459314402732481316282668004123598422841842549843324690621776355823012475324573102492638806956327235602893938944446308929798907466123170600636184672200891201737253156723190568595770858702708552425983531376504161960251960136512713866900253378269352138656417923567511130251686854366652699514186736324295759059374781109726974559516899437219445720487860036800766089780142378028365338860287111274370465314237907517692740728051189194686011127920966635061813900355516627297517164808400167171070216161741268297597891514703202046671309645784193041816788041387220990773146329711450805518547560128294082490890174528266713226357992064246451899095721930387492236769966563505575769376156015863418406058999901541683850026069956689981668607979722609703639160104223172993635327091428660241279412688848679985125276282596550188366920320973126463384864546270477689616825152947207941853993406647114480142409247376548832210868385836483219393052789627886018366348502316128953741641606985712433302166903370346423495014321035051616069958435182930464054341597568139742327416507064801687588027503712790600290410494151656802566197352680286255021779779283570260848633270209069574156782070477468422590793780131171837908104929522269498805071552251476760562784285269837880323884157552141048593824595289761657651487469958613999620281238852226816275611906563311607805332807103487768891830637560533462884751189821795891282295894932509529269413355756204715901561679811610959684267880366603834144861708296907738716444845250737744810604633091673518240550249998355474505197319686686460229608614558762772460766969757017375700349911123594246799780989672194860257294401133989691223606603435222035804797966624858620108182327081493685760626424735616005650467230662443782797413396347488559234350166120989160175791867405986671745964612119047754844707183956449594290335689560730838826488555685575501265494597820378295608759069186154156486146498549129837450361940917521570603447859456744339908812627169826723645354648964908920320984821848027486980572653450534773995091583490248210578866660444837009419887295286311085377656241594927952240073719553522677771829263845211511266216917296784333485723549504247832568271868553689417829404925029602067859467051723810440169055998479418931382796024737613835727159550510429562370395068308222181708261320807087117977787944409662867698224600596147022190309493017011623253621169329122242042894622260620144450598626871202865821523868287476123714552596158549866643898891729152954416663312459799506702349278506280895180557925821851012084916554557921578847422116542086671441966288193285970647035106915694776155493023012662966118332324674404294269469952188697455605304313757951189498698878942606230517903676495520159441076415777915473339586510724090343614154795056128377987434276766587139440077607345633388163904127930882774865079533410624522899296815009142689055297345916167386696431978562479285938191575909947926502084253105835662356375186187643353031365863317651247459010382581418224834145413662886628535926678049452068023178636936230262167939050687549861590306462935691348042296353100487338226798169402491583297932589162134848950686028958290440500844022189906299050282441697197332707315394496713063900019200564703141585414258892389293448507162015714230364662250375062970330175703912660850888963350033244994673905188679452613937030753788032512504501099685177992476012731205767920111093527902687285825721530095842461964582526984568927588853599703742437909385827993929235019577192114823482776605799264684935618360549174796705510100057275962397716925067445880250624293181855041432539138618845059941030465557633848617687586346655409736809187657221126256948178275048346168646059749520465005644691727186972443412717599418870466833071251735459165111629989159744447762030969087328277476212000820977030224701891278065277234341744304982779810172007916888349124301938720465201609111884259777474503418285009372192793835961459649122158687583461271352703941718292633035919852035981596409193708572516088910813815169801773369919962260280321452759219416454234996478275757251774809130510172826051443577147003556366645773992558540718515395294273356211564100938729074402864277124349331729037321184132949427542024308165724157016398813595712537736206616517843198523101438439053541285574076862480713566294119781911095761104598000170271915063852755358364569734341520534700228911781622031148367978263293979707308168709966881147199093763895437971741250783406452516395839026305815764536318993612117514889780534284230501050856068781661727722109705005423651811923344336883472467399824676351814098429347956533527757809459922501654701985317046984529971495426089782406934719604293627903073054077925821443956519031634909292364152490775188200923341913887371798189750987233409237855363957754448192368889853651254474435167419125226911708586114132291421426216187622808562529119502593041160906783372813774598441639291550575812470087476326669264355321710842658675489497859280047919448411801519387404633249057864985786142706702710260988970280140167096463141313133521984426148324856717937855944270668425468302500891287861683671216215181405626136608795118991491755707068880263555473982715729326393429423554146297290192398415290584229908906008527340689027604416791673193365352172533814080224247082400938028200822663096150107010812784889196754564889701329346630400923066003850335471319962797646050530144576407019391030672049781261529234541112941701728513677311562857958409750999443176729604573097870547189515147576487850263883505682732777494117747565817672383700161217175030205071204418531742463808416344705051790722037752721351789322915332701834913273866849295315280252780845201631411155522242809167085973601576351593445764894547957370336620939703757355012056727778439754277099743197838325831487175881762511192334721099497011809548085394773826545462646752436219746840599566896683760281628147800871471014217784735122100205428465001365674032104188388390238644368710783182503070762120623692089773680945193802417494244625904121243486676709915622107205911018331579328933075931216949017461772199819315162399131343565824660586253518462658375164425811023149307444184840289999754926846123681222665213068857688221862597021064135983108738573668755533128595789308771129083208903235465854516465290666662140077282585955716476400717779055733738220436206605889874485222780094238496398211190762025854043721486923178741132547285237423521936443615623766285083530678106347850166591512017512113606590265096006801924468680996346146397401136258578603406551325114022259941691856847470735290318633772007432784547373186491643947560604704950510195087511074023618387364645926465087312222639660325806176801156665569773285367966770418290254743663099332002401405301622989248008835008660960874477556924985886227339279581136710372207400875140325755354946443963387296133632215673095758476048367158601280841324411286605046342845725163910086521029076748521907169004248057803497696239214632064858269903100895769575525148640491121002599320324815064665017715450085418067636591746725180952103170622741066681501081141594432012378904915496989117479475726472206662466471760297964334305467391073229526963973544340777224934401121757989895841428784980137274743057863687220987806170007076472204531199160466772394876393597960051603678101952870465817687343489052703646819893024590997683614076437532816395247768222939890125123703942366762390991471129346339584343080256680745483262269061011877268423179291011618097384714225325868120774113992538047535299814383782210926685984853459916499040413904497722314984295051493242903091615200201860385465463489738429171501620906672055886257068836956243891067289923453278279235824968128159731043195605690968963638249360897165178218008050090813421482155705289159365098573775146733451341285847537179912274356531271806124916979120027462803819156973661189315080101103839271774264877349024461606041760884763594938005311138006905083690532122943546171789236010105460208656363177866042456492497757424985895738661816644114489803343631405894752149384871523780945405561488831938586227062233740189138612543052326683796569942723940370952184117409561372682444272095564881325582530875833475931777725814917421076852615729122867135218909087571099256544363364836820372488874496359593178563685735694822025824618420736616715713214389955308809865937704247454060686435445302079069938877375529842157813959706334283468776978259526526851019320981566581838977445062800744721375952036001304653766940298699704219652110594225156904806377856396273722434312166483264457067474016611679989583445280388319055758777985911288955268379690032548108510677479326888130773666892999459158040792280908563082769721180943223700900483362465576960925767076294665125028506627260897494305753785736318186001002717698872480729750696249118062827525265011363141791134693031550366484426664197810126303882754711537733594076791757573177583938636559774674414318451386777146251158968190652195946271007218545385563383346991763789937641007215210033594723503990820571717330475067680284167330585838524152988333344057233146509488547613705686941103777701573306463582582260476542583989169606538678911438513452815229367910134644209904355176743930044122079381829333559394965583806846825213992916450869124512188661507764793434693388047211666898530821235589998580142220313949094405221915295988475932406861678800830206648310368174578454028682264034694836327971233283615017773480400567465102272448659343914097946838115337165419961103497732736340149262311572296991582292790449237527279612486210844248099520188718158769189452137993054121830923007613737882584997738454026143398401325225906759612201700633433220774465697399695609391509403121657360291269114985239489111352816382597810694719989440267362386819626641971582166749415323101326606130095697043555192856273411728219141022984252984097667522805028449593445870590671135418816162195385364211988760563349250671716764327745592855045372145397473095814273789482620100705411820044976170012179367586506740987311560126475804354842423324088575900305960070719340478364185660198481779337148535198234903391698338954984602370538395680032099866412201639511382125381335363766260354951126525924897843372928754227024399533337110231565879820763727162675129051970647559168903210336271602274500335254330305961393522370219545618888794149686461067993846184911176389559427007104666400576888342406836024492665630704853001349196236125615320977260894875680068458150006641304799289686359906002655815467644714190128302272665279960780173961730042317835327837033504948780265603898609859816148722722534321475483636774927223043924876155855234326196577420277830490923910979138954802619085093671112290465469195273228018182492757355946417706348364511325375992045859552308041244788584818367130353265669505072955053176248374251460931710371003011492444504784505997192665444624745016937847625764382068513390753108660967897988813357701080591871191352754536235155265742667533585621003713955602958926964562602456041047860442716172484637000565279070359523953065586468999037087640269512378407354734756104230173630536560964969710246491164294621084815897706010820432109106627363393490757806110386369985204451367498964644074292340278805719456123179233216525276666736506007465861028072084110347364876893981232580344073273539428331493462426735814970190134899136905514198116956496293964883542749391500760845777716681301038873142654396818038797123568229029781554347229366773446259771787941492050542750758575650445840480193225735989305398841029830394299221456006835078375410896332153451137350011892988506223122680697543905921424004082334633051696596969159622386005036146867603938498141759204646517513928701209277406036976765654816639079906818912372826241354708898183267975816877381709987978114455562439705702682578643359835680038548865135251759830790840852079348921224665563199007407579112520180447498057922804133232622022770911891879166474350932515792646254465918724368461272833331001097799585466017588584556365726895591268541654289703301598324971959510863277821396625635894939590907408458629822356821247041404947522704323162956258391261561472013409631844764634149705194924136936100803272885385401465087989445475264307482346545995415120614325514137119888750850586217863136125396775807279928784343379466316634259916314217572693630708844308521982798131095620703107134832102364777365648178073017837207382150878411460096823642355513181497423079606229088457946499199929860296764101557090482673115966451342433211913484862448737184904255175824436118382539712570518800335163510249470034245937923167904784795387341492673482026387916476933604576826653975565410784963737760005394434653591230792707337009330886594804924963725916708614543310295909281880044689814677285951114112497227774730090420187005034989113773471098433242547089095197183081358823677196655442774212329980628389842604535891608893694843100456717047513674033431905194854676427674379935506274646809120258443832169039412262601151503897990588204692920023159426097192755284974594147378748763064975261670800766403387491804020316712444596357469193751636227849576043185340415818363192725810809641204927993266372367745529204039220251063173279744991992221722291614404954790867204723051684690231831874649835176464483658877004614333796270647290156488541896556757829145372395485906969494864966338405144508941203860348420437164031416717311353898130402872286911606470833576589006846760536678171283834820582072520300558708732324521173314306486113747216957166784559307911067089990937902098759146513511830702255440641088199078594012709599304952964484383317882767090504296613232846332157863221660952544406800726718400142253628454157121833390321927450932029712303483611391478412359363612335454904884844317858590419697883943010507597914886099381407159065410800844088665509313271280225719018605575687515340610847066871225044701081062474095782955989235683217179094846982492980354917849189595110098177314627239147601788038902560396287178390491229305423928144579988124209675929360726755296870172184959466736296876228259389284066347684904822036098727810949523601652190715706117948988918883580111432387300438356340693061616190011821117639311824905004784331854596637514940791541511424276106842184310729848050069046151573964545545771289423456456383032489780027132092805177599525201027430025057774063686413122834440040826565921938908512894163553919582616599575823773501709924048003660658178346844139271899269125246992912066759792613639558787929051929453631528364749415696844587103511320902043137023892368904439770701356081008451910266998142894971416592392135172011014001738182877348791798712998037483510684665796159766394548419051210782830598855414260537755533579972068382775487017815096735704618761493474921396026915240405379429195892687358890747830741865465998920158932735687570439057843331552987188720802877218772933437201836262587221482437039708190563095775600007947335033041331797967026111574402045174531848737942285683716933214247148531667222182642361330219246280147164417163135462844664781706124584019678116751644284504640911552956136516980605154860802226478590365168885095746888594567354688378296388050243441234082079612149945771844833450103330477356541821050631010614855385954658398700635634867778643432551318342974243284518887058151515245597331825811257933552396327199657293625728649267161583386358496206791540541952929086458939233956089133011732951584810336436919010049709370989080865646416551010586198372955257469747841415420149261374590147210653331316420591073055952377195742601799247688232182554328534666932186311532100199792241383068498267543891593787013771226219004565370234550174401569546281861243282183347282050700095765838949418646083146480536102124973911435234502293673557982382298157249363397918302722822745198256155451702247202103390075520961994224944170048380227592823976680984990418256437222208568459433711631740517937903601767177491456862276333185619592503833486219489572063942453730393881331108598060710338455598562555364308093865610792692967360082466764410689412518718303203393301126326167320759637281057758771684379600253593748543723662321776521107945171801549027148924307869671087612906496815564572323885335930978114843486708942980544199946796838397054548907747023888217736263788330668482311463894728550495968118013663900942646267930299611145381861679012614299557355105037602733088303052406407775558951905479775190594257803630032395480590005583591438509561574512470385406934083887737262461017713599554319246409650519657169124562693212617519717176815531892939372374544095646818655323795026486881558940812843506152262261357300732228781658704276289090015073097413219259812724908919839862405355919295814458693565252039492753280319104742012881020201079845700336572041179020546092623763712529978771271832514087186846866106467441630953795687724567901282793119331270530712798059123622860061223751131299551985415077358835192863656830282023412125638985834972555835224637804670871697992856844316372832465205342372814545865682775703965420806001942582014378935891539320736235813900032673962739998116317834079866492771286689321402096883583853903738900550569270362900039178676025053438047123239672291512787942446645797882874097826224178134340018766961521640836581647797908402641154135775828656606664389067330226084684023165071205625570387218150650521458147372560635829030567967460192783052070228304643477370722756873941183223865331429511388529134337378598396698120768571287014956938769034020638493652541410312817456541640815102724675176786141023755695619645199528365946995965435737114653040340241562728401728758368132596999608563206973155150242013547967224448772152238560747950662151874357145956524175820294444771476631716789690691416574580631487237387257928862603389605689111538641342989651723252497486859613693881497885029781818509664679094635733884247252011430426923250013286926740679646741738539528629548628854244218731669619778560139066173003191283647946490128926902442608105408676731523960636018694622079701222801694092295009340038109011600702305159140446251615714670956785744976768824612579483483117362072026279716537174529207221195093993326719572488579758388344411424330196581748311992777251251458618065699889940252121059672544375498330354766308704734361378193078917691972606915599120469333389905024788827332186601326106571678609563612109511584558788395505667119445517436346066702107011876259872408893861767430325751654496016331043280534072446150702725775922124218676229787719980571797333206998786857267765211491384801050819255212693062331916872726335703106058376304316648623913092873534588737025082383113303782714758315177026275864101057108659726900028266102541520298685898907343350758628714160190010580687976683708310991773307164797110240587426718134680902489981523601187697054182463691668592527608228669968677168759459222771970995803075102504289380100485856342458020667471008939029925562820145936757291191269279182134664751563010112049779235961817975657821026413987525962686444033031173069923110294879086529417006342229101369733860362622866249121422360717289967327863509717857953971458050628479071202617808227737920674755750071460433431046063760787078989888846800003034865667586068678969960071128597868691289954115582165109040841820506792842929221553214894775953040034662665581588896300374610767113225766923834447934546294759113420658433609210016658587943724667194154928307734252658707281746537849233299332674835568853171792117601370023545844312344404377135063803925404485747592748329870791658191350647351034750818468409086672373078728558549145250475676151767331690879459535486990431042332936750392729279553757292763743291262704115701654276339086121471346700719450856551027385231236905534427438517749049868493973754315332258261898222547532801021664821958434479587212727155856194560514653735961440741784580398220277017310836029343273162839442565466604786422039378918555409250150509495557716692875920219239460229334316958014337708347315530121955626325194259419959328758741895166746633480718196841546126946575616064203580675983079953496486398667629529740375516271245872274454475887209471174881692386375819160211399512839826079237137882649709776890016536436988424751957087561341524122149198778574447057940897513313958619606270748632013847638880755966122705966031156343554811461984209054296095149915766671950783132431239945044101806744181002661454394155757163024752831646878902908706410784749974629397833177219441766122153114823388799193926444306414819053443490053990695854817106619937922487171757586138486319507136263463901149006982564583767435809194641305587224596354540289314709246401961112039157013427318673433156127589077763495443359082085923425715741601986669529338860255209642247308571342881713589082849498110184058001556245664739802905013807663961450013010241730800379216128520326518331132140580852968150314870799452781983465171910766378425334780979437750879195499549753215312196079499015092649323023979075567428274213150716238422573190262286960620260456808481648899794072881480700747111095516866601968475018805506078554710882893584031848495575747768864746472936778414188212539311949724898197652389354137377367170260024467705333387036036683163037888523924051121554976406306606358772537762268396622754104032841761859547505535521151334925853655694962719338701959911697205548559070626460281951842662833375546430747138725079041424548069005453522622296890020733498870035068921502000723036332077001002560917787745216746288968443197727537574090976074602249901546056316624929949543381538161048410865600470782503450448677780324130306634088987184683946531194563817102703478934642847085805817506213972131370776487712114871990171389996511757746846535609822890269090670954697572088243441089019723486316992555181745623578874724566025121128467967699915264322770432879419199373949006275153921131852123798674528710991990384366653620583659645281138153344583402694353919036939221785722225294400470564930872515093175719536555000304398029334477941749274199603336095461497357634421155200847347378090187363996583703450007984634579052947525525724439005507136811433629519704135679643595904270927859909288656838995248111542683240265343916625936593509451508817673285012042039955472847875603077442347340730401273728646466540802472966093769893606656684390865918337808485190835361349249521476668913976972346743353536964478027000125689824677752298225555652582833190406882167430126446225374297374288514472277729667495942588244884701874654203833419927173780003319383649301275673379375829349331912894248307339387762630158999418486706582122776134505842205700940323665325315545899851367138192068437489188815453701896834024032048097713310786793154411715919942607993116141240206179505769799275087366429921197876619453424125299333829847450849092164688827564709402431802865356931462705719774209356575209524488506551318559580774482484301490938005917791178815981845948888945229257207416206767866584947309437310459252842822857144259426751518372655817297460608835064780481734875143283184149347620864431293130889524381590693635847406400514505227931857404645074549004689901227118359001317737243340893075582015732900829846912629274931597113397158019339382710269677749548800857857346016375607472759817174761364679678062294715204215304004835185600100980725027320405026600373995418527693534187598187324563561765680950913837337157298247830771258248321419683810533603278311809636752212617181464871233373381589752085864895815466698921433762758718032543452959009077971356292311790051409189056784828466342239282424496441844300597257092563682585445510058718443803968051231732906840554884555780067181727469725713516071439940063611021213201810838613410362525535488347296210643576877697127758029623361201438884316006425283008678270756828141956096687644860935363223768269312956560158998491746994389929170580944431465657324648964150514536567325376965010692699131720759294130103685726666968742915149828771587658642132862048726475392554797790982134539409502615474464372435483218564450015469287882017280647045652516315166767088124705174395714471554301496868095206389805908176228529053403535706537680138540892389768631900122845989050661501205286734752051247262835590046421395802745469152963264903369031143939380377950596355046481195022250400294002225438157059333255131218070151064745995999695739961359850550434189168655066513646277305740799473172127289579084589123509360436103647736963636568763174123220929492987969776497286253875105178201772302440958557414173248723353280459381067954141328983056517788183078554331149407780795280601372275984411341301592802922017960275627448574757622608558774864160094271143135462017879269944698241988248239840987506322745070908053797356328898991896083221614688273149938684496741410705696648526273172999835560720389902437674366205132040006719146500042435430040047375663599520888334284720776102714873283307029589287385639776443491577475580500857160480182828597547323840492445344154404055161953885801652186863941908276642283217387447536341355828268170318145055870316853302922726449650367883163794836901503926883182298660478899935359266904614901202557360608753932112828057196462899807450968371304572122908936989120718468965946633131222686320446828794419055174309411875892410431552844891392171383674134110564670724500365614553153655042322330854647652320092665501698580160638133733523026526181067751759784236350661724029251913649834308666071418528127689232609247817566748777349880596494990155125161115605185227314802949602408339510481238667359755378544156864399961426078169404942449635655587808516458796420165823226134512886534792183696379418160740922675899283158930539464375055186067307751527697491140632306370554802732910416115750411316116438018277175174143172086887575379312067472946421296901054972031582436103152913939703261757293942758430033760657191763133587320486705092786449960424544915824845245464597020080831263081585464769797969957573246415047614401199840356730612636260584883005269916258141710953030102837766826759088645881898880477684096690330077431997101256488497871552792334597115013099061154666768427269725098227650975415805157775144662493904255867766771616406459561555400281977685290706072137306698780305137884378574790275834406378905207794956801516074799988323006797649177711907386051297487390965412203215807580998740560768914758391474596981466676778453560997374089116340409707906775176563065371056874142896585884768979262091781394333274357568425861576999850210091737046996588700980841962027183246768880277783790272747807697829069185133022315252338460316784511771493266728380142448471901805176557479727477243830160639180072897852634287848317431044143136360625062898959762922957428060222768738051251439737418944798527866484047492135323254174232555050841843628406127082233924026546358426054126353092662723757810107143651221064268841708229711768705079236754926723193644013896539649104248193505007365091353574814571802350974392129875690535320450122201121471015014427279011070790296900206817169333685936871416647534613535358537348160982369667730683644493973403416033235676593066562295623950534699013204607672132292286268169830732494929524591049452483155685389408968579956636345042241585726371169875759398280111797286680629882688106305130918662562497661829856380291483924345492955142809191604846872437617190179886442282621332376283061849213908849069045347558789726851969749495883502798647473316025224947422640850013576705985192465535824729392564564325175165765855547561992391329899332173267917249000787220542616140352293265434712366473076613086275400672459586431574946589546349533968508332892877858267571531268776851734948690600709221239477482270504813024870210980993366698919919414183138052535636543111536835121541785178803240754325752425736595234051810667323807689360672822101443317252005129325589630172964628605845594531065736334193802504355866110182442496365929540777842993166556441393136730307949791439245742088278822253271818701519199108058977759860753952987620748288293121266942344506812347738089938215700677020721142031916783915238059679861392420975187291011753912623336703202745509290126684453692238398126269172081400922810743458895668515852995172057415763389330236106733107666578561686865115275806980458330120259688753746678983143137396960101730629287406798862007599100444712366624480463259734271192996337268323440830358734096452190151704333942934939719776910204799533839489078031351848028278344425382873374260101731329813236976528492104526512049428072424667805851266206841824900296023002928189207011502537859172326472945622447604356450333612354125804737115274892682105462435184632112050596071616543389116740858332322764987759672971647211629160689612045094612417892091294789281380168723045099935760549704833179150330434175708891551083943184369931173759569353604207710353998034669806589411713872502707968346673278611894849480601712365200894488970303395672987158701579672825111372413009176688908781072192361868553122366378295569963401286927972694302978699330944746298980897449794359407553960739604128687591209629624539436106766528680896107108256033344850658294934281735037614501888735905135116889892936973507979398607474252633856789284463996608744356025893649381838458999842027028757972982135388053659332098698264090936390621080174107756016466942910925676617741594626794268966392161678732728612751047956026207740622916573015858371411055104550757981782370507526614335390044671561722732483826366501361466566123963458720186249116109045077177373548737173092764386615844212619172629453038750377508989502611731625534078645720821958490656601410964861633909874523896740440253993420971473671988738350258613345568476197882454906054617904148860978353196819877053573722394475213855932431949800707856934242736024470722864665626798129624011027909402128584398789526807594032135731372577650515759751877753598710639628713260389706817635767955966267189329450178533094911818554610129855186200302967198814271737339675720456653237681737580513759257540320229845979016277342669461023152911393661273370942165322044545770194125855524631403604138714224013532654986858284504717993679359663755132122915745122674034805322143301284502049665067512807440654191223223607124551951495740574065799308596482820465175726469438148924453359323487958956606615610149613765389411043024881661571249746132425627033325781419122871787509816428327905167195423943333453917079101559436315603988068353527124553225735966424450028171652761733668613627208585086989194666183739703548156252076671676863162424802080723392470463686538877188524359684458176726333835352424941087517709601095686662942933573060416962640822664873235941116872139119825084374220764594285427051132603146895504735662717341199888543755449278626167042006394244580156884007878887888752070393628244355700376431468084255861471958732114805576434250413340340979479869921576579739621692929937312199740997184021976552174983034300512375509722520845118523090620068547603930421332711614375161203631387476249763734581751574830396394879419882771558433725393682842690188718727865515759568848106284503764031755526510982629101926274802169127472157660166157917550768272521653773124637439874136816386852722058195675834079993716837841262340617000288573415708598356344696021677244819336161378040625482741968511819362793613593218347326323908863806652602100612882259098316536755466983107245038714689877525328469629407240453982602943805808934421120621455447280362681324210097642667280048323797141774964658414573190979737435868202169199732953430249104264164602970580162542628590573048919501683821787168958742304880049669240184933514264591110922180721812596650924360056936502583482528211138362541172333418794392580255807817440625424262650496638279960275141475724583040615900094614184077385359574883215762521405323259611137898531339280379414469740071210133075477438754950145986928801401157648627632102011658761767702418367774973458735253835828523497333828561597219920318271525090603447279489855155450744900441159444142145031041681151340054335392995263118804553167162288890561813367702321373505592810540331873243198440492629803071439531542932710423753873480300559306699206212733654076565712033511228586844412813076633180180550463019259539696246481273201560313453405510669322510574333431335935038866057928706962044944312848475002428947434961439794724000872733122007270218089078616162902201370844555133168296861628353139316840672364274952749041252554283380558810771103033815167431889005455950679011087655073882223386532205940658374145290609578451266529161993033126378610626891023833620722922792244753812754165585373860332051723378404997293255261090697110356322491974230023966580892874361287566858774198833920619506646538212011670915313801161256430926105028051053023266971666666938908907337730717293570605299312751867554795943370612864591508572341402524597202103236667757074119021115700127350041393753358087869430087210246522241368551860738082431123704288756271105577838447156990422149013525770394220592908198896059051044632000995693690301097765541229327217305715466932110790539954474347339145081080195169847619049139554490255551128450841489414545134936191574688047163319335492797422595747148832638372813697680639896657267094087281653899935194436760165194136584669817034339289403379042854188345853027126544124728896836405067452630162856527588129534550970389014517635958662473482190353567603639548061378349398691093444202647392577102608687291719632751866952705970250423653511080524964581443261079288228982616844269371589999847990159440291120896363321114935414341514274840127860463286364024974456632014924535826190236800546164142748016989080825887214879579793857456582365593844998137094738930922210392258920126085389678830228480622328573454738412887519604558522871379577794302192402978193039495364512905659295013424039966991843006524788004989322014145889697487435528022097177974308752195038800355242054286632913760167611588024628586127013050736240959139766495253263966444263609357728862844286355946857026017584439384589867486145837424788816488327360479897645087516617059500472587286633089994040959549948627123525584040568527588336110487956424807151780537414031626967936011443713857034571535888435329872465695532058984952667570302764546533159369359142884584665885039357263754305049932566840301469979646298116887034496747935892747162106241434746806079452287036483816350333997694534596896740442990268913520675553191173594123174462967317612706088979081148026906640471023206554940800888998290966997152983502288546923252070856387955538164892395994687011035830983552065927593273374019039887715198327095347571894181560795921828956190546951008755268554982427254543645003672654632098995429618897711471540020624484599191184753235182728051697891737548772603415474036249057138094493210245324882699494357669220335171123260291653653060534403385180361345367075484495731811910842817025759821317020304525226773043276183281274914612680200148381115233855866547282258887686340974209909487003044310484256888555491316556617689271952092098967312432005522892059690933481903173162724036697340117526540158669325444868523121799650630739017667537527381798734043278468563813431435965862519949043930768795246598669663453404008268522124372182479476138021376795535452462943532928447215212607164968696604571574261769137664335844674965922739634072449803748297315823009667235815235141434282013345151326848018447458219860452978588097159499784753423882121977274274125868509584259983476442860126265234867792945313245866439720703140725815177686134927218655621440165186183247860310405810487921853893910072869478503464955138123795136117075532835977749819842860116072908013584799623482138892639697762938383600870270938624730346958293590848851083044221335100354496718857590744982266460139736607105211873981760765848876684092001368864785932885776589135956613876649373049819310570991287443512621241850625689067429025641213087752097987165581639816357279458369837321671813431552926174411097776235845435415627738709476672245558415689739608910023480500039995052638538106478467205804325856558082670840586825423770579215172130138466651756654602979079762236793595382017663120812669972393082413132228398231714365061563484691029097387817955594561077908923060492799405823959712634167105337408139169903729177361007307032946533152394178260387801569193130411464985182625891859741803296019176000401013633203092715866481016873261711203207802720148077998073138308379193370359789540008606918350641828125854418882801100601251725729671969588173595232807638260280433269735933024154964067713532250348772302413700488215310407593504813500780886860142585032625392960233683342712800218069044163917217868934047710439964819895386525578378119804643869177948634774093721043358144657260091736469739169342179545338364007837127825998620677629551958265508359699098179957705979220188756423530393562101081710413458493976962326194590476861902541907708783183657973251614252125134492181476910551918688572350480557570270775914272433817499945353061209982318775597289028185039213334737599660044722658836047426373627130805592091752563873670838224461415612523677680148556657298506009954338992716411327154132388331053557071808090313462388946641229806264865673173663865332581597936106182266023076247382604309782559165668897812017218857803015739830356047415485388110152082415777715027092025451526023503763606830831052261116122644607965793304151048362806194123749486587928861396233347872951400744909051648686633516007513211667060340719888811886051319151219665366383468224834112598716639759298463306153678851244657110530285524273884957043777049591922219807497737453041407725005591567837340448990772070168377084782575466446222202382904258090952143737834076564341500089500355054915169699908534144749241608220843723953713431644828424217113093910360860815973508158386894965678448877851906791201775381976312471719088023336496285243100671296769710518517145285269119270305531356114876421104786779184974129108990707091404873815052190983652227921538943714483235026809987022891945467136583667930157463508839079077637409446234505817052693028231059567825140097981518814833221671645483121752309171438284199475095481519262675462250586756226592714360258796673775313491412697178017856277089989918152951577090114243557788220276534655753903614720872739942168568149110467051614763898210742787054658901843308131113682283783229417854353440174455035436765505108137589359972432800055194306987620595741201719797215302502590991918784556932488376589660834104843001091338368394522474299232444472078899104643626433397693901702950728825346278685429407011284297742430434675558382632832407987347062434723313243300033363398120425874451593027750361022060776834620355983031901071337856108557655713318880211520410170472125230961959354147553259655142016689656558200271603255039911801445931533459434682726940671852838410930487329604023697186750955018932137059345059760347890860066467598723401887902281629858317853497914879296563193389821721858171626206687978949267046293351452805930216772337493516627993137469135292644382302981206211725417961027927904966137057491675440518473499408235857990778802321100605739259436697795613553769290914509820953694936404630798510144188162815242499860602872786691385318630092261212154839328912250969058579082133357599666988715322004926158618413450754183366102165949782761744658949637659397865943265855545513719924326096758462983926321925211697899955968873919482426049218860111065057689684867411229281009933059576005778649284254972018486697082404292163496287160473798079094880742191129444515032789284898568563474010513745572310924478637827293861474942906207676060346995785980886338269480516012010053071387282919169703037895990747495279284126763090499285259378162256471439862920497719205843228502703373835374683710297331436752993929869717808679097102861878854802134611996193061410531196873738536003594429225382312692338117016492866104262430204928024880064644165807137686680177224140180919487691410946377417986149984185105994554816182645337715113272819699423941573931640789341178312704086713833405942113461436334669213521280374799499292179075457412553656914792029359208269142778501078346582752425680193252434117891910509995620749909090001722293455456821807014387153759036657264209861199963462445075283380584856059162818631818482653095126652949779029735222409698285957354270584262207395990832191206999700709946911343361646231367542271081320920334097137145174945786689404739226885736388958158699131811987544405218144438258611964515829828112838627497878566143684786883489366126977373514593845947010656895397419852681399731834471662486277302571864036937058020428520067378863676066366520977109405548320041219504060231147314325866091588260645468176828429122263585630626594551525618334659707949581504640350286351924810750246090653051021896233387584926577615804134751030568185941378138026138332323206863426944720634144353967589933668294704331663605517537290038414259610386824693913736363881853278441845567483069801441724143006881708967905308352119759791943026762880212726654477611850724673713194696230973560499588728664114870270969460241428326059690343266475889314444511957213042513481578542010887816632666562076735852888071747096633173703648750323159730367841690464376352637366541042582352290292373874195507550324146426303560315228156500305003773748917003954219391883144225997272409233901465884562661649608587708348881166591763503657309582744819391535214590699841878122419731300573559418969907004447678608120091841385131660809012265259910900072455140466691093185963070997819663179138810536743143297347065768919025573929696297312798356847422366311395773658045022570843620899590932686834908545047702798833959907447358550921965682391725970516953600260605117509412114592487666127296183810229651674535502502610364467707731559254940904637459401124778529074447005229553655483265414340007356862258037629422958528598061940527075267758189154778024759467060147030742888415743455189406518219579206010572910577826177560800696631351614995504348152920003888651907821914712452942908200850099111159838651742409708380215662022439741191214395640467319902264897623240384022678424314946814127953599942986963364478076616648052044547632381926955405011990218853897093628625509007845554901492806077865757518548021496690422511747733137182674048797757450286269473817266237812931041375216516954525048682725588972271220061147361093080683442511600274041411886574471538209121080206747446393317553182832189308809388177657963640615832933421570522931787198881132020585489184572064501632503872260108609986207952208949663682513841985863049034834283510609472393814639678313598974769272735717414102696002962678607409587966522458231899800750810736167268978674001491369995526083505188440506638904759796798898680673327469821793832907531137603930075768396621540906914900800943967239449460866256375705292262321504767899303591148469620695066632182961950055944059561315114494396383127733824150034757560880058700046516757174701553136717115361511534555193269774707089748731121107043720799511109575218821674275216118057251378307428588154304489908109140684193966248213037236226754140925524538135791458061537194121455917846512828129375801928378973499231253753691858447099860888918484238354057793472822618829316992733523063942517559908968982075429914785892848848779963131574891272589368834624050260203759670516782004007024207284133734024978012034241063148742962801581098864127645367693707122715240691670525010732557589915754112679750340390883976029552606639264145050537375362922693448395593951268229387164792170796512744931049950268229844834423051535922446580446626015030316618777509843720998532587709650332699421489591718934587407501175596836219562515763136932854513180858601257638605112357477034745480408620027521658111233384632650249482707285753020534950895821077296447515730104546253499276932308885127434589680511958050055124763686606140698645560814741166011389175802990600594805255372210091968164252417694039556894237222401702644014477123017017546332691229168306614556626099054260650197356813737371125951055807834098383370835485445501949458648536672113628569087596150560704938087100064535461894824407899634114761658515078894038121793528441185858568648241465279023274540559289513034263546590841234319499156130912426124815956788526082624222370312100526960527268495120711556136617670260719507526718037661468440214229242544771450609393247779197185775999987006841793133439956638382481712477920101818568571915101140462702795984533366766767452597200295410868820454927940124282613740262381403708319850855945833417689782563795183621905345553594426108356142841822418508974895468840873357973051630567452709362515710034889548943473406813326444688649485612401326530867082097609300925822183398667274578469606765323061702999877941611162193020924817808604650670749544790902033959088483904779345993879352593731676039130695540444511821082153047006522304335983468101681025439832522197673829360783148130201625749488462718789268495896006157465782239161670288745646276656445103747884289914521398151268212373998541450887245697239977384653398387656883272677501047216944029190570778973845951117199090435516820994607808908131885067938614505775019712827210251464319668450399130059140654043135920480547851837983804007272308733983665635889714795466179825503092737804485668253002802915844953818688783900641154573201481915635644411321277350344215504592700199662356805548908303673083562256642782624886205560167615848583256211115376290820789895045720580463358882168523428320442553373495716401332679582621261826659935062077317347470902470411318997762841818831612323217731213648316665855936567882094087920448836877332612606209250357506931279115384778407552013712535892830029557610079778484436845883196237352573793707140860939960674010885866416834203932972627791915207966992487748246020641820372594271552951557289116612726710298056059928439384320601235300987462247932903047675284013040547207517188873753443806763068111331525061547228147193850871325697526427061105191565813844782051947943101957666973767524527993548224233140597361544798216962579190367626526837942126877957400654722189407018468273194448902749909506509729217613501577473786562694038270249858249162416175900824933697394498853924694595469184071123382821192384490131313491845934505473241295703072328968969601206544719008000517316019599122143820747100400809858810124946726168851947823870732429904725789843329348620428494712543926233910876363445526503334088991631063412349937180753494176612868511836276451746471446325545458519189045543216358122910661236019219419539960992295305612711071494924940287332687222710058019488683702126225109290460526296197091664023083784141828574079571524592020304448484258922848597630471921496808619823505235092290633201306040410460585700698505138450317133043469154074048203405675252217673729135664437509619951605709282134912402179286862320473182030908214276995378264251737947118213405891518166147718654081865202732439552450376270471488316118434723010940166187756167443197508011383798928420965237047324255196866829919692170446104431745338402606664326843528181293618792976058769806679683556512655185154884857100535845673938546660158775702667630802270470662071915089926535144660090896944145578810220040848234240705569889641598017231120056969403982925370838470715653092243698001117678351655210791834668146681936702047001141500819187999862475982234708242933545515734652373740365349721433166657322369505772934124966643551502965906088390249459036860007649143455463569839145203266091482481861589367574329361864230342009187402163533155694865453752897995177380740242943972500288189075534196527066466520515222367633778671697300614660261319485242789416318052058451124439779870694647573010204611164748772955794549904509490887952538253156839574330844854906067501268091973706794271064150347400326171942511093423088954481379097187847791804146294227671105855446326616298476028617455149952291721572302818386171755873211078684700157758500487394994662417949446117183245194544254363596797566289531979963214633994907579468202414316241572599422304032076394552057162177496030329272020712053234031305015020401281499316614838606613909396434043857588100033526554389432683260521899029852917042086808799782621784433288942350790942415974849482285122408719094140078307663750145781527976044325647183011790938623773297813277720121128836035466837619316450568513350292538942673800584492579493130148253487406059581827661840055105646654440083118635548704636537707483645334890462494477776368214769694104805691094628016596760753688009973306073167505366885962710378216561356029982795242566970242012617676407083397688968290748265742711623092938415753987081589997542671016494709466136860892837274777911649198796451856305692901200818709021457930448169106425771747187081866194435092332418583918615151876474778481583063590312538791264682707403104188466585144647096739307941120248018916133802486958101065783631900738377173932212329479541167521086269457027462831922697439217315611755868871269367466624332401315740087329590743182241869344894391346469658426826280127417266347759330978588396992438353223563018743027291881369824642595001316941565916896491863910306630369795814360687410962164801601840978263525461073863643008561177328409505187112014831547138740353771821327126211313053901334163076737484482901381649975727525486434558633212641563631802363991655010831479555011158150392841346041615902536195957451684057703017949083816678199291226803084138248618208391409964539052281842094442427793663980361857264265575338453869501223932380790564907834840021324093842909294239719288631313190666524100399885530113167216348649991036682939227437622397758441747301456388149015655667870095877767481570447870724990701734105783400739794895289459128481523929221749221941946947233513638947790165925477393585464762922657789444222841761166116002055432363634489236669575736412163358990225798536080590028834147120617417719355391561238878830910626425214184186273535446567257012374826312137432868844860727621508711795260498014326425363068023983398664990354526334367019950554414043323403535679196989010827462160951327842614768445313201812946661789870163946953177340918010977901165397877934385087523585200297350624623940052215426105357261499549055982007940262518464384221137645779323091896985060255294929801782822257912758738328027193220816077139281284503162845214331125561211665993739230660905493432913263696946653504376056974189389614458160688911507568655304453589452046700050643982141244541695755124059448666182554286898904022878149545429522682887145427327479554738074853266912479551683916092523577612101875981348403121439254362535163279068944440395277696032530108002306299919936512042244825280293121935413433154203558237601773761172227073528633992658680608416125561797378259453763986356498351286148839303964749205539142511886616624888179792488055455369063412494426194145686430259131454022540594091370789595462779899338238711449549780194064677479526504706529190478042047651651032709459351949511071991594909032273165644288031805728806984932939381890804526644399428914557215602979544128290688907900023129263024685952944231664393359994643171603220509618407697182339854020451538097154879462980167107636362006439533356934155736525475623988107968305008877256829923806719275046284132720175939805118757408219406155853341706564172399820087159914883545038911045273099500573586198555717752549994717751882514183011552537603320151746476856075219494368332286156830161726277761548428672401188414989150076118246410655933338560284351533371259925140270134041874904798453815099078502478143277736954678859549631932746674038417845163673948221598393821815091734671863155407148818353885945035913390118600024696300686169837903920249733348861220674134679917669446690151383536035276393145915371939518057773345186133676400094090169719194666828561744807480478006225441944985964639018625997203930749510275158544322300339597226316452748958807477045569699794252645730296663536709985771321818091278392910129082109320014309231703179176752754018263031104176143853239294824864222357573184497204755237601161141984028763270396389412218976719687876988815937833472651239262412197494159034364878688621617536828707140175468875062401944387135608254714877348525733217445014090665736860966482432151995063676368963780424847192652845865030238823741891503123751220516593183553392372271922373071309038653287157791902045687859479879832381639206359344423581058008789940091298692143857018423090233239381746390394316312520140785702389660455086754695115671172708595608056342753966517413778664802324153218637103934558113564069583370169008522089657246469361211709591221159654053260946541167900185871932925185848729428618161900803795371137338219298144405622977247740451970606101097849942956872896007701100234571231570729357727427979630453476476157891118566448794190511015469644027875222284449474134119202506407787596435446353416302055528864108775831681630909178077888560297500677506413679304016576250781645048910477883692539965857694769671395815487460918097194278334927672637925335828959041251776721819810859043928176760961480395206717979708672622762553417914556354158894740967240998913991761508019367384919931974586609454746309386568902417153584544272905901145198251449631317067161082805525172656814486598891442059017194524673561160944837406789950874006320079393000988156929412037741497972930126545172968161892093621223356970282400720978909378868669785525007762482112779213117021267365774715193280272773098279299690335823606486643704295836731805608415453372557483600161469033788819032984845887002860221352602223924006000860098533786750109650778192479639965137018969263169598725515252253820802759394208867891167566380499845146884562459203776659271685608600842426891673229467433830081007962200589511888831944897600682110659965202110487141030193791619821092664528531311357146492326523030057746805702317212404979545382332236587904730081173680702978149002763532826497295198574889813218872889183028793421666955880650352603921183324587928235221293197157354396625750473959577070354637035878890328522902344748177393662028177449229661009782248353582640098781066330113883933153675136359538531102615579412416073946617690541930499505029361886438710127073540240669263492560018704333543360413005576040323063378886087934317616624388629937361942860190647267312097145683737878052377072949335266792978880177583629993368745260294939211560843298628536089204793559905199726275391211131209973468557358790131091026782483156062610211812714303776491058172322626984729379635063624372265648170721346895837067498919665533960809525896705959315936364859517517679745307933125593318175040304424471536882915825923885914535986065459570645795415844294146672639445009292743204952415794610530170231682105226609329626668714782534271624575545441637398940696099815256770513656729093187443362008614177999091223040325956033952701191277756466319124163067464346173043920993969790516458739583322960106322266895556047520201292786684510441545720003026145285902150891235800434497136409161332817591555072655252577276981557600843634661813507397921329472061766917382167256847457577137837073991998142395965470200566384438215430968759695709308988393610110549079347554743467528170645765053265716185527883436454729032875902594852766977467527139542951259331565814626476069179387102506252819103107765336277915355701626714590229754013477042893230802341868222484855629701632293937972738539457219776737292403076597346843308172542801694324270380110669123070619551461070325903466158880191459888988980351716735870030647359019546134215064586255657386854616611036996632758962965641546718200201302950468846544165735875198150131598107765476885872546896529959431771995872846627698456219137142049287644744069359920002459360838828368940102584724302609410141648545135032401146406595684268770553302810743171310493216490924533569360970623559318442974072477295729135580300251954820235645161581116573110277675033083553391142560629430517062585395674180851280441707442430345884728985614867228696940554138191896383965312386110398079528190446206974651103983305878064830032715758919829147882806922656669019772050072376763783118589956027258755484629341589713680313616594415201010400646183436460336092560767998964797028009318805643882302282223650575877025743719130648501568065008965500839228300690997919708792630394101384175581543523504059413152662728906632235614893518145166871351485282920550879918194579830554014469812901016849024030197092916413182074306994397240128260946683925675912925091946521668935681141166118281704716549821351621879602435481675085478009032972173919099319197682778458364246707546242376903336327023258438189230900000418423336716531975557588957128950528237860845774720108540575926977725116597268697199914510065472720579425550764464845779446021384655485921353653220103607582722017910127712919278084834029208723457435224467610562339428458829704487779693449078147867620265841505087444203955751865182138457820741156395152064072955568712148618414535171448248665873349428636726393191281758713409170419456345394431130506743736559534565319419970096071423239456763159283323184283739354424482090684742812240652139941558728771073936248425537564588940229119775161878430878800610179933663090122992162473518876058586722364893196563875855281302561548586180244849389525971918599652833541103799297734391390898828218407431666226820002365762649445709866593442903262882148394035590102353074002011532815851703625899999501434945867001622355565598499467222282492863071206126052764641792866651455272293518130294667764313741129455187941037519203364172980701671645708223330175766913288453251162077854451039337570550195265407416913141229248737033462128066332248071153379805986524305292338331013765939824385258291045700105948261834872367764157862997379568731855651419422847062922432869763991055202750823186528957889162126650795775814845090079909202032745105467955581690137434841734538628404701057845147771973639310815561234289472963980845825008918775728683420790888093207593017614572494927899308710815436039594036393732745797524124954271406060246342106788074737305751049676848779274261310763389074721027336628905568289787628581958139849418086656168254425848908670348406097222022455126681322661185678693350426769245998195920297897792841078063710534584595894787728017227563241301963898703890036345404769212669059206624017646578898055872402399790980611972416040031642597384637561952293763642483689657116585030132264095109197487790616980483803474083527729480367432706916645482390478843894405365244029350004455458123572506398874876528955942752675703559865985655171401380122108224943119841176284059987734851070507625757655988458908775452190497621318517133752093042515725146586436231615456019396211008702829013751955886107689302608290095997634094680857657962334645463072842453705923506986196444717543434920520417322438827330242651682778580571091574310633010760548628014261193360747526866003406962031186270057789248643854381122023356213928644783502073881333434160204720628633909667071788477109620370021140332681289555725170667916875781614208244822106084771463731159748985991388927069349415679324251707281562303611991839892838584157196510415865653722121796327899512303153210751620334781493778946074294239468316857254242076192945574132908791414580392335527644214226407483261936321903773344760758989859382221788902743624537064716561858208395202484521054811992505711096225640485609357268019460777555597316813674531131009091232172525761003771963612527612256028194487373603392886616738333891647695799921052040560348848345779969845749923304943756899662376262800966732363830440077964421278224479726790424743157712503878574235660553359088894287582718235168821800075055452322588378789354352701134068783423675458176103851693657738967868172195955117933524215848404589895391535836595456079568311177387586372313411063562745843767356405803736224428263356401781443619399263598463030018082444848129456207945422723041435611741935265476872124260947784704077233313989267476751051549087113479300607676221273596394541518317628928712137079787444272760219621091167635514851421443483776251350392836930811942554816581476047737989811482670814540615250383943489585186527071917942669773870530654863205064894989425383286414265036064979580592904531612522505405936887033924837278879494187293686731631047521217626984281438125902000243856086239872627298033011427830745534978860589413136212673127319707954804153982325911600242604980567607505534375811345482843045159097345792728929627179173241807287984516320919647776247184431246189558811567851209133222210318068759874133492990895589100074410742244483240173378784123376397666436061450252887934896499728218226785062986912684358493415037704494995366722128074996712946339114943933852521433606615778326107075550332545214987265198213755789646693904180324839175854772368929879336091785691255518119684648691736014459435923824178730505892311567957709801216643214602451671903075167314923737052732616534120871285348697536255470914337321014454607513614556782387872792230478544753234213213167845500574887786035635065141083983599038110948309529660943131714112745713082889496408608051850267302085884310447844390671869147292815002696564613506358794190085587293396457121851274469092299058925635327100336082429981330013151270093823494776126044208496603283265096750293521112502458607500435881736215589278237913731065598713516589385223076626268123917763359957530448906239419240166285138878314664020276497743339439371506917704753903068958388161507963365642507648840010825010009798379224702182981853075550828116871475745016481595478763093420627229558135869233944211229232319954118137372612960324769252964979169019580973869120416496552511503059411884236669945351158018159553820366539829519015258269056793434912434022532966384839656085831518474889114435052443152256389042244330687544136894255841037914943680892337381431649494983856086210722702528885204566198350243305635336826189527327686912000206584340236081136304696068291458864439580895679770098538197465168652328732213050689905726645950903446632491735716352125749497500139411492249621228764744844800973238378065767987328830926407638929029482113139319849421087691483723209515517670231292115636868784878324911600831433766487101107906937193132333990626564358259444907881471977215730462823772277569319564651893911465434214521634635365884685314039407768918715321988491398801925550643242102193015873015395323707861898151186790161559531691784043864782219856905207435100649330888672749631646842332505533446383144762035765018449167185075809990249340958542946613186384807908801840628071775402463730634809363874484790480427094985912095366172366591418801923325322953488294545835320298920131369158349133484849448329155483662234394592022745741933045744417501896897597964295600255116240138650905199020974927456775345627944288276430605518852070857676460272487515282085851527718891987128858392312499585899008952133873335377766888469433403991574349760416395371730282912272607395791666855460119428136567461543378038671479843778146851390179681564172153603115917133484869724058877685190521145357783103861999129467183654315737887147982912511615347773794776849003588107794135996114828758406829871413348992710127787439317197974470517805308306867832405636750767885933023153955784495321237493774755910306774247979895935879410894961917682019506837305407051934048279503681386148081983104489112183703378143799052018439510160935064119350379766546021501767455618494304108041421289523826956480451898789628790068087553432687471917159297211213084195175913352302543498927488746104198753143259029416837011553813049506158931656051246340829209884543118213546603113572159711996810021251092111115900061763498108071190147454613621542797254584458483872885504912068639852137434132435721365115267272645238048842089944443594629534367250834410312342097394352763746477811461485499834654824426030741498399708144359265251604797400792189695615738522817134839094544427851585610436639951488628199721787793335453264253538896250119123602890047633693268057715572595959205180296774283124053289045072556308254708327229803882338380521739127467657875198222454004948204303446683994379349643486756507066929126017108295366034689070249138095092473315041488009590609722651291818875059695413064133823519247795836529294108867153510393911563720139517702514757398505299662364712039088826264297604070473050275358162176512484288007990200111430466019716830817427676029251300461525583951912243240784017913368390869543446006098409853652115814767399314404165255715372843817963110442952751316126606273672684283598130726966022528921855663262376917047200743980989335237619436591112634765340711683372737950732714910339954511929136716491197201913201198906765351042746868921670870472654417407996273372042664088890094188053699370183910799527437800886302427178986307810423632269800257339203491655439610084303058420595064477059975038671006853889161118824276053990991240181688726962680144929723775066239230304808146411273613816497361497747536684773189841224610056448114229650749758983219206601060775775697534267084479360461548635372323359834794588609951351545674401383355480935880602593729895740769706338212783580176857733373816052541804946274261466561045316576909860105776223490224499599774364593910267827929204593433885783162098678376787002308483199606387995122412534266279402350728740323827554401620109287162182696588119883996363082728430743908382034003235543877965609826946759278907736763838709832962356652283085029598321341350169516230451608075650511841814906738262794783538713620739339756817857754481359264636776032445397130004587361041162339814298951239429487438831693077476858122841467214890532027809343068620389703997628109542564785383362327140562489071883938082809819914342202646209781158443561485573852123287056818426471343235702110279143146658937807198224261562347519182466341810635871790601282804340706287874651880978445010037416873257844279832016472799493295807628385090181064936563863586407334476001701392366533841047717591740286585582660308020656614950767053362700654680281197778765972440535778473251141523790137387178972288248037529857080442668544081152758121185789979509415443282694643830227260094679638584116446859634339236409498532025569254595427841305491970343910319394013026322713419019531293105618452080530597445957028444185336664281414510206379416991341610276564395603268396408734487969250868981066984533384926827132546069679331940055456949656854144234749602388608726512060082046459675054386818067665713080186803753899598240886662211517487451824696664038431937235289084422638526108424413950310847078062226229752510773648000729034325627440085988102022119794416534569757185818612950581315877078311585546040790393406929535893772304047798283154484051884776755771893523543324223071836543852954880034305391012206427623850571569842582671131961833735818442005442489059955895738166325554020555905998876833799498644743161922449962443260014113925390911545746053269255021111765129939107869734972523245026545205036142980885714342950192428215275402545902354822090352242374092326338438055927560741985648380346939450155139754056047696909269922806064185440820306675281029414633171820801237085488335526724335048495807981797357286241611564349396535923896649415515399084080184593245522313293304916544283263507980813036690575181681007001957857191832268800207583891330101668764981433949780349476964306393683636104847359066045164186077910555445808931761022929076426524220605535168653371341607488047125128944493807247595638921101065844066259830747691594993153724810621368439188989594667894191203566098278769422031528740573718526007623343830822768930301933995964024865846121900391402855687330509104556671184244834712664537644562596611377765845405158769289338550575118914689658261909006798601245345104945965281359918110615090784089928122039465676246483700232579175681580473381440035739637592136390079366113565698455890355822950264224006388022666741822436619543139709663715599180619591773993407010093789937171780872056557707423368212412945901368621838133815283511361538648330166926101307962856932789297982613635450329102350728572555179532706384165237154530085798474366335486065557861406434706518205389632089730285090327453919018041822664984361571773338841463478782285454354861944588564719884276808747298844067930710983965519815217809729187278278162597487303592154280230728559821954928065457822175181931938975300544287372201941093052841862029394298729452566605585879770530523939856263245496421945751050528874315665641076309012791408538592583231858487958036873678359976184414967437494896248233278368530840596999554933923475739018042813559259362792230779273148977832267982922674530656029052900018288586573211689720873087630479943205834210581659063287448946784155546898425057296240255156457447802588746732849646775548795973853698035020043046958338229961517310895240695211170861801755598098256878578442748268238660547753272950262530545188290765983545813992092242375481922505160195178883181283597068288355327559905463063428022021384730200983081482083802359422498297836067550463814682702788042785866629560165445267345391306559082504717491875020812540322686574958656352392298153915650989041785085446822144441088086231060500559905272177689101891760118273709084897198063001548115024873911292940719433544135065951080606045112595952770374246059400621057671010292768294159241414316493680377123617704552569212038740820865489606202099405432352940437414851609247128408363140627486678620418947929417764351958946839847758876775020983826334205019398620337396831753479375631242735330229626787740541708041290344699338281665809010839138346935671488237399690160577306963483109462386236431455481267292066761647320951529068907641094034296771217645843828045046113734573820137447363185367078040906361480704543368833801078239349295261276630116254409444961867093521581123982588034723050109224988663432551160882563487304502985169189247472113286409508060879873395313241483761016982335625364852214125569288055169580019391670379495040179643411268327512256054347008288614350852654339994514311416603179499778585177055665778079896076335253267213826527208050436118139887560262533952821841507711252790243903188762402609609140181013266110003258420036978325038738234536374732314513983666124838207805451300437319821588404427332153487289225004465165902266065679438085576583379887471111987552696336786430030886757095185819642638615595606979204596078630368170750362693619501952688129382961719397823133952474467350133326860434158063392806445771395143344574356903648141103740289794744063016007256808255296673512122785635791767920748648316631874640354800711593808041603114639544520393933264495404875498702930284298375906029850092655678218853549780121861696483702306306895510929917413315171736163555345476248793491719239111119026912894493432208518565600544744181049694301070595397456295484990572199721942805070029899243333063913259653682870712574494825490010377000335734141756046899821401872712360754492139348091829421601645969381366816667079089672293602226215705385902162435893988340545296424640009942115802218518747209146658249693737265351409659264833595341602634638524890879685201332522444936552349774367609246003486206330260533220952734471370809384929293539671583344929786789804157394534217338998345078542929356120130785218108698601372077696081542057759928186719714467444590941221651657532083633476250039202731444025505837219189052626986186317304421805022105610092896781785229441004018467860771314698039848178614332311574792074056486791380422283318878869744479702297743877124875209146591370288733706559505252188458417800941043711102635325879189220188442610962846540420098866070609013014864839535404293459242828343962695244097237226549649855407645877801080352423572629702810949890109993473763634709367267437690492243786568545068769047390247341662794523318707500242610031717371822063863417780836381148413039987394749386337265090928901285467745069647137455457559669865284688210429391529356600322911148139247414080214636831274715584551142251305285673263842483487772657509507030055271524181404544901117660672351772332408629095731518466929929209265818180031127039562100319647153089519469940039662596537188325280891736530699115958396468873552064839755923307982263215503439206809077079809813617242181919708882101417208580457418839616696587649132667120577443965000189877353916127744109364986344376843199179826139765998385929156784596807142036913288059356494697030680969447429504615405529084287232934300888067196898262061128177733254301321533483268545563144509157844691290619246435539631616920026339567676330192833355149749528325105059530767951358771217250619302138624592854689818639228832289475084034061344131683739011235442183246034369140585463998112971082455718822667557731951820921725767830673183668206010704419116012232182610481147010498370266658023229114484747741919568815931436579243093856455500520710058845624220449637560908098469511864533836046431533788505815228226494693307435429962238553504079595656585804507618534684500950360670376237029801158139658603994969338866694788823262866512533383807430010044349323670405859575364386983364799328069436753452836286316860506441267019638080839666551518885939864949134538038593837334569524955014987693058099545132407129636377889902898600855534076736165636418533606974842486915169247590067268961018698286524227425159028827679794848366587140610907140420718518656807216421869448278282415274101134296434143699307393672667109028118109804851656137178920222214654397332902039650161754498104434372230771671771609860374685887363421710962360320374525711618084923982555188551828709132362162593949028576310876404821582535532004585067712328792673942362314637001284550509426337634331950704528539610786441176645631915017930185521205620254041599050279941696775302584609136921916672763895545190875776861947417725747725894117195869937850732121064624293937226633333826160123434250451761989262107509629373073644500669666821617370453734141266501127822570596996223912638577681470470243392135232194136954842344231832852920422351894697422036356561706867980944317625692725090544740770894343830410350037733534593568997508204966581539966137957876815826665472388285275810392071552472631820141150747004429534805123413436496071090156873546311306747684059466509644995091869910182796722987850764184956684088733204308860246468567811315603013490545326830821815323245391659910376461900556047569021911276478149556643173417940631572831254537388022345216491556862218466998998738941093670427760716413047049152877233601536993315880699548477351234464719235402368872717679244670902439860996745278193621238171712739679628344090505207526042160257691820507513816252964174571397859790986632172044310564478082661688892812399534866725697148509375834629310521492095675222833200156357310775468060575142149463793661605808043548535479537310217099753760747368642557585278574038909142737830210676078825805496320982908806403760232160812242241403229445172614335779459949848465579978857197906727931577393535473705138660124762713617599486804345758136611410454187533497875043979837236269751171354610865732440530373554457730426256281059107533795721928039954788599020500193607611766631892051712462852939778296654366103067834471607764142538460698413316363557539867861781641217923575385520113671654769697884488252494407586012183469564758831274998452997257481679061584418399044374934635449664086387048228623643819633081244603786251182941896284289813477716524131215552855676839228882425074101518324232025691875139559816346380458890627935299148389142780838389377691054626230348314981446536478231692253700640218391647378056479639594504211065756306794212147632023318186779783152461461107226658177896344484622353773428578756027659452887365002958846953327813332351536418733654725186034105683368491562412712264037268346216514773786575352756791794958491078525953456705188671339391482764630920609738803260919408175953559250059859355334061163800838286688619037828192202155971568422754294753739576416555902457410058156917720934271024256675869814102455458862329345721346341287127527296029168574199287047131334722023805708919830250932050093880458557569976514304130457963367664090686569404138626067952368515290859884797969323025144020417444008876141236484306052533491345280264343642359484301418452226287704300394740090630343226665847563458838949429235177935487291885198453103784561651164324769025617529172553830994491300718370441822869560675860174044045056844793552102504344326788442507215256261362850613507439897149151876552154201632785233418311985566681036449043968582723242633939482242789976540343286931824583637593332388966007423578481685427694992721325157032137437693978627537264230786037028289097223713851837191620542848645603347167849099247961436212207742976914278611054935736381407709710671352090111650868216765039649975801273274063029504585002155530189089961699462040956254877252099104284859192035845586692281930093936774634060998191169404966911274684953946662029935167804686810639088686794247489295076121114337549321102927677027452826673084170825727437269323080932888186228703602203292816200291713245556235868334619210630726774651534391598326754074566336632258507091980994716505783352299927936415972981603134495358606490606463454656686936895133346189811707171409165276943501768192220031842081042085181560837057632331488087316910649557356929185129381552087908942478056149197635675617968896368445675888621821881802016217563932254215184617828763435103820630875373396171281162049110134794983563758419469624254383629932537283499491593530232889518200392619554843033363898166036565802644621495063861984118838549664013632128259393530947811850409278613337106360967038189532938708152306433784262321223941867589490666818840016854579267981577303369052723220774655687073026231658955076296995142008030460733579972721134474934803470411714426060517773617296059615334525294967647410824223553665510164494853811268907948164269209218180222674244736938657128245972036498711274224610637146506886716236617188024915078824395284736309667338113047360763599712521183366271299333147889709563921125033081052238472003466241085653622101075434379036970546549814805800319053131684392941767505231141074197105036315413897661715260144487836083856808979147123662683993934104048838697900544789483586331536477432052733196344634841263505948883942239202890408476709227257397853728429554031502418855967796648052594716324405587963428621144399194147110730113086940416239858671051935286088215730872694927496065113325859255821025407560603802742782037230702167980295179483951777489523888380229357931053070189515656015196856756596124527822972643383824762669719403081209494893310033546709210999326823749847611711933791833390276399131567638721454957647375082338790750931815560899919183869429424178058620177878891692559698598479501278245766606281582558832321798440729044361505953400032080802118359103353724154263469134243969959876529596640889192436325347591283526394478213825819631956747003459275742546473283335190155665553973100261139387925978388081240032414102362108566694076010350071502674737729137859088106198494207962215651881958042067414781881929923120730789574555369464940468868915360430583803737237396261944585202724664759067836743083896576672822640036049417625376953355467874785468788948206688065476761911944484052700782341296454648901362987098441770575824044232009356277982919568125540073838082278045487748131254558388456263509074868047991793024029340829012828469785377015274554502894396986795150499899895722459428238830636884386390554255520181768421300621690159241391573987040973338685560646757381315153151134213337822531110614159129602128348628801467128812195413854244788998198437511045902823434027139758089849186762374506923321707054697216507239987165774983984581633007689136534516241114562935989368714408067256834962865151659678196790941274595487308901009234307136717905320696630869740312244511979360008702888652429595460298119936724804174595701331510277765652710207333967671934618898739108222330420395034202949802247792159037496495243871551782761525805871908455602010483532318818588858684578157928732717849851575550716939012832360834035006286669938244794778726708729287950957574561734763628991060371788813944231974390467083241698384113426507150941432599231225275955265374330673158907179402716196391971349977885321780954773684432064293855696244987534220225374825132860273464447301279180393874056112994355226150611524227516701935190027399317857634572203872359928887410567195513162072844241671453549019075284038172249582530890569402667722679901478177485355840367580419702378627832877680944719665180193339032525287503438525808344677825974494790964171509089702022468519609941860536099366381952353129171991344920451170536033918446461618529138226185971535067474114961789528003308504309441304330842992978698619751509344085782764990828793393515852805996448237248551043075779378582412933586754695592853783286292629229206875384419122211321755658472481096402718264944747943657987145527827179991398848095106085921351374043503464276087446724340941097522801118070804437967523800597398438771577099128355620889343190688938301213323057867091626657814444982572676501844722258087371102305372259117854533201437422447158312937977691679303819883299862782161388990608177080850188238632645335924454423361418452884664709742018580758621462084542273948507508542061808722570408955696714863987531612053076404927381562409000417785414854868194854509091742948931454077684245426418907227396502257255857678994635209961311478032432417615631972762770997573956767477541567182256708414373795811756509218367585665454837112466173290615342825538357189999640021229459021299466042004158282917010923616013460422827047960784616556394944030071404051952018881182417288746171477353645731753418884447993940192621595445456326562572125737885184223823043774535378956678103484309218147120004910864333743816268402579187604330275627772897816145796403679618111053679823497229535578169131804816056759263280321279921701179817278507595743203366692679803447278528862859610733965034005050266799530425073319638042271158489877070084678769181574508493230326151435716254870663315516014806959648717539483351638516381433485280189358674047463147359691165098119584539694763148523750198961801275441975696992336599452855385507318105874599982922183342297751783735878748562614183020824188651422594263449490936718585121475039340918330572643314200169729242300564752559050103695061611185463884902743685555181942608117510822863015301528449796573420185708897602546558220880230071911850647996476130600232817541877010667297332382859725097653425092569623309543397546749283739792264698362304847195242962828468408603383335512679505948226902711861084375565124495434850530043619735876037448208535526904503719512462370905926627975868424064037044714213934133277114198136733605856363753303254934842804007199979450458635207221024859673190608622343175298429620905831959241677934319464256599461846412306757877129026084510939056270270832786671666629161467361612928188339224692228184842265617942072747063036656914251110343197820427358595037020483834301465515570982137720686970833387984415848281918933726973263425656461545732810763276803648671773789484933689709986195911640569111804713838459226290323841059456124113215245903849582323602037721332364236274412923182039824099305814770900746060870224944564638183111182489070005591917318479271521056396470213522044399602082824310699671938335503538342149152911383595217609438980525444072037098255718452867615709648152782160375187231977015867348737983482784114125532416025824215034946558245179774853589550027042942620734901856134249951952376025505921340727768163627356176313536586985382528585216036154580523914668691145626959122541658791772151562585405934728254204640405818111990181265919415327843847196792437369415397241865415133027614155929836947467099336931784883132648286226956768888159681379124289149380783776773147865841010554399424341080148600400132908568070520005293553602500454140579999278157767842999087761168331907043642734516368448667195737873040745600263647558353288914180035887751919593220217665060684437924504176078071933123040792580194342038345622875861102232406894894379299264418726366496094723796100989690672284994179416005176623605940010752963707425704287614525901408785189895820973015025272143818729302529382230348463736110367387671271544806635812918860747401363568834425055265924914293028535629905306290560267127868604352424289878716152275492893157208738036801783429143249797830650252500947694056928473970768189281205757896753399953679019782052275573618424752786059648440659993638286118181881696805338159856726426307595683012673791044788582238458555183626189046493557570284000559796670383952674274182937230262742865268665820302739115814877909400482031964942089734871805236425774574533609942003398241775527494203914737912670368697280202955215087635453780329651705382640488799207013591192886444080669987761943368243356198943204509999957201556718826108715003352362707066461646728512595585584840275682069183850797368274653441726778025554193904927232925375448717741551625106732697054376756660007570799760325373628656864349767804359637207093289363049207740690031663814710043157999653339271295282317307023450212500439993721678497025650720456024228705477573295659771159769686363567839322880960065050517708964267285346680441406797625316220608941613575984217996605172398895788777815239437685989597752946151042981598685402491384752338424704612124732068821333164760096481864331364753996991577363756496296385769818194398775936377125398814306091104416331403648682042464616731119500501905195365636986063837854259138310206089665073075762949945028990380591778334331920833771202279566524978430257919359234526198234638417310103644013242810345539681946780999786287839449647766254945803739669736612030361348180129208749466573828223023690817180388880111159825837270891062961011381091609680113215695636460099016044615666819073339500918372323225324550445790610432445991101956950393384266720052161307007498339056720829465590283349381947524938398622628838481482305403460296537355828369768959105637514889337897171129167393993337930888341084870248216593675143747908070569539188670485194282105577096783255234124616810559077240341327086236076529540793646093119204428368377568567277672453940230181999596294797260639439198958172055136354478935377879739974536133868737801361721270828775210146992651636420273076585472863643509700050968674391825214378470196366788246805749318054040787738244913101384580199695604940185539395753899419945418337888056509117983573568670638858288265695264941458497002024110488254524619607158311430280530659947167743095768330158563779497227335379127645902567964000869999369064867633364763530901397106231408597820930188163269153593318466331885914595696883720830200181756433141680815175128537492096387368477630102847944287576548766924714035693632517180649467873760568184828845980799815376595611603519833006388269011343288105587903301347352998425475923904723981721827663114405427488162499106068711832533051767514956270597948627507832825855096481924724570001706199160437481096618205067777280172443770069364353191286242199226446668661085457379193913347667286664063259926820891443936864475965422831547999603100759162353812647651779695697288590782874251170036470393133206362894859545248134746242343933791072268960278041025797076122123318812529203912858048443965521050507563209797053342437586200740053604901941942978615688914352778366152489420344723286768979638593533782408919666968518465627829804565661043658696712196029957996954672733889722455055222256487958675771385075702856292645140519816645024394947010394085278401800750367988045471264742601302063550954488110656186836292929368915859508479206430537258464001641775896238083380933087917967210665725516634706855427220549182680051487196394561438263578939572660792221582230390421859184432942248078085890462132256649844092877316435664880069211487110144209111083593642399238055238688036210638413436238171203824009246761441995515851954210578043799961444610935654106129885712790306727687009719817817934761288868921220345015084403600611885171167370199519533607397516991978864896629759453607954543569792051654884999819662107390595261153841707309183568238992058905124556275522557592635543519035376184247552446086133952732110972636122433687842829279303575322159778736364701800199049045805412073362239308700186394487517334466866424632434970312630754719731541352692487403798824894375411974206832885867698162078423163593899838942107093674165285827472944413802264695943461825504189448333538056826987786832345293720907131093667757825528725435219836068258598972548629065855895393815010781741333640494009839935809793009148870714929175644598232285307548301551240079380222497198854076909829517475146842029656458192630572799734755510062255577523590495601647743739144616024238112820755444350356513603003488144962661391864714461350941299705897413531770494131806774897487842783299475293864920673852585870086606959103269683013999509179490156978749026031284674489245606659307415099575771607559467000153343412494442213376257212483684018543360574016190711342822766881653441614653126759757654651605477730146676767522539448935653378694024832123822208037687274464728036926074962118419738628287562004530672296868013145398873585361232156643049894748044653296160129956291817259696369375231224418670649217332283261567016812586205901686093182894276964237318205602646265010831733463554981984000605259078671297776171048106066131765375232510635871652852538531257357301156433187580762925089242037334284574232982461644666078096262344566602441750725910746331394280065200551752318853807981278865376370136590868488988558901588215590146325788282689750897456144105961073863528797881818273635873116023850891164777345219803767764269221447221751188940488733882627376700133946334787677892286236078073632374265366808763340644889436323054236336640434589174505608000474972062293477990233153046636548803395419358245899458903459040263806894874787814169878968085359737608926049602483334656285028146840404982794449574201592846495039824723697528815403370046506157058647267922078258392821931482933217733874537489598925173746404747516312688571849564468895397401100712806747601406860728510284408604662928833423387675708233281102759744405311980051787403121033632926750962477932426521664883488019305531941406377102789167585629244755017912977700190520282319280240586348555559489194694833621803772890166887121429695437460024581408751730491821101989758361456335976985146170218531966148758954989473646674467216617482337382406074722345277192619220502675969562253478951234593434892531599088216514533945347935696937431478912933436204857452816249186305902986862722994605128289295702526699331970028170949510999903197354182796609429908340309588956061725147586835306195383941579613252365022956393696039873286916913351816221085039880051065689391473669296088369234262137346568353366209305873936143054547451786772610455275431896289150959358114407533340753636784647231444370551389340719730321631898359503743602072371445563956434093021930952965173122743100424413753444939888232843266972987481985089499095951885952617901310124545653103900818373855541715565561718564541070215756471850493636816418371508514897406998236451687299063715847513847131666097885897423331715367405783876669685203052356274686252274148922515232715590976007178520367363773155024862989512892474194911392211954479151777514180227504289939419532924241979187214389127024041988873029256352266288144947917848864221546690569860899713769417207299165739362011908906566909431307632717268571919568086144480299098836248990461846959117966262951626678955943076444531395410614073045803427493716090564467692568076300000534101602584970683577109753002347134760683789558318654098705343338273774737004220313478076497863244735076164515393093959612493242344696331307978619444644857093875157304146350192158273228753014666963470556867867651484734801451792832221050923825353479871858354969283943894947276405971637028605903091735944746892555239954817548705608597800882196789120026527368248747426190937018872984069065008541173497593826288773167038076934155281994669071435591570068645070871235622784939744412000922087221412581253734148203350438167013381378100609501217128716769410387082211534881728836079923904889858001183747210540448937554483452951051644432648772934320316074730501421963712316392295403452905118319620825900702158327893476799233169344176279643926068741884341899965879837750756173027375391047817141679246859983586387238879120288676559515988815396985265723112194208843462031125950776739178774175495388285573694533063883050820127051900939145970390405546055229237420917798565030809585757996379575992456087397756357383563805809387617655633219807598336438761197718105683799570418601492630555635887087001313813675512724288232985513961996610695755436241907025777503128374030638906467549208576035526383604134483170167181356560219882736369496656899613952760867409436439593420458429910940165422255653076972098744499627207330625873012877864894300528101674753762156936379641640434129298230680763726983318102749242157628526023454858654213376578823786087217227522181251167312590100661993669081921920295364804990687262482080857702819664151124747645978751241724320367605662944385086034707678557982802683858068555540476297652701176804782983532707405085255391597272516375968528362848784874306753539605551493558437820607748500025148249071473076008364067416034726357707189810882744689636394227206192928762089864587435249155459306454228208132177897275973699386785754771169742278642912179369378862197897722739867366090249136629628304054098304790776782883019701078914604759845243095894014285624167251166476901408191711708597413511361658486184277601540661321575678760000948802741015984946881477666354898938171771300830585462002321983575553315454099131543862828969870462231356748885640366727584882357223957870892291440469322657933661287435573085211176664184385918290007361253596063043192934495130054167903342474133206309345670660306677444521727386997515318811447469584764102119526915755791982795506156148386888038971448340479367284029576575758297122270725400929652433524589577906918704991156160046078947829402969736292845694988318378104677895187660155279054514070148205290180476482347934747510125575547483161243860186279023245979413152775288287400367582583993094688278532018734645078544662158769528631485904490864016669791231057309879405437562143703047539021664381198846144396158059339390546819518299471725810492158483016857760320971662202779891580442138553742507660900757424949944796562641944072834386051225385285762933771211669187522289066880488420424407026959416592604804852895673590233950206664796141107553555133955708084517775347110324038943147433700366460472717821570794524547359181877185740573174603688766892304257245233804856843663197033827290817408428666686275075343686381619503637613693210155981490650241647186632311058450070078855048402633882291503248943293138483412386938590791120079922687516918272495540463864235578283965659619460645189153209588646170994403983858290181521801717878860060972988742316551882774998820685431019353013635070683221986235411894224266555983966180499192641257738446867921061057649734527814275111028261746803726063859412110764552036886253145300404761587391056161590952961880636438008763417509126715330005441989320969666693768883127858838737516567733941492245647178118365928939522879568436706666105242347724644825921194161771683852390107789491172212911857809266943116125952588089269778514233975360109587017049333660364964268064822939042662186305177096284544461564241447204980074725280122242746196731064779231553270376238633257844743810751569575847261066034894249772398762365894024355936862084402398824843855494761662911244639997495676403487340880588428543122518001862214519957128587913511762212903851487491122188519581532260111558820144632085668300877128772626593185059034808325808091737937533302069775570357103341714598692055314162368504906678912914793953962951593574955782572678476612901332674497001423169729381626413568047953440422702919070659567303123854380343255333032934987014361564267795328871398481004762786340940351791702776737770758764712062061416514616050195513067892660413062238532838326630222062078831940786862150534495715268785815430869771850604429751314754911411183362230198712893615059749069248071884392535001791862576252697369279628992073671078942420451489333809114857442394774628631378463582944039662677967188803900057386396475409045029523677140847981503657378223380376774174067583779260125467488821647232772966156650449157027209033817117736137938478070039800518202671820441097604237427641049545326427510098988712366453317483024109847097116524941781177902093004940898418744155908627487018329349449039839735873666295314661727076881995888658328911991152490818558353219750267114088618893110366069645613361596760998630363554264552764446737744706354686504323803864668500944624133185057898891099703764170225825751700076668566233567135142673263121189393252495914064805909404789863247582460165527380561688835551158861020922916002976682914275001556040873457383460891562930025320073811908705553150237028729658965902471166166208459556335060758793858527385450457684442777464489797510929386861610879611995350281654518362673812584598292363963915709851872704833692329496014882760563097985896184401103161892194125618219414650145621012854224002529692026211362082954546502684214337609218806344282428349910405888857808045616782701166634558245668717235204290031437457519536894258521587430138495271406213298191014487512316222077169589063470732026584764775671125687115336740844207837021358814595289148066990817119525247719551337031591965179267533279349260777222637373385121062052184885729786207355384598023792230031292360048326885548317500112754942006125471347338133770356671389409059224372885084372284852290863443843040320293265583229807945645244895606793121369967720928013490311317090006619645990544416060773472275540572676919917523362864930820061017212009314905385415567674589985279449412805559211700759755588215697111076651285720357846994703398697675391110405454653391731569553296270381946261470910662773066260791680065045126360319531759544687046624724519145821356085419180649391429420341791917193009664787531742584692226347727457810214394429870983649992977348738950577068672989128432808661935401450459169563960149810012006593761334689819914245188198939357179722701554168637197495246980115935880878522812389336025587869584685608513167064352667074684558077451566214278046269886387295029868628746228684459850130234720238166496804835574489010098417468267447995279782839553312803887122033534714131855548609611252473411690447144372970117302482139102728797751671921859560099664046662455634745930366348021831791378627940316636970605843765060944925170935766146505856949036584504076684030326468647164815261446946772282376061669706688335166450472795289006573194380087773816597985819585536747057803148035820573972648717186326646802814731224031873475920554120225916357886355891502105773547268827368701156322326669523313127553832337032746346514533258235744825368030894807101346884053447979761728473662692414976597731659309257713822760927287584240253810754679991378621327528339582818034281968772465523473827708264263048453463566260434841545684242390600972986651043900752217502061263823402659496378172807279157098043332184054448049127002281094203502976472829338807369274423718062612061219573116596784853020498013004641790119236919653600545711984086932842649178113776699005622904096984725352192630024702130343164108589909088882401877208495412361334093385523331360179723061273794807036954421078332866091767691574717989168723117405276679397708606645140617358259831720834933073751388275382057176629692143566326693464752778068589705380169153959592815679874225359612378726339140740075862070200440406675445139627189141910885742187446942599978443453975854372593793870570322425352900616602011010487026990803859084309121997068821807497621898436253892073568691997766508891731881977022722146151723783312314221815178498784704796865155568402127968625071291094292762127806954532943167011689514554868301066324604632611883923340192062165863302605904958786163292189076866145287245760941474558943416039387945743258726921995177057418345562126029935655296360261901940538928653888202267325041475045857053212033035300133578811418540556897905134604209880761581093961367241544817233902474647397330183046266059963561927471662343142111664657551553955323495447654164087269511834099721530455030425231871790042653352191752267952108332498744742838057890013340888746305098738057782417663998839777281088616488340361649279673844769415899401552365138791078842357750795255727797310967996298677778808251585994250384224528298019719928284433577407593345284466274038042743377322611064912319704895908532931486127190796712062925658454537906878644159211005027121570457904060754129350205848925163492561999246481104044138728470478153446686320094457085411476994072953365144129821701413000505222848386525885299847777216605890653610264699591265590229440340823313294197299227900475375010359141216556526186555175619285091202809571292698771700785435826742474121855050470325037984810371192096069039657275753052221269133676291707542019318061835535918600182461576061592757120590682783739001101483991230957587940037895499491997736533456696191733952915847137965183933188603779344169405591275987993443416988206698504456491963889264863305938815432856051101884179792531164029138718461820871755189775483792095846072317067800630585285165534683913978273179291078741761143205686377663735432849756360035309420890171320042726897974834828366792460141931811232265840087686830423150652633819290905935764186450561122533705556663103405450705346291711488440937236586546999219036330024835916341135846667312303471033184744710123512496425635483619498648086059369065228445636851535158753867800149690757572344668177144569455788685975782961165110061027463234871376581438144333911775462240643842975565178592737285552284062072493088836710690307263890890969751030257575804938156156292164186074928085336357102835477306897216162809679921163563625384385248391515494718671335611781641690946017632530691387201696461143671444215398635445537031691450516655442100350333964455183638461313605699147676490128961384143521983883236066305168638728104525645307900016246875092903290891031469873493730858788945385822022722972707224301958112508267624760058856331696748377103325590832243673285821053722679337706385283759603897513921001804099033613634449114007687434707890629126323010502189910333658172288042580606237113629048500443010668984902956461118400316530357061408695665444709661623516130877437100423019156121351513077425667376874893036860247461222120830869507521053736605309897051697419197347365150208809148685228307669510950497997143631204733262752417761020548495205083736419287038467525463986652151790321157925872387688646067960202410425095220271139865918881450570188586860508556798870738718820170676059501393776447772759836306936048096715815924183626165379366427977518630546032505921413852933250282316764286060571518568982597299781837904496870794669425427440870679101274252518456192444900737979515955506828060832224889870827345353503733813083169291637811294062377967281357106124140266257330594244130028174591317198383349355322362250493826231589374066217231268776576637455716426907123816658582943519099151370163277663131475176838915332195742381858801425917462810713166423741188537452384511507241341420376710825735900152993475103761411746414703645784988862990670832105032462465899169488349249748155013271830622380116513655943260385973246032542380121455296973163816389573889064846847294183400584412677280946787388977219972594420352741738222406959340928367602278549671542309208466787644701649574673928426658961551242036190174386943875468116365108986597012262479562652747531452316290496130584806012514134910529676110442161704305401756576688819800791668715442435545926752117433425665262213527581208418306986728590360623894237890775029759130740527430834528991190593402783411211434320009996111985735006443711964896654560832376051962372792296311908588372486248011231962871258068611951415672795498136535902612846439489776590098485546399287185963084498484764464268537177919022473791341135401601598834805269870721435181765588324021587826771698135147860756792562593980295963393033183004544530776536539870870352945763218716142041775581471908291823751621564976501318777455939652165726037825901186542477964615882471446624647065124585425086603873795052510894122472465113185921570405637928956327267519969174375428876146838246038973074255759400487255470392463324091466992909126243954932913906246903398400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
53000! 59535570732006693281557324854418292389046457721156947841866163355047028482034540912948765922618193615877057289995173085798248160998356032839624506259942578769104227452213782519788528847184955878969582156123142743176950281971619514703711344148839905103734731703219975135639874214829159557466949976276910886726860741062877829020761111631002592513683795111029654250074023131331825527730032980755061854362468172715194020680748073976752995288467561014339858711720387076256918246518529467752017553750774844841350879888864932717096116628386722691548215361752523986649226501513689499686310609563301550018159824045090637868389039323167860966883600448660753952061532700695295006758057245670239741039124840972465951730838580613617993464732057802377044674546674158630212181850794370531780476572018812727532179357691895421090853030693333489434554070829868842468059381891256998341748408419893263908485844301243322144734427918573316452922218348171390808537273407163088756090925329413376511034102741303801288399851968743606643670222980928273060798468274706995829596607533288672614912646119985626849137003345958307290027777655885030568051712173001425196162414788309464300291395034603390753808959004943811903031806445798779199037132030707650615702011517513718197638576288776123523182598165706777203384029075013039153308251640917070781578053200412556286285843615169173797323361190968271193318359294612884549959745783293158343155841041448879175508518502608168936491961388754040292821101133903980890672473021105978511518798898768500865419045807905851985056868280595339011292608176905393000384066204992514705509525441121656380589161151318801788801713662859090815183164865264362306614215353969994876393128715343573462468831313428159132314935804541896719284379881281613655935161235134478562069324294451817420076795525750323444828599038228644165671271402093970386847051494717583695743365741807934875047255026884605483516499708452299082014259608214046523001116979390089309820276404603460810569594979101808892633095566489497439342662722504916391497768302267951275696205083028946823512219437397776517460254521391703200256480037489093464253068009836047954743448543505810768057476713057268676040518812929121300994780687339940956325267050935914982883108699277631278369664254870616314087577394369735013428075530532638791774707304346984569885180986748576339042015706344726708339567119412477026769124968912548952565496467530709616334121505502770145213214039832305301893274141551515560801994574575887755769387102932462455540227287063975670679649528926943604702015190062609149710492637871082686706322299938853987772270813209815159675665009178327899693087880603028303667099420686895523257469799492281489377186299460385028470282605845600977174767801982618536422650171717554670595506119336092488346534300488530403292548726984505517620978496002637948365056493389555712590156074273859537873183478954156189516769936792042835787201901633993569753329590616984381419997622823563962709444255589674034886675017581918215024982331266205216315237817119367738918293307695539811550983289775541620742825423334660398645098475925079068232316112704834943108608058997099677094926919036686909653915502359868367149886347994532245592391715431862127078304558756365791452077712996539579160153318471283367475228525497635479865621544345660280995293344962481018024696522561862915459105378287731554415064297795604620894735278236399888257328303279245428978587635914856276424408717424090515362245928669881023710844901638593265430366548508434129207445757400646557743201790619810675187918623991632791452431136694666255219398926377991830126076402153915125439975925825119138868930779126720786719112706545953779344310981403975639055334346676397196781313150909981544839217036969609582118215156186639994458597087149655943474484341717230595866649268411258768316767123353928035075159143925886449276537188421962797430201954770942361230025585775898801223155541834700799491934758917757288178547318080904464348450910995269072654534810239896723987033225913671624719755743041934315781611453941215946050861468099660078368902860970249286992278579005513775574619047770486421939079276599799372872682029498211369854923259680153012639192179946451113173790297062046876509175633441826832806807105375527245624790925631887691798663174593678698698925043376632395910516128133125484394360354534050612273414917961650840754078278752155376643607060207875644577688320717573636169514775696156652569639892779213262016848599228727200637540355345647440680903656056562345273492579149047337836513364535077517730518707294888732083372155654421117405005657168545606020254980194989615060348280103385397227021030512754035475123843626717294019073326797227660054624460498850890494190269925303280989560089896648392919123985029680278160409434110863531445185868152863997911301422057484972778263081271573467325135179609013376413170348604672540426817370994856496113651641260209844329207114957224985519051618149301703674039342144649468320382319269861409603979731799473351606089617809222675629483404862967508323161708010967948495028684011978068835455947874325075423962133230679122763819066853871930424893196307810158482478164952480232715935833703805554012884330914461421448273058978048127044591651757206476917739247842584315980708667131070606399552967076157512858078825048604309480366287793969802535683944679186183224410366210665116557321807697260278091067156520825376647998561654915736393440238002868506956971585339185721753532302067048629608847818468928598161918489537058414125434428658821330590597415530221623070872705272982956529914827245518815401921341993493747703679058401186792391141114757131467294934009367375171442643801163514241053827258899818087789322540948330490308570919697894987992681681280008537977019930989267293640417019614799872023354598657431748445782276668500074379853825056270096174525347320233258987042920675059742925912999427065497880755122362658856191209656070257210370260879278371874384724743010945058887681073380519557072138076704481940327715252679012121207861807845934763897063447445868697618278922402162285213495556819334520316456568075368143590986772203842668272515732851211695423964886522426790120760360472373442179933833535472554732682903936214934266922375504230376150267875303610289346512358633750745388775756518668360982915789037830306534424007498369023016011745412636075838500302069412304806711571836690387926307414166299148958236099964919091211996889088308531917319940516821288930693263418728605598504274094798223929058675559586659439632130555028284018828623317806065932004250071686685954849450650974172866742607769284755357274812647844484573429324416292435612418386094027330086662893539281387032922270624889371023746861381509216304662993466202181598062858161194743544264534057594861326937298464792019996946907056482077508360512267916968043426659026003595652919586410333269459719262959970733328632454924673366261508549753518663609771554905263150394150598677121492470448937449100469231954699072490988712873801120238143633196250560389547992545063413671705962391905462597150220790643793157741844466234525727830639352114922942796649166995584537042320143802570325034002563195061900118976466270443298009737213568148174079272973758667108052798485396911187053735329908106002542581798675504232467354190689252861689543050531842425761798973078601484732800769628121374195248362651682729687511633437588041502507113736258370283722284263908010003948109393475900604986924815520825694483153192966250220107915319778682643483335181938139406651962920521298461667918383998607603630515213711473474036592562096357779026025090773155893222720141038145801987953157823599414414360349469337981747260128938389837838360179544245849718436544113234639351127292305545116608625699911960559650596154215942455663989692727877840776082899090400953344704506779564023738438725631205201611906864238706269277867224817092914264793974471627256723913447449815026371262462129030586986404061165852326051825459982891527864141832706504585002768857945749934692259306004968605175745681337093987594201575569380768041324123710363127134643218931758140955786962457237147834404425659502132692294594983173996705972027676441477782684724853188874391400984943465511422075534899747894795964019421683933056326993838165469197717505998158664617952872946854758679941819864290220500638111560653834153281229254017109259755722571194450080334486541458987469768555065079867446951623482514746399290248475954076204014741472627196688183068745076282382008084611247931377437145364440637467423864052362416936047371566711824702778373150412214018430116577998826003235031237669677667535479072821543532518202905133955893170546691475850025973644463083398318693529189044936025149621328077982382036798172953776942017810005387498999477020355790234694476937565596141623749701263819829117080123509841677797908971160562785931671850075736811516198353955567643461880380999270605514326069340510756730285991527859157842258581350303903398816230159960999454515524622693803854574816942463712678209324654726978706108434329196911881005111552785557924576205774497887856849893445484869143075785351380925807112957180994607957036091605151179916494893675213215166697856532821221569752218138285154882997254855473832685553165446199956278279307124254941911808402536993480807421258036770950459264802524906686281995797773278385741084406476821910475118834052231488849258992878232527802547847513692408027320129424291253518249713855604243717138001385722990952642356203559294932686428364205297011787891630709637617661058741479690913116436480588552083933837062892344904292018097092835516234506792289418556880328651679925305832024597427012012850191431769229489344057284276348075077745039241170138699282830238027685862769495306830572381536828680537328433092610093604143905792950625465014002595736903073037490801093035351367143241417309145978270851553952014448124808452899985270498738811642117231172593186415899199465714778472449666622179224732763253048880837264568145196012778648143047218831429287793589517755889079949300298532998399277003729212991180113753193320109184584894013551961800903191838222211515974989603902823847126857905984042801358859515516714269809419580124477613359937742340722119250292229608694945519801446439157496196785119937063650836173213539500526695436259234874908162727212225854654500691612904479516700143724242430377253931947865953178600316431145505308581422756278480864322662971278354663920156674697670468890444272453424946353598712419717598987454466482372688263094093883341610333649512750123814403058873233616699798538045508546302204919050247154749220349473185384625612322879240970618669701997703190526318006857479349081562924717854854363878389308589739930047026363103975810284907925776321848649630714225836716130257215315136666148727372090048609035840378312295004090104936664106332827334597617426848970992234849956020242872815269853656396301390712215802247417043713427462050382194229636159693261391079608739551583028392552116699771273019857144560533699807428226343569349915260155971087307287265735904064985326103049806053995248279026122346488679338753389938336060584294569227579942672451868118819632263665037844095743329215517389948751058637264698992936564863670831356066532634052515273000870859782734175303168117160948550300828003642765546492144242476723793199332581757195548930694512736134523677041045687909358969161309511570349707004842519741516484782020256445683555790207466450631933086650567259962469596313393525540856383022550427573677416764169800797067487366873726134269678265816335527251309749938987021734749660312427435458993238980188665730189810673276063302328062676924652274541036574845595917927635818663482469842161492583263490402531898400695101983117706718851211933371907564624455453898554854775060755720297839616020080569691995815799040374837147000933207107391925375337845296796432057368616835912327569376067725385186924305396730872624878260271383530957966308384032428744145623993674015936056661301686080101492390946263872183647775213080011296992319795330130483828564213894881066085996711835568846814056745380921447458353809458021856415345029804144523114862056375375154893773726122649289012848697568385251212533644770916568806054113689134270960906114593338894573036479445921885830022111545784698778286872745826385903020862962123832073990980989127334558969150866751619913311549227201217193161784018362639176741030740551256939424687847349336377995924547754762209752648914151424519831412705561025312820096762152624899372635584470881576592135916106245853718433763436743185985885444565542635128433056834380814124574124355794362804446563269474825539463730953146523709105044457598585459302484639086657432081261678372892709623899460044433458040457173645329770163918249839064219535238627571229168884900198269880753762688791427870361827320714717836765380616533059302938237729140883584084799974200395057018343402806572606081723559820772531447526840685460142044946777152321129179023520196943066894315101753718477731087281095695460787933831371634841988604374553088330192443313349766576924521580763877736182361545576312907377239902144305932757082073613934141483067292866914421533772983471662841138630485516273074097399070230167246955055640162098487550276123142877799671015391365602784032284934567481457376258009104891271783918490405207327754094689511826420387943289866325781179292045907691940609767744509320517635915832401245419977881931607255299655481677591414065909139355241193971299475786595266872295137262816102360947502853625133134345628541391966514315604442242464394649563068429452570147414912670094928577414642041071250572513092585619745469685495751199049397324881622981111447237687960487321452444871679662429923110464892567579688256393042801214844942328569903229474404758421588954591099609409350529098426105129391657901145022533940811962397723383280154592293035813911219808942261962738209395495324298610392809744332876135008718902221499467615766930462084075724049427481004959323857513894441901319735092249664168748802322528545412336923650253546016121632318083114949991281027891375578918540161606664715930849037788962613447539124539988893287150911741676924643571519880925189034384313803304377433132297067051602738633613698034754957768375000236217769477900808083248382475882085703700030738668828246201486354470434041244515733796456744215157266952510332452488917012229936207792097006816436776526065189085537663217035277173440265319574688993600676362142568933549444407831962437606302187577470833980175084093869769388210075593658053035297768726785309443407811558127515372004590499889285729332978954213375774822920095822195891975217550796436950417351158565597835126311933978347220230583929616343625658541181314672876623688292463402189784152601428817166774495956711389416499037383021011449135761830347650465541907979565147604110962189687635604350619158282591283413135766373363725835099243892912886567536126273560187751076622430830469488225504778246060211529913734497915114141739594689438533626223080778717082509306294696465357485139056976521320952440601801649805797630603352514408691534560105000094329490179197111918937456898681094572483661548546634954966151262096815855376792568584910397336294807120235367605873237854479900187241076956105957392400757551798080574075967477348659575299638381953860529852643040556705573721646042648988238183311555515889097575837187732164972247980276083155122207204602725692925932833188535627723504587793979852910592626677358898025220955513362086628073643336913254071741077059294572104986659009126030334955711321788536191943674802723675098566661769174568163419228725495007594165537946690280554313324043459992180304136757888240400914417617216604172023975963642070105527589450748769305760607859519308944133368312184014099880589717632655641821807537998985386006840857428841016131556627920730052842375024799292058406742298407793216292312048364532134635000118466849629286454152599696773350828591469762945240525997872786120683010053968940777351752239071432917404774585002139670872771213348924335729012848899287407185624866885817112584952211052779598106425468160632712399966203749508559111630842569724829957332065388487293242635593427765399226196169574419307274755732911669346129105440523119838536742704586691624427470618398589586833178488791217456922390963403381487190600318851288135324343920527895069338749638372797413953837369270579818121833502003112925734635958134154872969752111603581272541822304191720147346882214617155272748611951924817493372828398995518436360790701123284355526587289379048070190884985265460854085257497903333601834209598225318057180000359101288042614343069892570425369673871142483824064586102657357627666405245263649981281624981807631129012758060937644234406104145948970822838953004616861695812159816007825592108238485639342314379130810372655530333146827499081592253516055909405816351724315834697635595291647869524664316996411183560971722269756524568117663360105066400432482218951352563422232241236894120920455729669786630835136956306654710550931711413763582644588582733292760719098690150771453942315490924426240568501122139549831136733227892391367358212497042211207749957904329641298471697875902085968636493067965535575362112566639880933859375517871287794010009540704762432308690813841802671752298741092718003830741612054357676924112073387734921906243844315012225675765109156388346988388249915763024558430430901843270595548054219077645230516645539540289060923265921069808357057991128227502721362282750139274506309191183099404737683021786622912522183797409494721564616094987297648596522718049359589986995174410409629771736965063170353349202106671485635041247635733244087000507942152929076250067503593239523221319266479500137838904017467551011871886432366890674475936996791844589121796096391932434567617502666570653938787797236027757036976207253484698648546940924385241945588993746661623024740460179994276641547254470656925842452310346396130415611926390416323194288686124945428047653151207662679729100961138631981356629680301097061891317879990569409657598958735763151144617993070462865030315147644109954161030487486642236671599708944517774589343865976822390908847160469887042293310006258652125251072804759186386986419644235224295213782937051600202649246543559968143628685255912109364492802613594453222953939495916270063017764182997958525981205609385048972303760482803066180154216862330225755837256457858294587334529587325190219638767525475560589785925164943884303650700571208703201990528425197913341008749215559802807407106551672863667241714875566012215417609109943981205864320775789207989332922586758136448201537579457105109881389700696750195686859696536809724388919141822190616534449334657280779472346818454689803230429028543781472917840665792077145831426748410918543630556486171910796850873723633805384130695774258876695925298698768239995592174521559206110552091022436371813960438244667608460353771719602760503486123726524546713961860470690259542226311107177784771778893641262901460974438384530823384373572872483884765670761735777500732285087287606097623899107462677038777148072500911539158637013447879658123861974566801965008483152895365386264437314925510949339274881411636439992699404003168722310017737413514788904023411812113168828145769103114713827482692322562781414692784060073020252984679505843731574354892082930445801282001965248208330484050413148135193636840507950105037616181580794586499998829334212596288433041449004191418059340994115164003597783130149921346802025133645548774787350229989081434164832468806620912017004285212269890518943582859144529336974971907229540060312620784126870876780477643419275212758246519222612560854730794118315050824164572392478315535659878738476410353156452287552309166390471895741808525868333295447628496952043030364356356424037478792696421010292582929499539572944765749264131438598389784624711876093124107053291180666899767945999460283160488974743397861694273831699985603388394813482814527366043465464029195574110613761468403280944003474521296385140432407313947958898110600379722958178962021277145937122358695618116720656901041000154277579458632106824174725969572914316293106521153636636993881092255996287018365263334455807257209924681591820475654830589863424938404130042488918815924297988795954249934753772610833862061735731422591971047525235270605578218949494873614839473343082725791410264202065234265717036169289313187199210759015435743950574403750255512383380562193113637224229857715280966536838226071439848714049530680323049147350955388715942306094380049694931316522111594838582691801407302267512069353835621558064455646762975467459038240621073471661171138335092150788404580541663612233619698470587934782014040689304968051560270376654892973363784986826013666480058370284451579280425375220841365560177352456063114509793855288227265044948512669103831398628603329768584239144463472743207472301927078879563365572049628356961145113387459130142530887513489618313331890503237623808641087890903849385764163039505292414742949396086475408059070992539825422375905125459394421058285036697284779141960978461092408286311489102546131217231585770838727080603804278019372657218579337720331330445729857076614277888402890467567398646109543957439584500602624219530126575311105897004785038646814492246275137291435371216456590942011639849515028000296324323574111586842723522315840865445798091133832944936536027998684721095482694372802101971737458003663123627678057978451934056675474825659273354288296213477465139620260156963256829854861448076107923291180438414455854880735080465082833850176116403063557660900025266658731686601133469642910784057915809976306756146154895079455486779999263251638641611153662183140063385650952249772995508019035283497434982088882175722347534359297455625466808813447600374160228337754753454737008864085078201928285322028186825334202380775580374165715757751750518418431590905081238083424934314782289424253503715699288179304235554199849585515448286737774748380793847245337728013117612694701524897470918737710574854751173539141785957723480429314009104179344043266639468168268472635057386095684068390310724631963473850203335199714036763947453302898653611824552855369461378442383286065840032674762150646022207692418640185994621213101969307900203067488584489961495339552897939486787796149383874533384735235763252107621046409951077549444364275873739540160966188212284383231551334433580915862301288089155024775123973351013617677345418961632567845009996624500915670301486200467918936910100899706518016872306677050253479339480892276431187420483864821942429201431999780812191848385804278768116020362336821635627506122641342886556598178242248351339760720241861138266937730323974851438291168701291975582731442900090344454681464715173744150634213573653849296620829884015459461865551589985338159228781866220604149420796770596873020997973780652686860051705616594207777374090163838092442778385653142804457725535667780680057876150495048487105482357586297865508158714632193714677139927704299309694143542570978959671353900703791257154293683351222834337896439270911585532718578290661424830451088492999076945336796527731942204773381263660197151306639739556026880784675937295104632826394870699467800232630728617544709864983272256748276282562831155712635422360770622052607650195298948940908110010123415453597398850072967908446319058102600038071267149798365201998758179902770602374543633370548454327340568525867149904781912508326083783048824564705257149336177299262882493775088628695258798098568766042292624366433765763998086082355632099297622015927656898869426018479843225817205664511751531846573387424069304521825111359886238329550109090137720065198317753230726664029035114745132690111880861742645577645031348880217149412706443986971510795745125176390034248228926410425881087008169095363973598043937615778902837113145195998510018116856849794384337041107059352608829750546542133120035918104677350235743510666834486650784729834072296988343847994680501935214988598900087454426914576481119076025071162077478272678002896368688654576336205181778075157277919879763481032165887705916174952830479302608013135562156329622388387466264469452289632750791915141737078796447200764509597577695640078185635587528245446136761623687039822887748146257482850450782367731005852790304046326345708241312077021420159295602398601079417804842201844619161218714516014009159486312255526496873068513685324256849799423698982798022747020681889333961375398455386323904975368809088331397589122876555284537860354578344672994639738254944603464806614139103318780401613156786769983763371595744140437802681919292897240901782568202488663231282580561232624398095285436809909722045512132510049094420333367793202022597637255833380118502609372275333348784364877307755669638006436510882944327742418623367375507247851563465607502253482354947440316217694925330780052270013786192379102107889901556588875808852644608421032832379819106841006513798912232480978685386044169722307101126042682345361399678280767267664744576851114815173212211133415926873184383359301876680568944877641418409897184162268329532310983919708995966181413565761304307448511326818504423295081160863046668920218920916938382926214106451072386864653705604307300276118680464976117262296596682768961994020790843687928672809606101837168325331686727527219342825725378385872037516115111347740293730820649169664219735632775791768326101413742568752722952619069565740034139639994905968537894736406064749768297953729698180982296684536348287140757221950256975079054970324900746699528862734591386153195783961320714855744872362885526055548976727629830343104226165036483128792214371704247696446902529877548301876298379337655616691896083233167469241407611914238597049231637490479534950436989916208782346735239261991019385539241802206766320942223540111038900223678119433157772881520751382237874317201062341011146501045314422200079949689897919198110765481568866505955703671380778783123070663271773395279093951398789061819628902747230529347004213730979078529704168661177005979665616129008435369922106521388458285569600081764164896572029001475665040357714112295621217240335797271704202051393702592001003738457442020947627556393771144409284852012895577062257033475213845140771029222286157971111627752831694473012345511009397135271040236994528751295352437617778548496474515867172022936345007425112678271522350751289855064530016839771310674803937144065756208102035985352071561376602229133017444009795465277899615964929030851012914997220187399707317840501187178627158901901454515252494340051415819701631824090144755051238539751610478132173755383890492712414376459882930596371427125746467690672578397405725389363170177009014077022746711596633760533170227402817786338597326357980805017328489267902801627386476110799330897909356808093035136887885771012004768987256475528422540370105910260347554598013014883195567680500996987331665227647651599796596721944851104730299344167052129137139911452056647648267455255378693181484961579482133228444491574959886427200430705851514251329079547556539371409948087291773230571003038192355207431834428581857919612403005346410647711400156133602464915046334654500573098841830393130671741545994452892300088665738332690461728710831819434487140426344473589425130495289424247911062041254311671811291162416797692646387594021997061755817914307045959702735136364335375797239923841972862158173579242918446789487665934564327418736092365758019891715904631121295508208095075702807163208437459167541479940368377569551044176670700259606172232182718960804930871857732509327318955291703172123814204541353272088950464264232304580199596427154832701285131642005725297284787994549201304654078980382003512664517178604673951716894529437885585968476661172511709960050598729845386440219633355189450263011258247728228306452039800508265985116399739836244386472282880542122432783567964851230400260883226550159241904696584364577587819849407384252646444787664507403172885145114892423844336445707855307454734956348294879561891408818272759651360049319495420379570246972076662108712588057017216765617472189861029724878591556482295129353683253755540151745200404350763364008731441718512570505230858721480509954821026650281734607197286699733981851615373284434312362882272710134351669224520488352198350064559887467369238312222908811564833071581175152351485931634426404549471979018547357735532155147775541787715034563450795892571061299150413316847202670287824202564009656699981574157755394785017630964857483069620426091455193842340284406177557890103342455887982051292410221699183718399087283471004620195714834134912810095456338895512205539205423639477914616630173234269527713924332077195502236192065215716670747674379690328468528053986165350287158846873183955188159574509519977386302774296114115047032103189872416603827870882593388981550223649662484619227482010507129006543047384845308876811847605754176820772281603629732951345681084769184544065871405656528087841550840673156934132905842360869462209233517318844362934115074212911452696214194307526565141855006763615035998757356813538421266869274081416789787258378783744756756663472985475021471447717347316043626476952958441864140961816770923656242500787067957308338579457505815622989056801590791199040881209627982649889199103139402956939148337563062577400847461977984323542552237071005777326372714775831190219578065236884710028181060714035063426495037441142189868264067649883288114002809448605882488689253934001740623299468265278916820277835426846391863088329527175485139924886503664991118482929465921453458282891375371870331222290352870821063969144719483010801246699090487136316259521308539305929833011215848684652244677211060539980689953484501759055269911737791651516742066344943606614523140169611317318746851871001663829479748095224411351016444883983136724727583722929466824772482315615190333691676107375492361036438865938290044194454640388407435431894743182993457738829667565283407962080054678325080853941077395872904759204137964342401773582878104097918454040881357918114155501387153169949280960151595593145744193584287559142741306834752101175865794664274608036225739988597682047716793044767005556295239431459174872406382812980340628728884334669943140625652700214563302706998078779531853919956237537032192662965233671715021869805377719035706951889785001556763130104322434382099352703151693824565456490399511016615647904786530300912288934954177789602359954503767339197201034969069802385139881482240355604361861659109593323537079494564955371289130759028902281567914032950848697798253351837076929970905989641416906827018073281043531420201944496728745969389121554374699725628133296413326421321732338675569325494816709108334594408526801685968178814744738989148143283889018904581451466737481488775117264175251406856714227665967612647550807042069761629541512943313860488190804487086345841361423463212861642210006809781368680768665346012710131430863429739297712054798982239386499327328104358723730565432401997721717367999597641737263730435790397207175174449026535781996468094236271929081345154045652828017225083995454925857239931622055129441105626650044095044995512801703464191951060273368092617075437508953743615980281863060571431432965495110899206621114479803075734981192515878201079686434688254403992526313814793050455003285775588061230139490235718443450964006273920244044199368404403361457013014189214616832288338762903994501147743760581683217739164848494693456885762751975959209269706276155236197802118904105619307929798816371017310455819536304922634854129044269535370486119396956020402876462597691662499811373310225232618665659340752121852999249383808687113956537725018538252906775739199264456424552295247973151579682301260278515278677731144727848293052650716786406080131443726911674661682550233862909915281158432408661545721211350039984286090107623880072476258997491199388989455458100460984991782947091952149913137966887167491667933448882069497650642696456525968743661275284484520213669462146981621570874276760571172739828848092262380929499210124255976768954500935514772696861993244190763144358605708120317491023551315302645860646851323199062923190190491629402377823036401467354563030267520579005214935116358860270104346142807444758151201638824989463959844953233006109275673130334964093714123201024641810039701802766900802583680763976179178119267076536932450441721829259634636903569098685244231614062277262335923073156833720846940115203603436020717669821824745021436362789918050771626160242529679983327850582939799128520209741869148091946430554733880662591408539634125579918028929941948313376678856529627781258220099721314379086630483116066992346890340398092449616172139208005203252434723140032913571859053862838837827718067483706807017327743682217684284486931114495001336182989344818248200873615887857795769664928054812561749044372402103322652671912982063122688194479672174864350758596251454699748070964403097092243724725203167473564882648980580736069759066330731703229750686028158038352025660102655985146393850486791637137774525052917442480289805313431032438724218233054958652487209179655591467529412588691003805896075815415208809082935448630732949313866625098429099084577232252215419587902550336280279612568046939582623333053623428684748629950765860785681664420301901005006003543561806129257684170264385842078384736322452067462473363416845617551806846995949854195633368047612886686571664114709250474169774557017866055517925621174793530612646619108685621285281973717786097140965891480551044157592114208844158525558375919675079513426517649716477847984482900663199269826900368648660409611573621558465099582334530216922346777015507311010765620391572410275537725694681308946740748069345645541923462821128575528639996640037449830723330671095681572124063242985690814957524741971850850218740756584713902767520518844341760979843484286641603807367760086129257597787996888689187936552516599964617689140511467300018135978215699517147749031364515806794182880934067064087673492424618134693275053382251662032530414567865913360318084418296081022201647618032020520612365364228413492645717765215845817198693179124418896532670982766071040444992528359546956882258213958146078539374865880128179089400091483112569445250169187299351530920821525843993055647244527086890369291437635550193656494790285456568811250053639163208305087837332910899875314189622325590141226090399502480371112773495007799595683693077662407838353659231494947947952165321115277808500829477392278836542124929832753256921049615224920748258874584069744946945633596937946516267705963348192119626258468775063090511291743182011821872249002680297702491072083999574832855495513884815850518495088276661171712670651439585940167797664521217020815726901178248189354959745831409673734718498613292183619057384714809967306985174887966713073836723573373372972025693663469141946244183456789939102363410866307529876525066430657952194491276036122033878100028264100556732504641790275163463626613162589871459768916160445727474928521895065465191399352786034240449654139362124806579693561478894848193552713897435474895830926239156421554433374949620454191728979010514069304540821599512363047175981547773998304606953301391928182724039685926496915324782651271603900288963484188676736542831284174080139096842263090583149046417645533187475556527044927196991109539197924618169772854509793579037323388124938775779223378622350198035417591393779390149951332497811205578544472732089925505529569450886197187123344575433590453900212477113476162533113206425980826567644639604027764706699043633825973334048709121953703411802008058880772256535258757329753523485094480707101179730511929207038945761519703762845181001282681407309945429504642744830623634574598699595160218468189725963700321652861383216984655648013760703818154929581006955781586837491945764883921514014797640436209105490605634995232362077738045136258146088674231985680906315443702569494323394337624752560164778459712158926440005165438631911062429502659761702445605735225330048176130283129328087136257861873525751606292412919864990236324091530695606634969172284307726676072134911717530506233081578969293095333813295517923367443031430504227225803194168594605319942265127441128056892097573497420364930776972684291826109966672504253270357868100192130710864207539860703336963634493938557610327151676062031445736102239879506339520378304836066184855961380456532617450102321495913076497803077365042854716758534116772082165473527986208304111952948740344284456257271664303872722801322179450307727104553006870508440734535199838417508970719729462619134615909564191098754496366877813631514406850101197708457157556465025379175286239617606309233575082067558121795469116106260591553815028016030232185134707876220641525742083842380452005930725410071902825716875896721603184638123290864021876041965602366383833362665349895763896694420353274482750202936602364795843966069070414652089869645470372096115187187877041655833261619487439208746583464645625985267442203124679211096764404029321151643908954960337993799467967232759813579399084632439884759025134033344756319281940179289054859719734650446159388889182861635004616259892312572116328155389551419665856209271149453650525706003706308606685963687808386753260588727343107393678364103078210845805124597613904810437694342682123463259802556727834041260719120704086642813640466842597579477621706593892144019772906800649181355906468966155455985487380788847413252307755435971003561790031769284759047028809636999799012773897606673707767760013614244810682716917455829645056638045911716711564649330876241072860733276859662026189508925961357607883804545604682240749604933230311054501125311140470835519990716230409197746636385295392116603998343640917928906981380363183974571973004639137815825492251952510405280459486436799010286879261974610664255128201392172670286950931046350630409655010187409358024749308570238120823300944567892340548188056884304420592953116924385466009615913157116013626393348339760732387106996950706621331081764082675032149738006191835630477628830796963804045261103616177806572378702850572141139720247081936361710568659252476503545011366513681535252575484183125078284264816717635424079324033165380042171924003514840266932869863607643519509971325681823944488509263967181091270993529039760886590638974067585636561947739550922069993552115024280229065524069010466308874139785613009007411622381754393123194999207190106914943000264800557615514533525264746760714305161730214814270054021158870887474174555347339975323432432091816464456928609917209414973144706116733249546646520241486456292459407930131086937614811468279519052780446874596091371320393884092872048895665238640928910771216623311233718383691246233254909652444062545856236929126313007889909949769824195860605824705338056280143905932357652479561294273771356602225408181630136280675092408901997238750839353747347444473703668330425573180251138071326122419361923193971653372338097421656607721590976549461520138237188690098525648011824197716612834044630170325144987323552039152200170473052170497915923824053972159213051810421419532139823706048472580929172903499103919693421312570678308373777969326173177698400014846882568971134665651651404998304644308382689284646093695216265289412054395320567186651834974448516392002048461250960309331892819241339232426072914969740400718621490837411649225291498231152593030533400867421972033493553521279767071696686290195196442887517093857832089768739354041804395199831002545236813466749650486921620852489218449268256661229701911527097430924147955674571433764947060555844577529788623086627950028421771396790649245954733037909569989498752645154805920779342153427927598188340168225616413186225110757616025214416477403952889607501091761434273653149930507810824297796509489860966563999158022098233030185958307687227407912191498030364567805427369641240560736927931970233551210387909075349243157825104212715720515908680596481545198757255009071784282280990851718395114296831925710299123849901395162207033576828212201137171408201040189490094446922704097954195685743365679321399674550289544433953398852520557849551160449019563485568159850073620707208375591857709695128137505954048628639654116871763075095583042969684063129026264627238903333900636761067034523119694630519306955831364681364551220403773467183032016595236109547803311781855891022323764354227775084974106652901251242950616057443764557036780384323430907623877605299331455269499975195306042707303106535238671646805943462209611517094549753172702947582505877516183285139405277553122654925753955851228991991738676510741633987869999810471037882568318407646890127172641172289894281730444672294908599913319373881894107064913856672715184527497083543988689129716845834692642859221662918684819702437166222028504293289112363458377287699128695817043202647377795299930697110116744012815423491718321212333738292233906271669332867286041209995192804148612217962983526773996949966523947281036461340017609127507990287301340453985644339570997268046480925146127805130304728655423362219391491916013736078321612963690564873123900634587589071155169633237277771275431850160285227130240249137730535634787164675452464732681080737570092639318333399389918482252600380114125318432038562821651261936066769996863573178366207820232929992773530668806522600275275331127402824762170437933176822339003771745638790937228041077803840320079648137081686092032390308278469452772321754938028361555486154003876511174696261402103142200190627935490760525879668593440799039348502849313554403230258075418121157036610532198775809240866937695782310848385082179725860538808367759004135391592503843421655219704002153395095551537708056240127124901737018818518630687020602787269246891506862029444959551715846253195113220930871148223087957423946651464386489719214501159211584762046519662413715015045503212834264304980114235548141351877354313201269015053887865368097224772522109819036103298599963156973687456748144097578920534827459024163760351929678580840525873972830043180134233317189961839417422456719152776958318261275048197624738326048718459870099022326485196122215736392015248606846919135506795696255643625539237781588333676641333466891678529311278428792793604121469680335631835934038104668858206883176567117088189381662080366447959156655383997043975545417114373172167466092421647421356609101864366909452602560188370904442980511125921776770782037475425940393210866380039357831113763032230363827404735519821958384998357423423872600752320014911023886528571377724969661539687855231372909216212693119244406926771216009275155033518927123534923834045510565341860449535828988945624547128496584666189013087540531515063180188474362405179961109597847440342168218630824225365951073265613781323102923501597439539675647407802404482098087445919747594853838113454808029255178751259963474353948113336281874006890367361308068056581035453238730697740053557075555891811130010101597008612042160465709608814002613896593652109904681882544501388797974689810573316165562115663918878934286775894312156932798529895983793965566220138954324437201665004511176279541628328650092033430573996387284445280471233180711710071404553658529391212209797026987295476686595956173287226629471401670159897550099894673373561556132627129246821039086125576816354369639600023343888494868471141054342675776458504717411629579507659486042475190677219818591068293135999769442559963073190323879466465187069983265475171936031310898923697443511958011427409134185458751530546848293674390787050508140372135566598758453583961462886575888109617801594290723497671575760642175070323436268169362267674261435958702454240844509800134128061346598777371843612841613494663258800062786455676004038735548276689404684358339980645530257672346851710147891834142972607746180761288495383447655088734480124703514490536442936956151435061409095210763217056593295408351692353598182742003276868943194743216189694604627585637248670216071426014083477235898817565956954430721237642009693918409039733668530761175586165573515257551563366353309672875087918295514426741926206675678126360890935019928024022518436229031253691820403807674447763174094426654722323300102906085147452610181162356858570563761236760916251422748768573481026203309191669164795440305813913256292105525525672565162476215523330467038473286263943935519571272670153447886088800560791430003738635361377518553170315411957150105397780368264559705727966636680878011645372038660622364868606072563707138143299894850770452640170794566869286418434380671697657394158980625561929482093806376087127183630544726730653098708329425468979596781144602674557746556313967997467856769433118848147061352848110098914753432348799951116248384816528483194102564418229073731745384536760450550400167654050269384814297647426663210318567786267447509218892836511925074293840529366592719984668323138487114377910808008355154806202075464086040310520547582610326109471884948802015042360984830662621795559316737355813114073317196239465186803562797065220862467637382027019232185110198226335414593270275708357701269217118990047394529343256227363963286229777628100784010214773615855847396835125032782617757301412209163752864515894886691970851223926113429176482678745273918437921574715968636553600855149091876181614885073024098997836827884795400295640782907062814303061843373773923491539556479049251711651924882969363676664868301636453279509564665626942727792013247255690118912284598660902207477628792991646661930109619738787399986322728262792175893107385990152888895161440259772404395140706758560130688059193747305939998341767826903570952350854541915978209643731391243978071204382080605137515934811584503680769443588471130880246722794647627158058051615166216381261965862290037038544597410606265131230740073870926096293663177938167713827500792606072317674463011457650001668783757835533017959803204464855157724621881050477483023947811224709761268111931774755389089824069998917116188319471316277877935990754370269225842168805420437868397522713722753228153732507325042513784263749876295426491227397109067002949224269383111415591207048972903759864377608727891960067387176670833772789529901503223264488423993289926960751568451293032938422166785714961594913168200090588094093304209815206629576203650587343079118390732536827633938163645479012926597514441090870446434359428601861445596841515075588324990360606460421763928926513848940992853044695572146445195072489286689597187274585757906638830261040340206810910052435633348659428075704320026624607889305043741648917859008214235458422912573827832613080795708576286422278571217121736521788846414701522107807401568431163257393438868453158440291818094337034935488765614923656634309753417145064923611882727538417649520006213534272026538851308275706154196202896581031689645096554117532964877820397721700959805662693843077941987604915381331758548491822521521875860818639733135656844374771299840446224653662606328149114450710798018557979368915987004364089838240349918181205078696778635653048979670166197002977545191277543635987812496981621599812185087165619752072018467997061836033221670291986400177936484190143506267266202949649566829815404166742982818838593345112452594251427443134707059081673788468721484449380076156570056847074277133410555725215208517124176131563436967077406687954078500097139235553429870325602297815759763838641023664503113350426925024128305502597767321713270393632546313493226442659629496222335525780142405471192452170674031668557016451558841678625173157689223694111742472636260350983582445866769741780149341194495053727479500144889562918705583447837874630708813271158530541953550229315773424305012453291380629118979684869122140712012401734128007838369063425088027573076350991433905789412338720186791801453584081445213168013283989529853017227546814147436897220198555770827083081623044108707599014762993303626374953088166803710160374330263020063062171731580406765480193829669053171861028632059285797222931192992920002050790951046625188147974474486782455280306188677515009581483995259755044400615575078883361831258141115833278673661548130461346412862567713092686462568735714704721601947745196203807391307005271450087099893489882189343303824160207738796101634559146802672935320290607464398486224406067888490969802299892542350278954347575746708709667430884406160708481127542527588535127208509160670051333915061210830641348912789884458914746350004071577184013859537428686682873025269528252721426040047894571863819555181821638237927507478360271029254282860874468857875549440136735731593168419447726825803662698068662221595072859873791463134612911861598527304234271890186537471788235002490888558680131505345834477067844636025550905586583791710105126559443837246293560361700834571325730625063644446456800782224192394194626722007555085621512951929800308893690039914812739635809382830649235212120976122603927690654414067920153254120768106800337353747394553459984104885071634252045534899435494271275683258103135931359798219721147979573547945529111365708176306560648804318020369020790249376747001957268752025383082220351033354068224329304762929739811676720685219580343088460459784965337129452059018923946036908833997360982928721750446244024290244109192034784860037088623398022403053075081626467288794562591463156346466557099435438480371645521719163605709963413974443481625353666795656830459385180327246070856728598119401449801408431723125478236582475633154631987102792458938651759191313657183222300402297241934782602418300435679229131193794891367641104565356418797129924325132853418777625199024510897706675634661208505153746920079179082932073096517488609102011025128467044685465610583944805012371847665328642294435201719163894516813295054665016732945739384573141848025406901419994138833955493932390176371332117921197843074487040574255512119809903286168039279180886863636980685397605525253853612176138044940981841120960824077742768486653314941830285403740124864725035898555088275127297505371669600894740530817966848479584824574535928360316968320788966828250181324843659482909324535169535038667176286435844526312441676536850361629231415542699416230598752047146017273826836454430229099691705729974869195527579233122288813588896432561424714219407611663322311654920703182372823614769327691275080795789480371978736074492698552617899991568391477831531145261949863916027368126978887444216616491201321152057344171945446006870290607584870545748764551397541167929101484282719308958336047322026771183316731130752009120560637042183077622819469642512065402705844478010871930516004847044749747943822006454158776352996832508306883915257136011303687144480565113058612596586347813106794344340867198296016376246215540889115303111127553804195488504701749624038375600414970929431141384807122450929254080497820665132596167194804229817068342331035056041123262790870291226140687056367580493695869493935623866243605324506799770288114114819901101087004834366479093818720595654280815100098825692916131987774740205439840972864406801509667557471340817411927684750245965085611930197652294546989389036419072926765936432154440769441790232635268489785791436283138462761522333687532677269865149780228030288434131361329374683360486202447506196689779016968896325029888054285901106814355365017425628811459054697487508085653567578711764697094139616771022133569435521807198389843057999471492214067123039808459548994711045464621481864870845208403094600041816604001561437556510247986968242029469321797622492685528420856525330489327768620760204292733082695334906322680646843871214298993499360583310412513960772393427026621075451758417305121416012603575890238046178635153008879820693125298653741646701959176682498140507953733460230015609107036936303683726399106980432293357112462796526122262067474772660936720250521789072195016684067826857847068954090757488167130787654670085900418814650248173963854751858700135531654968056254153886055160209423429147493083088842233618338339094320459910303923399608640416477155340900135675664978223336809194293721893437230770469358972885550591474848927222969778001288690493555145125885482503437153020035735127991873825125271971938769194195427872092958830501393647670254554682596484532180126083851892796232777610141196428836036961909716995614642052770145899250453328412286974072006835534976173725549920158844222213533275368535784598647100688987783750884306341652521596281313261291169770962648158675511753879417553409349763313812796697040159975783644425788290342198303741161994465336663854143146681651705506611451439646505994297820214820675287175756284989673894341463634538554558948953079674114595866747004991785888355091607114977359906254389199446998561548574878510751690404254147376788683588789659491412922094443986761663912026547937009495438672142680908500555875323424703667254448018649865138615290412013073654430005049042111770465929995189397253264056467137166820444131418537028327032446197225922723761674916600055053207914138880018034060773663633153769754814290150865249802636761902830126898247584732697118406371698754370390565674983529102206211174088062465778614613375121013550645856227368783147040517802946489278323678682084459483443401474176243807522481841990982330893483004376303106086401966380873968291440896979525396558868292180694510557947176674418243999867658823391791957630113057194105380667750123071332731393234373442766693250635400923680932872216357897133098994895172741074521612230439260881100370329269671758686109775743378821425241929543956832477190796478139717282665951284349687969368752918037405144736480217150718001953120777677450337909739474680504361144375529309660048287033574587665908961722338332908506206945972112177013934688548601328909650227680709452361398644898311344295319437494518961782160556248240649540844794517279763658116328081849917514597566213073593508659045072298184968806720721723482971032515922336933469198229878128237750121399133088217930324579351346097972921509150404615995348938145244383777343388519960786285116778571628968117105382529098816845853173126735368463454715732930609505412936156963279205504849228642325938702139984617928926930459580161167652989267765524002732487872342548207973888151981959266581203289053392162323372636610990918006806107660597694513213198308608833313735770188449012693517515182832621851562258758914858003072897683696093974686805944254045152872082739586343761890133997329160189901386727676779185828220715355298802829817831998321326524767280703704623323714245221827444635871699569583865956328942033836813708445008941087613562694952347473375222848145071748150867832117425794568827969041717226348869777730405790516885971775490804331101217426522482501889959729859832273627069716434418897800133212752099143108079571755632258234413455050444668939203718624212506123771148487532221714519108100975264890571193715876801597710730810356096610621166789648509908606634458039288865733772709053968320563004273690801622283518806803994886978465387064464622257424120767295827554554059155575888348222045673209014148463117965263248112230131970961953138679924576023758311057153143282831788594657744193158936936848701282782286321385511537065510074702340527793833205427402683542068810495371882871844539747608305817231061983951982625093820161473775515966237951795904281944392775653168144721105298646475227220227937734718557305387373809910568156739626556974552108130900558830135596214899324284611907562872822787885132561502256069038653310022834086658938970563881880467390817697424585016252131996888994267021995341220745834233622631779570265197904348831669536481164125812454573151121624802759448775239736084695583031646141022633777507034533265846637191778395155768049947239042411800496064847720874548114741850679901796531368009495120306802751384388587338776963948484377433034540885541173612195950080888366695283335119359457903456417685957969678609307363932054031977218302366959150586344780962066543878098949443815699380799721481802111957878495062692139592138670346840277416927695201427583357817013707459668374581163200593008891564193160882988590532034158916670804216090470225551074798020228319106137783656403917386606988237666196245889228487072731380790995632999303839108519501264694762916014132267684319384438917504613170787628344813819843086399075547529123300468887993316068357434357088037291252707526392273302468208098577137329267597375096686358219629980085475418391614681567844393675417352922272703602353295468313107593239554756066306378232709943195640259198430734290543675977721700290558018212647378883247644951907592352032722921297558752745686756887300904122468595840282001492467594214398205842118199974242889646379809816258961319811095221499242449308595674412803531319628088490098995875394113695884339923133400794629856875160526880391728172383827179944226927844629277958612968803573977665895723461519311803193077755688326919007519978713973114326110849863659290083731578724281907874826529416465821004480728665874272180990572451056629405478425305518332641570491846879277859709758680331449391061641364629231697256298707885455918786743334020264925991628846862248085976695078406717290560581919768880499108145293746762643385931240643973997340326639958670105797469513551792658752406308999956300009324479604750017913964069628600143974876809923472103834783004291519322274664404197019995181843166828519314461649376592770272072954857555949347116763626798542655659635449145183575429369484136591652007420909264128706819167503583065039707576104606050059422401062316357306691791375439605634861404532235351077687230779888049367915046970438054793814924663381670372343437381949711294041096138644578403096526963103091086895645461835743891577322940771654405560447480331249065595327503457254747070442486138578710751037752273367953901296069650271533557923594590507000014470549319856252518045123457809120814306055426046777394600782147727162030015328934051638673926801818725707969058952932815784237841899692129285207949366418099326680395049879637121723484407394928393062443772333503208734053111861838596388570502776690946805054407877927654956250290339606694094320759722671621318423164155116719509951238846990246412115185139989432259714792832400637351759519048432819945358441623584461550741185808126654589055915760982883378215335114087862377627739811533668268537336813970998160327972531362623505228892188613086176077785502233036539038009854470116729062937127196764886289386686261747797283549928470633373131412447485984457356053541246468084099410267813728828146692702805834803922847317630472977378692680862746543057080232150950642232840583527963153780175864882926523666188558371572928291403746285936340409436240754882299160765570091485951593871328781972676190135998771314692461236661175169940377223187074464645539152257867834575269280093758853611443247211232903834154940574470873198062416698773694305752431130870954148328804554295208694087078995167697618051066441339718867165491475898441604406441642349265226090286902063790288984634230234855329960564945704543012510235023316789982717477908694300016882683095511411466144523635488495108325182928957193402556974569016291922477965829834455328025529470786427078486032784169503075277966010312813529109252257588483493973099869853124499414747356637671322410436868900328984469952570561410097396307461196552822024871770862722430126537979552492635381161149057699722350821132599253528678370970540038478654395212887575151237128412884854269409534929663306597425104548247875726586298100641686762191463024722905617997745364987031858135225066656631368199274345937710064452553955298947675746025321268903287970704511353659058775256311973785161742916627093838737481617902909614016092543483744485074000093777593918242530097110759887237592361335300616906219336799223592833077818056461090815781602937610039563774798540743107501828389185008017958674278033308761546141663584445218663550516360657062096557794577168848564237117956386039204149138585439460165737505385219942848586032425708765049002437801024154793958705058982663284645345652671462561515418965587228234498076956448358422700073041165605728867854229676099324352218054406961251236579450474001083340762489720579314638786342309518982883597289694880376274310898272958155958986697066020642801404266847176615572351632642576954160955897518239763607701620261260603476160709067169668639073991700677931577775339556084060518537217999619041643761542147259198475143202079320934740657503560701324465640027297396625645074225033944800834172294752564936532838606947956199236015898098583908496710038416950478393822293294607111339304700392724385609013590986526337279952689057988600823943317982914434270116777400605584695147438227352891531084993471285185825287627765566939097404683316054187142210048890966628096735524341332817465543890096610761361248848004676479939484892290540712089916863396106187082188382177060441206233891006952779031232361170821217393119372750970303012705602074576633561337895919904035083527386687407438068373664869432689212194591824221716919081135408978381457939252155582750735659789435617395539973933569918588319050678514406782196581566970127561186710226030498688411131831592653810884145934959274311179596644649947467839770932757120315793833575148949805331763196325726954610380381530059208989942411520362784732433587244541110222509972963981007597648592836928184298317771165203805671276315401035684682275603371539300091617454758101306360521989707292583835129015754865483783370423561830230726903320628902695865368514907141091298666176425301096588810626613992749566936258635376173237244983723859316964672819277334565592285864382075877768674908657336867497369136851264097100977318799057926435852591436858427514995594864985681175042764667214554277229198902204942077223457907643127389548135283378434798956764040135162969286794142778679265990144226653644496480505773951504644848357714488640852283521547287736287276117115028379084539035526189297357261014159685653642634220920969141563607534999802630640432314645171998362075509778831379147248234338232927494318128480301661678250929228454256285056851640395906613652464926324954196588689034594722242070262957146857168835475197941608182751561930155132777385219831914854352618255163060605826405084815041227529362818065453175343984007180195735096395691313851097213741998234742686471266354593480052677525489747075013346940280711262695303795966323747353934283176075568453378238043985633192133680964606149117636839158965100822386446576864186326110759077580103265684003866154829329046904860173529992641191573279368451169067378990133000649920150619516217608572268567872028727216359118771856322198417831168108771583567772736985849000047967243257662086531759937648356155999910959743812575716260769864564743718203449123115340159982583226195307410638029727438370408806212333725246691614332193558205660642198207187331093699929694392966873705642277212652511186572164979596965552929292032511851019560242064976971190069126028060392918294539000663156825079700859285328227263577205590949374116910104750242775382662313934904965661606059868564445239298713634087961179857409112929322865220401810983641597262201709491027601290480186010376172514857238465310391396478576481170474047338466971923151756285325530344021299379761709993870337823389625905962434613014324165315510019000750544626830903891870545939125451745012252919820585782365003239997009516456829217881531503700000649936638562607628721408342232148186895579710842645559015326412706605583449085526837307681671969974261266703950011033100231711064367411446246163077126292564427680966786160111237858093528962145783643175531929082699637751769036604919251122728781236866410830389088671482308757538197935817624499866090163565611107011036293194482579686871644832589197515164293375558574628823343099862913605496575254180791384030482076475491248741077369497446495862392313611142948024478482157628783777222796326482636647017316544057559489048204146360492415477423712406349107436529515088044073099958489228457417846429862176651376655773424759098038078851186497456458652660106597584972453233829653378761159065982567894018749766052782851188637882421558956961112232485046300706112268467100040080805475320185672518572120036375168355871654632493007018401162775553263821627138001608995003798659818603293471674065178720656069396514728342346806434568633556600854720268051911759563812007620638306624652462906234597207216389918592479191827398296916502178004592617142556362605447404190511587859822538524874625067100241700649832833826007181486654303547163437513805735112828657784115789451531754733730896136304533504997085915851761598216102733185562301596615351363847539567432367400747164174573730753845786433826172926836904845279133970589448351737991322361874775791626644253240235643325132934625191967229195194189452133868660861661713834101402219947888098594529680131286727179647744855481060444712843870493644748248342718553255575665938667182559710585158680219130949381540818089989520936414333664466675561561782504489265826995937910513239515622060877543086164814321303396462848652856410757885893946291497371731632025366646286519529007763895723678888851394199751371855210299767817495040847844321971583449545430810513217267028590586687873221728648659724849374217423606174941249976264370796625228629410871341947873788539317850708687303371947592382893649549227049220476456650571323613049037008052896940779323974156575218625749309218747444398733444821234243542828062795747879494010444623563622343015374140353456652177023145274414078103037619315711081167353367074567161385906331930594837753008130451992009197419134383059642624724623803402583579214642403692275064735694496520858903837674227747614392254952811920445201783227107634169669070315482996372073737756571256048413941214342158716274518629781706134342669584668761004011426413381132814322696271699811971461706601072019995215827672294928175576590209294252271944766871297225078643856647367861581654697085434179118004893550772051147538013238177888110245776166708317837310836052268175410574035148115814372784557790283295595407428568817986752648649229809208905710253026022847460780928344726419828710901281799886851934816603550793223985584160241033608271670215409239033560311671927903994010937141484234613418946907279774657858329977096238184651070460856494103638329789234584952971222923833811367364603464774326195083127432926859973366248346904414400590103653743077619291674048125596454497985094102455752384588560066903946518391248012359932992000522019381201260381808941461272858294653041114428106446423921452484151036557316450884171112704571487489467785309702196886618449600526611065340543206685043180299928842279707599331896944095805843006951422218942286229561225293585734396389146724727388564650186659253597499642524327421116498442539839043630633673994680176311837787108369318190058153889400517853828734358684174205976132833340577978013290899572061222607909130548891492572553682973307662654463250132852022141183318210517531051947948762349948244136761765216550806826896445230790921823393616134410812086324363676768642845601482247575595035823887376633811529782433542641711877048078146699717913045029267906900880678979689404126010086432155607963372201276188025229855072072307039099704048959442993279730184588979947893200843536828796196945287730165326065515925863170316924810061713157909689965201780169733722593283204668640792047208836553944330176736495751469890031507380315893232842467914395604119921226064364222884466880437527952312053451399428434361852438986135959109290729390875207702744221400506213830353868927155751132979902312530199523028908140061844724192366001222933401240169300669393131422956112950881570752456722855819218678845607425180430541064342736555421767324299382569347685405590421419317460988724732111081941994814380727239399940294505397949889425549849313038205179923193648568754234885479221146211501260019210015282426626561753114434016333819825861346528280733805878034771074666223837065887172823922900866085027292797859873419237710050415198000485942889991839133877730889220205831786112396151762245400629136659818708307491518085137727163152562018185955806799207764801391693018239468335986817567982544234355354807735606659349379688554594520334817497109368155185608936749410565696209532881102774009024307855087380307271141494905060099674362880047347284408786983209149881713960588246713511150818597102439734483827739863493143836673150544306038059903790855706033005767970045460750803073558508665099573836210238265310439566206210357090662746279180232380500311640249465427057551808468079652234310221342992622122065715091026638577074832235197321591621112637576649469290934765870582491452700271253532959792548728718112589517449390007183560048400508946203592198195169934612301384486570901250820273962174818718370969413181010699716212679658608742339028946113535398674634566805705130191673242407494736796625614557382500726808032698364816129979111526763843145599852109098483818272876577244249515693284541509296712485002400895647645141587671354613948060891905702674733188180581785948861259777773629609168580414515663904510939959138357616345167036621901674050891764883477641155025659041856167011580125073593844890827417089472025733321438894119439606652570786053771232243485943326140122400328028428656581169065023176562894940703261050379098498233725659779081646037754249199359272446947643549923929182030854054204409980649554965726365063761278940954108818577410774538402251945993913854462756297154856917319760449818343860288420557023190234416103550380397257226041888120455727103098926126184620900927462228624558698688186062667447525513105196504977376364375429622796453816771435363306190388848061327016548550771467508074504803032390015763155337291667635062309167533674680030160583230378267429232528482238961598309426573309846574048847360678752059603105069726847763510950420768443250548700978688122779674384712580894969064802051315745779316703216062544018655849245912289304145604810124059037014133681257503953799524650519101301493742929956635528517513884724117045004634928004958625505057482998132720309407394724350032267725494137309282048194263132600092001570792828555933196007682273268031927398013531538736871426418660712372766135255785566752973554588332480234893937035575642174782932641413432285264973009156031362620418945464331781275277866002143987125985150787783964932913730320470588635622839352289124341097136779417540471090217151781553886698391057018233837294003413737068489039076724086924935892232174925231104915307738726949419521452533452325088341554966969116425766584264406051039183087269865324934734726268663205997386559307120897527954176444010080644523051470821980779665623122284703023100769705145630435208431953969434130112937316226388935385374898668079496350927778227304744374936865009991792486597452900846706009952801761252245306021646203434321336972965097498431984256296558715275627668011233377296393095988970705770565248166947336753887074034224127404418299185161195426466773124547043293618856423591307669788312927482242947095428057659273629110281433872015582911763314508273555720474289974237187171002025800868710165677511561623328611086393141996203378317092440994950321689328606855069397323537624219725099455906227136885395990479956545289894733588427987016980786990661763122327720594539380995350839961010316924709279742841638782564662047144851133186633406727821833120345832764448340596671436150687792797860621546732579710149524317104797092866674289297206055957682520108519987344028174547386691262086543519153305956815557848216662667828492835330171103467491608865072300104949498885370311599527583885450370044664339547964663613663760408940598721047313093988060505827569794082034432501805162012362003210871943254301580937464117066038010120380014189079274468286512456755218837834071785151686274170206874157935515552894503911944701009818528646998692804914171628487328457028474593865032907857332688775713935715156091183887984323385631945235471351733601476432230488914796570040103674823190645862392505840752170440115939989192871058745193533810012660635117687473131889089430854328614848636173205084274450590219277519255225704484432708146710806439064245799873399971925254316884324483640922546322272327185544080903428042412935531325154619313040528860100800516036138952018378607477265087067209284001856701631706592921965231094298886774046656711986615164808266641994140403944303377109686102954696918101685109264924224642012712172587252241038754248719380178260100105446433010686085684557858775192462972796612846576029167791692452062000049621341094859514528160037174997514174611894988183210473758391082787305166295225349732309411528324738595462934399906514489549941102665660642577830477487197418989540879264572421694748510873116072357548819776654139480086182862755310776332901463042192433525705545937618603917037168880727608298992832693175180931568603674617664502602488304497350884933985165832959328695472791617212264747513786786601647522847512427570246008020327119870693916471409806919798802743156521791247750715008641395015405517546562335620147576614175045812947879861867218487138509646039028352491782485907147999755957517199796135214364212042776258673532260332713358754610186251171028889226619296653992879846037761126166228835977241048950427965532851131192390352860951578284264991575423272653377626233442203276252958378061545478600241405748674571822630781322518587481203031895708808515623843018890837301988736623470950376628513471274181593410148983413752771416288163140511496236277614135638179720804372841967662199827720665244471722217130330722418668066497010665068831285566236938030890270624949772191539682719082719363239713809574141288510693027086756861914055908010857678961556915660589645377996816594462775380558706738597359964259465009355099926370938280257417570462769056767812489446143528471128560851965605230209063630287593572976484993330986675168533469790632402808501895421408604473398099935055560026268500452032904168061102718051843438169087947748262985514471548928304039874071369499911248079770178501465039533422015090180527833511000900282509440620082176996146030901724096299787299995154424522319951924709235416652973062134542243339793594733270289207817618990556363450071301174487449320382367839071569274767444625007385720784417057299896858130111280950650502093397834620440477930263926724910986630608675346557957758264083580984881974330298869592946927559786766666060288983472788872838056689777150571976867850476497935659819848373002216430392759826769116782254970173992304289747717743542421378562935143111175772010489382196557829692353993595075461657529156601752241862691179914926379777972272083022069842462394842794087486993288191007298588303148504894623533434591837808664272848876624254463563256567798001811334593619436079243714690395666394434960852048449969287502246270983559769759092644987447586133344684300851494244048849556782511201262791896178351601883485538429323689816054156265689762077742285217090378658622657859561475571658608216240294005199344706961071976215152297281084644132991895065359387422343411706814650910115393432312844072386299613273410242260495441847468820384170157348217721106014403516375621920429503019985900334834232562780563215836993063251745673811314537956023220120302622750025965400350502784664065536689236506214642887617695373043712042026945812670929565323999824978671881524937411518324891516929746550971836740914847695590938319348753408290951426473754301153867732247719892526920799714715487747232430436633804815151102889148161618301616047127490524472526295952973824003138435156796792126694616338007478452122001707341227552562039110713770590350412149171758718850152988925944580727190150200447141339742270956875055638479798600414973473401920605635906073146204465857281186005651040908570004268376953920177040347220544849694543610424497562376155415434109260492070934853779906126308703439809804349750234455710056645439383424400629963534734782851097994579856026226155822547100387162954867174733259212421645060779399039452636694041265636058281384182035935400409676107394681238086385521665881019165112938990023227146037525636794942004385409032222086126098100429101172897187348758929126696604023194128368691219353294932528396878682472454844377438267041034458426804134964463171740258721339707535071504031465547985032989308745207228513065784016111295992577663513561089583903443931945965570593347219413960598517320545828378987338438143723814009683524477280032331956939328071602099932797489897594393565373752194646737729149035255986794471114419136607018791638001579597583973752562548425665819371619508634262991926576438586862696021514842673261081305487427961381155751766096710976302407850202996965311752077645463826750845003955158737249111002147684916600891389769777365770222583340093475650304252831193508826424986631153110917275802330088407969133142736518485316703376193183328407272762378402128618434237564468177288736050224356994852446395660211071171056477773566135629882952486147704905803241033674460961297028560246318094479981965051553095994642637943179181942997175616705041509389634448409985696402062547422646582845597206254139183127526052216538558166083115327920215576792428660886834690871460870362823914831687414905889570276312555787888539317289824172347457340489360116606584760990288793791801228898680945655550084384291706711734146448103221385002744955630778187463548102092860650307185210669027056231468600743263091055264237780854768981579714331352094550591431234929156082401169384086566052086798846442423665312317894884454302999328674448065118211262229163269947408477563098463180837918820965912430091807199087007006618805388090739197010513047292002491158324323120322264332969650830524843720018460680842813252590936178488062988677609943677922142520362364381395810022847997619307967014659255729413288779045453740899748457533792920710372945522428081115724303612981241750806934745197410426534043479348681832828886918325974828316925079876016828190601197583305874343813832747000249617377389480422576975376364533594645594427006453336489099703539027785620310567411154906240900279785891460694773694906862779710192711577172439458182429952921363315533640490088548949834638710302436480187237980462972709762684057729639291265887291381492021128955895469467490116801418426984781158188224545373140286235581575838090242626262960990162917503515347480737372953429614739091658288567491677765178442509358961768910148128372950660466284570724017198241936345901511755872781025519248186977202487916845938790900635844447597737029628748029914744471445284157570828955823900061850928842815418805206081504707511365608839014841065090593221886809418830060712823265465261302630169850588685758037008693216025295955047660549525500052202012263287986825947251456647263347502678594785963516662272705091807334271182041691260944451041632306124816880468133746987032819527552140939667395259537332464449248930202241416454290686100168820528752653875448309239060141041782462795380527594602990397292841907549979294625106681871407541292756579551229836360924260052690790644368020018301743490201986980159758904338636631096091428814251083299237534309590368775914116250867228760620683445309601396760729136401709073000999323565487296290882439706800855210933174175628574840484711621715843039752756511466288536069716808332952132201350056764275016197184749080170768170034794643826913499053863677915176283321518328854634854126448110317816646411680711430322410899143402153946442685182590140619627119817348172902679627018679704871222621716008902396402867535794538863924896993188156855707707404221437621271525945935111506040932367099889838727192161621760575090820308677757080854896150138803214617196451474014388559458631167142752249537657387405357172342467200797172879217943448787066060233321427159413259801000125594342914261334820747662568869256704292363339155010634412518239210498697654958391754471466886141234192102239851942950679674670550568084580049555595849141521839740531314773923805587158078728640074053178324129330749640344120732633786768352016075488080469549522874577499469137124686215020094000444247093271990944202979928761545769079011206940566331579672954872919128236799915001368430152637531566272235248888269965704363510889236290055590112797571160556158048773129727858970334406838927865302264936395878905110960320508224968765705696076835361657730597962175155133201540388984195130337466347819160753550139060919140128686770867746596187373661805785531928089085661476993742006959404044146331270497666787264863259952687719940207887507723391955163221354486425772019415422874634190462575932384574821595056182140246727021434643477546960335920729466764691317804400071434754110877331417654464195468714475859420173873132690304111973654091446027214401125592315607107909054754983979168661142793290852767708274044747195930892521845159353268370233761750027661000876634747487221653996199869274360845748328538909649146280105587441016465074958828443461366153269391846552825949518403519135885615537890644853023385554368989141266224186935989541833280384155752735766267076751416308887615328502177971979471468945735787646323503634813754232413893848312481690319320110845196366494630503175663752050837258346524146799537616849965270380987321215194601014035722927525270902299037735707212958403696798079660923562470029747158712088646941364836528003929850971688527542419837221566661718056890387592753480991059224302201603041791847761033093554152767641146750855266961050921539236224544024397039709378715057341569069409788611534779110132530819082524744273705379242698599692416017572447602700245466834530922299170298746964763190713118345576609702217234730044105365893670290288359818643625619513434172694364813900977430452171869588293279148418402378728158715259054339567234696052819211749391392264934875068086768465040460141934581706960361499111964926732648296168983115430965884461440796859348861029802882471423459656349884812729005859833766801991645826552266814152429298675044522994631351581365251042203808241944492598796715780935095610204560904627444265312197697588519449647610020741717226395499025525230555457890205081651380178369623357054888056571157258244041493590041064119520078540993979283071072779811472805032679437700414052866929217144890838194465859440712425135782394896150729689584611950937734733461888510552685819760180703513627566563836429589085486290033007300251089735387677140442377710367748653696527764369110699182708344115491150538289852869837538869727861856020545042550910772104160496711947713773861085102266606812246238829702235282415846830025291118248827881116517518569907646242732479948554605304156244897107762795072992078808458505726085749546475646072365051552131862561630555910776738354511413621946240128841460527496399046265300678650966560838666849764301945516922902916428104371387117069630422155210467635016831147429098492350212719433246783550208710378497424582510089587080894057541121982355693398153194755986393149241513795231835326259968619842330388127332269913203354654293841389109249535022895101106244844628397364091655793485037281148499015954826885878990083247104069796709289753032624364379753305057270710152723946428270877374561212282464688698544750466491201188450275549115563679362579575454411829655388013033927969769685572989115193901485440213687712078602199177714197640187671720203054759303316746826836591816942474281808539173358237959117563416805267515884797205307060976610606617567646655386552569431018507450169967232669518879586102237108187355630308220036196228580078426343830925140560035048355199350506041688801358062809040643795809197105936077636621849645179577099883619362489172007125312709087944835250689074075439487990984024115626229059354968463220865821214461157803309913335274414453500807827158126647975551520279692700983165564341538505812918904740886620360715036424870868193604192635086362388707848686667920392969260808283999120595278512800561801017856328426935950132893714964861615756226347487741685040834886560572361810992408444040941577628320406833209029517394741025726041185649123088653113384865513559976703963976753857884892287770555126312490687566390358130739976996845778072653921253431478160569239930760553656331999318058538818120509044307767534445103622315577315908553477103730873867022082933457989859841073674922550490851800039715152187450458012011542388983534870077773786227063235586747934603781777830725427851939075314118805667396880982982315476041439577378421013247966464413406659766099046232760254447071660566711259403982934169611560986779376864959982016245538397825604741678120317226180160718001094064090195229553804720488814372946452071965805733308380121995079250784847450191086433753021923591254578035532031086005493490451517802507683881996932191965299823548701331480925355887574201409329376416918010662691552143957951173463300000702572759198888054787369020768041384048643849324261980904986266878619630179369856058513154196389118580990803701972209699159527032315988482383309918500465232417871819989118254758316026207552473612683755845361011482209380281538911930154609571739367035729257143086035099494942991610997529826920530411525273070826794782981101231897955056085222947502948018602678783138379190214613270013047422153148814644439235418448307358774227977376335354552893785932430593319252493575105191076245879890157982818999865374687700394151092386872784032658791455764753750849718846906961111480753194024038630721767283575793605170797992268809760036050939100600262719292357013789647248579834930358588356770881823484933164842931538963321738737558612271417820278756166791804804426070791904918412788326988930129093014576094416165682242252977615871442143820313324664458616497877084821176228136241507639328650484716340964703017821043554555530970113846173890264057610628248698200767644208408224946486261047833657495798278011547027644059094227333571165240928697207043828439875734214074669891286215164950142392437844867714140068877723405269423799933962923175516912057527929709400467780391960608801565308822191945621522404792990189028484059821022471547794580112320627154869651130051435427715168294441246068122990775313203281020917968108091320574167636683780185658240436881434640877925679118057094288908005930496327741393453726388891637918205573562472543809234893504205742129641928315743973093377518092948651492854992315955555600590917644103481817255976463842962138807248468001022872788190592365690537183193272069217016914626425145113007914796520773046192437771686359760214593316425367317463023948326957646698859779898544129322750332935645590687154474003213582916086138982869252254893437963845433903725272744840423052442803256401239823458846387267722352419990042966926875617459921424817480660231388945442054582521195472506549878945370715132149586033444274946669559233946672018635317873739596084143613455805645693315020728674004938200821299796191908749194448680950035328756423615592120136631295288468001141656037798954686656606900314882597261952360771801712590798643199819304996403783796907473110104846415738776382338491370955827887333608988899749459626382848397660099608957565902697752701092942002147282589344046988441303944746413843466113802586947663354291659996489897551882006374327163732170288369698804634977466917937684441953691420415041425414464107062163887087602764041688828067999010373447253706323185996748398795719743959652140537283434026939577067482419531008858228080269102833877223679077552055709833940179282465886329313543408446689462107590543293042050057738227275914519340182383153908964697448890180566875659951737682738192100644607899786094970455549973573345423568808309779469438996976801820757100436277778220642495535993765791358879194856965125681237482697280023185899356194799778978011867086740631369338427874474610030052917504880734095329511704058964075692316901906181342998633365340762507542096228341476280945285222571705644349741166795392048068330943925839601428527485323835692451100045310463172594867111977553930722716083950146092078751830569030775210000369862261952210211491541785473972997896522746254086241637984547151144460662168442087205346688343392039430658113538325827203919126211521124022149977634803521921052130349854017094538012417201502573124049710205404795792737144645308775239640852944475843548807289593965734404072181455189609772887824027963821474248293861829143759757606886833609497525974460852722748000449784779208095789938307045096367279824150796828680339429030006328898467766541724691081117978976569268560347344347183159577414872071981426476749915942784947317777535724361454388793873053715714096131026091739235071398589585801104105630031419559197375597830625156517466128951775767621537253271438098816521141185983326452717489168151728938619380630897577456723573237242084013180377567502100159464311091088439895766419163409557429247399140548105334536047316517967368254711309874388450652255868842932683439009198494482089474830026965749854519724368435080510136086953676468871036855609936762323037258734089796417834076418765545412614113261932431518055928521384618888992893115967095314610536671777714532023437762794776186797225127917121621933546704952183695047199731691790720268836209422681303497333166991273777362883204677041878291750261483196365352037940611714843973542551786669229111382506583950331818736074739770407305560301283239597581731543341704790050283467860665940222993105760184954923638655453013474395967274838036261666143538046292907636242975884070587313881137026534133463931982104432650872662817122932066920672544955846862215143434223069012869392806060477768508185116156226711611166764886891254804829228473391543311961238213923392881570172393891418265928637394395471273070159158941033963416318469154412194129542622880246655635713408727834993638160775526516221653004612075641802210943447839538714875991655507528972794303236811598042293192054298516743616396843477339615674405717596810259782621956261898130721592684084599557082015486960285549710575943871321176182116782981768211795761064808741707137534645247679884221339196356336536464677007611057047692508031242343832523192068422885123028287710168658651241412962915167780483034309870688444668219888631910337983722016368112199870944435931201057654728924563623618274205207987025221471661132260969844467092614835234482377259038170823750353723802298569690372968898206574505677891976027943645702986288764910760414211661360816726051066322258781124772727348086205535523528026935030638259942899291423001062308866747309717945257567385761078659684452507398100957231734670965181877487832643171573640968753780819196319216629195572063846467034629651322655465482356981649764145484087240239531395650597594283002686425559774905427073125784508687221921877006829458010275810184038973049087642332907752885011314933379816022377561484356593243516397949803982735542674190511556852393645599370412559018357955027628233983296091736009941785431719545196315299326067957912454623637014632981822559914477961879789578669123208733172984073987466613931597070250244347315360962016620940318239594390927148885728051662110771778412484683818670417319601025661998009100647615285409783380213010007163591432976985122402198144298614304128483436242197447173030234128870143718941405516309761484149368079892578148547927529735022678641639355992951163879096337246555001088754627767871747536341470694389012043068491833742336836847438001314358685266742622165268614029555230559421677344992049081321846205318370834023046704215950984848190563122254078180297493178110454091944728057676627967647748465868508133703442879658210598584955452509255394624226418610894452805524301979765649088803767228120436315171203745920472346485082300644977964183730839444529947322286860795042989918451352781815583021101497771286237628213825457918632610067052188419941326256632583241635828539805752826250014522796775215389262031907488459717823557721074263720318572680899971358329981060971647194580943334895752742749955389378088729885362697501329841146619123347472057522411898826673738281834074594181494021853643085191606455600196185517347947805416814656821201206788671381467853916413588400240108132380741945999374291193507333425619505343642823149549691245037524703302033945078858802229017230104875670565602821736113865547386052876055941412107320679702657120028202819224146505462578752424976408277184651008134401710703985372414276967983401891968277647575773728173984925849935906106896657191839342400313889242566082603023036788223707917920662054714668704976947044989479096528296552282288048521454285031251527581907857433098415349000701501814422359198186413264458037066330739219884733956086544327005142771408534304950655212712612132228851385902504340863748532908905794403295462553634934938478607772842256188544368613963107033799814681323866951185059874601789476880975092887495845068056622868391083844015663714186869398527372347423873438399796897970431899700348154049794367575511356191913104470000812905584409241535561904332355532903367768873902354924653327613467667270240078202016536211263727267862443637015052958404664885348082363914536001684630420227140191644838572785690414698275663142260826695402814959622711991024850799283556038630905398261401475284178743090891106646997066338009159151332788072246576120466797462585761912477220963462284335721913833706011271021484283528233818188164025152337783723594297476625460159911850174264231213764806818694785031066808071448565604524555285826385652128251839584716064784830271764032712752559212948859457016994464405622629815239200324079325087263969041198602428370576315081140464647342997274324283700007963788175188036119076280344967692217677496195754465015131026793702743747396236950635455045980375065318708191148139979221696232660211999832243817682708150399190728639107370930524671614618634723682589827571604833719841451878006002409798672625675986270040039007197338044554659978652181801608891899075905150600536184557482973941670622949636938966229371278731895827284739091379549763739540590473049661051043044895370658663051766372739533863068035489919086700047535712106343125835563627155271334338318849837181640046974381778267162730991926387107358522195314344988389937178497520488459669158533896250524742700398999831060675885789817379210865886860267365460147088747318089777933685352311862323796285140946542448381957233588178120418117083903178385728564727460398794174966578740032077125115407772297961081078239462286995121959353791067503650171467460028567483934868122536813574314195042920386056296588653023457003573467072838488543194095932709646084323759794920138334679286478161147679201560760873926597233704184170035193636113652143303657356543784289203404895104062270214480515979334320768931058095519770372058307448614007312979319843669374773952230593088998112514230292694604617209609984955660091940589902169440539429204881178040464323758243303285738687791773621656025657502799964504577131657545795650071931325031539105559939415088007967243975163327508719242605484777436054067909760928638116609977307853594507513146680314878598763749376751785596512711723553231373601807153732319557600340214889356216771735407157839485957553323311673040315737561115869647252938955287933134734386120097848501808197324253289650246439221599792648038254185867506504482561599314426981466518089062809289603350517144729386487497988904447067171630963536716173007999760862460999617234777433215435737932173030665478613947849064244612049208546726864393430176490722648871214815697464710379512897024792295756006273390969922358018642576190605171415041879096348799372693386264846014939069742779765437534237867839718233343324478025803764006261823360552113688057161899187126710953482001979832897778126615393702331116579895733421646271838015912665710364093959676772513756512758856816910704970517925127443100593264704057565820258447601620358416384957081004222022253737701658382729900236250581552443854656891557023140365072500383468723092234388393625999712794614052516185307789169910044038131794550653710182431230315386443980298728077772332106001998008933374889287771222377206491996252667122121335247424936996362557766729277427181905720910617773728115914942041528861861350222485192890189959137999430552067107156328053926682270501208146434892676835293696973365448394279596785654599590083551103717425144238100498914651459380691056757040428513777907561272969384141902976830657691435657166806730481021586860361778200374384355851457785991770918152067402549270030641509779451723946985317316824709869916027028684643273891642692549158632162433513222933586345489091193236071665374432185480995325502324969128168432179276158087224569593558694242572649114130344040370534800140159629077629769785011353214110009872625470485563086449261093825785236911121931627249789062898992409410206920076869057590492782927305306754340556636298303608888906330660979209252190199104950190035667036695435853969181224402349008304951874562987523709138382108739151971924525719065215702334841110086593868783532863195342137325831107951261348058817098325846504834768528907141142097470996051618476907554613480423795523829706585545729829572313551934954375402359239596814005813290159528302226736567431054671443636352948989886008055943376452326455160690118511446036099200765149557240901898386880725748891181877249942042789889215136953302537965375661228684505478853559779120932445312546909838775680159354224894468862314831303850820544218319763230580393103240564805994261220537954763428795137143319997272390166175907158301931658469628125319352221890819341051936257728640543711714436286279338874706671414223489934003379056257077382359108737698521900585679813931612696805210465583506308690998937180551111779688259199603079613880634971458421465020999981303727345728025753608890310495119148569245624308019253143751401392112789444488048186003397200269250703573871560949800860362099694077596216812466794279546431912702787959275822474796187808497077815597455780635615874749371323376308159379646240789848293060556156247880742501188433064368030628424752005851185458409580835060755401565947015199144128588678072671673395090511086865967097241981544630126317557704923912836578713787516968920950493968732402810412201493277063272874087302410723469270567217398782516422701176189941166526501785613889929233468560762480091187505073291893247514136536686355536012070484378983680435793204388417127781980899210915349650305209524110721895805692470005764873213785730467757994606134442052218526265886369589754000647395473036360468655050114917566332004787738173566635438455934014033865279629337389619969351600227739967751285447820093069876099864754933736661835688286522306630759273916818295675007991844717303794574363427806679234955505066947328774726904925842544469025379093855610194000114296898382362900479159429248106095103431606453962229501834088003125433457829655649519539012252283273790016766342653693749679118935514586777834419399405256595270690269255972724861129680338108276875375026468649909007328383047564957375540269322653459236807614827265249410254847402701531970695702582850858256860270282436659939916861537556425063589815509634124297834218042605136258797711862148331505994204593655203312015997828196665713390738555762928626137421392334257602675658845480127425024775060705047485585785847030720935973400899537383390882595735191815819804623964659796849948243968913156877359327907790475791575181714067075279480671916247526405312788207161913472110548267912169304432569879549824725936080963251110794018291078824738505816485070332733008243896215170030725590218969848489541690340469802178407106613557014064444664801742405888132517272068940861942342024261920390492098478576139680790091181887190673473368760252301057995899222992778667383300818009583958704978427637387171227668409483731217783470724428764876270324425756384030433915055442895435979442809950880994151650217710606867114559504295083419221305697669371969143983369656340178173977843131041989947062349831147828314479496562797115190432025309538984723580936306767821140632962362148698914189842421907502872544784556484821749496282202066546890444570424002711923677822268651419433034330135682219648465649072146403027905387807480747640513286924251839447993971577146512546114841508769879002523751983619106489340211362838156286673240907081910918504420432408340339314683695025413752695329624488009619805474617159017381130144614967195016229644617900144966401529568675994702478782127703084709765965012044246679521517490198454506228909512833916073574412052562680726750874050608705390970811415502277418074926091977751816300696497949128832125078521810128604853622487803703099639491255256330684938564252388963024335452606597850255725081961676990817950057660047337803901074218031549707801747178797645031730789561407718340063707656053395849547799879722925554007242598642549381983604621491258584841338800029163068454599927715431706378090443629858145229121051791353947609094329211622705335879760320511433659178273243388022397882019140093696293083326191141688987948589289212253116247516606253140172577601966824750203098957784617078369874144927151947663275976016930260997002732371679724392001681743895164053912990384104300930043756851736122527887808265161577220589171741931324337747480913279167230066020352697665386632769060732770835913464290809365528128238155749434107685200974480150363068995692511062655868798470302570844433263532981311869281146423085507187009866447033483996386374718185749780684154598374143940136459340166009080781526809676956514256523797167585361186415902815177999897256443369412997942470011942838723922789010567798907276755178107499561864949162995194151493230618154575629072006183981597827820061559993908792101075901880156264401566643720853478320757341410026961700699792064623971763806996253456464225008239153538038185977085513442352347416566595048584594183107656061624164651810870690129939035910749988797389947742246370147539277331040469579451549903543941508296023197976677092482351688930696363092701220655738285559592341312920942977093891488454214863027110659035078451635808979410412404066547132151217953038143190492166267526058467843508385838822896392018226100174249996803734104282297734837022051654169995697416965194706701299783792630385933493303375106675028720578489291855185655059657136999864771993692542231121615326788396755745447006520866003474613784459846143104832890626237230458577804111135438875099911182021879034683438847831599443843708707391705792820399186861911647095804785449883613233911230358751396384235420939403464490566330463501237375018917582551910090840140072168843509257093218084982209674804342956236797684304214150057065902724727235064273582233605824137120625596761742772552010624655763991794723938759735360811024501097104920090963194979442654750366903403147035781127001832646387300514729969157115326610924227770435318767098506262598027485208617691629126417088589725679597326047194231740285358704770406264582775836084080852201194233272379780368408434176301830055670599090355705008059485212282854256307024238296328174978398665847609943754321609235857775961321006381755574426194145426810278383547616657533943094757399538656769553561809339602272494828303749462698428156468056309120367658605166393100464765155555039509007790017286787811469320566671859207578241006833160885910148397553250553827899783599547089590605466441303864055534359337979666004262252250737472027651694657094721725379125456893147906056768021448053932613856403123202958128472254184949651984151999085188527773239912776194892642598592693095250561935526166142223501427166667031049362399152435361232147606719229882880449699985142773050004409514106708701942967353118475090807822893081168870019643431883711964266110021904579305638508504315065421345508144745082475341978581054106133751118166721195875349372399396782046552995971219720471126658832403465642069622619733296890930085271433535208620376550353306907637514764403144017030768041936221750883611282401282026431437286470847856344463647572359839362650597366997251224070620213164935934860587317169473302431102183153688225154684408265649455579299217886842354359406436095988216974444082047204831604294407438390016408483756287729536695069141513703127052942207704357189489036905190000417578942579556408324494600513857940892359987741870883844767010034726362738136857553309064653874855423428682862089171081726347267932102958436168251041403874185853101660727455939999897072792975390033120881234418189428469908941238942057281571217515243762487344775673909320053392231618761695356310885384435923875236555715269572349838939858026184037966525801661276907044549146011388353964348913797016065126854760651096720681611680661847127942944420813332640841375558771371194212347592203909997422602885064046275668427254323622894461671921431125026899488355622201426256986080983915294933936057612802426408358489266808646328942329788771260824899772971188888512309211282926308957952971372588103698982191237218859254410992642483876674986928693047608899905521231368592906469156369870665354466135144249139027180006976376972686181526704645257705857766707706655496154236942226687788378851080663333048425318649892474141460229781136488370105483988393478051175755851525167940508129718906281841239245852581860691354244839470993162245222718146821508048474331773754121069982545965766274463409917230111828328912704768177644909403824192131411835459184198245562499614856643711661587231139128993164518234524379289609238007281880200896671694434327926308579756653243155738216308625302456180646637123771780432151176622093385903345482990994427692384612415034493477081202325765073700962996549851213274583318425422675517445948061110806558184870244602099366613906978301375582958908176505017391120448562514768245123183397958757305146416575790713316267242561215968696816472204515767806042868153953422303955135370724315876275601473238390488990875158128218258743693718121995686804270769627361286704392152612197443800627504420747463512878162849570948056664428329497093036621965916485625049560821877788606116503478373609957867653248453821291481940581112849133932051043339780301962320771980354435504509969511544539338410171561579908972075140559363800703883561384851577078295519146171599471383844909645566856891474644533245591014364389481711296152274173647137895257452972908511593173541543663604520997317456921032831387946526510218469253252380192913149878663906161076768359575786414904442312328291462514762912793387415632591832402561452268699035508061838485844087347116432545871275229042272899921087398919446872836454670666506343406501699847423528970525763442441323156217043080385207165960203992522215273928982496776338912697250505306940035899176707174097515267755664264653832550503377459551118233762668551746041253141774135560239015193899630121421927877963123951610950566170102401597847534921797340409952351867931135165892922255366634469729004303645700482427593109785358124459036738057421947668166607611456413792481004974071278124379378624235647348438572322071424745320716214769198688133535561398360380158126219835255368339046840781150961133035836512046069566385556014706326935861084055286359072559354941013471311659301132460650000153627954862406889032990052147734236883234725061293126695701118155954020094218388474546499955384302027437786678531978807237608095911167926102784576898829350762247695039321600447796299291438239311052500871813737643154981811811706879897705220365376696263124551607331472503214274649249653165998261663586892883905005440647094998328783261994070868048688137341636771712631062354931736816335647610451736035474803395222455316250704643139675704602258499824968713014214432795888320233794084768217299652978044327351915611638409945673818573697830384836197312653026985579030817422545603436172105647682726541600854431736123554615048499402391721143647049532193045936609304645390686606391402163314819272053191728036197125843574268573220370711516951806273457995287734835513921532148745164556405099832994592818271454042074199457164383388111402608246041879089004130583113405988703192829379056720146447961158257746374235102308096591340423711864574355842118224963492550138912515229441358929138559861367168605705944725840570259087046200730680162161587826985294680622464447787304698749953781154330052548230432282064157246002871054754693673742367226308844188683308985702331978542729315335916164957893994093001070294599553754649029929171484523786416170087469663521038518981190244043737682053863281478321319312657766191749817062502416563699867444162627079635582510981833059667240605304894028536203094104703291586445264841007520710789445586432786361360828719014879625453103307228586970279833345898816561169065808514171261102649030665950531475953141506628522786879744549089149149552837109945077266970086241236226423115639602672046724189456233301922055280245709483422866647885117278161377803221252458835431661600740021818987224221010596715628340920379983465063102084282369392898458191063056737772545399528429515693434254479469583716975730743966861087466822941737269139673767100569395508684452327623957680450155576995685141808030389857358607675536128911659721867628937579434944364290041002315706541175123142002745596438978988440426800476225175590554525787137864451989767867771078616471683472010390951873985716891739924494729446044752662580861732612418754541304825074370362445326988250242711981449623089498087915588172472521252334963495989230845449630088616531762974167798872144853167575234975009454684647072980472173212316898076621000707498937175428263735613736379786856733793003482428178711249636006005879787393870629100662133858490089429850903202517684278632101406469745974550668829350782987933421041973167053125799126938753147706946678639408586917804390141322010039032500237090737351563559002397722917679513136757485677343490330791049435240823622884624742830114325871489460800305847637656552660964246070297576724717037099588511014997622056913431167367237407596098291765695173779315366535685780734899262997008042548340362992853370204943977674161903679626077892853328194751533414594232258120753123685298693961245413735284537425177984210429415044970234583262128685571539868565171894786780093887661265551137867487528836911358086857274232000570199807861078839216990171227042472884124501768359691522542954397684789518673949742467070684410839460599437448202777104634101854095516700086194278505966235075859025629558445027436700839142483914302320629154035498247795176099567988520305891087678678038566925676280263764234379713316012675444501685143074442167079112315169804351111706230952074351744585414950542256995816766661586404284147638755421207176717724818863271352489179658373690760546718989695675805146365705808066570449508779494139863776738506972953437101332925846148447645069993807398121676677553071924577682926300443011105666217623574324754351122400478645621430874045599210247732453617926113702882946424442301837828816259239512583897990996437227028623660329286837883086090825249640006129046399668841367727186171447808778996394311222548533168494943948458156912876783391531455318035657907728485884396347105245515602842812748754672553617204398074070480363970928714440406963518563739758014940092903953870564609179235318059877905713800673237269988252555903188969246233928587594500505145292457440449323200594038881028874042370578357142683119242290957442585295551336510021400813725699392743286598685649274906189853427518581640326996660629061690147032179157042614767123190678990325819235614976220839822349210491028328885268360395720527609323153362816979920709517388781220462863932962235340359886092300613650808252782548641895757603135909060512128023418228885767554818144267871702579497356559864411532993740386802145287101947328588206415066966459792980449882917252302380528824964605561039563540665514475724106724483475605223764756488255534221556780972836621724671792165223458871194050569305498807581789054964795834628418705588663750827126270631246990398914503044615854258237767593465684542486587792592202682547252795077024951862248406359032663898160698022249149509999506135058513974452241179721581420818408552854885816889686727902398423583507165111375110675831462751098795034695103513443824308933723486437893912653063667872843315215417928621599499392612525396981852925812054169144071059161676731614651812983091978281954872758485736562824807630052656690046700025669012425076288519945242423000410954222481347164358935776294337539544782182852860615952697558104355858930763530739906170104695423424464882135208576890776992240536913340225047295090372442354802857071451589782694651057186093005504028048094540206477370176635828556282868490012429350068542300741912814523148144230880693851128204604838418505902214070397093857753341638526110517498378619098853351056155921176623343034377917178566779154307193164886218502083338501674604093505668472023897576860150321950085800047078629352475911816561481300876685489194380209979733461156692549112171691111713849687648623485172642738740724413768808967427706677239499858663132163275034125295300787337724897750672119802018808183648752634106522786940014924554468480389871489756231853360766029817611708496588129621798907600646187131058427979046582528374247041217153959926393994561937150391127405046411197115018012523676659284228141446279540558770734659172860511766915766416709769998176069800462877662563078361707351675110046117044079576364521148358960195160874998393705098150705153623142966456729564584012988087031925507181540247144090347202433945079279918132779726915186402156262644545314296679158920699373892466199570418108696012542563139229395150223439961220966275258937884101753000388077631685556979098026415362277280807697140372560578767429387374201437048717164095853716453826749945532172957085887109337940809690464964317360115850832955035387757799679254615762723169149281429688179565632282422332450815903028668636754597077051214039202917889465237645565601842964796859374123721211146715272850597828861350053667582340889533743148924107719905194616264689713477141882465504015088038875600555732799974867485724799849525567923383241929364352748437392366276946955303494041180220623394530401632597785033901114960939593244659491976794160918054415095031499502287677512307798768815232155739427317867512114446449613704463417126903604032318354003431035349386833719040209044595970917356700150011960777650623040928941916345215934947503985700192617043018682661970736369860698068926605657101037230637455511755245021299513839929770713310730109142611122915893201693678656414211686334122480114638668296423295759113457952370060094528549530382245740747856483757452662649963199162016651648760688326877179659198462527155305212062487532564382260759503174778362419328918693028045152380444284606202675086827916569969321132220886927438581302811986905206922651357477014482999371047231363323619787297165691985802724314251010804233981449751741931265303257484337803357775882961256359001458316413715218337094501132228517485394874222600903805732145596982153024809305657946409680374788174198158601123479207964640120584074884186949851482428401734499475127453678558136990600640976413579506446338199212747964429013982802525967140356129603710576644752253671157387295304921418130956300331052947994092387464482128635088309085690500528556793276132129364740067155855384134216817212023394319776732979633229775978835939323306494277787038664631177455563641454588832295390538989182679969583256385709981420867127479793033480409365039581020786499186281833943928029431779308271964804759968603259922519577393764759699544582645603167309515731944326900113523122854399049742595947522563137930571213265485822001680185673724858784791297045405480660927161338461143278463728685432759562598594963231306019248638503965767202091097861328706979646939906059549077879232098923710525021367198276223638005777561713731761682912533638446106987449576954338133027359633535385703435494196076194724693837929935481659050892483369918240601320914267518689865694651877069507806244783536657239305005686254669366625522409049077916425497818782971883705584177372811075913459135468281348385274396450341101122844892015800373795596025388911412178000826016833554845623029707281074579753889772556625008987930868936738588083842465793251801398989501041089923964865199523035000886544151741297883038137043308955081939158092345892606369139727645454433408330464602552641584641277776104881082933972428136085428003814046654004748034111362542291028806566948733705914373575023653395906163240543601337928081870159867653208831976709454178867903327347319062022575800388082412166743197137697403753877783953787012676701485518134943247039528405076657620835544541514740440268070938788141391923475461262572540857435851513440908560553427338206705427281936051063234981355049453326118162578308680967409159357911832483106476348266079520592901857450655953692999487373686555142817327073870157253932237659697607494468909735644499959726197554051089867899534151855803747603580297928142325276351486271375126697295211701458386121606954705052956195668764744947391142537017823892297585233936712245698405433513375134382448815225590203776150538731137911166274003053160698480979008412598948719693959255617078788549738268059788971761017528709873898924518180585212136654387460251881364897609939564249633385432004879033423383299845623301551644824083799404148577533723582981522623700276905492241493694458454770037642371626227646474652200112077835435897649846157050126540419156210255577344700840294660150329038526523788612780064699151801826061970344255747024137826406300221790213299185122927640526395965589602603228581569852398331051741609303062908888522613011328104679472908161711458134911569367825299214417757995636150586237432765297803858323235767708689982572711095386503547215038206063212999208132868872181576592692918357692528827424963300596621772091184364117780846381323953426878384154773647689229819428537259042831051081514316160190309715353493264955191924604142954414581410328571691544244915039033498088856748783199898452638366929363201636472394438804593768370328770669595807587940776334202658269946279538576598277875296600536016048800004771682386344205580795897248319854818780210359974492413579888687119012306501150693460647087614372053841337937409693877229790959708410886528051820535006081419292265564898123368086622340018633589729706396319542008934484352344853171376803574312807081407467953811663904504933659973638257824650009766793173779643859157240678183395007583621143081874379021603526583040466516465663033758237740083865710796670748884367590871135154715725531507473876180296419549297816043159532779032093972820359024134375729032247118718221854022550132539572741280268976305717544138313095864707039453228604681109126627517472889435509805722236046097775447572097286872159192161591740411537044584751348903919462309756003247410059218137340529945128064250506927706742213792032050760221506329904219313853960187811506672794901380100737516435943429732354024907202598984688139341947926131795637424312673255977579023750483958727321898297917460406695881731137897062208639155636660859307330891995174301006382590539320491545116216617015981280746553715314007863465445021571918164744491730084962193832451268795392133027523890841602197372024969916694399354475225142335389650457850466691617338600626667344784389522049047232657733814362915821175112157061964885262042794699262799113261326787052164031986714457889386193375584726072676710393334900832875069147997217702572432625638180063066588049506610658088917898442817178113022585098724881081210656692002937974562729242004343916524485929812719558518234064342735083699565778865861807473131965037029095832447654257026030811912465989844487969578544734648097633717476383329991806655355507865904868385761647250813734361597579498575521623658386296677904330292982993015558409499361102028428610601523324359663860101037787745221346881933016334929136345593760638968456571704851409107619528651503478369538987360916122273823885196288894966211930305408097520515224778651577217421546831455940064166404508657405671163253084687506286667403606276574803589273633139630287078505677735636025427161644792923060307853605484682248645767744646159120941866584902258282712828804916526024011550220769485560609701348261004320045743455768130403357882776576160134677771204908692951356561851334876183912800481680285437812903828032867495191997080338028105111692837748933702095188143647573441818538894362069140233423254701050917181581632595787678419401708436553429734057667541186932728875638007005429906145320654809630039396632088817877013016821057419822474784688760158355968441867400734293334798923974514975004673254302637660081772752708909736214567337945094192585348414842697094541033072633926736805254170264803570161534963021141389234501205699663958955708493239387264802839670499054488420210095986106021193454321678303699885090120676459756544133537811605241456265736351804467108841371940950648892523915571320573833200702284178437380133290031475151481708274945977159682266734071645423241815928758382929546799831849655007649934239020992813967678842452456288812035069711099970090598591773996878919871987666812120817998054562319081434698472316068604242544159766766506079252368762574948148697011319314929650272470051351859437958613092761875914382217743703869726014827210828140447696098123882739576828158578343988433346357516049755916968499130970279384807759112690946325564112742707900797597249513738123625654601305895905697457021368007733144475457325665347292323930869710814479154717072438351301710945665470552971512266605868710513880592164534318476834885545911023012639597290271453157257640278116006477915153002853680490798457190597274252268979133626274838776490921600605004853812976918858791704151791697553676298227982219860633678447404929067347683130148870364800411328576656477114281848047956702826077793886386856870384143197642093817843034387864848658712165864371064740810650189143867378872132796674507042293824787742785106961664961020826166070512035057341349811565965423020097539664880217543798650981514873460138956063761211552712458066119386650094619049668040361803010904942887711708995152832480570745647531837829401493065571475705767613745190680441216448274281749272954704561262042666498311909695849913917698140523069216846996110001434091387599346565808274306643962912930529137357673171233162157500977004652021962836076884467625559485970521125742498316675727318904963188997868808466300798915421440360643176847213488062793472720399733930335277464936669477849271850555124003509626625961359957249969384399695950896861041091868140846722940445435313133332156385458416611664806517561880295990344554836295847515234357511515251538755124324385361867959188600152518002273886714905778353013270164728016073764241627912384639949676008041057830588741328120130231608298254383723544419581061756187789399548115092063535441197938832473133520883465701343387653704241446572534475762275207740634738062490467640432920391940829843079113852292182375738638243684012015223674698689008131836013059872271792751634668537738996991975668629581649211213682259505851723768395319053007553011550040567319685750879784087053589446073749311103753581867895457810170116880407012817889090368101123113903977888073102403158477257757900594904611552752646575665263016489719437700777880470261752595382897649720967539537475312625607817105999539371906790428454528888324907444379739078201947957838279952250167725300619588988509975777474090478098857106308572615298077055519867082476417299705089659604496440528201417580117845030513691381740074043797729048204444085722349498841390294956970616879674252180864132958546307963699929103919858785711611260950060799641178137970942004390303630905929461378361175954470791603644533358066759918172931104188424818762087833263115686933125539534977173045646864745201962288749424003685637439868150570693461328154308078763374045041620047627952903267106019826934264700122947516565913465587352781607888078697182900302606127131965557346578243973936340350200946424907435485178705986914557889741651032851402378459482037794147661935794685382617198817938980267633965092420577194713113162686689929981008931399178013547636171120265867284434656785792706610021669697442011571735551342937347876710777739104507078079874281345737241390649049331595643538562429097767575114120573197128116951803757657636867635732620483663298781949457544614063652887125081140759153721713605566330258924564912664042778683162900739768291638233720400349953173147708391143330323858468567549423406814242362397902918028858621422326134291888172996513776975673749168598372793405376837854618254800679268369897585915961851264189865274564721718707948590158248715009847460548601176251516361182009343059830644690635863433567967576827262777764627511482271245524695482405238203645054652733703119879621053180005230683595889917903955868586857317012312468671014151421748159104571373990912692236712585309300678868626374961276742022055425256492387334241450500813473356274447246468441213315136304478980599196677699461106271026869566261852023608475916410085573913135608624366600425196240076721767850569322422603074098862181164697818604367193793962121372212528463367297016502720535484157637243109967036902594834125111894434338813936367714400648722929462050151335664670341292023190724863740040597893548829231698080985076251484677915098690462221318916596791606733685545784302861740765210846729996679962485171890690691578053516420707917956091416331538038482121632219513607966217133716312837789277113372746938153244529239623966006007362403950318560385018096782019970765356020171400349956715826008398171099069602020233946678570181511227926678919542956800413299239509457204028590599138512243007868344864857583787709785817701930707944725293982164115332008710365000765681737698655294528328283444666662346411441676665231351085255213517256697069975182257599593916499413383661314497047086761521820382176141477780444522251722263008518603810361215897739730057029079614345229804321632455426010197603718773380104756888929782556517930367891016603107555509528360490389490208704697554536919774222388689063340246033051783632118199510992821315515874904172952465124083498219683220819861448008518889504458950006173888636385413654181566644173179634683791236021049025363017027187357498972869815088985349441814879763744732314935272799026743741229466955334934953744900863456806403167590281034985445508944131202639564132110097033419219253106176999626912457597212684506808637436543121185875205791682410528867330098941510406754790877076309823563419513146117827629030529054286385900008172977856270773123432840039091573089714803370208679220276917853791339722077142125446872134935272056613195324531647688675056939563225655475569158408361484855290647302290235945112218836050928872877789704687576689806092692536963390023883775316378531618471672373135919882694541577060978996577238398768936647889303743487635640587525383679553863150886594632833500078551276855680594832375130842115272365063180770515541305185433326512384084136419295944539014869921883174406190559208998456971127880368751866381345707876524783627585191510071032705507153880088118870948486280119164174173560930427560993801724461461253807780523439048113263494754595271363412161339148564290243978517103451613607377130141082047051412594618342169452865570757046547623047108474862438864296800083469763397306607018185456483541888601962080935312432346413071677758478839858211550266851849217970501625310118809516623713638901824354143560446573728838309720357563065818528393457400215125879734900959829072231458093473206743769888293499117172975445402671141141918869564399526816591003434144789684114389038270442580440689001916388361168294235869628214088518531171662141582146192062372029176247317471221634548871108430801679448966454341502456093715631030272259185743318415204343025778962566269347216592589714369600948430701116461792062309565001990481890726847077335522908980703537400101424046370147676389709231047921934755707574632342117298017434934094332296726299240028624344545988880127784010436991160096226811319777451850295778684980828155031086586347624223884860870035766341098391210596211428199368076477136286538146818191793367579972920485542317086541623032781883742196744011662496285446328935839758694557689746710270130220646670620996787130969616761386882606489672605878312481970280369684070443826433573365573471710764161181130626046272517049672974619102992965066533916727309175814724390748533909962193124441550717044578033374107600975283496340747347910741241517878406298223867408111871230793174585341375467991670158946328413438297861510205597092493634673828710803093645366365200169452234529487197847050168333070053174392380851811126158172571639033377846546028727184947770930226635014195560074619583336371665936290632921076076074655378116092643737114895672606259718171044773196214485014032888567227622925010503071424141267777973938736843691835925026755117779408464075272028070558744238892645369956687229252788941776436076736417856676354173484910259735982686636002841812296485696365892293341915578849858563353060136391434041417086862362134333327177836739820639652941855395277868184469857725870737728239008174289117450252669760905201984969694117341902484390001215145965603932426215983534317234667842815225273463051943470668149338248366187543173085231390860807531985989794514008241087883361162501810442309239748311885033317286840734189259170392691438784757898050413388928084222134151686404487003446333043228770574305178494738737993433197630254695593601540142555139230604096234429773438689783751945946950315924383468022690583993141425522799632819946007168781669873337343809097177381459867758507829229742767095275529977577923535243478898365390292259664354302690749861030782145583235169349469995797813285495112773194197984108375236557687717215445050519997567041182288618805735114700774508719787216925850341902106112662631664789659554150345490578491989971424038403099384928137048579476716934013718345074775870516800805670451626677328149873885860492470980688892136545875712227789612610256973954791256578190529009909553404711224318132482179699708634313711047532321776365150401083075990145951959765976147684641770528820943686482337436289128420043745827781626110984178576097082641709452858930915122364097236744511989855561742999742776615840224595255176731662071401964721860897878110335316237641296102950426248266849046810994631809603635731498156003939557586572532129918083848515487240338809404248882645136133869795613495816071180307012348770079128782517171052324346477896111220059258117586633767804472612145592049051498097118429577075204299548914281281102601013891026016739921641450845567593980037096359208206310130593237951256459349211580616725061542608068424503627323852819307679807725929997154551642305423404325756225972110838060624315610324410006071877331669644549419482905722670524127121361430538990514396457669051875879297545796668604307192815867250279870300882093904113429494027922304770672759005064657633379629966645789687808910951608441348896018645456932533994953456268533889710341308494918606094811222697239755968343650499832357121845543251298455928587785030040848752921382008884559492877760906761331270759595146889912503832043657776525459570688547050565544087507345636059717105878253711377171799151255449304061583344018364653789314370448110158897256527245933153237609068480380230959838355103083843399044977307297535428185781981747179640207846415729593676037921795799153037658843445706916082217878060706674142724945396106900131671682381172251986966013148444188730373828468483191243953157864610627557808634545926285994121286744695181997794826163809506273920512038479684577727335551626052651602616220235527316224064630709392253163327327375145288509239709439346918326417143303116508386832969817030050840779952451094123135571955514582723164242770390497881630812124896351770021789544285251748988673337086038877684244137029366289226356297970787259684760065882075686029965779975089233143299205653570460125482631610113944871717333035191173379382806679449972827504504537510041684456305091324929242709232946861689454997880739334861899270223026222563783018657035736958295485503307114557753487234375152769150460443289271862037892166776583668393058873901822244695471007851661414285229106859373180577595217375025964106080218418423346309084576375934949196896140763770706066681094812657030924872664373068960171413193703676874822061351636803142436805479413652119040295457641095740672822208862913552464626303909928921657825655529006334884577531731151092288780879074747316346311188080457966007160079532226293550858680592331340417870512375725956345900210299937777864673920016435953455033623244194951281071228123947236773657592290989407644984490083696756428161712451445092397962033328500490387395445661048216970955727224649764846976250781546817871307340918650748083399115633548758243227515325595167705344167786370990463629877852471075966222757613872267421915599603246004776225556729844853729746383350383094448166984629835933033174476499630291892837556293668191747205047113843774489382484424710598309119681535471345467400434218580709415378434289684067781109598199616532516651127768883131299458161435535654548193769119732161119757526208409344994713121206684561857193970240097128747160361475135653117385431424685992004443924064820795635404269662781284892637973692849152984183020547316715105030757979566821090270927797796850635880621261495297353172722892009789759020880990578445446138908883496770372884358530178598496234794010579843170204602325479268751762316963672415900780424337038658190915031848587474860323438126271600306679024060933870746983602706607264265904598751019069704744534615101664103288224888102481483458241660382449646306168628194988673765628359344612427035270196897769265596300741569879010101258202255234650908292079060870372735429161178653218908776714577384021458351784499923397575831136305239959702580079845791580540731216074785712421357105702254474255195758701514490893044168671369145157196828462579855830762812706783881810134278845470639649923607807592749163374359943487414241626616485013389078427895819457337852155616951024587469365200434339965649261998578994435651591476381886543923668590649590292404963142887906474169408890444933759337968920652978367039508317397345400224857013975504346592711050125700641510968856414715440340566706512948441120105012122948188050088159832724537316134396886350483605188249278570116371732402670298961131988893653439110567305780881076396184356827265792019471431516607859033744186999785179512539203503658720776201341878571402757478984364640801622675693357765063557863518920420860945505870932494933041689822126460725538223064532238598910780117688345897667457042610609011090400941545391506984751118625306777069310952132478244473688532802443325883400323464979076863057933985517856689022289165560860547396620519726593239740874457480605885605023624604918814750018035082635117808416181802743148755472200188826517644677764399629832647696965631602767311528110352113275235180824212106381761059902488886916906495946888168571831460693081879395066855014542627156385683568506578316200556075237997801331170866187470251570889101599721713888983700968000606009134695594086306207443880728992872777931359576331668996268226533756281166962754249758303667741244678202553870579433744882145063018093125680793182189435542279322020866712188987715982425454524425600284127246557958468932977868132512411461696701105544533813340924061802616180420094039316401655836010873237191297155823707274154019122891770789338028449648414990485481710748630923778355275783023385665886148865613269620462790417290942022873867835711440146729985330214125172349258709250597584611456034780064966106770637725039138966575414077937558736412998035495463536307675599280749831922155072467451701158326830796716980729108054845838018105722591343888770793303357595327531167405040770856246602940943732499882821553018486473148775378241090965263155375884032633979382828104034759273635530634722564225284720878378004720877694395886385784993823568097465649400245613597302554451009032699492529633928798696359564889322296226252269121012210401882706478036302643440667271470820095000009873583809223593855850641712969383382039476506084221241223106011328877148426872276247124679564267446234726456674673892197859123748772954526714278688728539808672018042556818659811155153343363818120034319533636570447774684268539339015385052732803506956121816335108613036332907747270546143804094413196533061374225597927010761451563511634814909731721962446565143174572180503057950752288424957082767205647651885083400315035420242575581647108858897280798117287004158948904201511689602935813871795159422833599608007089498659758431661382880982840170259933159391422675671218157131846877002379938631065860102500216569854397920076895526593247764541631560491046141177062902096728001188506629427342481622793246276241293052875274649555570075140378802073115495299816725386866505606147659450071264364676312388639323426283950377789734055807374361212243553872386906040711025033736692581735267261254937971454842150375188176734638382408424734625746336656929273423388884554179034700244953904844331692464185177767895400164975763829140817601978914937452621869029580976447270477982230870918055757848188878279840452165700613266046999812856221116057200017607218028506402454051472208578002629895136668254411771738125557865827039672413857170073132825913535288107545151907294130257325272078049084291386639472358043974569245715055177477487083550598639443918371756543629408281851366290940922982324447880889160013617116299054825495438591571859413159950057935505111775487670974234886743806627327663004560534946874474057959064912491345368230412063948084683354099217618184870978105740408305040325675258615614271046150935203735668368514852437286313770956116000520512369931997720940598505428998706898615142621506784957776750247932906858939276726011575764363968193066740730880137615010895297613823165297541655357008756478367864738616593885815429621044504647617544368090280293982223710419333391610656902424358461069785366842391747947759032413390601592824148517065484284136700678173989415137125564328139369051331237174353712844471890919770952712181587594891176715293221296218919768546083730339724537817512724110843499903900942784398675587864601340179228990279340161072696716541574058214309551991627657705629568614870271615021846134885369839309168873614534111662150948569920584193945371543536593144094625532166240500670416197544028115882970938551493856320211944695758471645889225442013134615144103146382864077830072312078844859818860768680667438996032950663803051590835109560777789421374801012250930543722433337058331684181008607020110509544859353779700544280720286754184845017627820290413695029523413033837160414449544861811560191916911292021791779461635178086216474230235565022011407121762627348057509201791969564043018469979846262596889853962622330018702933439028809243640373687120875582490374353303464137269980881271297462276832210526001655614560282690043940207036606991185100966971979586644993773658334396137439207691568446745600734241088734226331783825735526281362312857581402788505063279264894530044648046264969222575381951132065131309128216734175544348987497251341842365406561771746611330045944516014115697749052561613986269762402687433425815511381401163713813925005442583127451109136538287252012092688031292962368586716096711387476227572669193921161110104088713436562132439346183535246008562418717908816154975270530289217361493442274319705299680292946315865438214735982491589845505308754686690965040840802108553763280816586534617103157925138917223376811474244602442691046238461186301821557023754497104802162137273800527591090025891941628822787659342966784361052127824436879458264474922477854523025884875452854415156579879527877677498582293800607212195866282106349417583272552935125453773778501163031381259363064556042602756810947923375031988504094355444715026366117203714197694764251282110535070444091798989434466759936764363672010628799185964974786797249832000677578677627816878038276203109983648802147341955182926442002294346846216066222901711156935180959603320403977477651019262559910373199007200874887600406437974862520565854271982696050525477740305352836953926387934486747355843061842577606925115911168006283681855283142751677607632446508681388408847688664815093842495012195453171430332978912531833604824138032788968471793032937552414702814885250514192449186389049647313378154288098658206406260375323079143442931962774216397125040505951015668619202630306229284262030208578214834395902323562056230309520042702696523386531238044132053137623108542661569359067901964995123976003640913580470575433584928378895643663711791074758843714867648451387307701672829272070548218500943302859687792294115202762247510236275414967375880495771390872733800693938835785387608607801866557768609725312848352704367366864905491593893618071607100325497347006932909230969050577388062289461735391117892415508102588319000636588201219965403447666201698129907534048577516605907322380545363691295862356645119857454175240837692156855041898798763559853050650643544465338704966777168059409095594837117181701456207261640795974084475036470131809072825618648009455072705484658360802549701042344773612423077687162262144087886750166367666541266520235210556517594010219386423693453333062907984958660789091624095089473125966956551228723225254462796876774570389835644622394948246297603148871216301978085425038683791909388392643868745508980141136788665347230510741448051045954523562537499838622851640819876339552934879655777029432563129114179127513713791953495245197143741971557942796299730711831454418515305015169128463911830697790640880700252833485250894363775036473353217089458145350732308492763728131758260401624659651408590005034676450407285276662399753943153058274843929687761731837495355368264107083093265629541625308638306443819884818885485297883169414351871735167787885394552297167001563094936637383437448095372258956124758616351211653554651982069937547659033417949489649942599165515439046975526398310913519486749170765278479972187474719206847287946261263277791962790868485518916269030328649553136032645756596781997004098050885820738196809793151046174711847504868610797659461329968323754544004814345374123157231571509230794812790769792878381967455214716031151368216285209884086139439822687271476214931933069948583933330476931661271564300482207468676354737958982162173044655332813273562961544625828460784627209272707477184138290176316123303765759616191162534369577911874557281366088393979607075563786090331134592262971961032467618770029448731428049821557346241599271679535639148390443942013813232934821945744689227722695824990186638568869670444727304769684183503915048305046195474845757942941962269002600613193960830495130043184083451229841641127481534465867753944110114884192545315716150220893267387609524377090618816496349298151828360043180990487000305135145322962940592501289498576099031908430636676362836107821486343470982790210290837243978268468371315919229382921703548514023553701991965403696408678925694181764990799579419649555336414872571034043147292735542243886435500636658206759633104885527845459295101138402521178863295096526916594457013892321276097703830660080819649324429973991851610593375820269208782066141140860333072646950419442674663446076469270857064510025401586745691664051956161014755804533504656549454561764189346373253202255755679369545236191718414521316421310101774224310270261481950241391006879384546059538167615539759710994597034386098417713109230169979879891361682127271801388858906596515009683582768398105282725354393381732032640199877219242911682249873571265285550914356030612454403115346340817158233868458009480731646900375143479760092672970422272165409395972395135929313568889671464437306765252973921032173251289508044701339905820266435931108366529381679463802567647804194348773346994602292253057679149140541741250705521093024263616115714169946836737719557548015382524423261335419970467027133215838231341210921084809767524629322347764294882253609887517870828159008099376837696031214767988665503439844290325776091798194981909692299563472020818492897549857890952643917876030181434964008427928808640447184459676779384886034163059754572519342330798994426228370018666094064531991802124644493879901266437544558588313958311558682703114903312002516767648400866284477432305484811809862781630360396260004549974196602752590035334785562181875849818012901253483303790213471951736021732172273885367282025632115323660664165894339366081807991935346498735463709509404905763687760240709249643172348675606406388169746755956746757968258052189590691257677211314367224021692113824441362449538074506928937291680688542877258865246973352883773389503314612330048977129378610094232541839988614774070920416065986396904113392022549169710899033968307631620916162071799519208853556265675824030199638398690129551939086151904485952438724676685947637081859063386716216030034146713339264481958097940632230844698755277299790586811108060013592990810303938887066558191825299882094045734429218065601448822212145217529639343485635851917964726523556360454861817049367876193615113553849729174051438646823326722785037651044105051142791476240327291054876960759277467290121607447938438478590097421593780865208149376090655279583123913170061781784421173415031357123619016411893730387559738618066653736076638018087095223134227826958963121456341065778198286446805263071936132749471163504401594821778743830691797016639493715807566648216273816326848315428410273493758341913945695295205865152793810480738470704577524159986266190858831644950109798397834495236968068448915931671840233462705540957761951236342102097404506276255058561443630779268047467482460007873734943138057438329083726198493793551136745258522258083963479730607515327680541947675211022110230460851644911028904720760020630826621910070205736921123200432824526410719936017364325394487808741622376267187490744004819129359892851504982576853222196511955308180285610687322528483095067336559084474757555092754966275296381630576718863004615978077974786196212987478668933973026715970004370243008742657222371079320995836286732507850624906174044514104678554150775993640207385082191378555858034074279485088533979121401890299558541094320562035231002431855379621567571364737105864100139116497382556066215360692066328951950861668972903035640234122013704207423894090275110938929277394008248471964681867701683850510164095216578421735101464075548373917047566342183361993596071901457029156127982658141225930442206758901622276749601212588126570725713619322812104342628950015454110989780760764981875193497815653380894219817640630299647013146558449405504352209640870076355164379303710067571852943455984452433498954717766587873727891889436197624445463035262314494069085570925728950729157753426014542009025754331123870222921165928557325459545137076165170995088139891147791473340798169798318519078736257203157773393857332489623909127522454067872883512163533267298049971781778882486456568878918570310930917253560752679709614535699199715018201029439100643275720307704508861487851794749923854238757499350042508244353453386621372494473444441190570435286438392268725975735368330124950047385764242537775994999756351815442544582351639078991861037972347453153301273261928026936915553125301056173058302183669303006371386968017066065644908787828223716522713704904105394696916402777018508712432501649975616610054694807988205177569595124230759410014235396575798145771498316052071902883005927175089654822473768801229645411170866482478037411017015342103376422117156185730188421104979500221778626905909853086840180609116257029935926067644953854913802088680799747466895938561153093635979191395712602238157050747614538871987715563191532209221827509340208164078177353101508863515836008972744911583333760081772822164244914080679232981166979780403580340547797663794418428114771209952464135668073378106966030792866930192497999415828956272526984985940795117443266550925788690899793630381081892120515615494893490706814317318895627474346733455347578017770961578107429492585503256301815515593814823243162338601577213910850994248115094304146179303807007571627027452343399036749213789707637192146549461963521126396058742885079921902325444338223247460452311410224688592350147563615461240616900142810382925967402737846301840262179635486485672028643397378306218442352075723794499731191678970265224432960558546093611658372224894293184317155198893199703688752329703744040641701741826145058890101538623918069404348979459057679129589878573323663519612355316998063282561159600819236640452463319988781777920205114804354025607662156341033728252626774331164005079583925039834688317348828753334502506703362207319712566207306925861179961863027635057579354729859528495993526640901598367876807257222019797989140924920767323715508040053593291766788138450642643749699667592844693447926620509527325109027856402129508454402883292989000778914001830870826264237941637474450134091852658626370621001093847089625183034994694476193755677978619860218162900203267586675130708862775892258530246893626911668632816324605785364130748846301565737506695126311917208340239757295299872382152388173458693346101553733551875678912578753673355131168288419487067916443251957832641338198869631049915370057856421494885703613323818661328820699866404457346160613624075578539227411137192516609232044521804169644762506223882683160642546180844601112237379987682401561257423074395641407894505863510939783449060093726037304106579477062495910154308602068638705897152317346471302980577975912638796914073126640933683902787997863169616293168036381376960038705288472720445465177707162767017264387693494307577231091067563754293479040590075175055474026179580348279475180809487181115080932648133091947026313481125152248345881569640342773887447808499073065158451164413242754005846879803737097026878563225031191388423940936450881533278732298442355944277921868350024839686025759576168411176411093300068356745343944838379721040906440683511320392950157660670941896425669884616856413465792862160442317185952335723132950397595898718912313676451934707746351648047030725141714087713422962072093729393017094656680836988944811555893414645926652729084822084098850368852774044739572221967929761862210775511604639894417275000615158204114208216121824428108804904402518536072643219245735595583739549030294106292270630757802216528249420722411554208710058149752989644875523001322499787236612172232779772314632852890258437380569691108980681554741767831035306161237945034587515961326099926941835534345630158037120994898721121193975780563883988774338078919024465531496923842254012374374377228680926106949465273513124952654791064993232517704436632738081304842464291737419754856657810244417647165605885330932333710883378873042968404173920783263611408236528452290036946241905150060829813281849073333718027770153691201183520004876266636244808070724465603133467133203603983630597796711807741671582771634268957010247545107322570337025417224306322979499504935789492748556385001595650154959009487703278868291381630197096660731050848781749389892776407860129014388940493694136141471630249830046907912986184219287331478745767507549197899974172617381072108285453065394188507715711473232481938310816664349506582366092159250340473916482547507208511613591842946474115200692073277769130109268083973315766044552016447407590693088848330422979918694833516112782033649468492598425127555042745222151464336380168780466798676970448010708797648569808086298528959903739115165495031892506471799749328501834002764431181844204207633834973157691698078261533851034091011715182635885380171059099563119584288469733085002991477955765802549143232562233767930874590604551128862115582310772662617854054689647078151405882110465946068099528407324165698613540133825494028294491600100791977891481119654307859900329118520793051672162878643087661757550029994134893514700757298485999999144510537822190695850255572246367690303243696989813376636244122456695703678639885546844350830453365528402353490473300440948472876176548513213764534302449537056625507738819586465550527295946826015709141314215593400839743473897639693005591058503839307514998552957203900638493421759370958927828834049191909616029825682959280349751961998382829636124773200752190850042683652576474890590105875792250951426208514889184078236327995359299209892299748880334877679231454560102435172270961727850658368170204889539613107458615957481128452815069064894896028627812738933966691355555012256384021607733166338499744581526115900016003041972763136355448988574084968864141312480959729204672210746166339736943791489886647203702334119654111519375720971589648757604627467524911802047758543509041213300630712932096512921946731626029873631596333475959238670489875113537711033545440578668458678163922478775947771626423794112559323855505087094878045597280200643245931297837634146461491705875520709330341377407804105932388311495398260096812279950750840709972602228746586530140394426307394437970085979646935289187792188594124417528305606219377620734324073897943059931929278101708703659892204831044028540408272848319772425614073151712039503722703669601221465290752326649945638765386554913220733241626728724544862393532316722140606909183007560733273847095067917558565542729570880717723856581978859491577055738172175088943255880476848827098396653300825724936000390320010189655657191940529978155804162448186217393624704908874905841112843011611726997246678280678222886429796445858405428342860545563689542403146987165438506194530424038684273421948014577988064042493222129408079829684343423029680031234384687147585816318418975896654136271815936091173709636081790862065013993913414438566305722081419638896947186145251321749076678708788904749951704058028316164032017891736013110699145692065735636772434881098435821896965752504125655862407306358411023461895558483450827619346297341410429141927925648907370921382758834957707581288689450430831697194183809386577285886266728207659425091883234431559552936790099169406882611702810395108890660001617343164489993656896718443056639308878349707954946828111817673286509053933227368129133847353922672446568352176815757670863473820069171931110148067141685856417267611562222395227976367196545509994160288022226401478038048331157772802426997668826515061482781139791680546909708090003430466625475919499933052770901188751186503148436879865297301260578476074879585434497350466107789207022737349247402622963018325247211828167497668145307628326139833047984344754986511410421195176540083173191678862768256945045089190151055070791635895596406948586815693074609560891013247402223810585921441483959377663210248193267044343985208848688918634902433747522059188557081605085734460869162968100780442558439295629354340395435531501704862304640545157853908589028638634516879570947299615952546296100098738827702308296339913170464881293547920872733239304919404916486055381674726693106224727237121946827089570809753644104797834264485245737470391494124195714210534773319634977943126650843957898499201618606625649409363842588440267516229913842674555713018825136884633029380319337629167006831172289824173793129015130806949642300791696477104112416196359838715993882886750113877764146849204613204448691466733717956901838469854809305449198289912197351057263830640648700952990013998845829402327715746325046024061553918505946229778488773011580011572685915055067843502290892473137577894425172668330104007979552668050307878229710224740157768311371770469232852655932734394927383844252640486889430872766061791204641651259096717803315340860110264964096061881468392968905444187728904286107929693446388195400866428622785946913407407838646307590789448611101758528774458611915433368347847446363468243643490518821256531450545472112716181432310940777840196457424213787978371517277683379101515966819107101132635128240806646244661868923189305271895431102682619846947046273501706288710621948349399081654018532695024335725782921212229398188382208898619178626034803936685235804017862730664440689882939904621025398118293765192723471514337555805582702234311515040172453190107433369988022197326437592862501955817652045698575483174180166253030951650712169492722076551852026273946343652499528667339849281522355967699325812611872209531974443060793534681800537221441919919155108040567945148603523974577521289780556217215427843047231790461515083755859054111856933215731844211073385201295980361982622870481351740299936378740497514610722156871744525442461712420921784142677421017192088306043704120356889976926119323523839753542993527374190778150792934667944324562708770149540941540545911275702731161106070662319920247157886099857735990813227427678650487762381289456887111660071158293895515344453875011575362035133772798909559025560053494779921111318272767632579333360048023407824191356528752947220221998026232865506417821614830232159228855392157065839371310598418389094992962418938105428585204305177866757795282747435012985729586154101478504556478598137339992084216404749884278248440497608801276107139910364546953444193702515066058935833399874538242137847787912467149694400561794389368399864145105431245191504875555758493161546244908653053397489074262897008549568572596421746360060047411332981798239026714858090494174675768941344065830802603738519824392664332268093096337303573951984301757381315379567180266249369106404974664658305188909254589391235040389300095960670905100779945655807899386624107660006492188117972297183076667898481321030802076450347151944189649684047043477384888511724732257722475598266900954349151854187050995573480880840731922023024375868637504498108620035234559682031412289431705797187189878928081547860538041482034417376083880391440876137681428014956990370210274414060153072411188661682399438906600988251102775647093896391929137240752409507558926658816466273457342804794238567336459184851546765649154506381060993895516277169227150680387930258812417470111614133626323405566885005803687362018007651390123013617652644129205126472255364803548839831670011250329248403473376341144623963707029387814540468011618825979091788794316250285851343055536688507689912326788215014743157697457449813183796579499263875669461111880059009339199578914918559595049372718106727037498352083940736258439534843716615401860821638418775374093057502429465553423107684177238782159842079765593987889018814888909196426918299380014054659901358025827439850060193592360464337442777731589734641514173113851625711779563927750787951615034967330244876816761002414016946577910370690020797578928372474976003831215653641626305998393245955648136975019713738816881705373007226802836737606880488554574288084612971223428262740320857868985529106191199175524630080567233993244912954502755341678248051052349343323239694781471180146948749618141958119544024814950213285986494118155592179234953111296670590147308033362850973349914822096834959727290995771356184219725512824493156922750419141023896046533748987555815565011454746467981676065428613968856870845134084619120392782105828877791451828998621905514430018875412198389673127938734487762127795714345715979013582521926590558543356365255860531346919058323122826767314961943321047008685598430136185169996538189208148220755505291316950019486352909954217578598781169662829489632532209962804062587009442359779435155855771216091293280690870165610532498338982300359836675207646054051844683279431509765126989136909549534992198142978378277413680797938554509553709533917048735796609775358584592869075805818611507392143487677995203046645540242746357810114753940999406416934197807407210639174720852085537388398324870681600976181452895371180877572489974071084117908149205340302665615790789399338329200977449930639301006183382125593236281310031450645685128528580802493512948440328670848817081023569065848857187258919995457588863418125872541684278078234286347260802905527075570786892516653619368804048962828849143044756489365982031974334631106808137632943189909443031920411710147721674560881432696677614429274164837855710696784377312785860165895832864193212063379886046205831714456102621912200722436169094697648607786856243740914967796458694953371372173307418917563442426299538757226371106010380523827064026900337420634954610934726575311184601667835511386875048639984860088964071321559847669864117884236088686196181920382231422822909004399009000613767669245243748934155152268707111159892150620900798497213309693272216144932132091983359408864769195778444726234264434548256536940747182467895838135356916066689009696624909501187737059212348641198450972252283058655928431774523932254441036794484924055233792443358312698046710387630924196608925691404170798550903281274050031737367111683881562749148917202424841894757602254818872015977708203838189906035224484544538450801062879806369334781452790413041689954047908671396310065640958760756800388609086767864874739270004487773464752992003603711314510743240946465454804845605047643254018352052052204530365464937337131978028608948722063918982987228653156496902105929506811860464769138444206775839369839496887723255669687274278979693631647938571748906569558923792327863621624091681084558630690241780296841090194066056800691556652140135434516580605949319830687506284552692066993576637065625689842799076412095826977123837919799401381539756681115197320816469893435099323248967258440077550350280548365590723833407190227267863469362992721062322976939756198464901504304789469719643147740702598488130431288973152580840217879152555602728157571424459893054600203590484247662826005789812904760629824488877059682644324907863454008232312891118737442422194852960311407691242326163377740532728319818847075277170991098184868805556604897753465605325375964271883677184984809184060708055909431867273391900681779274933819167100866944759691293762550038675502119482428393047037456705912969498323947465898420432659702057518737412243297862223095183530878025551081956447427378209297050916788230815543178356205336072678454488329313739116700422515954085971562583339312994160372183296669455539036401559928213206586943873155747182587891843934774162070508883585615003345898128739621296262557904823888414126926842519585996537333242596468063780878202019907629766546541872460449657084765149358277643092689046031006959713915494707145314909557325660982202211909639706363239763556915181413610647912146779509519907837114411062766292132837148471616269101326363110041940967014491050253854113384484987983329717670396025245829827521635386189706357159671988107700839752258715226461806437520815585969965963894372662709909492130667886298545560194113384333551237937076972363420922050262133791746527184452067765451169104839718629704387043373909909112139010085099141123828402416061528951149517596151747991982686315493999295986149387057883148901120978043664628794140951333774982727525572316067247293634333206867292025679158155459237404321013776273322019778008717869099732107450026164480654041431263065695002309789996813651395021104476304337474452108617403351019393136696705614011478378505401123019302965280505590079868888821948493697964059609313049554874228427078057023302852197938922850151024310208635955965943750651252057897942580076121362855791783608864577891223204648259483236729618226098178318572536860409947185528610933677422426399963066072615936112506205796879296729024652638612680990473969112310639461580947728727311875092407003822382674757632231883729461589899278963452530210942770189540815083876898101154979285532326841947131423806215520156784717063214639232863369323291734512179092704180006591814700165378264954968980336416627491728454083427209791399085389723422231629741796283421042316294927138714889373402080676346042726849093933591160431019258091013572765311984632096145706529842793990896746557098971399102775144081157406767380204491989030413038161028424865243282539479878506483173287948696856868210024862686956697677207008616418140291739525459386648353093318747812683078181300773420887851822527321464805407285835963875258392776645932948423699793027158881490085136825717451441023226607772927275006472031710719520455916569215476605621739505445604579901054654880748746436625911948935929050879728282532676170643279786264459566260908898050347806787646863060154049974483061491723075320362147265061189898298892014011360063389870219143501335620007895090756419037735750492543655255719279406948826975285815765751972380980658788491438482422853869859439040052447486639569120963034917658029630235045809053595012362610434740398408297267825374806227510755078082331078645690738798632302521863806336507921582344875738107965352240679307777957863076667266088218009498368536424208964395368642247867107555541389160441780224282594493776194086400562155787836128357255797536686513029756152897708630217847311800405304547882365823235689657532504227892473166093451694718953070589741116359607494896936957012680346721779201175050549561292865200566590025306523067107798641934709890035130645384050100877240024130277613171444452151314524789187931318012869428411652639546532223031262074946987571190736006042182100201863028562406927789390400987106714044013432438797621918574377763621519538137012442072185890255847993571989427641451141306654054817333974549527625889121583519458318664595708405805082403246834451323173656751422920470880114473413818427743272112212616360010314503151155593376926147427609697091427795638753749224825090340743495501219422218389762388693261323545591546359942022710560646796482919393113370872067807404874748885798354063175836613115958337159793146125267304578640689371164161508465969670425788162309775589179286433143636930856250126602774206444804267541081410528687222822689488540908178468223136729385750172382019264188375724849151796275166584684177975585466997810483359575636315260816758070275791517975201020933753335003124670931303729521861436685474036914912498340676840828861961020378415730869186706912519398958526113683423543434935291341083002867498321825019716747335291756950354266877113288038572150923617236832098320964172855482571655167089370467082179530040014508333143457794039726497469128919702179905576838126684471748977259408527065990423453918883094489982970869626706906146718141236203092944985183168764129497136553799359406410317013656046841223256122337129059431393305713338288221193489438192893241088902851502835361436695074217344579608293578215548565783603837956481172674133230757173659458494418710942858881566735218694025482164451903433155951359157940862962213447595984439031329932990275307921830909772885727885338226355930361430997796701416959522611932130195966055941254522960081119807594737815532047866119425590068275248201467938942029569242992114066811371764223481420153988748850372900817879344036893050354421593686064902349825868018363911788589417412439555971784583650950928375784296182749662473872928442657337088892915557524955769654214771025175065757959272777266405001855949522897762208142707111946270734694144748920717901027615031510744782155852456972490889067479746143229362168828562998905474916686232148137552855855911333872519266589695290928870276685316283930328230524357263724104638204640509802197177628434580900860544120408009329156914789350545488762311313921706781318656975485963498253223788105274331407798619218017164089687836238687777166754600102037726269294119711995865635352477842630224723138370783619647381064546206251711495243700868271155352112113721709045369573515416859344956147253509276642118334533510683943646721509364714854484103281198056987298597954950663116472919919611163665690354149656795633220836725165426457877396286026788936849899661516584765463220652295115311948737060558899729498426492088979328430966774738992362231389509726862844861473375530165141853831137401776686192485572230170927536093188927389532429616070200208364411472507426440015298844550292719656614163388335908851919281916963258176475679282168305016308801584775145378217413218069887273010544608572939622068978141024471845697550313074325796397603579638179957949366789953409144608087354739038306151476708049917762620779435488436260003385051817868231194799738319475028117443164425975196838356063809684500835182325901055777487644671408839845416546284284673273198889738076478544451294292038274187743431778205603847992084005610157077338104748619212674200577199167509136202428327949028010379256087255933734184475092280071376494932219943923716391445617700627945413495784312086397366621162305706567614024762764645601983818434226907082452788882512351682872018085342507911608609119098426595517262547918226992736783920493927496182568601755764918443774521202874129551083323234660312464338568161408252025813273514716073189681674708591917692993030180469874113635134985197006341184678004088962379510864298633279132401074872489292052246866717300872513185607438172780300350986596883355684502141476526096326214556019466792402107079094223586721272548953659060589483852695146926194982413189885534362217950267924315710901176167038861607408510742479402196770823659956569796724664641581032994141874602831220304747711784656219145745184178867341908311227616187581910717936947637667374944544209827296927197487052715808476848435045268501277590416323810404850454348040506131597005239855949357587857417445598690482950684989601272613040927176348479816753870887806472922190161309997141431647330513660277681222299503776088235928958400795863548189318194720695807780247961847395559182489886289140924001696448158437537993636818622727655593735457582889010279127769607869798719607898894432228939601566507180966897851010238142958599886997793780688462092214425810660002154332832669821681990049643857897763801739995895328612296099284617246533330653220110047947165237519726472237012444463003704245715594438666401720492052250259780996750355053530947534465375004766658400718961526560879437826957281626895295467277040664742250286339628757780399577026467741370805316823389751192101871306607189667062576989181124566231926036727086757995491097220741384120577255130773122427112145477691562685380329133711715554683730126316474479831483851195253533666962980466171799670481662635058004153179871806345967571668262464865042282153510823266439012276519314563566640317469209853745932066766301412046085062279399864225439365582814763626477531952846711438625042214117862435152943902637593632735379745170135825116879583486676536188534814586180689832773092096582049087069085288094595807455026152894437209845885059364098762549524915399371663645164085196253411003028008514327162106668329236752391876079825793725990765495106613181994152649709841647430957350573300087812027472220538323352119378451153887041330383952726300756263498515944856131801748046146741081183253608967696077181688636816020258408989455384374589086409272040889251485243591757181472997078587583686775126461386416690899932259518759492947243777143113853112120775911939100123132282129296465860245099338121556367854136777370906798184252838897938514502919247811846993297329733960950304355422345196753124513329695008462076198924878357374640733019160372992449949509662732480261633739983107117623251046556673286222842856791632646805174753987890358806280817040919010573841259452535386117511171570328087067853348639595244227995779710411036320607652977474045649098239261527499913015631031248860603410877981149298120666120936081830657196431771061868193647186814983545387748063977735581571169945589810891347397226035767052082430766925928709089118047432883414494506749360008378905774622183899258928329912367370844826465478450897644277897803624563732496037322947443468442308662085390926859732642799823343973144182494527984606325203539936328658195811431477672953788936489623712640870375942583290823014255720797294100826297768564338907041210390223891759966823945274951612708244094400319652668420671531662462085621308595180561707091497680295518632477123326194898194740207380080207293592140152283230048579852223750448910199914218174336938767714464186798194212748642791883167416499588563506083655340023236514866287048974779959605491510442289026008970210705045804548290138142736563026482533873679335153613569468092037982474960872676120998609139303180845476010614479128530027769845308657351671088688922490682108832931072629171689904680975789311411834688123061188050490752740732617442932576978491457762037976897411247927973685724839300727492306317390423568341143811243994085003551628968796095394471479147747902643203968052698630691619487424518010287390512404141771132069862110003353251228511054713868750505568590130076992679204323973849321807642674037191640942754459202620542270633682879567721793872038542340274857716321914702141480422418767492632446469499018843079619978430752461242310421500426856037827664407081842424249574252202534939298544772087038081150941444021542245765610726466553124256953285933809240830852336796079421321010433288112285696966271257785723256167086548318766514941711020325125093298074197141359626283427470687489309653420773691024764974702307099720634406464579726823652237345890469346151426894710294863004328937027206741407636591118291612464657336644183592514602256830954744330810635881975977760269351102526308978869529954128869421870318388633655520077942322465960182173773140093231163331712918780127012403943073665066039638731576046457263606371960020643660376491865625317854476360375012174380919246326439608885544779853012911173718702395713408178890446357719014610366418764222928850987254487947097312031999417996105838907981207149230953522262388045401475013982187656625108876001987312757664909819565209835434391912599760659687451816119048592878561107134239776937362018699496384040212964864811000653446451524528544002370374784795776314485557498709971475808686929518725053008559755093802468844032931581056244923401721477127786758660317782654587858073302670356993229293307993371471705593757108410607516711640333676656492989213639795335077082269217376117770771676540289298859892716562530754853260141176908811097362315985339420472767935488431754928547096002180460693337564562023870808109424851228952994550675482894227478259550744310263244383996993757277130084681148218792443328762723452271193441031756370703712216273421531942311272616480416445966357974249727752561425611285605339269464178682412606568803190677276715999260248704682130275437834092986768733842294161516515786166072366153237430418966707281615703274909428060296573747060025729531391041528354014250600088310305474955090818353947103118905343772493684996163673622347821980526196743157354583092745917050063341210506898123152276926435347222509689926814266786924773670071854573494995050740871796771532354902102811154027721610686964927445011819230692271372927002540012062008419279908635103539712267678859406186627047452163231373976905855019807496293808176226879168232362894376477000017099491400765479170114348910648536043588990280314383579054126255475488982336268428881365962825007749295573025899861963123580480956054114272608390014172767685965730757982770479232884411349639070343801710006138549379162930723948181281882964919081897107327769166157845321090699145414907556990741612390736114306269160591545003686582398945507134462411277299779199296471342373740049440270449027383450222834520467517313038904826328232050277538927629685151968189090805654226108282946818071305571312880861493416910888500718494024470132681072225855579140534953727730403666215824547782739578303581500999099531883274643834164587530331795079286477880817511239477951761271266686787624406652669656251225717459037645703470586672439813074711312840154533881123514578941419549232392731348670336444830366976366626378239930514367670006599859436303771654040011534344952181211743747070337700594528795194719765767246279912656194444604124807184915692289931345015783456593924893986981324943380371995396297251228675179608393283295412797429003432023521224793466713819139989146831698734829962690864643751544255932015623800641805525152647644569253508530279950326339796144720103308242577405178357398837897822268188896037081318471661703486254270046846446288062238906318337104109398991112356745721405805167997810911774964145237054486420074675808880009094340744945931383338115440765747461571834456439554447341276942996249297826413077074168815302395368829214173926263768917655767593557397461878084535274050208131808106875797255822096226044884107950294746021479496471042272597030826977711825030872322472076476125260284433301618296215068046162491377113652184969324376007505318922600433715072944005522699032171382440689026453581332976319154178246508289785044521432309984010217209740560860529255517799014248326771575051791420577557672173088968962073918750984681036732845857694151242186691458840924267454041555885895993758598798572678907100358485801679944675239809242594891458341339691132437927593785274293434465472003918689155595475397127607615044697487856819593635006536806140934471533869235579036821689586755142781109816899941934025165261156848559744127137179240606608331659380401140358912546514305724620418428368192305968099295361204463329595492598306489690074862736853238270962358384095640245720851948672388666342702073749602299662296932852857208458334258538315513363109332706487732195207632831056077349056314427075541606786378183602369271936875369516682255832956744281778044981102838226836466335422030895431144968714920938911392798726410117961655339245238227103862561399692255537615036541795412023227327655123014094569609739438998636290430171106590583720258299893056650022398677147846578458434704289062964502086853696115301005667019012013297732557366661051854220508806154947827137464075542067049139438107342534719239873893792186727223585493375999139911433217302520656405634090352032822809281166327379646137518481716957589812749046353215549958045550324923005919315815940354083032495244879198700571199750377421302342891193877428146334359289806796178108328221218708216359852909912528244911566233352681275909618385931676188908116975433158354277640679086720628379536702099558106322378839249049722592680950879257586777376976129658936848568748823351243465360613586381822525333956066007816744321007115313356556783156700251765489458164381086600404258587394575391287243837387392165638279099381610453690705707588594780609159105637403405954540138377519993237475635695319637922559177102409601410485297094218266030842349405962491832195249907574402310184963996445457712362342961569695442923341013647017104772643921667077232010994410308982132811054696986001952434310251825599674891049706267310541580901355019089434576066284392742783547738656199520239306045826813724279346467485047397213028501504334448519721220786631552704532541816735872498962971907867914353878829771698742210614515792996329221105156282811288637023014534070269437551399286179051972537377884599666877712637723581507190940910106917437247360657573678762886141600216481584690822653576064298385942458624123159605004461821978632022675942893661730564844251125554264052125153426304262596794318717119058085228196857382169652454335604354364987310175320083431922263353936417616701417001204245315052835432356989669836055158005328562606922716584930180473265664642578380541989350888714640296459991758404926506044720716446855958534730484301310624569452129181682926016999978807597567952750180709961791866582084146631441607072911416935912557480738858548243803594969885888211812462793294446250007882833188271355210972538105674840162444770556919021428606349373710305299467992507352985089087354652401321242813260068812951368482082938700970440092412067711428305367032820591137892658528133173715854503372681738610442078441056910549146206954233253456925613748333484556054501875328645455594422520485067638002620002336415458922445997438057233485174169493014562930252105068084535546149868244754063409554310193411453702162781994745257025486600190392123646144066135116366335286803629721066168205824202536699745087186117656262366041981658082476321604037996264716480549347622094822750025845453435936494972648468066997824221623569011607494175305150143297098163564144936904914728196553436831603127433178294448473106719300065330915239601103735376366374080316972102351332311359049574788998887286161126241959821853559579656869497956826630685019778720317437387913181855745667397576922385004704922828323813225846189201062264532684974999914509843662376205773900554102145580370479421328790450086299052098460336895518582635054838714841599999819705008901175250106425748774056257347699376693530080674968484281902008310376377425951325466207820439573812008797247377923905458990930413582112155862585751321881341107955395364276138694343692321121782572244414940171820472936693231961283840298083330969973055184913718818240128798519893265645783264241342822635565613260875634264854451787457493329161114125366722213041468843468431150628012623232602551764989472297494694583940919504276263895107503997035557774703959572069993964781061251517614719034989869543409729865771660037155700234990009518719595662686383232298138118886871237662880450678558669878892736904192148327644070224228904631010688719352374837393832578793981005487497681546139091605878681538263401659233852099122901588182300572861876551268155673151484157324867197808707051645293436894478187497908315325969509909531625614847249467215635666122033543531409285414876199627869327716531489052589449319672419530150466276350349483827055840745165471261199838175408137205603833209014658937138199991042603893711560574197624820481799223238124103374000363755681960736782060156713097846755990993855105178376401406051407959620559809330878882927261615636307936934369218305948073115620755120873803930592844802675419223227846459344560011985901403833841816236093608820530466438009077650657226690150903532898496453665717200106783340854957197772637707204915768056289395796535791857863951567830029286662696820742327278288981833120043148269935198361168094883925783039955430189727423520635085035915326278999178819437583586907326547054993323083813256599365066225509414112767535597361830261051293316927302106385914522568187156795970012472562182077066248479163477377244721258449459475944154054710236189522538809332435845884218848536712120515832335123132318240520483925398601153844563855530052021554752684734263764055048778216049909127887623517807714660383302899934658188911489919248599572853866511942008017395459382245438707327423378653620406608945909719985859699748435460520496756088044803559696898804767374816738332631649949816551952993377893052744858025291298338622729754803753873767865367115837869331682169173867112561144781494538067664742431443924564099251754112564049044975765657088883732164483820554495961807211333329478314449580778717277185128078369272308773754176112922604158780591640936435408758405616597138748785811714597618993665308307377769201631092280560297055272147447882092506219471552167655366381081375494425589945491348941748376258961393282768327025525746425868865670659727385388241464333966709752580362606833453520048755776851534832744454773913035290251117102409442276389104654711094448305693578870202396539129017336225118220521761997237567057037684294820703648076398718675788679500498923483731180207360441320213389688588302993592499490736219877734815108235355420221743978738101625293493849207307105636683739792807827642336111561574962464120393006856279416104680267956316396300635505896840567196367400644356958604698852491202474943910326105651689733269648637818800049097489976969006455952415980361475708735662510196286982114311391254273995078921087437854018662942542672608192999221849989039991393523127383480773151073031034759154031192427083720395887152406330025264893836815619476856353557160380469686167751607170586243983286012935649890620795692150556746929111721861245599793325836676479847091140999748561390234039996697703605482263650223769715585441566295322184028923725298178981691554016604523142936504721593354372023348992993967761111851902261889878269972412003608056765812585864053004761707879055456119662908833854700950307394945367519424010683427251563458366619261401150772447653095405794741562576067685896380468535625215702163863488296000059151987877864012841083552489682683524050119502441580487000089956116838573528051803041769403670211557119714342341015411575163827868568086151952056969205450951199265587759900463152281254233405168239816938306954713258477332304410620083362974114224485492893684978952867822328396014616716567217774203772703540853000340802084668599112521999585118865033204306290062215700219561873935319136344101644122094269357988209746274326570947460933160683195864851726317336414509481397652317734657657023090663817728893907111789804111369096863415179083472127864301651952010520401467793454205097728718281634447912747685929794280294384892000809038034526781103819909883876295425136454938586072640468345111217716303667013546534466985823818172202996585153132016971993892860585478242125553313821529013643168754450490400506851865659806350191321163930520084496368745562414219562148459524012002117523911004006490420441710607106431665345057996489867154870137101110318990015497959242405217284053272817265537482091848798291494455837488227094756261135282538682466982471097516860711776602301948106322426912465842252167977961805939461247847881315816406723020702301227106379424437483995980597313127105232930104657192891164047707918397581483860994053960619971592183968150073840494055458602029243422669148601790000454302479187993699163470295545990494938559765217219035988258722796692982319618728722985720001434080441042624135645371535181949471745392896850707916918721210871630869013067418918182362950296302372350469981917530770931699562716971832793130842393907626657120689375118880570611741759108785573036501962927339518466561145695263638866735561977108669566748362863851048257200562435823550160919058423309928244215809406403823172993150977450989528090134609872343340469846099736543997922794130048776895578243794569013077343387076686121923312708202978836874656253156793483571466985514151831512135316904765139074727007136299716083892334900898376901760587719144322508727434154100096868092853199615234519020470206585157691006157426589602648307819461600167451368566229258293949055160083984159974784108494757877086429599535461663688615071050679051813076096201030272700144266220223077682780298516729391051668009227506097405774101730182731256459590504908538891605522564734812823877429859798796059067536762667503938605308242105950211637783408927449810012299729907889931720421307016398971256586614817017391705480732270818050749814134785800205112531621775117299207134013234087508856529894427723904642940695235729327220599202499694820381519907527317060624167924622917877337382450401192371171117926986284895967753968869743648193198830726096658980813858725372017610902161391465416139715073521851806790307259885506770337286625244715894227116226921610097138473766046165991729868966181823889028467362535564159639621723963181010691844527900184880256507100964030811994470989968454684993684880719556285143833168488223461333422131543950266420502202581161266694029214733023455633300325594253918834412273946736855928055806017124197246871334121066582742414469698614983566735206277110137871384909255050865195385996058783789762613107738122846043954393911061620166134153361653035934981929967446420642981148904682559582454316690780426187593550367564150046376831511235776691560979775841475515947978621766188641497300852665964786161384507415784482351231546721050236205188464765118118131233812986328447024570931505547907003377979976173055983051436805146361755087685470161036729541875010544212467646886516876896741799109818730464877317939781660698702809564762206016608503267227013734004016181144688019373629900969329304824950653176744356859472723804913286301011277072654166035054070174527340704658043031753917000169492328630648700094221009217684230090381971451349928983470132931824080989547652853244934786168858395330106287312782606331789842273185061824512111837951347237253696521495620492563967181360327577374975288046504144827642745528863204365552461090974987469434103698793299007535114301232579444046052468139087627800208364286460521028856043693806847396838614617820074136148148434857376952488708506449705242780057955571568089789832340802000750124581332178046666460648884108373075915463914343766472332207370289345337391192543031131007886238844774953837541261302485303978745866929334144572790480965186940213224352007854165114543567678142784639239914091347342324596692531389758859158617142949041347392033568900585646321341152621742321034573513305476819386557606872698587297458883731997314006696934042536476436919371682393951903759766780131555059083007838084825038064564238111478177006467921658529747049638635903083392006754601018304373902391998599539880790028755872616300004455145115731765274026956827569763140024743791094889189664584206645898275903803035562111609308747007829913529149926511944030892405012269384484673926064500480744293405416085045472300768928633129228071234686411260932517006624543768567497984219223526529857667262068595211130791654604362236753738376595273970104617894589202363017865922308173657904635946970078115981838837385220892104892680589748806969945671359221327222619536895996665430415922757202906584414221793854463717696067359307046914735318029021460013695658482018997684762697065749935978161723762586694674502651885437386329191774350221317071454533354978659257625592434503750407010331760197550053475304744385214773730095362282050975712711721694688521431000243606228878019407833100775774892156723627708071909242573635451590914064069263962107060035351708010667168036350539488455885190333946823912242520727262896011761122189714838892114123102392141685157149388030384467229129075595680221141447370226938705346213284855513734464751227244487234787255776336879802749870737028080036571048416016110313330711147532108818206245876185104707522814273242414829192948981942075055103854643475115457057210673696248461076714752550284215827011894597268333898484004541491501479599413779805505178179696058005151360092646645644522752015042068042157353633380515479268368192648220647108766857153611321688261175037250116576671872115855814689474490125555732178580707510828224830748895969243587713926044108354465178480677168447280306646692558336866776918585662323553310430705733578560768285086172094911133705982280595260093113095291702441473978757184572449881218969307583680281453543325803728188388212931141416176280779246328646655983016548762745874200344291871430579464316016703003991996433168025628176689447928203560157816256374075937875975722033699882796728815613479227265379558686277834674549250972496727984868034613479478102008635909045813028577280851902917803097319090926329843094753018482791647265424270026876601833753238957683098545270081133195524904455045254585954713005181834240208957094540347274885917912125583628821464329246177809174931341617329335585030683314507445074609438931467343352784447640097146574077328552881233895913585996566744250683130855210199926588277233241238201193676356119806391797586147509185977598618362667145603969587918388450089805076793013201198519027828663532195193952713675507518332676799548552011578871960925029124572293887486955900056345976206736598056740668972281202156803683503148322873667996070712750093622020885571824537570516385720802119951593572564095341287750446282679856570019448983832231266794493175123016309660578698227604934642636599071073362662845555101040386661065608487915920039545164384237843933393346469611154724415040541433794075399661055038908148325932300461470418454404889419662888892527054727342300410225545725986343071335008037522215464038865568435117784159497286363110570993450053275584455676449878256552297021988393362609001498380439281003698994701954055489632058856002516416342745885727944026167333475842799707257349634007799664388703511533617342063151951687222836088456790868992153735261364169500749142878388001124274174044584097787157187363449022581074835272665178290446373199720390116767616221197995003906447158941044648344624374644540537479721343774235005871478753785823762111630246702992269501307491500159127898462068213977241624100059079567775648573737282394180888905718580230953929098884766202028178688341605414444037168195286099001684928423636371573659311381054544052707003405034631733459463023392044791691790467702713849475038371591976627817927233724409664181142381218970531828478506685712989145479714618094828011764256723249327705548038913024654458626676901783524260328797696900787640817576336736566381985466993338908998984584155784832207824207035391259321113933323411305772596915147553821479097869648442050307622879611494453533670618496745216395577385085030897442359318244558206710760620516412369026483980579344570461071090494443758011498940932053343108862597108318395166474310868646674714851646965284481182818848573686794617951871186262036355839455528668517614627556565400081532003637275350350986548649338762573260041316363028949062141298487375259821678229440661717053796189644348835565837905260513631025909542813010759240293253420849914192271826529207668465007489499207786001168079313743446494153563309888870336827745347411228434574381506065295574601728584488137899611074264580189878712588507507283441598259464183505796616959237359584940704155061821626665792869526390555996163209503521196394829184795225597618894881051613022425992096521394270632308243408973467271478550290414317148437058898254702499737216099938928908253627332151210322695816896751062342554191535740972380829120301011032809420590448137894008295707739475909465612074687586407656742606908928556822833379939103941490728464357591914999524322563045892613273565249743847775961389456036685751521271932642254147034427341803347302689758319487838303996101751105812855385570883155022028648904005648151407104810856315003306769760857489164212169305862293931534352479763367634068027720236483554644780132640420459068117613485408995066447517713006609981062035987871690973033309767465069626365979972064888936228053139344464342236169857502987638665331665175369239124194139898600679892925994398915791007816064793407275254537378637735313046620086491684804528937514406764524117820897748839719841373047506871375524892635064148883197696524286654252070367616702869870075230893836307582982398037134438948691890468009237057999345427447337069236375112768529551971928804126854577550435383177697830978924633225980840132896379826976226037660281313684017912484389164063318185915957299492478797818716323943340198646567205623854770702711862466391578859018072301614179216609112839905894981150158741728764013556479881844552011623818457055874098965817558419467253020060335608964739058503213139901930664261304297945522772788061866925738537791412883695485397508399902202147724172823324426768245018595509462853535214909839887398801069771645029127930850050351694469184192988616189589422701536834536040132600682205978078010375221531041386784475561111920256480456631886430221078909701277617977166233836811316223907874120794335807198877801166373661147685610211779043129180083875862219010586320684762007397377057234949729804615219832125754682292478641813173320326088343545315665043086973216169286398613585518065220484747650157056879694483132914500982153371839926364316107814819015038133233176164222628101221399131207745700403417587784625642390962520681334388695191976912983784215381750730567124238830445416508547819436614851797711351816634730837295864980981486201654609788311324977357130472784137039415598987468781459733857743518306529706508562969516280414899839755695546822578904986233832758759992816217775019147956919819285175496730692466709747027774920520298487308133059888876012336896709531987490104272277338938792039827345963163704843586028379706627980372203988517007258070930212936121015871327075451811120448034954461326626241735795565904977242807954174838815346090029063718259882747705832821087310310353248964542929639149798992147397689745851945410279221577798809673953582884171911166867995142541284031287233355798713205518022903061007184400593756009420480767268834980155277925854717488805982147350530459706986454339936764077035109400530197873539952403139625832042784339665516289568065131450208736614382933847332545193989174422707151279411494008619366816513122918769803651796324911847642868201407887139985357923928667219239164257425225545899472763621141857863591088671913282569034820868793491610531906225202784135124756449095504186430106377919405069986192768136645221975588441124464575408281939765737558839350026374462292555169875461041268616608293997706220585083867808498444248171622727184190397963465659052884110120044855168732525468088781823880543458136094100572623791222667870039684969821446012219824819202403404760082745577340563083561203637603378140699310771575571777707679887117094021639562160525742701218334273360399150879027999666145642375251145242055640963553876665300431936028364181564311103282091082857292077164248294454550252533695856961884056677990004512440853308404885032594594823620587052877176945847586287679328843462137477889468163678553750965346850740531249333081252128762564952721020548261952883703614949244476132835565179407082527250283999850426821777175526967035666922646287970399381547145630743025084369067481351057575901096845141579087534973896592787220235585155633467333883616273797326780505452727374990571375021760751353469776410331875555631005010084513579123566090179758263159617382918933329394473028960805338530948803511272918068358380369771732492718311105049885084012051670704395037526008496202559724549065234720351646571379505872325882273532981802498180263972477375855658821538173909948317580589326442408152040331315285112271286556116439397206788430944614573104842672120524427404862027574402659237347921221761192137081943318578765361621364149692985104026927072649387649354061004608385548456005168844627115436740182285589938549141323922881931351898199675253105486820217121360340093192570108359318168538544898671991726976433846881704094698573336093396512863113887143488716355640083663268066547333782052483578021075856712276604774637765511739971469341808947441996683002061204402129508401252790827330169900613238086137144274360872996704188125141186255235853941586214859412871830234512780673511398181712569951384097768572750091888719791616342333920199055226102469676797829765631955975906112590555602241500228680192518563760508379533383463899863725320985612907728604619031086859671379292864888084390689238025085031019057441638387027296305637270944813612771599312145254908208503441649437098102080246489321777424866638871455022797642567362118752013757728005242454032793380739753117832185940679528414957617535524182452753406241897618203932953017110206303693106118558628503934530991341433601441114870097978343100464392208190973519446781286442836913786226625745069067542064670270725919907720754096906327157373607284799743256835848313660998870497909332502960946654210038220065687108912182111431127669946832557584149791013562129268205249972781792709157901485467293881169778320559300942426902173780644000680550137955662882396593827596897699651350107200969909481658379417604080336992384528206913080718898887589588871693934356446799983565415555130412055402741628234937114086039266697284859209337299078847194848734486009757663815367121522403008999643695767427940260011936691958585991049106693038546206376670590337096601879833909371961940089095497154831213900454504871659171756410392331186549587265919786122350881815887161093981934222037503034282762981608277878892230688102291612557601103211856369902972227923121234571413361928458458892127524494891524341397285618431134776034693801826399693283326430794350637805751268229798375561060404419191608063659569918671038919675238092581960941596355823117594478882582252134899320284662621179058778551078997633173016850219382728925611767301019344076538068724504646291327751855969808645721405065730955612199926790274891399229462490800308338073896314949751618850822587785771251375821058463728272142972829411999332823488153846832465262269054685869201464381250696568768001357068071297541602918539685309760183079579074604868259874871687804997037138861588434717741791164604998045298008314104887649034921540149418281558798253426059751422404071470259135738213362442104312307309019913691264896814723899207734728651436273606846936167025954921316365475839306667330785611075204816019891369224595211140497334774342500180171872371392497196255576448395074676432320528782305943707844454314179262265969064725102677550750786771450680907087049760583522591564102573498826838552376290228336272988369884367340426047331696530821692031636692804556511159354272448111656052715159444687242200450271906000377419496314889506369718322826167963509351769715787176820590792609979140186322871003303873586717842555992088239850156237964983664830713836555732584787457655893795016971876759060024828865371370229637499230240178662240936478882415376405263524602560429834213089661119147684313207093642971935576936945795376674790874757257780245873699561059372923936118955623855444160414497293964147979318647587450869868422537588350076425886702036398897978765784634087959903519376599657757662294953974267042414030855125869335863324740268618772015246820957466246315904273415444844999219520379877616027062596098294703676132750906666382919561927172155680705163207742276663442762109726545818377062638479121159614201006365603970962391955257622749841465471346356072337323219015808843805308324743551259141951402775696372035261330976004564892873423974607665677712458000124180727367836716021506008790104137050006445540249907505748982807182583281673228417331235977132830975586240312179953078330025711888893651865519138037319678799382347784687810551482140464789345517037404943866366076050396878411989681922546732953981446896297931784486261925676686933004876472868692177686890526551892465523168297782509828725939769971212239941821372415666222245956298138319108301305040562113254906040706756485173309218933090626667232189346185513818968666741585360640928547936127182473992289220099270767807200594953386799654283919296513421594143871931114147978065750958447218409082116707610466708670374701161212730777504485617595283389007849583999194578696001610586585121952467096137681809084740676829299303625565971907200994656604918559883315029284179729376694724643949306770356672606444984975801081234127194584946467001963825292251163970658475138675675037064811325105622526734001680539298720713698340593268940307920690761990123533921997500869182091277876474167051102955476442977781964234666437564305032202465929035929592898602720064731408103708642615391037289959398440762214428074903886528995266918697291562072173442225806842627552342020258067418115430309372467477824201909427449986305671996093264466296315883620358837329990639524200943543246934478346562003806536247887924598426513667480154398827640995662420986812325415396280373246744034552672341070131056408553060700241018810716857284867599136456630161919150651022756070531490856603122105945348617747341896496730008118286957214025816147399781480248437783305233801896058864456791742453133129949907956226905456057641014997855476196621829722881714141583007020049573408373719673529454361383363526454876726601936949221501903558836468972301095854598690826044767282539955705123489416512603391598042115838939325504490454798554705307386337416356236193794690269758918881577316067778555787913334971172491626170483795919061649490419483536838768677416980268273062317294342641280676027787003545782768351959799732105790460537779786816434963837028180211902077492441857714161202836841438030490267470209046780992105170054971789733930180917763822652133245423282896819682225416298249719739386379204429440614235824840915327547081564231371653612493891751635600582617063941114789006325588923974224754536317037950492674931407889902868961122550601380546677119520813934361415807204518924027864113068548100501406355624719642793416461317405142132324502484380002305997415666569224334627699514515089547882930462955688601454995304706411295591813484034397876410456601506341026478013241147320507837130970024364402754419718723495724676844029337411678256981342852886645481941518954543134325953329421090522491043353438956116933220636194314169438396261947410339775618664417975242997182486314469529647640763459867351246145261459926734128269863425467475370228976244473141032337281063580990835693560708926869338102140490006965858053133206198107953809646992775546781966931853686854916370424810084425655604051322963128702127577606842727189184034885064063400960597461639634819351218331445363912921627887176193933360748378964119286797876812912620288687440101469114924614416028170630862618441288636243103909082822959424479409470842085582665779518488731284197156822979440637186890633467391569139200060754717075587712935764900197547510011120453262375552538966820502696725559965057708277131319252563416951853612307015288361022735917543801647169500104600763356113720314693197306110317409447709646325009667211812025894141458484036969183843440010632386211387730557576495227428146173128563655110821431213860472436339328431668510910341343254319397071087083084914239479764948547630848955578875371442800549321303233083683141818606344343751169990438433161022298736002717475192431211211637379752154143494658254443403355038260129888799108134106163636651188530631242075075588408423017834985490818375268481357199687422189270990634293848980295438623063576915903990642153131583057188821198611906991201603938414819745498825397990818808998520801716291200099238542654482211801781266849786468753283910213341125053056202564617514413079205715060724975546202211807798372152934406135552071908064078391853624210913374603158301724125336041673408488550224490410575380801839452916590198917909350422704223462787513954357067761348343525150733128637440184906153918973083437723897655563759515402766907475613988373740479931432859606714443521403173131690071913290490777419216150579114525928726444091987367214108656082878557851409543140085998143751407135424149176777539154417336459711491531777090792255730872151069901500562967088273666994719979827907759199177501993395879116151117871377388050899891066906975315579506070364883308262313633971730282560735116357486443466419746764584016689824569997536313379032786091743237335605381107803415209946781367279930086006426486564524400502742235530798097604980054072825224926909553527819572364982758157416790717297908106718554790205133548939347709445853644965302029321140267587045733885947593486437949546274420859507973328614265677708710704698341557335423040974458936146896118583925750054901082538447769249903203490926583525156839696449906840042265656754021510893935161943494401577064209362059706151294545355401932411912028025600796083567382444865102221351505172864933445901518395548621370446597388830376768084338462909654862620655840809033849370018388253807393188927170924279194046996728887640433104935418146009518390956461362808143479023800392548168153984733875892390422015772307736962371107820069185486560155927922464915156501674500384269518623154222230696550220501121744447763138871363969048047418395700614200022442050116920342517333838932734928751234287721617954900258918507359505727090738111348071593747780993701064635754637532393668917008804988560547630377011098893529794871592341890676235353663935887629817146127442334703817859363328408593897825467388935226940433265434947701803971418674635833244470490645222190465961139224465348297180016355595077161542135457474782758180493412323890908670185975674850771075064549010197766277839466472434280190088464026455083151365355985146026472292526130065048011351927743351964946010565548022375852850430206471030256218924701012486402870491992994605549070604989448539643679678840312705033914780351660473637113278354344910261891360150756680268260332654001300513361130615501291160592341398305594251023342080594020109084280176998246571750051509450695762749383135530872146363623011575970418666335667718019047800056943084579309566217435602758515909845651175654519226841218076533250972094357280699025308842183999766723708102942303240719173150537234138657784885453935263940067213900762201524307015230117421370086970350750898016107515311059060956457291202916836855358333754979772761544235531157020814183242782306331503888547758962680360406758089693040602048198622022296076514791261905824377819971636758103752465167321782788044360362571338131417838215819073630727776179809580153740640513971474164429274324805110670389716131874739549968132079496323408722758105889950706880646245780709293313030585085441405294117620518709913549595238927836003569352819408377541950994015590205319974198241770583992877220292895836244367042289237806486364240706447125993845317045674774629084028766277283980331224536793129071142992085420907502150312728757179889279916520296529879340340575056082822446591152398402303889770384328286380682158984122179054058449902360697235687180465269376948072337512939596874321162942247041748140370345626858968162573154927961406485328313800733171332296791272069265510691800564373169769542097722583408003759746588678657314228204652419596041935441846843195869403273395233341133271786109671778137223028070073206762816851244471109517286282779889507882100845387526068504889326232371591510364385090328462645414050777652844941219388245677104774765563400572646633430508560613086489226997522609650409228542599963422537842628071231869533306736756434251059790654562223332267264290727464599202277568923593516821176670795328112174733575278873759373543787984491886530204337314152372167828318104472144541469425039630907979002171472202923773605959312947869308755663689505392694872958992377511200946289616466543822810304196700887155278439895085439016381443796971274451216926431129249178707558030803922429931697138401152292162844645078413153736457269238014281198910324308625200729474627230682692845620019709523295669613872875463439202923332310059127092671053064372873113778719725226306408162502071128514674596487217319905088699114054526674785387316156585864931843943565997816507138509095624667562627254270291200394068817129713129951417289611473210059744924870952667025241801087782246178901547158915568674962932224795051477163405693644489490083107149260273948418238255347395351325187708607467755457250568932720780064540377761208027472360875532181547049377790773851449897530687897965375477687429228403610428042285431448746944755908586095531346934638478500081343881487970948475611094087621662085248430887124411353133440048781158330076510165688807793825075156804030130656150287139081457237461578988272256721694493337716525224206782985904814201952371910461566751290481205066995015039594643865308077078083266196691316769964414456815810673696259133416986352610035037269388734300353488042409388491275003010765071349468208359692887137643538661666291583402860013135298069163920835274280453011227757052084862715460948279209811430772530259149178882079722631568374036612486781447336591437958648033519671199791608932289301801126753318827217498625004020342131486938092780131022744869232751202812586688866287403568582946012097988425297019886489375479163420055450796899186592090506523343824888766283944432826118005298886900409913609339194097660103215583769896002375767306599474684560483825905210632483167210127465927432760292828959141361569356445527099938009789953980064799951771255966771161425288393607745380046915232295978302990862980606107759630078307162582016675962678805226537693155413470299418280666951501289437646375752650442024808848040292415249158160275982092567549663659427702210332381513390979088745984858757267768241924121569682691759566144245138176113152855826140470295887371586864535346597698753691266271460625631532929075310603508938301000878668016080080045917000731116097976252081477982080835419752017218903953156011632195680697032186019063219711064751865281521670495565050269113103792664860150390043419633691201654495394360402518549766683734554657869770043062009453285501091483027264096763226739448022178200054606388781138446539594996199098270726946163296953235800220789646441389364333520932318042670840910734959123535025576389036770848997471029537789382896404348830517966798749431106315383807504532359321316451596545184961556324026368930215644120030196924971321095172584121464292280906025079200839434429994372275241483892830531687036208434580563373480309813968813309321539161013851677479658064752465271372903834368807862785309570962048739626375948680342420393578493392046533027502814424183228419396435937131829478557418517574329246102807757518339602522438885105504477382107413318778045677632659984558754216221799991369201805475376815781372427039460112435250282877045760646707014860444729888720108394992313863444424965250771859182792790136607548476654477003562448532351362731976695028616326366209294713188469668542087863330316407559046602814974804521111233610645195012780393125145613928325218042471647377711247812716688235806545969561880986084067727127566201481089015226796709982207394494731183976504125522210176291145008589010624965484881074310810910686098036253416572655155399956158837560048117721205480185973193454579563005879200250900009208194502938466763117827775650492929138023481606324078031779364371732187910267294162066836192375055691754955824843854345790731674920358663632657115291808020685902084535664878714706983045282420107412097146510706187110970741600843271637629238784149737698895570862319710118375399550077201787834546074616128721534778297620821504006139956705762693208637241744359111528716944267188648384209879046830515861699786584504041170421405597396037767976584767555844535325292865011544637293137677285219303709585650725755158784394728457578037617245707892581454576122291676665701282953007296516798501476231827802675589372263852461760729869635555703763058084503328381396881783593297093742530442185112734606542013897645577470091727594687476898363995419651932884533218974575413148157638130297141046080240276958421080500856426311624586196112455829888917354591105543425779156498285028449848745141520640157885572885131644911430083660491777957653078148791816271098267295545644728542911091205009858041802772885012210115567614159923635282493141082932893561415980799555846631837443821528805605617756456500874428614531615419606050879225718355653225598368508552554716712126430198028817098923207627192029661878626539679347747636934249552717077663542114059840900771537992782215759533134247071434890901689131863245197094745373811426371716797085866125514740426987944762637311973181757443340282094935453229365535533292496416074402520483306850952922815245742462928424873661023663039152132343746101212695865061968944613743611059557841295335310404526743849806382079035735266252249652479177869461237518416278278505379066341489812608399283976575254722479046012026173959055615768625865788037044179433466486182875088059226830580593068406134451388712837727961269456309100707807543123252189509995323031943458011704061260549128475561333410869775195789747360476633014684503763919599118121757823743984984275342557545053068393630339409803529129070360291160587191312517429452206617636827045977120241330928428862850860713883627172015876454248495211755896959290140593056552515936956424167427484591718793538393247574189865272122406885636376055215565161958317412215088798792756113689234454736516413693880456382243351548596159742190794813746940780896840941396847741353136204855670868108701334105912101582987534340956753017580325076905536021057778525309434420331166822946930180592072086769888405538160228151258085144613795451200375817021768217675798827061889837127682423613432037885062240616447145162433096511624541824356117677393725051445071728297707770052015351422233785969715784949504286868206248334548485143706585892546019835966787694139401896890723977488774207995332218673902030263251302154729575069655367188643687944160405410272511470052136933287324863803304334083562352356394578281647966861737101341856687003666694974848033839155959593566022833552616050790213371317775097386131713307539875061637933756594730510605057095433905167558466961621026346309645735289229178312199152476605655353254815376590693341943794645910787824522731447253173557058554998758028768561809823591197699774969347957832909561533658459003613953511189658952036027760082603269733925718537290040001356496237353787706336452373712673919818819175974411740604301799440306937911017161080203895265050898906473186823664542082117960136545660188726144917223447320866197065372429180640256444250920995520438824163994806334087384997184146625652418760484367854157008499952481921088031104994565540508241519516478592124129559685729245039463901705015563892100556967237603537843137939343487807940984720899834262040852694022178409019506117298475501636126943802874384756261770405434567259455081668357819838139456236940634468481929411462978516306576740721651753012117679595628855784737904670944712484243722968144100346197041780678787769541541147575661393655433875120620923843860398392674524104628843192825944409042725137969497772906351113536714923011434038837132102788881209654288173355538401155295854662204926463902559147294841872363580477307093268588592417996800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
54000! 133750418319026044357882234846931905331810347747766063224276213710024482441008619791126394679650136748244539365435417647839533370403523690415882277429344158737472574433115617251293638137355747306074982642325362430837031542951789876836876997019802615839046593120776613792901004988724547753770256514740003028865204478045596653968882269206037803043246618816655542519133730736692707267833756702456379644405180033629532899354500260815986172679470031769813259463137241817171917103895076408351013868586018393240683263913977723933825458125163427667166400158886752947437409016217205762445480525937580967979861931309170483514079790055378955361993443801205169278535409536277723032050906396396869060889928247413105607883307765665656436340508528997737022442442371249755446271993608387188362004747629741042099686076501108808619082897770072133535579051808330465683631325270458231469138146443836916959594992834661729598996025497824557459966975401307792842475431936365476469111070692410505231281714511843722242937007332557893657999630912374765321058831922700072905572942143593158571321492572570022294269902656679287624370503955131125542553937620770047664029983296049630481141020578924520835366721763387223632396996264672969406807390694235447916868256643248886311962688332811420132297801370813977050195983019530485386840397395178365463975212216882110848801207155290897608575657976708867126083685556476217937199340537715047691616618630617030203158434677170571582139311417451401226259665936281886296000474964128440828959150977502413177581568604816485495977815425213951359014861710212131298788619265642560333782275953766072720282948202259100278995246951188917225459974912741238871239348736927697085620148253971913596428740015270074387587951503728822570495150705883780773157746128467333255709534557687921571999624665121776052344386266361266288120423051104054055961683077025322528191967770300930760447071135592396259576861646011794611199844510576376798746591372035416524621632348707955275871312111195799606873087766190800988413154366400559580927338083526967749198957069716805390710353983282983383361924688248761791344728457174487814562941819138849601471746411399092873679564229685497208332557701940793826236800185198674377825815713236160883162470450234443481216868250601474483574328135975228067478218454725239956272803964205027642153005160866246249364187584178509837555462299332084298590924810704867884335954656729011918810381895960336816109943818152878958104688456562488667294947103962722092026363522281795873704362923722403889137770008354707463566863346760594950198144771200052586154775644153261034401581631367629137049479467722177197045925241011271053554873776864995976501122697229943882403969823297633576034367848284968219624773914354994743780216606153350773517427211282641818256329359929108877611458777822350939243673005509489942115250679203342768759936405282455238997760740521610595861693200218954582386444672233000574239548387954444790167325586557519244509366477115742894764424016158927746359392645034554489154776109168390299405571294848959195346616331606094079765185751074336867859448875934274480311324677218940087743418673781430833668744598936526894006623807852288648408015401255002616598052928537293276803856712289780395255229174572792855441552086293731844080578926085890952517343724435445672924236088199945795350958076988088495069804124531351095450679413327380815297749907129839119606848210415125872479126806351280428768997000867631645689014504967667537055738860519581996017252627595900920358053027692914310500239421708965096509356643359555323282415106998166035802534917440101515728039446974095348605290719176998697951246267388660360878876139594119743648027961061212162420645136434331210924024150888434977323996843643756151692533806786292813974807398217423797420704185228282446677997048430622422493480056121422384292910496503633399252791545695017989058906596684745877570393430218704966579687731832928607310176110201334308595094727884410511107189855919041562008221039110378651317620849234959472618047858883220980185386744089822550952383362245869689622520543314159883288669262673282342600180096512404485788983187639883399704086905265548617147569430957043522430535398757351799983257863432826253151415046532267903117624614485587524265115836617597553645652892161076459106822157349001175336249894383873573424035637172437350657968524210911276240151994614074386999009033267170728367577555623983955222012466088883725140231990708592808221845025835249952623345164055232704880101195736976266697070278537043426275877461938083725420533108496391279599439446811529112729943577391005579024461003365613808405400006145021898505340430048736117395099383143443541854503775981706600753420733363063173950191343087348304799146968514712647686956296365068995701541044627353092887066314896981996121201276783100383448593343236305657018589028339475875664875250236816855176660761727018897547178681219869492865698271391676394208763014596863142569248867137589507094787712787707738775008070474666847940600213942826091095093436211163276216445247382342113668680371704334199177942123639871411460388768549641923642247270294259146719823557689482093180017002310037032648670619858889455846192396986553495314025783652997143338383034455826657410212179055193226609314217913503479784052187297082763718778443988848154705018653269893901531645605078035102370825299785561834579607578238272510239614477284602698260701595077773060413339844299744348990109185085449262065310779729233420593773481049255235544321977683774307407411942288635192583591403552304597175955842769581064552771757680284192980389342295265229543875329085237510631472704053976206398267812706135371081641223572315991277649315589967032864749611953111444375470152432238173851378712721230758834716888743245347589009662538344568220495070888155032189368272722685297014791696561828915774420430709435956583727987538453222647655353561603130018196846959676491153590998985649993669375482231353513217384310694307144768175562665480050535632414334961004319286895207509769732996187334082968976252620559744694216731165503089710294295023294129715721165720124661646027176588427698796560994528330474294977687357397790436062744363583206189163084970035987556501704580097871555634809597816702826195723915939688901177147944236385018137298920497847562806419537480443653099202651167970285827011389720887342266601300895781419281687359434563758865108334262930153023887083981941107851533300540208844793363855226926041356082539907857482011307925871512847969487245443096422266718018296249788436491825543406326072164046344615636958744863204396513006331027125586163190416753674281920092862922116072105339719740381166703531883339287089576215971199267390284581540731503827356348744695646348463735651636758492974609688830179725991118879018529172297497556258608312671154889090143800517640752209099036833904170422114214465001113402348975291745712566068994707567246615709045642695703776142970261842702223234492764896716965294499979760877293130803135817907614329916923849449376166414210651673619160228939632517430644959254568473751798043806606273674235678287013365866863431637039397962528767030106428000584803203748496943560222214898592077571313740532992187628293160130308688504673667996970791388285913531520130922164567662660699280476085665954343244461208977938172437725849115649495896596059774777654433137193865799080753051294799600867799102284723725615196045599582189955496496489763251072681823484214338081606680402800697685307378764508499604898108906036815852887567483772818220329369626894668315955146074610955658470976837474559639483564748769601340117936087138483049045111738640597732144350564638637976563753834323368077355820756016771502625317085904824804774440707847829942089629717121624682331636736886643223522486773963395304059629946213060217076524701707763501487930855893136080382253137552555809150262784953835401080436370873553208874690869996398205450309969714703854463629765318900882423344459708598731297368432047945061189674768941384358736851359572356182755055651125203176665220399685495314076327465696223785724811644538654865080294431694184834199804175395985663151342000658985478730346478889865167945809847956709361006109873535990724357913305374336512299531110899756660195789548979626909565621994310009036928340253096089756590107886626366706450479071809252384295767006182356237399084810456934169760160263482522184310068223177161126636520660355780165817327467140048803582512999941777398053279116001675945881516669682574250869727236060367048000888320390256456840551094928590469962424852817482987757901052580018311946021041714739124517481845578642523016231225323878246692211531063339196813487953611918288995117901218387895864419604023982204443230863020607158148422682906444430027537313513197357440478996624059874134363547254254534744133252709577808606817079410486294330623785958013206882793244875540205595964066100001303594916806374792180452102146134369830915704482837990606852041896881293011013999576590825109641032444484581949883095162749712796094383697571680184120718626150079829232487130092810353873495241640458817281321370687678366623512977019980638656053237180328081783804137970940805723278733115344110420203507194162728884480412065834170295972750289221228858520305531132107389322586875926158333058124241004779763861604374877852913233522706965794665117005846226815688040150610468251416524898251110953195008862721701993221527232500717180862094718185473396990543282033514036590132914407577601062621467438006219407725714965950232203911497069393790498259006607731225692236646611144313205222482175571981556920151053415500749058044323767543771958853318099555884743187139319148622835300767428859412009487256200886421140573202538628807362644721479485434312350835053456419087466325903425621352068781106335913324738554704378916917577329871401727155768224332053957477302665893782730009402311157856749332924739779224839057774896112541095898120218933592240318996437898802216364577426267205534970967685450626822333698595488262929034439404414359512369289159189367459672505503087473296586833597940206723469728445216090276234987836364260403387261861950779428724477787023581726303130168742651103095743938788183552741458362874564637842061568074096710846534014857473173733001955671650646328569397989159950045741637846510028294223277916261078524739176196139170607602141101136507445405882180513932710118676648160978904224567767330527771809691641350930744564260790001075299005106126808405302860184347572787969778190728136159143784453946178790431922188968935184434958633581511976425345440306994417965732714353233951317734670754049534295843330602633520612338686176968228938228343053090641096372968581046854298766383786236646801180993120638162690993071684961745392068143638795011483267446875056888983144165804431394658562150277953615063742829297305479681971785115809034123531850003568155734648910873170297620904166238599154416682800202272187742023473755272546108225414121240776661397473914227783922808141490658887934206330869126693702463082257455556607809360365946162372618188646002996629097794929640384358287202512810933724086020011439854432388585313481394072733430562885262460516848449985128226478451633950679169672938544942069817967825388729410902296702243195810924721802250579284663688414922013845399498280419622451274494617450120889475161536786345988305414204331041942282866526282145452878180625738190499577621508392601920893618522701367690188187456923541093223352552224706426821249175012177953115348851676759592138519181161900327888206158878514268451532820795843868548863195051374168213860732561747308518017155346279556647985073846595303521835778766726198850530152995218820826529842460290743617601912046043566257901188262847149529864746953720587565517162332591030992571111838908143964389772730131628723525529954267604454735167369668055341349471645734436204405394837607750643099646422391356779347282481194996070519263869232747183054189486250159498328956581858161772588445191305608496127963158926987966806573643917869025565644035435671928465209982031815152966292223589010116079245749633259442583625405140287657465118913169682195136802065485587310117290105243547738365439134163484961697348065296152521068611039777020984638936000370137609410297993921339030357978596690433658431427358587559036185615236037420491589473161020476890808533023409327386265449344259485091302043483617757076443411650262906072654663003892090589078295382513746444411194681559304898215622561274527452320067298920111008560846876649285888205115587711666004336448661990869573488815528792337973377321601584695061221586201841506896181437176743202847927562499011067341148722374671103174405477995440095836075558000670416969330001387770325908541297124138553424718868650530155712591119304487407768235897037502526730278038747425907834420058515059460486593009936880301275921464056114767212057425743263113714532982447259636799434089392535041743375541214621973566135673879920455428395889005693602053860202850162555338863307154240092885487554133402976472303155958192462114569679930501932000264913028375181422892963769255316923722556169933662566882270210810390622239537684101308281186090445636765596204836407685365259382178527500946211721921944451900013587738213033633619771015149528592641769754891745429216801191637880674676838706815647788509387983524803853907232177293927398396183306288617346692770056840101554909109341850986290325225821979173067495325396334292531399025514594081664090236712465697275596604582678072494888917489515148998414417920029382944009477166263842286494675873753615088991714743438840416140652496344410045204169665853099578052344624101533065579565529877719618937094667026077422457972273332638238319517312822199284782444444427337093642069134365814360320564660762328005108496613317770634190801044976606736803991312627793237819383330967488814239513265896264684840243779439554419183214603317791138514749816751290341594164162776286763307176301982617368253537348530849081093070812148096017933818193863158427847090708845498416908604808814712933152019854653182317363085985249081818652360341650344857132114021118392220694379349864138806458955822665838363720762328692727854626057425502198878140403320284639961070983289072944884893049033671348166916588379158733904283448033798411505213462061156011696319200791178884784161925331125559102099089650875047616665733851842058856744576192988945334553200311251238068429852378574051429736127486031041129176328564226639598840174767152562947289451964766890693066421682287121773147289519669989666223740517203784592897585117196220839905058719193000369713889959699974848877923480614248844100536500515112954234640578257747698214937324918384443747083464732988641169438413750587518804016057475156624940128467200701094897459262090165306419246374102224710406224861330330086018327779736729530156494137656188418459691729548998527583722891977975262260085110856816969378017559318692429194865168250303074283111977433497023405287519353546415723291177134995396919999057999705180289811484031562363250766742090326985026042965882689398225900851532242370998673128033415371559134684962196074006247131234581288552479567642863131169336732103476600233016242746347464259020237491505053885440850152517894081866358073640934137006348835221987791389685132927101988609448256480659291195596537070398844225001350299111857053099480361497136357954864030210962350226033534733909984524694293258075964451591384087930965243085843610614550304575350938289997838805408776952356233069564614168486840392750323777924209364265452522041047591840242707879841228829840327143519836496254332575425528331156547502871817701109400001701698241404288260289178154034891104176281444904970067767380026138528898149310111439731061982462412085235796292004525930958137743625019491325436565703641511808700484872269550060149333047974836134912878708169277685628284846003040324900098325058336295182920214049840498328949038978293654330185709536356247687159472637899967869119128275837385842355279901582998429918025504983729212001360603184096860430400559731162859874184110843055552656430049100901210983698015996690041859426098484081605267981912250192586583494983461464601446980037184862452381232043209498893952308878446711160052412545447858588652316191678214550378391515888425294654085358480000861618670191220805714248447576302299034218308044177373854417485311065103587191801160633103071389260810838470935469350419361506334379096251345290169635725743055694228721413797599234499855079249398554739480588153187458969039443495537496873374758603263948747726304935050177978549128172003633431615919117836775408338942980364782359023187672413127879714184346530634761681371335864931501472566587566014956168445371620090918730638653621000884501161032114427800614410818391330521666439589016860905666236521078430687307277785209294276516511388112065424604446909894399263219868476123116675637416437605835392136685744159913109981096714157575321464348448504511501097200541158683465456771580265735568058768993332312335185560488516832257792205628430234045289993616262037996856729252121075132588104316744831536249701459581326507303626241720959375322302149200588046175141588868241096348314222011084031149221535266585615431089574637051605661762964975092134508951843206770968497847398909261212795122576530982987483233872836568981027268954495501298783856141472991538675660556463483250466243537137185388902672836034974979903912775548731450256097655635213932097677962887458211916561959108543374906477590377752746940528328800966363223811600453359249939007844052318406741825768463333238856342207963666725465389141548177623450188908725388308717406532396962956473497163082288216752928823070775538315348229707381050585386289771141143819568314094597904988618524531855292888090553975777415793455979405590014370351457050583608187299584297336748005339432002419369038899917327988854191147430187427914426072887263757917556399928099163191253774459783998941214053560785987563336582508095766129173736018825841848364043692098828934734999058703375387361972067350154105251256773474236171679156175204081942395767088282987798566242492779492916339400389545638176969844916096075823370119230954482803624895546514700876002201771349601011763768700266484623422851570806460756170942865915599518279381187542224931065571819688629376894618794849842917653430454276026358427786110214486745175186828906774694503196183276044366230213306065312882506574472366988655517866393779925784712663202269887844921934428923236849510832914721208836317020355032956015198795747868415547046706884747804578424955657513658693258333407676289385996208109526290137305286043096764134465370925047328501742587582456435757280646718062912774113359197861336278500472136839313015162192446232198525237615114297263494392129599049304600271198618360411893203825080504116947197555599435079597343305915149085238021416529185104613364162342020491258830588382385556056223408729889300070689793675140704208183952483467239800901184973652218699070816913889354991129417231477706123238379519884082261835728218389978141471239802958665058233450829004869349685163099683993457615854435604732712410100375296419332783112696082455069225782926305550040761947379860745117395749844356054352203878996602756846880474426775019908738735277186977323518876403998506106399387321459982602550547649888864572607678476884147883618611193091802421442349366440884569860170253876289913403876256597127642934744045507441511204472432034719377079760484206138295169858379411450064127715894887289933962318585312353042420885629935905291792086964026841407659856010269670632361570246661175566006062257501426486420012288500959700828754984594556988364388491734726312461431873612687599304714363714221525942152173635947409029740236462193376800297797744205006464067159514388864600348158400294457323082382819674842050778049663633617316124605149621494400981043915626597182075385810447013693842302810386957743287365959634202196363105051204263058131921216940000435926966675144263917341544166418044620067157879547590273568862387440438396949457561401465288151283364139415841885731093578274469117281366127035946321794020156206118335554392353560702783318714929039093952894880743474294722914525595867103383901570701511664728983863549466730283340119542370686278859169217709779671279080663091498969126111423984293219004265085227504970924607902462178537444444083638898041068906294736666827968182681943108577723740342460009006582492590301054252242833119426267413758511910175745134330061161008344296861088456921032808507083426521004861549103445517013379920336101152145373456523148787302454379329927855179495374370698655761857370959954862221771323255172013388628048536151761425128554292011556510795902935572523929605812503170061368761798804718166062269373898680429075235872545319303581611550251182275317404342814733382881995301917894692618408084640966143556706223390558047173564727089230820201427162942739678891966787916519434602203139179681315826968303604535212458702044738714592779682737705607250159799182483972636250044550076158918629157497084974438294916547014509743097430473050386106921652351963504787447974693295986135811504012898399270189473092219120297240730617486499168725772199807584453338151483698386757667033309208195851224045477146969345295251712265112643656320242268833980542234484361836348467779041986268176004681558490619461686865059710435650279174387690617548957744242148242338634301790150173090763703621662550907165637213256166341032737413474416687908471176748685357232497392320792262517934336843052126735862714302679665629786653090222550931800026686603118203625444666941087139899962899923286254387145677802615044578951047203325937817007518632543771501591257372388910634445410514877723251441169928000732913798948530365977832500583649900659610709495437394533585424650254130182785160055597629794646685196199895784195246624397324912026827418532031399527065350206045098823732432746810087901853461426037697739242305091347946999253675828484182543883667087646479695408599816443509220270551950329236632123958334321585426689037119577041777774507210140918118541052380199948859596084187077233910338026920430095825978301338060449454790256690191534437628838873940203945527077764059164618109940229111958402692753278431946399470597155463272687645405586916611709189772163117228659279838599607823518036524652344428134833275414480422475309776426274920740842260490759895831521887227008864692015336142022206339542570107529007509827078411391602582758225858135381103346471522925764334640757466151029262337067732634501371020010502278360404767943941150311674099750413310819097373064369375908396672380800548571261370361445516152611552165615274933162865309801165129068793546801424074155761667720128768270346490727141856468635422329017089731363701131501770998960975430778328177265830119900772210837320016472104346233213499267802908121546273026961830506191801874684249725451400180494749160003443267651092642820298058887426439770273137483060186573621722012279772762795505550193376344492077929920359883076567167327926930184840227616644615491637792491403965679390714464455516882788705741286520453409469088201624566312754028503856189544270970141948718943419273253329605961081887072029791495818179071571965262112905534216120872439793889991601614074125626178487820490866078845173388070203226198720128568923912988991921977671815661672137795638911942105386124145706751680719342519622622639532771798342713097835147905804407568529036019067638160002533942273124028580943542132671858339951241007522970860495446126575993843381400188484181701829659928866946759383335350325851778398907531957578836763605495758319682175253275455244194721915992757987668566330108001964737970464835906886383669427774531781970835933793187704520867675397041348418923868318327804398258773937098881544188345622884206150806859121595682581930527706475598006404002667348220618346264161668030630816704487010657829138114721077118983591920895245895158620707119867093672357523804089472796395393689013055930537298821376025348612387208867603279169752954177137718468298659365106803615949904532712999399049877374356549632715273878890357648761651585344554092567278031440029452264610291105541762682264502672944133845831598425519930822547085782801479564388236460451095738418016277936710387433933134929127141852802545399546848758051645133330709956157894893614330669250475331008568684313545057914842936567112814988762246998229093980415289000211901571034083132066860419295705413691185336100522808913254799260014279888727702831513751392675949924716441634614609509964335764436777443593927606924102349992835535924382238377694792548064209831468009400771731546256189841800649504081732448622227962992009250100723201063617279875109716768045151184714484751163715997759473970089247261236757637129406526272806699618198008857097517360422618817941617791112428372296222163229717354735711004987594198147794454276750177997878134500275926740532869744884353878917887323423490175143128292690848396088105154133483929119543935361387721247013704296474008311489944921693715086807350089182906840706442185576021360300108145858437907408889998138285303514961285021478643741772684309803009101520352031708029520396463997335855390120159148999426104484233841857893507419522614172098414515800866053140084709976363461119031440243787335077674260948409318306388670166487352142108191406045085141820945872865807818178268754417039742302628633249860882850032640419160843151768444641879903815998094566278467042744014205874025569858635375604487588015698361567773664388224443260486254074724546591328904620113487825625661458761966154726421809316868402038159284828840116451035484068419312022601326219847602208669298335880115609525263527673851318204195145115237279825579464543443451320061039680193781792496250165119758603490876747044320641685669592853994088413147840490044215936299638463301634636596892831109403484963624986839410806704097950975342386772923222351250427083001903749423388381744454947444957154976190837234751598005093458280450303223489814494237824432064261873385204792142743631406572157016375162061892452354808049063236990023010883672394853783308944823208629185407277769715755756397156377514686170969589157501492073630546054434160545529017024106308686601113358530618012610533464721813741596692147162787747876106430587538307738658810338693577751799005452730791718297633452619359931439081518486631623409081309068976250118583725390868387682741073574039603604951820844178828982788582388019309503449339182894515860666776481049334444259573025809885506703773412641220713960995048919172986381445680148184356501324445793295581082746621239599949256361805578097966830620271154024034816362876026121573515085515628973426412262516585167588167867011860524943877443497275293371449955767076483499256783098728937584861057581988620606182575200411292272279740521968059899078190431562612882121200117561350651045933470902199191268318922828301885595023273360695045213224717897084830013899255869631184508302924796322621078622690094868585332609942600816728085644749592578980005306391057238886316413246382723236893064143964480971691316070107700008289659453815711320217704618654499200119362550819910220738081013677221709099941354909483214370366186788960863144533980414137363208418100107243942486272805119591837305816835571065901814249964997348169034732549110114168843680651303664522007819236598347737324452832818553960416196556298102496432803198254886594506119175627302427537779999337104740032513424994128408431425540371717940325170669104903679347600081144144323374075152166163595686758363718536660483268229596103363097763517897718498549991800351538310483967688853632723175259733652237740151750259985845954954840952799824730418164948598960652594203448985541803458264905938527904340322592695782996961689824373407469837375104119947331938479591933160256795046312157887196362380517656493536314401753195159270024672047951454161267984042152248998008032312815889064233883200785129304498000353949766643079067160610111893508581694403881133002455610051910448387598873662581799967727376928927293939005640234239291521036022945279172002478673567305705446245691674869824867744293633484476776281017416364850756692565016736002130867290879515994590166512947972851240195550524471896921694197151469480710514766470961265691638458726252857528466006549106650891276380732695479947738514903458310564028461212777021072794653787379296481521160736433052170656985522154454759429346628351799855591758797347079051161196506083858009421775699182878508160481149905736501997505637915634562129801481517435515438895561551937870930712137057319784560862766260588037932754518849342116999855040911273302340410156189112402593747009889434844843774195868613727381955897097984393289347929398263123553001193677190439104834636609947651567122068339968532274969714744266227828678953660649165412087711053810813821756533996276175143971746955638397201486168137916492267147315004859352384343089947640708816402863348508224229177607719687332817888139729063667262948633423870584110267175499923755932719540417408077216734092701088101136127889966822323797508213228189196109440760854244585340844570851140539555197864309751361623412016841079213614120272095366373004892844136750622916531299372686788401741748931437139828567202668288326494732329210931714662927687676381403469511835683997236249153073089057943381874309833410506491622960675096642620029146726867611652570846319169768904679497895526515366855680982638866779568853018949931003734688072566645297703329426734441010974736306403138986513677283668976375068623854218207151672473485986380087496315147414897378349503192498651660633096276716957957200620485127305857653148911319264338305281412459466186354357440975973293015424021903619801510677172305039911478592329649115334773219588411868175708992188930665845087137730765719422247592734540980163739354574030984630713780795610387605980449855029975283742633509271824146751480621988917734559626000872509431540167868443974624253356562447200478574312541325872184631217753437481564850328707866890410385381923029233488080704988643199502588204529518014023061889860508194307047489466128600821395883411031393407603988444851560664769894438167892224414228425720059045186034902051771214661538684896489084073947672598514121193833227808852648182497452652150597022987535865503655349024587104936275485162280441282347496163909520488651987912998431065758079869223427972016877924158121482309652339814736109425444216700297828355064654470948723368243488414729871307158095425227058512788624812839715875672972464478245923003723400550950972048733215471167958120208065342492700139594049005368700484351717975647105010541769137520517779798394540573436056011764132290636333874279922464254277894427060946896040784799387146733552548824822405078350422581425213426311295763595070752784099350897406466257289557431128779998587483518977230748813021766983735955835771729326004074181973041343065535657832912651167004450780136041971689535107924094727995823202999633328508537838228317131139266341858592247320547530127942995665948809692965191570835114591197582729512636117244481789839545351603596392972809577576063497752855119608349792791015941437728060761275472384214208708756058375890084675888866248042795607893118686714631680478884373463590806079996290103486369247698449052229568071367943108905275517396726427472384869381250353521585561171426951681260874763516924006058336916073331032352673959867725850806725637418269761443139670603634200881829185807158436088257770617545412348326643073255846460290487778844247800217609025309239184265958160066046259736881371191399404590444049732399302878564274509784375380643575382481915521045308283593470981528253556599917478853473891120355802373514775803242979276099133006128270117617897608693027099328964041552164768052580634178253968144649156917073888008906029734435961582299216771930610102372423466404477215935655052188559317426984048422657417501151866487100862971009916326918459432819074531435694013968920358454907622594477774880615566682363912130063040281151268620386395312181069971876257993532481831752801007541039519954530552131285163667605463426559395682592099631719388176216738092167246186128632788183536768401145892801162912785069127144244632722793516039092808506302538640798554741557112571863083870232470291542088676090313723335435595931665033814885627257951583622519420198434606728843742886794891197374400305823360456829004313198980046745582709638609462817097330118821551133724024864979576330700776887373373704281026630152824815344718869915676770933252272376242967733040288168490132177821527850622837019974510749743371501689039272322189079102895980985523890520974961948413491899469988274362490785682571292004006187718753964111831868354598345285714760293667852366195363835308746424065474357164543489108366364344717326322448914630525171579734813192778434485961237009400212184676138130857685757530468951226418646197357921289635859950386888160502133095714298959380096891404812399075976482643464708060983114045707901775051322623655627441968970073424145733657611036881125499226476132792047691892951318318915748763937518745176111687032239972952224932573767309384096695976726343696034269609442983034903160374927923004807016250809899690537658012172534457337758408821157737187571869478866547243965760800027747630011734548053789889350521852886716648104296034358106489975157311220700322454522306083363011241163203286519603826914452755871638587781418610295485834921571990407997490999853824286496107355893963646122558666078514632370704348111914123163477876956142252189781918603234631222483848955736458173085790816750633899504875525982597518093674668638750779780156756584051947865669871571560816701697795720077704478647347534932674735636354352573443361446493151638248698821760943012173556817854047071989741835968282410192709923465618717719388307339126685978119629520486636948815377890776618038577550175842386555099848555712719235972132994150520203401879839243852700819611589981260372008000415404105951790082074378374516262464174716079792800692879316867472966232938483795215387330056070738862126336186053625252300948995602077316222629251757924241916777072067887708652304150677337369896133119730582542945634826320527105989380653370866781258450238020539759343292177153882136958910556102788278520795526945499385349776794540427207460469989952109474107564089721980337764013780033320481350558485059888148893044110706322622947666564802410570892240584178188816461672038543132238827609948600578235962172920778965757886599285531546228479251303700529859372636071065162575533802793569911191868520049492836935134268705380028309261438167797360781702787848548924038087678780669425038501399732003903562290545083826666616602806630196543831430879512603759368833058550007869512637333663073690364283282017605522124106882650254588935457479556222031562770232161008842325935797543312126275194805018429595361107847666016769551990276070291526060276108113560708570693996594832980669713868612074687835544432382586989696151003702406152040264376163337006830895449389925850007013218454126862551402643704429198264592566948842317958447888258564599172280342053266325725882951177442675870417456548252280572173423469842691466905685749478704169775819200743096299796921624405653749059805092661853598021260064830733656449443721375225217928330831083325990246980117991205801713124561390866061782227364988210839558007700132219045179615041500602058532316568852612651423835048916081264836409316717546667889548725525200030887467692995807293015786201680037365005389143402376434470323357683877451929846152686829056609287769418764225984103977292929932331095226679212720885765970889255908195969171556562373756583045679451879072242105745652652310412410083720166239304558726104749163803403696374116122866588292736420719923092000523612693024163808355058566073743017055908385984019174316140858129442668363996785614104518332158203166850225971785043699825336591514735589086095547394727447821788279778182131951126590974907760795257857468582919736162635443843513568100786791715232134355226696245730040919573344440812092629282325797820268648788728207114250896398746173864775219946047373837845230952519587771994745470561030564467478243484317476203438726970018470251867530689648752988870609813758324381835614264403399554655469393036660639436107668123987695072003320803226168407960183586199719821505193369353695803484269196834878617066940884778788006037629571422192794007899661188724817535107381120381371531275547623860612489618983776481489963126836437536308916583842803656427606993224366963896101108729898331064584395073791172656991974976147289342781752857519008600993045123394271303954705644445148531168519571886961447228807103944569128259332301091894904625045550598091777699737406571244319372183914061656430330039975538661454489397625601216142704216482166416194593235500130587468812129584130213517981118688350291438733500485660683195518660087995001118778130463693182179843353291719327494928899822571503137200590692683839223367847706191747322576413657773968239847338884548018534564382804690121610290412496509675756060175913741730211145831711529106674252399034196462546003703167751861573602291412231436531700702911267697151190091412218977379317724784375820013338549927301173886780875229182384031637050882955505219541788053331029923232461958151641399750056159325776234242976523880722167909990598817012609251049743641720229361858539995995248954070666967682105724696399372511325695277898358405052271973791645290618869984682436208600828930465954024533379972809029106896954460801911814464228252073321228359589955053257366724752309997023444520797854475087141187139990360517871605134593455574650541086790207628517928655954534188974138685593675856787645836214787147039558482919081892976713085121629490055578890620921723010931157736862851308388989361203554290649104899968765466551351055026302391486761779829468362473907347264832833381680882951287098593065322859615429691332718776248174456541265029440836203965053772062247491676049380087263109755667182564537360308955199570512924447834722878090862182371990795099503700513037997326038219016178217889016152279023196017300924827411871818334543636260773063344342060054229744227732474912270739230447148072738227991778765812592483110568259565339617077487500837049564301375710960325095653521084062042948488961967723925709879024967251721912013250310604455310713084024011810856959332741067053218135458481245319079449083408668611937106596223869562835651564658825517365194084748359374449344774886875272360157883354900719642326405290147901857260269861003585569998890594042623612399800979185816752924542427367205257353630297850555360777758905828782297449860137954589378206980353288197563278400839974093641527480446431016125827650062041670510640573570315337528931431792364584628323336665292877961409716320840455481342972610606015476565772050377322213509212519735148201374792927594062098714096408454534321346504637833105861001133402477380965389232419502797544729681475836931489188203991576250140561250633471611557436171488802742050014971613072411307872642740244100161354145372632961667728574424768890999485680589029809688085200024088839012567632591345727481254386267614042664275902230667234362163160739465517279313956293831215520518099451135240009154772521121588534724772243954879891595456120440142029564644582805291350167867113510852658571082636180810586863350300557379351488584829091349965984749631008833737303955731968789988531451872883437992492622260799891050883077941217981661958110149519065230208510742523276913233387405905684921183285312304930418666098191621129546976669365100277874120137348041039166534340762919325511958834294603988248173663999460486171734094128627808737437977152853061245301066260173095820320065173443187257702322104192303754222705354993020923708986492731682432933192033999979832588184862831388434949538447793954276265546399090646851004708443804102200976500299567281427086467645863495195838828615111852328626627113645277304745541162433968855429790504263570561642720235090863647081289706785241738684804742966532267272459427344553627848786811489735918113163933955326940491586076536124502346045214081750119259858829937446054693994305031195200636850398599760672942365731706214538800224804656121232981626303788218283611558205631415079616259238498897378122017387777484261181394997320376094408839407590410481761088833247800384596708819890446969342341782353551448103341594476670756080109042114257561710031079818193800960061177914866281614036388005344204797475651341079011109182643998885459960555298044112609542922744648500133176748193456377721886054237987058224799393747174283468251531035705911373764334363816137736660906007936552638735523510135406554122919998456701476571838218806733396259611885220999659775916653990301820265098144515448711791202242351433423237510517239883674028380035679244951014205396405582960259708749811669984073968743328140486952436489865162690953706774847161830149358407516510248596404651428928958893566455275966205432652466082904938656109412132620957092979750528143659629336512448581664713094148574707371560716668152680718343644738696185587505617977685800066895688842189859716152963690398778771933111064274155836797229051942555729874535318685314100042400702821336133276054220877495410989027881013184568327168919460522639521214845750578240051241898848369387481342045394041058860348579862925936027377228747060176414752189182012901158626063655195163669780356353098998428565049004189251474415005929677546146349076170210970775866908532540153893928153455009611624696211792264500419967435803541360344961620050679322449521905666735601399797023006376988736301322901981517363010453802446964362449255259205292489370618540467336734710173944419760549367880572155726935379445808790875474612772675969355409711081201149052091308085833392172718228655151847612542543211427852889554356002678880784718096736546292546414817288319215775239661108273033902461714156991677460465562739620313290062858941695037903831283265020638549130480888115055766964290643379078555763085415679755830805215673715088127826541109570447356794612032668047868850604231547804442911395615918709375690241833638452157890730971010981252321897621966636372047832637989678248328956401366131422040389383272250141070257771366398710716918258656990631703139332028006668689988259825366457227722939365177585977355160828151187955885474871284938444443650437051269871624792485475900612840224260406812028406414405337019617539291754922557046237633022707246550366736511240976934405373337378799602732024875879461394873139078632792546769631133914577954768068625011232705363589039308072661601207860038794428480660085028644724547021902984526732685496607580774781968734006549742354393388864180266123281912490200487281264218191124439256581456313057461137853418681092296082190693387814881939607231900695133562235150559050641608526822136293780936233248051135531996691965001497372949505644219010379914271118003008920043051335753613684947333469001726939723785747928838779577427567028967880732774722911224354499047702147505222388148287181134892219809528372752314253066098126780246403624471762211433545639821142149582640817707338441266010611319033130099045356746609569840486564124198681046900979173462022753485105602837871088502718166094430766196997510162448587694964048866850278101685633226077744806900949052870977451923309383852233368032564892400531306711221374547626162329123705876977129724257336377553813626088684712329780445829727429059434966444814360320711470313268124759771216934801508872368406849441774398844226038418065959935171169951400474927266537262646741285791937107894747417067610174885057521399705945792194669288256544862118801549920030568296908945570650585801801377997467878268172031413712567095092577170229809213713739284193656883954682918377191433847115000151838355402904875905174740453107958525456978355784752049540777963034515467665274701223471134026208688558920434488702735103691688752326177491444450657820139123550565585873890105018026174293701299748438337479139994602608520881146997317071080366031824628538380813483758439232164838046204756345392974956876228671706525017653786781647385107409302543644403165537976710923612672068661772558995408656853206465169943015273735417134033177750136119461933907363366387128790901877170550708799596305228903133619278347615467054654876506945684294656291171138041266421416285088902764678847844191939621563248824380511545093943819739033293333208939433054927058226077903758508522453002118278578836365213262122293082884738350531844736521421554264408818722968224002554756280506123728110803011514833250740886402210692227422502748116038916799089843690136441119871369050602406612349697032967201136253596140614147158096588412499499988013878537085783805692213936132437515937817300315536343178516491062484412455855061957880098821374499376149479129410087154326308885575210315159251613547375190875235851607553595809234278281195275084241341243252609113096083801266313888318886859803876801712942688352014862712224887045328650666762916641285609422617762542166469620436185163996483669527758727604879218352788532390832353931379231018176831068130724142741911743784738780778823191742522304409774020912684181530782741910083886209227081911667897826879713641348625595160822370814820943324758048749530750607136714141836758540597070909155949741538700261816972425582404275853644067259605418859434758436844714255565713574014292458534605887711879685017553109360704272515518089568361960177452945244855110672893961213777947303320988146113617806425679326764806002281018717050928398584617269099190463919652439335603881825956527020582938608779731898324936791172477524954984668370425623615821072992322696787439847495093611520317480822181628355215500450152512373143121905668082714506728432456750413015080876175052533138385578169576947484669602030243286891721734369001774792309402957364409585702053763180643225879111327984584275138864208318595260700653636381403445707618938852270591630779685951889451357130015723796398355618378972933112785779941583152917572762124242143578323178406201684819508655456214552397381639085084181270621787858213041493724614985635413087102929390131818897372542612624319936575600423783290842345547903305296858151062764845645013784732793429479577124294911424035264467962127673887923130598031362703004949299799363451528270093755688276730708468020311251513913595123952372701029039410112560978630257078732179132584019822931521980938636939829990560112385305631256864500841568682142655426828333389618496298286320058967605510832265395306782957990346962935087579883923716810421961072390052329182009702723223213721945090838453258017858081770591235445194857121963424214029407826862798368374615590774028393039443885814391336537483347076200593029763012130636886605406575464510558027838991145405410436687438840765318734620644735041557988968510818545038589413695398467945942136874911768543361839076992803063875185577954478538465652732009137904138418507562639122979976702235613301461362545933869850494819100509199387617577637475172675832955836602106144501775601691332820626375195273268888451314790699845515386097253751685642026735670388278992276935441890663162724186261357190697968330547394607322583065879943832439299860030949196173072217670035231836749682929955957414778076712895713309151527664932998801296330069465814620371098452179480442976507606395703639929083177612365522540042532622840988718752363567505064537657216658134867876333919256785017308906582820634554710500587329277888224304426819092089436592910132612726607615265745325533986399379529565021386422607084399756708658940620141212779945356459549973499972462020766124024236911595836537218354166616897627195081075872794056668474623315297817114381127856767652471173274294186992116295266061915952080279489019018674342041138153800896235084668502266275633125827714728143674540565900004072957247637161834454626714991252350866198850312972952891492383273165000863103952027712335407426828792695997425267756812653770201560549357432290142862472328451280610862351804521915984400606240632605004642769805533708853151761905906743201204995905237788901532542184959883827507712917090749990255448217223800358411329212150883423661278079514477229325521173840463564297073997817188992661340572994183493779225610420239349460284801455924540212861741106075307168713473681276000405128289049106079812676248920090200097285708324168847221207020713184559587488976213010414745528530369202136804005154876746474327690442840844763077918763813204215631282006486202836130503317849425852414519387769696292571258376517016487759102309772654867669023105456980698834141315994087884473558204295910655580488224828927625269228840274426430946184875612696798483826201106205235856971186774352587504617352431611610360523950862604018627155575820047347799225041661524010775002366045742467502728782548456072145776688737061468564242595291549570452394284595299016196307927047019831358051494120119696759965873077261341707922477075071331122569095076967313072577841861516050873000308569971957482999495580907063129451856241774951313442831715181108167469908825326840799857112070399442079905829041312734496218388459407907883924827994682391606689695316305686340865482617202479781639536515738808584204467617088995977825210857504110846708471649977479087368822424127671091142089720080869306419283653322650554246305150945569020038736020387453140472960863736996309327551110922226970827521114679276801662792081259231767907004442734799631918909069648930081876460205037921720436664641136287974391606248927463995062651089744715549133882152576071358355939531136116510315158034880894094726378858636280392119604989891069619466780766274378977290074539516891943744206417709857854539776974818521798988392769266407869064521919405763411281044012134828070140261807752007016853734099756690917932438781964737594364511250850857205867517727547772799343125997859047809573052854989627154973838364482258257132535008415457765304839691532990337163779579276497957840699856333145819448442040878556775324620375532463911596575134083078573757675668264270398642661202935023011074791076729835543501144859140197871124566662514986784913940501718797342288148637337644364936472377226424097161100991978355410021144626449467473267471219775000708357207898415471671393984227558042205161378349918608209710447905438993250543780793028849269989660439891476457283421523722649179757447760975347351392674207967222994613028984283915681490865813253136043410226869619198137446863799495709862834880807318955673178839666127798934929672859131490643406418582716231618552743523365330056910031703664478928554311677062381078518817050521018130459757353708809736626409745502165093025205327691257779915982452235692595020195441831608737122574996104754024306032623856757421557774674778868389961802647004323460313428121973044461403808340448440761596254976903214678598087443275899001002363449424862579285222253129422483567471924490560311338905429469336641639920090950402477409633966412295880856576501107267949790538433874692228181758012714616693886488732028053371772070143542135315489397610683607384730868224198259385923098091528541843017355943546598463645484244192374352186297137042300796246896018699181079694982803061546197743196480329445110993385349476292577511615271314648461310058303797347239519017056931360924703025680512393949518866703754928877057901834923805863295554694994813130421749760406037121661957634582392238508723549778412864859197308800687805316155942044374720330956870277472367845335574542656484650923000947463709378586978757441376971255226498808711532583440350987972348913767763211699967375108468924472358456294646666986648302680451882756790070742436461017453460772946977159979132375886045449550410820364136468700452518772699616281205049242716231014574562950854045398550354257811864810988421332243140445961584310746615105468669578300964896707832465293676511863718174776013380421043197371267622271311375138466648478158577632691128977574180000403859546885666931875140362351954129340837674786719215734250694205981502641842184889029002150403516142987228475140015997695678933820381422426787766591220165588118250477670279569770350358078473686083923771344362346274095268694710920082870563638770995442518344891534193465883248824259856918511854795226241426687006524311114462868651509419667208269688962502040252006210439868650186012107613802931243322074260197120269069602367821557686768367624296326672768907679754654195517802134902318220153560753019577739761647893427972297832419411515873711941157430412078333897017732914358989195371620981238617695347568653582338138951033934642334261359424066529428238414690955534270590364007452756322061772513196319611090472488958066290613478183720867464886286464016393949696009727963711886709962348211628790756505023014370471500006167100017637189648744052108404376829914352003980494513089052580550335304617540029467338206231149761684188445200680006026257108833136960348799145228607896955555426985553873304945883085007754159512043227174309736705733584832462514756019573632133447025370413488179292140294541332075948308342129016705385370870105383706442744122765711000643088113215151711036157004225889441408745432184062259000156286780674028273943446956267067624784440649571299560075319712266365074437069044415382772769528087581722558433680667093464587823906674178130373512938637631231931681657731438990936945018047196124458507118270450802663997238839693485281757862262291136442877194698776942208915776382773804823689492821478157487725127035236713120924866546592858140287449905084377236617711685501597976198201186259146219521084364411164654313586333485174463347688212329032169469824191307456635250489566379211854703370682940199518272890101180526938079453149033626834624546051852822909948871449087026866630774450699110249374757370996911604378572791716189792458436631231879949368704943064304585740199058898723394575910467550053346469711578404575089978017230605137495685444779123233462363549210915027632172747535210310860892685989683119343514710458013606716516218168914881062464871260170708749539270764073498198646776814076592284299278919984737616096239292965168988517431092882583046125784124209334272295729113799148806287524601648371932528300600681639376059808049167804418235329563983520356831526288028359071927441650120102201614176954020175954357464552505874867696890998807397839617050277573963936042087729119484240042277121557739611199918910668218292554378258690701000567639926700045141879711413446090176936839866683540118025838362626036441634232111988771998943395074311256573946400019551600887574449985740991800067074409148581582257772037039793501790569284761237973221130780841231896013705835135951814591746267397029125524467950909489042903173129319818602714066845404173314660840654942473193260624194116930291323171934111522378802224780932210322892833181705209706489747126297937158826304285214521551228296840272004257823417061374387976217816659146214886690949914900166591125273059848899033361245697497079388094162088689358231345713545711947693865701955345057938830647232604030529965986962332525541991616580348647068544677362539999112288096643694910719626656949969795641154767920428553566293426568185062141727250301065389692849032898829808332192424873966575617187592787118109107983629654483167025131632704710356294467572592443033781407528770262771108237123829782659860116824517744821372393127280697448717533079594875413810739064407082538563176543895341297142549057110052585797037274193042017126383694892793094097891109239222613796966205016109351791840698527440142832547065653740509588700881835423536343706591739566792570568924876789248660505207688377399308715334867545708640314980399689833355424428909436484093515261414869255631381147050659480991605929158540714176239516215933125176940982306209507167561230537706688191365474405846774335939726730016462965816526612165104032360764792473318240059000244239220324243819763581887674800275118090357486263785505124307060783521418413797653855703551968597501899275854849618827910252031588764523235626345577330975107452197375802563677801303838420615130029457538652506313742438625256451786392559208288568560336882234891966807152008673109823456021073699148726277396627386645322443079939439248411643085541420191672416773992189479776290142311303461786135301617112777183328631065623968109395771517295463958019904224517856847554987866792406543212773480728330730866437663561208216863485153514346282976142213582031896104195367818693381425451530171726793551457164762413789252431798388438464372354394345644988156194110866939988112615269412620635664804330186592540400505991619013330490680472049360299898580624037565372186888207762306500183374399530981889302837732990270749333725906418104326776815275608486144637937238314863754589352690181925878467833983691351402872521195502319515379369784578580290885578765151578525470514572276913576837739860611208199335008844557689079313066803071811359959837345177987461995939007784714417970529235344135832811391575506174904918497206720294876112655555200140773641493879442013622719074270859243157510315992882803083759045912318653845276883764214725919484545861745160378256030791857994301156912367805074672780201154154914403966665979290175406147117925416008544503930633423035688922235614490725101561789306297220779793385965615608478714884895291532920631152546508909591060974596933091540085307281172355225822982418757362573281454005561083686882228140312711055058322147630669962686737753667406907961864063005878663964550079850306912947117768719827640833878805395179197739565354243555594840316394712755520225286535791768264930309073165085026814110782608074126722059471066245591527176753536981125664693166623916290372276041210463124487307613552391050746116809776484221459379810033595882605310926408880080894627907244291916440199566342732926847223771854977825532802844425326162008730802626273638366080449171992179981053237561332128454733378431369774169908782776432683213462488023506446757989580703411835750723066205683725508567985131148567424360042419991921894385809568842668764187480035143315293410688984559896818510617405391728114264566418574726667595281228869414509543380261564145372324162028837286427313964010662029392181049046215345098263730952150749835651083551229303838615346568977693359161648783871787424613061609298581381110986424532525619983564631848022984653695741942383037871853131352119552229572783610813939699555364323352104969750224878481628785576641182681465304891619530096875423396084860880059492542445390355926014094521733263776223097264803540700924321937944117868023618868522516890887321321216720155605254172289767062611861818270570397755418272417669502137849662622136428505409680299307056360005431537667688345336980147179535525352519818990913484241650581482230198854343436572350366274713865632500969442900020088709701069474597235117558168776941948505861017991789165465563573737805427031567543680868724025904621585244141113930143922509741370328506620643720972982691775725921677319710136439876313160493985586043905846718901592344274005789785274193884764248986479968049275561540271190879500188923931341817593058392399944524308253904981770860757337966334830714050425364319965499454690322841486463180270870288084093090593912855215647281758618481268853802090275713541041505092311402022404161843407336360419782028533693115145310854856796509401393534999040391767438416350500755875900844939696899192494634954439573360606297889212393252293100784645378384663890793939627381982788595797014329252584129507367399529629453973870520248954690772425028824637169524823333774654187254515908216293611130047479360694565175864744787991030167590217268406665000722595258104353375283121522228491555093272244914983999989513761214093179372856256260304369447325865189710763073354549031221930191785266477151422253292450140342904589802941642962130311251365675104751361433758859556179060549347833917044348235291988378984267044260832228083769463459804079388238181646775898124043812747023489416946811428684934816478381811060409740413802764137374989172781300515963965985983513884997900452300496565746903043050128403036086775698893325972562323606780767964992528275000422816797343361345892260685882813021280370703875822165361363925699765589401546831586148324167514621716318057714105565887825993076705723223229648916965979297962463354562846473419315142230024940879388537030304973339380298153004559537212216988349734771250885441691943962044671692648771613868196554067418905413856563528181957924050533370693732862667576281279960447244538950877005050970114063289374237291666083225498062490417387128530301782619951111185675324878450775694677666096487989048894452756205468993815498804465731753415906246702046675804760475342228679210098835892354964191769652851618898499681868321873019515191488967904985049467103685344467072955473133295625569694844800772437531010188932252157830478205447689989528026950629684811713560641216966266556411737151415862392724096075806447560038345241964464662097164930258098828126344714558002631735662679213098190439896373351138042146007736822754450689406831880968024568378011419665975539365391587604980566419178760035715592299247046179422289226049834988287266455274279209395529549788511181000822662915888417609862018879897945855341149920624693906307336921394271100673670676314955452081168147666896526922028712020556730162333766112723795280088698150666608679087993463119146120100812807742500653937769447246891091083825072023266026246163214924059916233634671739814844938834844570016065226359965236200832571176781226218963615245192169071993083656283996515020590062947240403866396080782929785742925876410412175345562499563637636502056921152721578483045851509904506331630085449995871942607516905987463267831665457696071160540033278073663539892668734282099677312955942201062922146822626503088788850166666343524805072446883463592079965674434834353253488884459691873544025579892135138062955188748776700443866154883130672142862647884074541265198935564368348072895783204823747994757374694961340912981671640554277964240981556638366571388259673004744803357344876912101380710912713995758820296916454214212752026871232820832589553848554602910668834072094722503455982080172418765898149990422521877632115521651021677588393157104744378860247691966523944577650544111063967678866292922505771559269513593422821317632433841614092000616712029288083483616058735294514754583488694536744828181846743735571007906693998052500100282491604905701291219682745745317842650320857177274003207753912321773734689250442865926111389249048965096258403577718204951931840495565718501098368129895434001673929653227211555547901167874475293800332752333042996168940609613735121991395122339188070492028080967361249613643759479727134549820238808078485742381162545245468508368526600484797828051154250390270703665480399412275369173173744487644635337513314433269789974763285685134458733688555193984481835216197952748204630554942000000257775137534276918782586953005115917546423787196483656750312641038399495210108839767873067231075010835294965003198715543365022063135752864118899058382296258508790763560990530730527373380745884199300888147421646502943290417709632859783613202847863105648515048401681330306164217318113085520231949884366345152910963553268843015125737180578340297570630247784181502139898580767565725375859709072747557237831134383538087475682866955024884634450203117758060167204686279171143000506317037577495933954283520318272681807724570290497742672045812801917199487434057453805594741766942310321058047566646937011821502309276565829148225995349537410668243601789187270847206481955110704080341356796465596660362472899792621026227267348513921610432112100846253382667996063979576519661546746873719078490519643994298642744230483993566226176581120584455383744245133207239885907048542768489383395775869640805963331040510592129028373133295476027807855554423291221752957888557672580937739382695194431127440448823922299007978013508885407326326062017455696739260141118038972960228190742934738506005251851895403929184835246802854342229172709190546698720253895262891765368334454186166637200937069742641023548588352120241108833186484247198779216999533352232615753500665524015341552594424389908355137926507926692218125311943819214943149074269979712060784161866747822124896318219078681340959629499285652011031360713995576922136235008073750211349731539116909508522627920129942290092382088562119714917286412585242788135339681966448466968951854688745212946908492434547138004970547880345114944426601768330955040508332788993603295762505374484011797491560963740405524045792851383269779524617993760674239308436689150598881443330221268541428447743222043613454901800564409489243095218147947222225170166763287204697769131461259032199542667222098716181923278745666322101247890219134545265536706719083093042068478396043625550682843706480105774615789703449241873141939779772126200184666540865548998481841430872278040078658120404472201465582144149445943988941907967724873633389980503278215486370564814722015431805857348923521261728727070959460311268824855539887227589315326880785325200228854840670002628567767038946590365298846814383646610318977800526854530327520658660403534800450208161326549150091766804355152256734056097348837252860643439663520231182915002258904313746614353466146292324406546587205891738476856354776960828577736761460564853403307293221315814765350728121402583298732444284299049865546414317175325847586790301515472630247906659518892801207748324784150071445765621644861764592507110402143292318479162978135860647808564756815263480841636379456290156395126271832670129304169834847645137000247250269711826006640285579300776016416503797878658249346009054578953955452870102302699601185874243186777273851973115808917106073542778312751004086332579879363420337882919774985313722023813438064483052148382168473898601597785681104713535194773924230329125363365066172972479606445253282027516578597852382524313256447253292363485112764558883733720373443210397080648442547234490905258424323126174705895324576254606142249437066660446230013421064087785358575804135558482707213869073421482090143315451903398823200953192179512301517684956702018315836895422782713087156597392028974863246728787436408273556314761910359403300189717620398864359217899851500217153977727194238544352603629935722414850590696340309907324551239975373514171987176585476970382419649536698044226711578914443291715527735691685914144866613448742993225904796624136976864780615313088538073636255287711492344117233474650389426839886344731870926788842110477724904300964081625056011835475925086257200689092381804054015035117699316886080201314799283586089831958287870802363339174240463399466465608709519992111781414645555846519451993511932861617207290087168932235344759806487756485166938480175632644106325458817919346898712922434375047370181977950167365878410618169104231955493688369165234940259284596688499275887894443694718036632642833661511804914747176133482749752829301533403792527426922269834055542604251438888349412420126698984231024072201835835060331723545030662033074740072317052628549933978745566869773137692455744399220615337648559888785248887815923896625913884382677226540028425437741540758056550876119307399608216149584934830596088531087732951284502234668065494684490882553761163419105002470887501853786560799811717627581733353235513773471095651356124237356812535250478204692025363764543798415571887915539836936280854688414432928797761811093696815352103878792224935573311823260794487440180350679176864334318124077404647147056268895879353316770802135323265168206223824734242510934053311490010119277828381539189205918861139326206340298386950722297917976311941448998341148319359285766240395920274546314554295651961349248606636638884425998964296556350755162846001090461673183436255800875906737562166253781113878873256017088598169424092638065141235489169058340192200990156062795502601854689800669690242612105679146348109442966008209477144199133820797961006443210987678172247596246963052544237625099929439607852988871211186470704761749203746989232712067202286218511580037045314235976875753389373701776144037303134421115504760405845317913054248801752876583548909306242866523051511952223013670869683869284965159404851982579769302587195489617791809797524256154658749540382131796743076019236349238784614281878194745485643701569016524919293013826360120192378676403423723151047884173326989799077195258013423490747964944469438978323831972414582997361091415447518576832450795326287423165786307421305885380253259858763959792009383227869514697659156664684081892262027929771174655293473248423104094105125999061080409126678885508536116087034283754955834310904087082269259396795298069032419796172096072273982016279234119325707335567566788997021271411483292330136383214782152545580181802737617305156730841325133606398910298078668156662732047325246015124296793368020857597404787083248356340714740856424584087376787565814658800107543745321339670119808533823474349231813344608166921788305313888510441065183607322782916262937444608697250918049461089324999923503784166566137272558755987323185764010273698588241884465238439486215169429834365052361148725802702465422976285529923346237670944768610279245692847918397349832455110870096542383407881287139130765560086469005450617981996449068702872695541773774859805009309945854373961911980603982782218851902459733935102849660399726541182433274786280069471066168363836725668689000845136737122926927628834703004135060043162074019060751042618556049145805210956617283997915144093124767185242987952433283258402019308175046048473029910553732261146477491281536591738936256357540725022753851792131162561370416058611941459372413431827739205935842019821020962387202690363257920719650416671711148756764903287272983690772545337893226100859995130929589091235114012571448621724636875370414562071128494841417542498485290927739639504157813635939159619725647547984758010824694370586268267406590502215069340467258892461287115837508660102549501305751605670661998042739861819514671010370666012604407776037453509083301137869826801767704146475047325740183614322346507487589274389593933391809026224205160382813183317097315863576938663969068415827964986602662470282783678605560391801716008470074998487990037895065144916602493820719698921507626097437110974428257229725715151970923219802413078387880591067584707100959695892650584830064049906205165408144049147196659285674051270109580755098011319834427334389111153193352780018305057806580393301656053148719486707425480573246610325077638449899608626238364628081644520297112450364736267270309735851020209463861284351316335304558685652353503028597274813508039102506210581652122092095705215911760782994943597556816569320033162443493128835673483472666864041866242313272171220932412551025440678464644335057656647967761633837734152163830812281587762555913314878209220708977182997108209352033899113260113679715153862415940794377887813315458878821740017030398864773113196417730586910803731474451581950659400281559179630306899139329611739115401153996791740063305482413860403431951825354261768223350271560072374347848987379708169690713614310354076675397760086333447525869471835837007663629691783272007257089980742385960648974921443269110569354967686225386634219773997339988095673091865793354162365607332786279529459155030510110254401535715046171705985836486169841367616387603514145208409384232664745978268116263892201784090506191661850787130584587725910287570363040238044998788815420314039457310315973251494644822841505608180493300545298000131846828678671009282598127525049640964977259066530134987725866072203355006755862829527142841303205303750995488440783414290133438850069670051051948405880670387008617998476889835021244829727018856214773407109369274619747625458842313298109063133396673346163808963463398933180230208405253494088660391923892936322902336019605340574086668099819358725483636142300893763820281215632715315550973421112336080841981078016924737714159819328255026723743991960124719150571780393678994406887885539514352619643274001404301745378095141808900234168064697540111767064046158556073308110753709037480768890609971139574280599367906077038474442719652381016354889018153665852411020465498415315918758095572526584430408411198106021981420459131334993386039459791201127915233806887939650486004022648794864316847038813582262351545060210924468853233704476359099183128755345978179614294598448421660995899540636044524423405273449544887364298704846158037263615222003443910126170950248561131728436332304949552152338572062717465225154380251807914029467759581946454994464818278605124810686659100065576763096167532382383614695644510015050866774850932607261365187644995933448255384190906658220475756980334168063995943561427238725825690313316876976416110818993493820958642638367544407812973766247465102846412716190758515077698322375825079727775850005396317271620540033045746191156175746736442580910938794859639506039761776853948733632665685233919002711289353238846005591311796363734973092600839589274664152869943535615447163807662069389389088711476567522751857245022815185174388158092058805017521753760621850732888808191998760187303618452089642600444725085006503082176008739451318372089905795918028758744747700405927390653827918923278115635560759556088504139849567814527888494279462496175200410388727308090798099412300488218794899391550488164535407178483224287764724088990096324858445709371251744845861162009153289102742208244102195658318286073473423454477519364381272841414878137271457791835877631212269089276152233511031421762296817841298826141890733708339511517308854234804815782704077617409281253329381832253548162086680665208606688464110666837855222797493939135547610134537018184945191988103316901986052471050841944388802458571779015754393360529389717818230140326553480802669005640628715319141162176854889866581268809736249446580222495602225034247495370650618885417290508311832088332738520795112911186399964136571681905156230900034099548785249753828873271603347525179591177827572830056517058466504624930737520204910478579528294305938119875936947459586555024911278760355450384980206945805171042244699039041015469453570712769457262094110930773791308222947571310189112005392882061193257675512630089904353392360490399443570496447177404064208862747321225448227441334070440706887175051813380432672256197337556357644933724268992442679780164162915264068060293405054717934924098011969090971034587268121716721808124129383292699465977160320311669684987565018736133694186859874025281759942249657128758790174468105198885528258360803315869901424984185384506201139037439646204676815669963156808823310276257339725987635627384302447930593596401476385015612324017613751549492334549991225131536786084250008270208125234211862179957986543426070330807479221951133711480082019914932274958697074438418488088335784960411053314924914677357278403517677335242666765790628532292849788269333994511577570832089894667365934883609000447232937867265928890491725001069186052212556192106002390220414187733582948705380266289407267503830145686964301328928021575721289341448246945044581708715782958867232749701943055309586419475780558961947696542341241563090103135475539218641451607766500044974701012417695547366239656465373997601744862190358741069680335966670537079748353344341452184989635691667497361236714231831898760707473355561603689132552908103504870720567236406345974520599566070140808760045587539836638566620191303531003975258073516214222256751842385180644642885393498887787176912099138259364283931060587653915178762616565388753569674325148533321952569197292666316618026491236267073476107789985681502973315620385796467699008579651342847687366235996190312864132670963899843323635233049960198677634892372512247429108084258803224439007114550427007175936627176765551505375335180586144944645873786153949927808490598968526348486430078746025374882852987570120300451850274122185367934410636072229948049372873207596656691888755762060220854423546215269412927936571930413513534203451129692550838445683828152226944043630981063149078469190014520762444522927599380745444138438594382816293618416050796528716065843769641524721823181520732109319498612694711639419113632361217201209397473834447434494218028020263388404225211352458158766140840502027011022315156684809329926943580144837376105843645633860416322789075812302704221785534007800815110610984028530422746136369916391237202154338061076674816448921027710835551523422558918437826918475702421270212128383054029820049953168967043635894590084185155122907780502737196600092717245798643518725840819344109097555219577321070846653164838084978951601575557405090797620069801793320515006430234383859666026736930072657615999521632235388038930646070966811726503170244925589422516635096454412845879805304056191779128696869185270112482076718421967947287891015479206699033425752148291779476121512731716410024838805898480373757509255537330806364501201455813516085866661341462877078902238721728594365995642498172801274323208683148562655029214240081795474613849347879196903547808996723703774232931137048585779782326419888348376327333898721841371476222453630067747517148511913151741592637461684267897354757851045363883610574967147848176290641744030478993843159667155599184023658699786873756142717919755524841029450668333499053879327338404731375347162086691627773888753771763467963290705998539681928740561749102877542602807448499188968782352441198701291286120292438155626245068290622053584236493208315211571462637563238784835381621343452952012155332383334817693644502343344949034949811490120697885680905363025211374889318294063695623766196764027356767323362082860602433974807877426499324191968617658575529730970650261914378884412863102826517800771551527308616035412937524623922599633707830164700592233577996709587625404291065629229820471432874013874939220720011091104079171156258577854682627794295298295447538039518140877016771836565615899324780231675367097152860074326147504380440465182877976989662183235619581676499549864031112474448731411423565123989231640286268859350368931658132490481639402217107851246881962895996311187601907925005241376539604695793938941396671223164113216825251903936210236608089628554009395735895495136969037296712506524051835671972376654909955369648071128786643238834138357956589683266075725411424471501065942976189302164461933255661443582564621759502942805525012973032415959014456349459361994989868144765394589764012210601982344136329857086651408364980807475939205974046456203429649224393638938513189244319782729163544135045353797880198752753652524419218425835480745322179265952071722573789914378952373880522539543525702003324073176898690962792966524632307747544017920031804766141066182325963313388155527121838951989163990388045488890808268104834214478651535201827834965075969534571070736017223889981302332492162776026202102691923352836704646259010033420233913586772512900473915431117617781771638125891122968645135999629425870768176352448586481568240906120953613907291669141946098926678131387861243696128929553730939909273313938420330926829438192462818236634652441050672240919772967201012388274444159965404901073147648483406143333565871204740242129046143780471381395498660725748331443221136587497276402634465892962963064880452902748470670912913299821429142601780239434833727395243094218403997352414709454273362359287807012771534054977602685312041059135962505578240010849320480376399039064392375684504605469822020314887481662564073768407751926700696052061443660549757624816245216375250462408713577553602866045709140425893269297749332328674585975699876138856646062993291813980132649031504359335802530034932349296025238206190702076085957887364776965703514723870288813097441139415255342193590256477901660883897310050556901271996628917606956635557465336647079962637365416739491773052295570394903449552553880595965808386725467134175790674510833232477919108295862244797192986107774475167915658460959090731714894557099498628008462738589474624532967092700861310793141102427720382448869999868452979752939725830848868237822899464062993114296292173999128103140680937406407964708689923953203708918500970810455423374340110915858223910033541668376222715014361130558935142280285168591882447942778572928660480111041129664818292231042081897106143123502823192838662208998495105582981402983868523879309540058913389390958791251727808880465858084188787049210597431384730961751658904270770569061671239645586322568730362850791551752281682787924356857057259152184578126581082518810577073287751222444349591144117863904856615361973907196950147625759355467247036177510040001819150965163876922091489178138870493136188520745728720114262108627296149472131930621314546708297296245644270880792424505177711804256941123640716916723976973839427791788209768320218773301117959914148253244679246045230135632269624021157734432316717219500614438390238212613688600695287284621783807223641032831036417164456130919481153950644626239129277205371968252386571831184031431629086538609074101924140222226278663027933166531396467494973483755974227593477677407880150959206514226004562022094724239688614451642417694751792894024337450425835196022994002961455952241964900531151602319965143972554976534579317820950941793228934767011903224375286221690796870662617288777497101162307226192847736995599385218112263127831040135435364618437530032571088853029139768853400271197366828424712847086353500705707695422863138433836190580033686526223024356832905859985578187099040662402642167367147430936386604691149170219759532028802893891805176099445442559260002921661628025436181588234220628256129320985029889592374491226872235194725912127832590797484414031181759027047715359469278989201972353832426173352070200301198730818133864006837197692288433892960032120343453968049268728091701163818582981172665047940541019267010296065872418925037214902119522743626118312437867493923076095475612181843876699352602162992293895669051133258648933565087880029858843031017679374863813822784833751959422951986610993238506964762872822005415345683476308246046818546953170762269151338527225669805234326543702541316459623367464656114157568905184058631753494451660221733688319744794674218781224305324856324696399201188515457995220876761436544366136560925108631486098276655259275677269588772869631797763881191355469568717644319452256967641499101015111351550670632058015679630738988648733018125861549233053102404559996491832516818196489101972728640596070829612389543023585920615402466335908510401238667131902655220351034672166986102387420180152667041429627036534311365631320093609661993535743802442255923307588337187194876631396587315046083244687251532015095115317974148897637840587034119196159044957683995687582812774712612186711117910619167237543584726640967244695928448284363862712129581304105491456827607850508652046834289680051018521851571387764291966010186702974483998697929645425146079452350904574962891004456831751233598570679205018133134039935601336388771344659933190388721227229779163565398876086712891419072214664820053391552179603266655387199794156936722950221458082702430674512760887934374553741665257141513568411205823171517896398261782349178225265394458396753902162804080630501141387103701101568566384851432418239448764931923084965031629400260670684025354423198099538406479185920732596916650388645740876631010574091839626413139729628178916457759312448044727319866376017107282064828807059535718055272639427266787661676950580329250505253390245159630239153161683287661240280383595097935767402096462733101367012211630259360425150825039398721356056134740904786322359788786483553362592632072509407531122062691135375050557045991397226533106305314341750605351115960607748789032269371705181946246723143819958583653514693685935196178228360228980041764951507278930902582714009553736802732322674762356852589127634079462358803942544591910186076121144156027771670643572770463865239042294889415306885739842097694651885018948747536253178157819567874139692304707461746125249377343204963702286896286226234109071693616953719485265275752966374119723703321186710739038479229148608810767718591949518752451999364550969979882745608473512343632335963621218764612342820721323629193496540382699129689781423242616306323707736970234943055704549071266884923946051597225082346307011097851146410785313484530179124486865524421307515600266526798223960098437133763501348195415673370063057167250368504631170981407335045157488886965949558038014569171877835975974051365457463507419514604349557300974357903034817491579275473331272750998541476808867102453444627387424875298589282542500377422319915399132611758849436492468207652976107034512745172220697827213404047227508608361382714321378862747374496784411947263288600314730342620523835270153850185502273401173938317541270922416797786878376258466549689265500910899551251884054803130845998241817591286312840607664310956404048799466316041785004436689311355036591745164285941027746719302772526492496980284290665390258185177808338285660062390091101894671911287440068517341985354399142601790995540332979000774698334610795376423232798423862060117371694844612027238788336109062201718361789626288633449996126871453462409588251861705040625487055075138444358586043174089287989213096760638228086754548350947942040885749411954545136233502427691254908760054593835788848107517552880088258890745244354290451955311180561130329460150420443413468992429017298026334500330444207913550972864686602159607611299376237054346293722313532568563485177666524178614205640213308692915847803564332680397532533404310275317190809986318261517538354030748334211470766717811020007864995118961815163538067558527457770143839547413021361948547161984091335237600735235294870020905370901422880352239710862538881406585024854977284478922568338972491270450502678574358261775593131148407896267026973117206311903342317737175047344418661207920599997338448349235489049070920446379581311519754270721748740872998064613484521527117159960500258916761378323204913756644132458332986440683803715899364092880193575353309477418867841044340144358709600223971693714808353748099904251331153110960914885640097295177360495336807631580780703386722281172501690097567668113148948060201249194398578066873946835887480072839984413069378834419771895192207000268086557361745861773808081129790928666522008967399063405106088181835635712446164286965823381731766812970534132907225286496509387009057345744117688839882592648859898702695200539145451066375137787640431828965925341133405111996765663732158098343546477263464027234492506701661386424042988681903168690947507657621497706017623055745019444857839525241194962706195065733651778001609063017878822828865277383354836189043095176015387106406435800780581676705003868752351140726717571334023446497933951671781309731083816645671506692499443142400105512281367960134437453329219464780361158194533601507959094698888896214135145701466410863340634448306395731430824161173885297873254012461369776649044703949975946324624190973694341644883028948511316279107591719927269701702286710134763073224519725504250235091648570968920222191931041198611026002393709674204777397631502671599172197858466547599994929290536844768223565692278859500689712898850444095941285582625935351752415377439635071544470839770726003803888850249053399914244926158124250496067902982766752661602793997493298210439162567944122312006328963496218903399072523083156138429078729438355643454453210419792899772533512322126885867085214921921230365317414704223070214137112721376610611329872578537498305469024769170155126388656652546993103480995046011762071119485762859118690947908813531416694227817916349314510179257698725392473227609642320190011948447993626151919803330397040458520586305828588545051463573873452959254110705772393478258934167257021308861433643157960636253680032678611463953422200616692926026736206679988060205670827381916784881769070676657945306659337576555466244315944973045187290705254419571386305897108844762516082086177044242604382065021950568085928350192917921723181165259029399822346285917584272149694739185475384987905885771741342804596506693944592373034465292953614174299826524694508556969390534528889523019234599546981883560705818130318450445474176950191182151230243921360406086587825208642611046329443801695225291937784408588032367099821828721101728238432419289516233565416841100731063650420673036978463860540534137030445877878854319520112179334062265582679604479922483802608749330361285985927493443148985687830378012762030744004177116195640167265266938625762938974019731517050236455434291924577313963236126548204111392150305244509692926193751373972882695740484975774067461595685126217027716972769356263797136407798257025759447823385188756129421280487066185598446600467051485472565619737732943871501178937249141384776779164460228341125588717782992390889375555753309482761200079289873604544042237337990592190993069690083854452362658848826199221181564156155739348535087555236584343737336635682302040997281340618532812861053738609563133067917040602184543359547654522239838923581600981998964932281977254286171118494834415887940746146257068094966064680985711550618026667041037754145888317766603010222627136970114422169138731312975142825433429825652450428729435637413616136925555885016760266246051914385767341608288026992128923705496766114034026906750140584075573366909596000016265576485264982973394724488807327723726505545848108148227524726101939316361591315385998210338413402971936403729994955882075094542744348282684188277345878513272577582079620855354716059348015232116210390680834293868376965227338752743063471618905839080330904961854380545247703490532784849115433655266729516004385884224724669738296506967008897471361109606565910514752077007334612354260233207868673037382947309292945623731604313341397288406934142395135408639202777970254286402914412399337099482097923445280079732892890605254818584562359927844092248915612589156148122889965188093119888845356115374582252225395637666936625139652156040452927072097511941211555299710428936552893447634373333592985130899131799744578824231647834325152923970489509625224796893792477633997874972554197852523634816049567518742914835065448904700362738679539519347727783928656260653567239922290095420632211397854441904814768736260080933067703775432210671809208062817729950946168451436692010726773515873442410027088642402669393724921792716241496720236966296495901772485356824083040241153937360575884156530835781610214255789692980576989099655241824444531072941760927306395037536479731989483487634310921187058952981796902925678719339442950241091427018508462922120148470969370418556844797151721125467651523167357715800779732168862504277788157386402300509485657118355540325532638474738567816554638743937101438990869480850663291172961834684596298271608718042288348550556598138445289674741330192659583622344849645120049869632425923295575174611583434955816661305790645373446866781284198925669038344973734259747639611824037813155454173442861074381184860586041730237245341368285255699875912357662014624053105084962797932746627349139833596664184093267170007499388376956950393792979783811667198751904629042222282519993130645455910242523871954568816156305153627761569610578493787619807811455961938679779669428823718195814973731340110718864386076430197813834512704738311096794493645490615136878303594242437332905528456523677689614092312896405284424294720429358475759974853737418936108606878243915106725742373444278787685659768746420679044094614673041730434662088490194516738471866870962262361807882778729636897619824228914131646181069973141798218070711060152210373519633216919584197046529406053036796152255934977487342546722848247502648955260871135057284668631612773156048388240168954641264827914854504106922933917095146738321932514982936493093317075587183418997155474280158737882139163868365603337618228826641319173180772095792901854138368528711627617562254012246337313500280081012225414794260100872296258357927767650403906758622893628412679908413077025470095497043443199998347247190853977524443545680362845338383261776069236903636680838784094784454688804434573788908359940774521629302741774292762780560527681448249453891261656034005023811113810229012847234660078208248007442324227150796589047239807580140806909091201722903436187238043096466992905790772048207302934616690199485442929075400749279074980201921635438127121121088407747819057408533684802623060950928441737541039322945752904818321424068095259652903998670749062114157894967643878366528415255219870991310085637046913809008153116901414103318068442271908322841255656681236228138895839594410107987763900569839838809302267615514858527639702348404718205659300781446444695632125921950322962880327005037319407265258385616143901779481412815810267725868349742152681448683320792329781037747709609611453658181032008781311746603173388123558580808110993156816390491551709798171332487655051113529887085855331937904860922931952209919770188566682091537347527011215546120937526536146398477511915566475308673905411814094360627534310512258407548653462751437786690118640289079386847635697503327255233157444293198238360520033487307184647115464243879868800458183354859182410859008211874639201369803748312914604153266353163277715237726412500687973495419580283763022737040678795037433302143639622130199986617161911646059220268288446947111357786829497001348720187151818762549025978496496813846186878298534048675356037468253681645184800323259446822207592672723997931915304040726905288373729638837016119382185659337313919514577289334076995694668761187949166000436926238771125373521369717143199429238072415561029235565625457619299303829960858202083105992148970153345266663522410064372554740021111844787375058466839700761988808455718890298426283222358939736790726502575407856611093125789974981186854808906649377642130016673125584833145734755063266370324803476894500085217189120087413071558438362006346021899697510227011349784832551225921343954371268259523267452018494461721487012906601376059996692808550845900266556542210617520750009909899245464372225821486208160081406283449181956483634818519740151786061736918186716206450389802433738309408866358010259214742758050667832692766627066742647841810719391848804034056107805714772610546575968290173638561720931104326710776747011539514560801745287113377192977107100290650402707492656175402534113171378661093292110790654961601798195865142986923132884784731597630015919702406033603679727394705484815060707143963461613344100799886495202005189135624248192582526776744282594064854572254892143167024417817738442470329981404426203683976069167435997481326680229020257762446295190819312424139898125252790709955432866979934371567347451654038384192106554150356425025861056228516168008662824011108322166011446317166198188427191222248755282328036996557246577476713712060427990079327677724198655971976557545085015076990610800793717306151427778672077225460646444775165790625046025356879006324187029946427179269992219474378776511407433656220519509159731529062951218477605216691715101464628617184313399378489735736653293619012631484651590034295254320765494967245107518061241644061628341746289383117740703622082517032151707370899032051341374852255730566384566275279516562678994606051985398543084153310723474350264701401267160461910951853704054306274417112508054385263041496735109042624812319981846887472303565893455408303080289969037364506921677581972432755413907728663120751371017072951622840646078792038306059215236390144046911798301504027330253318647457501242170290299238693864643349526968654157184341438229967815400297571461039006519892637329237281448808267598839763636256783458279920353724340236113971003121569238986031347636341855065358057301387181214966196535597453081462791080377717939261288812082076537072199034329274578465070088802545505611381537158274313883127078047093761661371408486231421811031649709889255297549671366947899943414923929246402865853537082187362458340987432405097424005506597729204282324364598548532639464414694398709717802394106783970531071633107866734198729881012287323662446229545315267440910157924828023159461776738215892167156110891863591629984153336970810941299393822030936092472675551576656589272999449358125278753439465975666096188406588781497428693766033028183120617657710993003426983534498193331025626870191182701036534347101622462912525197916104802223360699042308680023283763177588935958932944158989665627611728167202593822218051905754969963296000155052544293147717784709213261737260420333612337723964492046879521649503783289591828463202569730968559281699851503355878865840026570582835827984353797080571765275474270539900762578567367185121811036823274960781761054480548348966732281433870374468295102510473856757431436713448927162119572097402175705936660207634466488275973841764812750321142763548862905966468591343619257537242070393402968968370390911674314032167870488116481696649261035290852653038395856046323636252088758105789555900750717566378675887346207863201050712796693334922817482754996124512953796968090895852524580094551637962659280301568177405863315621451109052748002127624877376378049126802697841743794936612952617811693627101550611042122589525479723334260429488270669946965464775400915088735089062045949089248858927311118605809739186763086206344293877520832077859085678780603789144695492903323290196611010331285066908363908813789170308257003792448097446541675931622821001736752394620296837777211720088452849571368048127862182710885889085417590530888792625125711788924937404559410359446344765988335837718319657498385542211865793181421289052329831116975577396554654127162696783693288008562348077286094147669884028422221937902353780163865194147351933143163502717252484230449129397495349534369104297607011634347335971534954608834129129693873783795123626083157096063400188817718146781098969540966463308434824022495040817027532809666164241309576234701610596687477520900660658625574211370012731847936682600811441700924126866564509550041742875471282357683262999278225540930622906140715123175957921606210454260142235948125455718477429509418586332722068113120843854170881775296625608316005974991182737094405108824385795836968161482897613997369012172564419897564423088462225553285320133562171744223079603547559446853824876307570250204142067390492905021662224847826147987383242316542045276010652772654204061589063233502878134709201541704495343346226768135252318163789673786498045491962119302483742372947843435807358716579577563273627742297933527528044041112037005831269835793629250160485729071351437245160221147190436194474972759027542370783108119973139644612512948053948961474922241152982217301932075104288417272302418488309835557059232748758698646557387011983163444486814237860911851034501289211958827734852689559849632868078619264094728316731487178987173138163385836311599468129970408795866341886264563328141402372481754261555916812513455869973950506918109662980064894894259860548467016154366337487305445644167834606825908625246880042130867369271290105545834001865847256022652102615416286760063136877672935725353835710784277321687816354589384615611637011156980211135630701475441849278167175723876679897647867636198068426773671631913618411460111071968178799396355055771506989454428211487564095397126061062906029108997861935379531849974801223985334167666815914006344540505721319320506458055588880311526598155897815489685562359252448252476668276722698718013807482976087396655345091405270014738475842867123883670560010470038729277491916783059487126747895869409776687659229975356113600494281920546788763551580000627108115287515835140812698764112958384475493619064512805416650103055416070060420647424581037338836312042768091526459779588099609373915790299544650058792045793461072728945206263214453003207829702732414077670715101450758308266429899382924665007697746150303776942366125673584558279155729537329532226294237220318407430916281550076240411147199681665301589338329349073108901886956655494380526484538277127535473519664621892966895969762245486511655530088971556882490723985951711383339398101164885770021349385662727638519795082821113740290917532645585154905901510400944649497399603736531067386294620460961873803163096996493954270105988265749619777079069682364920979222880634601253232332620634450046286012863734588691709093053982988508678360426195657131180447773915088669316959725014967707521840248990597592474254066134716418225374478292657087759652615566820835584158994113580406079497305961517618169876854590517463742180210620814657186716772182005008849785392141535035079528576343017529062172116033012071494545100509711514187553984151947386850817451486801267389820633050477003069656913303078489576716884965954265013019405429365913037031668155244675955174348986675907639325690066346184241764432442019162635688482311935746812743867412403610270780237305496874903970151423210349803387386172934436971128331312209089141913480393117227241220524645493227899423345654734541534582368524557826180951626672083210465751442158528772441561285351977698330728869785312362891271021573944338422901429379510424859610786974715920395772285150310150579324976010105995570270688474721272047474666421630397893142555553776879330679295219412761663875472355007473952150047608290569581756296326825523257475471906698316888808842830563838653412535129384598264408910616647562847433162605592767513253149159338664911576336099513942085533325689571328057957428036177286327363329944547689477849806879888189683182928927468881007570548825479737302284811355170295861622038826697102602762702149606907938674962498891893874078291313372089317369919108200307689308492257289743344285210132317057800979423519405628302590519105625361649786878215055572308911784627984129968685440416890170413803005736946316748647205377434919527089493513779334664195602643315511341295883302603384178973901205438290762224560907062480064855417514019476895022702925085306822361394064788358426371188761060450557010494633208326442463883272464188190130564117263471801628430799845403439717152484539625805453902599655595075218906319584994308082137399903281215051484447491926087779624299914227640197867577486949996020637923135417866477673561771685035016494222019898863692349314552016038222415467785695250230003523130449068017137259119569206755424874509325381165261481127872736286872499963768261638369940779908646298821545795219456197274407361870835436684447575697829797065508626184469148919264898488845145810596407831039662010993465011528503277674169295528832880421071070701373659859754125926993593259292670615570822547443493797991286587837780420071453081179604829418998914757499654073311557626839244201909290945883659711062787918485881858303896673972183191746652386641117366916945766899704277478748825203529770981364382025182146571523493539851685094744805458871624853878162420447729997253184599968647338033410461652044387389664943548551751507773011743289337013291383000741571871226234157953752552203356081534232060932328018175511774139610980110311425736216550101540647676748351070698435106566632828326820335332766787630395020356660078569878052451974987493877392082298046404492525041794379437072169744928846268032552239326695746445584609874156689547798194019383469995486356338696755442474394288195879685983730642303136293723486539728438017514680320478875441818082210275776395641235312426768949732403448508816244285466008270273084553889886115192682454101399023339182311203519076204099323684669543244380428856913222569867528810915293077921117942486997085959224647926822498147465478581825512761300489516822135976571859544513694017634603808472333196187494884418837387723068338270469906359304271521443242532985608806867319999633698622282150310559850994653334964178644233022505461843191376798132025433764185354486581443548518844190942137753768399618974981335097055128661472837812661382767469993450216407378587052024833997881486022652922672120460582058589402227052964479594053660701271090624658034545208312275242706066551492318528667272964677946902758251277417381572208741396764347519392498435871245712582239848483175075398321967137596522224171766494757113017692273217522418999984351800636265407541807808362199697380323074596285616680852616310712987557275306747868818384203870010521165031263612027063203255758618328073890116928096095721875003325633931481491545438408829315785254109626613102689324628995778219261470343446944742769244954099652664030346174820501462378316721138781069581432258785174321933933659663249227654105697660556078836862687551606771254824752212190666464831149930387508888386790419969193752707734555934326836460263473588945847554483330578052812685902663717904702378108514153757286022683710907526274177920174555759715168072134048822053006368678901421371361176560060695599401445533880624127259419700511374731731486946308355047182115080812701374988652188449296334507088751431147163699157611107939209480471138572036755013132171489127319335294375121481518728431344191978739843647278451981227699811598232379499500867635344810877468042793024233586879878123622143861768536078865626966659225997152088524056588813940318929958149706307636066915890531590773535189499356931785731668202552031403521101111704708764517324453024620878633161638845714396900018999872780566852898756229049248318237942695636565666869790905725133460024173140630414912375042448900010941678695289933095985486379668706134523908937179434418110023555477199975236897892268540545689245776968147364224134281907444976828428764792088300591816388456264549007963417321338074125603335323456953483579980080222609487860490731541452800101876649988514027423675213641248639867048625429397085414174056291146267490805701596939025261167608134865142678353810547092679126029061853532819457772887939084071187408640912594419934391453391949892045275713470943827158986490295297052796338490365514157860551487748668550642533976628238445642085671634959013118605939666651690617554323270306737434459869250404258910728457098762995577122846989621424380516493046313888138576582366390689315121156229739239933674295984781111696506356175055872152199447379888922695687503897480667297856469667837953545604502530658796373984776421130345576060106445771596002146160699766289245626105369840912707082995037101173895901314052605818927742572618644968084424499567314198317429525705366269964136813472311132749006426961724685589641398461493959580123029611879543576422575424952436413514361296053851014598926548497050093916910114770991434799175526434264141402637321575835372320258228635396182283536099842430570923387372653504990803110419019124822810016009222017181518545335644093247724674229006022898358053830177426644998192634263032947716589906622667264419677263091236799371250024207584139599949347933491617758717636198224778010163764691733692311831831100720047640256429150853912566266976762423066493758846694415750160850664649837980742960608329333323581063467680114046414862269165930477320212117062032713586658009070595332313515818701522292738276839920972131648285751120452300425611825909493407106145362027101198726241491841269240639664807779055867579492252725365900135419161169190751743884751522568455407740168958097339380439876658072306859092267699327583357764153896911499965941384757215933861431844981839051698557312129938510205562469913912284687478604288018069279039886579664243965892165885169800708092949743929745947955806056068690685361567114477350036973916298736916242156340834477976867236553751606622682533333899410872674710378767849433730545015453205640990972494621209249906914420072046922176086671807126238924768375265340187222034145540138311406927549146053865910131509174209187172049151926902673907734306750959760829435526899179969563540341335875863332904164183076639192637270205333091636544496721559243037169951265321115806603528046633276798222976959197912623871896115969444082533724340791176696798448664914994184294747932968518385995451795283495645912859887786600734338115141909893954577238184456101101500300308458918922792867622061585613099512598800014211080757345937624961291567115571281368354051772876556005603973264982807916690354639891933673780470960439137757687048077434005301080175707225222093619227458194067078186057126628946424195865872338864797077179192013626667305587713957490148852343334143011000949861760964535989809237029383922949422320934570790894214954644347308292978789614685802562591817030137720286570153560472887088004024923303342080664384296907944143679556067375517511419365841797093973339011711519012671162018336440972151349628361039922729461987042426125210402931772082271907909572873318378468527368385143417354647829378427655826521639206296221338712801805877860474558199358926879453749653783140733205998933961452726381867631663595011416225819609360940634763197202564077571662049134399026278846510748538923340222046741145743234093756591800901725868384119394301234387578764653864108681156363048243654683067924830760662181624163387073382309675089404980775650399514584357950392532277575920794713733921487861777056504360403533796945753709854518773631469251230124298069497337378471113920879102863664212447933313701790406200137848879590537542874160679322396102746243401694099924269507018728351208052470330171491379918613945982854902165467610111028479777080359708610556147437828764865109269620533736006742919522884884689649546585749891148582111938771000257964078511024620267559401832487357415201506546642063298976666365755963925615731068475523469459038782765169484180529916010533912491495910182553581173161925376793368219265573346824703955801469494814401182204535328459031218122083361421697430382569230915943798008807751238992943892076483853855523381539793031836174303142639465239604602647586392676327200991771761623428833192170741738053927066683516436161254514548948208307460339751635549893708273092685345390921157160751760118737854368248532658745664434391985607040745012521383095433068360029142755761587583226952412459735010140866715007042020609462979793335571576939656015047281915830735756790371010103302361138868785025937042930306915410057308372357326587288196493389903056114638872818797096642556576318145186353844711939495478792716781157667219653225858126504784730837214760260545390951149083402453797430557528432447708241611188080810388152367248233862428428095008205511335973429415786135885307195976206546207662664743386555992937247365840651117052092942522287559837176520277200319230252220196386001320278743792575369677570592576047908067430602272494802948691236813117124203121569946062387830686151041172717608807693521703706778558567274705715125664150238421620965895833640536587347137839810003844697676260289863173211482501855899731740934821406177150016475773433815656548529178790869961120356252187954689911665861739321102129782160462010252172304370793804281110130268051739101103575982937424890371930517956185984032698189223789926878864479484312076224722472720560971570876818872229080884552622131206714831848197430945961684041941714502624236265227039181171081355316861436691312820057550574881407335483064612309706277727163573331194025802672739583844304183819127102018121443548886436953359959771647500877649095977436168461893767723380984049961052559465169174465958681759460066428450655689223365325209933399554299024030190397906819713331510948521229187225420795453913856239220977670773928228716122184274621340644664303029641060684229706372021670804036860752046295962621488581943038185643947660205133684638610188767830499777406343417152775131943948501713655536337739325374263731344638916581272227438343403834509139841021094888807060803533233347018737414077298551834933960263043771351876885262823774994161976928181344509908130248445941275316412765786139082114247534701427352184258916474969273763919661209843149556143762077532133317957842480669557748503419360136777163640042252919359764101678512134895553584831989864693132242439928958769283993914864488154530072907161918409636863516190303228081317067800253674188288263722562560563715207755923235615305785938212462220463849924950494650355205708020437342823771007461005731439472604625157011458873446714375457663092379855002913021515829810041309581410139615435645864833600058303778771407003327237291299757225728558739918055915722007006769851700496923983150399396379170642473311078952505053830269949984109748129697338624912900643793627374738665875941372974339562384478756456030933982259538676140954711489911804571697351456078217355675225176754194272375089675710391250151496196336835620224017796996471307641490363906854830242204484520469315238854070640769736888667308010443675355190471259021922754336275151798117023934563369893044266326135184409764479638628832441983226743026451782794283774490948949795747930517872855705327454770371403735963825320202866546837289612186330683979103787065453265903791015341729554254047195042411999527335489725115998405754618788294502157795836328135551388906969990671666016567544078580553168429738955147648178807310230439186053311675800638252479951561126330099421441919816680657658609847184688659412240685381010778280988401606254353738865854427932704141178144797836546700004669437149940039059991631245495387125095403465104966459758228019817192512114791296597786285559996589987420786632853820107348564951366188179529589635873446683626394294607004179178315672736322941164185588633132054131031795373934733777309390452827471144043060060946322176116046729066348880045717603257291875149143761383163284044354791786736927179395517255732607568410226606501357202567393676169669594846537765528771034471061825720625873202249623367400611547568219501764919411069118894575063005762530159530183108817555107461207096016318619277236607379977108532867013990715041098142006029182688730270367927452322088176806885799093553198397137899790440705127688479503691609026540979238604712090844679456127376211865697657880910123674295506395893538241884602785834798207882198797084333167710321239322087150994345468309308509963906634733139285535744294298532028614352778585304813540392831262129613214061349158825337033551808684416306889770810459645526519455976254334013170765368942296523589495099411245521307158427066003330227782842073115698829748147669077854294946611383967785164464986076564312667880235175934114993864951486239339828045218034772898944826124213598657227634868982955232085556751517241837137584884725941139568314377027545759474918226364038348555222768849759177926421654224067520370849819988868030065030611657659502471442212375663274272227228319563944568282740881381967040051463780382560563970009497586372047127713721208617055495657460494471646295578496602075853454119539269172723763712253372398886000516583452120929965317887617562367299661081408164674482944499192244883995476532607588090293758639901062192156717654260610509942359060313536881750136222026391775778317729571530553210466282275139641105947204552073704579235155623867238623399303097533254010679877225387524247357995506791823942814538185940552537935135138674652815278620845786682782020134918765977394065561593515398789414483071580391363876433350302203666823801325219557685247725150027634285521329028795121374108764909368933727947795347690171603149941680713721696165357364194606539720486469627856550265194929472186418925398623410835765397219281044141974705147761355630386576134815496341810908311707280640775473507396389643420703709415446059793148275191947982887176472155368262276398121751567470793361210869700297254394393642575056829737897211733829098330401408414394335709890932312278204480556363467392406547922094137379945779161509281587368378658248877390258597556892390927691254798127540822284506067608095274239515173731835814942923667563703721741747782354447070452838009180257587550009641408644023965015183245140815741341050493952413285162015775544204280839401328848000168814321753970843993558613483139837582411020833486817944388209525364756171310953640493530699709111549621472739275416146948655309605401015654862739348302250530288309768909242475647064851745454834496578277908498631162978950842224467382861922444544053765984554400492485092827585248853044149173161450013855188150068520825728132001492836541971780364725414078074801132851277429698808361093319470565293585614066376917718424723637852828941867406391373526390785465705678078180808274650381020912088768291232172997843836568479021134051531149047727023697547856722772265848460924731888047276380141842176126626351892924147959799883734057815424906026326327214592259954669069830558708494412431679884539175388102066793079274702117790276796992281677859767876682624796037060537089013447545641498793240390687634003008413946488020508660556719590529426056139651390006426565867291360018110671787096762648834508111712467291052187476478986274920267144378793229591144102061179124125014954162881623303812313586469578455479520933622919558941848292926778760636684020432865326831629956531736928353472226353017637968045184240148640668873864276894012961444386520617965591497296071035128637662364122917052284359360685347644285313546625310743412270159785488703612599624657558382391480548276754088347879276083144887940296237061463230264243996588771133941740579511964129012292537814685221623096010713956033174917616666917305402706450716485069125751865732351221085978965394755492837628064211542741999321769602568534080589509352966112578565176811129383718537189532013717821497711537404739747868329881280514817362708135647200634296368792496408869892186703849173081139979715706779461971669873086942570969469375458528530654482902481999506704337318437919416573650493583938278961621338801730117772728752937197211023893694150105201091762913466183358492839691084198852316603916388283887035807196401991686850489206410272873891570818606290668346434869777833987133149392903810494063604391233540394660798600962567219690379053426525097663286189393130907984381487054168659041654826758154426797364145363002195896459154275418641395333569746533580564126593192697035793314827594368153571085113363750023254688916342566058515023266858159349023343819950828562468479201947551644681364550714390665390246030992276859196419145957507863848664184264089100373191982001786859875739292062332876196426951264318557358986202501678652738709292735234754681436361092717257780437351923311072310668013299664191578599530709791598356624227811587536247840832789000814617334129021774910788507207526620618600354061427595103402121128250693830479699351083174040460205392260707356956908163872416816002223213003366184566071354330781679303330840064976057924117522372788775505453993899578635346631670620503163067823306374083100385031117319241408979467521109410148707890105675700563749915666566686995000432530011074697311390685566267055269903821344740911192357102894972726790289161720885507846442290799409694183489124556825253817724769624020658757033905759149939056944957648258320158161192029565376935937691183315731093786721798408330171889350427911175759699267401735895775444560679113527024847198189121028385805633969809146535995957377809194825154890765268603181408728351894629306150468822371267698505171211960287680135545222919726093984358056104506269293037384364206072711906146403372839499442682219828146871876417183161795155500355192883035475131721343881314480376411232295890610256924602011697929768956185982403331706220532438923306184256097673676076694685816499252023000192127033418403891797753024612857244169188560638773052032904284956364603635430720475935217534810225185418862223252190293063707394362120490024769803369738185166182788643709053038931845315771910059776052619153968161094642774268722871704650659350666425561022906424925183300963461578611668168978093651491163070492776864816299322536228993591588677798459406563814262020017346746254150546575894115679303901684345336893103063940622602022193924807006123070168867088538243225874016041119914284151551812067942647292214144690156537136510499951776025178205497948855279740493903286602493544842097436658373588350521933526456883712210285790998355210852396321694934544363345591566202827061998836094607723280954760246873736260154795942575683251165200648742749230652050280370598594618341975459372849959451683312545233634925412449304028588651076121273341789464543554492504503599214139102942853860373824907303575183415478841106340722782433466219037055305454345505496720767210806453300684508249294977942934643363765075009497855460123373172855132621027306293264078085815738979878498375194048992921879943521707126528918747329463494827273324866263617090047684060768632927054674991738467883579330019242690543658831859952901864612034349936909351000507008593261564926784757207343131911213750634631871073601674873765014759124304692365293457962917728609576453326884304478456986671259098655478662314380313213925794751886919175114032048648111061958337666951264034130879191249356451216521674496135987484826932446795007213988381568065203603151146013133527534743748131259486971562284350505592286062993394002144308847850206661067725667369330706925902525915462071855634956011411024332585879524523268176149402445872775950467552875599128646532912849251822539811664979858927622141131152328483295441292117072697724060988313983670393485699953584892448662914981841584837675092202974972458216951466109717903464503301439248550916292134888960551366617282605775745081715831862630527824333541612114971646185589667566013342680108098207196114793623412469243918303528271209239682276920848954404707057833871527197256973246924625487130376269916510409049674217999729043880088734641708475206237574934456744665160124202240961616782949311291427462511510984031262472570768530410111673767413733219200629739571383471266756092224745689163814264969000826076343025442777299924097376835215249533099087911790642147601294516502419740846044262777692641021713328455802840676179625820572964271117034262649518181376772663187968216806273091536784297008200427305290342228469883101527762622023116368185587471293864389844518852811555512424089681374262176401394797010532600652056204043050155334648401065724831361817064033102105191208769044608452493037354209180735683475423968412911255343718697740878065025397792002576238742780980485709742924661068929617107618219725328596073261016423857114791637006694026475566937214963713142016539964921656989989475656949839580210279993425892241860597478434327372666799577396769991859853416768406587840087984655551404522748525759017191617232239959123849066857318247926557824641947604216994931966598256403449826256530980540471880863234690675916436902373618370974294129311160093082326541324857175882793547879542201585931823108170909813514668066002489704218916103784846105722794806139947591753019865562412085242737929680994159684689883653529158395393740714736671802399559584224955286829692857604691003580025303591567495919073430565965845052925930383217423488610360725446068850106750831198333738812594377771877489618897347319120352004022668373644555537487872075326627083437458833124328284101358567386105749233555053058638797723080842519916420136993918457685384832599156776731170437201124586715394660972313069110694947410303841960691253991045821305503626082585149178470816658404765810499302886512068468453787426739522193686315231965881999350624429395361263725329809863937866333227072976617064893912302491691163552644242937302025856443355812564243839348207232686447817416908805934337934777544768171796852576131254981045822087490679560016097765061156320914672555199541753496588817128883633397827825973779872512973426288743805201429596050518303498988179646111557595720224845110696187351948803087703068486689234825786392890951915500971939360488674967266922174149124400378616297614452011479704730856550271284346139069047099299241099382137140241602931477193213191134477688484590722427222068152727186588945734955820639418184441703101091437118951242052065477355396907568350615917133128613941826265716534067679073975208693215759859714077794421500883804988908145162480591997602506329831604238726460831433008273669198987496065209979539850580365306672686486821700639400961658469128187561488332416485321344333550364165820655293807620034754423901953208975386666778797067163705515284290499595646227024041820718948818786254520540846449638168622433910121830874706880808951915991947208674301920676615210952109405701701354343839958215916554999263879304525983816517036388816212386822045099602878938785167252840725904071438697525124595169432004929712095252007475588164215438281834988232757698808416317938681869058447671655655504922106749937814456636868165380202644890110890678171426075314741885309532638328915582100979077439150872489813441690235680126608355232432022238112980168059038931339619503346346166426044111345773749355018062474331577004268938680542630887808459962657358275966043992996395592445671889640120892406727632168613691931707424558095015145502306387360512666850694370154839306839045760118525665256971767847492201981251149340396445938058331977302374399010574601371893795594230990952697406356497772421597070090760152188634064001553679645038632423871785861541312519039677307413836132746175659800056174033294948346845752686119700974372633354689637927506469192352965366851255427148645094883760658023090824497472169374131546441256203766447169309443900902665327908851357940120297692822497019639010056847488816721956418823032503392371915547364908704962447166443602250651784288008798116124717013036479116083887639283621769245137968581220312054652683617311394261420902759812558200683520109816518853648021884311264497387269767393255878181843283581894907257241540784132749444842492233207432248231216160739712343717021893995679241144901207198149287104829732624192616059256829165475115575859765324179268614836480366903086660502927667389919015595166931469491921540078358874593556687496261944821418402400188836042897811955436376034617085967494696156796411831209996225172275620703258271022896368372788984285972228512316452172361499153988136320170997799917246126500785087900137331885321685968322735933553070504340937730188941219869009634918439507967581560068722955791791200782815395025022749635437144536089585648451958931096815984048491882173692661062342651782902106270585121434681989275532494082543131460350463258982213736451172869122242656384324363230677123139315659272601689654324451170364799967760516057315674183720617499067192189373086493154606854571242617908595123815160813570648950068997171218922891284782252551148027716773438494320505365753205317013663794843240709947700113513997342366845769819998970926409941720892096789637660783836413621670813711419196432830335903125846093230126498034659065998736348116037059220962022694253530192394570794908786890444341437307691572503425910800883553087056557459987442048284587133542089345582115364695358982415710717483507918435380378970214052834635887418644820788867148364136158922242381869499338021281708783279128655958989169519431493432176484845606100098461793085458174130263521130872104931829611255034343538515664936561140925864110446663066424603837323534148140196402966579817327190866444445859011528203852615455015053310844619393447875115858394958257158928299548081388348533742925580432566918328133161572628031903042649302575472257573990795363024534441928042044653653239756000469019808226123607144201086448559866121116879186349239184796759092643782964649377051264696279425832106655737245051975275637451228222286995429568581859355802235337393599760370342068092871830687596166612650544725921697103630096293196465616068330417730090411200422429582809998358483839714690400835723643606509528637121969314636076077387507891289882222451500290826112724616185551441980918328921728483601140780208376701582527717359288055062201576442310047661553833228620641652066803217445378635071619724137149817578341440047354171583858543478056728322229563752021921869920484280601947383678218868455667207112248499930197679035039276448589474085273066112966341843081197724730008679664980830417494530000634683783645490318939921377442171130501405803715667417548604891144945321142163252624754081800768813071540587680581757149317050675489477673833174452101784419915399902192672831050590727354927059723757543290188094598519734554761733285422716849054719505030889374073191781266733592909415743979497225752293143203824706944104482130443642988012891966416111901710901860699248963820686507919691296019150582263854651144281834304902129669995567373404473153621539262378629171544283557406038679890155237341306944517670510567538261261787460150985835134678749803305613785511026115447217816121993416257565639468026133447561736242429649740025000931801486441138425911464442528059431049397891563841255114339319242449658673339785512505806252081521129216254087588476631207195642195895492861942978497635225027557750042796207885868232250353573964873458188606633318339044505398984901071265248792216058935374423324653230040034008037686740667169949299394121139692983036719403330176312655072346794705780043416332932811880611690861422161401986592700242740398429217944425140854277810329628485047478981506726133289164910262894096141072772668525687994861786915979537239105573452593342040983799276449314449174940470545103569231783071406359745197709608129886250158085772709548197624084139767069191479977557662341824315108059398217753064853424586821630564927322524588685858203704676434623296594940464241829171055730847947149236550574982520269650120399905052661563468561672756313559784439798959432956456634023864865457887695247377849182196682597147070165861306765349603103904407961613757040588814570202443239916359772661564971731942665162322673555099711262712294425813800620213202939192132159057934743440074087687555012559084860058358034686880249256274104291947929409627750209569363833003564653272643348389427144226546455325043069960951342077396452114344745309663481997970919922628662324006988516237871468875915184644592522961595225818823981666005300476164457590591526408566280705250227512546047054661666150091041210430661533881609348558483312157733275481544902508589999334540440888045648368209715128869026442721314873323160575531493717451429644134502724186390292297693639259004398039494025203831177616790000346085537819047967575932102599874248533314582236825565031850987149169163272672199526791038553969555365088998699386512990478182222275684929886307785375969114240964727398564476804829248051397661561791007586272611192467736851343101391810570441705365733829807894499706925167682681318568739305155498425137224830617034085917835467407738466337371515126782929260434585122946031598858847052407606028501223575082128570711364461104305841764388254481159023289778708442408478069764941777868081700657474971935837935851375710205096191126067147031805914207741359029659246320809255417059899794613748038845915222868920269668018988905603565033662509555262625574943245089920974495836652631181536407591175847539814787423145531659230936325710035982842675405018950827768152409336407520064569677819342760537478003545373068342122386028233988038480446621797984280444033953381931934390298808947223767283220799517986203590836510094215360734250930794147646191599103683652641582440371060989097725284532920239500078875484393265152870630859067853594143423534170862184436390945475927643647125455132269663519475756277802359871890227381645844527755988508162400493405625202719739760297321283023306704064756319453207783653474749896348773235787777921069038894776325701248248106664200593137615950341119494810424551574558564067558901434776439639934751402745589066998057891654221102337113196825648321513193833543013945317238774529521357604751947708332108405589711413891686595281155422810044538149357179369401153788340883960488652577219517388763984435890193206082150841808593973579018356164942014421769857900023742647641503001899659069282488507963123765350859811564165549238922783171222069460562097594884094259608516963318203573708001824654840408366870655492415782073310649558304747472944630024015514345425176564613231682295308564778839483894320720911335665338541459342924621913236754209989718530503020519478949673277278761170033525673299121826856910909670933942987089996268196427228722096026485582472567618593325136646524683936429680147780727700217219503527540691609543262755460777137419852042738351159553887142983248938912372294235738786376809023332869468999951191331228915453761500989514414358184222897548138686682494627425370055454876213436916214398527980656211076621571973891048076821499853801277471537394132113219224989272775750856202034371005874849336843189161832813699438852212074508202916795812216639391939373662286593101961395162432195354475662261614677911749552655840997522822757252862824662607572535325955578350873699671097023116274427280721420376881758950995893816642429458357925967286086977213567500424325490406904335927375651464688900273323038046964327354193792638067459039307007730069565293694585973985731673721894884113063063438456600483487658993684898569363494347668309298816828175839000361782160675239378284245343803971794409683862262602353813138590511787730094589791843750121898320508358005308515406885724264418990745360353182690194730630957624465105656859979776595684465548881754506987394956933046731817572832728243103822945061413898259016857237407232173547191479729039271685259650583054236197364685507264368834160358011469187219717839759125723816594839515781019864376350003801219808688867837017494643441085304568383491495954508907875769894508667371878325884525586416808326658934532113701517804233222458465515569625302873408939115240263610164246929358887561332174695690602568121304989490088589716654118600768537321427728487254522314093817742679561973436245397429280831199447306270300359453588954518539282117010442327601953414977762976688795977062473164138258781977708362590883310271080026836614499605883171130710188960627050093781210153415985104705991742176086728218617816056160214209224341896020644499860988566049646338639125432296506832649529937209778798579531730089623632354994852417349999563635889835647976493221140248030781559807379238448207067472903576715760771599567928566958860941972633663146598425088777143281753971754793532240120307907356561683837957283400416354832192386635816666429597387858034293125466998512168892704613978256896634143581320633932728429873669739317439345817889908678045429040749999412125525407916321124162678815451727180487307330751601688863187398372795982032379478354710791674618913298752927210266425304459337449800123603463756795676127775979898426482431196566397888070220080440466993989081518446382773022767685652267381285353428378792508310435226741042587660782259037228897344854069929086284008247727505891310047492661461490236278913910871273595299282498220620116922932281067483554260167680391182425721423259163308475904888024739048366205610490136131611354803140395535642205662879739787962663109482724299799431123750251841119832417146295701781302252240069981729185448184202968248157815062313816527675095024450097536243787390068194211165062112372242961252668703082520308759102458145707991324442717636800178428018911139728306321246680242355107660580357072181588254506640214609435295870347994414575482928892307985133822958759139173372694214731888189261912996493002131376648945085212150125718503203951261969491974434470588456892886417180098977694120249093925102961409109384726641396808170594673391087000399096065759083804068607621978282731470296874420589204854055815019851940880286298499692758136193623444207316645374722403885522966094343978790719316700367897130757831186965137495298496757799003051573785126257580862539171107467928864156358041390255741390407350630610274961682525381841362585122980849227882726864535741155432423811638685964394331836474870343826141425392357817585945409536584267103725757623099765710328773193979391954814652409462718040593935876969526058858102522641405009417005273108567446919832375657818346487921925215517622999916505881459934735955816864774533724950011706375528534960850726351219056491064838298514423504641016324034205244587222513913248519713594050876757429685254597799930179581562479635219062259978480260539081120720544594475132051887919019698247693096207641561836759591601835757742057994773282413910405303322781204586042088435743456881648317081206096153168219819514199286755267651594639877995978827549379758768849786817614576643835618864845535512363449054048677618170776106052716131237384683025404333119546142819321518825145487971230514715253076969577860891351482293056741375113618913574955165472801854726621920517061776600760769137288227538935665379859382361874543620750264021087749278321896418211012763876851430732901042267148686258347637347994840730276813347919302051948543310452960405732422073282525388503979508925606588178194453754224087135128489220553385998215136371980008940421056616163531381405954437112162256366394846996523900675296001099179218547379695365554501272573933387306294545995068701947336317250998536023406949613911757224833729589595933919088745746622107018053979292073221623915451355119649364206744035429300844696696439087498214691952782036840310088334828257756289518581328053364695445420467484529767542949758233804867317846602417204030459758329291167670184335044932947748242501585203702911590286938824904984352903980141993632150987166098185048194333811921569625801648412359767800672727943270804280742571987359587644972383835520337574543805482160890683901460684587396964726279670357846825216660482804066173882241287128672155586367584508550881841950752665714938564211000922698534395882716059420699046783033527921410548213860326317223314058271364159730585717946253968985932038010399344387675005073530478404530458388776027211535666538948623189609688361084418508384969429310336949543607755297350431073703539136712057822274661806467737688833352919340991871478311553000401784260875715937924092717745417461088312202169776178645526001266365319358212789494256869415062518011693147862452677924404283456877302253124510431258779466983494862009055508150324019734429946802667016249794908570027802359094041242127439957664629812982541414431360171820572769088855533311093707158444098996837638751243324655591905281213295904722913498213053590896795561111901947800450572852429079378030732784303401162553904051599923299742811006928277776096916038258414855411377196074332593635796739350306204697725168912099950657527161678317876220984650631845933718894141013240692895640174391763375383478132223857356617406084724241927202771540733315535962246919491468765815674447522771894275574228148821281155384898632279028039551777338228779902000690418294360888336067405792853321269606128561177848021818806491511500278282212331818139318000034357456613148625480051482502026869744373953830219743474495615482337984124442569029021196022560571658850847428944347128329401718255683327418837450344506387921919178944306600230862934570324006434008436951271978593230147455120982403037484841595807864589295393904868632349129039057058472445585710604523692520722113440688647059797565271293632788898378823467516628557286869665236691780455281643578067471102567458696952614130576242928099399485159202286774909874729911241727980167249258794609599362742280237636925505103756303723514024209366801000361050417227411094374786844722656729174863734183003066453191196503486335789188648839106968469068664041894039712556540135435566397888099452407782963911313882726499106087152106718593878186653745295069045989307496847438996120289528850678583726868868052273196365596307014446702850646553475841227352037046016795698141731492723137375452841039363419037664816985355614899591426603189979521354107507160808220083844041857315076020011740146028785951641264413571852721366790166235884842575604007819373551039831687806043596793843372143900761724650791243918913568495743320393773297754625410122832491482387947750180313945915325796795105591093289471271811702955225895774103572042445146983316411671895109705053852599048915052673439544551446446337382741178549832725551600448278410063785041473758485385974773514565294318299244862500794113719885624484265056898552564547678543816227607824598814116558804691537464947913055168265811051429102500160520738261007140743489172803092156952352860317166328348386058002168065523932340935949682305713644907218380589421356020795369194341237961847732141885577544458927576485388461987300443203790407695076212151317519222952466044497383193193473674305352914291676502827808050254279357063594235500512282173073050799441130734977845983229029556938456969035944477936097849393366000126444652183808346007908226731566470186012726425357882329054668381275711259160043223871837856853539359085940247255022937152767148158719992112247884577449509914021289425354800643552352954276633865088429167035680973136320575940445015931911980392494389580152010595358321046932482058401353368616481357694456309121004653250743919695305315433933193224292871475132151742326581088708623965727427654625140355695204431900969293195477282024404835746086114967191975820484799928851724073816691011837631682758062974149756973554727576803524457795762251291795133398534826108613011373074930189537730202593207947249710180683941155260989602780148521402137911603340007794731609666055690546388456303911216367656726046550193089745353060205315572203356330294891399658292378997812596578974525133222561623811216091677057455023999933740297450531106097899030933993278796329319427846420340298150751285587384966867554277526983937498014543400671047059937131987965320409286862783873005007015196745591020597514884339106015657962304018244486558541017260824529769210541604667784457820182428952288863788689568793700901177304455031294400053530123891926653973228758112560763598875917785821908050807450817387440425258990322342860000100930956244965519593131399228378626945729237860473287410438865318932005606816978686297397491169259426976894506875734624539882826263730479282550307208183609446034568308533261652013437327828994448532932340737608102652378352060533231659814017136898860867518888664377070670910177925264599956266011779772714997111754792110148846405278723752855006434901842319964981724939332804274908658661079995232805116923878148704208172277686696416474051278896960770440818235697291061183025935938095739452286494157672966772642944928575680119797016588493387655991447092897896302239451353385131525030060786322721553649887707614514150760121097504568697937493324072926372213411125724455952477067907980550992542811993730610247932686942690042722915329718964002443502350251481340321570595842750187020184449474440565503202838068506841684081439014183788709026242691483940418045358254949883452785871074616992465527720195591028589078259194598249624762234982076959989106661162078713011763840408843225113119591904757914845187784539600695963063992117841393061564535019075178092843127348028340143394854444154128367499754541051631804658764293841955430499258153683602057178161065673946595553114032677618396623209165920259464494501373122388711209568401249972148745881360206889923772447784504356586421138347134859670339674872975066004784266852436500025452106734280408113197248673482152133678179412985128028811108082370236229859312978255070140979636323239561696769914477205385710799570163202160626386817912385319712085114398583820430896569429782480603017497429120820987596841097925965546646032191328599510153632236344685043683419950428689414162805898001564753287317317753101831602826323102125866459323732403226705317492978958706941713333397215708824858323164334207260135579213468358578595197923464890704033275680155545610670186603367707452009636675473425870654944751024532046997939973504068116095279808429177398576817332413035386915721724436035754167323018277410456605261296055115718636426321730081766186365809582944764209578362307701180200405730577274035765321403454945092974685767009890066960750230541322494269503192118485458872258227932630924072968837532384716600247053122162308552943869059071000380816908475704264790419648438110056899906572225401250284952334359113659089015305654095758060402424157072165284034601061528982834984596568736569293471039575181947557624124488223696777976306131867315533697915976028202009011541253381236773212114418309765382312666849380906970392248433944116800748833663809531559794906009053905452837124668166558745903071981277292936455172625167402356179114816211991352988198983914573678436278318572523008081359116525409986156465886346839882705945681397367336692992271320328665946549594685292979267303837601475334266146465400172209655363358206170239393223295905792029787195989400769178943444106778155040720349664393182302380208025466275054565851668924924070983583896911623111607655544165693412103069938890996148112217460811402493260751804127529640237522095609652759623278611038420606328581131462227951720862816486635596801471241703754708265528664779184729031469578565050121143458959094878799318411667190302293030581889045423870677903103918925487764495696550849895298679669242493382334831434185332673970046852931796616769301130385028444822579247802363317669653025019603793981465933595326032551911750748720487013165757908049593970042432882400572334346394138469293982548109156039671021460064731574941239488677427032655496115946374604318660076056061365463781363725672428258503082225671263617322878683510394549576475308609585296318873563692002762051535966224714578718419235570457948932388417393229162617664834243851994973707334069282854153840885669560007717914903189516214299919712108132461830235898434664771567259902473930938831083391072038378758448426997598341761017733056912364192667033161034998279377976317870853974889733833375107344347978269276646666844522903027621413081550918575701375662954964759566926930480061741309483938016727173052883348952456254876200699270468507971923651128831630956878118006375993014363303489291393793373350052106867661939918043254464998688523260923644124380759619969287600528322377646303640959381056881584367423724509374298403637225221683266895048165098197721880891207741149752614275584258353021052238114639017949850291897036898067331601196761111150129251281400987001499905276318058946045173698711258789358343325445493321428964368633820236776359413848258496607395628874706582350385413606855362781947570845058448014716686954160177078871446017176371683623334826345758924934368499948339162844056532288767158880189136846521325566618574482977626360830428142059215322079778711352930083398312870629232752208485789713459385207481146188231830804515201979949332633757844442577485561526510317653211987181790391632269931917822788435402717973296069684019128294737071727815788532311451845397073624775445128114335933667402327965957996196463435100518797937423304139589978887838358033311493070986798880238624796993302260655329335102912974671753838754811543015881114148064392407738187840943261269875460959498090289208697224964742265908445307758535291387724197329738740645979965162719325621303628217831145118085213979510775018582069168958075681134508188641442205461983558580772033187341535306995297050826514700022392760993915534520719401967733212191113876550119117863223996005711823171391997190237277051773147491011316580268802919840875155804794831745907571143790073535557490585539122223814048997088922044497150035938173058296253664357407473859824061056005817554924979227476601170857769273675815453633836972317965699910229767014680082491284601266230485131228851812561933054672069927232360461888325884706353261936602876225970075410785049912252386337804841259738252737670917636360787747006198631555248898887288032538455973649343627742217445344058178695383645026868910978113464777860271575440020349074822239018100776229558879778379145330190045989114625460894320365510290202264920628368153141595763970399225237494484916305926640585708314664905099420038386495668812304316451799624938099235748642521131121030157231519978343437261097313421022800603132821800362984048745533318558933967953317899083233778466398706539854493444429573293426371259961390587722208920203628231235102584494297605843179599896403736313180062554890606380984417070313533819239767014626730120083627571863496774020855161920463372096293728577170828803303765855728904797681801615233264613575521940794123478014286756360101725815830233902650799047430421693831403790723336100532342064876992843590570226393353756830463448142979247138890048031907179777525501263971516750120436062746876438097904601782959569795631354614523950677205116518941557194512604805441830083633942006073792743717195286210154091919731435258840961461086883630003857604743619621074182934371266190518358813937823392508764512684732538295472736599706124240307446733531888195468725462026863507149340071612967207690672366465890070824726151876595273717413090095583267398447813211098778081067071020398786381182857198332000952531298294478076796367044179515859034333757511423610290325591821873851641540848104270334583551321601666855652498118827418937256574574316418824119202264913137953937658334614105386029931399824890649073532247982208324397474187855609304031835230852359517970053388853810740514236634335393334508597340001546288967320781561364770329653054579260862652925998916241208633853515353185945221244407798579541870974467075871514069303396671869416855100643785543367780994327230029085856483012079511458628215354753277551754151666208575116471239165283773798426292773785543122966922456172339501718279749223396064455808638407168876796704204293591066838443593968895356309844017304275019887276079956406809848813125039110613736897661502586792980993991386777136025509340381787745669335197484386120624832548234429786504869328104960839632560441393829284159345414369860145098346702549963190052777205201584146834098096933049060399506870375530670280874426115746260004138233661344977511494823991023363248939751422188744253962557697347420816559403001013869723080698112568464468996669585329398536112428003917345029125156860343658864976655204843559870618875276044594340983323724164832050256030927055397542608842071676015033716244812790485265789423066005958082974617767044582255948544139490454184396768860999363813406209154983142290327584528300805197713590426269701713514426040003120038598739694494711683646053917052963994237948377783447763270218360510496601522675125949553005429278578269909755350738249879814950686671575945957516436138933275891870344563664188863495442030556706779587137598254531865329920655990535194410076911854778554728288331625173131192795513336917717798329685331241479396037728466866478093261260491001148183781817029869664509645971018910231054517166689738325042534505202350079759602764127946199308412165593542422260744988407365065976623253333256023642312650310873145473847084304818924874490319551181159938995265237855138836499994689791385464857408405815559585942386774486784721820038389887350713779208402738485883112137208064283109438536330988362825767486156077795720345903369725311809508373805464489885425760270068448641745022958802139357336375917170673288337994392177841989292253619774380194977038647004865368046346470012557911324189144504710359972618338918806276218982843428684076998511598248320413584758690909323733325686477657805994954656212786202352049588891435872007182860311497626326341163476670222611546548270620735719633991102161095495878867231920784273251299813428716521098338373551324999363695799092788008578694965592118454720995120138990158223695543906328716146624554975999842356160781728351226662837282212962966981807256002812310064506197848645252195572984409989573934572197933639124972175139174671927102622425460232168524518020990000472923650653498446695755112216695796919163027984941736536210579486255961399245470599104278603446044416164637662626359514673494035916675721635584143563863648562694577805650546970262776796269798112405146273959633809013332537102105056245626051978497797945909504752349103264012356567970174391249710004012154830495707953682273684208939347497346768015079278586251696612323939073863220458810819199442537476354341338468869572412060064851857372612897279608633565589251002159492155778178716176821187241365782757301976717765324579362029207865901379559063947407887830772183987508616612776119984214507488929884489891207536889002914477907456913923959028834116048099057755275075843511641969182080694337029778239216680804568305573490677528599379884398909700872216615750799998943775825781367528521855888405904080565277193339216395686430506913274002685165436845380293166408161321954276528748980899120794028168938893322059891957542224435352919188856576918150968985662857543573491056907492487663480798259195181977780081116495179057998698636827493280137635153137266150414065061828165200341055031797548956505834801714758642678163413542147764886728306242373951061784381324987582155626632166784158036332129317442269298305653299284586751233846322472915636844921036625072924309367818584358116955502930863304249638877413543269962635665158170360172225484030761818384680921387437389616741743491500466601158471666605760911856843694818979826847331315609003710548315638488522252687321071748072816489652534328427556254652549789697303186007102977434360203576768749961855425833990050931451390201458812920702282948824173563251643005928730296050791351560754118296447325638354503580090174284442142718834201299816793353420522719335943485037520884208822750993378541732338112044053686064883030992287238743382652841981294477561349907629016190598326826692764798169872656084043435000822246927639561514299892859189554372099049128994471913975210153775127589823725236139831783266028000590943892585018150345250058393211978663736531635860489532478446241353329987762870073757564014513942058832307641188170959663534111680121745416577906633132977546701343618744647604078892198916356842848820822631664824593068276641389916782514216771283379435192478414157900538276536590344777379074472233928158711506314231253604413377223816504971040114308424410026269657349326430117357014871925712967026125135749813106839997105984523445554567461932849467067565399033815114106806396233449441944365563425082621539011222099798515792903122488521397406284016978118061217459224799610726885201399449200944630850723936345685868812605627322917210211370581148673793571110300763664439761409767344747470772320881154338082706244339383562588494763091382887109469309360457464740352354631600767381512700339592734911616182544176218570161131376938022271498607917424983950925056926425195218741896757812367745559611735905987323469525323180801174426056624022652447959942852673597791323543383164518224900951025996732615616142889458282641257403182419659481129781368498425653259511800835502306403118954853049635899816074860215591053472160973995215224271380801011181791855227112668992130566066451628806114002177106502224878785228188029246546912503082471581350386863284314957180354137096944485117862502550867414152386241700218664385249999157936439702550208660062835486204904438600090785178678617496765381831205606026163407143900294574949547178865439671222808355543970059022012164401454163912101768179069500181618884253390476903622082264290173675330361122771923295852775940863759847131838046401173278354656462178526744571010392968207986346829549857225974358372183531022421296361797585673614464434571516678885308433667656178775539131242704151891573878479750472180986448664870907621919783027745213505178886869760093073520324494377693872464926350836031272554093302507246608772473791157463564042343771323780189441454564199775451537384964363652298151567181429640672422614948784075265917036935862170946263009029566960121925941258458173586221863407837651300067480385299175998613138353023539437060005031502097358506093345678016473617602669640954414289724263738101444968651230991229807338264447091309334270020570229063544005743164073291450222401806142927164467917492857630502302669050657789799935153908025218750940597909227310730652944345350072751913165866104541249757760238340771055344013584084556849640176122173756189354012701662538839485365398622645201781283452207335691225642102145108934063226903203384548756593571207225337457823208979807413090544700149452945870150755022549266623363765807305060487220584669226974023396866066177365042771970287123614578124379231315063910422196341120472317538378313534105676338461262292964016922656242403903292090443097221254434920382216047647269426333470591783922800254844684959911919822556795881541486356915263650108362563684612189823323768755926724565510698612897156458126024326698829491871541847661257816011487530810988372284232087642402525101170772085918142232196448966029128159611154350863976484354991792104785893755333048139422492499763755069590691982401129626178110901073839535834872486739337390088784615781692062536589597114642270261687977767085960928464192354436408426899900964341443915436578839175014681217278503800612913145525308804361813247997070817536428265681293621161802251343899775069205971141341388108638293332415505933640841504269092574135657118028378782126691831850512913816013620496663583588734797416463073378073823834856943692092343285559451057195348654890816904366278621230415772142376335963281357565261901433111931973458462521988834953038255526427123466522581516854408010755169843854693166953004628248602457261209676233395679515048846623052422174504371192228172119016271914948532156719333199424205312438133770106824579044750112135521376421904739923978191356070356444692048285663498570297907722775199670278581055135290448755008382788752962126183613327721621066041421562456818090380084057689187873432900338764885339236095576436507367550368480760037112287118544691794583483336481641993613782123504308339078654362174894958778684709187031529039233681545089658686372697100055040965638679072014238211304711124050071293280108493307821081175059246708903026768151170679931501936199326884423326500303837130119599785455534348179390687219079460957511625522420555879034035399657913425096944746153106075867798712437725226207603400783435887772760824869640890120408141180479447289734879838099023704979688861576249736766602125283024159245605556111797227048017159271882028085648979804174288388760628095282037139607107507583223350820063258140418879407092151277762004259561425645331692238065301579045144906970289187080007474230044629357945668790540692023523780925022306112566062371784584804439636243913308245019886907258519869902141246175487009590510549986040923977401762456080139139466261067566472802178436486301525474524897489742017861566745998501066219164135371272966853530198715954565662223080868649979194610757404307049620662772296886861656093643629028450069921227190699355563519347592591801299113820588493472916970952682000719351393184392171801829519102712934012941769814527880133235404129097240902691922348372944407631397826572813239647017960150215339894541591612699283810597018220886244454254320971720619521661193718927857499042254632769343279602365636037590773472915109796556872740428453156706001566695907063880119533244665685134583395640530558952538056632668532523349729145106989385281612864374703324180208154733611917381248509706441477467769960996795656951640153492235756039676317300209010093789946245399735464944849952447136195444258738528435273083654598667923745985758225655476382499223812661452784132615553398205019952273573268186526617748820385858698202571426321107775388880593231517670550315353287136150043770053113977094453293275639198915141940240329630339176854721206806397052837572919110973505876767716275055883347635368305162043625423896488391896695226329830387115584221725886862788326170378869123863806605288288207002032471213131002799087430162316440931202610362346609766690407069830675344715687125803361378372142139301753448564503281458072810513261167228302106152311440782813740622992511535220966372946545665236855425727635174090105027917447566887973427721262987098838325657443635113581448756386486893591956529341547173808940960294188576612149266372268254182637647562585499905671353158775149800332380620652965693484582434583420170056768422854841443041710567240458774608988092170408598228390016804934752554359171627259318282265473095231896115240342610788306920741703039847730851662642419255953724821485701324208404996024076814591789005005580088922792433459100007518645708285508876325383785049470398736288872085069745538128817340202905162828200293278382761310906971549277343281412734704043515502974632643887799428061326423145756935438286172032179504758895518160010412349361222485762557408984099956816739270998496552068537038276832336238673152405579040275843536025768367023102941411885109123895598053924078899707936040535358288972532179916627066955880334783265577539137460844188155291166858634643499284521771746516434984440044401421446719952841754071550217241608632351216711196153085797878824169628238152653053999278431259075175872295977164113132177841765480046620568025432735528389293681771275067890063851693363516501067734352442502633722994639481599642285371673629490528560572004054933986570467628939175223261628900536846442991034453329228176070284411658275676262952220309927277005739681040098437955745977558290142509388021039247198470798168581287569688612381820986662061964435972499540645993057273132084585400832363999613458374450581354857089632652978689862041872537737886627542212397689626480778310423175194313876828268233400773721555906267653998734282378594602693112585413990168532179136829071170883210453738284032487684776319906636972077562103883024561810539853287281879975468703922066093419251659694922744972417215722803915462430134885795102334097583660444210506278110643772478597603872880452801225862384588243733556212921504117512403069744760992061667064550903685685535467589213915705445230106577434391414991347829546655134762102227224574137721859842336854017709020845021990634630583320556814873390925759188544566300471134421906019951231350833552711380370134837423845242534264569645253249574427439221017440122966122777353335922205745249507026533897781922568003923720363491626015131726651604064524449854410208479495137977664111879757404787240578093157501183363949262180781285607156408558828616944458761575256515279932296333871984581761914817649435007846093594855923458703928177375345583499421572751259589907718729711740751874185608724510504544849510590486000500766526471156003946536169439926424409742834009715835477264890454475328182608926117430589556765773606978275552955224354000884387752352269174154593498794100330169876523052035319120380777743111185294587294284529633830023058511857710215161196916322834335576310795059086017173658281851385123143185786643518418996349823897947201756626346348611967818248325765317269476545317953110275971864174028404443259029610794663275398174092229743730664467890386227877352728426990671091731584506681723225337852000153936295223278930529259120821027233806658998061835504305890791016826068875467423329470594269148422789592317724390780250370621872899516037086406916807702942847674393653397499890558409867535487865136339544170617212350362692785886408488784272683280755635182372058932036557130220147278271514777381857235773984105349891876304253382986369033596971946303414443405400552472041318660184973089729297450919706070141306919093596626057169056415534094530204910348265365176679387543311154661915777422108800018811474074691430954907852084085213964497235631667075872020331099317910653958327835533554518102928893165281915003126323855138745926616500041615028247395278682069506660513879758196721292522301966713770547571103173309731655552491625741858768812433091234505658225535314074656820341682852004833147161453019229115156601995647770123993540928169168744074170276532640599506742066332569038972988651425839895092377926347751254324347377041915074880927517631352595740078806380607657675615263190832429739790206178530466923702602006644283916829834043381328643142967856634050897819610963754852248848130622887933248859054082727280080300812787296364606825557025833942173622032728102845844449340047327244964450941475870149412065239958291741531889852675892021405016838065507442952417347305929232628872738097318535053857795275863243241228088104750492088332591469796088147796157086688875723696228249964324106165940123786090888667342572899206992911360831838115181388829376043938556499545084677922660496713184240352973381708335238359642235594052351948607719646310916598627061692825071154046233856711522536470735948095297155899204217748580654383580767353067282095417399498842736861858055106778663147160214209550738147087729721799852549764985529728094736031614699572732245908715067802774975044485678196664712328472107318985641435007386723154299487194941831360220354686779030053969034803681672432790980729636533508363405720881587356113773155461451361906044632287005291728995478110359066866511654617915249640237864712861903645865003006616889382143244991949059689024921800397281952044835051774353300167887274367346939716436469099675484724031381881457198066282355538746561178362410648432004253204795229306017269506361258693141742993878247266688873330658594769924775625944106980582824751807216918811154282084250413861257037739201040520011280716418397269729075970022271492811910335347330887520038179073768615701770772549460903964087267846512671507299896749683552259042981752006703098740017530348014657176880302584673580570371112151128472075112425262613655832334658578780960887696640255067172413903862182630050055016715087992407492345241711486923336228190650774833790732561084288686633216517484757285569669200318588505008788264103490480552736999303337245469591448713111634779790542118296661573700216195093395323693338170253698043003964866483623687302290382970673960827764817017596677181033104290986935376293579790105327452823646527322374560906593190262904837296325009406819970739885405433477719825805089793477391978567354264984495365377273488739975894885361613388265274072211080690340377075101106580551815550798298577455966431563750363149056828729586368081495291959449897162969454385284777658073841133651014098067217095455890233934248733193480962344321173985901404043814313529082822941769776800811263747564352323063940465176940620921120492305319532567768128046858917311071953563514088078307053914839449125237674715583411017377027831216161641694731842267592822795615540326164876087938896059675734214376255086073726366261133280715124164433754722975787817848120755457397764842861812224705507751056379002098948042872580807868435434101425756730878618204087615776467528126698291588546774580110877620967773157971842231645513497118326048734118557526046366077158598877526202249758168758241374753085775234776092180126487448063660056896352786572905731873237415968175246623763763128422268487424295653835841621609173556268171548895790353257009667500552574317314289039690102537405146888961615556804048694789543571342757408216912669382358793542059308240215242374738046492430625886902761275082351722683749066060978727387447943596713267452793047421210053579540240010946970738170040499433831301549163783579824341892982866375827410048751675581216468674268303071692679457189316479232236311644478854532477114347785248156944817089123003969287375301319978559814797290811995095937249164001920752258584024559954166424433043003193879451582132231432374842901556180062059629646426989778886225184706749332662221738490895936951594010099997738179325129174464225979746920486721541567587890530387784570672626886729709299489892328133867198212332136977207221963310685412973599959784553529653835907674216645785547613185101751154683291811574498184963225604682007505255418674891931044736183417731266936573650685464258234856279969757432034992497561976215033424633180132549079629953520684947761430049100224438484233525307002250968467365465932710864798770506558940223226427371298591822525350248046767380839934550505773131947203747541762168367223269786515949837519372814473213822475764621858188384162166087317879354697902111661481263657357292215706895137042433566346191836097939535678377184972331644585445206219987350135333241928945182243141150474681963608296705725928652235818540933834479096647490495715001553536468680662329944905133161370596878523256906472389855326053212449899515485389027640698199328536589034259516198881300188139872223538690294693872171902566072918302828359002643975740473404026086441469454443168026549926445909439850625268425999880225638491421743252911842068065608078132634866239032561557533745887628773401681945223371329367171435587308149108093446271063063015756858843604234797019595978303229617796260813632312681766582039750108481931673458234368738317069959596149138641164951634423043408111625986542661785269269862999664680797905133428829599179736704793209851589299547392544299768238275819389741182346034464555316396244399189522100265129442705189852924948737355863734394204066811065819312881687820730956853878933146388971487798477379667443411763342068819199126551741842814291390603565898893309845491534292759503419338383280831785724806910883835606305230194370652130144524887599526499481073707711371841328145807761459769541792740443177979010996153293964938760774842619951747847343013633566474904779961391085160166330279901076662890739467578285041759361597100980600926488351696991546385871780219696552790551769625119476019095446194754566616205187119403898558075538881264298209143831050357577474278032486182816609688318622430446920530584586880798306482463498926230824657660369949466141766281073636560540865651269213281435662809110085028800316430542582137973141048946215806802384881973145185556720994922264310579108267963904525814591628083760804211902795105464412987288840280710631013223483107965210354007244874404862363389070430018933674115042650232874801126344866670734539336854945575637153683104328598129643053210842152075929904715912049251955014619424587505668284230572563947464567856334450661778303588145772489146428971510629127955812479058864010045199261823189009417475482268493568108001518841480936591898356755780795912948555360854542546183678052944936985504944434367819444000476197685002964468008287619749930745392867901207693445357422486126442698665286400422937673174416052194553091752029804421598812912813784443811969349010383170834642786071791015695608110095543479001098039687727831566533555311238256015684224970896742690515470649553483165259909666636862160013215602011208950507579643307742050617945764132486309248247665712892955709037918026926975734974514209609919439028632659640097640626848505068339698410948904220431239236156262811866666076010314622877133403456581572778448370220169072581924947513217924440730671662922907110586323072810063733275563940170284556047873917793594362632142061622841431653173768518999126259867746804673242416451680955969739061393241348853466170497858966936753932876462471513752859724793650151073158229564545295852647092303737862535545357251304153930024929825305134375036466126135796125666940004299079475418109038445118926432595241397446591787345899796848768874929349599548838328040137267360832714124218591320554360668202184606084509774900278710104383631013995142137701690564169438925615677166217760422866558531441016247741352496149409605204347179911520465556629556705709096663955533355287685224462854787879307107855124807770700567441336290437759380374967158908196722747851045584097465047769848649969990324289827353830702181236567689806026805646159668155229000854966318126653648469216599216421315813228912297824344335334823996509176195943558084167452179838435564762435323015708968526570720553104395539719132274086221594970491583758746124315535491428766414438889220721989657350909974489182411320939228554629165744433072685108995120370496524164775016331632844861660162743287613878454003545386856238936708206912651565133197394256703898741799835881192399927638030726699288862472112372995285486205023053797684450073777193627437595777146312668662961820149185505585214562123543149689490888339814186081834958143913259509917311213046847331949150054865640897670488462372599018281019498589387440945696113133362789512521798573558249180908587433871424293761902129675343571663453704240407798661663372900102137933139791334489072364791968202717980308791101854677032118274725891302780714255636597703953343611725200615720245249096632002893084913474575107964452896723444669857145127558134472674659899552120024366830416476065844557487222855953133334804814943064192881149799475770322986786972106277857660498718658519237376299072669810106670658728097509532707047080092211141598008738959747519023525167186160156567990289257248075617311368921214464541210845539932971490141094451067866588287151768099522398850829905723916460451423801939427987095513803390103805215451369640968843758025635265559255065369111084472795477227447469173733220150410013188799856865770534423356893490276848037784464407532307746431165568081475604732665183514407627014155876558781593959370423126278917630308548837245930824754554208844112361526098187348909351825350035831749674420152536304331405826638475614520864486784715843655547544446532624260853411146315925315821546779623617988757468884556140142553754211921813389977503284083279682293598319545326021747721050537810003122037675804544986579584599195844935526665652301284229195646659000696571266539322310325134245457739591338908676886838257223264356332497294559974429044381326027930384443066169612098131256767531604629361303052803389975414182526950350371525216905730997566518270597802431115525508745881805011519009807214667716027601417989718257891044199350884348374728498330238253369019978197905918141005611794560250073024669066210443264054225266361817350624184851194750872333578152453839791661013648935804439653699257325089361826349101192295348317530595343953641765028247345687461731121317881444396049793913648020755309850823542758907113410612683900964955883870428838644032027128342472999087865293614912521139572663527961114400563440104768252894676867021503221844127396854859632167210991442323122162379094300609002849568746016879089402870512026203979682491234110699983131425261195264250444027156877534966975583080695187777067727015140067510094853185390434595265551204811184221279714624453446314196980698422908424355587232160876065198740616576942900024403850041576333245907433175371020291317158514835900876147413834904666089177245600456250240075778267429890342523990091862005436242366850801452286283380415157422013177682540271264029928669022452722455189763490149753939345399104660344892006091651170820504867383542316967882821603781257515375901482426153041068570147848100445045774299087722208321492026133976833444906205683915557623731947976879308746633812739661482997278806515193167167046325418283866050131117329594616527969410674349067551545980561197494154792878949564520952150396906190844814263010683769794431750907637792398891771503341286685896221530047470187042472249739749817971666863293677908895476799366629520958406845859382155574738646332583694345080002065025187564173839897043713728712316098502279277854257570160952542268302682452811799869966632490262506057188104284394969898713675473732581740568562874962266912706190259359511378760880100064467279656077587880106698394832342277839399974413532781604065952381940767270111636302461150331058896599101920316382804729306308401918737344417863663687787499693165825780683588799813179617423392801541429128163416562323214800778404861089608804474711889161753972636226039644453347312162422129597774958227846388953021113080956637766312389553497235732229435679309451350236030359732952157396740481000431826858551437766952908308421407648206072815128988615251016629741847526462295476980087982210046657818162665170862412625338556390330596914115200856311383892343679351862349104483524421332096023112630673429671284944181459380210334772041772539246344079162195531836119209259377898047350152385308379012410606959318350375830670284726628123843245482336654886369173614971292446233788328971960425303643332289315389296636387059542825116843372839599598623698407237502667086858457437251363938088286633864677776291467699192902391935333131975607024404610288542437223268261500799902191516380060249033479787616279784067649362479814028464015191294067709177425376090814239932475010204874419385171105061915177926998405332543349172851338872969640217618708051546035407082611535977783041990399288307568099104213724709547181497022364132853820040561412608715628748295274850544177064535726912850688838542332837857171549600745335952991677616201072134821656125714111675487012986948067907022064017882291485125598115041853901505083069105780282728488201751806229914215131708164494083524463357241591256644361308452130506355435092260909336697969386357128524534173417605237279993113649316735054259060133256681382339283879216998518016851951643251204680753904114957940312256961541222523578434115933660123899591222311585133608349797626169426641644388564127830520201388303255719999853274869325574147304833012142621758011515854261083611129433541230832936518056551278881432003335392479541538523413132461346229361050345973468903290198410204599985384376544959148336753353310485888194630387790668383965078879208240937004118726978713123595145601160497705178779933415423268439430731585488020096854142934486856779149079429728464367925329307338432785745870231313484337795295737735950941345318024651741968703932195285903969663186754519994517214832491612448718187823132072072032573617418629960301960628121346799702721617356662270086458350552685185236078416969746144558628438201717463027519705891321938319500854046288523072502983260635384403955196991214001419357260310482184398982175998063436077855730238997049960180304579512531460966633904655586355874489925934667518345986477436337127969239862402532378368794285988469469479982237070941733133490705499073703682222117248412326991745222996563982059022720263014656760415032608028846998090688480065812584503966235129350343675108204997732092836580191142728306689283148808012221876322355107353750434533641058344912153333211694004998724881762837275255598545780653901840865520785271654409829382504888025637428820755777239845994892824664577618793595228759202241836697549058231855519198584095910903153830684318861188005761652456983552132851317697398601868837508559486770526194547436990176781207555072918893288377802342444421828631346591450909010053728996181114441452584653325582550565091671542232841283178151588290507244192243072005285408444411348711435165320770495808068624163769258218622763545777729353344516122347796018071467451818066135196981734084098325947340266236323720274026006443833928476911918155482290804096379792645744734034680587438455578257138701449560327833394383883819620815902154695336162016012872238818906333090223057733301582859882988040998830371172455177589019929713777575584392430292079496869639289512842418202933707071449837037776999247579326101062559430080934201454353569198387265701711002539428826679376527735493182262951843269372517616588028796244369304980692325194039112087874316128723538654001000025125062131081897813331242957737416745774871016325907547149606152457842121787073689205624046884018057726523948054163032756199556219914512906901393950160814916709897560792835221321035146421558269500967960458910221014180379714188539955551335273789312672089886971442822658829299652491007008432808759526568582099392070781707073044359578845007155534196729216215202087441673019185597758761446775773957239718793123353649700617491450781090694018062542073518548762104596918977515805084828370600506949942439904120461853874613082206537267370802924469530505383876140753191271830543843027842603910286426961823866753383803148189641944162062719178144862621518623061937248935405741898829046465267702443712166987400618211874757875840085064647042318096939178459025982470147401013715206777344676882772549722915825615472593515601724421020468462634752834494081195668537051303752887203671851546566883687631269757142049862510212928901751673984703357821881456025560030509251296051924458976463528910614445967983347119677777192677982552030422487576516809067761092833324089882920537908276572317498921146798678769416679799609753557499356770140206865732575333955353131580919993873095876349733055601920117952832080462697966364094548563198982461645910136276317415313120937569350723648065793013143083664914664289386466110536361298346036694371272738855309347052153905798534160097254320743675207974911324518005169623158677961208922485896383097978248945702494965627734980347237456227247161620877276314585657247543173681890734425289554535366386278771052811194973439952262810017031828341161288065865296247935285725456988775320611594360591852357225693236938015621410567371739622541763011643956177388476843505742356231885133787137985178431392860493282673531787050970176645365929383794219615542563956855707283557101916410467549708447712110771138228500923319177725450383721182538176844320305875795615736509595691711278818775573685994546262226042750012017857482999626299285779042028614856199876942396473314692638982081679270263239094434096282604015345779950918025150536856030094552471259841574702924384727572154953699325998015306126978908669716373832066789831014771110333432846294772295614649389268763512586266929949146629237496964868307527839794537065938714205212255781430556916238686305995400193683425489880660928039650628456990171563020957989656462966387170661880209563555268791267000773675382232849193524563865054773378771568444534587492545860137629485236611520991457115828300919686450415934698336867012012073517108684953585553878371421565414666194925070781533856519425451674316820119877701426864281045061770794545050033853809123239987001667687443504960687706135010233651896180706199173411607749044347122836722664733856992804703079384332451687956465098507209872381882613726714438575500240841665708929243768240017104652154624668293155764072079830180080124612020779052626628297005801016524332045434618139581316301137065590777466002737407266040430185474682622416381037047160488539988361351933002352806821876962963663873594504209625778042560725212145247904198741126437706543440770786529694427977915511375724883364831587378130419674247778527742279349444931666556954973899725194216857561764619399857590257837769200863687566495501157069585998426526465060635959199939728257744584900244279977224079909499148499722032541857449150637996760826720832512928787766780679856462745374591322183528241439559210548604481301381152508797243657349191408516800339575627349149224663971573659354092637517060344235062378063387192687856333063704305387918029430676069749056905089979481879408847785357542872694187973875970537827680428834368784974610012869507862246551902720368749872369029849222410737998665529150872415957015242443530240170513357409273304505784297945717883704432997209551583640055709753842294658618672208188997416004497270254104800194030071228097244241231697640288042734055478444287818276804496050460330906895605814873658158874297360656074432009515691635873514465106302446423582123082734469972760427054552682765733999916596496021147002101030078623762896380192517467791123119058589719029214668194224991487719186927614989596131194785787565787332338500905012931627132648367150083178572780649376841454430461243291806906578790145822117196962646286541756280413774533167860746086531906730120901921405776480750334370831566533621071705409214700925307478058972015712857048227658992602639231814740766616082472061151583318437081047058184979122775234826133825651122842238218277767587150822348616601959287936975028688033641355575607295986722015428560170989103036458765260039567878371906635864925794547636501691640070117873001170122416522731238950560766225717075139797054534051425645538872073566483163686178388751363676910837889648377259677102411789099424491343881413934216363241449327170173667750887204762105610737000076229244479809549595710434427067282953890672395939408721619495266930705060690236228116814265528926815920261838409302463833131410627649642764902849577173529367826303338213106553458084847864438391340644046358141520577522485534622984698187528823655096014231668190839629540532191166460197861717823870703292593933774187824319947267652890977947132543070444308037555688343823227859558624094837632672814554876834208909297459707540398409132010603526093444933915314010571859127285299863006923053022035840646229293505048662407970796008092923876549534658476769520553501054078915801959042440304419712333905346779074632014614919099522704115700263213912685806189199526114851795996315840560911780249254212967426560083633694337071711765676747961394011563082558774430365319776873986724988361752129558619890213365138769806274990251377754865407343487515253033575901512481947904164989731845647205617441650706365282188202807691696292697926328494628050289299409455687625750653641189876538229608917931231742741952692927633998173999075824490251744889672433196569972974797728512229490830142192714092906618031779050454650936273096121354288655342816542564036011462300116209378645430987716109945165224907828876709866180633024207914402880803885061350552942382547796755278242752490675343105237819416521191367889003568184404713910083124575241944707730634017078795310300105830804296034559546143318859727853783458581549501550443443801865518516690773912038578993670041321737396677320919904969463151666002275173576481229443694883314500362262717893631364798077395102917867965811472691798884799763212608142181497147963027161639777073078235694603834188358878914008900340318133270988918218427633612761646950965851292677208803353811085083054789672786854066355545465454135789402782648987422814404071236776427671127395174564603777463501666504401396786696526093258801668934976062489080144102459846641422791357435586377375779575374577468154405366127027232047083077677348245725451669216066769755783601388726230904496229830353759224572810402766568556683852100849490970712328646636350502942822615102274856392496306428048657714274043865207478096396092993127052996368939120122172364908611469240681863477350883951893833564872241783284822220401669572501830866753671093009411183809470956120359237160622219744697171119278050635296862090460219344980642102224811370323479362682328913173003454641926427140486813793274468285316929634657181471592658985110165672391554748505313895802507295982881894781555268574522939275066651152541226727101559221769836790451932119958267338581295002712405936699394556308573775255972419393278346308644933438262094358202721390315082747270125013706852168646281120816438425066315932217043442725234424396632231989904766689130027606331122825056854013080162144366068709877357993233992346757769090927279581903719140603569485059184742292355685493675463317079503662985904404629872943536257562393448767711641016255470996998762173677024511168825795750854114355800859229602998712314078104235341191913119935472501175206086831224636121860130883501563869634300899629948269637091388499047873693670494314172874144879990294143761002798354574356114422249274224400995967201152377910818673543997094742468427614210014931467461969948565921751733264187569247568583307600684534028899178798524942816404697379936371878882106260929174817703358257753429560284034311149571654097183157387047081318326185456325559569246369113048659735436424811202325096337631599825147759576636788347926777362434839467388133681988145410447498334656030959978184339777346687186455851833938555196498023317727758764221902486815110203934889703700419031876621848792406693034024615985923845091938907427048153629742968437773271743387830465123058888456323563950931880581035449872578156655693537676490362765680625208958349400755666295360826643957555941615718722825889603143135058308247729892162672642075394511770416202815922059487703509118916933297050985320942511456991312895308075482770155703120998295531321151483134976154997515589900815192897156578542833241526880122727755894993976298266695807493178100342080085153943663795518820004774871691254954861356147999107596245144889176542546959990672353485493075206721482520462807115997491278957418953603341520659053247050371852218357600818197772956262026694581343296084412664471446206340526756339644277960314123708369156002001561112333407466955198377598903177012013176075698164466556639962359982048716695143591741129730636503845133665094502867842084957647255292916620932196547268167506503667921413940215509911447482095696158422591293350078575871965814020602389166433952799970936570828280806724294070377420340091005031380963915998716352743896999728031284191154221450674289416160955328140418023796313107614696984672802278129889462268392942709936107325052045702722002972954838788294087536923572502272416245049921098825422376780123258834066825041505660402988592527091783782518862268879575933872047065572503409975330814027312788267312608889152275205451810112746495759087104339902380206814079422352939012117787768599653915023819261628159970097876952418003932745082618767005361899544433427935888434766339711759609488362160026646562264274095497915577747825766924306608803243532463667007892938961601823439141894140561477228349623193494018975456466704869252912216613333913745119203300570127650504806703957706749497526191197746402712849795897384059493065767361267542681029552568160759565892588584603334331277691959518711855454769494489787146609026956116709416856857304155705055070835988709863726374066550586877027235449705960012698737847305681375294204911281486546494875578980333032947552988622959478634919061694866076969827198583714195181127857082782092177530116041765250693257382495775143658835718633173413047012807777958441022985978210570932530999350399370784264713070485932892632980331306240236005498504793747736630657364731951169016258419747148010183686366667828454912532198672184008259959995461098812051144897106143498475099044031138716382224774519999478638777230962870029629856188910001921118972654063071321032204299588077119138254435114195622169308233269553971075902080810907871720125496277515714001535433631618138061954494381120129210232604882443180664090800522644557447535465712773657122560336774780588121606044383106199883103513425644769463388074425832174974522928482471557700022503773723769683347509139378085433800485363420226794698849160239208001494075200253008556921523821419868506702460027302611468653231546863274564003031032087043004845322880232834605067484053379747439483132607803639549656247949879138186584538298748389895615573832222331427867417144841734336195306147050489655768841921810975276700128075135837655986160754127411048720448254186100180623673453180493304837757371138426484767784194641650282956727698999448916339977414710317284781022784495883761399016558285594434552328374750531297601615379854102181793143855391914007965345951645610175446094434408606693707057870879342973289864758978735589291162815888952731583244613249039719266233504035330323280203948259762523116841924170975470426786017184309605782003667832168206231199091966368823057109765345624944065085694256634724865481818701492579408468305340178571545188211606582075296333051716255252584806418238493843600180660776030849237976153315538883504133648699453882746524394006847955990405310430218023815746006863190129848797853981150398937924232175150171115532377023792914724558072325497938811526922855933704495776981013440025322791930112194469426828295117780589394649310289095772237435183502955097439828764221543070114309269365305018933696924159262595590003774317062681728633122459827660338221319229560543398900933551782049334330117188664170895027013966436314834341241817948589376635916748077186514028378273987748176401095553958033436110553111779073894759350999369489367226509591666558820239006379888264683623538344911408299853401760702202829498651065457539633970125724149715373734811629592843682274849446947099904005888562158626459056834599110792455476571655498646219243369707798450282196473577718561371526913923168479914911407354479337156674658709269409463016445350878231979507997801504413839370633822467741381239304447710507367611315328225259175790848730869331577366745529534295789040747278164265649493351342282086435842771047176401307577434973699341607276357547496818303965586287719604914456137232806456712606604459843164241834637843759757625568544079484297702284790100894945281731322811628457179113921443791209321534491361071943104633766866840858016075111778266950791326628435878701597048965594925579427932423014858420873200905855502504763547324135397807624697763026635684009390707446728214903851517330024954275632319318554133961283348738878714996519769709566583458049092116755434702992327034968430729648126642204226571209855106888244794313481285878127126944199772579825477256821606971868863362074285865417497602131155966210321499232016923856316351677716511532492916889725355064048034060517765661693065130264545762933549302878836456542579074939866973333333587516192969895247848884420942084182196679135549740259355088515141134359741296474977749536322306725094062931823781434506350968646794799452379268291158501200877260882373419500516820658172217501802670603322547975436506267496949073263784245805432441664019817892692547859288323321963832491890327666750812975494102279020021826518242271330909481118738375327700891103031064346133140709645738268041893903634386683234867988246122079521640966508942188714490011505565001279893443082418810685294467506620763129171172797864875936915211568204742252988916877468362445280168304212761330596216047446272908492882060998308248194852046315398969882706110068809563546754692250055190741570720099982195907112101657563225246905097307024511091339691774241121524674070223687650784764962957680405518045531212056551979669938664239753692183143680214490348379878973785412302937967150081105988023075458348435045145415476586793283694006660959945712952735721796519721258752196905810791445005312272628546257312475544508081289562211277886485617096098022695469686021293157107170776087514505107022668517447346369941201483881810321800269898107427060077878254160217590860806529439444858007364996658953371605865539697714337505960107406970429514198452374634657592117184478604121029845353410270142768532637738913909805534327228996088018546658007347149445797933952918067223298548289689166545003109325511436058151491365544432480530702882481350126181808519635102010454018935508423259788756374622341755844014645408823054106832344781789415428276638129017755434710858069500067455519064277320495168131276387831192851860412685200263130904671782406081128543388341134648802879454430420900844894531072060126106591848229752930123368441597407538197079270758503278137539049174956569667753407857121605826778414489288555515755591737958100487377417680592651778155010632784391957298504756169105431741602568396945407404714418696344412215954133157485144732227373344148715065815372768099750499630357043631512168030992795943078725436095211993208131729248177468156543248332521727403817662218476370971814629738041698677841065949577611799009376150900205620718221347615777546921643562929613354796521379878547244437107497332202979031545225612038981041761322948479586716831989526773310537080336500868900817174936705626621360750880572659391990026660826631319112795754015747687537176940528668606412068513156772888971102754206407796790272390676202372343553752422617374046584427795037728795554797962431006352838367727249790594237152779957041602053200572062394449949097784437505088527451449044086551702114236322936062651176450337371075413626030568032768357599137647436020583590369218963799156532983833799977013218159751826887150679571650489786561237985661579487469995141742137161101753778725607993195093700726930023890665796239377519373116099518178300861859624482015495843461940293470220273118840479939133240744613393690179118967492762987500606975643921454850799587225561312233956617788739538591967575530613363638179886514989386485672038687098832349672071633155231156528986887632086425624547115089525418525196578597918695211357221399272718773702033832264017010947833316156358979555381267952943068084388123152204917095206016377421274651731325011165476580538924104024082272193780994105666060566864034633570597678019687163721608555429246478258643686318727362325526198299905231578735442704087885171421624267725421836619211099293444098176480262282108973203293185459206438801897988713277217361678654091427343123552561682979079093037785096383197691804017056968778593128335556954526246516927086711718987309305940665024082574995047437004344250308500414342395006981937523502250916677513190211612137717331601634657750336367546007435981679916958475700941473204756466568639699238628051616491368194448743035567166037179988741968361029243668950392770305872154794706927449372431292614001366070548423252267492725637474832666388473538652408280581015589703185446167803703196050025670596339176272228013455289626136035802668647473432664496265004786412749056780265434026940735440728288980742580248366997517455455200170006248979080766988386714722216539146813461709645172159156885673338851938255109193458705829571504115661758673617983391348489674479627172447909226257403329399585425480070370418965545042084954935779596178193967120788038846024386003701798977016968739224828240336673298818393300441815852036207776542297330616691409887497021257066204793978291853229021028248504396212024171219571584428996132319016762889318308347616084968479470204088090084155447726127023613192142448412545241977099031892399438396227945098290286516147736550523561803389535732752926900769033204040972698082913443249614006766956552621700038828327596681918169638928309783951804653628657302218209497483354506572985970361446718068018707775720748143294993800905842796798631411483247421643224334441375785277930272832720013483022280598956179274692313166241742766035277608265394941366188918694578719587814487952199794030047185132094533183408290480988263155853664353373020489939457170369465161767110114957084754123629994935475544586601546580829561224132586187017090706521109506775908635850177320927508799247979600876302269083934106896496788089452438837750222089418712400003325377248443252355595180426698747237238846271418511157778019329023205481899003368585927234358286090462196302819177193041542066577181583886082807184712224570834419655900658054775036924210896751981891546513378270551862699417883398914501383403139007391356399882541334161400117717237493924292092548755546342188802873455781717389443289681512015475905260403461256480122871755939627426847582978399801400778038901710345607043284395486326395215375442504686176337856005338999063684067127960619882652360398507190345973616608353772893383361872297245332452222649491474164167342602081032108094189041157889059207754941482945345351722311074276396180865698579501011199870787333199301982517080472823937744624646029812593998778648269849038107785301377806644696411426479738125972958135304837299793949851832743026924450913633695932079485144314086222033822083254907228676448324491711411212846570995448192764089630807954622375187753934367541280377633495822350709156975482184167006654944279493951093007724736953521728995432504557605012709093580290832673122340448300868445688001790080273217065776707689686389980071273697568008814327794924765342087700915272155104368654057895214951748839027926697802287575752556546972570596930120101436275989826082646698576118397652697509628403063586218285301440639244931451536579103132196098737017649748640320986268949955503167471062099309904968874369876190984292437193876266339723959780795732914056261711927702563552731641369401244457852532047842020274369077697633848979410303968776544077160477097225898517415880625668363724091137708295855437392557690515313616255096513276242997985052529412359192439047191384042397344585174614607038527663480173906494686582224525381400748543782547897687149009659231073212901452068825792045036103447878978101661144348224359571185355208193317091315192393653956753006928253112092226683526238972151648491601406947078826726144781931972430123437033688430328747297675969390464942375671906832218416766732482507322078853693097737122744862918971493811092399083024457709227182483409247586030329593509395329434628675207834736753159179851862032232913338851403220768951942478202830966527770367237148929879194785629044218007968165644976435215654671458778537790102899539642894502442021206974505612658703639811916712904546603304013807064554683911824208836895120959410167040507051417673734669927069280854323703347950343550542295275109927326669264985586059350614286608201585734159068321705985032177942665664486650260487329355792979514871189658179305671801156461391295829617765451043540200159223597240877006341743412009378073442725889843390573532028004237247414868182262413588295674047168896244154091038124837603167292918111812850773004932679927734400918055178198627301564075286947947343404248074651020126571647284480241418649647093301485839298414724834618581729100413789616853388964830048715834605662485115815752085585733351161545924076404377854210716574729348203489618360411430371765389661555757066327069477062764941881299032236126649905273632010765975843797726661780196037892574168911767840413866374251091211898764346020920266886150235187474923993735955787094038976990372466417020784738015078056893837482325149641404196043874373020874869752247920343460865548926515257505041234221501660393813411174220170306632289352845092609982933806266298432558699070905378316569197514215489950986913479924780194208802710353280490018550049689964500676156771546077166999628421551959944050459979127839457268460617612812752927853707247358809602814939037974319464987160317299470150552846762502654726032501823177208606540800423412993444156907311982708570102086914964732770100810486112668692137144413029878805083128367015297851282069915398113833299264062254296662290763063307462204634941245063668109472847459091953421222956935023971862668007010583021087167497849944629026903367215905136331221035415826890489219362998619218697585693554256396660823446314802903166278304019531456749652515525024476951675100697201704163325989099698926185937523845797747857486651543689663459894816222111335013154415804096557043258828866079908242622411296730038484252221694034335551999373895905701639786508235918998978833997424140100611999166661687199515485927946168259346163300499253035697878477115009408777282645715194431510341560989431225076796753480525641409691448326771172070236845420231599740452197635343914843930777356521717619190402080329997866499816524931162631062351847024241654060068375759379846178401452723668141477137466259641220476563196193213663370078514968882982904929450243616466670628802790552110058950349421093568230656831313647974285873150139253072719097621979317625383200979557026126304119912611588188681824369371238016111023854519243886301232831858339115557088466248144024432226109654738488501086223468953824878197969580389003463625208257361667866651022244936597364959330000447420905024135977560666456722587489300717320505534270734517634545460688513294908308336550785603256699909126355474428717076752108893974034283122363442924098653808656603240123580644967526033025284876046005951435400240236939347540845203722759814176240996832710274749678574048827128696081881608074118963545443976448138299615332047939900474311787457912756072898534852078035384874882935227002584497222883155044786180379646715357674829933472526738980695236190553870997029453146398730525427762280237163391303841176324568468435089688131645978422597565348869076167996222183123646017359840947109952877780858867881894239084294800324062181012703779693508928100421263007721416288012947110196189943815097640506050463233593996540752513365416142027841673296225662810653060494554587049079684403778032182569587741584941192003614595650209114013417093588091562500215617679731863436545681443584873167963106782187861086425675987123362267300559775049876243586258433279373941383071813764377421646381908655238119327146417216393787947001471921042743226418875255213353343008784948213578879679545720177740045467134413978735314870208164039281562239349280839642715954759836588901799685721073588462084665968307628899953986783260157112303734745332634769460727829864607336569999391530698734252911723504521960089201675397177461454429476532863946330259145449050406641556278924714507089999064518946634837654651424018037610954808230409437446679045544307958510759389130964468507817416193604289100852907940965223454976338608143695645795715811753433937126356373024073481662896915541061554705342196389872341205337645020523805617593026227913138201386407141748593556798780273308981997606707510095210740544843723078687524552826600144147845572466169346559836584782605684675319689333381040191093399993777714045607636525529670656252536932952389553155613684028255468107780483735243549510250578172541472450111438312946984602448319503519990515159263072026431396844285171004696642738299363337538380603533543074944214199446120850440249883155994136712971348271656084433134516212616283043424847579493434573834278099770117742756073639102275142621265946796215100007158484373107696686834241997244557827035894124466492123630308148248299099218293957784852440171495470211101444608877398555322508335890427288359883351698494223374922546247846446260345377503527532006914937340299360737534266077718922132651506458519017760418076158662464542884541695175498435793938849560315456717209041532105581051405314140080642404672201832264909484681506725087190509793311095891872464730641154612623697681749468655946161425275930389201378896225329259102634234845994648695522338436899882980766972791127235843494534851728516684371990507000130894652577786879755422978970242312130002576503322659865972791173314253779867268042188083445992425455281414621616789372131450231535462161744454860031673029665938581200494864160012263760415082547789195126142511357822278250127715099515715009170046597009221908768292705536716445012148982963434181275292574637271482579619182342695465182494320192468028346725610821055947455730910338407133632798675144033504817483722017051404544457978627911957804877910428627377832327649568251084610585868937448167010066656211301378746034752484570555011077744859527739465362531184224524421159497802608659186490437855292161376012166540765692000720206057706683475156556791923269278337158470080926363676347880004823113311960421504406827375935226683587094927181338813768645940975545675795452356964998148382941266962204515103950644961712368878817317246199764662611163038835250555140218025272629505809487592035347406792136417159656543261179609404627746873976522039076583334795187670585810533661461217782188327987677942630621192874742696878971894512904166518937342918181288194559411286151434738525551534499212380630159533026940309136360660504035397301435920738097623254599483880994831764921480727587269516839844500625033557538176191838987605291250386809725161892619305227120469057824731437521675072179541702830079116596850166372406411413934762879277656156592231275229920150778045488155773919312442112679186813509263451736480324511110776033259570633064905173491837962837648971094484511538457118113963415103310604092862817558001264929803420297428546317005750888939886024810144011781773417982673814168053480671206363695218075397003800390457702311036295310339362659889564395373025875084305427236103891141610120218516823277340247857954641080678636812894357580249144688166625006903235014651719495662218694427937414516363212479824725177581607539130008471394468970955124882141068898410528416513451221034714992687510641949405106087358238179917646937974140104564368692843393495584703746553461340052335985399740601881859237568273157178675653013762674686354930205743890540545039267399097826386100886439820915441572053032734462776698381277652110018494342223136314654353211993981677710888262513424530452178269859274956066726177739659963542440988766535395614485168489722085729557925791558603482280686131138304361748625232995584518146537455927942226567542779545645893643217580789272084039026796278324155418830613838453111349945878031294486892144772326085924871140273228221518530921163470448211032890169948584735572868234004791144596231735046388130273887897054096888935536517217769760216378927898999389301013036169337713248880739352212849597488220512033286795118094116469910997038498186601667680531905633169163234495502373196852444290919773331775250684729022535503354248217366281061744161833304588155447374493257722221926329218891885821799027034330758441920297866590428374781032015430245553144301326383249235043019030147622596261696274952580722145390669713969799849405071979834050909239566356958199754450503204615867998702664260687344014559672433304142731935719771470014808497089835346693226334398628766500970477694343676443422539730516343024706747024539025682274978128790045062469531318252410718979850531160913996350113790494345187073829892009138019358600263198538482867172442446130265428785148551408076683658329113115955134615712188163480381001815785346144570206704555289096783543743790330261048710412442608590348987826025149791754545576534080478676708578783850295331929102417453099832634269211506755218423714828308291963969579496935215337593702336547575076503309310974274225330119980725294820278940421350646270491045554958407585304412829704815115841027307049590513303682998162510400233597293294899770723919298399885248944996843582949691697191028872020001652835798122950042338334954539217017177331562519516786122301217289999257933739522641524563167081016685839812435470791916064155863707458979302787716825045323354720753473352667551183358475390726392202917395335125591751243803679474950743137424145790444710091035267742780975251198534680634233952591902842396450994586468283886362746853518398153590058311173160855430120969917746063084185059112073621008388492014945738985527372758142384783582059630164373660906852339452615112824015934045728256607420219183738991162262773728696732015766616623722590600410802456714378843792068008594656843484684534320925287132204515591659278356009698983484378104000541685396548637356240083897332451071711543173879150744024827952570926601001438963863502141682128057776784502634591699211284625336856147812898021937776763745192084855122385145221587146188985839415091124935622861663564926936551724198811595744063228628866774602803210121959742915818092643930922467657143192362104849050681202198816278087678498799192202558137030400484785343764438910014769101802230527259596198615728539753610482763105551649659020128574147731908112868977521028864225968055080908327308874415087219726592543340685865361371442152577217517288526062719839221626236557554266603821531763559846557312691029518466857851339285476890808824321225402616886815397474242068352735369698961355606968527973204398426813295765351670325248504660630585035126558858319090199758609086404411698917556589505480300102118659557184669163598936052418775250048081663483417969920279488627103241200018448244355021638763194463992042943360965645328476468460642121681693941950910968053683151238321883549918500138435678974915637155436561752211979786366610747411970462984640801779354114909489202058060186971300856912225313604271356944476178482019164411706438221278257497117764902494308533864426009617049091871423695132166283307449013516264782400541105133331233279386366178963821406187137763297020419550296475531276532514946842128678072923113239737861887296211592322572163841998454187637286229761778885505082393716953224206067532130596136504792907897320759346265809140634066191517823954590634628088932682684263704631852698223649836807081957618193480684727110411185782678502561992591806166871213627506479357898904317359123000187781714731819846984231476648043870738610634331391062348581787114843694823591204107445474573126763228543092676624758381483254886457997382305724687848340220698360734155394670400929472010036645762894682162516524845390206689992706871402567854932971585053106238061632550879945024873797531343997232862983914251862731598819666431245462928499433678356733489624768741109004113803668991307128161857649031731515491240839160764283518036332228257599816956909406726418409759645924882930757337366413048226238953219797066427612243983106067048555945934642461987732121762374718153605468413280711778886960010418183839189970322447449706164644501915052114939197888158016483802572347060218045284739401977296721113347113520054809627728842891628999874268292753063006892303984979241881387650947403905867810301626441818898466456088750618283255120450147990388679894235918840148408394471444622009789091233042667051449637537894978965881829896754396984228118512878028539410104995596552438369263864703301085701147296369157928682399497023557429861619232622080523696683269811865023217553196046517273939478212761794988128902895496580834408828060371932145203614129996729560248537320129901113562164328391773795342490302145907422188709291800060800928087236927708329392243647854753721121499249827345986675514941722625995474789989953680305571600087097815235148373385864515709942612427569208827998809607784470332172168658958400595514752808346627457333570038761725687332990055559771797476293072515138744533243900075640288314328774443833359087427209715349767045536918051650130376434728538703646049260605900398237092130836107104811207855299236964779435929671200488983352460547220923221686268725914977089640320506738014544853900513027612822284707773820441821746351581089857471675373346448199859356175578501535922429622206181242093406547616338513838891813435328607368285589132721785136254814041080323012782124936928120236897656200605648026786000944143692577586685418334346726102823018372948413313043666691909241078449105468323691324173433047430594958108433310716872499116411915466205155496062048041436125312260063322392522027845328233761204721125800719496928786395366342418776299365637802616753685892524085983622603923264843084581434895627668120676832875031790509497972630452559457713274326972685918614355212050506262610319609299515155528092460106702840860808376089278088543067700237198044144939901857428801275305582859036485775325726225467343210790445844615601164387118436904367744351707285979720169626249565606218592788833590469406761079479562144052974176160321416152076326613941313037294307230633800846676056700627994032723846232673269863387001755005156308229113557297380039806366741688406725454869105602448764133285846626088183235925123587669049044422129990938641319511350823711391946058791185430267837293229268722920824905327678726022552465575362117061688720387055927623580465058328896430363069321664799777556092170578878965378897212292193389605774196640483580909640662391444493912469955884621905826543374754496591770397006511048394176058185371699481265196889712860069815222614110249649387337050767149312787951477574004112818021731138526761400697001226316141927561452741782524976424638803776957899763944967024862856332660809499358915164070121440718120232714561130104431933870368637826761356473053966810919890739622438529951669173869598518659605478936605938628241461747564556845694964449388293937246529163448646323270237883970877776468917350497512780044955669629837661211565122311548571726386623461879825293694783480308012086048953874361528349528667092000160668217174506120135354933711816532768110605256400469115366288001369459811857218363918054930255615518575188479834103032395629018828888062036697385648772218615307114429475629803722898339706932736337009379279076894404229571670091771049974770052880006663690812113495127631052101505591431133176030881068336737696544366425251462633342635461788850228625198812681993846917401671734795844238830117892570388614727699700768651647101659949233798765269178449012049045136925907022993921944810643975195128019264391050164274566474204981282885128818799769676868165781506775339338713745980053861907526993940426032143479749496463051389753161687457151821970073850318094890369564217848258265152774328274085460624191340755635491462203909748099755969565562170109192231979386889667365240109171501889420863681321164209082616576082873425037855685022236887244755026350166813238956813719627771266559514118462136262602336677275808515092251116035478459450636288793455991461954864293223920972372934521473826594033481104335234532150576087473739550245532991562816963360133283155277423567232568476852319526674230797145634023693617849259516974969715625551214119966482463534717888027200198213454436007858346415438687004474718936183029072023870403528136891669088971243767221110211481618834238538157367687370442415160052040865529373325836287038803992812156430366228815913060841217130726813163289113767077860791519914234822425814198921394205504938409118266032526148024378356925175807359924218218745164726026267060434393915249367678421501699205588800762904590250051024894667183158248156477711725541154665631124650665853269947980886320214945026036990055793285056159945276218291490480954963803188474979677833535611128809728176304228279904225911494729201834395340477881011193792441328555235044522139496508240387176788488372154780052996233347264178855885736750836372126537408078138210109747144325823896751185185414494658256999648585177969216360586692892361821277619514383926469844909526364117413367447425032450775509008887087705456041687715935986857730974991915191275248565156302571830835619547508365771025259114861378174225199637570861637130906793789295669215195194107385484270350509560354347388468422962924026283148463470642899070436516116618308776548494078021031893711840548712293204976972946329680680596240421353370120574735525892493903705751381853532583018098121531109510503831368274342958021840235719258525330547814831442911004019951246060759199942215286474455211289524620904930121380301395469849323276962864833279405593218872248028397456869074542374137623620822499775519888217608616865842057641854731768066138688008935287492596227715454700735278787903397364196300343516052883572487735806070171795102060298155308564608280068899433511696060992599763456696020707828612032616209878220413236019505306678909835994904986556388581053916747983973088567501825180926052648364559381585364172245503353040099304494824477008391103216596961929403136890562072837176240320110372796715659413373849835693213034739098523875302821819815355913898014586031217871156669766818952014456643086082133540320221855596779881035564100387348725190722542697991113819066634179687332683908107769599605675585226353562827993630127051542645172968847273569269879166825309890258435116055370510876129281381586416588733888767005342820723383665724581876002191542553231530558040312294518212731675883647883245043598454735713922942120861945417973704024359269223449349177640306348979424605081170977633230172105618528512710944375609349113658303181709019885566251310995901246986083249880395395159351372601575093121481605586921776169229342467866828801926204091844791213836182593476677012020230419054240972829578722237013382380840410572786980133385998794263308719258443719359762351889369625851545921864153974307136834071044283283568542199867740190655972515144904350950399680920027464629755584349679376449039568693903672198968528737840205880247167795345328563968918269899036413111500969331093470243683502013197225525644892897029052449550942807245122684363829272607189252327308571145896660562209464644482789694437942612868760836025677813834906724462882336330762188401875496179070708993063636088478385043043673126962694622996130034991738729230060942640338853399645448130100702351220454445698387951285097941202647904836000236001445797659014103765585422841488456149879978552753276773139002730274570903602526159787433806559616317942071867341698481848621820087817294221719354016846541980159261498992879853332021617947128179594568853469257861500054919499623574227812286765387336496322793182750287006035385320521947423431021764959879017861580730662133945606847515442786278868300447203644624653363922015846402075945631561038504778735201353664945456207235775927762177584941764956962520489271921504956277433988134076101970634851266563913506383469211769819585245232523643360535891730498389329945442313222052717784991854846643502732863800549559683374291594354259765451177568630017461139168415208153962312802547942197594327711188735741393728688802827547282991392820788740586948725561964049096337657188405086296482035561974458046446902093236687443160116764989154230547786219198143075430551496902539327957776049359136608690385469633129340224737066365015028877471888059660417257102591563785661329178188618942047041150963111267887948849795594108092838554331721368294683003270068950182795375770062410085135188295779850729867543547193472398521724716151570323498662030820219880030049135693929233619623225761111149987223493136356653808781198640253024288467611774577105477480473130051631044616481853460802447562862367940644845025824389885552747034063175531653472279165646664934767898927629398854122022425758722300608980486311352849935755914210292460738817004159279955194709774220116688922370752887017414006304082452324388534201079254279625672733662730019129230184437885120657249820724987692296848828182365432716592361483419501263335918020589965195040037022847679692437739255183031719003863992547711291301386273266098174368746780595972491847087982655517097051586076563839279795741154306152507552471869503740874475078596820921873621189004734519009847050751596833297946405876554165270647065621787950392057040494970741365566206102296067605151514940982419803827687734296438628852758810968053888234567582212567195625749454648641966636354897328283325622176182150717860740070896607694980873094076217575041133010471588202699275214310854230902618151618753247917154931550699272100944197201310044943447740717564936520031830932701223932924181756935598455543500307673623875317587707946143578706946282859816580463749796190572878243476446565279897756251334317691032783144044830337812290778248861861177580080708855827120422617722474326018356673191377851131478671360000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
55000! 33165720886081532656352896110426719661454315503017300483885930631645230256461281598872888747612434116940278382629691961353938732656587122452917808901379173046726420219080124005156701302380151791003751139610988142140453018037382106033675855093315489887281031369285100695767490072847097155218562918294539218066599981894236164714909244444075872239209348372100524505526998635255932781994233886849493569678650784554623867970499761648555357777742262464176650694189864436300155506869237471054717018506899449050181522784850683861812555875691157897760963891471168940884559510335531908703191911417299552614067633014782217657267926833833967396059190942080114266197756292145124555319370242502987489850127486275389386524382056172004380795291199912765962324495020535163733659677288161742463711039727398580653083691327811170846898303772417121275287271998291158286500672396399737859071650294932725655100050307322996308458596788236411035051459378581376836155258341959247569234888716069501646466528764081490620374790170156476258202418903958740871684540684652289128928558483506190656877203387727047016419327476878150883057557346316032545854305741097337061261964471946029392715449536037194551621320763403319116481593609711950819177133274569167841802645245463658769131996253438138074293132467933801245786704227044978992869287173146372899994107940579768729127453497688480996583317223015349970392818761127576582374420445483637261582506211078205824232620296250907847209692192030260862755622432120667285898861048314437984563950059282021356558681354451748403933796631411791258449798531582690095128310743705547935301804755295006976063725357234027865487048488630827937337597037011919225756264186346419357144569176703919117499594331377389180411707344715909376496699327076088162209203278049175320898914012417183620085006081366161319742481376975205914865328371597722242878815601004618759914398884726204874881921659756179729859028904097232030059931091356326510808580132364551248492755984914014642419281076382316376688438853879289408233208982613613515111571719225019609693006140013586563178269992749137265172463730590789832928136277147922942448995403572064539700939858971786581816866276586174821402977889984789327631836807762310411596048017703671227963538809687556109081028198296123203908578102229934648575288770629151492899985022429774937913158824449221420347303601963268854494402807875612270243469193210964854245237483865676754938025493981198562403409817589305210933909353024695105773793153473231821266542120269435787435403130894036755217602457063507077163426514633020128163469853739543686274013350916921119358920381141515273847199566271472657495574210549483001022120321788392350996904827785992200439809285850516548134262723836955447012402927944036242322903196430956044513434725821396407317252769624996531655100437489672788620899049499324330994094837884420467926623001116633461299124638472875940109351150000000392816892150932725458174949825356630503199414116814339528762672336095069102383326893265739282524619730240826382807612091817912760219802221361243869385440510053070459844505480883994549302156818227146881486047163078726287428558904676747783194356899207342640238071119519424710736553813313388830029153512145368532124597436839912445175959884282298081540499177529867746845305991719166993723463660877853458944676961750077375416496469972350296166452781512119478163912647067694690307565570168030546616941770478446912534479913334933173983742643552465109660816674819128510154932483819281040633846320246601845003388546998206621175203318020220635560231220813268607642442538145240554021857909044931210711681496357617340482808570386834952549211243632897042283648505574090367002922542515469627045005342164759388823354699529623512063122935455121269637942114875550358200943610838254541422148824186597538106991961497962678755007937357642252338762389211963838425025866377948135285691797578156428574528234517128768853962789016461060700836579009138018738030770531994777599562626869685814635282201623214316571496663445600563931867183472802640552319714905116297489959901834879350323877995063865894258365106665675156675477217135943937685881125642663893930864867321619773916610434079310425787559725417197877333520168987638917100875271795160875859126790710208253340741887376943828228510616030855372497706463073177854353026169535283414857040223871016407840028843119090126249340599181560374870183632021425650907953047784615002790408947440895750421979297579554339580186343240684482214727122476375628622613372626649310541943647208364322085967049451193014467547974605642736810058005205243129133234189163749597155230846779391188421579994991047374565556988784247326892867995785168139034118949060900216182063217697784741841030144478587345079447595991596937887151867708760230315556551049525988449711965701603774850640376912853952943156600048860905711735558598634249840463304011537224374307441648918364434757729373801840524978462774762727948311384941807831833974264431086117636910676479881282912723536284430305713263186595519217173692530614053533855177620478881626333195014914345000741271626913927426240651064173664105074405078902249828734750970569255576995856713223478024740407937121905894612174138218321481281132738056579362971708003616903172689815668505744792057108335829482960880726962602330015686864584029435679525021357382365129520748492487080208905110320492647595539301108188569772339045527954365039600094358722358943076665710319840413187134714366420781195852877220948050322280595738221551539922232384350902485352210780442923260960159164863319853323782974526644599970861236140898124877595596050188995663953750642705276446896942259084846589599594464871139480133562338322267153122647122008406593354402491118726303708555092864025141231654407559397910188485089502600383343164402078266660866619784894896569832826049261245440820208085536618458197202437875240398016804879615088672258765665671152710893741060424837108617868639412818460767238870760136460152604612483364582064872053753039072458298364304443066776473647601864979738091950015510873384896865995636635417095134827508662274138487536774829766880775565890945094504802185638485055434198647325785379718026064279665505521283779884630680954220129860853045462141063185171280144891920482691385325209239161905182865691084390815697358590633972376218230665021547575342320046474759601790908990507885878298955270160933851018485178821658658620714242033712007564768820076327143812436217328283503112835726479292034980059303152651149722138086543209941413393831437511021078044631419160687967590970358035055814077686469774578629556148491377344850744649528510860779617186496895236305401812862316770355212021536095831509126954218873133235538813081281560808742276815450536277097226630777519814670482284147571226174881478902144964834057462912219910988259639248287927676658362621680793611113381924558481503729219494555914789056687191151765246762352909056158613400924046860627955962121311259540829992448446584954233732873452758393927882800345789846403480720648964020001554501275868010468425455837558322247222218536784527672925415716484244259203129315052218617037665810171421351183559302651074528159415297046206389449015535591986843894517936244607847258863143807303468089782559577091295385994563892897014372164625265273655917617887258514150761515584210418462677331188518274765185547997442904298496838723977019233739731500985938508260926819755972445979009065288628527880345972793079605649065203677974913600348359436664633912933383069337665408076581119924996667606854825951420198820014270397054754061365767092591521035504139938699602840976570880985510427570934532864427968112423015270698649461453947219699327744321814033639253629223184385893214086175532240244997035839264561351329324320877012387905577975604182069983365729890262203940240890254057658448465906892406562459151518533478360874548366529003533700606008503625382665690013597726074694476780694089467582175954483499997433122877535477248119476697981947357056255911532689954131624832370144784342748206443097760555871686069252178822236742785543095130592491976347736547332482519975898561932677335332876822067089077327097763593391018932772744150793755373548670671437879695128775493387634686736230795916793849178479067170238667647099236991557237334878424203484896150073416020061583038375966962061275047801551637495896509747632537114483416525576816974130715839396795601702243069007442980880398580083856650655354614527725736820880917003870436415382075799454229322866831355750241002544105335799258883285793876074108823499918775485178828427323418997957247789702956201240110843742480630304434834511655976925052035190739942094072970055246006933640046155415539425742716449950733820508973172553921118407237773742234622542601933463845167836857011240608018312048349983019862785201684595334312808735874764029125501261718726631391629436517692582285620702008992544313388727498974817533471014907521934510504135455134590462831544606007053997995470139825188822768451481592480364918755115566886474301617758831633330252099421754113593381338444765706237204131725096420603981924221143824077659004720028642099933469256185161824392798976128392222974679035465960661825835752930376149566741364689064978907745688634365116281922350159308694848868085066990288978228943779100765458632455633171345536675917100123217408264718298852552419929815178341629036566710313995199795304481451959954517248153947615491677043533479491389508342055876228283585823488596582350297079319845500131557883956871890384095906489393046798614001760266232927367204457711353741995017862001219638168861076227024182274533892454383183896942370749816908172210118252538077222226757069668154210520864407803428956568214327978069025075439798778836823352353271371268607788170405996227954678914147868319095349642680262323956078403782331237199817864415560643686867685018183550610162194990896125197284086429739753769938319620251126623566043748097445186467603340436808301101576601064095258178310984441641945530001767540133590797121373757368013815563738258943451813549041268059207597346484734152909734828186945426091119884377116790350900439703317915665875780153126467451287140667620853749489272916736522386928601612836750048478284365055875566538469316670359296557462905220810961555566650173318577863782068392573355459734756058226608694647730756859062625785586673155110718087995263774692322313776646060358067061778012354161382607372582151485263769038682192916704581440005649286188708440578802176097853177840561011156177280387339769554740455347306198957885800579930441494098552455909415673137629937859535899076119569765213651356353085065680472489713601115367983133638243519914515256962453944403454706561845185556748720233181131026152265090508107164429559762195351158728689809493714757663309761082873049679001010990759445314641148459916691770378227691728886767023227484621336424594674690830674620110088297052431571164341433750791946332268120777648960196621540169334291141478053829579669979449469968674910927983817252362058548445255861838806357041276676291349012123120613515627588794822691411547425727615052313770493565837162162211764153163730914259774227339127184687751537415917703649167306969206408555388153222967896566422446043478598564820276633987680137664265643711782124352898501042792224121123604983837158005399762533326690579765711843572753769484290841029143809393123789951466966800062381011203826972421691093751622826739837247850585716313444629287282004307789380174920327354959542614477072450144328154917122760484673423211041972011550422718402661857794453045621650637254453822221072090060420283720813577741358479871469085103179216095364214177965515531147342537355389762280321495069258303972275406268778191375478180760190732634355912383303810997265570476076121899904982157297353658425655703401728770773516379093273645637621068257518431400865469943168532311784634870798196042081677058435429467406524296924458487257590037462428888214621091009319938996998060520759337567224400911011342520771632681922138525407445582265696874580144157954866175998582183326822536825355857591617171549952742829163883154847256745996027164792573064240972384679903924427292262221383042342042450087070405800089057984685031714920181050953912029139924286164891724107221209349482256743804012640229435576716261850425932336232428473730878050886657340441968369759616151151459692154064469653721281728941561654037511369577135235423795611107552656192071720589998204087918094817456505628085165348107884396651985052175081015013451113527439400142308247334676132885882332789308710269589179163247193804133392241479559802429246661338278983517683817052673808205082083731141092249300961911440355816250809616254003471034590473196683810974337928890108011933732994063976473465128471256343442931598673546470259148617437988210728365551068361189557929054866094839450695254031106157252641111370866358712931475237542062853945007400003797000954925713435659110731618801665043417478106221005451047329335454085170210421485281032928973227502972370331539448629737838409378827360727323664808018136611390764910254967786581656963543815892254154383563561132933591962859090839182695194596351876048092365452781281899815390403704081254345362660313104035823813110307821557992395253277809638889962320965841206071836580384502514415374172504282731943345164578631014200712041492682888410301468666852596196546058551971091639357989566600702389788292853929604672795260240242133807732709763133505737843847779332589209020465183111609336179374313536087572836373528069668853905090197241288063616183253275114550592200462678422625250680739813191368096620126198944852498439746217916190658086147450541519117270016577861776971871084533432575462639656219211138398721236856655646529923315785936577547359845790258906717451609927215178035289644719844210071695396880773162698381600601936336737082022610007157473997477207318134961313484134248441400692622619415316821390094823978609984791800878786798609177592678952409238721348848839277329335528355025127147876858848840383426819221733419096216075198867109605250206684738098716892876334094330529027945876337831548260273080961902130208597797013771360999220742335602277898101318587811416706749516727574650697222973388102350581564944374349205565275100893211435001792268029168456521811395912154464743667680405453177533657696163535650714289356159283927589860391047483102242864251106229417043766954905533534491153022642201341907165728897092636759828869053776630047224175418384643543038783540816991441460552093627874860439502115965994388928765077334682496782019623930221875920245752586112366834091288421167140276056442914382226732930646758031811860774067576389659080410090226538835435722564574336721055723971915467445276942576138003071176114400611194999925157376335599445658376061514631058395202490442110236060458471542990872174246010764681778604725145903450065135734532791860779346423295718566840829473430551560685093030324939822180411852148497758107127343340412059647704033594693150609705204985227966209056480284242463678774451254842305807467667234139164685256522284333598299613988507690662955052515107487060140378585561427096243022221393418216452096487563317607321702607706250701186235228059066359392719867404538911227499053799858953369885522728566314089042766769849861275673307393705768192306516420069057637737564396046827988726136177261556186252264220503290943464292608063809195061291819322122579348871179796854844065981947956506726359078572790785154647242984557717447535761047924630560173945739823811633862987053945833944798736570694772488276263350795191026255658386896807792412095813650482494240038259796567192622609396014107040597553644878763405560491861385148173119493940006487927189371383653567833198371693160084859028912743668013490922617211858103330606179071448925493115430870663621623497518478564666085289658402482258206029352488659317230753450935432801769141499472845947236811222393309801444615579550166995932331058193039763187531287367781045082206374696409444048312932866455868678005418691501370196529722489170757981498917075962112788911672606856443961324753631459637383112478066083910114939588576577983085163923171777017426999967723265854488010139620039518082189941221623720656992056829236983944363836875061218522939310635047528958820992722801592814651479911354822161427458435236686219608040893947285408377504005922461573110760217468292330150819533446326390156843686172368544361076711304250146754112246570026656799634516388455498410996373064233338959622969949687703853925118648868623116616865384380857707325166641180598545179837872259089993841553240127902747962081374239707613444856587087930733694627884480789944274441310891691696088498444140795944536956013338675222109718713583882623713431256577497460106304616273622190112574596489512052277025725484890450066581715256666207771388936105181422260663751206938310628854491626882610863532831708867460518581434439247979767845543036523430340293424403973281868699675108585444777843008973631451361098638365061025170614925754862591026370170361550847866679987721076723447747248143791106531825349303357390992144981653551551628871118168380395518332199760010355825604320874177598766340790021678687430425943972761138733687848520917495163135809188379919730218793736495501491881199780229904930054766113420103212307581823936169851213306441142264475073883810643985499673804694507036769114756938299348680840227559896748217724152870233640475089689674982700516089823807712177678994315941632061577601448303656049312047251317223341747538144400239643789254709290770392117172107419768637444775092371688977700411781433285402436336332451638991559631711884818071012048183794632753109067572495159334856746693561560006855465174115833063463696546643795005405150185984828908914638053058243576984905776627684766777534752254464044461971139438199708488164072070750744328894293039217531928589131053684936983027045177971829192407406553748874891270806891197522966158885795788774340231181126869221414738794893581020429695781516315412362324478179445993567072525586509088173380692052898925770340355528511712499693272294426686459672991495335740851378876502754348672875687610861018461578196894918478272905724563841149899598365047863610618085741630452593592898250667349077440096991171535158394884106540407689521200470566671042787762982963825214931329767258500592393749904389412613254174540475433703229125824742524880104336528431903771097222230491744213092618947655003038548245823658775009526940657482986774762121439946748913954655560557489409803310547603665452312652318799644708977930446954222079260365420456998090059352778370571968361610964653189116173304844365134388264236150064821370884695711690560987138572408340653933756278207694698973822226412702164776680532844984537973076008683454251203086827768526081937777840976075398281304170830406475972282681226006779532914460530934158871721111304519225097546082942822370045300759544487207017627301414450307256002806326650998012805706115699556292932670257854590974696514791563724811464689557294182530401095711142708559211001082452105170036110793139521265534290807117523756456704634729218552141385941606627230103175730774147175754546988836673312711994025571927451014644639711812428484047427446717650680554825158856249775955763243694332452653474004331370036737465548706911428933949405996361617932304662906995187584715216283199255614122706190232097357584416055990299005237283376148404575060450524603054784958533441149320947320137130308701630941348359640499892305143705111490667867344090541295756474603544944855610887918151142368090729163114322153764176751847390783310829885793943984059479478268611317527969197380873900996202080578764585440362065290671035892501041844478574854507061029966564894114054569219262778091035027342617090294986893326498691330367925331653172488879791143610638988922373202156297421327107885993203941056004041708165407139647272463183298784258595004895008879503483117114142200074498748692854641736526374441744503113729108498437325313561407812411734453757605391737120475082186831806801929346575703393641536171661731435270840634909308270952962242275794666690669883076031568998145617317296006243708437230693636314759625896395303799732058614671348572511565076277451281838681110764372031604950558168467847626639280989373228787287445721640359390748694297737160809759448858214703261049672747367022766104231585768787530616775348949240614237663701084979528400421496256254197801831057039103110114061161875557022627703983894615907089798560152452225657809609613819675334500053151236858840506726037019958954975938241620096683911602229061740435261655904124948738667824884643635996565123842019540834349925331554159221046589068765278746995881361527398521401910214795223080299498853512359699909665432539650331059873070961085662094664688040954459092129084972390427830114306144984496515239666493602603856181690306286288650560164694945128729950063004073801208491691445695943142149224589566556176346882723944066088235482627476501394507800856087288769364491231812224878516650071237884551521223064480910478981936078210451644174245766388226837394603457282696221091232998205418775553577466064107888578223170834872883003627036835947934437227721438973174919620451859964108155944139260128169238714193610514616699664642777679742982766068634648505102102470978542698857133532322750578984125009509430425865398105123994487279992046796672965618688469672486815803367536122333044090246345816484992642146156031114209663878673989826735906471955832653961147692257040968413065286477207119010620851674458364523286471893525559002190895834249760878006606140280216797188339474684764663673507860876033450541952016528741968110978968888163913698124754573261499058812610884098637437392273038330725689047776636010973278873890563476874262426025049600191140203421471103851761487229481718682791336117371415063624352999985478391124056440596376929101919657021508721855337008601609630866197685543046763954617226058833157754277764113388970871402165749806999447702421724093765540663920248633843042870047300705201874908642566300740185190491501314242026115351471050286494961949539064309205489720613114669550218449436402296515873447250727146894852625789081712884444776306687123742457418720034681849077136348462270504348369895733619849085819014840079898490697469836792798998543496769965416134181688707153596272386493958168416154965286304149639542067612536484651806464689665813912405589267581057049008668091375185063781725346150990627314368358017792125415245102433387582570618023740962122864932323203657155761470642391108229154848179706863205693554590132493656481721840879434497966851767188054823372736598585465299067792202859915895998009104407314258319255284692668390020226897189711754340815694893828031000653199661058138780298038567687761016066973136036857210649693768561716734249344524973611815235965344456285739083691017475176529275099269319015375693127490303741697724537147864851267474604128909061937414126713957040583292762371870838875212875519215171935439883139998952294420781650184569373434575428911994815804843707919750133179299881402180280667745104025291136855043008239758188254686421348616495641221647352806270809693315500889159485547626600321433618320041063863620632621199817657284333497773807218734645194149095301940170038237115153651452159777598299755516766110777387131542850222471328630509447684064530642346044197997727623958331072536484900822949239407957656042358697960885676654932804829158989187106350333244103031368755518629038290847730783682962471697840913856573562353557405573668592052167400954615206674552621226798727292997570194873695602023006949307639885502892421887006897149505698983552367949365693703347217199225653718063326414881978375074570613651646939634105917519165134518402748664120200382027336540883797170848617499462815820967280436553689513327663765278273038972300790303850604618551199008688049312885730872434289747403457155899521564989183946792492674322639511238693101697321723860856067628878482085640735004394181900009796188024214091985324090911941510873406172247582534710172015534996717262611813471996598177273995569614595254848870904506795068867143296772976832871571467292756975624837703937920061689673463095807927192937530359848939375578731680126937575382682079464467619541066895533001458983193456427282683482278901474250083597095735455954846167536548757598218039430634073751964626592947677977025760651337879162844959607651681176897934018161221307946094734956183131760466891318673410262816255304377816552286194986436304098446509679215495863929275484420610009440391096411219890686376363928223673969646906175943487162081359686499902466195442448094710940423459617415044042584501542771492923043480683152877530712478783968884254495305772130683276988964505312770016579405256790834569938253773615093607471433983872223133467135934025298662098468013041821452287915783961358922890045623842550836133241741703702738397675180168918408747495522310668577759669410646065045778998068875922023278127167247757926872944633823973127196686532704425345263658113763274519862000759279811482713272648346208530226562076383211519983189229811576624540022761594451618798185289593325707358725595089615515806619800843066975721064168767014282098180081196315597447120403518071760992066697374654866796051192496284258326232623636144785926741864230383820316520921045476881980504442680158171163242531242113612129542989508431837551021603723004601421153460441495515095911074014398348347385014040910234771376935762713300470262959045034138038554513039445922023139775772950786898006214370433883052151894096172840548783127519982994008674426229433331529803793832586866514724125909820131705902537824859303713185392430114775129378606487657425289350651604808817385830859432323683901007726972783450051658961489369669982500966367392660603005719597794654166772038883963405681785253059836892569842331953970940207527562510236045196482992702247527729480535326651337474082352149518642255391180857460234902710348608342949299146705795725905734181115236190733163904262982233141352415238677032457102447240601727041854710005061209839592453719918147231784860231304985669270083978002368231452157607781397297017011683677352472106745935200937989051747147695450995117520584636695585389754910679541746318988108959970430909469470604693810919516062190432596300545094628363672079160265867660472698622993166947207989049882612472282676059844115453373783616881801175375274309052831424682586373058804665155484888401189094471204893212130506027404885660098263159681019082861129240460743387489572243476813301159980995173112701267018830313680997099445415577328350838352117730963918679948188248544031843251997696789551880776031141690925515076909150307704075452990626904808729383844601503153635705558527520035511507329939046060881545992000948192334887419379606824536772916707761096029648250153746282300964923212497910532849954532591552563807805509534523507122653632404572201615478722953295459395843442051149210374198679718403434567257699714794593264889165443926132455068802622789949033788575542068786982548040543891903877661109611885018968074735592396038968446434014580199835596255559509405446530313532248664642545463233143050828998832475392259317470900118688311380482087855231532526992818697798525859788303697363507106828941788641864145451950850028205371390767996343386738265241825865276071025107380008065031357199803901265149951774938427571792039006290009206238349863207863382413744572579328812049792588911048437953758542813613359572613206986474295142627463883678986379085596837962196660966704954043290827009011294494814860916019586390672807039575686862217219210147772879202148572247014661352722250263497027751405025183809724750507099791829463178514154075560965510886625052499880821013557508663693284566031049694227929624279676182019947377882037675845211239229099541768298737676326672880298268504346979170908950335551593559990342470114750761299002250956724065125609179331634839252075368279696250866814934564006524961525051707615332948664563957027175984950050553375738773138618085480061533902090436302803083651185357884137684571892180654767113059003992869265157112733947180689177371072463930454179354076312411630285607278038913116111193550799800553066197679778897017303812199929845560540504926663333913028697203920620872161506087643808619660117051621765728697274167178574438242807881632423651169738842760736473374903324007190022372670874791299353021735651238509550960059896160838766594443993188349642631982304356569079200854768716706890596414059709439858121783472427834040102818373504079232897658865201930293391983982822015321166558218520291545314515423916237650556642707369467960506938848877940607577772829031366757910284600713837068357641405227377904953059578893714066698903428069719193010669859738529938885607927787073290547984113601245898850578718683761894096400455876954237565404517282680419284796039577658091714355431626478896987593582311962193390530210225165441463316238675489583584391733456600366466876157603399754836134435589834100580794028875268948576848195257595984367312575785428364951888420102774685972830414634049387153544843019020373006517890503747097113108135804091244246387933616378038790592325144553816765549706124097050389090024813216348895566110499689383803390338264613345552049393482767739070310911416833286305999381037973514481930959907523410361626131289472246080493035306655535744314723145692596710243714336944497593930859653406093283070112720604528705526598802364081872989145046119866075210520642391969499247995314438078355727640986993963351583998644902637122403827388182005576805379254863704907266585824949234314174021320589049824709136054511591005672233781985976407733232881170167092704467279266667799780381124487773435497405195305455839384887515388547248858878706941114645485948319023694468638185266729127636738114659443769006313471157789254391839454390406704113936029860666645544763523175270559603009206737126975833895190554826569937564917463383268397719650149787116230677049972234609910447896170719322771096752999047333239106451071387721337351995155861991694916285245787469750468349860623586706149710561621031907233683981467626748861240136946889108877510259161752711085003889074159502125494613431670385972835911842651140951324262203865885558137491032795909615197220398294703732707314461926598971686632683340220844472793508200684391377267123815184370665789970534333014948631653404375878448072541536113941052272491166323968310910377722552408433782388903320122762103628646695158212200644227406447979001255741865922116465911230591473116646838206493248390944814196146615792967210000686931930683599236895031666719786254472854512476784237757479523119366294801217902099312061583562154946229936239250518297731488123688060332040236942180866722063239304563604449372658435208423502679008331461849828829457560224194051079103394212533061581674818263968763042597592153843206825697390937130865810492251086346836539332710694148296073349141568869771536124106604469450777262318740282519431060349209592166104667618334003669364196270603106601785835575825299956445287102028434519640367090342838698959368674890386766026024425219870241963633532817057094796260422490905653378178031103407505194040690993238909301388249723299236094494930447854045326639524121115188888643550309734479540361537657437147705269679621304409951676310924276248124511972877594580113968066606944928947954607233088506844814589939746266773275252430790999607394187869405210057862185100720833431933352108986308771940224674976507141491054019654074744961817033045938354261880703395484892425739451237298584019364332129919469170137042797244048948967727641843838000848340781516284390094448673671582312182279686659087239931106537695000674060389869853811310165413540435525469414194342506925480672743277998416343784387718868997725440623136628854016555147191961565637761505136625557756358231727427897434331858100574335069856067275342989622112762022846527602591996183025505927028800333667423248215789020199179786006212567035858968936965909426408474142881691082309278220633992986687083158054825114299740085335911334621375464128473592206824918969013990426508425509752785817901099764897459661522176147258651111413316102630309615427007899000972268241541855651792418950656234667841559566673859305217345142809180897449874808984375030457163252565068385034352874781851369731567301699505126899552017937738147345421253744673471237660526505917557121502276918433605612602872519266597554669918928402177435909595097918957762513002516205176463626671569052279629869391293175706320994822107462866321548451959420893516283618319209401301337668738946462601482049700403367687567045669848723785955492486821344026673258545059492595591594071907263179779950952554506254886690942513894848578963026368431608514717327121204077280736870302720275279952218720034945612693191543016613288791281104715194573503381159785766489279889063771530846063436804622171118725663586075352912318358705460295265405629531893238017830201221468836836159103711654641311242440437403247764068926361265047901431983678286121559472353785643152872035819379431647790711043936684122112880424978462079923437162593096879943819553531393999445076672990548953141715354124742780939658634964921183581177923844637002116028963102758749267881310504017748261000825121264564312303887132902948959468267170784649772621022484475293716927609159115774330382739852118039036103749179710749834977520083467192988150966108877338664473342984337009068533503994614015787707052448346478720994813365123736604846864874409029521260409113159672285871028094880710899830879692232645066044191068037835822382978142620449965927408474308925479076552887131993093951732336565286689071147133354667400068099945692120018233723200765252892748378723754065330170723464060400455643287191479224317732459195195036551725384029855255931509288140062615494601637174918063446784207834302999944720887360309388150758207563828815928089850242437180737554366677552852130949287327731280936760242702046414755841088383844214288266055989187910243551186570990379610957705501366618422541466177886600194119303474829841485374577910586384993835440043836089410409188166602692761921033274888327554974014621662184963122122974744939329931649704380406281203846113007160402122293486584611521897399806422038796544427952740555028340270072210455160614534776850278343345445578243770137929533484650126490847809531181214540366456156221110031897399413454353265425913027679969772908526409114427197112616030218125896800495987509772516765878239092925177218555117882649436574039344612821516769624902638124126115985927681739800646845430868587038845545679224787863048771987059004814722124614503518977898724383594997708111930532260742056728700997427699349626608184463498354055785353045645816342923204332064841368115020200442701534471987328424051802925941502109759224822377326596535107177303868610181258845617048147163687366249007137818090668482694749926256208364608397278195082454081584361295073900699420914876411591838984060159576563944633204812136404944326844949883848144475842467146334185142289363464638401481201863697846968057470521882824340382274832476889977431842868639932248213533081230846502878588184429367420290466504021522504348559898488321786085001134389709520711230625327179222784275406430145954133893627598913746992619133319486161348398726285877636787401583415889588656502698812156196455002955278100911797200622874985745409223202958426340809384711027065874966750611255139267897145870047255403515310015492766691030472277105350055201056550842510062300283477464556510045432957295629513377926322963913612227275862497501919913680316166318478654037039128425769232692997058094386840317211639676873756652784583540642600480292668453889931312393935071045361976655961256924916258215960049794823052661900210097837953011720130536609430157446117449391907350826536434553290267419652958815524752967403928526756589515087941336971229990937959932380455741387112380886722988315937385286915868130661453236085760498204041362301661956462256001076656731609039380275162811876156717544431558950509687854678828944019375161283996203636000210276299330458254156886278853827973244292351119696956891632096170023102917056184319925667479295020579393699951071643923180343595613101273343618564476663863271892139837496778602043562049121071983609259694504379484278594614779509433973066147685032901088433757903947246784362487051773537866889546827275683627945629363884148058499261374982963130539869327688531688610171610475188953015863195291128309736870341269596564848332983409139515570855308728137040312985915955762999418640799496955444368602929275394426775824477232371914291114213134511199442795241107148478664717888100502239063716670803785535734739466575269725894947990705187396495085722945929249679750494007024724408417183608235539458049986415725104854374125237813611751851530157010400020865282200086703821007641698499985440506179639780148881915999830394486998051860634315760179480070496808789180130619638718319103552962593609175793585619578909335086862423922769142190109524815236657201536115596909010142533046357437393550989056232449978389152144809530421090639727104191231447048780726863501722558308040686637764346402989843451304953075476836834612521457818254628445244256210668235772660297066963288703532301445714725494213869424259746011634621226631455328528154044055368476494148987862426166847722057617981622492788683872426961412384191699129575485920560695039569469550393521148810427626052832766969940703479818282689068379897762675164015513366362259515130663727281622445871453048880345501742663520677601888645176528293485618040396572976374223184420515869302355442153621756635920053144763241898671614897788597209869342497705220459737471429636048057101184301300113978831505334034261120277484911698149932149962895892303009725673572293236943916211630771074458317502009964073844542880530305964137832966217351956842147878801625988336026193410477080782477168497872588212795290170079210383889826680945477700744961534819481464061742690786315599641700173827539856418026726982546191750488675663368371764790478788675898320426999632997153566457944664589217946904095641090166066602956591019167076719963599785036807723779873286769509147255571107633996890392036727589062489738178952708011795949350958943211462142667206842883936371841442764856468983488621543147352736172912334224874839251775976357365422669380876293626822394991203353196078985156201225266949414342837243375346226178471065382475103487267628503107784811226565280531151342471257906783861291510530330193510709252636338494561804993245256786391580942497747701212749497476830289492366603995433353019624241273302963819647915727668332070253121917767632162207575999624709066052590710104593104318610879993988115727446716823812528987570899742423276448307699364305334462564022017391321070108176137295869916359566369753853856711450068310116025600378711493988173037165632274671729578050867684754675828654499108348942763589278192738166131810109249223445918852027315158204657696770281996322339191454830948812535536792577920347112448283169109779609689513596919985122998153003070166748549511757544933942710757394482207822927459791437911756841975341662741456585709643838379064560569511228848717428468461866680199360350063611756951808656797179350180554496605249362009478162061965835234693211444405879834471896907184923582879083035667977091719246649297459727198009931213356751816035453148800595655033918565575412875315572562972267434032254064091015111112702281492706123873056360027603168007385726021522276860865298888139181019540851439382345139040514826898665968634844351362584229998740577649221889425412906064095326640896525259933521764423144423004343159331133773190441289244375939710062967317313924586901280857250847883379636428674820413625566946443217326888622186101563077215280037923540537537270282486197696468924698643824890817309768504194683786042001778118491950378699970003792329417701458650910708902604421262455915036359838994998961308872482433234014773061924079217956710423254915310415412009404072611606024722557378921409276914472342934271172948822660804652732403149953303943647599053859016575301004350440286998745245393617778638483211931899089761064679633896465258299205397797087425960052198712529060914329409856965178484318695731413496825331202605287955188639478421132276591735411257644480161643059518507318877683760710547333759542126719238454636724558098449172121356949399821517803893507144410483988441882791524525440408741528839002080527281616563937603850962405417415610953664901783575908371404858135692127993116452831057398180085145263615089097261538968657684039583388926948602265923489512034041662612368493386990197643786245031207161269272990027081390245852684776278919471728791076252742538910259748983152791349802024700525279950937187774606119080305201849591074254386739415888985928664526853287259395702584412836456296056602506617546358875251095932270708826289882087345674347269524896178307076886429878192827324830323392394407747446300013494420587389882094537346096795602688718468607466816667048177492857925714862778669668856041446459860471486002636356035625878298073712133159439075205420855950329877550654567300658019291742505050166604844029811633993706180436321449190874496759593543527897409417900735693133432120359183560700848915453989031129731509262882325758242981420491922588334524093813097412939972044675493656681655349822140556287412291160747534362023397239895495215936528678221348900369506242031298255275292789873723809322324469847298974720333555669224562419656245035687285708215159486597295595066083764051348035297422277195247494825000740745592267247682003904858824922284020748052826961226555448272415856261881584104767794758528191949585485109900037176350228599648012770388296077415582890652714224169460108880991037669101843301248597518655340460216361287598159721411023761919420781959758478010409113658293604865238122968708000113474169792289610019200358983124500795223846279632290710052183516737776621672737929488612514304248910166597086966591599348775908677828948477032382769155588230647021941979090081063170208314944988260899766944740031871751963635403754227003768153141361542245933533356851886967642328315906655878608763835755568503605048267760556796257659382383538041511341408246610022613579155227289483004142943888587632022791232707477054712917877806717256378571074542310789971876052809045247607097875802611617057938323682929649638031358187036764403790445028391457823400168501235282793968917581128818509488169028025127202932124613069467407614872874382738179209237321823751060331907870354579072045804625529829203843525081261336265405994097286516275380470925539025742217654985028532624315918937214703041872811827563073412773056386359517560097324522500179212347331776083209016820392203520532454478435150382975836628730606802859199375799458530662424463464567239557646591071315200645827312711929107028322098549004872685486244578055266178582956589577598096813413142587900801477267643347227355616647677405376477445473168923492896929089958184926428132631762934363227110023991287476398806156270098379344428519441685264429859031448248719646847016936378312587779601725620716380967372018785290690527059796303917874478794230426347850043252342661980007001160421026764075131350368746531032804427280325488746270204243539439174082018065251908465999838244901512288492798672791190271257383479962604698368139492305531632971167308461455275894428698251406693563389482447053964288463117008293974232211320497492583782785508741433869978578048412360393346637973290103581318446944065094135051398099549665897225974061656846030845304218828975509050147661167755043308351227928629501413954872528446628275394766480251641875393182228045895352259633539852509096889190864830511422329199499982536930868361707330998897375805471133687003371559119921597418785136231808745795724845937452716465097483097584895310149621903402110424866365700425880218301128980381752310443274057770075476203794911442371695773387281775634324501946436386101608308336066714318885753189376448736664071862092976560839996230177712566561657393896883427626492904077593927341234163675172091017284392975562421651379247375901819971592104494767458699256475021714662000467590084836562877155471575646123272127331161586117801298293205947952700209536600706058230462685856796904369733915995202459189283660998159581399934279777597533338282640635574552099230734601860432816570474517577920555692447718525773399845287482423166723584656670498845305973579795973666793453808497347308491972847714406978388091822549480058267662979877287338577378776706812355232972210782083031883887649575890560457315266224803548516352195319280559323287250777890185580271520549169273554090234548787276407063788090330807651974691172132983852492217515633930992520898597627044565144367157291528013545589109919330532724416967218035816344325360460695897506788660176394090789524326845049535200624466848543408089801928139990987709783125534001222172600951191157153246677333199409018356800640695811491329441048473076559645140015061092241794708582934116890650008840536288028350553027866536345325890747480757783887930944840820617999415967758982665873805689330040305234032953606068909599596142620474201989388730145576114612911595456476208533382101666981964618439055599436210970687315255545610234294556451343465630789109231637518735973691949501555315071520090136692379830387880490302886830900698464182200986577864706010981798210778584925757899107307135790925711701136100435163838071577665443882066965415287546019084605701986189014574131751411970269594069026208080904591889663423253279789628882633607783908395890419588041195800573219824035474002555625234192603966383835096005777959992577920076210608864057355243177952442643971089186051553194584879663143494637613270711757816851491684912863700319452476965777725208808451037317772040041639987853926367699180117005157852034914892920313584863236004234862655211785450745884616262641144498743191648352631425306749337270172441643820018523817472121319683190049415870161457891046513580100388087528880064814012832662971642804390558772032973165963096831001409836118968594086947137211174403985073184864751145318920580548579451775003780687173470803968847578766892959425307008626666038305878246273838961059844613804606123562921926303342814633329945433616687105071765562687852617914986748880113538968106468560718753532280889037977914369575468373490644643979627384217968833925478524623504772027648839407030998365462890814657616648118257529255818635701797047997870371552453339653985635004402978530591201714906411889170202213817672732321614496442497973671017734353997683003371768202209778422440474699970089767860375256867000356274793001358106055399893127097103336677645370193057288046061850250095683862319116669069608501709297324817516227612586209383302099880873123614812571890261881277491607423178670484327751984115854486508389542063369430735439886849920904457549421033795718792181121703958457167375169478384136369099691412465455219271694088584179434873204978536945781719803408807049309899911075044724787884203084984753743628605443273274655872063802563403890926077705776078787577281570797101941009594784329976299025397584518237411964557274119945882787059178783739473257536889996386046128458226253064080481613714113502958910828081969795492464631216571592783467780146618669043998542449119523084997188370584988747612886128562264750255545237821081133063687672422529148789908529640755276258657660458756605895796078034921682518857987855730171699358539628531899474202437853437232266188437505786466638348591656288580799897230547915473141918950180425648447996159640048161392746737803561585985506793993505384584316022583011005885260832244838001137149895831966035369372860552267538001410470935108875168811593847761108644317777521428503888604247892362569415585269965487480592382058243645017364568745808248314607023128491477019926625213415624473523497554504119940875675547106579602299310743084048998834576357702696410184480527632403514205156007939039784568742370010561591832477403244551671075888706052843300671318978777667856585403319324629119129469307333107636722028279465924821240926843524206660116602235064496021568838564587877969132759943204816434177660295517768815484954003602432493043537821062793302133259971484738185803409686208831521524610090441942439032451035818045407851479455052685057958146727203539760947360426867467012181389322232811301754212723773475469757530618946257851028666224829934319172202196733270268430062192116337661369168364205024874405648839575128085526006741613253255911006653362141283982576852880836287310365201397793420024174859164576777015891992813988901032841146145712888943667830726560854127998932807735172695614268776719491812718210256207734553595462466903944566123036770373337786003734675498789714258313064140609823510212120070079496210317153886670695434586228794015719680207482856334737947055436851823483430064753088127208199909129448993184447003465420873567047195312606188760873067579854738391519575106082503605597812069155817211914320814845416284274928550630182475074720165859039108612618172165694871080933602224559836339275343254230582398324619272933514626384261584139073561777449171244782895886161288136697874235784892967233391238282239860292534675576030327282718339436917768894863424647627353121013428365330181476448536668090081630721891096654407352021478390609048880087405480828161065795236669751159594581406706888969129580005193324230439897788714639959237939966993384520870378766481663253220080563961530401998444183335253749284269137820678806177757183321338110493899682174000373768990773768881082327767611220256837783429683424493540012218899317744081069074326090201244118363355653148367578090018935540000524601465137563018565147231217076283677010492386873670630133256202736437739890741877137923258797771988215729538225556524788488814601703106984099330943865301645355336173793355672909929063990988847669116338943703922604054113747918476062710306743566991437580995013854455895389236615847193800142289503180992762846635173535368584519334248907155797243004173022620271731207629999250146741086801973602445006686617095829263335929503387149751420139055177532262989709791231155448137744518237844077956909550455810944430709284103262636402127583415383256510237742005717822952570004949303188173453550364740684476875224203494967907086690198554818084737410318643337879163018198492769140847288986862371384428507440017310398353071452322790301148520610001225637695387151171301621532844094400737399016493585146116604453622434079314692030100927744197717526121088389424047419817621964212085298890796446294549767803633468762418206694389627286254211793601715417885267143670427489495323662693044971214672796465862780728500144009955161529356461970347712366608967890191541799073042818725229018223044672520098955601279824427811487532120643163988571694578850337978124724411571249577089902654683743262987735842656256870876198367589367890268583423024801719570366359045216353682913214988952113482084298297377096813573251291605452437778376645795719588569194524004947545222588822675516043474771535588329337682958745747535164425961894090266354645690153470966834525001258681075172640287911415065464464864459653109850523323772209126434489600509640967454786209137087206697248863149104975241809662839674136097935471196664007249133753514172636623457211744515427633273618963523333770405991838604069184185173699119116364666693070644700143810835677740940911595073903838121157591670444542701781759208103181416784289774370707439509046179796097937565995949650072446839522130755957927025089539194458506075265823297842470391341211285073221033187284264340383538452398531802513094827341955428887052052412136026907391173549285781826302560400023187821895844089209551283763844669585602932759867884427191410231849660664930626618381949949446504422521496802659987057328435134210034397037025733985567092229872910528551228901212100035068551431154915058854559128107881952714597223451793398300207206766079505946121950112672168824149126822959861844777937647558934753237739003516002004890564152135418542481715223246861624929306502217230573435780671708954586839984812455138840357785230414089162714800733248592886886663435510077396183350904496883824244874621120961173735967225597316773398658598807867111661633230474098612169897930513612193599093658883058356553137480888545313694871670752572563259933077862993771054603550883646367535030526139767238330391935584014600693816925858691656530906162098845808739053487659664948211801733601735531393584591471857695310410156203092321492094434054328351550600899822945711057083496878980051508934882127083163138799703632584905510313406482095834294307544914233634165387849340559982129293946845737311099159750921536054576829987190177328461294533435541265173117217097842916282737832179547282232093190399227225523255456839504126794409670278637298532677180666932084398482739102487525990568765018104904897449908341409013057403784623225282020391595013094671365827565956891121664503698923853835257258804165082795618572802335551394959763960346580149660438614890066566446299427603395424696149819345348132644142555820410393130336613355839388154500630430199263240173764478500198426442046322853552826120881712013575427550663142632932578828796459453215461199223379455779686521623850759892692682834408330946325005522259051470147953038583193103490675887043624613138704179055583086951063610642225173188895715690319929345271425083534588629665168517970813104481860578278115508227448717277977071638619806891142864497165002461684276442919481354011377288513592673544282247594609010451940149586093603075165800142681736785457447180150447415704182774434024664103951011388764402913284259121791679414490575988840471867748487218358057130453185192336989293252442815094014123525821932224193345469473988547321400502378270384928336138762085333461642943260004098275400738951090306022647960531216307505367304277784990756061983099680033237291696139467709460663336456321880422048525981410728802448976542937412879113929652552403008805360887792237432748884278834199877407649579413689910981810889649079241261544371333394877235062848061036688023686187219276466305907647940972321286585598474356192389682285985768277760660826244189313632388649174792185010297626277139394205205610042238014064703218654148192532744168103381897637894734311915008819634282255002598613141171427260747818911280830243536703186749789645553781774642230784817438604685618000969843368372260687138634271999917651376739626962719486537152414034287864397132182471756096070172163964683731296721947953344009387948088733085076366195055623883613202881688795601460303505553444533801824693304384710293514992907662882187579696871858359009423040499592489711971000705569138075411007337966601226793490371965676394677353822443367449642371176746099082713060612436666003375439374497708291929941083097763353909909362092197442002062861148030821436943469222253730967375007930288878075710805366725660266914244049466795998215044577918670407187112723038608811490135289637132916760868161409623532470619184405175740763593842193279211407426514527442430093780490399866809156454859040579303978489414334139524024576963130141769492524441832658129030486235364290209221464241193006959940332396562495898205647812582872894458123613030707061078633704168381274014378210039029205395659582337902717456965310274281947304584587410512849953210712839949853123027667185785733623403843757995665923036761023516917255909875642988317332834043289525146431858992111814220085478719731969697820340932124104624790357611833181217524652114791688163002406055724096975742897306780657633378254104079323375766490603288421694145370931277938243507609566246738911264803531852169838952830546160023172810868681772114646396365153386996053632788052572802461211113849706617124774510868736755360465566888421312647589490248674481029921356940666895827526952724615681890468677769857452011836442058345631480438359263203541223817040781977196285091859104184382408335128228665414004119050096613272879682743274973096035210512737167824096668707778165249919738484084347148073210332844143773792885476277676132901613455428374246242641825167644359986185373232974312932925580556519899060034332958561016112912211103339366758978347201944442932048921232255129570229786332578876689350463871244427146028029742621896154800196918385726106157436034731127473442801424007934027571489343535978863658790537496652896860886821955619987607026698085825354047806845109616002646676530585898711115720557066638572827300793433652545223244552282939271435890152758100770910285508663289637684272818607433722984021802619576927252156136089530291558448540500968390833765448963662888531969603125323639047341420270596380004331216163856838225256130646228374827296726302841086733054985414034173045953423571860502249024708489126354449006077632953443561912765423554971487668400695013964011629094727750608083256576411748157515420521755254385640552855337608360925929262627352292249716411720592283708267880164195054506160168042261272282582037176407510421967907014858212432404369567870876332298391673033824102364061693685730681140790749902208769421273695897418254911305161156949012390887273166336065637919168470772708936783853366678182906614598660077597756933549929599444681040594930056574511481775402369175947859746099878842413163293714962568881155167404389055116520250628436903047157623985254175788730022671775764433648829005066901040995578564353883842046116166707488012763552566899518553829244070002218545276711508549221282518437994215631095570138326249488101866138048324250712511607289182928165647549200380632785455557762001746230913620879165570205521393873940424550808571798719077158715149848638945525364776577516437352797271147516182748683655156234568673707677347833284186307730455820213392265014056008715472966290214969188568658669551566206767717930954803523503045173727192615468313246606740734150656173325280494852727518039447575653569550350977667930752507655037965245812525167398597781567323405375649108812554408959014087294761765062708023835907839343673414420197631882469114463260551698540244084191048383514007782562447196167766654581485215344275242261119624517670631727646330265698316795921169120815359455093110831357440996043569896689450626291840191598972451906555546961537042857774101052893569180847317729795805389815155068298311426146022708173777035635652905264886422563834706234820049906358276565995275292533764613281564092469827116809083473948032405560318304494557270878514253135569588899539692760130669672581269177631791566664835854063622861980781550755273418518774408940114990451532182687234088491913626705329152784511194088172567993677160649720312272740870717653806278572178139512294478930823576412679864127462502931412042539829922825590206510717995234778912547192386993863168264349557844473223849688912505740904461247735780176196829164772621951614935608649677068071963502622123495223106128571918005996418484349891251333157777370420752791225709951441726268142118082171104342216170465395854840704425718316143670045515862957012021175309812984226157457762348774658929912143884820891172770389899282549116097306839972712957081937819083389807153077688962720328455822283624572366067870124840644220572610870117731974837203231557894932722611263208191042316187317680802233787175390941109165996228822853976782985933099354285332616236483911177032613623036559397431608885598842377310228481248691224560727432489267142213853042427275912174333606075704396355988456930645137016418323352696768983901881072925781656093413578580961593199498656700219129480613740507489069392957825379082207483988718526150861536603357844655611165242410063933185482435253000582581707199938020850861379768655530398411508882880103066925380102231830812584723857985720197433467271765807405200080284940228080898138050688033887247906257607177563357785734937544470085981161403505753232447380440072149105132807218068682964670636288662617100078387682518480550855353960974646593351260379121574240063767657784107228296978791390129010237095194515148382430176184645517076335986586681539179316646139773675165983464934350921189768270160049011867669839268925732574863900145933504076949237598928997184072623405441294027148570024486617586157774838023240324161556453660357584853587836397933400506255687203261436990216325563716153788946221586464781475408568001131309054734278628397393125802722700157623962862382912292027937866518964678024973010113510205448098308125482541058646085171706390092749072544929213443187447056314881775014222623124306762542723773969678979796399082908182288968269320845975884312684225067300132719487092442304921142441297743138230763527467590421571918318404307405263790412696352908587379013172493970072469293858319994886299160142281094840899616043847191068066419274681846430168107434952421346401386389666372685009150907672451450671943062690489045920801942285936406557768109660433329030469165290218735990585508876316637192598926077958884830826225967663137001555291195481002734146804912194343699079079085452493389810248887599572969160119081674985562631372062444305166424126196970235541208025006228747983152411850041790904102843025731165140632412826919243972301002441249226697129134046490886942601728261265828955215944273699196337370788334576897340204705039720741781298542816996261536516886835211988247290788142378616290438914793735370795933574651513428934636148802065587783813589078707526174105149500012187765988813114676635225920318886189022830820841980142362306060101764475863344925831424218202261591504706746543397181005723115456393536738454097329444227678894723290744498715380840504345802296990925048271264961581001935721448147698194654650960044490423901387985096105660545772999183100892350122392538414672099335140136614577062832431421270915394982324716522903539583861032701990139986629986819510023056417887320496642955825011823217362342667237755998104761780567741899676847926452444224648180237017834279461294770303286017004927392134891745007149210540465026655442689062838301807262187677818848237605712974540830439078654175056208701801894688388331270394827775150502761273719089221139918059175138950109537129470005848579845958533212018760278243154261035905536571603620028415699175955120381227459382758040252143657749751720113090000542877349951753431371408140915512544741768805464785606805138364923472597869230572644327607114633436718570072153564225000518674524731691725416775031992083411941267303415268626659036293325959134257638313637975227347494047353395772717273467601366926938918304106914391876074609559631074079335784771783660816180763538075852415409492352412779801108320715706513230952263475088220762298094190910868915614664292249879840249227246425014469155160791844382417811364658199519544645952627980383548982439495045343611154960007390311351931756543703395948400365857574961141829211732837901680956357319101293362803597388398801882149535325168293575966211096916999711114075186399130165700649919292084364313883910221808407864611596114632471774139554680856786927815631776826096500534988822949728273864909585998205724719876917853056546756711864438011826981751543118729338270210630444104252839349340148910727112738723094924166248999426205130733665156650600734209439104545891426211195617892725723527680559923518214426289654292777681888074666433430782097595397235029826989154255370610436298612320639785927931523629600423207528534029559229149010752984697700133837365880454662085747544386975733791979927202020851775482849593945358941868033031187197307911095088181458836015748204313301515771775660362964536490408258856309241498823867305481439085112375944163158662929289319023751088375358822300407059569699390835570526847451484451613465995234537061361229534953352316019523535233912705073594123466132852802852105347158101832845310273127952364304570762294419260299921340340719014919627253800290357565467510921526649474693197097174589454111375124423703331978008482393352978279192458345080869137998636530240756511042117754494258791030659937381434982822616740709232053228286831599420401151217987016689157412363827438351446776544027393037896100678206625816517061573245176495500564219309753250982090205243724969246750865106130839466468403103677467893192703766195642060839670633626804285520362596344758541865078037912319022558399166460363849178991753626630515458908196731151264376845660087583075109315429739729290274587218905872341945768751403352351797639491473906980972263550688920915768756776797853559242185846358301952333504361828394437462723218114395027423623324703213736124455425797329391291197687814632430181852673004155280464762193953703595385896320094815288753900007492307359195448846409048492439893856460593844128200990297518096336320395483728525928702696977064713926639344098704883180382996756098529959249017310307794741872683437439414107128546006085623424150422294766392224964428874908222414610642565677050531387881859467448259826878824971250705413945709321961109383736874577456351208944574346232375726923810424632376101906431149530710102302564779685085361546121906520495300997245591634217897442994339511062112647968656557250783013916392347188763608400155001233005015222327117062067900429204465377639156136835703926256491300984952311049641838679043218697600066109155838486966543398402339415271557488673100162498537608356449568754898425481639823682946137074310263094448392580527575972961498665014061277842092173745039096525480398521753473208617132575587755355680238186058673077342915937148288129980450880540004167888496998327992426792623236739218939728844544600379863648583295784885940937398835458177963028457254632242026776421931282431552264468851882611571306760007633465707608026180563595930522480583345800915055967606260548913386438216419871342399743263914053615873943113696693558535459401416848903767909880629970345073200636468295807883261431655127292933217510880538024987186513185467852453541574389698367166234922836626142254220159770985213580592656806451155083171538153890788453222659265096104094948264816886929616042318114533799030150445645816667936138584054417409260953178487904644744923504617557255511381871821161482758309497551587174288916973685048066826329652255968238592378203827678372276997215931238441228681311560668627192157214467618261188868734864210910347898084727482230004285270788349928811683969102495653517014965512556365590562567263685684275461811783448855612166941752681861414300455998446986284122012071832751767489332485971025766008225959231165916157199652874607054841281570155263894617132863429552433523196618617160788446769347627565921133514583477108040613551870371967058654520456367320060804209597043090753165485316358521033552616090957675863119478271598901192853509201895793503586388945057573400372698004579432846954041656076680719458588622815364130377200309306909990970509900379457973665962673722381223073515166774215896162755723839947413837021286288525914341391949476995166618025720402994788864111265079715696448808620881480544549452995615846434690044765334383365116422642896259326308836384487907486260939480261366364260776398811620001786329877761698969684978115564605804755122631106996096181083113104306981609470555526256288635036649668263916744133036563437156981037802810011895285229448810641148304670018533383493918448066156399924844309552546736371545580106955237278164363822887906367519784560461907878315839604457745941326446866430834317676518253735572258343932688009530623706254015816969722991883039861130240850865895122678008810199297978922215338268016933609560257435794138455426167646450485954485969396653958505042358456373806625744119850142828382179598643117588118311683682609861202039534940304901483292442825862130734726370754420446695107183930318838192464036389531591362772426163212906344255675148937389986093899375302994674884895407882881134374646825091213880721446662317164415852247700223302677980522688838460780087329706639090950504772421399866662275283296512545672911551082108690134789880897681596345964145537615977972724117782867882908837664927395330599201137600357563671833809880197284211686148058916397968164786864447816593404721674815167161231691124712996580780740534764571258484236715125631465190054730548430156087295900396354490618784626788461860955041088733729109632883984249015312879211331200756043125809057213739815283599716294632414985496587661765717701151093616664098925167781831293715250490947788118546267750103747356733780638370850466081099182649860267028887975608246837169062805636369210991128434693808419899516671022472347503095010644510767071010247797057416316991033624931661250686186746373584617103080585464212140290602374225011196542913902869496145779810186597844369241221111246709338254112822894416623427790434283297886701218712861763500668653659951879951450877011355906477174927496818403085567273748172462019503265267860565199144994598253197273228087252191969871279342188672136471425095755556242286876807080383351047872525356049340070165591926716199819202221779092358329673221542472799488251179982900922379268651234291558583384573764453599479947828596304328103244002021814094414939371889212609074401525718842191446371519067044689767403934174775405968681916108860616115158305450460842456175085831406992588261072618092616293800498897905591699429167124572782788411243292102522666100345074297648180938668912434035688796958635092490809426889047148344470540803432437836260143133724449933992247520370629923014095212632069578514816083942445812291843562445566521376054071537332612877951468822081057473614335245375386197427551696592225965959617703439885082089284557427586647552597355792813318448305674411560644013596727458501597618141452898767369691383141681921120422100730342470791335392835526600036823171854231074286653859485631927119039299697489191854809589012586636297646824492620346387233540619355498697695389567963142502567971299716871348863729600067581708252110053682910086466937664640917311324271723766026152650612886733518460642008851449079789976664308655899505009485711737168380582519511985322823352093769200789763976303177570247427197876699415529439933288784065389480798579646595471889205051550537705907887576230268352148859298523359644760144737448841490857848008141969349623903611265997979630032284035020435554085791724510559396639996523119351060620264674347862637819256907872815442076889554113817375239780424567034888923660583928203865188405050112877996808559034757769590479010421302364880741194425414781804707150256028803110542419110401407204587922520048227390848142404337101638859497325970443534691583380411206635260554390465624985790278316637762740455745594484293827096521934423651613176320736375393038575166025025904736772061559987659477333696217080681317445158809807219222156273838332324327605930172511875508633156847368621155951276692424236170114522527628549548606485112583589099873382737225525673575540416113921889106971984488109348324059191874122067518863636040107290260480261947642857804089265738132367327912695529430058071526371721567887007306604324302909621921062004136199059504860099232156486942553557513682703476372991653427054738351033541383701181350938815021001019006951990264784801422024410162462122852835851753299524196938334250218019419178061634489595568864615950892577895214999195240977321584275308548915802043054583290004335790709377237587889868589708199496653299748026670959861834361983023340582342579401272253087680293234457872041753473967749573397422998075542920212368505947139909588282616461827824120667865760891773983978493933730120304948261566932080750552143948358469980486272666713253708082468375790381027392380206802488319637502289291941994719770886558681587345042808702945265559740678105638869438776593706535101022790295555114673956141097273143850606449742596153965908313024369820227793615595986084324071621028536030836036180632309635666740403939289629392722571401898563839202200054318255205478859878985040731052629262023578572685845049599657200461249856104181435852816787967477823188603959421500500573458600202305649149310951846097875144496038280558771615198187442112515890730386636735454359172972128303231675527873652966633394639815494120448593429710696874112721788439080415567440840741111580827216047058982992504163399815780642047292044525170515254593738404528609842544226792269329544375016014722066676976150320734141919700285438120448859690085833012394747951155751403615553755086167687333682615811649350366293022898691832196622296261173771664363058028926230843875450542813500426003455424996932509990938864007050026453917195908989336710117249597060108684205088480348244560722789889399197603118316428755752685918252490623007240964969347751193033678116600815924494773676720903488995010545112419153076237838794993526318382296024453153268362572561348752217330267771952076873379350300189021104973674366217446833971720587035289813831618383421949507488791105722596457413339117146463017184413880800091553842357571900825521349717918251199586088964686812289003003853278579485933885231154147999781711175102595247044379798417330080862773292828369182894683796111205859820657436399661560856580966545070924602841482728903165572232578220369604840169645378867704744439064496615255487361826533973935828021609413895922543223919683560704860786760909071629868297152573617253273428698587866855284478663280032096506132748779536216026872381064642713376881625505233917391803901946348979074755941883559776650760895698632439789479796725943126392327532750893434339325272613111205442797465751070762623977298399791346343696632063623627517423463537629000675525131024976354746071717481488583655283293508074571339088935809145584169669518368622694329694319103674041869642007637424954678234748377631107952664016334829688876077450999870180750427070028737804311809006400370069643313919259147361613003414408450374414041636829752334023776588923917960627338784351114813078889330871277405639813767113668652698983470722173503644139421426675550633033786227117946818618665893515409979292423021726722034500253040427030701428559654358693228283782572167503482759165738434322024860240615169848555242063336911912235439373695672948604159406866937093839111927195377917889061645305340306759025614462312966710208393512119228498794471026906590107827466417139398406275187053688857842423101148838496857563762286603412649665056109824003307050693370346217960806124171821625361138857157591545377103641082174096093355601418192737887710174884840029521198062865753081921098473044927209097414029645577854574970384956907856932114960862062912453862465230026482083978938788219048264524651074973724487204627408099995248715997067842015134048203681897225759871329443018834814562596120150044343262747983052817193754536034003370928798016073725374903378626568197100670735828055484722730990487915557510134233837747963980222625423396521215450562780845122928236846990998601004267714529701951418729124766082378426120987226751090039072479166247348988665415319742988879951050207805206757585174715486352891323370157700827387166391615340059552027878661910620593950966109306554769137448671465157306318759564063956134380206559309308576136199677601249308798600749490315997188024223083740227475898854731212977255425329626207872704088262477149639747111800564963635096492354035168523582784618439020399604646973850173807697541737468814131284547919793746014659398057147057109622136505262392694403408976522422741665723353537189479015831030217598377019971599848491313122288322929158151184029564767974663089143484158401884066895413468024558518143501997140638774295470388542196669089192000596269577248566871852944578530474835613435683816568899568444506405298846984348683500553707670636218589972460018283962154037754680805761465217635394770388261132760024326961406817248041595659893575222293899079225313510150390645318241408121630855066174931604410444039207324481292867141785074849905578720107326786727446591463079865600593787449661557102206841740970618256375983590522012864576700162378726010056283439834662279223210662068992737148746914055767083224113834969495820707655188201919576055019880025121415434991866419433718946195754499389296763022537051001395921322903213169327449846620369666363692509146769100482709130628668912287496770094805193879006653695567873695119563621362995006271843232186067287137771989723809867525425093026679281221728379914746513258553009845461010070242554190590344718149903968942772363950986542961508028645693210664364674243986413017482634995350211042819973744647778315887089326104574626794182812344789274068935415528432411720240631769100805543888102683324166974833654178262242765603008853132823500500544259959915674384561796391468960661302203738566985348457181268862139660094422852124810661514138591675758912869914471066948339399993063350410612805328590085177547549602414012838483544154558891526728993237521570664176399851811929027405711838562553505755843160435578147839483985990655960244725855411485156248804418229791002792062001941237163609548106164939893475113202977276711133029668846946526436282390197788150405629764713945564714590701109017757444590874397315591980355813034310715444196879560311753100196586542875677746865729045197335165644202142620986620438756162000526043852730207544532136744251944122804052995411160950595667065057002426217038682751602587656697855802315008142636253773433120915315918486423942539760203191424533638904325590346941814659150799197306288088763712682821324756459901728658235598597307019098427856054938188296630928471353923297559739535835327775986750710690537944963116910603404578712821390025092554002989371017674494937132599510946881152838070253606602423832423382219511374415737423908452480178461354292300383540171224056553670732819388843679648481372221987842059414300143291738687501647458043710374262819108872297568866006803559489063004662538781996419713585683963640413876952057018870786107491836974492270714400032817959068722073897386875917981268572624903985663155340957512337592639841497889273137376569128235621758488177264160835690090554782800012769714758466553323076306604232784836071382945516558019332498751772404963900942626329189705008894574890872015559406519089976030767220661802651863521316813338995528774183905002729004775094264561704065283504089866810315941964638925474374135610256903064464644270383063287240278593472227163779565225851602609548612222639087030887253917201329094096822303503425449726330437304187056275101869445414727426511399271885026287366839086551676591345130050719506632243205877451911127368114003970773154817649394166125169998147901690874538515635307735635559671829118477100321745127014990095168183860263901429277450727224850689431054234903182162604102774688138445355882159099118122904790903288942322567205491803768034752547325469055064323514321953978961048678492728472934828978737507397325932265132919670567036678734875313888345885142845566051312014502135060125706485186986323848751177080261057121122699303456466472722174801076703834946765758340865359016398407202325264825682711594176656955320423265114261965043980079474526285642604569495057766592258981144474732155738119213882855516446594426151447390370923646710084328280395295653505400959383413221513332515432857103787522837876289586584750428144840472485515615055092632194178310112608086726995789958051704532451992125818488367715957812681937157545713509571943647948050862660728743021207868131042230804129307907326110227327012898400133942185595398241534411066870349258334975570114933942324553322822985357332186777387717865792108715465043026809753063580126178215357068520545497649311693041187613990724347044909451624100477225242753667304996905304349481135579805625466586663193295571122352766980477261991231300519826799574640424292725908771487074103578518209618860943085523290680865601274596913342881519482969871383352990752331732251047560041983210647458432387932402569834672665096947136634413060539054203416971143156906577429052062815497943489658516180033988050764863801748772856083526931213196582462185386732151016902891127994956417988815036734709009995651356593188097165588433571114825728305951219189968446112041810381655544909238919364001910702297924550728933513864356411709837158250549968226970522410136865927012460499637044226785168158530588590453591963894744985018753133152330399877047677481547108514525101310679917084137279803963380482749902183157320758751376267460226315732636239425649862135958618441973135985520529108771635325185471324875167031385605449296167125602210534528259878747514208497904760520925258653549426319247440014645183946867175874762712854180809495811093679753375500683904158253113854759686367447746604846677155794542206537266774603816694782730578866471995753253072664486012630214899217602737406802450334202499665554928427520817711775087467351399253629766488555218801567931033619442455207825105607619557026583739032939440898160386519439786083032651081203237951474105422443887560082709701829713685393260115978335252572605489316943324324777898672506907930272487565293240905734199333664778400496203497571947890667354566625147269999809553669126579443620445220472099043275350680762205553247844673204198199910993322934216861359699323200506101589493199657955374217267718107448972266442322469952809316844229030145582592082077122964250084539918368827646452769674674292739124979024905309365761558835548648699626611085650160020093784013075225020511898391121009587246517929860248010376224777837893613408727111817387177626166078640210616638208946909931126547037705858610908547547687407847622704988778253900383504471012857688969352465221805187523310557587611562686028045762815460280429567762549430052391777915548494698512937746971375458885877322600264705864791660710932901201227602509468373863048863518327107330188337330704605245914339759992934708000220919140675917212042195583753602783389260811027253882076061513297870617194444590461546522121048951385131344143777274766528280587798706789737011049004630644775490995189439713614351242140891317902227264464829006051746841868929297584398197263770884798918833326928287733366104001155699620422164635353240331366473186362665142999231799152425054685282356200350580320924978022142843430606912210257738014466907535663703411229035199535791815541725204808694724209962483424128800706934012251779074200094542248828257986028956444469217221811585325352016223753507448087663778373242215710919366420374849411713721848193568214156535386100941378261592563739302360896553159186482939587804193947188675267580515647942119426259517935860732184239730296578062097106482581268747543537927924863643042617066001119211587158035630087673658234197038201728830463068807254691813001805579098168679290631150285274753695837760877071953376434473549441034458282099607685856114027317580614926343253126286198486510284170936077127326709620224964251624913224362337274804937535691234584927939379847637935360491657362703082290251800997830280554098720645778881381244017334872751013459828130947722148295095560016571125392796936091950189205036911789321078067455431060149226836607966029493013375673443070122846425065372597126709263778269943468832665270074754321803445046801126129717377392131871336165638507699196890543417876717810802933845219682647488767012314832012463970798552162085306090609660140010436521555068034453750469146640469085970429121132516556603668047754853505248436078941338367033857322170364750042882962023952187391587515463215281402213383849215260299699073704069987655672296682321430742040955835407572155008765457859072547173473092243549113728922773536650246725774920922129266911986308496158640068838320867813700860172815558789325980609304208735687961952228788199462349037048542935681396603960405592090098496890639540119675029414701368745634131110303547133318421086993450393338237310869072808565946891915266527315349647493086171604784572651976917520529165386044003056646403756473783463930373021281165688879700779230272021792784357214325317854549242183533274035557509983331645614654440101607267962795447402623137391031202485419340496514035769806976804491397909453923310979754452944432386194339804237373882838319206520840159398540360644317478831175084119029020036850495202236254879804003558326194343116442438058399822749048391360792526060645203009263372998318842344024923643205819189257216317120040885040215020485299520247098178700885900285549458815190334271881233886101141739739492655477380643377373386838593409636495990808821836422765518062891344510895747604734280673707544459140927019789437605513371706862193600031728441974863455754867187890862367957393942125619231723202703574593668991969906497406316978010277414078229164968700651448494932531747452536687155796004965467318794625351299768739984254381391397547574625794341612343252683337598511560196783818508521184893120460531190921161907189809000507306087279312113466823954254964165651310454496090540469651876764540828580419337424700014142524801607072469686169289488945846894701564898978501811382376635402447175917478413978301394235979239276166755435921019824825819821987797722480975105607544767990374167254605637820895773155544492368305404161869706301699095876462336588672652186222204729257568314367122275213384879036296531196333466280943747579114143688962985478719977469062341096522705128797588950662302163485659500826722037803899661096178453552838124110261665153076698024216918670094203525271853222766317880989568894607601146435377150661591880495269550581826885438254147037872834452217837565206998385120012049267640509958511306904985853384973603952764701890020036493400264587363808231082131016659427273878285430602650538303340214773294865703134322786497330406555933364771592126088002185479381418943844570338866638002580870147056034581685445495573369553577324847170689798090521993386579510163636006034395171982249474740783120053718807331724117651471790170933897128709786547796103027193911072432262426410627942332380533703883374172924349423198571316545815994590143831650396651781223278321939801179714087677831467497858418561103737165057571531650564882070503628228923882592823575930103712000676335058888325396203423419294680172889335411388052290077740480585152634363706310208451565108692967127973186211440329210169853964523559254541670127667621543298003152611844047308305254409968829357617287744191520889219622151358206322977691205765055222779833610497696515770923325397161715843449156276697269041923043519895695323630184782349628759589870507788580282420214730631125027614646066926004407884873741087259758185787781085801422780820373949475285592929806239567110018135705855782121601732004985097852637380862257919228514329745628156409814631302060039746875214369996669909293380226207020408585707676323854024399933986401896413609277536428554383410552339493668910709483289189634425492690312731181376583919656807909417673080752565222199771416129183889174710210727970250298568131242238422684856569991892437119951127296352454378181807328720028460118359665748723724550025488014652400065324965657657585568848997723469170944055393231939694545125672459764546609136299477539579187566589801283486245789524168070269804526197445724671987473835112510390636312131927672877921872260042012554562392968416461757982571932621044592783184298719293151130682981231751596315883356701852024409022294308714152434778987384690919883340973930009986741432832347463272437190297431367352536127754840779451347116782309804206152806734105772434492983168641074291762636937867665723897651985478920089277199177939500775009426317913358474073812871897781753643846159795917831964240583235726093843362087623162297282621929954100337259611476385871141543367611646102722955047644441955076393317746648349066152238708347572107952807871099053939070966868123124972485216343805708332458770474106221492287954523971054459249617158705954088819369129009502474686348578421545969424034751320352077691462142843959035930278735023388004981673627657327292441003968108628283114409196996180254422088996247462431272274848390265007282683505840032301276565929253152634182714040911096595163319370516247571630794082127445363637818898569369110558899318207446389594102095186766905182317315176086901322468386275033885691861556587109809249511047860997625550975204693470720017094112330385096231277338939729936142585201414995356698441169278532678743403136570369047746018663382415155772831718495793899503338320532016313165437391354504409428798135114560405422568899202823273946433506349043660489273714906912790919472999326999141969416199047147452628477891886748972237376627239474897819830720353485610660458932582273659503861288521427182168799149716295869143135114724154069454316454877457984435661515429399849064020883749372490255719043749143814544147608357983982476695058092750291933066848551267711876240417275527282106273147333912414765583653549602007583795700479753053238621074489522945797490409764942887513080853928883257527737946205200421236744688894367430558930939792240272633696130678429121658576492092984539304325778285602994696700527395792985596475104793560752552582592459500046334802647745502405376121049266156708084166168146634456818069427203122379466342259369137999427193959277762305837001375955474922555911955729588912998359216268035386130508144381743156477440605253074492270040136674175777073220239252937793070531109061836827157753536120588578119378155670258597855353318831656376385292324961633236104392288595123015593391237670066701859043229996327435882549656229938458833125126404045292718086735708217830280194939415334417226064045303448350659594391426634017222336567093208291098807981198157405851123680169487695915190517714006031094646543929190430766370569914315258759044933458523382233037406768509940121143522923861179702388235001746643813520349361712904855968215178681188030937726175254894854317993592441398683302600902832283592999249273510936807250324657789219759643991989548889923772044024933617256882854478857490815075620203423131528976776604263644002201555481207837947970333401237128165754928046366132375563464806628266566974548334712359746388231433660674004162259245452927627163782259945811775184420719776686831723658446339885141919725399440455870272525497623499445990992944191065849016020709010996780371260661936188546792298983066224711784979565255526753984164754327314814418408096047732162217492172189997369446583895846711417292286596097962476300255584367078956834325641205986328358145514820031666056592773981633588386996091713883722000476840167199680696900219913515730519204335092426498080532545241930475059977361909314095984649614032395593781515365939542982328795920910421562744763003364071047049846969361889325347517150350659845859655036328962372375373464775588724468408362406843237338517649285616233861180852537892993250309597259029951135574374200819166185381456437866196420657124085063478133739031841094605311411657808068625543461701961037168795777725937205607225884865792800082774643272377950011174951625303538270315651784534517157121179460427587511613261514964800750929618049457046076408167370862730884029946051358067689240692070104363738449945854866949135660777474511725450645950840788832817396418267250651362309851046709794408202027588907740996383467710205419879017479068247598985198888570583321014144374254274846296979369168042171187147767197505982628889637905043976650349527279910403732235957774968992219685776462471297675420818182324404059919214999626492612921055962620800411294875804349854380750720237963860714156833136730188339514522935691949185229253978588906381424890409134724624350982747280078758077853424757871268875582569156997798801135413953169460023942971395915474459252263418028584346367645739389238807654327001229390372605877986274478569690572297949111478640587229614065594165707842344041472160392368480083662839202359412290559646258802513184092546844838960418435213756939149119818352028023199470563834292706813621957455158749214894119609577528336465824455317542128537231386005391750157442422564981763922356579922682406372962536721028399048895015776630829765724013627039238412890254533903853574851822775110649009197037447157290908524819441585872492219610942391242738220159555246758182552285912336960238599063223769518202074306257216858225409470917933720745249087744582156947039378766403589900072261363434724672860963087245034833587766021503651589646256023160300650248183175973115585303032753494540226949219500440964433038272194564213014083939221750975468055219936019301330375641539168896704544853223833400385563781847850395324273475876120349117930773599470589605521005166901336263013273629547157799539532887686089664692244815953717380339568342256951967088109441559797000990505742737096112652776642705799528291876726852326354055336695041303472600453963605478710259948419882019132487369681494944383409945060422490529847889145638624088116245354765077344471827356575045830156693877900833133731869497796171835970745766025910679848963219181254172181911247499654179592615960972614557191020800531449377119521550554231805398809965371423841695394399012242477240849074635896050207891802422614805856014246990197775803787548736495082253075320719799997405886594599801404045672652087760825358004747217156921129652740807419292361519676416134891437141038487436143700326418687183465349881748171709902035274177455056168311213410973373600601041270081154459649786921145264026450847502995063952504040750268407620335124940997945813611043046680761634951189695799302916480524516316261466279938944066435815953776120878475184698693074011199995659696832750178712114892375184222624289974981548544573283822508167077006547828394125863502689874921485687506436679647968060895216879464317647783991706784220762780505693492492641337399590742664379473552842785867171859131418011578408121541405022887798656313444640331011602706442959716754044670430697772038320971606518267890333483613054180930644240683277567033153988313341860098232902490520189907584418740300116336858111612471681311051377988894300067197627314362878201906769039499584898170853892366814422481444260885830434219184461778747706664812670093856076340579813677896147058258740466684057027820856206907501172717458809675723823708396825541981246035126556391416767754931333765289760685377615378899138008864192702427693154520718590399125324809169435821062517837491877499564499748108310731649836275516096117164039213480828318812712935270108814132818922560004073526582660651823536665890296886096811199107377274282580847110065867531849216667467050135128963157129792880674921837747397813675256429272509839400536424587474329784761535235016421754875467025253991878103557842808761747295058066703298889296888179727510648864166374287969783697033189604500058661249176028783120391862850722275343094635734488869036492857896438636611067656142002699471125809686415443277178177073967170633728295117782110259592854359784840234897079961488067610271479250071262045103807612263026941593243780450800393401792366599126245674464997309000500946266271416602370076115319840697047420641142135801332679525356926606714339848907741604086926757178858181406211396992759052842957463640137744463019362730745488450469174281037234063728986159184055802274751406401035282002626342491487012814043625295523997594184172971482985598673081767346637869145555384445074378789452981838137414961899314550449216461026033865586565666703852374683918199251449479187576800940117229008441101185616562488628438761772050065815851662095372665020938019403448913526029728205342798951370709487377441688998290439375226534721386826077470433319398735809511541135840714135782506924452051601713873614523538304180493855763860767529249047243475340420168276498205339445952573372258119171694099499624601929785435716120254356827396681809629391616280744090448874569982115204175189414358168199596223894897662314787021261939849526888400778312153467928816416387555859057930732550586810570027505982095868839110308685593261691892440244285915631000186409817792371472562374330916848162486412444649562014920711002783891131210983466658785053125723572265721916672137802930253872453785491732826395013499502523208372495813635594384202269784663367350911286651549986201005069927784243101743959490631114159608345893981821549397415527941754650550770374401352292418398104404890892481120230674703971103184445231353485932242180415926906162304422957456039367295542052752003421407510894129439428349753249148439245774276396711420205390339582208711067470521563190801940456415394802879994286456746062045834344126399206555777891114330212183966348772876009681969541871660636489018998308574805715210199707900372415902522751077479805857604806936172882313436020716987656047282345201149856127284085592570541749588123225262353539437245371569024093674650864320023626942493318177837166801889153943384497007747851255461193501083153064602619413571198820480070111938233525385317202769333321680719886543595213619617252124679745171149701889989005991633015674430272854643970672966172550931795555340134249457761212707252640856795023215584832316836031113755362048155891831991470745766297650708384002750759470735853315579031983894819625618038837193345587386676244990143878390047960065884232929886266504615023952867226791603440472456658281904497028255932020823383653122187088793497629337642294388680720271456156081806300130396400031799250843602131117730858902316269176340917834065971641819829316305836800916016549204336446610754064408907514423989105403740216329129243086121642054835126076918758144987405985137974530764242269405725721298881073276430338434745771814825071892024740516684422945453001095430626872378203308028505821931488837019732017924974705022645034417353429673782071396745848041542072608751045848418725458004682688335837810883440097590962120350088907487137589080698295173606537407744205287020987480997634583411502865435324251980665544486514683699444048555801457823464905442918198944025590401157715194674766226192460137106956278607485790780209297813766422616662112298821532595609655789232938509215690648724929867764315479732693242979096415442215323939029917873218964331680434274257847237851782303073532430867308883980124194730511984385932925845339358443747788369593025554164422078488856930468501251873476408225879456333900478264107512588671256904552367609211052846659956987753004512508924455387086267374236836698747126237057972007890464672487598859720532459944783811488101139907945752260293782243761240972663760175752630582555373656762220942918963642086227376821804505992524833315231512710506876193473294610713751287377863830284427074971854840916054394759203566278022252863910760494090786100735309162005159211765330920127305946276704022637415962336802429566942598423309726690094234974192302597617529622820860939898344593562825454765128405528671544079698353358782608228656131987994405041492433149677672926248859844558821896610957457341577697506701310804519140739115357731396243573847381230788608283576032405195493313003757168212756670550285140749649247985607673068211835276577146159591497113185575803032727261218881425993285390712790232453863438559733038606980279727741813674957636645498730357312714388907833378401657351088068009324558760980747417989491836111999981450431106526908508137227462903371870277664031694908328775476148516356298615721741169817253852525379146824449120204078500590182474269089476412910035549670166486675837520913556011315095386095144669682235084097080370793535081127613546692254188386103077181513309755961398986588346456084126216128912898043805566319205448742303806463359588670252250840861721613142276482452018550692454022523492037339927630538054839587413524575841085854470524970701027332589965027986116873719573094009471873171115741231911065743752060878881798615350838458483246943095449642707671858175686092985961422874379337441319573073076423694293263594537593629207295858636464845948661883524115305381881861161989510232008103346750985646779108496419200899205947187840114111304351076216244381068078887022652704507226699955342146325617209922471459004062471943628530688457561899000787631202922075963366177062752301401927016740699757650565372032615012950284499068070673510358714899867644002170060504968715220736616919710796881380080591750235155457850602457503761335914040163548754168482873697178416280946426337509635627229782246074197384914907313711281190641515471776142906513708425544643730182530548018460551249619654807473148960242626337281826864932605834605133346113167664226346768049638731500752699698208163254152411773596487562270327777721097853437479313645427239361022489332863906902169406343306345199581162826735995318528492005467632636963631679583564807881094509380845296995834800309250009206094799382881038060597882857966159126481078856711167769504017872982243742155994440990583750761599151891299946214731408057306148095548313801121224810070113562261087938200641136461187568049689094477358502031171216393214501063008197650718791588978240217057844528193059693930776090598508202803856197934733346397716710001823871167964376032704357384731020341158730705700238427754563803497138940935734958830568727470146794050959083995096688485287066952657710885432057006031820514657906094034554511881127003656368377481833283854443721784709699813195069338385001170109290640999236101072967689889015866062807815203832860523417582087167935226217039146699470630338320684738373354892092041192808350973124679162322852319181177811523304961146862579674278650805686382369129176949762452336660913891610834505483487485741205071003081352118840217523985259563046866573801893081774575227441019163977127077017204634273283135671306253666288887091929246270206497560136904389154772323038417931357135967859423909896739927800480605087188802388660510382275774629508360488329524573210099282532313632247651576410738442186265028954877098891021057343973860094264135937992628774832610059041843213256932582748267007986689209274401450524630971751989161792336983756384022692470956195068401245022376803056561229040198064247921916512916240653089366242534926214296586303235705755559464149397662870183970633907676023375014504285401532677247503353699663264499339883157398807205120936060469929328708670218879333732107716405464133376751130104369801642984883133607172008077934931429843283542956598785709949634694846312795135125963098493402028118889767415988011393297966170016890138676958698301074308135604676549690666800382968663827616421313585337333723603711222882094879219912069294596802296094937869511450818999286456062790131965927684420354573803090384315912637166206224674673654196611444943253638054540393965041884074924868214301849716603050869163586311330415375598931678042898557575993957349236902472133096107114215243887971443496794719231598756892587813895364440426900964357556040059976832177101377611517556867733727911857255923562925436928522416455493320097404472210757173374931714300183963909069376055739894001945670760309376031746026708089228866796961723554759233873071641851513096922917801210571730517076780705983498970067298921920973979915741450863584442423178800915798605732649552912956366374953339483842767458913511170228662146182932715642771580376369816488255949450197805860648533996283435029739792705908407397926271719018734050886535405923032210452122764427228580400015158066821256879360030331005513938021709195446469759883082752347301222115337950516174346332625688563281011125163284714272788289070299763157859814601279652095433411505754782554777434813533595216307906566694007425444159229803398970128203704769798123292978569810326792488981573454551927982443651600889588814351625128398317011575766504029650036716308602928618210579135287645861508446441815225038291656410756453431141406807597908875641105597327863370912649860570083253497333856163927808834009047353481828056042587522364446398144519321180400872516858103851295664881252158370646225557819131274590568310166392961416628653096176741867310901748974536908844678687811679732577694389014386077270681879976754203732474764131708887500528681732380841824941921598427293658331119314421804612440125236690831094386444229204862089870719619940229234641953723081121456735037081919043361619004317154749264688623163726495333207151649833634993354789563165823189899761964357945943186324645150790683697463271459492227456055863251365408166962845604328476351719806272031061017328767185029152539441468722222665742318174207673506815886116919502697617276494058098452250486872664242609060726033224993011227054058916486278610386131383277642531047679260113877889145819727738218723541975638379267260905837281187956250830769186430395760086029177805764900170159474142895446425969896395271365795209239786733273763681868966723023863868277419360826460335603865453630835529359817349836880212935791477926953866353655545635778814830916827823824501793833206313389266387062262923989045603582531284836894457622347316484149474721536841709651057889854378451130890828695567491638380546567766047701319789297791791737957398099598656544905838505454516249995070388371126610270999265040847381414873412633276978250206005277564569422741559664670607651629535176540976496452388973089683706280924042230940990494756495747319233032972299633538673373101477644874625409044500670638472817210113559284830447096705029566125895433566428317171117369320422902915054802298639519499273663549286258764409424115158051040945008965755628280593690795254391669496061766379664119403080159595709490292682939283677027691639838631222213923515680184415460008159322897454124040545863846079214031267376290486839819062559588740184237693517532915493381710582384303512270532410575292508881982894683073055377782336716806463794797290860920736705560412293063127948757069667065498747810874852270323466547041405602131492284336499787836164526857918174098558506524029918429548257512809816483444495496861524498236001119379217451608246726151402158170220078841604907794015801395320807672532545592999825697096184585586834485218666357892727378715494641761870669860685887128546707101770769321358082305074864341991129915530929711527413917415183042109751964870444772259651684992211134752344168213578557045320839670163768101803180607089756711374024754529042389009221534223965859750508853266138316400588192107038948930835247176496779647258922333868020773883544930159978058864187877237065527382622381974598983527263858937259410144648630678056877212789377730578448632390367611635428092882238190028445747552178527517946327426929142560846674797393414165196390854201195647349631617582149473203007207803147832242163236842936801922932185836800900616208132203222064719245257154358702246676036410871465436998375202627884592019556674794921291241729739477877863005346204716603849045843217543829534651424132404445752026597440948287927955061438910894839465999775866887019580232352804761615954564607118775218495137486010507259623616897460871140643210583979819806432828125601267839681887937174661488343347169812065934237694707718569004913164568804234822952868948763719422755684951769220563301910423159514729879278923945760476705322796974272028161160381374395920142611581040133289535221411240836876372340832652163323289960309136276212524127354578510939680784936311499082972950957785486612669397851666879213457504420913453458618600306886643485619741416536862464813574886878294640247195760805085948292525387116502135976962633423771882179455018488947360831530587706845560289104199631541119884837511021957701080730145616366173365860595611449363994168672638168627996008548772871282513012543421524454019894040268740132875669904395871441541351059955575791019733221492819218457969766275433682212422477243664949392101181030598819999902936349644327277886490815052245755038162135099350046885904232147285092875744914203554338767515813390779474813539359311440437413225224663378558789749742371024159665978507327000755572557510461953805643412488833134052799400448962049954438793060835624126149105140253696763455710542517124176234499044565958365357659450525130234529525873630982504205516860175579504038911662678986374752488313923221681700622754356756884703427644733027509627639537727679030470019554037731914935496857493211087402607861984358656654749629253034489001712522065244978229328435480676585306656875433515243871239348266333947770333255065994813430175376734508860947239466608321804737772661636572784159500289390458382054094402243333917228618891691158184125632848156947696326668726971904247698176065447642211336445733279638786583171140632024931220254239188851306526549217733750746692758171309241510787689286844440908798184107808571415796947258803732337537107607309947065886408182273180203291789795609471962603838306455700639307393382389964840465899643228871806903689195077741096502641201679113613143008351269332097656085233095392799612409754375306572198466675869915781080897137802049618019502123047384179811471943707391637713516019969399083658239271919927090601818116079831728264907498606161749718378831227664313892509816754582612062854833984275174502470658985055057458121739794424150283250058849111393747803893746973142930839193595199502529799317152882037252011662295621263753759002591936996583496310630969660455750751385188791786526480167432543943531903649339894601621116989603930350695061996436947984515289578211617359256472313810404430585841129040236386980125493792360872160886861640007681814057710235639432012053217144361757096947725130468899378091579133176538798083800409818452362547472668530006758644491029696499109763112081786573659891662315819459498651459639722936189927180135897754358289507568937721945760974658212951432687104266551576197178904250316460884867404903281310208985998149878626344393469765757576051275729482340664437559394816239109073043889851465605978226645409578085955081507709165832376381123025100267598927387794129520848424890257873189532014900028531619451697165750008564709672006628523993154744541969576929597143460815922151604029025835786560971814733423593623974153819832019499762659102794021072837624383880889216722865486742239795781963552914168226279944246777977961796015664036064034011443067256303627869552252009349639826364763499339341789748406410870630430763214373663328175621667637551924913025207971334399792834448433679938229020950339988521801663536251486426179252407455238627209785295667256525720044817869808743752423226575210978062210798262307681915934537430764319267582598866590666343171809999699902255798076321496375664650643310148197320740309363177490002932498055021148974753571987274962765921575370806321689921583036781327048793975145023793791443438274734567708094004141520064228841129300140987480213888762839053527262869271918246746219631047406170318857876548667607287628242111111531930547526263259347306461276975573495273310349773295157324999780862176774363127024458199389171102972742423192311160415603333822104056797038972090557014736517866960097454333927217532787158949970690869196417551861273034717541643368735436633921158535821340629697460647962230060070104216579654382366017199912409278772845628757535502761143084888691102985054674503284463790409954925491506937435818364789551363014352131522123744978281490110176330107071453586782837910326454039382920372107478508416348945003733194169068244528459759336412167756172653137945272139130862341743598497527830735418807101979977997576321226702158777375387883657102077137649602774977795225464533216782240128151778012982016253019418796645398293434323530806495016392363813972256494561020146216816518842439787875709030674814096584467113298964706935040382268619052517090974516395364197886834316887977591474567606857783819304924123400675251283067086129872651906281512003651992545799770063136125357480954712142054825894114724387588825794009827264037576081036021675518449044786487846190328033529012005848658140805950287590047509298884898022984576171886275552858363633321432860402134229708598036549004030898739687817864784524795802033058230484255575500089408841672937979789583803315411988965769255073140368983429362081056241278944346578182891936903589363138932270083807142968569891234620293345093168248013796052512794767167071211558834303555750830446530114916871660638102699846460450800620907280611802854513797641989833400569122920545231534912964696283455789081645491203158289408984847035644879233486278923267547615878152288634773217011785505213786180705710966624289195294879820467847826675442648803164049963677409215846982604792564123621404158257451382651238145938360013830173193074044072479676423777218823848593971692279139507749122862894145685834793134786178356929417937627849165062169981616275681073541720195938696863071663112338945606598759226759627486829586814499659388797324928969042411645617274739331988570080742488353985588557447832417974558672108424272537385888404194856591242086669281648816013220955838880388341897490569349148522742413753802629131949969295638457787547898357328156233832184585559731075959180493749390410979798113475323884361801688891395490291554458143373099157208157728976088391902079284848034303729121012183903799506354171357889323628741475479122555546538197302817865672525243512511745196328962885944824930083649328839387676863439337891095369118957419319629206867148807806467156402139394224650084200800830588471340464449538218547817179293261888697668973580682453251066590044342319044889500904209757392968982290539510323183496363496058741505206848330068130103651107023008073529282009657298101997106679159599557971799077575123588335444561454342693575108508524782490665654613015134380541677576444491142506220501056227678193495562554399938101110573981627971141291148398605554702235429510670932597067032723695805275800248583614168207818945244934456144703106658808855665884769986914760709104732108712107001958965957220355531417767342506664359662040434880168467828900022521367457801180594381151916023910615870715704946272855000126096895323266396023805329262677290650263423472635454725845745986248975525796720152719081097217984852935671509808278033009152467986248503858915222751106575877555767861792096446732085090424619957915744154439316314358282104744410670047570968392317737775360482284206527520204854814504350154341759350098525092805942309833256153374293340072343331337954463214766405602939804542642295645535639433357773130650786633854155347384101804987992843946826491145048610853207549910406731744761215528530612030869108613316254465509471735559389353905298454427478230091748542912011606393717348448458189281011451803217481743308432437657020822062400446759957926771273148129803250309031365816985909309844659140524458089236310208577397456699868413103104120924264321566910482003274743658742265008161415269341673376474117042679149999863900106413732693961885834439431745017496138253965175441003514475308364044996968259487557960945078414811580592548193972951183417775683306154466064248883246154286298682465353013043550197253270158989191028920229368553713411415526314138023587349935377155132555917167647490646440957645081311905420674487088463828877405939688621649533703850563171629215806103631998068035251931426376402041094818824559625154314602516424443479372095942898516668975017254259205341146793005204361955855153825470274361417178938806625787680083298133798203028683276391190046680964612350584803275127112269578652388366157671311712194879654437405506385158416674909366509704039415904918316168678911103984058864405187762325877713721090735980687641889781318113530747047383518901654783780427233085970443681679991843756509739600890164410586190600179740649556668977099236505236277468380392776620048326732288886947656842773258324235692918051589833003383519621621415603123579749312234686698419826288461520379004341829587205125806631545735407910590924989519394028258535974318366930018295639132903161076501413110273466455322100695407278246458923150162978432164861247137415469348033918246823419242994845045557713361568525000454490042293911945863480064972834422148493788485847810586375850612391379412306620880335642841093182055163415886102407640697780994467947429406809294013328603627001885375716554110134617530878633125277253323361639741066054110053156151996323811609209589195860026479494901349485412991502474247581682212543200581142473282867299954876968728419209042684721152148270557100347050417913272403757300936895516298649775601799186059948773657638299505837204601333433239999915821738737173288107840598610296479825719378683256194576911283576310253035848320929717837094317853702878538839646256368984823818691723530136770321546316564297243295487350953490086492457965472864061951902101949910025196279289646178887872544649911646940083862668599185961579537289676712686027707848092492281099901360711364116043643265683330150074304385719752810112091257737626556997856078294483903844282494549807094474695960114642079782856033383309190846382583747038596560103331062832559982501515839216248393821090542200381444890768215131680215485854779606360198683505011624568558353020921243014442091838620705789584601365608239607214211278481207041530941641112280517048530627695941862994036939442498119470898680207274554359301821148427581103946187790217338791913470630778117045723820484577504022246523259915651320576475459323458198223232208174537604257208716335986375560705356772476154098897908866605813641593966774167472537128332759903445496526131341833152638651146380702426735832004109394758005182408836883622382212188014787639110987135148061313978165521598174273223820229993131167914179314607820049381164932889316061036546489271958076185078958214969676085793967425340803241180386376117073864934898107917608724771154440847154168540963653197230380398624099487850419953092486536641190258101225975628589783742134706260380452734527071511964133751018989604141194650595104841180176402972398572770058257204493039926449452562859583568127161087172840349175657187003753501996356997213389027298530475663239552813115150084880714413697853517111722796009733730508074598286964551996120782056994087217356723787834722431820957071917776668425892020810528992349940593017707102086559551206340967821413778693699935208886200421657362484839296788401051997679504248885183190690087308936067785929633642075291043360114186396721436183643316753042690061873435583301662921716386884540413750610663057997573361269130643782711618553002929299421815508108236728377319014179803402962939058690540844233814100137352301313641073621855688430796661431170220276096060089577504186932690598711609356797041801381646412284365206917887042978404063955821102510553118658217250702682881182744858415408224119018035253380641513222685327265426293904885739148298876125887678206415096303055446128991006613139643403049461454631654559636849902115612856184465144940650564849556176468672931253457626657147753131459760736799469889163647669504321937427128387829631873339943449427787120412911252093964880239090418340840850852174176890717080848178363876526555393946570741716200429985030297198610828369978364616768586665647675159393691696007971838500095464059318850165835663662614024270877627147001958798385342262225250083721556071368415209703233853602512898714249514031831968388596807879493021589220941291108668172033228941581509127012598075550775960463283884196881048800395881738134465495158169183081666175889180907471642477131183611913164929038105354816047965193969238415700175257261568000598236147136037011416569525888220644234797854957653046936662645560049761610852242391384001874491967964648402453298725873895885958967620295324941263559704515962313206119642732343487071459836269008488879936102321285678289472085203203971809022233168642690397906802986148517932265299258042779608909313896446895229574523654007580554928304180307417023456597541138297247835912336946924640946451158095612734193139535346947447588371188774316202200761077293770004047076552115483466374214511580684005476972517732592203764008245787715770539839007657178010949761752111120411246527711823795430534708950897366069950057559409323675821817492369862391254698990866783820720391787782836290272261852406871766673289521046939327981477998327783333299330513575593061721884925933847951752774310115756557766196409299347070569790934537280296614998456367611602252238830356933590568189546207644517326509685131128766867100018051880098646534685760036871118024564856114640499923044825572533890421222957500612521643953832062632414022401080480844154036579643749530301776984718340639631127310080330841592353932246367582423580383199528811283625160530010834194226324278571514022797586056906741896110974886831885621301856108189579692102147234485890518731868822739192497143842521358999679767131218933819834513212779013727911632248279679356818445427513114031207002045212833659837893263528067827585919666420262668597755464995395553008479468150137372967360039423392114535022904790595741952575967243702911609201610426996315530477665852621055352976666523199723523443825574230113991115077858218246648670521324720785580852088756776315574485305637010909659690213500477664674501494487846348836671763767203263300965174954156566920242053275100458860636426806162692024063343698822553006801670504753473758727065136432783026446067239365529198588961892785881329209124924852524663610889670196897800103957827434675411303050814088003411348242728654614886407508395766142423771794462410365144392231979516459581362705514627763550736407351299906973558968969595975052836290050883377013031153624321712029311767584846528650400044359866872313713507043333396062322629227100816145786369357415766937418056976530536018253103111588270857374984456368830662427215393067391659360695341688425676067439123552755880643575679962623699689987329134237893783672984137667863780372609755601977320428994431856315822604672640031885882887039717697026967978816558755695156814687082626939650726170323942194372275622821189545358711582231642215314292084758983847214700773056831767456935483199832337408905960181549763753054521391143971917796935077209248735718554469907023284081826538013646565972788464604758605934749878546259121252085663759780917317467642830372487070229523413581937413739208677355721895980216689212861500721877210971233032460603957560850488177424669502058898258886010319115300024673251498672203713590004287370670556729855131404464807956901981267251665782444748055115544384801120101495023188961407032308040491421969250498978230421698880361898550944920140676934427279600155771105581230603538752796957235857663416265403615791334679491176893068423970150913572828061777159463433854686614062324435004315403918597167369116233711738239265842586280663739750568222211360048948240850204807533042484888312226900997991239911070291408640903438543209313975668647414814576767092158235725608173040601522298271389148543562726100695408736800712046536186691062504458069057399420325053061173946341755248810914493881115108049465744241701488610371026936492888510012138724187651995671702974479285892383548205303798567036711250082932136905582021209354954100591785639450973933959813496048552128287357852745403383748696938999854868261177409550058012901924970290209403259608933145121186849524900989250338882879471627573060222733442374527556402128747152211441318603214691739111280529612897992378142298417509022677115894382610790424168076461065872318152346087454833574416673665540207208163215259058924689806594594475889632795495637417358054638400125680083238446671874423119978250761280467347156242776355904968387990164528491738827309242503503665155907526736697111680454164072911046060408047758469323925456751782673681563732828814757839168033619189705156000000566223323770355427987722139067738002536591422922407938709453613247415196046340681712864487277170638879945904633234742585747957191851688215357657296051792385588857657117978203698282579024597057100324570151066496573263043065738757056737698133725981511319084378187462123810303032342491333657062536454162407831467739691409817253353785040045732424154496324341559670690015269433430544457686891837936557462355607178538732199195426104597965151028745680331517157096434977209534343265269773322986228906566128195300079184487627397357532623426647709263278887346446027987875090805639231822664459182247241812259418053429592013940158181213823258775029787114708495584161102959431325236423817658994539620781624160804827810551174436562985919190636695623317973208949414888190501904353847450159980558459544450859875720639429557037102205326047045163570151085878967878102566323795093881723514958202771294873502189064148240228106577423008011838185745274465934016869493927856924401665264224822820995265861507515125064417167212994481846562332964905165259845636339359344514779661691405695999406712390183978627127654842654595580856779388770652893174124330183188292687957539784265580133058219205875353871119439008894206943746621471052250056508166114753760949759373645886637188070265943218592247126941001828264622508343534975549206419935659211360117401735045885191681837134598812460410521219664994121619151552409555251301600230502206986366781311837067553285640974060972975149858736997927460876388069060084434433054857300520978346639216405501827605698214846823060186707960892130712265923790552029098452269544215412351048067791440390316202246245614401823839465558793064082738719664391452914006551002681440173535399248826891732122667587074480364695386876144131479244784725869233257547869074730424848078085405489018439921681968640316391903741773503023088958367944196867393582987884502044863046084011660203006626082704748969100976919333989767091946224962034383132851497278920439677269315296300493999441437830423888966112769737712212620459731367058565780574998877992747826899274325958638929369407670866654859357144261588648268546390078209876106655790798321514519782968837884974006796838751338103993063879114524896660842505817371801467799140946458303738745209829643157154810778772631593110213578264592723223409449700806768774041414598988562826970631066292999733953770227890566024477286924017815182385609617144161314986993543111232907409584911188691266061548683523020080255282615301375156730212947755277949213029376327872151363831520476954485582786120969513247373853793454736054094830503643567913412670273217567370538631353508351371306578816154417327182106364941492156007063362696085614928044700243442910602360285238402885867065936850215901406963431751166783406973720397305356393720632570388214584990890086109582182492754682798774091027586973314386825551920887193396796488105992022691276362696087130909174440682770982489092641409769097357650045006726822037604074230224587780436285214512651952870619478161260032190174247588543730206612160912872642199690242154039772248426771768755766168029555657315363492354719918631265653290342565023018999715812624849455988498712817542972483636732798748583415911061995271264237799029916024878277537528361552459207203676810201743644892770283206222077552533994166199427286252704108920276218459314819594383976044662939403064490263756328985168241837983175788160999263933618793448929776071634627259624709674437149373044357977367045696438577356845791799753858895263745281906451710765209171088616561297943952535330966132652761679455891552696298626935502185607270635892165072573507826644256288173459080469633824108535305457341524126901688925279768059028868642284614709680549369876156971614751487704898009699373635959834306770362125946053622944725957895125552934389102758004794686052938163442493335715960330449866532068959660919461644084621670715095189170734962000631536562956860542829475847197525315518072843181735683761295116157303787074018407996575647282113089419113791558351570402169041395460274342370820945618629865823551215623535490452864947655349159706179779391481235800411609478819935801433901092693028981767441487531931430690443445325726752270477433536108082206032317091341727548235492652347950764426481361099772840825322018761677397166108048905681774766971376845638115573554846672712404582431999246327396691841446272893496376287288321640052124323890717296165417071379402115290559394029988484521365388821962492177714572351416713501905679790841695993381659235010727184327230354576797517227549861091003846310437695632377575031647008649285167089154473974352796358523103957577432344946512304974731980070612118965099125964799330916782919314995947432384358036976484782243774794588555670597307197115303938862940165977525269291778227951046822381727594676698999207572692974931945930520115492623427883429539722302377383447112901482109766224081297322052462746522088906521161636559871415772275028182306238635508522085510622601859139156311354243433817482101843355654553832820753541161330977249331412645284541373501007775758805930183152431836749109234397439051015068569113638739345697424559937034303802285576196102390322306526342833911710172643744722246292656826899166170119512158082432824580714141234324068459665406338770458563507677222765350928729380819235232386495536943897337931463336579049696437588628548144782253025561220782366640102921387816753604704550007637815908841169680898019234252665867235089353205935594982943419831855018581529877946949547935129658494570954346444875797197514487104377013949841293747770612089304700294317421481671941609911078407592168376337494310132709625267440343590791122885022201111650841956154725242596719968221174971371798653703544990535524609303735728395245947813363626916198939106508604375214307702383485812624512906909433896427937794800104562089155867479441587077214628520568027734166134843210694345209416615671429444930611354964837464613788536324879087596372243076734999130433054448332797753001546044372845672687913750065328642456222075662036744727388760968021741980063552120489751238467573889814545474130482368660518044992737119406768310401376633210563529013167153438258454562141752482453015484483521984490050024641027938564403057223139259399791762771918952504531489051190025668095077100591325667097605740195293758730594088386704911359066533266341313412452554902200764337086003061579287703904058466033419455890584456583210533358887556413267785976980797475866390170201160892517789582093586121008540662511196040761161071139532961274913295920942752026711677964696576490049895507601091695768385724064943358786007368588202623028612078622389348372517117407040701519665581174865209716883929106256885341408108896293563760838361754918593404710925102632350209623182285774153865022379472671156597891893772824721500500460659498768214410400552255263600943674543047634193757595538628404699373375745498709884787024109814454616645781958298119358188008011251562775130372068772080167328851955837216643205693113321487767313587250928473999771355584502531944519830532683149010373378190191922175155247482786083374381892232741079466524873071723005313194756007681201349384790213401280662329928868955573648743887548925919502175012587462665642449856866277582709716566940330354058026235822989437598422774378702796591471227115916022320607140153154769710534076972852454263898341175536684264485522971628868587664207606945928513172943158807671059483856025809262632234996020518447564970707671058343686476837559165504565578249950346118459657007849580698442796734781638431018598016446960045316216465315345587565448778308850545712773910337192737583261940102738988266520341010439529646490362971564789664816283421608594239993061936813621428309119381720887232451738492844931171043556952364431283053975558468232668188605674588499340856397770744877348110448220284414091546207856293991120420714269851038236116547227681317064196125711583989715776904869419359338430816305035146184962078776872455481979226646864101568481069944851379307857687231036886326914890653127272243830904719077965119275090792701585272295227249959960008566750608970413145749843918694231028073667352724095921607082930297151401429119456242927431762696134846753037323458103910612304524151528396024867855582746512235106192744449952465276526113484743479295547266183908501196137636881928126421787003194615304780561172175732016147832496910370381689122521248826979731651297620739149041254317422491749561745543133534193250972937857455446169614328472338123273631266365915806783510557691676987472141671043900776485531527144221331226187674959855263035457742314531512829983522768731633738907714275135126444581916280819218911244163659320810937689893237970821078686194369716358634417287026732398511288598112494289021431318500248825557227936269287233573524067832741452079128002546051956728465517979742785905543015510216192654236110209210156863485131394199084106550060503765785550866501225572032743955884707080910276983518960737927681883347924172949510022592938638877540299404504638354855521397335952018644536165676118012172013750353062831541723854872868608497644766731153722852916133184734759321697132550829670984836051546622894408599368427271442679937032489323839012482946337372743011538735940165836994508307678201759906690203632094851536298854868661367170714360769408252099171980839830907605898061846608312070300042140220110808160394653329403837939079093120884728329139576784140387535750304089472152884283386068423627573474470571587346802699469446598419631125078858137870503617685040455821488479063979128257857651084441232446283442564036706794564614746552186652054053976049403161288555383645164260896990455680283446608076597744027768170706788954847049423308297928957001793160401563735806644073803278833995914634317411987686348838052488939114852167248817266011333884334756351898527171840715750052755831390685521346264939099927557437270631859340321778783143821345607904303826970879031704945785824890926594706037153129333776083382921508461841649429791370305917293878718698308932894680139316530725369513606182344415027605663751234672748314542289441942118431541673013938715054089037119807923848597817120216135078505560270740258403384889624970704241000697218631499371539925894795298696508342341173066096472904759282220118728169461861680682289303696617547112921097313007352797921419246678578489837929281820250599300624765051565216321460314297426576036993207632613983562218410568701932824685903843254008069341205298507322951072309460162376012324454018437043620369413546207763349819784270940402647830492647834989592181701159276355816395825613820825655324486311156107343196567961955832534978609683069299746657976919429707639442003736097672022999257290570683040573601988870067913472016087463613401079053970678230132972091111776805400871666613922263229698391562428729487010947701099334143737410682075449240418150438518145313632690766407515512009711391044058417931393403420662341458818537210106398355636315139277233973359143688736978108354356027144868612445546638731934831156497590417866285700284293589131437691142914653910353062019130842445038694792731204736261143155951821076507135691263661377352825996565480911289439191808625388613391935491190637959562831464241571935973704184734653182612877718189339319240095461654163235717940834481572492910673002682210782661520257522205549691401561697957648759982810063606593311513322228234579079728694300971801399551149069439340213020295763794547054328341724115161399555489139347135073055746644290047366248690246889228364581489855637442921885030615755093852322256949275081328512803024366196939672762916558673911247053258352218164801469260769597517316425514956334961111034698521675356840382539982342904485036098277181714208977765657064378737911074344411679454362168564184352249749335860638424016836715744269062946517061392478678389221055651837487436783252862346913858973577533696243867226459899450955349123433316282358184218758760657039030386972897459200778951060947593138576394762519093182991636802601402724690388903926453527201442369616643847573775313405673086076219312352725139842424938735226281825021173645104021149082001787766777025751103450769753490685458185897562601613777396788167669916172876307184615256936763851828017802082246666659954103199031193995896892974711673343781086487736959829780519530119008736076169841583322948558395158287777218609614519342185273255810599302220417535496345173578983501721459805859788957190712457815375870983580831151970145014845310574791482026145084382408719180506777969135237547546131873878984681395695833981253594081484827579567103069838947630842722018486432317393596939436241341081332957644767767453084797876140487354028396212841833417965145548744660807275697831474853914550026372815607659556614359713736524988295700644553749242712609985862973796540731863689424211532480959822226282676119856777742754606349314269107447493275325137103214416539904507470026800100542605212614627717622159345324888105773468746438322894782384251447463603432978515365081942128151982479763885819826401665704492555595794467108192867394069953707854570493144708942334927611660792577879645512465220637049651308774975410598250655421022765716057544462787037036121363348347528036654087632209449082610178919847009675001779694093313972981974720162587065012214541781045790459473514555347465587390787527925284223195656249592586711759174531503350559259307356541144237053882481598209129005492759418421109571987875749401790607834406565861587811269241785692963218315850285684395831031219162466043327321250981988703663924566140285098551996913033165265033400948344996248322468236233525632288953095239910648903934873285848082707133572059467146502853621709495717026114695023458808879687385147695328426223343097340559570279265961227177359956056700784107226890929884753240467454752685718200535993618974196296018527467690978908180853976703885721185291355898158517897861135893668425256867593430511167334413322563636380435838249343415594975191761655357475169879861063972539177683184296512621474939803803120843878208862604672859783316850480539307964417984371516631893327807911350359513187470279273946026514962599865051812824762282316765622411349075144865412991984221457387724586866934752204059274541631172156549070171343762060840487043150513462295887124131454747346140912273602799364255116314512046684158669071772429198228000308454714086043064877637414991360950439154795375344068271185686326301344829300198004258548391532906203106435804020305366194112844971487841004364183115262941077117552950641643808484337207150247459595488762207033161183731324926663632578960644355715973796002856584905095707244956157807823132564892677190198389106910978121524530342843343915464175671104158865667534008919264877117239976580016814360492991219445746709318004868852245967732976804697971110474677752393523443055638992417215072280825750281387831756146857834293655220036587800314124037006142173251284436519149539994348989015400916252069900297776255678621788624993220317973929120937970966814293783496311141129755637524681204404792942045349258476899340372664900450520901494071172717790106122964244965191910150722228949194585289105816078195024603012178648733125580722803044345524605072732635088480017097842601198921486178126043065990846637434184893815936511624823691364042193126733585125246787787580742152213993846965242239002133730563922469071311030023426498074217345767004258727686475447958772585800581868698044575161987450774788883881599741847146781242874012794917872119326357243413795583771760875012773178905495237400846051189958312190711713571468406558959336598013194403433373253508953012497255454152034602719824888075724987469252569682591375924912700371845456511842542158453572276106696110430279884219418369158193370620093133578651626395920594005936757858941982751979648305709116937601071319207584381263730671880283540258465273915291443093168799289672236337900205612456894599009254218546541351402417669744117042363802884670135374036832066537467282011836381175887634680754899152299022673974105510058004747943520417744117626223232759746691600892333209231667886559607788638948959536121326271750130036132292513807484933892884588654754456911709876486729280905094943870917827943764109140154717195770894498998729608415005342821724576816268181551413709662758189111292256160750248265722147506387559558037386593041972389959808021856355403368468453926067334823931590656443589289067469652166804987158951764016047319542480528526638336395616529487954961639115182463272894735176472779203828274168568067493158136695553670544337396175664036278747278260272711774177335171979204793688438548399881364615480053796673814686749459675727728895341128268436058036562914664849677013949573414103245221649858364544212034059043437340649204869041382085626172852011472004834059089221460387384813826636630603451101844595044859453694423199557584622589949298131790694224582106475681301932998529894884861131483717010040494088156987337469360907533672915222469394931897977391941339082455649062049369503092177705555525461007768746529366816149172658328484364057483321554114691068462363787145611129374103213068114645064783599184768459387149999312313873936662411742011722904530760257392338553943624359826201672946469947915479475494568134934107321494829119398700203426153850410797334592204872250037200051804310476331139480227847903050935742685952302009587420987630777362101282827604724114602461322530803143987654891023654883577732229417969720193840606069650308153898322891951101158608054783017172457662784331122656754943954276245107151660237261608322082152302568193883501786773810874463231261472780302734798043208543062262362305032281611369076561535537698219960195983976152246073002441953558599231664051350630905753858203951195383800794325505848191078636963999763251229205874042021715616180798097307576463007160557299235333329981947552125691745403493842595635304336545591034825161743193257648608323330320537401515918559336014229726079394899221399378208698523492779237962784650073679298175210174439944744061595135163983385435911249966256092196983668647191499907698555409670351820751297619906931675300595857162397670168812488094743199186331125420757283162259676568689510717300530227164262495013634956101546416506944547194054357154259492015860736521388217854256482936469943351830919087844278171070362687000857879251634612170770687711546926541271049948135340358281190205800759934971408672746868464164772346710334136620695216633740300826159916321660773328993840237591811700799478803649468106300878028629721874896244320083968399373206287857847068529121387127992141915112778728924712441246781239825943786067356887232564300908359487946346085755132286319559965486025148286516194607801122706342270221425565102725299634353795385326319020112529525048839594465890842978319618269986668645781968237230964049637530717617545196376589185116130351145277158698359935808019049056284137819344322549984913499047611997955999587798173798692852819731320911361744767338673256994059444868583064591318298075317929466880892205897444968656513534574536881523941363109476809034746506892589213909553272401122867283688080514307702967882019220092803411101971225739752426356928151721741023364413677358503692122665965441368273068274405516389330352261876318925177585329112310904402422893489594025279129741112490964442123614522566069342968526973853255149791489100377131268506098014549990245818078527271268918188103435213301930413444687528454747056584895185388399561522239213614203076809404339082097384533720346797151702152167458708794360658011074660028995972654837603882801630596500771065354408411565888673982473270270758429610606827056545806802389046119110401023366760406382370493124297333444515570917861011094564799709323922424589295800211147009345007629054373778558995668022048233435579442017466450159409592667434014642026470910162390995208226326375507045433373908545047038324397476384285502600884070879752986287721792814981391095701482132979600921054847722284681470781595335154705916446491803683425693457275322979022156410783345018856894770925064899521872939407115217525531468562001612744477287090750993508413400099000680486629804890082695273973579838315962378535033075040784269662717291912592616098705565505513861819277167036603886925660450186559405501954181059342517158158333114376261096190134452563227144085764716738842869839663666163909626532872397907167689221261184649890757886640611692490284300939196772016952479766752513842081600163699328920704085022594118287646842636991430704775987372453069287025895144124963458363001014199916021428470279943524269593535612409113477969605989120592162499597047205220774261441901440823902231780668123770296386551582908793848450711417936292790156441915418377253023512322076953190720131567300581713411642472072473197399630910193133450704015917515772052063309378161940963208049601271368050782527368992149096334060001772744536196256566246471069845044686430700807386067794927592217963788557787000625437100452686251041236653914346276806424762883961707104038235168327837034840757573938114123171056517764035402986800205948207828946925551137960609123389124029264158638271079488897585766545082425018945844761712058850304590138133279946045824345569708425383427525460411357364112881297297685028091286614919651524351993144731865904711948436586332364274806890145907386509087644906475804168964586592794048254113338717138174683276160426820482283017748347837351698364194419270598337102518403635083661738136269256525091163133877028320554491939650056444706464620061075055061900125136671473641904864957110183503291781259568529813117833963045304977919144461988374111640623923667694271978551851965692026629587762903055582605827494499855769345053545806239252635814106427670834069359374700637308891775193421739125409822313004981902426362202721677298754691434254269463874999656474627155320414755636674186382942012449175256639514251730123771944442878213141645831596403826231151965869512388321931515261285125822206763578785118282998396386924842205959409774430337929339908762811062106196488928940353022349622217864449295686560179346986333708816779520357231714060751777426734732230518126209532293961364737665875944350369029750469059760391243915806496188434842455520239473926582478101001772855911478053652379819488546417375723746084926966505258490605276159547458187325905948055971817794429981385705964742642719916847814506380661382888695102910650095558701609592892990946181033355581678422924188239967141313175598905678989903318223321567658671929969792611936739920268491303424534111061046823337083699017073001041676955551919923966613183229628251192032880725349293937032286655700071857085578211234886477160113718257032126616067565763950767427587198116151095247460461973202931567354330362029229959585472809065478800535817517276263253320306715452130649856698970351392367794174690906817446150080567545393151537711390701992293463692487813011240052068343419653832229823390562919380945994849903856301608373019897766285741292949601571515581593105422506217835521738252086934872760956605630036567148021863720520027860346122557985576055698568498400939275253187560668743089728832695489665706690283882436532853701130509206563663198007640057169402646171838177203402058089406135534746966647185465356994836401677482686461410339796348999510094922345843315838373223499538965546505260562876468534646774722295820027579513826765708072538005115850908826422436028473155438006150447294096860700356025979475259459021961652176851930194479465113285065557681053745762912469537159275654560710429590273406604910118976800719767589451557741457251033943520175249458812855837890334018339866573267680322386279964707114214249889009293557785831528760759645153417582284064776742116671517373555989309877228372088822889321155117761351305518512507207406673512674027707853899630134933287496937905443208405109579298793040891751048207280552647357529631150218167442864937978812540209033144381694131915489361873989863627186610565948550618572331441500690749458486446826162452780212521280247361357539890752031753017702117828372052222683598114301150605070816256552705118185593245603472329382849780610405162063079872293804124076104961391907283935819744786530246991272945627492806014258478677866860221234583352490411844988972330932886606089952616493901394452306530279934066491982363352215449552506387246707349752639786013955590624944663278459136523985008466285053862628325029631133996612205159280152047000988329738381725803617935929547512668722821546980011921843544635028699421037422035017453066591804425584839939327540838164987283038935778904958505751916169817989659694989797657878108499960764107246696357939060516749743276481281925287021075728743226041042799679536466951881269423890721028629258355337581020699895649584946867533052268002584045793128900629001733150235885621853628798798212914438772812606607141496680524126558706872303130887906737705789860300272308472809305979472149967128231462135279074954493773325066372071105052313812020720909168273156819849503062011407289293028820823758808927827358787978738285463710588693621457526911497463784194823311867417895636557189374532747266563407951737866055812050592027672994764063811548766965589986797557832996113136439127829530358705118783751530616623879099806560630409568783114335722665738634416021322281080686058952369798661617075980250340001078578799824539195540770553959950683286840545564657318763108610870747602020804234685199993618692098171334301664274158019275391804594071592097069225704404064535042889685313082403233971019524337054380831883003583855914506176786863273042685822155649984865199121249162387624083832825988594492845296951052380635562570773541802654719852031871964624369704210195443249435234638294224133029998444848748152633526196580887160686037834658092811766753216939077169550206904654821647786726676943534686450455626906880493519797378940466909862677395882998167884544192269235027111176411517090452612579489457467422984837347952088554818725126105233902803443117403439429440046221599260492797028118717422373769166950224911194590741072830340929038241431472621023272656330557494633687655915758079219765402113135046200161689999213367082513165612730092707511661601005950257642212135360984892865911159021102069586493463945600880132714950992877472803818866347098261840678736723770897025407186465790452250838698784502852357384146543330141788940595653989041063947078769925476707789899723554480705077835607177257672013139300035474810370167229913969566290405897586389231107384961188819443494561109642164789308997480635286212961214683922359854849979198824953611596152082019918679765320283910184942373473893961846330752084174130765505738882595172392637121167252654317024038993342224652621188003250517607542204548444657182681368578303174928962895953176179456159196648331167218834081233370078204969438175617247504572957926582886147186624186224959628159488269801822200974040425772705456211150631743566558984947047443626554157810226553663108625533342138377771239905524548971501709172875213384594072921180774962872602096742462807334391206022447651793797004664045171707385229688799672086261957941374701063761994757348787617011180217237660664461234650173150057223475924545311901504667789242447507313975153075896745920275181968350525584677342244059543297276684640317038890014779262491413809618581345184609334579635583412765212941021128884651521459394237641200192476082969750059712042119834833947949383229110869148121123431274469987601747693119029982576495828545811857074848043597181216228250772743535396928242514204133189312524199157474856822026181128241660371749954401826302054426107695205020017467409187408645628775061128763005936011853411534282490981922244920463240837359394597748882470595816872812873959107048167506182247903524148076557435484694820296856155060731330487161870339373356596080320619321100339710085172342480919354755562665124481350239986602696052859252216584474780193788536372535008739199342046396377864395729375423470742745653721994436879721659038221031357699809942416113847905404565609954086656852795380705034520382100600645608789455161531483154233451586469905519008613631434707385089950904675091271953892261500220945930129061944808805739422149249274483968448220257155468271443807580936494296273048710566350308340607756468684217559975193775057204240873991259963680472973946076192175030042110799908121253213239954075756445317933269542397578065493826625301391905036198427642816144266617828522998291813809118046890624942773623264726592179761377383995752556429008204781533967937878958223802081771225366499234715642602088565804053619348417665278071967296346567817051546322403620028476095462713932188420850708707825252667629119308667527610819527098350190557647036616933623728286951679164387339723883097562115732526546079864679037615381147478756996381773037248028198719624997327241516339338779072774881940163681425021664624147232731707124800104215426299170512073132157062971214832649134256683160417831489424366992449967201671054998301392903506888988110048763872040721807519385374661719698090769488027700696416925788348632111141199174827921430225826808786555822164423088637470728091970813988253690747176903979729691258690382032892803044071875836420068294617118188572953949273406559288741452160590362873271247952439284840096789516032051724434496613790461576545766433703545449939732319825660428501999516277705909341817719323131342575087551933404220908006186988472030407969068549791308292031694481720663235361930306797508338183054862320018547967384385154606719151835227709074475680722012637543539522277866832004264910959126536186650725714707180601229757934788151760084146909764428214986923607642891844639746627033555131394176526909709051571045347241423179548797423553517856770001235923587023178511135474115955984592462958716118009398882630602738353855520741562954419036783591718276820757930365713584883260751806566644901124571956133026911851247454663016251346043270673403201767252318694972065416739686068886727787651208305926441446453457530538065930915697846616747494812433594765703551794214961546093553716126949420313992317580010182896055281943153083594798086445191117248543076265335541224123845473255070185693436032660388145820847160709077196317912243568173344578689054849221029597458794653149193912609811411098211795848097303670140819020654559857884399379435156789779056608494387360525274613226999793474371849340416198627646214571958991795102131379493719096161919221396888132004825821051590155034181322858437002814193067654854589862009154583995482096848874339681747020795963121275265925359926385173749223581308748782149656512204160865822743208036982486309178127254695414772874491965421075593681252672226612697661268572518060684217438635234515413560664404958028640338056915366977581216149831850311635291022623961631367315208586014455761993116048039281754894700745819237979387347350636557339276805276339022936917658566240706825260724630761701433741442757485657076793594404316060961318146317697333049305886153387673917922248087696740347876513864730454277301166335651210464864687564808247438559775077751391527705279596385188060057963430742051059781995608182192588020780824269464204600109633097986687535014471681866990190304985536442823681564584028003769702543595485542339363692514036211442724007294125863443089255036158082049896397927545288422836753574480741163428736947719769500189706598278600440190711726815957312893422150138561219220000786056255629635157039402185500954994998457422020519803420916393259768748310938926740901185961883695743681927439992070281675346835384772033229119148320289037194140725216830783599488742919139243185403023822558894720345720549818882585918960305671924728798171706959489606461400717490648246325914938799511773519861493285930026996575418201216051742130132541110166264523640273142350652255204652225906515453465669546477978332277095569390699496275828865077856101755453300298174418861480349938838807575358515063855840381154265604081218898734670217995192985543280088468848011121699660066883212301467098395832866558505522575246256904591883442479744792419326914739437449707766813717347914859110089346614546664034912139294120737230505769707416826247467008360517701413793513352835098345326661281345795429459940773070230409084355126419545712448158429121504479420216507561635624599144297327105021609825213603674148417349732455511461570905967460299549609038290937807203967971065477229785196663442667069424727443532245326906673131954463746291535482791521372667595127485553611239308101240321798138626023815971035892591785666174696562577074175651905618996852512382694014329844513824144725403026041183359555594000324405597529985892494493755985345955824151596001084304578537451043908677229384827615545220176140228753474410555942497261421857915799611181466228844672836387905116000776620242808277282530103122274329599706675831533583714074149270598360111723642939382386485985853347849453668017091270200530390418195407725953859073188825549853460005959631720955564888721697394821593813216879304504954631152768660986583155106788624590438495595231547145337091870671078454585396259282727602656734002476466193046986275522220201498007519846573936344508762737337785131161420208465325501006273100937747311564607102920668696435029931038516767732082596562943398926351456799940677745569227636981822916131625879699275585957361314319478454800834690468028166765271365612863895783521796991892465567700229387885068088351772377762611329387749184140834530598422043170995113934323864457091738797452621769818912363750268797695759034366426889985800342072792844730139147143029546903798619418994980620852560963181556829589575719594078216254969667701302550220413195285579724594444857806795288276747392448466117870248751050653484532739268197282088802890833782456555767671393713683028527211475262722257995110182342345097228454741019900076271711676113488584359171361924060097751848601892313211274427178753724366424102172292673851057064758070907332422690669336117551586899454762054325405444104490355775133459304499066310185743844985094028815728422685605077129546788273607000705263967825367573707370107040425933964741628153557846685417084482068176041675464598563765745401032769103422073484204039089613753016574170041857267643002300141673079546243679403974575153514361236784225090202776242100962246570201420058218442335522546959456766693670653361091964674374258774231124358474504363028641979173409181338531429215234451905280384847003003118610764917031333793173398866313229215554830378407686039253607216820346435857300861183332085062683449237714671477354039955813551434345171986566409529748478155320332014658281675014795427411475277085713406588405633945607282752588958493984402489525383712312601185893643512032490079436903182520639144147861536662098924181561214175344551985537745642978755133261336187365550060555651654985694419755211228624985355869937954578994225892606828209344555282843013702173401968244456255719717024075000315801683120642429781365120285241088886256126023501798337136395639255352664558074725289184182427398638010659003119164660381097615385477396250405846724557879545611637123139087365249816134721384849408263711774624464392664453586449848197321670322460856111577535420265127777305205156911159966826595756382642582061658664889826384944022218642942296979994990662680494625791547779854207703140183117492596259510714661539477392911940944836536273941297025084897590732857787881776549877457203315786908128767352863820001132741318152719434923937737212699421545388549874197274164293046540834872215937016506052505906069249757326539499019424481134308467969802029725004014918968515270287333379280454022038101572197886335458296825863883641537182095375854247197778366857962044650044198133865846814548318459097447249534801631260023537854369260877923366405942093982735330668389457510580832049961651422008688309744002971849768510048616801429021570249571998298760715393627096140739726956036412713732809765958221032340498424530708320117482633888643230471607987279856983943457372006476186951346241887160690906366719229971858159407119258123786561289067147265347094317675974218598566145990203346223098121610691455501706938783226303377168987990306935944164074115535380993816920149635089500369484627891310356366604690151678867967499429905922122899520408775255958999289481008126762252020525722734963151573503261830399837371779828849959458919964481948039931162689997832360974737600756490921885721190658369266742369129911945996724266154419175170764547511268880582820507941092283375997359760153897295459895163755389849268141873847579185235759183363964881150362138227223042735020211915326870668260795208047058106457990356076465142842523034413727907159861837180228039106164451814254374018852238182269842167716249774509406719511218696597094157720231712328719956212480569335203699355666462148409268519342578357134082166362398913623379714650762762138312347423535698511009584307038524254863891097363553197313827003352497807602649370563288717391034023634443151324736332571175762400937494748086511043914805196490709784211113178337893458667663696429779490392021918081435951778460926910346777858248778920552741838841275691835837608788677218323196757658260470640960911196867430467955906638674443149100340767151996058341540162410102942068999803030119488831577768757517471456983572134966053696003196163206934602880149534052450940260590192413087802742446549319657277090143420309680401610537273738090129541130087993019666797182482049719690491631548161788183782674002489321115372529701962444134799919313866149060120182410153429370505222308227281024305631360624099299621125597462292345042631536734130331338329637107407727050296586319150361424720214665365638387196630330983138354784286003864522472061942651998571909328862963561501435664744605437499725189001683363916984558948294131499871055699899969486832188745328973250127545387572692510879197292071925292644743233459543308959313943606888548703063484665734307266313192523738695901877228415273117795015631206901362740090927587071210859277567905800274275006234443302838987013639629507485588928607713180252263284621376157763944039544364302081962231406393438094752960558173972769630107164149598087529458259021971905032593398986282938939491117071647459122835342450999506462873574932006102391810449134396477131358309957159783473842956368841057008944051017789937242492061306655037214508817905705598103166681113843200298536393973917365587919470038778668949027682830679998204492382026311021707202392573595942816177292122583672492200120096647398678463102463695394528169834585309099876384028640878156536017576377521990392763729706209007766138980510885868358225075277686789064530550699317025233481026388837747785314594496515043389183291910635285150057527235826095428045280484329080057415950255910725332598616303446650338439836834337056840673116554587410128792832875727023620086801646599661090076994203356241868632984790972589611508900218379679779577851161999046818856418961259836604605511479910653831858900703078709915752795137328764637378360079649242667721690155119155694418894581449733004373129582018603828106643529219574772776379949591293878332268153873593873015821618311735117434585898085387440852625826970545652495546861021267944824391261181061923141003597908927265002446717877399908992500353980284697127692266249170397033507284952108183458449072013704305427605519772955445937384014957669746782211800415450362884400625662713028813973766489763568856109852236026140149275911344460085783752764744546003821534366472161537902543327277143588532077945919359133610128158754167067094552930848735356217951656429328842194923238755239931905788490388384782885313403354397405422129821907910941662791273295224419629126918889187327427590347950657146111476445783739953054951392578153438633499077747048201408988696902534101419564403353707862674181593745118044568741248633513051794140562071567354210907660007548479962666381361262150362121887339350826660394444948926924941694631318976587146079728592516262048438359812415310506154241871013685961216042528975017246339155792212967512782391897870182005256387980983728920549333465165461629483264238277660927023414340773913082946076945184216104120728516307372923105584657845477887068388562890842126522721446578644024031631744491651509611835904785969970393838869412922505268445933157833899205379385215787293321041316511403548991030581424479086309717247316706088504084544550679723841299762616265191946686669682580851767239536740162838152384123710109521797768430657391796880487552948043800911449208299557059422755276919702999569367920087926149643769420908026532328425908622478522467718020500106998881682810176879456241437541925924282173069940001481431551277052657333741290974195442095020915285973083793187058922343934421922378920821546916033696941877771069863867917986754845943112855891116814497346213882992945524302840315846836032159539312404026727349635259017953091466670149562829655704457973590364992548121989409923600616314438380268166618342318625804944244988464543230705320511396345967629829423340244660901465169943823862217186437068220292704833061324907543340277506016805985679082786098314754731878178225030701788703711821296727587203269789858204928115402766730961311781246648260349600209600730608353264658207464526858822362597478265007182236525018995649630090280317451155849812510576391134286810012187305197742527858886923708702254630825895343174069543747816320597761588154363122438615033661054718041052982161638597062997148273437442142059082251796154181755647174807334517824713066185987186000007009011477721580585705634181394840007703280706670622168391152892220584337107220162700358879510081673455008620289735911934835035643718063618189908636386718996775991275806867398718723378555265178057620741255593223048996279471388244105458427341668299818605779904301175206733514156244693750985883345713398285292759407031451422185228299504589551768984113867680078081702491520470593385561206340513608686165283502304345309502808902709164512787606872888036911171325553950338950250610452740227575757651572173754999870773931354413746513683549459670950552763494189732334601128248620815641884779069867754179480947971357724316427701979846365302197150079213839013571080934286849453480963798755760825853173004785459107651034738939856987883291184250578995498051479526799710613618194725854921245639614291327394993317785635993057776945964241327575768185200398987776176384989590376073597636096460706613129537325948988180167645651700055814252318003302329636626881018933527098351383936763088175398291425507236410454996331430751082175887721546626169931286986219241813686846783422590600734798454656002986445182507762954077625166207554965540953903972900646074502953468183828833439935490461386180540766313737220577482270534904026935387660881744742751954491153764884774587476210426789731937593958470074348262556942651370359719611031365416888575712116098997769583667754487544553762294219810314410916513657523332883876558415857622126581752094493003793397868848993669833150547989344348366828714469057853291344080686417353604140084779985369686533718154081455311604885186350988858652712499840248076597679805685254355542827157759376878060477969768333686576323253029702793963010056064881603988810771425853241883753966580671941906783500022984558552665833609712709202888950108780375576832199156984365625615035691620486901320970990428842661770527943236570397440817150726965190165624199141116718879645813286477051176327367838083302713303927883083254403534035543449249458054363377377855625187435080997119247062676152323267595470419901171754817496522736039503490247145671455636237942595928249778865059992460868218954890952285216347749086639225597992556064483174089681712719392715947790814703229799644064503382135477341438436042047172547483662636788979248658840004741052607774808655245945825523685806191467044941646639039202923309058339342589895438503298922644387337349471434802369681224783063859606087732973195604752031123890389533557120588377334016633103048801996267905399049055980021424822462504002613256718642700595284661460795206447449465927285565896996283847408246424790029488087641995109733441985988565661171762151938058473704928759251723129937691233379053483993209208071553368538405795797298060240463853218851112828449298010021328207417788653829704171500719735975912321219225409717072090411199965730625669192715826279025365809595453669240391967606173811933828548464687242715484390258693261303341048514225686871616288653627890972031864904736069074870685337971133197042327431137346571696948855679169812462624352583940637861560720801690342143504751757276086100266190401704371585250622079976109919496777208363907678077724322840745914555410643056016249014851246244744716602534947645557755279491117915545265478816633130361355596589450922437926715003520260028105844794052709877805735773364127120634702366952736656980471576350606228303435972599329528056106021395177889913685361989421582362503501487327899326282401306905160062979543138728353899130014787864791299670145200794503137695438020495834687590944987097283376057518889045087384067575152705299277640056658620453053558339433710850707602390648527845842789039835008256703073912124385970156826813718490101548947636989148385983016688253081438840602924102371329423604337062754956714627677066376627704374499010815444088037035068504925879159699703097110341972741682253273887691518001309189513545348015250280414777930031526792016877332366271463419349555890389287345026019598239632048489795034211507688174378810391106427961483693666375106460303964178603457848624569452832504021193715670794123901679461139476302707373386940918560807780942041446704154361752515909585869894937255198772010801102907229382685051651806918846320091886144388171510027143509247585792478377917004606527108820838184259756789859052689455984137488069143912095178317212059709114008564526374530499221840918585715386446463169752020226956920596818707886289652387440272346813938327012468572986768108325525956918378016328787303152640116720002182811779944167585955274690950297080682386614502166674967326811120904996827158212461466064731034325348214278973978054823409666861863578727422260983025974101344386476404434379089564216300918737772268276528073886425500546074353520297008856920060313594803471602738485055591569647614155220331160197556032286263309127295744077685659659942079434240210953627782128842220107006188882061361173379844658197514076889143240682746328143865237280786875380324737459415848000054030478566353294791757971335722603935342684922350080908126850028270438622479759646909998747425499420385674249205184933093151399111846717942595941719407026514424318926285461933306816338319799277637861188418346395962074684856452366714655438903638709882957851694455153267373507491456791198166554177138719832990627364175363001057285763185827579595199207656133704494739969927863918494421665179346850811999108882171409958030205181897727284799230803625931166747006370317776355084598013506416543503165271599289118971707316990637568397821409530827422017546029187919522124581503823981902138736989774026909902088252309664091736496773744193567101031715639154695251343537240893336134522849192886269636772930661437890650704776690143514180400655207144384030807656184503046561843396722194859239576288173470542685149205374057031680493328000102242060100533014647152600985010841629176881909312293374351184470088535622476005774480212893761675860187265803331191683165197449549374670359164080309479915282438725237729321505731655669342521636045909851672237912569446601943699682665049850910409722664433190318525144615473530776345688007737320711180223365715040382406983674503613082800109492249749178915416204274545828098899166636534287679413098077269682180917160548533847422515994961484336147076875395739218658239749796274161598391228028638668336226196232191890637355927472815051462252099062804560524405854114588871302460268061295549677392481279652860972617533910819474944157310426696140266801543359019747407295485814852655638672196889452249217108616230990557977257558290680887567904910879746808333238499516157368310524171147346125611556448530212959086260247223843832512613197667216463135204565624982149595018322208908154438401076478509379510774469697561144725489548101799004457013027029781957491070550928274393078707362447369285599817061864949053782450248443502769610279773691041299689932946199967586860877405244496140944008651387585874000845303298040956756860043095960022980109407990978250932052649497821677669380643034905904913560968148228587607560648963641523946071918218451822119282101495060071005585144497233285019212062892962920387122769911595592102279449643232329009559482644790529175576370042663180610801521566626830094109537291363503184126279884572171200156252811666851572547565929022598927774766221061450996512639880086556971800154230950771561561259714640179535419420703409595080809243801670445990963974959907505332548258905099637692301871484968300941414809554806543619469240533534984592863099942091210357583154062725789328583252802450821116827707058299743221768844026500892825179208629535336267704664610309861833986886652960970299067890040717733875244682966541141713084105051931286104959938610837664437461112857766531536237260439985549513189881222978797651783998730657122025140016516148235634463147182150082112758817589537999209474856904363494163423990001093036084184386567831162683833075379141729456436999528110240421078075562464541129964246387370378824112830822561312927475550887577842192404709960548395932054744329410342791298206935725602208553169094861094247967820114883048425375185426768924569604991911415002440507650074529236360835864720498117020073648061335867746344239885093596923318946743366753740600796656539271051079739463307874919737176599760022707837975079774216586362707696462459598168711500375736144740308291366908925833554717571143805418978177945416982213253752396328568990028372435578742560443316086300147729657130616026705236798370899634425898102569142160558989223587313522533494346577832155646442898424873963315075397006029712887361122772826823500138102505826592410986655468581110196581462541569518837690683817290431154589942241120302627704061339697576799190129449621056357936744404529459002899532901454701692448214462243023993264348038859875682236148742174474756035516698367093745770664003192751182857563665216709436808634570524607017511479262460965111802866373457286449262384546552001527815477181626235536951764786063432154251344425782862388015938954003070279704991766980417495014824965866027684773432261222608888081881027420063040865666304967918149648099189029791783118697679583384226776539573231742639123587076696651111330370487111688243845276238529106086816983741409176387409261743630571352530487390538955630851380557724263372040136230042006112745542542043633007309213892359355674751512991861383522596309965464128509813745823049278969972628333285803374483744399013192129583813132992261710092949001887715656806159667346101399125921030844667442026365039029369671474022452279908456076134722406497198650575813390438811767720442764643143030384540409814663365863533118540072444899943380516618270289271151460246478239740542053459865543655162111224272383193359688209352805636886233024563885110189177171953445575736056028496244918306869441824536988418284956177405725577856664994316580177432000387219795190133621947428034160623791727057412507723073772639434409073726316049803325547149462454152024102840379206710063365763082664643281650381506275256677645762291413916563837366559787732544019999771502313519939631163228468936719724602031940331643687455053599928402923875497202250989487784233821758757544245289732520957787221124237447266975359024966346129729144597146294095035951871242100975804435350570055468965108134120984715879425400453135457717435623889217175346529481504630960369569368168998171603207231191209194132304514636817932269443743960359912229408183336261189143437722967721483286208254392686139152652812864332497010697352817254168562675633270549236703255768726766776701912225167462382243867587925759602343559164647020381993484925630882397452314065014383165954737537397673527959087630302556127678757207045005806481140703200635968446630519698242537193100039514454355517229236089636221057754010542839613881546906878545747953172810157618482272023746016129388355402928964359127919674802398492170539789988895233533251590639479027566314686589439637421316000650732962155567012551901750908897921644506493396336267508948704912219534626435554584852525007171326296489412326703967943054161655119412915386890965290950890443547069934528584966781194244690008224919333712089517575680279833299955377106192303567041661303366426162960538725351839497541763557910693890079606926032970767466320951347168063190438955451940424557275558442750612728634464538015863862320248625588786428012419512714679117516763322523522519337662791301108285451726855017336482531227232247449429812661775511024346400893266799767546318503644028306139594915935527350224227414724036170023337914240502691842601156569769320584784734355466822063744699200747185993404265176918909128249033863373899934596527649917314026946021750441932070904027658644947850970010825425773435301059373504866311759248440218148995727080028430242217489391497818912230311728089439228493440295075472082421211379522998642331964143271169750303413493383061225681763307496061065101218176146878125099096416135449535615774562413165802714482725234224139918243968215876400711763678975339325193990919769189897962490191263348380361639146537868310580589296488739105998067165118640142816672566445722892444536435713474117622013128238815767311648037784268328246288861429096847461793874313598408316434872314498255650943261201540307172924333439814790710744451472374381388334018390740047791814596146596806329410414932170688412711476318448616743115055581770129850369332200287261533786293523286159934416942725097623962341547406585861026201848023556561855061990264152323406419232085021031851849367506532919551630158396901085796146093441826102462834502134269978317776046249439184813058716737933484705616033341330251708125123380203710992006006774692339730881562249553699624624311467273756950655714886896027190519925505534144261599134049006086583202796968123066723125931369826032377427187304317963997151689381071172186433316883275668535181407422091728432235163852771268207594226860041093053631118022188745918653140580355481754364770783612310627550911864201660091954478694144876201920943954601104267381044179623236952041890040608676409339523678363802856175200497189651567709743978375768792347415604785489635804793745296147104248007577707629903799325456879677107986890342619461668972001248527084282722248002302308187658932699862244637804690366751114635765536132322788352048179494585237812676645378375060251865781668239908457468848036311073181267758563603655998272837275364004729346693658298034697470627548867377131476213959576539556480500466862723829352019704599001253268456058051976319253934625577018538221379499401479453397385383656619041423199156931684517947161253696103417761908404307385983577592519995219441411241491180347023686921427437061771096441800109595054517145619480285679226943937433667935609062647118470968946827687440134144329824985165374663498183638195880397055981151481607851319480076058670708808068082714180656771646587023757885906680537316284341537956771560933654208110694394022565318572950331773688266758755479436865506982677931628706678025720321871418367306137094017657448569218671223472765034797981953240544498718885429794208555045462888011065531459771425048515516418497427904892894718811805427726066308946261984094929204031628813314262521770521128631483906867484000858982118568330821880091047463199729620296343185399715188622759226063901550032127054729942605897905617503476745933001758258533379142124743150087880766803016547588240884207360018727865955547669262053242663053104346170763749395505563061999312327511176931487638966685241202762907031806102347579975258567599183377182830203827966346645253593750484028774827643495475716452163376047524964654221409901887675282882748516102391682406960749741637263438750086858933313272534127046414876079991441640073062293189186417337891802590036705375931687140958156994100340112042784666037324438292305177183446965238241684407089450586515279057460386790278965382542929384190288633596553193741938021430346760438859420369643989667872446060024119388081410169457720461146998245863192001011674535958396364606056104955927212530020404311090481520718868615972907142660814538811053045626471325659548759134332947133989697224287964121450368733944621678313397070818901874549994334497678615061040301129727020144751772319146651090435780082703920152912885882057902392595545770830703410327519043830485626982166008163807852415584201101142765526675846484939679751035774594106346479911980195383178480987854830304155459634038607044542915297122673247936890053576248007969007655241784937605992750147564603372801112252485484665995268776354071575256745330603774128934295285736329063374041769613064280445364977217331569707812403549026106332056845795009017158631924015263146371667362850979216961148334800278364041375994362786113087758614102901672474966683941447412153971569852117219694810213394759974404953199220186308765501254639960925181930955115556712265775212362705979551994158861237266974719580182324503482964287200003535533459215840827910143281340063585942149400520624348977040170573960310904707093877079577966962316554748554675166761420428872604116854476737342026792503923456012751577490108458072652384724110156008567453534017799389306083242233778532295785079876670837466987109021950718933705695848760925487129064650670480292789768836705777320344889883420940101680374218150732628369441130744920554844081156795263232525967692806416855247657980595991648134650122096123956878113908247564050432651591044321997569638139789112228311811531389195205453024621354691821646092220183148770442830036633497125942249283089844545370604932966744773659965253047364056654412588767100321026680392616279115860910600344774295069864547740776392154901636911765124837011109895957576581319006223857793407499958468898407837898177697692879896865710724224209442551015693564642925421310779284790102432976139642292016792598210265340714856597050230758843192053638849906487796765744252062303717222809970917411157305694727512780737546279075022908482078347522447121138185608882998019454670640091490939986835558844509318640900653284780272042121989117320143046205169769031605060085865071222503113284805390146381080210547312803420493911726122832659650227277626180693418202791839587861858168088751897351448432252999885823282232065549817332017282579844402327150025596314435301817108039581799866382803853036950835193373079233816974839114403296625534559694170712339308179444202808614662659079875004654181772809349310200436826637027271970917222821060497308943131294211792996323860609949992831157595903575668387096404180148373475419606181318354769150520642107428365891615602733094354544885492123058414973286069472493880494720768374851572164526843501452510273513853243926454357003375230268054324355715043633604497965907290062514837214788473042498901843704121497383573187164551528177575789342376934814178503487356503265536969132633028662115950275588178948091048950546887611126076239172032534214069270881797407829695249380773923370681185170138102437464575425016321203792604453530409620500777407832960537100052772065062366685649497127473169010136509027188761258964587386541531847922741928644322264447424988239524716627842988429597392063594920467179678883623494736837961916688444899244958994244992727723287464109933061624773797733138170656267128189454927094405488807738512104199072606282509520690493954150026592933693091281204833782599403020971516723567415722483828228270129231778604723644306999054263662842342810002774631329308550090746005207789478187095052461648931484473813474637026946960015826653254175898341655896708212196831622001149701901414118807589157329037437259599995435762977963295536170205225062237123116048682396335924678564768458243361704355649839702301308931911556063976166309937698077503739412806505502959776288796441797889292905219854141032774141905695647004704667406179117063959798439907198009286584804333206504211824660357830474142283115975205608679749122712508126040846656349475991433826087138774721619346188255895301217802294398235428628871404160256712528963310930173728995021809844877844175226105515137809563831544348568733563426861139090144325774788590535962447507571497564544353727510913662735239555288943410334541350538759717200211238522547656478032574317823811348348792376855086256899786053216158834442189010719169918383122657733159515643797586521527907927686769140313368101191561995911957358173886802851197463818924629664415442715724319818868580788199137144793833729259992410850084228466909313870015332755127548384062382339610724335241042585645532897967221130784343476071833712983913068721763158111219459962648207095745079809608354737521488482635856773548145687787495536831322921370268437920597130544605946973405677872129242642317725617759490310248765958691081384560443431064591792042744976972615468963307779037480023799553351264069540695125887684521384203808161518898809239179815226027469824592363897501676147975253738654385021727300621949769797274583983660510105812461105781676253267422143626018542562321656310837795311725805281733523213891510743610343217011744741428827612780845775586152223965855274028991726438049293016504038799380732471800636353338149581973249638890514333522873731460426692018073357527551035787472544625606932440410661752621741818229139247015990052426909612203306848189267107422397947443392354827305152355026830566579622483585468891268536846835113378997817317414283602510574974752111251317437727889724092010167838949243135620277918160173650985513584925085878486626530056745862469980763325140503760014762803450096118530209758432631913676689347212515165042628878952514318486826637157643017226732385600006322983113416383746126556136396884225211224637717320127992748150689229250597489312706368897324178596740739415735797903116115513892234080683412323252284899863676244204770610544701331202124483385367998737793713198713696323889700602264488369688914397209992232817021761012356782655911441458248760664308649201971909181691333304579210897027429087051167612518417821972499362448813177295335137646206996814424782686851961917765654890648152535182947540359150576127586433031155317257218606838760429958517069377713641488762796806375467518910598789306919639668936991483760987747935784563851482116478111286312381633218755641428838735973349044822762046513442874522634781281451342882010249797668212260220405127417119266355688259260449190381233808707515998182786653718810251470894669666382540764232143717698044353715710063778682682701283724230833139838056995705078980353058120078277855861893626981230221361478669029934505031205172784581401734393923670481148894449376938761763611287220284953116183572330924951938020645125808289545773933582533152366141161395452773305426147740353955299976284555281951050326039888233193153987196236520600016791220449483249593330203673887313991941423117754018770584878215757921896559888333044061574127374753246618600663165812386885921936395637983775991071415687608766255702760629181628526589558593289804927853634753073837931200998242251999062325143580883297786861816476942715027604347208682652063587128265545343284980224351724124317104838173318349735543150696546675090011777990353325145448943072653848894970107903737222327927620052341708860101132663673593573871717960476835277305605767864745704472700860791072957720206486502674560110856544016044807364286782841763787016932475835519577383064371212850560916655100525502979158175878461382399903592037192573637179677515704791819050214517062301799276904977949485404196979959964341379659926375557303706740918318176634676734485216615346258538782004633688142410726524686100878799776792809867269953890216137390419226605946101394906297150004495921103939369600278191288974747259430551042423633514436496257843140437589941400628701903560584112283305207676922047545095731342650194885781805242436571649608576315828683560924978688908743631870264468351877149956586883405137347275895892356277091437801569847948822785900606078248613405959172945533934728701763570862639266275082629118746008838990415648856386344413995623235720765218051166956947116719770482120140359764035402777889118735689811687187489097362255896496868280381005103489389906151030720837038442488479239260933180143545752399477869372823537235589723117181057254046829267324530255500183108896369778940741945668474524819626272729202482617451270779674264860748134883602754804339774892177998773814290405048808155811736562643395858377627123935353790378380799912848426333106104259774280302056279942699408952155202463512149300096467399920940210715437942097216233004406832324579890457681815118924895804862592422012233041906047083797117343758636837389828431241249625742317052003266247957687792666938652443898242083106638568511032178748822842382248112509579858843019095031550463066629629766720525651583531584491095583248987673663940529807488532827796429154625559285337583386448106916031426523686179255217909791129263807911445262794375950863878310577064557331391810454905407109963828934503850329019431696185893803992828974168533228547819570002284784653106856443201387282146964741325004786238583470566002890482887211311390074225996105305041983861386610916339331939340045470883558348363584233767985093657368857089242589708027233361939510849890785470648307928830588677232925783801617397196773842411051707416472262058907039407543545997746075263045971980034270638976736066695183866765111640984997709295433801640759508355802987926787842676419849087758521633029177403531974758826736869938728632439749405632334435846971360086906482848248176221354097565923709953684462224333725824323582565109113430539459810013482189700959997730164997696835520389554458160525623439249920502751905775578124716861286133084394329164492866868716795492230866597801252351221823454567238700934671169393864199291513443391108872363592647472570205220229487343040443114842772708189942056666595360332100039034043986234736883597464873661614351020216490212709725342239792167064974997519447578448503834739123232595257449428527628443345257415422236692487307281221713973508224550837218820850186454671956292205153486593679901071522704210152461780897527454888681602575967537132152124139747961289691671290814218471265863532687569585672813723839000555781697326727438752656082155586856200602169574564318386780671732877801662956022659145089886776895542111232949636547391847271217102856894243019790489230713813863795425359346919942966692248927922771254040973620880570143361639458933565598741026888222365737051538896514858355194787796902423808998547978141823818600821310967776006372845333766578454350831722554633495834827159313843402236666526574598118634240779686065211298182145501742140166519694955378706658460941323657248400400394067057701678276613051305755736467672409427272453895746542695995493436620331579096773292312002083163432785343064199996603560578493713568262886060083051469797724560418406285606512060151879385458992547600471364546150672314027213754089748055996766990136739815137723666831109564628163696383783552066389233207185461102184089089734564119225278175833370207984416360353521813224736858630786520899070426448014405734532217505477638564603642263013259928743240251377846148612901471185893578871532389794625014624292316285795596014638182574087503475581581624165747114691696562048859589509115759627408447169105296804219844820132094853154717491649814571968554415578908416713549689914912120742554446975092790436104362758032826683135764829077372750647565104804328358023077483527542445788875310959990240714810319391316959413421341539403889548552551322974423008374742092739855535268568453051766179892751308705277836977653105492329073550969724753894195889967602059923278477848357405029751632380057353589727343131133546665990169050334599051647290063786586021213269411779091043369614121510586019097957553713639135059230576707593596238333386181231384969517767319634629885777176769838933175366358015519974640954593365071635506414274169144211085846658098813272194965105456373539914837988568292069827630791493653794338458941230042066036815239693992048655023026118727872417760137462619269233260307280443274725034034243567142145796248480871748635565069900314050374347859878043881754816956708747531733471867919656967115989312897459563093846326979656316884737738212429467212378135165157940956281982584150871869915641006348340633373114333168267630114521680465929904181046004757480223331465903249355544595600755214754275309412372938068870463831114126021613730499680297677280539588227106522838920588154845902520651842896794208795994517542735832019706010426357321400577644050191990021295831127197697212549814032860800310877226574329098263441217058188733814633964383491292727478552472989110263628871827648193027637919816375521633332915856585761794686087201955782329892723719320265686331189161603835710726754952762657917678729256996934616236798384765559616823077877829313451416321261383063610295929098708040862660047668747614670878473590379800127550802954127348243722438287600019713407109005837918701343773783312002768172475648822352643848287056627073928829209052508189430150353834382382838082994701106158348486231596244678327426799412321575218865520505328609421116957357433916129280971618665847692486419022822643567243341838750814171862145361770718545187216420831922546195084723926540284850054494470891880839495300340597674441330015802299269353840996798003239355455847561944998509321600832861812478975597610505637168626687929433605120295801010348680752814374838535106994813035446914472967142892527931333482698896053375891943127030843678889807487893924489859373222094502305242927599017194353443780956955015930645758121299416006581473778215070920540120741953923958195878497587822491012644002197432136835262259240463821820120018432368923679356615703918576817744074875103772683881071750177644053262315946197876957312801868425385152361359431618700388397911722133532020580355961290965621411910804100269776897965206401148126839276627235165849340774823562199145727872244135532414008290962745154666563015230591134655721799212506859694542222802345941206123567588384588210362176072477588632216721412185916336145533201311736415070541169462098084153510028217890642796934307609980009501653070749775083799627135295234890631129912189053604866140482061364160835783622891798836032811409323875652595632714731714755391452994432590058418737031135915889661751858599447559101697904186564017393423745022667069178413761317033255884990819977207780924287245328716188286872468339206256849233489137734810817890824146095375524797960665779833115226441270148069943137630471841134672479858807261290515961769064916297110691612116419462735166511363257143085568546948888800169349292557655781218868982737506027603042375698814299303517626116843392440457117288480853754497471599406521950818094521744575015085043371458941356422039489659255880947159590624173534265863401008349388780157989651678353175787049837473914800132218524902233197417706520308579653551143663771662869114422539444847369816151821785108568967838992402398349539034332061137894082489699025624189367764081025974974136098343356207850956482254778936823064739864402527845120350537961683712658977326612426767408173281175178945227010130572957328999333035734126508361967190982983899111412876471151157488257218633012207586329819659529947295032891194732830486154214973641693499022049663989884620840688837046909621005390593809002701007425021399043376138978832761570367534037838272067468367737116126838285620825353788978598971896116501926688576302410535856017311556827326172681081160528538167556468790941915074411802779480854437979518645033429447746401991995391695871065938416965364499317135383731345350826879249410056337112314934972687060350424407678571594408611366290998670904121623709330882565877649038886104689758647859895299434692305395379555916776815811095385783579915979483728639039295281750710842502652449261171239157219384353136244392840043466659465038631651218579017500844419103551334349619906460774883211192454745646273333817354473754610548869879022381822353194045665746510403943502174197841578291675407734618121982799170313448508880201553927689711859730671184581407549535620940886497952492611507967428172432775569083455526001946245223732889096351511000694542421392661218945140609244222889467229961873886738449515319681112368120339893736793494227686342820605134046763178375369611087278156549624206221415687985449505213998005344434231889016668919634725778911542832952568310837670619143716433017214201709152262956249683554872292306259270594368057254846500513632801488059514066697331547892594144309750333083702431291013554082904864050276488066210558235327223393962236113491680534425035716738945321060582675006744962456357282039851712022902827824126692846260982911962740936125655970462310297347082166499141916112424233122677335677567932802717731195882464297820163612098090041685234527356150752198888266206846134708731009396701873962683783787878995045219247657289211047007312535123959628765175792204826883812364356373941221099310360607057930659542151831761049777741623044104912935803602288929509881744043632551681254417331095699144969100232624532703327214478619357075747658612272540577262366889964004925274157725951801842137029636635938532781210112809886516783163478643839704792365657444093952465507168928787195645474360393489969269945484579255077432661350214253907362435592770403619175603784282143829796292583446193158238204558539672715000254968542707905139055816639073751318415794265932503786100525892882193110498773231039749529925311894885473792863365410753511213696352806138983686667490873640781514370992725059264202379643659956952298593810846836035695180220821486328726876750441858970776139266560926211789659040495976709273101230209457474911451081930184299532149696920207327375008053114574670642101819070030678088950161346235053565724231793634163193944760861003728546356556459808139008636511071735609292137927412014439339995684687773947063585386623129571445515708040374451831001376940856766467779664114279045165369787668605244784714913782466975443287056674095692701772618399043974145179336696471483363882418967602798774399751718226750338602601863612677562810230683908700290799011562923711171590311718302637216613828038522975851723147116924805199022409011089592991979521207509617071814414295246524912457113692601606898729611944749035942590946600200440381789394671877501075216343869381605237073261917116611932342382306142085212986038920771238103596215700321647205139659237725957618400209560428870122363840835694069033721036455485476608716959927628455145908208254083739473231886871868523982816774201645860149343536705621019019166776819522222243165491809866331039131438923620335524006084865690305587463060128144432021024326972066154214209618892993898449410461802726942852026226326819846305744004666184782473854579030776825885233171234270665185379382052048870346174617700953946195686681479890302512422736582949645955607149077035292768702389628702386366529513665768981031730214218155499812982511155573434148683264114177490640878050313490369981515906944306399790677077720047973338263476731587373272533295264328263193272738744343034171052172029421945982821601071603178304503562318002006386049221778246465919508778089275604079579148121577943126659309128510070054219872975499869354773754498950427270915673284283493451160390108907481945351187011336955025718985354687077799282582204638927436624782147492803551124892219887247078879973010124496487062280058564732712225311814032194104719742236135175340281441351568601145762509950255807817284183078726480171633597814104864269573229796867580095992328361840872594558529064471984986506637433168795591438783881121182203637963275622565318210490037046976567201457130216428923513233295833636987429578714606466034120829674592036456201785191989654996915953350184553921552579025173806649371543292504348563549152079044841625249819745177237403499494750300566193258812566278397859003784114130594838944018497641279890161280047766022760545565065143842293107830543161845288145541049999937814474942359023913383098630639449721746372179714656289973601009510728887987771363035387761821568446296795054544760949287482999454560282656871583223488997957176311591637794843996675453477565249338564669572795497391324411173398816352124737869264797258537688067602387795955393892157881071825735387029078388054910703315684139650887193873308568583869384586896943553569955882117767638228776865172381592897176748352714759582929123080847063542792601962787905056119384602607029789992675323327989689127181684869465821755380023617321676523789983105644433040669571814289156317128780535836060490288272804884994830855252344632275353359160557292134227087013650678689700105526472034497003471661301507504797718575512999682836311444019286894373197299355267726443016484436794997396718080412247709871853694599258398280614918971996853377557762479870577813846082475702210479780668093348871683576774524987473146546321078269311695770192563516632507673356970202941071426647789054913711198711780748364592234780629430986235063501167077090097637679395570068392372390815261522003562690451794416289286418209176533313197492997441609784396224439097591266719019368344664513507544088102128345909645853442271800008346707492122579288878675166970065199077688950076971075206097567309177138403969765425262809796908232779154613062438902538550300445191721930633035148667046519729557004133531320922017955876118154349004374018333165410841946310467863792048744700650816355541575418932155515370228754697658617709249505226217687957087045751845533724592706907489081038119217172227940220428078149192867493747807223319976361972095780149875590555054829337128992898055493927824399258432445272338572435949212368651010157997862538089806375446875752896078793729012716779032193916198074557678784255480810994751704914872844405297315950042786052387830056820554323027723839813510704224765980954230463622998299068525469388936283741898836200363456657709594104323872059135481419308724804728265118449661880346079390288491420726548353899810902272335281169192852153845103158475379205271996985115708702595329653486288556824241145919150132108264645191448373405147692579800302067588996139903958220759623314021008094371364867943771929050475868677103488160680361553409946988634607583088645911943294034178651246453865718139081838961535852127095130722484932459205343053066122006230099927101586162880972739054464239938942041168139183269044298405901689540588435554830442033588633375595308146444125405617552652638035116159736326942886390855818448971983648518557636598978239653050995299757809709639324108151774459310508108298627871580693078204669856900434945258822966125634037143615128948485932671229812534539101583579819720294398757536758445186619769032633672285820032632418587199717618724287443706814594662632612296290098632078700586399091617925675056237121968169175392127365391687511624000910704725866920817910240109295646647779068950836509703813538720099637662128322896764770074840003227921648523156331100090933324031681454492470909131820132476086808927823050662613628562911031273460716440713208520884854939004779568013621045505795567010725637888346779449620586150843548946015100615014744364133472528938999960736632448113692107497008525518319619791604762422505857573926564331890011290161136860319453489123803744447399429894529280670321127300286412223437402220569782437188161281547238591478849305952097044774725726033972313177203818259219335296724404412750181456770555284665583658418845879429900861588623875277198104775278080960315968606995101606501706370939816060288537596615201672672766742041736183449734867280390787628056841489240434775620141965040569929872850945401291323649378854656824877282600668827791874826846809453457834775965437408422072173433552687331034266084767203063929744688808094480587100926592379080445059504772244615137471055636479539988466147873070548057305084923887200739519809135704030534373926922462567638553065248635029818279922430387404562433413018805582414838590526102281728062299862016920476429924781029667167786589479557208273620732595015842348421881521021788649291272481665074946673916528022126768416581096910214373623131941643780898011929212607472415706302218860749190277339411209297979734415457482171510797393297978015402091454225324093379708532331761700625478581282819348650087829212777984135666513215793491561696457428853513520674846229271075071703880533612222117812666867685970290307197983021968465877078811709685141576125424827048367019566041757360387659161298252279062167977311301715831584063602754303463591469463143416580865997040986858331033090593599640790657430359832020760648936333793053082686518203054786287046392438926203923117888535047328772097220216705477761312306239451385338311894909707669260883901334039314584986281407455044928814566501415416328452140819805966430131635265861662993269104302407953839614638615992337932893112127035070792292696332490560836768152873360475457934283317925371301088393020339863332891622776647115325708883124658858060793727317439101958188124056911805649126884815520912815134106419124560706620116911847168918651259295055188176242522054381163466262310701745008767913322956524476900558434122917288474369464972870341191103456341324203116678695745270839281475991576759847671585696083881920773779172460214342949859893176135670399905593991064340528542490894511194289113581080685461450433672852927646375665856869398053044071275764870977378191534582338383627808581591959035245662286836031532316734150398530411612712184729818708766180661685334268967602228416832659878882919485486184513254310189675988802415182708991021266801095941742451612685568580764762639081154696044557064211462425713379161853450787791186436082773101280451646567543406298751484692285223072838791066205591236523866290646172826342490917006372900366996171443147432116514176723182230070673917368531619576418916894442265877786975943581770036473522621430242170967629751751469285157336648214417230430598464293274635659370595096870098080172017390038196893811813432403865027114490567174204231920996471803309036978012011549223734142180250237813565601228239318112118802188568597548611300038552973079422609029534765158323828271801200346914151930942181890848044421968632407071041551222051100253498244817835371768142227328684206914443756541692388485793184892491419699751309120036853635515112175362764410713364364406711516458495303179315636144078371706154565610964948664321559523089401087599252551669058145449313399695247627281834886407578668960078545338989540052290274358082574322382159724066139262129674653119955566168266212134092293443445446006568191560258310837806588310872739034134601089765898808804350574196062565131644868160114820861129406669419308620336362226311755698866915779175605150329114714222776181555508319819182700916752390912374895314267983830334470798798625416788898604600931901780358929772272609299721268409545329822290844905961087935228793365753103733613148083045059512637246818216657913103453484820366136590027740867990466979721632493302661263017840766784993937890765966674435777383612630535716418932995393970883892164777365090860020504820528809964299086435939819525332628457240100393104326299267271928417283455501801351722585484198761910786875587949616857040551316815325410425498929416065082724311417068206000666427328537401541965602022190502039117348804428697972340921407014756704894590705829701485154825118494661106911800186056235918132793971302894541352227209291814968912890270879976911690006849950302173505907559439096196599477047507440050681555408248316463911491013356651301822284300878612104375060591614846147076325403069565413325409436133819270560231143878216723358341614598653153676028585774812072128565204704864559955332460907054951514117403435273755689088419010286046340296346036261426491808611014826104428311926697245264188204348094269151403429057047545833740605746324086169581708163396920623334641654167142253543008484645561492938628667122906106397890841195637877076424028292715317003393122099053149311923660472779801533321318534789652264545976642638601746800294582779424953841158049255681966757365255023060390125415142977707903767157637755302859833399092329603141304063002181517681716505724879397047895855610046344310054062200816889421379886551183428972930612529718789515138317901867870325888176701770888711849912889533869218649987582878363641074309369652947804930840705411215461456155595913371667384384008735834831868095017842517517974720335360106760302125687487310928719377739292775283571934651635721300978615436850781157720227905967275141991839055265069340836377095326329312101136310625053816381336863257674138405225094829816113282441060750462951405745650229865292354240486436902872080813167048084227264032929913951926959472649644365413986798475352243643823429834470451357005990514285712555596739559894180420635384054234967260718964259728110349466304683304629038164229876493748746917629677648509739531276252523716164779550713808083487582933918638711633571546909586933171731504655080198766122917988193719352050390865526245640894404039397000441706077608909276448045201653012125967549888812201642030022680351170129170454026553660518313378245310910921569114499660735700634084438514024664682756632801947086663788551030375465484740765519439828715252768471903788357760889083409642541032864892841142192233522980285610362371045537193840545814082273100124264367931598219000361396870043378354171653032988420982495436967310623918602986446300475744310724418370246250782119792274718038177471150680934421680195474430773722909058798802772401094196115885388059002346849266440374544996345684229252146608022396163689771239854811936514451814356127983410168429445823503798150958017521709416152274237066044649856657196960806962287928296036872778674769803742852936106587609582777753816303316645016752592880334046562144298705947138906298593439728596732992067592812567665580909974076412208026509120828401816853301129913604554531755143209848399658805630022074885811308594292028352429783516498770226990079909227781721179373984163273072545155437597571989681727820615054915390405718506719563018421239569216841471700925411832980571699019298047418824441876558565389924664514325643873350020172395751018513973362158181971751690653686725745962716498201424635902194805379350043844405092719256243057423621541205185630549058141948824183725235311392075928187940685174051020062857940646241204718518353302709006923885409242580042912328586947050609761381315400039676596886682242220005839279572827615110372416841662617378484659911757674872922432651210515815414446939065205890485434541397159556187673571079300377460838664700979091906679259303307203030897271486387176651796846329817574116399225432013832376612016185439978265764665719883764129478965579169387599193033968018840225530650145641245316492778656395841454075173511005249249491490224469713865002062241958990380386693350872231044356719579561201542627858814604071709693012547618545064026110004323354267216567736829082637773134348786006070678152008226521854266787975922464422336310871278118154904221529140324512383640175061227293927805544542837535107464471996756612392448479494786100963773508727176108560788571439830048780623301275317188849465476017365929379067404392043886087152336968723684869337315163118813000593115915588551149735146278410248190328354683875983680721503605850114773053347895307592267473114924195360152102060851995117684569854592543642579460879595838395545346584453909516051061697808793170745658081007324704097502391967598927367583811942422326303913546161458914942400740822459368414113592359585935673646090920277096783064164000205085133143025192379486119541068638615997978881934762652931314988601253977547555920251979116256851042431093900104685436885800613281696865909043829866848116525822696694288324099619243609903020118442685327218797986111200668871830784476713052696042266859409678246338440303989007533063879028951596602683517389665022482066835802775078670430533668320212019587769400972771117104469329566085279826267373002822044437902310845165780362611568614173556069146988694339812541682461260070872220672151202743054304666888248050691928415917731941359652554380041909463700454146448286370242560030040724218718514896059787091312754557666059621428187999348933172571186011669634468910050856372049849212417082695917169806420676786774890188778722566011649268975437526864887949058725357280101947424249737923526548414095534870410842046446599148410468264344018762172689929601691551740283073414369183929371178185435638404028166904095393990241147484083261952280156222012278568539263776449969231007030042175818658270884982597491448732204488455946597581428003523569464301754083366575922335515280665297986358421437839782917638398209274559793199854733543530049974191126469291399199724616756823784662136319516170624578409557390328190481987839431884754417597546988501591848473616040519581420618591483249510040421271360765937644123852104519081243371156820420162508505755270648861042251279659736680416071008217756497040092013864979802184505220772950659143593463975873465726896701696422461244366651767225058376177213628369280051795071303416023829411592025695846812957837162451703586378579400069701593734743800593366125576682651940609385122108623688221717012174897824794855870988451818874900119927022979894652888845764842723183870130870689480874780872661873698411880028627834747895489505232064066454435916533079231031681009323856101452672683982725678161957054945721429511996552763275367341293972835607939508034151912441797141514671437736729768685412905266758708817940734390882815955053034674239068954619364102023929240043881012012801479728288756276153428581143062008685630107767665544874164599652049574925061749934296928728119595810611039401172665044294571566271376406781873506598013529458881826913972948046756395640911549652199459704526424985022388123609115382023903796332690294148179034764649841921786748645211468668167646586671492287231402946194697645728584797597101772205657416952862856068215691092129413636718350186006621385829120351778829605069830729703964019877794334594403474746752793497624144214481428548084621490279302904605998595376196162043914364544209459317056311185860851692936862523900949007952946902045813305773976532595495788464942555634404394723799385439834906398560189123612812245838171774167694524211796463722341969283628429757135079176913924286597004183024988585850096008105155186847449357128150856270413405292689580492998701447059684598950160330642220878493330912920177047900603468013414248250385593925946480171506630659542860287893950921076863613436758220389500089263461869092692141809456322308252869184253619606495107373597537071159386749782036764901845655607436250517144449012538536516866108085156511977010730193977631398633813583328558235009280775370266964526040199304973403272635345311547052861806432251108889048940945470713411851684272607527415265669925820530718990910228767435222720606534107518659119209518023732900424338355098251559160637136414859458955429742369614960701979139181395938983505454664270283796602197759642739864614174287114152176226408939689631624054190697786501116399257266439764621251066156083086098378287051061764108902551048589148625841700862519395362142557191741570556899036625749669313740364436601432419468573342373179992458887847899506083591893558624800377358105445889763801279077366938440623520160592364443560482182414436212488954636010734259128468382926552405935854596656966049554100582483608259130272410006069022656566956211419164188516876953425209140503286062054091604699773310446580953395171212519745363382904563619988489564767929623305380224836046139179087353162042375054484657298197067759719302697415448973401999924174023843950180063671595815335669133548047053408155963290905862511032402233066015274592473066082793501450429490390941071759583908722413113810700558646169300243535072237305674749187244316166074265646938379082190912787059928848163884032355634519608470865072284465633381766796332066807074860302461175019617108828437333783588521289601238529956090254682440533957653928772976043023207205657012565357377533210320266058726257973144508362528658421048748633693161075119568027208745888100772174818077854321315722163535055632702644197384836651747265926423569793010042478394995398593926475776888845828862433446468698954096286597652760481367727612316772881954297209397888725742256158773822762386090876189188637196224385130832849688074019817843505712111961106308123351475687291316029717526869017597783682375375709991039645411837420613282394864985264587083387228967250154995469114837743277050640551881552074189127836743242822146954472938416447299527559115829453652816809096215323003677312640017295982781822645364290006623616954513090759512164655111535675141708177164351657877314337370708628437958615028891813883775512234412101927594543787661336241705740153080856808935219153986798758522073218630223258164725444587278812297239543456024329655131145126608724132709228125613256736406609868792709244776017624953061185336256432170241547006640383467261555552156137361832228001134887816623916647885144070138794748765184477978181982064795532589000434964728957073502969423121928863192971463932601290388516259541513211763726945906621674631804831509412530112069412624841411681651481581982946598333238693262778766425647325671684632402819288343032333271482818483844351287254983542903198255885361085089331182098469581931417585053473539572340714795966312009388832390744397579055179424127254331278404351247129844884231562593006800319674843046877383782787640920686488965816429859431061415150687671361150098401385513590799766659939429008355464011659763567462421604684570562630261207065342905286990820772616843218260418952833686650702208510174197433642453678998663219070253542499558362580625504733816679177677132447226426949770643870623785916740326893753991269414635280444552635164059227665411680854217388010093317784071693520981625200373839630751787643745510274809858968076647489545086840770270661074875229855608646030088559641141549022986747711628821323719741855737431028889556687598380454600402357435824173415287014870792550052152523991908250347214166395991829655901624965975297676247523322145192008409350190166236198144282868270341352723433260799206946428342796436052654292917833729947118622772493051461993978961916945343452500521264475688032588520084181962773699870002952287611789540031898299405247838964377262326606178855141774129887851179497794333401880661698945977154956940516766871366637933348341204277652876802927214651313971565316434592432335353928638363717705789196224400388390713120812138795665433599982027547376086543383281372172231482188645877977524644959404539756262139181250298756993718076248355775688351820000448616372059410279890457513947644811761023994069989917835641134993109020773951434407925097536040506463574675883815531197119312742622017933776981014065392722087533040708201750413547089827616946676000949594256669675099081582410840965815767370135663372526803682831433930584391469820839155820278761251904819376922799118993145574397008352270032236995748002707140438319106506341835232912539393122738924133356487245503965624034291094454433223729655209995003350863876904517690760379498474801995215865826746735961896858884181050163773064520198009245073533765901653703020583758942066717499414734040944865192204989985448763830375606884814188190434742203362229132560471205152788736491474289636762138352368935032057778437032804649544872527172624235952406769366507459014452732281404307903269727228437540607534952575787929372183773824223352913752040580756235847014341764028787463026828186520438865864784349682282005220638875432558010695551992945212234924907661645299732074788292389615271311798486505799896516505514108654847160950069039090581512936160530438939820694134478502130027276104524962878106866903566512145516524876420281084139150398987487680383233098435808243860382092835207774034623269082374154787943873800897232806177158023629429269323937293385787019601377727050759532356119930106248734073066649804844002761862446876939574619609461517703353731133249010370929855734809766554545519333015734418861468019825678748359462961361256301770887764338770046309707552458064674990905135428275380719077571546414803833178792558432026672665089092023758441933684528525815462501073754280513999638128286964814103630640432085494507879841466009893732314856481324393051384720566879020484664794105768771949909344031754716710117936613414604140709934358041219584906160009313366019592988166687593607328514783748367642841274640578849927022577255534473038068421736926418999254485510990854937326503120370128774760510657534674517025865971527598595225228091351053837394089163285352132092498117984503036488551140051639306368947484032603876495434012669184975154376811577428556123890174811505412905981652236988646766517519191381455763013886268445514127935806861449016878128154637781134868376706391840949689324797560313575448315985121355990385311282946573250269748245053000133356689510883032478939049336716330517023150343344956468868864507881261088583009011307999943181994721188773248204956879523407902935852296592461725186453471226634286824547541971822696228712053195893338789169474768289965006633905844571508286700592321535206893190038889859826614729143758212214279490018241734878339357904265747867664234318113324323863307044731315845757490702368395065837268695330831525889335908311031434116480065521138855203655121595305535191903558410396938799969030080966634794095099334451600664555943048320408873771743507928049848928683696241333377772492424534340490871028156889513409254698417888957656167840896231224480333010519660322272892108856176473110763111266830781475801637064842435526188436494491761444738739958172192400936694247677241214263313921670969412927486824487894674014020164785361795013619226324506316180176317070652781897215549426785897779891544058784417509302804399842211169580462224073095424015416480285678402821060910233375107356638105578215444878661506196485217892771672138779622534793661757462532336659827609890232794679435385957100066663281937558788848549440131748705525244953970895351789318217815075356272422541241512194354404536548651567373598923605311919497942745806862847656465476193174794683957032208565124306099876324543474672362671587358447677028627820168161099774674333182325781487349077227025863639908012765199786319725295000849236546197752339388011914783841060364762027451906479496297781970816899329079968207886832391059734208694071250374153864930886177432824492783189956668025847283208442349226678131036419208567430081203750945274333189577090977591695636303240452589295203849999610395864973259425785362895967343070291637448327317753401180423294995346535196113282171864365964231509953435133339721197380120212069299195635969469724283701556434212366804775180929829672972116970829063220868770138921468824289361171846047288096493100279804036191391816313660684653103331111834765221810372133952752493907754946760608733625166106415358952434762819641729975839152787595881084320796023695551170381733236789721231720360161619339410056678129525330356792174772318984243926140274871432450856763612771701734675625417262532113517261697339048726076116658906779780886092595257873547964263757121882640873489851980385890096881148892034256183388901961210250738195581684646520795370042076516767681915332118001889100178800546073610257684611394251505133610837237025943222417582609157022567443408747147821896642910301356643012433109285068325674042053471286260439226779351388441145677465237797883378307494305763281743218606640392865706432450121093539969992932555247795910005644701197558294963800705342300500507857648173615194186560317548671764781098302452643645501902451698790291985235840701589122974646457827994117251316141772797613933937980511841220750638112759632662532205027278770574749119468867486278102379018870120532321062519022109926941136630234825022378584286019040416653106326881579330057989796273960120887798006563116530139034350207572924234607572709637769090755092421459853507183548972596078821373323557761388116933902133685547161869008874861903829965116590237046960412775117719892941323028691647601714304125773469454609250755588350562956502271996140438221976718342181619257831260261294455949989444909470527296319537408936206825440168896981840890016484430025996721632183516259198782295780700046426602089212247729508311505038945595865289688762477428278060871715910723135807113418484396119740855709579534305909840240071274914759490052824369072725206754076767586338340438101499822913847338298146647267828692703355067172502992647631920629915786365679767858893465516570202566147756411390089192762466387396730841957014831617239393515063889107052903381914473145432649917882403982003105483458802264558474834481791315365376683512423070895133334504741616835426976418235705706570186962374267539684818156222940754428529062915546343784474624893354312259131213277644421336132610569884472041433101651410446831361087380000063872498933174981296159927922539741875846724664627647560040343690475952087427043471607952506353340680030117947129752461448785314305624078426093058232920063672514957894847829178401334684640137879993291692824103973619223537033723415632777229613821774787714837146694078222453956663804483063831240171227795977331834240106440225207046548672336679886053872285970016876689769146133205704523248684604105300003096059436672122995428929153193126258529609367525057333275840428796909137686426449795520835453631518607760714138588752684533360794605911923649788583729083607065053816558850266852045113894900579697358567423976982104510872558351868498187343141849792086964896449637030343973190598303238442346887034057722106581901944072795090107659834050377117342582145736472292992352735470671489347510611093741702176728921359456971927852812767188163805239813830463812038227547681047525011529972347932220868835022992977696638692029512911960699337234492306294334179454947752226635202349750023916849934904094330592550981461958066992656683864047604477360115662850979288452222355869717731726950755472514318608600730040957043787331961470060144313138921720314427225037083166220324227632078521117318516074151521024182572174970663761139210434378362275049872400237333018246296990365805626179868834417267548986360047790755361773119115301741116218822177847131953714230314937204516459910395623358824710932159187641356373507373503406617395200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
56000! 648201988625447340789164651828956204677422321772443553470500522741995618481249335375403290696559204055154199954252559306955547304361136934108219360433737784487600079382502213642267184379069045255038867023245561501088588590000254812995970002082364860288505641670947340387676731682191925850737910577354680959110711683262762671237520190081793499066799094752711403153485372929060728151649801562738870011060499703183860862265773928107439512701880076579256909213061823496736344293497618398368638180278005447981025437477785813898517968838947463879672881167060804155790342403237807117263986391776074151680671283080172449228480114436931562563921421592619084331245581088080687722167618373439519771812669447978367949451287801144290200631322383945674569344829222272416708147425799493985403087132697075132946125848722698116237065972451905427788742500764791761993183660844032431242973400199185117906689928260266914482896543982466636570970444087678637266749147243499170999330875653170034906785808142874960246350211274863570564656176820306354644150068623906041474312856629086892403520484065939723327226036344988470799996600401657447888170495584663616257013931096149804856913797286440676298286273889874319055485876250480262752490044174881892708307478049244221815320146750600976049072340737030112125615318599584662752082403452983292088133210766074729690630254322860624882955237832854940855078607088086888875484947830794819115759943481911636296153362972630313859894915195523121544478323220497716031356975903718226230242048922982204955076868119069098051096093481767544736553104567513152727124491237422838758589002570680798128057035808595027423942178201986888595464872642408317086374300402511892284379613667515356131583914317242447890947395868159407220167274507376346529327236284166430566236919782843315749371864464381395486597765367518950491405318552640875932104597290250666091276700226140840405001878416168204847457924810145295928322720625850116847595889113793297763167192816094254565652198958752224204261231574643765919763802430108936786826896276185562453608726165877122511824060280860178523525962118373263645575730799375245234194470969907723221020055867514431405975340256159274188752152453420611268475599315185645556659054913772456256724337043144557151676640484429844855858527757591723463626552272821371719481194690251851860469215861847357920716710336564060590623207855463237192627863711533397830797005722056875894906819158716461391011646718207592930247686835520845906771806870179130147468971429089899104106266010351168739072991298207488144209807959244882134865444168941793246807469551963537770867759439078796011099226537879519652056057835336399593113176886712368383055851133462657286756299118911723318077909434928852013879211759990416362283168214668517764341720403327526206354496633475224832532068184116737929294807076314248015845353213698492216827932697886730607322555116402389853839744051957425220692933172033462041384404934177371501847344542435872768559789172648552915978696336596753886150553727117182478363584106728777947937052970480666576012780821087203179840227063324350255114072938209782066416608965781517415624406090609987194279256635190893020041460121961289521761008669525729780312448447297620279982195402726479412955600069154355192293537009760144162265944522771616760191818651915784828799097979091643312606766308751622372772482719236826554397321202384452527166583120584865834180555152405293174615637266990537656819519723523680711492638838380193837915725044305468592641464729475750986340833192526384710209788922034027703557478027416124242717751549215880981546216319626079886770941987974485744829804036824575861185956859485019953783621151267788113659473195226140920466121266091077035481250888165589443692117860442032753545378888532422626721742734117997976880057541027222601639227127258027923688517981684495705596993190901439005410948702155765009164743552765138718708270716682829465484065679397900325608012194126443046834564821917358166132017969097139152038150599125870005902179371944157504728225664701665881361692670367750280655216418570266699403609258894550004634117130446864350381260707323123313246587959683158806943193944607205820877420199143320106112138266991167374927592416307953625376945063939191648312484003194436402710066935032676312038236345963175543184816571271774216573158778991187180089539333004495647836745412363118312420083640225210035130442988192487292233818600729491309918491944464920627470418715811346058290243333285419667035951394124881761314822607271384625993926386879520992263416764950404128184068719359418596246922081799421235139883024019969110463940902561871643086121906896228078938407012260685901698344352299938780556708324866586180876753131343732761230837840787414526479565515173639807174515564501173616077248947465960109494763327845255462752380597400858646191783900725368977594065751343962970562905445729436384530784013102080744937637706233505625092823298841960066385052475950111018697501456106336243897831977382924081180105106780505848788788104773355583974967475372957971310814327777986267869530484242754191264074243260413900250877279555420050880541389753437374702948141622515325207622160542576056265393398261444737412855984628094963937929215578389780380829143386763186989810504214754478296124955315179811220798056784013193920338300183413541862895014770334453829302673332737027118650244127084831260625305469014718297138252353323072649281597157032601578440879348483459377357467940673580139958164399396760043869300274493023859354595274394512584445017219418516266479991419418324338468873178789582921624107038148724730974831738953106512762542448941009013966513324110340177496140008453030539612296254320990284069629195621853496231755185771628356050417153283945953178829020253969940118031205171251103459211231675416863164623636867577608269182624643991500232360605056218869769001917468377216385192433222519313011368682834478644594762609643170225984930511736767288051285251946429291523719407869965221868199441624143233876544286425156377615467031262751684182122061465816964877745333977777275269630117464170925668128366697710534611295747359687422450095687298339035431667028374245613798311954609836404605331353317469669016314382864820925974575606703783488086682377053216466279170801417426910209153376619896578521880311336710447768780086466386124115912812740972060762768855912527042892010838013782901333075778435500264557198512354541296815627784970694982405516326231290399295075280419509509795623445172427551553860757243809412932376436672638372131276885845943965336844354383279391849068927346694011397067550430645917548170659055153369073783802303321692971026863757973807232192947380997394697480453800255215988335818183411362684191425383284810297183651700158582754687854140720673730634252344202818019796734180281615996777460634055891169159256409632668786629736280081581310012955416710301741799784494841743358509596179595202711049426138706554049858673483989337217160321063927127520566060642770731307583571092574388410720857461784379922547450423792655869614372484821902578041741443413495484841257838650313407007831897012825946453076617471118075101688969706896812850417090427229429934326109244237332612322614592840717377347951682693457820834107065534260202889296185679845822773172338835898363632881272587895177287639259046800388346003726705993122490240591641771939809063355827084723975891531426632137122547149158329968154910656921635619582716468983506573768128893327254512608611937521253547223690092037042295995330308763127695023782612580939001582013579742275447697714983368365587978801797367879473445731789112467427844359659352398383179783035206615345195084835310448229181323017145170340430169740738855744328210803403721218603008217591074119278911080207008324564057596309475860562456616640890189158871258410785997830158208763004385993934538128636795747526833583786925552692082600456119868201553961219002654027718480422552947711734761695673852631266833619090824632299911180665689475019987513463360061312481358029336615323718770642025381107084981877440986867276618563317715210779101207589877659972208240607093453840825942041179917689756572819484827605570379231191456899805957724082269734810604523288837307695657065119512362231904206785368866557422333443023562423862889016483796664497614714970351879576419369198759840635363453304369364674546132618142385788702096564657697860085487293355490894617513137654185526389874290638994160093980364665982090794408794475735701830046852597230947511969019844939714411342416977301115244592875245962087051116866295669973527952665577578776643076994073060577619025654099156349917919941632362456146833935438299362654697827588547138260378767787947419486516892996893945313192152725624934800904793538800872905536700955355146038304810753990876772138878452423168087489612706238333295606618321897618512750866440053138795269810965737876601847830402022018620823460346655454919298345028762008107975225938688338166148101996842931771448207588708100389911213771636219427895027937730052716911729268145663825020154325303864702370290939269302594715573101167156491907125860443993996702073258538817070790284312319294661785193091301618274858668914477872898286819134676051649450546787170646364475460015252673419075875467644414680951290089358986627647837565615630854222106500778559007967782672227174874622217507065430268880493606371142507214996226156194857573414781199406004155919214537848142203278059394025303850782754412079521877505318272248055678996945567858331235815568599550061752024125752388753360361577335952736591434569538883646011273260862522692916683478185352180995799549444766566883511060714635341633950766419286522691749225441273257356510889325012983500995967427562312575378277204148882020836462761961091291297338440826950601629362869599038444300774294432753925588901057310565405966047280840194382696087424393529337447852434043738775454507825436924631731056206262399416079190725280594443149310622792387322022701902786421442173566448475755204663964352913653190694370150303716421205924756253205710284881348334943211103045258077573370677263827853420100912683400661213194811784949142665738629737638734487246664517551164707822502981566028503517599425265967615819313487161855049275459343039300633687242244443259244954802655899126818579022678583214229110431126911691067118198702206320065615744134677194164621683978473873177636747374752580729469086597811129626877461843566598344712417152504848206254892651754881240294969045894031349775119427371281290287958193054908782590166709394949512942730441545245464948749583089189977908229850391778513886230903506504903878066477049901868126359734818004134864286745604202064455710505410835489222635630074725353774737100827606201525969528407783278037192151408004537467547029413371474192281408068925463904584199238238213233477532210240688908715772804721457691800321343254892634522095081375962692063597940531610009841628499007705048709505728977757538576505671865196814157927069748040546444215176897919910196505132963736346633930522918897484132907740078136250805823291503292915720391674534968491264182314090854726261160959811963138578399047577482549031328080944627569377762562350343355532939537463563421429734720435815134603585927373791987845623903427343808796877315582820451145552466613702634697841131295374272163356500050804797205574659002272103670892840357942105248405824313365433712306076942755765499941968697353457248855102521017165114664314207000469222402463188431964441595896375325097908123298776807985159256328639750718430124159886654212460963339662401695441920720256089657651282806731824127445068213246709704303508636198049581717229206532671297481833959239174615142571690347728913291197098626727738993656361168617077638936302116241276607173464138428342766531773449435772540620190783294292219412616146006585728988463268525588758783124279853501300273098620740530613482065801286822561766751605473975229512823177639193564507161258805399928576920029808726307304222989085226483642036227530390338370366638272593659532132595107998765078806990996707999992350703476773709563899000475402924692672093263754774253234820834510956301310713441015710555109781122390862541034857240444341981367183067343807323238669245469159896892624470400149604684848643861796683557835475417733146524972938680940592234989163970557820184653176124643475717708044075952929861429731698740103116465196091507240875858188531189064277546829907225070884684422561026473641062690365577095011046791944171035534120462776636377020697626632676289435046190871312565675259465960446452128703056861188152840205778756990017390746886613552106807188188452755696274416460469772592437613263908939668287596785132860487330822536067720589620477415867945360967851881172414720043430292658993716187471560996129362692716733106170397223191800313400453009980206954994138553572573869604326587216064975452725503036536963314947562496914377633073253025324804579441453007092072355590878264517147254797126300549151490699612184668562047432540332726347302491027415871488987456085719750998261747363400016874283584680605940180785782779359928243344223694199873366893344547817239576933356701781430732224781308630541906345599845050634495141578111627827801631719826423500182958377230958084148002076488839372710007918855146622072967062278480246013109610821233574489698345565695235427127416081966726038452484879196577595566891145195207996609240122381587966900305546957980735658433180426501024842640927398168959552179293692870214222557381670640929820251787110582664352462355071611905055322471144328327705460077963006313162014588779020729160585734021211372509530626474844758536706225344331248137298681266887540413937349062195056628550190909078939131748266844406104999883543760027463908949836403932476084049634755520908473855971856233661969583541103704686899129412203353286225286761180757480902905925230923267163902170446457286518825731265472982251322290834170214975235516255985174801265871336794387460195925442694615208722032142321543323147293650104041142287284763631488983267081306936791306618665093191899597677077210474695455086542548127362421727577912117385192994409022348384380004155466187050254983482842485357680538857540540163914345492153596400195061865276711836506283001239028447485321089578924993401955404244592744083439484237667007731451394469222672810256176730203259000793662145453633859419769562826536558056579969930579413902430028221854039242967686476265941381183096131222289663904829296911503623678941838871054839677851428580147226791175909292533024353495178264994754251117684148391096365596500246953464234768403973119882232762786040465998837551619738167802674048957448461008965041541438997026332274748806542806815783080681772327533733163032618969130614635715129156682697726986808757420089504579994970122000115562020804500085595408364469890924347545144653222943896790563563657657243352484961345480269345107613405584321999646228821933641108813521275807447579082803737170092327687103155587519435186142882502475839670280053490224240515949392268813125447319317818334740714688831795858540098314700233303124992737543223514858758983621496400441942098539140944509369461666141495881184838288648058835962596264535357215435571580486689670796360166839577564899739791246761229011103100006983932355507943852127311592455717563559911053998460613267128785969819345664681978944235725859439746032614109338977308585038922353190393178412409167377794425486485396231485540235660945811391999172621686958436711557155675306750854208328963528234270614093465251570383124318406762814604943344493039479820277311311139658663975565291730140077200259400500636577003497252208447792616664482371103306431450265405856575852579751336827965858837882116864241234302594860514896959531924280152593979316007556855527095776485133855038260559812931161335955461790568399300582071974760365709096259807942310032782952646900104465875442946107370487003113397808397366870806363494669945378503280784967865073483844040559804354706277220848313720527162367764301374240411751308112221249234696404347576499041559701223735946533906639183554608557481238683960953581555214816627349099368728125993097443738665108582850779423944165329379949831354339529654636115616735512372475716317590471569365929701510752841174511153753799127876332571836678934533800198032877857434373713653885278662386970211683198024760849903581718882273462988574238284716140215635847548223165096711942304548339168634639753661858911998420136860647647243864409646993466766774859977417453885780966100957446165497258668846040947302703300377856478842322034345509454864305451295529261218639480864579424148508317041933510323695207574854306903846965544122595799706259673219249284525072974357788065963694318718461517581546681691758253765178952088079930782633697943004962506927266368341082809386000192085785434697163086091485341008671012192361829141421723503624144033979794505391055645269077823119497093502379286016904496778842109863883019100630580089627077399092642169851178471685509065632207168277490950817928310599169225020660515046969556492598437966953703547130970067948935218015048947038367289736782667152131824533422495854290553926011856186238743708043515769562219021486111797008555730809892073126197153762287795171845780761842872101059301415016331861176604584159902159689634564072558324821994275388571001805161365391283023751358279379243783516602913651784629027320420054684549625835461822101220325484063562721015636705972124300928433255823450979301333751323485718039960336326950991116856848577766799770717865740045110962094929978071139505804522207183035563690476238360529763038830287011964804423471152076895953013999409915313218663284565572225261012919646565159423620851877587869968003053206597366358391531903100002299267519015775248847971432657608731005787456511350312629935156634680174218183891027051905093722865321494137644626660499373379740654758569057705462989139901630064592346661739862765565477668300858481060231192049590050831648499755375399287642127957592100008526312681833664570957017601233639413599981753350208328384701121613898657350246870031967985767801460764783903255246797012268958166173666968043431388667495482808492344247180652879404935420975375613329174461566333166023874990719292098150713240160910649212182129880409270081381959020277436366611940065848212171198027347064117169214755015475987594523104095915944679665479082365121694841319647068297324770036435279890235815613391301923168640175587070756288336585487470983175464938512953781582754250554401268330565896934387554243490581364410661321055448119476048395960946178996497672706668646774607715764069237940187653361624606749753122563746290765534196859249919995795681882727492106987451558763578534904437506046945835072087716389768801720021688193706187335755362291112012842580199951564062468965409707129731004898974885587047103464135293112795073482993191791314150152770291329157287997182510986855875262488191655049088158838917308731652352443398962554412885704876272756910254789143998106752398934846088694881345871046633431298635240580721100430466459618289091061517192106907273739141527340872501988801514185396581733084551357805058764418584909579289967682453189465507661954608585940004648822613046605208305696624482890905383065455914096503219947926277726869494670035292931131857769512547474178469278386426090865512393984230900952712207176680051943975431726894918296586563603465069950459157897116627737736192380584254023511517384788753773246641231099008031588629434459517694530477021430860494949871298845374180714652529475330730686913229940323839017406414498216878286932268672078106902195071404561729559834079780238960272110622193782026839821483881313633830260641177631240179421018014059561569663616998411152130813971867150423139171828514675313252329873635159147465327202198347751315090268334815386586509256973199248405084766355435135822486001843639395732704572118027771156345288847616646119620061034249902205532501227509598298757648624120378147190110232492810406304379532522963397350004883657036342849725091523938915551091718364919143080944156784345265829273213112870022743065295356640236983547816888930168145828519090884827616865027462841060649393578459349851033236505267289862314493046256753318424480191766536827967705917639174303379043465000765135281026189972442261782024122781513609056872755883041140574455884486519128139024793516889909259352374924811278503314224955010678177202528488785359319213980113578019707757430981914580676412368328476326298406704402985127300946405144446842598098552457528521304887794646430100323578130575490081156318776443698356791348937028804223220182828480215458027980114131272066883351628131071477104781089455053998464854237664598548782038655877046484269267151974448191863772390578929051149607528635349277298424429886467793493233860809605426065476591357930751747171890720965686485288730232464918164534990401512971857426146242366642627051910122260653825733862711620445025853677020211326724883562507488376142347334092159334687395711836961503995108979557700947453638620939785792498974801896682587484494347816958287547166553033825386862351038669824783510630260945836168988574940974115440638677648173403431058611724904571261211535123439285328622634339697817469887394068718995258182368362509701719448004015218711476191065076660350381441741867002960774913266288257131334828400039446438012787276653176440210736140304561153514859333398057255582603718970717866890999448450158063790854642214737735382031480492766739198136595637427538478310808744946165869000684135810996134237904553850169315702788348740835010486805026546405422940284602859397630794994381573174328013095078626459174904940873767860946346542661649996485315107167402142042977434601035303596782543599054941961431775598306729312421533867684429085181924517026603105123596928350122982091073974182758165372828615650256434990216430558252773274084623069274432048696064999845406612524810053979474627399893229231077094981047555200087388200331384691162428549312219773147083799195276838807476511109693253943485688606513854781405631201154981779172855221215026932328360712981918856803540060289669534977364499753026023033823918688480099636721903023222732165226323612979426827062239616891811826447402406345004041799209656073026635940507156072946549930869091778774031242457157079374995619443545092343789463304329853430858044638466841474432943789174378974806089299846223596799050000617123202963691619671230599878764471243907182731150626624995188425970547353811801659783532921424618454871033273967449956724220853190223384227250950393652393715013406104529219614142940533009312565160730633044910205080999563877357432497261796743533680032909884458000042939006703539803447136887709794760133617208845981270928490779079178058907750840527266699047505413663764462926215572527228612868964300526933309866972808898072332638861022532666850797303893124246149184950341140033490720876015810903554826477243011360504524504394205567195503014612762985610237987675134693238187490468512590331852835422648012557941812639077076917575603841834220693802577113953880241588058324643287912477903447975811891202624282383770021060126065653220484665466812211828252289378310468827690396921679570026198045931940637962182376131863038132237699160325799315545236879727045029152926308280691488696829700137627842497603505898241325504108229899423197507090261157006006010455679870825945967829682246812226242747262581293290670928502534291290473384544205027421806976630725832468134043262582806976276008140937353586435599871629981012482500077485054271193961424320514945959149160962810266673999477682316398176421896706756986624892500581125816207874032308391099793060594684877035281219195345923703682117862670076956557426004569904277311491590941009194569132169366930658174576406148187684379708914055242424066536060191182475519902191818733336100739865854071437908894604508317929466576512760588600794461736674949565816716202766712354924061843067122954301378493862693875861773622801334929828403224905049867411870532619063920249670944196819240730845098728937390263981042490001529304054934449535738487307531923545617740267194794118974291461248952075916870409858943292915751439810524160942624725934401404777387407844837762253218159657191427261627231763571135257228722879807153233234509909429974406699410444776696990494038516389468943105560408661246144963184068747214996683593497281778458160262817855199915942242349024280499433984661650783508426962677053926472174170379035916577374368980197701364971756049324488408379696737118768558009490857897720924902521832904151054592370663656878908403282018010737653036173776346557036928056334939470308906778666289354798078779729784365521693250049667609807873262430467987797904199107151314496792702193796977086304980039338970020922566649087103811506309115937489436910315206060944681429765735664162899031254170600153944356095629525929141438889800258245767421182932205880969329793266601846855876742125629447387744298335000560629850078587655505640364863083059647281635748859015334459602623941258065452121347828657853200735683612293313392680243102630162497210298042905329646636780181513526862804350978224450920647006727020072515962581163719231053335137781866710145016227480005269995842570253552830803806767484817135473497603918870589764776858277518267855135031550947916213878606283832847738046564354284899595126536229037786632605553211705243920693825827797225167885740094171064888412872771010268044995743555379911617327622905353557607350275420044643141269571104041128562537431681394363143740792938830686185797753002393883861506932180543063551056207327777291634558853127487034465023697404691911777197316986020128722515592709009935729360384590843521812186287212891581564264634804609452208502286489471624932754154268018568135315486047752945771203105117042113350408052879843303375947328718087736463029323186677620836815361986377629164708309778370044681969144195877137056373480267998748577551216663417216569394441558520537204420180738765804026665849719192979004602985986888146127341163507145815492250313325675349173755805701427112649231130594058895352229892488112500591766526771516396404300442205132919959799473993352651834211871923362231664521030241995398770176959584137937350858166488185304609065758750650576715898684476716275105179275826773148559539721447789771945690736306786706677815883214600607296484772563382029158258536122322336755206247223712099908624231086336815878378076772033285438618768239764021226061792237071011726245174986918761133760270579267457635844399489897812135302791338340257222086052650233033532396887803126890944573062822796534632330515405679208227095307976889601928633490882766146873777123933498645340226404819651023797327003716432113237248753105627288979277598428854330525650736550331515224483263038050995492859610453350051336382918974664652478115399348742753432112532367544912008304238459263709169813605162801341862853710923002081667099178859202982124327860767887901884986541219035461101795036982702903560906992460520338859207561326798455444792172721766381941632505624604368014978595068976990962079724156673173206532539875684222184974111757327265507798539192249338281016264495241209968515953934619645235051908842726218370573097800011603681563752875240061325916021177849699994950443720913844670010750727876089012731571335255279515306161886385083471257156748654225230315934593891177737712204179487908073074911315497264961585937768001220711356867109818616842222500620303382470627217010819856544619853945268624776655824343436427383337553429688609298480381298255932398975024814998870066146026002854233901827721821592148920225993069645634624890969500171560117911446858029017539060215425169897869363692583560129000862321956486301512319456009878105410371699445228541581198619636012091281375712313141252267100712604781019082366728859011498975567427361961046519563607351198750697945425555868326057552925655376302462162135964003432518006037753826185012171811625054781714817708797635443943760574584404222765732053117536100921470410967847931754103498526298522384619928108992660892717661770084644457891405451366746808125101702297355408391896216459792476363200775099513362437794578642249740353756913461127702826647169189695099326210862004125322877845864658529857351859692432157874208156137288681912752862280944940685259700048822368504804719080670558921125058732990272248471778803704128901290089465333797153451680072184872416834557393763613156588319210255229385948278184575772524669067159748333795068014145816429672268421207585423545830866300684786807013200216679441239534601082534069648180079688126275683524579608993655077470777924864622804425942781020512786876759894471723408898504826736793999294887754052077838603229513860218583948538139786515344471574802619634501005268667852592600321019510183942013283662211318479486482706551169823362659765836041484066239903279229658822543719357667285618085685698828884830001012065321320180984685485121938523907193742510387259710116937456684505728439374177562360725341970821365018899928475585484078678606386779448349815462513329648712941241484729137947728952849108192219901712923186355725754051876186156311150418684377672168698125246160379290997938497577908117584622832670941485524744934070054685299459805030465217323813277705192249023775192550208089415389176954188682268968633124546188248299461038635649972854512410593049938057256939597976715294136920816916972158510524098329364528371595327521196467087264797484294543440213803790147574808695295544222670290824154004872930025397806436014345007136571782778790392278681804493307145439596087010065864693141302206474489354300940174317724100742034119073809168708140299490373722730444228641087746452762340055201648251743540027791076955029894393685807368146097411514525149027160987719255607871205099019194858144248476416271575253546786827052076746596337635062770261528133726544450125949540079184905753322393449956037954484706428932892101669082858916586786663414441756035509845656721673989606528354955535662334336554714819727804257514161092484140650112217447519020543299585029675771203220886151512594507217435587411677065656108090914842823533080672856274292889193282478359259395847420781064231873070632457257699023352443982265880059607500541977336460045431500884490871391261284774680749798083352648583875190559609364602326279619364555150144460188490492092500338929105851495552102334916003201309150399509421374289544575110926673067036570609629700992625852038592781363310439657169967040408322977659830364930997356284095494432349116480501906734797710019169958036398466073102844657457917765275272245969602968701821323919724161848619892160831625211307486472052584432703235140753929379612485869041200983061253768911121323050837751512309905551043462405122640802194286377122966108823680090891586216743382813011416370273513898235923662456273718967755897519585282841142219925069782636431526967964213079093089400005369996995114086740996889257551495923262669600645651144438865666333683386119066345641018003982841857876035359145063748386711956877726397246280979082261306152440166606896638735455496230924087368621462564153696167926750810632528701393446696404591749625949962815430855574197472406249054976362249904328707584268538554924681137482129769746861167330922462930008337976537349487447721087997366212532666693099618376146905934343759356925456592508093476434784422628171249515105352183776713485705592174599986563987243414426421843177891199697499678146584420112804724597200124992034719372750004834641776629690050839832982611149321005495780451708783258302956317467082384896186574676087868435940091107305228250830010158991438050064505182008938857540488580659345975340274825438852550474070630439889711024158481763555859867499023827790718262297461239744789137098459477139916605832600698677356364364431746808809226673438007239153119382619691963360499005912558339041530004373226285194125265939372631929663877064431783782704573602123648799305144360314496344729873699559813722204933628437020525915578774894397035346663798902695724656521944361835325919154883636379042780183725568197756931683054653041997663608089205555795494321954865484801179224296345412083867060077583421551833164114652401968360103626808905253089062894412687555983720229081806699744084814825702358542751905389517576380050719918453654218961226209810627527168487413135948721625853558633397946159706293502125876203092747152865071826436426205179047684013152161511187443543799171941424497739545428731655831970495642945912725383379029386059377121109032762861816682938601720476205210733753328996656509929991172120820125250131630086830760366229631526102345076142031968712002739269416532787836522356446432958313819212636447315503228572335720281110150843822322382110234607486277960675110343000814269178194511160606173981772044214941662719789230791218611775114924481110823301067899694734882574057494974508277625204781785300726588937983540312447020005956021422775173181218150180864680029909650154868952025035167199427262171877044282335391101334486242788963765733425774442148791510262412792269681952762319178445724425507573656566420566527082296437605419212065605671464167554290405725223011958383729832852412490798624611643785689782531829167659934044370396438932988352713122006476559972510907967362645772890612753854457771321008735333930281722596840835292271715776397247779749641521322766377867767774078462195772149258819618619417811315085591473109872608346640460549399360087208056876515265626037678100597516998124681897007808271035730490891951857443087899419731255134471305924849992373275295426889685604592283997132242722807844924594200998060686452133522901875813722500558190599515747478297405222027628398414909613589312108319822728277559804208215825722393453403888294858216889656640325727062817446748469877199071302557716841207962009401027806112709074965649251219566657607230491443671696352168220055133056368612535574493724786391369255233415255866078950157534650565876249501573938351161284809370775688122522439578662238188911873409956434088732201322916255849101577260382750900178935928518530717083060482129948066854315276073797100390566430448657053526235315308523102152884651981946839768087306628764720839258022492371650728298205889860415080107288655263075378969633290050304579954007470788972074669145223118516026526006385500976655591507284784689299250830373707794266401967601997591914858690599505994805838131164031001980239253248885773776537612144507552806189645687803273366744773751379220381742357371484403093921755793121208225829887474783388619543530061384360255470007266088570922020521611111238713626184474106859517546529477637682072003689991765372614902686653383022815036122527751191340201066258145729284090178204798936924707466866619900929167163879009199303260189458965864990021842271525815069147977995701610626217550155508703518868012061689113145645074465512459010750347857397881409029085546032311417179262363125519215767244058450058465270213630203486516849449661340381847007028227800076975221461659105199773518996386440402415172056262996369262019820039552362952051580450010168375701334016092727668940740509556204884069401700082801107374125360352185881895873699508877490927582060350789398736077220055084155723756811888772648634599121712524289880384889583523076291982402944055284707364041050755318721804580590361631224879231185074071725866532542127649407372221153904836090048349207376671874922793672565945627399286131930917257668503363973656984962485823860875982774573178374437557140588469073181005850587845139144565175903752128914559592506213524918421394552680564801179236621349230395724797947593119475067930322734570616947539803138483007018133795495892287650562657361321404031095742328788787670023878019035729755956078486955411780808599280056890526536769890685908966980717984349908211851029689485331639062613408673179553582605122674184432785194829374611896588341148047817014641511336993088495025041762896114713975579686542103768133158492451622627656788468288015926679308633408826437447495539407950491389995535474291385284181858049312387480817712203744891886863436359292351130700069809218786456801750278440616532754997303933491060236842218366231278879063886788292581655730758887891518659748108764914527256392714071538988073532638815301093711891391277609751163514107402542365124789331889546165855990883448905413614829978756398397461377273451502262619285963607739982828109943851793370698582563860310593407230718716278508553677291308527282453830824683188295538537273769983288116639515140124897272901763246258295511209631814913389267577767766997714132305331264777886468373029176407711306425495641891660936604829316960567697623402083050989335103703220258928695801968610642614469127325126982971701852379607337641940892354426142949269450453672073757486842482178665063946704863529294440579658204598459233036088703951032472690174501205675408832795314533499254615344120840877431276793038619127607713641734341013657362416137208617694340820788442349232220711167347701078279620026271436645008420060890650181787781107123163560267967139213515386644094790673268484020300951350418512951713123555627123906055239301843561508742306598063725409847901918630336288890584539190206853686631424648319163662664849505730153468786664638940231752955215890109474387820885515442854592509577674808344907802404347878702116139877530069880995518729783306731718247529440699229526330753732117057876371207503466803943555215615549108988610781036398863837046533852750742968364434364646700321982237317206843470037693445008127756226573848050400241360630767346009125829412451234106563695087313817920190225781198580770048131655924611829920696500667990160450965091063958743671580702248767673628479507688441627222919553001872146496906697976642538220152350640527779538929873981818619614607381009904418289502910624057882569631479825476838125318417831846429810418420507151754470985791400155910574523772975996198454344631378311663241533715330027599226030452062253123725511947374468737151271457734407179702204042213019990668592482769714553901750115034732729383179715465167258798795018835139721906290014162783057253064132889472593319274064552830085198540100790009115188401406503126141322389478292234353044186340712487859577237434962027657055706958685634325996109723949407113200746853131471165325021831798175143069518414947934369380060614737903678170025061338803748768830988577196920847333122811818550343267640444454864562951392169381597273047440694738892192399757627564960670482058748263881385745447766841716774025370847607845434863935549849974050014156562017664788191277727487667359376287889937786146965568261053972877223214846076463525489859813267104890710778452507573720052991409616113854700838986722477582980926257752218209279084006142276338631252846479091179700786063061764216819118776968555000416704377775545078431615982443168236093082835632737624122698370766865282558440242518083766350843623929639413520805309267753136168717910273484798742019839777935037685325153446390283453885779979550052716354996792112475426416588655171013656708786338293550682173154728185598176671096819130296202521304662115110087953461147372781336381727257371922627769445030592624265769958039226100062396026398749523059064986894086273072102714522257400609501076348585947439761960116348632213923517183095285903960088640392722961843667150291599171944565190083076428773776013786948680966761340257389410153119329070271950408911746173222767689939012643889768129090113917989336607829601285854467998095296227303027788131104902988301651575925089591447404178991661661522091110512604366041373694267559771844852683141370634625243701822566668501490416921558844254617182078154690628556698339324476629922614682864942608825587937404896275245801134533892810058094122444713659076362107811431578472046672723690179516054416041256151995553054020060319540955059753828101654389019021674746046981242621655410130114408163500851814998641124409373519557094768061796310218502710172540747249265187332565865378717852667228452439127060959472917532407233326538376220787379253652364133343997842525928638015379493897267553454455311682937435325629382629870306024772059195957116803717687861599510779915543529465665299871181077073523281587469541093682541400524785490740108148657131083257253423416878492702384063644207214141871554886101769461711232962767766760546620590432937948264482868318320027255359289655524934200525360666288614352986232959696075539901319934210210339089489894699388591378429175091634956572030872308889923669300881757634931991290440278602947816047372336160807642903301802967279412574571802066448566534757202355107524664291551537669569254088289534315226728493386240624947698174223507153378054686052879220849268072706600881295532752422661126020408569641101454658518379124393074384574146069252347934547924948823318248251665227428140601878629420583737969014362909034054054238511778538703758740977612960895508707194335130483822106260266696033079012263097338959392649220620577606840597343426670254935001968758700275406601435049541871718424300666133050975499357479968045057486518764661803983600069483817854045098694405087322063578388215438062704942278559859768035920461352336141746320516473002852882898846261481155038542954712653675399662719943435348042887488076136659033232245037135462547937896776868724993214258163232818480163751927684729331551464640594911744189530858550292336774361267524970828865064031043326059667786755810706530431880234471145058758855479581163128598155425717960440273202864382620633649961153301363629025060322964138076895720349284451468207498336406032856756416901611901534790507050834979119451035132937573727785492082024300402392163714584872242465999381443710245453844374031470685688941068604720561040282707919042912838261661164405894377955680441666646926126046382265506215143027157165598923995585055964924319091105045253902406794545750182079716132553133415312384320602953224781578292874182516886623767179114761155991296958267276454072283200031914327176798226890349223519820191633314188694670622664387842042329331811667432052020277482259164152970455937832733610020365379563635643400633419485574042740274542973068589417038201745459119825537659683041385216348939368853019811290720022446128718914127410826119036432614692989022195567920021006345051763839239602082741909085736149040095417685460073937731544702235990380014258475460593020804643007323756553265104404091054219732822988753504529422823075622514183470345554159051808944402748385996826439999531152604542524082545158495489140148023507246770559838081449838816787556336100455885945791243023019135124654566011520861685012910150899191556823448779820405454712202588509603584445709730914332078870217099582398048288950912365787429518927377028549660674944955789962851630113280237094706286351119735436943076861639312421398035756269258935513296399586031080635598519503105272572630580387962801652159218211816592397278974945820156947509518716399228228680341283268076413293162407200308129639545159084714868180649673107094412202360278365742346824717184206752520950079406590507024152915508930135225290998077923696998595095556016597640278562984121229845262238752149259574716546003749177009319978766714951390584165361689343150159527295593110170875424774022831575752106293135174976486342738193715021060863409111736979062191503794420994166269211212270544439450344012721779885361946110791239601677574401219948403949199686821575022604709832188384713843641651912985247283145087689723493445940890337228487594750796174916873682876987445393597125954908715374755975863773069328882428798377688759015005094344981565658744217166757235062482530543343922350234827235094142739597813790269488571683640453714790097240632102914075598483033895458393498949861912788305825298478598197369080097303440450434208984624429504546426224677826885628781894059932445167012148867093443103802456936216425776165207382449055929859773380233459719429519523922999898207371484570621838164138540379201677337660590141039287077916403607815522235648342279036671348333706598466624178043926059494082432292191579943197019175393980316185351799638000926235016155200274259429072105749602375865278526020609796003555968280433190097816639188445912443797616564459183743518429179192092951444083872438254482442096576260590488520835396014596920934312571917147172337848471304095137467120037996373160140993140389141891872646768085934138088477777052106854805404539761130640928327514391153067907592221322837662939175013926840612588210801852591265639328204716838420328827176750232157472868198749304683776407400574568210205420018109923959485811785847609755696189331344008793146923485422529102543943372654884317452021550884180253017668789921454791949779137344843870710995212933573852489234037683506826096419418535266147525833107555800719366763677033430183751547567161754516413709198906792553024149179840648492903714658227658674645947928355853034606945858907782931286863412446198979287914165606172719010048413335419107941006646809160060856371665462841330536147191494450141840995657256396769718085559352924421186823082331485868822476250608016194248603679348823262726735596677674219519618478300646666482609359705431219671576204252152692534581606603907700802470916497303054507590367715842597514590980577810429625916160156523682736454313288096390197346834327561392317545867418821076103875523994696309934615971717640997844098495159264090458305616330237634122487105647300808103674175003423550163147525676434196503647478857129147428035565729666639304391393888670187507049997894480779369006115812522556280030075124183743109165658668894045640674893533525922417045654472275301366108795829666954946297068213445758063450658415668518566492236768581556977810016388116485637816236133976066945479452931330388879966638184371218178890707281679886779548214613613870740034451114191348243671044612623373260728300554392983390005803497645963883844537604661018087638509967668529716595339237492850715275669914790701780036637396517225391293678216620797158426415295613848776579430012739489571819568230397992712369164220368963684290478918556661234836879024851702603480957882162235314414396396137698967743403199867728073471083372438620374022435911837985353324791355079183078160226166542638943224028198341611407560059239379190429055256260292845728731116645032509286835660198114096924877227311713568168050109863741414774239606450238612526297704998904347114541486655045427558991654893389245645002514596413679309340010944075984620030591972689260532989640839760448129135526563145976694046529754209693191485337060163227490719514377841077555418282272798788961569782681159022359241190044708944719167094023395810228487666536933754838501887493500053596683131423943883192285967767451511178962025351961189039304859973594753271958912428758323559587062263972422090239359422922836203441339209508831169268972694110352353524862726754685967910709949636118926559570946664278901542488761837875803268186308491921230246271493905278728849983612877004584200164507255268981044504541817053545166084975478269040178404223180718285721998223294126943943464735770636330274158839096887606346446889252917304716640333902718460985746727244743862285107110340003112969807699666674825369582380352549368125448669893179641182348129367814364433248233632902399937944286196708041123810895621275464841995674698024907824482049277373320265057100132278344830770909060029734010223851911844202021700688959672640975403721390034204944827089691387530707276164294008038929017878080085349859248691864732718554851769056562888439473333735560072107614732561437522229661712941964199308208067083293347904847475792873247996791234294829963684399292494144714579593407596241200475970718545514466885735028478215329128023795541549540529884675979929512835937503860152762089573410021981597969182998300666791179949683877265425544947404695455991431230274622506516028242065257999449822221873825256703274090055040875606775406197239992483470084700884483803373926548751453621826433255329864559829780905820938753240403409843208391000652111152469475644234329075089045021234307145472826935755374224051659702368653398273906033031010033736703312168232656249452105978345624169001947298835445480943279421497621942182134323658997073082328902394078109384066049378486463789665328131480088130800109212170986194318411195098334426668454439872226834706507783990087031075659504745576472195055790573323939535914185690931509017246316544890790501492705292397567956435140490463367999687638588955918316540002517697439965296622408796072677850371502489431970441382143970103909309663243440438031837091208469824859574151666602995691821969364271691854978699989493738049776377057688848994729762544687301251035820959845458224717997452607943584026041943275792662721970867409382439791388794396697948515233073912622674740352617920063422547995545315089510766258729486768757277505406319441228048515589532154428008981870069764188528697729113231131319007026694024631284856048228293910263210346046214163166278346382177212314369933653689464318741249662389065163362361187322378164990231429221232973445853171955057355876372732711809290204481116781560330905468697190878724405856151553491669362103806342854191782294820207108618296865648284676756142744636435823817675668262334856537725189452503054470654921383204602289695799217163808610238236432389468151398719264991031968229222463984507315259191776053024568674753011583221531287944424639409455313654764771196166294227156288162109466075644417987861208575746499767214847474005687320834807280132623420108710772523684200669216770193877094181885584694706561645676123753414220747615576493579298976082216495646808000173639569117620014629452726065291807252064882231501155777567663298082369811422648172375791973428978419845782082444784258648683564542467064721929823942062751713947860512293458785940608140809592384535295127404265782142687262049820449473123098092239624143244055522118548184663720910024753768922455823292667169074990462643718221668125946290835350874307714369294716210808288637315591266979918861799733485705867552796829144126165441634129601717252288545455822097495432614513028419038914385733719395114274523004453185629791983740400024174227476538562010063373709229584372302675236842204392448445657916568762201061505123666491264568354222840866750801379018992239518034270510043922616176151455381624135975009197371091432831409013321478872385527016412409694360719532720974469457645286717611716831117526139275210441866665013226437657652404535159543560119996757082198922602922772009041048045303136445685851161312917040879279783250061475516400334503124679710114976583186650086825222444326032074445123937020784691228926954492926333323393795738468508354130943879378511897554822550849963702463730373390347786206907420568624467877687464221407813031994596847897306851551257282433807659477713748856147234349754723911231166094692601266867675203155195543543954231271492107601900623737903053736381552586074766396503520525049540985208197378954327810463377536462178134181613905717460144563750472017677895038939839635275572762247016546020298457054878678311153691030769707580842408341022529739420255770448400652727118190317048690632473127302000669323367863258725307901594878429956679547079060630751198992887208024839267709289987398708351848508908644925021631110928881409750644237397728431190256316744093985490083401572586733563676884856552214172894842802384533563347940077973053564123135726797300258844159990900435204424437824126816585186590823324779667570799963240657557180681856066972408562067977299294279723928228312604071109858109380215938694374929402805399551360125409106853253384039282147706231869269934095343792261746378670679790512342408725544163857640022697155823716019419562394954608774960587418177943773048286404843421205147155870858976800201422162876431878484959512573374926965465682204257692203451670324433262183449495415032923214577825161041046432452859357002601234182523066550351262990757990809621506493211557813457725026001748863579631228785518433695373585008461260674151476514761639133525196158558083536853317632301700937513326710697469761117373403976570748108977916437779353965432784754004381439454334039612908499567471880730365403997933585651451607510227781206864802693833647595389748905855608260476363841893190448573799986379020067030700571881226950055560165952947281986377868944422123149385151684115333444830248589799785069879224401405259306075392531640375795122794546139740605037418749384721847375367096898213221293330500873952146182178835163300019332779414113744022959421126564517469938533174804435602476749553091524423261058021175305974515195231615208965494652193690767985762940055124232926166228138022034386697376191171198911606311934541531369439311632904806619727068679898131273252640188596044876515701560251944570973336785326388742885384066629561416763890444229971160800277976021189033920649556796915005356078134487476295139743464014712181138514855955368060998753637077907165821512670200841555101895077139906697423431527204794668062091484660119872894710572932756542501882730888476353168595690737984229363022114449572735186163902174197738563607958935452565564036443556774854997626503549017567824803885402876701441620288291478564937164846148665712733654391109373335523859532094351996096574214430085417417803716014822063559210436894390153933924275129616411240860360569024318616761444716703170820628488318856898228042929736392326495676556405477262175699462538086994885971450742849326305103041287282566099634066035312455894794702860430985325809876869763009055248070357922819553681117303576757579243307748850372145128766258218719172055263679413242650218048733864264772898500060163169784675549515633068835241378486451218243711154476189169269326560032626206459824533027142105039865123337998576712911342529458289636830550004059349246915773605941179596170587707191441466787624276414181032769918824617021943550141301631151655891660764721514452617791293036117727943262188853799524457338031447757289778201606100906292876170481980251134488098272598765265807338818655887224443368187072055775708454697311105998618997695885194100222981390762445849089918212691385468010062437592767864274677154605320201852982641996134829818974942463363819167703770397348383820313810247502633913906884558843070947173236831532295184926731244309225813148060196765618221252633092943192386789232531502409055725821047709708035763186179362863848546927401266893366171750265355024223693346823922994071430202207667949365823575351440384736813193461707696118067484639674273394272954952814282535211023897939838242395264623827663970086672423392920850636560808990040104580049730651606220533793774319613104910528262944138332076651440191153544420747423066889935722815229228809712399267318509861872527855889684110847319296864564776696056159080700783555017684795753603173426402544741081719259535861228462615802963596464549854443681191166334107006016244975765078546616687461694801671268590710331939077457079656200494794712707075810346444566326975529921147955098379496766823798485837153406345695745262807243486186227545155628703241708251328581560155108102003405251593642842934698255336023078983867480502299185665021965937659609368142150049668658756932408564720163432570859565331225557346833983541611297975648685149166337678817611798824377506476555858664627081538409475882512520230147755362050602148248711844481371290481158350230073826347741224951328336575690354126791139391714501621344867790638474020374154801635961545420388453247480522276270979082587978690208007775481448224886196391725203121423233386384536031760365622846160043833316324946562189831800462602866029715148488441930240305719632865303408430160722975417130819667095922889985782823199162018297108499433786236739535367612559397067246483813073699396763805102514381040986046312176028513186590793408004031819317520543989809783622560486217214354506540416173054166642697395696183990437546536800098847965572805409253483557826855761788787130212219338739012666234140204557519808955097047462721582830292136360091218474023661886607908680028112685953334447830899208850081336773218459509235278099682982584079332077605306957018232134052195303014323477887233231596787921208232834618250802377332535535933493611947755733640335229030304624072183762860504115048985777633051862025716912365104209675578164238801141056201214056503912136700018163384434631913876473201809229037072255771704038676077025731094834116471094981653060920737257181866256810289704898710912121276953570718260550133553261427137086962505981667739459858275645800020316902780202479150235213337856404008326094600706952757698947900413137734068664463967485290374282337543858002919069212303859819800498976639210779657121842709993037146170619548923127994893547702611172316669676599134626753693097099001737522999157727014296041519569938755887031246698577711673764879062031373590627548225065150700247199682373817327376292940947080392485330810634041252331619430323051453953887849991658734506037981875166952678064532911764731953774097503700361038954348180590438320280828547528067157602886099172471254670778890808386958729479414591838474335885211946309380570973038338112431303083167911554801170128028171127542540721268997556249676265325438879266487367681914957620301154140324102212419874015923950079467675581470070000018131002990126954874528457654201711268985604612272381172136733719535622880125567711371782029946022789814549905803916740598906220904281866692375315838879207682721456750222825426267481576053249677828726722015352704389266582070956685974068197481498765367566705880719443066405049909598866684367332714723019794894911359994999699972922396026143602005976516047170049287950601603195906808358870373320150699140896555516606008674728547052496504955558212170821432889237339730482992572782790010279205622647189323473270951068051081669270345748227479570277127911153134149729314286526423884966399936982141043784848076116945873088941757678206713012999447389018478795517759625228910753398370573596422761667167622623683249514909669820281631868086559320797414475076633997084340182023568949500761714571977483304422980933568062665625761041671188883807919964093011650419373237246726745448613992926720647861818625266134914779684901385096887639101818410618714841145890399616008183607415553874143399284928534650355489776094661476340887671713832685663094425507708971658032288240755568412220687607057796238623911545732687106879000516501509231752745703805158986736311198631376684054035611736619650289613293166200449048021192069516470070227272535200432276804608491047228743310620487625561316380504998549001587867036249973102092301180660486841697366776995274216479841731554367836758394724928724590167942622806053665191055018571454398967708215510423195299335589056789030221948061861494448365143806437450275717973397335131986791071135114256547666485575823949253319272785417359042438298688244363829034951369331840953839472596385096377510843672523833375400305790748892416674846910437436864200721577204548735263835090152528998391522998229024173704175245959628565695969115526028874588737285436555570695053669903336184314745919559052051609712978644073463883698243154177346479796075401041413469071485580738940453173394134054678083386277455266518557983935727987193006355919372105826906476527693480619279515699434987770016137119404197294393406266457468008095344945466582852217597699987282806829693100008596849366466862936007301650158922134491805823137519034335515538554602722004558206233950902195688265051388895618832995716626481938486625888401454504964438293520822438365451928583081433864708666051644419928061571297034335454004631778754230448966366677371771140109520916957261640456202477185844785237204063813004858214551822524500890555272289517063364004020367446945461849096161571895623264143152159993078915211892061524039312454787794051528206990400499606348865125335968671712598595101619887315206636608098917928027210254565492272572129770955368205395718365581581412115287196508621428629357995702551760592627900266225944270204156566844840607660254854410043153790143556830218194063081157809421301388794810604571029681800839386438836901443799784244442846482535816812342854017357769910715232255891900683940723566972263058178772754840174753425616091442706760402693806610245585643853189782299429522270419219319578048371187084387424073427600860674009114562743650010096752170412321200983366023676991210571660138955548365949194188835592238892638123960253171311318833126614122560776571597009270840032365290936085310839627842619017977143953000995252488337624490866718194574024224304679530614651297345886465946436333762353216720682909913429606919940857683832191020994965214367393634842671236433516064357240634896680217607684709917700846502272002054106407610199467429245024369381673657080389338632382667257742642810868882632545821319916780684445422197797551333027177895513421041671784872534658159408521901523433823472506447960369452475612647424628282129955882242280919441180046662541777253237246135437144242420070887551028262624638207513638462713335568120072984308973811195822153740656562934940099845720407989492505762639083137530903403761616910298674774040307187640777511615337816432023721074889558342505988154105677329076710130759083015353274737116719515588634242476305019706797400393482371479122201369687680167528857225269243523336019849229762927640734932926488637964435572229350658244658799192429886674214492638885938101031353547980478720279262142428600871506090992567480995573200935969908362056049313885899849575805062907453323581707806520055756924844653952568111633325535716768530248586468384747555113708291128227459639725997289811295158898327215958476699899428737428468588351974311709241576280065126747041188856462598024907183286956730335103606639735379167571451910677050126261325560669490727283821846752277582973754489277294557512441182893756403630436378181793100029011653853540209398541797311963528208230812036920207446195503930008306490216425263558905713850468063868830657598680363170668266689665795854802665372476214525337901899434815105042268513447365267836038820807078349114337909083973101991152714645889284159271731667957474048078289921798759952122642461728561489497781731132314078537613509156340984661081831164259906528274308909504154530324933652569960867769868946126780989389263683726778818340589606346128459309832268568247843118864482728729543362387929132898586485068706581727862844303398248942340549692647984505224722199701539647305332264539026886182555568281087073639386947682790619015759585583026080973972055750994694811687051352262713135592445006856016810780521848652496632380423906703350390383002011565449870984043660008059643634232736685669367426869705074192916746833999192470632941033723065817920629636464450304362901133102779566703314329472668017084590219096395408305219092825384892875882249687612641511419826746279420371243837307172306238427522139417085512187228159886263188798172947135047235085719861952199911166746071604226610441235891791184845310929872246303652485352903061251117993007597888155906205937285349275180311798999109654301910846765910874445019687969675872377949196594368830275762497088620716260426122407065283838865804796018396741925925319250503364584226330852524661842407201380344167462707859018980609563824417786871798053889800758050535431983250793838721891348925354150784016606589801788008270405315482597262433808200214802503648663837467486557653503985385466554582426588536127063969807740159854877553048258884058570685511730779017735735205591200288258204878198566989482211008961937463053461843010102605669683496356056352518535405250360557776810567741574472198732279941822956350016704628141817328194698008377135830497926677448193400400141357046435298621404974720023147982251461392883672458322734267556413560276852869884801987405230544881869829132916482795712112889999484759187188716888808562728564290709516890847746155491004962394128256295257195305995684067786725681782408491175039895050214838258736665306347223539305147277500028620791745739623557916873787486826595659547829828160150928888497264750540324184436609734761981639152223705087583419652972769853904094643570181161758669557619270403552425028642536549173108991376970599537801910223671302570858633747279645223839755467709922973221650423517885238445590103199763466711298116620919066247347535042995616981424212841337666271009147659976463837166879060021957557799876530315562895755543215661928195083249861403935800699047436175732013696456954669271985424124251417809430684542398732754951843713681545167521321310589553334263821549328982165125598724958310749832784066535761336523568789222090465399389325243137071193829568482546341464789246774699410949316361085172910824788133257328846140743957862780756500088341540612600119657898895812048691742569748841366197177106276277491311495268363820561171907218873260432329674420686061175487785466964275948309375950590015943613013336400433021393632164982364604152570911528918125956029528798438567775916956065813504373328713680539774864658377373672025707894079850188696569205020447172813588414638423683213326664634935233247510389691928168155281698986072825211967281292831865813201577528443638272413845019553722042471240379586329201890040349440551766914709029354346923349852681504930464441446227337598637267676966930341024248649498322397695118551640114551903658670383531679598227615971891660688498170137340260195966266414655696165114834260002461095040418050327898817480696116702307551509546948570000515410391176077375255134949817549987196126641618597162208046560630471499520864461069574171792455917760200204044811544803205906826988222122060095730468806789005331758898610130408830321097802924898009596924608615930587794869323141428229477950377884047740526823261349508809165968389091457277291306545388513709050066850549398856749949268806273411344442983006528226367112163507191952890753442083197596250052328093172267397901600675493694473365161752169074673152341095268149544654457172505812770366547430414593899201680091883182089583638330345885853512222614703072418906732212038918862190234369432639991057630256055019476138773211453643187626235581260716353928816948361526115419576993154435255942409986360637149516686648598191428185274800333357576457057084815232427458408840948494370316264392624778478619959105197983058269147471799974768357410236856120664886080185833052216865767465860055308261085622486114791581384114632966966547271950846010284777798557461586674186293305035992454061500514520923701788918886741086344022950348232769204118207889668945115722961538432057944835715592220231938411060824965792256257760270696718182499115694202472573396290833554601801001663093535874751003966169651148923836673571896529659439599201906556005521899795377261005638011257602874328043424175202594007742334918653095649730306731590048095523544285142056577348729076775243239923217330080888624406447440976596844653801270853103321634370756315022558311354713722088590668717547548095319770371695855150499044012650301192947112934589540117773765420363333925510770515248112466048448506500276221471967790241489550431471254637881942515432653233543772670914944410312245853802876912504647962769702969790321867702278685114062205636198879191411076970394549608081370209390321238648667238938259830897146057760688257511833763171009706036734537568376509190162226144050893717235172277261481553233410269047869025256339952338690862769317479336571213119269398237879902296833209027415098927128521862125838709711045477157389030018786650619372404830196547544219975410392539404664204442410512817312110783218487120683910635683912723836283778791202595330203824352023482486476607714379926345210945373788630296636701356103472347620007448151181070405690451357327939268092470564277114468106848981121392576455730592635005680776890092588924244523786333222654028588797344869978547879750806915658274085158873063866995932552435081689304634536980487953553083601639689108783933805642027657488896993587874669819837073319939943419618708178420083994914429994019436116318772549049076837069711636376135860271743350414561665256569361223760198391504585057234314717713168940726291400301963030969881421193955435365842759424426671229531741722147730267738735428693827893427110951337352105247893381481505045437492940396650090012134098176091040571193813870834512142025710862711235416472716044875341763411940446321610937399802845371020410287287266726183868190718124917316038500760193237673542216899007808642407992401863556506610749000178237044521702270997257739928739419642914423059012938183201998082070548876365965151493738348814866860448279525907648607868512100972828636986478106944740800309194347825241724823312788352958201738659649370196488035906317236952138506297932973562991517905394746797449111446863122577292438641036842929906234964424574869015305405868279315863906391061830369342124465035683821976354293399923249196849716937421527221702254640279882598667144805824503963817389469805449306460390115379374825278828662169693086278278276482645651492243491284921121482610531226677517104113782353636491537651175847772569961918798418148659641288356193037043654102925829411758822408408726555671019876764278051054561130138376699154459945554785661013232859101712684180601511550518323787659212636792446886990765558198445090180895156210942101921166996154284765266484022279098496860697803040565518693312180357790716130824915428397498979499261918893627796533064456945105608331345344552827517812561302246360236772207339903266281676523168629779744223523781814360133921700020944747753096169659610268654741411836975177807932014374634743713173343886431205202591062985336631950841911282517541677435873047053395809878508280746701851259308841820176058438893401793232822899552581205091657733546088888058518996653529782320224130504334127390682607289791258054815784551559416116919774399777265167395432010400657417015178576870842235471812622206742271404765647871298864428552891165707501243597555761169809970416568186883934602391739363709280126367573009318927925507255103699885058674810826627555165231939508110950011430053424015863800188203521829411851800455648724419488932526103160112192358949055505677241030983034108072711873891730339188985200375414528482564718281984687723915855144810195283791282717313975063612721741969936995090766241195656186951540035970067642439190509823897648367432814165889011725720838356473459708578481686115715821259606227667088501609578156070808265203770921797037950252302915006355093301376786796504626341697988533387117250974942606348996053324321793053882662889287083039681860294330960654657585498535399033426609588613399346510895616198324574206421946648434914273099974249357388941077731142169874993471216303299265604706671519740313864708064421198758357221494836778865412449727729793998428877996786042406380196364751632112486389849279033279066255189235787862146124983707237684508492657871038613826768406926854831432753166230530479142699297029734634493199168023716025658257018664655398036359111262083260481572398413066287555666850244327073772948539653814896996608744577663572792724469673501626034124272009306877542020245003533266229947782296096872440702781242174817163511294645944617779314299263933380816031526538893016182907344401369245989570894477103429291836396254761242992074846432241753932007280854217957062860545191842335403055407759626399322568972000499073619936327998113502985050276198357909047875439534100209604805389308359927585298013574533901738962083570432555630903634093063917920438210409320907703691260503529031022556557150344206368609750318160983731712551209988070329895298208834928047737524004846713372597857840471479201661032923478534896451961841575889787187346497944674990519171001889152283003603698786511120377516604708415649175393940183118156899204938257612852321207706030632769819644780130010775682208885496541945657331623589818073351492112880298412874807576055498649948946943655548484588272764967814848935029077403213272563162074779189142531958970371385766250281522078181334026890742554343432336564706888210528893069230863904720867655215435776707081819978357379417140418441071301795369333610423046474375614627697788452549403212847532989520923377979195165650471088262338229237415679500852421781053678649892229300086139367991086656828478575833023900430654888900103032818675380422355766068238709151647876433550860748302297916239638812043073189575452997158493137663981331104133753272571587661443933850041608789446049391969873257225943856840703834721135878836671714454499547718782536229771949437078466163082136722982291149722968216354002457680278377276202094589259011178436982373063069597854888733880012216407037772124910899864044786989306932511425622165816497779867440417611201663591228809393596216484262993647403515397225339231961075781262721952868211155442878146562296983492247421771276084977427349911304206199024239199879323760476898440028708005247871615098134046184141423566575147001337719797651832863034472338874865328159116102008310468017575515909976741351774076385267783912286299529989752740260768681638441125370921730352350123962202974351472805292847858590007479185041374620172807804744963652882616828060535584252718251947268071192071425912442553557568556592121697519526454353013802008563718113887255882153647855035894973408929830962406119768122516537745827555105206441571887552306493239614752720987344572941541043861761094902864850000552601992464547900109885522757781628505728778548540277183435088180837610004428253959398503243956970766659618508685664059583286064507583051752957584106516648127156023416352225824264983353081037642044480838897786835706886164023746779774743698443006010677055729844508193058144629348667913273907248135554166797850009982591036538635945145982594098638044419612356874416130536932080067998478233973950340019692129952927685017962121959872548076100954109992179169533796266736582069818459430034818214416779263157990550151811405532822837278436430725014831921213686937495196238167782472737899635636215294106288989721332899887004980711091817371363664889574049775184208709315161335021720671698156016533669308745871856338342133204702852361106604362175189872673878195736456141029108251606531902690314570044792122001661924620155887648183842172014496410477425597704459353602992331738306312033198338146463004939763341541357677169137598998484624708614117986741850055024846705896498829251495521562161894938908616824979274626495848328756642093557312841749903764165081558969950495167909035529265840580972722475982616335887555719853682066224898164972019042356462424459118036694172194681487747788974029369710733314473254831975911621693278826705511839422276566642942154415465487964037452298432558329687709815931729648174814086581640537491802625566653477069180505330519500032337144118540970964937941099070929748703115045488619482290746396913283290234396069087583130735421468929309652757239429696964141024513805616739295432949259278099591670536884946699253811966689514041294767881488938967319624369695563708975134777089957565813715576854626804559971876355267524677026057822950326188514885499301641948587386265810379741869171214112757439362088821336789896837906709752427405379267098346655868374359449767326770608287357849342153330583743668320560810265650946342712055720620959688223426269358647020818493912423173421845299195855955530589397791697959592991837417822578744562773267053781666061037663830500938662903824020899806883447811610893121358771540169118162962008904203567356712378653667836433878797796134650914150869306615444367779379447365650149074495565956598005739848262923919338542413443252477699388127797568603432934389118638319105889854387702792675225265374508729761102948448941614352047589276687354547577383780224087705367328612297005865419160390530325968288192067483974254053685165779121123318972983226296436976245356322382268101865264979524997963507676423919313229334207039549599651344807208996917950711845181243682767384468031074095939053733004006046353683007780703217829247795644237348914755025874066705621395957813848494586079642779380011391032279782065269367311103358115753592015218943266229441501925558585424531249635113531861466385861196664522739604819698855098312469662991828151775247477153785727048353722341143131021706761265826379859606269724234315491764156482646546565062850046141822034848587103363704599621879407781991572810311066429921255135902662713327963779318016357640054056791956476414774069185108322773394512321750561593583258688693368525406046901007624699403802572333730785311026479692977710205465111042852187557169571304681366916024343510034990406743388237707510512280299444354823442481740643260231214253825781534199679956095359454139754098017414184787927004525199657679377617803033261281991948101641628273706187685784123528819080801295494173317471916196725942472430953066803378522260538349223270630296194592275297748393265455754233976735182016376006241937018624323157695148696142759011968168644134099393146753668531406887478948121689103806294383238258535666538386069760531697503485195724191820379912616960934360326134264736560284489150272681060064634326418949518520064612101979108847397899139818181107607627798646103332315740666873068877812225394555767335665093640229535547442562906423708118389816631115945457348270069141384731304537378744165451460779318759391957000206420630176935701040097155509657575451858165018867122152355646041310295733783597170684005805108527400782861423880666465207526112223708965324481891759887449312235661970766051653877851519990007175484012591299795316951035870845838927078790837134544535822658125203628554765329246527498765830913878425102731622865211332112695825602951883752718441634048559434657485117924589223723716182772633946139882187370645785533471443215594153545767282045590601721913417826956899339867915539104147966661204477952719722771703175056461132526085102637452138578910706569996641994362415678789009706631817731249959923875812234041862629768539020235852411542744663817092544706820427813392589849427627963628036631437139338456822475338167315735475146715132027610710960110794944589937869192132532113723222919544974518417483740658778055068832562443803136396686276085758801776451281202124220951330329594486745410355704103837260097555923117012745155226358185855043971051545189554014427322007064009924811724687391240889833917098238039263114116849897136217685269237237114903113549481431656608244093275632015727561168601948735161542403016902781340818786019435677246330035604185394814396856193450352486221987436747622786423076956099282010278974398488008185479885234449708724738261062407855172689930221072895894090861304953998602880154221902281724388236711605214022537102860882184559617057074866824277870868060398948448052335124084256164929674746500189767122302993208733694128819992805260153117741579625253511228214072762346778284167231593113603273318626011508754413572684954125368905312947569261817321370258814398825010629017377873689915707538294174166229369923265269378172226771098144723191780562161890143612391993103260807278899867313489767573932538332442629780948799744110173207380922349101551738741686912426336652527576256332268357842309811676058921657376348355873310063790590135940542335716243525735561806108815605328422147942670434035586974136388100927864269219281500700646368658391861181256575032212225897198175761998443141485125135438122642658095693876051139205111101192818296762746935232393029610482402521709962503027429294827976970123586942203034899235477131319831507068121900674826438479911002686294583335526855717473438880918289751875567131796016151482292531359923450801488242696777724048347688913337007008993898518758408640512154999479032553790277957968733636079104333305459056945784738541603868353521949609011508824709640364269254987134754314512735320596290427641512745788335833977458643779256654336696108161222164437596506375541686918670751743001200193145429592851728176703047142777439375323661026630923738081277443935333874575063345624511783108330746572184051159747153966948253118232247577595185035019957833626415147013748566772208670740563391577263474503606467262668302664227749318955377688755592438626343986928397977458717026236918470470372876064033926168679460468166182964014086897740048626102359062762604977002369529201666836280161100989938469192248289026448754361949219891521781084419697440237708528165223168981418574483166778016672376165574932859631201605274707607011989715646803345436231313476766169463421838139292428745233944908258069715950717612182000229450664300559859546959710971783941695477684613777885434601899468248329177521097910408365995039264686034797622156624456544427211622325798001990128888425599730289420804750596850393243027902144028658269471248090887333407132810165072549252146708412579340546438154374471485746500659246620463863720845537903210540317636714703967606896059387160481090532377829907526757656946459302658039263158150831860046457896835464422041192676619202953402584610920375331684681410978235770498962328208754192459894161237271980092735631108454202301116049745912014172566613574848670011111642055084764478975385686005772201991966029881500029316676979151743227071125128614980184857698108306438081499793540002654222909609848119910682288046147536659311849872913500173959350032525308729564880562207893680493736447219403087807501504863478318629175079785417172053585305607547838431682130000133751362831463412952535439707490569559459824898679609607440345067314367196850857317385147983886664649523463864048763565244244075734087561370411588291956575912888020806154480597011402606933589380697703698387461992893181697423530840590314576151169506889102229800464199164832341638358029184889329394407931281553639305025726890761062865248317585285759502287791806523259758205094760131538955046565784364231590765296634067178849181584545295984395215025332988344971354039574662192046846357358885639517070847930567715386497751887345735610348976291950591320836916694441173506417062240955291959389221317967555416641589366607028816340921810269877050042672651360782782063654647688954984258645631242562276593295239964167865534797778983606823446728283121395149411658618535732037004169323684220108551457166928484814407903318891679739371175613463744833741638629943225772666813851210024753814548522394590785881839549382082409941945147455311889147103342391192107181727778326425139893756033780078686253585739815404366849922080190194205607560263587353769271332615737885825373534122743565940710018550362180008630106673799964204025078808518430550484314065597417983611676946726816558818421838560239105165778476604014476227809953669081191723354477864399606360978855877798622321968186497393577922283867871621042280782616149336901605334004731494035670430366438434373102487652963787489562557030250049488881104070285151049784885446185574029878150555096907053371205817559799730278756069821686718181420920395851093297518700418037387491372849149500220636893846605766919655366339367410071387363966633738720654659778902393472214686159442620655811807863663732788659936091953269601389156258931901122136627839494078643044374839005099401097079216783422645637284551780117750999235228013843852884375658102781947558360255355097891628949737321234317925103446530843824044100428456721996476919675770241652892104536017962460098628507908502205986105889999562966886957995645895144847670294329829089509559320584527714766585022460851513747562510457368068769291752604247750232620487118669736851057270118395414853679387278736554110163531307651719727561864538015603083917263273983340306167937660279337902639976065388901427753551305132658945807014425721434538777454818422402091143957402346080582181016792965422047102842873631029310081455440625382208290022515132857305931194763928749828499766020971975841531977677015585054434852377647832793672761147513720783529310575230412479407939828702091795167363007423627825105540458436757565643975319790766779315974494256573563543110121741185145743568250333501999460014732892549232814772148876699337772489042599218870435653236124592794128819256294456684233224857097379255365859492515548948682334982405206574473948538838291972428492863332722812772506735726603574322796193200959241214988485289292376699837214177715220876025840918117577618825259121346063255524307551904982390882014792896632544911260773402745788159291879213791988825533435908254107670420671888538372505173082903049678937580537685820490675157318866482870545281674625601707702781155176062868538871197558751186725969782283956065852419356357547719598121794284922561708533969442708159229230664031173921820036717164594825514758102144809780413286653478128775325186641927112000698637491885864557437612895995295454854770768464074822789705519910502700446252289548163074981722706649865088795455425857041934877189354725990769231580834658453410477121509609031446776166220962812396292636193008205000517622308171522518213647899796470567075515323214240378709085516434296492779497938329209288111469737049210929635130958870702347217340469334838819016750040535593206982616803248403988936895188211750735211416874228993533635509359594058357123576084493909152674420790105419493100591757054283377053185370452111940037551902413801166050546504391520666072137951255934142025725186436090281929159201182410284156663754824330929985555461456056409713275449667963080414108215151065360299355617725419445205994353915820925481179059388872873132945594415178211871296212218537923983217861340107801775542320808789389219354306361898832972492285178424241433086476480332544470193779455950135849035978688661279352000148629956752900641414549160775756848968226355457412028851484388105857935241927799389496466438253047731121965232178546842450583992707682959147319710165722427931110596259293187724049274911059414941750169368284481206352649915302675805899114917037262790723110253342533257093127342892564712912999131605377389403811427228325251059011605965891038088741429943755217112980500696869140534615512009449238801618074589465089716907842261588022266248278870754052511865005370146892575711222663030768528815910342489475905654457474355294542615433149558514246386145740209969241873869647744716114979929941289042896787599692030366570898077450752657422857965121096930590069520173683428116011804470633252496078643595128661925008544093114708281675953728472401373098367123548434679432102239036737303269104848834990224000516949193948082977622293079699966430790552485294845345079264240827825257828568453126836662878066872772058814768871652745178004577143688014985721298116640746151179599412314345661924832875201442621411570773574102510253042752309227452467963327644497145366871807593477872033631138782686336434648685617261103364571059026084648556847760873504175921824221395152852288225498586105860941994332095468309186741978165707117712426083887638392480039192289119222445470480842877001853118732801553555293422369708478619485823780854439453245370860118475564865518262065130375516948850546620152622691866364168733905038338042709704615605349366304581484765579283389841320643223722649002406574278919401550783748956784806654373436303983785805643057336217317624368729893720818864727582866441894591129126681086865339383919910697046348294194119273335735924509385876076824292234034828650748026326637683707367894103806929949588623548104290067967681092408412400542061561796640842163683573321137707449653183323267477800167600474600845212857336299690882894317747320296380022534674260926163263231598446088272422403876413698658885179982513598468910396010675556071277674720610637137372431895367140676273441705903783281212372203539325192182773906154082486369843710555873533204201485669367697295763721986396378765006826592509191821623376429568662158595023555093951032622231922841751945451299237872219838396986757971670766573165920923785560678023015089532805150175237264455507238809922274190461860190689448812901550124475624621899322800515571471959962474258148468056837607196433696072793938054580557040667074106143452089381286980986177615255553432164683679385434799544254563965833381203891169450978274638057797083107867145573804232666806607039908400493627371130291928472687154021443756886595616782395849057672816719227651368611504693158840988859652380485654056083222999453728771891688635580754070424602012031154711144053815591778012564483905363954701219279912307534855345152922591548035002115196974734668352936432078541149982981722527353458836119768349895849375348133960584564694010777050981078516510947130195559669879569385485196338699386106948760177030600383021718792525239984658881069215921308167557412703260360966973232871883743437626329040283927227432648279998347811272965647331913078288300799655636196767918746150703307082087834995084983789752619954740467844188920254127953533219987867690555375972222913109983433034223377150594073386067935667361638360371460435393633014866587701242991050500778981793765657531887790222223891897017701440779001362910066705977975239923902453664723460189399513555366667745738402729017533294750792604666540069267785784559770055278630352166130225677026598867815036048314279507155677588473523311468041197631010832680909142172412374499275729756665815393955230852975873968020838787954922589426369360918651064425784254859448775715675068279322942069720759612300845204469095922524368257952231246256563877371493378165906363791982771097369874656198419125191238001588557457140740022002716646652201679273042503135446875570116400731522326137928181315644458481849786987632025283207222622058575411457136838011216472916405250277251346620447142374544630767427737811881061205528901055448510528132536217716986787452673360635563482420006827091006071328603916378253075769642645455205213356449663438999711642628501880109642578814541448047088068353477014082273582463963223921577717235674343783641404042021204341471202347102311399954756720043986221982887742265035110487990713449857327305762165128643090023580123454599243245016869836545832788992590106009774253309990767681909756114103166637308879673014139143861406085145468486217523038298774858529875798122475995496629261514937695691288827816393980859556555167081324012119664712092301932521163947576516590278372831486461953295049862569436105001142654948655249191477585514310034552798472849630331149235424960178203800956806256519427489262413743160835308585907965869568992770231658411050334108478764824001240954141272204507205904438576524541688732010584601577884681832056025129001543627494019089088301081948304918336162087215746286372261213329079970553286399783714648429937041103512733327751833182072373136168501177447875000024435498639798110097205832122489511719586473427507940058357374429290811904659823965742432278631378831627402150992169324422589607985492528178213286820919136256526725645245374463809201540699469564817847034887785975701880700642820987535027245792697990863293584460488931653885407293158607935684455752897358929107923451055248409885534363905694601690334209350620412284131023253560389525558504485736040588675674798594990570238826828003822462002454883779615120438624007709822591251574852282092571665170930061200966238206239388791463716248976338971186315222434429002042709551188171203760720072761706107403029414546367041212739045553109361781901152009869414686466939888208659217069736162197400351263627690529240448980702094625484616338555816483772652814438924012791073263291382167529721129926608824555009195635970220147466348929064207883229076186053543268269427541883074576450190110670911394599344005443963852339380536152121754566911025438897480867425539397559051190187332698039439768369722740309843920793400410538291843517659756636664217986635799861802958365906501044818871189405164744098291022989805802096170487305509800607836523374925066905379238607124313642328733321841799850832501812029553165685434131325007283047018389664840534880963600678538578464577000992015086944200605779210242200334805264125065340856117077153501440387698794561910428495023912819341301081316284710834933829087194618468927353990767618808249496240025659556185595382251172147611319869733871199967442281042324637052343691868066149245299895092170764305859618375278152676236026717637729203950543295022458354326601080469237071263858860677388045371861176771343550300206025044787056848878376701708665245730203065095721410810266637506121983270814768342263956491418548343006968526422906863167806463993239884864126413136882467905573946806767576861167757906854398948007460320364174814450491812865975959702284944464142218998611172245868222911364255515064603679931839798275380821491297195369085200028242593445348902986110751001555983100191611025185453676820822744842454978729536868836931732091553779469009783891016674363312196794487783346552806707719586891168438255815498007341272306819831882095435199557082854346957650547435938637042291478837611229463804055109511405127983216245017557462314225745299822377348061369628738248906392009560641800767243524886466306062158437473363633105977873439105906961514661095714319560272670323743346204267638311589731038393722650765177832533219084103819159005975831751334982018785800809855183735647169027869773630010969649017678366452943752262194059069144160236806033292419041025120645145684590255249473482422047255262977253359682677077048834730354580672434757454490970191890578634155494997802973762306646556196003083817265507800726516211195007857612923851805836041452403028133916204186392963653158821885116602040738631700633555305637460719084995562822381285765272869993662421169333300171042567228367623653926823079063943897691682781474752667605698237758036290928539001110839794816346759587572196643915920906879303319480294899819073631179360233535986765605413574957319063303858216615069118404661156813337868522587667802086581466261748882449883150167069136150873313795483532745957435393620207553287160270531042999645652789759351323726263454262425624644393575691905803699807768698686825742965651389453429110279338242158469875292570888619941788004506821937627157629324390123173552130668279335063641556317048021296989616882479695904719635638717568554383763926643851934755354661008861044480597144966608829964543166540609095375330145549525803936738799474951371123993141087175287263215902944405993766908322714911192034666856438722216565673487831923256066935749489861463794261299335547536232490008062184836745335907389543163571971120182763487967773344012486658264064995778714661085785334175095785744712628644589250690861482108515223886609463934212429868833585451342381436678593017406197681211490781438437629964093513673810531335939402518815260133542940266147795135926349223306268096378943296531522695080528300965543280567057528645560269475018385229242304725851308003634662479151408219173022418573624124743173522218340718648969302709571361691158250525866731609052253308823071262757111689084134982320033736455062467640811278357464321666270909621984126314363071681341624629431094918881372823591975176594232327447607803334457428419657496542001335230415011022772868317304383001866596639177186283598889501504735505944456276827210492553473349177327609244069047636088696610019563416554271830663735333802633169559567496829176501734869479920075257782259731927329190607094329910919739047580678123917988418610060737085920348740894337581682029035260501531898392004274615567621438957618857776387263572739668555076937321752590885283415125690262349679310201457463147065244077763390969499948327466651387533418580522634754032495793334525803366305467050336735178948977843209774253136830955572915395370536784616910727469897223618240981053403265768431565358756246033103230097345499502428213704106379338083018264926769099763514420456704935440507865997301578667104110062233996133878601365113506184574316689059086076511589846834056962835883132149434450321741969722230114724687293907361296006219418381076347459362712999240815344610469384856864814048560379908139192324318471083707584990993587733703051833857354994004953500973423425694731370859098144187211688459930760922613609715261633839706438988809040412093435826216031462905124822905332173203920845923169012217923819808084946100987276449481814738979797653183869302047834771165679342548311807711719466069607948148439187410021006742084715429951816648932191259000593806176945296191936315190679129637462783943107642807439021350127710850462765776603748892999633035684855836142867985530695134510347768691174129082874303532948885726517972713764706415960243406816717166933243865186949187470082697493039718988016757162101137067917794451450615293935697560087553346280055203960444168731030579713960686480934824878304158217390437794214421473744156052583263506519422256057355317317796885752605999071459085396143699274919994368299914429720606520405844502269403712355997081657229987832893435205152342352414602663947379458471360660979149245265425611237343207186334596574417243604587805032901025878655864704779302049868626091654165939172540907943528092235305713904879062543978033676111284282136734657634923285685475556177381780816950374244445559429986466081546511623994563925843142506933762428168487036982059816063126569084796418636449700578101405767512408022147323212257748868299930747170362159463483765922783662460910858759400563765101606736542974257998078785109063777322248165374894610012563087699683156985390722211526584127376488156536708484601455798272018268771769603412224839054623881561735457412783572457840456143087837416015791573488236991835343609014376951752306145700631391470209552649110633291186568320794161808106540265908526372168282811033937769487027308097010151263790085984070819716925446120832395912689948777853272550987802357333854579604106980039870675391367023415377239861818872423883272769428118799307066600927275681677559772750578114893998707018118095860674396327331923921453075958563434799064583222451356003950354101416120921467331548317984678593873999475817695348283713836914608577175329271559302207892429473787567238028181258107488298780153116053357587658778444186511312784547610030161635015044621324571087373612804277729398221534564830862175566417772860379338277719413841768874894260825624155181188267320626548204815951923051528069090350322558203829718242000801704775727545502594590184592274734879167018027328221178496699555427571604472245861863739247361382620295390695407928335485696964568878025283016059550727394028163685986463359939842961310992312805914339240335185323339595965520340241383535473104046014471598931572644971463251442792941535961630001172345894701703221708555482097728073685232424624533215653824298284227358812274088334972718107098608181175997206424553041853425000717802870634460749379176763784432627181810460064431070892388776684433392905349546202590740051472711508572040563542293375876799801607340470502696906970867670208604464451538366112915128268600996761094308846163985957051839829980173916822910224112371946411853978108783914725858412722819900189927625933552318234932043491443965074260762858063786039363265784137137598627865729811612716192065041732075608643872656207058300904095373904026897200705173496777104435354728382430487088891537020584458769837566694317365348142976761716188524035115760622540754873164502309854834744507918838615381015315302272966372508815079117126228027712302082293709651362296628617856066566668562763935069516470702973219220163651655995277261187463848551892082868975376870651511788574089063721657124309327420418630216118820051302853327833966950677180565101465347776785965622352102681306230597002760689902209305466631472901162170795841430801478576596956634503085566265251310772135704072019112924622263343397715657335950099821717109836627358101235018493976049082341892337430169465439186660400329777161976615991791829224783803276977266760372420352282156946680829208775194684741669776415024036516605677694848106416706292278886791977137909861105603994693622216829223308290087535676580266243836892163295187199286352398805212088276277969165518844938740490122464272015911354451682037984417985150679176906022928028512626729093529236485377574406262997898119626673644792202484502377678156459224299424602196261134979864550033059776177736442788233131620983819306939654573372060152932360902253875736032766704746871038107461455137555731568005213896316532146803210082091837982941436576579394783763686245561157372843041000343973745367693946963788200967159115190841799783001156246240150199431241633056700552177610632027684290092285024699472301774053294939670269991106305802112333104013956050099602818141128798904639904124808961424215254025256875283887278870973976076473368533334225816351904915665157408075726751841759148220350725166411632080758672131026721114836416878633738805606292367407261848279425703172049510119384863838084411467033387405096087561638682035814745450164552771973484992626910966501083850424695251395024931628656104668701926283103291056569295885217154644996725972630217102841930329912202500052479862292894424631110949240515135099950057536057273599733730287104786866555812296943006566214112791447220911515773158287610995183792135782250815461803757031432878069053564497384468346708642511494728429106361711721240729897403259885808332461563187908229680711184132860519964801407940057682297667702903072336382287177831275922320179015524664719719988529751154896081832730930099858477199687360329601822797748094762909612784881674874619883624972563223331838949106918166739122764134262343209397606216262353531497735249036334302749786453561756048858449412927442581074854090455725618191651283587567577825721577449016498446087143594170591403326619431754922371158624177648218962500001262371099217092486351218132433439892329842939140755785561973110282784219054705215747320771608401512448210367090426397208754702875762289770179486165406952226704690711327968929145745408731265734169811540810055209867325737293031575045456459248489604173990575221126764373910484043636618527139687316620745816163205184085681360218172243046466784330165952213762253562428832631160004352598251478211435740704172226162636481470478201743007061980073528243225591101686512222052815151956186553469560065057291431858347483625830947206266053687709318853147295356932575461983949571386903402117475004376890236390422054140697340814797805641319739808973363578238749805427248291489318593678808734468899343526840998538420507034092119220713633671053863178724405288938365597746993664913441057465178219066977118503705451437201858810490697069775724429879683582678590219186094061828380040642083913637579632691605941065263197785310902985094384779604267837246171706086539285605734022301033905493212177950576363445494231340639614668100738151916898436616597128807623713679693152345793246984179395573244481665699052477608225847192231951299226706315874399779351145783543541709424081331366611342638294883906613325917133909727389410422758239137857523357745354926038762211897566241122467356797646191140518719630620863910800173120017783695569984492596363405755551910912898797528084415877873980453194265081034024985898780925187983677358597499264245712775693644180603634450048091287044835789527345589448672200302903238502664117866682340756228128736760484835907461865239779944531612042129840264334945935690268665102451822049487632175867818064092149349774727286692569739413699817358004657150450076854676962981265533966971844888969332323940108788739577682066875184619206311300755387946711494263636586834172944681279340330333263947278809642547825478377465819081706313665105962996559989003185114013174329706474321619300062760548934532688951540797648236732825204073151517064500790422717003509768279008350636191914426226560509941920433354077123184782761241648375699037613544224596133399682879516777954321305320753510958436926255177661677200919424237138850502696434995893209893281791840787362184496927911190199781092801557972250764231993378504194218385124347380555892379122833260880443809427492924648646487031811007578830341198866545870438909233549420322995283306578246727092312861945309669042311998427484330261430027947666731731458705645911725172742922027832939451100075853394690915559438205158953292607913615624593347341835067294379787871248326118590890853375181366481905304191090802753636918646560155318866577740122208343662127762501173832853170394161416629572038691760706846107046159403862029329280558336723212752534471024198122617865659362376380835094187199160823421455075537328005672561983553314172955657495450149905432396180567466061641365874273116454109236864302225809504975047302327195240202244530467768782912848147508181859700765540799498262908089157038984663698587512054296246030057933866323031361769153496337069252709171076002148725780362205263472161092734024765192931470731228237245451688330263283792152223335961845895295510039659120513209359135376671615839462118523836394903839046456582144748043848807260369754123120949942531738792490540368069937741807310834121718190320236219781896323008934848210529118739763921453154525993575951837163078067424938821512146408324425625004662235064600773519142393303934735048356902688608457885319974953580715167817694909742678859304196029308165696236085907458879066226852214856040700217356846734720411328513736030822281858509838128911128537649958375319117681328957838379521789585051354319254117961810254850786202247109431309796828769368927245447763149360998966142445314861240281945294722065707378008791569977535382333637137599120890408207771565506581770622557016290681461652086901884063861568840596548536625501977182094352385264552282754130919324769917607168114633224824284587407903807446255677858106047230471566441904912798939755881465519978543482451629523241169481861013255115677430536422021700886847162952038447094537235613033249140020564537434066083128385904922013561838317119847946887028538147911741620502329380815229057431644088626366308232827423327059250297353170739474935185645610450560875610767139555677077165939791179535441926281844899551267728027614869791692854826289164697827734528068112493585987357668809457953448143604313066513657001817904170015320144899426656598065717243880314034702737643943002904038416272870795007341539591062163889946848401177577602920848368123698812840855470680443563627866223471565261283578124559736064531765805948422443600022733003710127847167518461724436252943450532114159705786726229288688699826302988338511959376426799761134649104753451149392827064117029626313422366429149701929599629318625692754159866695589117122341246225850606903659273947418107313167851989992789084306906267943100968914820153623571857141801675517583291408084576456227851341614206545634318570469634095185057172493876313840598068532587884858828736597057626249107287124989711569638941508598783212165924718651562161611511107411886417563411615699726575694496773748402056748775232557448826011921210812036646116677990657853714671238256873511967620182248676477692481813438186078308186809132537714404954493171708746649714541104267267851787889268874717746498432182663686767391627499806481905221603044008393299770346047671682396862836334101010017586875533732099958786623355427376706071444390002192104179872129931996196950974335933274968065564758859730997695647799828360907910938090847348753232753194057077316926755296207259841718017810430339891820766801565297050287627154433149063849932258223443139257839669374587033469354052113125874811088370837911768861648092491486159741265214236251691286353750124568322300558083754545364676995969420411161718577187581745095307306278112999574232165176640341134635136778253728027711697999307124211455064173388760025445251694900665893623109362057940985937874274771822760804002661113583494914187776889168332918483652738080572713272574938412891611386474370238700992179496333501907971488690478447889150778891691091028835156978748382755389242363227341934100612274825780590606935570131574411163586334122039186867417756046588400389070767863907876535456624915519496443135823813411792101114652057885463625595545486097976405526577485810238914156530686328863294376470965660283716536032754034760490763237925491538534924283861138272721133289597095117396510064471019895892171760452439706722435943574616384682151171165742945744348453676598446378410659043952462609108232477742444219974174019017686412979212002213010191698141819269050148903364306051278757233641122910265525549928575106905794190766123010326162245602410382647548706131424406369080681942022073491544692902145338436070549149459268355815897453299217523837691570282854447260216794935761616178286007990071148509019406091063483168047223713625246607789437694767203513920288829650227981573824261129344955541101724968091819798991786055163097446922569921253561950796054188348082294614689301535991141507069336405375515518656633666913608547230895447317395002313468218234695059588611450001596548835209208740090950365846520219318255865769036591787175611717349860781680518226733619295610391216354926503532212554483917203189248564728395931008085201750203686777167976446119569127406075514550888039997783461003339842153517746859796586941382058797856892805783238425536431873473032124829070465819600757846553728666403939448191165346267029362775551857483437269083016836952016711866141676763631826855535789362162851304064401287764356450902333927769071000950076349653906464833035205586195742546902434725538639828797859964949397570003209418005587978160019644803784900736422144530943850031355122978602828750429517354312371702200871797659898287366317504515606815591788778887351567179845426582240905582923886449824778216326345646066973434869497662204354089404129915851877121818063135249009939863765293744659631016721314946637519133008130346527008470963916672532265805205539780877776012769315339735214923993579917540662830720356393668336118836584702842346737017045840846254641258052201877050337606096231813886735126017200895509889170387258203124917121958949584519835269737671258742107902225755193477057931893932215620820678047736444315783703398766280105677347407998489229512014152407682799651325859180101778396671330752868864845847737545430906984906751114666715022511550894212266237207116441959535545086150087957050785732486059697317902917674545385396862100635352058743145607625962289435548120872485876073299784045589768754021865148451390249205180818708900061042053171352092547907915258035472045074569121103327463613930299408729358728040533741056646730518891764571690626780754358367545959780022705479796023077646925387685563675533468060156585092693454163189131945370474735696478265252071117668739738116353692508833910882928725634236920867823886971152253969103961402272750112552838235464343173508900562847193061096889366535535124877526304683414787333311032981271990598901175780638364859474194276196127227585875927183409229788235629103057654900118617479796655112130750784327886463576138199393468510822353413886441257334223330001213345652815992218298564351916268051363235525547780665802241896235124924604372256754843948658790748849199749249222063081276945872426281286629933593662823907387290167872734363342140101401413775670331023681898794229838669929676451131359565634518299803507253381977552398510816963370446005700135546561041672458445880016545778945618196081692789311180882782403361495744072554952434362381495358140916213240675742942921241874732451476562994574331932887027865593633382370483662766618258985109086590923087585396316308487123802060385972433205858055360685900900767322531537192999914626737335391767159184468097912045914704694011117510562080981705947061858280573950356353815843317420527988748917523161517356172490335429815903574087815049680322276601849724129891795876451940362818342364577844564440138989355833378246397885159382814103891507498674938276577589854744497634762445459833268232468711524833175259150800874108170833163138897702864579534879220132719401378104648607512185656821393753432861552392490434437606955819112020763450451024487946905470691968222013078291388517402163140195873866487003868751619130663618806438761430239330896128533394178311877626995063248366059057994637956228741082433500594585269842628810278489506477624956826328861534875481173527301317699326757669123764186268043682032486839152621774399914521222823814719632261640447453903679376440351511551681256948150193241130555553864062253229112883993318298885549950960925695526631879931677948470436719007285215465007794703467652803427719287225380133475166682309613949744590206454027877594954415879797861596505510662993743364812780459161990923705178701198783221245513644111812169649477826234124072445238096753697547540413337121488462550195908232235937692768608964307790902068303090963053601165187819825797451336571939373019683768627534664482708156164759985754311847011288958101553143757447496556828018379220099811518675286024666847453977112283533506867362024369568807257460936429285178337439739318383237324354236501071315277596741116944808110118587411798126343432600016414770730523534120839619101883713879465315276393987292299239592427714692063677801281577928093703735305616944466132446841696399606343671637644866115753758101077923857658538719643583382914032850328222169393468843128042926653011002160921728543427533768598106811228399329477266133493451193243637090912604420079264575444977947095178702376373846145352223271415985550773397744892766492085837740632681595275431525295087012583723514686629745616898295103474033250667424106570516288342382454706614094287089688006613668454324839992934577108951542588678841407947506891506150649082266181766869324488801377368371201250808366468402508404889812684951746570269524399759204473136019502385076691261212625258592635907813656095855510203028111429398844149202532689037442088504672027784236206666406094581061357716717896242590974468220473640024654998838816412259373081500962017111904486643446015052026024053617398020067020863195658480904098870690059562769914902372181689215900678998831813821249671314257099210250605032197851396658982809007351361430500460203119543181221348261089880141193319841296081271878550027908142210686745574279270369320314568472956118465632992037740534398586263755642190584293835296326156858782809459104844526538084476638437372306459832667705992828151847181996622807221050182945321202988265917618516898315278583571161260456494698156406142567616908009474772672643870501723575277544875133570847200818603872534890938707568427283643934025706309123812990383775505561139959574201982508343079229404404043239987747067116226135833232065905696017923547534668840876139754152211919107376189418387566775100892766276548447994127963856786018536363962126997137231782991506349730943787510323800595775302885193709653815805849491455815627367320088284699992963660402562874177882764916556853201500147145002230891389909403340542135763556562559377957322722805736130234799015659857217641265099517234705046328627732142423058515325900241212246254909250890894023625604501140809260498655220101078278515438244806931264499930307838177556932580153465216488980644192863457333762448285176882593244333879480192013988014994910088445100299616271961169105526761348965129280818099274774398840660246265258772017547221689698047859494676431488438349137048065186819537530980591521855956773114078124772228219522749224241856997882393902135806949618060320232403377004034087553578345954318212972842428360792650351702332876933636490130695688072537527616401580676959842100274998056803028828822798309565079939528369957442714121290179941351173325327673165388307887131909309368964345291998327593048570148994431883197056035597273372352389169009247988264465258260293738867423415438526234228502823089675423014088318795487921887053695507512411557418075017389127018408064977672494433608673037618644514617311646601063394345193346600898177282253549440027433267937194079938141454446438125735033945505336638254231444692916303106363507823311079331036293806455310111492512110273252366105848504205148429971139334450534486235436553842224332443565032834077666467474137969577138773236841805599337549058733444001783617905059659848323682417630027600329148435939439944952081519172370710411149146155597207851283308635187935939511765031131340521939660976186181242474013010387545905478608984865569817004874520254863300123300107718696618499686979299736943607981643776300161473596213203256494871894784927485924878734630502957271770531917169850337482514931320588851502320023036593157660417306424765815138710200729774963932306582074819414811146642291934447668959429547274695749329906398551620707550180946368834859480188693847866437877768686259592773097785483204603473303490264461624604286978574751541236889101371820840958556847800579667645920175113334296875763515499751862069104983549656901262195825227403463757567795685046360718262312764358887952992310464893391707535697923070970795346027728699643047866370424506298587921611499526435638446245340120910994596285917268417416722399520341838851836082292153685288572451772433775670974620165001199452319167418319386135704519752981658861337158807421401810451100339560288392441750963043932154780211930446405105243966162050721635519538487288010812693731978006349461388347909716963756188602739607257541065843053090903634117103430515036127920506414315439279624469322447739092399092366817345517335536919946969126283116735443762003394858658101210424731407550418560423270591361501194428110246538530606848969901050875933414033093207438760797328684558204954378858453666964222625395984131471934149297282084575907414657704877551214718823947326337209209376429478826367507025715004870166818582150352659408911969352423599139194666873637712984468292616989888176821846238692072382698333247397897484797569110823944143535617551245227129527736116483340968539748427442137468433044946927343316665494630256400271888836885037177024013208185272229491650799456216311860526187178714547252516274009914918340423021119428900332339238506592958181038143599157229780893002261167555016147813903626077401196554648515937344679793197467391922015333126095978317901312950597975263557922281246811638820390833891613185530129169020664680079629493448336153921141078441150903742668929406188740462466846738448437069933741309013488922403285653993071251410301933496590597298841288391230261414322886221109015661327759535440612405567286483817720534155114296737360614631685512843012791821418800860299697902288369991283308185962980837852558688296472665492276029854004681770552199763291590287724374196300832338616351835410968943408750026646526753073416127465431711104976810764983475924359719164984268225199524113983911702644864384548920326212972918639849443602782215366088629761003817971185071205719666213998451313302957598507816436156448120664952295413861513610176675775543298610916569245052140738963717578714821347067651227790086318168486544753298939374298138562722960588763865884525380231281133505090936393072736254289945885965119785083140034036114582916055584953111116680060389598060512356034494340618137753046510502751970125262067928224235503712361198740724840155946247963920890759511925946056888806183107377388440998439095386431172528899402327356381158187732502192790285916439477060000215487414469341204952926934393059770380904190158944262309463150787827804416577240442369138426312120372787809508025843433875786126850429405650098104438375951234507567617875634778269619140818079447842790735593751944765614627430224824041461347993326368499544851094564059046350022577632453524669968456017135200635472700791834479750108618764463388720906778082553357745154812996023918895343802719023076157311353922277545885765579573703348414421491051282175246661856378976203864742154620469511418825704914883690884729852096814498114420445122437157626349019577874220837613167289845727597421416855246262351543523428534140026193359605865594728242108786272741994709910274139473037768540603931073820741576503266047851174282741879839962646786180728642227588460582842315402598474166649992983540949888960383620214216052219553648729397680731890160356209665054452542846269290038100351688628862650093534082057333319473125770385585097230807013570403208088078001636001093822393320074934092717360424171583420922676611051384705470897675409385875510001866180588843276581529981516392268986122997538940135945157329080705165648362877493296589732774994750234937970048040851021611214260588154611717354127166172256011033608136712834604771667564080253713240696599312086400668484496151860486727047176257136041662786259279418739128512654884410912021589102387886262111685129922747024205648771423922710172100177305124552105254569220212857652776585490781175789014966360234231748674835606561002794230498214326024541194783996064143095583328129708276649368660403464334245250066605456899290797328800648675505529360701089684928640339158590344798637099478044485483864328806478112371132165492825654760099908366553637742208795952579173889510923009661944537333909723302465682343285343982383758197145917702829816499579546114814345901890729252465703426984520903797054837950138248284081951933728989691077438019253918920598338310415442158569658258897347787705225416014882630897794928743221836787500258101689707599245573772195195833055512517197197639294377727775815141230628151870471708811141293882176226696670743150739996534182762373630824843975558335505873022934290634931408629403602305002910165430590987206799717970566016568865964291207778144540961967217797246443618091206835802666872165319129266514853165344962347365118839598131949769514364848058181645842280557110253735571369126188952701758153793757765032707997225641980239087446421771530778875274813890923565653922898493309716178121565339728633705463502245562896905178700710110339402433714901130520025588603606324572089509859491520624940265606841712165291502859163497171176221206356274820209162079941067450024207648223291769526645591259173457454486057662114129240395544421815128661285832439122012162217493528464482027592108340477135697047898790945256965960143955622337533208958264294343317006333878021301414385284832579949531686236215340748576006090421799398457977058883292512682835425251169535254998282692037329956573590619146600833613013478116001755057356945186291489307589905826854735396778597918949621559862095094824953557290183924774148241056606258921743290881866043453538291983033421409688971778432510320642512977390830338822098887490727867530360314171170677938089752421888143904221048629874793604409299762685493200128949854231561451515327899313817825556789693049535589719782647617963995353701448673774849039244784303866355846192655518839533771653530656907542999652895886401099681619053460477834231290385835953950117754457636354007611496463649305000112078149346506765096019038673929220776757493449635309913423106662275517165717144541482219769211902546746814190984676364835450024656456666605413281488050032702047622385206062479101512314048379160263489156122779652033840928505104861495261183275717576537383601919610809933451506821012846545358770777439831297628001936944006091909576383952628553660368547844239399890538131459153794040016728791902651178391066185355223434835074778758485524020261167278036765828704920529492239920315548280113772934480555174797052712006779518001315114169801903853105999518915064793006700673139654125158009971107338903752375334914536307216701123970168188079775154096334885142967406561011974201737849205290390409044716950875677707421125566159452188565870657210355786549408054833352301893213438431697616011532926444362225112617644920301529637057467074439587948869518012314563833078053365939161673090961667264544743773597656699226621117971500232948409961074758224658756442662520687279182604980756975508430586751362285425012049892829138878901845326798740960413432688621323855625119692841345150259341388650084987003483120545249736401783452279370491898023018472344510513493298145361463280752910832721456586538698718481694065970196745726173150899209233920126792153569586560038695758749147663496863574547677984686528791535761698472431973477807391403259484173176655083508655241979503528486232035019528413938862939753202855964428848903290395458464759825980723745704320077260427723461800262594249086320562315678840535495773933340887955169645066978203181042331548664825363140522604322085954413384197543887287732527739799791119312046331931465561726964380061803910075594863719615711780664450051432237250911382953144583293354730478646300217415751908191732515439381532453310748178598706471717800265442473228628151887299883125610144662654157016806526444484904917458196937337173696732694755509984164094291465286329094093612240712369430834849076184650888277016073649834135621278337517327767781481314843616129327832930178064092468556709457703639865309046005161488395537994127851063345623686637664313261191633374639766186716460321369047462005384596222356551911513985362423820250431064506346920722784320559123614212362555450721584721795169303118465071760158106759468268452437848478874617453044264711959811667248783501092647048076957327313308088858511659142873731235878891737820406007726217620681312460698732554107627512512569458578162075110321642615468170964844226156009405976874184289564059735945380996065846871784097586856075571403364267276854234729969415940801039918234648305943237308111764413283881159971563704625647359592718961834507463401888945305447142831540815649725980749693468913576656628806296924305062767805814207924306649054933927542327397361288623968191389238414868133324220473125297732143091127134518151273545999588214732174911272111839292157225457341905208099632478478928967631264654052250989441226824342668868967523939438425507709509135178968137393287199992871117019646729308677900124239065020924809477612733456606932274339879465515851954851497362821470020878668567420209860616065705078088056456506386925157652740388851050606722607658678022517603597390387072183995338331649666162292089615619534139655011176601378377918531436770980837481512836528053671894648935697703279412062538259392801495970710158925813146498533836043983280421303965512594017317876727584039728008819144886593229057753716648577592648148430242602233727041212521689370009527792136704019596648580519936293316199353889407686351440149468971617682085808786422666768808647597164023444819314550635892703107032384166646587480486769558225692147690143340082557865535741472957039071101100729823817390835209625779132746597256871216315724814803012880454916344837357307301190883327911930044674165677676148320930238580600683977398065237790238329819466515330379215816627547157091758482270709607029135287921859353671844928756541759907200080388678749742203057655343723270936493808667348340286354596288237256767442223866948911123827718335204851917694059048149473271764875191218085182349360038590878150942686233121481915987786107462609547649481312595637337856966704697166521539416376634150890431382878972339225339121480676146786881760032223406425803377523420289911400791608500213401082955678973075444932512050484115539349085850337047630944787060575004875515657382412934535660631812250123406539678260931215987832028198208933692998084496367645336363404775298892773818167363719371864360788712433950018221844328339849168723936936041897379774373423467406476670131154551249412873510403939163213586723021589984486545861997982968644786982433799500378119646054251954766905140930703904851962366665993705485136619813325576453818254691744397477074072659246925285435675966235186272267234741406204605032856527018873724443600193645189949550333092874348816599480501709593140312465483203485022321893628501117119113283773973962276948988368900703803898234289118446011599667545167817796643751241331718549062564141173764464047029478036008271351996892763719814773290713222321238772857595343393590259599709394266185544863617246989825615443764874127649933643345190663714175676115368469434606162443857940495673425238499265140308035299540534541442168825453189411683277700588835704052990904357774599783034303046207948982494945310366665058518164885495395251585881426611515953038918269273018418227206351728540295715470971436537222455453225236401368869892476975003053217664382065221630941900227458273585337230284748408433863186411913479249976873896367187871916822777704703916257899707697580483595881759205863541541262101252582487559100791005364624777532625639017849542935788653954548724511617743183850728385453523421640482146696136242565737157226586585580828270032961226135963298258233987836938056962953411103123905598693702383944454223523147396653297939583951898313511589840840413488251698245989054427619435800533636059417890743746802158945125578175132513062589308016779029742647368361081189908876690621886874151096366975935698343082245005301855923314465896957629024945288622872538964737313185647534843282706008310717628877970370448297769807740947320407489511180217833934745022276275320964083546718938802433664400644530675180138777128010737600696151754394454389304472348081743848494936139184607214902798873450412938583994295362772648632981017180197076786623344453747526561748469012662426160138883541371214455131890417031430197956449301705489349187447363523242225942113064194876990835496535159241868411948677290285904929664035622771671634391985960228598198054448283369598110754281099042551062834679554139781900573688343619548657538824291734602450463044505450395176367156666403704741463499864537894758133051286862624140275842035272330646245203917334545984930962119149406385319929951413443003763240811781404886815860713050779510761782355606629422519056750308751191813593205556429614985206453414373308464467239920573891316451636120130122419379959659657223236025794563525265138115936498538294517242939666461685160722471720285166950714369133906770976160389134488168176340160854569707383222311967834632650920190995801431250946164762666658027496010207762397031243757291482457789821136737755972394328780536531934010504593316893588146550861241894142080674495169575629271005540918952005319283681008454864363384339059643787971571219452692364774979341515650434058598566731432090966272024354614631464512606966630890815174753378346336940840648323313199107158608723783613771918739879188522440644522997023171636964554663642907754423739358813643684181289949633009467012418841563878066964979049712485937715523538899532674010121383632965282441959823706018677413041722084841007458477169726378661492627818671675564475848153097109235112497374083856707369341097728399841009326121553241435535566879773040603638913303534112940296646725104698366847190136086166397265428445247024799941288837641067974718502809643957361292399025728642496180930947033432771030998936227550766671027151021175597339530733547684125367164769931527397297696756577865061765700112495286602293260679348736298614626522572629131442626906048898682922756105873243629403206735391423056043126870993077202542802227530254619233985431671680390738307395936380692744084619094569916255146449350503889943895855331666028739176687817883281165996208003969278075648488410536202257090733003096724052399984159733934437743486858350139901874436546562653652560621532957607920864450585464751346979195560338982000603026611422445606164434912369144419785583344812585898227104080136689009073843796972475956621297649320983335700168585392870008347641266163278375958240046086286104129489002801734135486465506390858759193038784376375021373070278631561728684320620280076575839462007967419591406997219627645715059285127932767483530315488155304206240052757954556870949902373220693126715163794159166350847464891220923328028910370759893238584962586727398513524116307054533269582830442236457504300900583635863577537458701239907777502199862980610932981362329704453890886621054197009606905682009519979761251048285519099331070715852298584334876598208657056577534195851807228229354543904047352341990475514665872167080735277223339697121248987664578579956380211598797577249436001727006267051251082255160807709911144836829943072788434983820853713938592045042063277304974516623841407098737690001553652903705764945947424993254751930184577885666939971727952686691391087101837052399155043042541229553382239862128502626473141196866048276958669269482806192306497996615407321222092986470869804981218207758832307972121313133441762320054051241340205443853305835548431839282134479286336376379182145792342759953314898592724666289377738161734111744779463730203602791923995123518042386902022161741022728063916497382142887331933060556523444391712952514108723588222839203006381710134996371547491644387160779706307874509209651252568330168305573130797791989117532447322960527979792286783985077299739083736968681345652745984717705560307695472337746450423401130886329470532344783604811351072511723130755573516838955886322158569833833255229205518551843815744628403853223567577127865880674392928956851483229624424133747061323468148567432808529037034689798208470979852689781885447758556798657020746916492215080295580510188519375687231766189996156106743324761958497827692006453432752236109446601634212122980429744891680248963189186228930481060058355971249847285735780039768109333539563854376808745167539106452123561499383053906659349446965129576296479439975066932444988630577959332888318527577551831663004555457030307413734632595471115716578218777604093514388970431870147566913388901215271683852221507626336580877324915049758732154605449894463235408295250841411258990662196447458141509635598097512362751574575610390252117629011640771879253492212604450292442046863147058081578203808456368631717741337726649077857338962409915344025862962939769513558489737348440250788527101809368193636905231575893098739561488669490867652143675699674124716635274425069370541571908963484796015104536870486331217005535260469509530653639570583398722973156026495303560724934262690713996022585155667811536193377166879297358825732332293959267454013253188701670141122178513644157054490758985614055371444631743995181987260800071753533339680752371570915864177522956600555355679843768072227129791023403191061783155489658931759240648896409161245265736021926177452688239262079192328745845050908486223849373342624403303419531859322160956341956334343010327296618737711969296509187256398677599848538583654478616527337721331972400094135955280849345820111766950458380833565940193133135098101078401669358697834099516224196602909645775526698460655582613126298150426245100258636038741875392927448953000428981302635720250737837926638681372749566489226497040848912306585427734971028529847530573005624760684429230133767031714778781746609584939862677557893476180005856984101466022059717341148916051280525700678244816710708175446552543260458690608060803266172565352000690729395302491796140912483692683493958257439298895832817351616316918217168419748953760464192254316202068760244012444611554329186185227735487656281957276377506421294288249269201950093374942845667833769452469946098060601318934756903543754258827685672458743131182442596387264053007809390411183523817793304479059120541039308199348658967044574124894216428086800122540254629468123133297822401046117662192514267828526680612473480579825182196722167425001946773336101388098053718857412063357570645377053779441910978659314540650225267321359513274318870707488282215960306180041279436838279889019466891072941318793458365684571107246382493947820162287860724778719011143573838959684182010835460544406517167741403953238196566941195110032522173430009918665684359189776530241263788102869208485407148969197674443696564591090434633702882548534705089541679463377589602781477377360434274351331478818085054119686305929789175538060033289220410864419354654595673405144080193525019688703335229464254362187216181439774846896704475376177229503596057935144545041743516462881083960392200525261581662924633319414124642838917794751570948002850355373751331651290029086983499067602698721598703113472581533946145269781101781882364224560559645383430827039829815291909023548271638177969011557660247572058917850091097281597146223202675548350669557218431274036487059461399738531656614012309027458646462547561181645550674529371333168155458719717015955754446926033701232151758529792235346830901069663196106337562676503358268024474487925757815084310160973710030863206911501126067450118892973016037878528374177336459139497801895399555736090042167645326044073489645872882612491604252557929187275107258552677857771989515741190000470199402466038544128737655974325347504939636610926663577171054880381018714443200431531581973335593724280215312536514081455760625953593655052856891889692487498915838390540589871087154558789303576993065831962104503435792203021382184881977401132811145679209134013581835790869796580024854168389238316183698148215009279550101613337640789727396445310267281496857573707474152649052650541149539060486819105547192614935116406880368086200702215482753253617572604289452608067145697969294190475114958290867125826763171728979590983974028151326446603433932944368318371168686846583052268189968411244911444887753591870783046333757185980538572499411564936346072208839146668859864954665155504123870766807334884794145302773757807838527864323304460301505124336916311292478559814483353622749768225762457304095390717297154617599676691433311077081056180510291113912535425359100387787618557610721134423343004859850226206468271436940936325028384438116604788381517075658830443537526411804216472858033098432072140394931662375059418255063414897629493396778225824365596311794943362049477422390879911355801289033649097808337598659834627216651063664467254713974673900646789282633789417007999906250962236041910121659591801842377196917650194121947957818529607933593134214628973281857368356968893533016769226145344620989881642864079734109108448664511082637647301032549995404951656903725875059873157050587463786534774597734694615605346182670564683422863565571891483607567277731110206019597894519671932083348213418336882223992173108639268389671716061977632148218110279065796151316688717648089683501877624625224059164262943296017011817486858355373710712307016598775268352147858302677190460716482364915187573157757805565668275922593513138562374910159010507297567225796552245304345272844970420666779434827880822122045879724203270775497228381054653087199136724227724660521195587441589135107904414323948945684837748437121575274746355663635134018217204419912731459832773721479574491169211052412502627538940884240390201591374960385017440527232809464568849038806666261646057993595970503264524336028071389590578029529238298938378616728147847562726004951388918391906356281082680710484015713962102238845933070359027099394786984159163864898882741067085540319518311836987799352280711492660989061735984015363177243553868637043031563942620862239017784863586507222702529047863709239886576528487411418447407370001505261991125556487907078975097817540781360597337363394645603030166697233224958343641966035081258423118950214592988738486727416417674139033819381452039609426855882731743130959126097548936320308853861517452997762288590379966782779874671472088681053155503373559866242999200143693509606712933038016191745274591682866163907569325011024296162814330003912813409036071580867096147615258413446335856981946104666689938322899702526474134265054345200935282409509283832987973469513262920023652539542694533373869644551262420471006755387702115395061125016542653196248967373805829200823242973349478594850656428351746372004451250106100633595040137312037977246241621226870243176992249746342850601036964719600486641939185720998143926041378675041125589039858244297472597501437942509778461616764740304807962632594778271138536633954029775153134252882099604027857534952158722872789333392338166588930052316787943778677901972369339875215909578344576637155679374822344497706945684648458223374239222863013617107136549225121615541417032078514703691205399928209933241185082349353654260593870215543451913140259332027873375126011947658947422307555201136577172344934409032565663714206087523952918394260572451610734691699024964625391429985001950445246681188165469147014079018240696538584561023087971339744489750966759025133031755358785109393286366982674953465556072527872524928897960255857570608754657235764624601399060793501935672484063083624030133059421459709622303236462604787663778410680038374981558701016753608987680659684139869780888116745160952572037879830624413935047324334397639637419493345114715966822856515434738681522617330426374551703464381994286463995585899205203431753505846829279430693753489038923086642854853041402824113009808748900958702431885944493082071350200980220763442740798959436182479999158663488682915463752534877692455421693991805268116067035324164551472701042328186062458206746695556550097260817642842022540435404552690896996704795022039117798769123976721963466296813928032449622603061862106600464249666121886605764315609916472355469426073666298243733087254706881571539510720831870598031152921306875179685686597271366898156405857202428802414444763960017022535391937019539095170734592495371617705838451450812732366782862467298240856957752967138463679124490488520505731814060000713737684867227605026174918787040279139023831395195687367284885569540662511338378661065239028931599072146134187311935529481558810752824349784548442029625135626582934594357929275823511935871343068978348729112731378926349124027991617481592757643359344848754469543518566934045023298079160907920798023273650164332522976947429501166793322783452731991773299039465896742357220337369268383742721813723848346055047950826976529108256268910843293654547952097731712171034190591244153083042819686022343757290175408821486926236220100460180961142138155016332257072602196602638045925539988165440808403075602960176582232689822663134746060380736960396790497472598275516468531887139421607773111231681491462226879331528244675003088585378279641543459351914438330546078180407306687056794523315552244771112634689434677520188589706670767009995076340433659202086419515667860599551691946587102300893713274253170540817372370436072805147778433177536366862531263447886444214190125092097216584633783367251671246112240001378167589066319751434199919404894811979729017498733298098601452395229188046592991973905812520432515966884420095770480624947792406456428012026167162101920363578415354258876507701896553919761297534895512871661756774444783974308471479423985930663608080809405368540897358354733341153487585665167940988850540754622004875135379155336705129619384388457682488754949426276799037822834812819255181161696317308033937276824415973697265471567406877675698371974475982265555415183096978260308014508675944818015498368416745413681942902068369136309577886632448482303612320150506627847541454218918016338879690970907075758148774018787091967766839954652638402759504889978244268016410244372532421761962505805184512372787784128555034880668701991577400973721917745327797054863127688166907804421798911280733244836697500969045057500421576357822521740037031385988133260294618886915778164619756901557660790644832331686317344187970388004099320162935275430370711070609420193750554166855043500601307448934564452284706093699503415738337694775735722473021510580728913065014160530996807540318829674874886767842313400701975835781288036693938226395323072847593215326926839233913673417175610248949998076511919004109761025542590541970769830888500633359649929627220300355021359136839818079040294794708758341481309849101414331850981037026352291319457205645177503082972663314154492310651909791287909317047894980187997757122789304080742057636167885659804098455506924780986367907541666228211115120381515479621458166784493446353308926365102216121932526912538521633593078386872229625707200765921926108268181616654248595421265210142233059674123907531224098999358148626174594323462932555417202370492365287408430062051848005922745146846669702783412510073353671351531970475261661397456047680242929744506810563784829065380183246007124045689662661325659194271539959334025994033250226698710728669131208147905641261279630571203936636450097075173822638587507060350157677812277699180614073315097070323690015934815314453534057703453069419573837575518640383722935784580368331297854511294125818895245197777485390392464797075651282021185098956727466044529936735160321113725399974182906670092766264557134456330494971987494207191105284927396846318925634647666670240685488969188665158068163600455207123314891142547911626496109807183307213358718571092442326756153978812759431632526215442268831558646501241493328527473242555202717866010264974014466471608683269857303039595482113201387063362324041638337911354282866808849964764445814759944804786088708846866744144452003321486421099275690843344998660293476600431930512051548177003946881111697126212498854640159635199363352070823882531926787280947362622675235282637566541092796978250290702093653068542430180170426642459719055391137364617416997727453196762201809562709386515904921454698322212964840679196036758274060146404198835407634127280841254059516609106369050560489695625054890568480613420409316605482057100950225366641393408679091345433434842385153274356380719966642505847873979374943019410887132875763670387066043774705538627365403934342022516710511667245104167293346132477629745465825656269915176472806166137310660741079418740654705738103888943575246663083770675446592381568439577616971976304570879289466624228569090696094164977649367141261548153843630141685905606543609836446212626397078965259487492472415060125336116737426843235654466638165638122762633190533172275181170662694880750886179493961980166822944115793981271099434934668213789880214864752228764423747309211470615109094765459385031381560998269128219303689166538339958174328207271984215797001642763234117131019287267605130942962024544008273301336808424301337977726714321297659734481935721348962246358305466200938477685328696472883253793666508782305927661173399460963718059762884717346535468244923274034365474164361940837373862221533348484455993906081202143509741985742128280553666514136417495026432000588042426498501884341871478572809675051493270200838360098604259608926675594065208871015274374246632427200328246442843680765511354844791391555417906991895277982570721292648122364813655634834095152222325242843493110776348714206165822023787241639438354523541677154937657055652902873277063293704917479586280284512783833158734755220666855766014699016522148475635234765696624641020933835751075124137793001325744351684391622597191449744516837786059410331355933579498388065693652436280538702585073710020678100798805572575827557652453563524484847657620378216219789134165176812674073924612700656744841030737854117794416982710584803968250797550050140417080512340282000500939497161756644613107016787918239401901650386548542944677176062806528651067551433950070400158264721567955647799304710919278315124650296610815930957358767755813358534493586342981010840590858406167161956191523856065971737583994650292208861657810527150222816016189858066318860998997641420159463868813048433551162739643491113620041438417370011375999559653831036041112568868871844857432139617834030355180358744455382830286816973748373196019392487852564473556751013728042638440906864602793995502798331195918804938520247262955420318372141685402471028502183999338478253816181452448274691981424694184746594699803008697734720963513220453329146778870501166252734841402963927403777178004910530548522116665779499957538444262656118088126344222652598893034084074298605699715325657955829198097170178703988977431782163163001303919656123360448351212864864807659807191948948080221146283440235499696498324660169832127174324431195863079101922602456348792411624531937335946299091809663534515027001451377858758410664820388741161122863098360921270141391166305843272296904392450583956623248378773612454577369757216390662662286804090764812736814011577961690064531930622864524259039054856485687219242965998820981353419942158800389895387727186047121479934707328842895257544203038285072937565301476232219718028271215684740805763437260472516551869212808816201634320506115742906030864383034868212276361024495283447158254403508808682182370742502739446417815356343390220724417350078014861222101680309647265391638577536858090250762920242720323843093743326060563776789278581763665567748688638207751469553467231307129223036735405641946649628724840554094540659806829971526500512783855265958048900513000208560561524061553647262917672186800218856702743827961381164875066604598005679200457227719035467428965512702953655764200408551510244734741784780502750794674588140107012333481171858725058736957183158958214491493493387868949122394401924604765378585724336313084243793852411893673734622943048218230089964469369936852323360868869404253772073329884059732990413224519065525703706347679017839972455812034615931642864391307059872849424829209768724664251863916862148981617760733029611395122389521202426579127639200092601283269066642829796323159484684061399974028426654529731710794452367491310423225505858498651494223408273130322460565514309301722714931314137710416985046628734123687936955850389170268487324247790342237886279783059723083009660640113900944703922161801739894821363634555869160771442582298018049726234582781635653093611785664342677515749767393753701121937059132146522198192466391177115950188777760765901263517586512812949377571873932356270543071109342667092067926650490365244336684735601124474836107328037499049590868391423305448209004075067294612373294562598453989855347841075604250687129456137729481651397425434145892700156839142292637077366622875461119592043434777500585569298101939229987190951863380901654609827891981451056175572273980654633402350703500627208734584596607528214781389450662437245703392316097047845003853092074440929707194890867510956105735110533049971513300677802476561196186946278311131629387781043663067645966390335296674249527708659183671312842072648340886023263625122543123557190495266885380677737705067347167731698325283775296766549006742394464849704181963508493315565614837725535166118984484535982285731247077691059291245488712834712203180529869631048433899363042208030277010771466944133875184127176789542902279673705724850901417191829251928574999026976871720321004439190535946027435563977471385904640227752457946257555326438320864962798227584742545490005994418509812028051765410961350745084774696928434457744927730014610987441100541941382772609661808971535825565094393467446177355675854028642419022063362228781928266755313988960381048076091824357133247148954734191354374429689330885696690547649248953967445255457119369359277667080721133952726128479762397737417021791468446737067830517160287858761060745814555544125771145450922328815519000528889382579844261852359603577041223218550739338793564378901792116330890887804222763990470336208719044334135743982561640729275592146127865924689255418882031489481190094658763155586782179875003051375940308230700662264727829100643711830817403754622149652426995100299501327806781355132357022694330911812803571304264555737082727996897675688976915464848876820870012894343333964691220418213558554935628803369995775113663006354963690936913199269108604531587944900271716905253044623841205731683905658777808849830116562529975529264993898659628353184888865283374770604422558971168555196277573970297561935649993560414443872965443032594351962254945377792011893313045174999478691063302408176474589895147412650375194051120685630815499703973237084777112178884187434877196314474762074564010108412484603934813382761318505712826756378353519079156679875836385985251872613255162183471553086017518930583376585855757926502176290420645518961219217162183599660302791687770755354415788350195854412869910500224550908278576477281009346291268956798025572693679355213514600740366938677659070982840015543655795216339259696297045496636437174211007725261079977829613287190949327576866652647253273000232025434882209250394234924977147272570852576960292561007103697003015465685813456025559559219213478590533211518718782628440008708690347704445256110257398896919133920376926926943232590017895304500959120055081710451041380563489178807741268141215201653471052290965006279865600598425488519834745769998005861690667332308253587797202531118009055953331103181824521390304122871824560875447607932163020423285405912920134657834385351670709382697977673279741972963652521227828439561381471599057883089903725855517955724054633191660804017552980886687497810895486423589770941590877242026409664409266234734242625326934404278656262839730376638333257863097258022476230559348402998885962194311829211539214943212631963490793467611444757112790122587337445685566411511359468375707768187631741151308066743549633166579044021910443817471022378757935261396925987542511723692652050100876317758441240055979593969084604885540233289362361428067142143261223884262105339335758083780694828549497842181967885602236972201035391968821890848960861977485859411872081233967231957864499355570935634523542070232203563314697141111772945451749600008901983557307608285191370462292808984671156235491575907876847091322299801714667328777482561662011494063952422499332547665068318452584373882455087972026413922155429220690582867356527523496650892065039684714336453049908884257016598249649072818590498965682385728284493360993926151762397982002908582637776795194204029038961986770734818990836479725845499125455453869921594156392911330400998917953741657952236213677462951115782270211757621764462755857470201571293820455508926055227748937846287055469479553941373318031275252921790400475679690321372239343315424181673203065840843828009412460347320184205352053149591347887882217881779957348256922700016167929136446073930367757659417619125756929165380727672280606962357212278719695473039767623424454633307265903010926195802665849952000804572379413026855533732099204278920365137385073994840927418215758380002316424676546313687302660236046175649508609420152241358317161080415278056935097471246927138876693619364503957346564983871677715713258361014028002906242095814199602411741733078762970876995399206287811808762927173510516079525979818908677429683681411743209356162819052604359750904189628413321618799105060490589250605488689571678045755169090773737191515424207188786073901245746227712012063394717901154290594360073800162681416136340826981228240093240408620485032775633427870171360177841042388057898077535698518132092563782862331171549688080020295986717331398768907772986615817376174674355099869902493369977180301963769517445779111195879675678771374639137360494869459094043291396006420018801255268885410382659500800382612013737160099018953880517470436754694131991563523305510486652916706600346579510834337529928815109919260496649554981471781717143473305092069133991515697573767781314998859217815279511283275047708839444247433399866641145415412327395022423546235645379533958034721497408151479662186207001573478248627311432887137358124343132035938463934274232312479140901083007096896423680665927945468153064324645166375225766723394124698378717585170074355883201574304126351305911440060666332371892199543185318718293067817544665070359647048920828816562208349093366553912273381440444623411441742798477684859997222649721051196814053707553769508791069752785685842509230524244019316525067709394684338469077242245283920247988090771428010564026602051246667907820445094249218135523024461318806605895839221334481651015575183636164599642779609689745183179235642693694357436784709269919520078739038216473404176134889303043381985030967755792646888635520364896711596203279811911017018167689756401364878268075276316526619892581113556114461557559095029614173540828262384477873238702540653217549614140087155630610496083192460477174053152473358966120593891867887078205142154966282822689170692832647505333200321469020112185287735838423792808411531249963259936389931982680372716870839795089601722915307805804985325864773014442991678820978011371109517110232075923930239096904527287182477193736763310935783920658852297307768838263855084527418871723955824557998007221606866725308796800937503103110599222735037647623007775327314792946997435900715336580417527858057820284632286576603433734485299248201330023065210222617713562006277083820275930355447051887428875840945599336427478343341316376565275818111346283878063997199832600116666320370286200623856975441616202783724058470596818209231361448600260505157076048863184390755696975993744358804395969111512858255144993437961968598304956471433488506267248381417370218379460349051672546314475328348113419869939969764844248373177705609403417851524815602585890432207499019510381161379454734088700845553539254065707589714465608521166511790794688178925123007099722087538957244559387165222206415125663868470949025368529757410856296166584870126397225751313959607813393687344558968808289903933262301631951877191808699541866363873131502638792026690802558837943706079936306810264987747998300914230190640124921584964851835864669405839392729063302036064481162192147825235059679588718137632712472713710973336602144331587926737595351238965307705053963195426606345704956070063898505956122721657182747768937455176701058288953046192659909346044841901938749120919177072978149963185317540065385985785907325501957130558151013344554776855993199321991190289168607288403067439191653813594644442427539962367179673071415972292105835216102389058094472924349175938322216010252154533104477609771652951301076178752235474583962370022734959623836350400578932967345931293514730577852864927391004740793902317883408477565570208519953790868543836796959502567135318744966035119667287015911500584177236658448034211665910347134422024873061389058759054054065785460058357298317385577937861307015502668656205329776660099890600756330163224169432604561715676055668961229438008503462484214100608448290478903158519700107627286321583795244718876550891423759036663341210285972216348807566077685558066032580863936157945236589242864646810508281111855492637356073916191633179010661213592042099920809919644813335286293927276567372351219131993951334273079361940577100566891362543642470433547481827247398851493112231375401891104230160539807363546739749870602263499087250445014704107183168028187196550216661753994706348115740968872571775998580538818873138675976027923916719117830970082905952586035680632575206181846804170315892999122669526267901777186184876824093671520132238839422405997368472033565640961809082718779975999746722787536105489045275531431510558263780041333462544195600027244201069786031737458365239427209757905529182188745998715357356582451522177387461547103065551664178842174416857929751112784919131354366506824921595814672148473605919257355211883312027680657913725652715454442253089395681339023243249082044967329900130897115255530246014276051407424588033971283490953194462488983124269939200222790181815714129324665792751020897218317680804775914996152139484199424793816831053186269861125254367006211411487216876801403201940613840990417811156381061466583428763221355045902151777864305528303617453781756559729269925965694410820276197776960839571422467073016526297392985985803231292727260144616535177430065684374324497849069940765963924371179703811103467692835616369599302428797391690672320182274414928850024744932018936188544653702905538776162537951158409643751143300841898600205151418932607667126487419474643730360490264953340759601113352812508425240225287167384341385821261518160136748564506776107350637286190200349449084309027800888487399233262110938525231249118973752192681663742703636618334566730816741461769331612610446218267805718050000345313906137276151581134723322880999485819496132600209288961093770799791338351926407050917752184122612546267939608334991516220304198743790271628604332956068812958512746287740639457243993627105686531123049673603611768220040881156527560267363545593626654337951634498170129790159020439185132246485761180143448444704905747260370682253529652134068469622243574793496044383958685858868406902447981194355351697202286852868577435738808572419001098527953091038597792808509666338065504219610895216211098905172847216531766882745438998984663831045814544764359763687559561226639292102137631319056603360473224949629334266769247702389559127925050030848920994384437966775569121669901289651125600858494857118311004634701369883297721531682272300852004337248904519803942978203779644406166489203043201935780634881280798038594531204713180639890358677914316300261060112165600101288930098408841630968675449715945303827551993902814441789810920988393170072256909786632368464985035582923294427529197503038665434183360957545503963081372235292687198048191810851971831002485857191855025173646937883620938183683390800499156793701241513983928620359921199293693499786737626210582057409969220090090662084053008091912322916227059747033824071733262124565914972240944068593010308624599985159143105667076470840318711610985147122492298757156386138083105385808775340282324562780546265083910685843847573195413904959792894700560481775801173523794222062374651959093956828230478292199828556442110132471764478164776848120540226657610045490705392898481399762977687633354271238979350583490452144866825219407503650536154607170330351270192459064106358313083040776296235064631340645812632311233519059011881264778153418165395673807615890532470046429340265508952821837195760261499263774037340948694486999986466259530776248157587666774790478935378122986884843443254648796780425244213768356937297197421374276466370851067317519415335431077932031757741469923508986843057142218614999454731007912300163051180187758995622712170775537632619121319498735228264045908197390441839251153325531133962033570583462827801043142265532889776248908961750598731519874492492604523636600441706488608644832775768883767613952180645636748493922520017315444052745979671802489742965046560055345631886988164821309052675648944281805483875522735624487939429131471374597259568327287379429976533384427006608662455868902968255877307927457522311903575408933436592721687334726544453319842164501617337710518149559897041114466570920941593016997553142990685157557078484589768232747362545651477187863947083102133209200178513065187482719564029213549709115564376613028736276417679888901876503414948636654476864581633038034946043606162319140827886549347269506740444111827983482444655107251411888684582777381425456059875434276032490970604511156587279138353559858243177139061905718776958366145772406399090444399412083765485862221985378169906700044720580513533705519603493604730229953515467716000597291638327873472839984841294981073996002183069896374350861830644745946200379567498461209472684775579851619266876628601889177748606335330093279098644117530414328685597771392365717866204555485971627240956298760637343781507639365491528437038046677155323423457474641193700396509141301113307211149239104399578530759202329605925585934542001195401860807471930555229714344277588980084572379508875123100681620834234022518905805069619663699996634281367649585329991359414531065211133498766129534699917884227442980561762667689505336282098581159847254624401789309063978695120784206630498318711370844697879732984439970873966260978254189779432267088631104899824071694514979812629087110859852762391467746796030801159429849661335059702835794176838146837695229693730740546662050474629023149598131517581445427535409870988573651332210223289758987808585965353357309635419382880686836285777357011697655348155195213903764914502807966970818325533668829030713330319124551099978609951890285190929605337416979445978447279561921758750327619117107379700663831994641989187447566376799984105351957817952346447995019198208058903909092543571312634978109011413830800243265803105485076571799815254361164925602683721135645721681309860761399285774861499387451015921657668959526589962896092617187765649166626044658989802801679961187351954357762595244101752001184860627724495181436657141475571777186164264442398555043881702411851616474215278218876123976648858152257311159473834126018865702047188336464039166218275043432951959709513694324194490084990832123663301142274196240188379060219114058369690250635295150261596818261710506032312503665992851014744030127469634185291864846055152693032222235942477718701227993730718958626116574991683398573076264354686762426680445083557192825625531335845528761373041825104021542627066463837797309367536517002291652756317787097093992500430023477526397608399349925536247740732921859619197372301615646891572613750896186203801072445814478504712478796587450854616310393600939891632018314576652383236534347677510944304457007868018565344019964993409314211070193892815499157003929484969932888076654081520100997761702724195949048603821629996143672297372433225710241354427525953777980518537105421318395803001446039145309881032738323732521320643659500756156749148201317119788668149600986527554813015727318460270582734229549156486144982387847687587811135685280452215579184787337038850254788818911088924309338149789609896654894879991788656382696727888203541338690634044753290927900477968013707511528324104938969115172774457292653876853294383214615856952716441657608593721691255661316974222738068309357600427901146388255381035899835326529959394361967593177108682213158619313672362149972859728234196590259548010948683690498946560922777733594363102997256168869222122698867131385239378451518950532114049292644166768916051705102640981196730171302491521876064300012078370180027724189432380594732366202013641767760301666716474156421505810647652727726940998454890189124763011508020913086630839991762684066672103295991982268348007293412059999676997026617391081988570280166830423079863745606957867158841249085158034624467563011440268719904498355057031545189870040213481565230124453509620365896086222285667533754244137987469616182099393032369557046175442989283109832512500904542415788256866673494143114309742796837979104428473297267187823045674615351705474892898085083865571522513963338901135678602947613585135483536703437906602481985285439966434314222518550093005685587097358337219128268169392723372516972075914395711856759805484366988672559248077036245635598538378052123398704308643231851926384648228123126618664569675986670899335256192768752897221163625571709597846843449941872277623997903864688396867794314246545086669590528344658626868574556060678952146543759443836963889784345538306498631331482570672737843768772152398203215511687090117241750429729876220141254352825090041106288931807575754411164122904690479267083947500659406414922993803552090052617264816292427716591922541832157440197144224681528948661041679039404529184555759409084784231182121890979210281516210189277901816725432119218583079980697460506890243828704298313425967918400959441321766930304722664121758152190997024422550891953135588612367309267015680718718223453560068510843248764825595772555842402209711039329651344019048702762108371473898453200870753517257323067578469567311298343993219324169424530019375952286811202441030264294286061791374811530480876407729134204866927160398648752413948397209231606961125783718486609009189341596292941630620570311714332015740013322002159743288950061050920231608883179177595929501224527320577182472003399537387606196007984049431499537191137386441105420655559499738541696745454171356616763817754735944488404169664429466862372770032599077811641702139751745386147093373526131027434028908729834628493723806308241727581831871611326485280931463542558947585210074407542992269404817135392877125380636764680247351683780715774397932129548567863520204901884991037768978943603658855123445072004987451861727331437700860661793056529983884725160782463211515749179937990917955193191419676566387374166664794994708793886942200570874225663118990815551490667591568692255715664549063779635905031564447761476796763191200841681734406880422894381732792718609062326632526702275405084299209734468518766431111213676508054267828680333910651422314640786190597796264364029665587174619166442504091517602711348855028368812144345537647288712152904985291412763495037311017591849271203270728937254867936867774815068746333098799974642973369892601930969330422888198789451210447290670681093318624151481958573921508869239611367727979964423801172424316117277353709322806085906725419594670536458710910508368695188581562753152133820311668714702327698952189980990810056745623446883375395351719306373109961553959477945945875358564872604780108370191279870443635398067936176481375663556843409703393976673637340254621255750539640674813616972696600088559218756872566731426255760795466196959016903264850631412850478865551303007689048460399614260908217045223372542751181263270395555708679177548173830986563700683671419833366448288171722982718533094002105729604863378824050645864768938626242543175726232425628071271133618031325303871226612454841612446459967489417999102530221070238686575738627495250841882522214959570628506158846999626898787447770285844744181237016176940217557339760292823180752624716526152052470797289698316040777743766747676315519842963811560226882537269003290858555012194144618222212176822352075895017831067406609664969099298025862435816475879569918616410234432248990169113900711633723470805378737025820946371373601244781826245014158324343581565404706820190677506099542533810759603218912951899898966710211921157103108481085232105502694007333123439896840327046957721332885624658928170030500372411166703676962295413569512730152857106593792184870595434792496456659063950901643642386503123920692182625052396277956620085903991521258972457571653881152542189099701701563862834705522058644663662675990617839111124735311356239265868922364459408570861736754861148843358761256954587725865142840797263625563220774663473436674326924512893529468177486432786239673553928699913818920095232341138430087613623582704505179352407204545546268315578031256693013070633726029168727988070982728205872186984933885786566607879062749790185254432228562514974882518400161773171143378171213116718544932178076882676599473521560682116764276920332671242083485216139750691683101752088328346294010867918192240193557202025894947278226689074435206708437985511697546305344765464654517063421583927709370549478904090236743037491386373314922053109670269696664985217725861801526281010148815643616430383992021987268609888885276040696284345646092649181276048456173886659281786093646862728592975317368093491302204010473001848593242946955785432241601952972033352185624262292533147404328156555222794245653861796013831478822753812667066523649875630502613523443608503843445499657811239008727518469334790731499563392438396176285566901843453510789259048209068774791891694690146254679621986979822151941891087099519689529276205088657220367078749783866852631045507384513922393698712148453510930683252824422479014249899833495203508443920216835595898053748505363583017046956776112116325497458280222101475548706775283285561870317698687946391550920782167986464936717318266128993254242469753499280597887439699836859450776507926832079331163467097288778932073895470555085732766719255001487230895446356013472928431654492783692707869625655238720234224669685585286414386867852479034841820837954053607308645458373583274833059340760551964858688994536135222056884738635596928564278124670678044834542097832287158241399161560292802934086093502738651738430646021929534262196582806232648348987310762470056126783621891686612477344563213463796415831313785436649947313282907417722222951807493903034419202123082707758623417797328595168770409662106595095728272918277179362818199358610804603964349894904377911176046260806712171865907924483379016873069287927799898385315959727903424126585669455099587759539560082168764556739611438044461181681939140962114031714791243442341193974959336757841574903597964554628712437570936950456107676165250818333803708153439176422210316380835249312562401564772292489879509818606217867803204771426935281063195695053638338042602928158220149789910608063801329326543052257677870639938810424806513049266047009085453439514378632416835961855260574416831992517619912039750608411344346378410689788101581058721526899114003121649810646540681412271174355097053262007350368790519422859034887890499791390608149552977195906105664079935910669828095378854550656802983898960804739326475817729317522755242804845044107133612007244166244045602236604553564154958842148111303911890209449522657993517256607564754039556526074200786776912185013059400714408817909067007343751400289600879995008045185292884452204113187889406649976895289111162272193521817975057357624154515149329026989127455904355571990173135116685526614596743763309632208350897047748010511763385783951759727229617868239385135202241570391218030118770983811493770015290863867580120090202977323406703866271954676488513370375451011851773964176129870041737066216085378974585713837400185214860186973095682400169941539897908495147834587154842606374215001210007826057369700672642764404206773641944127486646051431236113605294887393570384226023650423686621175782991798412133552279122830826486404706695605886146434553321673627085174456035212121066094418085278157466542321781560166749695127407701180511605072111200923377829086786035364218392442789438273845984929260909772834080719059859549487573462612616148823161936519626023311906735362506647063814406866412743080792810112076276738974432938187409706498730471552406507710735885695407911267041582780604968710630774822658289826737198577307388712671602533352411343464841801321512019750217249592879852000643683113473330492462353521856138624493967730124439555824444405506204705933009024865167325876476628296306372524990465729135971305084008696374180735319980859764819493189557743582132752424590956342653343403168482544913138214386356464046068888329938703882593354139074646054244577391302727390465717626684424580112551196604684290054987867519041189599612834765803669629387237864319205180120778133830783562185784992287415863239243954401994086178339172136308957913264674753896083078420028494907722858398308859958988369674166724149437278679332670142728086803802087505695895130074902145206286958309994626475177363438874354034415811026569641233149904039787840069360395081937683453599787920251990712022135697133428997435334906821379919741041288739763751587823126491308151521142718084749507264324682947923782331150698129808161236447290042610261000149267981589259752850918283704895810809986040603526077178730314398612028978612665980958330429056012048069823611802495907240987377585541793496343772948861117867723797581517390633187170289029908587225589320978716978732345450420754518894592472851968938240957167028181541425911061672322477659495971713443378240490351232741451515480398961698886742547181494752801526730594944751974538245878054112713902321208345273155882504514956113149123534513074704108799330895427749511902195309374090930845235282969125008387170965677488565782445757649648064706664867537822254537153780972329764161602128507442399141946672076801920316913831566464099965532619534201519514770819019401984866819390993865120048743643697473604082381067640890353294285989656808638452416239141507718418320283626400327477737509812614500473040532019154864541152157141939014393872801540469784203403648434235856015282283632011479883733268725647242858556871976415881730640346231105359825646399377545658885790843166439531931112380951900784292116310408134824305644841944061464707798811225832004335951145722961324049012297057026036345757585388067080914922076989217024695704609549459605217279667910558329638859100544993452458036568871429664923247384998045738004807262493055152636217721732645556972127888433522344535200550884920611752915740800757635015941754052850806251234565573866331795270428383995710412998617139462636736241260201182086327103009007781567078598148829510668281265017832988888462347410086485522698963376101863108148041535935943308708065393255684021089713518309898600983137561615379812277543345825801687107530745874644655344114403050527586878486304405931039671720564077423106009629026209952353072514693369071387080965113728552774219428972016765088498694999630818960022614093389126371536242184099330528881168439145712752310424246458084126244520137689508991496300651357924803640464940412888019296283813867114063933710593472606178480905285490502585255548270509318186659308417079877535681952630430171598821819752184389826921706661348608113328125207116365549362589607739219707607609155952061469976276159402607550281310028622149432468745750472974834736372760528222566978063570287821118540805537553210698801258682757555741588996556594432122744454491181980370081091626642642875555845816936773039548616269486174510205872237861384977294169605830690547646275548686853416289796978044101336993324704364461863489359683894822101695326044601144223111029921505649733986341791491945212239128493184732289609195685482767511103916958305149177971787102395511808963529480702668713220183335184430792641328072308214517635627921740886101664628998783426032092413770447839864321210414606185932316305087528228026691928832932058869830219709803778203580692774843311253602999072119292573400802586597118861850970361499197402111892367958128718609665516636510092832788826000950416021011378459076175150370474606611856729043887088356975270732921966885297501079867991512186984485353525633684049498476555141371345961260105947083471954938337158072345199150197463736717241968953959632394150886510813835770605690796267172128433972265368866106469938864085408790315264388181459734213549053479995723154057758272594660706882222433784688227842152804290063024226491446730934215204415273813072270788496794466792519610296156717594377060623096381249509130795144129452702943171487528984975793604567849614539587421561479446222930743411708462687822117015297181899362807498850474838781369469308408018800989826925831288786968473684294828814157292952533259277818208445444823028972327252869137103962408303669789152364362334130174951944628012468396671732493225711916807810452359593068917565486644928967324663045112334276489201794572127133219446528211831820746982547444041688802588281760358109771625965822862581626388546964801058874968619744535231534035116905168634023212994052870975114756217249789781941165242733772675226465416949953290659613227812043689186306456262698114112957018199577916744402874100068542161166917336750018691869389356015908170577324451880176482126939468302321042544805275643298167676845705431339221755796125937294704632239681738170834126517751656410830166541902160435148479090982010616654167610947984025194294472923611268145307522840464914491373566627239974060564304318175338051387556488289543122326413738258678959302030521640904858323282367144257701667017377663446392464949289328387825286236403068377327645957413811122052303632724483011413433762983727824258877783223296619540914905023785891968423668707043067080289254230486512852611755341535200154855872576579495358663908792682135982252188195930625861291006699220914274802674849855406937237933146207199988296546633323657730298060610554786072059536858593406729821594257896702054765774603935706040654870829736861571288966901687664099909057620647780970700090715872527356616695971447939682218339135694966665821521620854801321755946763543282658444732510962918784725207016513288377936354149335106560628302458140280505841093775131733061157215209303642003526987196590678280430531680822944455442947230723621811729029442820493333174200904994042115107004221460294401562910977232553303418752211642078074968319716458031390909902468746626478414092511910358072985533638619771031987004792809715793591379029306200274230723207308921982796897356673001232347848039267484648716503546485013405783504687529074128614077038536332987790160880954704616998812973483839487076751326941426777108699541333126350454035412792693691727372039528539926145836292707609492206956718559409128137452214756276554428423967125887325306681869382913313799865358646930684499193557268935919880919840261552590047845416456831947971157611486405168038535748425785711969249309030110857765663354960352446194914497766711812496220304363774031379336358180999611833036723658728590307464123063830017452843243656443405707638939081432239976525114245231152244718684815421228493195026740365852862525254768604185043944359704074237225312848244988333409392164925929035833634421217541966347884590861636250072678775536224222617638699735801600811444637119168132982308669866494486777235732251875658314888290440184407413521773403004893030753141649395378226461467275357207860784483642557040257050817168831080880763711838514582756098286083432527500052734178657392245955476931643929473698257567415341826987656864539374299140378681802292663491220446872454983529291324776488266826721031516314121381133720946635924451862690746058174725685784321596369072158855025684539815085509867144589145517121689025420867405500020247135145376799131744940570848555613785555490891646037408200715973516042205015264882895537133709695299852954412326967223114918636071505564346842975750921626606744316827741950900238724158653878318332910123491465946851498277323484427294813601600911763158505723803065759109526509458920393981200410930022188137574977743985253269067893027268440504647166094729811748868781588077641851288940082252375874800603260298084193849355501655306006673872767782231618332693097074604631863488680134987770214096211016233540764894889836847682505201273280002789973248936975083495830221495241306376383876039113639715448839070324754755044759480871614825630539022220692769164542241793900757769505870635816401891403075455877048044375537047013624716829018491574230487100068466054575659987945986297746722743127348073466911236613940229045725339314379081174050903566309968102102787956409260096094702361811656041484093407773237274201866023928909003163992672133746509237259887038396591652674537987800937462946861572529071276125683003380601645273519431358100037259153724164252453067940143641474936234954986081876255930294656816671030429600955480351881285529748537997490434329521053473433230068272960795584859050265337713483374119467254296250984443290269769130054032269768835829279815203401745986944379003250329645655652590812631204489334852441342874230225898298063900342220664876172069690479224929764845595606566371187484721093828540301797284983258878141253569565046460960950768790015151200373411090594605502192146014810025760586552797007957361559687683973390799314517392982707474955310529476916217210979331036524043289913642200336613492745235125310225667852973505390161443812650216062076912474269405770660452564931925535644728000409844435088076806759502448971088470336412857321222719597190544626917987641203897067717092998016001143231694923551651575417777438929103550343125151968838114492350872978127249689660421331945375685222848101438279560444421069201547430032096403844659505827357952772900202205554747627391335188215593278055811420163210236486676596436713353240213885391959857950920992171628642335205923057053107915863781166493185876826150764311790130971032029144746738048083182660391769202873988069378314315161850959693774717532418593816622148411733323875206624261654332173959429768363961081614856033182259623691457179152897264473436792249674352261834287740427258815869401704073768366013651220594754554468896709578762420841776753345622626782934422093300849522367779935553784065846996434610356673369191488971899612815989920569396037133536387928085162184402038048532415025746165965316931992490390127975080837199550203410271329746195349540879998197839734923070123898840457721343600298986253391777006569318839328468146741029176512793518355173351861424898834843989439467060953682751134306227996488799319868021702212197165750068538727738564534561004846557518227033905952553648301391953887019782085774946075800253076939056074548084350870340023250299643639325294041031542960101479076649095428568647392655550779193303601411708411124564021673513571289154649146918509968039392007382774388120736869460705354474312694916316393313788235627463568460566442489152746251411723037280044205106398239096331425181983606578952514075083167340642313903808649906466572963063369299030619209998708749537024055300819407174539836837587544843174126144587431129947253754713074508472064531503078848652335577547072074543978919030871274161402331432745807535999605641349668707997863594296538420036626557183896179017664718894165703907419620335257897111380273561006000956789840841261181229106717811019632103453543936323623355064964116185051961086014719784249684444019144676825522899755609020531159400813098318056784283537931723153725110081936817785099073818828762071317813446444898956184719129018957886365861440378648779955920086643758119907853187375317845768711246423402359038591573895160894924233836098942390840476316135273981812373456242374041661981856554765918822714930595116894925034884264246562189992858416914057552243839292838690150881727023627486105240002765536858889395144353794140561145131238911935519302159170123158709692208700640520282513825428177133250743770025389771899982415767776214291315925032597128442826623363074672806039652968121250201176907525451759574407887898561909231307733067844356305333475486698853215326298755343397228984654451462284888644450869317848839534526991213325782060961474205975009158368340801911826182269933355817785286036973032523680602642407892801532780541083531792949613891359197946631088602284969435961816709308035382095785281356270583517244606731814014969461307025393660704496082652355533502991883316263244654650146771157401414335478951547423756898926640511718357976736967922431988544697442582602374007515349609979170509284800745781588921913217236613818405778891001406775766055478357619160305548155772952244734429479792968172805348554128071917209620952444586581921364584971477390346671467683377568653116126997576403746682403840995247192531153175555874345937069095596703222218341572371140077088740893217886720434348742535918909384849965678704299920266912356627567623788108053557135971710791223685532327147785611973798672437873211042808779606229705617626214626330672172602740906424384279651413016349191224221573753305502750867460997483293339843357523474619075291719899690382120344734131666442316580405525332235985429699349041969618065535586909937691493550663352575885579891297107491860937276408401629773725029611705646345802464402193227653604544342654336753414064235492536833918126023643625151585785124302160562082473981531819726995540457532249148341835117588956500816274349938952678115687541112847796189519374471859384237937883071326485105502314923363611429880563788770243107031400951082107104353924009332180893720575251850901384899504847024092772353453781179193967216829642056833002792029137714567210258189144556121556393997133653339652319238230884529523297451592152948764846060733428493918466856786873144964935926449496458247685408664257298431088450688395095756428124833502392895699489614079900710884000302137873051658917322647083231979395931052945230268894261995431149752165944142596821283735613429231612793131955609224873326748406695022373384780167213640190662735101739204441009964475151446591426752243612073218062449011649893187235550326746701147746410815050380140730084970868955327248911005054649483992987113317730310105795622652338841147320094939113232502536788166277142944383620140291306694342679411662267768047663629902560073135189903995478012488506749816642778854008715866368214163720679930358322330964543933327861458972705603627564188284155146040498979325201477068713951066059989666897221185170553963020779424905256213033403809834918497931124487383638293161498480480829318181602702410422784643791579574474795016320464157671769342929160864317859312105981351595724082093266230782569536216270491375461990630451700553716815248676447701785303373610994386552939063173749536471674607622863251485561971029359481084181735332107613595157198746737271145192045651318709025560462078182534807466035583845209704580721935286086808625710474335573555822594981057653546957006429967503942139911684078689547316735979293367733696830326561179969600172244824915061664558348099147264376650966960706893307480568100985276524660956645635973105303437577360845679427842820564733885872863901945483573784171479297114358570699601052556684830861035460981197214620250758820628006156377622587695005192942335661479515420450155018832143032604196816871871848737628325137591141331835622123016900440822051136899552529047368903040347591294922871806036628008690345048703510156055264632428408382626493321104125937904764125742781117103977947095923886394600217906775069226748774530249449515684357557723025217803205836918294557887841931062318000326216128075923994277739596208833922385430252378501826599187045606455677310706164550482904048939044411997594584788870098469386778114029536590012809919500803056409750340359110049279500434677527640010576087015915483435162309764564114218881577935140619612135615851863657905970671622478621380690105935428353486345985599081519148679871896561525875807020199936994583117578251410626541395449850884923345258094383859043648097319959653694550434297450258816574735233144780874188390189295259450789287689983373573872865373563190474199622266027649181525895519781739913300987997871923913765170319625020923292219672432554587128604779135228813124945212484877690906378106876743459861703654461683446772818953648492132320151178504699643158583484541681691189440483462528730685117430195180920302482826448133708588969453268297492178363633732960488627784909316184664550008370426409988654845878233388984363117521372548234605390830322151063308934876530807306339856896638509876857979739725572565849381338458030910919040987424293671477464268573559550569179618710543668256907126976561711334764932162439815410374852812226604701429059262311179223572561840997707317245120403785241887752783694446973372525493376172057068724928685827733698961218838980625824600462059560466478010496293647242097574973972659811770766505184289349682418902252760376164265849298648734285368839700975842780780080323359255189005783422266581556339175384254138050615559724706471330794644486980014064247240760351612619125931644639273265706069992504491480958421005241795402144711848286191961807939112898913622216379601010114187555095358261508913956890449425866962926842455433814019073298587492615143939369628563127442539618773359347792034441719730770190545090954389212584134034850377287877874991175286951695592203851819538138265209728798493069353082946052491504633224847557958432334077599535230584090529033301384857541960915784172954167582551220291914084012544534071479113495482281396810545449028486093043604166693076006565179087952335369764454709387554447731551317916648319265481826779708229468569396496104363338231503999748827616376205857941741586176152085496374433866256046789178496991663245292775031348085041408084684660319048703058324568500974656304553618182918563246841531045434197349542056442716614041610329593518201553858865980312556923030831601095353599290730974109112692729156870855525566077195705035506101474426482269924328697191198985391037251426600699650887460040594540613636271851338354292823823163407906661358931376165777026513269448986801464009470589769898408273775585308102359279104324894464030932991376302046412075418157271361046876796540005910991160716046546620036227546580073929137205151159047975966228972322105217034036791725306218240014370072866181278783581345780402734988817357107176251344425325129759121277376142208273102393622719061678800900231302897197467979210467285010009953873710725047206835431882623449656830625070863049022280724635218829690737062233034253093522554425676005175396703748265273125586435851097056230324329995408182853918441411083210950137484627200919173039105946776512340204030869958733834433541698988919587006830909146229207227615866109041054626525124434534319860511927723878448322581070415634178305433689010357597456481464022994185454450536943479320525150690498897991151787498561646587769670389663627968437415168951892480701613723216333352435682639606233684398361771930756569775900341203630261789539397869337723451959698659301388212086429068983216854713672242137027655351641191256519138325481263087649778664777533242966176066989199978731848572297653652290697889204817024972488036161198167690290601822309808573587926866667392342256377434133984978323450665381495954657203518844444630666108320498147890933372175171951675596086738843586162874800669433006460208905908175303128621915819416472096331215828017142006096164635682080137775899456027967438978464240638988503000065166435808401289379913840516093635569811115715319809379752859963166710229153644469438779372480844504825691501164218620833055103853677831469745154797164874812840790382345765842561242908795604791696930047680117853598326274862270793531105637893768927741913493558795924287689564233706540429856287272997224274088587904379663696703524957281039377143448240667245191963370986159444073859530853485013857994228396712166710128535712564972160847886801388134542874807376138827842229395322352519041760645220110295436247795995056513866539184562543546217612015996294411308223555403761602727310311787486805702518587832145795814615300137031582868829798462612642994653482851868949212160815773954522657462461500343053769429334324742841946185493243827403347488015365522792738782385671308779746198621946986780846043902826865311044525258374714366694446000447227860283735395475280796676032966241158122004261747240741512735903952087173566602688659986407850849126851305810339195204858991954675404565194440693245237276512560899464661402476284390598478073859954759833518561771825802460582422127381213599675377995951733522176503861786262378246923644690671056466177425031221116933706555889717749323128664930046797420398396681307304213560483302072664291815202958219246611951751458675877516557749921189625153879732360299667831034959300418508202548856921489803701812274359987362625004767754877787913729685636463783374907122631016007919190610444388853369188307868419623065375904863397171191155417292020049452657685941234919669541926860382886731306805859161604831123505867023818274340651333067461884630543560642325440352549621506896007091820178014537154378936661696630158918260656495550090804600560467914990397641534325256756754556826161248635834970879144239579168884357935669346303463178744186468268384875056193820930763847323453458900211663567184397505249252998627666812892872957637477508355421030199211232068807726659073952661885358298553481874722709187252460093448927800275902955387792880007967449452781159157976901202518592164885511900747640750712584527162947201172539473615225292599113032376811920315041844061315532175513445825545047657037181546153392866254502055871832992227412015281176262986980656076730513857371175692587444644208216371271783635365463454060473015996449633276822118908477978092899095870652485508209388235993298173645530339738138606146807157866559871041340944848766961697442245131705235068984293877968802090602273590872400807089350823594809036657979447660744892979705004283476715668726646634847794058991368520610501244540486615463030140293693874557272903363331418883902349159268738074066985407079936390918973887997971156778650870194725373934046864878677366261063433608916690281708351769312395339856940931556102835223922262036525007952757491462457624606293397014992271785009036820073656629303700174286533001021723600487586585865750244719060574581779355433366831344456546428021826117750837201306691901194598261777080774789690673814403674651126785006757601132577236057177676378715984588040693290607583610588505336041622051899355314223326895210707906730667585487347995421060925770959801400302102883030802545912447429377794113970223213966571157030675437588655858187564522967504235463044232618223863715812023937183964403905520040597930897972436166409216422335626257904905480846408516734659981888841245180897120289086865065970828485995942283220805145690219850335258355615592536119934872474398457774805040331273044579665838325501433816584981046918019334400713550243181623421651740614749314308175107652263570318354426467343636518188584167819422407547558984440505912881195432709595191356720975671035053455779981402438098651649285940743395344501513984193726907521789327992416084522245891560752158999004566634378492355112255070477998530762067524309458003895494275332946119644072405076760517235948782882090074783281055509547252969443606344261506002806761923639380713606073709191603303119807848397843285414437663359736314176205599987161085573129585076284865158786147656759028922942941629460067992602850488010816370948896695029551901940355096711438175079543230944285437539081444583835902743564345552196086700790265978567769067642309603142623162739797508394901360928528333865130516921656537209504880638539463700042987745554715104357977565224521633323293422576659145316058741616649744252531759877684588934417958466731511247832652331207322338307135278149473879297580312506369902681492790507094020764777538703732582632904787116165103479017842209648610333092936516555660743756753941647768206838180640982272274311561305151801711391064532386670395466389816808233247052867690047482496460940977211832666331109310298662679466336142322476418797751609900619342397076125081497808458776337075089315253424163265835195643033530135197071967456869440724920946006889512243669900464330975989701996282844266820912984169567936360261784417574634412295555069610317788451578381942128314835195066134549164976083884945965921916988249222010200394141709937562872628511669541868017146722842446488460095377623497357381073457514391305596807678317604202491548602075447743327082116394126019373935735543819867995320967016494292853157059961365950069575292464761877205581641922216217633351293228655737112737598566896295074464489417367141727089910133194505876430346103568136121130821817554889590703994959182027393180234833424231643094354029706993967905407876449309548705803229306507102915272669071813117375446949613438580203331724617155982113216294860862801755663161016319060172914058085656369759984907140839857176068852148575730512981126216810376756759935372665246118789086902572957131999252590270983119793250576124815763522319372155169643343449163830551036018247634854315980345308079857868639117809056746704897049434750991616542728239700970898415806967277672368512158436491849527535603921843370272183516701498944182039710221780318602730678611860386033096944357709617501930368736506874932938972069410135173568454587689254980734258993831786124214154120518376227118151778336731990162819083380432211157268649240819345298180635634910060146311940278104212017685153948049454177649442008157422614704469340226407394060306515234785676981566546797405005807285601935671378499565711659469999878935002262421527397643376500374212222628817363448432469637846881620751278163508356792982063137744874348422028229142057749320659074934569994710693210465902440212401309480661611555532366928475754023131942851520195145589599631718807211002158418731629676303109127246585654559242569422600796754681145859703578592483523621299529504422401478667340853143203157660357801951730295608548210829520345933515667190726668224646934629428524573978734875195991529436126447573623921937235838534525832447004661597186156611129637222346094679805757544603906540828097413138287062592374701863171374115274384110901382962558933231292810445572865905324911359060988742935863337640861407542939934939267331846164452491252857545077638626962388345298787804796250029189938420138569127534214611682037910932116095046301535610923759422320705093920776235114887101370316986038897786032385684607426085226555229930965894149106948018313276577257429807005992564275426794019659340951219822183336788324846750806712064999940345682882312686682205516226149733441437899449995877042294808048405161892318075443131969168998023491834729066210655863873746428624406677753908871235318736060361196180595630189802381930595698199663615255037183195747807659740195243311549422904274344299976778971804820975305869862608004695690979775941447494190749226736554954500297377382749314124242961442730444048362936512316995641568425547611131071929072665810574817034066405890507874889571230896465281600349008079440473821109573517089588792048523353062645671220118767840342597735368395950927313197870236063470564116181371536240292056490369607409079377478531094954307075672533400571120130274323874509442479043345223974410358934802075121035221533395727063145147343741464445568859056210526463294630098567720727596118807905229988417414484680261149341301457536678357025083780301391245389961228425417279015489691850915608758374762144741918244909004743413511006006129524169494950107147030905896907544990041139033554817811834566284109528861180622293653935343472812038359659071317558686942988326998780241243606849981249874176574405295753191826987320582626143058585491418763752023740306563784557706642970704953214703565585041742915388832894621701627981978574241473672351998287042516927837726412848053656006440347608640394719859304828160067349630308931182492269483479428332030557091055881941839935985281487899387860825566123893615677589555886627877023069861190878486686958841677741699867260745581693342054425116058205937376870166074819695867402304878777640313818523584411458027472585877318740219449283802883603679970516324259008887031907520607090030286087243440204892820444110475377702991863043201351452034114651886513563881197529704911280701220310172624939531401867591261855694943108116163518170437751106822501675485573666731928808752580061890015628900604079011581070851800776054334467337746734754067220502345968958758708092000423752362265717328507113287815444874913244941272681364168968338113290588118925386300726831185716896576234803189395201947277302659285144749503229453985780707362984453608424607793270119807283713312619963504085038684227325818645750337952715090851993966219052985592939570585889267841617043129762256200414854932238824815646486726524037900627407303213842470092009095374251482847170451358716598942245328046768705918244784779673120795290748855595127833548717122087840051570030669948539850875599279533499535021167328132260770240124809338042951521665235871524951358832312576070704931112670453012333434689256407802883672137267133368111113636204380839437852821718519891156612419016521621420126675509404408101542402793910522862637254186443430622925197791305593832312298021111733731525781118676054585689241291403662067834463837269456543989252087511240809159097631206254864583666356679363607448367661813681625411417510121714541079032843517742428314438453228504748904260760962553091937925755816442431837193799375354977970210367599795094483407142259336838204566598650620172761040887054501032593713475627875942086790771610673061303639675667805388711667155419294357148163243036843466715290846212347548271543045930115172656271625280882382774266213497781423509039919938036142594721193061131221178447386214942127467162305656640878342221903745380111767457666801142181869437648410374425272234446641519180775132820982127370029064814121165382330553542582028028106949416786032512579440592637898578305156041583347212480237167554716379777871969542967962107709625488399117543389065277920017311786582460399939140842818531045959348033315924296532567779492294843532154181710183264349444716334097206061437786703765316032670876177778205605920771469289749504613869588491290037955506181853677588548232015018341382350904693730392104673501346295537211032244484267513602265193324661756086480299279137278112391872638376516609232576142003349898743076952166955079282947060746967553438244994279769454216826028720433624689336319832134320307431650783765713403195545468432939533859526806256872371578870331579042384247851191346206199361485352764938191594521016151010673817583480053748501641965818180354719828506840419505474271125432233118656491653544921254075444166737731007232173676147856071569972457188755162114068033713172527644333269852211380185004153530764253739340927269053060104053054951708040492854943160129571373609290992010117186073289948886117687530477852372975209516694338466024123274741390642315904243374370675194563055533380560129996387801464875909762164914605139140251807036425329791233877529025329048416165959212418352233935184623091577108601608160192852294517400297612357697685368480233613550009166028198657578222521063039163618896065445368688789211248369549239007457609579335753217545782208608507070623026654290046544487396855628847113139316017126593413660359048578401081025461821717707155015232522232646490843533469039238169907633214544756220827331967656088939784705147601871745296333483170916656378180580709236242170622860218078802588606280777393435759042688923522827434302884914409606096347695247859897142375335994715429365880397926460065699619534188028232590156080933709520636499289189149104949217477311973996665859956174325351976581098959778752601738432933469819943634508879028540917859835477202414675800440953536465335098874787550159713136062361436699642834046995372947707843321058397253248578033965951686523605939524416511643513708123604000751397437098567372458946397048584122786930750380885537426300123676723915243331718598959119282730769626066659012863732493815740193816318738779886861778474496517779307499224145214885231856416029292350948573261310094269172795832475526289221545638058977999431993238005194494938048444669133027402828528810389147405777360604956959449849810025559306953538781557782223363970241621885958447681432822628544525143452989686075615075376097509375676291223985193266346760794327726304377901992594343751262919362159817660871558721944621862017804309634579571165029215924009413642289208703986448105455570802932424685058428741848557862875924221605949303725503053264287390580167538739899382674794756811023145128327629964893702960392154616801015613122533241804888696109919772881145939485260268201172784415971846659853905176072941063769824353300916106945072562045888093212490308220240380826755293028689446831262696752655698882357425653331434129312729700811407264142180867046786751821436103278594995145377807735513139093320472122998323383764531301803712337404171757911035770075278820349303895005439530014114979018355358871068778238355639599630222199480019207353458070461768263203843689901884333805239439322288685557298081091537249607477663864042480167725294424476671222746657467455346117284280948428159059193025352372742113731670952906719234672511075318478289521416026139605572863989298278339226261252732146994768138300068646679068045579792228682584489991144768715614977757102604992227066458568259232224079697364348368565853604302185761086223779071045044497597308166639039858411042784653478713895709612620205712928001948173304325078713956610113370308644350624089903305638903800685841380236810278703229745149687542917215392118438995837569068128337171894273391844584511040061708820496270612081783653114632683277612681786543471018933753185792751759266576722468521365199094528770200344637592361608961777250710520530442940810843068417536890809591428816707707037200516585506966820916404472078783511635188672011460059745887256449115047576407841612010780747450498145033633532195135411052954772800376978467221919951513336099523443435593866185089744401965579857484118978681635689144012248019822915454663282610039272136546771353194890598445836654318935933524024610546668864417644726483001191122414422930705864926228547762292802351413024597552556367175839411306797290773260427122260148564015767285428680598021541515839035763027966775809918407682688478378490176026072714832118358128105096315866039791824044159610365171924966914763965470103718883223938658648853160733501562808754979670320419687687151820856484581102996189874173840472680322872483764478505389200773420415370155271285710671934565829468587986927115671640014765857034893069283837419361736718840615990967457934655583499201062163387619827085948116492859095142633397167201367030120780734166129802011921695123047060176541276603364483874296816175177229617364910721553075269592129535266343646306653680710067260099062417497495312499269259921742968018269346799483355392931289868887000681555124971314588059443923511207527791007922964774652701096997205898506146221963785159660230149955672114402153049703337176143932958009605485859503396319621732281228172755635813898647666938731496865657669190843358090835971924462790069782920011324575754520323729991943828022468423233080537167477237947040459009334477793029560597965198661446355387708116915605342671795288587091626504862177683356182820018174557599025420128113759791455616720809103876147071293822954313597514855578958892972371528669365087839440216851652461077938783712554501187218898226658600549541623331903622182115179258419334514938990059306667614187964249494817140063342956070815099453999099304173982979929145904438928782579694153613289899665629316722893942112298962430351014826290862392943223635074788839096370922410122000838927813808874364914196971358317198803368862031224824895093725110818953385599990255762836470212579187046374271056502745901575303981488503167068557224793133868912507915087958510084083509661425052674644494018609852408277914967426483344821147996585585345438804426306450982797034568248235383402661495259056214745476161194160388649591382568434405444806493892940133860599500104252134020678152029060307803365682779131665941995194594820740737475432237493473000043707773133582973182306095987362368251673579645546143002451433875923569887738380934574428200816675097999435265180022538997170168332367696028440345598007158484866711281937712621921562673199061903158219851872154888771642707920676200438253312412186691214250862871586317990296561364003107828276321627027904378124291216011615861001698546789018661234776509479101235893379503764392215418400152568770655736115288835976603227468847863077035778894622275141388356658118924363844733859310426933211652765846138282299541658419898031392010110890275016039866953062916266964704904358817307618633140905404778192410968641917401967251249880231389591557597613906380296858658994133008787267515005987738015516844416062092964586737524834472495711624619389283271462797649842192633225658414318032277011461058896407235626145462442106122873544293606127341970205369768826110218827964955692336839662195403484565467755434092165908714037890260462396816091612918924154015948760168995834074835480934535812576098717910823179939985380295151459433132973143289964653429915766556661844063616634528551281181408331924518518163790889416382958933822099381462195775108204608847684661339069132286810012971274216770969985463119592800598770235671792074782457211386682126038226668914790357930510347350407800478816806210384522605696413587632865113826709773413912383629950800598210722487854007278537685762784857382673034019027578494715987428545146018670010191452338201556133661573456236890119338993742707995087866700231559864738671987874827664361499349080771156831115226061421085999987515206529020941796771781386680690644785792736181892774153296171222081661253300660026323654557205856713327100459156647084592262062994040159031389426670364957169037277825102544547166710927157621684671416440230658925871778572505567361322248039418388716046902095883025883632058861244800545166617895223246637089132731335088321060880691609551345904027894773950090015406568882493370919764295022561966415065353545770920833037456348818495678937691796754825458333758656973897286714233807624926506312894864687049563753210933616753654529278826239483796654749234909785596733596325121686905340542193097084970605270336055198194188533240177551857234766567322817180867163090931498005748764452897613099754076506907057710900229806036171832774030143085289917014414068044730971085176138310084514292093620748874745162713599757244776107561209159827890645134439009538920017331801677450831180260847206081983205978673083891082690407374556706745183754278187463349027264957720995639808914573490098126229790162277276035072878725833595544742029140949998720380271374582698290099466545257021718760603187447526222296868930330450548335062644809538324838737120410770742096109365950690313139849542605171048113883287694324247857157006991238942361043560908766449250487486181837615518873703155267749188735573307622782838684788786392713064912184015109697549628531770919462309183535652755316596365764750582717062045054218622087693440260771027692142046684984802098154199155808644438159079541806280615914308847073876068813272344834587322324114378992020298395990102945428644392538533743540399293157067618582836773211919831795114812328027190233234574811137956293638655305543354863557627274631887974372201501344415928105019435584068410412782144418304531210626867976894765973275112651433947546246900452775525104318086519268198461837299580113272460655974795532189539109612506684770883832511616415776562823501236850389437954209724771385548362104351097792081962259827357901228483614768296609823556012369689217242081805460863988940984764049522764487321093937913073312971536248190700657935428055477326996814379105482164922432926315271399605753893437446312800986532866226228450932252296057872176624831974164324908732300497725129375723448309421276390229959922395024415768264738392427086876448869485288738996888375055359833904035016894536221551003146427475389320887870764891239539818134256091505831278856430668063017812545598560257359064389404741661928338232272814850419279026738057578648119403866502889173973849453269307663290776072841394711504030439665548513574467613897011746963644601819543632839012205291271542546978970579775665434766523311112241121406309695995239417640211100737383449533670068455510890303001063567575456427116976361624560837590779875095949689968032627684577318514200325766113920818840840681000899551918464009104759416511662937263146591138106689825331045829692646725952187902684697250368695619583922208528069666070064407832928834567948951937118381676208538369639365036445814242512740091354597232454613139343131395551489432260914528732348536570026465562766122856308169525715758368838147141866435851041710976435161749873054092531143206816779759639370349897038872932458485523150362243095060437225362960249655075860481791972973375553340039563667173424612375529340119177166127790689230487185652118879179373979884526407361715200854186917583368771905224054016961843554771120014975478154043220675120914724173520193990712382134596531298279071716762364357001466033587586974730221652569793465900645260291318912607107382410348890970149804664764857414221313860369543433046961229572490517623373054745024964267918105321318156270601379404270822018714177133718361639424346523087116906694860129713647947050605124756325683263969501478954471434267561799050913498929838470773925436618451605093426494378276765108556062460162110352256085841713806019017094217318746654683124262241167963040973805336693503281341658999805449242903220279264747053935538445299114287433544811514860070517835859131944781632134652807928784321048418360933760521119810728754114404413929470363902003546502343787641194661263749978309195207885358598250830304804256365667771859907241405881170669249285326378233395746365936456934118602395091876333832065888795120374902738386147343779953487215656881207110111318772825088039605814468573450622344252299123783907993971404654923273383339337072091437251146684453044196119363723519040674800417638302511219192953156093238025566711756665740808307246190573018078867661018102155115040968201367290682558126794742228925565761446241009237235387433831330562676317894482822857119692903525701794298572054030466059892691368442522572131684882344669300237521690377075382954586360788404957131763340734477436541453037525564410974398671938925150773374068801552864045284299634477520393235758873564239652929667337792998611546351957823556492141760071845568498082181961952845006212288569710461907358413943350164728932353199606813713025303408657069628757593056138974029601998462304362829104464990906615043123631536211937732667766776512901021572967082904358609764645043482585857087412962397222301669289013904710755418268143829833042211064864985366249436101769245837454079139310302743741847433976201521974382913677090319521830685777603542423307422521361921303796110502052064835302331258847311950728666679069221920882934797044707687954782923009116248029532763231653298259520488972114944843259946580479340039386284260478550893741050934638380430481482192698950330829120357046263955151598325973640140376787323094112793485483874627977556673932835700860087726009317824165983864490744494775457203879296190405001519834736379799312827606918759851136446801424155401933890126759017369328326968314588627907641797488725684293462943197521320554752180262959639035173734835745496055339473228375574688686602961467512788968112733398584375052315595590060684457846794958887726530740444167593663395262060574173009814574829018603722633371458967005110538269919098831761404596402884114272710025220146846784071219940831240328642550276293455037656323039371233118573167365030992050130369687764053858842830816490585958906416481707747924487923112914873478247897804473075672435826938674819157222674131942810725703047287277656898396003998609352175194467963443361078421582923298017601511433981868739078913797611930452021061823617459079273378991572067390894696376383435874235438707067186053009873611557297596121378110531274273250232125664230779147683782986719506359604982698651629477665640495048522239864932353745149082635638559696913449428836939209634230331647144501387239961156597127750289716988156465853094483688870131408094908556017660292013037824233553324260333303344148005686154069098279830467618215173799287262656614911848734492650114882854698955516294867203619856263290876149476937555370363565384970629964605666697740759853536380714656703069703161996499723888289127966382222628104586097481164099920438370833920251265022165770268085300474388401496243799551220990292729406069990742103942779271700290832668425495294392091129373143911243425040491678864491215824009609732449383604599735733847431107341854887638583806481390471749344706967870944433694180926962610654700101653945370172209578367894956065786858419724733920654220003366718975379095001471232127011843748598911216573671468755910028258618023004332130096379370107449521226333715578823548022708091481521504745809690510776457380671576474757381559831882056849545527492070737235343906717629133134912949610008789073107894858338833999078883398457457725531387151955014807249167658474632107651963133031116204017314660239856210862694849509990676823402991013143148952777098291567306675544250153897966184553978023321685751528241536232867249390665522985672103832203053873634277664634304793718430746882622232891817400088328564322911289261940467533121894192080654039491265257468336541449162133179644914711375726178577803568958702049923848150212257166001581536952256674838708754354557309011704563480734904948527827805735793897257077741508798136496930214762428076152299156599339213958204994949727146955469338952205312323150214246392538886134597563339017829082518562333536384936967062607175255093654624286284692811368055946865042074839179179628268357707909309129404222638407144083020030511830893853750324187096593222950948687557860742396948116146509326505608032051390377406385345400830371079705226954722664588569220783312884270592992417190200542166996812159151532281469694256211708172317511295347045058688775046937201556630876767442996573883450773982737596190004096208725821433423280209050108082436417460167827143888729981196769900119122794156455000566196010017134863930031541359770132218267267290945451353154876679727876302118503217340850158141331301770888008779381971697575666561559513576477492828485911702242534927076977262941482864399631507357012869490194516143499505965806136724205952958213592445761257909079993000244182149750133786246479564123084153549593138762377069260723116549511309375060938208384912604982994651534985941663371234891555905801819588279584889757563812022422242923684618422560662734432761485846791108883063495337950871429755892894280235023817167591367131536108267057223687254866307394733861827121738366688491822287151380118615464157388871109069752186799199242598423882623708491244169590085299133739700290683111433975471259240033933176520084466019819948324892731490551107841953494547572648578633311470233741461606710386665309990590929871124823686791885335487791004362463799397292206984826937657701797452036879906201217565998824694652342583955595510888410518077728349903311364460236711730874581697664347636290845458607707514347855571223695330996200971528564989705640913017610881232350261154663963244501410968335474335626290390862427584133645545758545862832943832643195237052859539822755451814402892346725293515623270236357244398692303227481663396172418072385596394200360036044407709501747512047490883386626805660446102611230591285778179226174110960882715623117755005447871188756242528773710991159274558668571441006538057136084452097375374265194749115599657177257975566285095654509218907142904294149062233160371660697164739699579401460451009035363710351532566883204702159114510832410424509593381398275979637922026177169435947359344107142372679029207837227332599518055257155591214469861173703610317723181635781942227788884401157184994847476637565392600679573237116795417766469320173239307320696395838475055107172905877723939505783644883653228657203941504760556935989866787348569149400513003935143907035629630649454731816963210340965420106559123262988102104660703369362122047916836639960197990406780053910710295397158769301537455587829089596946709415967200804313272797541508009529589975467851473804827422695083482399692117085021399973365727075744812112244384668407934006813016338733752514655352067221680226867402875327085899346648204015951833432100034080124596872273597073506890527318448804542162349920931350459145032553803820868292987163034291028097933444839978989175471739421625232848151298011150902468788834511124002191737045424361288461065165455416356413314465731114187157135991574692534060641859492797033212004164167505954381274145422399700024877294430402205569933147626582961499861563661755948024090330730310744756043771939383128451662095553000517829039495093992804386785004706593417805584119246257414601427411177521510498315750959403262676301734178407633835756506394160948762272114466599309255642279150171165553162276294433756958541184639807503211682034765497956140461019402165449347866164769798472950917606858697258057931553382723604760860512947957512923583430687412205849658576034035714050547896715826873335734207441360635884484075498082640499006034207306325104244215384432012752880374877295884036488932027648209120702379505999717745478368549210856008434937748325996193812238483977151861965660093888525557112060299843770074953608686516820022668485398628160222515596513747235372697832703829771547670000973231652545960722398293679237302055150905036061603749738062587305752231232214891485193816474744966925271063249248800601429146388104233540801586296441049806297713458998937288756596687430356407889277144532315728045650262929947747206075674173272199629722427471084725601155100436873031810186852520637863572211790583396713991977803765332270597567615661988144058782120225859872413342971363175960628650491376811549234328622232123410728921328148932173357678565142019676615298459616218557312983004518453049401446694225613627005477271870810184797171679849245898382324847643618504404374761156941174575863825420324951056019572346374296646276662621404192110436476594160475669084156919468519264839730863235186840824028569716219349276563521969062179744934436682511450743472422071262920034749436300084708300662913664627421295098013594711520140865738529554582099395880127924436392730809135960920988688669430145706724046388195097313750248830266575352837510177639022570602555154756291271251841038851568731346586348519029578689958121405868155194574928798447516170051480048851749301820785954821828300211485420964141493883664802816591130925801840479456751745348890110664695012549359242463839345597019987089833868606598351333955663449229553384769050312373580152199028839360497154335927161659756680228916814151785920215873713460511949550829500057170938501336365166838085133302554209580616805389399931729632132753476844315089327116664269264824852346865609200390925691189764403141650894789030978961073032184783355916129784030139203765856355517950383452541542403032101766546934636082832229830957714597542529882615226485624288496495700974013481100481226306070927229097884304415760661601825576862199092245974520422624219160468980953169830133479195402322642577351177539446734412348338862938671927682638563698332687181042525141688843396077731370243145879257499423795085044421541231197212629278982330855494164469918690304820322599961615036502139127398944872230827615476997497760155284922008965560123380281227996887972191396219016044511910815744938444315339361929974996847591727950516090565494018754940960040156563785102830034307818083112950129947606180701449060166696089128005759615736718541857019999625896712909829325220721439399929293662983993684780339918652421724662426011607450760161391150358050595819746155983669021083124347415576588221747629116133325943505672651483494422262072463057692532630186763985349112230580544951576089264898735562141295126604453481251739926243283162744678746576154529925166412845081539331694099812111313814826385844901435771832697053604859550228497336719899585336108489414197414110781272820363403528717225392412252494836996480972286393626694924916656854019299349082948415924816152809648857945460943175795478990824336664304521109057864662696025148936536345615935631897715372504110625058589659730567671759548332423117777252665112523231229624999386990979369552703766257306871820202433261168197595039876267778930829343476663660890582227358009435539067833398515517504410394670951585194097675813984937537623572036557989015891958164661488845329084382583050566565021804396722492842276622977413822481171682421608895117803204885688821929717120174262571605195080240945091944902904899327014986067437924485453900591344275412961534389215293186207651114743591031494151756530174509505451130914222890920620242934141777571444157764328562213096701976946967981579972662416528367412556151604835788402868352404465286533196703728215790445652556460706411355293619905673170456982370098268300497444298022521748889328525996589767340871116915303585552545611031972094377212223035827371902486142882754274641247485949900850087425384794956522445675745539300991081393113955601861233289911186295342869722073518277767228905252213416751758128258252622759255359803358947721727996351923969742781265751415103748900040720666179660756506764465430901495984479622869515868488242564824672975433377972150931270506927402308780846151692647279047848820272783650916765390732167800207445624445360168524064799911858711770791418436344104289120221675686940512434325134878935269454593880420408921696724934977565629741858919895027712206660009543461179078703348276287837247579924805183079891771503530660548053700038969141690188919490365094413739651453533545748652964116648998097345600100723791317257684851407270460992662300371756922110053139619955698093412388027540648491151846233852637134601121470227461927000045435116646311861458312981399227781217088091279222908916791587153497762134250656668866404807625797769086244042187924959480282287252801752429622690288487635440750395078637301165539314600834489104328997220682173326519358847932546766328185957905670183280508008963553137144615958416231348581008376179310507110563247509504643316860306163133809314453489562362554238729280000990665262791827123607775609931869656367461804721975479947870138143180294220058490745854508898149587533634661235466351284228017780901955167915501066884413221731529930634344791801583970647176868179463050763063094332738007666874679286303667899706862036713098560037115770530764299919892594255710435781471648998575019366457751680681234039564407180115815425131986296116367726876034072806230983226375595157965033145091563180170731262874829670049577399182506890501432215206716675594491602191556299380751214670543431602443579237615483349767196688080163675359965871324693669554712780094009083492274671639329485755224138885662333936025669016622276997808409588520838790344993125332354080337342814687991071787987639194444142108376596112561056070094635146100581063644180449965574164757274000342492095717976302436545723361126806240923623611872865290062080402320132998757587504393080823573320220661161416337356603847080747189648278286827891449106599914286704957864659244222822939312867362491401849732755435814745320209884521754373108463997038364308669138166365798368877496670870347703889721157975469665001560910216881768665838581199162624134741440398508503225316546070796061008130155978952662395980631745657967350252275858050334651222856256494641836863313917840546753506672943457239649688456216782220319427368561361876466049640058509002163238331896857923936627548743341431877433033515021120663189711115927667592012340660714486576101842444110774347161039993480549065843708649781396176050009638967152238857725028126997142682536401080558552760070274597559200723043412601382901703091981899662427392694343494942464004929443668466677095013325338102355974370060624334206964841010891465874768380832281742095772965386864194022959077780182615452965969843850468313224054532127419926860863284142564095018196520581117579861490817982613577388916195060899394402026942135159089293673728512326007650875713031706399163653668674912044496153583961410050398457435945710980193901724853649246294990385512234430352584200400561359011074408646219311879221879621955336194151843816121714083003005253534076378490241051963747007129897003552472002343428017640370729513355994081716779851633109140959173988430517479977909674007294254610904166086155204745731065144440961095685555498141319267304456100857256799678288133862180497157430686435985916458232002336225054304482611826623949285943086802399192264413562081084251368769464305005951555645402774867809930268274814416134072934402498012342443434689677908873049890542560412140687581201678762447007258240454766092102786388172059275602378745863954189926505764950092850839354884267903569253929233991487069751880611385154457766359994880636484057326550906285905348516093800423593996575832831009082077131198306520021755891771674472882371124191986225594082246623273578313689407298263095107903574739663333582417309372552634957161878603700120385940583890258904352213511289774669571436044062399424442897778445973761935655695156798926482003339975649470981729345936057300937352743232248558550749933825400336025967073678217877521377213849357501715385619491332211327709582458111234378742429162375146325365012281019704408512844655187029129040630184172245523859695212384275074963577858146449570478378513175776914185371658552185331688443391948432192887843346360922642060014323554148175955972028477585661621940150987489142110379052481032035163961533894243239907002250474112213235581342749744126941824915865600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
57000! 721660348307876522903389181486851752724427196791175301264180864319893308297479634477998921608398249809337018420971779108049104296541201064400340091409995024785689114578767618752312784098524962404680289637985018349379986433131320757031146935084409119366372721815759126611943511564398377212783474069151136379611106268905725288156893937947372634008979475297949017367558558624940321451555749015534522756336404990629155757077395937316115500526024354376682045003666028918878630696783794174377483242369491332393109545007191418713703103277376411725621970413430032541545698446464409853215269905286731446518415208314230946967182042102382599167923870220637770636337443739251072078296971315931771792968672707160694806980459556147331029211936647616244256607946580182614923921165910530685292326197102668098696847266400949139286628143156728904547362655213385939215693648532097457475394951746258882087964853046178708470387602966931472942691572045245098389178647406273738020143685303489953623141412189737007570122893654358587214392945815282606876108866405348607022097383461367977514826214095089358580206081397014006003848592586045349200423840233623942271710817729430920714290659186159675599454274426191243571516233842474560152011785677514220085525459898199629971552649421470877205535124802423260100779918656834214471465641499124321095341232024898421724699589032765369068006773305062091622903005176786961966826446876950416702166722230580223652585547863627094476784760894584207358362537806875815597979979845735467132037130219584789833901082440731098985928850095302358531465251966836874230341697613419718668898881009926645956739758504157340455852157849062959679369265985905047832067880726922029757018950814497103121529077705760647999853145143804756915834874641861093061916732061625861317157342398902511489428674308198752362842202259706858492330173916971733797393173834967062867086807470432636056961570084822888808334044912457747284130810997540827828024448508157754230415066867718669878339406422688636713574565935902895595549091305549753101184482586685497445817358985497245257286924812632257496567922826506386506749431599964806401942564378455857440454908359727560155660900265613701381514066587765114412589070141295695542184224525259284994051613646121471529413599357195557377721913460545748292632515791960165252190215807969088578249160473828243516154624712309052580609201906062928723262091112436856086366864443111820410607442171687045852931833265225517913380331559923551123723503611576238647766366379568210103080622954238979019085844378321668321169290696305760568728506928512985132523246425676988478265383675844945229174251487205333124872389038398604196704469212749196197603178444414669422255476066193085646436667355118206263693373767628125542914594228086140227957146566796541766720654781426830534964775445288133061430972738923924024666192487770012979236984053899545634831171344318693143911403600352360749437926934647814085833993225488251040225499305486943518405401575466432500501168027417799407402542725750460236433834610415503979956032057848735713695588518367736360122111242252091500935585341519814526007578683825472613682478775833907217271439041787474779173926700807571966152097172696461256818032600438774896543026338965698962101166332543373732268754357088320466675912780686802494153769841572247271272707880229302155890859147806391276624829321632705542557174209168099654914145742202865428261230697303417042430198684543884933218208567621965545029417666440093899938576913780751772638261543767379468088670065238167649051311957600062501450678674129291566784186708295799358412890442907746518254010185820712141473436618415804376862330081934573270533692086962970740766285212388149862194832935044520958963720020795317719080348159784864545204529818667294199135774474873307001217048663456884889721436424577375365687063723487222825878608193764788780726357987479922828051229757117347552483064924809529486318692223471868595661703547204674704203998462107789651073662660915569504770877789769990622389666637773991917605699253503149148955349653672939031426845289878065429412847516254951848362413841400855570413636626057433631609914762632787308491728681779108078546895308492503544012649592720292317875839984211017229615335931689471532639636283941598700409912493906810581044357151444480775968567496120301311345775963521352274970076243185467499839534195932289186636260091716357064109638752081760944570906585441880879732807347645257910275255526794638667574240223271722136855623051137683977960080965268954752256236829066533033412965791298630021092261613928892967226065849161822967260649627862064365764079615696940906682351205473686117975761845000963727945943343894530718960531732643444045983528785953542884230869952655124519359792752984514587362951401927890418743504454024040369485686646070353727296179120297884199756936648050756217429959056258800575276273961020332104848811656555930343022707286122911424379174144194283891588420386321579734627731901886307105377461831972395930010137419035052328768478196631398430998178024632855090873787406720452802725810206422841338443056291896189129662776031534122980250693578599136815017035653757189347014149956967813941011835686374210847216979119805826683274808284432222014566678717476097756658749969348117307848350773955680637790975257018033739267262523710043053577807374380342688397938004114895579887670542009085876693998337026202925298057149886777089156624718095557687733959957659389503884224361620099188889423381911567388998526599289381332747086511143964414531298683811020170024441653732816413135902425552407412836549360524656977244132392157003227573064043479960985113975166931767800971298169745327996981107650875069002622665299787512712120629749000794858610325377932275047285806134008373802132276208832831075586988447044032141637417013927299919543489493892932383080357319836008572104829640713601553696239002980397835308278713626825079533544208787757138555146062040613557642055725116774616261928868482532364953465963078030967461719223287391055008302097395215175474321747552314188576863305799554293593363183457326328141983784179406924221869255340673396688778340384272189654079513040276380385612531671428736135039144639536906680812822491370032319188725546476765969510023919503022614569764025703163551472857266819576922612659227180744720936041922738680334179056250827448190293101030160987087803838152712267519518950475278926148903027485468918314221960972675024061790214607019431497725668192703005042038475183797322814757534882507757505277044558106177317859291994651279053899058621727587798933648457950220141024140357625706424583774437042688282008255687069772984775221168260879182893178112371851541915269604709030885061695918470267770296068974580349791956241033139410489513393665029629166764778610677395279539950828331960276815298202436210913461548550414240153073730829844955896853419933216212835704304783241389638721409322784868328875856920939772591464955896083011461643748692629316175986172838620241372266292280539265365781329397558762851577926089229778229317803067817301457005299494627158726143511983234610527550817424293081410748668622806576075885613917517292190750930826062444757807056922156962928608042008808242563189583881676609462824571736476393062744032004278046127452259825941018677187217313448132160796978977153087794967160789714418365425414590926931596000151704480831628402558405517383393893817721455686327997500685337674130044357967501445487882628343239776677376756536416751709579959525772723250429346617298849950430396034923856555562998019293049596594925354451731900844655146681706040579684423778146343983928478095693264823217404438116234077727687786699181156344043190752913211393698382843719356686295745985157800679402007271365903488990250050090212592897151128042135438732105620141407648393128381990102058464659653287679090399711184530696411098535724536723409668876751060962927875466387869286144419596441028513861139076542535736528364935018792691211280444988211711804370329155504873061259316971534562549416424716366402616243888501021957022994036549260871101163651842217915585329617352682719774381381474023523761543255854834727617385360270230535648289584970772519467907501115998029584084331752235399057428218051762705090474551875075983007437640612284601642615704790956241168900857800029480059940291273822761416606129375791110912985119123792906419340045445510837401908551201150103323056195705221765843371819005179326697415228285142946887115326667778531517066088570410264084349834387481866005404333196223820614678955891698348079303836175720553000713153346358840046814884371249567063336154712053671435131101097755786604078852541295511036620264252892258032342516444325255266786846916076778200399033660611499489774238259974419079153168859384152151033660883291478010444179270738003063988073131812751898884394851440283558508214286004651877395671163113526141691603892379903517713902039846031725052240189500170989981408766848230494521851976502049254885762374924509207298486418370650375535967525216152999981636938155882887770873764759929784697853991354888864897257219361803789141341640915858134413605067875658131872549564532974427796006557938738459196637076736211362267195465139137285871193428695958370802061992044034135538527204796758668254434230907133968575574191440266324854732639784825435610175178357567834015628182371596466719145489614599434002142892485969844797367543463123766019942695730839080574392721766097974401945575575410358722527719449032091789216536184170714602735224308785900989251017013499232024688118909000982507980518761958743805699663990466012349369792399264310062949215906178085697916855574466896761452621286843078175179791353275768858771194315002842649783617892055599759836932305442451217496255664305817349983868826722924036299888951389274587124589039518061302309362323272123924522313571309762812195895115118407483708120503262929519326004356497068033069071431613002796644397772899108431181221251527005202874688279797784868100872552105977231091048649090530151550682702410670258118150792320196527742230037641125675516662308244605976934426187969015314339053543677390807729732547049236821394947630879868836554921962215327504348017444320270134058916207377907468412481078576617487093925799454232953312320012223098675966983929334478924761278270222092284665832153728218285223602649208123465690452152396040824393224222148033863285933827643488973970235456468712176586570657028857000141543222807790362510046703864693150204220597598657349616447630743244972307419583615792003460958254588753421179811916970465116593694906799838046541819544001516566824633948867626308040680526378415261175770198308664013152690187247379749342490305136887041766706419194654653943169454509317270942956868128728879085287647672805017251109465288861404604004026976418620542278990937178486136494550561776953848050121465655463557581211167522719852651183257509118540342632754683972724169959076710629840502273459618046432647922129375249647131851308592478026301480397897658737033664008779524219240424272527055708389515954616497634711457167865751025440749445501400431822857084325278241004577787308904022780921314789789363543339093215250110943346485228269344290614363753824701719457697395945958165549333347380286213091630173535567877592411887944872558963956006747741729829183026882469166838160129208990405022321901924149268533933828415123391419679996282821766814169711151111044021112152523179432752117585201059960380185146073218865820623850282411846413819138395005009933367326667040410777311253738359780211231663857469314837028670828690474457463556938273151229978019248486031155544856199213189183314945104531127386721588750053336427836706520817657221621174619450245780803149045981738014621006727483548705524068557694516911697787968081708342833154656480156732288958039257530428720115631758085728744269851035443199488320127218980781310875488088125802847283681193674236283155735035046910864301968190716585227272078941244804317970728487174113895099202335550920766348125860750095864244837376059931651270287048809506402219854580355047979557598587832796475172327662253812978629272609532936224497521463471814350672423636510949719004135241247464721453930229597822148502369762091115253719120721887284207865225377562658627937179584186202576959544157879838924227979466194330592932269994052024778704094164754469455487545605139065160260391579715350759689896871013871322721403718281228266547623273131243124345215644569437511264578577118238502359200103492894435294178408998816539124714236392383450236301663157823731505736336281612831803770291895721475564251759315684855470306882105058741959010013755482662530976062045312554383977355134578666841336201049688569525065973890492118989476271467751620615373635448188203918448502948616190067724644808173701154904840345667775122400254103574591903530209634519053814085681419025468417119288971111205821601047468755715823657309621427387269746372038608892225398761810583521389591060710606967438399375418176761660641639619774012019260082885943767575923380290032862132259131359147503634868397289008858499782827139355194935740732863675802660158269872921096382302518950127784963749722500853491304782289745811818645391481006080064461321031476920256085501968693758271812225776702368476696682443241340042412950243753816671100574022016881226249496431293299132699880581375888367298061055583354051372539466130771740690666604342545686441190787490471400941702081296670265381026054265426556276576830401108290007274817541620214005159262795899708750871412696712897416932438709867257764066728622167203590720434519735283832331006560054705280634560604053649460952096472915609674421766811094996070998928592702441723585412911807862172409369265163923038825299941472325763439602606715085984607705554153155202418766831974117228496511871132416322855681242670633125289180545239089306325723809525964884332158728532721758729817052638582525665768051645458781569988635546640451360083557378910766303359999281226470800927184213850306853246949718805023580433671449776200963526523832322096338702734348879383286837453862463312746186002468744590915373484657180329790641884172958252101673972740318111003093960239264878981775548611032012685649437860048008933230617454093143743061827655732229309693995995738765634649892562058358192646684929898022455368576894979926838498668716881684238740614421785459110276652475705333940039779650864270550153949869679016539813861519681506181583924265024987120138676693499335899056859530329360379504747690213005146702430468561375485368258707149775320196809762818625530555643452819706565061394365931183798209291732038977726093048469755026339383631883825783373677909740356414216739005052509221221948503758092798948270167729326949250241900127768435739899746000143757808106375436357432612817939410381591233711619772145261864618014058654535261128169754654825506165928259795942699954040756647004002210400103187072296003387354171966905546991851762189884206355700464540396316129752235777666307508104822771282601535250348830185431301967022755267642757314850366307377890384417582679753137215285644266271885374001151701871707129568199145836717123465145670945393040346202851922843988061864293785469482300585625250922418133979154686434100063259151544953022204526259766630745157419733847189322933197061937840715839527645603394369065848710858437552366868676372803314893744740942209236803791110285892562015145717800338646068241638729844541545912438882250938778623800970722317975131146209644942292333057397522109756905515460848542403620737518570729516886644800404217580283450885914644744502048038763991839803403609663760286752201686804635819405364457669483464634700330370664532909913161144239828996232718061863435495846817274167604184789866413243644120494674746714364336874365689066558461679982840199926693860242323604412502537048379142419043113954456807103616267397570790247767268362512520396016361172875900142741246541807113128318471701106571479293961255291068963158053057945113230947290949360928138660578447287426114543579614380513317571665515308735517366742657363350068012767050564031798593170061258450359156438216972642796978803592080267276616068003654831632498783538573784250427727535007793206118474018826818810097865939168388809429528711744641910314417732774864307152047214152724218464990362695760449876881379129382368893309318415882045264244261102100918574087490683845238082630704389570834335489832571175397720907853793738734952785680464649441339635302429530237701036643602945543373859295709278329980750561094726292473227549826529897862470015405273855576130535921122685419616533572897796819271425264274512858870318307806418979583933055040847892829792225635790822310418806103926315967949931351796001754510179481270964119427500315307644896657903935273560977010803871694025394129445187501723462356705358787805233850992127696543839914541725638934072463460060788181997389922016541595856768560220627046016416334335827443833276885886145497691874083048886285444699631109935513584380732926062739662195800983851020802983454978769823431169801493869451026065578663118437962103461899463417093025587071030915084094169709018025477170889394480415467285555323402717151785470947603710683471936418806900653748796181203733405016680728526648211882453326189992951958931491827642749883713990641392565697133643150919716727791484258532057973414961805840684875180259130429274552797818480969441270227847052716894552429389800222580013513701533228034151092218041929940566664663194970053016516650757286439871043577676003723609031816653102343375235441273037280837729491894230486304528793054349935662535334402419145333619347547543444632609420528849972620304090769123310818699248982622619286881144705433886093761838732800409987184507628388406206279154695139161055627325404746666903599096167292339554760554447038092889454094951402693922464858376273265935508726293743987748692729431722073525631290046981693954866462374550141153367182616212440425292327105833589242030543888377728401255781420263056420268933388780464886695564159314863972641631838774358485729546617671854112525587172338404847876192529384343710581042664212330979004299681516015567153706545942325289136439395098247623483347912356516724051688472585794616788073825145763547585149229177873263303745274007511365008233555021749210351131110278475494497923141236698280257375031438867710340887223446777139894740305171500261722728384740938778917342966874540954997920576178370826901563696754307785599128440048804486171442575529570851654967274567430197577251009351087311373002621194807893413303198630862948510124644541377532925962380013685635013792333124883107435821774952217084989379388629194590973057826337364412550288986047198983294901448943675125354796376312383000711086161698873112024293148486374303952471798637342603372216240151109434344154847274238006409094649907520474871935788116873465665333174945586923346055063827724144454170314354464987881079951654423795483924623258491880229539524248030374212029500024162274811164175479438880022432000390683970364646832570507919551885386712503602290412733998019846746921411977788346798339975492459222386370137928625878688713041732891675840303909723417159916866643334566744073603284637545115403407781680976523263803933939405045595366163924209230006668807353642038811514454940951920999376743126124506233532351735782598171886012697863965733989801237783269168049468438845991920535078527063551003410626465001292615519613758440459363026878232274454619230109797071875057166474593287103417975573911936877394952782582709558642881400080493626039970120521678982579380810089582838762359418440697928255522239428176568690691433520481264614698651753159940425624570088840721067075173549970254759100944627067248089162941394023450142476824139869400602660790203192819005948287056791873913888568394401019316309892661550315475462784929157344030903313363103288326817243825469592315712559593215608886709848547041863974046010160666543086963109184432616999925913522410134025854030829251543346643273508190491434452363149408062479678597006367027572668544032552936915679924748995818941859084199603878267647814889476935947551278617653761344449483246680941169084641935062327841060745699425011923317910364183084346876442130658107156338137383045298890470328565237873284935134903327339364698373187314211874998424257830151043842999800762062432065394757861903855258476137671664668283882244217861365199528029341096426347465215085245115870726952409879759633285772306132036131158676065427451465643524432402061331868067328048877743744817192761863246478581089221838616027411204844208422628624446196602932578205477805675238220673804101770664707205502817369434150549622192079453515889213086695739107325995358723969759458311574812747618073480757038172351643826937945507514770847502576801054712815628982079421440211969730561149152404306737825894315002093080699557030794330449705459637783619095243610547343084971027746795156130060467671026025725557441562225502471356271619779827888257818014457511320877096912797632665159492524927352406954433085289746456000918006170885695859790510344624825345826846436522636252171225472983577246486459947181700535280799426349087177380372633477682311646157861840014965454256713314210488639491791264352629781583468943516510750877210732153361042556456377256026456961717973285300539621383079475275430881516696602346607301465623413224884423370109757050330180020842652010283155438613692826455776447321000894694291030132293038901478236892335956792150771939324130251200876870745415481359699999016432642134499698193697153609732747919381081253394107533731468362147631871583986677401233943091769348506093510663038253967794989336249396824716963864409489981824088378992778094494904161553097613413319163870895294811032533747479425242669226641619759272647940197986513800985299149080078499805032234986980492374793092732160059297553174413057069437285708629557222786969800171242350793394584465662891263770507755525567025174530637591185837673140141357727843127590508937242041928538741181426712489941130982445380120020381050096404573803996034588016815128229313154883577455880387230934413210850585138132559528739033629678252454867066781583261406175204449648491697676966051221462769953871085545592280128431715473063923974286397083105052404329818851605213173307149773158310189389628400676728216228958923299843803967571727571212393950519755672824031912891507304888492765387305472157182293647763428392216776901434095619441262722290089397676873804834714949916473418682254543593720038088427025723470618572681910106931038436566977940361730558664071630449430537770574691585158719374965956821545041957940796670295717067324784717334947478397938269924122765348153053168193732871315128465326813607487983276020379738364351960787420999336478687713390578131859961360326309708352736319967311330114855459397277352240086676212702495162537127895766774617682553720627653495006614900313766032323278751245125166769950506826683161501830914174027629805437600554137674465432071978346190949666556821802840638288275974298309811639318142282430744701307480817938163096822271465323464499572527505509990071011868101449557953698447028261299980532744815408634437081835893600288386379824314150019841573452530970440671828910727276948204400967406056327583421731159329039601369092596195929232874650624590464895473651689199278403391086254127356007283673772192134743881082376689378189532219427682203818026048933425740124301091702048855505366911021676349873778994492489267212025640865808058155835176276045614122505034513855547259777480780289783681487518057416065787291496607461471844053924599841078383081694725093405619906933383964281530992748476153506115186361177996031717453611032492192184223835343116269697421804649341741519568407930381295609112728512863686442985903412819286599801588399296694019629533307680116726345213438202696069701217603502234564787499692462576544850409326939748091351149234381881212932697959515200131647551313742926013698409994408673633392521007109555988799844320555981470031666379251716618476516871475500465815984545433703645431581967368856003631673630771060726099340750515506761388929611484913062805503818745313061260829519109737250044120596219913031778970416879991499737478161888477827009667223616278695808752216203264285792913436153097129342596890762727214728311446567771571968817351810228746467308701943935343512294252053096670624359032932123814778937719680470970902642855969420568813792723396458461473738322902084055844534654096768431413984743386619675123117083093251959517283845601001464054101063927162689159518393508627660752788059841687893748576074697861096579191012800837292703552795736358942929743684038180545776571532884291656687144615402972143011453314517906218407292583012094747460032900968457179127499389697734475921468306292305862186816349063158070159405432421902905053224024598305244218301625543284835820352073617184837695777838464802043894537074084486450329896252138861074777503002588845246722716814127512805192710466903965772503103347472492343160375993480059989080950267431654823251707224109826469381599706822995145992735358871940438397964510677424537093289307062937554175114402459564132692091683604181544102741442039514348091248768682971992041179885923112650446704469093462635468515007065228843857368338320290028876099609744944454557236261890221248159228946526978140457458727474709663738381082211443837309707445356755915446390723424239040622130639271337114380126310298032080632883742264788617963292309010811872676861127263800714952666336627603236515495849011624385396428861090329579804497272976211540967726393727985414123730484030964713656798983032254160874729743361637876784779591325156716379725599945888064477776723464107009665683098882391501340959320747435591496424362079824378194843413381254994275245391024966307370870123929945299956507435333360495725078989890668021881062749574234096646130512908464168960471105412935179575140254661338278617686104708922741803547851915084829703083799016754255495266432898928841480030974090192843713690856986525929794562910084774344318591348161502076214337825135110440013589487568254945978417055279221664992345619038152674297036190558572624937497422289854767666193537443083278953884269668823717416091435413889707849539853716929227340361860355221523403025759842092036458030298028824755393025707319785792528350015758793051950291842869703671232593624649636268051709738153179000593587094445769846465869625666297022915016127020194879305491636665023880150556679753747733948076493608205132519871534630877974211870223343304078209326504574460922856712251303180296295459095758128601365828860449766225570487477970204572764118765228395073628696010275775720802963100871604403024022957358654680815189695172671602349424117125702817662962989915983275929037497463391636250752919221134203067861770631469181176234150475147321586281940761195678774274951067772755312893152364260081185627851419251571034930029470115956631951418898263685180872125640004140007772384120476928290737699398191872534505307401283098419868588550766504320115258038377800488654064255918771246482788320367734689025608535193037447913673834382523178507737936072463360853291805172191929431033253247331687338814167939099707070547635188120445768381630571751732256890697624356641831103325822267112815482271655484883322097494150640891245992161978064221229335693558260088266965239229470380706990119873413599405166331129980372572069285839680640010730652035328783013979104313437617886285009456258987854490529194646527063071261177528312954588783995607605501074069112887054740260601591517009057460392802179450604069337343265665446938712018239025144791397692021449398583911658713132639007167538516728167707497364982459126782355859259311418985849879635580266198861311618040903673287495475975358840285383990830417338516877908775574478143602995065203517960791084588417404085068494288479959369771470668205475630832125120824083655375422888755065208640981454457181471818881536153137959767780434882724915321042740924847147510662274871555800985627115107363675660786412426350623279973011561013725524123156182759971480496277439464573163627822765940715482056385651324073917572780287706044259166356482471985529995438122937245978207227421149907641297533790966152161538968478515002341323906553042919919010807786610686267520434367785610905114881633627424815379151039283539988656771684446501913897045028265646975236647366821620552564040161800518855090784705974559953597038738676002471356157492135731795926736626228317710570888816362347717126352876985644591405920359230602768762167629490835433161299056181884135815034919318080770103150233879161368189445964429778695357370991047927809924061749918093151929504772709191959161807316684817938456798342556914557091530017391449999260266913704255319797317607000470513801875006932135000563771348867643773345660927671766068426430636341834763815642550264671866023562344931992239677529184599267312121307354311795630320038854837585730567085107884762533726226024039190768536452090706592490004238879074400944973825584961486507647682664025463834294327864239058445032949939484717058654090803949415958940843718755071522247587664989819113930687294148480707447203463335619783291042147486421069389006080281310652133395342224825062826870700617314026058652310908371613444570875463019136456323822033374627027266775854890155599579014652572937395185347651948590183668413461440034565047502880354843496534115329580296426946648982916087213532156406506547607354896329373737006517714042702316071518626905946621472569756649057178361773257238665590974434423495162838780972628023767749514386792873225188422726455564313890816622863785579225644803113506333738392268148658222891896641296482813119979298945723079422145565087085909219845921290933222674394082903175051827656149405145065368886256725095907914404426897843976363124688532186372769700102110695628296212770615948098956696284495444487461159276098954316665581882504406922192807783348751747627273181040657839445657136806066881460063262611311794582207678773895035915531526794649473189208472568789693436303598970025556019235434482906320224008204753281210162265166782737101926074460046559412085700664255948870971442554201237853503538769117584555359873051459227380487845546425953118519221508492174033904103808400828555198269690203816261493263986760100637091970087092539010550722813114542727577668289757177138581646608945781381521056424579508581916794177867170133091021153206950035164955839922953557530550555135652783620184864383044513672202909997528807515647322376668171806350771932746034057895666597682104314755396661411866064094976049614074857003249551302636095936821168665322721591795971796617709576024789257036421823354556300784218576609115877730801426316992999677342375226046593899661548781212745026135746969500029265457325789867157361948996943546205998963926013674553396993018122233613921172917622514477616059477019940585796129007929873200286412808808306867549978858058998072988425949336358452808333195927042830821739050124214255376620188410695143269040493602489023584519177152788188189287697117818866776661645835328292705916205787332487063174704197543800482975125106121612312426830956905346095304862082846848412124369834478091237844510350173380458349926497727160295989213284586995888947977540053535283538925895756334580315836838820919403898305628215864102591372359562569009890334674691812790518397273119436218959686965676679870778477908631665509709753283545499496093248089234339019797387257171967485922293250405851502104176641218178103314326997564767481666570639946858518158652207888021868831492890829488285418247597905978136496691964509374382931506962788073893735576185013593983401148615992558288215094291600537968194938961950522074713403367851841619916894741591646938945656934613414004379717840422484197662721117769231976441710225798074350699458919285496732588028306235944904071271656988482742883123996008179310256581473689937740522814358105383014063858576037535423544671666675493554897461157528375575580074880701635911187295529173182927848078273253625938283554253760659043209773382470140330993342489473309068197319497119013543890096260895272811366779479123018470059606856889913239350407539185239682464773306834051599351313435384700893195795819996781425533842169835047357889199849497107691273219815705757840413644893174726721505207553538512930736930423015806174380970180475798114717735729209221587186839651337959018157535343566570864680752219638681008872097818599430629471607373895195679917817205886464669578404315163853519083680012651968627838519718643319267954593598184278106833810476277631592035561816479776832509641919530439371174775960334974491044668804605702256315469693341000866022033862436634745637812501052735388804353322546768644884488191444210942740352861552157351666769639391277573070759731679067974723910954516752322743332380551053851758311631901618382513379119193174633579878534468634680039869077370241921297476309535050461443505456331736816153374110722662220249575691810682425110714701443646036524872822770296791769667076271786081848304453912538530100423531631321096567409717683744523897319605760110497296608625970618349011481308810511476939767032826193507280123914385345408590974529552628462796723834071759289607908455000425085502572945546280336878443960034261137542139849050934207874289580837968030195568690184058889693865362850271266828459059276077950627672670710533211570141521692439056535305595464444596392524311647658881944778756197564251147220152965472920908799563247517738240363456643172527412665534022716214311690772178938697986603208913344257980605261235120398165256337924758483562988857791353430162851673842584603840642282259765001256769303341991323190112955297424163766796781237428863629382839445947443323374240593667732973846048028735741598552295459089978367499159110906298583055729581782634871159470327309861714113319916275491795246114122571394824136439039704950593177506803065619403367798245928391740673804061842807192575402210390112630495159971418199153708267471731765682242648637008817687088663402022153487514121128718319107761926502265976652991992702536913942114478728920870231183807417608746149269623963380019433405317870745249474156885273013725465464610294746329994592228031717542230320220717096168423451452440525926720345033448793228800822615625821952903211434533163083281045741675084196590021725588033590745421099289500355472138282550791371698407199004527611081916963066306515890653675322862270008980195422218371489612446881089385932759709168597258515131480677059505684369876521713532809188802496732806490254968655671561550586880723666713964489699868267773616096744204550977096820502768923860669805477647845853748211422401648781458014713381314931490080724535640137524089487309734222851533877995250736647392077241217358044035416252999921066882116418993189424203358960440960554431995373414562695081306823778411344295670789843534119494892106656190055093897377298294704339842965725517849245106625098912987807466826080434085096528394581119700084661516816075072379611920525005547425367215737363145318402521661180862024411886989680176947249494312616659821448085963510015052886799769696435431064171849916120584466081055598339978054638404854369215874095933592894330449189101000067340784184121371491325070651680557750243052027772848320733005383588281836255540882000703654270149012626066876984053385695090505158935859422491340527010115806088542922656525010379544529670114368996459301618918157468598123199264564418376706369156928400409122200575957838585463613575976659489265431106159248898134997551532495836238625485823153552689521537829474856603550439489366774293316911070297391925284950874063233627980441252225527264523035775327364626173080428967496201176371655696302582849650994894799774494346949140624643564084923518050475069457758869350683873529354935917329830259200299976576965171519870145130169478813823727356152819590146956609221279361287907109944546567100270503971868679206061717455594893671696769847626763116890563059839165092983707754130527046819988548627556154576300571062715663484632547149643480745797018242130606830526386835025474010084098941947689148001637664224084802254102947159956538252041360389450966119121026493036971310175506914516521358040223376295016296912701763193176510321371220235481910909394257551262444909902612016943270191695315299225955821934461082462732636685952236076142273443060977784408060696290952304089939154352388483108617176966285183286225767594968420090687035635163455106926193213366411997262610434249261696110134263777226338935543063484101713040405346211789793622978676075909134455167637284946560084605112696900672181908121736764608065309444554410747836816465291083353972664885480145828722218185422047661630654083981532459416179144378107899218040994037057481260991337110578984911535343138972312697528120523984725824698967788045897523407281723685057198272696289072132611510732634619550065633504504018956470174217053202008577411929939130427484842093575565143310083243404759324560857533091824051171983913245791262170607130748410001864661537520893426797446922840521419116331053505748665401093558783609519635418931130034274559820022836486751882072827624299613806186456360455094093127516520673154400905275342606064002770336198323785645442606031393912809791856882859169248329000700783725875533500631031191548324231184847383952828127917022796271116243603612604899598098152451524167135503231652759235963184135994884389128454256184528267227763648026678724372805796031853669734116045715019077896798600547518356415322579635363538699156908165018294066111428774783914510342769360951490201310740727438238937363326091023254406892273975446466526860327093037316060642234510674091782040995508141103148045716080039173660268969657486956825634199251897431037877953632915227305667183311103506859668690419542012982554773662202458556208228860651623709443250228643617905928844253281280684450063898183824356770845235534345963798355197025868057862202134758740339803580498228199989654456887266735594218508949161755428505077765647823110451811679073552928936763747112028555303544956595918430430232453849511050083125206236174571995412934411923409938550621557500751326789189679851002831573987094248932670028333552477965181849489706592589785703216384895322188346875576806869293334080011887163628984576664084176300629576970982774154606083304601024977127861998379553705687453254268830044575647739895725657449638435916679970257463567953266764698395920093281936862204513332837651158701056798319793679317064723104132894934471583048887340564678593671995912253464789829292245015489187315172905641462311593398044060890044223520852670385331879638769460746439115817761131183850004161067781530948715947741577583080952804420598438344324640401744915753100050906958868859890993672033511831996174859383669709661764685606156013524131205366081020890162824108913650791560012536990930192788326513938607847003802370662412861028545778477516205399418261043852457490496317065231383704558452401546276107393987375740088040189778675521686163327746271509200612680090316931327793650319389954525267093018317729687042713253684382645040995158442630201624690922061596872096152606565566157000669586342100947187924734110467227943215137888171258270536552389257961021814618791572435312650908224023539043730554165539902891856009687461773137425457895639889371008554975974756762364665588956000683605692342378816353744641434508735866723769495758300612294994258429586849737872986924082375091428712421199109183368247990374003756792001683972333657122541547573600220716792322374462737006656529207962586450669347526952774408054916777206169832898961113332495365764788908401398142091555601605341674157583600384893110392582301446121568137627450922033524311670482884924954140233130577237217393627404546217733332518451701296954936450089527410610890668281582195521649919442802719562694483237993711713748932275737564142206952392352789660655176576233604806531032539592889696677998005788058516849100672746186394843827660399647858052759817328542356861380302426720643142947425912250232301353927728573888448936216739938836729779775600118061141196713098921302519795639136276101599900031221435647329165518866224453885257940261709321712569060786798177551726866941089546006164768650228839991996989890893050503269176177236957284589025623818406956842994532726413968272092776021854547388715977055219528804765094148504855451424721196626639561385064228125319198797300869773502477950553955542157887950627449304683845807812708444110323963495018623875922557014526230074413969876453710331554260924260112573649698890699609198254415688371016881652473666883459334670298720756055944717430363736046961963799822357824582987656792716680728765262083754495220440222486095974855882563909274162519550541286059114864272535235112439851187364198993882200341695323199205978492059843578321766761111167192264362512777753362833176247714990256721117848666552719938746239749689611770486312966847638876228508812236383171306125636337900899399551577570963078061433478232195856873448599515108097233415036612080492187621469881090439363498611029048081536571962533902863675208156329180067217626370939923283055826975353102129888289557801866999835824805188637154385363664044701265370437228020893903485313412271165981834643693116726340624901301975603859193634600677725933204457522734686989288087907228891170007529290701124734888542569379069571612420545924180255460490651582951757796532484480395632051772343289674481706171337081035210161488878067094425421735717443128090474291361408330215232686055751928116479272887410278361011411497598564273009310284720060611656556747431590991386653797436865840500118478785882837072593517402656658284893148440815232560456896646914810317930469595671726175397898086292585180905240714085936985885664533096659622790971493001294097168581912569521818042342688389506090846706023745745157606102041503883936120600755461114796932482885510021385546658195174359808383179281276550062092764315650759144293489471698995196919569020666815644950032649878663822157828643192174811496140875807356614558660238465923633172272896335943554009293795069431301063834087440168544195978955132687952477705576420263714222343643813042023199402041908065923822857675514735112028778755579559782913895030036240942060952947163902076271914759859257718243739234410521462448677234068759204121021437184194387858960491014529881584702358040854792473018435867126462380448396374277005768261756805755588698656375299284155258914164747311376657900533020067592288707947954227711973391748369412528619812255378699040313271382171595976854798399607849212806890684713626930160194137860954514548957960349722360030596428156215329734628362908433887826505029307152096628020809566558540758783710502727098345507396118871780790260577260200274147702895333648031104424607231248305140087559175406846421952244028680952939919396071555255203624243388618146190378093887673891743394997983461803776951651310481175132680938137545959814143658964959604465491392701239725734197131040388503739618339792101407737395548112747021798838593439685104215013538576343962160235940050862779193998821534906644291363683111090920470672780979121839450201464936567384295514485053201722493202279520571394532912995487689887665102306007873775287517913221400566703346798822053268986775894290163436281639903437288241703045553372855915331998651297369324147158299382141635416493056565054150463116429240599755236663234213399460193422881459808235126113118895401509801637852201835762702239206171227634021247766458668056833580089160796928853663378332506552941369366880226514188190112111176568694131606082073069550916345588728071179978664512955292688243391950355472141273555293311934622856555089009945932176464246410787697742218530102351023550824889793577445491230118743735437040236355615241219462834187950545571043152101059072557243200132756635273251022439216390627308962157710574106027904676474809526688641802265233160247649385551414214348833703725959066773404164806078396484680931750401303394068321734091216866277338238729016466750156026642967805414784109505053609541828152186054832709473514452260326840594762244970382102300126867723493428102509438072299508444075279901490149479932679508570783819263388359294553792664593923645138637431559053559949729946065001901088697348665373616792486840306183929546899043646434682778926596500672371342687072646757770388570366915909420690155958011973537716583814547349255315283309900491482677889062665370080857372683783077029478702846175796709927739480823264498237801018049399426201318234586171148157608055019726736448277959094571810606828073371009212092111930382674260094489773651987393804549892717484144964839581907890957977811220023245648901805467817536230091218098128429618288818586423386160300297759569066821187507501560219277096627888119351407539179704176683581227127181680319144431407585964557871324171141727404703249179773986586054492023667032867640858805052510100676150384971309493013054606862642264714009574697814800593140190016377621214977456762836098806089130407131445499500274326131947793973904674674928858831333753960287380006482583104918028201494011163215399243375659697755750320796579428624226553365818965489190533464137204322557909173373638379377524837952624363337418937923460930622317125790441670661455066794936570133419266714717519771443440469244423069399269994427472917620882207523994031039607541291979168916292886804178602669281067770874765871839450749470137015091399243234589217752021247183278359225481428661681241009642699531724267738003755304246941592080212221154629443878356300688206733162886942422018848240923054877348410574419060404741863525737985231547217259984257358939231737603388104339286021634579049060084051878038627597517130470003841792519291986355805596176797457531173686847673282389507928746220725958719659385206269012324520265209332278379597324401795969819821102934821029530561062018499164413965470197470282019792734297558378965758720560435598862638916748189373570513602171307795567225958773513406377018355285744877410627692854650651854708416925848424223531936871536576911651124411980291925267572745220334107132846329256830127496659828551768645590160006149718340656871864157586837788464846427113064381545474241068362947795932296842140444467877252744469413060261810189788315555647515125934669430973691188047773148344337183176508051600678075559578258877643937385955780401097357807925898531510827856554554165853519657475168427858388036588760435086455527207559932059219970475116402834101123571710284459423129117075520606463505549658850781864625142093446020833869693552351728827331427788180092453710747519603133001401379262940092712013814585261650112131490586045033231724301040823243246997027212648421036685515601034005454078171110379526425731445937175492355811740466006382669450062841466242332704810252566043076326477239829349192910263553534989371325603693036664354246109775005239495013779548390952575478853167105912281091146605950516554885690195113910294660658328473032714859403127341632321475994893190515906753640785373017941869564788171150159900337805090535563381825728659474527165519913416691880187400369207251586469177592091765883785585105941134208886839742721833348638186216815661417514624915804100141515418660363299872491960378552330687262021897058902443295745661092621911214168266557644913644204611237086591386569931492895618170112557759106564874778474247851388619637927696369761976700244414282463596696860536547063787108378781832845371936578686479396358011102206327861143006163326910523585347424330175900807130734708167426971044324645906626214181640607182756706135453870407643313320520805576141361204766519244433709837000177434876475225344451707474655368071628202820684641721325936340039958810864593714219377367771003613994442468827011408363037982231390873939279467369933022017681947902310341689184946297551849237148345722279195658893778646469325512593844131979651693892356595222766160890063003664836954309899936699181404041573591899636111848749283919352215773194537824626506710978461152198036586737383349226403514537664165309369059554846791871884485431345651406251177075279971983655490084014625417889911101929879762067145383463851907163725190672488461183550123517377448328834024752249671080798584874904604152922876821548798083646996126632478494754286982899494456754929452575811242931547226161662959941272683395409826178194172486062620384772610566088179382888896292499654980457275713436585026828969841311932865827330485783382484245012695777371688767001023062499769870479155895520561454163451462832916605885356275429080686282008564609096148659772617627239922607104196278748599309078808709730858082650226388129580525856651199398764839083243495084021007648643315755631810587980727287643340754122764152858975972682065365394145955840056020507591972875788712725609098861569084018397201706492883130420952135704648967746457998187107192045882958297808430367959254677557506866042377245925437288458535019443927477312773490548006440067705705561542260611900449313735817917792938710151593208955417954958366607137050861296429353650797759444646028828040353446952320765893330418567978289429126800845270813469857092129431447214440064785141596997921055009439185450546306696023743301718987852021951494974475123872692324672349880475838876365967536536072791393751292182754996909991776579374402941467529065981119904717886245877065564569285909227429996696939688588328196164995088338882679620388514971379910674665701301734685726246150335960190166684721100029515848203038416489007203692380261088902746261016851212371924348177692670381533026366115489582190574034315009704036420445211381440327278421421359766491248930325133635234139345520137388718389732430580718932449930859359478384373023644842055147243938313542163956074836009028404292831551827013156757912964819979042102804746807755298241189225503939072081214998458931103309547147014447301631807200776886644326143343659235045539384934171305391710473374554722057905038145648881851141769767345916665329613910816143210860955975028254600455565315312183811971218814904911213849745561054512720907533902337282519752987547767081080364242145874111039141303755720424944463110615545931372699723057530113670597878606891053384129070189178104551048393790095805242563416655587001473143744683604887830161820104139404858275010867097538882106616383045113543973213584372706503134346407327881933041314199226763163926393676815074372361480736727679800473476401983262101075451481467687143242168573534643085567611775011177428913155540313631029551603420445766398099128655117636046556613750731728331889426268044833164380425768255450307302230098823983260208014213061118791733225153913430246712093292621156155217093307721791221629475742824790001513315235701144587377663302649840214355760420921525004632746462448066469529587376022966081829060819815022021246018835885472337793958390049519591355384189648982729347516092147039590629904211624281573709143303080747080533527836836244098674804999974723991457121073343060132892338416415370587632565581343974631450752029480630451374008336369747640293505583612359378546225192582602734623109250752160612879017174168142917260864251279529699671805346878026875658558303904630613290918936837337328577418656925542907691881845352802769069822006761362383229866565668581566277505310650489824582174207579713693123581557051180481355062336244957726534146077389489500559021623218838265299269319452516101809508443451946864337077162782868713829038390659483700324682019325390606846463561254668919619930247047415219111728377608594337173020796245495018872960018532013426715563464834864300707816177323106468229245812849832708387184917864526322660605040549694967292603588007380633510080068640495113540928020139385188001337114063372532683871321160792651825773271927833705123355700774599186407926079430162601519494017662709815127461943163767080447934294186045955451481293616446798627481820320814774151660737417820964864940931721596945083711597396573363044428610582270728804309313573248636552927743410315776418043282154894472267476925753789336883979785648611738446316619663836038366182981074392568269767207856277127482375809097355020112446262097021587900568745234236823828463518595225905147608279523902911416122976743880857088363974649060636232210434921575467546506918778772955902910887593068180429318897275684739116420880284542096416393078020173970656781836876104223413638450647775914642292097942459721683699136317775765157255106738901447087470974595350480729875452642642765948642068012523764475088661745743456019246184023797681461505460717606083524071165435104321138641022709527693610847070475384542613502729230415935685481854735902983836953498476016128731838953093015941645035341975632286877372078021092695670630902775741590570832192104452952211211673531065401662125068341689822654360489448936919071681568024977376164147344097920710814281027763406222782043638205962356829627058999804621715721124313264710713973127534034766331550742074721987316565896727499231948702598931219776434059107289180364332182173327533668662095279826142987164611041379673638074793190902464760721679831026985885396795101966078170154936499825577384498845176063816707690063505076469229080504391701126588763601819487094575786407617830031276212416295289576022748120035452180423788128021176464950493450437944523542731259007624332575140893823265005562614692314651874820614161213789806206367811906775590259187161723538538277824186204658832223726529566532091940898349214637675924759723084898089537658398411991247679155231210192703971970368472075922628366784248003810599138456590481076801177669052945143548984319981141343341133591976507327423197279857225085217387196299472828626528810180215381395071587548721442558252267844893452415712542001805752453848867307658978164812100036697219097506090661791043716318195600660644607884401978804172397284291973977371876868121989089533966694401439288607500438561738590571864133892283537834030673902566018874387120626327453109496550389666042951604695758787852385236454714137054645831305822090747899627621642946838789291320313129588778644579417713591241694395359491795973909760188162773732324531993580351287943290842545358355331550570247733464451274946068397376524261058967815494246781976157171270126290872856546903915032645482573901441941762506248636157773204289809817944857855986335247922584406364225401323982521651456337764355328379406552733380350132293335721291342378723691401353634939827413511386258753111792870859327739221629123634755717578199979409457154103061309056804601442720058157264035936544028648867804422469472164673095006647022700153625110639011688272132555831268126204901801049242981329638013484470770957609348058478470067907727516173868591699703173123980249292648649746966807490757400261597371830077570603766843147955101006221627106317515581458662836723093257778889961088840448903789215805875986766658717256018053768143918787332821545565100664715744960706742110082301014314900312584725677823833854239618076269698954038991300395402281816158827626032038486007856255288437467948883507380045978660281720349939590133627419667574088074376351702351088334665608974371044536229392764999429265075453257494783814368123400754228984075175509101173353444870057295043744792333283496173090707513906517519696716137340185348953892470030152374696479470621001010943539098268252262121252980327715603345960692222327124054515480942893998831052234337985104263173815760448215312618093819804381902225546356141474375779839332818026258726683997595131856544216395663536188527568555419107054174730956307402850981023655791680373881375558385685634899658198781409688179376834495378539984417620422021994467939396905305774539941155850329645283768330204947695169774917666960789008252026199248207505320735727439504887715560050512246172757485658944300408255566304036830344127772940647185763420759839751245949964623648810168328436759636619011683657812036044410568264698238282637218756507746149409322541711625357365219041464391419044883957832451655463381619558836390337744671886936284321532320234396747133401906322231712763599406927665920775107197539514081043657005235453383610881906461016494053752617869899821478776006853315654070473799708554644037892358665444784508902014940729727957619289863776365382227398536744853304193234543183629056703606777240315255262914272384963468339152930264539664386700038384665949832823393579076454399164531646100107055220763255623936854124254225704277897247189256955605461913057106615005029356453472810435244562724416637919419323152381734586811355053665778607763730147102554695900088164924664946779912224894211503171146780866842211662733741829748328450608762997601848579935588189007790482169790628234535448755611982677921485432818605851160108921318060971967248424174916164814963479173891280855547759541040484945671266712993672467197568450550513067773641234033870551203336997520403767512775729407328023033825720444624438131069635247328597696653730160567871046369646186724903400176545616451151829959525613009469821668328167674107768224826509606969470924614835450846151241425194743834388087995452837583779233295504626644051139611100398072698128194988691981974332929168427726435466613627458153495135239546581947993793572329251022083523570723029097825779075394800745254469412471449480113287381083024694859274162907263034595997843120200758679648809016529056225380799181913749277603590911995810144278456451565677666785864965839693568196928627908221577071491326786393203728687536738703161031545408380055228833111606057859887846904149319275684270212842413615150268009783447538685369033559063640279654959464720369157923391017563085703199241132534419240207961713878394171344982916280335336939164215951772176289200032017332942018369015814499316178450182116031130015633507464461712842193156346235564290956526989610891326586980439952858523014685453319643624273232176209466066316426826642259417868317308211898342307713714216886546730236139401805584097642566048439315063669957713024481746248790272318887343707610710246386464754051928781027796379682363936020090159385654622070659358934063983157485020733748386987808352956057706984789877185459983430220067621808315054907106423893996084263498744039241640965816106980491119019574120825121134259280197182672683697144550364103423967137276954818892751563815671458720949978391788670743086524918006868170591615193478217925619114114942810024338251145561040842870712963315135154662388820816240702269930149735376985531341974767325736861156099237310360074475263944047741946899054076797904969966285758261188153517816505822732594835986568300541671559470622864762391944067187517446003125431700981908097652492124431734909414844020040619819409241069572023760155195670489416746545399135388947457545840488098341923162445866336752579311915455416049095881351434481509017383839443859725432218244161905411759421434335773753205358770547979680677554612883649418176233662610149059074230529373819037962296443796355533363712804391417772688774907814404718228538086570963498993281148129583431009815699037605044944321574431070837731419811042748532689728949673798475137523943002017500173330039036242757674070456089330574800996947774277682269725952876634313661043544642156927984585027025239874930644919566023851014049703913280154719361642884729898819470481064843922394419144703529702413936543787162505130946234371366723164780717312620506883832673642902746723891339459486702578053110182156788824518800169377052719298213929894895891464196992919702803172422173192669330093061768640050764676537738392785937827578623005311156705172204817981712867679964693689558396641860743870807103556601903789002831305686469462458996867132401242500851700385837156413009307185905646456514769500935233584899981050890224153343382498725038174171955239165496847821119853616354742787562021394593004858351534311504013136991404528850604815454366435291304475483814226229827690090015568197322183076300735653632302722548439945794850514183877835720617412580229952581899501026441953158118302518669336946537022408117646239694600727998136604465798457482736643240423769757751685215631024170128183094319584045237181036488768846996323347213980617296255143480407077895906179986749990236463096617009198294907641236684243730178334759089484834315920697834936238371508126295319278738208063458947575347307210626095719640166432075956014394518532034456802324510193255882102772822497775226033436001910598378643201770469175421072532093382830080806632642683591828717996078978358160947669286751641516629250398358527173787699571832516780870370260801622047581433519889617711361086349792898321032124516314846057298689433933904904417156665042596785314091094581130517389597945242790111416867081825590076033138678332867628641746128457659099493233406892316923027212457991883026869682181737388455784961345762316229977209037005400917455561193052868829328927434066486896209376440576645634059241746789114190308896303891415067559642852363132954361866708600352645645398280134791455177078846253956781429092214533699751932052804989498579705966565389790964094058670778320744352947540097398272351786395787240748726596227083563268989482140551346747724244174049581407820099758437520602281194432004320131279493029608380188960486599438965067256196058390700102338455125583513745109723373035279137592810250646975657113228767704975338960351727165919317313601402032906431171232564870190968806820405572262763053607272441606554499621299213376939828957539116803084102477192349083331109583874582433010506894572770054256048423661080498726279481280126346406951331962334848812516106127100081114065314156644009443371448884309149881022835392085545069467365326580190959147380622917933929061542619096274972092133956776216919701445276589348680891698872072659016489038044444830249835717800483955810667762900635748793826804244216686695347307009091208629351567345343239135756534861906773199343674478855961513845301867688348303279255738980649112319040253264702943562108057207002271113546121232535275387088085343273114479496972425905500036323010165737544789619834069274323944200787196740527721175608482399803846974305520396304316583702170848075459407454461661942473777956490120857591288731323740092097257242768726923445310580734026560880525299838442849987498217975825834028428492959594627739543409939062104529314367514635760966299262176874741489637854429714466072478491806407384444101671082785375980915177619605403733945373217722289768110300405430135701417556273393811701364912224170212350555058971822310430246679721632425501174341602664911693747797882205184274723039458759330264466124360922466946814123076038782055821893179739509427761693839040303984205998255915191165224890230657996894409923261632878401223439736047473650045456089213845716674413060064697381907982271923663150876166344810667030491973005167708623607893095373513252997852493287887614767517308862658064303798907991416206796596342981246900980701820768681593140788532765696035907612177813567722934028756728980418082247180456830795845904837232227975945269257645118524040214580593284333813931405082744264189451076285527499936811219497115104381839195704788418113155147202421709205516473939370256393190928153483817238180153837639806302534112696096015082610257126122400171855339272000363229979501875492262991443806880842091908461164720694526507194161765168711659657995223878241616235101815676009229221510702579926841869275551584027509051355575406575704634194844764962738969827035547850539020638265691906056862759527613670558897269494320816575892830642924540223934197475441382830345670638513137288439478781856652929093949134297037887347666474674032020390387343386353325337570807147238812556823867495031833537858599585014003093559900036541124416002499595489346968280311129571715476846632290418464014944786397859031689774354882403175033493725873748830501697912082993138782412118806901406149487487767607156514064584918214781348078477675474238034678147779164260675912214723608829057723472088876970361145549710467323281806230971989487443446060409255042262241719811878852890386277720991803620596234451239880475286121737913535667524956686271755573531825654969582443044317656107225054409590400031955823675524491565787354351238997137877214531485033053193504222964401604691406488022307214744369841387916996498932165479395888647090576108114494332586316132432894578162441470246453127211324337464349301162268213578776660092716571353934176105197201122644631621851469735378312610480204541121226808975284446387071653689306726942683624901862235338945020887044182360850207339894107450067089440986394673720946085013570246322128032989150574715839131012218848988040332502058140330658800470525733684033739863057755866537628802913294309385151913252065560536802792672897537289713817477184023048872925560222079395239705553217543200826868616604739430585607772064607620938008945302858527980944725909816193850938025597145311871414635018009257454413010475863811231685283441416443552713938014689929456516918449609141040728563051917751510233653189843517021322301025330252015174322490525901294999310745542025896349457499401361362949726271233827534507407126536249232677091534906855397237891659144560615187250324177421270056335814816464176097584013319251626521389448526841679030909007945055185889320612017172860868188680904840537784005284849713608329333289220158988494155399731155723155398144471351174269743599406882573256598279120304061908729361862026952869401060276475138994147796801304181434324071397560574705950636822778082742448394126473847246883732890755734161647535327136475634996453257644951720622224080035450279392272686044360174601188276100282714065430279162632457444794844885852110557952952982844370742315733959992688115781836818004871712735510670444027871987491390420953570745552403914393548334980986585790946671115643568203155751125079192457493099552895709934115834237587953060328325053214491494614653219399283205585222404773392525859060588231691581594530604163481909373703612046298080053647286571537431432429355145741191126301954259416070025509146013904873497591785664345196472446573562242746405172129469303205326154975918589406275170927110469256496380311984435416626741432502113405869819622427887912121415797269009175988401297696310709390838753917158454024167390443092736340859712579265055609410328422917031282118441388900648982992471934790856808385173814705399543957436073164114930660549819579739601928403123108666236082873353093274881030943738901452432780558882273602489130924384434862114348735054186546980713845165040043395632473345270691002578074655103649229563203995263147342721778853003104917296239414364271380121232499715649817330687178135524524386039345048872671411876730244437839840414874976127375412711603958057855873525795119997788315103055761787815004475984005686092402088291043534090350456199717745575200040486413704379770181212565810309500744449606193266881660002566873147787420645939119870776863487531165042127569440177667711225761271359363447990168812572722968701228267647295347495976733548065429013677912170137941938437581229759092482798116939200077231337652919221938660234457645902430352715452047757175227769831547514934206459805901768305954844675783510986787055062886843940390050931880222762624554481070096313310612563065472179949042176680047254569791842227930043608250325481175509193297518933565993127141882778522811889485981255756707863772424640479598127369572069657340514207833969061029444319587177603233523048881123238967180310295404934167803145987341632926598840004805436792541465553810861373368560871998596936843155084861714151380157233717008382051066440110680633177856647103130563190671841755961622670630605901167895061306136596198523879674275772634733795415953798806180376430462025783627548922442687328226875339930057576437619100613890843505279314845219331186090072384363525532092974102293030743166691504337019724142127259635303604972406054300734513677406041301454872228955714959826204916783977815697677776010875254584348682486741291591136586867482728416858542426994433193768265826892758244683213170976246113707893300763309653100059919369709987651104158613524844655688211092763124409076205602853320149044871639269601813640484192030623978089305382154760300047008199670149087115264530162428532889247826563125930033304419876126518532936363125515440243474614313785135109989209240684390735433600973702222960636560925078909463607575487639695947780887507736734809937270145022767844873671187901413026074934621839186305204571036051414486391605602206448695879476406249348426977772021728996818417812263061180512639146870267010577584161293823922528809523455111020413559950941251600236003741490890822347824239661228251585440607898626235301590636731177006333834877034369441462810583288664884460160262554216861039765923577822430178593851774269509309147838157230695740749171859404019518167523653758513411597508391438386499430073084196122457690914817308994419830491392386767187197518944499535976842712279549274403542261779802457635868861146162592914996935206276444712877080902879105507300204585232726770210140652187020647360715621723902061026200298593127462189109004105621238778970268978335174823654309865545483863902176192263364578845522592577318926369094613417322468837541518144630895760964282338352838870214734092318475517809326939661793069372780130460234677460574185723255400591442013194087647417329609965158433890488034215976690008236478186508496727973030838641805541621449501002481974272690992047435183147215892554077212248879022102221992106217812168829114710196556644871442982148615499136627805145288606052409811224577709561297795696496362976535870608544699910673062658888653051858933297219005970098871276988982517534818994461306367447793959083901889569618943136813715235178617649651386672033890658380250059733542295340462001933442731054421599245941046246894716337318529246103627286574874992900971742802284339182821994027706576707507046953148913951039722503883034759474448223676517192058593286272818358298078781711281207969092545498909036381513091162356646757695670804534933053381308133455673490309088598139592554900568047505018106586870300910240973030886396070694831963777394539897841022408756591563100125961540817448903175258856566133763957327478080210585110541030551521235827363716493742878002522417769313050498000341636477400281380896088288469193531966749737427007750354982381621962401958793369892056246841232954516031421120758478112115357714034351891760456416379807682632422468199285328436107903720435160926958077370822865751018515462909579048919473064292654411746855232875565716949165715629946759341416302574995201933370165238485062624624254663323337500080429929167961476233021634190936816792081973343535414463327865764801189864847959345048228117227368351865299385018021394972196527493595476147321047501846297548101548170441020432228264715816466030700265748907912432304879613138182581368502369680946401356944017440156074089873670178014434612682069046210884534647718117609660764143842697069441620314216194012254058079009661639469225744448348554984703070364511107725392729719936346808433174300156937161317280725075258989739768197382610379360535167265181594960025588236104697240477827858440386268102568702001031216049238851343017598499274359616464066875119643672579931431293204421183474686560182059551966854397014068185230751327072777667728034285486019908611546596059927987581957143569243561478099946626591129733945968980427474194177508247596321756820701780469112002298986182456853690696561693800926044038195261376503929555719925241861883885870715050390351392826855872749750299013901069212111569281461782283894862080306951748754705856502452871829642597993692736477775769242449469241199714756843131505975532317458035876531641223031009368623775812425709613149693536745612582811047203529122698606532123513228836864404470277473426208664635443845659276159989758474947253145736445533306872067677373140647783537638820119127947589273257022529264798031573388797693507043863826396522181873912784182744533477925895208074363081124660548641819640086446949290610808093012288539504970070817105929083633748107954369963151125738460024045785355665847317427998309078664995380711722299655717005929909382375691602390611062875168458595677516114773514974699397916530205615302163817557202696013087474849856865760320816742666677924585765943515536903184534296594099770741035467645906349280731202851685461601461798225415813960269827209631936247572286303173585988713314193008636708721427723782177791044925849107342526841024982240851034391261913386046325339524782234790707742677460042275901971257222779822068515592225193630389928184093352596007195695799309864365315183964681278793443218076046829538863467366553792514419070392907638183040247336588675592930249325502293076901436832620570096590864144359863683332740483128932935050319637775368280196616228790513112209476032216860308043751549528404887447875036060862447758202291653406263209273911494523426524458052458475775352765095220568879053660088135395271236296086377239691678323424983871447808592053656149900484613786284536242674914428285817942170997667906926441981637350673078094284240228918579373431356761570995579936943034148308498924307938027835030564892332765127308125206834698020638933902446073957955965327602966776947580676302532315172047039270717249050418313286001604792272716488207796322892160051948151242495166522875004386113086380685989055975209567498156552682210090817909988541963880373575099939484154777497576622668219043120189709960434527855094482399933993869194380829551816547997850797115966909887349556932019709524649536388007741937424613258757100500990330426244497794692501197803036205226379850627127609181745015865716615485567469911780808267721698225142248710453062223270876282542637289607352853912162062242122914932843112728647912677188424721136796703220701057115251405122656292595430790303806076636701725486007178823933537775057170740765037160005113577757590032682406647621088653780768789583769105811490254198098155595769507264883247359432795213152129364786274574961207047890401946155080759499212237080997327203728364839320544273498835578598395503230744950019942569721641564449936251568626975382167929331003619594179403137266729923951116411982257237540652594655043451993228223885141063049628562002823208178898169485819124684500121341778171113207026749289332538584708857618157187547334541368809862051488632693592593730061059195986095610733895380745974376225044771325473340638287132656490317677435464119094303526790598404538229190793453175990673194219733472451981398737360886093295873164238096119435895145955427988355848646871422224757644519626037699479497236317322885832727811144176907140784152431726605291653833475354556182274103369922705890934392107887460828004619405232054140165469634362502362959821519525708231406560090650735449952672103584793162446395747373545992555212241192082339934884081463421434533005966112687242062166158365273944425483432106395383187841298689588322240537883800296849638309064561389830500999310446365751845830740465263011687138555275543922606567256144108459522241277691637432557709114127006991584338558178054138891412060495427404193821870811529052524471308426618834759608528656932061734951117674219061396816528052217907205087486348434838693472462110458724398719272825152065839007840048960097629636101371763595674790408305541635321618025125826609471559464725884984389160677123684940549650938921452672402380410016635369282445545110719508614473993120227777720365621014829685578033636537029332246684854639039897730604580993861853498627378352132343248115558982077002142097120065848702089794549312313611725611481287221583946166499103253919155500706162545319027578567471656216296377478913188471487093643524001767172992646440555970573488074792376634824742799787882213197702796907494258927099983635838676995444523250859611869146833983732701830308797402936692682218709682128330246444630126324571197940378924014614444334655352160111894822714307061880855808356236564293443000199257152571371976027201815584993945005726015953956406881637418369577735122356483546063352856475095562049718391679024049585575053821813666860445598929427472898800952977857493183385993717950749079025054445979815424969242460823182206950672026734600349176113867226768806428523521455541547542603342829664539935630866667047990824891873500013344357251735891896489553527640226287771547327236234100547528840179134159827368685535858911296598250095236485325555858498884079875958430634083533723396888398264695933006471123328240468735084938915316416345111794068246612797714113816302428025177203124200928021488937996604777602978440238029080003811485898837024169958579370222386953625812211279531004873564035369694413019904327151745948570683156026220447322954957519347908898304081747131254403429760429242237734651202858485290998224646041249436953294426135388574567799533252299730561910433730417837482338034329621519394720849909748241974878135155524069171097689450202284897215440024164515084611838624481891570352454694343707240222609542310274875936893221810073563996088576055765417931285657978137694599369499171980266308523011058825193057855807791919408643235826394474819773853087179446538760527048935221771153387922484323949751496035212588919925807754811085270951814090688119148827315554216392624274079213215360269575157489172635375007934601255510927483904304072246163917105503948248299380422932069308427171085547394847585343971688932167050513763583145751944195250552340873387042579534490679700748977521800639295517220160516714140813654857639786235986737042275629392753354826077642207446931271737553085812264608169073512827042879480597942812532661388539984778311723361608824796967056229519759097989539721342791266832825109682875129923179383265220586565072973927130548691881123444360802091354085440835054696712317646102559718179501069102409342951379422643870390732767039364869478336145780489653576400638213526120145926508969774439657985778249510118294368723314462591093276688409009674680780809881528701982823927062607017692177704378634448149399591112901942702004684952520488753963131931969503828994691421816901435487967504593462718706284907787462817627111621511847085645517871661274630157491473742608277586561639834966560455986437634725156192174148459376452758369510000330091701742316278825264426758533135766070897920849986905623094022268140182288771537037711668958202391387516241090711460385071890196044724779738206850008121894076181762586759993313445440783316960270866594629495436110208794329618214116923662444855858365709019103177144944878705367129347632442986306551774675106879472548322929727850337561381882698493869605023895259320546408008908413825636718726030146200859836589336023639533972242472316868478518473625573850566666455350330770536796034781677520752441498826884705214524955786360063426248879494966069815611560573851673826743035913755125238123608219588420789195705020172341832381644451919893538812439524044857215460208383147425272621093580646899825074795626872763009096637773678795847440860171908158957178633215303630200873777479597844529587215752355422995128370111067359677174074398508046162503463953389409636962964357713564797951028916506084538502585090827902366620734656953291676018472037437638704901640441228917201483528946328597404888831513205469995595411306979758710614296629244064616796125768943101840309674370803406477626619659881556632358816293157182851403581526671212314787280594170489565471640148258124212902701727743629267077348600285799948406315331758175912915633403194854666504653541220000925345479909617092625412023028227211274000125787207006356146567602398419978615164529740300068348407638263165816797398312677176961075613344950816867212332855849491811114090513308270370654212876308555326486607907557674951243468189536576416608023587402438429678731573765287900771822686087353717362636210696383790862233837911084718760797136607878355117363179373055459758193819256688117532629467575679445086675624432943734724416982413217055000067284251377672208348777896841367894719734699157559423768315725899747259886908281959037093130222395097664758004721050649128732608628110856997916131478689767088997950431137622648729434023513667767537195632519942280269551733236468264860598945146798229511445773927320712646288867842195704735284881217298007134050588317347722241907378859162779611979993408922431851978449646820410745517138021627866879230004035454808463407300042073388189608257413741203186197588949654529363471662250667338342994936006069126902460680882499417590186860689262892027111278795515780182467864367474318178008535156070938870879746306059982597862032538914051204793614901529053847189065879343108351991219494692520345748213161509343783149879576551425791717785492207225558444449730371377791710591218711670224949736782502160544624367308847120740566243630308821850058270763434977226235758669361090685846432179482705344111555368791345273795164274184364601503782019243720941403083714556269715358894488604244112021149728817358391310904560437935653473497875456083975420870089706465954911433558067896507156621068365194228857017796856255543332687656316044846231498368792733830081888350323012762497649374112729022918867061563902911979694615018269922195020044170025172236184534587556868538824451326416306556963748245414853022930285428715170573274110783561774098120626893752172552635261657317676443599633113817639832754808148929121820917239457638996216020308823279335461479321458258455826527388442751436831201212690776389021654613422765411641091069567162479318388745310403771637468159200942089357478531810481383644856932175442652305807277229868362641586121777288356172788517547460884123250035113200796455621873414894626003746616836738526661040973608686228831574192578582388811024497515309688325259084530126536347577785868267866754217861577315914222680465879572229088350824939613243008937239699007924380674746425288317855617163939441414569906691908692243250445937080204802600488088076917200782141633043590544362827270841096336105915147648019964705318184949704692293357218602390445049911314797078751911662983332205975113035049834065038679343016145440988504741423701834477367699412667589335865916159329962007932865362262054289901076307939553277381962245773926774794138693660908934847551163772260811076597620915140937654389036916012508619182057410969051943023702468374098632982334829405405329672860405869619839113234026425163604323376762822060296351596426156189292528504068351236021615608597404397210738349250485974008199065779539646100630789836884366312967274031322051194231864608443143673721365827302310274379756707335675769541417769820432553068462848033796701202474745248434070627516356401216094400713735560144186140072590682724690746371373149879487778478268003987178368749690300485829882058330570960385494149437200003701063993364936777470956556792714472574593434218567200316090354542945854911864348900556415403035263841136907711776402152850801270002329361897155344674716750887954636395486991193557160549820321389145723432027067140963079131270345327588916009064160626081032200284075391813039973070524345568240917840415416062380475570308268169998656543242425256669438998195698154959342370483956844190629258323665198812907760043434091102147087620418536373471877739350856954009508308650417204552080696112950880193301293419588802249722515860536710335217082852057268601661365314471994792793499183142399460515631354196083954267663228614845075976298433546880903684688892835516256718038186158001391114391742439443474962875033129045980441545667721384081022448267234735301311749016838000541932427325657859048094027628383841000338283872305140391265175333014852512205703664865179634796389574195217617362628144422238816864633009332285799581219765551193775583609906806447006647385122376761318591428620993797002490260848593662146267188702203013819519029489116989185868904684350899987106460485346309358808071016917655966874586200973725135410176927648309177946348694023694618622829155032686811846121362718139748173162395843854844886017489830534167763564279982903726116994628628524581504811028932133919263899239370942617168403565241246097578191287953957404276883276839830665135404181603560302038386626880273121715927293391744397667938318609652980798501660371585041267519243775984541375393844708650449165407960584957418811306452909879822953531850715943480913214250116251693560900244064123037689141898191154487742275702979230914673400183217018494272588751944338889557993505940823858115383979434735028599203780200051087325923026287209944278523707569208151535866809462966098976560013589737214230439645193172042262833612595498753735847424725447616634361173632422532935361360459314485954621050764626230824991578268431290505605033125505314822458944956046828626371289961926824584009857105796473039088792204979506918449135615440441689275043868587472715916246190802121322033980463841473048124771926905818874473805578816921047052716831236234688754747658803823250480015655197707305189515698632207538861964568942434983146146791528683242859414265256761950295703450637078100102282392541742768312339877108623661764428705365575259591299101485339786510678816975078713443423897455976228071360229788301022216554471363228270467694157218971228936232180386391864843414973837371647640017845513067173847215344332346506032007420723068019583043961900168304362197756962847390183018985529385373905787531487075453944398232187314826427342071942922937186304801689062939483050056587731984377200010251426243050049750624018042050449539468782744658903892436902344992426754067071390636321814585245676625824969705399132844322533977536811889847612345850162719388363736480865945126781120564466289032191235665289394462945043522047477615118599206190277298496582195752431554294818478604642282659241431216261842003853529244430453655313081879139064747548461589247828652345301249292357023462078583178264476587371925712411139177523166401229190353576881361965427182808674801420816936396275969531340146642757511828195096718244895088798139258313534073110421222654956621399265802343169936819845635495993561633447273551120618988999958207903112725507633953906980818351737718194892963692140859305810232019351758977630513671100324144895724857460245267432066139616012320309783796497878458279934529533879168917669030443567504353091369069542266192782263522195548752560061496208223001021486126445095581415773418927529035474928011122548036435999260642248778509711314871941136659486802120507848733137226732068016502062682949587580473154032189300673096000833247252903690606444991344518723699195851124835155528154129352371001817817514075992153149664753767165135386735442614509829890163005198734345884497455578523046547137361722319256002288109506119247015860221222099204296754071385921654292595854145847896240789061730314572953821706905900331681763881388166173110668295702936408609896887187073711909006776750805201411252439479551896247675997659766200590035239374931188263198058392196059779323334183056061078321448057580558365349600847564483992637195982904562121088517199097930081006862633325588563721570702423487415920666403352471371942453944848824369761894974344427229219041710526705997637962035606341962772785975702993956174725649695361165527053221932125919344117623199072418789291024852728201964020027213167323899828030247496053476244995409449481935246343483918432917906704040026365432365770637701851723909187596719300583877045547945909752509512192319911822576117127404917751951559590904032166528514103518407456358749961396342146875345305443283108726605953374961019715416574511413686655056594077376129067755563219681020839001821017628076766881298993079832398602883838901436487442642750696857377443788544612366042963448046003769499508427527850759853105478502240787799218447685496700043674075363552794418415822659871690936814379693083529833490310426329395710203979592448055153808460732847678832379718379492728847973139416905137676876377202083933988130696105558914248832011525612477583459532999461899256257986946406860144526035679065572812872982674293809175660300990083106506265108543206500926904143623742890715104808403467909619211256515886743029069276557798303530773528928196858137325665868583036664520903014552056366405667453307869935923456173385188770231087507233136446789473250936635206060505886445019696721764731929764572900936443078756514217489351074218570252349348959496526242288797390069664649325321556898615039621130603126870526806954995022336996734264011885045457336763889276380251297807737338301228708883482986414845767496248580823647772184358760680860537521924509272013313527661694242455102096243570744501457803792245770937337976992166740082400713432599363700423774394535922174050494021520286929929418201020201592207479045097485455696067812141257417874858273134769724343804757337657747558501357396564509051656833348964961771680175943803649867370945169635215711418247463091730806052797263643248997480916975684506750581597601129858262461003647677522333667255752046874746079628187791810853586777049854881936249469050697904758996275173322977418384642535226513197355572336938193272335525906852945584455488530290550914735950517780913762787958524987363932255860657726445447794875941668115338091603132276119170621636144954807574457035342330664312773786628581863049667454824113610283835942679595148363018784627539754589546801490538622400054232869966844820368361616727252373343430479529315812804211808198369323163099969705801653335443959065747897642138170288810848202042110179553977861566634908877139301892135363978400769544083306596892685620248819059440214114106847092188300797902094820129716242607263220168512506163161427331098855403660840036605169064267701824195561713295371107124545719582014636780946489558205104610545611701285617905206454846871917542513106627283805025389514439076376850223579677073704762605799175933578061920479555391557423750705832314522948339701425884706216340750840985335815819723223120223372728616496585143238901799901015764981343388711761291119187169344948576211576494654895174471762989208699632376869207452781489195400025035329792084355713718020155468747794240878629333542216709716349717323739675521963320512320421633035477320489994110820786672358005668051154429237998470969830240600209161129413912090009746726592372718239846458078216524356121246603724347870119405846979117333184539176617002886365834905094258532966368440400426394605654363215832770132719129382320256037203082451090609402424789757406325260942606359624831370962371202732327795282340283054069884320639316462159737133864789629984307227991286438661277509983897389605842619545444269153672541844253725352297669889538809424231151220111446558079898017976015661209787866491722111847804376156339868826893885876504008912053432765310411419205561103139903382273288238977046124037021732953688661881836893877481319686803273936528355321953743600200998335402519058803587816480207178469327809959599537067497566440892148332581506416520349367844633593612479351657244249487612268872121688704581243490861561011784875598050823435983187035614649869882956691891017730302388647086164314173453078530741163909077131422596255816951562503311971078833308079784946696393822231232494247521258529502959982198838011252917376378054925069748690203564309558760955734263896873638204385495991577892469626509579292881680462098426500034318230901778523581984855522231927524121679834250203627028142398306904027329038789600448931852254473664251626871653471246891595770379694156526913557666817221985768045195595178549520242227308671294961468452395015658983688907998998140248933639267648353877124183325420199828745916051313120510657236440009726165485689686080684912667466145316178083501444708386154443345123362302820705403666036305705766566442675887871624755089424492544972910682352827149418449369749781204951292345247563563885490659796177528899943951565089941327505928782380974245740039747275306303963731865712320191575138923677139419100003326776241901615151344502281903013031008976260643929138167003745355705275301198090577780843903652676977577376018915220071310493714017818842871730450709732621347065004845761864445592080934920436784493019743973888432487675022358274789745008598372826221074880203566586081677631272776606982802860198637360078662176854231870105513823833078626586536609752315877621451203404082342508325185796020748315228950231452112722773465922864914791150140509011320946607417623112834181630134609482851350885632378533338506664835901539162301550755667945302743004065506454051182432131041961066062299773678607701753808110829755340183975688340797493565954195979006227502918426954696418754331711015721154971498067742974542213291993976312995098326911583697832064478548906189860589446910111950967386921162464545097918731098762246295418632310735530614744995042614051819862833788307760787579542662537108060587723511554445537720283333220736488098002212283819841034124789697659228053816591688364889530221709103345014521727069855942627921242168588725933683291857803203465165163521104888932898357800280877626855871096801864605129170381798939959406070336314876412984308215462464634629452474047674576010931084963843262396175627837159145152611075137912660839629901821404524549237037168564342447974423679513337532816491417677578752035635471219975312716076928988185075293069063730865827296387958245137967629094678873765021105905479565636409171354732867541682935935343753143540505270067338048220019677574991472040014935982530043590026726613105774918708769579999005522076474427150600027880064049383265676823117493438877501645374590353137926117700440572578257048751940828890202947655654380918622854976083227389134436422966608967937120461150603701825055296487103219698693479086738618869579755371824273291781629687076662450020074505978636754375323013804876567864161959800711270036210650049896258721341719181958163782141914522062435189925944130761693246727210548813113214404331962769950063917070401853062455923211363863354633888794397936365491337275306079939629253233174571583082123935512923710054174721494274922371906087585880565226913522327947037400007596258207458191942727901578032683969052350440280308320820535169234008385481322885003966961462285767341570462414283588536405637611495702612897145496293757965515495187084541999379908902047306955906425333666751060911966350645899170384221857831104372547132834927694078050589712732548820700158559931051348174988247800022358161365353282477704188920804343053204190943612878715000486600769932905446687022676043461153368488599402664332306528674298087012000174322314988350522370869512870745227833978775027362804769715666434549863777898779635282223256987410142001175495396192718601034979440765693452979943439651887074922644896635297569619594660966469590058004598250813722687657578641764976031825927041043686961809930676379272197100135564110577277526442941233536857535249854447646935417979009186217677969644370239125369864851886660596835619476411764177249794262208011965304808739662997060613936481099139073232266192062429953287429776047466708734555347514498043075144261475524154490061728622883774552839286962826292796272758366629392647840704942368247696862183629512772228239149465532224169938637310850805550426191596158235496547885370213811895670249898574539075019454434256968583602572526965283218666057902362716532716183894458437598567438984993890420747120714935618679924943133485859639526601814837049908337338453293024769260631526602665714076681174546623205639171850796427221593573329754867839979149807152630484638741873662805460716315260421026119950198879669448917295558705857200866226412802265998995319737230914620501373404759524109827183387061762466933553582204343056687706628490214218716540996458546663555062704070031641060255993932810262562741381587889004702198845148965033625791590378297947474559428562945216273708427167852734217882897221108355983194994533821022779385469794441986550033527859675553249635222560770449723721549844510283472699132951564507677971142518930560328843645461820814706235033577034260761542779534537437200564287190081542703038008388309919372132061720703466831304688515164650454126599085653503134748324905504954512065495842088059181820115177692361218539190108694645715203408842690790528069450707657088851606951311689045547688350358135390475749337208705166896373818823250254210129590217822174054834740279720523496194600016268460519440847035174000607485370945626312189892341970865861658170095217556642031162816739631489664041588975140548926407288186936170379934719310960499335071278310476059282676231701243481257219206899303761102845871774248840308787954927291254254973210207537549539129478806962070496527233028305575972785821017062258347996375178016928870067849994378011884095728480860001454643474787534284597614815411564452733057531159501957780450695927817822765622866839554817740665401162147081196744790070508630071101703258768582306693003542276222535767308294437285975673252302560879102570207379995163608428417692223687868785004077010039180114627427463905053054610496917100437244153477642526300935621553368259206357558101588184095857241552366854934138912977529914183230499502554735536019418180389675585835202916674359248770106567641343273660207573220506888755047587681368881935735423542360617692571908763861604617650584186052959868010708425705824510435593403900884271823123027865549406300969814215423881016779248386072810417225883617881661621760475675488477682559960983949938020998170232879641656862757742366158931651618268002756793945625219863056277317882400145231987904641320928998791557846104258433579890665039822511239812721016923840566532183873307870179041721671805545930661022666907845136172480785525401984440483022927181382425613872319059397806246473981014448311286521952645766599448831586984398132191323020768148057926665997057165600915821944327965478977018027442023228137527729786237124192027189375373587828935334899782116776597979064565887868351924019267039289660120905990419098939575862090044373751558635777820045462116907211649070259448512773184227282677582966027842910560864258969615533118923055918113448670731112333062663044270449995970089886310205255389897853457995868726067015766385895093899300102289713157271903863263324580974657561556373331511113103513699890279071947777926047891345086529638469789168376407803013336915166765476869690862230080845193644717315979787583136141379607423311079406974707408913642485309568873049924279061489797009900586149441872265889894459815352844281104223550208616744818523001957468898733598606312175280996894110500280910363191175859164786320879249551446439264653639565100189943211758512853215041283387623754736213081445452822046243983752545943679839044377674115876859595678643995969449243101716541339783557541145506627537207985460165360638231132041781429347176228346350550431714925536296231017690839195566809963605878762527536461956325116763205686695200745598563753591272583209219668627087552321494094157643608538686616843912699337470856327827368900459002965725120398519753582594261379698750750473513913167413962079047503085592886200421605348749785739392491209783697659120445391912057623742868649035928624485344384830679189572922910711750835622818592627121078967914899794737273736252390508762758629966444732780527094111656071439843891914639718696573363170955358301514109233744247705124309792841448828155774711994378189290652664737135823001718145640318120188377049089545236729621432717157081595938854351358487804750436420881824140906777819009385608881863945681981119505760505896580168519910317947682577343931421198497211527338184489418817158611367682437026929569211740521381006392219204438402122333653325092099965085565204190455815637512497239659414908970579194772957495664743702608821990492363433005876029264996710480321026441461878231112085445394034181376364229699469607270020363107304071431469474408219610500649212659120118086166720742266457070098099847046862146219826050165534528658152925018598121394206352444421322078637925936503293868459393370139942149390840746732892199401933592808615362689206244522816677889377134027684920340977520081292990454768190790336018797485636995495532473383942405752115614521375649826404115019346623590147415355275811861213877569528656505393255095202851865704061935066982018950544136503616443977278427761313289969295601876561996490078655148141785932264727121319883033288063172554442438162196479869810615600455216745036566118944425294095788444495136041034027508904894998913947620290580695549847540442685116202173804006344176260157660380016079784520953963473130323044763952795362085050123398413586170982738360068562296022161972760649559252671936785330087357266203425796475931560150810086078121263551322806930224161033246926577950214074427546588353318560187190937326389361134323395713269414556353267710334950550226554492429218349781812450001918666151446233062640502365412198600577198228283936163097134424309961254239116495896143211393153979608590730715779495750287223538002517167940482906991001259622063925521844827873288863421955631089468446881292772829084565303911386813781321063924365333125396444153882936330835760314509410251424534231880124656407338190895189790984520483587433204124104352349316148389712551925677882014908779719311723779825134139887901088607896990190071077998016617016169837864696747969140038478648011846896854281638374950438516042965590786606511934225878413981496269144515722007290723957384652135926104603147705609074018618032128973436432754352785977931109120358036028798330551414874630091209975214602176967175579726617178826208876241320475742969538927061062207219276725508004481962598314677692508065423848976829167741198269420068598877722620035384589158230699894552561297316345986035625906657295730425200672703709005805123079520081920163340541317910745959118996608395576646217813129258525297577270286194679503162715657868746208499243721572651744804868455913987252852458533889089599504588139481430382803890870523894486642137663918691586951739168361749100207899374917615468545765602316653507888736650674842123719635410679288773749773797826272997309950660077159864659932061945062854525408147600999963757762839593345449006218344276723638791121898795013058555843776248938635252598953806474774811037738701287969435826399484693681858952396956246999778610473046562135964793059941690132027823293179016960834678519574107041094485497247374480173330324798472769922603560333071402016821086978452272286527392191962851221237012041581326506506356786235599903179966464280350768284110636374275298423742160909337805850135692526640520839654403339581470063264947505072366283483224280322689496091432714796715697389524730100872322794908513232444179381226760278230353857557310725254973133920614089946161143295137011185011118188266313442272284649671306489099931686025246130238689600232336804322215310718979540417270850786192580605874676409525950160349512517861267165959539596986369996778561683597409765522478237989783879955953971864940011119048042106956881495639180435074343847271585038742972818806079059952248384607630287049099622762012377860673722166104142735584061324993254995889227155194573249179527279874028698626813619915294412929374385233588702581828601631398769778075815107446832274838020199317466111114495150527308763407549815385534370439204360296571855372788428329175247647317475949096689831038184803022549736338440977037473595028091647156185290854637438335356637967711959276302455404738507848863419317246603746409311090663133912351993873652882139741557049512827597483936588500920786632674054360366215601932970270602056354276794606024560171666251996642807430493042631255477348501941377413543351023064852910302427286144059669810496317053043114123524035321566110919756226985086370650725396352118049504590342491976851111354154064568355063723552825922449213997192827041097949346418153472685898484531996808203639489278099971120483981372527871839729634356855348610755268868686793819737979537287347100570083126997090544514420523123973393464324604321406023094794237242360233827897245345813800959016647141177510712321125895014363663247273956519860361303109847205288114862732573696407339221105587790058568878701354536929875152416519973297546838687963026561150647145196730633080390888741093009548549151994038581634448495797079832727492459193657649677219420552033342377668623200519433448141330489523347543228881342787410472083915326906466675164134191841434701159696687994604021358845733794504457447935496108533845421440361208823609159050841129174298628729651116640072538789206410594499767505992480938719360854822977906384606672621328193983282916687984770205401210332110066820565078757893078691812438431381543090921363446779750690890420366241563756034204753037674755033295096489916399760523446134600232774350384882735571250419587470528917414357494603220707512006752852872202046078050373747693369706613901544842529499600568526434951167554200057721236300442367002591056176488310235012712993399042921109675894368983691709838328506584488999043434723409786709240521034949120474304071205760159805341805882720276183998376433816800179766101223325144400487628441707353721081316495750536602614277174868233188753389480876784747108847806998196621036492509778479678130042554097729354207473421531885304678969755045336532524759091524272827837724359263329298318384997276572411733110216441420476127818567336719778116883319843744169413499776689328072968305280930862488293194501516638553830759270702616894538785835941095595348170795133734459484398658098326202938729905689957352247001506662839211495255421189922345944329195231557062998142537797246162977610001460112733488178515473327743570029134348184572783683946503345685735989788841940331926399644793284663613051322097570711407006869631371728551178076868117739252144966089696382066920059510644122001746706760784072016094187762719362358611416568221612070697108887373233299750052315416443244440348479173197598095829995925465363186142947973517139183176499815950770543239759764349160250416754263858866454456902799148406916727529396769181552985553026542491167878458816988381211571424880392852020734099025820315873951041909693791967422274326729355084143841825193577687046327999037452610684368250625658373771454659610268473651395287151459442693913430461695544964505319515371216442708762858031073313970067794630745104651739794996370417231047841417109101030734369978771022386063337546994242351601617810245318009490228806395622435736798859321906977111366454945209445424056775475669308038669006223292839174259762845290359366082494481963608881949189793938843549143346518337548564109569622354712747086836758263702151461339364801573022515808037111083200596003896040687122058260887151530147147078366584478425505674310314385308502752236429086604207482257031427467867193507896479134819996777405686246947646691358953423418149776025512433657701479942440519457247766850713359048059859632529321133301109269711946946663479705052882402063476462405109293633664004516515249715451725606908394512238068484779946588105852971846903572645316562838115663230932877127864901835954685187655014852843627635012839234722483373171967974400870140821332036992865536149748157951089318509104538600945298709257102130359542459977898705524539724072527422485620184284108141246813642086885513709561537861458602156254833903992962925257300678820824687316420399099281895977954613974103546625699953345243603228804789179326416877259059839832197897536253858643201372219058135816485924324972229514260523090994774938926707622808148386078323032713554105274496718195461600386610373774268085308595223481804589824218733583531465299944767684477865930093940327675209966377357055059415730287056951670035383038226121505733991333408134494575424757421880760897545225559985832203092373975620694128116556427879081844978664896393762825316936507101845939681079130407039273950656279224329195765496524262348179468758175749105702762748879379540519937508261445025640553666077514102724146640805501703524743779450696380122853466199484430768376405451513341933586780088846576209534351874418916032642527088519567241826748730695494794434035866536224361811441594661095469710676220675516930642237523168254847098474476581070588035200032638961225359845433591130877115692665776671078840128708139525341647947613249557945475372972039091786993480145810698785269096873984937280222572162365998554681899379136031526776691783375580984131292056158441305137035407090651373300849152254003918329811385457004060210086080489530920787025336031975560000036866213329776024077427293349899459900450618894185978809131981951247345934779633638355453831533831496091189793676318709738571811835423660223301237519428135045050740636377218007538175613997690646030266131976942623409892132270594681444019304687342726710129601146291909467857278295355986951416005067247386252510781248497475523924268791174643555101492615071664548733785904291220055691355363602958192688896488415190498161905927555349171829549202074684428471797581628492528460101582036169255228197874750267872543030472094771148253334230547403447056760160939125946424482569996710527908755827324952108250489134251131535669493829414245657559200741202062056609967340547628040850482818603875885657871764338872684218429131333360764473749262082525570799479815777288999502852422011144197578455251081673066327198777837477571609086250207409588385277736309915349709445443635275943265228580797443036663670710849814062276221036137579203128848457361854468858634529427387034739084281137417462941057698439267725659181945025515101454206973096988140483258688625808674744771318484661659096302605555568764490799947671885107024862523152501861201275627494805144117107082499102363498544837423023494234991452324817930438282509436492443961061363276961556740778298722156700753838580388858603703689001645358360607605270890430196068296491380606789274613113175282574750101069572108518742990339782851325558381574328550619408375500870286491657385917580393302023995518839309752969545164995856093736117855154604024023391061183512393166332586716469156965516259887408088216051583666657185334036970982063090686520778425632878509720506810719482600322658764872480021604367076455836085193505349015658741565090244673655651207726334218156738295886182808389304648513981284478382673567553835617131247511698592455183865491138204166563833758030054733308930036284916552617075748339322270303946934235957785928816751743243844053473552782067690529876688174729270099176222100849698748337754778419452935276680117446239554405847840065499242593766459507789168778423097576241988969138913680751903557305295038211989361379066032381859250079661965902183464704439631478646021299767040098168008271780123289594366418618815707328089384942245205836810146202059119786384504416808056474289828255115490611973351473590705596323701774971692156406754830793285036680371717882694448164799833113102246127741641654412934055425315111937143763725773956158499420845148334740461962526487504253805204317786467456735889563653212535819603915084004471801717450491154113535786710591953768644449664487245613505882377437731309946346231234770977577911873044415624585695548069089866076912596129693738081478497519805229711967739388182036675446822737783407997647062298554780940425821510868718121543628265467929487639629469846852535391570062549313493446871465411009070608559709688437158057521883632639288939349070505761735093790561104519168425298276828309554745582179294520482810746756150324819574601175329651504988843022500654965990080116407047243743954917103675038393915957610141520153233955062246947292936856115251828501067831719127619672778978492412381734782311753099604851059132121776571436081365482923787077898166681404082022301454373168969049580948859901371545082366980806489456369334557744571763484549100779625472956855299897137367116038118156361572434345134420434002880149513431685442525509280153901239134336730782081209975189576254437741609407843161171107106240354301246749109157984290143881055229886940536295075939870782941056183259056548294050364548597716796778812837897925338453019479761608697250202032310820683774243550019502715373054255194078168285173095238393009127339490729455489471647305074774682747737694686254806987792575087669891872726363350763928693217972124883122795055954409093515420426119883354882568229507369348914777991925828237263519877574932360459163746358670191692924207962554521606907688980833486154492120258570379830686188924773564262218360391824906720443248411359704881062979318182520609990963986261785843880943662454345310824688758467495810180377033499486044084940602691512106561445377926875944969193664608234345704665690813429312173250713137737408037987048850125661659828335670427620847221856749612524707225618154376356233372813477022159690727572827534262713696864243666468863597885103973753592069068255715348868286188279522377223765195813692933547449698289816914798750036607824234278467591798599934273709957253269025432681889818917679107358785799999097606023511500250392537864746535748557295618536755392661403924749087077708240747970241273011436864397989375899391016669903606109311813762994824429113622995635294426629550159773558623688740450570704173215366949157341790629606869181832911474379010485853802599135092052370632179964861863807809904292129559978590166949376616825840093862952501931368880600417218994649922361009151420602606958581003398218264599708433290650736798289248457364172132777889952927490301908852330530824978975719930901212566599088089144225861255632379371369237934369933905472856490273669295523177001358651342446965451624940423921485330032720983916882355428581159338769852571146360550743077090250399130130584188364308427957228943210163815669567154649258098102808769524945409383771942237104718458600065394405100458448200400431197227612815459168881180822664210088128925046877497386627934610743211997748438738942513161714766828929788290036549070820576042548380885916021830112960819668768373066996232396147792075636406166811772208262412987904131776612940136794723010237753990609906707196087042663946635559817476493610380570085135402583021976238055746960606508926714923342845096733006366587513759243140991568902644239170501088285139094967267372734549528460825942042497378594276170132021131133130890820553714127169751040124082201066297154022822647596403755127692776321537965741239302250840409740799275535004998903537752760540349271109455707921292579664263435593709972245065434909599350539213924757846696679498372719829876757363436151368780289145567682159682390552116245089144709505282072509562488499370735658359021038118259678962556176485349870811208301762720257051188496696185843824358402221556193037700783774305260065562342730432327561831504951604662589787860795914936183552020526214845687598675409990120960531129282965928583506020257706716336677043044909002647185030187182010488099408552467026914330483130833681447221449437189118090129966498718457714896694838280040125978518563751211074543432240555588181911924290621077360910215936515883672237601340590849611206431995364468370123788522715836448686645763404594477712491085895406848688254559369780870730281710465559888184842260160408543317764014708778032092123336793950915318752823143448193281483271525195438571624880658010259841110561708333470731812265649214522651252333353540552781767971367536344669292589788219079404792065488260449601245512701405867887209993200930370005426652288578088192929678950425052842685475888078312792040129095295602899203293777497945998015758217039001455177284402968453253287820188944583182989654058482253443264395198736018356925934873680849147214918255160684123913699598615237624682760732912844992606258679842777892968427892208032647152498044338528196061280572033929086834772659787321802552831922039600611734829516879295797817901044650946944980114924050489190152905500487283578954511024485622300439836298080920820549142251698731720852350370198078580503878103990142010932733985300550945844218797699134708979585384972730455544148811683236940728901539623079133764093187416014153058023327367604344423194537238753886397172310556791763644039635290240765560451123139449170430977073747859738788787017592593237722369044257909712761343284012613962200114511747628036930067239094870800678976118747029925968709251925323813032620109238850412599970149151100198103926923544064318060465843868252517867370199128463187754403679078302181506046469799988221156182613469889353240401723026388870028994323527089392180762911167158004450196341087255844749895804861835972904701388807286497703604563513414002074993626558787413635686820016860896206438077994090583258219256941607114857158372735624623856773198042008800899654951847310879442742045230472526460117755413268579524066382852891613174355766544875965304312909825513215833743096193834460729586807545508183583121618888698256447365129397572367894469527148138328092575021679769263910587964387198145128100361189413188266466644159128737969344871125020206393047652869615044604683815644112713434278714886139610481785536595833286520040361795895501002508391676346305664772862552182170063766125103487799797763992366744340238746473188675466891959206432535166054068817329000346277993652847878121328818629178516233986606926035684476164363921244054000641595475344296428970939443135798332010164032159608650494159822879346060117640969242571977720508678273724386625020008147416383114884459569962969546127616158493710246256612246310434003565375880800561447840636284424093684140301203098226905595139541511390509680379538350493732235718908110104725075888781285477868861559470861610065546917629927767706290406319327636047166569760346805997426139899071477585608055401603483710485765366482666444487728362697770465604658306219141066534930873427184622303797939103858026791936181500024197215882009528356393439104223558316728098393388130137886205014367472676531543172973198991976843517638462697056052841192218844246023353482208828991364712548312978634828454834943105801962437548344158022830226892451485162340402282645819983352094348619419413935373720926098223791261635037692987559309942814154903864067404292687781982022434436078496615633356559663012729998387290807383288668863175079689305869506378950652249283294224011739723231589608576026967615653626287290042549736980894459860740505452547403119215950913193771673129517526677142864020968227878058495363368409864059372402218762330616322290445136043049293354424710297926180035326084435945282812917236521406033771742638648215323346781020362332621435734590177885421897723814012618672546209696471524895442954273841757483355934350510457359754895755219257604131392619052485073870691991329489787068161628397784445154134864586920123265049763349059408091334151451060630568879610363614492174991769072047219073478198188347623103255281421796384958301312433220418379071130780454772253609576578598194890885108320377496693921537566441636422967131464119759684215384633696129626135459167023343144234621165799840875006578184424847902803226013952917223235525583656359926253250349044896139656678788887840403311608222915722919813401296707704883963574149132506336604787344370111328139154389376642068400969678073162922477094645948506519420356058709316830014154145209323404893088857586242893111195922216421639414571398134812447435195168362175975897252969905161810041528282724299978418105941650974518765566750750641998556266838893551163660423039944091122413780993200532626587845305515870060604951273495046506449604040318009881798745940144186643757045394058457732535019937827388156435907310644264434460954865039622747892130077232172799925098562382302587534381185916801665191861851499104015005769358223738224113537401875403154218551836925394226946831723994976285354713791858396190504491354824391586037256216746275882135734762148012578087169768521131317839681132161434511894671219850534858274329736970849382773101221697503952634122220861711824919732327965934132472661021986487827503092871826762738964092314862325626289874755774035203927625113345808858311621454459543443612813538723558586182596874651345991157363266582224047416930753889184181393506989918526485730290028219608672856949112108879935448057412919464186645000890562177213612842928078976781927146048734927773920215934315917316985047349915586858199270230730825435978685109852868343985657544884110632353281193260819897371127734834375710138319011795302873377655485852082492218405124083373565569612005594642254908096036607395561734804884526213155352961911905338367342129405786717769355559130561345522499227702894417204067751403893364581425990182701009859230278045423685350358158327707919112163734283360887239586786879045858558085007986490354407751516793030259778574775337027936876109896344646005719297656395670666625234105815627324281042764987838604111413845607826089945831986256941364633245853935289321428049315026641238379840902027104577816241197140796990336661015754056769445811985550093324152880038736083802793431224452665843831994011634643128287535540529829233571429343726112353992506605585728995654841908474363918401558123898323459050058071327465508692357896031540398227670656324951204626332988404022990414101279562960171521686689823657801587990622698784668750194203199225732020588948892703316806908528918454255267231703777424459510458122504906321868347535622649945464773055040623826462365521937195752253042723054744770091856399537152126683429806013826132031778879786914891395113233641816414603785166468247299985813937748971275880495233818131142302398635774239248169675128740839713169369051810491828975372963089364264548962872860938037273643386902869482690022177439158198346405922066445734769039433897532982206837559062795936944949921426866667319273065217564214382533607313555636396636597643323652680515678169709709411295044452085924268268476074647182389574517144977658990001714264843483572780174923765060853862932182151943255924980254622557556514098626230390291809229094942101107794622749836839350128182397938956266787572762792225868568730279102408707989643552802603816469930902533030084639300036903446792595889476050452365848979625433225980708957549345837448935636940009915433440374778239886221028446950453252731130550296657043545077952067600062300217011542229777667131061184643387925507806178943621457586683040360516934816519003105203698743143094902817885759539434262657063116296625615156093049537778379746686576227410529249995072538894464119215678627243265913148557683572012695741751890808358718125505836489658736757736487158818709992317329257134834418801131634874783421894263007845435693190130396746468317497583545514443137190587108588408605933591198756059131308949687970666444196423572482980756662866935948746007567854965935182160686044189971847406982057640355377381752553962052770821683021429177954063338632734822396143315459793868687009386650028476878682881399847570437214897382664587575222104603157680312177888645037102582798609652348633628470935669420904166514127400880190242617704058863254380036233373715034222793757406818597508229389976880551876831836604927778249162880217842863902421290887043477581436192290239767153074478107281008165668262662806490525680178958766811138874843846596013018533564756443721531053711210126785385608114736166050219492526272044560829834207562160391366242537701323003700228468396123193527150891664509261696517881108034892950838419251306532608574807771668876369811253696308403215230808148242692332710447128627122034077412107500099662746667726645113588134017783536302160176647534177449154091406627195695453113004436996471795566746358603777049785318642427642945379082358415943487207101261371955880337051409917014825990566473842785699737236465930794065214565234808579484381285961778422741503789904439459449296596596184963683076015854818837598395802235410747683803476269754923274816359008233003245119872561800423418432738540629239256564624930786814445341507231351649082557599783815989274877617326612232713418065466541744210369917810257776143065966611515193155770834707716514247123251946873388012468392649864218813664493553493158768006314997979677276804498884756256374892689741306935592460426392265239369105585401513138676710763498001436468509175020551032077308874139248735234617140871320436923948164474656740255684317266600686046490012968076823461266244915039646973879597530343403365413687365230031579788941584218272067547911182363292192168649829798879719026525369262257221066085277592859838845572939841847456300576350967684183470054905945218205809566586566644916582931860745234406836013616423538165634492885325533528355822622789239236167337565531368183611423146363620072599149977553952968037176413403508740017478372388566899002101635262415052296025805496477179457096428210997448948571829521102762128868697478280587758423198349296338427906363998665330925476346294964983203530813609232482397553140102698870123936473280509528061130808073575368040617439850993158910936947336912689541520182591604848297710643505684920074434472020632203130803866719942562650554511270150766496949112698683281632384352332996223760312544504686716138754803779082601803544779196793830276738993541942136295939731292727708286363532268867668153011175965252771554725643816186982544066313459442845170391350090002288962629689439680831448534376794097344466612161588093135609297033012486872912354797224916905535063686054029688726511765190351337788631271866665233572420745784549899965815234323321996876167100909299671545517844098262379013695167740683709102457961733512742194184118720460410200122833919698154695731662503146126052940050182013021920461371587413496574891850516260770640776279569046111767853405108932123590322667888556067090409300426992881425236092033016181915179925398754080837444590883605227674384042702443383696265169945175969363767187664915049913325316248548831676467647247163719713452915689764558007539333273577755331133180052468271113181633816931222291463110408176907769914565442658420933003887539894192907331695364637911553835545051412460587750841475239879146959363672836475462049227631959273167585179489771794585340600499823844878794641235448646112918590080424792833144085256710616549439084763467046738664223574652692128017187998340216156828859006392793114939537175006108859136213660994518370565784144617988399359550735220753055825255475819020336168854587175616381196429844229115875871500450432730672961900422543707942000508589448019761153139572387839662633610385069503538256341118484478215882843333890385433782786270359795165697722023653288305059310967643102656477992179149233301444920308599127007985165771436080087927187514365456986882714406491219179328806376559174776002360796038299933848193449415921552880904666671744632301402253402153655996027473386874177962559730565854237921687539544572327341988142340681699119709616835365012701158216468929095034083045037662763988853423927421914601904314513428185379763665153526523776322164276256503319824184716167948722486655245486697418355169547005725071500165708626336825280432414451361281250939394337344529242773803026298397685215600850824661517540759998713691534823546728980026222572136796476647875056440041928109271711857821500342404416484583242561118361891102722753497120865847163489621792178432019103419129076464884451675112891003085633413439288945131654062973213778718353259017259221103608932757516631873966508529153252915973473198312571430754305158529602117355944893012290330489212928091641453147168327310446555818221510041330472712845564853401557793235783206941873119742145019439429394828042276510553576129680376921394552038790789732222356438440715341124421574813953722636479575191316423443358080109954097078912875978158039859684517559822245742027205226784081917573458342284047353459867667929979685765260669284188476858955744428503329378612949331617547462722204335149648894318242739312547792236986136257233666160305664246042054305118230709263553412617321213378416316027221117262293516402013392513469130642634781503167802917058136611583646678070870219077554423632182651846120957969157605209784615842299028510888851458533518059164678696851589499100591034644426646428555112648951944063333770897934057664859903157187648303649539205525386557590873432945501523290141780087053335116399704478640461869168905355512257704732062425088699448461588994016906822515323792887271830973959512285917025978150439048176007076565995305592869337050182414369805649683019958017482920753403353231364717656460475969333237651032744931241556490461334816627298259123509652933485471977262980507992487218474303262583789443583928376520862610860070586226486917293433440906510060962095437521739252513813367157780763682273387611118840466246955316447318947235944829117900432596592183736728176593439383185210834421372984348487885385709355769572681647110622716694606461996963061875505136537093858186364797954143022683759885598338013972000917344643595013870110870749250620133282432386846619044816318775083597811527408776390346337187370332508148620452966141060754891510963976057537689846042287742705548091536339452048855870499571883844189583480859018581459265332178478925649179616037091622343697090960133843965790224358723778500355375432781859648731470617604896816886993905918411133333838068943098288738182493340949991096171369610683263904644571328204995665499793724114822791154153064848272555768258269326715101377421525960548158526259680385441513889131554802853272192614080185541122232847725740914979494088087607047768736560749634123242043291398829896648276825856715219199041221540292275167463100652768725192389232584730142391022063583712740203241087634316016376156411408372810427832411954989509245842612672058447722921681707787242413098888281408003971990498235050213223496344978872894759638636902386747268835016079427679708112844555399343978906871422680629683203110161409484899862735186579573035739009779752325692780962423910667469660545130830143801650522345870140527314075462798198095126892385513709094777725664625724417725127024816879503177260247993511643640968484434516322707273399274570005669508483558571544870345853855477271746147573840288484224986226644251510380538756291423397822449894023932449174604356513874378723016602599644766816401569282712049502348116314366141704822108637102618441217251221859671387977882509065836770892743575561653937375927413794585535994464567729229917545485782157285143117154931322395732036023387941276683636002325039515664045780574320814112699883066287239819893713965861997363006741574252146745198558151193733918580016540559745510239532183980211333647066143531226331846784526616660061515681758333940010078283267074930149732842261582139127134052534904545910493343313872350791726921935963834571054984658465772982557795057094145532427896721206746533531475755135901139665329598508011654712647630448524464097463270225141982136145744708766462438715657558988664777885260213834496862484304517858485018129122038053461824983664224852076180068689470963169899001213121725179398981398584911735198583680913875536169621774949561110462070942722056052423341574893275044784496551003076780575721044171297467257911008701370925577538955991962055986053792936133200606667146875132887779594086090527141790492437638356635972711550313615990443039523378471267305164183506656998816373175879934989906141070773311689950836139205793814100277707540648953433570830932028425336130264897654429563346416197139467227781419196579617601918529981216400205354393197637856749310350097438944858247837792741858498820444555398891208489649434235014619189161536402137067789783024561498111991368371295801627238349389472089232220702994989236657843680497365466106801423672676156111002493372919241733269516853898759450762384042392406089270659476887217171000497287861127192054369590170862083496032451562351127841279175017853536485805523784141513769651368701381985424141287060459206614600279079385631399528452770770227672562137538210598295875841492932668650928474704463548556582796491708366219507472400707999417678459981648121352283370882187170668020924835931688270995514646487871725756882076829053887208472286677026226105675529305024673132516373351776132872627018989625046865427950986650220668875489644023234187557114602535988491466840366432574781415695305138706626065637374988585496159668618741080723139474564962102190350065904957378888949451037728762716421057256627520315388266570136021068444341080961839740433706492104799034889356352514648976399666140990551830035909278300502873375927383214191750360284021926588839674801308702670465478381112223946065798508409392015451779101560325190640137829232370258625675884072913427088182129629746963117442902224994328792232234660416365119479401133577117666850030309752808251274581019266799832224947031686699623987736573299314030056451837200574241445716549818345035711083480335529202193453842800097021741732832460156375628182476324755988630584679583229534529322658894959485089687520576615598155859726272026429337309499097397956490702891389239996945540128531588628072776368747405136261921989355283607725646773422082747244153970015841148266344846512557004298259644031239368909983220347399612748770935406664881010792634847014568753034556247345690097272671993645967783887247837922624692474470967969884081107068300046806747555214901319148818616607692334136616953413240344089650671059109330367974352756373366744927126285297865297667174599917568779792616692696438860611532012505406063566644415716565005516027130588465680713298192413367805407667837750368989782360068941511428589381458020665050186281288865508598178789231451111437574550309225899859395758599931554985087793575474100727474165247096296298464111390213646329188995583893736965136200658739977736681242674704493806056423295919164161348733916942848594873827086244611480831450267363937491160948239796038238036093833942198660382535186969298086498114540489991440416845749986923156056575756991386155344287880442834076424023494184126425607058635074432434318622903041423867652915142232792250582585125984509015935661236571826356316495967874762314432457578114449980755491869008784750533260769497348092101874886215247794285599882673537447793051398336594331234951142095753518587579590897532689372514054594199925529572072678378032193117878036374716502105574546980048682121781819154162189032157196693612371582994329525574205287933295767080264585069813662117568470782528368573636723619989021555296596176070992485288865227961377868459360672042868091552444829373199718839527139625889672317663899351163919045600583718062929615500688748141683313438523541530978710314101290996271158928044748317690795901433661942465263779209408463693159211868063748112952599304530459234915650608774564458890860116945336972404930280724214345717528275370697566463447956371197424679362737382237465762961301551951963813947539501717768971554184312859948848049748175461214230842435367044863053991045572886773632397501536170718931909705255378587191399311223763532403023575895573354958887175319821905141863622165071075134098188082240115563040249812508293467487819022955181480909955775416053607227004330704261842930375976925468626201914517216385814960856997535363806620500800838485026451580694475461368141166958221929535031874520495550210131510394621707538062740513259386425848775920450653147971575905971945084712576852183846756805590699275984922500047811392983961499536921533350698569262095236176617955099512432012055233780052829949527945157412112128815334408719718173775623778748064174335766443378835800408368003312610764562774153455114005055747888883074610961423947383757841226686406831335594777789772228969863242159334419682154249118444019703344563821841418218184702720619832892773974596524227319863321929566332832749912664122174652928716457744380853060430357196788960195233488783802166131909648340739820311534942944222940062102277204862309115625011527788267890013535461898097484350658237039149770290704722470365977350418002468220081756470615972032764942249591382192834211766643545604378126366243353637709689984497838081936655097994787303048913760821878778891785014748628435172096100190737932382837068394425938455983514090037631445815623656795546804164183309222913300453327644935427046187733668743094051283774551232712708715712857896682269370202648996027238735779044357432138302775831624363622421471720717119727836217893255261441760478951480314856942818214520087648891652454447643205972253378997672138602555423842113791542004759275012321228941329427079695717647147199779072277654335978438484235065556827485502398288939527866036183938522961328011770933682101449405622530294783344730686219662508030134672370113891520531694991054423683467909228816952352057516671347482356172895067111856014753004586690034538209479734130279022829378920904535954532103983035408285013719459855631035517887426976496608210669058529623949830216618985744449531009076303982190773988148252952935148765785993489100168459617556600131992018741878203239759308796249200964665740524154371270620336336169203096010463194619337728159882911630972518714345553560316883371708178364427211839307091718024467608957250844309879000513913523546413513731755249190729966762810802066708622779011817350409253553539982021461314225090614689627810723712806007441476497892521904376935156991277755294800063917707612044867237287452862237479965793459645808086673564341447481115903956792686398631855451779009361371976706684485848959539639761924398779123451816089542232405356702673108752356704638823504844739716231897534880028420786855201993233972236140611076956923309919960132603747716825743431989755601479243577440929475897075681270833231015671826875197306582010097479778721243534772867584411646779938145751341861494447676824451988850548222723563298498254420434661062096845927262354927917731457313361663563664778074135024324221117549646067924532211398536918896441619472820624934998405574931364578890265208386322207347966971692204842173176618290499225290381760320972627015198938544315069631477504368606331130116868200905926348408783989942373839400960640608729074556346077228373674974923898936100800526196993839289610771789604967480310843992576344283897724122591919145455209672513933055217183627529726931816628341984083430273976410407661707511904938592302604762409285815118241716610368860756879487072088443637349373497487506532526032614035321574613291160076844475505255941551188912821297330269589036911272756863528134553492343321054761758881961034621160890689053761541395685092205019636323761607123004627314200020102487281193157162788788965601411749074554607550098815440352314573310373088252736640389432015326775887366564537785675812022726748244636266682356841275690268072534474209305665181815974706542317919393786552102642813163327458862240091239633733458042253321080640785707842568293002389056833223650679636556404772278260879785005327703180695188615031499014209088111214466922813613975775021450469010563549970922308707731031269005330339529884129847487257006809089742708470605047740979645293957919054177274196887632753630192710589244418065471091387693687510935830862975192000135278982053506009063576958610541883203780830777597440245070155662857092771494463129591649211041891971903703783781142894722530940945407523534779808548153887727041100755645041925229294997039973719746710214178865467877350997674324999873766501787317725596205666156612542696211441614920481783544764932976213125462267109928575709048927596376404062482784735607729376610688181466161747647914858359712372030379574446553165968780509220828657501479103955260045165268015604723217611378717317326771805409755027886448713764740773404761954360085549646749976845013784521248819672588073778703116603707335129793683587175858397129198759538706300356790179462006835277600372487616920822104868740861102939717945774866444235763636178587551882450616534923709732806945805231367307849771157820363859319362453011271775941147133138086646746755410971806202128630378445804463602173582096666611384185842668041261510986809532996674184947455124201013300821622145066800620978497270906243275666750578159864550373303619917595427222908439280308416883719865096916584341727580892374131809471921638660561694223653924324107228437222032076300396737219849556920137908515218876838971288877348264687923611502231416420819082553311539834594367380097095351224567125406210533297288889492243095047750946755288177207535122343011605706926946450216509922942766858977451410195332069583887957170600634951204160952229613417950945406252767462057663713371994666558802646391559321717060660304242921590751643818394017860852189844534563466125860193382839506668390944202161168217701468474593601306338068735087269427524082313460424628596877186199191594755583901463754349397177362128801262486668108127396863053749530203620207561592362351556463105146086896388584106999174848618838309590874012924568832660486480832532253435655491924084601127650198507414800993176985398052342912738098868953319815083908523452518223981910785061434664005068167693679755517760971904725825078028223279667185527646499826752363336002154932228434312644962665303271570927321483132905677828875050568651043213168467304063142421998548228301468068871034227020908626994552651989423873426307463364912170415851047178550880628337024335988322678113397930475197774793375528095646333652569224631916708466869147108632140375811440602030659684626257907334956703654446075347528558713808308775295184814336598480524905040043103018445300188305813889036450367993963362212383327322926868635055800538201250412011277337147319253505379794463502487028071094562634020126433215667160252036639275903709406154504290091713241728953932373165619060097701228603737891654246522994922418041335850449130947227660033730465283335924088299161762932941214198285781747702598387846412003045300996456900458147525966889969130970216876067413185348988263513360503907797147506089715386617117702144130362696394311624893272121057001502246898495223650339477003817071685314328269713520523274340735836200562934120690673014205217541152272551079519191034083049114526299480347174669754889809691098466962652707256498078629532327889409389783149954772693794770875873184232843443778667454877934535967920608374787639938644869415229308427568149900265258257191573986905811115244041846168488243433686647655023313852637623806889976567409034116240969246289426506365509552776874600721546951750896935532292076635846075998023173018744847462349003934293591383143325996116256711620588373785607531319709936236748460894432233963290246202739179376912874699942280911283684943074797892489843322216913465238360349426566741578568188560061926886129489021269496044052873062886739885490502635440948762382737266256525172139151382942161147584563876267991870968318911087524105103829125955073173070758670291368777346349484443182929294272316919974899725186717706263849639018331925398284237990875826225357586845699149337219381704267898856964068428526739341236492523114372642080017909085936120760130578031826727831423172944401065081047406477379446457733534377577240245086522067804732568777580877866143484277056328924588197606308251385155431317970231844523280799887043455112836690941978693220729557704647447650021137627047073383495428239251336249826681473967485980168010886272414220886418640113049295666037598529743329578117359671910104365464106879976807309877927017028388709159148159223652816415322619602115116016244466341530343904056215558302843418222641349050027327554137573586715858455289051731742858558517805153257793147461563522832834328819239349996732059172465481087411405989197145628026085600682198118195201926585672227429909469201014115203625685530833570639436471283245759991334566970260591601502758736757023476726119695323404567295558685483082533335676142074046774057618954697298539645860923515202456938479771425706991290447238066727158244061248107726440438239940033198580372144297510406896604310221276655294568778605417608009661119609627752545896739329211526378958780008831430129701508883108271963284252329978792407337848391767733591901493141021994249204858818900386930017923325983192031181680738088479814447742860166997502198721393055991259582652274447247248636813755969295274629138021957918813783674170892743020155569014977048639884046619978909204327529681302685025586599773556229825386671203060153736551269151018044307878677581874672119257225979788967333727988178838151612502724198513091731866802328633489586131133327102411252536485043492607694330405423106090778212837071732368059458086719128139334890384888169180165755242949207506489941293523222973968219005563964857714566556888379658848795344540378029964322054594304357771199655849831618070182815038909482868540607581708781813283834978064201512409645694081934554848393100228586936060553405985042362607177693232481184345998961912690391052048215639132346054633410610674847258182106031993008548079942407271053762457748058717955339632579410094015401414798102505999062909204731283153954434731298042685893584655466744846890198221791861260016805722307858564721157901835597040616006377954332869508354619787375440330731516063808271765728851716964894271767529393038150561845983639009346097805453994074203786377784013773127659898025193595563274735196152905095801216909705830420786041453605772364080397413354905950175911613427998274423869867642769949081204990926673031719363668137655410652209905838574597840654337375601113073366819655935367146143531302887571144133974617235190467917124613479806931680220916178970876407743786117064746964734360613004850551317612844503343572742015255611825464260473075047209616350345387936799678900398483469332268001841427964434659662696216050388430253879890333651238448174934787213038641614586980674680631914785423486012858242481685949362698760826925253495106685965848920758127607945940853429756682344890495314530101506560972990443653287528482545842181517341931131332879986492490237431265009577302867646932313150312010028989260381597293160077102450810492707467104550631429707387530629312599955985034831838763916596785660407505797560881847176679171816773098018420695375536592887365608091106265255154756768136522684269578651021736428879855221515517965454077278587486636735231019843118111720888659512449827322277373536063618692694836690367810506660686253059910817563221437377869095636594506115233848981737214101494174920738424019512592971443037659919586022755664849549636042327668542338755341385300593848286265675028432199309574847842566670665001862804039495151571275674128849588817857851064520875699010359154798149167865610792055990364059349858525586455676512941656576896990191309894991767657670073705034466509945727333474380967260880312715892047083030627417288248411646388025893005830299559035037818150858275144101088725933260972177533812695241219878862383227112164880853571431078744195818718246889901503541126820616536004446334752846449652570161129029889997528941194935481090066632472823008362002433915935234805132491176692280644771457887993500449705966802058703614292801558722702667214677286229458635823549060884970851395736149376473443412181591169306271199338342944292818564875115565193460268010741699983292006320410669502146324303143769506111806421261021575453212869595126459999411810196950348426518589665181984859709514296056653145348757418469753897401679786091362882277893161471612535002986826039040641615105383639588564994802036894865106846277276833619558128737432130003050028512917822970815064289391738299663840912531712348385557074339759259536269220734011578395192593318126401507260453382108417239564668111921693373824978454111399766976708024826868587141921748271646339382704107668810819200577175905916950952042483226666923831739399807319139297915875251193547974627614932183572736885418519440644202929127601539005382533246417412617364708751314246026488362352068085484602297271062743838163262980886029437391493246931912029945640448440441849715352215945774513714256463727518197335119827430473303848842829738390019586525213336094728083662417202915240979744459794955326286411312272327367234833283202753242547718783094486666872125291613406608241241613578095027336236766984304146795689760609140853317794106721595737515208303806778582257302319367889529209887270274800006196937715639560204446104856850290377981414646566888896886030250789277586966630652333836389192231128810947960711647166849594756196118401630478694815406857331569872129330923350831488711899738556069565609681149702071397422828574563430667004283681585979091367557839035041990814496520191992621606556283948014533383343412592495635516345722339874857124357585296857923042085488543224955948883774112780730190996529467903683505645979652218816311743482993502912770595754498232203732324172548086767560896585871772530245584034642038446923478842984877711610818778360884394392021993617050162280709566463883620266854513524901297270295096848798768089523165648147808039823390319524326277764501710146242433473244680964500039424647480270928898002389963078215515180485830966407280703440608190247023897394244067058309848827653935320848739839369357814325546706528656611608352374315768517579447160556952966828908809921306221891399062019616179280818382392076484702039341654104896936253200065418752571497638317321881677682332736991359383407902134708339190311201878975605408134944191038289831847187060827582773670592657028131549539991440380789030814721253296310185073328525563914701416037266258379632547153538232207801150666418182776468370762826143312436802145459262409253968267353377733780712218116650356840141807020406300481299293143830210872799571729059100493946917429408619406634712293221956531114557532877401399417314830153288217997051841304278274160877550579706605557188349919833135815976996797956187764720588119252811773645051803227865650215214166983034643009233945220286806546097066271776285341389666219390819864768545382994846382292230258118520633071208185875296432941129686151415480625463214211260589823407222290788554906172345561594423529215577619997937630542131899537882132016246869783026549228054925107796379159338192949433574114187892512056415336033847260305820342557833757450608755451114450878222995771432494379116947983168444818137955917473879111285829775608736282629298483724811903443817297403599152842406874907960863440265034155634633312323841940072268872056967477321098085870802188709305359144989537780830682672609376638271453133593285027764859141189315857843559890968129966987081738928324409301246020860455234646073855594440147110852280681711167149505865157556199641283077808826943549397415139614395586514382040651303088076578707135625528146146523275873433332120159255953421824245289401355370005574613142291272193145825533483242073637555708428781669359110921767241067401008194423612687429980934750212522956185958183974438428719556584255225554238935898011986463488806925688809052744391110601989688580135919016303077384493013370082483273661531384025852540980682432587818810998691432548251597048605279619082811425331311790016471842861566287437062308431455473957430161565879894164070754761022984250530030274546376597313327732909724412829097131508138301300212140799642097634820785587127031937493328180870067319088678969934363681141101722111034446955863574041808859526834200584352125463618018127964907278500253913340036714545211874718610755566038066823678014979925052635437286284935226151994687220206721660874882705397973284783659008737544825485238948734105002719741907720763475877142781648991978383563778682893320086166693596089982301872875437264868026486423839747568264527668033805206441633872677902815930709303246643699530727584914958937624016429644940496544409373632050259156382000107755215553466728001526937334076113686350198695847542154185443218129722951551641628469950946835431374884019800797636932252911525218600766101205878339882015894207448072659414467668418641170459713050694754555700965900575416351420667898834904837111751854651445001119895408193620019792850251437858463061628959380862952576419643120964788380976443453880932555900436587720118827139540533368264675478256703939196346969764060831216999193799292064921244143391539421427678178946261334801852772108813601570723190632147861676240454472624611628304199322007847602731930471910569107759440072649067658036749940915105652399659188218938909187082011000697421685040276190395641733684470380549888735395450821615832352765991061282069432858081780168796521693403597554771008100939904118882110686976518251142414981011632539865314312485750783153627983045244241121311715950231444839915200614951406004712484583578267576416318335090101767585113412655577758461656041029588656769913458625780997369867106065440815471025722525512729292360087758615057470412210659905492470198815154292922680833123153762744979026737818849410559847912119292697674955090116942529150248766647053643376013133928330921990313167681440113555641993758948844978240630664498682651583629899497073043299489052654731880854971113762095404347646685623309744006890260452966686775729334857591939306528780241043930784979729420275492427496780803333615872916342833925807581299620955617800982407278980410359175124700132340448229551849292913328123013468974660364777099831286370200246413014818859652302599875428098104798331611708281732551331314560791123722666095357696596264056345381015760202018811949247670132454373562146614272149566336847193793426994922619636261018243357249134756503241565568347158143183474263983006086185450713513779476726050254675408206668576007351955004635298260633026607776960010801111478793371804492529228657586513095983747855556993253749466004623880059930123041108288852764729537275801799224498558097945156784068608487716065826796532834045389751788072548488582629990297063294925185159143664821474324055183301029426732672442706574127461346581100091490966442313688781092565097441611869984599401984384700964737257908575121153675404306183449248953138804931679843136500435270775584405084557455097311832037646617061564216695705970699335174405151098877878738640523126951320341283701401947779955885144904813002716396129532018579514320931480506796073531046566826851662580635108308478935438777047466248734143131204416910098038045117255022195450645111925257590711167239699965932815085889932462995333014346904052347403568847339602061201911556161087383705965651720934694024583966270616449046061867854549598415536245239060781927572827436759471862484511927248305251839434157586879808247531708213482178827173507078194712523665248725146991864898563858342366907519495042335348000899649730729889768982471292293552312310459621048136231796575151717659555133944271636594918127228759278633107046112291348056570044285954981319487697432526189564119894394569761857898338525434572599697763806012035962723657741341207423378747359911461578544976475600056451333191570579479805670792168122583211200353799485298068865552886304913086140379515899671688335966054071775034312553025216344693556221483046138433829590440949497284609196764553426827180547227280379121849628824947993860210120425574541446542467545554690872532079809106667910039254117133635899856562914352764791786005596267750924602424181250530859613826169306521123724741511807313148481024400326939468411342142147912970570779866447269266762285056526463990048507351580658992007017441483515940425812278182329035558086958714709567491552595249683963357561419065061017765725536265120762462883621431374260754647363249450511429965088413463572149808567907167294677199923411863776467958414531114078706121893468308964462018921536009442415723529166760684344662376381567481321728693030166661010035101728304379488958620401731847063939616147786146383451689510018639711197483846060546371153770813388130511256513849697899540451946115870841930609852505687731878260144846023750941262496726340316728675547931816245778985569341185239958691894494908978910549645339433188481469131571450638932621165277296539103932069247637559619593191457144075265776364294073713711278633577285702154200745769551633849440829518525777581935895698031961836882340601424861120792050980602996584682198960627724714862526134017944292209814186388803232405275027853393148442877519458702740249068043002819425073613107813467447931548173522617996078703786185105951341972220754375466400670600025886383911383103119978230375430455482549642430594241977025993565957180908946081151279464581860018809776308271292382249362912098103408804688836457821837901227015200916352733189906317725455053938375612547649339309821202886811914577550753474377539874121801616850640756396928534811467025797383800184913484398460092835818584170945178353192394098536211786129781708590227446242037913175541616326722669353560801393812489635999521061894832882637180208355163646962126753915192233148671079096774533618435433960735535453401697402536029795543391983537920017079127406434156792476877301871407795794517604429896903315563611212574389327570258616411892306790555083525237325735514227353386892424189327515247281048555496049383256812578000758969082196601988565975666348706294790615990934805913986862234430060850073069247096471408264595312072950418608536607199151722979998155078837854964007762570941415149574560681430074763982422496257192797886655014913551869152183574678476911550321593049385317030797678290201621659705036184563694249115666174009670018595341185422204684965433803578437219562788679885951713762005065717726163749797804204757209460529501653388055870784844847226444641844413594296623652240562195330824915221834884322376939529591290216776812201056496521478120984718758560920310286524509015988276873325382210140819311854719376361837107337315003935159273657303935063630442824388857148391673223792854936729103380020769744157794181134377525413273504802429283894295327311343569944192479873030132774129389771165076455164968948719774705659386605850286811028424276421596206073241176699003047092620189910672277837842235933875860446808864336843288862291588834836226089259170058510197352564039088912043784263684209226175813947766059210347924859652753136370203634589733410935521095231099018996763169742448869254048879653490043684279748202559181174672375145097549482086402552885690184348151501861652547755686576065738185785669611802187378512779302861368436882440804903988135341352776029949907395628991340491232992583942223240285879319590753215502513685352183839522665304370732637951215599185455537858817975153151016875714139908310817161341058974572128993059428068857171514453211781055806105760248559715221624464301878084972480455549328681631411798729680769393037061245646000379295564553943810004243301521536529249196510028690225197995501532704539389342587214575363831761971812451571385486089424014140843652725797044722058912505067593852611910461844037761665170031597749507367408743510780428420387992955768688895582273399186173301476693765203447529802982470661515317262954602746244628487666614604913908261251787534311091655182795898125729993068179323060124341312447190195160387151642903824055312274594190459149870481284655782483175684653586225407542128250622259617283557423414831006104169010014225472779172157242127621888600831388484274005608977096248109267521481820900604535330421903258061845460671033629849628797399290677628468614092889803743435612072188309218590392796447770322566266891068787833692674233387937487393658934240072871294006007747308096473179609226683687874645381864484203799227880782456880769212560163436162081764115394801939654774640069312023184818309974429224659671336596736512380638206694061044748215332470075753987817256420434139028193095623494410970031976368871188072336156281263001755760169699511533248689218966866250403153019015186912919392467499382783651646369028205417568307685238567657554497642148130968293354133413281784342388662262887549438033576230605837541917412504909423973066502837809976451772799165933080840462736869917123745887493372224598680194699898729327875049810676636694402558337385281415510425860862015840914228190966443121719959098861370208520452905223741651056319029478807326443636549759866120392284691767989955378128300175952371113617586879401122232465142926302015102922525951560833317553229117483293216343058304853768243606342277938664023112783173259947051061968938423618393810132712252990420195856356088978571003546371178474273181773379429071755616367354513178060915411822961817944225305711735313092409720967043092023997829825997656795634886852389951229798920527183416896185683265995388112647537029499521853319004086847948268225135348598183608230617516743295513294464118428881920878600840658855299104712673697545665170982908695665116864887979718778137496828576571281270461281594523963971502481412339535772109138561422372719124638328050733565766442863371239916141616177170308161797906834443823759673217330580806117311535073125090146588189014255416570871474095758706849135785215565646114507086390109128463965330411989100397022015255026005729589401513414772867061612577367194724960041964696948066908274918547864802670690948505512969021712754886621933708535341518308609160517877331195515768708262316992601462440633116065097317700267244415365258279047504798717098890199882917940056402442410603642712909594161120050670815637336612890896490596540174365008980445482976373822488705185819751173160971936881826930190527685066718978265369552763040486133275426735858860140239894121188992515976714838904218533965343394734565081775950680811347322399229027777907834577002755974953049527087316689979167308075459987580900189637412919657416893534103203129905303983121560455612072454498414983669848805517738072602685146531233280349803653932827190326239020933559135415397333689614790455317689590034331277396289993356113530170340671708646017652317456744097317055745052403717801696459417050750118294699785933137316075579888419149948957469867961587840819944784434642165830049196042277707740922148168381770438101844250539518274686307095022899526519556606196034880902410810430014418559032838855328858527879964141809971308277449160147662521844570285078627743653420890127571624954634802920323646105900917974776082589751040743781234253077717056933349411868540726926682129774203219666337093907369142593538272576098682265299847581192635262273352942700540335329219616492459009590731546353653404991939773311235211837222367403411309412765084217074447795789253164021803521089454677573352598647964748755196187566918698905792627033974374257027115288391341285902153292868111772809467338771851532409354252033237177187872356709770473132269362121350076597370510233613546810408402852042699938985280728838746100104960042944688709812844413367427474916664442147073625363084773233936792023433977374102829675796786859780688484260860592182494028171398749353957746664668308521394059417683092426336274561577404659522722943278235678881448231129313729890356779303931412686525813442798121649340780830007098500805611394358577695625729026422360602903885618168639013319172058905399809100702597794681138103788587038504408153560896422637878634165450345062025420535957188007175663586001423335269505278511894734049655306427055218641037148266531165910753557090891004117988039899878990132259939124773250668349009663963793271358735305663663427695212469561528667683478556690671234121870105590697884068303679844831653292349068953836333937395807803018610447647632755287247758560232251772577183526818674005715295839666529442256269954576027415935347340387288942081262380270745120185139757525750723775574902855752346335791565003300986966719043948510489617850352731759959507765866711123702921020490192463503937091529713606696392353016477339431367986346481022872205314041249912580095469823478486775210144824475574502859832746244646116315146926077191019641836025934939913614993542243179508078752959286617115793383033796346145338220503304957660581391763332322238898933426499014337970956768397383536444705594492408789656720318519359656398750045095096997981286694916065351707835029707507659512978213628150502969621671709673129313171073343839007851951471988908197852822841728094937342358953292854628690941567840182000464599433522023537748078624689319685126973660768139406687711067247043149392420009746452902339588962645232337413919908092356267567614708238380838007126532966120364036290650817944682417194576278409451630771697901601975958996156653230797505641094168863980696032366576149707622800665788110795830597038215588948899587320305187691480570918897198242270388586497047295899502033788788841462291740270717387169176447374871681483384888957728931858618371318571143477131604942951373625079412105475921925730077827231355996032410969915427702320170434886971430295930841516967671903613657378080393452747888266530085350457875757778929897658309399199804734367033962537458091121064986140484027191847018011559733121257756208794203529577409063133648672852220296662614696262586635188273820954292175188440337595996307261736717692270394320502037390692600441542713619249303549595330104124221992996656743425021731561394229114394352976355677544108532220443386029908885840952940610012029664851927645859953560158432963677306902431800875934838784452323264527544731080795945897000866858158795360335953075346597181799267603359403079103058224321941583287035981905532593492810516882799400929485148265268589361556000634172651151827774980568920893867127433245250181355227727464181911220489442587527222009599059554476094711084642830119268817282426915086377753247947719583923467960767898587050113522863380192483817466754403957530460218329569893294610756580927218918798700701802549950125178310268240239138308977377199848198232118880561209575570497175626097195646582003594573650038563818179790157478510723559467694024359269634564625264253566789062266209884450113303933319030837682301678211964357420543090222812863020554197589952932666424005166406545145609650427264088320440174173132224739444389881156515495166468871099702206474828122657593313701731053474354728573784961226897659331620307982750194162787890796218055995636511103423549950538463892959320256573093029554949636333921606805936234193512118236090611118977822294859287478855439196660914137173344108279611176277319972889931870770383720677912023801019404975065510616521152972081643377237805641884966326287867844831939803140987037837587496773449443837309561547685143542002784203147692640371599910660974141094384017460184323084339391961847669195784939458236553020437079124400225726989180244794511623484598541614666353597171299293256569635353639493445815863799302741968207284512237579027909435199757583181327373901636294390224385342770224997733553902142795957041442842636840124156518595173576276646754743488471507457823388883771064161152740524167630563477349212067245712471712969046149762568388366045786963790999227229221327543763777368355911941998321883177650945170519770110162397733652084784290115100192124396506236987166235055933418651876999697155478138599442862353386155475965765314830341386698949620645482986670228173967795687226601049516362990332603358285369278029804466012836621466686217552602753746070010511047314671856395979948432363387790802701014119240174685612164557969874318413948830090286465273792302022177447119349119828702923327737228233258981501606559511604032682051547633469619954645579131947512218536902500015887859316094521216007509808570643505661722217418946798635060045847774589713168731660991501655105747955694196827631200916323507470683754522801209994719562485346873514162876247862298421337427666627281604171257323833626186238886678251554228379994009165089941699729523331154905150882108379122409714944902233468003025444308217260638147238287870908224463827836316400668368490750054696406408484068504740779855178602641212746837102667507675629793611763812886700653770363566682053410466505694669440366655363453536560867017432767874451463567981651480937834452378277720166312214663858851919645833476633350146044165314619784142501032654401089500520488858165094393371529946452343161966657822060283694428304846531336157404818215632782188870057997929978011579852116842496067491138292951523762511260489602263099387041858867444945268797697149508155856817316372425277699656522864817341737949957607159078927208505279010510792383333743805341963846938717013113288035287456413362018536665609283428950685288661491708149148161625590368434823396272910335052187895541314939253543393681650223355828434662751525700760885026500537007679344468692799484692467591111111660108922728435173054567038551105903772292637726408551340316342611227129351811913956126529932431348666961535048142620723824962477241834221598067329312909371952181663586733558065883764811920120724335812200651288118044578516514270051190277480933849390099884861228370315408013595473210698689373097532673494708583501701466634602802842930545371026316906690540042253134414618548522170739215172600987135842779222093922322760533153413077178302647306287687978522018498569767060872801191743615470716627686151053396921901232978562296753331519647702783923132852784941019957892491847743771305982838934784273453948736380625693228643045658043834699505085686125776667279523199472934264631701943530235105081655194749552201514628273817447458237864591327577835874240788315911924143105009899553949039519926171794592621322295317758445683591759254222059222422230102187871666061626090579287597529840454362836194078749128519258819599886117382959916932331683904983668671496689532201950212586116683950401002300621142772252337840237486807636032339281709602612554240094481847626953738199535956822044247850363220435421353830184197473515293310518861104097549879422918049686066355119363997295997354040322416147568759383462295606642971825160045020370451180785984077178073244512798116949275610298882802238919497531030045227507587135830389546415992605762145159360159604040701153950622932402072889874533074280126217663471553090848343576511006192619816958701572031988380010301740974864036430079088681547479679310203256029696173262734531094876145934287700001140007615622114301599344127241482883072795237344889840024113774294546079822310635228534820601420846629634681795031410216762866586028432756446493707369781350666000368663834252197384853390103030630613314056049440803766362344331992636913484111390906657382035412820884673415872457986110524036467447806147416947260942156111166959162913290502743982071154451689301287141866555021106092364494108630352792392817956056578925344422599148193066230657499258155252367260709846882508722344012817625685308314109515289702979582003534496633879100595855912740443775487736319345192490563177562363671171069938319948707861249179189794963615191982699633122865816069663921960073168263784403517388896707532401549974439683812457815560762611694823802911037198862637194024640276564563644056052324783718907050491790850390395689354998397464367324428720826381020142085588735015816251524692402234880844243352721957367184295939027632481488045728205663713756342420635479357349686204258035764770549136445139952706191312647199346225214388304462976914320795685609763081421122791058355766585731562359592851696270518275947248915217631954063319003569434331072657672009587814331343515638543974548638335819470917408726122040381922010829793999754810060309064266597811567166386534847677887824649726478269125353372846512823181733940267764562713710968384769020883577980992920145006004659418579137788490965586843388496528994008707197825503391322118259609900826948104523012395091287657802551844573746317417098829259521292132178176861424359739183190389304444469601963025932411352593927229853150865895178871520275228701833864358746918594422410022895748158525130981205821357348380555829075700375401506967702301407956172175437483779192045024593441896748607684681670375649509291787615713121720431788085382556158245911975874033485731014650587163815725571664028838326019962055069251485405919331821907056965296989733528519627483295053150242550705574554654749244536086271006390379327038876716375737414590853220704021401113112207572847788867579386447262216388072881602165876058912810370796566427194009617698386466771323306001542023037155731504110385297525484571852186267900830927527641792169400897051643127181812217694404081953741603260137814926407370452784046679250982311160521569163206291918624068170521211288112928587313512730762611749443337880941507445867324895937697089411800805020050931144761843946030695768025518995308295116098835117856735259479024411551723805757220077972556820073219876799511428653524040196445020947100960830654017606340914428915763859197830654723067275064641886017854720065439727257428457033887022584296635337829841323378857657671575697714011154816827807298525502163951299491138186781688580562256420419317797029607613535785486461907841772069008250050431636081366103732815349187256726983417749335273512784497056833887902081026471456114815989137270811176295359010062419842924249019271252795741071713057881407956004899587442662145885272672869544564337146279989338045707731544810677206418435609105214332363459403196230803692659353240499965841301496547777572552757134026866957975334030024587327657861090673300782108705378780911749555285895146389825296465409413493424811207326848600448778826619906891792530589136792544878580687365132935685649951511765905791146234802784220750379344668183166703293517105681272392114621359376481755744175674744653027264838821877199603059415518600408553958962273598058792183950208987687407667444670549083479274154492434125576080712457481598866987602840823472961394661310145756625667609856803844474032177157969352757847514270131082542959580648825653025019391863911406475239241318555465813307659250180709223212164894019713324750975766616912590218740669846788536443714471609332739796641533729326965534744751054812714765046445199937719497620413360814779839821299141460298423580814682380056143992622992926567505487696742344018460799553182392822462347487453540282527569274272985393932433759320580762030802967506692119708053976591455470317938617556980701690747456367755029183501535471792956215930327773164399286921558939423871332751818047464340659107414562360155842488165913705871274651162404205117593499891707595229870703502297324119595686344055919344248930849588516607885429040245469105185108069722631091200412738428053891420121409470991977787436774580549532558116207343062743320305661134861264199285734085717479974104592029011988349853177258759644096246729382477067731607667109880159146350958566471693229314404084673707980902243737307160775752444103107861151840819232671957401729709323400389118953556307412456445417157322310978825669193330462158039768313289415317775728824000743713685501639949659047768764210313758600245582662555949148826298470849917357699397886777162731846915867282716327380824873874374144615475465185548368906899188450868246830180492429341761056017043810977273873595892867023892643922967176026167253171873341366014874797748042484432796647096935513085662797148632548254227241871757932507378969360873995667857098863101980980539065365705451269297811370979401560583408660799374465437728654312708245935693554710745893935212635468194615370764751485314244581493879786054045676047108101542319614463117503516937471988816032350107475922103939200854387320904554548189701667610980593465842326681622001843535740096514661159434633130342960677049131763869584514854443827711682020964584238280170197200298899340810524045032474903224094042238421504271064066145291922494657238970091168253094678806510087158916150681255456352014096916060041941995489853750940086787135623610204984629079519813458160192033999154105444518115515391511715531122725199070127203030962927163102725950688332870484442589027450335174724461067799299483991039651972052525258578441326299774902711153420067793824712616895629469044408921137078065575373154907140748595273466791623549756630145954778503118724841668786369877502911326412816455829182245297411495692422429316724360593243442270602545792946962835619567333843620095297283488525333159354001648494479619528844577364428972579201348459335873358482446977054002301077653125990943800904682056648439211624133722936756900667141840486517947993912000761645059249610655009994723846235620498801832979634494209838344639826286541010683665295453717085803045340944030437067839034930866938561240397046672837547618745232827111133446174876175532971584026010724641295608298802966016191549335007948483256384941213690762443480597186844977180775048728970325154700014074400577010409040570258263212660667905503390487211750151559404168428247979844291697181102690915542854715584894458019514806138035923023472232584352719362134584538714247041830339414296237338409446843545872464607742478177941159497302246245959258360250048430493551770888602487036826341324897635424820980408739200464040523041147420697631381895563428848755705980968794964043210816906029000864283732335089116503912888956014894267559446719574805000348549726736113772492265253430356779286976985000965776103649673865861720010261357889425684450997505639272028152233134155563899976568549182289928954324665674190682016066024240625749409331309668634387898858045128765799209569276331127905403516579173022937196419329259256319473347693237625754420463409691794606032287158837709937891625892185924542153480191414660708522542912040548417267906596603866583300852068485169509424728654550954151140804809910198028959843530389140093647238800813006831563909815988215768128224217536289295899009972534813602633959206364580262713288962081712373585049178218484438957649506934558288086676825677866138791507173527678817865712181423087578841164559759254765900934304894253417066733791567203450762987011398536766831343837177471257271698938133244509164914557419688102175622319108513381678185505641807115459824242036975531602276226241296608389932133214275242892218681277813327480641915725829110007572771744754976559518387450496787828988130809916373168802016359186265015151884062727385305966350546894842906300357014214192622852592851594459225694714569899808848349140715887051112991384747267308541867371361151399485618393317843113718160222724676452124185127142147972157233675708663426285502984320916693255317397989849552956569021275988338487228380399446350824833510673415582408390431503335147766755282827722092327161976872325769280532172012663299602186117112063925566448033598485156803953268046770602540049667872544307457162707272377421427030612816738721682167739253704817673479197716420073651668978184750040062653248912375163393751415979163780406141146859602118811192250815567166758305704306847596060088322448240559327605830417398094258879451733302947762342673172627832247004782606677723572439002658513312976424918977617309617173738833725514458929002114581795038449556682074226041682078858334615792265650332744019366004154553049085673223550415010143334901299919291587322649467542968211692485662915125882783193505727314005290148501392315884682534890610377545271621760462281292756370199462244237687900089911821686573319894511633057965617479082362539091130422564118917657026355651835985767776536083928393421954094441261832785447257674840206926324120225159293259328607421559850431756162105100548179486363015846977488652191627752296335018012767856893679228188473733253805512009378307650534065427202303089244824661571738755933995762395074422628593733792435063717204466592036206865687897898129321054231866067422608237983810415429374743028350776275520437152698601182733665034008654971229008447970020014784273616779286726065493231896435471994368999973774382293405103792431474122702726225569812216727358975785359679764712936954403192672177736472434711550027588098023952545832448609276977576611091408821335313946486112525498081639197889257509686009428053956464746089463677566039981735404939628454630308776994218241229841996733525174513031446814358350106457870825856860798987528179470155145782388022555580014271705755360849885421139550376352853384873771696657984252665023926129918664828770095711027867905400198764606583875177523099686446422578420145706369549173333944081654512555595253687263637214664290359314698731006450479954910964892584343184711666905254688428831755094710336120475747654335338609990194180057782786319216252650772980737772110449157386848083644604008161810802864792177314552665921466942712727880312249029829255677281278822558609793193086164312033103934482978560624661455491334716661875529597112243084741411934694160149351293638080343387811481373013522669217797193568588532315534210103018638924323299095989705038658375228973496212568821613191606623698500457767380318427845275798795580331358854242698114474902095161231111661439577329910138407799239347992277682150652207065422229417545300023905890623930933711075962590873564300259269294859119462008054980141606800243588611886584715561565488255931385692884272780188680598665440864779435905916193528667071136329455322982373862136218852752714226363356470328543629687192511750864453080167094108207831355777601191323490596455584727993736075633848941634319706709188068932226058382262779827200218174390935822331539636106963406068383754133572540104103760585047789240142279155231684213189171677518395258950582598753033080784761828562117809689059666346796752818323788084945213176121963337589207494082764797383278468942805924460709592293095390303850920802995984015322466248356515684510237924484720428888914655967774581701513523911822492546595942976867700671635576150369544283028440929744420139574998108901882181034197805715336866379750155939709016053283274642537807384871417603127024718593050129332962536562078648448111290193810470627276714224466038276032983306737679187940034490217656203918290729159263608678010318334818746548717785252061466457413039732803947016411586672509432133313059813806281681266797379008254976730767972209700352257491174749627830983366589745269907006563694105906414153031132734961972887647142182107690246902441207148421115513659485078332914263622323338783785393329344897733718223268341628594121028010815312039807265169250463078514417877590080626468475024205536761665649967358871334414060082793367541169410650179854398816696870444180977582451003950134276274773977456191897415501669629691483770781396774209460683768078724983138322757257912273731248658557401429961752509561072668825364220820859661076070658124237858914835351527597602011144312445574706167225967179737542135321071052533843736919629656175699257193102046439312745274757685129023264669172387750214414648018138453627114473515447863999615797602341125711042796221425736483329120597038235688378107847635219252364350859767314937364850285271096278732316551017689571464417733338260305030346883777897786668510545387676392519750747600893475079146412495309578679833849090206734226515206161252428795808904307214624788063216539386785977795404881660131283081195488650680294336702854320531223444883828976582749249911632832210116449263480069462638836955187457903735622882997529773881827410689648373179547867452462810624755286908212018468511720684811528637315724752986021614875917615189805546445171429215782675132279766916497406369519905893730707268810236146238674281573649915120076224271802981204162611075136175827490229798348913192833620983974296839079694526637364034248563726356121615162653052124597944156805936509723425027427640057687561999015248136622223743780950867328690555123828743015258853993022133146161197452905239808641290011887178670610399827687015773532273599223934380126533389863159097774013225497833269517770934734801704292309228421714234113211097874999210917227071518722513478416314147638223032279826236002394646831068589918419540835697116774871318126689755106719912351909118220109417385352678914016405554224550494294555671686694107959783419950947775584750001084775413158854850046474866399171544982155033032058583637439976508783347896222816625233857539330256100753209773438855651090622275465169191920608489586986508131325882407933510111847578681688757425226386848309819727830431580962220702083613812553046106113744686503382969728882688418251023879893517509229343827553582311297869914805073073548340838774265150072242435603532250867400957320368391773083536555375115156490328842530399334867697845182862803490298764452335153049340922658682149984208096587415128837912725185350141493026910428442038735974570498012583918363598069205530072673477544042734271094054458536292760932808223355360861165817054697252726011331718150116611692258784635379064444457741310751715367994340255230041980556893410947519224206420761956859170460834627907154018581973958502496125366296211750382590589766528658199860417410379771631370662791817893253262450158237391296024096019157711061446248257294762528889398788065939209468581622967881898118628058578825414787750423678002501677663297026534895831518840799412047775299397280454826508320376186171921883524387462135815967104441546574881321473892649129104051476685028358085899512859658353429031114694677242966929669077040688888187045305420843787811367358412552614506228270741759398817055977676196295372698378262821461752102315107722514773817617359723818039043560099705032083613510568182884790305565798661622504657031575887405990647958812135635093244017040564931108913384109568329176662766053228005668649904550645515222319358946485722075424803195157430934338439926019871076271063987635419348999994264361831242693169798997838542577114671995641174664798209904598479453373345373171899031849668914544778653732562541226964858429940451101353946420244011403645964005700377451698278467310321787093824035161412006373112442559262776313559067604562080695261092632047438056530446856004510957631456040022584578016226279441577792483279256671314701350825345724801540111063373822855274189311668030360220018860551043877627386320281582226440912979244089182892401173597908721562198760196674196065275905013244520052597547424819289281493040758796050757751200453642899137971293863828236391669392895325288402808348837438257023619742525185887563823805787639541099079715880102813235364029322808246798076641021017677551446555605874567454722361706175490170344662529918844073771905908336920839503548444427950658299747965785166211200412387856339530954318364508309679956936281897933445452525663987431318736609912401197939717258269796527344727350403737333919366255466161187979357526756998692366219236354838432351850978654234068095727872087010441835632892970998384240934942084310544494258994721465083363514242074422533136688628318155781149953847940636996482063670378845287388482213057710685283813493116304711547327374213350658182877591452227071302201439348712323202957991554664524743556285938109179157691315405461594833941609267459152101403430834890651032860446893253433965010661858927974230118194792034683524121323477708949716986982347149654196948543937637061178451404168086225085964910982358390758684438183240692658580741674658777424825737679545692105952247941121163929773633277911693215102287420623703585216133826761912378456148064422151977109034749719650129694058066750644895238762524186994861151373664552026210929292328812216933152513244322215523602920844299358743183575129363082997068300992288631182646404492014546312434930930576650541115709033033562260709841372981857229824296425880813693513299433698348033447127594718801884335197939546695110431931553465050382257665336459900765657860029184639958947776681572134595437089860357100494958649045487200718864049627750931178952774141359846380467975478097750874350257133854108285625966310118193100162026556114297264144013438235068930876885230632078747941418003062210580614751803466194232093925196481667618348361436159536414737771367146534338964896470060293602352770448422545365286864045310575046897072732862883671330234924840675409726307939970699546778079222103686214668388668418371689363014491495614337386658257667515981799108828435070560373972162201910391689954162888907714677457609980620417807264365450955763911833387641670365312799373195014565449815090072486528233207391936597960605878244472746529934012471464188962760496398550909506597892813312103928726103653949871161571880252678224720627431979438679383249671551609013536110152793127231690979362800330103761306939155988966499541934124415275143316930590109620340234388918071993403020733227832907845442433575907149153837563620274958890060725756347768247912479070188034807783738341382586077713967188871731179679859659208352493487660389702404943689775347797788243829100846689103303532417992601447554866416662337372162346497239924654129751140966791266567331168307639074056376163113936129067181425791198716996359912629487270868615053069020768217722372428519169868901007000391322150408454231687725000807227516676642923735397846603742421522191143990948791267069343815677555414044816542811032535458563146186446447664997750824538481654375981691044704757008737971158100261538523035370554418132458871629908419600066720976377879162043532447276151769783253436743820718156675956671051215621986423205117924325187202925452327180134374409984791753965308673823934348356739739092074682997803435287515271204186864753675932363748424203461627491322598277357594033763420411974859208186808878478487350995074709075102290643268678826802505631085186031445492512061474185304279394089181776115909294229399026860957338704059289690444732243924219407904960225205014901871349887031870411617611134523373555193567266464494225635509885539909685961638818978645066813467764957349460700368428511827838912077533476081016931988294788005873869064071363331138415055986679046695515963517965189172212493852990691090375507037386606928271272857142156694198196010940256104117993994216940654844551769621122408511255078952713643017280438016844118253723069482278475285793120419689948531260623128569448350225787780284282723598988387020654382538228072206127356467974120450451456570439473663361416190763781741698788863506319134454160502311612226700487057174472786842585883069709271723851992108528465355818790220270159410910202520154972912752492093628008481437976365871849686226173356473340768436045020206587173437599685948508821486601874920921282911793023012168528381584908997009741128991769888523762410084280093000979417227073473908190823688797383758996830334546502226475168016493799800425462975961910461048897473048472147008744220474110330032592478514461412605795230573529293578599846535436512207574083454722385583521163177130850756773569320931650120390734804352796508248300548623699349636821169438777348521308674131321088304934110276379695278653571786134900366714943557821625182192964245622175054900090633952482646976157138332596969561200549570086690342860900465564659410783206300972359241471017155008196218421737015411278271637205643623467552825368981717277953734798751459234780989503925140034053080055567033329069822586219884168594181763891938292541591694952347199257679478248664520203609623103296603253553763847767211089141071305938637081973138037031918652977969594798549138759423268878317970523365937489870721321189218370566027795172991690449983648648609136896469868350323007047714148908310915366044085578039114686862380744238223123721096632167436244821229143306132164372344254124762749178917587669485273519517560481660370515877827089927049706656904504580805925657960163654534931528848585291618338498196184029454473543899206918835174178624089594617431645381625890772574024949246814589464657782834475657722916600483570036709188801369080980780304026117110985214250695918148513795271427203016078880354399784458363877006287487841058289872643647939066651221929155113769769607621861089132405344816735957752040476965857284985109920305131198733720775576295557977310210098572499381263080765084958812551186739989722917290123593386109667758709369541389659257314207934760089581304879601488721444048512803466454709291849465224649957320740596166699101667959086239404075900905348705187617391392692555756804422791616172544092802324712165532534244610255241248485404451946889187267094028852110483622042102573351215246951828627894969880512295294318858487593604444192621131696201759618127191403474681119085660409918932615628754656194453068411890147572287543183484264957211774466851218278908438528620250896190361165657130353532439432720381517860738908741165057314877718915167904816869295666436199805285274111430020042569528659365270054487551907731020949358334421847436291575275648277746792252737813823618744526792083700192597837660336915186872879582065607905674369607113431537230023672187916089848629764455466958306149616749294255485100287140847573955467377453070867538180224593587965806941352293472538428300601883023404951235547251261861653854218375555213998069681381033785475847116564370530928501962802134647876631840379307408565214703755670217517705638292198634966909269646172617096930305954598299295484621634617764343180823344523959670515298228716049844014631717576099544731488110576798765259708635783113603748943898564182018005933847629665066020264739176906005325833361686234904964579008743547768596137718262781470231539147123564755613099361380423301458231422399897607969902546717278180256258818203152016066996555313460352737580520091029082541274066011033703868252486614759484181468551075922454166575239342386389053732989067275312413830070444256514761802031557540514514749370018865702664010475845244409294495481645893406502768816246637888157742295685404002460018499498328425219196017539818816842144028650110899069648329730923695695575431506129132411273366800708127797241717267062215734444784064280457297994326255874763475925805174669440828939871427954605500718080159472160740720567984893948834235691450653281981163310972157610621784816754949328376290119359843260287937974134065553711351387978514898996811642451640635509745078056123942886470396260977025348641957594301634102543164626080395520524903641996830745115695613928764695608984319879006360668604783773038322032700608599632038675999410936350232159656501369142305584390178287630266428859634920114727980512330619965259248827687944996093110346997899147672075419142541953533893917573457430542719571762622201197552950516576238038505064476707151894651565679954732315268384675522235173770309692861766463928394186709921839021375867998331437829679886148237872104085727907132013201350020764766771365853357537226629828731527119267511214206255764932026472799683648165533813217777859676048485514343788541820753465087113690918403778830605781507666175123178255302500189823472516208683053206937048817347064336908193202164668739295325347886953154237373722233110561683856432968989834565509573001287418015731670944996653257609518641437319103310557114146533449812563383250017684190165367477744372077988878875043179313262489230734883014463722831343346259629010975763549649481608123131328126065917842661719740566877048352896006056166475150833090910124582826875549545635860536840730531937896736196054350616094467818030727967998839859498548254470905515724978827630059643342707702545671661038236874059372236001838796115158635422574863919817806992185346292035665886537634930842154658114561655771658079315133109256957311755130586408307237681032664473148472919861012099368593353408999104027629996084591749015768499374321331213674841259298105418974202991028032327437963753239081911611455009306966130905869180398606489469513748011148001134864946124211739653499415385017586088226064892935661701239010819035092338839550154340117857935685021467235174420511573150284329025685075752596525304791062715264932592931609971882685386895014995573996309572827866461935600540476099566690965101674949509165648041074380057027047786404981354107397745515259157886861000287978192990131558570565705317489451734260162072512222201895583390989137415933977527625454609266174488703628140102842066028927282856824738867682421276849789440814015949207979856239355680659738801416273811595918222328501244952642165205857188978188410615864979886559285805964662557048852350975830670618266137721324427203559785082534860396263948448054989451911826635302394364267631760999550936796083906318267159168592163258677113534990611173958424533627821571191297504110854528079475648188058762269331144659303612181345128014455974148350839644422176793853530783848837125518026728109724861365517414953055850215658226704772805777442579611861385305848246626048869600698533641296558365473986602661158656000074330566731582122511657173309674571083818232242704088203715702416653681221765745379967032020578831097634781741015621745800940942658152249174195331120882966821307556924633770693261603658960618163832105788919508608331003144588325089204095309879954580649760849157199194285605808411489479768404374610185645712621110946666902684041158724192857243462605875250778719452703480312680798220625594940784749589592327030149415328459676469852373434582812226274152635099627791299184506053997013821774051367977895208473610621641490584426546994487085116982492608574538864384255894005636991162186675618639590105125147580507416049246194508982230452668411004894442633685871045350538638773230721370636330172525302834365275586465655364183421492147228286253894675640495067524730069887685318915502539838977407723823505641458211082404754623257712886770243223868841634776587580387663668450347444391369436383143923455822513155589626027398296332000527956849812610217871520935432090092386901997024150829875187399099758591185782697734169609821012565505086143083512305313512210416841832662504165408805167758548593386506574191378647071725562822159454090606232650694819859503892752849615690019365068688672586009477261385586850774430707058629472388877313374471031802371693968673457745350531957720893548035797405282014253478056876745724885195046720584049996599858042867404883091744704039117327852886611281453625510207953839406297546095296822902182624756310139866916526391303565237034833103090989746095848249209281946080631891795755330802911624271060950654471533768976837206411699373975598018724947586316677294028951999115249054500054949222498906625868542054363228225507439055188533129609776080432779811841999835957954150751737257285938833827507294976449147136135484374012259449766999878805602837987691593030077597091299849372576787816678394604581357226251774106808525345331504384757354775345846872608412483283964505026371449348794489033213978791866594983307154222045896306630718749715123758823535769851714203182021749878714439247513840471640516019726913386183347696986235796230388009041782940174648166405316693314242434712014508164070840922644807132273541797838681032552412488131880715277896752805950456745703536575964141034535218563265697943965763726053526839336773052546262356800963760207574140599018427009823446659998600818153283975943060412267436415466463721881077049572828255064706517925575653910684076021483004597386577754717329331597677993998019855413145167622503813672378745473719515378742861379996804537574437298432353092917316275563293715462964312419553630823632680525559145818454438106532102595252480894747872912472093982007418561917520685915246596149549455867685119021343614704905701366133975672879119532828302730826071203689303353617547803674865674160362076828718196032078593991105294209871010989553614425143094113842943002847904051416734129165593813395208133845909154887721443343144396111528205291310284077529089996555742466670269010571756116178457171557468748286716969768239907576331677479168017215615107564961021277663316133714778297493793877684633475103478309773436996223634542988056779450481849229441824358210498778068712538619403383415596036362096051357293090019559336695395949139023563399770951665887207581177998760572284377843569892446113211811055769635889541411758671746295579853177619006240164480428708646821973090302537091205950380882693138219678876975353426472104256414269311055441492187004272230725905244550218803771459570186468681478789204053336149733858604843639343819567839119353518298780928487254753544083519948740369626798782542168232477872196251560126449952432944880499679396018780604122755549304949462238161475846254509593097190668236333138865273902772980501095847299868582604126849856702330923896637223811176790200422580663281477720095375816067771394721675021483490193444039787730742393011231886138137489103854144681934779307841188793598924034503491316332681983439175466366129683093036198690207063410083734322608540490378390633485267702531148243130936530834105547201076227889785953401594304722902695615807365237939879364119644819723209331227845145419176773915281002797042734193365913145434303437125171972216085632951608699552757612261140398193057679972373970255127989783213362802030620657942596550374665678294378295226150259932134876128056882587636072294352572634553964958575451427672948029211891944541442873285308795047739597150359355966157235250016930334386239006684515908060585861711285610421046443895188482441139387177472029318595217573509176449713397928634973696026767923960550558537653610783603660469568221870650460072454447594941575660664022395118652470755984526295435797693020518909954548352397735004220575448112705143864788459337469113817670023353763292853444562397332540306754836045738451829919708380651902051144251986015442877799982976174894117632916687564336959855272285164883401117531884395946434791836990032284527956596079369221913549468164244919427938953610244083338934356330996761543667835454898440036095441432273116296607925168558669636870092068044677101990169914685208492718241245754896802484376991984035058957774128458653505556574306845971535812664701616402822444009639334469702424429930442538313840391667633614687179938062689982893190099362603423018303436481578321497852854206979098552459766525798993639801313003183466830386955129344369039515734057901964482134403546531307337184467317707085623376520187795680630099458861873242308069742413654029607596913939891734122643817919132219014778328689459343671337106411443306256757626716528877052615559539299421053851350716173035492446091518607514991915164455962084609572841601737391169898021875500804558362231467719812384716609213781450937415005643722811392487894592877095424750962512725326922645534376545778581525390586314074635794732480551798639965367330033818684805250278495052449314771926225527383720938494361625515105137990021608532746344664266221504608873601053939352107488124552925492644273118278377967204091654516971144380998305770493381938792878002769525396478735961348362948989254234544823554637242227148112750222778347879519201501678545542659431845442170862079937363420606131673121306325372388764134646337028158343804445338400824187913611005188366019796947533021395411981490768797240525450539551845827134708481310656284676032700200582326278733154567081791242089825134669052238475499721839082740575581353386492585054942804229154854188256983406237997334781335622891730312503119500223367453656661570751580228381229617999475050458196147545143338714122780638599352796809108900212719436895632931658657315624573486855323433028414284228288481649807860997812660969595076955587547785760352528535767953043947161164961197806878240087662682436543817218120706195632541340715714772334357633964114803820722418030891030631824197923965269184928082142667067481604478233268643154162404441505360266036692937725414585087620866234982258616338315717953056255425558421552942958228606445700716983309988379583704411469946771551746728291524695671316432546838200421541269312604331347859340752029655073135863932765890827098694237235314549080098737896661214034743643305489882045050171326468556009515555325474039120103566486566928381867323456189269038860675613915416420805880724719571739989671753417719598460141045743026171176715017258011521158316349881899700104465169865047962519388852873479232071272052908214397405738664068628401968572780729693530104065956963951089228591337121033615988520206664533442473454856308060012568668706989299578675230423094925074758445467309910114497994830433565476733131315588071744622990954223882833503000046458135477835871387712381062478796494943125937040373473672275230903392710578248876411052961257868910489788309621100608470498592899272970297262171035634698581851246473943938172519804296231421896900125589790374747190700988541757754550707811929586444478146062020292701594683537657182395776725050498717377806756709079539303889963497019721084470256514651361264067931822561342386740177423302244255070050478549935733245718229584850540385775324634366574439891481391009691454574274811091793126003587955605210648815880775237239369157046137088530027526723418597194135152615785076448969571085791950535897210799141253374675838670512003174227266657217799223396672154408610896665594198582810839781896843827169509733609268235532933263460973276893726274297645474553817385230848622097377873763134703071411058001219191236060818789938261502521302241438490849738159318265746246522754625957743019832335414330143881922170701956498744307145101510735546467573458866523646987810632484680823099931966549884499581712499247266868264305021943734363769897821029158436382032398142058431369479972557848037111370151574518104891879480879852877352255593733456761447530066388118325792159200746866387482204383547737205387616986135314389891356042477962583526226780195104033687735376797409907141341520750459194629063858931567164559132671858636181913054551082404290700266526722049786533681499411695040634796299231028710787324556113235413259567456887649598406104347085267936465311330182432757776823130896392267938421906614670361765905217187745629867847584973907196916125339674103003308940229666689631305099825722300240344050702953508384389106122569343053553334615770129725823372027249802118645964840066044333277589521842349585048383405249944324204509322875409621076002211911148633346688018872457574285299341028669941658667929258036641602593275008612533743187829138954601248366003533976182486464347135999854278622477453637807426939715583943960240854532521661557719620599232794929707416861623304123893194882116033409987645847120729056177898957635229468415767205772157595007527122906147878614160965041282872970508830488555080989090706015541684360907576520420360686307958309328614143185340537636802087212543432395829572015852018361526614324530037950721907154374719686190797712257173072427471429443001704534513027491881446923267273315265082748853397008841381901912668123389564825959444943502632355220173485216758400615575691061130990518708222534530724721481680671670521360816409786070726494482603447837586245215493853869795511718668108814733316279601626234745540573328648079010885285087901634347022023440914043117265043965241238135415770088838081573293666713516006319587861900711927774807727787925503016115325871908963878663350214302073662062702222944748398324492580953884696302548242014451053232974989079085126150120143528853735900798526695009337454530814723396548915525077255070859322823869933933611682332020042412264963774834671381497429443841307546150376212065744486708447992644990169336505839162500807200234515747372804756720762789394597297353794640001686319217674403374568553606409136280583577765716828203897663775725302847548252117863729114246540159109819419824536872673191301749566413517944569228922591905312418717750600807013862284549773297798297400547724056402285298515365757174980927663473425793224776653780434781801398145394273788898020647625522942266296326349569742400206260671420889916051158088707497086464736154820202430221084295107458612529197637919864687858393727542746216446015894973135965097800167879586964700022439857715823610653524873207347548949483535739170809062271744207941889477253974392260619281782847450718470688506699090945326972504674770181440377357023773256757777861001967542735429880137517126530891719733115988566726783812972095764122043260912639472861265712927483963366375245193840369208809319078031049657102999823788742956560944680606458532951306832839495509749779979181235936230453744543834026862001210298265203575934267529581221882586642078199254238454716540336149633192900881853631557203208055224321675728581734668488350401263162908782244122607970758240237153105096805446300414042934652614430341694713033565100736940084450010142860240638477390667255306055345482817807045403912035039076394865176040361054168240040681035248735073826235451233768546773581969382663428424118685247994259894631866669780987586853201478962209655851231209841101898795138596074724893484303972246401908445564099890660895094845552878504306458903144375400310551238004883127446949275442967336635555587849188486045603197355835294148010844650396842520581214839179934675764340568094928441446777643407520071204999555396922886721612311491497833949100712306904857947766160127493850074979513873073040523789975033213113312436973113996929410638864462234379588508234626557828406976073540117999285428627170407345967531926356269620051286593890141004946868294767821101916654455414976982646711579103322378293515622898703259042803167850899691823166634109418568591440242119609207969925381256925926214705583135846943379561027992833818656888729557521849647741479568583220072752327781894518880198309034307347287130290718459954378911394569603495628005738378238668359068543257796512337104199174592312100967460349750787717422303137445614813069580992969259753482429044859200542031015896386772895737962086685653200419916741533764012404651771649291052348212104745584519072727335252191368195270129457054843785160989484496499466469371449695679020602227839183451436307215007187965744742948974013967797760657553052117176433259458266288600597426988727195228028242247632875417876800285882411762550310745495980550771667851945292204474797615125463084762448632666009283696116740472479720230951404539501436689205263838437363970585169056589051397549864899290468732795878535192355927515296819457750032463557200293517561392016431297076218439149705907949159643890302828729297600781366433123273534585381763368104716536101990172867592231449871872549423307859930134704483462337029173103149124021775561925672281079984045558455835360689154513457546550073014713429676093997308550965501919429350053127423076939141846911199755134727492587882711255663827138390286325587376196244046934320454722408691373167320740381987788994257970619481966892767729078434683881629900673642358353213891771723209112937602996344295366230822793385248157759203799905676375378467535004959297423642721251279951937905635108419790448463079836727953921606704883562301428319600844367233463950892578029427440361549259206398630112741719614096597513265618232091944832011885296864607818646000007719928370503858430407972671662649293669096833127600437540011936990570169955635374729000081096396297806584209129348382757487019471470017510365782858099504061202186694360312437176177704097183197545505484995297263815704045759744297638709787220833723287205976133112979270079799882638238186149204750926946268908906553548709013530044911803061842052025010313137520244898451708603026650574721126992264034401761494364030640305270259971957181526967031771879628289925978282681946659476279299570916472143795929730313454111894198924158589727685484528891832351125279841835003584425895884976299463953328531698254916930177793967838337684590495799101140300738391501926123069366077140688079826050178909926435592710099719270718192163045332395788778688504009452110342779960819930491141701827477498666368714663343443007760082507883228975817816859536458351229986835401064792421494198195169572833347584425657229581435249190952985607767969375858582332419149676282059987940615266863848131182259681663456597383746814556352093643692646658584063519419798370617888442271241527220462627461977996428838138718327795641473373194427942017570489149087857663087388465025686672130328895609791528618318473682075863664333964158903942132770772720446410918747022053295499979691332200203164706065831858071980469297017283850881948313735281148864856614775213556099816637191082170007904072698274800119408332179903025919307256429368237140736111024896846767926580510507752063036857624918405212825116118245269559937073744871737498728922709473375108335606055313354497830864710854293328470535674465205335582683746753996928510076932582800900417586886907963066051395682030163248657808558966582612584603626236565773427670437056599482266023781929032986043649622300105594045522002189071764348749302558818396741846126047832832320192626686417955888604173686324091234550470731934425596363659344234764741678913156333905625989892380270229745274707817237506758164774565817251626242683544452146158838475460059126134678406157194492557257441684585415238381839157273973106898335920124169294039733776841119761748405752824438586299272609773487779642074329551004054772637601572950515317384385734058947032116982883070707245476407204854287650087130466370724965465292398506448848996572970486974977474207696881909457734501585177824721206670925759882729445826926034687883463759432690273655485154804514966955043142649324693029970045425898828177124637516655653876882630617019899595605536049682581403174803554161059078799752428390750408448600749987911895814652429489952508859700758685387929034047430279678548691270648757654178116670307420364767811639938895208774343323895936609837289393404393442999648739934643693019628652607417233572325077365811043869747341221531461887289645697019667848015358021961475270964294805391858924242537570686634749463552026066697029594243403677194630766694545826715247530354634539617288393465445563643692389323210639412399615174075439282880752504056564094534425594230938457554174882273449092829820075219473965546747662026960310930168462542541882532459519342769590506353579515695817755523678068256372727856184048049770547096440002570077918434359740170297257775711080305300640906917540110878655600381133120468291006816712525672350804174698147107502382008957708055787377046506799829362513190258000358162407091435258920903820901388279526990620534957443299844036419291589772656325387926818361234989109111199309410690501588561780807980523849210820510643511654336730955102716689255018300411160304810309402705107667411075217236738760436552627759158267766293908825869522985460646158092907633626520530835520423818949764372832426536165832461008824436695315277142684861622785520690839886198188299859750372666517406792720111367289867073639340576704902392739341299591741120468810584691341492654206359419368392019389050959233925746944023856269692423688849116117169426862362668412211487727092356243610909597369379424702359854821214947684461411417588476153270407844267190885579063217017644310057741052443155813057212085563139211069881452843286452328204767142697409306930688675080824626548521597022299707204010837180326537848135640859195212485572727024531958996100220770402961667028452709112776150563865472430479229812289490990177364629878032694625256227906816775570333291576412669742240426689591605848053810303922211763400417428871761245963632508032402851034378381366448730987374992152214714257607219331334948082938724756782093699538159624042063286793641617269265883120836173814557974046481021284031215772793014105794368601050668619631115875892436658492675400743028340892412933836492144247092919184872552670346266645911196773969668324464373315100105320407894993230563622431813443634298291222862240798948084602663697569257381767329607856941751995333761420276075013757589914175644904511392069291941092571315771909367395967680382680955091327508716210244193762360915722201774215596737057622894990075912651235006711915660640162040004864540384908290661256986988214276530603589420489408178139220021080627463639064917751100109675629866664289490812945375721110342739375858870635876942036555680629366238250393880278927778809944709972007122006520855399344414983383435046014295615339518427117957979436052365891168334298676645073255085618727642119562723371046071492585171443901763638333026175832884738328569460264900306345293251325815776744006260095954026083865262045530236492230396235750371468018068952828534963756430748706020052979822795590880516788550616604484094244522065716626895468001460496572130113362850530586112144220758468093672646586993867026372829894170537595684071606575928242101805345837459574633860735723731971210708963378965887642860996586465571680623427727569571042159783435313805447858451081029165180815337461205795762328855507645916277408875365040885898950324726948335823533912568927276519411635890210830555877543913617168308489638984262431813218484435516581543368406345702866921370533455171581676552254655501236605920516065524069431249512432478833417266055694623955056368500328201697794934650290655088172941639476882014345811437401873047192461211548506017778152526877460231034335634912138432212946540043371923858261815550179143709673935424144120334452417629551837174502545789256615163849070665403202229713381194491511217160874891368451098039512466380544200919593095286525185632461835457214553647727401059439287676746943335857182811004832515452311614027309983520764198151935030231861767494952107484054078860015033252385201988781474393152147065949736354090693964996189533290429087135980299297351543856670073309397276250318647772577526223126024150956241573110701092053900108835176247058380748578954805257375823003386391493682075935259838057868118811831173554165396171899198732168526726454682371051535954165646566215846415353757820130145747226749152417010836084268564326847118684909816139710259025646974983038954720227735652675817362484242073645692169912003102864578668746614477464386630533350999366207677624631331555567526654885794631308405893854862502604963428316006618344753728311539694476785856233357141509372125142848055488660306659416638655547804255335982646177893038780500111102343926245763230042891037072456938451495147052024366114841899096354027454068592555110510000779657086571061470027020926250696059191009844366782162315199892263002671634233429170732802316478535240623291114113543168093395415341608892982796613385354792080889413415911765466904616770219697376175199025617050090756221293892314744557464490356845546712261264913246645761924619200836980278504808621394687011546605305692805984714604404200034611016240918729835712970231614599226230254862038422368691968693283680518267345251160701256168135468800060469507149367693368578197050222346588481728021075736251635526851216835974028010622074838020330020263401293572486510634528234767274818032390674484899325429198279480049464570105926231769723878330366397156447948334129173425046926948232522787597386543596451273587004162208437300187439325433735240507013526207527202896967043888651112046000525976208095175448291555101703328965285571428753397433603473354610610076176748320264657451363315141639811573392219595733969523086239108237246386722898125747292703913831943544570066640986962621632129464508270523833941056014159384195392127371738630689035460921261161127776328635067265694864174120199542457666882601795957867054357301376345339239305784685025662774048560200355181497595782887086753015763761178120373745219533140150921554888987447186352630489114643816840925958937148172361541804228248342625054574520751396152207840776608511922687351227326061275835421948414260022232589298041317127057106253060782117152964372482443604007406143432754404659848117481497296903653854257564239659109159029261881628561379770531522419921908755200064442491459749997905917333488583404081198183975182007705926471318902013716755620443548415519198275011864622234811371294646511527593527888915947281417774767880589189787442071853419102061763852809846488252659805425905035700968239177551637623029435372398501702225782029049508806055568028559012996478168228074214467442370701253922721728434299212982975528152363354542026872441396436266131966549636956796978600263422634231395069931631916153169170914540678963918723321352773053891765851387805695826297920855871981796298711350252865029979643419683685054981800837148261825258004589645210770430695175528509294013567130200788708627141349216674045241823312800799972967168071592369514460088966304833840676185666116562359721237626585189884297576568611220186973963939490193824497401062072628999074391779009100744399321440203971815653112186393362167141100458307936840512257732466385738094851323517812176611263626117063129312163862890628658065468324873060676901941899286216676104667730393192000319835427232432797207634773355005333247665371960161349607354053624490930606768577735899222248595080636908356860224946331105834675648162224953131742850464090249850656666203484847811495247052153762873587057788107079069247851453802347872203106037852406364562464278873248127753757222873110369721126291516106487212188332899126829990548256510009009759856297679017536156754293036451127661098353893992874256939869705184714930184325517424371673631700754589842188310544773631851703586557633807011873439484449693645587249563388187761903220749194121129805195979563849363127107021107697944691678974959087644465996412926025227658983924630057623438185841816976087418283539865621252252766193800296067076237186440077573676800163570521296380435534357442254281001996771444727963507501391603831933324816917994213267586770041408541424706272703676323728512625941353614128224764235215367645556008149078727008896041196973100498974560892269164840745126430006341623500974722381245640574522371468764553311046446256344686573084337036570806419815126086717059759302454790483803556889382527334153139713940047970042288718614391612657325864900211751109763485995770896663949496698994726288250658316897325151024242021301171459134164105833792871959494509859934801546828092030284378057314190147087199680621373309113088915555084207562447685685245422025237649348084076443712392623823042367718313393874666281139211007642730390612274163952456156152658105435162056705334506392804893771134360414841305208413778692490990759170413209866093054297106031401968129742675905036104736720500309440756226781847922996095636400522159972792934355351244969414531304220685463090699055122173259657071084843930024753759786658436758745966547727229092739364211596499593271604661384536551174385750385848235209154375239080374694149263624884119608044373423981083849125400089077931780331036577104610009255906467217632943884458097861554443236271665360158394981079044009638263539468743208489149210558868532718262837836039568735478945927482569649284391991549292469628455719651543034657226501571027252735889858227301724510920135257948978714665840531200002416609666580715820933943782845698782060972978381267439169682011039341662182241338490063057045954594400399250014774224228358415769556187193313922286108854561154421853894652967615066779327847238236922129642158941148264964489894939277504695456634022144834577505140023081328549020001768008604597890991863942575856598408299635236897405024368719134519154044008328660287797871437292341746212576437275683168731997072036078267249690022141475616945873494524204546621791603209534183216035614418513408909796436717792920666845780639303047589286188174470074013711303433071349769112691070330607918175832082929514941836067963971447780624726928630066280165387047273536049539919195218473871652635622494639093046064812796007102803294010454381916249437147624926061025403827126016234473175359351826174233152868740793756073295787228942209552643619135306210756335008369758674095242556695066283168982945557763448835950577047407378741384301845070550666749798531443774419935244114871718767700968996394291982327131836302440158576021017913270163908017808712939446578956318633412859572978306658241106556430333475813340227690024646753763495920242005725224490528174541013920591551344349778193257744064609719503153465471508064268985948484262674656628977378526602547350748792780126985761158786650417484131439780314278470193177105059313638661231379426344330049240758346397966922166534405053244815185787048487290517508812240015804694895945161789061975966980703046823075970978071754404949490465998124817821405970966872844272677488891592755116136648933569208923033645953664721094335715791446365607871140401185548255225883526970375796558409041290750592629654568055708753815473729643237050989363200458808365866305548570020342740229112726524505235767836520744966721918824691507586769320287471497466957667983194744349876386297397940574707755565772637709062795542404790740871261440974939441773793947243986233224356695826385003090296340534148459189188378169183860720826738685936296670565617005288920066345017620396368264385647257691121615953019036705174725734847425775652106392856994178664249414809377404958197059402265578716967120657920006928349950448470604660268660400551475109325117703317669719189711634703098316825536988949537725072092896584537167069743719877659663636351455735576228580980368008157919638069271168909137803889855369090759691889797449740638578240058174501914298196800587251209452196297845350078130695195635541278919068482712787736577539651191773016276662614178523175164162645028761316804719366564895731719832768943770189000564567978481616306240214325013557584895252592182172995048878126583694294469148615092519084542765021036185562717939816853677654212414983402962446044388933844400396125784464833826021661836192905992885837858137584596206600839434096520801955743190286365227017491705960426986470339298705886367809075041089995340649737711858116115480060255113933416005290045861918419441046416363110260975735884146611019109440837534359721401608546001392508583695004095009736426564307646779793005813049280662637537449149016769912245979219040296584566854505817972547433406400031069698660221753447218606673628465123777340879716933347823091310275161920726928635809477017719640691961696920076740161712697973242763204258844669269173656710805979704780196451486791938068753074774467163738626935529627376800588965228213259457136734339601709878975175951113912278661345669167479949511398783128441010907369599558230438133864879848710602919995679559210585132249268501948884431146282777294051725562747861032482328007125585366503453260342049855960742593828665370889168400248777392027793820006320988052346967065792864521611377437885871516020918841962087852964542676607733528291783010075219620098790250492825397058643236805411221432841760655038231243778123589789552642443387360666701844726739425779282760100797859800382970509975372159204382735842983228388704949590181793633672726494351126342424290655458946831835026540174036516013734795497130979035809584199428634711516196964102676026464595023868674047604903239979037951762799734643582449152730410447754932630593415347796991565311779227080894852590036581588303915649121325262998135292722377756364458842185217360822734010315701296059385850441321589737654971384798735708016591046758235785881004409151777132294425324129083854791090898693278025123698659258247527345269242586748914022263888215019477609004064393684735875165391032615971557399653847532042293042237903702017669304320526768522714187319777199333812964909832120137145306382790567228412400036949763131196452203186424273520279586092982978270449362677876080285955603688131267989975819649164869854486493385179391363402484274984692751249475587255491240065144918499116780907420063356908271912498643179961093969432069866801759219819068448218107476313790412184307148410122235938089491786199401616442007340408264234899829886387002078702129103016936678830382001317238182197717522440166636297921642471621341336018109611449097509853536537796285431232832439804864465807946215067859958940647249600559298634346378922539161655790447537561045955785804871499762191343804766270510739996207711843842757982268948596608879430799566930858017405162538993214874918076322548753397310540592263437483808517563411767120830922940418558891917319820888194304303916832746969725485269840789734157807123049685801352547390363071697522040632217109297085362933132347572809224045488652163102135586797622317460823687496468628486148776058370282371811424409883892644925889386066623601947677034618684931653666980385154899492041294618097795699075310710609851963589860165738096754136174669303020620552578485774353598099317197428686339617192105933969966230311997732785414320723074226179254012226114690037621009958635649027111497775896973117793662223577855631210392178906105943648804856652174834028805195417307446476552655335087738726921496882087388828622025594469099603637870242222708402814604837195238072926667956141239738547361841852752399682178294156536272769801237672076908503585116102325261575130601642495610237403360583768636108347693458941880534081922246654289822716802905263844058001222326611439132136959618922156374420969698938876667938984796333850853596975708333507835570916453880100407669339294143420884371045871284208835015119516504862736286322584078196306564082029431129963049816592606876212115547793350548886387891318517605257485076103864441963899787479476971504659054450718065891419062524079035223047699167294208579605541447675571902236452768124507405015025865141301040716376149549541064598106735324184153955337911014186334637900550770876943352605787035123107337608483363440673678665706156867614974152334512598809202745042089005860728230929493177596953608497044765509737226301970021014380886706373856179613896590335642580122846099540631819454959510165221356958464303290689704593613719011931527743748892262161909046524007514398044498288445337438574450847228311323786156344001408790476778142432940528095601083508680412977377617366130054279856331883228937874956053373163040306832031843198914539938011651004806721949966968288552397791263723171261749516699589000994087464092379381524514662405709143035769873948016048650744106001083720907297229722964679909724699857441362704393919229065741043517236495579827381225216362083599708821080934591922743139569321839374815232284535936055465458081728799727941434933759234900603688144366738692068354768103380676856469653129555080813950860451281322600323344875013075296028636713982918522337111116789399659472926689727591170192328589770615082292400072018907924728961180562697959943282503969681015655665048725948673307558865525832363597093916277256682700536263208165601568042011142614495058841277874793995824115219863840104420559030042954947383621270045283169479348831010095582817703896301615492480884541810024574220180542179297184610207727940048540965692107205009195335830171619305595149817905154498642976610290972082416721220409675761412314585082105541077965075120551124043164870681811122564897508282684870462116243060166851812169351293594265405444940428526690008670068435605541432779928982664892865707913816154965734103405440202254352450236432618983882908829358350737195842522794843159733083654763660047604633360308331107748965352374631846536376019517522631866645626680298718389178171583069856781867510940789622190144222124170108530751641279806652930865100172069255372224957940757216185142305786558843895420039464940016201540003081755257443880347129729441289225776475669896245826690360946410681116830467688035650812196546572270312751873454027178036303983992152367460814398542856271705193488526812090207175961409835801148244806054015980482011816206118877362310845921566969680243039328156782946996629469040209744357009099024213607193917781231005103433691874447848708250218294394846200252910411521684643589816809500459176518624530982070385566317983946335712726866959590893456288940798874171194366583351300971250818276461675452506606931636911487103175838627339032699406309894787215096982407365718034251967474814990611329033941639847815517093331505282167186112815490158245289637899343578972527254530716719125318503426153113366555073318623108335902876177739489434419775823284831333566736107039806044910637599094549673772913858155296425248841219138644453588034830230915770366727120638626271758251327004691680520202057594677573858762216000404195025881081059050932639372304677940018391788308386838707268092928228754073998840958998586082395940206087506547277152063092598117425948227592359169522374812766442054416541276950443575908389267266140146488301388627133154485475123388738534826479689485695204477581012854410274121197740256837846026077193020414918020954316032474668380208713997696558777077229488852114121148367176079735395045533328159961915866736330318144543403299477278708034749577763852884538980718967877157347608111165930663840731583011240401948788676767644286916518922882428397487542243858744013920024742125751535037943860462895825384017257819832090429521609755841642902449957700103751621105824076268359864513923436621259808742291611896950755860387438456286344211531971037028371126253018273501102315111817579315331671803672057681211962680899819692286705742507810517487285740525042841731599165280130362303121107359388440670847230769768909739507577817647566978040812383766834876172680133622546697471261370387945055980174971680823086875942618410442526521815520605645897403446655732936136700134250041077299404095929991184934146791259744486645755477934408835123744438073964520959889064085421578724173114818738806911699562038032541287326948283879340852188518348516531686113972114192767954928853767595827068640488644897585223187111650647547725458658106195112716176675081564949346090825819731583736135271188390909781578706502741221013434549512363814421810448053559184275718470330131535549128560297073350853599222953667684285581812800070964005276527929943992094511770940581749733004283160359557568158638193388700495793199497849054743771050717865016306652225815416536242841570356045223303946362475779570991902302450311169722838887931197900478678662762702945279767487168768925710429909664349641071655670012306345490087228000480876555516806523160310323663885512924257687512101421141463413975661970313979544458047995837356930343272805365299990105837620984751068211139285883490228705766543661557900513388146693361718672878038467356353901320937123069069038091990164910823608033236720516157050549717344143727536197507179340820244903033273912465133524711063849518429533419906324202016991079636976001241281428773942055212223349646394765168982610517003754570162821833299771867518658440069342143039940543241196075097654352597768483695023392874057370093628885244689425966969902675716869935722672196281064568208706714244194083719395542544689501450788073684436059457440237650518343688548479445942798594156310233200000915094756032287120457597453100002713248537920732346682027775468237295012120323023895104929080815089698140051587863202641944250602957665360702034840235950948523466382878850341483046068156531246633088003124317592753344420171289297848504824923096979582895096664479842188424727357341619397097833228773748344781456274866356159188538404299746462107355291067631727776194944538949221774906303607450133979509005875351239292461846681600593208397430512653298451923299703010622095953702585802775765683014124839165139090835078369125903190775059701994558208855364394099915347323934505319088404538330035662682747365447909370730376634804770703892268128980522543338697794300453384537443814867198097700049164224361967936543172901823875676657681383282141186525158500216687386655483635427763516788903798999414210924656489367800208687378866280842184601841904988211750128501280691914659884710219654261252648595110629923252278708077114380964941015041197517254370645243602608082713509192080827717019293476361136297165084254661057238928243820083762730507943144406275821324167197482787585356590618581088686470467623525415152002333142540618735477282088601065706652400187489157232363772826050095856162662524425723269592366896243095005086925770377170013629211858709930910391206100832460220525019281559299234896247549018602159615589828153151164408697936492466986274354654173102256877429982593392398958284879137812657438091707762513849661560378280232131921892077146254796192869776146744290497372817010617739839384388464937470454129590340550752105261809182003520321451152486987742413182311560281774070066365728246903315402350326529395599865859191503457858738742303496678779582738750322470838728603580846478141629257418678481531521845400088315129783109455708160000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
58000! 33456523938778779848028530272146500648441189887410007947378195189586194346440285800877503709798201130915062809072282976858325772662614295197344895869012103872004969850097988428507402900763108796832881133902239944053811606059426854941932228207263934149792806299736721657920000883551757251121301764960005230621736407249982602987861800570879361729043751347657687351981576458055987485776554187066928791420279606007984739610022800757721418282382831436280671584448814197519271983199717946986113405127762945414931986540963535548723585729965173444039410426530472021265905550800198549882136303403433128361148859867420688988103456774296785497591843571236383008362435469102576270445559713943635856838338128028671333795453374100961269439149709190175916608681591477348442598039104646474187926183396824479881976207591623644606905251974650630771835446157273979168024288684201960955115962854844554317966718066767736059206640252895786813683084210751785408448825277663552554476106328279870566597320016798759353909508336791349721685421806505893082891328502127040618400521365463889543315217212420050206761770765590469089942821586711195852012558155841294739168313017073886979161699000710872373796164114685487017135620556014227410829118670383920086151838219310706750850101313779843887352552771227312881253399244239895949954984185656066749683052992246026752331701112735143154227093685131753412643504452623327785807783188806174073190882226396748345372526920112521988537365821614434165847237791713985919025226499454210010239724452894733998955909316754790707668415043587145913441228006976604928607684231609515086885139009301697672122380137930203494320125362504643291941439009814447225144148323709548742365259163601270041161504838084885662596534174477589775040674705637994380743053792907825682863047846081545622656108794751701877756431274070939830573409522579240653149217944526269987104211666992157963264333898158639955945691003837696459808462234690231631144680153661659186783951416199415723149892872234438139217702886615860899840116997068000507506264296011538119947986558826482715715750149010315314848457598239764745611247861880420340999832191061248048267195188861456529899746902895500962512371052137834008740356695055057944522050885429994476304996938317402353143926113682429495967568979515886850037671819998661790621786773133477509415133803132756316001089846816668103114028235523041988267804970651242930224656468244662434646634007962370368782883887391045492473256441891429148642268133806082476110503238750647947604250483081398088184881056065206657102524620231299947741147171484905380795717972443821046669350942786643625570850255550747414640168902908162659502772958029976581888101448918084574484287677596568635440602460441343268917202184624895920337482865485277042031723708160358765973570441950870845959109103491554396692293351425183116533991798718022305154991652216999358420213343878996313466563276221795485409217977401489255277428802317647958317935792952017357020857438351748284811740673710657355266585771138564973157918260982513451578564547520106698023151826404256607641945357052857846265873410968411497740150265738814253132953711016505095915163873757779352689189094520466909297538186469021841602122334555663941372763017329938582102400176156180715417175343574613729093224370959890991727650134825746753275323445298833125852434194856467953273625325801897060222578407303415150039080384217918081929664186175538744466437122067353046916836414636842842585856007528299304137082456332128784618922074567144404764355279382161592849196616086726432455569720437157609566747029471912798288371605504266440720536883276900718003931808983074460670269552800937181456325109266109947159598302640498631085533740898423760153174451405020010445624065826106488784183454147122696136870527428813091125715835726579746176438555876279330025704036333323785007953313554521246896746650053891627463565030411587821858746556640526245538011046853477584020171839255998072328677482231781843628212955148716482746417888615174085527838175085312634333255547999818871851738502349296320655489199226004997840072529299647165487019867330146487061564108791282909051113409623083314539783499277035650330150646006194765925933940552352298875862527516172495079163103646884433922140276525319016723844825122661641660587259910566394366732588275995783371926553289115159756949211400792006950065908678217798130810715769603026664094827156956466601555198969579868744853387742796430459669006735292284023416729393208271767991909292663229930077762498495946265060648840249634624173004473274149627707726632856449772864931815177751696924738255447294832282791275408436484495964984078329596038742672208982724630930228325419503442743976622274364549647140243483478122815919413696376289410654419502740213339634311529215964537857514705517327194495200728254731070198892297676671088363997524746859295929921292344509147909851759836511293387413182840543790178475318405350119634270350324772664423289406182037207516577012330528503226707810588472961069367900527253832495209044284622051761892789881455869423901333289613060544492114705897085169224561754505160533281638525546281776623720767462289831464890286416123294583777928906525987207590568550816381972718909822432844873339793894108119507422358070969842133537088035321216550142550974637085083793092330608623980079006968030069162917336915994594273078753715350653392767524819532633986591750031281019101863697690270560566036117692234870439414488432383346087798782190533007975451817498557302783898655965720789600158592671236920832783832906738154018848468522693030188460824923879617718188559158753361865180126230891096211255566164521846474800457338281805378079743490127550336349400783231731724265595690578508793888645297188411361154812393447938809747384490312882520573317576487767696736194914572619916072504390414115267865672567235107507148737761585918818217951775052255826472442912081346492302948035912057384294532582159405227629179218239329516888283672271947934074111412475829304836654584957264189267557645822981015100639157621222502233254111090338333439723168172199085341984598093756485929224885458233542015118261760537479108900114425966073993238466493393431964837708598123195322557144768423947596430230399497019895488023506868866115568369606745514582901088112523432048626993578910450595926277365589409966851270902857556693103789909108453349644298918974824731112338688419028083982590555470049749424944376619016306118558115471287497600226186240614869610159632565801011014923661707274342088647002544810727011892785639402378708419210453235752855483533258678246422840509929183016234934852713939504713029007877054368456204809098409930015990320966581016401056354135360595070185083774512667688729009100064848904282242950233014644124313081099208217002120795835627681566212735223928320057820009285035764865601416532412352785875135986493200992700384640783711171128702059643352775175234784845927022569101404036853742262360830311658082487492965578758502771200307357118983989961559732544382954937893262370858254872333096205531340821700866267413835776377291493950089334142920693077906473004118431410189878479919427642010328213632026582104248867027337061404024995459141199190498948046772976140356241859045290797645026528611111283407221727898088686285624875079657245810866031563254505112906831681895703761644002322580722245875319836781875062570081312190615751804201366520984468014619170973544310423541975751626868966689709770156452869748632229144863138625318597835356427313543789464306097536254273589059633661787873776382848642704586402227323839209398373749867319576491309281549295294759122326348866582669150415656793809575906899379633288372019411093596886809061416383750143182591963481389084806957099284865358423937056201275146365140892005493123723491903721724328570371833512939947656291177388429497363167059314117341863783714421665888900664315584317003822914854168642503305797504229549228069416069585868327803110776499743076353399663929397702371902628816753848361944704067098130773231941206321524366147249504653039356969351781813561132234315242547740487174417641373349061896132394803261637940356935521108405279542302549404342886769413658634023447602165678747173883244099753960880533261556624641505841410805973059924760713122336670695047592415916307848548472049425243225645471692660515733941542296901464352159287370954068807798584508874008681692578473616209620026369778655998317173773615774534343342629799195669755113000382533177588228993327131563294803734881604517493548728947618901411957237247912290731914495135707054477999899800379560760647596610425514351788781345591686575966634242603607787256486369735819868791790876816599289567403692943936029724156491526843960078704380177650632967775692531104938346366942265517777291732697781978800702100922209807465902388459382539761115764112626039596383466552413104859089843859049374481620015849525724789993675422290328430896771988770997142384552190732236314555216659197396092529460745160438342188015534906790711520376848730166153920741939298198875816481455147623673936921501775123920055524201684414030551811604329334512100992307275381997981840570301480476537186957652441900124581851523555729859159323840311457562959041879772738157521472289507084670635836680459621487842112530896344036470596164170410151464715632553389098054780374484440310386113741571106847084604960023730789398984449297678571972706745455348916855173469035206921320990031272160232077178769304871287323843437844211949756167289853684573732267501659553189392457685790226681349646356894942287806866316842025147128384055894881084076296199134383436504165424805152213981669132442788915650975625283572063351082218221172959358437522352545955751404939336706843127783134347964342819714196615066603970908920175622271585324071725133333461660381004646652433767819862060427705031343230999902351669080848587415786913623610986252478336604685482514237473326519745980341095113109204260222393878610280231545367543391199276218694768874717353333895691059147304885582665165608661823068110182942554458928249810591128973366043524895282176862990801942865236578487046397847660895588596041680885540325605327945331436345550361903943125123289884138014278874724815424099970763291955253186317812568213146637955173256644269642213419141101326441074245572925473203873157556896952536191912114386679880291853290771798834981427275877944489840449851434464635698658228835333087315822498380261804341878877346262162376624818550553306569889107790409749696683312956006025761483618042153418499675000947899316556030272843593571142806910755167951134575005650456152689475198067213780850091478727568575509633044207132647043629244698138326769154530652389807597846207770669396476119874331228148964784846141352550116544005066741145035959807607233331355049072108166478732828812146930085541912710410613593686518854922858205810097705528713199608686382738388945069602338730998274873773305016084458914820541360012887256446101110059001191580941940390916715309303351368031186510673607902678703945767965490578172802018965923103946349286361066872705464366956108369570873751355822205634823037739077340450239867348199911907339419826067113469930763947949682743630164000995641925731941218636501802398586616065062198834815059884269391655477730323504735643275387857064578196016092738411562581837094912427039007253737222437083715262019071670294660604832555730136018831249543654322212516305876045413055554468587971326191295580439334754490851031461824240565725950489734781798357133764991810893213075875287336452970009291503851505914076018308318687605594355255602184160069970663388650671907955224620349868906797730418924728702429995996302551353283575542462343171018000336488529145211637306105825334605979788358578502879125398859917896122368883409814410855367667380716471959454058171715142734479009613115174525952930294145935098246382023204890769339500918784222070591928787584182075988797819202566442429247662059168842211852635982589321466548206540901532726555076482005621022274745171344107277102464060315077654798970926504928512466903242597695340155262513310694038428562530011710625763441389672341924374534884762963880653302156015740889003090452604968174578542673395690588147371189450788112202807596816426344218751753612421545253556507988279826942151090160682912081242937157801789449089693750688427530048250770919440416794892596902959600671336800039765747112621871718586402985422833067347202178451039352990300534554994058030746304335667239642427507325217067636948765120932714836550625100815270983449475373342773581314235012532265671830023614850789516037873474729414091261085090347082342471526299105960452356558108780390685085124090043729616626562686817580649271890203863302825346011639455028379083641482549426232868610656045934051188864841750509932243084853285373297732389396470040488103499180404264011100049115074383694295918480783399435736589020337863986259853429119639012851610673295733037691227106686848452722639170321809825811014484662250374209574495875332021709112673550212782912958406283175163083595467191458454850914057068956555678964050142908613008431764169175230540232399870321458820733595250522738299470552025815872599526407445090959707251049938422541742664321455749495956523624077474126689662511219560483459941802750989657712874382803052204107000069415190076825631226929374649971317719029862849335312171025926891011595445290505245519805753876975426532661912508670977340051807394610256200724172366079298513737009006347450280100898715841895908749546089918282751744337648280235708306883077799576763155406970023860992760025733309545819584520463573374962046992288443695948247867188629138912075543150538595561053724535249897156736492363645433327472746532099451736382202758188583581053400920156885513981393029767532259284842569620194081103073582365507829763687033382535868531383269658427382582716617393912238487134367513772675305758979284575090994879866738955770039762033762883518744050437748393671655262307609072248453015245022481456783580153452274642006484588795520304105151357796034441755457174694702496907770786792636063877774269557134001865481621155276225420302963049405442935178206422166539172356437775291425273303853179286982547467053658763282051670695153183865814961559983774892647782425004527519732631932979975315947287521620832371047056928674596783089377642285349477697023748457463298920971339065544504998548283244048183158360120679666706738815431704716238550646715150625186583714531616628551671091121050648459595280081867794124059984184854965018810591283951707790651838447774964927589652174107097330533820627065486612136570786017642173546290318992523392237997243582245993244177883538382727908660898726134754924394604965683669393865716335420468915664816479635060478111058755987776458268494872208539283391176379453791980939868434010760455621463629790132040446329203764124357882643734194651188276888971881317946669294901167480748667858991749960100354479981405118664371705571945886292272170185433275304884718786704430155382119812854053461241729424737905588497797166366647109879230151669216300793706151794488538857792887867512082008663471979999507338607547453172001231148761006286979769692339384566415939186500012308476466017245639012199174759217716859236383263031607099172968861399524974220509164398829852397698093030554584593843359101201139119178597516311408156427609730699404742982685870713457096520750234089983041267354005726700650980598884259290260525728179345062361863357107108374561906220660912683567370416352492226561917930841169104515742220832344267297961792458941867289307691548326389761389449671027960667633845356903351001909412510101571483198862777099293117033539400925895698496880605771031744537623551825361741297131157742569204393527759144735112029543464223119908755207120670034636955647960646804790947017125669300870927292421228638042734499943555835644446357987390956955890777320651355317677839941973930408410515626650367956971237154740876452253929042675792488983933991125742446428373494751599777637314328122174984521529542719892963745878779148278101174034628888112576631994653856518739943059695838390176587853140896808399725384737166562607362676971343505727333719718915563903390895611374413558768719338816954204475825363891212111989889782844816989831245617016863040854520258822241513135839901097493104446271217540265513276091339886728093231912734077925547197640009613277631219054057594625005833420619318371958333339903500452374766747031302142022467252066565961411420291169674357201913133491860216650231743652364796438037719571593290831468481047604962642981059653078328544578037108128914119424273555837015764022633673561916638941048448727305825991808940521233030796798212292892747264871085781076964758341497353654535794955344982764688294224384771603821856333726518691807449928142892834508625635451244049323889899059349446502850783173579055736520185025330841748221634478193137108965348823966031173613880919520992047782243979559625489765611370570364320877413347825008275299972008618594232795829471300047992090951190106514862925301407238997254038687450128334337906517314967192999784300660226360398027092986937595733301944113446673554474945226288273480356114269923818956923788874428220085752716896305356117427230577841141892455763997958821190309557477945223746939764857928381276634102673922562519563945465488883046535038188211828224411348854394299093347890045053655483194775110497411243354133065681039902775903128334646434373471650553656326498506953812469419760688233120836821239464648547266297648293161095781721921029084924160381952689516514851063763814868506745011830403355433945280089030348589611494496133518442312836614882560682421464022943472116513627729240459534217190769154885478723395897726877078325857226458723390690417849746935837632168055960732685028820071878541661316536475976213877108737004482213741178060865298512449924746475264953163268720851437772436533070089674551588300991027878470439899939346350380058373323059667702455445745551318429005977523322493277261310293566932668297448546188031159934751124273438145523348357424286620326639144617186295726947591693891912719928215802930515550471223360828514023040666096126360497686807828899888706683011140452953596689042571748917746350725000036058026750627544387030595178210844817086082412731409328033418487234764903503280913049397316500051574670938057049702485149731914151917408282129279223539850023685731278502260344156435662469920118502771913069098267252897899138358513761656525547365663764601943796813154918347535930268417903697702333617307841234811006674258372660389441983320671629714364165782340095039853921123842311212318790514565657985576178028914650159168031550034512543026367172426833939723884207435406290101715683310640957405289596993653450948075238822066965460036947056358186552271639454806409460130950861982200466688005766044694861217400683611917950030700818636070677936329763154646328072686519593744078011432691486490673458014109253402916354962410085991874732467094668829535551275391603650714674779625494598740285089567521123797027447887850927612902209483060841807840949026631141836630008694742474676665678878307348343137468815089549509298049119422578074053347480260527067124205627824499039649968716806776197430081958325664574289617457291002447917426813613316639040735451369046492716970640848592679214150578247621866490333032673172997223587078196694972381398290643849070979130638701021501691780238280606187341079717729482656871890876996118672982860310947640935050339489874967031596182675861692705996408769308488649016390056381631237944833539035590012510440776172941530263618713217969774030807414636279968592576783187467070252001048460741424647324834508198880262023184561311186778119481276876948609298473341800155431769085903452342041341817477354078834420015605726870721394598254103461861893316884716529784119251409508625662238049939312349261239573653142303842395325483517491292414023504111978652811032383231963418768948699449744793313127888153098803501098640278893030706177009177505538033792936170504350289332828703984064451368637729263106584450621185740673863922127281741788279815111315046120341289678077387752669133780272752589588420012065265436426841787836632679124276974701630272052993364419945915578456317898521102409752973324267404705797254751059996822281573587287335815895758626709491264872798998499220558185843859938313657853971140297589051251429719481412781428942282825338769044919353647183769595467738386613725708298496509978792675475392128315854412109132653910375488810660158695352991294596322542762943553371765959178531413234074204886546192730570681678593541375219082596148661796039629819610179393147991185674807077705548833930922555384109803561850440984511278758420768091574344371752662836644379593605471222543640010114706945611868867285292528745042692925032373666974801046243419347226508169041584455597654909167589859602481643946715071216138567027851356924261927198913750017387317428136937131714194059706695474517921502159855695069157176104387744159512738535376250143091453397938091491537708962266756532218030659634526720861540496361093309667885582330014822732249880587447336960853129600154365316218022236938664212205853474770718760684937084567744153086352154739453508378579210047045502934433738430797692071085909888997247496524193536850107097056679639900979829507471731331722573183982265758786915925593211421948164154461598194753035968871377933120714187894248773122421491253139905598578939926587816511379066639213296318080558958250655780555329677146068274021648653604077463374522737601485789332687885957365869735163098856774165989278507053449165302819532849626241407860940093258465301162272636803068783724362487748001929851464578381474074671230405415374891805985562613503950018448722880854861108416578593515659282085709382160702515528942968063235580418204366718974119357185427375119319450033377285851935313971406140144982049415722409869586018856986744833320177584990544162682247195793757549358750647563210434456375661602379475777190581732454544827335790374154500626652190901217704870479314990718785333956721952718057219551165469285442894294770672725982870646329676813704194932597059161352597622270666890408676678487845343445126374229163696505448133990934585157618182438657273600694708057841863686995271683660748237985078374455362269677651067101602062443351041865542959704026347394145987192893268837575163647310681749876401286247453090028869194620853525840155587253688093644069336149663376967083402275780220208130900738243359016941559127093728480022782494876639286448857485607734380545513874952008937481343284117564068660373218396190026680238812255592942131035076893222971942513788729264502527657267164824387088831358314439507285115350187498459389552256066264509859382080841501439405430077884213320407693247629949365207832783869207886307031789980823002174350293048659289343944437943613902549842240179353814323663746808404718631969055643685260260555425594562554970983430194655308930128085370440156666351635931543515979731706092165058478053491514084242168912674378896211481825993914696865943153458215856940247951166040129595859687475221224517492645868732074576169612956582933317915655799772820139098280629857171403674243128766809191889383858611900440558359327010976425441888456809483541132027382499529076160519038633534445794416818777775518867565287407834581638443989014518512063759870991466169741579848392145735728515727237303848751361994991728392727572156605355471091126613767788216609373869728221098349963378808773802521058392669266082320197745354644787054803391926639430902019881607976655452059493228265013003636903748914682408558909782409756912328104632537664681216976202575974375098422453941210980694266654617205510195239282759013181111531370697136732616443964095318964411288647899191315979207967527167028525446022285536876361520642555361819337407589148112763043762703184246284658160927838125360717548646475610893241960552948081648399385988415843883399474204662327707037956821100417618965337272165542369354820859925785424292140760437450091420143789606879903404739679385659799406799775422381855101511899080736690311913298269743914135069638281273101804299344155458543611219808718902498157102436184518452932018620117957305380189222301046341534128248915677243846074128388309847532395509847281592882363656068114746145021562858823345460509793427702066094989009706641725886201552514704461119842344291048282005419295787726241761935071759701625388421049417875723328624711264013569818301604586224286353137750692525416774320962223875409639588853095414562735489508256860022071616308672433735511977752156898325452192736973177612603555047168329679847406914615981427376361510082292988982087046414720561256068195846103278255484935832931672852914808474227944401618561360256665091456455019037558836377743407931051965962249268294728620660319272852021855022166012666970561535145697186031092960709228930672908873938448927087846126552940856336732127584694728386829538371639521504721641106531194510130439239280519467435144765426514445623763474097380537145270419485297266497321912090281546107307416321930993750343608805295471037780576454692154888007099069463611927325668116242199136444477253885907275338941409053249182510243632110004790290557549500334954195215517512012431605310092953459008094050831032226373077772192680992408504166012483965732391025851072035715581933272963844620524358177386798275649423996568389727768936349171599822922315952561140527744471478695643372266391091377839503160274280694675446053394675078937013269359814984334407565935692196460560377999441343551021171658327604718327781416005052138492621038735406010437278139216202019746126632060506270927338053536329209268865621100737373489754837197589396820768182317801000081312980575423025355916806982944052506144031764797509721034947092166720254304009819911843564372942297666107861159212676071575949896061446843288660011000329966720641504522976099191689827634254057523188815675812042144528786045355787549202966745021171222717993548339748494617171332972545684702556078842386229609324037688131331837524334270064886107847427820470681491748785876186073398559623655256217766209037322964565225405322388672320868812457361829011715761006074489727508176658607308371061761865630716910664808397219124140714495489230402196844538791049089061058518611688005660679370310073408313053565358912506287093704139768297330678568596535290677568805958395765631310996385521831622639580792499470694227154267956438972861549983006885297158832781228674661619882621796688377865561230827431548465338041021628422109777869457587975589823105050713888772179737963900277406913301153967149923173117218770312893827877422699654750476564549600467010092578643640414037399496975719973478183619020882297195734148239381953169733454480715217673828089815177742272377411808801316009467958281614228171210135260193297406736436363586553484673109811887490869073889071577735919452127920866630228420542847496112038604074887802157322034448992223825803100037254835934936912938545062662216080430912017467710204368902835742699774974708813421076056948004640402360237092874843890938342277217633643905561379272797214075949621177510753421638509589322507344985823626951214133112979176795100952408571767622431888360888812647356186987752531940167800898771068091200127014561602601783290677635951126751165772247400358443858188287163151222561466914445271988709542129941369171573141127548484438314271688331783749383306502379292868988758626980949612827800995953153954340249250383437477825872002348637820823649575901993256576749638642259947693723780796050348214167262596207058819387683611077841323168354980280527910686140313485875080303537696224984076927790829814403170132403653131970930895616171214313334629768020674475976757563610164772328603811478860102718612051563154430172922664208500950585915775764256862709207841888627030527925468738033859181470239039430588707297409730214078246374790999296018701293433615806976350946104716181628237784016145798580249547080548751016986934828117188998050730369695132747788865918772424755753117175557960011277680657851522443882914543306721920721266025943513009894767367938142807374434326837168858171717053386606608679743853998645334943611663341250072871943603970695549448219721118679732703694695713551581462881438940087706698872280811543952484208559253726564275422866023915269300405697189747497885799717853680385915708009134439052078584116543187837661198644493710531165827617561144075937711432503775125810901711296094353899902286491314018304643728972254190676989163295841422715551679940282620825653107537758500163119531184115703386507727265732446544303510818711576185867643615532798128924100517951832708467487261209519114889045872991031599651556095280582420499832569052787844932334743821249407530137271841728111998600693368727131049107936461364699477593032708884722577762940720046948449404543950711708268494355365542944365159455604318221561664001860951735109444970348677471732075904019802180870189122166462645773533319543426131028991778589662872037690274264356764087649864076419569788130714847584690239746790072663264904103564754897875154860076799139836108344376943300092228603530457825878720251979346981168352337275394231157452416208331866732094925256445608636761502427181825237637683640429359868078790851273894236105833851750117226347125978267792961248555396574866381909590892931159019012086281186311934916853643487964282752955197686030226439666342236163240885524529661551366618780709017170353909363081417782161058493563189863263096421593133522410952054743335301705666485296768848114844028223199917156172862149854385683354759062003833214933380415701282646973301019438197285572853423026100276053937114019615154394533011491934415767679781742419405090050574180697359099489408268080016683011632640247158372163922057757081363089046024748875778212886557509642027644620912754139067034844382661343745108106963329447443326463231374080257577920911185777799678405395110174137291090887068221011327299807944086862096643534341165564337659277443015243282281142886909022668171791777974253197689121785006805352723671038905506672345004256549242197007730042053935416597731853564608782447898420046952211845749198414680221845529534462220103344653736050800720645386227934531007294575629282898083346083111093833987208295416393370135977243239404848623569672024358564634905301833136092572891893223727293124304402269189556944443681737570194963771159279403151699531945505972971193114173474219194504389471993331682951068299813664133022161645726250467895624970235758853564266115740614936537591545673217491301671715229600666937004021320928957098481643837210427587122634341646518660950634625285145741974018805301521586724667132774415106781420120341927849582151291314988528329517465244490205311452308956505089085420768998060203018180043227010140900855165510307795649104733294516566722853263905499289793186517924054675560869586266014559858878136685924682121440865046082576167365501082004164612875654004268906757597163129922410482910524893565296183993866287795241168822379032865810158428183051265220132017165087734265239675712156086780571498533855806753216704026106701731190383148053487667343745511139699257423467343227483636234065130486154847331132830364760944811685213492999164920596058025434861455938651648098716231472272365564945422769719906699085938165528541550720885282801278801738660072232892549691825437414413097219965549861116118915511420010336101380308999457719164845541395397302930460136643835015084335762559131889391097345708571787681962097890181298853718172019660483825479083201059404523200341127240444514019905172088308806964367222144144705095915113431464643811999784182852700100854003881205133146634269204365110376232478407368454995125451543481244568416269201007857398372527001020988206742697238769125128565479225719728174117961474790224435963100831497024834715201905882147829598019864354147549810559677443518585111114443157147084264914986290110846765858945529243956079879648137570518655203128693671262379743560240470465975976823909100065151595034070638744079157514660052587810086657357671956227524200751376911573568432941274184959282381391746687488686999821220578749955981725404618196715909387402480425652383201540642412969162352283934574855617199574009307825387486588632925065584962655588864323339905950428237537321290389970454020230973422595425971969115456495467436600089847852471305506938685683667606593726907682765291550831584159245570644133883494644339425291329496325756792563625591001468503095322494279690428625225155332157855279955771833064407130629609110487640659378613128352444977361485629306294153956053195687757503018681418557963888799680867920516520048789027213837339175603203534605988538743753618125909052721441153066723062994002420271657681459424815171484673912826551051101027417822707331398645609320653007631236057449765674298923781865113617646459992370810554682176208708773067359294516555837044666627891010719427591534915701710218662745108441684463502005593856454367121761889481348763760350931970312985103438304653689631226404354006338305308423670341700102076292253053649522263832456666221372877200037499650629069150404770576419692672296875128996117401322148892529474098114780999803358923926042971298506905058417634340293373097435197484231615319522338354978257579143089031222740537695125003550228627561219341495036081406833355726169781927568077348446907649272403042987345005078487220909310956233211242181355458657697000483180402442598393411029678780733041372406150298827649428739264017846801848484420674300683380673116857211635217707353206365335835273183303777468113278899890799710958482592065169863543846324014424531141598737862089984773776908760033725810058314066478989504475763689231169598691922979924439107147867346681407826481607082974892753090371924741498078302567114541295025761611289758495229282309809984940162254362331750962130410566021258226003285851918526932362975291320482788574197184136627235181928777557363815901837543096390742987555816140254227814845681794268253183395750865748075131985400245670034093412215818888991419524964002328440673300295611122738335234719476499680797799793976856263889081844044485362282377015235061033248549864025974997502191162935648381165694265685167041317493494850117797792970676558667990269584793006921225275855057808748958566796251452447274987733582587673791681079769803340906733600473257255227622564504708544947354358034902463640503242162065344809924073664269394587390137238620449612408348749190837806652138874985241715534842996980292583453660789946468899897754138911524943015834567159090066712890794483480142098480230413164716042185713127331381763112364388853838409549690040919537142964872224523851020642566538360036949042686806687027626931282981457080369599560838617412789531974315300706416233032482587251844447094788266785387510392254287028493647349942003356913261742897195295876687721199048391691639319197636146328528948300348272047823115532661680960768291363882791354927591023613604515299776657398105743500280262022638428706336574356676330681776583667982576842070816385966120719720594520235200281089176920838148696603177625994141627352942424311303198689461503444631749546690587747254972242462803897431780827860010236895906525100364436620446312053628037767329975948942519304315017883612934810509168820908023371139957983240546570810628148725983614738222544285504004413736258616244047209219322532805880642683508507140106433038717889910734593459915701893095764465651973048827824735122793763449827927346357611704830821488446238683711590318788241163939256670378621691733016184055111476560200029767654216668900360759482103901769675789088494202204114140398812203669742577550555185328881225669986775968248611594955021150412776071600124091473622033977126391557078930013867485023690866691557203689840918720675085562324972806244354052728038903760473163050923918769473673371289398289603151528027309562553259390863032154388969005172870112353024078773021237464728368821099646307804668549555436028707615022862118688732203747424708455395964577006865303811379096741704808652402166121882603833812912990786474762718158707733119442165723379683702691581366116516927979617492482726049563287921288261464937036485373635338996005160379981893161323213776740455081165866253985645508932265011758501104482388722121088361678859465686707273021487268133337712986864598466082412571935713831044747477482885558007168826141867132626151007659168462815013895010366383988137251567222058722921397224635127416156907938983537413419146944746514713863468539423576274930524892957716699113316538151188155394794035074186768107527994777881278018134784960823698349381778379430894500159116003579547276913094212204170980435048056340412724060068882890876164927534188160476055976395413446387949860647443919593840065655342754398907984227139095777962061713903865395568793007296810627338746245222930682115026094793312869210457767734529939476530386741769713095712240299361648606051361634693764008275070104322108941228726011399836476889576233659877374318235914805779273393864418460029388629094614783229396188550689119855404866177987810802462309259489374157544062845715511426862577607579905406713959985996565437608973679196442252817722809667164687546266677641053609800694956935594261780492998969316570734951585631018574384894966645200364028469134933442134673186555197682615700617283056705737217527694906120731494783916743971721848051735816787238041568379711112640185021777769565841246416919040623028795625534285389782320041697985537235895172727538089376753172421642181968502364436737786597950802262074926999058784495409099315134931387408785691543489755195543912880964475330716762164213504232692044926904768910408031185756668818440868860453803938922422330310056937579472477258391280190924991109792258865047210997733899027026289027369114149810101442096045084893120474934607170121095402232437003994466100155827715813843172120736990718587953873958704131005313547022769882072569004497041179632474753848187543498362770475244694244787265326875304124914804514015599200330526341124295153753803949518997670241738080006905678019871412390612869300646839135472849738230781448743610050499432171015586247397097964207574435638533009007513524398295472054910626769208461292832224339897709011511801236368757606216613684376845181790508899517857210537115287839482186776461134337947880619416775588735954817622092263230089771005542316730249920802689864476097245248602038357369585738451890318165403561429646951916287890339485920553139791815279008633713452055988703727845015682822163182633996372850351437514754717820049503739518277977400785237495387283317492517240654495440296858269390426024591501098928884062397477571815305917834765403448250816690215762274624179029326769878728691911716490637521528971635955949948682917543575776754468223928110941491042420880075028141516801907543914764349896773464870825681807382497446820282872058405238700923153919532821997536813728261167532640626378299649170108629109620062445791963697671458717098137224748399915421845177334664761431947807047138051299374066290618418139358269617258911644776956453636172733225357802870795303665694708371885279574343243591916787477802472534064216386615706104908697082578951756830914605170665513507538901045044211353054520328403799998769543151129969652607401577884245822497700568386927475958936246743730910891322331737709654757609141978590429149762378125921927277450364744416969687674888472957798371316805692930208447915260298361027156019576403580775026403934459872702071047672684224453636937279610430444058981232731056536806282977758445836315011382037779526712061204252932389972054689192468865719070939956531283438496643603475706090309157086044731470284119035905581267470903608483564914731993511832986114608498973627973948611958008920593512536765909585278775108701961309280152026348797532017060030586846403493892128406272700712944678647280793173967987893996222958731712670090326153382813548116696646452287591478004726760429565403741177674797778483399976308020730295729503539297912972008081965015651736254900369908424976630309653647890540375883575601673867742105385126872653251396756580321415348696742778425462319249743094869484165181165862964700713331224874199894965301058537956101747237393388677493984958606637391568303451621852118509504552079199617140014111936617051495383824677082752751766525988808842008435838214266841351005112726501210216195744962530406928629520075099150954580530592425399613443235756934271119051741708332251988261043219961236280402810546958830212754248625306221897581439026314107453998967157870183549519809913718257558402348868855306214079163723812851748643804585171157075119012941433539131953741330047460617505561608593756277516800849387103185866345434669634436031696654796135782981332832648338832341191225549904033917458768049937178423940161825858194044681370833526066315179003510768463095228630024755421075939282269322273424292723827381362492375750611017067048783644481496882733734474242106270411071831324125283344002911349946172620523923556069715129172357914243023338004453187291777083142077931497200325630302472900230483006231554193027680021862537579221510011305106111503568339529202608473461359985915986378219958281945370584103976807241405480832410929663851944181780573159673854478814075845336813261152161647062882264688352745013660279378159242845790782276450145537627667149260884525537715364011238108248900273250089546456653603705784428668168506484975992718256709985880908135761088056904181680354113055538032585012337288168103017264208890652012162266321985511062535709524402920704488580338899705876491142531478380154077529928226102518834663126172914435418529552405541654774385045127160790897259225599243954721981340522401407404413247690603338973353766785784362736400263522981636076148339809870525605976178433501786206173278574444745107035191497555885208813321216895237326131844297358161957258467842434239938316164392529105737209108876710516344004680863700456608863628799535993410097786820942632846970388401756417940753883028763243995821851956807637986462540632915535580370311436612800956852398475885166249642251700203198367841051592954102574960023141455054812069279412164409861581282137303925559413577684603422402950444577917046620915195982901274419516658154077090801897932080185121434866488990276103945721964918393265981272512841954573693434060453544309529793759128267414862779873065779178623678774998023235068263998973010778618316011803803642373871373391233340708846375337011410533044121494493788495740988933241909057459418619473686430870333271921281532207938586400247448524223354417652091701880450700543015537504444869347930455674538046804123762664559417883444355199962341264769738638747793219508590519794478050876943594789664429496963362370361681443552727896372316658983763325097235682746272404129744540828987056086498484051623148370986242746779169537816053755668630292017298974867246537943760076987856992326802846003573184742063890264625089249103991921341904969279648592671480183898489379209698320057071784992489996932652486260950232408071632578255094703215179821546445576398034913432690395318082519102550159464132319570976450544193433124687047192552510233457816712484451557758577363218057249268051620273790160446557707952837752699702121150908764462197248389778215610852296639792413105298630298150565232900498191010893154354778699058961103767530057209676745068868961576896292950096155023045360686225835869311148991716534550800234840786821243493837737875686464014508596306385223994820770112397666950544922954018530090125034322662837998513423649583718405684961648689243309219259065776288900007339722149363262871278640848701776135349251265723397944415381539945253068211123012782450595494430303363367085384807044257425806342512315053777098624463616857868944033212587337681098863093109201908491257461109698507024563718253053879597644248670625560598231474660068788471126952003962073190678548751339371560328698128677542697495150578514232013900585512807295793669277823819940312749149101219746465496544146958764749582098516696374383606144400840548526044447316787176356708546665531009726982102356925332667258558268927935280796580873287026748040677755897024082431141880493647354738979390496177441740044415618113654744200148245810834533222742524967382004907575535480265657067178320224710705529112068119144477713823467209166583061210450280237523891147788867080264772642954196452261001484289347389630577992710092925394718025440941559242306795199035253506378964499063665652542384740727408750141198839535332054600868356497549327945122647512394236478425110143704895486895038218786064185011498740667307717123346949735957746583320091468729545506788028432511330398945735403912275272541822172625883070667158087853265335439652376399039347395311731714515564601182913460402868481274910151332949071994366469571726368062310790889222294567108717487297402282479339008416314640080621067663411642001066656345417055506941590508991764584507619835235523584230410248706404726869207757760026622672226015187488746698621971584905458577579677524077563949233929659486018717114472302246552593696839471286843337653066353426387740677228213661160872843500429829951527108871833655619901768018268291656848960271476355894551239883760895313480084230409460702829204464418788951930940052358276961904984274051900589146043859030060116389402435186182870691885810547973187497800309293617669966001810842711842701753478106387552782440302862018682321092926337662906295734195893171919871129691771865329501541758441964801165922710139300066981650900139872339339110963584966701661413482236739919725446770410235340243046705050683939786267168214145339230651622947810832130876652971272144632364294804987599832046990903669550510074144453173809980919789445911549032885768364861408132014965243525039176087197186275102592953194499379332807732132637824917636383651885198513111431069527834865269157736065039254116008830059902560567226244767643120249573467851486741674209585704113383949605323563695060319166155856732164941401708372712880592716880671212083958841328310080239588690377186557230089927283583106459518239812248502930164499116588869330565396058751388873396088715323921252168161084277735780653878687087806284896344958435335383154140952951881934312291510178168971060959089142067309766794735550428009706624066887589016041207160049691269282518320293936355595855392898735983542290985907322217027446672987138738304528910641368343444958475645983331322342115897606563062041606722048950642647722204564652363959856305840746308461685289715841808734533925598323099597060413815211576389537439172368565687059332843149846144290901282327697051946536715347830398982075561408396715650150776745784635714447772718005054121712404809164427392639948314825875020041649668006978630702919734920027080368759608839632170077342129194924567813432127239720202439031458887907747196346557646811560202710543603818788058796229498822813779061019952527240264973193843598731699761855694784475918489054033499734718948716479747626616647661318693874297773547305604547821603663775237630860983766734541119132991030766510067164665990736203627107205053565853135710598252964425391146487741095604393598483454579928066051777256768835300271999450437806784043151909787084492082638521662979066922730052469619420450314038122162823514132556694202791827570388828745054355649060427988329713492443682788041385630332876629820519123170491119378666554574064947482110555276874650021691672594272277436120912500849130406389537636865554491881339146144228007049699091578490256274971236899731646222020797378785224864759447585337286431426527845651034584478278933993794214805099265225705936151534462236964267368953296509723436383331042445227271283535541264794002089177730953780012078210075900568292470039663026133047769362560812964156130824319892145963137176099214617558931645518097147578887351325962716321913090287466376185773583793722426377342368296984649656394423971901230575659226716869800997090408954040838009484801141425580793690216680821976846245556394713957661912144694203553509522297258030344929603546936592747974740727318089944489726066843834156941150878849353660562210402876792647332135867646268164867467362957705335715211669120273297309373600476452557708165224967797065816328860407722243228776482996110289700058882146588860278624057951509535925265650837513792290597152778616068618685278906655001196777349618400135001508857438916824680867795583301686932742490478282832757618339365347890337215228407621998503819390032192237481842683054008417022913337745558064048666159608278589215770529467704438509763403534090041628231504684847125356037958792899455544710472382258071882853748978943677459421858678559053160255927606681526980336658670026638922651102338186555802020542206474484180570477892178019161738431909854326005808256157059912305763341232627689475507706721851419053601507870045372228378902682028041676746885794754517970808854953814005732662946589419035867000912962218803372737509299618446965744721017857114382225965015986429721905573195392421193161071125810088905915260922505413784066208983717121424485779592945520718483216266994812120121380530282370108496010669393041544782737795291475733990636943037061348656244605414894982371575017699785855236067476551703435792786570410117399992796392154858439850132979062738147563461283783673563187516774681674969231756129295910607107437080966298903841373192162408762629599357663211885490007417360030207028685654372431761280282724278181148269892937824373054923309703886059414026437560906733831951195939778745841675141375615440899630316701616194168343968688748303011166095001235599874206191155782254810453088939017871830647045098056106964164825069196057569177161434023019934676920951583475191720824553562607005873101576264676241785818572299605807947828762274540235873673377336704329082891267015525824396336592505272048502419834003312794667332806773486984269431020112757927016794692021907064872597775084366610177831821372028493299317851457129852608152030869218715276294993960798438408059468041067272779931451093897137500168219835102225113419563170656959416751014089973867620934036431099548365613728814637875647447345247642463265998089634127681985386908312673179820533524890800623485262325961692653295774779563153285195745465559169141217198863016226899450931190007630609136830118875414085238336810852476693081359104317818931910892716246857029433881375539532598353645513990831396816686474817830111956259493448664496759940007389178705664954709047532528465094199471656954768830688211689756922549733314321628882244937475254384865305294097518901018072045134947421816417310405028454593220748425183943035986496741549188937064302717078805971823816377112521385465046310552399703235661216606715334625150913929456475751055491688533485931345296748113624625015661014469696083486847903492072610636474123033581019036181265096086161949071279995956645795451402468644502663808745096340581804774623608758110131445242330457898839493020964122840178385072842358383953697760155419794670674892998307235573640311237936004807176011910163413277125558100923236270175393065093152286253687373925545215543091832204157742175328136324103584601821758175549271351651737881682957762296307945633645992138654322411179177272755593878797407708140225813226820726174696851412088099252669629583265555471233096263067996964578849699448467555988353098823486236735070396564277091151415873830696694675794863440098750442673720972144033517728423093198551614518184511668624998281823840548216105917893887755715316096035114023485927181797110781764590036786828696445271480916481212516404093160719443660885594672597796470456518095202161735181405649701836917122674091167485305551512303676002983613584482376934204579114575761343090436686991783656709755622157581202593076395112938029139992652484447783564457583796912707267750402967172815002479502050103581683649607637892589367345686083870542445263888544315426297310511411141350835123726959887951690285979330898755591927363941689682618937076401501233384179334449131220002145496117637563978333936750812962560490691364515737798085682603577694594048312834892146949002028560067932918612164904474337715864558976263385311095234727121064338233198264634210965161320730699785228226150761630324281334712132770044579529048376144247823165686703289170809018836187920546926493369801150897397505853364516433002723743440071411239288559091421118528616169352533288671025060643019729934357008674521803110242527423338007974544600106740154378873924390734101139850451859064661740089160649691668671702493895075148863667519184044699788932858200823779405289885182117556683548836416319959517466062579394782603683852528018101726910781963677486390843952381141278449886709674493594345209333462649005803992224344393843356553796494864127090229185557494707272635243548645722385173459205698453446580207813269090379911601998546894407438011396448461004512108123716046586031835480746295759547504812319070855947495932471275526273191382154510778698170965153046806956095164122744179761142436056241193342204370499903107311225909439767087627036579980491570605878497560452612287978936302577256909748210889145364508652344362720006442046759504356135061940031930312156231411207743985781412130100089601666020854668402163628278229480932361524782569717569614661460935612216722267577708887930274971813633234963610944040728500576051149781379687559856271199303273288762752574303905693873675428693648800422927395961909388445457285017601213565387798103193680708978255270979120006320886364403840399623379795686915886620392158061258353623243672885536352738911356904701205586087046354237781677813939746142267054261140145286408150286280186068418504073050892679979265122803934136501172247975487681162725587422959608340299632034653309427582715194810941522488956584286787909373678071482462052001904485783670762344960965552764998968926242245016283452118095585673952809797160934741516436267561039758327159912965175047350923763552664830027028829413998965867522380764888966234133932570108817990693268625644303037519174121641244043771839213931759066863613853289741629520102948173725543372774281391410510416885066405095487219929898431852352040846076460281522420436072604462405970202353389948913487413064246511777277763271150425561346681886511560076783899043692399279621908269950847502185722171373647609064024557677787236400082792495333846497230174383512689689599734278018301874287907096401992093241485097016331617322194321452551744255332862991123584146957548925843845579296039155089889295961761813799386517678242425335870207772231652992400842432462425928592091445425272981714250703177301705288379118651344565633134749920028332438058784392537323799342968205295207249964176768331871492115920658825752568239232327631048797388117400486769419510770729667776797182167918234305130219775160710924383463875721026268588120788813183628556146970435756330910180994144182300777753672832245567913377473525081355478058971791085778527994508095257796892258496137077766971657747291238517210197664065372019197357827619544520599135138440969261661678902894956258124057425273511794055756481523862707933137051582642511433635477478224267474770716551609328875217038979663523655639490095911280681117979974742365832684729323019605848706632336944919827705846434147448461045311415269369040053296551845023570557658070372314379733048581125267451382318707551530374661844048193258718895526351640606614211460492192538778264968690373563445059867579268313327298802326736895894260612059963676259246223633013944403742838115406878536645305425004620316449448974944281943819371166569352665373609016409654534867251867108941581372208022192626985836312844616358926688123532306669143213192673342527697228225273194377004276119406418765637498759303018855639235924598871076152461617349315192234892806885389151914528045932261228776297213458486946522913106299975518518121996645388439638357079082404933661466741197116358862949810626859089797832993939149682329027340066255288665131935981545228935331506276845660991031916600542139874223183746242985785623516535424353248124651630157992408032398678827681567302339012689935175897806278703481692793330964318744551965801974043972020488383730552836069108400580192332185563478840329901579600775211862941231551880123707986764918690497968203272267161677631539081207217942050422410038028971202932910476299236791167489321503817646479977637803907649502726855375065573326755545415114374557179270442484763442144873813970411078521325735606616413989508884950305691552094551137831965500046980830779283196511245004869804364200715047982579562853461390598257917265579398140005036936446298749897995893713995315578220391881653393311922490268632569981972544420286978178054509731290146194660167617823935353659790008190762512111828174411515903453816553628562996402832075989105471759253717332779159024148892559098938135735674325329446223149102179535714800834549295865521975202589600590621869703252834035092442319371572835979201629117719561251659416601734490653503009606710178729015648596387793600446676793947471685748614213538758833331396624559402331579461268738218492879252559094625584415978307523122839930517963260046241242201872471506085238516789865897526158978109031128379453104530024225991316123320798386951633923166531224681709092438121841448531826060900519720692675382187848220000032614748789163898261360050332141637373903021757843496677169380845220132888638831292621945098407684687564395720788966752319246372688095718256820838439422129817588371757548428427548666951939597168065203490058141837825968602947165536527372392297630551934220964783451291883388865392760775770375926080112412817926447862329950700498267112209458050349590732358358602106962828357600804966815205820277864194638915498563470863983778974434940803155296081989228826918613678439399150626486259835897279037142746880932661107697305613855865921640171496291461084608799040504129053118783684903193740047303538279671760769083512671199787427632070393851454382597200822504840624921003560455211602245276881077835264235452692062737554156112136481727638895220391154213335954571533380582496640268042897650771037630466497560512749786532228549484290250952627550513250361490889107890362230782889933529013954104280157466749399283871492658456733420181943101204443419008854008908005954946941207168532555582269874485325565876624437812406748990169914194563655702967223941362422773223192676087949188154538260008984440641676201146675508712415914815825856302716747277512507078787798243038275301268213808450344993028521932283753536028416979440177069336481399101687040301431621991573118817328891586477419849530350942876877682828616976639551885029050153049785468635974388134268440980405512665861022396180482378775435364141270753491468029709898731271769808953601405177011835767405783015813959928124024094581596365934454700603562215134029143655352211021264251650314245516826341885622885206458162932206211707924095942864594600394373470703165453231993809201857908882129354176832423758422124565600946201542042912443201445648161184906158221894473821599787115578392092664804773841167346732007291404980101904111322876632659620432576170636881673820586221105202317917959435222272624487905437867006038180956974704743637540555248317824681683397879355564019836369371026610899981698658022445598980024085085122416706021500291216885036384095862694191169766780307599715123996031704835323062795401908872553914340616559956867999089441090366563675697089608442417863115159205926852386642128656728897974504060305212117579410559809601422499654101514639176080769646463867128449974993170417184297559770102222710990671291682889884885258955122744169683804522360654127953160513983107241300153383943841953853859573383267527906964354622089133056769414290801642033903826457708432542423565569025043729490540629304368417529788150699069856741976274613542350950224895931791697583257720625201506765775231861162468768365967840673364496692143419507038803881114573316509290506375839328988567252955975232967577505910436520269899083485324185039646705482931875348503650366934388334966872094816038761767644228059056483025419235380863771984429158860156591770700796498031401725447022140380824267210788351122557925838007882631508004663572496272577041302157654436637219678993539509357039758533194940897436399415998997418767116239908823678763061865241424405008618648405269469413469816592503062785472286652867437613945321990208731894488501641707279629432904877373819887084719433112013502189728490380226146255379352814085749170938615499672349673512332299514576425369982523249235162098308714980356182950265179864796120330712534271674802834332141900123494526617758174419605562497524946550578137153062234909830215939018857861521669661770083031208172685162378541068768206189134491457524707750150311066924206342492838555636602207635664879412805622376334057761125804040828810715672259813488774446039129216700079270038518250340740599209215510342695122260406164476062436762183506780225967277660675859671361658000050072180609971752639550820071213160588159676426148132336188245043235145365349839742446584247894683017462034309118627125383158819869220009571930762541937188748941001722026727688562997956469547751545491456493384788996755670353956819014937763205592635042144518723264534353784460685657744349681613427416046612611197545836819691958189877448949887553209801300140252662818696968450921498985894657762348830680860363214634671909859786406071300610907412044350346119936327450507854551439087580049531257389123309040744791714490849483117920934830672463210140373569985522339153856440790329815156152125799103334001566313138111426404013337556527493927528068096414644568325153106522640386500746918276237143626827076567924648765872392478390891032660837187151286368436699780172748780736631226313510250966845587055311140093343302167706345159630434947350317138413066871882247679260619013463794625972297580446530373658952445562553424247030896353898475436076024358326464204383115537406041465353572114953641435279501397104530911080658835560573782941031212930030751431382401616584599457090272739424128796153462745814329042342347546719003370933318729318614206946142730197345555101362180906303211693795306015342604263290629540126918627915282764155802662256646472019516601334000064891089612399224040631875810617065245014487303861181334100163919169628319651130305230517726337150339682512733822852568750462109025877303165848377113771342184027818694232222291280606342031983675126237571840001839861724798098744610133589516610283016142566457252940615696057561943305331726512928154270341499406381773752354273763776289108253316171206102486606437312348143324396961026998748604977489197314545045704952426118428021209882424117090089235094208096449409312751967719351407846720918232325055960356750546321234372941786613922557288205491328272143701673217274962503912948513523965703311337550046212980616817324875284151071728983481007762054678039431867760740882520559569895026819342615491682901610973337256834828598559671347877623675637723078554944063597475997194592816486394630381620836789044276486278173935406079797386482318991238571426343195864719192734511286362844323032076474811898886990189092726312413690891471393592976954654698788320972419855864038140854642749333155540666120525027260810691372199710497419873748221551655133952527361452003551548645195612256306256238999335666596803825761703194183395141899071207415329348773924631183306899637373539229159635786135054764572352988228811404521869831875260531579417947072817027182458098212412498596003217825277495436742781064016444417364979187413989286980225330406128771284127543900792452373958696332604821416816324152604078372844155493819570862633046534821917700907669757139905056257606055771146500119517472340032877127341342551591875622847433982044564422294319661289200933629997046034648438639306911514262776315096311755044773359032813340442489173547596909069073189086365954100943011441772718029483725297037589018311087583107157242173433456915362955675836095076048274874110873505000697972131768948174401153471142631043273727530504288509461482977710663889267847219727791351965753176670884666110483961719571699461043932630863082269255019643540709735603514166216651122612043480653674796395834898720624463395404372462162012095791971810962937886148289739422015252049708077774428714023288482121306317524096030463925161222438649246927975557959207177481025891505753325534175225718186173058668402046386870950862197719415175344002417464338605379443333143830782551181849290505393804540767243386670260221415702619840301459148112886434632905950199966654346951743385500395566831548954341223957434399208663392111022956738930670551337610181872229569447639663395315988716293955409997208852235798773614786796770160991042775161296386514251481150174198785251061417818458718835512957527842006903086031492008038481901979946483926668084416595230673509612841085759471300564693900808985999330629115340444652866167183247402096332625778775894158551847947363284580015078691218759327900512224562164454686105771005965483493595408723210666313489406526069809102071713421639164955175243658185073226562657981021116268815955089663308976643547505144638463473007290665423190875998562681298650628334975323432693942378959234104946545958606339012302412389843074920277823930985516814005905691854416164142547127299750854408359208022474654769333979019034598562700577637429912220936488224840404601680751771493907109504196181531031516919510931999478382246661567845556343038349759450854275286625730728415326376847506897358662907131062389271954773376590328988974365536748125495492909375789531598190942771052880042522592864453940693559202435331045354811644875867767389965467295154178963078943843572371006042125056790614629025873537177638416917549397586919752785327379640713537612561130394128204212625768404697427278322194759363990093643070260883241103645610090861467584794966119811794727732992766501825443451109448073255312876537424562230891748294301918932848376017277713924946452757478528410255692966193922265511187795895238155466529194149736567874027108574293694955449986481323240107724738552057124921612673178168228115996153798148451003609708750086285565473303114072254038973687168875446000594025959498443366206768581770123676417682012311650412429960844026600694334624042776329936665450206619352765128083613170262364268527141866330802729942785509568228876091193323587583034665070061084439517760978832930538796396527991862543882537158467444049173293086559737486369031778435755954211580901390096575830979295559593346866858249288799903684718169575902200291063768421104189374145249824381243408064383492916737292774534571304854532925543210482061433304889102044738509016653954133023847764708162707978801252588224274199018350456225796183459709507438012920556259692776873306855428786178845405383782042515607013239676318702845238405783880780161104801320330487203749815255312597952314033311323977711807077257377669117153788502390587689933346194726814183930128722956489358398180662511333663549110207076195264575719787678883059325652630226225388150416420069848640573622774173241605538233203300221631486968373174120483390294076819168588517925912833678710182278788325040669820118953792153750676853076282798850440217495487529110124356109554089530094311501021869777181403697372107737293707143271898407620933488718289827220117118880044985928580328671261410805292669845494936618078200034195048199724928703633711283417330729066416123363556289970093877677093512732546978366177328277824665402625079530438600504916995341755166984639032138268316569056736242993802190801520854238146759806320211150166724223120546861859650118467902768599767832467122064587432911805905362417480997710408530637220446846956071552989140254319601008643621218286698491269909352220769338520065108570199237941516280604073271720160542542104140931658174375161269092313721155901811250871955407152176958315536983821268205950817109981090190320447311955777789788201387922965538830954036823621437180314796299227634743473020009828987614154041061183358953163847249201980837868990948007207947383814845820814965970005993910688285120210885961763990102792928197673956221241665014583902048575235012186328374797227871698610914579099801136562318236234336170184106902206396654919635211648497132114509090181870152299591771768928891621854144177305697026412757159605185544658036989945266086471424546805342174433201145468991935483143180951180522683110340790675844229766124534612398267060161794714799113336832243503913673483920441045087047987115263478850028517955212560365945958395034330267273698027943295424461953139095749822970521913336170230532996918996891141476832287951156688891629760723263235013432003367414764755918377632012184763141946882429516603116874980829125126992079367862588408597496049721877886845106325160329820712266543298926297513525434574553680932171395287080896174047523788014947946807516907439439613239816569876841715322122647137748338329452592486707456426565006117806961563863823137665142104254020993937823376345765967754097412678762673301553365109158913979686623327144964948397121374732854152965403209861331669813875653107494839393134997953152932073336170535358361895628891581419630917915045620040698702714834235738404606868700398254405853357133573613477907051509328144161287937116629264395541576489713470331290921884524184298820921873288785413383406729523003519132922641817704426337048561218987728650100061913191796961270777895869549080977715060114551804277389032838696831275471065576634193664078665334397695122504366089436434854300459364170235913787857415557605947834039749047226679865691236730527903406545696305091763635443725707678963240834683144951822582757581691058213283521671064948778727126894457245117268407026207583465489333365328428517189638671707065370376057091993010789925347710472229080117227894291734019813521406169534452757860809179592060197202573178378626558828947111882155221246720392351529895494891383111706983006774406228642801650461283538276836126085618118505205928894709839193777702099367597069903367821577289743888376797608676552014382075417759070351229537779358085571036019360153303386009823042142494088937774952328709507256122965564065861796671509444353542068392485320272664150639571390160058859843084508385342168625174756479983163014050855050813987864940822999313258429399588451273458609960713956528936412820550733330567642568807452355378163160916430877917314637343067060157764834153748883553519979041100259081726348296941816267843362371372474249207027988369101290141655347785689684259976844103518867879330047138927039479486627408169839412592662539728282302761426997470727223021879944149033102375358253047297163892055959127205780660305933235450794430087549632253520644656823974848383875623931080938174928370049442447326020840742150635942565639581304617687687735771785959123233180847328017689455404619594593852885907353317255775420215583215304620005935391500573636125332793970799730086104182795878594599124002954716484349952779383516806357571193004061291834161998496794201271255168372304441759398233905004380051859608560136474871506206010457407689230016879362827275754384016687451914616953844925946299433048382961028998660087107238082623992527114444826958846802152664100912723785925148753981396929030403186291576850445017844066115864363757601315321868843531356704813771491553371515091212998821876138677378762834770834855152858826334368422607495637094013520862766359243733969943095749656459370453369812622559577951726027211696708909881269993202124671464369451294948530685413834658532836450305823617138559979894780542186341414968773524134095268077422644787294207023197968069603163370674988737356524598436699249499926070178579210306999361259720659686410126288238807343457235952329501333147401620707884535481228732758812276278516003200253293076940929661936928778537590624405848879098921564920730381740166097775742040828235973126702246386236942136773713229946129358729787388034030151098929519241792528560074763479968697981302453621103399709954353237027091019289047670136233323578229951091534706957480749372052526893760169429062850111668614415592364396950074944485017054946338422708359535097453052323870924123612827676140211176858328849745906846249389056495148781220729962523403549243462303402319096489920327087266587817540013008490980749618398534595478086441301172859480996599599291287507052684701340574255332575710907101551807227522440161973973145408795405632072665737774574424569510167993325740905152141686003255169265858571448964502216568709784734192521491137844659469609274909329062841780585245671280382061248165231628180387770452898816739732949907945470940462347488278387916722272737016214869466128371594974900600097944213364767889690161182911958735196290218523388808896945727194860741373535314085668195417437685140071333346281836511797361782666793816397649421877679054233533216220921452648608271588144190345806711926015166542264452936534156880722209722641920352953011132223341789487440547408401661527470478225537211548558000372578549374771363688135005915803560490976966887004721161280411008287918933490421110067216335105308825104496894740550738897843478978603347188910551198544378009655772954395623852445973235197982276831389139407903307171593110415391262862404675267214478597235032346101143242432353432663710306514421949376825753469741300887185816734360532920272809323790717085124313108477187064467976748092084507927169874025583151041292021989715239587513797249367386710438969861025002127270609981875147504940044542737322519972464615536851170421293198406986222143678651210615506192983458114711807204876432471190154507236065920594815852175676225925510942254829479438756910156101955588170513238337039629490321090295518141618470347733863768477621944050577330141201122551671701063332722626647266968970192217658760804829432833966942923059212205394962360847116554999401867340849320915547494772190830478224920714704020576463728447553393933924951626114880865317499790789123636199903445296160150931161117653603779043093683120733007690487392908917744690963991090906786955331223527503588314882510815097539083885466545095386691181917917512433374776409557332801285895390646682927113961766296205003210688024232177516557480761369104542487942611501415767839503839004994225769409215183345724818061351490178977276508055092183823288310002048022729935953370623445689717409881136843581913336435535102467182074723265714679519852906468117259700627900353317116181281221582302529733276443156620102102662438517644075159354543184808581511304695543722507195379309906438239134581521616150761270453092378502020626203195580390075434039580834631888007620040362939555054754874922046833658842214383173592535690530950913554304914971651112850626929624108478501719115268095957257508092000583804662720728128917888761410307538478984019265225556409829706363009006855034443413843098306255948641711046002981965717241988243104020561400877340787040725622087546375267479448358594363058266760149090027510930849477366435432781727226459023557624568381047835241943593887997391378167224352103313156933820197831913968486470116814356568446133396853242159887630259096590927338540613605032531997958939194526391674727775213340876145735447693488662506390233987832642276957830483192144118145497633556484444199490244247652484987999396971687485855950166399445975009339964677690991790459498149251278285729912993354116653461069396301356405742699756543440771410178010182300831582501210038827337677133379240575576848983202463324967998666601356498022160099948809919367136614729086447848971395198774903351005023317375412104362790123529101960225601559489915727804666637560109631226904575570699507489215117728332547170416789021492436114807461150609505384538875222121189734807243752669428874740793217210590763384461489466373029751050750015554136445150444165479984620937986011860424039499005865270407221332226182198381676885122511896067556914666632808154979439456892672099574595939041911694271933812364008903314848920776537617647880717582126008608008838310741382770523456831298749030618971755446189359943775375549296844130465923992730558325214532512417986329298288386401785255673626160867258973448929959520802914129843632653190334227252274019419214835253851924372721218118429753305555656303156752980981832262892205221111157657067190025548877519615337261449918235155660438090388472173193797211972826997670353849309664518909272468788358861107869344157949011940721092392238442379643447382341435973874808517386235870517941848874160598276495983549482936124445916171394803213822701705937847036949343110099590064995946843473061483161325415343521829208391822532197033678384281131355724592177506480751170193847102221148999298907404654231782935046422172530772603333591331747131412300456527149116623703713494898460585728215162989395750223662078302667984774196834181386565758435225854556975346767123910233977186728320971372872643007708359895776377733701962883843279306268157454752666814779130588680825242324101434661199131642389252327542594293111229407230529674663279733311842268735599660513919359646650617599252122335348390369928834216810879463970352755179963841447418554631191851750998450680033544612991101085771076415087741344808028724435097819002949001562013235054644553768939559806250729536164033216376071107339844371384582875538898724421082618452272550179382617443691378142006173752330638818784094927371641742625082273052405346988290221498326525200175741834406103687430475648042112190761429425289693432538899647446194953349158082590473505807774682488147186163419724893558609564363949665906359417341152788783323360544697625884683730839783649278173615968565057018032004034440529746002021546851331373993565414505465715293726120587357530892420106128292350964895442158121854570668260647198479227833634932108987832580863298891056780027413946317740350428357677783712340168639428995216480212886478803083215832901683876415793199099442979482444354213534702209201666735005839905372648192888922280223157491982314140121845719930880892652202419911193995058375044365721529931149777007941775607690955929978245254452688607714276581415693081535319975989187322485535780984461846974865190171905634783774573883092525720187286058417250352875057509328536211445809331815655632535194838827023493397349290290628062210788593617051827957756607936566229262707258676538326404926219347626120843953337672600044744028644537713998726306839884384063631404817240739158707969014505483940709287890624527136986567982461225755654259669406431745288228947528176457867494005941486017634693812669249821257524102513973239836835250754765383403957899801228096249291343927682089801575265854668349666302405298579670759283243847546004613668581503180003509387591082130054503999829059927867818051749992462903959175981873140925221638347450452048298940489508833765127345772271277715673565918697439567521077698524457018665441703771777382944449134748806979883205643365168970640392388466949896687611160235909786365760611227317666086893784369486542691544969664202427318060325352018999722740766246181437331399305985592890243336340478172329181449042129160976551446656918101294900015556307632052194361388849030323461183169927807155462592832824097838621250070369354593056137617011077132938261116065476249045689938663531791681718809949921724456988342592479378681170779183508243832173734944001210710540518198171506029824086452198367996584924469364053586969099521069754359045099314489715784562976742393700848485773667842282657720904592159846249050608667419394882954051015614236124612368836827778371060044910602448470137301908262240707760914850806507005461643234086025654803191653315928941592429640989369637003678951177571924215645934269617905825947861150417087902579483171190224506239813236602018485683595982298640021503763903824826685382797941208351550449877701268164683288676129680172804791949670915720695475716586959467065096318850840014144806012900361304720092739243691582472325777387312085752011519934743518832018571056966487286942190759748013509122729131060162083945603096618980443712526005606655834683514139800254265883689144813254078680451277312911565801814260146902698361769805613497234941953195299923386186075607832302220957858211755471088284878118219991339870843468804695968657508053281116620477531802129714516665040849384009788700727911797577129443247200724781727822947527439984320053819586226172384119363591514698320497639401060657623110016924565694731796775472457331893110815612505395445001181001787137972277780188907387668945176180712449709001875301741704756057218064174156142742734598226850901363073305854615245278015929371489328959646432868870752116166679110141979605002456510077286475976176103640402648930093195239522835149890749763996218148585229578678967994559749733215382748706769523798088394296316170963587803774096854341520690491493233657038536543701301449370651627565477171769836114493670406019573573310376344297082196914232175882086937318672226938143536135901147292532132416572827988394915022303706763230342916895796033037322405697320498650698030293562738285024193622592176582158251852933884638686857111361673412179963719440645302331249750024954070044565811212906688123852592150960117366829764377205358190947969188768595424721504497722652262054834362541856100764956392299079310632108012586610043414586129001184353895033891257197054378790923434141214778060329039201858634912785606262562197790301822953893913305693428028731690968180078064340651275315988238146018607402310723908404448708452195605547765744445753896394135726655897372801881138039595330176845138968051398982889268118181887214779236314810541198136096749235082473057151665237820241767118489482988099150667778260924420692230703669257694445566963553588972474071250811786022340269723953839361911048406240803668599895391484204918243371097810440499957990197310307536083864234763000821036268238211454539948104597859664316792084772388641239619569741152356855770759971429247631093561703137938490247197558569075310203739233418921326372053572448531526723154753445891443122044317077646919197252106847135467092777099621587980169091985649293131690718515165481524419298076372458718841375378670286275126284577842571435963681293731283706068649693660818485831638010171505361862890201691341830422567666005232501288999716104291849094247775676475401317347384579827997054260022770026343695913800305634424989572431603410731754587796872984149356331186209801271041209498594010256455542321652984021853273126707101983933576267545360949643241195118224360090434288566178119416037154901035989021126257775115989147928748022350592484610816635226976111586382437578114863049910504562079460327500355554952166894544608632898799218760720160799149638254320015125442183599076728953157955353579822247997755901342214497528297546699718762751336851126199194863521325168347796750448132070760511032413220709772707784130110879175615363748170860912721200270456689917312689908899428137541683078904139080426659087550361865968036660438083694242001991262597353172756457163169172801804053521327796094092052507044560206075886597312619347148557265974256336069157505986724927278346775143480871475643242127968910900983435933041265254005098215384085495807134713248221525512078182390304725826607237266612180510737403413204191819700519783590814167986567201017054191536008900282503666528089329444078810175016874394203386034744994141513526481473560324672495615196841588315745369261447439821636776170733057770468947124658994785272404186052425525953770463968477679522905014814004237787517613748528604943474778255501642040076775612366799055814180808340489195692601624824264635784053801640654291920789637733918718202240548737769811336747227748127494560312910959581352885203567441558684592795020427954360100889122672347446447166911664143605378921326148184415447723336026702402475561873486277969739354121763826367025405305978911382669005234724441828021422513382320220076921072882449648720816365032444774736852791691220845035495199140525971046762704559443656696875128852266553576991085749171823736774335721639494785372584208332616424137640688233404470308499951975872677510824036700689096139618297684708259565704701676806178575835992263072797139866654045543840992834916367739042161404896896185931427247760847443976684665272903307607395251045372272363935800127677685659289103702935184376489851102976170470430900776083943871481781712440859923003539854233509024047232840920334921981804085439976663109539419767581693122941333749417294582499405376317908459567640952396638345662886815827158366737440163780673613481708984021944099089986856705799873786996811940489069273384739442449766723926477641473727404378039077088609655364440794701216014553557831273013236174810843500504042864210260619728904325961835312513642000882950885020776929902073494770918178930048292131428115415036341848182477484402899210307376444526355000213869725264127994206938261395484876549247186780222366233836072767556106918080257641452775143010586856746736465914256278794467984216654964428766328789873554738415960188608988086535618741317540245707886330361174012084848083551725980232875943130595563995207611087486116511908997614651246185446649956178524409350682624394920968972177205524854527106425725500689322319622262203735360039942064989834785080064857263258773052075505756717235538549263983996696240859192620260463493319654658052733855243430809867701004039604787685528208960683431207624428846277871260406094633700344990127737231582342356216739862846867523420173624207275389766212264816020701613642776823926239360939235618401734284909066822700147283260924735014258768810636485681155978471718916934789416054203739968058958403738302698227814250437059302849076881321828428561899462067407317309539876833871603020170080707833622161437621423208567238965079225974246020972725652766835602367765766143927466623541058392928804144891385869781830261996516079849972963331474322246356353549960536637536927073586367052071005993992082651485145130661314574076601331176699287767433900354593253129936716496170498666651420708385999561239272345395643551337635005471137068601061756078403375462636019360848475602385205324765310699501585773915050054341919759722881385142573846371921828592107161031742057319753930399850524329552900131765309659069586571280950853476873677380380892459752943381516553316233347070600194586159860123846487886420465233058186905162612976301062206686575670306798809158326622345360511969539830645011053333054287443410796298539255029208578426926755087097838167070703876543438909985304771194753297282952169816627105287011174541143676681483519879503207176909870314630890289214798005668788345444891668039337275723823473938092005472247380935652314637361211854661478929408142818651821822923247608336725606815703399160227970828663345666385668712457566898991198291961064071733824591569958792777696496658713025730242232537624366890294074316582243040743836662392452034022643275129863139205496572967645318852954291959017508537553839830299436003257460862263662702159185617564575851048918672225329958941825567160659756435553063883042761677657175734748914533444196001062927154967807041777375262120829082080686998255162708059380832381779129900125775188388158788070951041603341169684300114227158341767488066042434654087140049764462408442543650955471766729631490127047962130803271655980624766527413811369932033903628710642786844696780964033948440731557718027848393462228808234508708157721878674341592918878632245879296262654440057908657218999863542788345482907678765983049906989083718304264192407177138841406447016390299949520500799289675151187964918959196043267088648963789360249546754950336607981112575961848657946699276390053621935363859716429989818377712798414247463455250370265651504101498341375912926670957852122968558280775819023079421364384208965911148657416387811692543692329021388809609870382903514203109140475294032960081461259539212939509455716155362619858602283255476301977471390991642005207748467529955711003333273860910539657780087837007466850454655775398907565327970156781787439183127220881198709908080105173851351759993537868545216298084491578887043653953461572660506072694502903191380264315906021100289607504489574421830971290493866339867575085560972070394123870048697228573900380235674383382375229584486907812996718222951792378901072057175446110148722160847794504060175139316431043183026463524630311437683882672914054838329667562637551454821616664708044010952891924008678685435765379635416044384281537364158377816040711268837769306281602961831359063928237149575878349364785109091728714144901297396201995907704336760031153850369464132939086786423597932709451132852299122387586292076556018574236194335590816175059654649831646322608787605841894524326723256535487616702366016027605956361387101332982877266708380601027856008864551650490451726369584361990824130896307626734196980760714103284471514571772474365738106961667238475692309114678193728404419012261665062166412932800040176424770304995529186248734204818191299781393837603272691852760665007854404458618828456348674549963787311762650031957888630770062729267280290541107087118943854920289523089519715087483859777898414585841306134527296510246943490750167585034857835743744095065753189290952590204302602714343576041169304104081986159093781224077280016524849775844520370089807199028034417757395136865837592590891491451939257679744050707716862624375410521379173190955338199286696916450343086541641664287686479960306396010061972738085975470900850297837955010797907189739831064749002516708689558415951265116520883208119414600470069374707209028000707210032251000091415075963484125539872723742242021282058278946978953843708162355306786659382726572874736815140483270875984465147213732897819548193802333957224671096617422939786660029226723354916076739487266154305414717018325897697256513385763271241532620211782531423127410453744868504732613512145071881645052509059066730469058699977695299202851443608405046557666510354113484646298549566350097962310541619191584769171180026958715786388540645501162822211047255402862314352610019189716321874073149579186251487453065543392436330743121458221596343471901760902745676179717147566742603771314965763128887378034990579859038262572079654817236691611119292182528738694410009400886469649833221555054231568123641469314873573430464173582702343643412732885931558576828915537114872650398957867081554987811987499138458775177455639032138936541701747351711587643085379409167783618432023269081150321444749389660153141532467893696676411500675673235890250009516049124700320370858975965392310429174559928766208641023612266406091150578285077498146977735886139160397032683858081674138292608559796839473311029985756186979601026110825216287024793849503599576576444310789825096182133628570703958547169692780048098526674697311428925180916614033598332519013402360796741703626230239521466315718696869654869565907762382498903384822486878735627788043468045189141708892663020933950741751619040847965381309733140197916554441942914051246209157159176046592647288535043984874220070736266949087277958333545856768694753868768912573820559647348859690255842215794999236582640677663853334954117002750501977066444374126568177219668109336598630603455559567598037026368508604445306045559935453669668384204412448705099215123952679540894193451515546478865950752112038501343321591244451819862272641531006390496538355073033947953286646354135881297123834563456188569912951734932008304546667288523517509787848034970212073759652647015078827652252817523307689494972150690376458823373413790875380465976720198418912725208348363759203579760169088089132726264200436361301343480958890860310464483738822392157989250326699074922369239040657194714365085077089642710673060154259474275971438369042184486099594119861621331106316519040339939599686860066804162510010511257845397958555493739575835465783484120579410517426621892964099297424492180384153458507080852923740008244112462050912016016516769307886066204718130583705420452392665622319559246173741162371737910771674083040821745939116422817247617199404828917403049795616428066772873637748586010712529520405393371834723197623198937786982980227048236140699632726746673306969696742303022798018316415668580615148534316014479919375642081415684232271161775896187704534027312597789234987533547475554063680698916292243880133470998487610319497039962275583345022778072787320919036682424399196455313242875327223891793630786432898862803435579635415859656461222159689953289478426485085925691455923456077923503979059593251161348458967565218277504396801454943660461385242823426598076449232114606298150284778068271157312334900884551491407125435643791878258524141441613133498642307731342830769996818711587563175989423595977079166369127638498869926267578220696508837220666693019872499241959870009785594674789731820415703996326872269796707528358631209048263323601249796807912010715712572223367505494650292421058775164994599621243974889807020105016664406922409033538400326849803903478056139096582385160982587626180606093655849413241704409216787569876054650806458389639789402815825545098402147110445651226371931328775128245603768041305318783721493544126305648087152176329063944770669282486346894829976526485159340116586099292376245463795680388491919496803837316390643910909290848512026753061315713263729090203984167507379067014309154045442972198078424492745251419020584413687261410571844561418231169567764395823737000930554581554746359160198991626099387505856631682903748182177251786008798527176076522333497915290497035202479365385853232155427769376212809918424075469668647578962100003592828902783982164235272471167922933580316826698051484919955382870201323551634618125000939191966659681232305704267974441017477701671611163774907070966021506294252085694223770432562913505193374299038215267625793615377271723780255002608218668050022855617029038057201302598543936695257084299699888455906388381322736584376817852618723837481355595384136525078383211224463381568766793715524322176697133473488092705775317610926110709751116372407662238264521240071500657336256847835353766793114563425806707098544903628303433292700074403491985506241038612371948927593187154064634211401244649025067399701485262686713910472365293436753147805402023843014103007881459590741434410155858529837850215429464914152431273935282331473767079445181156778916982537886357167649930575594901347751376145326758368659528122450561316336623536389767313428870952632291489369827421736645827901736480997394746664303385297862146834015998309492957702218427258435523818842343392821113682855608866925996854121383733548483632982341815054867684575234659031367297365649372752015024702682043711188305581367797504247113020958274231779641087539009409143704060108805401515266652666852422153137909816877485209757449035073534114110443966881013783273729966255484110066439256372976886092994346533440727616409871701639482050781836917490289462535820955619587590498551442775518457134261340902803080729502543959606950926503849337865384843744734867291437729071189757935409859363550812472073655273779393455428415548379263715266315348447089877559396680664059393360761243245577888611516096085692769988082876657348524692195500000528747421833328220984938857501295406509917521220525545526611273475757477338109405205018430087900440821468694737556502190260919529986003387372549402607476254867549657557032323214976629252708832178314009996643984365768370050223589117994854160634501391991796813298986671822449175335437806720986305731154106770398049721639714268533738100271162710246378524283555068057126272289727818397378471349795941861040946198356256483127259216730118271930901469940034659773924221800878597698442330710305902083113002434212769394700125757469239453280124331847242538853810188358419911573497886095898143363556699578305242411204823454370919441310949123685034070036367380259335321392408280928669908129980435167662354749968725997226775572030953105561933853008634165067847457748217980636012368704103758327137354903852361682544371004497672040493890353298884438268604540925546894652909032969901160780648983196792085896552189337033297405599948051616401514097983059821754123846211030871370986778701958366074452570758031999985234825292489905242035781179822283980157680402984660892651124984086771608297857549378623529183516973286318277724100018686853190336588390254228055072261815199568824585077481909732738407786141358042754008566083508195499102787034512518692664864442386554890413426807670234228410967441366310024325272329838850556269014353066563446789750163078277393825593940216285644409410758588011610574084893229622338545434797051621765798476694399023816709328742629521908396467376775300206886903156706369932961703934767736561021363805254154407420905314627679053228849494192714938539837285928628122648263537458292781844485332743278929005908916994902735813717296130029106778177645246873490052179302261883913665117343338078832254328536868827118627759720852053510591685501827037222399726917079001824798361112979244844107117936109235146239288392618531591087700672881777448581459625995531668037811085628559006771067658641382353681069062315556724711120443289028895790214355309949160804899945566309571807813546360643798040346713776491532668291221197051783773919256903914011153363089344059642362791603792408546936688761542774052703244439280847731708610018139280467857033245274372630329199897505216877396339156858778869070783506407904064295676936043979201450779577870815598611210418044520660966863181735021730536672670133406325685590739908565408324302174118476211136866216839092978757110680187094605154174759925728694781077584524155338066073226851927355499727345907201113560093379813894430285296045551708376844505941216074921898661149190934865503676926101907395931091033978854296270320488272014933309889073048521388312668146961211258236252112341273787114613537216116233107223162740583204834761074841960649485276008481942867655860227260849982223221288646565607890156032801405920824957518551689404820865133613679880278978873957093009531050306461571710408726709150379184831568470891815310160733942024243692222330407350342686863865703395353892576739668782624255366351693083211826658382686559015923509736252131083020486088880086401964397662950840450929568357925541620767666389535183069148402491380896766703568581649576161854092943447860084637544825535639477016754233315238668011986352969395310228009671922596232129149869501854914270750383988540355450133675747907579865626894566067122399969279307089779429671363787010352942219784882729026067853575454534768016654468145913550896334782405857312026175434671372737067474661431981584551316792641081100283533220386093163812809291712059204821297212581603181007421740669782035077205321085894468200063137092715450655718703646601366785653321017998462999614181025201816378867682999669371145663923130466089913026309612946625481922220620419671319488850455493426836827082871370520503549215704405916206439830743059645817618902992833725856810799669595624520877686464080302383013251696302470431215652677199900508893591585613806891846304847446524303964917991481697497000341091822408129077104111444310474226521535722868335779523317308285772405590512262149795357388422522173494373724291262253703770529945439036494190303018997664589377785755983994234409560624942573064109361037356859250682568456301862741111031677982104192318943946512264517911842156448441656517888537864631774647538802148050977435666780858294522193020247950320075538352925445838514395785462361166080378879316291964160286306642079174651236612370471981270828453231029817019314140908583456351647047498793911842169074385663171100068428028739297945704783465296353018998036512316346888532270441920345134971371087105136057761785602381164490829628651812364543722610027226113466677764084185541696494327545697451724025190477762812591244554050568565842424002171187615472041139840681562607675663284306539523332297831257868687091875748489697357711270323926831793689886742056292370148722396040652203899656525970007849710002049028057235195436900574229604602729821192645117894449001496002740605006270786633117239360751087339309322545022796979913857983931496309935877950297146555038278090285938116691456056100769661264211804411189394052486403838268022253214407969852352359651425764604024613574189645494152410429878159824557002860511277831969591107448694660881688948375020702536027478308460689466584165460353093178711637004844355696430717563662989224075285472321885163329094895365383423000086591229051173914996561696556247239593779670725548978134620459746972297637490057858882385288273882001591733183299254339706607033878581330311643275086689321456702131009965409915232690724590378598290140512563393098586628522496775117133120185566348309153193500507864902894381394945780443063480212699127164058337614675739187642267477746078200503944770231477476275494673058306879212458448403158064659506472791744663046572955913915475505807171559976825196765407777586142873797175187753085490844847720009303230672708455300248014878104807289905882091007626190626644306619504286203118382761823520750979649076222675868136596867308996247898405060074560556887491086375552812906922402604143550158932640657968304925314638681783192649271666591281379573816814074990416358150277233274035955491056544217069211304585454796784671125008711132634196968046847445795256392870620717380405232180627662491240498412345925244333147878843459074271852708997030827889124403343096404316414073701981103670206981185260865560105285384100449684146902862697753520358592262035161314720214322098178240651580762499622758928108660543712047246478812234152449103372365248154693734723052533870182677246459803317151645627476032335595690885641995362136079986438489099219014819692128105590410632303754803380498580433468979039782297252251043193859737838838951086303449945510863709218805218492093094507568971192447561543572874174128418671067383227895084920365623900000806434770456241665068081446664132538405223379694386150804309512306059397021601427747929413074960298470859391435000200546810586894565547009494603643804786736148863012287692999282719718173915816507895341582847212102441601298403682992396184031628927987412905479719107038660822709446727155846431603218925074432801523437167115901805471267061990238161641349811638674288537474332734056947982289657457500285371455663742085637943284423812110656877619428815110010960091988004851034948677607032388587756449049538618396601123891202641403092043492436679142397285093163224164164083101833179512768286119753332984865512224351846209941092598254836089074130904475703085155722154432612135349576790054747300291657640063294753290799981949058257072218850373463377194841169718813604155971287720637030395649791791567505742858183195578878366413265711393923608255932266366451433368312194533194047675655270742524563240602135279171700133708208931382231219512400189344909175643485575453563439581774972721954016334745551317480132539384181086829839716591703745829193072716114502775465989932486185011166780293633616583389883702294413802536111180125300297388365565454580460615992077852321925691318118967150776394798539175437159219783469521599860649842963243000942047449904907584470841044569231475924612771764535690577040458038693938705841632548981095695797816464314773718943471178541092201547862598818452252028231372917641658793278152002269116521411221296586755830945226530517352785134724366397626468247386126263059088393738176192982815549901078036269003917613983063319499860376242853372614048225984175890136548715021408450964818756571235339186912272436421651459508663439821126771299796429438302690915558457592504501229583117148772373646545058852547967244384616853328073822514394699911328799040979761253879433524136245541873701721800522822254897938656640309119450028900307464921777373970110793390704861982093176921291905402147975406290744986615811646008635373025142027932222707440858388200258753733097373418643731403008166969202225955486111349432612938686286863828919254328516666075422329815743928744811633797451592944721144513233608363132767790453850468805567216144303897132034738858526547317456409769314112050039383685145507963357435395226803135758662314824884317491646649184459533132933984942686299710552387264017266239574957222005075550828780273982048367512106992132669790337214087683416386799989659183810639418284371288656138952371991075322490444761453802039142231753367341003884709679259540404821107257271704343823801612179224499187650276402281131318489850740494384037817619600679437602676714324255343159657758936702509927735857313265229934035410382791497179069448619734681710273279796013599522028729617962737597626864564505150156703063266128156555882733516788643851733523779478551090063259838901862251928817014260121481479338323499325577321888744256721801976332037017137182498549313369246352510232865121969739993492703340952799531982941499490928204163060444849993686306892833549473459616610053493334583262671570121425749635812335737904559991998699649018574301152316358604805020642373994612902330421085447563197149763369889235836031167523824439404599148526444574942436100834049299304622641724410411195922704947173885078752688072943491479766402652608369771286581626609386100376570221005319344932115978905072137096372539055920842274840355135786601152740781551770077261374927525775925476433114842211876480864256167359529473168497751177924339344367554163296297118082790181136807783612223548695814693262274015144959256293817498137184680464194977957855763276267364792291467971019460894271025996684296169319713469555593080934918427331898033477635209705659820734679214025292750116965851229474629509256597952701652236013071230796973006133065955218615340473147985987799012491702852734780504135692994124818902700680729083746596000711151472267388907266346780061578948905472262182086074666409461627016446306863914073255988920101126867430513099656865163158036757378929229728401195356823928202345035851264633537208134326251577565965898727218157613178944314456825818251013516354995935611985655967729716547735630231465919375838532308330693902436984728331372705533481069805405625664026394775463783501765121479253185649437595465148158827059783861581493961194432149404771026804034866177260129084538761355129486583687283279071601180993111037858541210849496626266122344884773814367265153475497092977132729288706848899618285286305790799668530011646085768700736781842373167224624892685112557780419319361471586705699630586001301091947067946435071226572370657295533304294859957646954892985041838338519883944560734950093304400292127809177979712724234033853229745768675960894365250059339468199477949270241770379988760116651498265750875619608851881569141975659473104162366408981318724139256040645925406209573724342410573209169281166245342683805516995270565144449688332959096590591819097533775624530686037537633310268670479584819056604929137671292500707412192244830296441057418844752550787400973654104570347589371807369560368383255981572901008181693599923912058693290112668100029115040716519275506269345812473142473052653899594059384401677590839083492558078795667284552831831629465895621671486718788464431761510556411142561215730301183893019511438744679788229146934355713653436546133588806053305872973128053669219239334654326765412747673180289472822507832041118590369235303254871850455823993937847044197551709586422717714190281980880617122990039963232186326549521696152469030182025570213192712036574738435947766151293862277666793820392196685816356211386115922547728350514503520549270502479965025262816828592631810567041952497009847018837476505790244639184450494983092604962643711643079048088570024133090743919495776338973667084228363720315939718246239145078884654319699174750229335343588062128985993592438109850488939251747280070264607208078839124332409579330944591683839642045169344909500349834234147793079778503026976128399520722946778753586780428325127965508291679095747924622512585083306330722524768833537850101755154147415437428047433320398567290968997379786237306941054528448579299121040367501505689255861619896815339053197159408022879864169357156080218352522269840735225423135566439018157366950503816716084946912069362072827601632421911514960467762776776381189597979008896313903395721188850536026850743614512324132786487672227024932985827264364651665197619875972716784278866164292476120226521002002879617435877277681990866542281973498555582771580506586808485114088839562292810340827756456490307860773844084992550485343416759776613425058195967013582635572045772293303906534546574528637169278473699706021861043223881466845191847194483354196964827770997340644905963610654219629071430741579852875354439386794727287803806590350537335767541609938483041218951367581973963351279740255424254092611182619020177143940703037504849505184399829301813541228309169047236562474249024918528757406792146860092048621331802806234645886935579406654857027279948385295048986791074731657648066846451585652408197567041411943132363479424207288456374620662597984314217705780915003387354713894552358606402146007979420552486086232016372558061648387507281768201810520390328904158565379187078769268766068588692030545117284805259306059368141063122881230862871991311024330355429016599371789092838631957658626430945149363843411833316234822762390106191394666117442003201678496857443768803315356411948563154824970223927286790988921406246582900648165737712327388447510261618556581185495497333190487381256477931039783827682148642600060493803442235805423639147226028424444018823054597624575551969496782170297851259588553996422883389231876531984619032806495198041827474028669286535464007311120240528627752222734453582834944466513887513768703621021782563135537430690232384245243839557264281657257932614096042528837381676017325024276257554932451681939603362172770162645903889312263918360663846901097592625826929884693880641024144824510237334680785799842840966787575367048543136918742658971343072941355562417011859153549144702133771166809976790272927523645451725565882833633381067743108433637533398549752030996153975814050971694861033993733817695947324494999604475545319497913539680456934920585250108690480888188547237756920068106170122535848744326501886499520664394963768634716616431810693054985691822228005381334723595147414182298554285392726085373584354449033869851649909021324294732455837876761193046696080768787268050449269025232974495297472898585921029460399014994448499892122262799117880210246097430547534901591726632469345516551684171830272935068706100827388576452093558766229776088080325377866966600282490810565681330650074992800530346283673342484622524995027106822208233606324146475306249233517007556136306476001930098327805362456262601845024270302495507877518929558474655765627081742036387259371674627176655176537185309326662491822378191146517165530668249994510337634410808940900193755640128233607191217477363205613608804643114007211040886326645118807778180761647757910756469109671247791035038989321446329484649265525161894084198276182265019821416837795022301733342294160277723934980205091045956577397004440927466042534006095984244030184392515695175208508302150948632274499243785190587296775872851139543572229287598246192616271721609853854359604107112086539605149834722825349659760333455350542238432159317151022402754134858608052436080269342961291621655582966420921817878044923730753398655564937453004472753476402745491941351403091000548572519321460555958398849457855564884334467921499659746455338282809835310281034621314360139347576748346942070730504896131372690109205642522813920969069218591471351633050837057801351086321265198375827543200676122159894925699629515386112284796100173937436782131836856720961316019835512194341624014854145361524088507428268925065155711605834954944864642025180849546170596261631962494011242315690989154373945748721940126155900658562647965130476759145971458816203756820041513671868755286941868872521583708875354975361004649033851331885643412779635832817749531321270051823512040472817554758887193902697997428799947367052500248833649154726928083750306741204493187258712394043905703324964534232680766865358971849882051616165209108935298932559464320752024669809568592842702050998561008023678410288586795845694019194222958614662430424228177793606526166185336905509408192207158322100795119239443494304436602472353389930448101902839049772553084906507807506211425929073099804431847452715338851220299028100058327363247670968538795851427679025809565150015943101991681979155144747812169176594418313750951706346914511866754735959789592800237322396448330477561997305309155870529795539155151916733079227019827878850950543094251238078957947234704441960975324900635600716514256164821826251126824694953957041501722712686861329041637177525560447518941348209354072810192485082339158146280830417804487997514389435695113526154570826228568562463245220988476615679080255053336293699107809305831105535963455287425858677147609644772464126246706305748782158315528542631826523432366951824873109225741140046172691049752217648590117267409422317618038913166971069754890064779931537530937303804159673694508553767090305373505009704646945621337493184315343010371375749059068087202575260392529813228071584955224306595857141288875903525011153192452581045681409392268464776366596676286952741771240755543343877331064253673985437106632609689512189549673528871504109772368293636685437179868632837255252530994535325574115179470152932843200349515493054425769160918959486985459399624516503955604005125495137261439673263709214984821552560955574724978244040820518662738835640720788728844534026476235115651923886455996188540236670731773100932051792172812987843186248882528300202735346423652985095635800912270640375458441576617951587335493209523070322485094364501389332079822972612769437485513187950338286402702001074848101372800707726518674902915931719114149805612432406441106886361384602648103248887812585773755111855160711637712172292076566424863977087837949446047413488643875447646112868775682685609524730649972563338282265968403986268833235343768814418787790602947895393662899474192593831282982407831202844992893290997417432481553883630213668422390478677780030186264571656349053037884398082640161599769318734075482933382382164550509205325320445518507161094260140987474949264003815828504732746135922401741667093946222471058902366120010559552626944460901339325821665624742409110268929309610753711017904300817873485420671102750127757976235076902975846874786538083843278640960908435338021532114943332281807289113988522697658003608988900956376073721750483094526733366840409559547487119309282513027145516406355671763149051570698087811819527324145758115888085300690908646351822228277201218369312669288562039462839118619410029306790556575978981388121765904295453183785037156376287492757542450491261944992938530042125068659659708629851496252897005600728607251200022092391669254124191980039857809255553317153247281735679633049957881355392599143800900668547828808323871457261234518916448891035665334823108787930999001275227678336946129016067393324746472923745735317976890035054690354857944704204673510332326165305554889983577674484648446410279476450216770566747895290722397338916131495097280889958872149878248485575842250894100582997649425580882575031472177522562247288942397458231784470801459690290965964184649530807171537063444884432190084179856727124945689312597639527166492629002961222454393513822068874864872831030528504382386903995178561109545126430498544030817447341589488218651112464066310985376810079227758043840588725526776908662708298255563695285841772714427850978520023224700528444354265540524355597762045038031915204162011230099453575864205141968473321032908036709563479228988050764450718895494318134731466836786968024907478519483328804381353392662441553938195436379308704251770847844416626660157706721070086403550058756863588094436070244378278467931992719887354052276689782367385034557744565981598750631798127444820140413540022526623047266306162746800216714068284104402239137803015074882563438563574963089082473499352598004732951463137875338707471683095743506163236608541912128224069330790352331184061490990040252788340943213534214401826861464275191584642484448309701822664228982605382317568023095660202652032677973167863602008988576525095883691571211899093394227521293492361305435340861653251274499330180968419418324487035518365664590008979160915444988957110113552889299117205394381893983899119696917465768119425889803951999805656391987653784076317767915144545866046987352112229086464545067868291803241833147210502619322733290578203771347456759343701248746182591588680399619738494634605791221161986876901902686027762967236948350921790692942714568905322689259048130362477906712702440410009618247909308580911672978118499259806803458195688421523095759437150936955431666579293808893431962358992082124702852926817590941491567213513177589574792278005145643738828228531137265164577141305664238475690350683829407889180709087176319104123636178486558155541645416648178653559589828200875397158332011917152824660153359935562522707022705228240968314210569002454967799839868554970139310862784122427593726839040313563933340671021538159418363593012956113750226649493262408089585231005163608781784455010965281403952484056024475275358696763696172072845767997983116378266442443791367638209920380405255936005760820959320308378131279081945685887158848512094571005715509069337856650218783068676973017190538531105061577444096858067855065979084795446437717934876669101137406712498061922938758329951288075872673650668204432673831634322716311355839105836977894289642830561031631920297405336689553386762414807528440775715410540568686800456338726243129288101702780788233143824504681932990616903452362974691589313415767463538560207057718496949034500779623457839460817682158984777474261536176399976754102940710608178560378655565431364533720861950623945145884933037172380992819148022667572824931990478654051831266763014658129616480333328388136748112544713008555965623463546891491087767238736534306394322737572363762676899112300448472994681118127556843164200916456586671646064092337785429604442384348666703111908644946965317795598872434650500836557950296061623158768339392127056215726967803546191241323002308772065656508477121767898055059592475414434980823443866139029242418011788117553208657827773158536609143820928468203404182004659359418681167046610710394719589490712658641274672703125340147162533975842581857738593597507344980056314258325343406338328157417620764677628207260558504286563209476360650587514702343780595269227779591940921104664849089067310831716069970836624621171927441110968877518090126818476975629574081512533236985345134234218326856250231488761407830102553757753956836750558953442921549243127304970299595812963217701275577269249991563986405088404327438163760480001495974034880833242251798645722701714805399427870361681788849010130994141869156940831718187529508538947313248341631854630078701284032411289051731827354781054038523451641320020268046548693977113128215324002024522302753533862761624811973522772165594777413967128144277337752379990352543109619749277369870158932626714487093754151877379299810692136967306426581299204815135441850115088002799498586169078187371141542779561535436371186978570208748776317925256021902028199032867001417638752760922480391543662182068621027963709495227430785056606365093358048794704419620806303243201790997461026433570358099374188845353685845879511480223433009904498848304066213025665471870803776311445028506449801237609844095352289006718215865471862757463468469265421526683145988095164147142565913745276362248712762162822154175238151313608622989868403898636450970044217393252920034083468683685827972354975422142693919092885850348738335746660164787735238117267220627903023438621756669148356093822639216325971690258413459501895599195077186616081492528050779187045345754589171375629074089583076636993729866243636948683439803477425620036584594694064859478222909421541539004809954936593379511367487615438172382717315225863764667810730688695741324446039513282623774752975002844980095361792071067702595199714383566474235462763405028454430071189823924698280879273640084429985903937876522367969590160405209101137292206289167328288237536977461365348448180164996886621051150730958390904057409224389146286335214797150913605070441752600142330844896606965051913298017735112915826194745891085916846116944140654406522847035362121365567267491795566156814899826635800796126442575745589225017679172227560434124135326520814573171418632579237456115179391767439547149269252430054274035222012821866217127310779196084173851593280291050505202817395336862208862144920065093168434734561000838054775469541859370784477984866306360446582251691723462670577389063248048353005237012308695215227578151063779540459164106907586223432934479654788933311035132805802331076295550514465297565716339236840310512520156499975752960442585977555479237974996762724227862476384039558404216107076412605757576375251025784936190385787563659353641025595538425686249672539083502557334776721594528220330704663510743264990269579185864815787491705353153890007295621125479998128620058385761724854597408896908177260716627527496543652938847104725268439384772650562956306455873131827555160703474555949760166647970827260663761996757207986824400509414950246237020060553609271867725498877651542749110319399521220650946185880820048984931541856325168347774837951687273699566520824374115552152776859474521396416856585615980112896276700026909497705830255125034245659925354822067799357980274949940295607833025049715147521793790085690019250630113690956146269817768851600141047794401819084288947774592548278113334150942391800251988009725471165663614340605740579152792674423021560387878238361643401194648491408595444456680666716168501055857817239193906891310197221962213263204991548510866930839892775750612165575757790552262580001262850156173319581995779469910123191609962296227439512902719728031966850957283466137892839538976731600220784015272505795086304277871258536080373237029870209925829353736337939986461196164282875856942247695539985947834421785228256464026472308960359757877470650862116790524409656781016684793062331563992468421501359067763122821236770311539234740881109442772635100946633527320938318515405335897278036567382018753247115816261833857600402079295202769901709902062381285882866903196012740170177013296305561456281474097915303109903074083865482435693973877910371780764008440817685778369668696564406089909426701676101975445380225614030117868919042982018762876658527051027716156114551159652644762380742561869426056033516064700658534625951009504462344142488209260192222435806620965186050205724719858078806026118850418483194453422927734436056269756283618347552745760218940656052739747764527161602800095736118412954353996293891641076847546709949414161607120089942398484697943317824216459233936169609146343499095565512909309790469823269726134352235037389425440507483888626623735975984960050011474195142676101737341801516772934186303847665208099231112947674108258050183912131703967619279183267513631096037931406600088390823668549164792192180121169729543399374285232180841919759524274137189869265827407161546622779387760099139518899850428712658336879879104756591521685779961371998265871198873615450450855670503211807151399700022002228352730972622292943549991917420311916930270553207205260349597634694575604082246236952665469880755299695034495589662327792232484936098929538546394103719378407577814566877391741077557763786595902240250104503100298622973717588540659997455305545199549894824228318611092986466535111622045536191672232198699898624456696931976701542323359683770300342689021152193249213940997150727013100125409886364395142530038604468215056026242450924108241703739229804398408782769494101395146623218597324389687486019977323903398542430212350866459312678983189477730082834232833754756233122284720484146993230079668064222528932529462595584581486486396841601353755194497565473916380264820833680191552240619114207217241936287515265293646635470655176434357827425823047806711310444989154122200096898412390790059388847007960853897037563936561353987470917710191727422628806713820310197107408576507886649944507033588295290824355542353095944538026242327490081975180721964493155306133941032538164605731717931858097992358427630514001973035448077636485127515173667505546343484712985413147552178249968849638102098849777445756291925222967091387427361283367464545770190716317753706226733878082957031180899641001281554031413422943467495061042004035103745797274187218475036878022236560866512301595384872733776563922998009447702321108851215161916401447667646415049374578583851975386957578188069748836078385951837882891665153616551042537839766159329371383499449496957952666249694989737552155879339315389321970396103922435335432797069897081471800673336515035002003126146011900604187863673896257436215082961353010653056150825081598889187217121096124731796918656169440405199821085669274032669572479429080039637216598314056257218806379923684184337996317834404253657766732078972969306694968073395095724644107771001297685364174275802917136055292241105964205369051082521352387156298290568024145086197186534517933776615860550250426810594204220562630940212931785244164163168991648121584807524109241663792253021853148392512176355952158000221752705008351929334202464455573042664210637388842027526528841445934904148177875225584919262987290466032014841749835794241571245458269751845993314696676766998350638113262257410247057902550617323534583281797850923500049312420239796079921300313485741603562722468337263583306016552974201802875606246623456244980970930572742925426836117860257101544475598065968464279793486497865657915120919303017259311970246745424137755148948423600282502000100489917856554721071884090741497384219788017705384414979113205543360268472333134841298781973114313796214155783346316469736533538962016700470288053307466721198372959099194757369628243744592299945487137003871751947807309437487945655589618588169483504731105161339591024740141515376573486661920433681724650472102929870912676561088326207837603363978590765286525552313671899544805351567979301265515767829625050958703049796008300168816802454877866925556507600305284272986305890011192205586165148933030379812141747836373415897786042748690889899001242426097136541956499852231625408747799290718327756853753948718929108864339705619057308884256831340181785682422590982433286333231798346512358038509602228452520997444769384362438795579567752053436948080502192453785419280827864077501511892515917274605705893832243224087176248687637637588773920214080818087192284938884380518464041667352839132856738432243187982198781352717732261523556823678006560827649548878506984237418620413128402435122358892735897675594156668900436885007917327163607952932942640725297916520105294731749521188615153476093130966519054978791365089026776174386793191106735516984219490492965460680661625343174844525873079762917753249353091070443062215380657952818168601677663538597211381895630163372946047359992292420795143484337297243626018500514354133296505761253860974476343840935985065467822364265513810299873062891918511808211261391327166489265423662084663131721873854850187363495940395285681658051882386969669612140726976457736453392343953511349545110991761064597823989509623840502298553263454939417285638283556835618442982188035814885326655460978013821921354115463659890776672236007280955312999228904181619669597053066944516630211026885814704891308821569154987603962243952642287767011982387835541396551784361874402403745101747862769825891944461069465023995904873051579291911984091982047602284867098628697879697687796978168105464944002861176841513757523687491883394759236814289160536787593961114415389971889424887425265258554262557089154973691418776001044499414050486968291480096013630193535246658971777668893305858795225442165292257747489985675471112207141612269089148674800879979315498286529174508198594261953130592104977759387958171265064353838039889930588340424775092055772302911134588957140437321409251064241809804849775340797305527997253674585694187943285685716435857772362287431063648952571503559713888765632262277188958810091831024531629945534206404903593530446723424154432395969881727243506380529057848214285285838932808601116096128475141937695573596121564478029566572166868382398529679212616124560673109447803032881843482531578736519513876992364504407494137550383979100203574205347309961495679478954936256628224217482736245232867391438862178589185731298813204555886282938053784595309885793949291233364322631016405319196180959669057588831190374211119087205161417116451675637590216280458745866699007240397545959771484516156551547893751915681836140190299296357964495237122110528223682609564997758319137511405932291068008719941890883983804085357185036260005058752916882251786769010744425386654925713466757747493434320868041025035203355817494825136720822969656553427611888836465508476538086226759210355009168095668828303390509004118220104371096048290885275266827893925665941343164026948986838203456120999699035660986164075158987507527698829670673671158187371895233951409402774618866846182105668747986324853921650484592808330113148338648218334875305361719280509335701985356020200933551858825151495144841041965977806416146755213061821035740958972490702486441569256107578724350926608359310175913138300865071345727336963163890869965307779839046770354280185634159494643292085343535133633420173817292241450195488594049077346844646784811835997783069693965782434702343214826451209696035333597147888458733782806506728570036682793182115643855964937281734652859630455945891174565673608300753395080347364299951811831600953540384348911581933476872403010325868127093953161203697404105075444043545828717284077319338667372639349123527529462558147157798008049918293373627565679407038534492758789291586605753316865071090327730478340156299293190203358268253610435839287922136634250122748844814881191676272595745894674299413696228599687305784102766284262372435373546938259185594861452911749845220889695175091861178133356956857279133250483378063269344424898515204882734654323599108478940824413336921756214562152623556010467197253889128019499539758400655009789392915437829511269311437130368996720387063867057097694466884983996376721008394802899243197028203109435888059872411341868416717765398479600088141909169337303669743622278696886170464035886633143716848705568301366832721635751816007987668923841701179975315556353883601336411808481272638614929261170828225653336132069569638092354478131770073929686905794522760825883129084383938618046592940719067779711458191689559105668448877636203639878719418938919991259890754869057996589310625062424251152017809116019332934579628848578364268781502367581160922659214740678648664161792037001472538053410338157797976304456547186750125008668582749026188875915823532929822422828588560937994902449411713849604392801955581272527068255062137228986185764163687110715279508414453697422405689986459271917481645146317555492836508400265284786234462795226630965344384081160218464226781248522985132731146931547378232042207647695133361939535256057060294000320771184406039406840242430251065557991180746253049771770775052860661651872908403316678847128061322823278094403244847638778308370561443177401861157578023968338536212451161133719900341717486797332663443297193170082656361897522662701622129648570486616641315960160981115438237031263723572003316747002092166395938851925216435181435698618426408739882743448671798515564961616425594542165225804606934051785462567004703365809510539458307744879958609440696009188753088129288531157428043360260281735018700951113297167358383085822004027506848684005758758357807816977830883402325047222406634823758529723152873747419724826991595902249353894914218101159492698250884252948352176498413309120686760945443919858201451873817628416672632469179417360935418663619210287818161994756092312969110750514441477212420221406078890610922862300262482768206468648446962915476665890933522101815948642350607729799886219531589965773441214596232892963899629656981372756726423545924616705144854886594358548019400522870003368323591924871632981681174181956035433390518107493585043410064393432944239606970698061849405364712676543198468234504691010936744523144575460394311781076732722891050050924347013758018560902748144597844243791100540551453785388567192438312559732300375398614228877398105258270605171969188370472552807475465280467921814336085503947640583404465411159733014250230099593763993145906237460684170709220967276937798737136640134713214577499324656848660826936115687716684557798803713529942430588120673770995802723698262724752368266692830089609525628174834387330368894859070834672903052386569074643151326307239259641225345092629427660441576219096410109930351312565336432253581467252588502807303667310241522687915795512169506359275434133442521091256239545316261374398495476533774166262522272387717801971290415515394008114009166007088975822206806828273004045920876333590438291046188563675507786594977691601298459080511924933206152394497555776298777697311472475856184696462517998141820477094835822754101990168503264148460661912850503625117384978342232693694680614018208474683716041272623662724441310048082792140287260518604975747180836801585780343489798707227087492059022323975311007656422744584579538956559891836842602648088998975154172092146688864859335363870111438487188258269181021951340600276287564119001250386401348122139664724146381379568488020781118234021112212897218301255561084385042575393056475444744689239420224009415871744734249171902721748754237526715063520648967338543704676591929672152148036667476108946154011058786178238263999315298192368032603957564732000857066972875543729107788071170528187679316948639808797021303216611931547909509711310754638713410258849137710784847199213863815561580200591500103568805740971441078920194285557221609069392318308525902888483086440276865948302463316448739199412360982333956616758584507243483333714109618615221907185779367184377498324218895861342810769322576186769699383492201547936284398635522395753936616145640826500113054835117361092167431066373124281887697615610521568972244774471203168926483095185089427699879294402289507953275713850529834870046697508031898617262281835820099474378906503898572510558644908677549310002706647972386815872029787473357403837022513091218536441702187548880244311490982356710952126666305454883378583256389789464557208252002794537136498786421147024433503152381812480003713747830374988728371238628375515368397052063768592825831126482029171972605930239433807813960577452386368723796045521349829037970203334998927607749257250977387638285852646218912570511014812085972300098098463266880933864655798123456912654367976782273283447657583396397830966084579301009331106613426798854349299051087128666442691249735969168706028709141273072276602779677128846220301568810432417050301536741789989464521032425270537633930449081775111640208304808342651463087315709554681100547269046155239916512535728022234937399948381106081092551876658576353894617535345518944159088260364200613637668837257134864731699552407546370263300368177667893685553099558736275670777101569600139128056041559649458907722104085269476149894872779435476475432927670407616895651505007536513237274219268626528794465324283064262314122108643097458696237769854465558906754140334386981196932398529999862155899138541937420708658190779560006396895493260399381779104073389569157110905997835141085295903933945594650996447238745152564695825005943696234259758046594993859573786544217995579090038198761384044463964034081293909094800137166583655269449102078184587796944831301468064389425295415073202677770705597075609416381527990519397336130858053420846828641626131421404801645628143599619818867742451041476035819958387324960916165457208598021445284190640120953257880024657163615065910082897828870619591034106636996045822269780033876381742154306025887842002674644809328593926506588729393718709585203649986631490946117517257188288745505688415847470701448074286024269587982233836311277621867170313000901384121998905996695185773017934683000121978986608210986062625263855097862719449433295309553047372632833535811900380186329042333566053232002713840914378593734002262486774737378793419795381679225145677238313582883117882541837371630246269446924455471016237400108125601865089735510439520108927067934088190226693308862131225159886196346508833227698387765412503727484858744092707593092713370438222657954983085112091927365563531443732458055830150676242378879517302671519344293814742556745634260782646883796486813881826054620239952162209878794652507091509591541626114851010046147184342112890491574044180503421710231243258388802721062454442095210586331896001889808990247873405263447821637466480084560149641824629664867060348421423616247981935093758454574276469846061169370536309772615479611348796331062028308088702209947065851651471605461705352921898231299981714362474620471205183590418343878717556417789335050078063180183807685322398757443425932275710340460445435307875931012378185289600994044584647715121337334874818122393940646734430435849382333583279859933935564505073379042768845226498521123607138031635690718708372630848674388858730229327399672898538486238950482559563467056171695856816032142221611275365094939451685366678158572423510839557714559616776484709660138037456709350222115050344663724559223455174051631253512173700672556066061285617910608916844702686568516140130208560590794607565792722408363570373772595205959727280602423268963952812208566164141909053949145716254661699690311283501795768375460536797711113095284478638866174535927183325958110012839281987367522837773389882136696580481110490800487131835189322395184575640273791185700204329156604472613904217460222682526368244008153565464612230238300182301527973003818197505444530694533125033638998768709490202198869205302954665546362875017295298792429168780725069757218521600184398800387736449091007625030451467568739063136719056476406658463708136597882614653800549257950833916908121460484361847577008472172439869773459220149762693709003359575794762255694748254025129022116838254877098801604884872272712793178016197578839791390535846073362708899892820450363970609077218217933076135070188489444690350967767088368812889839183289216332477534950844999779185314938118806430697519173944314378782830230033555498274790813135769519766403616988783177777819614758607818650082363710902584720930659845516496873552364327415975114523684227492800698805502985492881086729784576511481103918128340338254003733037303257844774290323073118820390501765708391050073901990618922831982422110077091024266397503387666467528299532801434151225887949737380238450435669414916771242011341049566573133160850486598560458699877549387023893799556885052927110798120283142058164517672837144946616369325708756878532458603842359743265915047034843710052432686587726497844102530454125037440695196019635708209955080680776441379727597290588371552123037567073102709373627694135841488183075866759442304830348927620132321746675727954565086907009454465544226220394369048799626210055935077820647233478002430647919118637708085584727487816426103876257272539479588868915892872018458114204368168011676538417482551746459289159364288339741947623349230096799902886863413447992629888065748701187920397635314868027493072694078080921773632860493326042131448752640555809293646333952976670243079531073614539521470188273564516869528871421825658847375805919846345894250454702203394053793662687386824589561114455821256602825326916085220326028941642072157987316791296988926975230660143108770758367143655030027738800446419484906545437570747484311015592166529513876144043745401096730662859242343568026196658802632521311567693817376461500510716136712122436520738489588753857813295516185847360135785232597739693001783427901402371152361788933266178990417910591121631634665885157761409891074708715677357646449509073055663342444167296857310198748541008526453522407014349037175106010320543943348128149164454823895743865020604070751795238861539093644862555852592578158932070543880746567652092651229377779651326400997271658271066250644983008363400171196882246156231655642902260812226583464026668469075351678943925520969767061735534394328978350329252181963924636806199600217367538371717487665849550384331438548765986632916993618849813353398378075744548556497399382691321289586818512426481298016109852317724913038988322166118564416501236623912211560055363707056003638113070738860306212050184221504589595276692197754690499299057103839343394636973094530034641722632407319185479125644782509936072321520586298863352759909415282308412343945555420616656305893602204879359840063359877170607126931468688193033695547212726689173399435789686383393475752404659360804951663002477018822957781474196772394535617028496553683548502580157246683347855816936244439843904616093725180634201456991873438727061888645433074707054396323038064966224808731980978926855732106590978394668583809068538891624897202200356005892874270262269923389507784628258875247897263172043192370702177779990591235804957834686206279180226478876065642037186823936551509524438687584514973891997358148929376002935178538756110612407206625054565535786630330304235252919057375007412373938626849178051331733369733981203146795122526210712516569055493205692111259448988601740904013167261538415142911037013476683250802702477956974395849033560561626090976799516385188205693631678323703746665993233656479459842915972243295750807401761672693562352397576174749637299536510617483712199698126956042594312387682249254763426114898400935043082543158398155781710842482096298155555973044376351858496111806015017371872146671129996231383555276354638059933471154882250163993854503121525050149161975978021316585726664044733877127003089306656287915991987995806928483984211466593922248992747815633655106015501534225665830518304268487776239388186340933262626380229443661249270791019696773760642574765274312940876353863426806454772718584716245104493562522760643704173906586358833348916616263647954189761147906667733127183295063841287006661838389577087505582154084750102714223966996324894403343339025712553880414570744968738643946660126073396487030489062859420792611537062948070145182642894378721665645561625756488104517527274562739552947871042016174138990789703306154912924944165558524116472138639657279356810874724030834698301593379634296722640526716814368512913538491958230223156872050345878585700560109823870465504691984146890097401672636927672691663893000371002766401224269362036186971569902738566147467130926490140398461975343330112952558319430978207410766291520922296832390886007257136721317561672820379484114289664076764423470980832464723243778147240347018819895987063942182926614168924893381326049944556531965305661848960258034802080242115794860204315889744418907551375122085706131366774776839418627811735452203511541326441100849941259899233860110961425591145395129485729782304137262001239298057228242131041208175138648945506824355388440649501256070518662629461846399818270172075584847529763427822670292091372065522607949179589226035683650952736532407674507194027133687418576837220389415696350119097337627478103289419413108436669301591260351879028475785003174488408175134784526324753677431547898837670087461858651355581101956535192800110843832065032182688370427147596329675163748771862608592949652861560090960748009292447507133130280828967751501990327984398879191876364245122744441178277993267712310033081506044757144280137830545805880185365788896915793704934835079061102367929539923486551087782762207497282693784399020962981213990933805995813206485641891623381799459580134011440049906203169795690983008140236665712973812971992262156001330007049642055337299253318075332972727413750172952950736677641079203564254132383696126584960052781857470402064605829622155024466573241930952573378311999277661240703028931534100884763871322800011966297017445177796322239010672044028247658861877878426215525926698856725514689634730144805007826057897893956264955845570558531634270531216663972336341925962758441998152697401361736251890239298285126698700481445978647107382420795405230731620382432151647971837766168193560892368815314174785644394990479636923616225919128214717100947395202905899027217456402754784408679240240852099095036673074787717277026649003356817749391951337035149455224365711327202159622823801009425549786146842523868688227122174642277404056979438320248943995797596799319854548032183665203243032341625842337937043589936544123966474505012363937746211896926652653133295528896901841215806905864279907054589292755680646500361502727283648963891677146360268080326512514351509132085603000017793667046688596524663708168360356729439312708482553145981054321045535846280343586318135437459043144693141951363853030593793657881702918220855865666281463663194555299946232751499342235764249159765453429829645260971151734635546660176104653085131303121219455915507298410156648579890995693745520338408190180606286578206050821812101233071615791186403605270373802392827203625571405664127591403508799412214820624066734621565818687215570700663475809994204983166725596604076910912292611199186406021867149151904215997848681688997534971970507562073505350866883986767439088016809623208627916329333996194623833030326810328121798308053253475423798069094705566996321802981321280271059853637898598817226276559828308302211405543661738194836799532804618378379397011627526128521813099010813686548309373493351358515594294105546612846043045022819933401041728249574502395251737182812825001896216941700512958093258209722781718660857366377557670171754940814904864152433763347095197494301518686613069417797411696001694594559895775086345369533604322732862697970983808262716671134995835614625342858994792496237549272450784324133241905390528117590493632024134133686359989512152964501511934784919712132878356327285805196675982085943755512630337522510910322085613982007634550405034608098324394382519534977319134737488429607339245338914660635476885117350730120297045031421103508201682481985504882507497757767334438077435902441381454619002880522697236171278669534557379515038264424684838921663661526002208385834186024037848094915400833023965662676522450961045705679148045543939783857020653372712504431090180356994381184153956466072058757456698264408877359875275487684223131564029783809924824446510937373942450830098634111664996315828054492898555634092369690588808294318631607641543629819914044632725940447028329857778422128693942922342165927710385156716588711343731160874007087758811843329491922565560469001552983454116227894908075455430043762146847050529352503327241992942410951248417055886190537978414818480174155456363425708814543040613199015939116972061518445142575973994556993752545132805863113008744122750502323579434985751199204186615095014753253618011906791360594822232030197186680434814114080275414086640544734761120601799115745276480721405096251154989341601532163709473051584335658539714285870554326761875549547333752884684966624594707682905732630707675612846336307373045181200789484370107818962874190900463118363018260879112727647493484194820586264382376604788142525183649992447707234416344351828535719005924689043087795077326989548987093650812653759353500514377825897562331539690129289503881086689207107583770815005269641929855610585369960185068899481249426612191705331620405652461927675546176924708911710336905139995983663524922166513412562220933620947971226739290709563744885563353500088376409828889457295395858294658505602478862165182488540496399929154380273139650230210573269876232578530545761087428152876505150796784075934298734888822504227737990196953880595787424486938923438272016757072539151611738885102865442743454814840482021711533695529068462890517930833594093257819789885411862736948463439216546852339238891405124778610350712848833066263178634643007449248263256446843113052656588128564948972246004880427417842851636898590474251826550560710564948889732657281989193839875351458263770280955953436363256525696949900628443540438014578598037165660379034213039763850934674840660395750931508871694496862031728384705841309617081399802371500645696941162085785279430651641998456223654799739681172553297610566881723824931704855286564053165134358160595468656278127196571405121290972962914229966377432468272986872246584264161598400936110374910780034369882065731941562617944766661449701774460320808709078953624761466629610423990215084670354596594888853971932632543577812892819020614815798137139145364463481843969530381622412174748383264341872466353711344689191991461105430588492767731264314992851810668851945157509853378113671753373316705974782926791432124565163941286550493556543045813836491209039458816061097408403253331328622982179284581786733967989373554765643457106349545395144561057737569490611883219770192601392576997971697029143166979401231578622893234258264951810523817998261733397002540400449038868978816193637648619610644293169346837188033348680141365114323134765522712878940215572989086647288813561408192020544693849207613385436729065726705331777524144575314378304224330791701851423251742637407860707880666692659189831310927599712022876904644534953659325782670657528413408122328125667082451086748335113362357405231769448253125982010442594463357700825019610526691033033305127975609881795220429241457348601579990716548915540802592710240313870781855785159887654221055591775578622094395267719972745047043047415860310708489378763934176171997746794673656600078964363008784432073543643686363633044758698026417630997477777294374307767262954701800921688257890450368129432483440442830236146155701388951104550855690735298973514408533949642912180703585701014879555480524631033148112755723660525811785699536865359170705664260432727424538609744753396344390648850282496987908775238554344286852641483360488594910876759352839058443568721710912502613545704451017172624102555879959161980568105086178880540974197831862962591929184829190201933188159452334258969285635946894973921518919705047424469463760315096883873453308813099848612028562694148305584951699900506905067067797675083095876790356442777674478584475360503670624011464612209162415291907226503915196458992505339797079721006760156317543779907944524850922581882723419637022124070570582886749018728771205337957722294606398995191042636679908621881282991627548131443566597417086516736170247250512084323069808573678519671040505124147285816150704209733032171392712898191666404576397168585957922794409151048975140692971226293511292410878719433078982472889761183329359817235506273076289014714123116726754498227535294132382459591598906641460491572590247733209086024925216599383481185721377759777003009331170605331760642913831082670633640179540291476632124503088820137147243640266118218742841686560405692583826212828477807014189143424175207959319349196626667105610048840597245533243727338826051524315314227561622722895137509062764928600258797317793777694333235767802082190615088138023759204814766054402797821470911898020089653700478180921563041436037751743529447804171492979031922737473793089163868080093746374475219639285467575629834718970157392025085160927767629980667090814637249703139923048454143303032485257780404231532295770690498882506911222495644398216575675425929602084401569226538492108058832692969421815306508083475351522763922915845705324154380396205969314639501539756374267820827814164825318533451295695552114844408055697774802234311814343639217757685059544619087181666248529373448300768316383024274019773575737154303120334042772174529173307326658351660163124885829392789310958936380839504540063666429159187055148314728644805655064618541696175628814838044627274014522121092447634322637977848448224036642497724234505619493236141356987696327752894806132577231454718912147127241069257136335369923522608529485641524599816540616861578551809808155738637239638710667722993631884952051372490719782040984699978045707715100938679697889556461238315837868843811730181391693263695893024837597570990421624818712906960690866730584791811640406643439109497917286847024305977828633861413767360784379135806441041521381318281077420903313043520895765496350218121026323845170998883220835003916446500105586945009018474871610847626882420669846288891652962974350083616180076611702670031687807951380294106498219110844157770873655869067835830793646580807163789759365678920571180471863579976009830400610716507881336047482356503040399228489015521698360750078768831831646082957543397031465056410772150662246409850323042580432579213934477427754943864255301960574242998614584211931881180449303689087088184561830894109741436094332467765383529711981275660827380238632712984207712316360917587849812830710160055344892771226350064939589934173096228334176859014221755271312705772471010642881369270200146552279849930334118861127755467837572046767310852957085614887096289614674176634388733049577894283971254326764779660864266421906753977297635212788911299362569352239353274487278844525416725086735539500969253381664144077640387652813324831817966270413797405894280608153488038759866894323061278734743722889917817553589067045568128911427333887450795318407044448680552838800868977769749231614082400672738217636141588418402957658634979033819434407958564137555108407077318733439692060009856508960081201178576255754479308545577549514642939989064288747156281981783871343507950083932444095858305182673134001097327309143613192086507709259411942393122683158930381440693059363193965825426440259331803616182656877958495966949825401541457316318806456458010111976670158983247693405622308713016414548246110426724156454851534318538357720994094522680527851067350545050828734979454629132901228765155832271700655560731768337403675276032032506042901287607164126815514768381119071396112422385756223989665622977738476923826431465945607785188649400543869412147607926850000521890629963746013653740419680451809353044411050621092616717024827510878700478570856056878175790075346629565340348786463136096890416795530834949087800226977554420287886144019537024489754611011673915427019738070925609957118257841981617424352396690185038166633351436924021736655981660322996492715285471788104196158379043131729136059836547389853427461525975476919590489814100269044920405114252010799030024220082170111290600895038945745556729916828314990956060665442585305394377755279686942853114738496842638630529210826124797078663850815766186806596978019605345894381862817820480849058084457154276440315837004031456521563052696135335899824177148292375620750397220111959780348010845905531007404769281285329912475160734584092656674023139642021772178458858326696468058489263403818521198864792901664301734789425766843823707474517154250610352174009199814547801120810760839431112009938693089163891187051843967360598061258592994010842651974777077278394748439920846581789239981812182761687843880787614107731642598305405997075855545357638158543784606978947846748203635130919021602762940517728078250798189555615766559171630552563075010660540137306588983738301446575743349345960731546176063578471385755325296837494079155834111507569255350491881427667940191249703177738612460800895550331670511765873469210701842702573034193677686215564106397680885731673303242364860759723215068693777140481391742607611248881529294257651512298874306361993710605256723159307860167207981203192828208318754189386785100505431282634674569670920272519793543330868288044111761728563848513769766221071973373297615036679020001247115488589002825660954110249778614809654814499240368444423735208889196676771198505411270999641204468449743324110866665082464326483260230754408168482565542008710441791011015874815576424903489864507094408638869542569579846046744764365182337959313610625980130031446590365499296812718181032993403897662685035826586098881180092731372743011484505442241439522310981122668108953775036405584702498431815341810757926631624820713929300683059762812202472595761429197069539636010168357535723631939402435018806593302240156011387754944595205490758664583223420730345388836999924694279926090526095763699859140270703180695686240431947796701125643476116906921252971453319724721982107922845232695400930253763363737296469556470803945800599491483628545765603535488309437872317807825064250700498684448431644350626489182495225293846973339972160212027432082965420483804254994528382436373943954159015857319436725325183409578957652859577235957815892719282319305788515802116056370161235689011458933244845935393439482736247066318848269753969837649658424044526430055794026059974534431202856880154213742687750304600910657487598139687855344969829183233966443401935162442225826892067186007647282932389669154955284261338090148825445590600645919240465550125842651302312901638177722472524880502372286570204554079162568515832428319034026862453319943438815471688452514124222350626332599729213156256244199968672196664900448871830766872392971980124344583844516744035550211617175463461056007512289947205781102618592336701018464827186449229649679427140958374801104503707260811309470551706068136648528928493048970695541276292952920020355199628901303163630840815013370638647694302126734430512032890634077930869386112855138175876888144569368989516872128082199511945963656230400026210306308320373119796912993378461211230547611092767600338868872849326721341239480806916571321498129944846808375472998625962663886306524742109948101719150449146269814622696181892303821779525406312262814696656214879110500770922796620858425160641339520574536523216190968650040877385595707710871208319601042190090109264467695931497655957899348056512179692852447301231352744689577796245422230693936925611164877799135958632192865102743002597257670675113715350951716673674871438357035651006546716413613711611052314431692075555084880057235662712696994088026468235225634916135604321698081692903506840300305911739395137627458881464260507783364884268772352992458015472124854896306132753680550331897522845251171513205426117860064958556389808494481958372776754524978362362008354787116530259601602765041339671256207911260903049775507835920466888768884558425521836932490973686902339322595595008052570964435095389906137081466403296908402800714583030946032274465407978323574409429070574257665109492378074607282195363818531025477126518070428357960819706351681943938283954370734864281776273103840719135115187948087680010936415370286374419737977998614091433138876320396068663195972536691668368898715368231766520863837830914337181206194858773862938712637472889402913657153534722087229966009730107017896456139455579398863453935102284633867530264462692359242791933104432737106868397984871460528966922137657520182519568043923205457443790664287489423380050367694865678102983342453012988478146911157478694757775969705324553275151255808504557523612679505465118718820565245258462230930801126827690162798456500598727703592474711352415703121029766910367449209106663705121789107653488746472563188674587969253897870573310577988657831838588058345054816012151457923860732905455027195297081968707510831704287037790525077316877132935277066050276270218510635178308317091143717305968486340526074204691509253474097800612552462437408999315291280387527362727521261800496298487587673371691169146458213970865992634090956337809972908181948658038396326928124840464416967566592475164540841908126020962407360424276388013138410944404619161779872416247963521735261322629973488781696708941643547394543077443772037881151408944528251087121312414425480913816085189040722806411493288377429109768823592724003443616038461245149628404527139129017600248521991372285474165461780355307268459280995047685971442122769630184172957787018177627849259720312096395404724078776743948934618301406035615608587353128122255164682770130892822207172295053288723325812300134675805302023168600195918454423467022598542873508383225866519086270259774167303381018093164656061938642997640195242692578680581895899995687191866351122575041105738811705077026729563234239975954152801736259858399451902656609544425787182039066325308693240853811478658917201658942601024362685803418550826298081584951660399993331872165677342518893395209046511282618777999548188107636157620607825679200329638028591057375180657657501491670295761602231581917555440045713124015209260163256168831965012374822174114283601278221142712344177158957030181779658016886809449018391665011235569668557362115101157255173655731385776712730640331745075448408150968791273798425657644519995256399680825348926719691938304384514203379724574346243066680214127827086512938919862997012580561300442314440648413180804324203169316115822512263164002898339484205183110786254318963893015214989931356442431490217744756546923266482650151879463250856440034579431814546194752315920236579299895326583514107238085904739515510896061918975697268875827098637904456598535516999450076400979793617726570256643070361431874303030348369776921748002467502385733781762585727045321861027152477039426035376103957365575239069882734677804318841497024173491878003078786435575870987126594781416480697192780203083135108763028526499182415925375667985941340939600155706636785736511583084503787810235774701303264624218590981774957892459822321787033887125101033169643746425300556000359390429039129393167993917583967298051077606380405783227515664488340920979120066794429369605501009645942211300494252519883122496465425865701630266500775250675897965954660461490120017594180038139255855920540784106234089529251448366868406897487456630131955320184871767402260099306451849306540180084172940493844775895140720049118200617734934571140974792921114903801075332295552132837896675910716083372462072726514891374587749771509116173604577374678525134134692234095830242060760111285218041758612826910773466127817214801337800967241789516102112359510771850110307362278362699895344343573299283158210549111240089132402916406828967773664492222413774844087162479774041175143497553024203422720252507688716046214112189388751331514097503721801243492593379301555153420395906389365378158288148154885154376390567253409093059223162478078982787546642285668652725358356026073859286554641687435662927762112471033288274444895574766623044315915519167904692069234302450587519325765138878479552734853456000671991820746526297572447411527780283145372417664260825009786749272012695470955574595897560851831210234556100389368359056819723768843710776429079047495147167277982772091580710678193875490895305261386578869116368404686313385876034145151167284517753398689837030871449055618588838443249014865811309651923214070274985296559818889704206188715387663318405132858734117669905212555468415127160006224130902568961449503498798099267328495203699870666763521633736978670782848456845001851990882103130266050321584290526026191509161428155269599542179756895924680330305136245642174600356208541545923822253492992414730674718321625918383600280635593188742422906072355540145530396848616611651351148761977623882888525867718902550215356723866317225878694398684674474238576487517675557457846692511128663577220786197029816915294002677969419828999680155534227212897040180083174971608565034821142356998062090090435294298875880596248791943940481628785421849959435271037943264896331396984188176810071298051273033162919517038429539414964014895119088565891045702471646308734281220929755257807240499457835796704905089410804926460803109822325906398679735681915394553872847933652242907541952392000276719289898074851642307044616780212733883705783834701586384412440014745961556480995175471506693829228452446072828615698137590753285557726398812854569277300006848482724086071181945889271592638694438930515334585549076878877667254822209640980775829951479617344214429872318820822620187915101525901262560536305300572594182381375164370153078745777412271522224689860100447056819071362142899802646081578874221973701651114479392920641354130304029657583800969237696664119888694731691271609257707417278411673705183766255162148195477040033227609762916312224601319265566820059116030657058732062840773586808289565552433980126914393415071639163272434314692441605927201175634076289245331302842737876526709016818879476808266284476853855606458394699748527576192601994508785587695025464553408379170448363506900068716654677981298025810978228997429268277406612493963528523711019595538060435976095743347368792085123927456715577276361682177399821716165665723000332585099771730342798788560593345712819244354932866779461681499903833332502812789433706694684584434833931237941873041361521044721837998634628557878717685049979164366183969745897900268627402104470694990699822057355061551288381363415942811948852197183230026514543783713012611198622040781977523024454351009656754561203523726589263292533689130485765506581606176474404947963579011994233327323658535488452873325626011268070699860380843924957237943549942564791655455295243016319973458538510765464293785708353816267166860926275600095679017785645676318800335339888635606039367215650384987198807608922494815028713920721957662684256987421439290744591731835983078890597066457737950523127411669294298402578258345793279286123762660258324525416477611275979935029710859434681143262107347624695143181925906557868670024504593379143019740497898908690443572677701052167250126903403267052767617643926282328718601000628259524698183016927500963219977405562086339456679269612781449482501751152873565217215394607482667207427132685906058230412936097807195828238996434783901316245786780871390255711213015813420029145550687387634755384923625637853561312111219772852627551039181142614592616969835243757023014005850653306767603068338292521907154859357710513061817268836705354698720489559801745389996811375348607205799188852037568432188136931799130535303683816913977490545511898273833887971960635408792047695471739282047173893972678892158341426168881550106768811014448140256726011029045161907409897078677607767873179507490498293521282236843931998277233102450298478241345134680792377973230654908706236622619577237299221204355844326177979336158624017981646782613299053498078688515650367900067792977649802649204030880489995232616632083375081243175081315715425033945441412701281161749805867930309850689423388746012196197565165950458264365463469581856503167851243675499359765198739173657262379601377526945746722450336114936010385513357257694724212687586784756587630774456390442439761963005353030800784518146279272488293310367962186414576943013314727169645628980589750932580844427124152093373163670815220774059326414087212786814469616478376710022783584576023183761615748192900201907640167104930287730457037979756109518200537945043529266894168986834913036557778836477147859648802078161203130075836393792103509685730427597918283927488558292223466359658258419288181963351376993475940180651226819258351776515516470684524059108108859996942492407638255341361017893936807449702349639936336162727091023438473466165297228783604766171408155140199486783056019207502742685626349094177480296460662152153657240904354779993796931510963782875294234593507007782200572938391270342113859125646585651270182771127679363444309347432967047331076031123112300933276659572482487980497829589327988025663074632443549428945633681485556083902816525949819710632409935318869160863576684255553219666395402634527793559772626634554807222729106797644897107790863796073559008883039852947831970558867724793601309141571663982280829004961043930441158156440466041022350998422560275597272880823602183546278596724528601569998613827024863863347447886075424123520582283182786582713966415304103932857577680945354253516619087519807799019658658837441501691904447808566536515878921074200760082071119692343182074734550240865160507257106182432255720187440376711753869438054754435605463383328296811001429792312930380710519755997199076983147399492822804851174111362366814952273565593131367848231232695658191506040235778595695343618257571257882508804958300456065518307403677858915196192914881316492796420221784849535213121117052822836494689501385336894012892924896958523434929060056881193443011018472349904202325576341290088710075830359035718096719012317646277032065191172206110521414928045813152957341040255368373006425210743418183607209339627484209176773176175843933020700072477541870152349046823375526466166300216628410754897782779266661611497893127005891154111764816258667631248760351521500027871420231586490372441429841153593877468070702704535934738894677768225176919744004946598780100733667094282812941888179779362081423644252259229252040569096110963812183561863998199739919495967784744646866108247347950318092033691507898276391055852927420346566734887497083373743281677939686673733041050297037359179046046137246400702783446641474289784607765850623316332238579072635831166569355747549002647867893892212712102707934796887805633147806975406349944788872493429753082326310675983719198638836075503227266636234345506795298297432739311115400251988716888285923331404778166950832666887577524739583167452920658446800236311685034002922439196749359170448501000795375960198134038076870902173822770766578337528940346062999512543412167358851984155910808733050087784457030330815749687015232304920572813585324356968552038373187396548445253487705506806666188348867474474687383855364856943528064615828404428026904110050412571855065298107332001658905934009980782483819631976137452326606760868765455905760042297407498161915507721178315780813714130479167271538523243617012060699391393119077449011345798710215031566219304491691732771183225502024819547276879365346976379137560401820223097141610233902496222568572485121143124824539033624997853419215961911229046534671610973870344647551067881204824778661106570690722728706046536184485810628064312239746166361847760790584518365593671722064343475082642726292108607607600532599357686129593758908912577714389664090271559677108086404811601050630863399740847227974471955232417014333116298478042355537889360324837062071947714279242633348957653327154691885962229503770463730029790512242693418925001610379396101804998191863469494340427887873291349289074652006288779386331706769241810278460514087935434009305500047613279007204154576579778037407275608156188548256863697560271479761449258292142766698760128189028561731839773141693696412667308081109747581997386566699421020424498034394611575842107847993657380939174759320063971038940681608252546061532259806392254884914935317794963475738019058308509096837241866556650235119141130023783781703864378472889027932023552207055148283317962361484465260800312709730941618985417584598207912247240414672666703412183549411995152602921003855578951069326157620021139819523075784641656513411135009899517446488347548182629240953624149375954365218483878909986534836486979807727141291543736074482781248808445937228562109994127025673014344528846262902408418097400291940694179978653474166437487540943937059840344676739431660991259282199164938503133167572042793316627231480485928382514470917963064633201796273999489001294159876632184498072281687966416195362185495369044923520357586826437772295450496641480165584573869342285123949563867038484959744512928946289795262050795714130471480895231804828593591140129991702668827560363120267287373757835044320666480635540625003423942302660727298972066644142715272481133229211989036310334296850784311443017970029550130696895972544267508988170762211517330053652168139002901805277123360822628227917710957891300389514985266105123975765303566752123196582820160715004701553775677517952850087895705031114801463758522502915749873496804476663388498322431904654352510528203188098763130927042420507133825083706995890988406771716954565552509773212875144011144636061408384338976673387831013628157075726128660493121437816805452947689892140331093303359109656466161998759677583398236336119643004931468671616491572369229902256258928117186934426027418470122287452564123853423480095244996638241409898603920746408318815962380872979458088829144164589148866703124959305782959105651887127134601807749195516817964976862675448052748497726896229228054744116593172635788883738757794808072142656796422481906448394998431158062157938971515212825381904808777834103670445703507957163092701754207217658644625290131755228964576711528464158501887143935376581419594355294579140781059063106018210732530391905579293977320067220382887142659188685057153353514827389747804249395243440338202041725314595711663984357253826277497956501767988768567022574299252532328833117119455850944156157712528945950846977791807552525727160441706037554146921157286573192581384131308244547805896437803326274569188591294153590243636405515107502676241410516984702218154747418162879820766251053085734407977219789828301142654740186661852479533621928808331551265863543786547792632289799707239000195780752252394059582095888098441981382190013766166115228462929510570167350540526420690607201377181656773408230405191528623596316141882022968633821136138759205130290935301973982170771364262525591071436139982421312157328497561572504864794690863754621258257160280949001062509727765819983212077816782666845172478335822215559075455935544908144386449445067457936626010645946697813319156972620873386900073124287590633586058888270997085114822962517626633697720585886657067229299369943985976159564415046598435806425669295006693181163242023147128544083556560492354606977446126620901483624098775758489427897660448270066775920593624312593017324615624194632727014462753321545363706073342192740991671586355172960361390651618300998871635892528486949239277446731296570713757416401803007360586352299373252544783519128810594633348925514970122535785183366106665476175193167731231728855026914018064330374828642293800328678549630579663745802870326695111765571472944724583900494215055062336008849952445512042540256913340224487644567568893050209058376238539769560157423795601658699327006567297147865622721352435341900002886789710304285852195312351360902978354380671014395665320176384504325678254363608113632703584382227777423788170042867648152173448583444867642278484436619301278568091321430172241790564597977425488890220615432506555200863015981247125022161701096577554313379145978527460815221822188959028004487618935320182919742742455757661926272445877598745907391414214743515374799787275489598255008791366124510726720898541639232143685657465124812393237983427141886496283327958081325631057279619085881805477075843748208658350128366671081235022978363813320515929331545663772890470822441407278031891743007115603617131241897088718453102238189368401581306160494358632012545746196613249423191006958435196145373943914557351356170806303732707837608398548797699764557386460952569357879170503171598635435746028536562750075288000119469835405896471377804618381590409220449119165472004565283757647428164823370834534630343136659423766850794168192085723943915441553903373111845125910098792452861943104416465338995887487313098903566482473804622533082113067804112407260405629271837450334907598377525488265276284527847431327189509070355534919779391459477504214876631476592962329414767643609969845684385448199380187480980996713676576573875179794114402606995339758799614195136528426220817375857156544050940216540172844189681066917350124334885531058224531904347439100232856124541793491578965696814583617737419981655966312089288217455545088095245145675646796450233099369994272768252862492123044218926530752350687319186960157419800973608284924190432432345261678660061176031272841038341076584643964360141001445556709420029972380343459185207049803952071550726921489161793848505298097334610874860395206165613241335520048161325462800710275761015198103812613140502525498855947249145634594748326315901327439169834480774735046189209096688514297479054324413967600625441367659870544115562396182694660794862914789109106312982025382354741055693907111006076779974472065496177885133961301226243170393575050382482347481976741683774772191661617953667401863978560009059508360481706643402365224093421054787518297336908533435880106490275214949438946011490987109931212050488820718016862500089344897250511602899347614871836432967783677910603117433650400227339058892825060203371215520090297793057814125333896831580513316515373871088875166638063275848430633690784395358247335419157260464930568098448133562538078854264383521617767750461462864507735586541351017365238610045361789318929844267118142019689973852540988554382804043314267398093070521466353049445395795077540468247400402379671276080506340906987908227648014764131077311120417102296445059408868860674608253208186110278888229113291969187541272143577337337577773873974871984547717976730320517550420111144428001639032605327679591834646256242111896430901931888842940414949007514712436033506578792584284894295360923565962295384845301973938534738880845580724668868122575559207271437206037521067816341498637350557314613340150403834290860272005405561066625393968294611104855505450908648429959583265510568548778337723773839163339345612289392658514298860321884393033773065798693519343183103249369013063013124747127354519248666068654002814477857734996781318114164825489602156680549820876586112099139657628887559234731740548756048034585761906807018674794005781493568761035137714452029737124520857467499387801355818554818489388248237033228696443059314662297681373606506177822087408703653852330652592417030869944562519761275997538208193063724576430392203670684362111558190869743804709285892222720745039602847584036029672139771458601429528389728486526767927496810195839735601136038108927546743671357341774462808338593064449799105719593436708551991137713751794470903998934609241755651686976364420309429568239283736885480231987139086813547466093393917548780766258624282287809468770756534289770411141736713469692295116758528479968767238017191864678709790358786947447945426990677953063089274685190003016966440979372582161066905757021539064531503477967356235339421776402326433519605375727710336405423513572085489094611616698822099435554671998244560796929831178825371083439372807911422312426672637834638813373140906556989991475926923179714764050111660552614144490583297806008320135020276127123838657812856233043613373848672036653392024314037845662895859088005440498099022533518073903693429973780051611443746645891958137251054908929128510533112534394767210154784197537479714772097545569083001633497745031434561099823227695189203277575666041172653250413318422308007624956793508857567204932162731613353252506211587752442241143944098131287206942662744543661107939602165624036819017304322925750290093019411513098415783939197344649818738163293437128959805222378500713408693840279428222071861937289802660168878436889691367167021071116154409858809076124540045609398428831161875471353545805095198666751024424431845899768339275360786513950399656580771922357228673372430537829820790089708431767952671652195253663633607923940012823564014244043169889682643731719762129136711683155803297431523004729219703977090307827126023524547341712582187229231220071013721276210134494080401999788622293727026623865149256721162371995535842795284913570710011142200941212585456691903017457866810344440712887205733672937048621891482276718057311719559303247076208883569413367117622326777229437245596817544465871046919895106940039657839147617181826228581993441929593422671106409013330612553211540083005509249088753940942067626600618818737150620252844059145601502190443411178520177619689555658429236472759015358435650507124992679972575861046542841665326987075717342714552249287534351179147780351024838599146227764467095958898471923128831870469278602010689152257071875255674435112531582337805330214308535172807290869946385918310121514519929030784845749434306627636246356924992642354875807459640065586745773554089799686613545542671463877331554330798492450515154520930444934806385026947909652728081234957933137773334495775602567119460728116772773019972247445160066411967367440167116572521753614237569593467851571317260608113703623408840553372343893793018198949216241671482590385853734387726999539754086351017825061165502218529476908271280178166782367403188913326925460469787066932950625077291549046951211395541413609115076774165823577985580312204797014105934638347376921804039422032073070848106224192498138665798660640692933644752051935158027876205798062441392257643972241018125292988792180231350578314197300611930688051592464820360216283264131556696036398102125595360998060504771562166939900889298841397826367991919878391514634013829935635833278695449099576209472416904974488345788202193794437382816610277879458090238770512788340424916119461810379558631363451490911293031990876702644334704085282889536284018153793695963478512181195185600413423767017369883244250457344260723669259714864186653468564938487937687813896669718340380596951240623728255607536120833010637263738499486482327394466111724009534750867771592405908656154480198722105830504776370470232574448936149252558375269862415854437493409699929392529573647024370553269349038427893852856790920889574605611797038342174312022303701223391065842946543513606232601316897137397093223079636543020059584193340210985978084931389131224454424415088408838420085978484378377119382976786182912077452446345111609443772028544004915849944516818870786419013557113756296889269614919928988438167618993476302549926066266767635778261302255283753323791724141447715525673453875424477569760149306662288010158016601981599321213010675828521994161975003491458085694124806581827121976339101839244457775337298865480713452073529570888254287916834333178401936660470541837497111532608520176230016413300488842221563810732739838914791178042592055051156582395541170632908367591893314867997293830777129147000307268262220831538493853696260795697735170407482240371868137570545952132636029004187702398972279834500145815058870841885826243173973977062501616570894679735685505192095377387645909096743839729952126197192487125189549955797483980846943033110759486629522019949213737600206816053582037123029497090098999672916924527218703492887904565390579897926128604937458045025212811422900893048403394054175239851783369032616774473647973343929523600663694766690538740806756675097957048101393739139963682029848530706689576518935709200885796326706926871240925229626130977057897458241536001992180139752623110685447095226923137138525662975437326361320249890067046815496269344883535822830876383702411978384772398498007433248163338687791197564916669337515578739473124815326978545171532406118480108807829112095353966326077734582208121140127178979245547394278134706181612168507637200718978304795303572301417538251460694971544383764432962315419373155075354567866601615882819320618943188037998391038023525217383953720481601234388244032951214733990964640705269141683509972488550629035240405429870975072380390653119728258755709624762859529664251376042424073964407512690720498752727731268325238644422168599211041913493238243226274201992677349341387271001731567744698405623068167668173534255385758323446850179035551245147942539883969472062901654680127799625366572526218252064767384721678130302068040391681755257247319430404221419861649281298484030797658245876384261117267130145069821515283379478752603995447385639662477064855672030665114216705559021815925255584602054057524614261062194948821855114617195842940885565920509669378479098241887320108600217852714449785093096257065123629737399175845267893138706021983267854032553425659087453668311411571509496859978140093874413427685901075870440909856394529151619517314585194727870548909834317672822825914028733138220544143794818492572446778624319994142183359843372181921344128634405572102871147650531722543733756624797757354019494303805102164829473133759448435235952553680110964397665849967700155013151787187941365788125400150856361585805044557135439007921380889505324263201862073920252237202881049522178953601491263377419837674557956720044764530084343124202021860966814267150665253856554741962689737972170519339496214151129267919616220658781643434974495437458831473333743028994772414844639821744779732621850480504636446112171261649332879805786411369813224606774324623782141158880740609422346609626406860378354110127083648519799569285163563424300087915563990071176529937430043198376604202450933509438607436419115552913081963992564591557036660130692084264381006605327150339463217315024049957242031295368648563989974959211637971051761785521004430811722284391729822736881660457121872157471633424198176781687212363078186001239112689194454048625585832956772679481295124319644248966266866367328728817544057949418214034370594124841791698751577996230486806412360038469401309529947236326173658465333082437919925633488524487214065249243877874487395406951607568054608098778974901821055866292756993250377707056746933137696188218395254522399041305945913808896657520681620067864980213791668739962321490469546932702980088693049556733329591282953879833124416512238845187634912331689514460161910710069757246905105415868874051045320396412672311513194730310897019705886454672182705254518190403574026030895398302230810295114219905217027467424010470371775164316998917025926731151330369219705410296385218958971900926612108097823112329948007244923158061576418769036577336821734213241494218933617383071448952375979636185621769925867062492507235534563015156232572965925716984108920949532601449456862343308435216845261050510223434203710301916405104128777501345757738141517490791990174996245442454749061896817717559963718255398824626455441913143246076430743333886116128954415879927975661266702103541847311946576433902756223966566744025628063583930093140552491622186038535710995681591916953064516274077536720222991320083065854943876000579238843794375957879252239362283160998560882828591437713663240933118356917317113516013193154826671925025023593814194310657190377337288237468253431541051931944977050092564846861923534374427773891053372253770850732917565090607722319570741705557633947893927750035550138508948875164346836512599497523549222736322809149527307850993698981113444139672325708153327675601212739798273369016071112068818743491068663612292486033785220618264008736132027300239483175843761010113395803411723490516997216456992917258008793926801097918718077366133031662964090765175773888861117657312842678733138023981328488086206104516983846696407523112160643620593093479158654083810945050356183007394935596184233742998784043937636640873664809737731531843313067998080739603155482702431220429985716013320098512017061052865373213393812564189536145056787001212719901980146721681806044218187510520819473747569323300709062555896731721220939222801633467617272413746525296059445870025701894025786990662531553275337905558186448001094220121966215245044163942987738619003067084893618921610292776076318266825240615819491569904635851172580345736738582777489008173500238891479710505909890741087088837542897204753577506731936030429212990167707553136314468933925768520685456166187375136988557490954442165796578065605134632500203969405475571156678236524860130949410765493994345532778321312497333971085395871486280558756104881303030192095452525052376176296846272568261482453178959192188848593101964984058252152269099452385401221424316621448891640524587685653082445719666342864813074276314290025337213863557438228556574509291507552628756657579152032078729993842941597392218405955346410356709439824134754216841486345167272708379011637850369854074564212587609442020405382603055826510319845163341992019654161517894060588290992404501860145325115279220544712006786858064832579928729207500352330949361500055892491456913748048956366605788639324263750313007910260821604146093478711879908158880793307611941996795585243504365493511048600040446547908474845865090192387711774558014149492923791453791249527808291952776327624824568751833328988261070263378022553022514736103539169117624019354409276054630987254448855711032511999374365295022345225930248501068682073785193599540353205564606873924407053559113792726908535115701400995053941777267362019533437226439795244566895071527050745620547949627955675828411895567747747680904697701033709075674375869875057467086775096822583837357987471519980842250375239817783022386415801035944638490627548698063224733679719878071286103628764306520307276978243982003899232225242738591193217357264225659344619233286347742682286902101173817794332261193339470879591690467071358097518894984367601275461978476094248863864580568261785002869720467980994697105303264294049367910663170401063363948938813119862849211789050856849961957076979696723742545949943025353127941574533483397622340379822688407628644883004727012843808196142875557360859724148085864088257335605057910230687905981899134826137320620332777421383359017536278593227060340766713949282463813509151750858412642146921919653966650679311384469521799950165979544656125722373333208455317807661914652984868594228576242964338912425014130065133425050377878827640155907005479316149856720313544340138223029744357731817721371800630374945511795140976925293465597238087612160717017062839061915958842914480881358043130354068741596348941577145017956009729751830165775034153620323203467561191757449360854841925888738788013745656972844370590329159645945802019410319268377280486231640021999534279097397657330026745518154789392143011360163384890205617436565581841952490316118789268278119325169766841695302236802860616340916472426223842875653286653734796778661728969272469517869998927998304123274635020501190299784497952201586766306762829509713054786565021794073564865170973366529756402375531521944377536096943153804498666374575029881315573012434983252568795557902586660445795539821135222658551141567901916872933321994120610749927103598033273209135037317505074236540578569620160211438346733629032433657331179691390825701481744712951747138752275120028820591435589846781434923638698768110301574381859433813605677620910709326858970504104320855355903214961021520515591852617900583733797884543728228811039646711882964062141920017704640787409711075957072396984382322841534708271177520691140833149025081711184105542870439146487506542522224608187184318420887377307132875322355854311142975705352837349456060192777246681058493178265586849038386936788803035684869784355125418447894244540623239050018938464387031997643477333079448401154284967347051851647078550646045007429861576582616091581924587095928847281833979712654447696040247412873634533062918154549575722168782762126909795764816435904465659899796900699087331984292985029915261368712853248296628170550242737055709530388217544081539327688016317009540548869160810929784429993990806150691055608500907679809490145170497758651347528616196044262705150069227482991069019708570871660898653571892419322101427053685291013514529905334492367148593128267106924966127801009799046412637798710961314226379255118198413560869036986757350970243299328530333792702565564262434966694820552544792770203875468452409124158727937926052123801377431883881797189244772627991694069724048885948483230066073698345316965440688635481124030497600183808759876333227312592234644319737309346248614242090480559511491735415099200222464491205090770084041330529965363401074392002447125512547741290057184095033024376432382534524034884575064893843363446124188681036723402834814495430310977792514102400360668272537177010715263735350680522607183481659199936030868693705386879023887841510178339869665116425071413002644897985055135557265122012769195065828975967966090754055378574914371338731718614438372055922817855123387550709567556397939133001095296489005421653713261351461628819451631586957196256749173522579102114191923817368095683275356365426119275352634692253068794822774608700356243477604177411264670898865559882060340674215182574244211742983959134994550765722020032116623150124585790747848428595215551269450895784998413087362707752156391202748146438483518876111552889797576030722302057197491621892819488093710048789100144445916951351010950634741749872082492577676807684602338884097552572855131531798913170858683072146378480306369277727705566418464103870413461391053912594659005674189389035831059601338203635832268748181406040628564838182945340941328113912348124378296380756236289486836815206536324816448217203649004152847939898939320727943929305184823291403191179581238816201097813454284189853645955891516262440876386049994637624425947845572825716166386426338263132033653085335724528361968507355388191601002147831915754936868795334279515567235504232067035381536858678648692769164635815897520486456714752975499994392085738588647071429387788411102101558486293931430254705264408760795508616231264504020612394119240918178505958099938756783958666306031777542909422006121951169862940595197888263794607426724738141368013779928918081009455633877109315293813656426535002670224467704469168234902060940708470691837858433691916082209162090255393664579860760353338257482458584518360060938864742147736895356177326182058291687173213200868094898588334296426367127096769947610507828269446706742119036736311352307862848070902262094639520623290581513558414973164253444358141948696290900201944961361826456291535824595419988114154485342303153464085782999773789368519519350153646007513104962648620391705233866579267684838235321626445312662435416078567386189311222067593368864408478568583616812280271902556544604737660880525021403273828717161966468624909344938087604486189429246082841231429774739629241344511642747580316991817388366387043907116598482812301808331828756653575853524429223355728997318012893508187369674913849671822143265259367559141536593764662164164965223401761927380950271141574916944240258108613165728523915491078905124648622465719340336381929624657009872624306975785941057531170698873737959771331812519294940126553748287684634962915219645330078741858803502735743230493711943941529639731665914227782248978270149149282025213454057774527251550112835192919204189556073205017034681300851413097508710509227622242914900633939295506465609704456617572523485698269535777338322735194767831530180246632973960232273573601763924271133103193015677702999382775853072414023454436286647400139609235659974882288710794619319787267579306945017143526589393144218288585107463315811135303680103841734459232048814644446469330416152484852476615711042855398727917139803165457793414178624077603396058057512671765652854349493540398992454366303058542921822287148951493608831965037317633299892781704162205179977080649567808286948512572981209527722252208935256253935532332930522292067137852730601375746162207648978690176224804275692884357403509394866375091418677098630345285997948277465736887704770035335487718378122043140567124522669591687879478221284674025206074678396069136384628136055853968023792269851079600583433997608716226114779366246012157047656760276992372179873276347048959116110374642660032438044708670454084329196849373649316626401751710781408453407307262640055212840903667226178341631162982789121442243606802628708566928727745730695552112981943328557940713675577778750997262212523886401033914983828618694062166932762666560139946355598838131567662406893068281582153842568941185667087574745348501737695573054990991629984015485628784366357363365394440486294344074814273255812471089779348782674063705918547883966777878534909244166817442630913847648351298819550819951657992242552246702072437886292114621714926281341422571913777841480322499038422556754930101387920964940729893889748173895456682206234150350166029923245565666955443580555684296838469298883059364957834095103187104872931554277166122121635996726674840015989436335060249926010467268530285323410813244580340250260581892005654073518188304693807585509386690263550751138698323423559872444633435654416597008990613222530931501841507662461941902581684478575479716708743110387889739001952379679875163581602577190678257080072568527861759605148419671175649022324063975249437945033602802396838137733623397351202347938503036637108201344921651124202515121671558644950626402227713044908381618053909964093068270068016139910408118657320817291466235232607958905928659975916898504719213429682158814349889767302573365277692023134299642010243848025608824159885553094533020665180042931087508552685647384476121374733712180715493260562894565278384202163533376427394118134333389169380822212397946254130734773960627845093744000672067990353226394822157355112233077380916027526439031924800999517402749997962100949980689483961709646061701053519551851104682058301602060543684137953043144191533656492802044525948379028950513515661259309202272361043182978613361105604973473514534756498623263432388727298499644636477824460514898507964894918018585619982517699023362635283223540388770605607305030558986415966764503056199679055558805755019541119699431549347348518268852095100776580034068673483825608746496886217687667728223506774833735765870333795169636249949981900149627012892923541227147582417661941707487294934459195942686283266395289463285295693491809047718062495889455503733848163210841664769212730242944883958706726872704408335088552831730490772852071397758938267671487570495228081385564897377766004639554516231391521492703041949983546409802203839677746300479104516829163262720225016289031284327955803131232057237809360733224458765479527426292987913596540689235924687400564723921380072265888780622715854175125093498675623342755469849905515466356758411224384168134334775066808774437607089651568857801511953672123701820561117120170975167011295099852809208459475054312236119797222298066666675010571491988349121056525595541964274763227619597414929843763982842315752791513395348774826217881020205256774022252531387910930108418714660369003920782689226209497708765830026525338248231437585028963494136932695162551078605701340254904220853210163639941416910250250363728454310004146923720962008869205273369512212939898519538091729593218833307929958162837354699974613392033246264473105570811574933615053636116053912352664674022729305829481206382779502917807691268223485384595629325919044716355548424267592773633221301439002378281118603377052983058605665922859168046158850217724301439625084818288869081837190019420956774001516306441289717532455246793008295497107285542181570948456704012128036902801472416424556622613637420850285843946870701829661553607941842815291831035464535889342580954833732517007712744663680360716313335843013575901634147876058854515458615305169532545185443639002556610952934088190657836255180773072746052692199311474312417983273641565084307869458504466927501968410836004640831258226649197947553657453367320839962982389873536305860966325056517764497844493357351794887607214611834726164506844443344603223868626141947018111270188583870890912664681076311086360063787742274025326759944748633435662206836970487730532893513134099299738900209019245468674032897510683898671965519900103850872405832841952142367327561168832358668795491325749327357619832340956307413707795534270239190146102906570837193820016736562155276579201215799745201220949444139225525637434818268788935923990279703117664437031068399806389888422185934877429088563393949459416876534927639648987009511227155698102158674542537561345472026492025348559256479307924366147503748365326281657334264333560752263092755675633866659549646688227865920044181891547276710918368928884365938915414047354586915862857567241782156584811663590076705290750073450585722007552627135967592644623428727232951849878051977948203806697455183876657264982789279584880104033588770344747011110361830043735695503103789006956928025600515011598434433497462838208739930879843013847648568820443640726798199730566421112482747021350377245467723779671792646983212098084796715979888350403065833090927007217492046114296215362358864612439494598797532806013029213183498119820215936871987069197521677976019438331122639909645457060687297411205026111479267392085558039561911782042135235576331797285299061750504183415654852048266861769536340575965711191772532145190058436333729718244927453523786306129784129041245438292475902339472472822409312171519586924454067774938197583535471009801403190842490672116094484417780968445206017209092411366553424247618164990717822334703699417504740757772163191686952793119184264055178985506589120201587947194860917257861062433354686446443489938486185690988001853664372562835424389225803841461907378673310277623376209946225764882147260114491253418135181282899284667771373069905616531329388156867980255718313956112976739496098164802398933480223732859344062176344067774053704060227496557240504912369014604623873985664896567144499294701352059084394692154590471193975354747571019277158367381650819432582324950617307687100615759411174831548768925304305173858782597730471802825179677834461574655773344499251474966492322597198062689842686682747010924597578562177394006345105385066382533499564862732729210687790169691260554849540348454512566330122331271600290722833765763049896091058676229170801612792856869033127561644634236446655510833572313989677266810386787892098003736154325278405825785035254953840464698484272251216171495367012979616276603914306424861038895518646938072194555334531308694018121956163102654527101321323181781236956016771628456279721230690553842976826214715474089886049071664200318884723700823391493734914702215115088267143376658460619747148076318685665359318196355921555117906712224051479339693706258370052754593393431901419237787250289439712040544849109325850035996143095254607831370392222031077879910258238875717693096783124461456080093578300169291821809447940746690602287700904998214829976647271567133499546098149426984739126673693398984094539082764669344286373031118852784637794231789792701782850657910583786837749323323987932032358958346960396909868909251378731852902610847382894726303132817775082272767307807971687379073618876451726497202720112160251447811433994300068516653370391611903592375289777041451011964853713653274788735694132484498718920864686051177562128192912623169391158689876199166761589900624095199465523323488827964671379660172574636719120102097267268935296809476036538643131723883832702221677860113604077798658952926708467043263977594081021536070240286005990843172318780068972140016753263321265992250507841863877499836203202911871433415892593457175834045142169615653662743704767704788620227419603219757368040307962507382606463841778175115553208290623614087776447749521364020135551224530532569043391237072439449976911823588087323668968994305200172652327259828677750707169530726063443089410362853253620633511486339309749839673998135204501827489182994956638892877385583286502359372178245919470984561187514406129494692626968664296427019126810843213234232210094957424220830456104473358555821552502443528242197567615126577867722216307022352744509361681902294523419138949797485487247607823624945144167016750870896872495256311641251558866032565200887425102181712090061068538479048714465618372522957475742026164196080388980006073806939372778436353743532150962688335462723128314285967208819393412585839208362055336624983795825890919874589079481890520220397187584405449836008183321784668287213047095911405193050399351716799852676841296529677993433045738451075216932325680961995559408596215618632422129171414836348016417101523556072993690829030563261871885905141036921304381253789970195741904945179897558718819510657714768408458965225553295848924111477790032416400280992100914982110750736059937775594131171976905722550713172680204690542631434249902058650518119867782357122760546793994312147233791311586149398006913923886243735718444640903578223295719739203921163932938450619467774697339383226036360710458636963320748395282416738894441916802341132313216397075712302611848401764056600575804076824920138629455769855991891477823171431033912433913272104195493250399995628865418575708134219844486834601326489957018123926297077373575171588879653083980762033746651686533067487909616939447409301199151696037357043667598182072125741677231933730908255593870950114602862333904264971621877182010082689781876155012266914886195432407312338322423305637116639609094110837709086286558158710491646891186801720429262464659941931386953183047061260998975235789489670259241100125092138973428500819362261542300522278660694112276890612588863773431077638369306248595522515666154302150829932081344983867818932474746238010185456216794662166230947950789638841334360222065456568976470160968666505541125876729088820924488356591883986414471398749207667697507324763096591261701228134061917064422087219323662085500731089001014545727408986593077613230662251263486323970278372560704437766330869780183241435003264518865814045837709261706533995026983001835024939961751908425074254661990506069165363039148511418322284686665057021206190270556190543083086200710910650918012429508384012654924044996538387298524043049287603352102739800841323529411858856019857824256383451507969814163630621212107867917868146643411402124710868834429975484646292952842626366191538595263173641410802418698460936528414661069384266506483536441476077635776488131772449352830186479603723191208685117170683686212607306373300187991282096312841381460972280893978959904570066659012612982770104243654077963971144062811227070110943806296834721014421220527762192850164169987198076440761392013142345062487805834393528004710055164490365225992343911550009227123815151745769834538059671531566478391607032095909203666116213988088327508772673109153092603742681751602260070436625403883993272290877826921184729024197808110306187001566291377102302865494095198957542748421871014270616234739775957686865728101472150313635733286814894777071014893219219437303871371696878993538988504519338536250982210483134469953138144238708687281377799809011558367466345132860613874849330224941421328590113661250477527996310152055702881673030747517649963928205592880851719912374259922590417445939945591697514430204094756097136471257884921291321551427936643811506488674286465074417137155642194373849290376426789697252086656051855624043593281273682134400350573231479258369160933985476697185748951131761406902454342248895697132216484407224271782011621567582373448783745015811012516081280092126623647987990990514926823143294586748849914872757227826962604834228733534067185901594678701012875537584883202781433027462577447293708321511478705393986681595085087023044712849847336833578139348226642420693415227419989677695878855055645478007080187206049473290398430176659156395914547229926345191438074091290768736456008271255465804338577034351673581842425173883998681639102067913362716926861080570538117096108857710235581166907632163396505853094146331401657143370962744121529009527472023657862024868513183908504961657399125447770790377086867723310844548198223413014556762611260270427816299286226466550385726936015345753433759491558043837501317915734370403611545764294136026039687031654739564317055387016644032539043096846675529165060117401284993343436805554006865134271291367983204113396443300518405665681965193164481196978918869688568745558844140510030309928265902664847261440483854713332208353295041411430461784993431525269044051533404295113260387084177254586845983475220511121825629402263324566787087316033234250409574677399506597069983258096283068485215224305182127834327935844306348826421144972617621419156896689122788677948535332531125682883948465354535522605862059124756598708741552988380959141614183433016121562409988387221604161932446199140600530438436115875258311742582818052023267097366078699538599279616433096497233228069205434124875792399689270388574062649728800077971498644776583966316347359924225870876259831585028753855629825802524531502084840262495204235017505677841556588431576085008239744866459860664414452812823829430331902173399191246529062567559550951891317453879318983327760816929224360090206590374797483458347460058486890354838773481641508654098891209103459877007561273888285467195955059027928388312538180441931995972305245591758853970946022331817166908333489872875387098650157353777596071394512324353079202733559710741445003357901331155913275682880574617470043209534337420050495883886845105327518931859203855897299749996661539422238313633699718581716986181939370460487513332378184920657182299237328912762709844615977716280143405408489524226359376565339812289784761615783503342610433879366477066376948525502354007772835798207293402676817549630079642083990426849792833896078831760342800117614972467771519252885803760815026938827812509125368676405198444811919171364010570444989532672638306425229955924047604396239314780298648888703474379163986377392684434297804418053451319082769356901642652828499744208356036291249290212418243315436258414828431175956208846001437263222083934569818516657778182960685243051040802706904610687803245193465992288970457772722304810484082370562664191919244429930679446147745940720384706086928856821083140893723558664495160217552203939291074493282053182654989436173685450801718928763638709185981083401492314130054174501348921892205910946348225076329173762746297149437930708539156188293909125165901889771421133076661511626280834136881473875669837737447299042396672531768066519488751695212764009606415612555651868687877627666039869337485672994496965760837556973092940776559104321602703653733222612097776250860567870715708188171441490956137858736513868678740166915819256302020064384067258985291185982628460396288180206632270057764763380331840980796338516999492110693222235536082732449308367090325420007759979401737806973502969898308741097270128464830820261885183823518006419213190767064957187852079563930566859674352716851857615367549287750422219705050203677487351459837166154100592115278943634363679654211764992720363064244315478296932367074211786587137506453430990582038949988821265611440739836855054213580472201895567705359003930424249467052591923414883668313482873643094658532022280570033944891415428915301383583464407630844689004011193059503417363975306404038492363974512549129307117662343433753514584576552250504996791837485152097400427353807495187704904356524816618822324162672101500538618919895621904059866423123722288609317792475002737352011466268089282463138942425651172769512980782630157168061405082690866503562547653972244158476227194025830155124775206259579464593304174953348481788559293609433611624850318863375916648999086840240185564391348425238242865223820421644210731893154110620461067517319185872025221014333429556755531181801388235427203249795645795101240100739765990718981365916590727250971074704659189781852382350110912888562465496381953930319655233081184286507186810699959136051743588607902189371866342536058722894339018223740519000158446906158989975759058222613143414802895761182438962163024529580424282820040256384157522875294355415376223445055378002330565766783680424205847846429209646862680431289604497469029453017533144790043204062372668239223507645972197851017564902598768505272005549448376565409880315484653223856622163327747905705527458767253975524627180746997595276807659534209789905023618692816053259455824920693187194791568350136768803976425856992821733034898374081080851559654761907264760226867153291214571853411967502831771896096477868959886827174454954892081160661586128731267665662943523074499607736954783180924641509487507381748269506009502078294834227695896952800422600668839393708408700417699867202278061185292630751821873420366959468798048660580379642155794205157254989026267848329322810578881560914773240008968367192231253917571278041152392911277641548884833641582397469666057293026129136718077428468274334303122349188927358360683713951692901498971301851570357429438757635556745127621613012514158544847813299067548736745551252409674657653261443849920050199077830601663458856041116920967989569242749269749298002515595197668534470854245098377470445972442832882986942802473299612605982909566620006863145349807552713186154666425739807785284365823892380200868192342296214666386944372683788900991085476423496770950958858174834136465812535310537098194624596158964825905617822072811460192105819499461920033517270485441242241907995849175258723853625059253596146339553382829243226519266718225401080514622226546871871198700470946050365909684737097937287330626703859256587975829203046149056844688474544919372862790888492697198847215682238492251501510857789969739642612604714563804147746941521720268613563165475985869006019891966819402239464984005817735761344206770826430742711415335459984762938973536284661322480661928675118331495165625207870181170247001972361695127084645661937672886905939475530011647511413529588942585364009778192967204004023911246342194175564412980486495559916303656252438176990585991048724961546482518608804880154590282378577902312707857469303070867016435348924191822078465425973614191881659444000117610541155226874916812301831323951158944897259136118821225859816099865830322682766136897956746393259266451788321867650509374245188231588134907684824379557681011172721365076334757583307908574748761295610263657127389776550749505743990477272508378116134098221541446362672072932921079026705319565474494860395755828169650884534818644794247381374029176998602987459606143636824206263806077873909133131378228180920146782733256372123234376088256212532560881424702216508901189142478438978511357060217507350825956775885861922154390940807155886674114489773021961358035974764885054861816416630534118646012125768562799025521906850579951955907690197325735137514252349579952847502727322307089310960793609383303268887173257218716380534293415351423528109550586490468537358228812513803776550927515761598282429857767052042424005001163616173691345852917910728763448851475748816662421466089742723630961488836680225600062160129179783722953512294440978279238451822594034763531044366730440041635710568423096656507471989042789782100370593571530004411211913715805445971696141917892160592013172880303257899126561200537583405473154993779534126587399076935986826239276128134637022734988479253836016274834617179164216462189836965426082683197373343208391732472162908377957776477236392385522417830703945998531265206615401085396827335649577362184594335440684044458069080130810479692355515616260212166577328372978861381781238679212565493017832243233199384253386731266698688215704045219320456803472072267268176288356202857872498387115735983379813487802541110281856473152160678109478804879781054898889002644902748753992704352824745404674515890598667271475378682627489976147037601526982012840185643994078027562377318207357319113838623807170597136799433873915242499485716691591363980277033734711335498616553187767533290202160113485021672718149976986329392509791159156649996654863078976930996986027937201285606630073492413104227433184956994081827772379185795456176350514933210467133811900335655432787624176246288315429079132639680001934040333718769702796176556701054498612419521975839776101665027705275935407397475514456979741034975835511155596702297041899890347593821379756455718776337453512442106061742400920111894461140034041635470524692405347790278190975780109909719843474483916345193036319335462254136563978632390818711977648126845399383485967626822862868601856957178655921884427736442834951788831058578838871656557401003888210927760823221702807119207629126515181728690404744566260233431158300243788026169793787779931315755971484461109080793623711248282499895173254157897957699599191656074655435814072453248151233827184799201750035299899086870609252573326774541270631376004063153805092853789031163514194934457137886220757968979519772650783047937111467995639260883842583794155690221276334426813018275118170651149278034250974804920185822935998917248861824684549003243987217859824997828272350421237237711452320224941192981583532041751888237193488733314235988340120864945203396469084616273656678722480749096595014562800961893411471241056511415822502943591584105955802498639207435085618845613832759875661476690777764944088314008198774160048988913224869610204493811718422583392289490582370926653775441581324059220585138644044836878397600649326361938018952495422614411708929696891458700685007414330316589846309399411776807590470364317177945496490928084249510023294751212168509876385737568365366773328320656025896200724545652291323651412619983301590729300272622095694906198776672207334961612259927182980256334341589388782462812619649208289167141136850158604649095801749266709944846069983486772667431818012197322624499248447841354557191243292015089623016630809556336783788969452382415352217369241214370513825783233952154573122808008826138233297072804225498834992724740866016705822264577650929990473465272869266910512012966612904579375291259687407106264048918987600431007327357287000991456002460024695349802784053985200684009518848389603501199063740112815749595533435378490278937035190810793415652506349991623668001745540090577592823182732015701580609023938513486894155016614057300508237732244693688243792665429766608819386668463693887146850897428416724490742722847090303044297505092403383782921546687928187005011903265692017760129217839716324050151827851354776130201674711886277839460777770383812463417849342806886201347051765999484119460358397440638141929140503845112448320890191633949807794615768389160817758516696294038763648101290312810661875837425451125574887891677408266719706429032269462611455914090016856791574555007265584925783699409493456103191613357577586562270847407921209426337797983315593232475956560068743284507780910343685738519445502920974971620303069275403719436664146428995892337239148302810740624191341362401970781100142364783573282803870503994298777481028360106479248090394383664702465710166729467051773346480722431899254371044086041632558434946162119257750121548601235912024724893243112366124015361378174722044035042532462217083082085072740190485891273945285065510979586237239419431871892913234219966148418071900364172022671059811900293904210342582863826617354672879593316430349304974207983262980746561226486045583310384200826659290046468937934734405786872787824692533108605248762459607596930249100079847127803352042249772163690485049039787362181744344191141424288756059896081031654788490090645132897950309823992407295308462693937653835907025766195567612814325959493425841569584333268115884746740557723806641357574628816247473598968863729149336579227244661799734030563473549967247881950016228658885554462931039723653322078165294806699083770610299143401520190328736245062606892886256241382010621241577661826837239587560587101146627284880797636168004230473540592810053946597071828719394500544894499598149541676464700561540260375522409642550727410182449946018071854229270680985648930106375366539579189757793496577378686406501866115780917204596503506935125774502893289067374959860001122126441442317171909384508593527146056263383069608540624107862409240697931111740752454396902303264652879292684780079197391701226014064814134281234482729980913548287990537145951625240962673322477846355971186006849434836750478721926662282420364041796413759226043982490164892020247991726924662996733503213454540445046009318422243396176759629561205260972980908867771341574615834445262931983030169484642970855032953881712567440183713519051033237709555520441875571798790181902211803734267161457129766506978008287862051731073574910619304543873113630821370562856011664521077099698818562640447370356256019463331178901053759381610369512557441428515383256470912638752855982524074128884878653184533995847328859881487592033519404985057438552243976115828820284573234580252929097232353490684222382832718294476389121792024171114321402130461113660861034809981440472626228772161094419398249359303911794246961114109342687646514156935642564497868957074664582215913489190081337197138396935813204216122830706270096513317576536280671740413239165054426232047440537388104627329438886419710449687047074837603542449846464916561685984542819418915720386315868233784486236293622858125869284771960742928675246987997233418390862803596103326173851541823984794426558606060811518927036585013734429513075578041880178938785112248487764319359195706148328302315221602448668649266066289004325790356065203432409106909493816323706426921781867303052707358847394890623641865147724716919461214242410639574609681189577707026626734130011777898845172168141634459469179611710460039327044207465551435854770618703984840742737635148383020166122211733593091471124468708262521903271408128930143165233865971657198343636170443358357843544314979595079470198012951661435742069148713774144728724196462317444582799488980599053301889411075143863058487227081580823038773210282957608367867452365509942528121737265870537087438138041232847956656695983480032646533436924468423628083142964206966966563350413867985443863913720409459285378056589044775644813305710205151926859832116238798740145930192899976088621739433299171332804595965996873561945404937331726259210665410548090202914714535454681889956030290469352335170372018386088883707227938019677129183278294664267553251133415332619280309688607388652145305868124529282067264496640267583775383857676664696255903244546548741832311526174166933777642883101244730939768378426168429383254102363403093796239158349157067193413002053308208629472752899583917531791895162232715935478618035159621162871393512623605888667598072246218191959879924856151277504251973191695575680578910688183656606755139637835625459602386295895624476389993336024172152135728491423747024694928699950395317945447883032642669257664265536449408820315095853960101490192648102864032537400902079189002969748740038848462869348968241646020623768551912002436761428013009662582251923890409442228395160060786926069056082442468771420311633031195514676256858721456148212384626796425498509799966397070754314444316211594791821786694874105762390762430204839856534136500592480202891067151472956468371730818967856252691002052718425860028073627359306083843378941821109054519635920099531962247594748285130428232689665732053970223790474099207615793139429325266713478786306629320167761580358855521209741491759951817290525257040040360345620533509025221152201739892649065074083157818636563063075135567136732646547254023157079361493862356078285261179698227158638858952227090187650007019515946399917178205615394220057449439972346307969108632834473615549389252760869125088107174735143702992848615359310172541786075107293964289474593489634618751554451691305794067713784920599209447667545443201335239351513692649513736669912356704108906628030592078912394488952797054706774700885717499287331776426516106101604282052618379124306305623966554983721132516860690941155572466330916726448911698621971062089036922064941299913487336797953339153991374650647338725323633814642387434996632037175832335559271130721970166976697888043543625244777785449593783804006393328402491808655452439307102779825173994095005483035324105226995287497566333062777572223122405099555729277300156513730992905292125576577843281768611405508384813905177689850131750908530898431224954388291875510244948731812792993579336599039700439905422246231932027902751161867432780886398560578662716099678311408911084106045546915388093108671576433185135115469973896175743196934410356163623247347420214650297749866930458209812687551752656825314095869883005480938008654958848263919277715671895576693131460464554659489379860118419677789435926035187494878522233628129678135738536946853031631694492674242101661168498606985055886636737791591652364880727851124897536142974507910669263492133197772854126966863513549963514263811313186118128844763400203390522170176607415397242224580072995379019298280845276299079399803379049217101059256376299490938365525970791599143898259554740195335851671099845530813019676080848468655049208742761320525792204216108116198763434414242535262514906755106789644513152074048174420117129481159414147093025827990605592241873430291401014453545055377491503283910272521981664197254340869297659048640659553236956632739970857732409145801327425649187645928723308279264292770960635764034187870703643605853057892227245087518892138776912258487357219168995823553112167704941622356597884155157705271721201348681349509231745115349422586212621925050005246606337049352977494357010522756278682281028586148437666983807740430109371765039478393975639965783052786778416581242667174758039151372321542802502198026922430978811833484742978284116701127847382902250126504351585178405075623522218696642981737241071148555681858189374187084819681627290821161596724076978331046600388288506698948987611963812501527774677296348415411182654674771364571786055467771660774222841386191634384589163413251622626301372493585710336240514282913217464305329320925212535715974905631207788020042006587841948454223077720666015301789184197592071828823427167522150809326030134078398621384942170116007153700944515514430932234353424613191439613214222304415507143934977320613573288993959317015148187636434338738235396875807064825584118511631454077789211828587871514108023804494114379495757274833901028056971801070920812080781827191448268073905727918547643770164215160610363194510378876914099141110608330962376888566865213783577809465048372228223904215786815268240763561156760510915037693885777897972443101577936704727472491541625903576188289088431478154564510061515599250753605572510897921296738052543410292886327372955457482465207926959559186994574993969459260610778930552924530566378553765206831759069249305668280332553883223345760572265558725265447791357736080417573559681356660368106235268160798410510086464786607063523859464260932964700000583947276871825107917112552419456977171456428105374661607477962728385503971155140492254336403376765573532959493215609727990880012949643859979980583070665703994984175962828138165626497926110816960547706433991720003022867194766743931764786088723253797208728385537782389415182202554307266937739353803093715827376074226357610745700800924377877006188611154529298926681794280125893068334600513032221273682727066713844120605014766835561819721804093965909009072774864053006060500005844946054634900483530989639596978946874478475307160277227077652143360041024198771480388216416493701004541438913371395053793723815584007063166796486015657430606219269894721316947325985104792379926517395129834466648748365818476862592259856102242889796339448134199728606966791671156853151083294828237367677475142924893926311197809673925746752682099258343295884736205840436448266589787401216747485238699511369621338012748453755695731971200377095185575165964201082855787171328892658341042932933616371814578143848581190464674356361135095011303077624384390502808194021495170103244399031900884979713715641863590098590507259004937615979688772414284348889345838934043380816383228194901393202804451134482750189437282577704413315926839341909866362199525483606339300984600151623080351792686013086250708754433005005259538877963064788695089041653575484656412817899310519377034175934595665123968779500797134393133225220768663626948942546644300154292232451259183941437309926117333067913669241596941823435637891594277067134928684961800929468499288050993881631487182390210576799951994291934487482160009923043923036121397137753911337716792447855653871405849726354628966245778541054417475246789511818877513715701768377020081318958887585623562190651012744992743746954802942971982669496311346033836451115216941074492596940078075479573447533800418973693356310546072250352676928057728700029881547099562138178404829239462024347994295492712459291031963922061689283783542163992732439177908345700957229824557018180801808307881686597185884211018015723212321917928943626743460836569341157585815459355059403544215454104779014964238032645661414895251241872276755299380897842744576786265460188769421340821159829142625715878107477122704074329734415046020950580640386870981281251550316766292806801837045881968297999564476841717177045255516548644016199812936769656417435759751612825339099911723685634946028215432684701570233718575716251015525951592999591481868242272843266596152846120515710035510645078164999967383272338986487734150923892119504842807202828910952691519757756531055856667266667325782883464874565808392040785661362103786290205060485672403944985978584709864994398314177374772740173997102838811967768938295418233713072313184088662295293082451216486699245175471645665091748944283170607658298543027620413667160902189632101656918036905706487700097328888808094368590858386425415806407676454511064272266694626968068374983430686192430498373143897961255510750783786449670474431345720888085098606905597939389737994686246003199955582227079745710951873446791443534491758053673168415096249124729486509944739509008127999049293257204050206504743854573191146966853669490213704699931679718003065169590185089369911605328215362716565542222973473825432215508577328512918021448380023587688741297665611409086502379203949404313670770172654177772611285060945837160998802839714901960039013466102259674797024161597371977314920202698730295902799255706169588434652716828107101850287465608414848834021581593902537462918083340751126158252671507523569938157451344018566995588795046865060320773928039534890403944191709067741957092636203005354642961796158740912847930248040233690998971406850380388879447019071857023247248716633981054530775036618744331311169793724229895127324091667265704899875304022746895422221783170595993659010175066161233173603429258619841708999637247394166858935493027342657847769504588187406410119354767334623945673270221194812387619985797907406841404648163594814958458073228656711158848389430752882188694769487229310367705348049933947002987251504016255276050804476251419586184916449667779215011682008090141124132361234567985278701390143613355339746286991197546068401057170264538564123852900991633708027132279551342268609892739545682707869875210311590948445168781423069877564433989406612411798170064595631083367519352274594338002949339986913229808302935510498249122212569031218179205338993176372381631306707852014998010494355933803779045233666482975601664382334654043072043035012852001630850578979046559618647490588720694432086983450168891892644912940208511854056178612991094337394274822279408855524358043120690031641194286655865399339754307142183998782079916540254978758282879051937846972241536172141030032443636328599941509301785506616504310759993957190179102700059954379461211253470426313835100102012621983089519592718252315852521025273187716107783115512403619943074009449028724034471463850006026336515543734985344185625594597865660841460831444836580230575745404073571599019025967610362615586023602742638141783685706673202504091579809162980155324982295715933437052318480611988085362016957932077086487093357903512543945690130219170592799524750708213970378574617542615978818376420872364926727112713263897409163990432440668967394572252861975660254885219298820357261206835472971472747118484275391091973421348594918974756216857004587324421728131375594458642153210198907207358341113369739819788075057029863952837673037168213996197370459679132017851639378633972253852106659198060305071194988679283729015349098246629719382768400840925014976834936854379181247500550016373031136799999186414458085403177099142821813274042519043668989727198398295013026712242154288878174902320934370831104348723744847915074537177005169011892323273322881181732200315160592701331167186168485293216093701227270522393503123769691554309722145531260677414018094870625494656990110639262492289433364117189114663229243097154502881942268553180898377456057625394772449377041566032336944832560878474048447804791145187834991870584826674225239051723622159345780122247636794141372320183882510554572786242387653821482738866518282891602472643012191161619785090159529695674247757025134439779170939112629947977658755171517764185330330929749943837643515366866489327321451401750920645821755425850340701488791895891302315538065165580084955621261547173630683032572972404486541840111227431148009977562787288927458546493363597567045514219804127496577274472190216524883256849889504098914098862753470613165705302786514413938865960395454894842431745257244905227283687438754805205967278972145975961673023369934972420184596375824668713505014677113680292082624229623946621302551389543407671326886941420919838057723659246546112165570704180355444669610002886515881845714156956187413120035216306252632927194154009688980231342981884277564519779603085020834218814027769451964419900306110818299884842343658430865309665712997966556861049166865265306124705680776704552977133314183758354078083465736946731745254226144084739766840709553710038983407502025597699888941569068322785853820523960504782703200003394929310615080956785140714264133487932029322861122732791311485905573108719928591580555028782519835553445321815427061839661964467839318194801212139966181395292722488635493289128490298033000995174897843970609386853964497206508421850150929551361986163124546328108725846664694368016162607747208741210547874067228502216816004853785054139041870021793536686257611490728704118461342071272354377550529279727330434841401835920559798296717629404607670135416283129287874602558845207402586153780598624582866256486838235579562258334900630818318174048024687701090144512469462021561294278655449955089161906222232700248315036632121006071802493517549511105913900084094757103651921645451728704670021309627845866537935508425610604677048401624644905017750550419849203383337066855907260787901322571241474347833308391625188995679136085620356183044062723421987523286797757396367408870451651393058818582726353546636051150485712664688654990291307402409394155004196989833217735198300887428098557856849274372757000964252026394412433472987281019264888974164391801807611915561847574068543059719494549513721563655405979851350799086658504748973128004800281220512983910828624621734817169986344643092014379244104994822318608503510429307290587598621774685635920871453040010197043504471019170119028258496180749117404165431027088706044250742871618621467206004545140503908304084115133564906538660049780579629400755158334807590425007647176618038705483500564090550855970722672726913862502287041281886636989262332629866506530381919783193272954905300913758577577497974521042383116196235461811132455345369951182864827337002892052713631405407206576024693273171441639401000644272297540033796437294675553250523378106326903928329398758687934862729017525570322252281633193466655850849345153166213849248301668271124880962981180971638599657925033648572890760781073493632162316608020431117159005489952920343254290709764203816041098633464612288235944029764700257693676144727986990646262267288002822461091443354625032146938254899979688606026298981670497231919251882615429560695715626148482493538151843710779531038695944731568157976276956228075823488934371202237981373453759902637455110466323240572114988158233270374043476286598531402711308604367877032010729859715533491800719447380492951063175585984779333333378788125805186624127960204983892274815179030292482000430292347988820165645919748453946283438683489109906399153780775502132235716590392157131499229276458854234323306482657686306887496796125553273362674618422952405852869128801072741331253463619001773233688766273089719216333397365835190384731307099351342801138247402382703374390191687648420577732808928656715745540919285452763538162807454434085569635870621895378745159624206120160830704022269911434764966658893558089962067602125372083634830274124732744787904704245076810071522100511434944350804846075533159928785696825513750848218211063005911842552224790523516148026372731126390001596241120251254761803187875964691212178168485688693803924489225555514302460553240520667415888830493847641601527964411175774012657479631528918804683188875799970352041097463015319395074221348936426316428922233819692401622866084351162530383350038558241363697743430771294995872127053223261287959625750019532937356027695925936749062773923112310657780073533384363603485073610448034133898258836956750905708939067584884752471912701230162248021024203134882232967732553887131092078718186953741446728426111307883216260966313931651441752141359880550912300357093704447541511974953913153407829430570276001811615126484971200253547961287085129081151052988825021971165206337753557606644392437023103746988009286719652806418095074951737334171123062761557283406589931710926586527675262390733224029541048102523773192350950650597843091189674779322434967582481310940402016095934976959484168324622382793449823316983142883191988992345460300518013462440345844428642612673839500133036369406785081656495962086019921047387962254693055405872493239385130846164626860755810915825246283784085447681892082204722587522745719017533058010187001786019175402447271559677393178411485114915788259058291438740218639748069908181580013372338121067806423173551528426886220102999851815662866581920751011077726531410580963551758110532211742942592641091202624707926597004282312019350826056851464160811124547793561778279931206611560001985219777129077349843567723209112184792773740226022685831283377523940300503516800566157344698376566543818908651062360945815419543215969852445939354691541205751967489482544887780981967930928582725513749750491824128603977539131022274111260484154730728241913948923509632761595107121996677748496887379239088412801507730609691303662401269747413273018781662095787747376037220676207477073624014919044673712964432619246446395106511586915130715294582642600343469455722846562185885461326156664602589131938988783734970249784123979723238750859659303457876527078810662264285845028061619430828266529831675222094236816257867432477673802739693690455965411501386286634597917204910753195051600438534467838618090838180462421244219566013574139517763070369634104935180515771252302981960578438859785559676691805387674484428600087846430207065458297010380426699775887667359168881187650107978673190102085965130133979533751324844291832532910949073401750291962728429199260501831731821667737544827305998213632366985880163711123113313002050923659702102621286020922749108279595097284924796382395515751317099590861193817085724677781749839324776819386276889949772604807999018995105998763024955850911732373177400859385896725478137419085874028221644464659768436549309434666738218621023751960687830862967442240137501343347983274907634717260884248290222476404133615099740671898235786786773540974741240983986851610042315836001355861438808481653325801913628525463468495371443439630846309417570814610295786752992890494730502001908829235859367496058561015184159391085653465946945652307029537959430800605790368839675218518635989030243215678489408456824548953601406057519087995644815242113106041565090253678348287643535564573217992549100338798578740037930708648633997310503043399121365980685192335374499309667790619676583922373232195819946042050854603936537662830282512732996063634302746786995194167519586973724139065886329143750530883641887484046443188334489507423188330298906538092073301713857141270405558818414812532187230215069901311244177980671766257750568671720223639092117752981568824889324987755389399587940070040139993689229946459185413558207534924744924438621927477772516652709291439519942245051042318400759480475507613685118093073769999362429878106114853608764111019859142578687489465706158078579416979369115188137670163943220933025932311414943828591056735537362068996484391544773273848246686082924876836123907127510887664124898059275805522263000500383850969802822301186440829330235389304391220118398208472973493301956021883984335017814594063451321544520323745265724093275345549429653899824902069689623625182754441746997890821713850919679799581485538167100134950672903520489172367354125256153913622718297907905116509757961449149473331219222124031425976199383935973425447670323510245691102748115342959422445327199808865120508906993993069879077006459593338301376591272298380546069054974156724724359048156043245211080196596524709776151526790587345269552126147041822673433065182519922299875399808792613313007210776028280791922082489358424032947390673816537846450538459950307313396825782451751862511767287009197671013138628312730068343617945606483981430738128830665526342442001599238301651076710941515318368561937362571499419490479823729410132682997760000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
59000! 47727770538580263478079042151886315761656988686075242060989853602141256896718615073895968935914951288652561437657127429558981325249348638551918856726530884173075128156500240776548209419131713979439051756244266729349218386571918828424917805287413971328741982793313771953746146831886261564955023101075577492749677669417426616865152206513887545878367479083722280886744031893084104160249475359863035842453028250422101963445960486476033314879770094143344744029663819551877796089023841061125058500742252213718006738293223391337788632081388808885707579023293685760983102797680400576140444244211237509471874642267734564191107500490554111197993212790682891940054225828315082718048073870154540996003878743593487953617981032150679861892306453605460401016972680627317352151505438049165174513443515129954542474963834230707568303346532424881439415425279452978584649605145102506614324227762387320500268774772692834134968944626530935756024447787514272179628409000291024492187519296088770024360596896277419020526913702012440515073570826331402504608175115941518712797897666885888525820109568018994496073993127374964309223805538963142913421747335293001137129285388484670642110287886008225157147524735283040078259817547922723839478243135983313282625362231808683941075758636683976379280154246740667056328272482692161245629514237649050382539736918011843197784621951735972833635078069489419731561156887870788805589618939454748716330272259722191621169534473125373371523388355375348488833476507966654431204770139498559639190235939624000798486420588400117747374654053050709298792920770991427992023500565901643069279987141513326036055402629844819878115012206732727188352558452457292978562780884632726268132668087941843718152689430095479117559908872327109483899469022640565358361156604297443544348387320609725716853061072390021953969431051050303198372317377932358217409652487041899591299260545396689899130451324053557793790985635537752191996219164428362011391585913073129481266129875126758814568049316956622822185756215748495007915150061733999856092215288666679113342032689802856172690621457287943896013196440457105927357230935303304366030556276528542574530922104515863119859182885076872960235649226894823592364876042020719796406160547833456514535193765576181321178064366931117563408927337395197673836913907902502756153868134981067365604715954041954602664610079293803264214847069456884977871211455648235626110522615918188978159770325563549750241554052699194632797857917035870601114308796220268196747822512704725662420182551634834652546488599960103945257177185187038784555241213651752505079748403338363534141672818222783497148870208903765545569668790472767167208812834399959521347407624018009735119117842011747649858681456779048114197888121781251538736265200563970310301648163602880051770654276082759513956419644503058677032974797899227726428879817859438498033385159729038535652196759415742631492144318988786040012012483804051827541905490252636941894603780920652452723170681830496493192612508030058157706623188105081617870795685253504741077866985973503580674886199871668121427173534451350261839133988810510429468052124112933828935640629681993927525047184996193727019564806942288286327401367416797640512119654765838527500267855476165437671675953502106221583017256586939249347664876898173871547191119918790227062363230970520473674189199902275745036721041421747433486917398301260218595688410280738478785482227083997100557035656768618969132603656871787489040807365229406951028859446553066406201173500785704333552256866867797685256705505716927877883465673942433424037203383982289177906855776228420655892417198390239212184473759668669013185417492938691112467079613485773595133681675193650306067580189797001054106921898721581111535749105577724700400982728516677238982530972989476107180126656496890026386764508592891640144573815059058112889605888011891763115578906156965691419506375349812155886714941497389327852717448405929265006956118481271468207748807199690478887914459905846457342080495098904180615218991002235978324094067405629602526972119994413689958765279758123727338458823565021228042120976351696075720642422119030032191908681551593179051501251098034878835156919542879293661233243438763755181712571560153528015116803615518821132525153088012198442243433449979299777574133724505044572095594576775337262258739109431355945285757452166219300939102003565096870172319521324297758072401117476844456837179684229498102919158033785777710134493794670413688628944511929261164390258785763483349266171839663573000354672524235148250942933729435073757380132489195584176521201186411493299273817839955198946097147726963314957204942183808234770927966405277289128674674634246888843960687098413524833497957477342519446172080621517344176641334084770130940239193024420214348080713846346370979282009376845521194833190674566403583726956327414651746405407022141723349710504582812533815625991757121599854403710066772722905768462594736964455786362014166382082141793583429464921492047118383791414337829586336392231259882048680762361788967232402420138766947522612038879036300710846778894404891578788667339151642011869578462590778286412567281803582698531258580413790336732685353226962966569410207625751659847785353040618361923168652156408748855517599313235361580279889704332477646085590224666985541486854841910596171027656076095035756697457718157966331203936916599286052229792608850032108524449281696993308342668487835982170935444228227924759049831326118751061493594724926529316300161700488891150615991818304852030308403735428447736394152220590181316566911235526909463549733724756016748688086311118196311255301690630769812225692269457615632777528160620763097554155196999036933969445971409701028170282787188059643222689466736694436986261734120507756531864001842408084640141721867346020252298072051608865833869362912080200369031517162322436251199370332480368688570772116910059551990865811391193493562185640837813891667250282435811663134272008773767492545756784700402353145254665804518473776310397335704397714685260225507481185563119231895796040695689564427951023088613920772911392621602358015806798755390458485364830577370571914802586638751823901461260106873314879295773257007457344248405776692633636291572398373085734811572608530402677515231191740623756820589964563708936181472793744326443854625721235449350468275086909710817788464945556228390636426495831570457339890788024808715508472957717428811546027580440139258776233103674924737070805652135236963635488586050366381138883828914405985776027883698206380608528127907562924007997636600004914351285926257824959168804483328301523270131214502142895723072524433536396880786687500353554093991602916038896471530970986199652772008922925750734547090172650013570388638815480414590635209860774366676275938339141147994088846935682202251534209031683985424888596049482234035389021849065189130922346506116127202000991419698237797246551495716574415535288722967320820126633113821342355145907321235581084642886480891169192875399653093595036734571568866455861919728825067822436547197260631194411664017029408991064353792812524716350966348443062876541727258069107468254502079124181816572277595792293983208665657043682195093358630497609441518527351452362736779563463745453541620007752674956482215091756737512610150916630716301801122253198151160082946269478311365488805560984803853941924862907311281975195298596170552869469699387266499434437754580841418034909043119663882962138724533405356541646528644458797236143777629736999552114663038755471820999837752296174264234774560669937736003798833444224035307322440954346254035902454154886833962418339021919765174845038500027887707743297409860399653478510017788300718923288118154502661046480507975470536324637510775768656038437561815813014800601560047629139357577935930287415874609810128703590632232056512011237511386642343727891142280867697655099414280125506371166848596526043441173346208982045136993766461627786775137113740860759879020547522808851468361056244841495886500808126763627554783542573446587227396369559720849652862830687317713288607234016129787350582481885809518170138980756601123470281724499578121743723746840071747024936721278653984343763236316803592349816860595509931643924054883375470615817821125598006037813957726641520285904684034457563295690293362351698649292602478972929594446093424647568986836570915491072692238705039421540188031649039123506451680282352004233980609761080776646872873988552370437099806216984506417571708771587404256195871833505464358098514006180792702414356774727113379080245499875058286010588125460354421947851429871904370531584748011911578071107027616433838198083100046967739537658268868812463713752919152058870469502502977227517615353611809599914810008149715945306728691026041039751304530110227963671048301862328745438915141860843437740689292472665283596334297090090354847625263759036062508858398205081682149455108084871519748436734249101202360203905541070401214754335396397011154612146406435976533425761480558986555249351566696062413643088095414117336861844384578470183428991858035597433979304712370645765989370095949630444899790322036597383956406878521957321357771123655803962548081566594968716248472214738400389315406444115295725084511492190658004618117440476836477820716596347135590752973303861219783677626015562171247637278267954436003415319598163058343855239260564191477820473750726175825261228761062418524930717282947223680581091771075712608521023409411117919449573092054505376128549133614620824193671250002357104899177336483516146635370537616633919331793242706534278583522393726943027437851255151086946064626273459319717821929813625760153290281282406089959765246696806474364856931921393270489728947761015608128644169892592189197812250906514652763374941300769630266074636398880176174436959392267289005389910508940961836539336245056639656551851782458637689087774342114570702405954114223620284997617283879748044166946518543276638375962408449483994539586281852578852616461877348322442885417652259810830563914560585141061752257345074394841728570489100786831120001159856059359728277008582392394932513842057895025980570285485842672021488468643101254533160496609914268457467146746838538954672925477845826326269217315028916398942112344272328289753819551389825714997000996242590059385947761363467857790329359012174234373284796584533274969926432305744046841895556124988404626485162781742361578490596120261783577035517847750162720684745896487240978923743922835245022508602408552603851624011482900040604487175706305786937110362169889189203133331079650614079550209053507897698494242499351995811807903448286773524455538129459986618064221939368436728566261348869445603995301666473107532967433115381327339887615552614421097054140385306219953405493177180280215529677785127557449659041644890106149297740727885673036729168585748098631936892933178660455811258408235488899738732614776146835760688234092671402614297562722492441991733868575922255013846290977009726319508177413305823706451874171771591084485298717966152218560280047559945861781997363519087369982121471717418082310079076083310125155287270017424424523058193828007487214601755592376410697244031303773166057743474096534747997755173433309831612894388279903236462582981600626885016418798311791050787111190638341038685184464303573569277317318687219588134960549310456888384719079298336705956629459419259080652775163057944475730884902885174773720994609943790461838217540651587069830217810746155252796797168585337972870234056278135114881523235718153783502436448207531618893142101489512340567987164862663755142646489699913782391260710400208300494310750828261481707792066367897089052670353473989054353288812862245916881174100608355224851507969771046600157037826591496095851649154476269022588148853647525221910375177313019942356481714960734568113289664930951173718150336963859687044615105824543233780722816959393726365621051196218124694359156199494698365780136137213850172938452487735767397000729225229927473099154069023806144400050261991501623711817614967859016260209758876151830742929402562761246240197258786014038795419962089669090865448540376969153075584399735437317751622698897203969127931643507245570128257298545790440562895076259704201852860327699886551552003969246143966098865283010350267018003813479548990781475959746179442533921813448366762254187195663917436308355265608632682205293935335158501815011428634777839339198225140898750833694344908352870707443746794894539884817054915016275465560566721775532917605989862966277644213329532298890156855653523368433852638881036693867084990195996211457420331177867551816621016156276859633535522817386152205259450588910471186709790685680467760463426194687950279178263562071079973467239262379065626292373008372602788426583530189692758911569141229614205132216165635589325174206671533131238542811844463819414788209460858561471276535719991323254381541321871281368967049570657351032841542031913299529489858946313656947231988584808256320394187039376509398744525187940901404738551838498704275782782310247400698446187050469572360471206137031554806668792733942677801327340662412261184389313927302408978663481631964240813947032041711202207336363876892517242787804881183238087250783141509312591235141069943832796921970109658931639535168845280317190925218183149327931876754309610988159913598167411483573564635583496842007589413382519826042988667753812643981668982781012901943176196436691580506433728409358033664280265700542232520147536585858578557404182668501785660708926506069347683760011455750486415535850128177715853832859365497311670499785407974123231355028332760875507554156071078885696676394578639158111881486716981453056558535347152377195488146860061458306041381083358422367625305625889645866891002321730495612794401425873963397235914692699656839720427664057072973586150703904236601972571132376954999526506714407310147617939740373454148507434321046131207816110784218759560469455402204465910268933123292764818843998011411312926750269948057934835873665575429092417349100123537888558624976959571162606761730833460107780167456742987866015583658388976988794939035762501210208920852381427681522974663145204868433864034525363705737684792728227545859260417646518890372157551838036607763301558023502977046573940817466893039542549793114693429325917226197190844520595216119676198729655196238633520501927646824139977828304995907886448400990625714408861297737374079270996203218483388100437054619537946560629080714521031194525200415789591434148630217473575827499011626128983133197353355049645037407978576623297014121744193361839765580150064918409725824764471428966891743590028551840634966070465748386922454709234449208631662366733393460857255917013511873064408839407181527047166142418660339488007704289213875257438139874085807543997634020723560176489537404607510996004895609802846924819565503688118992012654303604980301789228112103762392937676250578599177874213857531828941230018980311598973122751542850723555687317923241132286170832313769512575040525221737252799395527850497015422477951308533151091945197634211605108159012328983732490805224000974650984734513360001598561947842408392915997744965423918706383393035732734525904848173745796435665387572842145678844646586587126313638979760320811012151015424246726369927680706919930368336008505971374156909718358526044019347056425329741333256455985601922548911070421663496582820338109039915474175422610356955051646887167124617011207003822759906567537437146911164752615673066508093361879949481196779201163800752816940327249048079892792802221717375557972952078457314025397826371093482241848630930305031305705532927097583446517162079543914880111934968607185662276280782580449323467387401220622168491942533661147649478070897621543064897507374195926616716439252149308324391111576764742394951406983546226281234259415956162629640596964271420157344429843751001185335727418685760794435337795791945986971876851419819396798905185955188202096672277834903937008441394283684270914038028812595173264483003499739257779265949708620269942201586667682127440967773823261865703003038059702233491708808283926698151632600158387440534702337846992285491398928399853706020502765110795321644542637332025548661423024295490930618951044312023605765306003480360536823512853219629133518077442683100440472512556545092053144649144320989620903238390111431989670376571481097501617801126446854203509902597560459523004153632878505074831254449582973293629943407583998514274623703695877480601280661618285644628771772817300746278541051336889184779139396331436605375275882412305065876428905935849080163536501687918025296405148345697287347765170633725582010203363471685990114599741402132342852005099593614573871212317930549587731361343852472503702965041955897331528064757260045783753801079043234468549026836929920237562859754607344628408835064387641906722610167850172196866175220690372236130030083208089620466678673719557603065202213913728253909488980503009276103408297239916936065024004133427207440782359943906192225011822249518730648392513914886748865206080478282774237363162447009741139788320195835350105180121353942816328435734497051353230361520516313595321670526933363892163125315162896560589240843494237319556272650996583705443734738788270596971488152973878868434336115487085467287371520604229823469521750590783564237539488642430869308117943262312857666546581202418914128185883055515626557856238241955236447033182391088348649763311326620249032902139859506283712080660821151826139695090233595321778221773986745943966491872099691410472448151659458159255617115218020050580353039352924206605577032798730143499144887165845916652176104670758237026057565661280276938743023919471558353693210725879388075163513811081550170163232633008998513628295647478099113075864876617470980549590464485472754885012105718979162348414071699034750292307194131981703287605542011058185479560941923426726818156758590236708769147020361420152735326035196119677895336750548952119546342381349854799653114560834946026697622166902881307789545412473620146485599446518733404894598943445766123905796256796152469733439076064703483074518594051327712576771562538999449677220096131156245497566588447822159893036536614925109508565066378870912456745588469443164598289615835546065941015272840385446325123539543767349913145755883555215504458814390738012000202757755960966845525805350741837071573570949612495173234800779112719405245370888633033662855065845345160530835615443983528657148158873014286788509846072083933202295092928237657234372888256568243627164368824146403769420015301697768498960270316360948003556682010536051191241800718260141882543180260615404828642547021697710618190427698949571802831247425244099496174053924493293513773682203206436778724988222222709362089191972533870072262525774911788960198759510062501087206850687824895533324778021077729108032005455599662534038371511529149203304864446738962371198182268014154715401102696436480665111917044103555497714436106476627845552268651618176974182762899911559200406291834165256635475264737222543943750840064475059201206780803707966339602597186944390827156891063784833480432942766862715001011781233105188411294551421108293273208404271961456037228527952327418501003319438861278916025014832214259779600002772666443147111515514228347497856915457286283216272463468057991703814815407245326714350155559622463674395486438157266390230623942398858335474162953171270295745193004951248408262516257175703206993990483997479098206991081195235507074973032591456143179029726372628171950291137719081533243892149725963970068138286414692588030375027420229931039542198551432265697051466719180583380409424400937061781382227484225912877265196774449597759901394143858074309673201731967882023194810562542763295901578996939138273903861655855107790284629367344375170340383217757401658215072896388545097237191972855279554794199941097914901653263208361150248155790417910520902868741921289966388193169893093556376737076285555651947446526536248050267070021796044046086975494808071118990209225679840044944916957498239888375456629981382250312926129619645681817825817764291372369202134525135078868801072097506139864472343405781052725114994820847042800188579695273857706408541444334794143053081293938386748076922801215093412410569767539774199885169410474217721357115147312282361749263798359997463246019577444249189932073362858721790886962186672177230728443924469522247096999853216307931403421524651114352206231614608555006861715281278617655782727409685702920605219820817799751266538409729882656696270355389682400905536710714301061331088134982592409782239092754600885861444282138466693697015689229825288285302935960947444058183475479672225610602635138712303017518286442811243687156354851719260198434385415804858636678901290835072299871956092843271402632522267360642124766608266818981373666970669969214449512333469024512439802226710375890760333505931557376882766863809468900107462370110498185778116762429436915376992719172041100697526042727462511553278459959684202328993518457022348543600731313715421071480945851753545631036241448349264159939982856452697894321388080590154564487492696665183458899497199903209067603100493535691667398705580405872523141311217791370791377248261479404379407088647357031065965042790650970398563629045836951557465792832225118718626175665274097523445694653126103016187770744408673271125426478067705647095315883548395759108457863580795706441229059789961196113834516503880448481490476838536547709754625062828902896949312806555714758073547054727786221834995153417559569111851860534510009575152645041578783809996734422649227329149187053573417779181111394094204059227628141798609176828492452723172115569882575864959568969195099077338982029284642265439101714069253904908956358982899200751370922523833923079278497756261485679888001477756127033528645915936564908693666260695576667677156752025112275989938436762406814599102637628773734391599252825776212964009089876961080642314587175641834650196594372079841477334151684538716025703329596627053314871313807153257706067467203203547817621154211046156927092800203598614988700084555563098286566938511558738000660797989606575222673667386162085043994133634447670237930227455714827549425226296810046398027363524749194974389733471308567095238870331780520030076995021415022568831411835400585378980503202658015856203431919815413739411449810280292329480824399397526374451907494454292427376960433533543749217852884960390377441766815296596062030182983400141257247184248927308018367438270468118861354491049267877479108104549961012273373300823271829282785405107237403247371351514531719712706881172730368285227040501229811066340544260034994869056308074381544229520519100831299871059570711119896801449747328209053672829732112661522802495019664977789221493601430472092035136889618952395333873438502204462359707942375617410899768815235762252096738510681776537501973973008739215787994962321051303965108593311622470280054138835994325657846157154760591419407459816284170424184864183287866330347178078395006421601927101625157537064549729088064592522051837165679356671714099616416018380345271344654536793059836489555728122590055950374452367219157318727868648346214149090525075221868855287079322681851260499532692549245679608922891686326746362885679038789068617035215946109846403884744728623938189071082528652952097948491778884102768484418957232635021313133664717774913427352148607049412618285624057163282952360345185017364936234048268996620629126549801573325501788095601901112582558317855522041049525323732239439043676933349352071002764858107254507511190222289587975764099377207216750893091451949111607232834674905077138507629844469319464046143557611679235342271989521902452381840797668238592921747363456561425959566168045780502308966267306282128484221713400650377513809522423533038900751475592668591365726483153967061731537888016900518813601482667164814234188430254867418005127750010895054454247870355039934558531604813893591580101198817700037335314527199916851760839902363211309260565484445171003686215749645145859602281797859778609390027714889124747036369533800198367032864917728312163981751470369171958584925654905711694267033358797246954477271742319095656491530991113403903199533233711786517624757946809682961385468790625096094871767407657796859416951755276473375218638704425729679200316569258648802338242312560502347571299214109034225523136228403515542386032299237458640575743947732116828129066530607356195094071158804690223046187329627325840952331828572818174717379945463331796659270146932850921617608668411537782033076929681593658111781678039324245983399861117540363531662692388445363899002641281808243426218825357616780356689015188953095391521101988627802077905581132568623409141316367166795207351728137218367131271618745467814584028659617186583212867768437859192132124610581531279254287071751052641360111410626284294112783640991088871168581287698083430061535976906670488377019735364995744649614417029610698897925820886959653703015103885084308541775687710290589007509827044083938111128079974529101486842931877345715656397175058884183181637400627728416385472554652300256855202011463380017516496515134259578595423454874743573077156163018900428773819804981446894929912232150639415843914936134672638668344144065098061879262625703770691353578368344904952431272486234208081071715359980631713073582316624445098083211002991930119041423293125730086247368203701771222767139925105125961871040586737912141756146833553687436611899507701812374344826125601815632505965058222849343473628878343417088158067775635668437922875009250401528377701677708773661104322181051216068303494628756210262412464849129076582251477201377206429415988840139577600309642744465253468895552214565809224180965659036503584483134997291368507182082723389503563932888213731437378273690726668288483718817341743700935718786768088075793612499222662714091170868173302351623745055385226591839335772900797085838776664587772082658664797792837454374534499097639908925740463694920116717390868360281915149263906402728254584674697652174935176267077320167386579491037320308292220025553758798979126280798687975905951725279111680803562313515562784038764403143994694322857231812558550644880563797930936172565480535206501618839255804476165510944564311846947859749374978210596182061901506828259124747322385619378726691083624877424918097275296898916747210959136604267566240117112680736832551631052150581466045920695280696553257059377603194609912343550321543424847846331483681633801311545082705897314355208775059168076890967787280492965600681114626437803356705409463182721239665240301241686586826423748610635468276477053657280774628195526049665805814006829753744422776023382683920014438750725111858785584875122842559334234549900272392756443935754493220192722169089463890679332576925782983113482249201010513918418507714095742725943521778483356635220684496134874117038189658704726668187564409738972141020865217595756361335407986638834991270566326197079040099956557297855482116776207942656202462490364822289402002722434697417314557416739433142867885336769568856637362677601851859255047988648869909999749634327502956155566829385096972512668098646233441039189787082889133051747582984130172607788109183309736413208220604940824520664872912650213060933990491002104813098189182266918455666816203092361484565634981046672718755721750055074026189168987835641903955053457729263097216192114693047949949921188031778083904500401795336261690100276650435849493577501710220289170513114931535961469670706382363852580556793503166576690379905393521596043702973247172513548300830901283890384009550604968703317637047662416064842089329490252252724334342337356814045475358828661265211073580750825457278560300352797782161098776741388809678278820622881266198485011503181996602128326725592182675783727575363084385435797275795216943635565851790899966947080345343756805814150005117743876917957053273365779061403381045175652362156478883405200061417953791822764508509105096845790659094777317921670661089162487796010218430903803854271848993543201050678003100749877412677489814565869149369231578966087249729768800451757134181621200078985546583905346107894073188670484791952903506975232001563365223610500343638081768357206265532969281672859724756288489356172677328297850575641004663927585906037956165707853270838353205587779689805982509396552533384469526598782351086571890090044011599484141988236587950050967997013492591520083066593204561335908328225399047872368477263982040839142592269143830800932757758095402476657594412444832619941885240047932847153055963915564902618355303217477233172376815072996394276109825420165076247472502117053042379718891171350318420578595198103502309652951290360979173572643844196616232293032818290404012852762823370340696812566007085934864545981791058900660877053282431190817113667121507642812818522884241656587014347964420949422491736792805280652021006065727797734820392355280243978067137595768876687495254861905031272160519872073252037373529656852508713499201534338896032838271650374521545774341825961811359551145531160173551352837671764129018345690113851614241741025773855256741135377279172209918748234174502658266587246927058131229985643839186312360824878017567723546469003725685887062804787828884202832719221046850556082415018766208265623835606557630995619266560268860793791059884832440421683202594716120611567288705099260783531989498170690129363965498787619594296966140958836422748189340409035494609572439282631486314301169572463916455604026780487468451586177357430499717965419740007284143784458740524678316511310026159494660725164102754789359243209518093253423644927341378085427084252483945831489945166606384260512001325433208057806195523002431551561481082387630525730273304264093777520725168316742275050917417713647100837727305649024821683728925415532338400678531885870636317078594347723746989139625861536499419740264473083930455228286252735096083097917556746589907924720141569419101862875418192083183967426628954563601124946906962406243163490745809962856977066877797089634673998093089004295402670416105607332201334070225773315922078857654397854719590205085126000965382724067528145431720669255575116393240665654798670607119609782381261782234471720194651597035956516885948926531508424672307421387817233488571993223389353263074978572313336214796876266216983647175351446151204831110102833763223259550036182834707611417481603827737399297963448683620883901137022864323730934054000523661094834542328585603446338147919613767613015093267927340214059060039480972658333961511892265597408953987459536790864636883051270249924590494873765319117178700334725719874586822797050719615815864836759796646227342109635829325619966873598551429714254191358417654909873911606816883635469307965096531799077589016337503957668610994364994373967266998634147625938897078796657917359353168452524269453880261396353000986676539493626410855529591366033055470950139934078760912912695639695563347512351885257641317880175437926617709694354984853518949425007079938728728892559862279741357908844805755039019785619902809702848557413780389472236595487060728628511971779939242172551842121184863837520757430007548145762610600509300247045615224512679098595024954812731790166682672669032353425759524120795580286574072861625117134446487882777420792619449365626629205660846695307918566192265560776555246775966451181670969487480467630456393676763121030450902859984542510339697453061153790661168394198583486939340366075305363272326026906693401714795083672396623680445500029716994885270792157641847731418044782801397012916371584068723744487401090045514135268891896978075648134049029290789570007724936200715232488555063342018095999950261880884589026773995583889793678487441370010523178303251138639751025615627855588241592427587954660174298184331827188341630202116881468370342628598606226091325973154275866242077885481081382830415575834108532417836651486449789885489470433157334319141651483957726601450425836787751858789829378544255726913964235967201197875871903677655903596498405108391809825895671771696533961987554305049313628889322340433911313548100515748556673597963380909661213307752122380762107118738657321694615010006855296420988219151110830375668761905167856402764912287282259073537376880270047889123585899694443298040050270295736331051429132575558508602979731294407256454484328142933144999103879700195285396504507030098112350159559912943996508415550507275610778141512268410260542107027911535310732622694290457806014082364088896251846596387235769298560704950896259202507737825299911453244949043265852688997202596674239961740377684487781720834512051280028606757217762382129868344083699711987009644225014830614827876550944261855440646273094611836907316612010359075897559539517227417380711338216970401120621434706523796533942793662512797654634685349867367925751246254806966904437491987688709515348455843427812767263981235181105355488609233771418650584959194489560856400426485796043466335561110271273566045175755093940702480461699219126836573773989686239495873190937521072520475927530527289694696970977903602784924759903285908133480813419569749128001567252226715230317486601712040371357720832776659864462201951788429083860130786568681893731473811908857370990893511074433110943542588903459087107692561266944842139439007090844331470526732811876770590626395544981337187658177251237501130283497797817953420508650853170062559632554853251735959309361614770306619757517487680171588793531145070487888931672171323376130078201046763368972463176824190597289914279974123967814628535425036192567194700062302973740549061129753279090820023729726846643287756734833577466213739485519815896027239135024558538450613372764035646385950294183224474678459712234405710822448115951429144099373302935839623816808932924892370326886319417743987372285161075645304123917071419186732365711551512660708938687492448323937323672753145277892866444903495936265972953278572215159515524936409618267275530570935084733057942428736246886160559857467664454652503974891813623697465333797820208172936734257642531725008793219051087409177471911475144538159317340528486133786914903720649416859564857125680075790345546038544997737404344539727127273833521914135586314155227764522821092586337753765321557052951818990417527149663016889859455582585761546995876604610914512458293200882758903143984456336392993863635666849766602578876643118532002310825537658008685526466487176142232864185147806115329678109233237700251907589987015531478933474745625487540972314663564162015514219621059578893379521497953121486774839884867547581671505509457825271427478010054722911857784768517653361130107302541562363970807421194533236660288021102352221613106854978832138925827272373006100055218218871964710915239806789461988821530528012908449962123636531713022628216974723555193983675441790270696082111044531636036282215149630884613366934999232846402574564200157725517340520873223361379710563396060725417511709710135658335181334786923980032173854115979004702967936554914951191192811893029571061270299163889468285311605414568895365468719423430131752709915889577257002584128656981499077277962096378069580159970909400178477256477560201859579694145552734904924873680255143102579416310916426271181363288058449079135453276328912807906017768043351571925278409913176074414659758990152910759386686922656959239516770440630047287607887340633108466981966436481435551478410277549874238247561780229002601798582461642644944507407137903729360735262286522768597067443646219883829234282572948694138176373289303719859577036179787818259879625744041975017383166533212590400518758561423088675716317997097960139641771567188550252518706054585866208485789794168123996453319545403460046157795194409059563873148912677556840938279246709381489777981818794837599738166342137975386693131141424891645834682410028571239820954052658041827999205383690618651600968434266326668808342915883437543759037284251202883033646719703640397977822809925495759234114588574033253974541181853558346344723880427371631112979497788655043800518975550660070211042274255908724975082461082644734526940529950433010072590836220336078671627738043855902380349176653841033220933673881919192832015989713804564532746300205232086446088914912332081436684161800341254189422456991350510729972462979542538383187452516296955675843712734034627995881723265329050049808272548610531462000644404257562723080078299833217805039386853051810874096613472840702479736510007416895441204775666007254143853801431364813516105800468509166598740653395768949568251575636914973844276595668741139753680464137932594622683271373480877862030536355346901572256163661827442674235480498201105042460092212761612346013939271502431719413987997444284873710686790519299528752494413808676692309926145281629530295488905815389645334464795681344675044772991289411903566761924502007876754830865507499705925378754655629136995171599201160765872526358316240129619595293257967774611119715778220209114473891038970043291543549052823904670366057839886852740284307379260120139059604318651099749279599941343670721398786144720968018378505273685465170335727293363819745204919880623120331662801839475331658356998077837307390017950268174205449040661556841187223469700890385710328232056322153430996886408296240067877473155414350930666071051645976427932124333224347770478987683743329829659407619279673661737444727953941749364347917127432542406279809675716096123870292525715218647425780368109894713976748787926829774208429446422863377979597243373869698364910927285644105439306697392640722578439330021814701288590620154906623349967879162386448467858859590441288194598309645773222279788347957701824996792930717388431536768962278647682733712438581671165873811208749887475030139114972312452551452909851990209980023162402149035717364064285905086891870691920780286522592287952896926616776833061823624883061877999918519605717408966525420088996625352473211665637010772819405395073360128113978273180328941138931610917991650809198714912932569378067237948602893865423790478743314980081200714505470461004490420770104618916957310829378559669402911612905208531111725102712527109954249045792282431526571981605461022683591398983309265108566029303264262453562619381556293288323352847565671379176457564235412036165092015709817723243296316567653689700042873621162365062527900723739021268902405015089829254020143140414712557453957469783255469367259016857240436358643923289998723165424129872924826768291976514089179652082579961241606149857742174595059610052106354390605413505184119295579757065651871130995512130832392111541871665707691646207059581254082272238113379355157374261177449902115313788656080284877193902298070464149321044660332563003913525767617524412237325449816453695186356100215470227163901585229637874005490758970863639670832707189976995114759451759257578597348478602258280727983794606174236269283447167408366006123615907590119030026564374455289107020829845602933677890036489016071296729900368587224367940411368689114009396366876970325042171929186357240777348304728255434062229352123368003741226532072463747488330556097587675187078859735676310736720490168052107409353795251520143509011895088206952709659792557339666724609243043056696665843188027683827005128386408669611064485485851432441626078562743425453976593639395227694036713956335313957954473669584783768046636143971224343495662721063270340960926594554062965249636697527079749218579893402188040986762896471662208953748165653830762797319219099204785417425381076944831563680568116657035260263161114382542204853572830997168627819441782112702660389116295800470514425967873839287564571827618185952829322098140454037953566900639087984236689312767924305830926050254681907774771671537387707656486507046498413649734594722553223770615071889318844644563042111403280704689108062497956998469439383525985264132814285342027882352483268880984913006893572074846894799346489258608743141144390397086184073858321748896667841052878754178177653914149822423057314038470963515584309579134419204804371103135869721500077035368131159319963742167171208344425047479175742929543570482905133958695818414140164790001083559386575065116773938989550191963801342017970150852225166602538667609285403601446623753266811102905175810119563721767133008992921087415305246840019260793341494881487653073677238383567190677481108889080176038757690883610652883100465625510476396366578332017431808008504702460491641686685559242593334062218731222139368458316147100042394961938262036045548333798190409062996575635850808205985234459562362443492704670252480254036535623894250461200523925565659603955453076119072405277270776926471658511560244548212237099371825794673932078487286142270836616265339129879431578224320557413991301974071410980270181213760170818024405996298754108262272058090676420503123812544926921769748013067989934550840387445959330800278553286033761334285600047849825098682653798377559383001825400802930633529813221377413621423201811625857862338534290734788928685517729767685457095683562399197808244941279883116843339870953095588194832762148646642623778842827723164651115083826676883215155641779638874920011515951704562163151638887506424310752981301483483620110180927485880893377005916056184509087385859989249465149435910890520252483245369702325920536701607148226374399308541616051153394343752472780249853166404281554374633406561907008902627178840600081577093151755170699936672184803830016907453937431388568798250001643382575934486949421802579309755464159224202390828804631348253391348488079445580648781497101479157568332645000186534676230171520887726699942863203953971636637414534425542198970089706148172106378902973778767286418023080248101339066188229876401710969620504760700461028337221120758850716765177019213505508432391367685894443017934090766233001414852838119063149741249466494315151668793161298917899208412851600473407183248896579530426083809473830556696039799462557385949602534816566961301096116101292407985791065270867478423791560565688124289147876161291802060838475432254347305462426260408524562088338042055594989615047028698241739728832762824540650212837199633874538018349896508641122526277563483475309495854727471894420383108777791021294271262557928712880063130657550470156740240722092172928563203982933833052382721474744643585983628493753923614584656800557735348456998092529399718544290887765956740609118168364645303476505588209830187550314070933209630302011700177836929407767075409215789114195651844089683504188910736210494023852536091537459370781371213803816630567854902114543755957500345209648133018133423656776209396825969106146481664944044292373768031337226479515277264488573806838657772747343917727431267615914202863718748008330875058152770032580365069924938591028018021119423832317369836500621331897008866227143346362658097579673439848863029650218607359299349471223069520439399148983227022168709276232459882224895149663673361084406878678671487880733161741587074962009943612669999581803447720284440869639473203616602943657987827137850305493914532773178083363782872767689283148831720733245287814864620089982448190700627302914373209643309473511441734488539376119384401277750348667486361089486377185760728254107298233257675582979051272736929107714293376412829198483368020164345941746642758590166102628848420264714139979036490005763100942198056584406995521901690128936117864968437504439029468002987905958786886426167231559076971175317836065226398501752543586525514583591765167499284523058346019598052284757288246363466081685185773423329448322682392162125208076460494398981563564336642928632434076329637056140830359476046577188375703102104849914378342797877803218204241933492182688374634019123590232408949780819862061798679818302218772752081473147527766412468892712385732059282441634520868006573910566825442049159066241712886535930466305067624531650255453795009929831403824108602325789009886620661595223344215044624011944648032232492773607031239848938741640631243264330168737302580570959878498913172973107471714916864528693567663286835777996574900159377304129006735750316860526355381796186350350072605248974972379689576267548055398674243778673321712345358024054459951339361785634182218500238723081229989922550099271479236468756853036080911153609820342325009076796326116808134178808802560598074720328594085459019236905198617747733555079440210133025417872920771453399985968687291429036615707813949057935389303730897458457069068041977032996581773510071429165483664947926380219257065520324177102532299859844447432580508429683886463500403437710547633956891703469921248333883973226971719188157292396523786733561477373074157480263025786182545682112398869205116038532923444283325203543776973485762018501202116304554078747859033043745087437076093243601607183777663524505028183574913315585664206514803494875287952860625768459905510900009333829207381929380100071235162668595198020535711435629388363056822840976441002475038947324139080319843770380387034090000958261789259623320795994659384162116937496100724826669925054174075138989684553903006065582940613493277705261595608409385182712562216355955843145174769147615479844995073721115472906688226049861619756754106985116824138665816677645138573971967465504995222426668477035249759178095330209391706428103793951281441166014795628060470381564255669810258783800423578271989938785221669026490854703845944548178540829729680132597214556480276160522964068766395958379652417929584870268624611461383008701776795771233475012737802383373407373953857260494130793672372103516992327994172313164447150726416925445810338343879515089280043048235113260519333113755048482059386963975403062337835897049232191657617632410468809026593644037388696047779384879713521942430458884109726412986530430716065704948218214006250795552731642791900473705533615803932120633328716982541243169682890161341113879832698687048016407893071044047551819815826970657016231819951563091931696883430785952761589152732103576140086995957838465698929731503536703293371924004835211377650966873908708302740532226352414815355537015654741002491506650633193297528332773918822857003403699488767305934000508060955899513078702425906160559800667039861336977975429288966500674857584514899903101882050444912077260668144002935590968562503646115593625380495988221320482755348627450864359776838046708715049653232586163688149501506633760951899096203169592700807564361376584726088774190581257837404026800848031878014579104816223629938801698326157452249803092852044563616969575156007541944076725893786673591908832051913435575794661098020598870810749472377215011542041080285491966075453466822640673201715649636307969196940337363333185111567594352568234812754319393354447612341985415385587754057474745509234854169387275036572195355332732987275765486452474617098714446114545102245619389472939697295604349835161928302609753408526610091693131075391967685517487632197131506220920593459310985508859956676549108492286476472804312354620666315601128668452063618670029680244619581597817673843840646574599053030700632906480862088655603775471705357828237548062601350954828088278150466100309450093195312582717265482877039164833682521020821043991323833055226747463923067439131890329052176974012847144011740759389299999362621380226745446265320812701461112911630554070912041464028939718149149458219442645958183575629899014137299667823980972943042634576118242729180975039285881344243371137475967061591135184341002582656302876286317858691968547443502662263228706360475260363774927748803338823269183911718892278744283247889916392393164752127704968646530299161885859568833838210088005177712424387785566420669185084163843115163784689538406659961312055965582919716744828713864929382024433942995549963629791476892157284257504646413064059034680346624824350077153575556145097112420670570077502429325032693559138803173184204974477246793745464718946735546467508763996490273984038359849328852992331352034624959818794788314791986151427835183536103866387364052724833565707790316558458534797347111187598391320837687946094670658522974289322522409098625755033869821371395408007891525866800731440813741710814877474355617905580589011214463760606989179785262041572624326940441139605239257666851722280665497688314177499218101944839646589575852231822194391348907715558970250315791821149806939244361201468019897599296308878071435344402344155562096943643700207796837943229434815813077210032409140468242161806838436870207363470192626384495135118172464654647071598375961788504050399867356511946586892079513995772565588129376138667468257572660707860161690934599797701200186160003825226401794048260035730790094454690764265291792320240640889323505436418481248419858929235059089017178506747443655392988935971319798860091010054511445991042013157542236844742864735589601050709263297411762757075634784085769786559156578967031680749784778492364785990680209339098408976713560980375814226543015919187350839977628047061302583187478327038692212302072291041262734838613067315308538630704371509475079476441259556082371624373242073729518677300012660011544404660141537823873934364050318507665238649980861993172305645287598740102278958658433414428334612599459649948327223107788581920337724625396009250700104899118933387853355480301326909480914049414334737782844238719578237595350684426830016026690076949826375026415172573393939525525757199800242076958312584636357170388029083418580030278297107913124031011223362129343398095364814303990998273767265358910629877917437834131657954664976546500087682348550676769233077739196598888521582128880858973938154650187526939035759362367403327479945476328010343365645975810351436902246399491975571268125095476661337376003673170701656306094869112894778241903027359692390359029015571464729980328452803744767333583415719905551754659379002555240830317070862655208993445879745893950023663517000489845590638749810469370306391104370133381419895776963439936696576335200483037712097345544105295673387471875446225709534953360180620604210148287837242639571957479291329787220069324891938916452808741477603749338738595747204023083070663338278061637553413491159925503642718235699717668041930890085405706875343133445390924281410368867750325057710056033893990662458734068336694376406346772067953924274078175387255657336456406776255061680095055699289738895238422069493738811752493395541364971401441788957185162496370013045523142000198116413740779941678246100449301004384062274610542140461593870627964304095243178178031988699779404793712830495590123627119226508892110813994689830951146910800478370259899838868859861668719192423166911278616472409986357118210569397034123779927516116867678271766279783886823890083662655845199186206168079866449097719048951552957749791960750394148986370729195341851390500351145779111074336117279579450258012294122313841826982934652858823493238037266495447130967593663031119611621849235731696527874901884650723291497054283336278161608437524976781765124654021482351538573467977710997085807614469103829668531948153984543384255878234278951288461408441445364990031396435367303441946389247531511478603270885660437529928681352812261094099220458680703241694488210828058925492042686048898685266387591067910671229611316667409878882794244735862845294711629357372251472380841258590972659723360063276435540117391083691757583259488303757649397328429877511351707561036476903516980299760585595809966250270867941735071025145985320037596379102441985373089768481542142031972515602351781981144527970012339751819060580007355574947516555799104317544622864314753604344460837417719854228724762391102266077047105385332039942481717092256661678690656549405323419745852662265004573245996166506045817379016412614460405033310904386616479617365835522547294322788943940689554804878422107491357788790918106914597867397381519539093238933851209438472771324448185342561733732848967650075659190730617671398855754607628136543627914240698494776796401347744479360920401358384075544360316341183328266403105990246949811969996075898982727570444841253953850722751063131461888400858380820568609265352262811171679291460546417156173648826838792091704580556436938888983072374658252376431459149610673691801693346984963101514893219696136971702908213921646858543152675226481827455737027843778141395917625350153991071733039136190161968812886204161184665623693543770304784590942598205730150027909572007415217065532828249920137671319380956079892796145441301572303511094096999215948384329509366684257619288048994225211368502487869266217144324574912292207353811533059547730884444258534076820869434706067308636564354331361794728276935941498855609994239966127757624608313864244695101006745312319188318380650928756219035149367159773123533169940445612869948035724574768001920773429542999638409894409817681081943253346260738638574477118173163956791657903459732792684606412147956683962724616409683587889924242696438024883526846784891014112061117490230687666713379518548141732939465175498788951488894424720872871674739218160033172138939188947085630142377237100177518215320793056310000635840047320791901629113642512134559768399766906922156229293520937088039885490202814108094353452668205392700937849540673629859622492985670651926357164518486948095966789432104463030312115306870595568940958707465763168716647018063251050068567563897111340272685902608874143523999415040973274396416141408963216297152437205886408472223997908203901358405741133282681352237867200394816212381045707521187367688754220129859210033418372508479631210892190874831589706020405527510704268097704292411132457490460999680228867220556608566710549854150110788218675788445800084040167959857793910289499247995589986548317361915270542980358635367516180187560005093478640323732084252267159947212023821501459813167247833962956834310244353789431667237184043266392662944423174141987966150973945575777783666907939633383258503764564942743813937070886737886836581025103206164778887688309371075428340965970642447508712198158272921138425412282849086016440592491036713679674766181892055370495793905669631010316668665981868129636521996891491305341897972499218966401065859114308639878828796634722114457718616555186273372391957296881231572882527861328980418698856731751300442333221311455711274378550715124350665776384792580607400327774627040931356875327498763885009337392646238230102126927449139197047543529452206434778754844447872921025458131080758821598910697895340496747059209341157744682451667030603007722915160199090748943310974490094074931138431889196051688286230942392698143430739093660301800021134643159384007483527493416488284119571880625921426761940835585084515881369858777633453704969224806072891512489422855609604069897245214462490605493123711513877984557504808806626622870256056417436987085196587020560790160303907382292612033418838448016662285466718883055301501447291282569069890591289621944935084465698670935681783278879791989435782763058699399476039839543935460885232770986374837607197622798250733827142968139607386371661539608020674863601440821689882068110846532121572488978184882091056875163307453679798726653444560685761649822280174323028717122402231163352015325804791256543455011112747607815927394419365237377653246932198212959896710245058395579933248162635547328548881860051648680043347135791135961356851096206136974484655262303256833683930073128279741075863702902644306697483469899367899197188379424841697238109209843006568567702533028743450616461588915575093446741046410178597173577485925613457392537315926897982624476309307160236779159671404552947808164523415297941340205822179387862132054162857969668281612300569791687204494049411221953208318017600279104296685626650422182770364562539470888484286385525373120428905098236570435771239974628780628686288078361278371308211372368686325163187736788391376950255195716509149722774841375522362033842088166441963646727998378234291560395682921501925181575705931794812829408274666900558355497728840352779846207073110679489892880442414784943219022452362711795122827646841862785984016365627692257701825745727822891963258822069823497984077012672752883323806116577297731963450571849938484446739703374596180722886805216705393247305137523293383457093513886202014589187495973819540277027681319045503944561497385558621873439682351923446650166308209263262469600853981808743346513407079342966819618824287500575764444142322069173889704247922113944694634262997572882015520369795169025544322555498941932637054624643604897505271125369534225091476773008645816297118284889712870790202370837395837611998261637890338344004919604337385366107618130232304767854797174018231830428055168912256571467168607838434894372767791418501087922471026340899659555334108048188574127875335504777285351396558657973745363126624527110063513774196047520505919180717261923358610161693313684247184365714286519872114780722649482973922654368937460084049285103435051301949756405786638873051839872816299984221627227256520421882609639201081726168276572799303336424544251920445852812160890457960170217953493028008477838549479440518659327284652915123642891736364279383385373818088094566067808948858990087235016741902949144197186897986026795663292363520665814345609592195780061261764473215591308890507870368785301489705479528191807361514138400359328942975396233091493048662387741170805613068109816299093151617440299322249960689769885678139088853036016540631368954771088613625642981299036057642781680133810085538234900589669681743898289093673616358396574125505131838697712711569795336584242773239685540155520587201139819219989605221159593859929203054886520107074289534153418811677265119675759765559216353948865166784584449954281094402378882212593319198908270677299063163392809668347612490871916712272981230990201061683606727312318311881178115989878426024012366089023866517504281842056864284221497271140797440018383771830779290066782031808563982139204194282269753008925507217807882029987949126249599079324491428854300959717979879349464356158003710896407356650222888569404646612060680708406484437756265303171359857721568561536176533083417147420817296126626118093761970995884313246605321022152196124107554183760132660475116451680017137257909620210443063055649718307462898877582311532901513143774506796771799217176760534218887377676260705067651359587953152760819230000966402913560946935394977056590917386111247446288210812407050045153733263420448386495829078913784419195967570937929655894009670150855253355525142650616871274727785261455408096977640887287065668859121264756226949730210837443365992443235633648497926736625545679034638120794569120323535160469832560809587147654734738552036656857088189446050974254478275265764738377522616434560950978338887182149514098311598746432316119104570590078315603792565570637108995267673151786745222727221922724415757524568827988185841655510445331139505968952991835896710233629947514015860754438447422321751662412997074218631171620828972168927034880938773038522433867412816300601817902498362702447193412695549654878590170649583550738385623685298275690230769723828021787378485432098165816371997369008619021051234363174219288146769357477773891962538541596338891412079785849458622929173286128394859495565357415384031809827712289639162893409218561126773376594172193494839645989397817478730188403783282407960994792270261153729315019804801735223671460108840496224282937179270210107022322188720211644885963919775571557122226579171794307215336767408943351076364294694781201054430257857793342206082949144782943247300309731223905906368252125731867338896839320698435930252641309745855893233056222173536032057203556087092015734447302196205440477093415491484444357820357022249042831387762465727531166128633839687705313684783686443147848745096815801193469651658881210354983656268796780260015873410007491039981793704477191996764248338017043455232311546427202941427761692530222066451549064633144229887949610978930922951945890877860953818260693902084279112237254886961722166237597209957143111748165481450854569204950680371295389338743079171384746963563999334919697713355676434742764648293407727392165566825911553059305659567014181977498777675088101872809273591894352923649353347247883022402911068268949126981144978532742928554495160297597081746029744178465992300987280504955444525262640941249522925030180925554293936190744517611759471341330058899167576340296023196184693922334343728324840600479316012190729806367148218764061077273585735681198249705023695198950011438851767027914345523362122226288561119539723967223696421194710542261186201722403730760067174030949742749182774393918005491464327734086615778304176972921375752278528428779997617877602680064060647296257147974410596042559901245704319498452840691288300554990882341495487383246816506455065790641672488381627767115375399189688685544890333408779947150471804283805400756027493704536002203384930931795657355506716503504736527578292668909055285167760978608139397482927631801157614091559134141431900499023435330394113947289584216919776013758781849140412964866573440822834180816585965141593863076138818100407619190012544858363144403289996148926720161765431835810651784597864661783518580483514977327082698689812471700247804358791470893514596253079962425033610173131836287743289697010361418890354672296847060206859670220667168425040697654145212246185389149298994206746956103437930234274623214684603101892125434682607050603996514577362316077193314289092963742394640392351057608216682690597444930771566031879626528767340325684167087035799571519067412229458802535116615952979426070851611736351067977774380047720211806944870531205190526626414033920223391928604417284489482150270685273766988520418095555624299371496536532346982958362307792748269428981249915972020455333521841288513312009002561004309876738476847574460251814038016288566344295690283055625710455943091396181482846605341907944853992645706618306972149495631570919209082517108291865192935429535740022513908503214491996781855413861869072447538385863046001182000386279028798974025488493435140626798028347892115370423970634493370078834561890176676542901379700899854707917931243269803575555831246277800723847443877424751110351628061255839298571627008306011196417509411090431027179341608372145277881154383402897740805084231704446535682158724675262465976031383894969447543931644837057399337347262416915042700533816148667554008509615261201228700783895547343838710816201923248347939970480175558287506100881997071831357254008943424731481353377423338491428004492111695453860874728334086454097772113033998579892088778792939855402101826364390140042733021408134698269926531167043434062594767572289721456362774725322278212691336321499165347528911401316139720261661166138893803907927447524649010142674107247173979257222352041549328134843774610786260120170424484632429825182783912631006548282268392756258359269177745900377723088074493850960854114862103774897073215231259462086164656704599527124544086268222067309309864006495861965292234091527000159014420586873179263107377397641022545585095266603457792395391661564890096311643628720342845168444027382220833056591605254936658002151597777523377742431602759706326199934018054785052951408072206815561293702509392795203965561865039521860477829808029633203741580156454365982097447715886619137603776118993541599534176632581375457668105673038419847407824419140005064398836045530449482562168392537956449647386104785782374103932470208068053343001864956921899384033259120563015438417151295780602498312235563232170582043548827583116135255348312870057787603428905453120122400145513173235284863435935112267877014763275003354061392354152138614176239695916702781351387094233571327182339566494833507446565392013561261437755201937786292871223524981575399594536895757040757660579763781766964653553581908922817624416293786255061604509428362013110405457853414654360344038735305599070774561418486763113082165532591570320118262548224978076185121503465676187788423035425586975161491804076296787657692283801538898658923652833486428923755533914080687260957587714448142773409955287748973122110058849979417003314158627689144406263047549270175317762201493532176545342863244876878142318633937337376446996548410156635409357403428525096725387109253473557919593556796516453129918224899352938463866955848802830862372818548867424210306794228937157923931922926012733921485132159980076535717403269528671643514289606591961794430720435936363725830481723814989259130141409120725454466443484096232021396147313859637890090518314496373065369741175877051249610514272514893864551605503476328994237201126407916454131315599460370764235592021073821197967042956123754426888575601308993201146087829576708531125365027961394671476729315947401080544953178730369591218115443997114379401850051798094490095875701538833605162348987022072067232735794839363286563588680662474872226842357344323489535187205284620724056178727012803709953933468768232483634348484650704977391108458818694929808207565987085340855142739307554288322298144813057625891813921656209363927421825415053647802424732448402208282581794491712365129291504249057673119011679588456256132241192012550883756531768410632646723947470352539020501929504596902223522000345395768271282518545608297668866009664157539068287688185754384828104341111150164178724783338111403239661055084723948147256122822521847440219114777497775475469099377133658929487490702156918132664663331593116295338774979028413887081424682800014535805036270463539639807194477951926479239059460556822632648407688313641933051476294297402395363154187579078840981081046253022601133314119418433766742124637010649931535286273796115143676614190197884517561325607115210719023539820435964140611639992099588546472069888579026436657471032332118977258921475840594215251453814317659184187346027401352561718526127436256227184425055136475318556093986796618482667488121952071154649456319597850651335525323819921237426470257211335733719033470835175858983965662303644625446290579378234549008734297713509609553772079595313116300826646921185919024776926842600262115034780372896342219336651335696666587043235732806942773074201846070841750466376892216542850931144796563912892262374749707563969807177481669637575771211635517931204484644993335639076375885006567783871385137033556589132429600442943888550243564029521664250547806283408797199358521589889712190283363083362586580809275813643433350714620333425699944788581260530579831635150694727117934713033787545803350624131580683509103373988492460858742679090184634146957244366274579321805443790944697605451438585184262656894758986948368350115161400557213109600586131802865020690464942394965584586608854990398071064022819491301058893425660751019742028300994187875822932178415647928203999482291218828610137546626186234829917480664189242606001528299069248499968707735082447457675887499911050616267672702383196161082157783621780355971477054919369787057711164298199406947311474925647863077014510387669448324393294022349015256916383301605659628710364776366370001741617897837515952777202011042703245425026855940170138780065154860233037128809483630232316061892585310870675076312803490372202894378948653843046977391361582184433064830833750573387208046242524606288930238987609806634423028244801937763786150268006455605406111711171449890851989339597978335886933681344076950994874611554042425347186607370434193753313075371630505371029098356276416626861540976368320050160185203287273109144040219612114938791004344228691325532393839299699473806579437270036052409410605657043774859009091584188575897440873112855263239168907750244255328253376331248318485247646101160426781861117811134427415126153302131473698723429877907910337537576624310516992108769122087466032550858130414712994730274570075873208153359808440988288250812345942480537687617414019019016261877536953611305934290019174798898963381123069279838547880421038893417657613594581383526949553959753746122379985412497583433469320399128554275128321360312698271422437362865238286648404830654267910779163155738225502801382420825823776314777113187203766250200812203952650027684507858621220777665631546248897246936169457083148456444613978122399754968676396287679213480911839375235591381997449095884208436704618567412957166631041868874850626707533910015394214051582750353379895593438062534263660471369924974964892259422183269239542944857458069158119469872103141817963842376993027966130017610787670565999586434254742847430742139702534754026892325852949242758266728244431557461820808597044550615910356468062824188227839106488123795744598246881620169475959673545027799810353100472857478724978370179651974961694972806053636840464241433582141078164773309896630700059083700600524506290769622063805228757268809183895623665112010283833671997561353848535315463444018576492860737398409384663152297698712791406616249523733797897488979140157981871996759868044020503694354092353107136203576143152156472001177901462897489084071468084440615061535732123298364462549177101275502121559122195391724368018552760848462865722086423159168803955761839626100902030169544803362285961197634894854414946766875496871178685187736777245310220530181704192664018040732374577784048039263353395659200897659762072129557702002027097013106995542379318789745267805503566438864692631289377342541262091390516918169328605076516554088659506033965582119527166089273623358764725062713726959406780193484383454937019953300336534106865915372719383159657913365156686233206268675201612492696864223826135479599887999984404909410495161759409293003579048706788509951570978709155581288258660535830969767564458639023427912693489973925754102326220129473131816663659176938384906245389354472693665856016348641464915502633636077176907019238310431505537722219151924290494514742918150444519351120405062047001635403749445818647350152566920119374573707529514147633305119729012658228844369272388579389855274458959201226761870069406119657026588223338450637333977746964834072764382536775825478316966875177339407034041118538994047834170943356227579855884379313636296337399753360814946544288970714869215328170811320868745463542520578044653102712459270819244759847393968254572001360710289299959069264439247742279688941277864658060177257573673506623133002830817516885508054695355471167747696576630141806637915306897553370295933194301077584342882200410934627550157785697385154205586982844667082534752408773051824527311419888323046637379454674582709049646740233288498777831821212786164398685076135980219497699596789678925192683107964244395675388589214330459435493976269816820227717989504525421963473834468717976495705261899273195762119393429086513879989475138634854909367886609559940934528550938299517540082722205534678428532735530014399051605130496591170344321763115996451087777486923937584330752284706784352339194679616115880465579586709023740786187435787463552934467148765426682207739213382049692435592807286327623911587326559376170207165130559974439103205480152860690224913539933874140864798725465089402790398945814016938453974081165510771938559538867775168828610454404972554980235202828802094307211127460081214318674223778737519478519798295429168359467134131940861930790071077377067906117328055007382201027922707124165185118656347685438332320549059111623141578978367579369656084677288338859218404230401492245595721740082136829442779089742071387768333448105071516041768436006577784876435671915888462823995321988754143168387219049559123333512958861235960257600878451169862975490547035779671288477354671792434967792921774406006536392772028486624639914708943113617223874942830811492218695944461178080639325546916305894050045958426550634981246175219446312912000679400303102636127640057289252571309680783223133093115313612947248578589383071042664517404401160025798946080889254187739214520753220120043333123238864831030860404857095785827826160158928575664276483603678879477524052994878156491906102443320499052888360915981563120214234971150926408451472710523934040066792920559737162912142812117323751182347376524588938202078263095743231966241677994877192659889873435383768897966045352623478846626579983593212847528834121694139285511284046447165307836995933598666183311031534849773296322230896109943032704106769505376657049714345622411152595135441285454422327970679417786935275739824438694824672201738619066559207411848966330589174676815757127383433030302554971900925664413979868323316621448183535244131980805625064399143186864693744691861290421857910319210444552951122238442489809989486764577015912186095299637088985567749249528275360086608532187878602866266469536858342757527788598372768914534779500270965859092002050801746484603561651742154381660458973757296025696946097430286430896811690183490052745305925635254546446796195851106676606764802007769242573385758791383866687003729571126205324622082720859881652507416536589646619983997459734507304411427354431602235612713884750109118736986232309817050691214037575015805584601501525278239646220102868675503070517792286196767563339656391286528635538074547660169652607609343374894871615451105457555219974029534657744774495628056333544500979370926312117195684014424824110480933927117347489837844531648206447526710938665973412471752557113636650241971308383734658318712224502424796015850579866246767798500511542734599731646027866901243196109040140654165604845667503989691596953035904234773141894720739177266496319246484064460243948207775905471302845720044883856565845734794452680568515279988939476666411498572549135255769595533162352407997543790325213553868037795085239805559176186919543048969363160321368146678426244291527674228942769430021448762903758611972124606124227037641067393868659907907274691237093091341766832697805772516913594852684713191413550012582667782336507468949658618315183390144065923330340653215859230495525249744363199575638123653835905626933861502735763841226059380244549890543123898426563994691357196373334900888620263168239192086710574551273604469173677181979922468088202711386196944094147387263021275596017429182816292293038977577065512791436353114734305296659417847888032799600322193643070466423505605939174359755682367931819495994095265811127280181561423873428147545700036675620660522354100343865976883065326274387206343341411664942522684940086101916813461048532164018133166722253548834925746461996136636655250867556664651523475952345309659244167894347130867548633551523832458227207702377448404608228151889003808927761385880344663652085703660159101799851407636614078490170140080118506113682222626556179785094976124769339044863145345747550343999970129650714846498425788741119424025010456362991964498145182918861884409084090750588517830848789061803563950257687737812170017034381685310828226427486184056110533363383757733162484478282118040588417625291560197397918158189335055254732193652499679657389903832891025122377976490293893852771173657959417380756182397164519906431457414682920456506542362755354725366073702327913088329197192379004108667941506011008881104035246459669152856271365051589863640923131529746560176293427245457843927422659276423242051396522726497395174787226431933122608130176847694858198963594542144615814845381128090539734853226650068744097967285138849189279042463564983195320124388955727511135793232266186388191700505354137959691795371321568981541477199882768159938059306321449218672026590682857164010353942065228205527288635427864906615058894233871671326197931509028269536562656426174572706083781780049958266086398391829250317770328569088997537250479466164592470956203358802345936462666463170825749709816903549617547033741233331141667605142758789716349419298615109382547887097548423382971121698888994016044134325986722062564832382503502489991205084608499387780102302927928642703332751239371278447989599509004525754473915209192416331315814097496424278834254707274585787625786902199399583693029408371734904299087968924130436821009096903718251520705638528988454923182091823465810430822016434330519846205745014389433188620563439836706216281140316883599242946668289625804846558019497060113808878630416194054928457239965178007591708443978843232714545420987041420261262567843430446222552790378129828589289052967373550598674521454622093015448569483318213124788414112893895431101689918351777516619160549038222893291368030268357001498809799650865148087521134331508333662450139889562508377527958697648859208914018610927099810082353694312655912317383703959422169113236908001539603127962612554427131612565410476602710119345795302066366624522058014420794970726906343571218575546607941168267207101420277277417192575867996083632436127523531447266626275158833373009746284049159775218613789760099136380870456922135719248189959396056177790415667669103112332370329842405601692024653890252806190818846412091921181414224335796307662692039729186816636900278301222121933168813869812038013942510746567922650200004105592888212416264829499013477312932022847903831098631233891969284573255460459730021005486924148518827395735513082343008380054729956599395091699128340049012926199679145454016370213551643482071933701208863388823741266946436094605118400150236710597370769670441988507457811183574893126103821645469254137312038749340826334941711630109925628190597870513779528947304474905673385908291990699289317002257234332609759528598395173950238822072702122332193977623498915935881387324888651881303471652226266542304006014377304435287414067849938822267481899032947961418206823561475922610779751977007776500918106286912471088780650661638341655113872894933322861397846309648306667934863067253798226501459937511835664790689480848184098171474046329867631331279863162910439099664071672378682260653234923786556139624126139412912855864523333122515212731764286998813109156113490708651392784844986366788663868075586445825191309307795040778799301375134828672266096018854995137689911998098954648918418270704979382773286175492269025648497176921289709898553707711254290873879959161717288157713340297290878317304302200319239618852436757009386982688419229065879227736476249796425642567508833976481446896854323113058285770652354976903405554175189716505369708828283946076748489327408886894020436620511782952967226423490841322047035190165501276564521816902901889711798210996347182625748185354152393879432047591112419942541122437752141112525350654230482042698617966406666131201924452665284600791673092300608514710332490766068709606523727144763405786004262745795914317744384302147810598465495188779993287296244938728080495822303821159461049530446278270980903592450994009132355442698559888045461756528447328504884835317257764012489632500433977324348194114880838659851210374672532423390717548199606677263354509159516070397320404382766267229235481373665766578829598191370076378263407022020398235225069718368560189672443956304513584283041871239546824019731720277012701955323103313112166871328252287603805212156361737285276005188518065869056224620851560399687679752958685182861410846663729696835255261245148304338373051937340045203429943056723280059302417025972430686034653903124624856155101397226703246096771579491532389929499452571865003311682138584768467418561601788072109348702080237488723060258381013916901784450685227601572911055089253710509449057622167878354660352180455353062213350660942993960240926643522772135159851619518148519645189923880143099759195084263109471251953818589699330703450931662832404270310765176532535103902963787611341134968952989132601276186073019425194328640071613155021389525674572168841907834815097665843290721210451762964988668743108096694821952146865103187284144243895743982890601940459434518877478619410930565495676821788891279682396362009742426176303290225756445844574062560602145992537562609161726486385835945275139028945301498692500486462181907311890589461455400598842439872885407797880359595540391689775661999665622292307764972699792780665189010256333936719466835620030042452638800139365110055209273936681313634134380796835581094122445175231680436693332948610376596403576441022146883848587971724366874527392001391336654462121033616463903456103231629227100598262597305565653101742561837565949069600803558416255528103256810858476031879581761323420878486373853199463117958817273135471384128049578532161143900920276231925494430952166824844945593693769701351346789969716468274010015216732208091622638837944351438777077227753527672426617327272607099194406505722298148403859250775280021645513188160092775100502311239764940820309812464193288779390090598961527984147676592444230298487600511551783917434884607286577670138016855235523479343856512640244727597737058933119906636133305222631142959630153409667143488642290902825028847196743850521029039363178687834772321629842798038730713468012909696134460180828874782895731896108831681343647909122860319523970847109047580079426912879033789802279904630439577546621134763916277391654127806357646918706536785920203274147344282398081968306926069923794810879446042652313111285364431843218783527035482071262944639933082362842827711640626636511696684785360286502147802968339996357171400993085239990617701422681333582989920913361049637373298818811749815830181212101498245857772723402637575093074928060522155445717593931799928226715494734156852698918593566363743556875194954297157481872764207700856552904162654283116823955969107280940687812334570038289818850482414010200538513373831241753555598970539030539384227040874323280404215728881263762160492792032384630489629668695580408974089137333983278389521638563245818872606559519305392776801904222828747299169250976199921358939889076924311843696022290735258509585420118509408171039955092548236861869616713711449407125283940579932794945389892111647166800460293686099825755398229889981934678188106413768607445763442238977342225217462434577165509860079523820570551316044397907298679236067790028607897671315039530349326047167062021263092965840433010098840965489289311867125357844546678118178450635255217108344562472657853170950906649643983637350359768390949821829645476248780034219495358823602283257820950380179581077335163719418581190714503332031994206888139866661036696390080087944633932753607592496205147741729565147011726494269770359910161024431904257596419894887735587145038425641530464989079111824341597129183184852428808405550055602325534628125704298525274973726303936638222212451596943101105428070946988320823458173626047039827171782919667183802984597397257448005865868848290760509174538087025300029210906733842712891590328182859311385490039940248767670544355286392244349258564299778389087339518396049128036745373181790444463763441887572030664609885513707744100498477783637997678007384130257830903457405108485893154007060014752846166741769844577340844345038679836247441944641750537604546379983175994980168566016771395230287825672337262357449571057581591506781517343318081615034915170245846430719006320362192079524547866860192790045818030444863211860941246210115456935190695359757475284417451482294569500075251683448864638539887807640378383629360118564095572922026813497906187778285970752793825371361366575168796030613949017012660024004290010488144213799589282905334891725310594402918392542370518510659976220980034129241980151306770549128637230537756541702517669668261168733199499557708834703261698573091362196706373292690712878689494867215510017963590800716601948587785169342466508055970652003060401421614943007604841932839291379403958435678734900974547689149409652354262047742838277719472481662788072633436529095957368644903612034351810936651012034268306440998557202265234390074379448395407016179200298221411563972251064599124207448185604476311268458050086183275769883149979392029243898994553016928575411109496875873707899387303621218514232942149455237759711551314381441686300645618439911611496842097135035471045715439942043288222680698334009256551395742601293138569694374017700107375026037923259846147773601849951263227275854381270761350399192629425914584145582822458188739398752516806937923826380563115697108958256859238153059356307844035824701357777012709044964067412433997504017661859242318143251628604067392479181010787762002817587659656082479005199437383153891819412314781684180925222951031928264667928155244425546938458934070780078469599855731357193233728284911157469672388469945251309517441897306476658869735790615217276732458124221112512304223643163914797922891757109781078469510718993756522636173102761779367290870001786481578846964272068340228272735331137892801968918699353569743656045459735836424800465902433468475339111434174519820860728287470148078274073819865653496544911110435395953459195199983632260740908706520204340759021345724468709463053280149544622714810547179388765903066314332646117414080559938200549514713252644996225216179807536264797664355250493984262782855433618914622927555664690769788666614585203642609618794264826876743264804572261570465174657260501824279955376973846862320881789781123750095140898211482253419315493134998542831230114581683853010100074908167743551840727418750924744606456072713760962193487433847491294896215221052663766975027724824295035206215667722982854738539992239371354199517772547342513844090049771895099793128899642266198198891066113818334150422109346354159951840021504862646768483993750746004549541903300858081509653722417674188316215867428601338246626842372207522382417822861792818445940218711260648297084178342271346055836624326302509845796504786026928000292691805721457974476365655417196056569266642074293992924665232108712037862217013722402595160435598653949504611857206849261749309989905432942968702243469854553847634569930006495183416455009451771844286845728303453908958254559411218573511539346900787171132492453696638902285137263207556002799261773728780351765839950632693910781962931817698959435607602065834791267497071379662528191262525067770677697843999511384998458696214788943791578234739146121742445857097143131304615394712719159866638082362462775112546900337582389445557328036336233792052750831481948945000559853215796710738422272632578294961657629306546960793374063301115818392552887746499936098493871939149927154252576163931335572993330545614685483767216166183390228334101708501752242690089800195382085403387008373780174972010966549846764360731865170179326119811422979916281413482978565158455409736289376141263028655166475645187549786314244236459284742563198546480133756631384493898004868980243536504936520649017965972032612848035549766982617963875492624048049322712702267109653466134672343441038909999903851380390156239881643886300456334524454172069046587209759241289167660277818349855312626544313045919861029977448268370954819036033960351058160299899877815938202266930375059093141217137545110119613101580832541983976069365626621409599779607497422320171154193031439707491370572919125465187472534720680883822486282437220941764967876712925915826038883080294003192865522598316775394502316783522999272285577426323095499843482319875547909575684355337109193412140126044109455774021275267497101602037811703319697023832496654052591781754026578656995443432625296276097490157605398806945450706982774595505575385760966176726791152754538913382161205805838135977862475357889631728936933570111038351968257986393350096557408503721487736719207077581767298238868425832447168908456672152241626710124907743550465490942270615518768264545489178905458258702922258175938769360583160594368009447437698229024294465529439211536059705820707310829179461087405863992055631790897043863855415151215096080564626577803947172621126216196425138807132506677277710586445205898376266514098438299809511720887643796884965103599255353723105661536247062612987321884565890219952870658315206837866397161898061063608040430640248753089681679325685947136370979894259124062554854982450504683664992877364581987498630349916992699762372056440283084387628199671933771351377410234496494914069509034951819302597247506286201094768710134953385155167176984263415410685699557397673913704968514331131213782854800119962603546322409687672821301289801420014299195848691224340446952537042479963206543956249268403278311433226621606667667904143918041674388919551355374784122126478641974278147354638998161922056338855617668209314701819135342387821928452050679886289749087286624448853596989166117282781454216704813267620663012355718088912181653437857237641205712281412152314903934000296901967951441708166155940560178953181664300101889255800256465599484789181809298484102344461692643015064609887623361985072624770086210853414621157541193536371551837987807220906549625764416578964192596256630995830807071091131600355460736951254279621291440480368901623739221899044710736372883101154569097838017069913577411249206794192164935897668209512930656838074925364616660167236590251022447786828042138695254578391033605997846501235008796321171421380724900803006580493286358083922753054543114639536116874892067567913288521047798849796022758927240899352240670549396479860689414825251976732478952918025059652954212892883504018169795743816823869878940280127390106791062738074855862765963179158685980170142331491651044023631942799486623083541775703107485835820578032799625557533604741356622993373642180440482217349095081583709559919592355644406246338058265606870983064411170466536018151740651301652434696786075512201685254247767557886369101059001766970639521150927078682869638695940968463208953932368445092813275756230449403862539240164155747387207977797871851932885118058026314613135385940540434614579862472533295503678170526471299404616727825475926596294696471707731451975524545742590140188750968562140116032969444074782409488095037611107348516831210169854790233934403480310360349943249274050787502683533184375381736394929941944981753901718791393371572421094365862082338874777546646849305627596945637476546734489101878984544700911701664461491516287529387899517179357303862614562111561738684072745188398111610987508454495218768947078577703861934762195072686382507316861577543076859307595380175507603854614641161461203577014365268377159145291153742215341738724014956473467682701516758970692360513259968379849243298581994930519353828294593987282997683881024060698401133511509355582304720696832646666094264301293872925458530491992633693451055116165371815466294542432742307295167673356013478499689039673580144809668531468587069893083905967152262766955807338737005303856840986629019793687250784085084315573524609484573976054242889761931457580371231673362762833330199451709291593610172467322558529121414346451302992438618301640309495519797668996113967716736603987193720325497305288444702743171009283259258237452608165009259409936384427787182147843814878002663467867338423032686461166743909302359418811899183359851883973428833751797807738513266375437489845954289167285957764311552518983555979905030900679046791536644482326175252271185375924551341996301625813882760335195576741953107173696663112722343445252378126489678883048400349474019645709792064382834579739398770706484926254036391973759649083963837437141319592097107535993844925019388708094426838609035043791125638605563834744782707242298757605115337649195482788324116464622929129400291330373604982838304564583076667910596960630426586433152780113323694736504912938288566920227719890487870824661058361951309067987735518040145015439393467128098804753644511558895480161555018855320879834043627955546188084867096746096024777388279403067553785388760519285617454531195926163117280666186511166122756314865252407080156325814924188564691353281540143597097138076528430293515213007034678229181466413643114307256472249681700966188233464057040841820266360397409467534412907612634090540972493013866956557386804802082481417085368549935710688882908459555862444535016614725171452067440599684625615060860943021946058174813522346775272248450349602349442913562236616414078872621827290603969657766271581191175407142158214494852611159321921939948292375278336594110910704199545186350576037298859917257511131155326513235950528418890726344416190433246032196465448612955683238230708990392708976889837802539132590139138986604184334988986560365283963568215944915504510937326169630339322149487486282595442762228189981624315792018440109714521208557258977589908128620256636710363853087565837798876057064437239956142546295328857593273156482425092082624458171667552299447828309721832534804551408055999882551551410814998223093836548387005484777671151540244350893994267984947598084848619168248533096444642567035250428316304775856447922074531932843165005953898668753691503682973185500028766107671907153609218610802810910365100775787401909316013642757217539657315431555532878169466287326429677237735361253686785020923939033764640889972828353057280773983152004258137232706124764370949858267951800756964894901101281596584578645620777550758587412815186349096757129824408303530159583959896358979595736059131568484751375886025851072816007191187601541929427465194241665738735809891253435145113110558313513634807955994464388399275345127797417314564613457487745223187443376776125950475066262884506083862764543881389284019450122209386714070414591173952161488584741187438535717367193987096303218874869720437745347577527534668622824742310241184620770376991795290757981818942367260261973557845239919724066018406766392659520134544886308109919063558189985822651503563165478582096318778874630100557193792604339714787049436512384094997976139143639331471624678998150941527869232960043679107639642026358864252779463563174779108567674952266425307945714635959920246836896233585837776189454641829449664501322299943136775160807770128703972207914672460374423693476543938494994182125912519139753149547282497123237599795479656065946475375520902020587000135430712395180303892629557778291914257550604690638639683086030250278998851882284537769560162475644512369078190051799647998821215815260805016345451112929692850808267649238029919733432057105524311308524402060903564084064195185494605446348896867783907197219872380927945590126300173413612458048141431175696280444019756576289767557608256899002442531393092527262851272903202178959349447797560336269003533154345612020003787099570858194311213520798617105910997074989816158837786728407705293194224226237258461781000553192694519067670752171898053755936045150156115126616042538018894689511015656370610917227702892447184597415309702300769342939304726980369863572283944617692408371870101977663490117626303191257582785585778217541029662993368690099704677084972328412380859521969875585765719139076865828174479714802838461276697266108340630282203281734340282813517703386983445175131081836023078715925778987375841409621719927189625457534706971850834776560552137193493348228969481540365145004397487712520680823026207248609509440090115052371695474279552273088403361513601048503458112861729652392432290140994898276326740185238098841069755522035922069705436737106041546717436520718411018715011286791456429669511917715297803076317209287093304574687973117483098424843995924357630724838582073807771002306394732430425934486530556196023201406089349240940677273189151700916715537744679649055625634391118272114447523370504444019194212430700866839767443472391080549949372758855577882739542577552360132014118661017641834011919512259434205301902035516392028013200292513255298608189316077770220880772385651709330510508002433905255205549149944419328859206654701265885571229922920787883309001486288850475214315508170259212223573450792438112989234532095624734970053292755747399788944293690100170749059212363580525167736124899844649550941207400643128254119682539634086933444169629042836465689746679959399082871770022475853259770483696114373475931885730369954920810440380753083505746872711064045509093966870650809595698291966970441120329417329442278344465547488094412322701674225992963877297771929042874617160669269529974001532890801826672434187434543887503475773267820785911177491896083877648420267430652186521507697313185176362480995149251691303060987212443743393227667255554207845745570022840580881823245907934390734316301952796376156588244194424150895529216782672856749468204633946682919946435578335602441707394922655033996325970851422402865213475243527358743350299666221365454901607611693977913410908424079107076494250306512428450034865305352750339515815570907318000029486904586491652636394567908528070933354461337270160564296763411491707921702618673146277079157091983183748692956479062032837693636272285690114467438218331050506848275788765063137452300970980557610318118998923385597778818428584871866283949830829276848249586375290892198659375723184983408651664410129167191801624587471778854250119650751859672839636798241079690448896122632460249920160007336686725505237801700260440302033374786935882560581379574840575644352113846880786378728329233736810433800055033600487561571204626025203869244897225255803610087287613294569148795859948403885026537978863339247389741488439009587428857745789131832280403663257636243216704299142694621185261678789083344606597724143319092747872009860287954120610049098758825299101850113116900525128938087599893685308342781878560199088922007009792008515235940605346056016416411438986216917453010838161411128321202263757167757071191323460265018531276221749552585804222705220615897087710231320654595325621999390322514615506845691207228334865986746982947695998243688187918896836312428557133676634323248941980969640419439797249463763171895702992206406218140584574542963650399977848010546917369057477270479112222843439745099773171374667585258463079199791565983500976046143180323853138111749721430142696093713135670643126419230356176851958003818648399722889922909267033943508315734179329329536520870764163154404780790907850602835342137150727704445336363622246120969828064147339234034464347345974215909100316714810288040267346400958909370673551965787488507369938876588950839484586509388906214465170828207264764613081040340927796221133274007113299570915508469333977512070057599486950533802909355936937505782361710819521677039926484450595076769956812006813455576425150452160242888988057619927130588482843034425794066279976918321809889339558196544490863540214916401257673121175219155018265267795620792218794315018466364065471694354051308322790616437499768429432863242929089871891276938283092610223660416715988266423464102933069946347696543445780193019330239758492139862060693896077060777611160484082125055400569943574410672646634642020524262665485152837340016256991579863301384237284072022237144646116819552706759263381607530219650396999469509110304675249665155502503004981704691056869180432702146529126855662635915557957775518931804184177354058791600322935261351453100363695218687367452773031198698779224685939962477583414960654571892695977182203441685377875909558540878757369561621314843115650327366021090844163457414846020960931986319512221796174469655873265959488796256065888811677570769703050387989188168073813500663581707709236238513040072679484009697360135845554675130695106197337255538315914026351429871263810691204791917227383729222548378547097894489689636005267308995737631525762017034354553179789355857088187763820117583039798579217751649917656472403740528694503254066721747344665656991127021138777370773520593433750011856083718287415631947122659507357740778637558867197693248039239454961749778501078009970751988459084428965796467445765738888275872742413254989668059175053375618230499464671250207913826343909956946396588056741593073621555243834377469829605844183981956357656259489916171754989659228344240808962468539850529846061805567430883518277581292522389659507119612030907119955063255919804806440264532231197842109057458045211575319811626256122487456725633492855723999858424640071410298164912709038505537304508112743524306916990123189710468932862621471063011821541893171562289124185324308730082099291366119924224424735167846789298168498492641486267641279679899927063397336512153193643990894984733649914832632516598467288890038318209396804150438708835859000903548922031143314081458471891944528114748989052621740656397346658720519668671671676575736062532305291464140790581211316682532921542106215831686914246189573578961686098852905844750638230261687316619845011180799169247028385959732647253478327290349779150858671828538561342820612461103882738618599532046727412002942319659401717656530281932163141369843937988788619697197145485419705364111455059864284773842389562764738871103870872367345517924771492531075481966356163266404876188712502112360870591071198614432137292142817028609311667621519747303916127938833311344950028195309417460228933357472027885292905829793653343625450978714807108253818036135611586857258957735342839542319234186911459326394434602448966215230883320850875828256758332931242702228885245120847859852561364076093127926440344429581260215404106289256333676534729319472839258127161600869076029440553607289470053020550887514764444719456350080553701112006209694360510380611084520350907194510864116169821145032186781945739505324879468364814173120368862919850357018365718615080833568823094585253704609128498188362249584652025498981184797522706489492666643731494065656846479420979384687465217145778321256583928532370393578199032957414121150995440641848037062514624872211833430232161971421129080285172748429486468128799784864847788100083167057474390297883154727824758579456434805800253030570191598890549515889816997644429460110000750721691586511006028647353698493837112672328229753156807537803232114154656400368728206506619453716814166909812126861513759813801700889475612305430343837554563001774278006298357582767843726857745799927746715932245930349692037349158929121853135040546124424255415032157934100603967656567979686092891667450927089532711486330279708256975559845165947142236649560098211823749645468532901354556708265828516758302548735237987444257130809712812259688433635582031933571653467619844868631396153134622943547748402723046497679908402754379058316612263682998585460618804323566035841291363746400571403450763929946869743919310150679668678369709615909569328548354275629361987100466229247621927394645033931423174173097195942189341025838698290983403631482466110251785923525627481940054203647738451008663519134087689452113768082389749858819971616025514964966589999581337358024101088324479196092071833142685977104129674052766424422606308424972557901119329969908324491185117704034509630232232599746501264234623947308308185627525890924324319854795835709668980109799929735864368813956755396436368442610515184791158207779702997718205831387492927132044727027350736233131725153590724578191079899183210960861309019169007651024858769989091985133734008650655211219909902229376010671366520619953303564799147549266737324159278074916603775684806426840031635452830756873289929738589545805422334883275898331430515310207677688210900223605744805285514104625623537875651208991056250068647345070785113552909669928477932076542317205111152510772743240924687405283086210706227209860155314063204769724890571454756250769420864615539840731385033992851636671055086161379755071620051045901613008398057414295665405795128788881307607530386518255676994575547836997601630220999424386545932192268401417929301575098089648895450547656051311008176884837580314599239133048177315450312375710643846650799901711384993943850956439733260807377610074476924718353998797734953915634367831823129868709962020015867465815281583050673696679224339315566645353122637946876872428668639230573092285010240455491743476635220663136967892184956725360153137813903497492016776844288693058842199217180435959597088610039596719034605633223806363737704590471693667578111599663236216248614391253445988321708802983634718874092706328802835148563524918704486983681930790282390690289295171298320545139040074075852426749269481730708579459537856730961633470790946294849150758258639937512714422534562743572797521758746752372890694142673647084310045573107554910356586552770398578212477022889763474379394534407052501118369059499210217592497601492712599096817276719989551392538250823205124787201337019264857724126093336477337106381810857605719916559827085581827364834156419832102225610153861877096769562189963586793586763478349541374435742755324324221711491014570328126499760417435802185183247164331281249289900850431704983608085982988014313574208092233513810283867086745491945436488072207365464054623928521192261317201051214649544006110748933534426485013456336481426086866687124575380051284546487417769541891006937594967575286895285399518375705036494367255651963809142454405232274061736355660995019587940667080746933716292248884081761395090719105899631916763736655565041674985259071021092331663117502242581527467662561492261877452841687637124164388557415373317596850381423275923734991222533131396639845489316354878747171297254117527533996133218683049938384271441385375517216806863030832612477126748405675877872895948233824250489946052293019331364745016089639918604391107846842317099550438556810377678330606322229321197812986410925734495918293590675607790631963461815969797161705375980404975653356989825439406429813129753090466081456853055536059685048744660809774367282185966872238394733381967554209597898455006830834154383531293060364706457744226246707373750297261260648039038893786723223017231456250923294937292258567241369124370049528703266413449070921291519962401571584520725426699425016244300803476696140239754044433515965518263780126068161326392190597742298584799769382001480655979989374979098618949002070159332156997289918948628825960248289163426225164387000242547382596275127440537129094612165599952249643503397723540146847527618726077879330553411197767364000248724174093162899907538891191090108152763717699154873939272124096683072060788908530453735620133754602443631954946998161365955436923366566945770588539865878529980603916819658264104877470797170313684734648215401930863150703330863719305364277792658142492638108534937476295381622806342609940014794264320668890220546464815320730448136260735502137874593689273905312378018769403885569654399381049699203797271270762941979190682505921165692453972860200909022662335140692680369568170207510332278209656736409514908658584469112849215226389653385618393578429241979906533233592616659110228502343215334721880294767898792568234849066887220749441316376908816383359572534880446831263336182261655272614851501961459745420937799152965678160311192040406761852443399081279401733580874344727787935127946531553926285460414681925020603088490758168254839519238104767557593028033294802742189621041800420786375152801300388734674230376109694890914533999528709230668008253509049452045852819868608493651856233256012291838337931160830158066418668244331198359054721166131489816076791481122014330061041289179967905449971532935904992422524602709592989799141396386255034343338124178291743893265765510899372257518748701533762543831936729040251373243366193304528996690344777512125118617290738661191381796540192381475484505629705006808918583546289244250234037765591093392569041035544499276011946984948491826359613788671369369193190517121245520526572320045139816916926827819169707140053950443743298936246393721926056379601643725615042249660510246737894797302188170828361720172230512236424824100191655616997386835941915123365418243600706607324620955738421202878038283019227936556084036971841138118346622500267216135657235303436007424890770629388094495871657315382017227815515005735633210598268384111657071165210582121247314142090169151210726362687799342169539951189668977797990147805731278128685880400949359525559125982647959035564204535390493955126236700291444300051762208890293318055625352038805801787368438118007401756315744858484292008798385096803062890721598426612834552483614404695812539945619182406239698493534559872899133221755210193323175532453293363845595718330372943209546541840646608828261865204780636432312458918967691111120165161311208119705541043909831382575648406002224397562190339747122611602601409562016269308341734652179782975729093074950623746796831129777599339925035076629627611965101670533505044756730605609707165037665030772370704204300293384148911984737107029401793209612391878562920449192237665747799053244476874896014330515086610063427668864152481784353945103495408376509060209302324274093317090578512298161696690611181689153773734145518321670963897989038213709281988637985300707842216276557414455406873637087310389635104485905113100703135146775144900049827016810788867224166485928265501074833732316369435221403717867196409164344378966489299532746784596133741813041731814197862130730355675408561733685872118581496136821279298420148336179658147634503343025164657029132065779398344173682996711171019656293476039808488059979305979517239123841685989223452763420732639335110342028305042239466330013519018944155378430360311699414847024141106166521211215983080772363684167591183227734054790214999684018250449864415980490279814075481880162148806291524507209249253067762162630732164053036214818054224033252050729223444680871689457648100201885034019695033447339063931840773287546847466912841746310026270880058571444991933779542037657334200333397617546661287839628560160051721215671206382198922481684628614029357637805747779355569594016856085780857733122398787985430133846879161766186734951013582361705446557019928059903334352232330002174457184754571285470166133785767093951774895494041465956012633556503660954895132073841849104468983963505478035037114012843075929974063060173055952320996673193465246444969204682747300061651181263187069521552095048177262579108690560563312032182401418257863868711431003635905063225384073488950108334197597077652315475995430406052060973705596172073593986495787768908559403276011516072509597638364708327362989805802451433032983336018270651200870904204977525162165764885152609677577601880151430429861514871135875424738791917698627644222457780912810528694147106851027293544329569160879205281687539720977342879710521727200566195559154591104073779964218714735299892058905665691204277732846474984511588703737498296356013898372747289370042871835297385262194218239582966867860697005447891066661502171127813046877119657580437230234032050799511954590838321440664909407373824756000342536052386395619920252956727087935965701321851612596830145013475464934404333141188782145380185498162182508731055130763641137982268298213159989531325275054634985468115505429020934394227764757097818621063207232646449923218523058096562342204591017604493045536976419546242665066959262324904778829202765685799511685351470424528922590723615863153274027749429815941659997711338783549320287467599507529688795548454223529656610113363003108077990435639228965253285307032880030532706746430224349094082635725867949744700078077718681029533383012912026591973918890141847367456284973850192182186095382287880035240197706419774367873033620395497564320516612296293431131634669574713787561791985375509522081018130591618544306686209525277977494187416294025387153424153392731115512851145945803546351585956260297463228589778431025949460175779846532924520624235829967090986088878975586599764370049905275110801441940107624181371197896771401762554438831959324740057637847107794734478036461210265824903180817003431893665301219806452599293605241773594688819135210418033926978982469526046315861767718907450727479350249331777225057677450514039399954435929464333726192769767708697416681107559096698984109453963461566262121558477924752998692467667667504784176306165265442622835072394177005846248917594007922591178705823627629224511231701520541307850121904052848224743390430732057571855383624519477895879728182405637044875950023131227518302371942085486175313836423837897280930117799143883023679961687328080726925338695754668937149478964526119107443965856256178580494586841323162953055838162151452954320174985011524587718663028560438062482167917155674639641090327252726533264064112713195627105543573711116771488539166447269058696977284495403943383949572150434593067155602185419630289241918889576921364321546403657465642747746383293025603151364832117178235802744030718806105006430778765187741763808452098144144323523310401905916656371812004264176721676751979890598358297718965486626974142992938483805506959156622293955552256794523312697338830122073327643881582828141092461389845918282446769060580449301883506731154572038737979103423291778568418330681146124147344962826082246473147107422176353282105912838387569611137701485163615422660473343954397429412041448112334798355086482182761463356683066717253941111030418007474351568056593816955773535257681928091306648858182050475778623748865618639709286304970355962363771790918101163123662149711124870009078253053700055095949180047790848828515683493407257272064669944266345145486767073156665949724186968244017080641048792430617553562428314638560607966116945964692505003257889398090459986031999986673746492936376851749701138955849955729369091321819705600066912965354181170683803930147579666945294523883461506832559855750331202330655977470084123794827823303200185635785817731820643427773566001683009293012407876382279809116130368066983131406945525222372912602000537974519661195698092123040733530836275500863365882571126221893399159262553761839337424345176192411118027077688349078724139590455858726358891342696720284250038835146090116484600436259307417054678447760624574193651238414259837226150787944036464053678149758485175835627934633002539462699528381939736009295238224710674868184012296144958010074810236932517918789044896098782061993100282031914515466651389799251422503779778674567455881543085637386854104849349447889448308021619832448796985874050854772703971651580158967000755263899935615989253650582797847771907575132181679866609667180455250000624193166634254318490832566576789890534732967163673934206298460369469370518863293569858391371944484771869390440061683679829848504715597817839903022850056452140616955946253686245549408397810544929936432947198162071994585109331951511771141899967940191059884075389354846619945999379881507430167183064367792547523991251448987250551400711768289794655203530252208640805855709930183168122107735051231848597929471315338643635963881016191393223433856610582730489725729071442459410047832746925474550036880464682237799653637963659583089205050014505704705640352901056376600019091250944236044339741621881436866544137795439765865444665999285726185683972484864361204625037759480659899942113969239925192128231924044220974715886617173492424772597648599337020726966566215836795371383908865954893273705519219043333761822330111697241413053464813501883871038842663584984838204847138222511499325441602853597353582978442131983992276384959649568606898155773708691036307321746422616100273107696686432802828131493182668199318614403813984253290558374203031009384778940180266360399070226801307622187482155991281981148945267872445697079303267793381328092363904020437895399483282468364637418826443350610120855232311500545511278098819863349514637007296211203591731993814516377126741784864787070117986724565799457392032213690298283492061195233479427983974328187351046557021668182560185883107154601344437943166821560391661970823322091392445746723255583195741251340968409839719554642084684512433987764397257982151488688893930133155917204801621432166442456537964701915758418731330220410912600279869212983683948029697612441163510145966559840790655122743421953383695154405344221366561060523024815512229369424057717561128176187348897029817407611498691199089248196058956159245923116036260875566749910677499959286735278576917854119062440112011110521132759919772527249147685955243571536913764892146388225421283122463425374969525892053936254896818555541548946518299383934906069957100336737239928812338338682552694344693759676464854846833144148740063701820115352452648447234237224356977339209147716198866397797470073470797391501287444098185502125760649242078543687282206102558014928086563428797217876847324556235599347215738082452830406715325935172959731437719428157175934735501178017017766676932112937413255465694438719521337656707128523204375415529753148789132832575650320713574963472301670222730142070658470455804800247099251184848045420605963638390422897443099258178196644013212671291749222203228153215212876880750869064853269543638279773280712297562477069001067517451279544591813984788000535243322422357364251897538051779144432909759722888600326786646938549115997666949284136219119622629985563124727138813375929449785767870210460632219087962251582292119629967405179101328635435034832239845115093064480997704072575234016140985186232993273514215994989264123408143107705459895037748929227712507153330461067558201559109203489680983742893208672154919962477880137410807213618332545941421265682653701240000305743459653742469578746040776639385374980536754343048439480740731822787875299567044283869330166751628619090673219138922331262726110265211849513116930559906865629587982154700278902594169899255409425176610368141663806401687166096560633697687290416046120793496467295009892800033049978481504342628801103237559067771159520700172500476487064111069364334691541461953775986787691437327039503124507945780064899436514880556801793400392980180054399440024005834028217843076774752014421150728921055766952635088110065759553993343329586427555192338514320056722763122993623692536399873728444869562478290042698731605773273998494758026678755471320384412208049676761037329768324779718495751264252023774837572507516439221835211175803735563247826799246243163631909976316897149507046483417050171638263729989346467955222525711390076745380565588101859481191279394348947285702424629509851076058057219854854673812777400126156736565942360305778233838648219914569505081595149742394018088187188149588718406713625361607238797947621891769079370044964057452152294987866869727731139098038323978006063368059754620182682064470584441856976484670443078915670443926067752138142410678733311246658027483521503038369817548180140112078810921243204381386766450094142643661779171751348733098179033823884909962453172938606077724556474959962293475497323803377907128736588402767406066843990902053118754259144702603592739416488797863704227586316746880080534336713064560896368050752335777618853724383903719618803590216068490477875613516812418703376239190845818905889767147024126256277234920617908444239444301776175951205502673514223992636031506161828691735939168627501618576502007558754962621416863145372771722207347790377961438145714641302425547221546760295910568856194551932097050947268478180062884867648646500524764957702794171470803043926780991484278476821340801219068787688081836737249809139049435636076960195949921973359012489263731948974442120445404767146300677234939100042442811545309761230146759565950682833118207940769356232078606455125029423000954942796555071546873927614482065900852727691608917246676018297783056919670638577570458291132039070160508391149104015874229304314194315307322017512184452490935984676229860629187974047137220175785502033173819487650281986139188551261127807808165902145524258896931782531845323332758338985150949493816151058776136701510091781383518450869272697790585161049744482962095866129709987690424734947811413245847376226271734444834160122859198103139376620639760307937338793896344860890864415678450697203991031511967924894932513965411417547587499643579607459986540046218340619342981604272016958995370295828520696555548185147378145928835917324109415094351015401755390402865041586203222728259454635748008263249571784833147549807681775558829609984017791753927008877656051524839909570380740328724174452548795119786917048106969046379579130693942828648719009541360839210060395462775790673789477907801943597917785962980825493162442721165717540798807757485778214004708415513877069601628233400141957430825668548131829699865102721985951162997575017430478891805788579055044283438554112758359034161024510080563532941014147115779146092140789560184740986999549117061707415447577139350847020807343847174996450313301184054654790565528517609318964949435365348598213104158662214604577866161759603804505902476625408266542714588254243449168248636524965238777377601615189267297505280713644738286411731175596895604059238519528620343825564868428981716544622291363653423716668193960498148276092251639686852932316071033205180534139241599654444432552086370006728035690239876395979211636315160425293311818883393216704556219632196694205433221462998718274398664548099840715391026780583733933914458844699136584972432821169001439607287363317116904371116085196942025480822810948313344839445357977398984497400991464963030414980367303856960909861236454678087046872284348052097926518003849236928018745895560884418001865026230260941572726318372960803193610798810415614106445746562128963885036736744064789873648859606178581703653377238544717986807030426226316628748666851077300263867188074240497760786799250339510347418695454006512928638771585741287933204203316385819341473438427153521890186679864260986220395418423491584252991395135676476674157615855642629724736238170140211796416241127209065387485468640862586847721526881497333194799112348367946260873602602972648549030473368047403915149644683918587918598856510487973325164625247402764850506169928200611250016428076184201052664540600021240347444951409084019380565694853119205978116625143846148054656420104447058948041662357698031609923536229024794899607751550590274057776309507667081731560497161363585125373397311126179838397063003355407977930994093088289385582912303241838187970629489544167440274524470098062245607441068268569059430196767515369018855223057013978535324566553591498673783353605018013960247055581176478120561009688280841207677812278948831703076014916870524895910867549084195993920104719726336900140035354572680458051507033027819981636392155793466639070024264245362886953978329664433539097891891532774334903517657661687075620679333000711554577764394428450222577736758007337745203790815558485791313120311710695820213838342391030574360982132085289340574935058338860785154670586151314695246411687204855584236037219155012698904784421522321010702922074765792362065496152514037675920372848779841629483059092261884996240397425485091645092492726673619917142010989525949618288129626293318386113935877171827449060330920983102288477824419712055258194243149392112988420424020211246313151275465827701113672705334935655053675723778510477445979578346532949674649888880750779196256484465966041375683642048204342957699525416964424738940148387371564667661342050103032304432992597719502163527090955603025927812954960275126584928880978265792258884382529390354837852303124190953364844182793917050451008772512609016999339513635538153562567352731591036813118211445239506385147949845023126729371573474867174601590446489732339657238809744097716736920850812672889368762069982242583627438883491956802426256847263511823967124082051501931142804195728775226408635293203923708515454960015225470279758070468724251004797222161503511979721489911874859377854965625516722075802666178526064731536242517940884470040981382185838752911328465094660605445557519680510518149015890449124704630992147109088388002606809506039044430849840899725821557909048493245195097525293573032072622901037356977249615568278657872920168959121384687231435127381474492469597212052646378626048080422977619220464754820832829065449895648597851719672138500431239842035885130806318421453698412518974431433303920677110530740031748560626117545517505572088728514869743006645574806440488720069138033915110764769744028741872599255623814198008301852769320885217239874046137831149803619201595069345617102285530879993276541948281800554287312776663608154989701808737012318664932806472081313164481102105470482810960799310305554050092194629376395093645987129078145073753371752805093340114140198143430062922687034015085283598596103663156663561725639631379111968406145541688569025793330946952344946098544654826317197335112201589846494048061597900264308733907273532705465125546725070884970593846606778824751940803716501180646740709499021779531043195089182045374310666000177151882729845343090467696652156367085845141170498284138486696013726570281531264238153622930217521811823296545093572872366295356893988769165582888026645029724563378288802925306167611372148457815061426520601419239728024446362853528484841997449484326122569263580575110895988527231938402883469268339214255294509893896453042768816382535152156712741751977985683534285753246458333873265201843077034441015968772291119874819124689554361904504412868144328136333249432279026546603666252375940748490538633618961342604710662828032858613846212609707812863699890239542786409970373334807862177981652776110777528967789088289241822407352071697829014532894419743112369250381665674007708449442595605989428765578734801457396681680983769921427288683084189370381686435501902350936790500842978816660901920136720772942648705249325762886655846315103921398184180335118519426373439531831605804127001807020155439014350504007963826425754698290314486785402198779355356098727455936525313320202463773321880201999730578569117818359977232880178668815073113708705866288542879668826012278708904635910833670051638848065151605037908924413971778971734241992680337236116245591012585681133901437819616297138132531255905889454816996327319874186693518375967283405238452297024503827404700503187943009636290761719318920386360808043415277505366458297637065401844687303371438489588719608059165104864638121141535158511484747327598024805322572889764296045401392771644157400123698447316472014059140638825055139784815266030008346380052453421567534043340365759187321639444609729295178488437834385274455978033921257221447445843739056711734525530938018831349869492880388898580633886153083262516306369989850992656117498037625325632294856987650927138390555313249449739184352394246806083297928968489845951300187317167216806471025456811394822391018028481066023716222466824771152081679686097254262173967341187648313447599059453693838291748711408523326079322403350767423903469214434568637187125736068916825742017063293489501349176124441998594270881550681922226007536194065272900401608072335194809868422209526823347660027148545846630647933816093697976061333571409765132661641075886925530582911710825072316180668308158022670763334731649287246357371132537954829692238589120017320477381806192228294560757493132766174685492510521473037440423493388795992833146200361137316522955624822865555465820994991270959394421733695702211526372142664992338599181545495878821319476337827510715922857776572800459555746382823026364478953185553542931728483515004878161984200995442402180572771827268179776670730980759913373465757043349606773673927504286032785108933152983875453614062848950522478981615123346343996129568345144943796034307238123668970670934733422612137542889474479500633941282425974139683145367604131961313460090469983023848975302305527694524204807427060901280254163675467337564313258425924756248889399799931084590343853930212536083977350064674662979807078153572516347419179595435557182786733849288014034140333299608925387481225004624879049489973398736132266874643885389929621303620581197523841971066776620266604377045029659106928337639621193464993324066627248246654750808700818570698250810848744497748349605777423592393318165907614795285521668699357948900674518290017115815570624984062725665098389950062165436926772331495721735908814108259108020631550222504665580874079613775738494559034676794032973976813124592297473904307105724476624081064403626591999973831006150994698484826808882035725519170844197268358947124103564925662487357361406597013485635971435880699612115891733661561724391295867338147218389991110849345412638561597191542771564575042798676571194341559510760412421030032214693048363882597833114299206348747146029913847824900079310716450975993833447509622735427274165509263892183003080188568709606858959627089226918921590545599393307343354199941665563514234968727037337447354365498230446343986581234585838404790061837004830189042458222007662510463737799178365840392756454087726065717772166051442497820498937224894876119741913864972298709146563055740378261472296821747333417208089366680932935409835231105714005491141275665064721429445871128992156537285039349551865154318122731749739069529510888079574505110834208103732516589999105737250387365099665478541660496764863628333327398735599918268860877676099351030386851365409013932451134712702282823311421679702647556217088985894595894668752202266014076708521972310224066054567699132802115995502143294899956986206619051498738948348281736096963635155912473467124309465322844109643807143111995812252644150241759565844678429424861332348833534417904845204612109556223666594950136508274376620494296851857737742908403768790662221154322561917714642156030690543523802191158303535319154075691504538529347049637915023118058760503387967238571100472670223011024225230225331861124056870554510120589459376899121131148992884559364739949435600001391195878809374316319163760978688376924831945903410724690205803112798971269910242009308493050390836193881194944931548279180243957526785092440994968593121280597875548040087350231473012763915939080622649158123314104975189695976838222983029346403744800162497603679224123604792248483991140068848056313282162294827287352405702338242814866002974335890575903962235188603735809011887062643538570193623776464474594220726652081854121681514608855695585097976185662476339628710143789693693078177942359390725841817549280325088003612585137539185472523393673886067698310643862767091683932165933577227209299835509164551696533544653335645300957789141432811226052228168273926888619243180126531003209268955262608691598730681636618731376723694196929515373591922970449457108006225080274002732242240699289994334276436469902091817268208865601829081649942861244447975016546012960267516357652763666560961673015537586651498850614076180553715567477493400955772134480180931086048274913194217615989167396742911059969019626740805767486527162257491412619702141992348199005326494505637592504479542207205091958009591203556416915300430928922888199732064355824249687203976666830846733878372300255722360020987290130171003926333499837813525280765725127662151572313490599814482516558196984253627206891663502214353104205678140371855380783140928495843580419613546525746286670634488354937221681991075080695589471532000601612779653280242420814211155937226665547636831918858901364169752921407147883886839753464755386441278563102961352110230536586952977996212098034926432594172948290591797079989101491230840158281223461495514711428911371932242140498005261612469786648322833664646952086981897017035335290224598609392916073104118616323515011431854610590425908115292485929993943947728734076454920222108226577157763940524034110883168930212780142260597129905508751784418744332627162315089239054564092378592177609396065282035083280538423237476190806754301010601480492901958826800140743706522822693688670149798002205463035672375187118874422490163582522553893427295905754395545001069218195524633137637841545404024650814614911957196612224668520059404978217683272184131200200591465345268920157692718051256547458394658275752309762692231367532814831789834779331065778073641628056045569131075516604312435400332646317305279410366963723122557867941318509078130755395966163715293917350357091714298603285531315449739216063975474619833430932858119977935877876672591185071283945548470400715358643414665259185030400444725786577064145166959125040367553098600650963167264239162592394793867693676452325376465504530963382989731429393322971794069121624337901856322052228582914544538818855450811105768872435044990893560409732788533805869806035143407388712170572909710659767055942393005074274387849757619736188398485531654264518022522186329499551761929113099701278067334783315318247985717272612151858532106704182390073214561581190088270817109616066646986958480412573932740868048547490137062592720381553079159011196388550810131706306391179285064001850588996393420374923533186303188687070538021132929149677509163177536798154853968181627998948374522434430332833886802645192658302937264855283924606106015753839697866994076547175734448374906297354253100204059665508568602300547404699515311149292635866792098206236045045687510222108444666602573288487458707035751795441131094705094170073053325452427453214885826272267726776665925858883437176767578148518039123249277178326292280732506439661783977184009782145312779159266639213303895101109505286114972015943111606306903227042007480921159921369548902748185053340005969312016354993231592707452646704721219421169376451407936984813873843636493674050479866074611048864038817436634985396663322954371504426639752554657559968129486086026933562480216423793872347182699112360051227760009351524145516508185039770129934242985229089674428464207668864011290364410451055703101041858426605221740096826215213807132867700764087151710168130339975883608708210440167131956831080996691671962901475343734053446516465929454764219464719366291910089911096823337298222285206948403631942090542861224794305930681731871173060707319723353866903528141750866572559483996863430697492694863787147467861241767771528826537713342292256888156544110252990676768652235348401333459202339368981704271848939281519762809175345704632016108983701441377832336645753244481521904761080879844095939846678230758332133191659196662397310337547368922041997358137408798848367888172535390663996079515315529629454357759022576138646623126317537477854743280522446507466104020454871729016784343918686476355952091593352429830765721398364854273789278340960777073184152855601151714487457847991149986350298817859898105998505304291724421036694490717748634866781656111497503010680725656995683899992284336676886750799244580562093724640130425162417733611846443794394553966996274032997546766215865503843835434086891316846846645245590683319941175780700000663894502553465960890455541262598366146330057183213931129555847070592172552475276221217979138747245385289742800449380911168714463501002872759210712215787731440446236161473529138612254691965938596980625772061384801215239665438660143869712069450094582881974589478266607389858690195274157894844812298212313620305834196421215644277045956695720406829481198507181426483439396722213262091230280633870454558071571741086375764225660827623078612654943718941625290612357179651617457759739117641987547692348789643437534236190767958725675815166999664272401144969478679021513055726097773509720643578265895421896867836352579765946672602229779644315781213474691180248077952106426443656672236069809776444151576150917497736790267526432784194379409259053496889988225462985091018215426237642710622705849461293354689014199742656740408186696690047979447160569245260375139777486363074970708090378836349663967939168261916178376123531819482215002380100073476930764849344045090056890935515288186343507915110649440863042058237502602630173800956355665646544197651598133953027653772947848192487550530699726599968941143271986336990204259402341897141905814194123923857088802645093717075894765717951317716513364499472672118349138684745232902216897826776473803157094913268217560983232541384057148915933324845564307362442935579816420956982097594896402383191821201115477909426498534031774288196248472418068197241777453992258024544610568439284438803080170518625117631340399779923086116198712741778426689608306928261549937918161418805492929768498867542890529664117927217925817228452950365314657070871183095721195501305066706636915349087357611367490834011915236555622150743238260512351228436218074363815567170815289375905085152302294509637051726923456994621976319981222082850155718230083668982181036127434376874057325240231325950898230918620578893491469820952185052611326775281038403587455725948182410096846355461630842637837443312981408832989711034869328729033129102630928023789745645973449641343445541728343125796196964048593823676307713986927193219430762410532124425431050207485155654672470991020142267272238345178158726829159363681040296053967652344227950535470396423476635838443860394332047830571860810640943227394246483972415702356699457958135082079719799522670228403412739837181091807345120467675951474225775524922813253214014887381703705192923282154842372915445612506001449386554583430293086878203255631445383841840400358250243844780218891655728166159163825199195914379579083145056825039826333440403610373957712635332305750618925673266261073891577025716351175461391273819124092560760820185729867679360132283834281598592648869031717559621798706144823960199420442396975974160020157460935400142437793244244533578489757927462094235203170858626063753487911388069658950734742388119982878690165493819016135386223281624886720969104784467073326189711808029385018413093234728518297443917448260358685375546375545339507004817317628792449795680072577285610201113203490995735732252810204290930762574772853143443922147645485097913906181181785418704436158849560222445068514795539569994566296847478754408971441896612276927595814478655608594546181976955756080647839740744195592617856600878732978557714820701775670502682942866040762461245889888402808777001385200968318962757265653484697217136891864567143819894992928277541461372877116159226901837388403644440492635229793544114329565262757844011695720423640595329287420705310869647895752546504622369234070343235521080887591643834582891639708791469054784023656138470963129953431277053834251706773874165240054367427952292887475053019050297727848439680801737348762366005167943457230470313735219153758683109119323507192255554464649947764729632844929493768408390994916394439972593863062918489729516966572033695535408575445624562577894835617763668685230099132403507094111374035309069795099590432917479193435018000199709748634752660305344495333530643368241323909541036066230279128611657614990374659527467797457477195087344411265115478537031155005094058936421995214406083020484309483825376202426857741457735241870609160615060899401806943138285157476615985423270509835179907187232914177037561587998865961110893989398948120047299904754124248362828960220180685268169473502214593055229096328931222220894234800317576857668534459133114252272743884814198086786713272834002442583529121635686258449346179520386946699731135463899084155532442773772358886142621281254284594882920000521255959395684427903973687458796532865843923248348264099386329448878674999315445789019695122909270028948845880140562579189826607633131689509673777992185943724416288399031463909802293186251055904335691565589269948166902481713145880530496548369608618108771856855629211468689338532572180551927914105114375807675823121250770185653164353405464581323238440121075058780370710108060868636369022285819425491115301094707414786636638641431922191249932889108455309812975542448433913140565184915991126533013194449183988770565146417347361165308439098626813753155997268832696599372279965150555163475244446442842615246294825639660170609935833411348830053912870120849681465664236132981278688327642667288231074056863691849693339721418987118814189481368162670124101488182891390132693213317923600239352679470581545257303576334391737458020486223389104014626186540744016357917439739088424286042942074424049297819782864356195719332126423805567219495670251208862041663864157377235015434031818035353142080755397148318701208433474065264479436160612103838822708003468286746974860440171633594244278475821869868127730211515790413514432783633343026402971455361787358509148346950681877898384044900649924359263190613683507878663570914605275632873122504784005187579640227731391323819202007053468334434312542140759108016548874120038434294211152986331805300380740998357346067184619424879072822271255876403995475199487614801446179759442480162832959436353278353093743807616534237628457275191659067786523629597868144539803815740611631192272373055307201250147090178239702858899052583546734323507559652376795655619220263547196701961920730000572728804983032540654403280416971827518095617639859969429751462465230757533921445650884681113830233431715595122090531823052202115082687477729153767137490097172340704246356861033789614359648398076333430973337823777612872033860757064532531166079360244905853157534313240932588113863376897578579294673000769564183132898678661202376668005633378096188245768994994388445008942625251049953448634317857056102741795258904353818434887516633872229423412265971417389754263418582581032695141169899843499012718943706159880872874377873846199435579149070414913453791659260316307372964511066464196512803287476663906661375445837875993512368991864746063328337811586782756757036001190849890204833059672658167648756501039887958737420537933264705318416039278381209356953592066865793656644607011824921520093716691200478187998614079404131105614407700221993515268838659228465242470228428280074113922390959202663018926724112958300641276220841335857876301599303988459948671710639133080333238291403112557450840560158923720076081227498376587431814610868695126725519716855777044713649408275630336676141835012545434137405485782491457617764375387626722865258730492285767192150148749564695422897356450670186427986640619162419376330331406130550397640674740594739428005291501135956200844817697588236545608496960234297261897476252105786698776987248663622126894512949940921884053445572433490637957188639376759427379220101529067964733416724154935867881970409770578625199340063296608581743624015528482099937233074308629197553590154048906928529758295393263379420569591209696992325780394556379033727513181062752430265183034144033011118830792031144450275171717588845336468663501385188854975909456380460236361444403429472291988133667937672042227770488333699639869679866989986480853769799572542578354567683559473561681206714310338390474660019504385580418662330261958567701335206273717147153051596259707926308344769918470103037239108224783395661058589093892290242379712900737171615048519124824079293036796939837661891038220770615762180214469713126240822828633905719982568142819722187251729724319703626357466998795039466560538430308480656501277582413747475431238317933957502103592171103510779225157422168644755759353914095417425294741336116045220775384617199399813625583899602394446084321179322850731864152863146556237576837642020164225926278720370254540821981387744258137520056532342365427180307771019493753135350543437915423426912693335028277370468939617160819835096124255493552322855006751127694182565059792811848673942895138457154565520349857432339525272708672364217542043414223325508095805688741038043671982867951382471472513459992244711057470591650174861725273148505356453482940046622835020119335115433959129811174783637570947029132836209053485895578728940055043785808515056450379238435892540956453674045370681967630929294903784455829839042667975333316594806493474042918807366979286714783601671040301859234003021447911926685907650715995251676138472887471881510016515780949114259778175184704234836936890173656158184558360947864078405956777668779214953794366281933225418431555134866973541200272115463780773966401761763401828394789157361459941903754347722995950302398726483610720835270586833264356763622374801306390181775605913901241259938358089388938570465024847900123124433856397673614955054009371890551691031018740235407374122441133943763630275750045938629752883296448675590244870562973838216627045618645237013645308830982646975245783467449743225177258815721313895645236852325681426510867398994148555407099686205822273669940683937143053560499260909376382409356389985367607675709280517310961721878655568777369362648100771982772299560396914407499758613109187329969379092212052032735075824441462763812659177191385933523818841244212322855989285141473810989033525376691398609633297239735018534593529559045371227966030793555586705298411925611286840204970398775548806613943252825035014925990314878363545500657172689187235439658388913453565848524394960856056588611331664045554452136735055267511269776979213550548143868010510851248454494410845820889672732299235675774363466066062489812873814492352119471634916592266528673652718885457666483536074383988969020929478835004114123250610921658746242103125965882213349199002002517447816057870171993375184670002157486990384069737896653879714591734469311370993009553260802317238234770423195652936483192689462733390934959410127170415165213975555606045290914782297225081552612841635050170740407396773521245497440947813147174094412830952228774320718070664980687500467844116558523838517325346347359423627514201034010433094317519731055683720916780137984989680596724310628479231067356331242477523733629224505818731481788099529869300505426985930747576355218952925181154642077617880603848560051026092420697813160464503000923829524605379782327789020902192315028129707934945372746942268945272021049672275197920187127362121577300871681351436747184139298539125231423171671536584859074743057520513760000285542653339451488938161609675078207504773074048433120658135326077916101747641611444539990636722520829765675451437167140303018823242845764762647325006924283120794688115306446566592396680337904580991373407238280994097217206765863038833745077591940509146457667411946975207342585933000643527438087905186686466255386125168279378177406026978967751072786637949340651276722991969231593478690301046426992066682711941734377731249203919488668874462506448905001658809801694377547078955983677421897871824649776124327246673573027284581426850922575721299274074008745767716149301363707812883945345331116600802979418168542402178684653859365616565670570981298852141342508611578355300731415005706011090457508298099924643313309745967348599775342610908344857134512815061756462066627645973452444196994088491736462693216894121727575142301165994532509984132568717341077556149543613006976610013199779190064326792158087265462913828154672645228855057967449105960670568734213392101615368078569494857018637824438999513841342314619054887453942182579238075508354494778045520754327404260520464431996580448801472980750470634537889640316038225321834521719240300766862444944411333194696541254978430076049499786995586464462921867507404419272968721753932961409373707662212461195688455454350097563322514262356387132972133865220240118868716948054259777919660702752852265526315813834381232965073367521440679996422871002317133546447139540507526654332089209282395608610880405868529030490258124676368080340712866456173283372844810739783743050201747332108708468242174352411998185950077222377377669882119805347272604359699562608414752724840586672590042291359453417667873988691775198192526002617536121657073684321242213714326702615136658299274694342606572317910813867373936377919741042773774059210398872089962285691730724996669712282526297609817933493604576439520329986723075312639894103059268631554835586436771743434609191676191158905636503167317078286745614477914031702850669712379971642987232960919021886113439659931984450627804998250505789595809062837270477211123434917368103102528837018108569559250937932457299336133523356407364479152730254017984427292958818306616557332330679038012623938942185898794358373190921310231030089104530475362466780505217268083556016578371155029933787571334091441684829645585254128896151820447300580737186782404730867294315994204448131880840944090581226474104694262218626961293541795941225457436683412339472660512775528399674595922886116555253024859202507048455036711451684936694228477128403956768674796022408071907593125583467731054583559949777651189223461456467075295614864613218574025734486338996612399576252270168234193116336610940459561344082498712579577695308233315627131722756882483117003771529212030867082830005880552045378272458709804613874421368797024452537626897198335518781833827735363049465389072038799669468256910714987892481457726397833198254524921882179878710300893424576421758353112089181557603482875711545725721619651545481303414289743979437525292756793125093883077438548738702880977133620999429508359408084799999915358360981844538596366931226848025220418542512089036159734634784930807924894791495614393003862955799680640111226229395530197061394280059925251744833164488813469437837138035187687786819608891201334308591740909672725193584159495302478627812860981953368057015652606169602055712870975270529586343855679390831283739320348818673855171286927036651675039610014211070804795038359554188347015194564184084856304500607861386240811412426282510603024305484433929635220543988021708326420677410270639847686587092140674238330408830824854655444194772774318868024804772522904015428270050264563139272963027403451112009393334675048256587165734248546734343079586750139553700766599726436539634136807198138385456169545177304392415434312593909312845004065793734364985740892845666025369892850857763136462573129130296782699855666014771239985157066341583962741210166602093277991908961189595973953133906154373519071147955832271911387224515105717284662120716154013867046603891291052333532771296071379038241204332618663138719533664225128820751008225037536242085575768835060537953824634031637629685936382666551135025699138631151481346869476515312954911952483201133227361711041034827152039954792340260849500664378652685122515969704318248251755807188631292460602239383239987024847991819358930188774695105931633981185315118116513500037776579325082341548598716315232651505917443020325122143902523870400749452347368340799513850865665671544473753076382605750060780459547819178171913563425593363474767194456462484224477854410252633331773608934884422298400277512056863272846464685215843085899084492623681255995678139332022769839607285913264457296533802170975171015364123784837884116776856861317156149636347285080554681888346155647306313690002320859921854851307606811768669002009379503973777012042201550360633211535168388740013501043753315195056116230218334813826445484979886881720560503975294100778194089585936784143267777874708701930279074513577843743797356100223738818746129028038351488811036799264778193775533244389149987475815490137565562357690338660048339546482309063031598444270977578097796742085445331429083484401852780089268581493376255149103756675117160742612223501603951924627681812392218578649520410950508457531755763294967098232443407249467742739714443135525544729638299257142063575537150102284560794961900272888928924783926737411773275453014978324588254861442544762661866350005703350727937626652040513854104367703093895208613690804377285077876669447957611430066508844209327961622190884051271293761568658711311551481805391024226606733188561067631259249512938035285580377476110801854780407615225709669961306883451997186348812276718913577350704926393433587259422256161033003957691215031842277552124923563437796116326009322042732163802488893125548864830437317855322764211814707547324037478722906170762873744914737467758900371774843298512011910930557067474519325896584257673548174133297399864560064193140869212498288285285310125353755289428805184735276329439669828200777316372580032568365847032632424839208342654884314390620670598622125112339259554016692187592154501624530695146106202330190510636066183389235357875504099315274388139983913857894255320666079666310967724896254642276400672089239702168437484525165553195756999244741950929600296849744299649435903746881141816042061614265367410370037805682034855764349151420940473184430960349983054280195995562760495058931535456995270844432279077468546621530530772759858316415707882869597300912506214747373425764735433209910761108822636891153238976438219944893972021065164016425976733341901900682615989903068558661809933090054507519670537221686583776876584899508767076692993452315029246110608848127950777744199509525802863198587341697087240153812427575687116501295689116567340889853474366133232830373763279641261860441477772233152196258663806403109328508583171179983192515572740449819972507645642019597545769262738231586493215854663512145739508081788511670472714084747030928212307207710511398880461731622127917981333445265220524166361957182612305614005267911467870256540316435428231296104960917219133624624446528790177411125411741521335511237913445625088169909950700951885344125547232152183490376185270127118826548868167394064207277347384698151814951314358128358309382558843859945230597310844101015899653364903128244811128775964191029775047040880049074337482286242321295708654169865504699004682200470617904213690808712621640318664836108581049945359941415880201203659710235078712792162912532863437824315011907867687091381577230165457555208324067574506178501921025737268820106776164341998913599652438150772024550283144502232588115064936718461862651930539657980416549262334993427440221534819362661840299705581824963906765941103444467089443145098986850670193834386769627630742585532874689694012138721839843595203316589370260226867592939754074534164166526309958974218872059016715842747989921930706758238690482148140973547525370093385379025555390738776337262926615465803444336687688663907128929263189184321548396052884581861523340994072126426793343611808051272196952971297217242378177525030845465758981175158936904678514874716484108104194743653566920856448550215308028998640911790246963512091430987407002842612775650594683482014000934628530623084229486042837189605279573754191954611432520787548640733437150662558693217382638616968504490259694772330697879282973376482009519240037000731225351248697822789253202629519038650851129096158707751725498571217237225356869666091341032134543666235734990079216441059308958243329844362166528030572997924981888221072592550629807709086408385821175467149692305682008875519970521082280199564223688016158425091428817701379785649748467032771378152540688873084761389115961060850382469380888259857818276522256955138380840190329128984061504230670202825419410374425518672736560257792263350074032559755409962121089337426493761922067498837188706586653630201940543124109479444901342067269145794443008291859313468926839671487928869531427961982375754034374176309950450449614696623791957235332123647421515451149779900248292333360082702829033080807808311071191840945668351460987824685468484495245401444589738788340614570568064219288485021754823007401521068214362244770490875620997117220583894638727187243545067313467709055311637069403022416979261216332962144124036492140097696588824432635941439140859510466795915116903313414647054260853416979351864865566730411515604473115082685046459450766018188747836051790833916394157825418944051451836242002712370464964273581169225668055560695960009373755199551482876837791175539605911273599373710521161552526464738260278006331701338465194067971753282287316795105794212063529450135171338789658383212705829150129375839125540081243536306742084167520819050278499261140164413454922927126025424542968169870627374615923697596743431564942839868624019179066639252654149782295053429871185875881422988012212129547692634030755029205042598875854904625218266573157150321606709353705059657818634303642511110695511377757578781050340983633199642195505079545610055823253551317387427656327282883085548014677057818318958202410425716005557226764972905551834163205676803886797987606870129336618309324662726151231224494992935829903283819044998574584403021965448753141001405399470053656038551388813580143685711040979477031946885811135653476260975728095834905869467768533076036358204683583448740412365288504218183164789474319335847960323439591740124998111096073641722147405475102691698935516676053725005710033639284056974661063502846958370950191246219532541126062151347268143682312511872601760697613869378832249234797840048111761594500810680074151602690571675200133919932619688620001885866829114557223252834839330335662018637410172269062784204095224797676103913610169758697693439449715576889746037681147966875261566279113175624898874092984861949878029032169845002898738494659821893533503277213994305177697872103172882854001150505225467733516054203431220194629025132612900894850135755290954385349719128496449481059214562721655060533379243374245294376300338287891795618118641494391685389764920119508151989126949600807503581986578368928519128594373907850595688069361745157876043985058984756638216668551042753268435710064854067609145106007933660697934135253398244362164791886363559474895069751160414481507352126286750814427479713976660496829263342877627488091861746802714674377329055310630427863343698018190500553746107681420422010420851744983407240728980886387233307595608242728243640762987346326701843016527196206186569194975663765857655063989555224036952869003905871676975020104093391152011474983436934107657328097706122833348558105237745807038867316225875108565101829482354212548741823048515226801174913620095688399642805192756002939094778549360783087212634250670650248791045585890063974025979324898270237797106723760437174629662631719623039523672604044738312562771181638009714146731365932202687199066567766841654958891885936360701442858958611456039304633379703718643135683588559793134147589538974940716952811082287176638566963943032863223617220458541993884242676134675626377913909386087623340101783153968422511891891940671211613519239941275465694248287814822397727463070465071496258869111500595497920908969410613296967153898671950179577355880016458430373675127384569098007268348141654054360649254507360117348141720328064741779831282788746324412156421381360071250666340870987379550091757023565846602952421163465697597635350287284959155340317009374689160139024063110515032785176745749101593239192453137984610176319166682835946530768057090212639735045114205900236749471469330589221677738199634281086256233888273564156714899438092126536628509801929798035881865795759342535610897023735730793800419445387424214503997660923927039619743531450273814350871427335389158072953394583314899605657981042344267752449195668751901758376131030663291215207997513123520405878881091635392904521935805762915986003915216694408132200420177172404688433505176281393876942296840159315661813110127444381381167882660576921696048037506726974653875011093050599530756001073279447149666853781753519246340654603708018559779529889163992908722235172476122299181393568020581400699133304243369089392624772469945427425344128245417575634083478339010725641454932182450176769795106815521313994818140455672928373340186101558971495545703154161912618274664002117231174450131422159644235113614488347835359748245147559300723707173322323808477751687178301016023057739255195539429141071176312441481667974877348895359584953140940128921509639390368744741337920560606780409189250218957271039197323633576950256086280354753845249136792483714488847704969049897594285406021462925360436864997170863163010958170930533975078683002378052063651347561843630622992757474363012944561895264264221532242220951933716340802687553738851323566921527719638460726183672970308558903359377620823970237903830211549308585997441145422273096547349692326020157486488918679168175774193548748724141666194462554008346266550329108252842487885472371997377488854527129607103639767882414913241550815089535973001285813314079827182777709362807871464696787712142915586632969736410548167166185596701480372812551610220700996930599454048636522420935704321336031550081181225764988042586716921190656726737985776588844496223182846400091211584619026140179133472224872064409176140652258061656380336439220580082686563618296545990496157155520991471667939486064312572674706213499639679737226796419394443999658638135707024999444756026123257179895381391596529391751663818889361752626303662175703942730862115149563416716672780504554039649623949002076136955550932643120502437935676975641156466894626642786869368487018763007980861851661016961822584539011578262635877214082455687306028379462933606338622169058798655105075924927670728073894145440043275497554205569971119425407515358100070229848624392819759888925113350327844889185491607086149138989998303622996937971855849888466999935187558232104436257050376995087391329261017503584814431338382905347706474094601244520898740192936218148302064483909833791021139361305055041799389259961060824232384880422194273888700029908304146333796061369432717070323442825966657200065807428837713133787664528818304128469767589586724801906242598020604258383831004432433222961446952395103878522656640643855197930872728944621484779898659699349447573400579365795719923553160115351391367952211230806903831879717946034839963935873488480415783143963842922876071334499305669724911621360814770167600662420456552832652865186514730284609504433371774102172970822929213083994498359574259197895210799312965378932293950678412079925835293626674661227941621458032814630520875860120904049741214628070070632454987693135068919270605033136014269594459326820069913965258699267301144107561126212349268319186807332930051679797722426298490339158766674540686847633091377375589679755515451090161453630954608753321721517297446523834463197047032328107320682190807085606159551258735684420322162822997991774842866674408177214302655355958865428057678679909785408659155982648446017353712755618816980898424576224406962505932965571010348967556964501086240893123582068342772721005133719932996175976463713740942796803442220060873399426316313322839109777945498341862270999499876010903381462505605373092900425258797878773756137609970486881715796092678568294917021485682670583132944906886314978839248622683140769420168398469269786816852319049175813307868163613753694394831779999901834304855117064404656402026319197423233648104682851405656993293038270396287733259491894942540903678383107292257296286054203816597244089344830615604155905283777221798261485252954992134376773308804162714739149436116623043029230109802667658071017617375931037059701369254481727517911948244152175898446967142582496449995085993943541337322960888017868615915158850841623095132769549145819716779961917651853790025462395694888141540359578862250007408515182918594069727994693860243500330544776290416128745858025863353813618723593928705828924997912832808452372067711031174393666444793345740780574758105833568753661087113149959992175617148566161297646493896703590561961764563628127372113301524946492944729031424906283187712923225568282156032641031190331610595413906465274295737787343741705601218451863169444575729364828197544631360979488088718917248653833062464009669067353967518786907554290748968644974301128639724657726591436118134631217916216353377215085135630992486152248173244640481285576159806536696620961557148605661429810481188046071768483904583000962847939248088454174709698521363860498981492011944765307445567449642428828954346827873978823091537035288661282359864165392583443997385416296407345547986309130798323078550338946254929084585690399353941016801243168954330190149551456069745470722678225031325121471192036532570617127822847047778547957819332137416103386079649468826080724371416471009195123908895064391082706077258859564542014376569610032592690314084844452957746241706042764417904472056332762872881993989797030833117705733314423536557883788183031097871903470547706738143700986305856101666995450670388053281628788171936090765525165156390715781634219854214819963389871868274031137392321756096610797863393601316292106150306403077730586971634476890168139517272802545154613678165946878542880786479210368316597474661205223800742393761652902056521080967313076003852039145914913799352014290790757411122049553675707768080651212758439398242009637540493382777714523236325741203562521605215293534483807774820361764684466683980454175937973808443000588934265330243159598478386631922239843107624729084059894775894799071941108523028925440392792059130648628461432615651630577331781868677811567493263982835347888673667014238797943534669860100731111872995183277418829708779697283747750600090011956649111636696479347089874823501752588567554578337902358863396348177963275561423490103689208333415062114321930644573396823322290336525050592341460739761986333898181767701321137908847916508157771203041580538281355234025565455230649051641785660216683643481292576658829184610130735104539102162809366898151998696870221999168139860299204469836431112333043429250800845191373917532840144837597811820604182722039521723585913685527521934818638721345084009807321766404024510321127051178032722756859456827951157777170049851293844520647580078912503157180234434036144671989593692059135178377687703368698848009474679899230957217271438500050914496301669066099924310368142901168476128785489021718898428496046397655548585347490688177447764856905658783746591129073562581686839706118234924900919078883688547043723122848499026867959242743875374515014757657430022530582997449636206484514814758495866131546055386939988900348932796262884316612333320283947347770454809517624909250760930189206800723370373371088918549236634655824516064378746338967977289868818379139464868849954568755506847550921293128547207523853842878597943816903372922795810600480181427380838869194620935488980645623475530537423928759593467226267363165649442236833340710820231683333929201910592821189650280592100989682896421884202715577165368170177865182477554942681167302455356888217813628841117859004976069620418132925023792347130270583079815244797720141216932034520239719324825349492950815835789804224898405403703490780224754924293500500464843035991814058779420396534679972957159817138822348577919386608973987757831947634327023833812650588754670199277285736824617775278939871345162375446769708862371523175051909376623823352014376690180936477751134340028525930174728154329411419478631260687027651047044723129714996606259642795854986720811142894487579766132653872472509908629373388538470178968348733452995165653541196720620226960365893995852623232120486240839171075373628975562419191462663204970204377357181447325372464755370973163029503942779152472568568109308274304806566407967093088100216029359619418007584609212384345264264534809945705103449425833515058927919873670075821388689821524390880734232712441003811321785281151742777695169200664749273412568331837876471854038712205774169995705501488137091316397513772928654005765910507354219085321294633204492415867568883582523845427714683439550669274781553162151346035721751133625011530708720436166316210085003207928563294194558457112528692119147976717405775609603340000958146277185805256585171353940265334260504832648510283323610467275771512992417913766539419851302532328613824194558489312556891530082028153260881061457748990724449800258346058748720497502499501790523425783030213652932156119525368956287556665962248432909864623331433184570335279434395361940571899571422131737004094325566609050106331662887875980934739894308659050610714467163121794931859687239658729424673120769009124024897510491359434013325378625840851493441350417440508548183643188290842323582179007711847268104797454246712811186836553468285193410219961902744631508814758330436925797322790659136521736723523884793701251424882005581309662044579359110833024009037360561181331723165683724604141069625204568568644155141566892574837710584222911768051075922558324766232835361134412519900812326321123482755572198409156483534369270470238386988936915051809473448610557757620139932697852140098017190838378738437113838667947768911968361820491523175365355924903650338539228747386492659015877837694348278834682511843759198003773550644997760681948561771468108567549169354766522410363270415761157391903809540647804278352337220592540425325923713783356017822166405316710229514444399021196656692095355517952188737296147810239976744290450781995145731808272713779307121044562186044492202287687791108528810958874895081694458623325043565549389021968966465226080094779401203948965857988224750847369983469776365375904077903205679489239680998713454986773819296166380952294759630796071843574068871170188910648688116553633964407412143258115861384663574643355269640896861173678374722587018161659971651883376553547731993957680295254487718367860677499508462592336873995056336925817762549182433826138136275810251629163620635391992021182723611701296249681847464731775158706695887886376205810998770700794063112743728880199608762276776101805369908278642805714672707139111069522222979694300676141315702562592367818578597012501111023393491180023854019657657156278995592226868426149378708759763120775816540168802971079234189173097688821916583656912714984758370137092839271027106172675215832361733888795897199560137274013822456207343579024965531575615114394624293564865381487979920022444300252956645945206014612298461315713858109761015352006617761081823348335876839947345862006513486843422055073770633097816694934856511440136412794580380770650809813705096758790159475432042984159013906212755290802792248967687703183221979838131225753575617794575362802935097012514412933889960298491032278204067662242149536875239495123398745167740941409733398411544963929319968055018499518648614232898253580246696155544232992008615819991156931970587602755252497622420234089868548324987440365148113890041125330051729961641278507567938748330827202663311360613374128157518396524377938337218049040688325175526408656428565933273448977802680791477331407234348058080952271131726086650080146493181028366825288621885929311970264534201925590269143690554259346024077719633927813766619569337295545553977487621872147926277244384965680297017180246097079419720966308693634960287509975825834269389730450834887788657569300486564538098066404364914843894665992451027771245585376415848228249815214542490220733194952923361147111934483771383745794058813535864124584728564280999143567453843461002357141391493072281227484912080622780647024998668065535445903764101608174394324044735581238856421718518775853319713411776571676521396484191832371987124645008313306510698540220196015326662921262635559169873165745853816236894058974272853931930458843452756492113023045766943706760808916263197400358124672878000348662804068031892388632731710952079174565048311663045423007454371132541273866091081092308806868646428776592505537920633460730381059634450659929109038840347619542597465987576132493964035213827130670407313746405137734879974194581867289332138598279219538473774858256804272197029612582614533688347443334329016914438288892956400447245040268595478821203170472791401764607845977527580085936923572359196214933142045857358566299680113967257174863292515594604357842523845624812074657676550011872907715274148303978871867063195819193286672910351327757341710411782275021902239641192894227652493304753976247729835144646826031837299465627766460922346808889980302444893521517049069946329005035641419462827797732348276946636000275471911583790644520695659807337621044197626745756326233640766651510299594683538718506619097140354650242259226529983401977518495034075439066340466120729691348862573498030676418835128556930920991676840329961629746527074728768573657138940200166171524269268113504211903604683652305591098901481863651995379495934837838051361157060422898465939315685710144380319280968312855328124442895175412451926109766434910077542180882432951174948670795585736948068578620225317445840177287163455199557656217135278168913694100391941956868210432267120018627276391719256345700353999749890322340047008871923344630731779636068066956957851226375059995376843185416089219316447392347846250870055344796367493833329724147710870634522199510651599044319225518426569321127314619454206381186497802096758098275533643895874317053991093206916000032938947948092997908464150249126627711606670074803188940692298486820020446099396330417256070337537905458175548452948799252802416528208650162454359071761715825599080078498837242393024496713285909134987571251185527247186192026196848903419375717616108253019441323098021987090301037935872124559364935304897890565157657257179468820332564174852736380091974613310429861033450080401956491642728309996720432978716250865694569264581172095286436712274141825929959850174035747143702334415243004667513345812237876047242907519082451800497816713281534083274651062634979264744746847504356365414917884661618340745269557753276053785863752690707384506604907032964665188864163348530693556456560116910966772987505639289389384837189013722270471876541673229429929247188672043880491969562878085200823348892219106300538780444513594680939735441574172555491891510501887059517285945022151969702603144763807318060261408899599453181923129138715634888898989103805737089044983359242992285966667427476736547909780753642045976743690981945057418093511131372579291704630153571412501150531195571119526750391009408325307785277950681206901308978105645482141323763230541009451434029732797600845282520085334560584120491873992931060416918017298738567013444556725089357461590301467649901296618385887256888707766449326803656786099249843701070870725117395459613003440271679812599230020742911639527888590538466398495338917709123317155598456602770127187322996548569535384021968678490737522965243152543008149845378912775880742649768391051541489408879701679305402062046970318565439149390217506096735427070251174895347963143703325911504781975694963645827670318938519815603758177716013165661958485093069084189763896414600967565517434152842650491651494156801546676176162682061775696982432600791019793307174861178070725387681332754479060773379069083178579629168086839900482039835700303031949077924009961524771612806687597963559509558670239253041993309401162774430153407573157652870799231861674076138426284241004526676366004469778749354089788265575505894553142549823219874318254540561602298797229259543129741597016523476896519488969418743094667416400183239489305589003487369243897581966098009444995535826335341009104811160747614537178216527672883901806202594744329189439861344800131553289714860890808666605017208864722606649192724165103474333409335620903736741567898605553751561394707582972521076398079421486356146963931457120217625188670828127063284869147280462342475891578106278439517828365731362115243786978387469184552249105223689393207146679414140498329785067161431666599742440071637508962367883282886456817108309979711891440979362967739191221529795433696591671302914965902131763547370181515995525860399589213422213062624995530976216251462050281245435069444141004092578743662647736545923392785293935929735014153585353139200539407316391119034837794383784087342017215752141250459930741762997480265076652731641907749789322684758522131963901821438604734745454802087966400432695209196199519437024347493693109044623765870146182792729316070731529950491098613523434113858051069599955547992492460961349063665909836915814130541184473180298206126025434652385111254692515780249972059510501107051564869675232753840273746391439886461600008023798012955065004961772913943320252941756402424441967904362608571342800497091779892023392768991398132340459675964089941260672175000071406760100197715343244750678136774213122436347579344610047043070743294971292936191596469880909132190047641922664921583081957998168660873717312845754375759236072834384580232270864760151512861836401814837404309021695672620640023909412000025611179286215596225364052370636445066848956039542252882890799958939655306976899789292203165962600966835449313601303612432492993681046371737158098338409326497624052134719488378242597243982673561644643934285804513197033632218302240863136361502856141496532735025191303151687616758010638041443128452332907381972456091352016207863717109720235170926218398368636769296755955890133907743892649847230340980635557614918811102913625217642394323003899285864601464056413828295577994260321966274735697181098699206825229709589812267665509481466805144944691458619960746003353296860005274211391157466764120334798661170731652130830895364708041826134928042083643250088760661466625906126063677250119334609088255419317874789640326857153299303324944064703416491311713530721977052459276038040410938083448944767339431895847064783118981240058930561719444365245919493329536155878386965820128158890839547988887043311226712826314324892470405775277876012954330832917099820434495075419862671996360540697136461556321328316821923315005883225713453083834851952521954384937645872624336588922417729504321038611492948601418193516363054423184920071319862633023158031460285590306022210073400443193924400312332819448062111844865253830777334322367893032803752003026099049835774827709679029368168188314936822868623167341443126470602985581961251430602773788900574021477854031280343868675512694669808452195136029668561416924550263552579390992205677552523533561322442337249757141322578188806426433904538569207099437137923090987532220466415736574699998682221512741845494794675465321107842225093146632220297579973718897411442904415520832066055246489499747209744879536393515690836196234327502980928970398993153642266399797113337263130496155786478856097465674332438571138770247226521056763836676859113970814268372261772012291869106441365217596335491423536593618332502110270601367506153619586552614098009769544495618718426559950375243751066951096435314197132981497569108558530013286741293313526256267970530415412814297014638908540079104990115081303729481458035206310238077397507744482540169432618390819335174727478464637977136755664713635415601947403395304519708599763573335448309237547843154773833360324690463569443808181183811432137598504417430696879898014032502272884236038268179153821745664951240752052671237903042681653795054041112216027925353615089198086521720006076891430648735240651009620241543071445477252595055793664630400779867560897737787915034654780983060276816746582544707136470372951841221154156509115561469149494326840916086189038633021018129789244789792427597451251611114155022545487149144345427835039959284434848555347262205025153822229448413973349456322035805911856632096295885379841945316137046452034185544138495095412271903421846627240640189674840948744303019171031807175815984380865779849422522415934090078735423397083107329916455006753259052941787851916968517736505510720035496568588417801409734325895000975523438714879839127811843438038563990100472959376119929764328123599018282044813730014628452374426183879984569032492420303622018780352776401160619388100311970142041580487291562731202006568640781958016444370669025204186953998021837867039380464285092569287249281127674391403367114811788206361494516218384641112808113105392177846392436807866101285458360338184336164335430949393351060588203787385776633291479222715337666183272999280178296051821741525535464711161549230426799470084612834833892004912502079089597670546506588790506073137882066211171146148867836293635797662465206967014748603104899471369218434351707662085142432457570885617936140876709818974269098922829852900663251943089011760991327850873375839479467144451718243957829923265053230207957728950621318074454350779254341112825150811845478307564734133575843089397251776283604381574971062283563902164848508881385552433310686902616304799499800759119747832401085286108276765877532449293090896437623244380434253731337406418436278425381270169349796028530493739785650508875430465472410096585629584337381875053037339517510234661992851052833057222054785578870759736352753486960698991298629148171352064217324840693082848818158839260252667089153883145299622956144845233053672604876976229327128529546310193886470355254776961727421637529333908981190439913078795625622093425580961028489480426976322236890760552663640830945666824955351841206494211075085112256809150663230536782074297889647362967084260813615955847660812741644697427148502410943196956910076504194087598292578094112207010548830568874074120473304435001800896618487215783845338210031188058282509420084508853640244208864323952238359127402218808849177147251075863892338000557035095150294158475043123970268175918419727800980182985501980602617491344336542427822970900838990856438236713849084905842391275159719492236186115320574011533066246401379926345364321536852928981749958180659678945017242759387573417254673480181631607146136458543057040578711260330795038568182534247939037759484112601147115445941043733827405523604939545360432153361345436557281286070191220063284008685317368444256304522288308248150484947299230753811608147940141911408837368164144277810477392169140144155845104381847831561057870354529110018375638246123351868895549817630839342946924622421997043900135361944138478732000377312868557314241967730224434034039618119233628730378601419901306453642178557818141509869933318300651694278676086953722136411387576405657252400584158486636339328682016273853484582956105347364769193790830529369741036821061854614651563874992015255076091998478473954767178750394962920309618167815683976547579054159383131367860379282263418387308364577647179692002669093700699345302973801021444765054353777235503723144430593833705491859581859812137978497083381086859569113368329056218398806928386270522022707341427820055252939984527436172549939596220387533743292359991028023553296125184148265106312741814578245746684508063804483629399354262424537913839540609721891585662006270041970582430617909853348511306056657116202637462054830243157253980358982387286978188897382544742533156412044053636722263987448222816237255217207056217134486149914378380624455072228110583752688812265280345719145932488125898295710314844488509296776945508517050327985076283350070133532678307875036157479284187565961733122165233433534637412128505838148677042411039392067697627657494518865487807034249952095887720571835875493404044258156564586636414425944259456688929289310829827005905029363688033607109685371188790055013227324094560566391428332632797578276485093306515259805694279271135519920075834747198158667771965380000911291727770509060054335210277630649885549474662755408046843052857749583687446579782334031688000044323436587585413467826445079281391886427131861504853390746611410932499691869060911924353049585967138288979229020179042605460166649749882241294128050428165106846114316206889412510158250624447134704667680252128276371130021335070280410875563785169517737707955254200036039515229883801984122138313464446932972133144978921743074752824457289315000480210527413774578711296030830507823252827376105571061643830933177230622340073943672427504851547802355293646952569991688868589727932347311388333915638140414926868842199992240305573786833342589022059176356291668003034149937468232812427741952794852295537272436189028904550191410239443838374161189430482579452808641704166184799902754387273105183910102727800115302870075707738150879898431437540368925451561210315570751904220133757739529204004637977086928342226452445504017539230116780405414677008187429383329935599105661430810468971589516517048339093020912024368412827317406227530211117604214010248910395257501400981986105917753698028995170864077976421673093464110280833834549532478830442438603237695165221968427798593397250196523123062559032670191537433170176644939967660278281880046032382581173602669089453548058516688935991244683833568045467409865718602279925756374990937010279025961835009164927765330742726678004196471427446294297567455071861184638906256461220106456858776362284591623899381407908751326394574715969225972672172678415586754335829464696766393786804193891781955066723145310187367957344032080774799445758393138940978404117247678184276601527881148642288433598739860325987329344586065955086699278087850529377283463104566821191289363322437752036743102104717807295789298302205525617066453367735661026579416058939032106408781620890203467122658796718980596146536684371735438960273175586847194941737889326098646897901712195586433461151908825992227465712191872915074572603190642016332402137759450922373507582130628222617711103637300799602011644586821127413433962157034853628315001253351970159794907260285263211495110711799659909469465254447265107938078276945090767475912494731967079060495928109921556555524857269910807621726049965437480024615391845765525641243692702453678106990490099851592570323291210643615872930638139352603377508794792605655342100607124621948839697053955117179574786276709469414571451272842212257261417791504010026717381183858379930242852270511087845538923332653643088196954982021969902692014023699580110819684329275989225416414639197856699197023647340221114251629215967528656256990291790299353608602646377202094372810209001819999055190113445224630422519246931182146628327987973553087450450844707193693086241955295747023502174816454211003622368436458667045860204832895931809478353207730861911432534345154824439185735026155618116662270324445464173632562382292811154354609879843065644374461517957835243972437362397615143506681755555048217857745016347102750738870969376959265500166520635560468642955661449727318841728885782127860709950880503907568001490515534425348067865758939774545992046723838074857942491400294160559972164275449862134230033565189543591593781613461428797803313011953336206576905530487215090252021941583830594650291638201034374551553506792642819712482919883400191489136967108910271420264071462028372022050754804389519637151369428256982310152409457815906828425542556971728832168074088437076251179476739034260343407540957136975917393196607945469949345700357596617537610013364951550896875685903170502007228641334816414876665646294901078054986022796485109717511709444286042220180336349155855705783219491275325623923394938065320138061269876219510659797889961330823222893013924561787398124472144313815213304586220958531709916299090045520018720887310809535289148680827512656049965092435207747163555451717928228981944119938511592419075245560102338553928054767896094166193064352966478619083947996608465883049991986016131575394158406875647837688928622939473017749957139882455992941953912630886949674121904656363731251330533810403467465633331458677658961289528297284246401095841293111236479919588285262844938722838835651457617702966406067259562920420699104321502648368337852888746979330435207307573817020207710841925957150564601580809172687145059655041524569861526542670286429829582382329663322810316236644148867410423277597797499129058008928265212080955068933970982166897750791407196211601406821421674825426132329590219109831314368856810496714905886927840698829900579922459017470049396772251639067021796603012007009622436521917184501017753604232595995631980523124660169203381049247797931482913558682201137339452498154519363214438327595889170609633537989188308017166605259960619356635580800723622737785314919521529598425890018226277949070362949345897792182006064492802853769907811128725251107645182953304973111539962395778973939374313462570908660682362610600923298476699805720782395231924320930032391030085977697295029354073735036823940787234440554119586311030540584614092459800152804050942824387587669746298941899904104358104102198176123754974985020318305160542314869196266980826691075991296534990197146326219219493434835476797279025662217519789010989078831021782259453043432250304495704403481376698703278316265527686347237924784132090069542391849534916335215788218114798829174914557878713519471431815279206032268696376583830588146991905407354171715492617810167823463947005131171164335981503807558160582557372766894630617358074162273376448665868721612452795294146872007250866217779664204992896787328634198253035498230555892412760109875470589883017041350672746510479093961081166240444894571376848019681766135496429261342480439604239392849032969032996660514801034659996483083971786880017037232410404758967075928597208372574636245106096204159474372426048318040620142215516392265636770107244555837313774832388281048031704838205869357951256916554063992033541100451265032116763809528277734908043988620392196781781081430315815229252269195921578789445259953337622105601902379534056863596397073068672400238678793622890104734156929509823267598213059561617819922442009168731657595697609902313601532965490352788132198169231063947386784632550406693800598195184847983394014791446622687771210191582180153286776163569218973749636568962911340345288218609148629817482442192770580384684314029948229059163066128491906638421799659766182343773974814535411669411474060713218555406897710783845142720304731664751607871507970395758593228352040618997117770705992881418173754100015624732090270614801342395260828125237054980485678725510447984474923803866812435529257055757599547498805673352040581527800152377641879242765509836487764510728370166664151831320115824100270384597357758771546123887261005465111925380046692315746828856539885723064125719445376932360993795677779228471388065774928989565257275070165651785131439651570749624441463869179309721653600824865970045400816819550634176840398068693170723943231470891868711970905529016054159457305199143976485033678808906907312033836594725550730552458391625141945842985927008275451295215791234090024555342733648443742295360148921538139598805996725220995801084972782772703471711342388059923865523380181659054675457646075763813437249634095852010279334462661062528936341475225997783794280041087304597132057988667004015768848096407302282894970246720991403940322159481428514495729853093212165212292378522604259134857759933524399587996584109956331285622109929442451388501649032720426831018923986771325573969955508406340634722767834316643235401921263193193682818053727899074661469336157856889409864049597895973184166148491179554136069829595002302254121977142960136775999800411239958400246494341962563956955414444844985227069603376334831982473698345805667188241397291464761999097507790043102252702433001266037807487252274820993223916803404750278219853877307287671500584879280839014805252577870152517939475270095019101885349351342664276101724288886165178660158177276229843819248473724998706886796469069857467555242131155101400626128497424893077227865834690447351006344228013135988586884919490028906388480300772807668636462333681269033282660636827751338137340310591575195444462648885131161043255277156228380215877738636852640803686537282168828107892128131587348672172250037738359723598989849498311550383831557165709528574593640708053937260954851895744210185452061489020906380069957336439286991309686757846097064769883160148730614294043231502261692577404892241964745596267141821531455146139867379846179716549251475821368352747737656052642221630363362618638111303950803967975981371850763040382998471694776726094755671035900834761990263899115889243286337287670161597736856953672435157396147411083862571580254054841568447167855874011400294251945829947597737139750103353047157020127382898553639591505942728228740703135801919734071679792899049069069658624070669602737928828418565202893223376381228544059206621908999991849926956542575932513137224203241537875891951831794446571977803393926323647146441091958565863323727939695736851062469327148862444309393377848739896721503624073196292218001784293704760312555842732517043955707323322510710928369651853112362033993237904496670390636494192536371821585555425734733528434801727335707418375351722685910687812525390401940618729385135722821144551221921030300168502951656301628898444334780926301085022068745175349002456128529581607895354542851632072836882320040042876414000831130715604099488093816893724947352660324538826760365090670746957634310758683001770219723701144705393464420434756333332137607073265932583796314092882929916126907274900493353907343433219239259973811656801988865679957460287674148380169602349841102062832090912431774901249505721447651446818200247520973511878540146245518110792816610585297445888802625138299101890674360658408042801079573029279808267663671682725608656988932783371493053122067063651784647775907845642938070612008903422875267208371206916758969217971511506413852701167770823827039124748741611280629312634718135380130778476757755306312474556230749554399797735747300554344395260715226109255187059839222198368560783786769792488916498257578765361084023945178573359531201843185268577163496412876534474848272791540331020441139905383708546496905486059311761930865824850382790645936713401554875037592141721156276115329436472936978905476815641522342139373804817182301113592812435452075636084450688849966518920549351436684698926276122210899895407299453378968776720660347373869648592931487682660090905101231849384038512211617328704656508444763437672688045906321690640021025106650732325104948558423717189727143726018108261031262849423631565679559247703332149856435477333862410335525934860810700348220106318797422930463283241060825430859900133647375825606580180120841822697732320407650944656418691393898956327265508637046450985695923808291435310866061426836744443137019434613255537317120116794014154200882818316012616940855569431757610453689474883085713298447776840280408819880230995569357473485336269355833998585271400789230771794201898384812846293723082976457556091724156249190755301886673809778235085156989317411222681062732993916439118661274849849435527431147822989417340439990050469058107871993013238235773500552294612423744428124579073707225611985058065848877247990147296335696205127460757287793333734706447703165165748132582766891958016048585844907121399360726525353589844162741306105377717669678675865160243209739771901993071346277148935802548667371117818117231129312867362450155225168371234597485080679653354378209165115555724548249910174794576222411278482309985655042330358916970121659354533123282322296431877717670123282725237821802351373008654946631699330828104712317064332031337779130746391139615627416657700114383555029127309521794348637076260290905452644209906067634593755009567077913132805486351112207673522856791872433113801126275003270595727933456758497919085473067257507850678760635067878103579188721591411005994563064983124536788440370718372579888680975473065612873710278373841149614933688552977102503115454327071239326299919851763790180978416937333055030949628799802428805556649944073547764546122420273966548211562462206817311919573636821079409108197000718511753759900163336643339351120074856456532453685654213599081343843666296924684096966044307963697063769766498026953737366911891858513870375496810788366103315240136774432708961013613549796095529930565820602577678366447376913901377691180928068198789410211973177909169036896668752804241022571862568550570898690299245909193906698622693092397966402890303940390017601978577724329078733303635832642153274366990994594346952966447210348676961903873631120293752267907365771998033795891598779392925637585056455979320966371966257576079953299482857726318955465367483680579132055073630993900085045476270847718441114987230759031903253987150082326812369456727551597755802280104076279724033724159500270228184317122131605470754786642490535488591000547975309110012706796943130705260158671840867392632495061102547009325042462815372616955599802835164478435917965807343380274549415633789183826459446884437214597022611543709549997282694769193890686418005920788970302028266896497152989481584811205188772808137945075917355442532065106184490081203460349820032187304211134225817063889917541428460927395310155336520663886847990793745736631328598168381946551217151594763554860656836301808578843532335421461106297589682427906277905080626960298925878687092026405436701634392760638898648407963976581321038152316567649776632568952728136708369368352994263192946698733665024600720060741933093581902817455717943297000876657004166434859870350176407491508308250704331326374396456217848712474498682702182378254433393899776135885390902075378280617982995553055901673423312316076692371650079937675168546580734994196745026967584777890555904396848965646782367966299525070749718915699703104396785351525183378894760166681550366622715531281509618276231314045443851332649121958547985550912001623918854994462185180231165209976748543048883542514687434301080821509080601844456403278135954839424610979034105957898756092740064932042705078794661362231187970666883813154298089622191928856926018276254832004823539610101487122990291264906000935048215766581504585721455709326506876632820659135962360602617135269039569291632853007968289631926022289203922475927534290360150146383609496881165256514526847243098069918769840833891285693048205548236884188324566189114305767663376869177470073768854127672506902491602085742789582972194437702762835354011790318573120576610747822730222140992521061891216194122811469100872060732322437254935486055576227782543367128903830045595625198358347266817550836395144504849167545117977564276460779558559135396642164587975381276566024555545750784267469998721778313257420439680365223040719018439795684924953983661839972565605236132879147060747241910486554336909208930410878503437516213456205410412714317392130373951924166925752047547008218364199536009514558143383069423083076366908119259136281564120177914238845637046640739526649947994864643601217014422394264982969534735664094198023775680572335010525737929851951777921842023604980625354133600638312113927276177783458561086670859575698002689689634056836425922170214291608804581427045118991395667710380618416877815614943244542442734125539995608457954958303600643988662753178206222215768664548803488967039281447906003237770284016237958930600855379729703717710465365398443356921529979798218539504959389383220738224535339255246080041786724392385608896863060125002748796561586795851559075022309326870551391342156639210090881878935888236251383061762960130043009946687246921889069423474677549343585191011659599167995236359047775508092830280867687449433288619769297352043320682423751182908006491348424427859132687451473121906539895892577740676846265138567966165373870467174193203670950181538393135755200204752932480183435309814705077020469884749521496138763450062822854437000576229007437505748156858173431376737649838217567967266448540535448717690190825322168538174194075223737585095274108660573683374996964098663906573348625404499824616362383010268599543727049866592163012546900195409796101681514190479398806355470376038150800088771699147997507445023957574557363374006745169272805887856549459825283164293519118442157270917404379708830168111309480726747096930224034383831738439334483529085273280137881972298681087933704453822585660186072787713181564242507330333382649209956857730874691390930422899608952879521347917484467290373720682479868728340857465225472806795454229779224546990497913279141640814693889024153114605880060621125013378258509704637458240817221090684106448061682156631835794795404274687336507799066946640988464966283302210116800835189854197106729289237729565830363164947249720072329395524559635825849418808408299657694441292217553800123790407079720227019338763857241765750936037576684274664112226961262997504774009666126013587933346191055459155894128466326945699894404692092844873051761767945284143626854961243686378993491672770938048931722493956692035306990255466148278108410810020775837906453769000239647814433767910230234347428907681892889748073237984269224285252576703700437649800529941827639774938576143217645021201424652018395153508716987671595701368143983083851878376521726951583562765773374088423237574001198997488631991887448394052339941157518985284557201966799068271161091607089900294772610803492230610803772415579957312495371988761606457694382228382340734500384564219150995289441719460983785386301928611815101761911539470627813391795429305221947869229100132084505151199497516428230036769590065988634762446012114618019276053553403034289257388658336511656542664019566806224816117545788371091719326640098954342385655338401975243390854276539865243242978530791855135838653433027246723996247933622121229123031803969850138144575922916300147031790308184480708058042656859249425242677593446606203372326993412349654334744280509333875977130144361835573029237898161923164509846390014454910285055796279284652333351952649078100721053898010393856661998219034312734493673260412914567091495443131008728589845960965364154561296746702951367123179789386304933174254442408665820572554482239554621928323721004427049354609869922570457987001304712848692367594154806357270834530306537146735004878903770626534372158727884353006207836177442729038437241587563551445707152297866960950410947860397909496673027417521482823423171848984686884716377853377151050958435611671166386060736000121387982345825952455865946455288111604329248500557544187253712851212873728310225087611636479064514408031202442839072049670218561903140675471543501392211959105473846205508728996693334874834945058713605645387462781607730671930478924710152857837871112700301412033493587066253660996047445055934084032357423996936220740405020615685539023243711229460999780636209641648914652955102660025328985430596281999869270306291043345094068872120250083428332862341736105560530540569682375100376517314505613957980126634319945059361577160457066609872761877170690340446651922807147498212495130346650883598243949177232756291008408235137837782564085270598646540653242244900897036979113485723790164947139138654652249213150655742314494000173230396437893022465105085721890748316359516736846845363036996541039049991955522624326502587909959254714570286132791703452610627246997798283152339035831687384294809258219827688583151196964221545654954974907621989204137493609933994424321128118115843158392060212224516776825113390741618778624033752470168279769944550543594520998429586919891365812476654502053983802129646544065822740341369941056695712078020296931257071704776851304167605951687663136131814416320564414726472952780637780468836787948778340643169688765821789160199849581562664162322149985694009344428132214487404382056499600101727105080288667107729380253931204266395366560455906488523290911325255699348859037633350239949211902254881300408463543004187283722059751420592871041804201258944011613319234316035689643574470633874867243055577657472251576176434360356213408402550916486944171259120683500271962978092770387283763252778921127827499062519554954011886904378338754346698777234511066540290041640037246221824003324020395581051380764080973265063227369241986642600225603789774989908439117539215657027326360435358507485289863986724864117418783537988536515116372577504531437142669013759320868714933728457541866797720909817280783859158871085906722269370616564968963562772670446381240670690080776738158171419295951812533103563176347794297491964939385321809473720769966513446387020389170618503551207533354865197733418199834485846990891817578235883089735649662536274244218748294958628737782462309570044484334860514428916038496468346144906303837405792941114723281496684747430876892742777451002841218920007150347277859174304098008537481210644469115015747790251335343249529114279566473903688780755938795415754228612004004068073944511049283518415130083323274212863200047722147716558753018369784529636023760851179795204344939850409674283387099596066707108443834019121335172438698189639681154125640498862690682198052619047053458186157476549991256085514056875719462698093831497127075526607330592059942991565094671340346787313814977388378668233076200502880756313465386858680377946549145930414152802098291792098949571584383057680038424791473560512769525098713463541917437484817750610501382398297549231854965619712405768360682797718962736852292999543614444892202357191678278233165732761266035360430396137988991304037463211841329081471004810177464627506301096685637424010310899852368593856418979197383716926753049984407397107245115005246993736862843235509286530536456999948679608270503460442363240827409156194382807896172916343285441594392145933482296512140848351504328371547795756993631198884533649342858747172795338825142034792425068713065551938007594426823891975605023115654762833258262653189587759365553022660696922154049346258246496745253696417868744296926650194757462900026095959665455126495425926925747974895309065593164641768953204007697083860451286685062548826565428038085881626307474608099028804768113014205820282515767256297339489342707892128524949593326902616108984040680652994663236929410805119728622859379080158488632781734841081070808152958280560437848352209688686548269271988081877439459911125207225327471467445652051680421365272089154926183833827975711420845066615800942020792049693586678149348544214035313091031743003806996219214350193033241294723196531823819505881583082787216712227781809306445232857385744767326603354775566496792883334703476689426336691651325292694122643899133543884350895913022878047648722330670763628516434664090856453514577222868788186944603522104107324983701468752280023791152928709009043125221636425225727973284529654645165143137670008176113060582627791086540386823817727886024803192830478482702655895725406952559847844258708928628533830052583290261273271390536294237287499274396153749561224117403609754547403127128624267065494131750868024624618852953383085146544215096095395750027589880641525469370319345478592773307164476622669077405605546110294685733658452616112080292936805639161494490788005905744539301153355492673783915411571633410538406806661661448253506707108935949312725802939464451749896352293156600193335507204985945410522605176333796474459373859250917582401673553483293602787639083549795827802174561917474205497332879193669191088557342585665736388078833783839545667276465706402884627697560270957550901190111444651843991630545241140943063433870139333368298080754415924355428099876674358831270887245482524677388628835981125778230244480346536579947322895701536951463759490537821495764989521296468509222269459492310458546211640782392549275901018418349109258787754036465250882409982817817693779937864083596337077132923504037620568165716489058435987996454328363726824277392373568905727479237410461600843412885603881622368699793387622814821528033596409475950011864922065149887239809977599348248746780697571236578926701351150101208211421010067754703865461065023061014928268490126849505094504684211374407399601243141975808965852253667847164515568808201714758818567751078271301024492875846267326638548734252499902704612774231291991064114847697358542453663106389853584662163063936177630473266613845545331701021635308616104936705204301967722842654090521389932995888060701913371795336564803300622551968919169563533810423312014036735358301072402816986240982583318395739857015324931460806614746405988555154713393837449502235219480801732029650089175241797689801965066844567517063424497094395379653815652574860658876553698751395027732017400052249421403037161250719569904730267438115515740626865744104382975872900878729257315482497205856791140360445779301623780034504838668641170708763360415495214405638254127845603336139756617567501154406925523261220912288494202179782702176683004957212050115994961742298542415194075656165998867440661044050449284299877717517570247867208540632921539602802048477129336108379891465966371642620788679629697689630790228457938016657928250512105925275749824518889186067344754506496850122095044749636989987355360350326229114792071169965609184615398302866802105623107196983958927915454114358196997045727741866989325172064945797750716939383570266420660531339677309715291678913758076520201615752026501228372346164599004454010711171447630425310839005341891621543040631931879044042242983535397094794906957697630984826116553374366970531907881629519611144908534491149966715476177577517062545811029729706784099807929111235820726299809198083487381214224013641962694945078862633498776585984313420853772708301070893325083318475665400381368254900720136228133675315376676178574040747251828540287625450550242699061398320840113144330314523267374873301974295575275267847816834309417768407978754496628682508388605915937748977649421459953896731614706820166545751138118585083930665658914396219233801188208217527978098968382184151399018579376475929878217033976486913340007489194742683329720868442795538400623706654844304186462522907113582470782380583941023989501952114972517182880967294951385774287565337542223658530708391274459936864300501334354128965035420673263097099064163042789514916622745330600607016509920891772884327705415345430283483879909147278131798429916527625430057248140552509663809887143229528139216331837631024861188113719253569300236618223511218192269140640172546505294215629872644153108595251564208495583033316101349494859566404708626948037756151866523747617648186299383633532903869836439416978318289518080046775147713703812668838203277273391628789229967100852971191488160419132495827527158589319318310410519569323423578855110550075348028019588271275018998134888893370737540987882164161424056508307000276113931931362537637972406926627661863039955431789763199040705533208548424519117656003955753118089541273501183527299565038723923920652879543046518438623418885916747702739170194120395839499058196361059093927546373103900360675266245130249102746623383205708597653747993379339060010893412726926529106246762030102428226914269256912734665933088115098324300518750144629079031831725437408578677058814927667050934661033451717628654820001706559786650754757797397965886394788000277597753897505218223145340932011794279638546507275606524041940205022913928374801407347979204850573359100973787159498126435863556409681547993494674604858405111690013735383664441659425721817939953711188674199009214381006945087871593416211193477762265194074885684400890268611389115672599162743913418560319933084135459651131811442671232064189133202082530463202821460135791265550429837088295570235627110101217402159681696179673627108669394893370206121489204027753434874372010149927576673450145595193070934610233595324902511848842422085469639850832355268313344502410445976121096409953116272026270162727659635905563390903045492189726975313949575645114018821656666978457386761473877395390725917123291468489442474765569228676193708202764284828904619081473009788576726119472108005938731092494658117736240591102000169431153045343526670683735736743827189128235601322505645593500852512501951703481916930434565385268063101523652326328429844805957109542366464389719308859427860888124673593670679450544977289085455132127608140893771503333320328722195593044461128358559841144422341262373044932706252187313043691893624698453620056351223341249367008768609742837147309452429206711722889569886965549617920459450231369469252481333143598644414000082282078779180632469299926608469809745364303882485874118827455243349288366028024370548658246564062396560927041224665423527859805433663559512528027893665699913192238084241490246818545909351333439685212896022488425855649653793229046398980315715982477072515249661865275801105292121321452992287845905207674770405244667767637689608207894198470666076743445732266762221122798106546354222426313614116661110376086508636576829388312315100443846714898925390945801921198029847148950172085791737884621635709842430010263751026403439834341982531498382949752832299370044440666320934662299715587128619518209262944952641943345572035369704448916416601466303579547825823992607875234149096873938537236071893731331531665959851503562039188680639279031378696593841148331692749473594898065517409255155799054086206494341346803538038055325472662326860259617041045700458756025948088949918987814702196400969558486432251819227239658179560613626153631376487288714581674106462231801828972668780245383834618735087914944519117370108515798798999295765888202906749482093235970240744646546947156174412357488448161728907159445012961549842699257970783259211914217624421453389189963680358841062951270030310848883341596896784805030589156960407338156582928381072299941611015097121345707861126904556361211352431922918904308304479776081784194434932552362510633811322815162694712072312331585585740598409673303679667898597077068556464440944353698960258909122187389096321222131907354574726632482471451280625550207783986717970248600640372194807673467952676539185271466685079964544730784088700587947284198081522475683332242045463625657548098514116881598460376047664902765799362609270886438481169498190277319659745557611708118630198876915218704432876053395909323400312469714652463914364807934416554364620627921281420032402896706281752722950197470946755168807163739341419981100589039211187945323559325818278423602574275586575725718814133775056634928806213589200934185189597148928131962742529980879983317172770188084914307290979769213194356543083984250591190659150984441344686745923886253048671872091217338526175370979024183981103279329544064224921084467774941938428492336266063303056597643131544468323102924244639739185597007459117417310103462371471932629347884719435798326935535251006652074975375583039980116826966512403427473359888185892683224423512960334324891977579154108160401192821793280869196475417312726394038131598880133237363346869367288461299149757030667354250939318305269253744339195693216242544629780669014379019435892639608085856441472989920898769032210592049081138357728549047322040163992612252614099744665977305420502649358216495239066074200400769787867344247905993176033502071744583233655383930002162464669685866455242595290352215184058492441546433532646150919465717441898856996232349313644129970039870327605052590137022410697270243239843888927289488459541981812505778531968817425897483074173695816498500160015144880786227860715820567027401327900164189586030477000003497429814903323996580454480441091114274595716493986149882497442156895072511300685767844057586774792819089249894890724774857265871696354846813914201156659003300926425330642732530105592452370487154810797176069494411201680977940885298276070060656368527024715570741607099506081689074073079118248172271005221932753057962866093967211875055278951388889443236970544883497097796557534545504856417083119316875556869202196812759130243676565878833055458845219609859231730012697137219317514878934500792688390219659734507767825247270514107799757773453987609665368494229402821847178193808297204896824659478421590066606333450925574594542836001004475780285336863403975357672966760757122678004042784258649595207105944665823065288870529827944639417299668582852931359382948765221076088218351492692658844109397195851230817196895303228350362840403636742987583638400150219304586915115152505254063125243454291728108997454784310756238368432578014120544969208586379493307100214272059971233087192753702855622414839799284294158526701631760436298615244379001267833328124386604602190324410081859544998420055952584610784638876716604291635752571803429861766346309661689081906617055220161593374502337517393834548267203377297254349583048618729646437128208459774661632977968225575645511861587332188365655159084230658154327066821298710804296348842171385063689625002940965858990676553191245326576658275885555125133985320632974334920555644151533843208068860361424491748919923290730787379968232293646366050237384681960638687948832156757278441129792191853555157300385778723800611455826872494879217612273988201896070305643148795955213406159137054788739140385210003936007946218679003313709951774635608510837883423966512607081004213762506581736394310195698128498997173542120540179491333621406225566702044534190842786469920817075383150495597827345990711458053755797246796136234936639722018447480986608015225006042188749933673953327414398158651938055846879705383203858410331889873250164359183144240038973703677393482882038919622693657224154773465794698611101438219764386136494358676986648117884597537994587999992556918791361054915697259563350231534214407081553053819214667604445734395275764188461291080408578283853569455828190481116517959148323598087916325206959668995673202590115714845988422890163571495512967756680318586276326332821716105232076981959471440132912415622576480480070760318758573976967086871253321273691774785534708525613455586476725350009631725756827717321682657939887141155443064601591009035034864373162517907347065759193118927545120203305294115436520989568705426683485620604336421484257338862743261282304706400785357633245814757960723300983767514736421153764533618733238640620766959275934304147658958323383448538890364324954465478754085973680294926011734961957337219944269103103105431643061662145690414174787917431479338812941069283487705516467911217457430636113703782390876584133524322169706000828032728426892210220519943137833224424142496885953604912452602412396285157492654117811074563653613477214364946658171951245842558481243954711171418441364325075460516792323980348324809490697040244032316060683600433817831319954707193335325624395832776209487795671450123422121076459822915454408652293673985300206250455065074634259264334068299960003808188532013546889708897847012010910320810752031426868551495548883206150923796682309629212955148984891718876167246325121189956285517472905733153303130623529834174803247478250205187949636794628663656734387181781250580964326380177491064938141453561955699474524293752003474261169577962853871103425777891085695457702294311288386806591568170160552114577110180595603713077642238292538798931578809566841312825143907059166820265098359702517492443136814104148250950704983410534038003653288337112608743779979073926369787703204865916842267828654976945065137174410779702853302160681515351025939030065737534919633792564695675678659755502363390955592077182928841465420020180160106691231049550051346013299560271320490500738868769477030145474547857909066545368950413700204472559237927013538900828278762272235316040083794198133996956429364278270114111908846729088577361323200625937454659217607056189853051195187110468874355732294427795349628314523027465844007840240377379221893954238081769990379312392347465998600237956841491324012331036075579372913177341582953555048000127824226507529095109271920347510132061581394599824703566493064084645115377031608993711975529208438231037068177773803822553847070718310603911948059518128842782995258120540905071515027064612079634206502440690643279445970769039168284794159507831251835656366183041183080041471949559352510553923980595166382763009247582943900077646333350085941763519870899774120673277727817705270451898336554247326951413057241511173043759759580425817496975791323570406088538595712245349321675491616715515885618157536954106967576445086995165624149289575184503538761084541056413865194499780568478135260321224245470420247134196804438405630529860039270713829270992657960406454556223366847003305311895222464143760936724080199529054696513151674505731258959496867297370781556743014586926972119589149430249476391200665529532228889391505373413387794651193223945299323920589642125657899597592144904811577431931055452638007238961643535021161966169650301358657767767698636845904470004924725955366065599202565957442573940467755016126272636353490199067087699305778693313708434140260093486996401090292498089853934847575816728997301451666672363295507014492805631963693468197965625117343076785372981000917188540302875498682018429001717701983909663901870969133716308656933364126819046842334306728075624408483358127602649040399737072916220381418429379366608061135047230062367023555976954220553926544045007560779630312289577536660630279324613525360568656229841526447752543851490061170825847511397837836986111155972502768658066062060039441538250754647948139226807296255211676232782829504068988906889828046546192671967875802357058077657401821047462981874345682067058528688181581753026350112112042937878208819767230846929910043043999289315396444669803560747546768144468936554454846015265961424566288680467111378032224332872140836965137560117493034043345803251879449223043354332772438712268683141864536182687163857937434917523252578757546801708047797999703416944315150997863624223895518087565073450665021408225046429718338768691378337745744601135825130094437862433931901850776776172856417267349466245433354659541589779404957680915744128199907368683516083723998828327633872217132875515900159803267763318928756733019771668737244838900382750860337682357949125984728684687611627955262691405904613714919942645700849786173175479756172819651490639810006241506308187395720361617464224889645275836989654913706090837513548069011399177249165118529175311864845536651991793111829322197914943585566840010343306049228782819334280173715363164961922322260501050679940444196205900304213524370316609195869743346073310591624774214668818669102532606238538060838581255869029956803703921631329887364205879026807979669055323722196466701083668637795924696659518295902199596549706800567411149562662164582342101918712122142550308045210529868843074220447448690105539398868879308424254260991710486308329303574516750914648809271382192152006012892408483661784656137548537486630040089362118564784607860264638631143737883002498839346768937176328564811156529701599362267777235118835408230717714698510365368068299544234636225989037466206411137054352728081285230653264421862348008302562618033349988830252235813318167343621239787180591925563037836400911347658616421739167069376251214005992287081023508560125758716376167054921888571392214779282272228171650922199239111034463842166739637660902115721418000129417429836899976980353511700208018565323292120545453366640605759163997856943829277995020242605004746831991167724671571277740837676317914095520366856716612159217714923597424568602118950225256757250156068003242444037317904371950777461080131230711320332473942980755343002193193933676716118627569614900879038779678045660754824982401296492683206654168443128583968866665579852890329913383077959033455485339617825519639975041579036341030784117219719439708695269382389551712147658951405123677779613335056732834903524769215174664884979675612333501685893201687684296483059138747892119592821765655678637788708748440214509249744789510504431617143620336162216855778642700213748246160222411732596978618343818247640097852713606507377394420647867887528313244083121786431016971777781805678681478671297548492398543149026586440694349776262160824455505577346189569271157673135426284562208176573217632723054802968352656171298861117828796010407662071710497656515729984453097459470716083669589793764813737386686182532434673425183275446899180802175053999239201564331893001932882497178455770275803678345547078569061739575856482218754514703671199366247751618565898588297928914635769084312490642109417229784077692444225185122263322114926438852253673889404963982197399780809246082305276452259215917278893081293060074176627982958883208940103294762608805300136585709112026625308434124580158098079831208499250376089467462898440557924755109748334018863173208316544260516524939403552705219061587324801727249484585061012791332931993745622633496393524328509778393735274181407317902889618450324725879120975779023620007252865164238020825336468910353604150953190393531912120672634415360329925005325801615984720566817103107271298311250901447393758705178246589460790206514551939900483254480446099993836473540136733604455407486767691305130449353821438009421772881446330270108543184757263894114410669649821863695258254067844461873366951145574259012058115499914701774758581253471717405385209509665903417024231424863527156538501490928417969147259669948514323261816196749951460142004575660879629528076244929622100367242645100887393759479094745809045523439614722288295323007534087022347110101397670350258516395959251413191089282984181594395560946491902921936134764643734013946166818317427348915216948248623718099786567264580631367866695958389242832528527869462130800080930154216276244305038991690754918791991054299068824215445237041192449085025769927175864437961085111456056366370351538457997479619980276784093318437719123829140854447741953158904010362648846133792153528464410346292609185040842390789977656528029694075368858917925917385944267260216780723787371282439853936500433754589131645325695196681794739667235628630678472133501129083993573363045725119812289277529408831778698164549455352978812655409471778009498742645266722895812966825870352337082854447151837373818029726765846124393742413825224582441197088575391918745612201456009055638887417765671000140186930203306552973780660280555275579185544259349937540289126699526043776308838337316231576069413811172064736600324591614746419030163303971807077288103833163450222478005544114074705280081252131342093146986748828401408938883249020367639325072829302638067260043768803024399327065622984611311781898249297446945824456434895525620546501802831106141732377187172609080021460733178413090416785063705397990826993577645353309499818228349271040529039207535518636179044284362476316697811779593998884660038176402917291283325751405497382014536581733340835240357248294950747088334060869109277507175221565422278503956851068394589004950366416534035207279087163974219045725135370541863166683112401264578520868987760352767648461801083928278950987540293315820889061465005877827235102883323929575400149416561395778036119596569149446345242281482071758611789651289229907227539650555434091099740897565321412592351071989349833733702823845849152411598809175832483064695047921903316877796945782212970930981421068586116110320296644345923837470336909486187752769295652810494467770995860440858651171197292496725849223777273745019432917471214917307930191114830037247062827025800388012113829606990563450631831301185772607076360470472984827015143031638894827452476274564326867622717935324085974231061976365413885878363589972423257359992413358461432106343676532198928529071502002879325071271216917562138409190869665047966268560891393119075753234696749171591776626791296971680834660058870373780108873829661959247981639114589417266169472642438003328400401113310007408790955222673183946429124147614041490659840909493560244577328218127843136426625931516415929893388218567672542895294105255055532872190136213651863941762641725470224242477539723453439924217378439230455724666867622759505737247890035726475771072829053972216311361085320899966893490447458693291324087448191609308528933006350030952662898255227852095655725023459156435813289293905286864142993064276535840954359805095116174615508288215486015339791799172983770047207529882839723255109879562038990222972668209550692221792465641925651388333561285003796928069810530077159449342422329915337142707032138829409508158218374235972616147787101919757141174426740170412689941426507171154745206926605551201990476389539508131983884643437444896345032217256661286343697909698317432842816624913731815721227666434865528169600665018214425118085119458777925379787787997914346498906477854235729591029588989750939054558652960401119082494389823819330414513894246471773677939881010590575624440110328064512889652731813893359141876664440457702448651811979086446441095247106306995160001379659598784108999681476260945080000375221642527316894511948130346198240263088204578822446780800282102598273944382313482696478903199151006853963010568669997024288360320901265616896439766107641665327288178509445921940858578642069673799108467477973515293498766890794042074687717997055111171569436326295056126211370098533582652212874718786978268455882265821118898197067582393371136078984616573305867459402002359613909932390772736181728394239932365845922056918560882108224825000967882920071193726453737349047727445796881651593848143339592414201116362266345156167670926913922297382143661392114257960670370225772133043794623356379898524111696691545648236381551109372766003976520260017600252899225498451734906516021841666627841187057736129170976873576825369874078181455534343343151932507437975070496888192010856590874285313992285742694939033126575194147257276681916631171002186429244151119438391272744707956959080791387502701259091697722349109926104207936439346884923102312864740075359909164363407098495505445069880615609862017589859292424077447417439892423016100336758973397921384023570733555558464475731301895510863320352764447634921084855413951493462982388299277285789255029351916542193084297272858192382486402532314399378791660310839957055261713063891671786137095870954847250876316529157134178316645402649067958554039691788125833349969078077775213369955623837473921309029684701539392641544419775201898306178741400762686970421214270694772868807000894458104505036310754958151099544274759134370822976821002911036289270226709735954417625034760573266747648741180667398028759368849230762418275343695443575660962102502250668325748925244903633294121981999864021820138039411587416589606107498825368248417416788926124112697001006245200565026392697017511910939569424284087795385951184366372459150584815588477090555325504586760984884966059698804122026069258247076295060889900766589677819948188334407930876090491344430419338314176135350046885655346794877080759133961231925168223685972782984567831322576350313069126657302572222419779881389706551874637760179057968470342050298815443179983420654642269419891037005915910677978530084493639990238270958400683304747487833217874959692653473239049329088412808004808944213648571140091571652780083913459477696046166523383956881517819262937364175459237759535060341655870044494471112817473743606588648075009072542585402337918627035475329414405241675702969178729292702173175994127418387497129195856533873811754240262291973888560597922282103472786255909307737320624549062337867530173831048448916128112218468531606228579879120373947903086674324591540917173413101993612347113912404900415217789678095888118425083614071315113347008698876603885694017290641456169430566479584995429492230023809951808847880538156376329808703090375187738289155097057310039618541609274087383547760428713190856599042482555132305024663082472684181109802701467449825754631610436117685330649948492987729313666820140379286306057980725721076344440094830558610727444042841704930593514207122188427046749076868582936871560809600738890855678235794424101771764067361203914677147820912500206757047454345547503549348319186598536631762574369623592051538663102020162079386992606551122027030792460794508651661460460369460411009022680601183648257678286971095014138769805618691792047607286219819274591405497895979318019347980391965943778464856553200825058749412708523265081601342087255231269225995194923300521861668888643338824673655494944481145635964873841397376925859280890634188521917814434522237848860841325111723384550516789830999708450793189650563725256103017472566159013185706746751326739772815343436011522347415909613788716560184094164384365699140673908438786285977295661830271028147807648538188868594955375368955906405467121641482865171708780402520199771266073408086807470149852350825943321015112073371325333864420179956156321328695499823859441429253978199488984989767938072107399663834326333451515747820711779120321859743158788042615272380168961203602673027478409586807449413401180095311186136387034847716537270984754144149501584814887164908752117922953828172614611485153879865554717475819654961037935179269805565301624978193580540882022649725297842849370537150214673079598533922371599642261961529535736713689198522354588804374685561100051472165716143924699466409656242741440466079696649300081235271835809051375619101789189765838431396008074244331434730318553735234652533237129477380910460945240361268091625335057227089900357472535687788103895647941931857929969027422085795921772658259463926361571287302796278457250949609280409993783867666245021131500620905954472005253846430075394808118472474468492411950148323484407125757946821849148754063180896366183439340985715483212811276164451771517359552840690002642864225118788106468439859288336639521056846759499948478373606203889265399044122474658536498290266576971208652468704743157447155315796548557177388837482831753116215453423190943667816592940734426944992419249754186615188783239568264032384286498652605807141225641352441282791301484056250342901012905806722738984036454225480977487002045028660355902087889183484283635666246490476902512967753119570762726508977612859918526578394082751962978902430858191883172536428159663556093724619140046761260281997278647213672349486411247491778590222938979514416415934093093059178096892914722859902428046099883711187575639894142101528788129129624849960265683404645169089801944096379122650275814345743918434415864087992074193585194196845438749378065110609948299005235187536884099648016155216948292749368826228962263688128168870079061013022000674067493251421045620606574930657598962714242426532035179568524215577352255763578571016786264811561467796700541062323063405931202970575663212305717624722444812598084859271417408336136657318401848035889951540853202840085016816466266400973054733692350982584364821420461604751555598421491987525346572063374278829345125075422420631520173961784134750402676860990918588540417103516516097766509225915668354252704292777391012481237230035532784221394645562726509690196281896507916792690870692534056649222794730651197755677741417449364943521953328293005549156785371093673664037042877496965845548865845513822699865442561611665529779598880153865342940626161406256190067594800326935019390644327557828385219214222536634054626881241431883313454726003946273646685734844260690560479023038032097833457041490023609095466741229808444514746746577974116872601022661717388885589716903001406733041524169344299896592205387721081527129421765218747197583550103999302297770012280062623873949609372175199912031327969585880567553303719786252346104159522708525452136731562104479134293842355862841003835488483070757235682413682473265324575120856342752409502648765473787659234420761299457792937567027925456414868314920675284695583977045240232770522876444352289744749088701426223419182880367764513232110447555455075816187538917891830331313486818372086435074199171059769412085431799714000657131730717875901302280635431709659260153685207675421571681622017580793943974177974295750086832596060561958707249122214727168111045205677874135412728641505305497526143900070850554665750589656203456766844682577466129881886238160892300607083359915748835499986130185693108838834835575189308675533136219564351116972118205961572209841022601224683890286807818243428963887173833640432935817152593691559503529311630203708493391272899825652536477426955804862117443246961724203863121808187310775513232363948520163583364254535115471636537337185791982489799585439996515163705305280185552967762714370057640728336151013511741874832964302845809649039875432306311230995704402040028392034233884009550578004898593586557905623983552413813977180355277958920789579852088046734084067109472263570130996847932529501202373506248957391173552350857890135686044286953082394160414803928215477193001135120011728891803135110331022386658313992767430574225281630012357738366754321149283707040493061998314394149084915763682806522159976887449477511013920355442579108014411693497539756811776290943320718056383700950356485705821202936922520949296409181787096824772883573999005598716183127537235237990018704451957032802204347027053585801490547059082196435127944212676882371039664377182793322464105124092542545029693947655510192768261559375245803535451276104428788045256115509958435430668527584730560246710129160914323609626786143033502900617775908241806297365744124157236400871135908226529543373665001536774619933853332929389906899395092488742957256473088534337104663267998455859662771965336242317756046780385515043611187147364284419150386822870486051446303001786700935270799946151536306112175831237610741523483869013578498410665430481366159023004169597202811294949431989663043784702504740239010915349258780844565814267807008707755095399775883285614392258311977017673621164952685319755225846396228549114308913041411679300575171263405324720332209376463615411794015584417196529050634069314296604026935110040095836936691506869633300926993345579438368885086703378016653885071574665785561741597834942811633408471501882363207055538443894830344090898970813929389818422410163567314763879219091691411471138936516987064405834078542045021017198726133062925238201596624127928459027013060665901832866168488886817310026788405219782334577934266696720467628742839892741613220531953486164887794145721750974320854671791961531518781707395225186481997673561465750336476365592067988311009482996357127870960222348770074616511918541375028239852003013407778689933730454881529872736227852690707333173192995356939022872627136123490843548418265893677642826277011548279372212960322719671733499235320548015361158721851779608631247523475016953460706554406447069115337744926657909203309498414156106837758774302119382269437662795269537905083268866853415390057812510981294089336173105192616554616212127990655841993498418000914088143185612728416107464283786144346987581433412694103884044431666339309662033209233780590282345017911228540470975228016742026033484938342062454526832466587692586305556833442484941690022029519705058645290377376400546718198605885350052644776151501589795214177771620899623166105100638207062100087435969063922038254322385667778183265504885995967634330395390408806528353110257040167689914313775028135885486143485579328933909642505452341206743757749159783771652285139484986432272299759085084848259008041321920544976371685969955853736568538305657818742432726877835636271400146752992029577154450234518631261433436051858091355746795150088860249057988103127685357508008539161257008010088456373970147982771267748133693160514649481804076873915234502327821916077071376850772404000161846899825304798629381949920350523060213656299227543300036580166763283075887973534705208692803291915304715608371799629531979427805213598353172454977188297609216437731893309400480859912545768340134199088534017551429941445211168392369181678316046039364806683707039650859870178118461760595109966355260989559918874886823342293237315127892054313570840222806855213837058999099185464343198651865668485669006379450799783254350354318598514983681175354325599755496935422237365834449463950348171640058536211389047568822557507579256742448222592155457728437844999610283980508022089963709771634691171722731650270834674115181179176367796644472494979453315096037310779898748118846371385517031917971326753183340078704688817142734936823039399475337027639933917328922227421427666498931705666551863695424129728919638905122866074862691370371827371971051167523621812802995621429095677114632487968033971191738471713185414386224707953346767671449434886074207799569794216033416405700369429139401209097482037550607949040910522612673302481138826004409679046722448300258438408909785121590910255315507713712256176602905751420746700398111275607027106531799208262601162212556055009185321292148631233066433890773299724395662008351507403115569390429717260040366928859807768248790586295052755287782624984168042751346713535552927553579342203504349713781434089199623470902182850890622637881913448929854495827986197027831157136729801274440443061356975205362194057371965187135764414876256670346216677536723959130418596664679981043877224188346311477485953021376564440482563575796944528238066716533786786782244378064110043695420028496090661830092195504462444516317734991897542299458215740082700343327176819908266163103119262033374131968383657112928160186062298228832684365784689037604055069981939809869027926100113487322192612387641446092127516947289101916186026672405720698592625796968845422038694515507604720367277328906659679556211036170353372440850649012919223753725595276192502608068053137004107417221201770476619241458225177004070705493649623276819954769432448459920252936386589479617659750907187228832422375554102754489511980733322604381070053412507091925305558210645624308052696214418073819317213947086656435155994604580003510931059179410144397643177336121659321443180201703842671612153141208823343076318553153327706589758342306959585983638392651211354098263114126120554079830369842232434644824014104762787295715447725918109433823295861188823386885272634927841869086255428166669908366471285099384884603644296397803944829909787349679050796849799885113474476268625467402789101557262508711541739186327486438982497711101488292547513507224380573584919981258056446915044590824036397048464724197317202997790428074762509877177626889900273617777952718508049603997470672523617801094888955837629976151065642019685457758630110359750918011116913054629507163718331365067516781054134829874731268225130494626301918787523666075867198427233388458853807179068275838686464346841297392797863000432145383762562038427977341643465348747588177198620383832466090111267861636479796510359039251645162625336259511324882183434490338163591552047184244340201590057305300818658960631456927010473253003560438508023367964403269917064577577756761426272419156081472956406323061031133315704323316719015656630664933539762715286716344002563392637597486974714524825725506002016240221601680522143555535391092836907617752645747029047573053879019667878051463838523168650178357851623120973131751793285926628924183095699370087269819267118735650098761140369216444675142539204917556496135854710326272815492448084113201784386464237336547759009190589421783600439640150174785373302270102146103235324190921419316389644810062643387628370141532415190249108406191774969258311359809610930971937534062247711841528717553055485405110881090705241045675896908338442956663857134446622477706273914078038177574097327676070064557212670561800309961469205090692492652748894077111576582843317646737360208182496724818880129128150968606229705005770720834958741677798310852985803017770891003552843813211895424892890808932502872782259571055176787381781182733047538197438164519122767020484563197540358527303047876974517493094798359479305909925377349612261449106341140092275822761166063367558120523196878986058960200076023267539617703460696660297238835693492037328878660898339466903162161976899252031887610655662849446533500569650438426309111070041020229616986220934510772376675894519367457537152845137288133113611917079099466754141316031659371069365734018506129732158353683884810533722686997853224194241085873204883438232520773522962711670127237020726569921738010429313749320625826552617528644601883311018788653210944404354408209203551914830830906672656997610377310184421017723469407284906095199322194316982929130908378971378029749723718395034648886504569835729710071165565260403179842318506655765049523218375173121247353568563923870834357240991529683568080837009116389438016807440648346639580342852695903786847774022981141622121971670684525989808545692507429003898164546585510836359115647863937313857758598599499123784433002560804209208071156355619954512920497286867424994306137019771720504421892608405206481853829011018107576211199709234123679514694461179652435976526979405671172699730761053227028516527972731100939692231638548543972753094822738290720815791606172296982372926249860231531008252659394652163192039903556724756993034745652378930552408266985841434677520596761830290605291113631493846551972292809215744015324562242530458969831970448666301799612890804103598337832159100717003799454285103410357103169923643812488334821224325793402810338495640399565301988932334975341738049412087887434793580060212916245219291664188706556602194454780129208049865054637932130949856270346535251406759413155885457870885489989537019495615459261576553837016522963849529808423394046112380977956943489566984881637976364008365221648285820110471853006218083505381007796618138702476461096855269201118243695740086571672684715490173474841677393200810442344418813638751285746623576755593237365605551522873294799794036962315406691996548298247015161706454351350010507642013556711751784014819006583979104096281087897883025741622454606491372487728784742239293440690191566851713298693663617061799311367208367300665457934796228265059463258444483270485510307383215756736852158714642707119821227223245429824476171527465141792801561934360165961024652896597645223899827268974636225591802959621063451846630746389337189401459614227124159382423842839514588455211960752672201902724878570620513659519096849231296952551299860063865011763788258373317206316937026200172374625181271781526142356591252316205625654531975571640388490251984312182033186600789301001280648191612835786877155864878507162384619599463689088023561849871513281695837911646406947038847068987197916538804522108809955505461353649984342083807090689896589099436822587423923708180588520348277405939333438081944777460838319127762370083852252059693807140402533079201313478732370598923227809830316906757474141670225618289249954809673373760609334250054910866923066029729645927363775532228825998298085645261178838189856718026897161183167884313657781615952898512793629460360459114169799235014696862961957725956690085507596699446375195805344409527013083198954313088850922762991234944996829683811002414237082965517123280664001175518476903118080439132657949900711647865517344170115031087417139551071908866572791133985413043235098766425608023241860347034180994838660967205322729857678251269976393892843745843278263025389053186831914493538446294853070126469240988056863561393498353855917358160686310589277032123637399083386462799854024975177409816992658426933195568428245716680676144460613549627048982536465803182165851396113102579449872450911032799526389038580626990411979730126686499775920335485338036853480820180699681545517371324972663970445853824079231043654341845960974563360114251576995756261061603473156193743729203563447563136727360099379899101841510723485760428066646600656452064618517379354678674426871543297272433962704312905301913377816464176431298131572173980556305320722183483563675510939441400450850525504504395155116525257890207130804945384983246190693976166377227867248963254891159281080104097771715724605863685337228772625675642555974065315369258047625469259432568832443556552507298998938284296333416621670400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
60000! 1564137708026066922460319891527905662298562848796042886150804804092027277699902828752409024165649236898678591263973104387037205838962497038894952963913061483196068508347150992641896343026529532317439288281082478409769778138903799100613615260250625562929504589589665571288612156804598165441626618388390278855997320343763566173392536309824912796550473288552819531119526983029497890411168860388771314921438826134625252123582284066484162943473086163029822017398648508568938506406273376148302450966953568585847320531602366932323596032511081743243006023564395072074189590510001629747579487298240067364064369756651482657942481824957098178048954299595551971471189057127523142456793551011022903949813570063007150952005207378132564700873875942764780165395036078881197092833415164017635715473511415496645695525584600326427488302476876750274268666204980880146191366301243875708060433856778678193566753107901363669696648130767943655428082552837452574064052922527588594405754178902354861040587838334947129814072132996902574255379488036776638730129391857890680179099204197460475061822537514479883814728906869663637904060262984120194942965463852811484299145983932212088333111415548571408364266779240985159750529910503023859768006765089855136102779615226671371008006920095384856327590752248232336831413636388970224919184278312489707010364068927986298850772128104988512822010968363161600459924546152651557499426299868983017511735915709094526907591666212511270609351450054302825891295187833488321697793636075987072430859368978626193607874279697741619042189290389854416995024184829966992297244419976719652376754868819784642534684932910168907674394615354059282693102626189329444590355095535063491625123031749377562704762303011068263555611262421622489126468989612786763370239693098489994132645658995253661048234235130575806442001220529599402130391493457933786024728910856673258768311846692207862263623753120146358975661572270368073391128894271571145111364218855285051316397403163894777564918583635076007460029922660288018670318703644450699555643290827763774664737555887471890669281381617286071141716589073800648415301825532516058907553309515292634486548039177960974414157785341938040846573313230320893579601808272433523056549687283328128827859246635393370754004786476427495142751223288991769838916007020550924826662242380061709463201489422918405815843559053688217696804185924535284444250914350232918695435650973024555380034004217371623890815191238842412271731615892583389231652675705678878395363251402544482990629512360611974804343158919644748023447135291390456893434299983794489857399724165659272747953055296965985623758213059185908943959641540376273538170448006497796072003950621745411912243901871285728005751734973844460996580025043886814879510199719901219437985944240631877711219471724744224960004671844056677902509683872305309419500933079930200328173067708708598973056739572189034821519155485958800029029768377545282911325488019078723075577437808147807405326705477177462993402478238302795848583231065651575632496524486149159424618131990717330943465483775521199592359186587478780226266515019593506349550525221110269732635625943970547809430223051379083932815931336085159553406183425343357119218233410271487922259157038637846835329082457575468039836502879534721766418991876484589515766796620994630777154823362032969880022083769541924883310597574671487118434758032585364884159372773588401187311574201433244634024611531956145285977225817409979132648355980016309944807736329814766264529587012207495452936278249640860610286496560930400083151453975121517971655510673847256675729811071335841532087564069328686637779842682958387636332707019173340233736342094604940682630386846167826123944354675725305902008084049147628119662166588872591440795945895137036322422877362815297168000091911352859886576138979599254625775909284029709448034284794004386447830931074741516965771326986078283431436124929814217556466366998906124247084521972745292396134331365873200995685036379699223901872319578844215938312808264030125915196502180362261716773018050779022739815821893860276764042231541913931504928473834081905790178141578569620753165716151863519439530528950972063840688727704777891184910163869400913692135926714711927139871901972980737397943498984872095201373340945451055019028056277356944211480587524428785210522529530587078212757500449111143375412933376420232574857921726083565671797968926009238287221109380471353280323382743547716596164862822114878161303743078440974064690273469326493998285841302720470546126266177905534039871921452136668775004881046907694690529512414824831691212850537975263091087184313537033535078728973172315298252335709399545890964712372932858578949219345154273847255319619375487874479712525969032198380641940752149942841196426178007680977386390230702220527607793405959586790901481338582990842554009688117253844856198669894182782601585630643764808724650996861494409035327981272346598185882122344141577931099489979260856631262237101328406701210195537510630107444042296591243611547842240949562788298610026608314882208032783297334983697143021686290814066885729078834468237457172286082247297035407258122727204728429564988904230467391502053625444883329523640985011414535637137393481927833536051333227413658137763666605421307535009887541429085126818967217722350831615728837420025563775197644622370220688468405302142513195686924704364741455363602480300038033831303861367568878997816000941134599553432627936215889984443778318133399396614627072760998327844454898674026821157428687693615670259934966736771087015876647426342520116470996164594947929653702319206883748894875147656273342847121518679524315371820929273707949904360484398139366462054868091040686247261490570064173533193820495742535057872973120438310310661390486199912539117014030259070733306564714480727557919122441851412516295697306927106585276583172419446594939664810561130831338719480748177643002234393717597652175016742772137612605846935438248225913881258918971797975883226245154418627689352021891791155347122389432542813087772222222895341011609459507075031784073175486820227088843720737524143959940880772055166416824990189162334808035271876146063278821520880139584893388225932765741818427256897664473541828851275780852444054693080413172580093425071248781476994685793749648416968003799663870007227153341710051885153260090526935565665743531819412052532465708266037512319523917563987294459635032794836725782471460071582948943227871679412333906502154832934177687872903253433664303336503763568814858376425737448399638211720478940189707104884189637719729633211530744733288591054047249887633674281109177224476404391431472976510494066447396049291785824905502036265049440084699620750144129661779534071697748369963134817081662852702939802899345955850832827917637001009920573856484819672331407018942291710834180996749164791706701880888481332709368865599921861302856350983507360236494003644238771451873626059959677680700140262260374949210682153910223319233459207835641778839031066132095628983107812671533371833817115254459934614028577159141096807943819809984175439393254887488647965165844449607876893663116559593067916452041186211044142623406523706338610691760504968982510553982711152742363073267010394438266259195310590531483818766597271694699164663111632976710473319560093643589453610668102073062753628776977093324982841110422978918850649424767524558704192707675514057860230137797929033895745552139018558668940728158027263751591445584803138658032867109488173562489923404453736555781834604001764246915995586304448898192057938673381483999146988424450464083209440681808206259724637846563700918421887036124193831660365672013670888589851265695985832265225462194769535657705330120762487427284812838067599743537090254966891082467161920803257012088215261921461824480200979899372975590696852435254007932919454940198246473159637739442971351299332777361925944447453826031788265623212473999936981587185132981489127057123158529114028878242011824004305851963004992042778221153632706808852072837130844561144006115438161883590663572851491521615479888286550778330048772920189607960331047691719889083000683854499233963565669128633338474189290914805882597951302935391855193197927696504388439810624198330574771273820577001170673656053856217311821736064411036606185937589683654305919489381644803136312778291789509767099097495878205928185264051550699290532308455100684611529387369520548206897483542255745018705052537277619081787843218673666700359269443838308529561155610858836354034129008821885487977828189427800754974830210029081915855415874352559549249245632368978516456527012256745511194388538317795403084654325653197564530838341026268243150626093771872192574298098544668180751150229815567442754386758903903437631168174424133482854290567516107202552796900932314949664119057351634944914973413013783204041326048483754798103390191607839717695240025320691997972097805057773456897786752171687799784673509174363952094205106971259504068889992276524654035153938850407701355268844267111504868520559844819288114748010230625431959538963114004471791170059590314542284691925075760963129651842514904316126286100691090403335214209485728840908057584200577163073568412337975756015569920224983469401724615595770420065577672220189485395222452207387870565922354006595552443847821445176420599750261641153897947794323072874080349091052208549586951105075830457276595875942382055066986978324506220663594438091224049480558921047391041135050500060025341683264542783487080773100515450070191737173783901589885103142235066168499966164811531749880172856924806313647047942340653761738880876597411025618713329188115857038587978602307330650320979929519741230349273994925284556648044356442321402096915967635072016443248030847537206096792928708823380673314238349931041779856903737047708995986417013045841512004996226431645339992070493587650731551429169099543965149515541539537120609057317077590817306615033150898617502081824611411924069719584577483066538199942911366307929747820988050812491070144163037437661156006890954687057415207172735483232577345992409471873768163822298494035810999381084784289318508576396446129730808963402872081633898971782684573899624142289849530672789915066638631140106952149090102725042196934271780228383116893702418204662807717995885165320050270349661902476663741958943680455725601161889835891316681985854311429175235088370392187958422411922381373272846770568198454865343460865930834668145011307221634883931471848729764757063022987762143104698180683167589641157304776474950469572743270403419144199436717049718401878898667040678322254009517614799939770671095061524194326481279118883983474330690834212934299548165869645272055618306444549785671015265048499838773999150661405394100837024864126714728602522204766870132444497516700338946418530698931346479775677457099104223214223797107699520670420204045762440854195861728095465875253481502947903719553816060961826257988939803426566696272165618892569449423069826676230271175151927153281722027023742805086416864049959299363947299796034801092160294821525697138402502851300411341013756979338315851956292607513427003841440768760060668811334804243945797019294151231389388429955126750046355402983221461926023727426577897250071826330092753113904168531529437572234000892945718329453148914580358558769711464601035175981143862328513591589941824385709194427991954814796711575022019579264004951751483720100062897522350643728722424567671944454151312184578041967201692144767705097458883730025960488564555315231452179738101230477306928665012570248225616275848337743378493748715713861310725369129810785671345119247307229407678635485005356713092771780808621931005900085521322061338923181963919385308902860709650697280504245825232857149955083379158915605030767446530825598505240781778115534113789652401875434909857815023912780713085989327509085896781180646113501782915091995539548407679250849076004231540945630559993359839860016926843880912958743630783616025364972161612560233628458432983236232361596430807663277055749359361370852533859289063870801129745762287453904985332295852790345062529742541978742415556142687982749783648019175964191440274931404848264443015723201678786271427191411551798573551899558851801734629180670486033364882045880199001872664346707501197283056092570654164991573949081532930844088083862268881738417437099597023605676960500356346095920210757617089787672891407917095370861022710856231236851276337568365646662684625720625974846812355778590157809799614596742881987939200794814156988122557728225029013345331050753487080023353622494392584932306080550314481322992395463092589287723644800203658903796840560206927009039501991681410651298941275633853298499762199127482273462053215104332050652428179234975112078274372145168879881214617971372633992998893112368760369814099926693199503275665031138765142686936012463651212440039814136330421994664422882378768942900662929147732136390871205401952382889930729419592709563654899221824606365246796800119988198739075305579060867141571224587226415435868306547758224054838917165457675956451024223435753695682664944450272063722746047475934510956222248262328914339054919314348062101145044944491311029930777399786749869515415947703250064945625469729139691156191731998917928259380621991238553491229697242293787350915368774581997650091993606689898137324184890539952084791484689204457936180243028598123641991974257270426436492086048294523185599402680839732770617987323869869394920951052930239436388455722049806663766078482391981883043942073124965081139931284691090165085137737153284121433879958222409016995975007858830165907646121688794980829554700388455698988037572643508455111343334774092900346554576620916324856124072031313356089280560451432881738069941149235012497819350448997501202115599515970543711511591417492628873970417406964584163092655599611990411710886054227015350656030507905947466290102185074016246234771740429038064951195672487837465776377569645942571693411613426776185565032921309247788176367722852021714526854645300221680208460170325726488863305246237817554557283849647165090654781939475700787949219953134195960404608962845894774480524084055731975636509034755965980692979678212680436662246011883741589916586949172840433559547456792886459968229044231943172661815156025126365817056853215531785392545325940914305559425171760719690041977193541862649149936214418447467247550206274867110872064222110021295941443831490456091963210022742881815138017451299539805467654165762649782983664532215084198285844030390023169940650279607197387773207651516786178372656646266769330527612057213789097145845184158824392128692216239604902333075483468545145932600509824101693397331328974925401682886369038312192831148778277133191094260912491177621296036732676115218441707212661713906558779825027915976792486951716481263169150196282655108969649224798467405861637163823487628961681250826650797350578033021657803765705074907230979592169265963428277529189067494603341648543946744013328772676023457967201136778166926714177772300467651934836927585156390479871475543844963174611666947573426692737306500273946770325206006647812977540189745979548358333077139324284563369018848268362235436862370943380393223015740092008713889098456129048549190226024840037990881804611785059932111839024475896995097517276905432861016083434979437485122450555545793099782268432443165333942646067822280121919391593018120223461785506208788160031620150133249333500369551538976807028132408530274384904908676540087953488984273799103883144996379249293552516103458700152475803936434263671590707511640150804524598311022106303355688134029602817892122499470715673210121818265347716250918446480382246444803172085888034791886488692664418650740604913908140485374402446671199049245969437954929770201387125922537760615912315873919127438441913755051778832672716902160646429264363273593801803792194327867961182305687949139874820668548497248253819586792243322906728743455900230524997029301807576893661868630531182711673595740190409972859035263026414412199631847937021515939226437857681705082043301121349875351766599019011316536513876111882438066816484349207744439851774737751997276692412335135210300562481137711011442842781788641417129585119737882466538996738733834852001136173723380984451673200688246140479390800249890764519880098123229446933837315160437238482957781198442121987100457078228634904712450786020180123134952311369647947804200301091476163997562128380488679986985231539475975959199937173813994740957911526591430206650290483651097460789005120913328364792945460008121721732315568404710199524786742298131154276564911989800252078139900480181792236568796956420622081579957980852070069033969033787838140064490230341428087516564465310824987828648811251240747067105229977781759014166211598956841594299318703199712822090037687003778258856934799650721616215565985810254647876369234493966028053753599148822830641240870661142764060656992763581725776370832289398539803561092471997998509619959961796353991790357562216321658668801201945760802451417919090192151335640883831605557267386367453898504876440649094380562174077408919168200515813069193744468039893850562294172721811498674109720402464478506606999736573733188994335996036205080452870516033063041950069911394817066032600918491732472917902267024818824385394456586020993400635098515957389490232776657725403712987166880707289962324588535434813419534685606450591980902603822829572978870135654239284885165859660230401296449119053314834747032188906039960050304244559268994042338181771386793186940791575974631641565533800107278735443285040239732115355575848988021283462765794711127763089244599078592156398089512375056974104081428210106673219130815094687871391843452146288335698578480096461636978233988146123878044911542800634029976143136900992652310924749552053351885792894188342527853380301174138275582677574368533906888531120099919157518756913338787172405086832955145478252636435069792492006798754581136147046383850861391979453919847915123300951961834332358052177533966524024344923256720063541909226008351018937920399041847187627228127850273996758522865816575723237881240541305097193578861990568901246957023053655161098285714211532697004425909948976224024123553108748409867221624456276162016924769119729629254017993729418604298438091338892070297510039416103425904956707511126647003567487561543828946132671815659741861756416148599967327454687405892952489335614967512470316789590683828655972396906701046579812401662841493469760531079502019171499735987461064816013525693350252440448057698019679761305282658536427289724717675974232120143655568424719005931770598612295998580743136229623326187098362624209674056873186626952637511734110692216168734752991856923904304530845152320345986682294184616716492549019303828187874716825764043674754918876852852123902029816519819256363447939758436886358072199455268204281624894427042385883131541990615776180131936681754164613618669536872492972111987655566920351412605758444531765568002120153161249023685064526499435498144150290650117206999355735737988026579144333116078975823929549725557947277955207761056566232122942570474763580697077252087755918263149718720166073583351868923014896096894427054028101326487168712436343362054094996795905941948682581590309280148462751724054773935186356455768258442896231587308869951848567012953631491841713325739944537721279351162136719367528241581406415484067681560219672057521695642077288891914403591616990643927017363266055678738690563094423747583050443221177778135160223950744010087139205790450313428317141618663990743966728356523362006167790196115898899799684233956839249347492640847638476183473373088631829913597296736513720624776008461234869466186885507924467924600324730692240515265849701743151079391667744968744510015984215533847840318693329488742413380942506147006104622345084563585969830230663909577158542570855436758415911258049009435242047501983589104374683544080450385284256979929937773573368687255012377970661758880411951977400282002343310126116124064220381804796640819979291337461775040995589673380101563960127643308986872692309867320580190411385917330086118930678650104923355363425530894176215509442810698487031842840736900125884027216447491952493846677475770535350625571546745690438409296221339357058903322681588238292509744488294015383521133634322890595978568018573077318088097051124865310538044884278295696752915355202544560546082055066050353175304235910213123228492075271660862741359439992151374818358721223135005609140796919208084870602386203374831747672291002391325658515819080156650117274148981811053239245113230985262826535402054199299499014688337066092690729722383975677973429712783756868688791174439417941009412118368029769335977205648534366216169109353243732844904809557012252647280615633164427176725453691173325210292670258594692748936020916314358518238810750818097599471208820300526313600638690890103400615499903528190578853711449180066456523432874929574241144740644571846118022452137019246184051386164347368697929783028609269791145665954065058634149470118068754731321686212297073250712900546713396685773537307766144778742823736221773946004496749650343475390233097058787447091025617055071745903404080214042511546534113334104944763356374232348674438052094450005421459769333383076520120680403377280759790520415011080970492572482580055801215901659713986894310900079038404307068272412576379459835746205318038617589120611811212224079675245785881660467940042938033581208669453317451317411463593986079151238954491013685225161529178226326211494290480864173641663638975325219598570630632151024307165248099152329392098120157424300839568177498860581298571206663443414718357082923794097323438666226001317871670262729875843216450939870464233763991561634511885091695748125930373621669686255305172770447615418703007799726313358842327506136132934067601280537230251813475177951163403721354752529074605191357362699567296295216714861143122644931614456208347121323212859567007607139162949437664017214348483302293543438346468320513303148640672802873061984875259429300678256331644646448310166758488378793513374496459693835668794706593216462288869354339497016403284523826408631965610936800155391012605401102117098316410949068588928144933901717595522996883114049053056677389868086451403881743368884082032392997289066500885802859478754685047592167015510494582941676190768875159404183995632912405872104459555536051317386495043293423906329137380151117275639414244696665690988612483272889271296807538099885640022055777258116697372149733449118547099165163597707198778923424323081448748702036698768717623423728003152167113216454433493762532768343976297017781801666352825240585781912595922985793024393177532170884446882196059251112372106886370696054508352605246661097169975120616683218609045060229446593940885032780947680999078557642558998671797600100509857168884017783284902597877897822174823839998151706683204954552090448452762442708158409323885026862080980564568181020971784131512177597430493751575463690695136367080708940541337524072659700836320286857836094098211900752806236373048679979339892510758120260262010869727169575798826195505940743621825600507298416061157318705633457007900183566710683814065324629379255293532296634720782875682936699390512079610665947841643438190642836946321355320837002180460100021214967780087382676529484125380150410459080890209519727646162205574658669947225264972144997825393271871463378809624073071366148265489190477676462963274424142991070939416902932794211106546389015780664428049637699701577280152841126426486081047209055219405780857884006640457348201576812443891691395453424967966838288492476249132541191085167804720969454217408123635297679902314798005632006658834333704003643235143463696975358914060693237333860219778596176541030732066056446261404995445326847071993675414837911750290701154763069127550140218923510013500691066383692514314370526528719262282008918553315979305855575146238093842300123131791617889176528653405847905449140263943114183908998339267744275154417681390944546366656614312799279074050870081001327316453599751971317904496607216457626092921790963483695728999941457742826342846727176184286724025199848926453603074704702567413600388604261963417522704419007779409617250907947929594841362833877268143666929800427487018862103371778110309108208311570373465388709667483305961330009797479516356987871524005144885921913637107215025771896103842987803870357559813475575455697766025403367240916131344917236521549523919289473507909326877135795757172778767400077982030290321796729562326257175145920635049610325202928066928506459637057127380668612600772864427873405446788591698300061103929174972424474803273950964556547937883186103623542741624081930243379557964441859391557326838586707590387389201604456997677095508234654487755774565795098475694961763967226626753279380067469732823036529148542198742459778759479183724390708422130516277729255742949335425729130072010667777989502595255085644484750573483374783507340628761165226694612426410776974717412808996903809089277349260887471672870826419828551298342806146482959440090768214238565106119471830744320036038791706534189499665667538980222961638221815745517931989751116009834284399933146267547777190608381578398602226306536049967232971926407192374646659635123073955840378386008174892495910555338373185623022603125236452122435910064761666137138527600520796774540008258904460745635401603040192082018922784300378255144785169497560131538733262768235429647648142367994835284006754276000301248658410029313696650197085823971342652827674338190062943907015754719372734147400984344711047603583354077298407295105661572377512201787542692880870980841427957238959334420435803668276249577681867303298137495504655998576715438024917061506602340533625496833134938903874882238496861539649054949148432799667306414131670314727828616449375054990587029337070477983904936215511006274192048085962990520564874885596996602126408079944319737913857398097109333967978316765088010320910837835339941459940312633829425787567544114305803512819503914340576715942351489706397137377129480050022964205584129144558803999114673181586249695367992757152641667869264173611372830270124619217971716408797035348713003511954666450067551659930671944305272459199834833525697836404706574490729149211369094588218412062995461387160301066772560682493678956908508458444670687311576004103258698727235212198084612069948522814243619443043344451405488564017459533789357920871609745912901942914656529580271995038975968003398970220807680568932349610509303065158928538315555262979838699336003128797818713397949988907754238781818962128889021404234756566019447897957214930168588230131274005914244527932835868500742824262766217545790172095143208564911149803236525233639291353385834449779274216427402243694877534877705884013086122762652245321758075737238833572933864128120939943458818195553960155556483353080352451461991094581022946694785851088007460379543881315553313910739279274006143416235259481123299104260071388489475237110140860630049310049602039150401018121985536324310793806131164629017698317961939268656058066399083696677494722302918002394808454785994408231376395661346107928281755187344811522208250776311361510609256288648162370451439446667408404367929431256100386012882944389824340631358686786039875841793179354407997998704593141860348261811972852419467556002531364592696435511990283204989461600982193706161509827726887443854887651109650440504912849699967120030386294109943853149629397405974524283136584246785506385169639696643460554300938373747417825976305605421426445591497692583547485841008995573320592410328315395751545043753886385416315347149976542801902454328330422766541035287539084025023739155783233790928763460133583334390685713058003747166184124059796805349942397525698548344563599060085586853700454661258468643121964988617494436334845666206541587903479549237190626227792705962169538762100536557922608363210560465797031382638615700548644476580839188118704915123647398743613090273935087358959101125000318549505781880446440064580574891385810622470046647379525081432051334238461719595585389801105161468991687312642894913009735824405021648488509333123429222002099009914162531001202890024897319545296166930417882466895159648960071331601328656048811528425134195532179994688565370932430182858665133754712993635979805871453765986068426652169765042384259615521521949621001850609027583160231371884835965126481145544391525297784564175090268806545313545279217657615247626233418725002357590841490897663860376288022142383580951400838252634149356149085155705531884753926696838367332488595230235928096464741419602849529877840909871736938223250333826602834874345661343229818298987722888688659278774538328919886749211302257141429182591259500014693219204339725824210811376834994487315008419816203454797242583395069793613160906446616216676503421150717474288452992466876067487994960936687207373562346545449832651974961952579856867315013772597251723621107997347916950678599984125007555563887933872772528130553397951790762286965117732104590630063609402644589407557211802254454074280891568085251772509692963194181777914377296396130840041849277205363305697080944252241956296905478167582652499523570456553109937461190719384118938445140864425385211237139027953848057747879887264099214692634315555136000931990706421722633032022545327119548672872283505940361489922291758269187036579904845968137139413787802487858818233397906350267691589585835358991761680571058985540850927686034334458497823975757213828499166712388658033978118714716122263341632460393524898001343393442728069647348268234574617834137841682235836986236103611941580110999858470110188032993296216530595787052241629614320762278843864302772082625565424333833012074512812047880552888661733445370449810318163274482745705838771186470198202063500926958244818092455404562457951985713688617735563336463395732092297455244462601727872084765366736154485756255482986908599364377695607654154568684541370919270437459428732448809018268705033115176560508299340854413776825766510158727779044300622998462355934370837276361231986834916483001347500126281842222419947563884252474808055369618202782252915591717593707009428596285651986792479244198037981089613623850573464423082025086208850557094620482875653618911763699543897021521489627344762839520477424267700805860606473750115033248413785848758218577689370631825138674017980448432959607477350154871721501550305776862789320917895864176526722846092761447997638209196416009277254093780996613228869851360484821109212510727962487601471073019665681306847778611980145437048412485466844733315760041970228395208785596168453325371895857007950608796399697611933397455213161774563004073184648561574937408171762364464467987569671330281490537532749931516248512595599108374062888679696214225617705196338712406655775206823763806956600138007779882330171498219529310227877033614725913301598367418586720921364667233105873669636861317043627723880264499548914091177247061804265648521796392272452009686751401687058272563750375015537581001103550345847988255385706494245827408980267780463792609225932481426269642673940742150514700137109875485075075309943908242178033469155040230374248675543681306378457625573951058075691546552341445045269385637612620838484104419738994177986358637112005602515740075170717677250775330687737545062594611773811358649501637403371990601790740451519540412347628602318212705379652872781775497940056097473800932186320861118737774583309788925163258710893291922615336146631889905716436716569692371327584756735226692440768362645211319404272720763345768965134331145157983677253782092793911431682038408712573792254271429015697607036631229759444216911493153929343909642075170851794850801927040038115234148161897449255719273124594654375444066268981436919204871853580197671284615284577450659937837043483030487330264865792801711131288998163401925823550405513264663661329621268129427380607666437299378789611460331132918153437688616911005901551538831031322131947083648121827665366749210902985252945839696898611805756397214890778550130552986848737782153357601312936228691870120684672534900389336874547466522242160406857056821099023008298477389638748402058267033878184658516189040655723961907815214038130124102207313664421090099659346208490863733967465633301181132162579202786908325291311246382104441294945269962066217038492661521938551092861213502990482862722670444607483308515470971536632599701069571825228656187053769708127805368564415738928014254573065925548915339327679934398644484591882701184248797123563014783828249436662182784240700188432551536408708789805191535254652012041776043222297922746926795914863364042627155566175858433191790654823537737907677083113381978489294683455681942270257026428450474449016143584303175160313669302719160845135646689364543778532626120415537731096875619884506797958351179963839367056415940585759447266357122070334369515495392277716864494205507879728328026573114066950176799231093475436711712743991563957178402374057835854578885361443143433321032945529435022953411301753507844805361909529460301983017277951044672291752028819506235610834209466959872013888846906566945072395139124146175813069254706050795596968743820668243428087606303933931608719009102786721720057177207983378396374536972173285650861865350717875900876855824375952386198003342964452989532616275652350614901940984611711526602392863649074583775267976053051918800409788878900344988944020463466277740285030806643604017230051267341805154767353248131374547685349475775519762029354190282969609481397442033605698652522574438322147119354450153756746395021852059559595175612591309183285836701939879699543266700332471253490443564586095825996043079591966384080971751537395768492963089719775446528244110972411309729667852794641345292236979883935435219303806643375260906357904996545006544519709706606966647464483069287928195180699022582850766482159060943009651574821419741261938491103387043910024384089500763987648624815221776047574734935190460469253660600506097928526669076761458095290561566603020754534381254217127600620590642644683040764838464791896578382504534541957444037374179954399587116131806045690027980931888187043670766770043074338344303526070180068035713459283648772370219789532344358550296717151717548163073172140095971756365543764230755147028433270553585797708794848621314218319514312606297482192826131884108560804402690984598029738569214335394155944145034810180118708228100027708878747694079553842783998265095988478552704482211011584513475655590517861415869865133810793402077374753167741138685509260836705651262290614487014586564051534915235510659795857977278716261183045213272059007346802206088563110808339362067407526054327188532006399329881355415738290813834520945935593006434710902152893711687896090934774876406957569914370779057358869751521044294017144119797170259887954502097316479132020053190245478203398801168581363018802210516153084796940344588203478289283157478650520013591604875075733936721381982056752750428434564221175276289358224362605619950566238783532174874231155347131845753340166777915976616082300910275537301909720466492866376141313301108478828899145930731049990272306841530824917423581145730473148396314882174675889016718976361900281164543308029561512709889992709155368516864437094259769254141507043912657078220197107171048128157072230801590690702780927123553366582898794601638308789919990050353284160432706984816434571430795809331601806651904279834918318033811307504957120817817447013494303660587445929802814933301114016464148540923764787994418410892997242067427911020659894843144477827519084821043901422017236634461903983430420315103214738400151057512950808130059001404418293873802195191556664923713234557785014974060752787840699604345815615778123567194517670411745491053298324274516272671526647001675147451786885256018557844951107243117189962671910217332843124907025202000071628133711546214255789674116646936843441774334554454253745740639249893311597070358347196895154509510695010385896967052778278505264291712463419650821739047434215517112517257305872733216387852442374130261280098342733312968661790752178150912857605568192704897812608341190331870488768184246110324774597301843590643434266871495635401711127886059197677281265718646250495507944489784375392895945000707040181967082580501182363544855182062871996065297583411257669233975020029969754522048622496282480966779358256106308838949206638428246185879429737211582903213748878171363757860799372299789752634602632724198468624537411359170207777107584007420638929335371907447048560315352916232724684252504404812171248146546098685557550322037898832360186805734805814347930969233699398854175694942292654649975329526102982243328674795986824768418512097335555695758226098627824513942334703779388522221580600213842538893437912795889795254937295356394541419566865579228412502773992174430127328606583454408421611735965987689974226302574599362011498647963804661551727300550267710948496294432544024994661169759318341284274490022199781140953936037794091909174647647056215630587873547343030203471430149495548119408978858422611930651624003145703010786786991931163163709144064478995931996151119991557115426050309091638479314646717891339502646141652521042283873781307921262200971400935183661341815266501304593821080736049789653292285447884222718646977013376002895438049753613141980947899319346809680658941781973877893604311025228350456592651220317695702708274677498583095377313328984784081692231091548557239026591033204497260925329963222789023637711791807538260176463708089380009286699166379649672355181201700238957846015176996176745675351041056751219596315320259133229867488312303856088052425783591541948656967555878399815291460490166388025204629611059450797218102360211464938633528759209460632686885653095793853874315996244947354716060281150697225439867235077248712457583637576262262937366347793070411905629799855594842268386572575126445207912937264939425570026255443143452172889609672961744002242346801553830184553822540751445479244644265549736045666511122848379114907779759410774936208914874742692796568146652517051783328480148503059040381678145672491960945567954962454247812182963702272722094468025310520165961046507180126356384928400900010696691121955127672777341694847683649399921695470671345594459941937799583131236405268304942251539425112299789202445478804878013221846723789657129334674232027691865650001498526247533341767864917585948599498380713905072445191062955641828843125082157358927628855761598518944191212854439750901229715258507301651079855851794805208016358469449363101129227165909881467180668632161376416290107854688011974386479125225265267322513214193598369137757983762745074728868470353605946589867917776239189509094634870958189690343987698710038089941912476541721825712584495015195237187320419229741010723665490411753638653661219908766698741904054792197815634757593694593710735196645948639218003376858697941087882435432847529840669600812220567638481254567489446774933797142341632906253941510596242254360004438688448364931251450742167419464785929498145529457794140540461664871979600652012043365116704894659654011146332615651779871800944322819175574903871395472598113059493888222106553085784147190577661156554080936016519891443648658935284736477354266850877178391937155866646488011750234703380334295666059165693588357079737027775737757530831258373427516994059883451771927406289608594249746225412126443030409283365725628262455854830437708781569615570798523945491503195608980926800793148809196101817146383642198182959955703159825579266044855784191733739281719616732412929103620264800212717669452686166749912023971507083694270527957574100508807566977844937435579019330146867062464955812913811947446274765022476062519608242140194989524367384554094439646604123247128659565024783976956595684540435869581047735528733733068948050444316636603971794055383303998511346217542804069281667777823098800917047474055119443126790368191216120123613232868025117084452967285097773188401367669653088327803453402492045459069359130878609971064722360545189275567332067440969172141610040234177877012182043210350467289060307558783485733673486563686834421038709530783263771005912560184845506139783432933021971658806423521265030276189094041970347933849892016374890157427990838049863691058172403593521703221806192312189043837512796179282023882995029964668732698201743783141341064400391793931693263646279193355446255998097483882825470253868596632275736702760145385060356807273993204493145170974657386801413674520148033638273732541553986577199949818749688471531377286620995265002953657034841166711676860010903762618321451538333977024240870923167487218957432475436348151513978414045611421702084992871092145535276415280410366655928917869240010369739012207987329247149388149620099952095476416804984911308443909774527928180774907972009338109593698533928160218668146314974700495755977135512250106256861773568312825332890259010141872422488263224617127786330993996550768408864129589551570555166783070028780706855627037399607064322763525323603330004826605808962712375472712437854590213085411954336545612378927551826463222671469840919335062612401169672057691971680691469926717185019576044953012659092423415813808040277289616537538310019525679468728637240729042019513271003638216930659888558709719853841023336909512184234312370277096817917384219762922962011026781820315231418292613916527010744417204230254459891414948498965410004451464456279018009112112115007211333083162217036218172609852937277361499595922343578477769982137227399450104473022059543702133077219776154959754768036996186069692813777718176881414902630496843007676382720361634654614233079772711164016191000677874997071488308807065184860303447595931019763043779987722343392165819644886188621211043834944474694775007820058195723299574685324990019754942087748881633850516899054551709712639512912231384844695213099527657997707733290155667634334001553450595927639186011657742281947312804480616608608867078093588264063289784650685789194243904503425250000859828142269001541060510822726949709328439194806406109258158379036421243442211186699276588665290038736280770198814228007895896933988330201572527637323422101324977043798208819391747308997791521473193888750918552351763952257566740977744579357462724465992348705568665978301743126250516386030611299475710577847543828035945903358418256808382798887040651571308750837657372509549384316816765189891988537253049048320539140249193220868270599850108088322190823166229806953934502192132596086761810741098883462335304714490188626327715810453027472466240211028393453637714992885846129528190519590884722223249510937334644706886902263347261211025079315020277455350948697017759376028831926333869182162255986592402433018625735070199773740435305439790857862885152246260167971216784660928158649015797534605405720173267999747434978669900163499568299151526286881571718467128847646716213395672577358174187850863383647919639430585657882056449826146658850344133918759924587262072722879130828043086843888456939249128661399947423699011610376465445852061190833660696763835949496673667181438002007989367663492545924473003867343403671915363460064789811326256904161922419210450230735184880993994134267341976732340135022110133331384440936091451172038872281272370409147207975082267343872127382302119464352126805296646551632072652639499010179999891065630755961048481428231950968592699752731932727106726385179201650248689385264617674219913560896861918223810818703470402496657371968293857756441476956194280793506787265739621350131987719110767546648687533098574625070070614563637667201522632664979109619517100050044032284826306360672859498361563372288707248609817063279734551221133068348572194612730620708578847307278915946803811652831078195820786979225175857219402912563879433245910787207195638356062996021967881683864669940134872298094950179143050665820969925665333427309015333390848560903136315776719578667887625050968205743122266090001547467435065789282588638635390313623636093678185891040235529571891596380721052011824813017775330206323303677530868605811766035354400135582278087500233419622848610324951992694630437514765874016353744745773734380338759300597555060720919453613661770724414298915908201566929445440768112023341641195904488608787898200553907325062635614818273515845494752755696152907530285732039888150691664170431330753915915635667871016012287589861151457347029386788140114265196551577287980193958319885821182573215157459732088611318745347853495802228372802461137735229381968038930480532063532612398058120194690133013755561624180169678538867232785155099721976307232494534529642117589868263792713727825493463891350238409482191007067751383144319633833488606011491649517721726102250745256178267250976051367139699819524320409110017938370816013890834669455802865769225204533918859016812830220583897849879469220790210845803836639369644335574553733009148306332614280379521021901352609464619380954541002500420558263312988879687738796710418472898237165986148948567409346454987194162561825467846321025595262658080596715450004829714139775402116215865257848760885653411860633540371708783726530993253385329435434139541038301083938284013051155756695740921878935519723535418104924741194873966592429641207104710210250143129141047663094122899690736407626469403443955338216062868701031126397683855304235406437850883731945555964346128783220842981689917992644194881177204492102715605466043741097173323542314390099768280216555093174419230894604521968572833205402265744538177360530091770798424953955537086985584224746101267334242223904246366500845277539010343975364666108637491812482268626452211358383750717520031604937601217391191077369887584101054034635476234821152541583548514273741863096704163282624835574197942076784026028099962503224458819170615364195398765632255400323802464947813628479733928895617799326230811129452011383632914005549201880326052521039108401448081211603755295001784498368587532522369554154882881668610041682828323567110120626579943082457877444856051257353039909830048295020179877112419822742103933512013390692682000256016029711192683040735698885542424166667065633742532088734005250987070548550581917073370611384146790908958718213995758391386903586174003232454085250535371221219251458753406762830167423586359851209323943279526678252863083987073173832281037669687993426968286082005651442787687187851259653565123090861043805902382640532413303876037257470014497751760689038692617581190117200477241544524126182299319258669404793217892671982229710428519392812151079714924202385478350267628767235632644653945515647941273755135974721976139249497283456412895152242828618446783894799382947853954785169396006622464334615980859954459363436268480177917680735839560474647840689731917386407166549709129503791158765011572168243649261295214264729866390768571047303609582424244883866410345110175259398298458537274880143113411955632703117324344714891365155385590714486174131644406529169883148930342585816836041824109878307179306495050736215786565729678817619851751150800830912136615665976126559162723455178270974604149287658534486196748840651944645851573789754082198787194946636539759131934446038819231766004515942169547557513378629971625365569359796399125194836342795240320751269018981232219081004767743917329404147302052617189111874067496257887112605572137870668783547564978384865940399786587321768226965514614446011866555223371327512616485292293324332058482898569774826519592310561518839778594007298081805787965689493234122398746516734810342522702336834819779145938215639673676930191957022609826238483427905434190522169900638760503894406737915236500590393169160631086606568303874741110570513469121189161145441186389957724949511707694928249264018059471268045732401342831669439720395278413302236511576863097768538424285914038410674984546016851042965233390032413707588428073740359093708432007017634458275420321202159677601421119102231987164498975969744945781800852302174792976629271827145524063508206799157997443315189583255504893284385387446671617794490800408159552369074087388961837843479321895448788184531247647457379340893409848781481591036574005067642975903107490449880787368271602318504627836001774182507147002647363501319087280852438239804724349029186692191191712290141271131541978456660023342292720733393873526580449813096921165191782879027286833710436540626576263433472334609397822166788642759553952436029269771843141807863196296511051659083230184897641267492743814572120600505852714638592496527034459394663238812960315746337263973926206256687521040314801013577499902117525306115120223543313420838496695784544987306356869997464007049741634149558024462085126570055780140624977865067266807769726516645584469909935715581544043149456766500773794524528922963441462442553824911886773353826404899533573993521668471888336729778286442156534135213830340328791189767635125682453286523109394498683366708549164515067759222222625952565733624440869689434438885871739943538281088522822756645863605087750424334712806226417509317097381763589425550255930380245009118716705662286967431662160076522735278514578414392682917472955082337454545652145802700590589831023892992350769755122936637475368201681782935617956336178139337293798469064453221732819465460453025494623273953669588907552717497788452393088745227981958854179606918878548213779977247178303461465771073688278130888202741700692871165744348148337307235905369538359873867483565011227941286659324989797448901970848594878474603113154345696586037870167891421330861214759984727187180703026267955965139560012028966472993418527445478414093854768257137422594283839505165971674197315717062168038695945175165284905935559101294177282859766980456217793017215087561773978836757786743096656317468978915017774443245349849971150198418097385909234201742275030821223298553330275458591346213505749616593690776140894750666456938686779807197084954988313156291006811749395132224642996202267394888101935615520177169329142430507250926530953817154235556093799194749346699269743879425626939820178136081268652003978578800723550846714026994829418584564067340551195206861338267923377770789193325695842144551576965805900072332977129373641078769681957585620373957361851289653616676224977971926943675762364726285821565463199567318058894956367030131510750647251917906236602855053550684986699635824212466444021989663762289893556349313657003132276334733403633688755512408350912535640136194903349747565146851305897029332353971041605530816644666798138622820502218329142192169278226806730677020550372770745785749576192293946059513429476268466477489389207714959956584923822185139294559497248562728241660540815726419869685289024467227109328513850369943131700927790253095315006607383727684054699146580497486305005795880824899549710303326231867223870620498484857592040414044268977103413182070584608746344942603129120163569393154647568401396348229521559504337508946516068502163478241161151553787844681611267205619134360447695099424180523359044630721361335116616905786266618351029445675607523052594098427089140040245039935415611840490980201625861077060252052396314103156834907086988679506146589903299176730166782259452910866851939138334424626655088184523497490402097769141404669270503261447515626340484557056530750100768273716139203236715304459997254418965190358055252274746258496833493964392343779880098910010397889879284411703141580710398524630121726326328156050566020190640497385518465531710782511349026251721838463840977529037885872639574839243438406350834135460076978703383840774685950189719458340835246601684025891815005263339676123038846821339929661963278809392303763723516490463200318583036699988499464895165352554008801664901476847337149508816431404728465780770686383713089792915842361429021861909238164249488637527376043015540106085617108284645821453794076975462208770373944466235672457918068088578255354763628748582110826933716092984715987705780164410383136506100873202098193921876843968571015894398345772268184223024330150586037334483828675537336606194615020851999718577516422800082102219354259284807753799854609643824458404977637018969451625943113392630832553279228284441549672518298615818241303853912956902271769586630064111160801089851920839181295432785561845358673195591837082650395278611955474205665289744379984662152835939882094153341834365024183840564772542321047879248229303701482262921755818908404995649786281316901002166682460971013912381428322559546125140549139195310817766191151436444413367027092841232695048280975531643008289363558191338970101411254299725293264480086348097967936256599799980838034085509680413421568225689946584881433704801363579634922353750489913840437054948345042186312119705439308073472699903224158466274810144902770183377607864632572910285613988083299632853950327066571072287396717002444944043815159336372790280643048685086913381585179100343180240443389882953568573511867185125762207972462950717696107055118925806537221452886317337856620296267915973203287009411967160208220617248409461320328788847208541367330393447697547480451586752081743753864520202704875165193802316555589771932653024939123229632533021483933335800833403992154904578554538515857232902130878910482129995721187133642899913461411278823951802029194516025760139306221460353613682469320170591886967581016011475024116259263125592160126526044525559145165296880966281193595129970210531998284306814536953636493569604182096042112863002594857239030680974236291432488476104596089443712225416602336571189967425468592146531413797146146577889060417680915493233610770376791040579471656006407724413827054101993266469997647834219034546495991998504671603875722168383704547529969661923554345541816753376852137130595081237787682132775431506856832028169654652842872010381031269863713945158504829012039240373852958679694022173843213942731471012052953839667026783675476924498984291919256098285116224705186238497802014383272652386773508211252694553692774798628839741439116673297687087050812204460467042459665732666491940452174798130610589405203765529205012255761562015415749937120539243385287091530977604781587560866659882060693452955386148081555376778212146421437148163905083602476248039248239943961410122306485074468337432592957850290258543287729280507599770041298711967559360181974200217940482744038950038469087734926339164657936270223963601250539235666862642012758114002531446118517478942135516642163244339008249743591721868223669034993283297812074572290534337071977082574665887840602492128018852510642515213135735790856144909326443761419160270360770502426666181411238754629698911427374133545243316737074101958950903519603704184233393399628385851961526157548982350788140495634091833655875736023030122429231081273056701002219362607831947978011260574758496290373377387761711480245942243271900030603955652727211704606557463726851127492834852581087585700155376174089797082535641890068303516161987374079727799774789004574501315896442762534088888695483122528406766919479674775232578737418029774375198282931440019247858634956312366107082128507834536293503262187354604247221723801951901073946059934483351773223269700980329083707103155242083008055121664875915439657375207806084082289376921772224662853085023747716108200009382374751041763141264908738278260107097040610613138826283883878512128512519591080622725703873053182597835998771107738033745661842307408948145390343746698121088659064902240720219949670708782155921254939053729908626042244582577076824939196026084743753980412708272480994142150797340009892539240686145724525699687945303485240210432241399338895658891289840575697491364305690172239811678566970060989141922383712388050542224955038025304277236085878276414333087567784148124988146884917448188786096555733475534153913980031642046794513305093935248967566285001000460263959669324817373475297479711047320235775181967906857641326470543665053082327627757550191021326201098095989928345490520727208319696586276949825039705288929435906880421963486581257198592915349287079449837063489900267825762522313028858111525383243017309830767622411073710474843516992256975309790237036246055103590852810546233303429399451818277915096206170683941964741971916253767904715911943866058542546047320126684551795368226637543475114108307153888396230774974628306010354463686190495437281829860314269969314144561634774180539825562167251362342373624252459806445977415881466149161936772795660497553871092527134360393380519074611248525326175252248701245061554954954788910663951819349125971264028521852005784676195136021641038298231211889466699680129787564801896290792303484826097623993645556337798082014871597668257846482373615955444567241782234219474428329318678297837502973290727522324088148098406914756327537995006905109434094746156602895152638738574256599691745870216930564382019700908905797390425879247663709820666181011105398251337788255477620915870226150288829316693087152734869724328498521003850069247870351083603706725854709046672413297512938729751121628170885887623112374491566515819008715035032840715597685033447156531585925083000832889860946453793544295347041783694781207871013806605822642057143996082246652973400825898072809807505209024686408301005859643926273370326066366443114326137524081933891103102599285578172550715266654661547133782948796004564073277190041256425956510606996926042090400890045019231555749362060579692717126864787469213152768256321562286905037992303898277125842876556766159260561578327738882808075632274490936691956444573158351997282166988001855192381278084187875718501933103219635753843188890383079989196446708868007622235626466670528684519095637798512166966060618396526194019240141122421435202324129071064030090245509846473284455775062021875939707372727591614821736803383006740335251723901479813127595592368694980078231543762958036184431781470570770764559978095426815707194501323845148790682241733749005454974712260185613745966616310848624795135959141650695963441963779852662823957292464064992217146137913006063984307354162053995574352012886329017649248495346590157496088479753489272291099329958022626454854922436664845212305407080061543379223438803136022647662252426497658435139766631692551926170554214405444974484511647881347924210499348510890459168091130709425504187056004030720429284714670129135395829798111190573342338669200860504964771235145038083757275746835368514658679786186534819019993354239589204654022042743450938155031995972376610482995163530408599903144656290453124027800487773819690424080504529765425901407344154703098119484603462834922491205011513547392794652338205962596461132396503622184680207387474074090713782675028229239711547864710724420228760182231417386628528993914254761447411591038956024153674311044930441633133582285183072216813232314588088088913412557361226590933135036061829736338033851343192401864344844129172880881809369570329676331527401967080861549183979900291588432501102749799394806781219343181466858979408477810616695890838220177093537584913755437596029790265571278325396910830315546398664990497170166030849425627242112651289644002389394927110943371571836699484884587496401954871748033812779051997542527238420557987252007014998103163133986097547976168841310943605105029839272376687422524034319356114515278119103126845266215708986725704057738060543129158012861161336829013228899903254655007737245044338440418411654716738860180743405471834132489379016416427719342317169063891702552901477466741495833404631193179167020737269598064462483831005165304923344361660731888498970804220849548761472150569190202379327678002215855654650904964319333477679704555185138578408618424713428247289852912655694874494989523274519763661559629070783377163994329646652433278858474492958199559197308582124263789098981802405183630718789040823630296904590347738095783396605064791727815424877419886628263209488406293347780485959787102895310979315811529893848130640372907464629952206018377276896459151544024301472212153616161016159302990479568422104712091009943499792755979177318170995960792948819847930348943329273011485501589789982658189949014445996267495376279836107641698311451624109763716663338539286637017812203305458211877824344799986749021026941995450142374930308065911740329653444773876345649454802171787563498762545112385968688989406267239791448790757544508600566827309011416506103658716910388959974484355986135613248592258261165286245002658522680244667051101189889460229629273528440989392416142257745815582926766793449846255078036981130091978022325313025282990247768896145476214161862059459111931001749700051463246465655836524400882109544200916758228337779732038973848276869052398447949218953399984386465125170674613387165179024847632769371804003143419883405701564454986343517791645836845397631778310701699393344810238844174168491329907369252464673917091338127038746270857494184245363352958964123164285748824231254586966247770833067123049130803174629687465625016806407844884359021068164803307647921337229369749500557095616035010111873527534149071444970920025065858246539075234388076019718007067717956115724129268570652262071737384693993619481941904476691627774084228848794551052834108441083312498711918148806603082539377137547421731185654953245312724741470809317280696673804743132634610870151109214404237020132830079959206800844674494677550527377598463443980370780460623161872211589760825401102660243509093479185502338366450604274454873364651569252670817457445538390120846172164337053398447349039348736878167977385138815427748931223784435913203579838341555158988036276663863034166940186394954179046683541918339841985692958741303479256637368079732988992227292758335226836199296046480860746893883348946816770439997696981331574057469560261149486888815093677713206322123986418947826258972170035291310905729735309878969628976754587549320058386892104193891769640968756885933680554044138700199978161734459754612315799321954979718139157241718925199873320890646843701675614867724941668321372223798267250187692450029203677010320456341770678215937542246485352090531823857439227274996016485239499656976860812994669627528548667052930205279951771422970711110415528699128376873030793083507246478618314035628956094977590201613037570495808952571682882120108681330148475179877862030732112247820885940564092957990668146429133716215838946628744849002869657197979289779736380656514189499925339110401335060424056987124108967790890026127352010990501475349556395124625882451626481895522792446329753813994614559462751353383055140478033585568206192990444470688025905943609452066163703919630524611161962765529182528257039762579721913089849271152284524836058377978130443340479249063149865265220012155928870338269406160256235341151854929305463687939968564116542206672124978103713603651088873197940272638620845329265872187477957032987311074060049428557151629392761175812503575117519531125280935543862585841741106794942947425549651431043496878377943993926983512738302580450886743459760249426398585130864827757645732897843159560837010257845277287693700546207848253810502667675022436345870470168349749001796133288321380337896887670869731698142389353436891786776588870892137608595712202194978014525687992613636798809275505872418022481303592892145849513363452101126125839387028992456856832212951641867737341420974526444227910837448495185395690710622723953859101696474008347266869190147015716566503400013206868809916126361853249797657572544926587536320276230926150280151806541191348318375250617534478258411705062421504207059422584636365471354333084378090605998736141689788713219392255462329386083773136191883509116439027410020644363104492870948586919105297820290058736157512063350061430537548306825430282820690306438045818063543562169632310191724795970541807083128407755296416527651772738066356025271299182607954475820372818505182572534572162248607935736328037966600919175485448876652770467600700708354659305641919227930329466090012239962905513113761570719064312584543229413819839112613796995227253831179911832553165353474540353638442057021348758129252943747936777344944880991774303858062796805260283590822334514468070855400103978511834298970807810536494667285684491012035622854749880366461931942142332935007869034557231158057048972142667952513363495455994438066773160052716356852344853578558796087960522121875527065057129427354181016372028777474530435298410708910497806359999017197519168848964862031531963287663898589172084419845270755601218176026788405908632914192179858547892966606856100505848955217405401385517790564201124985771566933104590475169366672533770865040637307594355098842824457804008997553911878923008155171390580045628387380520386288837755159370511080270275375650800353996573661440368421291641982042463068204099527830424315346856474202704817268570523209689066006468301663901386811175231886944641993996203014360132173981314078769484181145405207552678869517364926806719026077506165556857030356333187159105772188906758804350179477823659564319290630479666692260965801631814610116478243689795686947857019621600878116638368991209370878339073486226443680320781802866201023744099587607729155572637240424462007487734696675278513954174375126311649012589344485844175406785500163284098600798140578132908986511606063160725512424048501961585951448767454505066923083812764138640898953010578063029065140016006330869687528265450178534965813956546418645692194137189212908029337751715142051159099062202099324272683710141220530986071402378823517912811748254994824147387563792808857007368139287092973705092973679207685907905248137850345986579088284438960244121542932024122043436757917039353319934833715059731652003539548768613088052505374204389727730144247213820267924370596985714301151713940094440944890100443162027596241871704850173593917945942183256632479219573447066634757210916257933245443908802117843574666703597166155643019884271059357640822991999585617262280397367222813942737223717689159471615579114796886776167824350975582873997039038439215936020206778494808036048778881596454559626404880224402735099648929967764652285505583011124126955660230943834107649658791124683960430024037396270505894004810689341846454829900139029013959887685173917351484682624300846999816750078245253714881694473710954664208778029584916241537660162483872889415816226516751119093047637393305335038503801145352046010911454925227312832856541633433900447998629094551663036762699613850840136337479370870504757545783641182551326922168897261701067190623001394735852044203470092064965274201073283211799023893413145468870914259073331478207159301767876300863963517650282491636956230919516893718244402363838510533758211835516548533126521069713862497835007167583020229678187174937854667440112278556349794973026481500395501859885123818312345435486039230905498678233027990330991528780579409204563583459403665576249322276690818575987102401651672709334279965263682633087981556052082810852999306537371265337680662368010592212854547744482417960990542639835269836859898812409879810359712827785916997295678501950543098382874047703302777624990734903525224006931689080241515789511358135396158445319391511657740076513668831581596661557313202950065805261333232115048424302734066675733551568014710917330604420826679825649531089151665798247704015954685820005979643618532236488391565079221158427590782845317309116763933336948188176322422902504691987172113878455551887513988263170167066870585163629964881492238778936675166206712981401215889673768453707620390532324855787632392639837002587515460296640579509994294460955699489107386314721992243369349722656325029143486020607326743735556784147160399604531327796131868048615128663710802010932415602630062707083397642994155603691951282744461274552677727725542369706345087001841834425605538652645980517480137907697948778114604534846225201002262046635653949772542351903965944040333102014138905306599076156036386320319906235223257931671618921610486418550668327430837511077565899609718475831010792799478692197994457115798120317328317357819573011040590292506575893320251994267377709569782245621904581852899321063671760479475740966762030531905787566356255388731473992157417368269274133221326251946166855887956516424783010787768186807092377123262771056805796837881492153182531795539193898291391674072605371611030304001659664385716158679493309066590002819527198406674633678862020836387535612262807105568028371516348666745396021417749174747069282259039312506145721402315919162690624242731843805816478214711884719282128393889353087321246488941515240012325806515302230170867275949033907066856156058305881756454698938539311530545073680226111585819251075768121220574029929423329149059500764446313515104113497171400095338070464124886022301887830141243880601428838363507593632945481225705149525169940443504562833147183536152368708771406193347680186064894423077075640727000413611611063375291925415532139994741481275255003822221737156192680818533747305911447629645683259604412120192923274156558706026190873120579136334760620551988518773883518751877840851724034462865030049978148824208962416737357469416097602872802838452930569447586541225764419167746114196286147088498120795807624281895146209562241884937921385305503550046329742412797999491297499218575921118186250642625415873290504945228937764703783808080667690307295035597736835734389967960061780462604064699429115837405039790936675961070135848974755902239974372614404742163815244816429141357358760019967300450587681611674613299645678646488312956280100746745940061433899381954879150051272157424954147976585848462154811111503885842651937000895545791141228547794585118517212830599250884317324511440046174121935900950376743485336773572682052136872961281287445752754246393411506543763000848936313847917077742409205365161688863756008372586041461143898947084584853372247566901819180663059283279982198449342148124351416448169884845619089228241092663284122046824179452551269924283119223890293115956794391381854588496410823403610889756703644000680857739704082524007334030909326428307748194223463541367010688897986671169608501104244631107109271329185020780598013398394603521962996123338538763282734420271377926958876314807396368419513822583070646975251690833484470989418287453669630536260469109138279979021814705010021634736194550943280393385535874381052248776954343188586925079810306176871070516910432072960612452890113112638775869577676485933499060150573477023233814084559333747831105765633991098661997931502565302586631154610106555477605608791268431073007018521939446166369062157380822494070190895023445860061215489700661697458821068191973953844415487692451771870688473085384349075243756555793966600797193400313909182982529865715739952676045194387801033774884427367847334335730284047654476018502414463468041470565507042233840598353271181373318141429046705195563924576372180856435841227807912675624567118994694836299806291618874416313105221464909032706322447860446971210076471573265426821575390839403441584743490232778791956757116246410463629358977960311774833540499715980187068539424757552044696806768502334769763358790752719359934422663017761252768290088524409439617338717545283764909519080546517838309604569262090906944915318133257666853952969582683729903187126051017844907950395348238076184921199673655352567474463357721445446362371679500381702235210891411468098370190869704777516230117996703640418141771151531966116486540304981992087675663859424595304919048715867884953124259237965909352295244047727990412182751016523436830189668110581273098249442702050964811191906760669370412798979639144906752369821458527608425395189551034516092434560609143030215893177693592591152526097611641034437928718527877514095721051362008264994941255372042320039478420831673679451224554075530637411691454204147791462311121550120335421176673875917742596908115267044571445029682228562810645685860163628594581503386217063919452914692014313605508021816797660768018582200268705008223402459570111551619176116887715268365043211462450232627723811902446065493455100492995859123864693325381651562983567915492648736235936069227181096737296091407617662702089858161390087170783475153491398674124454664879753177039035855570486809553287913809351379403992488794178541903999757596430747457132704202649020413460516672700470837484494736869652308490586809690130685935412875038257525415393794576546343293184028534267522917827120400300765852136201479003742715381117405578207761037936880942320707357886744805475929996492162302088908756507470575011738589973823046142952712031983816663350090625265033524058759519146260867011446843869486842654139443533343366903564605081551591512236898667586840222917211562343132474807689517035244022980719988254869407494946196059879308094305297964493598366573592446429521808340382945949138746700258516992427710296796084541420183424826281193986118404132286188791490789450113926674412205678659406690545675317770749026586480084431818854685405480686145136937711414209398652496873866078725986523459334667555247186004936982498798770581748172983103012165850636625468423841828852941734763623532871535482740973102576252158595953462632640100035655499018440318174858606828284992986098097369065081401950349556046509909892385530688218044035632507229097275883649154143900041820977928717384291199500297921581312311061669205875675221881879058692224206826726437775767867479688868635212754868874322832670793275383070613562354121300552313259324422736942385373265783663081324071681670196981077035903307971005305635015973957854360348099993989504085496989355872885005233912529180529094550910857316901253260785028996293266897854701219771264018449797137904429229207362029450890907670564377444417701897907445521562821618329719000320981725794080710257745850004913502205643624842978316281722345186927398525220283364223022592289769215765010722670758324374394524463988132799054808731799062814051921390478483804943485131800355558456128035672090835047757646799439460913926448152861398711375525287860299326723665320149031878425105297213227176067970354186261577801339154781628584021681419801338806751396833912703840857374196909622161155150701525922176285659851924607388288501023139545085337376790981500354197070105022718344117221558729103931865909502046906726647346476757746794107165737144859298344790949221031069769307953023223555782537061130735791806450485747977890057394725023241977732446880168153571706451928173543988272596935973862718236357449414553786300978781970741439800727800958223796797249502925774401821729845555896664497997234009190597082408978057497810710698204649110528812477128607512778501957405960728175620709118605833426563098007361539026084720284771955091673996707213171046144073800330446668591528257658179725359776461248691180032621665305369383405902657702808062327866096710926381612622715252467669745730432044452248035988037690512392085156967258770254393389421395333497461631698960887962457677678453043912798222753142546443794354075988421714863261561113241140734550499697337844469916041288467286951769417156882875722402918607432098381112058537548997783698325606293522557117437490377781172602359191690535216700722207553219391585567384113294828654806549978325993379950408240830351422658933846676013547610249544097783702053128244008258496262013212847837022590707977845523271103799100852907291660129233261778951106278634718595068210540690629938802592863585794986037740954786486359588569862237243871115157628211106224845693833423324068485224895521017313517533745817429672978951293364191231013505746655526998605689378918458572933006677437909020176887476845984279145814146980338092966956323366344853804503118193834574113336139403523923506596782091165610246246801069335369782748961715898826657974444378427798835898876347195979538440560074510470983063861178315094620479679120502785545708647509684252596067382168284566531848905357009878258189550799997028187426177456467688402681519606161288983782259741606858634486981404854300350903990439612038721866427937965449150740498338318577357579533827542604553374801726633279962832763311670893073145138543883863172669292557212928939248762819296094295821320818676532377343106280314052412929934656194672057201886453672648044817437554721887539774854989833208577286368887262243380825959542672618991657344617602381113158348614316611448901299602998840127289053465379068912589651074129574248087113965912779660174857961533733916124243255472435159008125649980847106146998348787239880378697798890675944049351053539023994367990481666895043316200802719901926596623651219855629880271208135686857559139779105044008805342514201030945175544458655261210134408713309980380565793854668847091713747532353407255274083998892114194645192561703909572153736749000786572162238725881900024747879000993960754028915901879351834536368808976310568391561735822728679856860638356898068848078212560560880529070540454846132400012092311325131275768191229764294579710792883103641345341584409049647873211444368450546475593793344826898829134180615741190240915782822479371502478303671273163640710885506934664837903906715773624184091236486838488253624402638324491318305568148376712697573924443405030649691402825981989637487672132631013067198257027505953602304011967497256519817471136423969508926320910711222733854657145082456421449866263870356325920514771670662241359777409037683659156545774038368372068336537520272531019596556852300964817694975479410516708755633356852214920125575538578128334179419793944481018006937101071574793604585247317893820079810465698720595798211126667491978326763366492230703246515249516245139067960469900810705202110575968233329209796334702100671054857348127596883050385797698533998311087641476717926998055067095002161803939352897798451852508214595704877522208783233472709969944484950018396987228829997942108195335199637968776440150117312222916081276509258108468862713260443778754855809956659161107455061394584826378851499273100617143536096026558182288951846255845365398759757872312123479161255018330567140421566906235839012670991191336993853242363222446003575110110878016679025645877687119343850702393760323567986553350706997573334490636891255871453762567788377271369750395266946551750751666552410354158997978203413844314840067975082145851687354268071469697517579236670420915311574195569232791909433795494150101882034998105091415478315275492373940965881914476616251478511197920280696959254164260144837505466809789590529911325425493247809723988453068468786396678806243534393608779767141907144002314133746090282966829197116091497217881506030493172702541234778591185990958597208080539883862873271651638012719064557949874508365475017361302983507759435482173147358451702249100960779235494146964616867732884432989898610261750581983372151763234129066337872734837262971947089917987370626937897290192877000399418909559212120571863481082890019135552860281431238153026322637861821216436351606490449374037807074909045711870154077761069602605966379319518917818713305377940123033012750834952073762072439895008749042024841826449772731269032586335315174766726047595534451825496680624810669088958565861605592803156146321990724612484239499963831752567497368664783138444954479596522493425630040616828466848486609537409922482680816105768300362656718896791671790541200225695334736022608093036822345005083719371429878109216210948576281084923126710232451668897590180341122555300946396250258597697510755380669173423074102214709400698541977085900858326369405565204875079685669967891341247865336950169258072162955772118600075164366959972611164207020081845700579813682558674571296709186623667872438778922080168139340584062690496266159111750251248887537461488026162958358086578021191201837187369750370537046078093552974977536543461636946354731309280910809632357473163536348839903389120917952528704743524584966919218429022197302256562370071829683952470709471266063735023287099241190841308967780739323380406129816197689074788195329058723769686487365019401448177154331080507572650944239237482917129934848391895207426168859748260208025574862703288636720972115178270523875647122048148876750209094022843743572254680133000995636632898326451189330958340221759981732010216786454077758802087083311405055323674527882318723925578909184552931042658546481502371111831753420656639380327565837627616620832369084295626955888845866804777085938259244658644690137638337824793660258324687343277601289009626714948111921574699881680814044428168274247829283833254117712637670426528706116535666605212800483881830702617970104691890609238289630931251741085547372698914155653199715196064417128694052425606852524772650508006701579466639321669524895410293869714466796754652515471890183890292563513610375390717405329614518915552405044611039242654532460159015350141900076255909447266392825574323187366084733721240563297479121831317362841741436269731529718594663415174615257312363231849160540321412644299036119786542255330077665043262397321676200984068093487053037449268815652476933364597855927585745695142111012758230034321603255059179549109475621724458099763521516821575212665123460889405379171321390705076980103890208831113973593241601714964785375658616246910434523281588909725549449927567790836416348513434972624734425078318525414842843077458552902653044437134899855279968378031579037128110399738314067812481390387873310977383675812137144355543714846506935768505391932705491088576256952360725696998014462203906421306344733128049387589320640093619431357035583679189899826509683612094868445407678159257718540288297320598243922647454766583458217915054115642517456906060342482859593978181729606825308665410399274733097928257826805214512555962285547533543843442493856048637020139536686456296709941597106357432340196564414249941147428278542331232713593744825470830126106168135768941016888287560316300757150961604951615140772532898751406765707028340998497910696852581303426813975204283031963196525295113488787865677681992069703995274522096585703480154345797941148945959976256930419823154699836481599217314164079834126304544945317964361519742644583391861451077966766815827047491485336316525642489865468483384365533574008934743779252304172582510044324493497844207392162694713597917176985011662234753492909489071048993148723534845049071727125776435012716898887968390383883732252433624849629089135118237035184307792986066632449099807942763820163622265958657078908527961281345990170634318546391006881761503572824981089413331620877347754878297024685503361661013695074660697393166569627053892366002900421137427892454396913911361737326427043990795376089230850177377932287351017175440996210904236914012470993119885738555466364115314340732360090254858885123592861054478599399312698681381770197027764261103458735855625958331948009577655753336270850584216734595643499803938221669267990639993275887507126570811927155111878841257544941119617244120469927473715024703182604258756960779960676060038105348700408952259996345627236955150287464001423127197424359972406028724553716321085634332749336087330216109625677622409147118939982474598230083510152116977082512415165454566152316131892762060663338109191346953958987337447898757850218266737347692381750960160579812212411739458808285071078208272634135516758299186090196796738352189076611410132071633201019640078318764063444542766800762689942590056584356893020757740474876000158463828209639066332773670763723405569237091869875050829429055319532128767087824967156329647493618850462830942131159099998628515618107942606827598276984030126953842923337234932905680012537566557885428079018566344853109360325489000700823311283194649157525308844228829400070226807012075850820343673119591202125116303634045427984855067482551742581164688444180257420518227132193590120392679176058817945310086795629218501260082581835458693840555451998948923623558994644402703651320192991115563780553256786978984559204058408848307092917565361651125661477779705568570969172524510154253421795626497352083696624053756530034602722560521366596065548287088191356400032439332944494113081989865156079048130569246903705972007822303375761754382299640717355160712147926715262818538615760788512839930714115232117988917863693014756133357301277675471727047721878382127748633519199666263992915027849898164423236871836508613106157762758891342435882068292072658589153115667340709276290790186759037348598057310737708740792656900655608614302605131226429691616914036210164110916420767269392583436551885974490938515029925787884323929268719297894614190191473629927631786553304349697355111020340999589571876573003499057707432116808552205500127311250574380077305834050616571778541413129814017400162807364010454987037809036113434501471631545625583046772152430632148588857348265789291698399316465292443542098666209239157548948582368760192718870218898613820010108614308047136826245631517573484018825179662207295810075269166467774373747681067233575567655730140055804665962797335667751833288974947378809908181777671336816040616816359893188919435257844239500583680968435165464624058642560533846826421485788036789860039545373035055132699502952412317148631079000811496479159319376214917656812068261372593070668795696523418655878838193662239287883344380506494529567139014306313360055027902073783518215244697058268327292352203483415568670273148440308816745553969035528269234982037984596299132479358905248274900199517935839790951545360974305510122298049231062757121570155330094379966181523799384600948306802235873360231418902641766388481130417813174214174175438246054904867357162144725034899075581475346008482312823098331134652724168880632470265355048368233093110272555652578841216674183974674227541747332378609604221569794752169084538722808542428165206973709002105051159467610645149213876265452686763889237318577206301220912574285177616433526473487060926420075430172752031400648908737365119814229920433646226769886971832008842769235891704259760450118653598244862908782550561236633073205495993144429521978279938515733040818894010751643138528071258350151023950966881953034530963168178602744938844742249203153486405055492516368953761306833763220378680821115954137184772648310945672388998887936524853929342876259883060332194091503367135527952831260911399281761287018158925223339146694673024600103634016596184149463816722617964133203903103221175485761065316107816269772249786143277252319438327083316566407766730161693785761421686161538101822361132143516544595501342520849502315344203958418024517837515196448749654751649514269499498354071881863167076356098302303497175667059323769127511411794596536871202482297921461443011842575589564299423948934040825457812988082911760028800470104141342113943883497122340719940661885385281861634523337218839545171862648111390218970126945719652932812412871121928124397920452464659096804965926079236855518175782309913004019795651716979338030454769873937940585928694670084050670765211174533245555535676606641012884782178567331910538600046425056542612779738535897355924200248798731141512660054437874748402037967802837150973687286136373804333565692553534241751884226823206424272370165704248944249070788513063538630926795428622745644766730038489058061815829599786187660052302449974717623179307459651783931026679964587011121498346449335908100783413519378146860593674264498262178662394245989535535460459499136667513808807249382187377861208004443021350618622224021136832179434011928353316014047694868288935173080102169614994050158993070402470271309321566292399213485312696195833792687456890429052152865355791900136120407726038641570333955442760916077925878483190787030466168151245190471346678083184079997402102679162635918066886530252828484291609768652750504267111171338893419347938429891583899331505898457869917528304835848245601429450680158268787630925632852097445778836172928956088714522467987240321336534164799475050830250263881919619678881676458357441582009720885816567342669802726181808623834575773690847165957535997742566678828303089780421113679561791254333007270360357816407897367561398369796521276528784641506452374154665499932247484995382700920932829357331329560627427391549616736452216120620908838008796034088795556544529835449782427157293652754904489008034415481391636074976928689594110423600619696909258381369111443910181622110142433365987969972144145741613984149846712247655076048448238151679176562788662259617547679892800565475757988257015928862336619925953906978055721861101682133857874515251201863347141565655346194860292451495849726995163912865560584220984169442882272855619073553299394112031407442739159354220771220553645759748905263492410252158419612323496408124996191987182876107291951489701669036215235053514246173343701593086818432933594075851607762701023572600979077080006156938543670345966166908463976644336219040951465453537817922198087185355142733251547073736245127649017130325719339915056993536825143958231639313783382724914779013103095881785698012741716357675086924397368462299604378744976065136926585531729698603581440506720708824390517791440250980018802447277788866777031499622887153053954904933771674077842518639918376159183272917305838825162062631572560459071570677295961103631345411588279472304914504225697513965121201764680067873202958502918867804550881395525952065483530835535819001867887892605986889438301585391426842278782394112840226347135298199243565376605188661865781753710900106430053946754193381578137834606049040170068131042204953052780573204332865601187141068226459587043608855363001995566599603730020046343577641124426353309417595722396774050217040989743124978315437515196770275772614963885628150694263712349943849817990884741987382091527679052303159166064010770303610185495391019045867098278675776485714880350335355412244523099996549317584354620574380373159313477393646753451261155309633055166057418080045345642923919309925026565343161627374845141464429083443629937911759265929127727054219231989908692952433523946967863305257207689536598139030304041727564227456898333290018817955906578145797147866055093926255341888695217608552788857177132346909945134770590158055920658938086001040057303143441659840544299326488812377307416936493746386927792082750998681831734444222055726251856046587628210961100943235867236462820762646371897313081275583649285849878419770920516779869870496776341231228742463060095450795467376029235246069719323755744289016416585680379007469769457853069019342353912912411079207670554957281879072762600724536817062451110122927981901802171775614198186829961361678890155799745401694481713028574647405772774664033528722480577152639012801290834305560551440090901727043441421627894041765820208856015738638460368581536923516950715496087523056366155695494808324762120485739559193063240415196887531651560663795464332150583411463810112459900842700175455629560843597173557450451031906567700714334469654273597276419710010158860118472072983903751169788763691663817258050500427936314987507523746104406114848903373758016721577405061536913797453656273079176453999748602334835138395303331583171098416229120581230990281367917639638477310978147900913878689938816090430512599937046402446261751821888078773154248754625498718996712560422200103256493293931678535929377177198421208968862431991795078280199874219986562053793597383731772649897542931785510502055925743297598021800044400856651661770298883392567976264378244754780603219657421225012502727321906302267051881529291211129744319117062024271147807275810740621911255804738226853500120306571888783107126907071433606856757963017216403128309893298622714408515802959525331645598315362341966572748270984634239110808495194908043834261101156588349995978996779632048564791893540644810624936313354266701321086620533950215914817162963377236332545692167491121043886099484288989355168268142777096926216397423821955181006042733530876658804254984458543522775879904635457125775614129467427914851067369874061421257500158337701504891339466049420652665713206646974339508573104174839526406057921264515612402401548366327599374428105068498038258973998704074133180426532493981543990295245938557310099470435175157384231457081938563162512197595103222459548410380948625763738082094984787073632853350639907907604671801791329143151182629297081009304566073221207834529670388186932487756138042677204766663166653005251235539959129997182230434109914140247328046802997645632506174125994997142265397748857781439464939277841584370579297065916618784077838938116207519533584420763491248892370395686026808758465941798238357290865971419972912222301854714378626339153097971166072493759323722294831521130628709718787035911620516997866245180068732299415324974512635195390851012526981811601221022051059375286519739009754341514303463088762333839205345450158910575905646034979602069278172726935611189997195361979389692027913701528671442509585857088849517545127874334138603644751624586932628575667325065604721993310477975548339959657148516591047995670830406656907048753428220060723429646389842636001339920830809569281051614950088123415330204818355618808618678259012173747344438648596272401802194254714280927552358831171822619161810023134577830694489229171707113668584101856862479870638970782560391941459342265765780689119389866389738308473041990840778221901489174925180446465416144600730020533927155813562073029138525652040778725765528375422871761338501138174851409918932684761666689132541761090166482175451777228781150087935198916867333962394499822720173720334101997296288960972261040948148906043021170720970183395702959825351605750927827237807288052594706269543360289833524590939458402574485816051507880138723339684236067861224474167509590104853651285641640563077233060917573482466387132055002048885953120859513941733010682542466798400077785962322018888572145694666372405449311353836127306887530451421471656701520262669172189818198083910116695025556374130409064491250906044283348193016234894839346495809129862375713167009489360708868704055370860008844362956569466228205327506719123255712545687047413419055508025085104452612041086088397264611171913187606236094394416637676215400365358272856108947665175304103423250845739284729152139712825088340570892533618902613964912886808109516811530084359644598296914274569821082398465863423587175380824876140792039705370329319379616104144679937634397053657200790968838402515710716503900254886783261462391087365242614058333207527069251076058759396458806229096100175411876220909234930756299426442961555610409919976450896838157667861856492781057611262894461511827811175194135899352371658139376406161703749204502977594066162987939531685912378634986642969885374355467764194851173831732761110438895242795564821057043411908875273688679484865278450634278088723367608232837313664352522244264037344786170227556561002354470716660152758471028853042536709968750773299845959627625078360250271978650279553893608936528172820554102653016324621774187124321299691727875068172096171035515517829427381096813043361041979256833422531427180795747132064212783363659499753037812578189507557580398201382308522429824507479610515332417261481566394214362510711311610492695221992254220301054095851860971590415239873281187835221923606395943467005152457157923431674508312607322298771150175051619872017703515246693375070844389256110456254254326888560876112048588790951356006909236513865962067937647286514080904647956291754093924629724762963679137295656926003639269052159461004731587966163506915273394955797416507365124381214635629592433671922760308118487459055591904822142307977976563648615018876628401151384658157265003641256117795151134168091736528847085761065267819711908079797437229362339411906574673223232503003547228088713976095888922993117500286320287950588421451290241407471305023400012260838615763991582499346750329585101769573069735092656605223388496155287573349215876147777566329392513871448017996431978455881733394779366687983877296348944601000551589932863849224769165749894722679272301439643146548559088013428624847388309596938653052447551976574583791547540607904308026113006763506307709203071250898713147740976591592618312355895315667556064870936625443506385317492574464847948070887397929394374317838505154310547239775845866883906417616018457432047673811906235543238878961731709350290970720039441684195998561748494152360074356495133485066467926864905342190436999407726333159417563716211249808413553805519839058737156423066454229617206702107379487625970956233502556043029842670722553052699942331369851593609546648238830236275897820305071956141879317801572037282721666888070721230482811020116921095419048215549389817896131876288653833930013512076930796960262995796530002648549838129345184682560806164733961687947964570892779103318506496953810437852697919148836368826084246360241713182928422042020088431639868778490927238119684532815777302996781730283079028639489850687453258558939395828195762182688019305130863843386592449959618083722865710232956947675890641053737215792872342023362275002817494788860516129897544321716828764590419401642645324696585774098611691925104274378229797430382741041568784903035004005098042779910501717619001411947424111795065773084865076685195432792977004174084553991176477611301910573717441671414799327339571925469950093214894688522179575136450021954144697075829153100004796746301296726268808931117529261183639795367140729456402422901284525891324834946548459097315939277849836127509671884429894420489974855528614682629775914390785949216142190825843412256819587373186710675847731875090141981798432755230651060387090270287261827921273749365693405883824311585686388477678454798071904143518043713179359382388782772812808359009567535505668976634551593179247471094850904251862245863891871928712459489529743032661331683065085967793389448312949959709999541644298794947766553643393229028212314547779817415367741169252509335257001379715303687628780139846530524993981519009874493116800674421670798605517822342598086083326242655742771830512812510476923863340892575854257436019708091701611862720073896204205855787486267529119101585042656420219328592612883897634162328211246630612729361780841873804748173156813439681092261215681537015639293503586557663892803135846238661246586347140576385593665762131098881768454200139736306191249807266010732268787473881660621700697751525505210896453460669461303258807937234620367884535909871227549583656447741400948520695930836718970187881490753333713057651888702078121155841090968094041862093194236777923204958502974890922044565137728373853974556601925916266325239578618699683065542200168852249901783963807562038065598616430106711252050024409360005378912057624477345708198220923287367311865555270412827496877906876495683820068110169043406830880244108231085257205618552240146283837403406231782705930114354481600402256644481669563603739870318196406660035580184428374743483616635207969830331280561270697739969411673985087503763636182626773453431601866938384508651727696384021537641469112045982448437936646402442676015251227105407723552406304204389689310718434925607851504506854952912584816082663666682124528278365974078765803736359775685787918408770165663220051394947831620307965544302207389961555546720729504600750310315955051471419553605394342452611483748373050564795803106203966485777329558166481064511510461842236634591535916546624715203626499474611106218634297955240295721781635202304174907499586011126833473007350152927892678047936368524795399178904477279091450758129002408731041096710116418800028249045871485864366322056976124598125513446214640997538474148906211740168970247862168494936935821099011953959377556945955664467766943794746842020665537602598093614680835980855990296312103154572039657890799095816971491196459851027834982057386871390712798217741492217663099351300235542639794888820853627551002411342193239033251395079003363284098790247374645103836875679134302703027150717646272425103096716356026972472750627471726932889342262784390818374952525189555430231594965102087067031330699639419073304675942570513181465170973657708337861746073773131947626612097028445813035478234674666963886618448378686614846381242526001707412837082482292072609472742481613762518226076388768199867763358106382279272604288764415547085916038216764241100013140839337230182572928832882604344107268895538875592990252454003831437860398764703563767512597686173513578252543553462954525914006647346629357686773504819189456006134608177796682037342857796189238384302596425396112825898967859891919229680520456302816279802375472106880159273012056537705591055340076356525451938201860834964127768703473331757315446722340348800444279938858504969510933257830752343396363993318145698482564550623763756711741905166465196594066443038413588090730346809089105018524716228458390010128025590589335575663309786062371451759744535860657109913370936033716402657672693610130120711840835821503172913314283835989426391656715623438249075167669388975626846625680439625306862700847385041202275712932385658530470938525368577879389488033648006293285897676218925675766494164674407860373994728619085171691329346849150953110905256713682424919917760141804374102419149071068583957655743852310561556538277104965798831538694037203152241581262421984291725369484416742836738771434318351742883054319361093838729063047099299640040543963860743998167238006126032216388586124209940683571713131337168600855082049381092649437581542544681789532984556968470125886967660621144025021371486797430090263973464753199897589102299655024568594788409605368290892834670963809594624672146848722343439556238626681997211501372471768899611923390884317346328582308625989089113724867493516399089125764156817074486587679784762136596769416173950383463823349676201594739143882769724560164700866037627368747635186658057593763751426895717621298278936980822056027490082503604510415981265730237078463594064880710468924208069648800325057797559582995600499845144502347315440597224975254639393723656116222733106392529529138460077327154811916887304495327170600531123308419161396145543566068762579923252560200846706207406302047188173005553578923187956919927612638479945765036951310924155161019617158611015308526849702621068114112184353516460261885922270678899027834434483998453372034367846384700432524135448480962967020894310015910794996523063016025412880234082720558590301138882064088622074934927385880361890279908075535661947340585845881901751622976512659048050779506333077705340128109352230041456600477740389320695505073379243217493502528157462815645592656566343525486355355067560158712179867071105629869980166554458392945233308163051677063687129504851455324764755548130822695658548884126467571678005120266040814029349969529600072316265185016248669169696265858151144893728352752830859139961070501230401130881339641272349395245507240025266760470632207680455755256459618432707995489288697182511224895763230981005348515613084057077819731283554943187157387359633797726669943955317765071587567038311953972882223680270535839393713713440834468774728536034857598515794781673361395425531581451677068367948089009076131538259018222568954321253075932545249831221057768460076989979117852615154140779536037173608378586127782287696814167483007215992548436502951509791766548946769796717970471479727283294881756139011452342237081078124957363137664460905209037234697905417622570380661315346423026076364549854083719385802116570511745595168133158714669434981356481107054862155263292613349563996689191638038387192892154924475084966647010804439881112384949392326931541050671311444890698363852095069511957450965311131382558784820284711720411781497758646409778246157220611395511141420911539220856384912701011707778749521090377118317159965291836565869439538369377317879358455934639520157396918456767220159896364646606399151780330308381685855225144638623381203569687614934977295494933374471091051683588223774917641807288544434691390811618242291910545357348058490095786275080767398229567012862510967325591413964384579294129115870858952785035136833542344285751053715045790721495501523093307821620010221619997551564258851929518143554387703596242686381875802115483794632596441222135005934262320344286407422187363562663211291194198618672068988412799904840341907677219845849470769901490015670575375902411879373591374962503919161247860292673121314657496673767604765583354979831142674495937852391443967665249084529310803443035996081453142536821861328253106443865557897176303628255298180438365970309414562294845517983378764382997960714045478014263738840658051732197883826389397413167675010455280105239834811016119310574229443745252746538117952018988037017454134218430696470719224064517428670416259838957760182766428701812234974658927608642697419633298553915104023386200760401647788274174325424652747327953861966403256946870839389762948500616921877150432965616166191121185812095794936406792965508138052230722649907577355608322328857856002128133866163167810953208040303342135525180341023026940145472947640010384173910478396529566219087996871277064628912121715217022194943115951199550082523102023750285747016183773503709488162996287801100354155406588727148225030934257574724436293750062462463511940356845667947539067108207914422279481158290831607259511742452397301751377033543755121965263329831176564653268088829960405861359130700928032389827315866230239273372334107073168396859673220376537069939548959076680418117765604112343743204286257069988053188682767922062596459239734833709799616880990173083981073847106170863406548638253571921221858619612169487638960700650970697675218720455517027984272365033504570971347195258205656680780330161948151345532539250635290588287966312906654930150218425602645701820868777383146513115665758941022640980546089573308065839662924097758494995786148911633606590520970824507194138612445219196014957747408096733390371473025157909698009302661791135196703638017520842937229197619820510998192620468403948685002125268572784373883669823686620971913421865252525644021237840571535674094943076769822159420949269505040372908507350263001010546733678049342002022158277382738554558677777094089051604861484500481999496034218340314213746375283892021795851153754941094955721412959151190231042930618813962451092584709717491902584424192960776256557536255449333861089885297684754809483106795882939378339922171499238284806379439872240064183363578356930686139252473385941029905494043238385018272983846363611937112180275805948790631104043347159256905348234478306857416038586637187689540645133371797723393893658291428638770011876144271889404398528297173485499110814594338536951461396016186353548608978322257562723765590419008059657693419056177745846345468228178290202376766372542930549880029404524403403338369027945121727640173981029574129942118981701646173609984396258587480168540238585560318674217909530455305733432111316806587684587611612744606226789324139100807726964845833725279263590322243764974069480072226710366215168323190343619373452648188459488720599583361069309162204525886898837860330623901094647600085129526302229028776501837198353926120159846611312434972726855727030518468767326678149567681487547574309543812107062448990924467810917704696385232562817835234902647302426790842233897542312410811682223888396665001441363861191416147769198982131123140515812453200970755077827264367159971474239134226745736065250541438456475264815659697386772633395038854915712201574696053768919030355211682783585191584272798369253437476859565913517160326368125868831798156727788977272515640273669844192809287065538748668091721443861199840393705590420167702431373578811890792496725201387982757467839199288906559641101047702754218384449283805090230480512325324367744510179785032458063699020699638628375151691082617974550924389016197142677403105001268585566544958223861789587954239779518057080322415830235280887894728447861795434661585691176960379268322751056688379637466020690577743150327010460945764927175688855684897692431194365255556110300643438873249784923431484586767841091198003367303964270034596944340964914048614911418639802495718322505276559970650104350138286224255569987490312490142978568653851822376890152360149094324474098355688687842215003791796105431091553470337382027332177252116345091420744944955920814249797809636933848948868035247909913252467501228344869327143597378715205328934435697754141865760619270464939379107637419956279674564720612964354993699257403965916110443651398188396135163698739494250511818066844007432437987012827954779891933435364403805334915145158931621176243964137219161115391168007391198163289225596608614839241478417560957903168517915336695237521144825618555346330244627146819401335964021487159587096969486553530200919138674763247725173680832776378331892662650466399423759991735344871909508970556852250337943791911572296294366488461478540610071618912561833727464644547138595735054060800353260693397925862288726198155168278401870303889504613287968045266714749222742792123561685307367519483792982254396856630004507384173581964248910445865255007088122987521133686158688577098080880686684714807890858418970627144389245405444696527585789483596510401869788239104573545751998486760434730236232554865579010030406860402706419661991442391185690258168064432608613784232423797682561386122526214602793560052871493591069744416188244661674139693591340170146346839647119924937962370733807516801500530173727405560096444907886623932470961536091603722940778095763245018329854631795134329413319125282569066105559553125836602215402387066118339265813433243649938004452693328434087103632177422395181271320588319635503851045594478503680030305019746921268408635173767868789454683034222036082797013548002885592796570082838546767117805603751386957519422198613173869359455680018498068102371796831699089348024081481732615281568110120007538292883627377249422553072109721868907531762818888529259046025155883200113430969251688069722375777066023228189866676015418668762532269418112853221249417323510959123141580234789174346595764690416450783358152171383554882629502459654438418914192232004213761302684462505567690052188596555099166940095016454863763736251659835572777854536833405002376052391192168149810454985657025743813760739236093954135777989863872456987119560460297795642796937385467519622500856165209140447437348048556463334451367071742610804619823615190727888759689788249514969902641538433768590554603553646170277487068065532942210537099908882100037396010097574422773906089250510839615824633612617810806785530533114757924583397459786060570491147548019895734141077430367160509419978947441305705675946206498417798834783874636191354551967434483446483045594724013424626203718130592752272833785156735973807954374708828944060825914508177247755000861827995061386922531708507829758028080178910843510599789913358788042424585615809650713223823686044055998932144231320146772369772017052876097005146736476980924309166879965976764635490401659423205903579488795853632558239494355318753859938930204587343020889084157349622257236591897449186814354302649002396125137270993643711854238945435882826336433687862423719829591727776789009838141487835858893925461041259792381604201685494588448318816688250607976974500917909520512135884419283639386029996016949049265770564077147188264569190849276417613947063255893504587659705066803441710147384435997637944569023911269274516714305008353571676548314872291261977195723587973738387676148788919949791531269552041599325385361836351511784437902617240543377536407379369823831632678224658825101781666950763485565516476543835700659561715689849151092538527841269037048056720255672292992854387475552735886922059473836524866056350978011139166915514536463611972477983306643327502560640369982112853636891236448412495865879576887390018239054179245757314406697266603854320271058152555894378486519499792770610497458161594380534799810876753858092043197392400902097777140391677110956431616048028036308132665869679963675903111800008337240984996189649779674066052873925676252433320500980897262247627172776884533567148804126384325025464615123075914778713066292423125849292402855525747805735480131685473748698956965183331010409856073141264993331438701757579535463009674896423557988392115964793048522446068004462438567630561774037249289649789270544618079352572532043253351900281329040993442450644879835661698507375773673300921158988846311377881012633415999274117381448193127572033436440300317560850485805002127273045832197881059624263041883611756989274078759319527457766018865282587655752096160038940125131885506872113961640502335362146886640906163022359196967917042619205249299077878273893310871901693328757383160185354301582357535347111440748830288392365559038658911338922850738391871372531513598697131425221029327785872944153089393426724059839345288829053952340455364917344448548592309191033050360987160916861655086167957906396262214145607822198241168593925417331272358163180280212412673355757819877111190610800130459975745405047861123325391187598601353660455368759073608478953496420254987945764223081207811742015658824339616526749578537332702527880409691827764661134458201669708000794561978100770857437510082972047112934817685585497572229117066467266553073388439925414214665965375155068880380255076988618777833915174600414153833133513885689139618718374071985306919223223453377351619538192378353952675213951979407918500639865851598313389574164153178437395882843629064436921359477577411519636658359505522299453955636673553353675880665375974631384501948653718234127712622716480745283264882013743646660360866364354134070729341029546498132858664784778408042601374141184419139356194097644992055193137522215481704421680461991179320322643580342882054633569749222970535699937997544905530526087039920498472569516431595423557045178728222176044695916279720319551683858908794584305989661036194933931838128357471518526005448297714438966051183372039482527926535200094229216329916729758110316162228043161996478413839100019318841807479505658414263507297996472352508746515344566208181679385066299310250350512302223615975940835074177779085808812913342308860760682585295490330631272886874046481668286252478204757174472869958950205162699623906197604286076569519972320763631379440170365946171339053032673611781093151640350852027608353969615794716801908158214140629449950171353871548162564984256657981710991297485067521175638066355203793623053089514283118615407332426528055617172757462284085621235746979009484083795034301009671107440541879227007658841064603580986236519516113732955443932446973986820172253152464997482760251570187106734182670406938913450100099735288557130580252940755770049710360329589124140824202420237083159365344358526810223342675694513555549246910096940031264082236505960746621420751317506654306447510320765561240442101059198960152759319815711273372458545052958792507679088860631947567477025425340065850675869164809433969285539223006221718650507718253576884721568414005588221363014868028852080506723717827943097155287358999054616408869434043282336913213944032910321307952100010396961863441382292812050829540482646929799782839752458030781830873764990030385346830639433857930860364024850643128625502921596228549009315717603820383830269983784102490988140501463652501755825779649758556790114328358389058764064387259719616607254489678037212469653549555323489710764479929526033878541382865588997299098099066713243373134103482818457390153893573877091617689685180344937168313496983550245651718058467541934047884430374771025470965714050275854224719584792875217505821531752958375005365890951567748225587831864372202695236966576886787410851611562096446696664633652931305472135802771238389703073714608824237363952682294163394445448843992326653087026978065351949740420144304590556808534089067714612348699104669059756682775977019920985539497399596601342912056126670726202772881808450955089723551434019172654233037659237208292277418881190429790160804390054360214582790725970592637860269571441489030538020383548914831252532183554954085802779142756152371419687679714168886013859056218235096884444385777489923915893001880723662436211127385690105528851762687137189752944579994654966261776746487869888415208844827639922976747789041678316412197868075962597853815567399539037035722477756522229665299227839402821060023246328648487722107515756527713982222633376497006664009713971523865564934724094897993959202810340166124011875797675017491346447163131950176476186594739727981730915676410300555246736223308198978213442974915113314549212606992070003175201769331914044537715737496791587851530300171405075881599689339886782806818500209310809409211155114574700120170302844057401472531171136374081724685862387874425312060137785911113627460260374921228107828081506110464559566691638176577760663142249222476948259536647880807800481442637219073973010870307029021828735122037642119198944352816354107654533955215217713383955722546042255061587262476724185284790747007766508294691143126837487606439207469236600901550530569242958832318410504017210992173070534114328421692405694501571838577404909198924889400024219582556585583338400579664209082759861380128928729506968945253226634094916981524418139132004663530277475090716496856751317649628489776765657979682274379662898670842487958379387495927550432631386489871068551651520838046810179663895276817014221303386183713418641836927672371215499779762897247485813399403988561243107619244949993750451454603143391981900665125605261882306123557828990187931987527104163178525630057741653938103859557465025227359525821034810137290173649607091572693683593324743894820863256488320704926987050392367086885378868309281895723996101160248683200203061670755961459432870894095683981820592412878300787728571877826799877402168227214271395101513195502922296204206906550763459777755159930418921677484672798222758305595607851445381753930399987734390297592295212236777020862476155554996152391261990188677484438464040097594603789902156609473158890863086063703958484928839549651096965563210609279591410291865954376066247543682119663775293688706495067769964080211118606309676763811930634169008591490589832805989185158034474859996239206751846095312539754881781479772369490167271645595072578741416807296864042565005941194393789034116363945236109497982383007720659232539418355508340918074311696349756020814854036597786284593656031017278907914900067116854116517485598174846157869066604849369865976107504575494173710260317619624533690324990819601982105292870607830567822779253968245528934520570071730092322921843886277312212997021893346703952000431847970329829828546192276671370702563022780563954061546209596747032001361303796702896699665553330700336836415522117399872251010595694083385140370379322729086165293388905998426473427558131406177280621783139307389153558875752144440746445914390116242130326988697138289844032548633945917523297535493071312466339564387720623330829000387021556419835636114716664051913072653754796919781272497471149611885282967110768395954624502090243864164558466602444045489388151277447085374988830193641828762511060456442116225966212011594642515845180373104266556471851762423570151854648144404850008407377761541560029838708184438651199136676353310873399870538351913139699489852928033937929925979501444934656002839321853384049978951105564989291396207843241275217764360227103829129690804050790450818470616739432933732095329152031505985485505203230574156069585298221320557428470203262945366425237395443095775785640130107997520681169815076040277856318994736167147746039520886674770999632355710099435083632937089036553433244356763375975432765687323040026230588738014483685874335490186855130188527717883969438331648629897706527940728988677610676054944346787894006197879920130334553598106080851424755654147753492824339762497868625284298239501257359240595701958882129370396277132452939451905049072939266261318178495723516581025459114483818944866024942342419743811970734177905326807036095542901604941848548926463198994678519593670979430761540033555209030418825994616670490912985087505447214638172571068821635672720908808110988064193778791548706138251234044682077571280388410854305418277714019090966806307267115296780598002588394254470772420707885446483448951165728655131154777200430353817662857896015687012614559049290350066120480911335645516857811289728990659961716241744692250250975370703804286141259551517721538802829722266537257215887139210954741387971823622593755057624141847285852151079355625226031214370747535016196317842632482570860246362535022667649667924857719673132715246848844418227747735302209849095173804489941010225864935389211619416967534783923764806912139123522638192954668957071285166851913737035790285505186653122647320431829611357472318609497143084626404146042041107817852077152415662159977876170443608432914023176185850455663685848662595343782744378053052460513049689535184131587962548123192025828930586778908040039459712698544664738124589725330597845263724404690709522452450455343459730299505955440892629293160142010434030981889003474980722319615439368373882128081911886712728426171853860354895947854637573266625765345455413108668175037473288398372215624060822517072702463958338936517433959728163733991811018991206808925885642484368089473979534214583449561995895790377185276542662574434279773429884379291991993934183640835571579759757456639932731969320436340742513206468296928262568422146612686044230247292858944378854346461101169209458668669886097993059691141923564666037872586980751196044132476823716640642308983542631201910486764905905762481837252763684427469533656973455549663216739401249797441074062429154699603747978099879053136791058641121123324897273469505739480888217531326593447311952083650174066729395995054679735117403410770853910539260350040722636023123723022358752915417092932361561268030204661599486737662488962685363681466474778793575996675922216395900822578744087042185731980470435633087814482911442570358650654170168105506479016062663435059840764523949871568067759467674855708342543300991912867926271658890263518311366024928814789339186064409722504138942033357583600952977164944588825647212708983175609413624346015819207087226963211897805012455358844183244030918798393974293017036259689671616089524910455789311582319333131552345291883532818180612073198202215261774315401939772153353123020487022446611802570099789924448598920908157898895705282963107598679950178637899166513538528090888405912588555873309329025078672116440431514744823680560876447536288695676343948405388568811077446944343054258950644134394865587075894612860909248417863704526471729797389905062646116552326682607089494238812825595394888008588901474193327871576956777911957634900285395804434714964942428864851424226488162208375797072449343151307975006921515021283662727134965164542623887336410300277938283983070168742551383467091506644652070579445661223293405872884749960468804772351992172015697812625483106375633654064161529000717176344885395177291308333017471722669655804314407107444207163691422056840439046846968506943167410190939824603538106547121257958550756136484473252725852745710881992130414750697330769157570503844545890079656952325320508008559924610329024630838256279492796811660627580248808610498083141327040702605324205611728479103077824088625270831543417206361791465520677438665177744215754195753286029729111842642229084058788247436846319318246822468392926201994287143220122139027844242500690522831066961577821318832324003773477688617416807514589708249330177170860817325016321560213961049303793439826326660070238406519470068384125349288764258531140449727877284029284516720117466744530276601585226140666707518440136493229912759941149121390328839607366571186505146221733061299402352531906415517232461573158165688232730929972917006265748565088943072312000467333911554012386373132101209751793851673385439809648784037789640439262222629112770464549963722285786814846625465867337602852485943028737936760833664033036581841897143880332271954480791873986779723418564332125670651582477629432756581690538921421252278270862088417383360877617959642810518902950752862477564994572205646224993271903901709448155917610241068169488907446203410530858513882386698427324876473762467664342106935747158207293229210079075004489819426014487460673246357401436482721647337242914981510089107451071700960684875689399800052376986670882251009324724733664625762039690778956278951835857642475499004843368874714625685089438479676212237314774634325410882032911025777727505406242767531290505984805049774169575243232545196611596893384965726101936972273081347635106029330488257571504420225502265038070547504443981121999651373947781648230034479221348277436136888036696989258270077691377589356183191459888941812361321080757439966496428385624147219234509943231922248114468390384960889209247237734686058192279072626179845128386107257720608303513411768343450346586576566790158013060741231836459647435911508359098043311372236233404999891917745989947223325788710081213890698780854198512896444191231488546804058778168395682740977727923069521377325036090304395624800313105769041951169019296611691949117432523907298361409227012147184039137349974095237044423367720114141509644496000376176442105901713392099834578746291441994545073969047575998756359917385182458879954729399867350587829848418055465280028272023705858867149008312274794940587611983554723873208514058578815839610123466961079070789870748003150955876224689898395960397182819849196933268363000065376817967143274159073311495934019263648474527650371012579954452315465675328371835287320398824056125155119079292855173877736525777423305608814330984805085002168869529805764389039845946476414867821962538660704861851086031555415899502292058632928752867340645373419185586608541936091308686687590243787723149051420554225522820130132857444619529955508439086302963832511429233399965298718711746165639916200447854995404877267314329148115852495331383529390809593206791913508462367618107813306302171185558320282322687876120852677709705053816563815340506292568276813046221199720757388981232878823597490895260214574677070764804136084795836089337636367658965071083251551678551950210059222953347071879764044916692875656493510262702877532819562169602268405916548953705473962448135935283639851068586287520285436416014413046793467080568372601144616934796491744993764949001439945236655277759011830219630007910688120407598740293587498551837021846405894396487904114164237547736701300091845474146337221702208993094845210603786420537359221093453907906682711680820574967681893906316491419869060641525762883656509044694661882444220181135841479554713228335132999951076061553540652707672784802866831382982428134605095717026456278717763250991582416896498429554779443020213668595280998886059356568277426581090881445510003082067256266685433111435104804975188889485441708943224977420002982235480114210653555036433250919529934568265358523500626530020512256853452380438348237115983945182243491121855123059451333162644115918868195610595776870049669919378301179056495073195575598112335633731945861858718942147736985837675730895298892640542941848365356196296139295172229691951736541868179433674376169197711439252782007611395250780564746039688880361851866004795792117616924606538583069435520015048348083593973418799591832807595105591831367630435983916311644075619244334630625255755212306171527537454557792527839988100903764804241361639573823508612856763905293887118423319760142293312343243284778786914740512441236343777306807348171546224007697690581996859315855325516255093918027979570066470856101916582863900681134935245040287100490623990154981758505304882163268267016327263832875276617263524927600256619065607137419293027891171949119600743098281191004032732499755247052899387507898789553047143817236001327768324084636654320990341018028937135388966893389556639111223718582411263457299601350754710312782388170135548718961800825088254748921559078278471733101870855798308405834028953256981535369497035215939859947814895129427002142348027051325123515871231805328529182694566559891153163587279099153659397539842482405595077058614417461848405072004341310342972411464758241277885433219488283436310823000899856751118664651479693300707166206683473393440507228247008378500961802619636498395532217978693151615549031982107456732455805574843309646803990750302571415563505309007025026007679584051166014116660239479702708066069255866009471133411440739483184883968431855232749355497088138725380839305816851676532340060106788781701819554978198131684047788640207001132772148147639588496789845301491027190761091556957592047651277307730343807043036280324466513405647153817899453004292491467457154833051863552597654870117859212813996225742691227276592117536612578171385106002928637688014131248892286426421190477560768558770112901331680008738206921351167161534829274450285315618145993799269228881922685857591982141552585113757333414791547008966330950195032902697913442085698359087056144768258098349494687994846879394171418040748643284266804349545195005974299155320631354013805752878906539212485440653098080484333221651069583621236223306884148258790206131200195339997386745812256952982520357630196986677276554198822441864516673480692782518211228472534558200444653563342582461946521621590907848324618950763916523043440757831336390562254789053087758801086564695005257761595067553110190557727868744400796137374399609352286409188714153268085900270524850090299858866596078700267229402009780429717983489174228360608749892635533807128638555517980318706479946664543574708926593115373963783978459991497247068149673182306556423188108794231486908719201904732359342932015559409137409117049633011263515314652790832427736065893563517364035380902219925077428814671718390985673866962266146763978247152226027566332885792026704234838148964269502760014587301591568204386099743255032060845510287488272504868558866962323202781769931580232468419732944741940917014905649876743167434179319852519633177773372421078186025658169409588239103826443498637027190443629421405100182759202952465200741032102126113587404375658438917779950792188572036002307702667023017480936543947190783145140556325921308532693186847097063658432192407058039882409064614781160372359416675787467999939961330148638606798323668425726061466726809211846284757117362864305568001627773847629175455582973427940833346223846085272623604953561211272601474409983144009027787725405738849288095713668480466636110021799894967883945587211944966904251277359033772905500904188711774191899325408968270130507217979286550838665437097370336843522331002535384004925796926475805615752788060947238967279407161268866985330245851038601334034615971507996958775130326728781894450474019915442071277112726734722833918281891695088069893288082125797336829980780887453457712964034872735334329779783678106428595542655329529318269896973939946484552715635913361611703236241648116742907494933057426394535825376652970752154277956468608805332285176830585070904070432324435858067742383119922696019318990860345837954802814043080362697130538476899202411362756524532407727924126750484097533069114535071206211738772859754232897255796577932633674739806768419302786667466114396306814029198318423818722689585429283884964964696166224613516971402459580155387691551872446069514008340962341275281234436770305684973510552214682080760183321867338027892576197378916690361856818638622932403598704177880018431442330714181599575155233192418556527445599572395052176815560315714234069969810018836241023304658315329793266642425508521354191314998528115576073968168768309127897708524763741325811971996783380916621015056529363578145876113767788914431567509732586037530134555555109605592098924132772952838662641012244260589605883551135271830907608602936407435790397288483108134920824026874000732640489381019215422575792149748227640538264515210640099543653869928836200249466213114049923303002781925455746782385080604470485918515838236454270041918473293078253691702662944702930782571218142362763807859602746037394054044343725082961127459658607392333976518305904844613522487128285204887291643831332424038467346516188499429842728900284477709992526890237235273711419412967158160319041431052153329583336460695942708918507071625976255375253431625837140184905719805412960740161024096065932216232534696893034215492655243262570260056036919602315480894928542880454289224016086536288018593210184332494300787196676931759191109996958255506967513142168897540037542883527694224689260196518134337400569380010545477719216192999567987667657261756927807906590977801186775177875170106357237366835273045965287076278503861877516462336736435001811667908865486290871625394867076274059472478995565432939527301514492152437277032086011459621805016843365659343924673060602764843824614973428082355200625897077702747979135257932546862170673687901515704831526572555804975917847945320493259577168097613992109222725671109915844055800084179478159937090491763026781380076141936681051879106519949567144454828041044086652211951626991260177865361211453251387305229622379414806054537161904345228490039719484942569814561459370794032191493661075781205259700319448460979099466813785254063792494521805767858827873361865374180232398564884600465849337278351522932178291402638015935987131069176424718624691468583458628138790845491733962054183808940994978575655548851388836638190015363277880012719649603361636602972409089953214203581451275335536145693563425411555161876048314377049313636790882600699066378093864644969191202844786711249390389418841537419238508419615737604972943877554472755595072030832419793202309169504825671127897597843847532508575818331753214960196264764256225450936859465017234599801644661055419831675709387803541950811251512805624939251856220496054078136041086310986680819638098568815059648372869190964067404454472577047725610372725511895398290780845839279943645097551173767969791816641758798253028847899410218649334124808634095900112653210974165710336898349664706576396040413727554374446880684397790960408399561869042439809734184285442386222512494042486918272967787143117658947605965625432674450453040728342991018523627078901657558137137320640590239814985344104543959395179940873221280487875630945666980110036157694748132051820108972927739207388944592043139543247329316810431310997175541718397394702206266974655195401867687912966095716122488518470749060214037354812308764009025634299797678661050132576478687351127763056829930335576922183063480976788093543507906430276567389487475426953498829656826647413390275372862285222255076416064204032262229751360832705808399942004860340860946996590249738454032642986300313943892430122715444841335317447010979592334936644131885140577387739074200913359644004851210084049724725436273881611988311274367262284642839628191530258444011638026487132692839588027419825271605871759175226919323646407980230191821318521793037023982182480114276751033853661448778347091859806873648392609262341765123904636721961991331146679737683796005871760025174283723027607527617088268503440919466941918862240165492879593326912532399288871119175456069842568466779871783886268734414449877040727010746879611306493600789631859077768934027575940791539962477379874422182019999260040696176136209920685444116267390684831083622982717537888263346325580628765750637640018404844167265488515690010494223952364441620350143699046519573419067946697003177837468446386543218023171581855182773928184568840940663078586544916168579264127120148495293431698544540607937959580791649441204878065550748122581530234796815708649989291525695696188852015649522936102866538983654832255437663666683347148372177760426857133105747589116767568648288365668963954081394045570931132421689167929035893546017310276439784227828509972604836528611546380447175270281813229194347646082368595930192783418621130821643524008081426015302590940638908518616579214771156835014101465160078180554829362168726204119282766498306085764472682878436412529448101102651743362524727156628798338419694474690275996252946665238847931045561758377298057036530032735393236279582644840994903846567249169112722277388627764045188705103441758999749688658019185950233210780527642588160161170758105250164164788095361754636667391077557664187410254733426556361975558235195382607125058818685494422863980666802235637255559720776404520491097108825411274686105952543583544177414817338091788258473562392185661603780074445066780295207250854081470378554115775751206821521376870794137258044772588256773493171116409362995734413357320227411094900464751470706053624180320004145674985354609868133171675492803543527393062295589328155351006543170382871968424048063440916928775266423599853385657422383935039812279324262389238060131391322753163298005133693801812894256713843251455997556187492389168304054520045646208151380884443087004832772907047518845952284705390928025164397658647036811632705074378289031255845081690504649355155142504320759137958861535202399381188343431153212230863181760097322854903175070868950119860634445750040223521949752870141663399246635226115442493168044972199193659450870558477450730875984828916618492922139558918147167449744649346522035184925298699810897474670227357287480377678516056493244690900356960001880180504073314156693973753314386044995721255761428686312325600292394234870470425839006042351133072737360591800915043123015823621231666339599624618616649697549606669123910508472099356955426742603367894348356277393593392954260184269523543706943049111736187016928373911384229564855716305213209013606973552306645821974201247556153979845848141387803699071815905276802956054354369507061425966449608302273266211521838118080233137841473297008188111729060831920407471002639727581637878629700375241216879589965299249473696193214676965272056726075444689277486045126526700544535882037587789566900463322591032948981882864659848884275801485198346630171181135302483622535136504251331078021276721423846021620188742973928463482038858360667787224634351662444947466979606909208455365054827516764390305154946056396981047768079004331356183388574127801869216423111157960328039521109935466662081392837630142421183040471923937428582653387554989336293480339079365655282460128655917835420356040805139536098895326279829528768083901295957327149201573662233300378341122249492698149836855414757503951139852509255332918550308885881531403866398154192293863872012269149458566743364473563881029754319274920168344085879780782548796648040268447041101229973516092529092436282072124531511660827697677367293051273605264740381177780513610308176413881189830146379791913550077315615186354327566857176392757453676866510529645264697617767857013219710911617164282059276792040304243503290279582610226797957281443322909593625973916940347887144385095242405756407870128832331811450723811196408158295123284352469947382471359650179027556203011795356699796473997253260920984810868046195532892400026269562196074224741667193226789538268605540427942051797714700290064997674863475576348107349396450926035564754975200896938159122729285024270668536801314267695297570906495932391837382840092516662642852144369085684657745715327976534032076519372108201280304295563447929555295634635933657798673652516200132277571994695824000288646776156269164230942534166490871077434079715194686269424676031321570623290557031333964221822340734386834541435690235766077136227325028102712223754796837657621645614848917274871129053828036675601570068513425168542163889728957573480431373392361258196812883387866941499536339249807571142123677419870864894161433578720646339879088560868671956033709127189507100870646442459368382841573318927869099549240914404957293168798214254447229128354999389634426550092263076089823352772072122706184507353749566894313077927333304316772112145296858064395019454510663077996114507091406016232962431935717881236910541202190928389720619072957608755708629618925114506261466119565746005630909614494308961410863304924853471655842360756294608221976431147483520302852461011709412625108096255980375387291083679176978719001699819184610918757185530896128281878001304481491412986408156287987414779189050736967228562739817432582497839766756723546998780013287624303217827810676358898442323942756817117130350663882053406294416944814374463092691555710955897177439569006933518894017588505741397828645769864928348471187068604216528379890765929976706806698813469025825272551985967776396286729756426546455761662245469611177556777804009123221264372699190560467667861113024322558806085901909982311795076385074397473006429981624565207387034574400007631791919194355272568240756892210310108637750748049132523081380828175576965806950444607761630823910654780232191538504135713262798965831399452655012645892264348828633877394041773764599450355914821297442749403754013046705157290564041879507594944162160111423364836577716138844362271551285622388566431511968988542288917317508164283098810010285802266930575142796601293222564458121437237711222662349720100494526194032772326322696519409462196169617137522909055913529856777066037522788885895902682271401163917543528294849518717842075764813422000209816991483526612324031032454911952069112121538113198763089492309863436718021898394315172892443197884317901117053539870277382595834736234635491914851208619253629492100483238787095491168583755602449370072429738067536269893066366778166642587711034653745066143111009031977560645623853401150873285947682298909867475005674980139194697882283956986711388265145643902539754762938096794259093552037382450639529461958384967918219887896309159290428665125586976691850548191905987227479072604539745690301661293463932207199300118084757824090269943245708879090632179774900824321881750227622220635173915603022199146926280316223105575754196899259480520811513425960279361729095985613371885615872793310626765357428601553972850562482240196593093169502955086137160016400633621034305446009122706030623223601401663936431016930977869797374011062855726464035357762710628741974815379859619531922843038562915946977606600964342718229896916531556192647662825476344380086283466633148245065307985912018376760274673840707120628720637982365268442319773110658682973895344427137559771788155777879809972905867607297399474786411544358356631313464477759762955671341112066508588315777133944190243106384471030518686771056960170950445577270524394257533964766930491616400056567717713328558442575388768262134635570204313433759682438253911716242300285317026998349245918959582025641481533756330888318948815203810399749132355794062291652692410482461791489428482345874972660096432735150389542971506975775389020655990609957574189011419811824227523655553922374557602079145607309156256672762393396624050450085356801826174744917668419687544167903761231485800488992251031395388424697305242095554167966760328672643629056227245319276538110279854380584874510631783768319897564685664427808454445319329615882223876150670351820400839860672766316405501649119469577674613308146170488327235531342550875950325152678410432530661129461127357274136921067472193346254317405844103539058381240931022089659759740750778434101673866168658336557861328193205407144230387375288393574434088324035049067360863894850488771373265950573998205339192881042507914782874041990304546984213488911681070226338814613283348679724756992170455163532281223523427916103863765822718868629821925442184263738692297908589574186885518073456399619169130842756112766413152649453487435900964106301271815182454416362151015813698964600165103178307253180880075655982116862526702268949796722177433778423285446807770184939171496634979536016311737490278024409570605000511364369651696564756609310885308264932781852814529941428933286335800332551562478279127271621744947445448896313698068523216333907044132202625430951125947068931287364512357464166771713978646729775516665972915006810389852725999783793898482817244244558850629072926745585315015222334199258022305641225810123987057601424035577448254062241588996672919365172088264349373237221345357125717705601756916709584280694065962266915951087872646317652912211888877206119337845359237790817547809837004932068499179771266587169212432582057512851464156102989993192412496111552788524951632081971111787678521938664881108364492887396464988745597573539901043672553100199791432240704346703714497135162756342963696719336064582589732786162388981082646337992295016465211601309024995636389299267580905800413837997845305783940075840456058038667993881529599996007372196892327763017750029033710008329462069325778411641402137475018296189468376644819176097847697859194934508861533331996502469711457099227164770504620639782017537449275011020573326950821483860440447359708866607426879547489697501436637903834616351177246183913330221394598540506134054092162662212201738571181610671389369463563233058010195207772720593448850920616926572531605448096236593114427652362442039896538394758502473830652813123032139605325522176322547312201128267943104754790741270647424224438603454980519449007277678125183056732354735335120633593680409237644173786783882672227116916108229902648996674560173648517838065238564221158313235729912942456822574083031080035443448948342557011996422550551539793164276302286953289048755703446644391729181142266537947515889306866269363328926090397763228076034677329347541520158935502096160999669141989273825985517941808572452720892345172984180784274298310803968088068769133863854179643697502228950777149468020973778342136132321047927940901590852569020269726545892384955956612321098004537368031369334822673868427524502372681466653100526657513115666925036503853526650722484314798924159695598643125485549435535630665598375441458120768506787882698921379676440074085884735090954638248939869727026903455965281352953608837516547156488174297613599202731027631407446074376674252341144434451971092195670920441616213910110206224637949770818878559936056994477641692794163166768770322662785215135243770341978636005313280215840279685940961749339834929520063075936928010696780217585400050619535087530724879642506728140129669709720989584675059700408574971541822624287808861731845739608342399634851392802661978136361880698116744903298964664631231636155111297585115043148665341745325532449843132746279364076674002456038901316454844205679304571210678344029105388499797491964424965586365770733668684932334801127957398711733654373688388674549737888936377327762796548454639238073092567312879908953940414946498370860530307186606071804170201871944092465033855556028207519384280121537864520006410797284764760464876640322125273045678329505450277694606716004077622564767670074377935191507202939618854808841831516838790659463012629129004264564805057282813217886099543698372797206427856964787582889789452005472029307220092674849664303530299619398042195774977023374838681917840221265927426513063745254383022595873775466256365890563796886986092861733373801258086667815533115538048805852560446956011157700598113728693590848639347382443495954106715970051243254358457239890036297516463147777757872613991750347290121795391792023261506539813186174527725263344399050131426754393507602098467162748883067156554446017121446188985938619445086287107019909670490305168910014859007582623809302035475499341384755213236084686537478463193908345390609559030772759741229648519172683189885159318482841970107894600272571378304309831238296867039446187794582699331145220051229069408685381543842630710023496370919796801190714496500457984653797965804445015558065700495994057981560646412973753863862635293207767919989002860965495991034803533337569138826346760209643223995171479739203398367567765029889536196359167554734090978306466373096144753607302968664341789664852815943701370457907325684826423763833197638601814249260997117114765545372763532624061282619690975677418657571740070393873510295777890771851285071171345910857859347002745727167833576158313184127418453349149825020589888548948032529004625787373170511696453326874555119849152087063010862243666203253376501556920987483569313811553545798757642156102757966244324073317639119490036717934437374653510507305138605068115597534292472628819083325431776496496871430169676442026478628075747728462537662374731092895988687330910565294145988113612462659543150540190422159274832616196446694310547170166235091258853782548406255985327796395775690228991522149657261735024415778770633488816453396288608827904785306010146195299042791443103311960888476352648127834796598694997950751447908245770300216540757178517282913012385462083939894718151347757574877064264632224120360180094037873102072592778461209180209907186192894709748416669847015941597282963812761567331457757857521262078414927429957795640327056920454079951141487553358591238584831548789454723024535343114851000349106296564226288839890932493349796533404920863069675879277751792502565339094711475158888635993330318006450699402924815030306491707661454085266722573071466816398599932245736776560247268486455995964353180881240324683653293793555197447075704598815239106316868832825752562235029434256364222520880203592990232268888941734951643521639196014422056431368667779600043969514153849512427102059571320288753258814850783657512281849974213992906812759234532306146754480364883141875085081294723237953427368672441762007033374960928805837430996853693441822012376555255568534421181677636943169150982950427315847425030569508392527233153126404502673751086683794018184002554165947668477103553759542940700949683727287123244061721986591443949070335682617329743225100536027608979030089085223312063155599515620105464795307239724263719504314590293265616389590412845263203087720394166503472877219525791578274184423852342400107663718509941248765021388965613181631638874092382847917871196340204013176457616428259843788276718268429994843861214797322116168092995830786273216308088255925058228913981003983681280495141430482225905760145022863757786735983924498348643536811338899960460092988935226830644407592452287029490190660243543679129562988557777067406095020854674297682508747501283959695932857737308608569349429022582148383942810012031428974313387644512285200392374175534024233770142811164935495411234748671159016216370061223873339091816996517879487485092861555792197953307202134268810767515905389677742580194058795168906010444574643533481734759656305502716690608119365935061517362320294487456649391773781566014143138022545948209143285266512671625358907404814932872581967677077156588835506190949482334640802014668955349634415675771539263799467191276939518609397852841686733080674609113525179869670213010562898203744695648812672324435311515689781436838398585477936234909132753460114294932407670696306612570460511446752577844642571936673960310697234449851505249032320705957432465244412606998368951122420461350558729780964165066309458362883258091928300743371460613099207964612415776645470003779969481463817885193511767177989025730013657634013234697551663510920389165172060129509746453906735938481263262284714143904813790739772564258693849402444618836777910692047273623150804952284029201050375395578226601808894874605050153233923791683016137825789429987171519668007459260359439742761516674920614530389423987485457354995175888604266222815153798014054152824307998355743420276231039079936979977585789156485839464521395698236280252602839012494841068686540797765594650215860803060774574493339157743482762645825126971116308954136230836976305189864331046078750198300896175047721130827440318469211245447290402657847869177601202439958596120046707454395879758577121763745037897661438695391137276528560128273599667434998299500341501928863336141113389079825364879636499120930795512182047222506022223935275409293324377539985051779043750245609006762057012663325138584413129721604915661901193679852703148695719824590072823667213434057841824939573706875616394188968685447559791871588107957871100128331563068333567955252275968209339574696675904537917819383434036624588004408458342818414302054642431799561320496022248838077261866204853711305810559133155164749461957879946892097065846252477861821562506543684877697512046274727477530361558339652584891073307700180851004309369063152934540788387988832911523232013721486794214177642688779414811179692814155617759124610235219907284679646238356725210894104346167547717174841481835602627196954308096559687746630846127299634916020553615454559706874031004952300415749755303196307982972041944748623314684735183555045764919373134137818426785027031803734405767244365241750919195144941832706802917949398046212602543145766761189937926956627240767330050364896896085564588686374972654314827184999679133423419959229852531448816171815716111286410178232418057008030718935709437057358780459372110384769718815382485478158020838193952835472657280547043916803710439468515310414759066859283067957808845005836956314435104454128358484280566290592776768092495583232902597487247145023853680619680123203411050822566670717336769427896307958401529890764294307853020898677527168782935947246322244245764804619598780075537013795023405916241997548669599815297894953700875954796847754184487508250519663046633910104378259402113892548977639485953412632048029656137684372605387259148055455817507024789478512682586962587634529940411784112281350365278009324437299305156825980157781035850796258760734356074053763036283628432595875320783348793271753709972330127648149880094378422515229445397847932017645926054206583154709579587878050527566242470800781422490054662842091058878217945118999291530385216790458211858373093977961800921526028905448075436621757674207009282258136818346197652054558478845727857022319533300471522061075290458910260362202388095421475515032269543176124643175916060043016621223881787158784867448853366413819369637256891878858600010485796414430499067880996929120854257325041533355674732176793852926798377126194274733354277630774047817666150524008884114656920416285488134222113980251935935068609258232609209707442634946531162952171746044544663085205849374219643225575883703616713986533209462769215742361953786693280711433972526412984706600139406112400118305000138566853118986306533301266846015256110876222488271098064021872838716721724394645525687104209597453996229075357742319677245734717028307381155349829311589513946313488206791435413926838684303551764644606463213047477642109945956080502899715683797890200334163314659709933220755122883882691642103381707448221587562138649557237893714708387000657461009556429615277862185742552677047851611371861959474737644938086087114951414283265080583542053344038866131968675811979744105397598308037950258071678008122936244097953185506972473259645963085722831093134330064898075238543784970970223489096913624534059539059498552098985204940025384205115955220176402649713502908419327968663765118399313998630391276798417332270088499009357315155554118238827251477805221318894806257048353166195406435700832895881461666587885763781776695904945884999044264549149923273455278222931248781441652502398522822111871783585468504142508378396890463984580681821534120005782684508354473988880928821999165677547219029942448502609638098279698421503374498429830839396147162284525875405531038643956853141819725604476555565327287040641779697887399034974651092585373712585615896954016705680225983534534140987756319661839545623637437804980412210574554802009779205503891186519128912955565077104919025595560776348860648346854380634405852368840589308146415796074205098840040189288583336389018431901819814351544239479377031830488346075700089352299088180653305552007146104979285415790936065662993174712966410425509966021590954700089291284686752841738457377741608273853974265433946605090767559579407671728790017281884212118999202668504241437735030728052416846794387311175537036141886836535158892381924726810406407337604248506695356894779603110026687135890135147570178360210105119744975761484080596912778647341933120051967206476910989299778699487471577091843037547362822339684739736503549172592866500967479125225476762573406720931354075968010758892376198773372965897643118780707663387664089919468646974067346944526273003036783515752945158136123510978319549552108926617338059536222969016294127259756435976727792374323917613407074421492035416281948702268031596945677865850098577025248251618708035572928293280273438193998604425372026622884090195421802724290841946464577607524558518371989285915503526086813879497303805276226338299182223949402037302815028659329003683978806509942259255315993648938760698390209930896949505159595642340978003049908893054830396268574888028357184415150704118103373260122836064279808374605877824429769649806774440464578791397752369518696224950054420271667336098765597870786588238849416234700078443238674640604491260702976773832410808918271723934892666864540602983512897351340145456640771865950974395134083417204255049756404166203916965508559572642819968403754322750303433508883810105889355599531535402200283115328200523795685747973687033233340828999938248776281757978766284866347674731779200770090508432158493445707586709023648561709868817244862525081228464845363883465234169569565744052957112585295431885528248434623930891512443140928558316804566328428767975983680901728987566144204366038915161120175573745379670093206580960195324246412354729082539140403847315002731075897019754783674399155639888620697761600850241654560546885921185785710658284840642355958595085698472115850935713021228678889744043517549787817263256891703574907371927585202514526958750829692967907200518995370935536807409868751221383285596137056892131317887250783352040873375021366386508942004673220322792431175348253988940898311633257938830801969599688175639907216733516541761795792483609204075543239588279979769191108729818912105579560238070456818191580126234115196354221079834539101755395575155048829191472727860722759674112477112478690319173434965809236969105081861667129355237389674595528424861024400335715591488213428579957597590661774988611351707747784990538368206201986382076620876244109416616937663344850743816186019295719807159841045493779160214351170346933238148384871758131852398333722356912398701958386303192444033242892257865051831556276487540628834329999391904354030155685655158946376717825227369429272727395683037737975704094758116173256839585874105166114565955920430353885871852223858871699707744016322571728575526002262680802923653161755921340240613852595494873251675044696382987569017841159192151941426622148793605042015737963833835485916018590854290139869194201892946780279477027082284312238439614415291829358457483336368910955879070253978215344668598433779664322721937109216125408494203528413538638191916903772826037794846389678845673001020956438664962112241546922324391818265578646952337263434856828799435351072551484815379167219245302175453691964437510204126454100678536620036596864029582281290474800416104382599654416751689477339885879831949816001154383430649385070879597834051011635498229894179316256508546889821395150436786753850650655065780160773500502976606852222768868321799738226907881742414659869434097108274692570070231386025831864467277364063170710149414579010151717955585850226954640445415780080516715484817750223529177637016061137203755202373021535773434046196936240866070778411294906455209183480397584765893355973394650530633232196448728626293732116036641623206324148498869226713003098759769418708613467366451993029929591325454521305563896781670159978247105230353356311257383663672234288406037521965987923618160408168187876005251422932204115637967234927083396870613495046687139941408541938339281064754418368386373087479854526646031082863703787975662357051562204222733622415690462084176695018994786058880643167502481217823999534899268581709176129164630155401452236599924130511595133280387606391582796205915183381498610006522812593916218784590914904577579595269073304361196307402220826431325975083731778581607106277857887741207409755537790684716124007099261526874515558673863006893427626790245371930950405229113760934285629679106413166878729297383942264684775514535232094444980323299391917592127948939009908095804829386206312789984023740769472876077844606447413156692431743958232371546327479985798498449357854474125892052107108433787790349117968777950895753060299948119383645491870684229689938564861118172831349954959002681541825474555133466213951805043733953436219157965481203668808113669619878907253553916862384107610056814528355682110389062098935588491204159075896595262307390645078794730857395658967051375219691928466719498406157522097285054951694917120021724269348211877787152568618867689826142117384889377376139640297540220526275616311754013552004563231870148804091561436094019955210991292064276158385136106059889025232161698777190942109100770070915927657589109273706442681929700897059493994336800823812190115235448421203968972079580164195845315217550059090992095203381369864264429723981187908528197682534494139979061264804486709132367307454030213318400303153726947858552907513742751197201037704705214631772229724642163639329261702356930839063844170897140365319021066551737222956976751333620357842614540488228519941240043849934060940440872403456797683576971076506674863507440663603193475018150416369492674413968811499824688203458336485465464783653112977391311425516845068590160493981335461088427908591135633527292333707077570882901895521941201627872582939478959702955619479400115088318820068732006778750455606562149710094631975154159021031285804126920185051352679229466880549218854428284595922177607779415254988355300060525406276129875299523938168557556778530226566358546878673248506147829904493087446879613006319584605629077716005517741821890682567190222485677493543377802171757640748754309949084684633235270210878267385103402419362493610846075507361872245250266519238590008005817103732457409468784680078124371480557639519007404986323723106498277310946481823367951515327188816847059503531431417111579243411519140390778793881471299013414138099583220494625625598216754934966439791912371985953161052577351441076326434153630576843842878601001427103221682801181202951715149783797513721518799119355226926371513857565136510339978865516938326649882406074107899208699103400694539595645800004334695600026698231855413236714852655310607024591151259240289520637234494653486938803469274816351936805422552827487071716660538335473571422724256642908653530102226591593742317238157188424031214308374972993031262461763501841322744219103285990699950764946663727479044961703934276770965256864369569948839874388901931486496494553184407901188903088333081395916146467863930145684456025713317038789074110273510899284244870588429253675958880279725914273765118924272146151450421449108070967438012029460783893478335748150705751078108282725278694544286981745272947444636590574600371556706004508737074642548063208329934481595843768678478064565125075181854433516731825087546586598135702352623115789193356821496646348682515161431196503951653415253838263126332007822513849988801727831993353467266284763681841440483620717626366013006138595515716536971806365148028170491561789173344247891489872847049309022358394430771627962172200955602469534473569069983509850530153824534068683957510414048939351300180510088035366497274733155949640839865368700229234112051916110160755788442786672065922245517691283226716070863746713614750351812760730536359916453281298315287985101612499270556795548031911793428416258653482620514467921527476365758757104634453766447728286853363433704974135872270946947483735642935053353773820358551154188465461242218680432180144967162915705594328553828158425984062511267655090265510303017806146269180848344885156147449671122777218974829875967938667141995524200306699484871239116539510566699341172169487099266023729147890937581342299268088024315785259939268701027903571996536344803848397054495211198895245450737703754665535380735755367375063661846796806271238623687921374688761642584942781071497714010196267483506319403737210467594437561294800056139022300869178697490592734194109409462117172712609286062667064471728947936012736280478131240259777927143978350111710421349069965855405053204466443741990753589623343020234703565058434347070840435581749052098052326673386864815394721654972650513103223246766319552282377962952826755994705455628623156875516936877633425734469037502019455909085758886128944740356288751189282825551749999969909804805709290129615010692461913174749924144581379089899687879244705917304623031999713339466877670573407858084059943763673493755277948436027685091765642890427145630428001783081831483388111093192717106926806458301241172930643694946888394730439440689766074749951620556786183487633932606005451918730079293700029496784776243210280472087743284922779475508442898549544950059821189824752650707116402621797058470023267526330504243369593674823424281703758097845398380522427903239084068397711792810359674870677025250349752310589319985655396015866242938930283482135910621394688376141674720539090148017097731351128348213528354368901228801810406055341151104453441477514659931477645125223198514435373040938322136520682308153369749149066264896422251597014612951249997995383764620604309171145348149338101415587903223033507850624220186993574358851553640004148073883536654929174185428613677319851883867958519596091578989429454313040119216283587142909583354181422552541897455864694025548487041748283236294000808121325571529409578222476812320591707379290182059842490160503769025177577285318560799082365326022151966776623337704852041110328199733671232826006541699955657612355151718663794853785826676046635457235599081670910091245097487123521825095761118458059978036789023218681083179367576898475333845673458527291049332902837736213471142095821360721546192463296085502650687033533185986760042931521086039958610616794637005431778241276167812353393082791743277565739017232803158261614970582531672793904243486480245930022400101622752886520582801381949595355845418455996290341391383752938658520647148882256190167701831585374008528703655824398676063405856460820748456267591145958890989104100453004503886741015891400482391229032120071443098837938550067934597575665736413822142174909115333688382010807071712958079339061140908254160617785446257983079286321845025110764440366873085279334650404498471255525870774117043829716671839390061001513121425110078478870795771573314957719362107232781095789201586223728139109365996478072446521852849456146860238731985906321039925760759151246793878437429238730707672775376574600437416184432247063650803367091618160782930802204864211618885304259971252698458055205652401742508814209693209173295092883673179711410072434171337499504603999649297154784504164497312059138321135822074358224837060988572031366253954453071271561011063515533924284522592418309094843616819520692450713558477420474732076851042397080048937090001488672880803673883036485963126644806580236448457649006212716730926067972381249910696788003625386045365640591782635660420536117122925496131273465304117983958486058249123847878376993189303266202241617953321325083690950323669052305536685423243007404078746538119649363380594593328692974337934114005760732300772713582690101698585491879296393017194579767078035456890450405156344781311760002279287370768412277911684584678166024701568299011414601160144033349625961205082373129944206717363987652641640496281725465986558686789425906546820279878206814013440530588500984981237180443034649935046839034554245458656662282675315597322904167408521902857019456153046311544299404848399098779236174389233279175904962672607266759281157478464355218620685697784828579975187704478398806635781337033453429897826310955584219014053887149210193070305108621554644121397111677414825445443854369953227913337640978077217138450466983027299899176349835031685770172118741202264176780673874342949647235916246812919796037490154477509482552515839786626577413269054360310927003805753746063419216214938212984593074149211379749833847180577785773868749344730597456382820663172234005596760794387274397238697865758954794879058174034984336289052245932327297348571235631234024975281613547632814039359561099253054464387206428666848795900026026357956211874945585619510208640179211268149747736989372905169450082975770523327271798295374260676063589778708422453369898577188176360175371464653099951469679338151017094868677245694704836895224973747654995826736071002828950500443801388434795109276877364044892941555711173469240092105557881196574813835383785887248881825649673482795127743816747815197367755045092402826331178586454264165737143987463314473559335320681950849113143518751519685359618972041346806101390741105908616499816511253327579572787370071952997440518323004238910631075474945895263416614535782483958008834391261561604314425624919571560332857063996805680347793106294164556870403125458166566517452192774346351520574174468779632175385231733722717720848629045215750316215275562086501512303408063544425139871941365942617627357428783574860050735706015462209191094169207591605196778632322657172772517621280008247761954501807674970408030077023666666849191745089251356731586078126528762337235113031759188681705687859636681629089612729290651991824581960054527191358981499238365151756704529822289341627952752668187775312361689836572411454866259393174866469036662622107722901776278025676167408902866976984480215397595507661334626214387034659580708304762098004379178291977051383930770713181868405756373976950411967572827430709574573331386309890890447198451574633318911810668614248228317163510998210622112802974529454884847750877570558084504568019740775452110122630656713898029050198728816886011623333317852594089855328938694191650968593990900393234719254768452162892587359792288265581420571813541613630505479224529504646195586144003738070747932385726783287998334284550937419527119872773976401953262085261119071398160387391008136201853708377739679987664692999412366580035004978536492436942286603930185523886761450020912727611573081480142791470825259002599093743366653194449797207254421641276126215830864204208278982814276293009354111101485552299280633449307739172911143514613678758335232196169001383288278992162356286660116111554458016946579080908016412351532314551975526328968177315203970142832671705625476834707273613942622039679668588511523716057700703514538811668940476371833977917029408137106757137155377246922156542181467824884669905887467206859466038249506716366651117455612941831010653579264635582976152968865606051263502094010017276779384282372019666570691376081307590458643368766883419913158976305681445808925719044989918819610091645492239509831003998775667369842471605553945449678269603965022371091171942352483352769871538976102326651355797589865507562451245826198594568393697088150027591321317950982272084070259216375205394306271327451038405418110217907924625664453397414679551067240544335498464122340152726654638940881378278544219599951958242512330867212697404480124246376041486215291949283461400383797024388127193249518471289155418269614654741988338227611039051325673845445255590298592419464763790170090345988578182545668506390636739978205320545158201787250298666523655304257042284528676980777519406911210424579637133747863451024873447091682106384111228026293168868045848525214779276132570241446350702070151821368694033640848160008066936611224594442262837683002848386892692364599628683642879722716791761826613052492939799423198897062311378904186467265987449412904136286750166303398565969919680956860012108032395928085597960695562241971411689970266813285564059765832172845071941023689062950791530066049208615007551701581596716878742442137898685653293843661711298837816769921057182854576380024987383527971283001325738507288380197457253867823397222492393579508405673274190833270305647239435430655037993382539592939815103489547882324752258108415258069751264313833575230711625779562574673004967598856749982009721483672494429174170794174032753579330624086862136130809199755049134993571502298553702156989754121466270079733013924024903632370948917738087768358798036889985580629153960160308390410950983192530535499799114252638580741453119784720021772877322845807628238751301587832598473184526978545730386845697173671010704057964680319523376145111773640059609998602275855852332983922512662172132118738058941830947385062681953499156338947421048212628718959077086616021141593027086940820830512358614187021215249265306330206305759821519155202450271184062682213198113116378350660766512900094419652416266683849216298366378057144758521446448913725899401490008229210070675795314374623150793177856759511657412331056758195180639484125024607736252219642927225643616770839530039576970554667939202179802760287112095992823081152060442929997346735936004935140700387023942709722396858618273036245849991616639153927852516973454649486234947870119583564587907982150915419636148915393712743033694206258328209499480662034427060221112504572150538874131961547702640072934599445102691806310232069911795987694658768364652841607072499846990592222572781147168006305688708329172154152321155020409804202840493834369047673209739795429211570770688195772686495469223318238274442342842378345211085953044371632472387873929070596661718936060898476474334577916289326414952274961931111661341680672456370309415641858281112831229577792159501568446131404472873100920429998293555687195638976405653802985915620776913030331147222558231154728725661986351903133480768373850040258947200911255220731503824507774113647669382251772840209721791888915996636994051702599554244316865820041883444062519385409881985385720194255099900475767906336392073960654470446261255961942199725744093763632394391411154466944239364519579863149457991693320892974164698525223882237883982971951770371916889158340224430144083332502132042089439424060334681407587068351279755535315619628829109665801749489190753040308747924863561291912160266049026986746721934126561900091082186489784193615342225317211724505583487135876732324853589055625007406685154134009303232641821480079451162029575836867964637911320926453408264509115908092388059320218017605704713264482971877535400982997582231599732525123042944224375548053162324147551352069514119605899649429471648212856940460723731241154661821690101110790587867899975149641006170970818124853988207244075719154582536888601101949973143430020763618596411505944292330181101557095581416210260387770044253653925757646285613465762783161914273319961623917576939513825003716225439045698801220565228787658251012794899905703264734165755504989512062344955916770104870634022502240189981168719876844421457962078599541513219138439728838930778589014371277031010912404677802310853398323917008530377155511057448161944080452761162776034027829162083387168369495398970286187722885475046376618904199982357542356221764226814837941646930392612280418066317426639385341900346578630071274567223152673757862347044122386488824399643874916834568675723458764061970201238711050212286978402516816546670858031891089915235778558620250376117925333270041793549550721723508060843968449352385540434275575500147856688561713298608421594558156765748003452524536736220200758668116288046699412566760227738594102881306670231649539110996536170336605531999766850962732897826141182644738733969645880931327200398848925869257403513407712026470486710209443004279556571329862750656948596157637911879192501516233880873085946189177644997126881549277399984630793392962991949603712304756725774716901632560450050147532316279726610378101501220602282182786636296480078085152100834194296290757944224898561714004520242156551683708732146502482598998974361699924816384936119338199514554625762632487951369210867655015622386924840600247028507586945775540512686624299798443712986437207715665188315165064787536551462696930120040634041548391353650759076214104691082438369669956895868378368168407698083707084893719232096461415435781407825246595306145211208282749769973326005044519708728592965830938448025460487282363940837790311533809501053152324856935613493213734101583058909962344184900079393964308079534709281829925639715979773909971819379236071749572802696913500006778626446307279613623969055364403340497336205091368462592913855790545550140292052666285187503794420433061498560766480766361578389206435607522379590655618347364787326429271212143394894166311582113722754244724443536067811022587168684393025894480554713458521839452107028241757535875005623634032365601344628684909618827796974069783296176026956624855545732273362278413603656666957039546931690108843210830871701980711600159580925326076192706802427367876101739687725845155436454679833147625013162325681992240760782452828155458663056082729191582748121413925362350798947960294991367516041488932255507009297739015007898503417847984875420832789775747534745433337415602310920088856353166962508209135872886763748457128285637045446126395149618691876964083903267307368375432895305615209044487943536694095906398472420471047381393717816370114243267655344345206637820191008577429224314906901253510722492949267108182389163228236002248790719700276882525640117230008365028317480596278684286413039352392439236326307763545905091810334424214216041080986469259677750001278626451241867066781680230660147334454494546010155493191917003453205968477862563810440300135852812505125022835445206208423519780243197984275596890269146373294021265238809934905597236542240629683294166908751360477405186668570435255470475611379967969459963355354158310993235702742305824987563175099376433054413728561130449709758634972788480015347034509065417308829405661235927881676686593097544042256965095577511254837345762659241892172823628110972038708212670905714158856271948351978987076732963937565797809967594989098294331200001153964012024226720083918796952832765393036779990214844287277253848920883937012159435779898009770360010750457016748208872168512967638250844412671727293910700536002415862919644039464220798420299773934656371390852878771920128052475365350078616326839415068558097720947941695803170227563467939712423818537921004759822300588930640388409132045738987099432720283677089224354533656108792523925693483391086548507060227306958904268716824749139365421644350955575439056535947662209063769973841733203439618529024986814888828453998247076202349982485074667469135137271145037895858897006862228556733815609650450811268054979013110543712348240622615855792956778937825889755378489739576174209334417653305330393976457870773711855214265340863043120940919017843999313270566855054188417634613446668363848760007360500705971485259196074022853224601169337686868053651870294358218521298285694364919952803518095329815537464903599940190769735688033669144160186017995155857557815847178242717530405237836613659602482688174007936852513749949852188792289656891034632051253581740186701680748991882672431227459218402822540290683793837925349863191943999329183384245634102033895559932372086971892927366914576055420999972302697935597305074920200815988584410916898265772436547719868030588693176967614747131089860994321349561897995368715942777861471093389778394073756149623607834832951142393460695493018114968818031326192218497788484228159349842632677248494739498567996695470078088299276525101176804521497859381872064641512243314809835424737104091055120107095371397290791203890453338206380929842366191039498179387216742740479965393906712111765994877221055107381390740668593281144359673174698559042730795956252981130417092493663887205216665453817497929246450684279885856207686726968397533261240504660325253810461624451569120010829374290386411535906375255260773180645016666821645990062143048445345101562677944553201128782952854062084307374878157102480935559023765788040326420234536686152153566769570648944773227436403656449653206019324899664598723432343899088984908000699188570869905606347761982482846589021927605898355091620373036979502063717910969485667366716538884137052440952629756245517480768321768678928565575952989129675886440370957989624356033940663832337933754262081408298768910564682698914142124365715463765493372590331581632075535510834874708955459537967954666751409256473338520304350801288774431618938671901324380818952030497756073615973721976961186782010348227655288641979609443236583585698866525887117313305615091318545885689388810042853784188564657506925203263655035558494688001710337505991865003698826338389342405299313154454589481694271650976315824997180759783567785025214552755622933613414800063997076507798768118213562150727157439068304060382633425725221524305281514016732735478370145033133539465293690612548205544836674911106991806725779585648260877528877298373700630785122171986499702305480203494606753210922592724834184580750633323010079748076084408697330266072496195496151034181419270183985887788306297221522869712419386546656245190242720816212113995329155879174322595598813402616966738970272970850705883792353334072900891102377807417781842453548931372518547401361013238403231031278631352346800452039153771239360876016394915400624107680958857255850450582270973814913065813379435478671172530624634663894825388496763211669073095489580955571897133631327238138993887418999849601500978845413610966821844536829256320481295723818749066316925894414831186621658033505862595144498231160492133775577416711858647833488348368508797498853838608926856934832826128952557074276553638116431521174967647058087420364427398434912501904921291066291573635833137512879720469320672989440128772685892229506154722056807662929112204573902982911805992280807051290977459503916166565477225464477888322583986353110378629768180720169737779031251424448856939019494639926636766038532102162936954963844215882674145209199678555626905407813304284643701359983258550386722647622323677180259422484196686878737036655335471237885362153452643147435151512828950804915035389890031813572210058250241589738532465254683002496264485198437803749188444604769872783681722709776122854383512148926252111733469025925970043839668928389113131404805132223009395283289600009248726764532803536143267446009142695908653906056205655714032178692479427115655179607191641513739881981596164988026075489616040388038055489556329154740846149587183770748074029510767981142927585620487069385081097260760912136328322146005620222608627396852573303058748748102698025314802378596757460575462955590160767196659378204981091489263324043122609257437615785252991070467195826546203976537433622199701219473998968022837982935710944456491724790237469574842725820330065072922056799424633953121708704893083727161182202970807488846238422611237083359331395972786997192174741341584063010539360321342268661216933353857941744348923008862975331823367395499201321518168512443206567687397989281096020947898158107416045520377052845117706456312263410724921996678803742982189034537907206633826430044778608085190694422819933310361652857893706786438771715697237277884039530622722505092033933569917550996132591446682404514393941098977129867516716011827549551888749454749063428778173820115011222745954636433253964918068651451593728312065577416496530221049796349631133564249928170958435341110016518121925155354911331345812578689615340386109335419978302222956718705280999369910275957243755206610280053744992072282230305627106774312378797377840522265509220218085281771032684032331793274720671082437363811442370751698099211021339947016774925982358338633961318935999355970675369810201796930899848101866479251943250771030454666982502935923635614956418060248780306253583518642277848879523200136246755549594186615951807830484967851225365914061495040097656173978925394072672682295823965352265944851265757199926018234758627897661659132426156321106787731799810717983921201981036756985698944964146589053337639218270434049623425616056259324950298159028801898145586188018408973744413362753829307245642048554487149754783132452638748549477249916116333925644778197504912709173514390012529290568204970629261026816458599921427480372919209902605501054394705555247699914601508659780699192737044526794124497203432612367093038908561519838729507720729899887992254768224419067148337222699510248768045083018780101212874626628264576452756614988911897891447959570244972423661586378829916593980060930031249102577360151191639096401011006620145554932398536344250119798978768197338789237488713929895703337036909649673966827599471199566296588760213116078735086446701238498160627009259843850532445002640561019417561070753324834780769981729122820590910356495548419384820519566472903516434943760122332375132814253616084062608362217944170421372526883229995050298243944411552438721455022354636739790634599082912256778053816406137736370053043316539164480624156509015285659074724821398928978412967918702588252592963108818020488667230041803977476928358263503161124258314564393636671542237502822540896293435150755939265218562647232810043139640209489683910159523711884313223950091941444705468212445375964706219988695019569127986574469733820658348688954327730229665558966632899222790370937294432083290353116465613765654570342151752137412402635015807810475135394662280965593448293689460860895032555821160467661052500140377099629065634821063251052139811091430318832742368854450600221356766819418663431177974496387937894353065604293249581370229862342399471952051229477398716627909819468356253735499201349260988558308056127065076420887721572493045543165273460539037712343789146160390242970867577493722834882688744983681509599340608589120586903818804107798883554052214346604547082109302598695973916765835220948972764025343031276640747404824386217421032514090012979767166362214359786015709134972444576505126312507807800156449711655044615670961135854878734924311607041925381848014455627783829005830371009421255259184062623453479146911396043463348972592635507439111312794700359648506952950950676515790375570865469439418663327043026876688096805099950070424168268781234856301641923289483581514524233852380993909112137248782251993597599781697160146436573151768478911927123229350847321657438076007860059987418899745539882640808316168787525959639442390519593603654748080923980520166443128780222492885199704095056519846901539326848243778849657419539009217646551002006365441717176676241244789526838693334058718030540213422298868406565919948372573406685083888442355968622830256370223131563145410905542039379324400924360212640179562917278391595509324580048683084207871252042893192279270943117966816524260626137279386347008286378272181998723177517442376853111832337423707753382361775272138135580140778803459614800342115889465720920818432133693696801247390386077172770753672170060474502169974093912973610594985896951701805812715961335837078681875501712036619210538813342802543387968541180632317589433122230139663751503042619660344282353651436934161648146718581535618937554285889571553560423331926043105176731500667092717201505392180706919233497988714324749665418765531898178415930769249821759738740972612524053943475971639229614906903402966995369925961601859150496119941148194691369335760584938862968211018185695742896802239729539887683579148969431826566937566330341111797045257612144987264641882063056174039278043164112137674771654684293004653557173860732391581299894298711378079162931779811373189929164677945117776977489186415624220834362672842177466153756773369464363373480863125139804235297030528781366513394081937262518367569104391742144262250359188866493956832508822724353050026402220743511794362072892618347450572329084907818613292450098425744911292147435284019272573437995872645545710286675070039996160360341506449650243741264869838552764708661147571902152118569252819986974577566675996866042466150266991539832346170090774466192866785209116157371143465147763013324968762931211858001655767430028106018387555863668905448398927285678209102503819017784833090727807574733941087914270382752958188169193608284331513006903586499937011002572903327869455644965513848421234926399276036891026391913748873018419640527095398699887674093116860431075832145632376045100102793538196858919925876407132125412938890229128211624129766655027135451911135155175965652498167421153922493554747725505033533294137567327102239555341622231418735889598622526862363612948454880457887460088716885833246415910343858886205127935477359546285717305587053376126920978653817073768947071921837131016631929568982431880464929791592625380578560531954473788448979897930331375422405527842248609155454010184939903733017162713741695171113592896767819686849935363539341093731118595083683386448026007109409939020789218572244625547627238582335742383133246118692922570122744050110309383049846624799569104711867173771456681059998015110412890789344974815552370939107238548416129029536598415329567828666900979002565388457859280265521317505244554671568084211051948206863869882332933702381801392799921355089489204626135742954988683586464965308150786954662331786411298247991180242392115965564548653365628524483824706005197668995378365149824346885583885801699100725396845065471366701234388428297258912915551986645945285990874469960488464348983463109585319367749888048615741722562313048765453981983538617468555654913351199086205481374957705696059269435937001343783395548376012760903262791174059750246405506986209758461392807504550046100205661867910127772747383953596957538653175436314431067856281618098178110280555733328841331888533486036705068188360977289532762449100622589749803439426587693343167670382766220998184185911716195110139500064024749556162833873166998653099590874480990938456229196802607655844477495523476044535012537965229518295117038555199893068054228047038663587843917677047547052736124071377973571653670012139361369350870451568862106406015254537007361187952560276668989140030155638535727344142155493507127136445857218070978664284131014112353492662146766570489951275812720028461612725002426046341369013920357680824867825178110281504404637639363083107564287484467498684827827795687397846540078691253077302110941296180390672407775919146682269877310997987633034309868303647326541248302496711420985224238406728846210138800888255542174605041502542001712750251019482988171434504389538599847059306239346784034669159926289811020891383954923267484979071165720578131974345362203194376900643559386299296085465250127769447659314938183374435116503845463550210543711673653252925484453277996141535980215093061546304686157415880729345211713128748992431959765787333946450065276335752716343123290220025795583852320835910249184333987805965424612395649405161095027973483774879230491440639303721698357835929242156710414914066691086943426799060443337250866690225295452058265760971347505380465526469755278838065453028866886529673744991152308486558629961159860220897229182692695463560248157314154030779734755536616373311179983277259109382147538589262855914990342999794369836606531221686648973253145468027740483739150065374064040068389543957120281368027726893086562522113810376073862305194543877239102297801981813845679295353949677772558252950925056155447497469829300620026034899093887923286653806637993018629236134044488916614828822882404260659822081490127598714673920822543920819552446359429818834126218071616356958711780740217487679532967545313609987888431057154099699898932439142672459834906129964291536688811507148298954109942394383436019882274208057284868424498003277794470337022818764539585624597548262940135644199646258108238900775178859024902232750196440290015927974918431365374082360177989280335992470839633676241813057734437566181738066804747883460658162145009384632826457441075482293780668562524050440403107897797163363261616113343972391676258770481067560797343402498822632239602918130372133161525511992769006068838436757505592443164364432936620479394681974715881795040489881784489489954449558035394136161741609910931360934128953083811786595263821167765025668941392554681855516254254663379589060566908265717290506419543403007574067943111063670434472239863354057321394332900048990929899922998550129256500125864107990665123708261472205340534978565377809024911430912778364433973698050664301183368441729968255705673214988212307255333663699162757486711656049058287714206326775141054974149102837651164987487877577458415404756041910234244351317594571942261765618078180567841525491285956797124840096043180334283947448498258521126909628236298657146423435072093296482501091069391429368469853216560790910135905746890319048651489405947315002424547688858650065704452168963366937283901912788575489747098300268992971510477124771325802242253917424815985757132465338528274770047420336299850893894898811110486376461317470934596973897183456569194836566931090111704305854073672142382937697570389177497088057080176054274195328721094980994357710051767659335832449775734669719728551208139486019629417179921489418446016410189987128822808363923871719810535421183087096606923087048017074642965594039992378636094403283101068131217386431920130531841063250914278846084866000305985621938722009465316007140420976135547551709121581359219588559370695984671375265966540614262250245303372474297294692999180626224588291198825674606442615300636411931875414024209468932326877718638880118843143497476339747145299199276979483079987022769192343450630608579373051951297158095375072562769029512837366331417798232446387528669858599102959186397550008896875016793956757867494020683693082336418815629410044193992733032575608291324699487441099467158256292584638728180946688879689342263864691936125454406438455986951416825952513175768085515057524972669777572532838267478573596146868635363348108569458206997488470479168786433998490923631212261573834556646300228135724310836476405564840394387789858505282355629469019285003272466195800513636064802792451401843674602315020186071706776266878370792853494413936693347465546138487522254456530092701456266457592111619136751838812819921146096998976059191446833428416834704542415812015174965511613947452452044339316045324357543808848364422392259016496808256901171022200221601901807643593814090604476077128803735022397969757106592512452847701497276409510569487037337806955230226665550849378448398784836616290004195732622753364035216400456129425916920476195151172689381555191189852115826964196876399955333092400799533617704900850656970001614351037409677174378026653821324522002028678446025788594317682257628599572141422051371296060064274768554574683244072983103804717908951053532255121527848436278349645983847487559335243676811868028536823065284639090363277905083985863409233664280773294139107024406477724788592428521365905237928634234034461763131279577663331637865647220397776263206984810284907880288890955515033920407180051854445581088825777077216061622820337990357448868214458116719535050986820380614328844421077357718356883654114720801771609654024344702082313187995638493326503497362612168583104886532932500093370533031322918495182558885490824116451392409308559004361351101827830916915016443705668804356505158293128948328029412733881701829562032307671450048993869059856041088405659842481906252420265018488026864440005260168536142971027053223355705555065512135933095817871812713365338923686802214855585847335300424420569975078350583567138974891427449782827950589049802986850087447071810339937933234313865344200678617828731220928199765569704988372347694887534056126335506070116296970971875376915941019423988216925589309110477351273208176319750929587095192584947474985471745295287493379008940248767899298861955381247299082385113466777309003313526438434192627097938858978060021800051196422983522964651315129995948884162004424549770942522325586996776945807407687896945963697469981822844822701628613075530226743341717408978571067452147810836812390008678679564790634086310730716894535606922802942754148754705121717181694178614994077288883754284294882814617782978502450546503069444272586886318426751913475715544021436634824686521479709603968605999557086620547425340267539648267412521175318617244479880915824855128728143280882746523251595807386404964389675690831668735821373865097679023287060107874963531264610815765976209821865895413643067189649495576847087280764267862351573469560368426893524174169409388323473753771306988865727878832343890376274201305602226250730740524098973378935458536168596427183546414941674776020269363628299101830632847922403560623977331050889609936684446573666687816110619296070491873028061190073012450571934756282822581964306001411994976115143696478406847880463435794811935538655351137438885085845569438731399535079638528131663518583438050919073517144228828513607803978346318294974369435811008758603517128325126342605516825732439748281630899266959494255768152190580739326849425306757547391952883122418143652630677110025943083018607818872014052480883251580594249344319267023037715953012380866172693537611271615882364770725368432695667351961693484064126943574789081054559459910035770922811159297081421760392189054347077296263355967091310599587109087131088609409586508935045121260692731727578743171303608109487367100336218946663848526487621393146236831283140299872335553357680435278976543163656891803439211358805418341513430011661768827787822785080535560050473797291148085316767896927564899968271583810490452997452657963266807582189181106048901127412996095537390814024741856050212369023035967582191166666962778045166110637365420846360194739806588573155401276108268815396109315892820109584833395524537414930628400693783351541332875364999387920998835481937833519244901988690734421366142455575554819020519495895495006951477560993739595799088604118410377563211916364102016535747648870292089499902941974608234217202193890561092230205327629329531771726524106580391986001203188879523702505711189107532692273834119430266681182330369637587276835092864475727757654256326903521922864335959330273377996367339455430503649071922295444698234280016067905837221210831023825741072332109786217767266536300939351114888212582136408750649621677167156309925645487123932380811072037185550031765784267269721295935317956769535283117277248359545838081391187785016155564527832158640479241341039666579034413956816676182516235614885397987909947034418778160299180064667868153077971698223900470524511444187406683343140346046816690967295806759021363878219629343202433418438901667447647561907216761421540150189291838655604979059259943353953907365921248701304235676450787058607052026105207462247530566234848646478623626316844534711930604665649054620076702405266659782167828461547600288368512011785839513723010305570277846685815493174378551452699648912583900425354819516661855513597133999634438207989305969527681753002669816002350638013805861367480857307215209448217857458854142575561025455869626098443908071806861854034580929518512392359116599292089106389066324501607488500165290791198710292781845096870274346395974145979492021651158693987601249347615126788509039390053257781120830553831406112101816703624185198821362280232293621079715160936072724359328444597093078721752403226156003072090567187578434138900565519077981486697674741705945380375853559278319414104292234935636509399864303241755011628104399028559385023378679082921247768514136039139052103998876252412501050018450484086945302219299541135269087505339060719938516651941760704145771950581023569042802223851483200481598634441448110853062077717632936686865293510170947932015285535089295226333545312021156521908738601295276139974045974147650228051455768011491395639516189806256592630790874179234512310519636888983740745310922057919725141158166387508418443292781366980281321879127883550330368802231235825957405048912355408710117903994386940710844165492116594503655827152966305547580453552140180946470305789178085988619349871455690250318062295871344521086598998668832745538076524870016526542450149677465315808459422102825877473571811012122533196434074148136272860840824741354436231235446068954426911044439414632248647658699609363667389722678426510364198757307125872030078896559709529346329045737615989284788988218273670132396162880482078257274087630209303300133854228881899540388645280977061571341973653644335074305871152318777943213083144090437076885592305448268019313251692462797792084488898850325835738990853984961136025027355127095831161985469306506444756782760323945703750479730369283524276211677235381114871272241146691787347483759784427398484902525894772782584169591427358495822145996436405730498676716760883529648834718697688482594243541954203241795366934595419914197792381593619748278515374186425331592227630765994606249594479931012792773233452030990699232776893061171124441421106280447468277181454547760775033895277641338293245786677686069157259364669504583101478623371737143310993758737513195446658715109712080913618042238603537460890989524485031845982539151512903261595398099875812647458687353456953084859398059437691694157036456027161243827671332728581655404643919846668992416433832683690745910826129212944704876086640136565176355942173741155945347036754448183115267989033786284296580411801862349895314337037175347030914105169670473421980302808025383202787060376638874843500199076185027598375715835037318704813263715941278381027509818345194078696686873123930364465679367736611470435914848120450517750354718046903830948487183972612936957523815468160964141385058751414488320577082544801036032106413625693481874345771490491485678937377618062543439960043006790281084577211109318436884634969827602877976393941362710659898923427624555663669402292885202072649950828154891627528985375041910855147607696453899938596121405495150000887949395107585000766890730561852992849159606391779014322319535709030008381959680936718676857564360236211542286080099630451803370972980516006098571077820559073148670461568559632565900602530267343321033030884033945401837366064750095091568753383526095195281630883745297466790443588685160371470451301455006218216922159170654754154649905516469619795893882782988825184856001650250743272194038694183560392506000473572636093423498851691347975962184003053589212811425063729061991223465619794050577211987596183294697466277521792027005971325501703645323483804885951482384629589265697408033385699982715527599361937316421855320288504246966359720856040646308271804077576174388768613579033491834791998920778617965403158294130763975684110720039144837193385888509333516594496165458455083277746102822648228225249807958744865654679745428078416017124310851705067043029815730652936130967210454663193615263319418978516989185172360618057562989956243700457651220185669253007518941104297443181373137658594362259128264353779860542062808802949070570688830983364713816650895685236153691092868690574087838797215809420455553505363997144568425808062673452838203878207187770372993868829394029447416772417242075254695246453982982710207327957696376351506131523379545278571204381607413190196548276982740845792763247586396391784655211752985334928309504124292897753745285030098949427680768905174474933270956182172482889906404838518638274269593442144651671528975174335473059248516515323201192662045212359117903069283005825507719994299664322970838315421248936881539075042415875807330344290000633107156250385396348874698896932559126014543460624305248931225595768296437347455039625954335545802860625277160799986881012604752451245030410890440029739777999389103867670953377189570991752397539918168824142168678354925786743542284363417515830617524355542350816438496966423500330579913848901238462997698377061850538780051461036474601997933777847907619773596546961004062563803727049907229450682899963940669731511994798581741320501502572026578111137651452939962015117059967004500033359310803097287338510965074963590478891218265951940110824700231572582728209605516694630965856389707691282492136886112041949763467661067212013079027532957021733862854979058671408683879409806344593906939767279286916018241264798788319076709948065851226686714912728251949772035042997785915636552700999552684079677482411768396688212265142494662994000737938749797685408825623641533498724322631087035702680836173498205609047364281999666734902742274686113962262131298372730714126493504297662362767202078300045919604016091835275463722653857273568608765136315255871883226042364506363205272635166107902782158923856590924114737743086104373545410054653042075846183614888835032682177533946334919769976619273659289127373584538865354877825096311060010322825498312236644209834910561837733628903191909157829602498721246008698731209461792932303292412606321963011124059088403886336969478615101649655209148190178271246672023633495464378643170090588997788607856851493431225946306426855526071923049117821006529276956752940157297851888196558854259095987667411681338635768450374902353127088343119077342422375703232286222534167949315861277314830340861649690365658047174557784740475202689332715092744066090000139518413260417756775610108500637079652943927800046377743561696847092435274026451125213603279826122968551810047065058395667102360933567745273158323708554027999842638184202570150609620440077325591086793521287056832848555865027565957743286199080322566977658014106683648978065528069909668001997854489025550169505740510698692437968204460252037106462541747335984205482393427466110733454272008869267839464707900931435388724647094924303006371464478203035491118710052426604514853373948288798405933915869562596806308876712073302392405377385780784086794398380912980943897246456212084760458231881842117597032303810741869610360146247559833810357244494140925606735242219969901818290423045514165439380455298341693951318894760389930599813571140693646179696248361740713276339136585839178489512755900711272327716632268599315305362363714448350942671150979710626583512648224577747724057258840748176048720197632813716766387325624102691529969298438252578764803252626821504172266758045767749907125937022649118685050947846466756955916946452463308430937133125834598388457046712192733824104209189074093514234832019155528171495061433099581015754444715951582332396786067763817603467665443868707586522628141539908277745173176796871194684603185952075091485814093763398474472975957657635405580282740460324118845707482883628951186512213368199440434289543140254582648020810775079165194434638908040679728744124775485668033936009789714311003830914629682734117542244327825574567099176772026197962597681786426683532062770615166031315780193800359742919081570388446085346852595788021122514393348979014909760511937184070947556522245214324717659414562041512471117878996377140574182378288226816909792065176224803102449858919156626510838442117680318750212988110836520999924485290772454081644459808983976845243760897416525636329917004501404400412696286008944654968389363882246707038965731843233824637837338415137968280663648215341356370590424865875038619814976336291748050407472658374493543609916612576905842430016727719430886538503328335256109610858999807728796861677466005463625812565351846040153601683291350102508332391862664010572240648595434666145159599283691847261617281613386749753581993120799728282525701673087506831671293168011384709365542306150062856819320109742527637114037135952223036015040168536765902155073828581292166892548080546200571845395936095078693389365474779749948287044413427294883390167704639239421693566069604310887789262427891180360475168898963915172455349760196225320250302395413920561964930887427629059766170284240297590676958701150142070049144424993224077700005542800633865889173908481105369052184780593779161605066473555524852820799094836759950031460326339744572598954699518449546914396982222846055010008857651248034366947461478026275539850736774780853665768012430331760919186819361933063238274195909001689964343170628304504490483523479525615280134235045086096269887698890253484772820214489568331240951621365058178561071714145116151595995221097776544619294304933821156490185282280313453044400331230939092822423024681172556662398306157231636018298074369670876059815134761095556249617767050307653810276433743628153209310472430810452813390948580329180206117220620912937799030236328427750288771740945877282907036456672609023347203257508527740668704031233571332099627945734183354738912262477752740341284486748162668826558996424320504759652487828708087638471219565672346431924824029765940233442865983123934474026862174279550764255992393906162073480577615082656078674636591131544535082655151402826507790032195255254299663153696144113284428974933341567897798989387267059907509702137299476272150473429336544438119307266920136152078788998487138541981438649528432175145052728547333186197098346518192624746427005220400816205090413438471579925256678564814067426630286569766847955372693845692691459487997931363240402630319725920630561201996071159152611723119643788567560026494748517073120159182640263728959456558605860775131630241438807055018572148790829756566397306864647192714352664252990162770492760093406210044648194594306391968257814841882794893856357867121223277184789933681516865385252080975193229315803046438292539441409785118195345611579944832134938985022747626028711522223361875247803555726460343579610407996299309694995556451009669798375779174617827114364159851035945079433597513840151567734108352020187139342971380468184742279443800759943131768218594374534285633552371572314472495248355524853793984811866434768448627027378886691112375951652082799030707822920591409413387387304873022302726381818268545544191040709320790535296830740155044677648694795466377962033106571137055510834328057146182906927513558482373438081901999920824258520929038528597786312863772330049344935864156640071015747477642957840558465212846737774551609392863289818387267663318502902039726013914776181249456645249930302779827213386869896344818258832147961786499120345263062951214464330617232275138837014380028989815112725365607533680843497935063287990392072808426285004534268829730629475717988915101538508553719665798039062629730152362359017128106891850341633953392914934464974245202021309284294019083438305290741619425691329079296184458140800288831077284190256015863984874941220436539109480387511874313909167389648670630532922392950266439126703669173199931260840526423392795194519272180026633122882078075246129493697889181474896114285910799850690242689734014529425444608459515857926102957085604764898646850917586863555847460832870970835680417743192922771471018669373302643259890044931366621435272138192003661998841935314003452787980286268416659054605580649397249724144733279627907830066225767207927817929529361083848693630890517029413209394640951224735911327263307832781880023299104722881442713516239630520189993834696908076145304000922599341909515724997627241025182758944482352163451722720175882069371438464435582747925288818227051338894423415109265923591645851073601389958433974732814529919914693040712818831124058007931246686312100107823115000438554229880659376730354568270821075875349750437503658928098231206703530134797250173779397636647861205292471590863643280248589957335415651750119425916574908154780767042330120285017708366477194060406712511345360747840789645470084045295907743021303398736387437304147657865117823098356671446534954511352270732234342758829219256056618813573702101546034458024253420435505684946615077063854301309855656522116685150861615082376876252723979629128103974723492563169022197069579130189123127182339002704511072524099738283043775281870401098555228222215480496575237020822618092276680845385035782771947454319837888999985977889261133223625151233335291016267973246597083396822031033230004197395621377259192473473884125203532972208389580015221537317568620556637628878328838513790951405980799705651595081553085070346582096864557444248404360921486184841941504008143160436253519397037132341741496950563922740691108515015901328566575332591559773694035817881464209852584483264478256314130318514675098196694189632113267785938172087571741171947934473661069464354559788620724687204335088851417010836738288093019297776604384350620549620894920106284172533678942791270960397058978604052144402405448305022147857109018419919698590901963718310523072009404214814048644565613812475063268868374536050819949827186788191775912725023987550241593216327594948970843493152050393430372620024693774680620373003996730724236698739802333041222686691897494205402386678892288029631500285025631474545342081126618709254355301250135767775259751450428032569165472045017062177697913606537437236949984769691620590692880838724426196131943619006787573594262398784086517444848877350288456162751692709204285317801668756404838432512465521246486395873395502031153395251695899699930839229795391661715794156738115126605362768895812051285089584661344725403367815623771327129887278038785624678387796673088561598312741162526359021597091227503423137159695609308970342542909886759289853239375798427526872657970588968551390062976381561184977563168652409803768338736493105728408013019729863511317287199811838650403652884502644631992947614420599339966894672542964706836294552636390163981647005103157278704738480566881216899896029346859200578503667194018383620478532112413842918652611872748136263861614156856836146814467697592401125862452056545789051940309172820417091510690977659972750997335374712554196667032525838232165696226631312325525245992514890165204415506441109631674703076444877883753145568246788214362403455982362438629311042329742533828675993661897028071559221117823553900706160302984235993302850915319920003324782881558382202027438335472846980869157752736012564920880237267234116854065768833047903987714002887600702223352753335944099843962314112400359473681448557220448854902563921428643752592029894332142206396252394462629005139658101783120125561597409332099624477957084622955026799236629440568785129728139346011819168861609552272647754002998220809460178920589048864153140757444743616748447481804713962448978072089408463465505161326278207416973820554020653604921872183059632946249353792524437853432370828382100334074655523979934498544637175987094668019661580630370453413449472661646412387765632311951389463678788619658400599939144910096307640804700793154721410528904244969600162231933868370857232717868371880517574307900639627766072721763784318330697691810084912878635656318216118536842608083982701501234766919824743666509582351102453971933755456877467836089879485612331838313943569723320506374994068637281737175206103056242679424511107090782924015655336990586310244621764196325526758375398110268597840765876795232706467176156009248541395051370388487943314602317987292393266259996231818457306464412466391588319459290035679709357862783746876003227568014186750521968849368015250952479996484966827417431294374879759605876777845305159266348688071782550776256514020006343121826604005117535251977725574059352439548080015728409388257914694615893573987305484980981607920127017578000138011501119159338204393861329641923300153532061709626635587276483243169983603403015503781172606490603114288150019766501639030400134319305596580468047811230072727724016448049614377577788856906898426217987312301459914411626344059687391529511564484623973933045986484376634340937254871492761847926456270793472052196279042763750949957976624061656410561081703592168651405270706835400033186730053583945915000615332173546284696703170484683455519733063539069324041700355938585966446282451738839414992256763969226436734898255112102196787948172085214830223311932609742458981196315703420749863223723836014046074253284561749636759408522275517944022975603955112006595145678870829936821439349290483637468731157576804336560062202021126866277227931041991743420867204028574681630798549800475278509169830720032016028159046831401762908991592966413318486359890170024858972707005052681763102956407442961781218313308836470922533072122861337963973891726546788415994322884037038664547711974695217706888457168571429523307770682501700974700148234013644590030777558372328428359017658968104211583318626538475838977578495323467425500894275114689102338104348041923407086554612615380625795659128258748695682356959549970506090971012050201931539938561855102532486694310075920644297713643498903826277135417151796102318273533295140212807253876291867302735895103656725134340175979145711774279165328361353810491578207665865092721532271996452161418101857679491625746245221315037569480459646222371829019770982942883565033900407206698172469786652306058437574276183110637223191039008256728082169145126612904411058316407361681161372701151478087988627558039121689682884828763813520194041282248407072485608503507672770748819951246845356936296904977924312092514880989431664339997986099240465387427917057799995914245022527156522583492228294642869870380302864908670911577588139514423548364414918178414673120521751143343612328314582197785603677873950386927428357171705716265189747104975178840777673932997804112846447394164192232048360915283246482428024439391647619297325816773084638189782018323277949885751505465167637940603243135392460421547327011496232540482582893800054760445682719934031026483108024669486053584015567408333682480296518224381576554643896571404820536530903442120697641987176559385063846886977313266795202826622117525435741686725080542355351375074825993896081679549223507979948253865784489864598794413252643825098114038535799083802253696186958207230943241294206884864934332527305560556421841005324147346052127456985210332796161462335938866771970758083248469606050671554605935422752919522070359788313409379947164918579263208213059876096560592081238599527614089404018822576982302339153403874058510367990665120074179614883073207020322373313450710508204529218428681062209707940502174240962648576647474909524736825745927404836398986101326441203323780949535666134565093428025898119331096972357553316037254117729893375946034092666026844973498074208982251354758394307964102309793704118490095558852208017094223708656251773895846745623032933607888041420885458674568675865335032349034076349457868542977788306005174246151414660921911479422260663068512541061104734313487250311047595031941087159822782922209246798609031044037904374549819477481112102316682488820029281154830325169077388527940807838652706798749976988237307541213257556360191004890395787987885994124594457031206690146219314440308987048141983252470461806073639047569992266428424138241283640217161289571142550243667063044184117777097014228761431800231997168680808246116332378847106670853158977702520343604726636924204263659150253594673902708592221516696102251755112138602464058902386746083243860035589997986305231111292931081612746626910639407883087746731628779060709674832162769689462740390065867298582086399166003545423892431445966957502421281660694271206233850161024216541285373680734738155375991254799405233960562868999009593590719026668347354172411021405022288568685317458276284152749053069881601421123302340918318767945730857995624008557928393188298623569989798771125203565939978989765957610926851510759455474907319138686514566634470011318877052824300859781310241910957127967784628236355877585876525470787059928625738809731496100321391140798317192711622045155563586699270202597113587920210410283294502516433746785661577177922321338333283860516194686788594770002625067385678177304722902596857216003441099894551323835740053696784850473544367169125816296847824185549690150027003559945852779104846603943769047722387084513660815149261434935988894590384886950719634776302968351484480281776108841799789474294225207749694974285328275267242382684413396410580698114613425399760419869902792280613405329426658431519569401348559785841988289173038316050178344844634082568390454710058144695920701275518072118425776644363576938000196698661957673847027051209719971024388098314478515922313571888544729969128293015831614793037604926942394057655075177874610602170069818310873027849678837082320329806747479658866448404576563628558465909585089003000771038575315613586862615616995147794510720705824486075284105712559012530722296799634580458925041428833675183362969252011542603750235032629746543615537856333756888666533059826435063078088932898155150738582582222629354461826864900083871779154162283911646825812736617669149955095380349772243574229323889679829834386088114093537222754971446196762005902413089067096243983731634603837358061799709981850070130606837120738507120424614480810321503589252095493712881884886527595739186479345982067429148297190302056479621238768076972023334538960048324698010246668993865922431256309925307952868047815385421277698301970779489472188218417619000082719285945686285349437360447026316600696871634673293665541872805200612382694827018911109655124163728711764386348014756067091087596712575076283103930889104075041702196113517934215194231228570429682475445310269750903391125547353302916456046419455559955810827322293311350034033531642104968479838917605540496494152418754798064702924190411639869069744032788857759915234858709651120998158903180505566282342107509672377456039242371824129889515021934955668474066682514769999196058044666559951691450515886173319677838853804590155406037960741765297358035986417997708426282363742860535852395646102762166647434256660442568893154851512683479960402015076383345760369722243903272873250261370682352656152281322185902612496428366721345453717202154933130670836132713537643919405141363256020296601759986985046377113723501178307072993245980876870419828763551070782892353310121607196268785223532891912472298378988439471988876824611289716221414088743377628289207563127241414285188845714666223841141151140145773819465689727447312123657976582578312859945027176702073300274029151773808451082220088512226645124444186184003085939038494559334337490002926002399013948374359820908833234944318640339480303984974649087075194960873453386464344434122749546564748027116538932714483437353032653454674966719734231538716988864817567573740649129816172397836167267844149346335109683024038301187526718732363122181436949543779215168626781295704877966272384846125996527469357702173616765723489223649655382281737211952621836446505565201127490489992113042047557653758342252920710390263602691527000311079005812015793653283571229441347966935491619108691556570125825499636427152323826122281940622012926407031676099141482400885636710470767047823792364463282165377028259167729708481488103354974833394660623219502528558069139867782836218458297076507815674716333978866356725132075419427854476311657782310881659104346301455207245073786752360831639146897601437791509656154535580857605599611308182171550082145304243967351627571045216743425917574474356399676452337690390996988113602918155068712943760094218735866710570127398078271181340213768976844421752066688197537197593082220567716789468001456396328984417011493392532022996458999220049804876067085088690107383110902043229225794865718088033657239646741128777344489100486026012213501336105487112961718274848239029979457766243984115942064546300395215375802504341398700657862867685969120353926807759425501577353768558796996713018366174251487644400664474357891712409163829388634909228041738329765111969873256770674566051909346616359234596439310499398483836159844692423684420966380649359936618581825001052476082553616146741391736036289385283795108235643071870379715968224803192693682297429071241930800498765689095512936264563013805350466810584712437509130054824950872415649611820317273985434266402848492492101060445242181827714582157302475728461181516794549194876283071392040340913136940747731213497189430690761056792808147926833477669918495637712834435616094693199359879844289727028463414107043478248219551651216487188146694105492792550387337864296070382260181881232059684648103444252479678545342275769472187371296184505374040460945368758237669057731844052401315492463517068170130571198125974779915337268468007477474066521297184087802717889515700014373336718821828903893953827986711349342967957223214096894422788531530082764643236886290593711624246277312825793987306769052718286368909959505233400195237866663617326335540687676941094873857938554311382986765513000717947702011184716570232501590302458197116535823580894826142887328360487289086809524496181754361868300538868376787765840129709996498285448116694227718135386959337040876466989578523224097116998522131456046463163620817531003338889059530552861181246409207910252752080441205445774647259109884368309825888107208784144229240562389430944323793290740734346986442236716852519003664638864086160889099511264306869341467826454748138533666774588881613887145250194907584436391682721071610410710551150102551414200336198877490116971952737559462252498720455519035162625435907003712710790521733287890574452204526750150230245743359807922632438688928258237010767813817193514515721114118478217331027580397988071650236075870910353444851917508754660233168502301223331684486644885264762216700041572984967878799247752631494589093862575052497809355029710090875157296601727394452210543881480579569875248206229856539446855403242395474497138653663638980791385534478717863146373690591973267233119835355924372545059888350895235630226928439979483470750486238681405140713683036029703071973991700104604226487936350665565132071832601459900239924477424811894718027475555098786252383049038692961942164061411088401868494932129631175811748274822625175607307093474062139325327085388696381861925239895119341748001751985670302756283994043268140669042524322827350905546907297729872431851832999212401823727461209195717450916038776267573418955560905915492052834872811265491526135680682727431053728390591664997276079668018385035775804492096540113733615590281115110403138829192224121533093513191681377652186253726033525127168839515642193563037239714490133354525734070699763490066224655799151407278654435302430891335657495733639293194296011221633590103619581653367699967703777767915514287327214107157682661226342554336175386061560455234229493493276513563439239131573760946365155037680384127179563710618727881571004926413316545569175667880484128870747530777329362346297644678698936414801238007025277368996039376912668933714785007946450282077131417719757276200083368629002650917077897537419736808724382582276812840114417857324242706711191441286841324450072182986047316624610060794893675045954829510110574182272290164374142385922517638561066589081561719795612363568772263298707498413722776153800294054071890609290893815071878155180526619742423651566485363961294065505520470773460025473768764470609961354850935989295986276146663151650765669973354782354483184485191362500777466446729055368757429037310069645521738160859111335548302720818891501044110668847275107116220681902869463145263739080331300809595451211685689410608131390196982380245555609555534927095797748591125366003540730454135085058318132786254647691834186429848455487354984185469759785105199297884456747224129177931057539770294690059861298375228154999470510487570242696920771279077389087361716318733705528856573904601048824394755372971667920554301307567126785518885570131915236734152761237704684101660513385270084104041664587792019329004298297585590594819002430599127645856851912655767969695833448940005021485232052574437869992527554082435502087655140081605302681630988702649721858355047738048505817486951295289745129751660132564162365137571114678483481124254470861558401743127643611525803525492413016886693290285282922897675024911713556982829796823837839147875211704695346293994402493495354560394217649070437636760721178836220710755173545607657300690837845492121061033217817361990102579530062518273921862526443962156705868505369099986457025202921511550255433609545257976353307388159279552472467271185989755803546352948972756311776147022096244346369506719602809170183972729919758913505172027683893562439879092566892837670128961490246702528174123051244970531353877026160112040003143313750259049732051047680113410375188214598053909583617638593458280105521296320325068003616874593826018342559768561085583301795511118767803993968642384448629505996215653672549611648060026096968145465316525790600247845015677296492088318418379911324774536385509982704559067631328318277624954206398522380337873035045896335972991151146962610339280389776095073146944407387028758511498357560559179548239779845868036789021450745212903573897737494902022136642460996166214554311299654964572404969326076228048484950857144158618576856640898386027243335488389573211381404497744925387908376161005100979828438179389099022490769305502173759291696072608203584469099152155535795325173848198717651937065640964953891072478530538106232273383922562594233884656120252165801296856162498181883291382870872680199171408277763172079262681564721135674180548473735334950995421572790004903455039528881261466759307296757823262933856577021541937297584034644295301125782325185454884229014285582557249320898231565588386102439108330664158615087435001078724700391089594676784537035022928974146097195348342919431991161858984700809996387244290808204944493909221715298971079001709696007209425182972046007455170005357644835838778467694768773296496558302875335936908134920453231080487582761413823956838553270221672778566764002862425008389585296913123521904723998796199018835464647839821176393652003842247625237465467794224370669281895749132249541139855462207881586539012816190981010871561673732941064077761675211848587874341589694332593051082970142348672880884087636017727887926812403094478543465876202506465014401784576624602647627015755031051419019413582451982953481920907673669231594706510262544932255467002897410060284518232180816637921474264699394832749518675868529775254074764790726505647563628526618605533453727310412109150860565713306413568220781126259510281793914359853924868859738702894021528760399203679411387813656864779726179729463868968310457271768883241523849842726117537006692805356218862117377931418566851196557486041691951567491310333088776245872811657404221205947494212619966849296471712787599691967420897713721519917058920562042997612039374164042108859713953333932229347086883752685601224196615630253187121881620136556086047256691179107460924847209702766868325005243427578604921819434967314168671233181352874409211453945136270863287404804384864727242261462675378783489617761441677562470289865138245912311754642206016382659439848887251538668225693503802031473008809398071731741470927162834011064222082709106764528131397071938434541472019237124729557235908233263476179736241465756026184075640836082326651228478973180169153610696125279581439699282862426575820191304618571600845664613361078529708042919862927323469572327794102768041277656542288571916590124530136709076905503811616828725469581210323337484001263143451271389353580248776831055935305186464084464010555206860339273513799275982710648724528939054809990202949140708297187203009077198911610527029311469522843634304613644119068279199052796682062715825469257894736769704257426162828141144366606957294090512956602730830893720018701927853030015627342340967038194081202300413204952122321117738940654540777308386716677573957354163962275690256331463972119421280625148218041618671804693792157655332500851209869588220918313668504565996020157827378168445546783650541821925916124318584201406386281491222989748460716216545735567068720597989922800672085258093050761464961042723690664364353753040290450016950711412128595520155147256382009925815647394656652671655615424779239558286757058055977281817353740400143384569511281855626308491391727220939246530576475419832895479905651896264820388456500897678694247790013463654879463625792537953508775105841872998951655782887952172301367198765633069276683056905190627871606402929234586489641186828117599827014741646364442021909364100067828605291052723636731221071334107260255836178348635825530583440403707090735067349695327716250187753179031580412152898532704621563939598065184027314228734157099095364178841943904273561703155419846617477875312714507913775340483113634334650113903807723302999301504175730663819931545010858310326162777968840105485207537661756382411138659930114795890852933849667620759049775982632823495222454603793166432242431668780158596803488308093527076362113554447423034571512856197322654260699463665711150618102726016216749819339147497279552569708532150252861136730333418089008197865394504243815581179643700528745271348704895621387782850928226646619964737080893209686438185596916819442616184597434711746321928606623686791520997472950988941478856735243600033366683773428461510281152437759782040857759406205446193185630280465387749740661947086214489239844782470490028807855580805898227306116966542364907787731797386811535100578411119958173491343380175472951839799511651271069897311090735435408252615758071714909861815342655780133043422174896146174760927693686255173593044157413937633828904926730739647715613869784408900588302972709053350239414619864111768913506428497483533984673399936464853372531157668936161359157042865228903047508935873912051195316148537397414367908016092126902013677564402788920190430667102552100344993208322588696762674587034097984855462786996179019352661695404175692797919031675427803889719738261571400180148079565879822765348102828769645089130124176203476884186686350212479372150681530904450642449308510051486087708101933200132334249535903513519598822337932126629414613472756346133268122906035340113129526667505998859983426383609207643189811506642229688318620043252706700422821284108342167850924687557553238648022392281812119222298767659424112214156926111632241374355726219934455198436353819483542120055265535355590548383888328349996379042765004123786143312101681062777683433794909420627683386482062757972092279717509245285035658492857987441492605580921167861202308253149719712150127238944629269866039797972687944536114323651497857679663139653442083688410042757920263651641673155794898497469981243581767766163198913608589910278863934181162811728922020191582028283941767897427829773555385304136346889252820292909613278921721097963193305101798697732763932008253364871272253477032358557039932631885356780986475358823251319579451793280830123685442386076381607074195968417577626126468569814384305389576172099415134654715069805999129779355178266167188877331979216133013067897582585831361084014199723051159278545480418021386092981187495813348384405568960224608364300696837870175885243003648785875279536800546946545351021765636737522701956136913113517314404473395053733421538963673667806899814230155747297710762174900385224967182822006858962931328108089673591239847603801044721784284507193179866235083699177588768762328588080080091170498450467164494123752139479947362589916441857052449705300816402695998096203700648818934645174823421207439548199976423992243101298194102478243178452758750321327080619552600625986761820052308565665629522254031850054277040225257888716467278220330221179401434683849503698974547914837022354048503752649787209420621119003992404200481574622512810896662382872495802345415917993876914827706807960665940479506412572781739205806755345593174891204013172317252983657860727446390845738992718901608219909079707308941713531214955378142605343509207690506801989654353659201827260708590102873387580859183864827987182069021942598033396911497981600709485327581493711030935133580771525759779916802929464831722722838125468437132780754738398118964565034488561306041203339496732778390945781613339616021458399494622560901045970991322286818576568259797125184035430517104387034678827612298383473679172636128789178329964948089573712926175272822210452101454799716063466438164899424199741697639455017023027826464059447025772730438113111132276054385817440568657602554541635618908401073783416612758700841138803640857328668371060607181343552340262076792351299228949960739982617976293457442912364004714189194450496980763468638871506398724615252010281378119376196119170515628318941018203278961984801231073129418839382508577230378739325843822716016487632325756601759644301714493330478756644028829838983496459538546677352007122087899692338074624543136928739796833941918772462886921740563534583210147977985227575885312169797154697681872014134523883460217841595148950780622558030531568385668163791683773385949686816326134787873608156414164603862953092760784944429270329888855827626213196680276525283024903963985471630563091399724845878458773638726861621651162064164969564136401176125562282250956576427407810261048445261485188966557369107899168192403261625743846009280380303530705217544217605308790508981869480104120342372747846942458095338530159536027821323020680925427682083379369293329117927074125722048221286013704397677723650232307435517502971194346540894054003940598745497654480224909766636314410528454274110623633087413211538726854812232811653044785809383077098733686947303091803288340905547734529998423657809215883750045499747854319395404307053944446394547618287482085432751012977078145793002371758308310959726921392654405505024115082860649712059064781455461556710641613344900979065968918434508651391847217067059439310114434506934044126246811731098283384413691330790392564706179967328753335600544186994790877138179369609014740243098157752402742611059625865711219256743022238375780583336163009964001339421122313234890981781962302076416706083613208343969869369396790887707418314624771302684314410026545089502982215655514141658271960947171773356884021012128764109060824380358192200059909069324320844854633478309356748682861884301035177778505378251022280346094456732761995846896661122540273487505643165156242288933461848245371438018927436855427239427517804372791393356196678832952559650231295616834121239260482936344555315070106449528760367822244343686046209622305856228477840014443257259760403623987449320220615960254803355810886194289178594240374450853275396928869064588691922514124161553900573404318121013656495866733187307380132804559291167422702282772239623135995595353754640630527588908050478599446574746909288733487536560526258670760386819094627126706072826892574915316820750927096954735488656085613023341284212127907448727238031694528913975130465806004328696782398981435310469368180481016487955473091992698182068181425080800325499101993519195707121844589659599174651090743152257542549250453003727935354579074261232811581731291786647919359940844123480963314258509880125972030651017218774054191904495012003109874267606448202239658478916426606726766705610208594187478846498343328549306540731319531906255620518673305953360147164603054926436610535232047751530423840639444567393453757083153166357749725873727735927529949815426327563321944734112257567134439030430065477828978280456970951362553230440455987884957469351962393607179873148125666366027704532173006599959792318206212672620990473827492933494190420442056659670888445555338324183500859657678086631005713928629406002637716563330621127729307944127034269973540284444369579116310010852624356930481126669740645937803592209933387436300726633829996925127896347204130226393824130112314171105883730656482061531667912795862136779607835336336409027524685568208130110033646508589525722657137863416226884268708310880725770258430431861994478590474906842173173478005106998791822474895531613413996952355766205888778745867142291165283793117501876915328301796693683304501938012805526321081036885827553578867075222959200357580998009186347552894153312786727207009272269266482117866186701681502526605403794218688766768640117301943095392856831826291071104841418669712501098627445045523663225064433213454994529562002891170999630343458840624234828080237704274395053941364176444665764623070836396707210927424656570466155559101204416838764872602484922203883945450761589941715404950199907226521532348446448081081114315811800390198124509008715387450459102920426781220528844197587759027570551164637569361921436416888152235235361994793376423989998964994621419000530466906550272967994630551655432712648189139963184380853965581144108006709348781070965259257646509113101108631812433241233830756976726966582725760191132300090861444933879692901289990868588103710491532556406843171387096295278408671950248390554573629139401550682500564367063362604223653397907843068558399319860234668143456004431981873078346114365410725538155964412181849752049772622868217867985772762719228214283336999095760667619862969132735148878693553675012027339420144336318704071078711015604435885639021086536951510113649340256430374732399668107790014757193088544378567690297597988351093210005124040156951846551672724664006143298448804133524444599185314440503557302192844028690358546434525499080292916082736887270401051671010439492319337042647698135121929214850945731332035561462594116974128228915544291717122122612225854972852827526389939048845921649595500364721008161279140359538061553471144607598232647252314184422569548871109153062431184560974364188286300758798187420386187020817280103647803608165254323171540319785375406026219205273405228645457412001176763590343591949213539810412545409962954324371536381191657640232213984777184410006844533473472161974266609403205289208404228611354977755565783577447234457520867429470047754334874675995475186447120047290580332758225570651925576121119166997955948940099304500988410670001509354222156333731614726991394203850564537798866772320420926066547669905190850244937552584007866482662901712803254711053047525096076613353799388110553053136421194268783377910385209248559616516914639757718109657934413077009374613751763648165214215538839488394203763960035405680189621118434260073338945085368382712845784935743745325026078918516946572525648834625597357097947484223279606501781045364494270995208171247638937104577889885058641528270054780331518729856187132983140487961506201930991433408579819641482568686088307090262523080837821395315503610972329103252447839319167682709793958129910701392282253646410861636251073553928593717734932839909254190271386595384447910071736314497721127810071661548077657704401016450083163043381863134872977591769730637678181430311314813084230525991723172336817402820985329229662306729891920452170575785337408415559055736045321616655003353999671049301379181073873359563086621779339817314388165919572607800457765094284229007062426459967525625468137656447578002261797232937385664370230446522413177158735476933732656965160686055068708065119658380302548856827100235133513089676882531938171883122587299099264081505315791658590279067026962886595098638186938234124089839111039604667234713016759058263177921434192293302319445233643757542438020577581987978432539715105070298026864051281935520615387343311871920090234024774326491621492222832126481963231080035442973136858691838266329845368374014472573715670974731357721402679609657127475127864309805889116362017239568499407089328926593953075581807519382691006206228422498187646358089075190921460997317108403210332498147103892966497645325872088796956475850975123730839386001469233387448530551897634387576377393171619901012303614751695777007174030742099778773482029944236985462233460488507788119578178234542495723157835647774813377983377259543579012810257291462182077137095031232989174961643936497770723123183817389208788738013593598899555147875695327354571825258082992709829730343714628881392052579981069017175131471022149386431963059003368060255204966053019360453433569095906927634362746197024300674472756650147653189471181447344724271934838711513390911802918726300508838785663004575735197184190722991480115106947307411759354379209325870849943734251006636342768175727413920882517750554015760040057154061732802490306479200579081264741292981280488223719629004619161188068261331720845363053743042023597858592333093511256066379748799482754830429349435813003026776864306398260648918084622410180288095564002778929268842433562176271610686213409278678268425272083174488193738202285444879784199740748182553252020918819468821387262638159184314674534431964869364443952058167429668828236208350099731481092598374753803820340136394753139029835735992510410478806687340726452562959374439627321756712325304317779990737396611409456920916008314892849726141423734985657263791850713971576855408871015787286552041799817302162228211589729706549994874133301697720599592544971126417695626255565094474897108573478690789452301614833936549091418045471744493900137996356423610560584149776197965453017564038664776652382872635086735641787332339116827178752023979854057461068565848448448514362655288691446519532210552067739396871533846229782138669268844328616467845967527045985474925601179044275148784017318176813749700750598730440541542235741883836307357875813755779045102958032770475958115068834788620200482029823407216457879810228240539555183181261046023514952090916442320648618577605543413413800622748155200437148815616336134151417567173424439602943967954773889110024162776347481675110274032297657545126949654857239526444557475534316806030613672363638696811378222046516843692388277849224300467831299327160491600084957054491235773464060062508538151353700030887099389779858751239701530840391339812542073360283336647313548936525955071608690110649218435686827594174958578743200526389578613346385169209146661435052844168325436678405166795123545402552278970902496499350888999313672501632205793899066893171109890098515794016143955342815606650274604756850576100394308712766730880181101187464173640513619128019401787884718412848441589144670300200041297442394786549210401037647212162425645916653950705461885765492027247644673183661351539459298258607179913929371586569037859915277044091921685613539584340917340462095266099136105068523875943713757460309759022413794958517898142897602633258854542043916628004223468152142686873570917599022652729609182887213250871699401075707235495748093170967513032115775630855082270457103837807009164011630151701474629820967761715649190378215364868621045573639670221215423661557036069197579251401900733199642256051355956569213819028176269987072418480817962949597381670778017908505514365938783224336766190468724380988416620318243442484237844254831792208183175334088215684211854096984190392831726248675565201961766427615489233210132500713737782720719867428784212838844826714308339572376688765455565809288432163239003386762334751278968846893563921664556803962255759537793500105513917968109873689581630044275029753893945425199458440236869343314447062565626473830879391411810568639413904754827540353160759241994349197557242225579518585756214500841297480581403228181370559592364251718018549716402493782639902791880864479943443029117585771090014849052435193489482719875621035833648056825199525599022299494966072393501080968955214648180760245913029675673098950322577441430852980242750850981304307503270888795875565225514325570953541554811135101949694530598163510283210483492624850125983989068249443333553708184479419954990502821873461051559779990427758127443609676956183992398514076037439371419584014620128084995188508024793464475252900601771045810459386869631030551143770607931095621165714367369493990780351222551205928575684941168266318531412624942381127914892025174002188967605455818206140047387885482118712790375087907364916844052306298526641514259573216199470479753258028911460834380861087970089406570567584542509494432740408082520051584551731094085518177772348162634775779665783790810447730481833042014184558967100055378166795045861869253783193628485577627919347379445704211642889904073114062017089018296469567993501581454765905717525908895981700109042843651382816113697586194545176364210596309330029192032569154900216697913050429437844944235281924130517975385218274460123057599044369671216201476007867492463796191441254524342328994751083891092339932839770150266943044702785949578658631533329160967918467912484664202318910047025716800209511866214108576969645991618830849991978087901489728380366602764597949417430000849549596194659554104446889010490741353429961892113229339713981170938051368936681611547722976936998509730411843857983323341817962287283590669354528379892394583534434157846584710698184639213529777648040000982441503254043243648541444826324387503223695477062471677579689957905749582874268800524655531970725080750286590038309189316274051155520404960885999750133437671385726572610588443205547081573428023308208299839052786103788514594393265561214742471890286603417490116569535723962280057393950267517676800032167198364481857544695271440612258338239946967238455665539115921458785263121710000963090586822746502376098788319102570235478508014178708158021634135069993186141425933435899177390193607147293781964251018583646536409060429758638472834074042939675960416810885343354156965315447372894674727115813606165685348569440321055100788505951221645664497421450577087083443449262440106864816572633122136619147873577742100837796094671639804921545927711662848743194520792621725170581833807851631175834186775245837299158662308077216804459895525226990678849609355049416612952744691227104669975830353534839088285556055055863188990535017439485207771806094974722513008987980132958018798660099786333932105403676211613818379304278235738291077274060687529097702985760607892797061225943884195355790238396773828051457805016974727409349014220017289501682267443802072143890485142621094257112133437567978100199674721379157823483704568641428222879389906984019416513672177057060127354794203039074169033113158903819493937382957202651155819577575660709998000811273336481968683221076198116301544963619840196888776501374740032967643978954438031073540903345214675816161322773256437662976777810986352672490411115354311169277293318357847423281905397508075466618027082572380644839602548745668537706723179354270733057623657194964592556181754010212404034214769516874124613599955726835825767732208524405897850187859760200079911189660463648365910222975213455754984254243246687396738175184046077684336102618012837368306514127666129223105753328107070435746412109893612528362710671866257545525917535360585387895748737560342197224081919133613220454590278392576706510786434243974880318717226082359692914819202563583268705131530327023893396434558460022869196925153848746496359399271163863444063490240288224503395065763620435593328873639833627533878902879352873954088995486395828972654727495238353891982596124135482807930212870747155102797988184143569820506105272436347413055877302466736630433219502679753619201647344712491643060584668200960000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
61000! 887758835623202688476517495017305949814944117160619082949791322538198976278924980716612839653060148926791629931754635191817248651330435099371465027109619473193026188439931121717771453909476072817305386617767957001023828943751539913222894793054724623164946228510964125737762727525795394971026062245107901116107228005620879741751715949121158384171584854432956781401698476881643765668021525535631235615085483068650475353864077774321796728117628920469684659472068303629179856052281753621444302927621092717874651816392408202190935655194877323666011282974035864536956482782029210951266278340176749956396782848712106013571800840302770317746170933701764863030047149095317600841923068844659141751722780104497824092713869619184356981611986290942282742981636996951516358428523342726010179516072690407576066739083438598008750022551769449784959659651874551751586460759164083909938957592684861655080391941601264835813928242557459487034283811573314964045138100731152065926735712406893318014746428607293058159528582009676401071440354044703919980064055939495228635416289952092275982356204095419432575025761027694921148288905639299360794032832329101134752748223646927695736004399699629930923918547235615437279498825872414226030965215156940974789993062104948629910205007613742103651313460075253969299988790081623222446084690105024562764180272262620414172903358156582844975013581082552106960862398931104117545681479078759699807123807796486676093120887089776103110991870536666014803364224408541280383635963369131908942809988236684873362595052639381690246770667356253386011990991014467796918622548257620097371159685659582972658491667985193720293884028722111780331699306687810288831885311179324543276763608906567010729247033507860783252806380675764160336304638272724720338808426751424957530370790880126321742838815156629659620095917317510329889894855589120297803024235100329531396207400916350065923951082037210849868025219019900772294633272370200083381355256803536232601982892483783261582046228143307081992327830986098954172482692641459997986308185621411204157424711811830838197221307157179748653575559708147473822155258546256063753886033239470167309861112578943078212383847962492233717153565800049416676871321850033573168428944858780904844842411012710336595299130000612491779926421040853195530121851627259207707738871013999035976246208626429647976225226169884656998352847103983904277790231238761582499052986858214548193945847214420741943483547781853527459965393753461559701204851970438997624178647016126990895072456456116947673674031771796686595047286307387210488961046953571132360416248908103324979816830292654353551312378358322524595189890679774857366432398859905840800563418480878846068095480537767641567335455289905296390343677005839060520137031879945757707420278236737860995663485764733986320351406590394046954322489400945113262345819939068692257523696465548805300434742908991370535865068205127842845355720220894000656711043990494318499517519929607691110963347019438702979637439123697853721502323524802635913866370957895204643356829228221572116476685142786270416378160793470391768577002734520610822652718186155101469207217029370969722574143979878337751302787896733406845066289904706390143997602008474615359065295706281703209730056491723028885824428246752799260448420793534295328849240961825472542036069407847841092557639736549711187762309268697523354403924891621209966172729723948580017605232510896525087803076581274248844132486177541199225000199678130761725654212686929307878369247814395955118292124822706523545037777864864582331162707393446329657120412744985554876032434845808327004821196611561820121351352717033574709985334745341592287185152380892435535978790636435336599621140728918810756962883926857726319306575342262702841884632456086721696946006774471648636021993249469885525619561680274189340261579447944139258466426589223145748503117038132626500728446201957212984767867483557348768784830189173956009140841933141102547930278683912255313810160095275675256038660176819958380887202117245630259410202171114135126820722333619382598577467624312299224355564876985149083959582200697036477565701577938644456292949915415426960661198085213849089925106756227108562931244936460159508133946038344376306290340739202423644019170346971087928619788921611853666702613064548685783389434139880853553326231192324590857236063533427205259309011019507257345931143806333987954766481733780550822244123035569754442243818643080379098320353808216562233856977728502138482291775627942334130693968320434969911843966572051093876200459304963011699908724698822950963277071518985290750531848389076586405639442874683042132241907698655584634598302401282087632541029964794655529175248398441577182931898003676828828430839592979252886555107477221197599256966966719928274886105493510682230424085952411617602597830033589197617186397569759626579376800762523464628530076835759943252147027248280032097444178802104916077851606607797070670712902221750333959594010625704568057665068191183333027663432818085806574454956095385272095644731330134384794533906937649346379852744367495236802252515733451196066984038039594506216937255276250757229892383223028872767931570946265486102039633132172498381638285275001635433772826377282214880188750129508858867420248582483342687166031440066146228821739439714307601807363451325679226117733230764146229388786536847271358790019478595153828996937394363757520408103631107315801879469910607875941801358675439503198654770283446796383359326005493515272151466125900956824739093087981163624108819735414083416968249274631148225204522914337554566215068989006369166674423544709656359819014870841151095318280969121918279047130611281126675702684914840316724476569638632464455886656410691064594838257406767297756430358877838440490641164258873745013441426774385740812952805661254262552953090563060224659309832386933161331815629960085356088894079405650791880478770081540578845436622906398931474717923951892518795552653046769511483095031473001574550116923982234212350705622941774127819057823072245585430763316197711124935567035783022992297314391977623743816382359930468605579055310367399394018239310461003537083576149240996579669984149586001894740505635756798499101305913856454209961395645094988281962566135677293888349518728753332871423244457395409943812403015563115626390006064990276050475139778699470212443963629335807600357340323986459983284485316031811238099579548773377160527555619342728496921826254322011456385887895799543322304904765977401338478243270051786073897820971765432923478472932390411555644894823436896990403088110916353304157290982989278475833702477449653648607748735868112107690181178744982772402476289599524330431061221559954597579537864328331064388381550720733428816282573354641148273073719999892679673224270360638786194809282147397076859489859873550097879845575269075162035541805661092441417902993984043036576498031957195527853098800989466849478267571066601147669215075031513476557163501079064354452786497660943112310633377524031615960406661422409846337499665070916510802133850752398989711284337351723091665695841554494291166701387628359528199113884467966899117889201343258274277722802344892609464622456154754281509226028723137051524522989537931372944798775648589677553586870458943954755453429608162606075264624948114778172019996938503581064324574434029706805372516795077612173043751564384743312717982532257732552492971929186838437330363537795896217036738401474449909786706265989262407464302296765488114570193754833919320962414338186733058808474499864273008539345382121468171919942490285886078861985304804625644520531861376323290211800708870422971039387621531110206471294155361155495240991015965695848660666133513728608007859308119720788039031880152448916449554686401415069328307764225428257507797784768813340579287459513465191827454752646039650084540097702492890136716024579809044406698184387751760935953505252599870690419767277787290863867481170192529873239842868106561209722627590123190555990279143305976563890199234569889109256481407281981931163959559705514080808328057344010349719489272862670803412655027384050148082800437947612700221127619351417887657655004603962603198343238249185928559306043373996878617019954212982697119440912066470373913787575451052532494784112588068429694863752569248321250497117812006143136528482829211966568470809933765023641106119122770101405647712375586229706503908611815405460265235449409177873474281368947373083949522472610847933625797741569138315391095182495140366973024610083564770810268520084308115171419206886348580143646448303686713312251318479823093916019960270330647671193196028470456787719274183318443797079276251618103212797949908938501099006128411881911583633464995405519295691031135208481349952955490473750993409077124848391100608826285885364303157843269530064520581136134666341469548297515161383657507759490405090298761416650550130865668180647613328095247489954968695471305767934078120712944486726669373185910573902407311407484432126376217747104576069262638926324654787894608690590627030260454640921284953274462830560272125447594152842519000933842914800560025218219568309527930716233605410163185139615884346617437158659948693963122245003029028147845823596865130860371270826423791981139723447049666560421201404406217536225980097170680177388196320680895501154291218699480661610920284600089637869172624568864770987750106909833143602070760507557194299032494637068462170373971386992993765541794176522653568361173608682428425480113433819042423146639862843489885434992149649585387667383128614399596866350142925943204172754617241606691809999802953925348506041610085402274888871747885812605485368098807664934266694110293434227146637416325286022034664932864834475189811994889415620319713271705979800686798092733828658122237856685359664342064725591282288225091926299965211915293552622353187195823645748045852736444430061735337030365791452019563784200389919834068962653822004890232640827484332389507259015476762076920165971982735922738150018974134322257862970841200080253081549254090330329886885622323299597059347753388349284775581791393806659649659567680789757776114575217672358403018738100435083081528136835005199862062932473252832001765648603250434576104142272585043596703018324394654248287126672123105709676426308044375375623289229436020376760260538605235733421010479853029739927970845607714207653460128731762295911477311967814567446430926744379367619065785552547942769408751149029029841384939820972421375369284958602990571401490280330809288950551192725438945533913422250292438946940278113695686218318001997499459913035309976044069939322828970399958088945215995681830394644644819018287385740477610471396107433189365233046709343596182713408044380044834997066775119447471618936859842676197810339621423761458621782516568841355551681845148175651639905832591230255218425468943602368478375064337654852307395080961182380431185989416538229902003511191281645075018597017381768107971348549116320054018258715136768149986232859106243995600520510244037438891047754245332593375500133880589353375737520208089094146762056789382133743745534719890273617008423719860334368004478986337648983392528309145363316075460917294395231265928542081470292436857844172704740550906760550757606662824277041549070293373689947524515869418428525302787261750919858808467074393740954806885947639936213766736090266043093166138754265840150154170039191264742123188457249238319144934884901664948709279537038028263113921421019243828851816496129765813966438724856184350275470369481508919622261273239610602058740767373088681237572583901560736563922714170846433315730586522273532481818921534074405074867791911390723416324442266308181605587518422540450506402866557717413690977496934821940169819540673719785051440136120044412357789698737295872530955172072070966947001579025202855609286130595882865530974059566480784729886699367383080081342358429446653605664823305994405595857902379838360544263261065559702853461226359080998911687552223233625606065382341145904212951353495710566504252231458598813862350097502760336641446713455203380054571196293718047035813677736010285610543658999393622118695254075425650450665682361411220989929069394090354015852392539975758726733186124830520705782415696528935211251434937804541216541219509921921854539038867060727777584956583336120241992632766066000812568710365816077898425580577891897240800485576963942050113283867695995577540890428371524727987249169798300194909197221867792724806621453426868677035057556627359967927005882680416467857153415984646630048726176536349778953240654626233182388265764526232482420658784258810180200893646076376380614639601886958388923799728419064493257430646068233546883544850717426475233153863286978267670529114403718482933015745160554112689887436047521085919534723373224066084190828363632220095707940577193622458914103636060743494511924081759970517226204750438778010155372184873463362506540334589299648991528230788028689026690559493004871993386879469156596461163091103640529038766604191052023721640169419477597169292529272044060691688921673509600664763834533540405475220187222536386718145535556241781884350376572767904952145741190513137886184054261958982330131955733321206385173989274359126855461187909571672920309724206035737964039579409055452807339612688127473364005845661273547418968146968212021405914218599928922477602573400964734202134387267430989471665071725848366840768042098234359005776419293697832653000510295674837054766888050210034767883674560051002091645510381949606414347579419436860724549009603159544981112435034594997905019221249189924245033195182174522431927116331385275983861855861156659002527622038954377569254561415157490319792042720136075687896162678032042705190541799364195916247712612079584160624656387595158513839036083168016383040073910662045815516170155258052354359641227817859037403959702913018403920321126066482635191939365425875038749502450963026069507707137746389189046709161928886771732790750809334801131307295136478261322409636572499878311815449175425182337127056620728231182404341702341180734045661266195809083395926221028510492640606996089412478556880898458414589218459782977911205024823148348844543865093797165657126523247444939338658728824013065815508083597722436912718110012242202603878264692305314635646817122037023108829165928819281399393373833439660406217201168876142766249915826601717631908721862465876443874373811389434604071205512955165391684991776881577272572439319605666016026355916052738644910573527129697721373009069748893162426356339027393230568582093085464813168921490272617662903615494911219154914816215630567808412439999624534346580055841219438242987049933109788536063843436179221665298489905744063501522602622218610623083961654272926454947857913055175830232224649156773868864926550796618541667197682249889874114236142195184069200144948858898168425571875293601353052449957993163666096586524819780760052000985180565805302221233200271067143638424296373085366443511932791221111685029405203832078205088468303733515892698799084009421026625080912743402474586450888056256279667209498483444296105073140253133076359318984395892715096593584986482558479603547455645761335722198965975804213918158806337772927998214604842547007839656692800290456529757823879338147487837194279473777374299977369928891760730350728265492621251309247491840585267461053569192763457086975677821027640578308710861085033264589895331336861230743754910277901624782468250949187883315018612840918282434643104652518650957035368683659100932402332550840222280406618577692526651673122377727499583875056407140896532880878429907861215842578565567523518149193962952417345386923569563929686070737195408738487594049011838520090943615736097309728911736478225232724399104991682888937991942960158694785004020694277766793231823477143788072661793854173836161016813657955336701359283548130966655604191639768413613092019253099404600525923987997306293809406523301272237098192660166601088340320165856019686582015152608665898230635342467070707260406934290574917148423054295244349693306353472077912212685725858627078401227144518559495056437671398884935387491205469495317749082647585634293762609622751718119541889817934208652502640832054535674656552152078922387936138044400199578360710103800609850204143148012979690475164943535516572591602718592762542237677126598967906944097054941239517316243436312378423109508039879124061381819396383801533435571008825784965714201340959314063207927894476191007821027799496541806490098672732032566276656598138552193445625974461967743857905523761311466200412049885938153539171630660564108849361141467795089679714739958283169229904544758951040650566605078572141046044367640577529845537429858494685667615493345411120393490460482169354703265795850489624787555169450257797763109679482643638573430457701632547463860713066201980730183379726362684727381662936805952232747651629466983979218794701583556380664701745799317420121197049394216786096147588460236245890683051757866949886438355370278647178514443050618305870017405266818986544461161705169396999201740963730902736205527253081721109871912477519208833743655582957911131450484224800732743341167042769972255854149162932079079386190586233826455913453577929821163860092889074553617343609822001474120496374485961398949089558811567354690963274897523505510243482011109673338122483371923521873722659358227850706039112846865838230571725506922632041001732649684922458082624852015678668915922230209145269056705570994512622161632842755601341187979116122339165485938526817967724680007097824076289879587332526110566114374685586256478577186136574356970263071275848085629760327557420921064830299922704250908601991189246931227280510148833058187358944689898854403743821592041780802507237059014148664496362719812125870495257886545082585197814930447454946103180004079110909903893357719743906796352796593447604201717851168974328638338062819034027064633380067825625697747355982850972860705132645255491566721493090278880656305741766761409706277828594173672279376779380874079174584301144055674442815701355623124251365356888750553847580474674517447487932043504630135066025940483900971433197768262685732551264126750582563089791860309377671009634877630870647997318490423025132891202643773229836674735871552790661591114616377785576506404865096009968560927470273420426988408418742106220544222434368742638202590683858493980689509723680227299177405510123167853337934441849838657366853107417160089195118539294574776591841309404511374747816050854841870117528756295833581073878036901951793103786841780380856591980357075525082975878945922193988119392230025723586634744902945397128550743780039720560307489043324574168258459646845306494830775691613471023311552204019780517496726920859653807212826895155048728473743660197998548865001688478184266024952187126177625127399755684060609878011692442280060643303953788466517480529478200020207335486151905092813035802012380400673093482623816339437297827455958311388957856897440817716459666934577206976971599243807530922918851937562586017363604519479000621523896405696310893086915531135238963401457189797152115040174334337092962237095528454845800130259199148695741311495799500004644131905323117940459358343299896280311495204279620167609011828106471977161900570168350495037656578491366777710891222105735287931058091378532532824203218098755446544280519663587286928617447233385291925267499410971648829028515628455526990292508201410254538581669998164609338155658369335277209397208944954642594091588035859924934085117319394361561247999378038211038057820903569833289896201715564578710900181477722250679321240312580642182766546658081770492153337380752850086233228165936080671344258158454346120167312965840724230591842258632261853523782433164096347535570722098369385715942181456030658201867236278963943102659429320248526233531132000103811083038752439161079808129553609105799088082162561998613306214807905676829537539582793169825214954902434267168358629641803710332791632677292945004307095781138580065847228989097065685239080609968900294205060880785124370495339078244169772222684994998360441264870999417073371434999620181952872349821808331740288033033097607033259520907221321443086222372577779383572837211341546167001849744802297348070552894715568487922257163019279896905147116393508074888534652399089469657608473729877662584517421237921764738300431003231142189593923551891197519552657823164983431251126841680519400934619591023515118890693772672229457554795097437074823260293711340148970317883437725241247777200360860529039947690158691087486848570760636573591384590893930971631799993871038228496072899072492927507950783670449051642992832817094824913083350559405628369377004407280156267706235409070768008764292164899948382374119251737052328684712628143702617972754306939878750202710332209476028852462548720163713070136043116061415426608009532412081625380943967192419918607398700542503918631035273127395207295193011126007906712989291397519213110867510807929462745128552094618458554650584830534297417123987916621291157455011670182858404643162821691518054506986867188493483097556656192775236103500747664845586367574394310609596169303701942355853930347726864112108780861285646777442659518155742201145850173211326356183394377356469641811670282475981774880536738554906120908560130366504091416662290032074020117983445593958161739357216263494789144237218923275588281366613911700313398816072336189458258650709577848828344927687958937151640728492586763430012557332272141999703046823244487634898112872893849739817012091059031332367791381982309087477519261653643805838024178774215638752616507752364258687613920097207363911816052245694814995619073688824615043498293754217147942769199381721582797372884473254711446018685827317797920359697981958690776575464112375475279033713478970533786232688166766681902302477820751989362619182257409013362693028228550844939105286664245037811830445794757185504380204612921736602552588428208025323949381342169373893959356797844203536379897068587867622005657032847032113116700000448408260332000246768617581862739072481931844426507015194772953939295516127309576776050037566101081017131398934218235010181308167467736328438765468081356575078503122655226730279055901860515520394115191269631284191920322985368139644549194215010526924165094968572287359135856966219549043193701211105795956892573487721452225146658582054355825577894089397842471335282932922045305560410242304100719270910662745666598378450795991335795246531252686004654268851713794929328520128234997344726577827833535183757221472146939398362442304066311227489908167836885852017860923704437368286115858498577958377473872614472555437777705846657612252886444545815194077887039209273419806245991206128259043920178639558655414248793117301801199826587086348467503668442720196363437045043021062839170889535809087461685553426248437105319715662102172657366403082801635941550624119104855073529127943089904476686516827226844801327812751013645936994202337049557829975025394449962349819716864283501147334321224912240891287066091844328884487053396485195010107807168597678773285872969705438619568969168743711113024729495644182097119986746588686111355775575299931372160847717895926139428859034459961906150651165377337542601686201657371643425273674414506329608062928416259711190211510860885912428461422224688641992998379107205329323014372977821275662741322929658780374689530230213540152779304535235643874481805382900294298622257019545377858139249344791307989564374598929735263319291784329082241831716393887930007167678157670047228250381400166773447372071332144632987109089114453185799737323125903849418785747021150042005415530813278269199302749740181516392598856871378073119858121933391668142377285665039051998541662011131584107686175846749295255706192989756353473355592759795912552718842390571080387795145567980736173890801779663324747580684626298619073551182216993438384975799744159261808818536303009976464221077491343928006695413566726441321348839824115557358005601466917146770924935396182019004220804083742210712016583692830072245547365543757678753875669486486958281257522212186099357372124718883487548228744214263608978342880610931967840337546901699600493807109427184970560957000541542084425151133508156615590197612893618119694841988373338910568142624454848589608463299969156757256198158134692966689687326658968703277535880607518281922772646490594196366606862914258333605489030101377392194981510899262141523618212329698447243628062959270764511819841908601827168954876171083043881188323049228586613987306496147600542678976245549062653964797646519134257017659221743829069577604788902728892817313547170275576275039607341644730518373903898820272004917050042626936613683602746336479637573949982397033742313650904032031846842887411737539995105093648988402189360222030341342204470443820479213302583740198504885937599096720579493796219783863972247508522151536412951248362039421504816774906863206261714274249797902098621236082114401806038622651535641741002301832830310994670437477701922822257921809579383434651317186335840167560001103213123192038001189946535162137543139660886774892110723337219294841907065961972999339555317856440288057183952714672122682050089321348988643042089665049588324621443908911913201489832060171780110734017233678434707306196331507094435919116918179911754664116103508588112531242571244291111019231853376580451863539333338737253556869617710361344118582966656805878036779651635821718338761601620255651066496980601125748288332150901151657853143819110289909522909749809360987819508181175630756715319848656732538579397271747570224470804464570397737420823847350112441719103720575565607084923238122929802016024357708538514081310507968499808339199053472256283729424699897467749850087848777494592064806982963818272484315982788703070182150257230282897384733970855606278409701389713467333766430758489586743660434910817275712969895068676739921359142352254296005554095383465467065825802513520527228867147973824154927900186691673344288393077801034588014553612855256948339061512315934842036590329107084908483072393741255600036948197234563189112032781866306777388785436353297310699851445499593770033766694535493423320292241069325326876457908594827103441415866963579435751107540889746912019427894305198416959246685346150783379149724752415939633965468359658636905980454469345018573678544060609332283646754611910961837119179698415939532565859483713179917295262401869842312602649276235386584444405716890775800249668004521219612255346208069652011724772858388234450369161572302104347201389061010042889188399488840957609551138971990530587033136451414963123544459390945926862764780348738780876586703208602537448746687704392147120110115524804561442885976736738270077744910341587517332491634798827655608909580209449836644908379204335929749719872783828975270790239497481549395624202119273877949211266858846898060110088013944623178429004986000219522363595625582485671627394767431031822697074618353726996452840873668604269795134276836644897278928105613641022466340948632626388403246820545894842027429970933035359490261987068887883496695091896544718418322634538848552508725335783767853068749127243027213154234187776903642089317719296080487409056591710023071462611051747385365683142013375487837997363316865374526944647253500526749120815273891972935771337719291281740998384899592040012955246182879734359360870237512593605247151162691940374588385428409933886111287751609776571575802218711523970078072228368197932871285673580729457626215212360991630231003626993679980581783890401331230106704840770611619756498822823762266640509847986067332458986623793003461926449946647900426750339024671346883808320426661166078837355158247484850845856032137436510843679747027690393566628494927153130081857365483973868355880072415952636764571116779557352961867665237198253447261125099655148436344977153071506705116324765934756965075048928919808195586515236030113336479791450529653665941161371609517619265628847595516348240143366618836565204229088557521983227147192198463862466141792101926278735993272929994955574820677188050009357713282344180870572617118335719839301675017977345741646661550468041672205632282016029285551888907897780376315914043209436660102250251277736320493157563241244707728085313623200564917514243385586783831372513308988430298262656412431275043967057034125596047935612744568520361827260151200915207690933458143040749755552835383915574226052880695728141957033723838556720232078249781601999684888784587171799178789824778927405719642856478477502366264382848762866591061004074683620893250119034858841567012161734627217661701400651837870896990882896211619898599485797854165200567925079538943567479147430909440312947826439280560574123909550899784587969000220386149919225050247515869406939941091616350407915080071116828463353247364284843928275255155200096464566329724844636188881795084300396408303488335919435294881084982647816887312706382161527833028765719974076034373701629289635449507851463245114612851126444594671565024169499675664788482577788353228611836335499216398460871467516221355471061877870487701274375331946197051289711420815262049437231081739646170641969239225172598481811825177648865363425142925330578015022892431852133445819500351736942269679263306626072525156923533467337243909571963877334476123846783067437168934372655301510053798280648633499225360812990166275306766810709944989785712646724293484962893255171972565949268157908537634493469742857306439977326609720525348418559907320051734149593136047943425487849866096507094159529914425662221665787606504681726721289179242368472613060368033955022069246454748722874116454110853968680614766311826876085984669055473050864446668852656500076225283686511624116798766513103280900106236689255295935682087071136789578974456897180393410810421919940618283212708934511473691651953662889120487869697005399197302267935841408770835955753594009563482828575026154561752610421724840662475117766447664005773526270396916719364755692397976778625241092619674404020081324802267205885282510902036443028944161125725099069952828760571956821634313065761651130178023643263982602005449079836428567608351773602329348985709345406046022752234064588304795985899982977658089453379445426397499628354394994808302854647931662757705574226066968277016892211842708466637998283497022579945610448394204710759567347620354584815805337049449090046851524797794909579314540902043105245356008979653938915369343459593643288778637768055443675901949722705260615089529820803669323006585117416427735464294119970858427667177595978784012644817503061344255932387264611585864411847770042103113816608808520365402118412701785781466339513764312609509769394521050510252327193622334469123437343197075479805828835538632243907410371347781719111477673350509436580481364904413976258353921414169964217420635771182132482632809040553258225766449988221255562511189049677808709900102353493898331370044618836454844143714114006225185639776153736872694323653372522768734203925329214015341377721729199936714256361124605476394775137284121629807884631951841517444339510164752773620132357333421678434989923608101976125733164431585629650078251529485187818775331854288086544014832436163261864340962203825840540896121495052602885433460611783313456293133283470858770847479291624314375899255505126151344812934546909366813499082727987290225710422001447566829712383409835034224294598675111272326752219874751481902307549943253858460414224314658450056608704137648336695119643830042473315790046062298547185660192300741890155268369162731459158748567511798526221838173609315607514726234166348906251645208927955331418591989224959071779306366015467845181050819833460086196781801513614060863501918398301075509252129634044772400227109260606691603580806741506181548606711208946396975047178573163676455874220403494142017985697835514232699250321595876770022058543396289763704414964939411676241372365196426783020455984290826520968925498482761007639941145414669540233048419892475206323035675141291789533074470958158121209589871764232895015651396663792206236582914550190332665479814926288031402082885678126550958391764639494291956011515797894675822039041353634053920359911306784133779668875512263967435331920393519041295243644407582074932655382822105883060198070878582979917198649842656003413988000002646932077670637678970628791310761956307629907842012483240389370873675048200644084478928283281273776865220786481847898632051240668842594217180638999452866522897349641533998283558642416360553010889937856529973443419429204529381519038708880494898477621452944557474577531391816897452125583839750049402592141615619632333327852058966794896992044684957931418112516202938703430808404194946612319615071788413676601176658938751741945010925774661459206326219560476814726191434415451291636394049747384172563408472392273295841405376191302567508868253718059809177054809489908511462933437716006596585664149740432807947229611745659492256551718745811401763350175512259598711996040019675499372547128476391526791115829268866427775932403099863340025297729816174977689870716310476232756371916290890356694561126379071913014199129990363717783338897189134107956671509840444655158238376725116846602400991384079364228731826756319717759639962257943045915085759203048800033883065289371629752006530040463546580012702439889622724489832836271586943097382695491893630248880237576698308521482316968789779398068510349999776260241605215833336496550121767041638134273909905617114238356174031164121817130453054497008882301216025567681646885102613960004294479157465452772039787415687292719795705265436325317467343726409747540778850889763640563296307010905627206599969242116352310058607770253750652295326817300706830171481499670106920554781501818512239293273447422459080478682396483711597844745507789187746697458290045189343594862465540089910678585966926821525125455093900744132358934200631641850866375577202945377394813776704743595733955834538107709968827412807236546793525962759860372670629278359633009761898941763337465837061468161289458366933213406639732311730833506658101706687992673764072846603984248554097034505747581873259525877341093362784207155879999906499657541009012018279558323960737877699762875042154555250766217062570135548505813156295931463122101255877531304598333790036279610781594416606758669726547578588348784162769213303216977526004111729244695541071267033341504676983023253366270544634934263648072246059532226870797213579494784965204453414544106308308378009826072293245361545416920760407024898358712605669869272783658976351172711546931910657541147603984217646102911007445532765717617980879838933807250471484008316390146838103181016522680349538354585796008357934894372745679490729680958108269378032620234371517977539946675031719538419842874292226671250114866385625152731481345747119600083461610454747887798799302593059422856653477478654386391667418392434523642994548661693794912242480371981407735496037433139502595249427532758559145803937682241869968125371371884214577565367877845331570680930159084803461473111167961338700276674488247198508040985686747107012663893952052430601410542657618155037869274425798093035929899843647744362398080576436678771999757208638608681620573666901122152835690940794558263538311352932245100826402476124309677902601191459558954811384089113923556792150277296313349222941670450465583264625037315192921696308383764715293486009561017339469295808358538050168297049176975285328404953723829279050976889777855188798164957923566337117487688342412144375709385057325782720717754647941696483890058180586824434375912413955989448103888416149415141368360642996867326443903469365827567539805134881036396147080310997886113496173340714232721496748665854804258059315108420114325277199944552183823098742075985995017669392860447053717717459498624866743114677840608870486718042399872565671139410793568470411469849418508274288461417463008924721042669276950538286500465638587300755919843405089454916342240469247423900227457999705010501294374931305115702351782559442547608152429216984333758228076905086212643647709089234610157910716450723985866336944829690335879342511637878887434153198362206651848324280176369124093131404715106035308403312784524420187990414249467753905085975235510743496447948094760698706422927882214470612176265946990253964166599823356049741450855665248127823435227015491781721029705767690105378024560595788814881817804369268898467462594973752529410660020899423463628322392926083435020676671206971335711698863901710658056916345320277317350320942787857146292302826777276878380139767150744966521211247233423015818888660232140201945196577566817170715603606570510684739800840466107954111921051368628423776776955360709768635958747833126794821504324974444502079640516394560658864510763411088297063189402427084273959626133832349830225064781421878242058050835000598053606679957403791477940812375200636852771494462595393508987927353207213954518638529738820131982872312759508159907572190379325755545194208316284113308985835099039857360066177235585558363415997700949215584545060041978485286749431734570978296124851844631529120249790950542789763611487946284396848534384530943008771495573519765021134949217956890553948355348967824889931143792263179649337032496078206115791983115682140085398799047324906128332549686889015326655213281524724859907802311002397786481716226102723386561293672467688968475931565152213400598872511704194213327584978978711194268922247054503000743146587344388182979615746693389588149293252219233831913549916805498005720201838826609779045789806745303072224628324940991975278446000606133191576952495468604413833276700673333251987041081622394769957609516046352756972354157722169585962509540866325149585796989161435734397720011652236932110225848725342187231560488717912034784792244763559801365828531166778205180976461357423601411978160402978053099287096343372495304241386096143103183844090473460501314383603466596442857583401328885431519318776931661931077088435758629694559726736143898375726116253694979990841124875394028174908786314912432587320153713767605738626428877133337953841653033031919280170267779910264818832883192209708097289459634283841340915845758037781543231089786554855146519681345889424090137311724644867022218915868413512190203953419289001548645556193218623410307260405354223065379920690987164370333948770565287017498708412876742938076674559512941770781400480651902069188681449774003512811381968570518206149729294417487098368868809948675119357928032690026193289195970254648979520952268184298750774516310086071051046186886051023958361980030788421780910698655281229362680701572426807342859375447518024343212451959451373462127888517076033009560957048192721046708917043279202038184946582789509693435778970001196307042023095458603969202423876068809137217054139890512778901254533515729926104847238359437081838617061264528533779207295315425433611421347082034241541657177578683051656633766623228222676369771281885048051037118257005095763142569684252478724906830055464383216583384314341310685314826759421133029427766527249545993982705268105290509160624538356518145015930146319604558432548593237373924954033553357728641098977401131710516513019607298103032440982121628205138433561597118466526995848612759524062528981829258739292671615566245691135568668429770759064383373101513115289464324458855325155182266791714714102445948456500207941119538359860242215119902178872588820506266790912160492611709696932366378456564176691981507302944044162080345126272760349541517162335843135227885626382709644811708110133062248101545389263703442091155377018850624007290529021192405054530374342144118566440925464476967415705656367933299696367601928605764957457829519048478103274682151552222178951826847280896077732695477242779236246761197365828667202172731698523967244235703198158172375247709713725557163283730149925192070399816906015451870990200444293114676343917510497911020925655888052593131801162085318390050832797131551545440783692679000290530836502082803285596675967537421055350617885711740056281569417332508492199426550689524459257170250598074021513433481361691108598278292108708276231674288102030463560543677837747327639897226318301064215314239144435201248318928481393557929491891635711104272364189796057318867143697801634162017322565958985937033147960599714738899505135640808988013954737352997845746871522746302632987818059794881977168930023288944959744236047733108210394941175881641080624928798895254580428123746418890761604451064323873710691716054006520775493619142848278213719016225158920378932233071251432047665606199049286991692929507792883077403725212497155410340954333754532809791179962549256483011764138133147041035252770280305086133616255383845498449842042096537179367849494021050447546578190629082576150565241652532769213294118042456356297044718772217072498775593404295754068298458951559076922149368733331580482275918132030677780745143087042743597359009665399689054130999169090014501187938642949952434663772110903540792874524215276700004556132441893743876064904148862181170828168883834326104509440486617817417816468949442892386534512836990107529381639682934000265133394487558043177399843701697584537757372770644518529423098905283727158217194002955584634989108142378543474469675954878040597986724350262875278821569793360317610873128776790116740627136150205436214313641322746545073274543740363379475148038330821199716632970017914787256768180752455648998965356206365768351809828881795063577812217549328492850203084319765399982535772728887630940039418881165747761492694981931297774313076303935346317878497186033395748145539273829394053010740736758490616491997151709319196448462848285573476802374556601529497399053485493597763226801603444270559067822029711266287328409478897417191399135501835319367420963948632055384659752078506261928991228987956207891357615919304492592237436198628868741396392504015041763526044195666555118302906811960119046667975284391069624929197689608120346306220806629254351690319636544916698110957232628716117255548107941901435704519362299861123007105964403565845528435673539936042149597542047894474801778393083535018982754409678748274334266763803011598979205114962174924199258862225431580031672658062983243992677998163541236231804857231209677676044488190231502805002668404023587561743724608165999460244518292357210482750344907252747217104382432077917147855902137595721063838573677339633446400321525446670238387789014931188707117216995338496209758661433048236825019664385271358474802348054871336510497652425638033399090037186033923975257497487942894282707717248805076965700794356327639692205142922972314745938477996129234841276838591176446385755481602851835164998406644528974863292993907896198372511964409770408414802138560725332195535452185475633856850866333040246329016179291574378406005828072852664003177320034281903285563061445457559808774392437455360531549663001795714200138181397430009256689913905404304116709582112714900618876079736664892316368559953442702868522851093929804885936524721879630106456501272168085061305887585353218936533204747655433371995046017588229720728148885061225211968668323172481151495973582835420176784743922903910196628860908428454669663132235445441531200744151600663771297822392650748540211684671035245827203036543355252428986455893475006040648045915828382919821377829192734717292706999031839480551470069492593550713836848045871723815105120207768291731655183719331098972119770155200055501530946202448994359359084515752466405781249976154843242283268338990563292838641802754266893840965379988706268461320191882434577103401242094971922020122925226902255699929103651662970422309782500715429830898095529958811396220854739983859046845519250220647540246575442611345748968699892810979829263347598083404070778876227466022816075043769899934857338128025782390637070802154553294886825295024276717142799457926187402355868837710255530936994659635768540300176156992387735433100869316123977647803864927261938907001087066539301337030548399009232559137140274456803390519919668140796053884585420298267859476108714399075648464479237668700839459929390927862705744363002501640111966458155426683319228136990524064466757866970408615690764542392254244333375544404598027294967907361294048067941956552417214268925377635244106843861685240376988432237381226005788810840788505295068369628029027776354063602550867965015643875476017828105081934563303735336502826033570101946975015193771572892831210067028865332013013856326807541403064194940923081770364824211231185792734041453179492349581406303591781506038269222564056552062482469022506536145908797458363385700312478273028277401385381423021562754066610801950482607934834136329198516495520539725051291307522779596503511635628037398224414645592503005436622073676003346570952831507378199853685570056668966971949586866699051840011218736892918341189733435282625359986751406002672496228400506674782562958579742722598452364728463601077991200260926459397620897177520674527165637342513095010379136544087010159571991702013062531439267577515475134590252839371074107682712308242518622648398322142948360769576286299151488347409866146929913211281621695846425964223587399359171076994295283300453862850220285778131659582584168231582892848363394300611157624363337676085159354285289426495116464367374287146008930016753335937166285504926566494759259771304686341070232268748764400216121337442895209178243673517188502222933664481337322379156947213421550244172565518432590539348076082087015894436212612135997092809119473667038946744956197510324383522496350284960135028268307621264729588694672749641796608979580851790180994131271060548807978182594601102586092036271771075887756144960664266779812619688671155427435583454862934518838768843619767384395663248592597563757912487774760238904012525143945891130386963946339719527165018799017004687593341437455692338847477536056176304843268198741580855940070302844608226681232978204976401143477962172864844629649069706901204054160064685205258127223758776269958633600063494395162027727000533437052893723878102184133768912203777028981182537729234919519094997809100619591347979627746002241341562430807905463568694425348941301707711665120648893996579168066007489866974667716873386111918021501118425610222060336617678237747164399363980784035709842495926850250405285527225178417921901255015373889307951709198572132941726523831000004592710061181617152775624285314124325538233686831648305640015502415717733160393582545561461873081412365893594973135623145043298735474065876240951913868785635595255477116210266078540629485932133937182268947767680578667684680912097880717930421509702406600953344406462502940686497015920931160192050047334255860203932331992413599159010226063618862394879673034902175903417775180222754466212757690563082363196923224619741307376395959195499447420578133719538350787481492589862915018858788249894666374843025649089122913325901379232060834751095491814019354006657114168774760254028519950206567740160229574734545447038128201875161656081013081394100415088881390068264569969051531213617005491598631348792085199212193569022841702886729404137659324726170710591784687296544424160029296621922582726030560888643695302605996643612702053419163089127088662464721888112604512375051709663513219181840403754121512321778194627644491343398685879892951784408157894165375874821957612537250719087004617356438030678142644704911780432116983609792070021681352967909650397188889888718271930782430623689068897675027394419430380964996119537612245762029700603247385534273428642555979162774708895564735449184246570338588676282193692407664315776267935868102562123905082755037336634807566903967191362493299320896209780204332543753637892361449625725956415576212559198388063239941250122618617022349934648767090654056804243509266684439883260515936962410894230748784356950260877079970861482809570129312891070897229610577570714132156554513814749213608312926588429645866855966614275071223617642268578505651869419028546279095537132766983699501284596657993557423339749528848194573563896325362150236447613576612122048533067812928586946618801387465422342123781010828645519828784613635930753616100251588883697131038040500511767386124665594170864702746154776284359828231574645117530953745248748021700618106530131491250060127740659606171158510291003994886461756134973086862675855966362801517607222413061584269641370028219817337277572068360967273118261652378109135395588821951546194443170494643207272685661430402019101975697903553516318476416834613205178882119043537292122344934953621428054910523325056593291537642796111293290198752876347079257575677134085836575601005852683251581319023655212455283325224232848776750037582234958992552853493864003550888988545868900666245007517011298009890077344172208301980471600368985354527286414142001159627532053999872195170354961921642752374951171514141637365529623584640940416194959857951653408912898340335460452952327183886301652462235142040832903392684293845414838683826459816155764776639977678837266931230305544896867020860698211024049091166201435968432064235726082862177192088783959539105935610391467903150060729784003370490272292028050349849691215413737744800547115888333326954979381339005499627227062847678548146524659019283745984442566106184279695664644579692931261244649083926885104076837655204379819216746392089871851844668121547627826395536792729076268423562559475546788022862964427242264293858345430926712459603577477307058036233145440281948402345884562803948616044384159077650518801278038042163159345214466621347281658295420177854219627858389519292288844983716254115523420256491519581811709027212594107759118570521116833149124932285770687758178920681969943430620191817337148743916567498403688493842230453398891319179348940116895049336185287417282607813589197331091326432392774561928437568748021798564473534553372104723090000892051452742585885365085181715565051238854720806895465227135721031339671240435148748532943906387291930032543047596155936391403990901559028753354741372342247125367650373184014406944423793241781704828748105865830972186441019074143394364292344059151561090828196719087186944734954283171472224573701250017906185174483570051318304702885245459222748341660485042887114028692589060147520538662965628360148690017327161123738627226954952334018762361658781411335982932740229401300113973505555648550827818479301527494693842569670831534163570658317107799681927766540282127184087351379935093888916280813660898140871539121241478233805195355764096003739691600159088063678492614563957552044808796489804518935458693536776672641347013678893465673483416932165680666586775528984108417983326858687442328158467170432659023229561729754743754220945954010329701735030414997856141263985496877076563332521887480992426916915838992152836772384643359670999338508806626468697184909781191321831475587648686488722451060246046583672093536593165629890332465927328030548238722374462763405139389332608208746607823505526116280762328887768964648199970199626254216193245205089406151612731485930322465383536399530143698325029049577594879206295699834706378945382474684166598450418165761374551912039508438647842707596136657360292753576932936517824277086463294106415278248543085256963555413910884111805616631888365354807042288464026137061998414421596118061915614874312260639436479886424291017873175806650417510865776479278869698217793174783355948336043906701965731862440754510810358613507804363082153891626176893756767900038387892985965372225832654383857549935782531507625024220391406491568339037772858948716931422453559244050792521040474751750830433436826337681605387520063235665616178552056870708568345163120252441965933286396283518409070373898948570704006691257081357361884194837268218080587962488580826303590055237151943576856047285505990552716652221726463126289002625091510698537171006057988704821373932858568306264404330189990609857819707072909161776518436623143429064439878472040421768439498595573049734905181877295057693346143955423425325503887796570988827674639422342375059786429377957554972240407654894698210304367521014196287531759579651361320950637403119835685829505305864118964012886817052763055490934093455512873213078754205938957987291399348122282455716780274704712908909128061123146389070860833663927563865084562156050209935445429855891236960898839278184808782867338243856992504854420523510192941869926956398215507843683570787127404403697345456302451753809608800069894523998264736709661462240717903984796207049508604060221623665456640380991132809410960650534021300097596488643965008977479003809298882751670402713995063759759400406062209544912638558319586411795075924404535006297533751942546149043719735501714960113387140683577698461343308685274731058477094642783827787395844695396761862963112154756472067054114740463045620686631547769246412364876684355776276643711388156992945467582760266436124476428828387883408131090220356421560922649673565973467871213872116051277121656052601258673357100066103679995364129387740744688415731939674415624802893223130657617836151810167160718711437253447990552943342985147338573149479896164210068859849337996368607279965913407795025239420560975897211082677947384506767265527530553852052822351330787718026060840596188183537200851780239010527798409892884199753899581428165137032229575777425435313424914657293273798649139129932553787251846970171471294520907298218676225278686676005382698727593992930397725114917356337054155887444753171023391408421572354944133744165048030990855770543381557098492529344231148711526682167081490362481012712580977103088609570087449521383971793836405183702381948037005034626646732349955425972083140923113071433401003808033899571206014718097438119741941076529711673058715155619362621030869921339486348120390802766052545197781274715723096230757719949502118062723444136620643586348801188493872770058839318147647924106560730717397812884212202834867996713052397951042151053439588741336154912383911835217857837491698066446837836175437740879330238437203625287055973504852480220598477902383972509491307722208000341062638167780432988922275639929497921265737398496027108163788814146843381178804447755238217765690328586106243010530621194877804539073654164962363971335136034772020687973198937632151977988645679181391958818205672010435320349790400056298561285035512621367321160760992134154927589257040256886877415939859189142931523519509068225650166955832263905150225988997243458537914681291615377075589517350590958987621311407179461308363984335368575802464368707235712160278604208801697958498651640623181931776526194011048688990331066826242915803754021949830571942939898539779744133049498582328266285058673276883701999331554040109345316855470050041232521176722713790604864449778775075871939290726931241162848417697911593621279040601672452431931590642135599206286815519058468887711266664026679500122095680079160698285720743879947791577053114651849966025822870141638272354559219083790021203972540453032724999561793469449286923703469711326547775134682662981230751225304430984284666260800080634623339230611908391082737708101017459939395228498540641918976818241929465597214622842746386393967107886280350632937658994537005721397253337846598441941811741914728109363850140092180639798997410975259231785395359055934082247385407394853668291730627953731737181929257829700836477501525550333862442464933559140028686753382656300155211865538923775420804812571152933814849061351916602269652606985110085794947315271569896644842690650673196578306874127208352128262172029180899001965267284507208550832294199855767763855619056512814644284079820139010538819807503149549738582870177303751525951388169796355673424249877507384283947125059064217127855386829531799247814421776530222253783225574222681003091749203524486459890973400468238109987510341759902602791072540670081136227185536787100024302212861703412572484462000371442443583498914489449546300476209786159694545819049586307522868886538625133416838787184136794315710605436510315870325752549403064926271610305653894002637348160278678167265269169553393476465962537263262829443584594945178549817532481158477858697230124442069829904572475544865712525148124243787628051825864862979790064869438580653432733431536558961330162015120846099578736874285539321613970649530148079112496721947111771639217204484534618818380207945049782007794146932611958132158429968965356496263346097542068707615329943394448248519740062731019965134856634531164164060868015187663502335802802862818944807300733633606200890477732430043433234291647673043448996313929827583627610317733985985910772551132818837088102354025406321362680071154241297709616096652402567745171129801191266212652095285688307272492349898506891446279696382513234821906860700050641512026508281485280636191601946468717094203452757721437454955055332609639703429533100009613075665943697535708681768673655283704964909227508208868403605048074169431736670809972219286873464759058714894750733103463258543700540891010952974192075022897906737267997285009140279321653377432648382153154743018916615895138226780167080785671384024916850882095109391443046510999578184651163735843104149588305051507821680638200169851768622564627396220624539191527586436081797831533294329735747953956776823982925166193992252457351069522677324343707014365099544159049895136318739132159403814006396383761549234482409288798504001204868767876621148397061972817292878756609569037051969460307640057311492309768577497382472080694343345239656869405495844114841916753079294334959872050691781359964278348722820775631287941454626066499729028849900803406388448745157191165992931792034307358231344618476536381471894409061729762325182790914313137128119929763747356136513423899144816255476207293674209364629781727812944412608365309938018548257626794050060219905478895860858283950549872188703940638872760145583939072239767146865639509123883549246499562182921121518266086031718273415692801448830717171263355798577265814210732801997775696685975817903313714473758988066812738001058537059982288200664876609192319111610854165735361788520468380304977083848206209207165434961183051996643316678307703673534517712359621815643476577746629036183481420337786980052286548174790432789322180712181058631746459640067193541656667764251198162804340622028943531200734057602120140705475831192117825112036361829680575575254353183581384337073739936737941359661613414987932628596563082146009678156250159736441941003307852507882005769007649842756518305688614065130765464672907704255634350923202275095308934460290069038722267554894694812494252486621232912211545328223261392160456401890874284604270838714026112327546531501190888030729148190105122549642363803288624626510577988678895177454402629304534059494745434729104250382338017170394075629240470283282310693044249772828331776272401294346405071931218424815959446132524518904513660389994393963184388791931261202849207174729168683816492898979053323654585001321561794795646687519339392469211678096728145089380442504975517430520466975934193029676615635868304926673868984455869942600854100215107051153595135561288876647466014639766690412413478542649980418916670456523194706599914219513593881970819680000696758387763694024004673798897897175055553842424394616341457461250147754492369567427664643344073666998819358565018242291624005757400038249930033575500956348044784373836564911351779084172086195131813044976051097299805972122634535380609208629384975652811878103183313264775198042976389086783133260542318492523367246013946876371103860012712669946854104428750548211738324243599529411048470404440063924973244279569508361268636209725011083612959463352484308852363469187251618010259562506472946460346900563296911628762578024833553167724437341922924913830642358664899747423837004739471124317861515482615006082859233894130115781248916049258187885705615234375936487486377882305583946917856822202229832071925594999264469930479524334905607240827277095859904758752975015263734774129951559846577350827564949362067782698808079592452418538518559279508399022253070831595680859960213516262283557582533643705773263319479697865750594547442371139149512900067024299346853244932750267131634974730226525705378839828091700312180575517128025001128514938734315559991155628418522503301472588153052986364229399284843737080208268329320705681601878318744793552405597564867608064305096588898350479995648053430408860198643497883594766235574404352087843839276057620551585630562777902373731188262863552461236826201518379373352736609211127656464706388384841975894507110642501462292374599045692448033004051994804102153200753870616224140274345133483935433651563276345508748799058912244394438683596734607191381376501254505593367507976196276976523802202693295333794547747824706414374393979853833809049847719717884579271874601546216908119299609276037374885899555664511228003238449840480313521397636461547019993778545414767997453286289012410815538465711383749815549380288084410374997193071415282310598292661928045731457568172919663507552782531184881270796225940821739373175483587207226909026537027172482758215873249039505477470966668441611688044682345248685048861038112802432276910599753194590811888284667332131011739766415791903814373831819629306529844773448016247911001163797682374001623685394589440590957307556446058785405402721695119781345727801505914628650353774464869032056060027517416134585161324959518416693114275170973540437620087190114363476326716694554293888535385246739127319650383317322917833651669280193175487849110545789641036573483812160296412504505711124629734227063812473405784916495178090201342689106595337797244578278948986751254427574280763133896352283735826692730266401141132477904546863942864677083023140876697198306950412315670307916225224087146176637893470236493979991649120061110869732331808792023814230175306171285957202493529319762397271308209576492485435940541951897148866443017047427601036044970362738961899505605480064906011495678143500767351415432564516637005287544118320943112144030592112464216009778189225128652180326043686008045230682589487073379219411351258784960548767476555049165281293620656578972779686821804498078561357263163953770334320930874700444313303596146582677577224096182240473249697802087397333486459931407595306036759750155621151324778942162264498014588697010116121787030213077127350838316008546094005317737580033300001956291397223836634357983657262230242690344957167490651386879829726100899604096838498719162586495550520840475724758794076845000286511079642375794043801308552161474396947570946131106875574969186009672887309580434617054752040822554598372708535934072384621683836462599374244484810723774947322804268716963996393495515709840157615306074238219438658926753972364743284031317781442602434396593275060624702983239132059355555020191182482302114533110964168173215708602448548328013770026536875293563818161261820857280861755181907254913160867668988795430595350064801920915356399715600125384470011933994278990475137214147186060340657722071406086616157403010170668243808792562620322047070591484193774950999478327363985201510116401499046532576057703313052317269741081272875261837351073425693641644766418528273676376056594052675419636525698265373051494041394299545433857989074231697627469137524516734505417086479993216715114207112523815135417145324414208654240066000206872846801105831960149818114446843305777116739297176463050589546545783165103022263543891994070000731284594026036440961361303338927149870482273706783921303609015678023139450404824567051404103486839565247872306937842029662749022208064767384611286643165226411003403897325373668312921402459637199470792081853267210182238064712671917536923409607234291162669020923075455609219617442459479204152829950299676063669466468676907316868303418330197670947921481475836778804167352218473851579846587317430464462855967943916371947881666670058191880604129563338946593645940526915980675084852694035004315839044275470427297382010030068708034870119089943598134782101915159418053564338140996164723013613244545229842804911232732322622296350753959895252318806690872737118969825392858102035209094791582714554038796933949130754144349150565468321049133834889731126466058116812506438152500216221974271519084944209772828925112416971694550986626343392949682225259221174670894589300261958909447252445896972483401110932974190912129177782835889599148595166664841989939266456732052389643461588708935142061919350870651307482311062986226181427838593319479662757071392004386174360866088998378448476651445077195799807932658217473936169520618952627865792397295743034410894524254936023868841327309861267766275240795309155226800647483341950174997711358179358128007803792232724870346987394660257912151846621023354415253106012995788557010656077866580544978052032632511783378542165436039070447029368086761401406089818760431548739853757881495436919625189019495263761279093300682268580870685766491600330624270372252698190532596118260948439985298402639157973668231668903004459883385118289767973262506757127736868031032523652786611486899649357573874376691268669448761794916489409975240555633283098997427343556060161677469270621122119894189296312098736781126885927165210042109993718166012985727645710429206399161017778411545139434743094183739605073640181309696109692177128064578470819940774998478344242710119174271682281455405947453047059959322174008359778025117283231674088412797512387517519458205747160834983254730788296667824207721352109227679057156689204551831458833816363267821051992693003467751627531188553943347904501123534037878590231927225364091070447872547607678882030710247364039544541369612238078286648746425819823660729598100233866244795651414939278950506466450316196672612397764635012355492250806620590438174654780608736035173947335700766217455357415741887139282256907140969903955836665035268963731925081825475921837044791107992115433459654108025500985076277866320881583167667604950322514972733457797900453603597737375795541618551721357711405206620560003007938040600720900571241141466911239651501044141903209718094986111663496064011780605956583365331272683771372104847356517497896465182817396887772838798192568846707226876648709251415562859720302706235013376261946329768615042041311622083661521701503437215493564472939831833661530279408428866764485022709620554878650946802548996367851233377674749688756794258244386577631755085470971297494794338223796825855195754400477321933052450321439353316778117727282566004401858944064478574878084477369169822012175996828579248366579151683237245844708785904695464904571624971734554481375333790144342781198715794235740644077495106252660454384315435119303294320607214320676151183305984435819335416721733738010593185704776510978589175960770614803961936917267052747204950408859299871552423278647021376143003448535421856409992776196115486921686585638685083732631488652835907094818252888792796304392908121559089793701512000076899713684781096862169230269070945335451988417988674653521371824410617886809857252662456160508138709684634223921289625597680312796871608266171448730395921382801218250756120724872874555420175516140620416052067031563901007238419261873384080775469450965502161475264294097548320688740311501592485880179141597220971047751181409526432504308695488652968126807601726405135590048518879223913182567670672247654306644155174083197244098715498106809708804529988342844953680846711286697389960245778610692422752227976917951735487393743045772656172339470117969265701550016604209334136316964055772790739474204875983068209541296544961071710410263637086745624199812007131847011146129583082945694221471813110001341979979917824577010121494017770774234936862780620552340043376147563508586555535091819595806389226861808842889753020024312563453840037433250417930843928131325050928372004135630404083366207189290714986398176479507405293484391251929908222264947202311787570399317962096877069949035028855575990625792456838970947709843975030715050439265994806310518631583864808947961160155650523796650019801950776343846012288261895974942058207437970026113433981630455177000455020219040015803585798621049077007450818529418235771986948061162163691257186010142571432077556383755288685863774140643047370031920513499053760598815707119197185572178299767106638886090339690993979228733334085848772458855663352193084959368728807309579609520493582567295563101043494324822820781314677851368217834396397528552439116145750246451898881779271590278577458361726213157151798200374318237848701185525371611923485494524374819074562479055939669494742082376364675267802558550732437847543676388236358000434800019937044719172899623080197035191138239858709037919443893427303038059275866385993545265470555204825546347962984891883759531925508245469684068675644373832606546112079458334813349062586587170444008895734103236394147689186834022943219126910699267112253503162981932818142737123617776711903747180950197987605380134390553125270102473897776672232397063023506566331129863624772088296043193394392838445867693742464108088636677204239464653130674168009781966610022059640359728041272438053819413903463370016336564614288513519777472903494994905680084877503897526998231292185091978400077540998798943693526043070011976353246144174084822829311318585116009878238542961936325253294487767961374976816222998886880462072755192264566968279308854803047368415558056232579819471200712310450467003839268547161574603121363801689956114808172097283114268192725147478619609412891381116419334546546700182665390421403290087652024880177787403419110883468229107159246580631538369742447088369800466063377536042091926749664944356624997698362441670619077005260792275202166368626420774024734133934720800686815249825358151988713428405579544575097263883507689804990075027972410703347019571900688752010643015089137458466190425709219798573810549140632251757814735840149579886530617714964502545532142091867545475960706309331115370259741289445125588483475641810117635924754687310228080410052394447266615023595282985306304417271088096291404993502564634976240830721745765308053225405480673848134194609106338835967443455778287827135409611346056579592023708710137496975826338158681392733548312574202402421434345996428709623381800340093395285303846085073931390936279030427885708936445949580649463683097530787418644887606737862470808814446954361803195959133623640271683781643868031238747052286809733644973039064668629961071024810248730864984395396362835124659883014076985486773845475263776025071503073997154377867922069384289798223244841994553901547951733723959022352185622865466991863177700228410950578847284337661529706831210968240762147375455641591960814811586099376361314299490440820386642068068257170143807710890114646080354608083079298403776330873651575369283908073036786156841805525862229219828753463586940795879552892858990239624009895642901692254870102257676139662194069414653129172115683837027081934597311286166684610699303107232686256912292812861930838259815790780110406660625044965903627312591830808957449018671881532082569896171738222569029184358267063731382948236497281967105399879271263860069220688363997577275122207807518880494101624350549014319920099363574856316963073935892999185481444368039824504971036372585853984800568512899140432529349624631675045347670856497506057325188314953193749148173279017323752182700866851460744068856740790795846480255360502200850798324258941462297060899863472209538040804452093534532919747083905651979196635785592551790038843892976815506229921753865610440610943818480329417324935046366948311590484013520694073170689538661422758457759279807823476116861944176948512800967393019958104616059996186748993324506089112947531782279306188698306492823740420248652076530054059217774665452006721093056554081889065780440929195539187411380054900428369422333841003791231404074018251704945346769788188261830820491577418266781106947310588984540303037815749780205411181663104941695557996580244591870381037823913117720565299942512900846259409006117962550846561812420930213596203568307551415934243092205883790646731812953686463470119799127939770271598693111672040946414139953569570160326364483885120316826166140882304894034564686398226485275789577804627078000214990160279371482864441732225882936288086849651861337015392414590484322545113645233410815617048953952010123261844383398798920997176187977150215866572174111433419168215277693957794943745027739920236986266781245837699917533946404520196352053998074049471474728103829187103274442149088432657537185073876527110473513946123647162033850356991100308002409036224428245493799029070679163254886698158334033306543570209043522588825780144927538785551543020695625803400638308756095506204149629186017849798779176559448843584184395121772274731660495752242114533605805882004494523285017566781473989204020632861742396678596632083648027592710787842827795460778106173612385048560669190485821684443493280451501471022565187717533444297783001724831785080700675133072437610286377809721101428356398402610958937822124865389490194812433712346697196936482185537721686395673220758106968848087771648918131709538347560266291338313092574560042641539843866316155296373154071498487228073718380087547901834164143186510179610717580000978617004021692072392103884126374043838319037183140105417916611351605777289727782838606820355081932188734405278517777056769388486414819751072630537935301557212292548372966508187116021515827691716383080315871198456522435335985795428651063532885190863415841759024777937746337744926282736969324187288784529798068831878112392405742879947892097746825764007709178866612294361820982787020304570549842637372404291015310041358339743350163438135223488360546587906048071803506529660170299326810826831145279611570016967638866793905472378332003313048704484332213175242714804950335870405221502984858396622816290648874476703916692197650734813543784057801384068764377279455495479942592522822872220406219277452000459986082100523858246343785335822895168375654913729259742115264401245196277668158265452226100542547823658966739771510731582676277819857649347118951154021646651498081358797610981795487839961592624967162753203988011275477122038175217902794115930402406558039741765391006579026782697963761353418418221608762202211560596674128668504960437146195712792326108285942059559772992451860031745236875259525326266850204620666715051264527502782223940744351020156191443080027321081171802868892745726039338712715280562848750676702380907210975299539802014569351566966187177002932429305383053832436341568968464940662723084445292982566368441525013549613274521059355965767340751642722986815492723228683467253614486365188104156972326180931537739103774412842106305809032355173658647186613691702000751865001755633981360933384272487696179622779947016372036092734743591489606521362310618476021614746714328873268037978423893706003359844660937085359829277898195276234411904114852033878630506112747247731058424592964864984162394713708262378164806169394755594627239406492485379878647305638010379630639106887416991100441399155384041654438600622650809390859838401521872536824498828230388803278195705838297484291919382322521570134195389085197129981708194452442693959856283855317832422737553279790992121143857259462838905639065849626815373675317999002568601839048649275306138589331086699622216677483544426354401423546095109199567750726918119660743147287077901314819678682357140197461190295086233366933784296031152734453733617949539826234301544482188159830654325727470010479361522839210648847784508582878006102967745959574457404024451098685619396516183605462920547273632448173764325123256964396182712977402231016387893031262455337718132475254664038406081314593369733868844218009929174200717673423177824320944259248197934913330255512263483468897456589307023885320577986709678911924992449089561067166617094784234971343250395009903474899137876384600424500539045891060303006670488516778281503863400074754875767577157131001591361390937515373775829917503284972139560104513504996105304564515321070497308203449089970511298753120535500825792394129439749478092086954314988633876477143845959676567880080329084521215140498539218466294842890241862193576721395448227568375273473633426897437562957023525375617258247737874296318562019291771057550541016162093356826901211509696225269417744918559191392379016091668673772049877984200829013840560629982230828002452336241982706874549665705580265152104737597890246076163754223945612899348898489415122743534618039214338580636190019361845169126375448541968852181223275040272309317274582861442375302815517632282120652113686008674378334436301154200052423555723264700998404074811173291875141912753045094925956211763536605330845168858829003138362888123126022249138014894362847731952214783132904606827227247494155841405663983484415390786860022870898282460432801362825886664610028711048888152716885195514045070674320026697188888844749916659633958624644783902868551781253256369757404139864371455250174175353719348555482290941435275389233185983428352885611613052283937379000823661724849862979173430197350752500380042126546341837244470575360497684668247880526004936029075054909625250582169314096058455039757318108678833706645404357143253733739489721121237318829530740502445940342989817865743698415990760468958923789454535974538412339388329739792415203813585284085239543060736183110603754829650194706689814515188670097692057557307564691598339402836952363087267440520398579054955210868456026854523706406632871536786829019159625520250160749964589974772449063765272861382263213469743979971578888345966792450383116516410463028162414887071886543940172172196907666574599444522845623868666224343810747264761297066283919037142058625229843956302844323498898379763649428258753199826890754709820656034324637025589437889142848416675834406481605434641709068852526258958668974264178090497224462222422135657031522021087209144792998164448625883109987752068209618816145895003485637300655259357004850869538104563747213161515315737759736461654961991688998715045350319964318043820753463519557426216189839011922510362854778672513899079376020434797081527984752919453097711863251693923662637023313504283553667465251352974330075662170166404669448505068799582701641141298726170652296960890691440316239615790445713735358153851547174828277106695176440828509808242544443839744200631931279455635231441473999972157071895885376915131202395492720996546303597022879641477662483659004906710294527993149818995154426883176077713561261068789070039090568880676431300399699606525489126746506409715629829642737884160945505167948992004381949542011107949270547936864770808339157972947069073642658423725825973945663885277478863544880821688840644009608540812125342323466992015632201663643570257751568228710854415687299455978663124045391157579688513232516536688700013772882692754214969641595905102385456084280524576519226056650531867607483258592256553922593250014098650374258030732100381666657163904422255304629859909337441336918467766623704799162917090515278318690242389468714974385134287901203244362906069793050567034955557418161763155734374185387840783453941363289480826225245289951678645847919996063651253894027783124507498125133276048501017985240182345764912197560835634296917147653873412278501910635386536920085720272086752433090464333508531847034437106723789174156797141906253901911591030879838002644441494435161191396523207901187408409653060091085009685188089940494118752166200784918989338142329554572482242115290903740879988196395193966120017584130981850958029460906006800911739285933060864027204546165278959371138284041011056683194427258599614450500241651756210730459441649366476811518080726290829586267274565326193410028070924905402799518181123392147420144314949992266735506200446381560331827784148429823656976184476360422514019279625260330501483887810924621496403895967991084873401391016139628690103301736987268601087412514190343710315679503286071550264237930614183035565322593745802382430107820620452020016523294785260994853726082960298809016304480609900416988536023418035324717967635794272381611579543224176350850666557834719576952111194524880793757029625932340830984974853184303189458053988795816375456046772978493813600533617867390993561335290809889055042075447040711191290080820530167450465853005802090345133039748286213450279035107000042395145966457984332669031564816041992438431649951997558646678008096214260377564624931838887109713649577078193199625679926725008482964572457297702493408656015095986682980834856947434276192908510506581556732799378625390315138640366858485365353306074415667915359310885200845632804454701182576985486329943734816420122299573099208917053299542832278151751447780286411586267507264711201431687339041097732510982185919078510003247924624331035882041435809850799759124752519634382419203697688508818450981477829352348188038098956263586882668690742582290269763998461433802908497165450471991491072228606469726012937873515392607973169947077864141653494453261871955212512791386124105017917145336543183991234471302520979079758379642910902172737576796206735894036054766893522329507184904916966896157421684542673645125574025772284708700075903066407336808785106206220737542784770978622544358129339960061082333135884395355689946432371838055544844642138370883776861694106312125063337473548492562613193622455640967113650108997445460675821216453955036394423806747220201886812856229677164721170596859188679772679915306285839418295496817425599830193120246027964679403983269077169694053318946095038264663449629706263631874216393285950178367899348853383137419154447331135315587915655057853752302084379973631194779500317325768844260210333861690085140905388132883245071530422346559729867879494718791783466462069011478791118221185889983643895976544624820321590069669705657854737906047492554687964535332618663764169169218501521035477576873180077389383289524465481190720700271375693979277402926452853557574425670860122756318218527624866117754123215045570645122701807586438261943482081325491045798873395409982160299473529251435812368136879372592371687602804230801076767951209763686188866458282260801711541332869695392317801947814814142709262355724619893514304332494898274759339183236453798229891966289068586372606990981846155851667264542528074165714910968102276795102324520981920351732480923183515108933049537073150109210576775262431105381205194542474022597593236783228298840994401682290444062520124386180987139641364231857272602152724912251932429030553980616343646720188282062250519967622957199167646550655363853772166774426876324152050470308142956227349888474606630674435469662441091859886719316734238081706181459002783139993772624730918495794392973409405013079113791504669051841182898035864166555582300680722501258789929425917872910000092352529531556693698148020635983864799014578340102982496617635402904660671103959530653635476504089896604349248960793602156624808837363877624350145617030487375312173316625165440427090168030158233873189526760684138743777733117102876779586654731908284904452318079883122777588144519934448684459877991638982243563263760117155356370388710692561048812427982357051171017437698594416240863234028846748162154445632189264031679514126519047059365416445785173675909229638584231532089538715796445162432888683013767223207772734614452479871005060702044182083221564612303142746276346952719132837339920443752751416579118047160094626568209675890166339286351437411207428430219447204231702355280003524725852688462209714205260559607445683551091659294993088384795330943999298170066707966201430019915039929630039104481369674577059249408748833960554762003151647197066614850905446853804560492986179291930135123950290615042880458447243808034087965673111129584859444264963362821897669270521572764780341394701112861727925014624126820630750319254649045030971508193128778901763302897109023039467923956881263534611896409609938071556463949408851785620811949136817287236663406133933202628393303946621732565057054071030220830450092098809131800121681770543486404115176210767699774742795334513654818856197700600591263277188193389204762232909829093412954748781304497914548260014183537036368333884001813728439224366004067062699793600984562116028633697864319046479842798716413604389787993768093962105593140755507168632436442493594527171606408756247447300138247574470851148448713321021837179743332031200166711541470534659366223182093916324107017300207277762094458178370835164923140202961035507350999809685197220335625404028728392233008452631863404671962584478608330541760277507753697939651222083868385616881693604874948047836146953438381152572165947865866131002091848670230226682823034918647035430870348194966993728072463449599221518171503402737317547323552645457889527553409148076404878013304880398365607966452148716852016975450243075457299516096363985801513783103117330905361286622811375548518260095036280884436918953808323305016093997494492529281729308914618336259592418300422597526401210113621535786382005985847078182842017314311928540874754594380067709907093691145562204526160034269775186991758718654227710009794345264083808178558967957572828322116358316196271278437245624389050678416225399661485757011059611675448480089696847341961588527445796454387728005597262637002399437451182020093230590455238913102640615282859032123786151904564532559695025086030864291621733377887812863915489978417632763111049396702372629849942078846771732561504622897761371031326622729145931966847884530209130831829276279238897553657874459646798469176484570455655540023914167302163918824185494915684328913461569729450556626029296448711825182323801155220215222763657133996688495270419251972809504953733811885227150358123832015203159207334526950876937675465256814868064851865809229276054535143700136634090001622402501353339583848591915575294710666677466077930313192273388268770442144579866892058372307861470149610196159422023883270319330671317780238784920480594948421112980698461427986685192800929990527671458358175567503889912116834718407918086095372783599581694756937963197927253403778138978213323052168168769325682474953409480056638234139129700724221555848867752471818890816611346155984836903772942494682724334299792836157971593826883305703608479440119976749540729398728493382428541805055584335414763061154374933770058582711616263492002840664248219084823958499851611580982297326498714971430968434903877374569733828050355999186407715568371784644802780630790005681190033531498403868280281411675543905335493969456597296758525353913293501423369733347836769425130124958237053353521482075269505876096793579150674405079144058840254195658113041696636176731353148196097135471373744581344437735407238530970013152192256237210705134219647139132513980931229370644207807965959102410143119875937447134978094228004548234985559392257078084934807640120433238820511613603470118959304427987933515094207862359466738701012373529790875355038858191991714063402910352111413071218186409924532697506241365011943631038611077397678725709691422601180914581997297555216604090303432783942141519998186329813935885153123073768047483585467230078468830655962289315143444090281169201986971773484004432062533562527909472701295604949402730941243683061896655620679363303321608682283881303101659438289611472821583510915408134517374364135049307780738558770520477192092651673265425574821122592647302651241800157541038741843495094267994179724225093134547264162788393789569258739531882912177312008846902790947327461272283990566594419354704772902792693595124666280731191666996543694349896292334902220465880010669397654984672959898221312377654050591975509327244224197427141771026530301250969450778813629615649317117719510438793501210592468023464319844532109575922562241712442708757105707219792509788620794957669690583543108519559625483321585323579667712767523076778832569040282037731198032715040690859350174301200061290188985454397845442320848538796784899279290225425817871954094132577363043985279401624399336801108832879210684369597306286187966272196811602397012795626510165757487328293997616528899958296351562767702769519524218919917884147082261751916324555530550792537902566994906791779758236362284689969838744469043663663562291291061545243333421931221141320469482194103169476939720115543636463825496046142928092463799143270448016125327584355723359329824417242532250186380237533062478222323889273021173031806807037204181382294815480116050047269100897645622848788612686767270888484817127401404552236383879778561593843696351025375108251430793752541155574701631058350458359504158114590152986575159176065144804039251927605601427380788651462267586916623877375615651382684200118699524113089133175260667249189319966058618621089034267017898904531470295016632359202471748162797407389887333868155938730852447164154664541931024579399931817157084167235794527348842263708520975229837763124750354042624454399561049708932070070589044677016265267313199087626292758320003680388907061653219712250736758563647207109805329307891284941056390861197108466393560951365574790126561680049976587401335426178568588465024787625198697061417581023837952468293727605081705328215398210306052451298288326327142376652887967097108195125345312216600291371347902437794052313731793553111510791829882204733735768713946130144028963493860081686502785717147890172343196895531111286303603086010691988999297649696367425106634809111980410753135821666038631708420483102356457706988449418127387309579449470331932307899380948290356407897819470597119716579137834376163609137561336686285431980226864636701591027910028791038966562408383098706291288268565116950132646290136606393350962713191137101345372831183599237324235055815328576224343509186913621677203774443370721863172540783913123864763063286083252087611727588769879806563283205207067699107609044521822227172902715422479116329659565722409813157039763222767903338637271178639427201577019338470238160225975005130838217613424437528624336598765593643393964103844744143490241880557680408476026640231596653836608824436769504312328828204591938213017409426137719565371114596697577809519541543445562275550475459179793012474900127409052670268234882369450331098845281941709354307078290936043824160498634970929159852749923280953321318444504819356917673700930905429680057563287271287845872629832863025806162884331488100234753732086219598432251605999542940171796323727342747174318579267362749344267467694668360819242914716106069350884394139960155651545208297652696396434834665168621011654220933376206287744482653655078844681578188861710985510340330064468300214962362375079012592720429102430032638201095886581381238547484208058331310910316059953177444863733457540062905375299863571443105917187121986946194226638959003893981718764074496891758606376413650364466716462455624232753494593732813493039793224827458857859349612113066077545580047106034756771098361648773158933490225390377643627395293974733790226282847894236214288080585890491925174067883263073831414328939163559940593073713436340764275908754918356101550629970195704376909388132984542005689716581755597835949739607595166531363695878014716665591030024817850806852037830528673269154793979243519908341966205270791616152662788491728141840608581843344056888443095653793975195513388341493208285550313712591476283448962580689299671323149291186568186447300168694061370677597358202099334024770495738774699833424061268134049832665857854061048460912013633367333741515337252052023740404494607547079247484655038470650128975146568879497287987184144223341218990814460187789677115140677757606605217764842880720309001446054187946381654584501491173626379195918103902503483126931769670855147830335183988428953832897529194532764328025692427167098078226503471751474815820790713650031369102142448066537407649558790988045080172405391842112859374740991855070767808413891786205086248049416165758740807554981701977875312257417206482907269227401710453619322433674496946554783715714816556386198346226450337382535816188878652069523269721717173616002457009223584194560543926005744159130356898945139037724776775888343952317780575398356001173813256170385578396856207097430910656475056176768816081688865225539651240180558063670759425911058838100131683693485599960679283603275321510057001174614661490493100928843727044741735875676140149579658986336832868344461599587586657653801474652033229910438747534647980697465237666560822173386522706405413723615358521163388479646168259925957915508892229171278947227774904901269600666240257025863032205982499515551704374901267060395537573984154264705910987390491131196715912481346544717473399647889844990175096138526466863300329204452774056058098253678663766940381688347604350584126241210868375739692618048956013384237097496486202829685562248771384897034027929941826167455519848271394989571334447747843901414087988191991363639543254899416593882579966266706438417409388351949287043975386941072743115176138558979934588186440413739002967551322081451846057834940920528445116805539124095567858590075839270533855112212458482780251972581796024340374022684886287491377205946862677838872707964548109890984248126767699761915140060292645144499681576254530019432596882032684047244783224940305493686745788887191923845632866735547827664428248611319776183937151678385496621874488170019831839089191820659627777905893106710573407731716749600595950501271031163691698622399031027499840718775700083306781422661731169864481938923341215786227479500153365258603255804283098546315942470907136559881116865861510771662889657061381000547108293939211073098573930744505950486690979885238817278981459099173835340852228247736497889213774033589934524295440982022431419868038898762506289261467927181175847337341428490894595810319135013456152460917281208429964982035816088330817593426967772595861810723870823648207682808277190196065706374516636278441742104649369321608943848005011290741114609747641921938892427423685340931352805358015166453648257110329891587071428153136276679205083111874099968612356543835447291955056694003074395990751424840280492819660455581658782826366144652855729186317921558061817433081108534852887820376995049470457341432206050975447562032821528154710763672255822754016298297151671818206385045941243149007349261903870964674666177710461071128832486200649992625135240960830973850352599052154303395480201459392352588507334929264218390768737341488403218836131016496967234671503234950411063436581294049060709145526898378002600537452059024858184433595517626000039976511857148983899343413415562088872977042386680821682204672766549203550135829763802069301411648675335261034400056764004010245530152770974559457282713246317420775135493821025678426095114472917190012557472286102986928375488408391416638875836202688321788423129501161441852026791954042856195364213869741479534760383218258203737838136394435015845199664803471187822366096979168589523957909415051687447162625156325438097818329384575568907584694903571860666835654021267653274473426494433141597336575406475808916346129242509608344418315008054320458843011384899755159181568879620517844370451512143910546605273126178734316648594140381698809559477225557366431380653433660825653606106853299337959546742374376331568383000151144487745642630085274736146248192961513695133858812453168224380342951794121234626477764782969175089471170079020837145354816088271020330442785874705537005283535949488208887911470174627844709229752826987574668308135646057450093660786647132529205605906677134358753465424078037363410417483799648641921799111131105495052103158160583878361647410051242299461358815137392439010825104821650826610954059609188156882396453903527878977057443133388310151189741613298289891332335544939594840717158815639965993972356846740924743280943492854635746346471565783492120425999829944384851616834849065095936449379744577062328810049637607655985659764595262198330193607905818763467598499321875890362220617365561959894399576275482220409462541909464566038181365075094579919183361726558219684796583290242339148536730441878046225329062851704124689692739509387438408530665039336534448267000054023462246787903674260425598768506078374098450872374907715448083314572869804856370306921374150481884271888465593703380503617308158291169788346338627920645239762883812212535955366527420254494453501308695673388394803118255993525736039603123400407713928322018304053581357887598857733256798553671281451312451229994881677163346134829771413355903347363222313168488632717402204264810733077175725114205874828661074901979291213695709113057619351730024279344839690792810392903983386905979474409302186935092241813999399599322930687207706244067840771458425029047818656981001838353732020386358261192263135998857588445195135025147427618679620899164167227582141239897464142952624958112571033221351178885591196658241825986018188039852739216905759400006558224705695101800436781004022483075097624741677537280794191789482114428088469026659243720951420910729739589342554762576188733607730926750734936840942296262482836871964298363437135075986058843657692039796246520656409349193807467388689610452832037036532956726749562284565204349526171702587468712168105328810642400823288999915898204145396409462892899130083536129296143475752067829099136818254976506164103508338592527924864723749035927910292885603138672740226269027786730417172945506581213146967856427077018401778708250916302677290753899491033379639855916802241946398137343178007932260200700385756697473979721857779790232278156231975140843810463982042404845749070543628143341161062356332113879742336182828360952980027022973634541173559394158090693300529789824101962005671683532312245491226061730677388542571715144284666762390337054082362069578986911991310771366907541741487315647045165225802541359673644903536998767356261877062826445910454693238194988469579891699300162758093794723901360236925264466320079357649548781881685736928787187572011952744125191954730206952106070280159929688929450939914873212081900328053699079238221081934582897811094290850730101678382909214281087714289400213521220912423226473569069076939812680886203049510255024995844184349480537541697080538804543266930628340814570810849550193268078279973238964258903284100594065523470548608366285504581790512850778213432098280677239102763089180327091892904275396768180592204077791455361215113740626115538380875258594624537187592983970508692727875972215699984965608261766088792444517411156197580306761455524997749004555056765961582145506915947232790498872731889458258762501916401156893768933537786256613337356823390191049859809143871877161144472267800117694888152436577981080806966425702632852334388113688105197244019108710320909771595099536762669583855849176155804410149200722044941868589948049377201892685694772551192205392538102778569750320703629570306346684664813375987622389255171114798058786915612304031596027508940707268267483618598696714265244626026461638390618855085965136646858066590606021301831193163440286473892971713242699805435563204950926949438140430050160416820791240397702362441891994114090593429210489766301062258962039507609858805445008537944975056287633011598214355250077699614819648260621669366020959682190786523076686636141422524109682821155246329839495209065696613291086741647732237920232507365725452251313340566727909543708141294109294759233214331765978707750691969515535885202694719328711394939044206634643169067682880552111279613395152261130990469499176947073177445002829899345535107415816730748656938024485674505153851235248872776331658285797677780516701878524800254016219870003915911028438854703011624748612968301880329584387146412586589175087232312144899770345381263940093880314945983185266750789119440105290176063994815673145121538778756619439657067134490192416791024983150821076934276631768547742593873678981855752322398689133870423921156001961447913375651990239851657544013393266928981859551791987571259034173304444784271893363166428008398950027178211400210566936905278385600223338377704016718029746987134392078410734813587762309071527690643392985211146057725072847676179582399865568640011231275435740239150201000255323648207809043444269811860631015293777726966479313386668136615752880555788658555594165548914665662464389714581733429791406189407720492190369896366636963571334995729047687453824135779433170588348335141740265636223811101042252927178584717288892250070707766517933092371165709081115332503012151096593137901889415248878279896809388800021252746515271494478883426858566327550913081437826716774305291103638591542578745838935649431516111406710930015436853576690728325506023512169374065121048823330389578908911378730232973909246467302094401322687300496764712769289505460285987405383249273546342568039831270661746479541099624870573313616739661910370879885048839271609872715559046449746592718605773001004534131055314744437758577458302361113113217745511461251590943649697884786041997767225860718557309583334763604392989328261023562197826882579479353644173405111888242850592523064106947799609286078446794837170433563965068335634869947922088103407479049272828921092944038025606872731713061520800439865424130385910210031533302709234921581151780621776567637848783383327856655705984967997141116747762326641431216468069433257500225044894167176067446786048220982455362038505636084623069317602680428223378798448067861580024369988448100394773749196234171208035062449730986394311991304324103939974579912925574673351348438270900865673375862143349302703143853301389525119717747904403367667324203439797534806249060125788811771586086492489541480104949568721108848200960714545246218090298227726089454916668807444069231465175426719541192394050529927765944785114211078973894303165758397679889230588667149704392737003727041404449290759414247285864328338614806225785054902809961302294836072936813686014951388556057474986186660735824407427605614536713384172184528942658133560074503501415787767573913033286907221751163620260706594525532417162932509033384222711686233514716883659739955053117433967822774930951441137585925491444674264331180724340395143254332241723658709472913429064434511317260806922502370842688301701038099615693028487961893145062715930399362432599983036262325121173101719807565472390646352138264379685241947135863932489311876896386337632708159624216785242158704079639512752204528698362062700878941463828509021528029155207197970950009060610509377737718536086270925931105174654035311217298430065847169216508878541333169305735718800704166966286239861671938731482906988821956521207847868334994544648411977813542087667658391483576317594206091722243411663215676622703883015836497664363973501688202240435348671886417194798411863613128514899351746490443116784037060123029634294208483312892750568944564764158618596853955114744364005160405376548480567590952238041824320028089056903844065938029898696402270464161155251968618947055068307116763085872666107591388912631026530836006055986107876333558434246828885093592526874509312393356722122599787721787728496401601483688555600732978928238203886807096839556324744152683320562103049896723781948027954521753811120813575264665562719629350185961197462099332460448372990968442563027745254349871463953615543974440036281539903941669918395533096380905971974425912188976424398447987157568779300615411473960433234271029585180798941338843854189962257008756794821682730320938156803866472714226126476504246106943100315871906847445349823415449651108453710697481334995170382879710384888148373193349492278519666247556687202516096420089288142431889786011481468593694689343549901650939661075816118393563488213123207079884059359637701504652515191973610840566359712520871157219577038265516707028815932316249196556185105178054445909952772743545282688915441310020871254745286226300646170185100659206431678425779234444040652744700900118990799594888341059599339753894271861401685952526279080362114559142738487876872194219722294466435989241953845824424216055836296362680558151226682308596881710363022476468530372921149432752569924842488852993792772028629952185817981899592530267232561352943688687234844301766271196716707045033842876337804077378833812288287558522287524364141945059983635494492746279458528185692878503045310839874102900674602009706540050484158400544604813856255826349361521710542387497409474749600010833061510487357553850760553150215074096006280677984123702513063088477597867661867804469247681102005604196107292305206846554598696786762029786916990620720578999918147568576107211028686896195071477982860113124701638328804251822793418448513251824493037378495951693450092611390289243477668504935969466321691103571286261893652163035399967615323541180355108222401618192265284084218753007756317682415622664535145092658759416577899085283532083953483848664247985263972419031155932620637016421335436111991646803038442134722012523824023047273307588974181805607170578699653365393099651129002796579628344094636968806331470736832920931008940984110825190926655888852568164171947045811107791836844554975137445294762013281676931506817893557912371150454006290025188143229553914425539116154748440683479491715921086076170561805144796765419585201226209488688799677378250762696624099109220744867237895064287924190598156552674312059388743498356628894958736955898756302753348899468146941744469430634075947345558856177086971611764010698765722542373807532858619646676266215805516773328464916613238642014724497084355702803482184973089678924821919554310734884555507720222731466687459752655816376040395808700499819712681043691710779815641095397405659395368191750217265282589785346189184747430781523482573946100806027332865262312020624887763808020845252751393330218759290233943580964966427561289138065415858316165851538569508743615726174379240261272304280978623694985223601187135295451908306143213579362744245170622261734483648846863779679993045221929313802901440377638333750129714974888432973113092288533783885577345271491506458260887549019024616868277295739024197485438193890228263033573027536038386821765993084064763152469226784393004066234491500523316229088907224734780442235141795596881124564272930500584606572146900989342274636294363011042376377127029471654744504120351891481532733994827514316129308731480299361115282116121795574876751805359430933232314093586211336673705435063836161759157598463981685838445086306629886086996925240116129408444810297843715600805572509657089664177722458173123669531891053173129382473716309677585308485360003972569494569452953765640316853257546709451957133655402984521568796719716847104070758334166904574729746804619772342306957676285783159662999166817036988137341742290464040789217446403996196343054606242733377335383680248199954777613182213595478814073601622498172477477624368035351621265468151030670349001949744761977272772824520680575149824413681174163422143008262869251663915078033615967635001691059841039778043143713526923449406669974052295591848397688340696126295137914310125029272174609893003382796339601560841712558130149407764912807475322594685821640559195686827906093074205963837933076547070564450016637629277166218349831245896269648052928003835747082481774928550846256432839235936542100145685217205858495738510519381132809898284866665388273028962715830828227930363544725315837037751545416093787912113135006628204202168330681988431430959134061252499587436866152988409456963538401206661566976925350327667791844635869856162729676834996916097993970500988587232322163807719878486215920646959889086506143107093648305410264091210747395759186340715277527725136643786208711409510112160811615080043544246108646364490317202762346166291437189492109739942923892024297635633301202217951370996820394689512420904780273501965319284710288219738477038350054784524482942959214921810104003835122840218316918111536778123569473660907051162868454169947623901259019403030127654168405438665798507500913188994194675009769589436126684914729465413477654889126332913767459977867987657135998383512355198951496588616493957484624610941484696180171606241999359357985473054912161279594970113625720148026109576570163737368263678353615708105563312823352737275668670827019433058299997051856994609108390390672522527933789231223362964506854234273746229462799412820211520795914530043362992423359802706325414008294699229713751578145437358593031273915772275342576605338979546628539034283688027745210648894710757724918177038952751750392537195135454073991797184767198479059502307287923712955390585309642256374171937764923265430355203058829910764530344686112817722563436832870253850132556496355019507585279422610427659440394702296277175436116570321291493282302443011344977805425855557324385715956566118835813545584906863237303459441624264442004633763782436390185104890551119085671383374019496615720629275946334302098035707612109134113770578789561163859684702614044673709507498183419484445971100809041209630474753712493546223644500108451927120695010746615611738282344256176825806048258391149674738910655996822335612437026621397710606871678046975036889163627653003361843578704034356256266199341060061454693392419698916109531162948125290893079983858542766177176068947537231167969977684139467258778271373427535685939292263049891740256463232563492457132531012867516582956284073291398370685810466314611108037857273705787501541009309449240073059107421953716696441026470465886612369160212032540519579322297926861104783578807644914370426377947252725940214577085194540727588071397129799591235682924255068738752509102316446747694724263790560369862186706627769932380727475877341742854088998044804042525544330180384474018229329744196611625707025137572995508190433932393458354165017605056382773304464621366334418322425181983781688485965593847004773480285574457655794916638816126496580711724575143052171431760349865511413471295450435260585423423154813342915272033120134008497368208793324877142152332867205915061800012899338087582604147094309435027064362661225643610459651856063256143963310220423440506432993963025042529314447328197816680057597247474230545917389171716758463293967321583674913084166726866108081103310431766870982577016548442833191847419436061422555044202753049400154336859872756035504429020718375408249684469017982716367419516961783412751122729833181055745017188472485904093017245979816384932569526737540486834055822601802776333406272177360128981857529010057822958459768537841514059363388047250112521250029399949116258263219657432622857754822686970300934171057556948653880325159749595197751693275307978837209478686062762498837411939629333322509310551521847031731079698624721161693563047920375370372663353203200210857751346288761724436243324519847554695381027964817603990600496868171234031083265638939769145037466339168355222783454847561132811421126040796385603406381591733128333993737742502501910743888177509218123978582978051148274024390365437438903420678839120049802180629634516820891013302474831711508726718187059510426225894964870686230253084259450354496720233244872565514769520211737703719801993559379730176933328220688078313889209371973786409138335970891905075649787328525072022326076189374516262015432615412831677488096552561491773725815431433053787804289040843366833838327440783176789402758043080772273843331667197912824261555920464839270406287138845864359994973876621729500085830730143851557265465016723545173995083760264792774621219515216940679348748285562799236792165654895394921565307325382789622333138733926058280458708721408532726506232223475580801116994615841559312365676420291558805781160407760414808240505630342368423852181654990043972798385010772935277199528416164906411724130008571599957013698583655343087718170012495989792648797314567118370889181418038495681539027645461525945266611102047187902748581203643033640160334100759220971683262639750210780691275243538638694577367461310084822735923898156738452947935300896169126136397771333762685812388800630972779975172656155852674638267712695155622225898542918098106453363414833796028855602926750710372558298953975131527738764828187585816193143756169129481356195333353371594509397223605609625726853503299471078178783982638422530727689471730662748358514911125173266564858570899952780831771045340381190481844997648823777887541769000011799893550111549207404248824087638429438290629704059867380151422500230971742037352473502124712140896090518146021945777613633829529875023572407508737143513555460169436860723572507578490141045623920400601004324605196748779518156376151915957943602390375801646519834152556023655865075904545003064104516254716486450923893878790209596585499284068911029541572421973240443362008329660285057503569287444782836742223975020163273107349507585429033618314260661026601096572089579858622433870151884956566535725643073705703545795272552251734817424650316352622213092007287446206784116620422088941105522894121645974678382879486040112237323424233462502748058256414507948685927644500682687158372652315523479182692995638060833351415750699534240112381958644741838809068357861485565877015179148694187890536147112386991376676107974355365962124409098736517016671540838850779201788081572667967995436939539886733445639230476468683412610337121061973858835403662283841556409224342259613236245431479860944102033536992309535730853438550771916523482042684396045754734682549597193747023523431725677334372895946303236567392514230754145234131637911595135041320687036227497802460459857300343582043913707441836809352644675046686366709687416823131444128051163431553783847287651582426978827652987595375503035024635684036355040944175873397922391288619718264655259436677317293490047613370030131997524804369296418001414325839868771520675826572405692255741020451812099132772620234802851368244806564147673319795927000519619176024034416755321912064435650058707906920101177695769944085885056831654085455936264515715760634430048685914858986792561361489614468077210005884485525185324906420231708982749262729593531787292853748603497986837784420687427395194520656800221490899082640937140352881493614193526542075447142259126932629993943016643094428671977058783986842827305006958815620239086287590437823647950988183083032816531331632963147442736761469827621615086628758648527747907568846002933864160373915783603292985884474311015703079998178772576307909838924786905648259662856948850977254465530957398083537758789988914333052129496353682163637120633139478588174253393706794565939339665526279230050957690440430505309040199810678218890977577586318300503891441058363343773938702360430030498131682774164898690976043398552044375201024240728897769893530410307667728188548659042957834211573981689867502067884255291042275319586737592759464238728210912761790053472463177970319286816729896051355442145193431829257464283566048869006929118813093088827075143803136721094614895624545209379349639625567311307161955275306029535463438805868598089460214079923376755484867995973982459567652326264816266222698421604071724739693999214871397072079664083344311916022042995246460232054187717060799969583487816841655937312682621180923910028041564902954939352861331997836018563755315748070761784927302779677112967052013762690318182561247891468376458894171273744614682125117599079267858062074744847657629607149166448093890962634529381038567172231228145656910772234275820557176540780684638957201026419501674852113623291989377315045037544641286330265344982602380407671341777149009603555839156914642157186869940418646797996559764593784669719053569329422272992377611265280210296830876540491549889321183340647893564054455493513924765995247686123018056422023821076567907470656172583408689939873117691120518408709469434447058813160289942896859732515657054700464864473589123229139056479608400573218258044081071169378320332458166172422599348112511834495142773215911863886645987535059976217409728153550241005155433182482501754858681496265011693402273322467630423238489898968825886641888364467641474683381644982933233060872775928433595569159178987510672940492371581198730935368986204980973031371917725522862963131500253929522832017255832892740707295513031125789016755286794737521323077299732071091093431728809750179776934123752147113057092865187681266161747535540014385624696696957106972044550018256466057443212127325631525128738142979874400975463919748673174762300781798324078519676294662401706426302510450368973014502452811590746895300206115396330973301449008133369947834513155390059421679422274906378687181673340651507717135750185542651185878554131569323248542550229424563378663285917400017157584663965870408774270476357018252366275028608312590007811464863578558536452457395355553080629339237519058117468656504337775464912924880070591075031147880803418354368232896421464255623835317822690690628918781654622168024753246228353883492555417706253875285330456360044464126042840114363049566360522175760153238639743234840703100433551569048171357281877516878752601398329983835124235437952714976372154860705763241196578392183023415397954934851211424726256355731785130666871431114322808244486567898365184631986990302092988487354120138788947369125477755908519139152529352676929655461479397201233200192961101860815850480464162041683191709887601413155006015298738901352101356763019761318182182633746218146801874903633392817268166430850880770415813429404547519265072143043499099105676016988854767522648465405894972722019067521075138725998968053351218870716105184689022247075730455462298589188212420583837714709026247819615136366469046390401853827499769786850531371107197779034459727679536537473351665316951703600991846363380391432482180247550771661266514015361309601791651682743198705747842333590861602241910429041789694215980047905242226519612585427690743900504882763867629126572427816410988878248332382466509978019142549903406323291915861856635099528017809201529699807065427815528789910169251878659699535457273132822602171154861210733268472592602016923648872035579019459973433397431062049167248205372577279165289557538340292732790785285597824459716386239129382289521926450624724048129910678430226778239732762499765225457402821641714062505936488899320219658759892405120459974735047483877140967760987630819359053016486599044597347723232998880790538229828115682989210244456851492095578991001467631275592730625636917871477274151264386837379116212205159191007171384503618092346004278964371031304317667580356760541537042651638802353336211468109492570927773365011064054254533645010177233732370882285036118935722892971554528046280155096264564914942716576746183441685380626151351992305755514339966439626160923351234987032029604911614996157156107102827528524838229877003192936082624981564849138447869265373532260435273670618644729039617902706809589015073987572359096198943072654256869474145162649274106863688029977217610807769807024272938301022834106290434037728252136071208800272904353806594023963003745946687644171477919670154010344528619869332759643356826540557529723365969058614733276742160769140854043552776304523828016205549645644745761200860126182441799740861626917975476228699063420437050479908631931654692919723597086364716397797026583449858290561459285354844397159445202027833453004103292913457639413502799681717383570163915127449404858899937108743932331684983145343778207626800120803497650964827857534661392648459840939104942997986178857230265710354396781087646551842603488261150686208523135920958735423741836899846627877134112757730083032880434306240963799600388753098540768246474054198563531607386715454929978769236836321792598220334836304931771010267902953447334598030094326865817622835809599731000408492605915001909611714977631076347128820117583550207396883512382524976879658769783018058872556596364916422179796497217183529654810687775701075652750042784502082674927241252323715598280821693538056887719952357699085628129733510080276718410585880492330560680474342753417958377681385613270526833196866314568393053950277991832331282617965760115867183995900604767496409165361502548546721699122341866362076137137970116720609543948443632394661408014621277973886177089315382349402748236824966070432022988055708845816410474468151755660823146603539988288112573455021950947612286154580489039798946168871233495491089790374682893688343314502917750165265984643941739898198134842299471376654171660322953460405400371402246298573973928333559073351218676872610229093189427757554754166793465668191586493811595579724682575282240687820404528555545659505922285032915220598925540299245702867786510807833527821674794177757404085269570324337168101459130226496404664046656866017703762892431554259029602956788459960716781801497259711687504449292287516082943107016357472072152024866488246889040718204262468244176358127105866278742470317070910107339202403802395215836157088349378351397940602954610108201019714243008244259813013796623198180869715679880771345136875214071788671000175975958430331396282448434761068939872664489033545382804955208468048547690304602188204298077367843047514221754351003353275034801727213958463970878494778996154844910983418187663412447156000899782815210675777898356063099621327032308168958257449233739173087132137194457496513598260939910341479427254309285995152420603996580111789738163726161453749906928054629934448934614923369682450821289164793942881103174826436751726208378640510073128981022237962595775626173203959230259268812539313967496291768690001036653893307370410247095055368875977802201392050807075204720525856713404455173545019711743106614230237345254479623621079018066369411697483423870655458019075041715889098121547703997113346336171745282511910380728265182067566010587695104472512857772240636813735141039779738116751919142105639908378187263226624278835380572309098405500574163524482459623625464957365195490734074779132800573717322952565697107379567128226398108570971214417272936225995457956381435548461567263266570217297502867102491303337355197972457883788164883856612447940061270182611091006354233727842879432681090683534153138207850851164040374468488557688041159441302950704102814271007463232070543130202190038016702604731613169321391559724130080585445049433061267956060255398137269612004643726926428178226145854719404789645085962376127762615253442909202001325165502334498311125672070151171984565434508448914723449211217697625111744097988703901063038860393035145165907148759245360105677950602366810628145829300859163387892421150513631571801643988596566181086132627910783116105473612506865898843088742764807402608947058078031838217628943690656995266523376271218577941687278478486548984614086126349690075653628339758505971028526123067151202993313772125382540553353503014771663047502767893440963606128641980034497844453444183124488755864545490208618906274044318089671479893156785623300959547265480855423931514371637846172897748603286953391953105451108057520987091926386190901658451725624895317284931008257647516379551903900593782820997643276886500045017557717177653298679322830190335652475364353731877018140916264328058224570106140701082117076463042938407431738036767938833492222567166926717907429936224315578768219001574457751570951146829845377971858194709432969148224324648091444259903448059437167285364814042926500946606231285207202124780527476361369957900304420202141867560149401182241344058834903627766405229886471792851499288494458881708920737131835565649545274060732473618721448959579195638500866524082585806756605244949351436473619041344640344311185123401108526455493772498094751499677383232219480482117055908097927145839611967672194703119605754270550693059642700341213057806517035871475766728892595451123037365274011795891208201815586384220796415914734441377771102789502316267654767669745014389383568894028555635247195038849789504766889886441235796801118771749910675023901046631198731801830884934380400191629307961839445419507255573760201546285246244832374011872553089782213639029010466763969853512984644444426622390642602302148838095750674915823617823110287524808806609196081627144073806800600657294936052606811067419375431331347600337844535419181509380743937663100119153008330570048122467351738611900930022924211665353729006033010956057156809432062039689431238576926311097434822571839584008763699455546154963830013135706520468791650645897307745486148026712098488102522669429574624204663706749473720965680903547670067269527995197083799597504289744484151905651735813375753798285234343309002568536327330295595104610519577297930472112916409007234605742384829306447700435394480362166460181028141063750298177767915431922025529661232379488509481463662679722589546082731458675132711991706882316896782241535848295035464984311203662866729743689512067331902237390230542178950009789606624269352634640550302200489840552111946691549409325276812178948581213570247265516502058904378099704474313798062784416519241773350136889267693741889770635216599533783912987096187837944213516249816789890982511123235513426180039359257584936268587338860240180498430250800271605981396465888478550577324542821363353178796833362007260645661625466139710092435396167758627431579026087730689527749628551736547514503488169302805774413950557081235376253524401980646790367008330271571278317966701752216702005569461606889176612738112269546618999173362411002424027381716851186322743603801538125891953769033005529450205808281328591664255475020557676507688153677502665644896048050059132680928587184048402087189449585583529872626200833513391801671220426522746385277045149967011018915551784891628356462240913939631386212192930404389217359725262597066849097438235216050709732079637461416045151413122519112749255258689278880561028885574306979106544675125394914917590149835786592498929230921682259440399385906905104583037463569353652183000980983167857033183197493404311054672046804976706371830003276720892425749036268028774807234678900204994753630586511696320658951634028658371207683126103087904480097129158535537865640313795568070561999197520297879529380353765878042326914015508412986948403994681118880488198669437312928172264667895487722598009800596667940916841182822405131476376608977951466626212782012593316400868277519784914726252365048358420264073042263552209681712503894601872778430461275397198648311876805152970451150643918231592962860217831641193063413207727865544425340892829778614038424387340998762239286488855335121769790391507075091990437258435288405844518966667594057696825481947867899806320661500884570246857972301886541874953493345354175468248320088874481753904954852996088795456900839086206666557541136660349120472428577819621403809759625521110670327654298926530072962358845584332621734612044579159071911333957790533013852958638791136452500295716743937617750217064467388020895924607861230577402531276535818241260941242627183130790006624376304601736191532844346634273201504851789464890885748069894075488303628931436191338993398081478647589496775012681658614100329469612288532810304392501880044778216183712903121484612202982176973564174391394423197177206970170255730634241481554482803027810464567180891033930233191754506666249397810504356180304614074169669225483413889013472340980247243675845085248080922795017345846295160879842802136960980544200933430016087669852866728714679356157088972752087780512842585604916762575551027583185520245877693580649994153232122929380351280248152590091922097106861706287337345886430041541309386753173161779520951462421467887142874621477174059175961551041581034835195342387667863613504937485877417059876308730248562842665989829403621624923096656678998453988431524357210609733719088919223386059806344153841728645219359610454957764574236272448104134281861608010073390460887059940985407730693430248270305421888418947383125538009514908814687185468717854360542826855442128723703885237424968447425622241249310818529806979098099877600434751993816557718988331526471156245666421727829063242940902636170374026665017444161989397647878265076963963440772611638665593331877947503451632679278122820695817252776009723559639362225459965376164743092609647598282458471494915976447578182122935110568478858940728559579264066968776017270372481940591588095063765629841652466691497937152341170109159994139943036810322833994301136112027784106237595339330380034338965455308232735025561349292555196935936968921897017218915962463459864165188475600225459111734673637894988779731945265310513035130452873122402675856474235004259998614538564089977846268174950651952172238362893935969677130212166111085605876159135948194486336690886824708126439384888116709966925358338539617006444900249852612340774487017005664191994882522820358424587019841520066134383938180936559997817200356011464337171570818511967198329234977622651818105398372645522462400525136733160756468826744127736190425466595418520455655604778526700949542743763376026031046264478280697034711309133729990305176333808815438116588384587623873002304068219306383887757605606524709341555823387660459873246316857684192421525759466396167038983119149678871269296097112813999093722990107915786444213042208660551558734922675328646270368468039869151141267319991259480203139352550527167655829513131682510182657881599311507878888431911683391493878865893608223569609485374373955840984711946432318403636479731137450636181778717510700477839493939640532565560818526754252262029199239971296298534752591634646324234598070837007996864784690062215566605578460188540535439531087124754220616849505890618093658334314131848246782512417979504063886946738603508297660096396160233441491265823698182693460147552587051707823553875363531595827690094919701130239076046844610234794265674227617354543801348284576104472081888107274110122181222855775849411622345592651103199106852867964312349737247602965308962855943862848057328395272880857046507325925978531696088519654733689427384901662767381095000482547940711184692997520116723808288199872906439668766709132898139532330113091135929932290383203616721790555570876806803696055777867232854983895054708498594363453203541736958337514518336184060433291627403706323500726505271382974786084191686319646912995823663692475196120893508842380712171501225577377642297424671509205885254958712456915844173350309515227115603872786323131619304478247197728836137807782382226111704477552048422271942608155836430282679635795717046401191873568854739594258300066062085051481529383276462810336294791925852311229057072363614831135863230923884302881211033995473441093848613547216924058541948615994331893444535822666254030025336983911371164040814760486958702386342273457330496118030030670966862454172832203514158771901474947223595500021127203141277036533967412544514695911588702608418201816688663670727313031975942047709280068953442541315374988469181454257632345772262137866774310953740073889505447245438847723548967660350694115268950371592697787462650766583129050760997426192643016918154407648876629249219527452329901502087058901998564593068428747375965498784176423279628929057927670040395281268616239011744030455074062688683964060239296553147121473689835328448642629651154903306529822957812591578410026577551178448999224468285989091948324837910796894591754023973282437477791370993726604544055420978819749532988234463156357262824869181024329660712161055409733402013393288294389275641487297390582261671146735321993603847197016920556210093647076402063018276965016338174399954697345585139959459562747101039773307336627803038359073646202802383791070129015182988522943997677907356791488216951964862415999323409266504275651619136828141608411301537074829551628014437215688609703663108584490194615060007652392072232528000701337122210831341249942893121712909501100164235633521880079338680364414822426926828774217293032847583785803097582404372491955823379687850488582233906325306479390233103905096376343559247505197236462470679271319435506075091625435635672503600635731427476668324648379604995635516944160123584764827858614651539415574149226644464604273336408996763934881629196135182060294806826214586776212377101651000318143408355649430119980060277704618089574808022756463653582409433367257845110240230833882000059488119633602330924336927508540502760270632424984464173375642074812331972257814660897718695761556415743315597670940338660324093088101758738031678953068034099175235145207098502807670769794959349945107453431178431719288047436823650041944574971897050559819637718338653680280322864256258473014893683315698049415206989183116616728927478601800167795179330438812031795709284726328926337988310297722655777831613191107897753860366491633821971139956406086943503743248588184459735558471441139556526083370947664057621944372649807109007508295713886798966157801757218446253209894280926110299276707530323919670138064154695822437696966245643561188334042151878323230576893326561379994728553711541895306310135640831045790137893924032165786439426743827385632847124473052168544314120113419330942933191726581070946858218953032857109860370479366755388287625604613051704588274428064225333726537057250756075366594788507076509930226485882989222190143288972688319995716870447347548833936812038422741014069742217472253493056616060273453485952041581320962939265002143629560608540440359886987007909300333823660838628811107537913071802369197263288928308272864341882773766539118954264385969862184737730376525447004304496666224527115611141095831098444926544463178183731884990586196921815857859187124580044249801956290276916394165769876517562785335397751131318609598215643971337264455129829692226564870080625595521326823049377985751320624076754706197052632316804387200418295886083362478408918467507477361670762342320952022802425138697764018800377136238829790338698772823654945865708576024240832024349347444743180368017508118961431855279121209504040547547345583321148246581514075846084342805725718516141427550097530351955644168322802303026976300371388495400319418744647658899340122217392714043535456993473793982730331422054956767312761750764593914640660040371158058663491708519900270374477294119697799174433718433919865061781091656197728201994480700182823321830937679559018183383887323773010835422470656606399673006640931836788909371915829613170746117759537179925341710480997388440333501487723691155605046160753606995154205233551297632617742565344071939152256312988145819823578634501177010546563111628958767149534482711315889952153213169823751574778061935195657552766934319290128451972148271353752823001709336015263013224969113238829222013938345540589888346367937683459455032312797384843957044595528910261084076444792283784548988194354016374351088044614794024332140150255260603411393683295491654408432503510099849191238351265490325026885956757836046830267190575132509074153122512515917068854163075748408105543075959322091013194251929800182177256959731677801328985944183111449755920433770187150294471745523746174554727672689688790953777782073618482688886985120261028929481756448189273177976430184266019957057393773992503441277111696615037795277303320090702850722725171328851761446378600932602177801496188559006582480253673438840207000538740793311222150300847797453194433752829240502269019937617921968489288837258989326314355704193326314327288247979393571742788574423093498184812757061063611666196023104348458293640518977086804446501306834572977098235392685858859608267489105969741790277260882255077457017442119610284991092917675366382622025059806966819584655957924932591079988444107436825241018210221555042423405357754862616558851156136167904220771824763838788940376598204961749629684444752227346659906927832473516729755581457583736018071215819196568039161269477282577990412708808361308631178819395752546115737803487649176558116224762974008914264657282734241276062813865933297361976759175681998779518486862186753053747560511870036521143071101132885844610021725980956223030317649145057237122926825853665763898918787697655003152017576682238277354995227364048928241529912464817304894657509641567026489320655155289086605442701315974068853436459573214390211760369624460308932695996313198562379127975494576656752761936559250429356561711444168953614047467373056594261821758761579376075142976001752592098834753584791734457331292454905609798898722897013318291175193205097616805673369082611719466654777651235630082958589493272723963864268285877870537138701280196556906167200469725870593226332001465358226329977002553401623305808197091584968105593089667341360971656356703970635522937200047905237992407901722006792734532591515541589609324323811780292369911000952741701669497514906863553823985909797865140237353399634514291787729034374584148762411727245343766450352261271954095350251450657665343906461397476049948610399210723455487267766018418416712897692445757178557705448914381021896535396652292849812484275227925811212937747047772559144057799429544118850856142578944771917623831174422440365959249746025825403856141090787073374462467051219227933581890737699909272519598908174591656432986272879858130073108354890447576475279411353859878263056712388896901718944309506842221234260363924399118348390380350874429180835165002159352793123043336313840417708692271392505587841775715871154858436973460840873805012090983894429139361089096427069793719278884461100709958322179078738052998126189906476878856535285550633041109076212368563744042416531379773558668869812635823966320477965519228027926869780403944404385399098484640604790035837781461033097212412973213152456302451499404516388137263817229297309436828138088602798303910273027633529994755426692019341234700834852271177092694164558453669219732487643569543982378434648576957951861572144944404981403435854780864004937186684522404838576455562625166117254551622821577028994600792034587602671621749747800930315536738685730881862887747028490001625649536183639311497666000263978630947889142812005349308469078265905854600094916149672498372356819493936365215248071180415209586959299998144461459294560423690489439553501235042180699252240827325463143335398276749704033366424983137214156281650536869494316434162935378964862714048140740773275393755581136809199746720414521814030234450255226015554801409324141631217489694761031058975128432826737812454537905394818490084688367523271698526451177135289617672585051628721817742549160129437758900699806192619054584239874209229475052554035240220008852934560052446763493313379502232869830563382763759592822136815078357183062694882616074383059100875618311191969397495025587901294257846040516025098386378565991329306620486628073459278093265862221417700135177257098369217212525577001795070553377861573528358975561808629877794265278199109225421575695102740944136922493660812003983557358953789030830266947565730468696387831611225208174022601020936324468160031409091540354498880992349896044833455870730727744955697851032049462966563349377097862681044410479157678138770736846621408638802800244386748262413671598821399899627222909336614699953679828306226871634843541491213078592314491699391171568210949311706917754298679709932994334778096984259424683527676093343731790126171692969511709990093338730849348032289228844276607803935872121655681097804833329160741577465434464415959946920019347434050605793998532780040339875467583351147544873350474600907721182687053177988878638648575958911428718705786489696844763913875120760989342081485807529936097500892749675779553139468662074072026426201798809226299809376600019862105269625893767435053062616124253770678805726495791028795602434158278127574085423149098616750586625960940746685011299441014755073348757054531625784201110751465580644726798907207277865737153408075997239172676080531261875239136733723664178973873940190326878816249257711303657214700280630266871800576822707787672171181038882980628365259133316721392348516886986824171796404484347993804742685996428111966067975233812583675354282975441216843440664371424847957945996625468405906599593241114798977049422091833659402972693487786637977411338199750963267370911488160365074890554579297122181780455602476578994878687973403716823409273608952783702042060673368681107499564119194589369350971627849645368754460149703064820562746167867675395797515671627455359522010091312749371710690218166356873125673721803340343654293568710369488684770488888304820605468328189746110729711945540666065050235297358181030521758426914869085851287628731694599021218927888257811363208769037965597067902871986419730558122532213823417196790010044230479902405327376740829619484821126521936643993472224876354418235153622374279330163803275251353575822460448987052494105355257595919487736425220373434953672523847250760434255027038399700120317232416916218763695877862473938354775905544302697204346871022348898519115873940960693275245739246562229001769748288521634889693673489910441190042351234036660923708062498345099324588022332112773784865338911581687597729527819711852262171044644174560353930578446719221870570523126770496362182339369542492735501534610312912944906519101030896916303210944380524604727587175516955995169905313859055654369728586718648772896394624970867752022932544465237428163019645762234640673213314375778867401954582047732112767053116345694452506475315341330665871170973278188280096576014733257797864377784914501582393254567902633039811925338848810935301296863235135461138288056915326249453934320772335256056901976275680914462597045791419597073866081969061877948435811465131306074749606590731006112185143440343583975629265396088325662733772006485943003208959628947753785727178603172477047472792846260368403262178396600412222445493737237003581981663188531826373133639719918289343154134606237568199550059142163019363680153816369668219923195257061071133294484004955170620827850078301351580409129955469527830699912537477032478482659557796103080194853368455717576808176703573650772948916558285729849946408423755545074614283842647590656589816208002115114551629493299162785562111132767713995985737561291622103906980979577968972159042211346402381467697537587948612878507756903255449019760338578461076512236688476953363060480719309460782054328475896474662141449303123812717510949149412431881963354981435771889728431760370121360000248222633552825854017734378877870188142140426302375970844588812980147763874905805159353748906795909776496996849505703444577927676129003408453217427018268468727597229119791087295740346097483564936667701583917966751448046465998534169264183443702852038047617600097814735878208552309918936149339712660142267767472929306545805096142210439070382524003996981098052912574186688259860957507601259786680695598196375346227902197404431260067845169852020001430013006105388742499904578739689566362073382811711542405516089987184595091617217837735838524475852815300541543959062204089323949237201680061935822996426900670190692756963640328843099747589330514227906574639664655377686178911666508985724040641486182605095515493271578169500562883246262962339061182019471897345227157670342477662636825570313559522790818201511591824089378162025576817624573000622159210272908304179399328315598540330151482230269884276179876306175858823437831351341652319954950913176770141756227449132145608219587671142627794065768983523193447267247834432550093827082281891821493394850374271000020575822199793143525990882804594789317059938491577605634633059227447650186979379261858098263491088231923968829119185262901352553245207612086655330505215838851528835037706395818916599098128946308867720706417312520652435176895287596036811678443884872699311318126962264045729615556866927824609136291284723968450818918933616871738358442046901297533796025747890591597965380850841310799960458298289226692077456715995883217804375594635862838487130613229281442879476635454412843822293818139974136310660489154395655040016234786028047224324823649304409121825591269598468979944747740514788161607128714397037835304552267895796607347808865153078340632567547171129273453751806524542560159824427964217882135983451828741637941201992134535386188145191655569870816348511114119237165946914254459990159125334288085058892008569991531418115717558536913935864458536961455061134867687990608880839288649723382946839291535659544900295787682041595136261185174297643943316523425114153937444889511312011048190163975276796712323689563708790622807089632496100060542509791759354373558927939556207187007615939376475927590616439412572619829052147311180535058750921750670093024043805509641506376874576439881850654006255514037587376722897394640423016163795106646009266129004510045153430925018962870911541083851374485068426759214390062618061746624214432094955692416575840199379078244005772507715035146130977146583783898008312443782712372577769643611116114376969276544229538544796208390187944681373442240507184231746500518213946810189028659822022756268936951827771819626443140160811323173748604067835740192561745960208531375874446544962448170400390877547425003247853213458554600002374150592518267806331630544292470674471703905331336771754661827277961803619341603107394899077495415103567328010634838803318275359044468171934988618396622607442269237118067216585273818177524469480566550863238820821377687789343959408053908949802976356996579141887592083286976034505048820884684032185437952487486009441477525172341013890261733501196803134193339281862311126005540824763632906277657597338630773928973788926572756875337910244628620421833962853021731401712029858264405480791191457467871446103813196649746804057499371993944534838990981190861073887059949492646893046357193966735220287275348558651926225346810987428694176519074810691324662673952661004295898252444184792654814372523185571790513209524896754898599177218396191368623412350583251647010038217564931160558107017459214642111282820999809828271285554016541350568174623842402475245443404243320885152706334163947107280368049623276628530031396876323468936970412385159821351039683277748488413626552180539177229396401969239771284035212779500326481189230786608236252668674257029115578642728992046370001986347502242186258471659127890197952479921773119730093578527146936095111806716780161707774462707673824669679412229599291547822008328811982223267964065942562563232448390483088426586972614386677078186097596350911379554796698437394187912402054015929223975198746983876452376032449943723917854969402704765119596260777034985144648241506891346930769176587149957254653622916084460982808467533269509640050757707360087583576873273258313616405452822468126655847918186198253237884286601925424420467021570965122098486001378075174807598121154620161611210079423570887911359381327297595027024929095208675211860011146236215960463479978868056813675454244488588559343154894564863816125012772111423566043778186449383149102260110487939698856407335955936353719610070816291729470740332177783559728722610839876498321498394407341050423544800797579767168630849892496578710757686380544085299555171419727130197115632303934597707777510164688284464862580027865317282312169393095507634446891286054468428260796589396533368112584386285565875039156214446745505000576008926785947181960533469536680994177877582244506603014680249291618068912440676925544957840238483771666089393206388996774376064579398392138990072230363043905633116106415609038650131408063606816287490545442709041355306866036528875521585272955941259450871540961629715886152143196209509281491058770858635971924580343971245861222158074252521709280444915414371904631906502650036581956711854194189883096856204280316826861523966902829897372793454771734819290475866837608360011670056350410292652762081088585820124652178572354453539437250842926743169041698173256193552356247237924793321750064982712967860877216846057831073134243599150059844601154895139380520920646575518567593424773732951057590540425771417235306461020130970823683258490814651786074403407213090923142659709478568283568993111909966259300491019882133528165167265894942238639652459316858091161458376553902234991570957043997162712274864797145727236534262182965883650186371476248949284953118251369544706719937831704036710760110280410342744771217316233100633667278903129072455039291578042082460904031358459124020082501554427932304190331217987221689285281928413778659863855646827802673891179732452888455757149062829430452354852134248099054892444851225410673533985776000719662516222516739286251275316864277173624787148370987621236601507452455913876625327004126598017486513247283896659575636871716013673209412196055562361951956332176283235248048729136480954539457453955413569092598561399939765515316654021804135062304817740878662470041181214265212354772394662570735896777001244844675303662250955302747671777894564365600467452601371991229895437226859973273229399606738583510879567944403188378858040814659010833101126660826073716426932548202732561853107389326842277202432497087633329512943483458093218878808438052419672650114716727530899709339317867513818578702900794746889961535449383949959884354877310973286037440974115848930527627978227041866372228265081913683864020376455661190467178221794415274950967319869242200123551147720982394670998835330045994962440767917456614912124795438835163323349248340884262913117292966076676113472234928443592641288509920551552034814381592205788885532744806191143517738387694985566748939339759789714491718342077190257184802026240206230422968828616162324583472822628361671811892497899600368030851511021695357997742575571466245437871989892212683544575924118731572256724338911199696547009084925547655370825306774604507314177348087444084351980596102547039198665269468188525884807489027561076542029941160968922273067894721925840636852612019567259259703756906945047095258869610053099710298287740905592293849954728058100293246724042595305996408800304136599981413437392387940557536611530505948117453835625703331877222572534232842411005280200346234380013250486628781487944259005786282763816879292941361997000863584944222750484530505765025259862632150490388701670945309498158823993173381016318447867536464788804311935838084949478493060670903408129008150765988845372369911387582693970795813152259515756376008671483398083002155213102577955673580426371641034553038721541057185999766488677219023630096707083393416775552047609285532127792111136894488615054729065741317048434794162389006392804199403699585928560480845212497206969867628560374424547031323363306931188463363847473184793597827956081844006539720537716868584431340727037685624351301366385507175734635534046082736686087973105504288793935038067463964317463315376148905523869241435923303511871125294875129440684845230549090455393672362459351094562620535311097410274800155826548378567389824024209350121626526205589258760972471862479734256895266877206640161705681329187265801370743518539226206469847430325138627233868451808444365251080086216176760321778764097635295530640866861880082602867552340524114074901823541121545936928670990672878824461943742342444595590177345344966577832026788525227059103812968423844051948134522757168464601877202308838766730603636428366007656113432388775580661433050322067224886943502773673892115386182179957628276371184906700234743427117559467396664399474856382721042440842702303805627128927443121427821771075008436297865390113890483769516334791431881754101623316967942379908625903111230477128333850380924405285147764345765366096640341219292505670360758374501118259690154034172294011660099585306072115404506663706574296062786760568433625619642942486691608132772536916821594794350618679333663394415642234044418611886722696335998179377153610600532882684895896466507385395467006407796156029311007796942329184228909331552816389013300197539765320335260942022931589015549600761972026281555616681032558505162164928937305489223521041314462715588755465981547358293879830003966967153639673894873549251739254568725101775055990716826477629517284581078731350793170322585404316731111945057246879699121874895717825127657716442897668761162818830747565673964639667791908937724418845677990504639882751758759650237638905758769164743454079831915091782918246227672220460834991135225684551626815590163010191745175755288426608745268272454664218801611592640630069483003546315155523674350372103989359023073369248457076677575572755819827147322301748924789961452733733545029198759790541671226265115697635925952882348582105146147686677218422802514173611704556372558647203469701761919039810941859777549860679135785439671473378844889688107897479906915351639396141637083295962023436947801385122236792820472973887909895675289707754489394092047067011612544491668499343252519401601155038964453094518003604195958772303257980794631744057695231369714880352275127466586152746680843176689467043197649976894147727898140208468945941619034040001920725085760148403387223917706454342371163713409145883408117079806174435699999174829973770727019905051991355115542001318579077775612546762228803162656986590792677594375901966790923988981501248291225117777952891492457229313267891824164653686938510370447981643635212651893865385761706173983742337598962839943132851991993587946901806307602958178014079574878577649426976338790415487231994441078975241750366866424430926438132278992975683370515709989176720698289512681735810940665401954179349184211395661781731974606724317867534272434684374859482897945596971730825034890829482319112908672174869461047660218635629163894480152992117357417501447415385457505243779860644348012407064340091617636018996108380791430688413040922079963422199386003632970077183595676001195922184930341940016527804258772100523790065876530578604087826849717763177869146894778570657140763129644730826512035482640739693778550020090905082078350894604468302686804689525215869645662456231138157159132142492878818456460751789015209918159881946615051934266432750080303373629578967132026968075798214104723220093754090110089865423880508005705555322127546563003271081951474122129735188918640101015545759129253211168764126642778883962174171734702044299729505705545043681466432330253462987953136738134226772476396141071064148544470532601999677404206923468586995674245973628997726941938625056508390080782688727157436270093590609796558293008363782823932288581874375587499692898934507037283133656370624574860083444119188785854748471503251604032855204799397459060352037033246174625293036490686382460771577193277799891410946670815414280664872369196157141387839926182384863527613751053641340130994570354402453422256863312875371963450384471441711460247975228618713788635467080925735235988492602861983748430238087877899039611391251368610024841816702975242700324468019702400295748238818874606699565706769180278045063514485463013765780504982747601886685454482874561118520211751553831485619215423976276889933132312382099523737616165760539905283157415624561700691240520502116656058842293661626317135644990575483073059313731065426307662352700984434348190475238616958168511325896320328437967951224390013442978771121803258001993326135973918242819002060875857270878772413488895342981991395667592185375941340723357890450250273828005183859668634792237078422255349277912587449672334607920973808449683454546393063785186785697870958747414257638904043271027666366373155474035788806255768029185339610383114913509168555064336194084998364268480163744406557370820347135961116225518557938136417773290134621558125158368597888879739876937762530173209595411726751333699672984598350413998684139085347430724838288986747703233855989147878878259242960626111788425038309583941969819465303946063312592542529457971462849332931870395546080230564351286255260533902666028345585081333985185136228706997531646937256410361653883693597600383330961469201749423911972443725162156345002110180742902854383746460723334176250987902327826997540164654065985451260256176217191115975074625311110801470605116269187668316578529791267354562378547065437438146728940178590233242677879408292332482942320940681371739878121289602480522101761529472234253682504644807057076917750031286326679244966460869015352959074303519962639180835747995187828904516644983614737079703918232863971698639095542987480173352312701753664762031461205870051885598976893267431677180677919535176339677472867094814968112988430259459999924547006312666252227217357932071065725040346838522770770294834532116368058058264808268190854692698353925744954303936663074576543269408158909323651097233925348071437446041224321579176162874566801848306642326081044824863802386856746803155491821585828622333283554131637787032567427145833233361966030634264082955371260413718542066389769511241102435588668698063836994397501616174260280286493746432277864908142308767731355316860269589479709676417446338786726010121672638711238611497384820939002140963307544742248462449246818925505583284223026790556694243518082366516544015824187004616058815677348994445496955042553286350907870160567286157964389263283859138676728958671574455738085705954680283520418903376997901724509334000556888100615621211470990054773039979194897956978252975090259504924261552929179658956889534453391532924876667091673055209014621949827523999845975632992783366452504160995933894594947550743736791621338211021861450737028858217397172902139735865849199814439938289546724791306364596182666581109802400297587803131086499527644482343487512529692301051999960618072487607800937135414085156897636922700899479582559057592563663290096020093592291229574663207052948796446151945941969277396885447150511912445809610987363917431769015341164528386117682665877859900446718749221959167286277710413552936929515276540374977736163592806248740845075777370106772062624832988445028345690194015760059802155898185256992749298077750893981626010336965056775121530706911157633620085260261549123824584728666760808086451915286970557306748887611882088569952972766584442705707356591107418303820372353674021631986236625828909901018016034410967928619707942501473007377829594326061652336030367785913331076029246196649117916671506344579205875961702201207172262931546375370245948959659298592844977108746196180844589126181321788458690894802933280344117820147002638182474590891459156126399515814394617925320364297783994618168780064446869088131624516149427154005603574049765518941401054729755627895452248657034482848052032435496583200829495427906061833330886428175970001342583266583721369325770964456912518954104351202777127779374890899026217807570882979938945515360009285207655712571214273528232755376594826299098174235787630544599490838631896884902419916172804030565526009978171332806840400946841705964345570643094466798805861276903413532398765674794487711748014471686961604866090927149871812822203778502940592301254878565121889796268926428507511502711546464371467141582296486305090411463379152605208243482345871011292364517957923912052139488549552086279726167680963563052758193579294802822287443284506612837434343948786905115000266459457201035985107136963070908235977242767274456957021672287791124385859383075121161882047180844335870671559525245796978422892488203042027427542141078153253585081071254467615071028986757263784907667867626263047060985910071357580384768340786748883814951624324540307711457815607645284225110317866908744608248305636597318869352108417716136135460173150366483136730923462664223467129189934358644352335711078762542342021161942339730535930287777347602012123497744801755555336639137711214117388094694094378912415661072448446346180292329430006828154599092037459778536427713221432579224903835179010891006790721246642461499105824658775094120850578947110130015048223541250576840526446048608492489365082188103375377214468532047040025961695453204178005862257597558516866506762540809739897317059680322506747484250136268081306098502836900151926332115274922668129695686407770909732261470272161447925591309789810242225833859439612669984032693489658150763420646353253104610470697505875050649738570466162598146345008283134416701707710768749375457914493685391046038510083906297217230241579181970289656036704241752175400007770720381581323548007939489375000110758358337979940296955541040326126935593561079041306078195014870878356842464007401994020553499961669827466256748409339777769812768857155311034738476983825475747098190030448870466542904944094068409497854688404313762417908572240044566432386041639415039448076635610894515513661406121336619693744051498737708224563974642895124922114506007300027773158991622553379987048157130285836764158685202163438498488156046143016759095659477369593565753085341860231152688543201350701318299913574376490810072816576813309012773279847430180858553219822062355701766917949398889820847746905618356668269556115530113361308200646077112709223420491924910298057070619640164560188834703091914879795300038032071356765253355647661872528151005714787605642569471001218406516407865021701401575807676199427187634937993230651674738349879531712596112218596825472908988179390455948593602914273528178181972643251529437380495121624120362300312878306656534634014084547324683130751556873521958070421315322695821096935308752645385808964797497553335487806922253275392175775608504788621587539785433984291582919019255267481720968208029176828457107839590795306005357959163123125214164223488939577430806748633751008682146200696126864010456724427880253396864387869763530169777021151819539409068386806180232635891477258536018634118371067026757113100010591670555844752884278370992397077644245412384090854166925232132268324215525389460373798251320482195412024118743474166531498194584582721302891282396544478323711638012633815142124052739835671769978711326608263360606274352249019727305445216011297260794860458743984198275624347967577036403612110695728607914767567994150225184671799124183979869072443169567348920113659197519162475896797059654226833247855048040262370507978398102732847857974174401443873403384576853844606447708762207450066250734894566892398346826108846992909669730561059199644172643664064258899820966577384852199745679833756123273420830111465567873523270395839147583722391448895363677881935602317257445211223458466328862992764509421646550819884833364392248227617810975337161094854158290193789660119728958029829972792916456770277278669541083938823083707893449586593924953587137839417564648414114428351045624984316411448613091500450016178364451198705253747168170861367710411455739028188933494681157299132373610185387956261903328131194836351593780533438523148241178092221303746660068166442478068612991338244087361524672400548499854144773836192772326838538863148443246939720126035127063653844588053250342331141765481964350513596912245222898863956956104666524429207017148266582011235988133383640715571009757915769171107506481877917504767106055591983047423095551523304585874417397189113807957199178414469692799220522566731581299652057003801867630620045778426151648670060165222128180500358329318217898399348169459275323407311627368363497186108107179920537945432560662438377908554728556508489184861366109479258849354242336536873388693858255266753043842527706539320864088589808581400683523200848099549377956018038126871671272118236597967318621187663161771436512077761935449100530333673191447887503347981696739756502045449871569729405505220414264253640673853964431053240468583827394556446036774611529960165559311377700370551758489781768097272376832758517883281594115393161270235038820875701030683498356076897382462015375145268919533188340752056122356747499767586373406014013737696870538450514756564578332583889860190893998987401791880025034300791078055499735392607372447432625850840131615020601120081204326040056059797532109367333425413142841892071807583322799682926398975192641609068650431911704511978043979169669044584013408600902504511488840326693337160451544765811333415836121434008254389943703744607638866687737512940391821383564043769008519000042952426616284643076997730573797238585659709892693324027853997946665775944608617678707630287173207656071439260136362755426366565847382811946269393558325644080873751237918726478368685695851550069864399877994680762281535491769868583153373496948477245460305565343642150351295925094292098617774732332236055538232262685639071914871848770773881569135266728260691787270508927271346522114880113031860822677519304956909385405546376362067721060738020957543504054850356942125346913805525815205520351271234791658945413886437393510199135114797161916215730970941458908152305959914191512710161098381218519496415495268526518657523172386031034678912990599503804799958642383916767814416087750537163966146762677620475969005765720107513837727051812114011341744614141086244088404562254757719866711847279618909057076742296653532936228439373800265597221254223858002052778323932944283070418524179248795588448067971403012697686915145567536284909111855468469270967301493850669060857666665782198859994131242590270640227403821916837009760245006204075594350531529333667542455717401195467929370229849356928339844949310538176177113356469690502526990543585069616933347011023493486848743721714951761059392408477491307750405493199472211662473040138497399075600418299981875759547497436668293602185061645871711246970396076239968888148972778067218923781032073734730621991886131579665946477451161620520985342081367764691217035080000822988786693078976253134974404010007991725474859134026425432404515095026135052167547627041874615652030400845747838156856381074338195642910095087003278257392580390679689065658115725538180892698387682033433090763661806880930481864206747285230525553077165801383225355863286957662806590207955418674829849251292331484623385190107790833947434972983162031925208805442965976709606886003770902063965621043754982481035002622194760428446765745599957805204746801774723972896163193634063214489817897602146902683169476289196308329016878290260246040811914564207493124087451295554572466789357105445640624382137338859187923523971216701595446625249796352525145989691514303944334422417480296174193096391134776833703270009137533561315328619122801263780665506474492873864215925558031471834878084311775110901098186819357932180132165975478852763717004085388708669351592370668010032327698082435438662006184093388510928929039586247849675093407366089741256995509629881814723884451624499019051279116459805686921524685423520952047965914306210681138447244994807570003882406927488315892907336763517919425552227029687985393553188745823109882769575896971998233255274408994794525726679122518945065057597880831764180015255212622229121102071983909248444514933667593985646225123613765081864154360181874417068841589118531738794717697360690745401178558895981952858593711167634421076696095119266570041227586832502527936908482914122992435832091853506833808732157386235447711983437649702565626307696889866325015664761223057824168283057327155612709467724024219959902932888345741203271458203966854555243525189171467976460021204395341624178525968626227054922096335390348468901435730551581413888806260287067434322835601877749506469135707824259478051417601434494971446549640228376908065831018731326069917918732192376687963127701532195517984163914626451312479798174402561553614534154759553198917142207918955222974255496353995061297099325946479177549854996673380878920609033013664604209815868233527616872816862288287747425558641028587030385532292241094508909160685601650019152161779384151923127110545883577053815872527201647890911998545926206764278219482808653394561139458901868391747664527999552505262011731720891129186441374996662534556629775768446507070726671504380370906277011387322958781486823864393773481663552963219596384293910179165496468075163322619089449796347280833648486176812180633074210774044019251485943298995132536978514145101867790738073363195774632422158037309747137362065842419545261816633575316877244685157327401701215812148534099442262327080811225368427408122756202104711884800918604147935791334014759433471856827351841278369225660103203262482265991397378808061383477415769867933807912337842350291359159557219923540266127323214101253929711993135880563997705880066440542781212468523745229616634906418543485064242598389033089083484407613999202223246747394633233880755690823228940184803032576567378436562483519616138145672129525821097849701889174917521004491407867490081833555558297415791870896857993917870019030683326706455561548947045560778598884144334272015594144615362981274968755074227327847049452435046153649066419139245052363718906129791475716955112923814259696905075140350363564853749671928994799355542046987431093926909923937000291096194165866668837618085504527977348761405688434181254046338047879044331363671009890587915945100548708798388994121478806042080750643370438676062155828455903375332277156687048105401496596580692052862254041147172383675284262666483424386308695211211444981747557249119072719261832495718893285932033605538927602496140611016818329092981538580498221133088126285502119663342841680942547691721685998998951784525079962844583539864961135477632963044727629909822368955845238223125082571836035918373842563627560980437642249072982745754580870722050332096198901926802974803114167775645973737660280289981540271635928620798229654856289298359795922903154784469058152595614768272038791403224297085194829784876164703181437636125737945834536083657216131409755922166079187190352351922062491143181878697327704023405701331975619936329260886982088453204504170263419646802378552910183275455919084709935860341423674154967119114567824140663017974712440394925373787210970453888987830319587454206839484540907480915829627911691416649784217552184418150419949065359239294090566629796344542565499328462898689758067626362362850366109053077035357105964779720943931115968536340845664046564448485564700404940546353409155324828278102131050038934108780803069585695591485131690442206762984311041325917467908208935367341958407230277381854263810223274328733381333937449039116352594967276769287248112361266849866326601900108663007038955147692717772569658277848603390833510055056841141345278656023298626194086123905583295790990224213892900608333341839949684076985256396963822587142484530789407773527637969602806944863891454538487560328378756871749221850399960723831785024612255110268900775225017220503316013894451256765272317161278647782363910905506794211975165197627565101909069316801497061847565679001773424440470235122811911965813646902361819165509129975592523919416777037803700795248884262941154021953388247354684783400596740456827001456560398149477502269334563016035505129218569130963510703497452472503886052001038004249122292246157253480068627979316259370124674687107886495592739979402068229729814071994549218591983692237671639170585965798698867889518594609944738542995780404759286189064272135346680599009901413165137463580146517694763085259391453696408203546690905341609806194061134980685024887346990826852175525911893180790142886704754726082173066607655524884383851990717659178575580081759623830032977553285173837726418073269686390382225800519313721383557902595537256210601711618941899411398167224546568570540729642961868189372824070039767881465916313777096327669976449350458810415969767757524500581225298537350172465284484018367016307173904353155265649748986008487717440251826056412918185781040474089663364639684373176942526200577496005296928428079035905556161210937185869036415005080583278932029549069004266732091793893721241983935268361488621795063417058896026090345305118139637853169273114345286946460722265329695742756292045942517240199318790935339132355118783080589101675506266747133876695097969392348929093257680822577323409151184913018471294777507196655131771416401437344205367733798975847255979360823963627291402732799399554371588005898597875853046263054426293904247331233155708448209416212533207952842360649258748877444743346264850661160152741979959562760715208835452640144660028190929049110971382422580185486065845915294841870139964386131873886968449306468164930821704856062312905634850540974814722775754491385918696223518742350052193968764634639026582193336510544521877221696978896520066913027191859345796067520184244888975692872261733569043775622629938440809539672283550949792413463641954300956918444670908498005008838342138489800160716650526347937993237562988066875224148667085448756366474694614517792038887027376456328180186318490179113679228792561859835812355748363495568034031765864120310222124863960008057246230074969742413298054286944233750102486686233644209640522433667700107057464019409088487778642664949301925287083261736433987151943189471795519033606569595037014430576422385915788647759056790622213377149637920382226546410594252097309614059796399962067888635380780240687509938241752104525609769735735619967907546948775454576443033789112676145382727250678205716041456672813021003776217147124183002396898736603003203259538055353289348360135869192335769902010156196630404313243361233377505645141521420516721848517786959615230318458407455018379004375078699223283539975800854468768532877750894672507364277423277027559673312366124755870336526749043557207846781011326790034246841423108699402662255963562692423246560876248509084123622945973720690099026441610458347805837073850145039028980336757018449132898668861754305296512594426523637459326182867263227135975438420944024291184691168946619288259098444670819509978219990479196945095853972936271429614111794443119902837585698178925811812353125697912022037939552961376664135920927581433002349134243152888999755987429904427922080363842039731748042163624433755085545434713585362740006642672109548813656058016695817096102189654573983761072071010584201275719876618977797636978771811855520756496644922695432446110852175573737262272275582451630562245967816906827139121027752472072278354807308337947344940031826695317372757515952326035579076941372788884090213030421282587052728983647421377759405771067289383351908957207190321037335118709559558332247008944519520243456445884637600594448243920938154537546804200098701096733530254835031938805954196769272943465762040591337837010136219861087808468012857687099824361051351304145101009081388971926999743636259117289409827762508032871957212888660477458726311036075123942363740685282684821298470441695687960407980210699181266704343263619702705406028806311727196516291931969253755614961069284498611967252559388499319173710938245550983231386580327071079710408588866672695274434318249228230606131066490654840947652731026555577501410552049862726625521752882027464068244828130119751023744055156794484454874149864044144082003861374408812219678241649815032974010895537204381202729452140475074565663739211096473369267394139009622593909336533900907988745207723055045980685097882277830224730240587344755955876348857259574002147269023771008172874364061769317470666584467278606608304840466369340483064615980472038532045619994926546604491468179315934849917576451975244702887122142644115519586897555574326336134366457652139759257583449061753081350374945644530458645100676103878378445521649478344225303309583506148964590783483377990716131488317018739463670478583430139280557592954311639432422296366440410356276196307549460563828518451636758996622642484014028544861197255746688736078440791644392648218006831202873359156628843707497985457043622276744645671365270045081952217935840623541375309572437883186725060793474907670901826983597530313421851180096432308521029280964867821797571318811023512260280237117935124162606125937051494480419583630742279919082607590297170512545837560987565355751223167377518662123388785005274119399995380022677252125033901499264161303529614583126557968039479590538338458255694794275795973004009613193729975554578998799001089981875826777973137419911035118617805948659804403115712528524381151121990419134319322825146126204356809453309290473951874385070664606250598722118988330559925648857577266275589100150697479171910124928597263451764299465495794375920799920347323283147312152566194624081067141264823169176997696649922103735624382295965877473981630972055374415661730124653108223541243065718114090535433385881709865561744721155345857482932285312703046756819493546400997694515272583280626995705118267902608850379000012039318635442177535725493162316911314124309111405109544499731448774817664509277212046133166544359559375510830790930204997472356748740195331209319297832718534091975570553121608330365276360079828187138975490849556304282712251080270340391562927460766696423419638850187606903805400324759696842110799051277193293041640021283193394147858302867288347753956877734169512015233030118962370834586749743415509186385496814327410352779354655054710050883252580775755093844333486805518211988621771662874610514580775272939565049752462651621279616054262051868580462661464183111590734250427108310625399077800429154117238872071554494443351844956744134135798931317576655882081080285475071465802566903884828256138364746579459108441088654369818052717729619992173892979306849526327495567621796382558053619050155639536650152075251264787027054493949834080817266319180356980743982912817107230638966232434120580787303331484110216999592992163118935517103545883058205985855013628447144304803285249211131195968103328333667858298692831742794052265066022326520951890761343040854486196046807529698029633300083187071613411916621542839874267139623761985458022589811217470672024602529295229985338282744284136174265924760234341873735350475291270817409500150756947435998488425571532697377134925376560341790819177874822875674836655215182741270498765293801877489581215996579386247233035644230505393023507223212052295120036546252574308902188499185932584796702706631700223185696165939811088732097781423807019757322140135621316776750567594274938829179580712664971038015653050957891734325184140375775721029466494588029001040468331536578457576167108508105425464476196074918577277241189471506027686708276933997697153310781565887495543833161404129585959099586353872722310561664775716620073477184041982289872260311469162578029862972817591788973322240605993415876542443638104886271445666024424216638986862102970436267417274944026032160050115211925872543978132641152348097852628322711519082786542253672546444703229197777131149115519844877427913200530584341850106298052635683679506804136017621147034918166930474595508514220576643397207143453006134282332325566462243960408965550738157624199500080443559593846123681301034874808454816616599380259975630620760634052403027722848526422577224779313478951029228337081264175502812648900943016465004549679175819803011573369135842121293898252161397734481208016441611635857715714334506050871714290827234842252111296392846967144173141229123537672720610811515649936225110367402005325189023168156637618345415216813644337698253928463944502027723409700079073865046655315224945800086574031794128295547438077098184825202015788060833344489585769298532599464914333552612491664002250107216289772218209102509006595065839761920800821057509418655529022754391036547709932538088898292103965498169632779652456482125929029362591069771351349758219301627657281436520861734355510708697489875202735528989366519633484919346325952758638271693197560729262482699376238583555012594153677496080917997705076721399347090258471353702182907886549716749449085766786864973777740763468447119227039030770579676286725374997525067323661267439151600929455702353389417280851630251033662063681904916130490113127090168532517667127456513714845841065823441401465913367617052636959479999279561366491355678340212499914206511715275026338493594803330792596622915037982869863079673564597781377654838426757371970019303349833702604492054610773920214859764534585065014649368576008475131232790532080140054186467235075298050240614637604470764370247881497831043482288927809377036376307249700175932677484465064878872695577860065927945627081320881252463986029616893067841559845705981223449395141212760697134255539485749130326996096266145315243714669250255634332537790551588008465949735694045661208321499231301656093591122450517253857195855076089215602270549289684491662729526596803658109703032512387932450353897399063901453685360146715241849793619814732402089734000020200768081425952734859767781850085742003006691811118065829369926056101657365582703998796227176265769012698250692582975756097668397615222871769384474472015203817789110501715185878886780270683023539918242166709006511438621367537792969129347363049019945802013260860129954391511556604502845057976879833172220140735184701888054607529773702448199105451318445828790953120018996805372255003365605821791127134773732641064779381701905799813632566403356793234447237123179141635251988585887098255871828359667396977965329536327242187331374466694482535577445622594644538052115423184644282855979709159047284984554877160554248387842026226271367397400738995044618736180406243684773767043889597726453250838835184537081394635376537548316196164639656023394697321310222566208505250995157168156038183079037729927373988611094227299024632140290897999482810115130894602353461004396503116954773159919859458436883827986504672401163359345683838745322503170320991881983885953751701453559288658087736245826890393278134717447391731823709077803384730588643387065584211236846740593671094926819141164284468554840611708804631255948932345474412022294547212293181325225287301454928309828109533461383529179748616993572487267010844695573151266600305409898332616352664619873251615413327291711362950774354207610632752431818619845564051871201106603737051945001849385849818760276642898595448625385597917697781718542255934957044310183048875876406731515023685699079787799982100921841421529266446008884985812516815332950976400649644135554026146153662833353257095917572733547723850811523213661103864264930185566261914349180302426493009890274636444716162022231127751712188689746256974537683549118985832148376452724476596309888459882337378988138123299024573433523210839445850091695902674299173986749488839704878975069661575078456107400342652248575508271136498242845929804333886241656868559543446153872859121259794925107358248947629341864999133873959892494190507933109917206600439658596424883000324389097058270807775900256871714190449729787993527481519234454657788598236059356130370344352575021297630059670381685298928443534058197401826225302041756975351913891914614335397625282661007121534944764668684082741075802167716700352722143206108913325538355742074251382789398053742514000247790333205697458952907684276175679173628093176996641277437664217179358186090852719243460025318446228012022184799690509990936559207515616578551024526192990066207239024354918840726078974379245843236321303277392309350922268219781099046054249939207189661105420167886596685358629871078886170960664081664683280297180720758840193235650443210135424658147778574538481135768951200567846990287287912637005933532687321881689088576818080623585353257421137196679226851911769951080375651687802692858046979450145267501327700825755876533278281735272458024385252473078078973643992750917730529828990601376247728074447805288518881998679169176153178553582521628030477376418874851981774055771870774146227262462832069385377805691855120724478621784830002870698925047945743908273809786860906965321575594627686571595790452520173544950327172005421522057080554495045037420850823666613162025477912731221008895218836920227095466629400019183306562765755782899818395813997272260542584535020138030815220573082845431057151536694969096421470263589754602067132037333814734422457238611297818820929492877411859370420021970541935760523958629260295750488520687557612274982717187716229169206744284099127354945137746604155571726002164772097085087504580356158464716753789037428255924473466510911004609657186749604826059477864681529904420562085835678592401888468383291442760403383477312053068928626774987053590894139187430743256550098439279212218237363161016509957737119736734123407861609591559688770805230897781831663976345043968156566524737288496077861720467588633003184137591479645045075187137179122533410328438512625534634415539402036843090893471052028945173633929551807264170019235419434106166703874232545850868814556641689769755564476251032489469793997464701483460968439772612997463440318037424615208952999321688735182875179198477358998539845738969043099797004139134275120796637328512499665086761314176849755163186814754550865087316300276596785041345804354281376183081364688310547454716887694438611496102274982309098475012828581197998808345001220078199198536597534844674305774130172391551436692142296933443958028886349527952902603323058913278673981702622858100922474032010688780055675641284166278910329668883005699584663789931437541168335596924183459001030956122870775941420832306693866812681166133926177278219813877837071513732685182561624167332921630822816653336111002544917588866452956549069965852936896915760215998812485899659532453975679496802391030053726631276865180672921798987155562413157258028901950544273033896411442613030003403997848183264988705755632096174816263356051866824608582645008671652183060912469862797578797626634843632578700177295902127694451478772170714507497196407687617300073615073791600831397843709938268145395060003542850682248964642796708189977907297098611887361900425827120912646162896819765885649533696757644271694405203438845798610108748087403229948257157467524564463063841477092690933640487350475483134692971311020504318014505378045472043582957970202457411757485513276640977050019650199234744388343913385359777301842508935512344512902070046109938088499071578221023711833203390779757561260539738930419939750513386140822097590375142283018171002287942852680560732054566353999242092219812868620912937607768204449438539244748203835083464293349401795039931409408408271104369644608822492686511094122871212171059785917126852678227703784586666979002892548910395831874828340324284928518184402845253405639431793028061197286166320323638933109062833861517057099946456203728499564180618234878771832150904945768322625849697343501560072031403069002252467232727963826004709926500575853479878381739733643304574015717618401509371251891789886859299088363400274902010217712983280330316122697001201864740876353991073660453839503083762108729846869970489601841649633442565878394044186815988336091642222078175838665240429511674235529251046596397223050328549795174925924134753546900308579101445263701955444741073256523617929323512149278675820276888336240211802358707844076072722818359994932557849512193841948302806405882482108992716426400793320599679371629515561735689315278707412441695354818207179258683987224140305141289547529917018348699153029554274446636627183108975539339532486809291393050001158297922841630066334397645893306789570923942788347485076959015030604225182190355196907520482244080019841336788477641638613833289596974246138564849292403708201222746173987740351956907413149489997404029967992743650530194364688098830620605465065872616789063104080097589349102648321870314413402890785718808245083510654696898557798281111873530565270916438169793676542964569143490408112736214953963104308304931536402583458813848638372879542598607832583913278154962725130872810047706899906265635697279208719381708556206113191662573833873030999431147318910613439535445123160752865255549179575889697716463725677483376987888231592336047052423253411015208382304750406858127557324772277203662334842002959506482872561380272395540424997057733914497815680551803522789603545012435918129064575085508651175226533427274657562281163048170285621043352405978170797661359065821148020824511125654972259038852411756537079482034362037521475396548442501422937654757172416803107042020811194591634663243926735580977021815928252617215542327108464434386611031825311541386432525494702889062967270463575153122508668737347056743545809099575862537020653027477510260491399779964783438857762577834275146147848117554200123687059884692628636990331187550313071614368030340504890773604445563329848684253146030960666556597510687889899932559351804556806582884140134580926967365675695238653998563884410900716285739595442065259471717378811576879705224282995859229600422630336901099174974806402663580495566798157142488755322819469799588867427073747216309156176480517307259236008974195991478457203380649210850354331015941367118836671733686160211358777246615110690562675178976212053848121077503256883502794497960300725716177638965572629587292915682381490708642528341864700807289991493818395115418194785497897487598396664192511246012972173847246075992032601475910366633248551477381670929505127950094936169583657089021748573900990405471437471094430378097462228578306184931964496778530463232905826427106939815969053599263864899526232607694648855998344545406335745989437530541676257545988521390845258644099446375345663010537773996693335616371519889434392118344010554238959670687137626063116867946654280971266962738499943289382480467874201572486654992243465449748187443596007262797580078416391812382999160491952150052346213397578266700098581483472144541395690100215377984358676147714733617685031109731103677559724089181617688271004841379846737923612411988699089986334231244801214302627655557827004474619359715406058488015985932316934697284617880221470870150226247715015635228005505150593572375587699280370292630371679507667679498359014654164156348242052778710635166719972968311220722998396497482281808899385674777068170900413567689045410228078413282871788834640241208893127725248474334959365736282297504866229399544724774929199913868232181305390562745888816246350394809677052667096972698471876028266037655543768139874544924192859699744773407819940719750980337181090531139791535609978212156052394885135978288603270549305622641552352806684407952591766827484852865916386956858774093178955375977909384780486868900063459422139859548589012196881642540914513385058197832863103852506067364095682698037728846539452265488206629175720354916531988845106260262811798573433337988697775159050987657491493726837609535220310454907793589409573327693794827359065231002865033648195788096123979858682425047745235957093501294059920275813402469105883742126810260531411987229639793411554305562541992983399749118463100703183613132311449111064165944248473602527738220151331722041130801574310154725569075232803685778959698270236301483869873405233803165148503395340769393876649204877199539983222711451574801827128497829889812496199745126358796753627486222713326588253264733034212347971507105204170034342445476896495563504728220590836418429188988085890375239432987522123616486913789575627844903139313017796893154923053924513295434711512780117454173574757269611623804169202191465969034797309926596569217057438254366869885834750100110216401954505450515002186579770108194962647827423777684355804566627264045687904872114271369521254479056185377054422113180051609410557009723553665603319739226807297203356952137698448388253643307958676752287725993140562643677716199425965150017922843910300364382211384410181030990339022393213041019083963556205413214360278638086878697031049062059226957969017536460406971644451015253912577715580225476770410617395147159438141475334495070441863162036278954167456812124379651270826112702305426098207767367804160227778175827887535250797209830913693687394950521853514959446326938823698838572812961248969326050188809782202093922358349468576883018666524553700921061555604511922812344004700385877285723225701749814016516391840562463083940892169068448755067957337859415715197078211331761793824727444911687422381967361302401692875771078208524271845830711811332926455873806091013464620054607436883769659578789052780166832127713609402094262830887284470611358147065591889027037283399040227900066388525910438513193916114948782174724162242459413776902818443271071748659722213994859942599161866964563407303449145062552208023805042595738518098212797576226813028389381804935288872997799112268473616899410434452157058409213350270385116151616163108889933854842455654603484173742398569484838380533091861882469732731217366486562611004702803307378890083973493241893260780393703484955066775053185864215106241346670667080144599244805634229510556353134886922057960304127721426436279240696333517266442420796401286933813485184354413125683293399828629757127441075867245507834283196058694532751895782144836243282044536601425742251459261849891648529770777734413778946488267333155961634648796477783904701439079658965215796439945729958891246595425231090591264904525458297272794088835490750564030273563021182895306763595868187863409222542521888509849691740246472065143788947112189909977963527889161911600869617877275992582627245519339645576621335137740980566622286803143721144423733776136265868164954621038484995373156577280699516345841895641528293683285186276179125246395601180958240073971380644760363893927946911052313431146135549058897328498648010768473622259627287464655385256966198129379321489302026307074105793883035626375509916527924248519664600098140542649187241124435338533748613735828102214065086028034439427290969962609564074127598319969313259425827479525669202463628674251412269322304207689092263453813641614856236445229333635667576400657225473320023216839913109127736326295639649702628594824472819601496017104228752240547478500480535149497193168311550338524652717127967180790323089776247292495366885014790921745254985234487770029095945731366463237483180666705660250273499467991683295856267738047034577233868779463110063714571561598717218445192576302174802998758046070482155619932060190214470956973679235837670219161326346088522767111592995853598525620825306967898112347702993986118313380445323205546360326486465116734182813047563602904914648743427178542753917421513645820166451185885626129405314138633912650405523886592012063939782661656782634469834850091066374257485152016429714686516774341306804674332818373844778916924731156623133386955237387381861738907550379548706591232687599243580395444451531685254404578764882955656714689973290401388968764640439090418320711526961416326567528744363992412278652286391728960794028776119407012979302649785657572656175479006492263367762141370869776152182731239633936662372862820388347667030012596670514346150183883833828850116714935498556412529883797347468712391906003203913513928209035143939686692167318450876704474858744876164428610608953930470274125709371678585076652869398621630794934736982018418310104951081721647383605560738301687836962330900047083738401556718412446421985556552624128087781349413265463043073727567586183139356517408434060370200015050720332327374344577782904420586305409534892643706471758149355115891944114755184181744228298544394435873942739010270117813035589565865734470396983925234806399927773916867684213128034001615653473264329174741286121228581785852694461001100049771298886453514880702158462512673207788370227035451089239834581824093255107207045352337946339056481920920718289795721931383616620927759356528867417328848699143470274214677920233975297289507802657066330400434594483311096655770113150366861254585743632670707519706961894376795830880294974564558405173447423208521356901123524361073606886863592066175824712806579756936485877918795358280883073260190594658050887167209242445122543046713547738680548533242508378812584995279921777241238179263523458277355535802522630572017455512139628904305175189551465023799639562423972623073637467514991052981900013636773771874682301617180808916492691920663460699321340795797396487628797350234581986990638699760273815985270850006318382021163663611898788242583614043972162032916505297953712140118645192027700782510935177369013172240503265667016537505373191335491046499670976368153351109436884709304630999246816492323776168072315917016943905062064580792663003229444120889363171962572325527832483937179830711212203704656365897667877019679789816124149263949732832887014245740344784887197955623296742293371732421138529973657995805675299169671267811973300364403547857381471011834168960493561908989964955452760587918448247459713059807190127401076708886115386598671241140632216829925715321352033162105124781465309548331433469248373946722863281884195270013980070503226771443924537823750864041702977285385648970728849003010886646509842918482139569146070737445591461515852497440247712657057970070976736474739973324662325033546546117406912701905931177524640541803336835029130912420370332683640398406093725854207257615115877388696738217558716426420460611003998142653932776113048069975518657490522342930471778837890761089442921420739511986020218068487718308759138604574413693410315182746505709164065654659756720296790196640454114843889735224755126428250580022282827142483140279663962371249458445503730448281261866521817103731028550453097864243051088294628533040221098840580716153009076408071153774037039677123871545963286272481250670408978666409901941340172941875276845381661524728093970363935538783358296020222384720642367289253162283917548000335687924311440698229595804657386197770371423762032536815245600599254417594919520236611891667410307610755050182419638013845623970290533041122559129269586927332854963334709945651622317264112194966480555917346297618483646140934534778790048658698954074821044088057561610862780729535367808306953824462307534021165644159091496279839899500118749482587737124512764232306069817190562997770337636578252855794809184412038053246994980625873594337896708809784896900640649193014335720939230247672560944211916972781423288900985358856890651471187297375069473265011700644379439972662971267693391311467046958736949508567318274476550842202958138500519226667482978805253202803790532742892154400051083780679482619413167753247497772721385936218508194384218827213003627576973864879334264871085733082367096727311568903592545518678387951681318143261972604243637244657727729004638751492691286297548491074236020685230395067001804650854930875003841565418194115564731031626971674965601533710614916202096133710659029470682734761102233054663646416529746003349237971701473792840543665304992916354525005743746736723710236379156385837149602424604485242368945032942890632983391061782271348662427162925108335964501696431667091238742109346009472725266434394955105504664815856150989220467392452796975303571029281065326353198040534817631970121393178433053724121494382026015397191064756613603189382175211477380681888752403198980013126928999059008130119156009009956320745900718083635011271702674170650792616438475531810231800209826051372250615122967603343528787924729638241234737941007834679950253536205021093521443119402897722123870337848014366691968047736745593700456417758023496270205125461376367526389956059224869330680288622469533666207364578138553236416785845835560027664359339674445436137957400009550657391873374571479597332645877254677753125768431866504851722903369528744878406499656076108712577250584657412003648115297274048018431591586535889934435181581400204602840826945926223645220466275662508281202018870449200724055569983965674656053850850674574424761510846127863012551214021198715197750202340343719864149136768217915978000615751869145874036431372732680311276620794900447022645710802458331259470352153101892605214820919258930523717986872269409418873186470068848961693972397129088824910030249482809529754538964868013166084105488035602367931062187706108331598569735017429739393413008751376515932291650787148581986538255134215351168766654727349122522531817179379828323146186069868089462111410117225316382690462934200819811874071970705403976654573196328696773946604980645537998738807368729714669779756446205929631987823149384778606785467902878498540379450983394433743669111124608450830535259804037785663117204041681856198388550525301111939875229570683944218205087799079563148934004556011969195734123982116917316936181704506424994372245279600294984973974079062428814085638375200797563047212253642045088402372532668513427235661239813478492569699320920749546955998757115133342415179799757950016770675206569076247055146961195919294582004453906510701724309721537132808180411182399860977596217490391827120324011240163071673200208348419653900402830616939556355127627463499793603151824294594969977158728174336763569199717450307776302893628832055328707607351383439981072156023196321997246650623893352258719982784886628829206100280984211915306022089629369860122895777358376515544889714994580792833103022117431475446658189100747604112875534175438331435437095573106008584042567622003409023140827084210960877555732888849138637946252912530573898831252430348377918488114327679244257332546742693761166629837085134151434071416061407450388741008005874090566963953069828354467470770847176114982354386477011006964758506980941048600038898926960649380055427345787336696993687808478982885386827865257300073387645521531514860984701254582069744239034924456746106993374824338893180831857484931701934653942769261020759702233741580106464295779205433698376723403874832141844679004596872355121823866574172442213933461932060661210291779186136312813188468186278952412260764050528801655066948851378287462774228252018054542449573323167797490699561469158302737402837720782584671016250341242477469196446808891699742518873956933995221382669373584099419521807546014124222700679524724503999023999454220496790276285604193157351293635658351418574086612359481516845380002654078732007689579624181707332505242349975207287644597954122972550317103906470048294796049602582500761689711299317245447455404290613906487780349134676218806247006620247354142137419992554467862988819243305308964739976702476576712643773975717573449037202132502829212102208654017194143465562943134676376383564156135771995426351951786359371943884496082659714255816305778130982352744219312266486920328142921376539590488039015609266878634479196173438071296460874464546016866682912269696160274117141608273518327241624227461524416526816345955443856483596488145242730203553595839300077215530968971304316020256689477121060696161422636320102577629275036827427412410988616425208771053731731697187466562011657023466384470040621460980660491638117882658169015435403678155071821910505397258169814982761416268682294450932545704131034505196364129206888570893484420856993872054160521676568967832721053686913360553220592619628988834087979790635819222636685838713500962818666315106914205586997189773166385216523749187806447085447677678393276693892065663187922655848208243109428255706280660229036699049452779893049117917025655358157466424182224240574025721329130063453318221629949412545339991499911127169402896260801417251484665164744494429675240659300978033308015373644245960095223122190363168943022854900557992552370203280771716149230178181653133737122633079487289584727906104239250339251083929791197603988658800533698024674028294093799712385340823333396465330028232944725038886558777875586894780548774939948538640672205055377702698277587446969998347312334962309465734899439243441828604778177544286188703527038579922487930784737055234554869478760787475583414582603332833228718003325265790023464751146483620605366166303167247391708968965704596472529006426574002796062717249411210644653332455199873740503001230311336848025289384869552925656315739429829793436071738590681063548433212272879758240729905406131844841424738810778432654310751511408008386633820305816695068827965375252127253432021091208306860320866266581551422930841560446728017027847130513133615398604645596992721350241697700461096470224672634671452828603814112787026706735978093487404275657745268648937643917792880908260762953284691991423628828825389482742528856783763444180081923114769719643515626844076741385620705150377600952641616523812631299109500008034719138299565935679967878865961576540595764575175269500260159453171988716392843223255846261956679143162786165918378080784952774392823295535051961883829563202289904266903667578357386913996957202783281591490801108973031691686634511048147348356047738619481209988386677442635063204330608104980883080187898257082190384265962200929951342783709343680695871220932893576981820336351205218890386587956822154657838582476040093125726510927347222783791832139409863493891878630764022118887324614956963259405284903699955676216594149435647116497083302694901962497677502777414636792227465568750315118331028311289448945833291671383419195773570178379977943415297725220109909244428610536613445930870850401820638660236473916702550905442365916306149920477555563595076881954838208263644968770042784760880830380267984154940585176206303025971529300410186263367783857256251935819891892107446881102460536321598041336228368925190106593824099115839709565022658143894799208977352479098187034721603299370691242310498307600726037612256047035206265167486231916868702610928483283326894406922188602650333854056040174243739745028579262633245717063091416112682440850275076370766875274233383092841325431144511893270591559638900681854824255891735214029368258497056592076108468071914890223240089943297696523486790823509068235654718290419893900759367819304177303804565612753059813970975873542621443718281698685560115996814839938621847564601769300674302750748586751337319393416568446169565529192085599333868356371142934107945253917118625577256849671199404894614273998149683714670187983206773657106359916987576366561254445891763187553411888137626512903296741292809838743872630575576475122799449274867059078593665111121282676056740363237760388143872192799271974894211399289260912552139718997363270117648507717248180282274696348357983044414277485567299309267364320307749664094688316692474174613821820037429921146085554512911163090814150520024974451479510890752918281988950050628186235165874777837573746988859259730926596953710193333361795834151551001112690838256292600366830061331769656280623822404668968306234114806383078505180357229755867731688471187474625916715127855482135540030364473489873196631346998032623297762059657081257490537193211506995396552254033901508901310814521787075225128225630649407617296244214646447879688693605261564165748520328171240986908416677561999355279949060592929604600783246657170571885473337114571654961312525844825236030103627865018662775463012792268623145528288733439711355336490801069032518595222459346172237638423976620052063935697840208665852083690711820959572059004548412836665964819449256898869092660840537186135011031261750536686845296898655919054458675976397309030970392855146879402380382999390647808985949179195423893341961838916992599012575134050700429503027463989103575584912246407849307264361379536488496453994022406950277326783516664940646685237820815537644062424271143540442307587059966867874046606353810139608742869405376556033314950356587749279591138814543483976337116055354730218772229329584101968084184359906939351649307893995191890788325744182828232782545633010291120189970609131196933067325600695733269336322392715849539759233599591101642129081961427470458029000411755585233461592446366737261693749029577774809043980432450875376633580241500738854613731528667175750238533054982234318363393387223275038459837047625026801055789714318632747304629601717869451353092416904209837900372555039825182246176304852737133063840375876212898082092477307809737351616491274351420411050263881325583309902380751235363607793617823494195778635818613092508639330889025319670196277024129902448876475678727023348111672986468669327976447982089453515678821228271927215578207295676023430757692014371015169575033324831344766200252038695763253205277054138053620913055516518558494080364154356378323091463459611877986597084622575984068775533756691751128735623117180568245461215996085220193966175894257554419912400980607939220106670878004917088802705976298680925121680812351263867440903230803591438971961196940969860991627475207049249510110987469704721689806926586536389589450549819257736650410370375498786532029090650301557847898682311280377636191733404230542800126889804990095178518240132118677069090241773767049907395649094508560981992576065185666695563376122503281362943465098836156013808905667869470953065318614487898316991811649122635190075584965242615836269695055950277675530936326737375031167633031192230593869170756725538053133250525500814187907602380896633994760809648389524716603610395910772336398997359404841241317941320459807909323637592328007591287573696005486057602033517718389807410752040252866419814809106355168958588899936338715412048945144560753584719621288979685062754908568637990595985795145296482340314207981573284724749648237603216861932148807482792944676466398485005803527985503463059904775457941830886615848476656064587345812828250036535260733824179924919930777266812698306057122251603202541200696827638628157688148701728532578837451528779558818762090587120258109951169469441801314690393911038267785985431881125263541455889229815260951914023865094200144505454059978310347734019857554201682374317186242165756110664550145436199609285251473212932935522093447581858197784506537619480786043888224059767557834575826002999568708223373343213456133275247602261809092623812976408143904447329478994045393333698815337559676598998339580856647264700094144346172091723972418202173630131995844761619142092531981228878295041885413251051341657944408363812596168631763490692793216609972050220974247856969597559211292803727153416304256694599387722619280111334282003797225718216924249557865955742645479737045851975592743373442380113332395137727724996022716730392391466961181555779484728984275945011253566854830213923277193565264512130534188003902534633429139499475694529324892002981564785953480259575567742228651672267660987412839048073175474216638389489308339450828759390828067403101181081171465074587424898554525504171677744610712272594257881332245500597374552948453968438652270351733468879999031196406402323896716564617819342235443215952858584727799250612747096617753651686133065308070065550630248431431872353119314006210444840263241239773907076903426057455605364533734069318927903274502912490428004056137831871452710889525566197974636187033132511423914834373737431607822248829254321045568683062195247383225583416644387773198598109227707435820600117540371975165331977067744797432150728098141772806688165598214071418231168341472822186166470722776659543967707165395882198936365696720241323401801552677882930166809414828855956118306099752645298539367058841375289560399535837758962958042907945246069708642826673367750709958848564668504630951509977527493445684379540476150774389226893883832814080087196087547054070511472306426757580705290366141490032739242662027596730118628529240213697463632583936708647273054730685709494036724618566370630124189129617079845590314695537881818967168820972259855510240298437785743572495207277117622597534601574530976781934003417101707011641189910543000084203861251642180953087101813678979015516764387215073792770154715087372965364007943391558840004589223265274143073960005128829705885215564906265986246722504851687696589489252197876853578655757531202615337496243230854705118906026668483843290126430215416898462472978822792058613925874439653812491091573315364476770386357457846771074221042457672419450460468603503918172211650966322482061729890567550406314109482598838444026502220743059177296282460310558373091506837283135003018728325284514399799765729231772678929453881706717033601903787820077750322921185135722539527508874826322613350471605473959737322360843905084071256322011046386766225315668838841829344623988457488893493973438769496958496933671199003648179032547260577491303864921648142125013358419480113266304765505593073859979927399240784141086025542968756325208995627909137696312957795574034301633981270738416266319166515011116549886095221819110132693058776787171472599121680121097369016569559812038098617240507686018789552112081952162979484672992383143677575389375587440631638729134469362407013841803592184835237018118628905547759936598299369041415598131489658280904591700811925995084302509280019528403284251229201996768698136412931099795343373830102045338512149067117858982514991753315759907998018501790609089384209214573829242513026011252562587544439567966498855730848466364771162859690392791935495361292739443562409620277770075649774231844904200820354088814995796343743781155146549624468971669458452288290004910348618320975014273329857038794276565702958006100925953195422437791595572011609952008648169885364255296919671204119898655558292440770349977678895649771148639705693479160574469653980911320930776849762622368117619636141726045656563952362932884376823724342010201792620366396004989929029927234846783118871115529976210961582099240934992334426526063619513811868267047950603460545791493478789574765170986458011870104768446706698301252046476819809301706582648248983148550665740713301858673838369034232023840493219053628977862440018216254624096400725772259247443306456321518185793518830509653162524717555076382853469586634129774825771215395202398306071459404339512848084299952036571503418002290586595812866996928409676157090930639072144990230064273773964817919476780187222564903392890226462427176648300903481121067185036869468894272324019075090596036491018657947025922678979123165696055331778587467567297452169052022885003316336348528977773916655364417251501139802720664610966181995634992690236226499835678981475630378414201564893232882459693197822574943323545378047806481920751519601270102390311447409603301679924492418324988123201550918620908763433064527837867050682845270478272917584932972282456367178127114788215405027637735136455893082161006851892847817063576358965849736371600284541627981499161310414011285370843792972203080219683926814514949089733003480395348836749589440631949857715489413007626220062982408597346851905273763388521592716517857035443627596441464002325796469603396537897943835475571014894540839004737667817039764359602842593761386346051981841147552481899354851770086632020924464924145350542451562562884209441769918760934587318836131590659467733636808896938756458770563494364422327779616253919405809659801023517368674092683821198002276406138764915441658152675857422693384463486718541665390994094016931695562677740607624473780192332156432985064444786013813281325565587677713260476592925367373448962381075731433397915523881311993372821765954263470979147772509334312995440167999724729852149966311965680394433423898388486141310557275119888855026802053653383015028863802500214143090915248731734812056303374910813573389198840723876051125671977524871748657035757312312079516427842734691287796727072156940356006812394141458310875779011040907341492921418056405058535575798296436786522027374898758002559692390259116118309085286250596949159477238589328704923376065427251496029818247212255225510206711728321079291109920165738697796429697826291752128470176551685202546057613719211778604316924472895159076826822374693501984619912072988607240632200398499046664307581219002880871165969074005534698614621037612443562287909270410658272388064310699179592910708351040487017130625134749462521911759606853657915841172852812746876648252920850248098601449459587629815319786512510988797315422633803822707262876263386803436517179876554878031300759820463000635945766258110946109898607714754217084168844714902638480526455763188708060368753814080831985141454447224654600517172479983545233127174877286197156189990956067224742487635589735451725172234185887331719727644331452281852417274585028496257158757146140284303774667367879912085488940963873420572270936341971759684806075360997970012685232813449862346803510096508569225694092583862972299237966640145507142119966149579453441582597192879448232882568899938101717808292729888777483854487513602342475640377921698911067373873339103251650453560591811532584961175987849171651089801655745930865486121356047005098760757352281620880022357339466065103043382554389431308734273442053178348612592765255058916275133990157157691890207097083000775522908692854987031331083559909132852093444737166530966858726024834516086913366617651215603333579662498685313804274808166635192293903687424089026333180932443979839243727225699538714069829533866533438317917950210319539259037054393502551359923661736936815820629058382140127039187324906406856767593347085378627743168113748744527907085364286413123590547538304931811197651976037930957354212189307571708628306448922432953008356550687927171084122489889360426807445970418415273398558561344967488504782155238336277297271446926747958087455319413639856128193841313016217353733261228791344821706513904959703879852746907155119873691783835807890203250013789565099033461086274610407743526486621461878418076888481975025546956008483517269072697619921835642260214019619376811004765121212609497115824153199497856425080390304176435154127290392276943223148745196036624794427621999909747817456925654140187275155764726347966785334309201345307750088512522703403191758554022833759778301486796833615857554524847641048565595509028754727555549940980278640879893167191206067837747839769238267712792853216756662801460732636060001293981277189043075216931144866112522388882959995979468401374137698842252797984362975395115322040901297550908723375413233094502093488557939597806409611641071121179606355809217653343869554601015316103988608297912540768637416908563803862516658685485924187866095645513749311990510219846868433330183307220617441677772853334480009649258118656370397092114652028759306897500375764986270749618884727152149100643535274111310493444188230065333332792226352956669310708888121198992236849116073008911664060330416610963106833205744286000525944229722070694159885268615388062588741121283825381405468855465139637724948946131798764640541858325835012637880887978679281043780425777377914340110634407895249937379779364515753708916877425997260335727640539754020033676636528890676344596498025925632169427513041030624672053107749384654106150843420962149254095508911165900495457267526186321851610357035744005989574429921246999405590704051248369968946942261763845116769630912892076348525342132033561863054427869653715359212782678056839496057423886532046072762244685498161894835078303261035275336699932708047816876781689670889166074949897238672782174970335672956923641137749212493530907858342360930779847455583718466422356233390819946376788018882469678837047857198125903516476627866508360354525148338755288417755198978324194372277964525272544391033015716397950673038432201997627884767866153021726323281893230153701597387392966278784845508415202101283626503567116593384488180222068782339274453858939683184662027002916712501621951644713190433502168010070772710736987982372883193549971675913440734047049848043549501489406567530562489454836434950605203800674176968119224168751952487656173571738012424117037397296078095371072887914824509262531429918519540899150792846933053108564113068396278081142786915470443946945696512057874392135712451628810710703238902034269473982466544784300901747702308869657478488729413533281673243319830127437025449140955032854943002433444467751814582625881372829282624307857048671157311504147754722637740447594055737443669942801761742590685650547763811020034587427985148032223643225206431299253303048279654245638812164155634127587491174829500498841566796597463856311627666947646831320710583740603774645949753664291173930022282266909977636053325947330707068538384220330561493983639634382808117627494391149041214681644681597950070824814950198053051978382968694009034096984263138797741270289835853892676188971042615106220297778297496157785191063794137162826531964267856293685451463084184358700703446400428850666764189760779069443490599077201122917588481517336077396299694310896294844025045509682699936097898668989419922723325095811156427621975107979429591741676129637815086718711772776418721964782166483806919569203320160960190761656028878930142758516143248567110001392967538974863697484998741504542014066623839843334712173834237177111227683821350066632002732405488417143658578361623467657839550555597796405957491481587335121945291931721734853100280510734375761025886041970792639700947622639203789275523496917576535062207076678801454954120959052581448671418624088780170290322247582418179579968586895267690419274121599566894350301168687866186870690676625972821769828584637220911797926431342924248332436580824045185491243188545824504099547961070172579431238759826264257655176303314058273377003337932912129360087474279395387749484323193143463670194785038000298174357304227037764412901836333079578167311455630854707613302725181581044285849291551200059962868625046091474814636165082936398000241438065217496959042055396614149194061034859945406991899959357845139780854144426140422625676735839529131285710862862224753288902432044001658275745640184746923601096277050891360472680614093296692690769997338534099292559846010458928532290330541738731175974287122605332368194550083670377905989693992759557250761132111565976583078458125849544905418973704817962183013777672143907386737356196666660242209681293103890905720921137479471266528633546469792892054791986838164386355415894882763519581263723988513569888032959705360239647474237830766452364072307246221912698891344638355919704698523160305479525616998493496733981972581296693355387468857177437467712456029497540505583488940058148979447951821823763591787729383469904110664042741219733579206466517116109056396178961098668872114616075714670885038135354599383995898745585730024957378734240995310248563349862631400619035193643540244210684796923567289622757210786619744439525684090899172927789149570418714954325136650775257731693350497201571941827377860802294242941767734099573287115563740153749553993434123571778202313163306018140534161027296969622766856943238283340259602518953230529256662545707920078762964129543600108511737083906280265882774797163051285711053218854673424197176201272182041216489312029237068536972851957409749527825308060582092041654740490660351599887829971354187804621566998311285339637377923219824951662939642972982849006877755450044197540364628380965183108464760539826270172883489712892912082947340054177437994908050686822742269416322354646160801977925042424749923448370306660115741818337111424288115059997217929577716592201267759459259850391611250089337237920807498531504974681007100590246034563514607903335240929604024697525177671384707572055646188352663812743573530706307203437633284765499839158316560070272996036471044647207630465935904758760688279163186340944116909980753026008263376426295020630410896755054143568475724640182013989746679808394635608580212388714487952174773859652588310011215940318432574450982568273085175322589858048209381015010197449743470969261588318335125226276177154589544232664885412633427470697864512979792258364784062584886110599620569648379074028169369733791095518992167897820321185952452232575674793589200876416158680608409781614986866612346169254435405747044583614726872435418858701624013417460744490943380506458195115592679035473605195444095158872046307817114423865476032105275833793707387504524949415932769704358714668812090370511500408451431332923939606954017452310614381327436967982672401224566425518978297164138312440999183345941886383731309244160637898747621514552749438686109691698623563761796290011387229621866354546966547043415183705536145544495970735947318518615222577871686965011453844370405899999348748438565642834673843534768730106598954187609349972084106170834480970121035955128440392647594257882894261153376016622227851195990027955101294827881627556121871589413200215785400321190219216563825122557196807012651984541741111246183491495335958863609212316524801109882439386019074233358730173430784360114333901001605007308596691124814130438951889830466868475717421521332100776351695673281182948558067246203239765260095841975175530528234798832988007502578881718969960193518422004004403011380570517710290275164525993739118942194832163491757166626682030401788674429758949011436308811916020261768487054628726053093155413071242363432303367607920550961365162081880825404384951463201173301611304815511797244849009312403380849465154287099294789609859683292441830442659505669250254141968198931705921094383501414887762425338593443039373398501231098297086160631227161852972150109022846998666532589236952989940547604059675423445994479459120418218624080798551892289261379401617787170901040733012149566718788439654648734323330000167283185044264929805085778512697482820016985461697246780682027193419091336724754152385391675263135612927592116731620074855415536012977363241789148733030907954572830526945765867039863327887804440957297847197789816412723450928902116060084007421723897241072923943496377846557048025893638706486550956026248589993739146928592654385328015120710272256707181983723148787281180435925228189229735421877647144448297728287049934275344330873776476920889442773182444320836021952344768919531684535797945247400905161535372176050492318404126267089988302861767009270165221823112385184654306332995254603245162315448363806647980547956853029651553275618670971250849885956083138417555285212728713211027875547679935514871854146383039482052989923565657265630437151021639040725799375851294701368316407511138522526861879154074291175642841144960631367178881479629717503463745725513244912098025844974199638572358966790998327508418217812211170978150251559705777929662077597686560589293742759911675037287867911097000760635984182798309329716487224160331256297738510604504965705136518473953950938654953870899122585486091386161580302792003123107113049084755156991571073542154501578354672958524702960629968114769095345946918225298438644285035014664224595289686372196322711641083914215145025236111106009299996897508765223789365580068007642567337366086756855246704198369280929794195415184296674860709548014827180822320672412389189272284671857347858071293911142879495463651007997665685328717825650832220725059281741447254369113530017163518009988495186182376414668892866336659063962451594580238596724628989543968244001609414611068161883493809419483582077976316423430302383137813412465174218287993786305221802454676394073167546027849578966061086882629243414673121599554750609714522623959107566808558084039206163390643781102405876338492414029602590325596265848556849613325327313382564997736647963425277797191681496764692962048885411227444197710101076264437379183419276537605827026075044674624897001213370104041892082100034245157925504713545502355441409723630642568581455635764150473276769943215586557731829880878401858679183250882388763499844911854993885596452636305638217700742972608726883669327068157061939771962307561617976822598056204569201618299765816212194079010455905599688273480339405057161137673715681015897644103877214340370324035948950814698434696850236756958699037314124170703760210799508507768388031254908972196146100664271796115299861266991328596889573722555447373205771711625746936137302061758840651042207297584016252138113969406651411954794106312853320593120097275239183776163756425815947956086671885754683835299334308789006525564964190417820057273964758688331239844518153451261231590440262370392935722060957564166127700163270772635943006703089090906439740068026507283633721636557548386111313598892074688594532572425007231770112198068543373046840906261923406659648194372965863910286203788618845890988914162932230867855927687170209596064291450448794709390533929647860520461449641913346813729274847408851409426899119814835060303260007670905126079818725564399283258034604785688246746979672276983418280520579421329128711584081831094277000671744539443885124480840065498725578587230290084356190810440958969955053374636079311279621689790709480327021097305557582912116346517095746726299650103712120617092302032413662016808212027236907777758164730694074134197548400172336164484038990823516612140356487211771636647584428839424546072213267316951491567502867884065087992543305879018798918186071783894379671831344101534684944914417364179672253921647954744124640165728320546223493364370847995811945292065310216329679499696571715097331439769143117046493763810229138369001209337960953525521254372772794761172286151088547012530127571405305964003519721757656226058194158094748365439737845583098010347256771981016093960946132884961743424962626311148411391151538498811173673724627013552520462258409154131015425583349880595578214092917182993692695430274419726078314017490430532593325931626143663832278222160220047979084530731572751200031891696391152718035197973494605162900505762526905057778173818634902837603868923774884628674694202136917091990998285842466896381013088527541851304275653388960753107045172708811093871981144926469238400712868401131432215754549402100723898944124587744240342335047008347954886497313797995603295194809930616847127151299621827260224857690078742341544901942629644918827390241280299462113883639224163540132906480078540664760962268466646675008693841267889413140359179003324467232996786425137259096081207724006656129904910165344126276262309349855732914703755584907457958884977501991532849533074639150963094168258855018334858184924056110533184525351625312120061469063428433887794361182566044987188351265498047510590966715951587384309666717117484230511008483808054043585506833048366456647013219786192132511098437713080633942393790084914884086142677365540863936173533234509639178861989272536724366376786203843483405150574639190309830309051724378322641642955187743715634305116515495294260153654821304290366115204573395054247124996356227176933948065616065115698968018935922651401180211851500757288516280746851067763845609794051414805451758153084032150447769323815273587325150024981119644620292685344724298069003185568699828299364194794816545121783627570187084847432939237167040364732074876499168627836446485276383352614545933762066862108671776639747910992208814195734979009775363250629632878949021637857209103231736324572161826143511413442998165604544522286892280397485131908624003196200818342574458080362988828851891425158803601496932784581354156571425638584876477641107639652583708935062074185671230658569095729790449831942922860969863935749892545239926472875461572951814844377833032957531554565982606177033639537809669472175497667757160845530964312502015641789270482336098605091728871245249868048655836228801531854753412946387124835482161622422607663459959896848048327197103728870396058111593298537996361844110392651950681538860097327592639396342920415717047735479068215927312538492079192433439821238810968351502795268026665187255255487030026652028626208630695674412814210771644939355045381270444351975132182387382290699615364219226148012828750422745174592147117258785034094264393038002170427539185547897959872423232037834787990457748179315876226395864497400624537393395735515342622366331189205437194085249982871378221178793272666990174795439036689027847798820020167594209985641076447392010003809259948516991542533579032105296341916647527288310805630139274499412780093161032625553844163092151394872609921549571873727531939978144983069631618215972719245586619796600718670238472411905388269669603317874004601652076359024516209174012354929371886925460756813487827183182930701614791720660523158466003196288884411966850902823404146684400613120242896789151381634985898740237201193644257871297096605584292395685703016887461753979078923532178335850535528438895234394935504242597566998263046093690562392560290934693453965997452150845529241961642626404570053918843844395764279526116747472871303520990808394130428700623740657650353948482714858425794583532903497448146486756738515483386936856997079748227959654662944512125656516813799752166068772284237451374606893204516424625452947752441591737001699643798931647238849733768064586619869020291658337076341171985303875866452658077667302189071998194607907148948627014317045768534887452068256957580808414904987862766270333340306253842730731166641879674326650252688401211324202953535419661130630739981018231159759863940730539054599965065809121762155709442411269103034642360306032856571871421401343559873390693982887244380169649081853737920771358430979600961823251678230218703625516075545180888032784353931521530709031904538020480499454254806098220212728872108963401471586158990435356698891704132253150629787612871203517564779533746339067117835348028983795259443676777976055049889591037805607140761170406124977717994646592261377493242052915449338806636635874240934515128732419035762243742914367178471470002590128216518971587748653529148563371040870612740866849834860691697487819933474005375554432478179592446831828128441602892853354893915053636002054328428932628078561617928735658820325558198400970639686970293175853021871412673812968336866329685910445926395949324242819953247573688801962568654984099921099130855997788656686619085520250810794525892016329627061514101674080646596877944348111752063839552554269895062994048781404847791053048288736185291486601096345553739715729944905196992185012889908993635047302333471600300201858572865757607120375876913820568256240076298786393279601097141479004017488725061171569399217725664661842474477675732943404486484595400290106882726380849778386822603268860475944285673179381260880947138553024854673384059523890076643486060246547190196495216403056324052045838171071433040558548398357335923474917064378567542507379915950882258564825297578629391944077009823776304213143158145435902809709078002296014365285504942961407877799042377839200114566231119164196375372723292172249204491822820245264164320246530091333419897467596884051933606495464615206612456853132851321715964709987161330325801785146327010630909947339852359890196737818932379793573860780412360444838489160750366436449432833311994618420378781640505876364444041477527695607009885856761199467393233873723341707837388753902577475417770784677856695643816868072126603547415598581474946168426748015040647839374652163741147590513905373579935698604839781014898627116174137088194689880681570025123946138422177190834026805490422295032295215040945488947527859573987446380957399172155754524137426850953088583035077066891924779915414871232169090712510567483757139121787707878899107268752295660304930361827249685668371002596180123257812884055415440852841632561701990022790348585032584405570009358842135460636929401728981165640472936442393521168111123688395068501711587780052780662453688988493698184302980857013678914134309179139477008881243399934622115049837394029990530265390626555552176868698535356273397432380032351400857922002773242193170632335640686014674581752447569991452837976513280509031250894280365380700679621233763962554506066900338181434814622781513777103318085089012876461571123207889314203924603810140930698666977793928359686742522865360899470943969797585266309329241833172382824875790634866823186671686456058496667883552253722981106154404627890096798476536425337739728229305554034382586805867816129584819682143302050732036291771529789517152440211180348908037363390000348288423512368585239738528654032743059895225783346153975847545605013897055447411538455152506786844158042209945967645120687111871421517642267816022981870111013744068545294539507831266011561939322479626152577378547307884107630904479941205833793507583718809195546113772126363325326082454776317553881911810772489520247714825147194882511072673362467266248581725595221663602725146114842270136191424182831626655560694853807190305837274179118420348117491845199279681393536694355890421369366639907087656857908905674298476664042555908663692712735477291294510847917174709041365799514119544159124044023285828365082107959373497582216606608371483951215519737276821106110889892333046323621456726290723507816237784248749081033221801469559282864776727476747309360569612311164332699427721221341443164429118950314853223354552438294084312909884878923458881656600486873257820918445461077070094175357099188866972182220878530431436050242759289956762315943225356551239377589513471121988858473995243756161344469364379903503569037510084335595323440723966431177757608064933402565471365167908447974354206731562533352248738412943930677689408848306983149932359909894418414373126889575324604197403733790472681606133169037818140249402510881695052717572181462636622251699931253846435061281431265612072062185976853150692551762439834894421848572441198309577053328002461092572414263456145459606381492722824247756519081198568881476071652316927132645144980628281099029067885324354242540368007701592312772506706009458201064267182419113950546021858409719392698081275665374341259634208061175555544775050122905562659535367720293251373595760920895017957652236914781482491559183218838176546527968547690913821694447721340551431920292991151587472253079377333157098939834007530372238473105053178649873282841965154768839250471937094628231424701100724619264422603656505017756855535884207985525498063590462707815206232666334078253198863036258349384311114523461504637407008589759546382583219326479991974482466537549420341162714484569573554048508407325480718344050821352521153326755774523531793177138348179753475880354491115484139327075105486742806153667541105053708539520211687244112516002831039522168350403419885261339244038918770546062963524240917137347384314741116764413361043982437240731644255206483915185763710962521915029078298386648197744500563789062127982404279395253167631556297006732666071129013903565034274812383306087703594387825702369539898322743290805891971837567643509342841023391891642812018723401510504822935330178699942760570242884025975973680069026332985233934161617304456561321213910047999031296975264517695138345705996804155945428949077300631805405190547543818187461024805951450844639252547521164536050141977103291751439915800289848025721840820873838726180409439591445125164141148981028046208944967632138592968393887357561933941483563796837237998825023196503263383459965992000188556088531174400151210689864016108533332079875490351623000619139512555001738420417784427674243058613284341097684337158739817539484677089022663412857247334953758131396825194676820930225889492019965912180086577332811871019756538212700715993454068570265815595651308038013659496321979876081214134884959414093511095132105987771235757281693226003959298464373706778257099295045968143196404483183448810864924856741930297428769330078202734792557806075823809725126327176856036073063537185936082150171828265024943827274985167370877128502537118304713341248243430310103944026589678028321276558920931256566623308087773831269218224943403605980934631523819042746755049794828296145822440332211797348300350526649767389521191735680381101428426805805460686106381654408870403151884166276235507420918226429224545169857605903114225059324343943495354677539854157654372771647038912840391506856985042465891616124149395344477949979348323976741918808014601704622802218799710148120912095393429126520177858885124583628481158490529906632723894695382446354729165980624665613767378499391379454552850320130953388250492340082716022509034315918788958424765358655972705445470487207365282765782950716652518460701538588045607201957367552594856162208159237374271922165177547578182744495819317479168009177008218068761320250691128464872693017042304706222018204170130624865985158698962427049542634583425043809698227297369604161455512264540042717480952639403982774234534170445733122738428460332252001371136215859554582939058967146346210236230916126618177722791789314891806503944656560390598606194090616146457243634133707971963090482843972447366374437830040750955444777285929532792166399887464532916845227563777763132219948952321792096561143448845078889293813919649939873191497153256334665045886049375041446398340584933924850382595717352275894189722977447658223278314201928863043673708130443725069435091506161674809375234132401842777384861462547836384747438476995520048138549899024325699945530863764183771616872788694828890110222453687352432268377216006319955517293401700989573272331944330755738480711074430299953330236473905360062678503755430616326563947116890016669603061735641325853842128365217073788699918603042246700553250959243759668155309360085034254823352411891331361040426678725082979364859829301476758610159400614957657126741862615714195265908865518417332503701405290027923545564875489139271310960785431658133600847904787201220674954074991037109858410372370400529191925950233144012058600881045775235196316685244345075497046062590709397660268325950857361575079431541612430407463982034144189512388477406189511854180191062119840425530317776446532984330056063815878066863268917769699724557116254577153573602606199603927643906072716664233706375129096027504238418105613423992131874638489411874066736447695572442618069831200432249921814778499395215977414440443851471132300251866108756545261722122033500804115351219680157476800760483587719029759375344606923373492210853165878160310717941145299046486477987701369822618296420821386707314734029493015842536394458770220475928051631554309999045401853528239184767335951120667996404289239050661890300231572715525409283317515695298484011964455038144505448928320599133887163356526418866812465057589452844655613649330730681511397064605429176606859567465438116369359378412882269970589081902055999774223727314430951780251409350107332079459206138959411212290095158143788885158118506823418621394427781344640798392037024543768081795188571682741756200945693268349977845487030800462972122696314994295459756721016717551212665384395329826642620363708841102004065242129603964366415220218588671496608243707807000779243186349513423693287103184929025151615933535500115165877205258761822964963748886407738103039718923985275545283770658624714429721596358439852399610245815741349190025749891984460288399912685768175423967942822768563960217329295271249538424903859671245306765879092702982495032050908162914808944926295232156996392397319048633272203525175260657314440622723541321037037126652818422628522595777505852641903622652132734518948390897402456879611978228436865515075574202543983047675301343508437970574603053002164145593903274601742526117549119926290804077028119823982723964574690438452512223710909175929292390466028370019300697211135670576444378078064410358249437086672877305317634911487421125543330843082885954682746266013627558073845818906412159126429406181790924274807520712354414921422199212084185623549280416644674064125544463431068616390221664255752644893822473314411342885569508664020471211892196628878705891847712921247195187272770101536491066253285702366324338002438258710982297533220838731942040360454814604502982604334813609936527800066572036911474357969649457130625677140768046182488553239022327497681122896575600694339085624113258169203025576857176241419715104253305568911544075245137154405589076107919313539801502249421704945271552478705679909643772691612260524035319624544535996074501204228650999130967453499418642701350164325373869452211853645158507106542133974375037286016870044439709749649139007483358433775735204783588795515798971208617429351095784516115262062278419145365180329564899442607185602289278563169680398978623521331448930973281707131775239643021671924886717049833754803039846490478940954172233072802941710084194611801154799779589530981800359816061073268512526785948091813833523096025106696487910966330182298330075958234819647390739889641608298236809386608989269582942823861970479991181274870270719685281404972716330227782885304361078017603374429662402973517696206180562388959172926790705234494341478359473025571982730227072162144763005186364764032544405049019562615438616634434749459290411194060301264228102229423788541596028518317981902564976178499264167719323205926539214841784714513557346839906518052366059076897025218070878582681721613269880960346328143315257799193478293975342635189128261524204624183445987923984757567729784418822639279393455342724149550838422659271786220959921456227459056570903247158731204570717625267720251090648548522037656563887920135846941596742281881666466974982945977549970863923605892723863829805502861329984753322785105844819561050403347582609051774187032802745973879589383079717826522166367251557695353262642095632656070941570902510956374734094362990038452261751910177655050404740045327292433828827910047360991639086510520737119275414753763014371418265882554271093810964578304997511890283477899204155901254781081358053884566575685442514533886159551629460149665280836977767489365857404581875827784209334136402113554487470218413316258828785572129630107443121152608881631503460178544776391571702757891856093368585441363537897902409541063839767453435178935695492112529178045393379631970007687907170517817549190000486630164456336176540138648400530472417149515458095214862260768319972844633963124202742751377668231469849436008394218976584232988683796124491564508335290673281320108184471309959051239925897389040615981076914574682208227401916345916397330744853818940897310756687850342083439262248373433004561272957827990308664374425792894655193168684221740290967201904181292034743930191302344752679267629922202332802484265940357824428631446155213139581505615359734794318820539542320986345123394235672407502104062740985608286358389933326537204653138206826803518478082652947225874584433147433457155481009412158342419762727120615539913583781463446631774775023280636388322950181764626061842030303872627324674893231791667749910794387050932432971634221181196273664331364623575149770827353283235870033289315070640531882709223201482221938174198542880945894529371359408116147035749317116633400228629694815398366107275481146877644536000811365016856402470554065964689295618202066308984986881622985738144063890501470574229906943107724714597377805750286528002276268905034783674428271235722318422143424866281027614102101871271464913991182261458265288990223788947702782668193190221531202323231753241009030189365817208595366996036067195884063110747195083104425164460480413483484152303015509661731672309475402733887002151441498942634581794896541434939477842739854889936672752919230830726541759282135722258207468870165913896593351022255928248658338079004271487203020332715765623503958717986032662476652032176805316346724633937277134073014230486759955257228671802849650118204125906472931641222712359738198759787164898909345151240306040621955844951268368520719398807886733649005627644751712486051618621477906626610668500867048683554652203812702617877584827166094272633051874442195111683866601895106397537146350971249636276260267106085265562315995154929201037713392070773113870015615158040469110390467776151165010001831444848046878138527664920755146030625433369492007112762051177047286492412178689396444356840328558029757962242963922848065676689183419715607831090883739361756467064233414635622582876567410580240870239105825049007366016700996861949360391900072997928175561074745033227858519320213134727250709254034288570105424243451510552958761562844154237408149971585222928331276635428090054328482354259863441658528844860103093509522856796167497893592515124522577669633470235483638733493760751510007041683201575886624762328344612620939687107619354335236179198215424269088193707576940145776353861044789656358498882222488492816442357330934609803546389561646417276387450263628478180094283716149848029510109779126657181444710049380078133533834227229728121095685673797546439584990680678003661364483298785593213788125211525563055458869773741724207577036303738423653363029847723548628480194734464921330459831493519227561098883699353394454369719008163825604591102706503162718832534472573301473139663274120419397128561626456399145038021121181910213023928809590913471455641922979905766847727185283303932428901304388080268534809567251183039317056280492683557808898981863352054950469060285418830391198074591511808922941206840084027185794787984195138224606258379174863600295007518192390422144602660208478996504076296331727863715530928021900502815978252449437860316850665701231556980742818886066134412966237922602355293238532787540285869890115514096977823488162487275236164380020914692038197350434968622199092481705998488750014577058954215263888846933922168486461331921798649055139041751349189181454673780851631051446973946222025216972785397101664213716102203970040123757903288621564948706294582768038857649625740598691382121091116684576979515340254873050299105364436970337697806479712356640787568204673160060113742016073809903308066136355030314274732920812685066283619627394846715013705753832760643408409539802904849892662476121250804342405782025715643209215343758676503544718771818248341110149835433541001770917753668488381132378346477168032022691382200333025766373867788969266056325891528345721993814064462254943959941849325158542305737711863052743130104928866843753934345531120795364914580552312363361534685538784517408552418214930117240369960158085966520369218661741465490203487017038172252919435960632245432449853161781850213654087232335136215811777834767815032470495496313664452093840237457463305873281569828777400850547355092571779858738770901017701172028160816818551813982807484365905668716239190016402896327787577653374869349795446164378406997403757819645469963213282972588819421334892109391133494669366369070914539748983344798413235729870515799238414993806579061121295887028524930082247255336231561819332195618532555015489026897939958839311830067162782483419920784960781923394724223273664292135050287595266774873632580314304800880725964038165032686329042581958655253129276042106847960379544639361230051176566631591175374378558175379046003751936770048381355034942914015789315838075121740771221805143729259249523744701930586130668204510585455977922101684302775796190703495920469622027561773249532102859265318106675190056081665292511261380510005608602717166935233613807919746886665711167117133739883821906238391177762913433464951394487559188699650134973924416547722467119810157700040033875938623403039305732345105353873729397495098651802862340769289182174074785148779193653592644334395376645399208104624437671723137351650002456977875540972058509537796462684562182762931979584798183833157600940449815104914992862663387048542319459886828384370353754113094708696278368282577747802304128697330677151675895069936218219624567395110661742738432159814152616751316903403106076259134716236457625725879656745347781355911038756522791074046800125363871960545844021941532101098500644833422277889115535096723577405090701093043694215339629359483549093258704199843154643447949630604974112986711612129806845970194466006385510465619730821944656692667687547074206440038494629624987023002382089068846443594252890509060532853763697537261487528360105842596703880919658104648915704708407456225439699650473515567745042298781268843767002646794333143302223006299612753991604808103773945665116090753618399181146416903518365051840988522210795636526684271785423151852230224315439597278943095488796447541426600689089720173152857959610593615326417945615552118764366493557049392618489010103143947915988756732718923761734717684367822105744229496501372972746342793486531092945806843485718166456364129185352830936531610263924302835519870171276728938736219780505588759339598045361699663067665330400955774744632045438365701095692640092889859684452861467377457417863302538352905061384625192597903039600093790487849766906533933677872506546686185515949615679320704512306329388704987288244396385495725438362496976855461658952492095166614896206560823446914258755085156339244251651011313430546926988699253745992080397862787170910023376131844358407818230942717349474791519387169331231585949597369024811563799511091271609646388007237374415338588496301439105052326394128226739842101984339937311258012073923466331560975520672002932001628661741459209979441348974657082714462984577636924534384829634038323421832328581874950885472887913854949945771095415188304312212887878500162992108542255304714657419566345111359698006863706293610685378325466705059354349863933350652141325736688172216869072909757683685919951148439261472759178992628582043239099919902747312515341474494555604241819371466615535832987719870572523479860573445736181045010793213192209496594531196110194699488618967874335971857394203682922066399333390389513979613659818995015948636597791487619135394603577282297932457724580658686724569422962617808637469360063219916978700668593935043794513652690465231007415951540972071554434162522294795435147098864675244043409785419001404133548206524473827646987015748793904019083646114474672857340307808828165751033804200888072079792162422025564102521574547914728558417234735137916811217036385548122519991277800271778366868599367383886102820967546777342022815263447990044215501858722166643403034322345568057607162558952806857686896806657935307982110575829185745053871219607196772221924516717262951694723759529979475368221631683471359347522312753382797488219727885189889622631149082155620208096542024308357193386011258320850931875954790444543491503283076429438869850662553078325892117223383892566223211283414022168678395347932030506364251211221316079686390755461850532272959795206948030545531103236368729220311410246794574743764475517484273056049511911792715842792410262709284586107786629838901793829468085190739451033926371282880148451908545443852706869581394619498667450159969866210591096696095979528923431577995493536622423187801365884206368159532282678605447948288231022098804063059127158474629167223661220983561147097722951446532077001986132556156407951534620278380395300048967470761300126618575671728213016542554159528434396792170150284826705777305172904401827419706669707258055579507065091178937355255953855886422369304678590040461983969450864922369755754916187680708199675098050841106437807252823425877537464110179803574308154170454960588043465511229829940479359367769917820794572623243323855712412437328300424504787645807450741187624219698426172652624804406702586664475369974595137269873011034087237272577769145704945836247408504862468501384801985290644275937837449047654831867597099599990911126712219295841435148545250865932693991683537724654525874904533783915089544197036244324525786192837995259929269639273755829775287579228521499863585120909017419496669612205135062476178135046380988405625390794118454030415967857264190331179937651778001348676289384758720583631603115223783277880470736370734993433441937241655381774323040004975566138949671117995406156745123686310609549821163070868998969308475310764006260225685700136096765198594529568463839617093997953529499975654429963886759745620944137382540389228032955918857905353942019912036838551439315430004660337275462649261296540500941740632623238848629380704020680833602173970040153713817282340253891749489517205915635950494257716405190488790546631583382038578511852641837148283096374976800963595719834133246679414458918584694666222779599466816336476642614090483910737999074386548771991079524682349588154393512473125203478740707978871108478127473030831104736295564065594025986630994211572848488169011531614949022243633776188064906570248630708464221450865045667840000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
62000! 6639834472637515167542304026925252357098066966320869106091123668770498049276723796371194641483404876292723870314069831595123541277771461327531002323230010795318848534511988642655621441971944710434744131554851543940743839766178400200515202302721229432495374285261696626057905269007227598418774781237602750922886428771427931076076443935283390072083494774278876112547248283746752956993449258001820712101914460334167577553457222695971320776784554235002740681752669698915847704591556606481293317221413753220997723452445023594223742975085239354331200184337843773179052431255937984618465591486411337869993548560924047030866378198464482668825785219367517293025093044627122586344798262638155892954665804698141918623734220673582482535511057355200370971714148578850695162460883333111951291202218983369575214191213434438213858057209925812168971245882021662140124847728172926516145823461086561096702451817957804499214828906248547258323555595027697417986503199992032387244108783119417525781834209262386378159923712186936752633622001197202617050672536321092487512724106952599503089929863982507012323444430050594840351207858274595800679811160228103336537679436815567310276746074660084799260770508828090746335273569334511923088318277180347964594374489580224075801655352073148802541769052437887962662117519055438942257435240721417297083687981046362073539064362498474953829469378429203737235559181811151294959145497294566688483665454877985260738636128386538182585512135311743335036936125393615830167443392583540758565742946755643985512440356424239995359465359821594574031934535918352082370636400410711644735687410808751568506738344891107717591147963966287644670868114658167244261209395415183270706391643617056634657284436951744504224798342548824369291002343064792430884585221157272536176330080709925582665831100674014694898330762244206193266415323159891795711991251048516683728264325240675314258448259883658125748940180826151643680497944774029358878550733086220911116317676922107762347989592672701359598587266184983302979026556120469941455347595539593027165703816339743359939551300111230197316805908729553178909901648034419199022043306115932301557278351994923312637629848516400399705681394817850464996900026984382708266657359635663813654602340132228084541991150004388444053798558267689760203403516515233954832191704858659057108339886631990534856544860810510283344392074634516311729582197283520080752239707174990215262430385741926333421167832942601189569556525990407307047446398044592801904064960042114385868450064254373493069976927182492422584496757459720567690834069435315920848315960295611919163016761859735574445413422640763447029009024671415426158490589271249870435000862847825408911994034527123707399949186591924511728157829904778727553990850777866547456954727595020612187360398666154712083343888095233135358317947444695969343305540737396892688092534392553636815715728790774090745697143362689712405075513197549402536752263788200353566685825447749987963119310630970914177694452084624969209950862021680019642582978125845319971606977928276352724951274434607570126017878096172853916209975622924717364433840534268255065882889297001428740185200384860429796391906533132930587780143253660930238331436888821566851550628832703973914536052644907543391990393164947933391636725876849830130470459276721782856814935954433825627667147635507656178275919321118006813678577480752569391165893327816648879876879350856755053246338718230288512843084189979328512240262330883863760661815195454641295543837766216351226813206174464912533271744582066105903860342544431215592228110454766929945241011104426064550413718579178177864998306391910969316220314342420867995237927548729472511713067290124013768301896489992098771219440833066932960677472825933139463411479800202123145672177731427430752519237328460985935532198683248032171757791534482508526769974221923019775799603908746574360084014360373021165016089090912231222625804974096252142631141148010232161167377083769317529837319908115989528898628007656656981535443874644187066564694983800936697121423949075772957855042905767076492632902378396002094872721896341606226082528623170471154031259176724989958541964299111547915549775589664997117283303421535581189657996784934865837498634348628626696269675203907799201947991994821282540753348070487586587229289147895468557423287363909438292344462039642919612476257322075795534298463501506937116289756408256133607919129305496001958745123368890069734577866008831290956891399518832069037345258098252124022420659632953071912228243565995807349150082368273471301752065301811294185141684902205424845396368709927522946864863248948454037239370249525048021627182620988634521983401727578013581747314465049856575197944592708207570928660345862502601290975569812712573158647917294472048886102616632486257280869996367696519150998733324550439133791580173645517101681010162867341023425360534020002153096657508272453627882680376898470491121470700692623856524147730410702132780263603699712372296744827721364321552486418754620935458286270754431214514722562733511924305055244595497699518447397891474215141633900696947956348447658273563301793760205113774843274901435316595451740931796572343379351148407363087249349215221358555404390320561792080325759222997853196003926368468714206491166701940353352268167484912271985470201608101673771475923532455680840301507635332540905830937825231554653003315867279315426509910605456251292017269013197087739881127082289116311266154164835034112219399841980522712735591626267057988921303283710004992039704357662685065656338720512552736210702771074264093685917100835805807967605059392627928528347760528000287373796178113217133372604501427295737786065330533085569690181295213281832361559372255446265021533292337467101006147100081284986592795916635904466766767558277571378817210901655055788948580729960887665062004810146926235321409983837341360245438369944758103141893239744133176238103926742301668659277650022111330589331869717754573588252724758290997802997770703909553029312248137983969666862275303282873530988678949601546581433814816318044853999934392133964722262571689753787159946619704528468981051879917188734859354994155622119125569378551738886951272801936494420181129086411967436676357747241025646990172262336738966091475814312451408452220699979353288453492436251696490780688085192665942779244586300311973150191725459560505116890028978199764669176078566423833102379871107916134092103614646825970941322261064270614515669965006640029625048495719243193809220405934058399975360369458691943886335307253101936334712989210004656563738460103137306885707182323472062785820905580293763195912900931857067072271089136743859681786905845373224278295308787820641836392597715379550686193497739672573390737493118187274480427789522499658827765751654058632991740014760942443446816907416169837412246019728132159269682304492322292224052442341752455405820557285402673862272820851349030147271077044900877746470088800835972280090886879648551884836490728026106620875447299209847848447188523580079402458947265238230908469470690839716228010941006025938330523099219341593899924934243407809828747225497417219057717593488078084949984175622277483235969869542464720707976892006842386432533924588958710132153118568484799293818633966363297685206397491707972547518819243092656035140790878685912656377756448020877870912952779163653730213447516856908642213619979353791051227628499276252277326412259934815484317589151022708827677170819567878706094327786594200289979688256633954632085687010044622455644292762521301859619100338781710934312691662623329129947389861342372340390410234002481398889880089282320025813498095621446884421969023630914860289774508105666034890687197932225779431316729987499070842332302397499230239392997824498193264440876900450691030217150434224112800665164852996526188098362087520600504635525218851713385077329486507624694083936249995635799218560258218902442557544334181308654240229949889943424422724839610778323304039290408108893946571225083809880092097769632976836533994672573605721063205946074050691633231542202143532017684886988687615691099968924109043853238667387629732002868533966292976249517731919968654041211262790787285780157245683118383726625727809041792807300658551279279302042541703884407655927235946551351458840411001403264631184175140981963274802745750584154686491560559595082286218292813044231594775825887207429400323076107585048704034728759746237682149365327210980868519887983363198720088827721064966149762806619517618744798543625589348751637865139244066168980899277324271767703686957961704593074585077563361505061376362792019299951040942260046858418125866466853116939773933597554309374675425751023228020105826770525263101133045326634623376978998078779390356964107847315697130151424475400568021299081956093055476011018922499371007137358200148767148723498265485823488993462975049752314207609529655922762269317443183612094552765320910915584743329534999640409645436042188284481219172568465955166212487667757876423860205391764846530506400250203695906340133094378476490115134533030650657177176266436355609943098209856991728094669639767794621133588749672013752268321167914343272029197515729153430773076184679356024067066780497805764849130429975196804105907516200469936455030319460859926186166031345809545243669911192247653763367652152439696601694655258098782378277515487641503791885845168093454251963072672142801810372725557536693318065564958541935367505135716250958945625822701777960002441113377033470479160989753645187322515916965095868729564161648900972080951006769463275686049016388924919168580439278625745906279582276874676845300007965979062853402300406065912450217188792929321254361077807526521200557438545630411257473005152966664347130568351253632931318379835933545150126577102223648687734685970286094534780842956805235179685511854755123113732822775672943280906055819879134485260036724288861965987792403889639106464862333411857124488998897973357368043680700524320804247002816519785601046306657195858009695639663784854121888534610929643335366572581131654790720193139669101133372942913158871850789937530017478065222388648570892588265899958738684680698756831179845829025625305593797349709132316233748527292200208207955008119817712455657335973101047096002815960407275949714085522456435900754414074787768235107971656151586761760984574455525989042922343915714169936803417231442446085868694578092699817397868881141827254441980599766820286158203692953364542137774207637010413747983528322874059239376911935559287253614560706718260207678092191344947723813558163496822172260080467643899289868540002103514564140552411366221289386605691788861831828655822721459044938745018468167055631951244115956679680783477070086291737236294547996332036657838214757304164606249067767457505321914779095858163736492927081583045939809275404541603804304130651893559619974930082479574486179630742678598872525603666283830187647070235211414455872956988970743405433879783669987154756993218428638850176414961746748175336709393603293593947956643429441190207555234957630567820732867707029169924319785310049087751105783290247031826969806739112137442583896940258810757724478728804038630555993235097090873304505430521173818272980170092672790352193369624741638538680673086869383583404429637731762486587376296160600567764596513487239971724315621793057424176605945519583295305264267367972798588800229060491452187885152614672507863209265370772114916352465095442357308717784159697197359994041374320508428479509322055754721544264142020987901657887606260208783056420387911230367070432470847810647299482589251222571313465264841314703333392619647972495034941506003577687274173507137805391432220811962403370241146599843689011466212056625666884731477840070893012951502437916825479361502638184583621359167746723903437852101182474895171426969958302322435978209999049662184456232476165201249599784653088109045868578875311987446281466771386221744108904727839261680898198130347281225103653848693470113186672740044021163506713827608251861167976809695498265061911299695146501652135451519708390441313241227937694915475491579251097889638649363003640250855716663337530702608406112110792307733922561247698535374616047673182173170674461430638735813171683869060507125952786402829397673417082391006201607454800161176826641848368016008164703194418816546766785983266651058222934476869065533638206411437627780321632422453269284674613210654036461318541107987805300533858557710034682873151350476534372156488119367441508295671227862040475429505284549327441380544443693437050832277894169208115904822379772131621935162605481556206645160276357500109670661685085359558127265233343362048717822713729500164386307832972400844499245791102960990335595008796222552317329112757565647409431645891528030955297383853650323152627536079694267287501240057642427386543840389187969569594380192080508350116157977836346980162818197623911552462240598370909802292219765613074864779371912364698664653375481956977857491594684383800183899686809994849117896474077906575463572691855757380290212018092683136759434971657547116929759551639819070677026189014576980729337809134019479840050337147930116732913665172322135054248569904410172258614048611189976286511697668901751290879434198517869732964320837917351685030066269009103703494331033516063823629655217295801940646959409184356368680292354834584334800964379706757056085851944190178137158183214702471673873700535570160327848108600966562686017590085421041987965460082578223293160526543062334552586360052461077014054205353499854838960906935175903278660446799947068970948702347062897799253186044374456782877751478879234986242470828569519024935893917566805361302801956781663951512800034044155642953693774248412470712965264933841924927852473706738448938184738466936188210143688354237958264915725499298515576258585421092096566842964259632448347054724363175052581160790043610016181393315930503984914389840418751616456759247785176823629505605951793564091206881746933700790674094325543338493941985788915181013372628709006148687427045014059293272452555536480019641823407850769153416505012436139533607880175408711069288358741478756113001958133564262027199561365668086412518376752843117231666464628088665481751631903408216763465290628529755093475898964584931974946435535984654265099918669115344906782602278446061686198569659604055898211118362786109845786792270838039400389616424586037823831930230331351147280906882415341708432145601880910757379588480767041123268650713191750060175412322546300778676557963034004431507166561077853163344615634954322474325537834114943661009998130935175349185159794053313626864373129967534092010273251250205114082079141023743496506619946992826327597225359002435840483212220711228960339204399418658789420400679584255646831616670997037373977365984317924631324491589888556839502086129783319862283214858948191721674458410616884501075088546067350461765678643376269720220502998857228630533295242245583467822290829324153757872515553024035512213290508137759562215072015042975680030819056176560127707626222152802928023970225230028179313294605847451026054201244440060040815559747178291848346626578247427791654125212828584378745978306665889405422166629775851709752537168976029625460064705000285101006309102962382974125723461623621563634268482441631065396002773559363106269394488507977598170796225486088439594859871463023963833850966167162690791170671616006580391454395561608729109282601430049239784114786874702845896939810994465286458615007434297794473594230933748251882459102182346970194641645917810117466822639814339529393570915407078663641519421718999128025388046692696273880317018405322133562694435708509089065355146591819179075326205666943841767696446725870469516101289480184809293568119003735935804124652639394590381023199248617541432206324678553166637203404175569090018346065630802744844193970597571395381296867791055860555897689929587925161216337383867924098995983694590942761873877277473413371849883925431479306399079974864293237115098618477614353828774476742791909392111065269088934751752947057676350092666275087446275538460780638650253018330968593240612470373985647370193056813832979104848787388831116860342602768554316159738722489186256209965578509488282641131059856905393371937446298274257148952650263191170634614876871846591940334414358023958473566263655273756170835714317869679702293259776862329319360332632012335714104987216944128155874415333270654975278401137591633426778630503910316163299096417936843022417711746569617259744695579659388684755650921990126925343721463968582409515045341586561005790977180361052579683530422111165922228631692200999610882206942141351479874533745704763785305358099541840092368706247888542251514601848330052431211439012943991406529372482567956440711959401967425844465641728343161539913688285704846488790221012144698079655790054117747597257355687728893963209302398050038493465200083038240768246884544616115776157036819044127457194377551685499830999294919444391512498291293938200049116462830546602246736306450111072840616752909969132117301148793241347999665907661344395065239001532829876384068467301757359942398538393187137299076456825506029761746955246463428953506173496832784566531630774486905405271451681553012863882422100607673822430180762361928301858130768543781878151271637093844256391418137639928431266230770127531300710098518278273146917143995823494665069890971547058852828397644084127245647483498907257473142990380053423386295462651560907029581848665561953182493767440850791296965549258456592905112130375267826816438210782344452957885165400704108739047096871227177033857557172942074514158923340170694306932047305702918745008443085049231157992233654007532649320740911573889217065532829954593265100863440970318100074367581630837313953692280285342873793053700445549261082801082615399786803920984314405478225347436482600403267374373548618764755395931291724127203390648099858753088772706711223102659578027338520013337963231188882576592931537055791507957100310745683649997488797520416910042463339140135545983516365679810852511370350659465537675713617293375220142885991276654307817364068754989752779316875469978139586542558124966007197307764446257584412802415816910867189871858138397635013014885593469748485652068855770224070643159216528789443111139486135267458533530289184325273582508169851717612775661847418544998884088245446521272014318835149903733329180159082847926333660964208958367323246000832414936429521414575012128134995720083730784234673222250511024834503115341072244837668199770688511486981642165781569825942922861449811355475365431567422410306386584729534239001525242474729397560892724446364868981803969379322798544934747228290863632308279420646703908024607066891705584855341015345254735720514325036284566324304029751133937751651674224805242642562624168512787155935570743208273025654842340207523216266333389527046587263409858251703569643700590381051348246401341533956842607050844829295906053664488730410459762106552195697484309501306776092033357099196490547496423635733074495303403676535975738602825388982920906588050111535831634530681398083349608638911489262738924610329576518878449224155334079759195736813234502099892651455559173760696627437282821521357587026579196654531904056733354555015975954056561285379324299883859936703062643131909761390795746832432224427828671400109057389019984773829284903723957078449035628546343191200417685152108888635290535229480471123138156911617264758715422744916851174559514366596633307152799294259176746537667339806357699139150136298386227361125435308044574634949919149661920716859821585319170679638988142279541769855451137848051393285629853447462017047548941102664634194356412381848360190621951463596659830142217801702358433800156171711098436135512885141591173121563094968571127414038818374602919057406983586695172908387415794925824363412697187720019538771679049901450247693321376985571180322570378917983701754033440501320242526213731602072570549490562219962748295840448017904172725856372152658584477715274538717565131903675895233228651763259007361484275842643215372836403812146494971791815891862276747028352808761336179679276738146930731816321899108815906659277919770810497517577312657753188471384101219941800312584494629095229802693562274762955040128975389015551196593864047797647520766329940244149918555468494771584980654120663761311700441113010602191193461030344012206150984747036465696810553328641585429794497590672381668216642637487434571360675969494996403009882895394889279401625727757139909461337687498050624633843981308801106300136415916244870382307652567781969338616102252341995300464086467932504979161159480857761818951257120237410399331560994125215745205864696963949156435004914079178973513743566584588884413947159972056575887574790734686008201056668537088247829991897045611290375121249593855384098307576010449178839629864253421413498720725142660828655003651805162928240893116202623759630964069054371353697176940956510138147705551037342274446220236676909064965045728853861377007752115283429181591468378197139643465898626634776775440652480499246245019818207147883788990305005804011829786502246398201600459178246392864636459655447271086270524210424001369622976527542411265906611988815330188027592820645464611943159561656776321183077216193997453712220583288168577187415915126132375310654691498569429960138106533719545859932813813993164735282336079476473761685140968411190161235206329513243040002515234911277154779045694769932153703987535951497833460528145758580359172238030153966546117086105096257505188198944585809399692236672781179198298590029642307238877669657621894593450866082907175188696873286901071844987072284256700415249395042798068169976484743156244709551424184874966052474076624196583032190072197300653234516557201495879497812087205557006674438450515622702635759004718148120978409328010156631684825179263977198992696011573257053465680113767184534739056385175993349675587271659326237626584105582975343776266050162213333610056616077143786690460099577488704163395932572126926067827544191169806000301679753672997228585860954671602439500263987081687735186691949951940990895010354166765317143646112515942961948167502442415944498583870481292140903805860207009690557207756601399735753566300282597379606889750883964965825001897232044888696015303752821055342137389470035065043820634897566673414776457961404296426564355123894724721441278364740203437632834531150637001985778504949458865054257433234270565921191585779213918939290368141690830992430041722484031141431619014496164833340824557328002611915341511662163228941655420067581368324468355170217308816088579169868358234886597986632459625676625111820774204395211040230053098312247330077373744108116073307210638499069409963962047412214023505486534703445970766902149033281196446547857460711587215586929936830152304264325219644765712280204558605499096497917104032070952727805052316544663943902442865919177370584993678198001408173156319731903824849825208301768395255826352461206491206799927262817179820840980589996421506663396449414557638145898807321764214643707320009577120055738943400895618867413290605466430646671822761607910072962503994346351029491347210132686125016960649072043823479214961097017848160427502106140369218496909201562500969235419066759708760137459065454444826719326992148928249644005354364586595536340483039127181411800941798485263607220894040312795883266353503708744731686523608222253351822340250705824694578557659048485140842785760817925933756904773276284907013337579388585084428062563722851407845410319994449465114836338876199367672303409096316439417845011000088205797971095010414930025679597985280580945345020258484502047446699009630958325475170978124506104028151986898086610918132782729719387059690732400224624742105932558488218954544059254518043866872401722774673033812958877894959807295910828976008938062267625208550937464678613703876549428930786590234469635195877454253016662858999041781369814332375440097348466603433986000729439743093059877381697675769219365581992443982765139346103759697223794851053292799459765447905522292461218846665246153682984480468024859253811702979475580416054869238238353299108864119479426578361376802143451819571191465534884920339763195488160595390580929941951382076635891847824348701113640332374266904497151820079997086990967343424454867539489147780519218033637135247348393993527411123828127988095995416974635477540044506114294428742996777562205801032026545390013525977997452348700920442125259629055130824673726714274984086567674755815222714700893372375669703893722872159077942776441795294798816199893357211014032887997969598587507944970177990404849119302962982803696749980534651332174903880561416988981981861916075638891613743867599876039488486912327040509661489923421185472225668332707053582380398293016812204384599236842790327804531367061109307848732497154719619693956034176331652650964438795285306112926840500934520970375773007770283650780073397415215660906209695923715968174392156299325117382489343985153140124104599339289493551202081341948256466616812410396330227163034438175290174470412242853040808374792050066857529818011455759702757413292886700547399714988844423510100517042698192188352502829894702141533987165048589344387204656248566939426905316885315666533736768712392326471746597361326139528112957477640130614995910392221174524829377290285569985734218020718023047262385550436752021018213253213220158374008249986435946794632302915294220451798563056146280100238438596083960152246084298682180395430704897111827919696977469016000866993183574466722274606778493665557398636298963356530497254469925926524671394030388749486008383945678227144095002533106811787520348375927052927794405220901233765602928385091221745148058781171638256367450045289374712869193318739814526153907770377184762392925307374445432760852119815376043287899891890899561566808450639394550439620744313214383697590900437182906535301082474532369643710015525610019410730768040465925909818294461323104413999441246137080578369851145381994125133718845682821308971925982178081332546504797568819222246668625227777067150027406667533118654065275034410494380389984424951859838617406774355078819732330953074861711392782701610447593141523886558737524144566988843148147930061150063847093934393335262247488679050820451004422106696528954878577310930829494851711409096098999246478073197659427881649919199195746749569314530296182445905246279085236449808329287075267612201793741097384236127900099420230893724348987429295341092828855339456175517980594361615580918413018162814919424451767445042987451588495144998685889109779670275295984926130005356312381921780990826336062271861755145371805949560355674327946000411847943249294948705923959298667953210491088504463407418537357559486147836674536096723602768463404358710474694697693077013311848363024345015960949947271185560485415144106876304725385614681606697569449904685106706706407910548469330831864646381884833392020191013743685806782949337038641884729632678918500161691993113881947839891777531516002492123200097717994778520491484359603585997518757316994408419914381669666140457612101117629147006623931536601380489087287279943935013361133209892808877961240069030009627979290107666266387196199562364944334213925296804249063092841854550988667999708692088761968939373360064007965556780223457518581761345938382772552977684278990414470773410545200703792409815711254178341507555623229894172694530892581091285938377535116751531963972645838765530903529911478960153713186226704723373166723708661395889970061851602069102483861185722860782989566868398944841016306455922002489786455291286278798884417762002060247195181662605830812572442142643453472512097823738471351064405890080258969114686921696596114098570414579106704828050358166761183910825050880713764992749391773352605433521832283553223455030769954875093327993655810067568508050316085599459620176887751340961181206280147542876424137167850401931060130202779322205306758758389982282735434958130597757641482557553641506404769851249813682036280441040352461475476665637516397685475257705892840257365241730339619975550269211671329692488210572936402082621438505903066618105464591590625808379361375513054357732464362711461337122743049138645367775460566454547543873346264988313412251476625948985111814452569118857815210278326665405161410655191887425854401968030687967197959321052029100104029044103209584020849305000574764071594385373674557309816903845094844710685057955333716711924930822242396966453520512275509228247581037003323683557401996174201597595884574454080886163918905209096743440719799829328798801700449125244330238252012134810923448963884480699153999195691802753495882513003693601397629482250756132061734730244069004705947829588495132925728104347174285615548131151107116606792160695194317390171081614624810353052601639087876329943034638893043604978786156616586786636779854593462068446615923941496321741857667684248199747873683641801064704517863884245466975215331916175413829297873617549937993742353338146206726852439156231837334035037667372280495918487363441193907843904071298705907187733287072308079869371312518436657942956466137384831884979611050155767326087410743663388104738959638753326646334728787464879506262619515117944315934811872966262009449513490513133073974233327518678055069671419823083976212781332532920317153330460699418081097140857157337843173143745940355571310859873135319065179774984495312604924574543409485196527219613265439742544237355917954716485284850491106455182573248547130559313396259042897627790433440745267809496259744815166928264308310347960899635968487751861229883342386440310436000160725227951703390346812410361016261476431439805206609152100516258872036294705928870750869124826567477477407760832285984870898756864012603787446962532868184042328238280099100780182157258402998831658340918667452840384527564197508820284229772154146477113729692992520539159416173932501854517761610569028634341453403159484835298570336685002548432465042330459144500376420606478551915999826891981244883411130038415480744318151649060375987719403506901045028803483226581397531977289208293035174907509000563171686476362689323883126030627761451656282327659442263248041890510580408376594254408283517905139246734484035828507301572574154587137492190823827116532951742725838372526763936159414945011009794480959553946714660155202708223859280421143332182024968920795572093977549077975121731652841355292925566919133408817901485352937930920059763144685915149664595606716723440209688024797317249523735231760921987164535758546146085715838134130111120268164699010430962372306304757633456179247385897819268237785532567299184605775465217627788989850483044815853444523309239056766142058101028845068740194724164394442320292497706442637147719842693456147655196046150024534584144513343782536664408046108325602348552193926594083345023437692546311761629825890434719652477743866893719813720874770483591757291927265893934588035440078746479633574561674692554639674554242714057804770898492812897671745347337116975149639715823446215075434125401169202786441611501011677219039980412122316826738209832912477615214803073239900612054124585638175903131626473666865817314627493511029073354137618561475651688831697702335230798612632059369632127303202047029302443622216116274821030453511494345406438609029990081614304688905710550206071239989585642749445173658994152618007451280692658251604913769232271055609784639265131698711889217967068749454671844944696923046803407097132802794986062673418039409095757057723690103115088012459757079203450700547653970542284999433436327799196871628868210306872498174768637365885097348591538270505786123944300176706864341945544587984243182570113789491872523510216497898152684229184447751323956647303778883744192265243275390750646114855890309249557609014019425333104491299796590434942741059388905044913854613472042685064744133581147960499625080670600869808679620611500788587958651040581139412022451737268150678342846259945730982903516788968391565806346247338972612409128882339677685679141482415048286133050775633309677761580618150219039642591103644730851911971911804697230964789066010707440167046983431912569623231916199795310021698980168576513593921932223905689922123553414251560266790840187025827995153871371068074293574240044551779462684459712125906248050083992009439273519263252335044285904006617020832762048568581078336510766891272729933639905745083307957937971466040272686167750515978883607738688648915534797459508949637367929746717877435541442670595735921068965606350444761136907610875804483544629784999372021726244154581418467269558404128499561418181601402689807314733798730071433193470587677408934165215854319315633278523951566561924589999024774162055998551769344049982090123237508736606994197396209346063864313814697492329328577738046974460364084213776247052799574439193690377557781186224577665334535599757802210798899179636405562781145077234449998853820932025915915893508053288431231712326931242325990744070393244437299915607263296399716151486690035053756635520197377040601904974101109159204558921973281860301473840879716807947973647542387876536512698505371430543250294749614227277704531742248884286015412518696629977945165432393795924881246131085769655000358955645120517619719031614394865046401372593488115600328298220860880679461115997880644308035077512249877213978106641854906340455022613594789161697088849817684078601749452883015867334500354306599690840509653921106982976472736482408303061915009672650079509133809543864380417125594571032224622621723096109609231106881669748750007475971552701386144999062610768779188704429883652330802025400232237345986911337746762038202090438177194777465510411401380333781786794252099089299656548056976656204394366030382127823396599478450912188452585946366696322141237412671957147051592744012841609500923096899893938206124761326778354157829162754128860571215955813791390161876190832726786722188282421381657596487714579603386561891411077898222614933523351159044939311223068136046190549512739466280079702661435194435726659039080861088951766662338123736986141871509005291515008200321202016385243324869170354668157559901005975215584712677581480512698722461675378317458069944960178922957000113013939565663561128559155794265502462809934492025323421254973686725599844934171622886349995312692195485198150060221003788355291021355564607312640712946167905845298788905587127752012245763161447070098708172466499017003687055814687344354810066402164750873767548394304275400631974407156296779711253061758671423994821481544868013603666086290501784202652933891075963233593402227920067455502092676365506213953437320973616283259477871688636279479308254875188902540264506081129140601256409563043270755539231600198209877869226185409828690742085710528268511719413925437794764090744811246352012740557079613576672090578194338147589838855954725931356331994676251639665045272890019259923568307899324032389598579865571551914544352233837867419400072659355748010222649169137898589217460696407529521151304951358362118690836045836953343449738969400808148530280040607151910316824822186771338206357887612218215280656812533811098745522584132779591394342081727955574489906917464364762867789748116871648241465645769690397175999364297764544138441713353775864477562302566857666419856382910863179335693378663314243097227240412187822655567899267800737291210762596700036447627133598435350785826030502077542360094407830427687929092073654591490639588583857101292106652426098293937740009616893729444237968666519767749554598858940454103124734971318551787311517145914279647828773031712114680569732237147868722719823317723789718222292604813916339005045709768209162822387360597617250830683588680894588952350509157063204144944168159974439728014997481993038920673559594270965294574005980699897619465353028139754892649650818665114145624957533439275199827907814472981608060704665911273204543807782973690064811461080726809091391980574603524774120841019172690218681581246623759814304804990609280806858988230331730728795930372759179899463236196604829674953522810338290021013100364994538069330650557614652482632684032178961296963414279578726022082816295838342398227067832803430979332895369696425855947992178339854598560127845682201769895153442244165045987242427332623264496008233248042594242529039754544887507945604180769514064866888472004894818007771516917538329911330930059385237013683974780650504450431818128067701666743866928253708059063894276106562680774442751235650578818205176122926229305393580765319255736283606083452553718614697331620388034844616214229238894224357162635454423430373342120036430371004517982176597866801408366636611968021445302003981345714777079181767893761700074548345804150641432596528997949238082743603719499666933078288753837359968818320205851253711635814648746371065381558109396246348401797245596083112187343933724296800459731022947011211618293701257724497351381798298052029836710861623350597839188984903802355100050129620205890931317887357149578752172170802807060788248951351703795720936543751358340961471519031211753278314972741354596766205360002662324867194684955481292905161230840380062389474334119061204135903977174922853376906763682572897894673883846882894376291537253711437781526276541133139504590326038972027571679588168236448803777335641476740977986998345685769391320571477925002531552025111507544371824129879223887549262912386102092581553273244374272148953614307963565542932612138738981153383460326024149406998583118977144871276197916619477929863653229639953313510828273657663852704323038539625756937037521259545958222586405127994889460988294357011940276891334169848641760690003688593331241137232205480831848049086339755568632895927635400945716869359313946759439028138759457461113802497133796552185607542073286907554351462994411782745001720648041816666998255614699102882613101447479381728808550738356482514679776155939015327603111525417923926428727229332937537938801799629842342536239738758869746406272257134051577765148395693816797542014060764396903476608570868274130601553225984318527418679878827252635348493135400307034699042544940363164934192718434852190915914415496506123011100226933113519867842267365147278629456657892148909241330834987484617963106401722547645921465805672399775488859750509835172609101383962472472272450677726553173977287396580862573283314854265505324803632267745438825399462427191054643108864773115109800205264836609667318554460176823988646636901841962427098031695195577484316809169418496905132490328868907987684898502581041148522771033807673446148358044131188141693298359707922472868877599066680176494858787800304942874075583809442234673556601855442025383762688853120903517401885879075387956384765648726411522213187308753933083427935102578228841355126881691848594147636280994841998966960803494820233503060240901253490748894313885507073481186459482070559394505544151918696022904512005718484135541810483410548633213534040783272280550159673996693649145821367242377124594113948049462997562329869424475879979738645754694107528407158676581665420761438860082894372800231756922581255136938587403904892646378383653444138798080063458434761736329110011824225116035259859979655494756471092645746878150856412999702448158628209969405520848179017339820744994868760537494175411952467351287031295122655888318183378718941746362122220010463163728385805855625182983300102338022613470647240240468384354385043784517718590715122529184066756466001617096820823625250162213604136571736625004798403572595518274011385763443407587373878142062208609921665181912330829435385863842106263438610154794524693707441957134970432646565273713365552395526056321913078743544764167937167845091123882298556765436427544016332082021163138394146919895646302700067864677247648594112377576737340190310587825601296691662168488685640024320252292479481111559528523665392937639110763501746160961736958429654505196420503590817078233774687509440148500854041465780723673754278891122797815055923880836749611015525520196272590505106447156792155961392489501705294125655014709377864669961250160492402016607989412281463624385713933190087182751905658270780451962187593488660184096310203643065642432881529788815718567144224503258483434126803113492539538696990802593882223627477859898813655516576409705005822432962418068362715584355779140496548229384616186195976410157009542953778204456391896590543656106499201479822482893177885672585769368740139192908612292580300351379059927272148610812898887927069157099682017350748692660226942605136659263086241831385616406335498678379075931224816927897155569497637007930911195392365434975077996821096674519046649017339356551130287476771178727065311434812121805463451955379624352094206810590671245178944084529557009233186822483918884890868284257285286478247948660561181247808525877096063734571818980906695939797942807192734935125474585157939565081542049183763570821390425177556944974998198269258772608885797776069497663906804064711756884763733093811801239295746758483145936623645357139674180389109323539816461482798502919097749717468094313144908087237532738632109264476498885882247945670615858575870174559750139653163939492626593688704424713527112656334236419093791270654581282890795697277310461059826349912980352564739617874661726619667896893033552387805665190071940425123591335984751430881659901568093640279858881377099471922864744366094971986580069105264531987014180685114587733042788807786726825436570390960522961306665887444338164024753363861863567154163293483783243040672505306399108234407397817662496601425601791816963048248578093044385505721921594495109279937314967782361326458518667577393018452308457190811377536798511082634748947945901484031599126888176302957748775664311135219967667398477455228642723005019619832568642292282863336541906227450652353389638885332186021831258080003950642667588071904713314337678572335948008385980109045123870102291930359249389213589883106082077464663282899449968146469601068114423087809838325579330283864954704070051037597261041886000638445059472796337883269947041075916238115842045326152685690326975937984167084497007588738998394936275271004377900691244871304529691841402956279341509511172707568277625426457604347475369906754885377346815199344696391555286901669337529396122625805726134206737729985671990003102947448881385183289377810766723698928140537331891639684093681770490320556570522496133562766416241966360220232632054944238940322497974789470064902226509347143583327364537440225871209909180030335037430614987052945043155797615133723432875070273860039592869977864509482409096296055073547900334202402023156843346374158356708532822195670554126578537641443818820305474922338377350713732319509723537730320768306341053704844576183949232710292273862292604428386330010927707723216591362815103119564716619947551657274945188114652743310931946236552798253273708702901393656026640947587427146528550207759867169798879746143123563100526624145646139085549926439646297476376116114386638419836758754091761119119227043791505124671387588920115155368257796504234982040952456411362996081083153667787572275868082728615315306221324961011893751221876053671494009065553664025845364950577151890660502317148831516578520356097600426758227226478430417750397171387908057929350822115776598072538411669905071872229283739255902334581096217322202533045030723656611569588569624147164202639682534385915591857887563748950278285855951238743136570254557141224408374138683369653084857251633594280197634062732649701179521020820728014877971238706106404735478730879748019836497861564281360396786311578432272881916970458434610221862821978364174858054647498109905768620436455744274479258245408522769523114623233581195200430281220302316073065941861244324259336989347413570497003133176018690113411092061580367569469432154177051694680712876986513102580545218124639783853375241385696784594726082061341771599663387703606632042118347277596660574755462821321873967632556898130692688189296379312607994881701565910747738880492605000600406003060617028544203445225185835657540486801746770139893590591050801965752452998578420174843410927833312985066954122541918478311623670810185811148061134932780392328053499491610126718481383994855734737463692715081897228912326028969848321071856279178336054029376992134009975968066499688514151150836114652111048194802517766819723716959972731669578377884277429733104556826086417381083421082881268979781271840305710042070691676300544801842243644469867678274844208282123613641986777274330732023844387780335500899946854364051065748957264927467961974854102798142399908995224714556670981857670816741827665013530933530963240404751691781586317962191202949485904390014777892075206438882974516059396360681757768076562640720773623515600314396396078329335010205324588190053698358714473340784808366777754110379345651991852571110796117512911945755133386737304683724466874243647390334483325038643597348587332229809410589517907319841410019015887112626749309844475681267963015615433109280277779965959680169298065313957620550892881637125220499389248739513285608298716085082712063227451556804213968495360875784192653664698348403529454205179581136444555574576983507023069273821582097038311594739472612675936769784900873404319053732991272364863110695364959926003022863307640599262800368576284873292937568849000017817123198893729714592219157821479021546717802415610211951100491615951175716989728873880643312252934604673934379557237587308168333265113110820175423399697096757475352960161969253422798359289467113089892537128732969878332700043956953709723152402009203636444920669836576729710541817037770513153066103749985063125835198051999246574621706992104025976078265070744477184702046471665389873493387214582310355096648929943223640259874294105901469752731043207601159472490496308387467257876708766962888033385951858934683381447525755542913215469899976287159201506700873874717987754319508659278825427654485882827495248840963771920230922100081706802860852618311085332135609672275140824957961319542634003191067315816490711078684047912931660047207137131196985929170275085528990438354059761207227436893726055931781743148347497445655007294621105168931243338314047946439276905392799439576162103831563233065114780236621591273844155063742164823576302592368461780131295911743562495430211706422724379079170614252871007819737491773968488582761482487088454056515063090086808266854750905252223641922199510916200169644654819713888571547205546574741033207074008272873503084758857101080781259433930504024411273692692677860393061450161338114804096052477978293867275738654815755039799535616072358016429458724646628908673589830404780259363599396491082526938162134357817567981999721317628813025547253844485816543692327297024855610831865797464534557019063271242011797905543201665033875326659058563109161150309360941061542078918062835912117212345290321860417387462148978603827699741216975892323974220027468985484368551769174659420924285332612269953916310565170077281489904673810754532224450271287364556571541645550211850389600311932509764841679017236236223019759113767448790578564205951949401072538656472862782563628791634025986054872528706253891734722017189699388012441986258671301164343558474672884553579452594841063755020391023090541576735360698307024386079484733146350120148352593859929593730307138455342490920864218831993497111449975540825733598637585207798440755868470131152260472466917965679829382073028529569338803297144920376023813973692556770871903569335365596628528683427591310539477188006799974917902496867333357372300490813377042782275846241382790002736500004864695251737904535203480863357065044756484037786654155380131206969573188510795463588283167288746730606283970470028452773310043431484329475129628462794465936086812495689959410362710035134335383893621051065826995727145742926610958909236198563582761022064229621473422892374705364998386508984881956713596874562880855063421699243532684766915308765401862578490026763926168694929028590152000544097093698475556800640202487370606716073096395553101559117934046171831916868086247727783845178962366478828812286847252786780294427691188844642931957024443011879420831710907176796189324662895370807259917895915042110359667961771005244811977565281392063172758805837245935118749982484492431422917681900294650914439704264090061817703087664522789093675443448580497613328641226200949215358659358533216956772753536169890015050294336029706253774988095526811832029331290331409952092772448203669507558715813533129520478861652168323634958307161015948953298571041687230438782393535592978735957427842593503444404617005668766009353904018935971440035255469868755602204604346376463722074860065417336177972436254996521850100939026417905047593397955916066964175608724633467325078742900436828953461372444797020681523253563417169893712763839339569492365822881320679429169773653921317134113780114936117977340407172114922260606130962230128199544591732540952497724241380003512152327767683199090570069303593734489065426629394878072511296945418160792328541809985539044653557276773170803774320299374704455131835582896826770822656949325812163439711983571075367682008845219074303114001374123060476363168022767628045397957293992649116114576987597187076694364427278020547885639116691057966612238054427024771193312052843919421560974702566916837559901475279773385432553130975786158466522191175914486450303927120077441456602567441007260608700729830092351177894856923067904180269123494636660311370175292987988715524533654549637745733156262411917682273565819136814432617890545514385203988294212453776159526249666184892519903586040174473798397706553730263625391957265736927748951532364080790056353900802715047395001622200324895642193439844936674890566949795396160292175171210453481854071631270793164935754989303685893618480449480733480111339860969123191871325297118263316217849005747285847380378878060436315686463023511589609948373225378677147183379911200652859697594305662576615192223589269754974275228408961612481491280719037375865110997063079162888251963643631770384185971224626369952201656314959584952152984098443317420492182459225846586797879864053267322228701051586308705576990011588353898966414371747783103151909701033150172166930029824015788135668575916751196063756592561851008113043546112264259597622006679359947867967680284373449127580403040456975653140606469663475601655793566090665323050086721257596785875269182009357301479271130441324252756258177161131957946217718064337008278036224308586088215787230817992028787080266527513369709415446224737345260248689470666385117872888180655798100049729946264346188423228820402692388752481457569822514613529885857900799834808536189093305014213345326509969696471251121483412983783918562919769533429098719095111553256375906483569958392204788672181156444343814815710703051059296973378599695726761465268084992935136405155300192371146298777236772707533802243838967943741454100951690063624892431580398905100932623130603997846563951098886924445383315926038683154879700434204064838666655727267600795422265027789264483738740494933959260275897100643121378155050168168624884354412168360122134815899391009928777652532052121175178156815709779884089673534695559889283766778676704624916623995088464370829970914920428402765866461820646646991426509266740552578824273518912150003005433332146532975782626640928053198659577077418652113442898858365971876271529344354093740400057443852098317271711918160745218257134458566057041586316553763125449593565244910434737353089555627589480202811309451522899098106504746607942618165430475934264417911049137652154802141760927705627968859900038322676420511935647954983197021572068556775275969250944357115263495499381203155155559390633018342671483958597642519915923819406926421042207568892154570102760876125221015883726742291138765645773478343747836283455221892320948727104469442460377416827506188299773276209029075471085129694583051233815029997940941746637314386737942994410014014011501092038240621133030043566158222834966323248514642075472209733377014443573948234476863261506654007079830713955606592343609076970823868956952874207525166632474315650564112220092362434068753872448734412984608380862901621174114963989974922401791775019739139448582826159509951077553570823678171272337277299996879476944291214906024622650073901171826142305327619314451420912563437016237101404589461247924609983241483274739836231287202725000306454573278485827888332970293623503168258841044091661301092981793535372682774561693310614471927501292943620484714207828726250013471631150993867857850219952790232741726828135867322511296209002140271691906683809433443321522168122500972925506809103113651030688021767978836209231023922249097650924419431590630995410527307077662177230942157085821385972675486446589278012294085586757564312077942565486732597755631917215117400194975755474726007982023955553946668900032227633514533245438464181743660497911194432192423690576120935531919347061576554707749218485494910679876541032490384013370150819809454187743739138718254732150437906001970443053305554113612169959631665864816066646838874105663138559903919589661561619053944201316088911142319751086727760772628024600287994023433250439531200295933556013661623482600685841602777705134772162238669175469575502889078044144670237149496240755527504302937620679850099623069770360077902766051333318974528981068868510452383866687474641308575120593640807779141124950878749883085964349443671396201797743356857199072882906287233629644215681144082092454227352388050651471793683827137092404547184296387044161110636327920694592532013103361617403049168508281205846397341760381384756904949724617837892329573013197762767759266922445668654797722759876904287504836020215167659776779320111722096968494651860528861992658843607709248452226421140931776591269397200530784335292609431256734428966521918002171573990411648131636010149223025846148873399042041398633764373852682626492550500552835446161395053818239449430187926831747188877626024355081674761637367847650398182662642473826326979293196198621524941980245839449661358875252115003013773672243704388025106054968676237439921053834235054404238298233848231545982170073989250921077486733818106354357344736179060664618305810207222151877482349552582213726992475744030495035833710105236257878979140281956332648018360232577256751986742418767029076818684409827571895583301458751429655826525453289752159306798381186485138052619123258825067853044127754983445722113438539333135153892381273205895024911150918989729646047986143247961233844866185829455718085929080392316631435696694905954914437474081933681443612596182512294864981385730453122288778810979397622194364165543308891138926978326468999027265226971756778165639369962469244047042883940968378504818439731639710043026146024859149632956863843177879520843005682135860399119456732645259104759412718196571386452337330092259790776691943116743968708971958732030834347695544768320465141084302059459181836977815132033245067253865899720295479041572703002554793980807265796925725886027037036818112353625098503587971236328664933054759466618952815380379410289681083378740149919261130897156756917372880114901927888518531079549734082749970329404233569780347327438908031432709696991649364314712535929025476069767817992566940029457587100819573547641402294737044962081999115749576216413319038759469929760928175164053128006681629194391866330275834450413813752049493491365976929411350236783411606231852047280162563041255536384544892242019126366878357655611250626481043451280182116940406489652576908426196741162039881429590478755201538831710922881977190110843398509810179596856807097047487519102878708720325381312256977801954388924668463269763183337149576677650701430977807400077285066938168575793715514521709905696314631548026910873477622529870430718535018367446293016816857184535582060054508364812475178633763834100266701969665098336665861750354622215664769982051613863336537385391784642156539338471738021711624642642869547492980935459946674333720129406460652432969455799973419857205913212099432406342547430401640207529579092786507518207155280663472643644408387864612212317989870312738837510415028881180863749604121038100784545229223646063360730608736903207428711136304383549343973728929204390014943064653063090120632963034145575947496068674873893058348132193485030155145953923408285267463103030993109971351857583746569650552795123570588164923371897151982984723281612818541248927287752651414883151385359352172751079557767370489263431964903428955570208377736420211306522932472007775146415266461643193407101338055860247033650580994568672545962183741175008838010161300614482243930808613065826303261110134496541409173284323103403997307566116118591238446848487465264616458221769403997682822641810581770280748998284688940673660070872910806260998150861325483004849939405005503662979500674108056305870564936376254657264777693518695915733722106342286879116919986958792961295077075808194738223438504944530424994623262380996188140649129077563307050429856217817031303480939148789312405130490931551313771887170231204294953934083248945105781538095130624058221036766158071228055363557515570474872571058791533418796627647995773977934021434614347848628623129395026186391878169595099113233394295193012289693655849404336411629264936678679253217240411530551297294583798503345259857511896944883106973993469748076012904195373207886855707340113018692949338209183166045762030832074447776760773104289080635980037788845551688885401297439938419902000610893567129618009558676485500268645941209899791585621726670209148766285027504658151295532558834296793542650111645336434578958017929291379127215041630783918128596126785132878887821130944884138240125452888619616907946830004049618159320698537434893005297305627621239394719483532306928386850422325441411525175450517413907535257348190550389039927207721882760321982979762346912516210984825474726315886108710130750516126500657998013789346462645523281264335630496418889191021081641321999966339323835115337703132381013444273192347273296685133687348307195944022452415878603556860620536822460954146024834349415670139428714635483083438562763199698987708089615871665497228205038497443549792255878941059603027141068554231167747463890122426930223517890143200920385277048954591550160511901856852157116126719049401977687126126566054548942917141801680473779939717844715279490457655583415970041836014642879552998961330068625450234703432070238527009284699931850827457975029490840341588965260231737748646033275361840422935256003420808386536874840107162894302803323097872929655054156073474059590927724108978844265865739306116667748684848923635915749597458824654491913172620874036429471964176172996647138599410144382762345161681200223457726820462972110153541968533876154127650424215365290638600659042879959878445360731784118933168597267176484462315337908688597007897810045699056412315531124463946509038659211189318500056849905305696516322145618934449478719226243174241090086093920427296926304640150956647243947615448855992255972186408625056286453028436020059553595211533636650757820457362414755799682138106259514537994756687450812323622820303520484729655394938015090725575752685173009517009217548090376034201322481136788663254119636631821026862109775792666249765937966046665111784460413543548471949269204261478662071561101869124641763212401818379373368474699068945473305348803420992883861671333215234086149140685862109739346934587260126690162998120043173188357183459466650433090472666780110236608579239186677533301379315241855524105629237908395474539194167511077420398844426328132079113603157414815467188445514575836421823921526441698278310711569734807827840090940521173872609562667295884146086782919874569021834601428732459755640772577455926353503197797925328587527979508429831497560976983651421357969822814257697226925057401296206797619098637459446027170314768139585043402221345254596058715364957703804327344625953260151956083566971233623937129576191498198825593791967501469282089450553600451711688422932569691021352919463675972039084981328504944681877084905730724570457698938028735267134098341524427490883951792547911193655818426579236327748543839412321438380680014445772995525948816337428842498578554658537439735709203464272469417676965738751151498907694240450109361134195771822751195062726165670140238495616136027682274214919579548038770661006169907765941301002708758782109642940925137499508653340759007690237961960561116776039550908809634956648196270240100529936280372573554640139242662008746941900715796019170688727322598076861229467926567120187284458894221332350018493470498004983823739365333325737319384636110531921244416227615967381875677937600613533042422808037507300382670542912640228365605382135723601040611461957272870833937275230686204764992021851184164593480407932052272292914244019370971175181681781881084781162744661735575917360597643223925868378902696496854692330913453133840771726915913481103691450485505855060863720910873927827425155065024757780412892240386114510271110300417618640551305251598944452305161670990896319701082511281125021623108131375549171494757451515173272451899697414480530702382804940036288556810075967592663032164905681705520706057393335191815764794231927796718526591112686090721023997899524455239530834358619934124933697677499716933557430869546469171369392116905896958453814817400185009382539998522479481627509566904787496060606843110435091093092326310625680416550679450420949881543392551345087554123128522494401285855504178145894758487612712314654480820054462318655008248564182114812270460237163237211509430810174746908579534701998778970762140413233293220763212968970919226887659623770168739442150064407519139547929202380368734162486587941569701436432436012634530619763589533383792896634301957098043302853412369494787876740304331324330256534870084023453246967054983143514852182542906916332205384313750287377892985844492826123569623094330231574921399028026658110865635029847099514663978672882622903429812636716488985686596596944732113421134872525729502752835590111082568248895411763388312723401273362172213123294457076652728614788224099789100008735653153770188300909677864847441443481439579236745491398957493912966660996014673435437922621412815551666321678854334110346808378459545419020133650446628883986481704645745644919660373010209155276353486806806771155965099453982870885769713085118406945776751144756146630718808116870992682506067494906477358273349475208651659377836867783876510512266115078205798683861503454250693739020904650936896078704319375992711135324706236764963415163588938350338242389249930176804187492785434710516749168486250430403032429592874040541481571148282901170906854035097048099524057101717654329992284803324762527809693061702500856898264934004931591186970607428816550285305724261356014836781540120223328926576977534974364834166996091837455435264420329664711908693397986268182189489501011762287806204601943418936085161161148766601439135442179039493419879127807273657185806335091973045161904287863727623641501603217404748474739332528708328102904332948844615747148243471544443636107440769831918600960939356441923984802439293016135219068587341788401697768653613274545038002190801009847367694176867699004328392247336910153489879384776588157068789678392283450564476539347362821202485290318062515573597017630828011300252583943998666602048572079845703068704576132296629896812136618083477056314988190223202631008927334031411762126784613707372419039641052015912145850648408403441113432403001637127098054518586505757564548556539683151042711092966684711387501550887033789060495704918539151503331171692675197815729025664112229602100164358896643089291754424178703024875159803863728313330238871364370258787874902311989852595474972023449568697806730313698228822641708623305272813826021567772220260516310064153799649398516083483964347000634846523804068143858261777393767796389155763591032925063761065535543644599258099519207585774093391733414953323487201889968127886028223046625058769892368935685938279320287496814886374174162659614821718063210448892293398588341777226917141282188082496449944733248832708205695741540033968304357371422869763158208798420898859464920446050672995392475324834293958763724247106697541441442746314909349858638375421041697425429694615265787311723354163033454927775123862834854082736852637066601175837359495039757060595390304424845075118910412371664451198532223871734951008722651399513641160354005928379996218410825050140161821851588189370612543220747931730653735463430091594071372473739070355422971416429840728048522310909710885343004070882670655951119925617754679690984972498026270010990963080403960700637130744954470909896978750454253765195254314830351929518604383134142521640775601288981055033752824508073747585126918983278140292311061692644107137289055526801177967574152914679592819320936186194460533593846207099711508445417910237896383208096424027555693770959725792621112742283610201175627788043388471238111824708795370872026286163124622025864616823110813082970061463896193601815244468555819016575806495153559970148016742349589701969333053850166228338355266283999760419409783863839756084706014178349640529502467353068154772333926541167029072014074759120531685057833702852818688914294838025432642769932156066199069785216082881840578365760043259376087639394871001607082352662435908761686811439399363858751484349698742494570047469887831530984994684754950407432169182938467873622915785592632954741718959165462231655029694041641726810190615127100558908097182790798706551622560433829945985102414151293318481271644291023825708246164345143399450647392364689219393653293518923664666451009120539501327603833163108322226024781534810136315558232886853645170798998461714220874746020300117174003840468280160292823458478728784554960912274535513352825319867326884637953474758251050528090129528639427437116988134066148612639315771498750267423222419995727523982175893188192963586654423736276418020540202139138788857363004538188480615450193653235404656515921327918815247496026931787107478761406628901821071037142509273210050246214302862846555116604125498086036337275423358870430287011113442446299075847543778801110956751773475885599814980489201091374055064100868781347465418546765928296844820035343554945725944482805697141779902964937994511176325508951485913749807205910538262377757808646868466647427458610844777252117828777443979591120110439810372170594448020409649390381016500738363335293645199532610454792568088447693610737540288726030767644677572298833547670837892462732473348697806466175731539308219667677117328124450910210450467522508804268045755661816235464691507398510140743212222564503304307973127252504870335446398866856266973429083025795921019254696106885681759607128943524002901657265548016634947034125973571306712204465437690455592757976620864251970267186202262578900740612706495974085835860616608001372114721609745421398405365139561343917027264931674248673392871443766643216843767703606192975764882317193775749804285063240405941531665113979877179278619933345066968933292603196795282177276738084256837594275905796767912536391618197769769822078242646057808361369572614368835635877979163001437491121099306072555446108575285691083601099950359656378920731416335859797400278103686012199661413701184234079217219538976964120360426319426588032779552638012976935240791463966765246642483296920350487618355662234017696233879547166220030748932274656919379270835368117735626344433477714355701364987816755981046664722148924067324895553346509049458033604785751755016469329048159473104496259853744162704798602731635998733999720269742711077506691647260482939156317287709165652564757135628336939673779220060423043821897473428629357253976419639056209648797652141444637005532273426454906990223124444945194013632420173762726978692969860091331247843641754042650386880472983133644900955358012874851598040914982316366222437172410394805781485254464195026865217853213327655539750543455911156863239579989179404404743623302516657028381824628840569008079501820336828223407538142189817941968114855007423530810573916256845923001245079031462258287594900635165750371666072118423431471420277226303523734754524810726835152383285030738353738903857960647111859390813968226374883511012133987080161177717540315741447960647627686663804733467699668751638329360699247316369886596885500786862061949860078048627554894959725201303641350410343326036109230819103861741540475531482299065764559529150856535930306506325645383180335607104220306754083186399842867458465126089790367217118488309798535694158909295530731843052804023506434442966965883839791024800133293774143169747945792353449518487837344261277059983245431470575148281169898804036456902188691177814234334818120620550979833393779110462528993435291071043837340470827487501897363611034179993754467168102512429866054588263730660025746743215517138774424986770416325949709175653757470079944616564494439623162204643451026036359526630617235146627759394586623153015244535244623053156820470053609205644722689463256569435325558989261681642320374715883131974078836938985088311590634930729871272211962921815321917706621112240041479176138438659377439225029397085880345184416164513598331568886189352587542208583174720535912297364561789724385287479068379404057594290696689107442710143483069632941355826185274518444809606545850193911218626319363807431242893253334877006600657112387845875955733178598351653514059322059012766632488275429797009952124241715297098487801085712817907513865460163845940087537016670273841184388422419106989587676623098868486148483560699170823587530535801905122606974463702086343917535640281405894897951577163099907668526571886376447027801515687674527878828579633950061819421326783587029581218827056680644894099992789472993816255439188875337008830997656762092339823068112790015885069334777993299207849985836672345662919254531135187544651921078043831912214874338813433940409239176888191295139493735824528041344699725058403739137800379133171665243653528034407197561360424631402929528936932875977677314299536706553855329322482198757923607995514342941710728970406736179059494707477499312896045109841376372308185684037788577509429970051502852474022956299027299214078457225086085199568907652689963417910591527597126223504088694109894406843939082399725400675992226122290513885626888860794570003658214058386604793540448442958353711669273082787909671017191552406108201755738241159679542462062310443010108112220847797644204031239781546976828614744468026403429041843961357812788760370185760231792374742692664190660798085155320019981780676828847783917311497375143049577180697973073117096934828637812199828774285718149167036942852444316463565564896124777191348708646884988759482398247723464894558028617274011236370246262064705667602110863795401175082338205790655094490766256984579339426401720711495599916573670267382956749851849790074989338898689792452011478563993716028063290545460701185737602919325931062252123537782989896421870888811133715151355595499842424765210909569060263167321111202323139270383716324596066207726533054852618460210701578836268722298728900720016832283239707924232513918104022925136012133005526457780066714542885729567732729996673991092334710787307106530869434730768788070296623384742815566513347409647309391240242529028071799503472275805187781807724965390465284765820480338263037086162426693916584133411801727728209914812715378191763140118149403762337062206282985379316700272969591653655546347847714632046531208256129279753800142316368870953299069972736447150648867170466301420996607648086014441073958064338423561664267069586963314895984370817175811914362306776950622917690126235211216474541441281280903215714139625652099520199901042827144055441300914504755462598567293821120400183916332224245556817190785135431472095873478458182861590014690023495975973799424107124629112222799398940166903494113486872770655036906186320492576408726110224584345410093261315870354354927957515339562376130719398160448654106055034682246407956744280842496513306407558019814248745939761318491926552753101337913011401470585726103877946400370576488208060700068061450329568813063698454281025251500917508142818955462755313433136804562583195095984147330053510320791600190296195347592099452304527413285911594913850447299541146130866837887795359788115606738248393422291831255588291146203870999297312480638439238895226269649067781224634782089976756366963529348123426832450379591512960882323144927315619289360648184691371224720270800654427964352709928894786190709230669761495791240051150626726422579063659662166412500388962827988619341671067228529854661537818912959074329319177856976191173057948640868587628788487833998425425587900925927638520447699799423355447572608566178094841851332471117015570377495512469934509385978265335673428822465311789261233113588607585702397444261370671570024144477270617550345370176815098673581563966988245736305054922911349474557302133953519019252527845668519734750601841023241593713254097299801439540156091421216822846711249399098086198224314657821960112527207410226679916510460577285214800141111766078122048851226183056457644430256687053750597258447587482342305301342426929801111112996817059169224827162062731152962232980792235112673337120141947849385624079209065527360480389940007133789958780831746046750580912156560708673333813268938078115154612555256036359856185591336672099907053494559706766862645953211646438588668587898925773275167426880368201852930993009111840528289571025155259804064529823171508828413433521296468852818037666010171628706921402802745221382945351970948840933449048624678769412306928788220514528196077085411850734293057555534687833893474618220670526255357876973653007905175906867859246444940851668949839419021967504304802104421359143773106080046975996839469875835958554297648924326398882554849889968636546915862561427931332917996247345854821795391288480279462015023977359160210042218185428266014409437712633082503918982951056555712582671248483124481131848259818353208001382313769055607392024845160719127392071334662454512608295566873209126228486289095521954885551729125604984578738188461327346586192796766158210367685414773877315534343932350267865332387725147247050091591053625968059566113224306913363928252234568475572572852033110274942359710881837077614455493469170832104743371081149566660646791513273394533974255693603708588889819331746962547661541731454020333154037772968156763063167501742678344138956500703830289655380479651043636183445319107154166265594585381661860752697155770507103153204409225781746624520023864248147538266371493710212906173772926006204938419919629874025635985741001136620098328762926658334394748210413611598912986832511106507043492172756840844191534236136816046124369005902939339763039011204077381111999762233020339112357414396001667878682481449234111237557663084334946932049626481763369242293689052984139338617538322757920918157839269030927027963818940796927338180689884241338209001378453331993182073714729294712009066635920147074549636822539510659164469650064354227892408228233762821979996595147989686750671853247918409522220410290993464431690413655250481325237586709929407706125232623798421094050336109790224119838857274812051011209826933859101310128645292978344835591876103852704121280595795832654899937857279187052851673892096176561251994920622924287456668131813670270922251928868104587661333006083440948607503654986523594379622532400489292829498943363033929144039660303869156622122244134742106555565670375068997619840886691328158254682710636193716286062509107540347016877079856347516744438897701638870368140513423549936787651279669557090246496659163705951525009333425873413731371797132194679845591074760479091743286138682063093475692905094382195375390096660691450124226235443148835162877714634967201159527001212092050577547960641556711390380105896951302019527879942058830511390281502215127001704729102848120869701694739997320557874459493335286975396285550913168407860919146431515942661193460664088695881379301244219672996525526566055985779552228984439047118951151071827794182881834176697292705368140474473101497105386358196360099655750128910855385615526495284781260159021898491638268907617213021366831164884829456170974127674138826680199941342050669166246850038927886812016965293110892045483801420528255974478865477925581279153157680175663901399911585198805259061511624660574363858206299914468308604484139028048944183584646866566731275658728562023791306221610033213655178593696587679048646648526536282103901604575831389452006252345621760884316693784903651331846826524036237485553479150606548673181115781599172150203833637355971490220183687694975022271953171153761506142183286090866223503566574878331776672225616011591653334497102157991449178296434288255908581479235010117614160723504739116342609671893476929640911848781093620096073997594670889712259297941440094206236409644876113013722975208008543484953582239294752927852489525845786558485765975159011678459959998086018619969798361729760149878116032044460026728685405287206580605580912177199860521212503019679795339098011860180723885030596113834449961021682308237578963477820598434199311607896652089707301930729715483151063195171677457568912085766997748018034052170147086634834757467258942336437196766883476179509997946687994059031771594304435394205432911614677592106503353751385868815648289126461980277197869722494648757345411796875496418309020140125276943866785784728711859732597113432026991294299486560519822757196908906562238070172695278150380732969524930347030896793169904619014697781446742872750478954052030202838376554513275249045927196813390516506027901009107125124595155744457053911908029544773090610324678044404687690023409491910772577529042795452044778394273200741232936899541759544264054712447115561981925205863818670553288237276181327628163618894139904389113228018506543666015621696777117791536442795196149314592191492670295506063068428446932572005751671025552606673690189280545700039290351802559008234707524138689857517155442911582378740209558500917643376812340324661510943565891867888407058794184871883367301248337877643202704207420591296315799580723724085051344782907919673479577339254039766644779890718927341430443641236594276262188340793334794991531529859633889334853117165246963900240842215166813859668034705705588908985840465926588730097879549966690356293251043652355497925085639553671632409492145896774558881995702681499220026005762685886826944537164856149896983389978672098925265152211630352700494682566602199838209622797775470929008092338147664964273329857093933244197978369317324723148478212291543842433119450617082448455757054155150949546683222695317514221295193466743009788045183514387702934913744414225196849764053471341915898986930590510283669776596742113429706788664187860871787276918523859014242380018510008503059231829849742667750518122513431898193737857002851104650624943646856171333359005534389098373414432279142300656878211615250752156969422604228074092995487150090167801158756547480137210599411257638066790781273635832505556740200337556290423830090818062826645703088289830391588220827559340824213544400963787038957689741460599658377520755022831851909712974301234662383109528478518210150115798276136836473950001425538426385722675158723348081320319478641197778070799503962652594500628252381234954666069612143311834611328435589961193982919026349109873173252247525417491380365923597160123169497331936055780227830725410497019040918682185060379119752836600167735107008372014695139847184434925621853343792994349072542216789741638648474021197957577870000898595495097914613347764593631797680065444113894593262961820567301921335950488838507418995466995530860474638781994647699589270143599459865110715734176667465316346170392338042071670033867816646515460035945672877147611497875009759652627152768405199337506262628374441960351314882030136721326687184648490284265296890931918822248279443322805018335911448356012299952876986229370459225719049793440242296385254188295034463411932088456070826452244436107013617675411431749592060303974133000145607026843111406532530256551151796819835518343785472665309643601688513502601360220339504429530508046870474269500051568617030532507180196181038345455001055727182978868853129059513830544669859957541111126521792611456978317768396763806023145642276388916524065295344875132679960371547743350120205327103012457022750445989263217291046458039809359546206570568286401185112789475658629574847904916933463817569852923461302555308810922608308201775193387292026021334716604342376751616881501859037493718451280885517902325476810127966626834495969664065976437747514571641651473320775301375960897831523922067872170816396425370396288398381032464954898204747589773985898779207001296082674714627523438289686782462278699026862451010304955995205557528991035575890617165348103871748934890575280639210962457715022131956644503758483867596797887428492150806063386121671433202652105839728133360371717903998059623646514688118732193789055267929268901026872344512850715366840062947302795450374359168848821967750198205438214623927579974430947359088610538138666134328920550071769422157473243399863441808620369606962404156231180440273857487292299162699596504818632839927625536576443399122953651762909672532204347866112412960521832966042411653313117976317354639894079016970642605885425674710429481596787799905327604921885557281761105816775689565453807592417793334168738662895966885070645289293129184129327166361391141079288955124455199145163749751699792318283628532900033469840329859479399728080966516072520048081365752824862982003886827173781329471745948804346663577025405999406323896508848412559659376612939835789449617249622332302581189431594189285641650789258123416618374324569843008334514438693226859569950631448933788993141986194687445792071215562480475386832170530071924906735153186823182395617911187656268211079131407867926884655877372359652870657882489749990292859230085053938073862285152030726279578103434796921069338045444632649529496952518537436831606087215072799561331021039060520666428336043562374923940368156942982436429404113967903025914228156800468843482814183821768870533428281333623940588153416040778726826643540489609768750327867013150556300883868869180293995073538381309524199056876557467289490094504631879611139217392236477251739057292880086993445025044100275387565942274917236916346590543259481640746742536383775694564968529082333477132048057035676528253142950453382704036850818186375307123392723595125310669315097190324132662476544052960672627983086393808413459177552408473787772215257889325189051620333441634982633481148311978036456624179526673650887068496909344837352579511793735275319256422699104398293708987041774453921418705852852032206691943903763991424804007615478395849886844535025365904201440653356491387107454217856424640459944946675101289850347758406571709603002553820160199410301342773627261284226397548806223484450314531106590686753280824932925912438265673629313130486967674304360481411364610206721597530686977667001490382439109052516888381096230816479138413926822383316895803743281245272811612830748844975861961393886482795795106464105619105493025615724974414466446749845693411006671851294170501939681398544208539019367805923451583436381575585517860956756185905846154379071795341323950531825311867945909074964669017480174001321734878100576497093237959671456559144170863912381918178498918788624150029915391399578620349818928750772440974272224594320290052789687704336883581661638298474067445806605488308235455072288898527128388147410069336310046293842168285523633871510740451985510620259150167074937007172728455029348386356758312989509301513862532009678742355102103583494026818401403888089889864968826240290561970055980429384284706235388750098899865807049191365655844380917295421778121669154451643242474758427541486439020188601325778587270681024689175277748965550561653826328320361089569968912309614102360378988462861308021978806579101279728323702210754569629270666844668307044943816080413308029263769186861795486578275132532745662398663548697719715767735295849806705213258349801814883757998560720477477158369349365473933898131070357587867554686384374665676076573757239216048736600322937647137594620406389512316246422604120231176254593087132972844820802813695418083332506798176214800236547285888050132350922740703526578440798849438051176368675416496372423380502073117208859029433351152676195531371712732868454000876560954486011011969815888560632350261024581178937399597007548971222474155406334876771850486371106687363069345724619546611655705080723463227105397125501324639652838905692292935504417607801145436807882014624742171632088395166337106644076539217073376235350824670339734115686154090468509019375115091446554849329921951751582742822851599359106976702668963763321266417210053183075829817754608090419448520549548571720344099228092583438553617365391692791320126854418164182587918220929189358928810497462137879372508759622590788822268794819410007327225671689578298475148230163830601565020503536816341473006160253239247906057580243030143192756487724652282379174168649204150749131095215254855398017004152619816592949662651776678055703376745034907381220774609308727601451865879580868570345956935978570408965850290117794361335725401990236913969552069394075057739331977325613948221094546523012570379025311776477379273850401094346600058362614600569287825204711880692196865789914573670736895698540428217248755407693312312747756943900058773234333299373284606385963097609620245948490727538615060947822434062749359326913925729370652100855844996743346556510764123017253898077040112524565175448652284065979343839358845492199098653762512847570577379940563459254951962025866022176468434923014224573801949720802886465222294527707394546872921804727736522037064391051344024126940135696268827683835254616504152328107620644419099197098700015430993870947730774198568266778170337445671112498121102723158188999831493216507250285051444172670859765557154590990907402614639114777932794190604031743288329131619103735644406447063372355971767978312931833535341196887877531467091533367012451190452219240467724397841073866232956496838113405344173414488565892999125075894565541464382901727461899008658012819032344465324317479475158049295667592049836141627959614692783669315568305999728587711384269013673760484390098377170807663349122347148443592345551848037225117085608678149306640850402566092130233678940790005470355272424892684708004832221613843050140320388477404770026361365524527769090612535952424304614661805918874389664332948600453872492863440656784228785506159422012863726273958045772763125202826237762944834246420529907018641698132721189609855967511438457483354233023603547354247415960761711487674217894871289874513951227922247313912758898964988108338570135096135877183383678749326608993569978597869557166746639073245493171816651860215146571367694611879918171890568181601496731711504748957366307395054186641995956791274298580603974975358824008288867527259979963865025498803192301972664105535262738460901474334609224779064183808656946338764930841937581074515866365156795772172635396688293266501819040050286164933424484907654344575850219091771780025824503512749977676745131487405081012752760949315811642889987976170005554995837116897796853350044477221268468436163801952002208912893138346967476375513393353650694898156897988869471210510917390038090058980750802745479421740846243217946242330457793645606104166124153948976785405198304716688617123057371776234103910792983650137452303251384304492669997348417216887244045386764076676572961338011215401623758139053032310254123241407423602361121170520598595408874103374457032043687481762890024855733970331875683909236890709046005257457051975630568521441040190947144125030788702082697904404280570970023455674214746915059795957873833053424165131246282247643392985097843034935648366799099833270197060386752422101449248832806723194987442112277788722493780332187688684167882071787449629241214149045740515826438730294709103257364552463343466429785521344758235835170171876452838404160508189825930326404878685264988848011085262800573972746956373489570248145917018729341225019148027403699233856068246313614032387162531412650933344371672718393980542184712447623989661453858013843458587908734930301550337830586198578096631179712032242478429705303209896728569835612457826444164385846252039757899482391734027136419727302005804284074646650180058648864370862269863966662140596887549705239023985071368247955503436116627796700691249227513250396120011043362031157813465206297791465264871534737258363611284464656007677469346636681667343325395760523069393015751669022841236135030724642046050622152252917916719921626549339534208165843577240359978949062886667302244687091470108462574657922604673008461195255679944824845624855678447844432963304330953019068575726058593456475296191591470731366311235674260544327985241578221679428145950677201424207579383494903361889945910049696951861217689665618449007926604095619835203125732558915458601092858461192736120156334215654436271706841224919652064762388737808840922978318728830962463585435147394009070761947511067712168682573307404124708367256604859382530882926354803810661102100304104614149952738626429890340831089263016022374703286325078009355481035820988916794012548455536087223215937716120533712603546609132080573176440500667109435131599930846486533622879909876514080866923283504626451727032671543429669467091684170415945792701112186452152112393766896211518611408712599048693305315731584059270965810379970828881870964793003718548541348128812733122363091512419304360883719615205243914848950373568925218360088069560334469621698287367269390003690642249125395552510613737517620268093265444960567403221487722609952229783132705718975136573776846609260655318020340737620330029858510227463679559940172583459835387311567866301888738563960718162269388346688536354217472687197453122940370503147705685781863653779455287640732845313316939881985362532034542558909891440087236124456906171255983117646641631504923662046450097326703463999160057897225448282342277338278466864330469735711032641459567509763414544286747036218338714854752750877022866179758045767163794684704568088025338553740481142397282455287008461849677724296221345525514712479255321695043327691915822357510114840759104672169304140596868126688665487001612224280058665605985229746141061972892429334670860469787385829488444985554774113372334294094151910709936941781056664169314549890166827487455526970851679806647180751113818737630108305343637909662546856285958657099578759727685338371391943479008359899233015255106352499907169681959960493138703092424039148861370416146281621698297193963963491275551066572207783693799099619792535989591352423627948060138983893094774864226428893791433347704681865986091157364769981936133072693554083889094547432005844841019520261175252661428817429699270184248370990971239137162574507716972608644913006106905644427545001391068681450039219044798452983899028981180344063199362773716694821529758612956121328935743909170108526060815651413770258789552277218770942445462468484589935789688959947590510844017961341685987165302206452953997477499993473664268345609196749724500675311769936276760550811980569880716063898601209476060148707622402963589895041392942401786958166346466220869709276965549370934297047416881294818041416842206293458790522196767129069667123294929119837038191105628492564369960575071614271665823229271272423639914462779938737670231927462323464891603468453868381884849619351256449952188128300924111555508039962050255843724620953559672359464522239990994322059015470252997357994230026377591378797574720894422857691473068521871267155535532800507489932739852992572154377301288953121683544668518663260853460843690217617477870202628619100125426348031032049353240477752691263055865896634255740280809738413512054536684548360101450366824278588719870660290548706884355282779519099470801439543637736659620565016751966350467300536307070091726951886771088770156183593634270182890227731839745980747334980003587886314897812008227025894290760710799157669334925183630684667386598155599655952900395355663446191355355271891605686168006334818705622695393013396697129512291951640253092049732814823817125339958493490202358078101894282150571809436285830299923927281799807263284623317490859505248884075475290423513851813523174219629641560954840789243841532089618348496619383408113514881547516392983128588521063712505341949460358235559340123256292809270028073252748016151523065079205432506440127249375434152517939470954757558396145612959909239247963414337305891691722024054790806973948412247944775621669225252853274423275732437059487563432075250646957401399863955895794352157780674035113314897461463890387291874219060222026431554675734374580472580119335097700464957986110982390227494746691901513206905817321373280640155532926194667507694925395994566622890309504357978266352085120926890022777666733335472228209935346986631627619417529822874068980574636411694365620161409698952764970190677101780521121128771727250472837743506485656410325955305823568411161478190324234650238254065568270143422813977902824038461489415664040718036654507574001840661502270641265480502465248255793451491787308731991353570809466309941181712219575547337668808985047805239812606337313638927030908298035909496229168801538761820582892129341759312367860178086430981249256515700568653528657350150897651373860147100723965807734319127882600848791244509010023125372949283220984853106706452781638775179731026914148849705416729925965318048465670871207684189573456077868872403083079267968704660061608370590020506402042829945955505099060140747620765468539785567623086520307915195743197873510692585207624798421473307252817976906349051786634833408045634643765596507819575137638788022574692557572849253827890260258833625800975500578449272215284879554462852908149033746174613562686001524437651568089706223829969807929785159042161428330776752481391058585249689689941383156016786698723041254429391695429442654625661728795102654498874211680583917127558024948067066664317851576213098312293284386414874787115660338988153024572427967492018324182389042602747722085697521620975652018932369079724235408442323216365100641031836026723604665056646848656425847857395181262868600067780947264392073122605788116410646902857315721781111607445599084970745274613444388512521346607499771661786342649756193447616116304472484254141853614593104628311632578121981619273972610925619116216599567381584863263621464915484219936292133381749380706277608691795721142135027262001909689705536892447202281679100808315190068913558562395731807974325544314595869369668083665406827708714139458336807307429273014589434144814486156299049376741769465072573864706643850583368309953562659707255093514778523826822620232995032039534249284252542478344853217787010185443380369595239668522799536610164665315449374733536544112658271528207264163561298037477966597666042549501116582014672447253111863262324397973328076958242646538833469870491477045688049513658371430201210821783001359765817024745391117399098422376559979196985826099508642465533814982244876203598969110427638342093117047123476283714111252131764753450930096338821793285527884687904574968253597361060738044343559118760878500007439201637495348943417422034399441633716112213148396378755211280197884124934740233190272400421573260238512346905129991160198570758237251465727984287348384228923939557105402588230548748669414786614360476285827618749550947378010469363029837719867280337116602431273073177063663987423747034100315882565877483869001767126813862266834278213477377912246773536767502714420710491424973994673848067164546653216058942707307813410932510839416596209273523159306283715928205120324118307088191755130394952188362917686556242774724709386561351528130549304510164403815498257613880371911017000330810267262451482026643104736271793268732036145843593240557117754130624972652114796215952555232224342569976070567144908045559350465438155162642395005975590952564025087077021999822873639654308592768424211787440398307994134136435601714339083844574647000819717054420640890111958778640864931002721018150064839001588538319530081069457836371624052275593644085310233477205431519740994115394023638150093360860612824964582140536476865917593250412084488498124110501910599223910806958054209592887225887951492691694075557545365159846874587345022923083433478817285297388488024512659750783434024571128311603151173705636250778847424829994031247345752277288598040957886324595411688597670066659419932104379745597379945542696603385940587935808800505675510263867772316413857594656056772377176433223654133337896935772684246098082052861364432184056248187282192877963911827647298398558656114091883124221230619515981073936379909367248925909657105457993351873856269531829918302387184407695403703908750726288286713652939609492273902794447021960055988330113832817233821447609675728667152327201433222136384988927062374818945123332003595813194327531880992437268636410706330635167444137893011718895972718490663469338361280511357440771245908558614612026962294925075613391173917875095038106759542514716015211954081854767943971363673900498626105846953474430042276666558655111007725460244490789308946613559940902147496026536972452142848647484127745557521947286963282039661751999653453783970059406878397813445255404568721967890536189692964648603768141302913677395214556364036097623947755644232752601668485297374398537633848750578313306776918431896907615646211104420494528598989497942044119290196306618563123848185535124838481602797049819555703155451938481933707211641016819703867265802940533096181538465289207674259100884445788054061518741265328726358735304648116172276737694199451943579227516046561837866512062843911531331202040834468869791671671652333271522077627705845742083968289639720595960662549488752418615272999131549765349660079984779425656624296011740247611882662353711803872368057081249527438564291086216821799851246856735859756728917853129188908845029573434468743396613070407807204901024887345928890297135635612425516221808659304812188707712199138109063588882681574089691853651131851980503334381720836834567373830842603170691222157317853373831033202108461359534700549935604018529344277128520009183817343360446174835603274603112411109273048331048007659085636805027402607184290082865945759628848259049028297710015908857505098874198035282145068457470628372530969453794101965031520252794978769859672938982731143136072256433793025565645358020060798837289162813003745730776219381308792368801810309126124663595635210104066631347852005184635580807521721636350164267548302858249952451564770260996866964943257062038658218569099567011219904374465794697305603687957941113111382229270100816892993439694347992921959260588463306061901017567737040008534518688450196681426869163913795524234615887520388373655973882797255381443346675337852145189595843765337377361331686255681382391380661146590340830063026147012163280381555369827972345819836872358965983132389349749097446449058404778597274466584416106052660605383312740970686195043042560447088141296577351127132119739868225180960952558015895572227416475346739919942435094343336447706310105938028502917064444447935489165265497247711730334946381867783439249360923358499713431792571061793214504600413237412190559659227088940417097174799087951782091267955261909324612048179302792826352687410569487731788016136536865430058831176291432279778129584350694320344610389857808711993042830564747492104473054645651575902661585776922746790264321378639900183324342350252769484086902565247082343390480213020673253796153242700236778206945115731193297116001071920661210573703329595548532301718947520258106227873291410945235598126842517728975585582578508636420439837806044038295851936242746797000538172221526602710572744919059980107946013347570434585536877363734460038956865563473839381501209058043320962558122364223396279341952176736596666431547435578885270989197022749274828092196673936891000910498615019917260903104257264821029693520183882968359916991100199059976037655589030264259235574139820303818778636863097745993045373331679918689040518462330692742600607130124780325799472831383553052449037627967789691723634423017298933521370477918071292599350877018904924134540757487979035152397525482777601386061356018652950138977620067941333226902934621538842106565103997049594662778248974870058881949719707260272359273479434880865414619598924964658942791749308609002304978473586604337229480231746859775516992224229263637470527035735900934358401507423815265368049193381654171088293169097411702739864490893806275524160581786913932830459137965549486002186182471080998748942188745402807193045354882769225434075532709052738086070462428079977915425761544062609374209545039003780319522059693544622282547684604544708713738413883763291614786502365244120138019659143938748408792728793903575567799165133563974582435408516934407227546185898825270191701698663942064699148435771614585428685795256458948472103044976776630641482671750286167661320015042585740183172239789904600545038973089053486762998415981956720087965235675219210263103618690127951949033770668528589375217409380173910679531280430046578789138672535016858771325782765150122963906801090054752517176630301359913529362105582642252252371530802894009985156002424336177169585531275170337853841368169455963344889805686340570472740483466089551182254397202229646724428859146526915998030039594184349741411022118258892592982107781281788125001686098902333948798623098382989530389605565009205967327867351047893428333168515405806824277180908073661700118887602276512517528929530072207494751752007049085020246077527730346373671057218449543490910854068584319157844161076697080236350874235231543847501506038042708069850144851722456315722535151438988801351400006935292772691001659767067317257254259028470789818238893064908441886122042912993651206867757998299589815149936079885513876540270867390747385811506046213732982965181551962294545511463806513697519346696588182691181720147019622264034059932008494888572329765894077066694792646142006798797484568312580510257732155947565318507792923503185496737090330563072965587933095454303058746828654944695416679451881449253385427379946039580050348043490836348767119768550117216819875184481575379431281390789919976995924837719061351189468007869999601547831308559760163751888756719325569856481906777360006957147987862490958431372667944657183377176703087118871390478297766850533760390093033985606272716581255289837975543489937243966317486572755827753563126299207955357592551834345680942574420595914028849570925580731381365034977709942101275913330173305710304000441388903842177617863290652814004057803200441901959279228488181507780005016791367927966141322904128795513039020668610020326113789256102112072383226474650268342546756245886168628767458841658901996154122072207724140353250052521394893639928524812238799084843960851347153747331017284381714483152538192066058056323237884421662925279738045526592717992520907600257537539745187265988936348882451132424092054656619101073328860139262550230049127932477129561264936225434788135114582027565379219743529264050626038069066247923123346845784902177750386574705360926842553559423854953186707280441978001624096203132789667331155606585436354335316387457111900736979696789426569913673750361570529588404398359777393653698394893516218402976029334112941894690199783686420650285964401010014886266463937625629142302843856656641752588848043204430103792087236376860164272659754550454726263815171630651323587584090052221364242167536421326299116487606490651100851749187149501588919943909502489083389019693676105018192202412991907596407479221536516040188013488718180657962268402005641507087037051670315581882350955861795295398053756460260229017148921667091893339109020655397213243478114172296927081678540955390704672210267390874297962632638824045595807189144360668971176155771205726617174257525855883567127341703365474513845575777378016229246702926044554256494978075177169165318909238988739814870731238800193348407059119859238523608633603187386528145730730790517205827410272022752523718941596312550239226538322630373561933010282287965793993259380420688402975534621652896387585317968034102828704842902608188108840419424005549363722460056568797012120659486318211973327919927383161850797724331360313077577177865643618229571757862700334111691614464722808882904608965474412354462882399167634715008411185758957474440158024429276298554883129792382523872702949162943306215857853238497250456678841076201693692012034667392417713665097588579946655726692338006159296718003555549722023864614394770869606864405071249550356405841811696278539800756826924520375061100807084780136876517508521581416434470195620832897199798591330420269164793667243127175943952366857147982930159161794778077002873011405967682490170144558293575047356429548656589590483658446074244016103065503696990405856469853569472581972589595968028796465265106931584974941519789312309574237941025355169041925045883132322751312065606158247181475120209260627829379675513237143369804560614763111565714517360421237625183318118985812290110067577732921281815302248086292116407549598581093710812188180455798482512071402294752251368102868560901284533174603856284215371597894151713236936562359222708858327844445852935600713406737879703097288448200603798329739787452243222107766465990492417241509785378079599836875349250984750709473964283739072043805261498058682383114425475049655342466251241438146018195589319967391661869967060605457737930135293955948256315329855467561882788650743345025119268423689700501323130069683048654008742326298254064641311800198606194491628208939983529519747799862566312848430302963793248284835418967985764961734627043215297438432281555672017081073172808408187032883594712869172242949897849654374781180106271243335394887827069814949389858267786329672312230023463194385267747052456810111982152704935756683553575411640457197064886017499491766654313976916812229541026528687488167544170762567686200717074026612109061853080036358567518573495582677006165018110798445377002485328617255595029916681954028622703251331646227720900593844600307305372099525514292698239479584175742865457920035045404387813556441644492196101463546919310053763290499742517139948155469304684225762956971381386370731718094943378039754728369006197049089566004180758999407706665719449666990747717716757810362380153114034137992850480254236394830659650394691097386944240593587165504124835349725613317381819422491171554915473399902623989441330218245387501979953405470063728186228315330435025559390696433721122905210227076000481927847752297596759120976164734608726572472402646251762142874169806689516375095736003048304246682942518613257270514171072025744424923694026313586537597463598736318512437587868668337788975956869322630793331380388228183558561126450676523536974908655939716160185953463061997026926664049407490754075354693977737487459197934909154642178205628860793966557634002106666141053587006907827828799118313778098601321250239214768738911566748833464277741582607231616641869863702542026341645819239553199653114252321127480792789279414061784941437112084915978932466838138028289528256494438901292816003017513979279965236599886877284051087607605244850711411846671519684269946811703238069538089418139011733386621240909325798517310481624857029828614507667434139098232660686126687117456433432941860161944255114122611313552610196917085587832992630757601372679549979205236840375159640810950192776250664996185874362986237293099043838429128866461490159368822733937366855188916321371894075983734101241207830350811816002589210854940417440476805219351624889882364519513358272847159570961165643895150022507232324468378809628907930080647155409896985086172057061046244151484153951648285019771110942841244464773384664710381799752758306207421123440279685576186968222966971646244161645904124143743017430768167460483569036949421647823791996617152300516967900292001321805938336345151911283452009534326178168526590294479975858113268472571179483426879178247023087784744211380676140184911080506575685633084240933730301895009819291017110290771928785374804065012075388039732379191357175709738308015928733043602259140311501152787714214317647524463130663610589326249124821305615843070279629825863247586942582132307486491165832211870435932809930036471540220068478597512398406198483679864665722501499595376865106604664590316774267247417269633890611463831092495213529857343556591508246995561981946575300179846121861571683527212050198462581640261356505466639058427145907767877228963227752383377354791975344208163080422183952179605474518121603652714308289809447729580811127349150027558036592507894725349049633922891496071321612067265005664270382269456185098624502687018960755898678127631879876920565213830009235859442197896547619029588750589640868306463410187360046399072447171483437004682543372965203841486255806433752611300415582172509779355846904135937407868422203682886602913647909225760006624032380710510159680971324507063158453196087004915117148939701399047951762889595744665820567430824994513535830288856090469378636459325164632449703767176948304279717704270049531379091063316120900028501230974213017524448211754078693474999658197527567182740207472101210142134486499027886979170051400439108595450810725556929119915136407713469293280121872638167767250081378165205038486653809869638413021274823659803691700614398645356307829956326512816052379103693018279765533788745770717216134264481473160271623570447485490384696280300027722305954257539401960981846877663503418032091425367316183418226371973653688676748291441668277067642862062746040074343022830523092868748021382718221483744642266854370054390207136359162027132173894303887818347739895555291888772702338639544302746380699198385732728253642204979709605249599813771401864131093260935508057846671879536692626392756528996014011734801413710708638098046522015670891933395084987866553383568176896128674667481531349179153673504738020062815156656267607789006140228784939453423215194459568255098259951615499953192329254520142497339580528735745400451019421295857467860811204316331972558005940492423393318131754450456460342490937771110288994347829261557280539397374381993835646085378063010537726934343547708199882127967054961505013977318550055307871721195119675463460519561716802517146422079535278064811844815652312234738432578992238593913863360139519346890323693474752623873082490177474870512887511007322003966662400003514628696734758692503550395200078191042215365374468989296110397793676775598883090950896945595560180608524685121768538246573404101121330057382088698026477531337818398727721533986473770123055393016294694944689041861515486144095178668734965014219050083098038173194075704054525414743920127787027320838640892401858531140887702450813538712907628703183037981879930004911381802045122114235789564088049556476932869448595933405944378134829852300661058545713265639498945868566878425514481775481728607420647797875631940742815410227877047815525268863852082873479242420089164470586372030654988105823734668969913031489194525540102445192595133926022871853870942178341312682968944084884622363721770478068421063432111081897910874476682989824343546867875992699452328450019951846665108969861576679964026858224960331252210137622294072121319858157514275998998430738847219679831670816477108333229789147072901408175221977783697049437979723714491528708920489530220993476107344831582066753787898401276639301043984269970104251723017370726996031574497773021096914955527579055886016561617905706537088466617468610070899198888756586110470719714126479908522737019170298412831549621429402478992552511932822413917168307618716372463113431284928830216691624974734843744610329269328444281618184421311569618787227750507405410729102283138254378320625941395703515192732097196945083337022651663204428340448548546810471108975620456264798039113067442533677640120972302999752555433510324724496456495320470026368631875929779187052415341960595058360303398592293201320612957005037720425695509280260108519554990657301814757426953492863171869731558886313702857857399713500449465046866065300720283793747922457255045949958336636156432943783254152536052548193030261160663836592600106836855042953237088959145745181673785036011715748889245785207777029726569176011166868993644763698515954825653629219352683866189361714765489888040036926847560950867897524596644846380678482493910331292003012295054057097710296952415302558375115277241590448109661955285683440015151914946844591914522560435508276387734003498993427139662918889877474046873728569839475161231728623778832888729301733862347505135658778538686576176217777023081350625548956207825825837836735782235725142878722725528772735704535628604526449437834606643907359277822382545381150554084859874162433312399492484926267176627621276989812480118110074889933180693397971012217087279961312537281986047216811217993554523607840777303872223576479337555457217520972542952158033708845159460121016847728039384801382094465667770156302047281855843602208724782914132523405818262050991861779827877948584177873104846414492603478895641431555690883402143428989231341570557242752395932800254251154102185857363012866022519866363062516182358531437865220602438978099172321613718880136360085659735322945170457069432132970361558143409083472675649963579837638283610845474284199234466580049609422839345709789724162631435731496239117814010038814622274396609484453809268034583377075012707413583420081507821565037241751881067732465805169103745395350238129543889662731760917687121009613894340966078573857476120722881242755524158008245827646286401064230492166920001389764272186754277197780581748481578339394162087044691954053821970756991162992301825836168490815919600551007306212671901213902785432776577671092300023400359420115847045358619981417784218028673437454572571131254031383545127473653246428371370224048557469310637043280576048060181616434959656791303740826357123703620793465566421246546774211747931479013650880251711121919293331679952517825668253530628350062697600894242402792474754321507315286720386732953354834957291075136757244646367535039887170688177356626836593056582472648871188732446689058479889481721461675097111384910917551154088295970931212605725473378569998462179926268477689322163516016400786827347987470809665421424923864297336663414420348476201847594450787738618461223850040321562517005678646740799897481596722102349758518611511569292030113845500270680870783496883133761349171971983312030693479035610140972798657061024513737844575408696090026730200071472832337011498118123021561354957824507620705162394871716650250910043275156788176922721945287463068788977796564334743125303204015820511265404998206934186359133468532254687237207470067602212597764684377225273686764908661741658448381050767459884096517284507327703846855932754084285289127243057080755099830217533809920161703876227853008043707483821030819708142245804711443089893438135661715953010079848892254341738301269101897620041726182041876341754936531785357395252599993044191623906147763522980877711757776190058971129289222362699534241553742211913596778807711743930130648696889251004397282186879763782605126868166011929996883498858930947054957227908649823556512493452446507944968228682135853592057125692203803974632651354612914645686879585776499565870645455857741627193036976728857236628380348225225372643707101944756059424458865585854828987757637733199139376970378076003703951936404741862266472549658234591520484555300494291664726986968604831789942568041288452523120954464780148661314553437569420557016426058521251570580079696528280284445892973465696011746199981887789435658206941438270937195448655253439156978447007077595062346250853267847061158711326009620806677849947381792301053426050230840875258351050665884386214893524925205390143839452792023140398541478090974550219927011405290279673903609640767115689885590396753538432689800786158329620700128163068438224156749211567017888904718607844209222926894595742253591937032335366898177319336685640560625811794477606255423451559831762495817822858816525212469768527403316014691205025772683272645751893828097600433280542500332894776836275750475694504008781633889441673504278046712320024348397966084111510915902992380995766407710681134826569058708148660141536802308529156990166794811030274559664784139854385548129022370980391331623860377290539225732211848190889238477689987051866447256168629234728409203336650229087863555519878416166494968615003401329609352416016422718253034060070881951868012167504784513069472870637203532959281604215470011288115347311884296822409174980762872647853566738253923622198559375105678341425520427340578667459685174381761288851586782889083315183838357305216212509747016309683624156264694641651120668275981094528495546320062221244000918276106525363063032284640762424679063563154878187069636409886844693104443412566774657185537105440281699237934145444566573790170308805604962957151944173589726745731547060433388273989756496856962020511554207299429753664847382580035742722060840395520295585175434543216446143145679225422998550678469116851418186759096404515609972638626951161194360178051434505491407638518511135610652459184984156461197959176878693085981323131479582063726518365810874996342894605812890341066590211045087496522814796664851633578554244102581164145005907970036552762441280518617514746396613979450277123147858770770580399342551814575375249678952844724823139986494613817930366045924154397644453819606865503446289009801374386633298704014264729279159519110868584921090898258552969695432277760705331849038272213459832106355435894832235085551884232971183902859710081836574082844834454659003602782855802000992378501391472003853813332795253359111804445609489451767315934363789625623816983870574384938264832068074722130777938568784289786223246019116587195427962971409034236101856798834693684103898438213251718157013473926438088506643411584608479008611665490069608413337099954265349890900577614811122348783747348897183106352489201192739043749534330623604616763779554620616120763954580461371374530358151039447277744159689626389639252834133580881393938574546797020269384113091607235964986757390128338503150681098744218911120305639723920365948765996834701705875737990530395712898649369383062927079816301097953468686897862769198393281249908176789523680041281248421387896590057186531639050405516067933016387859551493354638120005274728113025235632391901175016213247530062527450536476033491751453876897790298155281478218969769353373755645182307738199281577382583828880862848836869783500900335438020609754049785441225402949401183390470337056372025140032681591912854127182074938909272429746621246109785190029562812692624924388947253828303882365345088414578316435383158100824013933082629593179897386301071335485877806319796765498941139973912460891504961566481231612587511986172070094743268829439192189561139483179565498340199250832930740501783652489282243226463384820780776490454767465717182002864080326961597658149298905416114940386791482407377503378140290356839038944268281963370394811129129732851709395650596986967702941771983530160974658360908526253614941056046911397767932326525882391881095405078860308900730982050112348524510665948667845921466920413699744588354703123174815530623736701386796467133528927231719392346549760618166988977979163153437674441904506284915625959912619935104684455220608793402052817693354019266790498360380076320404583334064555956300721288577708756681503407344745044555900705569097583006247798127470035033112000584536623345313805830923540885131270493438302908592724148959504724418667180288905582485045888874237465385476951449425466644579265592059282228341447168646974700522863050273813999712892589158398523437833637935934891730810643470308455680140724221907140235937163159408921562230336051761432736595867657165623629727515764088637790011653744447315454262043831516990205040246783962922333308445198770824679825332953015786608374026876974336992706959090052991089300583663940995151345758860876013976254649512088510265173231030234611377204893740650591162773059361761319406962383169921843522591876628793450210502007739699031925566010410375383642729028044156055229312873419539467421789167259156931283803617876619052474708808701490494251252756434899231882223499215601711402936062247026878431211558809659239724198158343839595322873802644229361522469152729408265529977031616125330630583623013779581843664112972876452600974669079478574847507413004657676425702672771568269650305338755204144497166142055310184207601184132874069191983436469193340697236754180010981151566893910109930206195915031333116001355732366729642580210254507372677124067133888124386683764669463110899734170222684335070983308623671430386213319134370468902812324163270241450530508348666207848689273479234901502297378461304132619176915183385160859337130655663817187219814701570570045035154991405458354363866577130524438679110016841116633985788939257460155961149655398855104271058765561658756515560477883170563606091408056206924762341969464821626887692134723680866545378004676722254243037885533371714194895789311011598907159980993699823391534409925287288324583821533702572601558661068686293560844026060334910786433673886799812654210209775405073370405240329042876710734514311580883362185357605293662147728381938573643808509692109061627016401971788560437230404404853793161992725735264917140338438863233591956651999934994426904979612304686749044439770591233419551225232746645619451557814741221232524662610673646430200009530714133249838031518402505904414485931926302025549389561934633880186857442098829890340451252912111008135634435888987142427562042979295570579029272946553669810735897532025813809683023880890406856201355393961007414965328932522888151102768537324487040782575659814706935709471391585410233447942764000931976584392080355785230586901968561414556290571915210550537571087592485787366271551674581216310610577853515503946603672404397957628360799690416420453466828941876127043391821299231854989540568549845957263246637642408139727014499817285722426499855917804097626853756016932160675828180574274512179511353785213202836177968035757588436796147909802934975539527173601390688877992165636194559049116005477777800625333610313144073426843271307117568098337385622530878836181255649127125633850486447902709586352335931589111753105588638199934765369082795651233045744041951418412310769007210501677009592922060370356807479074943677843124984084038331948963701099374350578292583246594766014003454393692754764737941112450760028257020692757659451802276899473808453799134188154846841176226976364912360160543434275425259906790022775615878087371933617364922328938764680189021821588148929205578463014060707882004157199179810386824512521178314767751137733621980605248205929264170463242758968207200088832140179122623895395682345908987445221078165703683764374329345970732511738595745999219827577715741021423349790222322844614338930068275016355230563595192208198019240257222995863472961091545097596018795382061361697255555087605396193510184884308749381707170536338577442317737558252728853466548807377504492371313865461687424678469984724123378543519065374210366014093231084392398184914870725866941701896828363249253344534120571087346296291897932302754992392454174086290071483836664264410964940037955804815162668341425040803676254705528515679118618040504204331812237801762674505565800167825743142530482057337050091014826042132283157109977610757415160600814883823826788975468713759365341427120772433187023990650041840441130376652292363797723942973012567643695466221427309365605593476490933919651975457308098715963657974232097349133984284874240229917291483218585110734718448745293326590920084905743367649319708741778431845733234521274913538052217851632165293225363904643492268978431146524326475680336509728870343434932059041664543024213615646041847330982808071127686302083934129678168272424818895806553296488241062862486663195107426164546172366656723942611051198772123523943636137250246459615394977853102960840023849564771813965175586881473864659302663323734298252895694385581890675000563817967878042158089902056557118709653454871469444873136589314286948076673078101269644989711407415190295241765310360468265552914455810218119275154537234488197074354792133608618536517270568741016913228905394988419440529825406027330647183078438864476832395001614728570924641652184781269893780117204422604783367477843116234288473142048613639779913695933379055604465366290414659592489492130395270063438411239903447713370577486224157173065131228570260288987946203717615896843791941415218987908212463682592386317825952895380543671330735775121370350052184360267157700174787210502218288448797239094892089081420994491149174400661562403268210563585200725943235371056980870031436784761402587062414813714432814423007546540941427761796541614125684552457578320492193814111055838549432977114301280056755228053646498971414068140137717986128796351428477161179514374563353305517664625933260954944537765503181998676440569365307485731391957879950394576175215722113179024481668189354777330283233007418688579021098430215988275644678060145538813899616815547967446409526273458033208143258491012439247568349386808682867255964157435953506498553588774291917840275164235806818651797267961089355823095010738967508810397263685463705387040379605327412543605200855440876207104437701363719292423816864058234580462749197756134871719516360830580542266776212480079099311753321313538801598112208992817847838024373133860807353231925441481147838385251876909590171207907987427361855209745872357335404101142582754059323610989491328463092085506703931834302269197146693259546541136768756971368457371899647934007164846053955693685570575636207261723612602570238936244742250603839410539533359050933011088207301306887474866123160102529633796880068321315326378577969160801093723551308982099219043070285245694194763511702814581634146896511011723302935496325783347289261190826121330466852897025601802452749079844798670534971526365766905592878006163931981061927220792786295222298230992192885405553404527571248547692118113576866653446549688194327722417552748250317248814729483002959239695173887931456433396203298398943715727546845548874515868166593832673559285645230800656461722886005496083656170650631274051897418420522633338812817605617231552278939559545786518034317202225983956650117440667111676411060788867472701141699258351829985730800709777310227221849539082590676085467824630770098956146583789521452386596303519403887211276529398240499969347497851786837982224600434736986743107640617809228260515669490274039580910096874038702282503715330605678710005478830871841501484051256326557392279960417190572387682439270742097771298763374562213189337985714638915702816255783565268517216284231571114042056648899857360247335111423267895572603360179780407318026497625745975324148146567388472928170238713912211116388212468331303950543135751610486242091432520331173784072473740369561210176104274253024440162420876100047957818335356006045578762729880550676444456452748781234407349302344650817448703910639836018498566660441141536500364889884887943329883997766662594100507756358482189466267820786721549845652553915214563527127736540056380167452223645980652007786637231655604424357123431603587771391231663360786544300143099160182657154366772183847839474716585091198798389744896098423502618920645346503494395151553714428601832428505535043906145265112109013257012761793582323533413531693672146279545555567465533387939332047759955094579587492248491604172693619172046337779519844001251671644050332227231742081457307427707516006070435570567837771131437637724667791607098579294270086846144506719820201792625687941361954013260684823912423811085158547584500026664648355794018568158781737510322616649761773674772919510238350990126836183285156761708657805278222126418350461874965504633323871701171530195580733256212518480610126724545631324983421976830987482361758226577714794020965964907906510491491413755097045115508766602104298690495957297962480129169089860370673666027693804343133129002852617313615924170649630512675797700619456853758080220968121428827030257281047730786754363067521377645260776780070050883297321816923125253294119775069221992912605458347666464501243106830826921428797938589813433914806483013575073649887268943312973775690160503690452907974698964825507547104357469764226355529650234303567978609229528695989345374180215572390889926377067907959471606929555452257490867364307213498801664617589700515173156935828424994704226899824661403337222223254286793288560493181536384785727556823012327658598414689422681407686555394487138669968826008064977134464574003003404647799313537367893603129685863779900631593511339648895429823165678971881227885914948639545078421078701932421343877493753775484531817794443885739227116621552008300669406325539999479764344639126501770807798502314543640370389127090639115754318711272438117146166219587467009407973602134133030235693083740990286665786631864265703629168495057745119844821477908217797201844564296105825812703021293355120119835872590524293712625120771972898417448767715109272227424398265523499521627011210485491592579341013900375384750248981114581842631551227003227832423812111266676786593461233187997635854305459346099352082763811647015399193512732389922027667576992065967464432029637944958184077431506027564158420897905529915317231713171511670546430478476394992875095027735845962747016274800348407734067811881450957886952795543615008960446651860559279043570763008509136148215290342411560307394090274505271735047505937058299923292341903864683600703945223809418100067123392651103276038372368562713918991166511235908664005629772344560514380067069180923866016580800930994939521109098984135512095046003285272379232889190345358839426842558305464343686631955619222817691605336481033633854281118490821290915056817207405201278632089306071266914382440312212932061293146790375173322235910574402982935500010766012156968295205386637303512039838120040779399468883408546209105317815597654254822954445560061814932824749798919208925012045444408786243915972992871061753372362834261067423415143160085156437137326606279488529825059229294762489328876031246776471595537843452473596169737232332734316631971082218473212408048807481385416028409242505624838972354398590981277125401894597166986375315522981352245991448038810010883490303345351257257418166959981301379639024826597102336277778605472943346587043919494395418619951717453236250858064735113440636099656610625084917838082491941576554536162133876712970699829027861865526748347157173523034686310778559682132317380142402294546063331826098941668918994742585579613005387204123739102461889117613307015314334310548691476544423158985611983153541877847165058471867700888382029983460317020664529756661176869797873641746341710533006035767865997742136399905364881402410308181321621018793870269630204394391352020720614074341627616209790545580814396806609504088938829619836172061957015629553322097650701726229770667523131638522598934285682974956365118046066839536215234348634224556870010813707229921203430888808062204008952114843208810455618245380297472984360642042085586555930052762440735297135900004236413890170383219522897860657076052952694007516114689082907370391009264401246679507951182517812482998005412049858306356679759973915433947269594314619472863387401814256411360349856686028342768139717343585719139162607273184174052821559225267816933913326810827408317704883518949277904830811350462822827994472915593945050113403928197319001198455708672326495446005779965603787157070426233733191706153736684514903109417139403980155003799596341441567501731858155664329416202114404831146894032600402620275565548534770926607274268804258852690953943131884693482073440566217930626219146608747638627134202056190870510638000745724573285806057412442679578470969889042186896561935920050567754145370459025399023005895009227888473297933865676762452557005534091543726703398284074811036087604987610816378222360350441542902399664528327815004081313541594226327078218768422208941274353085390699841676119896199833181382726759422558697027365140427383657893274157660114757173270685063358283273106796485434348804072000414291748056857532259246742128528697194877273607343682038014759261882274596939311206224939439479809533833042113610197367378155694387821363959384570345210051200449214343205021283524745221397939202239858071185785587111724910875759809952606997610084817331643253717126936688154740028542765642680776278911275219443516663432841558040788892056493795812555361863587832089405065249412415037321185026962379327125610793414310064864460209901021891752546742642761087121800610317814811138954257012322387891966518801137791844696681315717460104645026581246756952783908812320981955503282823147334658357123938959576873545755834644561411900015256778316176365253661200486834510898092365341106459275405816001600488701693986315800374814859214565781894546415229669740010857091583894577969569121669340169073372266208369000984016985226038680071195328969076370869671947236968056342083177447219783024378574845908760358228116650095503471555554757495791282958047197527742831705597197079209993272370115235530077777332488004316909264530835278727464112874782979572839946253191589937358935837033785421964714816250159902606088141843008777837095167834942314847219593073157794583164964533420989503842672290564464235910172448150747507935855196976190297978079002604903297006775319321389005914115797552872301063892127620220253163081104525226971481209138817571490498131576079304997259901263103489630188049100502677941912463407577698008226524655820275295692039717676955571308906798180613535664488890661592200970141111428774532292869980908285338369769643485406024448522502773957416824421393937810816357292249671223639739320880218204989979600060636731931332672314442527179947936111754722973604098591249568276724727397649711541134025352228611889970443002690496069905938310691029962934281125464998642271226908038174661271973206371889478492145946845787131292120082061328394136746801114242232540352633347431802964812971289232739176151451550012958454816492963242243445356309975129812361943948476286102046927496672934006931885242229532001874258333830816502263200847620928264968376359528839426457266902801245442341747094473662686240472478364856867616022595770065943003586478342483488446614664422095342546157744477895462879885467847514276003150021855780969348132441076714087275080066163765999985652971675737216761725317411695666536443448237401288770658207035412220972553499781932686749224977948318517310581122367436777333577530239766827361284897784705345565768257755916976764846253985445250260296436588731775846024298724484510923079907721550734173408864940669035025449009700986008548948074354961963824631534964531924985656145365716495172868313173996875862064318916403589421808551847416950639935809797011357110472366741562570656425707309844036823833002354984777318453775345692729116242221959032806066407108932640697178099593376492668949012456741703055112878626408958531604662378769397033858154350981752958522702425055449617936712871364389377437946117239572472554352483768992075686554005418967784498000485420901207747768027676833339390234538008801554951501403279581059794595151245857886462521218901834563284306053157152111238705548966816440299314104459508623134100655698582746811818989853410468000957300575894453665343522425717709360011606429401467344276848848992569279729450760527930830128561794589230055934147973073759952170317476068726271243178609300234687446325682606269855110860043056355327441469169357590015589008722536117640271021682034417789008226651976347923978086054615193034957100918808531071578898714023031241050751065166249750721390639993701479767670733921571944445576342083102341716884428070760033517383773201432244357083182690146284980265280198140237979114580995207336783816183750032991009098669226952644210877845506936567912945099858674839347347455250534951357045508962298505752834682688024029577550499345024097377339100798771616332187428191882089644489589750481289880385526833060003678361620349818482263511056045258990868064443872220351832153749345867766007826852884723921355846976882500665215211878524121931095308741515077674244441465214735782768614993821319320512441317863079627971828752773971890720474941024993794746400682873430916954589002895867532989054225576811281854813926956912055747426676555765717889639260626297559408822821767388730594687120687542631661482168476306855193209274169258093287020386996172866856637727441041507819254795498353314551525016470676164265323737291202347512997782899476569322854980751533154211894910506153267101114262845422003091768041939351281439696785135436037241005288547691904525007931006744560802685107007680963330101574548908772434626354011953651928834319228425122454816937892285711466300084042128982481911212898641540839147699839599211976938221502163097237312705343713245985529715675791382235534121653692263913944473361207466991289012939537025451577394572032698279099316899142079336264739751300919975565067500345533676468879299217171676842386763961572858542510758331633684414137854405089089803330808899070897189097814944167297310331654553538270769690540292623055024024424280698677132595052273532447193228188359687154078918737866231521309344772472398569829907839602922577147887522698219882446211148614673595406230906693650458270052770034123219569982056226479364228128324385797871707711344061157825663517093324598261971012857605259904277395729117106242966237863686288084940751745845171493287774722584338771558990359653898463282570411064100064621543665023380823973212874395178358615063957075960425890683779306180841947663595516328699798771726774106030307460570831487716915886910580301771162267550933491695431424065779643740509443136537321926698924671279923441462891466438943092031455221996754140729362040219067701475161046307025545126035161910060861290673040497246736959096522314346380017954339862928825237263292949128189378236288703428009528339576450352392758229642810650177141682483086473937066921239527403831119651120156800196514614918232727998339097239126169503247046632417402216250871986862817323139202939465638844656219867066665160446467394542294881733530438905426354592015188614420375807708163727489677559212216857725622450860257491789728409045448102040866616569575469881412044177944945368981268917502897687066028288193339341243465376007414966677320230520999572441670445970207920142690494689592920934854206173524500013355451146742226599603006066238774555452489756205164269714147754655998266126584778995747759290282387658131449044527856778770394844892639716613719418204100323747592539669767819013895927856068371695621072390875238397710588762932976003503432570201817702118691666966604532769873084409777299712529391986945662020990632094740159510621873764424846803452577847249632525200399353997219214206700883911525688896294170881684097002034320180144909019249645839151775828088845754528115524519254535225693749390508956387478191635376081920566574566223170047515801648308008251276044574480997255914617320182437184948547744119754078047439015659619317570151624941745659175833924801888807410359455520084480971112855091746297471333893009420472004168779484350131516846610929511595032877221711399582773687746262871110545870727724147847413669213087902485104316628958342758594438021156131953999887488307252889553634445978508991982689870648534394722764440966331225421294068830358478324747242096657081087119985576722777387812841202025998944616660748076923312619474424414156697715545040918967210722268558784163194305838162173195252880064418854530465054117045973048504809920522186585650670454004460422264561345448614948765950344465369486517912275498559476609331110530863232838920243538346707828160172155258942189936785698408358319077434003245222605452017989784648814747859012636592183239025914327922939738312126617522238233506219615217058103926138962705340351618062372034823649285007876771011551212934816672301734461551105304946942000085193643027566375569363525075746730323571580844772335674851874350507859592113537336530266235892494836239677200133430885526502472615764221832780157345732347060981973890633161694027115248667471665651205613096647564107553630186941298818122709356750580474604463632897025503720880950702869998050394890932961057879873945953757214411353125656943858052273995753646355645719755902279129583559720683599929060185390039937816749588711337199395912728018550085265138206247179872989981332571825116114584856362866834664476121808687183799694375868770160257782708338019934547113018137028910149614903731444814339743691162255855077092086343875078687224955511414754222432725983171609624819902829531131335408106021521537558897210177315632525967824901214902019704965051076312688888407173349162020095955663966218421109163648175134996076627425304084135171923544382033953644242376356219905585888428144558724838073708729807479990406695819522637394777333108780975280903605663834647973203130001372847461962759938709595833358321752824721673813021909558683170885425651134798073409376404803156363551546200873759846658124758091691045237255863219472812597702474086405939434344577281698067354728802829708260764438636631254963922448322545014983588503277083116118506498580809076500029341638239516020511612951053291999394052009250515704364207810980689456909962089705371818095639102877044640688210738135083989236698065715072608712348803133862092503170033887427191261429857246529513929867907740887799630841084618459627914507225966840814934003216659559646823548929045739513601656250601446385270768727168166109413617860946382335222337437661278709434331145272231296508715723525970090948684463348948063203347582733408856437965928041047374606237968611258938669433835891556430872547367324891745822624786582269875774788494995372217505129143181598978169119656193220628714914198839902868090923319618054211337712442163578835217592758913672976050566320853034248707091663298854787004934047515711954274875844931818573500106122888237572074437280398879547529621186009991988230064427538437688114104167389729342995418769541558410897391160863230081292723434660294457416466281832528818328551308214974962334211257796247403046574389624885450897103683691151335097129218534611528562014152726638549404257880583965049134171498913575159187089538092741737882855993957053036335002760095882971160788360130247834053463314931013023083850970628305861063346401380203684501080401230881312846505029853298653975670805373567708421907104293728533187333126657854570187355636433334290707756613684928538680653671404151810919326894194370086160963141791491523220530087706440857157025037126702823772501935849909746995576446966023390379230584028126681842232185810685025373549608714952638709116227138532989041891604150356801237633764907988538148933899482802917706985243098852612251503966338093669635361445187408491675574535461649450666358035921230779998016209850657196183768102440932566235021656131090994258704623301736898829693930468537109594700150534934890913309024498927049886293259636060569642945077692301299740161690781743504843102650134520151938972667147019837989680883783637925510943484211291630367867709873915953181817029839942701024670863573829500752408513077455921766587188709905764793378071558236544634920384366848776781640115922031413650043753704437736303185530670980792177169437066755235244330399190897701227541001561006801653824698634125177572927089204328027077382069843322384703088589087212060490982439821255380418175069453481433922482015068112446492780182464783932745287822109279160235312216062930829601581500407873209028166472594997135554519261270423873845476723788190365846205007651616602541725346348599264492459833995895693520550003231055702807383246441653956064653615605738627433148967151932798903722291568765531376937036494629975286519784842010218901801998042000537186210507221524751303876000845704267560915780208227347535421180113144719390185985543594312606969210665843215076867572753843098444086248917384084389426118484549255087651664062617803817104518560776375463331018954869543043201526724763800602738152132535826734398065011465375622146349959951072271687246689441154081040802012757300260860412208310742097512901270335444328590926882713014842345653181480745432235426425570937422978860694001749503601607594031338887172402815163954241704422220297613666804996319833457201129253015846586975192155553242332384776254684393554165987097246402244189340560820523686434294036365153328467744121051352620969852513862017110359183226655910635096730074811978847880502795920866215167755058517439733440653202121319216617951390434775580439510946212835279354044239861645062132680250133458676158192105330810661545923609468468729126636594950053278930035707727262281136603398587472462869211791231978515157248773558019280325038131660681220915209722813993644855640710400929962918760889062103738986365226485807606209917209762653744312243404606539914895052063538183443207510015953953791917473906519204134509037334759697229642710892337222781204784296985389612158125499542181653981642724645407089159535175871094478975087018061715745420554509381338445591220295480988297797434425779404385577534621636565747573156502507852625254221038067284472174866134052450757734413842299436287248241186737436913575626662123482932611014257374035263813788680430434421416999180161077462545881499394551046622567642596435621856214962972369124290564022194246355272142117015502225147440520217276861540733835130701179138539162830773441493692968824832308634239444817422143197790259826487542841582615274529964190120117499381174885110763248619393275605938002267111193416298241377481867833269156169541148852546227063135228133466021448200321046495574122378503181647641242189477757060415348625238769099621252352372171337240542956331338086393167235546453264845308704401373315787372254742259418578210471758187809558684395670627369814167034551950755285853972504096085750676440036606754248157957101089214119521254905910466534075132545296131839436477510938824113188439237759719937594686177259728193993871917653960164437315302909680270537119514584084315290199209477821830222300775265631567449744754893839002662972418970925470409727027343409990290069857239649356585600610865113334187659628782197235095298456840428075231339636335026843070820384620211621430918600978514393280751335942863928478751975659725341414559153861689708140404568129878908592141913594393897208654872412388072295273081893171669847070627731638312731980851087328281693731944063489788964462751242649174491436956795143901810098448336406307243697310401255137170166658553990399578725739539168941468984847606820075558505070016435455123380413415248496156891686138016688865547821380871756580396042160567651794304147920808597167644740642160688125897729111127325832853065597814907281554503915195516877956551839096438243403053578018779167012595443240326553065775283179923654932174432358022796611287589699533562605296053322432060514132518215975464719790427590573455415749170501912818139523588497265430335227124460623738558986561503243626271543228557264330483631247664666840839709260947300512030623793784240290544029214587875361304067921456361285781087827305861898305668817234976578460637275233799946619030228514929161962764096680515386634411524863036873803212458591963882484190262820599397625621286704504076177324131279008399966724080218611091456423556944510327009219104176527941802008916851700567456841094820995923914231328831549387039570837665086627812682708759490876504856039590543943213459413687715866035452707551418885415118136921300544416915475119458095109778491486454530867008433223842796150511514753035492712910917763417466738445992676371065058696913188807422836869893593570974557948685839372047963896700554821868994298834076771966634567453556059650318548768840047341514919360256998625457781853852255038045540184612661741367103750229454620700090397587779949789572469396045715893795163807694688257460437918507316565188324656931524219443980444164162271529007975027561408196381319969229077527236199187012624201059047687351909585211588210180763103738829266478358428671232075540168575968216573232017679167891628355596110928235023055018330735191573789203158405752735947969479815340417919584763525243255937315485525959535776855761956942816868595370022087042017717725731868409132022377530233393702215282268662469828398793704064548843626186995777108772281210150937535631939530146806637973074866722817236602445397546680749568535357977933063333858916514112878214829921773218741699564887164675156342681857380468185494266005569469740821434321344948693753712304787423916856009557813846791277112686583255262944788844850085122822388822767348295957405366062038354409271307985324602079231676724126762171494769611897340192408836869137719445060644589242676818538364918574875676511237290290507856412007775075930957761407571294137781017967226670290345245963023989466339282781697041304559015474382165122877050130555786589104400555334672743121254969700926367984900476042517395358327300817595095335082242692583389735397439123630570599495013988287370601058196637108022765196321471158626883033322178189587219535743367821812320035414853198094804327141168348836964439967654479800427939309803740192228720202791923383614740262254645234081983726284401076031427195152943769256790239321613511134753684519417124049196174343612675377077519086218214233646437596729000890050637503880602039007634900576192746123498001922989100458399925215811817642063822662713985660153442827142805683127239307619813234261790808531066114675961417565123394268775548541986740222042339664594539049068866441206770138201413548545581935521817942250936549889711945196927141012421146129401015850550716077694617168680536636494862419331223591199164380806003229920421469587842617069471757358641210082476839010657303571134368544325562472696174542092531580941702789124929213550480707706914293312257634188131760534011291765485198528373097929744875569343371326224947875808305176509154791414620409289103549667349836295642015029330167021738891189816976952070639814950491973046551113517800771093510716817162725035965292870494513739726061540925512889860625285614210668544020961473461672649002256872924096249930172338305599152631208937608891511890093809873059053303658259617533338262689112987901875208116444122341962615699579869424788346126969740813155178424801339988190826136420700834890949598977078901707152370324793826355161315967019313323881057146081801694211935369975901391725297019832593045762905060805446740554784980540488717826139172593929828447798061889609479289640925231685240592812067024742830271774412758562067644651614074308945934918919262161807530686437566958169570797374339725691294634042701127225213363481381416224459529241313473336337876439887065313925957225219119196566681254848951284191923674759631875549960050133500712998453466519979479423312829478529888281249858166591761506622370168396791289903323769876276832589578861487820865660629726314653461311671649329493407228052802025736404599482388172318820841846170325703123610273237431843938800500817755871911467820043112139322254150901400945544717756466055978714961718288683820663210196890031760831872114001870660447596112910063640170700623767031664093582583425786672854240609707225376440047730601835795300411897945171124099798035665321344150190279495381422427735079028401960231707434920750605051958626490048641006535831936772113602767850744674244995358524340188954175019641731355289384824078331473308155540626383726527571968056657826454368146290580903731228685460031695851439096032678045391065238701530463645178379131639193042871406647484039764294223286753405742253697955916025831927521043968473700575529041235104186975389033633831767809932597914015943467239487857279525675244142621332085496530984153417565034889247876419556598300548219878196725933630341600406974505751872949638492805546440268649372536869824584282051283877410570691691516109986449266272567347836814563108420534852884113678361736739574136239911821098233268989993835337905050726640591668173884560742657326442326799396529782999777380585570254867682310059931912730329642198349558097078428393131568947385510459254330890860175147765229496428277540434408207702084950112409832824466615507490663707635379771101606334670939684579989062573756155706520622188086709981928407228197282014052908917448622266356938811427341784018313842872037406183746500138686306977626493338308781263615770384723267973366246316123974201203172384752252708796237851791415853621289612293835147228577750646595149567611293691731384523530211690748864423605224392388371119459247031832669500977692711830292929284755058164674717912580898285474994383820791950315152741746044828834421010386804306129087712797114479563683596560146222182981123899726815757565041284587456152727299679673754044623639133478644829225497612181942399906370001940904058751375998343668119964292816657053265755873628801819525994715479539860629053403489230111204825498047401955216508177155024986629290678652933877502722061725554711004883120304006208690561174634904792994736397048745417974589308413253933563681751570421551201064784913236962941680920486462267495168135334658448546928074649100320652106432272534028953391428464047860156167220138265729777712315236032913393302388218666212710177396733309988172335718190000208771402791678959157557554555071923493219693775371050515719168133693759870789419281349160596446158263407920225528299033592167237396637994829458168128619332663783295204692726067853600887863601120331160457800397726884869772063207316314262103790222171802252608434626203029683210204657904601121088764562472982602668672464109045609385234994328654699404057023910261366604073804829416549506120629175207193905712106520123083716955268926809547846980259055910594073506052812942557364284631725141841640869420706783346544579901090933725071213669412267051153078683672848460671023328386036848646675453011794184242737637937831865473388934288518944334550682197807120783048404445970747203368075683493275866232228643216594959734468443223165227618789423421263835429476382498559101984551133435368244515455286774300715387158685986152496006990727672973356600820811501604496868265275368025406174103322207548748364518959331309617201749369599991203196788677324834551431420717002153171698113146135090881289556958060484831736453674051964591951619885926739501922519045881013756918054296536586325455439469168488906814991246553308730554161779897682680218790316466652727656180569384601359476072792265312830875251366988195596235484853943694569938956298596973086397913334610019892396220523934597135215066393397698833773562045189005030300942150122711274748150442129317174328622611337790061719584051117637666266092991016163272711705118901878491798462102236603770338675237470800781489538444404536584748724467528485945938035271992015163640113650446441428523377694985671172024592549578362335967852352945282389725645438602176226487010120925972416112557416739330385160505914828969847223305632943228216723539571645132540155146817645099639995055392964521943582033035353014142327548650408870997703505225088584815740584445667343161998909725786453563993644813096482548289015591195538743616904493377388529121616065386248025370622484189888938638095839490444517256090039298273190272412762992824880294882860438428128463294058614211935838261702772585339391618493453167016029688183636268599243615106142117462923542453226476907559519740152124231093360425656849369436384882321233008382943352859051541794604391342911079440007007219507163258283120125021665264153892151706996269584621085897875183775390003380540061441803410158724419118111276540271823183989342073836830025087823335528865766611361034282103790163790727357704529434579784670616223090060209776947083046638171535468871031696576956201095269554565268311231312072396659509322875266138119505201940298754502130441454739004517582508884594825658233830936856338528541023500484238974999394766315148476625368356981306234481574032166389148845961573097653287541455712001634890473278353175752626630551343111868381392294363862082054260480748340709533299477717921576196935005188760233880517592891070641368371370165196767301044441054873391007542841695972978897183210269307504963467166882261232668444518704152788815681177295558560824877375146487974653141194665844765902716769842887993727677800672732307432678278214559753022959611494799946953600017580219961711945671005542481132720527649920949341405334504227976554860049560898924616018796511904381206998177152147949206171032613751849108116931732000234921238118914193687734105442507693094421550966622296705604239256744855124037695414186541307283111785353544457631953706702788983932950437655885949678408372956278009675592774196731596306561412153812423368653788952702573999010370953930466339944043976753255082829493276736910851347638418181202703886173837353656588673920351539741925579865585647088606685463942940624611564855672394472451977784033535489814860001898735200333733419101116255690354480317081750652360966600525252918929813212674772009457083985342205325601477699692689060909027614151503085233968753926248570201321076252689614173947961934322822703174637874735960883764969151628371257212782817886803034253149510803064129619313846912420580351067515163619298935854071838288376669637581543903822362647799236883109680874609957329737157658047931354410491175414438002106656126447514573388318538778078712367791035551342120040985885697138173134284289409023662283607332563272996138635714661479084590176676437344951508577584013877592233956489595995581768328429433631451436943707429939916509216169785484609199457137792750689353158907816171867367024842432377556107816404367692897615979928635904435967637160434442275970787708363507299137417392491304296356708549464770967891955439193631527889900729677616818131636689973054602816999837950602594171215853685529262098555736754746220625896944077263417927724969903231236782485831899404938264288615006559044196186175113648298685784929105567147675222199815485325837748890734091980940170478273931197387557316991713982233157896240843638927623348966460495389317367752390919670620581719956522309565445209745098173295585510067349797804555623953527504365258627470961368295949416457721476249976604592937718710116304287205809118014589016627287328484339329764172283692721518470370910384615395678461831314560105743913681006687760262618993001878058911742681583795367381290897875847813641806660595699506120070811804853526346466386067180371953631792784357041370741614046268222776751598610592406440298491748032607095210659141022317404947160918190560941103449565783694086152439403885516425368505628784888190236256043392004518023594159029243726254257723034472669224433214502069478139707406463510372090091222618071318265657419933900547615600713237093019061706239693807399063228609298559846077920091525790114298933032789926008382178218917561282068615989606093100698110194924314681629837587488038542901783136067369933741680120699017009480990472791141479672484236907132093340007100381122289841617299929034082255496573188356901369073798987898312650601155643092910729874081660552979168491001469688500984594866315631775835923552478777264114475193762524090381324231842666547234889868759530846676398202063855287420724111644909920373756303883503237607031450937972531743335711750243772543934662172239792617846038696016816163930924905508997231779438371348491604599740183837413016125034460474822915879012714929269349371141234768425736270244030034079716783351351906561263323232966033901084039476462388787431794059367013661708079220050488384978326208558370648566267444170550310263363967076484002086329258137301707375115122756543680587711419573213607702588083964551818638674851384214294451958818663982907940616278460975149924164497499755994671505002690155799152064002042443507057013009780516757000701565095753175358903770656667961050198899545043561513816300843090307446936092680184481978680345867008953836891766481087119006075332524521868717346050126172853241190937330671932162661347946592290220779862667197635919281254827307908006336813310099789025490990037971269323757296309515398813828343212364287782283278878368598466836440543647989977555296097201794457172525834567269446278981203155881007609427089018700425805485184066664985444036483974718728202709658877172078030508744032538823866699958071610883376266487543705524294332327388115760341753612103064117548787111442296209184693225413478682546641878005169085314129652501674587212995639073296347429986751653298872694418366320075041228897383976815372189854735243662964270509581580254298226325081398054745325226924869441207626973711043218016541303178473134236714949686154182613403202845999531224001093393826250658979028783816879018161009192970962123815893427431050894746799902630646653726409420683128545982728069350951178630922331364912708063130390831111824065849356605332739034366681420664636452753967052414052209142404627953486726874178670280424911542554383994008887033139514887335386129075390652151333749388418451983237900143729716235759604695228052463981163801966291586502743265167501005623587391528306216027036888874490904258232008244773210842072436659633620764132426589358772138184053467740807778805268192191031667538287285379265462031096589890354428972167386500931014317534124609802012382698420260899902303318271842356893559946858342131964203821516135769528802567549747488585780564124505143032792556788589756917412023589719174297472059405618340004781481926921434161060495959853233311831063127864820160008447513971406725030120635771429499106335761258284395408591364048142803746473831341857130588983890142635560732498687954754185756923712188333321426117843925431576513003918026861061741459832151971217863467346758137434789590754276871398564569965949362096997814143489740980920115115969795830469595315677642638405840146411428484716738907489786729323759609831605434745117777432304493115208735764763770905908431710231209607335186533742865882142411125892020714070772387029047629175171338650092741885263034915094348579662743024547488436841926259793569865157430669915678626787955090219451012577001141635152245565415049284576817701151504410043070018221244511484581792189350929894900937424687546964556538901605237774329490736695938992904923108476949486261947612516479731546870592634858142822924085162305226538544430030717190387696651699076638858339981051990993686410794178591390082154414159914533085483983886287671351234337862563251105197404120970523740605621184701925639302826657367693896728463366523991332908845986901284569728790586038865391961749864416513692152941044663594714405842874605021508111252471827495878336441231390399666905053407238206350909366004189742715503093456272101003028861110154209141339878503340571006516125650422182779381104443966855968075249754751900359769463860904052376136268552205775241308306385594540613904267855795453479940362916095767443822088375010344581352422134178980897495110487101249251284226791269445481742297005662993093278336491368501969469896943301371272324376110103626532295586904480865387045971671545879896550962693388398160182083569826015369563400979774574179309054572697880329268711822773865261193770728597040042712400624942114064999477200627784069813554259252287184101217309060968202021826515218589710864933812516182133084826967440091578368869852035142002281181297677859484295654261028214481226764788730500901665538795339624261233448695188690865534183362195398008593424143998488680388892517122780644036330843869226058944937287800928030066686502130773430654072493225128739355798765735464744023977514204725591694104728772062964475215174026359818891832431191953879440311446153216251140173234845342467705793854372505825679432301094464277485026957225845342473210210574013211057397340991526487498531023335449332832656805015329542980637353678291050179831961540132967376512656993612436225371924633963933613366163997869854457045072295403130804682462457846152591863753510933107917607077537392906540732822500247079368598900521233266290829084512048931304778523926749101167557615973186615347429115786325656147509848455767321282146909695342640738631185651334009205532835538352380500148839000566692940804831379386855452912563121317964278583435395055894655490508620030362023405575560935594066522414903590980072749340150531541535152690050999157134593247248963290180116828196532200446325470151546155201672340972526126207349540026097969896745287691561835591334417529714558457254748719741336089199938511972665068642895949818954581154116644715081207978057057892423313563935577063678099229467769799891371410673464640527776478984903758633517851730065124287348775448643735978127844422116753873121195263230470438156640191729603349557663556557339550031333827105384011774916646250403954688869528124522437573234839590240340232067336401132161305514951649359956159991905718059995977082790778035678402829035283424003753872201731794689310746291425173650844226597213464824497942807781321596782808038371415809045561151177561086205131575638979788223817635255583261702147023371342439013760301283468696433734095634866827093540474464181963891836350639334008881440861185347744245965919860411045830393538314683229722823453103731385822044438814682577798985563639508089892721435563932936395405363470583075771617768337735194367684973778255302692042745686771524059513979409066150293789377866511394907069363562214478764890746497489908917727917101803282886668953245463510405214280489704712018022624594419198066215922974277691899504778245146698127918704097127724245417762056216976898168125649055143645013914588613144340273412903316398791776803458950741832038736929860408628787480520358421178352242539360140228129629685815426940487903808101725204908992984568654777260451473600685005678962528051679808502730290702537976965243333020894829707297241996737654024303752544053265512507525366309469046913758470175959532343131509531491833999443388068123835979514911474193449529592500470412091414416243694317477726041817863700618392019088869431106840020491151856507732728180793340302624826060826545383282805605368020903534479592600189915299607231772885044666419556728067222674002147667865837032837843312117381354789385286792210451031969917780969929711081071567650650621702791613734043092205730431451179974154416398054727855904914612098619575489621406649846550717511553357552584854513361073429595501518821607375152874284110041665845976982887283709627100484318143451336443455156968743027363337555701499772752038519011735213499832390629597938285200006154589189520054991438351132146094830475341431592607624807519625897211099838910346771827915535278895546080660654547835366442797685346110048541985051974640172746957206175955035291731781282041318656329462205026665414587181124270094908858494162325573557412606966026201220167399358318253348765580030192942777200109504781730632585656424029319889812711919856639090210634158445558471491550571375971535858636995790172245773484240816634612428280228017224083183082670910288538345717700124252954152051611274906526413791671476290913456740447815761892372983336005459753753819041757605937599829313190063842435829906722513780535062099907314459804264901506985824083064047299168151265890723473400825288633680683907731983616028122284314072857044333109512918885157608287040283540977724989330465422026189283724063433892450750308287201622235824407440766408500337686404511214532854931973129675604847660577480504289910566925836698332348475931915491631045957117546355194498245812599348406163061915700691608751706743870146540507514616574744135053530144707787419653333339351733381613662111567095683567601361381620971804003878017864735979729400736634015401250113618297062732475499532792480155450856049824002461793572562473057083173801470381488521787612161147026104325608869583224329354926601080809964871387653621640082910219549631123907826081457394423552883623850191500495216332856483996268976893842221888755649130281259018493038707886346731167481414499380154704659627299099782635666118981836014602738239042000511698004145294878215013747603190468235745122750004297572011798275810320339084196849773306238991044618719576734215284989701879314267444024163857106808823757233582459495886785199367961759102341981637708013726731288401743803028497552181296917065038583366998319108366199811274968317753535904545044786595354547395581693126947897499352120590117472696417936199366550618242365279565023443115596203805767743778847779909085084260770440571033158519708438657043885535039621435059744366957070975777428931339015609379368153444721867050986540064598995389409681741523651529530964307333093646136488105569079379347479174828429619370682380330026257923797382483074140784721682006407090024249199277828959936689296397636913365917737681319295286216798730047303857902014203372205932173878018478491405861236614955458143921159430339538453640254218980584078898782744384350439136778903181112177799323763019560755729929269272201058702273523352922158860597235855532691729356531072820341973522319387980321457219448858761134555775771031668063995191899859594152458312716979528941183392647309475416118428799212145793523939955482641820304891823932181432907493965650016877480872060906522150255732493713679046627452453553337605264459661995714539957442444243146007883225474194204115555796616106431027198712915304079632150508340704342538329546589347851992164682771411730370566567168435607366769360077909126399185121323885703446196085719120562725728715926828522345137739169114780777532218547362944801760719056059487239957571530648053677202311022108504256359359169454391763416339835443476800153438766552500711344594742736476824837880994101209463717130223625308892322761363570881945632358836002794182354727566093800255303916812003664791370927137431711360650576674500459218185128368224393932171814304320787056869037570880376843050066884202843592050567754342454786584932456099567274139653423191990905373195502082018982366508062035786943569063228498676648500896046041126401690095282428790074492997520786461487243858723058233909176741595013657176610868102221021871504768130614448904666359266661728545721299150527370159201378391470552959018336296843114545669751260788431800654632237219252922460865933948313672832459093013860216182845434048209580052249734906925649542096999907783002823109316126944148165761355228328719156476192239588921177320315525057674623029441449701308809933355416006658616618615646180167057076462785242463399224258433073803925857697547520208636308253640610252729478137681122304009159099023935515660708301511118430315994407845176840448334696311772852420614604174544717002876039482599647406357234303059341737142496620269252635199698271909694547912581254052357629733329128062398413402192574406348982629819305698218812101666843685390569090200878335057319080848421306628674178336972201955638398551805225181809784687888639301343074244916724248863812881678119379993926289179600729625177270613506994950374404320176645323545033247082137046747040990557886433428005070752292312046716275468913869265287997695291511551984850482991073210732228646456871453469206388431986211309351167103424511176965975929168350793509334484786772476684811627586520084634427511656175089722388133260913409077658658625298979558628247734909779747531226997463618742097011122292593050845313371543135628714377017287113375802396061893041270437548309282204564480733036527813955519046782359601778760756446759578948947625478835670492487115747303243339670814839001889162793107317740622478090984499506659124934089410825592377235730470802921599846452739992689286032261784450877375135538650775707245518568268560792199946648252819377175285406550854361456301172382739178956902085255488035126562829799282826405269377843035168197834058601700248645772794280036706803119774660733378469369473857157764955142026040812782966589453380659629221531649118405702147331894733350120286286440793778258056436616132280506058594434080561282469653692106888440576350288360631324241953635015155173421415757598193082060257098971095023600991020749790000544718071126243797154702578397762000690573864370490903589424439603640771385731768202587146541604456662178488977859766328599332611361058618671355595296510875076987305103056508366032435032918086280858163011218691259031391944603055171283675638881888712023693403074749982600668737398888822854840709055664755209437151984999671976422015560662344410469635026990198568904693821769186258452934801441540789426182150250286338138327980370519660561512836026624059159817989401469545446693703638491598641316643701524261914168005997869769768609968039939120230063423312445767244517457896477924280235570380106434669478797768474264898650535135769095844622905470223321408388880134113606196278409374025077922417164169850388039896901067487599565782883039006057272056722395483157869559990684672062375949903263113592962503837063527447885012127433130651589491492679194904759032583975392275423074557175604081463826472125462464431039504312360230143269862580005810104913082199734851267133132992546564646977874801859516725530430700708942284074420951533251356681668499581723996763115430466147201320723682874130351848798107514971318810117422605587373823490555461614888525128254334453040258700924022566328524416516449183995319923806511690728478335600258823992461403094215158849298857788580425504426997926175179128242478109778419888497616587780111303809968669509210045005641685382765999227881451813957200074190424459385192328424319881375259535474809321100315562584767643799914266023774102555497084634851574547049549282066928677687443113713208908583315815078169522185689880305692723556989607329980245255117122651146036739979738429030462570916716609257758980789441916081889052785090381351929956851154020461376781075260990595821937679535138434510723364374508723893210507295639515452673457126322340425042628497515463128398919871593653448123683686633658737684979143786137802329689378555072647817093852915366229548228211835075500089270489645604764526849421383461258105879693203925443460261202480937001068271824890641926110204511821025269037635088784050386148507362870694638872010933459229970539238930113571489115227081735189082791934739747715718159053297676879127239168537618829381963071762976539120453100029167880763400651478129908273615576111368906860610169513630179792557928588832610211522826758812502631734737243690191382174838980511262609030460434720468159997896081281231920641161308917985970494562485662280048342843694519586806242421847014129309998215658752349010932704658327583871060598860726215082166876548199846383548096528292494329017142748367296843618469959658158500397265662220516572799986927501227999212172273202538526561460253490463108661046867551130933029282859667237199286833659150015377137501962478999432355581904062098662588933709078195069455842162533676807450549223895841236983770146756928789200131943280969716888799314058717370167858652339827139167262314674767339771031192764233110585113546018281059468846625842065384496613881477952285723775510184628501989363151801196176840897463474489118636821838963537380233276458711668386084727722443104849501137710634960738377253126722586897381277672837394961599786927968080379456479441248115337396072583447940925641985740129344898392662163488880701258683220578140217680775997119143308879063414117973368529888843824268719455567850008059554298477958424448859714419569992020195914497359672077432087600426824123376163627935247501235935324891707459206806920145102160604495413508032062067803804628564586295662207023316857118455656382487521047851579584034299783621231805132192062454603186156164363475948214941385037732552622239864705103837495486073928632328252848741296968994985931448852938945858909848271185605339094382958784802124039552515545254302505515975651985332888147124263745397235127492034461643617010294206212536278050148795792191954233829108978876199124313413442668441150169787619203457129903964314637462051272399746557435615590187369988969750970731262872537058609406819363453896739609173360239220461471197331667249527696187070557578885758179743230688288121346189351529630422345741524679942406959270644655015940321068719011534152544452411022288609571549890090586169903249944636954681439108359495372965015515219033138411765715206311379711880673587658159106778571216222453811875173181843845290597701268105461677379432487800951230007309503919972728351642755506287172298601877693417505352676398805317150711932519121835468153964268383054366331633747491851086032619146150196237005041252035515870463616545836954980322794628829028305306626060486901438687948243631908823270091321840296201581726669997628886785497149078171284329476837670668168964339854628758601749148229872178953710253601933465773397384404865584469644133712837372347404216993926061122646685091975885869752738513888857059716201215436055679643732969430039726474440444809015399099980867362776306211138572308764080368721282756443576410084211076812524370662552317303827828484496287203623327610326211240171090603667666452584179814908387661348324111442925081156311482963185199143558600339328343911365363743227479435210278620777132726710741884173823722885541010415859671043571694441244236518072476187023407026399415382985417984655691551263681141237295657578804741223224580649292882335493085248348310764293526899204680366902141760875633500367377541833323194191375817813645164144281119754958233052233388200737167933097755722283495047457757234234209681729819750107109860449177423525529922292919510793934887211109669543357987469111434814569082807781698649286718385639266370014207826124702278968723991470248268356792954007994320576709104010927186579672596081933486313942787370929994114249214897981970049582111098912034699084925571168149543557556031971006872272433375980715616042311126705337443635279844817740247484122809987587205789544176543704354490340188764673995466242683148032150747603321056407135954067587041059002705474317154832314139468564347297080357374399058027848888547580875237789839144165816826092677552549262734140485100913241663139206131552526495772033916181918385728189455624003257766474017572263471554712619781962152618130639421517306256907778748659104604559726208578163885766637007426289291815373243750643298796894111392248704228130811204293242169825829705388262688724623870108976723586253930998634193964636813010405758171723224183634142289998891219937010736829498383925010076504742259691142811741608012067648552503239196919017618130984379830572341624980439020487405556225118999855777122721312130623270292411469353572831820464126589512445925332078438738605870316014206981727433671685225989561385503176437562941676521207331459509165518538353772791386565624519730396089827251623034614871145956607017426310461412763825098601386790650852415133001090774915124079673533296413412127560395116848374419309130633498900295358759491168859410389914416192378156529243179048691079325600141905449336931371855487461373173752596974267123240884710416316296196228642455608235145046889838788653712537751151273099389016220212910339923325130839298041125189829578408991184312243832555173853667921603678787084802091572728075732494472448898753122120245023622176354751494308531768184818005295824415184408935701611068301261972435739043360237907831852982060118121959254286902257528089688517117509626216242575443701839946980249284396996995261054939131484236147206876981479083709468596619534058356666631549747678551397167591392239729116872340191288514410668104724280774340030660166790141312957759062948746063890847874432324281918567658355863444376388871649855811201371753445879523351720698065045628550963172760109934763260201112767165129236558132059976709268127170316878562224507531965889915647022244200595809024656794766229510203550443821536430754169771222156584838259536031476115592832657696598646190681813646209099374152256815745139611668419694480325408515456599014018484939129557782914478339262076588441266561666919203784513100435971189720318248273438979167411929204765547427836129254522369264213974117144762369913427000704968037013988420909066012032724207064666107248214962713770040150111788900227914036220106299990268486120266271068762508274985864490387335183923448507006256546040816670935775614875266683603977600402095541790486957471621882785331256813718835757915706336040240973299705774432386873520073210588532009018596011615276752078356298261015297774006686625275927737375945801554537000148421798959557493093085333014737558766180397040643940304303019603352772475704064782838884491349333494161441296547336190987151792657717408839297183927980931695189514749011603869011740588449190011854798151380643743449078911294196800964783908964657637025108063831494460407102907277696622806634004624780905552203317017190466715170468689406859771704661025863641319946520323201366024983060155290710739617906945184137021600122755547843403624406734847560152797588581981844295740105401617494870847340966624265290770413343703428545698162036596896435076086731475723272243849756641832482916536160118659493023136583491206893053277721469106554429280617289712928424722450213139391553229897926008918061592760408593974019032159180462014760807575703387026291766542953806369338940574560802888917547914107446300070739606959860998022934017736240339757365004523656633994737685251289784926255902786078995364344535662697578914555440335864622832539183440161279247765213651678003773160171459025641022692422695433440934997323594344232770997444058870699754723173684432753265932110280055823144555410466889626991809859486544703055482166194941259766772328281940054667812752619299916871716211394054167101074383076332745975805131097730785741241607164239173865696857567635591802708024825768188421653718910752125567239247713331291092517580721833812385420647292174281039964196804080092705797623604053672434771701710759521463091737873722449689381429349661126814302519019152186366878292971516017711004054301452385484118513605853563907510401827222226408148923605082519493299677787963513161554893249036095854653019865641785816087585986508753111266938165584149183087988245820887138245130066337705978951883899119710272238935328771399427768572779273100030979948263119953073241722991836103120958155957293004542470973179407076607810244211537527818323374517860185067100866948710151236826712673790820270501075375597824733722907184133636325536374160940569165468391626335596572156808118391872259087266964130571530262814496185970850258648736638417223509075453100853182571416655996143058744082759154211459745996728860260783771126038076868811307738035078109266591503415036755520061029815628116626349737573335908500087621708816731534435960026572345746268270949105846319710098573731853639483430558026848032515192747979198856824316221210859192907764998643940838397232483292971293593378825514129559691248262381793130684289569338376012011496377415875351651831931285288939945323474803544903029111903350707803825175383907852216739133831637125174655570816429496010878705218953351449817192396452499165188964723405999484932733654622289204856149530715498733236247219249544084293296380439367217542372795938986111132213074001134904122677409569659292710794996664125875432345759716519441983796054587083646469152550054567208560828921085334156749308113905544620236657385985741580709261990253937027438060665295446848189152151762021082767268365015180820256945379147586419218665251914989311364497941504555576957245687031005044547862730070704115528777830557392284000838162270944926440141664313872922680959168108478885674360071524057698943849793688767332682060900781351832270080106259983263284702753503279095215807644563154062027404747898604299059518539695443744978516224080574771394374610218300767133318711323920463075304721704015892007102365568635897977427969319751520876649571750413222560243622843875507043544692823620565813963855780766810342810795787023099529502382446954227708778549354037549408093094952051554953901242847506315683381642131039834550147528045088197895528498440795493866583645219753366471019106078436499589428339850528601942221170245930756345816503693231058194700948492886840817373604073081532354067048069874718405606910501393481996735988077493094526091161106071054869019481972912635207076924658695686863615242395652725143537677929103609742168071402300052975971897474034680695133463838634708383567595923552896659933383733403521879135040865398928628622251493530900286167270303299748124964927732519820459062374874520677659411652596460385386840776153735349144892825043064458087564668712465272621124508574486654024533539901270391726892909958585914577434272788959481287751255616193829300650307059831856569007193257814027377998400801714397778872877674281943396273728373293097114334852127778566373489180993053104980084815344477093375113946538512678136439930256956961563716960119359463116884881825481616667562696195191614824687144280162480482841254558278217125908975792221777454446094543794112208067790743887246607327496745743568269816532380372596067167439758980759333073748707280228412574974232782899730330434169293357821510804443516117161455223265832193875907307286683813517656817350177750584754027181195920311856965724465165511855062940498381236602006124797419088194365139948446131552266481281904668100243383482157182381358576533213376062276762832479913734069940146404744368348485295301521801410047810801526938015491511830150706357653581102379410887337767306849082425395661807270267661698461954122565424878066117243479761860838950526890421388638454543260265863686891456750005288770737384859761267151278793126956154432276806642975191197360161129015203407280391714757267006661782752583257051683863421865924673837593894830562901199665940099211312471560552271013050862052634440534881808250721004714638723229850149623596511079784976789868662298079412144238948017581935883994167803248547214660748930224739965279837760799125053321391575046920771631696123245904260013046019631089771636318798814084423174476806622422452705918830216367104002676032043642911461498473323749183264449430713296711287072835112992749406266954863060099126190842278646511276531104764248311758869419870636347149545077446769368175311116626922500794672943741002922416875836095140974879506764837077892496834979222063957831873163626274570594004674828002631107720027304477130946670381661450402208387809187149264977752863716537149945182108677561488342651217133771277064036692991698493071600694113620410638279120576428672120583723904273442233037102821174120852178362669667829752128678494326700937719371222449488157959765216067831568711340164069396982254930868452342945577878436488317902247690007047646266948696044173182216798649795654257822324144371629951587712847764582720755363964594246737334562412808933913243020529330553728815566890252390106637146846321742913854278376626745617397576843694071390552260590377123837066136065860871431123549586737634195647113817068249097493251543468048514163154837945685642799958629301872011249814022346657359813167162018716727654582161463997012232119237897917280375718506338843693554939710412640926277215423961904165139094201115752277604646536027694394762687470111284485209862395534247502030947929939993857302609098685035808601033966219568395280193502624334893560328698070960509719449298007010285794400793404437656949668648074915775537361013248254209560299702641319263976341057048162002569873162648369699645316310597257077586455280302579556218676542184169884504258983878297708829339361340493129914132833341256597766388627181220899015600462110528332307455069979051966967343813885263211162387106059123944299083029703054221332776227526912727602983960767375576836241510527001511890835283501244415471768747681534881240765320161040368551326604573818980497034086137291304230615123643507737625460488841018338116280528316820453916261068592397397438497941092982181512683239516434077212794168068793840382883213268635962202290892851431535437376373222813856016959842743644489791524103711413632078504983476334823842849908952062174787898046489141570808568349505486574596059914018670603147801383709694496442776521879943987998690471720048427117569605543203124981537488638430797962335601778232284242510568642092605898070285225159771800110103812504026257862185751807420129829826433718024491289332770815878309304719164446391845578708614882963306520348178973566313920491769298666224517435746669376487774741684000671159957992689740948093261065886019142516802650178313444613271156347817883888410232590436544529848254174776926664406943394846893609987518455302682876919700471483988004389601009658218695765756443451821502904857370377565254420478946071731001430517109465915095671347107249971866031622731166119472370833456410080581986990069419972639190058862704579398325172653192139263196861599642336156961863575186990898134365769575175712136964366844808959366433904713429717549171856045220971221170510737355169815817168462764493817649553743408215660347270495680449402907913621204178067996178510050922310385521078163708854352636252343324110507391908659120917319085618715003366197002005592760909214002118732814627798249794881885970907755717200547929520938345790082238114923478163108982998699322700752033710340271190370425835450384368590933634412183428580758821692034013399495759378148047015344991107135405974663817172040244243689089307362019044579747297055093296835898342767038847486024175264358201875049459209653401297525498060661383944375267824002085505051985947013692714125771367070824900881712765824757967267873071392747163054587933562055558843680089800123802344303952539594334869587029114070483837829888658374674167680580112439530889259551740841587448219688957375207866373965998093894397026801024520881987975294603256412625961497118672919280177456609591913467380029495288207126128424628692671877132733674797732927721260117196400519037156414414533374651876019630465181373928203347225470185618197672250768401278372852710459067726610505787018939638602150518169430677408746925536250803861209711705621740549714219655616874955784664640344459621730177594041179267657441594523824331416546036113989556229454706577915440861323076596510798992464553216203437911616085575819290186166163151252693852795303950517452434675790286521578107643994713988798333606555196813743326103498373686290117576246061420972395092650006103427440111283946813670382554511044862487994861930493093538892471369644847208776627160697153387504761946692476033915230387477597485321669490535611819032051515095459026670767122454589034083277674392442908890633977227980854219443231986358947739704336504431623307897117896318011575333823278505753361784354815999792050527509764231727767229725597639543136219258607835751891771237871103585086869678070713899607970812891221835504490653989224204353203909516128851184800519370204843077099199250980910277467322663341709439094473075361627429389616872802880786892350158266660534165819370318531360081730725046002862028741856840656294559471753038034491470144159397394282327293191857742445516947841939324577277184439064842319938789023652358267801481184868255627099380992217260085713024342380281316025781751562736428104883945188152686475867106468439460541023744466226211796788608903703223221495824421420359979908474577050184244612188550397994656857020805651362205819373928632353412994440880346896344387556127806088211773608479294645764124912675165198436638808392777929551664637856465001875419280729868742389567428721254019593544187723123261335291747684833480630716974298947313015876419915920310273334933214873695245396703025958591666783352930765242100640991434758381942357945196625672156700832116845090934425873978724273299507782536278223389867725529185744690960469813956051413649090654019698240339404881781740521150971690149746226028889374905118873842934755331961316688360674203026918906755810661856723489051573529282627207693454700652901967048127580464970799233992046234133843757713367287584389167258110728360147302041616263188929462710974610077699390465197070308330992511766435330191949456286337139590770888812407818424035794380434459347762048910645452063432925749232036319619424950567079771763341285362787491084068116680398555779676576672040124202466395400395613974867874989222037927550320994855725838181035092598504966972075865202760200638512544831716440499144154603345834949394008277819491486369715702597494637173917925293901378245834120674090130332723509204457817673897709263413183279984969944267204116851362187002782589948074095214200865457370262727903635773710139054211411157527040251091338991743233555056970094176457964065483891792234781165849329435474139353721710393357166236744598586469205526641701568335021575488152594902013608990946882089885751426984099534556393811274577318885579970276012384053421073425397147415570243906959946804860473055084505941691646623861943745088038649932580800173319761114128956847953356427426137061411438772853430316585176092717079337326706104254011969958010673570975360683337239678707957322215921506259807796867076110968235883623608826422177706781122637435407260765984671431516964747822044880079777006312018958707394688460944356431539311178909674979201718674539264759937713486806623413087389740341309659744323994259543047966406089665857058078736965203213514089012324973850061004532841684397572579418632843981268733092221977791646332979527758303469076280243083542182374692998049818981045140316410580185940926350347492393683771780981336167545370534727997591911584508568418243485591534614679765196941498546706680635131432852531113083429727190824398418417190369691257962317409759335891338671627561487950767081136435137949986272286564789433662189053269480711866975372511293663995892686420894917308092134867365133098446392013647301076154721873992554386639332181769842539360880798172559470229956453697298600972871724782432943141817600131138205804074164840551513947996485141419556663389528226860371396139697093781261145073017081501004449353318325567373156637425658731189568984392128454595732905958714843442938313757103049547584309234180474227817240956344970382113756596232348074544950198830582970709974811317849666684439088624582767275546161901120581950936421825749679331926216884352282492513800720072537910971624319570922950746401161416742544223588041171506356863968459236978788751127725197899227967410133598574344393956835122730391666488995898913619699279728024679805468392103994139643792819969911565735735640992927351456208803748353008936168977662199584483369677953420363079693674673863418035979997216967183611767435624407287291974471483146790410381481770930518385089521037903007572374812921354364777915083490509835135658484541299979479440494568081088704603717444423365676003364809792028919533606192484893946562906665743703559072820904018002897279946774401552858381137096420218339446842394557699182994297928931986869063480959138100478238795882917475087680822838114258510162038848413699320592239138697861111149852058970139247667337443538841642765951773056023154380708664700188122485005645008521018779573027548635667735442401474688230386893269359778626851491910959875185638105641521323042441402134837377039258001366214038097460113871055805917646168619466848124523377283211368577824627249647242363169613810700239289527712338081734463495432431408925229479773492327187217604635363928776458415361456006011948377126487796817968183691446354659772302505364039535094864574861313093844578645219028925364355246330010636168120266081801325083340686007361494090202587394035431838692536937444294934026137123997393806524891158608218816908418356817343727993379165224565014925959625893749388447813641657192928168066377637926116575710680858246518220646923848106209169980730712082085406465344287083760221735855672573613698439799153245367499697949218671849956732389931536132973348866944115635401998847939339470456881650743130597499772664748588763350710088131576855530415250996154185283648243370656899423419853025891488415384958501773906655634039430498465641047214749640866950215737451430393187866924690301794316905975217734055686740020636124038360428271960835356775787438346257471535287974399722421128855774166117952220302808396939244334019358383835476771399539639525041424836568127822846161137918508884700493568550666291854448267108281468418728543717825393855322103402737956402633203774395527706380119142545462082831850315779291614945941812130377643583080515971819340229300409492562844734370979338007165879853162576477292478639409412474315960781411241249018879287489399976533703944207524940471794983731920956072074319072369500806505338172236382820182400491064570561194517300689004461651269598796969428593395623202536929878518917688979254147249740677302049307227942908878093537695588020804517358906831974340431031783899434598288484899044896659957346592742490520963811254296180366837977981201075113681190299717883967868791889029822662336228536073392782728752510282321587884850592465679450064555826898295193521029683456944646251844571350418916151951166092087211364118443092899166017629982229827288454377619052318431397711236590378661782833186743264988932122903430717975072176507294187622964776195165414586116681624229559374816393713084398258710422852109316143709585164552150740007444011587406744091750140523845316915897712003949379228069072194620885268529235891118754672845377844558635420514799358241354616737220616989735120893147250802895531975823660144094773583909520294941307300967809525745311574975269722034897279385520285181562447340608787707795523711989159605869634593548988963556602577682959707442884786069471864777592642278607135699727870585052922573359134047568420467196078607888779604086334960005641292625066107735669229487850531510678227227234795735297676947971789073929865991166165832867009864124989074948102418565321575330717929461131501396625866910673632005589885271455223512689132543335547648274974753587993159905255558932073175265641992500641761933679293888075608422230017695175783142581403346764067601256973664885196499445017832255571098693419106025577077812119887709049894198224755668999317625766859156667143967255390106411255473249326370617356555850159233182191432928135564590105820247649232525632225211535286619763752247269335915457623773133156794328925572501054097207225381291515272971951360835562940259598497030559416762524565243024603871611981958018874909155643332188170218772068559078706325285531517350023014946070150067960699324642575757934555596357611958390330614056152466320004037962245529458740874930578998639335076168234576387275571636830345587608981159567738943285014751047259665840566812675918664893661098504328643377985165593174128351870925200385292792267128161207218217666061384183658267087350850101247760436421557100617804217678609076127184284641699550433691939396731876216975235251140699671152582325550235697580214552846882671404807077579127361860481221063157647992255391256677079289651726157776579763091481596335091826165534644428698036397502687685876967059364310728189655707140267943675899222496755647363554876274405599659977093637138813440966882936296823472430172659612118076266776182554506002617711512510368606729606943883829266556174896370598228006063865810148652839988787746161149603676044795822422793385394826682191081718978025175668457451867335042465039184039305100315343420331650936003727782864577237416296798587631607285735096423413618750659748817187654638305115788531948628691435526955891864586231331508433504141204032691466033108003052879657381432894416651604378563467265440728365921443236242459219210988179855787787181688601811470013967671804930759646401415628331236210407062165718614058932211682073494255696987601808507171855842509406166133268591403432144724800348849016073405202520812160778784141629881735139870698679494909352420749348088912735273266085859108475465797637662872299039078346992853841345558225195845047260697423174495450863635047644481519021754261725694045781862694362407842459438354827459678692974042066247491981737638637430050854750796375294429935334301337995875517344583425525207031483109157453971623107141106293565671430337582392459272099723361335392603592113297644774575540477069114382272296584334190023432944892816947770877039527843843310879083098960168729194372856518902961237557738671260555205404430527604858186127891497459497098691587890172124533343871922741927777634460924061165707365486230131647788725119168211049045349444126225157684455121312632884247665809039483449398444355379101577570962471471898868921621069799735606807409138789325089192285505273442544716522208494989833171410762386085494502748569581007043080279694695728208053624048688674134153073792389445925404812856024838559452984314261921769060613704483264458303764603868922414372695869031013968984368647917138072751735716388558424621437560700316546891217663392369814673093577929029489497614729864399894633607189975491302921146062424990780890270227534062564064265475619656258216313312301694002542665673796338219457908002553883301977614818866055687265127255370614969528446900572914357755889303980436190076829233207334361265966836214145011962606147618468051173838149997850240769842556587902594335956713278231818563556841052190964883784162613958538269124095862243142167204472311993417983590620957871642334994803384081223547956254758158269905283749981113875245798708288354565641159898838078098976750461925018217703877942341255206812486847826292916600623987042935191370184424006476086011101099576379472674301833195902797288002963365703910464465418053939740961550321506209574181601436442830884267022331585975825252585643988612530563000596408602401632650196860678676206735591259705957531096977757329247770075490384693431335781426387990514748490303770841629274618301797014815677265935245647055199315465736093786514906094213623461859891678342508078106700542630577808692035447700485874981040198618359107925395238547322375989774001171127411028771934785348714823934312277398748345352451308273900307499736713813535705552720847549784246494422654904588882463897717369689614508434731288637398448810763924016093219552161036124700597171992688449674336008929374536444837041820665111978937915977819893084119565790964114555476771181175491030018212113239795742662083388646678750341646976025582861000021433876079888764956256764465311838962655082995007102980203547772642255447313926727892207481816833892513710282299315760013789157217902892566651764425119969028572244077856731264959936450928909811697199037149864267088209943473375710292955426185497088767077645972932528876033010674849251358124406109054217669170398860921861464785193629717736905070060474323689104354225056014238479571769563281749711851748189512152749990209786426213019617646867336122867267530164156664451941732299268033497957979414314764071921838161161152471103578786349475352934569379874035925075424528163745730559202561802860888416608508908186875957882220048016558211635053410664827425870700917480901136485942790951716350752202995935866553989174186022987065158154408354477417333338158311676359625583111249091082013231142923590727853306934910622054111367754438968443698873323491994199564444591873911189569503693731655373330981278128495152871418580953979573043615656779321450305570065642355657408684986694701097956397669216971036591567213603869320965892493357512443266702338098509316334190882222084315282202693039171199906228300586544194874820341671194963816661430609109128160014068840678098135930536401181731979340127589418333629719575869049382715207529853347605667860107072214356727985089595745764184767140639663237406697125905016146059604677351681789016328464747350104886302531835062063653375077950425444060345628716523423855080517635952874739938926860931852736969255371802890103743004600400202240323910312622410608302191188243306624021274949989627259531054228096677615773436464834637155714446884708757478701362212317587194968124468130147755467691984697853978336079816940109764544721990030391828363667494245265232852811191159604000332670685373313341210018660326035924845534005277358998518128178375422792821983604452643298134965046276595230968867346359144801602747821299914078815948677315285969678759222742295049367085734197334176628454753897774856744925417920180957633669808947828003315365551130218562490789892829919095408430591828226441737951178046522196853459563802538348921113945425618582774474438676860106788829365409145824465983632438811682621251131475166698527561552735122810397252435005941868363800411134941174655701313138208480241051323199257684865323472798079357947201599116007549260515641684651794852353892437300566693581148743227234482625543408417040490888572382750625137215940460482525380230746160175703481158647865010483833532781360832644678209113800078345820828115578823214638402495406958897223227396052701618526058854858123425936851091677521923874430212212217880278748441244754966934129333162154623898231114991663048725073163199103561107862183795393867660161913344951803141627559765877771119473707823124455332857582681026977573433487158882703486518795282452159968898647320277614424968226365708162427249470252770454769915204265301497513785630276063382380929520288005528916857064231993777871382745647891069567770921184766460303432392760590276640722924330772500714332977441358380695802753446221275337966631363821841867505806325603373226169107982030767887608438727835829913015386668655584565616272384191015030203016173087665514950928357033062577077286816164370562513047166502962402769125729672339004795205143100735751617778187881142215507633493798374771600034310013918343695253151795170375182511429273875653358862724194162119896201465009486193009804664375961414584587991483532420680136309247470031867481355019881211239324356969121690750768163938253593591413129754301033318211879577855794457285025401336833153451011737520037526866951571535565554406833161422132102195976336433994633536598633719245631539299194119333925143930130792042295219103101773048432302221075344014358205842399138536438168880749709390769894487992247168502199953304264102198400237248650022040506022593929888611286590537723551731951294846200138265948088058132561991802197547652679088797264388310572650579642961504826942752356296314731137350411626133100409178958702793722666357377132802406383715703590845582284201058781545446712159026222461298892500126035051627424511966709878402410362263330115532529856408363816209481277562018357367840627471452001885130215490201753063324336548434198284722700478721286085018506627171233322592637878770013288844626741231638083873702203402910049457607563289959264736350956035737157015942979040550139761107544455342115468050703980852481667531973339259330447143401380302427543310045676946662286775879825130337254600666811460485896237567682744245069710485717162629075177154725029973420509593269015252343503214912046807058355959799357594760342141351527387564580393835987653890715692224395367511389928475890108423126779263042760460791925670679536559109435026791848853630204175157138424110774114561662439252728085262284949816788108002174637013091819261888369612555801653095491874044783272262112546369479875964344521197924601655143529861827242391253388538894812566058489652455461640943518512802227170624082649854923738794646145335589227173017622692516190194673408165090519762988050453998577543093929667391312352678096197615084805545510946696233898412847713831597526134462809784847257034589216733269350223782178945549143492003605782949977660184036146134115639457714126512624029377318988315082220749296709056104754506622572697528717489217623755587206654230499731072372026311079923037134171135911798118123955546075325756411829710557059816351410117984979843222154307674922090505590918012994259083867639693545903021107644904119750756000469734326313608598803251617092575423454084393709384169127806468118735895584496876827287913942696784032255675228118220387899234469765878532426821642866238249817003039387164638842272862808291343054588775344431549712503798834435066699542441136436771722758856431452827697075494890609200746291636960129307693136524233557586781186474662744687362062395346526807811385131590044021951891877406098479044636374773253115475259803379697076004861531404169424247048804650186747458078749287058532818927689719696103614695507476644802369235067009592044215890318765451083549540980253457762701774488478583949328749758018176170303429431296348883693562838557929965134543992657358872807913705524499153700178333392256366908790378957129004493009439636533158971617897097593676998041360622882124364384224858377597352287885793507990722669297200700459294547438937169842323141292018447831069039664305063495201388108487597734927881749947130468514957242116634446895899403825277076010185518711337286157431799954228384680645400266675311299471383876830804054249197009300714698262693502284376174167473331723264391055221852713123709219567245425208795048060352358334508164970010280939585406341779173473853999853511900822016856174091283396448822455679829164034012195825024963402733876200022006013775627327295052155739290277790842980758069836903289021768036899413996543730000585687974470075617495922127159905344281166895667576739290426836955575811690178908599688006053635125428041429322948847233420434230118307536917000761308359302781361264692612311352762698856100100311168227557623155380763867067771144287482988458102402286550537259016117331356855372163732309468613029680056608891137764363020310124784874501829587570464444321949325543717095447982076483108416453077902312853967774594337792484765785140783305029077693057335122375770253960771589668550270315272321493198724950967392262294067945211173180163847283824644021664309213436616470085595457976746116051261337445042599160329680752948340123874793034135224484824216086751811538530737386594286799939758996335583971987296607365104809911302523235925554235504845781099983577978043703104123928930452862459215097742254897795543253673452035552201536908192091302107799837481605703621786673480878412558203304283720406714880610258612829224209690521180533337022141558554753101398113463160930010966665009939693801957179089958352995343012566611798735084823298802432406470503139432459343944718977365587897780004660109658519561626340482333669762570741374254833439291169335188751995454126576992900233103696519438642325631323215023784777981566636139611499904961142612041899909391916773466098089974158482149209319994642477094035240488616492814310019408284360035871279425684464029264725233983645027196342135384120755552981502352829724357613241029255037482887821441364786331775485980955874012657016265821653466143394315758724382078505137607165480652524890237879815061459844839509184655081373076703252660604293396328072498460843533700448377753271377876416745808003299883522719256846567437426636834384891803754480508560809052681246408714265935718752416241894204523563306099482510917583291901917951169787753017614987120530574075455658495391061159130025509209118003320358120664710338417363450727608331709996365433402773848584488865915375439728779512768842531328527107644459904813734150660834051919235715078113139516854915271230461498667511644996882003237345728714141465259814572393036714668918496164920138354754821656308615208819970979920691681286511932875743974035010320471499836005692611506460749959460423565285833073230393892283096871191198316689529677304359936809796541912825760665954124439163964787243166453323413188618763517257015663016090389233094726181905853421011932970831297922174209425423125433790106230221677855405906225251386995199832697159954745168180867292109813001761982387715613625458888943083146339852236319730043239832374269806161442502537624143497837245903895281587325020026283420432665819776426299004663643208934393542335545528524264260250268652230850629447794330685484238591054715416818232224574073757940716841682591167912918686748046074564566008581692700876245698355464873808245077695549342862497419038977242988419672761392655453904445559427455804580205920880906269648175439694121426234569193306433928789865654885812795704247685150655077380339110335621088214938811137307036578980120047986294071398909572644601064822619692142600802845491903925386605888187487897833453292207037237035797655909133421008908960344847003111891758947938251600963769974758728478418552724247710464233542969896011237264243727101587801710901996019257348382451678569675485745426952292794948328542364927054882367822763303835011232556026905765149506281614497765279305040193295135602380571960788062044746255218124367857165752386742455582822514858507794853092028153736658948154183095860006577915843331045770333991757218779197699076368826836656119397345507132165918909747535745634350718064489033025688542717211653777656652427185631111692540472928634322600961477490871186235347603352774042523047858074193859325085723549990286812565604555171003633803569211786055694307232719465036123382551805517382407592155491370176485564201782062723577657147309859166641642454784081430236644328944575061190424796373549657418516122118359355712842981412204815439143677773411289573394865471787510193217858225260644011512026862378442313143793684923707775986399759566023963086864391076579539671678278349385057814839812862455563211041724497298887219049108246511162827830242663362121712129985363828390669887956310797140746546982104575888210467150163232676224520791411931279496731009009255669579318352867790643904815968519097596121432808372562187892503108187367293465759838167935219198476849976239253111030739757457741238246205683799272653343103889246131398068354499713889518505541659621145644916043581088763327429106521397448790668317378508372686216836675940296921031321093909821237565564945925585804208234629863816915258335540763141934460322119728390149673833708381423722554161694301735744998610477136965345543765347922986079450343896411402135544826886775061232740696007532796064580853618781292120508352996444287134894283071532728665656579139011080688087013431168246867941113842571806145240624688470670843059464484940135192609141162769005661679882895165752201898502951806375206145588601648119780275689544889764075551752273182562752719556165036824508876044153279569606754405068919153265328547388351925050334181316902907017380299026955495606618176993440634678477382807086738406671423846975891403596207987111852021421735322294221178123241956954050583627086091411391380658239551452868558256135913363424102103869642880034529919011607878997348284110271254519160242160452844118588131268219663824980349910812709448212720255405593801350628101752300809747555933917518730969439002699877260256367048035955926483831620783101164821443544209444658861226672175369625686714800626276611382177763437280016660238903597929282324662508111959194132676594227561031633807277875606989213298171959369412076576603056739120128627780201615201031262623947517075914771442404502379617681441893107796841027283464362938433215626030218587722717557397750118587966550477658895998899710502492638608351635674397573339555958318390465178107000866954385924471048596323419465254441567517734459227339241011338578598617465616248066752761244060807921942762553536592238599675930901845111679575361627848857553878864843312001231782040904803157516333991510291248085460263470353321314070096633629582181635800752128488740479628439953342812416065049406523489700740417485763682954200588255620026817682862124813432622872775950930084647441683777487502710835398340398756050794760742624721174444400033206642986277510640713087031264336761525716098943380016524021790491262846362178317252271062049713827933861839643501039773628217124081644429588642148273883696081091872855908907550407128846460781377644674827383035972268231472650786544830781236119236481283463881465260562922143895225678703492496993910014979706672879007699453257223552171693477407821695310709722458380495406457057249176336583357430617178865054247838397740773123577166210064447703567108437427745369783187066553573761748087206772720340555461233237019908816849128642069433915136892528144232602954772564374330821649699113924044071400686301664800799459914832152636096078030622901307172381190028337787496952404290577874628710120559709754536679998450997454132876027159097668247265031004298011237481403775186294186893448998715911008121965009387330968673837072073387229026769856113621337991206649745651366786224487927463488441994820576215798742084114626213880071445970553545721765058558143469457227985829693677507637160265232376758288094509335615468493064144266021705307057669141913366807285326745688742227785478662357848021308390137935855357431831434854896319469893022773274035294412675094379137850661744910082676396082073872815371220956131657056117879227968085908541282116144247946051009983495666668097288488169681610733283998492562181877060966389991722642855121288970521075060150252003629118347736979397045275869177946165116473752244699896650251196531052772977904089457045881470095105142726201918358620843115550580842648461853261218430392300537555230606990071626944179548883518585147984374066156077304678934794003356638373191908071014086800409409204632561298090780853650136348876908009549587781894734624423975204842764734353370877044845451828259111417276104394743266413346072574812547103039891266871364975524630391654895065548060639293595923795555537249604984961161474050600239182108223085688794006826274022355795059640062918337831289239926763181383685111768781441558489550958914714139659932052410823898252693046155872175270132580684671279448633147603921966100799651536757930049009666900459060390804240477150525928045658889233845319844466063448302849819730314685942205204338016900162971383460057379914193597102826413119349279325370601353682909208776856353675116161541824871634311288245369689551041907692449221753310900630815655593033577471894289364476730797596859078480510637332260388637799395691143895690498498851038507839075859445124510774398925124166893464155673620901012087775959591506449479373899025756940971933923157360490953035987884180766491062432737066001728210007859183345418250059981774998214468701209870913317262984764379974804451934028119766328480411258530529108072497068255789720306514477670168623968191396392064414210137732247384284110588276704463533095481597408313076500615893172730740610080373317612074186478473122896944716570768754507522468010783618336965799711174386630435501695459762600023080667265743821718677274373973891926958621857309385498841763146169927302405413569667235934520619568987353811174267822625574531880652573842604257415470933305248075492846583455773200140099593950516554567502235523327662529482942096225329234332646986908182834685287606191162861373785105178020810936793720936601565376119829193210615311596826827490287497137066046550686730382496618409260885520669280340854904781052974258739087617786866801706155698870278247821665275594183797252929034203289754192787915225105775468160829978459655530372632769445006228458234734019916039065688935533150800042631252971043561206853092560453976710507491552259422634528364595217462000254486695674027242108997844824633365349019305149585866366566623425631405136910242505779378947192562693309959453909695384539382888418356372190870258687913005140548135756169074018442240623852707806460244775151415761578937289765562115183830494062808630849661928398260624816962962013510041427635157193909823437348601451175494572682018364787859193205893057175069161624680885985236876031245129954368095269513171542587327269941552384291332490253046280162742022725865777627470282515471117892659945287204426357312865287150793567723739643777135953371105170840101026987193123181131656323103049281215844594558957922244732547690277143453113257005380393905921383135873623669724281263705000181488338305425018730326869240366650528926945197689512154341609364482963757947502208655934383311880162776437182507750858531597633848532288809744889951980409483421612546505180993482096905582726696387139950040146893811504917730652310395142634950895135370282357753037738857020606075222914749098708951385076263527154146034683715233446739292370657247660749540139428739179643100844762957254256354695740282019415427734736763250638616301832245009208898306243694112656782626129842745863822347282475545254904201828574252246755750702778594236073660987636377354242983974503923641764511215608415982964069489359800866209313039346857009085652346336743096297150666462084981082548609078485191047463640922812630695726530507533467836400036806309602863261115181894267422751189384317859715888644278594980171586565455588974038806915069529614016121382746180324803557731486052655256615690274745725029474418138928732540877847032688837748430146708195422711189290604735965404020666602197051738612110634912794106406198347987513360945776446183541046704937538411554684822751804898597820218184863681643192121583438509553308938582540720595882718543612900149809913906989621315450839117585970275399352135983599635757847790004827874754103645037968296147585858538445649720716687656519932406338036901589649873899077722827370520380391558456587676324662463327222479882594212302513135654437520364112354059047680607459502290427227040496265180583822304727023754483656259162425608959960503830134936664704640709941813184910662067379231341182489520369070461983830316279180105522650133612893244099274168118698335452153181757118444666880034189095218760123884586322523801518377711135308428074437760699030840556354834285855837149399960703257406986747594835792523618519520770205354880983572617402201374287005580152757938167538401721334713106275805402058777086931032969374087963447228317768996184949547108847560348995915229532877309593360855289414222167344681765272595847539491412794563096506818588836244262966944806510193697747882440522530199457171019814520459819433930175118411649051914691364370000095095012352164746671881187383236144934391847954626618423803201898572951715345366086504385094369315950414273971589681410588636291988472801679723983103875354969783868539961722036116707463972444754804589488868405359000221250849652641463083652962433533660420194065757653180761561836811857979597606223966982996179498823772232644309326046018361910277527758656221130663876670364359825970310821675369075120227174077910405559409028798232050732242664151971179142372879097476730559236670824861531039503405005624239292138347158889172916888465457718064977531194381632119807669618264214122564476699040129396160149868355102027380525097805563501580671041913677325211410797147023035498327601687293069951514380505511361664601117275661376534034338474719758621900422473081028490044923740964336762109430600096881679276965638396497994452424015301943574047514663770283849055209235435553058944496187611848044210068353548230174899361189173727899629945768980477495468116926025539853267376149357400650739175800752473432274165668061302294733122825792340310033878585159202561458397824219108601986297075090788085559988995626538321367819547204263316832692566970975656095218853343103997828793413120327888541571373805822430657182590244674589158044131006637602791785540872942093698999356355447404339514569861561882535613698220376536456206962962756645004265416461478974727069404305536550213835791782093338006126041067435782303601129427769293589129760407692583275721699653456241069176627556089225638957302404010378880526009866232348598806613203457768796188921514521939487494444282982238430125464926188495597168462051708296600214456700666102059557320963028660140164833570060677499788951098244930583241164263384137805368218024059082675544085610724284927972816249349479822660204677082466712499404391769369753434714683795376770955164147242198799044841819839384015952606258494472919578906621444961154729906869661770803923836520259207384847632082277957956115693863828232053723983048526348312504020925904921124234984199033250599208639187431962976616184969933553565222294474648593395335455257073598020209400174226966549771175376206400527496249155737356512787104766867538284477156558590551991281826394191859189908792083405710613182203623018285934139428020522527729970199833148386630419064858748830685143150606057909636321402821575898830401838239406727350579637917916829765571211445469425039577212110514431803347515374043690754276288798462001477261254843624595692753190116044753521487970659594826249149609601438838851448564787602306258382751532849744740294798434241041285539410544582372630859696759988794574960222527207485113322042271503605311760589430777222136568252360333165850299442042901511963062033131472911325330864793252184754896770284825842077851463765762751727954025999623242083119865499168747979144856801574292659046383176301271194520886171512755507869132909985038938026379537732601808496812078913180025799933196092391376693419482140042598245405304915320864132754006762430684107831225019319170011260758429140385272507192881336414316791210665070989423446216980244257947329853597778635960915184408571717418774648820891980185579305219964871349999695390976920948536398187614005685771908668494748308841257340269547586704936498805384370613835359301072479723733328344947224140569441944982212325427763848895437448758192393349306479284366768981474035307155667815972365186756210187659254950570999962043879120522337734376703444439377777833934727545353128501066282259739886039456208180712210080372275657401532360541148550363687620786578490497680382004483573623491131096289391221139927347365331122695249213093640431452514398592848095825334949474376768705442237237446374944524065039929562888561373765478303255065364153177526286159869887635231636979153184105144911688615504271638962252096910024023595731444724827170472441435368900912773746379062006752838050771940399567751217490235070073194272861530867401526116586005806408844932792682423348734321398986266436884008348863953815599896667404206076850854059470750130681982685478300288845182493072141981128658898150241055989620135099016165883933309749233192705962177149396539707036655548679971361843741828382039903487411412579803377427199438678102888580593978339235054416262818172818033907490681682844909249592920736072249744143431314503136595427078268679304196331658628168703516009926379223757540296406570100022377133559069303003472532156222950316534904472444351632230098590125765628341827857119253578228827470401649546239949934405979680621684984000960310544313446003040123291921194892753964497259463243567836861278565428074529118200221662066015267499351827458595793933944663590486386825701504517573618506384960485896746465332888652004152515896553974691141860635221433674465191130052038217267783827867270428179368002439823389261285753603595806875792959156739701908953233766191981941489823418230307405136077190703024608780643018516396129248725826046165505501226820107338834693005579323851960444426262964983070539229075662947220738563687307437085624728129139628264650341618803491450952629446267391283142254763775030244812064427612704793949365500936684915071255453999784836545565144507316972323076583069556319934569744005377528164516022180677831681739767059708678322061194986372047679264826983993947045825247900924726923744459587582791310881864833076151559372957830810175215033364404930926180305000180792960005486083060152031078738780782202866464394674058627240290669632080085027329151502825827981289492993309092788085560094486964318399093562253867506674996098904154009599215868887033013308021448925772264086345135873391445101883375059253136809931962903736544953448805546934259421047949669650102359751382696470684002118770636473008106142107579100442029995147370337605548861049534116308202696052580131615381654840295924322192618267972928372197130985117067579607078867559989161739681969468151159036388585748892221480277965141366522147926609427278259623161730907467501192092026697420518420518296889339651115497512975231672589075562049664737113562555511531896133266216956504759254649399839905442446174472475056135933035470393971981664582734229482765101950964416189788875650800721022172375703667981358196708079790756933200264309680420446875422702618114728541632905387756649193759841677912100634066464787278515961982726271717472204197288562556772657383183371281165428606056028433307033404884361194542483523182131600841075012185298245407174606890458533548881724609992611540988995748556989989035203056484449253068068549163305358656853611144228695174449231704445218350027406641667428032651322460806257021588901496531286934359472000006343041421267640765080377453730018752924001707092992375113289941731263069712662171034098399751955609176429113725487779778400595792082181389217246827340621622624125688309662787396516138271941838002687096611210258303778104595315327558971160721703542544382143701955401852114494259802211815886770601121484711367027682993728894584345526426858015897637230876269953982912871835138608855291032509970120760248233640803871899445276987846230470907957668768834020838417647064462650140441954864986822328223233001332054088583972750874941542689594783172918832466549750272244953659717853373863808194309556922162883471226425985991668971236325565991589657704541102770208478649768699856980632258625701033552833765759894366769202061584796008357238544554138989650034345614040006231481026223632186219366743069107062958065432027680738513189816043327638658580012889150760290064903381261252763258792314423123952175234787617007230667837485306059407013299087197059851533975793350644195742208415364974549968601282900314071957543419333184285079511849148979647382074281349371831605604976983265900845078116128326141456423090824181413306992725055913985040644530941137854147333704598756038278882467917462163416699608481117044433813288001667451819253976315945036158564298837443954886569500820656405184194990090155932283264266592719377362535193271165763327391837789592755740103712772648914828240299205183886906490704078467990692838377497840608575191509595459945385838917886642760243188819072223199064836404347960972494227316946774167014499008013330235262216951927927922180372135193283103034546966702487952558267217493600334347730754172382871781881783242477288980133907390707850133226866581929742773873975336181999753219950496035295443215631842050136461844850103923252879097329029741285464368138641223051041495134737606050252428882316441230357524588518104378970371443301389948644571802702544343649943978921822858327454947003816556344720084639383409588787454329859710553326759097436932275507947398059508646094224070329348256151753185536076035368712842591276025712004721023575264674866130184656028639049487503442092826064911771102538237920221757572038328906852992173410536725437483793467222266023351045293129440776039009402607443265708065912462819350979695349063939776949910898502444880508686629721239720045411397343927407449322887477838024871950543479695384731586878908563855201476916015385350796378487923128988346753405788700636867339586410475490956736500647233723718936930713051448485818016541831290405719884134919999968688956081528346409286305020364424026030667243059838467455547236004892211416077517713510281263179890261011354204048038157316909328405121721898823473018209068504933547613543438171018716816281203113549169917488630613202145014838984083473306593711327957523436506997301336136960891427088017837425407967317609285475288279016635684998178533852664531484232044391732237360528427974707369446143926878315303944966650129289455581541054486931335942794964751899009967326829993949525865350495339212110845135390070587243026517319802042986302723205179612587511089615880583582774387796956472882983310678580236976732674757759467125080061743001688769816718831939420733806185468151691329207206533060375748533346248057200128294380043261763723498227656912039102433387110142261204353803319837794708856383084369921925496783174614122537666951203664311519169744473208926659769680006693763328649268497804214858744023584638126586971446769381770265087398568150104510449539454550426012421369832497399831121080839481242200217047891859004263525355526790044099683178166684068352256963895971811150250541942373770390818035073558153198090597004539196175161721023386509100553655498961682526027227505672389820013501624668836379074693693811698617857855869663494636253273842815246525268658810810436482947555745085880270286289365681211481909750011438843306517746029318513112102881115198130489216550131941279770566606823050049206423028645543509761842983694781864664580458932470042312729336374617201258695961851391903616381835258701250340207658620173392407230099140755376011755032019558734374644845309883581451249107226349039503643584139217855227516815790511125278749608475111850585888128135492919440325123394997367639075918926480130441036020975742552660459388859042144935061655787201713191930317592032254866006552577778497717706346507737949254504819855466105066258461094043952403146227485395083183295568125131549681484123134410705533264113334483950746426366361878707050815596726905979920985055323750059113560541094982380289200022578371492271502594047582566543701729947743089287163573631426585303555987001221853638841340685186803160314220355496014886723785797990358700489639445723279097121981058180473940589372939204022620479020390842477336997570841631361477152814695563979483773839235083382929820667036176765153403979403275342058603633538372054054545986793466495031863310245117726570364211693153836371128946315715756072654249580151891828284546962264372034359931742926872399167195812530051778257523723921762186422775545839277682154605958208902592850791996501166174474085400065241409982894411230138805198964041002017848810157628449666529882646626682315338257954157067102941041094611682954080437228662142630029201391216636566040172512715417291772438003945859399871235477603333037251236074834729730506114361292762311899071960853116601835558870895709271974684101363395120266070706861726524709836984046871523731490862544316561628101223950523980749539125004715132848772606524220315416172839624022442821651909113629245962927081397654688625548956601355806216125849689897718667679643071236677854907388094639186432651707037910036079302191040376301371929895978929765455543164467412976759235842555776307836960106743356327317635458773412411432803457516001724271288726197051948087972442160120091064123638740252896648473809371899861022362968617506575735822748702084466352474186132509014587118055996127655556793180185024631275220359151398730270399708871137114684428601696923333435545850901635565155323522285912273324369530825535040767917708042007628290859438101444126340057641616280863570705050045119357747096999275465815830265691172142164381131339609742469817690203813452514071130310480843619391693763371793379795594382807556053518886164789452754078929671202384714815426634699602800771985441471250321901428347086596191418171004833381612132054040551027236085773848613116543976090581465945621533112367659642403405392051334953607703249632911183168304355572545643447030978129130614184147297715601680875869933059755053786072253458966669981854618362218171498982304057051977844575309156829886399928980975367833780167265896561569929019228909530019269975379997955525930088566024833514392109481919544973287847342141011859626893871840036642256122026606578421929559122385898484531586190373244788089085164716431227276872414502336205867048167095586082613804703738665716272050566825501253895090470624841172563208208114263468196085541269448721244620699133222201922684658214504667966323740162954355319715927163425644912132833059042147745049551442936903377890378891318081797785087395193220279486840819767741114486826217939096992688794398247546992018606495272131100397039392471975622371943622300963340538937802138921067475630077674516102934282413203137774385047176589527425563278837365133239219428319858239278656134132455187889855970434193304267382452630247545012792415114090665238323972145376490159587526065269101213048981874817639951118518128782514042199193673379124280834226261494797260592572255148342464896364485685549532527052623911722817412434250920810119020658704419118887994176364544775786113182065955907362404775737571394212010998794768729868135102067402439120808972989135383439615722850970270289981095790922636050442037942640714416108800301314865587854909719179613410430020030350203755185071095143123467898583176569159862178430038619581224416310290759080570008241342811383988955207953203126948241442105082040654440438395353774116347005545374649868472244642807873706280926274037041437937860265592721693657498536531504549967507777642271220502212659499492511931364250711845060418065030131535878436702263104840995325799227890347528864225668390805473036647757661109706398627311129215505028130414737349124303204772710436347115019673782666878003613593069640959300532785551159767720001622268192868391470023999570181657130019220586275635450739613826794951205338598676796637922507538328856183466687779942387582792337280320069889107360433188807909264625708782018815728936883664627764433967358914629426538328158909509391250696086607553351622574295782348013395560321565950070442008213858674654562517426935188071309436501662969560528231094852235046782040564589023878291544132466411697834411706614177062458005687276205724491304994329630637854470502161701566900080850451495937143095646112015353087865289026515067911471643680553959256237591469418119894055007264170871406585429023366065489286524156490495873121023884818356056186837238618305596987267897996274104538926555849043234863986484184659691009770514515761061005346477269591046064314450237341514035572363469309953378699302240642366086212894487073994831274721191001466967166179869642052562195629180191397789451909798483227304958394312939638965585596353617647991283220116573677868838039855849389837061794414158383569531238841354604813235575120987829979419527139631678652268432725513266663709053342338211111163603667013874502027204862278153200193168301736369479788794582351092952003018650317323191030850124967730446647405773566434712844929327269667078584008335761098186505231139670845440744253756452164691395277588140895709954775621078061035165024473238970409032084195664542783296149048960248580015358720769529796175364850199295901899983410742508860008042834347988440855285186960573639823354917457395870138593095593418991984596244558551236710781341473876587003289385120253035628233784546522947099343523490983354320275438276395693122087646351890634003518556881328820505596028065149786506807751434151175503878978932676900753983005156639850289402387798796564975857135517240817539761071088510418472037888524840042939273496940317166522058344649129280531428054285225956543304676823161225163313169062888098675162708888987452884485605638482413551285901484604669621320826534547688861297718912035226826187163689326056654751176571339076431651819385687641923005256925327349454138236530626959246339746861887728253109965530364375587856284264106356021270680428279749368095141640980362006554664329931917099875966215181459855400899624797492903409423014187981655280276259023041616555138459772695414433466370881534325961756348409008071391126145359062367035229069204243744213942429018569081597102467789714992398664751723741465592722052754806291410240145868889190653996941310150700604140750942599246893595789522976731781809106615921329692126545334553725906883624999953447169742340334277481833324250608479481341370941961137918661684502870483662226482910101953918389975393527477230864641734360022465494871823087738551882044826368947306746178475200341310307577411433966498454180815977785787004733858068319572546227408807910128769238215148356442441502944738071264322966438687124777700791268335884023310640056968021162052423609529210435290674086018414535211162908833462693473667300816010308817436688864122661164360960380301731383717779458938708383754859417190431067251405882142669436856972740523063239393995060226105993365323842974530312933461850472921891384881966303050491141719821718307795243072761526818705123731715491571902016651681357784932785534714942090076505328512473202319064410128524961789342505790700035313329782339093529762919125799172072032004977507626847534968552334282181408582152846017013124325969130937553348140959716394587180075115474590459184656749823329613915455506259463508221299101296275838355466467907353534499437015958620449691125179738336962806525583181911654769749987861950385113725965236879612373305885726595068711270406762294223286562655294178927902688563183039762815458830947410265822623194918566552928218108812261063150493090173414124926019812471756351393544359323222511949542261732030769492058620132540406813120989752811119625826679907834621323536757173264858276237419691200868548186260804304136585971014717140886014689041488634576015318497638220852217348233621364944973077952648776927956598206025147228543795396900513963635575623984798743752876442767586754319304019499768336329870917986375295527600662321134147417011950632573526888580625980710670694016325986958160797876707333510933388841374816452991426590834131986631128762620759513563823173761713571115892913784245982702005304666414188231014667700066515135420478729808592561321324872651327026919435044723610278507785857728468985326383230423416486282565856717715769244140476949273243581621449035113907210594243169933072365062128382776304522764418465888286045473254986048623206459642036032273406820431205689351561403420481511803909896198155671725684393483783962530536240294086304925985536346052637583535850014117398413819249875937277397542154791065880187109241526293303589731555873535751519649103131840716931667847029441902421585074667179166457687831878534970659884480474074440792183078851204054114926770128692966190686922320548755247608686601695516383850379296944675539532613858497500972857509478509081330989715904823578530900757840184033336165641007315954740549292007718373630084855471449996000423077137038904092643930934992929749964207594384740135378011370007901231725312598359177515646421422361755713881520429302759264157137600428247504591923613732190505569922610580628201914035689541269949077253860862667775696984354556700065424215458835335126622903632503363734712895160139887696883473469570808489908560811500591578065542319799207009921645107078141783537779324432824337288394410131598803459893649395317479235450194156875387555850523194565829918934743013375247452502883798524357604036821014029859613853105882386503855522908932511876795407248671402135104484126791144347275311608753270698502023046999589313070456287161350444237684690775982385584677283619262879758648770200838969034530383948970247674725439641828539908429655047420834265834139186490167369593335643211633052803230203298947005994330161384503531557435271001770563254143930279101866753674890124895589489371755772321307921476189706544071751007852586384249866681211039570990962911668811701087841427925410113490572487846976138843303297647094879057701548210650284314794820474941248230011502381697643388633829030147065552105460033007283035317485295325098304741260531738006967881350314918863572434228471131959135473360101895085358953027134431847305816294343483943590433939201693397049021313497742552816183596696509008471693454269419950998791379310674248491317937490137201374282721686609272965148970652139059058297497577973777341582838093767660498915354953720902197952522442996971439475631063719849844944954371447633511322612210144132098518353544534643818803849893237547862242772552158588505566548509887524969991698121743093567556662254236348522351080806458561777835069381811308209273056771617123945713755816097760530616590657148492555542463797121387379397282650180392553299727272119199758581294981479885312092533183958228615128561642851388954588210120761259032819728162642483875491954489800414035941171715385014223108895615833783131052773762208447589990537557381567139494334218277463223895599989707576544789225459666447653775606598748786714084441241594535801573619039394552787546912340870861730706150238381175948503409026805144761913054864600423454914905973369789524661541322527615572775179140627572219940777422148787303312706395095627543539407084271039280185528358216545596116049462171600783902013117823297519928536003352656808141798762193845217476378723815657286782423722873979865456808803942535696146864445904877279036574229644277901262669107869299101251155308103511741013038181580586494165925148668844357355688011998479355958888989701968407207645313911611002693512599786031129443016668549683155781546016280923147219111290238005135353672312795473090433611879508997814928181812344683589194791904005182122831445752381781765240481698369747925447032148629710597097627425039136519165256084726067775787968751707583930273214799491619234527765068660581291740406474710214057932695012457324079362417844837290237409143079496770658196828205276969987428689903281426143949964831888305758723923027158803738686073835165578933726956135633440571673846128540444107802946713406319771000997207845232248643742822454360582463676331596771858349728669127356314568212886224745904849175701243903395834627692785267452420490374113322340179361643728067841569631066061154946446694025411012225239025191903180871428143067163393616353218896263719827321579690943317569666134108201058737431124716859844492823099766795320634827445521761959435864319185297739624979168799307991911329333274196745766980130965175043662148172573769861703252995609498598283964919230533163675107852796294529769016909464122699186938149775132103213611161291679974722154480252113257305591679727492034094043062360903166390897710438232235446475662228494584673964280029632063182910517440289902371243879476335558574826048264312230541547449116692312268653208724616044100370432412802752240914550796575586121390372153864036264735643886447348346815257620736136133235965149591511996551806775409842050525675010982731644936973051706967933641765852220650925096384324861415443357833433017137966364983076507679497768864572374252493636483471056760652809685643612899586281523539427942482897064642164429730024312621756044812298349704632620639517137075779224944280814174310688441684072328246661561500196856170568839758772803741378615510280447725193163860162366766445971720811815461587552923354852991779238566439581218460338630295093846735526755108549828183405815361646083859652532526187965366723276990475459552161909527451612745057877784169993190999782045545604268901695830375704906436259919946991992712182772265098220678209991390430713633387885753076498346446502372663908939942211016603222336616456338641988239885102369413200218020055119724200203138462070926208879920582895162441118067429528216208324437221323192862272133239223118724432878679954778107758787161517299661695981684736289580765372593793414123185699395170835027689018147544337566410385536961362679964895585166825933304607099622113955245907197366481099593819240102738157861228555490824303689745921818793649529188575215591092586599050256635209687928254401336160613767830396069852523029632086513060783427574258274589472869364397710746462502353564793245277351258121558003950981057485741203705902588961372013681044794675658299563256682022306975895389873532072122911036294421641365506676614245606714177828824924908259177951352975571063451184404205675736095674747585908456154475211338222533304293875319450059054259666694197077427303970046118267151327678663796354686321624281189830310365021553559892091480998171166931377017840505695700237436195685151283519946260601166645993568943824625790849120295240238470360716585329744509567597227708694692007200514636296261662632899805046155023148638727142228547389537810685158575510704539660658190444490682990907441534309825416687667487049323063233282842271733299545142239668076303477158242567745406331722183976725866384073022893542503804033567644248212175631876996453726147779568740601355474254782123050571676741642634493671396319323373040108994929793224081576615511174491317339952679529179181338625613062586372231211439826597672914403387661013913062224238675222179018852860468570835751069646922007677305683548019266393145301893254429865870688861401712175743363903716034669060899970128735630483937026677310133787456540360558589782754748026385006664237897601143544867588641737450395026257593384122490597199903499354392609764598665504579121231642279682368408887423749903389353583501962411515851857911324844985462007551849784934344056307956960464951845063033296561666109294098109945833116882476699657015726657154791554415215947555568820486109759807336920132885446868364852644434359030263040389844896588841028924264727229179193945779363050012440661449209870521946317391237771693061025178102908920194888202198959829210529524714173385210170077127063034684582232811767955312343203544020880362871752284919534757762402025129473098208695846161022751902324431134806562675816117722640773553032645784619306602732476179986080971316617788446335973979420210336654393735668308887226030217384747011663986641856080805924186922848726767650848235922288759623229183118356966184972196950307090304566405404410104591882939958232438171281470650375962368341687554729584791736715211811971931334884123486479545296469789217000960422088748000402903809099926634839791241495602507223830219705713476113902182984623200363314705175519967714416579643615649865592831019888812018325341076342231158240698958698904446553689082287765247662860724981046820366829057148506756183167505865973942737427638108634927188984669242491109779996532467414653065756040739714056189365667744902942378107224081726625937093674013924619805496057983427113034678576852703790673532751273473181052989095239888975565748478417523697440375913324864178630937966660494876118698284217089979023091594444094500587725100935934945737823299949677826357342133377694377544599415531808963257744370580576073994962190647343696290258378834110051105067230032445784298738261135271081332921007638989124963195937827966311659195862308043144409220532164986625524501584035039906168759005947667737472102351748775070090711766589188315063970601018993907593239307177193615702705892127210223250021702288951569487961300529648230374411618158880256430303281872066060137962810232421402141453550848920301422772454666970898950418769425562730992673730484482463712431580920309947879083224193926037560648320919435730240583611260964688745094916863892102838652872191904193191254939675225464744673019531055959614018727204741518122259125975982980269502065114806311524680284980436544124696512255919106134898308839338348946148344411671397878957241921527601034622044851901284044256319235724553054939802361743110438119946647733416859618770271808063549721417226279749832328090045957958060559231845854823976887570531707062032798332331073233081119188747631331258373075885316764723235425091847379930409471951817608953540617113980621784816145480630581978933704212667090138135504370321146263501730445786762963093518699311002193346963349147052576769654898837364166579143672532118202407282377391455750271767952637391905610952937348503960480850866853483376392547654020203467020936185240596166199297001565958380893098024003000147556999932155784159085228473415128644779054658384248415669994702275944243457812318954873216108792464801430661587810625190924527889207067091841988247702856424120218713168233816017535313996178949723726650247778016761478117975389951049160737474606699057412324799991908421109835963944592751744638934693675518061303610194834048484541440824635481667558312234122178159758611227052580933447636495745934955563573750151291992154574304963206593956294081902280390039241754857363767533194970381876679284958208748945824687034044800972060795888426607848828521704308744385569604812590051056330970124346296559615164529732669976847686452864651498436867521602817910949417232812202656123926288949000883716781306115486091252031306384907781026531966110343357946725837240219226786111751343711947908528300523049814203217114797768006421727221329449185658375399636791078836472228569812208720519011052852864912445656227088631059372233284794770921910635883773593283890759000112763276756224664750629115608448357182794332288745471719183391116930931291539316942215990945383564269241186433414947667640051079578459149689867827653744933397211552137315102351920713669012504444708657304870776808321869506055966086637957783548664951833724076619070233818683360691460870582130347911643677613718462805180162852031940181883778662896180794414623540634014023552094444841616030537360383943300668904499644774458926192996175884988655241456157743813182099372710988631598550759761906317590627525398564417280256586217116175406195472566289432097100209208441884165145596057235155172466417899147042060757409262191771455631208801877881040366917022779581227396409197716639978099585911893372645381047814326875476440332254434524755664338491873695813093140386725029456079024273869346708298134927880666173308461945325045999327893164007055637868617592828584461133475206509857912083035838182817833591983689196773407363667097233310688830556381605192193322723215234162289555301339681491788407144351284395956586553480151464351356027285349985962596864523622371790146224063378009164654255232265740788811757698902764302963698418569878115453288612637481309384623387992119497075697840144621389159650875980764267536093490336633824957972494677881588862172650434111655229653747686333747217424585310824185022356751283673638432809424824276824142583818486525077896414383599412160065537085776887064372251251918631229161420873050475991064635606737671659950092736642202310562174658328617209247437403135544670378727104784805797623550567987201734317324859546977959567006469648767541828319191017701331061452590062378118388831032446755941094115845037997555170195971730523374443335689893642082850136688985638999928251336836716903673460249942980268162171923663625420791136050524404512985419381579760478717953867989424072572215899337872034276761104184200686931560256505151800241897655434634867687738543338512504175901062651797145633189846700571889913012509742735669524850169340921221286137680678206160026483812329358286863993075597396033707509599052477072692398599963889063878462803950006949516793341229838534690944914989083988128169314838364465030610130282075528381074163309180123739064502367360359513166828480204238107291312260224740674975110268169453315966128763953062435200520550376864858855334120389794188237469805939486546398322154441621169692661943912773920387906398721053433083991061286508520881440926382071519927881901033948356431317724585348990409955015386307611934950220705142858433077289501443442650627149694822342476238505321851483488464728142746967627818409626866546458136427275626884535561710102832907747649832718985005598847285360272001995679488833730922084880142716545726756861178622223553734227510688705976213661349576818601123834374409615676551459310782407723831417004832533661252982098940465287715249397031964674134950485170964049472511766337690672552611111160511699116412818112614443620594572500685391757768722883306856533555458588576084718141020140379700961904531549886977686332351999844217521626558184357898671774620109377179023687009428741233629016817089827546201698548487608046691089933209937914658503082797285484029181247208093122155944400764893855632150300461783255902275516015769580715962677001943835844813903905272525824812409597429348678039983470103642378086666386417100436970767261202854362398573468908582458979966381295698938089134376673397956328846505535658522299358534380097827915998613888760219828958340841999890141267549810068207959592176355824293515201055515955150454066850663260813789070466300196032172587819257856338098009117640734160916350075837412003094543977752355835693048736904651719850108772082215134960424356771257872677034770333614288244711470574570368302157420233819855439409309651165322949243515630097753364573950910383894382279369486484235875268373977977670997415482922598200393179620722613944240527039689525294340605815256391330036117553998643165557724026316127253754732010308085816342309297717772411330279703396581028857852188288727531435988228891475879840167857942785402733863369923610705002418765674497075049469225022652138580856860658049649547460674110059787661076105855335318963843449454588533228161122096579550543458859564517296498310709878497594447620337109321921047673779019885651980245489903732817176052903402024567142771728506595219873260798838137625377661304944212972576271547348876984066292631886120486781812365425885571423842806482017525966223441676730570694741986726576178131195993350270129176851866629775132618849611630225947568574826536817122680907410606123032995042562059755512301672281739082678906581264016878529896062620805082874922593443328731818149792660947065690034002914298359223941997493716933615378585399677038846953113955874833560549188566712248837878992008633527804754002780499141800091998037036765101601387261519447826643958805100339131450442390185128422623937261679403310759919650411055040572783910317577679736710970745442059987915004226711765770834350585083817345010191856478849817791129181567753404291825739083347442524718878788057921967943524336085521035372497874233195034804842247886632223212990200382537538051597080335735514502986949583802526675452619526823082780130622269890046015172249594594864272877010923937304521700396287515706067670603153349455920022735779706835019171268151743057523534188684781621945300328864939858277512160143341075784839631878454424281586522948184218292999910948524547781670239942633942855420788964264340998381968574700382559292921853941339718927878338898024811115788997025911944011491104166356446719802458554669411823704432362633034070554423736689810753396574664181658521128773299279277179203454098169308013515016118248023584627743081145619096668871432418414053889134248320621178754824021313645042638178324266495663191863765425159697901346542870572307963318132954658931409771414261925773188634927072109782708851621647387573618228936433241008887476446707045701823243482961022014584249993004193600550888954755312039409889064772774352492871516918543439006182023695100778719284289161298632000731408773071457877142327407740273561621060592493148415542473269843823586220426672532892675277072551165523856582926618930106550867212940299441002106430498249941240579159593297627555095005912203201355011698281656014437190509144369637873376358337277379274513227759657044129577380278052923875240578276533362417962928528863083670868886692183497382879293636024679243799018121922523553282215511088233995420387561902533089517637848806306812897220834099200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
63000! 502361622179076062228116435357867444995643432992314934990180478895513724032767664171017618565272305334069393965260221920950879582101524351381191251122702571708206192695183873069185576648858613202429838783582368502469163545704247974734825156025122672798393965288984608510661996476165921773202833272924518641370830197539905559341794890247128036792588363002758660997674197669226361536790458224565925559338330458289858688091383658933631317349673325362807570268610897325818681066661908066423869762512391358744414144581429647316962475061256447446213019479870175156471219594593730427509500123719090212138784929625406385325412682807869746911210907024490822978695076358753874110967729875702383865652079542568314564781539909567507419306839906457078179790956795270991764084385557352873257047719628014809410745313454190689480097515478185833727214375322077439625271027134075297816838712904545824859515129507066300692827589534239519736321760226283725161182294130754650595497421009012999700257938711154766790284040140119082360695659876418146898792470472481868664844794956593382728354968627291459406277426378260281903976407144903051272160348158796243116232579961798925587150347186221105757119836096382527103426581012316036419823489204394040376997291806614615031331075079986152174813503688611466069644778758611846378779078788828235529545908828683418670811042982317914961815096507640334347916718254081840587527491724948671449350287633001361636339973111685882890314843875828609068584800219868994386081996057591823778749940347971583305252756533111430524303775010138826342374411953730715541024564213842009187629724135889641587273658500665232872886170095743233736820973605541115942472991000928991820830943541702479506582804556132393459657732478080883149648856265601512269502063251160520872251195929887105008093184404399138985235491902436970229790320951609305611629247295291737943724289542090018491730337676726578984185319076039557509991949319912703626626848945902762414648959750155100626858232266024163555371666237754079822046720854375985673991566545693587423980725877178515364413849738297355194534221869051839763664172244463707877953608206746267308903363222926629325854279398791948171905347313604159823545921474725358638363449844380218499874118763974074756963598593542876306802013374226027183039789568982215915964546573568357270155595585181692545431005049726554199316123597487029366505671281338355594637912815245251191680940439849095113130524481991385427089736834834298533440610780199284047120071956114948737853626278109575287330459102837065183952423189551662287651294009028878622508848535179348526789863027046900761339039000437686485825094498367498174810024257589546405524911059448554140744970912311791869692496151478489095715252675998506091355902627857651055092406232395453866522518561657172177788755372101926614332253019180393835373065093023756389430862226499562847421748218677007227643075942869530118894081382846916218760834268382452456446918020616524822038712022504000198034417101126498110683032730870785159614572748581543116376426161925125319533999848678337131862220157721162844509338784361382505969335645199807463922314065428002951207632211937676127283425345108382775589000399989665147184238674452006361514749771895559773795223908941839995770568375071425880847765682269761779406053297924410055267036497578539752006709785499159208466933694269425454209319951056941930652558696549421171830795169609285155431141471768173347240521559803833169974518847175011897919590782918376181002754305592453038707058283826692791237111092979959647766764581892539274720532866607543160639107497233545698914055342790663588718370694476164295926916693390038429443010784709304479914461807924053362237444777577629109037459895449684379477428809429222714832587375353716334232508249401031471721773901327964050572066761583383219110561566539620758248790896807936855097685488763091693680746994933910923464167748457277252011473614487549147902879725721426705966373273411924401162711278314095362916515549139135498025852337295009251873850621806309559279331144556937514759016733347782188219159904590086870798542748184978548284320297784869378393096458195925557180156179462747915693225284415161237259094002368201032643987799299690866619971533876728645625161656630530714569734314169210409838557561308277972890310716443802171939494179507001856182690484300631539677501681791594218256194542195853337196513161224406792347334776283501586956222517456602173334881749627292808258207241638440912180124059378178216237842922294590143567891029653021801981671972495140237604084978612482811013237873969706194394929811674233056375906031990281544640684656900518239658216988516171244195236114121600817224063743081348561976544514318081540165087455851958389441940503453762120430608279057310847676509402365110191887074779229202845655930800261870162163574149237030045615183364329918960689474731079356276883963162011588326385079121299054056432596550319986937273540773041094502753415599051422112633663345271749159863067110392014948944903393641773784574101075290514417820584218725427858241506272564681495624513792215572605650438408049739653309474317424530483774833374872851642497039402363374172497536095011771191528399138110254558489795532670147828513133885006720903112922807056377939757579529846412566230324674191766752044465394293365272307240637586452447461865688115179702253770519722093676084939408007540058075669048656334430092604318068021389967271382600063196882701372810168412233020030851332708070640566872631564128816434164374270949441982749008321737949107477695421681092882197564741256878011631197559502943667180621287894490547036529979995032378335485237242457975108099523271256134809664721976548949493352406859887164353675974103509382862517205243305783350097264525167445159827978296229255962120922832425640671784716872092236996286967215353204093996614932730694611301163137507308030425706060372401628607241790708115212813418544215961142909084626632767324346529509897657405202625756136291632618457083622792898658036167833602231356064313006690681547711246685021728721381848257463638865519771114595160952429406120363875528047976828254754796821319913809244942718802691648436210651711360333768692871838329270386464884359208119172301642899733037357538019959685392379230754489251431740259898895698046487962378947061444242901008062441137617848332987399299590219977417823720995338136819836066142850097694558207611397885644996201541669235167472345233682674930789266146211116949514537871609579407021527714947106977736821673141268876541077053596257756938398977480593547420895583800118524114586634439695237817634824065568684767015776545488988263581349455698800947464725743832162293591241483602383713412154291922471364089623908702271788541721343563911933127565123441729480483860858865900808082034008686152184704522722445942620523554741628628139271896315540810450046277743040263558516838333230292226561251419643229102818629199145493804047161925850265509877438918883017081961237550392818726009626876363851115763546897367257505289560305296541104380812149970999105499906458315779821810812272103030038179622631636235277347958477669013001991034070402483471568663654104410736234906188956202291587757176869035126604682380494492955597039412873597054975841409546543733364636666860100317571474387545530534245615811928562621554851283266537518329251212867663338317164664708242720670874668924377723356918712752017824780125573876819181039660591889496894254032162488005213498384348461877703978781307519746322408460488697848452591513376739398761086009506170515555523414614581701411920458683453055366938111755109170992256673369919917242350201685611892374245963724452104697533787187128979179813853463481341747111939713326504731097464862092872818395058464318717890032166870697431134696920143546247675466103404428622275919071158283415903153130291163244999425331487041257272215174022829243076470399299821148749522364018176983050078898445624847819721426696625954783828678294840713372413509621289031331559573988869482543119077473559706440635978042762198702356060041821569332385823670115739909501061056548655289575954188283319788852289184659969981357904577804854154437233415694454631162704143373394287483752503155411290762286174510220466078128266606289529001758341447458678475213209169197684944101467602542906081921279937100206831501211465609128917892374983430725046110858197417766626006327855401714304313325783394137840045167133017791614189977742745726736725124351246791553906531786869373504266042072866329250888307817131166389261819150591987796014005879930250967156887871169014299696884123846321752190215867138293303702554757390542617320951483300375485556634956170848184894398415872349800113572692447638466332935398415953231144580669257805210759516516985267764303687973872127245960246076747740094715615926281725053680649043132469267705383452551153221854500640096532752415652823779920315757463286912570555835715671380515168863264651045228225527546551075517872766710161071515759221337724158135111169314097824399986664805824730277022283290459897766553586640879550738922893668864011504270303016880983552212921627127369530494792249596361911423540832649755361114860699838774969168572614800405395617754641891138294442518818600726693766762888581123018259360604326110542204608015080999277490185410134864256673709375233151561690200279070304118952575723924494820359486050971961513560611621323217836775962217744661245446873146676930818806304299239387291214950675079379849118608955505815374540251364487998254820555507234089246893817701823648270262073464471565653958649408771812036260969196490087177313428654835373626838969041897940118698261530935894839937465592874629730366193626619086755893729295525000689935191507359190320632566489187616259234294784756490905527359194843250446932230244713126005847129695390856296933919291212743140357436915307426082466439914475397935595293841224296307445527207519297161044811949818536593514174941437737377815179458347649714958154134871399419037985376338450093025227621035685105859212291873934070475086464497186049986582616823729405142766293727035013439313119729669690264008367402972878915942790244121888822161149583570718009617351338266186048569304475924108835026053399290597055321471445691152864021492417314811162577852165377571878138379774598194834904825267980389620610521850925411581941082416070089080787882767615538694530112852175262576882282925433813321438732283665120019520022490779718352836316686015809153469153653681866961415148833673318855027189966761464918683264987214844640211225933963849210231708838903936218760785891323846127333095940653551888686145028938462495254806535904056516586064755168241203947028551364087346776125925817814915903536873401193472001349677214103121499568104302947023551938812725678604896774398630211059809861695039454710656503216063161058394798983141111068166458391437420597492701894179719392697295768826680930191056403955711319169696287871066400056697824778056587960391686986864977766686643953767197895523449802747481259957517535312796516344432796144190022294193453133698670567854145217845363186574296470462246239263086378428849819000842027455695257969527992056119009418065489598478739814917478543484667535782377618689510794321943077207287759530416117818713186360863395287084782979014647126690755934502584354591108448735019211979731145859635540306976435168647447211042316825396284053037227149178501269525127333601731683726366977927970788081952033218891064517449401203164778682553781393715511566565498619925365140713777407990547294222487692007730110799562968416105566796642548734074898085927059778398621285856950378664430532893790475636261023877556441694814920925519105940025092450792314022555376071432722791742742490613974931746947667229659608959125973162135877472998365300382352248896999924384947638838918489485144652415051503664794426285621820992721327660189907593369248297722642784709785464261374107577464666808725190632892432213785400058696406575581196628882371617740999471898545614719636479338636953564774466714415169098139377778206192352083371944517024735991148707143132279249702090920231533416278441954799236127100947602094841795738408833376576519901923860898730039164027611145789388947322043761177551095799563095675887924622819787104037836536588905442383365364667806046103145164245058314975665087325912989748958039100508701834199275586705737668144270868645615815904696902079106422519709663344819891012019959161440315992362239999870410295060801007049174728965781153108128314480864773738754515184737769363887095868796999454987630374172068824443493058543782517594649992984866838903395067596026899888462295091044837637912551887799538804099805029052964632860906678443543879657955597192827470478607293172069574196080592033226676675998346019723398108363139479651551576690870772685527266186243613659222697842923201765069033491426292670053420443576247360604725893749572378393568187463762183337597846378851562038269355477421617221844974901021896877901199775699949240219016054776659349599438453812489092402156148157451022144562698172848890879198842333646888315547149749381006706312505074523854158984901890196896872784412322524193479999196496314908738919085952380446428617768719986812501859398735481061666291517554352652452354786254890101605610822601864530808786687173165229392477251710489799931188033980479153889000614846240056098897606654873442684245899036835858109258525730181060170944865190918308677047910689674836275055751930613472532059668874558238956093610621024793968686634952451441562142210542337832055388463931343317981310509572297001186452331392638783636120241965831546760445450574998080514626310783724595687270190675418192141785600471252015817032599687000009182715484899346130206913829469177969288449169959365660105677923099168523899006647532607271790441380442473890443239229246530964011723033633109436621523115409167853186234531939711583820560302947962808936209188974316135939793913104724298287649833530688516991747221530240664185858964041542958924289138794072243016022604992385157792158767900856974174858089902881114776386906682989081716970423146455690114884606594249852208490000781412120599124565136890844986652039230393021059047758856341915788704819362999820998762582626492855139196720827857551307507791242244515657692885326928365003878369565892351095686985339471744814362332415096769394534112295881852034715740717263880741864054370239041391315652693523169643220653479735394435028425369645135124704529474925484444671615295469040562683192350411964044975732443104307638350177488724634101190192536386898180550616516371479272797118635859479939991105618261477985432313459798697350583693747622163188074086874594594207970462440088034689550730959984464551218089700037494692957567128700553759831636978985947895340221893522527260687238139753918890288575618051071404587857996718095851705879123215919283111879353910944304209535181974175847998024971588816662122793984895138330710985395994556531158998179467694182812924674525675840621555957516512471623028599796953422309657784215886260547218293620583448817660845040584177758925917050690879020520737570334821323171684312532893806123561660878437468052887309842768486565978507246943422405261690919159492971885092587987177495732428001930666793157516855146932990060480591939416674692192368377083182706411836319756532833344870898877067060800609375338883683278429541176844891453030335896709789252664227896759770012042120897430527305739699173070266583067245868789041588064711855790645045080928194803427817901014316608687097546785557284208935186898954559800595422147581465834695248673136407186287988752131527999404783743583478119348706620830006304064728380792977423809166641479046701466052530965622723522601642750631474886888511518783934617013947962361769704950800274769766315657000628577608277236012022745488777338599081569874027997629952666313941529995785072137184327399426964022679504129466119536315997951830468609651932593802134486530123863387482118241659050039730515346919502000053764567764145609288683392445239206915842617960839768190166679551272562953086071114713741820019938931114909323970991795119357918883660504721367282547475437165422266725350256410818032352049797550498614239506629030220153584862337648187655294407602586166286811072599417245233000758380513834774821004798824912506894232677847457732085277770377071992759535086840839521768732274670403056869294900239510034006809135696818673111687996407949934594994608836212748577565195326562517151363826024890693212314058519417485166465687667533234350771992799372784996542507578353330000486381419757190223954335306173214058621071400142412892552665034460545513823594328919157046569379102195297241890842991393554951421115659230022731498547317187211389078345190248967944666172439635775697880419719369589004801008623361233644559819928503857884712039265513152597486955931398787117042165921830340080077992675952529435047868851310894333706823265159845160541577751577576194429688353444161610841237107842559829204675631891792930928043007532849175725664550310525244794192403582391744182165928737042735389617860589097579928156098737269699770366653154871631752733757752170554411877361997065003391237431558094711770519329095080065509538385906662420880028544414087154635791513798333691635194920207420504461388944566329997391525682902929126101893264727101957951643455211485037371091259496416922788185436705268445450306333946203076645005087245751962318560509799002362972868991620535252518079033049128853371605330463171354367693514335749922582276880230832289959177416273798363022691260598710345454194608943241022733760002390892440673886602871018164976274269814348691990442114947363120659074709670757941718184358844352514158176514206019090660550427825825934690483233527618013654050292151456678964282666923019759233612637167600157354608352435262073600893445979661103103802973433838845222584961750121645865640010304021472087260717050593754933903135938109671639081754751349328693201438011130568706878993523061114635719103152800894290805796428795915747982652542102234517612071681677925727031540988664438969771564680005821071087705152810594636206295423836249184376431826992018085898805857775945415914181805610997921008173069093781987566057937559670767984043951254030880811218565408630261288568746627195394201426686392274318308685645368222697931186029918441509168318771238818575067027106309146314306763571697394306798495500723726670366186181978019235950087247810760834775824972973663416669060417163082211002627717183669522664141926399700766127911752100837520482822809319420843283236066991597974043852503592604292693345881863321523161111153365971143622317786511191207131688062373369181457584419920275335062161954163454276416445506009443313981948341102673921144743476333179972292528561404772951956034512016959740020900683558508830317649802350930989951372385990878481369725653852355124824176506940553907643196913020924443815455274215807225082303762201700243284059887774672902812450664991255242820084156993496013745236064399651576534606406086008818628429240130372029294073082953911974115279994601689803750609113530439741668760635717555919415585679558195750942911987432791257720944905637399316328393042436730846385286349195506476405964211124016328881665811456741856112820866300379256894160082747722448144824800469756445622034961373037579192050212012199192494250122016622363434712417679035647161396244612285416808948954778632303648574668629171304205692863643139636678251741096402021164214768229751218088842744641358141103478721565147382564667818966335981436949134169755522777336252657392834335293419632592257440446937967718877647014817979505405083887892778736039271062663222549838999526384227635373393748129561941602300190685072169655206929390074002719649108535630404550769363801031700197682202763293404127660781670664820496734794631161048110473015148760229352269390227761252979818864042050693547272241646409141196262009126945024172326589533511395730569278395463078736317298278920693983331160288630372305456681113591503955878442389955396721455339353622787342916495030280530052364050589646660512417994708998792319236807253473288774163005544334366752634485832194318402056989689039891215597663529982266658690113764561539144186746223997142738902225673638812100541279576140996008794088379373335520324433821326247507869270308730232533859779783561130261712124138887541834304232550304454676410489917789620189211401492677193443108085308625831206872839922468719556056859781796421166981965082580871341713270239250146039204336593196113703627235464264551696235804294891379214885342706658969199681440285483570275291508998728672254078838718155650620015628206770927322271375268669436132368946343627110183464547534929198172197258846274050512598568910570080227318893976875165561004428714548085214590444459977571989630497198936916101420492478237562441538769059680413353946833075286679171762748036918612888639074253343824059512608562966611917083697008023886709179523868028009444340567992350632118267217912762185592386097027375082438592327025314213981340118516369147875201735042237634595255757640563878606357668391333046456456178848578316374435364591278723800915748134915793030515612204550275770059184990889816694781871500282870868244064454752015713600751596941824440090505421041365062392695414229252405485151659486263827598245864385595529965857102041331599075139398890454665565686899398040723740040751343910892338123811074175039692720881267771178202668727417025478028319768626803793672059210822178803033396173278941618689185076545742327134384248014964212682166696030212688480742147909305639596140127116341248586412104717368920491409845389354591990356717353975366290246046848127159604813679568562200230974633409849539575187063214684367652901689048176011856576637236884156887322196755641930057354463750454015784998117088256307383348309054538087418518417480852682130162427148968010734798722774186478801948392142026231218094268443594893979460060959045541054495328079387559546719723544624181845878455901376797553961483249217837892107852206263864666605412963108503711150046681529466266338164551558157278639571559084019843715586737894865167295973140074101222619667419258861168920485089707249706799371026872420381859228939201929047624859737755870000631444932595304174123607549516008530368932119778623245460796896118882026347999712337098747129072495512252858108744540432083746414272422922988470704061837717526968269995912757225039251247515211015000295049478698686658912248052578201624126836692405740073069538243552130980563864705737978379859085496160408766819828479826690361065675581202710677267377172871002968647077617783034447506927647249505882099012406007492586300960048754818277385003809270855653520381449622863894232720910144005458018023070633923806492271414848881729781270673263200081198266687691093761457909257593716466790870043242882618862509987285786196557423977178046895100816249374407704680888951076236958240892795248703972718979838194938686561827609518209278364922416070057114070595849206078102774201421204761400741243922675819025373449802690476613183650828015020576887997922626667201818887700165244795899379201976208601516154984001918169788037758175846056579646016926707629246181409581541801709066756670663558222032887788261357773775552521190853317061925068092065824255629678595126055739672605243784712544314456767319442970545470059065733037142473344023997293689969316368960420489888302136696461909837114657108910183044083085355876573769899171175669706753646494538427337644450730780137086776611602830498364501828976177291563680299189544335039319240087790379639393326740372438877146071548100890408906788439473000065606557786184989446029047329770982147833426989427768332032438617354369358407011139447546972273342278057515524681589874199449592816978221420221199055922283545485408834904179059680462397072379854403121500101156558740761939411250059211660891757336207932057080786937587362166366659977161942483113556965921390350438924055606720319457776312908705999904898383947651368382616819918530863719766211279453419539116657429291808360240763666579390998663605100090312217992123871996766871327048146039750829727423292011759378236454133856292148179530957091404186832264046666302810947472824750404105933426045019151724382069373699653774911929705888706965889656881948137802071837102470896456217143912511212178456801128034851699156418556204927858378764991326227134842537357450419772899322199682698795243648779029929640808119876956521609216923501944360568752974005335649475872022669761345111123835052013748350124263625300948663328890793082668662525661750545983496734184889884555327218164485318674297637543505736688451543961659117650582889371417994275400629786884275819190659560768316939768410506543440921297585148285625722233686533300764723600350167354250825528380657573108072453867781133545980199824342312932024540020772132051538439261840067661767561750093114663852341135056263216668023971236940656955792552161687411645985583522384864208246486941044778755530927325904482842038192372219128985551455897916571967882529147825097136094640439484002653752112762232058885413988821626510763764426973718697022178324933695181191499639010767478152147914655917315297506542708943977262408470307405005139789150931535468879525207691728953211361646926957498294790029513018390387076829394565740746900636184242815432748226248474910557726333245036876441094444527446272578997579403868385335404022312859545410757720939850845666403379844959329920671659243304707555710798147308590335654279225588791987214955073987032098169564271402226276169641292508944529029068189656743344561717997989528830121499567180004063912059722823671571785543913261493781824652986187587894620609357246432562138484379353781272570519702879779927522334001835861078809587771020725666704333305328806598358157055592337932210559201846065534464407512911162014744418642306566125140765734184713293588140638528764494245108911453839004258099809099457128495543282389156462474155408285409830541319730767847483216755083440896198493284260067315787456139148514813296897699964973327339954853820264279611482993876368818700789274081068956927204180761802366737399091787919370859849760365891666262729084364351761296641435001959542508488455101042639746259618950200777276727030530149617178754308870014643501817403675396809250471219853443028373119768774705058586789266772069502485478413408508647256543002950867770188018068657991522107913076549375315693043673967002429655264312500379513799491372346604580851686434717855500429572742357406447065088375763419825871215320233510461312418168717191710093342129746026253251974284427614725068594181469500903287911305066189812585220074373908230354217439933605786747705907179226222647806345777427724025594315239981927424689437006967979987868741057664685142291158688808929584199188604723877965513675652899090595107472381866509052698122796603028225309157615785489690748776215614551182667303628751309695681262910298125699378010134404232553612772991105045697238770761553277514682549197001664909406848815465986929494953598618744804335139719769000904013058951734386490683225601817465911838255393127252473221443627902069195062002891038426673602473589646347616178209945535115854995091681299972118928375041599020874834598253807944967179544487195441920237486232669407915576554797096981743641689266557689318072733337548361587517442187077214991977395343981185015688656715084696282624261870674161132558884952807863729439605590159263442955867612940860064170713279782270471514650408649159170424129301576590352292798574669141055338775036853333085800722390570479118840182250792389669693413316509370423700338493798418977646039718778339137251705480420611460137288786250484151091672746781242352263431216320152549705780523746706266481677442489751302584327384734243361946092181948563876399692914035990226636479467694843316868729929257285614854258831809593810939520504732147622343920319120912994780948377158144986936150401426124216004112313353851391302982535114508361162870161244732632694922550946572661804699483351101353085204953240995002457221587216646587568665832961076317525363506500466313306577203475371032383265722040603959104732077770614994402841016888400339796494567893696092471520323593458297589770127565511641693841024468972465241070791659285651169547292536839414724173912601348535502633863937806530652520121106975283547188573891700506413923051883396139725059653589687752753244616770436071187624633570434126032161018670831810113676600472952173595524408998763585005367752069411772020413896668261130406724411561543412334603409124073581702155038284523649609527388608237861706491684416275491690406914130545850829608970033718721738954223680679235817917696911323612012352403336747133597808631509877200732564464760431405627413513331746576617838808012764049072117928758625156047636460319062402758432015419849861113819271716045616247700142219035733734124324097116936051349563798458278620675358049061086393721424652902274460080993137673316245358443763500732681029561668769046158346822970144659855871119888733178173135189657147823951951372772972336666564055901629520977230290592620581557819004389214317560623918869384128176411509967154790269555022280513299560952448679941995451391563519297716966037519267230940355415189235769321878826134469408161642321638352306064477509477169610414509802649222266630306348852646586644780670847262295675333015724305868327197164849134523049960191635371162241847138663917971779714638697674013907186349489609240448217918467081790644348334078377806965156064618854495279461837368826890108791824151449323637129662091680507623693269454419110422096358950308566287602595792624393480640276736543903312152954335822689039292261372574791891258219624998319919862388019574975998895013316621407944781630196844323937118986087219194195155596103163695587931251054008364468460010152090308262980474732163529773961130678961229166342508166745176985087870038414177256656303707210079031236396239549785570505599557943592497512120115883034164517210209144457619782628253588769361641348626921520420442804716978542139830804592650682868365681217194241834025415224392842542019650665718538544624078431125254875979742221836530806179426143190454324115233984516446750167352291774801888451123142784458647050396240576715183018900334695365369115417720015809335009547448063135912689365656815921516068134062191164111981486897835679719799986169311263221318281956212237675358109187485237032392220547343192644053134397569227710357005241563459263652730726060724395193635163361946013633118637199590079152386812998899047902511488961719054973856777978792228320698022678432486136142109431145136579392669452481423018038066774695882579324549467246178095902584839553302403394245527368985122284015276681414498049078017201252025892920009502911504137355527358544995323631672329971038442031662081001391900763161545003639727533082336730030877582278639688070465357012802427417331289518887559188421573828576527765644732704205308889328895384781959712893775992598907618867634553948214521750625815325530766026139184140874676448422509410294735166065614738416356797726009720560619720049333547220238401916655199389699322932430294917660907638376403649962101224131291631017934622545711235313970837376095171980692096327998497133517288368527943251646860966360793207550715457109292263711393407431307260104700676029292536696077023795385753303046543752727119082389174321211131334635579677044892622576947291205434319033485193444788834498250237948533425951871469558441901752924603857292372975138737880687976722569833995716117770795490673765680630383255344024851111975235157692099582817156245272430442056247853956068798279511660915392009154928323283286261084805236326915887143037396969587437098214666200077015118179405959630031095469221867062220693123886277238723001851594485110978063435114951371124944997074065206846100538790593744723425549112048797427125205961283539517398863602629776062041205154717595196788527653751373336197316879709064629413373073630213528902495355523525173304102916182515865448059065990274116438317461741432400084296482886787619178925023482658988659785445168589558138280323905574717826869367994693512306292996623555575373177783315132737600963422182334356593765427993752358976898751378026357632128317758420839188912002892467359881636709559231716567664888392944581901828795984851257430006006413285202029674455040274709005521938855749225831611214051551496532683969736375418009542189612375409175383670696844149669436657486079898495783093003563036978069620988686094412939603300782703355288346226417516288413074166678025860216485643507928961155511746437426940950625028718972381955863306464947285880744114783638733424540651340605133399810405478040205856070556616089330152923610739716918559503514823775428044653333157736516109318214593511130167687253093866984922368543278441525541358550859640098227528389252586174385222764470057081155756842853030811838086089376136928168256410471554081343651206270428658732255120521728007545804818401925067282103772190540586977141450331055806772802986014182055583263769511435532395612096258165684088846479801381097653334736518642858396542854378403371695466757910016954308525841686238221137017169080718528550868070424490179646190616641508765812732985464951204743741590347381993279831888310939735971572683352358394323274207797024520612606317806377937494964684546483339592228566082079613537042138840599972029448003299449089326016641380480632120456370873406514163695108385246415732436757075259396672226103831500485975540260018853258502676038944674552462962846231853843704265273596625349740137928045650171578933097893025578770641667890491789985337479740835863677035448427059193232622965052694408413110071003144376954833435747762880988775501222878284811358603173466625282799043138441939852137355237608561998234215956343871288612326527558937122445330799333998810720127318253897065563391845495464516756992868119136234962893152701051740866993637143437391893639251953063610487956604903260392816288579439874040549421801060437798791434805031653777292290189101085052151035415352579574014239796568414621171127602764764554381051152130244040422063321103744435365538545916255821493080168370318036557050844364630891744002871533458181117984806366486701635603010029770612151632945234473979952114067026746913021046534298423138287335448186371452875758054079276549602928658160211693173637438047260590176596604865069691057268647381595056795322986471582130965790605220324278599756989304063692660242387344511083729609801280166928458106874780702552671327845907890999892626800383485757300682465192273868537221969504471571734126640617136100638528171061548261215926327882962937211017553364602795718110590708569362591871762522084624409833781921706780650480384382426730038386769935365627824659679661000806241127871241874232861830599111862021149851054117159243887870632960803894732581287278741658546107310194041138066253107338998850038784070882173052394410235738004377931882122361581493497528544274038412054076537246114170914039715395804757548248664105302866892355823613709412860718079524542782524942209129639977047714192573236722630518800240723715369568138610438744614379396462559031891461563995313405208254496631220291425200436242404111774088589059682938666324391150578677682432423117455740222324170926339225223242417358069116579664163879747872795295139606987499425012986262666225948063588724868180382199843930232178783226873508155230880405797215613805665309434469880102058797340004407215033387734826711484234771387892984432657909901222008906395376479190126900280097255580547304624540952112537931535077696974953441802493144421747347849611670043052689376870433267150992443222689005772917650264134466919802988225325696600807162267683308579589956411834778959948662856434254597570734485209704985576286113481795028336516011787787017278229188847053085215265967013203845480837655420628437613239302512734308345118760355165462912007966448954065392234959520111393232169110864289294477452274847573063388035066732467124374350771659310632872373393614088044682840723149555699176562554407349183476763313131530681019066293946845538502346592895469250967600511089895469896406959238066250703824927322380897359560462735021637709419884657929458139935816459667802575796392271456596514045742637639334503710774333090356847227096136913443545041739464696862825911502249474312993698833112543557408399276770623425613053776586952621523373267250585131835351955271677454766364336854663919833469596584732195155407426288238784312679222843334859015085697689125301388146428577225497536399596811460209118112865499477364605723498511307614211859834585894540586910220186659348993687911478608896404182265309812865594494302857616558752369288217277889032724103572695274519325900951031262329121790661834133651819363334413763490253394582588806581928810206946567510042003308520046215917763357078783375998508216332770153951927251351096037287301030117867208523060349005289241695364555615778830865775799002063221482421589773555939544247560797081787812803166898271448873096476164536472324991140961518184648710397778781264681902030189781611157120078858124180152641585169172186024234082358035478471888135302892927561703745514200433138690046718754145712310476873777169780665508784014489003703547786212495301331942525671928058902327007899559136016620801941596442644879471021307411986447211464739717530348969050313482917944873578361465543489811017363713262059900807459853455770676899181238368882489820439056526362700329124512910499505524948554764181969540846573616421170947559597023351681554422384290615473256584431092042422941450129718602112526923691522724798676454518414156553977731710389867928008294231865557110764414062092101302036470923525843339770489291947989774102598709092675373075879292555934100567076107030060028441310711773766906282641370168770318482088333310828568443741531388201782848464389617129394402483061713453228684963057055118201979499416495651665179785043423700256984036160930755789985951607368839743135547627641432273942340631486130364641280860345002516525845736610824482321309714472599229480701247628164378630456874526597318788051488914608545370759189484037129484367875428302464999751329699285140764685889302639473359159950533986462637961320092028921224028686305760068415271593704332608490285074057607026454682764803423092046429389005862736079704392056530353547527669218487820924176719295347241571074331659787246172173929049953697674424734652036972572672730059987150239056564739042130609797913062936821298224348115587581475396233458821540317856989026060648902043035290176554899090898089473553472955976287645415791691340253028269274975861259784769219128665415749081028919830876356124901830238145151863005784796327647963495015639361533159434872496031835868819217105465138033294277900019450027955456488769219158484447043939928908267736783061031935210716627846848670778442129103450675056304268373761259286284165886557451615562886251963350695922321617558901593988961912930049545990116077444045458421143348701788565344086167352600011430574281439172672913573878635305194569276263260902143129699024089704781921560883654764079730131663514221095911121156714490549215025924967605944934735828556102894954314936043297835095746293960618422998232831651414964393799690843341455374513992106768449831695198298441579033146551662142295519194549473880029707614760297391667432470789011167516605904349754344219895175601879911046654727955639355755298390602132435964387859871576414712266043030473184549477222835874188113145265040445832899712224715156174970594618566050873594237703727734804011289115965585212857210808235861026648258528070664147153070855930797773036500298222054560083278507902288106658967602675089126123829512380092778859635710089750716000290058832152573600288218016391457375438695785964884923755338120439793900870004309630898646539765080439349141242237136157372001693916000823190663391423359591012750194657719758703381901320487591612185796865356415529389633275439282993085598075088295553519144037278619133990588255116878293711049541408290478503764983730321305599250328626642766154530102051412681031180248754406492733097635439341186774361261046891870998947272972901343243568436818015255624738127265583653446561430512005896812197392523179772503111091496031184035980531864441809357538475462460585414078151161171031914144012749401783891313163715182880968187632666631236313624605410486787820564083244871172810197223393351668320212578378331850373841087099179068914442433696150896663238932410051830076264075888617622892381941057232034035426138822554954069537667396017125972500517198071345357941845971611159608713342161209740062596509135720296790000882962693802601951620374501769048500852733406502788191387360928321001544779095856084359102747631871196076174583819061594135562873671920499082674613738233176749552138652310927133487969916203000456765220268429043914323631948967275882475231818600377158588457195965755462779760233461018240874366012679830903837681429572713845769920541663170778263756149544692846651253982240138954548218699330449668292880446398934879969739410720135146201767619657106376582357516994941816324884123398346075972334721859746043331226019593604178763498459441618133295362102220552240801942077060904197669775495692221263891056667619897006752389116572865980978115748104385956530945867868452483184861115035426545765333025852342743922789422574708511145820368061896018976734806204420728007292856408128861617097237832236379584263028440075125308890836024899004876695131208445557560520575630003584587834439127148070777738597103403683617471937583158545355204268542244036159188397440038818715992605259723467185970317435607192198892431124471161384154961327515123219680419887337955226627303307425380607588095054976310977684250868915096576021152415727306069394908920685250860572605019235137673747192555063042741483006197233312482669284904100211503615481326225045252218280514992625461839953967630049210379873002875785246284506153287509783881793626957693571365809608899485456207831858717533100244358439746383645683669526420015321182717156973238220126644278160392611892815094222449352010288129311307263945808316595887616050127998959452713668753109456781093186004597299315934944874392550563830674811712831699064813159464866777461465900365991521178708845079320103965235550159343158815308840565748138764764784233405074476779344540572804243986314682088843316945075302876637914716718801531747517766010721222894134629498423203277815023643538920467711983670279380532909155083575139184655113837950039710559609714931238865728849165407438906834470051296775827910838784005875135951430972383905638104613421286336207896152526043191349762479572009317071233228580836808782954304918382555415660076255668335952056123204611350076527361896887657911743446602950532223674776878277190559248571653194710994466468597461090948408448538135811312833037790441533828258277108947286019004388757942312577431045204323515932767103063802397234832113666397376866800177249840754231361244453319436985819520910589801649165062789436753418721965825453960032721052481190057111508451178480189481056922162622262095014305200991951087630690072647914174061744239993269810216652998357400528372712850392370114530353805885912960509204409349552153383979923032530904913383654294138319709179501843976333799256646335987399000378166138672146399700735512209123239270879553799726397838868417356272265135553496369421250750442395651384228374894962433311755063087407558863266272830292203471062382596438535892032801008796143235115418770230740831517804848465925591517969248772607362599202090165731708866585060149371888049868504137899454036271493937373843382823390322598654033750002443675470386441522922756429161576776175087510359637208455416777222473494787845964503901886105134832025182643583831444725119784196264433390974120625959901224607320653523963328612430271411734883135897120036697326800566688922044824644344058152410445342807728047912598858383889851966119022958704194240539901080032890019163024647873241639277100173050927657545489277728247178003415843721366265194557140760733654210034213673720472356450199663606777039184085371605233306067885408960833715272855694090406790088028481033969655650375756369657599868119184346717670372107188316536043189556927154217650185062378539861224590047805238127789740880200154416173275561021601623142010683587350625259804698219503476483640709123604116419683371853514060316308928370510653358561323192200502852260834415248187736186869339986335984116672327080269519200342686033783950232332582010948513613828842961632107576552859746951011771398636107878101669285957876390733034217319370377169064306583260344481292743169841012461086322557824967499979439307642222655243880988646421555781691321007823890643747440626818621255675228383756229211906918609589050685383412255787743699256104840744028663213421421540595414425940338767662291996848450224749146672985046711627613199963013854253474220759247989242164154785082099387696557837029904502011588256368719827146244680895329959749080139227301350795864969199362256676150127944680899839498013844747435038005651042485823557273881016655379182359122207617005194701920571186924046907539762165130076407918743363646502892993322045638654417312569250961795262814714761361930427427537158448813510573544389687028001087062115406783114258690404198348693280730766473830919102376026044011763004073470789761576358362101520831122979553675088211034630213177139814724314638134552401534984134723760655569517847281912702764226175449529260112313937395688493895627912186437057540536279294783385162038084219672872057701997678102831940149858689957227251649646695322190639153509000178717481148041154403689602372757889931310461722544790428086464009522277638021183807208935329531936803375748157645967069263113385032137918901054983556172413226271658298389863330281195228702276789535580372871385937724504816225172860787207089738713074209040908354143194875950342461621995595698328905348278289310548563448356086317490915202210508580635855532533894292655043336617414818879181389451322566615227243083668901274955408254910220863482585066658691061421889764245619443004864478329979871861832737606544311389561724449011790179821408667407174118091009974958965809638177899176694037728906725841947312493981804764861307747092850506052814322499081557088675574902787633613091714817804097815546547101081530881784308453404887308150203771237787427099003821249604680959666107341049756533503143775252847889084113552102534272437004242481824825407106538211524227242466925442855886893457317789758677366749548141414657419711819694716306747349160978835084359836427933502362749379444370494607859151748880773937662275688036510352866011173844449026953828766357278920519186861170242409746801765575543273017564059990783058078570432810361756534532380104730918228537098732305444839994187667763717812657100154312068432366893201774009716102647392832331288249021303502086755584393103856841634388966693128204767981509961605790049001913304788580217034869886473403849286058952418054999495512649704570890712806103571781121969701057322195431285360955674290420203109780856374157718535048442916401923937853331407324874330793423714189860295856938060404127271928713659882153379489484623883961405994065467516802555726706617131004842370767055201831034914667227984140792753286377736576686680663634288281417127306143523240201285799373751668099465509683277193701649552021891658898723525276247208836772351106484858106983353370214236390180786396205937801104024655503108553913420332766628072177154722792513795886483838434064932407750167387453514019511966290894750228298037246006133501402620922396372834925679208685082145794408873272145316926414901892337573578843597008941251104454256914794947163846499782510890805383235341736084620352193101813568387673532340673638183926179770566183755352260386735538467539719789044684867629513164483080716983034957587473257982745127673316239646016151123379015372439940985184971930297951152577593911081000559492632213559503382679265662682061954179524837862332633476270177689023658052844603123697613008509462659346141494346422744138240215211045493758593599743711758496968123978078061239231019978652234550425733635278546333557028466969906408282830724881711322426943292959417181710241057931448069834589419992357105113411429726420286977509833965558552282580589818173628000815967841122095321009935059378399778001085374887095114560587369114537546491849640137495754260138523145575461863951033870299408859306085961418628700619996496825202677849615638746773249694183423277009304446432025073928003883274368960691045439165020983817124354050002857531410425063420653045980027657343520762511037188770060141715833566903354408905374281934029254335434734635205352655993180071747508705341960424436756823960542478915332549356114342567911735118344443771763117948040776648124309670835782285687381069590769344836877512615617264117917572916726793279516146986738044349358448535113750387146340255487422118582641010635011176613426724542172065780567758939625031953324653935495275857101333552356178311299399912320477497317878982972267713141999183424921738894079394767484250308604675362237858656206714646818147582685058667563558211193579326449283594080515198042291565912104342184236114599542173476183164779288213266839264453370643144921661631231336312291087381553586442732072974830545834822610509648787546943227116969158494271390276614319017231180443669686157318172545548837076833354237572946998990799881001196768637265287753945418283624998311727274525656127867441601572977134066435461435400517298844531565711672145402669883485339587285832046049199115054863182478159158746758816564654980574331434220615067301002129854698695656618815501259280546880410882952518559288453615402966404829941603095778714318937939356449044770194270543043671944469257438936688609146241641097469526469741645785699079052682994039289226670959430793102706307392342426500564089825911493164653239459329090389660352942738876696368055196489628174608111075922487054389121442467581305689242197791214425005240071106785739972366487276503277407712581172158119505762713847467029680480797300751280094459406414379766701737013954220225554626424166911171200622826399733520607697130986743689544715836648778788547475920115549163566084560528775234237136274125264308937100963647734723477824119857226626528373871576786758833624798757024462137640605075603514723337830591679115974080048469270757277626715318186160061031273222445158877272246653901540677857129318309008948095931154478061706938072570721036582388372712167431475026036667975099825890926763561839449735451933499714234639288688763007828196384449964342360491178776738734475642431177211852465235179773508478902889079312274337433033315333972335602225231988993227122979809549204130193258814361272312154467743487812869970685738721679912245754470766011642519734981595329019349491663107040952492487871079693615227408097981763347147787068002753934609624504310193446043475449020382680033061100253494608974614308453412338344120710657934566863861986411709823208820838298978686764904453883752573237424510660620227846808554694555441971501935974462296188226928041387999379907527415628473532679717901238856177875565872093867419740065223228392578286612002332152458787109205802932046546973595784385961703811125980620500363986993603376784392782180885454005133805261761920624318460869621044143786530260855659764479589173425450185532526099995643975758663136045574850022720469366309641264229367412071409027786506695392108320607375606338333209223228272309881313411090842521265020088257502717169065245965164354324825587927871667223624322732305674420595448867319031845776608033691687250662583874267058513737446431526660513106494760250921230740677605083190794076615744615180704769521631793066376754150651720548952036397779141732230243247542102486556892150229548913125636940449157142494824192539048139335508316066508052461315150344944496024092077425802544854449777980214206151406924873398095303579573103739355621235770037850278645146088221421021563630349093624895141003022416653108579021047092793463493318098459656923124653077472989043584876098805882104097527146373032706762846409883575234803217669911302774932206665300335122275214989287215582575431420234273824234140820913498445264905802865358325156786579366651275270618920207196937343564684679161045516175681410780093091878154656129679805143172285499520620465480969590366413383410448153880239585916372520673677271097655457785466472526059378040421806628600280289198482184907671894475177523208742156366357160057897279727996638133320095959163274986677357570292542807166159293296050629682983321197302930425702005847882939713579825100848696358715812832420030909875301730037472456920457469801617516839430554716052511639500494441299431537964062875712638832112090950891476211315521157236988960391185877763118103230154135202708498212907598178043740218158181240023991440855707158532343148605034509385703198557392920321009606094248961485918365206208217744923702708760441890521049480149206527574785091387599198606679445281177691194575854077191967268824785178721001999275941640284182307281540307048130385189557064784505305384918926522033143230959422136232106132238274311333465043716638484063506082030138478159652533057113903340757327856600651811017475488412357844749971463190956163310894976772760999769551562046141834136663925249973418885552866174302353500010355992464345133334885310184631496934819051063258283209285376892467672781185694820798955225680501442566694414004457521642544994691331251001707236726534659311212963815073169177423087860584221765847674004403773625414214840262464898833927986181190897307544045778357860241541583090248744461627812730921941721505886851141857797658604878946356302177166712570457515502537224205415374656295481308417481271822542739518634717310541208236135544892019148795877737303661929714808893628198590017962638103807259515084519501208254875891203104350627655964298434849889586585360949469935523048860908136247516602586018863399727448978099802215507806043520287053340329700919212490003759457209220229265984028809429871183887087540448691172078003157576921320635535938122618739387293539231095294076571034272428222876187589002473877830467332355972879963256302206972327660795239235436898323682657235466945703708035962021646705291249839002671165931965494704422259406954774257911629836907717436253681587347757156993597884782959377063256830345882540068421975581642438850685703705628664771160204783320644049861885298496119166198413431527072346382513849907854642054814389957076610241425704978337741735808032938834819498405984180725715679474095494547999042396878117156513712446578228627993501528414045169073978089323999032103946526393605075975660245588970997553712470335414002928324070714032967879220643141648611761148276586884171398022727652339327797349264920469416315915599423798307284030433306480621788066681098672175662430609209906259588566689143006573048727353629928766951519673025449399418013090543338034574847539958924628009373780652787318471477485480483165732336279516305937262738649910214462835446078194753581286292490480872056995574697848163798747037628804726864405482075253900299261133282879253677815394642158594451010638979712047847523625627667300180644666994942807758329629163466374322630188204694951813497624842839986249035989227742243955540506314732102912016140320651530057671971653030924535275692613881434440108615828560226182370514138607961201611870015353232766343349149013645242279485584478046318381455746852126921713887574079368707109319097439696429766666913645930449722423466712024303000753264558097859809697700599409433237962996570209772189353908360949419274889744552113508174163257957038946827645203744029411563714993482562449885101020541143081005400744435055472255368833722753671123068001156959952255370029989445896856149258709958989441145014577357619099766467567325896827640596787153922871418456904733410777220973771672902949377004867496433307278055694335007010575561709144805821313429422916338642953048190450189145714004659019662414633574588475674185913213337089873677772150736634212582291545822392100230359348614634488976943866290459450730042666666564210414590305663038745395419083569450707591470044593681249172227715580916887952331112181327991864034838175812970354008487270617936391999622593251225566588913469474477962590848674598764815918138096831430613435210675255636354951747128475371486431747068010124075112402447028450060139565592978488148146384694040909803256683631828689733698943873058461253344362506291257280655203916802029650687444680198368045984906669148015697766440995339754430156185752849754622725462195420216261907155640023040723141496371487388924325899462686935853595620389121966481894967590099561137053791390753990964985064180117781712061759122754012521352947472111241038817576844067561767165246391908606440326123493043258390141239745986886335448117328016435778396112997306917035687841965399721360897749722383344020654962098742123829568755841106297380002630369482345192037425982152927163267835648061622452581870777852542137102808224301292995945338339539073035079361819914063968514274804661892262171698264874185150347779126485746952619702673892992238409149840832906371488661145882102989976857802074074302501892240897942008569164640995830391412038224555905652854336960838295628358616154072755627121940314518307413263628709664626294484330456299991183640414060007724020795770474951580564029311370354059021980012755697722509402582240286308295762517313495921431039538269397746206144169337660112909770897800771677468070987621152252795843478217050144291110583888023567085774537673952003994937192753420299635970239206850581202369455110052870840121271912264274246889848398491247890454611907601511478889896589655176583319944725748072765914702916652886909522678568026162134688814204239343013333439371239784366860824241604231113427165763663994351819962304396237388330893187203393196883031525693781665655942880202236171824174985809676821689883582293105090547159535178783826977764334089689258344919946286178936000153843453014766822651981328701174588185023704823193074667788742399574219302244741770691334105776026106601997135436263192918171198380088744876193779910864079325848375141342370557720095422234566965807357641793148870169520909551959228641011085455878233211157131689760000222658770535714370547235019758910562539822207593085350246520905025936411902536576311198181073023769272479338390828613788033770091751129108346920368742692305563002189275101393795064859520195979674180975088657009204081211659692755617457692799357215994937888506157041508691694224970676983067351492830576034906999543445865853505388993347103569416739564870279969489194773261352592447220777880264314208003537646432897742934248679486785286813207017727419638068289738594710600098702378392195791431414946086470794099484071243038532066244813204485309300283820877917604415507259185456671628362210097851197530482820194658060053328459798041277213492630521724647876707181982731936334739314404152747178127847752739664219118091004042683559898217039686128682782334908895634680479290734181027500101671657984512566266907082021313891812476377858185914645312557898130718789698747103160536290235176145556979506575300973468859056379585772946092557328347156960319302844738729362630893740293227044718057820495389283346543668253275099790110056176474112431899327593068367730397345718583707818248150008322111840027530587617539758640489645013188554582529466887841884661758315699409941473952857187162128934418503599025815244999271259386918419126247875787642200473374583632976875099706676512856969331158658743510934081968678204047290629608830707695479439219317222284837380198127721710350695961980904869145252558052149885640431066368710917365846404935191945469375967168238013372433307354812871777085801212259417468965804035883309127182812521965303641252552070819052018545325320915468127534289322926388562884372861446809817077917735416164499325575380901494951223805015069141009142448494218237351878770928150784032433611688343678891538145747711928699675328896826219711947348827654640513566781477863686214983550851129036238985932952664439266083011897334030647203142243530122835960386654904110654835253999196635435080663784092382750304264586221890798216412918250376982657287375545951465379151268680960653189344437590914186259477049765710222954145572881398882252643093672124461358241332292574421406225866421448442982122470871719668288609325658187139934797432355407802908098374090121911168844808091289400699394758066250641228352131056790728315623361138828069567684288652474116703476396499818111697442254247307333616839277745244806788859641335574072136556050469234526514283769678393358674723198148604285659282990068803100388899078784841447884744522505119193719189500506175840871351011047437135442795648228644507102972240955370316542574840951342883215591851045729920881377202722042635477932564934591284362227157143982894681140275122186045186774082716941336680815195942061493127621022409443220408819356068876767899382026993193984133981588568370626147319918007084782780370946448713666428919577208439374246818161915566851126916658532608720199944042433882286024966301784360927051975226429369346705913983374993375582957517502132387920251868849268362973878199074746997257864102185213323076301619356561321459545946669000837748898607172467462881365964550648076205982036845983721876334006495450069751787088708187125571524308029710212044552939197513050053932585625620329795384951601557295006195791347270362300401954744802238731937834133526212256831434890333988338527577078570445262397886432237991880774616509943730311533957010039498980135745241512001267171057461502146479959186416271023141205197573744497042647926282720463974445596249483291006776479437109774470369252269983759251154681483403111923020141378867610199083886602056193937229328641826922089232144946188132015779231501754699183796409058453145465823467469917630093794423040241570107176364744269181242071010559451195863733448039825243324647471792972439569780415630599769280691776295408461415134731478277676291456705187177597943848364816292626891665286400470734964568380530708744332164084389758314048710558913481535667085211412155479176236594866803878284058275865388007475870976580912165563940362073026216799837426386579979056960561047637859908871883518299194670321658864779602541312831357188388725126317950561359570308889645373868850777231073114691555520052193528448292455572991249083067566499607623235040211485097542172258367809538749348932939672499977835405569946555419158218951000953114983684419398954929326131789680306533905212291897045958483785195245002626286896475458335867124793769011177130504461989502681582902245926144080467000541597466040362020766750473303602190614766055951037601227765584410060722318987812364176490057076278561462320929979840734801245951785989108351975139493802368599732820319913895003650366156462986381357259992237325685659883486075854912920480602462415739509647124202937667515598999150707911670681190511174621611343170256497566453044358247762386865710225224017593473155280807929115145567784325943528812612813592607496512936811443077337773933002565581383082639509148116842720394088173505414035057770579342947622287638268733347520639900424523351648577032729741461960431307601868366421016972720412155907097501866025732314521468699721683363947462783490312080453661479069664925008254049566112380547037166882707506894354921245990394224230033501909783466089077911534850192845986075140705711530335380749961772198392311369365313471956606162616297074375923214612317027472302992558087002541579795705156463199808193481456381901982725309194597041959808044600946910062158880746303534266462530849595401283308224187624452440238657043400911936500080744841543109820256413577825447196739314259476876341848144351533827133437844895026074244481587194447472451966494742350589775425115406604212660180561274578727779815772095614875928969029264144101950286695919377612942271116679530103528689182396691756574971284526797600745109300050013693052728349265775501786191952287895397448484109820908732972147416777203002690178099603125107838512194701211676999543486935259195937146555148195888566002120151788953067162466578484399431403478732784199083586685757656454021179890184696221782832517193958720946492353643972641089593837544445754905263878797484038811005996299966019079729321254448570636077629437930520324937707406857513952265422557909098080605021288017903179671555533671939854855891122980948481956751211910382121781427265032424140689863605749253220402217229430084554972524191752308493346601825244123210986870810509710493422367847423173782471612118580786827362298734801350211413739890957761553865823504478792746461116521669450920924554778845632914044873922110808181310391326482053319301974645985377664427809528621224383713709630010140847208580748825583452340506587090167106079611585730635663702314675161966687416560574620803401925294322505267933471875012864883437169949711175188971643887682297642549679564451824242811823375179630340163624179433670972679489915282346855606368284624870714621234080004433081159805307615616589644392631477522321648884033219586871583802998649943801390282809716853731510925525890105803216408415098815050966333926297554794567513264152280264777239214836566765457573651603301941410912421158627242957108836408314148361815221275494939923382792761079625113473704160779159879430259337580192674494436806178885276076584672596342791283346510295616009617384441186142666946105127637929544992111526717726478538431874468706619288334993582902413486622180516681750207916857892393749645522543905383871564066664491459110557986752575042273514444095134159850554258798274706490556061173186334739191877536799281592176763102450476935485011668036710599753399577493124001349031118127376875702580387412773344121438135344744635949688197088325963911574025282738749001758343619000174249870309618189899642484446487437131767142686949872101729809746385961004399567915559282305203208016616156557467973208828027775982389562117114732855844425116549215051955187561881974026234533423689607632173161464567397786654625983061233319453299125514671855027180936443458984520675059651115047309453822052745103909075819345896509623033824243916313222583625356124171412998109489787991980898035191402765269843865808680025779540412359709331849559677018213739058151108468833973986867000108620791463042025287035719710495314537115100308437888227689504031772362111188655872181068905652456996559258329616183959391212320060489527060007266595990520602694534519061836362170161424764659678103730283431699774514754862583367488054488264280247871267188826022591885292974000878670081132773013428705322702834181709720291673894655335352560272213058316790514720541011720208817719671433227746088300655461282723208979464236590862659263394140047141570661644525919031114451484136642876332314965103051523267922248666726160309539442274877360221615628093406053305206161897273917589857627466902262338288889939694171114290991701440358458737602726787214349940861358960351881202090379675727625495133713665846530645711816472436340858705602272475272753486011297032362536876599368177436435683165789918930260209572570012116165480679996421969095908181830155708117374039057281594329834131192437967331420278218668952190195496238539946285424308450356722409552581376273699924786999419388798416554287029850214236046437184064276000260715830696797483096918065777549114705185545466774313647006041141427922487708948649328039789064562688262886374059244728499122421354183861014591476920518590588907088411225328264152312789729261758455901018689882805959385659760828670087435437917586153001862866272955387555645368737553155931423588525512464730718893548724189999717122870898080798981511850697720359764073336544932152227373765294282623694918719797795115696629981652454674757467054677047623182658227143767901006693096365755374065331082273360796527211339483091178182456781974416894218372193391250551904838166126002253721164697273652587361733496394819516104387193624801410829806978887612297008721293852950039331986032701482768737269552832346925017024213910313244937105038282120337960589242093448640062760842878767147193468203363352853512203423014108221838592163268232972225584069165521871175156110059007399376236290325498033328521874932333839637501505926782428520439104019474760819251210022175267325389022204090828838564447701860296731026766281775382504289727491418088024887706092372452372798464404465506285916400183796503996514054989677898399800975622795392307433489585494526459150407727386502203742073921465207967480289338716578204923451666098290668049831062711946612613794370195385206223462161289256438470285748295064362739821602819151911278563708277421060629503412368741902815819437730558938758074720491202203256021245852592098498465537230847583702329687429503296050959905058534915418857618392900103381900884572347080069527091989839399867911125252254966967742673728546952134392931007603649003732088362633730565186076288055270380227108147955489236887958001114413627654188358291321755769046702823061862896580902873182706808681949983077024282509132195253819488850600108022841438276687504890849406865539053340295458801972725922242482161739370118024422122284701237974630444223802798949639373393668151774905837303669447480856558743801646648964337142567860027639492650289710067936455855208520087781072145693355807945435788287846735910006716026810468994576851087409288823825779850189778834635304872958828159752454591793734502529573490341209169185844933099473690937126914590726477936972843209420837731763597048838598830706087565728935891639450382630691943226120495094526884198091466931071010982096431960624585578850885915671107362885363805927616722787167582862096369458317698396181970271681517039988106102611668170052102274525696091171238993444792870773267446674288019419706416662024624908633011597478160414204874060762341425648499129366003799568278412378672159236845827556607367139887843410844842328092748760453340325397773600823651524677109135789089218860550345777394838413939102674427838427692613000248948899653303133346265208637377835908807191736667581016424072290884586677542077771306420236678915665463484811305769784712872220962071162917321597693939919241034522370262880933865616245381074194874542891656513835329412183372105096830024913933304152172164435250618371933991291224835162474144183472713723259524290650290783455007773728498777086282199614781638145957798551062083205602955198240709785193910750201785973363273252633563359515894660224452316375110862502659201754843941111945029188245620299286944229069656797308983236347844125336524811141326376071183312103332824041160673730285217265175992000278304982027801287690659970212990513479965741436344142414475460814014936475289171177768677200501710273956596682823495418995260522843395101471405544989286098398235826239738887873205281794516411619243313509355339176147336398899539022741922368677242511016951955305763629208885574897913891680980526817727480532040768863083210913442566995107750231280445642834744522179055355979699084242300313336359003741224445536432533886529625004217785108390721194182646167682080026470144206170955290748392402841054201202906520966863418923971213275284329925294552941139214002567448762591184805760720917032821956488075285752204443841890521293779411107308862086135554645573677307967851675662215901503446586911308143283891429422272682663797251674924449343743670001427540302378067969615656476913687347379224209385985451633859593677549273489293837475641631635464830200216119764654682719542079799334577597816051507583505251188748453834958527454760933567424545191826465878354150336071614048743439196254321516122401478414989711417641706717638559863576527123787987430430019803256029182685266791298839528715768794912364587356432811493979900400262561556480036768298522280859632266369328673889324089582263444430908305353260847674230253259186064194303282505421096990940532024374321100505355230137619739296800291646847836168074151639704342560109599525014779476296761707259228363539251939284745072998226328239785679734296562290307129280042407878597152665034921253732765804968393457453833771461716958591308984071904922782260533934805265678924624252327769811539455182351294865475552883888506292439721420681739355219883418242217823462277235930498014197792624954270227640038265947860455369349139959253580270606992260834704141873758290926580577720577440063723845350114241459293272448900859374327777510574835569925078030611753562434318798260607715858155216177593929342415066415057105761016572770418357876572838925788422615826012312751225470784288488348251955114787604316842738969342536414108496174078221451924547124882982390938719698263658038127040087909756160798442010306481108308565887276369907402957807758722480593232492250623342627306527835852891132354991528529216615505869093273295089183590164454102136959039272461745525977445497402981068815595254524057964414500203460619544353930059028646616639560427751049924814464475744904213212476654662526946729651787018060691192491779827623565754516899160050689687162752688512027905455184165893631325565075601550556410273564730957539902491100560996878000208073204442744212209112618013491348015484425498056743051813843273324225871698372178471006187758720235339185962016314442288900269182528780743275865816403796301797459269146442641665505472077060377472744879029226422999556557822210135440754479305660075220419725499410954095107571007998843066995385149379946514713714174958056133480281824495109085906501774464350905833331734496559542538099490985953076617873660948675023534876636810232647652890584174331681934918045290197782663235994664372951494553460042911129330975488816304110688858094891707741994807641275704136728787631255940138527726495451976263719631106659080119242174928536897644346475678811370180588633087163786906995667109821914999323722615678880178031236923056668233246182193540038607619183445018384638186106361118944657323051020240086548200107111281635377529360165543816899002483078355731103338375120210579938127930765218987387918695353490600970133171493151509646312639378388533440733835816014746480578466579055743893736850603749658977209236988731974516648605761338322115019400437602266574021425041334751123002821233968873572066745650928182008134816155716426541313292635290568150230563618868397623835064542598155342711469226221023305233591498234198014122617153746172982792801012584005992720474377255726442636171508136639701796206964216296588492678360691624738289404447082877692798974721796032459589828861369197972391959406205821696049998427690338411241839343755737173172562196750237360547874055877213768764844688264257554284148435576845150400001060229480933896726658440057853408441959123959653491201574115200368860062179660147214880355010171405246064225686576507357671693639190394260768275465232972212061828403398817633989544082655845314141421804777303307839295878545382645425034963564588688608676578625865582614112349056158414166897062743033729516588583072874735248516060413528894632614650768476608835473813918997723956867094398766888819413407533145621257528159120578074786927667792515716959472139467341094683599985061360310103839967337559883882550952339224746165239232381698248625111769558181107941843796791398307304952731141968787641287435899762618916433385320563161702113406387764609154900503098571658868444368071792788173436275266191921106216086246129692079263701918934274668219550595136055423507124917138106533602338442263358910223099986729105632616978581928299974432065214917926274386603375612100008686639452682287048840233608276816836774889383774789132144697196094279225518219076384258852299235797095182127146331017343377060898444088758948876530031197266509117476265553228219894239418069686460329041275068253718046209543929505969329482143851054872484082676116995337565260879709557462347975128690030630687185948400968003274721610784513584191315171761580415755888551162062336616337930392083539182175599267448613721852852771200929495718207658631634294798667889664944737206661792600922314516338126681149575410755223779906252623865782939253332129775563244730229338074474937245487041250946020091233731711106018593366776661453473782484826840424568307049778606168833437906377344993430202839023358214440768093974673745895011958493574162734673413834305204027095564692368626343257471055207383202536852107419493652645375650960372875921973444651080504301831932001670552155142567046097975240743697011732147307866265863339151208666319798413897481991954076476080646306700026887468950216045453420692709944009036573026202855602797066228032680086614076527744863269445624789109277398061316075514991573317156798908833658332526489300727308515540705337260792100900911913112471542805455762635125854441579349029296648611159838562980639626155514696548234314710819348958024945152373389504693073043389228834727939226774647761881706871616097266998602195985162679656454974303591167695496413318063385370455662594966345006395882916224311200294918855984582626358595672382500529284973610264798696138519258288759441163591972311387651460334466059687823506614092393820901597207271470631939599820117233923220181963835675370175423880023340985409722088100908978247520528998495547032806210582681626634879697241461232953059083892501138359119105186179611841553433902222775610162781804544414602379604307988925152396027566107654607059898921959018195691248849936651794971500757796378540489121984851261518983818226430889210105382807168649130428936442601345865459775514686359736009147194018651307006249010075947809092353201859249867610427020394557281805511162224010201089012301700583628157203347317588110640961836324322886451911287073291919589163163742939783713775389602935265224010328118555828826754230115505302540936837613833153962611700932298742704159783433266826131353745709493611522837371182148069805377886410264884598130351756336039519332807757545774604861079307307754527480048892170426720804809616757594062975664085971927539734108327032232412088667363300632321284709928219880618144564085760182449090778221495916107708620185981221993083748867494373233852440857617969317369031969992868325733063120124461844929729140010170425398085698256320804484136895472416369702263074323851510574924691780464362942949179042370934330920645177055028656780036645035476372035039632550289190676472396127993921320987510291536315163761511677242195094391023026972742112910771305130563982246329819702449160102860223110072887123044249740946409567028959221608242984681027867957991454224909936930362569020809610401177363688523303201281938633066964123376586055005755780523156744960471560648114262186584497765379236968074858436843572359476120255147401123604973091907991802067347700709067139457961894071177128357971001736846383963549641752780179727292880339890920345647141355249108194366856125699788615014345221782181921624095732253104221204227317218604064362347303695600961898050145400879908556470771065571440084105993741521948891224746768978504439393318509274641067039159572444673194483818049110925579156555295236529633126156565097458313572818994536463409922162560643238640032133772661935046459261800904760217873841073161011371519037828991333578880858843476024966114114910395679455344058366797979222082590189860256159048133231546193571237534976356011210282753831546129298249784317843355574582977651326717544499905795214492548917715631085282537436063238129872815522565406325754287796795339354942453418100536745030188144038392885649196360864364641831312488313098227889767597072532060623044153656755321376820752809227132397229583938200132983304499187229004951180010078077466927427754853150297226865379700230285896033429414708245602571221673092315411594053141950523419568227941050547539923281474826982439287788883898923576202287038250657532423929635818572577458359880760594115901378841855505805233071799056484606148367849555263856020126590378227753034918163784510059689933444371965805073695818906415001672049636474624957825564456733759431259096027775868715861909442893494230678142207997434599357264213160962896111305067509518372869788924046820832309715869981676825163519710861818949669924047024073157131876586384554638902070609033461832898954644028321638289716398118480408950973014395575462528298386874846046512411365582274012324799629402678398905349638344486907900971242046962861273312528771612563795365604204354002190956806493232747437809951372923996918177149245054893773169482234499385405787115183663537149411306132312160271185779464767829624501758133366360529613620597621729215729681904959093051559733689121870969940627065894284157528040049200949441644594575728495977957702363954137021689397166813403084345813866380882560148802203721329691388116259706600216162985568643996668419376059290705617919429993159189918643297330342457614558948365667376421980337590041038474851279750193625471112604592230509071180502655056045367732440384118207960057448549831675642089499659053559115565637109071531517578539694408820668117615202980153859929371665375507099715674581881842906916157706639811568029814870880231058127934513671530893175508685183054442073006245725959150576531687920729243435356959450788206505607433905794435425285609240367087319886019858690105193559450827248474798936566157062133013844497406822327300739554485253271921670259652531131288332410251355786563168030998472690398385872328843997872461389077980512599831931244068795742069688778893156534752310046594386068196414091286811533441700066061951857409775455629102916049499431953870056186766787883347469024665854062304365124692398009846950602790190438596204442978833092524661123268188376249769826193048083133317384346362141526476815249426395082936069190175064696239519841292748890077532820670115323605688114526501301089815196943716840754055021223406662357558506408671195514165363063148609798348244118465234134693511446277629505026333889148004496347326318838259476996053990217791496498012992500978612072988497228687350890350690915957509778808177974024059223566141334389262425406085111067166759071827547532169231637300440196275819490269713821405800245421971350081560671662134040567292181582276444468690205324169092336021759708191995631970371402576680422423260204145301466415408087915396668777800375111647361464351414921471106139709755715774437996058354903893126538845490074190996799736601449912166517475149706454072976752374490457865511248439366392315179718634152702168994104499758614375027635480919315940530045916661684741238331660540631705129093309887827120727736672364966027892744760677882591595638232109314392522565963249655527150074244579303513938431446448116049094191581988415006950447559873841155966876958567891401043662656193037461552631867665850075308625242975984830774830794273332431616851239627145791302516926512017951841565559778487239741722011311171721110260174600181388100088691819660720706754054019930933929954268985444299475017511112703054677394564225511862820187690953004058440237726190791941726325185587592610553032876885999412793449693924537632824777502479873526257826777099420115866972806687007250967209311730818854496741557480950767938879510527496968901529023159184256335138272911234486722606295958845986938161697823587965960352845512838264259011208119830771407724973176837989386631013663851050412144818056123771512450056957721783767700899904873217788569439183599846902947317646041224424489139036824556863175691817973937208542488658735667037603607444321297304165849581495996928390845791494481175486258660343123102095936983295857932148977019522927807733749896164911551697796435024878622890163272827157535326620241484685521097834744853672244913437407799178312158273392439954882017717173510234630379800034178426663783589527109880983365671040468247303797208427967435551599936110450557807755021083399706276447070280962450980482760284320805422289706576128355171895327014237657420458416251555000955865633450064523639298715648240916057317157310710720745243423164096426956960974836455845153626554428004039118009045264135244203126088345323689948845457639731026497691732305190914779315698606140012911673603935027149912203902452336070971604661535058213408341225719421625747301892905374647329703489777084039615464426361543921880941603863838464521204981694138624572170836970564776214154695958915082965340565617034952467606854016519602782163105600095128498203392377620561254786415176810270449639795495133387702128618405509245756810909172762308664623613655380746151138394808674890334005414663004678921481067031110201457914419174135535005891716220811501190307026184772809091993103496495889225391516782699827114644555953421982759737138832850876416891480715279650586091578424812521332219096577696742482343363053731110479300052708536623122755717701626472108418204391646727062222908190414876886291894765990165502521523521303634203631163513248088201316149277178622711284008462217774932830438865058175309557764551112627426161613751831204263560622268656538139462866089048459536277207743829359014070073338821028305269140996651720859525198275257497165201780156916946202415052750150865028655088584902140709160159810229128193756088795702685765869323629922768670309065590254143659370344983066328885374800231326994508328780976994649322030697340948144050994831025592823940556393414502290790300111297547623714299073604387010323807130799669685956204844231815617939161876231993015052123704629015231951028904734979914395378852165408744753992020510298538984414769813893780626329524293589289107604359407854246907914260021162185497932508699842525539479972720423746195346181109439869142150178674089444272068732682288869971001455109113845294506557910092198379230549539308210197490955867975325948411689249137567530221119954761814614217659853933473725935413197817047246674354103671908086342693825741565702597238349038323683220205566808538980276555489881304966067971857645308215536702049678155552710972910729922497692005537923919427175345331254482180554960225780471041109051373642214586520672178780667006106381374553927569164493151322679497064545568137163918089708068835576890710063319664122524431674682677234862550112328954527562689005482827393212456253741653046867811462099139038656445731856849862986383030630048665983251611074469187572227666342967205602899183481426901162894692847742061840434793947345138967165443418591458760988071574109213481452271209597903439201924216739658205860855699305637883587235237561245190041788276530604533422446917247580918344087276820792065839120140429206529564232103322890394937102818167312167332145938885435133184393537534313549759944398696860186360739908620279859534834555372246137941136039542531540624901370345612913873398380652491672735920178620838579769154486299833968854793547265139351801835080040901678605758397267777247916849061616894789302006426905831851949697844844198428432611861509705742846912317232633492076133858849873133642394295354845218039780017851179399427579660569620138531850539554284345901467833977944974380471478436219673098491068331935693802241120029627327344728320676570411766930685647243499739395123581882607077400897232823667679112592628314633293091415592276084517461242316207772606203635017022183271054252303121241196075398557539122137736058049539976887162003057998829493613942348941475293293139751420068868537854536522658809397545137933885795478183680926653820740444755766511173495566074182973326326318626613545831277632331267300827727127787769529991677387869941296171206291062572284858455129562424666983296569448173628716440424043915209311741701577332293825597014187791251951952725773152642717600876272971936598147290116639122661991149895022198293486953269397846716012014337628443807779918923423254464989661069790654670110392621437611942784874916162212652147117042922634111561368167219533206403890843864875135674008561644791767934048743257004160569039122495566531133225786869986715202969334468141347806249880397486669035523384445490639694538012568990263922271570071943801920740646898025273840922921663186286502259621541148685994873810351089231573747812395047038458225030001619367898084396911693107724520197869655365799826625314515493472245664196735332179153972678074138969414279758203254562084552470691844528525762815920516961713392044346585647482312697553680534761398132219553770924011220064740645545725414359790096229674157814116710446142065500923209675492494554395709658988069315671907056212718289852428677881311020853436738991404996677954336022696795172635496777976475283829011213425868908108783301914981362922516295825472747392667358596074062478165567124290604078421873080402960675235741045713623586993221578420874756932889032688432713005956057005514152706916575035048648544522101464536816343106093476187127866027884449483895271413568590985461479078400217667767410835021332596867307579003661305600514346878837890220062861113289392840981609338438270551619973353382941776335854567541494361525027685353144083074734702903580186838479241477844173574349433357528146631026407023001907000328314444411004643937538001527323636950540979757581607414416917459358826525588580332329730440793699019151099383857378981061213575933758579714614570439870373638049216711568159751461400448828630134742028492313780212015831321523740715878151949409439616027789399517097088385727587447431194720030714568116533699343928131616719198786299799944077083859867323228529169845524960624390809269031239172468083259017064789898553062791916100763596319443746362801176658254748759024614942922420211943351393316238527866468666803362468019088713730866078509311949819828745934695413188745175584279430433508730559956988623932160871396959997341072921726044606634837706384131041132247861477160883540416662377187383004718035161478739618637837987608479851748283001396050510634174927638319099601154916009307168296259355814534873205057283504234528171064868444485488220642225503902777160254912780567392396674686394272676250007028113615398763265162791138920141928314937248757124102654718377208334087249743588045170963105695030793393618607120536468170572866372439674265093866556926931014279891586773483902606377250995228685464150543374367773368544108866188932124080909029182734685057693023526192974943937013211190525386319090496488230376750817059125395780707522344035277624997035572390379027937904250438710088871237467206524002781529495748718563742928780781478291759791760326267625548860688774113294354102997485942384291215002886399545671920654772177933175775087873854182280377558183878761685986481899041776018627779280243519695945123800048099936670639691617507235234196714625577113620928930716127309327927750321429321398030989579454338722808444860416303069887110219970541068649884476368689217663571659529645533098317038088221564312003417508587791517674779474361254130484626260950495364752310267422334765221770192151304935418933146098334341845189413099248605021393659192270196826577753478969101893819657287740854454097130340300510434383143453174886900648089720509317146710085556056952022235587634025077788808339726798612384235039670748677970050042459665994635520019094200866134520961440951121493502579466608582248434023246333779535561037941629952359202412638300850462256829989973302451198920848062720735259939836149261157016299237754534714273772237759487305679055952548690832430477328033964012700512153863870599021813316391225191243162581043741794881894464633690353202912771196667118785579255046337946646178726281064712826106273574718613573164342524157908798501204874185289602304748338002884850513771072492641156167838115414471069647696764295526906640118123506866327926277175006034955619582895797596537477196467657068789529985085599220078215893027903716568335730784930592757327638526713704907345528447225952493962560823309452624660571180105950159371445864418626715562213574385921793729414353942285277212506164868672696528192934433684020036680517594878995608005662835631829227074749297810600495662447406133969349841396168589278248081360807143066362755661903682854034409118806299535314333468229398978232872660802800834684808609825509306701563812481235351371088359373634717473755423352343023256853418070833730946145352533240958653880690971648165944215636344443867952224405583892358390556779421675009925762108924748683839069099382022099568334023031697108349465821307088000466484120612970864312138252990891995900541408473208948535061733172751064583747496661082186660835810061465835777272853975549916283518823046519162531975540131376311677394692495406401761872370945271128279115232065673767390631139437373597343425268249602096245594191665311674099379238911655061135242138365190877469047356619649018748290431262024600468661470903576380018182762799125569147641371861604579633325989575699136567654436735976274846759783304184604323809367069971109789544325571925869102232326718270701513876333912234739997720947385835158019106354492046636877365512848384687265201323486890311611667472855841677304520282085657406317006321498939992417240297717073713119113382504084189974058531626281271735238588985745118051580026807033437024961272192807002982504494421458042297651107846885582029260124521936597837058693576889689417621519580742252518163418109122789125916812517778835567633387992455255171413416447203717450906690807633629700402875596160538282936672942960385561195820849601613958474084337343138474809645047158619162197061022236896175459242436674263622187604567836051308593944778043525525983865336422330374154374955858746761556942452692025427765839355494309510374513796602317911987586213655784242685000771919702395581854318886197807636722599727286799194166576944429529264009195369225100028192275427521067833537004830807633838963364538021581984415041647358448780417430156627437779840651101178330575293796603311421000935089629009839758700191637129109477901350802744211632657075601755734356911293999741939920859022870834034781956982076453857671513052784613338149452552632317026774819621519206139330666493395221756520848004537034496900428128975830901017063228707262185940662003517650250113007761193993284146455854161678440152484861191651216236178886844035625100816043548085546143933480589749174851314593391832705106690797769257483252169075719152027300963377213389052862385328417871475683136077390972953908900546469971091298915021271337025750770981284301297393477131686190773971078514788364932157152849607022075988432373883745489801118311222535231565970875674301348418516864518260087418997315873425686765858665806948297254785165959320589059231699882095704931602242525010088246696624737002586998252875825894653572396937617971009838596656214762086415880618276803010902106515563636249126955157000160382768480146015546045261605151281414748514347124478667598837797573374135607174657566002769722700947334046712509622935428981590247994172075409612758939769995097248620917477085507884933074109509507874994519010263875737357716181753101996265638519284469990544712877448227509751992756986953338014446455005055925727875481785974004094501078170898708619085866520225360876039239511388006747551216295817844903727190823600692624020604364595218489055955631882889005868552720652699620074966910668758155561569749554235240695089447386376991016831041325909055356775182228801558201908261794326326203992499680226069075878176016709457576252578910847576945417112075700352399903952334773306390136527063868439399982160103790799589153031358079832657230726431233081163324376988830603021708779407911921567782498988002647221820449981815177920686190028849409886321831459873430917983250430879104323419374351615964350296083854868020321853420691723329066358553773191524494544154640330051607966708490462646606372236949459004583296147624330108294502900326351680129032075530036453703776598105946875490945532647416026665252608317913319055858637313274987251893468888060717923211559565642187489312182427825432893231943543989869553996552956777656592899397349375598049880062771018047774092686376972409726236291947265799010528076733443358638205372563734753412834986256411730858111992403234379771728102408366003181614573627485889053618493491006546001728548851026648692251075367711639789003292615892922087650158579353029238494162207255121596539189398992871051640630848042517522679347108231323223688571723349004572136335986356953014558709189432744854798839683348946233063845366079328022524837617887422486551430409800083072386590686182210880665370609681745843611834899565840665603968175599014875963055259382762587001829672560175178824798284020551885538184457758528841898590193465523214857660376936358870669797211443917522234158303586795222381753975451636457136007093339498854436114275863579205715689592466934483399070523273521150739956626166593359643817370767319885979831275983000675291822043063591604240630501486172425561947577641199013477296822072624800162740895031799032476469701230781192723237703369914686207804727931887411901444269167605552930370704647907302145773789019708951329847707153435115571257097004524987367427534877395175186979015165079647152647935557379169070732533872298191892545123846067433346656481920715507082473460519796421177243030358069611611057333799013158470129052392530585976905209848014710731719146513967892638119191446310058681293939720482201083006901248643854461767845519384507304770087954893757492632752403263903727357533905760891375116186619316609779241632614796276210161030305984108777913443232536956459826424646013019129465653666999939648551385444477716445516915625805778185842355413016820745320410181256081953210230399030460145537177983533440178926909432638312626949511187785739260518780259255950021902055993866374608126979595560309394060145771111311564143595220361200491838917603574099189462758549732344034607907546181136422254492366730375095540960577163895179883008424233357271953166658761325962150047915786334164925460233155731033368639818856714073540385693129648834791222625171154656075689026217467509817496895118527024567801119137557561683945544047882820730758853593510554117433914619194702395504377368468649678007415512988475171006741568568526899180369320007938068868922141372295743203270195895185575927153692402780174846126202322547518433213023907222311685969516996289263182750753750517928770197783562491059391406487352182624174080438246466511849677687414921690922606992890773127881723403027766404673879862865818235673132347492718796172264376192489820029621289989178058833761633454470437694566934669044057158132793782567199755924161867895549956465701851934749678213073332144001266380845910237578138904336100204943656232852956554939765468862769334371114594714336904700220261979187526892758111473922905784225713399394504761063239157145752449720450641960981691211155304657043768176733813879145243008264190345118324884488308511010838550244399265006985018091942983517986976039167605565442928765818944698478034258219292367790646502552620489391931527392041315055596659886574880065578080601548006667798687142460551101015937273704027468471118789313962962140929314138338403500189761786898480646047452074777758001353137896564602748025459548749660075192274363202564605276754176194254125547335739374156048889243481342591949844807630124333610721556985570621214218351589584237012027674736814028542194558797641845130909136945922396205572825657993130643476101120877445322753228193014815799603398288170556114118554371357427464095342551126466881418316835796601405908336820944305696410635048296609650947367779952102561305972800985428391293546166573442131986646474385826736348303446283304817581713323611283066573266223577262807429047052123307445642481036328048240385609906162979386542344906066494618772236830441737615871247847818870417588548739024785351968402040231513874539104741968813604693450105217462501150031553977145082001861583551330972124662494230473262972846960312922306313175370610045027156452999007839044803554204039928106179850603460025039468883274647607346475993200749875374318357139626616239768938085150332034313263291290214710290541781888672492345402497821089636550595045584382851116124210345886599697010418051227871136028826392895636679884540118841397420719123567388470838806706803570752895425606348742477655718230069821312799467913324685714030353064900706981719742025309533790634202133029787902691851476991025404460189222970737172235609204246910655106122631139044073783620920720866333120757514246457318038546467304506802978024117228365000234093551467515378712395033772862048450709158469824351160384491879347548278064877653064497943488192157723255117393590298161227255281069710711218132868581749311238091124475110970981464928513882655284030895395626186161849780372464679661161999563900168344325135852344182770569506161337431681689689179017183126429030146670430025950627148178205306900687904346517790061180075351444221747923052398502746419188663821749371698966462786971936130926639922240259017577415665305820484266172639491305165235081426026679762322277196452826094891941823815925203116579739527321820751527418581527865819203412672455861654935833391395592169673780539895978979875090843851283006421509394105135318222990401496234151586390721248271537816220712962089088652846071750792570804644911654481467431717820658592184671512917700310015785628003054004197525648639184689029116058083706162419922387846801511960855180933144679445371337820719186184613003651186645024289860487193953311484651707035716157737919215844618705884115701665991159011417907388923540555340415255071627852027454914154935914234772172999692263641435513968036336252139313112151438213038224705651189504363215315435680969527864753501113102927131225585485832517036468764385283414305602919290362593889707566559493796333857382375381262497302172195529784007136121815886753607447670548463003705687582823408229297178669829987298391962763592467677272274358062659197774854520333526318076355600420343705040949119995833028775154299845746313675817044805491600614833722961469212387443099319581036973210658027624932912026395792804080897661497335521523443547909257942196944238389484972308243775776271417962857402067525467188935446459641010549242258325009456123825326180562074910888128041516175556292618361698937219168719549653494602094686750266871079024162529067494514337943925954908015884855141913483498820234388046212092035842613281310233239570234934016466084677406513200887269770681438063749090884549091912303289956894099679343397546182323380019952820730735423679084863157656334482072635876515169423834839111436758839074903828853598760989430183000191909931696287885342324070845472743700260102871137705531527756266032388994213696589100841276099595894709640643813858187964034897868010883219372988407446777667389735006300106532071275683579752741511747142746163298580633242252365287099335801464839374761682985898466944982019519192999682350646569807766430055567954932277286077398185282213814393071268702248038782759592008154887124724111838115720124784636890689543087429866627479378969474534147324244100964322149639642661898291575630306824449230941749302611980170856495230222643670957563295205778439323763123031592090879124386725940372939163809467473567050888457547126165789201752172578848632411682068845271649521362464444879686521933493327282050385985470275015628023019285146305233795182482375110461310209557701305485760536180012407767659355697564326809916040393739176023662620727024258264691964335314221478101645949468721255677454457499926033124665363080094805886789229941728405784956540245120860025470644788429706370561891789929491151059917378409417215912718174521253412432740030016580707228938610444007505022262987690294341895984501008281790977244939128781431607388380982542316185888578193913751500504320786120381343597568285774435371450174294048922997170766716455589793912514462638341319151603254016524653583221363740415560894043267227486097304445539637848955028516944256005639243910166803068636240722887055904814831644169556747580254268822798042388085771995994530965960665452113722427174530051805149855972178576905798595211193231602976144311413473516797078764335891402466855151338876807829602979294555649713505163791572068211094442221101122529152221738117849771368592320311506341871202555525535305697359623554369030824304161244689568094020701203547692537573364447031361640085522206308387652336550664597406811248640639300870613354954506028215397245387923207961671479842511160760636056061870931701955480034854875915838893258503370619115031509108563085177932554289893535114959183720697843004347093711773592172053338682569177709028514689916157884292000386986932279014725638191669508499161473099221172182682995186722079689951199412736609355929300453321284050264766091381714592758090574717783764198600893525615555276157082247599302196080180573725421677761612804881506668092153576126930122020528596090204295258833649257902026903163963517610031269666205829152753732618020487547103557136973321506293207495721226617870616358593717579129836666983504777239168840712195994584831024428687816509973785569868461761140666275080410714963921834834978406066257478887768782527259266422073979210524816256681988786732690074177331652923096529111997625957012422620976988806473978867334594414357475539450550723329976831269982593462011035159544581973213358546273653651671689068789687903424447183642261811067079088418470265505974105415546773285152299673101492066687712581699434853141218394218792047559526375057305387034301325256696932740525364535250764132571538218418269529808133448664980703067353309889729696753209469056339133672576283403544127679575818746630035901777506369566765993378639224245238286625323990070002222290022945321859245165794343623159960709058863850436264262358316524270787573423699839310915564152388095988104367487697679908845865220268776226719983624055450207702269452296357849582047737614134221247414926218345263326731077597249967791660998448145563790158294577560750883934860888360808840711994186369421088946636451265794967165772394963825153049451665560625938177827683130860482761692360018007963487277989146004498752098919193114892594608126634844371231794419894147673392973973869445323488708908329629147854178006487538364365316741392484462715988757516044507692222254302817878221603184849329514060714468502670968696759164430277740890139779093988571126420815246386500342242092329908146688928785707132637227397089803030143339539032544204090750507127516337986204640034868235794607365830944662684988310773817972927621310952021374838988571906107911944979085661410021571337777691283959542044483054673957008408934415309547873690709688264463169064921687988996350732297972306981407102082513662431940001183754204458768061684951984327778667530470876224649244011425228238946084686341021666004742052242783051083078087572970870464619089628581707585056824696389511420057675761385970037341146253898140891207851651154791544168202327459714951882676726513840656827888075688330286892654642365434230488403491485855423887475484967630410312959761715042472868410511947143461850722925837557456614782346003169976559318797730854364027731622572077366921795233394879131176780675426901026692894972931060785723398064238265379322817555567366536579952088602037408518213377810980020161999692950497603217235372661560075509731500962359725201983079612085193810059782607777048262365955261628882721040805335740008391085245598318080322751460273350964765610798588557854325208185660164387984461387311668770538411818345252816070369269407536488369267743090263991008365973027593179592510404811173506756035064901308558120959929381885139951987915870553437034208883596493069812454363514365053092291709821942105044862258557088896498065684767090475197857436417369490417967380220485541459178565123736503949083888698324095570680028906759525937965493121159169531186259460511634738882762487159992730564818268544899995802091380850425543293773687165301694356534211789722953488968742297804150122199472987656409193740690676317865899107831648440225433318410201083963956482523484572629789745278016073191038947148421608566372746501804843693841239329299557595882528364506274459636009549516719775404188019510892508069528672556010213806768052485833329614625009205916971878222260152412813357218042119059936040608399660949886730274717654179660927656946088813341925289545694508907080127575907092320689132587175094204737225287211311741807109894030024846572931903151499329938775302148932968451568625162815424595132205878842910598272774048185030989135112710624922078512261771865217212539324501444209456147423382517647896715734052664307800075240914762508856965118051535872480592333195552288838188153000199307254243317099037840708170981400063985597379778299887271955679800844472289993117761389415799305783273917199935385346423450877318678258201798563666468430102799608592112240570823989127395356845076917931572339155589113685182489964974134354165003280703207494967244664049380440071586758497770964227502723125891723425675509304945750189716172868111692749332605565454404023008354005911462721930318827047470551368212100212311593061261464386992676162373745350435109555591225464798302846939967723918326236533917919222604544077205180276090054025538888596237832791669555817077622351019672361281481116596128045187171968342109363706115749670477792648841653412890887321553067372973362569393614080787193307482834363948246419105118238068354509024433273980763727145273421487819031094323816458275614656403782498767518887480104509489260520689736918265698970564343203343245915242833919557878067663763074434468375950318513620272628103137271421898112774049135686317347134133726580212883811345691470909944875841165483959290890374670280275260448745067280127808186705193825894044756800463407607473012484615215081291211992885776505578391361941083685156670164423056822993729889139266760359799095324124383185628684180784317510305085912206748112681945517438298556920038953645451561617794465149460259848631685260794607593366146291545244236693370509238602939676509353648840202783552337243785013813954133065776012630817781968329003179310025672011406657457354978292350580114191234488243158089121360270135845445925403075807272418103168960943468272634754465124694529967927810042927667632374397958955633939687844077256201542098688113873831891994878179602400220579612109096738599412964157645866592170565592678197198133460007488285263757374483896566173920938368946423196153949293713654774097203639234815527296482514858677406964175283601199036643018717651141459100228973077868025053307879350388870786498192976592845942148592689338733804738420027831638848886977200137547804753165823215807320661780054197458786976267481129875443847669664464634456571099848661787011554028990188751454709370636747547878013782584143825211562079954079255425511190490082479908893090613158154542432813821487310645921779798499809306181044393802280700907128845024621583380028797522764928938661393834156164232613489511670437676949754876692064513034722201690949424698018185311001374673578104274105631936684780623872893598227345240195444692473406756070002172861234210022602533464291955522895067351039811045668050644806311792935766418123975978742072426821253439864009346851355875833698730345562844804083161288760425211308961092573795246707821974830059875488410629680273792312575489522782942097556344447188871276426885013239706938939199322795087813418493976625226208653362102253033304673520215591935970565606383788663623776842012535416734277524024529930837396699399075251934778278305273811128866092446585498568605530553013375683455145663370596644548612856571263586446816159073726170114365620268593949387857587031118485174823252913859987869555368814608517066652993678773472596889330283120104652317223949507228918855790412821297635159619701467500027301963236682153167723706307132872716332894500483367544389792018743518244202676219363301677709357027919123771955048656123950466596342476851103527909596044046305220727066516780409313214199042756767505634676425939355468560073125476369924097144631204784204648087669264085463765423825712620502259723843077769658649530193825367525745874488373917406164508753458173029771800637796383240246951362690004148376294947072263991439509431208104291780466207358085768937962167371376058396560942574813903750359469133496840701207738156454879792818389005138648556871759357926438412520426369312704346506290010349032757232785691099812645024032786262675994505920226771667255398985388007807324594936683891492733030740692613505055999787568253409781281749792013412696235032917008223928823180365890331131790329460654875798034599776113256965615311843278192959779665723794079923371850660508281797475661515817348019771020323543514715828434753239414007230627780847406127846426222533138472980583258530133713250911145674989454691982231590024315044915982389892072578867749813913093440449048841945100362919816273657681501722599220063557435709155341910143594128104337224403026600485110315572293942332766731627210615707652377577327375168132414339675979560394801827092080474136384709979841713977919781968202356454993301295009267034187264942432581651540397686630469766086490071045219828443918846541178604307966315780391553050922114954512797993534679049591091533550399869408043854782778434926677667776099190847062153800683777875141723287059652571527890461003366266612875909832200863187311091836728223236260912234065351452997652682755849101237717446199021859142395230679894460203255894252903611760258112182867067993616986451286323913381839569394007303064596922263721772222760633665649854293939403086978359023952913362753678739236709118609141776131374796541398898227156491497335192859436571645956119364118489291062205128342054871984909100895796365943644127531401238907824232009509541482073199303254164528065668084045295591734134927655486681529795363921458370023739115233804488718899027177204482333317488230342175214488386288409266134614752216259141733929967611932913590019560369613766924795452767680408229799680117195121962905843336926755259822876412281597445137059488619895164556537460740883172339372463864840444144305611929988655708866051995256507935700450318578158187715157245873419537893838528468324398560217096834910534435620642493037929504090372734812855998364909506156183465132967685190607303673050271002054676763406387829911628789420210451626774629644628422216332364936357513587376981096678551727217739727321999674118139431172363343754026285134166457554330031889636283863236175767641780779369124745515280899508815806666839182993548161966213521281679624914254789959283621028884829652937582669494834685397337621088300790203707017716115999028917634891656106226408592332874380489358225037650035943197372114280287634093578194295027275233317169374989447377031731085543528438601413461723576837058574270825360793159228892533892209096413929944626147097531348436839140748244725260293357409597805516549305785198010849703989467537389894882742501688791721240957789549222139019285341451134313225961514956062374360775075986695999326115232303263480706336072733836439957872318884684507563036033701314768381720924738926524619003967817424769623868805952898946795472635686133185541061576864115571135421941703074115935271636583709866511785483732651251318124647117007699350727072695474276740507044390944334575975124855957650765900901358331567372392837483034370985239227678851805637857076363727318160230185407956165123393763421825413736412767046311341289964354642921182010879140817959932362350480174994429219353577211003512950465662028557059752816604155327315724542765056113813669532108874230985157508808842832093132733231991327810884050779866619173106790648191959238085711104793096820349199299787941562281522602561618622891637658850105273802971924657079712874166072681572962125662151663460755353565526875471991973594644127864696950247592696441492015580799442944654587269022846687422990353562431664851696375185433594066178809632632549733220728346252792522767398469586702089328614095112945829178209754554142753880430385338723241970325426788349048860479906455689706393049198748154947446736458148572739623977303995585933825880908670938400662211497567329205045008312533012695633475869164185658938091817998099701998917701737314427144888449502328694625511164230662850887490052775401774594247744432463032218969912927506225747669986215902629324559445533149950048486807097957827067407321743438551554015043163396476981147989681292999663102868830536431967326356816032365173921002781137107841368722027843440491931971297962097612712480612121754840371536833975332297093462816281140344565659803524410848976128461608649392469718651182712847231926905980717596696554954246824090856842932126529874455017758110309271349549347716804196721341440847324978066646129346612159475773926307644078481341345353637650104485091863584016400468456966109267040993390591472127811418055504103183985422016289315902045430681118224555665810564132359494233024628916222883854279531539153522726333842108286623539630366843653126891593337311263756005209178794376553898072942376118915598472971059377242610471349013085925423068563401439355582640930080123682697814803176313075077711850600246870183372466999283626989058144568370934581268943364701532760875615414250067836713017091656534443916007298639666011458729977392697306791394153322027777066839900448040643486742363788300348809420716354838838714882823810137006792275623098377788209646975376353735648280404894797548918800835656578285752294283609950819023563012305401099816645226095424624809587892510011383344972193317503573883594831127366752721092891880195885112411081829009433969443973339269045156666757208074181578219336713205493895359235423477306989061305249880869253081826876881886952726348986571362950945364512784574435530179571670102974234286872099264461733757954069762367631562926102590007287100195271985659296034593807902349549332920174609321107249924386316688150628549643047910893044875511089276892960363527976069540023688210944951844369263800373200270229589141555265413263399438321279418356140915990383274942597856624536128055848806540399900570896412181091692680056090087869534446239441025270048336712512957990183662369984386933127651469349755643345694605311661830504976827238628073179202296484826747258092641103301602961749824083506064947482754495457925289848610858603825729196540774631630439190065643893255862979983773240748064542595624941268773583539158844888697200120763399587362053253591459166870692100818987714483312952397763682148225896167492542928403961125649608049106499719737279861835159961333158808990572733080401822440419454123587835385172378720096168010160168194098041964624501733832433871652673938805679327551519608168456008529490507556329140974153646565371960406030536605047263355096894348560307232975779185108560489779224650960683744742115526328260072666908753068243148620531349758098179735545358901849362869520892879438580410884797820344768021204777434587916683591769461633854957013741545670836336463622578941404379610963549692778684015894556107261930234321377765202242436993003508693561681415100154946072311618502536082184245817267370600979110109674592482443279146834112803119380783671384432008328605588708065223450996175245855826050521085007900499346684269586414602787007033722378276713352440824669522126707598143549850889419948321263136090858712360838047403602915053751306268207768414958242610540938964377996562745012808992915588541859568555883542246799959128106747818942585993297139298913231055718721983530329319957702240918634442318835148839705466798096498364189716780163681617324094402187972440014875104922309518555083481403168974294455262632188736094273407567370046868743985766246696518611372738838087256690170992457392418739246714878154163982307602406110513456162343168492907683914977901174691265161486258386267795259208849955618710703196975061961267387551446824917156637732804883563458888550312231861302360356909416838638448962281598996712892283837607638794249511128496088605790919855126038324825078429371445085269488937271638430419165861566073359170481091039889717805691816822777205370872974718973873969907296098761255434652975752761207530490779664600909214137270868456950898859395131679236335821533659996973165831453869956990443726686764729954250091198044071012694524668399974113689239463710349831210224565398377941543376739082806821577711175648140336731949898713500275989811632088744865847203844442573029244934433683999836075103302650128550961070755955570380221415193772671031805107801285741715876440410795908859161459794867359672585349776769932591355592949230578145880670066017529585344956081319094502796091865210351678573462076431665725166866017352301964774198553983742616277533250668024628229238038004577615689929942221004364168798240406039677536437062383107402712314390764665765707844783484122485707567391660563167668228285508008251675404585546557163733533699554486660728812649236618697309199213118766473928756783397463618096968248899203097442831176406714333804125793713364154967245844469740906962117857405147406197920704209363134034470447041847884537958639188305692744340918898847640762436858023031110045761580454729701044840635834298759238445215172581312098707197856001466872602625072135444689609732437171074394280604633562588479600242048718630525102870640067957055170885333301438484042042346128734225593597834225104933056027156005009968377693486176554803806867586983629458631625508169369825821294336502766806340040659724542768670166487900650311821792377157515447824237020812239673837546872883703366342911210197191878490792444277295228029298155514904208340669050785163465054187284734722612793206446989965856123468459156370656564730329432599339356040912889494634931250083577429567294111312619238150277319961587759374092842412847126417423013288686562873862263121378872393184423473968563533189182882576760565041161418733339301349312426758143599638118667745277616027813403673160885734298127980506952932412973562253356053231727462889112642720819210583135384920820717387932523842547652239978257790757850461249546037660061535873360511570786556311337256253833016904222073097095866087721001355687962270967057960682453503700532438795719315755150870479494958247511143696227317871303970064969080865484623250375553479651889804932499874848875868865611789525594103959846739842583502168731304976506092667693010798130964144143645785880971103234851987365657807915894511746853078273514451166165761263727923822986317958269194269442619081622774555290933669215600682663218564639855516792142249536246318746284502474409140260478897775704924125242651681927845146567787683036009076943289267967595327419516005242479284178863015717834042384930632584010772046027389892883212166416407424324187119357384729788065799670530725528296570356338611654676810974870976748462738427298746404847006667719962253146701383890550857338349890760305891493713369480338610336226867981961662482980541328205938277429750697409144782848157616151543377054674947135426364625871556725327389948730507367500931104260585239047122151775683302442488123610460178573669051190801886260651274063631686727592286901347682693190782156997174877369805780309602466775091610887555773811957802104523924557711756510323121308358009753921011323472251691627680001007198700235502734412638389101697057715915121034336176387898476003426413678771968496799077843001865091869983356361538845309011813090568289567395732966122600872054064936931374591500088229187741573927551673635565863910983909703546387206366249161744858168445535769034080824251650542337716784526817011941155595235306747724489337339799535253689835754364025256675371616429712668730190636608268241865890246566947401734454748096269990797098342750034162383737430082945680100118138744467827564224608106446213891037978884562352647218780542096967062066194294372089254370761254991648405075843940838153198990611146572438592275481262896156343596171103820568285327004657947381435520359920142544819305384841543977372891147852736526400705327246312842186611495764015524726467769322036554332136951163421767448477084892875005911969609265266589988096166661289347806529793034301107052406267262754421952889703148985315251015312695661362601027833437494518417483739118930672649823804122198899608324586454166392138027412899308681159611036229142423612214251875621647149553967977063429671725066099431078110359388574941307253223894154340676388940606801847197120749279571137407744046748127680672110091684220923138120258849782114651152338965246723450448030775884192760859383552097871290486920470949996874065871809931608541510876755058162313506621927717364067472059407727568965443808281750712043362171262018438484758060424981980019906790836855867725980264142402717237284417667934364089993974747435047715367914594786703832837570906652815547808624984488064279805825970729394559766064951426943042830276988315598042929552115137865833233732501731486636027333517431321388546135814321621511919336390339947036888728548046722891906265480444899116588666657373878289487592847808778064066070669733408402939755091993056951476246580325208719477275296668449208821818818502070251022662491606212803354379031378361181889954609383739365038772187280651104075464659824690863506276980004981959983265611284930063416151308901331152322582089752333289154467269259261080352864448030145389796701331954389768323697225640716933969151440479041714176544956134095346943845635713970482629125014564152237316989406772804074833298428922006206787573114192319790821985592672685681457208271512060518953112765637828472904866248174585937503485871282908339776644221581813871084402902486604037323940028306905713593944979581369765959222428579467651743579189224244384292970914279282214016400916024418603367354453026949584561431369768568113813534445376204748442740568772689347040039643402844434311989795329613716524132989474632521083327789033310012552178241390821641180868203437641065126143670720569444687125039777205899862907105847950850576064796787475845777503660645455651337448952667546355455710520886926851291175138269925948909684338769950844803782919529858778680954812506060635302353328573971311146053464132268214314173994588055459714612395733773503012080933873803342228215553935422326815889372740451937376321783456084078882581043847327070870389614198214487914239078520252791144527436737293292550903018716211019910372875421347348822489661991271720106035131142750469062567361549622816544390643240712895645918409372557764338344427881817704834470727622665694405033756161748383907953835634406545512119393628452190906591172616909938262137518475345664269301930554014237389825535880685843093209749443335074560683703658297995862367117771197811206448909058510877142785654780399157878619024135617856408038325737417533900945238169044422685529196198045410430014501514651443032552341132905544689808126766949976681184761894875052345468306859914395011482688689460870842995827961518172716621604081440715211862922618986829532795125826551906086006423187244835941600166974099993284968344034918874432639930249371570315103300273827121877207197323043942979824459212211311200464781773536238455853189219983954621996038545818787665660028732144124378394089122901476192525153227590151837249120855328583409386244627499803875458494625085310952679680791820229219931807938935705662031907392193550131262437891666132545103792420721385461632416686100321652883461808780413295962401639950334557723847757665358719383263110859570825242999541033055196178969915234394225393851774969034084118516062316182732295251741815150314481368929299351804869672809150655036491390752069655527953433101215199626721600627777443986117093399115897421452051400073716670032055236169097224027842528711744752221711045108192660733524684357558775046905272459106195637829797944969791049742601179931955720712127475356983552583008481295044851614388540483324785519744915269182941137596705879263841715874405490664879680468835056723672357046171697346338634455897264449719045824111946776047958647881750476939541038254767657044725844159811720773760977506276827991500124313709462497356872190448698192042465369290654913299447675618113642385698130065202128280475645285804249719875086754628265977077891316763320470716584726561609160069783709523897066823584543243231178026757658372166972363091278717680273522944273609231806611899385067758854503178566796088436832068240962370621241593692328331121765554254539885956528011773308436231619406262902002386128614260819359977277939003944095959745051032091409255184775610089955027682959978334441669233298920767497404313299022737658323191785556309133986955260485404295629650964003831734166435414108793229565090395147610538043594420607854287930486050074943132995376855912100140352948046465960673364008594374842997473058874439994930039483757491900359656260012287893101366262002430125656767514665103182763670591988729711131419529046376348924438837859399365929780400214807044531829422906313323194731947813549200818073304664847994862909711329570361331077474233388682134123703477367237041402100107469782693092896781396146105754383999087067127364904229014785112564281214307258150255528374661165155537309486015214992194279065244283052773740916551816630223373043263294033458558417745063141905250507905969125380606284317572425824069054612223070298491164313423940612461926552844142160406684590774124370898025789952374517026568585323004048303657160343841833080479571982776377681960228185779564357319166610064784409274939560284448769560861036143826088455670646726853631389695775319449048736676061728163719180685031563989530383110856949539093963796086857997481826515003028469302091246733807325024295076187495437517854377345227375620172642770026791980770734886934900027418044507172431066363632974831994142204090884308698011862241726273189346704282524063458025300161483119102905298721139926723984092208802369184248939653602424201237007554500112761837263891533800240341840264206741674244913499709764077965124088247197897098361195041349724197064203016717279050733110686450812325183903423205537543995826732225554288468105209868162804815878474550884964768914143150152114206759240144165787234338136332776750613829193865409214866438222163103086743189774917227055380619749023161618105463518596328268588656195589096101966800142875109574485270476993786430567167907976360564100971876163457805696601945204280155364984953264619563100131987796568944895000390540115427224356692642783885734474881428377197936238342391450118140201591282243139128701994213075888471265538992595287638743031438231117640250677556807881973746921232763034986532112856591395468023235741683428590166085964101236848379386176165282291482840407738513886781259973138928093582535227237572859616970781928416457124156781692255782565216218791360223029518510048816315203422283173755506761041475993156303041603719454206261140416831512985559633161435123026361761275338819796693669825180162846718010976015353002476978821312127470762716608117284805907429547383631502423464759117583373360806057675498852580734146863901731442220277626283422662080179840029883852008082141361863338740612937204634342073824428364484829832838959782271962781858187505980330714560953729585961348219630152992716940368008920692680161855670544938750864639905704447883079228434490250098662507086262383088219591863759120310405529711567898907982182075483167071208894074537959925129943511905357736160169569458920692595342433029976771717647412100855532477152623116349394036036519288134574337218842973016054931886895601912387810242321950273175472209496247943186216978567800148444838436115862289558156092878401580197507645523452594616804278715447949376535423266842665810580235481649401946322840536087937016719820149185069396388055591226950334701463957840232285558586233172967593838123061153984332353093978652847694288643813586985389305403327092700839051594813481042394292133158987744409586154430085667378213376729351743384328470757719355447989087344359998968209662581565184361237253567829406570516869340614871730824985983949541913899891183922696354950939777637319043787669176548833377807128407952662461686891277729109272987951961477589326332756686399804025720617672714403695252247902519982862260290072748759763131423862828480939886922424852203356631801917536754151795678788512947870363933782986753817456722805953329800658993705605910284801039142362210491186982120197754810369555754642538086028657333529253691065861213351817716797592318176722010045893343911640027338986623837993662322162711142270379975149750214667295840319861379470893557944763143509337216890819733839502431830025600561105209492337909579219038481987706809772832811933730411485315508099803243474270318051226368806377457484394077095107265400903740170858381110716486592165523856731634130612591617637662261694711344664907914982481242057776981137271669150034021163610756247655445874999736801384346643192935030478592953256930990187801714736474069408789394361273219653245220519108697515735540454466708180491734555157374929453377461925545766298746222499855351196081216779892187737274171255276161092145580139524040490707329784200379487931279240651959287423145007772815437783079326774585476543131798989930435318176202553597008773423949050190296816305162492218101823590472720490063860966025075959928304079718461151514537641972112164118255788527627203696516712686779681374497480500928917159390094483296063581632794494472247248968758398680729317527308865603474198410683133405646944334588223135458471484738707995209975903380351488056302759151971363080995102697454155619492539719374048232422305581155419152620550622795845156121000211554037782641371204595553305156232132269979835889457073942625068916942978865134250054583367081850906725240539171255434314675991090145560542727548598271848728873581134418234320622735919647938500071973167337596334863078078914023460735668590747728966762524426309655240373598219025432831235881324729896960295973933977379067420634630424574113040830049653870127305616300068359972311537235372017893289959120892235199586284685920412989561997395546201365683452271333621316874653543271837462206529863443946725592666307951886318097081796898289534102625458128428605432976512082669481467116575585181870051361915861353218095386690795799628405594446383808180875428048377110113763026968563500473537682596387775050325701534983731034344114805219265302976301505222429409388008363551528303241707108160903161477657601541399973535290836250166418446020117412826319902455984103730624375236814872133578237866423491168228493194584008090547170593168460667688133429415593757627867307216949545875307200483867053429417505879942946604171785736920404157688322392132706420527416924495105168073884352687090893450642197976631767971879390882051414149451525312886599692912618754763271820418514407265797862221152068440771741307216919436675250166621598261027034197792803782475939894241733307762000240663118711247856424731098178037551275243689083317326718030143996014397087798402562380929982306364245728813338175186355806569255929899864373163267642209353578984920210926011831416806943687221853545286906120961946915676793300891045922707107317782139057398237214020150711803454700741633364456040592587442337886054045051895991986916936125029301928449937178196223873414600640461077149572068159141044680806756416102463848408996457174953976656811866967775718529124803960831804871680460968927773216706424188731014919000659766712414375001530867344803219145056174803939939024946830443008477759521153761447275682063167091278482085707861473294966028371045314296984082802897692725895486597305518136387007884283635905309301862399255270576347354900784310658676030195549865800463220464924690566897559150752426781162224815337657047596881180910996697841513690703456675666547113179031950842459916311168969811144045911534625705563277148444439854382285535610261292600525727206647908032254918500675666800811405792346494897918011847344731271241855272573300698873377387442754618647161091682728458430625249963906083782427581047259950619033796927402944875077984813661336340336686759320506476597416040717300083002121099495713766434529330437975780330441830225641436112950810903483523063020949973226825439920524980772346183610445718557020037869453507874319398570137739814034252396578279411431503392302132059612354869240481425411790814962152892566056710482749900754830098588668919344386048725377256826440492909033705879657896950010569439797355928796552431434110647808694024740987011899452594060607457440691789464903851042524588327622338021482761645988108324498784563816591046796959250813915103927991150676291298133205644573298720869748540613024392042811266986563341335372619041849510413771154018484798853901247743517336905385734918833771494397987418818403819162166826766542089757308079699189977223708350770505499818312298490408531364755996991729130076309240727278351681491897548586123015584569294611125369703527032430795556936417299437411899927533277496931916223682655032368551959228413605404374307831690235293114044695456587586810216002891592711463847613799798278727007016702933470059504679200777041188636087555381582285740588601799059234317647505628830668237803157813687108465130131530537365924305775151027075863202602053353335573777057401886111597393668020346417717988623202097617135135080588512015235415016959161986119066321539589806233676682959837535697583917116132760807323451958005433074635999931272971931867473000150473012516997090476594864635210221638850999147322241501257375475158128403104791813856992906843897069008564945745932095803158169211090013649289983425789476488334553163242830371165641901600667501672093453109544142956120683656180348058594475972133388138513711222159434119069830535319519819320267236282808050920683727772899412400576118493411337930649278914398580474142474772540831538508947996024730039008270788458376415375696008670577980957858450912312938885414766824076494069435200111171628315353805466171729515958888728576608475345154814647122119145928448621750790167158940584189300884424716991270837029207642870120570669789887898790951351976926060118780644953092689403415728536703682438425048350486125952551721683254292506434432420713972414782750430127808119300972335854007218706517715275543496046366665780853437054165359897023857106016383930961250971785407091436928571454732632584040537619200594493248204576213909028819607639778437500056069484499891061050902918121316795412379058738542793981396584545259674427412291043829360009490733166768096139616669532659262449119165396320812906870354810883459345827808309092548951444071504374444233736431881305859944654777683149176821654295231875876899620443866193461767668529959870342569036613004180554283186347775530544126029860751576216822853786393490691040431692414850137814276577763911480690199951400720011587435000061368097519750595830569437371311791081565463338188181743507870061517934030033963629922583799971890533334024066042569526459677021823850005168636950326340398639222941635163003892714452445493417125207119089076731002796299681784227555467783231549268873029460115054778212756160182626157964113239553738586671899368214181601499145432977449169310828179135312900411394562621340506784963082770211165190094386289720231494555846331762894165139351991177410504574691523557699459135402194872335560323254294618733849898771695638421723439726418928473541938306175086035594202169836655867681685663633532326895991598707735710206036700353979333474596567044074477786595126211134706267812438268176302331347265847019100138882147826901117204225327171544541470945604928776152598778343931146232029933241490614389682863644305052648565472816541281535049182371272074419942914075956276487876455071944850407226754731086703512802777828093250064084213346323906968802265261207630103844827386518836686976158232575980732226925487102045755129104913708892465395177946882909866875658861123205440751311343895816655301692643104367259455515862839512676172855884469722133341102362187319456594454206116087687769890435446377375538013830543429010787660500193248797516559065061294895653568477503569912164396235498290858261362256298822489606539220986577313454021323319383817678029146033363506670675151922753351624779895121137477572333527622772440335369092406518615894325680672823265716479903289671332735948307487814870433137115466992580141574407624114999839433999162429533689313692995640871277536095971830076666164223482185297196449088060400443393605061209381238882486947492324209137574504770986046193774982190564670409276919053657160506126761191729951374005109926973215532458799961784788003332172116527870338841322220363201668397678309767827339150513585757035092002289531627201396312395109282294135790000312554453943186811248061144900559539180797851744130389308771064453838201250115065888556033997335456747011276920690769043034822681301451245767362190577077666116628355597250107828430005324209043930036423465036771029252302537439677368162726228518538052918528054854088914114500006465632572291763840396467576408956698441913141276037363550935879104506805919890721630439058443769675121207691947818892134382052190701071802686786963442604856895343972192384837200309169994685394412023005356019239272259459220111884331337790127663085570512813498830878026441265388062901410173731760478148643102879973494856797213628604210806519173977336515130908250830324080549537739174891747233710174278464416721445034221210249895908960832300533882071265217643837675316264760640207699617468679887100837270459900417820567298958220256403813415015647190530643364516233335070972500617944244602175522472350162894282464599046774081411514251828579113222740170945180093552363862387575602457754366916228569624289890399805627159832080756152863112140719146443244243569969231036934083255812637037018384967798956530086890805003986150090117569744292916490055697207562026673794716908340207301681000169702965773160778227498966285294316309048777466268869119855810884701403503158237220073085060364500942977711431229567578344919915621323577802955358180955179142975160097995475078900629943548950459617866159968443764187514136696871830202370906642016380789329047918552277503376315928229921884338241566083337676486473577923287251724324227140967475123503932552869406753458531389502673759666088203553551346839875159737790371880140834140683937545301584287407131229865949310147649550742377782761582876611592944839969685961676805757178156035854943917324411669430225252221615782144252078822682208537334965524035176162802529841420781763226525291153795977465665632811212537331897430460238127754420991318097065320838042024106618452751767836913688626035711217357067249312895092735458973741749269111044712402657400984979040994429961568015736044825175303025373007095889468679960656829973749635802511059893957843695113519175131224356582926193402869470038902256593686639937207778913575560048432512902671659140264421189843483945845958355355443664393435354842780382900110966874699809658353998950637326763621271838010230369493088865110060946994982827670894432292600204161045092707317488519722707992313829511432938649863106703133612490165600442263696218747657848052636633151553619112434874455325059585749964194078360194803675903886137099011921481137052516698706196887095781276597206912518518150009916503893774455215401140304801607678679120955360159300575190619567894946128909686912246738666550506696129470658692239419002385580749191693266558611450756024404423528235093828272479586928840273915395457028535932677016502710942161937401339354439633415965507505007719043384978992922888582807845126394953980869175013381560264933067709616890880572262035191383428701664387861481009049644301031124608918329774982869926075401132711284676007041593517915518778554915318392808807434617175683438537144128042565858490005842520898332934047152956664013077936951708831297971773864575357249894919123831343228719413754514235407376960491247026557620479652209974585463431361783876472564254980847616508182389359875944934999559377957932763083311047580758573989225538216586048087889815392638083705879605425116511629796290640163212276286284046864405022423772296011271051183111886966580058296082203013704312816265670400637458444470513321814781211833601536602919401156088362389415783615328259566040358172071284872214284424840922705375186436013891995215732267007768615795865885943933220183850657681841529560265336681776022595711764296041141870484309270181398590710884515010171823017550338625762669850005497906327292925922558184332833746942818720228757995930189015376934446106927259137175520908325545041013033126703908602644417370440460123300097259881784185149726578845233653835609525363895701131207695809708668026471857412061882120157917877503964164384233602887215649219862430067852928894238269178207775827965468017965022089505606549708360578347089552601936597575538008845448926198358349902640315912126776727660557450582825234580896151855817208401428479501005047377054524994287578294520188311142084192870418738040277212448586817487534546420271573126294705844380052628544469483723134063195529301220157876402053026256787123806422818045043572616737484424714896210405817930985147979086109415541301309705001134258428970664665648303149528355577785843418914573323446651928721715720012238748779920803079539805095922723800587793099895044922425032230020282007917748992773505774834640160926107689907248774683756739837689949219399771630474655660423458332668321958902947550037005835306084320262497199740200047687739637125998559349793798001613933999041739514971860147203862864565158693098863364546511630365364284394180060521357015601431659359201704819236531228090422530374114225060012520114806039011585969811675008245174036851899246095053509820537194943041175198402331121398636875929238050489696732978136508701714337683501265585904920548206314993198366656484946193573351810236642621891922425095095671651300427298892857255273133188681837028890592655306497590480903445836867699413052207825958890816319216105043984945506188700727767411349635979159966622087201800947942706072350374358797494619531954302294273632901728050899105845802823450768785068918906839686806454888476718880614978898419226780655215523888807820257372767626271204442522577275975400684972233643469437417943470707758025995427722230511440684499725470590667943646506763505678385888064452031966847464353071723673022408567104366154022290333192955519564274974828315761804834404904539996690944963775254817276904154906925621224489239309318014969699725148457042769013809062205784297661464276728085276087181854779626408616271023070530269107584598123562209141195887652307690750533572347888558244090903126466230819197593857452967198128041377896478908819256082192071538433986028772129751694476070191892975192226495651541587469139583707115171810960934895030752980222482707080541866126621323989907807590849953051061135546978603731506412687891941621978206197854013522590603426091378930778147394277904725260193001332498110358308904235481924128972983634678831225353580203426994236268324323331272847137560260385981545325961601141069445326674941272949764374725228837648986308402039338345131219552912254068948909199518730417717107556254799345236601732740717378990312203475233741050812967793466566276234219723139618343941276609562793172886012523180114849651472088906581617379209203564618128418200317724769183586556040617703766834752205768698161158357684805985063035221583315060592232428735115191746628188892153294852845347865073476957375328686555371716693775040308814562399672522101033227390352585087921542322804993912428545222864874096361355868223251286259049380832675743580461307349150693352183643934591878253546242828961469219040204521582533364367761068000383739307849750306456203195204377266445757444038638252245938895212571115886915488641314479494761497397516912990822765312011608069778585552020330972313564274339485358859714654927703536041137576239686451049569059966642015933741369306738337896883850515342654726995153403563442900680435731692061555874556437996013405867752885680740677091482548104272730116718329062386032735056673886261065801695736705152415376226623112075344567136334727866880311270454077751856877009472235287532912884259099337335738750438584203614870954836460770322823059708111752567862431405440585151816537495053243877373014929569414809840133009144152087481428363922936804465038630241581622448879574413473333197129212902276832092126371293088714743879022777811539540876621482279581560303004543021753977944794334972919854968901842233656017553235035754759741705261130322745377146574451572928157061013542636340323752649785259886588531352193275984209553572938936066299337294333659496409229644855736827930540245582810043495669989536591304589192921597448032204450597293806837688539036761783173978270958763525266175341891480044440536289180291991532949966508453791422126409928057035932559947555927189113631946676668690914903500057824724393345122388716672052497381737439282436265281611229228240882066261335985368480979060463110942343627489168256930060439107906628251308512678262344357770773040298937621341601388571915527495779320743543127603767011009768708469026430589498352196590570809275410622032871770872050354250474602269518578381851845248633120216321591406859044095145418697732684539609783320028402914682472037604055277299416471836530768357631434744785514782180287987366943758251269926594110746150857589962159833723818451002329003764009570096541273127688575065514797261929690610882869234124996823114102325732233991787725246904167108171965629130181965727834062054561740533745003470763918739658819662286200342793389619892481449901384404686610568925829174253822508511699778153965109977311596706670321651127280931546114875101175220647156153292988931922441766604222100998255229107404234874269180787327437319608458098511869445653931765993711868894330481190119419727755137886389064723576577733269585927236005167824518393636005958197392189562380562373086021445459338648262733136044484021442207660620032154081288311331945518191882658964436649070771469623170772495631528503803155802786536912941141461996522433002753647471164530744395283385499274316495329048225669884527701269409166723663054611312082496628559711135530157072083175640035574113334862454150061608920412687295313819643605803838978153079273761863986646997952654027023060584385262735455391510191502798253828215559681041173428551282771685059747050795737693724709540550323818386585731873463018523581583709350322428579334872403673586556841854232403664297216132810692971272030926103820091783386061184928466533389704551706326298746439457603866913144967762389478752811766121813711689185855206191806127712278403322933284102627392131220932536393508274386861569045786233027389300093193380397637845700284455110636032527742700199585736436375318572620265913503916499978973086246162426907145734570897529234596760400667500835253982929952176496166241626645746927331020851876438769774031527472346164912890837691461937417693731324444967681308447888724853696491771046226305686675579011454137298016568598695011346992649782882580171398772214927133792055706863236115029920095487059794965345617445803874620571675139423226062863093837007216262905720436527743518347990075572882574544650849566635855394506276943052414988489128942110138853669587461614598053545474028148628594918850597462811418637551522904576529765680089792306001226784363153297397958337062073130590236956060853037137215310711238697635056442299000651116778494452631032698099377102463598144159484161160267109387823108755830949505511606410724268164865398351962135422459810762881606035616283691420728328056591288075825086189158937464551924246352389050340411732195389173283896691785851337107201324087875045958857784041352028689627461816838556975425935059212223031081306825480903311781417976585519356112237859913142410782310938728138830861814102343234855403606408338363090270838441099824219074862827439257266021727511188425590793582057359122566383474126098520338444009566386675401231356214116815152435488652656945845814625426311412538693333912586577929233360824490052837785182390978727285927013082997334065276783766568279375198897010904299920524726995096889047291708351544571205695457295103869572904651185290311329411310653123450113288568692387092966790369954812151743188639433231176698765779307885535862956026772716442360440743675335084258924271852529753550213925204830999659132880682898366828547342809846720071486399821806716091324280175859758408882284763747198661758289822181937887518636203057488921723185095983586752777764937708329143489998726042261249939208287058531779996189342101538733328330932167874463502731309946702118808981284662790682043545726659985192266665016769088373247395108523590264380450331779972872455623153973777238067376178219691061356732122966016373518619788394149307300791546270465133923592391125994660470285977319518660424748516523500599017250797342521798657487233840467293020690941299795815887027574130796113234179553020044712156533271367252288223591244004134302031639173837451147989721159703142140756177708227628439260540504500930328054983047932526350385919871508095866055965277457753174442325435588188376361865082595944863838341669888521557188060886441603959483205848513768328513133301098115922477869987410540351259107979944424029020727081901094881780359472366382448181098736353424180138280412514775098087199682861800150143523337988111649035149404372987906867845033807664045867858569298046095343105353620235596540836499657005405745273405978639346963458792566190700163896379054959413689260597496098711512234751119823894292883809632805844379172996133918678083189408718169227313082304687377510575700321372896096936923882560135798944298324460928193509827280512269263094379031616433160577129336024408895005430446546972931659558586744448846243661079011820375071146718172375149459070070624000371934852968394834979035977010966673058869453183892514527609820321188428813031951246421876004649255121721310643204690239048668329304395282745339523626812306724826410439629871268225004188240519485900570485240593819223243067840084051415495628206793054227170949541104800408198370680885914700094510557569450537095080601375219830054681777310844786864143769919340689310001257193917864239002722013363332793996877762156019726589321308877380885125359297223807281776076247977024057599266482107704631635007668559895648777414636056623516987937978768266512675282869774610932117879103567076730248854001694011775068249633167403346471670175294664646771816917032571321773062421860470935184972194764289448201926479421753593481281355383563728276017398786306779539554774551789677562396661739041786100763850719522846192152598692086607718537364827088882595176382211310795516695995722693578865437286859940562544438972294029799352798058504008578600327239289182860344293969159641052353681342022910256351276566224684550882291306056322614262105150801633603274003516406803788966144711172942936769958810839927002708777325703323824886483700199381676238156277859924739813943645997883183043692410975052443194981767701941522615057179102282912238331800282669914112121282195051832277175209587246910270356539286854265272714004448307507499328240797549796735605968313372855904483765548834431794423050912671106651651422012412974040529420316210717143895976971277273548335115481999842369212147573162463746560434158258725544119294069223992499374785491198974975048886514695070102190013445963809413763057672689870865898391573503899012806981519050746726981474339910831950918369588092511834710684668858965168657716897452594252976955517386535593743484861074122197034254167599967129690267510249742897862572378769380530917560346898207721422448728570525695483250483553128115750686365521548791607748249812797864269612910706677785701507306825336334421748279195969960548620854952896211872622979899575780416148634373352602551821955556928994322978918238583468923945327381126551998902539975469973495007600239153220171943311035862091232833213329333030957446374198326840581671250132106214960060907364880762728744183511345229448752815456778155610715155011368245735231646950909384666944321760370821675566677387293754588639402001816791454746600210985285949993666094801576959344608868116023108507731718579470565689488296058253357301630070922354065379968032036117163490709959198732357918542639425859509189545948532655177481672209952311087014338733609408165491531402175714145492519893102143827565608518647812980123992415212772680465565177152453872189499302069826839425962677744749419496364141332785079659503544603035829799651719591644230744591421914542542831754334571949447412351729722500022607345472636877581631234867419866918313642496445252248124833549362586018267037639148164140607425936128411693974483316155609845992207817040429810838028949372688821370671837320204227749966581272977241080496840007107287603960795091917772440420927566782251024390562202075535587777111093471353522573193883750868275523260956872828251256080725914410162658617322946611101455073811361869120733124212125243091592422516012175659288650779203402679882592693389932763491828861771296278251996850471244347480303377060124993885768875246000484186878937673667191681199527390101391025573220185188152231036474432723555814597516014995027842428498309223363062034805576670162008117622276842370573044461534172699573344579518781907601029321891709324479446121237810287980994525589209617612945499317723103813519281530089635889299269746746104067098026457536527786487214015709831446786445741263317064143536115995815689771109290301377696850571082033194106268863176251011421783920973913407008335875713327059648760143695979396762344375994911760763434088302322336044918537570163618338778275679168373926217416787623516655955015016983669858116015419266918407508022206081282817360565527607730507938358825218178746893737531356837587071155800299802433662442365132946760495937001562214729528064951033819307889205738081262053858447894106298799996749045112674258774478815212844843186820604780480819196285936421856916790111124491329218529632782955049568808362481615884483986205988856151199234214354371530797254939562803494903094616820621731008057311052859001672599322776906214222300912112919873409248897054354242629950964116992891550151623429127999210353344764422970538861070481664446693311845256398089320227860049783147248152210933346927090369544574918820812576689268787476439974721695294404599561597475523953569318558452609634448362103285863438721639739028536077522504677291113327407499924611630011005484645284150393077210442995384812576717168773063097819458066592797745840437033490917470157791397134475307818798947915181081306191955014560305593524980406907692257271228151505989238125784349163732464633190650676555208106507430124937145609276631491505483443704225063401617905257479998739000441088038653480840547484988609570112049065189575864974111148407146295954804202189178545464244566480951009543826832552855193059924614254196645457080772097777078921125045594135093212034170191846253328960364786256746167270024693841015602573195758488027975808435081612722879544666166168243361368838430438031802477908544220046778761804400447776178610289010761880966254493639630023227040823906518880352739188226783754622419077092835851947697689973619804835562893316284960874994961603015642530904890620076574227124825337811684290817613935146607863425023330195964784694747130043621609752146754643436552692225171026874487034532924554631734882385535762450267016887167262909904232533887407366358112869368475194598025132019568035232271233353270036835255864498972373394415361738423342995019917209060555712135728947160523364559006892616631439253879607076589505705940007199779613865587433557272106292444926254072854803769729683923540130796771783405806456427667799205747456000936884561396061537815403820767121464273656847054996000817007173441776027091045795349924945534340173074209790752650438190657808626227645659935783788931222271471427938401958112975813906987552168846486351438078978234760868344099861303656009358666709989262597898267661718584400559115114234388248272394220641564459761297963352494856967082061404432029377036238477866265732142331282777866402877012480195433699770992004868095368404237051936145326349403000212014428495075621975537418581064155206560133038313893251518802150421262746003867310561205629050663137755960961915865478153382039911183945426292303430056291936112624862392028533596040340570701634909492502835871251556429727484062497916522676635140801940964452549097054590813281902139498843427971378415259502259487452218708474827708278186289009671662119924729597124828253979577378424262555966816524940613140501980434841628663507595225892325736128257622083388226398279917471719613498792872534736774123820274108203031312119967713918272565224895677626208750845059866878737439129677869612899739921008502054947832839000792377339648484160822153733444473303692676691737310585682240700079282827194735062093583161692591673485142169006766549808000667706258358933179390752836776909453625849808518127280337786542030212181147073670329111235901412075291520759133842452386699286347226859341469608794213493231556356213886087219400381776501742778616662078689782411511407643086389884770873661139701423009573609206766144729284546215385598355717155991469851000690805289687085006931961000485030241458856404282605339569763807848501516473902869538670141245815819874373209430618846818231762711989981631493604929999206166829652205869907787744105954235684479339381728939407128107465467676824504023427509489149540650065344366398876871094145031142380606008641577793967997400614114009493214956836900224443359405699132621469094349574197271423681398130372370664694957825072495910203508007914974382252041328981827121968695330152453924428016939420667239244247688894989640735763569231202476135066136661901845475467046211120627016264241845188470491904340744584465557676050628149732714744102028539063379503932259796092275924974211674202048870953699680770768206869341608190073306627489859641487436065483582224321779238606329261159221097663916675145023659768314079871802749162822776538230357863796077073264806494249881334257993819812930402957997450901952775517414293955681386385863225782409417605189457396141776011311024778974076163110066223826887306780496414122019211414817580933362260986675934854126328576556192849757238257395365802594539353624791125608384028817289216633726825348122193855417202714057558643418417162823083301367593184934933599439962916853616100919127474078351408078535441644628752077525186772191208488401041662991843783355773613992391434459568294715867426061099708410670773827539686066274443424970017631517324370379846076499641771667212738452706422630040526677875857008231571839955228745611251071479990371538385054764279832421795746123622939514927100759170079765054610101809926755104595761296909397559096408425417194536802082880160320439182149888425131288552271579007481659557055300391153128620913504282836732457759271030150883384775317378995088011188898048374582228724529917086754514929150129157274589751695017868145505228468241660969194759389905751241672356869766701922085438482107352631898026286257718984902304602944691345615935246501721733512634779317160112422706205434517222574586587124378616972061791800865287287129661739434624394543113987730006140936072983288085933617591793537309348840579132023634392807324409016847284458230998099759575737943749596331464346919528198007057548272842249539531436275304915011798927423940040399973183925254189847029641487654798285963338778019362247851659522843552521477353450735635671824989741823884316198932898409882289418489386909560845272737191119285228185207440123688182015140566243361820246572427508864838425519304798508000576892583599519632874595767161889014745832552676870101517371793686958823102954964140186687959192772805915727891271538791936589527632053977634071139482210852184445583993792241195244020109175445154799833403694967540306981487075306412943876126323503273706806077941789336154384406540399596596641544434100559105778591291368496550864260836358317196979167801840019877493506068825566247093253347410625750026640908814358221233220481268697690287909229650862466374776756382198681253008224061053248672345648063517027244929969619359540591161589986437029996660400861105565926580186128286996444409000577645557994832904205877412513474972607930187518184138227565802661155374701372006018183667628694376836834695673316547335643903139750398938519476103657742213006476061101166447487124736200219886528568523954924293680209308010345298072539939568855485281580994049216699318471512827088383806379282475607922875340107530409740443387885502612675059613804364528386081856987973277067166189563281078062684237814742230375898295733055329925131652678558571491134447656522143902486665155850212403972239584377961162125169096790054385735722474359366415970296169604202147082519127696907475660258915191857929865101455507593050792297419658018406327456116037150169975676602128492778604715688410016494523126268290021158496468821063301825808196607849382774846958957930892660440418782278287139082533209425133668104409201508210411519489909192276932970699324399382299762848477905242144432277583211485785640278724184767205496588924158528049517774928171335935966931179026158939395688729891759536752141731438739060822464638883114650991831592181288962128761857054934928992134834528040609150131084681152917456874721761105788287432461823227723586546513188217239872616608149567827188665232511892802932314662250597588084354369001798532888034427376228790258168409088474994626676122450509739492894210964006582232714705383212982986417078078141979016748774657534602948356417293470973712917466591220600872935729133302648829423140925103059065890215525606728247673521510516991668976520002436064861285869219563122187045732110525263725530783184691386652431100005781688150331398113207343283596003187574457100872097692583614617575517427611777300368333273868424633106151466420793456840023226276256437418193143069334597349587477292951936321761881487760305910258743162813194896472786112853229993067078120957930232538730633950263810050947094478208223082955348243318650470805902881922275832531934455354518663326124576208393783186229556643578524035448050968439270478026551828237148397730849442320985756455379605276700863342752227106318917938053704348049118845467756737576565646497060001731690799944445540482403963631999236079983063713946842181765802863404920341790193363089177195493048046403960710977788744751078541396057427213502185329039129427393317158400054560319099700171917462434095065791822263493941115368624588151892298455219189358838654591616815285381550445859616086516007467380989985508170465234470355076224556921049641648796832139286050314310542121032577747627459698086033775467721895028171078086671289511851434435376577635447133590377246282730421498591975871908771426857082047910818828555193621696097506409236540592325620581143696226325926080713171672347001536908298894807600020514354182300045060719920998852611009043963654478279652223159053557794757031895839582060185607892819394449441613746691137230829641699135623989082983907171695198240573616581128420131212330657695380088181006759060352585369233713777571369432784958853699444069640728527403179960727059056825411152550695316588452486657410799202310406556885006701785099683765983446752807934522719660895679119662822373209652375374768657467923656222066294725681370148028312774528893978687417787107490550695600346489872971898715071544436470434604775062174212769804612240155850705110540542280413338386121780351693022104147967232074896116563318452492613920803906718961681387470391019746523123288179721302923334117275500076494777558589673207167679900860609160851498528796536674403870327728963717627679376226517777303701321311466315844283039569343681783167803769687941409018155708912931428319812547620318822856150418013748682347531245032273730540580247691098672701808900946835692858295852891113051089055453985850366612453032516540629034581985807039699595868854213004879502677019168586531596433484663671890731202495524884981055736702005063552611000225521829954616007977488970978510017832823246537805688045975102405899962343535490655639509789517886898195248168050415463487190073070517428155257012902296002943364758788965735342134443389988248494438510853720028303334440556671625779881444387489361311437467378891828965400877635548106260330284122069840904049524257479640286302479859225779472364215574005106516065626993914723634236386801743714251357548957386714634992539681185787485529126109445480861068584018035028158531514997595676532886912882966087949703769341692554529177293961084151835297879097247201318025263762629232555091183959971469871316339647596989818893777199889187172833579144217500503816413726932931676812155343733667295380667418204184029981507050798397897568063965479388811771502489624005111595816420622403837285886936324537003318343892484699021849501651110762629432704112762149424895880653971944167746254155756566067350570366123418668155430169235174176554676098396449664811701491768532969576700476454902836151710325709374741830881775995361128400729989956685340744696586470142699658339416684924092231905767499729698876504610851531810884340362405060264096695283853659612338436564409623326535876068219708279074628880674269793556872453870619852751502224354998208147460451103453498922579439219678350328888354127238781354140037458148309184220444997223824822766422647627525304206232137963625765999184530522357957699298771803020815636136686352697398020259217139127243401625756015942315869145927433159559149393549555950291761341941959206603973919100169119296158662843392886344839153537348423912990564828804182999067106068336392710807694051318117507314047774005408634326428343238401515650240888988909745176817505737320179821798814148996911214761374759581541566405397877511688283318844642861725122777803687061690572133476920657655875067423677875501647770552851127475609293480308145535299225701695225091390555811585031038866753400985398431630068697126972532334461648001967386226883713615948566703682897184094157968607397233137627109979123942173580984257533098075173564912820088475416038717261073407510606514915381093269894491888397084743006808612931811461652986415146726046399214453146361830962744739757671156621513531484012007915574125521393881769690529266855393929758343561613656104370794204271405062510227314023135683967035398364369241382414230865242519125019826170576014174503562154361087276080313628445488551269543179650003322462886975941444410500795148867119281631548361181924919435676087514793130834754583978287118316735469647425806736132894559189260747371049196036427986455218072206726935484172992102422688904845238985515471975980694281431165218866527898336265220539118511343752704677803037614594448436179081912313768579078085353307179971029538485406583431736130973812682332359197878668141488862464431735661037946430770184553700388787629062036859208176308358170076487188831026823401354199754013532412375575365938680773744031933024754937089018480424271678423307529221473813350478233970800199105916254990612273260007356653082637056227598056991602926255926342461404524334864555658164078864760774374731034918502900631963111864031653856583419021323175434163179592531260277851927248923391689496084840487309413097429026439606876979504409754500362524322927672021316893764699457866316027672279077552129628475607491716502167974685935746827845276270915596836023259208431015658061832331136838102340167102132584516992309780281643016019319168902661820295808680162839118191927063395763476561019288612025079080320302447969313143566102153905427923242525341564754110642515623326055344007999215379657547187425081799681260672177585456530796419240885934408918512159423065999037547753578654423022335973799481349829494341211848417240651253865882500777221591641506144928487868047192846727039398933588939111066533438088662154336311575553315770469791196145775511934854507105138619721363000266392280631943783188464809161571727247508587157949950092139315444489958224397810728262014908031375550080103664462447673863443957757362896655820109753110747496611121878060976985170531929591733107067820219775933237908139258170856030640825162255425120583357895750035108627749481365771694982431842599994446768738320370391266883187868547862158424390124152085097393372567623990756693702113030531195554383170831548474643065551106905458549462854884592713962264262174524170944815721754890272675292912935715455959234421159240249493436298203120829225253881150393401676611574480539662667854765217299135158721192182393171243298112394543142392072966557981306528443753449489204999253120277592858700534306351539478169142779117713993017019506491530036304406953978747314609214255546571444324226011214817383099928883254815099970326077915279939703268160404583788658706441848894821830946389536157819378693252848704242316422516797895005097086359356554396402116781596476391746712332533254123193696150019069100123885221343803174776930124555520990712686167113435240481374551621493106872461853220797412928883772642320222276100806509546779069407434842217880057834024625800116784666281696381663940608385157146364234211662223358590137580744670123924948771856674024468194285953569107195167194986730728612484203237523640016448069494856423933058146727991377017236064484016425097090546141832423973408555215845307054617337843221236338902736395535152692751832517280596373003920976358836259624050247896033023477780289176842377111050403340854750045490433710228393548210341715270780624218041909577118523014540123915313274863571716943016164298501650676764617942845613374485800569261553319351185471057935165757659284924422898852124250669493109739498915180795089456599807015859522622438824130512729624814515025738885049173186837165934231430655311282974560340035084900918934051328917974694301720542091632761648187843008814496355312440515781237108982742388031176721619874167864338306038185674928833160608517527975311745330809842329956049115798877268923392573743554369276462301519435169263972941366153856520416791454559476998328832948711634141106235935845370467178237792982700299791380433156882427603801860791986129437050138458408288598903299900826670307990307723038334339544848068801929010379148503342217221313632535512404304764659637762109007309238699095097261966409490438474011484548799871264692522567104471438575043638464283291643845469681916493868498084152014217988544564463555392208075024650361611154729901833926806527297060463579614375306911472526716982948259393475895191381229439245889932241455541787685096024922182100827062943841892921060692188894083143318473145106591978475427394788926487517672632700555816581650463046603694520052307232118401755838903789817185151977546465414929092278739697405697016489490465605404436856513417238105868823472083035046118921826120770994842931361524945770462278410666591431638169163940558392208519296984794222846242125163285787613405417300757301459326966127949466779314868083957540292021781252030092029250479849488183351485370002439321320789805529150422037240098299256050424971421396432793868004084323665223641081926804560419536179425900996299242586508405682232842193853182072213043345411586654405593067420825925226221884038563385721314768130249603346050726893070182063722557808139867166049805107123720924529540480171775253009194126628219149873699449861036591739019781780177701591227260605022829042770973960835363785440668635977564607916134491243559932258597544117280269762045512443129491109044285018273941989041353588896996002739246686300512279913521181534892543275481225928063802110538495683678994394301157760230613447750006871727199128578652009827959088185271550613057865229885919652020906253406371979792960742363680769303215155439249310436114275345011154845465271485103528087890685442484581480803646968220058086434919435204479861412749383050924465944822409634842292045231006808707982374766989915817868327651433340518999703788523437369974782775684480779100588675518074754981934299425392854605809436985084107929288009073350273322506460101892633954678308577016872797312117852251351130001147364181146115474261888186065933767717828238826557943466327094288096562729794819089335664479923056040153529686412225623214668201992438991179612988938949431068350588387229213029185081290126728843138510818862540345024152089076408199761239674235479719136603774279342166251359749271954260979494038502262012463076898651713768524810937477186795618751695310854171102462800537840948597707053442919447646940520217006017758674667722336516134032708126270732866583847793659547343423251568654860291446886181030154726021726479407031069731344294201300382176293429066410537897194089032090544465282643712090646490629074146741739768505497111751995378387867013405340431843948181988118781033516765479992200577394194240589049681884479131592360311760911399136238885113784995135869325825090133786221340593121002057029939359583560892157297396659259040195662735319231048170990518221478612058774636205799216170516473229965886274774885631050279612113089191352502115950454554697325550673640833343071751972245011153599070185341639240832786541603773824324253716789981026411927725114946536792394993711426340291851888063474531932910358630036379888650323908483689576071468551496122297387525591092889890187247685548269155725777508028107486346657872971906438084729948718756559116999483888584966608496321296212603303539992512748733035769298759558659424443543533965655198368598565446236879848011011379885725195942009561259235850026800792662920576152364839649070263931423013356714695039175449975961927354828064875125941669853837413753185492064953215544928229533126294754335348716332132466678830924896967384651154508995075046436939065134134966511672941021763891207625552224166838457737095007522802273926033419394833152136967378942302907979667168491443179848248911579332490490402142463919839876579518039864551736939346354154238020740640786145704210229742508593082458283054073818255328663898920747060557709206101976399690802187546051820901254129096370352342023690892107034336565658746554902215591999165864027265440328969226747879988764125481810360897945124658111847752501616280971770071561745758163953079299828078679206828821841111673497911270107378077589846494472039302375579197281579978393922215616743553679535819821787071205881157204415734986887840548628148193576108533889826625532068761944285002128764186157859522208518713933907899095445348681086451903065162453009718695681684641655455634653097581957847046858064493188034232454926088370494095501421301904507773690979348725035834042654788904033191445057428084419955253192825257341150780738475248725226046053246680089030941280856369566313890615499865872938720946190417743291104871249685480717758879170565426916543770139538060864432404344270890531105461164480027089552362859377688625386456345735245483031338017724705214329624457046030845886250047032197625747503770565120577381011521920754332333923722195147798430483060648932678704050688961593052725181757645785077843151944629003671035379226303308830504409914915838949252078821036393070369393749758902315079169271468871796742585543955516469395875626393153331128914435317465327359945896521133067468313990140534291609364432054852644524644218721812438120223043946204254090285472958685205450264070894045255832072426050452267215548269902573715475377036382744097171650817152515418364336367877233953848058925411767640563346799822028907368420308444294271413088141284290859778790305414610984797571568906616232742663264940559381595498606944747646456681318500983453785725632878482849662730382357872416001613064873178578901804074459279099009661241278492727132682036526009293976081216665098672866871246461952735361017082575618533489714498076704107433473366301103402781222640600348739545553039038899871415403856102820614736494536843104933363339848140940435861253678167449135084026226700965204934843751833434376800848512332268787816910764334784870680668496324555085322370757044010444876090872795456830665415920423404964712624986631056472055653548332508053460970867365177386788226108440811977269457588510273241659698272484489954479358282527732902979179692262336369300691281890128140559260876235142056026942353275550324761242952406903153345398978806866255984037563675161035171964576858331573527244741714275141998118169490346854884232017398604232745602150697225940978963076081985156804094427297786383653590989863213565443117931961763254916334524181213461499390372098821706873660956374058381683367867812929318166094604585047048097828581030432261380177930859632367715663832632476520739075417020496428177992483850747780831267173112745435483579729092009080030081957267060592082870048349787057352272055658206011936123740734630962319259719958897027269765672585014314327597053584637806923975973160112696197761735241816781298700379391590821595642734337657981208931426164448742529167731918460585304131325574569002059043562464645687647583417453283977932208365648634999016527775000348326792303137864998008575029010660736398314160078295352354091910075155507127312589861049954656339844833398795360799218336810877708450408235553360483894703211025594521801795176376877915236543223415627920850695983092485585840921792372785599226544770046666460452898079547369423692999607264867362154420924947143615331059970258675343559596574106707261315149016715782716879969880107360724940635506917851069568012502616221587033323096472862768680013128850045662003551762477397194129675573214660320821177372185183133031945222699208397978617070680215462912125898432179047232312625750831482276081624715781885353371716114686031129534463754728215023185633625705824167464923114796755557347547144627050150384531201357657770914514559106630416663625521710542007292386420683323394830455414133571013248395833649115624256966914140891963845892528674091981728451342032770720901496266209467308061066422883244783274079241102201311397809597954425099982784574023948651219331941488867854784864553487730124437170155416873983388693781404121095910184035935918454673638083422361949344820642798991126387467621821045624524422829045588806431668699810806806464411053861031690348157019133715055490032909350923803365368008898733560155939427307103001721783642103255220777404017805945471948510170402609752674071735949995008310788019554340386818683513914942501659649226234055692442939215541447413242498590096088263326682739613509457825198466553058297779460112413309765665685885952080380521071103484643144566058342750870438580746844219362834531791199915062101454969978370166686612673691703111998762875713441192156751432769768382970584277628679030062578833667047247618377536935944601967894743457552313551269192015657631659356786316323396282870698093426111526859028776915639740146091241291646498212867784376228018298811426323415502707862638631952101090831180846074752060398050720927314645341714146137628722652438639127273828748882507718490264922104333115193392358554860700299631928178101348089172941240776666498556571127704633755588432683485344159842488967942749117524197291103848337038549433059389505586360949223930580224722886566361299459441380510756207460215699809469643563383457246144604732215833095861989198539312678179904942281527119101050954469824004065490625760296810386091884968066294012789750351632249543157329138366569060451222887503879724766444088377287922706844282528053165189044119512399533276697137537953671543610553109259163573437405156384076057301379249602621082635033632082421070848238601804604516854193831549510960684130708335673045322132495805716350009113990685988056489610553158094289736106432560553146964787651171381068165881445963999592117960903046631927136201129154336423509358379927996154129888285837740898577517771299676724024320417874775786419268054367628302216108572425564343797291337926320210561576175573217449593244048409878372471480266590162562576524464162103324214197098780315913346338291155472012017614593590068215104937187716082892989458348632122551319270228842563315267886283074583295583625459074568580033055286180512741284563088317462859178686832270230022137432266278171325175492094335810267556296374425792649486097544804533837497167682973365719806885646483384127135131614249609414389548818369292919988388465327049279831429854473105540405095011087629658459785654625411824141490937021064709389652441720461765412684658933365386404014705667980114472915659438180867275097452816563322368940338660867418351870044039351491444234830420034776450137286274617616375894991803438177175291205426897986632637698660746795013475052173487811852553301810027626395058438068721039395694354014644530415992306842396981528183867386568949490932335130761382283944923978683530528845540973553042778805803319730717766247317484444437653536217790865101635557325084960298404409761675093688148623528721904527442296624837905675029804465856568494100932064321900553387757571624368086663603681149201837943152336123629085295506500588653517300753346544170866878843770512656030378970217000586421188421541392825863024318917458151486899485722216197881069665355393180549087083411017829130868777751887446684117753644179333490040150914482684545190069093520792234708961705132024151127639864085692400646424600341144776837841089855525606616492600515990359923725693971028841079677535805507255431361539102861727004139581514988668764815996810490353279941370225160090957520618587184175703348542396260008794452721867614745098236102403066360231136227059977312247311378608626127641561745445007247003518833544753244459015276855857280889219707760114772833140600510266925043886721417351525380569366213617317175136898845948676978907229976355273350504777750981442974261075421630328878663732456405065096753081912575982450655497222845223116461720154514166800027759365083626798100946201789522462250374956586952927112301676430719240240610078115895711397652800842777100588920909895290358512580428218157326048970308345644497984671795376520713680231969871698958137870236278160552163917063457585414896129534942341577278314564725170351309711691765581894233950389110971112407297400957789614613025988670860309484004786904234678972568343425900017215387975237297851705081959876173850425258235924163183944986042968381053093450153425705936759166535674278508033871614874564547641894663976193135307195380249919667675529158813851633901462843471684309079140515897881064096581488407644218168330891667421931032414046422006089674784946311009696796479854477755905302355686709095794573243421168417433383106037564904587925747197432582864111492542414352846475304410487909704679606676967674753291371824103509053672383274058259343438927913986368713236831830428308073146890811849278405745646297792332854215099741927321236172499459726375617971416176512945824997096835638687405753788054408500505033065011495633032041672859952793120322692660750494556952042397925628669509228179590000590761757863079376501787515466432645573675328941727395512892899080452868323693099753296745451098106721403188252156506070795315535226506718973470158526474948330497860930145028179448315287054435840117740061940506301412182623818336510528257603604088702462316291235672605942052657845310373635191350348494618186852067008265310184852959101653028472741768487465695145839854613682053351104468612346491139297598949262072519171051943273569288143935394143562624336598032550346803749586611241843280411251899924427500242721949985861513906830587695816238167947245515855428594586883916423424496552703686534137187594931617956066570302105869213289462836228753699539091580977112121719928272018719730047187802480172621810595370761180652681019754678414521234577790301172265284402178363483872011752535103534703525394758400266871379459777661894621388943020730197055815415109067913346543967236699932490476908425476680672273422428618416241226264521404892076382971333050470126808371166712795017745693318189368155839846589821679514566454852867430617483456672780456741851207509088183885953730543063974502710787997723294465917731054903020931239732171486602584553894509001131308016677184286865121368297065795995733445381370102130622794538012329360647064055237433986857440688328419068048019869413904643873957394768649554078451380758272239431496458195981627888197507820340553949873596953926143736448848125228734527994944125755102786281511632931225000633318037032454258125191861531770099524212823525605408391773726884303016346991714165068211644939899342424968796652134684179446005114665257917288811550866236541652676815141150302799394828466888610209092851187769876867762939940464426080968359781036374104271428857601932437440181152646699565751523450400998596471773562899815576971020935891839234179578745515010457279335880239018536857415679976761095648247133940139539010901715225938212553592168705777341705817212674545890139009589831149556015693335749780594948149005998102922942393099472539288539835520235589625727113482028248153096992695157799004506669012641259270458251770636201106457116638947651246221974323396197366120964644681125876002489054671859876924789287609798863573330162696945502478647302616747076513318478831199773885274414044217385652700817526436952341231512682306366820243993131123893878274870971541508055933476799106197126380264857542035475767366124208800196473484058301573953582769367501838484536146075805259479089439518747175065469138222373024115197294814928093986731634232994499337515449527147131175044832162751092686380429497219674760194492277493813653076075294857939114850087373493944093016147434631658555963972290068268625497796746526534583341386108859119834359917355576528986703011801038869992745068976405778718038330371766247780932413770744666466578559959077554907263895213671155118635707790312149628926016271427186315361670976843688827565670036924317329655977942794224103651415831246150268000599766194438631171176696782466862091507726916628483174228202125789641862334034540793649390080545159525973202915416487141404368024803824624879093623819577187288392222095060385049439098025114145336790163719160132940969841395649045783147982011709113618560652234395739153461113123859364307505424892802686253082946392687468512984282100103838218238896252458228335098757195099115590656741350995222412832792047317343773353090945860952815260169723655541648634897924183035006527497024852924343273704601406471048889669328662946962900570033016997564395322782344856116963633918208095429707414631244471169459706643705811470433593995467877611813410479008795534284721970631693280810059014895765749799064756197946172527509818287011434676695871982719101625598744256499352980007272963088158078877568943963973941306101144286061902585965406330939745339857097325571559158981002163547827740481934710106649294490539206181917079648558664436668695129344563998275386208812670381141830202980034546179578145709036138873982957457389426668356009958341066315799460856383595164249495910382203042387547653469458579039231747953442582132135508591429948156179003773560833753703431056942331773691543137432843643127210632171971882369427279296223724923367358160438147325751742424269872670697494252858680052107648031180607287559652455642702075684429579170234757562776246864826070272608071473351416510304535895221902677113048632227254355033223174208280269514286724596518285480384581667269571956322620840592842866627512423268205558686557986602446694536932575649234558639399775115865747276441390531889925696907959591372138248350908910379714251509484458178948778343566082609083254911740436208361502702382426643056237051551504889744779385992831138341898095275967882803204134842750659303437438648531924218508262846624635175343133199217945431516334457595904482888221540798810237062035111002587899401614348745359885250016719568386684661319272310697336419441063484024987674940643737202019526528062229934958669247560157946945946917016474542648217884576246984255897834135190394257920647896585061704975847171998653136312053999764564550447323687980028017141428769164104922062491962748808465305978668699051671523314923596505426835260256585482381977656601270058164504252370465842813460094127158980155323642968787618232602898372539248633129411790282764745186011169672543844036927127627738594253272854787967129448504471166176800889461331355331245268151619098068161060532318380417657201553117938330040292241346042765089330168068737284198143177716434879430695917966341892582871992253218488091723690605323515598797761980390876786614817217302767654168668158066113421059731433685750540705247618323505612159816712708975059413687220980701315778266120735180305568584109658958378205413242237219029685417794557151470556893620635398447839314695644001795514250835360153559979887363532025908634960587265694891090534821527049335432917608601444192354004331260606047546903669812191549522027410651936124437351218384582412824558564824796215580427558627905528302838095368911974248465676140451212586478392494184204005028779478183690858433242428827771228451081771366478614039990802966048663481619984131093864308308385046916024251805864724705303534001491231865807756326049523717306435227143980216045512642801657413858864953980525361560487273174706059416294581124087387483658707909630121777045684841278216606784761180136315370906656752799079715686611999208964776110626466022888703146803090141728377314422064665224659044770424622619972033646316597006528467964572517313387682896244028977830471361619712389414270748013917985035951469292324510382302880719392094348636679177746437604398048946633858966908224720642447946130961568411176277896550679028407421663988475623516396263291885530621592589085778715881003446661681343755501146733976034504409907892896123716596015763406856569916705591789824097490473849999685850974328716893008819019568405445710904458375617572061945722678597162999496248152534650170080401934378115804564084331462185399022059290746590476281397094193625830286537880466647872392070298369204139209620184779656318580145445126710852712279336385991319965254452496848456238010694950724901882311541011931724805782089006782442777314665240685338070068226001884417779595579252356583505631321642043778430027041609090688854248114487885464903014155021287896456007898733066220988013370250520454899855640418368742624061744854715709787598763733948595074720752420530127770283850630141537510843375389469708139161783374006750649367256441838774036562121392785634667147641284924224420987111858541930757475556848166896970297537033545624327141685346837171843333664273998691967114319550989239878386687993618624041964204868205166212911231303743964681442044307521478866908368104882301394546787413338601092214110572001242007466489326598573830858978348105175508696442388108445861628777391995768126177477988043000083399568167174907436879886140483885489176220267733401054561149070622068228855580277963486199886802494385084418031262550100553882603327000704058819188784408183407427808323993218872196945501519535485102452111431941885219305446462616237450284320451969462931498164029841375572305508958858019759824359216637644087444717716410433901453715846408514610327295219480351451449184617132199072380135709136802797499164244169001809461010119420438905521621856833051685912976254042839420315749261131332136054687144046339956646101092871747415292604947059319419810605890000091757205912517762193327010878659540546736336362840949474693403205409862938961673329575078206741461150714568531448545249726017988345717049479312097345181072873533120890961614012924739887827044946392834274097634694755886926189906933592478351388929034055713734086526934686461900428827657981933942943924823153496517284408668500005995932404273375827934177585868728965998047952567726896716528466434635685365927872492962381362960359966257881641606426078699118157203230681832847944794842527006763728604774021572587872579180780156881956696860949802681899997305708045488552278288975140584409193313161411985512871707435444470760337584011006564837626074753046785155272373883379655111093778366803281419354293226348158257434098303640814235863926554928253691180872070589343836305494454637909650728954579151204381838319743672085749142969828585410587060457572665386105686752184343053295718949415030068426193302317394629949004644399246821408933050992928124405210326422923003494604950125414079616692993329086730868407970333193234280650455863066128589485061807057759322382363927373865441052883189392539883331706944977276189580118553139312436091724759052571600750818257080162100805770209154135839104655960261664139683460871701512543222549383519544986637299421601714613716394367133582859881923411502864770732111330699653232362720604361226703010391411227718817807964842903932238913864936751905712678762315079263084482924045272807958832723184193250628953813451388365577624264353584219502838506429982934784364932799222053028826633958120627486879031556032057071391312409776711206220872643619731421010275790372776243424908267791372083287595619375559750958443369815257173064202735289318377061159565303803384620691938408887702036142942457977479830635085204864745801674731731182742394436427021342799403131310870459072791190501988711281802984677757334959744288526409350264814955662052218735764864934812626963594743269680915861523969491535250835570312180571613649536719538841735727373535126204153110115614091982294519088849862670356327573494334155035908244594755394967983587520167325029947541485941753376516686166754057122177311896307712591642129235485976688130607596312625423384272208791932462491405542265544269483546189018666576865627731786779151487608592596421459457368645623004889771630660788454880754305498203249266223925303395611552657431479466748383433219019146857218954408975869223624403544178165633301739601794239966194562805301093722065896277023943498187030109182354248946519252990632948616826879269991462716185848772635865701744070687886265284572902556218578626614614031357556258172682931554171044993325683514807988291849993439374387892370503178832530686246066692262927642124439320110229795169577859255005797397771291744051612076591302027244427878849171675864317572833967069920666451584807932141529008694892849066615587328052416436572233386026028952659467086249987751267220075045800539832326889012666288208236120852788314348396737540627160723060401297679880022227171862649105480100061285142510970034716950821502646305458164656453504128548155454982135244983782536911975788589851098378940302471510682882347156617070841553699800711925335718737946623640192511872088201069140347413190066899219626111498649779705343419539096140341171527057011794175863199579615061961614300863304373675954612302670174495459902484420266355454203903949678367785540942252988212169518085634361621589333052172823781346843231315579395394948874312965592003831641672680458406229458517260370946200720254329602151731275269271568470596209438479420423591567823011775118947297448192526152603556635240551050287176353284138927383768879185279170894902581014554352848440186608620371531965485200866755095646899429309152558079199933021584416961555589949575794658249767191138811506580225886377553318296357539623287338495531516000716735549538356198095421391205546064677603092936714226093419171744168389069737718850909889387034119987363814067750651255667617924860015435616151218395209428813395891576206064646467107474270244094311234759567474180540149183517242221378415346501283900754082456716526849889897019309851769035568075005145883060966380032168594718004029510367901619187530115894890726854287746527901684587355272652563522491182576529208871801661191214303729779879209831228496570271059327267473852081371239347587010306020172658373060174974111847164635344312910821747057197957118042454083454503061323474205120655475113713220608573650436779560403238275819023646132740022936633229317424587261730904647007383709437088569396064956995102443697493672446007449479909533148269331302146121418298434502090584472996325826294593040059978943443244661249964147733619936607679664054400693345361177924474194944497374729034598966965586333767762148671544670990270716736313714119602539576409980789836071898753904844643414155532006890822816899875393220211642083234277723929117168963236681623804182570325037783600082332173732738308828685102661845778516624200758110836109302699239284463552324310294238176291374533539710062488490772143995864286764550600083063511503704736826601742216910632114706168874341933798768468589907200892095459704445468840123357731566806572126848353539230416117722053549566570719939990493420440847191498006729872537262025934167768186578122667920458096681373976746957047903822927228660521586018139495267184925910387704750602487911429568957171631256560594975672181368763574526654511075130122027773596125104372277546912669451202698796642833786278389889702417267315710388175589857746245733235570510668832519917867513146067730654882767044184862868294408259147801044912789011951516353913277558524557071795410191716945582131239920877826561442026401250047358634053584202557600906631236380966524561237916646886065933812412310538969176947854900217882919931714978511286489577797621436444662829721459796709833044695526127747965937072640698689340322940856440767080577585102120618383724565376170448521906608881582628434070157882082360954504375268803096857105214123323495954497525980176037433999294433537662839673252219148393224940919278831270815358637466961936806667862464032058682032404029590439626389375654916740688417031551444598861079402598820112901226600858576846976762377404089301484876328287043758774106685399110944702117846091567047512784863298475766726051814387634566093563991923175445097105203365266820193351281737336121970953934273344007895849512344772242177331069819015173537267086064950629028242023166533434553173919751270282451664011619575878015773808496141928926148435222416916572037844854440813639870364634320495146152663764773487407463919873475656248898545157940549761768367138546952869654656000621681880136012187349613902226659245054973471460718124362494194712611567942898924129053279044516315922599894285553040058046165141895742685150311222647252006152442877403318789002527369671062833625475054107245033534579043977334858585833157012324954981310907106488656249989864673613439822821969484014666181788832943924200236171209065251882969990010669385440255130299503015255059472669194263336611072106833635676221389088823579609115501561035472425636636264744404834013477013331594307119072957912838367074678387613240439781680806391886708621320049509523441576763114724184688348449892756060535122359639401161039884563256041579913125621450875905879473528094838715056930523226918109865225514803466722267006632036024667358249843760662437817389648979898876463547080571957483323061805537891874574189208477002495525901409809068676826802692444007483878647093345304077566550568299017487680068970313066332810028708338118777589352162485133976591497286476346426687240034658587174191184680077428696173698633307272224752205604056035124120328733817901711474676416349091673105503560568776047719593934240600343618764753964237663426043218794092936763616639783535098266705385930625792993318114753963906874656198163275224131773531734966287095645297781400736600209568399495874146945536627859140135087282245146036020108786779429530408618405350396125161284060481521344585218553551017196503376870396894496766591990728440307090656008826053397756688901707124063738627170614477292958678441098746257871246165285161089011318328638574356978825274355001122348653891532248310393884271011444428496382002226806129134612335911933138084186189840375863514112673480571143673999643662646031012148400265748808713767104147567522511139807530328423172996591381711987841341348296101804834320409528365841938765657556856249607682958802009099233880757496872625855416013847272466093992037761012755412780135141831697579600470670833880106503340215781274091660451797387414424189207726145875513655270128571912067063441997636947980550062577082867169851449330332388048479973118095647485283386739414806304903051105768339705042786068748433451111924948959015009970937394284608572424969422186926402616484217219920924993750893745922443550880746018909772521055683711483266011104311173107568191387068952538311230230460729900087431386381227502348190362684715043022275887138920746360021405806157345294556663559077925975241875272910321897571570576384423461691047977030580876041756080753629445943802604079777134410168297592367255390880501756034229978758394409170719680218028249867260238832686536954204113849250120672510236001535422856141439533468475118325795206308069976548517303123531882995595755460152908964056838134996638075206219325405893908354725378250585975590776896971133868178811654804819274150722510094030281905193340812773298953124901993553485890394228986266372105104438048902943646987430216693007135094003816690319756574391281996697645826334250745413623678578665437633087862486439343932192975285089684027443162150190586972126079477642230093036011390199434307626793749824179568471704433718442321692327962151420726061879349766935623613803922623161913779436489421618631306599229088397421732772213970518607320265165147702433581459983286743688955657693095230410049683122268153500100705036811439251424734557068962083084564570966071374728854144794694054055345257138795077932298539891622129702383945581798545112637160307164492685958789395596967833320268779746874733835195993520972614066178019868544851143454223242395184013798144451308485880374960605060813902963656365247102806318617299453948672943460892084872150073407012683597684685793659756572684110058376473167247764730854219628467350541527830840768931563651082318161953500053866570020138084066344685328061768326899041689149921402711707224583518509768311432203311131586107825292402512680771496085331854612819051806192516112569294755713370695720321199330256252074769543030248906053617926243526107364493285919661213319285402893097558646000256304790961471662951311813185815376833630087027571995323886754685196478608220788659988317723070949121380471336349878325209962647902458797483960513690024971343345912486524930877192327115152270775608605574798416494150912245886325839470067820592000848325272969596487141352423827859657902870159096531594439306170386566774231979273841076075440199545724659394791779756966510654550583985149366747344791762067074131538931051753786182174382779595738534893534171539366222064811687628455105415895118318468605351148122764709628689350513245964833126824062677474636406625564130004019571291564683830313453692281388112197553347746690861320751867426806513023453224851829827132529638006996980265672504387275877736952878403300771077698551129499119187410923481552703420928194646860088442883015460837450980680558275429692701892784749666356914839003250753016216631598151637196713989549289275377600231134353625974886050933704424563736433709837543413266594477136171752376828262054748067836423990344633695943760467047073407259683885990837700712409010739409385253388942551998734708950724009785081864554025597689348254641207224536376569407628055643868387155829211937238458652061343563137550636114095422950251889291624553289456176626552208076946981595905608945374021188364633586920298560671730085403527582792413631108252556817373001188488368793318164313295824211933020404166724659042237227571773941194980721695120879978745681125373941187749306838975681066415750255121357333950112926796273298694743645009036380504912367132734490268378962021380925286544233204823869144283268120942127136924346407741419665236455598835218760272814249803459228130967272585948448852272654206664965669136985151363541105931976581648657453502360126689796061709850695834412057637000082733579782059074405926432000101743915761120265528003296592089040334413009167090852641862399239982151158019854381973326351094958235986406388192868057643696245779165684784176124521270130039838295741295056727920554965067463673182319334067971619329223917108075537868311997974144110238979156322511221122782536039235134846942227516028949521826136975524276062594149344736086121065724151763750649547537084025406452163146981523102865331264509605284674960652268896935687559173907733950057307801180465191758962545904134214739284371121560811467811624628360180826052388636132074606283736883266279287521729203595802817512406775263067660592550519714473193713221565679389033210825980727509970328146024412950724921866974968105892649408986444116829530632415359399374036036235239205440204664302610994212435070618607974983441289722327370451977922831090703267701559904624596362783517548469000851328741280540831307364459899908978947880571123696218641091352729532205120396422432084948782969482023341351022787766200788237822098609899204779147030240333582841541267689705454551576115259486809659669110995778179907751360530555234227376497444608095001597639812108914930701118500526240138786001358270380070396127112074420050328810650572395965520713928969343749666530527632741071476519471426410351697404971365334449475385490657026803876750316535843414298726893883049154599546563426111081136047804084627225568303207880320329725120850850710061747606020704275352968215975191341656005759101566709775472777711892485469317026371741750388553721784793075145490951306760993404149542564919271644630593643722024604431259002163031737949153154074849315257081261883157354468826614565909371786751691850015726138322330738065942842147756434722018704952008076685081526648155805413994353859987088831642763102558467867680579094136976459344576618291697806663322707335570656539931829498896240071319095804216822725831303844169716248361469034325587954193407576928381295168960734813991487606807801801003615753533010992119110308909921086760373140968205637212166283015076853795753087849098953182009463914351754918449482996393442439822503068454821502543361443353024386855884292036007720025196172756502493457590400578056183079883042516946816635349373261514931474014575039517261632539222337270177292553789397915104524980634076013771433120970500948304280952180750580496527528784412575253280324482200165568948946596987025479890992622887549887242970697744626867425492163459263889456119127381091237782585626585248428300992548686782684012375489438425332628670871176783038312815211166174751186227807029088646218040506642141899312476545714337967427830362958867488929196889295192924619587991267277651932865666906042685941500078932270798463442289217673369388285010217230850293236489297096303583084763237435665507364738606052627117093402606669220725510750945157091710236934006955693318164710077777400772412146653194181971977030528400698781982391405543814316642970584682755950221062312464938239093662467844259301434289028465116479992564077333187816531172158594908726939125345171955084831793280703565390241066493451934422606845928063551660636294269584598327702689530744315930726561825143220150369125261499981894878026743802241019882497225413443502479016494368829156307051483251847363612095752735082539195376579378684554958327134397586678449285865731476770757589726500364176351323229698530323313095832832869710201667690139821412995219428045008382701322962826237740482804077619452331092224449976901199397877810289415301326767040025300263825689958908845417553298046806586272949798812143347720707806663137334196608727155492708129434312511117150918618260924204725109600879349952242527327032202777268207567202465953882023726527101843058423655851185857458898995259346945801085869752205636113796969314013041193563436134433452676257192320165986232427156187449355754380374010354156698825294786636277405557751378301845159254852311097471481966706797444112485944621560911484816923073810080047362004672370770628404035733289456023611109387162731332947218009884639102532789410964071998689180849113503077056216621110881985812771035310930920036870979714704161515451691452666430513925140350036722256094969046631963807915344725219207147913253045851728368571401151322173641295312249062273410851311839157929155412325399719206339569599300785771567918326968222620551617777273583774992912130147574684055520839685982165725761748828386356889463637239718555884383844481458621551345128217709234953859241874493472429078696371115536432469005256937198506579599730027678573528055402494071861879975300907671679511089252339005339973069269879110950049615866953982039213272845152747832419616696989671599268799224595337761894321703072647075718339946313081838836060453718443119718772654068258926446943874164555904803609038430977338162132879797844494312862543258620608922489121364318973695494336603963530477592893289905197796616114760482976266029289402318000835672079392577794098597187208011812167636164081815204707545127379363334356621457315549479411693194403222591186284462095154548330560990023440330525918796948969947379826245790992373601412306984280079127057528848137760635343887252343459716032644816979058466953074296665433137543541546468441668826069748484853400757617162640267165899385893852008236797567325187405225782834183481524538980714410787237645118104354899616258887190274707415903632945678776788557937062400480875569061241608929212247191146232991747838917219857246475175589702936981176430608803634001586261879220428675019858422074436396070790393843838055349168737962230893473026278681724579931463088155735310558498091696160895872338345867417561204922709249097326603733569695495846020955543203839055790616971999657409758797183279123411869522907532034199531327280842165562124683874548952702026275888320023144221810672217987768938487918837478692980239458656352501103448474739330613841194600853999124170370516014673160611660092713641818773491479125717875073255156210514543163742607534134597717121573729541786374054947016878608968219528335088154621833116793438978516419614531964807174117983084022124494615808720039076906888802135329275666731651173110536752924312259254162672736667405528377596818784797897343857706858228598690893681752474905048118000117069408451996031084266993991093958132890676410927077442613603194053665119282755031937122534596508788801549145098980057411604476103655414868532689348201279147657468164147887048153300756224779831966127111620352358526689961547095912409965449863569030119757838170276442302198995933346657175174261989118411661448074293269048660381518150664571738011506698613033245719970228963838961547907132943524726947681737354891348471424058404841389105978709847698267561526301966386980415613767829961454266243867372145951399101397813003409468104990777951777466054394058911113917155188957570142350296008545053683458641602998807830159495849992667771704203487518570245769296308904287008788921025789460774484186726772343551047673255691596861608010282205956922279806896232394610844075916574253758483628109423496313117797118854747943819237088915852494819660120105795655246299807542714395296386885922266466126648761597947084421906472635384274920672585292382197779968206828381557330483181490386719665274192330497371182173706342619447373767159462638642998040982174856946145923862230472599845146718386856805320126012505798892487807796210549779225213049759114269567655253555558233958056916697906526548942738908704941589797666563562652850352616636934175055402486645049061114891851758715053451628498973919077292300761829915622252041404591206518472394309082477985267527740447445371517497707086900982550636132169282015199434995076329907648972502176759460482732768030820596936204599150015680476162454147812860629890170846309829685947926725991850106569533552619459261698808692599189523915650011142808504195508284163608314340918268365503530163655539864520913402788746744101561978127748870470440881229394887657641037835471445305036065746418433808686456057493612416802123704035705340513061496733015689879387858192103178763713754553553739970574562203729533852655457353050120989941279117977168374326217589025451996279486865060640185587673929434291399964499001955730820698460620619085131275581435018171375625124992264662919422723477126612376251089857070705544951549327351855488357404715987142026297384952006261449182173751928125213405568735911416398802539584859919277797056844388987688875113163128744630744390987816959847372627791782601348943602384240959464287300825873674097373367395990721893588389203960944487901033907396381213077468259985692211665030500498077163636679610985712985978330791907077365116043775042721066409500820361508794652567942106161968778732960740545571700306678566888120746875102303219906531279045298596881964908836416798021329475967172734596603682076623209063815660135961884895066050471506214686056431487644455457247159273153522016572307707185582255605473717533466739624980831126394413360047972034137292319448447892816698750071470201336117114440804549353692752647704807044539991739039345860834211373998220529384741164181255354512751928404134436097087384195296473514874475921732355650675181492852082101443010305574608612718085910289524926353391754211763245433638984901133757850652136131878630087309185600746498956695662605477804084816584819794761822759369008825350452051652525963791611974528681631550454425346172995302556232555721815068924818399809965643528229266098997359361203433176836344455184935483094139877810512215336173824562320587597271740897437460966459495464344299967596350241943727740645292915066486493951197244724238295676842446377937531037391725331733468988940880953969565133294648265588071810364938308278757313932900226488741960993676847836253160312443615942890297869689830392093370442263810643316878243002593781594648434676839332043697313187401734908570975696807225616866028459025350324777115668315401235686065396912141211730837240306616245288618370187300689984322982960777092501698776944353979518052159885502157671922169731515753729612567861445481032132888651449694547850942223776052467427080228683910571876548805692280682606075079931253202317911092469487661431548133084146091748099844162308307021901153893517769922521555048586706090689764033514807477755977163799498720282063732038510929638769245812030672149573519302615931553166412653440630622593355099738522288193534661692300464387763328470626735490033781305568291466910940486309954862624826462501004736364643873552311161516618751667648595657740473708634392324720895548884387142095387720810119454404275347106565783392964973686222817750397095492043663106624865504621477161333656018583396364513201576479241357350899839481942108180718876050796170631304714768538531287720698140636821839721845399209744829211706533599717650890086098978489478269772217472972548190500333755464799813060500692274658963006673276078048051893835284989740018515548304317502488752464955517836015278353971085849802993021087222365331325898079529634388809683929757092426658319685925054617708118257174320374375213685442182876970477458729409403258265709831126406569147905528926182712186973554045466214948624995671336782867790432548546651339964143029820580998283418547400508465643671504437720111306585085047971968624275055100331428655740312383200981694414692627854368207711055644125977909317345747573779441901037275497438984638225690165692230936809625052096456311343754941088241015348226439784723647985202379743264132406567378947456712708902410326038378511663932467428050715640496834145748323900248326878306134209944086377439203986213077239418605551291404265781186480534442673915375562119352583470646591654817589633467279666462427525110406780616291967779700678084275569663751106876303326928990464308639772843951519204985938570202204633951389452352269203037548127344032647055050450479064748719092909319574831761079584325907770579441814792159809920360687316681195013545359336503740089750454271439628906302028407432748929365152423966489809293012798615971713436399593369844120043224709971222966212280349982140943426910562029207997450562017432843744379060512295428186686225451434888592353923582817643033442296910350881147638978928102219582067084237203111686415191210002291806980317658121230589692165296976272529628427751898497395199273356941352905042643702124158966786286832163161625368135960394978048493154686346328229426512631614473615154137284768028852624475624107599811246485520923822937592760495355123367920329461225270001542895108013226714898811051591415781715042640504277071900797083793493518310943509964295302806104931385865195735945191530211501923157233861791820102419925416726946042710056040243227103143747497249095153736312178329916536811327110779413065289408310997114281902994572781567442220197286547549091624007797058523922826998183273972025107860738497075849446609037645684049007417587146563887068608362777325077473934969831626241090017784348548097854443553429670753783650915147852992447000237997728226628617439196646974993490945683925969789329163073409716773075789890478400439318057046960395001616716263622647872321620819409354790220998370423131074387199941674669509805424672307864068504389480895348373510019939975138400976256919221313932775253951214849564724854672475779605546647192843874965733248357896143956322053491241658548134299181653215021006784892571384195587407496862980870475636990465686889237741159469250649795564356475463448340079651695629652311093286193118081348372034833926623312577401122016726559011531936035512477818210941435146264874841370737599890960675079898587097179986307860670410336013970956149405062085216939628739788303048178044962654681036886439472772313752332092974185318020081586388655223112645670942554384360451093145203082534738501990936684536706073274677895678200162518523607572626385107970129164375161016437257812924679721206246317981074881125966707067692351207797589789056207992094523579359675875446512482782998539578733619292741613808272682138700805745351801266405547683560229841253129119916444087448918246183983559541529668929241576768382130692833961900250865267431364542508837215782528071608594396913131138245577612121934083489139164220972752175218031843329411630646702838328930246203366978448325031127654874756291810716316856518484916248485758125875698619848921396542104829266187118353891078258713096065185110780131539801023829854803156855541044931196608805114863451836297236092717981738620882901361432027710314804678194960132610341242210252411308426490894042036523486157130567885852842864526337153443297708002876717655434203296498013814813798267193083449291103909281970729769625290783278990647477139439361976254712087386632960382711354123283622378061435775379775106909572214422419303635855874224092613893207626308448751156886340685556778386874879136910872721838394842613464397153299710084581210711740941660714727506118293267780448565794624500115048896265702014308712225783111873112630301446088101300146271233299128588278429111045216620893974866522900007742700757154102345596952272002541971520417751108315172357747279889340526075899400707218328587420113194581425703468484763534715393667797532968920757186024839690567347368818169781677487938609723866162692312854930151096606281037195462799343881218981661314266253362860842950426911672390637084023161276853698378029505403390342324234709702805538882152804783867092705950411228276339984885997458125997115499611678622290195161550228517426361225273499732882930898907630581243533122272177124090278325788591408219006042249461453189116979761328123046808355335169496766016036615058569605650352638649041147917897823566839220640558964261851008933303019462267510236400830297934380684647334910047782070085412572893077254183464992569448874227979714762947145691608889777948169647161651226899835946221233537504953003774154687791241438004808225951543678854025646391351162527357933915858418385707750896331520515303606773155024901077248284446732090262699330378650416585713829947143177287276381199287661890848495954703279224219686374179559370173176121511838846511533098068376268453661557426823707899839233496345300982536211749536249564724063862084455772766839356193135444509405021691366295236661953562570363289411660690633128929930790551413207786425597997169303636079134014092607937481649547054763441641060905400663588584513442514594223688429955061707526912069039133763692798278392159788777840219111799802478313227492173724286110288789214805784740796407565733064780300131719692436315998678446300739576278966142481798649998243555362406713994106569066670825778700508294140873416697732139244207128794165592395433114875074092951019132713505101193131079550745929386048883629827069908836343150516922993800043187423287129265883573813996506282414689079148394488667785772371844705235556922878571669725589146914180467123618833364832975456346581144429142131804172908415248937705876534169940160215652769013736277137755930389944260842864299223558385265696114767708083735593065042107864406078612680888277934247936138787515681295161120397937387446942254138598105578199470682798180925001028025846174747975039136178698010252746389840430109562058452710776767442328725084775208369647844207120603757237048742241549142216487285385249609556001763520701456406958214663950361488723992703407104786844086638164431499929504419421396466189328011389589184437165860972541856358405564465787983855953766333574645481180215200103306324337318551144126848040958802021471235543277159029839860788799984931371403558273169368493463592914478519453199675177710681293987172022032227923482664506822627292158205527454930218260983354902190506510952444804320299888543277683150749593929547438927526958845043767788903179598699953700843365443188212585753643490736968035703881168936040381531194979497204739462740737554101557227793348872675334131818696523786743253068117527470383355934448233979669288519803588263914891244344512416628860351361425777867880289235747652228455484426285672748176517503313605370439434018693764034683476248283117366933317313907990657933274605514455379722250631548212474324267749862456370027480187785547182241949686687292873810623572888609475752617804791539686451922815304467439551603755740517912672586938642095504529553480178145366008114735734509621600594882164579523130125160896689442976437234561625867167476840253474566321629911731618401466856981208607398679781133224276829209797747275657280466603460533997383694203291122261370263847546440876525439877402891691078280851951627297075714006161931396805450072934821221388274855574467955299810920588168829353895228861983128158938842919475796090203228097782519557391939539176517866971043662417359074763444820283494738609850471894707360579002055647689107327704638665401547655355509260059197780475391527914601516068054796830117240503698363609513789781371624065149724229510578939260219341004020025525359833306716057270968616157583668094495761680259460927395295933924850595765934480144933151834555320969778116346828096239916647920395393396052094656095238550331592409422842416367770024352258217399798291235301365874674809470515834039425705652162355063889699668026915191082581975620607823076058955893588934117849826179738069935440788299006398255772450584054989231502399472142342169065730671457703640396237949117826304263902847692823338649951829773578464160566555554439852311080748719825044098913789330109990096549792883750990102855624304345275537890035366722700466870020998253359237686016571738059075074274210098790225905366062163588525746856632369083395639651200192081300207990761589282729861605058018303189471908910348845634874732509069953178383807818175495307093712166737468194256268880671769263193725863967401455421828592042613083844567832613436562528942345023312695666733497143385991653889685744777764301284269634563782671932729460943475351281374859343430807051472002063833454190746655877365068956324216361668748705375158576084583360302243416794699654250308086669559007204166530597033029190845298243892932340324988744314781601041777197889574158248805477663212141594411770125062978046126006829364525826860150121939768516254301087062736119045243429154991972225904094917178626367890643139777457976749038963538854455799679193666939014149848029366262383410893545119985540885630671590524773261607442829125758359269117416787623684008474312598645815161899072932112080181526023496618722670108155016330162502245266310648040601816842212596192512420763404812137128347557051088129077484192941152608090190541677101226978311245286561649252366423088882087129523599113945403401108485845936393231630123152809786321124665760244265139678682684663520145973659046212130050106131883951522452816481038697877553311718403457113239316524116767847275451033827197622705009050440465004708598492182630620454688986277449901668462167022017602510224914561905124166743005169653468192069455543645475585763951721259206964034029987053495841433236420207202695857915467881433420851984251718091850627096062345969823624211477929830027006301018858116958575818163685614285485297985428507163969742469138138448911569831460116413807494980636321672767878421336541256936828904312174335793324365373599216185885105835882766727032324556482767330992124564965290327471402112334436814097035970550869594905737216788119950456879266450254810588443800897042056472892401369543109177212502182462470243361149205075250451583221104764006875890802739842519127461534980801631841859514237928955608376229138527351983271972276450424349942802060153649170101543382978295288062638747624645577706196633744491145019732929107035448927206582592187034060937135099451316378454790095728619224802642842238506913034160518419737962067789318429151256992076963676302649677688304888586640042209040884797583353215702541759889717779664803035822478417340578017913322756706545954119213101717104138383931259163881500105368820080097457041759300882513792527548646660544232847959839583653432272767894124153292653959127075257452422897330906437530345695545032728941153658583037283835347638584892612355724616463707119958978896253647810047586422388214799005427492344246511321219180524680030392181268585221866932759064015474916519287517186554821184316312764362845010760862622759404078372798450463839186200494511644521401390994348312900750472080167729779481007436883360549646094739214633345693463655789986683817558617046185702972853184701797449333217826184988441450472719216925068943901921330478128225816606646146745305768414519692171842793711103464921844498959893934985123827054279153915789699949669844224932860312619092949433247164138622492047228122682382378472109303933255565017240468147115214115871949646938668357656973495172646709537993690878194080739988053899951867728108209523876453305777997506649114473094347923290236756733055425525141038585057276236033110826209119049290337942091052049012338587005501535349516024167639487357793713394070306560507791173672971210098359534357041403611093032392583114503499304445550689285653526473136731736331482831547862699998945602242865683300830001279961226586640583036334233497075769205668322801714679755243354032328806292353282821575329235760936553341821929126982847132173499867289560927929759478503223383568469572983804494421360593396255242164051355932601613313724449593493016271024851016084466356550435107525119695091214163697985157704103394644011726373884389611630820527664693733504870383856761713710719397510165881664886076007249180877940341178945963453162242655824826986182100747556925101309292270035241734585278074544161288941368289919464891351038671348838168380007707655360619291938898380093784073874352594797412461905499094208897891151460969658465546941826190847223302084759739666227021347593635469306871331735392884818705135026559067969952183820892499804577318406677301478985467652422764693905318615879789470468847847361645251393624827690967508836477758457983771228580667918402369392091046510899839802554495261665539154550338204511042046591770360334126080617397703731967560207187374232324608996869700942871747487720040271551918086890320239846312583878608398854042076903239352980825028028710791221799554702523700063914816598368282185493940025253777240476551290496019353568839492364068797067520403061575704305586586810907629074572062219611455668335026538855600133092558433540691075474647194230572135514805494341137048160557426187176122761176068531906412890690741890200413820272917194611542528947465872099065647156262528439621440223462065534993027107372179785857133140196519585253955875573138967601649395612687190667191402400660715222625942958051185798761034370455304969996217894359294046398590819850133190674046197967308273032813869328628149355488312435631362637361369947305342723956861363740235193547077529253858022860586476121079787785129039103611185483845741808964030773386391974057077633292465987462938489344582578809406492639543368560913050260354286234214303349231626828595834533948130521914528097565596628136909586169947839125986318773396683838830467713824781487335149697052529362334748822221266684523791020078460850300100803132371752839719489639072855910768157485819400649107607986882257850882009913875967901989203069343813065618200721340324629282742945529141926610517535229997035620369911041006713783305591060621915396200174372390784380071334745510466522920132772853372067446491314889714824215450619641125341764229026986907091605345345488234600207112296190503642230865591067534342517690353953792201485159815294381489961810086611511262253410173381937758990340224121384024007513352072933005173140306614192222008331121490620328303988804915806336671132309362519392084551208708545153280905582064237580922766987196645348039452552502509571254849916990958666168140413163484152657380836666436503330418948446900054138936334584486343884855257422706896199511169853090453499305642136872587939606585383703701963445020599833749309385534651349145617409803805302923387254842765757790288237418297906802916826527548075753175725857611634737246406423303775076789982755282360881184027030012176600013647866407594069724040508773427684894725367441972810293142638669272957643159061080138718325980828408240423484713008550449874602583830662343477557209786684547186817333951231875282839709648252996924348819498801805528795007169379023984847107115249875692638040666931399761084400260912464342478686353490670297504759512128421080853650616453579631712728705550905421689342640990828715895130387010116643440311357225551102321678325192634746381123421603440341365271441596413409616525921045848766200203341090036914906289709767344581891719448657473860807504923322892215293535965688713846291568105619051781530917367388720489469246994990652598776640577552303802826369525125968864985885871272011787428771760833366687104129615646284808170856696375584138396131612211238002375822064870280209366011229324535012230979515052646331294182786618657905674415035424762847035272582733761845847477673490873638885550782515603615299398011415459904505190696459549150373509097491121608049812214047815325111083136084851706450801879108754824850186431796432975415250494609218968028497466647375124401815844162759340423630481061000599672748899434416191380407570012959691321433769149239645696465393726714911569655448749056613665566430586618315611200446153025790988931084262190577654140277844643034105288428846621885690669315641542855844664687445385539497721404180697520077637107970730729434994464722918761522919421816233255170639984296678511601732027552196393290929725306821541240888458509945462112385489305593730595365126692798214493423420489787128962871818097520440197127487547319103460973183057154609824419961346329552037891187937409971567951391002216396277259625285467823614118537197407119080760113864896208156351674515199222382521334521335159666429959633378479664840158755544489914644793173864012941377753582932963235041514870624765272628600684423913527388347507993276779423392691529745092989723150519824910582660518648127807516377180190037805808409099285652463717121660019174793027442733592165856358403769507365962813278876812919109929672625510675942999586711323440241734194358393448815357736148822255166637037669126405167626248480614304775340167911987477886006627825177578262483482916844168181214426124158270984653169586288434515706136070512383817629275929228016170298111380435821173457308050464477677480639219421779574028375244873768140061246871064975198895842554219072351038178276849542775209503670202730500040790006651146948204182068704445618353923999431524245388051253241242845980038326236626108347801408078794850441427435392270300020605888074725703389645100985626960157137883236453852280507171027757407858903592370315356460424866275243424613190226364958832334145363996239137752414816774769425367545211021670012204273009257950033557016955480483292430316642898466321261648196860258561595198920429298308804665062754544441956494621506419531433283367811545846685342138256426722317525024047218825747634956093484526915911563979889468652589423075268686803648303395439479224040994271231149340344841105054286570631223882190803411298234143041894394476022403442455680054551415053306338577149418211398384542524958049283656980351043212810873048823146734071680907735716826061684051609428553385705099518009112141160245295869797422113928678737935226284195051448110558441677522305390703060654488535251845033445366089108656033442007650174171768745510086863982293972229949113291369703073519678113685512684226945379812225332557893353215031902668416193157599296100517060581440451767978780474958072325582311823087312225453258361045835956913055722019505438331378999743482327775021507010231221081149661484455857027772465114786446087231167584569436351225526700889354175704902744863684970078543181499400424308143119745771280318060049981933667915537042119391097206686663006186121087563481313989568537454785733393329260659815919288769008870024374015839516668561869478118770097155622928079561127277092052446316104803754564696105609088259189635997387821764024997328201163385538359434099786443920719337373088395325022258084317575724425170860638283336305829626989182662218725989881667752585564912083475890564908082294180223373544967312498371648829424146039752478020003622949252516000502479761058858470863563710879851813325685738971247405006834917930815437588276230567329700284223909931243677457418902374557933825785572100918893556999190056326565040504218397072855400848065481676237901387603654683898853949949184948538852946285141373650559361013524794117880329879198763739177626601269221941062703747197779270538970201404093002683325375442092389687221181687167085663041626186470447040198017739689596753691094060601661976812862929515789440083968334581337039981972131244345680185341973312461083672550807251006099253858048842706475075264183903557464323660438839981234403193588973541657758241979735043940821623022622360078028519497519681638662237006889567909414089271865139359115693022697399248971854618086215333268565902176513447497808564617067094785308880797728516760367637756895609643836083103834590663492174441566537622051361879101787204329494219766903712419728982240723589020948746713639673048238050241616861531225364573078404453119581875426546611144817584973879387299463816512771652079376777016842776313349654158998701928314138255086487943779714415698293118156264003617288827974131091536184148014748171593675909372862475659406478852902336505947448759920746525728308618921034305690361921745276486605818427731327153757674727293116005500890272763837555889195511381917031334311314044002182799510487662372596404417748696319089299264676143564604866656754382793100993770967821270821078130706895875071255489232634591918992400813259718008901403789361689921297540469778729688763857260245383039674145151701299187884297685661160797686633134221993586925858752089230039782309698265935646458013287857872517374631184785298162289188902423927344779580743467186534752286985244220851701096090093466572007554438642695840934884975533527996890555059720039975300211987352383480211644366042450354366223944643995568786279953899467000387308601858725086483272283820432921613270613575772794855326585592056998269387261551562542650134534556795312523630875716018672293020212099442804379814634838981129699373481670903035742327749924175475030493939575960679987185019562893589166586548518007484399492325862789388789189673773441340299471924292592974248072699341733045009609241196695686804830181888320704927732692282591899013501533808882279568709488500757940046812238603775999585871562607357412061824240470883271490869853782841905678521666897565452592451581698129871585730365346632099761815497125570908254208506994490249292452496113943431549685207244670657748808637920246091167553909019673309015716070140208040110430397637992035172071741458841692381199911081187496491446569564671012729605551381233917279722797697458868985484902433364952654499639457427851662181187382392687045607273080717164757483761486658310038718827041016276247553045806024597023056415084634732775158709348371515005632931340759078695667321277908677618657162690004784938647999028525105808259382479717363169670933037684295530201765561037102220137569178025070108591842954705480087166359803780335366323163422498131124256365014899238871101255431558213023779362905929988613436128706473973285560076930767320380026779466006162847166244673749507318460388059547546877616814310362218497669221718538840087123911522000601219865005817554726264393475422819052336487432242935224188078083620265763378459373989057072527510813801877478328778846640949414656286672444532955381239799043307765577994297059611332258631220400117681047680791738779404780381681457006860010521918547963786028799939184367096651782208213312721266050173844547035304580558200762605423629504586921604698315221502250360957713081603388826067434435213820191501966040294437843448598421022139047869070078696858068905364703034041094635225018499451969410216383709543095393914505158439352770294335935918314419687948953797249637692752542940838341938822906510235672422878985591969739421739563704233763307843792612497934655281446035948751543593909510309493205829513087609325978493736409062665396804767505320805303402040940203061771791243322599105666044964586204577708770820634209554067658391829269373847623183302068224309594993714951986578746461443863094031931829684762749828907108133079701930148135279023057007864193836770934848526998370299457102071474660256647547079268215965274054181348027884741236140013254109147474944125513449740957829376792320678123398401527281366611566514184412628202192108947989973250816373312725144166860031412439427196278994486708183490450640346651179131109790913703234836898140619490871853668639789437292945280640623753222737992728023139627359674177952768433284076561117718987694388549561539013533575254147623756405169028986494813851071936482809495220116863620248837858899252557000413047132313154722659785107935094392197802494699167035756245759225134310589753326536577545981167382187155125455562275854603171926928585982905656109193945728795551987159089971049443284103335448982541196909868932737964495267703477864726824852880956064045766154795898002028200234452207847533219317596906572974830779151549382872804898045017736420411623879501924942154163407070277578617360787804436950095020190439236056898776417179346376802582171152761039332847689956708018282980844576702891678378951811993977001715057740760999802364875284915103750167425586773872012008611242438638074900189182071640419953702044943648738588069250337877148668645560014384885506179970894620748814633678309349362250352600774019182339641323613225029951673713985892298187332698822460748372213711442998859984378585308339785095084422044272993620084921668606851133730514548264586185125849802308910935972746896981586115139469410649407555687892762162273196837923797408552309337204178854750701344516420452730483399248516538390172504335741742827899679525971285575328349559025910388914787055569432605272232497949065480887304776994925835072814688040212577742443936930419751068516228727025540744022346365717620246712532527844846024612730096186488506735446439141195581661400941909975206262891575013169700001620389371158626399756253355894706412646527469939690905733651700919999444779021198175911529794711277800539083149013288642207583829546180021842911169489695364416733401619534648737843626637894391996944792588442099847913093391442854038729971333615690837744147238643908895232398314466924223463286668677807144174931867664800519969479119381298485165438012682878338051000309202630257522336728483517709091528450199349226595252827789662552361854466289051544475050130786358528609062749695363779189421346269829040955842547964083914294517740500793403728914112952601900020755880161754783179420746241138695427843249360667558925376963315065449822639803611362361801513202494124179241604359391737006656235274421034445581924693338800796296687488824833173274015571395430693415162429747462917526697524335255377282714223202286419552394406624324100098056848858538117089611340151425408741262978585320423554138503044997763830263096922437296799788416809199226739994292126390797294411889566365421082299115115916097024854344870504882419276315586162686128799278005814173843677134085051161777883927045543673703648269542570355212274276602333993435977449504499339605592731696057706412674105024030925658825373375350638513575533465717103164128577405321886728368234140259765687038972981347627586030059464358777238126247657056527158965134801904980499551207220220377922067006902900918804432291720378941858425813546140042394718488259470811559365506285496580438006338485218862830134934378879605824264845768427243417408936211007281658637198393946955167372862129141128291928272060810504124697668654803156868012203915264154192895970977335529943642401982478675631662576101276224076955118824803697925570425705651250049423368357034419010488450638270344044673399787500762264021804791456529030414555198970978903482936188890896085059866725335898869812958273952629073608325948032507115274692368530243535935516015092400547526149008095459587526332503674561729652311465282076914520652176280593055502881903898330106373165172241174597718765927120843934974390743344132598360205240543673537177716078552650105941066696628067112341729605811502141604794660583983449789210582906092052022532268527068085105950041527811451472232054362210851954370050479617195764172977125036886014013674222064536363731913330594817485564436099248138119245538368158934665022728752664112193143504022278137513236166741196307261168599042455254752530105934437171917371644778110549572887581610832973462418706973175608396602407284434907003578498545631796969664573547237099794789864184010714626453620054740935552683810192365129982708506764517132443360409621372631826496754072194703205504005688904128976223459333363111676579340913163696595958112754271442858916944105210357635847698862350336588993514064773997586759493896061769344370860382140750909862843392375400206020374733959762943826603519826277985476886360680811699388798615764287358070131628206387708509048990121897019942616971952143932209774682074152251514367734256894017614954660442630892435440535848984107799013837562966412043147533547500648996827495668786931456949397684060274058175389794299312116182540659293648592047554151047620114561669637999199431980957398497733178190870332929857751411739532486164424396321310575978252640165769767902918827015672533252998767690103454550524512899676590170974776495911326214681642677264997529801278898764383589801627358714391608838702292653166104107699781039315846326629143746573012541259242913516533286502597925356294231212442020186346559167366533150115609060234692812722196344095093736690774077674256230794656495809664583280225043842455793933051970996252312275417801302788944213647257930578601202169453251114919081180129132016907316263197512969853849406768845793451133253426705402505695088161857009687138335287258609845883320688321053092026541514625597687340237929733118738413096402786082569178455389435099952411163203917894246968190538292650718466417724463173695802776854677200902062305542562806976925092419484225082502319342760496634991394284349466011474966265809350189610443609526213477173946986780637033680650797675164770670659198959649589624575013110546643549674591512672016122510378451902477495767257935521153419624885907640922438568804083430388351660269668583133403252286538673609839291016250668522768451506488613725889569034731684147708563336451282323070668137214592470779925973711143136604320081176480902412339479016854727906655764994121398001752405965489528900483451786830718935802291151096825688731077808786998759486793408586434821468709836681114723565985074381383439373896414638464776401295034050522951988704458739057577216409333476827441679438298853450571649128349825329973936144429068806341733297747295397996010527304609170328560194374940254907682840362270558799172794730365606548092307945216659623539526212366148855674159009107311548762087885235922485274113444975426344243242245808857160165158634080077806051702273104955259695977830307919300104617291941670714411682728932151192869812688956369948845832160000365442908210265571808445557391754019034362310450541550608861425365491036747757253026951538648357176106393110640494242476377688356505771029872977934546424254971677886496488306569670579334459491633377478054340560757794235984002236790931395592071451607480160727073831426517023351538272896246468195623359452343552715686529890344487299637925804658707834210688705512372259175765839276644432769475766347552493386912546455724442269152559885739643063314192258697799637639092466470580643615465771962223164500079246460622886808532020878028243203131484401498886518167113271904729336123071797787344568342791757489837265865603109244596967522227828132415085473421059817601247726136377021471476593165965283026992817786593832141937528292845821215442193350685105191689549393451052243278854699591642151619071872695065334218407617780016188033588226964379373035835130289846177019160522125505493134734357766765726944542402564787151486650853401914363031843171844990552957202800550091573688976340284887454066719459600060384234611543909540745399202156829295592676202014029313441776471993354665190334782738240445535807451044901483262878498671367064893209301156969427997589649398243461322906005649338269239189121070551367344365024224504409929804830743342278346215663138227318074429181209696002883386613600606797277006393033662977940545757283127437936411936404728183283249194472018918204855199441210763862113617045737068846869732475382395103133107767166551438670754984511177911631387273759043809221558962192727335198811372414250206731386678599373566658911954242040599064259869276123734791787755278311457931258876745670242110082131244690290811236337922471358093851564154249198615107468859405251073185084329649455653113806959179499768327352940089099247499870125683284153955815717832583364669199591165454373239003874386474866375554221339920616118362829395464016079657936764369413021168010943319502467626618128272650470339868940928331962767510749918710662995885859797785439702636989760697166207504832187374164780425898008135828004271601493158232400713756744509844164944257772243949975413633888006846083157210967864972201839807390170794550494409544807320345679592732783910335062278947423457737711043006267039143716625228300750927537374715690573515631568570987298574179316549784634676245435332424169404750403482659723706173601321334010008221861161183686380942446927468918396339874413506467788588151523299233464026837928110644066184388872790926923919046225497306238398864729791912335579732818328875307356456029567263414809592549851421053968850099517949205119275176569296063999702258926751784093007817265464568794987521041514534627496850841432557543144827472860295623432455749103090141394506501829601312413920191146317678265176804395617088301046508865501772539691936804857637390919232530906165185998592780761506004109285141603755443329850313879632792924399362601330779129872625030690528801274208403851857631596122957636052367138941699913503219466267508579940416732779861681243123043729504545478827541062421686298819723770814852014950923678309359227986192897896802618749751231599587617802862979656207699865278237558663859091177673551261874115623780579885784192287610731522097756513182545760882538199672084638221204193966881090980935659412642960873837642422686141508430829116360213633289470904754003175035322018321200476459365710813305505382122138887303039060697534412670007895049067380463654928578756570925624608757390919926964808748956458449477266436062051448429086737674678581289536216863047718886212519037594831102953956774904908095627408064555232181534309499698656895046896557998203221321506980264680583101599819190508846530048145829007583566342041907768674396017646063269983756097556602703362139798948453313549587632645666253002520075247722552660303595349468708928696355120046063171600124750997523313958720474262700630413855613052195946316625389546513157936192985647170110362543328538882163194033067614752991611053475135915624584766001995210405047982516799133461348251508089551642032239204066817034420021481892752000654198247089291881013048551548038322427051244091374303053797139534938918585659360935325811648311270055630858395107240233398158535977964725125992393423675139713871324234627451202790322524495284374548738672817855906781362433650450884825322973772419695788203379173410194751805423778336219734184703156504635280172040781632398072604113699419630925921044633201806731924715396269833750703789977430401846545157711491489264040238985695059127995826188633508130517527658685704312945312223532377562164301232241690824322551371469097804268258468456058082121744035689337838620808948302085235093986454395189664308273932065124583142913747105664759517881331114772830883926074363364884963772672099306439226346706538826103647603898993414500568047329310582625586872377369877454177401120825662142505849423302319784561566234269619134587663015749202969790898757887319824657238998859931943222579345393431394180230111276540104842119441585544924560945394326244404116150373820330436057292394789709674215206321116283904223990391497692599597093102612717222982959250100265854183899050730015289025510703202780811368233577087347408990426812892645702147873127706199522441485047359016555997152070591584583201025132261570198530042892295638223474987152700053212224155289576092139040988242222992706499539715326013828433967632101875657269583396366657406100340971480290960551888233627692400647271363590118085909702533467123787262694310538195851636059795481756444219147811261099786089093801096349757762156462899342309538845147184584004194399829367135118147351290831850517019126571693422586770758591318790424932108008227829709283010656215217240833964558175803619871597611697487702860343305845046803571234472902769900249651192437002012803935670295842419741785487910737955137861102786736729437937198042313092642573108633053424068801691920414458739253331541715461770222165673799859164948875203968765639796345216840048688280226716086798686845021078229692663008817438755271461210047181402646678721676071729353510585488863321607666324424856059405227050736055098315086107022895746233318915898765586989416295949744893628027643728975818434975473687361083110290542620419832135689338143308264598832152731622248393080208360006428036938182587611322571960224689334245235156676804977384233752152319641598101082671569757582446686318979360144008399404492303892512913390553032492652931248077249512468873244893759662579957793376565337557274598328069554246122397517802704688376359413906652989136701057766629123129702331478453808920049523501241003821277115678512731728862205387849539093743571565576328348555591584329574642932541303749582066267978492438489290564774037907566876366999420511608068439832419686662063950964273991369445524708688672033899114275456918869063625404648205972911001126880953988510666302745949667686060148589502279869487446362841511999203192307233487723326264094896371612085275563233544230935407327152631574535951663791106067101916479425006674777316456158903297430407128535060793675044396342240509731989037589484038502871305753570528666686458429156383987171035879519350219031451205473057216780707680580521412885598670975363710357496827436256517711457457800463318741782577671518832635555090616917347399836554978688603313935977063978063664374243284493368134735445206139066080368113583286835079705765779153379355026153883729191181126704428477388382206662829616341720675972511618845460037887292527338472897921083868750570472336978229111694448294738332321805297642802579031073191577083799343973005295921765672709237727873207188013060339351249491416936547819778629768441383161945688041920899660820865142786767202049568298611275127181724419129355987313686392225690654535396773715362063094910950189039127529194756303006963087954646735754828404125442889139940322338718351083697114967775955616272195148009817983989544059514699492367391806323393743077965493163320020649297890488886466301263351763677020742162566974632088968723544045099360295496012982955218287135920027987164116382453954448957456933600014748682486214718684743689687838399329971993958184981889988086790404262489313793159628989669534292529373487763551145280020498836635589010685276472487765239965046274735866807937851843128722965563667473938722627324724340814374737559323187806005334228526245781552351242032517841724475472357064089030790049032006873380365087487996907222736213310439884996840970089750640255314924725172860522109085051254284767346709062616987298581304004698363841302632744634578642956155816395442987652728999706610987267904487367760417678191395093959070334297248862926912622810681826114475599453400728511509693371667974363009715440623571129136942374675627191802466203864719185910463680975706617348967200766654538698855330587067516761387609268551311826864323051421227489740850206352240308808039707773745400714848236899301788057907252245808753571299648562640909340027743159799858764933776207565700246578113579496780160527188830118518432744685513695310475234408917075586502399493408059208960514127357142541424344339537843235197115445424835315710575670623393922291867036604861947838358100935039679843608623604817032684202947663463537317308797700944535877626342568423224515014578792402931587009061245967796144661012808469275013913401917405211092308776653540275999838309812615299518108325453936324250745646564794797607257122784256854522045315487798463148669615960392063181796710663337086293251834163150289995807819540196848950328257881122649805632063605845696884641918265180770145623401598202918167863926951156962765356663106203548147452562363838585089984227661266106895798921017383193221913914487905021214377430943715408097505793852190818220872160062091241745706531805124009272758838063429865335223802234185486308856028298581121437447216869028776272960016813913859464285594137670576573826741846912766183916222490641131758391502848941737279753391248026656631638042733449693553662454238973175340605725082789370862404879125477392602226219855782425088567837173238394512843128166968206823657558511880992339060324506063929430687559648505147932811159681183438460861201084320718438139085645216893357441702456765260670310318189611725085261308001258173938180548871954046681634621392872578255416356159778762309241811861836472856625206652987404586915322106507823077682653178523029998858219501706400779203571702690749573129986189902927491459944789142597471596521504132167909918025816054875445718314694728041259821358696167331029267078867981653541752079859040722839369834095858936563895330945065598384677691693723695420487044901427146508575983756348774380968762699240700939927084535715674828125272913051320914757608211619322665977022768514570238774743291426085678711398851516138535296328760439022141255737477289585899354475843552291741264641441678504392190974102060094335493658487113361528737161291635223299953211555376434733020263310713262272457272466676826196663553293365272519440143115670882935733065034951079097799537394754390197569027947871682964298813168104649612848418338449157243108443335220548832731343298831250938555548200808473333149467194334694287286418868833612928048038528193229321794134011606537210223847698353234277596461810272862704848488432732790447093063402331275474218012682040342249140141855366310131709223734125400288836535309193632785789169245948683887837900745641412086984990582076330141004767389087319935906343144916688855042667330723822388784189064272013329019389775412923516913988338547774475816021187034280311399433565703329352497624172832995799547666606225075605110155369865984126361941116517957353865338650196717217397896942891231536513248794870822968293669945944485038539650255229000038223373895301967140977695994583238285692192633288447649429096694722261047240445678420539486719465028407051941624731627457503996353531784549706670465572810902164360622021193165541969018544523061612023897751939733448232994270686346177936321049022064591458145882635272869524179542833867008361487658732376935726256159433159569629314747086439829992241453616827366899548292915395621527067674131648581329929130760632551951929746163383042679205643276385912605584593171401001433823592127372518466360702645603705437119924653340375100812391299607356719234885906533752860329222327020827379005672450833644763046692406788529605891077442901548848775128612255727927802931934619001069020420328270825590590532036272647508103039357833924211268095590675905131570236719068827691410414879359523005682035766388427971705920131049741982727250700685845766645586576457246954755312365076251031179731443082359278780128978873327504026098744552908631503103071921391074867592576446047022776788646929164791671459960588544431621407640594294564386869052689335406804773433267636849125179559717917257616253685352606077546144985846581885309370712872419789355273110505806340488087080584362843137475481974291651373636537369190529175452703821052111705925512482942398454108089598365738569578562658489827559785203449956387449747188986419454207749537387059941890685369585838934862305458295030305869639085059580445068897602087036955512835553601175142312768326401731797670012948199859404721104613895045526373540795466473679592686825167428045261026261186183823576600018483506779454898448772017720753195482830568564664766970605512492279293339542971894237279918477745734981155216323427446105252235931673805121381238483591937476821313525526220090494133094367169509851521702247931765589945315600973230631722045980982947308745656010334917782568575023955476632948095695718959819588683098217189742850992910955779784847883083011433456699312194247474454157401552965920473341745983368186760959157680714741727331336947960069173593374320722757610828356855361852942002229057720464564973953415730636364099048350756279583945574365498126380018111183903816521627052324355949412223798079346770180849919941311193819458052953385041924888415621469856643347411351024602600356331818331000297642034255854501485040219615689349195534790968960544525791332846580289919843507883020562814793996277647240265703079325397715049591315306789299798471952063092563930059069430310270637702601058167932453672472037802260347066081655188409912296025656127281952276119706271882239038921745853873209589533466036412589820207261523386647751509241667724983396160812735994104563679562148556183803662955006727015456589450020732037495427645600644296171613454333699444875312032260452373479352633192386072606511953494001910384485432180489723576949264059614992786218024960000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
64000! 297627904966797794176884172793492073280806390085755884871106568603373145274495769748176222797579055744138675901556159355621231045432140268851898693877506646312635061053057071719630673309259836801493779631216029271073767097075995578197674200111961870297290271535664761964760383901352311409243779735516808723437718355829049943303067434498555563349693190138431992231791177369321885693106770966558187111547177040945262474875652110149288645326832399746843012144338483292553103914350656740265676265527429925383065813647555124200509770300607409000961593476636462747407023260437355879811243221451525491188476083927979871510889146186494299611514378038984133095108765420804764667927901275240539070857867484019394901818217832373385139814213968981315451262906373539980397883548144583771332439248054425386932944764688229891040876411902081114444595615192700038423640444729080051774998049481488893024096875977417317487649153216312655035941205803688403926449140338606412756077820253050662668064720553238670262020295509326578254576326925362244567431260673852677105660146659079580720604941542931189550986997535169118768260961819444449297789063832687379432538226955003559811046931542152875466212898717916716144133779058889534011245055937682054588807442355948795069764462616133633882795741864242109358714011513662356128163715168121621446899052092399127135857359190556064511795580430073214722455785886716372602724506937591807759316969674414985086470563784388232633523269368715389576493745279845949901600963455927002896131325945437249306445730121741157976478972950594363259524285719256513539117047939288720217034873726695287609414380329137156296496168897854738128038003527566457208652504769198385938546216283466453322246780945105336293158810639632671105248121905643436624270164862956752686481844422425234923293727628795871258698008169459107711800994194289638296939559324376726530619274497363710669445405150485615864847075902202553469864711559333243344080968383452055012242187439929371489006136529452536341640468191954166986769564444253009716928822512556626759852777331383932786635989169581166937700523967063685806325093464281515153413739653165019754914634514852048754834537583733977548309016654624344849779565118962482463779843986764570889095327731658484614519529726500022412458324950771256607489724475396543015240796376530309174587846019968337906977573307398043990378358596914990385982587616920235298236496962668206655618404514659783199879804901178969210165298853537153884111085347724551095560512168318334942233060672060726283863619432465663077140230490255876630411927905170339619932351920824642749917680660285518538576803713790654593621019571248285881664572940859755148616407517696754743187853524551133730961453401209270340281922186563535888651095209334041139708703895659096610211485023990891377115953473840469642475177057886279107686478637143222641047714483544159860241740954772189239153461427911343990253526789116104783736690556031116005998995791125465512899930190898598158109919608283579798268226038704948215458132167150480817687710660674441881341157328215193853753338706207278109826145050802112380534531176793156652215533823024949649797559680988916491529163167707356391632036436148885570690558408268031436460004551622108795737565557807244547866057095486632874087661179530055273577887101301279740956981604022588864684471084799917808833537350927036343991189752216542975587808157396263754171756722400772254290177801788783877446583523513620614803859683026010010387234777104881200621157818044620248174968098811282998246077363620541107984630504985855640856134449485501486160533839121914560586788802441281212363260299863372901724100971350105969965646533611324457055867853785201817295625328777830605901746494455897005769861255013772952996715125796146177583510795118856291810211691240887144571201037681063456191435156155217669136673246184901278707892843250055918027826534651541509160920207195443033019374008262157640816277261670414703941694007656534705414603918368020667384064070709502692619416297481799587346805021483667857910519074329800541495776747924063203923992312126000547786151975251135587453329895831869181582613460236307564902420746386510412753155888196027711893547431451604112480469442504952623305533902950025697350693935256876193722796074031976807523547563663726142221982917621587922800049858747736771056695242812466472153690188191747121468171888955408618256123630039976885286533907481894386467252770913220476060930659124542776423767046026143089164143881347641240730920598434290112896492367635538666558883042403123713512270813229229989406864680188156428588947770283027753928632272126324521849080761574936885032336384876707406466300005728010984331441520955630789315310078259239962479928987214034120080657285216932729334228125958784314874642815865288867492696765911721135548900722682979388847758783983234969192785168444806773227803249902508495807414435204323029842725827325276694230459681745338877950276788277887644625721695388439586741698003192119141188165966533835510032649792903593997087840826480161928801642896806051466713690729422077012144639477165859432251803989659281453218213878839397353556295072815069381730172589253012750282924513541646686158781737182967071729760560270955129815511397933324865452867479058895791470604919988699044651763298133528201120009020120247033886571734592661306319809703625164725017114111538538915676196558647781562344075926527787780767866008737319179163026166468384995932069506511078282390447196085445278278302988991392237164835888911057648212327740401773459588172873762351818769000524328283334683351999219120290344550977474666100397912590197011284736864421118864265014438169836479365168983494804634532058124391629013888962179412495277577873808921794431410591931009481837178214822991626817125459304767464790938313283136513963936454068910316319638622282894781645948871565423765276026810177687878573903107458900390337345500819688047166476348981789276125141840417980355209619157397273838610452521970814637494554440564787349942402088572363827520904142215560040904493560574423808983089451594649227736895541893539178660874720965389331718629314475161259312849231340024025468137387584633601327432916563247697051745553385467421671047512933752575830565476411550972745431173312672346161759731072213007722885972521090422930050096078969623838048227295718897257790228885484821526335817473634982301878462275944880384172272818319152058938215362693926390930679792457377287554674831763636031904471638766643685846076130573316528833441645836427359702132644326200068134830006406217805617289289691926210305265053520695220369800986150137946622222545901053221802151958082302560824595140665834536690518893862708248994775584005772831257788931407779270097366866323374554029192137467294356350378931170784736150000475363913411771867515937314801623577768519059412227280550080129118302294811489517253924609920485621170876983316296818079165969953459578516317516592418538809875847134173927983699982019199543396864175830010130669402564054032811789423111830644668315452962088306832403663847260352544067838015466323700571632558000395732487732228737818149185129243493891722430618256781667645062395645516648379428433495350386085900950772853532826408805120059764231899107818824092298284479040450722870535911539955329642723373846095517746467700439084888036877429244736535410662703970404929444294798593710466894245933472745324133930403239315826368204102770295587895115071434528483516460235945866493370801724727382124719340284082006815421580818577670460177949477612090652057292244887585345252995418999490068635490787729885502553065836949455609869162852319164100537758447858525664152135091560916294992493312808858800832225255720113177933765160720863299725136236441969988634255077789037327556087233183186828714497095176887054376937352628894645248264629724356401803681003155468390737441622897494114883076542994912170043391758318981469770193823443155345092539677925569495723693964727198665713700706142645360776436161045072170128789002129531576853970221371674353536900878174126584404711626461763782205216606136074913666609719176313181396504194297616742376548942355083156507893330091416257750772297384820029913147943692724609822612504993505215459495248008195429629037103746879940518602037786705846983284107178067072420441568457579417135579018768462126899539772196961104466080923865810041207378537850415397217300194394901673237309069841856626414792200846288180201197926854783333215671349153382941085188304162331232630926155340143867869258651700370758384313512123321597301042631283442235073594647064870778416516962421158672411267415425500773217408042872689841365076095704188536173965607544249186294109462247530929125245710836619083933389707850957068332731422023195130812083681897824238285928275747124331292215568037946124093424575256006025115977217115209335729726861760487672289843650894593403765647414193224283111990317571767598254748747562212625040432882562553329144682947632821740566104781164504606634665845807838521488645848843425467730764341310313909749704500652626190637003427591930436980640125355184312687427746842632295870522478750514843789699078687640058853367179107190864604067119289267864373642247363928540101228197489319197743965348086445822965438832470306895489642356700962781486718319926925581482322864488619624129202981322171758755601621647248418021756806969064625435350067147643646360995930799857124469644581170698251400235098345811772167585406573845908322248461037191053000125704805179297327343053205709378493922054486087177088041142636655207511545612911274209337051121655314089953926064708490996611147430220182082349207747852415222407651271215917036004248861765325311817369700598065249711445723701978647318323901503477182839195539231647175694513203687065783758523890793060561861699736749417979992293164779752859747688492607309694687426874724027045541245788401850879859073559610635417244964292110391166894714684341962112597277006048100180309838013755985155230862295820347740758852423999973782057680667443520405744108833798092398237546861830338958859933627559225059161075968563000524558166696378892073710107962478066996134857535359312943108244338912879488511295629766527357385966094093225182309470865188778798289328163616847812618490181619172735284037491196714109993405876858663652511988101989908041361435756976554202053874027697976394525702678587943838503931238735502352273220202089181380465946339399132125039500147891354182041366028396347285260946440025340622499647559621570192158625399416765732956605451989642535245311323291563522786780724665818687659909136766996686880217436745446067823732006289353049450662304257736789451105406224296125790535392436987061158836232875831786735226190448057166684917318209316994544028894380518001229930872052343079674322013723709855316267254564771978407804436958578598968536510544823544971529208489741120451214058936660130783304594896015078475542100365328926445126208602992293068172228594928769433220881955267704269971053589455031693655077209610980413623747965873532984569393772382171875656720175429025079614443947223742398649166619769523382414084262705123277438397473761557097214249608973410417491725125502328165550572945709909126881908191555585697626331570526084462708242763457458601373051460556424202998909233980088286372523333703739565721055871139030546801562472133519203818318350065034017396243052581284636221543806005234071162201280031174405499046033681534868441163576638473706735113797525309903725192162940687491532654199232124215525903765154208235107830578269387990771465271891681167298707600451864699494044301298601492314607709077202197806374869146691970009537709472804020346680131799144579664431442409904136129084758164120509143361232076681518292027141564516302134570564117768831356301090322661290924042072003264509849275219537149924103034736969996382538654192902700979894541839358962259722665683903581840275718993738076204552015624426366262700864283437316140079174426309335025525930795841147562172611169375065255444251198665453090672130092339933850107268597560266073806100980548434846890705751713572279496686325761908777074747237870238957486236066486335524894714166185341186686513896902323786226830197072949762545658629661601756291703246087648209044172080460135506118117700323265604380609906402032860986377175041072380223612207813346405291781022786692769762069076920227611266047595544124523897762540349529038359518762028481455941082595984154004637700078938277549560550881822519695105112947174658281710528684494226110885235708042758951596808653166598974784873577592441789291712272673083976213616322240261193717258368563363629749348502185348241575947179397630740800100069688924415921364118910294369731371857702955481192967334130193927083085529091930129002468647014763784748252305480529595490504090234318980316478895412520663301752530425873487792779832687067439862424105045105492492336248681895528192232900749180650871583653403521675041423459057645081938994636284351887516410332752869057016474960353891482365256853480402054235427995592830375127451947576714525156750087931751031643148454451237345464307138989554127058419454380442177396153758854068605955796130018602211697916815527820059470649106133631045246532131856016027818806954395855334336950142619228611020862587406904331239135140249881031168983297308533642617364878186613716318377553462525460629075363921065040109945673583630425289131082294379655755092888915200592974891296795816273653073075272032963807323007092340726875783102331767012297009353150498336877540606399353633168688785237682925934661667036442069559918868281680542195085911116555330108447224302451792087017194590223717847887101371776456026379686946460850686029747999172045092176637792347930700327102706353872533842871430481360476739316359454399435431470533666093689847924546885949275574056774153646213152640137696509121885863029076023140630362035089051296200292064867624628891591529986624110283764946361393863864011457444244484285917515940151422395722713378715410615093302095935055555826338043234550739657687329752670593975522412969500416226357695864408183590048808246592095564155593004808217612340558346497312018781513214176901612512759469164500985392987089638261727864014317390114901048728330160188881164877564655198150979509018320673303309308302610206347545241814740491343914681176757628175634413846317414083356942551475282481341769322085327412384730521683644916438391005050564558602043999504821641359552544252818995073265688379345381544811384537387183527803083240163658225863078218846753600766210773931835184310209881198021986323217348325538370130362631446927775182277419084929990558601166220436551332186194425168000389269803674907255331221960880098848837837184603199748204609557758804128062608188806099893889332523435051387270371902715452640046715154022023972364833749796858393189644107979928733910226888430939399715264955789018509676918325277417962028488050854082149513856521225671211952365170261661416847145200983748112853164244813239020952415285537600401922183939984560223125709006161508304851902889635172935886565645583146457226448951613449374798609292183433493433237378704706476850841205268694291317002410184112651906674223864755325202607227902631900289258259832269630871911397372500190515172739574178001528740871488243968322650755597168207570682370482816801467488234619408647911016700576899813836407744122756043504867543484842114657599205002937264373475076623823040362280283989979248636951408969575894182150756711998661872159857221969015429716703463154623398687444579484689847133747467576917179072215186246311309376069838660382494279825848408593623130689785168868536646045345103053443737295769059830207564727405429946274385848072505546573023054656379879301130499324041340255549646817122214082233768575826035756000748807606385674100736664761640491674009197303054030960540498460451073993559963460578256213946542318768906354312147009265431590514791666030991267100665009584207890764480165815371886113529097340584294843644106270506976591001586200839353586383815149556023286007188775757051440694400157507971007272257722286248912097616228422308867217656297951014272507007402461931077306135378059993821709298227060089025781961247862341732210248676289555104881230781935091084543625040882244544228724464795232805171045366347421872410172764993867697381597507945652201529521323003552725411194386506183504941248671486674687054279190929472540278432190805481790516982185729689646101346907377462531360803168897469741595440326004249381258697964408247083972408020066805185894041230408458595402685200375877874179037302124063699646850518077196149674394617826151505024712057373589433364042572813665476441635307005060013948458329139268090142310363207398378603169924312191642837697667968035009808372646020874848028079213325750414406381331177493808662804861167698355221855729029226628843339370432385349855639947795057617602188769366102059303161749270512324926058098105733359246627551747487981261266517865070560271063473706712249312970622442572910452809937832943642739065071196683898487433901055712323546219536993176514015394949800726025297109066967014474880320174455587674317810550431629238030934529750033379522873559041351213046227612962329573519913655856387579406946902529194399456829932979578363910156679474842340964941324500951347386667778659997427103985123107441793403710931800508542800916674546927179613526424499631699615332033547252205890530597145054349958845292126652379343249322009721204441728604428967382967264887137081757713727291571324530197239605099194893280214850789901828980759230476378679182508419530845746275791637189420028925641130045092434038584176168913281473172777515561245830470068839725154836596996760326795932683093120521585548507005550076247733190884013755953081045423070970628234204241578587125596270913487559247864416279723647972254657305085907450698338378233265887327952798594422600182896130330385183596878878983671846410291975885001437666849237733083681756738811689367230403680700866415803422494686879206655909467341745909557135520753655622952647089070956598369722330154587420174120856901285917909386957013376573875201331458822332373691761386928223002335442304409459558645205142251270835549973226770393559897590878065329677502689316284056820474842162656676784318157246445392013945178480753137755845881784614278251939281971973895846450331547248878896611517253178141258497063961397889804405865496366361064461664857205344811895760238216636934993317266916727988782635450433606636355334870781587505431090977226702210851307473338026059737431007915352600971995230187492147774321171954061656088087586322871991572660194576423077587874116330682564709865042290229803043867535706704868236791625573902656975735890948938660386746951358079985757885731710671510218002933488409052071272146113068050068622818732408759303947843614119168560593142093616884274890117344088355574145718103442228291722176042057201043125891281696829706709439689592471110977152506729360540877943009900380833069398439472615169347327605781656551547776124928336429400299368480084796494490651048666759626046421557307450610797889115568014204215253374809478994173838576560556394447585458743500032125714168758242125939414006634209110909301813848859128861478489274299773871571193876305323691358882342513144983025606499884767896813467696205823279293014137297955204465738548245275170447807245227692888051418477746916399751642831279603969136907485320549235119964372098144563961575348514036721632865436174351881757627582426827157936097885941813041092744827452949968389121881402207838641769167245941334705832408178509706049943135568373968385042734574220307252172124205339882591188108861877180347800016216888406112772350201082022919542160226184900296063087598664573964166591505506123401141287324643296338367270276212236631175294222379661028629601681675890530628476658553395622565005715532025738077034013771269830400357117820807800682247564919263065247473577055948634807019199264003109168571117302902902788264647389159385608569660576122967993958678552708674023750824307354849000276998437850288881384359532362771326603968660038070064720952497701543238993125919698944144471593948148450934775713672294685797952209591145519315378320996201450623823685988190464184110106758595497123772356825514250554923879173143152128422112662922641759638204516946479649234342403785951881396813734850960849556838094183678903800797417476684065671994030673167473076618089695109229745660453918011569089593230226010698461592301328233158545500695679665712542552610460150655559635518401047173258347541819878188576311535821550462515011578813856265851170400648397287895337777249433792418662514042031251635471853032275694883363663096146861345804852694858361276849465328275820095801219892434797977543265122983741431635224169430071782010068711124234669545258680056041960879646541829136783141885540520392158705270302753113327626375759434252829425621011752079527886271654374409836512861863854018029627201214885544889685052116775456020726541017704120424502055144162044677346708546530443980665345094767126869624641896001331530350052592509913990598581159737394854436779900259725043678163924433651616408319976099464367848116379864772138982314813181154253871369182105869983520689111600313316813043046686320762839456444037069056181381303571541195397151388404973942028805939789418709184578065037922136823034681627117416019161581324362718564537261609191922721813762262296201767596142033644571866735137807750894681486427243673305108486744780562659493067169633598216146721659708051488366160241340771739961354173608275554470803380252100063564518465305117591410164149936483446359485446812122917743011018177022111851489003526790044682206211122557017069582509280460902540886773268377192703025931521506126717281366957816074537164437604895245309314477469516234676204242689942891820916591690831106570179843163301266622659759819784212614951528351373573901121012250004806099449631604945474274554619340970644937121704548936446128326165896451085635299377842152241244304565030505838505626017822937069567244443714232931036021509797530283401256585073729461457600972234966773474058870328190872177025836894620850405435210298086890595376036291480411292330689060218130511421414148236474470758794444831061120282721022241133968941799576047500373738302609103807599594672688823430559892624672675856575840937956543664544435668756110327387891653663361894325761657357726697042409551541527967705854973667494778503785625373540982387437344561634104237094767360928473214064396068272986459025169219750925064804939925073795492261527117244447316538354747332067045986720914855400529148160839832102701050499654619503045772244111741490845285879495058020155452937085498018491898444461903440754211795906786238092561809454919082878840277012128418553583389028319889589578017222678167034921338295003299232928662341510619431394136210527377563246146572221125528871679018135276470713553958734001913663476730448092767408347890138887706363238046901950073290546609530951732436759816922152867247562353594241859229995977279453239195376234404264094239060501787267117254861622304568094357805657057035307775630007841897567269697705078492804605243723524359647803679184716222674071353599586106048639433208596561049932385314738289996090201457138423716618409268399825458689659113985107858973672264010620839803805587176773636288809018787858951512026488177697890970270786270266293934219248410130761162259316600389500219084741620258456481629302601545233385172366503903651184218703273255033206921084407264768409420370067704045522565855854057710455833051168559367596612433045714322839918471292596095406447099861378113176040045030324562886010167481665561616551921075763124032618988313336065912064634286335803599171790963521432434347299727871627440817664871823005069594591865802669951855803180739713435033490056083299251087402131787751802546815912489453460104705218434208935847041451796239997223995426513385777932552860752184759945364777271710610842628167856703442300011940555963105374248751718128918842523395989259901237510702010595229303759379384144268253165627589966541919569229089815995286825271526700155512012339663474838393177245024542935507109906027816969475942805946982599293323131631920201018648845767124629381260899660730065977015011863379495682107341072408262009821953526875194993020198916843678547621148250786267134681266774133729920001827505649303593205674769675764045978778008870226927487338946771500846562599345995223847231751213292520714214399704588389429875799720506053026564426779213158217318018970660132403737803446369834868203938784073656795236632992931116827115942117471689341093073288185662497861340866597057542520664424838847739804130497542284406077498460353008374952612257074462052939159007924932264765118286536829373604183894635669292127166025906052873577555483443775271448646156493444034485262223835813230442352392920874999674158661582786995499182522645503075007865467674709013777734149186486669356351789395937798113568461718568042620680449458575705563903248619091276746933936273619444347383313877418763187109098806171361390291672981590806992886390745990922739927265547653458104543067914711172263218870281160609449555355095528211151060319930612253150908820231242449187702068830826295020314106716500863697562964487569414119426240902788674386871045072711379098255099864618558552101287597671372558630726187066289536401407652433867308863908783383304873246428834347539877530559220807590187280768656646511894699539208019151804074139049162792372093639523207107476293236601700986679006044851563810407261152739709737344006218709063111621330681563396152893102491179216794493401750769486883198228074919088998313076014137671509865881660789902821729025747994613132974345291160393353249385993824927846024547898711896806925192969943648653920626826824615788855539096811470047543865198617018424118885180783671854822996467367854752134801086760171706668028203728044803365231152587760572017983074733205718762553880989244291031847886730114905580934040469554445535729575847175313612953793713880569601329657825409190546672240951256132446497507196209193185495000149868922567631788485097246847402504000802910926623805406886316019914222027281276344414817002487732840575529568461606377964012098943682082810238101148837331533806314864649458468418338035284684310514172690240800390451277980231443149145920259919084146472845362474796897288071794099141895383054585908380379564854205119880921736251761564641448893894424137655723827362751119049253715941850335776454805697626614421206365469371038286230364324692242749283934989980078315214840169629875616178861638288982141869680334675611018307047890265274553683306315557972101087840469364105063315620312326789922390731286804001983489385455840457273193723669106955026045738175020270991037408037708962942562636207465059784161756805219226530247849579488026773928806191997976687163393935568412379610688336474667319725296994275575218770757316467734963882575118717515151611992470280397312357073249108962502926646290588236043230682129614734703769099904536605861778396653755611261424066963125820625917398351455787578701911869811921734301286853982633182593550863242973464182173768838811835775694016147426735918522163124792864555631696434597754253501217726844331704162609340735068522762870083556155276977710041343396569608987004291495094747666451395026260760468649632369163330989355410521936955523765420720979055365456703062967144114125354053612979321791190150573448716177587680968153551410432329635298116502749149354812155806769521080657367704908027810318259507582616486452460652573269084002146997050800747120221646824091031119571202800642116127288340815908951626637095807158953724045022487620726092143619881250997918344671775107645576037397657633646057758416908074851325164726344299086381945871754674821738168077364530388161088448970777775026238778807001726640613051230969508097920327152608955076129371438976318446399889690332680153011174865350875785189986020577648135388996294290544446704382193569856775864624979254235513756769979027938032229233118590933219201315949189673858421422641582040646670921862055518782723085006420561206694425222446882263576936601744454920729399824166958556002584389768557577369084415909316575107328084187967045942156314602171625093614970157187335088402183712482528289298539122713622359303699934156427310383776548435570256245227400141872806615046661064377517432733075832892119901826197882395428272333958911087225134620045624550431637485905072614358200240437329833813676731148146812379612831654997026096830164832456589832172476744694056411695144741938905981148932623902821169995820063294848687750218934850050358419543442908162633761151951762547816486411762788412977716566953149260937881882728409041683143708238445256659063717260735169860796851988338393192919801075235903603792876754763581493321331860383055481110879171058354778142104166621605102014815141586915118035161342697263775196289516751153750681539185564260549418433220640614336097218000034523824570202393153234429913058503274132807618690546266378827496432544242653016129043213579553535003583243606384992247337638826616675781344925120216510157449895425729531005699585908635264355009979448496420609441086295100182616093551876271060697604291311733425873541925933656249741243917757133428772672070669509337322855077910241686102600472212286738398611377905201508019675428497023160451390658870037659813764277631254457515947324646486184359747836015100333203267100584134030622554665296930964008047554273837638262982429931161957394310966923061260713084428268446341508650690836116209009285843309146930486753246996593554978923084342878600192566111786881127070697411837519135362909480811343120779291950754884329506148834783694053745379524162015083261930926284584229684304681173614235319557065399633788235065934321873923683878435372313809703515911013872018278136240858176632708025127726740814481316842348613504464229186374399905828005349820243670862090102967620237572943784274219168097438565472583432908776294664985832611796361743663993049033906193874968996048281745092437138784860250308282608011520616640097903908934417403244110658944452707635137217224147576190194995348193265577444811318707565469073134390363891077605218941690836482520405165742540569835821144716520387708919080152016532733181436497843389692511412022939026790938528943904445639744420847160815767021209019528054830566363741316622131191838116177587722074686945118437278186669306158720028816121290623484218106145165116938038223830874967236075205691841414706612389329980585288965980502543104838483184131700862811371201046219726049719791534079928439720367777445646541948222648931617918398887165542780110169606024058236457813108954862965899616401209745661376236848879117394060051826772047118785817918652389367818910499678412639030787938333548086157488623418381094196853822459712798413463067121029728562924974690447958131191092703194244862155417309101876206679904228479864645277338693413512039890549784939128800889873608515970471623498865334739857805489814376789415021153952042197484181672172388004243910112202043749431293574781300235392307796015287111607685793474489444806744170791829770873123998888550047848524183041749640638084262428954863818089787609597937512906218777757411945087249792658928190744971669158556191889700773252158350486921037760135097686754100857415523291698323006990461863979584399483315588303440191856103606872550814491292220313285578042276680386741474686797858895815817487127615576734582310399194390680204365346397669836664332683180116963070915103675241240815991661092048215440204509050832532512584214993699457307427760200222987225268774265146974992115575464824486492174003390525564245333801190523261662680947454239648626805101654514866160461802636764249916083169873483912571614335215487750807450167906489979957286526367924578873536266907053111357030572376501644826133640934091955512639004596943727492365447832935081420340411123280185217089670396757933261136548646078755137389812527233818012099380443153538235000984811662194919555226265497702017273059386205992630023595792144598314554820765860086261068918974691427417901101869070695013643444183599521194887176704235678608838473186274672478654243153560775011225966089118891139219024045702135327866529297512690439153130052144501795055065944972639850336644062534372764548475831438570370310122426075772067496784497867818507295812088572025388770532147278675838416822811149626810163328311464576589437918296139359306381451349940446400866865899991159666002965784291770272286391079640150476873555289740176740870689591343556931397859113194922396329449955379834291217785218509803031244844090162595514029179206519171748270808731635704440813276674905154720788967982789365888185190366197295538026447971005444565028647712245074872902995618734996485473629521061381283100859022732358590942500755767544518608971571684117924364700356036530913956936546935517798001964456559641948906436405165960244921702684027405706118227479465458082530290809905145965004992491433277472342213019319453259309859160997509718356201252556592009528525251357774013990547494592332973014127246373055247348561123258215098349796155787786978693481441481213445334778679880372043720685235834914547648217474556356802554091898540123882135226332077205844274966181351031828844886390840859613079857497464320385835943760973849532552988988479098836916481527327105526827823311337157272810513654351160799292486440408843586869477612768256658523051981572581508924874044083670091410884071892615625741676719700059379015061680547885007533676628090548720547695625134161725035541710868009765654206509969052368322997911256916485810490797285028439161328858523044370405431422532701804036199032864354345490195732221530266038732072399081708444936499285979205681873942071044721790586450988394755179948131962837507797383343000280548013663570852547745396087377042873207157124252879748678479238185420358536282088576547852665103286345115837447333183923243877128458562283919565997758373237328285905895160410549002574658747592494835041639119723342917761688125014678956617681678564489942893959214760455910421667709909519656321391816029613054536928784828962468810636507554421985847636883881103708072290684290252589505431743849053115514972280317935338196911637831863809579449823789471835658403041397842215760928032985491532414349508878193282086648235642385721416083541390461684048735558996643570531971337850723474434164602874583301181692162337878984173731571739357555513777225647942808258972090011117859267906990490913318763706314610443772336029731350151670854461379955537183299441432074545620897369641100047231393867431961639309716288456956147164584629594472082888620311258704808507033894317770894857265382780957576061867568837257832692861754062475025025346191621396509006127385276220029308212039297054782614015257198838323230522074606922700319042882972806970451490008171410241480267132511106480344998969932619322928775751919346600179532364049248292804742169747526451105453331125245008735166946683276082648869439066472470664638299118702696631630319767763921095177819493830372683988199665616719880609461098846777797008347565395293117726600252184174841572628794402624895497110823739311610176625090142616011615340363956811886650334796780681561324272637572150395522452760899721176855361036358547529698123437395643016595120005144310454887931738599409851619442373849202193592605935742420077566362837864554144233624442672744775857420262789599623282198903613184808260675913690217920127988253030869881886585914372539864932722701753933124067617354737608726133418851427378582374160920278393742015474139705092170555275184821093460654774216470866191582607484497967969104476251014272169492308132020191136101774716644796317665786598658784275729431483941952098455695585862081767023925483891538108587926522616047565711183408230028720781443721029113339033442031558077853648885618127122361546064529130600403047109061442429606986360757424617761992920535913194510274579363645528817624157762772958937216937339785083307702384730293336337582059024313225222575522449346170648570056542061299970435708781666817574562260935249925281506723365212303451176867631076051022828827948850350449362760637157816899614860331407269062222220449717128584139334778627075944600166605724251008542235831371273128984434810317251703873553214078533725645324527563670506053241968327719837215074704598935623705371444816043589653514764471013211677030208495017174469476235994827335857581171448319689586718391077957979510267009901276627265641868364519246395927870993084944450105095483297224082434127933064071287621862340559095983579092444721616656641030318666547605845635462769002773747815994044250874568875719763201140970798764468028867281026981940056109940424578250509323473934389391257879026354318163968990709672864122780504619496980856666432061014762605064770902950483443748053153914928965881343030790684323521946245380917919280696315605832364386781739589060390500687086607123582802928348641556320310769689273154467022568038689799780386376115028915616706075211333413128723017811918581263535101199573192122386922007889167656402290771215224122744300135483326528755867900753044896748508273180458729153013584850227771265363681110145768485917663010673089412443416646153997017710738962940262488716174271830678319564590900084788775004032423719837959259645994692907976259212797315896229964975058847333117624655550948623696380587701570252351388800876652855985575556969363681647593506136933070251433727405624128956886463226021172827409407909424009062204767657276784103823008552293944898830769456541292765850459444634506573396304490538746226333204974419613498216817387157319730120745969886989934202823885433493449204347894438998247535937038793238318292165336031390948357862392818075755728806613730779744830726941825131435470848493693012939234569355850683607444841907650918789810151873330382022234131198828399626145582320304808238768235302398292672673925669709289930748119830662492694098016495821094537988997137887494425883818927283274514257959059240818296255068874422431329578299510743827211341988277280959105822683936824447544806232360036298068078784723188024510617175058619881202195972124913834347492683652598950921949658042045847494407170029231900979602484891962685759920384341529648156955022653843964820096989410564558939619682798587569618457880583531601269209466988822420084447938706334876346236681099932593114599535462549530391626365903166325109027280286083358250252815030760429503511145452009990645204231231242899599110922049478769337278436473242494454448476630021352178904162112236764684439227314982346960579974674986807031675068198078392935039081317777902457422410522013787201402669138668755103369047840466650472352853211265933508591315350637934498991249989897569699989830600567120162577319294719901598902565283780171377171218499472979987236623244947003467802418020187409863871108788522476791903342768772636851126494346023691748442821773985517039490670113021614592404935536848724984700639420281527029323846129333645519078987310710102709502765841084282957224839561044426188797637312417878994052274646415222189118771020828657544433987818427075509072974714346020624416787157781175316449269883926782323050401740860775253204130703788414644023212367269629765120907371864849915211222952733925112486741189225972864308845108453124621818709154120001480049558145621080133329302139225613210544275542119216182409889271464520003767171760634612326762759928868297963941785539618310399625318212285907700260193044821320467295530712577929650134504914329243014630277797632462152993554996145023442373478268704054268638737399526813140745182332534536808223065630100656734542563934882569896555958758301545472493193906735223541650876517753117294861292894014639292208548469927556480559482470656649909306576451629097756204559667842306059953366879765035328356456562215919860559374471808142541034433134226507997610955494953889556093772550501053521763373827974786796376340767247306583494332532963629140556273431808552639636441672707815743776578392562915043226059299120249744997303697419718349947245307089125101444817121144270401140042280762803602983097779066762172731366819773098228271971608357358920712671800296965156984630599510949878812187122084468860024181457347138263679266521252364925634101294775705605886186548529815997946381578922124760490935622013330590127813274773472771434175101819391125896146071125884595723136756012389916714187010728245085415054725512026753902992101782863559831474340517286720830488349051560033282238452764227539416232564709140612418814718494503672038860161756299010537689862875782721719735051299385849208313684326275012571954557575814528738080901485637452751761406829572276323710850804250844532106862569433690385580044201237048129332132779821476401224389063723593952855477452428889892344006627250686095336994552418164081477918138465393043699357057858324621771745222596433165374177139264901884771598728060665870453384388562598209847988515921763251589038549161191408006202032141788264004951631190510001691301797472154667144377894224908879591966141497605185602204034300483886941641381210183334471582690466408845065191328717780416521155739029352889556109223897551883983344435843458651061051478757576831669766169237588698379138290757122361766742116466634683904900445287313470261722852246633688042166825988002875149639225353380517284176466590390455011629447821534458844348623072511783504435875914869097556329337818342416879179231879937428774493992852177719739942876708923338146508100085535863377200531230069876790315507268994914780742070722351829598840221817831294080375853746688562485021877317441958858488766689342155673330730092112214197887832905632761618519362816123774412486904402323114614320336583707417280778450061341115137598367420282245423391356328223480706339735296848451195232737282826727235271324781282452955290582503132828355947737065273441960454102337688146405257696063588555296600892650967170588112261397191698337124231286738804344714069013249387589613593147140928950336461567063871638430986622557466577812523258575787987771025032453936429535355189084051537750628278764061941134617084881639305803163415973854256960494607631517417272876106425330381005287315600527717578781992702997217499725299305132700087563864690464282430608349424904721165270636219782499875676756640789944270874024905136538142127514369711480698506306330776246870904210307243055847158141079146757040541166954408779627362475977053205469068341695865711539260034954761582341280493497099089508573844944461567426044664225393988570786076430948736518316639808119617573154976092303219957247434612525583516656414635439722369454219913121015334023121366600245317254230342497334128356449564239172788968117911244804652923986700874457585971469040908486634902757489732385426886946203625234163749036048482245412116773561732407840839979405682956768920873569410788148353487748370599895176147719801261580553408360767704549567709855707441126442512439282654207065621055524304283971611713034051091651737874054021885116114861921315204207973436806811398230243241294157227179832096991263669862701422686441783330405547539334941301802726018970332175802441917397660852872993642328091473194973003026480646609855195551996428407493286572870138626132709591588433947423646127271713463633117167476734787192794569036826252195567522209282438050584699451713607060835443666669052295571314979575745054055399902051102991106187450734036260877593412222275027190660982189302737272109688696003121661122670445515573530335685140001035684115919148711295113021167553925721980824449896589205460063056419575775327479551099872431711462096159485807541741237658380953030639163323996637754691876727578328686092591908051154796966332490266553700974396503540714099596475679852724851335058372944669240315515744290118382788106216437529129595739322617007162230419697200608185146055068934339397621237239480472525113215390330003140652648056660082282100303899100143104797947696659564743901039691468391997352182877540860590067360072662219877533277695942055122941748643824171938550820961177857551556225769914830816105249346287659185054903515751539550719165820771956272073659516175833965132773806724796984062787423016245455635020009284418874608641410836120400333088164510721142934558266749835465261161002702041400374699717042564751245795940842645122192766359257122132459058847567275413567804005676885369913256978983284367574881635812650372028473817393421346289277601742741816698607918744779644894490492865348871757769479150790592321703860698503215853897151006903673995371687208436405425202300296348735076726667762590583887792202853189303337251471517596999131664428924729605784343085815235393017868414021177444884288435258536773450557050650488662315802370407213465504196336745372451033816087598586282753471371270197863525186859552925396248453670134141331970190560151226545267940512857913823368204710730147474743193548627035104579927471597029654836468528129188964134883344969995704334251267848638642847231743188797036692446494619702746058319892578331491716076462644852347785741731819339011298504586577351064088807057012707847960413103083538837231425236492131686858239539349273003418256437804859489879820152797124439975947866342892714083468002913715605233094344875727737180318882455245981304915220836143712452359615524831809011839225648359691699097690345962903204042272101519742221296212487227738302843733829938501324911139341500703819341593714042472178167995851105839006907779478223247033764350055074237093180341508405066863364621222953240007866917345950675593902433082274361485407807657486668709502166121403670768281897564856635132865609845869511555372632432575921000736177002132193493591439357177993743542040011525705351453922274959171266741386963773834158914700319191758028345617329436692127410538194574070550950923993823362765888464482873243161897574626008589005425515256352366963191036008627835778059364360786530469504612508614925556487676964230635085543819240144985222904901510891655941748302829654385080551454940850638565405808193399600521828144880323312354235163659480454761958202533878409881180047856097008900896531563663998327445349143000108496916518481883768542747993659437404261012801453551915172553128671228145267028137422055989540932114790251874908738425782758657594882411925556796447484775440202790090087238841098824560515392525673091360641377538840858254596968006901948831496028268270661294771741169062344230293002526380690331599835994173675522041506576650005747403713156036157757532817343722672177942475310792500040976675483228543736044834671540643974073532218166083478345276634836619352305580225996099933140129718988752116146496039358265263522956899359024814923479125391062162262282584048034716731528535257145536828346251500247401441976036349299682572810939263247283720342658398402959971493137770457100939787561027276966023574282354304240083255978642170407479837143986624853426927207926282048395561836892857708849491550965119360469515599385876497187116746841176588624393262725823865393242323817853491473232226835159824632129307163342050134904631163121464018706561296076675255539459512349065562274057605874717468443559199330108411930406139008808580801509008698526659793947340251487334596723502452454861640595889100862055078334052254037123574416097234192694340737023183518931306734243067177228041908985539309823627191355722421082737527602072169415677500056990522542285167685115974248586116920371620341877595819516050155787430783028248339482439014572145505586844436134491481462180806124289742405168743960331910701163600777898476716261932192408542683535199999679416504114218922408009306126244840627875663251728949004399020809803564697094458309267596443060319988792224986798990879034274976902762562032284273002411944661276511580780654036261450921320671437916573614348963927061957448446767299094807620788914103667259797348487429012310921836794594544871882708244556252494874672926214853469005488728457875321534190145648884724662115499167542432261244230185506149009987902201770685206076369330204951149332115186436451500953967454053512648465158972763643305940633846172557534865317451216449736270407833102117359495299668458707175948777737446238294724056310437747224308361716601664671992676612583964236114399278564001567380531623788179323615969072593491139250500555232520709796854950610825975296794112295964425217847312419310981110320043568020403609370651892662390021630522263234385447166527675063395880512342645760995021771156048112920192542347144850782541296697094820487285778896749686426789049378830547363543496217115823635037645260070576173793165520382851351960705077135938600386223358735228844714499541437565950284378569794012746703776383639956302811613816677276521019675119179406626898194465338838328623770451064706910149808013582471814192636245626917358156531361714925252303512173360042322706496345434766942059274871579059229335667930546159344261791762729020014956395700255552222922414175427641511162259061526587808334456933613029646197201277506691459195856403235309469880255727315683911797060436694739230924835700207697870373464542470545504013956944877555894099348610536375903566227571089336338594735100271412428285711085623050453599080258177643424098424901506191538069294880021562641026956163920302132459314272601429607072109972886604147957626552072715423561139486913582132343393155076637982099129192125986662585218936762256643578393104079070354287493489030363759953480642478284899952728783871569819627774154453160696858474126002892863027248565880344357797892884810508527695320657778234599540241709955163678201135899228603615111522831326242829475410992419909108272895462434422535205356502066277965601415607731952466804871796828572046620939109974140633649601540261224286100857087309388274384515829737417899513805129579341016866451629128123622288950667683266267550506172583500841695411198363928399302444711673129420564260833841707096649804294655862204890672378242796084489333208098882006284939452027962258896393083673409551049027378992646497226966602589530991335611197111588081356958322613161334757838134122222248388508609156281610242578671750529632051087142483905585264005274407778784216669859042690564267921931002848755124179409615957660013197389622107078110848630511081341305071073917552186783904113479104948753899190811779441268161335390935135505254765099589816351239041683448122458358393033212167699655440230666837626525010830033846003428367774289695466802401752874033810803384138399120678476415860404827014278959159923557147310342416065598506551221282921057566245049223791055224555535598812634259333651857496262931873079529582657400674357694562280823019937275128023251787416355390421025928484566171552905692987344154703601354719622393886219853136767965448400513856188561264293947562981647313435441255433068951073440978575044659792408197199559879748503174985874280512893880242726199192522638475440216108817408247860795615231981256396952327741309168472149843214759313805272372152250248875004050856126579325170628180644920824888746215010395937291455916154208702701229422542022494408101853990867633920081929059823670025084757679656860713121570475704890356186128504889512115021548587799629327694274319281551425797912245981209332673234599970512974356940738455486276448968706117051838229081574328409732173252115651374897471007337566424966230348481972534620369149015578779249959486419852237770016329559094872806020067040027223195792296591527464648325717108470796934793842676383725624239276443819859393801878667380837272976797862170620006844602737522520043257950821059801068528477918056851444300199170817506848292041707165072732056427259410555953828271906682772617213409796137162472532544974370040221533850259623233578373846064866783086825917893150832045644297703241857825074765485887075390929141442278215078588338133402755631703595232188961767966356752646527217418951085015962712507013357066148088277901861982312877780495408562416528481353362138236876197119452815704731569450638542350544446807881339924220354690988663988166805520861927413295438210911039069796116690959211245846307564752643985578392541218654011974315204222114556102990518142555902209707416853452423488727940301877131187630064370743504975129359856140653630400986631790164743305256583175966722519309892087533068507422229916890201763130536355234881595552070661247385867746977178151254884360482294627207816995431083294241368091786108619245536643732382894161190625370820127618425373815014195406482436025544453573579846693934339824204967971854020568564351133247050900869334516366566684258922363945409653317092731874536565380210104767185541739766070304039615895181790453845530561869827199227159310006801048516171687208828798674794554639739485781706869767246037242628519843012558027120890453715516943762943069474246057051691348379419000449709164544746069759359240109507355502143224995841839986387718653237060849189170220997911008349578598687120819874254515396165109225909862827666930458647751984358192014417977619185147491665923972276345994074114606653608168805915072454340255694323292970732595341350261137032458174373241182968061146088157669455239442598101884113053443415677006013202343689400859485905301762876417002428791237481004067931450112604283862414815146277533547406343315764880224532208768167166855774570388039434859307850989068190840280942594491854705983954571773925193218482877095796327319120753596346632955940992248468051776340102235324533361107008703101566883353717202616482379180389149039961101596123386304352480298413352662496147613399030582195345597392564445960950814219656573047379792113911197181982860854770302742313513804825024158701847977446911043479108474462219196484068102368040551963662744178409274544614187996353979894465684310385409720729546781025045468045267082446233275042574725000057145540469290325356782037650269650395376338976751825930967886681463757540007956035586982221920353571978685615978057987482497409178454083990834924983934402286687383286709976455961665434403502825141530552456136367403525526356142222484252906390805279638151540169705954559943655199878120420265011709338310340710504544871983397226958736227827986666795572143512049026189303043702002209351274194654474880962135615502369522725151294872444394264424596548207199977314032668889153520269201134565417075332718508098973538585939092039799281922412170099373600926968014543365369831108362964822488725350564358728149215577078851383229612276564528687045467971111505613371257757423574498603718042430376191363848889939818222645767768184192001256375668831688373692021586409006323380547690112993398591200806190905438006055528515019721078950190906344945843114603742147308706280740553615296672373508875086691343065259012324986877743081293692131565692825602163480939063496218089984463637629352224005382628726836522917441468870701154006979792102042310932916462235719765212310391286447186838195234168738422582401614268079430218596029979087202096485653233841317192179712522570887076146003486358700370757288550561305002222758403105705334427372315969686357725238208837834820963905516289072405142083701162956285019096403200369697351236289611137875673573353455859617189888154432201415394211940263063643187409919370698928461650612233782214164984085261938270550035226642628037375331913182128851038028688725801127573702794797173856372630336119031537684549868201913719368241449995956648090103635491250103473065594309636635360716764024094174374490112299128966474417216474702805252787987413982011378262805502487301789287402656842921924526166220069030302026522968052808134316235485233419826696617239922666767213654229799917277415645000037932264035907490165681751271310243666527283243545889413202941422836621800169758113108092116622292278319026785459937416335934182044435567269118504986199472570571260227652201607603023354245443270141837336550183216185078133719721236395926258420518274427365171261659261485567742488536381797950966704491766299112803333827316092358235610988508209917294740211273559297268225983046404752225354402933318968493413253047370583094190445960066528815699786070573814086048702109722762390085937272177817309587236616517004757669335631001764880040471980161110411965969777485550893448167424099360230991536745959167482435994219519065251174212403248449131930698213951192124240128981878488996341166120243785388070438857757408660770164313950559422217000425731934138158190089989522591716970122991235345288814500240706868258786673447288115991321897892651029252531760965887647569982437784417003835977140332453196785491650808339420921659288960818933756202143576569750891915856566838622798125813958252520334272324005275387426531771849505403772127920962066804898467047506021891424757834088994245031248189275782103618997568576807421571247440018197641929801372007710710137940379549731107742000821430498297452283562417829602823954626794596649707949446460728495333228036641911427643177180154847673373742428900143225679835878257147725236531885436344683977297047991968292891840667411547570988088916721134270078522465402852790517438772244516056373131044825996963348949610160365925068444395301858969812368364622312699557973150302368352174421647578297395603547550267899215270616099606070510161216890685758782069147916138170550647364077767594793587245811565776411948402063727043930082989768120394040538084557300935143023643258729442999293193009011799295126846528919183750845119609325960725159769896949392235561362945695755207844550166787150917551314067204975456340677131947102076266647057014154126947179486734408150073937802255692581842872324462285285497613543799092550439866263020867948599462421968006644315593482968043896547310115315429615579650499294167388757008885657803826367606646602865274936284538905870270472119490064467361455196564553433775372891544851875090709963669798830730620537352083680737673741790873088112601678450196804369594421197214682657443043914232331518469227958910811264963945425035291905517192900811236602381848628597304878007544362445656649785360646018927704199855187776889531602568758045870844017420788384401967221020707114622544177550513426641881059657745392169819472266219779089731116519206097562961034133808483410387016588475566687457906805790302665807001340412599281851490167388741392930411755593340570420900282652588943759408393597779254705345333014069221453176036338952013127129238909199242207780754142817867677473272157020257956914072894613759808987901535074069685805703688538225218060285910458712783685603795216656889225320408487921136013503901464244340109906032550419532181727863901869133037374861026622239791359074977561141913653296064350788357884299525741980089142805449793570363057854502186572384625231036380296393743577482159758776834705870991690737462799622106811947559867871969221176248899145702332635615128785069592261697571117447884649324527460293649223432485166689660360811399597575898240332011689220168987821271007811617874719410907293823004066679948156272107069173104510519272057848877171522943118189463507462110216686382301127519255785768341454105428832718252428098970294822297885894463791409879348592524874421208314489177733933147385047260443498267244217849173372194625754005033109086593870439742009939738781357615734070534785822509488632085577872148290119759419113437020797645099575814972206765020710806276407255294411884468111888456481739735615760685893211929134413256076484509662547031654373679993284416846319239632024207998735920421257379759145577710697011045799599689599904776370204532213761282222567650547646331021748547631297230935939817088837379699836043923144096815697317383595514444937139299651436224666892419179452775179890435012341309231692665200894070506197085778354956430592755273857232698824325443983066275096182726081473189571577907946762096220558390019996196745886591455688183236496251900955752093872616766220921228629212269237501066379296162022984427720168378661155431446440060460072587571614085849797393387558422565247490655882252204154623201183642463421332642395205563019983159086926762369290543337490955952382385551089735588327971334475488899001922947117362613573468954681434512744566873858453991421780798673581990380048292278801433846066023341466719753806380750113096536567860928909623140289661712101432375908624145360091176428015615121440852044352245003365186288577309753718452605796131369810680230354904284088095108829986247798864843141636269488247081516670777640456194494403845796852340635953011847307764478533739635725597670585090908738553885882131373397540906990271998001707055151478540626588095285192915437944325309014722435371044330068564097742262840303763664712975575405752522845841798822386714937092971026728375584321918767837723406681862894094622263577776070746003824647613243165973052839037635748478725140119381303433023048689158482806761629312478815681064815713141205776319888649466340795131165607423747140974242185950809031943291807795580381233776875970004948162001890912819342026961126911400448612381446700131918039098362893933252299407146548023003320769683164876988593917859817558588279661783396281575127816130261868233962783953475006150675118748896852118399597038041356293579876982826005389097620559369931904970242960643475553347463809935194288624527262520791779209151871443008005539504904220685046999942631742744693768387486636925655423680141081418887473865067909066343825649437508086793131317235001012814935222572815786949027857279010994085502578549375314369784491723666021861154591240864971406581380191935258118147681799529812545600125917354863653532766519130550944548419697436496931404131210441865319220466474126258708019272116010574052155293454697593783353455871721981315825095259833069155707585063674096243404551322090597868004957632225817533262439076981628872601728046626150436016336355481824254929594532430282147641636880594672877779943278285664966352492461247625428012124145460041046901969408219172259735475741946385490778151218608055387570849174230412166622254694445780114954213541020417375547641603624909236736144881848204648002777708327342736112603219788481502606234510655696655387476828715803098366245654244663409696545623167035978184726250768652941317240903352281323466804152547614301495691609476200483922846616843284604998759519647085527761919083431831225073996218291986388298082580304820708127656330981416932825800126252458070500900244045624962110679393433516504335976833117014185240747529822298594408790234287837879415281164121183622094650871873781102586356874443484128554830816297426288669617491852211872121782117195809142439984673897877097141608356178805141052888224080254013079157105577316834760985081582147707935491710005003060712402566328674934842666019234705988910843162413853017528113855424665541853438140612904720132854398736861563609720845145589912444482296692310892749500499937463738941451669427336478547861380134033532398237195757016379495359396638277812568375694238712369795564372421555421492358059970186681317464165595587211756044579682652872843266095491903668229851064688046638641733942241972564541636361550011072947756533943812952291300845100567893856304992524937185227490302756056748941256532372546779251170502334719385690977601123012842942428791508190084321934618023506671947534386223210591730463102760280618346416622193711130028705530697237535160484712350681571500035175038256669076235993816369557360415037339617081006556124245250862167446945862244294359373925207728521056580847016514503312832266181374829053263943205366809415851191598464648565292447198625794706725181898587205084867840014175932079365377308415037366094472726555112479310265883182284721411408214314649969922600141826256183605253225773704190611234117980067508603380940957064425488021269787323237732593897884857122849511574680397619560765845501333081167794433879150612125648001631071279661471875295188151215753533780007691190219315650090779781552096677347461053872318488674492157910869988708307513649749204795692505630752466974204414631755457613325049140597057406678060736897260533373338105215017583060760071559817232599400261099646135215418271193598631189992103460706340953082444595281974015672838066698604284102146978251198502112758600735645321506109258481549132723835287394429023536168183222811284763140292522765430704944226497547624227419232124024901238944389809862226886938565928270061811595776058065146242638759930730061667298421670634846711965753949534085945342238194426179809309806867688093987055343954685552659547602963033526025196589847403372691531754441130573361610282983531708182370124829843086139982414494799283293990999797055190376781487721928958416335616779722510273406200818867496587856439622060340851073712386578952288793916843375616550971732155168686440324288319585373231397964641841632921246127468808434833404449226492151195278316423905082830783957592535981053618783681458340080311761644103540660560596028497547141366238984436979831790215511602703712838005052706086677756196433845810594541698224266843811887164666055112109613587942573866235535847921137434175588554332903765463110871929054672484601383966270393432159078422590788195147601839742951682456979677574317375343833921647049452569195929176038782401845312832889204386308462645431660896109820781852687642337245287298809651841309121022238576739289134229043015388685888699007177666823726277845922581787397157784772884046372237669732634749587248158139156524410358326054869455939551269772350237323933740245857570132825696189227530962644320293966846349965850855986999334756083357828946770301018793701865389546161862462568595731851357435698075136666429198766341181306972873095842460016975933439929878652998487282627605100291019400344292254460770322183460648175032373998667786072739987668300894658670628032941113818315242843166322630121554613957347448172645798616445962063591172299946156113519625909404745173648451018376849688798964514019232043858758821890869556485129056268997174055611308571577558474818277837120834204191175086392391489900749328372432653432276811374050376381692309622338023971333837051325352940269807938645655826327013848453544974966228649569464729546574286470112100771129018761255615600184516837356228900089155951380169332787735679051116538228162333114129975742433621370996685252506400092190497002745231575822138760881511322717082991894144475992080788880666627737545935632445346885210966165149029659227501508256748476490942181964555371141052386275306818857792241236193047127097478628415797660171614709042487457372085372860289269632951621452698176145605771974425643036427803511087424739581467282290596147670348817212640582209252340335491473734434341795590323570047470276787214079379336120891647227732258354477916439781593916084607190205157706231201986525585383730093869947597835046665437254209154350120347689673761505831035643253697113205616896282123189542490748784027517883629440958903557302665671343468333875283794061384993076391038525262794705057624474316317230435396202674470016769510167623360934091340223303976142425334436389027476748953457675765868801299138847392142493407984359075467801927562835565589906228895768984094242483184440565230310636584194916673062111568820583696840725223144218085001121032525498347211183883762166386066449913361828563631552907075272706739603218556380465735247977217148578824893802832989142283061420168506392397934873448538270528667353314662893360705647360402832647422098490091154288277939253813478929387464691615713643660869053339921349497100360310819726197629140470992364713581353852370125046973493085726531912347214645819336144777853833760289447811667973411436053260793546361412404302474146061489692833591991053940870174569749511862563343158381519584915461498842602396033766458322239321794706292840530154110393032611121444270133368434752688613578460919207598872555374886087403443803323879700039808681678198444921853819343534746173401923589399714782315171888040069578676301285640492514227220353197464140288297838792510072229527092206312736955572206052671231310249973140481854350073427934733953744928759760937797376196384547939106264866211686824935814684785632643237516366602705947269127626847347965966430763689916828397615805712337354053436913427872951508834512020858050163815878792504925814686619337618529222905652253040311701527551438974288186522291187718414406694164627036059541645679818799468514891169044218635372778519146752245574480219557964161019569472631561510766836889820988371670874376584973609853315960797824061896001456646355126263570322462397012586566972467786273588637607100090268089186643619663209300356186989254032107374981295514453514783941471561113918580380769905103430408597361480354856381954068587846099649100371853421058328574230595996056116057774962183672281700765158190297355836673032166653015695470912854553818917918691878651351146270366064636141715929918658152264833758072509639693166445505421637203657150416956677849227769678582624209011526555263234496456224421438025218340421606113874162911217622369267920047497903848316083109295187415391914432195259578529986768254131556682549501671977042872212203569659089593617268842988679861974625733122813868775135334796111071648621876543716131781493309435866932230062965051396603642169526856477196335916910656344019240704259790053346630722639885527610123769595277407119958264332319457435740049310676850084778581059835345091863920781602875898689402614108055679913958718561437763167155672606725341217738132443570140549134452352188649777085676788084620007540813306238082047898989429941312637968552850458658339690577788234613453161741016466165582103310341399304670900085512673191430533760765670972940612541367709532666709939374126581321304121937073971873673899945989001082615241731253821847839599709249440766613992549988277638261860117653707055718570889218262723117550153185047049415166677063058106559051592045397523891290245127508432929779750528663872162187386968454524979824532092782810060057628497260696574131986308627783015149645941726241481561831166399717411785618875306929985646145864035389464730684636877960205743918449277659152497201792288848848085472617787923404410452091737465770086333488439340878228413274115032874207311722799162418027372152879591713074945629861381824550585585000098857448374968371213826259213486639617212963527528551980892581162082055353148790878828512049496847895262683998282916035363646747689507941904211305143314924523134822187978379899947844007639616087979039674439424674647396827412110283021673479830173383579692801322629151280556070611694378162871044033660422204303941294049077154676571097327613807876418904332354150356679721367171995997557842306897642596768572701661419975809622429907698416534004426904908981407271809393166924560766801104629574269972466956143593348231794752141306150796658884508043246633893980204667694711881967739687574039072614928674443480559045674803004788442143466484917317961295171784060647257661978831152585435516456836635792931090846601673087387801291731425379946152666842813537012180487598652485963125156395825753770880965309804504299348868677142859665252868496050864338241886015869910879347937024742745076766580866935103195702211294086989925119922159888793292383114307675670900237389353932137310147889140789753634257356214101273210960676654400446581087984312491762932670993303434813339157790141188564693479650071369236439638590794666508460817699703207404554238578018738235356430008024247691781171478626755288626889119657102406698751006415357912115643745582709904887605111762202800605856625073193629481773209585616305706411181739765896949824627285091759511017252023328679467662259916375220592383418500274583467953711332745643431913782581577475409640273525781409376584505684637968037642088837212632269596426975135079640118923475789952241454842528833322369239997639257120536647311359087158427896437410150671488170185891415559597719656161282038558458439640418598653830614456177448229768600153293147783620570704168073958690262010983738485251418000756579161324266393153520903154141498683182905981113789173065587482662364852539709023431569577129183472727948271822655681195955147996623137772268102802779508887541100383877539064521169944578972684720227662474905842431504061054155319951851887868289816245408196857015854869534713238802244167650768617065984569107930213851052428965543950480127391893447452884202194789864392623615394646669842939514303539197211500323803346711108726778436649767442302362073429118002745821838009083006849922582181008267943538558841895330715592358505466616736962659794050385499726791622071292860452775622236877386046468025390162644054829531157834479773116243878761971028240670384096759109095075642321730770075674822155656678563327349300747466710508167109595850254351923288963072789657530682447079121822220719709903030537511129299447231832291748072916328516456033361844763781144732533172858792917916420555672266329872687566725316133161556625880102534313162889766520635189450722213221976378215581170092949878760415456245622428250830513431050518584491325821282967558794703716343093548546393275646746850358121281331980116787597959100557668798165555725783160283049928608653783621259512412463050920245360021131933198665904944858304862649886420379004222360730316877891597912768568617032919643654317977589901552206657756399017803573758716734416830112420270588789572969275928905397779127236060804101982580442933056674261095298074385343785115563833126524634174747553962334672470745025503042993692735446199919524585846486112080497208357453864594312161405178992031815129534191567845218945975588402133447587011667217076217484490014840911146986206234513508070431922204097805174600525142635815168834611371265619431728302545159089403664946156231306314402738038799364700472573018396291003088942671554063134706972979316892467704973249769670240353482481094385640294368492523466730501066044085315429957038032536175050333842991156193014104591569194914792080720005267586816419310101820512023957836949651542653366515869491620149480091656096966760107067099102829703928541796445716716036841935893137714461802006947163688440980831810901286364613327999885274699387347111107263150514078149506142937607011391081955092694353089858442545453428892383470949688422203981158318810111752386892819847036879590907747672625797269471918494403279847534727194479538479915695950564250825487617843456326425070244308752563511594995362900023652220506288611959816156955981211708489493099432603662593966536055125150548042203158069503321193299151712218159632742297548841764484648207117487915413531910753186808597480498561345361744247498929347628957325897136583488843778309909312172018328206158503906870030030678936687407108908187322274922664787711720354172203009418897703896840437376057985332892766268046397189324892171835388145785742673789338491613430157138694995470775834342049308533239235501067521638306706650309181283333042894238833596987304406032291968813868635953807028862660275602613912758216304308542810564131689274380366959149943029627593072780933312703280646257405471027925841261761152476362087133892819670413970808030763679748056879248933213567299591940134455079439062377847949549091625192348676911737014008071521706274710874285669944782713225242596273963913577712675288106415829530128785542592676360993108026124488067123425658647858456618662895248109808564331782206747518994516178033835708675079476252463483086936460224413210183797591209149153832471138308363819102683640969887945620651668429589266630905614203158556895789491721203225651661488015068147641799949077336526618196115200326733869404542908710119651498196105504921274972193730391061871635194039715990614265854750240065387914969165414903243210644912417898245024913309578268605016014733418138880877977913051826504475527195328701748696430563935166351847228754285884848618440511161686930903672398610791043608588090923437386488795798792988369867268852899759084537715994652393248948877337771748951534428855378209972159834538185119781905037394854896765018226410467921746398641182332588960521198852420296246480825592901824634015498959802528923586641676369562568676313699633196723871388940615071913726223170461833964665267555316159061002358438029574344576899603563090922187352217531941930655883466418868396263891609231644782757164232788094732889372268753291802550139499866608773593536594420309171868104829374840936350716700659062418675459639334446813925412743824534571501155656152847699794801077161683887290558969227421127486395799608907302708839052378985602181818803750196515408883459871561022731457674068307264042494625794546919486296341818585297229571303524162833099854714084111999252884997785277928048063829971897390722767452435490142718488171916779237265866717659604328283759544161800878267403188482686127409884374596446987362783842784243314111960837424076730480247807165171321054709318353479372880616780913862966475890453660582758263614654993462434186648901423886962127011737231837643295353440519677157370602385876819881610634370918849448156195556207656302912841395881150497118189285044641005634199202822946385149337531280090440950047158687455510917853580612266053135812943237704998006597017055055674271260515075087681860365754273135986944180748578215109821230496668286880031510933937321098353492092578903445832746669505836564077810512757454464931377087249740043632716719320675926279672366701830274589215188146668407823570560308444390394804515634587170122531081831961406070905494903112618355865185208671152599382142319255119770693938223288243335390518262393148536505050603450030024812143945551940686466335632599787369735607280760234993441899137608421775984255097086319633659762252848036688272285328088430523835717702050526927998749968193679916270195564070139814700410935934560737166441982463985437999949697921966456113593631553776741108790912371835454323107713073095994554118805072181657373631318243881438729513189353062658511332140163465398831154923713526547854414801259194420747699011658014688993799550398205526846862311587692719433042069283894192569804978459924021090206708227558882690008133840084235705411388655229237908422359315347093928143436092510274162242975769376874606084883245813155963316619602481447549492137719066678915929692005107529404382398232690265860416310433554457895791082775238889858712860283650847205177822284239237787732494127249890757222941932358529771738929025968637471353452382397215412445254626569048761225286520145166482298224002207627591548216713854822402543804261886597367400371642682517500855132375708317059637979529345429434951749770160033262219368896562188890424389159777619198168590607760937989241261692507214211048792568970834012777205694819653929710009450878755172291349583389252149832393128012177171152889715145627667345906771714266383802502001341401233440622131459261708401879911075772498238422009982421158253765952886553704976049859600610138514461337622233443966762209585765927533303495246399643663310590753180524163168827786413587246624040571550809778541176819775307145191821642514718225703093346039901303564035813928829982305760753671005430169259600366537344148803140777042735277214465583474169592231634383344796050494718092781981049240421215833966035510371659884720548793967071269058227111139675126467155031310976686026756155055914177185644098106979492074249016583342203565238255126221029622926294565021018593591245160990326073449280949529207926200151860438588301040753376903738289888767361392415390701121600042066995162907366302392125152372015331644089965738798853293911401449943686702354083159519129539221748986504713938083339438990621788634174003683025572242539098507795268391252267518028802571760158930838237707328331838038007668606676827243512041830808167125808836331923337242360666570630250317590423728633454401722296305371040080891167150040291747283614014941133080379106311727275718758077073753503288686696233731078361227385094263012061127227536190917063877967614726629439665034126959178744231142299230228602681945444539554734371541902925851092472480488009681991058276915269772378654093596689671709784268419087712868343698535840475708761418769032298571632884197750899947001375636579836459245370118363429419349835465006275261933869165268831737789710454404825461414614466147018445657815306784401113769655618794600585985040092029464108792118511507546423043086265213093435702912433450769848842148268497341226404184678446481826510975682198367596306886092998861177154444578172140192478658850441930856034285874308921432798611015402727298129627167607172267011471760195026558352316847931916888776062533496802396135777353320695153931582699255383928751829255909498721340864634223150475497196058151751632185188885704394481359916868721756663083063505933678367576005058531830874535099652623822216928602523209791780532366779917517323155880871770152534608274103614061115410652926600453052906026563944467964925636673940015880057165342910188181897551033301128930572579974188536241335276288884450895410108124551934099397189428132946744325587943613902034442902278706953486719521714013598105997058881083295374283628547872305713727886411485966941918056308327003993047296331266901044986384732469605973740807315522364517538488282385151204040143302304211253198066656296716468703093959079026612141800787255353176313604918440540613793710877231833430676536251011357664794510728437047201538092423513260172745068552288273742597829219863465383945395644382185355409479731286116082324010644974665174197734953973365254375252012298093485340222761351427348883857669240223423497950330739413443610082033992372137001143800109584106057424302786570157509884863765964095485946976100705710652619632054074250290264996535039001717231206012451594027183872469702494372627657831966392363850983076381307676296954599641407196522526644205362017879419004861720514910844184594271741826818066179616057096914002351132489840346524561308141725575435082137877410081964642240929583310595064133231269122465804311524881314733831965860113474317816629852844591603611629121826249055785202360636729696614782118985175942639738277651088359309269394092234116577506177692730623331794105594087938638115067415093746938681233205751941561142395290235638115219665240732418199128283453346343678485066789936258814720942562238289273353602270179796384630527981004609967072796063976400940462642290317812760563026969134159723557248129053580881306524273850344514732729963118904693706392892885780840273512568221451313697402985864372864829024792095380427256594122088837295715322706185507144999438151553224170438057851044537634095599448233814921927019540018514315793886266572290029784322782589813240888628277152130911487924997077021857280805517225757323913406418195873047987064810249878800835968031239961432580748396683460591429223382810244463259397001373393083919491928603756761416712283601042981870557795922912560640427043797018708332805416424695047677891695448677319441377138740127717741955005066431076152297995537820959953624374422153929510353801295687794432812860394100761974321162896779926107982935788865559342867187088967581839029801783513873024347751109720675593248540492246994640141648045017009084723472079064129792064931769398315524147467640660288504555445428705055006935079091672834937942439004170441287022558138871820225030852918832814242228130694835862229861738379893827285521187724200314093032950020066690852457680001096639007900476368018396029677822432051471944811859532554026791134809997898009857970811172698971048550086569035443924523952451503266851503643737286167102102601556957916669309573742630745290207795693330305467363018077554290876882032020693617617861271004645130520562739022929731070494513152817278510990615133978583846489990385375785764878969859276073704438145085033968370088714124275210138553896728036871131063612027157276898665459873670440171787013952856271057351879318904529273047890090083649532262541257615624907322013250285470853391162765831992274179991424806401846821589296259213530722746046792724199189257017472965264120462485898274119334293013793550505197131873089466726153980215569904513408390665418916613143538685125658707525973974021804657062559837910565420537856519354598082563723869983713450187094571430294937798245353686558917289272192704421246361201046459146153393896656849931046566296557230990943092315589998820326470219884584305075342129054874462277445290281186594533508077586930789423791610149549879104204556826183396625760911739650953716101953730201719877559165334674492835594816536346485293734555745305435913990367505153815333936293641677556520555954474709318198396855178880728240264016104528312596524913580241606947601611064246144640706016411669362996136343611551327944651309124727100059626756751039361670512557322489676969302477456020695258112795446500652857777001028417195330001007026687117856245735824306738173545347661206589508412615126423032583355656422624261463821289536044908762760226649922998431585066923779610147881323329263605584223793365455933715439226633306031645341069934673883498397222929377001737195643704243016587864045578889547787474188613695462973246917212683478035498882425177394628924828808687158489797331597272374845687849069328712576097416303433938498770297243328616444105900059610918768397496521135452867349682957546919510199252800127837504597064218827447576868718919861672781993814165985202895073193948028741820803469740802254975277977872321254208333536029826388752495630325962401553642072350771487610122644277794917133662932627801948406404558864869350043745545775686178453056948541019968818755519724781107551513599175861070549285254955678756913835552719810158624062924565605235210963745833560693695955140165262766862606614753458172125736630244785379639105533567906183718534870889251994701472089625429887051757403231937675159869966691741878450312132084987817297623260046567348464235189163071918416984209054893264760116513169273266518112683027984951157603635154130769446516660300761125012736208095464369518455811054615275286086783946525114724377142066236301893908472139637943451066595765538335701615997120305354546924982993381608273197367707361773763665547539422197825550593746957692088202115488597624888609358677094732670211824253937197759565917813758236287100408236292971003834375093245211891013240561849667335239933043593848681559266661116569630900108796710630869841468203515940418953409074416829021622311808403589606677422214834910622023302327466247298545037685640638272521853922530873619319619235410958829780219849579972144950988218625359987369574021905453533399364836234818523528856822387268429184188991604045508656905293817205493927810123895210457407470542135126554762214125949512304365089331023386125658681213946763406899841241512741837605393863858335769122951971372265949819178551223825703658486382907401508061956079607399731346682076508320987599920728070103829710056034478790897458736558581126526706305765485926248731044523782808555933187611573768823050486404718777999594904582419080520230404808670430509248413637073228486670410093760923477238861483306774027791694710455019299999777397125178247313372354910438530996148586457761610130626435293600740026367883151904992151200087671365008810268935337170421243776562901882266889537844014975738336572201557688157588533747773775789406637251996409818631504406161191130856562858942366567470276531867691452986779175381479528260042554989486714728523847852856835918847193275569669519996706812645628571673085101276546288199619856083101022736597239242023145134571412236190378566727558295683102979235624741122295741067896399570609348027582108221789754660314390965610466747614848852150135551031829535924485308283440882079840562663888315690825912814332743917997025339918641506424159053256658038489777048828594479763576615605883770495025774000013036540887139736549228409154387329271317192283747911363521520102631502675856960451357401336068073842526386690031685702749855092143013101500472354187917866268721143797893571560802145948897932553342182684729104653618280342459092177638757324980446957058349943173576458447829615270814505505818094793460014607736684418756865766987885121067571003914783248709606726259201369837319223172633751752930781011946474498784624284752037997126673010592974848433994937752441285268694559962945367637927845989790848048164225036857437458741753355280870408745814449256312669065760766187253569426629658259392616208015580477268337173387682537666208863158029110029157981160104246375645620623818218271854608791814759684192101527677636542166153480037843973423985148236014062165759746199256211131796964551509298433416658915082040768257598068956659514793921908265893349987811946104914180562947341995881289901122161501812920727390452954545419943278881267979066724982940977863702037488819967245262453961259758167451033777081672043898179899841633726276339964147302247682882958402426587805340583934445844539923701286569983790656558065219635356508227858008476737733675778527009036887141954280558350480872042394640822215710021742716873575714971940799019575094583532660746453013000390934755073441773959954417558310932436519524445263819101996614867450604302606417223828656197955167185602066414535982272031186903807702347866521085876766896517822293163020873441011560388143952514902707976537953674582396684852569673274644178780589803667283107840645761760438564055236556368861507675596245938102648352629287509661992943164846645914746937634967223301195118666920050198204376954939938121564038327211021452076628362179491363872546866713375484252399761538944540241277954268758425758382670827053641384216018277314610796461097164247473900139510177693988154821366174808557416719738991115720982727973433298220831624305766283541593199649862997421092334343252023495765786415678843490794121642919409154613744009932789840643592711235858824938237419759134677460092218248285063285060769114245097418532573956674076137693252820919062009998091868556644313136256655001014167327627459352121362412385991544983387509248130181185067700705943637055968655540805868282731471825456745510118809357867416948012090645208044530178485307758371071631076335366673603706585259489822702253594380972854517702690002595164613406357780385817221863855526906810368195848382400468982626915095985063227457353040478939004440883631012368835638188107712847901673617614688085857624906935372653067884240043857308023131252799486085303596305041899807501326891190541369899688063613285484117061438255290699421558563580766122895559426586906444558883134533869097252346694828131787114127382632554135377378462278558574389455710275223026016162570928636000204211283633377905083916936619695638458378351894901831621358870066153473065453180871328774221581118876560490718366418128740123741813995264157582507414462455559487282807393166110401616846836822371818275428510143902537649878714187462663518206250893329560883359283788921913276890024146178363323172094845922890548754242085004518337534710327222522768179985899385379173496341898268600576272378347252765959484538992521686003462922671858481245212970209919673039871128422429226473709819993254973471791560398656076872281212829679525820307935645906447222757750634737687407282506370098140138108807911403443816384699431537364996799231783679076028971103239160522747342507110411235066612174256771844173455444446385742097512612543110285892672416065404115712044757090333272498942441903174451851062966491634100358647928974578659937724311043376580314927454982130275000120270903175691030397790349101424415452903383583591526175655668844526809689159839971223062268501423274323622998985750969070135204653875603977426921076494233714688330068059749466051828411688688574747207734886581904817479086610647076960162805387484481990710437432732679764624603960727315264381193783763476166767443113327137833155869900198316427405056775820663013713509668547719158980999801615805464225077912441413780471541850166037941955031847825891265094849013593456615366975730044127959631443754095723310919235154421673731669169322244527222331472883635056045765415061059470470471819675619521846553156294529898635189193060605610339756398139597468499503167371363513998896423021905785899409755607220632517459742065015453355066507971276907312323420880860384443281490991280497958166054883730856299717356884098169014112034264160933626273090339986873240376131390668095367759321251862512365251910000347473450091619672995327911180522131802102864586196165654074039910705021668455212480672747697162770369537204727209721931010699273517009485800567822913407662950702463642171237603894962100899935410026895358093335129551268751271692333760691078001029677658238147145788861727424444093005141365518867396261076877107251004989499088887793268966514621951220592884907447827105972106650473272214690409541658536714541990602343976897197729997930796003971583627181327191756165387822474227020558702486337260092299374809629548682641390631055037968689446144620077422102233793609223019964423895290073177135242583539100482631290559486858173989569072164210554750801316308037930544813490905836066323299233060604263537799790637412893925427499970972989349394618140591145408544527335516336377412662218784744441177315574601723910449225382559004071961891872394941471105026367536131262792097333950021423012236962961067428493371715662472199295472336659683382869145519131904550542573400286751680134110514946447852184604537590266239646779748039908099835815478126392574068703935105618442850153316724729856890501165126741626613045918157734397352557341868660809893795380414894425224445655873033708322778624382950066339523189967773428306357342304076558045072287606478513510352593534897463249224027890964636294665057607896328796104480166511507844504947393138460393484000287457550004670609353787824628514238671584822808417681783046982557478200186877688698158972829497059097406929847377594096056713583585554189823458141919736848562462576311563064279859566605546930484103884468322547190752021703541561727822076685726259222129741743680638981147324240844036320901491988500037470665774113585844466047871407111553008816755107533253208526035761895059752939735971676436437437367711983196515113298762086857973383310158960582427328182123894048425477355335863175294094444423538687947783187475672748917176653909036042286095328825427501548266337565577011005985559524467727829180951606452674836752608435060069415322122875129548227408524264801990102019352408748144085104217627591518125803437707712893430004296101261617660963769374052542518614836385294558315343401477803968122872589196516354007068362768240386583730452580896118409707294917854886566889577873913709695788601048056653339778707280479951308233430585116399761837033038364823761430740112476306623692013570075765559877147503816876738647129910358575790358970626001385204214900376554377745797998683872495670636459071274529894054528985098804212139950817752049233544613853339264248692193556302957481030561945803466327358082422010736494521244569588320856728592915658603958848143319010489013036765756343298348306946458841618852343477980901343997750927892976880555906487927784437311188595096916968673788085068377660894817242434115377213631089030573929017156770119020387349316237104586588142262431311138941385092655480185241575824889877959619862553660570072863639609880806695242985894631873478293364537368493868843934332440838228946729784211299777557233965213049867698776331943893948864623277240108747240892064002854673296499636000741648802394239823844575769108723525628729672933943752327024433217255576352285698418211727200175014330183959906866927875525494659718993105297280508064964810587374309234122004358032075335561604589393400865632484003502591372448886421351028823130064284407811097052987036207126587504930551162050222945625052756267448626954846575787582887082408383570246021576769334110118950554788414597809100801532510180872937806080741153740357206330025077775474440896945754178466763306922614172036759702227044865599963650877480280882956428263623387996139461473323219003328300567877591275172501055801513173653845754087877545692563680633622028908792393329201332101912504459034227668151374171024336589750126013349770618822228999119093465553652932015430194483808889767951943273502365670756250683121824799910245084106039706975744772402385357939202690745474640319468951621602631746801935065198347606097710582209306740950804115620705809809637012965686764432348546705529045182414793876746810404614310533739891478060955957934921091513171962633894794788498467279783242842947950131864106928417220091984655550400277781660552911428919001833686016475192191029360429685157003575532352566397844442671765149989103320388997369124735918636220768714021263838401761491358572981655454008633758464653458731830195578392376986563641492831537827601152161525657229914364906663307507381359010864328347092807707563621311105607390795622706850970162152042144711721124441507554071945588987811421891749555009508154095076093548213088446424584957756706188564312395214807547023266825657026528535222547849260695874987249860169415837252185679904697183094630998946437211791539115357660186821822050895336867936707751704240669342002640949172352414780495866894492006822991350412397567396847352100342524607574709668465004702954038639379730930690827638162186371726195454818597776621524579527785399122631435105346853444770253444238807640457667120207823042254140147765978542338983595436559001075879576881507383482999578301549665558854841736033489737622554968375974394170992313286146101853518389011659620223565158778890862014786690043342227562523643635919981942438080431182591361682033478611034902173852418743474425614335161130622322839172028052417604652751677305434444329762625711915264190836358076071125495138938918430073951631135806981257166913299752775571301778540567527180706127786999969071042995500326412443432082881594515900478031953423056970728033475760056749136747250077446869850462227448911991044953336491074341774777822883240946129685201258116768468585012732647579601194995643622840929453434057844478133539341667336629115122122134666942645661837321765007589966723889163849305214564185392179975418175717935853370714316054736021122322562187550868088867805681048551257810475016947254633462609894759980697492739061932645876893837321687998540535522998615737420279416440173995539929859071431857469744528318767610515370772224944640266265575209049091045561649065631194917425895303158099471572388304124547588444942361583030158009343494127921280873480953105633595082327768691705632795113821142892907930376702711520569889589353354022458453701232708203113641571973081129153152631780566013466915795279882693263191827140189376603716797016708031482499457538773100915307748016423532428904368899608105909628565885336133089631448881409952129913132775842067223714763815172237772824438730338797086903395779556459115504678079810040242437229834242198237478530403117607421312741381996915391206940826255886401847631111442294824562900903727213303974406614358576730103114808320287706956106354731317051037012524915046264510839530770663500019960593048035849420698353741917532199676022655257367334617045146183644976809212159945822908159972204330518536636160135549996928799346409376701620033827740301292241861086208359429632559733185139929084682214286168029667168225528497281126010256554149913678224033488884826710694189999931227458815521245829657376788112977730990047271628080854839316907360541931279870516621499741742385972078248101204034499114255518939897111260304994554512636513008202383485148686384677075536759933362754859180193842496355645815633461392760888345942914806221614505634557634766522948290161701045242712173608358833705388301336022811489911850824574048870824319583761504620367050192628844465115415487388500492853764592231723939283600722073075864727512211817246459453716646632366889745448410995180501144165698626917354495626642870764652244558070828555027894692312524099057663706960570344653882892890297270858601270154512945987614729426207713018112430505289171742521248663052069220572912107921325140447732484031160100538533855964446231089792071655812220817628666126329637662827262578442628112724935167380558288817900375001213038432736897921132922250034842871498746651127441221223884860623381722489035343070311432853076288260348301381359385500832811328672101910124848434626610572524643331597627644744252119697454734250838698468770058832785454883964769917911235326582380883432703995199665983992126725243753569113232064104064352869208286815376648184064133357657893735850021529254428881155194503473043628205023821049985978616762665911156821862788174653871476657166616085279508302343412348011651889533733462702062007790848272175339445766948894049778080864644615415228639484375199132478111333598698149228592113391064309207528876262125504971595912532831695599970283729359660425186979709640170123059720052570143508670600807736595050901275057980286243385235066857484205671297429664762069597189679231735848026655698029454320980433547333956583645665161505364043251168068619158960976392558686809704648318215805010117262691353773528522400707256042049407320126920910903219153272761224491896339118935269727671661839663192460174799882203327813543839302050696753548160665836778230362597649560503703082741879947950371366817727484831347569209103380885338817425914493664756987094935885828941710257890801639381770338481408035120237733589937659389229134671045214187866585278855141825225926249446896147873077970094419515238384001353864950504048890525945902039811139950073680793203318768516346863003086794177792832691328424083805703259806136594593624001573571376307751669827141447119633639523523855728274386603959180862287203147960327748745944081569366077744087226824003073474591582456429974294398133184103133687647662052304917929887191165575989235021623466507060228715907903100758612534713757834113459448452917793509523688159891062420782845260635275494094959876331219959331872496194996343585765703653957238301775837599368620375479057983568055313680015899382842034290686263058548893862354225570066550777464495180933127176235344911119551018287761566988856936350089230714549792352131300578892517051516458561557131503867328720607740213308677628931259723560247685891869320894322789636461219465145208913859938554810736546546385713295591960207819841306532239495819021722163765203716936941030723217186333934707500456216499391217737570529310316579239927593921442293700581097610871432331926069555945183463843397599465683117553620662264994930188463572790950921351143984477032302257763148318063374620738224956568859385345879909713601102360379716842772359235579123541767332852060922144665981163941134815872938073219121031453344251078841375263169464871694163279336672221547045669482216835886335870596283111120535824890864068630671595365020024028404882962347930495954549050186609884455625967842966124952172578040618537421592347312950142179032337829440956243090049332133656473328011572477964758075122949127684239631479560658217455638842226126846701679924332283200220682472746956275697282506003613623558940566379411902039779727261960089726061728399463529314130157337571254342439437313143880300894835826604204596965431580849955096531202859207336549557678334261727367973947002327849319001926099514164907255409496183641034622311888678744121825429521930959370050277649174024924715973192243665121067144623842394791386311133512316248918645290430041005011308360027242684034597081114032478720975493046699465970779588901058493909930506204469649555633895314404124316912396208053045920765135624763241295500434969516671406207491039103787366932379051747041646674914472107762314847278181009435854889437751147714021725114429713257539227016541616159761367671575592053383811383250294675169244595676598589057376502319331727384527964374089462385527093963590302339098531909383920336220140277357745098767024302004162612643132471305851424626733441178385642782568810350748255172922284411737883176152424727604921497503233246071675860722450050844129191942930509278652212633234245572274171382163392739422649987884069949163983924266898397294518504103402149980203571237067040985646060294697438317222063519966723551644850263536410908941364355232982007945835894270944541489726976517549908516591896051088896923573521388640047678385288656815333193810234658474966136201555502119033962114475082102176205709204635126268646178096600496422114065325478838830266749580725021678162030878255664669886974303336737615550842487724975944719061998908463318804351270463553859538645989802922260131815321413458599395024155450504228170295662780165550637394708854928269289533717986038552287417543600591308296545268140258250603650991966406409776871158374261803667350363529513920633829355933938070058567825420167213615465656829178650174178666595929658630338232740738369077182422325195658326618018562809927650925055208028760142632650753104643643189019420067633481875625357095468997821449544477249799815130700325914522420786914645763297225309048534332846086377021418694935005231564132647699510249633300549736413904312864051985114492463442039275503563329694524329844952031674720678247652397455851599164273945823945132615592255409372653939382208347789553207581691531271829864045756538383400593786947698753365350882243573283992156787074703915010178710316643185873524889241916579800846193522115411736312223893036086581098644698682269249157656108541205142434474673269842566387614688722250869979795942242816885405609251304765745134579942715021766431147352504003906498115923062025549700873653732781514873455966824127639475409424610359975888119077330467530491120360336667781191389720394915469221625075399073219834449745279270671647251376898502228291549918234824046487924435604571791532937315455672436615147483325170664814851445601817484024410913222001380506593246205121847053767759746605848172925975252121817729630745104807502688962023703108758569897909584369913448658959368964401717544170590873215609203020772883021058033529374748481367894893995238282543452957564377690645159510147000278780471177096369591425464763606683269410044419683006707360184722792923101665575921230453008912203572996667772362795717018712274542455630223529529051271840866881103501570556184489537239429170879730869961291879158422399005529783515523261793342800446726967053516705897853467402785770497047552561415964007039086098453844390959173464649382275311274492622157792221988129134108935015532479452944418036528023496957951635337334642263631044630117020518018280575678014005806841528341370822321516773825964705313674548254317242279952628549064539234957778192407107121120830021422533473237733482103486792626446254664436295250741176577423684612211935383249364852597252745437950462438198564644413263311473256685976303312877973205801697634466855465898580109490843917353700511576838874378713146860006230408391363253206165704177826918984241281066414499786393334680373151755303902204664311101332674027985055275033843865477945457553825884524313367220709572952057794074717741051073677428182065128475245066175610389816021558296221757873345425887386516340477937653101386201510165164191722944502572829684446961009948945830994586351799410896597061318779391205718046574117343913142712656154232240460566469568500978997403507916192209376778728205671175993499863791327842179388511928032499076676258702574087493921485127692602923016422977749503537987251500892106763461004320086504392741563265706100539351516390189694932709291982604926510566192154422830751806114834244896011892359840533681901872183034314046887625837508026641886124756403422153401449978021736659131000309529359092104297192947399166289794746710489054354702527002420657343181110125280003743619066330512546977906009412439346181607354329544387879724635944977216560668979657256420575595655788334767816474176318758750889705003765519654552210705751256811251298323605231433729182972702771669874550719158910515546573416190775056798342262919355863543710931361369580147789158068007841055369424899540348915634336315728790598522949583967015105911670045129318477731794775957278829240460177240668935487036771107466159148920578435954533133930194074629240604842567876215681192111811615784048334979117347959094639570761059069877073149051507835686699832258876640332180638799220580231804817466311358932622944553360727517421301753872781423817179369053104434170740651713851799058406105173065793564025116887166533141040127575206440681627788281723724483474295742268950784506128483281457454296702174973063968857141498286667793196081727777721139103358876802575428835619227831866612959684924171770349518195977128003782409281961872386691139909187243763834764085480048091532313229924891472726167612572148557447940063110787174440268724947302242449658563230404998848767790639600255417960788682368866627571705423202361841023965411299274452506266533280338097860557145633178223426852682255939443554898334519992581181532500088502332932030517848596709975233261036794971171911612953647778739907061911720866285098649557986003034931860230978005120636902505340409216955095730708179245369418099567538481849585444297275183955489156246957959324201194931947650794301422731259199005273295175672405870930913294204806408507784334390902434785496862954177024697208445778587074478489049132633848306858345014508707418057252329106221696812885450480283687913919848231503843614448838637261590978886426892340456826108539097201640615020360367608120240347584243997277459592684939078125587731323659287268400931622724467058224168975113807054330231053993465652493207036222214514277109254653982416087854973565885207824208548973823000556996760800038676887486120773471396793700958775689799523514172312042721112773488593825460062666551240520975665387679975325215492981010169291346941132066383988012047876834892423611900198257662064264454066957306912904316885533419081217956056765450270028447614692540115329661422997374177439238830301065602788282385107969815609191517143673232701249705015186562774949191185174645170574782423959129854441443067740066872667890134743106557018138549869508467228882901269673145783414395746955049595785404277406053279451634555238701145476410482299633443065713335928522914598537643212838938248492938939507824817180555781893238077259168051601315473322197330497939108469361203893827323902325379452577164992383810584001641227075734401604136119398441304595587633034703919230364666589586836186547755684247989274350532023545707718349219321394294703582009402727690197579664517959758308807872369866096232889776476257858544222467698830657078726737785394230764145976295194930499082720218258724958385705528697440744159341545271143795665064126420370415364842670117446217250374888817222923581238894661663995258171847510004228321156299765144140889740293008083981865120789432145599546654584511406871572930954259513306824143773587298449578773740173514700498061225465328730896376657624856947956012196238278181546066789018125186650713732434803421540306461106459795253397786771400943649649489208722558607153275397804282216683995109456917862001041903149237169718113426402474046597139613614190760673011938634406414510344583908391638006426717081422430495723824831634698433931769632907033235977205175350539326626023532398429972919473975372644988710897249815643854812431905622855649554754695702877819712244157544893181702083374252274867000549539333023465963125998913290782166317028254418067733231559289732583424671590923456326509257673866438736410070322493796048511167262822503670683304061216419304738333710660586662664556090165227222047450164301947337946571425395252188349574021908991799327632044421695386765615692144406741498258010529590865208554223417798962827357559547495091015623698478583612462266841519570174325945189881742360187420731154885529168279003103102207106172492206537202237712697438956461444664972722831924452429029051014197443973431337863455011854605348480176943296829830842099203209011559016750238510728158423261247149301792637059664542806197818956745184874774595750746942283138415320957651416514419520455659952912937497353047987177145914480219416097436896423650466093381479637667018002523296378932068941222751311496268516126137964678205953011756710683415244472750548597720137325117046703604513186743611290864847271832080708715583725316676052706439684599946433829486942745039383621268763391583624318238589306181199381874853928039098066670771761512569044213551112457313839457308680917501816137886946301310445309735983267799319211742748545477209177343754950422200185001499598676850818103902198419784144853309359951840205650063142437307305946746183768018923421938831626335743204167948295602688112237213412434294313252958885562181160434591281313980557692297590280094170156579213260615499065811961349237422099836762871854388386504371564601885937957415458460899047002090196642105933023992391363224263918391067558990850034277984061904601589603550155937323821405654323864498069294978435872653808157754833634329262348801297749920147858432765312154801881491499347172954498113738371614944935667952309231940527369637345462849072695770687464566012139156173509282361390762116866765087085235237032970627951381493348238110101572922466445155158962034337252938185935449677064894628280879689795895352750274974584593894923171922229821706304038595392145675853209901149294528761350679135856166867987856930069738550762795072665374204610271945806661180865867172726133843189721763615662680675451314901292889530925168392267235305049281606183150873745934155432804311363904656540084110394396416143241197815531833928762380515676326230522994134196043459299615040755056170775668655062254097375907383593707989609030709058620663097944791275745627428549695138514168868242777925833021903981854447632106936160410402328122541897368385727871082434694483181300559468792122635692804268429634593427096842028168769190567659081870170776750383747525522454340217849944631855247082832313624306837381691573879618748542913111834917625831941012111889742296630466609514439647861597397733240710015922808958807320469092465426454399057785222192389468730699981903972199413234399764021492222539932610502868057875295667550460503225423738821210711213741926701537212755653353148046916217584960741117859868635682852432593788250001126185630560126649976139449578290351131371154775110464366594836782126375381390000306437277283274373686010539819671568545687919571456403149235710431602834896878865730317455939062564859495565207293828405786635854959741018993368417420577953815372369398134992038672241290040308526283585809013291351909730298056535529396966531330032428194629082204872515036571839807792664336652760649877620222570507029157968885043045676044765092553565728884896422758981978909811725277200450247281584532961685655960644847894869334357619066428995988773624551111598721041204838655906093784925079324231408826318584455394077361878815699755759540861233671221681321152067343324519668026980573911304740514833772375666236313260968977550776623944548854540741816097024935736693875765887019597406739152653281472464631323026866773707363383043672669106584912381134434504943312916385051223813873758355967090323669940583627626123576407174134455815993462069157224667069367151635492454680227030514488998960466792784028962966836846642951556746020650679677120321529761615402097719919241922255763276271089761126011517675124021819871320531035657471096706859362824682995028470767493619549225438522393943974303530338573420266540120527902690806142320507279741949111031873010735252955732186083849114441307958474958102527306370200460041676948851810408894523378716171969693008342519211318255553258308051416140551926129103257151772521415508142273369370582472460192874785145808085530693368543511825024877706460138205242903972585231097946012251921545748534246470609846071576246974132398286807431750705578364237942890614809002350849951784210738927109103759842506836043074567703672738624151938929362357760067966134037330358783240752304153404248662465494492242291538131181223408110783888944191083018454494943017252353774079953140855635869860100805178403785993418665334863086487898785929348632441650111671020504410652254492772307820185234263416407266117210133397573828936203355365160508182340615959463045404989978327427909971930950962978066941855452023312556425632193022392436369159603246644804220852768597972801727086545588556346626835003680358577842748130165067905220404902517133463964532456379899904933877211441935580883191059067667234061907335767711400831090975084316885420319349067426863627149468412434520366091167157910274852141453131954776687200500354712021760749336605410628205280843796942268351279568708970159906344240326672034341497218157715506709044346246568142745584881834188492205210056627641557558692447024738710636336239787427723742732969702989521999223214665206878389183451077843579220314266307987758871270379254003789680248039180077692011250348096408557942871184587347810003495696691925678341541517431904995293173565826274874038333189322011856231328767989611116307200958808862551155780751368764956652066179366096737644200578103643049734005193733933249924834845244630303585832001711845619534137304767854045729084527847662395924042693760377282335595963874774296748892403965458423335457611594317579922905036692292809005701004874200676222641339154916085532210867700395049899921299747447316720801695876951228672437657968517635061889773576794141957369110228768938397636308705753851072464840402981289724306870353435398290351436193710510312842304270998771111812179928309144769919650037890583398184347528417942395914058611824937730196815651175668046289658324173697987059349332492090148322508498654676789158743714309859782520462127955594779426002662382333725212035795326123065671389613504165530653523856322850696617042188185652154941218311407475405024872978867246213631398918002341663249472861811254442624977429069238931708587521556947832177489703182449295019700515479591101526378786191655194333400915136506741395855841673627120186956697993782485126878867787709132214379204009632102844354216428812364797367278994761889694615654433476871914093312050942764224192904601693651415399651105057945104763226238753489522910572707052106710433731856271993014362493797552892802860364338244258241820295006922926331528683147796055735431805878889929667962256623721832362773873107147582698101217020704470342631585881855529558321163488824677148369452194635937631192747071853005251827906463314032682894758445659759350533540756064482434588551893135323132880380129890204150353680066170668669178350794145769787675030543138133346034060264360430801131879044688399668376325592754974709193355000971853048327822201640290056401160620755839706242467145440000436556369631472955908274390732639579283727771225462093770785836321708332035049137367306775053407040876957348755166657151660253992206501479657260578732057188238798060822443718107354815368790564717020382026984197766324321622362827774495351506293587421422289740384105364224613282227110335923230554412129719353816025127015973303665306217011218581989853115670379749677311177453566752830368694939659627224830482067821633302514440065346834905054493116705230656291393732666413930089996249927233881207106940721001432980810061377500893824462224474848648395646742192593482000154271469852546772290777026465044312208472099403760544101790235040661681155022795414253170998473699612742662268258247190645592632882393261736636128456363162888853323273475729386857341266137752087560800000404347995805363417757251107647057980189917545287165661230501954571284955722360417904166873924477031375250411318567986380531942855995885892124909837268615443225262552928176165806464056487555809242224663758926539349998730722162339418029817334801842789439070249889826498907923372160609671557740558645584436209565826941012041825161311036405476881882485390472554416137229110172741012167361764042189010178381415540239341297156245750064749710971491420480117005100211689827699887263824115845250569468163788362370201185775730761894257231482052431117382518149174953096150823314889464448572517501676521056196234375764441209474664662651667528710436284962986303567974688572201413450348426742955597844409297891372430175252216401311308108068420162039646386613412842971285422962737498057162729931974743167270797120454907717321683466321282719006144844783978305406633179517691625372329138935944192232471280401274767174195108712055529621542662079162324481755266130597451631030721040653185275849921102366965181787391717358111354161121355430617515126239250766950718565759674003098464671353816519453983585478982929644376172323429170700719784976807552424520750003275693429681841089638091935004134903598958876363811399118592229886234402118680797004789907596905285413758221631400935177511285129184014158488958744261278853833317696375275990587425120734079442601721331475166982316687313715103115680163639654746872021999934737094326201814740896865224139977142656726378217125081995963062101321530997899975593336859571812562917356445878991036474321578315165477399814572162829857206971420602554508172279719051446572313861640688771495358907003582691196673908851453787262758638461503265909639721360554861352221728103593057146631065135179758466935355543284439894481690992182411888739150406417381308268762549024946705694272300650447052228722828497462389872076098548541484468575152795149307669926792961694988242448919690387898446206717347996266908471212728963159923906396576605765297932877472657736124239487532948319555157505495797275790733771978677509000386546816369694384929660277105936947713943176997413475258109284139874381910955466260704793555773400302813240536020870015300985613857328513936672986986509214659451888164922070086321049228289891407420922954178338985236179239663871310881465297115042569961827471748719280558216917427637832823089677087453403960650682659215216251026963539574030204341391875207904443802184744062956975469079307219391753842117810230345652517384181030772643136604450417237919464526788655381886307430500596986668450820117179969943251949971898764253234998458796889189269216990995437938860824862755824611586641491676939945822900277174231210917560564342357028565277760448856195181768084205529184377385489146365886862272557661063208251659842490631205093913218429605008792374536937415121804623760624095378541492148787639992751724070184548137889605514319878336755519916568370837821244137645188736001944697808566109452069486966207417381959734494597484603875289487217790517287969089448379937821708290141901792840121282789179671054440476942299533451022410107278143462898131240152101442354282347606052055508226753369072977490001241789304986645920292817654885235599064912112649008160220516752984043758312767878508329420021232313458879384311619052110437089813314998831916781602343779313347591903426734615952802675543350842331313094717129571326433022680807524230303391458857949683036264639715199328926542447296989157343460489186985491835813449257168127671693931225505989334734311377225496629240493074595665770523258938021229091016577353981261584538516984406416266871335211135601120583300325014199118120839218427351198939872529718772802128355238109616158765494469183004674618384832998825242498591873048196152320538858240917721374913714972676527352927196508624933792844523333843214042239721199595121679325220787951946966419226639038853127189898761459968609410524781632985599109467474858573785230685611140473382306079607596932589599674017518080574054211681762731630086386761226479653785651678029112970506757256375564120075687572373536891007242017253086428717365735854620203946155335953634713615587286653744986530441293233655585076283261252026778914068305886182094218949219229653076908717505140440142864927123392324870884536509571648059645864510509299994210742943233444005181117112402125048292325296223257095700819383019341415496400551773214831108920111702202009731145313403687246807339369656953351656021502858073138918644981974580713884006661957761928642545352429743213659597389257039525289826099508687634022058655993355333834961139616360447892782095584909724943121994481494875814789404139697491265431038131928680808325304274054745652279169519593277775641469968703465123108684890345665744521097389029149495352354134232897862923745034310828966147154473564157105423327606395970688329863833229136241535067829441008624563371564336297783177817480974949022486988675332263118939279888469232339053733878192724155712280765186381766002557417079401187191798235864586812154433193218778798284188477997337137341054641911417090120791630308198414027056411600872471106221844874912435933489168323380932116533829178330505303762532590919435397626377754818373714492026293971512022664525916178973158160882511586209734194402080506231992414725179088192816757022243192284758998681081827247644428710670983294331089940862257780576463032480790989110549759703446799105609520917300458338130540940187254250859601310368898730376260968097126740125213028341095323993652064499325368942115833509968324441246527188337067868301974156945905018623034885111775397951343237542769879784461749006992976725558200362611977223104778995035758149040928205097234283919823651836817799274075807783115945604449798540026993477095930318804127993222779246566932453817191504789073420857137762767581654216188864681982099316001673287984083494239218199068280564106357407796793959889781507872509516670894486585440655311003894614504826086285165642001017171234652559653794754391712838969668484104696328580997438805637580006810001389306027371342013333329267542751520028866836066085757524587700456420858783349014159232337202073662066203702204397559902982785239206279650333933763582594627258377810085418149503537322695127547851144748607758801676025945463971070207096624817838092471532641915242956462638402167170433085747232675159861097248228725681520744478314905176581387169044547464359480166596152277970760048969395814410206303085244520958328782310610051186613596813306532232619632502662703361536832260425695655209060633991782489154735351308668025662019380588501145437707728568005197856008727703205586594959315831546055324120521863312217266827658629283081333833682272783234983843063356431309583771855403542319816272234930772180807324931208833521344121158068490279583494134558381609705398709375557273477727560497157808530547474291180750865889205557573403284142793630889580718597775146449571471556743774183070296417295380773700105707255439377096998669418644903287585307206043217526190353968572457498418807587890943892323940444302530721409959411202946432409560097712627422458979132211720470190024482153672193467784288625402508981766960868397078677814214527300081827379657342237978560473490205786771768991125687693728931844272216765054206880662802993512075901232928271025521997994044054412947841061603376002444869612483956713026728455173656493123509031165549076213015188793165730292735285396403372274763085364230537730540799874333082117527556413520995240172162149645310953848047543036628878217555690953614726131234434780055693517008454168358426736554235582589563664254857121369794573028016806451267496996955333956362184505390498956969984781811867159955071954338877685447692676316578566003892080687652974090315942388197885051062535273873040169228051882915817699758263557130448976916363702101836732382704740469927691235192878124796014578638176466025460957226846670489950971926780027725019493015305987444708229038213073961298169462228081467340744719750699940636461499974502006336633043477237121842549780490922624874459753994569625826995434042989831180530817594192973361846472334568906405267701002101671905446026822257659085931092149816819418698693120094291360473405612897631761235553537799396001143231922422711856221310157935559052706126244406030505188524647869842610586852940683879170484432864277809754466944197011564576980553904116272184450884720539399901492564969210206035770054700668376643883567456201033057622535871508664125500663637630662774009446101571546109187645841376456868342497881697435844226107112549236844366251012329786488886329804254911976987907840671994793342494871343775445344903474863392968070271324542761988344244634399452427885529163262937138965984305093562527594234960869760306562515175170317773339739065368551328647635823323312924633185481586576389435357897969949437174016625316012907807821518402963253721039075572039919438126196139423088511837478371489916345557210992444025849495154002559132809154509166674429487888129896893334701265452826557366113564474152419432610084319011562740382421619442629301276007416557171948026505049257624108126678042999091521466939080707783790983283502602712232164652341383253904784919231730713995718251605603513209834547792906745514140425456252323473154834986253446462284651848548057361774537004433632941407237998994808168708374190935035179956670874402097836865916952121374386636358052052226937667935160583286967245564249950592953387970641647544872479777475949270317677063250020469957108119514822451998184960142010444234641059168970937421081168432894255434386083345544900431544469182894867109664702873924529545688381809814894156036872870489066087293572582182039519402669997532446730459803682452772478401059644418034079439312760456289191350602365716927790064790844313655422244927588470250070753330301775230300277603286661218766025453787432215994520694027219128752716724443831706942315173376034787833564843709953255576003104788088222929290688534743850600192950899772840985818606580162571559850794121454102261120198450796133655944998024043996101709852571461586596457157037797772001115528885937923936339842763338577092233578091508450410491697223532468203976134771451433123911172295328190659017303349898916012732780297551583699800236359349884340748470248579212088543456904098401553162843002765280107411610989198270653750681606947762250873359145580405395620683991901281153771846827366736907947039141460211558306733659636738707091066065065068175114545336910710776244619740992512362242314965496244164112380011018781114496137118496387498827955136000782230159228342988701494677023947927115954770110211167780500591237724469661601324794042936687873113765962197914980011882104461967855253312130136291556866955543946939222010293972892217897198285432692029840186519873015580164223124495897925735762158567503934321725281179712251183468684098889256504476583992847209301952566934781590595471283314531871948443125506753503787581084827855324584709803941813582951917043081531270343573968141121854252583672065894088532746057875422084758288547378280326750984715773093722122363182595354113312469890332904590577866446927317197562984963710744913394993366487078454840862864617328366611422883197393826527901826915867451510325483292983168914687554119877381725528458032237003263419079726575374964105830891355892918186337016195761224651566025020926347642926793725207166100681358128912222680196496675357380453329640385353267994583976896418424371065419207542854916703097795532669287472596915477231841470382617072151334328136411241083016280526630417923497375039955688365747505197431238953486459015766691489871903957453561715025208404952055036018706031386807854455715759812575381164631608719486260049200226181431557106351675058114310721042143662576767714848628419563003097179611311613577437996865335502834655399879427242745034046596144107804088047859791959623208598710249687991554701525711985571211015873545973208072501998656329049697200132550809773385625076351540751193834524061064220813659668884551915518755863093620124911654946608075240594070902456332897495050166593169873729242382618142488484603786553311751986913805571836906805797334140476319217541766230614260322775542459186135373255318093438638038423723452697269851552843436446822225595098619464979803289909181683401829761886266415352939175642848784941370029353579092989423950866076121137412282056522768936119748141971892807422040341693106879422403051622825387938654361447497385924875725952309798782237155251403336670135244410050896533594523711637518792706700859489898514751830242350481300110653746964596233486774311266734463590929451797330732255856946774512397826864133751869185525481603760961807505562249343761309004152716653575413061656312141000580388428605539964490840579954689961628240209417413526451492484510548189178642000373005557230139256014074990803755575236425103356466307927861559293793892918605748191961826575363395215356846368737442507113312088211085824140675878347140278511105517822262204965904614618769477835856434063706848267382641798815161865947971375185388132001533520020708413450974184377999609516252589645431613042073878777776783726317838815190091624858829060752112140847792276831826968782419531291660452846502355653187897033813043729687198476421815868131483835495291535296076259236296395503077086497754477497679443549100288866371291078519318730027361651784997814690606598862429542401124839442219934462388658985218668928904616923339025076786178556341213078278597738477265569155620804086247215797031376192096877188453969447712759594027532267234947363947325532668148269869412276251253071328529137899561155388058787720433080022099507328547622585692739933772647922366068836802755050541085430526272292847948904396796060046015192754658259066795439777663198462095321563847500322284660389680236724512989594123558628558549478614748098622246646578639159400778031330750038716550367046987387455162832247179224516678417190019912754932118168258700939981057311410495351240102702454237285973444666688747971469992023489132125245676362203893689794766659783957035409337886544583096898291449066593411060291347021081391138355784615807843545746594465982317167319404679972904280579668574778004579465707274709598473091461013203266851687849318948769065606490002680025129060970786511194660985743255013688491969238833426233484070255836359229460545083949307883412795949286624166929401963439094116575156597738744941347633878091975016661127990633522236762780200584118208133973303081826275796211478367464998809259931739815450120667879649261740714389228394536641790733302617910245740322200121472517881169486364324424434454134118472017047470279914877260002767112057915708079930592390548444888570009777433204311073784021899463789538901284169219764229105904113916098562446893469542581941576975725469817307271952607163455163057149413569248771601486662589033081610672760766459604755806151351422615920541583338353100083692487151181643374733055303047721851509963181559584607233873973524910187281915114086303872476026835362518675979353653090282945940792246050028332238388491172135021402527955560394606677008328006312247358980438753377159158907379845250258199829811546962011840536995716602767538981377203124700402667074068578982303305804903657773424759530970552663680200057459469960105198101277614643676406081895818349901153413680574236808969388523289804835173938339757111466003989038474582014347655010611005928734469497018481174294559839698281222414634943656490249359769377942807335050208583472421878372627587159978187336491303540205731019854166198927412290522902129231224825133727372629169596847531323347221627865414271171205205165887778085091481924809519612161391027332180903798009021147033774872091527441195839121971238515903384198879066648692831740461767959518885124877595664728914263557626575080845753921525340962611250461428824038651954264915829004589514623728964187680312781902607346987403120874656103461015508581308973888396691119313917693322713953233585330645509149527152699348633179068723322689912082627884815728330501769806005674680276694565129336829058363797433368542228420555662719001532445206139195600249211171399628620391020311597623069423096834726746217729000190635105792126661023469291618780896225427277669280887647162466731564294110257038834609965743945031938033345708119710474800674432358240269527715714176214012406302728958815254254703562352797310925004146623487319385563553308653943557504461296235646587927598489487022605453643134299611131545646001888780797553764333279152591404732979311467071290082683970665330494391168683142901968353740909744998359825653586758312946283279641762412957889772932019844260070882414590822593481626856135632214377843363442090741159444384804256427355265347685590998934978356865592281004533288066621291916297034370154457867745124798111629367111324882366297047906206424043057759841787206362972746543034197612400781022578773002462158575180508916603135137739700585894469568760744568011923037537010810477580913143937591869981648422625364900603014522390295887213778697238906999162611191385424409050243133572068503218915932659512757115489578544229574785257128832522724236409126426192209473232722039370616829928091740895949018340619026769611141768760924126837358707681985484804712009248799929515562652964620013355155872404336883272986285824349502670795440022263680372252660806566405442924735170664651720277352746280844182013734780441251442146960418494668054222200603502306863920991168413890100896758933687565683555239466558684435394609916470755795553156970095327145293587188455785250378825011097832049245900193110155380554137263754341521138767587686240700985526901702467275425459553596879866171678127513889200800469220468090825873248268561821219597991972126995875543084816478031458508153531821555948835636954743528578155119864012993819335434785888288082204548677484865978036652068959041210549649982526209680612312090567355187375070062915186056444337338369777170552056179172632831540150105884127938554689929144936545633906198952006666687115446896679028463862548336374543619075161965288043423765549006674032537576231928079370022486670598745584016651691015565358934596832308353965996439705091067899680301312151825429610058998725668510681921423188167036093300496080105959425768178784745179594776610184532653699247581525005291320845193873351564894519201015801306498627463649196716335198990851356360703387256534233816023735765978091817874602433662464981331798308721705090826099494026153738057290516183282851477829498924261080238164551346832231273340915760325757773380512384354070440039251790630085898733529950211133161454731074111942818085788408606523230232168766519604607013797728368691865081921807436866584324860207456490842233463183345219108343888494996632173423089708663439122382575613579541935255376096380099757261379038158268983907477827193881816280639515823295368265333950425619551038162642383154130505513678914302952906804668375133135293739774062250046030183156923371471272473939742509163896017236226748298953562132998581404066849188954453635100884035668588467367629208894289372380148375643872470390479434456686828941377924962730066710239072429676438025445550022424998141885588460499951110561703667534375090316123514336728372509616102143854648648185156910242036084442960742897069149023923495785819639500272163736143306244336089456540088419355195223588777453019087101260201887500087548464802178900273441102219116107339272323577864514109932602127850726166946576705604292711183293269486728437326830712131749621802078740210488439380153656936669518259424741831164492360430500553248839599413183843876568722336354284520771631791349018586998302258214692284792310500127485436036147098247757081117442250604874727791311231933173516319048501937292101245957925644689754297657409135801205746270607268280384886488607162176466263912869207228151495954262089581702464774399653735102587851104017551855219082410381043054783854541191783549538316070088572022477073994593863624986231636002926424289321076832498684738757454564413296413063007775045434762269433810524691126345667460335300871449952333335429100394296802143396415568737197018433015748943815237328179426276642751678565585967106534530856304195515929837603248253318822837984612379414659984800614167633271069934961383957561499346758062157033809632976914604870740830183174773775792608546773638639256649417084631301826875934647163400364716304753842247237707874781775420825264105295390625367459339680969447485257737747275906338997144074766483644383366173399047341784830238221318935357409581454593025109144742950594325617518675618037440851581159184772150085111092322034882260009533919799377832255913417101865437055813278416555478096729227242416469995814381947640114502678714120826037726794528519491647842629617199783398815410235800699540702957021221376825745649380293083518008019623288057687234991548428120912724008923873470233151385735780054326276469051598796877559776835123931013603524036580820961361017073380206570224279345616673045051712596900231064968140915542893289988863858108986278855752392008405175150943618486709247129728770757892867454411530459802315488850136898826874531852261902282865625201022696055769721435673396420690325446450585887557386146252552128164855005922678120536168847376532121840590927180068014090657187203068601875753270612659887784564860328382345181206983905296568900523508088143117100702863609571661644307269881895127996711091565195383479581749762604375130657341118564719260747935550189450304934938282374458702751655774313727597546736159168266077367781321282165784479539903974836610854416864448834622635731415818275002661020060979085595735637890660804702376318131628922564946467842817853379250728998873184897819811026157651325255408904122638187240464804230529413110982463127156510024015070119780698075132162913345978075243378575704764499999695060655158226142190008751090610028124042928928883090856830557958764783906645287546462881972832327553247070138677128671143477252443373048361508701704837937971856157768871694129465374307653290699930489062836913727440580177640434399806453001138225629438336877907828904496203091468435066754561304206429155105320937354126158223185303143175855682982598841809130175533625395715546945568633766441026191661993820330199478381017439240163331135481767685524817922440322905485491408373246019024543777493113428549908957257177769199479406732125260566070694668553186253825662130896165227121847050311889564382258695966209482764812775198055973167326600583414477751053345971502673560157264322626864662165433277212746904631247645054899203909424455177022655680583731919388008189640517219770837589090437959034846436765232808496089524223305404251317424993243825833970871232176530314912188424998919615004071209005804009140146051186207953337709191664475345631357740165184790512855147914309325858993778353353281378251200286249710196091500902734637064957500569710352321659499662581621079593367536592258198727126063674732950171859456263084522348836331436329467008102065290130223793127296858619119069956274736779287315087095390295446385117340027006782360438984983133208930162160004546766254162930844440871721482155577525172978499926164121114791053021138583977997613152741703511362498412492679685209899645218021423855186277066567741807853884194570867346431253599455285909808610449069927335486987114105701313953920003179585883499981622288331034835913592750986888046311553474612634835455797771468840783509831211478301872200724679547654460041492137199851093660135823443862957851706677045130868996291658569449705082129980631958965952186453889668063514819386347046329912414261289111897136914379339925478742444760066120477523655653315725261248371859323011034581711847858404302708496583579202938174661975308518136682777358385773976242204200482021329519170239442167479208487968816974410445586666511475605029569719060066438169225759504580923537793741059120793542161565990342795828784470329531077438871383961633212607872356788849732984483845443729607159334409599371752980612041518727270691017106767217212068038001257976540210139750911438449134168840876422302249586875045835057022076055360144869946099081497194352803070886460304699280579100103944080412855929033007691411616972418010862449740651821172443078199289722956726290204788941566883271112733970458098107863878973046224977185411747299052415846770627331319449874186798776416588512592290487088079244460286705874611215067986665890135743398041213229491357259980579642294540411479217699119237892033214994403985681530895557514097860061870351013380630183628700808054190262543244653022803927050724836905040368590210526580203559258470280485811204753097860764925344606865674844419774408864257178216005985064870761949140207192647434918553228805566594468702402466793489782449692784919200988638184503647496607246051307679947036600596409183905874459340738778491619219691603435580727544820247365440966505757999492307101924671409481439484401802956123176428775958445235540650957004323810855385335506307029132796047359887012717189947970020644601284212454733399548189702385856023338146115970573380365073205212922728533272796779657176640565615218305591081468605770088829499672893427619450190036314182866686867638943176008813672023351867054471347976112881659370088198299472337393469666452679187241398953659199002825929587103497390232731168535785083403414288537354766131008026426088777848847550426240786033472206500275899344889204503950425678076335601310599324320912601930468778202940849365561287686114589494540084983696836202100975057838067735081985826680266061465597191956000323628798297297194930729883541122158490724718012153441206377255487171777187169774737177322503417716103370380364406928198471180792828953059378990001317894011051981112180811900688645386026548618334600263174532134455350757848313170916750628031912996707329228391789383564552212723184360605414821238402795034053367948842444518995611289563254848289895802403502381244893223155669539154004089282435356420454327219082163766914993001668367796354702282080408307746705502002287093281651065252964886637663222805315648003920566530530224269189583036872771424119485153069813592432180710532258605988468054736034464498903951073648671023670205519259163845875315089097696387379082962958195529953447975172232670636723838653707429445418031100150219489403044119145849937868040487349588375713218610197495876882949691500476283286985513635204824709706407216363505784416370617992840640235165930492792740502760465365672177969944492972881282644280769386147380559514107529891984381438896578086900659875251138874193879794630325458395225367074573442387480910468466268651213537144794881048679240158382642730988182750301414862809543678167024679718240159169547316293855564927583274328250057040232957376722071604819955252319750951258100933033937550492283655444310824964603566732827367180611177395805277206468684535837258394475412418094682407627360471470838989951632367267476378902156062067701893202996504899333424357118770743339202972060673739400314765813614017775012401449672374322609281581322474271067306417155897184824627593825635095931182100444506922296320727393714234032594717903356481344862549143830285774357978616761153083893459368447480234589265409177816798709857127983530080695059507219067938329139616334891727500066773028950504885432165139182198513092739673101113225664539542215834260870010059308853302643589032382261790565387730613259132324490505132966873838932300181209627008414635507835371039245583586575356297796093732134294860940009672122234547141325752988138086408223282229485850100337313686359900766855700238835871869888961527122165282272996048746688043904806510378677456746085247603046159748558348861265626251386200063436707056269043810011432596395698613717165103478822841078176243560206697969701025378038172360941593163946111467706979217000988499221449127154203158127304033231521990444219589739190951056542074128774614794544496010920342744658729985681056819028025957281613465316714000242574869471829239123020172194923873720787617957345835400979346893327455448415308988706598288064635874515565351340755847764313115618406270535076709148210994190527894948467882997217747059806321362307308338887508812533011731835812301857292120320234773179787163308852080626227526725082916499176530200588816536757016381675176995484909852117910724006615023528573388089148290900196640747691754877129373232312629678930678837509968140275815198781093011887857558076771511959066547907806420791961039891304859846556124334221173781654311307578901571496084623105363766088113762392781690029102717984421898391610946412668295123027558799441589462743601537915105589346449218057764433683390757173279244714317863752310657866399150454772694931095402237081118070719247710685080614328241332362599975569680873304054956407086143887748892266384564271985246975104056284041933630245268511818576402953143614672034901019700979937132910457431327400446331435756597019345020551344553283579844043202655183123799831372143449143682915150329345931268561256221752952532742791775732493782373012580833785997361636858946984553532999961831483841588922131745299026688035595021469820297034486226537656036722960716946757407858831649825258613439394216555406493415154671565591799138491745397026784573859270981619763939188828133036980974584904702117107423774117704353096173197074415428398330719565020063228066010917084093689642901756842758989434980790903827990463193100405287867184420940882446585817497680892034039871083860766544341450259769342047011149877189096597794200761001897652803130939955781613729601505321163680428431899021609166095571871135340894964864900384705670911026029001651397894771206044074587595673537948922248027971449098012501646755212805204341400893076750156450711007819267355511298714093807192080552780085053212725781541837286396566673133597409165462751981184389873793925761973440975580634945699863045305413015492307301936993189016357482535868329432850765003608097528142859036022870314613313131271063009919682719559071292579274681230049081036693367312859299618940591900752739034501813599817826005358753546796394496525484834516540447198284321596909414197046313745113061206676716487167848265352021510306507990402741149873170536167677308373863005179324223898215713824935851108951241534535925964104720169642283324111512518432085130177337235359590539501559519728441431239914465981584237220673168451730685505338518011396928704316936145703235870060943300790957919285842500954858649288403553969067203606652528872327307349127953641294270039822865452138803943147231006151893701330084877704066675259038044721676915769442971964996030305280454625023287400024813858518244333406217268959978509010375926248892233066656438633996567304212535734809463096673286515648739153831432585718750199402121241968329096325720027227369117177583057817002126972201006796858494029603624023343003280322469338242199635461215493718668764591155983625437694998992299266211045228083875095398109648203210725500635075814517300094332103946345745788012696052032077804990888668946982862177271930368970436739052804807926029255690424000583332842267693611077140673606586696508256875516212957790118333449955580509427487853330958940485449987618786735855308117994419885523731148561313511132280366476848388992332106476238556709102268890993850389350042202670994872319302526977503699694118861152938329704823702176935404150482916350538175735155007815907986724460831503012281363730088831083049908994245044745533523232290950202598823540007872540334585207299396707942544350006049718948351773586205885792321224196589485460297475538785110116258802046481550627517969052866772654120456924493553417001728970731233186006865345933273634772388620654608878154485928539373060701946593176433955855399859460581312111589928915412347365983112563252925948542513030957288031937382281083702450893837693843374608604231459990776355151771044741195129912700126560585654280862878666678331953635671007259667879807085537816807224240997143133310009269274234027299094366152821887159338534151467530685722819527446313991466144914246033303087867599774676956686008476020969070534779401837226906587802520369348913686188017865620620507575797980124550060636099817642643656071503498404677768578992986082779493690598671171498655520327257428001064559888490992110416565805494272628888125012706158308966933784586637091547000699585218703060683311278913709738001828131416217776091711141433217780687068192943690775935651170284406653356987064974950276899969998396821875405844844062451872640819518707068422709328472257651434305327434217601347201015145689374122189297188221423015999203332498039720250040177479317645778118371979885048257962868291764478800579186630484028031359951119695298454439702908027965735477798325867055232090050124640685607617463049636754753238038409718623548782680294620100972866094433432218485037159938602623706443030709884640001147588368321390266533305192361393564083918246882320551884948675475174104282974783655921841097364806579312328390564640640512463301303643825572081211124103553892031156553362595630633660575033876348326168111829196783797341342850832498283254834590213854429156871518027508563260535564504447777130420750104881979901308148577566541013027920584613398442143163704388036482231233653247755179123490567515126908997815840664410485129668298591171366274631123187974626658610376187786226257689879414185096398911415995536177505111401462218763080027824056677636013042182736044442731471195758862739290047396839894478546601599943364448168026220769407957945356252162900783199315172159097117017039427412211517684518839786913917961235856837671758564205380978102704960927707374327700754465540265174746990279093123854373575089965356952410483262032583177922647819452916850902054985889591958034361006170923402917265946705849309388041822876016865496324203734567883132204948536029779383282241447458295203620356666532865899071961692375095690511610447971111207103324283423758410483820102018834744950632646215165965653953869559085289479694230422073628194049365021832376682839195315578552385574877387951793524137999777484500854713964846057958667516230350989893534363486052809041009605769543127950721714911093754928572795461768667138164972684121033406691334128194793507085415685639397474517563112792023248139603197368490889089744280321293820501634475953363407355523856550546251590434614915277503387576247621370367913262917149497150958243331154858638372421747142862844280335382646399841686996069287194289332070626822232054911887209842267259638323664066212016225300961996954971955392804752839937199435535883123560083501288471514803722828824697597155214795628176983606419211617548169175027130853751432628977368574185736472875388041969205035771049804918392719314487805907955556375745426789056867214470122320598800400852066851717098185924094513836342823245316846375008606839641819031259023339600544708429869884430102160948920034218807313245077133064135030995994194618124076976147981730408666175426840372248605418424600440478369913616188919488984272180905295499505956992398267829870762899474432119958958492783891845960655393711406440403207308014950522451112990608472347618589129967090613499422781660201456586723567378310058767749089457412502294010152543771121289364111824764337245329702272873880021161013259718098446483765393681814228744122064802815174953509566658646202683024595219073806851690027358452049038530078719982464012709481205253428191529960076013852359512913154802411743926906768545840111789593241384503665367151567597704171110541990089406949064747440555697766960291772470997014446313770845264669530657203169772438100273460598596343577608071862381578548291279000987360269419566540056895155930058677510822177803819013628844774416092572761164889717322075355521546280540269017247896680127333257443980044202993008898553532019531265283154149221007925539726918842020905563184390768040143158472858675498226533608061780969884696434424627409761523816466725880141067970002968078366296778129505208146985436018739696604616854021471084922129084297881526698010119057179415430175865547242254168131057181820606661829665820121394360507693590931797219552593678023793899730597244983034213705680040509077355439725370979097884826722398540263203808791134027555651090717231289016018579996029114125428034814321244725589181190659601251275023371928731905630160355742930745868179798705729393868741416950409699485054741826126460464540636562836896959093804589436329052666509404166575590963939185537253716444442972616593142754381528490875799642797044856955954409116063681309026664290707636172797451590579018317490845208687301523852909227933381083760574271944324947695223302862131122971275507018383920900522686854192182226536463782646019690621646225224664835832399704496704841439066903538608465799455159507304195125818259684577765590182253927665163496796493790293107773245131543865343636911872918371698204272449339122663485523394950431835867903578883125114176473103475308023335855138436904672698998769799342955826672867688811760644290742967397057927357951023205978782830353079850443625564917529058870253425042542602187567645672679615505575473209042249814316485471893930994472330189403167638483574833153883700178499043257943287488917212853279818149761091905902000594590626324612544795544215815496476080695629534135071354413879178705907507722139867620206290588881759207898603003855751219509093132112335554349510154384168641634004000897678202858082042262739173218459902597355525439181280472381503873424951350618544600277808336414088435447824107451402210606527262954327695857972928981850608238272781446979883577503044678052900993968161345183227871108526488510894875481690323694109418421812682675262241951468920515216822796800858445762021223119725127382379049415222925222399710002616269291479924456924847440566051392323511331468757037214698124033090084260516718678966092837517950986930240649277406080579959845903903904158354948524247594436360942871605835492837630073112498443183292334597194586977968951154436280115013261878837219982085853092486621652305517279352290877116279122454431242669698580156913780419456714425083217540983328956688888958175415227792110312059616582676179542103525662457741513017814956939378854339166679241672748100363888847381904015034852644133528039603518570001100230463738546889501822256471749374273866171388143713791932781969771442847820873545725458324682088025064493810842537742999977082463912197825650638873697842421452238156926818355664159806407007327509696502465649873739820131730344524537756452500202600717215626692524082370746459369351621390695752510334657916071377387953327267652193475408774637174658346748164401871163294763644727182809542774890045972163428593315764165276970286758979450548037856665408303424044410107847354547194861342371392665232905550133638928248607379348827419692954688001972376559119296058226017745979714217872847555420122770074944746670198475248053169798972679890919680786730854459194212616429089700256474324182170060621791496572362077532562110652028569854894644130419340083695870013226050755129337547284197199192148531887319778849969535416132655036060539681392737719361420013179325825502678552193869052434220868125432225720802502269322496030038910478297702798731419340465536743109642372824591347246699615631648218920639889223009278472887101420961010240759119486278590677875480645967969780433530106664613334026020662352929944538343575959028843564434067397426377918387309003210744845258364237771266910935503035322396007042184292862440007928395710182894903081619854041507123064270591593835150626079136397639710498518253721283482070303287665719700163743925011655070840633987710599047347794999370373152637093969002249872770961892034225031956824937555051173055371404745330503211834881658619096232858459952248579951213136913494601153107332138897261826593878008090687150271846874013262773700870832444488404520414508701790830328519809531843739025375346147750193288405699798479382257741695187875897556732124522213112375228804275459975476898052642359224167344005440013272395727790832274408213326299844115081730510453731800382222837557365727161801868462217469138782776518120380782569978797554379331453343270116004509102545092999207075288136233394221554666292470843269069931674754024684376458675859990474886289659869487486129852235575572669542659331363415556676638146813235465217237369970051179152487842020395829121230535082039827143495900103972148590325470085938338230792509883510735162513342646423551497162397594669137421366474284074803535580119293033783569478271127243272086511493176613338996764845108277265846627004097602339736920988998970681117592946221684874863295866019452434015736739224139075916573508453561586235230375759162010581282110100514341613134302047509098985310089369937035900777826160307758906419770970615650870514574625375834639596057588195325469423679517543252384660844297185521577062097396499442790430087984730297713188430305159042551949031857289330401522916462484277271548603299291256089977344807966778959288109104253076410198302612276851281508101579225055442507404109390701953894201321270860605843127369181838176794405925117317970012281780451793193580463483117299972074815348330932435761691491482241174586151318437136257002909409065575283067654191941944185458677703642401225374531719438681444932628201230568670154130970015605654416735559026294460866594334417579620717345018905090226598739081512808847615422345128758449386478619374690560191108082150288653812884610174143517111420916117980358567203557611631027803205442804061746685941118298054851492173127596393146065264399626728620118818134119308061914630702295997690126052872368731942162667788422329580904174708575314197920629189146243804916176473955408711838604545746495093384003031280314085753104657671863313848637809723360956997175479415406281363576740477409845162052765133276702999492920614198390777062458626274607349475557803889756336470398112217834789381721842930780426595462251728199870508333473995665317829528639215659277217022496358723642081883355039943386458527885477584280014984002418868538535840827670893140146019879919334697833802026708197119081976467543518009851081818033008738385745057039131259649358720515723022649539210016423034984849112659791368178217027403092714746569646971582195043802695893449959126850934103897803087213037880581568050777731255295583522372681473980443041119122650474951517677185714042120804986287509157005629280402162392606674706264390587464798176719358621103468699116635005520902548679707002485397020523698098427696077788173444735698833046377795502472610798562494691103876354998552567276963764302250308493381864692733038394224774686137463147624203846740394434478302299431711001102907267697776625190284554443918133118165769784115632812392811200423993246425269401057322628287499560717682339005760051064357529870931808715877634694346417078785259109447798148468948914324085768456315313561974847803709695939694121892501530016615867471652016762863981685561961028949727318522579154211179104972237531792319755916668051911167655658776007415775264176004432777677337914388592489160895992491132899619370854528300069853279036699396928209525089955215938124374584000941930231461379309307489415321764833640911536546995698447809786919907416765725037162764051659139050361754219228404601235462046278511072230146752114525153449422584243220725009987912040981435660252502279973951908247319714810790783465130292586924376256001809138975108635790510669135301136101325243634771789382811565798682769118794230012647534606278415333897884437890278318364916194645019819208016335526600407930444099490999991079201010899422878268393111329373333224972175084647856701423260568519730063646044101436493912972191547023309287244132810406155670211951883169737976417745974382171720631427484970636804523322878494408848927895544315453448797661720121609770204294434197352128653436824129937688532745021010773660319053457466010754801434314863497010397833971100595784042596135765517360538985207746800946209257612528306345345849146494023869735271637178996033308593007012982844225327198446565074311330380673034579394647051807264091061634147389407198852492115253687273663476692389545622262598316290079696213451668305753999693610023998095677773148337598608424862464078939948307680943816384637606850970980039669087733648094056901829397158140335949230455635780493061998336364108566793241145209055470258212911911923802855500642135015192606607110982470742353281772621351408766994982467901364998750167365134712833592257431367774120497161582116577687661647241997543124543847925759736688516127523676226519669535302191240227211542199006669379181929955030100457871570299084357075778917711325229023432958686247761257785041562642994322325616255190247220280203300435012816753441903491752720590918604724849268470979498673378048769962935419465975873573411889694177934866319742776448308640743469297494145256155161865411581391313217828693276431872152026395927138719220362999714535843577341204937223356066911859605290899895650844776571187671347339947186424288282511694945513327613559241132573192548774682495042332183649574132986986334513748168096275728736309699894210561889146394344965781361461755761666618498039296677566987165603048407989116415814490194218691944621159280282032005209170616691290227944541500362156620620335052337759189128648918501920182941776267295602440536349835061619625074107148877722352835006943059315210355219069032756032622881121242290755914874555497804337838544362595376646183541207014189169104571976261741158196075374266135502897132758327298403647184102088885854748777315041905272292160667109684427372002352870479241594619812549659965224741334709448431764708109142001358386130808571401586586473179745164461443808995058735829879035704964873337050906734236999308533209880096973145202541052427264990581469035212096753852568022022654041682653841908728801513271836515572335428799306727992223274275919719669080597215029335513961394691728088279788147377909798219576378117949016789261016177258893279593797024288643003931354253720630390060394928669684941900207772049405381395067478952798665751577736943409881147260140433092013179262516384915710470561227751561193062502956347708915531574514924014315268903089332233488782639498530368035168327738475146410689369515289856032896181039002839786955337191497804873148416864418234437910753397459453781689630694651124401963765364970522174997380312281527793166896748415766793168176670363438411437891050012720752366382236450184290201686401807585245517707062638823060959362202020409549327712528832667041768270126530538992968281686991802500897204359612752964948499394609256636833296115635938861330158606162161916750347028364219907588138305197607184708903634093790392760087576960879775878145904372393168962751255050598913109951587990218139063905384998367502855456462205993991228579660080562809222431507582511551572289531766724650794875904566922063427941467343044339300177247624406613905944901844638263043217143902704738255674911076373897509944152136702212417414039415163744922107307621105400749836128250791239454731168163238887174197336697147414126873928302767274275477306900238766010815648239293358446350097437382907783195469220534390051414348282595213828472868945543537021002604629675859077170085984629334215372361803161422900939451812933904869317740133655344590289258326519634185902716418858000974678043365604762615885296858403371212286885631403951301225764910567664720959801390454012667559126072875293713976505591639965423941146272843231592586245585726980195593298648620280758636543025102489142932081912485738544401474850220678731293524015639607880747847320845616289566053749388105244568867325618596351097112635029916939741363595885441503750686750581499599240889310782328039469106559326453246410753878497497018769536984719515249402012906924976384203833132617612047373713216457269912807842058927753202926480433524990748865385230321482007522293094376743285946473057518281612211593708038331169406079864738483051113934983936744954513288660881787352656545747160559629661612609982664597127367965606792179707316814963988305094380695502143268998021892458813953856543319041393601845887105176183136246492661510509200322036354497981218009835841098257132742954135638046104160850011071217225957122349724116684569557747669079935317847926071860510809626944727501354000033625385790108151703411252051747427394161057441412063897774726327323169725128259338493534926322305306775932220964496356864464151391199096037463824404681616683603622624475419997320143084067271089147460249213250346211910247579094567073759117629039981353571254636521289638959562607880814528692155682786537395043579559394646349562032808719448310881952333814911923479694267413396871509850506021254595880627940676023604806203670887519351479133130963464211723789301390773266621921432316208774161231686304744765714966582376944694946702356305863032911862167055378564525753284388954559746571565613451924741017928376795287940404024656021538073545789022403381430381112458731289094485911161765451532783668275761845787048958940771347407993242284395521449988728736111951897587804346191320007315588377244677410881078812846041062425468340941716055611816135407656642186310563883462888608236340409778220892480312990572590548137728577298321788496739798361328839316234650660845721567687208202488554997760845899710273316657362269349652217189579056745454592741103429760024829065035407120198626961391904156348776153227179533033568314514484025317678096852004695274127321156569690767932347289367912793992842570077948626851801316834825390294276860960701585312556628286132836036871861488380411620155985618913726215276911793300189015231493449612305103947856096554871963269974608556519373634393196203330977571667751663628838689053288106871524336065602067509431496676821096546460800947582688518634979208389391866558305636241646944782957604130204047192734159578501976391559046949209067516920530356574298415998078734371115692243630104166489922293800610876814426353261913420170047825173944709257542560410529563663142835942585783092882166866621135190599969327131485589199169012601832174429329906133353814682209221794963166904392136085622576547765202487070444806571939340837315083579758339069575919616081632565511502938886567025658117230313481308149084981598949391042980722429867938560536671612262656717209952477180247361635264017242775173172707454935924184223994576102278305077331855059824197575750290206512028164611934779636243082043159113938837236852281257371461167843687838753879841403986393939836210822436609552158136306716974577027769864285837426531740427780966163198409606489606383731330877472833390225492741571112462218458345785138747017548270909773462258531629744341738366835798431498584182050041502287885997402584461675713779499074622510984174036837529043122661909592468804435902197430463910897833259297045036601230471330484638575690470354552281876476528975773732120845745721464127313901362928433250283308078757367100170868742296111527958572035135222374402694019273350358981131563559115988436047264252429821800228617079967336304882381449271970940160105758421663266399976839035116623011629640077610352790772894725657436729902108523324619101198244945920662032882990572606611845412365914878770699404309479529841813342864827219047713724911238642404823241784055189422510273980386991895784752342524461393195095780419396336047155542890465289152210912172610590812587915761665177431016324300177120770189882589979652961904035015141802496517463495210143067491173156634234134058282039881746861097483803002845853396476305895388637259479453287559632457222753945138931743399677865896270324418010793618181397200992172201871766936835202367473812120567234553162012846945663334347451397488098108307493385399919467237539912197366945224593555479817771979910449077308397258900867901781940419682537097462755568107124940454182772855013245547426071756117098090311233056464319922640492301871436626747802880794715968561524711937579974455928883128980206386045595417945896592456822526925256526844840011025044793872845940931848369948280033402326300309375477974422591642761616328723702784803330177221690982937730042265343915876192875126718699655740042873344444225600411105488176621142892292079129630424902063990362092706111307686467314061800990275601588639821818644635246706078844380985202015991006675655627388750684385266732026292230375964511334433147268799010052991930243211800359539655616294330055084767424443482524723224954805001745874350539699326154804093214634251867813075160042993571035059961989793774030725873371349324351936826621037562357672657364422774507733011474735537891445868649780733624958100204021869527877234969914835200550088275378802694259568325607503162866352838493478386390970534199556031277282250749152818764329713929928533881972369891234683413605392840457506106030141768114797158129366373436478691358926794248276121666536219008714990848227070733585781410035819934792944057220513352010677635493137922684778756762165844307057555453658687367811487235590003459327081381818404218369573572159493365223920284150108111681278672284817742852874676482686479533808744723672664404663182318039355801374359550218663940290455768605816605421138637442023294857265167202558029798967933828214575711428183635150877321492334103539266068213479081036428534199443128241690830216200508946894750469472883166254427394460805807390354211693251030904443108165733953275660991135611696748322900444837353736076743294812759967710644266669182055218365035325766881687573619639986861898903410436664532840797431989390757389401191317066909350127872663795378052207494221409361221999519165845445936419027853008356699662426373095543082505586862912158957028041199719308626831081513420131266374069167014427229106752994439278374237904659810900254831353697266264271565576616203933616439401857162541393379422299239318878757641876033339858548618711145620905960871897597096415732931838857772892552528507606179253265932135440254497749796375347019730652569412986868037550134993119637075168986005042063255431086515886579843850242827997981335102703280680386927086242326202756957557497733323625030716365401236929427318541362269610561842994630061243112505959014172603792407801288035081557828291097366072795074596349352254969223674117829466170188686140357650945624840699470126071242641206603856503865679984462821652958853752671218987357407228948023286921430212554361159245819589554267777913902426214842588300175439659597071277647716739139150180344579595137400300939318213472378740689479651766571088208857462645940380272468129240348991104434069846442070031251725520632930745254234537548919000150665190248950385418233675697866771805981585358523837526600409165250098037155497057216148822096365558177135018149167726405095795886700235308582132800557656768084200595755656660387659626625750621652494759199860098976414443899215141954120608408460184274086696863154223362341935832011770974432194066728487197750032310459357167528868208212219074925750079856188005188918205822449483922337268026178053253677160358454846672290763364458105876173255754807762215244456977027365384567571565433953774903076971682389091548830949614245237219153522234818336584033061376291368326351448433311661303341298057029953545503855310301809157505530198614917373577543435123367180911808071309322673530867618864622043919014209109179828290938204128817355378692997612823634860012886523313084923610596710813543932938631665383526512574816693393697912249459611455424747175042639091164237888987476691868807254213463299770384013369782584727381671931377272307056175356399680846641715874919332383496228316427073776245911407269580877098874145056571095007480490995582447081550504166643381053119264253872179152202434449436346653457364051249592458949552913973171254155910804081713877446348895776246743659235715076309195801140946487173950821745568352173934378429272056012272670993132731922922636218803172988671189423183767099361306791326215014206863124067284865951623887444755956902631325795813217808671489119347316720310414653884321383098663907253219285926353676900998397486581700106699370887807357184442188757036228209565116327068060352867396250396202332106135202484542855023635928242263949700216912084251115128441769069812163460396571121064739185731892555811951365782764839170214762268010252347902530456377077676929354727617405210894841584238390897639633850676672001006425186838320484877629775207539067618625393453173025501806801228165142500570044333118276071172480376820120218067624617110333197597106109840695144884790526225250468192685220853981333053637557977688034772588259133736876837952202362805386433368968029845592635293250795414271805765356014796117906161397154820909749911533645545857074297223673352047211074216614113375911173712915737971332667711403539776867801153860644228856124221178171880553609104932890248674582276726544564065920381330350896944948737343348751615060323071713906977389613901439924244207068473886601661471976203565597119614104852618140805173952760078641057576661732343066128512586709802280919579172942041251623566418871366648037232085600466822977733155213346202240011919627546915012648766959894735304624867368556798445084221283608072155311103091436011652701792696188756305010622475002269933431652255672026216758228583107236703287375248210804687026258628919519253401051405954330287367518270120500972579572102044355345776767230690241072095050604249463819931536233834536231759536429295504971903040114840029762608258824735137331340578214113283046711698812660753401575743511178493694155256642056526146482445491048113445470670285103134658031692177959131443979398399068017976479640965974863149659695358344268193235374321098523799962369007982269131762049369893605991008851775958636790267290204904968585849128482827636014586936756792456111032053806011742930804764546386482896881554563285244127232132435650873630377619239201748211314825679097942969599795498464667839501098869893928073595730371880373668590644024600997249306857415566411140716727906726155131357701467959775112323938812433083224057529924667598782695338088395492828357757344018342039550162374962641633687699395561130949321039500212909709020298932939849102733487981680731188705675599914392727866728790330839371692167720432411409133906160720149811318140207668332784300295892200801171317184292306957085874840949157865003213258133318377512878931218431637811778372257571524498338242895176204478865072384925958247530450654613236112049908759730841794878802215784753855573492894109266027031702079772970158771166201101010333944570981413385636228378139776307376045745035476499057325776662501925597621332569829413978376652901450697111973479985174912544584681715478652605774941564480585324540504678467817109681332841801198154375251201069449395975071549709160898568244529946203259394753220283120732135882595493269578088946089162624887986567546149940660020946009285063963903890706737996321519442477116257511738727475111474650713400683182579737055403497922803349704420711136409074668904174427034962828948505535362054584188505237231248039892361400632094243410185116405775093212566519926686222999724245284065550062361320601812904561180855577784721422367352094650248347764986666777327027085068548477292963665934027218281967330886053130304989345666670809831969834865546560589230787682171295950994018695648526596403864603640037996877903614266632206826648244988030164034716797853766854797703488977382443257698770477094813223685846458447877482749455948642430139517073881984234179229187515375135489152745242958769745126275320560727105305536186085503397031849891206972454324885534330321718438497248456242491279172262436490069241001409812803232280943169577054166777205074940688863095881825616303603128805747603661900262379209782761634282284077508927229532803651783159313379299890020638404404753909217371217089031190909506847260659019710962112165357061930204864465096731155540153099934593556404380307544461294511831170038510869230654173276533629392518744002858774208727973504450017312429047876210490980948737101309334886449001543708061375482889936265448961190873549920152725253703506021347988898377005999118880238219065521970997838158089866007793581741813866313242235755791823315412455227257295012664131171428719208630977415815876123151680801445508423724748553941342959719183001458061036853966140171377599602970307536697865817917151514544088059912936283238779747602591949805238496832517563744192940074053029694149795287942909021579741430069462033838636279837932276951604646812515336665220236860342792367334065081844218502832420706183275582057304637266285478661373452180998087070248901755152905419879572285075411733335165366230362657167977540043871979676567228782266834389835708578806070919390528560714834035365072166632712010060987604900571058292224007440752587400794255519086718975477683777699224259479526081572936059535551664251554873845086927898829161349361206519429805004907825029857156790865026796958245332489638955399518499392008814997377484932557358475442648396903222119027588376509724758325507657998269394261181690722579481798752314057144558504331096912448214996671115979910847528897725722611348104212321702627949371795202751256681094125390106853610558771543061811658844812087195730442260595771510803015528444584279868970828560086368425267721969764302412245203786357936746691751675577286550740132995519321824236017802098237199289694712964384170990161888939131145679825706599433577777481558703360144439380824976786774173006152652986710686969400648005603707578578791570094298557885370578893219206866235215509446259736823752427029531675574048617602817005155638597211657210022723977811420239582018148204544753900288104884678472732760801764082663583115060146221778382557418026149592297979901069285265539165305988669650782758188861926305818278177778572229781224537779649090798305972800332633256194254625501101498390187443437664938305389160189165819455577159863016434542436651227331212878902653262897328274166861128287792968871919371029420011476625948485109159212065049905212487748999364463778234122608848600398566323697516843262991419708281204063994276743699332872937391814235164634235849194626730966094496565315091463226812681903968251676537268174263341803529121155683032899726217287156209142163856200748014677252709626575613147807384085143808620099003197739484591052356766913495228783455902533129617187872761208592759577338689703782401264703674675124323285807907499238214443179301238830483024346467650295423209680664990265205324554321727059970291841956404601368354025743272366655119365698100526647761483980626548718580470175274890509511558541834969859408855672330413410456247804036337262109307437440732129816634276242231783663008367177484537975876068965685210350780600757909871358627417973307876075442072331411931735267981508995399732499088286171007112260049161645888350980392759940679323466791006670756963221846397862573403318987714797327645299598331613473397725414198901465296996564092386572049062910882295116388092983366144630505219481531727900338360880161755772244891067235467267408617103747159299452382536281922298860251615035355733707703919701165538913380951145575207273022356459399785875484656575111879111495878630568351868008935151635449147389444590253444081815099695514788733436115759950351893182304183907908317413896137119487906659324879812909922141164194584576245942641372086642920761659900435468756051092074578139759108412278873854901578236414830803506306250282647439172918275944592911278275063620257206382639980673420492691874307690408122079257174816800695303123019460081818492989714428192982557614205188829019183126800761733336102185962109640121643085355117743645020115181309118922092114662411804901348708443529325223692530738969920829231994124095073095260495323312333259522556618005553538513022654660729620667864703353294011587251438555673749689249970358480487309684094873124635256189834488548041950714816665369464684602783996279111152852539483004497885440098985002638904066827524896067198007224314883952213009552173201197939976921407951402504530236805586406545090220885490037229428414641565231791773009013374670823013988630801637434804540074599260102834028851239134606383516532856652261897849914803338774496670770083281878900019315939579355750774170827820140349729173404825453855454753749970503925389775877352495144094259255524097912345865598279073252273087580190153482779195933404856904632161669288610423893344733649932857539806200181612023187148133097689570113982446447091649496668366539545465364822462955885645423618891462881902538239221951906795469763253420915510331921248799485162418014166536669592075713093421872066724776179386978874135315797206684813803274033578851507836832732598429066370032894513393908693215302927134436518613982761141177581847398412809986084318025568883293362889665827108723423221312920076612787649014084579285117202423676885327019472451856225899491459756749852917238185269398260083344329483778484783018825268533738534341335994735044190604522819463423686925989360638643307467038344189297059931078024967810790261852093292365272627198966419570030543628021712309398614040243419838400016273115412787529493740241193016871707317429116425409804469309080428777492210974412885632152803559945048331641759877879304731046471590310009567899813352731432565473660499982519047115241819448803483995993797466441709014151338697706388864517530899747948280792595457276357341374462104538278398963924803645329913389663856266771321972910573976725856735556641234305362602128661665703517717379290057293708841441726450221509806057269462917839376521147095051697325117992581986931063180238214401405431363321933542279851667073716009348264060145146491869129430285235642465295951861583539604556495735052072783914513685965644316737676234796880274913783148270403016547242067345139244882155023467200439158726933401099011461315683698869235889780733384107950685910056921736940843741512217329160370153512999239995817791213736255080061697634688943364434234596065494532615585123026385362557038301254616693608699250802896651874053886409225899931161274038219959744996566955160163380002248732127403599458137168586143263966956602018990571790139416480310664100551174882474763849388457441389279027069687084667700637503409423870984131180605600832244755695321203708349461828814041591534276188168270003456294349897910901814899263577305158545655115573039928127942427520833177059295028580574041590646725361538127409413920656677960731257709976158314373933064208938075993652564769797980161145611116153641368528357445521768986899446799248355679806781697000672045529045571913073702550105100332498480597405805474428329576262266639416662079673647601105470572170590617649259868836934623341067697076686019827621496632652545410008428494864487599728466762551737772057551054401942243909503738685684675861710568096053650633456605969357295961090150618231494609457182701440851684048282219836639149576422613139581594451760839714062875453078061636102781744559482565104665920994813167017351546825132632038160294126827016805507157115968936582898639923976384022361646083593094003564155200280698304055999301754037037641068616426348038593171834759774742520558418532106477349154204561232617350903201647741605963301590604335508371656826699664479414498553920666588751291206055640621916062665730866509446707868388301757843993612186110563298453017162989919920860121754744931081592929577220645630369758413706283293723447098051015709972100581277765403563801403164862384638093915074445463939855035685693605552001685956078855192878919182745313777365873866044671314228055366767674592070998078374138007310857666149449219973241091707737642469428821391273084580160696256736916956892002157731149484926076497081973734029065245159196331128047118430729902671569029017705645379569227299056532916346100840656798767639607230025749025839049663486617823101182305787856828484251432186355547239185244326408608213836054419632259658484917392960229128905156589636752131739310710006157060814971399260666022350519987614185227540593990225674689779897561881468617898514112729190517142361808492569671994547288277935920909337061296329379104426025245753808900203948315508875654857716297695841748931295648202210743282011247282885185570060456837520152640002167772007193845311128885516592920900288844378866470433928460879480575852970197936436295809464143430337549917876188036231838965657521045297384572903096327432284680709393177264903756735088975023164300173170557075883210495207605538179498044729414103655470315203897548260285924119145945107222194887481935875367680162875944350495773084395576222379301370052689088516030476395569004620997667248555477444196101501651499579610281811612827948439379626703296159064754099608151835312893000331393868441362394195736896923583897788754040022363177781713507256862321984124738989138648262055789560112057097976387873836934962269110538099843072224141206562315916474329918232360209143573123237771772965359781017372262989535824904188543768829247929613768916379890968021529494401169666716813422841957743256739203586288940324818065125847302478310766516700260810761151903372907987215545161496706908624122533690219392510747550748738458231873374389525194659136905751095101146392092761476770813183599539796370348461342340812972887291091692636556657466725690559666641007691922403697164459070131661786307430488550939492502107479016706062294971052884932235357074979727970091908513603421493853305026449011399809170256120979718707635280706915756659294603904369974874520204117370056563176560488153238877547501211847765612489334462155096051042712973916862870846653272767344821111974614009723494156248037263946864829290384745677860859532430128098522519433119538494158505362505014753923735571336710059564845362566874485146497446518661376351660825328430483352773341899591118217512877405710551979703534510899110882418548047550956270262747926961427545924162758488877289042684516226316556397263309364077638163768048771472574281055968337514911225097964810242517984804311658104173647883822708070476753340445616524435104297473991783635782155853546088138367426230409400751521293899490349441120886046771391455685865399669474358790657677143806497908178987907673602548800638649122033136654438522042728211820106709328933643625590892056267854200558546128587459604885380717978241755787682685698982118829009782676816655904270866814467411633043375530771290289719695188125657152994344127454959777063496906132057921415865424471525563397390743518366796515646851843845448129407045249429954997694106793122432869879805028924329725861578817110283909690272398472874261677793847238727393273473855794265388449032371731578802879337018968428661355818324243329216937581336285684508990861512944971161824357434084916222192660292368281896584357800131583255402716087723454369532543893907973494482509125099218958421163346904620357095951808144180600277702471420050719245441842617167677328269694570585636029930564556771866792443055965773958088512188766460240784948381730630108631132553395326171811157182233093898854637280783020770728130397114738290686745790337730946519937709143281562484252973018316875805487956729441925050866560623674512400935010478041499529685479467936743244990529059229505632208342554542280073479197361428069665241229500689863153007892053049810068533619718450786212089891706251745562442789405482984172755666084270000346140028703147409381030587856213312487394116890363907517523229148972659922498310313082464824695631941339152232391418719424316230557993383939552972250125846721093095113152614329704539774948801849452574242854099606630404125617118719141801934259921128368929514599610925260369335786815462810920569221202941709038874258328726225727808503832540870168381210467992082328920371249220616986466367069859886551787680726062997342880438352620951156327520753269993102042451097832815089543707809691493920017460927349039139763982355376345638167733030196189935386949568497940655906765659077990208429750126299621985096469775951106872574688390285649052907975482328115887713063279923371844902111635363017155292597409725977126130213143316196993818228534533554808985057997011247681616893598662692807388619627824691626731931368116250686964335752047979962352830328391716156311422277941375097689082026172729609758363633232741580381776039446271344671408747309460869907401118236558507001156000491596218803004458375094636913076431646051459864770639239822253334846637288415637782926031377385279163720323125851596651446631219277260847950943069460953317780651824114676022864948287208117085587292449185709725254403311430297365405622863764242364295874721463110891707015094915788397430837076331413287074085218516021374281981067609650494187928716403250487159365829506854671336072446162110959915603328603424779485544522510163783318968656989796620710599773103339311919120145826721388108573678964193367549692710657931162882745483638081568890835272480222720330255101107320019369131864212312097844037914278499406025376265392229248750744015753554993481848548801256096197081684471290394372822099781811436361223598618622786134102465672428915177556811079578768899682374263123415202866415210173225023906623711949508934289804768109779846065962351528266168781042258023508511448704680404445495733723458101100510167196676147035625833564322645249877871559492178590636995649029447596060957628002606293937068955642930019417293681866813226729252887651334430635269361182159621230978836578603359609995970225755347440367859136047175657176591745230708846592331159195063663941419113427228408275777030736380833816059518092950788926570780960908194580003553498182661152590712985398337870412653367126057434009101772412861093173550132060928010632122638567158561393202215207067670941556750774626816676425603949618211404429126506997567639240702928226135437317465218512578460580056107351606688390292251222338546096816738934354237931732426124330555674905519914996296116177744251601599010384134281349216672428149190771709592877318960797064688248518940186967872170896178121582318813046268630129206006697412924659823759406954561607074329018672002056341745383175602518434250460111982144595556921717732322316919842515927142265195230809162640134187015706360087750265429444500675175274824933225532484963138584098930077367648489116753462781025677036731096726071858296779786011750913720014481766255067196903251228033531983583201617289296713821532193399664253856733683425154864172467718793421098975544609741419476404541830582394986216366799415694400651110504449762512506701037697443275632299922957309291190091975747992115115222341290714653598127376497361919410042831412004302632007680668932105051518447864603497225133266353765404212549471025719150327107013888415943579423763428811960576301832590102009551982222118486339077782953275811705446363164198001506483073021315466770723056405761095113916774009698740731096530090203134859320836611445550157524353032763500609387521397875358610910526044845985625160735203339974966888749623929972521784878478010304799063890581073045751209289472354366307123374574237545520697366350806671765270306349245922555702955211679949784759984671266741404098376597553622346558721592301531045414750452612302786580581205285164505159488838482482665237656217008288875997575594750236603374977326379098306428842487304362357911571334735058467777200953211057685524576407966490370817803269551810747722301296681234038162045084683770628664301279643670357596877900081762540149482474461896322714749402577649133190269152444266662679761752363363836065219266755094271241738354561917173271815514707481237276091615856864598501691962387057516073325470215864089724126121802028838507711710020813822753523587813617968924684621868984395002217194791969059357416453579518349234371329673738913050893539408462494726998162207784468910055292576239804548751616119152776766092613182483219727779666779135402150528543140611994136263215177709573817831203078652346188720454635273616957430828184752822304307389819178592870567460351702591969271709576876438694861303844750989858722832679254541657892066339677861057586498669774903076019663841782309326366844278811278913653822888579111300066614215746914489190224214915048325058994054412364136538343669359382710168217056391275017142347909159976466453612173892167285701377941092787433575536168333946804318706122861275134148837879697926131681953562500122889667360476723209957812229656869689228937446940361718883057416832182316575085647085981258272677568287974048862221995829049249295855247974335361615368216344477623860380601956999254405346123739891238190322629357459404567718188494896127467367044140191142271740685430543229519103237167361563185938510519145493955091622430310545817795496550191813233534451942082075636816377795131462136191594316886481496338079466156415435499817637897286281372835205604752975458122310259471132459525049039770394650295435230180403092324757141448237995666511558647481533937021501995077529899424048445794628131462982889255642759134620375813944963452788577301771756831336966463699096206283157403219197672452380859514919787280958056239460513237528782663498719488023620699501101831398442049254483346299927937487684351152659898872166069329757593157391448266430013767427882526372748280327446651299909220602376407561195745603257846315416503986701320551228903968666568384497118513783331859730803275285977697762294554937951607194225875443396814857414254674699897056457975815458475278416300230496901770705125572212101454399280358543904127782743829990490466470522622842034051654889864227726563355272124445599784217363501513321676807273479690063471763784158787965528982792879724021922343341520785148341217342265079867136048617808615392554679780950966949689014284835883741619293828635954659547666304886828569531464195222809263074426813537217477232650616547503972647860360168627097562884946730619108649941776220920519297199115347979549512187393176168295072010105851649782362626566744901152785844701409652491922045292993169309145456204197631268621081309172053971561643746820837446558726095645784159445993317444632522860914847890043613601195577654759733322952637501847669172483463050042854853681856319126749808112814523144797002048888049573907377471741393221394037374940517632827456673514801172764918793887894011358593241954781255577525519846221730958416125561100632209008268648195685960209021406226225114965698116105479586132308915534317761581405674550776201338937404225336386187609485689674962460357192433981649426025542487509283001468327075928573755543134824840078966103841061638616764826074050955780632011208915320253168326313625139743857161148509499292122561330176687067846274277982917992280442604515381950882793930519894697530552958832152870832578450787017239010196952631926433979635397621937757763717432728277386829417740253084962142893170932134630433887657336301058633339378889049129186049273609570329412838342000038920783997614748257333355077214184347962978167734030207806990530680776880637592282098988306779009292427306243683471058151503952170655697025965095131634538001239551355109338400728994635653837497042500094982353223968371184606543460263560594254350678125365868350975413799564910164787871939535026192583179864874552660834202198881876356450637444370130494103418052212639844702482984623430245431638148073871438365610166457918325114044079650404496531771175272032539065306657367730019228997976929617789350743342426825752830280917011988958756862916620272971828983464737341070464105263928784899400330898709513895314114784839364770971078916285879533610370441877794645913210943685155394087462438707187639140827180557471944067712368731027302018689416666071356844841928684093915169302429335398815057386553501943609391091922969101512322724694362244717233404920348739725109855685128406222617884212533591679559480910024715742186546569497787542229035835568959243597708113225001871778105804389148441539159735661340756765671710042048567706661468676621085235715627919682869944103285462384805421525751193142203589571123447587741652173560025523434789519211958578204515718800801659153825362269247201582993782257476351605560915678788079477370113712573450022895615862177216365543621718826615336259176047962159865546465052459872223864189547103097150490799430637952585507862760879143449960672415135061503432078609486747391206762867925200889198166841108402551299122085234286818611719684429133054047929147769433033387122196064097019029376308745570826323777149959867215635646709971710682713420443952764267522316878032593588417967850601238579985353932579892938479577899700376822131840541893038693414522221336560907640899735533629549830584707378863675656202816231587230289473038054545357442494441418603165451285408086994129701141867283200095683956263978259940160929862331480404354205303593107951461351571622007620412857642830765346669255824028580536732742835350214520494937274455255747007874809631623940864162337675951751253460568972171337191884028676102714897721975332665450618465083455745019377695162431178357424556199481809987567188854505744976331352659444883682731007833110399288785931719632813435175037952533331915161049837587861753332310306870725193423207523756886019402270228807939978141771843200712241492279612435701221641332299273014325419845782484304764033792153263661447487305569400919947048409325140389488544881920072820852573855950501384405755575230800733427589599629923818070512917473713221054189909734369759369727177936113038123811442391528713502679529877580770344760745718157034033225256439079116338032288865551013273359554548135960420413918515621551661994292833189432945429416762107470493485217171081142960506512849127571052640848097608954924007459500890162601600557431135492009843069986596598943813933793633045412126595757396368782446320158576522310162113861137786643779106356307500356648615668327834112557417803215556595367782491255238004154711714613039271303777077232308417458547862058594309036842917518464920870224451650518733897968772914678969922480552797511341191269738196631488912595490835519536047975785775548028344691326468287816196677687583277104523799108188804070314836560021903441108521740728278129903310597691980131769488716813116805489382100265654398940374370182898687721548199603032717576285335187810613682526765135378840696277160912271831088026645743095517515780384392245274790463720927294953104635686679249954992414745054778488922211768362072468027947065417783044721337109045256933292675692568418705108754491551053547640536025603526481484511566808406170984879308212547624572434688341141823641515222043059463330827867158862310484830163246477956496207327938829331943947319179680639786527638263257500725329516380799035324490555107843190028814693373674277359586651801546277709417493500494998476911480889025476224332195570149905633604737562395634244636086853890819263605093639223882801504503628212325149666840110129279363593902403596409290480343134955303626703990028090017676179816885800544931867886250575057630541814071549524530646002795381887110939124545683536450526616290445939379879865556757776800697609258756089708713819517193200151270167509268541013382751581815504652463949639969386859099998902044352118864253263499587916899623246781449910867059745404016798080673328259549919836189129982609297217127642757657686540743707058426127399205955420858619990417491177326843480634848356797574785443797983884370792005858833081419487094434598488651767650932509619492663482931827353194668341203137196573957197932111787519310678937440703755393258499229123559405634246111751254433269671105184973980178222769631155773606717673003691390126743302817288777470809097685393211190964210220739840084181803604851355265262028637095114205362387647820997640189307401955113639726334535162770752131254556026395663160911176306808245679575350652445584551169288969407521500980510317870290964772182997240414538474977126590160035386637561729124288025331281881098305435168796247903553471625451976161728639676012344412225951699447352083385606748151366618313142796687400894911435881415505351623114137387790058836013614027197783498863842280438232972964117568487329295542187877563067882924456275964166942994078503178004377411859713257344885625227774213909083413909477846894235000148539560575430253157392307712107926988552099047444687339467018194083884958424497301072990883505770219207511029471576799566173064051016291817680188022845497446229362449652143190310621863657053756913785920693241565814788441047309277820308301892030194595501355258352129728888649365555462800702165610951178697123259744167725966994774608566916829990402167101219321326082577715435683795161717317486752858169722456685378709440111223427797706713697613064923463814487335420173163705372228086501593466047421763075443402117400794096126667708364889189928665867526489394371301530393399290600745353501419470333738087528037706065645958875554754495239439281217589135736638610461133246576810444458480174378168455022661048970292919604434279517405585259477615479671414186257621794608949587178554443212723901783667732713415969587944491944900746084253192070470094574919655807036133856239893835286165816580168230149107164055553762208185659270243860748769987491684387397223680391100445307422065621738408955564800077564717594737366482676028172129053340442191504357879375034886587528014686332378933279697617119123021879185273481512894005494936812107075640855952093429448604079088830005387020586915182124426635535206673254156109071007670664009492898792780071578233551151036714334950263535896893151956163675631407804204761822235916417471346857596496922772153333310346587063959841279006975919642944268347666890771085570108085705864451451668627413201847776521987414017288774527780139901912779246914282171741921257985489583748547431867411486875335930079714054260197061822605034790086594442325952271034584896202258628488545119640076182497416235601787798840142492154810036548379889639584839951960247647394324082488666142744083745615194141078805987834071906590468895930993155195062284096028111071983953441243076982201235002803522298172308923995929224867264316704030679196339052330979448536351718813250345659571177029572650312569930587387411088613530772373543739068500610266588727225453086386950684986811450076218401087713298402105959547847017600556229861838762575383623662501689355378511764606791445395261569108798393448655563969296118054747233099258132953067343924791410335233094483354838651402587939645074882817912237636688533484852284952260806902433472320855668575404271428119215931063618895130890085190387221455451383381130155001493297877404207344456129811025574241216595378547700178434406565805424518795076944113107140724604487231060823227525304083816384039135165590106959776490099318992477472912827280614876165883695723755734209412343487318274375098215956844942074028935781113853892153621653619216187942780331052690008665179722778782162308413425288812683895522536906953315046069282348822139841624694810469620422726587874097486805270495043478284832125389443268446463099423421904573578855959525053904237739464967860806568425070439962292366326393077499634806566623939457612244036227780739987993480982461110186754705786770003797690605789693253456098639946256194704580977544822622136096396577793347260553154265623210923035069738615090994339789706808906197103147464241844298107515955377061186098529621901112755738260929172867559586737202109986332223030285143969477205311706622129201782201381069021123170765482682468978659034540207349820069597326889520786752304018472454061133328184560930580920030505054474774748644596439852066865219437311618187528400262930712744952824485730527711306911193228940376975382516855971065993506656952619526792736629475434221686903467636996140743044418186813108190852519682322812517225814284956028358034499343442163331738577733764798315837263723421931578773321859207592917860958158445544373615545343204142626814314182392008129264650425647645131004532984358769138671196780272447630393895988108469941187149273818052457023574480004124825905088960456265564742221037670613154932072860794145611422771461311653727546723972450873939446715915258057606832981781192971024378221447232888254108600273024122491354964694526759585747881181963301138387489046777817514093840170200468651066895235404016694220084713853010514115757543317027266254924023322308313149881066869986299868690740498244449751907159447829679374869441072187330031311521885875764193705419940106407285816868288094349585642293508711384669806260422057495443509320883978094158264721766234721696347616854794640512137950293361423840860938129381230204398352407885483334059542116283683443823150331200529620677534781639760211691159286901030632782992102800667162588334363796293924273195313824540740926188822042301024214583253237135595462801668114970201421817356832762353345650836332791142684570404498582157911359456444832609071125984031580565080007762448426321504453111052622245906070341361355595322029257531131857674019314700719941150967109791304370237654146800234412192733088285180373231968316461255007926183161155619165701225936254556564285197651713349749697850027573929505436868027349968682119056016131949169343148154616753281502496562092240260958843788959566824871179854140665566625255414523665228540803857804270608368256683725685476637050907321859879934148898102398476721499135956879433324184515367789880333641805769257627947473040047154733012423377495381977535207624083683944723644372635140264020805544833261585785058913799169193996429755349225795738348231971231031913609213838985703074609333695383042320925180253627891626220172256554464418931311590983673635997165413498525302514143974768432371668399269319488465121038713482761227361327618622675291469196607466876896583373553327516349584899776824698540171858786775890425600250056517361427380381464654133996929010180386681989136807611707376867993655651403457695829795519793066819446295309551992619330725394841867645028519396215533988624200101070743522872698170307506227188421970393373634384387697850206361076716121059310802496632119544942054539574811207365112824996949953528489280970081934472367007853631677860847602155583835754470924791592711912091074025636877764904379408028159859641684542232079456356121235234270852020827127016223615584766600883248793968158340316897690945298738701946765749373114239834753999165692129435344394396191454377904306577531084173545942763737571575238684756859793702475826901318428631405950152901968820160365880617794952114813076205830058458244869539560952105465467272117575461077124826572718191048002033467233348281919742280430082087744690733536758528675293720341757907216161158917058625278564044265793141107962009536166295637183093493529939469493287109719176729280277638182493457723138046991687251701290360403162779420671795359260437075155665780547956826763162887222780148635071432667840534755411373386759385304530057612900518723185524880168964527738078922412592693862332637313865693733938282682940876808456230319484473016749350820308936200647088885301288067802540370533736386841760314807809869026787733562068528190557932242146362456812820298749140895083448017383975235322342065388355334139888766964853010138325198315681041660580478929954364218711181607342887064304980814347186023978748272870672376118404994440489620208517612264098349727558157295169471132305488058323153781220283127959207881400227899138802226566815606820911684805386814291748511482891481411519916768316833514005293711867425681667221186956038858917129106700203302617004134940521750391761121227207009527254518003955424015914661233005119408466914009897130526845234120855850915659842916770487063066148618008910487412259328918030497758443964019574267599557581874350403247969765643451360179987293938171259608747160296478733267956373101220245468266508674392501998523897615042939195561898079469981968548546148483067725876540998685374441948016303338200764527533410996537620666207887935925094187069050821074564138063307832467252825210135425002898013437603366431101589464565908038313427729331630144985653614923709268064452698615835017823923247415900202090007968798242720675124590049263741986418753999764473199776132011401776158102842141860654370987975470152483484255335080172360299212571915891508109668975881219254784066836806341981822615357343718808446946863248782169865455428247843009315473529680608013302787628448076276071554984649584408252010436113676013922016621815635162643664612014626708966245089952102783578829880434297988459246639479625258604333937892736487413251151032002485694589761371757077798385953844836267976756810887013574499440492762364955073459300283069702490822010275168400830641834404159248399865259067172514887962152779528982090271787457281427724916757515468399055779953265351252434390903743272945988814126024962506223894957609935659456623010375895915584659704349256099104821221663444488153794612950449239324785045117519876013600161095876375181905923113599937937452038547292131196326540023505020312398268129221839264372114388472881738540596176863634614270525611250527211653041370366425599232547688993678518555288565951894845923929612823597583860988837799519140337039069748101227140006266820694638422590916602099732784259859760293246126195478358520539986125485444561887953223452873776496929600637555573997516389261228555362538586175386926119000349559042644324809906913122032249258436141584648456772287352833425058435448051452856409346329398134773876609860389359941719259590433217851292080036265007482430413721487116927350193514003163853087043974544513171005537072617647056322677418707434716319478604717600273846326329711985714473902450561624341119781760408385157298659440697866879753345433474147864589509497091943331992530152468533493555218210284909107251478987020046789420812285020328161630152597376461629347413930442914655772692010297141145117610179287377345447336844719358728366301359902226037297235520058135140594054203888969303884954310701497108478881382174878200498539392584969820178381382218050299713846388281531738507533597786027477773355752673171860712863480633932901684047479746386740403148838841196276791457974858496848329787655894001727514885016071013209218432962511361456438405908349068604379650612813575940636094847355433313461384842275393277569236562705821908538200768977584722235436281181595685521385211021499850617462248852431208349294603467792154249765513525849456377630441898860466717941565712340033574680657619442877079727279415829030188641315686982469019213895217930392022971247599307537193482465402575823435453591744207622200375422969816106549857957329180999449028265767379040760213204066584648803390307429719592338043264453673031756814669532728831206042392289920283916994255013942107889312239527577494803203440997461879087593115776557396156804358915992812597997050688632651684281244803919750506606494439599396716292954345385194874964800437963729061643733647891495129903018917284859539034437413102364531072605155890254017113993673408350690592815400504884026034547923029233460762601829052352068122283629788113219497973262413535895220584059809295708880217804173293432759992995774889777017606489103669746651779372991356555419663308841813903632604548797633720892796110214554968506447981302143987698524809520259405121502095366982181781564845136986979987369159458676901608274357329188855369856612841270955473695052820506725517088162598980243983659281685032242243912805993384415757905435704816291632683745847817692912368335999670106167222388877563443087139484894020365713456941786102092353758713161706210322890259298782600690974391439207787251714713241522432772249969474660392695672559281522261367345298403976745256405363361740078229850840344663228237513850870363837314695871955123511920400581317296090366107068409375221997879731717029125020048701622158235783108470208240222995244566159534256566862079552886376584001272140515339585646569101739074104919887703226409268071073005428335015992821898164210848085065339166872435133489839718337657183755146063899591063622394743913503864560519944786206918909681081435956040138338147794882582061598551809991271490758032036954490889127273414142763983198079916405917027012471990513139456455529172401328563373537309516347538725904797429406359218464419989818028008093047076374181593090214964328253944667525937187255678886274275156553986956197224518759132642448730366072971105910105825295530246153615010778093559145155726154475995583796420785163373174753097321123514709290829055497841559664031381391325286078633380973366775208496818469217731094463265407580547101357991139428820373323713117383448752459510101453185299434492782469270508511869119779414906417604474738379681929821531608179359258441210622744760097026500297862063448377615652882484708277884523437038041459508648039383515951653784214938708833406155919288296684189950089272719848939192008264057330839356433523403187372427359348512856134599593951561990555023458333142571203674164705008525059506994413016348259557084589518802708946329490302475397912162030763961490449726159947407829906778582577267180626639159244429844899693700603880363381996068549487225014163382433716221647760089678355761731123881589030982062013632792753001000349874569350222564602452369057877127921460461684989389569519424269698743923052841816233983194848669513620920752373544253900400916981269142089839639911511061438992770782991934184728038511252181859114914006510064554252989133831118507115174416629827075706860413694727080150263191592364809427504995648609291553966093074124097493499445160047528422058470607652815658804953309412479266873638872570198739203675094330641251336144537426598703147201582598248964705328052915236286211491345132128358581225770881456514126856594645411677606360033619912853351044572385099717061276805022308801345305160784318938671598350899387135138224242104436570075448541913334573361277745822659239801087126687955774154777966531332610972178274626049615611256526042892085251753561912297443691177170407534355302375845499512844734294161403650165247134473430904237347717760924228678182228020280992431890096285717361164458224957157421528931597784078497268958960447968669755672398604006259714173136675129936355792830211044582636442381525094787463502276976542316484771243308682834705095724726093716187987232822720345528047994282143491480887750269620948391950211675630360159841155605371439704948987329671576904114900166548075929724724692891155865775339983698921053481061546391265484930958208625731074515203232188405406674701092331935886808545480285566289697447873527061445114612883773994585042892937047323540580150403491783803281608717009244167897504997026370097476926644150393871896894084160977524736402389792318104164027368390125416106416975535017731634808091091438876554478476387386038989415487520675612677123694914946667778927258411753517852938648961917279581893387754098478110178631124826755911624910173670239057817107193480484628747136744076747227057628965824720135533955729354755545326644914195104680340414899755019999128034461863448031464873481110614688895812625233343511818290854851173251396384201786036307340047032032279672148294175564387317236590396899479905166384627058222626312841411863006617056007745363247093301954801851525967365958170826290366648198914375965571662673519729937146036895498735613508631865031463030825520000854722124050608379175389020660145711740456941204057564897560207563477768656389141994881421505723755547079724275342508038041652225950793608973201323110747643713057482819150095006707663989784288991880348316365401879147335408475747870153802514463615555074520363698674568215120917542239013810655683366228401351065516298616047042422180061704343338668026800982875875956106185130693833745511988254406252617927120603553174396672946861222793644684220686285012030930846415404430766531377521298736184653032140687652007669727132650660297211750889322033544730351530242826991265061720546076856411688981309376232727368533770287769285291161071321864332149982988092658808627738911357380921922895511541533734184301590198280461921926486014332660669818526872480955863921659715957935578418962424509809420531973097337952099646341747802951529074840839888051826118154009453188352690592282915404368926522496036949755663887333521785798432723995976527194752366483798264220610800880222198012198597952281368317562407057131956019931804099837578820205734875050841761618085463153663717757096035327950132903491356328123588709843680567693711684452829534831933355726317510095505420682838429637196357364173567993542609712177983879323844582404917780301540000383700451659878829921643078615658156603118494904580229148965678659354240609091638097381675326578877074865235298595633004595639094152418872203010030528452659629469271183713389365566397708267428869116812450600691801221650797023638974190089667292862241150321555067712610200745436653554788856729980486175102098701654752791945990528603171969554650150394488098862819601119161771504899883639989312999298749088563084965849396506194581426791697831032964462234285514594992130960897951570271852505464945085950524932015231424433080344689369847302494513884329283001919796696555224446328566196894663876352174245808681186267160075057380887807173408977361521641149897039328315716168338128056130678948834209200119371336220660822746034503757645328473794642553609183587563263735740555141085834260926094134103700352979707265495640795111371897726864910871162382739006940045975895126854053442392415253157698416401482233955439370122420820906517183771635313329020104254860694689599054887224712634697520525003727531087842908692411163689352714814705436012802763561510625171425396748639693270282545108307277517140119136551040660139782255735142818930829395287464973423707359569026368379793530352193154795201499097895659057135016272276575009441401372812980208097717925244240830200180379050144849305918419971616152796555131333932435983705913181336241436761726250555317461929156288540374050157533987608713138420940189928408563799355331681037469073637581340214860456193883526476793219281293490934181829122749125111448940344184364600906040489477505521574506017407273425281284660231822822695644311918576683281209669487395033670554212938432812126906197436060557534547849863996332923437915292886958813535838939052803282381256307628051377926492293373993129215056955552933484408213679290722956488088397868138449098480001367010511515021990081984273750289645028711200184160970374056057777944447121852672852513006778137363706635123255124681015962050173756417529782246621820627561442283436785997266001185649844796602769430496508682552454527406037361501960072458596776849812885391084600359578593075225054597515300857280565057648683053572584546034021985547347415590838283663814567819268459412250665554562617299668746522502387084623466073303593704592989813440274689818088677709926159274606384367098324084165432349486260581953845638436672424218511304802317922671079907223795385754091133362598701802341870942891204639322062346487113625831955694910965036436356544482628257669240682103422396089444797127985680662167934858210130836304543648542930804011315907343270602028947927180631610220773384085939361223579547436100344223209673166681602012241246627844310229792613562867252887078093911116563345581984367549055613760564731362376439702008237857548231786099382236476697172602698108202568778736828742846725926492763362854192756462979032029896966662435978666521012525979376248120952990095145460464385106159130408771127228960630364418669919576671208777416624262478815481373709263741111731325754174652730039437467709839482688806542877854064843825145451041175611078630285800393829643330227179406256883278122362737667247608156299023591726567586527172882420565349665685170032169645845843475747355638944173926516634532834226598860636973909212469626893442426683709003693066271456519170303742682358206490081064847621182195073158606064067303538958428208612944906504175476704681731475949830326502461244722858309288010560962043695960186534802270075916700846868318928224971030474180029134331857128693995298841524183856170876157068386610711583990829047537089983814320898225866407162495032413107130889016269866219366434267871575109958422456609667007513687976795145231647669633599966451476621038949649519346351460297898327117562889235484513359118061447669257880317682639287292130675511308598465782347165162263511183962080629102868557940430565938687291702473651028658639002977132428035505351380345871411943437656429628012097426674440079828160365021876974309208509748510920727461542706632563796235723274702797259666839183520048253832440770930440806684768056781726067573853974814769409717890668545351125829363779838206132294809175413571346855573572061402082812604362647867162793428260056751210667377100054001149005810142687627693834566796988905312174827517754051103484305681569190930131521566070318573798369200981587256984282021383149570457442616762849310082568684931561291602564777772876931911078321427293541980548402102324313042055492305841757072144267091280037865526194495147918058062822067731754547933708991072785122463296794180982226012944660115998644365203147463038236803434701030056011332610082428853359334030192029388546718635361804133269052330946902104853807042568331267993630310624524266729609286878735737773634020966957796737295370052977706014881013672186703103702610772611509202486389459257858872777956479717856696948347555174133344956754808581922079051687156911002446910900098412904131360711964869672765969675759476233325041827496508743923664356763783198656025585516067372712920142742248606625313044969078620255453629524249826841085483209007236416583839431112010445512476026631776333533817575912160785989644406642375282621252607796711160029519486832697432727910314705060886884026309990311963191868141176844505285028215689430041268427198368224005447054366674695343049919635899597637995227763424356055732716958522825905146320660978572923356305245965108167274767437940640397099044939321819516681012865769690327863422858659911055869478257347582296730528081928384083800293547306676416969536641104804559160614250713207725286008376180056166763307590529752390246156758463570307921885630060203511687874214575749168933017160302053368933303112667770850621563537345164757193323068101838642044844946043478874719661832414905389007789831644615685734952236690758654342574975085109352993762193740868832420564781666309421177922199960412416974306229972013299109557281336363741687567553379342895057822653931884632507859712986664216624908084639238337088766352492588260900381418151380508410398163289889590948505359864394203132022243933635751956788619794324980906983058769355866812789042232175871291646460367794806909348400602028265970710093065598725946887895169404933652787873725635089227182547575207069778198142547394595045276593014492419086259084214068345400226604034960600767955059491679738310454053023045214861435340756609843113263258798595342468766443945929045048044684288529803064532669063579450608862988956275607628053262524215816778400334145893788705127080781981841260664432241731954044090038111732201856275045398670885879490126516305909961505990838957763173109810447508746891754756270508844763254741723492745925929157375064020837921341673111623535133614002522389437132766746732020997800367053805709253720371084962476108565276639949471901663581487429247398386214254441648504444860743996204185642417166610977006467479742719096929708397572179473605145403559498240756914786196948038747056132179497057315440838436187835034630986269825237904468322658728225706684032537400358484727477124540235802151834062382774266719499278871102903361529238855190611742035637937358295096026626991183463625251595934926711494710494821735829175363604353197794975540515636963507536698006919781922543249733979420635391887342219272785685886837763516940893204463840607218125036244361862690150849407258999227603312592629294703064465662537555794583479768795600859759295240007252770466536587075503576889422618386829420503505327337584865571196959352552032802763546819189159600915974402840930507027865925946668054139703186346877397553953022432854082191390862098531941336569923538999471760357042771986867551534572758588667340850416044494204196019465325361802099042769455515833523470473184002742509306910759952434460224837818700480290227990761137198788394650764079883838231836718654351959151832145318170049131960918470370361167216809082998616283404018248625576301113841971666157185052638114414460771591721433529084142004281005269908255200831840973545796327749583042098275796098799047707124943046007589426848521406222969627285982066101643488873540675496746326145913044250444970494078678284368965454734418458851208419526338192941802549129107392893672634627345896321274742268029058529940441647667204149389174194828030309936744457825893726375205489014300277031910887971036436230735056165779614564488025871074428749753128654797349851426845048782735537946470214992088238561294231069812142712242350174960835482898503534576450366430158690471753535847730541782499884382378531227448842601006893983980575373615991496121628112911972794592593449480006249211383252910388715199675184162070839303092450521380503420225755297259767676263305250252595043218593798419052824624128865880743537810530239807133418603654151282338651101695185711017516797885030204673460133524398118430345931083194408357088055140627397975857258063930487101287110378709419139480529100002720169292392920402711995928381836143606053856601400073416666264344573999137744896645089462057660083550472480723982053771380824431812120185154623726080921046648136603918292213963386678535098097031974455109621020081559750183699505839193290817601867503221159309024567008460633833960364970510538605436732004738033151022823211800029538879285116796000630230692642865494409581292479848955425580499268980873072110166476529813075811764261023031338302641644702764313137480519898907150983326924829373982594536483189933894786253978404654881529564913828187495623677585514117852964963429973217497792276851834764837699617368190073609277956532679302772372036387224340699885868047969411782209863142007779228931842091387545258945444888708999450012162783624400530190748776798106384097587224978659679371969812189189795066325453035445606562333601193328690493833629292091594271325472152054541201920992806846524594646919552039245164955070519740478394267725656057718195931469611240637438715088149026991654810579497382972893037374545898150290999498109999939403152504954760872760937217653392360597266266792864835817957705859775945998351681855445823931282315799020274554275271793519878577416102602969881746080452242209654876302848466093843276541145946662444495413072568451009325143141149376476343965346401642207589333427402304052929708226912110738488487019531582242191466139998510098178153817512790862638324113817682144109501046797261083385139132756689626197090950869389417040804733088757711868544193489663160190152739912402201061440953813876584068261499232318005233819147434735052621717769889528027716794080257633686872501729831807339487418903426207870439778890255846542309598154140865206660722857470301379199437056473021383969184777528165114735307300553233975031884974369462472777507412695796887140008512769522262972838824586527871265938829094447300696078757409539150869284518150032907267968265232703065246103054061335894917419576713326262335388180876898938025334097976421333130217784457134711464783418084348557073801106213419012761604322612183797664255877562818451139169488725633553504198181793047676913333128231539788463068830435774039829111701498712881818943313185830004713648713945472301838889489755433893603280750226750863271041704750350278135737909262694677094302276431043594456595320749697950679058275719847881966122596344954283553150251179731539228730827633870885351647117772292561619081355344827736399928933941482832606663460683257705568736747214163172644799420431889811981951322976549407857913581236487770427614869015803779306213144296563486588854872766849582291208715738721969957629396238970765568940195715729602965123169676880626238180358198874882345164302002833992382337787203483884426384143235402065905856601163218435528735607055564841801421362686522849433962903145018893914498702064137950145161457540339176997165678105875384143631288381863430430217675068206900638607049639558177060785983187386297812066637286116639324523066093595214482438280466422379077656781818924316471320666494985805168003713644970629932872446800494953495369821696741709396217800089497507068649305722681371047783735270506857379506327695183462423120669149604681992541703579852349399081254148330242508872696307351706158542437178902863178526280452579942210407662012406236720564709129011199753550511501309629508525726696450794209932391607927622884314401306476893051296344078302764984198959575489819493961284333527561563869916108319981734358746050437180166466429590393134163944795641734862919858611292620922921409115069286863265714316155357587150309734997021926691791429292128279547829871830020632274746460994688471814824961306414894399315919139405660633913873483290482949548734659725150684049848861992609259579560170059993062156748655721823930842700050388189533891443690912642695729589041898653445135798119805012064528408695517968311808606720932336026338731196384701259284465873783225753817959165995956080682425707234257019492454551299020240954647358716665865666800738840517103535880597135343189555321160104573561616348397328849859728566222178739147012994217677951032286795521989190396517438817365982227010946240467696768574053123914566714168295320733870663600805171912215023517167829029205602480260181410926384629148522662712061390495637938019723564750649114226798624238225388936444320779422686321899753413500184437270358193989480168461565855084240018613840822370287801868960982587890314229931718447437951396933030175158439458951505862576759963776509925938088018947729987357310720009765208556045484019108478339769467184900502776487829652550013550819165235342021727659798897065040544273445386435444273324956923081743994154097554796954813709661937486296043025040650106330870833424191629951944025384582839524238641652434659494156713056454393842288069207843821144908191259476961686590312785434135683828498558563748468406703767014699223147379802593043848269375503112901151154212117972161540866090562859073181852922355478715322562402995652593189433828985026813432154490794754024870995955737956988282132938176186367013927155519722064656117930838541364411736786960367176745351064422672094705535337226214182546852596160139783761762325503218750733622883029045879719262277899827636264443430934736494683909281610594610283864701697499624463601053665604575466309328798740638535276578742978135902995772731367452181976427761285522040741455266926433471688825743880319589904329830861998847019437949408740082863496997130835443947786460320748242912882822662753879781108186122392325995547857488438276117065784282222743643082715415998410452881072087251819210073186796046940887279032869932229498223621286198910782104304186936568664324810709078799255146640746594465768437155143214743039355571938714152918729894123424740148145822263018238545074684156848525247635268897941347442386294901571789296878158944595455635218346066549792320992344834843043916530397841111672225417105144565018219204663061912657070703665172602221325998558016365353639030049703893374460151675805082474582485521400092029163043259149364625942331126941481558470101550686217239529348948200449171973751542799386527434121528689719301386269865821744520127371019903500502518547091903077913554384451537859024645330074154380626904918089452848826687538856218912383913666093084025495986634736238994058990246647118283663761269344869713789689429381362026662339872596350941444434885796827945226967286475351135559934797451538573049616338978594715496128284752576419102425130916156737806626039592129378526897399381874271169049584460958196150116341003412834695780320617751218562960486981991243822637993421965231961443454530087875510267941491043108740509099886877293292420832753673396637554641604911686318292431990679559131956155957866854562848139100411186578260247671513560051373451089192361130634083601045380137347301573436859728603652162733325512058558020768381338160555119361550993004266442404961827899574522439435729970094098597503527607369739815731951033664976170044094454621433704835448923571840559796351348352798826093200262737243909193768409257004010668588549819416900978912796899262992803387532122110221962316391025741049677406053928845186160516047038665029338903034059363333939129614814232055919015195222618865170912598755080864418149704181569680068017195938790201164789763068881476250636543231865331232559125898708378814427367098584293030833325839935423102447995066367896356432900898786583472131682179886167766430478428702672336012886722208432472405772197987004403794465765822475252830212694012067038864761094712071825267768195266378143124114738288934543820978112156116315807278447502835998653499630007224184267721934676331903551065325848366207167418100702966687577508898329665476112406310534751109434141186042435667599441584025331162748969412685383167229284883573406890797207305496437343435766200548860371567259561716778758579540589822395167743332613902673653662019321026420400222910821595905501657622088172207725754249260970908662503322189374454290462049060923876376743531745167175228645743074573425998395227486004361362887908032536318132609059481936399421119683993793862408926114623970236245923373643910195786356252189355436148478098719771078428019718505054591966509345221517660548487426319113347530446044706219108376247023328486527747150459614059575531513249200215645882203722719313365514944219565605837474740363106692357822236401262036489433635714048217265486140498160875791873096454777372595917046164400371911756860023292852214875320742432958836842425686408518220566514021333814136531492003961362569981926912090412665508960310811763341674691444600076433768967835414980303639957069774306810912527244307264497248925685591884286417968564255202028411509960791521979703977291403623487926666704271359032552222361681810697274019204220638681673950627009841384395376615138924648001500565057061523269861800378719012629449795171561586033646157448972127710043451509750212829031794927227749030255932444790229186653884596956929506054768530097678019250073451145646218125150576323720416050838435769194896112106238674361569831859893704950356053625412548064918479076902452548584927162318594010586153497370031683303637085173294396330803437635471051485651418775191080967500949969962070728197502305457409150443716208313097455858773499583527407776855089897038814974381817698261947000449714573521667522119403162398301525699334508208535596193076913423326599510370585625131587981897159369063716057826205680693003594166102819335607114878762317163411836055687032794421332896960673988235332904269155744981170458821823266663239007933145038145537607542716180120041432918750137100925281880736720249642688806577281814375151244000504801369432588072741849462205629046561515545780468189314388001470509490297532319456948913867594002584018267650396049415519106971244282269268107099037837976280639974054654429252402077191147098835276695911729209616349015960286549255779354683503280582179023232114195245081088568706916045661435659755135930883923103748290029604340369511919162781313249847627252455227004757491076704178484982976796646388683018756288722608752555072441005176688513577339363167216379175092541950189729839079631792413833679683063992439547767056349815224234711682493517195590419962712754343089138481014202703332162341594520022082257080282999906215260430353820266485110957726080940068582699960061527687591060736871646204064505740237121710988301206878761539409977462379028626045314928392135150907275747005818651305898594346609945067970116938116414760874062890689654094958096258512136276895470024348192047007088878632845807034972289908289843099755618477265241045321746453768206789512132209681187684351090706065606248446191847009158877022881253951012323541507091592927561757654659546905604801968805950555564249337452040473452033111892595605394547790213776078406325425211571887669881573758447551438373339233623418519686197664611847803842701508328860987946191690073975843996392817168645716713644725200676740818451734604719303425191094814379045700022983569584641745819485592480769857346485929432587106238226372799321825354502876629951730348478220478286586411453706199086770317123522307452590847751532840315551492327990847337386520220125552313610686271253524914803753587821746637487141019963144965551530732290493414002337110722180261196091856416719457912511190990142340069923873388940166206206468703537138787671538336021342094753000210484213046289009466504274488766532628564142532272195317406403373329655597600293273613213010307795902448467892615514069647199171322040918028564889053591745351186541150447075952910881527882459338226471643696182201073203224291593571086994135097105666048411586051349002769057129166501736835906467794687220921613520134641949265888378705708716549520298463044411858801732178308222696984016514271211360361286628238027338990239389478735579036857710820157156960070866795743835089203536074918805953749564627408544939307188765347035170855600452027800628236641958559655892000485533586759416097734093720726322230183882120666869485548935339155302818393280930837469705741470263577301921501841783261616902489908535471909235444595999004253580644209307401329937025977158349948479599483558667204462243669706562767574203308310002053585564051248292591365701020558943954762875718432713820893958647581248016028115763306505624305114677173084850252237080214495588578865558750812584347281609790119574697826563955464997622135513754754266329577427141647025874725987164635946592095378656775788849883207390898291955089463822782351285291342606066406209458374647650034439871488379809619271903604944489627204329450745641444915455928169579582482995440572128578795798241374378522065903568442431391070909214293868453322999891183107803032884677510582719897827313111041446268473773585412390623424134344890222606233233557094498606111175809661197307393896012861614074400437511771211738096306726665597240819240314073655087244735681136719961072511916036638055160277284544468568315564373276292543281435171098415722101376291459750963331337286572969141392725555062135721783131969342704161868737194009957232826053618306455876794247680519496910619794500830226464266883567347265348529498068776999637848259253472649362507685248521371424096239999789595975791291846721907872168749539145348226654989330375142211173706103308075224367939826683197246554957524966485150557816849042284630105789159921679534693530650254243226127008862835249729003593066087857946807542486644413268351323226475399901303286551955776905046610491097197379287701344608525058989764258322727004620517175669746913997455731414433302005086582110972943944617524815930529074636855696600501464929196204106214626034047465607241097420997965648888729061012545283264293140846261147762351246539427623178868051666507997721716430946088837915902072576438972509744962423839054513127457703097996679704427032871300171604397429532923310781606004948935661563714565017217541651852641782637919937421831996029174470838918826688990001599381263596400532899515021171760448650716664681906482813982633677357362254850645859016581979106702379193609382108158924533344880950621945196617575991876975744628999680365597481252306048386896139969154984626340481100086886384935573960482402339590320950328793566741758312233709987607717822466515645718342751044686097142355906823238973542598527212182601849153389352135225248064221853112953093098904149472674107371752865743025334783592322504201287368957341583105681554386806959145221923084627322292319971326557737243710715571983391011084317812089191599172245962042406498971982938064154893663762185653193073910020336104194019323932568775805471870927546630219488057545627502259062820650987208522022959142003280900533354522143914791102684971297848569189281465862786687625610811009051865483382202102505646947254579947599071990643085395355179191458097990484943856177316174885634691688403746187627231366020652940889202435368945376441152533210008997963570851952913761371684331803605496429486578158733850011194695210533592689015103894482372253574511775506246719431976226682541953482594419175450847176787122847560776556717730422348347551060410996711900355333109316351367040265706676943788572103497178106708884832830885180445232715269146509585103840241523299338588240286913411604030790199994341163169023253399864938777261311258185621303734441972995193704381809361420942191566371165620722632367688821725194480586931073546138421429572632003568176712641643262318341378687578498845066203688904134046625849267887879697639636817543772985878859925635658546059630572554172597361015001608880523079476761406057990609881373710966873651148669597111548440197679074153497021151223693863900169287900352673574837355145716408327645788585305415565647515784552171593724860323840925581191061672481542059287257027578322422822801188965085073785750009223462220434648730774344667055527526852392705356625328146400491908769857096043416930874540011307226374399522987284748964682581119814012442373767225914863243853357255349503136548283660640075374760216302653395837388792084165234874968990069179046106960225363720301495620132830267609000735568161803372205541032559345281039239116215027180044046982393770142600714141561594383657234964933613447555697057016848487130000110814761470240850786714284515406552255806031598740691471985815810967858128070571797476119238637096044852356812877229580285870272432453730024702004509236622342344567706189473204415507647937649629913936281820220981752214126013736254510340696797238923571889671668012823471364822063718321955848281432556006421371048162272165363628879827390163271878352351205342341516677552480331103704851328727981136712991575888274343624861508914542972157741984571661349863015331126712934643560461265451194101917144643131916334498086333752172646108363326564464847734498838770160524483676703328977980060488168059568495450812318452666619322163266656700940851283552138144594861890340389394191049395999689479157817691185631555923582710548478804251592458464664511226502049534357245181638920973049789755784825551369242171379812357540281851914077189216760223583482025879632769604230088258498991301376296475819330525455586913598634210291799948134388495982957806991615802447859925372286671567270043015521124105779872214692959050498966613239389065996297645111557553382597168282557093156020095334583788317507185430006534354230716752175515452598574600369823622754626246928633450007525846708257080791463703896192449545639496754303815162955029695737194883948777957520376934438375995516747630630235942254009134131791509391567563934187839098134923180107066312983109388621278826877107424126012921649736281794836409194399686223676749873045648506703227731595398395055840721160492854793702441336454658291241308969367998829870012085316353428497341055348372339372686238514118854546000958453877298329159245249085575589597195759867997346598217894269588203781852558507837898807999067109623422825501048819499848657983330126576143909099539157414999937541490757565656293669751761495920141421461039440588983460916880324215194696220328866550369455380550436101045813215797296965900104449936518228034984593767616095630520722547311031413409363730754281423682762257970149323092351037384774612740788341433832244554724358514215640827491522949990606954102054938432722304963366183232930024616626488757458315060960934268248834011269941248114674805179847637965887143270022118896908420486951361140561364745640133727869415367716924187739433638446165476253546348639117659621225715633819416931510501489727778364344728057976531286590651348225223313032989328116018267692619288629514975850441089909230674293458961769325272564367684255204660629945278902831186746293713175376314546587183950802443176247642153496853418888148030637766292193940555274083820473505441685291403019433860688816722016462332650520009781613350908813869543950591100375503334674004242701974700171624498931364908143745527578701596774487463401571267096271212893603229529413853390395363660047126928577830836903948078094708506463605972600850560787236996392537983372524460497939663520573399388147204192564232100246893111331471971362397969097119650402478917272260436488775250649822847340828301716160649078333318962770450496402221416203498256706236927122731475852487889069334224765905480687987186557180492152966794018907238841298021707106256349832028649440471832309502069808268633924240480493887631848097170261017838940622969999289103055326568684954062246757734761334147607810150504866217610831987580967038672053100771575669116936161135571990743134068839555417851646531242781023062024443275973604666754377031321175446572532442144458512246710359627790827492149005445281320322865334137180251322980243832890176776421949435326771462721120009059000306071301928841077904062893668222823665516920810371909465090377608269127936327394766771021066812943196326619229994630497074165012418453475253941811878162691767521373968820254982128409247069132902145858206940791281259518120749469107588294200192945308306869592316385301188898586729285247350795717919361588154880447257263368557934342776177207084177954401426909675666402836503617077522217522652749046795168588965815273125678872978146589263960980714447489437453225562007531570304186239590664158316437587839667635276366414210335564958339757803273563925138541069547339588865642047966615031578643066819147274207715334114438946365397924050568572757061807662729064060314196537496834815859099000255605751327701124097435238531266811366500204060636138563563987260609853278199124273369790064120453720914702728560524370255062713078759675402015022980616491159625760324031228094852235890149510774317295938291817189321181584326580379182313425269269827652418779842963024711315239660199349725222840550873038453173126990184184018702246914567264450245844789751140557629946515792873400454171504825716735998786620353712080443870528570282050162794906597224376841382714661139324252602135869542505370002511833727697758120561086209245602024128104721228239142451623699298409065805914943193756257814438369378894693627410539460391725600384668290648005017461063702305654698803903396862171898522372353908492769046065565239514501550335455700442686595574231266208225811204971304103986026494699096326076806944538140403282603886026972107093459717932713341896059359463685458785033477549443995204184060481338872971561735401966759533365324650074648396786506000385998803084602724065362714974908475952704527422139568301568450735642517056497031021757548254689984672585970533615545140956303572066435640963764186459036318737557439144548871121165349160114596641344381366457415710402372650124290690368972634717439091220460892603680872196136054583058845339876855015932188105907245263163850180188488440606566822644064853158103340598162896763458993292102854734223153797947172159412752677838118053123802850625243065191401202873380466052131154420100629538728580580506875449062874089183478258064012894758179312464373385677721592697398962602012231968819108230418357746832366457504038055796693451921546470047902223736088704826662505569181741022227951892818688353018760894232169500015054909786236917617031176062222202124187034326673839254903399549965370290465581942913550655244747208440703874953543099404367086861513129189807709770026503288119767317248695114048186344104332230451771571096821110864621253651083445007746882931951857453346212731557818956816904349072943570898805638404540367239929405869799507197852984916630330772474225520414800392977189612513522515818540559801658912618985219124476917395248226595916634595652045573675197753550405917897001054763667350648379371125404551353080112814329620234063054131112924266770330652751624527530698419418205908708344779641130793210471575981779076190885327146909023919582612347946508647043015038970059132741532368491864377798458780752055177823450693106103512550887211472552440313487736620224780708241835931000042560944680828401264459621330056252814682014112105329818406979071720493302290528453609473627339853353803445590566784683197120867071632587453523716809967719917266004689104727548310135118110449804372980955952509259983525753974068186654381615795899560698480315498060704836805257321084837900290683787940835747665633935031520254213968707040672389708830686491999122224985562753075626094447304580877372872843200182969759887167256183840392667265822895732887905016202148662337280218678599225351769728474233683120539411958114391139341205015225105985996848736106617255497798894422892404522371316950727790853015139917977657150482005078132118633134487513753838335123824206627803477821022408731446916550986294695845221366767610333786311945703455740371853202406591575714076767276296443776603198142112448293882335435570105950196882083550916398799440449621717803940125129279218969003434991974314804356688914540732181341183777939816157283916863267776058851133360339466622758334609295600833512743670388809323546674125571323200219129923839938269971088544443479529655687025093553449766636026498354992459200614348758506383418974818792313444228684331439711618914351291920150690109974589969028878246520927568706657224675534115916668519238627982002282794044099953934690997687286396750522012964514318233528494356782359432949084167239792775622699501473474007002276304142284535592475388868683411166971647105104417753602278400132691234762268656829163352977506095578566585317765122899897347364691304026029141116549638149821114518441254442255713719172908633859431882730847248125800449894209272210654327152480873901599926127730126315785888154995137835765070864349650177058651400647229348633760230736035474039268417155918371805635050072363706753731590018599379551061833933760110634360988817907018311267705797349521549551055639498562377717892633050108535691269420430451094029219955916308182211892023538447392548500418879001006186602428254669535619955747326212175603277485463197032758180610943658304999514231549196677880707768007611472206849845253681523389857468262094599518395810079830570874896163826475120416655530817530854803436867193845167266212469790179567775374465447736833194418105670058567985816483327625838468078582544469929681661624863532045358422111129255666378679989007743624167406026249081225185472073315827312965096766204928587563235334359846576681583033182489174971992916455475536728264830809110774677585341267743480626945614150005546904689620004609027653373807678319404812399893982428082603022335193307622741945792945887954669171042183906488268464277845877931886101412346113174535004083709813686907873814612553032031037902636930518958933119970540982864479969022066846453273347905929051720501992662800226938414563897123592065335830187569951355888682282738557896765506702455290448064769967937397351190906956631307865738005515961151909582038086831053411005246298934589661401088986243670141806071953356004587417662180548631319642530226322543606084521848325293469223318774321741319422847030170556130926400788720672484645707977634954335718278788954037340117251134344539083176848533281947370574711525097203124132538671476787008697156624180731009765701196053237813100335811753131593809182372597967611707328606660870256276424880819327742581325853517078832236129863439356423379739260346100735879546879112254671040778733017082906533290406469998342308805324008294521217633824819619054712971957251691924998585939566231188426960402091554256949002790138167909367276136141244834483962574717994797429988512300369824785882282759675864678782234685930803848833592940944143345907174372559242951981512202222321524791047726493084926548884253793542310459219029377450482128539234057016557175189693937451729005222358402222966542386771131684071563782199644392302686811200772631318208051070042592827534721611721916610676776551796852525782129840329716758715119900611756463725458006035915353392714797983600294859302485195555286144296529479050640017956830438659689559141931009357595275983206628325581456813891859772140253062495390676780453935764622128382673491445918838011261991585797759749286299802387339863869780955694101965869381687089984988732589608826749415785097432145705850587076502385432223360902295457092571315150082271051280276249103115165280752363988757095439249404652259125070781821482372765212554770272247026483638034746608758415498633222448104026144410646786857246786412354586057054920530567722983627178670532693742328901981947759805525328892546081701256888420984077228916193910135305328207020800683840369850286222344834197437616746738744950293062235723191364400801375179060756684221638567311300874100159124054396888106368113189961804316799528841747705262790893060869967725754113423577949287428055031342835017394873849268166830845285538772408724502838205880141361425874289752358177727564491408681107797750229630774567204399073465344985770435712032358964962166608877343384612730386893588409142185208246048847047772568621234216726038676575832578794988362531300763919522777462487405855508093578669436974655955390615919848725326500723931205818166653195950706037348463614858409295172215171630127766805940547835944567748953474596816292300235499132695588589245125577117894376621175315040365754634930871467768615215520510726459969727025886883849827612227820322829435234342501128553854276274391143076211011580418863909736719995970792739451724179238610791379275154909395361431808383465214258851486819662604316047917521649154720618142375604487603706666120533604417689845760316625652743208299631193231373722240725114329408210714996867477775283352187219888599136109530166774276291410054760730614376339630974860564389792850496248062602677836594348909053410776649194834957039635192239691913169488352487261420547892965364608880139453477628664243145993167868961337698611801638090389056733265817011070993438467710772416508289549100310037659495336602690268398214418226052540843924024061601550163133720039394354856842449258195944714534605192097399928095391423417119643406323186845516876614624734295201319654868749615942943050472342461526481751888079963563558754232611785732310231285031868782628582732070081680764048706916413951528626045342109671306749395719183133474787619589073959910525870076443167679635103418925581782316909781379766744480678450158636327168828119554724841412418047092156292555694691925654462503006249836594914721943916788014432606657940866267352426464280337035129136677116316499802472995642067267281573223574676263205767443090346776005955129579410185493424915404819923004297829562825391260360464846868485637570686804559573989456804496700916627952883984566582155019830426039706385467200213863674146487157105991538131035576768455220534037536596521625874095931951003332673705240278283958091813652442786988249068828731773123714781028348316817448637310377938812563769319213386092134831210572007116015665329894668970399577212445108776671049519954586583776345046630233340821779619777617421135260399064977648097829650764380903315169317878805906513840641076932277371407233494960419841119521473571155164380656135256952695653170330761806028019513840193912710860948562640334974531724647195070037656329628747504752081529486660874351840531994603483975160000255305435821352448189399117582420782136045949527844102904857084266443319220123246495796224856224210344906324361325816089790669964279727463422803411873420157907797159236037127661792418139476903099647764700605022693971741933064494768075434691370411284867260271453969754193645939129037555702559606202968676431440184068503460933776728827147704053210866047993194822020338262002357204316509475304552813214748898663187358750711771406543725627503228033254587386033215638889465607265667555558417627070879952203473024371433652089415988278122898636501859630815163694315413849877801609560582771643300941285109333911828866246480408241246497218675947645993059577280430124105763730765758990001376992818894295602354236120974540689770801374132355531407045617361889069108414572983344906653582042905357844198376783130510188140373676438099418123248462559959323214397825122831445835872753272795790552187999846388962749993626718478826361704030042015313834191259360519000157244375459747268413164721727725806252756799536645530814093972388379422078773578984258590682648674696212501554776280757075678286026556677592165058828839634203205993255603973513032154795509077590906113024553689081024618309359249122970501036982630852689592327776283445597261765404802023584651249281011743719679846258558802191380988242666576733589634567589963025815691581901061324671445001864004428743817228370437388404773014881842926582685736482856440466765437746419471851143742730123675637050985476443069619714723663872550824156467974635901879450531818226210463310046578968090883339256423985455415597393931214182682724299097846942918773064819576307056315964231348598786850417769079419067656489835761513855433212306631134974329439223560525050065028205445448467185562137946108673123414386884922401990940243628394199396000520985819492468108876402888852149306592707878133895605912825885737438129349055754797769215510444600873604546043676305935820432818325064432325909372445763419050760822420691343733242771059281971368197820724642254871191406292466292446452365415137089864805279353702266101696926883233921208159365376699956245118816033861990670577989500229383145976623713208325648525801117493866119787865199647275975475621913796036559807053633181430169581790408893010634226477166754474586590453862175210410400264879226509665612857523082769066694779144321932386663144281430685224147661603704263178855645626180437999907250263628985779962503284110457893510243456339907110162592037287578814892298604840756716560173937314490122837516819354430138187525276143980446070577258671228104306756156624726600041966624764672046109828762632595917393837601051493509556501831344939964943667817220003901840621327799145903534457836854350474141389276822483303676168174312457457347622683621829853213477367637036959380817564921018040160990083167674109809936464295439454375951414973033948680576226474692033241144791313352603725507823046715119321110362109552839360905342819851546340469985170079936791761756076132676110023778885543494712435752749840294117994277462002473470118581186858613657466349869204025282354462563072266332953935726355074962818613537033493299619268839378634565031156889316185882407642226409216427314834832465920465419951893725437842057013305273989356664382756932210201794123993469284883578943151172792222640774403436511610501704555694769826792647246470614242642446166083259507498690645651645448432095436333666479137578385379964692483312475263954141073591323612470411785159587676988880874920593130816135318323802273711389766793324781746711003072038660764996103464830866882328824118755153859105544830544834124176330235617778394342921667460880872235766738067381913675372742753866602679513537792458377829516162536277236866652389756837376382630966589580783954942968507333715333728399369668493074587476005711502248648320778993345960438058132674194780613459785723315531766086366359984266993011765362981264304348034169463453067186991115774862714712590813338285938052438585362776126315584038261142599746607101677743209889802447315100988558939942756114134698021288980716750094648072673781998875790460964917221830063270127493816104498569341078069923055935526329433404292526437068750724449913819719099235259356805897896733507717649413384065229117488300170726859671877171504778225122371014370793026875498911240918146535384068252563526017189975878878081367159110163604481579326949667012152253059396855820713472631063007360877607250166619168000913366600095453701648969134681664946505905903193224108237983213704982947895402115900081810561294423084182557485963586569519573621289613215657774525412465581868287430379057506648661610079234733858257910769160291925959619198845632294749219946069139488681880154669358277523481689713651352564084249322175757885143085295227508958805160146072379746487022590326254172373858422838378550016902137043341424190802277533772558989233085349296871220304028223925500489450703096750030289627419802779742051440581104162529827290151149509113548829159908920322181283607289501312917580394261577933295033534749804883434063604023756225803255854590522233500450255374528525468736522801332266402384834228406568040700470734413471387476270405051735789177184609636939263226407035169216868049448697868925168891118798200565992801628734218887773234452544478537877085254179465206604571790723657471519470301138413751585666220302107427948035688416840413888340126048644360117773194016312223644011339094278714499594109819996278565478698419236835100835432407307703690877127000793768011172956258712210177194526923108799713257066676160545140784882487405715370376223014006377500341260345577869745917275713564108001229265298164403152340134920528532642584861570861255905787907907719057429337603095946507597434366511510077454911587322305897510354249239994340370433658753122825313968392954930833979523530600765237617323466695647559232207292625805532103728784644154403508414712486824428333047388034310927665032031166089849186056537332404140588376376439662858473109182801361159969220054413632669918911547331319717520248695625800444218650232221387528754045514429167683954430437366983595537503583617873292403743172202719620232031231183167983189090146750947617815221518256404804491073109477797949264543939634071054333844702418354419654342931078245993812501997251489990970458799841108334084939725445008243478907560601432171556589814480090058525855635844507142745384341366314146899789423649248186330460009279727835921069433114628590676095407836654705657124759462401839207455328872442460154772023415944106069526151961021223481037315916327610559418783193176178561720854123270758330754908321398548628977163040683899309792189961976146542445772399729509417668641075892485958485451264401053840654789578372887166885195694949067783869843189335207848032063185719836269592703106811031464325118929497173515025624669734428625098994300635858663181021765016179966781133763768994782940221040782405289386171914885985536706980709653716388505094177594703305166797782734626585087828804074930880078681288193785356914372168058928205022908451205391971282813777649216738369662872690487270143949060159138230031101337143223391209276433627024173282739721870048091394386411003798969221081801675059737659546627696703747085510938348863122420567279364508041071757351412815741155197878878537244693352345003460307330068594587606214434186314386096125995321681283326849734281732282001595297132314206213015355886500864308024419423035822386509938055237922864121046180095455242294995961596391938428173369234984070376518928728266711552215767812723267727082923115141494470858125851253893815797564079706474632571077348976895107919139880051671903417494448855663845867962528845258574203584018397728985829336008857215288373431162860469202965940739551341929334741952231336282985393027483152690095124325754689382005271644972887815512291533317703882728117078004375150013924885036506690285954285833873978295545994052427792364281014576191186511341109560014805707205310818128907376898531476736321990698362884977551033623201541233187222165007385645665607012036185042902025933806509609262904330123453406426705929368539300723878110004418620688500740469008688721745508221168852883224590183420085825416608197405505348189769056394020193154262769364031569768960108945424001976107979325963911070636864772249384903713545324667003885937190079150621138736245360247454883165993424212359145279674246189094859692672696968918362365519963261022995606523538944996308203215095427190936039813801541320832298890393193374734204212569079771320880306043922238978835421483938442827816193885199625641174383786054863223877777797493293710343254135315896420919225063528554036120410310642455705515120712983524450061762814676162355584012905512056454938701212661212711113562230821842327092622378718286582115520746421354385788492049305293490970487170389795334183360039601047249409808948375327052276982036813022943231448673679045420101796703548172165295898504190223254494130651597955317307876533043616901757314451207765099307117644711343145675511372194318148093354104859504402506728296208366110193834419814400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
65000! 1077470140405520153171066406297536703816957733849070331196383322696244014155855459808797369036070754607858767548376393578103611218178986833446160283565347953908476564474173690730111282563490202015006593591525563238308983871517749949804280819571804769910348600187570444432820271861487189556175704371991709541620841068982954478266703224779766534941847637300671668953788318696423322698193549695954947955721985949763269016682817448163597103711396179648949019232849584712970404487954315351521931376422794416791823543265629103762308613550903302476466219880311092270614951306745304181689690980391229926919671558070101783965668854017761584615559452535252149981408085953258257556043656327514601424332107080581438099325815000298767733255018510794546438869317792363249363255101498505515323473976297945777526495641455604582414742929397120483882456992028955216879160531211680001811891467546371527535604788038392344897327209376023623361889206523170966933800456128802577296258674107213893421257469017920554693630670111801310811874405122016431528040378807904936151981006902114203544967625823146265322019229862497820183065574819756494062665575536962207726729469903626183186682293943951606515403965966100133232906212759163318435865387995980301695542106023458703652686335060534353865464544556394812554835052088802102370821642518030833687966535755968784812119778420669215368915305572473596720227145950235828350731983318207900357468815666131201803200640364571609357099117232402634025625595231056714107632533881358233264364697022791998641274793406162586937090188664488781487726215659679550072378983939897549239964586490208727324772408616567451645385052776409303132473886886674816999441910820376525475918626640010670886423137396117309425049438897607420340772220312546697327167507707708791724193841475788416689772797221130904123556807825167052444690745686871298175876999673698034215160069815991418670412919034994377463070144011968177500322308308679960222081298888208353976774327149503344315285125436527375733360765996549981487196174700662856968749768617376357583405940937278403802774986554064067795301734067197843895640083318850840418111195024590737645840642678674178993759821331318042211167665749536776182211033912934774479757773878224276724781954181523037057343229662944750085875847059571826376523602698351708290306306069540695039709795350001057642378414508817294231529982636727978012031213818905427670853412202077366389739780625380374328578847157762383481061455043594180780079856180861038610608134989731111079644503172600351747570173429646055687135214214736828713575207645119509227745244979205619283495722083082929448717771010882337757855071257345260864932489290060647144867518479250516430724460650015111893123027090598868413727122639062048858142203494290815662889374867955468357125299299612947157128952837229950122727332654686303864142701906396720089357672578240818232848660791288667067944669390609192232704855653651941349778859853038935064792425353154416476411821328979950835752089600277956689504352438039600722069060840003402758921058658246129648659533452549336294379768960072186024549573475297048719120630865762373894563778000470051927149154422709187662531557354698339436330718805871010548158642336661772165208898298638567830817928096802909704288317189465849799049691866058400027304155150326529967757647133802463779911398637668026005546994233416275009074752586411565155591953407382581960904391326217816896791502233795891456537214111138517783542457464753096002609480234920166913915807731314791324319871454662384889133578852971206973273541584782403771241414556196397045977045872804979099362492211390665778267684072938094649730101384163513198975572500499838294591267185913200100840934447651516527258815420174755987356735312143864050883769515209434458617125207108536636385295090941996602321999495854330409216717571503084350375524398477251285205797927305272853893894056701847949872223239305357066956297004287212625583450394575738813916411501580805137531104258998875962754671866948117482430109618859383666139505051899036857202097300525117411349348658626320006150344406701949205864814118544194721540356410974211670865669431025680277943020851611934450633235640656357459514889521313346256276998271093970189358976033074380109069419986238148711350539451616303541212130902362541697837727579945107482327149999989984193833806349503709947991804629792047350397593309573273727313220614721725888447666347029870945483059972167176771154928281202074726480224511408858263149956324631128373426669219664535422431486580181052590339204689706164374225666457163694830374549004801467678203908905907285644110664527330439128547074813782397705325870199815353617682857832773056494488286650286326963565291762100599995950468619069149153818277284457196769171447762041144417583449936991608855229564754359615612606586823048251202187287701346090320412903981614120698742228860309584778718964439841625825321612415281289636618739708367472054801872685731205530516630939087820529098111222286220649250678176325481304120659670460159833596949496580902068435476794044347294959691260245418724424959765942675400021872100300035785289680265262459053934041910405126113163604028472019748140516718160677157756726386037515453853700945388286198958944041843511124584913396463469191609160756343455701794517117440365638174493933757156346871689980118328878870308496057646514071096512557178245080883949488416867646731613187645732796289335541594059404007387093889759409793235146174796685174516695645984317850461199505233179639252668459204700893767672186429011601604962448071390501204245454656632549939816108549169419831303326881124397284151353855792442407630272489245007234337638654617048803209644371530358605808431077073137846992562196514465513718171619537052007903648680618085816655922653222729784314481284730026828367403384925678584859591503993544811350129795210966877668343946278331643732096159998703329367217871974276661307129015130355538324258637086426619035356806612141764034924889030556898690614251656390495044414143151299836609286410674330805901350095087556446242037553054241544047649986517393856135556645857863669844539598702811628052091746041861318853004295284138738321173995720149811858229378029002842591528175082069430075794436498158018420269904813972198605798670155563202355363556577020809761584471840119917469216898574459856582873853428275913176895429902608763910322622820422130196201393586142530897565488833210086862203704396220597184883685915693990749167511830916054581750465040105571991694339742968839510260864314219295340519929843811800617997210592728244973763723122150573609495914669659451293855612490939888915562449942457501035077452159817845894579534845561856095925395128486025746685538056193554673002625406902265573649283692814728473711714904564386416816641115838939790538363223105721844547592151890198140630348780113669114740132608525002249654876112812358986718252179883114119111809028473250170924432253648913206935148631670198564061727166818674765611666584531802489594562411831052947320085937994072013485178807665075940741939783466012472045895361810302251059312936046243575504447993543731330664800869096133915178977167818793424144437788181784470459045264474999973435062733399105906435046521514384081661248924915091660166059863731024600086101714252556190943445951520392794738875128867145751822158356535973380569051633981147239797393563066884430909468864282275209823163856180531928956006690774262846170101302792393764950792227804839444693019682503073806895344215362027995987109104484375105614471842077411756263297404492287847611443620568562938473857282955886105565155278804346041087151645650810708030569514675414464548255851248272555280054184440799744017047014257545208426768193569269051706527852843169793090129707573168301889311113725924625046807173570124180350362050410535231439442768331061935698652166013879693983600143433966916299450202172148522182615888490219101198135674653577471357957976019056417860976285593965192980213225434351431634132600633261966505235320511464075322650434615583069359764955176723473185688547078332281329224785103895984292383167741605984215480590246431553074058959114989392884384387654317317526179506208096351407800628788126778066865723119026404969127658641468735853629146915076394514601911930431921517079032532989945957956376934776680932986752219483984590350172996068260813955608873869193672936058766659350100892477143095608046906609286316768507171320882027663486957093116159972272720259700639026323941705045829907515700123917603519369425802288560694364922381619025959284211938873707048032176803207770544986199407160247466451846388232405758052860472223025353242659246223014765501186704539239494338512604409664243969208588054139124657705291623217576464168706810482340288033645594911286726345624421692323644507726371500089321052852984856515583419236060792084869667546482152522303987824956363965960165716331419367251639354960142801203085482631103730848386299218650415418808108970179014818416066505039285534634273885815041577968926002867279470421107289862618597380921844515899564446502273428450868099194884408573416917997160668801788293519906211524309656376603986161983331089789746355984090165949668802258434794178485325462002951072190113135597250316756009098411332091536056716102928740277580514340864047898430064690594505587955283825764519259988675054803704147166813461396288087982551469118160789934775486663011670698097699168930855465606017251344647879745427117963865959308013262149160398981722909369739327228510069533396469121833793789474292922070914638837248984393922541114303065972378892126816985849642358055185094808242422186964807104312499099044501694227389532531559248867447742716259224208166720505183930473900503104121689669540173960458061114568300970550577135025882642468218661350407242460670383165725215674192913070646476547933558351827070686261222739322885293654979823961772757297331113384476699518720427416040530205573453685361323568489065999863936049040141150112872939002240557031395012160728004925731884457094901614906072507403111712426052355752626965499797397093770550891810959886356037588596624172568974737258783275158349291424846571645846171760318860923307834456831414494049004971101426765945476052253410968168879984825046040443360533097369030152175359364037931067472071629595245813077061703321562356251462018476526564208469051422256338807341730968217683350770184305051681773641719328365947443067844713683052395222247862900955741590934440133240511188992168243255345088255590923911400466637776763402536312336984162983410170185796782037429870258959563076830622573486532020186605461624977917044956946414496884641874587882958291413447679126943425785235705269445360561852374986135387899048943158864931322584620929168645554254136912637869672397416300366861939953892257336388183594313540376101818121384323822852274012818805185776430706991219649886828557133494961036122861934246506562291657632547105515728511704458830396282704599831213914999305497635258121983453905272610271813835189137041701931980913288780143681706979807091915070650642808909728622848185423922309393239455520336790224463589689079398697456855092879686064034905075698066099967272814153758766554103727733060507739804981364335003188708470327828437976544153665825206945696114829746384665373604719551200463511607793134076954676073108435578193137861794360338161491687840012916496285796629639488224692883152275501082106035217338508594705540221072479029322369279168420382527463661413891223227206022242091869850146373569200018989486988047978718341381577867896372019498910101369964073656640781964223992039277089652862575457620808824230980865575751042589558636126610099372969335995481971077943940433535809937093514207104485653607127145120055398115521786644812598906625987908206826678234764280060173681715843757586132399850531561540393123240063713228016420269016618736462869217382844294339502105785212547906116815718871133301923433449798880438544288107004939625498176762204092478009239355394291503146087917677294910035968046594955233480634064134352589317680922602795742975326482399813508757957652728164225818028962556116041291168238380164352604263024592739822053784466790422627231472251888075774423101865445956911677624977069847992522948304381981497138545381554527949654973833081519485215387958633197879827042681733261830626983842486342579981777126711670085098064574519545405177060671696630698081484387263613407958958713081671559452257298735003126934523135204075666925468735150681095413845699839935586840937564026735141970226309756158301038419473091885956560636931279345167482909247237780288567106742528636904112538286590800428248339701559888538379533663087272933889293526200977373380059605174170073097025089903316087427325758416155107854656157646738836757619325233083912807621281666009281042341998048344604271545287303737346383833534963267149515342375260925259783507633552969953558189995796903650107406473143407067119354260945428555611249032522047494310169412992864846592288812986224290933555579404598667225345730003304220521327067906149345612168446749877473111202142714548749740733867300574667878516744960706521040355604425303469950592437323581436927795947531701266353059953607922889327607421746386129795467403055959345722184201220558200606732606543489670289590263554932428934858464406907789981329129191786184990853302988442014459157805767882260451343978656509659319209931344405872036780729097512043012764069660959602533337442527923545204836639211171669135951582369460407612927355711868531644002181123231580136932937214504678105573319358227590542117170591152206474998753067658362425407400232781395935681484815571018691797393482863699900063116901207011003998492413260158574089382034353258144456167364459467661283233866456238217976746083332041660431217007745808998566612397359919028463050573102706070475326108205006205892938942711382064253656005143700725112383532620074326872248715135521015758943586418042053853025318184882744882746881742139007526639939235986447752032450040340007115715287032065704953493779750608510148809717188618361677040787314717501066604401599110613315014400112117270905669415536194748618497070598394793161060863937669595583149174194280628214341943362425585156820041978896267692602696328306188404643457293889504049319668401960924357992483901337105617712315061493360470201454434273684897674767957193174630161943376272451564716100183932477830495084238596757710714571135600682736069360008287160686575108059220147892111094583504297229484141451003543777491643111722239379277109255013213756289932338204279176613445663335757233684468176612553144517195136550920240653308866439222935186697584869338515105038892457571249055078763136531376544190644613571600606656793402207610172947735118326734344706510439684930857840990441304677488592329078529418435799322048736385835972276882436671513479339411671402582445901513238617286325912014707394125236491382956130616353626827256542837143057603692636973636755696725624851110232930312267691751022472135624627011548471643691716606590831000660282680591418062381904329756837550993163829366932924568575947241849893468584941339384795096927502596563874297373237576840082449772435571882394833752909202569986065199982807040734441023635141524504895079673624023356344750411539952989262390852686675700259282743564694874234220129997369211842857542278494108966701967051005545597614391688862301768098016612139808143430170235723968989760446413478656872737729157141842505579489197508791959283611734564082898473306365483195504192231219317671916132720305001266699873264365286216151754384480968482394762749319816903676625855476540684129769919722540681709902241790793018963550760184475837927208796479393730958407169776747797707044471859493391232887165102444836710243502873177860918257713341092672619623230448443601264399848284991161273484473829592086231261635590033324812751956862875768415865829094204289972912449335634260535458564270039597237030688724374055084986860021083365752061149828516225468517423495981384390266220260090381882088918035899521191406093844220390870905307672830077147523609379688774698159802183498058522588083955103588733879177782920504412172632699714335955964878623782715248456503373066128437026294830020004033049143757851302724682732205791886010987040571337528258626975197411978405124588660711919030821679896136196865901637433805252759383865509960799259037951062522437495248023995745880556309948123026443198890775822153205281179008330585437579676079626481266798676884324151835080548078442010099388441405880140500036616979977466910333542062901018399259523202813866309453773363463703709489890039196225212364848065035582306254255324031630451858507441215798294056015544773329940023439797713285913605889681018286022700387013759602026199934441501444844718116093287574531380365780949403791770852623583339616338607407101264986610623262186197556849336227853106517803078098849570143326295357716187851257393612948160985354070568735203805358338001038315307997373737038148578416598803862518341361410176202560325767526094428701198036331810531463580395883379100585014118967645020818635593281363314240709484504179638227210298922884346831687935908920060392324344936849418448324869860300773778682847102564557160436991145402994847209726211139723520317757509102005721088062122496261109925036200220648150158689727916331701400756328002559175454201853932131239745122739488170562831442979742809945559953035045223936962367045727122094634710984617253364766410547573353837092239032206054652867357643697095003025652540684829175120093060508818532533082855022847754525482836688881035612357590147328633340289235671758378102224894122037443734136836896696085750499511330156513110715311635433337425346357465282238256435656528141808264444579453869572243450774253433137314840504915815724326298249559435046598906111353813417608575049522676563528744039817445590870879335149989247174650549612820082727772375210158975041329616273856017660514100525115571705837868220363794035794142986069086054965586228535258262381287136965082054671739558298905800230844868740802770070923053521309641642070801962818096611851527283786095700908760683803286839236483032718082026826466072823001539968777071101921620187861593642446353837760075449288343405009026394724692367869240587305990204203742444389571453367986668545976858031365999359911280135608405662334655335910480096058976161852802667364479072242744766210995208314295354517302982582787987511462202834585912899049006925940306112196565929008056809128963573942665075229679801760636759250591807358611133407063187416767632644755729528750542363020041408241024697856183338950041449637442235211335664732664333968697408569140310692694511354401468816006140075287930609069912743076060514501513823222918025302849579012371374044368733393072368883105936464349520900726819098836818379960797291182422710230026014527578271614934568400429970206924357185441966362120684071093146001081636435315879516780179779634217098763117770770361844046107516244317858836149019012731715708052906799202381821745326727760094652484241724151714469784596454293204325787326015801455128537464098614788843432891265895979085746421347101291418112815040744522893608900912195398762449998897725386477108515276823531701089482367133061042861101115235077249449292120083045443114434679842491226179597784498027283019547573815133369841260934893255898623764866994609819882903501053819964378930909123083246457872436980627374856291062788072865810350476423549748215740087357453421533761790919880691877211489292280104542382106401889935065334928030510670225850373108087543747696041889779636378370936018262103574789672144493575736218459174279447951046503843134516412478293572200088179565885699799797033601449368335026953823085780642762847593042971129212078735139397382756037742812916643723183428142942842355147953150303408767678565590124800631808960082694378777132348986385236743619782762789774173543845915948154498625428999689698463645798175503152844251117836953143451039929597034281034315308039205084115111333316800891812176633239184310031096922884447699768837497022399937938987712890077489452430736282383624045190510339805544367849479070988379931762271183681474025128578736103951360572521347564629366797185048011434327184603513581601793476444047436018905168205337104138142360215955673459069999569512048365272511086088566826259340391201706270550956416635539340724798354399436208182204853730296133683967316371091314583512804839659006594970771095522579160330610351542611707855981367754941631174879669503405821805129083836738519113829553475738967901587050157383585685146878650220526649580011177826369372092095558826716672252625911845011807818036427336621153267442600805922715568913817783031141221127042984493603406890612005642856219173790621372711819664679623578966580959292673523382862177604694581933902437368810721766954870987165956029380571564211634337639020923751958641230320541135985333718533474035166203526158490087587615424307472270581859825264829844818981473771860361065313503487970626674918079232310006629856496190677016137913721192989512861134347961092938015374508941304875237654007372173360278709719112625143527513229932935642115204691766727610357965208118407607895602525210409820204541728781651004583719976293728661647482911077583620718312517044707032624786191334474341776106945340774601254720124085648142720123986758855240817165752669460012588248684129496143189306441053733337731384850466050075464799215519581289077947733219624311336749204910572032885399116644048888630394748879589811990718009996680677735223885568614152033359203318165477008920537112478031004197453392423309580706294908407387999363997823922407592472732410084173506140561421906435165540953326715832450275442103752128183170543759144995748934081782322039191836402450554071755892949223367741051787235100391456886226954133406999473832277584552586297330148381335104246057223642094246801326473113132368236504747983323014908954954818322709101230844684767250250402020800324067125655140374811119963492508266897372678763353297113538037027981355783087599286452493167200341342013778252314548187180026253469458929776933162069979075239737621838799707224486514112319415351319840020969460557432172878321594696903895279360990260373810756105432786716042802666628363957316148214215003291578447098518729409169661467443300939818379713830680438115600272181484656644838264690068420565514007952371364877297998692588115676870245796881583351202115362709465718188011658485796351558707363958638726268701221627048579117981066816800371405041870193470367087748795182807856372120494644574513680716981768288916571941418570297605075395322658958073031664047219125970169657613201567558407762981477838203103241842022254418511841514306250002613831367609056710814428927075401753017114710848017301654374617745476887757168369360986169088815520891993592194718156305452564671038691319659203314250369039108899863224917124798712710786253558220391260623188325288912339340421222835070491272975093187467067291244765890724679042132179522771190229800583729595487906549201322902465123320823691871608353981489128887086032828445793461742564671113261578793199139704578782019458830270312921534407557515590820443576771435733931496438340697124505908101239751095087848562329778847225965223067470320898658220113496639677780950009796985760657827790872126740115727080527550176084987028981913209591619456928458942465171354025868900003366319034667429578119068354609356539299732830560502924504528002452027326659691687454779923717077057611900503397500133310129536469774040697657329626353350030122175731155075766437736524794252788679859803694168577853292093064600376229259870751081820494414665699014518770330039337321598303544310146738859996550294054345870245604628753569615054402618857893455112437588635079588701565362385355116163494708413005432250611181604226889718835310891269648011551093958894566911957529137418056482588765245513889489780962999198185387465708634315023241871701779696599888737028568084631794007033835441525874388462036559123861908515690978889657494392835451630739530520561128227447563012064997772667982281150725030776796015014725302022524478167700177703515715801168391893197240170822666295762808404968833371191396272619907944608381469941915787219371664590194938917996533597413286995309287892794761393505316621430196987735656726478994299149851885573678005463695534548034271918060910338036020903069437929063923768220389618982760883709712099429957193706965677313568012453388789181352838755545919771583583318080343763103927151578651290722411004022404704211037477606578909103502707902197085114442598145430153781989218050593266889299097241681941376784451790337638265257918675943118204039441921718941634736213564526212072335013991111355495672496372807157540047069811997534559436663485026664494269142808119060859683809527371936846233858819319208162630793740710783115085233441975915172764546165113869614895547403039124506511383774048114390047887050059988167395632062141969352844649398096840091108547698838258353853211533478628724147524971799162458309399940110060758435845512748342857328742839679388413211967874223644542562174875235943345660842795865363121146661699591882429988808273364780106764420423901751677269741715435139150342148645871631896825994323650609970754660986449315667545519759017628370370277743129675232059447963639600563165935350624889638392741838383771066149108488298931214059644972216077585475353391277765391060044541759062227099790458430392103067134441694127280608258220848254925765841818716093053059912315727810428150863353851399649434786081514682980207793250519836617955398714073497445647563967881832920144398377541464090854196643713090561062000348774530932953867096851997256454562919124550715925257028754305821859243554255280973974354762190547556574921649522519977539106239976627813896517012887008370753636342328760802685684875484868460109214767504026995388572176872120785466652112920463040447991613113373859888005135317122098638911703237892655018882405821550810616242227341076780189599080933640608515560639418529690531976407725498572761389798627383894705343423307193300425894048852363773923355232777786875222315230292595087565455548664269402168648391237182565789808058880556996610787975213538733300407675529714755387462488069446056454513823290196075360110657908486391658501660308010705797577501128363669102797573226217119543479815675340151314896224142342203565768296397500462764870665867081095760906082099326852335878515702717236275609791518767907182934217936131834331668383616698778783201160253051388153371453880385980256452777803207107142422725606973737546555944784482254482384425890671698883193740540940165347325432691484370185701055072514463327392454227145867287721228927840225904927297789575257333574935061122992007643439310332448543693865928598831702958450126088129385188725356668561504035620650903351617382182318163790967203809230709669594363527914951201809335095248709361489492888777369836558527537951502802389446843980599611571449062494838397915451341615633800311974579815077950138787676346288550891521190037780685177657907382558220322781428304542675096705650414070835724709876653478114460674037758752453480372773987327486017676771666770708675887771884978851754880853647381845304693551799148891580975279191948100580013137615922757174720324657631181101404046359999310520129906946976177562290864512499997644985756239462890971256958109780752426902616753845592460667501081215427792677352262954030118377449925753340484048458276573349075778340779439582118506700601739087435374468788928786684232904992006743642806510011603763688578627973603362863284612965283869473928958898748702183764700749273362406854932108235507579994326067380103468584173460805443074586217366702377150075123535986088584806925358353369766048373893811936236324261600494620204062296542179408149196880897353554305401704565862507540953814373570260023723104101582277607494629151154126883559839744018412983731275795310802002058207672464031735830322221208652927354356690295294473450155746000468119254319111904854689935740979351263911809836467835256102872577592170388424022608919701709932498704186234383659532100849437837684374347109357600239151471743686056411797901308292734748662429143184825424585362032408046333675331719267063911115254389565010347711522823656193912859623160142664372757623540682212910135010279242465892150451849692128491867493111640242432492582155077537063519977735331518279260302931235122849313624086397178193552085806343441387221814367371700406482509588022442806817539385929927835822853402671366502277421934250204638192199373050079350233667905013277012425450789722810669597670939320067289157685399408513014576678641396893341029636971951403787299969878809418909383862706108304694002353632864892919795554849178538094027650564952614807424199324146161240280539689406778524153567324782200341094452552707324859210847987589219760136820407683259221113858694092874700657237647334288327048767550604363955172584373528275944196745247802973504161095682328100672873475028171634001224912300393873977941726570703288067031586886761119824906750942404560082367519844859373383816103454526633683262537062644980472305768471211524456652877816940702925246134335181778413857871127802421484524894439201219566355083822083897208363589216770845805931766355122793160805368821169730250123993392561918553632189601274865911661181775398053366047965640550123544269532842149786262324497926212969590816562702071749002638317683224770606550481786498736282809953248319817479628574998008734325331068825442249933654901171203779187445778871550485053981424086215791707630415513467392117616413495033894736113025839590668504123698506125588644566298375745471994445112047294403986603456330934133616963447080187662869996578243685452746711328213687649149335491073979126215353011266217983014449626809088650915895541571580306858206654217333759656087780367481202873627227852890988237778617683497238631971366510406324530133024215080064305180295118853599377324940991190473155311480146411793221530170018041489768986156033781807279461163394272441952483089944282009459451007509887353643028871078593230984270575600405261919429731167059133151190758956595483384646453421446425158073912281420171001248019042426590767281849588967803347885861187810884601511852099796699970938607733246894596581747774227944397707727937974466266523875324837559153278367075476605989707916287252849224612201554249918618971542971886329412188306547004729475329776169889680279165696971837245740967828485904136064752172258035203669739579548424701909226178868173647052982990989878878587376164307500565375978690469285733022775690270887930888403932552238018700343524852395045700973671482628367684765931929947896319329900288601178773350903522819132774171037612563606577982111712410534615350259936951845559875016288634349707346762639936955322649212114156887888500663294310950476603928322482517687033538117131628116320507118631572197946071984096681555358704743741054807129861988347600852650017726030075219096750590843155311931839138980989772003719013518577539831450354483018011558702904232878874944165289262947359397147550134754718539726495024834730001563285809381788166189264861017868676748398305533667900857518197707405000494761787043638883308462707108793685367040917742635722615089220008835823810334058145516242165188467036772182615116238320437335240001054197820624858126405916048548772696292439948302127659227004138436791850586456775019425729404410412344147177635292483255552297877155985803712469907642304995474840596077266143537981962423975098759598473627571103857633193104792508445042766592115854802500305475224233908233683203178434316724404467348155050356558835462979477579168172010133706486872584058489935882237990195569148042481668718264249542017778772666245447718735527349253382844265669942619321049026161449131435099978622818198487030978843709048821212315852414347972443533146659403726168914709678681325957424082125479785230628001342808527087268778687195496623682465822047030044156329817602544756548325942548771492259720490855752764660249668574911500224505057943650544213593743176839409554899410429206809472567397412374500032108691971163013356735778634468049790059140098892705264797497212595008393185389546290649393748644938438389850081624434485859272451247410898857105717562185364284743544896781753932945562170252895071502972069151541967554816794309652604093695690401182656571576681065101817556669665311785940204988533157018752399940354650315344568584615881101484580789179118623330612860739397439544204025235999035376757182615839393273470366535014190316607959413474395942211798256712340245657919316601673120095437720034925188757504832244646612350107523065080270872305030289018041603018747554222731007825570233094355997133810813778746989412740946832394601515005367348218581124105193857955377913464639461749718131031232189758440375888292383039510408168940137656007907772659788981965041627289009215737824302880049051940517578988323567279679755202575942781305228479830970325051071372334778388293808052918312471905785642092109865306942963773851175372466600538810563568767604366465065761141728381726917958444534944791566025896270287535569882772759337445330325098322637301090816534089290388624533469643650610574651612750662994055144066707298763107523152896665664271877795236112759871028709126013587274771176175422374372584540859549362854618867586344313257881147294900845035703883865706675772617676825036375058866303066871878576750458253149515745258494502186664212725489633026125588072905509052846900574305915076572025556542078365067858824816544372910033096200398182271671681069055078324854444800573738521435082923125324507274754109547125407518537134464396148031999955180136501552323999391915725204338665941952411622077752698574293690964826545189791083705939336630279830188724155953117118822158137144895042961637228166466158371687286026720495300683650265816851449231652668670050910840778859931576979695593912599637149621069744954655633729436104709889280623919073638448438493915780938656085164962321322109884134092846328683178091118018371593369532733025143015697313500429932698385296814529838274055427120079919973109284512474866717046487275231312408550524490436074624707195029702202637485000005828104453136650405617572493011504134764206772028890385197962680701941042023173421911143625450153132305991254225150034575898552301000060852658782806753696534387479653914944228854362167189222896773764907386038678267307999408789027964603515053809765026749213560583463987736521229445325863543827584627641484024923884735375830612711124567046548216071201818850118383222652232484161496819698907179387549025576725509104402750359455377778598382406764223306984153038660260750356744757503794606495216157167880446706181937458465725750226865341714853851246465999587408025948479401552913806338680525385247530292492234657157065651267701006465228454390359285186415276364214807836169938366285554678252286020663338676621363260581137454477753739816960511965582593858902554247787767597071297476594795077682885240851983358307401134777509392865180890693435308311233048914549025571772392981379974599584988537192913264015550463463847218402118238671891635554965916137303141452831766837220102784399013110078372301830281928360179508819128594410472806462791424538967353588380027978776626614273755651618701162306145680337464835550425750144785364221809256139209499810855767315135262411092954330840788088882695527246027285809709217479432492477408665651066705624606322191654029863491058993107075848944398984330384630831151158681321427646362565113611620595734613977975627686526819213453173932585200369703524863415964587973293346952711599824650946532643487950093297687800359264083612158111265569761582797306546531330670659395354972329882339181715344333213850396696492374237196226351271248158482236611162257012105428474021794741567337490008394336326962896210508712888895602141949190266954215494088337699271022548695135095025381543777972369246473692610818506022383872600511371244405232301456527611674984801501521513059123595038687628401200863246937440020951173146107431475369866295498962372356332748134189292722654360858918738418172094175347882549593265300967221803989612288858548094184306632533445334068554803903648806284241228189410109261617174262557781663445056744369266717326179683540246761524505607586385502012727027874753234452320281213090970091855245899436954351886233949932005221737068691261615501929912148336554075664097307010244077485787691044435207920148951519700418439362623187140678989917397999700064324333470841752699665905593673505529393570171788843274395182340158231249703775219620153016120084026648528032114117418238264366582199881836587854504517175402095293328636579425262317526182698092894442953536736672823398998517725385568657625178172133866034015556596903393730235558941706541279558394185807041670783285192930675505580747795761306571823424426520288472134135947616642090529512172657826749821911940737428161028084616885671025901020555386706357239288746700182515716412485441468948856765225383503745469619283268844046701808410730813973584005949707580595878877931667387805188678479072454910762235750338130082477958771479326887698457903623621398107247222163294595447580296740206788941494741780996734047284570057714104034108433306676666053047369280239052025078132578573583677248685491948466367628324250069633102904623926212561035105685705861273978525592312906299350972285684191978328683345533769552911384286096043845696964549700242647054193270249551747351011270000892782851069995918948298913801618034750699564962577668602042787271702393691187297715585352716102988138500528257429496712467566855003243811965855989960435736103311049923719592399760929674025338248482498279357285326709986493320439469587455585939309271330965778819325703550389992840399382662161238346465078393936957490485718384722710478381038494613000173239257521633080529828934420754841647634200246783980219122210152453259359779558328738237744453646141458534588088059219073733891789715567211712605941240311256692928507403736789860168486759353308405353342347363871888489187699565861552748716140696028517070873034529954533416074676078171288557760941020746342445916699092925119463135119045130847517802353633847100300358268520913116412910046894866076710110365074005781655002439380924282303535226038314156142327985494261534083144579226793276872966217693219266079776494784389143337387318298370718346032311151310763926845828244747269059293958806247915995310348271000302945211253215190235221103614124425993860382111043800511701815187743790823932064638746315140520371055106443444855563952541544597564133087042388038598860279060101491014284554961867583887102219540639070090857881619838819793715382176237912739905382877684976763610818348033964129750267828983933368654274064459007396475722387404019173970923068088222790080786410980607589406895309914093231236715585142751488173474706192047771091335463633066880392215867246131019266213866561688981397803679077752956883066282721913469125702968571984747513850442324565565897350453528234375067353129772247182143289184224734775535475614509816576518159803446547235102120429200294838112114881027852095451262890548859902054375246336926809590792625929799864699620140348325959322756396363402489117490548652300634039648639597968945560142034411493526186356429223101618446891952859575574567828819084242348743260667033963543557314365077107769946225293939917384488187886837396049573193248931441178370165804991402991416170930462337427295790440993296218344287101925100262118636749302693070558245479488705568531739115867366673304440299328664681742387679911589959539092586808576990619089161730379867266448042126591025898956774623277582346125451502189935636986426380680424588146106218317025451026825561716915288321754932016997698242625532680692501311629232428398617335803806078900723907610479143135158491128200368211872555786354032358095093905004045683010047022681580592661075103629800373999093348230959906896748953011194854657339768389609408543505611062169686291814878610488276182673175329771229135114922906517528978075021192993088585380956356984252004476979049938935777463766226431559832743839299059113019032764105480311886669135491414048805851345270462089809815737692435574662957158889115936110978695292503609184114618212804579418150599319929821106822393084456292966917856263546470875677956747589330350239429157686201708533556160226098544191864126102816218951785438994197227140324537559829142640556893241103363373886239501888509775522467135680938275694367427772877333219962052163467484351338780954154836539655052605620861682351962750885281500563525001036482979271563992510219862556238049024910186699847791767128829492877268287369854459382366652567210964340023704445527928275617725037830348684320937311504152866091783229375849558372818499359217679744087122594728964442365791468923674456731324317827805113508418826552651845383371224201273067846760572319116143870449465124511750447745697416426003885253460815041060842520747731593303778680317349690836281695103367852570603900486071927770660146842040070145877058735738535525105293851674754476179894891025957487350505800084005583193438873362162443870281712984030175534378750475340510166777883047849580799332108462067911685200088876462798905739015374468346446711591709755472700858028135390904710917892631430139946844372610008210948596793041835515750798164524426053778481061866744085058850504070685215777897947950246350728231500908600660031611540284450658803430709839263361549547364211576045858271823490521232115407705804111939080142806302958060968512340246756370192901883775913275402089715215518391045375045630867652946302258654974327011316850069723762429635065934390705024398490217186295903772657441685444421304780479345835708823062319241388994735238606581501306967989883517730213009529505752619308967709981045943505459862493675576842081615472702999389334075322492546039335498571013053922165387679415640578817281026589391990610417433387611010483534751002853231013714714343299948565816003315523648789745494717151851349549263610369841569870023726420824540311015220874532429842567626392215348776299589649436648433467565138540756876265941126123542421611991067869117152644142953089576312300581515609855095713954946842428814930041773712370619006689664460908920879473581827170099855432261225115246280660302759215230279048507960273314570205900852050166101568793288663149832739811000116669691497146059957868937871048140893733643021636218276732739810624173001140805669899052871656209753115130459985104333464847750457706273868772830194526916524961877064908686272632980382665133340961505297875488760981250041942004715954470217019016343970528191153735299522718252882144092664663657966139592586344562443430410845676547811243464029360756139723679385302197748130853455875238009852496494941438498786562301204776758002541951271419618337133344657924039719012093331601545173437715152832896189785821087984737119271007424100278759177630064895363397992318204759947262008032708025394347784062228243055713969505768825589837687737046841141834093992102446968445169454009106665564754416754032677708791843971334938023958535273992690211674745419443585221216131632847238187950910116119179009349913208993756146783787188001109322973132150228692150400361318060604858796103233910841032603206154800537143275760236833584041941844393105428150926255043378594246914648731071676153102666115075093807241283112130770085222226641208648690983246603848791024966523031982395526299539032429280876791718349338369480958415929780326533218063117535977974653258571783423860193161068017448254336637684570624573317447516542933128853477221206163782938059942610269749345172010258235074385263979695510914104406602803373737868581657858221292086335614640402654079908186958479875921215670094653947379864186359922147388392413074816675997154386304370147974254256610885139153606095578169834887242740141247963075217433383320176901625647625966414984880675355684985923880058918512830193827938789572136310172356847040274235507224781184288591489638390181536363919991477617190783895143120711672851247040990834710729576725428391944079218635327497635888982022786188884917936328995048988891381927844731189039341021666719676624919094469869619376353812883935483346279576417544594100050577658755598645526944889252279118744672455496717613364304893283852933070383200256670080024085656309804981151437489883769428581856807713524148951039975224594032031983682455936473208633067562928254502899739235629745672635684711618273338445991665699454303497381728402681156490576557968439043921593636522037593162528357752331407955212938616110045825109562375975138512529154178869129602358386334724721357645647097106268243354953762346756773330377983490294485568193141430190694541819747154999673507905877894235843526669435745063657346883393730331305051331109862540449852807399863671463829923013190405551552466253182052453648253592196018764592571732160726601955236830345447470261024980841586005758631699896472134420790843508892892811578348658375119600600998706905099786365705397927742331346384549078061507482516301116696433010709179801168590517644780566265293140599664393229440556552958017973639502154138234323126799235815755615344103996476411939713917061093115786785213957190555639874486356257081708467882505395078913784405122551988828628977434869488210633950312194603892977004233505026710498067624171506278849105674109505092918628990888622558917238858998734590590632322532044558206070434247558701197944523171694520317599830785550486712270200957539653601991753598847309829014819585071760847910656952709121984472970513427609557686337930994266331942580269056119612977426867146549294686370008395890021675361543961929194020932307609836576343511406707229597611099465628379174848535720651622223632650565032960715096380028934111699342607952961161258313273773234722384619226514632819073131589883742197816470372977020346408769476877154880300148412711015969159849389357442497263563753539843803935727077442432282556217050212206904860944408942955050715633418169067634100560901567933612797091601456517874876445467428676352958213836165525740141731639383127817677917236261421035599279244576142632656885282840994847136969088350920372627940593121788983716511798777538073667677988767275866300237819122151490062531460445579022958808576240114218749459283568838188729051492733934578847504532255930134871487524863019638930148676095262998607868657337129174818040590575573208753510913041271845699437786436566266908435653971786684402665699031070369658672837676170514911799572691060499053258485333351292167308468872164757378345583880838398584675235138859593851502748380307258589437027531127334353610550264190101618341436689924714903741241454409279493523713404639201351855734186741535803285618110036112581194260902968805361650526963939631833092395596134638749843510049095104863459958012277752137105006456279579630785344808908620018480228674933560227589691391138537327938266448817743143704361000485910691785378634519580631490793255996119969550405470948668883938747048612604208005495621758862440235938723236085040594179076456551376541323253511962057636754576460682807088376828157779996716291146131354166489913327736359937549095640246875322527107961609008871089698855583853848285987666822073575150084696533564156955241377319687326536053492188796913363234622221313595012891224165497261687812276584309039130729330341974052247456055796375974064420459561464706517489401577936213493084630081509074302084107073013230804486702485327096610557365197228618017174055579474307391594871443357394249520160464935266081062934099141238753472294295919468879175915096502986183897182278139600177645921214755532584137218389161745688517308753933175623761042294172178237315455425871227003728477634665624126227077674553247442142508599665662736527575552156479545308321845293801894918142712503036263707152037678034668350783889467142953251251413762164309838427055523758810600253066463160014222570938458857913057423827541880737875133054329540226661529246792909641589241534752349933055931245659144161122034078241164781943691255286981060735475014286909014420978443122505581335225148131485472089231771224868416339050920967963132003351554788751963957690832014015085278532998604421776489202258837045051716372731313109684493368494649494582304584747686273632565367689905004221866293677765160925103340910322715705132917250407064547458215479216577305212286839003406029467026437902616144323947887737293448949928534582823570607247064720087147597799161001054280316831709358463242918186465529783448131702507906824217367427143077425118099462153098833095431746180526965722531331360849325935171511743070638105702704530792073518139537813613995367758333202074022947485438722698383293481812985476852576706651257980988090936367933135596740566785852563973793799471190995177646045497143163078979520269597048220010681859804947806076960939533141474639558923527709244245844931644887753458447653228817594125602769385962103282218676497713876274022254758582047878056410031577202578286812500289217226972390324116970189255983887461287770212636720251334947865658660875750689021917018372170869376109960256849653234333323670845354654774100751830879378014764939883667363778617604076733200560214815668557153075323102048244677237443117602046329758786680329818318527017782630417862638797659932947649575515707110694205034382604816802334326083150931842937605025205196577940487412152551619580419070103999483450851636333691090004153126850652355279012120771809108553532154026636221360601091459493124463476716736066290391508672187679245378910981299314635337432578185301828298951430048712395059628641920160082898492982014195384915006562918478674342265182230662167970910254204383098182263235105995509394175918072822929975708833951589093586211332265506578508537750469655344358905336057378857612308545352699223253852186606316573584993077226789183804723963834227666563143862613517029871163768359741324437479938163634775015650740095483115716725184589805594211471365989352011941390136334175388877566100886682756090615436513412440516586845128065194373034490331983162111305165835791587400421797507782499692659287153588013685933002861202774486970566419812413421731859148796647163709008029120029939161063345120532615238056571550032230237244572495574396159978637554943919103484331138057511657581677235744625680027962024722649159144970673766991887848508772751005334114717529178081498134845502419580792734999084418398981409717746575887391466640614598834682915648848727469776702883280224870165806782162523485544212636017233545047559945286855462654249922884188131048064021313095915011150533662893175965802452624543006581966673632808215573905799012343310270734187707243006488292844216029792137222547235899442496223650218820496721085697825650257624789980170369855625957909713678766521031292799142025456757174693236147093930134431638503389905624748784337133310855806675629601042075709112573934281207824347217747706970134366919297536499183455527342932640654417683923968827969775384077051965787399107147976938725481992135421842467859345865113212816995313094554929720063896139923842064789315390457028147370474589712790530753842821268680599314351174964151533711688829135135683259003986617663154519998433798363626692906570441361440034742610313161234653872256373358332509826968592219284234648066646755871415351259696070452228626425951389756632424420475610063574538601170300956020400046556689821653358024821084593061455674863193524161816611650931660778923949208835517387609437799151053318572237721768382852712690538203715192475813968661745594036478671968546425893719930059605137628617750700003906390962425861734593819790689158629936948182841036767374490745915002699528589892535346272844117954037461139693465757743925533094938995955062779366531904368327954728817307024301858193465050221345136979328734677683723817537834259308445816194597846327767861414590607874957668978461619067561930251852975241101394880911985492361542344651711881110102621490305101415919839884059784774707240183259510894664534699382528507751741969608312922338813562529769204186221135323397466308618491215387917213604313944682944709759668392359922972869689881802513697794915698694309255610556366578772800598451586881381515710910317623544999258292461713128239922107554443495941293338765701118153374244923545519686751357993030287596025726080674709046226276503627303760179850665032673902626067322489366441823213942114973459136877492666418791264697035040702218093252559730801961909497766004103315058369338390291610867934148387521992212074845730839155700999960502616751144918676327921454767903118281601799931893904555994260636720249585165587580279123006863037835968529041830415204696950976655216637714219283321245834242463267562644787707880141016181152022017461405050296912876233978821314471522972432816920229182244219824253633657754411168484931677371952921861595755986497467618071727495618105436091254850878270985421824368693076593056947514043993455409166488600156116957957194972541043167452659950240868806073024451606405698080015929853208208506470685121559460497028129656486200224373679416241111175813340240078086377009413406597374014233997973998118919873087473205125939886604129932531219182744665013519465375117980413000757442299904932226262770827491563397996217276926305978420377994500174522647530515121993192429749614107592483650227588527757345831275999181231228398300776290811398278382780060855115091548610320835280848076691458382706715983025756205817924758357320250254249542838318456925285311594006660111223215606906745153463088438105602212567001182072516641463334402010268806684296143011143898949712287764823001610710656266507116508286941188962273347223846917825978550193912956425993438677808028534741546172968274083115074652724558833480888439049852495905617306649330463681142247936408308391665933887266496825707422997624574233599356872300120306179299690339675872439274006355253832306293647474276536373484527274335842235496330588951914617827215574911963529744968937615967123433244704418434757764901183669907605826894218364140457403556721600485816096623283487093364139304831400199094426797656851850874277637913905946746773661366018971282606638929503633013576039799699080288064173300332950369993115894393596445641185074881776325402493403669805814412635776026568429256263366849890097820933402312547508618226736359814741672190386370224835850314037937104229569012477756126624780141264166907871769440555416838555248680035626376537757556980886848783239713990965699654526531875254717248395513794517928020920935776286241357083951498178791238894580538296369002558721641216745456246071734259475554008451368718280761147224141857366015793917841229409334341987878990590746276267969167751356276739782913509260940312424096570108116209320987532814809589619369608411706941460527148837504498946961127534325258822163798526311553135936245701070279803359032082690612706000780737450560368095544632826633067212780712897606876505377844595422576288908920868774828514406064506413687604918032949334100650369948772476722419508120065714955461288033608755981747779244409494624076622482703785674386409585581610474692971092255635473877683464521952090245467142645054589597323546559412303586211323861094941910270312645274603092129150523154542492164652121638840915053784081809028734186969028479563551134006775691771240018949038538071322805125240527170749737894960218907355132907578325310098890292102329795026614446490360551669950468495499685983236283434091920866652791147406468332296811190848115017970298593411247728046186075373716179981737767880741313819405150769717933247461780856641746689321665935285430724338847866867052504160331766727237490733795683802524623921888029492370679417169210746052269769186040538915574209982003819477350955774815025015836847636829243020568683140206783554745906358279594561591131564082333266407670666953550911453298402110028486907229989480861352128486645526787894287674757566304295761033603119969445578940725613822327677860533029175429551886525095232934682951581435269869838932250107232993955883196425494906193635423642184760931851885095336602816749230074389339799518128514928236343380120693938537777424789920376858396900760914257950299869924792317908081906331673408880146069922926900026625283704114748633358660524389544821980283604434212930008753534782285905997053814675002418697617613585605152678850151018013887814801852470297745017926480137457319390959580838202284736675893543004680505479243708392939739734457501347771820833365590981482606670041422397975157109975811323425378436292894943908488878054328297855762922446643586485816101806166048072154463722334959759595976884751938860429435888046020014949628695634126409431946192938402813351367800463065962701298720914077353784464718472956216745256478238502250841776575529739617600389027376255338078783333071440896590785610024457979082963608785129151259668412078160307425723306830248904245302988569128408495247892451264352182225516108220980966857667855928023569317051850189846232883865231600923124105436686960295370268596731515066686021250872906456337997237012855181985970198688834425719510989635387160049300443296366295024873351567720236200216291533183611707542090490599839398876032526843920446952953474541915673225634054987353939253302923784959256482375551076387719933359845653302461007801463171282017682200314082298653640210859236623582705140183161474402332038949603225816039741549528800756848458325610600378105890237673018001220693115422636210213475216875173942667574285198726785960355373294005008256358457913506204097008511924865273543092734485998646014622822892871063174724202734273691470173731942576326666743267787171503707250710342194834546994064992450964104725394395850183080850727628705318434925054645931097746200946100399191472051413696450719065267550012267341926224929486872299145679772724350156317446070961446735329252416309683939331656949916216175544370753242673548564840474564561652524551722844712258901037372443528415659425802058842604239650210252967776105537820614377078764089804944397313468840424274351220017455573267558561219144874582601635616755208280786969472826774021599110545134109702455921954067489953086777565543742601122953991457717512642910018787386830379393015633650940935834072653569135643946759775660206811599524898229367407910176841720002740631705391620877187198369586650684457670484520824011253674194125478301185166796237368690123064313430735273290428259632941620523133569285189577835013763159302541558469105953951344339935108154159076929701622500051615874384577364800121802653533553757262083007193632941939047188508684157623505873750412350914663032757449743198552567242440661001629265685652511577801033735948578878715068619990352545331877293290097959416081206095165123570363961404103325472543105229730862491796634176822480735064755812296931694130280315127889627627939378727690325999886401141526800035059405533673698217232994513147629820060864920986404737170940277798208555079042227193415484819122284380573872472922395444016808621341371043297038972989928147200260869394440147633678836872337739088546942979906330864492238360959936423837472378814847799426177586577818802656239298701754595653410138381044028561191147732469518160042662319108867642356134868749096342906173162145836990367435714669802261487287821281294585893155917897160239709673907317007278467644347433794587002380819312766686294185474022399541387434229199007404128884847524764767397440843742128513635602922982538371581205498299066697247892281163959736474193920161534214573876314265341922542803576545031507451967599798646825057639584147785474270867560416568701237957483446318717409477174191332729396879941102525165618204044193997348103448651483098920926213975311947347203966169566906432379275119245783640266827793810947791610944789603184444865530447023667649416987476393335394802298317608040387452303971369813063301649294365355892340352632813113697539676498066828457091437693568000217036536199830941883882837796346368852200922609324793289768564115143678998336693407955255527461680926793498508468049364983055817234940963171188333607290911426020325498151008424604397110553187969528687259485967662836203225499274624389841619888980817563615489923459387354403677552085037223465536412320489612982151363678156148529659331926920315008911440561806004825577246169614203523859071227501125311280078798070362694924759557926914855954772476225873346120315242066488140255946932051367120511606119217184546514992838419122846507161075111815700448583611848966205258825630285374882500399170508973253824048785427562786014313734281779259773706143207536539221291349735782272664955701667417872150362098333540360089959613064206953286894228181240342311738533570869657468090184067232522547466309563346398560651767218337957187078625045092791572796306680338873363735323480955656680182874690554740679872791319015571113869428063897028063101595639700181569994038139708876941565727413659206388774211701334038057707463670618625420608981468674023526620059356411637333675211608429906293718729032608548652687053307490881813257227706453791863598929463643950907093742187918232085934742598096286315830310785622782452659562376422030988320308820427167128651977922498247060959460113246081903970783656840552299945355499240113691906572772187275044508816428930298623780791550172906875919916111038556116352550756188475842840991149040870204965176427657352311705426605769032935289510175694969109519450810355773392854360865304943773554857058461601826963881165045763237137130620148508225332493578815637158556766771855354690635343735252492755729788596723750102054377633694305232892874016424052018004149741532153317942838185503623890900022903447729706484807361217962899820059124888851251060920987596831529683049562917817031184696528328571872912753590713265994885520565700629485077780202324465055245318718895282418798925556289769438208666511091873680653998117177948973398796275589077408180522223805689948939290211652661127925304041456618503133716004810969138593122692277178215390891125266531654402921611851174719381314614404650601419890619777236794042849360214664654862554251654623974459117907253720869955859363860089809227850437194115165327789158357719072778352549472772093539421179494597722546033826844803902836423927659400445568664215095261907405745127812932965937483731435342482394362715845982142022004832842270085686767227704035736664506519735367613445585600493709758792222557356071150433198031946686098243079357770759631096663278219299213428313036256618848144323228387958956217775231205203961053294189450950945990132029447910558758391456473812362289508121665046471589958745170393025244977406778203525474188369086186341515766162268020803888889269603232522285076880494208303659594762264166932909603191525803627094665366603675884815788522309986165647666279182015995573785713399198776248127079935658649282590127513966338178975805145072718107355693918280430331826178690505686014197042978447527071585959250583444534943472028988214569213859361592622471012980926515214477154323177479729706295820015042307068655519462062188388379826626556376033914239903950106852924091989104038730236858254216266325019882267080272121745431266514181253330567816270734124233892804855092045462152866204088236105872672401129441570917606306183429859072064155175947671689346783640556242693302761283945567227906382763194408542754291869458261405785707802978347715410178766697819613353722498984665605056323150679325156159922371487972360926361798752936494038402272863011877894800791200738498834779392274362082528899210235198566775589682756509921516218927549231899134486980674309406179409463081330642928661773960138451549262417956580342955766391454919414356462547498551764912958246027371873299100902534508562371401071849467081147852150115060121923778364579317616379543919662128276250224278253004109387338714484540076132056541078350080925723988091248738168460291191159595539237930730508706006999438573769701636555375865679667736636806608082460591478237264843279581261640281969613585532616239489048417586357320902330382349318269361102984472446779354750645710638553959727283282294514614523433074749681690903647929661008474974004257677838282910645023019817050000362196951521495256031705942607351249298007936481842614190806131643465829356344502087836219821100167128633933449695193550647679958290738989330239583829564896118240538110250730886677413377807767732216400401450870546520536997170371547433804708810158343952380756152840303910016630430327445505608478262087261317906200996159258548113176144746427480861602235860496755838352769328210447995134849126221329146171742774850734731041565519702786763656807109867436874661562419967557049317298068111131402794345425951628691446231641353026265287444319895149932504461888484363240116455667269098414884302950187690609148558276198154031010791654364681982551833881263371934934754715515023263682675597096932566924604075775430941449198298258795137397705264784650665333782785076187806307485306096443038299956715056070635496905700826132567322486832999465575165187079676009947473128049576791853956716578188759747374633335019171923940617650699773878546077069305132629526068718060934764652371129189088343160400805991085273665058218857661648259895710360691690142151406512247874823001900672572570332330983676934641055938691982185644278400573078748537506627560309609061431758059085761567076779464309341984293625354439249695532584599004825666087805578557234502212645426472898286699896964450861800309789867257973340811313013728087509175500277615019625965119302944882614088281125534400321994490965156686211784441602487139865541418823840327822783577999841653618160259142079878388062134415242166053039853123484041358086087745830036260258941913886510869591150228586764905170872175402564525451004402191784280689031181239742270988492958148939765961446078758751081502554336848250307873877652202631337704662267064291113080967278627905365821547085530747172036090080533021859112071604059473123783034189041046945585144650054845378368351651231558248120116311861852481771387065127987873051388045627202139013086557017950032727208481641408165015215820183884219831299792371987182633871946925509810418434808852826970543706978384358509941634469606457347531272600169096158007579933263202595910310985491999155564885225953688371151625118711604139792337807514959824563740618186112741056788385492251710742850952933544773967992081245652890762819284016153195911937582949617956287976436935052015980565063271381927080644220630775097557912541059389851713862771552771988907576930558696629468942862585804130175468870950070043364861001366608387181228477261185519471466228385927498669822483696729329985105415954151794138911658433628087829839427106714620069403890437296544346977530556464391015360890211126221909725073218660007930051089056919307762158937692531534259800533335173153771140164145566216133304960809608252270350441133446274851500587124864453279480182982631457412811588152492068019428217556821861612869615052864455299166771808266315140717702245187617498398230082156513081984703959294171134297170990190297930626470978713901882890334856102074043982940439337160762082082967276471573209330582779326708602596653298669418550009326867912092051704598866025215063494486605086672971298693399349976059953801673909026453281601155944960813016381190868285018329427779887633800114592057059648435013803268723612995396142931757473380382457931932956883728940810026458749276377975994163323305377546544704976593045483482846689754272446871659692830150732517447749926267857772747847303691804057007500012479432287111218320194564873845899291978702022688249499587252648095721074028723520957693455699821147323618029992664722186789326897737316801457300622089136782225554663752915036001047840942802056632191775832659199789200666322272852492066804036395725827230117351205569929150180182233106864735774445783950133891595573969176187931040375485292584995561641228133594204937907454372359592674569947688343041230490272011898462127024352326223799684671482599834379007231522172642264738772443928235582180153236975653713185623614030245978977339463527915971749294448296794058812404604281348654397018234250494243596225818073541253951072382182436483852527498087119105553167442681024034687464408052316203135255843004404341321643280559831524862749788833519748476086696621781482273049797173895983643270942667711864953369622641794833899701343771662065215480656072709437229127203952134928167235854122209967035515519256790306105556659973760916799818709073583221082193357582798960223534929909610831443003708702595631217075883385049074772976634081473044368002615106713857086646198043809870745654306436723696659288116474197167998461906860836909424393121714487882359506755745517757059026376589565514403008325909343444836971661746288728754160749346313195542670530534127239245869425048402513029391537664466133486766285370076672821913439101484370956847741168523162247416835304069827576779001721282172036945716706837838703154354391420120866118550269271528484409256486319824644203838323490569933124800710825617137334199920044928370829766616540339697795951205392197883574502864018672616814830893767460125353072611269379567077743312783274020626961496653857602995698977631929215402611612274428200904005030658083113936943295064151180582462919585583316700494515391210149357338307548399997679222414313201080476935067042712391080332327473912644249270726686311817833252253155710587644616381815772730627186067432823152982938472273008135901323470975347994397432150781322361895147382351659068082309749689066788840368599886593976479808637637968915705236407655813814564621696540322300722861232989266794639916680258080166296149598101322476604506254564641693241091025498323931371291647754966328286233129091100728096737450710084092105763840252547396578182996373256002107519597912316623933459724070707487589522576777495331990494600765207389274973943683141595603148501471982545936190427063450064020183119138902671726739787267557708629423212613710979092515958625545233627911538398407824865525467357466496891419627094996881506012065618500483636099231809325043656972230353476666322387253413840097855977555976649745293538435440531494301812073638045705723511385922088207982638546764917809799578590802379534211638018815571532453158756708458520162996402921850623304933752789047276609269677490622765252756093892504691354542769970037248797312828340701618060244043064268267187602340765363848942829338253317950897713917788099132249149970532037114657760034083603523266478062636590164062711063442319756630470540987166278834742414493304459166077579917157316701782799295632595397001971825285740997330688341458529165191414237133819825280112736466627235533859243530815427109211122660978828427025755925601931058584073386974427054098962396946466295817054365741321606108279256682224457761052584517947760361231004519445967380343406548451819006516265237849093736860326214118595340540532108201881770817444717005849767507229268885896399783282460034101625927724094642338400956324302515935182651096233305196511809796839500260913468800981700687679281586527335195464328681382779918712682821401080452290519335222089248722141287200361486601435604396683994663832479883707733614439936429573129722059620725839592184842355542620307684189559678990398482643542734554076179592816116602451460943172945696177266911126456208834695770122673400270167641844284105882818486632193338630261545043046923316291965966110059354248359743178861418165365865973766024638784214526954673367543680131801342572521262702589118188508168021496494145198947828251975373862674463935328347101248009301524507769196627769721809069676641510556154538773818931320291260458937675644635889215303188930816255130012693252226711854825660181130322185350974516534957095955317186245380789050102954232929708461451480619059431652237821239306840906796776493869095521617939687345232639671914410356738754403863355790722896161482057785953590247515778136348281476784365621851576126110610226657589285487049948828455879790790664279501941792751441602946198974914899294812324140829108265305359107685204978491526522446721095005929674686812109677338526577882067775619583828683032208859523542424966936104766300718901810700288662818716266882746942635426343204505747905001199497583341149266394768517658663959868460639129466507116676108922626884062417797522977340493394917597595121245307159578044756215059337207883976489696747822046253422856548050792935948285175439063682657288228837643544495871490444852843726068891348196173567307850052918794837356005212806075337603145896388362357324143737520385975942805652329630789351892282752710748515648895125663768364979244503379514407349915406594020634397240699492537518285767498761988462655707195377388535562206874739489493009427218149175752062805063614415807691832130822122713133223189316185418278027432668351604270141678773209306966777813520819365160706833006157145370215401404892179120150776979613609927252441280269404109231246308524841777842790011902283842558000955309650102061723315791854450045782593488615057356802431026434714236440426027011060392807301070126298508490570778448703766821692678055426629330872955617960501576996947401678739012138008794905024250679135734581981857543337734132346400114810150730829449162722261484612624576086215707230793022628750513413050516791778931404524261609943641843733503979894147087449957825016056365695636364810788577414179657900719172225683597564474973880143441453539936582779134952278355544957206109073192643694157641791329600281506645309452252569515232704146080165358992276290137438417292983824255027158384365377139903289599757198643971327392744038476081184539419226768786143734724756186491422128641818867197840626978066631893982618752463170611143223512168123718747505130388029644394561198665015257009029762123859686916246387169586004146350419817415771310895859436533900515383928251632222239867116510583135298243041705515057448749152431769080356792705870011920330464149349923675727183213384905237439101930799382629392860241147378341251420064164536025843462420509326476698792034623069293335197173289705449387454205597649179017054680954843082134697749145675847445649666455181528015290125027485551771490351687048715225415440350518390325543921253760073699951056157892768556269344324776268359138748631234590499538823397225207336880034492925758547297316990169075686047852447362630545485847663014402852630179445793521313395171807513812481302357513971948288192969420598143941227701236746188866008563200945335526949208388622383274080245641231715836141132196960279969401252208827493216766469677417099301390508067421843396348160084455332445767251950750148844194393508192671134194351829007135463757779546919920198565066430907136051657647477595548778741422506524006052708586900509485987940454570595102676627265368714054395118717686914770734566535136147451415283499597093830065538963578922386144748651428823341599890239735570957320982077039097482624759493133701973615056052178250583283654671176872078800696502101889405540808306375855131850693307089841924726550682953607346106162247530374517448341981360799833231474209917083916800099884731401660492386626571334821412822344192433827626499474631181879830060182615951793745649806884418321564710224300926504632007444948708789633523940526535689669611269727776784044107655350029763413209120956987935077080762686468420723319517944956433926652091669709120466491967179014089889299481461073325538900396515013130531170676743751100162854782526968886528415977153875701387543030108826857493586727126244280196241004848063498523140909988446258534817138146422869629448202793010670379109170188277427091488295594343829568675147961175987222332611235156590325068757964602525532862453826074695319973060138808286652288838343042568475936723615171105954283289636901042160431499196499886184050357965796380717474243693049616103095163156606594565619272350240274499676180543226614097871229262080616446668499259440777853065261954610831251754591343498634614580421287503563886539338783594856375737477135484569496796891074618002963603090562563943892809898602367415463643187313259367881964100885921882083570084350506988853204224550865266874467998663239703327965636980998312219240425404192542102671228613136567251890651920964471791973607058559688414008685769886881393274518507440173991035948643729126387193260626008079267935954345517689475454622504438312277825627674720588150313196849344097359778890647757676166514351286599346491115655143483736119112462963253012001318792272891194612630610924435798543336113490044235730682254912616330393093016476369648656612483521784960035681731179441752600124057720142159844813225371815057949596246700454368061382842478549034263965943662675503784979168707741350006295865497875618690689742661422854762069327024699612282678870586630927406516765580222006311619191208283997958139754964089060477948242828312435170996634585224535380747167343137572610112976433890956831184589435306356568605155339434526677551487622080683216972998084370117880257925655826462731565548134053531885504207402120043581805315717815401528212593906737015972277276478231766166130989150421448466295756557540961155740339743149302750707825241008871613223866864980407487536623287337255029894997316604351103735985194433785719631960887045587754874379435111943376632896085836336434546639107761238236885980188633601533247544506229675458957983488163638105539261533385164034463949987185480600414160289265176749755267614606014291184400601759447816254624026781751574646698804407732390233316823290696345905658072997889000079194537833710681594936957449696287972987479421905878551792594348737194866001503664733787374136351512662383628428526228139755912958962611360956174971297075463057190432676843736621093694830600997959419372388523393543124566329332280065144673066879611763119692162620100502025280382464276329501557503151763082410886952409838123995712797312000335897784481729146904876997949694018826356778561718412552880466705349057433825171545906291669980007341412409306605586722494250124451491909770289125607071907893356088752290134750423124964721787407642631078992478194435028729737099425726396225617162092203412056305948602781906165444894790975655034550559027247835176985772155958506314659869609770570874804976680368419563916892415538278565440433764801902116636162819575100955115198678118231423995076326755851969244421787676638546867107233240426580179439839052432551010757036603845285041723107407013908921769934245065389673162221302476767862119301898810841956447319804260991506857228867063567589195106878062804580363150670663602211732293325853286321408088982753207806938770196676013903340659698968429511905298639066549108600484080646673278276872115290222899677524321867774619640430927460342996615119367292480064833241408281806830301363785497689478962116395604958115046673338434192579045321554446329417382626829422292529371410155312045522818497250206989961521802331104572212545808062445007748181441810352878728810831858085958165494981467729025421711469918975614589971872264877704950000497794086404591051078172552446981722036508400737398702057963252031001471015350571847899042015997613468519503276593447353879654930225946973076165838143100103121089215611507701670094364845073177009034525897929682507166137311655869736292165327757923489539711043384325982548460777678691497495648158450929613152288146654731154449228507156058422706834653765006412478719860527474087434409432210396500484739288137823408198595646130603995465886634650342537012192719512729219727075170578136927279728469857745781894085241893450207314703391445044833262672505218415838755270046408555412108099376565955988640440156012233453690447673724056978720510239259563114487210472463657405817304591890314419972862872505400097441322226446437896435291294412827590180442788839211878806052250675749637552421408727405093929174761858719428724606518308918280166865561117866568296202100842285862126997455326048890932554908301336507212110651734648927564281665005092605319881654192395134691549176980042579369458864631377477025465400612603045014294618724503289189810594435425394595224798414441899294148346831823940034391068780318648953301748333574497879094242678093451344171469736001271822827032416350750267401422777333744948062034146637154973848660941910127185717824228307157579862028856566498074048670031701185280627651086779292674120738830667585987523112977493896107216262232918483544854649329226616119524890690416275128798468754151910898513619075896890462286758701813726914351820446826539514221692509853540951506819062320281551379145048432556977696579391431134431031657138605048006399080701247925387861621866562133506461863145776708024787285957459194200871494279260324986355470260769334980456587690290688481345759299256598283270103648181715627000313525500168789801211741376296868504320002407232582237023824644022986722576368275548096286547356889000093443236592594027495642335527811201542978427515536297886234510057286271289046336758329559706460884544585475208961442335501316986357742532248826302540131513391082310250294991060685282491346887389317430474687044008555915535794032911584874231111883041868419092864138185977456339436745212025689544207320086196439815914169680651044878150919968810123382428899791504002692609199132548249853021210102757856318244231909848548366247951116445369936594257782327036924077077775115256135103813063469877040595918816884706243370834334415193661843859515982948700064175832875947811440836618483077771034669659665937629851982276113476067017823860981383582927825139569979814170406226475470987807898217791319687765793262787937365299418884638172148483326024586689744427420293717709190933036646268863352655294176038782604703961132640162339122415967840788591743594093378593665239003256621874745468326915333392084774868815196792811764757260036919422016726977157720242639064405606700616665205513474168347821099608882718687085549784534618577247414514151387196848615483908348969289533459802982231669656687424044177928308870610468536683103441266234074701600413738929627931635185996734604224824150045797489042850487527077899532375169536931050570662072111653203687281890790486431682740435452805729906428235445523301527380363755553014422786397686539044628660225249687337769782026401868060886958036058821453072136416342255431613405405507201797413723752245041775757653888713226682525961064706221836219787154302758222238206984073990784949207870098639888976765034594092175496316237363521915442970334852285109604794025674006551683724623195256524933317070750926896427204206184641576431872066807225964398257617778514413017088073356329965908700801365095113393849371019011794674627337024526127349929233959383219873848962729441153993713164740218221981903394721592472193832181092633326920620672927326029155726677421286145197002921875053362936341026806898904738970254425805004014636011004525559408060672482511900851012588956199616646195007601600193334110571732320204486755809017681759176631856196004446145210456573515151614107502088759624630618989550836176096998919272259252907410728565502077095392421124780144168355161197072373886815232114566045749064570576583706903872909480072910946488724201405212254554804979980178390026080708627993092251603450263492673383699588543870972305217443311699116017891451925465520041361732253152696438886504220903965043730031215377807247570195727903644546067686433041756888206003408973862310758415817824513986506594342331480393183984975400160145741064431234799073498738802035047882572006271811910217026892925146814055287986599820935048967058165443374432417980269532866351721563083452075903546953461738733497683028706041961632252731920343318921033051716675192508994651222206783754211956504271391969529167327617891580769717180647308282577251623517153478287339236417332835120282109305419017651728465105470090665514837411595616429403897428982790449476843795453706841252606936105633791303916086018673922586146083791510978828114301255047186602775944607283817076474380892444136048058467141801571361571915511202035671937158945266975608551399971027933128026157937886452500629122239866190486577954016996487386516100844391454457468048615376406972871790865078112261551685055701514884329021738176654822996332646935740944715138764839481012956974033231533358544423253031826280862116879922899048396319270386656161556321825451168004961054628635108107575681975690330189911251911947740800046302236737947309654398494813103800508947735382538956723855514776235245652634770575370826516210834730673840206001365350004263369759935383463208326976896266494732497603974015293156351575348834223637274277998593653878599722843810443834731263918808765847789216078068725184866089099300875467838308062077131417475882440630393594839863746521771271446019634995404439798301470124221882703027693029725861712309974294262433043769905799909666322229434946684427882831793217690651054361931484927486868061216070872127655657245344564505975379339047232327739991287049035057378027305113547551987837957557324981987711190192886922148858539281628843958039546127393535951907600565091524021050837036054184686305542206430040534337532106425219909539291270250786176676671850451176916393826066907332116069754064558683927448814357884880835810980704677229820825250267568426501473271404812557653567845632567344159531569321594772593344834250901970267845540997528290530680453416824157378258108548752546312649831644348353292422935506614352968867921714879802945618875124054180004363604101480095105087077995401677083599410811227520666375660870283393781750328902149649978386986037518465486723331532678784052401285250207634910183270045355740630314642198091173380451625799541976571222672737644955858637488197092014426587352661406224128190356045686659386847103347320402019287103606383082148680745425492007767481837837370848551773534038601704419947013551365862592778462251388693492164515449892888904957986808682692906079419484573790334925494838642631197951201670299548331200545254766576708921724007461548201467255480695898039407665391054409696265522527316269505081320061152842946719174601053618450504706116432546994920094448781358867751417696570471298857687170129249793335754661514378054968715309752139331945034594358344708630256759989732336222623308481786436839078525387627844029365527642026138376745940769130557068555104936962725528501249295480454136114448505536562097387252117692943534404685086922795381111996262579376161909884213676017184865274014889279832217362041112587272418930983918645712493531758240962547097436398121440990874371420218101091136122292100425351996974077586812520629004412063986892256618204852780877698203140397680386715237133216801269441818229269461692917410854567811364797141849601412011285208205234147649447368015679509970768586769548074630971402352241105254164298012007911988588634306496732450885429911244200918126428244939973883995397358962079857326464029749189612796665432995421702739912708467983303926509664828134591393495836506668206683110920661055055929623984455567135291022666442443440240739695343911790027777624513962076894045468101012863736703525322996510445420511242236627402996079884543530298032273729418064806950890289488112909432337445137481912824327206991760417239857028891702154776508028966607782057635417613153356623507991537825348894424493308228697709825691547285532774849827020928230332782441401753656924186288918830993831845389967897477536784557945853631003866145032327744664894791006109884107041276023262936080660824855254307439233093943516527533325277469008943154787427729448436468590714329791884143429913023489674152438149021091323690937667406352216202924040644406774621511266505760649756127159960255360070422769426673549375758034268206517961150880326514663720019766263752011550963435779294480089286584092528837009928899306905403852337501416868825900607399351409470178486690678788793940645031477191552376280884329151341456379797846538938907710628558804978059347186601122804690054817202475830961845589108514330465394928357855022032486794301653601688701966904391902329565442081353841640279260967029423856764577494428171691759544375192488170868406524998544244098396545792761985392664947121539160690921955511471473723383188636726861721217652190972709659891356346082662132310331619429708049824144958309528136910975129543410938553525824903940337848421195320340469405542617844163662411276607280437364248484451763531520990047447417225415445506298946276412452770114771285126397938318426785786462906545198905289377075109754919797444481082184080716852004551652771635372427029464698068902882873986619095654460914942830610722249286051825001283840966072305963187289222387741598245542803818215699998499999720008256051050539459849726080193186768052600271968536734520330372334993950263407516652963311403606477508994765309124873552551352564394482603845222162867881339433453211854764191383838566775399909961524964386467220837129677372132358883053451709375261737060904560024802475256679320069002484165755186898071882794133223305838664887417830091171552217179105218508900868750371894028955990276906630779406419790042140722733015667595158866655397123437562190856582376784786345424096765937808099998563816854827564097450333015085605133850180043951095303965586086292031735251391169626419013502736634551073222144016419645848596694779633486187482020950708260898288762852329567485615336624568327083222902494359456425350086543357886593610704543736263719669095080678225831383140269768652831300818707059373085002149747720182991063423411355371367105871633634232441429145996020537860929064598033686757140150364849452246870250428540968939466199249238977227331766728276513090189007001551392036467687546505831409693646916573744423380895314355475233103456919526645741996827196416642537411357819158983337647781924035141269995447650181249134665371296917481228930341072524327322792311347616784293266566573646693708993182695767676841018109035624360198340021355769941576594065135367554649594909581786883212902476642453325852741983760495355255692281729344724682977995102848147612139555632234464876435190863945689231696310890832381930787481768566223160319300035842303998542012462876985620287692300308357809763987280502440509125117208768114254990716175735566280220300951471101346661421691546961209544823059461914313951760834949422583109294681065958556317706963347931721822474171139542416459296947586755496268011549454925537233667843393777726326183746115364000779141589295512093599978728833374112697447732866207460959857475297631822190112741395552901181973407126793458061560806748951416318389221941443050586761662561560496664130488434566110434772848692144860581951452864209869328936851243584704252041652427467851858952623269043775617484266248747867062162851362741270441331585895267166899738933377611162394384209544312887015628262596562163030016230719972549979384715510162612897627399604702005861242659057994658246470575343430633199243903675970066257736942682974001402474173430425752741886793669067504853299789382638941616130506346841084479405331070687647257917199170691803664583775714552731925233500268372271572784438160483505943050010241414943048128335069436598831081871677603757238742841352512416714752617403985378918294785807275445697485899662143972615115502482981013104758464939265229413161625310910736537064030688777332762419052099133715433582216555831144726216639354434358181564493877817881402770104570358238002388322040706145650287718549462584085870544255517426693672654678614650251752801348934405184174040340549291008564350794506014569583772668140083349503704260827087390267367676348538790035015444446876636088175559191811251400516733930737112808672528801118766777169139730355512970779995616012528688663929501025681517679424002263138005090614437663922131684971500765657455723439323702359226886911433701617023596778417761728284539759774555189264056182381236203480621379975605242318539831720860055757567145196476606587792196977133881792925428400066222884611527343536446679354075534173106838905796228694527066408847034947031265472820708218092497314400612987215084707530408253409903923439501649585747638166982038394156742402376746153292649120199053382848428117554093361606686102439725801393713119953728477590632974091316089823426889660930755121805348308408609994396636879061269291556881664405607240501560219436368501886014263901077750752222968963324818142972699641021378369476870098711764545333548193873143577966628905933346603059567869094164652902132692138799576265522621571586266574826507628384779334299608827961080218491818758431042485508663204014811022188410144715375046610649854711887921736585540251445760830918705444757838768811139897687507510551276332297120891854904665023613539407632004263840363728921426190739397617342608708779835370478652005896325058853442359183900920838234101137138798180519694031062874240616434325848783403742633905923332083554805563109313201899959232256978304578400958525042745589475571794071835834334594808995765208236429481272327541715084599391937481752782455298708245670654901130660850588628266610681298452826609430992583092623399125907291930427482952577711780697097355280415591611187065125870279690026838383026181489904636884403951377585544195097816547265280146805094593973659144946393935533524452835881395519710524793494306925670679504223484637185874602282970427100021952750130556271767463068152531074122281771285589315847835944251501843390885351560516858828913444982837138551433782650541460940262356662240425835510970620525592086845597445592101466790641489827898879879385306287368637085936945680847892149233590828323619329468889368504191694887730030818153181966770601198735700572989084631310767566868817869380605792368428004625947653727693617582017161896414805935714427294004380194266511157480674136930544660770510390926996171793991564740050500886439345410440999556562087746858322247021215923173882680780275537092987709002951876014131190710806924041207431282833516227872667130449767802921185262032421382609555356009535199198612425966845333899228169997215380819077784889187438276270268297357793831900787244019793136357550776725883760549076024448223051165442343881088084298057364359959091015148986428265214299866849085758245558964344572298024218327444366566705272832938269089518621387442293329515801635467670410973778260086204661666865036234693272720029438096557616214189275031757913156941459707056817103138921165299850429311578261352745106546379338834254607363963026155471359435630727229826308896150201708517845292836995744390113186930246720646940542962559549591578172301475943291047318510534575954744335420439022856869714595761304887019243277906510148058930384608362540247414966252910601819391967075504038275546966210432202842116466615692293057340133775240060266437950525636648959729525498128232184641150607708020015190029405797937563482687900644991238608927570130500602038450623468805614579069533774381380149203993876049676383553430675665714043619735378803041947572091197561087966673185141299480779019413712605948672964057394749324446556595913283183626956822233069235121325019000193976831208780327625248337771827928269371809589621074842352428644832490128506236924924064023001283459584000182090122039178476466297585772984569020518083213063201716714891121375977737061879488043097066185529083475823745130552269198952618801856773969724191593483100484230102714452032381439894037109554364483991106480336350974528964133458150551599731729378978779061641802609821967373458064606408118686763906280598000884365564727783280017750694506606283455479718590381218873972882602631942236454744527650181849965124149358662412817982708029349146498596604305546347884067103558295494770530813989776729830707790144492293439364451799175057755734518968029909575875673533611040052252086305767623573039511515526261666508555545257381258558451877183129737128671867210812285469585566564175932870520697945972439984743390090468868785774639205511258587334254151293039264443574470187444814232097174866370088023786329861114319771994810183964054238217539006112166588330652017749054986863423677491651976087105200833543768099879215102750463002894398647434926218165167731639076326208161156807193088699623985597465204868581927636002069679168379334828183689547424800596847607859193403977135332267244107206888714159041419665275488588412612846001101874036822956723574387046805394483461828981715207551857700741544351784830031546461510598579890268340235342900938811560669932484204667479279639213641023752262343792750651527986587456860343344735337155459459249949929117832477953226780040395149231213196708051811086887985796712104181630102253574593301081574058498730368359128203560727850604753624014091982911703797556433793860867427524309263390471329020662323319792819378055266869079514008510859684450456811100579537851778605611396440297329778261892137942331074923146666019145605856535948384153153689911337922032292837447057171515020794414878638061577073269072251497202899084227458190139827465983400638138021055701737181614228333552667204415971544458258747187193149270040529418841628446674720769502471352491654582751145265567436301219091647480522972835898225759421839262975136658157310444983875652386807391615505900309623146885548576941082986231419433917468520272186859840098442224304651258100735723087529163809744049087249231695328624924991207346494807816596770222179259156242298532224897180191429522148615354910474966641564102060219597207449233596092085931427440420948310821395154400145477500499432515109324864539517737775976434725570670572056677653845401570680847295790659279844549126824679476397051708751332426713116271657652306056746357634029030617081625062045722384492620424379347856418902056886729866291190308115321171716255513394790195301958062693627418056261970507126454706990447311886308269714523745203754834014223751816749226331811879935665117367575221644024640948636471891311123786307775079067036904442336812499024425939740878551786403638565970254770023556098512650888604657036647238089832036129072265733488504972021250062400211039107018331846232213259680027203853413310045374261126258765021582806225777810686084457393357774235662215607711928292932051616188911964220282226718363950350356064581928893962305847331944560046002975815157832939252149192772654056545094198484214785080506215961687272020447668536986740026871122675779440068907105691109549610149851889881055407236584327130848487280627752001778633317146887581498484819394413719540715426941626238150342854068333237076142227467116415348459998657811933787229724667734627483857578877769218838408335541984240965493577337457078041215716921071443800946008115710460228417497705247597571447370709808519299634370081415474476083594303791841067549280801410511875367359865319631516418670431953907263594536917915010719977646060980869479594513855438736940258366171655497584128045860752018431238223829104613474408670130101136508328920725226828728369868794863140986465685275298995481164749033986472311425892408286099478276767430274467907325624651357749668473308838600214501949120839479180900224871791872511933579281292245962025519834896833064111179692328141143951509584808019118036488125931163099224936828687214353607687927530909428493071089462747428818531706006075453425097680920662804422139091074981139622595444892376048890813618163649641642093865154119378975924543527860313835574885453120084022446955580543966465352884997190277544820123462967781952037088826005520794238409352355803246609583461028153983010486168426316173661456621625143375858293042168032810690807333797814416371433583587212316641593424669171691190437086395030174380388931316040366920511360453964507819759217392525743246881931336643233358876471120049377127481567643164847938410208811288889750558658470585865249702273965699057901972304702218320768541502819447426159183784222745984228227245267510641738076928842845455581398668458614944464335607527539273959208218274992065451737435268866451057520451351245371376780769070704875715010380000303056062178710236524369263088848668750662840300094816605834470437088584259501370755887185080553010817751585730908301168442804037703773413119169283297766050441533393143072563091335896390881963706451052864631005761531825032457661418726666430879623954782061442253025101141585317100574177975514775542179829478060505590384879910411336325147625035482069168060871458042731378663320733175376642911867133308448306306587982624982286493257895511020369020080843835316501632559991592841640105249207860685859536211716226457213752427553634326500946074895001082533375732912855331283981316379614881284740105834548865096696001137435128836483159608695102886297472650189893158616943574527599888832285146103244097023563481525935259468354218378796947621371341002669642027574172029634375019683552919559244611519256297729467270411958108369566215111773386464132046247449672492969135316525071656934819779518530654992007898518103595244175614971577729071916248915203926167320404453150715117203577420302511993842787821266372739641564208391522908946478315500647388870086132055266515225720389711388531089344857142351678163383506216444799346237246761263067319470977993253560437382118162963454071388193810079387657782444541957011851756490611488885705775537293380101809076580133217099625980947503836812516595098108318337987084831940432520962153815182380906946508294726847103792806972843004932764951976342730146543262147869160211119108406971788852682680294066099244653851424457686652383894962663136523079503462431843463912949679433399329704082967186682486982169496120576780222710429352137763880391230222464436100457617323186280223305802721850240578517603690879748055762680263152021245379652252815434684084523003158247546244413587784594228878390859790379202473525559846598862773325197968874855885568577691994982783251581611520882999608124071139018530439326035557761833672066090098734094122199048299181266610213148168258382739441136625139533614554555623687781752771043524303067187297013015549600376934578149170373666130546527975198243933865883903434543098730504008870186022321382002464785727425151435772687405253775363689808701296392873266977126444920973071170563088264788991562533926724705396095750614974384517060008299182567556305563058201424691970886620543076505730299258394144735726692926524386028124602541062685369493265285526310741398746755985281824217817362324540427874768125102174043009371909256749684139829745309872681632055581590092737484957029654808159114818110537149317827805776129865242954289404948492970328342597154821650607637465420873493732970307845899739603532404710898338697330884417077647410403765475918769459305439771907884826920109191166909320475836347872383229051738511368794278794049497296277917412096330358134044350783500301056292044886635741528955732308238377494395953455114209134519080316184446603112649356440930133012710982096013919546794898809568278225229721275431586713635286968803529629379517341122026359594515156504926868268798778429381195238842159184996085173596837068113018121758887521818271320933963953732739265737651293476964061723063755069136748062508805389180191669525880138081749465817340077066254580797209885208333135875653748855746438056132023606123070507539919619607145943616813090171310437689722834840556934130683293399730462089548737534392784459214047382806096059896560480616231328681884033894095151895614556224743988984767677921401053306375569424914617085065917550674918187636162607294568469662241834295681163858583006960418803813340473903697934643530432017093859382096921135493973280544866275319751389149292487203511720879710908018932786619078087904317653927032934728292097597579284531833557046188757337835552716236761498587608904422620227579125850640224244680022524879481020491958391643416016082282715502255528094655018503757283751738777389675717340645921701481943783111541071279631171412137736824112892352384642134665020076681482442263214109425995394113924251871486818055610389608001213845956778336372576804737202908371710258436507939734164404028617130147201299604962104521079724889478368712546266695355293838400852206034601113333143968919817570639993038793766825054885218544915774347142232561374044487216902868644223876376804302642830280942946075662186280621369171545983584073352525695724671108254869016055519505907738539747504779609939469225440992143341994479544921495012207802913904102119278161752419315938108689212462149409498886230945885662408050252084826600191531655224006526742601079940257954313080316706852766763687361282124025295475220244396669880199589108931937179008366150642338018799285029466302510117652709958893457468736692815828467757470006393863525037004094837020994567914362654067960650847489721542271414515735051714895862548101954095914695105605155993353620771865055311178958572237304449145641136206917352682623055346565467980510031417634494397419816936273187530522960756113927389581609742093960743730976464951453859672770736034345002268447320932120425103959049057003125066919607189344872833513016325534421401446003763940390616183833931777551663916031539895882292021853232658763134121288736985301367712591058170219099370859050846931821925223159746391535538508409051711250087669688710272996908950051922099066768276691081678813889355446659295622950815604964649548186884693279189465946965041500318573366846608948125770288101707428248730142566589129105599649990591749919914525346048666413359200209781049569410707230003071342569222782752723525456216287224962208988802776966887653530791193392293611765783678982482896561074952703327704489013319655520274043215983969971987238573199382821027284500022995740826070327329800680522183676774884383503595025787173540526527881909621266251715298197055433215885420298054486898766380556098734633623995567129317420826579030075367429652574954389291322200030367147189860641302478067993617825050012116300544132768528919532000018668086350322658778885039472349664718079164444051520217715946189692952950572511026483380107881229400029278005203851569680143312021563649517434251574617099806702293564959121250083701824441796752850033610117794331939434598980329435331814856438953105886254452597640302124786241681297700094987851141908683982419583023717542959583249954653938342600035550189111019546297240551702514468899113172504655471794467069170346372970684492182258674916646977436679063442794141973097165645870841929946320237974602257197424210327637369086974229932625337119098963542620682567197007657347755681333932488312471551011098442354212279158151331198831105944894448878918510280303929606582101704739118889501370666760384808564337567746390824995231384737963894785860497918964729607187356305529097072094194510392082207550205962631153161826194920186075516944735118360001549876254338170627493578705661996405905779948568912940072326539010057076871288857976708487537403709850956816489155869510943538417058740890467012459339003055425729215826346952301586906852089367098823732304970525219906997976587701557790043894611768153816200752401281021934047857172943000462038203879663295751773147926875792123077573893880640549493523224641812348671346765038345068367728387120587795847129827663927098136729259141642251033282502727072639334543598386164573087266528329881601625828945903025728961701904875090515066203939529201560840437183003620049802163861162329271673617955924238898047881413104496547499669186995908007511708387609840354974272667702038565738600209168045878772240922744566329423364876358894512737955353252256716242031483234004296173934421956542575995399138248842444137424964920240886960342696956470463565091866054629543246896060593741778942928865662205927550760977030780897082832089104953068207943740950111582644291568124585007710255300190479504382196443086830497098370978127822438568291902745905788802048683783947313660174594848178273420776235249494700625796244458116450507834301649314675194051551115187705003307209698228037229495640144604053940655533135609553039870793700945299135549424042384279501714105438024493389072727219036776444663971370363343728413971925181978449091640481315301158417041520395048560999333989314813097789849510651567380358064110847626421863434798513096260508595147378192749268198561698338592681201972959789134469068861621950657697288142144182528824322361742484946738945052855043845015868330924951007897582506517391257120394256681302254892672990533138039582210451098497802448855288155962856894882831834736351949178394423013262474808203836983945188594335154376297252862742284637884802895417756860653698116800720636861315035328010722733424638709046105580617177349032143207617207996970813853253779571856000611228593369584472530661130267892353334472735155114236474302410039241490700982050951882260937343701803346231190160071797637418571610259497282007908827732989062545088927557149627114773233437713442882698582882395133354452903895780518234255360784990881740361142294898375622884645067238979514556089655386655256279775730204150775129299593060247231129361519074258212941725164184357952077719217622981453434461599628460055806506482841569834100527358598059462349233271195730006458348658977000481414196918556393092997835271566737899791741663237324278438663083608018361590772006445402500737720331843683638169002392472315472862797717672194742025044711094004600034434312453747815732799778818161702130743286671509182617855371330036319773677120370486589010165671082228000114718987355030996531841657748515430451499164185824392487882983462569451980407493826852786324484937941286869023631491347551162962356721940967310867214545666962578726845920769231343601658031244954949368099230715581884727154654877277479487811646630384592367340959680324123476732791054624231338119262389497726996909450580859639292630365133728461614152754134104339070604476043209746726958891724313750809439709375061700934933573323773124314826328156516887779073969299989088798853605229953279434257070153872360294813431541641024128860318705084369559453257583946997498503130269429376194198551117406921674886583355904986592832069369032507567598909642221701650734696781733394618729308608879882662156641207003104972836121909854800316683097371832880900859177758567970659911630854843075140371189965423566492828523680417542646465090259990977133709552774591070219703695939336776338074593317583654950636438366196843682288262976667316017647366851216583365892098714615056816986710498424998177919582709150491051673218404592424598755253641875205003241959203382961278961365305174664955433534560807027863006677956853339927435146172795844915343074922196187230342388684677601852327546778590035463556898100238468489562132612008388835177522575044953549965715010700875782846083563457510843903390307846059961006199362058808093750946846100151604822471327387354454969357774604094992482454439146871878735268092243576542976949448507157779383350611809584256111868637484602974568843531260322200397100820776927089957602567975116757359892459319744163197039514611288908194141249247372245376414891361713582623342165721619504867579516345675250295104020597519687320060832642418668826116520008306780235314243043687125742688190348859989969417858586200418485101065628620702387309514247512876945502165328648506372435367697343760177473352794775901265359428218091808903854120144306423072609351026057132811046684607773572562190350576660703016236485000584039275465682678304855378146465193166171138085857445564482793651384431739751880448277852725682032223321061053590276719004039062432339099380949246285429793071361622100418880616530621297313721068389717426576364202482136672697890763921782188146718550624527347196108993855201108350150761841327862821365669783133762807519901019587919277046673644939353216957102563999777292022431833570830322635440452201486045436486635063445978561670382226429058520572542201609213498543565570171023984616900930200981457937220306217049895007018362744495338300602644473465514996909196626825750973093821963322339547912201594733027580872766101345666234804190830884109296607953048497957376136334611684459893612358421463922886232939021970938710596252545163504797781436592881852283597443065575983163365992854630241464976800633695199226227750370013902095939751233641405337368127278266444916120890508091994032038673596645475733833311389341512666077543956520741917486517189874530026047259396361142374037728113779856780287312314862807014146126173561210718813193476025704237912979403706008513512073728375740981841540007436755015111162034266985794861199216871444273155479381630734796617611436268458482602358603297778573790976476180323495725242411126707982278796752314778151407020087897380160805663990940518835988922882627259772583317642431832287812150322764434985365320230113863628991564584631217102679592083874747748290086406524637177820424662958852085809340807669332068705683228376875910258190501945262813444018203344894204242865388497935457409803208960851743667787758728947596302301629904819797472987078470204806309569468870050044159675863464373320996841326424030146348587962911858697595789971503659566009814980968642231288342284890476153172964995951995859614778737027445306204745440482014181139969154149113822847690864281850345378477622162857540328526177017337131854597341743969434289062330866158879927482317773101821596443428113380540851443841970384875170602930816251449040444494186263302473456638754272155587369298085329665151880017371075390129509587941274223383271011337056931547812477973599545051135668220693798608633016428559892861253381167045392747758895718140266593892083646195369875870250828009165417338253000129786551998007839453194358763142451996837647664249318904444671979657484596201221592162928350527656807165262077042001195720460180539790552994126833986616560506547413925955894691565543577558271562647321701266088335026251175792443850037277792779471580937683673788422122473130343386779185532485025292693052604899710140851863302296472527308627575581288278358991305810636833506393328808697721106625275453403146212422282099154060698324412270859849182615548592371296664161196174694145322664748310654202931506431795779742448335353350589783394215639707905199378449052603630120245993705853938602999887829471863861178843966868324342778019356274275283603378386248180696028996561524110245550134518346110249860964128831527567607353135987394787008354337365012616862951657795718516049888479938931318200121312750084798369806872378258765569009053940751820103930045206099982555432353611537042253350399236691113591079205880879966290964544277676619801055594898032681583412199929361346230812041306053489677246322301126303379656766110481100640288708167430652287080542835759755964866945899260752376602458537973138375755492144261711304947468358240399754958071265053350871937276594812137125860559994803366059842676219821202451188886999450792806720086336168233075216080498214447754178859109372501173906720918019059885643427075724245225444390082584374369085719144044377252037869163093960788399430547874857468732736675706953881799132972305355377663873086029175258840729994374785527678836798984637719722565132362423411967331576375120176622903713662814303888164986183145937205153458139314857162616714525216193362330570780879581934249423899283982774365128196629199040859805516434781531081654001749402810978997916129419085215365042338604817308405392663589587635295050638390476868598203756624210894296743865984008913003336527076050191456840222452901971792640774885877295276849375124419586819429703496865200622433897922992396938592048982423104070710316772162764187214830898983171894564650115070975424643247900586166985137340200843047153665773899924769147794629337600245700135782142924551975186084346033156870265175313324048926802851928686112973208286382398196709596233531874262908557894732232044587629736008814132794242358562406835095513579533060466336645453962383948055130041361663586523517677796882256770544728246413921054746442306387306734158128120494867638563328964660607719450545727220032695445649019478103177239592466576552569921706890514552846339161041153449311893233534467975464426893889475059650605404806218170130574356933557101015616337770385641519439126426915455166983640764119677830894613548728392656664864227415667822924277905141617497661113721490055252623099923167986151824983414439437881685464257435605597435164213335712462696277727575271305762386866159146361516977066304398147356680901433702184428272300510866986631625614111026132925097069314353893692049290845444197876726195624188630090815082284052661652815558782986803099875375136987464571123714569894874116001376794725319858824298736403821623468920791065539348477228259286312062818899806417876377042946732683501605313363503599181137669185257474318078622900784506078567282733088312625998002674982248719536159052942363853819830136879180041820284053344256256007110075926104178089187518576682826734181060275119177655810481570416370952217466375197497421087984694181412836390127500506850067332325942464297281417670713975257918273444853520264531950769105400973480763951243592516235757759724385924514291280552960258953520085976006012016734518152377175241305911874501355840738240560263419419640358378779419059016792467468134212474994137969645296559849941718033853920605840984135374335146682032394064351092217309250011241210731773542408577036141308740233291412802907919892225949339156678649204179539654413118394936747620345123592045474074832544212865002685358912677760153593821378840668737898657865770340513293442040235178801930015955317181521994869758803613630376062957138584818451670079613040081221387341414521916136261373138803612468374825082835170396720401168282123027285075873911137872490861962410766106281366210469327729092162650188389418273907595804081944344241914171048296466665851127985537319386612040537289108843685799937896919996427438811361456721767711717585307077669090775074712766630335659564295350999965165445579796075946472810363915024263810489816598192852220155405727036137838901313632444237493208826185745267789480236330827241262863952639727047553360148233902800036909279307023393400839573586545538112706262127354416342222791700724571548345853800566447319204807488383645115175521115360844837100506831377151768189681298323141396268014632839477360553474041148207065727821246158738150481412639020425210978854027790554383886625966039603225169762025368808484171203940198639198027871075540475142719172458891692227976255316568480332020894171800500690619653497932196490501693617663222980032152737223412215185452810663177857183858780846306155011873790492851446883994538673992105963576880450454350238026077546551074207701942401317939658177680311786759616049279376036317004848399899302802651091427664528882863736292580301019582207098651711280681742058920462852560105091005327064299540182822571001403422950743830376159366148618526109008316285385234026240563226691251086256941341703382264155461064813036401900812841391834170637862946646425281208651930710031471712992457096591505359022901193058871899328824604792769657970992629009217631546598733502901543502645475574494188145976611327087052225548647608354533751329048257016323101375246736386382036548870299208019494752949545953983164840900111400088489781221565172484120211561890022051616830685585156201328394076715677817897415357907698558088374910449923461770147537178575145337788291745086511779881036777488457294407974316063797521952651618866764286429455834500624759187272819472700847872452604972286859934644871619809194717782938063212498762557456887047280729604596935230717014111038762833236575038379795643206094259387678273950755710302944926473169294055529090933825560214312008350217093806587040680171134213076004581111480433184879926044876597808182726555163256809602710108920501392635535074710644060955385592361567059473026102905540208515848919742533436364287433283635547454175922071055138888085547671663552380732186261780768770045235643171570066655370766089266635243400045524541971442353519533490609152024424162106424071054962703939485820394565742838060441243916262067257055985989746512174490984936097409877748639518459017350092497234802835943205855206711515760157020998591892812917614611553327698111725855813928471966483342271640765220967133881090115385034893851898830120069845622292678061229567344205030113732476648788369761649937841788417001173621385966369242995884181409597577251681048734402809398479219509566623169509797158628795753057949985676808918549905254102606102053799247038528352593784604207466521318109645810470712334088970960021704878426970172202052665201104934252329877687145620522485123138494813224818547646681685417794616147843001161913495354459700217483054514808236617618553371234477322094969323271492894139996165102412782405592088199215814203135501095923065958544004990557566364079344233499592852281026278857740559097512970856570915794182682470331432551014040402761589629344300030049655454805242998340339452783969750892846463712036504428178371022608800831903567278438304293300992572781134509858663202743382847957964546848905295238322241297832255711218062115999662343219879314567801641716677153051197065649642970062263182860073609967134271794658178994349114262174249035200819634210150392906129959095123359937224315820544710266122187464361934389765402364614865430317306228986021559053796571569650629176401245349124350463621487538328865350061387931057373980507752637109943614472068235145576361229142656760334529488961233291019255921529560700037864550460421484996561610968964733116421766522634588131682049857014117317719274235887526845024677111278088075960551742944711838050768187919931861473863036020519976228476557243865257509006911196094665943194692501915404227344336036118533420162297647915194713116924643099070424370997754494424007121006895205275264687704140171805990628455294893026688611711081726374648621391013667848201292456168585957498511225410361692023188181596499509148142335761826068403169472936575792510236927985437569723158557663294424673787053461567084411279822001766901243526008021176331937054021779262226279737229182436457564135357163341205340924090150508316748376907157968429787133586426300657516081274156101643092362708599967257180822065044547745729382958470147814615453182871853159015138139517294176185911796037510976213440654181180642870996890071412625589036169533545489415628608269109819400428151181149789515748214034104387108890530251527585228019132164788856771602743103806081199301537520422167298462164246425141064430233168488591964839438258638368087294040555990522416010559803000492165600164066125774630670662263443189685535456425285542092012848191331799626436363396015666618998107244589088793360874285383435723082075243079461626191391659027009063653214188065266593754317694305141326758858426315690381615217178594524174554167649766930572745006659789486869814410498916833979005857432274523827901887878718673486502867004798530714102641429135462016764626321038706626634331663246447741478961165684843842655203485570053307655443270481983376696126320505583952340397072112614750546731581511889969181274584670349545489628351119888711847233727310524705788166602312974944138726702594794056259597127577642847350832894101183913816189718176327383143565653867555183187714844652773887731031493975115658289425196307098398922439625649569453080513224383960325707943974276085827563390590497616848600020621919155859020462035880210956541762265803643570222022242050405280422361220655926077178555772978374615534206490374808124653061780013315247453967610559137315944622232166750407372475934003011547939134471071139892310356929092316317908589157688464139279291214047345159579267799283703071009625756534355694884316201064576606489554038120669773855191523249780422679744715858729726455486175817164407170333353833984572131303790424895139370632801821476082681298980052072979067297289130884851568229863152746601390389686158197618197393866374230166650322898463587523810173419386027729479399056297175117322777545661491826196420467427642812715577071732064372930290335740926633767088844812966244390130612931473537838199175679714587158242390335832047855696176671475725913940930057952305992598264797078865666030133812340186149136596974654529205459466478796135372662292148855389960316166426403815187145481676018515500967483377569353249312437386865702863782623822350282069065780652125575183702302680506057622981566525771576701323549495596996191931834127658546958777668646335669974843678531874904727797193112903820249741244005278132862336466810254018985415345204145239669016435817640249375444619305472019212290724934001272314781399688420790328083487942283341613352460191683690632860685271592181055234551851852344604690807357321510521873003358772945261807115848032639230179271707869368983206548202745020037903494874936118945355360275391948667184817891210519342006715906207137908317452741438393128076861936201010010298815929599144071616474523663532211630649783649832876896574758977384224631589533128446842970907798105676007350966452346005273366483374300299991934565505031471257843447622793028939025278469602450073286750080782689794574566643851194264604171810487189402755480540924083025682928979526332990805098268377481293077910343394149003155004683906335909168327423703047978425503933029096285997294198400199018265494347425925242879626240210675939552400021117511279224615910632347743676483918349212457245798921524698336245019409058206122285688561560385614881284162729243714676030547937343378030967832722077169350074779832385893787747443467539534118969533830848772397900490158019837422222928147208049431671309046012410047713375422931633441937364933703956893460150492084928777421863063602053814740614117764396235511159927776332911658586434834854062209478417811117994217102913822568250783448274351904631603371689462841471056744306568075327028373754439933194910660169120356834082040987574445513039904593835828362897870310955034849797110060026331348835254518857677012862447019880679835854869806753365429199393655840631041318264441521992500631167749602712999282754580715119257034018224433339770483559421805899621581550292989029835936555803327334038303251593897888851405401897601758099851641928103763977685053010712774677044036449786128656519494286387026260343805168096356671582828364256133416306653504399110974865948350213861840548432939127403956033941913341295914710043541954709360282793811165006813402997562118323006476971524343174314591085267758313153625644443192800516839019763296749174758513446528023769143627812255924587756029289852070637377177739918557500142393904617899128627926910155704736621379297908144410962150771923246557976801564332931077703398819453412436994381039839911392537274852903381997975060707803235628168195208486656285502458082116019597961993349880803383384063757066590132367410065010545084756980719907754649310506811294202106251432995257776292463097929903263494474369699321206858359097370144457009186786876257824409708166313567779276729660963703012349120252487806777808494175166002772380693009460581416352702454729511487193191259763789611268963317926665498709465223642601361200324068152328381176567264832056733284883572238487573863728961081300054938008451017723193305518991474180745879932470309490583603485053609339942998713697942806556967342820502235621240617857193635352059809984499485133292232074875355948865159644201611130972838123119479567598575069299559201113315615890133041356956035140951365173039098153140422218354784832849106058789803235529902109585156767512206753702048970766179792989043308835677084349120292971744675439249795837450744221937337457174844673999370113136593064800817933113869015906180716509458006622666545422966542907459364421616237965427174006521955900633439439990047648963666635401020018384524566537272175632271653818172227886048134538317960133841169937366765279367757286786041389989951417718354081026011871603065480643633655141032922837287662922258607061540138787749333305729753303799595067280722328519405398992954723178740712357876707439556308634742364450729819922223165876833187630600655086228817496906266402474905222292473543219511167273874483859672261066563456181838624424170721747071727261626578577862865760120352272453888766233873058147822190249581061812416368403407292176827067962042233117533289532633502833919779969418888241326577671850537491212183214005289065030714084675427511369570016381061833630532089620578527521702664438948159883122501474973313868005923453640492844074986983077337966616623730275385762386015978505906391805541232630942653393211325970457249546609028748278695244891812469715689208914965076220126760992708890005817266778423587256278801323797394179970164063972449595450960468653917223656384007556444817455211531160355110544803148503595070721050644833628092331900531772200692381245640471399631152311329345761946251723576074270291873613481652801354732807608173917450754033315905797184505455680244234448875404198281383150491466276195631302309352279150157522063158813202000077725646823275791643535632958036233201544115667997620370131311547955647782848011062100266920140849605519638719371702532250780635425561689570873363756996954574543639603144449779659881739911605385447060268455752627742644005065679452382909584147982556736291431495906941133159488603200605897260058894734890877028897103175567604689050052807157516741510674795378393651928537463944173769974305922590371439795148414102195800888908850878825867674260977331784172068582179758913045004476905633992774212389396727909908845005174834518906074371344091285990939622974956933092537091570304887681184914633093382161221044165205808024853256731124848385492778809683080701470979055653920285986331096302100864858293767240969856748819308184267651041369832218653020666205905772639509993173911892267330770360404208645081010759537448168238598286590308545574184112494637796892363972433560479683960056959970661113849065377648857457397880557580965174581668979846778676790022820456344682709718454743306596467252829628011466100093555782023257439995257249432166912773055123242692288670429711358774107114870598359100862036882117096057373228146552577404446862071186894498097242919118767419699149357610420070577773791368512585332099142375327882914341734474590334375944713206717878033443132011208929379304141706649415764056287734146750983202960411444584950890126117519400032331400598387760995226589351838838185759218263965668143563315882406668012442950605026357030850693615999977087356869533935457847529805863804335354650896280325254120420692457670582114500472269233955794859321375346052202874365897955151277239637164909419015976853301773974345840157760417353171549270115403417590578321769306774168500128168323949058545587836311387509184877341347369095494350549382884950575842829009990452984360812584644047369085654309910226107558079939387276011802280445826667852837714350685632298287890930915849205821260341558531517900326165040390988172749020772219086028585010039613325108525931517106533937254386073382643076079141611028278618382990700501567603411915011258274497351137099331783039265469759646674898179068447401744289985097064903407815856473002523153119318601514192074547596888761264731340211346645832168495258989279158384657013662245832134165164776975103285640302188469334079396674677238956676108488184372075909194792098106154914740123488126258634784922693549982772858361177371528569936407915115032955081391491949014172912833600542854438816134712662779865572487854595723724105241097960482520168655320946383577430506335698524469007766136439795717368574409660665301640686712169182336613052499446730579918485497978349940662522678307437859971491714270095609678636556357424696099032590621846829507011557871914499889517002629216309514298966164213185966525228194937329249022844003533672908292831126217304319378043061168321445776401003456226749156685341541740058538218877762888534265647057293994585480580786737934731581818424596523481717423543730793271433065448362925267600293429547101362274006191447986241282730144638386972402004818043517710591825720149439923925069203446261284852175639899997505453378749526662168638080185618033832459867259234424625868672454223184125191995090498608127764020907547429119894138072545623665952925323608404838727228258645139058012085761409566081792985191695920445655766142547687240250431772979835523121196519780346908266096407547235598993886852534170424973741294582693726903478054135893711062232224062281991426144827166575148739386498466375198110852455604689352229760810528234680954975236303049600904320291346354751850666616409568269445386841875142677860252006160067064630314745272226154374614002740610869084731589081714393348343322240792494510960089494051724289127536368071718655069040312701101255701912817690810628858098188126364577477296505895707608154367744705144195993887664425605588898033811666197249380958291076263958289263879642846382099882749206525753885911111331394621420931571392914953974906368324819515628761704065654342873157866180603657537691400439988983222474951904799683008949989343554192387726988569334391709450517118589100486693766910200409854561633717108855127284076245401125602503379467977966816181851380026704555883553029857697831759656678596085392723908726334653289651091730058989674554124104954531603034807691051476924092728036339909533481934031868764803173427370629458468498976873107160995271419395757330696340722431693489154887786456554747137329834409243748172677604784420520325889704241943942794095533674917692807783870866125362166457705655103843313359610982113105183179245878588074507717228622133208339460512978033360149843579990458445831424349810163036203979339221731715047170150727046654698572272431602456790046926277543830715073595375562073487899665421201556588176644675663694148628136525645353026459350876908488702669085271825483648218022539672655716936099235842433684930429853217494792921188161855597076748601137639517338960479583357429509013838652607578665367137281998397304408321408477475032801905734429955526303821746975276845579996527514116729384670318847568132044125641164496428049857010984098781046964295454113969514044074608625409079980424419575546826560668923855339356608267178094891514431215141325977527726805209520552073853568360283593924935732319928312980631493726716880074673138049655845103161895965780955236449724668635752581564147100227831387218379397769595422346306888331112124753988171976159029758638039735971627866935136195462786966795627348625201066666902929192796721482751838810353700884305993651374736490206744859185007390290391839033324261373636775237599700305663999050342572312953673763728372882532912641915001881371297213045573707878015203560176040538838263486044433720303766579180495619905607207794231832502475047691650850026087682260680357419910096900391588159144261840657711279918253259402693041609710815841731080667080728982136481389960038898842141112685324014655734139512869531421881243641408400472870140147603381545594425840326652435214418439699116410439874574057147096714298849604009341570600922168652150544009938850227347168915583571084164553929785873207934066335157140546579965227711171314621518742387441717999765885178839276799715859254946118673306381836108277436861394333175565411155217623288947268948372598861101816952008219244634709331032438806271785198887970332671062739989419727970502853100983559824577606014569906472766764140602887981304025961760366374830122359699293982214890251888938685120919739797789331290079399383368511260822647102822997718328476439244680690167486542885212003220777114873962303204571294020003917820936054007794797129288127230351573300058765129248219236191818051384197688508147146468862380394712224118183223700587546940771554539488048636105099852852017891323601674398776125455576245309915145588300543056668366029941744162752619066251908583878239774059674469307677040075489875412296341560065005855826064579251797256667938172613019681209706516396867386856259341638381285347825516732604054296874232049292241579676864221830645085718750460040979187068431601550572341624203912034283180479392233862409792731336421674839846645996680121197543042116450651549295062759179349321147655297756249367735801274030432221977326152039755907164484034920531314360779074217499201215478804033063180181490803643938221294648508252498832025224998032244417738455113767992075512153328940544693812567504275873547391788092862964172027100886523367161314534731886793342664675606112915161462696707406668540798300056676706887718830523061982834757650919639990001859748011539776484867985276629763719138673847734114838609359617647288263356915133172685560535484667569888244724901082333820182185392969267015456470812179229235745873592443997850692012666496615397588407878328497155578004667645618907302026466348396302995569061647510448056121298340560055302632118030388398164996895431033375011977616002881016303846063575040313249081850711216494478666923680187349122243860128456752709868111163108440520523125112483540216198564492648133768085500804443464952714678293865564583946698574301378393444425841640650788082323105407663322337570760326640166230076446190843735005159759809001473743434196191996975583762358686021035863665481738064223322468222272527798681937346539022075297420911075680402274505299915842887446771503866446945499506631654613040385569629364713703953432704108845676693104310858333583651488328754031480391983592566758926701694248091427690975734085687048605125457666527157332295197020071364639249852625343299836515874588718748727253845935694700105462813192962982388944782960548369594261451361471277170732410248747145773079162913961253718357967865588436031116513313028060928937325405987841545372770579054730888106384408563602797836572511237919228846694721499203174110935074123742533440784748092560185308600938557889783945145052156401685501490305341743144159600504448056398501371483816121566098912674559184209254288074013264629197329466140828393517978419550014454918827915718814708244239806660423600728700586186548818845830696973241153570527563202419135992042465775734144492965721213964915850760756208746478266045705873386200772717733140005794034314412126723736969397436415484289950875225360662592765070549773258857378142270489494219993811628207596764513220698575210388321479229480085157468021123383712256629280171391276613998141114481037472203464989099550210501817186458051397656086929036140860951512570701336061810123193002119664747113312973544726959744571022965093744793648666486161723777540439469912262037151313074005160599933872327115634446269442755901602619817163957680717824437317185847852360178465910356864676771229623647299550331115852421682242490972268766572896201995744721440613323993402427952309273783429350492467922936504922264654138436997144258368407620976585080809606041453468424752340852828759289213361939471721515617279149061418118894679763680320928255915194781335607739492555220396129845309937207079890490462104479001598192335245918847039046843746719495344546991090662945940083363084532763394402882692241426217404803946886404167730868518559446146153400713198944271458205128236568498109647689905376845402201911250882615534455136285349872949295569246871272081403395730018602219835172009116077552514241774333404369850281428543842367452238203922294909559839619796006965680821093469026160070623924428274982605945983356624742563316742332688901603600732068354981761844117735327818519884645304800974825708578077036224243631168919114670703723493764946481622029667842079507404733542890697849289318895182341275196271180813932051039021659660979052776943761550542676417672821712505244403753233266552291031893486541315464023573220825249526947089888987393079832130672937100728784830649554610038956811038889834875480662274870307461249764680055619509865772374196577663579121273332259502926385715847916458857652639382209538494060706430048945716787812576370218272770743923307508146888392115995354858376406773153550854267166686110426339672690591545705511214154419294618987519154138207110563615820548718311004153124664939469227040358143555804511913796721112028329034183844615430436788070845844584981330313207009804149018851240232970174406913531291128689542567833946219915859829357423806391882577727764131198476701806351693724998552270106120764321748757998350299079139908044398115881377492767067470518590365670228014929096600530945536797476643166495558664959598078054986317667581030728619320519748558383988716602424607888015676300469415028247892170301595987600287731755361856540066121317218590844591895118239293825388558618683522136840235032328054201853875931057362728630620918497201864388129693426077406108173723761975291461860508405247687248256507511265557013930787111999902637615695084533478783860650418953922584887672104006532234978537481602808940446254130066147269391651870304635336472466396041265747715786995957018306362341286014326158258873524869205071799696977748404567506547099740531914436346897718922956920397506367246734462772374789278300883010853762563598900580849802718929643744161517854909276109884988221886575287935246163736739729537879854368468305333552892290782468365808086354702882792127928067245263871733199677177523456596344998918219190630120664416667438749027127555363677913821089986674265337081790156411603771023083906043746698415893744532471950662355297674868827007964437159154746706385801111069179846135543936650220628636712554660093890360318950981291772859779678086168325773264212315787368536962590797757121160148678560767445332933182623852382106862741874123846983691466590509569332863613081943438760732782495233438207942006753208569168016399146609894755840244735102305592120918992986557317786647423224888873488602074361493885395769836021202807043584453714850082134394158502840992330441457715870305696338416443441412441799248048581491301401985639128853825280294506401821607810860045691214471056481875450912254007729119132590975832671277053079412763548655430618644105043192412200716925774605095986539344865563125592848641352384517727987867564497756026309327413412766529007576590152725946462109374340645911102394850311586124970827616497486790410330983113952866765238910879981241105566569679021975490678494691124635355317922138727332701425236204477402806142170494327166007781300941027223266366383947927951104628775383441507197364611895098449830566966040900107863092918625039792605981110285674692663567076209424413016262339413868011312997191650429130381585137196217575174029261800526253580334681495936921022806404859512655330847456195871798082077983984729802899768986073321465365035053333495110088859044755064574006146859676103008520907081450360075122181778765559114787515692304049232413402696470513608806645507496660802987934002464905176894230271764379410312483215956686674052150328143331253744835689985567521459428292938050806956767892100055566830027409509381212883938970992657810240576428341681494964582443934964007602713151819032236664172583668185177633747742498092152963055985938304010903601428984016088951415691239127574740814044778537067253937604189952064066841538220349621124350072075928504062523389074292739739563100222180434904591345255332253265788702298915668585362292884016224626196988685049066394626847331509982958395902306616127062381273721539175542938345520825454788298827591899835951998863668862276731942422316288482078883749706311340595050693675860982656279382271172189336655538540770712280410265666978891894664724707329795933602485246354542745498312654721587993001318442007928429574282389689894372398585242552088099801269554845044298775379892283475402029994613301196747336722120573165298005672786347519790282589423901467166930405884523644564587359686235406057044525143664621697130451527524740473034741025495910771728139737319811984929710156822589826197745218983496711162525079723304625611858885628051065436739999292323540425819849342031011907398364112442614012753424794046002462186555375471764907583044949670942174686374961378541016734298683442466679482959266277184991829594624169431276042699528813281316743591094473114555888501842191239375395282159246888483736951635103464222809522212759786177621998968560136212693735558348206584894037224200189537611861040159416758261843929548309720572388367385257859825444412672874213367159849106352277001328334001072647586091822684918231356627620181708069209645548704002541870321764412798088595177366357132036038732512033424438414287943387177450343859460047921121906956344986772470481941073908013861257583779562872914620339748473749464153268052896368845016982933910154787663225947790229555795089082397315782289546217891745038660912512867213670468650996952766698756030185652716836655911293523563841001850523344090205955092401137220232458691473518582955275612192228788985923032319727066224505896224095828337039054422229761608825881888769762612899883640016048947288476783482014053218745817190197698756966263307258061526802640913718866501983329912946108611390413860831843517923183800092087637523416315885824798002514254713983535498744440921352735363628508078424698235813841286274528349329444655915001617668780151073498062307572209730878192598880148924711027119326121457233301448796386938169226986514209012824239877202555253939433984159176263970463631576098028588637561990532963090619816254339623486795699606422519944889097510727939468790513231826027133887736542303167417919023309702312636684937463877643984262542933249013949117857999687902856809445759718907369474596205163620811266815020052785857377349000828454211716371673086574143300345149515423691844383076416015681413517899157325952987850930767860440457893121218159819188648218188127172528255262658720920024261001477968169972637367056281093725659984825724897272979783039256633928289367378558501900449952185314206522028475067996523440678463939048449458770100955155692706952366985881184641213332847128946495371104021777171063166541372574717133020520898042670374670928889518341524733186595029293789498518465257214117835119954154578553535113205278514802035042764267217591010131618366938401645547967961494726448688569111617116305999337960330971767818948352573968163605577458704601840974091439601416813665096103498186615071858719129561049983946305299657978871115536566566965888634798077323583743240175196620954756205765185061041957202315100283990663579135507320795704212797618725596319108720569817999527729061374021317319053953301619775865485039301011032624323991844772372270766944629162825095504254779073821340814813396905839463959718440998929908158861705743188486478038712360484467517595062642303041110635603163858098014016911269338724548992703166598427654893916992516782833844137091014147834453807813002139255467956742475592831083338769800097978227498213563843273997768721991434357862562441389708753840046680356580895604264323655196167933563104158051371887862500067278615619903965273162800285147754366260575593939264766003650543142150360210502945973644785099656980197813521625036674058808387196817771325278581830542038748612005484265242589282072402786307365360565642325682022814452422402303463335009116759916441067824907970780183900629260229285873797829654234478092036259876983327794533232143098343159685276824781467789364658557133669324419084077856791943393502995316835005076315136820099711864773553551003203016839878846909312862789603209786634728764193546520719601261940594402631636996550243079115920715163797521221130305981842468368217350834772215651731223612516860403772724669806781146628828096998220148508373021519776419238791614820393725444701587633336902573968888551974452052058106946241240976626222735279174144431028875901581495753006001289466419993697665212848179533885531407740894824216907883911109795162596404159105199512473057556191791442333216698136484639196460417057550496514346084084668054882836711436665670425831640780608165932870609306517321008066084708067368104957336719163116354776438868285975469419982525318767938035950323976742656912399533518259711892464897883830873486532846334606666304442217025579809744500831812333601273051575986902176029878378200200153163177199494694080684245355113566022251737750908631708569934525763821517647725897237726132621951128022942654446535065045993788139462131953759690721436711286295887472504636785203415979737695496141441935131022184501075290950659522625925401455632548646355194151920234300461730443611237066034096839225082339214446175811646803518399670638498507211998921015069840254813138448227038034500747659557487603619270691479709646311462207569715459498941748636289637950457036261084829990415263886870296123591233548764592646739754791575754541537908621523893969941591806574565531729001703261901883043506343982763172930681775575796494494132892740943226057316828877705137919292152226086828271693480527077761883035131363607138180869123669246349588137852966482122525461023856718608122459756038765044749790817684271525953544185089880723190072033456079729310430807162465649402412264571380425925116071203845353143586790180688009987456623492541685328799593537754378870782750811167395868551183771865145593049598371535397747018557250494647088249106927113339667547156397674036872275806289860997919062971206528077124218768422597338428201766112980013359359538607981213204595857126394018914580508618239673119666754078553175050505555169472763986356230972291686120712582586827022988290405415859941463931276127691888477906576044255727847943238285036526685298370840273319268822585944932939861113328249169896961294313159752563132331501416884847567112932767431378182537155183390431843971460802013307529342741149264120977723461420023421620534695575732874330863673340702911041986284899597983138939227019562823950008907309413403575721314748766815745763981651831705580072839095529284645588885820817022429408116231949515314335228373284618090941115196687837897979163359236696956986414981865868526662125267268658617487051636233817988416756677063617137730190027215722624853646100215712300065703381377187822803097577095042080043631374618018235649481700823808743729491593843318197895304454856356691051855932393863867224434942092017988677280469726597364604469367735484229794808599273342815315224550692087867871750540781835268379459379119884957774199414362993194913430233553732052891150938747126329086947225651349791787190974271657157523278639973079716792600862017959342214620913249550863934471373145585214145765777789751936618575438046035324305140849162389710893627274896990152395048894405971721789231441513054443989487720878414193529770577505001368830355805840858011863213604994510420609196651995278141475248381096133131584204800748679871858368119935555599292525931917826486971828702646552382101029624433826961847174999348228191263747539380321840845531171101717228104984556891713191145085766572417272236794413220320716667712810297648452394790481716359098452026300605448005712814089809289819754233396966082683284414417772813091647172025915541009421955800069251225075251742454470518718166616143427129970926237198424992870094165148620531691233701802011064873682770620909778400903548575482067985027914065322838379442215567433901284549561116561989249878736440665463725042373158861344950210976819568438665017916206814177730931797058939105273910240289897183463353921587149310887899053969032626826748833029634153488758384205869675219340714571980883190467723497831222243057177113487396431541021135536059092368115381331138671053727660568515940799613476896228587055445271288285870263564024483179233089505091611689692332728915363189591036990579939008815005408007786466104698842251601163446428569710575497566456033967699500580459857162605428867323388814107208604488419769869137749948315862936306456208195192533803147980149518327324145026059204903718767074857890022052388666767426012204669201732942991087501665542081216228870429925020572471026607284779709396529680804337324639834761978187413349888741569757538003821478916605071768874416934755951916781058785510153812958068302575592120080995767886292081388262476668264924546427071448390267461927890561467491026635231371149531549869038989865331810078573022905850793949448929607368292256978045295389492406922617507622153303854047563805966544021756115687211117538143873861184519019068169728906986108398554292989180070941481907305803326368777586691676121822159254336696029271904074500363473765278406670391446148789835896619985319674465035876292166424673092437420352717440128416938068272708168645766383505542121821847444502007088860902543761051411527930060713469682899117326241709204502509508354051845627161573669994817591685485474290009614556551702084453963770708641978014723744821308669554014396326167651523744360470379127922165587953472241630026669172433565376790284298073260019245108972351936197987500226643590424582420651926541319444854375202289542821251789271229126807977138167287684528236072240434821403398170845701016259914651596176007620240866927515199343543743525091664914317398941275956423102914716603277232592914938366186740399961080309172130585962627037500928362666751588143719930740793649953961952765875382198923213745514350317600561782552042149572732944496124618300568511205633879914818186365572014646050631199222826852399704298183462222576159781865591023761001393818942534199039308098170127207114997148461051046153515365397668014671610847129940697035430563167417673851581197201689289145275133800121229278605035249691830917180032930611377292505437316316473699741340755453156895874501025964398980214557513845931260429035363399628694170465033791956548616188090580726459144418997199679472375809006202261445093000130440414422874090888624299294052879817044093091641410752287015211055686304405857921368926436764546837099545955671112403994631416719257139952740379404808246248457699415869032063591713068584462396573217495886389582570964455421629418012257174342137731896349568237680620563876334700924639619187809438017124992794276484269249513163057804696201365287918354933993773706159483370101815214604949209132678901081231153033988325329232655325825178670192054101860830335665083374454920533992271496190646638392501176661852082780748097743673390068554794334843260019083063510101089761991716583963079705139535117460869653545850233190335066474567416722264136790569724417038760843724827439094569002581720483098050688058528657993842988977815499123575279584174056682513912522451550914452663501554050034516857957946127302335827993535625356533325184267662043842779841809277165702959817868264343813527111468179244045839153526686605574048045787950883393067918594565337229783274485654316221925202728573430643020243684275523347000279887621725458249904627620140746109606077595578267307509585144618820484834865334010531562550776731588971697992922004943961194340257907397123727576240108754961347022581532499531062564052593849115179266015566328448369339518611776494405287902559709429601990859164510883112645455009756964974304856800335053965019163783460773751695364786624350675979992149382176523808896000869342522222974442531428040011267136559836700052881036617987186023552017969077065411099540358241701029491610324183803609340164719388652387525430778597367683578747885989489731337113048288324894257737838298950769801485167970388212344297318599015053354266453033794684441361148678794748786416767549250890637374006929413243327559471806507032299889474953317804865900554382763757576784940282431244427760070508861284910615311573368551500644839531381509161313691171786439576808321779807887237629946508088147665147347086629773129205905016899723372333517755798489050355770902680690084805674994592028722935572070717846760581133715600253719081137148995571392161208059445589231624675929209121708094619571250040646393956997703790389125753860497614206948055191481836462475492478370653215204479882936894526102858909349203305630635344538606900701639406552312214888458894316528078068056200838179310918098145185387352606777593585577699157082895402553212860224066233235986467204540827077094880209811730520189484885541787534758913840609782519537175727267716105704133957151709006939583998605592110673475537442628220027727512126574674109222053687097192387053699936768980947323717483298459647891088120772752651763769517475193699599777507374801081201309083751088074310746987496324281717174876514781567663769693307616442583430715521515665033768033594742548320651007362890664427556139495687487242225177362377687014441759270784997394549607241197281648584177711707155951136921311874350956198920467149099514317626583723320123056645730675113135536455622926013605412048470867111773054923476317877370857955950554798916954533358907617067053438142566120185250693868729130251741898574428561770894244544085036081168601867202334260008851163473795337736881311606684305840504124917814392696202650065419848955555326316100208213378562480590803286894985114448789217375143737986894491281475966342626752421672460823190134209514460462241149619116361281516128711445700671422975826071331748965891406646287348762415588042400717361585186969140941663362055607299327936178206243040771099881191272361537862888379887835212614982323502507598763123991979405395122248092739154040217126284630000538815978382642516078168161793017002020495588594635239808240133526230239581565154668610203632188095812393723682727442897859832874035822351566753321451203592158692985380239487611565300370296676831733190361293033611676369523575803836116247332592026443437849806854932193290896287456563645364185024322748461323065464773303063851584271284359557694487486157540981823619315891820185955229176862142411226534567976958742006017711273987749178370581928504980799953029037140565102529615190201027490073143756367902324968445929309761187295482094143877799559144506425166405146295393725965078194778862326420563697119179490058768166214330125993787110299448131757705046972004420898103904477709780785042043018389937116830729207940210374815996210521816222372032981901163782098755656585526205817204989175256476825593772043329057106953031910097594648523385303989961966355769876283307034710647159733436906178543857965790159975526390791493261513930425502708226900516255450373254001958913206098716370171772508851956688268666611060138473564672983666521692401666001095008917818857506826394406292582681487908300018264220970239640353421559447729417676369008136822596197970886450674242822782888778342972931603956852016009648304756761393526309890932834406661529292125847077551798236572834826212196929346973891523498543838461603038885972988588902506752436021763618345209351357726981469155442832935852985115123898666028293471976340115732973298685779315383646111374523380109038801139336532390399095352718191957795827945799971136482224945344152129003181713135859824208135724843582894942756072218774166983185781360955486016474118002030713629936574961388898816802767653208433902315966354714364248153418316783820382769890274549304340171636485111205775702712988346871070898819943706217011282505412922000340202755517022456102224718320022595689837614466317695853829491281410334666865875526546888573491156618770107380858948884306563427698428629625388323170370084108483209095183390260306844378282410473812623152708166704400695831914191731498009975983440657511832543679745127994838751972932569807314584864378045272029700023049726562113156004573792870038049754419348749664687737433330354083624313682575005748351985077911265536918058742221371588289137675547665038514825181237475509782311766153933159904649421881461651694293119830077088417941437583572054812961854772448297530983630229737229862528799128694092312841964111362250345455335894842327841729283195545289369379820085437487939245606433595137758351431137471777662652664245348718136363197706559429187727309137158904479389678638097423139059251681586759898503427099802306268766053513807117925086560579575544739786307906503537824019968750961771265861944531104860529485602456549368584126078777322783811124313993939506200973323132736681502075747381559421503212740818400229786499793973978868262297912503790883833828229779847800089444071884587902326702520709224029347557938152432040637694984258860976232886913614162306398449367367594149311073828261376765921087068053246686996279650491766216172049013039614314365245599685977584608663861787529798011524774488688867413209592406217431975980659972786449447491645712700155411984962141375561323145317589467829809661649673632271591050825157385437508484383089657989435558803536513956933389605385553506756526272643774400123379592206151314754596802262228522481875353491408578540172241375265701839905756890936799868840478505740987774872903732184842030803820599665240050478471253490926965443860929552443288283441512163502274822945365511716346417445743569177869085029888079340969376667807692387139484991589878872402564183038683522550664307596805657360167019241732657316755582776862164739387096575816739840662811794929170398699208942113618377395515878349685285247124813176349707446819778367796009281092332405121690907830540059044037124421334753396166569013752542458247330730791005058331544970038555292923208595617444092094830674051622307124132428855461229738920203493135453450579808877496194697996407666656094148502933345763669188876988446276496607515515821428900160434038064407123402058156007355434773201388036148326166789113514451353398065366352065452490927795254068560639112738277939260238865008042426940425993850645140244106063801284702959823785552994315893111855749743044498719714790902338111925252370508619213569819897323356478859760907948861480024175077873147820677145716408076071730126539755615814292819436179438838770085463264095948890734347342260052684588955063284565677599934905495992274074618701807431028051329287432448862587651268277328576024694443778850940182126736179668933932395234081887670064557089990599853261354818727835620236477864723775899101923581628515223527503260612952298389126802913846232138850958786231195912292554572039773044960393282586476093214910711531069863546631914633604919994106024678678127949898506939102708368918931204000872740143030941495130579221695909096344376062568647659502419056746127258313332750111810639594111843289115221097038341120196803446586817411812585636076891875017262454762821172350839376908633094987854369078947939287714829773122980591703370887934316617401800220483371133723926751840795163637677280889252335154989044723862159151466183521528225352783024386915173304433588833922504177029104930787032559534100877401778233150592023984704150152129746298814771055672948859288026924208536759237536017433611600638903715085310183111469213910669424675856057188366728417928462092831006677779429883461960643674291354328252819836004031591825162817285442751671126012447136269166071196625521589059619995133195897213296664749378718161706193682465788499282488847148763681136992434603515323128609472792384374156043289201940547237981552074671415246201409965870784937407692143282849447896713439765706727298844115282736299531001102668684184705011699038769790854682061073578206922768414521607469939679344337485065219644682439865345121830536166166280303190535485531530018131035327929599578141353796847411272824023086193695126744931739773660048756100790326570220322038294532188615447167877215593020354770504384412454015154996317437629926530617823506539524079787490225771050477736834087410880955953338468449700159422078591595669853500791789686041542966026885594794260497298791211266551553516513285377944511365422611157790957092088346247254066248471287168707216273460829707248555014142267279488499769019290177075475836437647931231478560260459892094210385909880189496948684372228928050721590794117654239654752483696053683585109836894296612808360667423759743693003578341725598252944304378472144574889161476211859455138099202926725070426379707875283342611735673283323946414103362478048027640702327696734850717505501906865331127791866175530392087256303707238749624262733539306634452935333600571237163587072451334094672220048882576783445928585513573496884017931046891362889258950392136010263643273466747397114713370525496408409204093336129243710665338185998524735412110216987885166942892564926736991411075887927922782501393642275251013639641316221082977542158436320351382005131781697584523795637583226093925268651378809325245580839757872504750775937185741451248085854258768076353338525027254722103804945912416025769473193654341246413262612868858413108539771679368893771299867221250011572463832067178855910606780698013512265336122345708422228267759638053868232891225716571023600254224876370178399250764582455829737185824184438685919209012683034485728521683080836669751154106948781134943149590168776025112389515138543869126110038344785321930418542007710544714721926857791799086577867440923305180502600915473745529289241878039758735501791198447753246253350444226588375455783112494244827890283009290742239281001530642720557711505036672398538294155131520271854594540597406133447311308846932443297313632158826174104537698533489199620281562373135371536500304126182380362917523378875785798527243232782545412127361367647247077609139970021325608654737597270968950820054890113066743661126085211690595918649722236558182968789648203021646163240899692967438665201449558886362473898380770997516672517352649843160950025898587146926059624250771171471024404950397219048524206269740397740998693590339292221886158384850059290927694907707643346030204161509682399761764937945923239087793925869564276415189771007109819026216327453926650831600532158396766738121823643260276208767415882007060811877845796419539803614772638951763659575732126390876206159755643501932347227116127188840284009373190266609182479944077709876506891315662759129570716494747285572808724043122827676668285134560181244603728130150346849776665105046378583202756793739235158299155882241141668422200471578689818903575854056292992888122132671185935469342559401597885778417830991855136377128628071984549095446715429622964854942160825752455341757684759061689991357215214106612014852800890610705037382354116054621577428259679294403546016604938957068224227485285523584241726682493522287319839288064706583989768660246128111653070805189405321995585947778030388734740613836419740282593497368100471566995078828545146327380474734363543833733126505836211510431579794899670889470899289722189598013426691832583024843440284153913140196711474087835107341853151212164026650489671942107173279303672286525374178194275059582530194600404948160576907326163943533947435493579511439891574243741960107598589913588269382590062507878185796871332080852444592618048781287169657495431859175509734607329591285338776693105430709946327959197809674541804918571381836283994056833257812808250770282556284480420038838912762338170515370056902843837705168790310443137319487526712197357242486471835681097646077381806947443079576894333413365070165621380159151435837197557119144816383331979971369009083929882773148537149980096837441835172610479805808823343245958734711877533044076214223997618691990722412559441083923922345077373423553106221749147427323071452882370165635664695796841272860851371543680555349270831267063949120445253336598045121702175700344081119386642525927699606557679118557503452295141134204907944134892099837096999805388328131752689544904063507022460008558625896738293653899837869458408200583181633522226503691423151826142322158260428773970690417575345946219218977383842595531071058912432912478560842420000804627062710440955096092245601586013131097510680810767532257648617066979639815258625682981452084970563644990727091916614900393338424659631546782354626427670198363227989855118315191417778954417125139685309903190127909809903242109996086434763138821408451489669280568060835354309173256458795242843911340509523713504065419135244940604588242379979171627461031420134938569882128304994129757822046911324544937521495050467150461624946048210729356994254512812313049237708927608574584997203851475557147587494413577477624116613754719835990198071047632337722901693072875229285148375552663855246682158415113073645756788930167624124607261628949274176616539709865496496626474230388229258524209755701334210897001421829833225173627396940977453439198136955036800925110697831705657256791654141965464097449400153173899781932528856021629634844021482880504925170316140259770221515724322647302622948902067399133762969842936269146657399936398067909888024888043503144841231263640300445724078202445234628217498181357612056967823422175665917385782829832542920028124216782791569519552240050979554120180997763789580436805404107276772625616328948985175520645371082930896139699623734321771586042259007667364721284160615355077331616564832059304457930193199010044314848543022158552049323143479477832279626151979701720878539352327389755091564983162108049102627086027687489168154862410772208632416161807842464901599476107091637219862452820328230035540734409515650577059195770934854619838318917117710478016184818615065670294645894600118478130802454041975236221426776351014008894154011890223332801550035646785610735477541560117724483120076555751634183412456469492825842574750576839308065901029029549730519642401593440480436235063599788605748763570984829603883132652502199266893177210184183117935134187664964241707155960911989046246179788070452650808012975721751447201676389353842559952800676553608451093858555383805120431484512150854884087107581972955551535116633732775207375165221582885366558174288365133292722730336267864282735360861302574805668293068714284691684206646535384728711219972052463594783457573603215785845659962524864417146435888441092050365203295581846326137993400061555153247505586018413068299520271051507243681058116486452789461561721708164924445101585708510318640740036299779264190293748539368427701031076043191039819738586238602424049842450662785160100206552433024551545598261595824338900234313548770170680568705469876232054107330005637826136476721270576986205524440456075123769962402614870999428695723099042321758075895678990032526859261382226674682957465925808829266386980334666405369567334378024825867066391133979032735107819085484145187170219652284092140832156324816796515573351415981510894224198412742414245902130975818162928477104994397789318868992721629841955934220366147056527743055908084779050887267739359387730327641943823290842782281072172166217613989569187837551588284119325381534714748371587343298299887119804230827440483925244892377781076863809307674621491290006811167903623498602954393199911200391299244464900648839454876516335926512809004628735805651889316917770994938707118060535106842144652271384966103552207001062675745987030372614607175141283563845900695074718007627214111425331355183254011386236910328872393048330060318348893928036494364151552931042474802652435895879465119567170908608954260807618343178751060953236476199761467420039776901779747882503872499851990920399872579187306117444933063217449392299486576285153589625303361500752868741294129722589474301399712563107748799123233799558970715384000427600173002508072660574779758419301551683879614765827447267988855706917825674458428191183627716651272214485336830939682321488388769888896081273140950505557402155556697217105417784815109782580319483201003329497653080961227675934727973760030503583478852440376576541513575811858606952776433222909506301468841075310648753438046766277330919646048807779021031028557829861427538745611490607383774818784308804706501543964132358912064053557520061388011790352232669804472808323207809261669333225273936808918070122455875580024532619902635051719165585550795620852211983718887327969864726821832823455686620989505374750038865610605191390791597797715706844612946497151083347160523588992873115196611837874421583364933420674221248355556126952063678720463957682384360381918600548022645566539189616740411062670895903908909514506163602400471277855421535292899300049670966075517303537232950531966645159113920681536271041618591147091273443185802301288486113613199089585945288089428615516022220512942030357200490290493513212375246690461303155652274366430484796464713061339213440623076371847375673817295148914409462063834646386626294818181087820580710579982496115256726640045685499464957506232774933167284394424910768261769439560965595828339483442073025642053605550777725076911762265816286407033726210608575429682058902807590347892878083262698782137070891723714035700755027209156170515722477503578348984744948317670366230628113048997698044057296734875694171790507062142305191572087776992419268167353510576322822839968488043139163548687714135096533082653602857779183500112200124781801029156717126245172658715502195035221894835083977021211613613349470858712290876187910994192585198090552907308677273047101279338097379993067105860805325298481429373180305286733692373750102410542318971091670030935510798579498783377016878144337912164173297256747895851573910343067532205845060955563559855698091432859973550851047014730481709516267169281623617296536819143734332338472933727396298341919012531097778063433399286660351798080934106917890005624691732456463679940236145435033824536747479627834177036189850178443093045336293056242693823820219637722584265889845733536349837339976399606503175963870304816399229479187594403342989182035188617615689123072630348905543900255812169532310428544819211366516437370996356944214777074428575949362876689326968023539858341988627728877049164364904355593776034210405409006927134037922021826826233938572537169165824025907860479959680155955102813850091168691454942887023348719010844381088142163608973961727890829671798132162101177336789633538039063713522002967775961128836803677365531545586091079715173054924980633060899269438320512439376273270785357149258434972471305695209409309364523216645732217236389559293244876135944510472677695497260681186281756749042941846599975642757894011652909712673952860107448258010647543037721967670831990683803645387644177211745490045314000971857880674698330854550550514759258388378235734184610967794907538613932052824027389911686739264135530834207963895812312099172267147389808342354008552998544102178893724108741347201745883646426252619930853450527435381055699024998035850333675280036479413623845736182274026597926408296894466850898720508438139700133139457513060068593583169282153322769678349725488218228136215288379346941485274391094016153465654231525613906945737684380393853240693832927652732046152077319499114140039216625960243119273058154947061763251535685357472904578657194396617027338988126592506836750420010204979435264737100274466989848109351283192196050387361192164207584525698918093538300893500825892298307925437780229260238643874790360335181564972170368157496206378054462787118847305927176585160210946814451435575785598231388652110806368005283875846131671111826154145353267626708530837901334281993882146020461603250601666477700248157867563086461343714654474144104008189771173361633390545788958638576501605675678799131652823865440478653736442464104072564539472874057939623911616653355464169335905441351936627512358232470137207644678548802649530081101533482231298150902530449475131683831362560688254229378314296512639819029952015171017514573989905367347819191836331657548442988683146573455173348614237328035628350895061459596849059939260819237136362688283941855901990743675520684776439168081701690571361131777735729093453150608873850655067892273735424835230280193981328738876135588035745812719746047532681754075418875155120717306054808084629874061079775264119911960665389670169566535740534420746143336776034466447274867343325769281431271152570433368692995497978453009690595710890253029823415485029485831945182121205193887058135508903224276468275618747727879456977023395475716896785363070409748541528802755982957156995839134485909844969739975931163819327208008281622583163104442159032920202165874081416536558647877186750518962245534181262391667663887437860859247806375062870156822450787079663463314644999865222457838434525016878504852234321599648753386702833084822874716910601909346184303259477764220332604392369086712140937480304972964170144421394488819253338580337252999383277133799246153441344031522359043187523353555226564692174345547849353431319993075154144261908208415826970992634457914001989612429027852505804700208547146254133486356498649677671128183396553466365477860352192082028169154602292709815168703161551794280737527488481273740814023419715642995833774613109742150763478744608664605469821533614995999936801470205313857229257969665139890009232013349545692954079280195700370043462743676389268479451964278332554187543589293816289507475494519386526833353437090278700776621534721103033991864993133159247564876025808238538648110151174443911061318268122814740015894891993400039534264150557711175399788603347817917965609341022880681432441324385797979137301488285668168501577701553796600263075059333028722767934751170038952403498007809685921697615748489555019238894946854623790339848326893890060222425849366711009112602165109041504412870092173682471126663094818239499564765116252243052574135858410408694362909385900455561208556992820419976617372659436049317163107891589198284761190955951118238749494473951909928969834013232661831261703089671483002992050983298462377575167108698203050772030261573787499831266302510518450815964773542694533229537464263959878387863821070716227988224125327985298925444163486006877564153701069763280301180088609688213700570537066386530662480235187288965779384366667016765601684399336133361321019254969756388843459833398031931474693892128403619778294885268292216891897106583345002898656224625655818517533726422974321442891369590506779787635084005004810215775348786551529800899964730404295315695147695362259034213954676354798024626453068463553904258912591892366665830548342555310789243543439487653126675786627038391448149145418621982448750722172254066211145785472147087758976287111786100130069999854810435825855754498648762513069338121972330497849464946734356924971554407670999263411454971062726779971706361424296510704938876451636166092111555791900603382511414787295013514105949422275800918572050893671525481654058093438070980112613075469746015172480333082376702493074539392679526507913838828086843746057035192168210566410016178344408920431150472111381980745232742694976564210851195096125301401296874849503281977365374862726330970092064831215579067279247802177756702307288502265595616064560999474251785006242486495400402915681871963073869339429279105353592593851904966955859485448393532742898069841973568741833321115258143378267322236212064473564592402406047193759969567720418770563525136738039317238784045594813498849224095038111915657791092619558258678906714871043395783670403358443845631361598376674111644613448870736765751435713734177830517766473718081432229062560121852804726802060369644289044643645380295843734019177820518307744808163791327210559078111980445229360966086563855163106492635549021692716697931090566907439415223120049004037012390024340651603714818928419543200517154706425513781863269207942421011429318307118436069153552077133163525165947378608139996922079107797312607515898880345715999025095300744862812532794547889875204023291062446470984477690434961622968620417265686974958990529408906875223180416644803720702016230348809040114540896641474699776716117487028012660560910113209352588637191689137547906874395404458431116257490665887817663393425477159560756252220184662416740764874263111672311026830741977152849720185481527591040155879761011130154062606787546232451301081649300632947105908721472848036156992369199431092118772751762305782518968557098028552400303634801285290218201371396496211872279925139831179644974366232252686184552092360506309629901777774061026019360965940637998465364359063502560729453244041423682796000640395173163447067675888183824737264490638586984882003013084459675111268318151582314661040408938655614222064133759666205817814008404791162331744562483457602913175576783898414081485933899327897346688250250208156507475116171458639282174281961195534358187810683967972023579694071602308158107256087439203383339495143579789665175434357213542792117403865221738302978458221728816910084499997505050655412646711037209792431981333131957762276632619658101256496305444753023837799146501727551234362353270840319076503590485555276077294318629351341146570215881443260907686326702201700946368376000055155442432324965861561214579686067485336612809515290948761780583992176851300168539849326298670345835671820051117478607602002707159178268788048000078871832021140308810402545513296362777022575338721064467252072021537310320887690474278260587085715092704869744625783541043813495749256045746883237063175195395558089244241803957075436644595438531073064944155465335095357796299443482868150136068500723634838200653653767111476084868256032497802177196841215784208043832409493055983768479255877080531636700245390616250510563526236920904231227966164282462524198384459631553265240871798492372345739747286017075623530550962670727072116585588770016516517248521392763539061662081265014271893967331588825843333373741687840508571617483559078811342528830059264874115239919582032283904891532206761132055088491444774498634126314455573009107829216246640097836500914384444398837158947759594528536712441788054875571241028192653462217290439618185427345140332749013169750825651497025977578194230276537543062150702687041044915268259569055298514064361579965654828272276280247348376262967074029618437735878865420680958416816187669136917885887407067315535918634048050987772368176454426182095958274210314211826171904805267650690619306265553834301784255396911917084770209964045028923615680328817038552994569026707570594947782964162839553055087560624832264373081225221266100271367677652450537705818010722449912217867241314266663866526960534116623204209262688781075585035452729737207279098002882728178410806876703355450676382050715245797182168645408162033345903840764246381039054264691094991419495143246395161972972120431508048785387595227697016318927195280157899135407509635082156819625281814031152665593335278876870060534737644007057747735435698127080800810286084813676207691350472580576950678276291069466001468742387971686660159897233683301671758316931598502970991675820441825416143003874810815398449917589427206757767328070468059063786269395925984781287143263096538451955184079869567200216864577975113219614402262173618411745067897940824235943359023855679859945799680458565909825677069813628021158245629104350183856092949731351820067216317991131216426802276227013918906998713957301654546640994700238062290833378827275823555821052831795907701974787944698739619822312477762542136926450228229547592422762437500981936293430895368212213320743395370083260533614473001558074743138602650936570635214346775479354857346804387392487192076325139111087667602608654967090034990891368806572015176181265157400729607554108677106993502007960824415798952163181446269703045872512968883836778222947583281208398238993750711060139576186075833105059093279523515514983338779161970189434967793998355293364012140489916976178796400018084234473391382020290072280264637718825708483024462540479389737023278795842213684525222041013689602437817377688500645769051682895294280522565841898533950739066917261413977796746599419486647082226851587121920083525509089473065167425372081214488957774636115761705927261749099602154074807097642205996202471871047477765141288575075422306455173682784750901546443195139155933445780464554628957249101573096450506115526980468839018142646910125599398454832287521757382439406712965828603240168573753918217922722116326413695243234774579540152318425431373536230628339327799723700126839217609539053309596645448026468982302157473292949599216013581758288508790784582792352689999528864036282286033795203100650968461719664153278018031932989754304002200897495558623970994967569019756175473856386865178366814924816256226990989642818664569091918896380895296143718679404598998371261694217164945986396873791921550615693060498937161834005909058427149186025867787906894007282832938830176066744900613141943168253913049057052345402059849644758766400004920329208634297117120546501168979897595400718109200619135803704269071146960845611305085964702697615651345484636647433023876225789260085913259267046546904908204949680989408620304267450873893782762192090626263527687863288534140051461569332103952895530565788275559501954087668216882735630432346217691121625818893660081808490968354931689186860062075569635097365397214443909090021227245642706119095661276473483198330889789080214920451041323286525292202332105989193641473123842311710929141687927151485379838795987272201640780775831578475982605655499358375655800513657839201453563451807982414585923871536645676572339291670141085061060077667703233826822665024069174135973663332959842602898973243141924444190497622197748861935565818713577914961347593497288000580146407286522717041471554661215162227064917188490098740571967172546588644232864069238516248353638335996078755502557823466517830567770355994082888074284354727343025463908472611935276705202380197308091940697020371450544012085259529071771059329209210335424609057044351823460861009061956268845003923312878648817303328810023425349002633288602166546218179254952771919945397085391020355146910494968896433658186318701861621461319307681982517629440184937591005622119100670835354110197409564071897728836131495135556159172822800306956780960698736798979314869518783784278347289196429970168950104348815070300709665349409462609162895575304175023817106881477343824630721120007415235064647684969964388286661965070165835944283092857563040168409687035480666263915465619918925406834128414692057875158295675378931728620783751364964417697506051956629434047616854898173395161994955559531204286227549306944475833630092815947850740013273510938504960943440780602822291661493403942484677911110487269063599897296465062718374318781433135340374334097268035101161118585671214943204699253953115282317215179914332590122898776251884124430102231680534948843851382604637800426724933315102823240920182929507622352655523658870269050231390597893774737480707855729853539196976504038721560769479563505036402109109253152574758559467354772127847412766738876709872199401531361085274128383225542208740596429950474645820857742806026708777357090848798804834725248821304065018042534440813598863135389350860498999248400979218474046745422439363709354743719423063630036923170068381336909978279523687158383007476878936210607948411759552512512697580843269768892175479664164021955756135993357859508465040927079087396037023816129825011938059977728780327721018655506556107768683323992351282173847847029435423012820674506216880451688344134271511988161125710097385219283647507309749699074429708972386792022120595499353704264775880676671429492738613559414685228523644872995116882709709621043086668142131913667901667186968467946132933013460886584094150417021719172248755437674637606592873606984356932734012442413267821004759158735715508302436741270162744082493822003222336902180117925268287390721843259489731886613352934752987560110595081400591501036052301886952303239395010665332441282970889163951752285740462188105822584943260481198798068613054999529005300532795319700361668466002264208084816412357743388377129769608198755425421465178714474435613406833691475311861415382393168849182647272667554225806713008705049120057489670830542559320500420775288366892793961644200156131876890967182882116917518999038506138965844239833565341846734721201923953595359139975193244127630136909006135518423856418961017737875188926974485925228783870017874907211148893865612388197708800800691149649438275700144667231939963783845153229526351832502202610591966068027457962350744430566623136715338435552717298423782982844445086109162868557321627853831533568575483577336528079920600785999822753119988228661526426748843577770136633663500223032226657626942776931937859423433001090061012155193032685144985680940095009805916814211985599712157135354339613931642460332612218447821828229037134407781095006683762594455672742823727968488685411561021971596736848453710804500870846329593671089313294053206554139930416399470096504813957494157802216887585961347296509469205252341144913156252046090647521741735675245311029605126803521129613218529369863808931899153849890432723256699957563719115563620192634018031155242080347658739199358610988828632131144958332443286657728177615097283390488385308111666615640343979078338125127754759125876703234597187871345136396722871529615916032786801176532776339997000345665321930680822382145855407565230090308123128122861607903983270434917306740971923332535751208840747962675330078411183160579877801285317270945012903482304643844043543048319840675651179434220012746554269347375726649365191655624246976455865793488616566410449087325052144264228536999235039338525810489899832778330782504373847312599201198134854749941103423519891981085019136652947968917892186051900051636050800280396537806109256653160640505181876216914382410824000984929469024218985003970480958205248254645596249295464456217138458168043134875733913367890151302766729249088254314952041826198437138857240735661490910537126427207585502720915677682191299441300956787848797575157478260728442765251643023384682688756651719351200063709610013095613336104016731900827145517845918912196686999150240443332549070917081198409612502126929111621024004956762035863688663238162183345092836142569608864847234373172193913265278221150783169876089013679381130241946441599281334868610879866080260131914987837232520452107876117171307575817739808381801712056373573897784700481703184624035256306285830863180106124874041395717911052660808545948522730297347891567852322243917734330129881272326643079124851313965191236010888358244781989167368902607974921553778666965663578879307121576219424976746982280694556582538356377260904580455254701173755610431932598243429676913946154643254410621733289242787095136661400672109545099478849888221332761545314504272385231057137652199834759229718031256333598199608529000692289389744098423914467736249692123724204786468089594810720196450007408106483531183996137832011333718219711269034842914022872422733275823560831554104526190021173423630553671853134608094395474415413031970392918689133216434611446959512308563583370939366739815769733177476828240987704596038987567046055828256356622310372381749404681116390238570507100418295622647471216366824494118456436868090913784580841266221126492018382708948187035338013160693815387093664825556702082003381399879153057714963688002930629638695453963300694929907215174751080916421956772677058591396115136699054498221430257767377805163501556807987199975312012058029450367126035879310925477226726657115707641529557170546678617739820816641373710306008517069422481751986920373061845788939538448054362729257669676477143049427423455444488284349346231030713420670695392483555697139778054449142794714857995144050425232949638570044284025410674176239538520700713642349457224774136550354541007173183937566618876135706080761221945369808121230522635500301052996515490036256214330346836070756904051568063792241592839699115264333491249988160838110139759493372200773825534358121968319235454832275919768498936320671574054899563839878288301476786306441438914315769115150010333454002925313419556922143307529092815493446098014357321848232974189817547808143959692738436839846090680165034156952391027263091630239746319486010118488966724708238052400205095270999885448102003741320555119780376786849791648958101239700714374456157559205591532493265050504815315862452161777676632086304507280192670968250522276758460012928244748477828666494220675051337076805703315418798608579140566835419128110150107034131120274461895737839620389665719397095797083512426095310207900627161303294505405981920964800386067546891855461975742769192796689050781042132571799370396513233033925669078446917772986119869343093825086050244403897945905263882461583179104601716205301141035996052977751361854905170442600590670042425964576897557514264379764829462603393289776961824188992784827341982656761435976446426605883860430551783083988813851156052758577865891382799750171434372435974564379377281925451347525966599271123524441540504629288939282682488458540774491859780482312232354779079982203939349174513212086503304425725178372675096483788554246141743643734291671618848175444001320156112385129342585976952175516404651033450159283264630016666335326665642836716997351264565173883761134234787064193137926449919398926707187260845494471448919009434442807079977747980782630535540822985122432240501927436856592565169569340454890531637693506407631454870836822025984517854496963584457219891650503996447928152414311896075032720890288636137077308066836422528456862500661656444002563738061324186683091909909099459144805020638332649662148050966216038836865167818135537766509857061809332036631219443150163099879892789822993494228797717950904842511343818193854246995080420107113007526666257596475230288596002842572150049459199237046941908764963010595485600620764429490388130476551220259075123513794922796527076365447524843490794569285149113924165703942645414020185986258038301605558725943858071897713078900084878301662264186309992217095247805437725515658817640822306523379622402388422321155915512051500571674590184185198876627382025000289274332899734010590931481436176646503119396935387846499600981742112131825938018045060705394572188450542511097763746087285408656599803866066611414478306224087533458853822979303158349957737292660258825796146115825960441128617748771529886000868877587420935862121355626522210108444593045423717915850071763540658976017278829495973585602151724483537680145300154068339799459559841191307625514028294297627663395677837451534253174540514099002817138087191071907536234177699231041747192805520627608981882683122538099016117461329379961367813947098951883152099407286942113003501507012661866575694358579581250142284249600135530438396359147983799035922435150019994979468998943953754706639875954522942640972193310636933000512656042834801680876326378155882997858492828402339903162207506076987314109303394557984328470922414504053045614535500519005854897120190032523346268638651942849576812365827023632417278948303846125078693182696181827413825932068484371435716752084501645892210588243160242355023785038134674863481616630034169931728185193702319833666110941199233433953787172824777040832760836788728164804920096877518777411160968824703156248371302905003546266074512753382245244232046168174066006266025561269824614706045945978986439039858611657570497263109261278921625189610552132745896546610809385535338987453314406745086603728846756291218133235358267319798765849210614333401462427564202243949962015852392836319219876992371277565871444724326421915212212319770752774659582680033314340383783691804301317747839390381022560756164549940332454386719264608611528634834796804934969225156800916657941559231609453013355347204281045964586966780150357973017439485238865398961148604607163931402095472410630703241482658170489432448637052462647602667803861657555770721565128840442595683127807931431974139031418533165297638042636985969738788945976163661100730563593883752361913390655487744719714352354754596580503060602259868599736594571237721226871452193811060122207175359427178468714752298525261294284501094615117888749251684973943218775773754242236915141293765281281438427676192197604368029506978288253067246877561903684789052654977853872802330084746870340887868551840711433851739436011733529411624213955533753625570798577095209211859296902035277141293605771997788954624078974795784682794724470232783210304130945733734528133163373363678216010032097152241351161840335210970136913157239119524625610160887533560563998872357606431854629645199935781740799520210680436800683317305447289280219777600856662944099506392124484328060189434355051314164995683588755085409867316014296638877901020909118925495340792682204472875951702379266620885300412163332821002650141448024719108905116698894132366327279300238880235620816351827297840549948316852142380023786402657500504298912531295831369271469430742834578181842211681042389017093708181946444765482735598293659010357284067665249591379507700949405187834154818385914339915995228553017004463863826578831110639781769061497934924017851504643940522755869849025172742494923377571562441719951630160324237254599127187321130104756881125611245294370705647426550964291302668560858310984130895809731673589270896178270660125417491530070858610993190963281167712763891767533578214283411458974577127485243188035257573897006892214323286067159663375677316002785993684951272473241175721176179225421715489990471951514720228088402882256854970569919107841772545041417012032703504827086796747475881662671315974465322575187107743258169610707771361541819239100070794386837416276074133702556937978767890712180864594789259295811250596943239510857774562713239473945433270071895455072428850039284867718175595025196778862835173223349092467216122811318981259474090617186823706559778930582627764040365233480125061551170317705937716694893832104557716560575091146376150483759735786789521719110953252823082188144142234318963853620675938388015474176206999547539642234348916704032953202449637341520718447969253302739118641384407337072324616757559489357396112628615150018390847788529484156724802289868852392782943943001355513895148298180694223371739989188438466899589455433927116667135331968246796412397926264683368522856938471803855767720116715992351319763424580607547550322052371545016420767476926276282212668101794147874791462215621213241103464415459404834790136322445855836445756062398365512928530344306513881493801083341117826815923683789634153350230980450416557807271000680045193555598379495351228830129583256489150151088510916000041207011185114419091281438909051903230702473496854798302989190775213069931561785010857496000193205312201237400465844785471483562837232329949958583218889993419065915126688985851685365893898387922169871609659912392249289790598530244446603173818734114654800905993497487774551919101431357643304593115713357921186115477094273440256336793255459113734843537542752666035764332107073891531324630471504091370461996653074897354208750548332299165229281991266868148750801571108809246636783544305399620779527629766434942815572336860994801249314232227001988827518161124233641978525109972712693282631814379830610038506261656020312780083257345199901744982474616418705252701559555100667572995598946623297056645141588016297807954297817840892293231413064719113475044367830011525380775200118436781168554779317771165656708796900593236479273945985968074471078638037945442032627114932431545246959448710120891243892474095554006727136912443485022944582918773654392963504619442037060824414041887235068127973946348535597966348529864683346471157873127102399165290858148032595601090573724619665616168065182244427111921078311677047182486296064680223311631444116915822606276253548370399729884077338516526348786368499285577421023684196644461567700353202156259102495489398656068120233002031415909166071108305188891362377453101778181382101947108868013003630660209655239006094030330110213357153484576788544868837029836240551860069171980794461009144287891914781241083151018414678846729396754939553137222387913522746156979371393214008245396253567013835690549745477223463185860918063947351077351768167265566929975769984370808836620432932423997056407852150022592981797568412662221520528098530899620246672941303412936651308218205413525302761879108362850712855180250994916325020061062295215345287463966330109229693973481763256589260146038217663369750259225671432869839749039484183154109517001540978196629738244987189424307949624406104685516284201191506938460607004169287578518451083118196805197132546976970575662918240369472372308749841044557229334454344950979243811152634688044155228192868655184211726431799200277183197477817751269653030150931643186844326116732238960317396177577235528333764969537371276457344190544168296966504251084268688817847558729188842580692061715557462348787226937265102361838899078651890466184792326078140101882930647177716469668937131246088520821270087194830887529526959356767641994132202156485922859934339664869027149012463405979132444088828189755937934586469346880046031988271324439524630390569143265048727872859631900827820515312045390161955974454505308294522859562774963446237296858271020606524606784392010224970954159360180978357074004423143719661637967062307183186330457464694603181907678806780110054047157379454569893268482666476215428722583065404102289682804913258948543205122895347112164995254165267184234289298209228334038656196720826683587776038221904615521713186073319372229333887780798993257579652945351948528463465360001777605581451466908236209053167717074817726783240285064929504156801683483824800687115679659404619363649134432158729736454964353021893859593396888735341841772183774278794168965999978466222368379190130506695254785424544282532988764205940663719807346946207784925014835819253454526389721304522992743357278683293190403708322502007193997048316622352698136184517200211170540363856891694043592286495784151771400139483973205348893975554514052845992880189944643190978023739902547782723453514405778767009754034808135360359920645477155354840792045720207089349769200544675574185779203826884607002732029563071849119847697386978557960527701867521606698386485718027931287103150667974384673930552708172245771784896680249499728580865069746728269288279611556774981405098780116037808312342081777867821272082527446909888334180617035459152435870254097727599724383219955577215655706782195496247577185922602398970897645899505208424809543271352341496951579634389129753931487639259937926504597322489715207885241513055907823796184604121028702936718572988857612123758954837041576175105263339332306096663860912439000079687640485763062573371367352798772750148157247163431702293236974796518692606934886694002700094789152469459783480061175629330215753623663770776279471371743303225837598133446414287029410082280237561356321621872023416043650316211018054193428501904543659545712240917121924461783364709599680169579835260172139903680099097050738792074088949220440907418713669872430689762401890097822221022142708132192950879989836913397995695105936236866048704133307641144285563374480704186162391044526655033949815623991766841530423457496460736826495522875325670966293530350773941694486094193272285572126565547362497255672537180512787797429526108742538027106769530634388497763173002825107190669953635997733311832351004120127538564108099829807742084225097417121959139496019254354277662225510488619826749316239306679247280780374796518549682605528740988354138408081428255625960423776486149322241186597761813994882799671631065006572864380319947986595649118238413615592091441167683217039728682028271580303650641454321381993627327581568402031203271894568986864312227099793897440096996268757186341931115390327813819884988078249382174052513483260504390651793140355389957295025589624497848689405684906729670989869042351374266072428311022551729855445403615301990948779762194014049027298761689703765497915404915908998674912766788761150279880327026368649769958255869116765109653663440360957527220400743766293778969607107501133843240989274116589270600166981220473572767118573997131056429308828248027908762784373590195433418687549323829041102412487285187225423466933910689241069279237663658027828021650843018891204682200711933435747144403564132240415152505501910372981749410886924982295721319427898278553448521299275130764788393842394630603647407209513131030880496449000099048614017180228067042888201695645084992535550273630315598953420805843897856462268866868606438584172832192192089353686500540515135027234572746418825317348069650416385911082551318946140636689303785100498025374814771825120502476074725450726783719115968762262980927356967532254413533859952090375320650557039904257119914669217097713602709214015118323754994636464146911196646157540485302902432215339064506013100230337438033984990796915710339914656284487126778475266126834501702413946859129944252104728779387525335291529979537883327373023333506595621385936434130908649828251938083404188478759716744475734835036923743939094731973668151715808731683816375048278851973450893013475933063224868383861874639353983488225020011634092886753970432873631910755012818168208571471094822415422502302559829684268765507279166824719887463789910731469955504774343371804631244899801312241836223545894359392060636267717149274837673970954475784653964089047437728958094833525941099821509616840788810676099650026323050402963345422003445191948817821583057294208285488932013451600153654083191469242782971104223813696141186239822628528590804016229941287124098688793631119125450560171984757554105353446143000385350993879071179776269473429183823729951808594435757875054970655245053240775534681491347204122555438186790722956668989007374932009024606281214649562391124542450023481821404064092330707438245490674559278895366601215958352683241400665236230043071558681542639723750503597285009577016903679582084893313928407519229661730265947067501114769951580973652330555704930190517871157931756800258760612623192557551012200669097395007762567802471612588017451790957010725273963291005205587562640886624954439525048468357856849145562964988874739868127967930038222315710764459190686418272530556973785571477668240492706354762495395423976756830607131822805568180233242431630411312454383524069358866092669702031808428842587569933479448606510787675862129396801234396867043811715498995504423706576876290766566329630635719308590315268288371839141023680803280885622190714234052764895282122641264663888560494965385769213443610153470304050236343141806968328632778012284762492749733387431975938774150986789605793292816331549454884281478194454081556405729154734977963754510266967865926415626180902130006835057637081543233237102355248536394341784602985205499365518823434465611825509773027483769016366728527778069655831713295791339464775974540906936942649559954018836434764914745615521371634486683471556291394862288390143558488200961252791108630919281399566573878677869019533713831356225730047736049444274497856154440962757467258217897055275648938495537233113099695681617098591394543025080207425622258949610967802356853911073486919214875887059251513714436362637763456448395814231607745316837528622214999421624727872853816629718514728257127646957160838863332623180623643150005224415778859538645946334341627187962948362988205549234176242914202245823315656777469613152669442194824664151843550571803217473230809139007580222131011937472543313544994215882325708761176931999956071417893758895804306828728583271271969225551126108647282805289084275956590852235961713899156783042123701703023040077139349750951958812828568672043744887311911228228124130792312358886711993847307529128261062492126659189537929640078880058812067536343865326999799263844668214314960616104477436213905553925473584998496036152711714497516109459145333850244402111520252952592505254580977981610197121270382510341240646255025364875389814599063751262556596667240091701705586164370702290050961931645322154944088097883902827527176272434178467538239807131701629911455170888929115374979011480818518511097374275047399892953447598688718838847681925507986197114609202176523267837191790512399057874202073993886458369477267108997521763758382227454360744858273044057237003282688404866462053976897710529664794732855282289902577679294736460392372029764003913116233970231954777005455057265276047133464559427385769783030563488598012503993427867019412228992087510895007304969423815832685402587005693964815512133334106936724283233356687940831536126081609469951360572066077495427956121248150435897397019777972461892849688862055784828851738163511228487030407317332166914709027836325371783711932224209747301307205867317599221221782901425523324981117077503398265754710096771317763261800280795749119663112639607200056702015908667089259618754277620509197556500116729097189688090439372704236974604867570714482901349028037302233341236515965229990947837489718849820273039832387145206749515793561017463624419049502712263402744016496856166136436873597148700603759786868120976081224417821853198303414770388851694854836618173394168223534928952818790350097591461199880447512634286208867283197044563024402974915601628969265110137665935165039093758133691978726613842121241397081529760051813369973312207274362262147871475096656003160484616769567103433426503763906070817716153168459440740115019059950781683838451451408507159652178078528826008115132966292084982152522280312224198148045272245120037951126642283870686008976853775161325948158121432978057337042051398253412855321243718782607408822572431802282608164649413409450165908463950657785445654230727987435461089132722782674450350638317469110735550405075940649303774466265980353259056004867879983729885873190452064828023573151310030440420575219896435722251907536041507764600143522113201608275933484945478205536232210041957135410544603439268260046206499227598141078277498122330758986347353484313241563049699553846508683367892129732349347079104922547604606350531134219718541083201687074799331263272715185674115282110927789794432892282421404149616737964513569716920374874910752296829910992307609520950458532693467300074849123996815591873997802411174127077647145360994556803228179780141761305546944746209740752696056649702816344623357868594989177173460391630623428878728991266430741613211840900852339645696270052940920394633346738772972768109409506642446300389790987881967742201710645384392165201845119978247519484369010163206190869567436244374674970714680534599593957739329578302702845293421118816296727672630529621445383715535691500229262050862066544035058513554543349259463900431912277614051593831615742476605395654328729292893786654495842969890262880715571905994776420520015318916471873407071457351907724628140777173733705924284152271737229606443491255109772053030169286003118610614430929489273492869893335016205005362110822573142070139714485767342381247916410711189992441398755836419259061728165993730214751767819196582637777266363656376810524441238290557243663580410090355390108447850385817790073279494436859923337013830200854507710791014980283661484243943663951591580856255526038528796112055896163468756721712219948037227508829337272976362419234684354244026674341612740484768244569717605719134917762254837339366073800222223547538317061121570786334986272350179658925646201983144267860471064027589716680894858524837094212811927041942271960323668179573125958207778384830863608776274862538935161241693004271187717240912449424294745201925647740957770248941903442936523478389172198535924347743846091243127398178969915291520706459297003607534672198341295689516274129528182289470547716613774435149591962085529957686700490400292355895882878709751872439910276682427180635580974691452775960635784596511808048724112783240433811602441911743996891742662204995236031074460284349546157227698086838836673830022454658770150512647071811484402403645177333125335992024703415957944696636793543437279375952562257555234462038294576378954190201846974569656550456294058285194916734495585408977675704803172402678818682690155499544928627724604119205006541289017961320808839099278203264806965758350090926728733836515465610478579112051922926221770841946769108639081873776144784644824275590902151213404512294248601724827854887170656708483617474841907221890763604571363271444477813297249181219697714267737425718072039653202024003074529584838953660422629758261687660657187767744073851263123621115265879237618312933241786315381925247378686094124632488356517061200717823822077367819876601692291146826928028842899947528426995712823254489670788543750013909884918448310325983634214568074823802941819465193660702318078879512604177718101805395301851307484751144559949293019009011587820825036813038364494359649352811450798264204206060764456747137411629394200219920373199134886706090281789876945756893401933948431394406494901944727975866025358333977553041229175325550215528265443427094100349475739618015606671918025960723558688075534927095087828513006546633736522724180862269794178698714589682009073927960039623963312519686323869506330793874177438604758641024684571002194126069745480529987466890243839258245990395288234065053400591233403215446480498833643207251268670491067768346884949104147633150217556630559182662326743757300074549546710620480330818695433859667951619308034497054713521367112392339765471309034802846057318722375117753405786321419067826880597584315905454989791360032161713755790839673272606891613826131032846143351045719268001305932863433914469282122237961648458413577441298135849117808158229957563831050378133338416073928634056715855968065553799493246799107385007747086845114160722790346681234423961235872004916080333715743528506463062747214020846314702584627179830797804902025902160159532946927195694038853606021514348087108636388563652877223515320511767170331982859280491781136278281552798910436000342259112037505559762343893425474857685989060520735636542404861555524787536791093804369473007954699233932496140562568988922056069794353139278306275484719085548895426449933840797387402084382677198547656592321698802835889154165355204867844189718740339922448930079083730994099825009667023781105607615213954723320949188312380760280704669051031301409266947839751241713185515836264119241821898928273648595125588055384141514033977346541830617795018500428505973134752269588989588610102393175492075604540856101988406064879198013665330207610959085305089602904500019783250220844553076522824352030102276689268411441233080675945093739118565818970129823131332564812429824656735472796732777864121560334727677996880256489554847542196212306716455155672931255983281133784824289000042997974984161636579526572629190906371498745300607793419404472968177557159831062790302732497252189003057796314791822302879394083671172059867066091606784972985700853060890056755179280818854713303988784035309850722726647657118602039160245248942646812394444689222319073046514884774764611472294580688985033669815108580968739669927585165828186612622873522257360454764686240480239170604852044740881283583969022808946089948935772474481936717854141833872537850939831808845785380227153633951453031697899504605002918930124457327099609513398796923240406845855047855122782599350222702580820929789893823820717278084925155951756863623435952128072067815461674071192124494752699578745290417518949232212532725781320858716709920231018352177901878424443840258039291907551486522525504783142194874474663063141575545833871359132465071455810145893226082414824809167139555408308379218556038783426319325512329904632758799740665145753188722751843748114249222698869199385328434599382358055303678289297189173437928038773719891881059800724262754968763304920903563586074497581752272134248478847942801330343249767411077732888930810051118399938687374503135336450823403581836005439385178998292538215870343244582666420078897935693105880766516114648784057702083692062582875980773392806909758450595395049366250137395228272492822472976791323775126174286825970522418687763662427103838246510384461057997174179320209199416343691008683177792318260272823414933931498857754590864905559447624024655467091072898377871012748954105441736549030729102870816220426006751700233199885703703391998981670054236828734320228252650289620062513745379232641186412775405832810330386390084931807486432285370497276039278865781321422435136743502253808336252992423673765271533839578477629243541468535510987734013020498676573300472046285193337106841166927070980427583970968738980211630347455433184334732005667182392354190799941957812594689348115085330712850163956527051341097897864125113442021192252396540708253012049139344584709597403177661252606736247005648793022445556286017367509977701896779842387154851406456930540660940366163681104370850407756408853941677447665360516154840448359101908806831439219152025375798265848711495396963962200532001552335930623633390799008223801245280497602402685637429886157463432425418913360733136830331758483056500325810020223014621430809844212720073905815526262348783704505423303804680810135559095661125908558009293777498546879933816810621969208282708907722822074241045813403817752654704229226114216911365380455986269774495923734440802305866684843644509289159689842641702635948682581651942194843032730434883874576756612318990295250992438169453470279213878209719186884136699921109640182078436765946202790818538009201413943490646027348562290998031016967963768434864555938027766461771269238879991195876704244376175905488505236166840303229065155330066682980699651868634674001917828900841962014653004031388259377933182119028395237313632543250819905505134611725513890440217942934893131519112163633958137332170550637041474140838606052218910057665820333005143362168310436416858482109589767928623745297775936102372978795967594972144853868377458124453887344972384626489713369310587512274619354423217118953499678186710547509635625185773636183130435786642889272925783441771790489694399408489760184816398123861471849068658050513274257898171189845532639798672242982264682396392180769698926353074071524889350897728723423843077847753118081252091506743663325660748474251743103424593463726746386443458818336485577015456103968263795154829129894970148547580616703001523268594739590935241409478640766552159982788152471104059028419698679384230110393649706334484020404386429812837529422699423589431935699599340796602870513165042478251018024547044574111876956881011045084409988499224668713453590837770648287823149047969501151538180670140105200092869689520656759701346845828199462498310497942525426325483603031623413497848925709397559881484239264439540019296354065000052347797949371382027369625757415396134831904829491881816850414835261660597149151417671455320908550996660841171659325100264842602033395199400281912238945347068238185497964037915367713834605633931456314649976682275701905895120237003190870792681827766233141221281036793242060896911661173035735893598852369430512736223645544535611571884701029716918902818377238221269462598146135681797114798725242027424308926817045012750962984980012199238498917385555957248529758814395677892105371447557274190469812392716561057569195625063718477751812055497012825387103320658680975306120081107913302867274664680779876186968805850095774341066181186775354771507990380168106548152767588640353375465078937963426783228108457729929901307313268610414367847865214377550191408307157947476577316722059866919210538285447810021119068984185098576738640931274301274394504090487328949992104636760743791253047101904760187084465486525921365719434580883506973996053238220344760967600797479041623133926876971509667564408238676368554064723638141495560554424651552344724621302771574917104567004456431095986432029231678512941157950032226599307715377317859185317077222062010379324456323008779061290818063853742412107800636037376841671361674206406229683373061951373787453103638135540269924364848404895421100982195980757280286079388220757039237552240641564925387931649358910797666892707377306437033389244149350442867639474335363896662166954631553263699249272282190736987016944307383340680560240506025327173396607463764069391926136055400981652044317976735452692273692132424640486452971946404553681134110693441243333757574063181345217263214908721835909361988044950049846290297418247681037999291269666894850025183492809159470115885177619992220667121332344341033860097704912866344137254840478967958575192988289562157987140382509387020629285434473043614002262318353897064655357372871551087454945418724783237923692980188324912892986034694906588402199169605192378369604505928271623861421321415935664266344983490602885201646360219741113145004671231597658903737024135605799294811019667640111479621666105897062798319097575877015314402306676280809603536625484141492684645933709292134266315397080100164542590565974660801627928218505399523232188139122621591606842670804272331074225125389613316702494988140472781896995337843521678069694635196629927034585661729998358141240569057105341408760211464385031857507340837044254532741589061529420798825824415029482367009182466900906103667774222850286499347861734840508600587531042935212453093812065148853738017486750623367691259456641415853640867676137016586946645564697556457035240474946398466819306937872542573611267510282532657747056746283173534953457605236934925364124987717431640555690444910013104238313419095661121688825585835514283707309497070179456989389765850442818597192632619553696792935968991470401105954321253965555232990204513139342014018060405557354241120428697728392950795421199348197066315470824108781791122999509033281668975099609384059044065910510306574686664761530456291797024108499318115364732226405298485814726159914711349884119673808931677924886613786987053855702211634627039352742425347934526977678566626752050943928083351957081376794177880268240416422835270473746523635463368151530834496952781342959036475893210746489556845708542175886362667882206819264656019946013289137875979896071665888531734831883112106206564760304318630591361036010510649825551534703233526426610898727836653520719713894695909381666067526497148439639587841342854101536215841106637896547277660969754762371710874736362222732146007062275877514243940676351751106468153860700723723563160436682897616102503839638663400451831651945463994713778013029092281880195194504625807584809573242871596856214413722782326017419378414794019247638154969928809215019354590745498448847837346028075443677560265556045071224104106982234771987976140782029389262147676900889283121535998433015600675379129861964732183165622378904531704168006814463243068897905824327599303874621297111880544763747525993463936580383407162724641703675543900931773050842647805829799136687380776046386654546081996285079093833417065006220524699954890217936383034769189381663436540887532858096637802217376884781239369732983555912228856688048014464982326465124948947170891154788545409683415444327254988562447133357719112560151692426413304567299392706810309407474856780461884953245182835769094144498245563864247233398720080667428847405209307760053840713669784764093922601566122418513664383589642002868549458273337459460545360753469773041716126995467787455063379185676415151478604102360675217710040560663180207215924044908210510902019221679687365342460398316299178079727841695577530275522029828400580120390602761991195992055048653932648245054958156539498498876820256033226271859665000566599667613222352812710016548810390655676262419353802144938700715280642289125171483532885638800687159775583992916169018053997511627639040054070353012317159162160310022872203319853144394151732961415238573165643213371180160672641197441415385648828298813501114879302695601737021168411519304581317930414900684996413315877854382085819706755894087561205494795999204361704357385713181037353988079098319635752963798798393567139288310200731600365673502617910563918569691925973930202345128032629548006792696173814869700331791661996438801535254153225212453348811128772877776020663532114804581303993685449723894580801262752699661625454083232321623487264691326404811917157511207270111081626573624008605097690330558626837989469680689420163656995695028647057793103132653586194074104611150915969199716923170675762856022632718015802014704927232436931096687264941906815781533764066712815417347289634212118877761090801899545803047349826732238634792776041106942624946084531112754550441761043344077851781852855240651870025368524131194385422189547136700351784725773368888229673618693782139461683751781921917002930050293694463900725082676814494805921086104566946688983246031509392098752827596577923465874652535467311378927439028735568640352529520794946343127735941413656066792813164667860434841877877929914524121776816090682645148759176045211375567185434375534296716552519422712778565851491746673512405813438281637304331363017652904781087534604228281894755115299613381615448203250646034509241415543510170024851866403884824718705988554208676475905836010771981724903156222267116592085166869950453999438027555716005305966345797951319313512749520848673273065868924335186699952417348455800580578552575981272083251230623806310171599117834729256965688368232939124352512435863871227349720597476813135817542635107311295019036303937133182141081390065066305311803844691531562774710101219911500871052032021541995678367547354503175796326287992992408637299694680326072519075340973823217142876570615366499711014504528370814772938590897035500115294280699110441787048195997183215656306745345654347384788999012940133436125965516297815249162523401504953479437280284202732817567072210032223162740467436845962783975637763317095486422090462819143137777113485408661487099240155328152853465613998586278917887809911604435356567652525404253480997918874140544872530285128946334923380813189549616432708022164142024667519028395452520433831481954187052030107367561742859658117126530248066088537440763160906655083195016811399532135087291843585502773484401080416811504665431430925082802054265678546604465063571454116273917762123156147066822218436777413034130087458877513627095464632255505831456520720953127666159681060372591768677831213648623707823593147282523355460800497202370724208862773903223886994012507198684944993089404733190404920781135627538185342949038737005823416850946868659526804205689312523945564847141824645204165426877238933931264652180192664217249754828557868924109146029634136537895841347845861933040432355969311972352452293484132059263565372659743121693852053389073130382788607921441365358568505565731184275410399520665111007135712487511044961205816600550596693349290202259887904656245443780917148456689300185402805597000426620001509482999462205593425580831494470368222360203646120326075376507107412047764050445485669107579467791288537043577257671003947146809525446013405671348447254515994274268222961536666356031030253560067451409120784611354868010860270100237173790638769667120470098722489088613991809833132775653438335895459285634966489029163558738488371054575921633309906784181323261891525675894403601434585390523917467147590588988652897574987055404790307713509520946141520140937727022450845538357597415238525852042518102674500265568049546465852889202364734709659840199319059113153782274108568410692202044257885214150995673865505531691858514641779562258056109383133097297149147775708275568806988419725295124781152592109753487131345405417307829090473130443054571671560381715594736122176363467540328271200211656093406639954430887484563711349938134905070119896460696939504068469858986439816157452847222970014206223134115831542617091738131300345710385747952426404128784471631229197313277848861847804409158374394934507983512123925305244725908112878568202683267128565655535411868342736599326833031459498806546378150631833686993338325305380798821156610383399322672481426839165226851460632614509024223296608230278489480802469963013467399702810659826163682371546219843180733070680764975980896468865224205765249240821507896233626437871717801117381733099223796888052338308665923440242298407474612283843802448175030984173480586247824673708790831391862921798894246756777785062127704375526390937579585151259988148214916249193431230184151024307760772956738579284265738382973087723459895148564178969379885228761681525314234818112451791888275536414394006658551800110515239852362692298213272884220561240124771661997711255387540683894294170927329699673813788929272638107863733396615149115646858716034215059195858956557938895760601945015423275285997728221404736956840370202101068232564261724577038332158730700626913251816297718820852758685854660735751239850709624885313029662333857702444319992317446039088748009368315976015031821422447503071946152949247794215331579616049309411719727324132878139307881032896282262771731646255855485880159703780709992031733282182139003200234163056070321378082496131052340086737983072172212226393848174142508900172541622960889493407604636055425293264277245133750155477097889926450400813313347928250159910027993708994404091010953471095111891230961351430386179534537190174894023810405805839100941663992393665522426904411295218873500682232547569523585043664177547949382391940862615951890369741624531935646592022317511184923141748776236017535599731325423932560548542597208798413683450228807716817067075772189220351903118989179773763751028489385852167351791002306149975892102702671080110720079246040074724046817669366016213213712590549917372130212253133760501137830651338986000898578791224928140723393042042392862607349071323783722871184257022296334899220120975387236266799954337312343686290486832088165257942649064281176359564563486993024105584245931349113673728020636104576702730596917286642280940981791984445271472946414999451549952451557674562435466030627058889991380398756404833938472861249893016388489557295930453738442117376431178119689378197149920968855066934302868252879821124146162920031092061350259939992571879027481605549105937701196478344302627783276894213074417688897943301970325282333964902342527639396864432063155857016976862185623103986351194497535099147978346350843749117771925880411165476306348355212660835678273368668049328518665891828949171185238938586737514758673209541958586828826578474981522563822201900987850426481810498953018650956968466677615251544837892156547984674888725586677940256246382180214594695391368544125010097087969691799104794520846315480859532517778602607595349456234443364865432292440645336855304916712137582625421481517977877562703394710525362575232023768121967830918952105389351586887951505194595580245004890483182323252156367907350633991467975465442419115077712493042846010767461352615259785186058236939611999101148297551921964220422902755200716285124748875803677711372172098811461517973692114419318861074399124088731429691052082225001167814664152479423087269696854250418085645249453197422649368539358640824990051320050433267536641468130615290052030303771997878948365597174549282537361681871294026611396977828210582768021195899405216507795873055414427415566251255961320501753198199237526284505683450891944045992195949111332761470882490319428938972722673815640553858853122277233583200701679403276424974483016510451959657408938374891956291412245004965153252798782249984303645679226606378087714196256458978902439974270010941269659976139768825853828644365155602019088056199200064664263848819989300347591375793464601935937058177985206020836168209000782018276766185999682514067096488411902597064113480533172572804344313336051438729770838135035618116518045605982932688082595755629482229844581862286452762019389559875950329102497124881086863009182393058069328773903023845579283093768787124567217528255277504443027863459960552921655739077722939955751593251338515769407813648840838590234448833535752089935145959539202915827557379713985279931618405497798709845159581509079426649251330897169735129291767990950668136865597386112070018642857997695109246769466067339558993757253797761771349325260081056625734512795453526385405563646654752215088544085776159754331164892196339614743410651866674512785480084854289176398374566058075946827832648721630485834947180883071888699979208858354142048135806324323894750390136039000542886029747846055606759900598028325636395854043821816846933067007152958515150181363170981362281272764455422128296643007804919546595983838007706529636621522505069449846811817249226131075483210091275176118125924018934630834785517458034789434509556875241443275501378376881682218538311461226175969013306857213874636064873726260166163305478611481360656593710038258133675343123806940368670725029746720664788251579781242233050858439942614092230354256618384538595497409117392156347816565718389657109692016238684998003399890169968616134700602104943040720486368977804632630244682801861131356234067571178373808906370698102372472347239007961379388159360966037234694145367455188885484594521107925793503829380445194026030091806147637626280440088296569560040820020478159953735913989726592817875255362377598707317131225143725428261576567012079021387615105489960888953862956640195694131689322911030477334455220994205527495621255812038157150426224328599025102321013004861896244801880164297848452938134105501063740368470100720698936593935103827745431471737672046680670110140775455063190726794265356488448622183931195078266102119704990524882284210591859692400766920262308521807667196322632765547389936779818435565730844499314126486783958153013872156345942158723600282200581027759217642355666053039702549977591305266674272756918922464285469216666760854193688993920743128090666265061477094798479863211998493066092140684392637526685787329297121255734441295517848673211491880119211641185526375686249762790733787908423264199242770398667502929139552594267558753871518131688710242068515452667468179590975865922837885314345858946591407949272640305747031877561066331137316157441367368947508916262337935699292945450748182481356248516255840115766449303257413926231854281424854198058030749395170295152327847773441515722704624548729318247621482491478878188482661317708744316949428440032546413047316539291969122983850131955178851452987373508329942368203391190378435813688953127799162915975621836958585582862120512081883741324063371990274197212704712852372701143816272146973392147492272305828473821964629332342686679301655537488979210205797558768719458281197479039749889145385323519549465423010335763753872774112729628335586188718657793226229296748577160405787373878870132321286914946864735428306072887196457203787275854100740236456073573752624642878268760120015154189101068325166701322107183003696568928845106244400184272303994845033314878034492227425998323960777499358928446218525247002434659329344749677642074974897172372060245360599898624214746195512160229310547928068843889603092711208378008337254813797325501728586672480448838835741597047304609852075207707117321758868782016372881064493165366167549377384518487294821382649727387656477100051043551884354635170335999859882518521288135063362084156497889443209934977997366482589647230575607834702053861993313848325579285841972692100356507604024058130608956117929147788407963092857519701276719935383238676763537172184798246148820865034054367601791320420538224125598970855972403355294791026059930379221293631863206835940404371101334632737322648255011255808125452952911667804520076907450883212126268014866469423568414380574575299470413620149896197784983485057041260585404286653053901489443669993214985588363573069734554335451887186849786199762872939882360290672034637929055397638464183625520937785578041546115327970754044021192289212718359312844089374209272863628922406880025837831718668084094273449482661841149023443300701037288923008493285633577514019462918230861726399260315061830975259370861359862445747542290981046038206548352747098453446937037074640879781529827071369407979894494763931907579728942207049407014172065817361801925020382489282458956244295876557717202929203268284572283028351502305585219556238204489095374543480341086940222197339585501557967140615221769881985357478038903638313752709442414722018214227922350147850130384939791552279140703970146183591655855758443535079754001960187572187468263845361378462976602881613571132027306011736573179407417417642396054987589849590997037491726673685273906975737994909721857501254448239349590269172521288929393321380506763409156011169857055396899466596825629554550911953218121859888122386101544879616968455236145766125574845661146401209953502154345794216495635300877728861412551979485477447169789681814972707198765273113173551819429744675893044281535035411175703122179567105680292131571215226928768534479232818703730490905473461964611161334143287750682616642928852726115289525195904972635033665011313471409612465232096056632259574357114133721294050213477996416580875053018170782592544389562870405501427799565010291022309603391519650607830393537533990034677763232857891609589008859253759111051199329497595679540230514430947558369422256855724979818203964799192939142474455241509843390708695274517805335041818963818407558987738892148306815275348186068205770272313360533907466139960904934489523367633615049734711823415879431923360376931759301181633972027784331315523932989906047495678895736551170977406640000913838934837337503438995703558050819441035870689506771691411016926084289082287169407761103604790946899436102022850548788033129290014389548582375606356106588088776719080655019469430494636377701649392255569474025516645443517923955112986789499071650214624052904090214808876953063553958167038456020455083096727236811978483104912401391138790652429643631104227249325742019790496059032350668796035726607974255039741804588416513024607082142085668378363189492428563906457547553479486588543109817109424569811815109121033624983828824119852431482598196195232363903332451387590327820294849765864884347186399224275203494888992993951513229564605692479909462471438178301139884851529367492435164523484636690160828629765499523121368654375291836056180600154224701635370908083896926485660826718817290776979259442019325957808210305383556210502839224393753388398750035500229156591190935484547643408857273903312226239932155013434306094813417083210790688777108574476570459994271958429241543961428288228036642867478856649571356667281453099693129155152256859624985255429408579163400796527304751863666393113777650452507756848091388742262687530160793431746181833843186825125097562736503574257847169311778341318025938035226120489143684510625331438789041150579618454226941096180169445731846990343951531757264156215179325735274375958757412890869710074779364509653598081060523491594945787787880170780181057091044288437793127996926543937749431044014512262274110151053643796716678639836836468483273278354644490421025389704974792348074712145902486808930468503111329921070721458548743562974562088898881084080145210449404969236996190062568412926289196605382485052595188250057654684417657093939875062907159821235622794226060557784290257502552691669714382348312830219619128112094091102690110994047164243628349369105475957335484497405767426776262764656142674382324679509844021926215964763788697247161247334175275152965936435110991550600610541272456851026275227620750118097780364112502658435308957934979998051757685374504039651424334723223311209412560265715788206353831861353296199184711986342072334200486023177002850716270239198224118466871706337574590996663153408826713069594215941414313357604480612749456359221715821498888377136094548854130933663966092303377024279044876434269893656057610412017062114506979275477016167888044626080726643093418939188868277624668835233553498937346630584078536805274052845741283427803334041719682277646587666075689532891413107105646789832042514244713267901730337951989631526616574573870749045259908107894268907995074203916031880989962262773627786331673149990008121689173459956137435143766357704509021115793864428026806118587478762808539938109832243450799457365998984997589163485886835478923996871636291582545498948893927769501231478549134422274252256487261686481868949126626269606688795799833763002095333873222219966461601267964221937680965469063211523402852608292990506933933850402094097840916787742243933054553035262651174748789893653028396233502368555067252009315441404509750333990832132336365221765836978373752904670836770433139390877146524845337527826933639637151402699000793220736082507629389503783581923022822733441863740079114410363819650865035475955913239369910121600427120485192360042621445632132884754479594890796479802291185124318154764907564175062201262021771109207917311330720121806942336403275344265139440855033343162888219567400493994755140185609944919413013962430480807040272053011507009255897778501312506104377938600998987338395399512966978847406782367433048397436599834733677232171957777246423845672843597031245345109666510205746230755208152781663817208862881660620139395462362746893737817668544138577784591226349161041630034027826111660397293587453282307342268426933366602365638193327619332205660418363938564665931600667115391076479501602424927030250573716827681873386730141401830201112650256193857782257650234071302565516821052721330739906312547700258923213539991831707900946215224940380208312200731919305221696822627037331993148565499559292776034183328278696543832162684767275246285833804451834995860839754122437939114105996106817461280741069129977886384824202030231340943723378626439398311927140958958441372575745266661809184524164354141140862145582211386410919740271603829342864817340808752599539664654774010217188793040417345734285983215148298966070439734965162706859778852511798439015328052233240011777423108667419021176780769328973077580815258002700858805219933429907878915099942285263749347271244584700298093307626567998005670773914678581250213723902181324101234255551953092300022586962161335639152306891072283535825436424520629682447309108042762896507678478647773754645364910498317995818893710783129411331702653582094369328265067029506500316902338219585354951902525154309478062720935332168660325021937741136229540313883897680885743217872361995265139167855084919400310536257048710291898902447400998374313624925670037104544595945420339151610912285007168536284644106847794085587086437465155488597744002703623759198147159314343500783324150032053967683456125147005675304316646308652515426597713709218158283291249987074761678432618863768081273521334221673259003457272641230310558609362531727386902753859878281236563345790215239623242523784286216068461072524638710334287244490217539259429914696056908158775688383122994040144367286234477110371080701115970227248867539583009574497738835320394930724995584459158856009987637248964296833190264176191436373334519836206682043521108953507737591785959135419618164150923746989145831315152633663216778766027374208086700648851616534241692325873719017579113345337218317689241149435562501770827649266280886665592894754945939618878341521855769264861749084813431481048923264063615673399401728427811271535426925537870518732836835795824894836576069651520893607416326569876225727954422253482615265627663773583268069992122928076586486353432299879641790206317975924380084523601159946125329714795678468303181307109306086177789804519682724960100760281619338394227793232079944755738780167854186267851110000339951922024229403579355088979899095264105695339765950678741058865314377761435223094326961124933199944801643052111942286457522474744721311737465254559282945832998968686773051221069503445839714365019889531802588609479469230721785434753456834117559073927273996138739923648531512028907596957882627373912044524674987211862181491225252925234311798066021248673400097382445031182517210264316042603632926367594973813187099015091179030273352364703480806194712952679350346735931095483784105793451832572904997431032224613953087742228586993855258342207243013192830351467207159060611424931041916505079806353790216377391610950582906135196292988211995479099290529270161714861683436684366237683708488681888894538677745940602321880253154622111236193032019766900370063436880594862297581186184096363655054646090958121848150689658993085657949249080836254831778437269390194242488620857200338933712567101244059056542401531942982870961648379793144118530974053593054959933587076664090922478049171788233385751697155567448953821443227676892903997960457547477031591435783749695984894305650256465486326426205580371936494772582853096291813231444331604058971005339356218109213835381551842226704021526288693914883443526376833489789620392353424406641947884936439971984854692935976250619436377887952309648158469102719664655358813629031231604845603532857451365724602599864758491423670573643534842813537947772884279450431585497470173078669921787220190730602723241610650684071827764083880711956991764773486994753982932812088489957817652117335433246903490230709745645905760251121171811540501333391106585184794226243669391061293352273480975090802605197191166990470818809740615953777339409978195367167376514166014611883762989547172178823413637717048836100981964592825561360847117791663863635519419680177789158348174550009726029619688886924349980042555111273317219692095640339699944314710461508798497136650220481056859277798956069934571949932769786474026062807517842544956941727874413211313902950926707302624535568834256929405070455533601249350002333438174764675605848722976398967563670314001811242654556407577534738500914723249098933583155427341511840344638595287341619331896892973490727810800602197130328233946437358608130591283983556177501969967477018911677822875250640322312913294394009322046845902339557387558661080331638320539649766399575902051577609442233477325924016429762612974842516039774325993062626853771204588914481190771228598037605132057360707940446256339414125900007521580143841859489808198353545464026513352491845374233938984425849595874052390969454525278970795239380660220775786173318103574722706975840339680849721224962502858459660294058051817139421838045962887942076920701123625887448041739466268820510651175595410213778301285908412253274193822680390602402182599247421624574684325485622812185852329169594043757688288670569939725092967073346614697521419362122221715075301687459508910407201049778433209283929040958708492032933818291032522500077866648416127536957263092531835561095636721401140167925845729429133825696382961216051312641177463859838424242993365052431936820489198103310565731814714129722343646315508582518168103319532933743652188116067546034261899207694693168992410531584248675221472856348247247329521334578987730085086196804768137203349587871209263668789811487306751057143535074487488711254519932328784212609886143950853710222080214423729341181016516185577168833656602443257540743452902164423364871994667843133973161619682689086270649477626227625541391873817779682888100892414625389842799094486655162939387104353837815522384717692623873694208250338096032903014810848162078329554431823274127905794645822160392219105862264740606042530075392960797105680933391166990754910576990094979010526520952186168343424874273425106495291454889503756439679599685668303612267716196959060743150621406547456867877548563616308521699804965897987240717479092152226374887106170254422903472069413342359268189195201452197810067005342585147582704113352902289470385409755956579381221121597522892646523516055407474449391126114355026293108044623750595777231399077883644602370902800790818236701550179300484275825332944282613056405506077366278798659625348682385631144425720535827822430540920851504667313893681306402860761785175014835348814716439950290514813869729670297943605275845834307403450506313951789117965949424477234297816547377445452204916907388710540178118293568705213067491139166306490355231262002631317268850294022028105635003609918398727313186726760133272349027835846778096537553681563536325085688177898715510355414777926934884560231311020511036961420475387315285547501100230555217208004680582941276478208090251826415496247148330442186912574265983884569779354942089194080695157285473482406305809766308800632575640511951748232000066616954919419984094165617657847581937257226188147820179806563094434661857725379386675504761672680115605055917470580219353198546140237422974638577958951694550994191423895320930615714169442217232583310335109179499511094381842517308106913511389179695598300371530825764433830669570868207782669940929667649437609083014240284911944071636275368634794468241773910038778964588651734095384907872787257457328549379530981401500382989905979445141266589567172337736002714277719949047301272945465665971188818301341843289532265146489149547234806447541297759847236073459808681143489892877330612891536263850844265694270018222045856591665555655525624526311727925897303978362125535242320541022342767810114492788102508483133581989888290661460008783453122343571480263224625752207982815597342894780568937956518584001863789057992686169935521153655352432651207683985627881348169539818390280787331587223631621637140857201342046273270298502424164396596559008292022124445115643652856490561489407896619738238537777219991705929347568967545977187300568838922892016800540129916265141260383189611854589386843103379679154519741103310860492902023751055555811313548297106381196690387100190321907538995407585758628080988628525926591040638364301408938056241030084092934687455600751521469252526301095269776797875497927212727692671571060078249840638794358939359800049252994557767371648094102952227225929314108038892903277854809969164896858761571878881423592270302268003547898795042069279845312954511748806044241483281106088344646509582551695940303630722411671778036350150393186015205411975526567410488795511794081221378122585743653508092137234062870460422360595883230178727053400832951829375019405632604868782203301027848657993898168318158882545871852638786368787986387233861378744038434472508604545478877388764069817321197724949928692761585056471806299568557071917117128879902334749642950642560458822406525972229043649635383231730224972523057219794286951587806781029500887803545510860276399004045555538520531789249305980274793706865359072213039892558447517333156313077803443616940586895219221369719109626742511242210694336895110037864045613178248324039752764711236843848985462761547926199960782892784293741689755492983151105644757810449757819053634733708035555712758321552125394417888188688052012093595106061768655082665238993489804390163884162525909377836890756538722230244649961402401090830722539023424579379692240310279060270942155662763222652898123838981330713570325627638063610574671549287309906685140871575065797585674119532387353435358613153060437090022634246845544462193861013013522535569887768127491834994222275888731073732027911737940916182019285908491787563171482980227653735166032721309309632893424992014030900473319361307644818275899958316760686083838658019552015724674526492766961444910913413145604746907961995195390725176718497575733222639991795088848388345431401598712116902401946096585538489198445533473288500708229288446341575284912870147489367945213182275426567016487833524773765735748660655061287749906663680265440158410528990065582032929992022676506955905094769850294365850198580491562628276744216601624163625230325234550598649561825744489734489907316880879701221096754269748906175043047443599489679115426970256728795856554457206347768472268068201565290474058877257265947104363765472822146513313194216077946505016051891933604716943719627704836463429822772780293991560515256350342519619986957620193463510827709917355902497182924611042981197722987581051145224395733558060150644658184716916128396602391949297032371157533805427465840221574183287271004912446764362424656461102081972160284854618338333534528405958954059471221210973419445399382718731251053790526236277748626746029918537769378413446843796262486685961876149450221595595702645809261244739872703952651219097713707083102311633379129637002359375046861369021927711757861195466919554575400780463871746099658234363008555178024033182016335870918987604303497807791822203895557635265395020973436292819204146986060788777827110767346670093903583930114367233253214339484176635770784610802781013722067703766328046739233325492715251456640580352091678679980272094455455738690194464427792902894000485874962735553205588736372549370670881220206584408749365476810966453300006915964182584607444300717903659494454482547768038113075448717751546471945802803724906391002556481483133427362733816672666722492935641906082469800331034911960688293896638144595442069128132171057641429867143181153981253788487420573464126907726954076446543259221487263127603270376878812066452578972894960167223203689065609079481926592040129002121266547617231163954004671177911306356601047041149924533430501161710223910361530655446605851560886290510025849353484881320024118188081542993812677785269222634515757483389008707569622839669962362059238955228839638773020112970192085959615152316802370608026990662648962294561415790574857698129625876486677949669269999844722824830376262919279327839353522383123970287500518169628084157344531245022688133625421585035189333017182586824480186511026993269089157798946721937701242290605275934077996211455868684125738020231085973154642445726869948365380126690761712639292753232152656264719173443828941553988724278644745655068627399756637241411114035967869455547893481029045675423040837330935175823822641361007328601304689356230315767814249384111445383162489501938375743288676529833996843034048445075154872944720777435329813605342064354012736653058891194050838463690684954734847454552776940530163692121776532598043682389835604161100379361190063733786263578433237796381265702306062791809253428887286278838799123742352968450372661535358374211764504524208689716571509543968963623092898518735590050853054727977471913671438676176448266993647570173958894689963122046669741859725728758296954557683737709573104653108604554533650715004412566123259883462404633643986338387563313832717482450447956842450197225137660719831009579243238370287686491388289153141959271711031669507799774703522218358319973190415336374578968702150199523191901524513126085146335847696720178770221763618933735780775612175087614560961590400801592361429689450130186825764294822320285329403160431810810773166519134742388789911901396409406181935451654501028604819892223211164862154208732213725644408274759263760855212179793876914812141345620321633025788624986009752530586255062094496924986245878280331641293670062711181525680465671635690157036537993800309222366449628265978955603173216929744444744851242354816747561342984026972589536765805650463134206972714151109362304971526202053760847889296284818130700135962068726576648087120642027648398912847615157199862363026678276228705954711886680712820697649466262402073550939369964757210901580447623249044453769938991382264959436545253733751884322960537046373596522968215428031937300122317868803409540693517600108774566940450343507784756633914664875383020681051209657049405673573275887200401761717083062050812878602509321062511941126161993199444526611793436710681092023085878515930835513388664476788694430572095750666232882404876373846291475596059603106858726425483104256803041846894502192069827760029496577826180972121468877009940059998475388592620745621897076861558035880024772399403781435741825273476238682553319224953214708969663433991055099936899157258175393690426924978954043231406147281732703616513019946624369989615653971896991911081726602777367556151245409960783601571746274344121687259347036294547741028376421902545253855281161784357394172574995284278611872407916546744637948691084496041805176439621241323438188136169489746904440232013515615304020589971183028820067458973615601522793916766567950979701523672908563708420380054489121835639279870637967369473730777080790340434327741026181560519321886918231894286610158191397373663997443714535932786597492723383637172815026160565793892184149547597548422312156855891799743096729777549441879717183874088963568466479874425768316919007872272916154853693068793109690115895735457759891704605820691464620541222429655839142769821053452150286348021158690430472282133485016778751741146592633231328078768224963105997173929483524589319556158149211153801983880352332646795216087650611220605040978654506301023099407196755965183096104939091216066602320615576175364200377811423865348610327263350043880477631344053810378780920630858190563778136491577250059324181906743106329519529200103920145008165950739775117856251603361118263443123910793182132249642186147586871478174230624494605663494831667390463466650278052370071266605730843551996645185745223799555776590601815594484841178689978265463656427286236342081597137176790273510154962791109932874595980563074187755138849888425899939543166539796161616212313059443967989702789301330698393516015553518236410116823916183655708401879999254600770782713978847397556016791547537636811905512856396925759012650849283646845644178693288269533247773154396397303166586673614899107019012100659990670617717871004172726899027393788713014558797486177823150414428782274210281229182726101849535028498150978867388000856013196989203707254696629386893378400838348766512976087756078698251543249793948990297756999097933397173181620836150157902085359727900821294187431733011253899022231058217229556578923325623826482697150164190670432059019491365557952861884240635738932672262830580920883291756794221941443611351216334211450043639303447915550393197278013627012830301301439832382447829834358011208772080991972249834318371953374120281990443762195706642261709298218108047123004845134012031324602821718780946524470638409420808679412929237443826322528340243698931117878985769690306954083782269045758937820890272993884905969685094225462848668772109641751991432660656941711262827847825124584481413471562984445217648161874833529181696403170125050064243853308368362838831994992605412138940190205568384271041749323603542264743462813403377823869466207572156653084532208425409246312375322616111034765857085818569486444940047199759933430476490236235239422459612875682579273852755444160154011871211486072513216779896976056474311813820422098841578655654982115128461335408099178773403667179816417919795320397046625931803943550107622058807228150188484522626810644591510979845626482305588658363136757300823370409477666518150192952514340329969299480150732693430989489439161138914131427412079489640032802511011130332455778792874762850075046514320943399790149329131338179524900818676399061386134248741733910131704920830725087484347306303003817413527604560072238383659553476202995178533183336201572924329362638877086091435908094001330258092790260697606236216514603953471451231675047077368164556598394602365356810636526615345736461479367145465301370927782400815941758399339002814326929326599215351416186654725695597422391578188383017141996598804417462730333005781098230583545606104963338357282401937431410543866834628584893806615478227350865861355362898700105928544110849341276663525237369003778413222321858939936137254428964653507194375051574559368857309212477271879385213400749135266269710497268283716424725977381047035749564889631404833802166485862892351700123390384291758678117086551259053392682192017123784111450805482911341506759069405476438780009369799171912592471647107639439979896474536086747640874175934665614898836653060762833850426538102459013649059430695058135483950456720204546090584129122642633680620019324485626995637604285054476703341478301673256853226077148462317295063440491367604255460195468994782520330322560282949330382176610941353512001864267906563966023832082718646285965299945465608177985263797245406727329368321485372565657341547828149968912333457009730180105159119810151639976496245864369324160592876558343286501744843183240810599563644789323044023417557560212249622785303135511058865675814421978591965516763639277814720813494192677736603805603186813522941443006165161749600740831850377561305615451856474803252859389590653554311515423558520328932171314058985182354065408813039224791163058106776698579252027068343127262193587759232418936052344988558785763930234897076641777769494894413451688524343415569247492646867392076622526984810137396160959696424443858384864577261486095910057759481527358945183752633781137494035260974369471958360700711409856864063038895313921381001225603880979395929233602766707742524400934693077476887372359465626531290077683887709227296590362502624431684845861802885941518043161674351677659678368824290520270987528407567148876906979685459187639604895998368104984973306301302263946793851769864246275097386764824420495597000167520080509142226187849591775044270042570031710072788231439385653568618294664605875619795058278207924224275265334898753309791278542489283870967422352436484815374349378562106571403831805121224236554438513067697738396378017971776934043402740662045128954208867558852531664050083544552863614753219146993860925446509582468690407452119867993667756631176528945275655075893420624747707533160236082677472835926982695343852679277747038129287045953533447665025940173086470011082481168011639061361185625546692388809518569599264682057077116508416500761506393302173531670843589027934049044041470395901182057216623230306296543253275018405785889213409610589466999782474363940373117735677285180829991819107072404101557583348075808247381918788763339345463318884843074053863233931737851249827381705558006682815645003796644761432421885505607867292286304832959831993988712614861229951230172355205774122618551411532254917154830276692312730095998960942697175604861659831730958860356332781457025272473744633700278975944734261232712106976943088867677922889119447642424304650994179713071465221718051277277886780998093317873063748308438130838718293830327384978695644538820469472658821863291839431406439441218170157394930813042857904989402929213203936273843669823514935849809349894522372620306694169712079533747258925810120906903897451036148763398288635442264603964676314088533804959285098315161110910082154794111602174025721537766178542271607576981148268971072831058982406709910081504643303760827139531585618049926389283215910809794562955203255567635152520898581034783627434061054777135087390031363255467885227000691985414325131753924021937662094839240416111578429692717028292609455765256124366873362641223099638526275594275587116034063209716439530690893768546542903526285202201296572900157702742446419327286545784073743230022724099323382155775826450632768581624814524330796496679715254494212490983844755685286920010305355127052107276246782985978938330716863144544611163182074753168007245628154668865352489160831375627295691396433095756580653229437873078154426891044284104249515876057985408312419587289552724226894459188082687427333245620858579972801785428392969871374884985539123731609669615897256700841794714756212363651329353227923915411392874128402412132376911291490490754493608829374646637751165471794726457057466423062717554787442073234624933865783789644830998882987961843621961090477766729381523060372615839869709979375274622135035339627746137282938373025471852089161507647225844200394307804791563342188128169676975842550490646144470663125975438496938705974349256121685239292708772955110055728153716408961825595852871001529837617814597184352520224729126778435847730271971756303320609330626702503360921913529291767231823086857337295847541902471499568525504123419839824237635648100971256847321963161752507294063191453082673594803236340632315351740705364865947727448446778330445538329073955812290727599750842825373198891721000755301772409311751214426957296937868262347382633199975331935808104410090093662175744635399906079018112504599143179732200914057392936765551286230826876241875227686950742394238977170513923346732836296334021190867402330837989558607964460054311519866465164552203407311833949614668718353865113478409561601601020178165599487807768223650119318483470255743727607944238681335640977867658851074310653172746696606753093763352532655658556125285103558881365537230703584004828418974228980067108207040351872299025456646593291842573690703041531348218811027777227805832218286968216147669819716556467219225031658286791079114000542670387095736854125918042506502694437692883326931191856312243931861506150032353254369772060980519860373174494581594902252228970972269614847063694828376690974554551766748246217542358128289354226793814548593223927364809158676068187497118967120394332445044757019095864222485278209648520799499321880542102168995596086669114876643827774806390146538864560653302942875513095942501960916807118770391200049061557097205661715449482530801004672004511179723579402815351270131228746806592029671405270438358389834111654311911639665865241657363635688651953592872951439618675858665570021374441297899269424671132015729940390736053057929202034021227928652024682242346627978545944841973785147789311919249053944605637001616430846170029666466167512577648829416234269198074023338070498560296423945328492786577912615005912675319568251932990128724968420232445335199435117719781583973397338591743360436432650238195364114807710496736672242723910416787561391852123335868490795710403766391020617505400247675877266435882342474281073206207921049949416188741675768793947317072215511114783261001620811273373234637277937196080967531189861654327232146971585238471031430249714524636285252050818662880806059247358229871508115691655329276507402480369895157732453078259998299710631773205314577638847762708192545423367494451653893917471221250282234280055008802780244382378177220726479085884911691275085217475968620408864078055873179412187300869657508317906329427893983531872891227334332768064868263418265886815793638627557101427769760328267044464140794106878318864560748149197730145689285486470666921570448848316332086808788853372141098001208566725867541598028045993722342804458852094813180184393144083407205231352531071318175015546001567341045614585307096765669700770244601932730455948404355100466757081041007971087238256051330507539690714146066032947506447494320660087713570210029835173080400820300500131875082708519422512141259805301893690831443785145651202014725086598489865703561911314051767580700981552990461004772861005382402770331532934923773674577267953588895750487370207459556074378342880596343825440419104784608838889706934185779768304070616876386302300359449528389374687575713136902812071768011457859397866161315128205554004810665671397451558590620542717638009315075006813692099128832160765863548011688820233223043211312413987459809940535514266027790013278977122931758432255316946687222761785486156558081861162747247257739788016861121962752084547147482727944165282007977825625890836106441996710195897761901689684510241885645956043957556880490594044462386567754105833794995508473276812407042077548862302338323560961306700293063003897264039729233313668821936641071080068578136813972951574872586567897077250422769897139020480582368240972534544537947840527236924324099935582408723244748869368265275675622434320856995195378192199202335918548428847836069119103923803465083549993768867164258572130347490291229632567822528926002268693313213648173628796933192455310139230479407122484886695937897200329640046597068493329056487341098993191401362671471076090850613851112723862070065320551731093669707119985274819582644031347599720747765192216809391904505825992180245286933242018184322629295422822994559340309359870035027963315838774089290599415423537254254923521289569891084629289592187769960048245350299594610598082049290729610206814922909814395380671292395729381651131525553804887253039755015931448169910059901162943268045801997935293419071384525693753825139224834933655224260121056720151393995148863386100113819340627864328549190862321242695008065307928104185096490018028845911334617248990606025277046517608200901398734702590733457928350424857109003866906921482205927149806014881406036288662379521641913848035620909061107655603841120513284842477306201729109110579501537123682295021098363665540334995323527625286483327759439669225475140515600974336898053616787848613355006260600816697150192317822302861437730845033944513379588150595385835736584489783806765743689637508197836347772815854213882728386801059458358705753062526114185686838696811633979030986353379290658263926857179762279696700929214101469093401876500093063745246258065416278456207466416173832590581494481955779981149012204937626510802948118033227452981442084955199231760743599762011600749180754222304727714337420401265088975793960652528059190424173370771401875942386758255911664395347427631146260370628601096978182367591425782364349162868914726984692552193550263537699406671498510011642325842574347295970257219267839112512887720494775892166667938806352874894647977368168882511362551708175992822132269680477208698964154382764423122553226841559053441090364763780199183790688985891592467688093079721994756212344009484243330261258615098914766010481898895376879638091301468026097977937682472200562579735382681403048668459101132473107037670108748945821140425622080331713965207682876173971816036531764678955334962768747383933828597287632945305080914992436391977685245789348280330465771038713267758737928459052020953287147268006018450370712342166389330831792629481269896537443528860179250613989520734845643699005392952602082744769563667490095383549301144324656707439755557038932955220564678010274362288597958818307801642776556318301114235194513028458859422155186632775073496532567415933978803631478223276977011380524680762304539990406342381406901930865723570687211843437198015011248719616228563357379480258915978657613294992697797485323962261726129904040343720844180691343892784552937304390122174694886407372842876896376468593975419391369610736531435839283482340668516322300421448429287743476844914022295113165783810969205195892208050558345020217241316184603207572810107361315300294927661453720190248342010632404275364650961436053796606250013207316854620173117310218799098443191680365530750827669390039602962500488971983547870680882006731776451891275994077706111167260710719924619481732803789405683996759188949951508620579469041369217826988500951726023133567683113948487805395521030872781520507051611393750718392981457749072647012344447709910215812967832013752916125282239538101686848852490945845761064293035551726763493074571050167276746033361771868907209985975206099786421821478748309267545740074196867797734883996532924775643851985838799227070781243315651867144665719792812780025942091324122511644083199337574118730657549142822825887971946146282534839845942811957209230730302097363080745142318509720963180732384161333996902819128538449571001072538248601783806076531218523840895307982297551566831890251182889019332580214974010401020274007211008607137614883792925943278118600168178406789689737794993734692957299303504605765440073521824192692430262359339358732019699609690633896228310332183544759672807862641060099960492577204505033309757117292742815228753484228613804779825292627783271671418570262968432519462978353214067162296346516090104956458369980891381551035108196329119958083114782822704073845638275089409163578836817847782660150826132893719792745104921158156842643048577117561951494364928392881953102335214230497890415182163839300067703218241802129750926941188800334422160104212822205516225599910849744496579610798260371911829942845739637093682880668512510021361796404829782045106972830876915515589176776316981482544229267488827433915419656216042493141846103932985091753188164230829929156421994686234387007566772501762333078969997628470337159609128611738300053337862577236797109618898389331092190433834007308567413039594652237219374575792424032123956698066981441575862578114973398783508757154146143099630649234554417732831817343798156298055700469562193786974163788214701259458263408972132172041622137966457840793158840108036314305782228638443944962522422995406630372486484628257634371202971426770389810614082316592361324365672264187231934605142548158281274781155385518264139319267859030811275299734505013684181483990806719292169549673517023273310867520332470196929146832344597381469577201799027494134805165926845536686781896989145082112845657036725103340058373453190362236539391353410570095346053407139534969039916146163704750028442082872975167063447738211266004075197316057086414648233748366449639405090329384408196261720094183087017089082102325116155000320178620957203176067641275301681883641707461270434406758299280570070539421011685017444493234034051857790194888704494774134555598241609125845591257878836822538543766878234606330274186198896427822640525962419875444270126567505711059262911262337486903033776664340595760812641605878359289275155428881882715510534323879334272751056157171469427678437065918940317597964915173714716494941251974537420116385176135138750205332406040481960474295417351788656811248094747202119624816464946389195606735712311572586212907336893721042288741125970636020718371609860532434083312699120210324897592164519163372172919329941443291185728958043463730595391165690671169797531663200321984333286269361583891043023098308119406209363013094661619709998746774089934983676378234415210206797304918008136391399564228741306111635626636047439864862023693171146790328899659875503992096599494370251657847923586349269710079285562748378375311611949912620390779402202730393317109792552837661770200957771084576417975275033825855046484438935473518406891235728859002078329803916112146426340319894821032696569906386948977772056765214649306363267939633054025343257316349248527204349084083076565690519215815310442496000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
66000! 18741424556541862054790949457194737267030848480771304262432650966184872100656846171681289218929576774930121124311035563103574282555288805525869035680968762933053305499130640453879525257516171043707826932823527414757166959591103141206106121661477065974998795411034630140041526674405600144100291046803760618984116071505703136539316139084446204358414774798225773967728633750679103652834603564216704455004903072596276102706687230132103698917961246001231745165554333399088847744290218518111727588253419417930315085028036829834363290640527636917091246591630271105345172971219882456952161608652561718297732429367019806745977520701429436031518555995266736341751758805625320670857504424486089295575885416277657600973125628566557029420598311535282754089485890204687063570267850612711579902546924648386083164283069539565647797563579091037583874326472704004302570701597651865029361585837803642113624369267595754243547209183351192941078466591757669269067755728206361491200057420122899529251145791039428716537645306422987451753555372988311085101770806083123530154029438945578768424597013420537807060474698086138845044062459774176271282209009951418722787753992247439899428099193074880335417567771386853097626492614140330567004020480468664401620323269836513939884422811073778262153741147855824829468646202132726410225946271270672699455043485919548438141507000686117110707398695855359201231526104492184313332966879000191663944428788990145537127958778117086838904782163382556296167522238921979317483267961532019409537316939838438981460687399618601775551131022527473392895815974690440486231711444842242500540313882831219335321500849460896658930809685995259986125448233043392980825037953034000787992343939935106508140197564919190069407236659854455055697537042017999223049676712382856196744957602399197482660693701238093768422766275866712496453294941089412570947792550423776395286741240318185308282339104432489693231241862759133073276421690440954439577728245688695728188825373510887840202383589459441241723892211269824245643895389258577976010665387475831552757988371013485578987808086229270681873832584198876235684789640190168465168901855681090227397284420849018339087743263662606374482726651704233794394660855795113254344552726818588493639279279815551925086135688762621884139012239230744594650662971768936624555715381829856002029709760566280641993111606093029681507109623597500292424324992372461375678368140971678759886901734629320543541095523135403259577294104037534641592803662506320280890914003254224214490193674750495714580723364914838116814458162988126246623898180898846210392653723751415670386340974402940815778640067360591356514052677302285693895984475539659152073737150855537345020519075261616789938500309313770507145552835058266382886375911377242983529425399540888173725045408161798204494809265654553607539547183849750403636880939813061794618664436404531412840233484194184807158031795670971536768695284029266306892543842975412635582846587841192145208921807248835543484535778735912364142079196153645908916387090553857305789740807735552448404822975159933448880689910295482546864764879050843149889979238359046576510684594476077436227066213902125902430567316162918811530612979786600830583668204214649145663128242120271930611053047280422694377315844834477448404674723894682010023389799194355961701745196495905598315993341890696535619764642350365665349184797584503001251814219004544293135383152893192753736642175417391734359489662831465468019828096907817357646416693454123991611845113309546894329230009643112813036221057064191570280263372223335569938714690934025255161634823172539626618645085023438855109280950771505624978503504104359884231233047291893575941886899403904964704509887992308151526828332357098030963243386826089633027055579278869042366223247734051652625395345515242133231337535781695025788392452397558718104948154448714821273498671671623789340092729149595424652982392390710243748289639218108603016889354304958071411964655255805676571914891236043225421561063354303225613958603555841238564606175015947329476050007052626283633234786488108441343169882739616319784579381585114590419120611171875272928749956897331950107439423155461361310833730313647198518250588931084939911132567254854824348118461318705151950325006613729854116516294807974165371955237940291338453733969499984635853466572326028268982124169132886093291415364846915815465907387769615343747795895635918830657884366811076749851459419109479846730638127105643173526776765771221263209278135921276294733531861805399448656343051282938758152698895362881912829665701641775055294583682772343581481835857548936142288180002694612998990690823423261229542950832998900844351827299524062540099392194086824231770949302654616741122315056827789609788023653315708421828566382862111393090791433867695259408540809949203492673541953407810478548302993215876147355531376398133258204799406003155996717615795509648125545773017838814978358820072763973644479933126538869165138602390317542014461790893976570065330542082435016621488846703894688771059595375172494244605225222292066428229768800998837040202421562547769971484806631802490248169554612037820964804889516221099616755734134711182013131795740319246539372427449588610999009094700868810828297850927092422152127747022112776048375010098287770462604263339150297369594669294554339256490257957362712687870993407542219883976734626830797359050595041521356998633163515467649706180993349531020017317902057034275004521815835744683663667780522564230725541900716045382210880576006460163529837962575591829987951164820865686214237850043335815823414482651683692261395440001652181384264083775611033732605437145448426084158692898281774004003202460013254205361867782056147262497963504149714290195046512880016372832972556698510342326097743411590308894919485452946291473040556073494821932699167114496864510997116312571949055455272267387234542283916392339564624318389776108063196768996087924667959395951660053834055615226533167435599245459632066466215755306207708768437949631237071933031031092688704709499898088765151336825085214735789438743272112117783602882334091825485333610913726809462688678896326597624778072062973465377775531480984116904363869321556641392038675849885098336649686199670736547544850165686550446407044688744715947736829335025318549587865901988714353642185873321688159613354181724957466929026812213772057645932384287578162550608912667786107324513186219273046213403335113622873935163364058588697407343519999565000411446900548040355822061623436224938267116530642019813972328342623016760798576635295829514320229353248699162706388015705777946602616329164809275351416757151134702582945555861840028526120432470849453014997934007113056385878670867807223373814320557340752013324530497225919104144556347521497170807644175267627656492223203592302133865557634220772061157190815401849838361111767779576093579268839177436046041296408041158355230918885974636164742695275313546501810021197725694130992843078471956819269368092478109418522829151280829895070285395618874294951482895261126462620657409200850878185673442597741803080295564012637615808895638285698582259457817706446446649172732764448793648652248734550077643479903998395543176224394885041536302809170169688521019942397923304939157202208463257351682276805368563058297842409351113758415289006434341763396841485154972639159470838385642324059802955223564691166367220809102089507810521503418919379432334937508959096227390529113944460800132741941409787382626117862198158908414246739341687829528946338592642620394888503277201224912260109431221724530983046786194310277071111711089500710005786326218565635803537796740263137478928623459612936627052659372397153033390414772315439687444259725854084998353269758623949237191336596378479445692717710791381618908372702478912247612469114784489137721247314286429001523597990275703814964722027986556021680875685444151920852567817979993504943421120968264696087532694509860348381689756480674709993306769721035260155413794506576128010179330830877699965338004068083218329398023524157722521936894080762404005555515690091723603604671791416519315807175975401342925525681012443111623824250828055759779727715666703620404785017587288216636745245779627550607136610015508865871783714036309267561255768326849819497311249153213051895696073488103068520098474952174319898501369328397754551495010865416835821516125122035519763362143720248324393502874732795136097907800113917179359082988602224770423441848538160607601775925807047627332708576257022497115546251268811445826627957745235478695682984498345484089430140985871516273047581197564121186581774223305406204837157199936460131428290398998051126419910881943341636820150088379073915174023815989677841605736381442075411043751380530780258040274344199869376101288658896546510008183318100451286131023890426123818479776344765315103362319942829485938337849621258204885958627204764849009107663543287814573618778291165320151000315584221954728207457033100607687749072482297288642858407065401349106019637977638732752322636863718467948399310037551594882546145875594988689800848862035780471506586406953083479073535903517201929267019243529151377580826561656539077680770551065700599762506370379835252713399873759936735104093245074190239624614055615648494329114538899726272950351964260730398478456503027226315094034601158386254636877452917924283332222301413382941733662891606375711133677972982690927625018094331677764249248770263636423661202793802593600406259931764326112119491760319114331397670732547394021484287788548815253105260058959208922636079337296001905189700046403449916072668621560409199996380181346089600394635247620699399736996877847890149289656796542273783054522088383007637325590681135547132987897717421856258612975547817913532950438767726734815075091442339863612027963227161398409265234199717431330231523049660940523135033951042255453054946108834463693044563585438958748210321037622640446638845407877542183192898694553330210826608073032520992376139629225052909378968052790189824323855834123583344884619702190960142171140374029596217094714724605708806051807767950341742483480760801125930201124280515432728346403594461141718696222975515531978806589730973829780697128981480120886491947651975221777173307494454085615069186233168998602180243170248243573981534962316938855084881440311815272128745646460091634441406135131797516574823838211261227535478373676770832099776286720246520049758391526572350492492722472526984404200378304591111025231426935131596677144073912730250709938118158329518281335995467691136150276997513555373374791117437712936438429501375353854186823388604288966720578097686333467440983110422100404363759744783631161096688465443116941212920273729839115031303690035258291379914704662747539680844974358806827991330486154157999980193866114499745936398069892157909475003370309390554876817839410289260029456125465802230847896148280099939314115916592316971193052314411253610816053079800607761809576143129198064076618560925919756582444764869007213887908143883730505878405669368736104676799434446566067298953961229180157764140854124935953847707079918127323654451501862420110567380608096278634767672695688351094509386867554977374747196380684900622535336784591557262199492629188443462544184722729711395701919561568060942135163384586924319269174513542873700227650247090783522115771349689321152952673496050274557491650320021128538000035641354967119141854648936251465406524118718474545610562608820866849301677034367761488972036160879329914730424022580058443658224490296948220001676122923883225121201520087913458878209561352895054585355823856517516469781958653432635847917790643608189415134220920102069958838688212794680092732887653037086068261473836152755844955192887244604915424923562659950144671330859303512454757446226997791372857198972784975786847914929548707360427956622483752607372222648418821775624287837564668069844551410195478600003930317832097262639384722162542934979536096944900157107540630517462373220160623314206367653587536700399128857276174084066314763753606986848272227725315435913587906389664782701982625527858205064635534140206932343982996014712789054348945831427897121348164075267282927672960086806535985098371824921108986253914400026891232570512274259473702029926702144588068176996889507941801132828487218756868506436115795734881257682835609159589747316462925415832937091710471285716554962685608990588232716003074116941461063072876501589380792182943815306066659632348834823297911881479572908919688241169815832512674226959153677008915511901237349757102452822880445049839987908938730367871887102032035157430994851889034950056483530863846872644516376863352488929714765080519808356071479936820229627260941719638615617176555968079073454796680288744905803381251811408219113070464793041500241434607909674321397032191018141034123839532899652313431719023723030412447392713435828015613888601349848342515415951844237628880770107289503943530567266818944977580323428287306359446208897794242091124514575002816447200537062339185939113131000322005489250106593584330379007668112139929573785824061478562542846252305048247492866107508474972115394675013175152781931812526606881839781188209068778804777996150119553671020450334556926730779785915478074572684151926600864380208594346533587719170210985117534994665133468712064980254975056758123121441904870675956700040364330397236298038247162058417602094934778034126802929684175419439700221988887405432238981843202321794088439225415142927077395439446249246181364573577899950717580565752832725175155598179311604836082053660260601316050853795405585060771218524408826803893861115492672932938698852151088147391027338683701012817285723491206600625565077581309408524074289173125393936679617119634283643507834509995321649079758963811651567406729618703880695405060223538382831037172257637652207707447095714971852783842155310443027461112647473036774663495958732463107354416293620083864763260229393026837663082632736429937379976774559238287938261233274900205813762963848236150556186471631893486693730533041860543323698274305228982885298901076656644215127252601651202389461611055558764985993020579052789041070396537451526932233880251319830609323391045224520891549902530322696822508772716407574190135184542210863673966862833786391702455118632359695215397979745468117477603983275747204890614077923323743626674547380412346397472787227832855410742343686167186501866772435384940444515429179235424326239759744419972630109195128992229048879953528322063996373278007037194420237548272770663908043114746088914451779971904344407183818120157792599086547642732723660821812302412525563126925345276695137197336405388322031834673879648989640962129792605474868934610081366946836077684439688940642249071282732641956158760656743400725223041767390606021144913724448133891773996972678775175280231409912201470204206563298809759127030088745234154146283854258188959264536532230898583557972898501180130011921966769562168757616232482152053206026237050516498398134099530720124879026319209653159830198355717131202230676288670827403044403102000395234009424495610791285719204255020281073894529315225860559452999967357339174137155754411250083705134307544788439386444494224752269495556399648572714117954914097063124228458128254801540272339664935329988716329037007318129924031072204093118838925324698107633951343594357247023723634691669579513580975730704099265631595414571803400477423265287430408503834558834732133253099123858338020335277699400633956580113551108296370887141487434770984055521604229721568992559932017943981163136760778403659920529969835294584623258408958626829720797395223569091295929743625056468258767677582719306335838807256052402666466620997885205958708466912920539980208947125074448825548218323245313728081468706138003462557690499492210153835538633224531150740957385372148709962560189098747779670746496226238475289222686730735781868277348482546698563070643177583832418796589919125807268526840124765425602541917811465433440588816900832507913215077305770545170272811091388627205007563267244465410412229355015720014882047854755042598629633883077506824136927295266319553800641707671636812895804215468639163025213565710602557502299811522445475461225802372658473085885867358768017399894857457414319158437819953186545360864492041506812809147199612384809453264502796347787110518010442714757364101479997814871109658450609849955815443419052623008173407257721184763836788671590789857317070692831584609209819507166140596660644667598945764354378508332526229344977652082216974038885582400440022158302819638170098218685713680925876530152994825184892151778082140947450352714941495254829949435446107528404866934258570674209647369786565867485691057808543233455176187686540898473477318888092601110909440671588213164774787567538183194024268868592655480894603934077300830368155627744068294584824972509403300847913434942178833269580554935397875699061080350863125196857172849722780457792650010147135496345655179883997047275998482010864709071087913437532404821215016191528086071980498239398365687332627126679709223962990399043969833668914193356263581164039097597814098306772029600474531420558427117456737621333633446212486193257955208312240768190520987066448571820415902247972291585432060228595697486947875497630025235547840665563382921445546582599751097095124833682798601400153411292598974575542103187351156908532482502534406720849584657350288184899952101817945650697392068761625919318488819146436167585577361942556162061106051502443868507125649821539194113762276550386271667879651300620345374229807929006053542183347843223413717394992967474638770726773733844930550938177463306709038968100939768022560181256789647483174147193375217314504910970357720912166306762106352181125139052498362571581734102419637511264541915569236246567710387159810665147261128220048915497105492878627894653264774951693869435723909984340759119908062033530065205357480708728307633841433324175028835900941787237791933730732244860937465657146832061044368594180253060677239143998323562457150492744101808747938255565960018932150164142151867897972838814146035837616129863184795387650574478881988114054838113828940206680489358464640272007864295318618084475193077678647907388783159218403241740705100203281169015303134214166337956085498962662035453827893028895363900635905687493640921128278353270110990072985668108504485424955307626325443451052747392696482570140785196399052470792282343353149209380464107964075171346095692176359890919287762568868094905529632322723154819408385681389083428472888655405587315312826201595551467360721620741499479061451029869171811269524563632938444218544504115660162644672052206649962703791201387396698911430448258974698416319786818341521268943401680572492341184672984666532785436583861422696765960864842791111639103817076893637820908810551804501927294822685124630591212460013165206600492715442953922342235309227597863340426609870392952989358660971147633061781123342631596107648597935000600659909631834445031968580437237584021125460426708332729239723013288087532012928097430792415590562113720799215121118297110124066419394293972799823481104951896783334928024498105142545911554839725277952154091676698291194520422932087324456271249909863780374887029640806047993742445014081978210157941147371112537899486930003570424771786314468920596090170983620720304816488380019425979721011858384485933287477290574485563269466967338946663970114909772369718505297359096068241422990971111446517181685833688029348275869760939441412615841285646747262079450244593214567563506448156841690318523434433888295945979104367174388202968182386503454435286559455945615145529042390256496247840789430129100561138156369346486859031984587590989040863495047236909112924000085798661432348871604532404237775757741204330421254999216225397640388146667300936254391803163056663922092476370396623973151888534879352224516024805785902486047571822996390397690802395646714127242775577169287390040772487250482811496587658866378473916059142870404724170513239068741316944512597899366872733742711237477148782711564254921615896229027203567004383041745410305829755754334696476449659074445964869388053139969537676376424270347100901718975719864303042397437258759961545705720069402262334910438607985634958380381946736972918728142572432925872347517932257302341160598068541935211893657080609739522153516501951736550580413397723033484844744026888831939897120216657048453038962596813618915509145178841491463493837480900065457316110052436775810667696455298929750785754110300961756702243872430611594182186404854507687297676891333356377119443924019400327139688055930325099361109970294082051988545306023187396807744252976906950124776434728619774256890749598205011152098399092926945614694061908597926920887200387643572436747025141103995178625726504722643792209829422676169545279196232960015409743405512660970741535058250390012152701956863764835205552973333922533930850539278052100106906986539542451512862495503873977891964393373919186658663196578663657894749525457491041077369014474397656808703801552797681842358556831377432413618436819522189668376944368488270308242814331794716582203315887985319969951504715196517197887245167083835780870747806102854758294707224943356197216870769945007767582154831445823256582671167397722576175881875903775528822360835891332397272694349728073779637735759514526264686097324193039130529172447414330070293763456702177150875994365762758212482768105359889384742974338549076842051549582192580831276353180841984195790929375359122127477203233347239894401716777566440853811942237536687382428811600688644935261229093360708707941999288867125446700035388435762853588385514047989116259043724003614987728067117937743825760572821083070359316635926329226362606244845973806278543516658852961358111853264687294420625574502921517371889035748939433237137935034875794164662686499831851561851491804811530150753877014449569095374815793013007190015516202983863226947168673326641252242888590188216078629603218608932107918440381181339989605648225174789452653478594426740477979124993296289445728870835624546465025951032845880919438763241914186433315490703166877973164495209634237469937384620766413252875902797950443296639964564554315025873650563019789786467252144876529186555809887980953704000918482083447344416593425085150937736588087858012630513182803887832053567964143772419901849558011416680974552204806717970899994139873174224866882586131183299912523246229333844987576229984832066126800161448855538722484590882148238412556537859373358154930630821536719224958316111606757273140639288013111808309659024130290631743897813059478711906079554295580850276298887106377764425870773934414179174613337591675655783848854098344161602597273664433307242214532016587772506070224996641812359969811841544877904803686035025953343649169128829436975378255415626924650168686884211063303879927381859530605646713238031225151446437726461504161786466179927337069931626381487880340544533922955107047401571464881646042236403718549224256114210193450095182017169156852801687156310468636841587999902859507291550069297464738006469195771329795994562674074548582877282965317147952524248190861767494236490143376858374166188310778123035865605741903760928179293748170120422127061916804052339622638820777697890964482801987501912115472520623510273489098831892105207602098968651588892350957183090794555400828229124191498191234122239180316540361933695329275366247598442925011021051511416500601379503208323963458256511738072975480107908803984374735920177108211462988591877590421580487460964736981517899271451572682192291810616496801168019963757976641380102231755826108364571177999704553228534493302590095489490310564399762035192400864686165674786314124168262883015513426201342801130591822707781573937500521421131566908510581748242311775962209108619243788914493609134725491353103476838468307625190310505979939213274528942662706208874412043145031422767832226627901621157179426184269098328347038645957561805522301176424234174153076742916574589551027319330950427939376882521224555905076287053500304915650427310367621652626652138296801918107451518844276729936193073424678808779046181452848071375930125564275356671252022834901841554259426188960074891778594809176098631166867573580191790258731202965522935474277513561853922193007245287497812455550690369640869244825591812974394458547388240363040756376848688229197067364063956015526007788805033558084455670854861882275005405733658187253004865021068918694997214134450807797370990015256533834578658387576682382839564801900811450968809287769580538012406365279845989193649727370451369328827498275063062246081626184362991524235413782623320259414528172301775424262034839427961617979780205987467998942156780426894713538229419469685247338334798968291477807641416434931062542601442983554520284689319604909763798035487572852524793905857512455820759565102572869569249490967330776134272436010212059727571730225288687733093618285255261060899255760328417444029234016985915797146488940763473143793563552336684288159773243822431741574964781545681735224879087295013254345836105680128888035601629797132755029848463937035718857382043314141969688659451276431016373997210841389953563711646430264423595327437206855163485630191429946580686484152656378929084996708512321310610713796351442593576510337178346530594050389971566976518715386106433000375752401989056634035095840475082235013007417216583686554430553350747418928044023265822495474222926794880396852560949442504217778382484881167778406992747522400107068495830569807182434082697819379729357861613569241843456123627797975658669472252713334334874555938133792034662196883762977857045615161651907381287441639946246943429174761218281936424293652934114106775357613032404838783969518550762198931965729006442392457293163993085764848752829694765901418589247806904414588963202541089239350712720949701259008405088207492625637794697116380935324369362573170379222349829762806992249347722914841182697485012679282957847958308334895351574264765716325020919930355456815807403085859194012242028493908176604074841851600681462654827009473941620443431041216429277703620380086582570448221721501858287410545252149778688144585016138507186541855516468448412351437112195464670717075199808094942574559601774666589640738932034667993396352837231249172801609253617730739511947221689900816431904074093000352296003535467108686766878718339103300432985701985187130749947839771739348231438268251287296405658330421043833512074985429498348045217011326865924957340135387752364945350081388904492771971387046276980786257370036293465423957248575085061506260809670751230020793256052156205898537017630721688588097277308805737376997530381706641423663200324583942410143967155825146194359552295578794580042233877140120793294762014365653518923523733410585226589675363581755337372831402427980810720689650190827338078126328652349138778183368366571920315566391753965012778179973407115665548704094718094465645752428278224843164649319246393076734835529714800351332311187404820240016875791913540927842985490547345049559753373537824139216059842407655280182198207350515769435897635104051181372424398327044602951987581763693873783142073064147365475470459920252902985669615538177508836821173149453415363612961780512492033007634694903955026284681740558184986821815193961406664974695935293297720619144705342783004398167240105020147774085365219580028261477380999369755222531964718942352689562473310177137908877469165508772147730401718894983873801161540107913261269760769160426071685327594198962258133033175272194357125559525108165522976099841443673157129448721327313844338101966965943108226214127809727571367971730859454580540231293549199093362227383670684763689969618744729550454159501728529485875494149725050592359824810051710983744685017678203101340215454482801633031953702690860848837042516780718739079446058108109111418203621858695705957618119397067625562558835937601765621958829028724085964234007016134683542990340882207231696763900774535715726646046684642213898717990797103293997908630869971921184250697534400555283120824353361642108648442144090672418740995779241150358748598404819582043989511585956358172335963680166170403934274241742359641218718306011239593861805684868618663093990918756786818209406266560050272901813154465399897358872771444995893854292326184424835630211492939883429303375399248907356393398423883887956329000657610474309279053124223358107927436547036227147239865485067553415272358623424192891679332234082731565679663910625425556375904951372250281285099245323420878049998340358307983695783819903647240466373293903372427760886514917668334481914975404643706898305756449762854158703694270616023657553086919741882555439391850408845329592809975921565098589328136064237622561453007731251411427152388221864685761423392606947131640234398428615399471053733106801283121191890128920281069080410115707564883055579270701558609960857877714762416881396022460320436286406181743766168228833204157492159266378937294203275906670333639943135855859033802229001870409234431309197263701031167370324577011779433223761969738282379497055829289341102226685217518723061394064280130560663854338578981986958683800020196457344827789909799845422671365346286749295943223836608844867035025914648928732891628129454939343868480621710380652045997055700781963526514154408787759674345039451588546937991110122883495885525664056091920672075638241044064916116016269972519178577572214268692713424597016128092112730210744090635317401985159424474351560834785208780215667592187617649861353429429365110625715810359238631914856562885085108673836290128918783601847160288643721304504385584600972665627211792394274595412728643711129417778553835038239808329182473650664464155925196667111369674484500604658275098800511054887920445492046751118286477980003193354615451558143069282955001877139327763274183336670526333269965690602294146258995125853757089430382861290248628604179380899511623606491318848548745234074576934969966776425404417213353341587533715955136666014451213237224904192303421575336396981249570400254488437195594731133937212742405015943640083927704416254546380238327026884784445386339317720983644334108436751109763588579217720847960364974934906219847565366571537533078524637812827934632079664234159916345596182676839462057303084258951497749000617614766742575988328669649416449952373509518062429864803587588518200069448849168420625918100814860011508269835116348217176931438204618376456292513481626618875858580031289056885510550110135840823992200223935055971805424907634876669633773320830947300849384094729078867513845057352872200014381722084765596911169404160346724064657247441108965476741099299960487460698391677053425025038194235759743135542052112367435683158954443044262742499270939464498778718015926488547025006129010048059959497641116299550141467215360355085832437001972081365026318587290571045045651098570790967710384745686043342367036872045114275488333669467498041793262697320092949230485224544067969981436392152042253476109106942161695814224809843032742194941303662449877288125724674003625628043359974285429520566812496910141382157573596579333277547615013881868286086009949083288464173616894483713833566574588519473303077207786985377237979834615166488436945503864382682874279981874212800660272256969991545785399357542669592205650798838922475253989740549783112849458869646510274937444073707152357422759965203949081395802655180571648740228350438948368295148827138956222772855304201447858093060562763376283345693034617781269672771884460209438544860275817759055120663365036285644715383661649690833918546583242269874570808426639658514426963317055364876712255544707282155368771664361838011864581860497478063105897987692364566504585511785187805849736651458955074662867668454517106001168742359177782790970833151864078742869207238006140457331309288984539820206577830580196361161071128066780884439099856911953473248204198917039287258898131082233282946890861596238624162069875538925801968652685040678249117230786722977430757665669533699163641708937213865268245856842978280857323654708908849324084874898087181450031655265824667421471079513344715366931510918914984314052888659393260751156690686633854872767508167745307572649322303832429544252542502510911840837829044967589342344319912071937072659395141968198646950846882382069315684918678071111600356937684011305027552427411230884018412197513703698102123151639364988088961264597163502824150165595057811621572287191121406962471308069156316985804165416411656742547549345242023073939227811697695613379962511456598611017931558051811592385053232953759215579973146988952939264418342504144814548999891975876072568358692722737338993456947066774414860549577763731232915569850270015168181918058832566653186720104492104568392531472335033154167040593967828879937099818452906161832006182325506081258233421198994122142484629274036851300152662717375507456714295123423845347661979128990236606268578127255348864673121956080262624141722541500735186086772737346246127995219377729220200557550938591968869401558225360478267173138188556963957212686944208652879086051778914865443896225376812293082160952224560204377925183075375778182692762655587926142588796527503008754435624526367576934758632526317322101421210488281317477476207177062373865498902607511529307982805169634295644633392344698239065199201238527540214820025043106174778675987493310205043200950779613394567415021770618422671034885881902329723940074520049081209113167059339335421798120438067839992851717234784208989510586260595948366043050175772904321539932458186241346454779498149369695942769478262767551252555344485876607578397500992552524834436533848524884627466090988887434659011868802066439368116414873764458739456020639413579596358764730043732024831651184310498664799347585335750617319992572433941350213406910182098326889162902594883577647314063858452514962992106090404105437764731790949854589608620315040347958862135402746763820864045135493835088388299336631056188234254116215837465700226202692873292450974833466295500028043477201827965119403447877337666937218457664239942793036335181117370989434533727041409696859275490567984663631936413742216981989324539756417533695320037297555942367187848699482160622280365796700360618915654598642680377158995132848384072433010662134928692524282598499855532462514273558057352024283346680506822916252252332199202196736163621102483409977533923346300978836974470739942500266917811603913212371297903303679582560295285707240186564831316406308967252127303857799709283441968197112966334404166532698285440195911246250808435494759722861873404492861797416612487375229638667545634432907888282172868101047591260170807523339944593036687475980668855743028173200924312373556834823404176613956343532947446862281891399951233552951180270054632496349642150930370821017362477844922614229198950031173588233749154751289050038578216439465775497962544321992843520444033864130218879776558785682558711445999017981418346386564457221465065216877826580759217706679897908314036690416696089732815764481187265733366992406297917832194100866533352458913279920822897063656673949911197292827826606068545902179397213287339008246441261923636294975150915455715107871347531833462695556117176797145789955000478043561338332499430637711282533631097417884403884434680055662033818726030766039927152165029820696344777705031655454287159376312295872002861518282676551791033472253681769385779877377293731430698554199373399393607420877237423571324145525557599533642070289165857161673649272228160597333039653500285752973725980557084294904008712293889247757601152888246534626468363662730136212896164784189996337009021341675876661374872139776184337080785131965790231168149561664598986087276677537030704565949938920296860884871969324159959352757566731234174651598820348778858940216808684210833668492867580238465657598298286649821460659395474397124320028513897764673400692731566159794895214480922069791339264389909689613006164730904681087876966292996495036757278273823864956255660921471909018150988733681983473558033730010762434088097431701497815649758934678806612623940576628681938770233273807344363478922377904546920352717139223424641892111558302820130076911007232926699923278155059176266832949635616464070671577770724387051995589613079068376174039169802765433501920238247177184855676124595526515814230115430601625544623014064564424721816321815822917629488559953134234951949944057591618447482195111065069029198256995714021118279621376536937547827586817116847094542448721916830375781662866906173487487122955145923248678400893499052509133263771092342372625907171151655289066082754374820490107997237717373208001557915438818644841967615653113164631240789622740792617393252764838869138808329662398345756131007536638523320673667445865337747056807844460266885654964824880823133100026368119040105757259484309464067937203461263814737476657608899920913500008157971946720425666206088003641352421199885945138511995486640539883941715507138075785115899327462043322370535541914958870329990061242582143920238544703928500432018199485287860875536030054089622128296001593093195612416201155815349936061447493180476389180055485515347846250099435651069401368492391813082846356009287757689359116256707725673683310269147323513505312917697906774976084899369145476587824450648569225446934098666732371459420328157361847202502635528902305177490118971234619372622939115737019010390551526499193179537259586149050768963544114235160133241645386942208374004800771016849683848650629763205984567440508480619695412422792192255487997541277097904877709565658200209825989462590760919788618764993869506807625874403102423319160926663101309156529412555661680083678664868884871996262742219616643469905720375797867052359086549040115109395695478891203311020079370790073991303903411855596238932759502377763234908238903320294472746890775280517620127851397641155309165943858981635350012571526766236337589044440896655346511401327480633586459051128615325791996536284756122638810386698490044417972125315234252350256616649646703092672123582933501186077618123804555869046982515887003803494502366927012853467193961193954874359277847468754589122225547702128198447253874056956962434872006622977506476838940499391077167141522559163487210343753273768000385117824465796771896748950065817890388757380330033175675685892374895899613206842023507045910690705200732569742151451816030580170074530350306486980630366844423150789678779641611566070362075762915477578833026065129669311774465847954234636779090300051208599016517732938298014254889059319737696938051595367541957750555185836587922947787290580659364517917775386014115968258746006330078917550160682931479224832779876189833240528412575850210706757293775608988414746949254258720007524015614826960821130652278334024962566804071438832495877480047285078907905191448165638903567845707961713156039511704935139561346034415832122932873831118907409530216427764150140983166896807254863766993404750924176518430865384141836487834256290749730677740343737588545656864105665816959179950418590668409797481604387564263135292625305404065977841957223759569434623131217018482678332123241225357941034891927511735023847293925501102986394656844290073510208833016579661644183343690718467420900091729858260385619049198537706205772584215993728898871183319819592477545660286246911544737158959057556870517463335426519572527722007721522106817657808369867786558808502197640116376696780787290118820982956838061530227607421119560822918631455736331200668984153591965667658223401242609653960550714999185136071483725038412863190901636242919641433250921818179693452989891645243923431382039513208805446534145659237805544707498845413568911676472838797691888469071041091145449004549377633221230133613283083183126760990718863670053300367311591569394238514046631671551610593741643103829894732075973328809725549922873649276069721481675236418124336959150231735318666171208783093385900742985828229966132207083288884615011299668536136637601388002906640022361171772305978017637086106592914613832605032734602907646594303123985467204663873223479664603797803591652836198823361699352377322008635362838162604309047917756473131990497690472973909380247034510857095921553031684255152314127020393257031010026142356869922017907457902361700742541507335342568857536801520269332668075947099330850923429874568891025498982750744696693755774205029127519257531352428302574080926296846451952978520259975697916566573178018566197575309923620997033086899440806938438133084547336334952730940531187255507790409212439563244235382322113422056235283446338029064271777246993466869649136760204339966612597737010861035855550885369237989965264991076627310283714208485783912090878166048405779569549034044116057966155189005986206048461875024701452774954356346939136826059303338388995713669351525297614614256276505060880049612791126381740360813503498419720164290340016683835902449189461936656262087368409834115737858764304848161302563393979468100101286080244095139085307164863724662056703191112458411506546854385854980510914524630016763891226943767102926237760510669682447752024851299011971433892815502574747115613481905139011517571212282252657328443885686612263946060843339688860062830536192482842691898876714317546800998990603994513165788107970040613219573586049886268211757378826671224247181323177552717645553700728405014256939653473480128282811406464165781496004496826929406547310024777288647768433625723337123914535835726659911678346543385168921494866322201512644727583581068400414110864672594417247000697202356801349907739081559823640543021643124453902431308059338881333398450681177096100431738369392330032671062597410334427614982081371581091755139654539309581423938936818799001617382577188638679850222571303050601532678041312102073575407968683053523529683787100654258957433600954134879225034990090558428817490006153183645934458569760368702066093913536175568488946271644010877112774316977989127562672697227051580166546662840061319661512913928230592151095944131208561927462145258881370047956228258061018145781648075755010650799030265671826063364275229237235174669245899448198068727668103511289001731934784087998560655693891171204532248424877750760430551141547071869044904395855270162550247668697800216877851948297077050052057941811769212255092361166985267949137182448237231317675356998914047856365537742389382870690740803349293673404150267706713651827967336300375873652403301491938172510993721472856756582296567906764464140849842501474080275942771667402418281157751258327770410406763708040229805641550311106152622654749729106842628145218934516611072412001718542732726325436491452227235769493519717234474239885522691033123694413717343795075017580298899669874648493169502618517996213551332544789136655684319500221269944677338372598485482080279137191405667373641001363726674517705639209558261719071479331724296852149967084404814005136672260949585859239629426939411087946791358385521330943402918988674669334046978038716556395132180139284749906121111202012499069299402804017579349728250503840294325170886767872120241326564339410326809511678926220324112601060187989162284653601311852198171708937997301208852883118467293574078670762559940867461490232438542999700930152054859449796001751675822587229137589686090129863674614382212973970131340777177026779986359480177419560438813625865661208655920953774011623872427190680169970047367409930069104507182024620965160756460429207565138893689238103827278794370085182351945338889379367233727177374242827959720326070836027166686128224013959262788798707688716122529689842982780783753837588443478307987012720844840112016763306404977298658744307898207260813493456039542155937231785015980627979909014217072257367654317666920516870552000807006947076007958886054214167834046092367322035662468882923765079337797006480273317434717610962129947689307136357638677695203092854552829176956628190405303441363944939481691454712012664442187375240350895680760170707943317690252648961476545644481123542432077270774259900794422047956901772322279957192151090205148879531863178477676980486499948945645234900283196101280770103321113433178064276471108885847699821532174057605204756669567305703603046673328700301435088785134242403532085786798870341672311942409401874903028052509503326560057569796544656933627949644298987536450801766725553447099292917861065228308201137378763891333133714205619508305622826576583114753388144933545784141041058949417570959068409761491117044933560042560945438191606643628645416232699456987681338346903050691231527803733794761723427156775358371716607945280833385941141763332757888482572168022088696021261771065931964619847134163047440767531962985992294808847280276078744320509653303385388405196927712999046766774900852905269254227979969948640327311908951244223696217261669204150408088393258889371613615499803394350242774366773635447735812304502829161985690797679117934786786383797539261630329213637409769843803541757245761409737106703774039730597219060648438774710293095916411354559802105232688735390587562783447535262071354101441958924290978867169275835074209927678221558823955462995628974265056432099530482106593410910215243674217558144687277037616162411180060657024262284659794491598473320106903685683417934608366026208908493506767370211314802911114023752385447071593203589879226554235640210529547221611905369981757158828662313111553736309096509063080765619960587938563404614500400874080615407780666529855591305251239679155846708321913197551925161834254721085066864879354550843056142904922952614830854514702722821501538821656037236502090635321831482200702983212121781627100350009043731549371160141683553074061564486952651778540117333035192332158603177832055576644893393557813752689604567371792162889313662410425300026876427001802787005847120167647338680254573696466851736895714906052458146976521387183021780917289636882220939808694961078279116807164828740619283308102589894119962808415342676556691326933089868870842193861898414070967166682006746204204163899391633008302107119481368470294503385864251582503837291564582547914948436871090131587568091001489029447765441616492823723098555176836241473868002242285728144938406409973601757012342469788311872964168678750238209512496530913963668899851422327139969806243642924974602478201651207315618353804489697773757266825241061973332737129349225977593628432186256931805550793969329507158250535440037879233697439462113605777150008660723949069012524892013145449500411904959097485163100151940778854795421552865055487221365745531932648064761275999885359603290784594043352226136043035337456315226996066413881119334102410000696973877701106935168898419831705660354260950742950639621992556966438225827821696203995321258478098795395916820117262584405931999650080886628602113443654114777341258036080496851392721080964402953868064376164769900232006629035454806900076855633318302240069728139669601751445800641979289553623079398201037143727031604794230484864900767028825393517401116992898334434806218121908338989226099385940250136049167443177506204864965709375601808106475041409494576212585315211909496754208407539378661798880987124774815577420708791589138257079414025439534187906855277169925170665121667365152569396704946774694869798929367727025377531408096503509250102704590845008068479179915147965343776711699132498703173956903889798759653960263331491247814185663256900589839259441105916997829145270239415990177213659410431731373904746823658582836659542639343059654139801131523974699773244758786672589058013382577527566758884946573905622396692737341702018732183207120015552225436369699613365647927713296199699133858812486024367356095444757705240161949430561142856178918866749562863334677048738036184751128740409668610116549720597602365692238747940663265174367584466012866221109857873371591495471794640423613606894871022351337584929447598313213645612421453064754701556428446770372668426573124596986547752099186553371532984635107556581585156172815482576053213750001576958254647926397938564472324427865486240568375226281960322227320350686066556377569292054977749832919873568969597997402623177535138893926923569186477479326148709713987341205619438269348287236840097141541768446872346970849803898171608522622361695967068475087012899827113684392540409844461410895830970779456414168198195195936476736311460858143914869172406078641188268548130825883054216652934719249455609773384704451306245005231473972612714099694377553799766227281626502882864096374415064424202453061438953987640617042429028327020760784083915661770576277231767639380554865599522653219291682299680200281213967981342056838883942439258731892877100899766042489617992995145295826372374902747672015915234677845977654045595975097657192029418694675578997851966361004205834713848861308705236825600300509775271207268162724095340895081418475156987679740084613487774149643197121283478772290077828824672717808853099993987114649199330553965373193129666445526368266320613216562862290136361934786242501590513231075611105092136851419643650095594258104761214454281558265510442584167410066552553203520022214800862149176296413619654112076756179388464391879883696841107421393704343588235433577529551228257283483807094516064389031431500106068778547832789975785667508170692865492914084252899629134024799296404931798169233780558401382381651816668570012695417671490375076762786113422287719710750865942779026268940449110554623545038077384299129107455784556695755188657305886974664774807550292892110793817294447100024055321603490213697480688713690203353866357897580006367115502357190128454893723013181616184547659552785693668577818881935505551629052940151639081329990493355950891113130333601984255314117684274814772404676403044911164850524379986332383908550407238057017805374362174768014908939261764817664374433831670129930969518359912091922312894317053900221207502759706815070494252261730027903931882649832415517056919732569534523066436163277610793575441009324624089129743270760073901071635500349911269982188785481847076527170904876326453625473499887254470837493417948609445057672113703617490794717014081192652038741749970759410743796779041380913135756200585187312878286235601975584272850351097725913880027350022284674163090138882086974831131547648809838308590152813048090080122102276273680215315227904769246434311772081018491359319609567269011346172123824011566831160710008987119031995782705293311769395176468039176051456935564982105425935278841718483514151904860200086240115658629116177486681224242961117049477239087610906581218361749269945021064054055532258063702666164159614434656207235200871815655488726794557818775675343458369018475034253208972436075946863801408071049116506082331560109424449381071826169588674200087011467626653989305682752885005304443664007059938362586488001459047685949175618807800874414003141987345134787145422319257918075257798209997398151664766960804033175365060528079277176997653643169489124382693526455934440760578760446878333352506880943919383257319872097495251405572390771545483018076660981491583875855015071884396868376001964257262604767689218852917275900828059608473028718209850457650901969995718088503223366317072835487539260953067456324775464483402170483438465424269258542018143189506000195490337767102018215819808648061884321321402346893329932844359094518700543047498838376229254742878882035445600778553330673179549634908664732876995637977321517789015414692592897441144425073082827971967142813147420324917088551384924768430945857223679113266837333247974933360586622650690956081285361955228733557380744062198957221365513705479260509054644875276788349182367210817108719647662413273717296375237602896018052924733168778294046747414980627877889707502483629053760025448185619881649412212091056831895828581691157605682783606753537325984729744869374526527145987449123253342082784715986132340077157641246204289815133847841577094031525658492800633418926574840619526043577105777725252967142972055169445268218474049857527301289898637919405682455161536656930126176659922022265895069045466368803190014857648092411375963155199370806957663652298353684406216730049534713986049423344037995263028103762385077721012675895226983332918737605827878664620820000485901243938764214783153331883802909259488571161459612934432244631116917800682820909377009476904279384228742902981865648103108313324187038279959620425143296500031986409135522350774986774399332643015855464105301966122050676263091554524185954257489349857472264398449687228114238876234512701057275192064108781298490910998335857754687379211108856805960587911436862626050718122541348310819130039530383683428996645485656540424818604634947372361451723028897535636330552220232006070077977911025890402727492237504450563826230813374822706685531547329926761150467330608901208377524205984838007753458477369511514132058558864258843128455141062118597205437678948849662054976404303859304844672012555630982279578437989057469002208687486143328071658954731861391462422224879540047597454107380301811868713361876181367005377305753722028422739724902234586408505260062496812321317496811356957995696205180549318781656405640512805163992463749457084214217370711246002291772417153448565376138899409212952890842699951110782506481149365444479540754277442104239068675291797715694472851564150159562015156811758614632039795327199709652283625133436177155688842911195367436315158417549832529052915706965304557286946923044861675333451170834506676133785874550960712583382760778299000834960099672173381553913229405691820268733398445693267660003951297061886091739261715048076051766846828969017383411778330376311265046248666534214536715282657492515625431978579561874413498796543492112152666406470156949495117824887927394699620272601356889501127549456292249670693862625567869640140598075922108440404560393263438726107461301078911950389745250846306115547488435292811829971276196873524331750528949879316171158666448574218614713613423276561523105919414650773431808188534221668659297800108266710954191514256686463072494097857298687042635535779738087012068052707096295696565669572076688681951136656488782719162395346889262208277224234684826977538925319027324572021339161336408611571845804048880959188432752991674806644642211354986780561017518410535033267019653352472250193476700251729203656287934162195834870480261413046201718828501297266204568592776482495176304137572961458945424826510093225856364811525106382503519110549651687687892363657581431756973783658605620740035134871922532879608466332229370657368140916327864357870036551217807580102268939203433255753973502922670334448059229566943691813607443138705259503313373875877987808959318933188554798758983486013289629603474564568935207233434396579597400333711803311232240125358887975536426798835581168021316461364370988634048860464918120514738299104235325998838758107056800344444258467419197500406869010940862415985341575491294791905269960675499821839010129111337843187757287991057229860839147769402969261070646520754549657053089005791251708936212970229472569293420016138667771529069304081531834499170016571206852563355338856952925636917629192519962251699396094725604663504447017835913584610281438789719725884604776579236910665614582783788010447863871212359476735457494232672385514445221192905918843563913963946127586456422105226075502123341720104433880450073482442850040961039792674919382167301817090754325861724114227147544350408380544764996287192585241206582900771058649316021720874017223982215871075284460055483552652350732542638635310483500617799374982657929758420543624733448887317074024516629611904356301242021085079837224761687497178067527927712017201521989768438874184638823639068051696767855894405919550239925123666042501889478450799134675906239189483307121189649039012880750295484656026021256792869859747837009395697931166948244600723292549200828456610144789060104288195792004035275683544998854973516339916301063148761691830625583725203263261164338741152968285458643596353948967532829058498983400244459530585946188033622704069885494937389749925115319702362222920518349490786810751772768811112591816057669555195758373934137907359985647064045584246977378004393879338561830592400674208822126135368288010312458397033695204545050499308421682328542479968075640222875362810171880775425097902838016897232470624471089937115691444200284552666220964078152391777632349643719698953297845267658814005059241920019031877402703659627134942561287018444593631023332076602824997594681640861786183905874459571918068697870409534782946090101465080853602803845737605379741238047761759834744576849916123587763807731586982743323516503368610980991970873759050495156731307371003984349448301349551341934112520041995385721369949596711759660307151334831182149912043330125555318859377187384338326797205088353237448852995007343186701261899122444424307694062895201171402894972264155387023040931268738724022608612410794180703671012098781625193459607181968960519206838487120360951035108355208479785963244475892946503830641341094419578990043297537498561507766138975514217466263174304390792735156079069269809192445806065016285354075258975083533615728143731936312073770559641694373819216381966254600676768369866229380872228967283577437883522126667922740286751546582048152749782681600982524282774204115252405570102929922912508216093278014760977617089034538728414804555150414634143505655814127945100411137698828641269365974096612756209810239932413372533927284026944969630197511552107112729178467883981735033835276655252573341174583262847823063908536173611730506161869076095246985245667747987197224501883764704652499713421470549272983215910979675577626522224356549957661133324666604935925535187952683316290437880175136865511034197253547888801701594542247065348430717669142396747008149684002133254530674460681490934712181302887875763756880962364352747137085002961932441393890809227683261290220689410006274616417457850560784014573467856534411363467587773014335344481695020724810233280139509096903494232253260808610890741509401811827062197846042067473717803135014133248542871677700132090835936414047605388012150154651597972237375115691792533081852304858191241841559090797738497172720365360338092882054738419874958857796561852078902805699253788364062639786577080688742741142840631755146428680019162687282145108442894818324221485335030637752618113765730995418146297288945638817763870454753201996455395679956015321914163974469272166570747242352852942483741761348109139089082874983764771681735888826155023714933753154223443356649150263801376742558042860757830142425328592181203058050897116602314728124080606028503653546546184028681057718033241998206505196514348978703592648105235801067072247858214868138402937830205019274619788050494010825234566610624339616915566513977317602188329036703083648399967480627522470717593307250797388663299199992584679549380931471881821728805914719594324102369623921338992664418892198950843596797252748854951339015012314304276147822538759189259946816234305586397717793943982468677282187474573878868808243285988896467885947240348565289086901688287206657172493563463502828078678179015690541009124596738515438180208150374280922555225285073839833795108492976920811275947120646759115436868154673763875591614514334885892282963075315265791036950222124845631227165440776674701053268999985032839677234139776969363493060908340854127114533582746098119296007726122248356194909498263768665878006294288737818623071742640687861450062427852667552417060326180876353508562585595041625025738680320071681214776707992579007102893149832925956670422653565068777005707386761319580902612235784627953266373898724604535672850433318147236028631823519235236039984312261339170485518015059720344096049124272935546232474030930604807352882479556985268420639684030369614551514405971134242847827904867438134388836703138736307356106461774395753289033194975864389594190087733993144720423409887341831509302696509924037023587179187488921880048379948786412529890688180706370464621910705141721108005151173571510559765535119721193238019282222353239423100076014040656157878374197690147978932674523888210332244994398671274801169957866572658290823357148900646685595014524104555490339817051587877249522815684485377981412866800874191170266869459479313940613702695760431642663643188698948700716293021600302222168624024899497300124657822404231066295717422592467142707495030415431459322219107562082789153762885550517928420014859072847183205816150761421037008700764966390509239419033343647765247911108786023468976689005522702574632745747000778785601807905520358427871348518260346369067535373554413667182093404475339447409072591924152347074956968388188971545745681195363126371985549320535591701692933639760086186619286113970841913655013032222652926572714095572839453705494160037212111648953869378547531309046314078329620223421962589162265131069826414432238545276381493325574102142749672411669445108016625149649435255865469220495491175814775830086616926429785703168835457401019600930400968447567387255600772569986089578547613964625485039646745886789333949462947273721123884021650093497251583586179264240569717038831889623768742307152636762391018526661715272541102400757890781039534911164239620461568611700370000569845109608462303678902090405728179341387822736479749069480209264222616899633867274647335046038549614332324385098375946937238431429690447638654296242604469624302988951021025820122413113410404834175794445885469192488636906703972246265801306004792637308988476530193979549292123415429490740642255140291102558950934337743909497308975558569279443064810629200659597927041264283956928686930458711199397326305625588889569583829321420105913546424453997791473598172379234109786290425382290305858133053715182250090190860788878574468970185947754824705147131687139736688501868346500968597650691991694270981453440350988926184321852269786940510566208071522210267652370486136546979472875369135172362961434436580521415090572693011681555711878839273621266242669109351896828268853961525547528441265322916860143549617693944067012609951530967621791408179353366982470822435745665272193621926755640830508904909805142818047600907840771265416625115890149721961704631954596993657196432894343371606602738069535115626586915068747944861001777651435069892421173759892808824530161683231312869351854012551942701693046666497337410181349371379376311345932327426325080077160429000312023312015512222863323016414520486768031196684375756016747792199220585491444980606660781980489175099610560919634037281334707371491046561496070013048693618346540243513217112134929798665784665081061688508093246438762250539592079951339011329569608626448708327952416466415739624114332252130927205385854628597352512092748616636417928490125672038046667967320637373959007654669603117719624044526575470469476969799426523016608873650591874764359158069541166782071692269479100748229354349624270961839344498849244015866638662073062304072300400258406171238392304865868643407063408229227485963516015084024486133861160298536609767799262052782205591124974863333858892602634597464791772722208431544133857064525945000210140299632760399434931282093783895810055168489237214857098689916846308285551902915107690135387906716213901518034165322248444205581028772671419006524468070065897322228964317802587378440586677725838148327584185335252910388132664235291713580073629507569042663524160362273392579997605795985797349105889621692416350519234889874825239129119075390569063351448620510171781536077553706832686256823678399678004906900289732873366821490758044555120568161373776680333560707194834776295362292451956902400002943546513385424017638653543511776686154138324653085735030301152438797055774508383899769604348313131156426269224299607363936188089738041418298891795791888266169905939905131709795359363051880140686910384265639040373393335839017655063630432409393968726509114715799518658313879840311557638533291728246569117392607353403166485576502911697956119021690782927151060296547202129182534856131088047554647319279862384137775049983451406241255209348192232352744548410085876196250654914051655468502067851428167773569870310245977671470800262110940584084481935778838160830502676411492932991635251285242252971326242186293803965066310989562162615210319949035095758465336727902652825039958776194889090568453995277357413419133802333334335040849569529867833655469585245224989030121601637807480758614833768043832398937716263317543897314046944746357690327184192551653711742569878674941347488800340799483694545439241348348993365911621623147303382391142048400057724658287025907494173151787713360036228059773629345672315023005306427578947754744789649450221658720417436922504775978222415772841699800435884130082985113725578565634493393804642777160352825866562109481734561552046475613046121893812867289273617376567642327316896892574639947348499812922714960932784269519831008829141126703716518509970911357058571578062824356631826094391244707673658587875219540295541356930597148256887046005728552413562478098443055948669978486909091894690934963124894224072770717639594674301735928686884731391161089636142371421802096536051260245097263538967255300267366056014966771439460429951085521769558063792603460383680671181377769425913452477012787096098380866464130041023161446386232516678858905270795540524837493088428207367218968264246436257782481405890491223407082861271847401603204603507330889557122848657068773427637918068629856361458903266259339844758940581877913771875160121459701747844992234655234706466388941068183909719118257984606489445595600110379580433588678661413009582957787411758203022839270973071380644020821328244635379273614539652420802796159473938334005302750404933460295786322131269710627667965202135286384338173937928714563274347392080399514510160469461531214374921466926658699927209138206457073229562180062385913745564727534272844550931721919000642948161961953404818623419594796140732337324891927388199095180741971563776248461961114611512538314067660580431677065956286956070023353112919136786214411868236247170042003118376436698062546857198830860484797224639417323599599286719559935571358292734798138924650183810353948786468312950582612292159236936226241238894848511392903877582046543931915969787021401030020290741965419320605833686467274081159969083119661263598940836913404583837158356531903136438987507496842640661896513709948271223750524845175175908427858607493155086559108777405183914015497486665515178814504746175626718797304700420552595080196621357560973822149978000022989818365302916489728905956457096328228188016882098353568639772261649230525653534328840427993016002952457750053228587423465539057387039508078035367829564009244318833308840578288939167902311736387832059602474777056563661683027656151071690701537022682161436361263400420866358301990099163708586416372385716044657101767001989925638860415380231945561891807680065037061002278432541199660936518412276727818016446210269122520370616062253035477437147397339690455714002711515448657691305575385698518513484897885276927047954440252952893546701093841002843285225987092418723458705473688527602870522383231497557215547228246008280592151260094317128254092608866759159244294612040035433801358149244051454728658751018895202605349666632383694567563551435217508917694921804099926471352786336200322208040768827648785321920168154693318592553674922238215059861520850608857143690245574637840432848420366477012895529174221131479753374540196129043099339935900411532479268613117159681109945093110460057264376595626415399749671648353257424914740569806078541614088806866519659762935343997727681730821024395764887282993893438217785160916660389101684497008565489066946175713372790978678525371825171179313548779470516921549653809177220742521852560700891767072153865576219712568731152851803735291507738274942945460368673007664920305757017265256270650145830465718286900300341806763258711884042262560030520426297703749277175800620202549383102211345799214479696234518333365737811350361887245407021646319372536808206144233246086776768709953322457757346022918294922873895777375356408476850922852943226709170814777943807883169328952597152973437699406164335974051326476245047140675445019718770085054106034922889933842504292619494698315219869513024152261440767151008433775441903061847307753040809666461324669975912557937573739900019880255944168078713757419550654872089184867090165066731023255822805478298077491925614210004394558873700533521635883105364784469519836940298158720499585549530807622542981341308113195240610126607795920033644524466157411211740249230515656251092622797671193017919423109730267796422504763066729481562806290091128991686218228795266975462007689832268742789741807694990058127101588309840687556315046057312658801368089998263524505626460867953097328152917372130253133894182395794687581124982938390573938544770467931650093123761773598637557614307253415328528849241007931109615047423620376504704907063113831005578430663576915204860222695432204973636120217181789020528550549799806594879062333296477955396211814581938340378242073812914687083255501316997803540472954859657584098328563062736622392183983453057204672381743529548262088165354186784975526466042425508274167982573554321620952662569794133393101302765325929109687793118456484973661589669414994440769177746508099118573254777703334874477414005281046908489192591256017994537746034687917485064311976229147886003624652566945077954285098127864755295268728117147033353246250441194291111174566090887402047610447698233002857987596885340491090968528492787788966585461127960740343314255809697240151077395941750935827885664368310324538133172704036415731514676695631758572668972417685156003473549300291859517634868378381676464547596853089289269415947934948967769323731297602784014012712981444197030914173434038397090395063137386193600691154908076839365879339594911702652275921683453238813228076508422428189495268192428479498312710530510317491631229221405448428959320328762690904419554740766677059667565064628037305544751195850618940720895786012150156553394220159043688231100529386409089529361250984611705098571542104285212509990680577184620212858955090790104889023912641464585298687709155783114508142934658316523464196100977166140606347360753999714576405381470818056967005138034688651031448009385293158587878149975632408812190260440063970293763509006228790004635780374498394144117355692116749789165223459207256791759422966182638362311557582113653023282646367982930235022201119458334640339039600198313845237540388459477130910843650669477219996454479803164950616011770558423858504271289159309215102753989487972422318422308670224985169837742848576822657098369079011730169191649427393085809589923276191455227990591343101391877214843966133110487673468565795277094617803643151222721516160481244410936570762715145089898213699874796372439264829006913911291275925775838897175899096471673473885491638225204507823647099510207134026822815951792267540910669175161544745834244404542854645985452364529694173241698195357613822829734807959495706433789045758679075052873796294723822369508477289740599959720642607264261065636746925533907434587758941740459921106531781102132784188935449976646473691488810981572539958132263704566257911322200067328407463616269163698758732647687579217979507065843206394808586941535546203153941734472201054710846927249969270442733790720345042672944543413577480622504998965318344464532152610355240023973419934954749114644967489749208396422502276725009687956005379157451472723062269065157751552064966630333083888426741679489141768482733829903851504713977587541727968675409897028467331864894385869524490329238227592805696765233747850852529092314858073878698842319223688751405317371154175139419422438762239261210655178407902060898102510224201478150188704550532804814057137227038737192218937464800914742025435450915289826506314891860270764144410349936525821148648070001416678701312263395278690592471586711038627441505973893934447243246270863311839626875719217056105634111615382269334993780950279115397700754510127138398086762441822323473713138873383637347660820764306985036658114958891132896702694445184046403052379162873921073375105652342721082885810116434330311979248084057852515559907812927579099537036122616310430036093482045196650302083882295398222631909474251947572071002715488241718001231563300317421035445325664117706871336560984267197523682489477087999495751016494459110609199662726161596770981237873587550502395071245247950125512906425563746754173284741952483700948289376496613146077598569993076891357188863053571049199168781968385739892610791554885030700662436428326354589779351863843548701116051862660600909493473565896787039712501492492582959285461300344900585519330951528713762212880453953890045014476777379683139388083566489846363300145552484198232990387753180747094960181545165537926786757114012114142842773081226707204327887012241978773577189487077852023065062621920255021518624006919535665886457989301999945985140647838069974546161888066757716728850864754330461466800768625384358582416034839954528023313530455822300807596786568492398919117299904028588141061494985824065571317456772829793310990684370963414244905243646178882234520112103038754391162451235695302061914057342420783314118183083782027668303891167097073587820661806649802189384156810201121306316821505751373031596645369510023920393459073892539506843272120896200962973282084752076599520146931844737332324086605471564769271737994059008344822774100147803158866306195464073746943514222546899054043812721315312715651295415614497762922675817304084369814658406646024608425190725305765181322082519002769324029763641985318678662485333299817625053333712456904457643254076960058936250261192452595695228980021474218920434374310903057578802243927063471485532754992507596851590995667295597912419491542702736804615384310281967348492030876745664972685128118111011119573108164546532307330693477493582539723699437764748236095107277437133719852691914571122556709480156112795363054147363795442425957066834155371569477764340937427325646388535319630187089188992977445179264500453577548218350368175147819431943318131654935714154510786281122588839266601160630840847945595265507297235231995570772671692269211729372267099394904641130097235217001781518190835330091666809071781093866295963809423336373691112435924878450196095521235273193706736165527213974276296504980961470660965296270324832578549212844168872706221816010868154100786583179643973887064741293648657498199913973619479728009157941555754996642654543050651752805798864367073829600747325819059664253667874504124956726427480909398151218454693605937551934925857480634483870059874487450055460208945580998650100873987725226742622864694877238382444951080469093754529103931596804824665836379229696818671124291447910421757083103279666331354003421240558076420314463795419157436412330721335635594424010763475588644608558593334694101978235636698838086782496004917531627620571809675663360970655097486641294613761056718318288411993466329896435684049366010649741000213429083609572970455093372018167714002225819119965517980354932456142143843791876154717920758703707610802579054619018516765978820489175266607751124762914621145987415024407217410143112641899576327752363613031664808453210705183069394186910635239211014628173608607807329159448047324887331215845280808118185604968301810512136503676544672468508230162999023275948447999377043180123737224108466425875389822003479365031045959578255402259380700981710979259068453538616677162267834017340102813728075242363929772497726936569684286299312888656288154837427134966760719997874906781565165803332814190311460464783096883282976952173873225032444440653639169566654634223564244745206266169593320048817864733891352633522979058404731966857047165088063851403445548024554105227366872816593788144678979406727251376688204314775808018564049255552910768486655280720084573489740268777295589461370480905555668610611624485509147275543479158754902083744186148770692912481937591879198144468314494294460052586611950140842713840220419061013378566869465166579066732034652863576385964220684608621558531885865225435033819503602174892692017294675432903896217439078165310239132263797053360470083370152621570661523727270283059920678263590122036481535586597331224525812373497654299858576787947523497533487286817833268802253224280328086027720506450291665236402773930804062961663326963331493428428868380965363598597023775446577287552273731386348363531150907657770626640581188604150029374810440629813563707064033727098959160730027938265032191895139279853548147593639294836294882582400411596845960617697703718445250362496567031527517653833962676493310856430481475855726007877051488372209886958322422374713488432276053658317132295954131726246835495084094592796026924809713879058061197410308316533910916158886959298156173708016927528389045662711168248349665732756567206654560803456059573290965059107554247402747757266356189862018303647873521664353494756414467392714790334153467341828499110663728016990605685560006631316779764538933275512838819978372651975832386013398129909617634647006729601804021151055440675929270035035033003179792281812939755229681415537035570199784661954293778122549828331865123804459866125838409912827065553202912897237102203891777840127694398706330229949891234785780081454886546728907717530670022223292528713599032926397751389076045200480606897291269654853260774492418820572740314024612405052728234025365285230227531361837085429261830326447148229238628592627025842756080360454504183053235487148299484167996591113830621982270401224748988263260792470651138553048181090380171296915497738351357921102873689585174013781782278139889844598025145832818171830551021220388641462411113772930120901526405169370440507752710819194668726969362260194087300067168430608515324656982277346591963291616342632527061099642270236925634648413167328818129467436719181664950717911370758792858678242477110756439155814867550164967147191396638122225028772806015270133803822115252430387992510913403969739654663071042208613790383490919229697989767239611752600233987435821798676500040641554481474480058473624740006609777538293997014621445361462577488850079700272977504382097100197650090154584205627027499456761300258263265755875022600699116949778622992880975571965714034540858232702706905612374480618081335474610158158904355988219989344057248632952501623689392969707387783161337522807669146320700113157733302693359207826541615486780763692224398511332012225099717566233786163498725922649063360024039936903809314951431873429165241310927087666113746411101954695773843558863828819408772428241214093113652982867512684989879260995901626086024414359010311526115498914759375262465914207319892429669895153652381067580481090388297288001805248484202018075339170448362730242882640522605869215848904662561215256692238059699107749487878270733034359347532491015907123151453977887979575686357538970712146254611366659131197900461233566948578372680610335960457738208286126573216929994260735400541026211102751627606897845019700279058223053634558341741907532242662137287341630014133226106955597620154079100048642507639330957156911761285998892396481215615095753044852564480288043707999950076631021403770150755761917848816225062878739826181929258816370279169602551034006507555261385315763682524122351209182361814720024161606832642817524512076936599359622340177860765899391329568225183535934422286756892723635443638883800022013483576373287921331058705090816949800386430262815042985915660907595069644324627859097927646136818098344156911348837396865732587588207998688089078193185214994212373824329771387942296472800032180906903997063849511144877514001946022372573725353823366576393987715190695164475641506857781303841539174894948225589174591602569597926257514214592446374351226114054656527086908731526119724708839670764711010313058276270566634581036245648215986407141611529612418605493129670409169955314011431219604914036957117701170569547722055157969771617525179269509668284145209414997866714319619584451909488516691005671533984290172544452360200167397531411523982685592768342263121152353804101285082890226253516476658237758473847996375262358330798810263792178511187861459260832731133518728141059349279479872276581323202303332782858634172320854969441447634760833037233160649573125496472824919240844525516746956653833034777082728559146304576983043065779853266304572510420923191194284049678722219567631591614947949946911248991182551762321640577988089828332432606804777815948810984924632205645788630822774536017610375164412010907211517460791932514385210364794585377403813213979814542905583081388679861168441330640864279890466409436905023492198703421322249637274598308051618715999541350436058239623517342743531775759849281278024822436793015184683268676046360571506866451018308473475781720420141485464143350877670397169813725774921814749002293027807253883853911016883569090530511572168704797422897162722304881000771889943583889791830444874019425128139491198410351208774063482975372795677599895078278110560588749918202237585111175400702508475740132197476423006710029781535292731301433470255029568146879385594819171989944549360493205809070790797862920321718863639093468835413732196826487113865518923874061576817736574428281643812301812127811915298576903221561410605440370351181582123759544124783731799244085339392104410029488848319816094114328460818587590059464536779145246166502300611418349759811303190224081709799490554605632183919986497857947253641687700779349962359478726252155244575821088119761538391783639382982444470895591405321030727333530136501951845216176974159866061864712885296357938974876544134559059838196564036313487272698317528667462073447055807166650697241693271810738378699309420469808238786205215411895858017287439264201451918771047929334171103292234939409771490186649123506256183943715643171426802119324341308363634895761837355900189188149731604462873496164027692312660619161069077697331624900614074286761508739039960908867982331120649861628876169213459145426134399899682717451627912300112207794427188601782687494066395436476393757289252132649882981796107294455984976418570468133741445778326094348467090555918853968268748850297172624664715218339435801366800207925722754548330648012129555599896345205890537537201571732063772568426381548939181454353633425381024616803419380693236543253592716968151874540998712913191321731188665918598721439796202372858663570737453944867754179161896683869223733888070280019908577764384151430967505609906370188785179303619439499076985682734076101632607826680090148277848105534817393759835005291560702174427072103354090880448518554669645990647094111149760727362774056065498450483127659903432123359553569175688888740167643240590696013850818407462353462859681167990745465240947031676641695992003822057176755547481516491668707458142214863738005988902458908313342800268762540180724554699532912639027044027104575979659948395147860553734658776699168786241155977831459099748150486951862947565996568763641056801816480218824452811678748698258889430826744557047439376765675258840259572608197213081456700585561474351596935264257418269742041953411444681355822472933932165368391080844763955796126265694020158844654723853966358600538762863476976535539632730333686144118828643797241376477019904500458310403628400168665645982501232985862752107081020898714465836171297405819210310356740505882928929423417448441175975977682870773966782679568168217021820453157073724726029427147181415183458602839307738004490355287243061296662029517336582599043956103188992868397436475561851347545721947974799172545268168769976673899913458065782341140226275651096113969519522069363671128755093977265470547112036047692910437850515881664015973771468020846997631885125512215548830497399030757938616282884526024742656372803556020866209818007508961739347868814494338591363479639642492969782325638130924540777470352214009303509066614907991195758088182422475272470991063178847660495716559073759381789368963644423922449423495798056787150922200476545783350878932313015719443147412595164678415839734921140273987217088433027986280994639074408204625361517251354732566059819934139667018220794509697426489967360546055793105080396950861943567308804566862748291310575939985597104639843118175785734986829319543438342745318784715542047107911651874356251240166862841610508630023226496383589336230038615778792210155403985488688470196248776614290653110572770214682101067036740097696373347497454964367491944535198920000620328239184268849270407868663151766580940986363815267904326456183247165374129229864267334250990867926617457763785836825919081415900330184876144985761551419912753098838325878385497428547794584634148505783665513867914009614138186647995828916756651973482037638188679231289789566471974396136812138287138163905193237159366194759041733010507113341759027459122304450561395872131020078173134675708253094278909038514501520385683986804802778721727924083808250502123645647846126712315647991729714164040942037015895906504039213588546734055421710034645281791622799503487907467552080961073162724761940167425907986163024596954710245855161581267411099952042952604108047754841617914977817023463715864709828982422826827749971872926396863900602485095040684821906977748239680852312843203733043193589572954976346632378595067578902396480343910263369176989440863850395773781320615566796764019534716933802085967199028674802093269525343382865590147228828930813859778966104220973324740282976142344161649716354149332874134735126470901482961286528148373328852493480643958175380575728904002120828214293690440762229343835543635693406427560857882014611324503060096998461054257211473801110136274587529275816096256584519786284772439592094673794521457182041084867264333774638420056828580062327572922592607144334118240888170580064464566104514039205811689786382476582964978392327796064187435630485331612627372503657391972747815037812698125248417227388356743065267842223087517048478156274952172467583566886499730375280103009624247454595946407686959780049072749115963198583193932935147046410885095579602327150758597200293413028887489097004607820628807094153781979524555012270064299309128941648316272022728508528206107849162375278635513329297716619473012199277873198663455439260808250642156988897823941614637677897730748565882697252858070249799549240727300288284603682705889073534101919475057875123236209339305728425028096781341280929712752159763784977584008303403604395154380117816886361859901005051163635514392581462253981849477323256138900935556986374364224996874446327120178296544211221810270052981427206068826240170838556644729737888767414799827845669919594609555099315237514487387011003296472844001644909514195075338359976862485398460798735735908852071979762098819278855218220915048424693231785805754793588583091084574228838365604672657062010771996010831006971259419179322928704240321362467852286853778052073789349764719413026858639234704180946707406130899970131327229339130425365337510223264042702336496434176777776621949105979695973157525858805149356121625494696166770848908604471492469305175258042181845059440291681829324958523603915744902174779822168084489859340546666089631730899622555053011263859711354063980790053509143679000443931712588941764737077671987401396310164181002104380294772087471135106702591817808180836430082778625928813887844918726700685302333434416569060904091674921323987910905160878505521626434941861843738178300913241876288743284408840058982601881430906124834154800353628103729574783660286468102063870395898131505550602371606149950217561986467018428273230688109881302119411727049241251903050638016929407754728033052774476118841154909873056771993219709997822530407522914534255404675741660680198934232636782956018413546536128419175143898317779834767179899306761237421371923287854347766166769359488717649042510081867104678133486517193292623630751977072338903992190612942482116404445497206774310825183022549300057049990558651117237755298471893011850458429602289074814814260681363285800307774069025360186637590743380942007272723163899967635331119411956045142264079257461212912612946642786594206456283339863383952360034749349294016751679190938977326887499594428762053068127879493868256759798352460472940353777883564054993707863303393442761858146962833608331954169737298795842802517327975652610750772489324955721499102051907621480603430338517234048361908829376959162949729469828238073201593738310819691009295214264122722751412938587000289146704723701849875725805992509362948408347569004868035864310502670121266135008817469142705554934348065636887730936454957258550842221880162948975208613523237148920991008079297701810707036931193941934977752023671830278779179144668410529023053365903359521970808676641084699466210647048841217696531614378320819440879900386468187253839139634388333602479212295674595892065614295128482871789316172027887997709076175512199741486971206163452897372634791335836263011972875880314682828494994781891386431627105300025175676992834018396293491663054058631660463452178878170696003760520597532794857702176090147920005172126719042969779271826017985587152523050725267730941786206545571900904703296088480915881164547464777720503230181141660850646329372432466504399948597321101273148230675272991435101072896448003523339587735878157982525188230380430615044232389477056993519566933519740682550014352594532932287240825796897614228144117964493609542398833532473858275552770465931713460985598792367247393958673555352110084058570460526550318994408601606755065894969285990419075106771540947402647155104157989943626932004335886010730092322227848529484148931300865456324855835038821304151063131733575454105577060576869356812013427942271100221449016875856862095435882425777205582241760901505162045436774796628678022511357327750616248189345235335203842043234170482014134486525266422131325038978205916860094643509461934602139359373275190894686193091238567803365553945597236520785518100741818698559306761984015271679026356094598253954309952564355529905433130136116549102165614783887328587822894391244646830292240585723873463359295965701398584473032978809166584469934486679059619296286451910807273826038841466125139633925758153776315383864358134533916279020918780661755836664583899483541679051068863953657927483224640631271590426274131314588392701235744418349730180133318194995783588902074434856182262534913335203193273086570244371605043498019265302193755191385926096722609700381175840615246993205424840243999458262102513139247076565920847849134982516620873986324042089139139120877409972358052273749264455002948164087798728214197771049973021047877823590371531932020858786882505564246112815169373112168252074415211705257362256234789518233092645474508820577473165598859441311587331470458365434903725992828869528404479722467055844006117047365887098198199020707234314321122794750023493893646763324005149020525800073408533116324005598947205523135740146513300144098938222190137765912759390502348725421382725456184834613000106750390025641224259104498357801780600903380198969309325024868969255505510570334008137707515913219588025477640738102050080198847212454312392798577110309225005267188797223323890663172077094152358160066517557620256676026228679510733260037327776902601014551699983007258708683134174502105599906594518551576853827604216776845599624515391888909531648946663907671528843656894101744512393730860170231144967230488547272089094490890264305130164079702312219454883182553195050802528199851298610691878141985219861555255902358903899358308123119505816539588293977188932067337468055219634582084529817510773544106763051458084581665449462349886093494780490994318786119362822912485108419755780809609372399794593754609267283536856977422824049034334168553504072111160676104990849503498415636560127655357174992044086797977982925176419942369930617806086127347421721097600127426911250145710528673669666060480752271216504875906089255800180104414647111160409485867907238223131151188299222219070652722294585346953266627825264887858463714141144088803796287355936919465745487851927930864356480727170536135734856123627858341711360976835265529667797232305913952579573712506259692657884398000630623317077756223607662619074526225012784169410771348425572041201826885681400767491986917891009683444689707216387035937841242283967015598257630350356044613170868088648444445487419184594891168406096790808140532171898498771770498822917062313327360970581502004760170897588428090693357758915407361706023493369345314240919132903236412905917133328019771438987404786823939972009492352788996250048045307922651849436155737361799181342721899519982693838178236420847088622669102620872016972190295914144912683330372788101667016808033512240093574902302733352184109272960873937429763369148221892559890167038423726198658647440652202379210632107892957478223457366570445830311031398899436283184656772522472828325559219435876930699912079005936509428359747572081446797240910694220018457610847195527584018508444853080580926728537399327979980893817372124006828736312555814688100806869540737641105872856849552007833719304220640330568918703604446605604109160971478618724366619461238209819875915290237178090394825255603963285938313946004434277462617431837701117516552688641610470884448273841399114266936916506707641098665383713851468677425998419080546958010441795385200727196732822141509997702875423459833285683399646651057355573398812983151986654777845806627108012481463864443864427370180708030508015212965030684819568315018620576699547037115164151844434731165983229178560136817758764047292235138899288371752514953078281613655107023951173129305970605200882535180268549234812310692205293522557196438668408366716845091133265856321725939850173383191415565736366896186024567864330657027746861578863974872824939413694858694322339359709690404685768947660445651950735969210741504601853627146789895341483715904589753676905802459318205839307685056768679606088006371361091163911293902910021714942885039172446511667951589328751895518731713346709517744076032170423355429017330879011913573115095600273964041445493265651264858723847882261421357606288874727269301230315758276864406867144808302422275635639738663948051782846038884708153333449351772234309689696178414672268613822308821620742224220380367240426538787022030756440150574401265757968108558921440527787415247586319327280301645953023775160449145149558186072751897478187344198314911876977266091127721550702742286403897863517018258435496893947223529557665493309627916513682593984288845738738329854435469256901652707969671961497681647127203080793330134814757188115251872088992519270427049174083829823570841607309995377755627262367475827052692577174489413834190579181616699643375558249697818581417572606748691116628919609515762829156990220176700536821448352537080824587899950037675414199654503800491743817401572102022388127808091594258214530389482134456833524334172849742449669918469054785871892982108928806232313945998219103200477774957550372551259543867442774971679666329689901977804946150656391515233314391572649161391189410599152720102822893638425311444554447761366819009518017783706028770797120125850671698138360715782124171615330026496108312324950270748521190373788767208448491068658565367549042278347772173441041486490755145333623017717252031800008612446839578543062829148797575612921388044548885422999929344403142173589461500650302036314444990668570067179127846588758924847146823237224238435325881868106336759779502231373614474476947723260284275060551503345965249001894192727285381665511158608401913842777618968525688128366038225702931966706527924956248992181178884446754775776177126989508717065674463711211662812285429159725950227929858414314622915113516053474968100541479215728738424548812829056243068658744755427289363684893357749595829052813442399176985515373449436288686859948182821047802069481054097702889229873794257671526972153680076700044081040463948060573825279033970888839494160990407124204922188716873216874857454833592804205241882772355437839372936380216591580414705226757049512462943600166236876853495413251856972855601308877462188285330175752509595499493799094016638566245889258556069104151791972966966844067276084455960277932418578297258913074206634027116152361380592993066659749809252558539009598264934087577372830859984856011831182494198392445551020667753861861581317391313810093777039191273572930520130250716699357794954962877712479898325293921738643114384442701723429102263735044127720574562397034286674219142210150202195691427813299079744239908982415429921284996780987946185543436477989999252376085939689092828141514049501626884289030325483797332645492155379194478393217119679612640082699479786676728184135821947587472344357246929347175420595719307567709816145098748047137492310474006171931240407277660651258800569473949315667381830952875085275972994077999334627564731932414623326868799951562091590056475198337084311923463513636746575554465021216036901022460298071274398831029782617453022351818464166106132331904399971774164816501745435559259484430814584898782097060994993052693489918528044295275074997495370934066253411026136547489041955776038636248001155071230196047743924566988796639815958075088452938626736739903530540421330910343876783779942755300375044617316528551386870445233131099862098391224435186525152314662400200381872991834719707401260661877778260662004418389046468572040956688574378086536441537477510483192483802091841545378063495632046237875919311893924153379781121499994392549103428354561952922373349884938693562365466433046147029846781596808321507662645456763094533421495853957977432888628888926748695589096478426802077906513569259402042882772108601839372004941342412894167607078491028301682830581786971761310803831568866951542904451586141093432350584599837122610106974485409057831744184051536458511091147689582489269417664569046852351444425445388630964667065902053707744588196020268438209034254492163994393935327642414008573892906501240260818411436935822823100649469710110089449171002592712876038458133227150204940930066605827853109827243297001718105975009276244999890381151001468175125392224862421811913632020426208332407457641954608856351303764218810524901179756379335272211202888988520403845774122303721134136820160905933940200772380279279668897685669775045908782540151534848026185917866604017251669875431990781671810355446520244252961741334325054891240348166305956595834780315369820028298739481316120602049527019937627266399163986499194580849971312694697771000351292130596030398071571467784710503527814983672909275345129273814531433851275005392681455509938393722907692602612622558693866528377081880574409567466923266431820217287138161807430253204208317078070316879968306483046904714961918664283838962774633657973682041462201959229674291405981982299842619522858570123370714702201449998522066426053095130964514235138005407290146726895453009029993376144011546067971716226164454234331439317335250845408280171432126304955860956683201089532107761185846024426323102016471421400876377799055744158951743204172490337557016652169223065351273747291342055532805312282949925878613591905219366679465775192496828610729629727120146750773772897627330999161348260405625202903586033834727626181771335734948671665064962063867695440877892693986879856174328420853389715954581703392635778357483965647765147082948745413259380373878864306339194778826406124336130095202707725369253446744423032301148084058555598550082849911074959646115500961094749554280863735904488397279418510687968556244729799899562030400767421343466418227643484574412103773267462789464487753086363001423212766453844049622861214053542923723278556843585141273195523557978174331763977612482736252720998507543992957637623951910792268982491318611693589681532921100116692998274192677169150980898818106084127911068723398975467874083035332297172977730972141302844032186359003054333222137085866929208004504121010781435810340392906853410001598517019752474009597743132676084449396559014983546393529752032789171088195756104235174109001098850809323494805283843091046855626185563357403470268165529184904009627440577526828179628700978241283972386684859737367605216095068206824155459235781768475865728055992285955821778361719153390106595129519428375356315301562917031606621677994592722060956250476927464963967565914716496366185113638976105817844819654432682306251443915508815218293350582809630868880949856109448444637247591726270811555180355274521539332442606697423630803153928507181492660850836447880972599977126143278656095044978111773965302866618277195887043640614173367963706741447378988217655152343500794806129696086920614144224860798562657647624568940284926038578429292304847539293907965613290864145891209805140658511287208116079332809443356107664872274853049928293215597735583768501218383171091351440914566058369582777431175998445410843175507880320505786909288468301768272455868059845226914947259915787852953159321345952400753523871054373440878467246316784672656492387653591099608615455938612618153598904073608580871202673394626413725379613027209533135552028431630945746422580005921924104769024980804993947309673610051039686270802207289234719521793761130291154988034966674437581221938562357740859224007475530277059555278788815887911331857587284959929071213629570501673933475248712036840703777362485252231925125647612444954822205852028799529121625136999601313363720923462182503260575278371070981583397718553926540892546165392431533990312603680696848365098616492211296699132267186751427461335505524510547208246108473180607595909205583389696406304830931885632131332049306065930671069353975025286646489408851731104837969440394924642592876650747128390951570368278018057287338332558456255937141087271195687834886068931513599778746082223223286717872971848682123228911912832380907144320561297847389633245571325343942964570684008970610097613227805746773256445640276526118984700792949938291607186655492491327237425123544429023821939557339857595766036086838967157868292957102158824404592248842358012829846169262766624005600902729544571787359739146620778678984970694880018775030256553760373845964930871685160297149122215953532451412160817596490267685330386182820065893081588671365428062828262352361021314746570589634698830482801565520453288197438560337627760215136514760273900955243401159797677488877060391941520038987755259222672284281840080643013705327813871390767108508565752925866080418525130982245252414819389489681434001506710424731582500590014444293143140766245349008484218588361016539204114242892955378777015814305340550700511426971790176599839071188389178422476802145945542294583422361948898525877104769499196908643102108026356029397071798656337645516023508621625043840970344717936571250656438836624429207370633241053475086943501602803504491678533363628795058322584093076581726003781599589861679818688252944131942203460366763956589227841904231558606668779379736578758727183017320323135598518228633591718993987412526457434913946323393428284939820079885516433596793527555196958010353484684880297800012614145584845881081372735722915319005851641774455019504754102623076770569363666834105309488261327609719821064147848316330904818387934138064962907387227704468895408065376414040295228095405863393013332638679312312833863691822992551157957889587681996244857228454089128287935872128858475961248271741892949146963749128447722618129816434910076245495221964032083807306691542763855386811396697984957998209672095547185072983911334405861871881295844923561928476115113902840039677896544459557101074417929169136067856343938269888108794438358610465224536235870058463051127429868492547655381918968598063522172788714799458245368731014792219205418694747853715191171187519082433489113962243168415179110064672858718860068949094018861928753252484858360282174130518138567092480541033605688759154507600475318148388006102285540620737458837927251688830755897050699995536385321216846214761719694589565995660707038145591728434320177004202488477898691324509545887931590508878759361248217886011664216324145976871423022902110116711815870115561511261412726996977627788614443466689616699682969222184335982265699895098074764861274560064219765061731726222146617718548471184432762317942658479068496759926901561321095378751486066097201697520146789603736720592783032142475436644976146807930046175321961377680717521707766969989631745739914195974310956431946400710662481908755299618880623721760633105863089790750696476267051044925642041575184452496247962872613029464020557188580200288684569646787007276641044031865897036555932478386725045300876663970962858872678021819545068417175633637031002695822870797582920893459246586196863034851089647408587262797304174164880889235887297678280296543309573963574490723054270938214035697703063102507957298079093956973523341963260307778627544472932401753979512121234483510061409411625081506925657472635013335088977263898321119984401719978115026971206758967185324592330476810681281204211039381336655013023780772605651909058094390897498313331279771667705601306236900412584405769033302860072374229076215440535055984453392134615116368416424599303375660406712886260402139979739684017428533474957826955331404511491358122296037836805574107914091544111974979305994178023144996241939313905711192632241789025457974530730340813990018717022054893441942394470954516606859159478895062864054031615034468300867898934939307244825099541276775354911334762833932958789147934958793999457798768950683137883559771965510325475172043121725887866456531205879068983063910786552645771231042198772541487082605300737077537233299500757861782442065493499612520341234331206928338470844341675411868821199916859601726906018123219734778642857702860541391897548689123585174482099222777507900001959435806099438706597554035117605338131956725026377385685306465066255616175566489099213948259171597689202579381844941180148498375090533972949476493934186290644930648399547405432037625807154265681832544764504446704499640104292625720990146511115345688122589183151153933836630217148949372044822751592820090335129272220149061830143729083672628250786498692027323489709644015754475839447917048839233372338291223943113491446456985048659390726802841367887456526555650859799053615591054216952286667114732348247312617851426364130573666419962683397267411892311907230458523997766024538804038036166437289569680620949231395322459357325219078776880617862643748340635564744615294725383965456174103779178767752841282763482685338626881908423694630360523935997994890376130865247363568345507028277385821511552778289918761922267719273156294399532293381548984343890582788975410442246012898475123649488963924810205089470020951709420727064194174555259212138030198628352139805879303860306267677821844030515789472062734479172220069109902662891914892697015546625121166026890876907163789340491442860582833087660286017151960986871897646625317239157479946778740285241686609766512867654814711944658103041347396554929591549268401396058454575638352088411898121529764856183814743742180675273755315051277252934992375435561708124218037792128590761168691064696980690267589970117094130769067514115803179760837681488355715287742104862200171511450855836298831005080120587651756501131526017591373914451661774385509868505665884188070347191593092190817589125775258823071523942791107695223951928740318284055126324926674369925726207795838128625581590684018485505916970296186642705503517993666267931505035051603841472880170431719568929028920990608812523401234577397341887171390061982583913038803587250167528474658789954291208917356531575820981102770565284877259943170051972581144662906495313413123685417974864398426935234542397186279310950980603449767033141752474935492466816213675239549374647940954491862893596463211180692348161725630433709108423332511468954973908435377482066678720920828752224369503810707005868216141525115459476179351707047881692276831156965284875426737714588251944956018639909542283433574194041541356901342071917754653994376478881904036592621954196047806381008706589657484370503429310115904327159544828350408908296505419570417743811819993780410701819979036387503188475644174340987709275539561215507345531349510855403727833730865374360194072727364680685475477919519055016459434731646832640392077081383487406265477431411583984055754074635220520449377747465330451367032250405700967380745790307594992367607473375074894048714969655292201773390599667393227605598228392626009220347996670689251860898196406148294769631053163388940470959176700193191777123739392471995645586440125811911283113924722622464731662153400389354440502214862438400817115217067234508891298640412964517097160599441071306143230613665841085436341808537643875801766218891468153929265030693450422878939325893969143202331449439933028628851398656175832406000995721174020627531501924357249283796242080185794116214717022853111685330342951154696319007258206873462024611533703131066383159767987405701808811891033518447221615799786267221852138441503696683126568202438760803883050611136444566457633299421793938037580846981693033868462253469382899814505546550567191640180689200483779281300500685030635091102461325540359859898558164149025394148179441592631192579635649875737814656734176231273507873848699535117322374014029951568494973009325783175259994386798450613502111255257824606705356070326137131177077761766280763022038602741286097871600335168547569658803666907791815227996751703281446541308290849135393076370199590057278744122788233147557456163704535210303731168132593784467132802358989646840313902944110329387362737463432936772698518903029600982460006934417110740103651527097942837301267585600862135278703718254586255280308823157954362378427117832656022832500932672567239238536712788943762353331802384576773640271742675257905476888283353203404959348614194210716675346168346137039307231342998130651570289601309801470319028881912378559616608974766358780364322096305299593474458187804033911915566816678866260505888283505774740328129538375246221733458707787487404580395637074229804837305177765056987035048914534048397698885877298549395250954389178227013148156902029579302572071610554534333301814773174955726551480744355722568472317269471712980581124948742782592039340253731038919470784482306917789614802871543490327447451488685206931644332586518934872711902376084188817226754750331238465650538159370483929797755133605211198880034964403184941847767380626272553546684668339561018887095040812272932538673781202249621169554191939127543086616150612214412656992386714593834818531788905182098945279551092775289567063834321012312011491942824098038883690233810071752606797725526512147183707670977177958556274928506089806150454638943674831984788877683421278908228756879979623152040268226775097288861857655334032428969510054934827851661501405556147694458944112629595450023411755587259232311717314278508523956240351575883764060154992024798957060976822475555089600097485150785252463550415792502488803288947955543710271777805637179366219353040881121000399058969866830861766441541507766948302563407839658413732357469921531669993818948640139985801617004227524392464741812611065199268353185981906104454706642224127858571199059508167033232661215475006357877236158484379331158259183118165000963409081161344139182602337055354580594334194758094733328823219588157277715067180852406994667013680065305437168954769696463614602354841249833692150518699788140401238059354436106675541906954967701921692628830516435184778838272537556020526128591370153339795299727283345227534929053991566433244315469328936806777854606084136936856903699920858906976780537487622136400958138374960564860134099827348091692012136569028079376348349475692091709706425810600878317187869198771119068450206855878171349349555348617244315445403144358702920715169581463052600554923226687233681954783621376444554370011250686036686998964232139279094163774980900923111959127200214853433552793226320437036544917615290484775894693385890617200723490674640598965695352731798355315469281425616403356068006147719965993384494240837846373725876900647863482390030039324557074507259309344468062140002864353317192853701552105135882909754056042200939104526776068972962778977440442694072980572348623869018819809513793958163716347258366318276881747096085138060736563339704026395331228517441530078393228827075133654491170882560852378049628322227705318447738942528365561726886056503855408486121458993148152710054024341661263148025382406789588995282806814745175522748334340806269463867041134018034304990946339853649433292180366864256325417926125833797035037103154356706917342541768249653504905040039857189089050574848170364647917895835468721134802757962040681188315822215790956270264523356534902714366120672832259296976540628028460250936754815772189796911152201172713731648916001893357345890003033265688615672968008788400275250467987246199389073230359258201543811427890019688447592982316658938145615266047243870084429912398005656449789323947871691263831709860173047718713116790677164190965386379155057517346551113638017941198610205620611123136266541938642744144842586552797746800594751160915470128888522219416891317546818613448602068456149372312186113219844892147242206399537167534536219469532362027898256490291305609076074215221146267723321220626352838058658700541029569048552561887762359932635516085378799307144038070923017269040085713149515806683344776126981937813126536402181918517334462529441280145691770896829551504531718874965540684000925561233744496800054819894832917673410386939240283202264193741850192786148278207755280048736160989010493075462710193596343759761902803569959550005522360491012559522657891331045023776427786174958847211920420298764237540525994878724371459231887653750471355327937937970537907062084675652575397796468260766269861395823618495217768298237401409750446899110426295960139327183706588088888113360609480316043594359313034586184973171461431585245873308728682850309681456112938920912544321565758998153474117249408680019443702200421798331194799859701327683639997393637293393710377913324208103714949177169731428909946049258588056050227592913713209004747423458343509141008551658157516537411321735519735229812570485792233500396228181475894488979627165127581602149085172017559058512215676540674401281936858885473218351434601992146852268104353573225807232242443230647028980751671432110831901424956996096674691541271573796781817118669443681666854383322156252884061686607171113416668807107237641452717118052084595093181709771824931877399510277087959666917907433161706131402304331835219242873587216890834851154889313618983097840236996602075931881410810918838748012137004299780933122660109453466124033126250860314352592466408914266324107708555455099777730671980487678216703522109043426005522828513332790457945122410034162369868396976922135832871326686327164198443271795029260965431006362112791451192290548338098656144262482207622595495609466428585958442343320210216098774630122612031843233009964426279876417415560043589405367702556525517475025117251023068762710657227307905158716027673159835768886134726753478897544643287524749890211429795561113852797533587193877537432793464108075699094722136155742357873487267430410887983918891286019959210083929839869836409151634803819525255878998931856045997436058965351441265039168384328107693059811588768038553908422185744270904720362011090496710029890828522437551110551300229587240972021871755305011972072157430657452352963282753917670837286353313693191346588598751309941128113922724690464384599771896008326906246109649405221243890650085084854496131153055704365447670675899035774694267080922461452595941533733772310982632817142714983041502854462363121906678028880836615145861538170752436666170631299306625775522078338531768680918366933868722411314522650363519975351352649831827315921007211185487634830131639040705630240090678337761295640513490082674979625402596132979473552421208701968991715492970621803905339367512672367217280139801015090794381343372278894471131878073637891356046533023094849744698911103207062197712382391068311279960906873570478480312336432446273376465757160894407380623493553009928433651772940033260727312801345644285546764196901765835348000241980492902836196040871280871251245323509627267696514980149044152500645664046414775918224220426723462257306693368170858485384801352840498561083010660855737351802957262408101266030566797507322318798929225501402099783026268101354644676227080451448180494851899258958893837063463160627195152793123314989651426739358603427640238614631943327283775821972444056045813503933706612544924260030516610967810024956691819949141072186565401728913585054971085358448783956876239542724835425029012134944712158870057949922022313216543941577138715389067683736134491190540421462759143239619522894031084791114347444511553024916676776371303134654209137451328778137068868163524882818495935410074321304289179144319150722763572851680187824410744044935543006683575019011030220029618848801809623150780585413310712837003062025707810486784818036275875412076740031373337289828547625322989692225749664443778677528112343617412846894134143921792265750054561108252430988037638003676548338704056550621863720119876082162265644952270258571152224017810834985316821647362644088978368366369888411193930302353410979280313756619985419612195217758664129950048168878090885018478695945717607160011328217230708477344144116895447100067034013296156447260537998575489726231653653552137097840659610004429052016190983177160763549980771509456896371909138666811619164755457930239126632299129279340316085662572584355576394370309698397334810184505864550368082035058678103204454909118368056932392948378974982267272392363153731060764395839315922864581500184155338733181213837081886475853588711938616506632957701784733535785742278977976860099737657747430911578610395320239580729400503226377893261651165697913152798760956692252917634017062079957846417661539395939754482717979978496307866076855816658057240637019479070177498038811480112106809290286963340812518887966937477400953248129117864550180579089077808293336710088898400680409564768918544157286310435447001814191193563980261953473445702314737774138382388876335250387250218476609495361531384801334920901910274063407216226460653728947681540124575914590521246811174750520458235893491901489712381269438347693792159499805583205200124046351282057878700736969997580301314968633859009580057736264729706196572169916691821810533213470400414498066835267057977727150822524189023379728737187386039437286081594845446261271506091024935213492189433178287969313486418302221086659161811654887964359059870704797333926004250195912655765785505863549580131795289172792310704225356044979812468643857593778907328389682512535044206499278736444649145090065658554662172611695244571361318345300877172003660396276177970253659059829024618479475131561216140102711274489477769651240177356171620685127790604661109457735674850500625973430129351379021693868972872019969282526274787784615605082714437874401670148405778969859800954097729539963989235886227516099361281282470594601881522052367025241961437156036499292168670065205319552380584596141410976431929437285393738010693755204930489646385928751618196194361436252287127712039515444680780484616627732758438417039732932385623005211136249496977486876881550498974284502941586046635321618432986032813536762260459317799655389246367076099134382179093210930838963426515601300731852556549329317304905385241789692090037315185296760372912509063828644031193756523607256384479336122088096118406060379788005417162178076460051554726891729554822741073863650137101655523481456819911337847582132050859403978822700369055197652996891293045168465636957056237882438569717906422334704830653969654490280150454862711526869435452130026376191123531707754348880604847400604550350123755923710797275294814301695357570513174863874106438666248053733846078122066082370746322142032567147139338972553979977627068828322118517319208799538186056541009558268944945781555298665387357962297621387332257365696282335189668334787072153624049244752208616661049299738961187704586308034305010263082385161492978297934476389661587376090461125696828400003670688555650808019307824599479845969271491808093894458618997596960585170532213090577826129771509153936824676073472451726628110654086893932885300731536291149482308497076572638225841705510177874334347045274884076741984947134133613005740769947042489965468403713054437075594886419532015619068568491677931176923722271603402304939739885929583561364646461792216148083999517518703755530984310191093600161307424997775063598386600902596613057794031321052668337787774195438489332952139253964375806685672385663491337456722244664958985744983906610082643446278544197155070595890800939504937792655285573588285423467754131013377427694651075151469299334146202085419968908114245412574979991980637457543004357965841208351225954055279222896432749081293215567817816171416121791021554279076941713762479711018291174447909167142385408314743655668213917716961390416559979400206446551992555311392614345146880916065927553161796606237448677628372151602005903891293935443476171219447168409383115530528926513192947282560751510536172417530202128775941261162857618066869178635311493192546726159143662577293201181116387272758700654105187597633775864484319813821004311442030795093142029110581967402713710735289572263842794005657824912031620453608783835709303394794837144584573673626710211255011428403748550014593822368486674097509864317359422413881661719611100070834958724841640899816785195891296789858780684447058741820517177291997038125386254464064640938285255342146888657656770124289120116247461438302599494356077041288020961565306205497109393869069711407047041028718415480583784868658996338278220170250702082769015616379628196258428796282546843699746812514624474350657142697115622497797177094976753660938403795257613145145936268341966038767668959455119055784484824840640405146899428307796558090642118531523234534762754938491999193962041078774979133557484469658921397642753728349274087642443237983399239008702787723400587806074264382618133817349381393881849117646965203938725972649815215596331017167783814475229741244533248829270196367381545494209924769989911964446249409785795238865219170588703867840444444046040428981846800609297823965640300407542156867458162226760585582591945115757685768445812358163659394366408300390342571405654914467664461609858228930139570215738800266011600369688718279951807782930330097594980436897554401295968098267499049067793459924199216165710243462525150374958891831471979386185056027048232358561885166042742612767745963050140931261904310174002722521099043808230229504625035188671349771773245939974058999930436121067661859395474632777316875122073611107432763915169196709384425227659316219595119382428165262908416626179306683863290955421720415945043558237360514982982747832879336711708447921926815287176142444744378304157465791198852214408835443679666971954199657548791268658370910573945706232780710352727855652593593622229550126747286770930016220679473923442394522124995309617451995861321773749832482965655222003879229798412467271136273359215174612241339306277838530175657086350133544338935781471484529543902945237044422110040618370685286374717461927159274414714186836582837295737688728325421479363883941551363225467806553065022648737788979572679433993592869286337434978031825539547107365288769008253294394829961435568380386772961883861464895993986827932610492139564289500344229060261909907220981029215650011177750863270159688386740181644084084992691182539192239820891266951791804811529801835135260394935576115758757026419137404388893950946374803610254218505405559313325662179206885977909406253740831271571633134727141704213371544326779356722308115922982847248278368221277429668071262503468769548018959913403317864292939180039882800959285345807432892517557159843561267950519513447261578580551204689264413373388036260749505691846959667513459235707257947955482570023877988774364709364417215409090537326214898948854677887716798621733864944790950603881490927608414255785704527896733424522222438381907785599822069116558091841118571308365521730817346537691912713969508497947652168450241826733380107562657925318507231331278096351250854282909072294402155917362140373071354426288468533859813305822999067032512589901486275022790113852092392208900452072799780527269379777078889501751420754315081128787094562713669042992049680111608468831016331367056663921195159462924535926659358314660653172326718932490166501623041825615538134960433057577412662587298897740566043832233591953934261064413888799279878574298426235941709610742982042165314610823332816311460301668124111947638646552222927518963291392018062388107707254212621337207238377624903016698358938062819920277803666490816927868232143748919376342597569771892249930730517713753735654578706995606997580831070833194949105785667389430968030737576416614549291799688877564159631871456535690154351174920652693373906975008373065337180144547094052280821412935422830151345797427467617571537753215989682916180693150383467941551506398377330927672902609848785526086121662303671565950810233633741615694220607351239984287633349371661995412408088113340755620628230020861445688562212968233094739504631409355990551577392805164486738951095192780265297638369023968416857971275764043616595702737748325581346368172271803615643433950565849210854265587378571655083198627700498127852007917638528013236410311590361563813060747779735356828373687262001713148169219356618004867681855229814387947962962566112272828269926634403960077668354501168112538711160229849822231245484910745853733889446642714467300885597891428156923381284978701716920042566990656529354205497780577597905257334204006233602221394338990609086860122994909965226734718634373680564650731650918587788608895822340647844470412465021123648270468572303203092906572156093911675306015740077587785734494113153517797421101659687048913820540312633988286729705302486791586544275629786447893979218497532918835173242507229360851317709077428721167214324560831111382045231070425730429817284330208377277201995253444408831826930986946780439024574903076362917747308273215309876414567011251892067711363420075381744007330534033270959380772569774680093123118398467729266424943337814379362050118325784597894258109266966957126992628274087464138737435590125588069181177077984697952667600834332277305952651698445631103365009584784672703256096074943711015857889510308506559986954220680128096522387771662846691160809647664167330297754739884560085127220615644321742964333219664650769413553684973835092156143805388946408078944040573926962011481702962605919337017575227688941045863069971282896345991285506220759623199492561276036176472429970317530709073071261039766912395214586865619256325834633074170795324560236413304849606430674086657256881762742321596640643607007314460931925623674405347834419818401668429481541138362055814026173430186991012180312451882166783906808087570516831441765665861838244494548474463170170025649935150453328857900268379164792630173845065742577501773248197319186046951980047655423286208963376035984148714876972640965225066601469507830365220381606557324158316371569642889565305077744738460664186543748579987642962463404096504293012276990161178299967805793245995745015095322075082255392970560126143440064271276641355681910237459813760046633949619336894716404945470113784868474654632745760631422155147535418227205488999621019356001613947687737961367917813800831456551862771507010241036521299912161519453889031762858121948699325093580452724359574051088128522983534625163945077477717346909321162623289350972841721231601561946056709871592318178838702135805502257912384977879902456020240311513020792426846468586149008739161084135321894053665580695170625524425109107656200951098620075102254672064204311855317968638839418499607143941383326215872954347304770235772943737520705042949908059658167055214538738872513521949995117892142451306115971352441073148800429312636405353635059874722182378052150346934516039990505852318522036072473082838442100980284312968599575354765751701025989035176691286075091654059234129321343552836586924130072613213382068234385244422106450986622407443032109785706392768918485756156393720302829276920518930889326863314566773840049963306966021345213661326549900854576650310237361778522719906526689815788915072852511763694651042943076030454422754868591242899534512346644668790948584396667362958834649203334545955910237643116762996243580319845254508366005593427563972459914644830487071094815809108643793978803889994184636548243260787014956212133384462567375959097366010388935198434465024345994726837908022309012228135979040510853749206100322596701531699689877319966689903722906343706350033361393825142158427514446402208976250387120243536076277087825015385638973286200426561972919827277639516410764281005426456415879583226406746475118009929224365359361628056405043579471914040477970883617303778604788829237023197083651870760110564787464624834912847664070604462985656126086286454175760203430746702725286077471643986552644158522400787952652876820665105981879581627845055598722097054494063850368684485353592846409456998333744611789447877881526295242305922790788847015096718870262717563618417875074005713103055931944172764893125203510535357931831857477441629461141141889614783382279416764714417129733044829152980229675050992651017073862160806156294622781643045409035408536363572277493693643796908929213003821073807471427343977526962276512717894119904005710605958605943527595922600398393899072414292644354143701966927353117111140847155434483254500631132556017723774898649091917871171954941114892585614410745457366878770701768774611955022548270982380404792453408667467376551041110032636360224502605617686893979026053931102206780266669544933249880634784734793950752487781042687841862786979125839713125205743334320589837368723566332144109433057775002775341152435856049348247930966493007797581523917245164716174048633772895315669050957185984755701704486354664495128502174760879922223093002576024574396336915108504319005620910930950976577502562048854127381305961545991598295554110102925926966622405035589833448914807818882649788863794352026190909762148166135758875936453272169043333658794442608361930090724925234789801394442446588227416365896263275780281514772487441976793504713785881490562251248183532540251516466531430582571999366295443240854997684432289808868126901413734097138322950795807026320003029582034868741475106548777141916217741859809051366816473221268090063181800932335520025788576909379409088912650058269680297570814308320274653860815994537266967214154176043195296352672873459226938460951605696037377578028828790127126095586542273292806043915503309133265635938618776621473037134500784529102015027861080015358332113383201883857884955401803463268855929189364680226298321720021268664247899105514529842642528496393176146467755549817318208290649194575684705853401509135945623386881121189675606921734569413127449773242298741124529508879548731427543713381424375464168712949956262741744850305170036753925088559914472334164665469043953868597166262447479476167286183372593294182251878267100940908227725096413560472901012240724827829173625559587120831890292027259313503682883336080797371847839593285394987296622731834930509937177304186879718447347003947496081979868791774302348763093028805166226852313140113329802588779351188239937324537251711364151008189938421068392530710081471511217906053943230857908793358150340021146443305264008031565515912078061104312737078475180579535607032979640387249958682339398158369458811542206432847946538934356088947741063439811244434030995305070055605444670737861066365906890650164087933494670402452879568357971933585122769998024522663156915918431993374621113165403075507580840140998344060561943659569121900869490097374412487301853012769306303092628713649853076251855826367309202051403902564030361570152457625551084966929587217060208295569613330750410254099096546051292848851453003622846263179899422526127871798972096952926929458145543862422125986594771913334929483166686427651127344611773249961540736972857724017787619367579274976694844273787667135712609976221223606053111219942536092529249458994014304707930489801524683989324174585163822079359454332402543680488187613886899727972148160371583599566158036842632782815152081142556744131561836895911658964374350165342152890157636641690357152336500504374473882676197879650970204548352245657141833493540563872748277928882296919558136450194952544046348984718604857934003893329380932820054131202175051798449390131249181712023114468994939138834862257152704410915212589636958235957914059356693293533740482334047893437005051281495120399918331886214075359770099572922716864094108662553058823557718692155870989735675180511670078610343910614971361487332292322561543206020249907517099687372289884641844433998752880894091518216903425824086849705490145004028609797272439026920049059462715280430082170830211835165911718312441992237689014898180166435147829038109284177370872890187172617576747552486405003946366422677792463061251022310129894356925104153355919502559737304162761640446557703509380651468519694094895641671112147090423122930313891993307358496785775361657596240320227287715355145831922198586962287492891415660089443127012929543951753816861199553928792180547012546122649485788483595524037258078811094792558425936331188585089386848708069548322260076233936566702665636256332148609077368522900050470997210001504858674324432935764874251081282032391048674157069171321425417110406759063808290224720593042060462900112975866618832102610732503613750501445540963717267291690811640383166111175331651971811118697647784227295149508925973184911881441953247371441764569444753027386716095387774727567033420243434191519209432255073021562194956196287433984557844532606473627180194099407678026929750012597487605331594010761324813735398127524370719704799113613242032444736185152693261480447963991566992863148580662733655678488660366624863824018750102638044686558532872179058341595111413683465816983849184901125218453685552463186127684827713497629948815638212052475242253611649488471951483475153067993225842606736643776412607787121437615279833235096664732756134238520277335308820312158376359180806785841945754624367930956348468277096916571963815393825355974593161757570326156061857350741743494356001714299340923041812142474189575317828197117616420823093602773759246908202972882529113047792903093199752747183137331264499473378485762829325466809038415102592384400127344695014874521829181507723543551880696281249594132052666103540810596420906106314653500255681830530044611056657121594409496729073063342695226392630831614092148929537800031027296981184498023028478117170170302061234531084837171921825923853785801735107724054147570166942106458995643939929933837395179846097174061106953080840243457808942590867836195456904494445682885859307411851949623825918426303883033476070987093238397017370672229575664990950374881520019711801766753452539468662160951021342963881126303994676149869149341899468319217255567123162253563759567840302768025635179321719002393495088841821247679950536662899874164815170830134415392373509506967657803843448972750773700485994822126138670785120849192300595788625037673406835885604921188859386724003679924574705326428685183951287386394899923669567763687272756963012667583059158507379747531501113825806364119578125041104619849511433236668409231536531630852227337227502711769031928307393424591947657542491974955002415012081695518898930602065085505941107509736477146480149933073273734746247616935989104588245011121876751903022520752837166535168177100495568397848824192101210581267586897750564402579294195364752604778309907063253175049824057861326857921150558892732863154870357959368957197324893780934370548638585375382047088788323822557821235903518848625399396858718729067611241351332706421212312471570852951933354870002757184105740537925157753723299615267649359817232364510144355541548243406893928008616071988059532297759792937526201767698235915168819854758753117327315283956102740880167488452459085654158277389252679389219200101352487229781143151617469626004895578425302238853106166243354302536367169914050480311798661321052419261675059011372568134165284302537279914516829179071432379904500824795045602961942318501642551161154025026512133834998376198762406857012945038063236989553181516994620739186797122918829462044839836556501468613284437904682429613467632450067246844760278345589086578856006074655123995374163308729570824380081110548216958281034506392996440232042335536665732069933110037025750465525406242491191029717583634298942839933485285850741107950451986554947264328850433295817169167887496333950448356322829039868529439311377126065722042201040294072679042314258045407502769504900264687543810351005608952075335492502458673115280323931599059750421849922448297829262270649436515946319221169171479437954583544994156978248718481930781195950747713892419630099826503870779836109015648202426734958953639061677348614017794196734207771847633023970434760073513648070281530283110498240431840934411204871288326408804105078665261515195778268237696357198622031388152337123329521745443870508411581029312679317088107583407934873461078555372935567912010155695925691205091826320656111411519942511821034990280947242358670012882693673184919777849532765275635295817763488573800551616281876354863787118802768457656872187618341888372194252849745293829374108346352066320666910083874547217250156955614818414363401423565508694919145198509941263694884902211884226274730226617478343898550799450752720917452757853748479102860111476917086375465208785375254352112729167575541797508520551726372638384213877024072902077327282886895985132054246829135170920213169328670978395828141700416551406004882446274282243996328664143949495478555937112311774872757220207158446539004401070256067430610942227853489977408033332552939432756123719206606113035941854910276251005481607204022712010146543758383532876795901284798176202829438871601203422067928582181747657854762118666289781104920409740835087250211743504657615157426659422307035819520935136471175804671802484350250450803357373838452090430510821356070388418409448914577848904657446636892272692173329879571667143110346833400154791417661222895061803954226209719078213596825865593424571535760870015908405558756746636251973035895816551704116061516134517887056469083366510760673981278063522702858047084316042784618507266834053354560814643203890509929143393312383316465046127596551279705494427456422484908849537814813414058921565469113606026355719643165099611058555510039265007048288719969416738533465366005978885707134197156405065628470919068224401951533293151083707756525624185035763225667932198543100066562979984262197775143463811084801367269151719982624390772523190949890418581965170860462680235990249716678566625101209604760409932076976160790460665604943180946987210293105572164678094600724042189611353224958800943933098142781233826675159367874742623805772057815146522199995327050544075559530960824939011843534549023158235575609156981216704631310335853511415601975670656074297487833227579409844687248549398741287537151302606525732944277444121848935688757249895487544544375669692816535755433213662964279985434015763063212111930690633963420571483778635147859288103978091300428247422289540001948551587672959721633309729753147182722076217067827748028452716164007737299575605462061553345642737848722386519384587857677928977058929511026170653305022756623445035497312635208826735902185205000905526352309619062056481116050134047776971603658677991542800336691672753967718973325128264231880266395743937559502447693389282706295164872965469116541345696716789450678315047552500044096167219825855601713611346387032235826709890505019476358695666689512151176284402457715754490627053551774815270864744113516684197104389822018104188515914548642453958273929057713945083370186043661798946862408015511212395342389026913689699454417394413402266798371248755680148009266082376205126814838288242581966788072631200573015958943063627410088804235265533868826284948872096341278187161245209160679103855987065703139148903226009644439848268165863058551287576472850405443625623011443599704802098342992173890396172660685776890935645259487279405520132171057250075565593373362668512066702643791076973498867848913596035850574867233078693522338205902182954108415323638003426443339821076792061603283953539698677733170055889894277661592957846758323822331565507357968092492787859047613928744452075726047152540102034236573452967340745024878049813086175957052601769838532582749938912499654843327281986098653681907213655971301226295889118130917778430966499567995926614467962556958629192845217723237992016176084400746732145215693706771687486598330796722584843788627512732973938700615202232078731836491088258089904205607047083824944932737082939206648845127219569571680406210856287388639011867817081191493756881424579690246255080336455633329827647767577815416649238075923139250977527458325225172659077468204902323112783264246942402624712307580165239207161778942153377658556020559550203593958491738186274660223902689945742287866774297111760133287182857131395386235502854110683865619779687833592332613527808210393115079491480792513781022742564562606189140727499965780956929009564524579815457604274925207156361175691442025878887533053047704498345457941381274102298959427437834222220836007196768659609553586692856508948930631297590875084759353526115386437277242890585510581346999075326018652846203415002175818200070885630606567441079292160837189707563338276226803979911899553753727774868085955243852800732641918895796041310178178946409749428954610320059802597771318741078708867375870957720031709487934937955031761203589645132952127667882771121031562816661368719151024603786778170524889740369664007547887004141177504553099136408356266914588411071955553946855451436302152057807050411950028911927117225738970843717152603418861835434176517195814649213640012448459450173502670473033423231129978092938258444167091189369147632658767998792461966174780060182665352214717554638939608017660772738153893780958830302007431579725996871621546926786992569657689329925891787689817877513076730077787146757539041563189266179423280281473875221364017735480279710944520396950568832894316948843467332650836403155781742013009983638856969058308817334368197924705433071544568994331017682010739695727900811852781529195737558296613896929690352207756369002607750378009689750290298985308353301542551017705471986395487701574067313004235561540887360733010861874990666526932401632062439651486842772954724158190856779920161492556145525101343995921059221780396301538603869576800945888697723192225736741911124546573248764389044447782345243106079211295263810621088092006912934026927538444096226523392855533880399973171176008478059555543758328462383071266720015997844843515621831874303378517971880154375901973910951151085656654846295704540089762744107494824887699087433924193859203113406793186863658566407189543578854842922094463963859328650667630577383218505359799301582016414066702870950062921336875741640854456820923855489715852203647913846327100724456869833648006821043856805024556216333462576503796405963362850043449142747405375304300876459468635219816465579841588589412296656259780983257795280856832295130706906661166694529476401641562785167324596833493093238887523094788623499932515879125958018499544701214953862126759655269811977273628860714849912376336058283212178391524657869112642165420335163483876707512216596566677687279007743712872420792381585920458587534159712333700748285500943222789775051156585326783490102064975356093462020876795903685296649602374740234929355674242331788625677071639909766905747490199012530731202928291411669179638136940577496850060590242316638755176013386818450064125204656683151390255582797740068837446635933827221613254569910916444965098794330640709089477134751964563119746209785260995596952175533901468202867200292621367432475274341686912089294775353495053766895106300424197364064758220700444421436549140687408986463892034955556623063568729379295884426632618891382855170365176919016526601964048129029979713351376823527019687679179577583140083130682159708081652154569120334508009061884486328359676355952371561460645377994809844053672252876520967767033807227704051701081923403180228550874738890830406114741763170025159477646130224325317128701559587887055408408298971416873896299590466022416820211141404952217379099932020860598289226883062630274701977339633692522484995425745644841884846065019863751910407531980227813348095661862030189164719571662381960993709764726632037793837722984931220332583327791618298076296114987077877300960698124635660031153624322925604111901255297069238680725983313841215122968805239280460001985740065331755338855430235715896082329755299994739864360304718647942053761253462290225321500099782926787439837370126471428417726993264579728881657023709352538396669992015122522719144706677252272226075315909435756416089623945450944988050660287593621691884667658664386824422987746627061384405622973148149798049505934307702619191927301956949687814500084707557412572987416203747607266634026838374723460729498967722018632831302924435565973777337900493298862676600701487140373090340842463008756744913806313427214654919997707784542515192525700233209182327420433465651518002553847426460914757709274962134462804999504018656683984812838832612248101896957255133970117025639177465992008717932060215549191968273273992528403530569488730308471958041042530525180380667684925361503705267842294694755020968631418908931743970611910262128560230524273712603213663973709335436595953709154720495777160020084321637980251113316284641487488667135145487302691686753376624845047112793537880534093354290632253930327660642303549642111063274902106665284553672882815815853315805360480545148338809005741057694146540514439598748302325811610820542302450341992243780000635362437427711603960327232882913551125843472054964387271967902422353239244617438473672954060386432078475220881196769171330895441371273104626098060818752690326111798865516561167467755198984925133541494106757501311908036265790299440746479881008772876409774777548109493494309096224455915701034978941201315332714403273253526205015693226827589780442905779680884173983210493864810853085470379444100835475289973361133458710428029242588032149804527247647805285904707070932579340700982663248095227291545981511653263577978175012294603242265666540184426122398615444489083667117551546626995241835995790681616160644477205571477970575160037378098475983260601558055605385513257562627037442980679176223798667993092189605632771253201704759296278185430979606447298905155669135584497160628979990796626022676331304112438071924615877693607177175910283124482993159613777763661208954911843335514964259763164547142012507370684273297608551169685456042292186604315238944432682922267765245308142913910313071079493144842449060070747002950253963612980322320040204888340470876246459114513288776644678082587334984844962567213088404907453018671203565572395641096566086420652949372284790590283789520052490719379505243756654715202512805794470428106565798024770700732685870862761291243307679387662370575787964584862796141327934577122254714311727214379392262738138593804216865637422612934353333164962273943043127444965283457843219200830221141363366788774020168591289506490279092354126932003971133287902576012507509734208343149653143323769431523560609524870925754780586457135792026767892477532479316009537037392406650115867482679980181997482712362362724230837553024072200792315411518834494511329332248296077456399246277171085486474027234400796424545334424645885674947137047312221526007236088645685024256142143569492824682771112977100821778407443526131672143576941268369500056780134333925166181125951121508414672869580803947242827674510438682152535989061614933855564719923157324804966389348630309539008175231202477803497852296436483984993417659083959755430917093786835091254608321008559661404111067345417079191794952817877661984130588025032415864693157141751653630586145612710730801662560072822071293692277241510588233961134337772541629930209354709893538726178509479701717668176434301364640231867048720642294981922042903426831698981949574101808774017149775592204540060164509254230783917204187681746021423612215606156594889880668446113361612885103063714902338285764573840661086567151720624929306053883119987837274366518975239190962440987421454615125963228470071046791624747498306238306522507692914919352852430883458114040798987734096823915315325020527305695107423049679760439777127061934448286881041003806069291332802088526731397451418852973503390080669047343551518834868277885794413638469391836373424360653190248704115247315837196198217614519504482781084406134312915360497426897107002458676805013202092353179336053357359698007646611907336312756275319254141725326641682151910684823582971592716413357499961746891025649672269680382467213478188183541558386189986060271500821233885083198192730088085948747588505417126476756222601219270522549789627416898306623553585929840639589846135032724513450908251675643357167599865069735276975135227649188020772157504274274511470529993631675815739734180458021353504183363793619564848035177758963584423990897659459184717449699659326651622435961937573690735386230576197290301233569520950252626636860914815653343687374351786872455612040909258699066872406576424926703425852061466537753608778594320484139061803676426129078980223435665774208330558846718474950391664447189047214282336988237346558335682394281610095614685083701583412522023648148769851908782478515237736867683704937415634583743472742569412122885980068241164913788234393738129622266351433542333816624379160775688555557314152539030767496557553867836528254403793419122324061594426867686066211975905313591907207781471153822110468373978904048256418668714018591582000586465280475199018976764242675564251789070143501319197057817460113749621997889200284261153255879134454134229813405752841161609552443615268074623064214991725100401090968986867120617233854004595843403015068841360069066991579889588406582043228997190296013688869654984339616941117780740670470135829675392870411636868279274338610409437734616456183842639700469909413221824533907263171082788115797849693498634308678391431526787691256413202254338693071543538250724819993373998122261026448658997610275259625614310233454319341381335578670930161502419999579502633210252430219775468435485645890379033756457038000009840179388696210644110175554646804437824427894272927092817672618400808814460638540566940128801709885339608151938188436284207276301679798073405494845097420457625809082252918213754647404536381354934790333231211631487996182331700939552900895942835262920138649697593989552016681772608753333066348095728931003851671101317399142237290735124743183228667499631225611543831154543711211020824881860296404395844267332932107300834357149908547802236707513556727269893493069671973652693358897994305899731124570607833310363184841088205377242899927767422173993585277828654105225600943050821163503046808237902548585065533583610187619638933634335387139878027440227513224475716076871353177140848184030621061257069703161438216788635550720776415441871553508639259549941065105177665062854511545610536029927688036821954733512446043607114808977450232716709359893114832151148217556584721806743082107826549517157342692768466689134233921646298327930041449335612967674642225350894125580076624398140833977831245606473643662312208658298715444304240696922317923336754136655460532086697165148232221946948676688519758615097427513041869756185691510776060307669606975459135229273694501089628183507373626952577464569291961135030071650091725920690743461941429559590883240761438978979328164131909323190486740919205708553916504976099651023703114464222889443261990455431328514882270501380602013564172749119991069115919310433370447460675802189494262536502779403326918432756203830227093608503624267981159888676637001027050485103118773685396666361454722745378283683655599837628132491733896070706401279641503358623718840602958295497804429332876712180078085174793517932715315278795995770053935860888363267407262264302773884205692254394959487466748963105646828479812676304681825914045146755846825617971148171105646435361928901343828956433017971906868997112607576128693931730809438569424092400948868081893589356119954852892650115374995673847671166648571090338882462626895922526380872522854281458956091135623681925313176678946164805493822096673583839387671836255041479562030822172368316436412311031812024852933491654203469932938998245835820535549654697573148139627973575515203915370388585855814886209309194220556165146215056732431874899260604752254686181961472862704628009764815448530507518086339643302296428094273752301358779779856208063216413447177605005312654023144291933550261542333359543961231230334858582177397854362511793579237368763833909779252355376387013540264755418261224625085032966751285958517837390587150396033135492946616623135176217639887877960759398593459081791071832647316587526889242085941028168483132442662075686713850159089745560431387507018082475976112754735659724891137333573421408985050391143176877059357942550236658348321309535761310824890470747893175066245121946512919209141970518546100226695313490029026023229592624904388061366363678804753243762257352349173092887183384268031365276885856217623731861120925530428620018341074011490441131313859897509881888933417873221165779365328029692541322413663810500271984313121481993372937635250965815052834670859250900402902907915292051827570562402476108112761592225716191909594093489373143301315244913005109646184969870863784532021323605040017936874334739285834457861011796107075202490227779501609110138317511876139328563968211776717758481373198225372160886936619449387588641549067193482890507055688345127787499321233648932590882118317278162890086310727368139772917065293332912954101262915754235054057576560214625223361255034813241370723462917766943969312441428322547028418922669484310151654178264520447743982722836092154878535109731562735083056216495912629636947098846738607148297149800421242301853456191678310666765811976145049722055218939520133039300235088930562650338126093511770199789922674150519638430929587587630136369837565195627463937867503857774133986659054724906772570769417931688639295937119338735693833517876913382363122569825753501003236560943572947930871853088219854140426264577187253750171597178872928049101400522280244241849236569565783319673405926974764658008700858815606817687603077298388478938100912921714997754434640836358565523808191602034436431819337406832705950122088477829367178269454850829093859879267639605596864030569922923681816799794866193315241232392419305093123068560874565058385907996644939601155121046495518058525929482589778484794350720390815861755553230888069584891959393488941745642644252208086141993493905234856130457006377402449320597189588522310670744204312361660089275043538487188301168716048976203678655003095483071765468284770696027068796714318797047976934907197796664365916881663227648322284565945961714202684264675679242305396283475333284622267577033611601584926785879211759088708160721480901593762796374819319213579447891255414539958285190611813234109959239827391564559705840222693939766303420973107148641761246750607800314428212199681280541726975862678594350122492198307290156122473111543033680591320862344692854067570374583642306590457226659037222113469812696554763982798098202110030727039758252334033857921133690512244284769469286993183081869403132338638780228179159446873419115326474810338615729812855146784051473505293426822157606305880643212404844425007035224889326104050452622666514985439767515536006925900699885717260969680831366373363352145727197489077501930408430599180570449495748228613121463122599889353101134138744892278451786242112239071815904831024928258381284814808601669985357359731887992750231580836414120835623664730638612045459430661692669644860596940408163739659133397362785223873627563307598645347124745702603720750853769458214626826319779516180432580026792783192604355215915057180877179922625211108446752188660184595950295227765101550648764578069052640085663214672384130047529092896902555068646167539271477083982981606489313921702598311541646198735626150846051533211658883915748852442062034004856773826989987391225749636304342636482762394731893800674175771457758321451901007582902776123660683592561430241915953443699761410163078137707779488257894282122479376888230175373752218188288487077409277543343279585892547074960799208351576583248441780568710504780328106082517250729196803117206032630496984224069515738611874646595584004593352745138387116402177051745170704284696485140635808431713078560258618776522287579454730910681851591522203782111284964186041720902312587800777835820581468059586037092066622616802832449561867743147270651832260973671283452562045970768019511869212956525699897881829474911402638915284696432922659385485917394903761638666419267620824815385294057432016614614232383140690101426969191549810678662645158756695152247738126501628133624046623556555367717436324687847875738675277621230685343171571796093400153177178820243820340326200406973165535448966916730817079600501844820134704382364726082000255785374952830092173441901399296191020770286579557104594308455169238159193605101945884544193365005799260186585910369273135722321463775782903470418951247873006520298459748392057856598630575470842693179348057522581667873923237833979773641052904140576166260268280826570258791707785799714701474378503314954968066885424874878186338765548633538079723701631253917359759380178658540651513146551324698143260104094687710460513327338259078873138704048782665226192454802169248304648907272898371201076842544749554572618238152569441250530164593666430908554616762299879305966873616476887774991014591707358103995645917998554574927614901992361131768037102630730854042617187420260190897498911310853097668115394810910166354954661115049387679013405432135976730685354799199920057798465602224479090987309282882503834796995516168762807967176731309020651238303696497893299250260018659330564958827307369555336266054103482546284445193815306480939544435975137200510637194270530259104427873373252583107471174267524632368992246130579184687253243465411659613528567343562855768096121943527118804230791312824209213847627163996314930434487805927021855865896480436888111245717893997972408276633219875804140970877985164504049146463526215884604892839024323356752053816510928913614616401412558184543800704215220944809556158723533689740577411780726754977780550565693871922072177431048790843057709583538167158608681190190326670006171331584916141934060482605025511477194450714700356261465390521409874034483776951360676286280340388529964397681391131678350676539552648212335459773766768528900617507746743267834383418751018783835541470885622485304650987768099353259132187722771393329008382312238646620248255850978461878140281556443180355343025349519290662712297760262635878107476568063835223118681835219297554514040111217232566632385700987031543103047667097024236711217441923817738706407118259964167676767371192327302647309900749016541237503805089170498470626796684000499190820581155084535322034297158140402716301713851912212634905852267629290223024686991685235182640690267296056021520853015991953876730007219789221873754879521189714718503579720515126330618931205699640154636412602480443694479923513171576439568296893622958090438554333237315530118794850529964475241161590180839659759944291529319260673865482832378738060074528003412172628058574739816484638972445733932620192827104435277977756231014147856003004723642111457124634790583315585990032154753108561881021758035975931420606858197838421306540394876698863030606465733426533922828471514434821686628392320071011609892470110416374028043928505430174044280183397073165406539035505466379676228068503329505074868602741354534410394664589072076290854984495323688545677430712295096128369831190550378011535325417095775600775387580569909830551723885031521332731284924937415244871415872264115708974794231489549344335029223886963256179455622275671782762645212509074631086575472949682450857446192454265232875942537524332367543223225109580639692506000496024531704785877066037748192645552631185781152205795248751118091064770321033351761945936278351903676157953362544620243538210849419015152941180674961578799178069522112913774673639616336673386556956236453273141531957245281521759982833536872810149210219792620885479961305248648818656429016000478456634637623597160788539052621731959922332815237798229648562177912750133063635745659044293402661850608207753984625356654543114957723920332205124026793440848038370684445259095649951114165156655829748604948822294369080127355281500097318333695248243933946548674186962060005076316955778616956966103733747909456187554303923695434399601266975117846734492794063951087628957885257691034920262490170226458208643608943084912306643859411153760355223073860668154769544230871568481465123006563479643797198091715222906768033273289952030430460865477966992438052548324246377643875954904146868034107791203204510869058012577004451865639499160636047464027340716481506715926218960074456612744860708364628090456155937081645542221882150636902587792516145341899549459565909245913480464249743699952515263556753893035466726147125002745838170946216469692515407737593299514932917267315045900736661673209198639279431673591272885532155283897651560268834171034606000485378416381709760681154872940531305873388081499449652648105946910652179523359055105664065368679986906852000976414859875643581291081611375475224939380206450248462803951007776926318374919500703295850228244026562494532509184511383699579889826081906275335640457964394477422497718843125899517796118726922420512637733190744820119047242870071553501940158428784071546151002086220749221881607953120372722446517376893779724498969046408687037913102602238251886723493569629825446982955756680577436768576665563931472285287879797997710634519484511654966212715221585355427583624416999959027378354607972457520438112239694860886759131368948619014826247150137405979645481186186642723651817049647262186439423567119680386067793322201874706245441644856484823304605250286038185250455227385699863125054102598861412962924714550762667307178702679061947450938315882832792608835462740286480345026644784392667760068196001407713161034789848748941026506425222042353293728544242088593713393484774517530972679656759658277455867424952224568937470884249355675233060071482035435646606117698938402223050019122932389249243749500354643224400276471885575425064409763432848597539681800516176021474031820929694797417537018678350369138610776169300751950653217298695668574201043273496034187027808791431569116734530664305744947828447898501820821206334999238118888642677692061098097034931847763295651140468106327285712086065098946923799379237281892600852995180861351984558565984209965009993262730869610837591236321584722261933503436582121215862615928462679470560929267603353453833913368091298050782067654282199823001129869169154339806333331006983814260334363380865793393374604752340226939414867673293483892608138794779235805452059342674686100895736984285231248685986002210262656914054281913431981729027465127809595078583401342871363334873042395184054716669234125102771606288649104162212707603656875017017064228460758509546834893790322082891929878105182494359582772472177038179602320131050583237994549437934912842806499266045073583100340811116757892545613309480676140206315197600444604649009781140825676527384104903354547006825580422962792219830356967350336021505646737884829539075032377120716512270111369705096524840824889302662654144280804320220341952966591075010000351435968561631521685465768579160600064778135695858923991638008270060587840966857393408220552618284807485734002579655311989565819957424605794761379955087857554599396436773942891409045178969482657006129126880061821695417479958238439341838187120390014883095283880588408859582536221132044363894570222196674827484813873781967222765991396819801190912729744565505221639641349300439337113706752884823684230466122209326020244398826673291219485233227008420647354517770422467442263579332144514632330933146132628090478641899922818261077835291499583924716411097781766125167409750232741810056435726516623129123100143630869102872937682326260241125985199436956357260660116088021974143216979284515489598202873644766905170650595373622126494445193748141362688271680591403882765342538477895808943185560237203440569202112180743531142714807705257315589027499906348523331320637539160240681990638294648908476542031920828832574365298855341563377408729583285057617421308245462105740432897418983229496118961988115191621129080512982015851819262940811412811155800418367182726119309325994222225381691444478937817172360857763836022406381098757928152336748711737607071171497747461243831334166757097616846076041892316798276057345427675799739636006696707733624166778043103425976122690777132810090959318444848151333834335960362838167577018840469178207846825537648644412052120112512348487101840715439321411523296112300154436403631051728270526099374831423105686721143036786506834830134492149086566584392913566265011323365834946260783875476931997662354621041753471687209600665173597116358801163702194793760929705626003234903660520753803605740065444016085408661001488957091449137050035009542939989830097314591181406870288052288397417443283511730759989590554550910220702579752007523882921495833613498387293691294754224633399312695984775100365692948036818916539974840898003481854484677860571322361765488086544198706310643780781990957531022700850357051210284878339429866297036722419367357305402870260774300791685135616398835345918719916853378576221044621628212703492243483278709289288143443931881402413227311593245236333727293707477693227751218044289053242314817191479746393763101174135016974268002646855997721059843948269398761654438157761906573896609522474779474116917992779087206666532560430870338438006465082330895295601462935576460032519810039866410234744507377511583364092249452220228200068830291713424949575639057810282829641666309567226688161746454255284688237255496725053565680441573713162529612502176374749731793867595367129169646364641241068152840407148300801686571959560777628907961513791219255639866191469643874981915909894239243669153552180075677680821461363969424214843903526793096427275333841639073558349131157447326839014783256891101462969346659976194122503056362214071306346660039645300658706354544500489841471500676858159316657877774669640474584569224615379456434929065448150729485571160912709352180210230399688557508786586638531318170977518254665868628347409396457688877814370317780254083611067347691771681951552260600900416093326574717756843528597865304252298860228849957282080993496151598522388211437650593549469257435337185902860851880323911606762951400219934463857419690594378136864802078097864907549372802215548169014923257050325624843626058314551713543409484077220047710371993477776993081056010199582335858315500977507334869458381586010242451364343664755125741582679528992832805315727714063931465905623481414214766925367167946989882088437208507942707802231793707795343046618486852663861310506602733400108022699661149354046960005958050968461368003472789889728944136564087530608693651445451929291224798546597068701430884318896903932636471521614932091648172302998038520809992861371179036165377601324864812462847336767400693494703472882801072077035016637916685165382437153192022127189987191080823014306993229992687713177070497169142471197084929370341857793244948479662889651256436935214239739322069686713922497018251254569250156027338174776713608991123057513087283885698358049355457824771916501855170427762480342460860530202831217230429294344510831919567480362615446630884548188888767147469267636418604251247284884465523745647160894210269691727293561859331895450426262137987251431320294784766204961829288579607544114714578899987929387267197907030302015847933173336992687234854951568358714066091017837969134429842202192620012416528763958212707301213565882906539872465694518118329557624852270151611169873449891750432981156513736097650133465679836907876126345334748299731557598610369820674395655161554083532846526485654640232310573106995442076237184024986971070861717806604000063754743323773790591253658739127082722594189768999526165453610073529598629495230872649834931244290061759832460958090975355574533156824729066109487958768319431707265873658614395003320345990100640312770591444605374067393153636085950365247980741101176653504342767195371210924621015285494456566176042421515873630892733505039670770754018082389001407549506315226186668883624667994782452535942058178402890703781089751874683741462942451149048857841641191810626462160700957698918240790153007739444844871097663300181940457824118944311127959340978552685308396548690630231720070177468466433561602204545497164160252716952305606515070768666753018060859003250369453271248535436633600281186076747058081133407181768626575563428627871792703214110030851496221377652632534235054658077879329912023140837650379611160740607552130619237110721587117990065630336058431520328063436409978028022801256392043230968332297791117350528932865949007808558329863214272250058313719782902326913221763068822849488215014282848848071500085433601431325826333700597309839673223082417418454478969219864690391974239822331947610096472208663928126664068557469269960860654192650100604092828197852685224836914733984836559221295404532202922201229189573588058335408938945309003296760745378759972083516998065031192347391274482076642968238794353336737024858805708877143208569171549125951805593023145106223619546708576197703860755432212257863628465921394520563028252361870604517106708478451583067608065316594109387744337293228832381517577911431997978304228108103086960433012204009115025987950293899692011883048279092600629410005647412968016281900681337046151620235469340754870604150771670384456496406727395456382885511365524863153927825839504202994873820863409490287347904449370329164167291009665044987064832985464479225278428371429474282555275491556617049027151499547388913592863314497384728400507821097303954580719806510777030068165298535264237277838508990765233931922098689507550435375400459389824627747440124497818607995621611705611308690536050608639140257746646178394233010143453932284031914855510696286408425054402937877382343270095517197840017027667895255510640006749673602382138204930382427261819083225439756505161117404246608711410549562736536465704297761802003288208550627502891134248876178628858476717076605146943504702586833211316004191997561117590918402518860623713798283240386768527913241977137383198334594782245419355599463538935756116869578034926431177436306848581988973086421453406358192561981874420000043541857985235997852725432825915574808767630804577271823233976696391647309883099869788751694270824047864218977940722330761055492210589832118517407558438356286414212510713946715601037493572981975443866699983277539371004257489033566238206957998093105087312903168601082597053283490302287675460086724942062390823170123985804829805357729354197342868723476888429488339276301514997868669939830883295231659552697835310111723749528296770124745902967364590052862971756292150906351770769707323550975168219849230510989851677620492886431655931116833737051258256990309828340017406753838478948615511726917333033531733762203029312423094494096872110995101475204460154849610377215621878982989483020736368725537860411952412324273771487610948829111828504181332259025700233246265264289818663533549334552278588064083334132650661748683250226266766787495982847835241944309693114820604596863295364548440108202200178069231613539400691809060023858754634865221169371450372329215469921226642731651258054242861129549017079241618307636796660699911358451082466878976273382400740336933222499377178651816810004744188563557005373483482733437627916451902079390494300883493722538520374058202704277850508269757344629531907537929757459376064562528177938545836460016139176487350197369609307334040377316959971383168334051693256329461961534047293017597645228467653787838063868531801864084888972749141666602428942867104180219540472052007268522091083816128903013954933917014799666963998054653286013514533642123200721536010560475399049700382027204994884554419187540746431172827597167465623363867491570598744697219901035884862636749139066831070726524184121666935894098074199555403839372617439752605887562074384731030758634774569488995671765928252409957767210938359379966073764728974595024247672638463945201060142856360176114823781116915133343851442263419966851363482667128781613245024293509160285673666862694058457661242719556528359237679716672791784381495154286763112419497146000070778710898771090849904348885589758664798330564878577697953303686596548228458776111793845089451220179998980439100729120267429045321130198343771183108854662584363081557547836119292096789787445497767404970028324029143092273882300409324254211911382126851886424306715459815555356463402079813354554967993410900116837695362860013371691218485990197115795445782418183633055711758808275344809892948131960308100345912832382628620938275559382281794789519432893270975416816572332528676037256238517793478339265607359920629083473239788492167405933021088817408514843169917988013511993663027636652679264232714859505855818137371888975790219152016447133409300728803514286870819688931487276798459284099121082193990069699482134713333790835750449379174838015177215436894061027920941773452511683677129161951340006437347647567615903036531179170540807302448101118407701157064932719695577874491853218768677327492798553131695088312806855232518289129579492718002858350163860631858906243429732254847284542161484533194706209924719813063727915105523434831031095644892657568744977351403666062170021232606677595721738749260168335013771681807891021343968975557333032181143809006699866492645625511275172385355029526868253531671309549851466802556331648179818455643860696988120385838375037833425970623111926397022607357510369051821471599280900368262012764361970572013350242265060119252738975855264297418379037602565885600038927214711463430657726005378143882951350838508067065216047020976054056413594540923471294369710400214973307543682669554384842424243874832881386277658727818799863053955191703433736628264475869016801574220103232593132347589309477478008505731400022747286665787944731241284165095345483474243847030315784938003189491164509482578150425393840284152087878864657805188239349982767644743970829761189481093339134451992505623876352338491593307214471294645404976423595374637425738605694103507332316170769503037648006883514867695638387890358965022637820588721379048674611869116323634769386063307705274753758318267229530262575375755771269361280290458299379289445485850542085376976994441060448750534959240428412298593252946958445433034017471963090425888431723511654480847258311795799360368346297063409161162085895879057766101287190986817548261699095943949772253617066991806568034358267152026551632168588628394935386679475263339190921164839953304551919850063443016833610541874415971931940023825552207753166565166394719560103058772084957543418563357073576874414905576813020716102272971999195392365373857891547157086636365712736469033064452425384361429527483333705948394900183103844490562052857194428296510338610914379064622962195117744535856006591703485083355952638130957696922337202756907105641976225242086234667333588007560580382997351123285207102818162587029730466905701536654004142654923837444867585917814350170707147067471415662721542673152212056241894595469226119032186049019575866165110867420182080193803988400158293153256698463935301658725385204012732858603908914490818668405873737895571468834525729869295561697547282810359466735673866600761302280976827005581915372624341528179904673011495007702943979794656449917699960807142577954567479219947570295463586602989659406743761753566803124684484070806895617666936025588648241152005075708548539117961018375506872807635007793276350424868421059416777066447042506891319387772893506271666872891824681422690931617171779039164320755086035317632846077089999669302399852352647500041514647180210436544701845434958939392606323667897247593461480912802216353188772929036842144274959004451880047650184506913864881387462009064167212531884553302341393637500159670958752709012412500098242106155756679711320983606525914790132010272141819522015029091590250322211857410875890658503514923924762723162554528438981625684306428962489893382439160247739036506364658006006110286884090101791360992980021998141683308471587995490673310934509824707810057769537454269926833187832908317854081641370230829298023141528112907128953899961254396033485879321670377976795629236014673753566907973111264157806929699384857698672279710725922660673319450769458862132872562638099436533637250092088281243408233872433560937716311121867262745585514051705158776477141589111169700574609579044183954611343091461788599389135951823639278821262041077534119567011461893234206585535289659074295263467028517338232933098034013345709938637331883560937872362508048188015262865525631473004652979169310428519924961441517803134035916354710626764157315669980333939914469225306465218367976368070057456593381987027107352135294732924285477603008254299654238805201250560976199295454531862972563676451870992917929354609133737539781141179399911978765756014775874563707296131092700013209181488906133860228529107313093026160862310360737844328121645036014047535566251720101963288192931967531155944364078028877501960438588966522713648424855825151840721910752635122388925401246044392055351099506529593447681826787456634518421436247982829472458115294695854544851416268036898508024163505770718988698779718018895386658800161220641044054290971459943453585341783291698007982485212625911761679404822923937154347928969787753631583425651904333285371820830943496192266409556004239110188736876570105643777008479471919276527458987551975725573869139522352597961310915515698202491610064097797448318426662337380014686661782329020543175931596734677787815349129494070186451570443574450464600535954418242452154826904646157892437197266935452842912441923067212075315831210041321120074518077073797946384784877891694331615647369594674130496292569348674812794840189978406341730845070060728523527152734398306937034295854412180870443085647386893751637079144252161743121941810437468603754025021242352151071940616009405602248984322132729042964246103021162703670391487413247429358557690675045717327048454239873051633138450142745492681130273811404041251639970727438793296874862327665600505335938419248310393175234186561416915432689757132173001036122203765622551956668251523567168147299110295565293586104142719646195235203442806646544931191122804620939604028880157359860500192393112437238863286458295220712717707015808354584025847054386745841147047390669346823105520929239348704321437962953521747909770126508115952142619165327007529258823267265392842939915163263787312219513455986760386687149980055790862543808782335841933360433532026290908089226030743720638095671950642153586287674382598694632985470528664061411013734711851367016679078807945808405788192687100488026757731759435176195625434823861632718361400629762066917205116313498592136477329007506940127501245095406725897204336036332548015864819814684121320569778302421789269899616069907480237679300663168160751396184831036676323745172837127804608435675733233920386362676365184913276138683616923352451219802251681576038517740826321362951854541880605449059703353310541448053263770407567670391642975484932918608345840110837118759398133569112214753350015558475972886393827412444292593997339624963725772840522999386325323033487494233386960163519438119616320850212059681969265825049187764631312545482767782173476653341901252621300554316479138962748992747325166447487104314419977644132617025536627292309484672934672375508319865533592925558843901960615943272625056758849175491163591587339482439835882003686942955126624727696857823548222203822773274014120844077473922898351951137830277157060652835156793918049532793491537693122004112562739284406058900441683994365276083575656392751044676373148452901094898913644862588295257542194662724585914006758079442695931041994347223723306289305405469757511775062406768931922674383216499169935886106367141721302128742848596027495112073078504334864857703391651804741606665696863522233069548662497799588667052705882574664953155669108352325152736225798758388043947004176595636044169173838881688073373320701068918846457624698135776728783802465727303061781479186810667008034069354214802004817112431444406260471365026091379152781007481456515634227825764335872700272719289034199996028487386400354562972586266074972006467861312299088590400639941980316274944560085566393373785961040515838535734680493548207511440363962610462136749503629663745442932012780043697073325757677437325171513531284663887838846264562012916895883984517650373116031899255114869222720493264529892278154626091778986529937978269840118833408265203486773997340402137150625613127876232158162864272471814250272006139945161262113713275109430501796962948781535847764837323704560970579102827747705230656658104649273442067103427571950709823394694557646915646622540113597929032121581231047767548210333201706459918385706855346789968610962725483130193801127309637371818775306305265393407392520500079255157529117452341982649289766060950614161851541826221247106985422031462203283480156595189381293699717761099435128182822415860163022331406537522453670119357390085692926797477241752781741800963917328192607037910523386005337660169837634426752070470558873877478707545414933925058006779620007919550323480401435955201266282123087328302860138828486628883820173340913826401622780152451596101662294697168755415668635151539788389378194702346677387704385499786646105355104272400686124507041819965854908981880492378693018999947782393091803067878264474151167687173101604225357695773490470844915281819458370231166605428448242411577866799252804393184679167162138281913874451376661483496944670246885317717418678562078531948352115902021472388724251148683848844058017105080760449554075914925669772673550255731549119688848647281596443452564045015547332078623166301451132382088693365823156292112228579648813225588023776199078903355976362222448479329723978956906053670209925479520974035147826407064089469316226746286834735741557995377323837277368387892748684258045843540491014765519563150457577639948061467200008572065173228808160014203918021796464113390241665388499238311705529500131128206899599052432343699809333407083584023137303299940774614539790203970306989821943022398007281467574756481244227644802749935653335789248215979965943302659755812119164143494442032926897089863861157791311513608852800062101836074906053641089015529719606009951308182680584428975328373178411830711713086858911981455489377817706855562188609845630509135380202795255202478820762965956290109123227001223259076302483649381042585481911153191395897637528310978819578233121969613895433738241168667231756355478331336139842127906819641014983019045635047445674681711120041323045479733820418820493028215550874621399036902363281278882397579349005602152143068162649620274193347061731759974598473667082416361755906004581649405845433665260999202851616830329073836706384264410823753839641059622983755747272617656835252445831922294241199777895900606747276515689071642876731154805615806066459148632130582575404312990406612173246459529038513568110618279972177223989887157483255812714500060091442855582499369938028076612332740849515054444783125121514162011072268680170908441655734630453810406821746717274244061950132588036742550968855604549223113649149941585618062637854083359828940521047507085514148747140726740956616332620778833988450727003934386675680368435000601747236013590524795268809813312266507670870548633960285580908682302792874442212995527539358214609557370995008602325448536985578994561864029562608463974792187498013859939751207032382517495720159444612545367740924834279864633914075357044127483675259050348758316593486617277292615745872119660037281122804149141277954815156408727903258473396046599496530092125764561494311249843865392838926900040753496581866985571054377973425808035685856000812517828667772318595820216168837187232890413230149405845874493998266539636305506863789506030832986447563142804347449103930090670019548138489882804498523457396706982539620988936313340023067468546466830097577708979178500405527328356703283289729680746632424879773742006332771914104519969357700984930569383696670180413340520899105103190851622668660282640721071890342524244703270973758541694419792407403708018140138552666866363995645464054494878813823966568871195112941661680289562170104307684531343487713807916281475226733761331242671652928140209173182708644278676423208513021119341011182343395586561883703734899337850461567290440438495755768166886046172971244834301470266592558358660323478962786481481496837408876633547480191030971234037410791329171759561207025592149466914374037250895889394581520592024626659377657662735166125622861692648440630847514255095950250032783433804594813589477208122058396850417491406214807944303857449908660439748171683409098459897207673190269542551775763936067607145864989276776207972019026621996674966320318777035295859154983106024016640654218462620525618974329475061074205010183540225272898715995669351243728848070052809734148339127961960109880170668907312332600367568243873749883047618244787788621263576973551715589046450253738873151408107423396083017756160318896183264609014470659727307676967174176922886476275025232688188246838937057993371837873182350380907661985996691383650458444797544142943896483115222327380148724874190097036557229539436446922155323987909919032677909114337270677928811604022128755000730582892446371681522182761114670051369610098107111299388472745961899780545997925252969122422728792370468199859312542504965699767585455558317879240343557113726229909416368752469539755828882302104421103068258659332713810183298485149944077716125316830849744582640736109821544466751601956427728626659431659397899428334630256141741900344467433002914857752140826205158271835370223985411833034505891735813929220077186375026453430184427727472297629499403628160131448740562648206924608714864558251365584824902229303957986647585953470804650111283012592449535112057322659185676322287299561896870049800758334249351529187058625862060417991331568241322208045645373366172312268958984710254394607842039239194487284319552815163422342064102402646787262017744049911733081220877743980928988858477814404517682628024641875565352217681159946469419440546716012824497072948005756913736735636245781335853339390669181009482053374888162429801091602434297942292601121672087086618144235872021529473230891696290447026321525125243375541505900077417773662682763644801611028195868005005426910810812002793473189006106787667861058091832884048352102208385984592094881296332938574184780817125601761765319093588787293236179038213090465250629897829975081595750059870881353589474594721276953784468502814737552266008719870008496626844296420525946418474866766941619037720233484481888210792443950951884146785559731550640327705729972183765347116743222565658968236875574224888640915997276123728482506472210612959873326463396693845873965938253435739371876794742586196493268564608231570241010447819697353514146752031248800110870893648836546203642460974623276532891933033149696582255578980895588885238975705630960717964454166892169090364380811476912108003365017005039973158386558133851462181238004396224614735989147084869494807626789848836813837654447045796938201734512267523341373343942416238793965153383922724358287294278955872764710521465621720192865179277692210821507410294222849573983486985259674273652622487942026871064694234585040708811184206894192625883913820122156062612077309864337582776186157247055234067656664088452905503010218354336134393328328377221466613986691107193636641972968200207296666224760016477166900163982631975696932528116958185242426923664571393732946706303712270796354270158630180350173608300194158683434595675319089698118910296232092559546725415829869582819247806165680161617539806736580212597995244817919994029661781336845148582028634904987565611406036211459568706990486998543951724858006335381269926282099238720838033518341849296370781820280663349176440504297825343778322530254166598187593115298544689061479095846491681137333456345035928438399373351818089446738057778474811276158594088520941181118819846912587181412950451616990517701310950037446610857912617556588113716193846891455879231211579728465266805412739122886513185759248559823906437722187030410074541426793004491186071966885985176864900386885038557747650165995724699259749466532483278706496476847536739114399798684965780540528117136831994127952142190232381495412994627021159267023943470002051321173338209322305349223594789976245275438367267869817244504979865696570949318460675190772888186719067868061262293945280395272563475692991988371496359000131690014983721128381282106474849823252333803168370301444488832158563312631070866557155869675872145360327177051631827787363350226803750691683144812808660653184798715683714549272913396163823472407218226004959357203609781293525533838379759412875526313272687936430704707963083676824753030238380532149392959396130106390167761057857809327974501678634569645643924667984967378219698091014332310595889943375871958114828525937224344493026654148337180393087757500422369679132349644023958996614199896392145832431261068113191580183002572741201879817359936479909102944064314253868446096323082878908321691948118962039173547143088667170171147185731854032415907376461766290878150399426689358955169161506232510646488200464603170796294575427486271119990238887952826276090565054864894424790091220212546212942706776768922032565816762073442465474502710821685851391440772802979219510572340590459761556417714447184440302810992395299463418565713536306380440935622639831214007398953419033621382386608670470771542099225707632786177887774280767300053777874128145760914295361223012305157606924463567450053214065286776284342581469356100312755169589219157985310000344419835604914664619015207296237233236752308377787299318770661663509769108615703558719416833106044827323644888161676842090911456836918596179765572958860981682498364324563184431898788353762913188610836169397005040181341730304436117411303326363460001825470513368473765916515265183248960844606427548021415468359501558157600679607256738959103607961409675219413677432817850875180224810349087431485972757274473545463070049250762270991392241851730425935423529566102262640722396708800638144866715474820764285904606415191894471662747838692284970578272471129933880840019962836404953196693765322892637758675086941901669361747940501723783022904483747371303602781694455239960974458840482985541905313624822603965095994492699353216777430454543905772766035105134202471131325865623899795028424829973695404369355921271250570312102646093924897577131154362745938624187051256555816007194954296587914023365364869170164261655362010000056374208192506419189469384880843106917834444245324108198113651894422808174461293933106129784587954983271982164535866466874270480015883139933113539871280001483924302067335728677249043669840169011126397265450448744181481382793763608553160725629006821331054403763569986641061182409188037166602629904732068013621211012244086211626017630955671958577045975952093249780388769594100189126769532914910980694074138556445824377916916812874516079200400550258581103910672432099907997572698027304371429773332964471052278310369727205302630221717860596002102235139443049364413014778740217332579337609618874899208556337822180571874411781537825696002157716476627643775816608063046127933282305441142675281177727829391058951690073479895880512278183159166902157341149666117849773446498127999141520697144477400307082044143144470999611294800201275838343928335200851835961955247301148577685359100459861217281526732508305503616745573658233168230426463700526100681398197819266397841703697460984703892658452558749115189848698947092975245914172490260955569745595319438578486190383353273651773425754456445119626856411001414838273278806634144523137879780761979175130672672335461023492183224415752298200758257202173252477216154246327692012688400253172158454724286743494401012632119037534678771737757423758805689873050197955444736947159541823135187731943848315927535214362555154831735710526148606824912122164145661709357097024682368945095081386588805068174840999693549893819394184801255639551055863666443586677880251813764437112815803685516958174510083458234623457574096694435307225664881940522742556901401473064456156151996253067279776564213382187680386355537106824318069033509525296475862552528762960063427289930449957817766837741242262179209557164554435198248544299974400543571242563849854775341507292280142478241750840126121918648279768414833762118789249878555646955282258649690615220978911336298430999294195339416433757706807464877638739688834084060961802256803001208217847150671260592163755564703824515928991899919687708177336761654724022348766568740709618841842433622969312658192258347130709703621638400109804192450736834225226908695406559689761692576624179618690329689433240118065275516503444452918314701953644695019326821579252066952186816930470927398098232199347835518940587305470468755789620402401688280766875986111820605171226906918504561742590174095723853719378643998161198550274901580842509172263255557814211427273833938492533345460257824888612572800578843148696143298587376279705309445401401766541545949236615511526752233721872470883018133263608890490922757063379489376000441844803008822884076525000319291330915978643509231414145209492533523842625638674947664225370830248408205935016597488490901557607731800661114158949000415824540610461447956995517524925145086839700418213035251986246196976986643120002430148829013824438269836370038970934259267431746570915076383690868844258431386508775068198057391898948979835287134469446108736656947096046638434432770846481085748613331812681327697260069275740994131821174488467932548014934662803317710867237962139042730565253819626996905044322910395762881375276312067295073706372312646046045776795883024945968960260775268051841477127915856962160906795014200269372462643997502627222045774320589972583642030359603191335649270287620626076305648937099056523689758651977718492687134401202238556272586612722438768293977624325797652782276064582028120030416979935022108179814309411887820813496358370625166928748833204794811658832666138819496592913771185191484224848839922144887985582193196314964232007751723853754154658398754134679300925717605741572174640005125116262581641812082012695104699942592611421406591691188791017994306140932892069918856124392006747967631360921495226151524797413513743702217993999598098926568750539526163658428104544395042662997932011163178737377117308420817677265828692694139406033575533093120682996747120973921606494271530206475415533617401185194157151094015109485462810721781508280941006641292713480355399801231836087742440923833452697221897039777927953312102900979998269596103553237784947083170225271505344103803213172933151361609167634386854494709646970394258294266466139764577792239770402380381300525888085603217186708617310822639003303072402697389625763809522376943086995058118953254339989595574381191710004639090788011751068140622439508876009412480716846643871332984630328692745756116457554313281801575810818235681980815101721859335460038820923553104303927435203599665612601737575339375132479583205719482285494065135556489403016444871186131061262420107635554636951117077452025515706024643970784058953196992020767296361247909780368019891867542904536360072043796129390979136323353364120045290726192806509328307957638983420462424239747151714048944499007387804259885640979135476249250706128581981934506627502138968925339219254181779704064295929974945404553223921331568153779045588922830251393144453136572892897506097796251525729170774279761322317495922249779484668152663393999992922009410119627210833661697594204768988968936490007224599616568540382539604583538465495810922928446176212566504361977823297316492564075983359175425359127659682481411691327739964686664768551438072378444493948551473160770553264437698385716552800055594029757988569933338033349841792336114440283563629153573172211806969499266911040521097505732681264732145803912933818296246370110168812554738742274340308930780740283642361944564406091690135118532816941447989183000831307928009791807624157488239356918911165043976725069331016754167171117058523676435030576049986307074774711695425458053635508339455943490081238269694674195327586750158952566274916855176039396623402202631368807993825744541882536720915087600630119321320831411502162342384054264474044982590220508120118729280864924987196605979208206648101300561298740910373931401203534440897496787999420495999240735394278701260258719082637394240869702760336180609648492337566509374039204279416513217549110516534290848425948139444222954195533975889639495550159052661988857288564421564375057634996455455372832112131754379760307662701908832606912829930656208341618508543332468740310529510025557236322192574062549497344666879571501974271041209568713431859399100168159884687437596582414763709779000133421431932116968508231875895964206592702138256479794074967547361406495839664037357703228273055453914119106134861644538310454767090179199121238334058159824636751768928653930055233924000840536561494135007434855266106114445983015942687716239375493284162400324628536972258095593653909866475402772068969711871141608569677707452374063611528976593638245151332837577988117065970794752455943947365078680909803878694264592084983593769826840146536314486866809560588747654816821333058027461670127511575127668313694901585593702681989387564062621633559622277883878793617488012529088922563240065500505146028127623163569969887965277555776653131768600111055917353469583141975406956854968183095538381947695495547576644826850044147596928825894645322338702147131157235775299320632419790338505264923652421603649798433366783160687963147431784835993968619251501823407932257464755312087015780995680166414668131201285272669040984198207563172394221992092972979433983346669200750966671742897549009933436205168056711481970237128697126161412069540932346264941887819829200389482378045317803914605960566175390595011785609118166711268215784393663743242672685706111675315872038536202495402723918720077304012207388456918151973215977563756666317684616209410295122312271051769992228906086862275925127557918622845268974873567189541651500188934126142032565233700546331473561516649416927895298687309291438503268556970599231314147450666441881507639865351536189686456733404503483190019877675055625685242173489452534205403941449828133256257171781826571478600316064038806613222429199814715701055707324441827030065907764439831977260641079863706199935468692992203114632542544647725574741249295046902026002310102960302729825445432365885158675893474858796704841157291257295843389730045831452165956104147193139835528620148256064166354192144043295965914320421517538690284918350808404147575073740468109680323175637507993863922370278392963429626206275246219850725378829290390397282331813679129427984495144831577674056392756436779854973272986698625636493176794065847560946376156730946623945692808210309083827435139639503980818532493440417636524797796839746304867484902890380599025902539238644495353907120246455612568577513178890263561573694798946824340580051773494388247246519937863944678743765449289977188630549206375725321025953442726466215960019633724474113815065515981018750007436917705172496492099256179135367735849717684641694954863918214667746766960210755594529344906107087542749197420472174634494645088442814515966707987823642300036141699461784282114798249165372988444732032574399609424071840702001026419659980477218964294456962416066669559839201244836639981263035456974383276911110563637753512658940133885049648130623481189482838275972253371922707291861550756503861284809843397088611896202400925690128089702739881900833059169539707946240250821578893937370370558992738569744492734162014020166143087161845997287356916076694646890559432445059944754584244720623000397500926746425211562694662123407910080980831226715315333555780302503505795258108913050013465738666600388550499401259528609486094126256360531132914773733111005693194683866282821329465670018709809239267684137965406169364809824856976778405511165758505122116332999291836427288412017353960889271192193718853589474383911117455970750805609351612371397071031196128777255366694255500089214483230657602551132093610263676616690688823195128438155092523054336070650278680907195163164267208809085294487064580226839579293175369183335036019314401697565474304962547971754667730180294777725402539589846330923558733821583772832041888323696393844198647447958163608938613737302271768230784833249728465338336155506568565227190798489283696148968411766259864121137491905426256695012570582837631839400914291573633745865930588811733209948319752159330829142218686685453127024163985123649101084445328114997221645343974454758883416205538781584182859847384844461130562448575194622084794698451277132291313136599919573340935212345270331979599058723467455117400940832585330632759534929479328100328782716630066285758098061392469654764050232417499374288454869264163951673161366101757551949141356542581744013372823907830671166912957216865298818153976194163783172996130122625462908381198877491119312977456083655967781017154383293360022937447081243231690988357164334495635527967374191369261056888275176217756500451063966911999812240707356465861528199787176067730845677937900512355511098526250070396112391792728496167566110518942925244862841072957440615057274427532099619485038447436837400908317061852788783610913962926634174892596383784714255524882577147068322252817504791380034148501110355338093606469190016816314650288406253105535495339689127656357366214373184928239860160625057050397363547020098922686164774195850642555895210405932180101555269792466338268164127745202712589168583789375190595397717083666147376462529223852217970108166159907379992473017212840579700505990345905962138137777761049112311484076229482564083927151091731777803556106545209709896948617055695035648642291209681006314916348518086636291344163149474610425414103261527307755809935162521541487908105940200992264801855090715514441862876090132555300931318795095900811884874507755687051932850626524254209378816574390325536591523405122978764674144768910003749940334158065790351849798745972636600065491518966420619051935617098523994591575328982097193526533070259652270791136243773814289765494019899781172615545756146851392726836270861583686094094969407434666784209500833218040169369081514862793754121673319536925501450747053390091840899562740085973404506057836164718162792946582855342164775376578669749308813225053137358596285334308864745321582377315919157575930105693769786168526718376238034007256200905304857335911970892021489794987538385297851874705997583851949812596824275648844035032639866214033190426045501035151551415248366099027414209594574430741458407626901520421363496894043147093561742860090934989651497175484469932223202362970973414379897899492313239856279465129493326784530710563485407578359367921570302543371461659183104445053513495251254391517328670714166861585313895467525198830868675016325676081755152954373654268299358359406559705296838153259071389121156203675554223877860550759913512585256794109621678040205130691420131887213987381210505880923598336828330348712256339607697606018077639810062440880137788935243354213891811184655740451380508147301325104371374617300122922774190274142377457511044949672145524887398259584321817177954483234726792119674342268224512226311084407463069298251471273841555571400957686645952821323348815570335787504836202949404744626804468863543780471209844759906051117714038477180608055949492835291321820950519373429026826219507460454135308032797879320501821142081550291584725529326930208639588264883875653930526894930698934284599184029560581835215034284838769107624408862284479961053494072294077245960255634373053722881590540278138037805146028652022238061695237497518553251301139883270170367621378102194713318089408499961249798991592014737945106527464069552715364000735665018498188530577484838686991018187971942208708941244912734726880512028841457954553517444278283172368960114460460782180809900513352948903898255578708856600242377183439635964131980016809268617326126140311940886259881164335787027972030194730614854323364213719993290401340013329844470149335060000806864745467648239342138073811133026690681763517381865096526368369055582585575182726698975983210374701997067742119866608341603619248327122977659881508554643548978687940207369322544117148355973458908564124110580566637074797043960828023777068091950780293982246381606184771455407505636222536545972779722597745464799178271941754026104032893291422280704513170460462634921659310267906009619894311747695204061810044021860940185211295566521037668936384505159257075183585133049113654835467181052773970342889655873285147097523103999263271309325439846740375705472616059137413868317510879152812508390214776827238410234527216344592148561629308584789995122986763543554037211863819206697766546105710537554852794081017252833349701269142964577108951065095641073202404344960278523427137353403841400316889063499327835459641504695744842035992365445298780466189987834140116129769594211437804770344840691288821336155536448516735207079473534701260810725305510791843234854044592605467425652824309390806859804095927936359261405073583483925816303520821539386837449659342377472259083253049799246119543728353437564050483032063808648186879490130986454060709769208249151020130810585718542454207436463763398835327345969164483836026296934499798707269128201570876711331528183188251157527096507849738776688808452151232266530781131292968473818934936276505272647395979182977861104620524174145189109099456693079900949484143484686647495336640296447385895572301558133112933420944632117973122350066647571689326548838595913698942686093119774567629163703770388839601258565641677512175724955275399727055163564190017575608580513254279782355354784401094830407440459419729526584380067270573610433571599663516606923779054415955811953415552895734724501102442165525849775726534891241327827070832678699375617366330930087686865176759626115474819454284324341377229156752673598170915589561245237797758850303936650415659894437623818215068281890705971690089421009694083373411098475251844682484952819111946826203675084068570697457980481181341361732917777449514150260298278489875970529410461703920893147556647484488158177932474410309739034431972755947071861483650757480315759290534919192829657176820553834171151613212380488002698703576101365228403150847898493543261331022858550320896108241415706902717392659235041178423915004880744161888957055349734224497910154260486764337841819295623585746375471685845407499911066086675440182504436010106508103903377364927984764622852067805275616368598465326495198206871499308444996684134959708225577416244812198091501387986991435242263472904096090620235787215489953093358994074208981473572088833490066947991193698929488048079039853258548379046904006739962831287418632894486112707373864689784617938342245888777280334489551350775956108171269803162662904781690288818694387319868127710172473337531994749088277213186373699187188451250299276850542375491856591047478751840237061997283970217084650808687101003250955905545936355257821461000883376743598745954082184415583184815529737276326836128357016632483693668553364622878649169509440026316542512062228062323045841369283228018982126132174606565104161952273778578226886015944358294190093778210415608645927127756566057740850039136041926954316973423869284735191323628139792283156668955385419306395397275550659946382449979121087259941907052384076906160623124559085538006134518422741458883739130663094180744932404269730990870473736763417576177723060625015218435154429375852887221227623854851498331652960020291750821443576685218763425104152287071709787999916736273087325948789000014282131844876112800310452366418285504350257792448980222419794819031418326458213877127016837715242274584969376009802127166252567060878946059814691682994481284630997680571676534313627820332386900297763624091621828083232778112142663550393967026781188350302622440592238086636079213583191306942944254246593952184899640985632173384520430166524851173363451057375565101055892924210387962879627984246846966032296233635724851522848536132928047653661723172283231376277429704759391263646316187054815613186270235953468036126676297490129679624101305883054651849831066532896960705040737499372146399829562683237584061760163288448427435024997692338735546792689649712121304212696109315471301725884446205354024866017414392371426070115906742692042982978555462969892069172202629478797459449680185507107406054514445063680794704430664157620650245764087403988993129625184548807175848614008854733944314032273248656942481037879165231391850329884748043776515622122368989813939470869545797244643140272443163406845995178676564000094523781401365264104004959325437699889137498266503161946397571146794089852485497595548525486756347061462533186803738264018279076905647171421750564397836530511936884232202663534875816687168610467963577555777827608916075239973483010229671809470373917865410894922762822843578053462335331361584555395431106112111892586458026001798558068519328613306627854166319972140427208482416698561474419930721977135946298149855424459177664160978594732619379829790480380003489541284056592443043262088370939538726955522028704210223799867444013334581417468214463805389342454755449785596250590178119783463944300500752727034639536137061794713599815034725726163701719163768870740414519760545677131159229300993527021337919310267528231186644059380644239337583235779625656262302710278566460975697996117590694338781482057665990237238822069491974223630341582303799945854797979531054644789310012632807956048196345019998671807599134741363023300288133103902846747531766020920747749218845788638134552354518738419213243695544038741727168695251575660165770401713926865331181683605930748605683295278431129706562612587318586271278077943307997206320321500402571070213313526977088133069727127550838190518877100011153098760007349877227024229982398852560931700427393401791675024457690863161806205423811219461741474586861934261275230590635648257571220961651032166149662134442881633672200279253627325325032783239170487020510929922362319129966292465870680338310318884525180851857044855842974655630715538530375282266108400325070398416631528362502388376167836466096337269497114830405460956267245795093944828164074574809665680609991005370516462656162781137013583856790381273726947879245603771859069620494231861330091150065669331688484006506498414619491724128154983767952077347365628641287403955820527441720287914701830267742239900327126274297080815036114010449336757066536219341611875798074782004005787475801576374874358539406699988322561397164245351302884467315936781963031588169947561488815951427509866536543450324006047126630493255001522159052287083725301750569174998764567132651829635824174671299101968124146835065685039550314965598773432507806839985188101383555730876507624724006762844935313085694506064565400630566030649987764279889658261257132332571606718797067810415807575618803963383256109086275154582127418406340157338487463446167810426389820474855848821324023025246590145436108848383622967136056595413083767026351815048827785526178018057820880798136205622847302510902324836377465876753724000687280777288197950264553939281881562860403777352167316815408885765236232647539564625831411112660459463298435361102148569412814982634646054207223334817830671587766724317008451900766199304145860816610980186246006395667917730083263493321341794282021732457799044351200971070263864559872348766005255396959023240799457571985562475061925227585986212499729242278442682568433918976674775242826551122930668467210403441537084520595807987956945842882862215972856823647394544233289413776745234203394185857528422446172283563259423624219768162573383169713704490543219644984255379809485939244907746430090037458450686518773503155595618531710719195348676169602222759391336434190703089589525747187884045637382295971681592630103584343817376215676513764921335245537525957917978794200045599595597071342964271973220755329141799234341792427270274884695260018371728396107365553599309323575739536733616881432210459372946859953104447238570289864171137829381435048341711033019603570679049854094929443251021429497914649430114414468934681797864942913965178336067924521694008122311541620504344346810009375365443876584752975309488951933106019932626794281334712377427743792648492215030044616824891390654054724957307189097545808864223696197650298040519479046841022972993422709185926188639685303919934313204656867954997249991674747733982539878386379358979045873380584829760240353889644074429088774131654033737927234116427730461925895889643962072858133981480751026231517699958397671407792660896911191313219684991284306097782441564428926655494192177899137564387859585199445947165125232564464691357670048974133470457050138224334393450411309785672742869743983255818178395465452371744754655733526192648606982868776170314281680494913325307595173533807715773391475816181952168164046071889541914401211002882558734258885991289568715693819919579956880859252771533477053362428884347593941592080476591864290345025804284062238202622020001136637037668594820867020736806587776906902002803319007055009092360787108360810427823036764957772043451314456392149496331811270423129927827126518104504828629734672065361598450634044413193317078797038952124044802812502084029545095762565736100210092272593018765784444275277771153298169486350839527901965402960215103759928142364018799997708073658693850375000428894847802496623980772783489972666718109615036637679417581163620413450590844709216091220885007859600368013493206316374531980381416310500504061670525934135322849709185227017144744965760569590261737627377025880171295893556221957339166584957799746943466868660630961225206482678824412403294320943680239508639504498034389096192312241328426365068550644343118016213321914933397408152683126248286491282161573405264172891822449554287462051521701198737692498905303962700036120426498418053046757443533731997833379406963805472919530133194088416815876062515875939876943137048798626853236824748571037654057640470907019934607275386080802387009855860894129358495664491284478198296155287421699987054683223292328275795955663090951191311406179303873187522062054137074317799324142862609514823779196203749760557150651933146479757699495840195715698357540876902013537462560692180359063093727326864967122801634051971972851200249507091145898902101655272716943828813773258200731048256464938360753437623472245212605716243747835076614615008928289836966463962082813588458903537785604707770813366316972003362111554172970666081510122668075514545598049911266094119116571355694904542534673214063325135114211065919013833208567767816336561392891937468156375741701560877590526149652856134497700485453551062824864700878454166481536960156798952157123199021076917852125849884101325260655892017229480837707590469608684732594477513832133207246464818437867642955440052668367033011172962523777252607128045101736863635046990538938111158750068638802932174812740339444979071748843844349874354620618203637203568292772540569545221179487328933635720105228868591182664514664643670905031464333539785084184646964591205821789466709980201610473147865353142899006628127084348688400023875445782874312153100020577756426336270177127577856961965522662706944781854493262612865226854499265803685677168806357034136466043245199651265239657692463808574329073893138282825579210640242207006304880767707498400417484081171977726297921973657207887086840573324714679578446558752552364672497302059017826744063667455781898501413385788013415576741147342074958042718840671114455993649533172658825317159736596954231743317577770667009811686287113679457882930319405094359184162199128797338285746078442528766740253147956488275752945062515282594439743334221792374859282342089864421488569164792819100452280185995862832308957403205257531098662159347002441210266328323107924875382264130269404072764721166829980998386939016989978207959928297554485720906741918683110972876004055906149579635186991788787191625160544497274852299589603968151296892892785712152568962982078462994881248024700699213383039680582914914885272198659045673064336530787201862525181963048423405859108419605029540610635778282387749000391123308844522815658550030350520282310418942739944198310975185540527053702585813653527074743337087025760907938890472833088473927056397464085668262978918243020393953052424357634255964999683236172136964592640432251887166447647137042383188965599212790911484155125458133713288995299966252086210252349034422839819440839285234486864368520611568956109268498527226245488325407991417718104241914312602705955206659598269024044951179591131913259167450397020393003919496205420729380611341455176218347469473790266741603639418085557728097585835001040279443120662411036249606444455569256628591951033054678119355840534146588666926793467909031406394641320940652923313645266744131155675086274831685547212103745830329816163634262058343327301372278602016693192039872323822566853029732375238309482115550685675821526596290227803137371146236145083501531617642820277508046052885666646944060277462521611626054382502108648523807539777803322179489105786250264640077765692120918848512656652977810439338144911218262652654325329748672748357150282837462277750414182852546577448436935783618434536944324084751447935652360243749255641553321719043063061466441830429316883259545519007290831574906905059422149936990027538845213455324509254627943937018047464090126573533583841444787247761723548354307231663910139999841697803022123563554565973785680134931618121190053896236036139303739155761891323150121177389403097598112203864022438516923625629494829254884784299694317281150089742509783250491767147252492143775142365386933836883102763062036279179424749914599577887545910065338351617902692564641179708722874588176701157176910106064447622958750308109190831995304837972421734851936310403743052672330843320390286912491552463716885525257705718882205719568539728235778662451025193538096005416744388216183559752653274034465770906358681856061059965946915266436685124991427480153187659123201451063180738941291203822871196894143551203043403485651813931963183688492368643326188979750454698861849665680858574600356240296224720275511098026628334174098982844675643636921382078627806507204706969512750306301406928295819121778573061819407707977167948825418943896442442687632926285656499255503427487088270268404846800053215996704833284244214517152753318766325741907336674900403071318792714798153106354086205935131943148955582608116909569840161032616194836217863899801027806053012823237865769266254720112237558115400597941833906897743427607226418281979510457199728984002048767645247811964634734680981421098478779693673273438030138114966336495951523515541352616685920183119308907978357256527091613506887276206215609093018637492298325225811032716826420082359254477568260725817743652634888927293553300470936681871541302512803912493479786125976614206112530699961402440285633087029025983884185838402105105151084775831638898900934701793252300901228404823385060042575389234371301212897566195419419201500748173480766679760069100339112099201405916471197628811022466386682404614513912393210353996137233476261514269471808002817711730380639465777508051671248184377765394702088657767376452954295494763704557576660421804666427540054756179079196341483396320447797805082976311632445992255736670502287888108215620654463827966807477793284665727612238844518918529116456765630319438998605517977833558467949038481939459581772866077768863366165072823751408069945745683830755740830328377235741582325361307233777828280406229887586393073979641497367481674287986998119489406475766777556494446137853567317900779986120840790007320491382485468941136310325460086191304741667671277916481775819156519691839578526073282427156728747438410774651172957869212756081303462426211508921818529478910075579405254855201099376461336436048619882041551782711183589238898333229767678388442691487097950223811877979729053071407386400299532892122382106721089006940674061291192782904136946252517074526780690981092331683633848337934486910893594021878352003878018419802205238093067828342587668443511689648268410004971260580324312311064140092814913107591794860009484420910459075158846809798655355421669603397858235942099846679941974033025841540886747789619427241870842401077797715062771203323627995260187043196683743902820323592603984881621195694315472773231455255284319547146821355522346597323669324466845530166491193933460718131884193556693189907147269514811782118196033667362525292230871882699982178039893988521037881918082264852625535862669831060948993057368705143712194124696517790309563290358645767480172435976017073956449461113418217495923312659454780055326997350269367340876215094328010184526009532572446598677424694729243430329592658582389307567532660707379827945888572737693192937801064055188569476924775036606107999882956590880278602707170016002837882305365426317185992919228000221679384297971772325516539955090088461715340798733368203911987086028432814493164119132737610668997867779719360252262020421003858094038861007422215090131758481982644966210982788830908040003511189949964782896371361331437661314884546050218579186680000233048182662715217187283478763363781917121242152413666301700896030193865716413345474202004669748844023919444425452792252990350298283200372199085738312929092735055291096463341626893717803521638338819131529342770316283849000904894454678958483477469515413983400865472380771211421596799364849741148148406582154772791095000079391365212878674937974168009934522631876239423863997260174451442025675066431934301221091823778951317941872635869971902359590085036498419552451266605132928278750498163282637624354175142412249295450267220045326780262564921394435407790272433985453750428181305080632507063494124461957107497432461575395004667749333959623392687024550639885370699180439730142349426141744166021004388544877528498465928413176203177979748823264239921383413858405307338650925511433231742096785052625718975414282155299737827470197195448426678157144261194615817198546650324422617657368053316360008828005015017918996348836989591797355872241131049206411681657403949569727952113268584189588688466173335024988006045774651490769704128550163455961569428571965944813312344807246463947899767017240619276544791852202991439804112483851467666813854313082197341673638561474042443141489986813093816431483862536892506543310952101098348128860097322018522998047550513043945465942402109513325363954523252603182714171264423808036153640498119767776336573377161929281731986343306733383814702304969612160361712050078127657608719196954092309857188743862757512721993310599985107191303431079443348723698490073842111089830593258378968326754700081990745185842506158815567802003022919876482197345735046650086401883179263018539982268253743730052250498269260100614361332491697704556485777240472946999777259797649103488908759350648370111661472126470748911643767570388302169262413845666614006324659453853493037499886741409501035843431295742613248262596775720009957467955420407696803099746067309012733575676799530460270028283032768415104605557823664515142910132874660423799486566151753171939681464202245794548082619812346761138573593069740955462058872909621474942675503589855790851014716232063303098915449193421333821492666841734949294114344557491854754876658163788389514818466510384256490165426802956935100389979801052972566355164680129020608000087699037304628886296255404538361344806809092373260786534475875988235117848797293203457193955407860886644796025341098312703596666405989425679434768950052700693202673386658315796419666015333733515347130917237983388108660991412749689932955200124236075486750548804418000675940673113548727784789223639112191760570864659289707277458123560799328402441270024684427680889820784555795083555964663827179317874153313133555463715216831190268295480751790810230755204438313157324673125845472354842833053580862656527980037782601121124872797352728044607672541838511912581518699716987495301005009240995240695414679092211582755639964147861022648396261221004845671297731053821296577517427722904464570164490534713976115253283274262470912321609614245326945848625436863843771613673110215081578359789437772400811673970899344965011199453578759536418498219650643508939087673249857211344047025865844982400317706884725081002389864425880535566268338655252970525204775455740129648781575470969365954988809148859711456612834704612842403195469632609857968008240415157056950736421544530966872613558945166131453449873657362162960178519430947332901560320155199356429270477833604879426279695236222725622304545704362435031326148734981165740745590918849524470762055874634052378758019374184439207943111893143209265189123548070082655294742913669514657005054208748458733897702646487467359660187579878659877032883234211644756251849261171254707438176407238508940481223083835277560254014786091066112178750840108248271327789202499267458146124309777152673199449982892967147304549596737215970625055758565194113583020774549410064433625379965416689812244845779991139244938942929347317750177127218178265422921462826411016058435004992168583877406417398886179147968580667268807967188084234815074152953056587582973087350765104111801476415610980005483633061071951715750879338367883145964177576504242508694645904821718371255418541026937858202086921650272327479829223613153148631050386854756620180413068157909371427158788533847593200332453248569821587502453018530172130366629509896012749688869746448283859603680697287763771685499914615878556196188630189477663418009834232144737736826868749618001831711318860003076978017236288265817122022255514951770137796676555408662753456014073980145527949540156079850435435781049219208556026331929108903461882631730548699613613159086948070173201098277428685645106373493622269284306146156353949664050557254833510776238385275655451105794553017840521672511982476522417116412766754670103749188863397523011953530318060647841618879739559734822893837436958854998985002134463904614790232390737149787884058748677188931687434610598355613525889682324929048479109909414550328849193884567455714292264097226556411843234737128331896378793315483903195587494101382079355945553474725375428864417710042155253462141401475180472557432693568776239256481065896344606623259882005255570103188750240422471389516843053262814017755397862337550797637545098491558810132381761229065373147034710105152892110324129776181358000459343991412167377974016092267824674285302011034459461580590022552155083697874347145470559406601704701338174052473427752270209012864202187641013341390329214105512656843165917879237826414721157050123491866851910322605179040147518124681782109254282789296019343843395127119298886268479197688202368505482923546658451978037824528402708298507758053464948323303210722501129439716843022749647544961084001887417342496255458777060001835777720442649799321210224071331663377641495551646283260809736406455570113890213071280873453650244607643691514559221297111948914655196448510801039661802595018206282995608059156675343309591790693204516786633577192722541189675328457416870651088383872689780999652044438885823988164555501088238381385329746120145372567298979925240639656867228249560611277484421009052752579770013734050725057358257733489626144987092191178264594672718852329497025361737056044107370490689230808743440824980789793926966996065866434779266207203495239826282568017148809916865281480809251221368862135701680036460885017010930261616901030851509844112288124663171158299456815173150721126827738842525420370672183434229148247979398553664378244934774609411898625784186698606217441936331523479988767049162666627239953923637282881377712153403381388891499162443304618982507958573086516990856939603883571532450241469252484673087660901279363055483610777420838173249178288424808367516090434185813401777301712482002813012349340275850985809157847505175805685308409739510161384585113849884351308321447423082298880599135568319533954086527670355504736409889505701956234560714266600597395524025011017965069176749925398268823964277526606998515268725859017719327950433993739164565011762323279430616818090783348021675246408342103852858515032122650985905463390165041772429928915329792092720925402409467586473781264078170026940282246449050042061973246329827791855960217661621893695860234075920900729383581593085504727192781943945980059366595593054226510689156070856128442492456056612899439261465550742766993076691245574673285657907748122904761412900182170276064298462549406619759768667762146244426215060717227496104623122450613187169247994846959741634504129215362453363798277208217393252318603606802444381243748754808192363712780245946408533647135114468562935200083160095706304198681200680401435637666001680669839940448144653522803084683051094161663126188828212857521445366709645313810478158854141905461827311482645538990235652534359213559068466071392494296818348872915886637039840674984732352194839766670556174204475081925055430202365859764168659350896465734596794044281177838841145766065384431379019389317624146738726982116999227453474917503434610037625324937401849645755535229604499546957708505280997174350973565147428762130050582051096870076790683923223325619796189334070590553993508296597881631036664198909290372857984188018629369812043507477559084534163212035093931020939886251055145425970479193002708482847143172496010695666899012149151795289863729121925923558903831960728205025009337425367878762787016816544232843119607993495986169323867276835105098953414594769603560698603546993251762696776205133960043286550626045158502580393072787264292765476854394866562548616925913145258300305782732404545176913638800097882254719264534248568700951332834357440376093746073350326905563803934674341600241933319142905971014821650111361415009710930481984312292846364262137383155794209649283486209642578210625990028684231025898658213962094178630968726422681324321158733931392683953600760076536337313063299997908270725137998275346310727123468882450318185122102662586203842870595761657762985966549360896315497267695396495151952800148024568405393784946878774530411458166663538750706348122654616831205811697882923551562848899329345174642803044421765978640715919196752599442680007728009755026673756162327385325467634592834193752611501727255724712001345007054963446114364646038431155045972231721778337980967939012649069325887602160761101661279731661092607456383513683077158774869103980202276518881978987406961388198254365746812252266494505968451557272874997100389348195663406611744065225152424445041457309908547583181469411604141700452594389132944689682831007191564351611776722211139940474682577507934257621629295235333903044451714296979535091590870751449747486626563094582140188316522163629771809989184062464390998139087102095376339629245956233692185466316577894872409861728192769817148529754065175098732723915851247685088856188846119797575417375911647352252658444285425984032009731886682250074901851923383713375380481870963464693470335612631461723678477603823265949553571720553118189261174067815808823772263718831904841836080865810823692406281364492395997240486138006279011566432258063867636228596101823980810972080379396460169443516714392172262349459578809846771346824013316626460959994690642870608032480139713876022733365615853079945760001294935360453036731701383343256314356195357485013591581889057294009633211934388109549841303117920146393321171356275438367030165231893869621282566095025699086591301176038615736798080463696123458439695466416868271216074935388694094758349374941255506354413400626271183773150222179225051584516723910156707359779066360487493054311559383085061649199016595882702198001492952266886133932506496901984603830800259687615401962571902721639607541821310152679439391669052059132283562033552040013383708118360828441192008733000274161049075499888392642298794305212714778010509459537963995529832815015299940673411727705418977728697060196239687957879164262869753188026184682588503670264108322551793405672114940964252328333856452333386849592321476247987878925276092745408639465783180519400013510924803831867752681298644289376285567036746772702695442763431518483269574136102913747029934248543996702938659499008799362160408474570514151997145434015096485119500352906514877087190387503894470795828201429944860577079935780941638546759436088587487143156199661344035401003069464333699179936242813173545590423246299322830178914557568785910413874668220825034531180021292977578029597030280250811561499974326928670213867803837101907430476144476100142825464754072641840296239634318927868262012050055587777486641258137855944513581098644114527361478363232696768385238740614108830057599121794503610676303215092227908290428063648635670188497431523294220119885763305241167147290679344839540078219498107269787434822081939986279987040066638847778220475349796353761295690786233993486065371289404896618527119741911882021682524656602962564902272654674069814801738886166763370628050637017343026711259098961605335935759140746516474140972707295355497362802262012675151455666510943112685570757019817494830346469678847248691848466754901324262686129666984666677017979426390056136597488377115791278629415072171119930146726086870424372915483927791781575187397131914725869027098557392056476124019676341664635473811827776244654025220712645495873214152707880057998005284491716292839107867761756698391102973129391946324490107534064576056522875438529586622103166566444611152830216327896140090835778598469190285081055084691361053439453276046085223002517890903287356564960592795100783884848219953688689885150485575182626347106478329690692908573880545555177162734646824728515622030691818404783328872506078865340175203013008949349678309336355534272559555469507254733932263660554045078760777671230219768707826971219744438841763507348693490200021717395056159053055989517840184127578667418312355689175940016275883051655983591722870653221424917533999624755487787240326223639968379816992836850929964898194635709253811101899933331106499883453227697122264723596328668655992445959859899244840665798447361718966365983309218177019928251350642385580493424293994052860718518497509280142785478363861737563923301261630327955048593740437932917991399346448370805629257030441833276077281852242197320651787606112480802644946604629107472258067667992741686655221187399670025264701205763697416152291331625760181193740287564641026945267622993458339929719626849679231438500082630552455943688201975578995592709634831347014426271192604784630962144835582819240774331897444194890135091592417119743848665665082544093764881876287455153681105895278227910405362843776118751814958197829857628539089609645397164230852938956425297540663400116902996653573596875182614352943498046620006115138211195288132261535505063686935300752105011442811320477301320881406282286485310032169149591334659929934700787408628730060039804854406818469595961290657316074454737663870350196732714838703926595987191262270007755123722980432415105661655645116227353900493885827630651856734804615151184700480192628418470540533729054695503639402662772775355258861292671764446254928427710586744548320525343433929684755237252533896625720950100904941854000842057327845904013169003241388248858394308427854583113567544279063220362729018263724248784448821573933158706984236201982547624225107497493821156234709177038345276118346666153691284874527265496767183150299204740000882938591536688544493277921590844166929532969285285390362639825836040708969612342837399054706715213912125865781347866863145431325993743626400722965511645402262467735455497891868644819591938656451551858746139476693974240097351898394887790718715605390699502124824487340932267215982580613757797645457517870888118891399274129454733669229645029516233130859222412500268224206486200323902662601668655205463160978028808548653888893147586009291536051861591799834993884834072053249790951644316853403965346820286023713731212548209396079270322114117626298406615873295977955720051673378087100686574625434845130906484668505271512560756634320761861359850352256139944727267164566290246858220714786307719269292104055211093702573189468140838625482734917642092812596403100905420487416261563664884799747112713216581321685552383995297639722185111892547133167065742646826165338598457246777942795792614002168475709604229403024718608897500180746974213720505278846777124065982642736407673202846387107735444460863057550826977840129280440583276434587638959045227701791581385150792491961478695001651120593550719760136822977075248406280425876038381677400789600807511555131947044194764671121262677055043593007003173962542371972252507323115577838374013959218814823609065745578527266516170479999121622557950280894186266315855880220181827837478719283265545845371362940329081095968380008065419554882804027759741369470414908028363334666303880246596737612420788335569711260181877382037769093223321053091204381343511038120507077123449864069636215418146911904060681950269843254926869822364101398133470320784958751941826356455289168530313282085316329604676790636079682911012376915693019942207036094785546655952746531542393144646515304559883956200326172747072193439648475066598088944518890447779959353804550963199643013917982942140142223432259989998004291495617188189354172509475358191538648444799495088644968871911015552918497237206567043846290760433179812016111966196152435897797283706966416024741338216432647627519864604444858389879828403089426729889928026155879669660807732286420278558089185245775703105392459091527944105263140594917378026536112097759401358131087227855246418575540686929413961299515588286007608183498379523183297893376680320000089249718114420966354621936885497683379563031152057078231239890947590507664007826910819864043949354352195799416223619823348301783156215008708044047338515054063706795989863010320093748018603906594274178436287104621399332967344056357218464818446871737492159460836617227217972371227257010558207660314402316812350354837432875559432115731946507288946763070501928492945165091340427208450456747351122859588596257982277774053610130670806466691548638555555755373576479775946074707033657749294137565885518591049367284954627961173085144403451548105709360131404748647969461873041554962407208504141240869210756334239969898088529012789028785050429564221030915901431393175292268026559327457820706042689081131929822928173621952604334896578212687772019889780418887052481095493764436167422389112242736447857020734070914825634253010687820461812810761425023968193430347106035476046275239709228341149966657903379531900426670413763565720059868955172100883667337883296918777707213409059483244245459091671269795436524266363945188182352735365359432831287329619974700845995794881420038084007842676676876722350065886114761160506679059196302803125613511808463668474784992567503100370801651415566972431674685766340984995491021594648333995105431963891065765602897504306591507034219755836322164877875930259406075179649008974848982132658218458086662398989882282703935783848111432766007140941695487150446088944043128337984278384555240905829944817296418671367440453875734214799365613131547182381299949353026134161352598508445073730488644092504713773031757924268631852658623111450766570375147024628767300830554842646286746225494210125054449859342700862502707269288625868313462619729553126309186177419555544532297333519086355186700822405183968438246723580253501135880710284171989884370048603586199991453381234335973934863306003355675248698358775012319739540287870218761202525380902454407546674480151906840816677949031917612418906406620249686241173274397570872705609772420833233779827117843849053082637631075607304045910730143284258891191738264665167187445650532760188701432174396324952002966947178789293109004951006390801954525236500900198680068357344903194383934637352548701943044454925481999060641744186325102088842684066846367947028553214558540099429521864646582677404179419290721855230857120373060521701408876565857815404542541546296660707466075716363930350667427765072954391421323286702303519715971655733732059308332341452710583123129396871200727428081359269380867723742572132803543697355192414368425392196594693289783379587785888756995129357142467236533089741259598450070591016810087924754860315072155848868618976874925908736371733899375023911667980663585847292766380559385845867708913304839798192388357931623007615614572533563055311305423255730208539954567334029609636742738818847944631807228374820916597348917633184682796517310080657142304986809533873583198742756341122593838981085315358466635946052971771735359186897794856436417479907846595567600030738094572003140453157226927781784011652664186600217551052281675354983063995803888262712596111274124584145616121447461474444551954840927548002956335069516287488929430587303894472804642378705535290051548454526131445970265491486957989403308572228433055706882976093609802117732520940790530104426126898168263156741744970992109044689361913424414375170423978867888261159358930148043862091881232285868240066073857428186679201875098078088887687382483678959234572751243003047788307709588875136342375997991938302457241285225542031250878817678456585150769561909249293405711290294362585117726844601394748097299545190340450487901860108719819457682047376763807930438808654131888418643833520238139637894432191572143396182567879180575005640577919492562278605890051629252952887651472435707580784848992982251867245792948752621072214224337725257329880650424132194022200191704318368710901634443407554282133249399728368956027392830783016624940045123966835175904882647460188726519220561066475876999036563768435336717339902006994492059767128158583948762753439538423731901427813426680445370575990172256051505111128883780211875652892195305603706257443681847901796846929426430673607953415086080392322118791711531787601394075107654089465017875887661278588455849002288005276933891039144301197200654219757679121720219086986395656431915323518543596782160229679497786018295993664205494160484523845524983315808202704597561830854399644201228503647251600968537696849189723925518714186138528667563690160583189916392191766903554299573038281618804622641262303710078339379782589780876707771066242950658752619888853863436137538716917971211094191512577104892184227180725606099209410746587441099040491030784290953926452800063548118449299276377107108479954324155616242312002997259468379784686925792816664289199454382556291979175742030800806571071332942169897134299516760628050591451648825057249262175869174518539778773767582058065818609509125012309012339785178714235872971914565699007287357444587837827880600923193526377563346858867055879673530942318779102179568180151396569905730548293786413677556499401771979518873016437767224849425268405186857607685359726264925105792805636667514822041300899612367897798818555747793671527520285392648998283813503199051159870106306178292876022936953435541780864299016061946849312869136656291990221638971443110386125515034413376826366279051321404274210179373861469155795411196549946746979226079647627649578194301994598182056046121755105937608839342111520562229011332781074003505211745376224327871149721102243418545244721099038082754407603686458805509425116345185157479163188883878365082587161280653883810155807445158042048955396211786190821944550759099480902668632310045346321159873621657931847231288010041137005323189981628064409927168533289613053007291781325408963468295935637039520616941191215162618889024877257265577589679006227972289206148194031793415482299735341937744082069523628951260398908375388438608956247428319347653175137837423001133045471840803729498993435312230846180231128509330685105315335657940096658080904069026317373110213828900248380073770954655007159539718710175533717513772282379671035556777284154633937283716977819853716525852320560297072613818077841199740584699879196278242035190137641616410115089324839574518732844982605014327531068387859194101885783254312616656233925528862026690496331895163697820085476665407203760604072730506037932574981097489496326691844975396965367248733732757428002904349137528919897528111070030211820792758379006979984400013587850824555130139034070500513261049244372020012051075164188279615712709375067218904034637301269261305084121537487149213626945160484133143182000064331942902323833007456127533484267865019143900233784812117591379660570633362698926489106645788364836307170939945873008372568109652086801581001450075381427694490858211328691885281761577577321585820318145990188527305277889791150856912273888219419615692369461101281708948307282507761970114282417156262728416462788779787684884328699698377168654918785107999395189714688782509627537382306825705871032393074039338835703324483007161307185269696886564521238323877278794835117474951218941019778694879094475505287649259064907507210406955374014773155920199063170733822899408301193847586720979071656380448303914696714868259342802004372117877604540256104695367263033282312092231679066240850661195712571153526547289656017569892924376986669056216375272688630530229210809322145231219880784584295868281867543336755405310410517185423738113521978043515568535354438479121890369773693260312921059393067795323432331312266715403154674886530314156368085742979906772377169057812721317015871815035198463479542786107511933094797876062382480904606387591411150184274769149787253541900343233735266748468915974531307998906884030757503382601996120516939452659026070032313605094012150883192722610559471527202211177180320489649955192913674143838524089517831135639478384525604256978452255672429421288767837209835678901449139239293811633574096151208060773162257176584858272641263953053221627136757708747570252100524241421026582230124973777210299042827769033773142755625512943245560749261555010462685070172408589738766225930664988855730059229673433416490701833028415101166735813752319517726664880644504665192324521363567331103151912256302718099855900037720611223512422598189512427433796957320255648802887536337800072008423429962360927748752130138270818259310291387548648173593833103493668777367945524489656529271378384719929575172899182285662821180454703991282691252861149832536848021376869886813081779734481829554289849584647670191908090634280975536058200218492367761020384059334184634408718452843111795001572623867737395522098465724569169744497882359292527527887180987568754143375245684404546625349298377542898460814130010213167954381145772834542876857724829718945365745825698471214513303243047843094967685130546590349880258647239447828061888738184977509176492821261990835059455886603489747002775032331832489811270072350774847044172162824564017450368774776498528005428166742009107023675297592398569809974819894654813159478195051511641721535915743751551038250725534299214921078107916890295692319393330235199448979433917046252616445551927745666934129981425029439942805901376698544431666942504615885926118624694280632893945038090895090172668728965672813430049502721181512297239025448969750675721735184810169420372161148048272592541410461670959539878692235311262408863265744758440494787970620712903676045006712698118776516085826102361423095642005329470508106493914833783043474175241356749037725746234963226529317110133383798954015142452267296312921716813209801826457494784025477166512296780414368004431667807494797135285075202336081334689161003799840869117915839533876262615079245717145948526203509477686759199227130724773045684420842154117577530526049652919026270967673522364395939167983546621463196699375687852642499347330009034348464131430624114209318966786094329873555401670821763013676915590178374124063321809649235010744100743501642009190445250524369967840487976844391950640400214422995055144019413450513809677832762093445553331488653924019153702362177866640885740002562483738644026074745454205232550922476077981462957633820307976496857499354406702983219860140633437341856852820001848177111759757460175480907821595630919684326679600547107369707846899348359184144346764412530196418162576129667213886446144418450247601502718656628701684213021418186973355396435602173172176202416248719766197567964330696325295256204982179205180012635479393779962834578233088818959403876056658571034058674330309471543695183189318486376739627187409501512516855794374422796327422243460574183077907983750705574994434361403969945235778975774049565271725300962259246172872020124434191043028002282196159771211203914057118772556913327533962779252001041986603795402595971657282283477573060377467620711889203216343961410715108110527556467270569779967907743915996419107393203748501982900058451731083424668504153058002549918419000577860186957362777011779564401899328071200686241456237111123331213416471504954858003822082798693889414500142971857358082432406198553846532328267489498241583348198455016355529736456597434992070436922814424767259945794292269325857439927214344674842988274569496298198213958027818622084991575363382204469253812699175633505829866949511454435567884902996140191628918743311334532053093850500139796667397050220691742849844304084622846816298085624664834266520727640825174880641514179402478718430296840863970265657463490142952977277169181773907483682763317246428785076433251765303352173240054164384587117383881032574481044791798813092934047019975605938347545651857717529946237924421412486037955976506143214263795749514649228553563244607221092924992331626484917158066007323762871007742832531855633953118121101576075962281292987864610832539648618131743883606292886660974797868766134640862958250875058491200311183194522147285981946242667270253576253331560709906778831105784735087636104993236706577833840373499391400189515638084422087900575794491794473538915449470350071926724139849667769736300162686663005240395410099546552840290647865166056198753787630651070437705546178982242006854768797927328621712023787244467646764599570742591223469187135188988889674197059371671189981846657338209388900404973802549731426950418440697723311522561073511211434468882973019625383831204437433370239861139569816191580986628467119064103633406080357222330268764414505248658105446290322557089126944083990886004947449608284477019977689351255060612943103570774127330495226032527590296362225331656606661026040823832391424471878626681508712132510672273451671453498521375740744240982325724328247236459473231317548265275356519237042426507458432423935086467803280649842290531862175011325716309614782782539329238630343982113555230316444652478443647169685436755755857380745644068336373311349481413048398263088228066590798000606200430054682026719266313627268789476747967894676749151540151437785187307947821609650438390355842226622413474939257445039252490212776174321257422681625200658880768619249160308793988370954283030714029143526854960957376587051973795403423149676244060413151919939630829979182530551955573678904489618149859151858412918928851009688895401095853422229885771806790852487903298431696923678369446074220744160109441926900469279498105403528100662691052726761018361991558100864471218125055729914253157487371572591055834487971042076390495760603930054423611317730384470354922874031548260218478064976028452014559715405013201347113437462625389036163101201672193936432927301804340992996145889414345757770841069720514832166753462535142310330861214368206253715242313237853954863927019684311312801924940469981757121466683210666428719238849984421634702889305813132950035854542645927280176678617618862440891328130114728741163062318009004755468150629528453298705824574444634099924004154599153080756357396748814693829005376816932029129571357722823818565771338149054099036081113825191014100259408828325708030381597026905254243635814793792367377957806002432166077317239554498616184456060633811463461316394361079158085878353709208016247479476214596112637541978024881931515221982982557616924486795434373322527089763160142481162292960687132336768804432802949825792501160711760538078783794682981221416088813134105089217845631325437207624594194429111232699221003967013995907720804773392917095792513638790806596000637314977911906293749457448590067947544976584922633385955612109713315419406577968510772017846254087577647428850556778924968079131620402698256351066491814849999988058758306160626580802384068768930489611533029811815397860086032370000555416863665280532966584093825670647881101165456062267896582844909169550880395453338115404577143775535412131215910881060912284206554470577400096620573153198815824123285023190713447416131700563917199436075204078629597875099286968285367492261428046977288104709112054851000820490113830821666756905542881030296929176864843371863172786678959781781806241919523380133521390278321707117380719283320661897257063069348585339934818168350082145300394423039855725196995702128398364707773055071749254970993726975594109364030183355728042111297546484543652358611446442508389243603715956972289637191539354538355911088429057547072823542709738386010403467728934222928557650915733651121502728392488078699540661200443537115568161230481291846385125161221862868901988190533497975654008914897834285761445795832672065758251107860527853381568841723104463521275707616984894922578157001919900754895655703930757720781955087027323730276262156723938596797553268727257288794248634848481781795025556835143899977323882802558784248892119409673529836752281850534868933753192087217205288352887762597251332500865165648909810222345216638660480601597004232348044080014377525798198125291757824259045205650036537215932580164987527127653583258662801686571305265218486662725712612982144106860431148044990166286806767599134760153872833333514162962603047303312286941332612112795826085001677487443636322237312561247038061787312208859304772731399935794466327893744530500510883852754040367081284733223767550059456626826027361671965915529711890883023244378996907199449797450993963506144433131285724533349295864770780727312766948737387669164649616597904023460846974434900322993506899481591353249763914555712946221953750963938021898173201932918409095148768663605121961239849773313526947099902427405296126101086566929733112330401562279944312755655839105049388623685721908827623535204598273050960234082280314970954256527319137489882533890425089015815876713429774374785013336748206401294969040056124994125963278435367631201545722855265723795392198369170128877804337640191149581163894706701593621012382932010376468076058302411809332181984153329387699260956219896449152446891310170310179979985045190643452922055429161684308326129246485654272486706342917472873942066899224733314524504644713026085069503353923014392140981927763816115511561349512453318325356656431465687003860968961488965729520802922813587571230112197612547972958043153838934091237311060971416393502502907205420529318302743603314673652949608896090360093325746808108994142695314417705717452032775344601480721512950214859422044721844483479051448498328426563005103392144149587130786632603079125639259348522792342992624108821539443152259688659101774693757366496446721757975091273705219270701623341463623544334958112716223621987084015582620052603858711759020558128685380551796664887798645906106685552625907951105351056523164728379256188247131555983316405689962632560465022551451075013784901803398713544137381426277910198337346626726500677218509732671101435511860081041882314196586491672535699085246516613823557376172683606864031456317585366584784540090643231402053978550245170731980467601876014410735299788246042368820341529672560255399619751512248071689232080707132526456762932373040436623549530541219139697132949666398586998061813715620621856139826576464641755293460657794284211109989058353321404315910396857801692392146421402437742612810734381439332434056070136333681958573078746723515157614629583740536349401758878355737172520176804306736579278611884374760151479236413882279135116327516157248480272666953574171389479095001202543140583776536369192978974832846098311944444693186279644447090637034451790353862744338219171933063524816664050744244447547434201218269125714760488140079596581700077326774801122424687426595694706927467352216608011306109312751842005771135591006997230253384516813765246502652127014529433188886085512107142030063227947679386708598618827053681161630668184831439906302311927011356234318662218898056634594843204638170356083576379569224775324893309951718515380557963795879487146814135364906089861298567508020393214606456993910731198091493199193940135611677371263214975443680884512002608085255072464145915544473944968632872973320686179699045416935595474798102859027752189111956313953481400789183537000389170165222728294714627503163434196217694324886868839837524216349333969609729730964051521360076490390364111232500596554353024598394714470491697889585637272078052904042707559901442004189337105231692008867267750019146932874477660543835095443082566625452889392075569243089979759891646384815704858737210661111370631438795199562604568870747764220341554287386386547284931642971730232355746068254229263616108737052510104015027542501797452930910078440482499870844342927864889198308611962377142206854426072224564039918035361745619550623140064050718542842052341322307232145629317789677373161624409121037236047002898182821723592864517202701603421975935312019145709348480339930008112184751891358481323555067529323856014586712740205656661530922607516222137930182978678040310065445960983517412045465921485532741171889644119312812004644233942207878180989586587973061727850254715170826840855561129457249420327874187369118871680404304917246095953093001566044386664309225023495543030335066165727375656438362838178666074868628504245715921535959971242177004194392873429099174998224896851717119240793054400881984169263543922411629851501480527642231072306642527809812555104388402008353712715657974076624130258436582187074673647267953676031476144541411058621323739612061384384159114343088759363102662116404786481423330775153574913538256677859479630268119541361324683416059240525162452071237854296278325913883249610179201956601933412786692390473907204291116361491650951810642195117318140598451632520299954007032113431928023774082058107301084377144455673633218019409807145576473126593546676374577626280316100103052823341839037872078116058280409725696434635127499781347384244857259083230229626529179361238245190568004919865099710922185448931563672512899525356286584820200555720414811778737847693063824649247345423936940493875826714225683120288322613910721284868430251504212948196040543774627273026906065151678335869455281343183266711327437504022567743190762883560741892536214041864560722381928835848288335226319511266543079024765866328307465559929508855586962692258919019383376932030765922637487510526423324846364088251541731501350073204201826258479214180997846067324560637353004703602194044235987825514181494901763558540010945913559523327021957282366143521327376560185593871565471067009034736106897696281368561251644921720738792014495650867317447312335672313217753468709363956046337171617924345962213863746238313493507269637209655476303292598253187742297685544587041934841945643226408301586555764229083242239719411595444821069445468390573402929636632388679688133867198679994520822980652339166420356992109934746646014254612622719594632302573608748028548085587200742048490030986630393270459181056062191963507244693338601402130669545607644641876585344856307331020750162293546768935111726194723648271650224770199215739574688584841488410341903746184841369330624140661894153168311736887382381404600429836388244109080078982576723353005285699705641915156862136697284669672508221236638623044765540603058555086528686376393083956884897941266421221048964846677645943296675918922567006696887693064593137532919221242225929425166293921669607124453741059753930405298026489681858808294190383739327638858832117238227586467624599703762058110651528458813541327061515354036027837499687957216934876947204343840144099674719829015346242705893563687306767730356132594019400442608530653515965419137768115265122235443213151784987879786651292587174287087194054840815680282531390898760555418469632954684528207279260640603358798165362512643411587999385250967670185426132199667606192140657651638724494417745569676669422951255421134012274329718040163471620689757475632292678347134983230813696637020434313181549717662634161972568719600961244641047091830733666892866749056229970962662391007859444140173422097769992061766654875828245181977669902530656602398525662181382486175126408502054873530299087962580438155109374016422995143716998558303920328049775484718530515926323960206333215810800924001632878712867526600638291077885328503152298403040103665760974080833303784172506960410318371677068372895716704156689273063875598373600929914722650676899814983448091773828221369494373377566740699283017708667397847459496654600030104861114206486517605293616004262448957230110113968106320956660811485928307695875055511638128021930261314567420867512928423654951517153925497839882960384996260611907223341072918003232568217344025056027772411221865217571146525264486390825843414284416372864874531804667051226612615119761692118905318388496938333707414867411654020017459293148822091485300244557997764413015719261666953777735016232720811174080640927940627518768543481552530058652967707175535583809117785800329158392509888771254078130563900002161184734309856339828773731198296711972518963664088224433202949561025018141556884050309680767918067589597446734574360250348173971403670187562855171615179493892070401751096968302291983935563702762550596276807887441973956502130759313288234809656957480642870970132529030385253918158697109737665339246553193196064551064940191069288423526826526390037265072549471633347069941905726698414179115911228621599450573797436928752817682216992983820638309442674002319870682570241906179629971307198823807810292764622887223789143119860837460258550754869875407040445388041356399791904479099707704006069819906903825259238590179297462573845873410373242782481370405090428734452728071670127131367406402499002245776132762529468419670947183316928424163953231190769307479382083430555313445913763309818270478245963693673658994883964537340433143331068947368220154917501678181043576460889169389378058777392398709024062338980570640717951734527763100222506114896122007668710273761719258126087601252601651437532255319908317251200261644266573517459823003664713587978576623686831768159966252774229734965708964030836143413866332732698229902925549467733635683818731104142480421839084819512441231865577464992540820310712413026940219219457586978135677114718557675342777927816952358036903816936629120056264068286177375292183530773719709074910152714007569054998794331840869229134564976417381247041971386292490520148721202311171274723995322368324787218291422988944091893940535933622612663813056437961436255324959602039903535419236556119500513390362182455186847829540891859047093142193842955155388523828389317633518548907310420479111541923680230415120500002097806066204489689689528573061447192908749155245201511007440598378033454135235085120128603752499009644325254166637360107322880778548969103137785512875642718451721571318902199978416847180625022186245140509633230149113198264446708028742385732316485764110555421900614728612747261967729095672781539640364896691032790982341759693056907224872369935319209783778079530682283785535258875515044240187261574160799783551920529029235382459465954845949623221908463152249318929558824945561476757354128435694850648982098725037942443523592756772981872108199793737846137913672110971960623425739993122627702445419542219564857858071919256341001962761484109486524125239902930895187175671254340436016597493156802982597645385082214002524968078495724538059400860624469584380247243030654304588488631112353491211520983992666914222889400935020660020929463363347523363645052071549078756395994210916038180787104754348315349736400367473602460208915466050881807223170855842275290736680492824752251620716599733475591962803257078460147278424435350004225116823203915349515354631463127958348648593546152174748522974865730813742863749737543921042616721482326103877811754574938252249673602056332288070816312186407748217030531255561787186467375617374807062565232388091135130037750576048670032383850593167328905288624760397351710954400027963010481515856410069955754241870102479466928209349083314766845085620272757040745101507785871794441143279669637843052493210373350323519685025800620056028671354061127843771298281471624466339600313008015851442506492197797684572712952422747348760326395442836474997461900144660427773482940346075208026824106574346635567944142771465821972084825425500987908984664202784485597765359011067535988397108195959158547648283721987297982035626116326108686228350992204399195527573340527334649421762456436400732581055412510243780788524045486373446464092913628568929984280121637131879724029816745918216961843602196576984080054936570190840033901005314573481426711499958819814285180465684098943023645735330557927716518152346934449281054220015498548333137797274747540281244927694816826192939570000906433384757870201405241931416362758273089966984519907829272165191901212277072761437833852802749434537828500854456727913147096609789451317678465081729054079655599734607990640621477686585480774775846461501560364714717789354265410521307270245265021041091775756135569342765281542235191428825356888618082438369965957450954634013343727476788651698970251920801799616437348992019725651203082907046809110017410536387003155778735988851849607200658162116131569828277045342358159761854500979686876001741448356553754401723640864399627882208146652591545069382236221840471569401869627368666159580427959392320350949986425532102890016905412262892582821709250502511582662887888216834540139609117574394937323565912293093434476427016089725762177823311377150218667434399870367977144301941805261494490402833725604987738219507046171159686533964104901221198977727037359908089950495030837253204684479856290528647766985975791100360782356112708162756743409678884973173976111765286449779158459411950570478835614283019281481794458127394012637165407192180217898079685417291869613885003374692459005137297986372120348504031844336324923970361908561625284423823684572693953956307428111558622205021311512940862915063360693968934048498387563485026112291127914149239252704685808952681309139751643240139892696777937938430230344101324896136860087038404712195404122139034196571396651071706717683917299171591571268806638893134393680375985342034607845134666460167791377257352489327915038739214640467850062946977157221203428861827185028047306884205359446828066852574711227088504479543590018613840698086981727228558552131049449959986088671475561363641018456604673355515213641136632579503738260305875424480884156770550892538742604463693341222722198316142416084260497247828743063687660145129170943302924878001029921102700951759246157213324648717583365800923865836217215740392054023519646695353683000296721848781211622660749960345887102513279351071386520243055399668422057197489199753724778071792951760753623324777039669275675313400609152858040839957784072209269312255378599190728940414749478404652845093479784387424371562669330294648347691065655935750575088605457065394390112289976901034261957141774148042394691872288437339646387177753183253094813678896743555289404997120883889349787729826392596456275580709334193601614222843419487905720031759812581364798876500106154136901341264064116653618768512467301937984465740654391827347046112057786791913906832113068428167113886462779963053905799553411315137665316725475101809598774539810489547322022245081463042961851859302327506384115239308379563956904599237502483072620880987897054114605391350818631883876142650340812258458817754497961493269938801556227649608780068842114497757083398955091949996869962756838668845651873663506721037205953374846935003654742493965045886656385041531810709997247590044024750697448612613145733241254968401187114574071785027387245838914463220742377275567422408615102598015840512578856980518392875441235241039121176937104712281356730451945474317718146311133840534041625580469529055101688486290757966270771625010556021286340988863930760810472108139168146911558319868212977417776459585952013507940047020788864229106160819835655861750727899623357528705080153992384788297044643950433946387098872677848717832959762090191009927528569209687877166786505091504820194070629078434950991396350338142352552061170683625054333724995375360501838466175188790167660006694003015126557908149382270058018286260130148268490932742006123225344937809575406753745818074270244852339542803066082795559676680700968296809950162972959014000976436351154082592981863588111772132535228229958155157075181613471053211605691690344703865792901620881888473419280047176693143692879802528587697200539445133875362833845198234267159427873256798533998310581751853336533908135867041199109444738086467865548999893356822867709822345505698311588211669915998347259194392530441797279625955305833210689032179231380650065677297205624554329129471954355027616683858866326441635005826625265955742333713454820418143161794447626379915505884877350800561456846997645424869665750363989799497201094658890492033453677226087741140613632731425014370790033993841469683446874054106156785491986007389215287829278676029328863830245228611948091461547720228068229939967389871663808305409048699010887557661745905225561371294261268917153850545047217050208576275652101741400033364092104164101407634565249296741392700019087284660454092136246575160693512988995078352345072940644765782210285725055591853216328394421233531943341827247921838446073304029385997060086576687255645529737431592954846659974334419367576317687122297305409874437715971169566112098441227391281728208848177956019997464427793553378013985821094477883623961121269297031774479804756761687868319009150381227198844829557036892986360668146907370228975007711174388918063562657768367097530627671010433371790615689481016660202480822486196036875252119139610712654437134422180826312398369399706785313525151307163238241445011060793989191635840313412617894105172358708772439452742179344692097894170732626660620223260928817676401286514235580893619873115079076488439687124728472529262690534746629837031783126668045151695428766651879139212359584585195206574687939761798834487941941696982711837133080447170140838254110134845266596272185538723350719291674831539235206876102909823533576499921535989757078694134951510993353810820133680453552483279571726033120753941836035186333877928439851607955807283635955548056935210883657146796430604918941253675601771420486733033039755638238889186758316434440061182022281154530739098257081359780706459931158015267815960092007612188498456486767000938832026633307121551386080088626048009208059901618425962616426527097572436146917403848835998865713776302297771680654951421642918375609153764118092299786092256606073205604707398248603140001840106528146307185142558178818705687798204890431763459203635218147875023078331156791633216301976604175183875776960789730836341479360360529310567546040629788198155975938510951871027772471632638679941985788071551703637692831883575373967958763846084279376017718901202555230978462956487369145923576535516765240802108116786064400283151471216615933309843449430403093217893961099503086606138932723271614175932679926056528590589510936436561937487545079522833129418631972736237291466592464105417702536662923258423437998186310282549314402023977565939963620818368180067223505915921667948456236507626509607082923912190210708359815893314217183285478823964348939281259927085710146550773665984025853562671551151711830478951390026862266354249677485687042552233759569254860710100208663808399311062483314217952286816721747400748844857487736989174507016389133133547142932977522892592727639318433183408452786120922497090728735453093170460491049015043417153643215330428591605574993398136767929269143685341015046306556666029471776258774077978724861222960916872440598380848608141968096260557240237851232670880350003711945380526895622106002960297889678992436672033024974573193550685321747751772580717817427151740442924066080967216972843367570186368423825742718751645601976619272201269252064348352930894937415120297941058300838998061777270570157758626649754103846611331381556304395193686250264208849560738923400993628418800189330004905268045555178535140830531333483902743085634655019875254689163110387509943525691689614563007946510200593998653672053800700802456673066190413437755840944654647804977018688920757329330878267475109278963546736140317219847218033401698782053820684790387812262820374951647407024586899543430261625280831567115556151511398735604865484511333817049118364083809721432132289453536676201017352197394317366467130483827713027408391715961585139580154497662984804549130506364208675684290633653602081390552543917621898015261475476952858583168731501318521814853511402067638739820378048773171367092461894920358153190943455130902057864659275128946596748705372316154645412160191914375510109368010528749388882916315923749327471316412482933190391318219745139486093475746674133197568361110698265633039317102151693380971610237901943596345437829094374294770889614019604022909490773227196097883708271477517992891585540937803636469694652543735326393580766724152534680279998932418372566006147341154529909697527387662400852367622359696951530588412100122976525709082723670606875566574455153699828261035695705661101865843798410211262280954057715164170687895673658338212237990726394415170674595962669735188084827485857867620213883227734652278839515048130169101819543553207684965561635439692863107046198395191753211961855669970092694241576702944556493288632966004517477739343748293866009878398807928580001830090487979078634037598990703483146450957392111370832524824337244374387108593766736689324372321183747816392882586462106583402533436041070040998698342924968698680444700848296194872956853849605807752574632074368361096614518728716583872975698276085445274318455206921122122972383756627495213109831466222524297576010634340173685610550207131920242848953793321272662577259967074870110560544136956388695721131100822674882861207382870555458909642240115351403319878820126814613831005035451706204671440554654023307862070542103895123222934778412551142756291479622853036339844742467980160104953381242844036432582001112962488567351168871268676592690565059556173607758394029407929927617330526621984424976057037430435094884567182154839419573871699785053242679122178288507467871164281873237479543591944743422918608408017134894704327721470736497856350021019653608286798702851996081816253374612948143123763766555602335406973444476200862405879907350448790565654847783930450416135922212223701667273912768473516464993328728150550168657418966458606480539207787414272574624066870043069319112831866414928311745744369174796127173723464063960760822296808783263320313998359776812795896206460637934063819491897317136311528911794109872267642657542513883504879062703104314018250138127023352954006802800523109984710162927491176555090200348458773273772819400144635275553358664861455550274151415857492842470953528181262202085550460584178258870916199823799225732656209195494678281043703161869269784598040138355406935361328040816738024456252567571297172955359933950085875177480441832077581144966061000289116004418996640453159533053612001127882377060956103330673007912364656791240939205668668286171466492792346156708798664029259150348003637936271648087780327962350631308939441848534742009061154438247339341845335572188904123381845590800799022147683463276036778904401486672310505727730289658755685614277326095484376586053467739818864826937179940779569064026427646462531369436497118938282369045077062018844675388532377960504153294813728199082377167910051296627797963702118483326623636413029009244179820006040997221111942892125013480398494084190168738566575743509163697917694194669007502691312843292337329215438733028103786382977059497867752683161352429870647678734768158136922670313801809913058234400832316170831589223411627739068677355676926383876450820183161835696638667471667164844318208855747890826431062731743479664715531873044799807298278044510095047121063618008042910721715292624048447859369355052247726532656225444832487779558336705914161322744872960000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
67000! 1240570110079737529826199630863762794669535841012342716204110231310721206280032655220706214318061651762535889011874555716275646979329608311297868585796576205647374821180590361915825458116793902833206565714773384796126547835457847160799128628646115169683144222052215532355969513026953850818487335636058926974449945716668132163476740551787931756908411921801206411927897545818948959490360973494952571594356539221308733558969895335024439523479859121396361164781203359007582799168349598238275977390179115165934426903161963605837223980772518118168570959283752086079924332854523816389649272114331773222466096245273564668926403245410268080292841244570219276073757946045557483159892061505143195715840621156567537165420266744322000198190748680683025303321475762719839547103435099112194973487313096314903264817129736568693349251336031973056439521123874800315993806677069873910450572391677406305649717420658304064524193422144327841293040452354585119993614137399277882672130856627640667840582473344306187546094828783197001497828034470573509966585142321111021923127779948412319513268368038366804640891033881451267654266197091289729840051838548448995819573775475139653345523467505991602615951144423811332024474491727775015240727002574567666272833343818617004091026502464230431900249285651551378696428645316879513708555444835516218884704160574262140911742069816651573249023649411013193535886600471548544415533626227414967290844377032088602659960544273337157200740198888069972093429223516360016953337108436466403013311474134990032340264884420374883867731560870963825543915443015927359563339237437598324397082675629734420402394729490292389309896627156708292932666865206738844898286840612932360689061823668197000347454565844039577637099969620050181990444279401979863822382942324184897838725342207322374811284337916754263447212995430898714227739780533859449843619368631190538469175395863265594321532134930581585061867288850745538147536729236472385066693832586708526589658721837915564449216943531323271898126431104692065593430888315428988144866407072337179348606134803703767206201090777309499883069064960579964083727847411511789941121782107761395911569190919738438855464717363550760591100193842927789457175761125470867311971551415441522506753111314678887376328203861467914619488971405743252636756765050988365674089417835038689902002748005133248506790004733233074423437605052651432978875025367450783580745718315020642680448937886194146820941566706200763544900099082818161263873919421270028973089873889660870173773660264018629843800401287238698120984689194111951840940843565826291572453054043820258961101092906012978607038627752418658377442846675066440798177580809985097815480440901110221337318769837275880062586254206389780033474256992983437588003416536693850415839940086460608866893629519982697807092995979798287948878955708723696849352715604457631124306322595419031841935287416442411079505090757558468850627816442421681173831625435709434837958828657286619667276655697642028586541560736092617152361260720814562177069511538608447608597945682921605599358536076769867485383525593092044538360159202462213073751676084820759391191456834019609578480607072094828138834439454786832258750230234697812848168805531167692817251351529298359977940703614223723246237657772560390956557721035991045699134968536721856096398788342528057196734020541082587768736350140902691176400922674789237076192639654945892370131067233591981818363467680882160644390191079277105773730813314353093314185712705443547544678276998773556527631660646732964422543528132997209973923333270979955416499730812545383836655226674146186625527648611118363449199534547381524297637180517202156750060270568764707034870311234299736180861467383372826103512161788893045622079245649968504452608604747614415759973309145342820746185282757153685218085513037929995811886316174854267552210190862066546384295445891546299697275001504216647848541844327902983288058164837068393348486570924037243751396991178133082081311665746298727763125444746538409301945309316066589310545480569588906636306026763107638544582468668760222134209047785242873911826842782052396618423844827816328071189994980401307954751484682295229688251418854818677506448484690895610209277542961703778821555829347724202079735048845515010087216188275195311421005298211168125253461526028269067806759251078280717169105329744517443252060614196635004352734319577238350232688188058624514235518804418819763633601560483344786451172750813108930193484024635478279895089397198351102712911356727995470583312837870447177757921615857377216369783202504284950393870213739302010250592317275615689167410633899705133733851949164060685369501108601111772860097251418436256015718528690790574084729947680039962351081665778892376845572442070759161715903890444813189803898677712583754575416612912579030389931335085988986602281020415694791911241640515552856110347381278564365945301444091540274033186621322450792845807951487934188035682032625582633236220924312131618876490323838508112100925833215396952002814540154763403082930060468650833065125769699024886476789695212041882194052475805083486705088201869350832031082570854484071114404650398241361800046187438372175413092306963098999263791648800831217805876250452998652634301319245136217694954876183917557863347000270048060249293846699940969226237334182814677557993131090307347904002815602711986402818939343522218756340992825541067492198242720735298629216339189897980930335760419747619618827454699036811069284804161483683705202411002962313265384540136185103220277870721763513597526343688105969382111570301514879857148460885476739001001356900955510130568015114642774299769881964381538272451084716129362354158285401269069745740970962192218566281517526120817000316142886420122119441966687395048627712470461586390654402197501651824265470564174552123138646183018990657309632611575285777932657601500914477789985973374725333991878721999779465795467670103033731623484482962984216298970656294383104951503288750119876003128774899157917318883669733997755530371292674176480638698887025504687377144977172522243768443152118307389745502835631415815554496678854851228512721047545981210586305470022610226063380688296136478417605997129536260644124858689534418902490388411099879181855109582420141733471068320119014166755713856402710344215099137418421916683657411924280343692057500445599495696041654788918673924026873138764586537001679440882474302382913944106240937631037044301632337528600029421704686582462720929368071456209294931736140306817618493426147098309640803150397020935244075357926492212774990350990660070818507063414220223309828706039648426487393392938593660151730093735420828302632050512519923381610388213392390448599281201445139723463430580855872170838220590751301754828156096310838038273956912869236459729315115596482176160219108059915646619861565726261986889918103826880051292494597316243124254155479995904192845789761629596861212279507183659851905692764040298348996365708461708687018871589480199676511739253571915810276804992284314485741977820084358279652381181550015472908942325367890539579737815704964630984339804797447797010760725689205168025502869036062076126283973262783777529276237151802368314875154647231034604381721042881075975004420726466449906533730093684972696606812273105077696662528484796008292265341332238064177103586186716029261447235554198253644235964958326068575721809596587446211046428815420132165026265763568942321837640900642146958623280776802099739555057735920252100624608560211468328634561793642022918563517656595017939936129496061428956642493842447276897218550902942260759854570126257348162314918217980796917735676330742560275239402701672527019961109396247605419618488178752786836293188440915239907725062577817623011770503045414948490953051248464814528292103976462643362364132383122572927987168599392088509288256298830514322352474167422935514591974883834167650738773783897836937015574018154341904575626194575690046794564933216936655313519957282048778878291612749289633145007171881407298875686893361086953960293234748503455899375184365260594487316798655577116958275738751924691533549336771520483739372651044842775547842203185163333974346586175180818315971358358165721459584160697070846086174388118061244649965400440684614512316891004228526599802979423818383161732906861009913541286934127303091324673119749754848857992479105395726522144350352483006831232275206669405559161230776008476119204719401758470288982033189208260256519404056312431940909546539501282155240187656490890288885171728419010221033577841025578514267268990614515827242935496516813447151708316217849586080044986099133139477135417600491970844668330887476354222657760585604911627621985307528814884796483602622465594412964126727857474596121689214318789206468638342409957242375678725048254699117673129835097858599898379278861841575504919823130106955041518908342866804438902819001082599827411257532227403464576962043572436212256926430424475108619517153656767292866935324730029813485038773702178914350269854925489831592187979561544204500434818446650584419864060319248376948744580463220363009810164338415800986140403605057412880470068266378004428371555380472039503818071319445897882741994259533859907263218384306254677609091315438650934697552526153274839779132310539136862890805862623727402387434186327515808757295949134477269348908863239876112124370087822637557080441978227896897215357182960476782898618978325876023298532713552327510767115463518221429456609382150711838599040621884599115257249505980309192175168669176839683334719387186483890739446688776718355716106681514847496461868935637347586229661487696517819372069069110888331935826150655459416909121582756809979197710148854634688100997185394431558005575117314912331365958666043218686668186954037729635328958171337448711073589308229899951314780444121096064663140936763279325821043776432799267416528719446172212394087101853665789463076824637485844965021466051914793727806359926234703873880953950715130069401911420814772997202058514336212313930703431278277765447347820322903490128308480139851815862942447690878373514720052983248012377823715735753112797186019105044334398682752170153480734795602990021017476513916870326125655299225740685460432125283786805105508942740235111428173623804140156834625484764185215400884038062912636627027875301402782865191010721231730839780376543776379881311953458016680893316223399955914988653762085724361478715209443536961584159054239134802264485081646626837191266868132148590843013607216882516762166090297929281450582226075292264914879694320003934908150814665780478747280517845296157464087540688227649844111804428899523228686194022176039848565258204582285753989960945806513869224722052381291252250994029613654981462035911099424452196224695712768987075114368881181557325621644513300024188955887774666934682273465483041373004681100527748316272155070188444282587915772090563625782315144827828926602523571941665096400619794517510115432442775846959582050197787102928500996694672225119027385233337362611564954823369734987462573483178667746295747298829545312257712903877493038403171828206580540974699365684440383671600598512361214820585613714580137864767945260952502774014391803922583261045221947160920524009245695728247983332348874539858894848943508306491963177712177948556825629052674537042123562496414050789886249119675040839298833324117504207045258777254016349427132045070093055681117049989875218949779510930008667230548894257340146337838569766203043126624347429943963177731999258836530077571002345181190779405785944625317526091397927069363933886079421654235646397771084835973736801982208336209472904036413338034035996868444619475095959160123808251409800893015177941514322075358318579377377290100780731533122914852381589954902525455968952270903121454496375983925307774462413634363518852497656207165738835861799963946292107035403932288551775282077630841217405606780708979163539072784349589593737169957530587485439723062245041186351046108930345043082311756876179363167085407227442408017760602918185984872522848627955846873250438770288623952140305322936696703280661711923360487493497683939578019009469070831949276656059690361388636084236671196914847340640988831568952745074618853177345709645885368192768215466849032177529011045042222404568981928682224966242740382139907031792068753984170661958700919823497890671935953468513054668401245300839947780890578940910253504500855696562115092943545922805277044425696526609299156186371823457814329122324017518892836347656280604854054818333456513947032259017581362434293877547258671447669668533918065162567471345776205944827092672131693165409396690380187410999207110596189379294908555792581295107772774008291987955860124553114050672996653509584948117931366443382867179152406484165413196371353175903182438341268294112092845703516199851974620823017282610892491909998699662760886270649950351005774258267916931882765739928668263365751641475899430691825362302725218168374917617088776960054150523813984700891971664906970883813753407480925750170728476973799902516606337639925516302166119617211846679380810499583610910099853368081286298678806681029744668415759305269151545477418517181425080222734213673457795891751471153517370341252846644901750440830623974492897179881841647892580732824810602825368670281499198797140314089738521076345827533395659984760192421127922207692146562143925454796340932034386416363099203165379593861525107527178741466997396781372849742524699131616319287420171839009392727634142769138899617875273241812788310929982116598616469735068794848771107116305565448345163535901601919190458314276556675167281502702796794164422974338255085816401927564855282959536688048487531314410774695600838577152264501561662958441046741281775859823466965693792173533347867938593126003572576602035580289431471790334616498645461516881547220247557953788003148714351163231822437992244467435395861031156398119989726792436801334114306130241556891445668402258946200537485055126295642494158491567917576650739104434920317559223466718022009281967627961365825899188862423381993234093006122503209752120078918047050318230648380440838394988463242043620754631971919220581303944300614046789645798166087379467684322094569590905755939616392435375512058080546859889447009213496637352733448032349540218301851552323661922866519532498497062971529125238866722202087693422448073812550913326087566451115114450109752686250628373934320794104624610943776910740681013310655775084218110351495549835811998457036106496911320839619563254480158031243310852399373095855459636111410838066845627472396767380087619098114501783652433792685767156538170577333700036982242480632696614797757471888957863623902187072314442612085852501572443899930400827438339969993711504192842134296800949480459983076445246088503313188963563007850615668065588884625898570201653655320403761644494817381954170104854452159776947760168987613753050241011932320143204054513214136176236755599557412982039713491010647970095447588985645436073046417038625357242096507497825054095004017607647373479467852179873785247526925324780286735497648112528718409846755299565034901167460017081160159003347018684929038356634115653404340307242360310618070342095405530578526935660758734695754092468085133669591657267766422816125126255076341512513230109811790673100780658514467180460599962768620887123974550395606510096078926076858849552939141986651871405519200688585157067539454226018759198052913986944946901615992137453569896819087841157227840306698122556853795601173423688103827056168686516402408682228796788300531844164331226822150733029637796405521790149222964842612689418253182765827954987813026584653860270451413740396255629259021694371096685803988240171547444784008839822993952643950215212592038471485950323849585573208382549919112978834506729655126597657826155850584234824695334391663518417518091925946227007950714129050242665838392301228818140265257272728028663397055858293794652555950621758884340295508252322959963753290054761271517136138998857382102056886120578997000137950205775852816582174419463975953455804406805160609321168336818998478714976720203821842436441195370935778884464377421151310679468626035013567662435243364457873042937784622021470485312439206720960159837964854103841868495086703556632356066067626401028995532044894599660972690400523612024980986437259439808548061629537257906650447078484355136858814235931173727716834691973171965843049235734352413851664498328059667883356309667717995492871644001918238444338643759438892702833666500797192648134065378702084779406665053667530381671956241281934051142375760074188863355975129083700570134501140636532045766846081627781264298418905529252613046619834810402069834406065713817444444510379760558638259584150258104166242507770240553919271398983538436197647766615742721451058132345419630025900855177114247818229869928683846350253024789972330911559747314037612498432199614135708851562060067587134626241276643725182467775696628970818012588816276650206736141327592336035613634165012509579209121919852683111234237561009264112491749932532856802287433356271189675653302543747157376617972139188884156873028965920749239733095097492358845919637938218807256723787986612058853306748907087044769162112578917086240429741467495499955295014648595299372069470753151399882307883479671446002344612421364278388721308238493547469487906350470284571522578464451238594273539715318020851999468034350435588083484042389215833506044214056911074552629803893725369847344359911344540790266721885229050953006990311360579642657023505232445828255761646183724366774054117380085853516928529081990140903361110727357820996865917893617038290313079084039384471320983133168372662565695847037426755350538551050333338890906970140957201424176228202699660111831140019658112774621453621473671699222662144267489539149081895102365098177803478571599210224381230242206433634182168225681010811077687062908773413207853041386872609814359026709290513350104543715789779462871777322714164930903672122233515531165533495659413833034029102567639227234888950995135884408672538492848757819115853635173250591379285811963107587704918431700874804522481982801706202508204479270130509111237381484164483511041644775292890812718152567310136797083138840698182035202500426384275891239102730746523130625752041140275531306930813814416258378898677989488342684760261085691768491168999708848971889424260631168019884981473673653188193208103677237816656863114889110144461066569288668322239796033004351182065025967030864138446725388592390713849013455313799570799765020662863715911630006233816127854701853614378716631371034243142548712891954229814923510314680140369743578291266541316299169196768818189707930544887249563157512803688772760332955378884469305388209529370750040194401227242315316470109576509188874461558307900599751233374030109228818381365139141759592583873747605480829365090231297935864219772240308973609893592615124423289369423838938163564533763372201810767559944752793881614078827088586761327193855151631859046929631255063303707944740210374702714365636413745658810845498329984149046139752309143840054326585146531582996454114252284976003508304040064804654698075348196534709166852450883825962358771137307637134646075545680958100005579922656379826325728370712434735318831742753227825778603678553998208685019011483431182238852139115175945173962313708225452717550277364172914845638417585659236425946241641306582588958496098190306904883015582632552497877109122826426190026225272167326863410694897991648713766319804219265124510783051526770367249078904435558400743991586839850248944255563451893727161931103699857847058875739564935093532811898159436878494882058631030273099884713126475262536518361747181966159866890367695378569465296320936135763515272435150696905846547882970670199205473416905175109048938406218545006155963823885019545662683167801190367324181702722518071384857824026110729638592484796228031524979671392285443249859680119430164740650478914601372282418926554660004731486459586848290118780959589565436048663028639168494135913510010216581347954959027243758080015752873969819443433591670088234958773933445675895916107529840733429837382091164229492137352506211860359990791318400115036851797174374256118892670793591233073431469924461745881790199748708533453418797525139900464553995400711856083176847665419635579597575196147959600293569286478946238876385434219659681973859599402928088436867112773140021928662991609863228946232824867712061808776406107964344562667021147279008647929239028143416834231730434769309490271765804760886304150029940134884389986743889130570692579795586573216168717875525191906731526531999314082797868168938718129805526195305693980579483805722076607934733766740029874958935706478200138453591156493314473000249888346308694400562878978162443517203890600787780001734882845519336240454388975304499329066691943169199312570074809252080384449938227959171693451109903470785703080132433274478042901853029615521289410862645428757547139403056678595051874072392044589618140994488394997528823212927561531560857890213219627576119425485710156397272606238648253819534950835797278434058594216472885314549108240604370537004597805627653498129015189868622040126364540353948258157008067491364158931518462523293897496896648513549783086984873268169734101820850161112925836051715834293541246462213110492026409617899685336341955647492405944474140603729525621539164995835934786567115210299715029136145014586789480679560763683941169497306642752054216666136752336614819301801294793826917656809340843533161019200581810130713229898295552648815521259698343807466372136787381719592254967037697303162487790484791360584797285920732596362881955193437318812887366360427020140828802440981094423504669699905597250476793539365207955094187739496742924684926870872108496403264459506107084868259860140387988075943850494782192262058323540989491508307501900056452445902483170189424023732830080382889094752594161593866058689828458320857970524636468670775995062256169927903747277116925186387559704240949548387652626939482318986833026290686614122863545051584807841711147041872645585622174604950036252100418371743332572650391391018402000022635340510346312735336997705900068024955186881772097881424427227757502793376751928240937645011327599257287532133766280467017097572602078028629423433502105558303849013669146210006139468238711234038276504031413374202174201547446794332026775117958599231611003861015488394692484818061454787775048980874221250300671076382790693389480531756172688722792209596549043780346755481931626834899225408938739314899781011563083720395315940006553612944145874450611309058305808170551780908512123993818351652474613070319754065550639213260077360033133493551704562809759636228879529189675610501961794862021015586027405292882406274004360372965603370940254254516082975048742287146016186144347412792024768128386935338205435630743096535820503005735266757446190992031796410854407177917359502111190923625197210211400864731350610016448449585490124878531001178329570216727366847482150670996246428670058651110672793509051664311049664894439307099366673902483533092589241364623640464700388027118008372164527730366065717813567218221852572100167013149577978006803019245924604378008838820366780336386185883763204652122287123689693282780352051222147269152022186150509072401839183601659268065443415656235387235214878002282473766465587948345666909963173189350759905490421313888680734707427123226250939520220263826952916325677534397265375630610374538939689955483618151503443990402932042314173834606482086896031668111955820573507172960126356009851055811025627663785376261092520104807599665328145513389598152548048861549405858098709091932872970854211763355231487205541816628021383156116001901847143298905069036462256263760113101495029509549113195245097978097898497363969504683260512083692813894725216619185831175741449451660588373566697312706962154208807322945912107151472905105672788705498643088651799569824354465615300950994471028488088170342383816995905514837682466151543591847949980042181785368640622256154006504594842598861781060798403260034444342007884769123772040313945009957214566798440353513888786747811813034057412193208357498406481670320120790241011455156033795952569421684385493515142805856502406287390657459636262919182373176544355717126005650510987119092399691262075385595331196997885788601688254081384116804797626195768302917360171743409701997321081193660257587750912160663305688733448542896886884419013146526371891335372302956544463983408885717986097168109212791926507151150508774747775590121460764765945588618858737724649571022960709564006766263838487731293212727292293916953712739355902488717181404610691840995134589603083032972962774957121004875746309450140727083409047678411695533618428819138862044119117142332357731742938707241621675682004600596609477108920383430739343593792232267502844601715888281280136757536605637165310064950496592839018005942002035855817177199724183179589374092483015861551762966187084884777162394929679012246063693107806073513274560427204543519897262360600233112427154674965460596337746813048669916102495458630233294914366228562189636050585096371644307656431107035080436361020615313001521277753919315385529789699175159112742168881121128021257820228726967343585322481010504703617491405752697221598907872623084947379459300374686471773425164215063062797977290253529099315945732505226991808669865605153658354775207938699897068530329701880612311549574814605389651671460280804364423212224119819385843790957448689941188716244259098483753056814995767330544302039608076796682925663094899074252527523151897701940977262582873856068452098923381517500690673029581633385179819552386486226012768496527692340423774374721560592959904160244886018729704544480030998780391057407103946170397024921641374513170271661616217999040729335722644149491715306327055440030235117516375526396012101509644042221342706969096227612303782184396069241637371026339701068078385876765932893640076875069009034118693420239652670295109407225429307294325264787236693315751655977433111414887179773339851291991665350984261641608595125318657104196100230805618198804436247577389837509319664457293000523356222007305128012515800585488833093358412433015109667407020894513186292926626107715956099287960881671245168986970503222945387480395111772022416167502520295427627550649687049999635974880764435297171753523250075803341002992786001309203816359809106223700767704217622880856990593074125184758730529867162762575449398754747314676735796032423420655762229782270887662872081655760309700108647715480695843433742087482633458264638977671783386289017438452162691420977452913377884810344062336441844104893871485161295725783931552306398405454251286178088230529644493918209037326302527839248633891352933259292543919356443503629204764675606603120075404019675848115162848938503140103782726824777605081684853361999772163501174218191099370080343025577236941272678419260627710565042448880097605977088430961580891077218405490411368104307860500073301793328668007491321700803503495763390174355937636475695765084887325761377898155992864348872579324731581705831449713702016041926289177755821414681602529569184167737395867652749572408989328441328016287210734390029312365113613119007676981034552720530435106208245369263247724266948886859532554272103162392727993345195465431424117954399040013483360553192779544476372211578634542765582215712709606978075139869968148150707623462227989379722094626474635923334129044839640941114148386393878470957485478736674409346234912666256833277203763791565197587832573296828614390753927187898800559232693042800845510333068778385560503840840039679569937080143038609625310637731727575155894342732526810865598026961205121977750072737922727718945996304390064252183668525483306723835092359523914038760163596491146370836277777049144571403573805315606740809819137384930394683215286816644723143538953200817391804858099509092308297419248741347564419357142765926602855804236801387163870412757242444476931975612456677710225686352163659415301538351891550859653755995117945702784985713121873385933170262348378835690006532809603425071961901606515755276559738533196511457890822176457165490258848151956618493843217130997137752343532685251823428323370794254872257884437971361170817788156733919719794366793700976188178016360728960098373566661627840585307065084656013562282876665873449962153636107297128007157702892811310156975619421761883249288764307325327179736374939947663281463157771574727487735217166288918760741966463391235519530512541025875807932775734497200887355420959138065094416834922046354055240853016733747616066568234267565718999679486834241316051846270978475220628124233830675122015640088131828954483840893668545622012629698060366627637414445630285402213578179102705513583350916480693558794147969348866201621170337674691036150529145378815086859530761586016551600154895355455014641098105249322833652140867977256682963614440236142058268662916604616600665689882609393148846720702193250334477586676833574756189065296413755339089295541119594849064017953786880898278406515148585509794237940842283347753424927648089459247927004692731523359308098204138812477346296115926447638203588880527088237043469102625115707614044868257623082586024323535760278153685768209191391966828859070717922123104467556376118355697925299336059563815112095592371953999317010220696194058069900202874653987484909303905613125282397844697758174359872795947046495856869986900647893434156643914674492390096010139812693992121129162784900175905661200718604667999607357097918434707688121905916940892944991385100178484938463817979755398615288509014914250279578528112831275643800066646917901619225530056671105607025056471561075271364911891133204529628064896242357623297604932546667865866040514894956259099831009873093018123083403610715045511849392506443710767704962465147469085416078377333933009768919995376825523683353974945786915114656554501295615830813235444988640472167025847988574704848483331993000003908782875142096584758889334304399512992462687821417758431417915623686969260230440444003108482477381131579461342012035034113850314414280395199611549063687056981895680078749283761278955971759046787182813551320587278955385882442723430215318827872846561296368741888924930124610087208850301923991013087249536901228358155259273567534624932722404808870000310769045278758550042475237503503359333877675669364631420170349683930263302764393102882269687083057665875145639293379187925206070830863405256512931994654352465813759049206858848382873135665682682391579591201405420424179969892137932790081298394588200338384153922015875860504410388374303012176072236472470964346374436813221446778180245106498640571208409565840361447596720528736332469866670479244445915722841965365932684697620345955302623903723122365324451732420923498100293416198626513204058950926112210957358794176226843373138306699037880715577931926187071531668331137738730217912968513967691891539337087089127383707186104309356814545106991469188483207404153764507191187473535596390228326512079151284133986691049106099715193774419346913773995283289794123162731960117677217375088358298708119968505097277711194656333460818429170895950078269384514086600456409919878637728531908337268208970550877066923300185782887802592278059901925150282967210277878562174440783360894050392928385693595435572037440658130699934251622446887636161228477279970235427272784719311255833137139498033395620281206181555247054636358791526132303665735663057556907176999917609326674707159278504916938442891006117969725236817729063015922670067066507751280457783164425653936779234333805341292849322694366474565660391262530195573115083969545236131513916068610989645316261971188741258545308679742475555179089288954847945402471761814232190179863743850846057421213408060249244588482658815757046974427937248094612942166102276727812133980649116244602463557041451560264755566883085174934150293637254645184518185830818860375394779652893232877156679458451452138975236300536007919817776360967815010784193556498338528172194708501230355137852356923629864001310843042784638912502066972917969322915716909508818204429046813516163263235180812608976874871314402173677743202404972347356341353353866834166321461428822697963691282457512278695101672922952018171350702133283123880165981404337488205176583533575852002136116648951982628989466398121994872547226702847164807447920717477245733757089220963990078361928009396020009864341724615492401615158704201860425567260657895033065124494970327768432613227855243559025634081275695454162708291843058987006998862529125875620339797057602511892581686429984744371865210373149130967011146120564616256841276122341564897326000595423203032363812213554626462791808799615238642417311100659536355264310448816392912954025910094105658592450401279823159186633253352751063967706040936474462422510452971587920770802934967712411295504623027437799756543851940700129929890872723559655979169290138109072520346078746717737906260926618910906555624527697438375405789856517567206405678751703568062570395775628506270817607292110456892597095749593986088129985857126748819389859455854317408825065139124376121592116533410207991307778428091404819828617800985105794709543021245737875354385491049096007914785755361878740071150567775048134710251955201562749921234273815145157088490552328718927234088435158692336430557584481961173212389071768527777023558795287739726652562904032507706256925319689039850242559364053433425108830554905641003532576072661853723483204570164627146721621866591209684950429358483842459919074841084293898633480871125203919120302425798494698658520950070517036315411664500523880396980688389612621365695006373338756298829244541715880815641621894968234347524439234468049526837755331532384151492162585470372310901942135583358142938960518778347111800999713750281432851747038728705112227020565400010735819111648118294606313974205429568406344794223805459398596441339932575373963587285464707676481654073583332554550592214384527384647495581319050347622534949935274212195618338139612647851501967064387128785341612992283417650851249393575703949346609995509488670894159215565501199595638673581048519528871184812449879149060758400735360167343596767025727193442088867534988106694799348368009984045474994176907039893719528382290573139961137844239222666191036791890641886020904636188849016694848203661487350921515144063607784600604550577007144743696798449932897271144133024472463905508564725504328568258880535354010572629621529974031773979585625106381083498717215272992012226232616298637851641604246657629021070894248917601233771613972735088386710321687736590689452222516309275698468990485432752800385516314240799157962592892726952571820766878675315133948137091399571075044533356582536091415959390223130708885097623662225849195318598775746459976665025456239176559541566424074695317247799851960462980912759676219804194523510181223400382670509785160774341516637174332958425998928944167702361996256955483395610046624364399462298566529655598752236038868057973446010844428635944507803219891066766777915366036588643999499413975804308062086275069283314780529875006045951469320443358993380090667725410263259727064827449365531499066453498732475016606026829116264929809915473163003836702758654562012512146176886434988872744276572568600888700921558609111522308999719615665120753272622927256067410202639388265192214426595844119456408164711504322075761203289707253679149241542596901926589832892669725111507000911318582525277898842671782195127002778154841807963889167004217981415796903484105555939385551905026217089337764144826825816669729325909664934729867449548606973693432636626803093385786984638100972181058919644427963547286703224291086907891998940278889480567194367536699571240282623006753136753931592412130367748569246016364072010041021491486038968624443821126892854088394883269845560279042354832511592626613456656336642428928737646755528105767660087925001965024610215837284889539368829630278928947670504874229992784453312939186970486937059691080706712554771011767319032973798747307504358560798370241187545350632287308169918056916558659588024090946145410780143912392480439361305144244501834795422228139438654795427940230792522753899760663256899070387044725423535591956403671889467598208708475135149132526296473922193477865363658641925353156010250954790173584773780774837556623524192080716634701391395136014448820675110701983386598988450291604557917924326610650882350323121067610230147007205318061982149404781851325952240660961145441130485262358100757816488299367509180558211183793285077056240723803779994577808119879428241476807637065450252369783640703944980896734111501833987344809935149028030733956410520839570380091830918556412352851686128978909592929310656460042174010227050766407281324881532298293137288833040978574512827477100805568214317277930535389657698289069754031521072276824407861331360412971804727911789888594041599566614208219465688656640960600924375551614660961732220966085441400063197856565660658358490697656581231537065435416233858927938181959044167268920924221098039611549930055324845273747391425367508284148183366997882238397177008827987210747212958152045149610720770501342527610137677553515188608145767404557768183850814418388275028181524764723811001837399538410636536411028721540480188401838396800383347455369737025243453581173467734856408619971308941911260394246692875655440160641289318784438272465931848424955242422989339185260121012292726884114682902034602937509244033481225200851612688685261699270699777867049061955007216165027014271772072791153515300178363118973285846222736151986299549635959965580941617079827831320305610502919264166316063371581746241960814654964847316059344310825926831691748884263251707139326579746320275448536427235098522860429206483490029218326052078114819407776537388752686292281906094911481245469807234540516901350323505505663021656052460366391920931886021746488118351923210121703401125545406908179160129388496586571096487497004223835843306585835177842113783610713806122916444870629769516851672316583491364741587102149925922932740684355872380094458848996175937170866174624710517663817295269253047485067208257566873693822469364668376865552146562160016292678036117773220823405788076834344816305567402959518869562930490394393263712278274624136166060016179688345243881688236085965816349970484755267976103377354040057361252667485864634839531822993073461012509124671487643661231158690352507015751983526733754276472502098240448541638003818735653822814431013049232883581795958572020654225422825267146542713052222093976890858828356351418351681079608012342213456393697741917585097206286451293933144844002287072415219748454799368981452489838132349014093366050484735590869500870329394961824845100777838010728875181743735484583339812504051806147173129757256138765687089683799541347419604491741906740245331183153429543468967115970183407236453488418070375967587314074119246384797023976728833775494219381640474826740880543614135121582983312598652865314089376143220085170288452065321113861053377878320346427626499692181230877115957113360582590093892422588634672681525669788337387915735936528213505222720406466760329773050998770999398926571401879588364762647443591433349142291904845636591021142606172652715589976147571147088209164865961379813943355853429896597814209046416450043696755591810150023179558177978815094442109195908910543072890222819357441573058687425462842049191857899387866550586831191373699531696992086812261663893309519758592861056363730976283188699133961175929973248539225689113256486157968879357216576444337747139859151020132569996914322307626502856179632976678825313026065034565357898771888404245102861883059848986792016837016080362336271049264388247092466725739912834457753473338760524993445886187085729031236912735817070678179858427666360400467040587970273511564796027711641887896717562682497427166739439410905579215680947805283982777461393694832046572873356647968162894555900495421938831625384420304134352679533163450377386088640025918057782444286969551825637854184170099343204326237706275885459848190495927070550890010102076671148016725848010918277002288601943730930371440067452411239061236615451866058873377965270461438844179187574811990865322180254491745992349399176027520049392840833250611866687384689081200741983537942556876807986858869101738828839816073599836648520586769981126557425314550536415400071529569303334456099578175255221824996172193937656119185492017132667986413348823407432892170438497071037701532633861039603503695722937184038939511153150928869400415516121632856961774789205735544626724961072787395486700577474346609835881412829048836835208552519712089133133249374244605744823719041769751768050030847291590834709260417664565851899342062463544068978788660894641003864161593189210782660429221934056456165094653338883742421117734584113640904478247461792689524494011937656419532914058277260301346916462570479952082479852670032793689221421950186990680734662724439472094465447740050796896899627987277495648894652375922113998290944823281458888150868184345186128097562831220171408166401512796655121633968194630407426958644032872135795836382723779728659908058333694659808065041342243001948474234661690493594036820574313622058823740937448432440469183564332143077958287356176230634337245249032195991280601856547898506404762023905597352893548925036485315320834100435691201555917736582514630761949836183627350835846013761562449204061615895853325981657026208060450600071034443517121948096933483695239982665170091044857991622842488352496554674387731182330070106774156856143002119177502981313265822025940806812702719645500136804663449414517842916007120040632372698118637066156282735444612517989314136883809370811520103644664984662478951975595717601653016724550496359633756777351196849277710842681718790925785593133038783704187160745228381491749291369453745434462920259939726443578341850099506653549824237757403232326733140112718012916135287064949625829631809855846030692295606120311519089155797797850219524855677816266248721688210763021998686347140651292243233974964608155989833038838056944487404703573988158094282258945079348653403381240320890464414734820365462875759222441350739829911063912279171374221916331577748719246740510729255199700192072430459928326202916643718851643037990418682784486250987519841608722152548775643923901764209072727885898306205571374846075879080384464660164328663918336878820913530221346454298849076086546757154747323243398223907039754729744279660042191809970487275009860332552062514764025483462963478670735034486873033710343876036047131759213379315638371673789352741663899136760414072160758589828808884516537454914057314780236332634086990632054708040409272473109291813456560012671748508400212005514810236679760177554429682731894788193320074662207146524616373695545619697341905818099777133689511239298838932473110331372053020101964245791888913358361210071122739772108702426908252547030553364007745344250927812381923174580416682776873854519803110742951075072329444744285589566905756943661202891962031802559859381487596373731855822079550481291858334882473642972414004414411336451446262245114160393132584729610981694069416232534784892182485814791894456906384566906788876757856781841137439050252300691593221114519237222252744510334949208618174845127975527752840283282202062450074431874740556738092647420877944646428477559195996013154191997426390738659347425385078388585712806232645537968605437421953505579887439893793477340045906380110448456591941827507304860191716804313094168943160503093997875869909064374508751030709241093229198177299948767853537468578203019087116383545680911491098063035925787275631618174557280242432208192885462191494090400916600234181578403505387548219352108786907938805097571889600639495632952658533326405936822724323648055201260628951079008389114660722703799260735194871798373567913510942999025037913525909893117062584006691706923108773735240753552635882935174838031770505549535079187906622632891409808057869272785615163024564435866064657004586597953584113258459199496371902317144525298303279673170908470386696307414475005892644754976350067034511449157259225299582647953608449404408575315659571195032812304772131070631041533200214089124162988173267147908603530465179688588413162761607409081719639866878662105218141180597621881807008985002691112050232429505263361714929172672836897235104819160722747622311120988184705549409789748774787765531829650799050248584326675361425436022046850992695461913814915273849142195800257977324967752213966399211961788708103917344622457470035161191049602909309202491550317405234033573610693093134795166117718709779667638078636662595507758655141505737320603336271331172449948805561123700378332293304452176014677620212729788004774294218250362158596481364829297414900368147049115663781214625239666699924096239375656498858386935157944049129202913077189763135297990270209966601746132956730504492249222784649245224195218002966538666956471471264648709898378104605154766323055660430806974442738963339735351454732422585856726173468303898489996604461174268304967453504762196611765317943240703176927040968379935240507384787467880312109310188443353018070965217540822563902482101228712287262776772762081822557664422973769564570450302221750254002528289694287891456420846193286188814434485472549454460657556703949029750842515412689373131171802785657001955719341711533446983619905766539509775612340845788480818917000190009623164976754441856825101884191376371392741555327228452270478726478669106462969590141618432052995631284182321434033594069413788970605322605057288632185812513960492403513236431023603350128270940978789305005287765717591791678876940453996181051708753082506572218644582861396552373156722454129987623129426706895730386011228486531918441140594678556246640307059997463679975605853888280136226089891149607452652942438752665006794782752132986659827977102843194342398815152680049466572464783789777021135601023240287997405748670895532778871285980308956658070345407933246484233786089955936053476137972419682009632909649637806243782807830677512704591435171997323922480732768871746256868423559985745654997056213975397964866278814470795912889232953635088496697710709796747585784242904158495473762130505317071319942603426079923904915050143962078197421311414703284771468604652585319708811627801919965917138882371778474089936867338610505428869872321679136315089969973609316591319346457040354241393986932480148399139321438126646479095782808520320606145696994225323351717573060629064797772714132250169271203961737236393130058486343506082214925925745456205837113011181353762001648799453817998530282975272523114225968366584855453541004576389238843935639192816406213773564093843190412001940353655797422602170752094975184677779249702827886475795992958776595061005241557283379781288172913094001223962211768650922504167732438984966419435659962192597791228967436161345260542879105338042783837776177641496713672486262654876047813121625707565014138281655233105662023609120031982382430641674640994736179996705128780824441691079905175759416597057076059253010051296803900624688916548602957268607322099402792223425570826947983176589621957490113550932450179771726615787300906496799233440032247476779458506443387608219852327389023057952462450893554417176435897567949936729022998933714408250164627809932972164451404268703339582491811107275451308072522511791071996384368068742031968882123448843061802316381772650743534307146917748944043213202317415189553373307667320246094749833155608958999621565769551220642822015328673095173097095010262920967270086951299874288513584545054508263078644157685354668721439056117398590775006535141884619690841770285301788878543925808462041563541879691165913269636898839337485908296912507506059544644047383920890999133606217859965967078327471132680336522281519998990499267500461644374392868585733194822647412326364918513536001825665419255234491809981224088853542201442797655669062478583869290129332293839554427174900264016811296440497554041880888932413451200279043021616008753340608667602738708538067380241212216970067404179838860546259284038542201271387331293859239920740738489260067597883060852422575760110724254400800235960647692314109814969205360556978638084299224765579390965762756134676683312442322452235086719826410107080171282128787646963848899543538083393986387339633287116562341153131086237063187402713640526602706325068960754341340642875691034889156093798556569108771599511678073095540006340433379304685681258916446021377262484488392033407951072289675485070249362330866202190284088287024201985938434970962935454677769813675318766950806726529867622174154522688327160258341499756804332839956968220602060420003060774398204158203475340453985872225802612522804624504825211956159575258984802981321595321989424382313289671649407303759750918734311882651747574771994944937575044555906870568657000657093791321612603795947645442455991945499468114276701464538040942908312810249226605667444813024137322684550210356673699530808571263078824797040708371813616364913289103628248377989208907770128104764926608527897654392666359258358489699586160789401922207686554734212882688478405255882283327900699262885486850210876883996281915515473452461067683824174947652916867046902895654005720112172939600104827650712929982777725889133975959648582885489838867230636782648234909451366930018067800723057919908086994099569039094848381269079690098295516572302634151448392204289946392668689396363307750108726371386411341369331921670703608845350706552083368547310216531591448309785996790391638338068321456758303339016934811779523760598533307760818836872221188085009504085209953151988271834705595840161543794216784997536292264865749678056305639097476011977625122287979056523642248385630242302775987707694889905400118487968898212526025695977174129381446509154631427881289753825685740378020501635763550877328159190908974415119260332402661897098706576178370861983853692942475871620163020355334522986582784611459865921907464432510884570345728909063331112285006079161200947968684285153495284128048907404683024216515624490472157342740312158726420561035640607352806269911722194432781783482863729555364786500294537371935711593269754459518224071359080581901379091912048054692055835827671548127688691001006768723604280205028332475618606020793987849511223031080008706954124241687063431680720734000765308094582471475087285513929023805443762869116229068811259043242190186541234979629278647847489570741552996012442410206034420816768772611928336862245298934408650820406048642858434607564088108179334271229723617702046525885655441728321883058322904624430372347003501712556051292009135298397268412190802460918294576510164357648474652496869792791534637560364149224564427639787371599587425899731771976005100279496816441648232133813778233926075818086987063647798353848943806558185074163025948622043247144650984972124502015041342569934988785657605798742793446410061231158010369573404331194836197253112855040080179496168313761967814602001052543016373100911204319637288082561077931882175232175945507663042735824260817866084146301840663986345159958484695559948688047396495200007845530950759143210466202879510003557288153924291732468976160364630185270126230046298429854128511667842591050305374804725630417829726789807329752151504056596902662236657045287039778560220039615624699689552054136089791163277751075626579908394907087495276339451781276409959517478957385176005097907879536298999859231248398182590542500994196954027140315714659381925848303436755654164458121219010713111095023284510630566036277853601790514022205120614011706038793239209773403686120808882277207374974066113523907981068879356010481222273457386444029707046349519986971311133854968771744960450510289799000849363553094290820549386327053732114516667341277000736267778331869525208864421055329258057961253958415824243873598116292298399441176015008150370276320522371536855558666567102518177742717485906033431527367718392676041403086132890962432564774380890753352993348747206624555117857647502257624161364383158295580757694998846566636045895844367597095419365928152672065846065041527028697378210483293866815077916505496912300860860653916645430978805991023941343665008115718046857081709460218952164732631902528579632499574164534697793900986372332017173655448438030878943396621507685388825767631672659594947296665252975677292163974847532836498865971493933189072722488855355685853653684784534088336513976524541988214312466165074558864039949864041143897375945440880842503490852939573757435275854337233644999482076285154040012608472687334646085519065606469316798315610493896535103734632596852802703869634504707932920896585178281822990852381822681698979392619610272876173587798616076877009045526215479370938544947919956725261578715298983962769368175289367268848430185366964322566503155303907163412847780249877420892284785439215537041898199547731406961035271061120682480203100251768372092232555034078326976665299032523519430294746206330039890067933056213771490962498747866372282714356656723425278071639435845209872953721849469398757964428693984831079866132604460438153637832752234116980114832485103986710856901753732197033712588026535046629714951439401781131594452952732057669730236622358947032258369341849692852826267018093500002677717571900989061419094286278499676416822195336343004211971729472904403824809653778330375873308837105402059670110528724620233283150592620035934600950536764450467792075231637541086382384525788990037837942017276737184141651453217372349303147062435885255803578577993823584890027332492449092981321929943901078591300532532369423329360570836502014256479501491750613307629863833717898550471317837589025733507632883343251039034293302861918675772214921237092178934324338086889104185872775891127852744520033361640294503023436867456215748609205064653735831238579350632219007372861105706240474693610412449855753978589382006057345742333243172537773975609395443687582568598479721912917463378182808034195713315168295157743002379012776090830419246540471565841081683684764936714313678466043772194344543096161133566801288993432988463570081466136069897738122553084446720796215486095593783369136776681609213867429954283525488060767093128835057943694617695937301926873806371522868695207004006779535650768750424603723477709461991631531460079085044589351734510226000800603561378441087628929429128598272988824319483662559806797906539170454893809886117862845389396761583828349913455365635994597303753865602097057554467767305893789385570586124894728974223483638009774001264006732786473805335562091734284375194148994341898497076276529488118353505593915508624720246882939538095950446996498150759466262226199279578816613932645446195833263722648246498361161135222478852150708824124911916799786012204756460307772919675351585464951653319317224785712973329153265230097246740795475099666943418812330799533976283647014506418596790018077068984572278067724668328506762128158770309677710243960425859751965867921302891681877320090185073355763260344859710668529644062139014963834314900917622755852272921605744985977223290383412559580883085830660763276441339088663397978807722697850675226560541125921866133442257451294978169753941610340572817881415465583118886965487294857633442285291492860294994960955175201328811490283517456407807503965906120683049156566720313228650675520178140621114749640744016370322850282749659828650618093510271594578324448825083373469521059796665156471101597956899682714999281039068494093338485463528137174594952425228631991070319674476195816403200802952621863320670534972785154427548651529332891476891344452148024720664556102845337869793890253367667997590936687837709540297951622236302740941811954102679309128343864536407772290415010778150202707004312593606425841246192996545795646675923721891792007876343285102135029463658704127222849614992629410817885056634042926006675730412431561167608852531929006283573811916590149312230396644558963526876740662592607376596714076421856449847476430863738498111034593688387659554495319847626071004868555842442930667719164522294335690536939087706778225109239442789214416759028311389455431710090331163439248449245567441304112163321333501016838654431511583021505229978936726816329958264392164602756957904432914784000185830432069560924127681792251299625859392808593286090291259856090351316612326649596146892381127501139489362871369128033983869739711651293047320977383101854000929754080805021890704624468223767988029638132447024933029308468553739839288449427239682853743341412354796260962669134400486638845143070255841510984881203261930885323530636993789790434848935536303581203353095146304934064112269087761050736570170712939327172683308608582982761027214806114856717173385817477352910902642970376957274948594978903629175659299343781769477291827909534570606312472718442256537015937368905972380820911765926855868050847494829058712485767365781805756104458573179893814565541688251601228685260506933483459294421219003989282531691455575792052983548519300412561528589044319240875084873393985117566418594481058682005885017202900921824244127531804044674554706263319263667944068510171874371453911880209652447402342639810097060113067918121146812207419342827694525687644227519399725496501089908040886499920534853052447523129924186913809678295557721003207065914256895145043086844865545091960318128396356979152521886655533897448791381202927153467726430860549810192613074773428180992767238884516832463958853635962241708567918060340075474686332006431284089372147000034496667256199035113477838625735856242679132552162900002210897467149247216139217974083696650643795007374257605450239211383285286972429741172639374740979183269276440066752488503213221591585134451075415038068792273347471380368346035212681514155150959227147860324691168688289316326889945802357862640445129064169251434753465058263417577991951560449503582385459179794643484056567438843369168131641147551039602551772738218294200909241291005857909763716038904674680247672909639881551156097980292730778323231845283053560688455109380328081068698735327942212654206089088283757152963807318496697254403094293691359622295790104891500097163927429452178440427270232434581520938540139780990647301156437897139993392679183721051257666942990701886724392535588005688657278890354857363110566211762182196933968494213503379652104561675070152263061646375964755718601649980334112896167358648276303778225527239970517063533646104481401151587513258696563718286420090288278169476197561408386001460215598144477798701604046417665955290925518341412831165786499663331821597547987789519940429204266892087377293582772741031478872658167865436858908813327176395848942437412486480017122047954654979698846203959932986270745304648187725988705379819028132384282543293995571685863202744030089664493119835318593003735373021029760938608696940060675156622193642900559813148045406332103853719850278825090931759944147228744288518734795232607458092185966578011026258112522776854428385274139980247902705790117779258212504867534292987104635435233681766013951015632303741515046187509520430195817251776755430618991168559036374414913560359579667326236492943590710570170193732395841578223308920304202757494812889030135509194789367106486537601127096778959447923128244159482760720377068937016217814190880618627973256869244623150677085158722651102322648854229795979905845315138243368246953124640906505190742908113841492418241655055665417977757126432896279192287844002325820524347214392035651012232417865638410839615574761307820924986945818901245321890146091887434171178965891517652265496428443828092566689555767886076984480142096312585691752400624517095899807683105723955226028099299886083855642494600506948414548566019031638672372472787556634100935342878117841270031735868734213040075382356819358842931078695962640049945124697205262647540858341350264652877973610327336735644190848628599451661818301337690296523977931465028793546413841696880501238095519949648184652548506720183600711887206698261629297443719907289294541704331618721842615771592355954634363111791889580323197108432568443174034192987231895894031421944601664727003996795543132223898520423494407100259183532840090027891714375062841218700462333509379245578567672556511485953348267651359262136591393334511641946706069051824084518492192800694999248851126188842374463393799004733730553012058600495707051015503649417364075313096305181526499688172893213923227141552779232974269628643976916891704034863306898801926535604187658940755334047490595380507688086193810194248784644568892137002808671944578396977008605755562549269647532913850235767914714610190260542618386909192570679507928266448933136039577814585880816288777170610677588789686324308313249299142284369839445833883059246162877111361682685960653840603001610603654233991441783086839676392756623018803889752091123124844516053105829127411315730389707311511095785785625875967558837174205329570221788263366722197765697748805931645605324040474001003127565445274405954486590562679731790341300555635243907450943952650078074662453448213600638804954822515123795766358710867494004054477784665572076876543248811076308049481399170134782977749846511215166072640689697631596601113063087572798844635188634799158113553632739169443589870257640789302648257005386878354021056103260537491664115525607765924847261079850474312567844728865141770506474277392380663425327764080784825741979422949553553034494607619678334937033631035272770652085823309853379970179289793790996579498108384075624200201185773342755766992739989160023106740218597287883833238109764742582551459044408081493458228408267848985494818762425245317400651571479301544574625440993812134591179860383010885464955318821321001855900872216920324680580443599344614648750507012540975860553411561288846041001199476635570472685737358964384981470310076411518001654575737159711054956841457496384036422514885584150075262670194581243582065592608658015063931434111187048884076173310185682408879807792595636528025542974228911493024442142336009205024764904442927825550267184602589788972631206022986790271018164585090483282217753195200704932846028807222011029592408321238057989122951017650334749763795684562891571586511404202057649015768807350998337306305280714474707326273165474351966871549900076749883426968670470674471001552111015828498448896645297243886799901811042765573515213275113219549242958795976960092586278326023463368613507312034991951318587993089802016651881825517165682288400056046443190095331483521202210627936110889414477899718102426529318907322776778737726451979536431601745828601008881054341908904556454705761150719955669004816417603044147459115124761595871852537627824103384963443889404725818154447696421123347343406907967514007216141725185131719639253450512322010730303802902779326072761854860908506504862696098029952416744924868977487423304949839414009067857560785485388506673937639410901899716588974021721587725879378903905137511061396626558271533404489530542918519557641676411506172515916107552065612699204535754268632641610490250589448359603823116340713939490059568494113379232690426759843330659039798205615074177835998333732411709676081018234167659653711868084815527470306719679994620698668324176809050409696832104431484622054590920792467303391576108354920281851038533292642709009587327556194258661916367265859115784764993913930433309550163743333288049633043275697375455469130103163005419240029833060809918737303005150548559091474119450722713425257872078479721357025010122519151740124943149366382004514807728348190635184583939036708578852082336989849088999182827173405596082198271758724055939553896698150608989896070522864817535631203801067483010590084787087396023417162740323717723937830636613949506645101523965535225175421441687456167272914650587430389228584486960453422004101782284101855410787474821648289108290252905043527979779808378626532554300155899352155606719724331933556091594075338934448140779777184621766703523136431978319450817154600957261618957857792814409953007786483393061545416653009478087961247528201374042685638711520062528396121558055036384440291894134722618058883822014179900075952977553284953585003756794680543469145846770490627744970029373770829612328520627024078000034943518840638429755913292599319312830877130720225939762508678028604090926083572934338617100363871314657718350568479887647899589329810641570600945131744139429887327010602123587703202906874996677019826352763585853419742872975555737994469428310378769421121040074471917294555634169787796047850760851974026851554535085551481496569585794849921310951291930394828284581594531618011244132069563951745293037414931026991784650052722039324451949658300450001403051514272675625708974904116518898774760720575041880344077356893461428341128867150604344140968385171660199590714974313161220012473958404861207296457603407345625162229264330886260772149333052844223756843808988999628499676303445459477329194285820167539370985463009297495533696411725006704677790693378399252802262357964352120147870256948619990662039085978186444621930457022796370568374035800729249818177384725374801718884223269498438367699221203389038616052019511869150924369820595610639323658469989004386283050566035028631307702124531057957979981848898762826395413381248704670508227714462386896453000528196671395448560790527785690098428795639828030617497149075901627619978986815968464572177664922321052753449943459556492793417372143061866023693049712876337715899049088981266611139435125140607414732337976703942173184590904190328995625408180809710234855919739849071565910394464814605544542727596606329886806529313662585014987008450172529224478172538362623680186959219179963948391353135300777837438441406312994341390164023177054496036980047983020743066184117931290330337566744504325350601060866774206011305943900526087743559188057904223329679463963351887350469247317044605554548231325519870250442610379775730443629847513215322398239967619644049132640416695697310467400449971352828000926912053963013468591329646155513512567389775533538861469783615663641472485435645299118624080486772233765518177931559550245744243845636611351120324229837274162992981103879269765558746415248877973121202779852329934291988506456774483593323336790710670396926981620446216739475472190483447254565113770909708944489048019010095902766958086453889358865568375290465365602342779785189150867390118841386541205613388474035151711420378718471672329100033433806983879177912469343264863789760284459538750107049823135425620873464830743532232460370677296947247972908861667837394712150963703550506398601098513693891290703937816327478926944046825015955345691214033695138851926356741125008952647636006309514630086174410583120059210217056546287627227289046959595251502025874611831783801084494611860226355215661767711193430197338746025034725852989987836879086904026809435372938775918392448188016988230976500204489296982900701822546146569191908607046447089016522035564590268726310469574071683518219119094447439401303611723500302337019317957649640810822505560587747074512419996038787337283964278036719669593543957331683904611574289901352704838430699314306545319439816831572210621592216007665283236497919095006110024908152185054484676284693217766990759708722241814800781533801491925261847284957139693097824282876583743751716189438560942287515796251784866166354348816438377134214645972812105363656661406526904529358829573862911480871236662283445338249645707112689726380450239868283534109083246706641173731095550401499116981271931534863606266886975538380659323445812615447487041307977661467975662014324811406324311508510968961391473934238723831761287046304785500373686006047708610388681275519873353855570263027048596951427268166986692973306796954631365969805958406651685316771215032574692479999583941797563503261762701130099980203412886219580346673894561403583909672277205294612748590757257619501110930114640343160086561926903855732267300358553307589608069879327940833575614997611017049449350326710956111511655873204800690030565961435183014868508673760884618703972652387438698494328194349714477392661310251359548605326108647789133281621005553364983125591054909034345217491490182500169665938548617343785127757535281913216408726318950221233374787967921294735161464918123792149592841443420022287635448578190607025005666276757543592796124456618362665453150525289842364526355687428136403688756530014892406788816691453319671929570191937189142708589240073690823782147825191492845161346185584047396120639573659512561689051167509589464841810228774681335190006691270657565235947202562481852519320577113446645549901219745142955281307529540457498675143099070860502588549923737173022873237191597726475481891284245338298618705816150067898653707286097316754076721744588988198096138981067449741495116548314634542786053036527322459227818110325763596477321874776917014395241907882817207123451148276051517440793002944637910968163287787439552698378708764835643455050919636765483235785773701460462189198803717356143146130581311305743591169910792712393276111857996294931848302338621782355958367817698088604211007549897524613154592731052850210003583620441723119944492951800453841091492581673609671865168561453478399341794868886200333483623033812750814893477211537876697044530842287157492770115218667060004242243191102675068766334597872902708814580744712608291674452210773844875192728954556663750405000263258440598314781199038823595485677136163181122697592756931980266443744027580216427653335507944034752393924423221634521607358622450343735123564351854527528331787999166220291320380657492857983880650117228102019825218119122596731361271122715580097548559006410999582237217642776466473873723333410330108078996280703422085047787271327248410971886957827906431460547678994572493314557998556644310172851174972352508683719995625960232694734885845701031862052376218924566855729623723963397022300940875300634045040831862570531210499664693733143265349226062368767864797395410982319587342452224865406138575469968006693189945529916531689639304521905177521023388806919693041984791031933403228999498762773074629501813119688883260813474772727906425519421139729872684945388432607407255885225486309152274071983173298190784710652045783824840548429795742544178330554165913701792038305405872054348379065431560153219527847137017339166667626416752930451260212531424633045996007492556478263896782168172116268293820687349816261144938437108518049587170241805690132251058992392340243490694360496608019566850114073872387356124971240565380811833678055340448932088063686727081196758964598241766437020115144709074769995207908386079555545489854645643302112888892730113726166304429011461192650600987541120802086786384787325166066836722577061136788579227693697412572066592240580704689872278260556897366167661871539551457513159152554447085655531972496303096389473720022489051733266243312863772144952028699368442992695143643783123691778096069649808956946183315213363320860464986326278150643845970537095796216928368538291573083511407864862143890938866329412750263467648767122137480094096086374278331829438797690611471820037969030793561814105240445052009655122669089925089132848689964327394397177377278388053968271302931011836707523592420350765942571088975515274147274890309064139686184003427694365306930093033068843139367171621348104139745953188228883392056246443935028560296742707809560577233952036435358778285202332355006490849166421542855537924428665478040009230704059144679408031228121444877845133445502721205463426847082542415496553747488885685731221252427530639944979175475694197244276879037468772134849531428710438549649351334976921164932415117948984802615277992091732527501673295886059748085869843618692774925413188004263833049200334725176526834546531653544254030813214403771263845567170752106977812673104303141809314217367364286821982931494346988743896006512018288718422427938615236030021175757472747988519898731139326736187061416169421915854313599836826063160419370476040269651886503577674090034804998186847619345469891358779196900832552616367231451568713795109446273590775374139199685041051062317498805742630591098526910281414134727553259875299819952650617786001162326574530932618319321636918064267046059107927024923570441587043477650087854913762752227887110578140497835827109559882286039469142170554318025059026767884457996431544666739849925372751759930471631580517257348199610799263753610357245281589063137007714254390953894404106587166317773585021444726920430347510253150160733097587655157403413012472832053255023427319216328340344323673685856249003287652167224520344551109338115615453317842734814275884011314350711027809116602977123525525428124158952539142656493363209597513169316033621784624693548337792907942508554770139655663625496507307642904006008453093630335496249379283576495730761080461519811629981322152163115594183056033597678885657670466441234755006079448551515762367795424982450028592747051428666779764244467175898848612053169438123199612704809244978358878236017590443493387476136368535730329256265054237951281674019845465021451676362866536944585773500435567021941526883151959824492992744289890364524499358155088094701742823197587951021732120577870489401285717444761424627802648699224438104749341965505365819831050646997898776320647641347727200016338488510784080408646551804412733508122064972050742769465196679339698881656494383073994572384404614182343554084881190918294422125057982905122238800597747831146654470264440806697881683354782845419355809239023163555935470422178763955254502547924092164687003437906929868960429890195017924542812147150020582212241655373773005656281825449642719024833923573787039632107311712249136733891872607856668679891549728925226107533098423251776573938788557295641720187988065469870850748854517754393292403909043799995184411705974284696831863810630024573342363795500104056322126009057197325334096456266051900663766989054272009751785272758233534788413563024108224274852220859213370998264165011074997652646058767226282055725897437609752427859332892237661483135263103263554821897470347292789632665585223441245648333082413607909853234038662918607610754652340023071853697944251657856758272164786153020561717514252307377331219614683638297428446387052499048898294843216943780753109281280851541325899003065313940359518665655039389578496913823293597265113308571693642525798708974601824239434387164129518330481866348174352042974527544441679707130494171130338568562148466063403575311552242981011098565702618408396848510732055514078601285859518226166481513779075432553521854960340244049312243753069531501417232940006152225512221849309804791438863609300318463467700046654409727297971004465975884935373766530970347968020858226191002608616275896109282768006221106132743027666322690457363660514066331675204443588108323682839045228779747443498001836897830701596666219789763708048395661413676857643278617351979732992900372311675663242271386181703021454375353653875401634254665576297130411822749969085258294093613585722912953961413521253058534147523363604220437408738538767809440375827445854379972361689430406929423451981626948654358122748341260069541778863899442908762942352978009871050454513074456409227654972344388697119432922568225451535187420146788412427512839666254452329813203084750592146234456396731208198907158767167686052042564307575433682060892769389008099853230498536418808500188314619951238373157017934817778539873800079568801185916366911757928178012579696095166850818640678613711290925740696378935741642697244021811841868009806152147922574806676104798371175228008154458856192331631838931380347676343091811170602228269920475227893351817819360665265126915715634328338680036087839068531784219912373048130148835202606220301683656226817202008739105975849978285039413227761574990739942765908487544252510474540729634865257696489287592550310828720291011225008747354281820109012223252413766373527445826609192271813236496389676099904992437432427376209507038664104700945275440228749060725842875571950297546907699699835103235763627959928180904028318696023178277405089364706886213446012662228382188563755245980126314925763856982510700420368929216585173558106608898519027032176785041732895443868127088853867150901178685654367409588293273951078189299173225059483819290752552285628219252269606052773800688882299743158049414168119190582800729838461269535550379698841719627826821909613198372764930105815191734133999644604275485454954329392903502712180146698946326368262494685648431461008426176791838512896213343674932149309124297522322856267895204073231136814958587929476257515437912000672847037948234750978639745072932648345851062366649737284389093375994133731816009204904933236401913391982020122783795744937313391342230990915251710310575086513708422658879212969819137900747177689355096745752752770738148854421997061577790966927125956486785731335046411931422228928240432913004678622976399135280842714063193521325855490994915725997013690899490430438980727316906883306285562963366209284406884124129632316131695005856532686092765199554743873248849064182945521278726320461848657061494493862458999083184458364806467024728201780749621715061650135629192775818831394221015185546293136538056743294273801287508681787644338112567934455928810163387650328155906689459927904181975662290645220829807696195093508493985065351161752799751660616642875334199074475252096537743567934542053204359366198589821502180447510848875648348824794356217481012824628586489978515314802748381897886864258136078040607151431622649159135547349200406952423208813998403432286022244149586887810193710786038759976026781588047090337329573195317791132986037901570973078340807568528585753743960926729111827724435146266053947058362234313026645582707484515774883266150968816355161214176651220035430662327149185914872578087840768344062402273090221689060032114919550277908935040213774979766220000777730767083925034741260509233547383094336808918714204683401805908976347089349824780061378961097292335662920011588266430014846053400052922091273077211097000804767787466735411904085778813386046282133376329723894269294921483000343723383533977055555611678810433690339571123529685525047822230470864435333520990623389660760723711462663164732112117967870957198093426997286614813923919175884148402424901259322428712866363762932235420112000811109843420106377789794970686630940986913787577362623486641739934422101660592506983628959178397081685190362493193457648062148972320695177865487113010552469633890938485312103187335328177601381817275973789814285567665465190380415411926313840686676816897025180360379089358228344021557587898335936613229470948825406339540260425043895281324975688955448549164586285878426313567212586025782535605369554719595550192049314287369060567593854510740065678751170138465185068578160828579930898316881052245041631616381087301049727774334313526314828731860264177769180590582591263309941172265689965209249254361529155222398352112953058246602464908210796273649307630822454818400865773804563743449580764395067869493351468929427396703725457473575042655155061620733058562711189091512413237970974640561431080262846097994448667929314457996567861907717814358122556003463138635115006080869838895900730441317883619616403526328109723760751685669341292739001527472514181181856798782149429409499270426729979455896852462653997431673797358421000713905760725356419826982672386353935154259779671541376350906569571097694898667963449384310186154491998933569294550730854517754416449836774396014110276620645874884689964885812226623526151216976129305939667985879269387759588564501993135116031320138632945910297394677324158733093642291959774645546375242611299476901367376106706519746737725282478617281603592802825344090785326188118030205115318416086942287810201301490988594610891102618735818021524184855243209847384145204894736680306352495854141648125029120530602406589962234845520971069761190623115208156552055122973369395492445966937674549253014659373860104067734548451140838957841259897372512403494953436098212765985831229267869979054178971347440971054600536198102886645641566178129642349935475023200302859274109403887581971850351496462629840264588158129263112727423332098489253044911812573190802048858032249575204245713419361488392289892080304368344951233678357573671093805424634050963981593830657399274056778172045352637564452632308838454825017474386385331690022487124263348975380787199289643391305572811483371018625810517754336879819355864449065386751398671224289137662706293232052863694690692430957034864536847147720334771800566884668189155960750977841972150582628096055316903759153214333996034124875790174626554918147931259904238872656743098758284253006669391940917566262962715961627592563769002731482834322656066401422303761511065626820239726917367535594395092694325752430771393982313952194557766845790859564672552305169774893503854871789558971701489672113261525951543074950513633406242984713071327954702788543154950031684739994016097910376351929883679510656615323088291666574171489940904875064436054502246434092012407598541504054082378852420688147320274473990761436048627620160883730991345816378401174602736704868026832922346731941704418746418704964144827548590483366262686005212190422307290524175528601363380166803940538643627929411791298996368620368565752907542046485786801266380544520171585921068744699090360875663893894061686682174095201563084197599521830434588343559704840010326315490125437005468670120420892851674723844116491488401176234941516441961044976861350755393048831271088616006563628394104138991943097042127479294870988838501813524060694523955209637726503896678402496453885913163858343055292087549503128004462652753327359797335976797113192295647092266855138942784946807632524042936254199546943010436164335067202677949043342893571477384559382777326335805302315540570938170878694875592348900742018911913090337710271437228955288198919591330960427010755956546065372066063454295526093743536735770808360647412512280720842388154217781966719710542148931638971392271280374948310520051408210156766398698147492015208767305662023696766965333478521048918604744538860391606490372692073040470586431754238217544583442644607525290578903021026190094659727922749547860058175363881231178559795516671955637136971562772950580613080008998166037280250591654217097144350821003354267282058719882303366667687814115637983221739150210781586263978564217525000399626879631626371021252854437325108568553292643777825964446817161536265480823809525258649753713193705843991073541023504080823919484836729676046312516876118017010103034981202822264233718228565558070497243273090435122426386461447791769847624757294260280488583467398626917099565708571135226754392614557339111732753722256583283322517338085916573682186890482164103790517569381687602157546228819437815589590345685399413205600133675355350669985273700720511478182270542724275587025915525615992685285062011950861673886111474533136761285897300589524379340099958218234491840936881829706496512653146939936314367806077736988406210280291078767989669787571153793057211356760125828660041397983542906316736610734603413000197807888521739593166082518081264539824938084958576708379485841245744827439631464392875157502172913203418320027493911625181226762707188906706144658008559155288661272468063668947336542692304421842090729774244561990431475865235220383510016518641397018940285310249956490380962022051650914314546143918784621315949589858016918307164909365170272070694120326574536209145021622521826142987911213350917877142459905548374817802116319197967080719869545002834615414847308524298716857457348892043013287698788941135154138063371514108738965703316650198239418874005822091967456668185142975533852515717681185366275748487730842311307618655620041947877056627566676434522468015611438364802891037445490185403091170938390095103985837066336507113935710653282974119775420095715547080940218482904039386542497737008845016790639275660639452765051459111180677658634948984254837975930776609895883038534500017264807932320940955169963532968930342128044025308876238838709263088011963800662887847159600933854304069356482624736941780080001077676707910718146883096252310831913138757719610483501692794460699621177176025356568718028499788302729624931484829552952005663892714111025562365464354250948668015715875338485323054414718137560414332537442491882348585680583179052875599435901904442701224911344484424297740648414324561082958876045508547823540687860606828255589784049797058373986923657429992754144780165347544696711477245428522733983145479153111075331390849427698099163629596725412877603762912865018773723213399366899599722400156530252917860315229351437072908422295244344045901181323759834585630374983674744252793089102462344601338491538345135754416874502755195839234519905227870124265931084912634132930936350066161255599018528804219787033285918052800980265759136536552873649574955664869944147132794276410845369973524758480638350235166277583551214627362304539184818334710025258952646371303293791086576392255843246553539084195534530599103372682319461095210478574575545742701965248803862135639365940445098279958372869560950534164918010554391491013246003548531894213222245847385195415779377679733381360218455406912578345947485634913381811967970768125165441985397994457550578384387710438058621855895462921710849643101856490102586290039890889044271058472024542542653282806659340496816338370435929163612872390830213886462643439638226160975009372568955835641432496346398656578955025783591073626560795368438342488290811819223091839872136008071850034996222220636542159478907207256394235334203987643587788713577689388482867817059092093063973707106701041191333283863083345032761210986152978802758457348823265124152549101651597788976246605425294882994814661123368632317123263216130880158731336135021419263689281061560385037952804453000677273904285123579303259438693445342998547738112229875056073921579709299665857377249944436385468976686465613788854448078239284912655159861639415857109535669282763574178670084240402927406685614688042668716922018501814032076511620010955144768251699584728361119848459771302000952147931228904400328683306270275790270587340970840481135100476335279527486076584416206812699525182072059075207054930407863975748512430141818134779406661121420774878002009318640945331915623133270567883590253197114718757309461940639974718612981590683090791233729164687215121719906112722410910341884999348439898691268945121326768398651670297320310797054190104943537435426839744792830402261458263132328278396265757864151173706814384909299030050520908730839960847721296936773794037660740293606694374805187296192238338548703005906922558459579349142862776718480365846054080063661073262052184558590800214640978509349719995492938627615532697287205611304719617651641322956424241870293145241346285146092787831941039700720544801742472360440192476032144622634056577783173347311022086027261727576851569414061058283682522160089262371010117200517257319039642410857034244549154819281807263894220786405778284621564938240675070392536598962929595532812990724478309475112320198611160661694578719349225768051587364642464094930928047548875034029730690413226651004037926454289921728461393889763876476441359055967443161951061601980683412911138538913059595574904092418971230988933216015091274292604700977500996740100182418480056761667657535325119739028675035271396994975816000832225768419572448016115672189487097684094062899072264908070042525427846001703489402571553780252375113270240506425917009160389534595298645671932012622840057892490649443564502831922217189301643855783529656910290300512179184659671981928898060800886407259471382784611690077040917697782859799984577559610618915370979362705516874861628674259576942627281686219887128004619834589110103233623412748715756385170828769955602446020023713369208253850348568748663582240088477142446979090253531458887789723733396722884971637931393149969352531912819204660828299418109860331994384606794501989034706852643709773256619986485683856725930805988448153415251785538026252245713928553106340044863164220867911794829029375064849554723684700477366311716109986267052838412410466999499836491394572168694078241649139309260609663795931371325033191444395634771423334089014636249313794973091033770086814000708822912074259587102227462318760523153986390880822097825639196443924219687407020855946118791934820642174455841953351830204143710803462831524904353562948998422887182036787649006677866388742665334281853185963927592302654385076371227071610890694776062080720497266186655078015650097484378006753866884742705905551735123996648963090116387290483630282140553858332909127716388165544895883423211171667542782941610687697358084298301422468220724586711262505423566516876001214301028457949778021258835026976611304222124774211944201484775560768124568090097465224901294939369326603409403813678866691548654800319071236518361219533844281887130634590863232532622313042568964442692813772316939079122762206837314082717888288655285115031854440405989489037257282123081068143699541620988427391482737450255226606409990971978372345005987512596405310617155986356335891869980310034519622755125599761988799665266614837147279848570599693891660568108344933903284275367440861483177733254529236465890951805674892685132727899568688019780385087985463926348203986671438294501705627110200680946284177972768017838081112972018760198041451684084337108146311726566935320204724461740453418691180689759421038489613396363830632121157802959716886581366291048599626644126507048614306973446988720528190523769487148362791278991901225053744333538283697504719369012740569452207299092264004786876191016165756336141158675858714084048121327624947980117734699915264991579837167782625107234024908735514947106749475390308080444393930302186305134402052465083720564551059035649183625935091605421223153556747446260678972000610262667274857727166350663822309358586321826060737039467023962922712377017495667708193072398250714585681983442183133212724810595099417902220314838793919040832917703700742620618611480091139888812472263648401059992071737960232192450285808203525232196976113498590222335967562949528509475925774008115933549771066803756974313902749910350742054692578575042379134909304497451763706668816314658772865038311688235759780515895356678602197989638540482055131892162151825535991331930000099441030119267108264021268304509219800997845971497884281791655558504014663347993521831710651548582409811723894062165287296881478606706085336004712657112056562512638495491208482607513084319032526827164035443565316407994109409015475724650707011928657974066019982800923587941967220557870678471412910359146820811667801548543546982770376543967629944084243857308030793686415140560631762727542119624054927648570720682627662103330617908169091176569404016608096335443215973129919515160125698872506753995956597742853372596176750660488574015486525250001353266370977699253195643514890397524793866636811344866774454268235460316923772163590124966352325040934135500117515161877300790884131217279734934218475560952907802079777463953912527616931909375251589470166545891274623602896139337653900277570557568485754165211649436546960660176309898721558167569807481197267781103460781726934251787939492396051234052372228411390916381612816255988289298049903769375146996953091236745236143857263552122262023148390169200950960708465456509545301403210759936126994044258603266899881237620515202410905448773783720284423105450275750931255409874490458577330229021493888269089656077505730414483779373916604694609711173542595151310088240733461442946550895884166829224094679138204518351517356015973144004886251958195306378323467974446285336161293935280604308696865490516241471025229490827890492910733192509291267274475029986615635171320352325049914568363143534471254592532735014236211767716073949107109795443776798398465895369082467194550452178847622824607522859293335074394247607354970832440889473635290571141553038350469063280335672850158059793485773751863654678976839620251095694741389192860638016227886545949118925789446023819586990501674982353412255969135252101171798706730742742019380014383119934371772560663115734042454741779207500081205354502639191901433427058937746485127839141650249464672434006736869397217429430395308496413883129639614523270585683685926659701113939910237527013097148531668897629618049571418334802805605107753747768196982775747426742271549534277602890942104962745517960802299534567054797878419849273792748617701189439778006147612177175226935094533142382015593561586856188715343756099154125837012822796993062547899326197361334424561141848303282529296922165018809978992618068494245901555064298621419551755358627381848674904228541446349819743176469165629707767428574471743900109523852584781408577625689417615611499499267303860905102603180902878618248852030471474974535092052094253510714258185098439587713288145841409090706807558624638732598166032589876916505390776000730167074575719258402351512306705068594746529913412871590963504228166235428741787513337775682006291925209349733345231693297626218773489077883039309328922486987455357099465444131619508707072088487587770605894548598782343280711082040653355751519302168523770911273643929874903392930116688114811787150106842651448271347088070404490976397238999802295301556851047237164080396577307752638603564826496688163489084952088264371173454244607382533952045071071060971710193928997975111665915079414152669110287588774272690591108126637128132370045628828823420167726468953372033724032221515608947859524212530601386230154715328478474236559339174284573393402247044031043060400305866927977169532374405287202403656028357070246356649110672071959108998634248769365476849289897301939505156812007842624619327141502376544310897657410963206800107995187430136033761902581390136775067287061742845491805523078424973889815246713756586069613139264291189842791353665499697410805949341023404002213153875155267651964276876514653197652476520619370806237330028249743962879152875227428139108975910651696415389000309628526151679176143862131904815577735190220800186238763928506319259055923767147377488366607173857546692099085291129605391890029032767951119694581721869313241991181238080755005546039897071043475298131655488244189485178924866067301475973663226177506254917803642597149833687284630520132726851682544153047354623208303080550004069328468608723208850093641603022625665908925112486294949866728430042376430933825849364671397208229094835056541877114013558724735337340391159082390091168636591162237568627318601257256348115404112828178425225602361045151175331265373188394157220950762246362889388219246959990361653835938624749092358728977142496691790764115744040066096254650031631929610999746757020496275526000300911041209222826426072397487948990283357723689904152825906218831272734195940941752175520679261918808436664468455255540722220490052815936973791957703305084920571381575484741958159406117722936470371022397956936327992183043599075451350731001368516631700621413810880365079184731270352197618103699820647010234189556681643312934289062091647276308089530052563014850939015733936360302394795485074947068006448172332373794252782475526300447560087069380889335003229369589002172269874626302851632119643051950160670502515856253264975064183671484647188414582063183953533208799190925073672104331890788475546634615264493427850361270008036728270296426372523820940677126334834491855479409690907574675575887782193313062652464739491901805977256809852310958354786519341088759188116249552130009727997776556631203320970240552694556507429056313983383978281356050611540632977058924324928030472378295008624200434047235484412492259290404082088063822620520780866902566937364771642535491407981306446323112970223534975902211065118355416283553158697941770459193534003940945892916054605301803853910555766427304879091007414941665728557740679695315432974426354017960219103814900959511722266078250726349539769654829114280870125826116478506311989018912553900730938681696551459692577500609603408768427462152163340898745645168614996904033409053443265573949182636436832136370399445233099421883679293760640482747876432631858736862477087770873421804558768684588392648125484900296267410131703730197882496671376514890069577583830564425647385842484580277600616788735912682409786621618686800326909582679239754108753507122065802260529476048006522428968165691730687685007825002976724024600134521907205709713826999749112430477772443906919749499015966255109816893613508578352926136056845103346689326313401103688640165650061334697394120372622249313722731159433858257160711679572159494593015284871451180036483840289755855024910709447777920651535871456027724475778905274123320423051247040141291402186559286045104496055302305144590610640325734435492381298607624404664892629955132332528298514473057059012602168122991938607890511701772287166576948090275097304204040334159335942178693177205500469683027162991685312005006355945465780896253489911545697993358479216087259539898515924011255823336970690292069420145505892151594112904747877613916292917179037782839428182420086599670210984614645141495600431420618558105719153824734062972301250724644142632637989558690005921129969457631968479367969212819810943651469646660251142781208757231864634539523704880207311498343047697587051787267770128532585611168376478720534977109792571328982085759065186824164834227757447866900870069395621497297352649198948766804690724819356318128496107403741947330100654473980030575730892712158804976930841667048336498248769764127325863246769712353134983111830478760235311355525678191193236383881360886680959334400097341493394719188262997685740796909398764232715121761761129446218485373327788703646968099297492657906000237717041134770886731095416792517337733346629782936233731315672748202722968539646369442892592742615966653938551706136516718225023288815897842016414465412272005971387122694863725723786299449988213158349916751827051288358354873914456152967639136092768090540517097897368703134042740037243887518902674952766407872393296609127467226401907424700952420990012233839933613828998362979535623604234827966944201361672978205369510828504670436854683441327273088744627383449015214895836723321181981944952279590376093484591325891905432208097184261793450409531373568815383394081804326834560976313146545298937843216483735113918053457270741369820969732491998234460558824060545915781024946476983819394501902478994429337620241139516494310493320789288312784620789240118217614849193625352532484952604631081759415022886609150491266348081590350046956914922503147794846982758875766468931553517790309797671045721213322262542203630485047558812237565094861067924530156881327555571547125986229893907247800530776416583601024191804841666271036795976415236570822246662792496598968895426907429762251037132886063773793259824802540501466958002364262785620916659828394508804468941793998564223971127351193279173848301987901057966009348944285871910691660160562743776890217075265231650953785839579692712514821382522127106238821102165514483261864725062484572097564863424607907397496950404180020587556188326109284667327211656707242553309905602884151882897368538892627430671295188635018710155552837986850880172665476871193153272252362126590101237436562905905442003835491494052898028857491356400114789163611096111948323297611814587991860672353855945735442395942902551560355983170864174435106757854451347725423320846543350641886677107709522934323728877263806975266542043999437321348299188029358465113131792623329896095450224944092342630799882524901994736242778958373012730787145491300582695954924841235141045480499724187565058926957055831348086991668022152389550386856927397368976586898731896720565352296856157250520470648380144611384617821378155935756194874602068543216591968412687177759227946881266071425371841320582384257965086462761658354872364029505085507252379085471295391399485754905028866286938650805181786217085362392817395888349856380461876942633463257375844391573910378303141530863618129654054353189195921363546187200595453811835617017513001678265487903211250468279141887757430339209970104479371416707689009678518047218095276427830142075316403319117845851998665189947518017647708167762456068754567114375098109055658752632647750689242157761535544950041281149847211323829269515049547846316466762901089801675267271031538292071066098578512994482123780330704960360331813881013764256727418281970142865304113494768475837634730814761356367622698522741815089081596766627367450761455486601109926992236225829156267761190730045880635244398287119525928519091191492385645019008203703283790798829039261936715521108285860432408498913349995674159731655020589642886901885530378894298961221460051009528889585982611189712039468916615270304117513728087917146069818761175158806255566540029179168910323548811838156189281279685839341895754165434215359142820680164141907432753449327572660733162939202840430646626335179525319385689393963770552591815610715866377751771712227252655026363086870307630077360832931239401714535176043620938446975874524915888804376647113379565401413725266859313220938607035667784149737924440568463824602193335903569400184094963418732728598604610305165391893406249644514371514606856993853587143234826944144629108421724202300059239073881543138214685955725241994209135848417356697395447155421826176105871569043553906057975556492431679849700275152762870088674561171586978314236324452572083704000976971087839721217174105000401384602273830380351433119109586207887703346416565661338397032336916356995572819788361102899076382124477329720268571111378453987334247539295269195492868822071207428978480711339341745149655631833102161943044931296468483081834303707782583872309880777394165541226269167620650093965096296052264476838440060053923012651216348341093894226049654434171425537965568826832011482411086606196990640553369622156559583855974126602899903928190126410643731659314680360608796964812525553437277786789055587000278268000216075978961870922223488599622158553804536962510619592196058460620160320882742299983948724641439964447415758222326275751171660281799183038571754534359280766164125762573498301441504356877919017440845679596289590124730605644362853198580057258560920532974521596466476340501406576767475554588446948169895116850375834639724619839404984363638457199978968473253310745215494723704583634713653092184721011971701422771649988475474553670492455351930043586705345407270054303451392397739108273022096661685418124676333031537566730885237873006000402645216263559545997665876048600618518488408884066480396985657957062247373291019424010684669231473093301125909226498869716097130516560675331845709114058522604774229998489858369216484616263725344208680820527495419393930726831653767538993085052004149672235418788807292920835015886187716632038324841579150387115487710480880048887036747278441130494816754300933531075679126084918202751082862479246844886777362418710405811158509294193196037844210009320999507130306883707342081868422805365059141634266981329920001086586964933718530930093961342872376729243952967821721858175582068042440388273828947509228510661554819595350733925743271433333130454254984015443133738625035571400847686062078816877011518433394421142865779072688692394470207426641093798335507046452095007632445903564422802783086503424136838362256041195961876655371350088174098668187712576628867198511620539302700856637698231371470885749253537982028520851561107134381156069563355860151941136339255803121375251905660031266985370063726240079682795855997311552143034273564306917507745838774245007088703526728460329293452934583835496855342631339687160197608983529163990421200047009716452180055612994505672767347893754924361256109740161298750140465946916507530737583092787561457842535180998920944864659208549412481805026028694892114801551923132641497482869271799047543268685659555460407911044746871320726883698159589247025045546136498860763267546142100398384181931654442761410735022289477071463446813973877879605017696367230329666360893455903968138210266983418221305537406677314559488790763428539006151775208971887401608529943015483359238604702174697050482440224469528672798244181412988482669732756625538770459377301288114561787215807233552156081953106123533599719305833287156725289233306081932269988457058262194645578506121212774987004549815485180174230610114989279738959108104242807521338860984859777269358887982563548705734405491204581593679184178797087449250230951359990764328605371971712409063925525701896795582110800690763337766027762027065977989757754438930116991892568966529165068090207684296035178050054245124985645692652436203998615573278551616740123989265347741591011903999023552151565945058183461677780480178872433081968666385748845213022190866126494251201124637419376314303412762955034539612457076864470455855298564937977027058387201054176810150244538107180301601654905418931264818179659547467159047910636158253119568830578139542987883207657772047329898796331426761854044863086401641834287720013818429840390974310604136589945555117095318419684802060195553629243848744171807891011965577449116761107610234722667359847324924212792311494747902783564762029345458917677670086517306451477205733970749684184463464966737541456001681208501561098166736921733593851567544118119417881950624167416728977968632722659903032358150467344004875156070508570459362491686888263445762597547246057472893128363230804056453994208739823310232878763141131939988919122255525287604924953898230249681003087827942557169079039134142715227294343863017058059638786588312811746603560295805885797727378994294286394683364575506839668482639039855522516492167968028387669689801613342666541063083085114268496901587430063389215373204051135710734952774710592486025889374043469437624426719713925165056165496539413728705613895431976879953872136172436534487441583548069736968505565367930501618353893526928417773812381111264233087624602564912376216900766386026262248849498812581415157400183712228950372307666031076233473688843124090360627475765942968677843424406928408234406194523502649620952309278637090155178314358168695387102897766391348359550055884448682102523208660917505347324944643743489208381083563076122175486590203716207562816926423516803969820308136393451158602903522549509684772533097942364331440462152092992727522511077335663507549079195672956136259159931166768510696049511022646831031410154974703702629565130273675281927488767503767632104832920887477894294930967956576748886429218710377481088317377326319368576910310198167051027763599332654245951769954061740118703605083082200950930632122385707866480844926263295471350875415782687396805396430850228067012220457439727950223603265790545994048804476095977314914314901086720769783954667702268924910566852141812041367300939400146829483621066401756052707559497676309887047645683710180772899972160689804973282649267060917788211284626106402581391478798109023363208443710377306187275778518835797036902774389158106274072467032909157211624886597251401115394458194251236306798888466166174727995329421763469950805016461957081164094188746522523242532354761839371843771159374533263846553637720002949792203560274475098642850540190463111564437622529667034610073827170744130418879345968795480872729517073672959625348657188940779729024432444719385494150783840007807774044396242648652366458386971324801021893111215463425563669070310278952735578096714477848346149268294215166465421574583325906754453409312907736003384043584287543007542300276095990586562007981367703654334848473349867212144568812926258529971031747469662414326633155455522040443595502275056685926698671124836654659427204645290394136818900357268865427848255403234506375806756562309240373851369745437426419740699525784907749385391289040721855397962094135236461545604985646158383470606955380563691684976095547093326541744347566504974793652131820828035516900173703902404075589085081410285002646471615656942038197184908924621973183375231522543088689058073956025811504168262045705517507119419617250138442021301524141535041724344817575659706285546470098600862549745217011280862796581188982104051242621862930284464604409665605270509392982757719889052298186240390601259252569060278751650264776128234128873893283289704719982430265099145023574570862568511813139865854367025868741035581660469532606526336546186605564326579216850794039856913268381982186202428369388905295704244285074610347688029721830893594029610500170917692637275350171164172873560866467789881067404560563582737601190013007931827117794121667326501696567386622558472745837614372184852918423148270960124263729760991603592085444724237647379799282065199187725714431495811421024294635435793491327739647959640804741262828229948223963858229847653790781319841846139883318228317735879472471533109154311148686369475099508674636651927019878404367255105257269262413455947842621394054054804432978797022394571657153668036488216602772453509864819547342679699654405334291051211772620217784501280041155137659734174772249512499780177977803347148159386986599791253415948888627214395562914502265202482639370973855189153176207263892713774128827208589636283016869561288753252654038917745784151406019245350696072121399515741418433018343842273211284180912586286824628636280717501459727346020884254728444969624891098433911499814896208971616854340623225595017492175648789963623465150244070616656281967945762476916118631923672648840663100967313683087816505605026618419208334346245514861164233750306759008472545038844516765385811188124508428384887588601038358272406082546923558090033205499607591028889185387156612278955511149870945119964057549478691477880432217247177013041298598780516602515429361165115845198317063916714519425940803597317033931984064481804193570841472111506781383344077056609117198329785638071026662488950030151795790870781304683253206518147236137460682337988410368100299229734207734754498357987171724875004226074106533199853659673773027112040468321033446996922850329912141946832477949057392705263284216270156829979415548936460371925328011408782307311061420373601912109654283702631177365964626857918736171644491626135261081510933313410230990030159379145427438512045586105854999154095574299568147779099854209254401650217284979693142546847946579051920760604741830919034095723242576828718150050259993428865791947416598237402178110260426259150841969368631485476880818943598463657614040383011603081387687272174159805631710773273655901183987661780056271774751249176422717192603144940651814254047843627422431228113695723415276130918359410211050008354084856553482031609768977194114240865808702532590895607362283616178762011730718494927852332731619690094284931226183012838804043604681245661884625273133322537804323347048258790413409971048383203755231861854944269351401956667196374929318969195978964081154488540030333587308559819917263703589608949139306385792148453116544240544425364064720456444255497230950401564576943737646645160961762821888399928587082886576286366599047543019629563937186930704069060283663848660502658672808892971674191123316502482899181063256837195208254161092425147273059729221707030306849412938942026745390685309501627207066763405211462916084926745960732789836933868935938882173250917424702214119978480944696022587054046140095603672340401139745485561614191880405813281039974179140143683609899709242638722129734116292376155777991547682252533401178885023360292491444003590140112764589561254422691622241965504205374378385313552608715209955362686820615007175368749394271846098201782282629558268043032088481778208701369719590866140249768884986925636519396975283317692133893737717644934009478935178122114070253770879640411163769316716181961657221814356890553431585374935119468833998025642555424445556710251170514016175130902903902210702011899039478118763448345600740539349029392107143216086638894110781230390495286222873127483526504716574176196841767420344777216710142495243679097578360327173197939509634893729300173203104167811291548060194692185278113520059851994460933140504869967161399256646818746713084501712733036058519999103165982978812539456703422350699331659069773334001501815376980636648321336764650302502126655142163747942424301683272173395099056431640942644228050418236667277846450249108294034136677780121177127053676382394811066056997662526144535677587803463334544573190806528163724678840511252316561242445872217558210357022412476958592920455818242472854432343940206928792067169352787457540044426141253088464705659013501118754619674872769332426498056141630375754501123020267557185025788972598932641105418227071371325902065106631422904450447230261178161718219659980978271745910718825412554390343212005966677763362663329978199101835261098661336059134189980188781428362695748140454183572914193509121433176892513190206360695985905019375322770268237367198048585510676756738571924030100314537803742249670079757802968977475993400727514833842934001197682170403135527230892836107765754980453846815886855710703726839764624847614649897544468194933493330867026418820513656945929989350529769775689808841951051317092358060119497797835378788087225868384582991447286237912436509698744738129741737509193219767023428634674826557626573212266708764609391135285190633574173281674826136590059509077420499668563404115121555710124062263653590388249152377451080417929179217813512601704913691606853950167660496597262595784529648197917570994116579762170220777234016855298667479723430143705670522764574842415564235048209820007220173547465896718902816557763840174059549016425973643385561558204798721442156871812969780450492345970494556589191105228136455378116577321337142404829807350651063740870545494164612029560967747980962777688235057051415365310998359176978934302484809575343973354228441694063786715634149444032705789195856701482934137281404192178597333525114849048881628734507497637449912393771414549087442916440566508662077161393309097877288050269288880588934638178940182264711786345196902030163399871915309216977082833396816351771676327797075912099163005364251504813744317586057923928571422379939967035742881507769101470254346753342959112327224775611780446802234368307546302480915991250479589064639831415569270209125602497008317458822287177222576750223769142748118136233738839235203604013969983800361384615128100941589812653216296238356078035078088192733992658699415699488873152296780632063709170848465858633486399390122707830348396715761492582184591519092943524457155047971205374878871295203854746470079688247135876171978763403032178071406929868429346298126947315686586751429174397057161163266616999891373687283972681885939878526341382482623453090751252153059431896317420039786511099000654921971013574160216884245349630584247139691496038193962551611526836026445905342520873088981196884653066203926278197199330266042358152560684157690071585043839415485640858188018814143254057618825844562191070953707254044087907399162304250489156097873909713111649034219843112646220404167984060323852611248547121579814860347997916216579224521128842700523850559247589125959854695997213082557447297056983895694682205099593267857587764593350845912417082426169224992538962275897897995420128207560828310958904933998592020210751852364435591718728002676016523160227133613560041264348046289937752279662812882060759217249054050181829092096603076137943082041744384833420546252811365578998057060647583590630457631177333833730549294968610323616681054111299399427052161827836614205971700931426394111165722136882039054708016928550973007431704699054368824780124489837554362236767360329448665992495249372954719185882856949759213981447053006984503664885195323699292070654850113773890257538693458927056453838658511508689217911211688974003485606356743439123155006548103869383172263560502362124836888358123412268206519759787253205966366046949142123056003496392692954631677016714550186320116103964113610996963804387830058061414416462937859879492006161032791078681613090540220009380319522738239583313669496464189923576595071090640441015878120515418684521877588986762349663803443169143169546129216935897186112039028022025193695990120755702864196449692595938981264138902983189553722101603623981519868410937557476271856835432574446963905679129197313248319881260009256291567630493609392072051679098661897533616804993009877888171867467130754183271617658597340066371228029838117993466045834397626488681347290436723925136014773392138197897433337595923490216985064674263087980119860019974232718490461875600006467855116586328741664791028998621682666954320609532319840461210592228070688294179506714409063938127599601711477373095616382476917619770242524339330225261609824027808238201315989588721584646926861255215628943553224261300159662745546129856512398189633596811337741849027483850391207926859210082970134647005153174829038226097080950156894750191957480515789912404398577024690483208849556169108831187199348504134131152702736707369548418441358408461298519590924412923842918100189086885377547319329130814957217297836988438438021367883891129185530836997118183491103575195131178662242233663013173986786512998818806084326512015048225714306683461974253619028986524724603630830506900826115755146887282632640690453950858882156852713298881120019593890900007116014395573761958696938884268754351751095992141175134193638177665565962897654200875716262160755405185445494733120793549327182558828905293649401242131835118078161224920099540633212664254497553789369422199128850429370230660193932451827906562777483559878200904216298289010850049062584695238772604648440373620006790945200477461679702724920315970044099818733887711671634256021007613913568934437792585379345547124337560944857227177658089197098499934479736182191650530233021176456363383730123890008903015812215035750693759361734573992470670698591254378694030165053027542243576875590696591854966122466577836937398941746693196572313266694647455851863989733748648934884806974883264743202372586862310809935877717602117404448337297977453113740970182590557157224483233675567645867587094956033577452774890715382090359666978760842706805687846509412819009499232150758899072756277454422119988677345239938354102005137252881458942846535589108807080341210525083906613082980937342152043063270224695731695719224857846991535626820431671087296540875234825350142732839361764799110741608294993407333421408567384186970015424186750408057040880386199021090796586770856843034431024123610305194865050083027873714282369085425048282544209618489006871497278246128474937124227614502438921189842027813515787590015547073558902821326885822920237761108063445607062459477877626337863472727299578379668227945203252052741881672190860674048904894417149076144558200282184855825500482445992063088681743569013244523090696095966808913650299253511376481366951334094825554561941982435158704735148282855226250468819604995328583838855503322109576528053930740237049238028757595853031310595180023409434248705488907568211424360498685446447050203684563075431401552782030015607657331958663196126866641996463160243035165452533192639995059317925036260288098115776906366390802383296965753213383039428079282550843404499947136564555807445381506518263190484334407761897096598659372287709399168054271871387743130275320082045471718892525101136919844168729445915069066162419829168895786705759705792754427618424887267145434301767452731706842236612756827336983788755449865982595619872335876339453389251953929180048915051832064727877725308209683698866585364750477286315866440039200978194493405065170047798856526840957759201380039844081676152829081570484039770805481286694149848015334855594897879077422987427385223876837685810804786848110600274352754089208532717433377767321391785349583424617963210876711505015840393683337190653107063871634785236028201709058925442617011253734081968951096462193755886771142356240225313786504555507123207996041676870536461772093723014237182931056517403214849790400423822603165788039714591770103270434864328032722021327815185249195800340163730995364478973724094398694762872845122316508504950006485546843817271878792992803829986533968838938623555590474058714026298048737346180810310766322718693777857910843753530179963357233924480293511590463981278914688075461485843167104949669196586697557633785889804191125072274725396969298926692592213722685935494024343430848779363224018658421332237876511183176896362444882012490936343588198213640109557361473152155516026822716794466790568667989757604234324286110764513917032847499842508282977948744697990412817385073039094250344203828491741234754351206431183398275483818672872308023654224609848947778623436349930539125566853371101265980671569134741016496049334286958967242606357815751338961543486954897322471063675830687150049957593685864546772709323233177953575515232970645511509215510399200819643095192503487326370375145631230086724140704865759198283152649737634989871319076115279956546972962315919446935996890982562536438925849959694782143344828595233452941188721822144746052745634474721847383524410451193718309321446526991539312304174594998232584759826872068996533566706997900021913343160530558609261602402536512053459409690018033657164477657513146844871124029909198696178301752909185276703155440997392197479420589471668800801195348752748614520210761003632817821112126337288193129467247084903990964760544584853291036984514998447645734404932679719637255636071417902831132454511291411426595633530948779208833768280668310715217252305311700417865963617443890348291719430856189875818634743630542761702337116516189032943117826338953151517386974289069904696461956283895714565917457818391696199999773630010620626037734716909365084226214101504866341572228849285074133443964353950317969028147892273985949126605371217533184784267960733298269289017669078739774944457048908480969140559027868910753980774459439531486180192668887234024364132966416506136457798430388091252437042158070842662512441258813778038327420960421052257949655386327399758392294909322275604413215593887021457291391667047350896505287446835266376782445693304560730557901110924091846030056072749198931059170061470817821262548070595133683397369959752662516105054086858945173393254047893182419361370827135865833885401784379663268222856401273544078358830107265246286918543115428331264309124126499488664723918685460164172470069862564601198700015790238637777230874078517687100988923862412378828451955155763694666225705925757185329081509830454536363013636423902223495622185867040327055177669829992024428287803106525145078407545471553854701272761959658668824170683983644592813028370831812929060000872517460819990003395517413696797467825617651471276121977139610706664734615284603266519422346171492121111346782943916275891561890304472349328488316397941292813854200763400773192385219863704173933344429551830907768614997449984598718152764234693047420001469485042395043731351260611941855333754533393533871434639556592543819747884854473846018048451661150108236184710378569510754490456940429817554546641920922363015331478396878620232147906277771772280252028483758055203243012961496265679827424795041425723224289747938902978563595950543956814117599643883369821699639246903953557527933191689311915159946019980147406116148883374851602958483349098173072718761650130832868916393560281497611198308135831136694186343988622778422868585270135822242573062283565576285549965028929287351415661418448686729894474284048380069520984733648275792403647354843400115646055010439601803232290414686192409182930037503327448718120588457389888088449719192228912610886863969013514394077726328836280799242879586305915597806686190530486118638392116749378568839732157987959836780972217425199352028547898955879683623056159114872228687090326600612149487314364557146743194990798190717391490738884329731543159059811212188292350505862503095494854088916050392882456072342852851139276117643812888650612967740960482322533481479579178164026320993804986354717459501048492788653198144676817726414940346073844550582204656427520775593927874852585873698241251069048021031740734695570601991168902182390454746018298956772134324445786972853570073109322417192521765768753603828999711850717365443269414484539906598115339456975725151725944016795795675576904606683582290908770836271901510712506563404881862281523119389400212062271309279878090556102812938515474757832805552836613492982775641765655607200711370953053992835788948671313919139160501555522645490960409726060721618952502514008994944417707416604532261229520221393804299841026797033244245215531168089997556944603857840276191191014683530547792705296302073929590878290362407419109889871728308950713969006852774415276635483083647520817406447915875496506948913706346523764729962210427707531371939748502142511615156637984647403629895269638246452645299201750240711781040532675390649252275936727437563129380703494611361550262958402788826881085469705438545129808554868613021657099069500075572008171735175563441339764483922252918168318321854072531348411412855769990084174351063089132618899665852783000902348306712149926055788005719773402316743370559537098180451321590644758571071364512652129317974500690730869570738770760791998129314625743909520090287871762920217820801986335207823849517390878656584485028710422596854013901324771444666859297702725582852648261367295889405519659574493988741798526912087227289727884823935522593833197030903696459979019170911035854694958962428905079383709005607161481219254925543755558289039468671597773005014851733843448545284272925815726920710784876387666412567726660821155271219175756849769164297370201349879360907633333204548804764894708796599223299741333450288551747298656664182599147679288517561220583259971165324598600298713806534143524205672519318045141516429885042009255447061262359934619315977995402521362104010273972729862972878426325240071646706007764153110468159243602857538298775275860974043653190295315961828564466237000522719777199268848815625265924845935025114320871413361703618675786336070291994211487465214889151196881486799712799426218553869526001903378803995928457442719553908776981465602073237333030658421882251739489880899335801091679488093193654420560436173242600470368121097755468232101347418771790319059142850178191613930965443535896793041731933514402588158227017177902175716284638571593003106293458412634285385986895728081098601800649866460515879714339223449899168905923179885885332317210639328096027022770692402922561848123998289572660305030322675648272582161495944964253214607780999971806716967295758531196889803999582988259932667316382341089869370059938411764599268753792707916207302868859959728165894097969362490874650826594142282002808673595478655401015622093859993273717962136655185692230980449056408767892840994210036918620333218737759679957082879904879234958214065163813289246874375074545826320583395377938281328952432838229892413551091591969701444937642991712898738259722377585098218076614210188819940203895338018784856525379583548612539060852183687818246038672079194250194503404927383366817998773356962747927169394279395774257866035438366815720650023392993046907496519113082966700049746080297935430966138538038314958202416287845882573268429319479501099642109909049328135734680786489062208161000267171103058927978102595395552047197965467878266435726581561975671469632269582358600677526524007505826222934279813605317937878134673197740385013530916775834896550111082059405064945907530312457629764868960225575259849684954709803466869063637898116056052642310386092129182898217472320964902586258567217763040625571127521543708191831603179556176007741040434775620526312569584612612083320904597023730739386083215738846916002787894291220016549094894688858396359962308009703275009072384036146911492769759067346549438913390239452724585266363704999759416755173258115011955393147103821281560627891754164830083842585569598361195785901896531819727946105068482750259663767983613758688945595571236764657060513052702408543091914251057873937054532665263819095993254967887426757120842394090957416083183316761044525155464724544058198338352696238678058171848716499924606694935738605278290415964781212368159818330527084615789808177649001295101815428755917336347978078846548965557445477060631371801114302899163822365594072903338795894858879699078469424365875895683808362236123966930504985851883537994872195172657060172701185829687334466028655014288120946477399668582331613133534510229881238269368711914439805693439808424180524951456616557008937655009368738664550241281384073469038672462733985518157890215744224113232159665088892653487218553871452002256912621004545439567821171901555489729201678712213987636583969927643901261891794041867484150834602577627052793606528967320523895796019363891149696155996972910789366025884737461086484478363976567986950078563838662096032689793135653735695287738641717422169530699245164356784419188514404984641026259970817105911384189510604541332006921115653604771274212964259522392119942326858818661526970090859954677983214037493755536604467638542885594100079733719600962144868716656561574650323331518355228897530493807237690107244222168016442618397946905985136299393541767922317761072599472951259110275928141269605724465713190455357187915631936719622764237316882221411227223762216069734354189630430392510147498329177041758101134394791523042873312778570357915473991428616460892928058763298311225190066184366106608582501551642800961443794643035019390998124306943729335663447154562860543705454349322788316681608008451963512394799405601723519708483622603884343412703507115445134206242130523906951537955749808114813375662853329439560206410109413823899829846657196436980505097214428438868076669308843951844301453863992099810928007561391008622079522399014578538292804387500690405357986427516476636893277125537929346393194105307233521568729803162746321511246899624685933097727195973212783022540359258347852333319554423610442515688932627500463111868678344093177976399030998273185103557101921133681496393827793388103518229626568344544038342330857972078103799114760728362714902398630056286297198765447453591766893252561727122341437239374414766125292229591332282297429140787547591531545468575953589454955779552001663423992557522170142004180843528208608700369143045224432287773501011959356932436377185077693151341403536390196685978483701638022871834301424679244481144467694214074478519253414205524539949850211855644280465355463751103296451275162539933937457407196259790562361167714523605634974437128913712157726266589588918935982913242515055829367228918237796596139958918890856573550663547818950366682665884936154199951655022338626394948786137062670084004834919812608677743767666601838551050433259655357850910810675729646329886663448237026946454468619400019896989053764841788491277633451475417388937423919220386004535945212503093292941947328094486338904362508180160494811549190194551821478455971976827872094024598501800988103674557996217900883151016993401166039053723636893029138678463914946294758185721374768055327915712438763187338564555855133225793545745355821497728566219218514949826346879035090311408120917492802999764661747097362202855921420883375128258322974915474265920743712006558624199776090199281848953208287316426389572446344799755438999568579170050820279648665184618808959093908126399476753412450551570728063284891394274651922676338199877378784006735137910825582061126208023260516203291248212517427230632811803760570740746630603471295175728673981562634005132698162141485591261114760383326466237440947904646499230711664382316922565933743631007839907486123923236540219322638064815251693651313720752199334421512777121058311994956114906251772865867751951918134746647951583482758770146716721297696543756961357939092718541095938976207699415909938292525237790356162663273168041342091692171134454442021276938077865202706345794926396957332655057952264685504911647563756850071631753814168110760727102843353764072367897436402276541438689974320819423309118470379222249641001218311335893575838812994623269050035610971954588409329115684757449461113582316060904274186082211920921676871219369703731365153674846208677482678062047687042251410147938975013319206561029575922932136984553087747584929575055367676667683190666817258173600700048374282504714167730126811110364641666602341492439028263784429667754658760563634701210325265367490283645202621348978147949253402681949422955171340623981508901728911246973262264041794557693035519152429030125536957778672410320725738288912401364606103096817913325306900908996133118701852075488612460328431259592019233216729987836875761292965353718120744940944876681753719356946295819454206651568923932972204089929822148816967752469721307924600104676819515608529831509626386026626027257843706810382617706126207761070878293004755782604388427621503073538875459854387322387205035649945058174537248999108135811302395363663323067989352798614099197048440576803739421383721050042123451390032594265007030915242859678472376072248866066074621841667557126905993480271600044639982574220472423342434022455910297100446739278892096269280647656534227663110353136668278379972574193098085202296413837878180168793260371488797200797070995253857534901770641811727015902378591327685148507443721932875613666577084803683194499820601995019360392036593423909381150460261821959629207740872200539931866196308394824487001581026614633368280222684788065970248110517960210788551105265608757208421787891415903334442478379399528497638245120276818587989575258720230398634260293725864451812549934808834517898959145090092105964361799602720498596238462247478146967851120990089917395564950532780090808138414807312908568101887313236948034341826521906492278131287293941981510843731712151241534761553634011419976214836058685057998353771796356099757258902142326632369429035142880110979362876004589016197400868399070299584261079851655098187276525950288430596120713023840596262754174630656787162992608905193740081663457054221569553657369123214130558259521500836833642092666008657008051895913261976584837937221648167876539972885189120065328926678426728813507887485201888413434098731057393216955943216210842385798583633407230476646611876281897383610740912434123898533581582037604404120813783109224956719195845871944774719372206337684143088629348553968198680433345786092429154483566520849820051346099519358149930495992577975169120759914207167279592339606270073989027854865813360670669938315770097452679477939065776319741798022570909611646915563331260127185453445142471012679440080994124126155474356648018046991936341164687045373863961608394829572469808142936343693713392711355460240399941730807696238210898348038605869363614201089123536376906153865984262408000298587858354239476948571007477049825714915314390127555084866859241351137354719281914329791379445682624796395807264765288197635484664892399360801457310582498457913118842087981332696321259705862181620496720472474948318864496715088695571339658786919486651716196399125453946458069330462163883253271879937092701113414473203767003317935297654782595087876491286439773671650779312401215049096346588427068366414527763458447211510463962981469847446116553958723363336950518301306328486572453248501462599806374967733642390884075213578300556489924639147220184227868126232534210886138452566383457986869003602935187124560019011487490901212911009037140375885896096439294026860712691282501688679369334325680269844712052392083867009515439856863818725287693813344680212831536784864963142143275408352493648394642257290397625802865822620956177876787655944526299148863926484327427159927669678028187784896953135761566626165765900162287163847708746318848594629681891429216726394945001704015923092346204927959188891486382282654508250619095021401705592680513758802464128524693040077093209322954913768222712063084944083038770488791236560379394642784717253773610591720963539917865347101621183691254440209054701151114924141813706668271949395169209755461870344183893897356156696250124247753552045430133023822213519648177820958102834297219949786918696360875401892690816143994252030184114636326495523382515035570371585154341013941851595834998568941633846235810868979204844233259123613706895787741153146148218765481298255457895174144951724779354947916826869730013998081442508124435450781537895821837792921911551602323067286923069736505841394967459598643846069785789057109934874401943251681855283335546861831681679005462928858582077367501650429936491716526211344039922028277866758430840229249420048129567068303539424341225789085182275177427679710807110729580855203352686430019765545260674817836402149071971073327612172852786366837878363588259981600429471307375413700657212166700421930276393023074263887415963280343618087222714102894333948728866664991637815337724963408556086058157186128162372437154940575192739004357448900818711689498072152313164241369202916117980104395041395400638279502343576926079947447580141733278176967060694169591493392752471347104828111315775313205503744638158876215827028883518075980809449347071382994922929385909657512163021826318758183119155653769526754222612979626533278614085482064607777724506059466724541703507134505462144603741754433374582506215048765705605008597324123048511673131226096635782949605340774256375161112866178807133797107314514974377999778927153155726088018728294996657352395172280480260464225386729981669812961901398897962438143773137358795662051440793538706944098969128578679726676599124039702477538040205211809531117017090050553613681570355285087557704093923077404621989607783920658530057944058449773659157153385947046156520876475962225618619052942865317994453282270352363275378760952647349473478368791111240115951638149559126047308019598281401365765013337697755028983008787067839373054251001361932367079327889289968980718578091260968213262279683431953391102535786128833668329066107172842754779792931241056754595205053508824034717468671495368220347721556628045057940511355549403654005167415890649529870728826370209015997956893908771941480649103884605847390442930305632554676304295088030695708863031079937213425142818339465269882830334168087085303578529538631572850567866733825855946087223313994877231755479271505747907357611149713857495198931969472504880389205787935889340333851210920129443688318155340916562582747529242203495378857527554930364858498164726544813207585266394933708820990638450632649834760194596281171560737503589557680754939719114499796091180881375322592702933999933326504484802229584835201029891127618248398406366761494325397812950212885965437520970926604973598650570345877991137428856000198113083363651849343012280849113779236308341538402255545587397878124902165117456145688393951676741194007392017599514330839262620250325200529061881469867573630182744638206572301902982769574815668904891006194860924989372655687551988865291819508577433424026065935046946738531778209529893142617238378049876468547622171922910043934905971941315348359083873265770780380599939563260877780079076565939183823776660301716870277198235108606125208038627075649647620132666104623944608977004912498777282550262914359457233972874537355671071595001429380288343760103436195915660775073265030760692462247117343635875419308381400857352024771875734775574193241916236924103902969991267589951838009894318053905112710526585826938496336561644434194663341671763491396495426725299828186216505080588114166338809182659587423580081752104287845092332260545530928876448426541610092334949647486131690380177776286877680011454230079474017211323525659476588451983032248307195661821264195633530887432401851538991867971698082760628200349705699294953529680231725819391504777993656740175234751932962268592032765107443614027272158590218281627137817179594770586445918761905706167272753950123877489657877291518548034137899743969018235709470221387963304986488307354778450428802712716451032898169192201172271696549487449820075289789130896046766749469074645488656562465144125163257776774120452143170312104603751825096288452913786260221043107098844964381239157498520998613000942951905883189487913174893460412312827022540442082448006767049498387313255622638608033549918920369313506635190545709994661395862216385466602692191547832022483110633363400841719475052055334940892883275427699653891845443516468486880933147156482411471848210361757844505326680371727718665378797572376126605714402025474164167786244582762010844193655666858801744545229872084866047636078489301434510387654175548486320940898631316513821504473314536743821526516278962874090973729566448073675757320879628745133330080472361435170151496889808472863042499218030142800602361480588804899184554561368328911764930494820916703338123417073326040455466635198078232872289852258196213646710584922210640462242192992341709319089479759888547379179887705091800899574547192431510163023340902944380314349141032158460918935304195572761832990752533062371373635981319436281880245310668150883811092597788885369179220878321089655191607940679728413372292213916845405211066056557986039869860510684689637338508827271442529551985396385092472596777867993924094609660748733082246036566195176230680516278865164231299205812966524829573630854146843200669098691184942392638279829203875150006097233818869406851907155652284651521864348470765330468565850986649461395265224005387928595366235638701181921342572931433075164546681928155303865856828739323777130957539515381848086396023426011573925599461702616490954508781966001997906780746730103106182043827027370859173608353967283547060746793192939508451032986567640085025446218500482965456876229738684157995600628890878419815474906382073595379976126125881289604662232700506036653827321945916268622465790635687204616319228722407068140449690923603980233726514589381712032848377078166191334770866217901712804819809387602021269587460044181802823833778713217829796225081386186018356847788431991498078392471965682456106750592576369040735775559330599968801817963581038654390938453962653123076832268628942244835004353802939072396695684817846729809106902111165094640127190140214407674822615062869456440474481368516648104356857613338970809663908717542608107693150754564478690897857183483206880642807307274782397228057793693276352420186895322521671158512075709282992143385870292674420172795486635026969793141724593907701896014792908832737511143761077544857825088879581834216287760437085244300040714538846345757091849505915188383417431699028385429708044828873978339348551299242681587250780928214043101102495878717103393858290032265068807912600057070394134923798128511141595023718260278613549551008706279222344166713246742181970859028890853612430387716925518297078521276257989967706143181008661421017349467189357145022984680651293888671373209421007163333238344428292028972174576477613922213959763484215834639559508055429661433928071372626633230409224365165937995578018180584601016012522507671247454797602357639679557161804700853938451696795253482040732634963113646462033325414859642454980909144501262200237682678522743273693299241723590060137095460145116965692479350718061670214248520874846418560513016807969249206792519107454796518047142991561950482809224988539761260858011186509430116074986606216876674691899101520589272891832066270493302664741303646506575580390901620306257099793078050569473374385602197257311524613428320360346267081173066596797284629876523064923603320514444432456924914525871925913386779486931539531277052309831390391713886124363630325066118404839023722908723559320037482665382213172731010222876727013781261365142985881551976318122751219021258986441007851679783353899284404915973475963962768567998508476192808877838578525622402438554862890102007654709546157908988350911459129195006696835213130404309762363021893382424521629926389926934814196484981757421242278486866724269398806499824716208957834572657525095308504951365969440148768684614146985452700426387663817863222919745244746390055463449188889208006234233489746619241113642377576303551745258137568133157213905764178753457208772343904810747691997382179776381506642058130765920853214531907442018086919086281967519703960273135092964542567206573310989228026086677705431162667733376325756925283450916720105220590247276563360274843026566519419947348810493349402198147220651052183425048629728997879795788162359667385737560659148146442692280797399751202981584113123608318643394239542884218168533677475676079472229207483743858728883948646124130005395277054628892051425146162887663382090876005391037917182073028647243774650412607859511820725341754504782683415450073112910764484955185628336461327310101678752902267871322242717954955385643241798031680103159221599219104974541677763653301192966501802783013245007200466300783680152288083126999754103510154103103536123997935419640112745406591739523085390822913214770500679991654314805481417227851438719312395772411359557210988896528511354098238537657372557845456027514349201273038790947575437332022263986538924987283252476456632939995751592550074804770902669359880740085231714640600476246342832446980675733865722402737509384118089329017730444807999171921767577318667951695959169010573737228648630592229140883297324373331649219449572467016137059269576463579321104137018885269215309426981678481820308322480139762262219221396184490713667907383911728774953994677031720067476811328139150581237491827176321584753290333589536783314280405344655580668548943120237743383542874877972543984137130779071281136200248335074750490843667243576655102169783496264243438973312100743181073154496548700735326622831131071656618039001636639506360805769342582002397047976131802914342486116887457807713799731939014315025534784412922183903324049645313001941537950414085519314128440265852581171389669594562236911531048371757610509696312011095207165975649207427117871364438122993356733464364388031548300691540406353663662730333627937220902121354288554756603166185359749937360126105744662338265324963914501404971232325996285866166337622194069224926175990321910988706677574073754574055883878318201756635871416943956762439915459522505637312449329269904158134983648846681267255072761796902401355127116701898721130509294334352677298529792074553181981554841438557720888002330450618088878246701930849981959336229525832795766452351916100315437374463346736827373087009870377819796959655764329655105958969344749280708094874270208501300041249042339267840694658013857256206143840733540175724323670036734095921492072675474217089640881995367664068219765122307976971098146680850742800276480002263972628791956906708821389109596680104419634112166572689781767549870494023885330991687312108585046138410051557376709106715017407946376134304809983907114945540026859147165467083530874182136201887732630330433926980180147060613239295739267873616594499529935771155324435199459345292327895737483982233956049189377914395037274708649742262728827178366837263966861372895792032043191713012487579897925608160232680060085629761641726505115250971724869395600670862383425427798344478217426419782348326688972290018408903199881671703222137955508634861307438489262400237582368662128672046271398519982925392456423816319634423044352393603649784758068867746954364390530230304407718817527711561182517193666266770628221525975081514789682887323148495482398470562726490863691594058646648513351797419868184288326360238104604099799556567973609238202205190717171860286685383896065783552532934411316047133717180772631814728938913316092639954852965032362949052202234212809064104214713993879998718104295527382257228170726362874262685997255906802378592513231236849980722220671907443823189298137432579694223227388971762277725464744451027228744451504143095068358041632710658202545306335198707441777084583975680315907816767887226067767177444331538205463728902226892428645132495745938484069206555307854970188731668742458379138815760630251862539242959954925855521196631826177910739896912132428349083213738850801609981253868507921895301196028815242590887875586907589713825297507474390199165648334919751503087617233437401968918681912012233178818847162236324354758380836439949991129589063410046259785902690047241966065174759390378734799655740366155378106056163366795177970518936205930725838932950413993778081204072516238462922395947769992643163268849967331742645440732648745485606365451765176708722501764840412449438931911230380945783715301082709599164036421336725765201053895970722836804818445895346412447735034407186698400328642126895666495856244693123009895782170966005276041308794518771401370442103488904915432796385347538257340798639387714439852934157958002508562406680243965892019802914359968644507354709653906747280517933130023180503255904335051846456089227292757746538170782465476171815212934438953179298817195489415505469815386102720289044298481838360575905763889643522072397642464601563322912098768298046337255741030872674640525802638203234087505674441716414272629964641938293465775977468600960783719044474761754930298209149680376272775198380427906906351981545589570927044939304523354546708028388531684007748515028493216599750655786718559785853338092949267189400877699725462812187612726878513313688091180614122848015247108588800231915261831066559412968073293024841597779723829923279178256542955490790168764154107107507107150565500618386898947407678861854551781871831738067760177015299636818049288463167514004834836348446134380591069677759683011520991658840995138068781198021326411878613258829093218102937531028206328880009476264800114981173304953206161037556784808130184920350240684988248682422764302970074755782789642664145741498769448447774538376448166960402607181133610437402147840036254726408664935447937420622057302493526211466704377463695663450511401702430958241761756270864780491748909133230323863352931816681239607865241529628117444306823400640540234338205057112469739189676094849258863816122600033707457827128151506657577093101346301918318231588608767965143629755252244381412749032850653932707417541596765825156412583514855359219999823838224577173899856381174025308463378949351396672522631613096258753074241321338885741427084296105030004977464400819679542935718786399233541269363156910321571291274189316576292300094805478600464314129358542248312325917043960733346640837651527834974178584722760251752255131105452196546768892174691789056246874852507000481007897509531557726275690104746871322831169467188778329375109811761939238936442007469870197823399762644710074605559049193344130309322354269840682641108588738276126321887851952815806794028258405991797647372484825332277244969773147266590387845057854869634396593195801773622067968005005838028630290052657451320659283122049599947252719637428158001326730392546789344363657273270037104274984115933963471001781195753073752310920699885782184964358145705881805727103079111069705446118109651301131851301361791236875066069377921613709761234777829583826680120033382889997337017327985026159272842808771560842626388685035730507259809828426193145121768595292610778956730986766819266177338985529171706420382876807486249901567973271448039094633502954680888239964440514592595493895449614276130458398845471045024001866171364033585887750133778221457653148469401762142505224215983354922522120925233392306724761737053937331133937011852654247070016649145783841463711306654275724736356812145742356618381526401420082634810704442862497523410842951374838922949501141056834250331820033904005603870274223974977339224705266799590558561826347742027585293226135587633573554093707113049541432071987767080591764308649291533068110432411428616558381645438570911196553390296575245620283999315929863911931626088126748162906970422507638382538845827251766755469616480818187233966856798420465942269269999085090467884279652300459606697544579113731825992728450322776923908056839428233003084021407587552843103861540209323422672926523743206437266308459530610143298730846696282098814667116790610925822778692353636174925213585570061643651598190405164955670818625589734731289872179802221833813346996369017287292611689522443383768475105016200930471910780359825367726037332620390260071120966838777544720749529392557974667134851773004648831706536127059614177173123542012395336829361207055966361395549890677571382009684640925129535782517230781365006650060208542899205204136719504168643213994188697730385093415224656867800556631029735307921169109939434623590854241916064148167566999904117673182589879373567279075825449522230691089283470422972429859151869917512424485962360077145173162605507833657074154114421624700943526504251995007413905849250503329307991537348722939078847978592316184742061706895189827664690454776877627355733447152671278155468142280665260015712085876644844179762341956258492230120866779306424941817785491017975396708900885976630356712504775710863060179287144831951845756155926982831099938596609560244649720651651763470475029822889778949407878941055888972494957123792632698739225729990936495647386493732693214643327151418293607493571992844109313575715234680787847901115271940135052348154972691709917298933062462171556279058278463648122561541310570406783999774880003539960087820908697482311387477678559415200024126651447275123921003857634570682522339708751247767270015088444792609169040654676647008956527592813076200101381893993850785049110308688427706262917758573217629961161514221408391377535192044926880499507013157856001633360107984240160416337190599367558250784156689848860215750900038925215226284529091173573546344611618101401609370681350184682049955803843860054461878948178351630686130405565339526324255019543669886388770633305151497377921198032871692618956967938033080931819207015389627966954247917637041457197225856302967652645895457842277320325147985604737135933399560894305510838937862361749687666050606749965591028226932637622684724714955327436779582668239657244324674454176075902137092127558850445185034773393025505854641171800656065438572213227425676191692734342006570394474216571964978285044832650620373965807897543121192467120953017305161709577205092086022239950494176837223809682229217350608540619733168305169061052241353126447765114954023785566241194899913121449220749021959778090739739806793918466664328256465332679407097383833704445805579530826776718369343788782149923689987265384153952573690980921222739070173948612947850953988772749405911097266736460574113032674417980354296980935500114311567444849021371030145916130093076702888804573832519536144364312851637541044361535127568708998447819497520947367045653892670901653597363165634186737760543482524970118830577654584580006435993063562470614725340869152606163725272724631673121300088410436169612509946883069323612864203531281282000799338603920012039430455343016525296860846625285527576453278177803761637313182893575290615201512474400937098305162023117092094460364024001743923070469308094099224043517127188808235876416579993127074869089113592583176903397141673598629990309187066801989267366347725581358068932256235951289072611041572719392422353384057642443036208374326478455482735256962216276225178563441151463408174315193725355685553264640931622631010968131573476122615165048596723594269558447729167488506667074038738282271718246645383804604997686477003047690150904051198604156410650971004240005712294945929079217342199810335113917715388847170495097060644911628521335920710168345584757088581571482062456373656621089206527211733358486536903324638777992037075206023829727838142494492748340386842530536958241615495364279403762247620761660928156871585969446086345977113886518575995211901704957690591944320448533622537004138948181198986945613106347095235029523662302358182330707380759825377441387632432829724140683199707207313437827891286134862599311727293542832318572819412182944227137637949042718277667076806109400420765816251221157964650944625177755541325069395757902075539770983927120172764913203592492773380271881245942612427849396476679010753556471249428278414719597137147878733457004488258040372979853530591625526312317905347921639031511528755863032184561161631605777391203396050380560314234672937268868281350186393598213614027863564429083492165881844418457937008169621380527840288480877505504330443546158312721533412987161939309897493846542653414046781734706679115914862389039269803675081995228875527620393156743584438698059440744103829967717086641632357237968216072466183344243801850750692583913650246007627005685666422401463097085434129026389138709971832956657827172988151939887451231376714430718317465917008493881804303867250330183840189349225963618308699056095216664135564976567641700408196074350774248913720862649649136388917634186609034698113217349339037220517423968499093983366570912665628336855202540927815434355689174486975939221783202794474213232906481211798849174880077806658430777385545280621875125040886924029263533194156533458808585697330093351887381729712739469423937903645812202725560126901465111168362235660844398325168849207094708784519362949573770107360858864207249854146202716053599801986447219731080065421649595244196312752450676376538118013308536844294333891198475700090375147151983920457380398201763032053026820511304579381422029265892802743779826283792486949715146134932372041534983905852427079241291030976704852590816208042190318293835177822755497723855183781570208503401239582129878260104226053853233730423647707235362154122213058012718998746595657987499902134233273968802325594444195504945627289556153686444026285903902554759278341091074174231954617557189211386712007839997194262301645912259338951025674336789492619861643310974889012759488859784819058927891799682514236492737474821801655129094079501906346050921779784859265093544446130102929154603748786775671743559556319426966685431601323186335890349270708052827823062914254290897733559138624374334149783612828358448012651145497861790896348793992782907817750212924634771594411772148585158887635911184311387431280622033909872645254296984096038648349890515407977725550999760578880131425382563823513239428611509868720697409336536317976584042989631506586010886053878236940604986943462487910643941233399455648448691092583719809324526326381458499435354651484681258403618670469258180402743936847306118580298309663509262536888988413458623015277860327599965840030268572484704820212092408184971622343106268360469242463730860624944501813332061728388109364666402913244932092000246485454196915291807970980554940983910733965437750897564110486903137504847193755622023144639010212589726080733419433516330797010042822983206477838537172905417660608463423771006662750831512507564157972802427886913709221579607489751406543667592203638814156267327171619648328612178180187383122390414844939662152680521597503776000959501363468198633133728995366495632108919522535105814175104070542800983046000582874005393597212938549347396177895873271842704058851807141049470079064264116970213730515120098220485114557525721981828234842984222918859808369001790045652986196406085635360431159117708738481790898351622260384215144947667062414985010116337115752026880786438441846906766391618120434269661749513863822366455361700489032880889419413607554388427481949719867739376443988415870738434306398129022816229022621614604232771597471628797773844077763378056476906574157502404433400142075570892791168472474907899148749623830422157150051056822251756665952076575855156394528684792642048739667036555601116569103818090164732203817022515343430249232030469756268711043313046390734937897083076946226207208136040180281082893709224948503718500805707851134165914197458079645002661326808117411972592771470556692097721737742032102320370433344248436092630378516406850029408587934332555999246731910114833293270509906955434555973673677656749367032817905633154325078340580852890077290791016396261904902185845002790109756339661447739943529083652929877673784655030374916068143091084359031152301923650121934014903591532913163994656821356094331045821951770451674848661766960514874835124521630692033811201152138422760579248054710714666117457943419271984247907987767048898616884629553100097754903527370735916781968557196428113746203214266775238006882049855310222371681953315762331191188280638502624614498886696604881475369333734436540492385660371177233068956136664461861624533425879004417821473617596442198697258358390902181406916617029146263437268071488158487284832450435069000349290779029328844499316185871378231841226637273855650002922603514197588144946845883791641764775435774223501487751765506270131443966430597329213137217878663318528833480698857701932428948116594243686282544693065252090252081758113220896088629637900020404427850738091952268608410947306899916963055164195007933463841873992425543202151054424752944901060118327370705982033740588252783283555683891917765613507713495738095329927232222588303573462472452814631752567732006349178242025471767254225474222664241691457670771188817770135120392936954814508715463347023924354405233044050660498118931984458178157930736108948751068208345438739930236448730160061897306629490940049383411380187450513479992553713375707227460318073632626242238944947675897885114969306346646935261620244417008160542357218833850644836329962973619589202751361239957965549533212344389521308413330791108042034188168719655640434060214072298324375653026003488626547044527510049001928370191244745722052216716153492235123301761669390335790657758436090401621704443653308559097730816780565876438251217159842987342460331311686835524403298990769871014782827672431362513657662023433115536591579083282058927504494483738030589606239599802389115499360441484623529637691340494028370043476917051271432095100961072467188834067200959621787346241573490818008210941322461272948471903249910147752619534721068840723366866914077002835143833975803213173557434015906699386462968694347542537036354396959430305722816402563672692457493560914063874938552593826063739773824726377378103562010337687794221649404624513762165880835252426246971289225869801594002600185302699290814422764980007690836764004901721907525899926207181587162191057728922653344763749010907409828046096737062937564187544988520641373018619444643020936546570531928768133791800322758733017594514446623511540486918701559142918313228185865611382713808033097907132246141750318839344571892598249925189004377442306715864452880455749877754505970234553943247689509526852206136426152060617919005846600515625524436005954856816826738513707292263291748915359380116256834194159017494739247177564376543769221967260736399406344649052325363663340822442616366320987836984929680817840551435175060919232552807524514616281598649621816502712128277218828646453505062398983039503781489641752577089663883564964803534571119747436906727361148250686749316862470346832263551331972388450085010919801804544161421037187513412034813578774993462766286042765718962739659932862885722264813082392123852045907966265343384335273872516232262733127704432146542675055359993907392643014708810260699739956611219497205259158844996711915482473894955137995306621060320582608605357857702368278186361079336239466944899517281047224864842730960294632440088717759200548608158304885029664866629341890739535733668062331338939165216567957014896740170200673242479752463853117844098576844537616233894560843905992993480502969466151433592539642195103720696755400448780091050766992695960910948315330364747833624908076787852111363838458110710868424090682293036970538513874122765829820083349244595164236123626848401146150513926099605838226654547586059537598005354401975125621374931398300649958128151561599154490719297552491453984646648397254693715505216252049983831051929657653025110841714241093934046813916171590851876277512224107943365594709319592462429418071417910027692182087540089633151423414635308815716119395749080947124884182149085828483658081060082208143457427502564015247640384898938385205279249207185310755370949839412854229959083020967604658851545665083009063899309807831466441227956212004342244220096243925256866026756588566126810217250095720486594047308227499672051539276276967726306559100579142728566743592009045929882749329433125659385588459075315160551457135267945690783365134387350529512851947874749673403526003008023185069379150931743700372407567691892268166230597984822930801433535841570064509703578635390869549433817279882124313182581343503983189414466584777217638861898281474611631375863807958470192651911162202379958998136335296700302718507363205437502045715987622371178587817671601769226287809293923839173517250845523433197222582737315873509298715367067492975524593038889060019973955630195597912938717995747776928884476217183187815389783088220329353212047030706705172421761288583911654242221326614443411234528894143490770144108196281035841540683763522424570237440315991666852099212764362285162481012546091608743674843618130405284787954358542015370911654820690382907117698336320351641286515328039097615016531951861647200957734829699052691532530329907275170376155072074983669416245005432553525381988119617491656573702805381287888677251156508497296861079229090313875013645691914820840503174664264472603794883543027198404756000598921079556676623085362294546202539103567442495207252249404040131063384512403685107462974914827857046558378743215861870329752042402666752753990957921047035575953841205247447443096841358627206401101522106201585837505880424604126063492556821435508387806847742701651353984109342708972699658270348581381828789868825444686192419394582223572517276923435976744082858238725670545200780079582038447706320030989435414068161811815732433253713351662259924175477532163552227718848086339879463484284289349609407897139839991219824215646537047483138792673484647078237121527646886537937413532731308169675794364699219094362460483286484878104516347939880438569101140630157912531539461734011610957383794493299027280633689972008035285477265841650619974875973318845882875718314091954795563735787309530586349545605630674062037768568111586244207250209981540486064302216788171166968726081499086676275875345310938956925101659358293567687454413621127672499606948320767587356590203759809753818642891605251797096874665804113899825203788942435888385223106747704969207015082013425936798449794943088105137175269124809906541528523262072855151207761788135417645322863603061860795354700972476009449060788691518339976605537961206319134326136977385777839024167979083769692150997552543840232877746116460042067867655267001071792739452475578977999820474455217404780806447280058885805735281192985333707089935619797763158646217712239107759694543261272014243101848306567447994134079215570227319828164146617773815834918658741361686767726775281966779021581826139770803761874382106060875327586060496060862954571502383735311478538098372168474124880646036615358435657579911961549958140122711909322844138043145959088471556915700792249985606406172714010998729084308540521487510028208297279993116542007423775102469684274357353330403439602119805147079442243393899912767313401999115205896307339625290642837337878317113296515605036651605641232042140779985958271644843347314681385863980751936959969350543677977624137594434351938988575443831725182051575892097157678792945778573242893218841784907648835388649337583907869136540400909847621902723134818237758609334171484135049269656704996503856869908481650090353278038915783553778274336925666957731384073484902527536683306209635020696301742131136601727986576415155842284615807462705675679754990739157938579224609293811545661139841455631395824849733017577906498118971882217025698896008590515426612492541717293323278415475096844566691243334861074677543514625029996575165623153799127571488380727773156226267166557568254474234910843119744444485938571510810426114484133633284715374868991261450010823438300395417883587107471816361484655639326559791032893587814364745855877956825304302744059748054454105566064507363787681198426347260873550320925221679316283121938650092275623933173992063059144135614108676279177223768461841402541933193203693142945296220394628377283046542573387253797405057112120598333526089474741231366408397752140391690730872925536391108793760982609427982469954852583329905298017270157089621879817662710890453121100391649906144680888311573772757546352034007897225750128276856628853736993728797465130264148152906579715219783911528982105779272537231650850030009961361997367761742367734087648915755700941546574702093647171324707690428583484147613721525113923258101339156197418714696612951695098776461802467239822761048445607220602472581215457611809650591558588485038528961305183838715943912383062337797160757901145671148433641573543577428750824742831884200398590407662280877338161661511831560890246878671865520067498572993437428701254392186331641122458131760846482156296128673602984845502467157314024609474955882515225815445643293752510073026533392268469100908148842307736825521101348523271871090392156979713783728673876226756268250300905013980073547637820546198907150781848373918382770029805481865924594798544465357254356893226260384643716696712954091936187418358108022039298219795020596306228746005568423774014316117142997778095970465259919904935258660987676283044135648745191130664104842662127162100307645459732360596652713216399598874702509262540415528094560651255426330548874898716474725027071797554434481500867320204778954466414994234873912675588931178611406500387149495007857117039426791872708256029700518233082384201505077802826963484363673128192186877475644498026026964060270000657101590828750195070928484570776534903246576587511006443732441571840652437280441702812455591724936497751106903363234489390304339529624696313415711190757612090725665759482708113885390315166649985985692884543054025493039969539058463505866378914980438268858302842063687742089317648237368428538126700430101586859563279366542019606709645341183543567515610143542581199672170817634912675906702676219736880613137182344027882566468467687452445469759675747570578881861811723118778677593962906960402487259407190296618955284157795249345641232538511828791574064298792740685605967977538160379984220941854586471851983162229913174451903912634244360695026272404199478287687858101244383239992995590164033073102818387476572228397106564650886530516385565504428280697859483693994322426849630709088111101769736558485275159351363279646644682820112396833241276666089974442051733328181235417385710344465730516952354685878118674044391052388496258280771497019459388012037930222576947153465973537764192926856928910161332601206835426733920882633048629710949712920698219067372189918491842691900117641920797087927875355703203771621578733422013806382930231480255814651628385834656480914916878221857051938428410369734528917023377060922882858021610044308645116372243137969717041997979473094283163682242556393951822689214990752503632659872885776500058196043204814480695213030664563315544897504551027100141931608384483833245442313658090413113445197070584478231732237567390311207187920783614593521807856255994274140579960543961209247938932992277937590963111602538924913442987215327931819762343158607821296868933877826186875447577522207059548227081477638925733890060559080194371289999085559866187154671534345972544793862431021969593946929232016850684831960192248483349794046845703323514835891303946856833053141794594544116314062825725746329049686095690155419289691772039307597392363300368928782069847013569482473838800267516448749998594943551382655134591608484419055559580876174637022773676368133486949293080996085457014673735808018767688768951203638353288025502912418603629066925580756613863375900762763502741102500327077247324405706197731410159563572528101305681862213756530025935077101843811330097889667608042595402783538535883761131317927873707032738560540417522897236637870533233186113486102034534812513883481016704747895584059471962953130979879234889817346286431720152522083223386394253654797455472570254769473440625848515981082022737532906885895343224595228439645643339004923595692481920661871749800637003923368726744277862125859707533522747168464889335269771842606955726095575988573303261466374972127558733761025902566415337306917675654330682881371290248459883663554477189454397775221275243531906537099548825503651933630664428925685883067469507177054490629612556259672042769383921897675284554063277354394186161236121068270908404158946589823831469198037799475340394749429071088383914936968650465267834471660400223905135348799707992624229937795637033851614139848113463723970597062291088053727416673775403394135812611064341354731179091009938303027654313105830129342581433325578562831077305830528760980344624643564048958271493730339083840955506323099713953111623562419034815345403849488351497079567116174312429613472639289233081334527582726515172641178894414750584936394124293059345827673422721528326526344019700393864755655061946747424587499338866512084648074282027621073954146293144571497875298429638128637863635985738344864297247107799660364781275779737004395409496867925921468742100412600746017002202275961869205221243170719850817978129281317992645871932126891843307556866321250267005350590215047362476119336163644203253046166132171430910087272170799122538118148402793463646748805048782711727015379263621675291030867813720166123956193432295453105034261260579841169998271714028752293625788223450453471789555011459936828014386716681876784766120277934399340711066672841119358831777067262233082107216006734227323079616341695022964075784974788262130882269952036815968307203031736095518785038208736393945617548157651426339100107415793806510152662941371186160667303643032342100446397094824965495126965080826399699552359605523447358824481784617520901841317838691633744481112715914990375102396555829899360006084503637249283964785780555650713301450361519951903129386515784829395217144620921916251279446182230198002290611642010671884522232428246472794562635282136762809874212856890786544417386634918256698144468497132994332449145848144248524492419822370860534770796613598678906668369484898822649758762227261160090002610831027416445504580734342318885129143591826533895151147131590890797924438899598502855233415169603168402056647989387720159191595540262421918546251490912289999220870603832119890885680060532152863134215010747710059588859034530254585845788013144684973359214382309328482014121765923955750966858204154135526052334873267811075872418026126368559378957579391151085988423281764314403966337336180480052880239121346290722049754777818050967423218822085478087294394400281771758555303749893428245387948995059536684985458980374449318227169784881691434623922795130049285270677277468730948333577861965845033188215036044130806939019670077310559420736587689062989032725372547410030838569222199306884013109260680422760543725576353996605847902689852522485420863871343036508544337737399922619630588448143958733540811313616364251360445114826500869203472681532074750210415352911173671983286393202894886693402633036908992872345624671079373124463628729018427191300049717948451466498933816427003877909667497294433465528700502661128766750446316463433677812959591128500144324210958473441576549500027721376966409051652694287461316509798148565160045927384624294005255522177006361440282885894453463476207676585666990340933895118598337597007041456029464993843194627556049703661190773692692986608092873526265899861287697245345058645681412147215632528788537236321794571288826094215559679381429977173501764250156057888326819773718535104485326992358337172263194502782475011674461931930372521261581276679329754962255270233648067376756834002943361385409325439061810965936587982701656495225697617976802536241417617833099106387216999453817810516926326825447139944018664714286326969274014775139482731522623385573756277313261884374241812488898156357164227565265859939694072473179699679043133529069349646557405764989102528198084132096891263865696348032443839509885683407204877364235615646265497601004925028102506359080912481988482343784857082721482109550449061429934084302878704228679743780561873791171500265899983964633721357308442570613900678369582405948900081992261871512560452718807200420711631266099457993171040419530725023579269895999606096216269935241524129082647220433486872154363114269538488999458750695972379857294176892817677857906563523593656459192578450614979074738976074145953453930309702585853098378280048417548485097717147107569808544087266402220290390165281961646223668278584587298196614659959842974478978230289754932216136416572943228225359013876205645955809540299142507413107261783484487004537742907567891890433294343671200209120138636930470148708426731885693669242055886960272647004082516562655900722884812781022343277769625733015203142822816342118912886502778147244537024376905084091922890556300949868675012588125304182285086068822071088507228623006628585331927005977814526188987042739463261630950860614155462331947890102942197964455066035438912038749966681565419497332994497553816451409960042348551150733727385777968824003319446506432249748598727401758207350052511573576798342010602531450548333295167437946234227911957691354063960158906700689293190615625915018199394865399827144758214222608474323183487696955609608491241617251701749556652752984477802038465647196684443210281467546899795120260667566602396372587464936673675341442662000440337578476249487007334351600318438803978843570047225197804477945540229447982722143876008216136034093742264675254636447573203404330793094135631872815580608064849816016494114665647719980546389961493580099555767162778039469625115406877118091868710510904825542488861929936345258336396112165184760920225850324431596496853644558186591387973118316886855759679156209599666838559920496001390134499992891452846783983683831922846517392043746845816218584509766045507158018732510508984947070994215219098296932121926716245103364997151653637643661299071556289775169151304518501362123067193813586780810603981460432758655949107088212407188345516497671320157632949381683354593974821255438904909988245714738394723411215037449225856844592439693245159940062416823193093320225010689688038744654782889786371552097698935445925839393924629932341128120839257192401347805066080492568626867130226754428356723304193525993904716676375652510712250625582599336748564760985452529200527172017459658713553438050046489406425529299419101296955896752008968096885859605797029946447400802987746561840349908800496219318033780888349565781637809069952350847905194762285804103195046468626872914130124400142105201100921317645807426242590153365687664461855037081987961466526323995064356494647553513256970627606940828010842386287033906669791219842858026475051047639719313266307219944470592961678135198191090920475419166696402306853542815310246355288163959112403443659367190609098692648780298645250501249335546303534267886073834316876445863052027392112451362576863687768223530880173107498116615369772660152515275850783348219632604667211620406941758232387578422333082055347902655114904012249661576264500464190815454733690313052163437151004211998881824410568660869926991096938032161231528298764149720164186250895389387510798638731781714857737852957134418427357197389956995250747080507433964865118545169310379659585110609721543698474579414136961620723627277225207864502594412828239113357971554980656237559322354834362505800723796773051331902725590915771310098882966162517651544628966001548245407478886917153719202784785052893756029815479802662600344611747595407639060139791965031853526445177932498051703122282444315414376810198370309918773041048928749306814366402001412882408465786552519049779111415957361195511867072483320702314817419722210354805280706161286104671022878230352658115905365761764836565517816645180610248236981628522680655585988731225951038157041671985787368168328838876368764589145926586355157495628753677718065066663240646321693902560342676862274148537428548157828486491259161107869371102849816081832464924220340032592984227136384091171585901856357353056090670073364742198314324419688036220292649815040056699806350394031299412740506708938108963766161300116000288868590695394623378983452072040400692246607258432851508896913405290429082177445649238041581964222361619876746324852241907483025282395285893864465969213268288022579364146114091579753130889844517978759955214347732326089851327828023632058518750833560037820148958209581099320033608361345129423101687643191216160121644441670699107356874222018484576944136346408557112840068448591203031855694813608686844837509662213018850766553546768301712753125314324100521160071158142631918745456355427079728123997589496430172165376483431515890509437293196681336408688270685207145539200292616087956785146538687258503235141197191804421881938697305703356732582758653031412832237750996653526626112725424917843754842989585148442311342957098060411338652626675316065251893009926048327147913271761129261503141384586209672256411941064603331197924747316755152720361074458546831082978157244243210097513939783852188971069833566957340905989570512109565840073558757251609618602733332430633271659927758195587696889495924851197211656101732116387741017987593556380754029276957672965790678496720494478867991899739654804179801530171500840918597304056154271370682979567245052121185589127703390224791385429246223920758751813977268340901122623293047909968807632070589942649394728251410531581928385490340038184296513489261697983351636557773961867912910323610428595693703409696738013958631974702789292259695664942580600421075351616540618739334875630192841321795383264777707026135424302024877144850960888500753467904576574837457056808187536374927933171123505116450290032755246399141888056869757386282311601538449069180170519746480456537010835604095916845456650680637074726406579730316485558232063130208046997414660381357993386501757191179456080972342435093820856213241087119805768797356102643555809708632069473061742171117684388697953533826173446848367521817299074509507041272043732508072593596786111449283703985711648740576413248696050532227174437258498835270258553362153407353669107186653635830858685458183600211707782893024458448769965941453262185215054882728804022743991328832877830943909193282050039711608910915528271063929978845509165245929122334279668623297607460450646162625763238793213956540642651755746453969857696886568992930445894535249686305900866985179187870533535318095497178298259144210350914254582919081673956287377111169824880560106122432058972974883431659993624051707814113649176515131142373408880928982731066531113219600264875147848583482713876501177198196541816332254491469540367877582902375438626418775012103247058506005154384739333387269493399985045203917761825648148591791621501105430900843491007336526151911292546915686927111721780199123351648876259043780953299774841259403966638975834856842500153350249845478958912219377438458542759982938984509666142909038447623153102163792692794135548514168552054408263528804627611341342442891869440158934349373536953917498737779673636667532619588772411880070481850158928968303050413567339554435220811066728580441402254953379662185205466706963363163299424300711707060936693210113286152459869023444807778438156502427541148420653636279814208328267638669108361547730143473766027864898404895498679450809234435164126900453539980608625604862558900914240224714679167491219140095528453825828000326933753845759274541738498371605145644852550145262630378819165895884607328039088116959783293955343546785159588418952410896488886879126309219770673826232752381854843827665134480227573893145868055861187569266480591382556573509916061823514009490041226725710041731528330004798139970978115673720081765161227523344228711259124285669976352800565402219145414628701435481902032866182608843099070556351196728509193693690822975443932907946117331241907289029794165915327162081725017072689085552112280000281171635721590374221509301094248867040569100221933874173301504430036019512121526648631431416888753321042777441676709632466899653524914974507812107958341194085098150744151797914165543969362732884779095212160251006107635743297230442369613124396854529426838377441382806392867843461669724748429721795772225155613252923495515864783139503465867392383909097065325088346189986220080953474262350486276720052785954414308020857961970748671222034058473363753829866627773418102832354860035495787942405601724527053053165587240290131860702174776714343360106814240605778311026002749716119307304457225987407815728332766967628276403651908473978528249726974532480179327632787511773296208950222279373822579097455256495507771668026645879214098005625934211147217581330309309318303428157408417455021671861408960904854543806772560160667700273228210268979966115658315112619163006776864393011038154912494693513612398231596758415870051429185349512048739406443291094644735611336204844272686747069949965400011379509948706193775488066383124166220985431478525650912348158954858896075509281011897920448002147164333018938400352546835860601592284242127355103307714555509873002174607064527735778153111937453081924141924431908550801280490300365161950725601078050116646361053912574391808403058245620441232531385026030757096276483252211476275292340485126552924802150353286294213003051306559182611065585486518406996035005802864054080967084528545067774966722319968555185486621768997473908736339510927282439420318729522910681309806710272285198503640490127814982556730132205261742551979895400252709167662314637642519987757773277586135938296769601783643090082792933888661551526061273299046147630317598323080834396893854777289966884389132155303638188690987982889581296670126271031903909447700573376184101473399574085789829823018702158037604422334658266729428716036639039901070492036272009008104099330477319239698671759456027719406019366826463678532254538102452216818935020361974887769279918952927446012563710652114183360818928574102453310713903959196384922094858643862037410150169121206666877444866486155523580327534123159418671437625461413670034947603553751413685244844347494626281151669360066191076692882420786411067706582772782801231754932571316131679120236845780046733975030157258106213063961080411520984534357938153551670537986955543342714379550823147466742053144169328948392655117168016519968406386563535728354181522109398416584331909639043234326085893618579785210747606870085340176892347437878405260525379433902718094311508215833729007324315383091015820813924661503524168287501688710494405252151953584650908843717622010436247078581044036612225659841258765345859630401618271835802244669141868521180247283432043212209021467147590018401801934894275026388442228424553885807181573337213350313895052041648170518349267140208278631485028592688075791247172301773557639405972176890306870235761013939598575829588190933380122701566291903814350728417724235479761220991587169419788422785410128062633024441641314787515855481327368011634142089855993486533639311469313723066464780791560845829168958855459132075433502811112649009263166738141084933913546550582115549928819483995146918556664784396425805564476515559761641416349710323690126079385515411508751384947349074495154358770371714631673884123685758241292773475343732477390851486829053246835657523121563725097991444271953606909239561621246203333777182702653127692220926032009934322006034218669717007454647980625541170843214853103380574982667282147355470834894871176258490165098295405448195163622161422561460647027427920015989506144107387201980175606141969167017379988657425851243123451114429828591901733974500909767673903470552037121314224682540818298483353071660554275410755501508889370359511085029505450453054907192924226585894840347933422562170546646142961637270957126585555011591656576834679185683103340627678463429533132054807201807153111230920317217953057532272865083542032226262566247020584202563266348638342478606241282216717630295846407885775457043792373459994888374431527497638223617319730517400116230184093945927308431267363217907115483061846909102157545419176825506887209236453598531303468669595948316298346123755650680956487554847040595715206646325237233465234913749355700159440311529382247944688964598202017564204812145648940288321555254736362906320010566314748375818610304731389131321891981047042645906340554163737918002816834609151275378896723602351823364894970819050224519399807183850663973893077677078583564355953564199884719355729097674685034707976616924493908591722875646902190559003046009600403285610427804882015001428995293349073841671757179377646429586976593149457539227709968529835796746849691653948781241312428568702522821828597880108294188556530811119783441777318482608455321517014853977825794883899601761783082015768144420140861771760512799124836564869228091974920547793475630047415030840735330824246808410336674980954100153682907133243712682403417136794936262807981058013416523649844525637555890957128615840033242426748457849427716438943904134454613253665902127863645758477197719513685753568457872899991058721154269867528075895077359499198575765300021235041910561673841819313312397588219502677768166847327783867004017246545754591336094732457514205339393107301188367124904007153521819452149519498231649144526109375942745616601253337978905337299311272891696555443117551141932593831306533659516570008189024092846833640134410828875399154135009314308158914654870701291575690563201395487314207001997948898471293390447637762787526861483994117025644669353856474974073948835818102512805522935945573495237888086554283987345826901614496888834991830038696987199223035570590479030400017823365330132786033123952142635381126108744957916173474117023201956093961851515724336489916700261079043402749555795091820146501770728035831203083871813020657421512076720502724155658971796636077671374672420939546477517678908380626907445710129918002941246298123873924146285835998980828880604139957425372091060805509240195666520674711571808158759999205887434024763769630718109305744993161065725623751451104809086772197223174146405378439330056172352957927078929047391812543811543405235333348218899101771332536609967609721068748992279240240507313263642311845800248856305727650496112639142971168708809490980352642629593047582695069350194583154092527493279359211026387418968931049710784373378530062185206604131933386251072038484016545783518084782340752595917327964852993239713379867603132183780156970272468328514074107598320365531675624614780745465736552171509900359067394012551677847367254188513805640271541697360683945670006427269075450956265261343798536910418001681723336910143994448943522322294980972642637731880008086207541061336005443543549385629416069439363003099621327117444154933809140229136544708941285000769299574506488141389521890469840843298870365804660934835378095609478912160507256637572073114140087150074088303094200032293468009949366171411607892954244947192624353889305108044876250867552939044640876872369159046718104106615337723038215270319679921988110890587121296158971237743775326655884291681124203640848801133539030218485544490364637964009540906633263505626683319275383074088845173657050506813486229385444350298949091815598712336878174657022189228718325038745319399145684581696664798440377786616416474045771729080539591497992504990673627749813949504984011678504044174027903575031126110645442397960129871672281970787980722817443260008435994394884607652614940491332573806291437460199423142262621510426807652388538615483810371018625911349677296024544355881502096871793721788640550446476688441753475488366129994016521122334414050099538368611497011172063309814103881850160342882661692746940170520032732996897121752417421655934671758938637166741102534384720916734172880505512836670216751024701558294305779007504953385255480821028384344883675455285341349370260590813120970463110889838933693787471941034108046098047397977750117651715354756343637016147133854390005992423443415272165073950911154425104130839610454502241461827141812782508884046659814565554280285361183351001680660768647707486247037625050479733580929979115231526899904259290321806337133100486208205717952545857043560492078520395769281932989895253931516084448403042959138519933373204104733050688211368927394270526994155025543559129112401395397607999169509870795553416418643406742883477966242711209463458510518024247384216317189162864819761171205281729426585044366163118591082452321755872517294319443392480460740250405890901656507225160071027792004977359319970199558376375036243832142665558102060680769642488261641938437560548344835165280494921188886909145759679395963198948148099536011078846500578638232517777023819572654296594653686535067781700385534126459401370270094046906760926089313470561165154820262459270945318443373187815213047572547161467603417388225183436944869335763525494108080076238118295584672212759234256122549820202920121279433307471516236127710773405524261256234960562401326569853357788609988292249108195608827338886019495315722552047996708605467878607486650043964195873702501933738354999109542914704674250615979738619485954942928818413396759406929158994483513074588477635271761681617066208435233823926215357367061646608196537159515929802561040847090073580460952899989921156103165966666945930436310175663053932261942838448366342365736390036226946017663808549747596993758850370331307258028360732429019983322934322499571998504017600047799502656455421149484405078506393492339311999051560888260909722855925317610006093070666705229337308942260141000787092060086392383111774804035098688876308524944834935253336642033969420109222818569725688890992475257854455180493884982868319456968141512438409009012089025059766855835878713909905273678687593906246197012545710841514700682092612388292809573467417448455885052810690292535195256690036887878171329993604552488005388025233895056389543519111774357474787494023917340484208174633843806930393618538375374825982933627090477836739100458040571842630744553955833234286874688864680035834492132506448353386489720245487232427228957280891825398808715498513210943144011032418163713183481715744642420492404247064527024310553095488159645529489462209075888477265439352227971278008399816411878715537754279347500911502776967279901188488669284268685917109942355362878743959689251458604096281943451744517182738001129731421189451108639989990516856234442356604678488490295004927441622607532345236453542207718890228240594989505133356833033973315147162131949306107845612307089409735576726187593210770474049877546958409113186201379883714386339298148801054807234228558491188059776054932744209420110028441842408110107802606156312578099557705741677908711869506653722745854550260353772554797797277663890216905116762888646616827063495357865264801675859224894400613245834256208151997706330327124237833084498363323312370450604355047372738150876932133906589721918924820584969199540131860166300648839651681242559487858515963461479231047726565213993386011926541899055412784145397649365696592125445737202685247070636700247433607325303364782760783390355490612743196344572078859862312282861461639238784359359349948525805125017079237200747995373219590063044334265555718442565014505572818011422193928064468698569722734765627833067313956138012243551371351196903076768177032188696716085243269807608192962559330576497328048209335534378453124835143051775961887389394095443424190057326777207012731725356883131106890219205959272163811320965691468342604507618908711637412319959512634924897935363634682326350186262135066208188155497628533127504813854314487872516166113812241739807955309156946159108302988995654292969053478036333390341371944762787819254907582552318633093211101156328933236125288076888427457641382946225272148706182670041687905404009580007358474433686330187226019195295218318222137895905848114136027914392696932728587031192371632842565997246973745935110246799668507301808746702972130411348520427082079980957101252182788873191988653734768710901823176204459941471235577764216667223699825313799206227558672867428337049981268566552828395454198232795176622705786010811258632276289490125313415638330703601241790231031527126253536393077241212452620202599266799850353280166115711503341538693603376786923855568019530905728345342164662840783783243651938701309987104841723214461989825698188904892214480025016433892535117862858523142277566893278293445986584725863655799453256755750492708277664066856204306170631335322478481939895240605285723166523959327497970800005909320126619163380517192097092827270249227973241306128451268927807222690817283373393824186546433258982297978544414401884893153893649130305984013611550047251375903453342798393421540646512650447308637860627781796342944170283256710144255384649023125038450058414521759037395626148671468311603003863853516597848358514586944576706321103559749496461797947997661332332326733503562747079494263075402411384741577780359903125767982229687509650058632470286736013020741096207062881468018540482496655039641744376125316862667166988956607088601105489394127106394861682128149216200019205731478186637475368254888607498020291301098000568115017590567912263931644915819513983488163577901315039449682864997641504678485931072587271354603472661419695453081508839201690193624631725012120851895336463291537965211155808309584956785623883897902026466864136901831131827704143428734500986194495195541294416923859590811225029741966341436399065599705964614589976129914229000684715536945305522723367176118312256087500034724332347462469799555486670773916180227778599452562033579325428755538199046804299498925354168111139335179360269546121729040932553406213429061797212518477498655905155393560344257643886204574663743331569138627560833222345815889306912724687491563680970554080923037205895125017895220126689291341973025874593602838597091219350463636552782368081072228390738278402447792737455075948861194685301959091359733569775583244516639780592758840546735136710583983439088806163964373362028912769355746212670200298574974380898713129264408143684994400618702718930707083687141153003115631460667091314696690898866832159215431510698305155797228492490952286522292713199440445727125768062582300914851362492744149429242206534568553145679517529954096576802594267742663649426701698806489815520076588557067057327554339754655154570730817152888367870285176583144436140155245783867778007367137999647920092189289046585364800836187174889054864487135248413841708598880514684562744440401363078576676548743240063269842200918907748381827598021945064081679528675278926318647514452417410538417425332774065616789805672116893952956277737866929783431663146260840264559324018944320922327619600218595694127354698482305205767505763885010688639779859688956385608873581228691043323888169139371845676209264064969184251204681094244159847057455930977709765486291592402423676088872167333976175606080047547087519467271671727471700621885574480114132147593000149078971576719217103774247439698900687406146853104452721399010885755377068835173722032526562264737691975987982608734594495640342332938887342996714399493815857112486297897824559436836679856177433804604259232046501698579931122075873546281983940797136564948919095610599201224052911537913078827947011255921548944543787627608783445482009632725979298725151627590736720111643917007970348491127994742061834185071825198565934114721253524057765147743882858807409870331208004784512100486339330075753406552356730190916356159576407066868377663721151579120795289002081663240038550786511154044883166845136289413993851827667882694383230586651219525619426408625416443890017808377733856422856248608995324820377278482973814273216340021154266979210480216371750544096573216533101408017125869956537967528058607323759994623152075362605807364919889480375592013849932163618666542625338756224798839180051139242618267112922244771291483985667949018945269681902321094282165806076979751652240019811651867695687417721317450099711971509359957736774967433428893450735569366121263522168599539467193383911178544234878981108953374279179284531763058529948601139817273584718826022285419374358993555387717296995446532606258798884675734535727797304944011119174278994277726212710864379125821828520013651257913851881428269443171632990477790339166875229779550930472445722068989365569011181092496601910065351758366463113322094846076635950791433736331357975268334024846291058431470316837511580751810787372793985833968702857584112637415636681898383164475237179399229814581231914938249327567839285624034197074794125040707149410379545850383222993062195313388585443791788575990944374027127127282501391548889753204615566712330670080618184665031368048813863860135402082656432663881935216207420512321246214419326432424924987064257906501211399946467098571525573485649490914805739909728755182895405343010335579209637439884699770307120762486063121524402959527487144203172808262921737193062047004763343154159344137799406832032417137665305418240890345189376161303034743108334306417961110969889610237793366123842514182586821199049036993714572539102967494860564446885636635049488238955081721943496381605769510214862162154338049250292190400579732807130020077115190973762290247604942550019851260781363371292170069504309538296332492657647676023362819007353197778017815300179194696259623482089872074576159494697314479159928173335172162667242463705298707086052705493939639389323494647954526449015239301272065624386505403699844622771139165385557812116651182742283416141460058308300722993978194490734739974873245521833663304118841867678394408124682060002103604435289956653733314012842991288343618290288586596071802072662303402731452487034184147883970948780516687071557347616276538123470000882141866779519344145655986573600587142967854708578143509083672254483101576072262495483084819513138292801547258367291525748199519988492710526391994820654182294797454376683551814630809979729633085731731681280711014462561594527343072420446627036910509068680738827227158746976081440266445193653419764446802471086841023358615982165706592815465751985875997752099864639983813779629637084974532839598088905003763006542298239872939435061479173537221673555351614329619676903443023897184294764039119397528954233244454469799689080557988162102788919322818529902788883439990262453400316669278748491151921849130777642711382345625767585449536912015202821141810656661300650080537632873223824977182211764284156881778684353214123111302983278833337078355849153919468225880148747142402947403847742067819565170689717541133869854814231046715929000446360943776303403368168769583515369841895876746475291656393182284731548645062893981659612375787539546806574702766637462867589156613162171522720252068267293777495257209072125533608279662045148902001482273876872638325186417588986733656098642046636298068740150591170076804566832043345308312938351028400209770148726693785376900695903862416624445556773272839874178221908929216678468428991572089138156843330787647979044718192426228593259394170483431268653732343995684054752099610818180013432381513926556105551510966674135292050833928660708256905727853580751171186231455498243588167431157309506205234167902399030757141413215815167284570092866238500098977347562463528120151817177844773947802544340913247345815073024483559295919186025208244739556105827180247545800666531740618912882299610036653941518656104928872036220963763876644584015161596794519463925104991486469461358451239484068671648901854717826200698294737394278579441812738456252836426189273371899307836059851380612596829730255859575544252024176456961004537400059421801479623612426401929309404623055859084885845188082156201251866816093985036938311940917256048094691021606638963018470321100711143399063387325070063704748379521930299300064909223142059906240316589308590363372722495434776092578903663507161491440624077824014020186047461882117967770363264851613973114749940184848389615684717978545434990935498654716210264534252810705181880291322067039444608765542636881353448378655780702196659533321108456700042404713124001967335321240433636379322375831605898035350429487498299323251908875216614339320790451431814664745496649637120829441387171091842748167666125720186126154608116301817542682590343909715367696183830347713065350227131489765369362452372417145114098352715239144241166447242474651646259078729360762109166658360186372698206519211412565758928012623091037762802021494622612266583136751415914826446958133382116975112801238771194273618334043041806683954755799692918443465865896274231311740418230229888701027948417939770547928650387116668736675641784146014402360644599212890925427293145652940562171302870382358503512323283423436102037086051863035528936953817998336900030817393761683455275675820244707933712744302919440206290978877845746665068256535392717427549955985285289145641748522535536996495253538933546968719977266363530326221756421165747991918742980340583616406807879303815994060439623114549367003492183479316087891388755776640415767825783398689286288354544075203269004445143286795767513370742253908034202178123146588478400644332196693369292393903533951419187455031841195724205780937219128369237531744930988976113590256765509135690963444346733246594922673622832719627536682009820472960798600547462389323392788940975259337861970403522015739193415895589682185553136410227239933394398358940681369677560306215215419645886997179568908905105802787143458803423644518230416923848917143935984173503888219280431566019469211519043858445057135560047166268783230339895954903340636042895604208648196863140319092161849426339188410153864781875405090269828467305169076602438452731836315038478005059670800960787057365364629289746053638622623609877471407062100059247239883549425223736532766851050194109758643716412725886012316201574960905719442562493363929992693210434631829307820315508366755666484058393596454236695763856799902194038713180827116731571140999080455128689018888823732168434040066677706174800737732457335425339924932348800560716499835162200474010240610296564964740135671997084728332674660634240804287139227183650699065371218845065894983557145487624923030239527119515924026480005658603921154231714509019163888474187448756729912729392761591669294324110747646134225216965252279601081034692005656784212622872390910040866392786482092796367888194037956255022028589210812919012229629316140925030634572368768006264366182143064989635764698130815428430424951357017147595186438419224419009999631570006058452238132862141017299560477286610634451741387258974196673521332210647815665615844330980591397632631915486051837334708615076443791305436220987645028546838177877273258809598725313524229924478935840465818041861311535896552184526919309860020148221255927078627552325339778249571377938985322188706876439465204680464821982137263212518253021322558911619363955206078403159619596463721317360561792948672084130258814453800831558009461506475824857648094618247941907141270627281818172337172681399653922351705890184049497944177999049322839472945886033012475316850262414231721896631029406008837620476688349509118210048469182474555207492609213674602313649494909254212617605878650881214175909422411636074112845494666777909418203935478785410125760968365853464757583120629784770556619873435067787394485060604695549191040267268323826171984025800101077225629331014803624870713060841782591716295970652698933321242688815517717476515349118249597197287352916890398062929542814866390777457656786899878651694429208360785577695785183668195599455460178412878935878881238397825358530236910506405172983940713021293298712504677499542749267936213967895070172193727811631296629757936315002796080792159380388258191097464047116078982391795498328396484278923942391610151591422044511294405972027003514823089427775765829603063247578783036257420008918384690493474975256042314105084648897557534809885604997653476568022861913026807246198525147649743407123776256455818487720412281844485801518342781291321558856967378126838030085906664863072781486091128297540711592610453569934866711409526883595611423283853402718737534773199576059926900448544615270411236026884373039732905949429181914722815169056751927526714232518669798748159476641479017169453621284311231664812311360579515993469828665633059130989027722593936310526410691925083649905477292709500266748684815388396885289022633749047204717031175716131714382260697895532092221418389748692498433968466786847615957936933272886120379862175976442148272535252854508436812942738364019008680909332805255391044561064336931900557995062499926690395576576090257351434510604473313797399550040886634828789394156812901041445263086353511083804400981816192144046218155993090027040091542464293675538289573815366905722611984975976008543488079399597213382445332083183180122571936961329732865682402188156265534293660766284675262842684032957664216334930701564581811619359178207339171818012263079203535381728221460587481566163746666842769558824626336890652219584447003934476045097417078674364684086229282862623856472211451277184945471602449839900220694444761879462246912063323986913116506915957697821068875123720723628944639069972932265910608381010986733270865244981311020590002074951521150225677107053949239652754164709075989211192073989864409427733084102656525732511693635045765010622084919047159908260345715780953599407651685726651302560810881790362890180936970820210228296285261689542421749604168976100627238392085825056433342346460520108680564006965583052132224450453996194048110168996763800711806485613155823910876853892227253866440017282775401883329888380941667547064356087484738799287468818917365157284630668241344083283578079336942615886327929650979007067240552335795757015783123772707485720308474888660816850932026181427928788258672259367998510334824428592830258379341718055349597325374602908636472066239745172784239112425491939119451789219665747061818439360800360941679641018282174990409309142065802162115270062189149330061857656309703622008749769111988499826953837047559837862922433101233247832066945791555692797884307134111613553835295469087836597131501562084712317463877269516238516805227449976620779192660681566040297817263761250264905331571268013753080414378372527202017253618332372001491351580335245215063269655804012833333422553466938615744820830737389977200208615618185469788658697658762243408632138886953077877190588408495148160126108216105077521284886751445430064787066260549970513995994069554445304068668964706208816284929792461896612878180381237780789585884079438796536707724391515621598001626024834043238053701475884513532727064316489697154511117188715755855469742902350589291463610662132881690542125828960885561034042684131312522084563076421137531148317554644605974985296543993615320834257933938209721768125634969787335495906522535302541077322171258776623602772932800050901294226798007685125769963826078534152948930400732420316362358805704647723625362735270447382320124690157060379876795719301682590768720419260720704207275865687614331052800117047766637513638465416694595347659754417411823114372506317558421302572706584673412844519376545390325669522435664177694254731472058677944826264189464307663103626775950215706630278448689485083854136819819208335872701095697835315563059452655047718500269192208291404096705156191297479963522635924834065541219769654896355417285802628935081847287632191685226259426932526400615834639243255744855059625021489465527340141762348013306399691880292733573119655058763488533223550491190182414537402706150771494948680747989733028401549627186977200914477021464358889202261311105930129733552525338964035977803521994367529008144563825745102734723021538199939532283973379742493689280829549171406191117769835552185061084414631021753888899542435490194539988606174785172030447494184241426641603750482473588253806482151662264816140442672123465970378833103042078555321146952060529950612484539288702305365222913762850438291193757754329701522508338685428326080147679426588269840046994674576410357242161708406680269046238991113818354621124875264865622599564333760828138060440006203333310367336890495052458444058239724512875402555785935192250785020351712752515116898627664258707811139557520621891908247960703652007196642280724108300809324081582457427846562703155290593101454007717803229644719723470990156741590330489700406121679716405408293335703487991477438673168049213594363150902214457557039983591238729688098521721524916224803358125186965156601731821949343565883313803711769018872939653974320338223901793056018990559287283042729509945543451829432702698814852130267922073095902741913366345106473195355755719825492487111611713920526128121659437959338324008404906151460286996322555337603329542239361599016346021758187831876014152217630395254206996821813427301298035684709192374652401349994057152936857328635248112764570476826565918079267738899600532648681770603146330946341971300903155193048474160477920906048724710451578265427863135728832355172050238252737562783552006573093349467776713223520659446292877097347473561505535086421360117715888186754658247261881062104697806545096180512701401584038506275279329519795125339658104091105086292613650974228859495695876515856745549843048019713532365174211438880599820643107422298550881434142722595224237644221117663306172645689927568409793496191572607262332640173543379949940919032997854233038176842092277286615772812314897463267116954584000120012133892218738667470561166105162934245076269315470624012541886524067071591195342835205681503235847619205648948026821493149203335731502714378270396302783512658571203993715859518683565487204020941736295715091241795166910185174171387250839188501167283904663219424103419963892432309871016775961918099571399902980318448277010089734907722223727822392107177777061820734408248043089456282349822986895000612094018768219003201099010085631305317722784510891184863480770935122498220412376253267873937510367949897790701835164858643176765500448553095933999455828902577374012159424272107572203180288263013924685254088118905844797230876575725389266710114727275329922103770368595438255340375072020522167746655001509977321020710682182525531006116273882173735142528456314227126255315750042960191168154163945358258342013371769295664546071161238022564660373970966249801240724203432820191709834636490522981677705881936579995400101898842868876381320680577140907068861911173582171048045826117667614675090576813428532646961558515800551165691715643111677277165562119042196257122687301074106904445423357221691095062244420875524612590232406875564019463898554598162619427705129604723649632033370183498694255547170094539264044068791610725322759858174943618600521099662569476265638352085980341112081417660715828441860880218963532009770303535327661830981123954311049118730443137060901847130053009481207591110079733161809311686041915321442978151229236903264939682192201334497961743802445637124366658875285399615421297058156760074631354948553517159041620961710932660050495424711992381578189954952762857329694825822575168962580530674753592008815737494395274464083150496998959436982232172361296061435205947244725442493207061380008670637688714795593446844964994772696185013104422238072093921195633445323805655401996165485851430606561087440492908998234604691019446494552579438957453818883966240029709070367125791540729508882476896248830116913438224093316482478738694332030297865738544570965744633077623904043310144455808901362871708337754016596379452746119662858046632125181781463934550888427599698016701559946021115278528191513664646835692443422069467732734872919163261222577580181767721990974093259354174514349906833230261652110519968237666153247505959949699097293384773016914984043483816438444356424207903260035778219418297635418997800465948606099157375513421324475379498188233499013604616967850595475276854434795075584640776953759463348483201720107012161727651648558151006642561763136838361366576406979280729453430976129289410094832435669513545325100751042967814637547525246445462773241876725840155788266024511252796941063670579656782558669491709962584714185417772588628846898359332385251897621703995209995879442214464033578101427081863178937562782603371370877350068124866680155223142905880306355726855512891743113583850911499335928740685619002216546964766667307291309650385118778594471426530401575480773227533098943323800819460230822592928921356789577837631541918225584006160598108739108872252869819188842453026783232101632566319332467870154237654075037471527670748487812950052820781623481747503780661357297851997598708177616106165687795777193984681339104802279568653957404508274476443658071690302102374241307398198936864799975709113204586813581369923485848066751980594136104479113502040547026704959942372501515257935015216856906715089572027688982239703604211667248507338382825129343991268378484669113758105896767281489799657044467843320561128716594624290378362095917469360532990074886422844385274146267907781437792229652142089645597901533301723421225296909017635524194163496406312256487522249216344172677281538450144046897505762976717084599614371911584137627242510688824193385283708935289174840570604584589647717421024702744261085237231506710503530813896584167869005267763990728626210426557629099371872614114916912100179949498305521594556570422766832815074449501872651500428214301171885564817447224911509741267364335211699899920813458554445623644084050012217485450928792877865079255546767628088268293972011034328573022297865690027315212940775131927868392277037818242376786390028863598213205678806180796857679752294646811243965328744601138035541046880422354757228966880922710705539110570168549448472183051910031618064064978240111105814463746622171637625075454531880593887572787149654156096621618012009804443736816981310581728973940718706624027628316881706427052031770639158614622538133559474172341060101116139144857427880391165152942277047704178063894095349989357497000516831593940362069807724169162172570812692849506560919448875623486936123586925107368385433285418278791946089360616754984379996216187355629086682797319195115547314440056727551795919900955263644747183801195896511581056880851033066094475626814205429321514566651256912023625774354940009651140673421131736973246544208531304051453415011255705520465434646210269021464301958229164244601971121136258998619029057301403633890567410709714688731196468466494998424325732093855713898525785047183938562269397677809810477283038261315687610301550975558998820883476324410680133452036841378748072645675772348775879188087429571181752950438084651704193562535108996373641898022593126432839480066737229065073739017319488848853886038949586676199675288015567719572344223295004009994651836154504211943910482376722127113800067357924778189265762829911962503196767609714679067823767513894904989989958263096935514382870028970147778454446632751507024659518271379727823848280696518697088416561577503496856929251864869316880018436750686613472227430755567037483690540297726134964281691187358858467328641498916211907972053579878031589225001081925630436700348793633458011733571749170886456270419619801619229541021696626217672564230197504555760019403005426167036435627982334582777606481385483070949212373045346616322274020626165292985685285125428520757055081844711523117088645281432503803580529280839872832466364839977337947162165363479141008913393185218820579525965263094253266286015248599858254858387881098442634371123761325968432064462259278059163950292118815190643696158376268298620313048531463672331680358311646187141863860113096432148285682891625576287614360287117102461000566077368519602947610209693041205271461463782256742184312967347674072043354954895929984298265498395269070653695626766724851017232204745552560338710842042926892575054644168530871009815332232327681957261038184129776808646125532311508672853946922697838912077376303389885174782263470479954170606295618194536109830679751526545592732512886131098169673611135397639033235834346008375902886504912115248112090771622422989538946823665781765214268992712498234747981029999521254025891066552843236160347872580010219536173168263906321647600930325492781678641954254822901917373608682176102332189151710686376383574333280937911002603198978105652575956034445844664099902285874282661419708586148250779925465713561269076798185409873413992334368924489161111259064255406248999291702419382337064858309243806103719257726843717208735203711531223958701213174431329378971835975817210386661317693893830903467134568078121268192146212819164906574275665077780185394973047932491789698646507256365540534216745899949678533953803363285075953128877970242779095119552480726444234566317988337920001693260716184597114442062358865043824179979377625556275653955667622045800403410847225381208226851897726593033346890007628928840840892125404681103161598114661013304163106081759069537339365484580079527719089650502049577298211867915649883756812265040001372852301862144794126480055802277265719075603692234653935042909489631854768184182517104844222199685176908206744665097254461731567492112934232423801734906574566922587933234712707063292143291183648002057503907039424789091360227932538137141898425011313575675998552858776875144368933775793675320307992767368580461045269717312279386398548633259231789019404955475511014888898780284800218293897605532308640807570034550637686808103672366637228431660573892359509056801703660079821492612577486110617384550696568766108235482930521696263471139098507711937233552943034623847458566815601235513961076895020728711040549652191278668143430900838887167964677183899566374894482257459584360375192983210983419048205917986810899543166257710477699504160415692348767042750851359482440224246727982243303284829186312457858121541212377084558874631490869533249912600925956106896559230433210853254957964548184108357403844902389856342069940660490565369414155333749488640326993537688424565215610117159068161436970366589934915364427427598422569236239315105384536411236987284763763011971680566360189845737365588675019080320168622228353544198569214321487826863739873206333729518009050650017185742285349429343692182973448201790441218903634480159272664845196882062894213999568142990236122518002264615544086439095911839111477956578718476487750990262843714232807872635956076740572027222746846217435523219557362145531886411055266161357576408439399092218398557728637732677775882317795605962910612347230339214863858228447176207650473104042921701603678328339009676034959489939353503188899071403786742032927654334662231190262664174556607822232477043231980605589335365022048204443768950949240217201864150853438776871170153250651006004014713586822424225242265439712768835327161489057259223585113163783876649345816172501648724241825037854758687006586224682588310249198694578889454176471785296439075327394457793990360714692686443452893986488798660628329148350897054629653410950757579964686982898215632384690486379243261753421321357087168135719615428313965551317918986004236762987669244397616891447108109166518931624800213180634129684183116394640380496678008823270699973240585367903142929036334578065261328709329711367977389478043755860304272048686231570279447901324368988974582938066436092618187388184479967874541921216905881394820805558652982586191184740161248678021280547181617765731949230721964420716998498762293538610417465285753215492051053079625576572084471284590980129017543731039702870691521588826831891889139790489859349076058574525050123150349047190383616783480689632288635324134977463838722962716303038326589497091215982075719757437638910167327930644436647917489710752741079582718477440715895966512055308900563969730804359977002694750945873451116357969128191349241919334586886726761640386751679454862590492943766269968951499707286204444784906112409069508160649808691071415651396884438097102494859024523194969491778741503642690484901043553672083534207570389098826625458975957114725498358049754239640988445892760582416206292130685238349146668186796791639358874438836545035167682382058953187723212972809507359771748731101103089108768143684747350552855335073289863174420084353571147352410740923157051175489410643480402834935358539971836899178295827751113421265949201591809003211239799876497166320186548138723944109429471422425288714440705265785570332492478135188061339187905216796370812740629953332867139662892305693592162068966668566155460322651523661254987277861491164525480772573638019629646411927616806822214831359479937563082666329272248699265400777055206385657894585567564909685149474134946722198571205602267671196471897801495607705178071364413754203570628658318862347549829370780957294351235355827649505077703556254476700580948422742513177565361002023853733315511945498329580493645053881387950357550792678408509578965280190473812061429717210748035184251717249070800810828060359119453872318141037000401266984844196962028806323149352020992302348054809720736479281366128577938420734577555206307579477505268047762487964766940679040920091062123788510903892454534474445300987865353024306385253578337148921130652224588441934149870997705819934043815355478396347744502003588580177760794369461966030696624094804987828571495244515485053082764993545831215132004277687271573966066430081077985736365164790646703857460845721151542375679047687865148960892230084098165327279018091133158427758492039156496926700978141245036224522893605273141623974549558479057273100703137751720851439385413747842530678063805523594847668060657346127318507531219846027459940473922263461372450944154855396097761975854836586506647533729400243266605513831894810298409918568810754417895037621494596537272969273075758795748044842789836003181403844537919278571630254679557900979060036449775589380447745300870015994864728772279343526814904282195303197533396411528272516696786903443502697583493883370594093921334162628638256138257414770981105028331331232161028681469471936438778532083374697285319896145591353267897176324938177209279224075768822330579889095231017789554263637726605798924873665713871702351592257811228580282474977195222968060975810782311783205161418035711130105878613261344145192142519047982156901965895734376771609131686617775376280799833003100398579382538453283274628038217212957070818374253187156328364709028449780559490229334547792867639384655448310943325305498895508408538281745706832617577776781117863961635064996215089929947455593805805532790522352631269754242277410545650925064970510265883340209893542980686405125890334211808804176546418033296559584987251101409852347533476834703967087163765011784761588806857865221786912458544821633361758532570240007989407361906288239867230227231452699621369072409808894095744188324270931698958369628867757912907877694890781912379381602976152601017875505561871803445572282820604804050338691339763604898524159408314632058275891540509536132885276134350295088723798498943119826859082574343066197852391413966808724976959972985685574049681484950218683144156735421011308906289867529274591015308458029824176778708139941806675354332124897657019312474329094778531562144115063800832114830807309501046421031759118353448583442569549787465120081228570192961273384250373989219195394768094360770274435195768925504399634782670354714855577112940964096345268673686784885101688505084726690298386338950372513290049356229401240099831737335715913329726323168478051309556148228901257775748875895004703039514212746361616930378268541334085029897803000544085915620722935609752888549825305579271781344563630707015364293676066485131022496058522500110848404815428776293038177730582239473718260481050822101485569554747172563903527072191466930914700157457722921363919474444645067607100593474616808478440058886260217299394067070913336326637683360164503747762805813458959454933690762801930612565429258992761037762193902339456011984836680790455682863076013063819797794291125475033033854452856443766988521041447234350618407998221746777710722828415568094671763961356181463279734099538047996221542185364036868722761816336179447492660239660394165091641852999734894894855355860422207449908846282442313027253589395374029053619875453683470969461653047871391377191682863311138343044803122353537333532150634088705521795587060389095286638528809740216258698242061089980864159643209918153675844263987085375683937275514427892773863379038955392168863520249777023789644137728843200404092686133687742379317580873328915010311591877760179392287472858719874553466103900176203882572800961252098443032986573913117049181086162078517237141296934454637522074826318940870962224051886835110562680189018787177610840691273998833465273599953982120241958897316901249073464031170246745248052940553814819176552156002819378943058581015845363935872222036640795976902193563554415404350970455135351527403667017573619803205356400201721641247309463885361247741336530722191442359826481016916283726332923492928068465912479689246376504390211850530099718424476727839556427133570666601540051717719663320576921611448379702579730115352250165344078685717302408623909333348989240201792771117143860987851112669702608806995529112374743620568860316439014857918812945838599409902603916871188025641687068015311270579030257119688879567366136973768901688292393202924713679956355112873983797567939582570918232655350606538177352833719445119885121745377173644527724012990381245738826481679732674337044638531855200425456581518847070199702522511655511710758172143186954915087243032973247909618777137036941046431560283984347318909664984096175822529409550766905032712221858692073831266117883433738105534251092144709570076204907427801874198682837658318781403839946107561909581991206789711377592457365895981625338902509960976108985500025389530226410183290046761512497368943897997333704067350940778750256011489426866468307946642994212275453256168956131873183791281595616065623497318343684297103656048680497068185340026877182794350516949803981298276290931304902174850627670209425403522980377968615075546617212255381254508254038775946009405442370748806771490785352764313444186123730676646825266497589183917753854049167546549173233480906586259675671900010954155407256236981003377690704809287469348723804441948450992416521081527265076983373954183930147004685201446831922933695767450615530099086346872639982769777136046364823985070196586587211449168997053828071345358905950831250188302761675543582500127736829337859688595405229694962944591586955448310641844013672361815865165952244182480187940150773797797384870533348464056060476367282924435233472518272797645478620164536844094318487784625005783575033120419682552971501857339652024780834479306391370901778870289533015072033975513264762467124814316160195015133737473958854790550067547820605030879636858461422926801631866063491391092451016892161778181143432646970515146711572921893715166703607828922766196820636450040322676191152451158317374923231166206696243042130530858879325236361312935636246148308236315157326366146532117628730054500641542453032498889667681430763579912883643397938798601346345218171959474765345762110175132582793880778721176930593986146800448578505212628664929259280407301110993749830629995020775976747799948348736188829772223765775597923581530727573667720165450982365132227296298354650756403108997194717599672817932589352032611471318348297422753367197598933597487930196050902002767564840456932324462008990180173467800779700759313265817229852997837569585136636680240950429192163921672273021207823231341100323163997421525246843417403345522770775795016917594270990185559874866027557496169792150172192141908183960604514861222021858752839516025392891736061138239910347797049175656954568011963580900608480192545434781449635223314880154391099070180238927526572267596915393164144182833147144347475869388497547216639922531106347458211359506828769988099347834721137944256670967134721748769473723757894843525407608378178111308721335240173285995344831525980569165012640144946813794198655336533745350203524882611873093906127288553719906679468562824169912557365796092261746474305876580853705012444572676058405362151199722123760973520844910525732783277123950733904860082577710162459391872683003762705552199293221882362297601499875352353368590415890780750402685796866536923207811766301115846520284990750507853422622952939504477024271490842645031712284779118819025597889243338970492522179073227918875355718175278122930183865953581830761468237816021699396868105228700079337577808382173292560912211522436849323776338202907459164929717001554602849616828753500765099755578866973941864986109664550446408069486183899642147552769888009798990028059739266853556177833135637728881558051609862364769572372466112697683015176201876339258365645420653705854916331815924251434418677065648453626409322838531029519261501042357591626396460666874365409358142990663519333600896686244436791125343380713896697732508567278380325272565940980225899669698125811459824716071025565713539543373749562533989430704828348522465010678166181871307179599628410329538852633676223435735362783033872570113540165134814936494607982216144328244112004017820606088818397826257168000143416704120932725230588640444747715001363626020758932075041768404840062712340280944302773233636177455973680040974048264629806821259832201261484489532581598065177986381194721312869533605547095419120783381711784572688101618436287943813121699821445022627324589405016919012844785257873069432074209618179008305172156242959309226688096598944396460456481843588698398815620990382620270977198103000019817070979385986200787565074428809283960865085570085906852551155126764424136984396336816864140239755247457631107738313199477206944611311775567683390043812422437026868250953745447608556410108395454730307430428628279101206517698983172971979683521320005524928657494238329125893486812815298306561496074571752027430162100715632659200862211907153581462960218586188184666732744291925365719963235166661358530179289605937348783223093258766263309076895680007134739376855304910050861669226468201408150406451665778042266223991644637451379267336575730851222938943063485716595666775522725614903988897115481281770313773650218885607871747348994513935496123927167643677848295586323419913829652547456697368044397016682317892389668383649731652200957392241470575395474225807547356207874654320590321246710482613670541488807181608623700882928450695413097689837655138260584280346007833565109780261956157471154617429678407272802043988806968653002251076051316493230411683437199243755187991827580172265055405225730840210033403781865823079881466419719678652869777971527259627994301652118389166988517916317467196617743888786077537199304069191718673745894763458047391451453880997241664821079830324432275465914321515164075960748706650667021873832453845624948523479060063281669214893584475105887810213777247265798614731515072239517763607006156038652225559028170360768766967831831772810570424078640227794169611258131829632325468061617068969759433502258712030963355256396000772685210409426662741698222809684291404234425432063680419282068800591634504412376079351144657860170654111400780940686751465087395495166957145343210217681565899564218669461436451085739480450314487024195785249135178515276915360266553448289452081954989882636291068276993355406414472286923197314722791517693475288544661843578672341032868524878665921860233405914081918820896174326176768215664939744884492183541078238444634831329239036877691865740191937589389811821808366691617341700391572870205194246010970140834868455832793851560868166114889042329543667684729436971065277828660380905910240863142152294037783503715136458379511220122794256483623063215125821760020637265507132825952510720382800726810966395943975351720467388244117320411231242439381655506848384449534458543460688340412441257283849463524608830983107867067988510247787089342940051896115249824018131495314148537738841711964190423130102733700524253310127339810981192048984460440681066113936707025142195334957696678069993532815923457192350809659393860733259136713602934966929064552352673680186706739331135851981840170029388065681850545703328046056907818693849922677278314381091635386184613585636890085361499075856818079944223275475918401435270089259726671676080137367893400349789752987970287835139135362641795313387988507692457828982158477073100110635525312235303807569368494405962877499002214801390737088852630925815364073747445235029764302505030803292199726503527970027077545710045160468094994914349582835851454907789138378705262256894420492715426815648205814563648354896708983758214501481676309084597865162190555724268498668422022473831672356471458782213398913987989394601259446525314545805301683079826801504776940295079361901903107496764449127126564067748507945682423722032345310805536786191710865396211746626414976145035590966019275398491868959501049984919405472214006434914464990264058930263109810597005643697004419258482475609656069686822265668395957279077101227119187948206551839412885295228044621224486242603160496290748233691596747024382484397271214145694949181301861959149286581218472122087791903751596582125321447199811758343174331180036136835949268351535393941021002591599929328044247822142458122853480317656184576877285350050210220078876322671247416779611294028724476321532619231112595139672082273898801305107783103736907229293440769853384215350744345153533655997234070332695467625921558986364841351384377927373142293496581403392282125764905681019824651572711590336965266464881608411612562029308757739251177809071604613303820003221414862536393608515051504665430386372339742871140219261911631595389045986332857027700112946664039875028540535523663790501813546154133414279736460195077724942949141958914248066285312102567300485143345861903556126783120892475396752722458806338367783461573222083822581699327605071031796443774861779668566638450689591281983510702756176548664371886855457337812642072005299928793881339827347189174684546557016735154394128458082380894058409892949322597913504471061453234593023259790223102677733846863992967388489638557010147823688071907494812026786369799090360238688801825030700086209026314857512790048380756674215726532167615299815468720875076060772566252845860210401729408155407481585442337052691480728719157980677656485260536230541296998210854923512120531993523260847664144820286201350167324922751811984681165490305242962429320880511526627547208833988342362025315360219521598868194044499625616516089596233072932555867165291563361433941496023250957201820389919771783439194005187216429252671693825786531031278902943126853273853496014637070077520331952791108399446906893511261476116028230995428299445387004562310943348558783833857345044212490643168753106959813713565036639838757426100099500299661004448237293816606440987527224222757441400253367749180569368168138143002376115911494279120682422710904542960573576938234341677282022648059648612805618699993463144433193683018644215632626934848404496735489795217586704176225106653687441804763843460545036270628860096848594230356204377771711598145283977369657415877670911777000320665031711504238729818752128612175747002501985878922239076167482803031289029160170204814029979599919806400792536384004129650550329115924187440659440971899874732197817083553342720832884370663389371894379892201693727644610733850603909098619707295920031467335813879666457187076400922601520030202857012361508814904590123840030141212978560960409397817655596296750943112186401978765700120489149646697829157270711111460906598127420667354816652171570063182078343287399518606765758899428984120992438088719625237747652495893515222878950358368504490878500793545947193061849327823856026082173126805107491399174508982092889061736940531359759272185660564639274498196801082818187758740774558806070429084314445536884303671616462113157559712926623274985875041028685501765042291790715167472616096912953636701736909047313582490792369094749477613828945529985039569519849259844540672958123230314921269264070589609644112520842296233207914555294594355859373951424874265696798679935445402039909411224377706892574492260100456767047531519799445066923255613885527647187281590391477768207399768480872014465587563729207623516188229629913068060517580016337516929265546124441841477616154767392758845473147104743829222443682718523179672744711990541329977516244740155262641415303026233492337823785683035933709974312063960409637072875515234235514937626601213830935705415950273084608304297480265183823337145236576087940146126321060077103325593708476095171515626080924736323779956886351567901679340140141553308053219388348179449246515160032802959618241456362574118675199483204731040773273490324719899404150520659301207301867410237690903846379241616671850330911777596882518730212064050045196451291763502107898094556396029156518176533312736090667503586673014526239311938664092687899339292673339816745921648794325459775554374259408345984978910670170464239229578033545167334528144090413798885075783784794223234513598314350098165021408450897859648462277310871890226115329112591165525329402047686177565640122202075602944344590422169666411927241512738314271928324807164435980216840430124549756162100421415500715010127002636422480064647184578892643146497085336848286731802443855220076125300653930148740224212766000395961919393013201449688419957617909419599735986206912854158716513854906854512548051593346335799733742732886579419831676556609081337332237220242258418029915266312003084978693047335660459693271648839655340162348598736220528198707149982194412998717769198964615279925078869664765404688818124466565348643390679945275410030594256100206786746658759343531889875287623399733237027851862164152497678452062527099808825874772617621382341831836756016070231389527148579905976340773856551062086153690918259094633568644740365703576084518309207059707534048597936397068583325184836755982166197075623334471807458086458287533771313814460065725842631857428537614788970460520619732151672686328713879772409151171152503904781412736939704911258550776549248678301741818758852650773491863424486839504907204266956962311175468631095457310718592968992783129740808754979987429806335720373301039381556954008341281985443333866638987551696671732290654157666056328874749100217053899454862427552472984290893033920915508742060663314227604380695932660858331791964140427354665536207011874580103386781447890574334647237378888567781151388708107026315892472205920240623727573337675164228748517071324708368159509772365191884031107906278413110301889857138646946437769603356284726711465784455286534151667657475345903192482749210336866194810496872637968677849250650037518421218669582437720354998841022205727618938905085065881541777254647943270977103638116379909514154893511254388263505786982945054192804475789533032861992224185076898946366097562892243569892365737340077491467235525718321323022592230264966956869182608603911231266219691192595973120459956152033942180836065010822086100008834982471162948233440606241404235331861627309418662186668259211168253459012201535155960157431286442261709429682091059834566702700193138656888670956014529861238588806503243413416253231334938244788152062765560581111416818438180572044984810230761420978410353780578720186873590752961827153846407289160461244517613790386451427403519987054532076435619577711466338559406284054619071133274039165250778979124549454422199936511219426623613435057072919235215458833648074097124423209243062355626180548632455365694569818494232341278095201804789978744056110881636464647537367886551078557455607048823121849065374665118392617335980444903951993241080532342712688051104928619885311264621004108625163163955234264784156492573250826348743751894113649692980820436344087115935410383287606375716866826023899231270857829397079609363431735609315605037066704279082765561348724600649145303284428117673581775094259256932314003495381138965414312278351786019180584036955057632540342396396238597858724043142296002931567839497345610350380739413696400808358455817204868523568773029789809197104924047371991493162742397813901016242877110546709857775865708737352982240489177299959483974081675840081635695707791746129519449690047218795815894297013529786444448967973714643486300782597705301443422673916749065418046294613494914326645814490656305117043392275766313964822620381943324491070511300924299602577119518808372822077403267543152276619166473635654818747170556401524683686175167693517215034573794039605925873194388179501353681483303619647384270729254044233501854083586305932124081700280289894677069564715997544903276764578924275227231427080185045047427308790364880595723516192848822857756568011607289989987514843257000784303841274872410467115791163475965112862403171231680406947647030513299385294617537060471380127447320283464674123126293092610074899886347992557600971317909855711014405051060105698315516427944979069696908685027048870088963740663143627653674866581149718275232895862752320775544041583623184108961008536710991172508478151000818054224165605771676300805512793198648264148019838730401391065828535499892749432935460627911953919775777849967154583259661285567710311025824372507107898623441641802169608911936930895414633038365867156072150211484511036452424504372581535572719209749674529523241380643710899108108944432824297095165231557796101367803585828407538591348096536364489306564544271210422491474294448809028405177626886992409755847381592479362959903623702106345875394197595171065030001095886946835896114168040740021538406458059438782127653496579238521934533274234101791890211867089235039247812030757517043298204887963777996069727474130929532979035021881701457458973269260304986687920313587515867395964098067757305050470895585541284766229698730505157717641506757895234233944235224486372651874717405570723439970724444103611090766620285289804027146834823474783030075915693567288378057835808171942189638282842320666726337717999576926973133032691915016487557331848069324463246353170401705359774767525430190252490027091501543370117088292182898707289310220437549786813648944511319307754033389489099338399866887862490774091846304887668495898055612569553617086912367029878438288594233109398793636039356234639847139408585237345665357585073271053812946423170398474480036099620097272634904254883719727003418508903498133018913381138806234802758589843803400490783152459875817025193463812090161963623434043777819028611632732089156866801066705835971338470722454171902455229023758615381795281379058886196921037453067561269313471275159956675963786965468470045907623591551544659667858185609049813499358009844790666054754962854331567120486866662296162305975460390192326990734644308561953487082791122515261362006959310857957893232657663356537414496539495564133951033545685010468670411309893315566925211536011914686951830125159895046794173965873955322311480012743978918603550225777132948115000584893899706336550150523024259563460582952262830874390996086890596731270523663070352141646751802398395730539456180579582590745601819258138477080545385966162923236695376746870823574828275103127261988938637839788959569639347261432605875164791968223358170296257325706712085785886279176921169794423542592854225998698664101503587168932543570531847781022975614605417779028124291002415027324710255316739925486016338014149534612759585599500374603348270125326643346361179608930785004474053905795172067213773963815225935941499338874973147765768900161542268071629742792494030360275695489791706510751986540236152490676443769329610706949691665650004163242032165491442688349296365003440671489315945265249600740483985358096934034604010622116448230653546523364432267831209347715403321886044659164824548617321988842499019973204109033584436226206320876555010598175333222799289626762758360975356857578971736388840040065844700076479683376472695458139484205954910971882688670316012032339523445209853708673672374821910068660951564031045128581595391809024445313419019392190581331997569157014918990108866927937662603834939972890544604227018961975527681945872356163179852223225713961634014057718357548727452668290449894482964342090665159261650413676210486785760627488256132261984421718875448882721789603752862898330537125503785555927202111583898776269542926786854704200937914749430262552092311663776978018643404473390110454570279428845700372855355192293215724258450265456381706043956599230095342218602392301293307702268478370048192061049830439660694964342399750814458647119413764632458620630874767124446540776613165091588573566705853697486640789608898628557561109006966543026552302557977993426941119945812421062513386827038371886087636517459859027943115665097267766109144188283616671943707920072779797248070384461290794115104793468033409320557353356194901315149842273286383342278262362138727132434790296603547502467328786760213082761488472363807765069064393536055108018861933330502150528685447610642684869978207927304801471600297334656772825368651998030462653364301037948041046050396435817091435981429643417558701473989545158607817382315027817666881860408522950858546420876606689958510848581836646828768481735840971516453837556280169249921997141715136693336603840928102043575908076723361462652183316999194860411071383891077214659605714576762570727197315167379948934965431439619382241202303371463255059127678758243773579178515975249284252286238267318678447148755359832261837882961964557559902472924750006021948885038655561334026885988816825375096783572665737768759743742327024602000610153180132661365781915889325101541994577221844553731175015153847012891911498539568679527752360033430371975426790718029620318983746987399469858275212752394421788779782609901463942620484310123678501207216277982551539322535221161278045030703564126916074534064240018451570439515266526936122372329313161394588478676003479009079971741017390891661353700037083734684880545073463004500387566841283091740194601192647601859985265566563049041394092517040417457838385010742413965705219967287844323629846965445434644801756347784374068600663079885270863908353119633755242759255153334871324959567104285688872752010911218546811835417936814636205658964562755047799599277834765399645564085617694799845606854654424397271247198252912111988579999147514874276308585429916664148336260703826343581772256521219762424055182776000127873013243359762697553699966083890948527213588465945407802119623135686988257447592239792130466958827326855295838494107523114534807833329808425566597561538011653182723170321811861558884694165560208460972337461526857564332898325245866355208690750603164770434026418285332677810796786180343631388055531069447439677338403536523315821607423192872394507160258058484953466810316371782021549868150661533644112584971172528299942637287082186104988389691053568998731442158176455474244142672315384730491232346280555270378724680753575731395696713634397100189023651132211754498801334569623004114453581720898793330443450723846301777689569759892467847096293198668188913997756456947069849601686259269296154500548787381121258173418472988284742296824144895053565429487037400926575581394967977682971563622138357073072120460533206202632265002133534813428648884973492742867512711316355689776576458587297269667154292912694075648793901804178272915306602418427510936288540791330259867199062723729821166728581722752819526815226873948658913281980957140870015016114222424075149379316973040253554803844556687272842674255723280400211604542302493485083845169885227775532167363995346747005172778369058852084013566091859987652830337789861756192231709393031855648114460662668897407546558096478825131055029028432426725642151790260869343073645991761832367602022721587515267899416937165673435592067778867839853557126816790790200051554363408982072956986780826493694313039104176132035429422031752050266926939827374588004238119258389988336304212713963385523309212667448822178462174898497050299945321473706049042035534282469723977383118989881733048971889526143096892764797058330595257681334707866638231036611191565665726182220055715450119332122812982630463774890286488964173243429984553839441479524224657489807670340306526823505533998150622967402783227358688908074923285516154009290021785253640950594941534424341065138893443440117741599924893521892496682551602966471308122383695175155706880571965926547476854154330257739024113754780281534336546357339996446043384541001432688166701421741449707411430880750916352242919940786080979506952524449691945343514459051828994016231241850060632069950505420530046784002674948316808833065480320491038801579695307699513147586316891791877131533239099393421677870377669590759878521788949590829603275987025815993987771838036793179655629881341389264029811015613862318039286647785289080830509594805965818510123298650051340071263726938936733220896277885771950923320224109083875794259698749344808503220253869199022467234769639090108605130238819243180755582278786140470665025632504555736099572998756990119346273328000612943399150619449733928445428821454848793000739000853617735973329225330627811623717617556658700804199011095115495188452490517949319684792096741722349835291159437378537676102155557296038712937155454364296027357608902418310408692839062067490147250740938802195726615131614667227602770594874463714728224884899311993421781989939654165611867946809190322784238086436596217902693328036428601680504120638675309834948995870112154132217348034736352765356755741159569495565219913422201376433247155729747410649262024663267132873860978255962272929680470163916314905267999150406492873289412574750958152880142052139964372748556697739598336886296202235520014352777812597962767615065770373140161921784546766335457476091231135055227078338158323365926843033379545954237624474760842349250034129648529618864591529750126735574477422512480377375058670692695569294742841363785573251242430266106976031224446076990261714771796450312325790229905412607508006984456405735271139842841793523966541707674230385058913280426185957440287764760328185987356792610758887669338384911806015503743436196438153764675743184310943258925997034230884488039384619134080326393813419682002289243216391152587333804494714760589711780188984510657065514261837766981209062132888896613802764624077102747374873961566807191433577306355151050528216540154381239682859559439841240603995328935474636735741536887155700848163479012263247302656260598192119734797615813832685867872618601130884478209312170594119628618006806020346915461670124118890299768137972364857643705194513924158619455597898374869205698030777189668039494930773041199913798849657839747514923770586842014457299886267366679746595630890818286933165737716056496624355902456108042031688183080889731835881722197631762254430970629338634752032890206334070404037488874635918131368608538330292178833509253588994588829999227849468380680040313068950050949955684799627527966246506887824164077648515745783430375061948761663438318902918803042863934393997279411394073506752795834870362384669822782525793665716903556303475720849322458330453606875128152495767960808195666793941012017588975469638118862503911781033806933591226155479374853222737184800132731572589739441071461923112632834773680652217893843419870770028513594858458978293748992253878752137731050673069133140707388912425765533695127406196325109232167310538568553547771155310671595259034647463906284336469821507877040196080573861906007913279970053172365278493959169138625667091470128015840494908955374523263772792361193052568816109757588258361077462485174819969361371766201989192452699311056920809744712234512975903715980795428851711925476132541189625121956899689692684911262528246090991714012488936726824954992943037914695122014085537293912724766969703669224185246835420995513006556790188870061679223855365976493111064588576579782856265246020145038360499645441756522119562353967273678373959916179509834412812661089256168759696846857279366885848455584216638659344680988217330675413513806875093167095648208083530149626174959646811540757229854364748881203429953211887032042966839922568827454430174339268648590833394335452579735692670937212606494674670857613384393776322969200320454095909208436080625361996128768180668430076677380731329950928756240203818098951660640970964354581049384560925132719893056169534757376282478714865092137123022906850553499736366649660790925172912354695892462331414835341408828785936758614266594980519407044366987771881359590931908547155127648868677530084726504671065616035091578945835625479692187496436071281571042265895284710901541535549968735485407261646937695356713238606417162514609662137105685390314187574430045787288816722604841389426969434623883775352791303588192387624219433053953992708192504997978388443340580299002781924184941920599051214778146723396232891959734542164924361731098213714056191590823184683099805798240811782825869396659558447073099749113747203566903587203026001895295079102630664539246956414770049333057776066265789709194755347607975816652965861854935985828616285500516194121210863961784925432747868345795473080467790422530406678638099233136720813892395770472169253329908388713188018588211050316251674840101896148890382271572056321521926388782601766514376190318226291408523969075595125688872178183343916868584686985569779405966859568915882357036991552671565530672113614516702347278684647774513824182610828016091941086015553755161918145858979553782461177841008033427228951258036926275287739907093790785013200334750534171693391191901686350156217797674456935902921557607883034735201749253269662927702169154340476438896741938442055794004283473094808972519547119397819780443519980247900087553191027238362873635915191986169878018221486569192118826662167824474041956993173881307845447169451700429162142618388955071288732922071583621622088895147977923272246915881558897544153878102449665576637398939993561513122080007498984194014097936046982094845370112860001696399358245091677803984287750068016304937662675177117555269176955680245893568696067009349212235273111139268951950891095225996657303632937383845325488794279416616976575248822818519200954754253232090489261026382161201536223552587670872589014173456609055688394899781370439566533036320492373939371314555075719027970958159431524169796013674484370778032924231373438881022601616739864039496082635591002241108295269320087658584151739583648312380766967808465094528280231478535464928300357128313500096161915053201403146417189675639507987349815299194074017880163236442851388541850781259843794884463851624694807949875731716126886785093879751321035549907638351218682170011096334346526373328015334719825947943249373483620426370124125352228969468360790602395259754799933266437108142383971560463884630975551255426688946746317121952558300449625977670676861979760883868785496730982780359846330028009636927972194635663252494008907476283126723903971167843805151601220819458350070973665158811676381767544034791508133105307163196011554227011701287439440241183928073139206141163085945144836554682228203009275900210638408758985786249812576750561949220812764901916103139907631239786882444105870125019338128389578275599354929074449637434540120199498361096192251198194470301855950012281586051298244447001371124617296927454986578027876957214297108286217435842342390078657807602674889922498038757352889600015109034711517041689029836441145547800648148259599227573290276833753503431012465632816025346746773693948938581743544378249856080317661425849135845503662919034069132441245808078875972903717398332160927623801633866956196597240171533122584754214800048314705920767105445256000746307105504301607587899999414861835378101780825143551702815020418539064123292619623854149024166214855525090194397136412557731068501025714580667278972012940788949585033413369972608742668389967905631762209772128478116728502532907601456112768995345381366468587334727221593537536307526518577839089147844728890333009432345669561457245987253450611090826077674125888762839531831749030787310077464977559235003364280947429750862638874014869443171817213957359163107932214657130208493120942081942968228246236083534374780492468198055051954116018230497113944234323908104716329593266632069280554597411099008455717920747882955845492835225043402212208624089126704425644321567777524495684335597483593933971759086405346955241320865283928834589152107409504419730195625676558860404180993046787854143100416001418272642075428821001522841216266871381781110522362037128762479262681754345319079421432390671620612405447569680633061347674367599201865385944677762654414509808802707231750676479459226568908608188990666858448485104801535064824637119966602747433778539275909056902032313410482631070921927099552617605892568437733059421840089853799756693573542736049803517360426183922953250054343815161791053836343693873301607714783466117028590561657349402279233486925961038907562760139943729546104076310662631626839228294311136579707105077488007895089822414058538649404267667825785719105421714719093954989599598014164650519300854396714030414514493497392112612095081032164967135421854426337836266167662929232252518861081144789859711022910421420657237172366761054566649260092645744856038154361583588501036971824314078458651439729790058685315141284827472506624961100192231334605923345095683413276535692562386524204183060830204472581930397453935278057975511358202988277022279666490026457521992822049061555403872142963118539667212405153912552050932582002438283247587105632688071867448879182143441587670287330479518584859851031199863903415459557707980662102237542139323768399534087029329631948795544848350640365951362973721961144666369868848537584537476380137851785919278788606944433799023442760927537967407219838459590120524813235277840032129676898313711463119246319768285515793815935374630004206399523635775452905634005656117871423589231336778400613842504077701591947893590205044427554455963059290202656115938021662094163091676726228147012877144862411064231478105946257125017488247620103917717196582811199357271656155994909299486767781166388382009470286507913154701909895892824677881454912756361387229189491236559050384339288816479171267630107602040188432367710024605761039716343274437299666886541090794259429194098614610957222763285979727793401915892916452058761315300890500295247404753047827998745848972772569050706961545687708110903902306568362454080525433792708653592500179355131768566656911904944495307061968051119159013503016450103351777618532614389989333110002410679419707193877370602136443389601720325236480821386287383824782866471584564772009490376546857783194282340755864028541271276324854310464478531872957932522774577586228690201220948591514610947768914485313816245130547926291907956909782792253400952365898509513782410392852275455834556907473683666642791525819305125342023082215148261987416415615083968949554230333337179498157015335994872160734404669700273979950937515272631941933386290019195319644138308263632508041811313411838222661943241610161975538584688582725263009718087636586162887760511740300313823222841102443260925061096174114020915399162878819786310585474403206166759714932361138483523836371397923329829909273842489133737533433215021353884782540822766421478764308556842978462517323682113783173456502502213908966481959278991817735001918206141843288485265570295983743101427476975961646810193047065479861165708698945984788687512594514157200337252490022400212516101262547813169696932932904600421510403122676839456742527866221608543277376427093994752782632595732167192678181351351938909760799258348590346189712565979494449009784744994318192875811797361486354714696866430828422083561127332069458715449196421755270867575853692211450683197182466614690901751989770969910506371825632545304530305516310277201281674688485360709871026376763267650464769964396145588661989191977445543581325933369383588085408232348359584961562207439787644869285030609445497101269560760114364826424467399940792487491526572145548441840311757489934052485777364633971829546687100612238545581135888051803139272061102514594238001658723103451659522046590460793069054175351661566180639709114191750284605935835270054952510969762225844585044110030161674159879370601746785523891883280216659805035517188915867620508955750114544796243510994634112874305069738796612935555153369167169281118173399304478068947759415030185615885624874428781394256676440453915971238294453920684029726792156127310847058331259980798908494409482834878155541752129706705558446855572073142053100195337655788129507609324455612450436069980802122369872223035637739365745149552101045779338649233030385113081424672457646506990042568055294579100956881751170508391451857040057153527595586833471107045087744449862890069502985158585511153575674742572553655995060303884612487427235900887985767900902047423011579318111541696871320259775071709699488918916919314109585388521724079204489442082388548568248147039337799676607315994919031702539816885185466634405992299112294616553249044436333636206456957317945371020665189803552567846386177033761033056148530776219172353407497583520407971803858778391434721929869485036750277571621779433385584739528454020659168619389436714541644102626344198057244317651435279323739564302948978299979282143393887503410230718677016266872309524958404058007676856968916198656485759120880727140514136031735804096369635109652688262831639966344277693109444161457002589405813291010621113697262407189426324059774864341238853536920612248503899362554607842173646530612636423228190294573425632918565335670365215842227307620481730666045617197843806673173946422769952222962630383407001359653226235710843627655564047232130094907536788847059520616255304503938970709192298810541606791454647200891160564610554868514668565285906700721427848560757830427224548449432308077654869404715732482826648356558945379471003287577036776486894122784095042901840029338627090731845883592301779189047368553784463209945562431322980171369613430906155875481144226648853646529124267884142820638683885763616188812751728831178584167825969420777848893322022618338409093212652950933285866971840959387286540191146938893898535142512550763081414579178919849440420555404670094949659581931224403379377181267457376338964244425688199386723897139411650172905361145134398804933343650167969807962370766307441783348497694506336681351799126849576276674222591988438561840656928983476405318674487354028856857567865378794009982386235304013923996810274178046291434137385485073911824166703162163397018892654982205402369063087574401540755224469282586113550298797669178478902875196836995399312225756300259109750777658727811803762936625068309032466126485126111479671227958748139319088698359983134953928473334923344642988568930163202617049734595227452985738197616919553001310553883734821207741716853178404684361550847640926506285576697410123933651679430954167954299517731543670185326372168602022780315514617697094155749535241488845157045066068706863194347747985559575036607251175905594824152422049134018108012322892512581774668321518872699112829126990968759556857745567414634746200826982033132716516926776483661480645918979420828429582191228227631157015861624752855646485243255583073952037472985754002797971367354725872987349082004866461317551566482600751524587724820796878211269628441655125867653515529860367619759020797847653126966438563572598873775020661869539143752658655710593706046201362325606672514515099636367403168582402159785853052127239609019966822369437751675715891764926294135973954859095371378274023286573788569357715239195065148393745084742166592294617113197164020983803721153919671082091101236842647118967821285419269210296133239926743162836398665794764765943537973474850032955945864323962211287233924351815664866630364341654981858199276717685290918280755301467293055676687256840535443982318279282927994281742418663192712906949948557874101735611958850546173771973544570924150361505723623577349486063919242916884155729102272868730173867906381767700578102891982483963629688964267743773790754935776843574172905549553083644226238150655952893899723709728981794235054524974776034636148400812668934534754528869019972065717909114513086675295490870178103770345479019969793619334789712009963447232431824447123233243902880103931130616788576747602569616709993378982404303383774653604734062813045918968217601313371258158605450507351423044903353757671175240212178161209424844118787241358615407431826423011638547234259147763628256543594928762744228464936214168434706459822393648419965011750750428741860269949459492214911432030680952991618866014522937766775800119341177718286061066285961860214763663872450029851217413460816786579952654309460513631764593775318958396792768315423975287969663260951366908289435796888656756236072907950043086485226863288097871114455632596399330884304723372610266235668163752661549883067170255358571224594514189378291083812776515586517989272922801148409050845349337352128347509390302192698739983623878173990400325190644932005495872664669582823208826638423576827660923541316378450827897884600158431664269254605299230143076375273119637475205945774467093796499803654284665710095165412634005421640498852759002996505035015969624893831380823837042101696682525292648963531586565547631500958760598943616407429161652627798729647198861200335835391390148635917015621385173651343077223218077226263219659764445617542926052469318587428546340197223490418047352017626968147197641023585551470630935822193256829175015038373955070770941012554606223347495193357939361873518952627008680598649938861200786305795822408157513928502097087050972534647152936158677800921844459939405624229023694898878951690937948285170773316219390830336072685232165286637425860783559621354359422165523637188088708804065857420247789649035376838700383235719136909443824932336948170584639126514708798191277872052481779027656356360405785917392063519715449379734201859492018089348148080971137503929946015637721247315481902280788542363069132001222448073483972859524988506143090942212341229033871936439824141965475190697189534245533149833651806972992109944516796488945337684199811675318099777510380440147723381664986989713824545379396280439697040185538092886919602016375010363402249985134796704680180919713572208139483350423873413674105543452154992120779783346653822215828232292929716695133265367100140594471960066108339831960920753975739495599688976243788299270953622035996078951568009757675917490029310482782426784797926506375126167678384348628400854671791021753714813168516681857664007880973544604297370313493692935160772325579236759863493723560689021062493400209005540589774037643600659394716872144107492282307144645404603062949123099051516815645729576282162851067365052739894443239372167669911551734479848198654305204227823117188073168915417682108223131462674164831165605638792191330539976591842159064006158594136482744348071007390722133419860905185565799900651764996527280497172230663653371092491373144956962265860158308055777789451204809324190441752984852706732311265885176725132052025955537530607970373103978297467227094707092984830265868406374626149868077006580755745599861128102681937515829207786512437561363663025921495370258147291876575289459696403456282724669247073101071212050438195616790716036329630817560553362775019070221113767043260789443885723768909064456906220713956815400528036936696784130827633246728723291664654024371165363677726713751577099183161347362853680554544921561621826641704291721193423051079203151319605126333681084699860886611051080104553067728748140720280888017152280615171994902405202079749274563955313611697141769452058871716555273074043059792048526313311680715390452351446433455628792887627444347763598177574796067338945175998610553590100728960728994125595572447228857828162422388387812898101126861785347718741088793542447316430187036287573782737920542158868521386049040139659416046248752615284747337474736212694869107834995614754891136422047216872881465888246433275621791204907516907220320703363720078599979564491860861353417182442669046110217526016222768200553378575423971053787347488735882339363785571151497545630909443878576396492587930187508126178756557979542837412159729605454735236440591904748756713374360529527593081610946781391723891920293044476818536642100930711508921775398368495648273973098221989617343975557544006064588252692349149492548598966062542129994381021850920298903706077861448403126557741724567491945187555707044095586501520416142473112367382932254216566165640249080741237986123797550977084413971816115547902579403408985324873742763315106277783752745521217846990198021262484484509635100166363693618124310460055576991361901271353240380656252461187798344435577384502319228254204413722246026439313688207246576518564119797935407006834515872477653225987022182729878672610802870203261913085661748675636696422164890464916156987891490873643771363265248651499906341860828196328524779245005142233237154612726733557110470020941283771837980071017518272458022585534576904811500496866737589970275334916786882449969469338188517031075251690088875386506738372754137227722516340286945360133694774785453802312033604046180599654138477574162613292114163459820519544105076535641300983299082064907223998437903378255855096209902671447571326950274571642625898802100281263515158394309425572576815959852705703699408428553223037677046227493526986651226563704295371501230402522078092199536634757627773754570017855295468464144266291940782371124737426956988308628842811827463532795299483638670651090977229493587772889226982328937998708947525889944440600798573306440673609824859909949971513574956372846130312476977300807417017947840899988511993351438952315966523601470437212026595692833207732143148633955103846513476399872598439509186800420452458131525557926647033913290253791383887723589746520350423685222966104344795309268877486415217182410404680072429193188941800961953590075300239277242308730569588723456800750942754743354779938422834749749256729985188520480758491021734503907605657728154580490387210963669985389614761318558639028225560720387880322884646493575372512716539332481413057977294746494605968172176835249633424217162251206671350629853315283251604234763015266044244890718229259048812829142553321099366680282329702052833937386583127904748821531312674709224563408266856492697803231117215397525449858021441574280497705427179456612859265982186512085862889710899114096433616365802573683905318793312637778495064596553663190864870072389950569834514012396746625666783712291569056690972184738871704705168189049039915084536855146674615589932238372089206242433748494223108142979168105295323071377353548379656495219236236301943817054691583441199036702365338172077577179581362441407501534980824586170926276391691963845625666212679525494176023988589018149032032770766309364333294206897923270091502867586289301887099720746466380145597192027837817525537739215100193357236215166861211540927293572640247436480511590482835979365306909615668486681025136565220075719743182713730585956037074376369306566542758508094763137085554309579924081863210708823330698931856392108062655869751083026724951944734745109050227125957523461530039949498870571013967122240791325718127338210968334514063888837588928937188001566151043115131168717132200461374377780046619369930789902468177707612461333664760982272205112300028811199425181677630106034811117385312168988408703956583725077871917814458565473217998610938675812860653302453465777117444414067973542298658418035897300603908763080303407835540708040498691776062794083991822351178946651303311252721900869090962365003449291536794663280266452848503904502884816893842626116863150752063102667599172074244491125194016355044639213892853636685586560034672754965417311264197082633878167835013421951969159196336591302988813183590512927575979168963576203762675390952632990249521880564101498456917784679561793861957680101388870694083133700831298585455920045231764114126816366419949646417389734763023131461796610347052467349156450205164090731700188506600053488827941759631708032211786242119091082673724944597365374494985033249458797418412922752354298530808089972328278769357259209628738560303154996356400339796342450805908002572525673218393896596362520011213729108079263026597462128973613373418668455661952453396665773497378732883305978385078291216894932490847347343609099101701671433911598524798742838051357345871028612914450007757432193107113326976184526942531570499411719216863415324054456633813198406151080534556002774829268475588145236373866658760319091129055907059446428218909502682394331159534427385096233549020920156676221844562405673587346403337736526984858726953687616699479417905126534145882741402186055133185563584587173642729708730857618062920575593765220084642751527094781953320437058083584898857820506381660511776839929347178664382669252696730276815921945627615272299102331336348105692324287847196797076824371873978588165231444474016083531423994276171005465017107974015339333423597965171988541703281884408277382098737730398444507065172386733338088788730696964248455062721172528655225062863781055211604217418088833940202977098852891809456073307592417420869649275877554239023196277633295396080448671732816972787410460026921714040774973721463825176548695433721591964386051518295637740206830643544371173150109450739208867438114810766647121290848826645294910314339803760590381334256406380156729625214556292783233310373543983235637294036813788988325740157357180470633631280146690039532168367020491558718168566873683999124164460251747366908825753551327425138259798907562823229871802790832429836557860258340717988472247331097259947159255258259666133210124726482695339610218443777359652451466658982601691379695765044114840481180874148109267314735790356967351699702302917121323722769541478367123823844442636679069242741004284493319770094651581239860723079398124008111688202430565154881789943394053947206029409959879404285020430936023467528081902872753916697208907586843218805025725112596442387103553783026836213543099469986905060308396790777219413993551904759331703298454902188880218259865102419564399791783906803099314180252103927709895608004381871027097490556356407329429026223359541806046070644997567014667991911439141421466902870594615079347822732566319842899364853881893221251817772823804030389892712581996070891874461122756916293063079133043435814051690564369166871517916195070410183887263376649349963360947102329567914073809233676165071891224938133190786848787372851216904269030144083951023880043977564580206708887716599693774561274185127396976126313419608014626836505221523366615477572168481444193765920065433287154492564392141620657543507818993185470093896202555450258443387279354579735832747014895943872141476028820332585597332664412569571931922638433563086985715041073938446272054627557391454484019066058424419780278890137102605294611111843588270483059114023864681745782618970648790777529050874761924948883926694750730075054957675340744674382408784727511020446688173768198216904041525402835810307986132982434654681811117739540003904609387669193734887826908362862961695759872614066102711804377081429622429198459641784459534324746298504446140372369357067659825263360012297126878814468574134497002266735814977772561277150805259836051407867063440837490385215854488910951573377959344413465615699314638622827161206807315605685528388468667941213262814635355807775910387477237760157127598912968773756432834197114503627028947105169533983981871320916359134228675674696315762134792101421049533604472579907716554289674423274717860113062720059134595830518615378711403444388556633529573424362238297747133506958779461985057760524675877383479114994977456974199053233239777594460796908412750959258376668989827547153012928847041887440000748740167842784763491896616108577499364962007120823881561558152290848248512864281985121362310779278790993790170721703667633467499951658954681992993789611865019925295504408433643531026370991598712782691243435608142244721321761133303286707400257301033715336300224382514069169038900410201437016878444905170718472312925077612811523749085503525919390539865355939416070844573086370117791622031132825630269482926666715636323735882828950134261857054828057755037079701671967908991274542365772684497714014303682022347633007171748431706029513091562837682111516702239034822992624389843496357146031584456784670461619698897646028338606533629109277232165487783618282331211309875600038869320964798548867300101597826668272938646063045613038295457923866362322021304966827590966911042924209971782886931431401745943215013396733516394449867330247372502693936955892856378393539942559338587248124839063713716079910109756117605610236985303177084624179825158276847020336040194085505441262157874963224819377612309245307960560893329383043318451508419321335741520865065265351989539141238181241275970000024772277544289152617154458565390379180726668838892860868645451021688243450016331416462228984376136951708058765865179248152228078768507947807696720145260512494545452126266681333008186355917162763553165365443662042704634102255855754291622254418835687466853318450313750152481645655648108141374308393573910791157634859598955680412278951832937996752292406802883156219367402937325755024175049568175200242305698820036574848690028791532548761175310086229200322003039223339747368155201384467575112761605422999731718499530258692858818974489649642594800568650593785799644215502459939128619675700117213082887821073557938574589150557752433108358768419236575269352986304069896945685750116519380680851195472808157519536585876657008618535771368191694297864493163089612565632574958300248874092703389008010712877696197894147693679690220951661195850826764006168408149042232546597117446474146303388662516420297092692754755971404629465373582555674970112758605306506369762142002268893390231686110831549193373632787838052825724752351778599387445105888172673773463433760135038306911696844936093889394439154904896403015043406434563077073625775879668601420314020850008334352193145388423664745012087506857107785565616807800965257357444692099898416945134803222568118273582533984123509265486036105104225513216529236106898597257760503560190536419034184576192286553804449095041332562499727627008195591274479303199884465185836164604314423587770817791435304824117627930538544115109412451646777519634322655079360020002539856359081952907841661620796116988132992357897318747340800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
68000! 249252501564812221723536877781933066414564975209679251348662150652007400483097363064292256362597534482616432448849097676528119765143706143133267263540619681824595032217401466642419850405868456575400218305070833787245020956147645364339716453696457128477001377968568976006499068346633825020114667684076812588197233350226450575984518124110789031319524067353995377080962401542351954269813641361945211169614281901240588451281266642722344668911695515515374689288453536054859103459431877139399134959489464342113785628920887857195799267192989175687725859016901049949912902831112417371371975100928537976717587211456085063205340757748080872476855184735656743814258285082281892242474748983920314422318865416966859955288550867287850832585591576026959202282495498502348625151054884455735664499898982904815576363166156311484154082952784414246470560132589673863693574118995321171216665162349832799340204138755287326470860157490330740114124394599182279282048008918239130587437482097639417783887118508784814433255076417312966751089606416501697005637363271793704158836098409523474117446374761507254718004596248728220261820908113449534237808964032303662869721715014495667643676179909350833817985349833956534222586166246982849093698584683912874789078369641148326654219385149606047310776137100501124091262467638244407084353976884607098830945781993910680726477694792927965923667434276916475140011072187818442484661248503870178775057066108128123811912051269690265193789747698312257905450411350626896697001630098905464910844309193680485037977768477870750078187115319349029440572389960419636157500085336428517607137464050319668654914112937601844072994086428295671963632538669015622549096113006406637160936890133594511133416982195194416206936417387604054707070657857678292249111611004081230896915115163077349553656454376919438074936046442098784774730850733273757230153940367804782599848934065877494450520774708639306110495599614547331837628565760649770399327812391991156566327613465460677316900251033316772308071881338717795789152191176370328403736451944992617249768965807311379049337504880679706951438700873541555403033474208019499142400103436648565260421270626693030889281167717787875342755628418935806760440692428747252717691609269706184814332223111302807992748065142982798126791344463816008119428310105601160592743008502221383989755866957822629410242845701772656028287110778136874232709454601038050832735408583503225686975918860846476111132278782120329009585424605885999565336008069077545731562995212063549755172069488139332152587324455916347160090730421732056092880219040038102567953730330997261027883557183137378835505815914578793861529889275753446150760369545822172282129657678326807245458687289471635062861383608159818409012603887257388777289422460893665817416733690817922199025181276025772016833741314244245435429944663987540235844251678488776298296699494254970730356027432676190311630962657959567453054834491564744161426437852971603708191580324208171514239099021199069403079261765560678170273690723419373093834498305523912729279843821384994915254050533648458112955760548038190890864291746579403018012637080152995623101027207566722972974165633050028481028097541620002217268940141308150886061200589946286408642883433693576098791388787760652862377938458843722185066745896105701780657451878401625055669460375013073191471531598929028034016653704124508837537431879148835132708680767961256372125105349909797840737093939377190086634722273497296379834092685571920410091429959614838016196116468711220456277827043914427736897412009128659826185854320521063141008137492568587794641870090585370922465853106468617980185929601986806882539019205920014681705935909371910958570093978624885013674174232112293738723399243752826179250271432736261298815574647451034342510371244315858705345307644807561977152107186420748539757174273431769277583528427890840751382954042024166433289495077057770634965921426618455211192984810926634002230486375649442231152243265508560985579348229910071978293438726736331628307934267651525286555625197664840370258870669475120651428014725572534158610725277098912230956893028173920678126817363092924472793120409264822982772795416560196099360207553626392585361193475691500209456435339572007884861285072612090877745456086972961511512780091804095025464429757423022346813199901437159230798813323981875286084225024239435770372492084407878267808287515353314203182599078042421504188949805732953570379071717189889971487771836834148830394682467001845830721515445912267136631567290733316217909402939402773856108439052749183565644541228719889545927248042403618754767709042151512467452245622493109347927214192553886348275665514757753733615285947617490114745429655213320835105488159739310991308109242142041990821295775614260363183867080898554562207219050923145646266545189800037975492541669234543780473323036751944346159460871491456386500565617544195711900719527607893763648162529228975925337162378282587323089555839970478419112618212289995963861862348467500704901613672815396941156587485318348579442094022556294536358297042901398728069053893408238209895201136714342751608328108474220676068250618748269381478399355699229832352906426397326638338718479963270421049083844538215653086658215864238225571175841098308103913688677715565745777652639176224328014408433602877845380245751339593408085176265178139083372384829494745546890165820307606672276937992039463867520115231162269606200263782423442581508089269785917089228601582060056127826221791570200156760472001871098045762739760379384664848945111465825117061984327506865870667964390326900200749767958821778431658143337828571963515966888963895809775716245666075699373981044981234872386037506078593149150746546610003302287174454871389340647380202264452811578277561791760343622183582023900681859834716225914943571253139325897220826589232620434982358376628584821472478258213568802503779199963728656719763452804863002481623893512709501319228557957189218350017292031536379585813969227027131427416368153599716631408268732579382544066494343210221847531105607415483223987723858592514948290596985694529720725886322669130406357440583688504582595730670072956811902845207980450488096196076205763897704765888633721704657578398649383482799687246732063127657438214172735354030546081674677958663713157954422925200297448629332935870618634405795978906958315273873389244832289869179870692912482000969753493406427344573391676457426086862813459674943755898806224532318802986111435194759565999251255376172396734204425173786663197237409320227085455388270947046791396462497028682281118122202757535110712243496973186015980638186859495790874057480712969309401393174901664429396709835968069857623717085771020235720763893816659318220643786595830523519632564061448577089202772067670413736820943091120051790685829624323635485242121054424586681860975047472449543302845895809547284560252939449505205677243237310235634937016165720449851926457271996532224506066881955080054680145671690215375268236727232923964271926508956218825285418621240486877238208618392244680994973227075671339867660080914907417686688321669405428061543264578176622247132243914474787019074551211583952756019135844910382950380817844689158743814001962985255078896589625017813850259490677635932060370645023505878944392657460337777446588601424417884765063061348540178814644225095647588774068285651417171639103558344397215804462918313619477323417242738699853888665426826136161227939397262209263245295072506640553904262374334185208930392777623258714791206426978784490923140408740433146171052381582990423184136590003227079267904502204812500865980046296641262522805402737759729026450248201409605060560431866473240010089075625819136178744604513730566155621707934481447165394920578208631859672868392770931312022734479161306651548389828035612012455486660146099331028278667130650508793631939003865701549481449405764059457925662796065586135215150309884464390241056907357314514869291540174854196604942103322288818023240784576623531895223497010530749570170168870595121818931483991776535848589628633116420498286169070956731440440208913427438035438941658786229701961727365557271855451897508311175312287633749974199419168945575374586739524930007399269505478229537859783685091931958045818638266963239771245134150608085825885288177595244852672397560959089047538675523995180214746605728101875875727163436094541374008411435522065562759149260486787253489464601798820007761792644671547224782455870347823698601848928411949827853450572622064706440828069406906120323151968505688850921060723946053408351166769370669744298876022759004506469155575937818487846971136483814355699855840902146587229062250399484162930316808271444193522102749690258717105593691505545741587420727570443143701629675270374223867185304239151784442820636514842479152343840770298399139890065951219458119591614188054235750238676325621733499202627743626805535937830770061460380987585788588205483616082786328095851655339121011853682338123296873592342337372133153838567483331461991126430108634839529690176940679804952542991871629644458886797155560376815778652555655790066636636303392505341044127006651976295122703219943779001798585455139964951173464051405838232224148927422350854045409692616946610260268641833019962741378453055783488367549733297049833614845677678539104441647235789973384189317568070399953738079737318356251043306995579933176239335362198619689010039748660323030203497739621116720144407864873283894418664933389643665533939519957835896698059677614524166933914514090737074156863914075928209124552385950724279712585918241815622542104373874864975801212075014611593606639861798931517915521086941087515101157803275503971849422017302609195028505682099253729297803980658089270873606734340865432455047065094117932707918300572136317790622249785037136538157772175291937818812078343735497147234609798983842223774933568750139097095561925443636437041908324293977975614353877690910064681435559678911036451651727857484749545041645250985337304486569746003907283952538075155069320974289027744632055452001268394987766622539360285757391621330152933649326738590648526774808486025460717049867989721959644020254801671107287695796558308576762423772571328578721473470788603739369311938850268107517321571437245631038890655684265526034669314703387687286901113743466599555035484670042416700432730167941539696380108775312174546495118824402017983071552272332266763501928199567937242700739201751088376146619343733436872171233414605345424296547781201980449500629810694526966222752782074269246807100810448656784930011951592153887982952335964762831255776431140927666190278990649549644578792400132248134526823725270953802909098032875165676461917160341581646275065733199634099360714348433466848109908081924551875398895788920034570301616263578989834059268973516209744065401328960973127779207878554474263987596281274971729016355019150414484961753241044395553302440566691769947127626048878954878277739352641679062733067780365487533806484365316343043354257336483006118677461059280054080833893343761547989908594487627256980270338056970050887093081010155817485476863314401464160170382222283547426928837664200285489011289891332673741687345303462789966712842985659922036423727064670976828787494947637621329070240344995168770547250990869094328944513051763678857766604671009170763301083184943935756534805154554219849713019384631398265460887695460059907221144380239554142060491000973835250549693227665982043270282451427139228014564156870029305209081352569452536335725660149927214810078776888844278679755838672456637034891999695027670196132153496642385648446073024598930860256746355870366583990296628827312628688085386940273321218785819723269884203113785777082449142634580825396069659407039185325555396206094408180732884310789837696773820833283576754774917634044764270895597698622544947375630917485973147577131252287451639498672844342424431849312062076786809095310783776607088800352612426932848683094404181529384084892729060764536162043086487194994728697653235914790410754403351919216875976803609504773690597317247611818658260862937285656293154354693901065686402757499992812131058402346662014267043459592008017289510107643051274488260831107193480198460265154178220098561600428995891828020647182668011098603509875128034999606992121074455249040936609430393095005610006286621202446255957336861141447865957350438273909970712817698675174516075242086353651471633694858627024194181110216920837506096769022360863058950062113965786671998489360371616294360600752348769826913976626670951008277724438783474869813182335329275273347266488262629822978773181296956359992705221624635684221497506975178463014421557647928633881353522751322280778895948375961524825795192605026805285807193615594798002752347989124033635667981241652280198506138197884548194892361510811120857758127415766131754758945461182597067769883347189657083780541903378696975442578356903505882734245803818988357041695926006673137946538266371062043244518513944117079395993315716174103680928227861880806435273437853693516961642614579963981311908681082189190785528070141989971456420084783670598195799036086161938874928114337807904790318738072650820441113181357226970413257139181102865514710200672389127597628557924164998077270435521362133054094826534951387438438330388969159214468240500306221809589132568696030163685703776768504440963482911732352397728173076243242244104209327262774976857211775874021686735266832150439698967360095342175528007476350403699813702496312862213528983155186666969535786556340203036794377176773033637482674120223003335245906311777649304792862826056485659138221565761892352449498851344244791964127500506083758447190846943668649684451438655439490886576931717757071279704212594876315021756961373028218936513995615313187036170171639838791979542642953658624217206071674012180600543468862002987480672968551155953250802333901206555191890002699348447914144776706686595793877071586868065145048074295148311381392954436740663528185375864511544111281820530827621753045007222072646511232822888470948015203756373220595581196034323262499570694995654624258316846170274315281789978474787126404399616113328460137346057195870873019495986685280843968155465226393757107824916616462236751877574753937663332173536750424116530487570305750902880834150997437820183664602482324410874164906794240763698338676393837099178249494646538727504328371603977390324404196405171543292615462634174517820701452531410835813296424938100680088072624714832989684678536387970236098507301936794198222077355410060097711553213228061528297106835231813037312292548331964511187131642514317520319566031949734064820304093036125333109932547381721342161606272251258777857290541939022062448627746804934183757972268110778221619611000155718579492101716107203477852034293645992515763324663414331231412301358870846793496444255975225774244196846291857920841386509614994869000616988344646171433157170315602124601826917082239389283361648464421749021919108212082915796845525661155994113796069883531430554713072484520798209577602898646570975026588971084032420383407220445484080414364481957067491974314725828570992148238163431845959488941140809779195104631481305985703139985641336741574324156009504420774323376646222630798556246217377964055365845782036432424104921225840474045966427069479755688408088140026352360360506312818427603593911118262350378881308825557369477538026824181513906307543397928514166477141202181905073558482850115058088790779564955338730767604956265433878576928985949491587781136311217259959562471169118871721104084512244573972569947156213485582744981547922342706319594838294235571170465870952174756285171250182600603328440391455081120343804790300268876786508892092647128656721494131931824135737956599421847720888814005987871017351134728856892207432231648500735461127415089454986742187642495378683596900168436432609736179561959295896369015811355735298385041187413859571088959034494844811302502400720886669852229410264879334275663298254522593463028680446950470739667044985593278100937391499066539565311848072195183736187764730774269460933392294476713439356057325306682412489835368960093441199744396819774606726501952611037296255197972574808172535317682770277487808720514836857958409656629059023165566331376896918471569409045007434256951574451937837137722623447073094901973908828521924967351043764280319913265075974474951845243116258689046403666495829446188929067282080797611071433918685206071077107058921938114115617598392961685789403981664633773794357943070930419745110681812437223558673048197184934845692309478157818197979423297699912980598164400722479164902018052445987499345904486623479290934333283197935052153755682045107400267471242692356873408535371530174276529379262241116973691218296763970406710286088676724135080754131415753120872247711634579760266074669101173485519459937440735318355171236228619929195744725969645354682120146862185758209639100437385669597745280531556969782138166399961197162555609653214755450827369381143856603467761798626547099056724161476799090883193955816960589774672688514908604625706025558353444543920621736989449495726238288710026472058150725861956115502018767670582723444428961925226320165441470932188057438231387700413852564150479265997412523753171369096040351342387315744211496327434269852026923459011403226511905660391062008868250176624954949847008937746860885999884415978921854956277613151119461782252275440246285485765986568320711331952702829721634055529351767878902215542214027911169498846503204917011414895567978135919137736789780847183821312153706010040783198660211999113585874071390775342494510313577213799261672340155986659893085305824330695843125817197325537018013118175188459971150895866873750390113669182557098811455645773951381861456101868622110179252032967108931523754670951794707244645010951446582408765017754683675969530367666603511751155232300499647498004848614378443696759153721219208193469955391069567674108398132595805000134048278978978141215342437600663947840144465429834788020036737863615150018727376982777751505042672803725032224868996218909145284111844258361556581751122766516301946394720559980709163296785640537391463384704227888239576376565210406856711611260969510726681547721157206333144614452659784515727427685109364681060021612292103562812420123870122845286830546126078714349728902072301681533937430059656579969499501718912763239988630611200688206580232209393783011031148947905095810023447196014270344231001313030150295811366833815094802314567249242919401618068388331316337784215392984376730470955318469248596617263343068138570484693868070498143049843595779967593584822419151189466318594602724705834585679020666900201071896094885791243224203225821314173181871526410749304401973009285811867737544733151884331514318734499939918431238724168349584965519971909887650995073576577150488905872447834090420089882745396009655509887759002825933527943891595640607856385958058722626126852686529213843272408552132783602946955267483109894149227098344175573410271484924539490425196711481334354203218135334190731636834447642332670748815183911528064032842142852939268703683357129149779351606571870483575187862871155757679957514705117648275071275716977837541613473686242718078381751057488486791147940769480107468438390584846691889197402566547778158694782654726423455283430521500314405285296150712129241676775566122359521063302854423880640600647862447032167654264820670592286957889521233837235414977110364167249922286281960472014743276424381678111447287104186172322255873016035059444793144870932539052770837787836783882419672025555073337675398260631207741741631134403644572128281374899478148539448134710234586096976162015249111465307820379480168332631375088067755554947290710512684407618995408310093234648071649405335967492654938568784962764627468866236763677657750828060650363248071671446917921870985928435141007000854035722738887830990462742573948719562509077129207556041222423750452817951041436849292424404977985142503181702787078481134279585280294455631898762329057679526883606555946742082056192685687884062167542475395921875761701863397444143775943016243630793437376230519019588374661842593355449149361578197193192542851818440742267341579013741699903011746567935882694186398616566632403554983761465999893257281759038558263541340974038666058098639217167097712831319024442364299684513092041624314488595564662071655220385285088054626212362769840142414422090681112862551791774098452044207156338873297937228871907555016447429657117327730573159957628782279115348307628081167317543221787270559409312116193328296344571143229094157550859761048485641622661648695665089153083936883156174358273170358661701607555787030034575021198231191199311564915041406416534609213510130286161096825705517242456811358213998174405151621305016216943423380962646266085442353798631236022099097927650210882302305015985872126257379510878217387388049434854344009371465690166537377384018536248345017092782824096053767549317121363334797112714681393590414056644993966027354475456270593780172184752784398076005808833162608673780438498796351383314640903200385226828567146990900256969848210179672576789754116620568034364210363278587761646677673512301197383479187410562514761162866594147945488113676963519447374898555925811106692112424678172888811698609889860789926555402979481566720755049339567983561551204542106533145249764207886547398291440095982824044723383347169224460852418264221000333611900291659933871495751580336543742936467842898052654112652991727750380894027152280673210503572588603262511582253364088242167547214687976667805943533969995954511188927985811336196295210599657989688198572996182384141563651873933174023771125551301156426516216656429265005036608022357922045626132036032089540393783203079158376764517924905596508431287266072086646635974249944472659071550477615382178711098257090843434495847013237902616247630069018350504792078240771702927208231608470068940734869426879512034269714542605997591228851590481146915516698435040427823540791117371784592257558527886673132785710982583010073451583506564428611360369760739060938230048783009279935209577788812891309155027509623036712725603769249020996445861664319423241419981248296219804877055760089177466438431188778894323152185046613793599038920168523859180317764754702584578655695172343282510411740700739429125134071150631163531524523587400278858944304453949665896916106708425751311140379376591509587495327307119582312510350264075412837926392209179082622137518959047920873899032046212808403643261418039166972375541060862724465703812881857972412391483455461236120334112154644559183381949546694536637121022378125938165670285905838256975706800136535083263496679271972928544737433637163318860519333741638038017145967248709764565555540627252322179868695159236916302051027083586618178248430187015139646320649157430817020866925600751742926699580732559778369303017151714102236814257722923694073256845348402980550907848477697894088487286192226846012154649764690237995089415251884358208494702605116172714468876245266038868112830396245236303991487266906911296568310586771425597299559720391877554589420060723761176415667615296491332923053133539225241871508864605784803070787833653995265956055149491848539288743743334217053916815954413183390090606083021056911591601972349853141799741870279822160872384854719857396555207193696011513333633842554168100884316413704630230700897034660451133623698504609703462685454920138056756392417183248847529247247097092489645799400995043221151862400895084865737656678776700329365280546141197752040931210344451576332223970472654508043411439941405886658742071291600071107478823039309251095377787413006191501246021249982707986339897227899070114682437838618543403734819375396764921065626183285813635716665448902654937976517262759361006386793387791901702273912177248061138820628772151959933132723139843756701597584630175557823963229478618732075603210009375479472430485198451825436762178851969526516695589652650740084826341872887982624665842014964806989621268711783657838745702324262991086484184491730785302657823275921368244351571836956723272395905162044596090301881043956410859500378669993546417862454238046121685280178317359281512554025525958234728692582314887666456541650996815390079377635336591420728688901457221109181931637036514764921568035028137906730831930984320526434947832124040689524886168957846081266316090300436354637692470303661579882973598679768587828476166789900205143353980679557153821055114117664902908826377595462059044759581346359665216260044300922052818435285946814735962095527491902550377484355256605250245746208685560278161538095868576508994759064002644808889397450862852033146605133852166171194127863531159600747790971902839120330912380228674855360706393929513165001760000748780222672556042045990108936269596008338301675645071721294136890742724336858887364266134576466862149501027942378897315422080024605362633809056827672147863535287923073160837506845499029512660781095208329629408007324462648325001990790737541624564220032359522013934566353108454887100801993879147972867204676184972503020756818413918430007034116518828402579180410239823557479039914482679999356001620159308101947708426743684651734459640118731356252570752141543261701938901484440612998106341784675212405581913600743997987542105939508784489497403055108193183504333410849723769447324720546151278783112024723505825204146593387056350607466983077811568376182569531920903269206195324911795314384275323836094083264035444567509534992690221168128018203098798609643207909035213640678644291304576179725773890715519723470152003733104284249420022279796006212805967888061197180039086144270576079677904335258881108096539965876886211110551738887222905423655217955571812903933042150975267392433208746048862322031708599733148361837664915220231135490701926153948155299533569391596101877417005419750474472113526520693149657119339295480250155213723480157980217006759094847215895691664403425858297334363526877121077374808657972480038622039995665706263970367590409531244560188889265204848485841471523375375969126131733461675002690172318366959592209768872940324529186463930137317550758553821512768036404516766843773760380436551713276583934545802019411331939736025338293284272673182846893813875116874507811938710834202461109907440870353482814555139677412801867708952704842579584531668607664642618211978686441094497096464004171240357824777377626117633318779763621367376407404795612752012537829498846109130750280716176124253959911696755456446573940034415391909510724575519715276224957279971304707409630101261271962958101375310765687619058150992193621147046329071662125076350621854500249869951513969577941905853916821586155722584173212656188336814192620195551229995307875849875290241267365777239846913258888198664200307100388461221478659513473900478983998308553033757474785589244292247092066930290524929260808629477890641624001723466338817320093676149732549294853620941658658018820321774851928464010707689080657109805364783181552072217871603711122837310297378739436593201545207018503753386445602778003615543620034217778104939529220377591014586072534261595593398840365940011440400962091584796951120187085433818611596498086602752470651686756366541432687868543882957623184744506460438429392022447970505734298491774493878173820694673581479807093942846306396444644078881265439549546427846915212527397608477630657772506432399630550081440429161588360788910131324871637020162338446624195300950597100091432315040545774243581453756244910639845803920775819906372202587225926014049775362453466727093082525574009908386433166460925457799483919190896690930792168912564700217967932473019396536069406739169160530911404717434129295564171446132485453616785775243185195483744349151433102275381066739094944680939047599713139350483838693946325596693718432952984382482509613633811953744438223550308046666813430740342041760326222368310538709872140989349671801335138377508342641678524800118646950291136407606227033241609653235940390267232199492914518894449487327289102518757698142084853351501009016257245030384823855376078632542059876418003779064361628351200883316475450947897441558269384137087441809335541015934211155394097312676554133583471991571107287878200829421650182348454104265450145655001133588798431124520062977475770814815397273724160495858547517762230032237632104367080260263845055916302830596866497706394867897301073996830964042504072247064393712744643573107276787565575348170137242277836410753501760284686004469893650939926186792908474998729776461569144533339995228909382513569926065163525257472147578356587625399131404936806608511576801047282422047819143220528829212016842538266237429981466125973238760000050874958270418048789141387464101825716127684216621025525845665412894881779965030161575533453316238788149451737296245107303691994922020692847670793732551771129929492094194606858761708140513800949594486562931895790338591985969066838467071049975138638636258060823652494190016784890659037952487867479445580349554162373270411643999297955662218803321326296476457634295900753003456294688925164889488765621233390735121053440473826363333687664282617011563974401026198494021699104343921697029493843269923656651905167813632842447080698457546786102469081543913547610409175932318633502233318898553188163947365512115088085008186316766380340088444040531665379655468243885485896894758762569087941093981292050488055006506441215786990665966943020543282391600600511891887307472461784224692759021357462430364389911599868490002212492619087746833352703328175637466972360333680582484220016402560266490334422939781620753820187920828268869455166655099715487490081396837857852100080004870759790811210899749996665312321278270854596268392749001242755453336994633795026841130764557459809547996507169384913405717789353107162110954057359905566133098153089598355927609901549843228672970825897911902350933320555875974690969916831826112608169466406039494692454346933234663295362079927817188616963897404142827429208658043907312794786058182028171317210910519466972887482888413407987366794016232804686870751104270196193052191036871098047522917120884501377610003004236442117737775861430135288722451955913081480016269916499954623014625339809765005634827274602461526584968327936759115210371077334248064485966631976770182504442616297487409730304810942282988867267924146515943950877813275734707168599458589663561451350293588724781285327883736753333150513449413534388195031514914051499617162839089953644684124082247440003003193534646033489521253511146700359492027882334082965997538363619190790617702766227746180820306050190719129649120953742282727117377295207698306949445989785374542347040123560116887018156971648308182783615346190853941606122668491586816349672852272329342353839011105708270907963694921954968885455902782860035236051350764425471232159875824124491909158415779360658410312319118229040128852183203306452148029275581225769581117155660118412230371776901870368032419213703293170308122494532993430933079924612305552786646005502927778772971064012027682401229748167935521446095968703716639865910096673934208872142034027556493108502536575020839546831999787251955310716304728068788669494379491136451202286263145227884237540359413249617873365657276827192053571432864925776884155984331877775444387441922420265176853775638432629309445175410744259945753965365630358147835224821813612207033236915989536190684779505274129392349189550831172014126422424776476000661776485945581844688558187385039955030441661195872121945793289619734557377814475946626689623658895676101562138006695034604513653526681380941862633047139609834806503504068085052573024094060495416153901868759792229132606448546653724558772213048293488444972794566987841717622924765529671878095878120201584399808451773081473152519998375458459316023231090025484529610772337970618620770924324914280262156360250117419303904604525912654271480397063899401906696813848937702493034192817834136421729567006406504692863969216548963278895147950202849506833520414983162807915293152040135998099564418120488364383657315567874611350130405986474996619103138720456067416332671635130175751987992949286865230336346083622666361417770404035604881126296727140722578913302828581247389742992416404528945631332015828056596733756728214619084028106157107599977162084959772517303914889231925022286597778145142701002562104012156463580654489617744824903948251005455380369707325754048144485620811617864059501372635125586909995937479274379393074769019738567809526488789474065597023326105486819638557601475115760662837574426707717805135125155816060661413569157935478471647950003742802723935707659090655146870933154701887147684102546919868666630777206244606169161760591808223194095920820315174272053600072192498244772076021791274146029501137009689614923461082137192719609260947180891401898484833491684310405744212593062004243026087295732418327162695777818538761525681022948793298752055326295924839899432769887477297540278713476246533945220081763729921811517684013696982850361334975096683575816751677885196869592755676075128752555968029345385150467517989068738548018046615503654881992060387056868666162765055870896883012592741383393392346182642704617277687807852828165862232126718037107469379829439417290485404867508849090390504527802643316180220654904706677045393280409862389223105914935119703587074623903909567961758692259298702617171906174502044200701752088293802968105664427020002935707414983451115656520726552357531308576043137419809808931331961224724630715689679561420778132688743196201668350119960452439623583778638580539526194927598943042205699077238192822123390821960819680023375138406459527348534168271935123296170757925208682202583103924211797049178149000477794704031310562877009082861278639653001748810969399599616776208259289708390854072051023247917292975729722450867638570856837216858716372193900568196170914168116453078347324690576009050056218214607790450126601635865856314557778244634072806831219108749225933425205723114830214686923912188872524689331355048819416751450781336793454171020385046804303944014633368255839006615835340651073624359450783545491811732100539216512804942868915540990194968886343434047039581249393024671173357616856538001121351501891826662907083793615766746547946822761971229825278068376194634360205547136168245300444510621981706391200390847787905022821204594696989179938542314005897998179325033583332456631386034024873821248262307989668093203855738094412367226750849529701680793188360856703715237765913669600632027121885486445751771512887709714984073056706155809765487621654127227188278245858000018949029697494782991524907370336445114605243172995083978126162928464718188035507036558465318344560235101737003712078468114346677574578719082596223307227898292198103961744652235869591765616414123114679095756374811393699020849688057548233811588419543244518881217322260485182323660890408911933139877535415090603401082467854229923730499896247144588352958133943152591386313156578291443325798498950890062540395080872093784057970810251269809057963537628964463979713266707127904119889725794689791087370889688953743037438349774814391222209054772804600117924343868778805733285129717903799659384500367953260847452687869786989572423231123425869764208214724663172108587764467671745287290567908199343054436173490925627433029607574523538731724926551899861897453817872280529893536932405426009985879002762117704764384426184129640257498393882680185982312815239410551532574841101145504028943033277080907546163773943114802447466942096313640918611479967738344724831808133511824292522612022562028745281642393939239288487050760723641629102476230175599576997179092126292737964695485174771111279097473595970575733845522939764998751233991008147238144136530760999061161431760113948832596251672277632824711456137202438140045753722855871796063790721809771065759670379123000014182457327685702390452838389178445249137962675839076159285184019121558822990379621202830302902809175404854287124753323625209528067254397343381069269165968248917129916214119138555420998528594612825676771625984947109053517804979891024302374960474457218577436556114795088128090871481224736556882155822904246458861047623186307579181047550468648822493726255415012086819980870683831844828271364742503676166358357113979537866565020090246714913054563083158347613677026985073345935944701141147124413657589705223941814882155794277910615869088641022922550298028111897339275528970048683528269145080774322106925409368146886714400109580045567400420673347855874939089137806748238520317710610890050004074999559883130936084754450303869355671769037305960565985591955335132926111814994471934778805837898032210938843700052486074543004804056941501865333038521244199112998161451265030341452556937915083509734953629471637768413494467940982609620307752924965901080047918119616827715838179063216907181096642025735339679853395423643820018229954767552952364033219427868244898378479477358016641882340290371122689165356504257315622135598782327874025919883189907130431340914990278181667454534754179207325557094533216225977262997044315327325671858343231953429865910166318833635377392173680283444281140415490488692988796233774426035203171864459708681941337501762023691765593259184729080102534786429379593732109502342186079867912584024241218748726694558237615079984539846779939352017711766785666751184486166103620873519576139896409750688139975299443500500949728674606045137642386892875307052984084088015513474294434069762735311829653032547050810380755590055013478729656430341639038319578751102635733550644510873268143422912856904400777383036701697806988619025829568106304016539912274160920785699194437808834119087804570896949594693206414964705567487802172858377469079590859818112307837791367632448598929121802069276659045228742395135014606702749587823221928537121422564412894606443465929788338321045165100492607515852431923692791046628070779840587923815063925829904450216719980314269726355871848837016286882238724907663194720229048455647038780834791732947634452055212506024214368080775209678424752975697921637118824400348323083760571451417106668537031360231273873286764963433203896737698055123677958850768617622723485092265147104680749850884368718932820819355979516124486716556391600451395171957230331472130205385011361853896773291755374259178872461336200459561555608907553051779030629503883926437354392353051433987273116144671608609876145520664381592714401345972611164827163813640387963351808487145512391034879686070491380362180794061994232652041048368586573880314700922612085753852046074106191283195835721557776302043430626910660321857192741913035758123136595262767253227809839894484564888875665326591180930885829574074389829015150092308081521945817413480742620438806333310906404111347233930774263921026002474933029329316025007044899587529616049944013623814470916304376319930391157599904427352314718971443717572508384985613163763343799535654112439205137586613409641432547695301699463373275589570439881865881900267293902257842158707528481206170357963691304081922653279806037345206973532493167598504430484025959663085812267477028905556611153097743751191410967624937282995486932386745782965856696400095261308401421121464261939634030527647479354643025052840037633857015547646989565143185010788122681690213888806381673658724411243263473495495225735282908086268119796615882055553759382896711014362387927429117055614033483209732305238657411356980274171688537262777903887796565850729558259245087698369568372589583101732339636369966731868536824792888916522023665640944872344454909352933079460082442734016656245103542721012843750954986724693500505511242973744314097035198889652475605687398692916473252709855967519983730400530106731825782924830626876195180796239127392230755086810258836728845198296347727148753418660919527027705952543302826939448437472252489805475303645031783673865197166755112609664690162669317073170912158817194058051623765436601697176336247953746006584107462872080441267544927853847335776766591455533061031860056260759698795614220890538727786916530734163872652151418318848959668432587383758457722953069297722049649477137617079482099286270975431141676046356919038523660771988185113494248563045335457738586078287334894487454650771828514145502941106758158868114082746784112044540001600326501943007747887150603874891886124813116835301942787563447310538786626042256840134414036190561563441408311314899782482033494429074339449440644107354081268862743120543564121659091779266889448934108782878277223476358033443398338197409809057437636657128760822289860242528404833623177277804637198611471244569657036129105797269631429897491580288635058907374333855327165552812595468967218872181462608673030501439572321462457274165649129071662520858789260645473594197578895229442411852136270231057467694019829519354877348958791737084390605897204506138792204917313802835220812330736740094153884687027554118836229729624819263313461414937301053802127258516402499016099185698980149556151053052431923419648060352222152160925734794351859766078940611345530140504162117443812099714599302666224330618186128621262104136750788890583944200862217866612941766610792951746447816368791850935537457628322974300958991012017367410807580811091930668437830650639024857999277340230120189026946074334364843577955223730961193843616310922220274594825970613159206564749639138465908054535584636931085891477398195795251757252212045111443116847912418708411485359595798654962307797643704551496558836915375764529943695067130218246613687943884601282559970683794775809730251909814814014485047709282089304260186804186792019102700147208779404499018269398380876835429317529746076133227873228339096603631253747217380356220990103896421023554868420162134501567044992333794782302116132494005201348524069134373763591896256612488954359839524440640040870203265701152908371530280015927270196141784545107131800946918080387344316898154463846431525216027185316573962424610879953304037529788282525033657790586642781403687739201158832091480129940231590571687895095973625371056814707195060655664716980168696940699783859732480748452947300217811316471410921302195404660187848949908459504334909944533777419890335623010720668005876740636494920783433200271284702315963115220181245857209538538453819573381917569740302306997008957216007803530305883411441848404026412881166251224932471351048608636968024002282668066815406864281339517613985986119713895502061310691916321923524661724518571889605924834826844324013619152872399017531384583270411351261799640782649284845375112802532322769218973280456035274647957020704897160541770970672255016012058250752753484347038752997150478147347066182257561045701093854322988077133373548763587861693346240105713811733031396187264879519084156830481014973620750916311528906127417846776817296027387489726432033812242537129933453394085653941722068757880327667548831594616619500197488982216429269586616195091688941739135377484136111152830260237212345201829821393203681460355285197553870758733736004115459302566473420883621176825290879908450248760143006534176720376683986831935013595989342071206749577540234627193541772224390710659152066910242325935300795919327490832132601776318588345499979457010508215273743529264592238066221098503781278729194048970618931028169597347636812522504968668783182003714987348663957723085433134286913375584088483853663057900714681681203077401375732280081863454524128641299274372107151529499483407001424811286144681134981834859671272782738028219125163412589626942923607341780411470105829377028367487065668197788968068308534480417164461004632666210619549667656506247967745465206205090679520676681855569769163533695140067548661811136260494630697865465816571488846504343616869991322814065240621124981229850811727726400199515362108982446229344498915832527007401844387030025827077775038605580668485492855944975224203117468055204957419934869971748125611503278179976475236916643844833584586568791477095260808539348226891630795587607184892575658033258346288520346907289867339072770433820926658661123145520408181120340188549741594308316986408547128363071022698534143437227075786237254605010391953696001491072944692588914377137394983928955312631471870451659955869354396626420848250325026763991089278168098188910245512044065182492165557354395164298268504360371083888620620770756813817306568249675401809444362125183451441115630990934127223619123838041807273380766897985445346613205512066639818600100430661506454756875040415753651330798918057586537969916352047848217230742335251361799054494739537892116349853234525092617003674547577682028740599745244315800743365382476693425988023286966779189416826999967110607569476900090913879606151847675069031699021875791105109534381789922693086791770582782785922672541974219440780533567939800957715278132077190053907197261597525106439439120762805742571056889886181562385900836611374519012902150489951256131758029826981865327099617850365784825821640826858839359944787267479013625955977348196690102287893526514142904736837004912077652494449535123589408476427572103389348591619335487216411828890414318666886640579386102994384086840711752159643420211752888619331418757165258847595704018071710567378817381167141084998937926205364761900341894789695217696246215458234627164782534242916401459856229429316293656871654305994536656149227631341847922381120183253349765373725244833735337451614576503780958605139728423913209837472660933606915642099284297870339196290378922882169823805073816893664583117327103878551635135356424608974709485677538267989894484203983013879445419767920597068278118873771055435426901394764731981435020181845768398327813593626410975235963237175696165496025908504901834594797409793616384122213730771238053059579765018728177056124210459607380436829144769277516203891672683937706489752098388144847474367562202805383412956369727886775644356980588782687209400596890015572228828971998098115582419659413535230609225514467217255070223768079057507496204480758647345132211452871544800338800313643099045738452769905455748231952391634311386752666514178159549535563975178047358004352583957588407958689227510385596427253517555264246204403551353602090534809941574094148739616836729095485911027439570959118041291862169159442320847417218035072916494337153661003860770836835542588783309187039593354120732423335862528800397385473965380046954115263420790136196768790989185519344689307630551248613539993339080993029539246175392193444994344963477988588926949729906899551625940105599822941986758222061004471734464675274300569784715216905289199038809066638423721784562141379429999978059545337193748384036988828886696070863783039202084696219024421943422594640588538206520330258347810660251726786552261028239781298907546649108565123925762314183168837398160611112640464356585264150064553209208684781231901052162848233797106906850298605249184583181474843063083897229127401071085858583286757183565295149223654354524520008032544293310132068295452751670698114862037564551994491974704776789508329201396018936417143740909182322801257947498807385008803824477150343793246503787323961383026930515548749034651892138204972953526498677510977995548511915862737416098824708034854353470120709743281404433621360682774400812794420032669510921124713042660648358302721833293111012304740341776853363187111739560993307304880296797891794168060113628237862167901743447067983502918866305896984447912772119305175839932481296628569329071594179384280862531189071949388116584622596639548566812197002299053546599962928019577734891628408714790236211237672440242408255947215297991878793808704780840352023100866594386366646527374098293173120386480567067261150708962717249233137282088890719765400242243763971557728969813781812862476822307307875552972073226787866658428516935997040180290292326437687548490476920833876913188100493165440968898690117329917439262028464652181900995472033415537457230505570524268443686681562069797145566281996975370539668195910512691779820287936840742962076241835822728621485903219945826310380218691577894357365504411419241337181296015643803716066893047602971016395161940592793365973074908728286543463847729964293029383767720712083102291617499828290545368213803372994826860044996458478525853317646361396306758387038888749833950445636727648724649006069351171524031518659663778957715946248906669323264916781424733242033287121145509590836127037532999773739854715700764783124350606198754981841159567163753583580459266698198602392099879263144823735006769662584271733186793385075229342826604769982187131496707143566516351796013032340226364735247899331610704911383107885061135520770723047460980010486743006137102569635405419826401234711473882668041786913006620638572965288628875059677573316376766396816281269361422780536058908784454298938443026100212018337764392718756115186910614034704875428197836250941099783332999366963657508693591736182367248577754373100925300688226516099040000564723383324233933741518554613778625801078285643012252089925381679682152662466803728970604279587407828932963104945169667767918180742294912722614034264673607678582989710672054214878229561689437078890526741383631808554515780858669254351740434630520878490226490785337436532524382247445929479458640590211421047144539930981857111208851036559812379116669454526939196877742972839297027570006623459948475925035017290309786131107526176217592413255820640687899524669746020348913109351351130152323905159645238620283105666603240369488050571080485474173841544808765164920952901117745821832408933506843886775903063255463048058778523297519581013688255082788176763946129686171563979964643273047577258754646885237844909908612459629807205313952336129526876869149129057364717362929961170997397329858652250339718456721625467164869516885011097602406268974711272115374748037141661365628285836882122713141059340118808393422925945084715771913428536525823209320875478558987792634321337250263614649565193988264879499479260072873709123032203055420028709088184433067655531182562410656252701954958113617412540928667165475778715650015145139209475939580385169400638422162602503220252608759810815490122828914485544393720503639967969224744656629924354081910103840948334644334899580936639277456200341570019937106775686856847794068305793125793255369093612603153602762120639880518802973209590401734765400780620238860385633314803284216523182427661744926251776208166837402504225746606605134154026180944952635378803712421113590486984472261400232865355969214886199522922636261775531734425693963715067766609033028233812781513187950631713776710848037815621841941504619383246691595171595543577905901078561599271767461085657181136633704309317636670900930666120416077963486978317948054795654704708005089515384785159011962126405268952294672896629256602542363886051733275418353006510845512219203529000695426102943837598851581125934910560615449002280862988898009628955076254614075328005414336995243505771499004465103186848837060539774127064571193454518864440201998670643441753726200911962420481817821074042454134977893906601316965715585707101181707317901195672769678404297336595721153493261288207217948771950399026543185330526826534594154383463502432491134497527597423279595564284537996535569816396390391113112207842169973307639369832901201793482905836651939298602704108557497633503418213592651651253577453428180970924833602566733347282569211089959281663008850178790843361448080441524726408995870169771404936092828291926043302804053744894166203267634111627950200405116962290578076251092975898929769460352808666891691400905851521626021750693722253024989037447497766150048652350659186592209764978571721085492850149711969665224639601816030670655453460225641804612445260731804246365261768004079315496883706246637708641631505075217851651208271448319549164913532078339417629563978544377264735000789438618515522083964179903247646875250898512594238807359541142399376915298549349965061914119395804947643278014004897835974523716195412663134311523253311625639821346603785491543117394070616773970160231542271072349049389806446231313775933818341208667936055482979519622287777170389117690315687615684637880282945772597942051568349454606116159501313267535327412994119885609799094679114845847002376351665044907355036095196474843543603478951620340108201800438793436861847372419162624680082959166608474822878041057068822554510068580383734289012740269544739567322861676824493623038937895859690623891888827627758111259987751513986841973162503995487232203805963177292045548488427739338157768847845227590139921726847438101783235770431062215244505511782618511015996720746491229885720503994326830773801629398430404974918920427163912164662121989073919223116164354198074285957996017352751373148535619989381538972895092575398248956841321443262657025403479287410983066717186407591537308726993382098096820267525707347519031318083571219164981281521134133935282065437367395589315914701438461897159113133099698737594062034156839670849210724280534905029155175031738323068842290149963644041459579860853231964583420200636857515272788053986340730732583040802273449812423512697935272874980955346791063996928968997472670745911113648227344325451528692427189240415677370824702375761527288750217512318272705203032721468285223708619722765473839520016874124834003388485376153889180508730718415075702298548476461868449730973338786306366496749994321715852094338700898472611516137688118948476906761295952601322092672093599330043928319310277627822194685900068915980206134345116302419301423269168640221780156248421677499759461193017708801354151940747902165315775104773007693580389182709971830709786349089082899420722239244580741566258414811926469582554227006799788372307132250542729382577795099589593963829576288775921217399177171966972672515830707696262716803930951944231892963880159063756221759105076744804624096694079961021826562651660688479742583583063734205853161998256553555021854340415607026513594320796651512198884958931165862379493785488902099463650434513626225737865284593027840295884007732207693554310220410873298932362230732947652256767339795023668519699859396759163406259781630702575171276093116748039374616152943451181940227798420555214468332332221933488303206852910507777480285665233603796642953587362102330576792699137888252812223617550050922098630626203739572663512098454192168340353211608114974997263559418631687455840335386775946628672260267543307092214628844822356885348598574033638253296518994803520197525147585097161078508929701237519485623409510873349336512667027568423452708056085090801804775670351281819210195816733637418949908557558479383010280054845985499204060552063064694493213516933522449884958836295962949994390412144555475805896968036746606353018418607628320162922327677755950958319588761465655743430820998694285718133205685075709612102893486376214881762808093860185128401554480409069726498712246221448496935536640811359522440671795154581550627884402073217232970570719710621666634638901267514635297646735835271804327256989381113529370275276185643826285333800499107352763057951505525652294895479992368170038495795211525907209007723743785407129671718651241172759814373270881620238873538067768006525387400544056775137995869558234350416052211937873115008084450750911689929647394997650178446575360775711311547000175295340358538135434868442968982402132761786862832397334153735294221902810385568958747399611468429193722680309852432987992738250966303534019379710185156113674028677002954530737427463665305953325896995130407539535929688144543822106151531251714875696206446282364498018158917516886734004586741416051673116581671711629743507014491362265264366289541183866446977633299895591148362210943936539829224027228229588013444895060781002046837285279755035777656541001367115751373760474272252232714829794958665421060146173250243397881753724723104896159557507817169085688002724758962180411935800031818566771262764952135537964948608447328157831674445476788449157624233861682880443947033577022402818673241219528714322309411319549056237677306973668090389846469675207326889807440467697855744994958909336177672042995441805689658237347037404344778224986080043813274838583814786924429450329002097648740392437359540522010496188561521448633266361148703317817024325210876213935446168389695357886273189510032018842547304332437399762878105934732916258463211891247338675112072936525801366261465200490285873261308651860888695453962634569725225351608211875960139528420599424160160160566703821275063722481237682868882304106246698069645339183925486464081645592410081979198283985826810782694684956790335040307564734367498320664839954848230427186864447166317260549146089059966524313255292787756719569086905308901596191693960116573902158732784160398969138272179427826674387256092718463821153929998981122948488500810880242433352543736801105040046866920706153391210158557087659267763492482208353647246400767281695641738057811832607499965991637473229306675275088147028646768429847009849003827225169560413942596838509900237114931477503339211881559364375996501797114360128668668144714979273228420335778605564207621925779685269305845423083451304205931747746442970429430760795944749448729056690463629997374023440731602657788276093757092491335916243704426104717444605239947581327467674082336551892933948556426119859264040598728668000678043648023292912319363154815770394136175191198821818117276670696420403198208237094709401862601192382893946710103678725506287234557535953801403205720138123858504109791522334526545222663040751687526926533547546493461576957389414213486818809299042984255607891212272504367953569826724035994549367413241796436303386515606741417616750034227723600894374795189516438194433886912965583002663180057949634631179284164967267962247121325008275708943125510713921233351996190054069929392736482703073726041224370371170191033759325456617946147429993498194751680545415627275490857437884094732036897514377305534373690651905759895543359467419088275471496812623014524208083748644322357260986904894265284426039440710569567640454653643165424589025014792619171521644997887872390936687610074564891746603274787065229855756326764501227682799675829541330719820649342899692547738001655308092103137455047227881627626591449911432160464282749820959047103047429692977822146458682339016446294167895631486475496437498822005962730082242502583906733640254274862467056991321091893632374995657254653043345402816943759201355357313087871316130720396471897884285884634894007382571229342551520437447229356598955072458240288075914121170147722470484085457100384609674759090689493442972605006709806298003900658664974643084966869705334430904832011872900259837744690109543999913106107208035301551298063093025368372282131721239919675365766716931796346893143756809929570537313714739020749549932176322480882717055900258944306557208745899522699193362107873198617385340500399917349901595097420824344275061717006361874967167083097273115119783224156208476720025742901400896493867420504864751338885561103252100726892930918476089969041922451918762898274787217358997200655102740042360179340336410738669967754142564570891336257269778408710168293763034673424633614358982174009049558167923139674629088192178687270942772264505996129972935910974699431100595770233832504951086723710683784540116940210672128745683646465095970111469289243760539598452591048093318423809886985287245995574642219680791942392371254476478567770702205749359566169432975203649203100300927232605568000523653358020870601169622560391274679014688925413507931795835680990637510283341820861698045618498913003777647618872573098609487803929639137288082506341943061366174155994739642890202942461894510032645500505051061925978581775897204796953250925328528545102337244368539739662589311187038092293911423346517059030037219250057665372345947009614394609096400582725538043543418332206390492860725488555701376384264913541686859041485864127908979732131369579945285451226844971334815341435780548274135869031025475551898127146931939719742124262346368890519946850478106723079027639041912624670781084573315830936299153237324330726675378276206999909224693131149638421099362089971046658875002171194248705599244829120730108977675786851507668560445051081505225271980187052312171997898902504735960028072473999674904119770590886046427782490261384739009849081081566898669948643814940772078617574625938184451056572470989131078855650938640548515164919906372567463543762969804086494306545056543503012551189740951333826245665570313186670132476271726251601499873931498053668589610401923090749341288538193753002427034348245073701086037480025195363151364639655095839693882416441486533898495319573434279119414658467977172849180874516803982398798768359092607754630342370423524696831814512572174665054780088611151574667289896233255041938762202307078213896293948753552425207487146017580346880956582402992530966888507140069918404371429346438846974770292991412229268066012561941972865688644996658215299369520954193132133056350565800772608610036505228532923794626268103619313946583768802716285098618859724902326683676492885232116978613504272982780979612627876964307032277840650117097245569863168006223998498213451509550495959801785499659630816748862383771564212822448036282467687241905830853766821539935874987544691680172623382134147454398952600933313967492315197398779108855810881567211191606596140864635955558302023783948991682402560953926947951825609997521360341441942697030664011740762973966891215030212421437301318987523262072351775560279506082510427399605365250453167708725292581433128819991823560617665198713936439678357702620724637587102392199587499403198515599347898942476821295063528645398920880971474746276590314029296732312551964648782129004777574365488420325468767376918665692540798570421638693613164298861338714908243401647201484265101628788948692572997517160041636314515976596400536923108424849182741492840635828669497708451481299667016550592781573777694326403882554598549501491430850235949886342723444280868376802944571407305373623669208160497406833092143597797623536443538922021705526110470135534914815396359212870247106645329239573971461049849495800477963685286315402072080153345399959022348800026683530168476661792294319400447606909309981175934731969147619115685751900181846705453927251048006923659999879435622706735999939218347517825836000344200890689340900021765954392234645616000968846461996770416557225621690319561705138519519469779479623842911880394804807770031093520111137946821778482489254925724319832487253955405953733771640046383549330191829860969565621627694553760453772309075587377476291307736667659605970328734018282265811279818336307535269053213604762780773990977240752292983954505615012095791574131425872777586665233438723094547046180241086171643871352978403832089088366298861143816518070173847275340015359218475246113104357236035369735324643085420298362325047169637169663896699540623284403914601949429005678689879690649870292096868706173572344455006474468387404687038672540308456621147887487465881333960692378513089147956819983762321760421744737734334311478222955729073661861601599512614492780986992083355416966217323502386380418053608782068236766106719240689367911378061713158876685630527845791326238998352855294056966635770151886257147950435042865134848040174321023729914349208944887157369685653779664066058380859283245030977832556889742009291070077491833084377297483431510280226855144774266030092172477565245287880072377437140335488524425655005503066935494903594942231817240167407359804048403825997716768668298912216829584474836715337364621433242286371830073167869865992135958148866451221840580745439410479140173503037599675382517822463857367171243594892512327829391999832553305924985142970462292323768164305650429091848527495212037422287488902847110556776176531724387119378110634946015381132660874229642846005131792276909575035284742572335473788995728250890642946422607225207949885478520456355602610177587041462338428532173520716873349846784650758790775763444186105258089629538068252774439820165654538692207404610170338291802606866505172157796225950843826481774756697365870329337735898158248312212454612001462255506987786500821932223829128650254092755927102253659548892824512692202012310228604989078778499694169951408717287030889432813810919096537899193011448784107984965928004759893159366210416438908268087505743874070141275736851592447618218902653146445108398258880524770960802369420337803274008705849731475131116343591639725849400360090202659760235386410040941379406085647163797189764634518342452934000757166448513424729232924309560398157708265184666222122519179162831072185241553244979836545617652616967375240270049609148693282039065942055453820662860423968620869160892431738652105770728254347041512618736262314680708897418165219813511744183092919816499589465166909806937034646747694927181485418253194897498297248880120592921772916458270341346115117335451999203474709954987075047407379114287621907252087799763811856107968420694697824570853032271285018789726067106509924437535200353739212285544475895158900842401858185286529266764716217849533148173685345866610555245788844788694826450788855936414208911019974628615416819114383782433018271942379011740996561618251476991793504669191303445637686084881272954609943319404451995364678640417531885982788743249741913653546155358771174694847810918900965574148431664953908698774151003159800509798177923404810171234988994878234264657500071770354428987740963086365998258101260832537307639315102312848827623664811371318992395932137097987478860992379682209857182256951894797711100701492232872174714217557832127140237977036873637031106164463896565014826296083207408771556303559562659987911787313431900858095620291584739386313520042724577408950233480139385145016198564601125205256558662363838117956908919023380308617522456343673515272492687418777270280433227016058059177327903338002494775788288912156074599897486911522902107461870639156389835599755619968605629742485035651359371464596546995161601851818409705853760295487857026155478787541581803220320515172616523325388547189060533114227031101418140813658095820443023359615480582723970596694909553505980743152646330262033971023696850279280076124389019318916062854231074627374471611682765672045008399717094863846860342579778746905341086164069955181381317736711125620280016329766474795459968741407939344055573076631424930900852410724254680644039686519069972181962470783666616335401894129929765862895057527260733135703290456460501426411008421211478364295246878985185494706755051170210710529422749850335157386246914425982855859391030371315506299984776592755527040553057751561908154706815762203149939838973737635566800173901148503682067570398724959989461221058695268978950258555596193551151039357523579576995340999972127515286530105625997849148050736203784839321302493579830610456882802123617766713776280753262585135504273737706187141022070859194318026584634066981345415699768805069750689303539201910880376516006690902303258547855023419712683924434693911780900439233234899701814868073251857713340207094657422389944453042286614991617886922937310254843650569894397600725957831710076341829867093005543858786986998341973976668237933263194413685080489929837723277777579475862625894383845494967843688432670877680113943401429956510365974412275123478447787662621397428843239475593709967227432421844769570611310809342495686380546554316826684771007370739501882931701142658965198563387048887227669629483723972555645967514671198390490102918396072779911245726376463226956842484359895943387623654884662546621057159583871071162808410407854464844984875293630241547043254730164173309362254841631438549122329578321274911446312572007540321649644944433437479189771364238235320617404815381211216890543204541454612796768522002321888106874020355517975890840701731089083703723584593584416185809849875897920993350873874570514008291514211432986926477821478919626053859644744383433303230224653837542498960151653440700456838867115476238692470867779249635309037925963466270533465247045346246419493959177360756318749178522046295029226046645092680712239257283283480619097492725761442082232250220379333560133244683799244970572617761536801631339585909522201573017378196264521237429606710886205189977916819361702016467401100470950430214432526253972119709477897511017458724419306969061296970051435350533550774978701258388630226058742167805716712384092294499140025025521162390090713667505268274560203662199643431821768671044480476811765490375063446477359286381254493784585799894657142543259210660257089887871595688918050255628832194385348836510620639286820549736341446582803128239482445829077131953476959769555571815212220822952066727748243409969435108756264719640733668179633103002367530966285992367011027226426966686470720863992029726425455737406958151159619086930545074341021941560580027410959044138326502250341729190041736565978205600143811196631109774911581107564834707451281090584780820623569669182077384600174587880959614237624399730895711176125994667568778355979032322076388119418984232357107410511882896565075629340120811938288975680611705984173421868761119979229200997238803030334159467944371453242647871672203847019791723232211953001503977168759442757169996171762059541727872274638116759502400392132668483708898786561160924053418946641425470664814590658478275041189716011139284913013972323849435674642367133392191570117315603047487112363212073859807422770751717434740383973018451401989319228384111616859653791718076422439898126158355566818169882352103517425258758105914557714019759435724663208072937966327508535894271332541446519239197320962412762046814745778521565852672358212967677985055528658824691549520118222467711762607473788893918046013758408062691277929962910067258186516235413316727982005909169639952706920844854103980610192477052441368132681931903667926349521393678653318789439828580580954962696210282199516761099389499182695812377192232534462409475814456204058114992922574669329545105155942317750231548594426728176470619669993463149554891709261843305476765629474107008454942046769163137219119811352120621330465041499971646165231981877449351551196397481018953636721373232750212949710820762159453314054518985542879994340714958407480753556962172677130279812598003952815842159521465393699776915402042564239013240835055282885317684428578343447830827843961228909165174357758221847095365814599054623728892228934842864475093425026076107758521370898933159970329318603303989737121455762772154597214654553664465888409245676885936213605600095215698226673956070369616202272940967712216575401863562871039434594140581248907997122939471147933118316336615325520532090197719983752391924110984610979979127431194418438892276340290272431958734835080916273445178754249870933008710421403551138939406393228927770051658425929398351269350152790155461949750405502408258553073665932009699339105924030934932118664711204372952533661636132540688733576247309097413240532128974417514091200968688897933015238320551760854353560929762725201855503301764720326690910197433578987518617455551125451635249234594877304060716661033438598312209033168298257169047299452204421033195363292681678251639217242615722195119407099356185845594839884489272330081264776543571116054620934234803588760582392852940627603677225853227690461988963196022626611957367991113019780010590406151324007047117062455513182686643137081431780625807970313328863926402658576704456240376758019722890996127318991738496773209540838803944068296959750213309945636463393152617568792580918204028646573560564116714549038656730075435355614227121955891597832395348241254478158564984181306596515451065975697419947585622876232607091213571793543392016264009753907706725802382737212870585654660854297404454802146685537468548937761786120095700954859877752188493271421725090356274440355564079874181355832081461409063111076615087666789604687546623565222110871456238322013545007857125409085480031840453475673233929054421693414610214137010817065706556828628492899826338339698368081248813621895989104413606874661314534111734719235986292793344908165241679003147280715970644209356810361972767827454503961731599436016326529443371922416147515981621624936466286980965207214179623700067296139464740306169328813106879122939049985834987322876182679248101642091441845523005918037162502681506960825823370947981540628415742521570770945244849443969580544130771300693304140407405438637256407592333583857299112555002355599979743026934851418331420947676858324132975227896420797146076444537451131758006899560512401840286697352695056925146790451853923414753106438387218983791393102759518816227753192813597148178304745837374505574645936957827513910956162749615873192427411632336298242594324660354049055830886176417282496905622537315456008850424423919416994473458717010498189210403152561761598880122358999634394328200730943078364178537981437736103540923609832049744556988418396712018515167356439458277361929919267120088856604003545654974829999114324113677143564767116253190441726726908354929781839932170475619111737252810270156547850586732199062141314477901131099655208262814114057909218790099356091482784791666753647280501300531766243171676972888840046660883647258994388912001920379867710746984003904988932790245505562385848596601188094942670697986477773742062803292651956573807747664754890496639724784138960284309482550723523558195158992190696142048164702470565855812257448591829521784131145745462177838026222970416778951403624071429984456838828610500637295280538286466109676712589521384277464755380676675119838109320493599624666271504851924383466387311961365176389863761402730358228101814765930954356749215791666578707858093281284314410928672918715460253518294366369169062504556032085259379193484973646623722004464680174589005878800654141915966323354857818086156490316695215957773857179249082890566553582426553972485630102062961580177228435736782641509907873651391678623326242805236547414355412449704766831488219230169037684307773504393669664257486190970348100146309881177434859095380891045298099376997963450750038508457340033280216075445198414197131496743105088231606315995433866961055701725561030205510808508927642419831696572210580531196166216081385413628712753688649388240549491837114242465910426610808306844920582771360225464386948329416372369245229510383171306233895418071537480091748816370186464931695849358371815553735528383338336674059532279245512832759167215338662551387297325834474005044348114432161160115047916315194319531545428070749938365017436547206114071929159119030960909679395882368970078172793448523627564969371196377878860137638300157930854157873834405923425318163802035058938873781404893906559995598081799316305624208693548193095637627904795666682408495997126129805834996888993976735654094619794751771288382247487325443547491629469932213230180987096370675832744617549892044371153325228923292158143862384594446789030601933136008839995058156692821120022252010882898176680214739820610333988335853648603480517267997264962522134511271629358643303353567543276172080622051011435952701642028466756851431511839975360768794503021301361770053098163371429982536612777896817038942400850416245816980010511965628597770821367612272688619497771392818357817956496732544066053879965188955090949278645975928555137134168178920379406628264193686286319123076384961592281298458098444480907006026215782488034165569522448530361461459886963096059603477324744156749378450401225760585277073571120356980666941449171219463190213723305090476973709687278704120615211651450183541819216572444096213837053104578658785885913424752367853451068245183750528461465009636303086550615769449038478627013165399932607677239569438731664723398128906941761266298389749483387081387158155265607422855112187509523832541008894766874838889101851554019669147370115879071437908272196144851876944322605022227659034135863822212691256419568598413528429259608761468683978467920599539462225521178495655106563380220716684582788738672438674199205182229548924802656487573581207246355681835899143702794447530598998209782705786157177643034153273986887881175772931208016817770455724516702674774654167278216667412650234110016691038619822912105030734815161342845509258926356352758886523160802689253991839730601682409267443907852023304922152232364736814361888086338310787578413978054097629573658970191563029766548777338122411832600380575442867762080805998514636738754953518359888642134420531543435181638414779922720289653740933148481114159716001484051608635373416229963406335113356029921943057956689383924700740757511616441320707950106009671886649515614786803457271004165436166514265849488152540031766213357351650937953712221013678047215676909126679101454199498176177218010445923098653135927751302620002374299680469938518592022495615357899180207250644616103073969228698209500245682008266452418178462437248005839968003511113483377898472665090177233159201441885582270709947102629188211786853131606239829168246617310934096854687356753603204861945470334939832495009638569275077330786006670604710352743687393375747392760603539568197114110361732613367066829737899051238401868179883096927825806672133010542722084406967142398542087330575952144634383016776149348255760115045265432410225046432238206481734837599079908038990630316557231449181170822260364014536774131198260602230531943801989916385382568717659231232792657865601632810955892194097927533903949453803430789126002093560733589079248445416735237498199367710492077228604038965768334023240409579063182252119663845735468466085810050121582655467475057035148685579744993308280667225431992283083840953679060423518400901786546737635609030229218934243535149640803956334711598698257994016766292833786853043811175325223014967831144856230806520226998288689767390398120336404019433555505235937450930972925511368123618360065174554092708070747280464884302142166333596868993058038445327774693209307469308260722058572681158109598163321052108361132730082716130688606202759369016130063426998264861477002465454331326368115775220316016906816855844690257455713981312030149856457792109567203310025374749608174673834799132621100984556662532709975656896848662206996418582701184698825057672110875588708689162749074915536267222696451062336621195368216183440938050244274201712654449239392822165555130613304151777580037244294268284961007156993922402720315523694567663513438184151913425425200318766441805714125299025481728145932664182827041905857895607250108902031782957121724111077762781053399221093939027204176340512542796342062423128356717931265874505982388057898748484027763008964793719136592126883668818518965417845553225426773112921201732022401261205163145563993346736990500519630240676102173513758207441263505093238303218012991085187727489303154129188877305464202715224864791739556800120666397195839606884043304356082273565477081548090654526898347721189199964497660395315514139436855217207931200189150957786163893348393973246136092940421772203785857148034859585294673924233135491990106413840178430396778370141710811195302484763577471256494283903507760960935271346394603801227730376852705503312393686644062179595252235636289408760912711885339021622310866481156266656465676666660635817432698530966506235546921243077442429054306233862786830012554948278120120310436248006185955998285312300191205270407425440792829815045859037269730667255391060444812817598547925665802452402823952109098184912586226982499790226054101078027265639706482980052768271934928353480913577907062618869407527324613073268154277901543727918714039265053997996771712860196848874882989990160403895910116364520026047936269208461198838282012741476084083188352888736038115319007517899367703975653556044240681432268368160688367527591742299245519378005350345223102766977154549517242665382726951558049379065085682833095300826920240656774657370855997194434119132119411311165439191591070949221946166102516875653083345932452806825590752589845112461426227869067925430956334797532627580417771974278489411487958192371670447164142796630140218797395442173289858330367737234569536139033211068942565403632465815630946698209274692365815968857413850369341006814395971363232962987577010718227446749246036291051444258380056036140301831192103989027202788440225270558124389907031000346370346744302247113754734708180355443945498659638719050586651287245692668930303012544404377343044817121224456071254477743319666544001875880175432574383161498509795784699824397783406144185992745628265503310915297070466957439717367160931177817554316779780539263015119140683837328840104681043047416280227984322154592659049773537585023876384895608625915626696658252485390992009457148230611415266640304238230226956010680249505080975380672172490175430407660720748429452956254756130692275078438563491399506115826763798780468754182971494624822334002325743614041028287296605435777352379654825013987795630977016754486301908995383858976107333865753639728471957383938730924546717620008512398714503815178311533479520640283454761529973102001579114554988105362266836661538202582620103311842134063623400286146766237796780337987605677485910997480035380445579694042196580444268765741963938878762343489249178045714586472849347872951195872511719217726646277473772909810676668293173783588193087583797469778064828243754751783715453902239064999241739253682703970853001747509359543343801883973670383992394545114701697055321172293566090628740290067485020478887550313348211902071579686290907099744566857127718824742021321928092037776412979265348822044666929863244916751945057379855883358753667441866016539807006409035594175371060782588458000352181234149430620899041099891167687531124134626621179339693790396413252618203554505865692262226236336409380976586757022152598995121897892482587348651282067155113944544780525095660403840139391282198543942564826634656086632292954014932254796960570793292254500114814201849330629122488471269627665439995127158985722893133433886890048565697073885921271226946068393442807515909282833559756988948544779371211570824283784180943207205943834674749617280068449044806851627629800359713775767867112796011866278511221086346680449088688234052190612228289257052503359207687876012255049893469003843483052811306891741584687520738119271490513449394216414389870970140683638063126108264107751659372908038733723687818617181231959612391360389081029560191383062792096550099578866416448080554143029942916631801289414898992198512561541171615143505521412159292079256444831713297686586372405572971193939506543208341100791353674412712329947000539507476125605846836822580065593128424320806450698533672933776625594769186628678810471131606555276090244677950885132893582250308575150600838657367739547844707921013688396612689400302044579103481866402835003175598862182999732642821790080618206334870353675712167227968561967979373031472910868127565046294401975504141190070403351049015934297566687888244634746508370158757410131422298272450482139173938238902166515205555466655560398621347184489685822793119323320818921127658863694148456121522661214614767058743944008707866404052033468046189257542812764411132597234280836911607473626264881394119179347015503445940016666913928212090196320791729625899422253140222378994206734354573532061956059933403835963654574344018890920041071030230793603887605126493567895356607489902480411175707685956507106818329452727417277325052722408354446090673696194337283924311584298884069050165827722109908444856006374907871830899311020075680653883261472584416603977772894155568974976292316697115925850825747579383934613029559324998824704699480476798888092330295368846442461553538487849548179808446620903830020406706603171099015472726469306658061109779117390910968099523936325672596684432191312769601366477758690314037055848034316196022847107496755030521519337680422355802141114573123482202796005124443633447731267079578203392259378016873553433916141483306417004889056264494470401941820328969803747542594683094972070468246942616041970930809963679837281036639723896795387782680535430962082562468279334161801406538965877123533529413315236234793466552241375683559405838576139149709169721210079930258979835890024533659602314711641790923943629056750872054229013610445844492705518069096333637254655392530528130285945011681648620928036299817961102834655434434723830945695241242222604794364922225764692027491876451985886700762876062289967901860785880708497537634679175973618152690904735335732927565930552705278597038145512101669041195921328885773487580191063433333611966174888261012950849357686189480744030105018899830688149038867925728727121064559782816893436730769116328431381233682846114110979661591385640829908622672492589719716140444922398041225669612164659226154666248292373310043783354761446850869079010761299342471504907015217689129786858945204279953275563532195349792818833540854356411244020978398693746758184673292301105110255874477392988961473254827945671128675623384624369187750656689168273456488583752168806163484229399003334369021824941001114109286908301873592119496319035150731988923803608299890730683966563794924626946402133452108012449247749705459109913417078841807642444839958983113115183124736957541226681097565610487247293452602290485566520834408738135268402102290107761584654045853651973447861922799473636479326694574898991698415714394907850103108744381624420103174539329855472876476519212183584463426525827761005927615904493376395870556734681641053434446160696594869167841557901048261797050437837066881407126050857829748361003198939005605956700461520157418266877202284693782911134253578238770209202332569183901804944824371796978141506679196484379194760735611056378866448181368581325151011208346687252095177705958707575642733516786473104783676307046859763076257381686896204137422228687406215202949161245025533281241924931662218187204638747498042393580641496270037242611380179681707334322300412302693731247326935801297532295477586822461768679182846482754809681831651778853803222056202627387834315264047224780288684355427209104547002305832438157228615952590514184634296299111943084938421531487369578878109500976091006259764498076124628492408384040740329097375362397890013332698323278349285595308136912024360901050561627131256887551264903014599938860421576333264983554455434818390225213810331411217531870851890867295586415449473652920462098422223819830506450206198478902187557970847384937357543185847686045904318505544987735434633648517728665641469528824442279665113856717484858355244341827015711381630755930665311619759136240388500856572787593297907732786610526689267111104988642133775244394110406218223366333412455987384519636232559174509939272977452998687777787272380709358335404617810584992692839452251406372098128857181847080227619343541076350517711336063940358033343864932207027783230825525662892574395783769214013388036628756009530814843691063749914974336062385335949063127025793259731893147459574440691593754188328042293870362410236451103510083217169622863641617661646253052561151772058165584403663256004488380013171258031662717187294590244009550140433034928290812030913657648698603687297517456577270577569763212406312583491314213525309033464079588105787393098423538164903298298733375741410164254370287861611807819406914481320982914038740868836627885685949374254575983878195726544535076738236520680523591011725059747515060009598452513546201901456868258783983541887622740587119252825131024917001240994466775614818564911526904094140017206584654015890618755523528015415822772929873455009876103517060688700926918741199496289215139778406082660368008357576020782174648613556412623513244142950181023657383143565170346966529574539846296634088639110635006577933359826965083238431691969033109552741621352207264517749982062417160497160263843996144251920292407274405976376757639961696011909753090244471787435960041959286266781616140285201691066112209263729138769669396335821586362443529670888277407735414183391255732033482184518546813421815301505150507855878368288636554539560502840926330240442641967194288354946622582198044250146079224403571345907276301610048772753252141459100867523339983724470178663324686895574524512923027612544678578059548937456336036241597462374866587453866667843283784054602680921852470213439751772636513790344077720034947345798262811388693223356163725123383667980649977899082940108744761431004047935171396855105436366702607934864604432979099791394461739765134953210722517177466751468816445418138726717298993350368572790169713151352884271993934597742041585294939118120664037733905092241119491462632690683831493390637238178663676138360308570653723118693988857947485822274991212065770587670782619535930579270140406076971457852356796764754054593897362998703990170029722641482904921085030986678077222354412815426574098460842438286630403167579662715470242862019154868900193987092110411997081104785840450304780460880814778328399158203425630911280739848306748749299639582915377862280467537938249209360237459650012264122059091863466048098602608260795601533965931609555834216307720902670565450211610883642637094663602840675828180744232286305573645934663718039986140774377348388268815087018420361891699738826643247202035276317233548299347288430190252745802825931057534190758119365894340730965767496709816200096973733606559755317236863557462219562333743902634978177160048904139724083238263988946020851895865153871887861573401287473463884941367978899841956870970845848803676785386356737714304229892363215496974631390527682972425465454516091541784853113091380835841706411466982644060935931551769202890962681207428717689268591903894680154212489440500602857637415191321329376965013179289222544064990920576685940885781901450095686673810389939097747471565786536833471504914695859376524821747327931184135288709993330128978684677002773728178164298218195228446075670948708445200012120543457036826842676937543963418681146276592210717687051174015925068984538524300826582304379993909592496496896956091924219270786938512546415505837049317431662972468897706216832258514715808377187898061843757114961067453376079682900861324479215752938718771419615703326565305487052912401075021878118554218265584082141306669759625212426454049023683038503885681575474418390763147409258214575983841041113930030089340329707751147388757771334372048967826646897649910223467239066284043941555277264685101018466476721783600860423039418990211310821419894575751965621135767857207862547917898617221710159427098584864432526474029369024743820159300563365568703685220059476319943262215173181182932015280028391556016744699668656117114573410101988309830973074636913248119924557639032183442669600180264360663632405944854055135537099412781268294346238547322094985799203809268887700665216578287850924666890313604441642125744871887795308323829594044060013750891525331000165173113848992956164493155331758077821669304512990633960239857340525633229816999750403888147534577634311601106361264342954612810589117237770248453425758326540056615101062820783160983697118740686452661493209772274970331291261415639056232676568292862670129002106997055153573326011158935792035219342433656537653675974765043983737174158331144190748267084844682645475827853006606092854696763902029111226893142877452740537146266077133454856917530681695716487944271792568229799581499124786155647433207027769435632640402792550380306017475653884405558171697237657441082268770409811299371496862884796921295351237966682106164833639874137419636957431927842710333887822061521859136338207069298080729955086643298668672027559009735250909314298614646726743445869815149116630268673815820883157522817363398806711237254870478796943576375944215873616791623780171966372632287011811811942588238963409025187520582372773777048750788476074621379246905120805958073135650441433395580610638259432774286056867214045908371045492968684805436470014301992351139900053976408074658699664618594638577174616908496113783311689886121174114398953113667137718660449592920761548434062811768607951874936991060690075714552048956328878675497330152985954887329133043261592679308542172738983876838684362756704908377843886070763237913238844277249486657581156600964116828866766746791768654884492777190411942339384919920844154188580087278468982226767537319945801693523220553352302824941481466098719624131196281751130506988640628083506434164316034062723631327990307944182426714864219513540161201843589579693560308794212929830942440692423482136048678709417460717199680602949252234587335356328552215295554174927895478414653559564362874777548515439750143920945368359830226308919851689452318535576331418533688569680291450446213521140473384257780409070547079203735491312764606735982481551237446375280967376991702768553829707205832418945984646247554316397364302315467288911500737651845857233014343905452212763011849623860079480128640877217292804060516616067135820997767647658474961070807242219342503042349813803847472891711721469803925883485335406751996121399657133493949575938324441525335981074224881435512606055552963379021665496762205717835370591790568228960998619207994054910013705620241478333026741163018436969070967465865137146564301017510557504119028251302828075125545709402759909189159510266880007583923065309951273133039020338146677444039427748853366425278874273091541171091867940629393258757753917334236864838537561940713520272105233882023254352748609262241092899701794901401083110479347286703801124417557455684266971812105041836219410494094602217490239089051801260280099866035309118000846175964597263066621638621453637114338462378352915701080421320635511304018224227545662351824327415506814275126824603812262250245333304985033836900754616985376446880797119248995742659028510690608855884601091053406386595052112018968896010528441862216594840627076717554084278542457138553375961613082740527938437297990148586807731796485711233746488443226070180969270363733003288903063559718196886927352686389070303938082299369907357233586346246997872813076623004981541668337470592585769050077328731980985475690679570891479558688709729339374346337349450529590025155625899354129609606571779191641141332346981059145704783619714270994366195856776940725671391336118812590429944592163361189037571703298386241679270660539658710480439514136716785524411705423723744146566706547148247573105008647779463967941771611502278081636445140733719926890941426525841538043023538115563778447456071734830044091856295764100843751317583095540592015451327261229820036270197781446818778867064890755417420355509395301159416532584918236850765990584971289002839214260148530858450127079863865327501763876030701424825873432609805562568530421205306945721890441616480482928617477019529920534621786523482538316736542968623062613722039548831291682737719764342478964516105384476669967970504574333538133342540086254972232719040481831617458719890194508292404954783039472696412204901632761784801442590011160866630047339914717242911100642667202075670564970471480810949761346003982578313141499155858415917683844248044197099307438497774507113199044358995426230739409998549354788979923310111910727843269690000335138071355753856699328046037573837698500992631666901679974257061858512330212436921718867516980600209389777305404051502950874423291698175996643095092812140810276619468268270360937607930097229171887409395715588728248664436762454630998681212742220194282352555798290985889503793532704769694037071454531937495120606473172715589076059021466310588424319015096608329257559627752596529603226967461394854500098825536594902793553169577297092494610659969803398596354702629806456950717192439303629751650375751670952852920067918669157165484225965489250939396188687889839726334187158436543168606380032322434052836829918592984133275710182569297224213657600256017149137046092310005526441639323644066099069528083278569845367295347480690858906354238573031086516740097931044364614421800793635176624559419411076413497483587714759336631899718574762552271179065044932292009995112691634301883057331158578034989934371390770816145871590873602897879013268176423846503336637208891542061077470868341436449761067635371043227674628143116793179733879367919454373691562771409017249241298349145420426518980971942652808181036789344851040766282425061291985641271244665309385259213457660341080703992041272071917380148121388741085072356591143117557302420049209835284761582342764791017209100517804316666201527906074264701474043176710934434698923713798274680130823769290901652484705813459045091013066934365475750734315838603795169782755685822693893985021002833026648115358679691447896055180146688747793226625448161048492695581478142302108554817672076183513974464873443703171266388900358967085918091624787546523010260172609002204585420470799409858521023844055175035422208571247788446750755730992553116408471828565672209917225227339935172089522088003412103317376900826122401473685621323879637029090214778469043470911183317859623260898126730558437116181034892182062316659948231633180862167397186749225277936480126263380902159838333510345391179544270112186315224545018672155409114059213516851732078236014072458640643874688479521571674254689526263363447168598755254002595923211390093196571842177295753802779386428675584016560064499496048113073078501290633005817101346279978081486554715609048215051619042480956299518011512551447629314553563884786081636187366175001345883979634792617628540899883305833048254286713782972039197006258540879156668406283931410091606108928953604907800877082603255134705240601655180565688126431850546154812871792662064727370596034667386417317364136892224167152871351769301116619663523943678019768230383557374557536616506459375861140696116180033947843926020207083880766022365660268445225639705797549340678818214728754540383390704384669337628432942176234359288443956766073829551484929957837324362337183404033237710787761563164769583974709685415318990430460086552968402225667677274205454184164859578469680034340719614343821114603614007462466263895033840181550397212517812181922300593942881741271109288070339364529943132383970759730900527188310909517481099060225874006264876137294818415065236929944482605895647221276545235972927824438398000046466734525713060332695922067032676179702510773620172287468763858892698920471306156509460182333690875071703622562318089512313011850684124402955329349927304579918993458058005958068383970925001749666347081610088769532623282592394381497585025907556859857609700978288143386414629620652025924487926699213049047053926226477000742923586967375691775735593655121414620664422016691619150093256864598302401898464325321679120811591284711013231264512507968736935972095585191325931230065982098125414937412334553800042065378652176920757829248653652007345913181666487074010681076329466755692694089975694070438220439460097433142717051791415831814017417952141862838793042668558587471276383027733751384033556587203696347690025778911458911525939569979386633879015531574146808140658048520995575898609839541086528603913489164795171553840014582793812110832595993823130416517672377032594299979667659633107094637619253273786549641047136244652570155404586555768608823376710349261938838990059230694901080711536031216316099731613357634599421232201439670808076510930817835993704025913360071579969412548337228045002141527935939441602713957280125649121989416841426523168938880251038724928319496217063226501976359628843824787467376839181038793530992044116982178837772114330970866378785383659237460697822420994680404834112086128428308121151140909997509602243252119642452386955022357793668997787645201144764770547118636599957908204962091208530402690215215518378282036439765163281935141797872106204929514721630167549881987454437245566450048887172390975406149232688724628377759009892828092106734082458405900529116349180740389164751691073854991718330748410637593595267770436823157072766560946212267049322814760040138687565576264758592956267209769529155557112291301268391026625453633634060980641191338643969443866636184775075077667346271880883795140676491900677174771696528482513213702119100450109614898445247354982676448907030262048316492753730320177279316258706160605300913091706252931051618347425720358306020919745470256981720280405564890765512755443383846219966022380054259402870681582678731380913314383580509646981949501969514084999278661313992444395303603098466146411967121496146807110384365779702022260723870869591573882959828570152071033161911727749768729853975290355655772691722804144195701021660234280328643559451556015404867560287952783042809747523309578937237095942020458985054326643455569884567471193068374470654417216995219356835677483133063046774440084082436250046221174569090496802389763835370011646906502808072184611776674912431940996039280491974920462023846823219541267482650222963299204266928617469056851619202459026056148046175691023890500976615631480447825277174327671457728570673427326114692381846472803282389982670489675668037884154028740912164249810376298817155183232337593016039974405181484255359790315795696617739517645891371251453428971233947530449099404158907801316750884679612921255399876650626650972851288176538088988762700505995803189760614097829186162637058351472801536106554159632700941048037012622496163532462913035986574866993900398408903865899032545063430496665167452648826909812850160083204650647591899748645596207003733004505608947984707030080971927541301504058362200967012985337490525175727536584379607759861060107511584350823888542761329322290885066077378402759791861390153032668763314678649883466986638362047157743525604758109442172925565384124069799391561490696780344465555446737751475125399205841557429111579901231268681583718101849559538128245365731133995292455476989479433629674232973544325463562485391525230272862125004991016279666804249410941144675769736201716652476755215719154024960079020928262003204369603874952328138522250418567759037594313834028485085701644490263435073037752115862770591685715092777979076019896806323372116791023458059664136763989437183592487216649855022279198278816539690810008333687863713079749883031011166104257195506561002123926457556113220978274844847879651144921705571369871856990120861074714259276694984288079793440622005914389856870926252605725190896878218058041146728533100644942654899565443815637474171682163934408067444795287644347317022583425978099793079233744909122477382802532631127245832591826897047146686923619156985356890360667376154454924597189855895565816538750159862313739694537740117525184860482757754846920545139254141115012833586642888054622212472442550842578299676679198629910029919559245284544572456556612238694399434034921027384354407108675137681113334922162157770166342222170016923142311541776439089744903784621686396229349186199709570948022841687957095521647472515749575953304066526686674256141532668140230227733700646316117891674232615383022933960622222620810853913173250950034771410682809995413274417566942467971718750596963012934313345274350462272724273021602776784610219966969547933022530815204078183332090420102839730869050745051473089630813578577567075392320565857784122402526227115553069251437200992819782415129628594221081002909525395402448485237439670155131442729058897569022525025813072996316404204006343601883558858663757607274382756102599643732916304773568127689789583824494152776671619739172109645637984532645305331660547782581661513935847242553497512826786294472282516651396699126402970086092481170554371936557900243407261201527838626148930961253465056439795521417820832870126201944368337320877671368297269300101426305459395203721935096653794503822461176805671333038742478798885253176219896598067472508862758854322622867619134320797818140074691269460121773905431972203423354317352429960063130994169509650221438295357106861353901430734369433798827071052298521250875024024983050086816753604353621666217002114659759340012282790514681824668036366139622622672213536206440676467803666535526947062933193521843518435377691359153218214245387707197370199890595712645140536519303017385184901671252650525180529116640012562664280077820957608035859068793284803715305292507281445758429928882109378987035297737305843441385164350987171578358622919466233170075908619776050988114533042357837701461522614019650717272343564770702451889356398965160940089319699889489091430149063121731410673839621201838561004028693951786577566941197982003943925664919555574218397474678080602187187931698331570285305836153771934711930604193441895826642702332372617957043492910939797589769800588990618136131315168035898319558226058946542932201231484004016019156895101471864686098107418406905929228218898655010941521748770458406076205343914575238120143751662608698460577823838392091991783973723118730294183331969521469858822893330051741587801887221270419397825113777619501925401198515978901188153319665912134588673251044822298305631009812728885829378902823535633320092554064036174033108791019193395040500144329130016758559211745037711879001212975099607068630537925365502138610726334791283911647211394760332980140988518073796022924819484703041701844981477264471696155406975690106322800600883265226913578182943920872247876235383213597015769136374027409723175485485949166694669120642779035135426923447386620929778991652156248986418943391519398601871443205984159081239391460550421152516998461600641926583060101015433134834372070362989276579070766001984753767014617575263444010499946078844341146627840065380597837712069868432362596805959556842446560006158566777058231527122555834025713856731356926601323341954098313697476029436816153985559655424173341245634834050357083429087203527367857273711957198909310935429268918289592756709840310277125866382095994184160839845861004434128171081060399200093694393521475199205688236346382019505515194884016737930171188665912249564982219925249239922271494765306322602997308929247666061223435611606044585264425005958038506037543625375389762321417985317466886459184322674445928435894314514954994599460482983735997572113029913901507228365810762094755227057864637132054845896787644898644149122764776625914600216613344251173582336417679835621339792498262891897350030272082485709790892633405947132439909523034060194444822013594992017231819686100204019010189865680973390817910155968249766961526348553213351314209253523714759099610644464304935403990198555472418704627530177518294947116063844922729877826954943553722819149918444625789744325543962362031371255880420686715175867354244741204957844655288372023907599512912041305043112778569486573113694775562177960956731195769118183849564116764730587051818665914445293707976072174434695467161462866416801992493462043898489554729145361230847087634235885010696755414252847127254471903971178415177836157311021874366413477036354293533926106301142782092413760955657081897346506800471811561103210980110310233781906605901632679344059147024973654066206163311098672559679196668809278640979362149676310369474322399039637454023441630153894064970622813325473437196006053536188144242188855354316173717016829803084150477343060975876681924662947290515326989022214166164805973982387763137009428088033569673840935075045536108024180412384391593348900888879986522738021467387936490192676790793529823266474674249604503625505545444187949659663438879955979505213035010173635274620537375868101611530382261464587502067375418398692942559810508687155411481593406895055822540224648873908165371383624892671747525002312351230135431187487357059106541362402406247029348205164342767425220444313786644443595661686529052435973198428246709003551177919102707086839208974998535176186805193167346027572173099310419240247535790298943838398620587290756471139037211700432816092786984844219766942970224509705737169200129750243676657904933642312644408757854189753985240156627257923403390233436413979753512053046955219013411776338479509950200317160157906524398970372819133563025357448025947689172899613569305271785053121236716462097157707174759440632807069789416755365723499656178056579308645582871735880294817302286364433599761936033972667088344388538488524151468905239280235706014696626173184277640366441708905339087179310010012403650720076951309133228182710957982236322235274505186615051173743306690765100151775817797483246869284179410672564689600460203724626530541142259913803574150806547000847161201046541147167283025341505251990586281405974815071709075252644510326781271607992640019630424418193595630629608338528794592803445455795807532835194686212246527044973572816726907848575180799088382808668533326989046538172325694829781730561095379965207884892550933119040460713989593249259015755164433383567817333057509561576277189745219023452311535855270719055684806286191513154505155899269189593542008862437069594975596335613743382438560395493313872109600954149183529652460582381236824978374257233008116728750089271727880663178396723980236169961714320353487358276434643471850159398098327988807707348825382406487119517584755243729998539653886808410151165329800266374644879367000120684960709683823534548167322950570309932879211475350260729054989089577111320294123703747084885125951182619411749744831690348185107456655341438812090349307609159467992783061300749681738249074481658894018196776766086275890090764828269856603176064743393899816096818127873043289761643184016268714763401634880597085301644669675328165838790001580257328225318036153825230611946308273632768554771410358929582381915874611023773701289754530133893070148920406315001077250251047541974846377612919110602851556251349695648570195194461702309610398071700465241469289104192164848953406096324801597687967745392667043582495240260015753486929483912197039512821872196661926302699228250090912540635331942074932442516397652167946657142265887771948213909706069284815273925285361195801494452875576011735193459772967692358530342868557924444889257434529119606034211234270835086375892824764812260128250414483155873434331595812857581958112072926294416204967332928237858624428711058599015586096985761098920499698029939253300021215788516939250410147427498881334560360307691913960113755022903129592196000154411670367046871636040403386258557256245030915671286713253863067049761410861205937015556015131432431516682619872650438465149793256363264857221036657673572116509771057807292986727524666532704943136256090119361571407647054117834853003856427147933197295960581017856253061116304486554477207969113707340115006787843207689502730444587485086109469175861011522454607152472161520921195591090561748257464190546025819185398531777976900670300157230862522556916269305895960886080237405826391502057576743844750853499823609245181059796328764232244370859636159113932366929506930105684618429419321145625510535150109672945660217408157114101574733027182228951987469809984314663341804677594428702984825029699561125821551044663342511146963416454768891840536915837387784193626743808611889187253957027318083401144103866649485729984684202364807648194254180466660708762905000862081776222740710948566013955986940756973386661179352568122580667405199164807013933874540574062217314762577208600789009993958343775190833082223925945272996284613574739522415026592902220602402038198691264304710741865030111712424533703345181721852365224462538798112481875281880774683558416375680171041444990671350171491698252989308061898092810058847794662785412474530053171626946623653881705616638074261858516211044819869537592863021512786841802369625100868807451744258850796259272504780654049717004939106796904927495056738856138521650683277563113297788908052026329002035085915224864825364806251621323191175462672113794804517401575673701026007618415027116957057782496101385868443074305226064087682479847616321165041568134815193917459972036104246021456847445584686913823435468461354614334539402450108994374338699015916266820371301862533559132882565822050897579677735351935667109426606814799511663239917651950516823526494421305779674249256730450246759126265895773367001528980847319872738974770507407120121850555192196425663062341475386772916970701990218851016087000091169365953071342843587170573178001914936658958598621033116260003250199984925196441394046360200566135819592682662897920823549101590052471529415622589025787391996585958198003561272372689378500031878971055705026837689824667619178997857382924992340212667872338570040388875451223469517171577308569277424499186063016235956021044130223045424856505485615784161586778462496644369154168112944681153763823121065916263307201601423829380445166557432149686301531915429678775865618210034836067431267973117964108146133493913350589104119762165328281772293857094517901342989957319185036526879040055098693892917223023357815269291318071460851020816312196050550996862196266270730769250524353073442771532929495791233274320668729528005275952077816989615564639505494087136227134343414946490077891125546124697497122832195946942417095338319909175959563449039836220129912435863856889554766611151098387294623013836998460524539405763881243616787959971627489720848948704089680828647700878212121213555255473501621290423992285755779781401895230547899600256538635826925534168615201532361287614573259731155936258153769156637722290166708621869916610899602395678145048735044412532034797900644926640068074271804983682916317669118535506499851416367777431791803115457406404232490985103952788661906244859922110984888375924701525697534125545464251314747499061040764707383977094299553639615638997783770403879555888989200063452138002937322618311830631446343168285426370199481494418006737752752650355426163030245685052634169460958784869080227875157464210181888062365855375414598272860823314270184290804220223242677001573650793620910790101001070761860446389141893126794133878021035725956190373457265066109309873061791052010243732369705110919905519727499925958944088202963381288272856574647603150585519742051659843314890734333694580704956072003578795472111860610845337491883966567951997481131645261300517210779609738790055950895736075363264941324586633685792770942655833802121734839808239973995638255703838008948812194212052159957328719528122667194139508910251598308445043304373355044189364573714656883046255656623163921913379129957834884692874220871599503606736378347175148086272292375598387283403673493226947629559603203639304639848995987261167205973427968882381678235149950637648111720616680866042641331776802123413290547538899165576807481516266656703068272819437989613181064843360193035200466762298189414831932498143083111216378228352032947721464629440057983004316813330337673700428116273583797507290678442262152065789725661763096879437316017636979510797007232594605713345515131158476666864715124447839938654130101631547715483218134555287332403106940650106574858081210350235918135142484317036244995686574022933897807377562900437597030018584837661696381250085512147634871967843929257724421199368543030539215890347157651305795051187565316315416355695102103440770064300013217363328005175532986522314116078124636202959467326345365501180693952028512519761870050774500239064568252253414359730436256777402244900351124226749642634054448496598406833961869706703763117154655819339859706023204546892842002168694261003867157344079430874317335838736505632222449240103063881698418194365718499799939488928676577489447361961381046493716051434101043398633193639016271552862278965164053595624531308730714440506399804688203883605805408051081831854743100357690491170767812341977297155420661253787529600808993979507957503880853503648607583684401319445304464682474706512757396444938801326762351749533668358314257935668922272477801930569383832713053250847395302509088524844052139835250101106970013151895783103821282088275898149306423284842308271019526965272239087130438385820883401186387862513156592351098040520727662387879120808255482506488642220338643154465387511525265836412525912667850426870168585196583981116675843693842768908453311318355468001186241945139071703992368456380574129880944611154636679502504268675353984173061434231219299727237157098721696817773973643222375098695897528791529817323375478326981374569105285587171341039299863488288019115961884154331056126654310441181696325357779030179838662904946336996473317054346403869336749019100632996208196305281041157934264076743696302089631879655894649129710979563467312009898041531244032926259193127312467934697591037957668805016734346268391012511105446279472286417425659713704428861656696395720956834218514079710171520609007639131243438542449099275148411369379550806045958873507296326245924047132255440016227408025819906511390922003404384652982228152041583701224451399133018804588635671872153232803297824893975260570276033340395373269238353116456283296721820737137467001294485186950578233704393853168955959116494902334722013592891867729143847106359210111077935939030996552178348816576535531212848056258343674033269714820465577652895275513612252251290622624661454115499227812474487808631130029153021879257785274430685113911360469447776805678393630511021273117601861045274253676567302947651285122119606209258125887996261816778618559674916030634269137623163921211988172678990559474211956730058286267463394616507327808961340932936830078714305288432375120130308537505068994384660587127455276849379050741748361986203188953157078482381070905960702343813888736902082018107321866963819397158496329095095031264404973922156245195445471336677956834131952433557461890915213498231512910168785336380847890365440953963276375953600406524938023598049042381302456879039490337407817491128386806836253249506769688062110327459840694513293721152753670456620119645923438497654650238754092468583830030697935743827817751935874651297730729956819565068583189201065702328308673104910998288623865408339484616908864797075632354978307842351654950476685136115068611665408143580562287111665532693613499770684394418265313668189337814340832573835156587427043810425622715896870883215674755559284896831525413884508778638887447910293003430790957781888617681817413285962058398266006413354921511545602866631249700328483963625290356977134343197937530286004413049388802771871595197517956705034539737091503830389630924444503558266931531239878292411155100656183269181460536766082886239057078170921208333644020580311475792093871975210770352177096736969644693220590361905887721099801972548109481914860148872105909980528477540422950454487757378037166041374082351501529092992355096516622066665805990153072798335251548329335522008093915792430454608427876189092623756211055712330655768373513716972638563357671684089818560299568514434026473402432388392676603243451275480905856899063152646949202423514166667208179995478059219221767792226594135476429929214887984000609068161457907961455297880980784328588292817367086434185467941525594367979161080367362853221550878135829006672140975227244694288870697145454444624028501619363293678122557306369909306979272425991943066335658508335527168152106796657758585568081713649854049723604036878974209071745928857928073179709713528180528499790489492980781781515345373752435859993172084524736773627314035086888281076489829545327686746378303059822186138787115401548837146549645454880940744367804152755626537007187428511310530812902665722928869980977575620816768258229389972366332111666546174874368747011827770356267675973989530093376195342372988731211443572725049879836845614439255767334704058721455294742677963920269015899105336201174906020077042028848745156590253473279054126870663751359824180641680212193734379796218000740817799006896786984196146190037648054809782440008441536820859564798072960729497203050862503135526526399262599890889731380997137784767064124574562422844037134798193590222054366134635303092800909668564875710573459823243642861017245755928615716582431952673398034977699283473812509460633448740188522172544729900798223258106279708843728631846123642859724543670750108918878750821281398870322991293271245141210522067725063201688033292094037442766259287151899378755708828471518592081619569212421954307770096980874411933662369120296151983537039562297911018765441654414860563887214115636543963817805620868461973760415154631900773251994389856862412027657546995043504594490169267120531148524533697757683663927729555963771875230538435914150417313225329636992017473877414331150942533956111842987799625841336281538664464697921987411886495672328699263991722983637167223481523963301160648632962524968753841566444510687800779152321556694012801056452865655410906586799995184865928633103044510437073962954885019410159140657553396433088095262831796287001198758185699478329933792555610802537933386854850738984047046731557485751910247885639331364417878765138703398249282425208418576786517682310608619887077966194080216355480924367382612832200962393530599614837216278419231980810388851052855983469392926444009328757746070711101723919684899679342217018264975197942722855893975015694231720196433579591705690638902798990459123605110764538344441081709462839186604069378512947064290179028632324723494550260505720982722307481883370838507188868010162706416764303847558607871773350873794395208524570480875511977786633925953639088743911852694224890019748846397324630828678165194357188767432676070525479535885230359531782129099537074169564723512046976709221432778101003638443048219352262438038792718820716562013616615558054050488645387032218349989686118817281157477223091442120673123652085569675531967185953618526772005627487746514653582254463468922517796501420046006975619412038541709169703091417093438736556980488435637160098139340990674074576312261560044097820054057462694968554694005963352532505522734386009909986683327262998682853728356966606296074132658267827813248783232652437958365197042702008742446202002457910297245626534880986625797934790699173395652527176954831783158067831129872555553617551413020057506786769767347520793350929845305852334874660079429348711390410181265896992489142319109619566561057866526964636369228372599242888482276636776964894786701481651255800161219796518040744146700841553989446833862680904191302689567529371195363745111800451654428802179853273751230331847040168614241324069669015803311265141541649380234878752661574784841983752523439982804850538749250234468384353909694259325501018118815115427244049419424970524154351229860527078010943522937948991541255968983807817024017011085424829761897067868758054416057794728098087518704498580378573530922369342791410067325438187611140577945854894834494884377097244475900985527832412166747427314700638863281839047569896172589259735881999934521768975376196366672524571517568343326182862577432430495699773400449753996882176992834398789448871933540674396847217278013404069907200711815471986172751599558579353188946127929555764120278043672162402087941031808679514123771590411491966318407246807590318461008599431376588972124235749056315309392227834958524080140839078020191795443041747196984798798952795849944597284528086966639691840631389353809971848504188456890799549014988298867711156478730000446590473471660588211707744283223461865716912196892249052362569032566013172936035180622902614824146474133020403594347492909934013307432331101916322444651238980740803079865345715199899241905797575301210770358695687252301676076953873738806764082291723416593992721105745973750046264562822834668224590433764611680132310282546070398106685605000841282189252914405779217255492132696310373454210613821712622177798478239970881269308925072667217166201513266251198308715914781291920315066386384701857414325461749729455666871929521916952341939223307003139881848711023082174858024955163388422488610655117688766258646437816021314643349791750565000403745743935373929517222453061134574074348420192795331571652879688219940020977111301026112786810324199243121047084054296664550426417534103776095489573810505126954118722814618945269400711517458027322039976602679324998047500720113172171610342199680666776842731683667651224113292443962832425874293073053599702156915592146324383492752236017397711514249276184871521987173702318575248596736657211190545350792712325034199011768702039295889164859738710817597581974055599375344700491599268343283967952394485360639925657341384834072762130007202685219441595157440447428147086151749275770892000880549508509268110383392765327209318726713014188305304622866378589557201422985536741306117830586074367985646906579694331331859927129199782314338112090111586212746851223336763836715648334898070845355257080946223833068346310193953974491672524494300045759748377548052144784790452758726763814281858017551956240365770923228833461494337943096714183296638550863575119205412359057917332547958093728189645807123013776801311088878244307072120461301346697867891663845251790830772198157858320049745643180808231155939480424019748094048911894053363851558299453583617079609730252603752767584071239314258440456265838219958569247649920756810087104277833851249255035289915754551046626910482897791792617067210178725837182962895283850977950299790513775368058197754950793279384646627788792536441368585602331153090318945185751412003121717429530335817488088588704224388173289116688368089700316008004302061021068092464084571483270588472910736552629595500011694480098514423610175604238169246492168280275723265371534747517158950764088319855281125462952102554404201815758741401722213173769075326029529225783914909827283425243297309147823696948328183639179056506398043717262279005852063437428037716303758879602066099767413364958626227719930204161065239151127045141619029673365378397657177536588699648687707488629108120673429380605471785387381596378219593865030804013543261439400201136724775289796913397471200741501856701784209157694516206649009103058267206396318939874404537953899527358712696637937862483477588225642328168860362710917096227091019193783795885014239276978840936731924349068766775008228439119205079965782948097007122107524916601474801068176743568378793045171906801713807248168194284414056851465387924285621294299487498101908561956402887834869466261787882854836625414990967852328729050183103193075851207715280247560203355349179029448266132731910463898376272093319191285478991893133799615355633577391205628270711020598721691292857807711151831035674698816957336614319509324312580358085424955590816112193345699233968663392505279602777585184958446379878418636589977200536902394106722061950573553706996099105526054192677591407489157762009061189943896488991671322408806513166891015123032430566672608895431458594535460045163623709200159118481946161715634551646204166538313864738691884565527735512635657523452359695602972957604339651931512800991971422102643849103917153111071618018917506488586884611771720452002981438186991566375643909090222343396846225550089001329133530795093274390958174354374585956226381232522990891959988977980320638823111878418780323034348703290260803679006281547172923206992091078769233817774734021772671096480324145540043957746640221481211087076142169021367050217944916915441740707188825069994440641270209640151149707953139816982722492283002832340730878899428320032675355884862697147547999519881761905042535106006505513735473014228256557813010218549451379747705852335703070489226681313507828058020998441996306884630780660764113882331692879655167053585295418973425533225106591493119951685632419526598855368883076704160956987534764460239910625228452959816576537125069109613439952453887889079062979350098279781743211559354492827465124334578058993026337871915746906154434480070544371599367243864680763872628957847095334530299511580113999137311140737106333119164319345909329974202279312205017814710683145308395231508294434355104488624962992557688886344552422657287348943117378621117149612642760194968438594023619335940358534804497437844828250469057322848564495756900248336287119795660697226489995581114566229209633360570480398389277113572439125099765290960529195928286475878652405725670280466446255551330336813491311622362584287642179011110628671590551595745747789996568193699719781591242455805762661860763018472813521948258024857282773871564188068569499188431596259150584311294258532535266309173274816425268637875857338340003330268219908037257734268713442938899859046381593774099361232713942178164356584656608051855131071070588117018434297644753944520245486010370873309753696672275590155470322249266102819368611817987819383709626344270301510484283149468725269305368246736753110940150269786382979655762716724718696713277568791659443711530154869513485307694864842459714516843828582966218345217617680293713853383523249841975221333015704737483565439428988560413507680885549354277883216610486039449637408989501738652177561213481248955819562660123154476484352209082686050421942771412269434663134253449303454213836604633643867291601179472288519754013481887022785132064667730932881585395546115485417672781419770389448444069059994726988555447559484466544964473570315193274746775480857686456107829823626016113952821127399605562379166994269176872161826379808243659482631928188997354424059642504655826895068534541493434656836878304419783650912721432945688868438893299107712414069844422169986007766355885470239064483539670593831329438165602431586386250839928970411018508655292465000556871964139409884761673398396109449308836277241951278094687893995503218220740152674490123138107588017618194542365130798513354149427102279617841809145957369623853994723942465659223626753391873819043458347441032051499115857992944696827492327191669651644622305210731739000785648851487596658238948080586076333827795665347328151173343798545210890440264912262201889701670802449228978158267638932458880589728610067177213751764599884842390929011472064203292531467126034930856494811613669945195430925831210721383244142760707641455602826323125255460262271702095996956835514821410584420658187910182967772324214967672552478452989571891788450406717074046680259253050654932168920612793433431130292677496701902701361744905814829732633912975399211433708728324306445122279528978785436122987423803581453940763272617229645501776401357506821945623074786117854936345291367441622858501437515644340933419481928946555603282718770337845464849750380509527739929473813218175036194491138947960632854963229894913611642248902007575045644599745183805939971224836418816766641873890283286413586840663991784381653504347319812439893618486601594354197204290866250354290056566120132822597780838921277190115593369761371292363544020698886053192601855442018747797423580897409394437251528674495088967835994475120572208009476867657170781263094371139967512435335492738184222646265015645702792425780885598796350845549540639199987644526242723015799452452555160712595008880154592414246949590194609151321767663670098054234663104378498282572915596336038264229031109475785686402597126962435721198021061962019373996322032628226055272722346756230076239308530682844668727508295738396714719089686954824059890126342903787015975605585027758253521559440947575077015612319403361898814545594364208360437698779739406370369419542990985158547143699214997478332386251365594797341651834734047807147211205298474291193350627916248297751120572675573482377409147318843162272229938907738496166348378867873569369401887724613192056251250027338993152626447082880692390856262273756164546641381052852886684748225073589845013105022970611254332225727037499546022441443193180187806423794894053141933167457015958169160561608055817599255016649391227039797723845185999431185457490408147716394894798524513201726644550948352520453249239282317850959099170047950128796349712008903063843479308410074784508444144081747571210894065659756148931560952186366539680203997504185155495029547989474363030608378772292094502765240230194748265039913446713088570963686701163777998834276965928664691335561851217375863448002527825894805374150446789452918439137942138245191064115425545476507994912741228973135398234851200308242937984935353852596386991254503285303487415045026887720518542602792195621143375440867360087017942930455521127523944590506921025019366023100744057778517943360759608155978059639855294004986043430998547674967094105662245155971197129986976314215190381439957604888441090508071169613340785859996932370144399260247294062798758318667113569818679916692859775944044262257493875684916869058620215768428990697683246792174094943351736739699834752415141270291710040069902922288292128413798768843344656386725944540454893685411947972034654605542947668336646874202550142378207813356014874926731754720818456799391039407454783334177710352842132951675604424410644937371703562605426683126938859666151625624284898416199626805862614411853440271293408599431391361918201600086633204530297173333792774510526022309808237289881922763972161812823367794450442652632805874917119683649672717966857186362615866882138332388409960479298943726662466855971354935474003034763167048189774983723478916899690427298106501001010908966557340950353805775099809083817053613414821349755477506033082378577923132436138578637941594898060209294288397930269348684885914059482092032508694096059518877228033619721932304546756393164016126973330153162314187919975636557101528008359520298158241104400148792463555855767030420622629840869117312687730122654352824966944409373678582296346091381062545552991690087047159089287510952171066239551467981931011883831753890331931283880081843727814932611958434371112132598033347055673515568451174985895171870183677114759991181877819415870713874037599249895698794243891024739075610131764984702825446244504763346227667260390463807674535169512097051420584336543708143541270733503316809793753192280125919806373845091121952449948997893391347470045931947310094099857819475917412316969926229365983573406989876053522507316777547924084418006551920006802001838196034912811492377367657098188836889680262156647403152331792074282056117856122450789941440279334308157724161788604983189573277793202642215134616610735025208575580732773017545889564537772092744245379918685089278197613333668223751319690066698472080959429719902299507730090453461591976022625344161098777777495070188021753681231619416834341226058552164494410967371152873088238569580470631001789770357741291899104407834275567180340291824009350120221170178969444776429092571038366782229504011779069073348556062847376087623051315559512578366838685655992272079078712402553765645481379628279728329615214837474912709529708634975367194630320351367377110903254686705593915827211191252405060069617367762370224977613595776819398464848988885029304697231861108487504425372528670060002918469611900410559890022627369040795185416859011095065640554843983345250588195930460599414218139770845397489787815492152635463362461769944843299171002160476873728255046960169469627622675612702140001475638026144246322735753301877334635607274673278532029659523632500171571601382324440042939026090040642412437001445994842947367419320344188371717688333477383955712253379661151147243825244689545408601145988827942899333579960615650040314841173119822588056084848595687984502447060513562188026329150588467532663222047616572459454937771142932874696534097655178873313816034573523096518191624579499705669062099223765222818411162560069572908595780277251381920005273930527017785051675434687583037830991158779826442414331097770833070942094153833464260421246985194538489324929489610582316957307298982006733420486301352223977735814588876811328591292589414877238029430499837409969910307282532716122063764844865292406105097764771424926643280559989567540606287674049674051357841354754216007101402495895582955387378973192856421792673642200972062877445131779395078257357515009894211295651669230354185009891393069662173985126951296797311362193427102543726477236788856763490996584992738548988044094826023477736499395713078040070664685587127864601881667094458673563660801823382321007593790084801181518904169154505871344087432408803821867664680813528832383821334286857832102189305586259490861192346385488689516557159297920322238949839385802471342453608798931154640500403619510343584735043858388524086524392931318850907014390297959635707458788255683814468340165653074885167006176770881031735464357830718854991695133041798551147164239107382550913940128020928313083673663157974542496797211861607649790101705921970973967222988345239087743580854846614141021367154603696720616862521047865723380053467867400210078518246987244958284943087279957609420558943435106720503887076435476788393775161566856910332638212449478451541742093122098979126435224569037728258219277184289551589637632777513709871252991942399938989789009194759054810502659045510631590084674435539406591654645142963735861527858186187901833792581102904913737006562507112037555065876704435292504604425924582082831253238152021902978229949536846897544523430669771526883327072396927191335092017822372993032382909579800259856996167070828303066172364761280475204928037056896321822623047284376544127717224220169333622309719690022832843540041033491788741556097103900339878678599114556102981382076560717733734700835141314005627546732433343466790718440973580125504034633755653663846057594301746687804061798624717865334858995815436417757921712836186884593078710852525016206599979819038043343549818203850296323288858221733939349734241212013734611261225056645936017606968572936784957262791814486903280026630068172974302250577462594854709358944954810566809894595345288438807326663099277533842179390430578938831762698367461024069608072317379675111009296524768697106621857126644421856804416132630690569439633858090452645838794478871452833618459106791645484091406166088115524707512130813352492152759992016091100404192043077092788735486473088704301701245817984451983940441930325857257557340179831523186731753840348492922282911219423058830018174785321719346720080945890178586682339997316896597155633396134406024472343386387347128145738480128166039385632345637976479862890062616895113474291519998964697079994071222315371412304132791053795418044456925156873491717501854535006074359265764002060261276877766207718510257805577803304140325118259123250342631067092601920760365822835772835859440756645615937740742870578165229216813520732293788534829841510666055978472505468267421801886261930679041203965544655309369931674273666266566738923743947194032563078185134356416090958885554777919592336308423700101349454787003349895148575840980924920563341619870026738890756443369696288419963309293484253806504996045500670299635613658653210093597963427977469751533143351999201815458420372258498910595615145117026430415728867362220991639285852208456638411825030402460079516427888090825011717772447092682409347922554117435504843196332637787161937643159716305525292913854937419957417561065224831266865766267863902497667721051387684434504103169344127374783608311589335065879597859198632458945812951749066006572228767887179889069657576030865574811889399257055767760373431151551678109645949427693272910923946758714070474847215959921611658898388325963436682751472159064318690569538848911548458516005099745689874191499889956378062724931945650428673193120752847563896787455212275733228052418922580522249973506456184451471905527383875885868402259152547491383477650875893112885321538490188164179980099557520768631460606860643243146840345648037452239676019983427183503505908107032278712667661208171899344721360460742680548336964526137064303921127869463289234537177675214528641546305607292492918457028877392822604992712427199472074080167606470512770442171660346979117184878612176700836992380364535049940915055804218951678507250649485564562359435638711656964168609624900604019115009308938612034872628797593129432210609888250281777117258255769045695618005834220032701537985469926467626498662653372667325256651262096916130535959790932647518891593717270860288944882299822572269437018101577230533070229391604351280802835375870332984151323392039835171078653489664243729529215488071343873629339609261957089979822134977194195562065640167367451761991264734849324308771429555831199541109564473656623302766882968938829220022349636885522294216995804946797378594415349959682465689134466256007322383310156771184539679773680290928222099250788496382402652650333975602413090624338513371850769102843903129186170050424495876711308678635690017760187767320740803252027989734444307774593433142896528020877629515085213805500783503439105696740637139533988105135341721267198208602849868807008462614570922358461445433802227949323066894000934136977833389023431380530020354304148482579381831428283801349586181961653899481594262958512388119878882479565894761941712674110464560062142010794652567985675070499350363896837828872294655848577911052687131621898588246903397525662660250968223359036856682822965825318482160338539562954713198785101540058083297733379944784375815855432259592098596513493193400950110784574112318276375335282956649867753108415786021543350360608257864643469397196578388510100737915782394829532929180283784863820421365547188065514501190907669753110568370672653870872643008154699637333624015119003625988281326322753074099904437679524670723624902510124140707828071545942627607678051265986386395111304021558629471770280504539906243987105731977041653680006708059465474069989661323456981888369382941328779697606190784940475148686821167277988762062956262153372691060856020742403931867464942725757086223739646630046223773103024059058302763874341635787525005501451228774999148356229549215566358923280501830452136330880194580003150638717765942570502291040640217015828832479857705202482201617519201617713387016501866099333039604294143839496662635342552640673306399752197134158959055299476865941644820192847175876234495685118873067492615222014614333944986523546634996493245752798830086495053408105673444321110265164638288480625849050947484253037453860286466956932056111338143383421185426349186654714105988154205299872944833156885587652471157258636869650107061039995347155414812452422020127143069966775132124750721252387653414585240782332010149969516499751322244977491935347637280937805755740984722398625966245614178283233277772398369734883383847723473788147552020460841782778740668457856336068879443359514267765012646801956110309135435980654563539779875488437051099552849563012727165061757323870916907316568376092931187454053129865008528544432785132379321606850133602553774800061943168313246749268097882620899428288712601434521800140630725463260979481958525756308245128695955997961790378455217136790862429070402758399194235829801263980372173975467351963144738710845182416722932787281473843253063325601905392696147825751933159115425185738940382033266231824599968787280343974268604256346964178158480341799708592425517215374087171438658989753835214980743084458670756836463158163275820408504741646525096951564190794509332987390863806026691770041151939511669793314705977255547062107735409956699863307516270181035664034990137821214263466931951278228494681471823085306666931903007776238688410357471829724174504423094814821794719300028778204271787904471559241527062005790880876982082097040879326113321640639515109473866026624140185355183681263042145879443445749316918919792550017082944073011655298201007757423377503530942080011740378058734586698275395385967213569524591396459422267111033991799999168856218766095512789479725524569836917954348591202141259611888674277216359677576805711164256300631799927592975719452947098553413169484175220463102980582125834695302481261616761456918069001775354925834439140307865628564572445031977817986742743544507021191604154761108711646157639390023436325852373934759250371609920233004431907789838282577180499233568903996493884325594729112566659865923842447279331344871676560819763940204962579068646183631477862679736168768006960191331097508780490904135145610013295487166358346947408552356016421806131566797633327294636566740064093783162156173275128654483497185557592344219214766928506537641648277996941200492034136213831228891127391337919437026051401408298949364054190217985189901600176058898906825211523945848850264609667359692671517417115892054562297572844943348805653267137092155049471913753700363585676885770544416042527119307560565701174515235116058195690208265190737063513393380264042635470371142645479335885245585441905646466615694697150400831296806392283593342112651649688739578838413058243668061805281112165201698799409873006847935668166047277860270091106527405359987972894667024762247513932394470879324478311155755146601204713621423428080751480683438911373273068119095298328491230390368316828306645773186962080553340425633886022814613041855692487558298552832234945751474368239593267144258569603587573835682748638064694007757474006378602251561559744796372612733278444109559342514052452790307046188743114816247231821389203277706923606602853948603042859930998049004111491743584847125943211422632979549314306365015764869194853945889870491892146349521477922023816420551316581533165165432450127758242424988822495021290636377234770933854106248807816393157587917622573872466258951153698059826657815378175244247551101335590114176921820601506734170821542687378349104429323163666898771081679984375745133381923132986547766337679964518215731850651265266219635200266044884574064702725539776805411398362047156759823124215531355987491402625154022873853290814420518759846873530388996739609041287685723225292412865198930864981517707327470398909315044847684227009511059107252444545373239131468022497225479608397180958302482204355780839882346567288652063008962925598484059785350224433716427028996825111282233659576635492394507646925149423007695305300769303781835650962975950591302854935237318140392080486078249687684234984217846925105787262128593173500046637071235774442364626455377797496277384077188031101138240702250410642069797111379299247445452159267968771651163162042481581178285666992235040791551483006032593838294398412793520659656662035140788893455933419839005962699393845609561965899916387489001033980345452115082493601768564111693510247483373567116328830104087312293181434995627321298562432393819408455318818136438555547582047678950607957323758183324976565004270883052506395228091393852552970553814512918095008573587089479855992333388150299090227871998512957509090059066209409376175843340753782244745682449502613800892039024034806809039340501168776356387420836999621847834599134480502771732662139349744751707367327015718875136711935599688790629906506249579410420975477006605593531219740529513859669005906128781030512851512223784072533480822649054039777145311193135162401045615492689520570993521471152483821819210281576925603376883504902895585407150676224290063677879034871994582209457730362400899191517662346986469588978353473933629855190179134640114605043804180139303361272543662713598462229122486933047550916133561154343608678286192378223968181687665949148726652875339953295752881143126220545810818390130228456920491838822512078772711759226341629460962314411172444690158972213595601834949693217090338330430027093083271033163513144649617203095659117755193323905107716266833189089288530357629646999626658235517135919978033582880643053307551956295838714422573946394072295367212680319359597518410205010805047528123795662590732286231384789867535252328395735053244719410073502830048055728306740140668200730179247603518436578626627840457662997265092061139772271960669718869926503445006534408330053630739920800304587347372326407346489427761304196484986298889564298951940068075396957322325222956264774774207827506173555607347328230883095784594469531873588273904217876981961600070902901330135392159447317903440673681839556244578944629989422853644493933079913781377184058052133655698395468825537000760219365683471655409898538687524760496041781002603929880314346646176945722214389574195386747236842169774729332142842850311175121871519599899816855080255015779328232063907859737491365267500215767609526073330715929946674758790943841877629607822129212492166005638010784047991985959976107486776742348630775927463301989989821974507913872964159529634702722566898248653118600443646037495734374577756322238190919803837140120369544693776839452523740548498183281838717299325847813816855046160112493596999957667110013666780956658646230608533486076181575055646752232896960278090018063119698041567805165683490628344907945889855322312463239418518208903471327871122764609514312649531178312641701932515131371274954170539798144047504383073432083713694244106743924175683682978019239126907225971939071629084149541655719797141373616484060111882091552077537244476649973899194239496431852749643703836606920793106959048858691052398861290625518257463406018221613446859213518221208501032358592084041898828632816316596521570797629702259136640768343469438227821230405543090404918782960181268274621509892527474320390823633911672590758094636881706214464996213001430640964117348749342078356429065157325849745753687869947748575660760398775807172813519294443131292286772275347746771539723568359731987961064853888418986794214386405149907069680542226631821364287449075953443005348798587835768130368392293048660917879628425269482288272387462956051959918268073894580616338365999184397321572661855308293785302611909635908948924880276343890110937241043637554608215653033378611498614876441191617626416116015432812925140891187842079556747826431659816515029428582905785949358654945125296693616723229412409598955843346200093017924216519808403097621963414343751467725973887023764345473648018855148551255903038486692611948625936388588176568306628116432548950532582915178693282539933939944557728866868598108941107781762128487121942309492967798879940423784643256003902697100941612715609358831976497999735791536293491673844208145405219326635370590065164573542382129395901389829954635602353528129134755186361034708556221465726985664359284561592468454538279166929588656644433600091844281623678022609805465928147804921924535921283140006529441136793728543623878541738299422508662990804183705869084060114649926411398600530122083082841054846673371509398301429064362293007322528486321871015635188795621170455538309019465188408123078344266207206968404658217836384005080454456739257731103254080442446079259845924355286872202888296111768231314270222643056516469747985628217750358423177881730340861841484944472166602804991091199433573745343990422304695429127130632833164437810698260590259867951125111841079789485252749236387365462504801573826132484849748559176805033516075230610493698494753094588019949102958802262371093018753694956485917646006392593391992871222668465887521875390709665487735756330558366428760617506532101598949503806942944958437261264051447929624827537864829943807961251273431517693889670494290138232313040101011072611484083023323526365745884529465169972081045445069983852688610618954893188556121935310469445190706350788020605879507886887639574266318322300950026359162914010357121211890216046678023984505393512852340839595457131485139591131430631916226884992793612821348987680695421104304235645392918731071800793358057946613044347772140658052122420405671590794903994952026338730473662967391301997866413368734416965012936258927857417807131410740200176592179326075114829451530826822264578235409438686744758512961147926738580533164969979042585199696343026689230388549430185303370807421390698982762733493578863532000841077271466329712567416106875287332546089220155345838531880038986346223689187403111522354857661931389095834806166259230706699028656018166875682119916320549392587579733555361642243737329240934451136527091282790094235323447860121717091842162971105435506041646760492798575894629181299365300841469604855807350795705198668306159740720957594241896279354013863283262957085283785612227952930166479848168148511290897952578216708192671984920409525112455780952491370739361640186735461462351891665223186986860132965620291992041424636538920468495310969852166189619588887376849384956652404203479531080088724461030659142382521840079669825186317854422063558230423633316087441003740920603370232672625038077557988954847688158966991506233574269161659614021894232172678210382715767971253613176057619736775038908953953582223833601486525901491544894507051188573983653484325178527059397735545925000592252917549700285509182305318610082051139748391238676658023700740160135016465794492913953778043703853346098059688852789826571004229223150418381714431437315806399159157782206623479500993550830907780559916992249317158887263748791087125819770368617295674552637825096252165197022324968412095123817910716526240041452794556938764216116445105674619411792069681201510259499226815896189046314902333518215088390474557588409088443090405393033760672392282916589983792128073303678784308714850013942212936648362520642871573378472188519114379786314598623617049335808640457465224711980420248976176007535962105018113636809850078665041948330567477691942070761195882099908085431995861918309856652679362709517668291168213293575628441638071705822207965879996130526176311549836322268344884051024087542120998236909954515084851572826828201350339540439237857687230170513461093964296029938288545354318238095923862014634633518457374414282732252821530730293246389083873479228567195331360083804396767836984301540261848523182328811191761257137197477022793342401814714541886302371589879222443532732174533377180067880689210382700573880451889905018749596659411625663454665452057795254811231624929706977533397121374732062880889504436436766923991483057600161151388362133238714241000809615242757374604385239160313021272263624297267768042706336409471352731223392986664030110926511197807655445050338992273196415335691423182836436083394614820677734188406922399708443560858292344039967208305197059988423192046760510126401228400968783561312998284531644545041704135230200972330045338074263923487258166867225623250160225675949578398230753321369386783176841363034790756649459950948600850103278582633957926306698836709151101683061057601692351344561231804645211884088542413747949766180923532467382568572736342580656655450862800161792766961317810573623048243844721456480123501103962214159795772085824784636207590987235252726721255147748461798771392712477736505146496840451107567776725322111474115234555933474956120033117750546852621582325054192102871620883241340624899964776557893936698965655504329466416800223110975354883397951116869855527608388439747514256178283507957540402563710452729917898268530015638087794621999509190709556536355239182275673756568044945867331306749570072588160218917078003098466727527210293589863784318841201287938976217975224085943190484539228497828072071233830297457005115491593756206084079929908470152868724794903936871102112050746663492595766808037598543782950276809183292486974255555085115578146586032031511648346766656082056502822644655740682847396639646196538472038353203592969293392190521995184029941641622349640487829670171891881797816303566477213184380050584468064192858378121795827836910537008747129991702035232466608734806533384873577873463185644962928904371605687494644927228537997605676244939348191971917526027959848445006666981572642663534880990569932406075790275949451081125563632438878231707699281681584286155248925955246462965436125665229851462557116186697997112136480344774898043431338290282605354203691661562309766828451669567851679206439718369172690541343382965355756949777931563529616753868271553450533658199993797912605785651768159267014971528243313295344087654591755024934864152270734013927135614018061480624018287831079487481486881800498958590403010645678061396725607821378901728987709723085830480366097959002665417715517976448633072505000596256323313885547434529013833805165246803164114456528404278848081620858460371373697291809320183643653330041274007021813150209975481920922541986344419252847377487293594862275010905837937450738052920442677444170781172074922691851114725978230623023048204209320530802116290724035850891044949895631938193069141639859012163752831956335255404476487246399782755262182835472698602478450307971427881366129770189206561456885548493678496966970161278777382395333847394386191088221608850150599676370531822783673492056188193747198896042076619797412348723158090876260894916442476738225798596275448710400983673860716458780162155500500562822289684313030066168990795088755587113340164800926718119361550519185331233603102789216413951772461371870396556537337348866065727409258421272077891458693668893774881669508439764336561603909410578230178321701461241608280789367895100153964222538743739031425905759888121131550804354297271500638062703310480638394434002338607953379926893305688918325933661525974447281433228369965441072023514699997747606090874466235170140937867915769370141117871479761847785082042591239885908948524777887225460022317271127392228502462247929652989020915010176553457040181450461908959410758858711103689129642401593634223259142149710085082883927656417055467364660134786361297661991096174567042875456451785138771103468323357221663770034473106984406729211250773282643909680663645844418541484482492007280205659831497949645347650434044247177920720211547317559734605630620523856482128496105958799885036328692802235136667920969213550508194414209200641701276248983503384502733833519467093580724577769917644481080380758437679282974909970949358375180025223142454267493915844534531267860458735561846888839928066848025969579758078285021669670992828738770578386826358557800095179405916261321030728091101878275992143073791560944403756128015018342078922421612020211760104327659634263755887314263042543923388521199492978222347486899427366380185158865482565757112526986355778216880372461416802360702652386154492869426322101890095757474093610491832844199393346643049402166484369005554580599719657173289779565573565103707301907309638779252522822218386398296885254440385921504590656445661166089133588159661306076513361601260988401758653408997923239058630982319198988054129036938032295978143578192440764661181554600483069207084961374834324908806338445115149263403404312289559448662991806471697125619556072371723061142906561176818822781204198278380372038741276229219846418786279717831522529972758226787438148925016532129326196036098929123302730295808109519082416578407956691000470690855813412900576840286626726068064555461052788314755310302410163323276987544779582066440762747223324290116649582155427032346575753730633165118647983545341350165502575261967033625153888940800707730975919264625943774144590969097365389951015233327535711980331938747006189859280463881059899134240607078800574031686538834410090688015584831228411428616930728905461137547492162648966063569166635799016392569874922172872999048085053671621988596975936040667399451341782407606188427929551867673090319781168356054163169503047680441130557005044281196617954928072707553038482955225927640381138495719608866516658104047047030373958548507770299575673072446872264585195038247988058178835891074751274319419766436726688006005724739221078768281742915789991174456978513278612259598913863199727366070611890867987142533244751342964175273073476127543558874383560380168301256823119824552761801346993345315060804621764998372527865969340619157486934865392726407611518044648449578760210879546711346945204830605831947192587715781157526525900529407206457769081712096574878994024508207323946022110666917526918768228123661423458058079684792530386462978317827275034744240452255267879986804650747893099778502880578307290047829751478725971450971130305098299566181680031973612329117317334344814815686711633971967758171268705292531614869441288082802278475753423020578837524940431989974114122307193592209337739439114842630807896502700152248171904347146032782396733233152598485249589698389401264518939135789986579384463766721136150375061409140376665462729871948137875448285417191903564011692697794028272137126494165153247215784172527381191958960896203383507554401479114686583652523484458437000761570780145503880559430784464245386385551914603696477243463479877090419948838667326740530792419421969189648666516179008628797964597520415919653093269240394118859941488164573122245347563968447352442044597723384081420647063375249924634598774162386148113022914170954233031391163740050925958266748042882224877245582070886157813012015047121778202606421585712814322496790900078114347414929226019515992988860446714244413466261885407985041287530637010702915372410154796674577353496449044277607924232107500896107793511538737739400571620960763533477945523606342915614264567939381580334457232206564011820490648753322003571858197075217974423881066190697384877145768923340394296962892640072728154989877776666430386147067856703327006554475377516105217216875708817203096494872210625334973975033028792229793349146085856178249322576177346441996204191933864009733068954331092789264318621654083836272070144646006050034332055528500541355928374671648618692825061878497880714599592626296317366451926925634178051342211944082221793367570367295604703972857757050771555397332667961445355809255344062032091901065894085673581394331107250494377154276989391797010515533473163221786303649774682802910040719221549848745901790334513369569923512360793448541257454925988220735429528902451938979438219537883048204610982697787144536605261252474574133690833092983199158182201340228338662294774760024327098022131680973682878131864829260379100513438838612878865785887711696642023982106098699782146944879635129761235946148692229536676533223693771029467962136538619334685733422691188031967148573766249059762510907784894485058580799267042594412066102995050191564093222161789109781562407312387064872383298489028457225799266847419857662980193164505656424283944709919764455488568005262448336415535272094185476786208560784358262495581560707603240106579855438060731360949612441972053613118152593704410243055774065456832728044379189526646529078001867884431978678253268033799127255652937155055099180434265583019929998062888478834088689569612658996522617413902603806410998069400039656341618393666210564237236406572761417396259496277888154233816808852809945100640957921297601123098521489756726588319170277514710496154938679067508222240940212350436060288427275228901498300064939159520844766518219679258992167640208600407883751580008200293583412936267038652716973706403296991939457867055861437021071182214326546078323003069895375324454112865492362442209883471194985215298204461300902609461968777639467169812364509642746743050955136273033827937621615994926031215256478584763496096704696179386932475504574452171026312600047105296968903158227457452563529489441879230353977624455078400183226247775261757139518444865338969381333042789369073260668460266607100216109333692300960260630515357033488135322863867702656082195787470477333385275115981585578487750643278263513415866783917791802705763466002690793058331063125035154651712287177736472813720537255640259847987331841219931016681869743976221801930483328769442972966537400879532556141345452162754723781122084813485847536343161506058414076802179661155672408458890899595244091830343036715037111040700949589811213592321567173102764069747889835479468177728161010347066527486180426670964270037113359533940092453842874020463014767049678704865134393223151515645549162350274197124317365807327847274572124516331508234907168386617261858256773492778916702293241135950944770672450363953147611954971311093329994088258027840224837283363786376163847113058359952428787235848200101943343934546532637393258372554500358905794205941724154177562282819252973387405653558361334321797394242434923618945860080787957162093152949050601358023444209796183161263928328672185024474476989175146363470522766909790541969437527766802161184906506701018893222352504781454525434086146398729637428927928953654343030531032725387376613598637578551497306317440839628442665344348385733131243594740471153087967446497181675529374348616910167917908498234793133071352330868462101039416766497424658513787388885078960754687585288177829382372520795336380782088652604631312202659933272561287018605354065388456183237584920796505012675426590799018119553609200863643066001173217556750797686791856940421074270186637975830879297909996809810320428970292744453830515702482816182062361516092863925348586416460596425915151663840761137443018920938396033238320494111536535675789486515029587427660032108133688602354109227905282846279793642843182856051889713493217915333682443895799472625135986273225475919031869371990120120336874686863346060003692622099452816891240050958605350084079598316126555126671026217196658752297968914798725934098633105248817755586498575942948240651200194336755312879737002989548283215608465989522511634945881278491825801649341451676628250599751679209569994940830530515138197470576385664541329084002623628809836086852178910309955463293559660545629014201507140757122430564666587990689713427180673318411706380507792831449100452553704059919635643799122295699017411162404790869307955234849268881685690631077628655306607852630921894432409427094600742331800925718773870009820230530077178971722364502542054564365484877106270136022288973053921301726384003869905969849679981793481944637098965108886244257415994124351896232519553945683032119310850284928461590620875392610488702042787917273991458807410727271285186872100235096207025807095428782640390207890991575344946838685370591974414908290822488947044759070073208387821868831980902770580443148965776546807508028127005897378211622415086626404346702285817414005888785510459155321135761090963598189953776605393123109946403950810890682693189142497215663397504029236437157015223816555289069470126984788930674682083121945355230966625812768017535353793006409129179727488872741430969769780606238995097531215243765011556961754904319081709457741695194925141396349698613905039443203307885666635855612075552961490450343592205599181009990403336724767476698596784913490450707700528065703738864983961582782151468021645806832048892635063687504241856397641972757800661033645358347628376429493023654895581963333417577657426996475837460194814637937570161916268264616827300267198795467079667140458800507613171230260767545457137434851067588290610684350176102151705383329089212647643929250345141212390510905081948568482799915514676487683611043167345003226474512601016601829807202395245656558615311988683627944953917782668860960250581945414631126226156121248536313450637275738304470216239654643239095023793165313957981599820418454323798761056683428601726995411338423588602439315409894983341909008281931299088503330399771641845234830831275931576276221250655925140985100372501622073074281218123778818935267315500733059950227971965676482174223309150439318487808838143423323833360914181356926831028117214061064765895352045156041053275655705152432264367543847843408094647599388861901168889944228118643463343305664146319630118541184646904835772194411786386833420247552992783345860890020549749599533592704779327572801674280096284730218487133842011041069874345015297342964373070514450168206525151843352204538352979135804525644498881524790881844126612577203789259380097492322209123715014062344057088763573580870534418753893075710212438848521636041479301313245095762267301303453673656778274698743546177543868740361410503829937350172817789419677723577051207786521486011582988692932455179619789901093029657937964858921476822247683690487459334679092963565986136306761194294566276750668631586283977134665307778459967549066677554776496605351289487030297420594559044680467140084297003012223391242584440499008847056293514323339981884369923200191011754339005695658474893343373871533588677787897713925067820401286421602917247125498909966793862965572369976075253657452965962687662644650081807166335892885089407868859542234920622892708231692509677893941529683177062558076878168528359867457236910246428034092399249383084566625339150135647200727475043197539743364085866439200466252756157229073886580509819925931110063349866488367583811629146878960099023315721017176244275826247491844311117456998125388401459993954510755827541891541281593711202803684146271178257947585571949227408504490140379063968660168386359529669606172435607550973859063516477853502462821475621326461752694764959777871838765413992247823579076798757262835443504098193946860982605749249188868914332365297471177754781833104386438464317521931297619403539968622736164043831529985418528747127555412853064648406040901707626579429221721916753944823239684410751531273726159852871061480106551555302021759699384454830806668084228276737917875964050615262339925374067222470799662525432073945542054970316319436072219286245362824045414363601904820970931098078972685298238275240084374367169487507129249280425639392233126939770769984852132228899989405160266754615982507382361240484164134737191929118811164883304939920479318699993428441381206581961145590495947954591311698446619740492923697083337052215018916261332642965109917364678367444602248817074750241684488502011659734952654172783888896445607269819509874808149457319507906734919685641050804384109787735897921007889667313104830084116980292491259061742466786601147561303892286326632322106150354213708241936043499823336202781094178646651786653398517981073495911984830919839754809595374995832456792981461117243918195174141841513379398828300854637424280700401477586916550960547706960066524587915347364563724252631910251681047803649872674039725699519345496524856338812624681672053678284712387152058485195004641809579580045017971703205463155353680325903141835731556470622620749326456259326135851155856611132928487427022101231040824339265421700982183078515769878335083614934222604254100450746019988954657871027677426110869222558752416068435567556523157091913215058113440177582423184696246593038367670630243125508486929577914128209932098675328841916238371272138768344048755499876881218513447065916134470828565119633557982721883502843922802603789014670816587503296687318621818427088494930602489735499014998752242436589251469342557665320021585077132620878945479268702585550258677363966494562669839192171830379280720841443332792923147436790754952561317596832377744311082055187086476257695206138449787876665764120595413929268188399229112603855502586926792667981089363310353590828849357211933677021154631810226408375470106944728601181989688585255641243106219624499413409965082454341499283294065480489953397216620857600555166572944420789654569466119710679817442355537770387397069429121686794882758274937908463335367499276860627701419646835046384672600564366517735851121146305723509306258510836181653157055492143189871162952288582508759067798878990886476815376019490274422466473822104048102839623066368888121231579869316326174174130185893517438011181756311014736278020991130966924089346347932340086071640814496031201237920012385500665283521633215008967261653105641148332442590453642613414308292610520877716122765680585181817799049516944128758742722419955149537819681930860092377594742612316328108721351994746826544308218572667711806985466942528102928767892225328589074306696822786595032582039296344755101140294674232661744631225749457453668347304120898897684618860972512876126212766838378257460325783316246231630466627210218692882496389574903202916923474666160997844672604510318784835896333847548541009257552561963136029328561881314200172045267613218379644989683157253240216425500554549358568695536876866147596520077410079957750021049508189879805678268821243471671605408503074021626662105873116191976924596772987223261713886205928349115098800873747180755175438901492001121088906879087002355937081443830389775380933052531890760121155880998885501882045519092580192499318316680812207628899763399964586139344626775617712078367591447506802157013565842991092831361671205147032376897255284848524226377664875138129734470089631662650220241802815570806235402237532655057965720337445317376153022467929402212056226891045708319893724742770606673975127935655404051623064551919221181518283385452894368980191885636886956433642200654236757733528172300767263628041577044118772684726219735318886917860456958110918440794866167945899764433584396844109094725917941441593182650278521317074251770423371886705207539415092119427151174718224103990245410020497364762576273186639521086690766556393357601346811858580872884192144709052085947805836147718713269125209387735161338591989823702142501932021000611627113132720608943250770216653114799243932974872622636273418685153641352477733597024205534874796056385854655123987423823984637096780145730654672325626263767927100103264938217788069373051540274207813521975926401193184392959731656881878576194557612439248043545916824801091164303805380896164270930135688377260899638830707789505715798209785617938221718095800119823006797987160696748660387750102437365102937744259537555791121337482275413771273408741229496790324612845667140414191871475967237097456005979653111632566545516911846350170431952603943354449253767769196095559797451715025905241106750731760148316534845340604947834068031019252831763634135731960201456597542236811106654883052195203525995424474098939005703057907604448722535050815007662577191947796085177835924913805668455978081102537638541583097388709223225130130140423683245832077078560978365192307690751596765966389736198840362041439993615666175490274770138106763293996802407248791892022658528103009606017240126198181718747466276236394901357026570577590120861827256767776277434999868748584495745256802546632849831777458647803805367897317398546389198592155224769040046873302812547496282222215771304731610652934416264108983511516662495550873868932459056237631511954666034668426166879133137346527201550829028721845779113776181162309387456348944200283897839004790864375534697104860937452795241407064834236784411777848627335124054248381384565358898016525451212010811012821782371064055211781414220869582280129711086130896999560414500647741598054399222801673393327734288509110939543449367335634949969511101400361567785607665168141348217286354142903046524297790335028335686493383899864098459451211256535009787810061394171356048214415352409905884335767001846405757706345304130765887805779810699897550819040433676148209551964630610295410878975833142322713062541020724284698730694684671739564486498313544420870865293850647074066781405950556973529987724716206956458674871554407029489362521929754883105706770648795053576590255299245386989576382011200863242205801109454566683814213160617085086090037686670069444707165391982188345536745185809389254469479274023982058210641572250851122413865531556862178208329287664297056437425019118752041494864367666248623095689223045884671962107483445181687141520767441281544270960201976989148282559483531723893303186002420129712965180838397781476674603211785415583672731612907744361434490084885692816266657299863964521836930766800114346349505130508859880686563168556108725923412286556736054760963813395263738456553270855182320348738364773393690723525460550125824087748315620874569784474156601523131348837883875423357204777083970394517270427089215485304331782585827796756036959218137836865730032407466700454586067682836980342232409431743137902927127514264450767428662569672404227561002459153358895829503430765108381826443319299565430595426557821125732358131739585624907378955840421034888077189805025386091230435968945779835903804641139312084541134966431001832792688518570172013510760254894758616280603210933478595710428288653673718498225362621806909811903888128060256294545142510292930535036666555723354538212596969746294629656592663511039861246312496130894014888916319372026401001554786803886500059497478891690210776469839413855905176457906356839933681438906810180579519952080927014150313333514905392162615666898048329922764652560409960403684697503722002083511724182027648706486280995738778993984148992480874420439655872048645636679608093969579572684123003413610873818121257392144977432429171697867113478763141148035581622287094290737444746601014497165734852214684358184315053768092894150460899714078963758291849551483737415255210397722093032058628898954986153120251232083299533344327651873712305992014071465641573532890362071572034075327886835145143910379628316146489222113043411429398490938571980526784754823919874902159153737181410498650170077564023322891912719372906191730926109973189542930544549837832288465159453589263787012236598577067317365439038726137325124609419642713571148344817930767833351836302729937612586887226295558455360662137170005503594569255131292021194942676552246270939861358338884631034065708737802134861733548902983559783332149720684499216832750271448148152003751168835781380704394438796993475567782993675158869830611887772069221180620963374710430021910413932637222830306417640701962190253702527605314484116388366069621099483627482258338773924640595364399940143807418207479359887943319630480034893806897778630616898675758759918909895712364700270437424435351159050298658595792516518957127968115395509042151139797685852457114782241211579866537581399692772173286568468634194339082395818972623937810117781453493341038359188888761169136035801794367658485283639711125402393469950951157665995804188052342152902451785209684033926359442201008309540814314301308006598974785161263439717696220996269395963382862462929703620914897535643069488100737470286891422783962674932223729330342451644703947927475577585293481307189991583208094237706463454258718689731253721727387977291254041917283627249845900434668196927923777603047922403892616115269183746808699117656521741113496396381875929267849905625560883692285254625446486853531085724389674051768166768456725295169359244998545409203204639649626972667218113498487015749166999730978573851613712038028143415094775813543403583694676887259512703203945111212942210360308608220453553837795770476330675898631436061903934165422581256640650373178883368844220582315263001977225273293297961320369696601298733982615907206249301511766879298134158717161174754517583101263999621853986261766165333054185085893609919974743521267356764682238839102322497490665857973623607226309435899069922185368134505262999837260787988205888834872026061659938461389093327097552291803494950028591193538619856152887796598369736052126807647013645733795700825238898373591441883524524534572663193716645296504177843008423443091950590419003800227761876352388625540641595059768609841360075241629882636082252456861358191409079515863205710039096245405497083437739662039728173266601700081812421934058584232006257959432035749317307278546316536140880407060277049795541737969119227996361173676838347950314741425072912473233014562286962808221866682550552226442132464554654818088488199900950234366206247580402458114483358366155616001756394923074911935211108133918905488879903254690419064362815808515084658658523854425378245955035110396484073980456799614851976038278809850658880890668472158714132308618481833178277233622380973525349863091533798942381643613811219355361160492872258651806248823366784118364741818006651751904031666349355589606388853206770138914358897013191441227511995715129740977285665936816144830052194106221971235124779762436477882342117463870317555865148636641921462514312980075397332340636611562331468477882713188264742809719805675038435336936558673417667098709936656978768722605639794960543756396877995269399266563580706771102787895303705437396837538500769775947306660818042879247512959956347341915615687730217282405941380015265577982662621614001200136102595130783739955038887300393571031985437480947111694600246575329306060209838355651465075556899620509651646158640481261772855974137010209872378488866507415488921719070522108429515109009517709063022595227272301489534288117108504365418009529433949724870370824819080764387014974769416981772964518466824439321503570479178201492193410196056535350663701571269767751417718641265920279307956541522389222451358091133633350596676525692771931099131698231569267002542972646906213065071873077074564719817455432022924290343689771283380818620221232180146084497649897267772256169884903050213876737038981067741089795020764980274920044966364369978661878570986285749289425739015395772089592169998527777720603458431206717267941637620189613245089788471156795658310150142089604061455484460489199827559480643542784100819029388674439930001631527248257260563044883207162954807878365685345736071760205850418323068939897271697688292655785665891619127477699180817145502009088393026307160841076674201993096426355313722006745669285510888681207454952959407560897804023536749397973830258778484310548267295474162711617290591502781751862862659801181458327733443620832598579410189672845656747454584599510160878595982831538176065584921788917302933334320974406800298095954585630759133289435966030890901848391548918833147757090588886484412155784153968038428473175012240209853944219252893750589343052408645611945135625902701227555787760984095414053917154905565960145122126860816901266545349351755226802418707274197241919223219457937873128857571507755520925667815787351636354735333390005171232169910486629187898058509699999736575653904218246355053931032798089866754437713364689796435182093406761841194672311303620661685299013207482883569904969404590161633155762336890425338953982446728601248518943077811953995831154915943414020614255396727916813894012457895344972657072052337568074727578884710011133380187653856730440442279674761329754099324266919528258946588519931200782563729973126102229352375301840919731123482387868421119505994843111879216259942050482639348976779883831963994309799323457674949877671975709206088253150014882691427173585235981833862315084564153876681125881904002526555092259577136012957407516798329498212864824422117470713270725342700288322294460740162267936570929264778604669219400797457595520322748788198864604089658817324413488136694453166079375095414062373888218781650203686066189887856884529282482465018500596695606983385130076290464573336759909459588434251390256597897635983801416046967418197704052421888996688974434811509337366979872399034461623663967329084694220275701456153056566556158970682191854355667566131823116739445989772564847650352850432603873399214909729363695488701404166600790795692703192243385953111865876785630168369133883502551707597198037439979982204479487026380679117164946566123451355677394914857446435230210373443871012699198098800188321027498555155114244536896688934195274193916563243477392501622892542713197394528484188263056277471072156555614027140800210116647967626219669519337385960957602956169736511525366580764941565506769205973990771726847190374682013949132934329026602063866592549340443803741302605975075615360410349131241825812925749216331820465033377755406510376605380405429811370332357068547393318113937270289078440550431583447956619713115321644977721948047314920128978353187797506661870551648040941310349704714863813618077063737413482360590141003751614556997489998242850801011962844556396955341761279264810816103683002087044533621165917152003505113854526203300202534938588330301887037873496553275022748895758309731689806323517065099997741191942291923238518552658062963847460929488003374967358747035363341536730622415734598106394214617149885441452950956457781124609158297291746148196099848427818559527287005893230276808232486367643531940729338465347528862384737377874009315726120940952425828647258603383627000243424359655534771092082733966727735902391408981110960333071952740466790772240662146390493436971575940181248053388893766879395895202093890412113464900295618446002206942293093106530314161920398838556576186452179681970457722362606020840373056941869374823030101236998682119655286537992849907146051992900619956107074756380948661684584913903008001812117893779715299153798727584908268154619554880695397242056637366576220437025522655730343171210735790954806022400858050710743163391390387197548957885888930208542708134128800905433104759364314095776356849060688790713462353619574390013359864213448787708775185513811677312724172768887256414495798685727835261750204599469232597641016801412253765838963021884238199912191881022796224640405795866069277058654146479132377766394669397780415935325631082064959369137848094121953949705892940256771564956901578110069379619192824704350999308122869092106261328216062125352176605029414295783247896793807868244689098117607672584626072622995626040804047546024359171730992203065113939056091335919386330696452585109931046071538327302639723665996216325022790177806470381042730538308059571739396433035606993503134095233687084364247933810178382937573963000003807294373340580074145674974327619350129710612856110657734397956417087045686300270700017026979951269385399665008650856715745991330638252255275460837615351178152785180603543524235450293464947985272895511850440675871785456776022301222776632856878222490558089685133161801640664563020677959679504357112538195011306551822846685227418863813941307478349643902624226820348437704298567275592977569152557818691296044580341769274775764948363258496247303880928262972246344407164546326235535640354650070594488542891383534160223423547243454827774749505129266683269079079649136671204685848703562408892436309622317789325415731134190673502638242218784054002966472159162228713730609109871994879217492984370544171374725312496642507476079547290755326035728240526533595018672051354386666023902232972306145504190133940310736794630441450947453426925596695761981450100178494482469208052051331893541521997556063968099545156726917433472471131411177351888090847785357947559475888011082360601224307699416011952829226925585732788632844642445222071815561924414099085605802153050155925600282335328683228064219320893663129186010685834795382614574465944326402940455797362931797781358327580259990991858503411528663306015921710900811490413256112205881905022728923919795113706909654840236330068302415673482653895846957922560270260778703663592519630032528073612188855495309637755172457376741826130046518233888765076029474233388636001557586363759142228909633162921069934129112031191164866600716760410922081698700239336633618612908909021614879270910495709555151387083801867677205709883687219973793102484221766631125380212482316882314587819049748484650244851966995569227838015109872529111942575340961169872891904122920682438214114692082588818572401481683076778772157335733073307442515316495745754592126839534347034283609786624074165629257996788211525784542553690241365852635055659028804540862033636496897612888429995848913732110021459858568303135610313280764491664574549151271301208548508960905606897645794624309631692164825142533763032337897295017910888634964578836272245029923734397517533109177669592768324236775951016391860948103915944653653368454803041164723914921346545637400120571412206874166307736314494045012682080077239573949129103682725080598657453394085131586030059829775898050860164313952767342497816419742576390467850447417289811740299681205506521315539231556663956159125583773919869774378063164366541279857676186636091316860341230607697403051550874115236889619397549886404858791158732751606972149928429297183800995008103261167331708634885057910311502094317771464245097004810407914942700164091795826306714890919325047096088397489706724862829402805134021504680155379868499877845058874359259973382343022288930444684343453324987273603098709535961913739976295333273272149547523569349669080374095470683175640421939894060433596935305309448739173417889263724778081627381452622127255428725210589475918923392118731687375777988192049880962028048691184581452847141139452679233882424094700427373271546481886643332079159202285215993284193760126051482367216373396285511605929703056193095586686851003340901858486274836586936579253806831523515069667542523553442495408380283953680389424075608323316702063705931719967575889532131284785877304785810787720626122230006806920643132669649778142531389393152462461581999087407176412000791560987556107191892949101138208935461451021112010713518574083563882102143609347778853292084455701719942343872900329879995254719800363992909105885308900139916603386346518550421039859202570342469177040592190949395775563276997889448828818706070225113381715326287352028584794603041089060096446933438316422967068304124741518910187861312127659768605645963305340337986277301817802233561186242516154653500482036291483884606735548459555043178094106649232573931961787374150648235395498507796909782733091967196837681618119363710403775532070724657960905279932580794701590582249659050607287396580324252322566548270817832491539569899629141182495742041869405278128434411784766368806531274539786501801126051168680097613765304700282211028059141705111346509406528002184269986053121180024594358470485912791747598884835523321811230376175569744178589904330063423422936553032105793178750699082615948178890690607786418956558888571705046285557372596306138394838723839959727522046515238563546475003264127501697482023824096874374337821174963657379883992117868935616314436344849153063541136201706901349485746275288284212387800630497323432717041740409723279607242777707755147130842057982399589849209614440136688496956911948396449162679654943216463138243696401722059164915130948676629474467468924911686577565447765950375944702644412392842226349375808040948641507725836828209755882563327737982803371231158278176796021872481608858758392719708491761819061680115221016361950797851455304078579167966935607515496174532996187566886395872421768442487914079138674477306806561676762012468561054230976169657337984159248272109438411201005325004639629878832279198946690080578536565487364618618655923709075100286049326282095941349035147689830184394821342080453487402173103893409353992502168065921910289476177094855179681549211101607527448376930024292568896545125928013027897463111616861128648450344913230417424215192744455216939349937532389234791712425287583393220049204227541557020638520478991080753539824317706902437128352714701904048648675404257106442817389659447170837326004251978415536016909177039357176325099054795411276968612630241606803232641822187456381976868879470719027379740032231322911934870927850371292970414360927964406733646341438279744617497149834494106944032367229956645290342448293964294446116870174585265727430074083045847671849425480866606742959561031447035516740742786563858604929808137561787236563325191171568399750971951856607789488809716022331276237523691044223315233490335095767665509346186790781972974343266853213615993578629768736464771608109962348456575959940625577954988895996603370772612230567935546885166189532607179626635667377141935317379120853318644637607187160442618509201473171226508828600457252695589210439172560851750200789749854056652120780827777153949151670567979535053374872657961970502146997830535987378648292106911416539743001939971695170286526748576791208621083607593012946647299766095002915512500594682307024420028093125107277591656957731569816844359718265636241480732906407924854827024647552491487173336687405985720794751339780179097713242480986579080812139361094367867475885833192358460229704200314224113587687797869409126911632525679764429388796945108878647710835877070512870792268693478740811359857422232682840582680521208235705814058650295624648597735287626043967556229951415909386165753443041594890358535745320121016724446682797279619438907999365684891999880981713413117748780996396965574362935319555188415210258133697693302622587793573319213175180094087738453292578220223564083120588875426811363246282042321736675881644994771812732560591016570128232817642736570221170456516737537241682195954201935036701706182775027723359975959475464744088170528094211046797377880499511853747663966038072188353878037640081855112804665162394431728369008413346253279737223867471859177035881996879365999129649998900108351134147832408415274447428041160886963928232177514637373982741893766528175747553366399183090955825106187092263480155250358207674717730287769372426290721524601518851976537563573240155694514224095091829523797515310565700662561032848558459351289960115414331519375649561880933501013390347204436782659576678814898631576621866285866340176828971116229155184183414461016257724591243851894106012960064060268294473678863718720157070093119690682480663835906265544626977921254609222717403629606965908124391219442309632698972768152685341273747036395135924286356468155122841981651578076773535082330148159067700029594896840543545467425415951734277181279806781717316647989535869747273627098450833639200998335166100492443007765375197809542712943121440813976031568169243533762679515261699175387018245285759571570429738019432202711355349258716117155111009538288425095722546911488245472532377804237539036262696485958887992359836108545862107593340422851208130478895948152977721754818274984097264875135275535378701210885910464384039042490167021189739458576310809408411005838872983671938549584123570013607704453443415547397811583267176733777149306332572896676560581151250527189186911297294950289781661983462665125942100676806241350258749690836512595567448045741089218585165045804260000786396409843531235078115778044805552794759747033106940481955329219873246495187777201673874663135276658153002512445356533619360127961530328763406355117546678159517001215310458929675495323040858690631992317298949343367095375355083371684883720593773319750161103114346464689816402249368150452685839990669454747179372711045157526790793091446289822113119556389744949975427655160254693627268015985965003041304385228974688163706781214185450447113363657309358259620006535527684756802755141768577714888053873553255178971868252753070490820839442235828578696573519321720167248416265355350030295715597055101221925548229557605681033282465596166237428567772819204008968040658501392467536737558587244912120865329985809281069847273598815652780277826981803930484720319426406451821135096779621437317284019648370346808655832632037740194816543473541182004120617243851586186553344173199141701325356490719147517089635081457488024992651013343759413150011790064025663804420976117487601109404918558440001415996358369219143206956394453549892236678415881548123965800711455751721332893677959218308192470773555484274337241091507428080519742587216232750963824991502785251699058413032221112579501488056548008317602529896303232204505374188446778690578999658322252593590106631368534880870838170822656688970768390950828526061799702202888516291154352519507163490719798044487453230373481945568006260610355584219138302928106375766702832471926905778518743237881777807864821692593120202707289072119676111053439986058648286740729764871447949170322463000702271767146044341300336865446440406535469822423079266317483710429140974429572663748904542919764861145856190262123758062584200052935943926022155792083530835276447315801597010837265918762258271972836504448733481513173777211424335806345509833607125687121415461547861541265443013481125088199395837364534560094322439299777772060719468231819570704370143548802545548818353280149067268714560179876145533291081501065409485058139764774552615884682854652163259145576952740308642994267004535758149561025163308420447248671417417111227892979450597380756806499904872138086771910028603878997497802535547670855192795293382854462794930618392932493902806796931441839578876252669638202443679001388909045672408981180246624746482247207321671115050497769139185514905652294384982453489753235747029243445223198038093405411511184185359261429849934059152859248061832681462215255591672382512266265551350441825572200437826394285855209989897895641090702485390860400627881171451525904190884502966533888603222932351797335186732560190450933194228892525402786924166209610650522826018003000525280340841544421793643826812224411525610114317976093786812129824455376345461052251623951294815913697932630816466734604441740459067948205878763009535043703604025107784331881145137606242516818445876473194724145346943432442396358902895723399331245144594532604514938705272509507766347203228704095923131883763189899117615032473770347014100027707164768115908899223834087081650480842391367862534041081573354433805192540029276018633898096296384420643577561378998133320078358340547661162986464210944146570547224629180427486554853714452509839449126824384358196761982532255160415151706256413302347429188597960765838826297890537919390742851472923506522044072146966766143223862934843297412180048686971221543564399613676379105894739325142709479821883501807273989906477160125069904952102431452791125434038918869819457027191833019685200572986692955599410765316473441869748129635900586921839160399404929671556952538907622590942934001062994693151594015901402607343973391041925078556072900256509644131847556673360979499743447346331306986452586378984214959605446105077597756020145311963542509619802901073441116089599750527196828210084331218212035755790391062953806698565733346151586165712833078233745351216332811838913620363898960919387087298701018100692361043233325661802859797238663562078975819351005342235151885601925079701145532564008405036998457217235218335100350937803144953783211860428439493039003535285368087858059303226700906860776000079957185956400860110817102465471803531505559563863104579879774864258447720024803177412195809054730718654573106179081764957993545793140730503488020212382138156413317925269270527532011678681459139572381354261746998122535136366398559349178168630879760881073024229507342405720338491882288240263231795970007944786370050636239573580766298694516114705754521747556579318251872477613724749986573360474242925156598082377098477158136617710291623298255321595082751940136299619535743751924567384916350658001054698133712059169369477664707030249266818488866477164397651496409020587114932831876518438264414711908399345611180388631053024391748141952848633924603969422982568156399269302360284874971273814751681477163428947182590680162600399924556219832978983664363395935584716870142416186516882999693355139026622751269544859509666056961503315197156492102219317264880330273796946283992852760599343844993688275043088172482291482368508952585517032081180254230792982021146309844241564806728284399696989077367599512088578260755704976737762218816367447503381965053190063456435530751142041352756663889106782375179615100678964771613283449414013389584239208810134865232673437042097830570856960488727770807823039675141035520607790775762832465272852557691996296562482243352590601645362649528312442847296673200832841611157112496222061225920892743918877241013584333629658546976484129957136392410615715461577954534975417757697876766163731949366337103318601449647021602896701149207220212944500718467403267148040272668671675827785707165446484156296171123791100703296460998516747689247194066877756668174854346630525515428908706431090132888747280306221483775052656742945299791498852255078835108151123735323958200293881956151757858754577149932088499083960667938415696744791927660408366321392334119800712725338480647381773958071694089395396373169182697602854077008184310326503997398604924192409161830757944957955100403663115480578117568531804777625795529287303091140501005029406811300472619742176205882696520102950074584599764591451042540138693903966335713207703214089471783052652224459012291127432976373374285027971326649281658506249735953570976766743527019567553078637464689470302604765003824733329667369627935927705573014488464194559679116479507771324126563654753709690312813981616401502980116999791255662432280683286953363399501254714381539981332335208678116135570749529319627908634550214699102699956559752142988389635309692839489100094638880226942685697479871360282249179881388783665707955523983211182171599526742751284184587769516667118748205482188729899306619986973170054200985633723767600960206047005299594993998037956002831682896981830247872984263627059661471478084977457179906651865889601804490197092018642881061006750602865972529196438421973991634110497612180224193686114461523250178485811166461228473484788823691826089559227427952421716343818918362672081499182019734389290606805022174658881861005655981034953795773317722938838217813916118814946752462137774776574548228012134361403605396557810133591045908040009051020340529872185789066195157122869738078233275799802161792899289285497806981374450332642555213855482106727730351868253780742937163322527505707834588320660019512250095613226570224075391630360959598606843793226933513300681196127409003386819624973818003799710718678953640911286856849166594701785802516334445622229402270658127124609027510131375962538673080352547178975895422049667584979844748917617403972606090425367686201296279566270418020581087413628016042789573884838176587009865333397008944201398267682881080559766979242120084787739063526067296226429187443155061575274225018299482619349130121138258668207964263124706963615874436204941612359646432825675122285391036491947522843612656700740934217035873905060364194330036788120767026447966386409553780073224484077924263951691547651874775974435428344469009337148673177882422808837257795928326501319637275557550405741442745465295078934298512803352038181611292977221872857810017570488029830438251702677447853568889544421383554358529317770015514185841816208346286373889890569721216358478062217413355717152819663529134303726074586392214554059967034936863398402568407448591359701323776967338101771991601230702446931482550368233220575567805409835937402484642193273185837409831151261821469136022011968954899532227771360461979403721165273164179786470227984524518987597768289302697551814451113350168783567115196597846934914935707145477828358849311757347893798234053352359503578778382891215580191941603021134714893625348501699335887518709354240513827794046852783225695473930186903764380890148313377724760372265970131121275682188045479610233101845579504466720839557085431343897465262389349624115584287113476769378999456407594749624633370189050679602472854677605924268257633702224853190980466466632736474807119488851554188529519537418944385670963596953319077324408868539331268482147986480595670943264954319082172169335290922431281015779363241269563291507074320143196633127948707731789043761659568141308683977918318841791444357917947771576249147345177786984260512603973782740330541664061201702844323846717980586942040219764462620483869903874545771028359443259984007164552099389929865884185227885715027137809226227249138396280268834020330507924103655734007148283567120741440701178152760697005231061987106835008242456843210658934390620340827972185466171028712221132639416397947282817751257794780115263058851356273375977561150404171812134208475279351608575132374309923203609573360502432481253197146056385864794357118225142686254427478520303885153082544001885152248710789173953154032487844918731092612756166865194041459187645567272623924079492153529395671631747064135597533683050434728486501318360534515746330657343680252586510865562780073491397999086521619700484912435076154683159732163038017986110185403274922054187036007659352352631098768866578105032575765908282381707005869776836977487403448652534709342915465283228533538886308925129411907900880170048474196158938755604659577490284545544914085310822993169817892610915752985485136859331680610015323082460981942133573280329772802385950753046894374730517756855313126568056208746450680271985452608989309774524756869966618462006587475343216154604180745498874508957117050204650319762972286323973043158764597748531067995991888371024188018226168782016789329256407609127200591559329133195501574708175279960136871055945780167395725943602719509564242097806751017967742892487675331320538721991809803553374510255316509857632233093087427970440195275562431421926311456308934811575383979214769959948111268392520595027841506271269513557740472690934479958994970286332093196460612493936784762200085903740501254091969809724090247618349948518459099769728754460037139100064174211260378739644758741559884207500546041505553176022030007842869273859001794138764267820703506007646555171635951029946322540573382936937743951531607613744419069559953423455018201728663260323626537856670002822201555743297413387305383850252002370956242244671385774909965794236402407968580219427741885102664945135700830197633486685346094630374083871175850582193475824059563720099846486545355725193609776852489852521084255714805566069879864195548179262891910473303877071770910076181904457140643443501725133731359574586802481823744952457847343390818738874936144133007290950235539225284624765379078409189493061548549185760468974211854739899129191294730734649286964118949384822106098487559358535484417514539507904857966512356014531207648222996028533099690535902646784715897791160952479770267995763841328591210538924472893069307521101593334508668129922681340671814196537870598301362303879122663254415678680628382180302748051934390440452492351688831325137992035479499038377017939904922362614374772753596554681451353806646564083789419359731900162312768887930080315691096501711802988473362191672085504420120147660306128487611824193140080172311055519917963786293265174908992810836580651882534319785543976886125460164666174169555624509619465689583684300109160188489305181373882144735575048758332181626243287752004916834958646957224913709116185522531878822811131268341199914554555475990596619318846016921429785205421441527735117090766797614080423157509658131250905386202687822820979799953348241453895886168868722783701727059863648885549082434414483537278798789816847894200439139749845776871963898548537371129378261093118508444053504809867926373393472327937547995586399185374141473481339433887206161724390150150809940564256595514156719805208852228851298436630637611042935726492525096107120047346899281316181349465899606136605938413938924401689370600408477778425185296053928798699623845537052518002664783846443244160306604019208017976434955153228397954800151915148861290172604181090628382187087253542133569341303478364722375350735566075099608004296049806765531188020461551930335072593503968733609646815942104964937354857438044197182772234212496414422610344941188731382835101169825878011927469446258618304913094418639425534081441171693151209584393354197402037205604716224159187666998553603847592395546567199080046092250917220821605460549798846754109140775296894204356803733555732311415795199163296112119560455693288707745599649713188405229101943447293205825449533158609362179066061365036125630020504767003105533210026865371351699343874395799549429701270023248516301179574504389339346255754110506101574482202181014535064494523289484109563982672206126240062486733909663907725379406139660802924568283659293549893200878414143086321414005717185687211011469435664578979824502645878786373053560047553299534314754218880125077543817772542042407528400910892151872547111716198456431680558220452529675421490551655773166603705674150022163714049499210306880247615829940164004397739594328815174707597452874284020096238702239905218226809830477222588044848178410611941112628225842327142130277484884311485676085805898352448822370359449940332699373466867161294003747190018124415456624260143424180524228067615491485915490514541489431512232848344545676709906211367970836107436982141044753215508200344515489246739322563951357467694473323644732000020208334676586019082705251493862787210799747282881127130151616104132981382056650862010187059181525347996548988601649698759651095545640801141676124106857364101352914878247432507182177641268507976763712073823031273619938956443908134094163981546913452346751808058133606760413145493602092857640720573232554449484925158088197145965704523285335078360448862545098291715777607737303934252996408000206471711146498553616812701611272791013723620584128313317542093144893543625078652901140356831773404310357926641837083091737959965221172502087297805707512448531852410102691973452506603053818653489921870101564654179712473533909143836915168909467281189423785181499639747612787606219829417751082753160997532398278546790639290929465371062154171814712792110567375095143968201206529519680275753086067443234132070990784157462307926267733400813950583893655627115492761156238923411771493579168397574002272719706977800793511122761771553639002521709987550534710789247220481194970936448373349783843216508803547161199913942956838425098397190191228598873458888387011536062081819595501088298033537862238758802998428789674607851329465257776180640156866093535691230907669804656138373867360206465650104269471116604332938518424528104989206421609868364924812120706837809942845435917566482260785667313859430512571086831945398885877681440544419005152478704949928851866873003615431807823912194986464077122642273029126235286603774590267359981493946740852391800383420287966868182422257419303987407694954982375188195046386416447961020186612375357191652758394935707699437013699522177396735804538281935284923035081038796971792101275544846067240499671812743442424929074545326809341449958640443941873095988495525292861957193308129450042667865690323261022282617883297645828474582771775860793921734427247204344035589288065622323824348091076740249034754812697782785702750706294796746728981129752702310385040717847674869659720411759664862667147270691512462238675757339604319041017455485224825636472968027374852027319000446693507106173259155976618138321304015022119094138493516449648512979148435587846801464188440664599200902960345063712262533386848868033773995310008893796484280179970402607854384395092046533040781813347366541240827384470333816790339465944998029628318071422227452498426481411829557651789632631197060537235686037136660561081188878985697311989936256783490440291100001227079902651691056190529489714873754307869838001716563247813597559017520871363789847623000690022948474019802708128873451338845845553780805327234852093615634157486019340960808364832914333035440049541967506276101884987855252160971168347940788978611662204312657248961908984045350901046194502745105279124687279893122906786518139550521173646550889013215918308152523476162868107484164812229573416280953911226516761056665155418884688007722441109314123212338264519031394879759917917018311440952519776665053529592586111794989311824310938116219167900953032833906264121069942903876040269244318300340500216231106719975755499545598621125316482917731088844411748127619649253887530911245349013745842526929597369204910023293991174025460381035311351489316151015799669047984175211214033019277515120028338201049633531195825042663783204110445681816343864279955663772490959961739609439631172625513584859417765842382242143976291499555851140022356270983019037683435618602605334730116419186228678670679628417529952264778799883798146965109847430433385932068978348813483395783091660020354089461599879142581912456612631685028268847305430023087792146389964495341101677626717283033325400887402076172796818285650922586930352052650710893285453763972558719195481586575504515318625738737893160000020186913753174733607706948069383925656261965665004783671337544104438559032987986959586260855656170906127566358137254344106959928901628815795020424933204799384436086505515037953561667182606892401677231329537132072042164894994188142187795363494861635747052695071198995860360083236683602695738885755512263834986797088709432875058910741661325453743638142442655610889073046540447433224791551603635288678034641939671912726323111565876344014926603000679646335218546287163724635379995136199509555507398707932698642361438271395242371222328728368301100846833069590618088905294754538581801418875254953822919270859688923500830065198052463505762535619540389473033211364954682943214680476092343410383092017369081687088589345919676052268437116310412543723789942326988225849675497960908523565536081704277076449334448291228020050193669459899651711848347387586425875038797594347267093385941519205546971611499150258039461298871596669694499522799196952125770127504710676328323454629554548021864369758965527585425519293192895920616487194503253753821915199702476057440077196125428344222337747436778551912580951804986122486614373529721342908623907589351933879897938789155758235802984183802108863687275173500789440806491321038108967653206305093694666946916333402843251741761157282102164843159027542748767272446371917499577356345002049738347428173050962788923944775070990939042843046905555204464907083421655188267938951681241383423541177755071055695956553676996302000139443529063457596493982034765961085145154966873742754245935734236518813148571279537740470353572028785572708273995059971262660504318957448139464167701244972790957517773159945702469560413741931915931133260103995590112132756063325056419301704119341225458086727220225745081003608419993362045727570008084851139281841055652790023327435742319782878475452691276173793418634197833898737079701296812952446115912368472425550823321121328360371635603217652456110235408299115488701886690837136107140098743439261193991021806902554971033877146928707357437760767032655980975653591598764575838030478286296961576343324704758580453777511478615106211922080302365279363520752064657830608637571517009279506216853290546661131381210843041913381358100775738576814869963601354453513773647668571734885410028135921293808728082347092104918388618789061157007984448872905700860642618647636852457087625911125470833401389814824886056434922303906470884572908358820669534160894605756028368852362088939135940637794969188486910149915976070646570825197933897408831406089553101326440175482562147122887400637785316040570898907662077231416966977537920488941144060533596881025188942896768500562445354428453350270130994670497355967735424988212029050394274202147301230826640293929116509076620103824684598840928964605611817750133217875112466823656373400642269419471777556188372176904234231774495870339089053576900022541213845003267379279064316397242982306809168575165400595764850314158735747372461354143293456668537108607404332902949411184084018934380166693573275284656809765592901815132790592017729919422003961247679249482096287687157040912140914736651967315992146003969745302775359419827322628719173276762500554346699403334566420698249412882605915599486764210606586357926115218584596349100838603186943343863524305962192024017472648797956331140951673682260804390664018575229509763693493391838274689523428351085553337853350786322700491989734431876461123213072517802176540303021799207594783739871416169968108055869827845310866526731996921108829192258819986729850084655942562916185914718453567106209897313833465484229883221728091428743978093716913965898183156881714275293915436725449236728110517483710107911790595209322450768148953886517065873721347722747371983058717800809223509521226239782460412975474114577854559679520930502841181678035712189054912982351445275725508912111258494044598900760270608269666866522305041489054744370362022029434804246456015871866964653663571277065780685340097640085369916105267310604645073769816062602559635654465159857594940720912152652486129329063647275814093419494506704875983315844252931491129159425972052402929443912378696883306294141654524917741279345656883558669549423024377985028249133781304703733928403435970545179816255479134059914590644453111798972065324914488708186354909246469547400519772158016773951729947100837143146067860886876604939869042753017394959288639964914113729275783883405298396564743774878104060766571355469484091878384506391442040708376403274800138325743004396656532255010474166605400484522113312095205460971029221407003537123560616064236903426523491089569754414508831243226154845572933698717598734063140538637318835177236816450772171865671024840226366423612989246791372906342626350380820098978934269179811472805318991995733985411356208730436126151255379559804946768459311393844031631893942986288735906046836746532809726383448805556596959023327310288510998307394079983684525081715041599374360299695632460749946758926988276816578772276245629408214881901384143133492910923408360441517367508826820318267099738208165703878752120774036009118547178782998871865342363442878000051295425561921386825368350103685152628330883603625473610653122481355440450259616764723062338984671390743238915117490047487623993123641392749702260960429095777654584519747734713696930021835385475739580749627469120776638415693224218881560487710885817634035472823470766483894340274715435752745020136598553968357204494891511397648539519513455790036500627131679525901738242813295605180313099995603744452466464069061942083045531813774282056414761769365649560766727291246119449601044662684938090492868106642816992327342616533388693232430467987451102416611571660483231794777428551607519120524756374648521068371524643480109997920854675932540682594763788792549157362267766659265191820947270615474154094095042512630817444177815734594177245238216715823510355506761085622749048215006898692986019251659633288412353094892689292485741537409277573927629096606718365013891540179389841549656240123463661261539512173433779584391972469806513450846210518763968099778488505429153364931669660743839801955877158878691005437637734221661652731020717205579616056043732690197787570870917171972222178403550424385633509753939611378601165088980596770895165998010644200307215343142579227790591429942157907579749703983030866856417922583602518917258335361023285002031708961928388723020147695498662772797933609290533969948835819496580001723414807140228675427634255675200689673075666653333364732673119561757336315859622390952131092544881721986070647807605255798721324556377765033980984850479834518156103888492205347020366809884617124281189380242545846693712057578520960814512998239101131472769384475920303763605126200780495732511993167057555081895777585957459276049712296963494579102702370242337624541531267864424647477826387626692485344714937591203279843644409004175666968926357079108062582779379742682513182541672569462452870608655164189072553314275984875445246461237428170642196847760480911298062377488323785400672192779190307319900979929417892188230968594220144073250916777780775265525756323281934146842122626430651321905636351686194059359505673334717991636201886186916074572590819303930289022028199036513579241274497759579535587560292719402328019908613135261489965766006602489799305311521940026130047899659466256491240423118619309727474245921419726169133871119784654143580092676955764707149500149552825789905772669502339577850922574780286047437412190897882313577037170867151240836553229258585110230069402652410271530950435470286279144720502669380571536531884576876980805008397835687517775897884597488454993628966321364914977836478382267796873785431490318477032640081699003019511191154416585899443806197539816146208726987760263467766978117761105849725773852796230849271364009751534774353318731915245269850242899425095222776360613441086803537377033583726341602882954604976649322247384901703231854267134842856127039215687043211050154411839568863311150005914376562589857439486839425165628629776756300574261119579019744549229825953951058326738743257686192019393967252054399621513793923035133612732543151390572457781244980866511898160863141412727040325986767866215316058514225080564789502596886232548049610676255147884934822914956021356662278322288412824814527983380120374962637678411326421873716671253163023867706559465504415491723683505707612790785567565881171005724454182453460258061707808146746542251288162698006355431753899591913278841478044264162154305035750745452775231998343050520199539080509709689137745627223851109453199328083086652762323294604802530815057428366239507276766846389382610680873572153595693043979941747864164216178711123158754447993221689675046814099114094853401118390695135067824191269384809719108099024041170211344920295430490642779243048112684466889346999288239134686512195420050367304676626852556960791578671516089137685713865818157696054472570999154155309660962794649897609650458529197713451340762905017047737367513188784198820750291649343877863011477102434400042495649672059180904292993253394610182116242669800661185885443706569173601654320330933266762299691017682828885392164738806683062911940561471763209557557878602151660256520219007618689592601243269380937668978586252778976283235708566094847677891376915846105974405511511349572750120519345938902418910453367154640121688056918366346071835392989180644939838536620434557241452779388314705198810095828124883590865564918132244403914800209579144300435434209145418421296134118913937620926310717446935693271805855674912564990044950999271986929184075666387312747742809778132326481330229313909417331081683998226494357196548410596482121617930911961894332911691756330426929730022244448380764079025992832009974953880812039001816965524604512953188766564786254876465675792884207832607438536837043043708842354603560251658290513165311814407270625451771200383119561977038219022139991076063061029016389041340530041183316674508306665084976863339015330017145935930034479842919937377985348889480131757204941531066581069014449124443266700819295940570847620540652525873948796463750539776120667376842189714849629077869727041496259201142526754862280755140510087373356388888799932547589190610851593192766853305246276386291891699955005828908117313914849789755776017093529061820857437221285434631715148769507572699540683188688996721637123480459691748597585999561936236615080083273967109320803412058447239844133790255197700767526529625892159557724018526651665742293592323958118724470203388223115512093727347378888230473839203536445230349807169392106181407271882365924483244574797616128327218224448180184413063526249489302418540434640314413096338357783243042465156100703867433089840275448232642385284693282008057871462776173172885441332969219133797776354027271004255051864943905525118330800629356362178950074602864153257610627213967984184232198585389793294443974973919437487675022353642360225348115003896004132028325572691069549653071353587626647804617333788969990065135035159781126151482679012766931011266165169212212819767353455441916079664699290177728817644064974796308236064481450842648741878237123345117580184684535514024790551243255899300203325775988431477025613104855994125548359902981386020280103596005126865373168436279492961156640871681326632686936495312218240664688196710704831631861350090257674491505986233100457765143219973827871638919538323017292419502672712067837548664109029696388982365623813924302146754018910274177862229580167709200766253124736187140764895283228624619788459885536751902974991945065481826133111019127077592562199218231979620766694005721475351167603553361678281562936362518816529885950285768776510238860623624105932771351422291375688182817804195385893766780554086328436514594126829463852125254557144428560350371608067206127601705883071934147549707290582663647005662791946741354258254123610512038347317291398876287539981661599916786741270801374925941425439457774128415367379382561361862002721815517370094843053951136365162800820143659548005472034693699190238546724662917601818000570869439983192957485167495258629024486867148992058002816896152624100805841142731309972224805975486459966327205196106269235376944669060829121031007604607234345496307184477614208193046834170109182560644953758624812043690250314144526526888121124185829265777381538890492204180814966864389880311679075585699902913476102483370481242732230319744221902589168635549226272675937071406143589650028413886541452408102727126532878207083620284933073223716925103408015713637523122081804940448291305024268625834668816569534638728744341471317038675436902960654381152251876398445654331445958278351458801177087400532164008409255981794957445239231694573992906995657520665397511319956039349019500711716893014655123644603948008391840501631233058904951658427276374582420204344689931499358738468704061400512207771680919422368809302998772224180760514484431418440150611012413064484955654730395212929748815957798510963722541094584857454151437717195129983872339735300976006454674805978157642145562873879768686767674459239251184516267584589338043718485677186660144478811746990596974170108828281112880683383355865720637658362104215122570586317330460259876895191805217694892997307681401055711289963739682138246213979638136908071442531190512543089650994402068807996485581052039475633902811025894828310432272623392074838186325591703024951449151559492309567795130804427267539507740425032382311180632905286375681849037995925729865767972453926381290410112998614528533732599242686367373651480689631523513199845005964724225872831891861840914466370322266726636777023025370615937229472128643404270574407983430995369164947851665983615621895647972331398140146162465027415435992875961963211145032969693123891742659062302776750891489221814674705881879979783342347337920616676690915029828603056202970463095898844075464896303547696710551819438558344412438931146424534552240876125030311598328073006908965694824237589969240547597178798192126014642048572159351857481773147846042442064343211296241934600443384171626715948584602813399795357884408497125253819985085669134341626644050653661961783961366515537211603250965992032058244051238946983276321534022098594882101617475676884254667095714358187250813153415541646451579314150197206561966964677888827286740169839753739190421491524257204549925877642219366995809039599165389438506517610312430631357033169292469808663781733185989499219641559705300505144807093178944279265717712415733758618550826309820967826194078298032206266880528734678472621755232375858176989651479078811830961627011124831023241694570363009847964762387948770314886982300127705436178992735682342692863804463929946083112239369635721059305911981454191722022388285065429869210582047251660153773758820954851935767708686100114243234264779027118824631831306379281246833421367189673842872364966025485675005259285344688033347987758121921511712094485685889993881601204712963512440948500241103168527424895204290707945419740983505485692052916629856040589026789830150383409892316457682376177238906224557039820229058812804181670010845371911351719122296098114944242964596422093250725963733844612448861483719197578219641827242230393460490140456234433525747401044967878000648829367283137932557380732977444287593827640963923082101062188301821863657856044621299113012877603998327809828507574072617739658552081924849478185482996082588757230678379286300248067587282744953675939273865366933879140771535878401203912834510581495954443290886428610275336489985011468608033507137928631278657291529563631221532641785109447741506058480292454632150288221608134112200310748886046183246287265853042128812719934541356855181411014365511702830348062887846893378487950174473511390301106376610698773508010122270043989329865116202521049377818460697545680725818061948627866512810841068376737672735816754071118950623034471300090533154885613077710150908528009989941718120716956591607558483865449563102514936165969583750013254743789781241432090817871460153492164994416694738567813827877807502006677538983343983678464828973637678430139705516546226679973865742824798045384898289184628670251366041216621956765757167066052661488840139972953517162997657769606266560510629665443702126294947403149567686630051432297473242417224769150943200340990364394749426406607763040166293246916440599849636834965143864977826891596450799488738524123628111127534147793328418591597581659718844026956483549233261944779820918291233550186599857466506417369974390951658959103686329318443774306403440453626125161133289053711648197354078441184667287170544914699467031086722361522064321632764201821420370160186691562073467039721447266225719559704855407534263673045276314895965749164400544467089553112256163000830104397062351454140516446506081270765503596892903961771384643254587740031247738683051329823867245056779737193771017304038722505392653476204501191409900910440344821290016615933888100442109543433349341028013259897357957939364178443343615317028226690972597831915175663141935730102555772957515119678649708963226985227587836698130060828923441608715057129864731600045766279014218229270785499848082469293858404656425515039968620902932998445120087840348667522021911696349031727315335945889175859474837135079883333256319442861185684422916290321737320284466923659809771181292658847318941006437844884931186871587066285918819608241832306800953619333629368581687855225196970661097299413309567934379474546905951689889134359168324351963556804513068738194116346430374466028354246276353445308813415078909654593791254991417655378283940261700346637881892905084869102875620573673394725895572202368776770166963471676098266217063222820944668618456166864895216581368709251740438563234546996559950034760821081022054997941021081096605267817034657158386899232421158275807796705768542565287395297876140561737845217953187292544426452593055113548812217750155748656096579161841061996356201652485559659109690400981122050611272616308935775650773399496429726981213132545338878537333297258864973379741964546773084812884338069700838393542627156720135137997575762600196384395250572130923669934187790358529066934801008818764475238612561461280055931735879569519219501421069709841405681009827518896632521793686207857596944870899331161413033948623659688880326083034932588138551959948202024713659704855822164413100460677597055176923842347825116945167784113540240359002853402112236291810489295865461559773336891178027169277180185464614351707612560202566337713698138298289473105222806070912294484720168031682481434477706785796071530863429786608043165486296600764848064880030007700905221478663748153847294892682406696753546825281252692461198620365214917090369466277090471124297805299509169432366922964257825535726392189091619390475834791426689879240749020855194606353075272352319249885911567002315974230817946156016914190203578567878502314932665624632715826123661990890284416531062393136742591720129626548778185491615428005431773065439511761374557462021427433309384370627093883441271493105680853963702228482679984332445788591469222700180361120049590575310429646597020215911817879319097969054388110092886518486848819210689073822286003498773106541371341494808874035527186696547849784504016148876500939525004418984070651096256442209203098955812815078870731657497400894168845563339252962786872659100003736475026483826333426441529636204482949584313873553118982933803148442249770797421278674223476111130892151429799186675098053394214526125510634940102093610952249176472584164428126300694142074696373080118002575456759207760241408518710699041605913026800481856148324959164146007833388860218637149444359616605063627677570589933475420559126492746515986989207140435794884282934224226043244687990477500935581423024240034955020639020615632573617801709305751117220602488497104372894304185508188963724390768874691828023898960343896358530647778762180819293756887904042149229717538322131521300543736374825941587562626265112703679418943604458584247976321336843829411654555172240519618417170495043390607905589058126360183065175221027794754288845360019577798553913167474167815002629293536469221590615679309754340539857453918856668057240633743507829877589576388901218567769004361283534570930235173565313912793918025771958850291412548074681570524203338936229121428948456926155234588632264236160010410347885077337250543938515042092364916939884239909533063805446153865040442936595452507383444555348718989473824856716581411952070356050626397985051105331938692295500008876763250354456023861540965957230665867068704813215179700523696929159141515022971961645844785097107801992215500997597043087134086384009392341582529577245455327850305114703314594962987127282460978143455868478732549303640719681587622695664692321320812686602605881191230236464994056882969420821973302510289515444924784659922853775628871951911974188095772826522792315481856152266453328108812330083694785250235117235816588122556874204060839645785653418209992121697562564206102865274452164008738382696878779295893151539496201118765557272817668001770828081634142533924126595262296603819808144142097722774212475620579396174970941231375984165602433224042273092785634487753068342766985346291415596680249105038151309519893700336188521717266794387267445723639789158795906806127657969575534879798077352870027790626914388532101786087930217674853477873141028183762105471223783192682612757584885484936433626512052591460036507530970210495501574512445824697555072740120802279988208739991369841495935800960498476776795786055464231456628713983279570029435686727101504779033700863598605537429291991419290262190830478705478625723994382851558514921108872919441507734177986450436189107608212316064891836696584179560978107506621048338756551674528003433656592102079220541347804432725148421973096574793582844713475627923778562774679702975256942838119317559695755750550893340843140564649458955059154035129260221964249646865070740212233239961532213009223153946512476906977253501625730489169320820736985568827580288947526080112621006832853281781592689898923615042863733446421803746177876073771770295775105279761834301915235269005509715435418099882452970796351874232051390896668685394069075594357548435507379809652709600507573073266147534275894873757042416086145756429627584390290088893931113473966516376419846421312331190167006608710395309673688224903705852354575849987637804078907682164382901989668371929048121098982646886886206478796792453600083609244801706950869908565006281012414816390626990449028588700966244942729750666371636603453264807700655961378990816866962776863557857103679319524681126371274563227916194481078875782327052461556821575602325112111788510233299275537865097590000163196426884874389328113622864377850881656499767914700035651422926089784863864858823680840772544326205062552929413940139698068828858806157264586146380637895029048107464121375046299673126473151935458214038599060566693977472913225438490562607249420946521298805007143684331269547838884063249094440483559765701133688005622835617499903474712456351419573087777647893541380674215923311689157846041005942352660350589624648035736017264160559536562035001703235793820602285057295970638741256610577753028890652146637963976576447558911064459070845116899680662285485695065918566630038085410419819099100473293524548238950058093419245661489491550901149960092676922421601082051207114924473333013003499726449112337645102373846371602793648674166520027806373583203874867085971940276743449315174496196433477998792709231771461745118820345879709615577303671480405922498373909694241421247212101776801207123048950708721312305178068014761675328595386224258656646008925879085869768247778286935986680748151353997739382664554192589566673211765174612838853351843224653335775918931514773288123732853974472079381133788498242257065576874642032748145338479775586938320727912047354401901307524070603105687320014517847366987258439525747217320965776752680031370050442206849848710524764977507487261743258129750877311394758564978279292399907496991692293192791186702805251280205473225520376087089273050230186622197907107644562107418409363864144710882673093919239021768935598098013469011202193938370896228638871545646375902050209555111543334831454709382168588911122200089497482516460911492214932210429560366360662556310904616073519201382551260043887361868592100029743801696087665354549366545346399594100857837684113847396643725373563674359260480201200870414219421625843919513984804311788112857885430031003380248588688380235455187974768392654783854926552657243620397191129795683458261817225520144272917576580503201207680375846477809994823059470722363396368972271388894734090950337195662362799048733758608783062820953727826301155118823197856956475284110728382986939017592791650094654866645059293943082933391532445187796896469166753568252510748788053509392756714809865200950220424683305546494810313577592593993486276952624637186139628682653626315939581352906111482231242239353588740526576207748743143302087461302561756228947324747153520417300755800744533042631911555737164518432307075694929692698707899047241376381819075144636371598421368597705529069427793580869982429349612057415420677681941263867708027497936763036597414083167214828221049737502800139013774926049105236908062342326748377494705124528212814782117485976557285231466100274517773072847112205992710951003981936454486145666443346413378710816341629079776730141258181636385591802897617554843577455475615794241344613426731924959063933684115949782388797463494172401424277230411440938564476206534640701014551161950887599537207143636331458330860701721861672713487048876900238875003685449632915737166855775279158934152301532150507329582140226577138423177030990056282196407284231532852432664704529255667989108754893646321011365130116819876576736318422458820656955280688335772049635210440475455920553118366289549012516519573693803601682649820331788590235014315112514179300306098555000994677862185624085451291578851874715672590630131958982516169588122528256790128091639674255261436983184645753633204746451881159615522979662234663498147339566553894017048540839129213286657686119313563204229010502780076666922200609804444626619352057390300651278917363696963970446379031879812672183404885614885497590378598178258072421629615620050970168565427598144040937856757418458779522609179197174540133914102268949363058357467036171968289540505620294455801661047634969960824417516540404428451697070402217145681585574798268332321475561088461426862534527986982996677035314494737432425825110137353023369489679572326126271561575192257645519940908340571950111987814231218705990350610334647518637026248314144045804436969219647661619565318827722576304735221869923788266426736369383254786544165171296031757202515756824137576828882366166231798114717943507401576926055082526841727761558886376752569923379934793035033709865426644681000005870980433867809704123667388368245508559947870520914599752141444457516589710855297270200826605190533654514734637144513868136001656844381802291014987489309740014076915123070039188873978217170869461986612974775573348821837418616510588759450718033876033096203996251640874233181757012593561161014030120100575438801944132522860885262114277395821253874837543848922206088572823576961021025863097490167894596931780869445049791898870126593854708451684891683406434946228000912790096248111170250887275831523624551220836623187043774106640732718650219328591605129025398700212666487562733628633915869779555799319494338323317419175832974561061769448328827931356319893824914064650955188360984382458733949886530464708826920028818158545033274145470553835373973499797691014314393685690791249050287781777475747056002512727386222295449087229435052407897916461499039447000959187617655577618513973303394739097141728761956807061241413385393684214545102809877105184347295924674697142892554172777353848752930011692828346807305923132961994148260044299548146068237125139843158019689332414804758430746428681053282662986796848203261628375615329943001932017472767318436061379387111118196852143985879565912750514428707714336337988320891294359327053619414110206976710690016740671158558040285248678384995456167584952870106254758985178870862490138911970085234298876789985224735003641705349053821489142845243892785454870026512727772445577271857519955566123918929752092842643617346743670375488898763104155790185174515154543849443572605156708038599840635123269760027944690886955742299421158475599294523312000867622269773847589063054196577093082834484669603217850959799837896538098240885644227564882099282296147146045747017700453002465418881800261052167532005799533968853160223812940662145356048689505300972164916307575470090339177020026621751468549868360076671254384218395664201658277664724900386642880091443905200395762724826925073696353576745294065979272910534752765104462914530408143398852697728424341572069534439348710385194050926493332006122453025856874573120346955397193343512722537766068967752471132476075547717366912917432276911752973053077983664802357366265928789164803385491640312755438478315682332011636560443988342467392013667971340332965045316720908914822329788461423898597194948320419521872047931852562489203881457437996565426093475860085622925452483192597990481350998021202423197996687426825626176783961779762450245846486003990521472346694582881419577819327959828424773343323622235262464572657688122135272210419567505239708116696024404982731157672195683335009754338709216867270446047874403077456757120502523645839622352543410377006949916317655691949457736606507170338686754200860643218760339413286096617660227934839563450831310298115989169517199952239796352470201596763298325470692928430478742566241628493804755825862490805874168919945671497575597705040446169654305993328057862513011523429789031794865424614095226141069600749452160444962316072709339105955415344442438438480376414539894491490860497027617683505078444833371910393106784605092021007946063276220187051948877647516576350902658437459296856654651279162820580365305859631932288228796883258918366456374493187757963764536143743285124652007731831143672515753228879689603762614268106425790035711556755223003748139964977668721663105086594800402944896319977276233116342199210641193183608009995490536463035919082645095424891180414373399265295677645288421975821254548176135244395696049015127700967181802147509583252853705539795331763067956178788574489276616173335127155063242307114436512572267016331496989104881725355407793954843398216840927822766701552644791436710942265230572960341581539316394836540297661259630345525878274221081968565430164477881944217466488947207194577974557058675228801352521520732325251922132407446167903846793800110562778009969320410364483351280833714480890706961264431994011260974358844433848231153313972185742912257820063342308506201473980928670126675309541889361906388685353537139524443671946819759853283271130686215288268434983401789598834476175502233418605537805744293266800866074418971359242102912764859513917613524531382116364942599296044666219632360122042222841617673940426411812790019142847061916098405510711190370620378836023979117582466205205886819988653183810894638870173807785430746246651160321633171359048230726856751026283644212527029027311261761046753736283252444956869819709209883474869772592944631690615883718674872079926926868732856539070059593113996504592370217441881601949254779074249828062707655177211785852435683498942238018443982849137685121880396944413088282450126830836840448114233734578098059916087823605953380962656127753441813012685052778911199057854708966050770479110169679922826996703799238687774997087635185357742854624708203214610959270359385813795010513649378901583761621355492952180871707788730858151623517208364713872833529243421034838122359950867065842648162437572433367389798352787646493564215703732635205785541738589596806655537011474128869637085742012671187674269888707991636831302027470695510486428958222983746053299765606881288856755850130721773028890764701936853406463814145083733038000311558802048658891583294170999448108001234828991951321600376015489351885583935031370020632719913051441059650813632302521193063341515285076854434922825400767874349888290224628200219348854901572312892730807389550462811518285566418803754333900305920847215470503478722305286831934560509023723165235310360820216004909497228674476655188724932367410654691942603187114293524267634184349470806042610226562238749205063467502695718254417751901684249818806706150438215349390438942923895406467666907535468079081957196481824456042078505478840321487353091518679962034743888667720615016409586592721314692542097187073180388845419556231749143075636108468558412881492408806583179553510725276891588947784316439883654221498538801680647563182476535368037030356410934637099356005275048442166504620157906639267937569747685375074045453424056398673562012901413713057627813506388661416770953346028405378866390063594018471733664242937476752071345054241114184842699113445310727400946037586145193159604062844760169671292513120207267373973174812867676595241457143339872688251843219402100450152945117547340599765192413438799578424825295275105390429113092148414454754742857426581636004859852185177608805126752314557469341822872498571123380066432814610476502795992687900968210692711818162863771929947283784557164636572826188554026912872592400300585016719034930961181773815378169541765587358504525683295785101003457203338359135913659442733391130944017489305755576038884550352743873119633135239386960793046466412744960892833505242408889533965172898199017565051953514004792279742515576246302476780985648398874379879151719010685233367272233807636496465659065423113241463991743412029054410450652645977351150082163226678852179937858366661634574495440445358863102260390797398118436737099352420411265905594106733481741718818812325179308736879307660965357215946713706841323318854227837154600643554920255619317459558345543889891160001765621356627121484181788025988885079901967536761917597131410547377734939226698428926593190763560304358104488611853492829199253990923911623664099378296083006799743519077076372360431498713895332628584921181134609968016722955826199533809584574947551045010302354769417865320285776385893268823458756841652435837100791534282957104091827841641458958068526473716947841535487777936163264694254301519033295395607655401227477933141318538165763697443710918537780428219146577690435955059167911460755275436650065240550703728433310700659821058412354805258476786469796325172981334020883925085757880114012275230360581348055474838199977465104743616314092396933805772404801990595327916540807400757495450827147678187338689842423965631810914454847924038615031480039071803963765484734516796191383859963429331003838302069770041836502190278210552904119256445605135320920024001035799845932916348520859758706368200843069370814763154396047713030883978770706562081898794160985661440703223810249789079582847403738449521924433887674407931194470230407974170566643972975428450788435302571875738150337718134514930770001268103218533872874099268984841736548217226134472419691113769071029376892562556185240810413577393290786512442817645196923136974365862399645142457254224175226145254684318570034076499251089976313063071771228540089483847905337459676449690250294161651130352756284406711964804793490156012092949189505571025994306505781264481086950292085621222084210376332865251618937720194310388885173174839212679136353154950500215381100441079783239294841797837170008355543106624681454027006069948869712115987478082414710037898250338614732023089588876710513238802892035843078685888216477576861903423684304967239110637055079459805423696780995643091014005900671596505673430340906998729458347670657409362771361882961504922464581835565290966191051580721146648290873054655678189589843490075611653084194260574541847280437218498585785722572570731713833771918362293219121378692085666000343234567447758856954216984588142269165261233287452122715739304283872972200239024026335428230271574426894214874992131286877863074262338156191134967830913499602644728827320710712953058469016366038519218888774247471837689229099404077599315795352595177090903249837850682666905616563345373262271818073308115494614416978358929459679402766216291257197232167162361333950614696291669970412360187736969922813656566907241991244232455727539605463664905300467372496281906441971338540256906085372233442636631615383600123128207688193525099188535310378486956196749186582598195344458265940152131010084000547304100407806972561148532423808857502831312327664039477307822253342439727700020134854409800260862044134152145555573164677283749089839234506359629647949299253738362913412014072786571730240841294388863511332960779260525647718957412965822644488258674848542518168717037123766571129404272182290341021762474438624277363566198191651149704110793224656342904112898952244674704971868382039771729425240062416252857736697703267041405920694364932678890613328865784534400582093594122578707930945913046216918872299320702431201162548276327313478208296612799565162408709566341871769227223869713398880343830590219214049437427429593469729222816488922978818615960771310847156909538390167290157894875829872665141469341480786047488872643185837786793196816126216746749552913262708985440132613898918977338936296733696512936750791087794061393072605071520322888940609716068747113446707354403280040190277372913117184077691240448227692769154083876274064855624127528361443429123705419138350061588795401088244623329731222482017208185844887213290695074283265776151543099241193530436739652434733912761341688278144571086323010676061310936737016484653309657430679010734647535900225964169289895538917490986005533222570973306144526027458877515663717902929597026089299127169001617457258205443027308600102228883749042035434028791301575740461974734304075827578647744032261694600547133086853803439654744732478006192534123424584427628648568459416264858011201401268331084933097304562068661816784138554700281237211388620737593230481036440790338941296664368326016252742273205452864174546603809523312216347677448177646269084018141930428309463389775818649653569464247728625390794985927292968981158655007093300298944477684644779585253202855606019726154671419903844602923643416513741644331079454546068717454765166504719420454516361822734194916096161465335846276530193297951061348921113531010240037939501698409149475009357127458006810899840568803919554936298171332700981956561100336992681986126343344223211893216952909596133409341041812053867361084339663335921558895113193448659434821989137676619524159910647902268631530404560349896052870448272758957297349841931304084845367951518756295751842854407966385600089546979786792987927473848233596898338960160550509777453871348482832401913604444075389011008378930932232365639726461408170137158698822745230479267089654849833047158503355089637211295066722772668275631437799628498317991116628943497261658130114222480482025080100941814769102131341633050376180981809481311046434643128416720961993305137974161020420438309980181546112982138712731955063564842974070996976553253642820568557090819668588285403942837619031105834293420653111094815318308695211658119680629829823983380125377926749658886840375599546888180986357064811854675039441664445375575743696654563008032842327402039290451115957345704438512443775576468521552831354602422963454829049543839223048621206701543998042647065826885559008602245950320365446822943357712985516927543169762374544945397780936245187480463924928304894526758595747391786773654449729782965397336177817140389963200500399591682358698446284883436697470166431483023279126684689549248935407259911549023128315631977505805026217114946843613198771402825968221759003978796399287221044362644478230945243080217476390435929898793919761888616771728352434311416690515763723811953425164720823493535810991238371407173220212813066364909801329462602574572728888116410585539276106090863919262472415578430160053152026362666861181072174763455363924543002866389657726068195602189650818900347647988253694061660065800544759773214387549743976035498139939767647212497931908279213467002354924042243602943770738097207650921854190445544959366405196665691957538424865870065380707018823070257061003269944799661662796164585870571679704731004930279883379440376795649428141000748777318009031191962325369677402974555694299991719358417019702398271154303040294311057896561947664137267654183479273243354915666763092880298433042454250397846906428321809987005567416590303342097768107431864438927440467304393001297876989127400343797421280136643646344007107957113909394671040555195561613088568393632804199986068777239666966603716351748181885019834808014765294090161402583502103842719215089520477609106368237847282000401716477045811919238584728634161728403281547831982077469393844673137199872239630329033112457581497536253169248691327541174232966572365089932984867621281644247671181901044173859870952556309643359618077191302092942488706032354321082356410061666305339846577539923391495279147219894652025199851494145365344943878132199036826880118477623077916800235294817261136346537934384761163270486303350752042813395729097740775386245848787097702374743433089856452443541182928552324492548153352593138835558476925829946894437782878761538741175821371847689156793173104511433641491403333111891500900263302939302327145357622547723805604086856098694204328700021197781789304977235680491196406681800461124293174396801036914817765216230474427138628079203530152402063051886775447014813303490353981299523390245999981483721649157519290732924874343153235521838996723219255548583766976854030732461645533813082167257013105121290310272616603366413632832543110536977840665415122074355098513298177400256943238772039591463973920841216212376755543283407305620262301827657076300208995315539268149551482849230812010552064932500328467619329766645006180444276265053124881875560890643207632815858888617117579171980455471069195960576507135117852408035409495309397387390111414921403769838568490616799522078189473699593478994651905227810962003494206348612614715357403935640858700006878676881332691693966952854052446305905591771680859339198944491575368921204401958554666828531434640485205364413946284808648223460603962222825967775103688702298453820639104301925010605974465017291358943459843980357705016373364159036216811172069896452665083418160564261918632457701417781721512791713256893498116261133651429980614590669054465263576093449497448110954233887090224499257348595428370308177614991477923105826578398313848937529526037755432806998896293942873616025184991535112053913772300191015516998819095283826361363576604426214633243396376941013865969030470588436820591351416358883758997098255451858450770788188389709659783089986781319267726440462282730785261752196323257823069844166999353401715509331924386814296891421146859613532034152992498907621143128008186700897141408634831772113078849649795827847428052041003289722431983461088556628784882076987542732294952902341501783631429827032846423575501482153715760039389526227439324744388666260774345788189599452072230748309253310091686593987846002379047347159325227402666973596595174915659859147844533488534179001231117360065741925132577973859739448089931973106853197465521892807147244376148394326018998986809061802154485144564627306513369929321012238594189122309854494788981788213008582505161390101857768031151214862889705042072150516130132168694210221434086806295432552073156982748782523881556868869983913289706550077269451695848635694095040023112024174856487966957812633510144108794864264913137444754625939124516821859580514108872832125959421512653325130918591348359380476344406190923193720656321574067281862841570437720830419085717736999249634239699933686009800728364297381400806004220124641874373740432785862866096603518850571331275513891008960151539410355595278817282484146683117270785041704321399954747230016760989056950793106624726558925323786550761353556768686963261038840284686900869801650605826252148572083708299440706265135703413278701893680482715016926404421171067988247700728805013479077946197558303401387770744690203512465631499158988285112674958235241986744263105163394199307261223273186742696356750938687082590318796372204129281198487972113295809465783546172214154483935600032486844808639307221657918892153972742941245092813448009202071679956663981089146552748358651417908338488077113659462300551863267770801914760493662410230075025690281717891592932278086358800033034944444104666111733207189278982376876310578970331438326245067975231359322872986545769792235942662525817988010481203602650886323842808987107052884245572879873502982306570548602473734773231970595428871907167282544216634793887798695678713466130054287745942692289248741809360618562860023873503184142929337180745998618103261636515157386400652383475504125100260002928270387755329163677529540016109613070549559192532398611446254314409871545504803895021621814826605196524674534701340978634282812324732079700562287219008742308760935519537891002968173940491611218371767041832500126030988576729135837655347151141105815772703003240526614700093957280927009532503676452370852170127572530558368124840002563498212633259817151208011665045699914722707511110147404843860750756881300504597679234994098400857383914512997384382065115141923276262464587985183391495740803067813194251200587044172034571408300212868041380430301469905954060854107325540167074427280002031198452067086177748618634363750415614704431606577245124565480636446951721522057447489243241920425500287555156561269892189909674022505058551697686502406313690376848605687252697168969211583144989057383137035008915311966287123319814913113655198580154623590679058780857606616780612702665602367067466396171968823897480044679333547796990235706546908647338792507634301135085862783995769493108411659045197835214305852242428359832243646149526229405620001243150379613211177976830347377309212602733304798035162198709627094171383875512141066880429555134039622213754390758663922820836337616205897655793898794668361093774423368933180646571975845607429605287371556578661562355755499734897568988740390673105317385333797516624521109558718204624958815215485768583406818847495274272723621839813698410297150332593749407158069049176244428562077269349816243922553741693700955559372050400677702736045188807533270375836268635390272673044707070918483587213786042451718910563345765554932792352983964774313482437886318884654013226203196924374025708908649508434339907490010573114625143639569922500976984324626545968106457396151118929610725945839779177375888037715392521777793005202361529929015600323785191587280132383774452669810082491867277416542618030896544824357577448199836972714739696473552059578916955712730370304988513923075669446421483104440644974135531253464095223769424651563095731666952439314518476990784496141070116074059225139785957549962948545287340508921095616298908409998658399742613687762134442826919328915866461464274055057060090180015350841443831768966196887816276070105577390142036222731556879213859328508647170734851579966840124506010369844999911360605346440297349022252291367005754712040898590799597611636440652307666244504276737035417931863900192972181313193333007885547023279162492855570040155652369411355316689613563699302742157218957513588222933125250444438349353824712191687534450211104399480438700181327537653445453605833125933231530513979608843431889336161248232035416720551250558108708396444869968214544385141390013419504789148064054754199328283425520168372531029488766631808979262401652675980727429536785324888873787197790458419133483067925602311711932118915335599391619159007143474997381465796629634832977068020829774699014870974479471750584506876070532824986975758091138809144378676150288064690743335814524327646690324881587925773712967159114749822695647990310206518309752321534843242776135255765329119138156749719517317845167428439578399429214135087112408268539243366793142270218087993492404166182497969414254154360176384225798653544787212858079272252369098282157708714723404561309157746552924446157821710731960860674944076340394258687613742993195872047326760880982149056266744722741626469760525679814560231283455818409846040224868248836517125960034889181067444938844042306257767008609148519389267482645261689794968411717261440755373947154212344557430438809769384147807596042036124301755736129597856018072654181898965969064607467977905998040314838597951937387107748861348317616480282285503114968371611649910304228506161275575810475971543916847695262059281147455200260114998348209641479961248334246335217967118989592414234697947069336689404242084917581945605051396792149514324726431795917305477920856674499151443401123629478456289967469645236320336101326342143292039900471496733034392382329869982847873190563089953437159272149528603753771689409498035133885215635268140754436987735664251727162031348002939914600536457146792007955468921139775675938931775467248937069173244934853581529981655725254088419319120144457610268173585492756727828214529241122101409198975741310097848326577880472647832965262507695942877116733736752189229750350603181911173909674215361089186554396459005202993105812700755236368764533896858152212242101933394725611888128323518319056652961628013049835420931813855249781069889702834956337174359856276623516397989705026688479242265864423785871028659347652202886015092093925522434317668945444409016756580792156791135737451804580678720902841133811791569020900683955666382222416074344453487058357498908703991812736311973734712883042706581716170040421094689618803848731410830077140389378932998061025019273148074139250761407707781625937179079553640494387102238242517266042087868260212288766872782494449635991920511565618541047560528701915887345528009498390883380087178244360371373598061223255003132254732530653761118033364444287815279876799031255002917143122578886657263864044120401068306120679070170144279010069625975655410474336931768646818706384297789715088033974669923943865320911434829542631279996572931187629031524919766362202748578405780433363681646383359902974766137635846087432253586829765546403863497918698136677549580613036019154758160845122169879990286125529372768794558562528805623476104665388651290676168355582418886265737770673618474130389618896720224365754012138867981845490158597561672254458416582555022320329108238116309648960062671986072324442126452685828060683932641540423325378621137330249690991086184156527262637998071397357525124020599073465398186881901682134998486714657342921300805555482261609480868913815195343419011719389579513444606625834475529662936709973838721869969579320020512812911457912772278532935352044755064377154042963736435260946596475308343034771650956484628623139667694994859087598969243226274662707175436529882293340736756030973838208351766958883443425565487174420041688315404398652189392328523006009009332861832778498838883433183047679358158046498513050619760182208136497182166707376608155922546488576854295120885526088050602158348760911856772419744011166718948285816731936449934646712712125693807778090909799765737809398196580147940336162356772218833014673948388935971948582956512087656175956675354903612896392231126581876755309198092612936117492939679022239319157186722532269322536336000816649386240867897221298192202994611599951774719751196777156904889603965431376313116762144214617956043873444026069552655115229606028685654622440192994491740897973877960941635222639495810049297193662435178403930840670517128443579059021222055540794757279979124419294311427069718838582502511815858600181118468508808443042996335028582945831899974605930176288067729177042737646568182219093497634192912860435726804733920513160920562950391664256226142554932229749142230199259832839676545839540254009982293253261238035086784294762234955513303480909337514289978339525013417490763546172896552330666091942973172161490172519181113593838517396458083085879994654852439894017725877251888693915364696672414746499587378507578040021407645031765979780194398917227277121418145250067295748403684079264706011219308155327808853348666015716730757736413296146576640677720956746141052155313320019596474422034519420521496838569264033150549046891197570932697810092450884197962945350445768458873150537969084170564830024425215561434700675049146072237077119125178502639901466343266227272235515317372383795397267858718657289484769031345934293128053115472294542003105220790869710898378266248879911292941375189387155452793786212649170152821053608035984855119769590121494123713160942791825415419702740949613147029454974621465555298888223521230148616859379980513167989362697325833893101574025360468950730263306824205678264140580307696703825395103331716252924085982268934661015078365135532215594685906257523808566309425853045239789799114073356704646821366880619668786456748573368241181282098640435020587684658153157897062547744766096311089190825356216980990385341665498883134060563444229600928448905812088305498628826699353578967878974005061041762152513406752317871899328311702858123002091664722306131872646451301058263754470893642370860905262118869959446449851541750753408726574859478736886858211408292725916499751765284618786872223333237667164173500409794724690977148347281495803979502660910245721975708305325729519595639297831479541929486819550974860726546330287540417201655724164996439558605348418652367262075128310586302149133508971199196128552959547331410183532479442317706117541341511299117614003687945794724896226283375323037424815759796396565563109291821819636044803914429210626711695576966448621721606862036086012467047663187012430351497617773295675604437560292080438516730355275604301601624592996996812599219860616621215962296662340230394548802773415154365538215020020880097490206251205020853637321071151817190049501749099587408941543395851877012727221460017435462368880007845367313062750637695298771285489642292940653473710711111930806854240928749602565199287207289756488475888073442795725315237995481069130997432357463666416728524002536475510102386528265619879111478856845804339807045253060148000158420704736210464186411949790746392806835516001238712259671196706573299012971888195213866213424095543355607844342349138412491886117342627390905668197326115348223517722336128076354078738038431031741832306296657649239405353493316250232223317154942698730796936232578333447688450387994513829001325238448502125705458752393109188533042310574506484578008683468645090709907524363185425565611012633298143257478070787343732019687787645453090819898130819375309647017583993315028700507247938970561498334291624987854715207998781249757215345207315373801354526655926113937744643855898265083392196846928862602737312846098053240534891685598760645458804029300380463822480375578724568988868065591534652929863788384936271369684544360710808054141807831216573291723441534378557047167023951269338102152095105417544666096871895838398426789142359930092931745994779658291555383921665819502090059555308667078880529716443000035270222529696258511975384335442655504049001918004127778483821530100547853098422031661927755272382928248999120462013144415843760624413376707084448597056358669063507765818687091200953431386559531303249657657735318444836424317804286525362764572574487779712967705625766780277924481843806165098897342432782863245273019400718107673805285768768521289121245658027342762033470125625668283000145433534941804161969119470007798975040639389866385784914727527129483710047230687719418987333210665193941905136701676995872015804394959258905472624979805778464570046951895679377950985798948719801353241426333858583533451483976280801129017440680794312761839086502525769474030320049871821072162219268052696966779657461023743004695251444792074063083349731701755098663941279425735510778936365697460464788509550987247657964760456548956652839956323763334884511559303101180933294818151352966041002736688061123449877875459466041413472605511861099482737193141147677302397123657976543767399063547279613704580455245695220432268751256117809550515005920534680032106586637535803624853356725223237913999884090705831244435183686330504422046086207113547017208439325456427041388294212141746076051922162944843382437744832303499679989557855478766305839553204784726213729648135202427061009880321948050401448452889602043572307447554962697879288467054030569396781521752645082618121000568760221240236517678067847836462776635625412222905697332585735989807074380820128376544717174709141220096195022071819086960831547805854563848455818835306721671730460187914608967165943079516557799748262764860240143125557393280209010599739057780184405671266903204074325467406482600968796800329965595869264714461171296153474654147511871111134062197615018383441116978241561642241886331652185885176244250353088523177487560183086822917612694628817428962331211724994071694534457643240221799296374872465406978550823046748333145393794915314410653299468157571472177254980569163325186950760326266666109577185599483954025347362121602665255193624267587386879388518823425983153002425285319932152443252387652897159467322252960410384015687968490511276099977136998236085760664113657554801213529175674863405750011731639502146984527305216002584748613969144031669094154498098661579987144209062912591075850761387569017433384889565112432402939484547693689751754278254479770838502990522209749281160041890347804372521999230062507756141321116331975281143186754987008797404577047931789167189607582938728133950118043579580202886836950375558316028567562875319583804870659718269302542917065291557161938188548755868653827104658888959801298189821884265391047510488937872500114165325553193802367556004660022921861189097465958879087727604410067486153517670156889153829879075497998591060480955620498589733498812721284234660026186606125899960307822032721952500035766676017832421216849686657008239709211841720619614383904339532942501147103771049148397533352881093902490628874707161603236660072507115428334289310390681161148844379815614684630744488384071598009043677147387418116879037261589226673990336868418080378863801826622752163548455064867629037290589289486243600986313715329208954686733042640832189473994533296614987580000036632404742941488048320203582389856088656397370580213664020114310827156182718675182843664819183726904647889310191978836914618496001531698693114388080378616951424399642587669675373531111256863831400171627260926945439646033142913994786856721630719789372318954604706430021398948311497650062397456322976656708542247095879493235524767010278161335577655843011148190019634081020118563150610870059343593422067798196414862867975722315072004163000196330238378216645855555029070966165762307760352827804332295985052540340227817076919689303352297660763817396205512827003664591793898922878704202897186071892054854460386725100125344405782619636835306040636090608721870973586130986389069850768780818731380261533371478162149889717209289072728124218730825443381864230080332938580875828355901498558437195832896961833709032936310498053680172057885066463012640542040178557671458514222496169557901736894825332481875506730813013720171402983456814849599052312649538914859340756567896535926888940606682752522022810398552370567284755282094243264884517993743290134887614474831717093453544790170296937823950984168072589885370461450294688660961975932289564556427031225390329310008453311037981945065172380561820717740969177680580197984776355223736328407105478594315401281408016406350515818613086522361507176339315867538378100955692807682390166636214756034887031279507179610517860808615821415088675775121308103298373453266447889261918828695000576832854049982027488125982650095751838043078321935382893903959593684791877556536864202931493364982756666042080687378807271824816698722328905937510550561386392123799703159643949099004779812627548822598301743562965938172686729488507098168250147593754262645168086772647076184816382185393830519108992505431250115981426622844010953398236797904581861686648677972554872961358308104016687828808967760324001413366658584245995064761990143919798646119310047458742381879621618746312027917898680763998227368846381803034839211043446312169341687966320656976296244984604883260484447371199488276084632848323482897016776601312479027440670970597470391275933220081471283664014155504686008865051622627607319501971090239421309371515204963913374685826381097278407701331716166423405719284255845155881804392380519306359123522065852499298643467838550566907504336223673548482579725604731317113133463144787080294517884864937929120230752055675497065865600159604066224134219815527077633999813149727819760358503014546729845745533282899465695760191286642067468557877394565188782565465855770535691024807043957875417406344187093935245481860340696197097801353340245917467795602107903172683686457319719772732913624892427343202197378809981024525460548594815673117303858381982006737363535760518527811304122345689028852366236321886107482862513590512618458330056253429616982689649178385035397306900225870550750303891933113518912419649329566730312369154380916196418784792662768870938951872161755790639222432238789803386218845498936999035204814079948501677827944369173417214575445060522325497784522306926291225034833561008398698050453204566475478188949133232020198438245207714455608367310030701058516754943594051387577329931618966456889822619060199438086528849980619532085392395597182279881900458215805052954184406404451884632604580795388192415605965075576581867154861590481431496635665500478008243969275569303256550855394427184578586965938409492226990247940578724937538204692506583346645158540452074356602220223816056735737455047270690019474203517980712397277699169536561596880143573198158887347383900921082379240083408217381037100009191156112748155025781656532542428389244172850293407772241934175457570311724507360886937173185347703978209953940943323101724286745821598650749721734954750610529213166422995939145875134754600877097075931037622062557029716912036990869873726457251768208986152470645000307426338703387955163559387828767111777631340756700944763800672908202693637251847123855653595721313858024214631313133300676139428725458693218723792743282060286204228059574794672451326197505911645317054948962788164687962885742742628913330978437018484764261668975109009676456104161586708995218934386183378949224891108240352699848960740869899879789259299250225214837647286105126578582271172117701101624888641809002983377710917479494512508274412445091977215296549983978630011109052248450724651044530190813350474524730617292098194201986104118890372141674405639076752156576476593106013822316978838934899950223238766747991682378788998455244640655009293759325851472425132925314333807909548471690707537284344527211976791296892814966348195849444103071322234649369675605243657693108526567539924473001296905702899692068782295864540894777049126396504910928814405945166162168164607960878910709057513670641193739337548154381447982916390814289307990513513949045951253264283243921776450651967839829093536017081641232116320246356778258293479134559476298868716930716052281455887905900124013279570922719812934127111123458771664253342674489155846810840492096599597931818832172661448413873504296206286428469290900002911429225998576084641672562569696059999720527816313911229933249752007500641456670926790937323913615368583922311178702415260565947618259245122209841459320699206916227433175442522221070832468331511318395034875285610502163314391891934643425771423878411241301291165979423720755380619206681962534297230896509207760436052069391022884066822443747850230267419203348961690251223705037821095527336221001681853858989578272720111225806202585335461090163057033296930200673223847904228774767328480642990068167719936823695330104197080014759278025118584650901500239641629698474121780320748836020015008617758142295805477628246462579242390192405961817192667428876361815478011813548462503131710335908357963146179996484929668077542785204346402420883631256102258661099486244962654035802773064701357024699211969329267469852269748493970126898249576212635717682081070548149505667192024775284429980707532732774465707282891665807609991864646057091084052834389795242196655410200419502765861380584130566913847509787984591791953470790724359071817828555291712021154767791866400990550296983997458801216124743082312895803383845149997086838431107965170750563518161336458225422241092365731025653116204135441208018998686816235426278563015381987239835792088579412413782081003179810035133494712502270240383874706233937937416450904089107291325254243874009878266717578246022302516361720536655969247432668837796499050907366037296027013551303947985863597144957277341186195244128695781837932686522146783109123476731350521976133729803860558652683042078332977044597568326795024287671892858342036093232495889550836515439627343351674700207624478250482737970964874290848316805902581022163704483662507642267089553237351413787079194503079884751464123990814421283892779273950160729779501921249078736143104505474551811431453832224381226677326561471946237280418758936349644468203181582380667130186349763602695649867507709060125267794782103088518574400032022453086801195833885598306137802018693560722309992139838412679353039050711851573967031035530465552130436487658271013117407083739497865553048345256904784071512893106806845568003864428440323425357119245439505507693145325275686643538616132477469786646398210648725095317816961707420814005725405999033380289411012398622233357626055416383620155804618727427234756041384158354087816220036299931001081148505529252503981412288363267641657700083801044031817509358700230240457065924481852036203768049169193228911425934258537293932320057894567795638674232289376644803996076119468954983427934311880912262456359337972645147611585554602135684514653474407524763335567302657959176710679171240429299203873509578700302171235191932716666017765625090591990775847567006662116871194252228503569805786795163875619737602451465996559470264983391558940947014331543297826572868632833037755623019096622487674291590103456736477801173509442718452601609702893909277904429560485758207890823151388396941244479171442206360307299553090389874727174098828063014427612187932040116139657183077935101008799165905789555902310674781178240018669240526044492720510621218538698662845186582422579068806362214067619918308205964325366913028703307052434070168359033159027982976450745694304125806444694316620224059557141132898124169116087814994769420969213088351588076892424417765262357795071296904296108870893061601136930964138596456673301157177491998980736101821678656237763757495722701778461613670114013391371140289038411606140592959650600976620967727683271450150479902353259985584045352848841659188582849063850242220441421686817538743072764270608089621266098699164222024375363445915792677247649597001472003529840855192156992256888656355050272264949253801419007012062078007588941990548488906705228493050706217922531167557767934722646650794109846661135000057067025294920995460531101256573514911872648794677850035396360704942631663127288528369874785005275257061385945603707423275328247873077627240354821799761774803049315408197631124136899763808957745025837424935772930148639138425114791815917576192032303782486789932998035211310167591838854037475087902472587389927944434609873443200598979118912133715839139400289860904567626300299934349001069310409512489331044726378532397892026406762720348290025055948571380884505968597591604359493574790071587146931335318568931295774130903900504225404817760020925387952936006794145974061477482677460757689275068869155514464352230565771121079927649580231587579926089965037973967040592368202737992129999931023205749302342555419316141452152272127358317902412817143874982674991272169562463492946953589230724751506317735873200223732229185020333814172712030714789712271387438673654239435071045561721794152569598600098414969532360632582210805330101735717031143421578600943646947970778324369506273248171195804784359326218688773711772474834943662758821098084280732080005194574214640996866258268974755160093754762192340687127807079692092985721921869206824579855506775356185128322831487710339417107550398937730151530252071858476690862149888414345283422599187263476536916697446507215878552648752607979314209169975527057091522052800707963672288610823842358137020874198104257606872616230204180934966290440721391300473973242156224330184086126607991802386367361899173072451336409675125229654646618681555076618988830102435056202184123277838770850872156630813191205573847162583340752443103095000567233899996473053175214525767247383599078646695162020272912168869828200748449406637297266445065651030465379752710200680481860994171911703989675323863840556088298219895675260688433827305891187484828177003297697824116582604584347173572829040741552391901820050231177685320676365060791764014979393219180057530586987749785866889474914274482787425083138437531212886623360468150113137590114322974948829917775109985353458423084504255706928052912796627502457364525323426891849762352906971505490523190277938516951850399411727355466961214611151039429150178964889001519004377084142856047849467219891684159074950021102077549133386902828756301394329795187303544940357634473843113690444561430000205257648372193485371462770707282295378758766273554078780713183584857467807396533138656326878230194773973572816944028191199154416199792387012795980838699981598242917239140188722035563538417305028621361931817268909784104781332168102614732574020056249981694012214597956196987835100172631543123944715923358654704437654958526364599815287322419725066154897148269303513859058185099814101706198959121818387644927281708602571168730300283621348937744740052381053640046960843566808714323916157357125973373626122996453097876092212514319568541241375668423903709534219500758081530508403039796593184421775828004727187853573433414109917964825472210979907259114033237458676451349485384882250840793771858836485940356840746859684756283627026827716302347583763153050018391115804200011744229444059549405993402533866128681139348741379036265669403748563996399113163784972376963271156331286556329613240800072484592722126525284629988649896070213511469675657792821646013708522519139162956041042540691380039853086308790727080017841327453772202544409250493457052468736583909213476718263583100772622601080547796099130913980360206037473049019357909865055855576055989432364456580019434061711689961065655086582336901611731736870794853118674083254673880026961547769561991399436574845100836505723076728317777418692688023714146904006297199714300177489190774666055953271058964681712510899615192816970248378271103770334304485090716268596624377535032430553401627889262102549370618145608567401772930282724607179709042468017044352262067647213796418535817930606352578720354230477213493926057049629005601747413041002804177575454100964936916343606590919801009353903135552310949086764495038826917304146744621369843768359709001439301232980549611342488915164021617208272037183749068499814267589731620377239330649382625068935633045029781970398532311909025623234258050230051611762464486730026993180451297405137329251921926814747395951371440874582966609032438239957658418505788077396354562811387795168050303358306436977170376630569207385986376217189650599759490084913252596730394801234211095015291394935493104388588004228254576588005246664641258608321530798097516279672284221147394764357317449734588515094010303206705170397458391472652549487591961731057347637606313513046486045333014428437973041677437419893828187337733810535770399241575563846430021660607015922979872158608295174353916483948462708060270201113226399632720593373418944438490671298138920887176986239780646512292652020347251969601576185545637929367109725882074336313149573675989231047538763037011082551006596268893185604996544101241679451040254888719410850367966893149828691016581153176155087173759998963172432448773226782346167672753734835830455585522344004159538393839014302329946438108467562541698336331164817836039822970958087164840775968296106900508983536264120939020857477970972861123690714333127885005271513093710500034097916081971718957228666393601867875025031217869490905375326266157476283071042848894055749350303509462406146766739077043518464782705678537802572506736492427416245226381676723989530912598240838419077563428631868608462291437518644229357014059793470342820704425483728974266593319930750709017329277138767818255489108346291391047633585527421002269752850785681638268404091895978977159684183327053597686385447535888293579023243060555664485841077423777205432368169312281125527264130060228373501780496295157122384339055515850802364576768530406176771818493076945991935876352356227443215651749961008209424985256454476432667734204430460361529613396670898303387147471185124113147737657877714828058499404781884537889613047985929638327451475876252662328077606221441642540101434431071660492066290926905021853691235971788005184294792600092708722475293086221943601019006137680997818438974836561068244324191204648387701925201989418699169368083608922634257124167895186340223470398374950911323791193444881283268810048253835978044906836348993573733785646758783310742667333897817949095840062879684347031234627335100702871832780693665982431770366093979042373540638814933860503274340856104503778053465830766922306049075955533678809734702473308194351871629005421645591805149060988157055043171020131590568049127053664136116224180098944928060539980651160257523032025166644634489754287695668390630053093771953789626964941527535315104369420545084394233524286386423540626463044906244808388617043879528653015266212196173002338538697038006040562949526325006312028364662878265824846902432185338910279259363514581954928946889235582309290113287747944545018379441890890882775838072882326248814929732216362131650272774165647067032279179620243504870240948433790805114460904765022953373574121820691735148778402114299294419913003016771951928009373361688341174262595317671007260206835163625176112405168189418622739598287607076410466687673357921364431695491859391876143976244396857763635030875581548537728728265696141747984655715604750844462862678908184905951659787194653635007677287146170143661120616952050418314231013604969084024470338665253738229761852318894600700769160950099437002899558774859540369824802924946960323973861310668011801353031712565740130021442427843789794545324809515873197045807249389218125455170282613252205959371925741986441256668915637342133497717862012281266254119821949036722088545964142060104223349312350197771419109294348548224350966527201525775212825312365438627707178006925309875626032931424787634553296385273931474538428853421812443332655725352693929605357921739395614996909396666029280658554612898398299865318319664641221729568504504332457467506527567695237339760918690225850499864627155620173176063958092576823171726028742483586534171991624613316108320487657277597120312091839225660553493684923696081145715641983508290239820294142272971376251941563527714825983864573154929559384124329456741783984833092457545980540094751317265153387868384305535116936316522077715245870738299509806919316575922780810766787692155439404658177516123396605040544086481685966634758070930990662692321575922059674470949064422739802397017428291078963208678163739792583451115270807455430001227119523927857213648680221711295377730008072883283723928449584824594202327733583984804597102799989949424586592992128924262150405048395265644582351192124626233923823289465492637480958574573719789302527528343065957432400206136709441300554717746696308010926937047503466583640058761700624460731917069137128424302479238508060783332702510788439257446092402623435821752940296062816003890982570128059975422000154107184098708850683617782559648946544332698071329649192991276761965850548703885444621968986645510973099890703774585950827688028165463972277616841029361432815150114519292860311456262403806895452093903616356306238973926609883869971295483566977154060623708091881696272017947521251214466529780833357179710305932897758064765240332342820586921973058492512943991083914333919286754674906009843377374668904411955200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
69000! 122046281052165493489794602162859078299346612932593743677191239988632110669482180657615924266435246765078686720208551401679581811165640120728633632841593764497468397502741338127357481163333458877351484532541838065297832009974806649934224485092798357918699102891883898993862340545570546315200036324412832478106378642651675954954955515638086491297349323698174580333011527088251501054866429744608665233601072089891771399733227681282690127890411148437103276829255173172446419442807136980987855844629131328784390349850634950362944439156716401376920092638166536137859546888840669821429902365705640174941334721531949101490594388246471544910331688546709260412068660655683707807097398815752736746105817254289609002516175817559020613181760257258919539506684230071324949220244510500268380083551928337063574689554282510746692594069312281917398991949375342914550067555413212386433256388691206413860703617505858004328403067394878580496036552558927651828551041916978243019394886787373002881696364890118613041002506852780297155348702395910709544233440410612952839740644003441735786178684692724580371686702370269347228366902540654959233823375375159646252504707149022803919493135879821775283738898604542303150849977044445866816920988175763391033417249639409750830708333034939182204385118413995194668273495415776724034061970331928755261501764297393422156066470268992823219296180574002650761115099585532481334609984056630964601643961172314130730143073588769388428373247830673151143407583521314109338928315222966459540544304254412883109839482686137278692834107288484656911566270117107372928747878062586338016587451576453429420682204511479072363040461557552212160728901711785238133016025881167094414381679615178810870568168808100093710211854525032612940664210890182392475498981435251657503341802402007154023606548781416889161116333782750059498581727589077821341154262020529740556367546872153701300755674275409059660693380927661990040462490869655011572576798056906017171733682315030214388201711580614528672210816506354414992087540978363057795261101261548994696621995082197256626345944789710009794846650441854132839270470105561537462608440438976075567742091165304058553519979803287304154178857577775781896565989455880039778543951631463096801919827056450771706211697727959904006344256090171009185432183371189488574269479929438816362848376897336171096877595455587470921147853994007836325905470444642950322514543134597949077115801394044436271380259545640520163536620139200638270780855443960931600516081972791257798161115336154718883260929493382410038285655411127349500746815847439916086565398683012335738304783544257504574175170918531630583501530750491321835084249442414088584725603507401303240340407104762364843629154998627501610268573346747688887015591875644669633274395865546133947680345349472409673297760616762770105159650277801370468867658548818463984862081542462488048067677463669447505595333414587034713340753754296104506582224942292388837553305028587192132369717774770124056053801863467106790885112830967196849418373820597482372295347349898167116094946270436170159466302447039693472076592741001104201461338628123444832470636854465556927081737039568540363347320720150043920043341382503151513533704017322447439468148078721012563483315864671517853110054562190348693473335783593494975880727389148970734677766815860688948592807145828499466183238532271253029835334537574717268550052037558196562757902983917232149200985696931376424429071185171734628990389357800038994872276602355214292323051899307356341938366312231391990474565989757130800772782329929466440364929847628401457458586312817405816151609741764386025683865232326608480924364287106791396260349346771379630948130603037398450823293928137175991972337762728345621975503094188984520819241146966156148827006052566070505830142838018538225759607756796028424408806461119221845163850847812220019257182002831187767547024099414121332465107946731720730096041503447666253860600490254906040896830990201578481348417884221710536683579902849217986840574352423878804986680203717892257894337536407111480812726798834173602692570383604107578790437256128543770324404459873987537516331026322056197780333890189054629097275030607805949996922404340792397039770370640437111034569009527605546202554650019424359491735977942714482179958577463759622971195788855434821736004334517602077478085135702668125187664105339774888312504836602189161102877865951086340739619864870376849199906489234752779745011626997028014758250232957187099248558836034486417495405674996647140208348335997579283184223381997094113979348193438097790480747387092800466529505111138212553863852878673259239861773586802654433482726149468608630543679028011079008290498381454757130156939480626036941464432373556075471930905353824579497849716942801758316897018706262671421169941431061001004401724384350327480115614639020919709842856640333160678192336642447723687479378809329706503997837784751576122618280310021288596619668084875909597877932596720980207029352609952886698067117537284327155611343061072717429339007578402958776125943444368017642550517602555787401597300255083401665972438619609161846514741915732373843987724989005697204990502678576294802625233494535631549279081794714319191864751725671535414904530900818417881031102583051559758000445211648532455526495642073099246334821578325266747336969975616937254133794640033791378481818775301590255094717249852171946793151263661091434508220852349710681292988828033596334977504255674346908620063956680994212926788415686752983424758929194885701370140951126180670385763856466601446622252059039093236984112945163913373222417172558905708186515964408616344116227711412609541994836016154105735150685327623866348021477715406701406160365834210918485372394150307610607588911342860299709919332015489767898212477998912992659609342595755208492362476335402515246237606804650172844105601991479403301022132310609564375678310978187059952696210557490150749943555502095548726163643234296087622992826427680535604698108487069710823479887470682575589265033199660778619396544718308137760276065590213564741481969997321143178730403267685597580413607322763015488549349489899209178536153017708614064496148478378679389177092325929671986172862014140052819067541377684232761031140750286259311893884037856939499581226991775783845324518992415971897247396257977502855160800193101477433310628043016495723495340054776875136148435400911276833015310933296982692300067721456132142437521759037677352780616224207438815073878247271365317039163396604017603487209142439524426524322975172968735867796730765352663949765405309859517234793619320422832344975683812380739018694690333784683058400146952047387962547631627194630566760070005830871012198002258699407732584150007149825953666550459061694272833654160130897732559133450822689959555958901280921918253538147296121402835787671791713119363647857300222683203538284517277537221535528499729975831269314607290148353909525277595659073812865998542210294569887333813320299467357774425808247101141139950878608143454497936989947856710112383105294766351407773040469727106759142807222280858055942257816422359215565968755365425545588373854902483293421652696634903883799397258090972649039863794737226064715664733330506244233524999543719198187202996761670578872179377482751889676914985707572115729961189284727400018205565064976985310518770843796690930888673367643842357927958459746120544051373333506380548305903308674406514663735013243844781650656498911242120246193247582944602198542299341885924949346484477506338147404691248183872455690008594953391347219428883962317472604623664309584846836585809270128317205166574755013826114616184770426465573164296583731389191884773241727957024974118908184140513944585339038040373139262766548523958823458970685889982343334073247311811134301273825052111191839365468616062600236582779464795258146802727896308859351129114163136080427346456969894248004576376586962235569208848765292931276233481073112447663369103442776581874943512762539373789169660363151938764657247862339863962137707651901545862881532629392342661147362015805078811069407693243939407283453126353410800737727602815552280044591225424930207908727721965624807347508440450187365045155846942592509500131087433293495391614691703991905478764277045078649660039648666894772196451768679682157908916733618068761396755721923902080673192292590750764708043376629641681744188765769379067287242058414799740259515539597867974725252707246942109235205166016708802215819706564797892297453412537636524996181448613385713036723579667054481398277411292593402354320141744577613329988783019786534769214151607497665368828496012539091606161487127076749505483172420601024402891771416429330022901911151023987661907176194891867002578835888821913499419759503603955858967724719073762678703956211126022548426619113113896996151859700254663623605933503548256272005691988521214777242183846639015515089561042200914207842903439226346420173210984498165264529332611077363106662685854753838434984633888972634425647501489504941000780889218804391564738615932512503512056061538718860663461739580381692006364430002718941239942595394112673097753449113321774742551545015402325232161159261253371953504805389767565253334139221827542583912481348817137389534174795959432045230305059016297538724259168430625640171168318171190908852427973458528794872821532544812403958977279485765953669609575297697425982594384812908156571474885695407272227862155428146686152516415213575325698363430295976373590515347353603607519640293167945606967739909781529837763441581536801001302267969771650625814168764255316795557351223641301712353169180574008583831728786760165388093142337424687510056701811172646484215400280194541050519445848501480038043189406908526399969006890360709159308075664123404379620648929635918035385536805307290296209654273831357306799727223159933083654589402661267828713793129140542245782120052245608682942144968307562492368294158075346868682480126796735248403120730694140011708833680777220767331948166448379928130038296389671800949923919675979825038592488765080494272431585213144532584680202025920193249772741615528939788210836795178820767576388711484293033624349313111232645305881981583781215336171784661081579079647962313878018567243271971158454517949097138702450107382877554116239191968592592217267539088637007420657542965650826163058130398857827800217428900927452626580048800233360825930371251518159463083439570840067783956289613660396646930167295624637606162784609371342806277516089554705800520265892500127185593074874697247383242762789893030509733461384492606863961288750430554522492973499161272435620202868095675200071865238322354098166729088642318494131138885678376410270140670407459322442697442162959042706328370047205752122571201059419558009062122937928533600091415804486534460730407278752820091134551780472112053398872335379137320363446848675137677143268352459403900052302215788822161980610558831511554138886945707321615934433702296392553459263345357294867315241514408033271520942776513722541697336648260565635447376489799309606289447168483178918804397981760170853736726784635676275689157956413921683462945483909283471322406287111561058746749730504281236185317756599877922623339834447411128839565414726672101976393548865011537371050706841035622103492080486103984892569213166414479215473258707893874110798348968644024173526274477955279986507190828344485028096100654663698618604224167774469363878749971149226587464005571367094414942466317127590628656692733745184062389677567822675258174135839943916515275130254947598889209977578437484078861631987140135028458273603696067470432506268724288491644849539455894713862319930895809742238754141409444317828379380247125604309916108201616652910502996206310099717306600900234478812252259078796887999744539192931544540631300483841516089123710941559751434921924279036788622613656020409026057690983310045903266628298134629866980369354314369516040981373079033462885370555134859346998078648052336173264483283112384489486673739413522071118497370777312674769375058931375583841676443492297654856845200860811973200749175000829570125134081442715761120898913043755602916688908665559358714234166655892988341564244143519290958442109948596123187951824723937994858408197731830342393716353639427398136168601859031263975140736052785496160283171694992997683769311921277940395708311548936678805886312255396774257803052114276735037189858866256494129185136888466624983746864795745013090160695575139157234628333776995853729814609326902573236207794036694682436760671211934610732099282896859427790120310094220340726704398001138413962413020537911101074098797244968731187103317985640260869279648332635860822915829569780438731114728279085181735789589044654821817498982096676035094109390501078773398654541446510849193034367005282387162784745401143503156236000666647594360321601107061453044071122778935105600999379100462532718024144007822155073645108314514896049854806527158262979800596917155095452481730715134320769369971507577952091439806353923504268302412655902663564541149730821197415561777264911377663170591130591117270198133571251631897836953450443713666127291233418723564378122932885871485951387685028443113654856290707105129247163531545155229421004736565824289605109417565459619273476872114089540414442073861167180286680429261005805424202584719610894450100033989941619434576734505533858540167080867053566810715570610103714421865156727422182633010302457486514512636832716730922780658895465545120956016475828932028381396426617929486722978513678715159827671911212834847466359400174906958637527545871056146530239305905388516746502361704933968253286565545882353185991430005423133600775043421502417625162225380351018766712687521271273294863396718218105482105626579466494658196204737726821049631998543418653127049159030130907469803056509765148799376346751296437208152254248389040886247409298804394831876825793665087223986833000595177408273896616629570448238632168876698328676986620727547115801315060579355173782385312988293872620104981295775036158122313247546029790965714484257687040103189134192149829869666175324313297306255517582104200565601894654861152745555165117513751590594203760940566024419777541479732601732195538156093900495395951012947659605404032610252913453091855729099331512773168553258646537969796759213611238122076113019039828053143525120482808659778544952790940891265003361488966785836430582700508522310927896420983509154055820808585487396235795414923918086185919724763061408758018020724722047572280072807294388604908119999409311022273533955979236842193964769655448878014262573025298350680396946126315555246157336329067648081210883763786438663126223913985133379042917149867254334998681049728670244028893733179137441285366397657807723153594139621919001684334450656160383526295772562590932345468234895847027989974427197285102270896313248161833769990542084191086712002108922697017985719840422962510877364116787155907561214943321873767102985707997480046890338936544752923924299702413272125654703541144218076744491047050716590270302596637681385022641631925600843903097102051459310686668313212971228696687136643625654415701106830403489029044925108588788028080726145127947289775713094186543139383972249478112495094640683897991986050509741368048428645513648168989378201512983109420388187113814095500056535117832428327311856779422437332233612714426171593446282608460013599306244970716801575628588712280842374048799481157813271372113066123240388891394479004669899063429890276148587397118630548704422693452242875935348072117053153590633898900479035154544173128165524033550068702908968368398452890608560226610659488469136560268933627428438821008308699144799637218817527452489150425439841828683280168673918384350238190170838786485150781517636379771113993856879522238642765822902398935824379710448020481209748078009763727889310298011150119138880427884866257691956329321197570263809535359565669402833851365840797838656821064272143856888764702092774526072896614095884538080094566621249112323560616887967058800234310673981685446195095816713794127617650051180242349017981639050785301723190073583090733270223109770281756783302059260707301052783614834619637954901556468731281569455881086874829011085052261682151095692675979930520943236003159905819906745147353707608420302560525759760202861494872420243630320270696406898083130607151142909470648747104978138543820626434083190913315517868851250260739291086045548122659575340520199881081400344992125363871444945129427017731390279791422869707901961402090214770189909487959501300839164447658571318999941789193220235964314631092363023694481079442653461768675500800437292669828706992207114835780720303040030167272598690412839930720135687784303678482198970944317273264658841993042427817916950150779249260749904478127880406610347947836307935968581695076794109682647175404506142561262876719944074176262893199456129715539122184752444697738619546133190169133858579033358699767589364198165232739863223614080446688500482950990857967900503400934124976409977578945346875967125473273105442008760965229466353354946789335718556938205176406497697449779141682300232015065903938831171962372639920597737106607524185198936540746851308849481480798861382168670933588803863224232491401296276439786159373909068771347683045005533809500094244976819252023021099911642454347369902259351125817188636899383453677720751814569466500266200316307977497739255158858241160886008487642249012793753415368366579686361845748610046302612626399817659442670164992264123850522425268748658412908381003792124653721817014358769501722416527608338654050991662067881021562972544046245953105832881177676859335130510217919343085976184844257110846121842295542209936102934646346200775899044072219963444430383299190102246228542430115112558662724604030419953738605611850243910344387611092238302176517064357681478639202718124377721286056537763200291580039696485991652121795098931389224244964683144017368499776902542393060889373555469686351098932488176146216341408379080854268432972758289783675531671241907516222060283978686645115295004748076746325336087232091910972457334873004955291099528534706429116856580463505878914659716230454719578004480365960590918246534331353466092306182928900521936921886698332557429391639801942978147033834168757725116903195152622892709074352219927915777540124822232885249842307355800533989771423852036235414715713277908253596609432100039791659709458892227823798323943403460064080839947025765264103923268561636293460678439131711418293938058451238474908551460495039394132832511736296289614169210929000476640873474939544891451992289720373817805496396444582572921790357063176991728720059429310639061173758417039273849676748338770470085573897142447351915898821007756965811002867675040967289087985469483018469834424907824172511156392098823175015354333313131344299507196305501439679114170927290554009776284086861231282968849022187031679455377063145396251884205342709072662466941385023816783150457663131875658797379316739396616373761888846255360850188817662069755736020073908476292219017287511707729992168346450384299672507485695506448662522781872461098073454954888964082794525680454318384227640034616396839452545932675536520687540732878122053826672986643867309166873352138141165316244396126701847447294143314723218282568484839254022302375162917632565176858320902122913563207899340804502445179553278009347608309000621279419882022324419423695750908439847452239872247648222369995729644527915298649835653516575488592929332550107058710046928691808044364004164623141770087607860932694573935142720295180686575933985886844090520353205798991457207142328361348845312922588246265289543681117753576913728321386890867230670572934080313776616649300446214992065427353341276631410162939303112953372054321942909585507135724557389757810892373195046472422914952684886420530576799876904232959278686848877292856853909287190140704850010712503400964812993993158508923410612981948526296401029265106603691597267246152949645428242116243641825813023807153267626511628851691546742510960550936868584434852779906635316365937036708494652966019464170367905810373989497312290645327236831267689803261961447250942082186431258277995797434285160484394568987970628515251295537840053589925119839754097434632840286330495775371384786382029846354696933491357935700176086175446798260605325751158340573034131990828042390121807818523923791255996239213802451397175942679906486628606254038348337751918218357126841580005251862128905164013505402273041278122582051715320324230840807797886105081066999186963054180098867344067645446103871811448961672107784983340454330166802396431028798157384402220316338463630954218410046720028497689956827210114938418089631633475266263617875328259825729111594854722310631562419022030443807483820635698080437936689059630911227585275101774537775363651478184165170111491670432964682627470950538590455038444447718234073153441681680362533587045905830091851837423841174665554317982407144259933432957906701571223258940321416768124305207079030306059564408319626682078998252071936448296827005472656200378023123785095373205061501819440798549986172226379406281934231341705803393595377584846381517669826456544038335989233167390273247358082272331459371679427014727894264278854058929375093373690777968277707883731990049476902120505192348447479531792371496569417704307231378730923550151916864271851192748728939843828644682952141103274830525317213150256947786886403237413129692661189894082417287928993225507049441917013817675402545380169265191524562679866705144780370519218303987808288770861611387563209984198436098293621034642307328677950701110177405135133777022114179303068664036274314700951708004230278426628302872764269868370955155963386818734805050793578028835656675698604458556546630193314497085903712822675796737671892204940603817591562752333445989836060778711019079401050388358763734849706087951429581421169582442354161500162446455576191108810511400917721797310307916492163117783108825285371920341008007422415618172853483223936581576318493860476242317099950447320696792192628953285591693513697088734363747142004318462216226423667787051477324905730585857254305722984742607961186990871287621214980734501737706084749797298683823411840298952707173874021918862501054287947258277983832260107234983436213134889345775692001715343685307306569425478372349329443347936756913024448818976599953750563928502949995028745898499854480846653267985025930508202716648796736409389868843767826069341723667401180359057323161806428305712625808568045299093380985988798687851932980057530580123504813581910862932882365395523801561961568384481213200990200082836800915973031661264286150039744653798798535372275828620278277928965690547271636380803249680525834298413620907797919131937644951662368621584911441261615120470674087927541664821369359886296095782326747216265812991736547260166776557583592309034106462112493670081775764782057313799580067648850203330882607647135117133023898181267098870358386230356872468040706222998833552028393837947494434923701188889637596653462241009205136081266550168134389013792585441394662059739906262628695767327379104999860986193213748350849238179399843887897017913846225815438222368405084297127553313695822692947728878455611522744167877403437284838023106034467960147929422805643894364049805360809417652159768331691673379833161335031433532485669076198172927790777822014188948937383972456868109390945151497566839011746099984865610892314236009244646700666911393582498902267026497982291637926405676378609562348131805952264533174694732927268111033308385462391326218479590145933620311083264493546615492065614179998322160357203262557300930882406956118881806307280527334853771399680760088919635640880137215714568770430028886819419523521949433527010318823398305115315250841942457351566821233835106863301608260155534422576994804476860208917833688152384753265436543096752484835726486586754483126482571956140629207812283815505380930224865161888603349579377169805454400839420923925003752989072378778567959270282651177342649497978736811632958654379646231502375743650106373904324019410266177387477344070200343934949985499395726675611266580698963246691196426850235588895552352850355862339359160454960245740659010578864986744503550692778218608046091702656039390772707038617753721206662262516538568164360630419521417930211439747027031375635227369194375947554593863504928934366871187326022070772299913532776148313593944107542508452172294055815332998156142261902420861042156909987334208588017380882943217906632576965336255687786135118139336004875683966410991910609927269706298581905379896080775692507072294756372998643429171046225127838853081947755386155724539932162311729677590764076810005980985683823638758473226515077807199615974270364743926637789868566461835457640068737764390918910342495991934944637529522522809564924397089375492781719951896044348445437378989919256391418947974808082602868488317610356761451681178330923249546451477284605821508433539599948146542922052552412965603973959017474920961202887093104490859609925132514983565328248988638646471984487316770539185117983551987619748406173628305799686913592396609955146186665402712420154548727428489637524049558701289901696131996824032567773853605560701971897836657105755819870845330477098524287165637146849398792245662825024329369800943625635228739644754882358072250853503244568933070372002902017521229942391306897157405279342588992282908046120828101403071674896011515639355667020370130028813650324056264445955785979436870099679744106752316342987927689917506882713309860593125629928917213595274062360054884088899328274344687653607832612338523769589810393611044914184666553935203971028877018194887198479965067347274518287016307503234708978231486328078387111321414683775963959788591753738670089092819202763515278595989627572021681012510124606229602553934346225058771721189736963485484114545701139620446062679978699272404658852225588816091178464774837012372258371980079709484979386132692823519676635539982001991683445584574522028798834420529490599610477160087463064786553664875077468383451794646278301425182969720959289539864678177597601064563093236997514515928101496193248130739662429808768386114326138745725357405250789638215224166963316755048480123648730661185357293767984618530205997746536467766690189826374640184155975771226730364619459389035830763829960382050797193750085217761517178387555961563196472862918417847881424550286880595482203158525289739968213600334078055738626044817200339102218280801218946306412591967323072891572272687493226283928182873406456292322189482283625908359056115772161921088492321965420230220894345923742646299061355624164976438651066690985037846864786739244402452214711156009201616407839650394426052962483271656102514084687280380352570173512772679429525563069379089890767367024832614292181159689322498695340338261929033619833831990714433517506197000012943896599040557058050802585582153227532688836565604201991493816722558758263399251023332047877163418254146661113302856076681465332239291519488047435846476415355406682597774461744107799142914519146918486727236086919792568536156170623401713282685132293203891904977788824241690395649973760277475681970944246862994058679788992293689807344902379418402903182109628146585051245042447340671910432618783508225832180426928426228924346561896311976750113280016577763367127440743679322199816699353773666722226055187531868165456306380089687753627316509384298101764614951471180319610440439944465972575675447634751268161633821921158440259137852957317865103619488752377777577619805189498546084352335293202850998146225251779223227217377207544766380392787819931988658385577258004932417357815067041671784359501098981045244202617364818493929500719005654188884827155836893708374550463869100681016748691149539088400033630314394953873006387565225561177845806605762262057558188146968112265467751047958363702398859724688073961309543952967928650762253585576644054704784082816472443417268079620400000146764417267197819348261123607551131199743467968545652142711364281487422458051360326200847897182018481468093480929675878569647064911830556977677404785103128747668178475540634160745282619227046190793905769615171964988690255030644371161463123178038734360382424633570627921045697933429425393989907437668889141175882764969500321915757020974454997124720262201359665761149244337031483283231411638108216148691066871029681290193846021148715361917985736710844457267522545952910260355746185528214734882513628723341783859318545787744444289217603340265328154538762688298698212683944038018275026621482161510526732379505084732865514221992423219514944871543582763783478090665129061038371910300806490054118357077330276249930032321915464509302525637653044335980200535019332225276839599879354552635916528265554611254087576001367096548034136463258209241918486934368342389435244323105294625592027701333892969748286070201808179382792280200626977686487044067588775922767351641435519652263435084231245758232874505675915839425306116434580264114260741813007020494801292699082652447694281853017157663752340687411957816963260295463958663729152671074426563084605517219926981871045334794477780113677489694156195484572242412202284443691352338266623380009255741924156607232972882635006768121451220434236198121806942834746535913674788348551016266541800620388678234097043386096973422210586962520001199742460007052424741279547243654742210783825534645337102561652555966279222181700410120763121867346689261060322017109368086645321941807905690714325205685326005513429952020444139900019303501222786739981184929612884433328761652290211667776390027914280280031681999239586139647666661376647624468568487377376794421924820031608196134145143382215796213058473956505567858250642107154715265116608249529117337154405480824875653943034156331481005587696087993455155015721358835331174363722425111919592884015863514491643558987745964848902472977866053978878020022217659667531036399399038962138801562316916805504941193407607258335396907860028789439132332149112628398806453252593820047608948149643799641115809014323964936371409432779329839866243527240235897448910632072913429628063283253918160362581320429976661207615459827190974592628990776225035003112965662637283221927839858961737200226539560680507141995026894599344433502248203594271938110383941294957697833206372399293225496465758291189911820869128307694775385028177849404149008496973744532247648092556893288164807347079577620586840985615015849341402717284614882575226676684796756090733977708469433735390184924903041093254104770765871760806624614702197493043816971349538430553837955566431853373963183761765822962318737088631670179707077675003439886898110448215025690963246520823925929732642256921772457966294448849048749607240338184305292516819476732592914929575072024304370749350343704138951802154250138859816540822039720521733749605792759617459598524286459421813022701350153158697660598766021153549556469704339521976378992900931023707012943647958262325177082173127656298697853105322873824472641904501814014475188504618600800337739500735719795917125430957723703474065195740933878790253891588887407904780578543679507856596158285811950200886644661639141825682915125493459906933965248866346209924953521858747630551457082945540786055276577175577062661956262641867843223892191772353794898792256716897789248674576966514173336142297378282591522976901887225376926955468863167411273315489042742792160470380763447603156146169947015653838182365892782830585179556464907715965033790573220413915239462030509664410974376801869791211032649838352330969309165332210486808804396146337082569669717298842442250381056714448024934160526620630481440626459789893381059479115330467811176712205254082688894162239220466819887778859036701965664809334572706391091149672997806447252959142878362066616984956764781672398601161372240288810756672980490661968096182886315861952780274298375432505339906827669017980226171056055823319247405292045580225625192482787605050188823613727211056547524576506954886165156610366250697054512155093333482492637885751540360653006928764686399742672562288920121404382265843800495605041302405861647715389998875713521591882887991020402450453183321861579306210165300137432762010798276194250353564949590711900122937169403794888996373065095113862152436037141335465039980387665128504668063970227704708968504232048797556250435012520426448405178062415754053273676061841242222968526253439675906119339781057686344873482370997010907708209365757421489863856480648844704551461416517166733528629677688071931576610600757351287015849255257599681442271157081921234436313802837445817872080421955331763497475485273843769123609297660497271817317509897565903706635136046362897463308773634003664171053086520919822996922026905688521366906334124019036419841907421417833877639442147322508180674855101643998343191500609466037964646446558675472641050047313343383775338256195671181815079718723471155677332288532751695082765643530451492978965788697388569550212879192109069809580407454762477416908270022003584831086855785806217066847761184886819486666948668645741432732823733170783906101053925777387514709637228408639034018934983163144616859545668296061270651447660267118400771181016798689649384743997124307428689065672849268381541692735560988634451838422749919368170196458558294023669820231061107281691797885571887191323866211059238644098094890482380721823866499154666104003403421903736009348649207560407059364173103274221462904867663939243371799430238488677742706328828867912049812462365195448130145458801544730378922102945058912144453686369253852780539846100038717878775289637588669207697388955017672053682522887616053363395230883560879456681208606287091432155292832681989373694215739531043258048693555984865563099475723722505976675327030326428130284609418019281357777261072865013277705052591639724963448723488385917952800683812874070576357953934718342948856939408942785524662153022914853517233287857931642581714091464414512065661396197506710077976383365429327522146964070889080269924478636863582875629281996678839511625371133715307836826316045870302498304125653821095132790083919094339436239921588235509948184004952313902070917761271845927734851850106243994657256516633704791208339798763063094735274794242902925238990093628230787515670022180257440552843167730321820026775472818078757825493440335234698645457454573932457898181997194724944258794756773793848000224622798024390395206352961439190185365372121096344110740014399702088616216723823259952976248836857985476827706651653585603223608068495439864463418628399213357318241755413730232270405573607101384615938613069125019698760686178521971449371828468133696325476696244820616505890245332620567826506336070413640869043536907577295975126523645567099391316310771263099662778719066279014568714736431210550765823101732049211224509969396375978124265428115159585823389345290540759421379065321402129802197439898352619121540292845194969661519940786158354412840090190906416382536424237288187847142949742881320111007778245188159067203961723341833373762887973584439288595323419611328322092232709738687608531138685610730576730833683491917365679862663982726849191989590549947538858311466277007955246779827455401412499568200467502225668288020331998076441342418376713937153812934701279565442335010343299935094646788915692481022872171955407233302462748320730339261698636664438560100959725431990007835950988526760425826031382733109929465206284371687084499933937525568931648587058572862878933232971809473964900469287321581811973184011906482188158968313607334276430535290824634019074362333507495161251961499680953873260889176831177108378458586599678354178731484217639950143530175702337718618449162000230748775063275111955601456413362198288818366692563177348733643119568844600940621872872863010980091272084791699289698293572358906082546938548607276355475601819026582037658844097047342647293229395775575125601499412480669994786528375369523534618898994738984180136595749009653511235241800298688556448485653120776060720436598696748634842197604897007600459238377247473622203371855805189092786231325040351716771163358299204414222579901453349226893408194674375066215316848647687554511264527998405282236467878562212195995696157243589172729815484729406186741154067608815979304111669279112527327274908534645107419757760300481493982275446847361348817628479918000801169078149439754016874736981141301276988273963964968135337289137286021831708654455230971754934633596591309875646837254707950524470014208464049337812089894746270204089135052628758926273011197507461479025502919849817851644244294152704629271674905093176416739496711529376887145977497191401575927776009644011879311454891482263960166744046260491293965793837511577559779256365444136869235819570640093891735690235329236381292876627999366233726957852857611207928390051000839241596489036046353087217545443000441563382381223948749264667114058124859731386889328390602790703650515050027636151337501481239017232991172652765345376799460521543498128324621099561566298292666419634768776880276919255215600859716770801558233857957256659038694493623385036601184098303428847747529125158561890900801078282479965096859363966228979544116034234659160634165367565027169557412910262456079930609423354350883557601965488906472164045518054784516716271448938001695465839747362016541819621879317238570844003553385653483973820096146087266397823556694283193057686388118271423809296247766780234961069751042379402413703457135104120513073868532061113521747507245422252545964927946322104587106948637835881633659179213524001583214794400649690342858843010922725907239260271425040799015181622836607597884026750073500522932497166258574543723605490987198129589116229661255342963934899709530068793406475484310386683717667234034914631279991906329987051337687313009087376524811239794049325888899267403506818212675557091491167386845948486419055946873203711073255728288448286923998867015391197682397490429474188042610399561164432933738738938317856824635531225270900665248312483545723742471980839388455670996216667673338370513340686637056590541907561988124343323530808237221662359212853376924329788600104155803097667035501903261299500911754906436560698466599588669915293400661440944742854428068339995256236589337410610245034371439512055077143898637355060804095450858864289000470740064116713346422393429480985947708904634466463766614938967369201199711458803934596499292770895050193456354778897112149362049842713137819456199628679200496837127986921654148390276058468313045257521659300784593948822737975602645446146826944612093779876460164022602463848399380632647092692161620567765516480784290639901408967352132234529787794939411347355490794408424076638825611934067996210507706001242225011991468707690664890726902380567786702949720429219167236349252480445803339108884074539027761331410684174344216460946640461565483963160409575086314603346392365484321002794725180077702435490836709646862938933939917919070120647942028218646025002245991854616412960536821082998034463866329646240667168037576815791274803435710357062540334540902161175271073313488785734065465577948542303795874004501998432208875253946374429776975222627718647726169848421776278907265016409378746119864422344222150104466538269530458001506304610470293388576151255355828961406826306566457608638403825749071382341760665334964014928483699586017457354164509797152842626319522261389905033074145432385051861212134659345115282099357750773655831328830372882110314782008182723914669400263903854291858054765283738164012624733259955219156019543211125638921026385939702283176094208528636510607116115422961569768250003371213918087487771507689844736083030791066807100222286011437397934073015925278152397640927149963686038421560514069337255438986976949189669110526163948279430066299428747350611054264104222315046539043379514212349608370314462610769828632071416981694698272084170043251209613107670009910193118155010488321150986737209486736849056449816165711814044345481344938174697249806317929808258798116967079752032571746993665847559543240699868926361605556609635993252359649979841780939140667237230501373627462138020754028989658409278575265278476694443028527776524811671064766641240482872447577861604545366758438399845144031309421569322604550252253318229227041330930329550396318254801090045129771542063825224168389714544985201060973091804926263868126002999022504332533670986491406634104941772133040425497933088985971692190974039639433721521311948017069806679527980074099824931813668928167963030683767508673718939593400472876953317009216782002971877866631791098163374485831682304567651109525704823094236306834416883976640215583868816918242648812381075529433215334829279776967093229595911909121835770655407445534965425061400992546001437663066294216202200377529797094780453850710817436303771484388254269964859851676840143167151544846306808270055522565146331607174147022606906853406779427730280160527691451984466363676048715866629137385769265626276279768974048442970649505526979810110148474618255005500249843220527260036795861084519961088613878950989709279401374176468829104268356700234046832234685878693374847077508484892208998116836275963969183463769816761719422102433637198122294942704910704366837522882967641148235571607465716115794090701311313102252261979503024176793736580408166074925945376064024455821199123851847824455674977409405030389795152647431794502672125513668850276493715427317975957953313240338058717286842596694202226591094334854959524978052096099530195899915564079542974616982823819916515634655060879080598429150442958960553008781915441564429138222933869745110902526158824609325821036291236788563759546683906615497343387129269976699190857163564947179721230678087513038025518582282833101597081417287792801811209196078729899659379149068662429647060094755245928517756193759165426551137729563521310826932397486289295159315723069048837922348942960968250304829897263134565558827084341016357812318552100909778289383002933603649074618626850253101545801695325456389308933076972148211962018899713048867241255522125384805640965640740619785795733893456181434711180598630246244531564570375072539758424089568167591285149440700620745085166094770262017612053325356787722553697983563397525595913350244199617857514025798882729137283810192243293912757159678360572594975049063353699900056864941228518191173135268046071969401804143418547272629588920158855270034551027037145501273319635923893689588825838324935181665249233934982102457462703358070407008565884430466970258143042424554219837238455312955919503652526592203746536893817181429280990034237028879609137598688776847315543360457321301099347245565627750780161004967573628575168054851940226072847188393955040037171137706519208525551478803016435188507847045212737743566893325777991245921824061103194720029718936152402497075299027493695695236834206777955116976178777127008642925073837396669336515583967582168984705019167742851187696058346791888802597698373244900153382845193297973447138817552212858821509132197952723937227427396408920323939665169864935511211174278966937355120828523325771192083310938574178417079029826163960220742370517677150789275059211257219845950508691618571235572417794944815767970527420169299788496849599780657313291850451471167962892278784390953926895262069871137484757854333266766219468176782997956280633409041504299515908897140997890693341571176134174326691134863932244853829385198769711629836666430473198924210707958537299959277648533237086733903133271046782817749537517842816186171053209144808029041091115821521886946001263912138807494736296769423788298695798812614295360738341182513009589757714501300972956926409275977617023443710075888277281243764496054165976333682131352988310268717715861832990977380520530874752841075367636135789560685899375191477727515494533087400911582947481716482345335223026707434929116515530703107734587955376126774761206837138693986642049107098424512691538952440784022940585509974019867476791602646410560821032273455698537087344584466635062078278492823733741525434757101360731409741540443397262755314622787502060493000128845718854614271913835418594628901669133299620039817311089542913459525626135869543488425660197830270487485438154247285484655410217282549883613091538271587358134715250223935667553417212513030435268380230208254357642482608460091244291077500003424737904844349725943819301511480657190026473273283631255939834450308478982959630699797220261168296439281711988882755513127232646689114436451868656896638371366139032196197930330755124342389971151179412757463940521509417433988956800020059015366141685881014663350248397028779917305837824085143749566298839071183646652747554898928233861671339226259315714396371473482071243258894892403187684831257414956756225474178644930198113332946507417450019893777593687760156601775959670153105639623371032724161754164836607975068836148392267342802604747638835727415774579833059143606631400918596969465773803819363868401251140884559961079182882745663415658214544712022500939709209928370500848898165843439547945763698284898890563964399592940164136145101164834438435679288983259409084490182513825421123570522164166164514583327059016192875115780345742161288107322905875107783317664369580980927779192081337859150201139107057123917338849192393007695451281420290127089474436836973104649426100566456373530620120673875455161764991513059539709224891856409559433018332859598247421747648375490299457866532182701575211460473139768189250363988953850893523220561729697979577984701749582152765921301420580041926766028447882044321618732229913718954373321336159618824223983237174225532340801618452788363784442984057733154626403733558378990578453587732287398978152034590226994184893664732813796513112928676988070044528622877802365643783087690591217321081106396785452266724015716311084047240469977261311052647830643490090269803470134791605024687652147944532246581655752576880455285114108400536416462883033358411859159952604237584989207232644737844343563113823872655777962196980805888115462227441514517630374006666609336812879591148191214204297815463942789178095136332678434158969546417456264049464291842860147021419262552202687033026846560327090148081600211350650264321259226156406012422917441595285705353759862639211855193073550731773124951951206516027395521152826627486132145912523070446485055639619982830311033707324247671838434461042495884319516834576004005613739763103830033016849992199528950608432710534560596663144016368079532377855293200109003350288513092262113017908131137859731461981082567594917855221533732007194523621445890510929654383040121028623896270976144509113509014429267852218339420887694859630353103014650789117042663057475864078279454016247405751427455583063411176877767091485891451806290097181656222875883677635682025652039274694831219036821375311465799339539491546650152332231958397103101536323479250378796187572242595640340489609690652203833011839152479463350713256411355188264681985180572369378947620184398375772714258881385652807764529128802507415464984006570741472571662210813315845654899823998927515244858482083729833138433496927061155719496855019955974183676117639137027599057274654288875868372400076568472115715072601252953553057937738535756164846955010401106848114845943117918312458481247554568246051140166822124758764334722735719282258415773931077168832619549037441990291090693724916598763638110712965476034439696706605063750217027910113962886591666738090387912550279716057394990084121426335370322903974831285653599349159023456940988277057980778295164887692338684335234431285465897964631688101909588617491019423188043178687069834906186176772507447931000343599187180541527917524369470246446963245187682980230899967653338802109745142042414524672483215062519007293202394187764480458392449021539026533988605053182247937587262269179575940200367733409457959107309744226676663814396497415210411337596605648829385134734474416028123621319897054270187179214974189775470043257947422513460004255300575843667998708051207509916569702648274603004614492227732163286174512175216735099371186386154791102424122707711494448245010657170776777451101470697013583439716291885529812249547112697253325955926345935369637923344954890290782945118150687272863229917435102968776888539051826245949411699527747649150463256534717381637927806402535756649965323304650744931858920705014983011160727982600171033428253760033677064299185996332117953102009581005407390830327687959577723719983743464139703173955773723098582725628420735954377914935818914084062952653013883207027912122581318694527003183400639299840091533873435329282474707715222795904005595526834252526219990834192730594832749694238960764786178490479582901040307783949381446372641654003954849806251230367041856650744951612616555352484703455665322382056057465428009934196217115892214161986981127516201819463799519000903288045074578058046169559323539861378681676318903981080707397547008726407862810738326889962712946425152739748621354928276827651130395036314831843119561798287299514835144071887492690109224595225112890088074773149771003374135041542385763398246129549264731569410157867485862751440709196404007731280583181382427972430627494635706418241605242846865650276951686985731374303614810542381023160661941334209244226821330318174345234729256693513051031601191169921390783290316904688931782882915528386451659420934577583697796838273417510653028702797682076244904954132022680420150353458866240589922376498448771180040460524289664009672175910741174184547234282927198396983564309699922382630723209416638126897167063568454164343578904432422774100467743447211861481717218305143841897590959602431008183783330469273565901983652711576067060430323739899739775522170109928602894550005918600657743330444648113626223978305264118226672005502597771594928627074883526802989871774514815069821834936216962035836113171386375337536531637120369939890885152324227003948246097560126642391706405685609585821158057887074480357759597094957214600968569867926039597096569125615562326344067820506656580541355046526877933020885143537784396444330919020811207410901713591299719854070597939317348621478493813754990048375996038513763589830679477067114715290292482302149026350818719620134653098865477630729004994243819186977640897743504194355686443882241737835785064301267095837572134607434236732046813937104720558022837495618774407218889241348590218238750121955350236785517759391031802959120258862726844320467906998980805204345109066117643454855007981782964301339277834537511067459662145009459118320293009291946554872714088896126586486845064319194324221282262068246316439053760991688708399607974290845110343335859363953333902345505786519634611183945399919081314196824910937449508963856513539533051923955251465098762296873939051471766583944972283529760020117789370226033282272030012770107674007179353788631357034666224754772094094839948346513561989887166458632378175610028919744252439406443451545848860788763558642961535434586552083805551221330648495867275346100129100864303707805076165101386744770905162411593208712255527866050864740268740420216967182002364797334527209883824203551685619085696737324056654640276556184164631892423085960754177947493071359469784671208763129648574086019633901941110627862933683586122617210230448806982978364105254922647935292958307300847731387892384314955073750307597410536955786888684834883021271889400698558925014203863377243254056657673617554468486571680583265342806680348931159011044351089386566854205470079763604423545369992731076215432606959031590405073525252646672261344738729387380956071138610977572275511372022882207261355436342210585798833146630977556256265598530793526868722956355672165305443292829306960970691182896548744594515721438431028740883756363388579577102710199511782817999344113902435861628376416995033379746754905129192811378052711230351941371996246337359632530896658819652614333765943039181676509377758613545008070642781806825429132635483055345064885534194112592058868841114190253496439884685181630276888889153782759033910328374913762511680761226303311908416598668057947899198918774676321728087703896484734770101859268464450258135685507743317284620603093236398724031803671753146561037067904181137412286271209927782011311838640331733594183050578579770381175025977167350698820968125504369563330593627177491618230188448058739457372238188461187246808450467941282049383911941211913603876375045999357784945481872511412398983690933225495711471310689141084050578736416400917126148640760643032899495065713601474648673779352936401107799377409058265314780069529939701170666116014884754535542531499987804275611782644211159598221243500133284137341175426190797817218377236082481115386753235089131234918337123690327645312743657351851757770515495504369848495893356311760466593316547617062110255908898728859105901089645582692341668467556835570349726097875825419984616023904022965073659921488486087473431783239076594047621447824494748987575682383707391788417352097253897494346700098564157245048127329032449719685779803733260026495941269917051577809180853816435401760641636509117961847242922708535731007910237972408390884141461693489273918558649778804390735246453298859164102001223579693904490862137922782924450138648330247006985100658255596009454856733902817806940082727829336549022328844820021679675354986298590524339044258942877185366774248580388901023990632654039381810174901343667841706306143021780956063593165350266746331017984687640603974303215264164305665079031220398728606799322041781135527658619792238962626787697589081449930189896929873379593306722828278809856456755536214921737371418913543190894844401690084358953296390542907903222708148199705755023516116475037454699369017934492167574997850292795560057687761910604711489876230363805173706661361245322121162615467122696363965560940122132581083436799503508413744013462606634453950161487605761711456102519907964925713495977840965232263513708822244553579398870288982152186536983190442782173239704369291813346859856557979773478170827802336895304628918716354311957241165827530293004189561002168540338880952414311933841125502528179402715808889622595096556348118002843422829949334619930494157268963711675688448170784804638680627271609047228970965732132581432672463393393714643055018308323615778775585327420231085219529431429600154774645738695203770568269609679548544684393816228259981795060514147092293807864939332614511905973926639653091753438170506776638933227515460734563183876784342781249377113908902059875357530767552851798149833957669346593011030528982534993106867736595075559191578305821578970531519677717864887734118626515423174815256227347671164988464119123795280480610329611130106165433358840226031188052368570325386190869612536611599342674706086191935478628021158265048623905863281280755020850281125842670428832315560623684136381171813147940923560571578767131924504463975441993475372320149106310473776425652008946258603585843339886634840994237457720179398539182410013529740086400786591801311505627013683734036789792121643662768086744137718165426619553273025167393157984881126197982968482330982583558955527636227251105792145347876083739194009949172069897178077665235610519582035871610562290603044601241944458704160192117553217573580749020947661342774261474375856140523069908738577029030043507271408534193969506341797956161458053822452266040191769506206687268648781320569149250663908849736475484540033226355649911554985851155829573212394334606303064873511157217178466541572170576681876589051371195630339838236704931441631050047833882608907251513392722388492407139005753748769648051039760082210852293590392956786572506792121702699602102932285552273377887959028893580288945529601660078808760851584047176110347867511981680756175873859737693418585138512021062653259717231820804785882686500030517962144098915312539060596731321987505440790826205245126240557595472646799619928236117769140066299624119514781203504425880810304042298961902533442600883605780777067160082884922305086259962068584843648479957154512523647172873381976624077843574060548110933831249900524798550385632802541937536947240301921409409795793590151340919750923171807471057530849265376959664441200875783351598442420883027152217776174097494738390243502026231885600824533127355420595055317265735502464295220376677382405158306408708839614593773887580077127134546861424819425439699776235560369009795133398455252231500314775866979845163955797665150467393893652318782752844093899537916631303851002451906563296100892039355769906339453276801713790025498213677517929459442581309443783387515236017042180258176896532873742555072727500648233734059183965658460043062991823937652559556481964169839286619418143818731357884989487918464823929513428806198320110858634256691926556001104486069590145385324216274271721580891367513104850461536261805261353543682406999486586522252335835751384512635340018706371649349010888456140280937139600530900706032852012775748698065316596148503136624602101219692241883579604350336721518514905112730478490829033236423793745354274695404200809188920855624801537499291478617091569255434152534487423346079662061320205978645541742349887374241057126326827251984342745088612521318361458207854309317175706100860200896931608109288920349360895581603067386808624383650936211555677735733942051016186825377037262690519202772218886228204588908479129596630143760555890928400253802256353888142199452156587831967019813132389280801333772213988466287172375001725164943066109223371113497878492409026111066452396241172477223037962285158353579852514049057249736994731455850195364436191844702182502050439604064148099620775875405837889400571925334915234528704304228382128047538416765013389891903786641668513831081820310817980316617404369737553210558121579230759060830138117284948082325482686592908659132777390642223536217527293800370994329572786289469323752849855551752687298089224529403179407990832678205777956650992493223840584279083598356152746570630790171404044932121009984199712437748610596877526703985410754197308282329103073654370405992964897235605420798911941943990196815845050076752409332313065707236873422803685275311249477426360834944829439519545987903704901242396915912263037237584047395257278385003266744616378183364814217940629234548735991184663711796950289987296012662974755682722732342752066494275650487860474414626083471905372856103674823341170754133766655636779253523989037307583907462375439082187056944277748724506203087073357415247822897120790682200945373793235302795980663307285681599200524200294225276596284598228398984569895861994152568190582032902357373753694550740575707838567047823141561531014360948419660302830703489503862805570087450073204800608733557873670953872444879486439657366187573072953725444354128540593203551769860886622206227789881973413899828363010225526109363678242866515757440920192377798055686470617774393036813570093752464472077430410055340806349487757418783246392229288471373271634244632987932508385068219918508205320710418392752838539689046993241318916042406709914725002251442716300242041256634261835906935455811613810190168981555967058259627093736539627065959846983997730621163722873228082033405685882300671665981683104749029445798438252882257117613036860723419837266910220877020942262992107156675857654137605748874193941015019251865106873678024278771092533203782980005292966377889806165912959050226740015632331516273045691630215758095003043129134399686653285313455597967737091654284907705292947880285458480962150603771752042828461069395207935056718634331403838858558800848441490006239028243591204917619603310800835001135990397269069671763491744469436345899283125674819503800717389526607945902522786569570689949222393574191090302808447784743596615229196343451078460605949457241074647205703504848920873484938853447204268276078519943623708793475402198529932833255088550190304025984385031332567440307680557764973133308123148438211865585018999762997385680185574536067211079011919119177397964052897870090566420002873276774579898886539149606537443615791304568103105407919164440142179935001980380777891274323070435416299945629067342011779567963526643670909273923124350245030994537836550216645842080050706374222183558224719984522124375024556910990888834605363028433601254904788559547536789698431225510678481552742785698385205531137825235953692825414691296779182588914693407732871995649216115843630943599666036981544125808091977833914382850267958382348211850630004625336418945942292276735764013918448933895042319482056101185408505482573892961194217158264373925298247181579017962778715712355401548325252346547970962154433007724544960142513892654387581239232528509730485126926462508164042167056972015992814264080320351651563187608344451972116550325088361089544488001877619119228387972757055442070447718501132658769143105129136165143053456410634109729634636235126914169986071337333890872489458896855333171630511263677674897933874537098295812370592198936081238206891214741394530765935692402304550318846715518966413667970112992878692215141525879201029420476247477528335354809360250931097196082244184572968852939319801480628431814468222016256157488782555557460950036872164195926780329629910551919143478306727951892864517092547701243988216273972549286201592281694847116996467770768903157489712890122750167418009708663235525228653454209546449164707942173184341954528786026182179541825621853393606784921704176477190979021482847518082455112975067344453425962280512648887820964796345772194737691364823356960484981229332716348605454917542703997811214794701076550277564821324082808309366179648359447004324742918292984773541839435300352671359067146178396594660743341303684025766642731211464190683323703557680226519900493036679494357581020872354013013898294322741422200412763618140407971193029995297546150175923431674279272744400142668822779438990979845183163627559900649950743485674706513261747917410057238309249765322203041774448336217973690926756940419115777965128505152960035197976923961087822372846033372925323522101839599612007674401289247848975090702065866271722126075148355332458096274130207999756652640120807631637440161675099878024669210630937194641995782375087189075707885910051815453384695746376814316087119618513617627343095717813533235529262438375496464017488009697757343144853281290047351734010135326091693388674248397287090727450049339885944121372869299887279026888650598722427662566196204387109161327670848850341759522410501096073221504969342057181148536336661856532905332144270496280911912808441488633449879557432028904971213556199481279533894265999649958708166522781429921742917977587591794148489356462672700480272576762639874664228363530157285335522784523869850246503120342926051092075880109611212506086308814514032359274357970103712339407095253891225543801492895306828596609467397359581605293975876393366076482906666139137815482089765038276538303565888835035225779206305273624726694305987427234416925535273554497231024813625043907254462133309198749659883235072991584472019569278100280441870247873887397394479620800443425352337007684375423646274990261552525250162289272260763780535977455137901119084720458754061518980660564068077404027726252653147823511700725811747554415837717188932769989426633121913491476480391445135823885899051771870724163379376955605274869246261560099264235956518232633415297019460864238178429750094652426386213359964342191068969086264495874516796913489622924625839910386496946341426373120246715410652037422637381230061199464922719117881727968368494236874743758720803261061862366690518310475444752308996181522928875169152083007370268833840620448513299436711651049335127954461017137544145159830043328279618923384958330411417964152633941115476560819765191656359271909311406695106429829570518316604162884068888376451082334229528344823022531433273743173985753850948741233638784477155042806995285495156982285849123419333489322444258614138424903236133827353179664549754049203999175023049270621273289126775819730781622798632831888213316460149322912561003702820014949330677205934755999015805927880901904491401614228992014098328029895007576603016803886186910946524291296005471782679289898267928881842786643955572547743274164932721192055710198092978080782247304270413554036267317258352475718037132344053285323721392407530592363836850461618078073890238939673051876288480396875953945058732509174112622208852294315322348975156775223870773406382306943606590331725567034374374060038610685858982710512315887822054667520573090612793476530381181518029810507203963713321349761436705513748031106788486196109418552491172545222793313080525422859159584724204385785560070234222649855274456122778787945594305469266518987258898257585850791220439073982542538710066620018939564006012900276677783518506372975222267355728717393799198313866089929956098459237233898901182061703574692204895059450510960977566588434851491359718497643336294902038422830491449306853070805453078460303432127772307188694738110692879715394892589055589350530449978695615677194781681965027745727214421805522235296178346783351219621106648400939723352821365845064130484617439760186094181614534924440808841879659695421141857352732276376275688725425437835416183594126368483215171427472069636214429112224790873483684163529953715953195039490717202271683404615236765545247658908422088266977845232419874576518914385401007674636366125914094548976570570657289225126099418487378362742084136681515715254707986226329592052724122164863116231664981540178873213625781838350246315055784420787306582321457189133287472259628811780377341995732738604210373723815209442950626181784818112821331640704088920302228849882494699757939090252155288662053696151967573902323457699653061010587521741102106974108862616073869102805662559001253986165257161142231731984254723616909586509559510093393604038409358211248777084455134065022089099253721849175371195710326376347353494290880178400425494754576372673817050873379020124942606836419512920494753728624191797494459517529996216278018227270568635214053025499514010617108132671766252865858385220095164464037438240219473508176856202676425584910968358908751409734434144161088431984422895823611488123561834803474041563796397434288056563083913194886059321068767994779400586894954555593711134090883538500323338699746749418890457338841435707175634705962157539233728070475065477164775292355036483001535513801387836323828203577408216860032045655104850677200204339946977332530344289399104137041683786167054315284230330829730751013761044296774965409762331338080320356841629171677588056763650009574870405533621429824213621973178767043769026314838205819914111947240024553832355606689070890460992543507099026117472740623711786141069037001823991983169250601104544023395460323773001169947956831756916716802547191315103080201845114006932292934826477269995961398733668325866893685960750328270725968294701852966126926959299667516517425832740880196164986552518523330518851292162806250791393682503936719595135955638965862209407086400874281539891911541245402568941484450316612384649026438887087288031685666207921735016323158786691334483829957389403067812423786963994512730856691036480656351912935001038552424092536217470689486768729645123548202415769762933184594639952027569382865407819926850264429541573521292890247537351894468230481905502409995793815137534100918805470841386738626221089654818575496500328079120451459260195973970079343917648136929234925327682689675332110253786597556609469050531189222778114468345565406315273841719847576290265337431213967892025487083259382551889243477785670595851767504767595105934863258152421413352236918534683913230989585312845475348111000497782361740234879866155795894809057328219739499450290819600007701469375264698105683499408086541633266737074091597941761030455395589580525984130743752332278663785372001195506641940079047705633790721571257398504604964688983117547501230245084768704967985517541550740545897817618786798503800085542195022726948694393517394136350745469463336321985983412632183942385397145765808686928685007339437179507926870147211204726500736160984997594032502158145375446471038846761202624520019837212147904486359026057719032200646697385320483079536459758837254700056149394969650063824485065244700089333267500139543029446178911123658429455645623075007577395830552438561111633412638033476182544723385192625527602916728632332283017754979262092925299284200838162675510802278229287032590698717195726007438824960325607167972707724696893730791599364173702716401529250558481645521453305717039211758945897272052122296796883560540374477496331386823476432549464066009772266774515556729678115516546880263876602460412488915378780469371772513724179175986662192464338139762128638452779647825091770514619939705678158939959326410815661680965808592242522546897162977342253604445406989355220870604980593070086810897725900449267393471534658250203257929546665211349303967945474210742376857821310445672980826124971770552471632149095366389988858240907644096080196133306831929083627867239141242429838778612871162573522104334110695996571273143671329479960633627179946969827007717730100794483001475775919691532975545493462341275281681939561882037184243924523698052043723798847923251715359027212749905103526984045397189357702056517417259443321035552197493478839211577077870203005896579110827319522393316906524400088517601543256308713020092387352624323099964387493298381327159694719965910393689390955341546817945143747663891584383729851572035564964661237830712697563036363274147308490321275594717661260146309798459167676999373239613211804591375090439558822210650740330499872672971110292474821650425836356353079138284666065455604162982464720770494918381289281807493986064167768194843979047138092105409160044373758603690070536091836639331948871158534204645861904553000232886419645390608373474169660757020039494218832763589426664664294922506501417616708960719383889495341617479265373275360409403048671034014562022160259484303514451939973483552116399155267161296063847576367773406443816193988993870801710362807412808070593017111641766378996687510976824250618857446419868324545683223595383070408742754926497499278769455468822266369414345994534193186195394851430870323475511143780562454178943480202440432222689324243653011783787600218440893314937291104042352744514262472150016576438658432244690366323214169736125762318175390114852782267413192675658208153543345115863752004855659200952324832568785275949558959232773119514634947004531793408847679796668641936289265482988616178414678186056176056987016033172439631561702104014142391843921090819109280702578672878069484145647904473619347310265709022940399922866619177568708108627390474993340996321738333183718570990022751567479890771156482286670102435294708743715066340145225842007177757071591146572330887944649074919748803100079894418469399166770278186165879680396551034569334768574198959173127462906587015068130345100439185030306169508345284687572187989112881184963063906897339818141104239422701869923067306887831841202500878758308911779177653485131538736332261608491053416310779282521843905181685503929087460003287836207439337371283247154693273673757306650105331137926969050114755270599752762421022615591513483101607194448550772777830340825026139254746136391824503641894120465445449970427340160534588006630763258043822541877151457983322244156967144157896807640152809743549187983776846394787479866693184711821999117813342785298822414073493157122200401308981577958627288541132309760862298021929775224366419185201976002315340076797854690239530469086913285964089451799100545867311098929210536009257168616149932464938995201259219074731653379119715156431385549015594884569932368774185264943590958136333399909372237092834190436460880957094547930816670728051852148645482061661111865435887075333697365790169601381364511976580242722119972919531073938121220176504084597057591657362682325078840569057479693032540744021936131116110213875821602434825080434697131000706974796820232014487352825677371414966705255777625035277684310053139111973305090101433754213600040437658252101408507507037913472154148417208386840411139761530222688970531864451416646349796317959943010174229938978020863733583800176111128438452699654404929600386307635349096924600548936990483809867774288113025665781154261036596135296631396752141070546165060187721842678395286046335122150525502389041223277894558547379014935797028578758604106971284154120521379932158429783671193015006415864892881547268834916320559187464334927382828510781114345814925862271054058606345569272239637029498309437647657619069954990629538337690562998703154435807809863572250219224350982726189565462820544503916890496798055656918199724710569528754406126770759234396502162545055992382367179361915658313259211963722283410428584162708081639815904361102510604914679694696578567558259221100039863811787426847673675336535786623297612940090043206804725866321524208012873711713663197908444266614084107563271215131925167238302858345650396251424870725155290345332775456164481278381896824588714768133488469123603711408582826464054158819555597016487603801549471543160280569365669011373292741421549319943165800500294333390393164702466479240425123631225877880740180173996251713872522526196105718415817816424608168074674065676649683829385266132674167029695612008032954989715391493484589587922442384562905809933129950802967287618001293513282424967538808509832552862918267831341331244484160904942940197394276958596917812268572996774920314331391015167533055289532979574414716371933725373348034386966668701882825100361735571837580384482794042115104085542997520076595048967826514090227449265524038352399661752751786694110389597866718627124411140561890481423464550790424805007461791492916295337508558564720687913436035701440086759604850626623422704595468010150044775201611109301806603108288075067963630794081541305113764241009743052561427878225317660628462411614061847192519590651597942345620186497618831352596451481832532257145569716625277535617635387674536211933537222867195740165672611495114601904270716903346905880567919946176641544595522329871566816364180250352956998441363552166804297389920376892501122451486994202512226803680441809158332768624307907709180512749202242134513359779221306527803147617267568211391524541371135256712136024475161395564260471796246816228043532313829510767012150779718891167680559414026990465886025497601380514438892411827577236809830290083200570876076934746062939220983353862896151898378483288840422153017132149020526141009296343747267154887992806178057717352018554627187337919756447937817646488161131421718946246183276105509950037798318046036083289093696446230679234059009259326196344802993972632920007680847593626068643035125199443337342635021967910204770939276085637536159321691395674740927846953113194786304020109475018217370455790595374976433169858545084569289752480967634919169879364434345687188871326739023499515629185827618543261930703813641008722784450571666660640209735352900428023611786760650078810571652142101349127556116306151412257866218467891505518945784417464181537371746947653823122547072500286355985937735453957503152191791351423339765074103258900647808964830402761593976452955542694069403196263211820657944275748389955419575326087953493511466413317672605464807884377854400660357564746444542408252902217698585337491438246097899981059748430075409502871213528667952761439527517975216544397987530716606842581274177148393918492415364144041013518037636200000793673714441871093130998303400577927631419081747152848566051335133961592605753515476520387476674882526181496330919749672962458602508726243460976196194977031061033159156474331411942008594797169786674270823690053575099715116359077751799552679034263377098796580969344891001615008070192465898935968565481333354101011939466718444211177679435483434133189775257990709203627703101971764274395565290040243811119125407730785702172921608764569425537097624768249050032718397974551350416740653266023954391654358367480812710226576403083076374132430823851244711074977507909439745099442057517313522184772229319067449529960190961499267210073260002476741081853394309004851976634525873078529448455115254896854541054981034527118792040523532177087519281142613911280541860869077373586276169284821162021956044778766788962591234637774528751920200981609281728942729187120532878211018829813894087687807780195423931087328711844844777704608451594256284209084488251260517822718112053830134365815636964665926246234149137784788246337077003759892385828585009064981131333524520837251433932749941227638113879091387077909022803705899077535901485244435146638373648550368019826789041680341260738126346837987617413547911231398923266574559005469965966003244857761745515764186596372256724281119689451931395792431864268216527555176956980652432725292316784302918604836472236940909890532479370061104946577365312808075625375296452499301959709703219056272242176767115857719932331907013308412551572468944514320184178788997437926488177472736622065574406848130792068393558843274745655532636907691996045115030392360676886902232267139879909010855883507694815255326527072355979617512709339156134022280819069090700299994362296633605308278232742232025650374419432559595432404718684105876576771051116825497554471808652654018196756678717094468884390523161791587165928115374914590758933593328934440239023500863334580935917795902956867804271618966670615283057168476147643865808776078246951783040537475593457242299260763934011767589767381671889345211383244236546915568351168895430317457552052974384915589513262750537013545544730303354213370422562732638946294638548304503647331804667656973227810448604798068796714822109974795062993976083827431526000558147087912836670281049770500134195128962856601302774878817768645974882580002507618406001340287692662029118467151724278703642191958538622930896763473253636946308010783238772949605132076701761820238617764619764184397404080491934716455262978700559240015744224258235281057472147818038404107000372856889203920515162482011079912732639519513197980413801460966321279037591023038295288020119347369418623455939863196194474424814186841604086943811394011177291697165298655541705646540211209482997440900102408323872949170059182869760135495319016609894899027880718883888602765274581924278296717513193126055643254121825091715068719316766580816423494495031675558624182955999311468813398067643238294709799598586165394647510343083652049597537956647821618631008717401449280104193345754704614589293086746531797360872622249522722718586729318720013970611024886826752239496717169645525721498437350559765178755441371471159836669717036874598151941656736087220824304630188350014703952600812999407555296607544662807970875876963812579145822557171484199384095585206404446067463998155806202182935178162139858165316304745612094086450902773676101626347833737556501013996126490737760820356486934465059594030866933843804473415273231976019514933795922966206947287779791798080072347801854884234098643423903534758679005108148710742317320495649752340637773287293263031010029777606800119886754665567812025371591431691592881375824336899931777704637863324007975532268443157265893010396145569174916841368911781459562313796014048863822944955738228559754898869592870309822424212441913227958809254277477934807766105373319215098762282990657513137629595939933991448385750622708551572151959731421797284588126984005084309337683505266142182468341498135310835570789948909514866866128118602428251904159558995292981491334440000558204061647935697650487948519032236047128520709252693336665137897100724750263552396387847794050187208334904495450281610800857606479552142002657581165174337779324991939006103876136474998409056505832880076904686785121727556869213657192624187738346616380876093042501204284292059090888242739960088832811135951100481969429696380183117403422640603632893440246716641264247888632309419821973112381931519763234051465641866503036281325233641076699942081680562530576650489478297703603156492302170012059715440767150453827657366280925723314401397616026347054991207869854021107042593755685388478867641116362122227107715048870132118769566592452398325564475043676691731546314078107392548986737116269308256459087725330643166715520693084146964567607835305323613681855889722304890810463725411437685594062212200407876582284154200065130365637631986991846784680549394851773119404029919897593143474329497309555457840842964013792187603727535038724011674424491028499432651198957321607271097144346628470018587920504478263343371176839098095464195530683462211788716945016789555747401933812874217010362252056797431920806714007627126597028516279278844723810646668655467774838470136318230855093987115419201588441032639472579192759691118775743956289648181113756615137046895614852348455771127392927658595423494196872640798607426652894179642706908246887075828292563386954531046932422387932873980151940020805721987545290607221365619647302734639815999874304479329649447630397415746407610650503850612661740206950719063717990254771475535465199155345860277806764938640836328749185688190710480920140665492334171460200643683202441254610350754537433312527214003481167325805888647060801706794966528022696828418079410665312024836957029645781358892917418782814123044323333801245350354788997969508411352652146274461015509920800106308778597530533703327244020272232137434042598720402736366927339231591415617990079993351814461607979352713403618807565829774440855690596379822367989394298474372600908398553244289724512293603034197845437147760602487302034162272701875096349559418774295730894673547684907578575352976879485014502629102485417446198487160737674454755632592156230402358512263456553291775646754324291693102311343405678124197779633661232372887268476218381064277122470799664720900224790650030198047276338990217993647178108498694537506608786010454996260143053166947458422714770736241048640625360152110297852384568081958926591135065424109012827193885251115809937375356786634456336474647176158856153660631575485762665829764417507554034609569104825087852079784638942064032718526198104275788743826178028549130985518334480769497632349942108837928570681791032591588120079201961155147598313991324659804382202100856618796019905267168560573466271945109148507364837019793139831384484348764946642220422576756792327236512983527034802072084987278445823349367463176377602340585926369555568133080564675810660784678092190988173007436147050830481243346799296948396537638032605289012821024889281153791790806137312255152953809975482769725432254832630020962507397969683783932239916624405468614691910951901895995442326732840465228040136692458827752345462963446417339392933645319378890417979666390536012815378430203543450354970493760118147518396123469553529547375988355846657539810216830717454242621563735597498889341922984664919739306833619828818986341329412844668997933000337737617453970871251616727698100758921134832449466119818872034769140116530780357621373135800404090918958009186525034729341839615078958275281138273507891957793574445246884881615613435409547737009496087532175790366059490129049983719565445360217115039358188952068743652053053634614935410717835455484130613745290775935124433425593958444073430315504604024516521187916857976253360898905153334840961518888172756516021250181913282802657017403023429384595364286105711181796704470679671335869651303293961930881949362582443181057845312724346688169326181966992455583047223186493675269977929000370700008624076968357805888651789439705179793040723771206679435119468511267351253966710239738253147200759815692867495981981606714775745842746382437217770010238177188435988534953177208029760049330001622889898164736929843032242539945456776898491112083399673947555063839627279472849597815318628348608121330006511015829086766704048882156226085004977226290877539783479540663341418700496995931093866214860605843414052436616828809497070173562553323952076194359334653832652198028213373264558682645049238779491907868692208763194118141580606130381704059014232818883376651420535689693782898293845873970876431468296929507993471047287465341687969122370248850004681402106600889953681503704171264752267197021217527462728748438369959363627721913009263101812109442493990130918645887210072100273270308853725438133838182425103336555221486961863697930882628253408312682677011888614789561767593171361297840210999071950932453127549457764663757240917105757206700331856716545287690727395216640367555623032458606525885813992582332979820400252873788631686544518764117044662048037913311846883898603798997497582308274582596033414733971146254065328204666685439829323427654159784806191272062292778556830516001403075521042519859206325797706680725068606733068458614295601618050111514848294379618556118304811121168711556580601468198495999900480925931839768896871927041788224560769415600408330717389487282410442089533186706473501380404588591126082985073579961147255661889311041108086601295287760589263684372782319271659444091718422945549515866609503615500048072046409009932777774543290354493561090683888400624639784653045436454730966935550660866942635993202267451154170671158973730955357143301151163436460918342807808283232094688695652329903229921586322853272370802401740217678991971964361037613474404763960695319049418244402378542527927504661087040987525276930816486259929576548422225963789368056367356676614385543848534362388062508275928101309859245337354811670690565097737787740381662316900899876858900753903829293490064825149424127089494887129139332032468376433466492001344372580934731965572795777742714433074211061191106825426157515395534109473727706716858829393779881935952935639199309354544589415382983175301450771069305855653050066953067960685245794629752716116879116806168355172481925141573200898063425158728014344374321988539059854017701044009420190244131422615549777460962031735354876113986587109846061737749445132954373305133117188197547910220756205511986841439473434010638323432602471742898169010840952214400369905439114886385645343100220877110117369326244724017967720626248983967491820327697446001934804511045197296588755989810701092193178266073079508074766704092030457211142106515112735348548765865877981178591558355053058023743026396472721794980327129204077262575322548471398204364799437588064078673700928523573174417943581741542546340527569062054463315706673937133393223613113239070569548987606767698148334697643252796198709427082296418952767415254434679063853020759995043428021540440979904604495708077892671569869630942426152649432794997239244279705690192795045351703777158130432410336729004459928829135361539772844683720137013344480361016228458971572808051547441449887730826997379986235291373252820556214426546126525511005804345063249033434967427006784850558745929490782507555577445860194884176314532909418657983575754480875730833819138174398863470053840075420717754635876721911710643586344744994159902600232845443926436706393143459759076629151104417154644731075918644195935991150011462938373601628819199435540453858401363772348304470031241197303061335686786042850835320529825833283568349774665784956818773106915089255329043312747279708066764532897931058088657185157250425225662922498144664297244115292625559942905796700497702590524438570395320793225237451655713515155343110301889743997228085701460958054187336415998604779375808941639139695721536458564593646636349816004585376059331159678937576889573327824220177813559094063842786165801429634472227004737642958423588021807573237724400146077278219590813490886659065690205255532749811948349422936194283727335515680959009698955726776689978855010757168851598704342487689966225872809468424732783628013050117689195794184491411198768949464732878237036414217009951644442497271453406332377335113277734152240479409076886050060245575292841317175377107264755423780668570190699367967665706332068917319127360105983518044801332925330826584630024821430704737109990859291362046008016754483561629419281432812609216408352406713285021096586309484195103315426194373101077869721530236704896650874068314055380344409344962547238869730469072416376927455793617883524756096878890178537413382276525508945670904996758937782027452029131824560131387068304336777707669744430407939924336211688542614771555647241083359697993217423577788988516898808057613730328603501954428804279598989989309818697546036127138985195619456574924503630119943547326207165398845180639974204647343453491437515331002356600266154113028917745817401945119179532254196914807191271692429324223784712864938583627727439108192879875662036034950284082386543598428457002060939377787770313843132650081882750614495357340507355849131091564051612260946156307552248202953209156024046372444275301484949806708473591097020129488989391642188347544068094161182834552826431694139329885047648162301572633723987207859614209280298214057895363857041967081632850754473136070119184682170201853587044183166617901009498845439522581731969463151424846320181516109667182781901648253297327185526847663454824147187147736386644978737809369763643412259105027259598208375553821457241457724824809660917693911551791818220446238307636292296205896520780785849310036983328755632928157158583755169447592337368443191285173224838303578181900183946716981506288956354403215474572383513822568667191693065916159703803819539392524520269531189453799834899187625511255848231638728249597220226403882679969354798641315021602798178335498734853596137689225829316994299410260268922821114375151156386244343292240914118800559556176559374338126694838995591925193951222498234074063287260127434147803826323909547088534421427071598548710452049746137067137084892464314955589942854125841191611637433991613169288268906794613106063404257975033494152995198142424455963761709393985213010423263106675698245880346298698923593301778374907089757709567219852243098187885509754359756510545078432605620557530148005952414028552262622170583849572532831474214574502326644690917548020096233190370425273965291798513101949435020588474109255663443155735295018608319016722082262625439500173719273642014781111601183947062245263877015413445117935947772916284515640668475332020688517807352598698699924892946672782749827903926759274300181402078247908170186647235340651350384724849087039466236583685953933780514385372504988142937725393024025538448352316558138585121311817597417246919907031291964091628006876721745998198124315641944593362759957093442371147811906648758217805796310563284474445901508835237683634821417301605790373305242464698827396834022938450718033162885398249393638898042988703504977062940006305358116254093115946236134940251027685577230679045641817407035454084757401733678434691777918305216737452926620513723441746062485293745471054830714619035215452748419922514652109583354906022263502034866864826951069471561255333233014162106134771987115761069013474726490581278054157597377727886044709214397871633969188406493461280679021461334111081413213446244559655960415542892600038302812750605574693865405561743761713732672751506063746660769339878188921008234783491324104603629146515168833933513804805302370115118884494816945672028294499892919101457500625095289049066554236266232109311082756511179320601028552352522158966606276691025405745910377388145110779534298360194127525773182119735861721783331454455070287852956014993937931852771706214614479406719199436480772765132558965266464657317589478978854429995628180761652741983023463886985544336564201811558695946260254000802795725893184236454079187296451980183464065117436880262558074433662569246774632453893129347780533048576405985896302391122226510678288634754244577602920222798577784580625549537213002370876499275929723531686243453642488012850521663376239121679278019648809876099353976000685244597839356293554761149125743698154746646631468832127435438470572838597766207357095814738726550888144831505457515145867060388087414495794199683080568568972238047620362903810706869070248360260339779541705007261841702841880759433659473413945085817409601437993801932565189590217471364846353972514007775605992244614274723989974404085455483477996182327850402893903645705923012858015695531302320086299358805341304008584497895271656482928540193729221681907996499796707065199195325092617989704412231648163145727262515236575999841976914370026193554033604591845660810755815825962549267654916163189462855180735282799333756032382907356931774091919809915985903449219382311073207712241179169513537126224885638647744186245700815827278094195205603960417027645925855385819548756222038244731840540879336461996164895739194478012385628801412221779674494036657466938787792821422767431725112016969489319618416684497072265804284521475367811514117822944251251442589955008109298286393561225372957453915321648951373908610183286116837415221929942837687827587411630824570888014743980223605395664086242993083783949344019087567955963055586661561311404821956592773228106963001432080455515457757586870768197831319994030219764547638174395605702269736130070119846015535226721897085829547990013846714857117080776670410871037636615107976412226038512781539299486245078272313420243054228679874492236912787707570019084972367662297786588696829821003266190574989795739823621784448360005902763957275323181709720609112762724594853404154199175883038946423481958558182714768317112647881030619180934910275950080764629289336001724608367766219670126255510149074780689358253012446904959837940344402350693867155450598347190662420290392977417692173642360515715116322517888727180696635091475499714835610463469426452395697801041185336305153119116749742346063207571328875095619130585514918100000093698351729569061984672702060611546012595904201363831816124362662444387890377761942132148836620804009701345233659359104605394700159106803595161563685775255648609370961699328219284279585085127455626559584082828492326155080246893787248736095599059985195134524818305807873508287326104276742475516139397414857016256136836596378835071897472035893414276020496161402320420046522861049901675198592614604896006295453332810384748547458001079128969359603241058134295851852946186929363550483511918353476393677690648991563060408094889088769878927489390713001114869032219903857894103303201708105197528563895605018244840689101796548712342008276653027861810341643947607770279095018900059388350081515284774139711425235547489385000956913876445663381876295616069864044636308974685341432689419125541538514647984411937275639828565020423312431738297487289396225611955637599091653419334690300237663678607573925765556427917210365249755356185497378645071197071461208419028334315565560501345080148566108463049712418357766275360586105226538819039449968303357810841764642748004488160267961066170009268164925170991144252883174129696225196205160368692435404022561646590421956410141206162563481965007967443425398439616960894996834252618917629156123426343955623134701455618771522588036221748896973039635603570644196086032332251365098358040643379217521926722399895301464425154904329197439723705897338008840161850415211235645218324480046518104431082223823122884156529461455968470936931013675350001795896132733023220661444281176258568837432089194233631262303710494740173216114399621031835650752440470985401103458537291356373170536351263149577253338718396557088754063025847458142228560540151573276352354824538548278446649223700263067283316644264765922107972372818784562033311532471275860708139943600201203130171322731297591636123266161053883486313776883270677716498219949157683115795167594806339336680190656818691085512887844399970865244141843385060173315891321692821821788747029108708020514271522194001083576000755119980078321903611530138765600405841674308281487935649257989701030875209904377720212505242743601616557402554183628318662186309664107419463536694552504211903652707698758126613596228886596196757663911681491672528749184988972224515823704792242797153771076353440695515229347001336421179899444418515118188566177668655193798106019521062310375664330193075436007646128761357160403549533200688081162714540440068815273742916729112391449714764880719847952537766388030192656130510496449257574108417851982321204411516976598748043708117335300053807180221299239928803183649398987569527470677720178624654085636910008175534085027244105196207016608669065122498166366097129196094513052342700470582925038898727360773934264733466806916483530540988713672384973921823598626519644196886731753710185650436694286916155867415124640090636717594890849249085264106580064238177603802613530587952950886605466887371701029380464801078069783402573833144785710167578359871918716833056845372727298175487611035836785912942766007035415152031904595749925719865366740040931802585557474288891314853295643522713889626668921193084976657542854643968161610325075172847591949157912960999918946543339064754554213903587465428393192673197755219664976357690436399886878628447843138531511304125204171820476176849235501911662945710072785874304029491309208226360760296626754858894197430868388770893133133647573777497445183013951076066272120493875934581784084083661821846955959730064790076522502866229687654137305844622834472193641844722222996504533256545910619178766265735404745262575549759491436065891996674203037658298122908317353987513117817874449324775497351115876411566336070619124560862369143722515375153999687720715943343947253300308700170105222633388287525950870971357084539845149780514177140320476324120821744820638110036256646951505361088025102044792214443768095205416214345999423504141572375663784337196288995010223725494898716541269471422117218787189626271328358903961677767603108565550588895671255924172802928465528356397816431620478184212156155571485420179297256992253367389499588251626364922101875990672878450195127809168001248357122463174221607732163746312383813560711315788474370597676636913493700628881759810265449289386177639556044134812289045036543511137639218685011238705313330036146584636350253705297871111272411963023765523095694666739341215179116296780672958007719927575504520641461856137417451999263059262963903932865645814859834492022988478066523296525029161900026555151083219542590071689107003614863719541116916419167452712350231310282582200292662247213438786614464222373052228089706181389202500100889621623109251492985414930185407767176438015400831452104364919745737667800598212571908289256978893374713476264620050416997249329633332776393942883313152072704245335405399827703645670354472708952518614912748906800833490526953507616180673826416424646563543712925025352028450103232926371041843039192429431377148458216685706946882962240988412391876742266091725629781627398309957436249744533356410855869570808507905227621416341482752051938765623519298901624058767966140722825132104408476895029333237838800010164734050000279229290404526474650745517163937808375279608545740352574368518261506819002168866009682418668865759001001724361575608574758338890630150179207350425752234438315868749410327488640524812344631869934968203450171127231161347047764750386858429854256873595045539431401623713879981186545106739116406636169704204510028757669673473955543911632860277885585458121000637186525996657267759221476043931867612741315511029152847601371727084768351141183587710472474200820579784494578937407604443908497838504136290445890094020216094045481546123725773767924015914129517170949528638447706666023164320430270655785552779974577565222073774482977968471855596004359672902178956407511863050659532303248609969445118783214660401178151368699695376517520224311481446921610535690537239533346395984378762876508884821880083683733857475586628719691435777220465690385496184053966777270055472770889448474284908387995699809299000659665418464588622444300136915739418816240294254700915520696161408402095289276556140396684667790370178900932448753175246556453298280503239223295155834953475090869588618434277345824145612571554638270025499721557526407841179173868671380245419312729528433118225746208782251854063947999106648557026152495099763837304767267650454703892604182649515852870026134646142248791121927684898347377888003766262327583464891390927710444542343713895180092601955630557903710997838752164999858097745616394159915612352567342505110987025850498237050579824028049212827419637795135411550859035488571273926813781109244351025627709621282058563881066019022268579082307572720177738919187034115931266137422286571275890208108398987282534430253600209655106304569634595639105487930163425152410984139489480362685196347068402989579151437260157060909979265235575824083694054590326379285163083823514967042539336054073228457441318272536235247651322792229577674253091589517503700856156475112039054355001389576825159534752080093984009869727840034261460478297859205439484189528195411654398895488793017407979188027506490893812567017656917425136942049041633218418958726373320411301907280431232204699834207968202360551897158786634723031245656204630122172499581016236259108622638947787230956320965600474306650205227982098427429018202146156898536802001892012666501742248463980597233111627385452007856864943745322937911148328434992415422537727912930223483898657206016227195721327826897196240148362946062377720921514887840839201151635118482755549890657781061843901803295332694226570943748945153772642907431198578437581739117589589753083709885457084611406361405904253370725022547679380622402163966714228543732075586967109481856073042747330535400510684958599996128869710473392096370845056589530778016668379821132160817861346387632407820993683247053050755079507762943736223698103659435513641624511768253381559293231755555940287322741112475056382216996085622276209656586445156855517648121232328675010782055560634302344068217009287573840836823677855729075910542234592031135250338896792100870737584302210542984829957589865367945987641048137209671614477357469253417697861282559825805918624996634196323371606359186526141535372697737432252854731947135252774784314832672684552091085888936958788780770056167864027561347199403206391217089421298541919470660193813623039616819300248347068010673590105744193963123102993874551149264466378531830528431326550831055484019790796327315788280463907115557365356274395215609552550127638557926213474656548804548715470359600633771624084996924402252967272171204347618378617650797835106067518148230709159740604958998886168352871109592143466682122704605954591014848392122889082345083718032939676987357454218202967831721946851727211601441098168347397854618323504203144648124165890929946797436267294726455477478366560692011092750107100877396330103137746249666783446355305040429699898752138483875956059607852229281523445160243277522171700948652466673691390484308110426693694986900947115950531774640018674745358627301642758689114801822957996167756181194070610707915873940538574863334929197519397862320653463148141676302728899292439789703766966206614954648169046706867617815271677925607081166272441193628033696237459038421892804648833597685823097044212824845032562194650244982017113702706932713818349094224817826773582623760834625377996434678053908347590212099326615352988433122064889924989461385722119526949705274540268962016226917868601286341360963667508325794091878696353426186927316669877718012244105483274256748848433935254959780006746523456447196063820028235194459655898767932775527463587796462596476688406500160723194038439589936826520018671384586147931017033452744872222497555231195936804946958661770385205079427734330872744793912223448263701887797760501888304961073832200378498322804675114896832774077428669825018307631669701583219357796253429785763220117852520541063502853947166920543406800599116829962940137966899366285049917319228548425410671389243874788138478982753242114681582168573369242255677772640884369013182509751755578480208052134466390729264595794837460762468257618888198215856798930671913438695605148708159432562230174964675075218227377549744526213960075784801234146962444816933608935548078349213016590323471866468381489774497346225226005470372572031080532295268846526045730334102152275722651165395866577467852527137401724634991497922328760850740777593716061163064193498039717223296792940846954890957673891037458599539683385798365125847170761384860060395679707548227588090694150802411536666508911605004881541830487684958787973354080400490395520886036041018987276856373548949451420420219191437672294942087009657605269282021564616457613966313243306253824792959050786292712940629880547397571825648299698220432482839380249936607457915964953939736660021023394693098720738983881475221614078821975393318155609864968864510697319755868207969130924880878677760464190163911886739260974697256834553157713828007412363083210129107250132056058792600371499017433083096577774318931755821933427030918039467296644179248814386670533825521280717613470771395363460997639792746013957314368468016996121271082836982707182961022351974114733197386694038439772623684367382836371437706520721057355294777363345982973651310461903767741972942323571784382112935661662086428200771972971749492269412207853675185294237458152575253423036778163274327866440447382618191111511610335662980817915548869200414326441509162686916798291310463946942451871040093351495594154746021708882678409573022375733642834054382538416437737780239479517694377004362535454409328811914624919434837583566396306200295144687766351819942186680742679593887509435460416791902480103732959115061411518439197237644460095447882486318785173202438358152688416952716653235632271914752544262370747692099349684901370176407072874975501946072435264784248201289870762247136737919857781176399228064065324619038546829858143189642151861783296912284061512414259554210962982955352424521570153756133573544576495144378571041803918711803399564131911561824220962674100733236651611534613017457911684359196618617068590274361409367560016735311511288842307351005163206642113695016601658055692855593057886655161725501944515667279760958672048123358716815119054945484022190011843620461066677734018018303678669234845722104422611021038701673299381217653897849955294778865218154367126338519433898347036834509206864437347190730500312656515344602190585459791708077172157343972227891219403260318147089367291940183980268085225433533923012719550171231267629129429640416618011501870171606764953800927219233558959160954712156156054562374391945952720856026698915298627558293643072071697661380346524526574932416153649562180236076547330181438726405544056184904444272417081917857358045002095186547237057618248660266090096384981591276903322646429731026329323962958967689086967846167635358150464836972552825083194224708968658458729536626246513907540971431270960671892897052819973475293558076721077953409105885956459654004865761098573110750399299461033747751252987423318683373448394105153383544620685226920952184184314537953285820670775219711641949149471456111380953910330049499224929447979172357411879438289135707249225354464051428389900239593174497816928709415194334674393513895986184181291611411205748548670642591078559621103685478558394279185457667746211348790858038015935495255033279561235825177654683942304211604033797982857847321688774007809567856257305896343677162211103639212575582699639793926462884528847024364544504625665424755159117027624556646884891975154433220693470482858488411496112315533065420757707474978134920628456947150187760014402618414873763048267810718557810466658622689322035105518292306376006311170491613920088152484197249949556393326279191489787805558216294644182417211357486423704246654069278198549198605251985531705062202580257677735056998730357678550909305438108709085360882985554459806017276614999101335733804256224626790997599247949207823446398165323025733198051759653106478190928879194105192901478057496663889752386761077426485010202100033106082283793311052779032239831694762775694552259032371424753549481217573335426065626816595521787529997112668168948395861161968008497687167841434347456010468325950081836828508447658205817775415927243161993379976022986260264506501687299579600499686487300330190211685846459691751509528511080817225536168763255485799408301738345712574935775007629104326238062454246945281457542701147246315290576774347523096817871760741268104559499540380014782568364110668688965620989846309077382050079970111570769769365060369737435518751779962590556991448321064964213416670590969718155168522084405459568093644296995953681507422986451769816658602666884194703752662894329395135507328957588556928632236594480543965889570794438378549552351023563190151865267837666239228595331501825563222463939841750723240616337969575026606684815896886029447394323925986499273934417518477003070174851878979622990193004818413195269975057428811244011250868922133205322798933702799177495898025328384132609263431856343506458841276137688648957479464547518966880763608523376576849224068865081918426916118994217421365844062041735377873650853073005214646974216409367073751974600880014148018240352797420111613281311576651808225243986409782956939617217281377799745440298564607719436136564045336151521057649407496247245391613323328897814067553502598874897976839993034418532970497525026645837123710466587759818165822931541935818497077717034220169667253584805560284609073024406494711618806431938111375017276404966411967651902343061750330399525719030912188845197642931307583675877112457744275173286947055459497019844570130502546325168941778031762141937157983836207698747128443715319667760948324234198211915207092033527727895165241197452983239993774372446144242389462086388487230796052465748895212139469154459113124907019939151661074189079226520524557117391549675325008669609835133766082714612201937735015110015448479670684511466403196712350282915351212019695004241935507731407333357500722100326746141344917646905335299355260373172785276632539634539234738678778594326180811500819273946328095977508579871705856074230202601940594602735843626490623393726331839084316267734654602090024108168156681610769320339170011104669179256251253337151145227805566406926444131234428377148975821253998489494269885042360713037453698000550569874426133333488683177552586240213861408684237895824900238332782040057598883517558373223162286148556071419844567403918622646709690641603000232070788832225133275616407914523651459403789963079108738296990053552932727179945102364299805311419561767527989596633078981212369780488071078918991534307296819626557416659462206629106019693603731307348170237440909561910558176481962194472742730601743128532613306651967151021007805091486280875374507680131977990389398503333543472186236737104113193883781613344037871031234494160999181164082455994560639495712771665100350842566889688439062829394344775293612868239107780876174351545411541862633784340977927098056706905570309603879631200534221295559052835514580107925741691843537829729289795811457574810878479738917589022256281059261865203493634919489040325496398584513718174726780616101287300786008928078988641898728014900318757630639637391258535474796545632525995532453933172096520937050044064602359048332984546925872422726752892993602294848949606430341561433572461681429567622362811407368952146481764383365863157188043934075654780413082119225977653251008687578041588537567513630409109818603056908004788892501882971389371439449186193344906832406865031111897076565285346179687464192814085365375206603973139947591041403882698853077634774269526253359292380186495303141733181825942149846633441417058776571349547180899530884343134442965948272084253500669386235704748510901352496863973396480497225855057468040725096577208054518434344992720188251716344219238519366165716296198586024861923173597137711637566073549534187907968829444315190963893537100648177113131745366089764427682887727396005811793048855935233619979992856485856971735311961384829819054104070850027610605446212776601616651834368376386270681197380457177645390624489516812650599109542284479011609128247059216055586906801426198858768250200691858120135316706564004975173619112023433479488577288415870830654457356576842878400671101781038936771168115863254563293017276071476405284270062009186549983889484228755271729897372548929802244546938775667267191157512708415113412451765130040835211275125455361518109147428041880069589228995965452427143698957232615910543851609014708317828486672023697757075925283798014133612870450022005405980990368842204618549770402904700053498485909418378005266718561422055435790584714647486090995783149094224853358093168487620185870175622069273520705482281226416553299494148821358963947615075234473024383322464907908590457980995089516751398544275285289740994923903217715605099382581917165284570905511497193334547264194262208095806084632298691512051092897515296554054735205996839693679182416557147737775961633398452864009126005038605440695200862408612775975841595695072038683806005579772092277531301879327483765754351353481635234054482372672269288344146762826752520410615734796285726519630949753215892871688621928107237955912523082111106421110542293687905119030639618992957030344448467215543925757582753814874778798996619954661906881000522576831461704002556869533614625745149272138542066600991487325915775153953343905252545769217131203238099208972154740562541787541684991967625114636211109658495195419301672421300869277293336961398177564293441496782625098453798730570882000056554707057343917926761001572052231208854266656687199083796746556743394457250207169748852667000190579517382525041171554660786375330296587186549217282995697774258045341302912572200897515124187752617762565217976967689730236633535414662410007030411719201771292973794386083246477504137892534128810862279756221766212745749034917829887690107879436913495416101514549936441786410278295479569883571691648680170030777284902779066054628083924875299261727433598761752134078833428303755654948600532540427628325139512436387243901996081643568079078222257809875864128623052052825097852626914682298084029571950270955845771336732609234720377701059052426219172574934300220141655930920513855367375040121549061457487343591555584208440267263713382188409485562360297340446061254692465484325124323702824023219257623551072648513086795900829407826356899356259252245578050940609562350030110180041039935199833804108023401884372720778007831512140510778589143811419409012174658203373231541121709064569324541099107720852479186429340130618316709590008091929767644443532825485365672097424377147312172791055657967295240823844038041075438508754790503679582911184878707497039814429756063412596506568223182108250442942811138382482772048242363331162071729122485126841926816628331980880047647935042258791872498087235692211931063982879098252003648540299817809940533246497485875381530208371869272626464005617310252710356646400826883284331055026102362910726589495531409534160838271423031922682061121113294665851380897974701919178966701385125194240863215244734600664703615185908066285222367926758532247061396249876153662370011064229000239553953826324374794028445173031144032530039940705231837631678859930729718205045018122931922210850284134307961822685764351022120964828648576981411453652656999041077945406873032418869269021477725677011821192167030940568570736111069000924760552589837046132265679399014204434542832443466381222323987268526491171137716634849299190242480982346151456461752144985837077400837618982832669186138570322212902185303855777483280499441125696457328597918527962894803531242003598550959725207590366037207365621295417630981934910665709881747398718594382572339126470508468189060397467823523877649263056209451573881352717679141530215844022273290928644948654468039124280511887513378407494036615468644316097242145270833582993466314915151661898212519179638217593619516552058890701856131480599154342822822019681875914205009160595260445256469756711886065114818975830112660753717271874873426282878482397506435912160774056944924498946646266447289647192504284276001594647487402865061064005469199130560968178629732860821514902315209703345095674395834353616057794707321430960833027620144289032524444831194038164425490743370754865326296027683355018813134686374912184046494340934442603455856318754460792205719448164795696159657920815270180419404916214447756226671288901629432619164453183295522986273899189309395663829099682731595159444502428127754085917146246666252613141690263563882738314839974545479683390179573996076676448821925934482893199626630949927447089263751353445758782809789067009268015119191950637269204729740657492572616291341028968179332679654895793121470745471181211055511163304569502744270536755003923856874754521640491002259032077365727055250548627714987214158867495017821001532797476727346285777824892852203942298724016643455820138273846325199211542389765258971152743361128024926935892913253161507277217121008105319765021519742018598472220020515565584011307323659630898651006478164379918320716920808740948752177948294706051189441300181640311486900542573911070025651051092188276009829563821629866782719209381403737989675683109316584401894870628407905706303594262504063439050791412291892390124170539726926056600718874219095698102694089816728430173244694885826120504434977436910613648553789403348725368344044639609993741256372238583032941431236744384537069201598055526220327905031389943430304620970730080409344304265294888582939163265403994223211404833830023981795642189251763875732830704727602488819235998533801634053728711610552082599219563830618788558286604876268026700432994446700971907405923354032867086863828140155188792062319506860087869680404512840944699718506000070740898653986094543123016124123722452734750423578296521425052006593368864019989583505218526808462431132943302046254111717573810838030949569194648654955024034952530290917352653174749673801257832411045503851570972490593267943228545216061601382042552951705746841528376675321761589679964215892553479959833947247109165449317675007299567318380487244479108160700926708880242285189278894030793133068114355715868584613639986471566949129634273413823046837881081042689524879667962611621398123356880505169781896204608887162819808788185544350239110138116025542722628209125304165545152316450568393906479954588808699081008201725763778746169608133416469160623501688300764632490204946509362481324965254503572618287131984906810736479631693447069118855989382610839075703572711092564351956160373289230966155383749542746200165482285985500959816612580536018786934126129146268319090196869463752731652122330845892208879247368880013932423151899492891621566268515279149070807153391987169377391002142618138298467274650517640290415895269363461512321697085919730422619597589232455928542212698880884280556767565138334648588339486414439225514230579668920124664201681499486395333679969960059003991457208045745036260485680610108917590997131852991226243120447989457113126519175675316195150360030313135398950025673737744687382099482291486903932012711469040486619367481576653377872161535393080932363325988703904251886023266809276938049040888273841378844580693145695569561665553688066853667189706494130318994451761387339395199597442236524237285715651046735171824525897071739859883019535487682003144656942703833304082912722057634182385228760843842479642892577355072472957605377478156036748603942372808193846781465541265608453411244398097484644577726365297333991796367470180585392395404358351798958542688734899889578397747494921871590834297114903791124133071571406159822682451033824197985200154329154743471442201292470261613862347882788009898335542561341738971414037711136525351623718024965266082921800424904235765294341773829231908543791060195286942804325365424873925024790358106592012897966762249253669564743236200746764205979593851075931521116565447868999798456221151009667630468099916775424938002291507664081479125805310579376325891767284138093091692785313512833994570032081668466577468683343982887301993684465889855507417930311844713172392622687227648294598858456489489237200956230356603219348629565420771558939552972090054465003937267184185754178069877457725500481800495231780926579710604172988605358246881237172929296274426340797535045518567349374619323757997077538545706054526119849614253513783447434152923177799140990043295072205677153491952105802691455523549679688843265625444865823475823193202782621052559072967812112874389252954701811674138593163726169143824814039976367979521547330840666951639828295532290228154549033456827937818865371575453657779538317624682481192767247001600945693728620510953893744203337919138931768530627157037829880655501292390746648547095476884597126031390742530396290760102000193711266085058815449405022059677177491213570358981740286795550662194983425474957949658232565075395058178451455152859383293028731357514102503818262020998601489446498228206502397123376483079298003569649477558474189106279825096266237887141840906556001993199747832882134377354596144051471976591221129118808964937392037200784878165524176934182218814044978333199534411565963489164575212597840714521632383124030348477999468931481466071686873819424709373297994849583285479755078540320287586320844922697396457690735026933122576274341550748538828332858164155329288499704071562464197987300275370687713218589920780860756913192740689705859601038222176624198001588169385491747850404918296423360340211917186806399921374683225332936501433414913673835232831077899689062387869661933473078889106761364564438130523637910154776663617033427368409592973438988534978489945968312732002879471568301512600135041633080020248496915137807502964856684855889155570043663637235893177192746322189610274697644975395654498888210420667474909690356633843522925549276113736201254632725819767933229202698248199662848505624619675840439470717896046020223763281196742805764605139505931286596804441913506543524945464575089901701200831525045115120837931399396800556969274820996241220619073531589533694622634508374309941059480955260858021683293864174628278429679764465642062295801387023542727691681748101639287481219875520631050203612803461117493916955844269749065819973690940098326337306637557707793606874926384048773599663312676201739585469056444688457778285828143840856790898865626980795188678369850513524680761549131696825290365568693668529103524152594204898575356267270606430876248595350990982536149014689111498815795567298354604079932522051980602399293785275880672638498882210912973310186978383521606905909139107098262955081026626122854552077279882499143386488837180941295886639449998241982560566585814861399140734884178741406347541974386641950365969353532255085979612945184882334084158068276967019222775026907198231739405134752034717849475818914776749354940728366717051704724882882226023114019328300080275722413450501668339751206454244936707351349389907462598079056161975919366006519032697371075333203921851401865046627842164145461005758960071343787489048105325269999140749028600974977873990595272889804549353049220075155200383557690437482314202708671799690069840476244004059367668176060850227997521677842801406491874784457125353260953201790829131105242540278369260759054028678015299948987021703191516015308553106388284685857864303018007682813721378556172042567961539055468259335601904204762916548990894574960130916495401075837634325011084294789874129976591391770219304518217602290020253533477322823999662682014689689881240495070187507373378070747582760445352874167707762795808890052843512087219212777715639301190180836338829344064199637837034811562112703932626980185560327241730037514179338548558723383708084587056018150987013275562019084828517078852557820082848017946065184205231404265216164727462403267541433227476436384379897887677265057809365017747437512875153658661441838698887842983326238200291270668275880518959123408813074115621004268971934209617585047906084682327303872910935220061587143012029126765797401679773139581881291292140156685632420590632647167928128982382224708359925743794608531666298422569899012591610319944102248426986119549275962498968620633972630138954435849565007485893065081835194553946635656838420604182105925646948046076269738395767256072911978391532796442392683977258475989321768293179813442890481604334310676601897898111441194927669926286850345674242750203664927670135029466514913611638837518242981262440451767133144837251246984741594280038706224481009309239185173060357789042686777316418604217904877062357356699906198785788891248321530944131571545463312937345336465684880635041255564688280248978103959366107030195887975984513823303967488920122204819266294548793819556067646769190264723823354147047324858916578751157108368810841203951802325129332223028644795218794434154820511715910681427063388514292656171224201879130190910320593760257556689920391663576306912286806775071321378283079175152511724339773461812987009460799499302852526878835078230977470682246554912452484771248461204531718082377400230364788447856884167662911625326178313298519430000393668371235567176188646744133548118791344304753526979185672437569836604348838315936299726774676566293034355519107381690793153478341492815962061567368039045294361212236841334065320855863479273206576575489213429103907564754846350955460589998061764425022875672815433918790099468860898869588483575130034061108229993158028827892061741838515823093561452086171214690318832810581234930291464202904279698228291321209897152917424438814035709474855030787062299853110888769765934044475878249332051912156225697725697461104473079929604138196836372197442150172913925437405928422577110432310635078343072946004546124618669365567110752135898914701837667520867234725799725443034177632608169256415696788144823248217716165529903906338820501827149252300678044998817540995104951928362792871397534348030653696271751870749751329877736735112967965197574278263455160371483473234924218152910564729948702361066214862252595072294182456654016422669275081935312755390940708730674794453807804707387432106308581145349880918566340135409119698328488710719954779762526525320817539292088860018668308737917740504006085554143483311353058267607485126234359268518488747322717267422337595085759951062614908285636107285112138327543680005355653756106501425953080310233592329581960044803040736986035727802750866327988915053935860134366151281668691324378004986094258396451974875580165811664199014011625807332157550358368529099508564185290225617984346007758853048273214752942575862399236197614704119092796303058519988882785952454601067650707469605091037913469319831507830550861370634440159329106430246874651020121510658370471394479914299939200666277107534347635257736718156607980085813893895350779434846548428504037175412075174111918726246062233300379511760100637448210228125350800877012574943121948436161036122587999789309865670900442828261496777617826483017189013823629530331826347446731324282375308639035429113578088696325115555333154261185827178524771710009495181705433971902159526178048495608157113756520048364727399202531184156258082404205930397251323591005179108573906353989247022371584760421448275756246341309067029726847568991908490673752669973758354648606748487876751350531278949531909575408586581489519469146236327413541167055327190801013883000803408629614878040664520246077927831968071911620170185688851811760729172045017858860920429877836246037071957907927478404600550462803134229836394454502553764907450516193834901234046992301399665378377673245582737296966513332025049254090115343547494788644796987172795536916699094817131564479250539429508536868587631829436869158881545263428283659946867204411782186910133927150241604686549745400297849625665834004785659758581112503767729928698169564848082760257444936831185804328707671237740728841429443105061480957432105477422703422759982976215125805430470209501094092149501128732546213353837996336563229737856987624151430998214510940489031101307929828918150144346336284913799596994159980654493122384376461202171762157409762197678019446075784451611586671563163893562334574000936984869005726443578506874342716398473356383402348206072128565260316320118942077071232185493399561506172899175107626188476601001359292797927158033378876583034917208173840154784753421629287533371452087161568054196246769217452911832006816833521665700122604698726732599048016133571038435310965661249360883138271729717502154330507107715410258013106046897225390594111425998681468574605552245444260670309237889815222755802683199435166707752006332181294986220972243549187658173011781907240447343601316392289517119913124893367057802811136877356124516350531568701542178291245201174458359809886181301603173570490663601923021965103676698301330903953197559591074064958665028101251399036338129650189588785826028364740502661599794833702707264688873188447460376067115984221837119355496468463223939090410134734280733112891523174747492694294184751967746599726914532355665914101567397963363973714116411608747581864451808426819681760290060680018813176587735322398044725501138216336662477512402402836988411490837196944151204504660233988585438582656413680352413432976482373679312589808309803685212083876475502636063110099828907433337286271419855841792140450763685104470233610994548604919548817907234334431492590609030313298928707698578454883470203947951708690524578801743099141326075591711255481026146673535416739449803813187164486399416509325598198987215181498709035004410092214432314679604999814625291662998572070055430705680149480446259121157579220263499152727772817914622485395152197413526067952033895384296345285141503265171419154680992305592180324071227995922326638971004972970543119993283279486272702030028639487814158388397578033088274128412486592845652154491307684741363857104363708408524918764768771090263011676250360132672918924374027010318371493111199108753638449255037998386841752798977210491962858137148061347332422161777522746645836092730093760848995675415543988353373170235641587726558172595664287182869488877914554164971355092666691653932859260806960127316669188728527414600289050281265232851804904437600657474778034016539291249609481799458795240189378651961960987388249783213348794450654406191196763888943550674982996603666155335022206474346437781504265908951912450454649351370965321798313954365745682056340280984198984881189418430797820583793626563189854057956506015448782568264749691294425633664838068281020388639193774046692888881022383327609179154286414313544442216557723560788182964919255977668415851424361253688235466580493503345313108406442393970567301392508375640011596137297568468670982361839893697031927461289546909004747705029682515980897635159850692050002089621889394625946551393226887213319535379890626090083010386015693887819885497798873583883103460082278278624688382451105879622925925708892889382622342425962836432487902850044982699521422601468195465350428857741509767805826326281396900414372691331635757554908487322696635308169226694731362734371058778673677773795238217671011063247179164425440624285755782728507503744722709884897133751564899372041481424086857977371936879394797725970200696907020281820283944737657115362871537560637472837351056584279204273149308163602765343355213309219049184076360224207091016954026032738125222809580546565416271988509189484838278593738136492754421025832089791967225969446517219726165847881206267016774597002983490266049326511445659355610321315151858438618310096603542473420221149886102840176442054729147034383392415470260186657063032886589150532877356538696024416609235901506510705627385354883292874905086591450563096432081611963708467785614321696095595396112027107617450133817374171211092890772975191772261537811331789998298162098271288592192505341731598157126395781623996819513975285203270657740876949192216687778515436576329648875453261425333373815121241552502119071637870335336589240125803055390343682427466884854733688293582696871641102455642404418467838878791630395935098935152380778478697530180499006775938734678422150025576205010295129618596650430844537203396667290407123918488197308893462938595495913046672975176775168426831725027884855387691824797328223825254374253245765940700740168473548800349945547444485494952165385573822710808306854260386326224740898017160995448375398790611778709061383547810980494532987520964852847132209194500808961465344313878473913364439710072835327397920355125860428517702582310462668389214872093182239187005150902089848351704754824487607584941196463102728139154026217580792486616640033514146390872584466542412174328751357204753713527098117701559803857177881369099378321082493946229990788154709304017633390130443219352327891610112470536167005268199682728983138269405000894141836882136068303081867429169336000608718979100546768389208741983900760826367865203839324888040477724487041231777825405685006220241885319186327993218156276540314504244731387101014918398956880945320571921994149294569384284604329431117816909666123338331508034378540448660295515897583077920367132168772996124933460137684338292343741975389531534239465725349873451805524733346082655920677101351235458113435600797044767630541083525039560266423997053026357671681028740366042252486055529344133731646742227535096106793133061009113969932095210479063054282506872061385788202031169791042839227894518236208385335057446526004456216774806627374350653429015151958489255074756786505838983634433016975787398628941144668188028967912268356591522145584286987140171258168582774137426015724674178245757636368631026327700832936680737265220348583343122744916705106782542886771467178360546580699980116789247222503527766083816310928270695951383325192548703521555619233502044131100362949844223429745857515727055696342508340957200268793151141155589185090320214052306106671719592847127134578356760191451491813899088601272568265787357088055068155620810734677955401351764136506998093867228709790105510335879388923026459716749172566568344113943300193168104502714049354449018846731563311540166513407433522220593861318128757405348151626106280416754877400391561664138676960191840472141937675372178705278722415395164439619102444306568803361906461000730145513680413079034078691419680858950929953104705702073794716567393599334346802336517914009591156155819275511755303513826096378249203332773469232427224687272461945163865298435082888895276465360539314011861776226692023841199214084401339745102343941430268512950978490132619143416875579948860784792782174246809363908881341738047888707053998979153749638311601551155520280673232246728443057800255693432630758535958449686354189449217163371088012675475255212637744348042987789619252848240518482961164364611991672660489356949088686788509708250418714554324053368424845261416468060939736683288157919549448566534562940500386272181286527321040200984575313092131071361611542538456433192441491109721798694871033754882196781007446341358290966767850826283432673081367668597422594744997350409942761486680882408510336581734719653511462152301209447028077557031744019990316267400873162086471314108685804287401803511132974566781832135646328640479809242343002139167283996262971446257210125287262481923186081363352896628180511905487752636423587016885556383656242422963880845957988399369245352429259974443801313616320035760880106499045975214231718694666906071836937786579003796489291071956921212619225302523036838006569736123396016995128158130089104210741719831198333874155368212551416533115420244085908370370002112743022749467772224333637264986668129162644594243742331455178866088729053022773929792044225382244378416000563484714268721981347977672611044894963004433422440750142796263200149835736094929833767149569723975643477199301322963177690357341379280125792475934992796461130103910715786137560577596383750527399552695465379077215275922776097242931769658356457258574726849547124656428369403027108979147653894647731147981844899717906059872606948408100068696745762340382266537628023919379864051885227824691965034956916091354306963268311750480159677528855653586896819885354165378713527806902990024977784582716935986684642093621491170234951892053536941177840194709229512569007195450761780999696149183406904081356392069488494031114201286470700988860775479352395804434342767164223802211691687743494426353834984896852395034507927660663079020621153278737950784829192860149214644076170386059118377260509907330026099664728354340141865246590973513204963503244169855491310823159872215022175403760786730198750346296572846280410342452885786546985908996344716936569261390633840582319064394500713158469906269218506147660588386066012988855510652294925086629246460864337367711963269509832552201931395468143637256472277439975832620734715388660274794859212764850001848529256351568880702518227538501432752975143351785879316797872959447309431596854849200605211939999363545421685526848075093314334040119376158421864043141798730372263673191102060787524345306652624473913030704881513485696182123035834369285707311250409795244380153040034178599775875810787489043591452704437734073934854005505322094466788590527954866919505933706184490479397912154246754632747918872070577481941611579652844755317113273690148297012056019488937827045787150833785890526956044255759839371829369359129753670349287348778829924447879606468861299987722172190385296309669543324698071610413160936563791480117965263244260166818869841310565917440469393309348603490647527849398630703349564175199991833595791404191957450292843350427237247690990907663684301787572140038141450019368924482851558040049670104829034983543162121518349661667751666152874719360455123211890805190978306243761732573547573996007336357642190687412893865780884307296713291114932385439622126161952809510978411146346748941741225127189724538000829611825956703510831857366191257543244461650308135940607630441479854259064964383495113540606980736726940023889709436103364638082162938251393546402506653288937633817602849039384392876679857585739614324862732471185056598200963007794724116756184173530004066190959430865212835460360582605856863127721902729837565215083835640601173997209971803469597770586648532872496371214292577439559841355133120971730270134306010146066210517260149853050880379853941122902769730233099958135573752279251009522274309638723526199833955714339294773369188838398129259014274913932174256650948289515126997973221421681970702195242401774445184750913524950505266254332052180474384191592162460643217580207423800649974850309279616033365311918577758623643821055406985355497373387840181955262931248618840995092962929528181214637664601320198013922835305765716677127283308459505152257768322356385128325188442492213927244678084642685112804972408528084083767558351380678501578570333023088379919774969473378922478076096031641992674901007769000753056367119618592775380177325851773467946158323284385294067763745159192999419111836416905830777420591729222008689772140900831707403219305181085963496950477503800332692242467067049388651607689542544821770565210510679866808376017357007076723097547935965097330812158867801667242335298186775200099551791972111842143612703949350419908582820867259349659741557787787371115612383984837721610244551115162731259329549491784216752340576891376299611612181334564509790866221559315951690197092762766384445092888441135524801209544555147439773481683120724550965089853313644138146512110003992241564801943168683526134011504498537005403741002850147855463821634444015468344673076808844730399154955085063749740661067885110598116811322161686042033187433728212396805343509136711867585125946864998125978091142051773689346810598599045405904483550219673057075115344805252374815027978080431866073480177610970879301828027781754709276259030314438556688854840452602668251187486121794640235796343755427735793188113614396905247511451487495834091132734042869563731028460009338554611529906833437992587990008251622586476561033113280103425836882174406050301028812707174818970409569767380796621697717702804631121119934835304029197384814146114712687218704020961306197303866484000068660411270959660971172533940995271444471338604473647763593368770726162671839227479393482940364123008129016642759769442192042842277564353908924681783114279670405342345648828095785660306769738662846591582438660563767630171387014643290346969429100844026050371525145505562946823089061773835555640564599483007771675561200081559076474799754649233430855185153114997053906081095397965568028971895972302141434482098592854129507843505926690666403008119064549740068496033491411425631540418498741319229012586842774477129248627070628485281013413570616323848045506213241740169027080954940634438279640259953851387091658500744620885151122018758470420400461205246057568088076350515581085495602283637770392816559224125482749413199938461435275552520448440364132286568909935995532355093572897008935659767257776694249974026486514943583908262290697397636414767934035110990913923789582482237092104863654440801631286429443515523984276341916660705822038491871550555139743900473640725280648527888472525936974629808967092013652913278959597637739996090291779300693069834927640693538130567688333011293359992634800846969265225193962486752288436245024330675813905519618457870471140661631356647387211423338407518950063207166579574466152303855780608147818410895412074088673679330819349311545047464890645514856663860187097559075671422368489124639670834892742302565540657620405470892401636837805671798733975165571891670785289696512996059841987119954773081378291947107353760631512273773637157426438051344938339327495419089982502305095934463138052090038071857497674132778885634436330031817842561736048485002403655203593184397516796099616861952780242746431604760081097555426894534401505920866363478773729731701974963828534312282112793558194914270058091507398242526924485876026996850853888844005007959321022901355630857683761502307344673708436613671296532136972863549754319735611653084892428906307730937362705463627405805278457148452327482037114713696181409627996100770488004985824132794991333477619492873093835363696544414145635534551695236722080143616504285197153268266807327283766803335567612584708384356920388052647779788908622919775339895565952785513233672002906820229724073907627028559736964671063995166267115871722999046992702697648872754084677515204354591311935751586136201657917375847960316876886565311179024660600363087988256991554579299069287451830553588930465915117045545777761746907715166209667374646205492097108369813739844799907316001552049765125630713027650891042061888597041004811480888759284784996682987818835040639238686086143801996557564441349539310822803473484115459462022415787767727613211345574553191910362952591664180525847434097561077927851577553140969423505727628181131010047660811230044153208483521779854783417275469102311843191566116410322598101277300412817651006773304135530176575890333248143156654681475569225656689783668601308265178971794592744168522391624973713768895431070416462485539272562785505093077804650195993661452200688458591078266665495304239697223481225682376731867712797563439623471251617010473380405892452290866379711475723191827454025667235662704814231329778283082367852265993791625459575951644385882841114902685509902645669971356989769249913824691593010504718919505334356391314051012726902666933699614980483505659959317030583778913768336915866859971833254544100796051272176749928403578817416417288747831898006761617159222985716243487454469358536533580983819311860282007326441257897894076750579952181618092982876355959421872530511406689514594638461236271722972014402922917197968856538964178954013787735209583277045249646406922208061392214234290525434116670359222377825203864369196466527840632610356083749683239212838195542568589556986374670922357497620789667347702808383322729708316341352025131144704648351582504989202044246062735027487644202340241114766030716055105950096871742796575010687971852762855209425524010110908491326756015962835709782698744618960211659202061839897967475456192348396602063250042097848973455313095004173287964394252204580154991884542313682203084013641373077360531365132759233749762109538011135761019476312093807902090842845879860119611646212828941879619616326308210167358538167509832068102628536717623736961381099060670136444447508733156123813258628948679161963441359949076055305958138792989087635630429323889132382343512151308767576381534872976870328565675371963748401624461050873122554826952530574260214596253346035043599863866246348755028282795705293872665566809792449469314404633837111779245089984646440478896979033804440989844204376026351094796947987763746408833661680141305346038094769206170404952231125633476775765774095500814493092503382368745963959153339632898279378238416690811617912672559760278487105092675248234257865232637505240102382637778391174716200019735762344270702613364680812005011897760371481390362076062184493953556232774165488224112513528428428798502947942388719876898865012435383624535339794268691890367829266297146290088011813304967779749064308890572048200251264787995867416054280426970825138463998268593425686309036842254621962590564510100122992915402244433643134531818057061161856318612887862408054372007591687270380219441787374224824886193280305434422812714324734620002668676230167830433125208354059095812041552114849576364906333492920514921150407226058619047808307588961872483150546682875959824285702588536015502631304151653674259838593577632575952432413461748832482414127218631580975115467350013337641376694476744705601792467144472401320034654464359896190513331350700138356999920914181354037664854135968747962255314662806156333429920398263328977353225723348419962959456602321873433873575092258459686152600515148072550594438535227195868717901011001780504988481566907875423271114540212914196552433684649216772748525596630728278610435019687493285400737125219658705508258681614546965424662710343672062308730051035871743713231191779432787356172583604552259432962690095048926907898791215009242456134625524771930761095624992731656804800721922088001189794260755452400465263062303839700650329335484886077934277301107758581176308166870818136295639819736644653623612427098893252605118362696479615051552491220055125181182718971346569056312871679574322529187624008371098308696381848771916238672358116170043141076618445883338971449032888282745830498415887588972800195727265122765492057138057842224651798541167802523935945714684741303599983899976861209349965236845179230033423549410714336280609457335548150305051427000040186345088079421188779478945282106343531370044398430591083513727072597603372188030614082642138547773617830519324687473278750720236040966682351229896242647095757891469483978210141378790917007500524762973735039316466011120337447166534460254126384900136587862785600592838768476086780700157970936999186173742907879569350511718686274081947164555407724609232247181448394071770145185411549658708130564299640002273866331354772855550359788125968441523488379683337087228082378180891501137154308813721076308027925111193209293649777693060311938520705046714452986731175356708634778972712392878996997655452339809547081860258476878793824800367628997326625761093017181501908588178782127844576468610750255186250632154767465976247094101416255154498008503864574063771742185939327695649476478130155886308875438213228470381669084346196773413743840386141177738264342664318145575695453573909443621284887217897135679994054384652481685551585160631854140024853869007800248322872318348278468803380330873328669168581841806716623285833598735511397783103214576150129242607081114842315242343898825783437371724321208449829406775735861169351376956934938010174477694926391945406783148926610867310172479082222425460260891118912992781773084601982511698929127605218113914800991342578193256858458571616198678394079092830308750915630960708368886772185158398220253463555648401989450725579474369571503248755900225828665953623155494707528134265006711098629707026037520862332669866934327116051490864917102443418245185760529027885617061959285943395367433332980766346365338556858557393609312766542349019729539903257557690569827669273321370781039356173087518382822252535925098907028096190032760049332276040690433446738922007024699263140875240916589991262733198991942926668142495292842396415955615532951132379612170925562661391045312648637317376460446830183122033525944650421963918189074596888784559036702625040205627877439914207916228767112987480056113207412518982278358389787420242319923548099548555123720347799677992798319242416852147536902914409949498273834725672710543739697586807543069565112350358241200095206868220226959483214808295430768146623468400492551596458740947210491066670747917657358328804269287870542043392718397655182812093931160983673400908235451256798610213985269982198954674538410107350614859105470645676326203056638343080324475584039741580629441966971602945683595901867704166689695717806181950415241184601794947503957780919580855198176171397812473363398626522509032551367432697023902572944946927593377477111097191267293014050916157160270717653945759930074604801203933039022102947940265351247134229244222517664159661068843066491359746726555468865819009402413284016781746865088565558978460045305447006831694207143168855251662571375272227351890024145564638068103321719614448279255371319068285618501822225011353213565073667218003123939007453584872631591834554415358439508763606724443053306915023384485783929024846629452798678181536451526034021692592592564671151887242671823284056498326138723445314202876612572671298381458171653323695661750634269325557562575081468670507725743726493722523569806560440074420011256669028567193740535908158010667968784211231341001767292236950062007651841379320355780717109281906796802880826931901367560220380406163826272952443124309491677790919018930918598421813090719127382130084381285884034456235243694550948712288281525198546959898702493768865619175106678924104461053767192651901725109706253400832080453973154040739319011804859922557986002668618664691604900395799231517085095655310712444444336813294397710853577104253932953755226465237865609216097098910358318220559266513138538167911368847639317667676171958204696869429107957616252531091491305559354457592284020537170173620678150051603777384512885188198474783692312038176541280965071429287567799891486491508849274255885445566625722661789803836358804867105101186145532012940453557785529544596878427228616639514750115935529738765914266247971615710744652489618853907335949871628370384996969108706452113025087990580661793856998638484203962351712099177709369120109385902642104975556175790900616201260865146921411784606619286064559535657656832037871221267382505751710996030256976277570878829589283403252486115633900198105130057085617260034389438379659871653755127045922987815870239071177836304447444237802078671725234774736474288579402433888542996580694212708835848455394245411536723912049866543629607932079524241629427286838729191540693669227071746887111776220782954379004887452822166232833375481979880020426161792758798341310133754341281725199177526243923528282160882014106706632978196401358222103491488803353626645854198085528108944460325710091164330828301430230759195900460363940406345440936406273901035378019135475115733725194447846898792466530396425078394101906747583711802412700033615013208425386566582811764238833835902498506644555113701785788211295395291056886772038719906764622905009922733219081270260185486158293520629010411844674936199636227690383902022079228274168023885628932280873247740401024050927575368571422909131837767998865975871248032673108715555288834157673425820967603572300989120209083605925754818498089315275151851062248236442031784764703883603991722796053332711355371141060633500630644350317395202967985558012555051477520397525223325952546010742553505577156147896191264085848470043004249668737887482975463122136393366712927859429693386694367145669522295074149563805421340175284836323023411760595049260408521876662233980218129929454825300365265096480159648109797800668475848001187175820426329818017081737153302143383798340497440617918581349813313115020694598840125709575156589253259330089535395725892499834293664623191629485214224917238231354013362617955141347934989417997533250844122982611345904831608491914014257013353252776210490820600170523488831599904048941495321363531323994923879074492006025034767823380055673276195482394310161043627388415612443311783465077894924672862439085149315347284207722575076770754167232891543577255836051487177789974981110694370840284164425675916395117791667857697408445954065621682252439679511045019435535462303950258491804897501479823675095612956342690042470877321034563063499317159944887422256905839571778639807852962515624730115121708060964982912840235784793460393332747672586141361039504348561859265157015183560138872882827556495475523347492059004113207811194252351475342678973187406928216719133936579501229183513065366174685667122834217143855956579477435017088460752787098668909766630295209447045929644625843955218339348953707112424769981677485095835604185005242414343289098377246481277689469575469654265785366017611639155545124917431440824069392324112566345728353464965617261514712288472780997552184675194718154143403701072261369878120854387650065965634632221025360969724458047107699487124877838633322480399912039840049475925069476856396840274305394096172383707043945051617835815891092919665412170919102507450371618496293191181796372996117742411061693836127134684351316808185278484703021483687099997701456559061294104483436069864153261108937877554197866315875179432161587187805481269379086199858863401800642908496681603137373043510684913137575435618285383930875521071263294650801828995349925840831714294327942972318806324982309407779667636348881841847246790556818798672220450814654134524918158408449959413734174561871915276371211650787305250396635683901260435284986053785254646275436869491619822473498485998902489126022368416337455725096362045145071870551223523659827305303141913716794606176758968025769186201963000560908990937740511094390144906967252152563647966954779727077911473854153569511169960543412990542020009900615697584631555848185031942580424608660004342198502463660336633802747622902138969162839580700791330834652651627467903195748664806609592145451822920449154880399266495844553830065642552057154536302051999421520029915499619911550421248922754951766529148253678999518641707855272460407042628704173048591972337819240550737833689118296904279851187097540020820283260974488016273741848472740105283586176498928321039472606207012606274148889314704074189215960881678656890238380487547221042796032743036733297993113167085538798563816845125513509481277685649574355433558904389187812783625686739272786888339026356071814612552728010128694346818742353382234930665739521454861764934074392144971103404662141377950692158266802005853947445134673449446306319985573181597571497852556898764943900924485809876936998000237313860425910284745491138284177906431674748961743362558932280069050826739815698496172925209197637923524467716611374187533930611254958330328871157604024582711395561135231028921305265319056115286223665663083793350604371157613918993900544140092277047336645247550494004263658045152862021852290048562738759936832265196601751420415044425045157403606042196652642253490054214077212028211373590963834836463439200728183589246432913237199386741666381122649164264822056420829807524987064505262637881514896562092273350561099982186585105187843492957854249200097945465572594269346576107110627515504444322586819681399374093513480384020087472784760710149414357116529202178701127674150551541763549363391789421529745494104966863568280571194110621178071228393521741776075760573295231455715035425970264224999282210343064405574437396075967883352840881670177936388224391529931548806495398772565956317834184145580561237312662020809607235141238093474197453178100935579096824108369780767671743111316566977606757646844808088121666689617766898181052851019006877976117188777222529983273883072029178861406215240055945784849615592209239419862314192793156207216400386372620112740645113110619857363973743523985252067948218925393851310852289729027105255275372829932866736210162889975950573327906273445127105666791609044467083020599630085778545863691874509732277132029876182183850803980063497726783243226653522494776345685222775099211020187507654040469782474210851363711861928462939893325459993397737893467750807226934171437625124338397282825847735564735181240027361551235374248894221560053707530638475538644831127112036419402369689259644175284827989961152633404411806439430584988737277703043534181665986742941205814431347970048555569467690471014898695899128674089622769732837739676561697723716227592686432969912436399275367633481376716312106819014881238836894278778425263698707667193855602342842381310935174177774001984370394525050829649857235465031154229061513787942686074385721136569267789032273363253598024242803429928903225866384047592447207240456759272024943061366123859936672933079229283061503722738688240645606539889673251265195866335018349688322996779213066994084754105056625364090538011046948097747882365810851447073047835662084744287682641123438901922367789495537374550350376309432015661536128674752111277156529816758020359661740357164122915347689145266889483956281947843361142351055460750604073464465451306705612043100034705248328734087187239511468389140512870736425301022894988691262472668100744253820989893817200971039846306508058426678361594269746071874310024162368662431065070307146494031195981913823164894685992184039721795557033612547516133581049830306839543532602416095898696852398427021815800592818741489612291001369056547804268992907663027249542424433719794876452662355479942589303907085349965683004970963627830682869047187622017243146665060989450215964108384648904039574735219812744594903493331650534071481962529652629629092012743974758583869809692897775591966054688846038321542850400439607604319935245124803472888971420844139182406756424894646261610307992283988105946087611226692306316016534871477045682843910197192654078944490417317828113013695437894830709384685318097640601233106931950392679446733625943343827264497244722458754409389407623222274077694629400936642189962575672231573884286334279528071290199208357888105141575298815416203562062497761199369462758915515398032144728780753349507797380851811869290085357502503976071874017472595576502135319631823608653275477067916879969735337467547340377882828451800592621839757119132499476904024234032892613244936064001650879714509692290082202516086674181415038768593403939667055303165881410214923287167590420555346006424993832484474705382019113088833088121402826519759949311085708527725715545209288967397190122849403110629794157575529585477534048081258500622014728282675398067680105303743077600129943360407138323220800668830911841685329352935730330689122905907492824618605040096664787568427273264359630948636492653894755928146253306751515960800587144619282573783196157501502342056159216686680999627161688503925394741665455146483115870692652541513739370482263509236393763661185279738769620037284893766688668122378742370475804361584209594514155931657712853603743985426861477483398482542632951305776000626846989670376378706390908770733990891354792091461456547250989459302896150368219655069370294971561637399355150201499008591190380803371193462850840194070351840341563514492312485844553811911790416107077529373967102310054349712746662936895054470492940393668729914403893458977027101691461682547073493333150077530002889316074385435458645252642536654700109824409302413927142355537462959645347266890077150905725329051000896698095450367517117693075057878590929640921794026472834599905410097276995683043092007120833737730294051768084945575200857274296952215347120184570100343227365094021710006145739881358019643435133910418075697629740242443351974866093887503485168826508803665730110499804785830446810550409668905324867520752425179733082770197376420737243351105620877630639011500596733186488864415981851609929875333297090282701029894056960851640301294466488317305725394701074955679439055509740910489846556646011570142417846272622169611238239930549008874544086632020173829413215647477879784879586559460867214970419366479195742603147394302128812601952733547597449338342803252694722983263618326354401049949308227653246969298906892844387077733044899988130573160128085090718051104693682736305428030285563432863138949936626622339907457122837923107791523358431181368611585636047341082286788788344621234508890664482280186474450822445730173969087944709078240494680066289173506727473103362272763975041998711546959161106472793357912624015272558622754253246687379598824923186864497772254472178660153773804285381072440476286170761615871043029999359135072736592726279961810093427972134837947706413941225106999332372248878811252162022289348879426850921133902115486613516506963577013777317220870258622034442925812769823782524199592098584694328452524038381047567942731020303358312797797077031248871691464003887453961415378379238132475675869718749429319303856994993287778522088282150142315864607359466942680828973057135332297657316723104008007716835525612958911353386405647934790296365346128043700370374620168519510818238941866477650557793642156807526232054913370806415875783645450782467048636876623080429184988359069150922134230803873766331346180256962846479635827880602796973383780224158210647576892512232743076499947641125886528613235070538699086324348634450390726013396201510856200645711454882632535266828950768987559736915895201828236529198480339350782874991885639780432557096015724909058444528053879748565100410613763899675935941666074523858665426671343510796726836484090789234081268746468327930911271535418854596255032972852544113624325443350256405402443529777479652955774969087091555766916972660987865799594324903140217022411411296722334456139273076785861558505010427314769494300388840685930553679371759561847948099411472142870128692083896584584307252725482899289634329361091483683985294241820778265553191983282537665180285786194476603255344288615910277787197747572123609077248871564369898520133576399907111439933673767916527045000908925061193255021074773321648787251350978591901886719017239300612805975913462356973067403177572201241603698193286329379062526741954380101577383560820661704032434756567010523753436362107543055449483063989739229891123056529460741486407586971086960808977885007889997358587763331510295679423692761169292883862041987072536243156689578438951966955780578041375738060743054480976846683747312232289075287824509263718665801367299046118483568533842177550209761355819374263746152726433964298877625512930974508564840974046511183309834048318941316093781019863004551287188862009971272169837807301556801018450556341688500246292949549952004481682311349549689634267796011192307310832807604244661208383092870706090555557964731428501078216966390937994797336313006981393852029149260632585620300672915799727501871568487932551692060562511289012892673447521126939075960967233955751053215223085492774383882880444414556599966994591019812137135765821768792189355059839257481109927805123630227471670229492711579807478579294506623982498049028586980372980300583167528413146897710600444013033495844902000486295072080787051203531261806327032312730343416726362422812037898448542172166843979504780131520302229913267791842210345980887697060042083048675931844599066337347349053090543205836123445913257396236503732832626872441563341368220801991238448085704319320972187981258492796204229919637103021854835671402687309319395902008434855020070464326180971824152962205220074203747174810232704265070044543005356283681318790893013259757889253514375953080585720100078313717109349039705071552544042471059676028483961772917109235070800656935549731021661994714221223782853607901927047730402651386137565552145264286478330596348033640936197408895070851625686182918203103356121377580606756264703766925169306108063053715014723976925939172630157385596358561475339724978671948482752806309068741726712407629031909140689625265165604006336056333794139519419508320659972222628222167805330361559099647472405211805677208654436115661958005257096651910642622386266797539828624344038218829443705340488608034432855126458782549139514343090362011491710455843839035355209966087021236648879372726335122534437204546224116405823972158364700273876736115580222235520703668409480587277872506409499447558662870608030487453056800861885125414273359522157874148617541818432485806515686053545533537452273911237891331611236411587436939257757060204568516109806965281224018113146310284336556702221091190807446070570514869435573994104067725409239559314297695707756101656128847008077434586279096166714505380819324429332028949682018038316453701299710983728562038445935116347951532980171138727196087325027077573210830827911611123467695646225125273161459536616004902582427707328389673399872642053038415257467810662331389988162707753384523929365723841980042596856955684890231807461246691919739241479996771428868984154899358290520409087208306857697412248140365846624991286668752631167164039352081897317684615746343881533249881627242426505498554209787866006143138821324905565326659294179142013721324659638361537334871269101180076618739147325831312169279980561442622985616656084508598590310183281115753979197794611739604728572336382526540420567578494417423417614890231582299717423450259208876108162726832628696434495064887681788482070310160963597002106027508282499786831122031334365717782710972501480004178658723906713522178474369731904973332322740633651114649471210060974311254949772766064113789346941624495979433548893896924122391381813821441819475667781364389984005170547624342872496791906215527017043986498531047300537328547066863203486146723994882561374903979691532036098819588876479935772813720797252354051848934856825165119923986851577956473172650032627742245320504552005264059412959630740257056473407394895577055938889678186339915217172375431319020798003556661495588292212278491871462643192955615015138329413694927147446794057722335418151127441495792025110020965743665033007281924702463192203711376721486298109306098197207742027846261333333165894043764760530753460074737052781844543870384654304424562809776353140344663793060080964930545334214843315647411154076665776015466162384500123002634892576004260555991551025201422962130044502418848784951726990216631903243476437465064626442973382550053189513535874488163788014054981702935676024959445448035958037697488659425745450268399917620161561130721427899859923915586379676792180644457860787110699649079839847005334417945405891324415145620732588343800860928343035483871946307322987587851416401978279953003891947362886412434787419110342079577936434705718357300626762799857702127854353015759263148735688283689599158089496145372906001409618913600295752280863097110634969869145098461190242260442799009910010822049371489386641863432522166392447295280228890284551727344972609611320235927293632637555217981140660434415766205000258976272655286455714020370845601080176135762140766787510291605344261159336137343807822081134785359112783307870179195484001549006161184309219504020858400730283678222173206184639007014948492127777103400128690513594503615627758917357030375739663488839590230894605167664174035112761388938322875547569575176380660910862472623395975294129410901306840018847172167999880693691304675538438194926216102720559026979110548818142134985265825621388499314292187280086490616521946515465449021185299168070285904256153770073109844083136696000497712319745429915327913202668961223551961684594742547897662866726718418745316965848541634200017898095778286828812380743626543096062840421903099638798003670516217710843745823487853151795033420601789798599656132072599481754607971531118447116028008600161413674014230768590109173158705642441684083381111391150551487176071376070037627940340882471002023767507170300933125891601345501182066763424132434641096373416879188480050448238089699931217408989115714791159408258069841323735605978227340204317987019109848960122824142577786448125901536886504236994665532916032683650010636508671836658107612190985309052909256868081534246219298792635276474692006196405389952039616890511896910488771576717615557072639576290241477552139922619056883388573676221795334662308646561630315387026114756202676882137872618192098851331336392531730368937799991282000049576422538811456176499378610617216613242462340776619254089471482944286853601350659488641011332248046446259422925086859182227513904290535056851876168043609974377453760391666446169669816731586316921863681010872349404812377206882872975086516507323038281070785357720794558020489320232212308746978805971006669543837958595488428644337875959970713423107090050061770256350852934743238199381959793332044493533374320208655592447406174470005140735027094195062186670305251227086177472344543907063245728402850106854532394532178764574549459791989630532739855337911032269969398961255753613381262283380374095751803953786845565413446703222066653950027651779485453038770508135147010255112986548485294773211791822088453876417082763528427434722405185333500711951411945248233827968946596711854692140863851717986355917000158307457306277064480705999654817372996585576675443592066583075012686214224130145218843341382509195617918615297316375981347058120033945833624006778584176965739942201859895552776973481242373369110726365220918318588529081004690516153381905330096926269979975926948169682003057247256208973055787466890355881429137719141352795696921642694910520262537274714689124449163304881443775038726182169706615523942567619871801903423691894545836710390808385189416375800477884855024124496184081814898740490907508815039784287541525528090549267325210916482253511979195908442024671220478974087199247238323773009184082312339138443918867328274193255184125651203981846241237069372598436322339624576916889795123945967846935956306332086431658452671634518352470853661112041776147326823942687192377164132333587912318589933434929879068163268928459576243283801033056834114897987241724107203345034530819183624143755304745278982190713718568841858931549759063388389061743318154043786641339722000023639076011003547655304740633506453184463151980863010729282940803729720652984275464477267080841165539286871313070224014312836612450073482096464064475744835104278811271559456912837721582749277230937689845411215233538751984961981895668618465728301778866916332603062480046045954098315841855075046017122711352348242783845035903071750460706797887191095297427370267296950664520857144030967530474985147392423283332447727045222699527137453900914076012663410094308444706799536973835584935226432632902190680550137359769945173311770071287308809930045745968147706542811069601208251622094867183664343940680442775041008615303229763635254088580205580986575792487316001186717542926671329429101970107402513059833874988744526241866012997254457812600351712272501831085902289955729132490176523222125512779636681982434011914456792415264125774649194662270984561720400693589311681643205793211467867398561075806697918288520270103620228171222893354431176558701004019926726248965628446658999640867522636718888030913469317929408209546878626319179903569210633100470349272863961724398514037922437490031688787099393835134859144156367381631818384893798948193964965309387507395072396963021061328453885700954156319306192385565939521835217713346869881409143983662180588564320884243530578200778773276534845945910004914582061086114427747000108847226409723542859321154346662232479943554702030466748277413120442791228033111981949916461934054789505596141568378408255054162463512777137755827373662583116832055380666799107390768119234080452924246744870605955323091418797794587364094089556327254459521763698749124298063222245358027374875262797456372759617275378165917936882544318059251832061524074981188374757096492187586356114335443796666190120168353568431112619193371494149071377720072430441245764240988488230868111587807038413741779476739314952933582426126877294704228093225972740855565176016969777165033445970675810739049163212269340778982577832055648654479393978292948350598093777400722633262196657454204883590479400579716942782369372675271787772104039788172521520823167738299523790256056680358540397888654944413050514985595870895223677336279944269215394078210876535654381231754440337367097862932075374575840885629867948647281621261095760673369315331749935242233915399910078806559371947545951602459629271646628762486403514273482100618281685410589890591401286458639441957795018219407903807469919148120369657245297293641616374590938491267641274649029692174575089082600577236028049720844999229448647104234388747887672516679332816005233255812035711109831471285371774553675210454874133968173139820121729559182114011988838424418272283243023564115091028992560343396594854988867449729897261487631282741240681436596106851773446130115578564825357895339768708555322793608726696129922186639750953439330684677987628800200908988044480287814650546792482529704971856527779482909770004619075221406317281747900619246177701585092924252829068063723684515807185392319157588267329478637499887931401025992943599608283283285803762154746874360137147424456196123071353368140684137152680759550963718243345347548476201352658780452147637924699094448657686432416628057725252042880056072097916156426495204470538003306398527902565302241031581708344631773043972162039343524090167261300979944971070243598533063163156495232497281517672595031536282501285229882926275289013875595070070456239028327104421243572883100978643745637868534360262293020761575869743085053349598167237091978852931081246258253207810648147545242931787383859599670657168534335649787489657509859824198913009162610537895592345361807236620109235152263476043293376534118593291753506736828765137118295184680444810874636050545018412188887389171855139336962188951981690779993800710734208128993682767232911137841914346972980472469458331423349007184741584847766174959318918001710429815314821647467536197416112710928360220178359898927673906882611618188677833534354674232964083738286550015494477658500633138995498032340498995836490130171583098667742435098414400936361091005169183155254897187352999737785695776984444205447884470281914148416092979648136841313443180331712098813868495437107769439304770931698927543518882770342268444967998352953717527961461105056553192728309208079264319298596369875598365709967646592857927387464640424860831103243828395992692798305649224902627122901853028544259083130029432390715830382085318357702791941093889092672295509269477576371844000705085157460200526477450313338431334708160710058217912548817568860002973849179322385203037843331020040049611125597161224239431377936965926839019597487069898259499422471445099557921694814829994836325007005820731267600669772260772969508275185609956697051913690031181475469795882424540359827725938499354443391611367407054130557879178807966862571722019039032235703596061010345524095992747629293048633173665900006299992858982529368533107994188943596087105767754980162096316130293521659391110338520711620771483152691185496812021227270095138684842094794228186881506160961793347856164508220304459362285767608637695360058855130990143948210159758873763426273387027866335887671463703805215579820843063745268149143427607609340244048749614293043774356344047604125698634024087049841004949795094845386510895919106512328817719299383930672541519952900101266214323823424760951568796986627989397809504923309210022517817359602017524971841249059608059352104012454922069849365019020937768076687329287367101598091259935484486715882206740701935511644968948538723538651011735891616892999559297216083398449341240418635186286277408205730336350452049380392716180452071110717278828914841396964056883261246018065685829237922158156063222619903265784279802245811877426929880763541568223253097116812089016297124945807161270044352930116299929180013830690562101394332504526178674752506610700952327948928395740814159307548451084368310363579591273408510587051171030203390757580198023395384682238814204819273136113439799001248533602520346061416207624744668173239717876515100323547325917417570935302827039952802270097386301480715861293034514040921662645070686544854779908065126350474290129146780472659663092628264830312583127473617351133509002397360014775886910831683733474628283846535415213536559495772851943814723898318280644182492416472241424741349309976193023558343219675700841768221058180131689911999411614466577896684413627774565301768696030779598262158755187024963032237491992084074390701677115934112208134531262295814675621714552460810024134208316988606398223055471934105005310560896445604465803598745202283431639783555548002793337339525971000014042293705017954645919665456644489385094055873363134821820224682085705729332208460968691649494609313417668231069181381836040162312833526968377182257408409980032379248113836799247543479247357718210660265549161992973508462010989863604069800077259897694501085837635619020004902803553027496281423084239836917031392817753160684669562973983735851909951440712223738955237221590079026360332211624534191244455524476499578667256620916956397559197003495775469271914034282204632124162365365212347782392732155474208156222865028980330245416390701108685373545319238923542467213715679948387316291676448530567882705817743143566826709357407488600689726277573316023536829804869900050752031640653962406782212758289281339195970242400031658775697196216758296097320587956539486657123300195054848319036689280903801225114163533937680424782326134384794593929842176863902274888644469726562961917312949379671050886877297306920124976171664294927434964529030849918432562450311069757946246788880761604460160385166774802004886275736253205317663532891391185624520475412810240582868124503596433716656660160784113423708120699031802863902718364633618480880913630696690309924937667132804977712212673322061285744266701868594347808024626732743012088989286230746588219069057510613026959180088347935745703028346164432597428379429825093767944532069524606216906768830090377793452812202609341016121473343510013584023157016675142585116350994753438921325784261457901060181615998433673278495268654181453054624564950064275468533457144241726398602698193335269975458388257925220379171334657926452496950748127540682290744232768848586478699815238304961047398981405760731300759467502260096786403986175898333874790778468386548711545737624119345209006794601486940138422786808687405618403735399508509079203006931049961471539982561574315441077654541837966261166318300293375407995218396154227377688564713530469749644489429153906844126629467181106029937843658557484839509058764771856218106020136090059152507043564511251721467446238584975898876481939793330824624027969040225494578672967366708140506837564705576420103652844921006336729572023102020838832096370533713291817418044616697529302642649797688860090253761770609255340310233911753543290048967792207003537404136245167161857794345336221716023434435699276058511484797440800038964387361847518847656302495953183944021872228894771691502376866467363185034395817022982924840310459688318542435747999730058278566468963969408836398318926066156998372258396068822314846131125903248087646917185265847911089566035224888561752687422828678817385657482900659811465182980086242800321120564582114477739064378526680499524456209877331332701317495081953033720148575391022622512381705636517555913883700172497717036486810335129300378958623416883640985035208613657854206198820261191561655883825745722578663814733066038524919363400476637029315524704599209189645471114982458029404212216175201008873004792063464279152200655136019009909806012260159439142188465330364211043459968255819534067158741213311985436359276914467939305777352723812273530880168499016488258404007707728385626252772291673288474253048095398480265622395682387730208739202357994859144968427899611066176733533417580205563231293093685310901189421537133075339493131741416427134202546066665284200268960065494503185653494156970257335386446249340951897076396270349674358334428522847123505313802267055194036330585301070295159167965003146232972866045472844292639708907756023525533960848354149266487203869442746708233815739571398568790590434233231599643141747582520404934632547410271378716341885526889628805411618460123743904889774359318470796996661319975552479719037778033414341480526241430674676029027787967645636905504246426459936002178315482852128552211045824244549474734105297431899408565059057789272393431403052929394375137429863483567247532440470179761552171959691332053564071062987301673107446912374681621144010376109437889811066652449774964390905508861946383060559615431421563344008698851002538130315761060611905623659775205098422055395240656660161098479803494218136562707502723639696318538533574557812342679473413897244184286427339700165793441734346901479548706777849257047008270085860125439459816707667528915190351077145991214549307199778128529014879305325522552197405921956727347907926046837225969589469724474033592203597879574138388537633190078567789638094182975699267272505610098157446752625833074458841937811080847588572698567584584768533731338756645479685033727503780086700410930639066151084641404078399352284814573421930387047604826924260581327621325307019568593266410152981273064457536112372864250494300593388251809246230120985234780587785003702850827483874752778153443052564405783941208233065168833081098785658046307768163870518827925768119436988880119582050968339586056963911759765977093746277801972426566647807232127057090055740278089373442211293933080568607993349626418247259140655651119314784826732944268148286394835090075880277946507266320233077845699683953792301834764281220140759776668615263672776817465983256813505240493270396834262934794027606489237058454580786829274749968226791852975633966650030965085934614743251801693576218071829150275708762120922802946314821505551592675931629305905202278473725653456036913590388202329288477972000257069130731789707174355216262825665552713843620943588297624351703578061641112065826259193291561097988107672506206824264703441820843626494603763934104276167698047258407214315404545913499227531234636424414088038077134332819341395949538517457868866706409001919201827868264721372810765268459186107084449670013663862823038871179916501402872356066590692970433923080373391273695300078052337681468017930252320640117625460423335243859736048084410534365175298737098905066994303530498250274155255202691781205597869869975445501547758993988207162533322745031599314417141661332046352436089289020469775138900947639152808370008118491342172987745597257701933756197773443756763132384487156211793284389975749451217749179082561525772415124430493672027669233315449799760998997273747510583819986566191340126732815264889832854609477667030265565073433533363425555420354540472292594915879002647103750665588428770337832011014057118885265578827559051062307915427876734978789098131584195630851911697075293344369952321715056978204718940894918005868274910402955936243944771446530498198356552865183359324815289694462348286768782583334264734198345414041918171674320247163559658496465910650924793455544731917721660844700390131443593000933698986918203839024803157694532915213810484560091462229577430179451239352988056934906429840265864028283363754041548100206857942280353275493152973263375431789708603061757962081281680426558959060646198991627301830031973633829628189237507277386832918786064825987552404599907277390172154985462177688399005871002421511357280606593946631482525373740047397769537481459882404520645403566045829541230687065185193725438330598312752865964963802865328603861948304473377253335600523916955314375505818655799973584546059556203122423626669161136170959958708011272392808325286908167567030869905087719992369401010832741771352576301470023295827173991504089938891640796135470713561523029062466239261568007582970894949506207302577310820205299722077751344163675212495669480623659677059599785328208338750951211782358727307754126619219308591945274740606366345621459038929822381589409294760511539312272389767162841009332288308309018676225947605215953877994473468052645582904727656867360998551161804028778572480994976032006107648034483063045814948493456411879540421318800079262143103369424147919936460455479364678058095650913531038488628184439114484081718297982596401219399212513764530391684957191780276132019972183370741723849067774281095791765623739732450698267714369425142948875235135792905286692160396043309063986272851624959958367600735400213208867826076856127242850538670672457432962100158093817615822091493611384460097953923590136056124186082931401476519762852784912933771914630071385901407260467997084229865298327611087076897494434115928906152552016227901916444946886098895718461452352704287749279646497276868959559652894468180052186137957055258255978509884228889397736168261057501641824901019684007470470552041906793927303549202199753515613534759081216872905251184370299458243389072246191124121737760703310494261108877314412795143035573830844518963410118266302233067361256572502120179472821595441578927554917765857988718632413209983693754471519484216364585060095150831084814584552057272903486668254703937299465800232558510360843113275036133331295358357661870835344474664638657269407114708800508164250762594965902784827395457231601416117724880791994530624274499543754959116262481227761571658536940907148894736007525377787562402194311638347031738406457790022494635557774576236472028182722251728553104047425548858256810957187078987414345690524264059336831968434085702224431949439928324109460815707436139374174870690854646686018322757814969732494317142620700120902990072276740265937979729768864676207818381362084506717420844477471656484044854447076433064308395245816539462016177699342519070408338112387545945692216920357543391501444793699599262919655811054520966187214515102352074838533204300081166384332879481418507827009663124826091935688395021998468505061361628621169976056252820934613499860777687923569046702983774819796206286264315837336740935733903349323366901092646451608030653148916671350082284658350832951102662589072772711478109741180588269624472685912566374875933617357026815056681562660652321745802994315490972458110918825165010746050369351326272655343785362178248287420434539801635666314496792383192948776100782938997221074918519838029857638214421371352824525590557853298742874449121276263433319029564019570649307574205350797583954715434756664751295216766281355749939669838494768504766612817069412204832271926515862856829480019200081639402298678099656009953512868582232766540040729378725613988520096328379330438667198123226348884332501358004643566323462446202415600683820565591833780848202058713037306822638041213113307738103134272469299707758611902506052328540494581494108262991167237595818014679899790874521460746621717694894069353641901418501123364622173523495453028658493071191219463449343877538485746037975881485568479343098725524498772116661121296774004474758374481037791676461843572490508931706974972386276046000819033930817372371924100566501511398919672698123298192952954341741097256222111539980878832309531402402174784633448636801579410152978612102420806628823586409409559630919238826848570292519022313765984905048580194494997160673863521172172626047944063510706878139470412921280473442454272530200310533253187128953910998916743758148309331174376528920739436325350870339757804038937777050697489370562752649365977685941630157983867419046956465864928428309135999978596506767673414730747950386636666593042764267712297590746737475757338987439617056129741685484356050664968997237691241086077097726538384080592900752840474556451019191886751520034730480764796731866961497117597532209472959618237485134255770917821025060656649035821082302740702710030537026214532659833825285689200900135473793048428817473837427344553502480561911802009530053388740240180305905793264627886755940171625093883693252754060483397458611828389131685513505100181207975313164210101657819451807816201659662314612685775005522744826783944626138015658439409350688742567157290842048939466632073316131455070769633171314264916737918550496594583396862149102582342047610157521581853941170254149913870839997302554583116927967778737169766783036928220594960610451390376186631853940547723501167659026725710513100605820199602346122460591448196322577956791106748218988856937497559690793408211942651964004504630320642715926363807950707417488763697845515033502160453922600489255651582886799482519796424087493444251988956064434090086789801894132913625991912271403515085296067940317102336139484131360817068733976658227948868153369067623471681404430402148759618082809221718327964757297697998411588815539605970843838338249231169293212886189290988527662065401688851733082411764854390559110503888097413308094947796305049541308320328805689923346788172707823190639667865183412040475511703547417874537655300925213382453976876587672694500944351419832270901409812091904720034687389293118283850382438180949023882828782500193043948523871698888552276586067211229308728069467153582551008945437666184696691221502855896824181753336601619919178284420339447431493320182558367121434037975604836882639707356127361387903496384861014945283151201587906647524092127957611653419554119375643770396019494138869245438016903827549166480928080554543097527615585963642278490496944616366120733375773460538763695783467409321632882027411859851863620649908150611203026662360458388993319191236669900488581550166748232210895550882662432946501048870534359863784969899245246931185668653172707190908140337004773080507885071946298539609365088464997899190639516163108096106024336119865612015488012627917221474378055112208194178529838575582136040735652011226085288444209594219796060065370454205247542526388128912559732089173622557804377768511815439844686647284782344219237818121749402335000880750340724598911706964447975882221456147932107554961096356436029011214392576686168511103108955294823542380458246384194496382184547839475511813447620737872344767922296522537746974072160161047848790685689796762089073611765922685611182730208595476969468383070296834301940119593091503338621424922770040037823941574705200293293116014873042864977205503837781928496703945560164668295538258425520040428612656760214692828301977402418107230629653602672719434673439876534420429934486405169667787763445196934947763403722487256792760071994136803542620547767168686534653125580916732046497172580362928860769196088652235448511145482906813413312510005682698132582004002020204957128583471418250885201998134479288880110603398599936648672597075256223804271004639315336649365301239848277225707111783013361097991974540212747762798061900813877072050666488631236732350273080548657445842367228489841481923145750227286595401092460217907888546950765242856051754871449770808144188789414887773586625884480468798608401748791409009501135254897861988776518966665761351009950832744983777019616599302485466153677478526090875726372908236928947357751320647586528197803140371073357751498768348966169060678965843791526454921484964428403359712899486632177566063988139883254895355471854955155151209984822993336850313799763144266765258306383671768377346883692494485613055914637357658969910994600473278542582226116837488604695373418511045871090886764109062471264061948367524325338032313558577896530315966603973084742978520377767519090594311857787627465292926238570342809467005294683270990265186529819427801924906302816551151929308170140354023280637506564230935714247101844034660892969031972425551409541116765151414502473360219281530687444367253005467036141322180923822125529443705060183830701085961629549116728887428409171422921502629449641621623394164471994981202761577735922668164146594298061262246257335692069836418584209319504988805955547805111329028378948838969475050677680494700072527442448336737768925199785580782105639895561812667564655252958525125132979260693543626193076684558570233346875754663381032238998020113179093221814086016725584915024374349137565606176414554680079110411688337649254676605162714781204383591655107024751421912189177561215303433838277067038096099990639433604094122257261976370498513069749535846830852585676558508375216552292441573523470199505439828033734647035059652972707105198452516549851700204839475601353481437003828994053653347240754863190533053761934915524985791906072295337070898667420603493189434996257007661926000940665117033889311694252541864487655671638421466329907123683461723103595024467143015168841310876928622347377579725603468082800045471054597843643946954282842069151128406547879751807423622301951000736671314222034107132898403592998040090989606291166765019752660033902130549870807049539773340125492126902270851173262945621088868967418727892462084697922924538465695027196670536864366868993079924046762809090170497960499397308249747799940478034498378696421994246534735860699407505342752329573575719104000268246134655941151802901589029193058124107081108186955741253281350269751739536329949980563826073232031665199003614173425214247095793542757757366479100618818825375089437548723842584566668914249127023137849225762133092916858846844012734824209342602578791658477102168372150795588518621683854122491030521242236419078358242249450593976001210194191845062209813120852901440288681950277190169527318925493320102853542944545575192604786262619912526194460026512336648551854076270297579589917642856065286494980180639685787617040911720785773807526364297687329849945656295354889093266680105085069106537162646909363687663149829500610768752112340261432198804720546460595585161823452752060986589036053113178482659760580736983448142275794408849710949935586374466107402391774281628358702260145399721143122734665309809741877842154340141562609851817507679683763008834689604582514214726500568564947199178949598923836765444434260447432488892310511674733226683356898408425231010682792131889779920968376651972994382516205415929751447672810400902521989614033051890542320506657857841909792915983635555339317440650838316408844030361232140508321442215360986364986667931667656489139773212918275676602205942963798388372823104424260774411800871697889545164600230588251558113386185952196921567064693774378534739837158395639663558224215367225157191283821367669208550346413061965541459289904525763126632068184123584035993443323508417411312039863082581832761044670450377668238722918185624050551636911936614203620649828170292018578950759821146034916487948119756072097574428213975604757715329147613282004366236281031690439375368837577911554266884425816624159203574911734307843038110544030767907969270295699854691336058007606884416746663047323019722878349950594887068396557624041845957170543430160428587204962947560512363904722993225269855734122065626261381587169337538182320761883875384756791437876570705678879857692717602682799102312532378039130432707270170116922014212769398301617992853837682206570147234126535158713718126180360951949003251126457485642771294564941250312127131065730562672000494772309538123124207942376037376682242745673076506479357447565315283974441455857125638703338371055639492110487408991384705788184913541352935680620471779135965577778781886484759136101873159977176695077809727837726008388949816713470902798976577659797217772371209666102463015119008150244270241533972198336164544881834200349238000100004227805501854411126640507796442462412561763664531906067923913653587335307480223759947066485219217502792888254483683229336818515407612950020574790391905712294593152465483967491075663225991080491551944799106172840621034847827306408855894521991032889918142689272546488420146150913790522651995887799555922860964388333006331395643405674188557512246373545726677185531897889344794528261901861689192054779522242835706700300929400737095346999891358256306858334674936507835931281687977333393470874943333654788101884290103402522204984664130427079666790700841698238919468756472324775422938823872202126300225981200678794524711111629750765718156410096165449563508457997861057468011811752878268650824755188371966473978193718567927192442217527402940641226845528052022607321315632854847084045868071279917080401908679798653655138088963354601602106905834857793011756449232117341191870902421493527908963888844069700251291184231161760604653890666392613318061949728005320188530847739108807316282905449449563970552147935487031900563352595465161266103913224676214507503077998847744373470458070370138974100224981677932076998430167365158904218484499926615762693780377787260415139993993587254117245244090906542862194928666829869544432199358076006516669770785483322955248815204876375107709623107970518604114166885740280890274594109971667520807297747909345368834764271095156902893552055207940064748326228756177915818179411384162653104103432844002182603166550478604857232909857102357749965686504724201997106038620959695283084732577638631581148935525703005805017780688901311264896777904766990009352013746292892685482036104259925816723282394749670491779009905785199536619522094007883807243698478229331529733964730795347510250374310069942555850561404452927046472989990708923043550340164076967317606394610610634903995331568066759305640279960696118197897943874881080740290713573673995195583382115971206566476277929882767389426319729021573439704866292556352593894855113808775629845729165312893291254220308363820498990690424223176885509375630325509914126689210015558780154803914239601941654251380312279916738040722263651228926420395425303183887835106107799581994225180143624981758788173180302115398249454592695072617764461911132878693808067947075089249446088385592184366902455286755479111552499139142362887278771766121154134040390035453260145245428210495058153700804980544613565796971081542983194378015245517149040978815618249419677199812856643558621474720953639228289211143649760261922396226929359263645912839381567617031899017996451285844401716888480631503252270841465990802917253924430679548520018886719511985941899240249337488241202335746077043236354313562925750207056283736117747632507333578155105599312497465050463809279206737588867403845198025852146215239674893084312897644530732466928433826692007785470063525955452998755451681990682890434036746359912646825249197772734427912295422077517006164021542982977430946029215531086078113960744593813381660147146792555163127009720568784950729061185526090837288029225293096950140579268030554995032873419207412150868826087841903216406683849984941376886521960378853056201297564423319698631250396720667224284779417807763656820982400850719684415951781677415493669588849263859866853851320767637630204062404596776347328204520453019419031805395061259040231384350703860745283831823343126180114400583493108038312709716829781114778769660398707418280170348254417829840668249761384417035911613732264750895755272985188450336319366668361360625762947007785708571234729920206986637737014894354945617377213008835284733145657780778968008026557685701142553501885068527819458181295667678964881539785533353012116590399827707843046206113992361104414646908680635697611373015237468285398143034662616884898854282458059134875609907597643638318611241849423820175432511048289098522924575470547226874996064819435993036823042910064576765800824150590091460382786183298939907530232059907016596634040513993816304193645452436730526168849131717732025361050431390831927098110384697221032273973952944758245040399984494754493140353084887333105016706487467462521944395796880616852462436337237624398667928074838069570350292690919406579572205072386012826766146493762353747226742309399741902073322200556561965837421155957520611386289996326369873503187671793011508428157761785469316424323899971743916166156753241701366369248699605909400870706630830980706444297523425808779465130242469302735236613653512717791667688037945437903313840314743538610472414649848203673144500955166006202142120313195087485848476366313100739043927962872162573320766249930397429988279147048229750649652970042011428854834552659247427178374743953035092001909165128771967754459401443923923638349701111774140717362872659182774953512631540436093913942809197665083996368255484991643372722275873914042328789919694614885410219449102832442400188514691578237992162217070973132929309558427142574396773913349285912289729530328779238856791455175854587499322544344880957512753574415488440030047658117613671094236150037359299183171014551105075908604211007535484761169127099339189912057469615682899926694105208675182213414846972939092268269278432151309317697065635587906856200412234022350087375423872391223084425580604898380272570066281836683862223918087073307942721232128692790373900248839849151311417673612016107821082087889117811417763296716536488778134149451378791368751102948309896716804581096183775328193721113222154345834908955655262334029145305261640114946645043972659596174274657053288302545333314953333135664750701510869311036123921683619934950521496966047739780870817769252933345995114350045428576191427634994963695108292528283133117269801067399904169965858697989851729483527951622318725595234610729971544252143308199745076149358201271706051942775643790740379817263070504375619556257784763732634918774412973308682353899214271993934929637223114244421370327388879986193473373872976476653525787257782211451771316027517051014192022924569246200081231330155433237452960256244458821905985393846432397772549767592072571798802999032977376833201046720175553996786948046112465834664839735926613967073904174719890740322558456695806323135090407539206004656505108507582800761961487918318686079425851625139881550759207256833947469607726138609166324880207661717729433524179457389901731298823155378498302346322255549127727600159898581035072543718507969042843930236481740775360893344432816222198712907141761102381808676784151848078488273042385036373245283231009562102893684893118735591021252850029506776853668420138982567270393115114550087586392412583487818214639378403034548486856902079687236548426992305956994332875440439827735284192479911596208253455700899162487197072011526943139677009906883572649809602485421988764982936060314429631848202271089157130277385477781130245134847101567698313091772703780432532875767765886951924577016569679948261208270424948194035520257709289687226474693794290683483924697652401135008484402246722392316158378782297990560082053938672304157460917029915884172300357836567905929989134234958647154287082345277676837499594310225680350167923686144755415790241878351418214471415818251328757461530968299556099932809918505218786734742688005017328328077741384657039014599056974191675973735201888749138628519442156354195415685555718054027024372026799343768474131321094842443591700385313176619422265428301999308603896317449929455385976823751177228363601864619064514455444282067689809289329672813240240715625256812791469578593358815762851642254840314725914251185405973962506470805066509769972794277270961106325916406791171387464374286300440859492332538453886986189673207752187011497759054727100916533502606478215094934471119206299933403408351205740531285999279463295205385701563373327481011986833275325104164494976474038891812899623193497975707325563729526889474778986059065611136392068044690888715586710946749998169417070922428745123281025858610479899548468407127288103357376034813052211882017428348656708057294314536508296569933795727613052650444930546477003923891110057486563698586918023813025300108912399337873023607977692833851411718567799810610338203410220001420071424586156960208424475112044079394573918963494680412649608032606620794384870027406734191529342131536571735094151979875163736192940870210333346711317777437912516147142270757797332275140238428623964720065576049348478999265246677240430538599943523254074865021329920590932400917111634824482643892333396866012693657684813275691971083287810706984864385344811067287976290028215995725514559544566885899921615508119938980895421983293736500950565772414684279865079392273533000558041069155949268134839203679364869869636967894862243653815867561986241597600367018939064717809066215407413959841232811546638557429888135070558747943975531213951193222489166850763276542675911983894997030869878332354500296104544379615897875798956959233248179538464415963634450094463402540634510846583581835962272493213409588004989774123616210250145281293949048582997366860554894102738933302330332582890361147950644017100970647179417086944908349623569310119168510547905874934956372803123505445198530753458946123584112958046174876786125030757741614085893396117595822580267978543787813801776553914981976879145043711743603991718056863962836818972118654008353580836072271985821542597415164491728579350287914710473316811805608183740265712047001811042750548150129703129894567234712492387197709447431513148966173119668431858866235352158568898416725050214486436054301645642900032061951156135589965316068028381168324325197944741390320078587351937059982631937289472677181647411810554367528182365892290581604330423820030336887191641006667281197265603067300316037216699941126345434663302031249411600151180273045556713447461676298601869767600401861366024773301637496147411777954722734779575626345754004088249771499181101848703951865279099163744612971457344253734077901787721034907884123561374530208190014100602287235908040653965696984675417669353047460345546148686016016575994779470583751875204673932092610374960762224565989174805647576327462892837024744068600946566757086206597282368042612589625392245586443347235492592088317276633943273582258831807764859689758938500701286917007457309596693530944822744758341738909957896825331699490378192904744402417860948460948756182823093047106355351399009293731080882925044492883513805196063600482862874016147777765289816623012134436168904672511644278473569931241227435587669493949480619889715876009420443204492527942167260697096035507371691940831750436322261959576636323815937920955389325837913146185929050931158742155063313339657159688966154946057889512442973617730480635025877589714705376962850602274264840313738774852273646997783279262396764773617891580976005719839796428138666666844494945592063918249081178643094720694549805616364755541418250738589109735714262688529861242485747475777051659665578387262216010968290913229966807304688600167110533161331968992297122216749371162710950650978765197033455668317699080129996687241737650369864481518641567893490316373276448574458947162928728564920006183796158771556218728101810583844613812540861717418652010807190489669722908593290456479789830303063448440682329986499840809271628449044338957720306111971539071530627020905981960607756913561647027089292138466531711032844309358988827674102028177594983052565750066394982146791351447200601880686764207284781251510321715572446632049443215195398917399859532541786435289454879293881711409672445623579894773995423596847130431338937085714621002294998201279201554112631711674891850418906597361160818656223948479664054443438392457847886617581011174866705487264540368462680079575770605552666646289071476842516305915300591529800446394775825585344451250402157067865457273377322208940351070885889336387245275787379448856996241167025085976602008381000526767442918670572917112282787556572620029643095759624143127339711445162802767779695421309635516744994812051630606883959669230629567228873593722867515890150623790708921867524881144790484226582639661424059371129036108298218129126779333386359480475219648571199884155902346634481447654346932852662587438194787198622827766405934662527574251159890399760889741754108612701757229243930786348616902120265759315987450468592747747923275753402270091260606817154896877297544379823228681468859528635029297699020890393389558940029247141454151583546411976869000940473455468766006208665643924466333519304713803098311547394805879402868743797843765962954809046065828249590469747209537319057083163433487526342190623384680130020232721399267976270060961957221402305854167685188517155185500784328542101716412575533245114056572069797128686805739528390546791024489970901144450896517493021239291770767577255886183255080621314331649318850422387924947625168703617668535916036470526773042812164496119486359383017994523153632337427902009157217662312230701907140643878078796584769412708868461095131449680464333950129256415850834101515099109786356122768984323892043010702737524104809710560101820625098384551553745527105580364320616077950498814867131681198714347077315938125859898682545796744495468261556434215582792561187282878546946198592588030494124692650993399152606138274271385016505640362902499393042416928645006032627068365147245972670142962557585441383548317998079005771371183664384524530801643575772712817592433021829466433344532332077323809841946145148701862513539022272147239764855355864175334156500037657123181616684148362986822035389431813918117506579352408179073649624769779569226671897707987724816846116953220423357539407852998967727789482930552972338775542086614212084411982437861663145476352599209003702185620967370467958352078663150219106731503760455144999623734058896259649847447968089577679860907818647270854037172153153734692460573740927690249180422615186685503711063863127805931603013291699962973222848668093760058955303258938055636794498836392249227241251189671117613349883558949703378617043374102734403544964374985655768626530541375896928853313940952536373493311555501497830640298388038657715245714182860242598823871958703758733571195328556115823222064069981733162440396550638854907157577790231963467152145733678203623014186786009472494762570352404490024120600068998437647192940810583129364431013453419041555702630073891051570940431977653921378761129821670105545316203071028262847704531641265011054671634488941892887755435288779089560061303154957950214758438387556330885050083245152396664530318009945195910352810778002654060057539595460272092344573649844497851351468624380723769453521326399183896283831644655661590389169536872348874475279207882813931342585605901698648956899674503301630606764276267426822980060453189202641677851593994451585509483389540455135925815503620337417253935320779393190280722161339193844324506528088532007234472798754754559618146887946567467004117110332797946771702081122075580382451766377768252721924440484188238548869770063275488368420041292228133560539667460092720000425771562054878345217564115237168669409901062063274902891285909149004495978514776107276705466364757055235936405530842946044851353189676148084370668212963964573737337876239880650549846103448042082681874482108083362951264179847292499545242463709208866825653109059136273733802581350992729151526568270321519265391347227091229021898450665446390659398641849362374527433300214177619635917922487562889641377689020509664824232858323143198095076710633531185916461078026795822489395061594692091870712818093850319515803754744301963117923990549896882854640628557507769968797385471194796613982509142918054897640351473851894029769020066334630232380191036560386964038831096987728599846827446069471826281496368933003162711516848661418871934727735426700986489482471254184231174889534045062268787974461677063587745539133374439257072772415765984353435273104783040382367252510745129898279755177865164746821248814522861853536486439405120194127056473932513225422431399089018466393368698937169064497838954045144732685043073760078729212765853907227328093465230039774944340863795851768208147938113795011545241556477370724769668328981210609639854195180864217656519397565811381908529968509963641537645995687661933683476564214681577328632367225676513859284045984689594978399129615825250941021364793222677068938830460469920506046046098039048193480232673823381783119322542225555551899400330700188415203084143192729647330930923973525798514916592085674433638168205883712376454818127852080765381225881272092216176525860886952636357047031110376643346140148290501513062556343966376803135009828454929582295982344471426044237668423497900740936169958275249129635688938244051654799345773612922880858657236639311093926492487523706330809753776233463932852315559054417783006974073216245753971435580518874259609315967995393190895879653422233328589925637292426794361541398882428910993924818544776183729025290567954936200685984836211165442927536929856556985262509799474386330451568054483239743296000779479942359253543526401253517899254203738053658175876903826914122238440179029178878368864261145341240847251649763558069966470153175043116895446107935172305889631402211290372431091272582928032012133518340342673813780820952932823281056622192706097809766638474592164273311334288005232399133155732179028029366816323341129461136398299364864238611792397964136572890406318131812029218482565209291794198939470800211562131364353876686805025033864113100778290374377485212918136823927077770939962297250176841102728051695355142745359118049900532170313215133291039501408579196122420376088397373360130545484054531418079228864252273338511745966368010512328051801766854503560813524198417361088404799564062719607026205092372808163940791909288955226135088978861128105854495223314113646553499950317506438439204951245581311427851195475828407844471703865654368041113459275470243850988504400403425060216557923321471804746634848673414049978962644862739814479967772402092074884725578281500517314046946871919191018508113705630350305055237887448457091921931695532122299960651848362921422905208837558043563405297677710256000386462698608734141296955780340892433610333926733213227484313877289120830482418498446138897904185620937628144783424142791710338583686771379925317480920819647673102587997890100926577003668375107625480041255220546530974735604257425318541606866522106312924839676989645194068777007368852610497090955220848298696525423338743939578981149906365111605780339888572462657727728119672900043764429908455054823262597724755279318360427909392916759679890053734697315745315497839362777452632338913831716364217790874010107503345800887467097917238939714116609812574914264835652402254933385779759507816551878060899956209414273768712427528535947979765418661893906900259487408696386435105727076520930911493915269699516772967933790173992532925826294085388321661592510757551808993885783038778982111800385074764476142814067979428662548395375123192210481372952509344700922591164998807677980590053726801568016926434685750880092528751458849535787543584745456937354662005200524634263736615651434505424597814567101928569852331972200410699966739947211213176141453510155268640068682867381098425914664860031721154524005738572356974377630081392082864207942769661416754888565765842995499437115541199497331827598473099405103463938249538141026341904736424694098622286259488692232831257409167495701640825266359893948801574302305638566408989180614143810607061002688255591501205020681882834052166657485870833959189611038765162454577323218791571659493584581113103403824956900034911701394377169126887407588022126976614084312608087561943092443052261922447016034916026534809860626269257727376592073982132533529477595328101258353909471880526654763331666448696298568985306568902860132759186473898314489720369338554917451812945226803702302474199350600381023628954509853892473079522532283877156440106507904725260088805327925699432380543186433246337772929444404941011754591767939506124448209912315512198483860359197423848424177013855017378628942770033327160798091987932371712911505898471507577735704174605774563140321102831893541835719272497259976433619762250746634457642073906356548994457455882264322389099526702205247572029536208091458731827220426727337988823010618540364458597187815993752782971407183267902543918030239905196656697578006470254285604385059398834579865664061239000502886298361799249740131826731218621269104539982343581213480724753241911683504859630041445536989412536323713376273995494614807763564006251361563013739004881294362967536290830446364184441293607933610343353454466911885314160358782691914942371260107489582083065837756689573955740184878199318480302908589995307490642563774331026002550288704677092661537799836054572161420646676407487094265229477899489971454397540914626843801711691076660587191257477865283081415833137392001240519927489185049160618676117746375382983604195347465651459105435640643477577071425692466424770746395073072218247879922953355249900253575302790772105489339320387135097250925375307054127997612241006144076035402050934955553644340593437708584150272759907129255096751950035245000943241803323292037093116376020399996474153492685156828409878931565230115681354522474288036451269447142438389450273804180071504545449159647948222051621767965117271673954191830968993503799907924820434576409840915611201549586067282414129733998136034828359032461977674150376965656418932204987603994526946629227030212536954833485248757149272872690269904380456086151686066909376905191065739588948916128416727641109853156675737058766545924644934358363243087534146106952470722219450107476219326806294169642527272764910284285646770071011115081728214222242413945731814866701628905671599659953543040763362584351320269447913249482757213873821206256561029827311748314153552477271711623826508009816831069378001950080081082284314040311307989476727374781647080234592191142364659739528854428034816437443685170356267114238688561836552105613609553867084722280196990815156663886735359734654433192192974158237965772132642560526798614087866076202350741289820480845695250727432867161863623204145493901911916083988020947048714464209408715981549320379864586643537663866726738698562651640847191254574521023465838817787128985970543935112366748519679725758090280054940326495857191630076678266200440079978303070149350562236658494857618222098346033819033962595685774076928149301706082052177160526845292927446961305900035935866601542958329830434412731891431332118681544501602380563197670623806762383335550002362626516559190625444774092094216905713115012276619428560079931584748674333583810206430466805296059725067439253903779020882566995753981792207309680945590663814445461548387610857679309517435460276428716451467460503579751420030618002907388673595990823507448400651340696951201137846659797982158588040384023532331204660337611968510645942297509154450378666732563777930886289360340233740640789568802887766940322366026627630232526957758293587872369382064441649909713596179964723829819196393000196693146114253719397828558393134008470679960533261257295955997521271855716556582211194742348882751679515854910426415253432868887965886977810719371953865613747373860120539663472836891941513647731257873827219503818856909690321946993272913486614773168137866372615973226265578793451670030079817944613224677916037625175052555884571299446116625530046093339720068529538148739411764442491311456701323794530902492081684759649262843872890068982930549144322601538839679995832228241499385235795923247046426366784499476041322793219928500856136068159524405704103103017811571843080431940874021437679676685385694939997069013216986483179868593455842870565875154469718447359079396986865071945637559490798069440221004509149488177756357779677229500482520944638879927102052195755058864087797057794799441783712845918758647726121702079129172930178981572918556859372950766186815660713537625064538948712596462692102105759152414026480914664099781193697901545045298442518725763578795164419367421176558007753623404208501592964734941797081346588614257866389206003197486108385713170328546472677190507143379142034881455071242027236254420685316372207158630411217360383056191746032351312068672969679120294884998474405981959142731426197935384931157255625649756335929142666672896419233462880789437953955798458968224096298350655772001550916777772007238081311277193051013248647014495883078535133343178566221813387118384342551284950382703903617612453383360900399784004332782671811890028914581997836397111084742675136931948762376949874156275841832088792256655707577665385205781573296064748802386971095595590583136453416682221554694416570776379416848407048141314970781765929772388844834882641870824667830469595894151848661773880373135710160003098124494530993326128261216019045423071430648690765403427485183938930529062506333203076826822722811573922665547790441606169214894953648092349283924482882347718275154436565735656902631929027146932565711801499443416705799080327417724019335159102286217212640196101687601926199209298578532181806915521761782354518330755804412335807448461890642358523079206804106350573126584992650552884085164101112284060753834279181014415748922485556977024424846303869630028396444168257822182852395949547299790455342104216288723327104834381120450144214415559566419862857257447381697641477893306284429609412098859793462226197691523291312348791867044026298834810751201531663752205637948604225201671768929764915950233532309679379181595786286193520329427747226194161866722706519886324013855509301412526838580807512202474339760417766948618451722505484337295821913063029970671247609088546443598744623442485491772633756492571856638592123823944429401763379482809558122404833821787821434555333893849826730627219694655443148242913057473855576251868589528341532263085404478621553621482619460384790518364358915570230068126202046988998925175277056399916881269430317724888788839213401333667552187489744671100255742787065195300814894900059164821456959249758003590342651105554021182533382610009570918202897299995459239603438876046944939390534092008862906424875215540919520289560086211267123483399410782652746803049682600911430157715716556120725322349782194425003677785868679843584287497889420548740784971671338061560242198954224961057647978230396317673216020674150479796873859793670294300735911900628444741251538613207861527521129915889664061153851841940399669660814370080289373298873617969454032245464092478239139617888618300428638139817147951073712299073456282269468712563316971502998855685630251751686269834393170928366750227388519575015019498880017716889510654536316839613120431370158358313219850586264168139185252228479669310549706439543196483670761741613327751238902209992474654095197832734473538556041647473590854144488626794281786946752638223819469581997875068143694319082955363875909781960674242279539755643803732805490236052211514201301122673534429139960624042942823348418545698073815753694785371711577927421236861977433839040685869873554346322973091125923986611610106335146448969393856311772114134135575149779759895294764948964188750679304044805598828330734549360589262079092974997650850062170416850609886671185343330857902563231120152152894535401636346579520006107487666460117891131586994079992165197365169023260434323803330306611567326253838778516139042449393448170309275534237801965758900487997626092085575051740682466397408432123659850481881425622591999569201522981357618862506278748420583555019729892840823359033338981505155582004281803717691117945917406723063475403741305434853351604191507595034124908471094159930240484842104444018247328343269812529818648704531196140450227772629879727046703364025074163797554270847370292739379277365500884765022665193271505462363315472920790621178229373024056273516904877437949694352495379095888034413470943035056916955099137485751527014190238138154775699381456676930232090780582631415886715414566028527556707216303348626640873043922152644554038670263233770657356198581099004737920625388006649356682311297283863623583690892089389851220508779018002809934033811563050835944953343152312057556671056634982081127711731634265153893432712307339658618129068375630716820865056052231157955412237489824886612087721580380449446607289229685688312051578665029869158090261235002649465357914202068403833894160277165762717202956172069850996295710029063104210331306814545884682414215201151566074336676153538680238638667700949935874450666698398798312764490274278569337130690864895315794763260181015705194785974920583028235239087090392053619256404993960759528648482566410525350146488740266465924029050595225446934264469243998574134091363551611271318900047794289711621128552876068367339761291500053343056276746905417607372743298916109630497895708033670889489100720023480546379677769431937657977299801736809310405419488042600725428199200501053487280785769324829412008028772259603439951260892547189386487732465434897247920322019810029437255534453307684306085105256681902701835216800962493777112585781690188801129831675434682898642540396356948798044571191153356025927182100681991225153489533288976783503515734677515350649137799407046732068184458992948515498708143522474319851979074170904214928870194643144931251411313259124817306617005801396438074944702312844095892598306756304366479521717594104503368638323759474036698312457475920750458050016128817285451902731782732882675611349238768373262619822520616304951558821411681682209271171355677113373331871620634664378491884854843806047260893047876480483849615760932988067077101546828337505809772480036267242182093104964581410847430609587354975305207538818703984072997970412753787533250086049152600341957514255294152142121398222531455309669670455591164820363021956755226284124169284059527001989331931181381961315083489629000768083190987527490915308184028812249661676816003745946882066232228807406576568143304756013274435426176044198818372889201740481510249456898497393218995051700018149398704709360302866259967905219797225493240250201386355770104134095305834574650587965519452631801906984102384548813661456558681337166953540338078796062913202442158560941831747829072608165378445915658994774037119039396365622640332167817073889657028243643175843933946860600959148080242801011403307118916035734166385173313781435919938274357614875462614626801380524772577169979254946168564860521376821021369651542682954317214911828239680084817064138398784325848152391457056126909186870592961901015304466968676935658351022951821465455668801698373591759544404811887376126759536258397195304488508443978546492395819748963458209168588307617693887416479326198563609336292421913882278078083707117760125628238465409704300846218318419029443561138638977116161970339354542870308869913276271965514822454440547544794830229786254606057244434883177986671764668759004837945768319353443918801827344545152058967410477145609069153229724217615768305473579370529084909070985123437352199319705395177092587372743389411555732579425068485136550676968353807939978164451850768664770100639184010527626098606939454330492669109724706708376645484487549502986811355986949142503321472782808534879551583323994754095245549879998197866966082062484792279329581163073274469196634331176959722841240670224886738373572836943434291589575252088645356537841832688575762984377386440403285228430322234642394415645460916243381127601428160240100719218279245536349200023467755964092375706116965140160419232791958341941072784539070632248832872320398406938734635285866989847001801985143968239515643639059709804087162269875328992804464075216020638926544764507938159740679341159654046349065657224935539697572422311210544328858053537339471812629555524363855437256179206170182394402420683700677401971599349264372259391203996286731324267471358704824284484716787220382134968368904510329064443073753817519911464652375530608130357495858303362580649678245908499110919251868026568092701943044104827853937766419799049423124499069026027272936913514056516824666738030722684032492492993271649861990296115758361836113962273065895874757717591313710845166089491328620146092128422210301327115273073868707274985235604700400863479140424287734220297376629899480713576755540351411965157785159358337739657328373306432365314773703417514128771323703150158207434218383420732945339927227495433165602742539640035241723684499447021365223484357998844885520262420998069794079246884620886135054247890272503231724717728348507389036267269961396886023714573587262158211546245707463178608375796030898388566032496367859415500589753160693679271191628761153110455254379578423047336467060767524724119694627182617755605144550139915995834962810270467873149096992711084682177823819330610976347664892760491218619373295304714671339635670521883888672538137171176136264883422679169911950580875981980272814437389318653051353185209860773859035179371632820446531135833565643927380161943609462190696446798292026964572296048662029249582055346370219197477902704407216360286284179883797792867195255574752876659776175816810322890350735785742089490268070661702720892813097717887489197252383222331253272386994546980176943479479201177500127130044326939290387912778053265456591904594473215516924496030482922969455358052678699640502737577533824151581426716294271142999284979841889828880846848050816942580936924109232183151564941875071670828673385553136584004312707634249778401167079615834656996990888928577582191973241113713528156337730906464401380454077595460691469426230929143189034928128381571155074877858759368860304112184389952888526212042331390045101571711883362629855773375300435637496904417866939735036230658981754971357397036208997734778593033294119919932336931256236653015489635121484652143161793808784565290166243963054524756865693830151440881075655630460416553130643273755101148182238681149914264556407273196968081561166900479758540037249482044819035140598273288788953857316960340374449702518480770241327235006692753112412636666835896886050270084002219583948579189652487871089484214626564808879141732346922805102481921314217135216591185362600623751619262161932356596529985551088397512372922910591745181890952613214953006600355574250911225508838013159437461475597797895362023778088007777818625901464692473554423683584034362278535678578966352815390871525394509958106027818488292757981572527941852487468490954889267218384868474724528392884672608374774312641286780251313216568959401977009224670305393628403031022601294382466114059951454974220668306545994510211532279066946816171015709477629473337054485789549398696252034231585672285590790623417842944481512233834310242636010490927963170371756172381184147595450674640418328452995463197075291665461418336313987476259236895535969477803067758350131383668397812953589340263922930734859897940027007680316706989456809945917910404707201361605913953375208891038405407399865029746396661501560725910384041165590212751469238667582049460654593512137473404389389811351312047300334591269638899878477837529066959921333226060524169957787109880459417273877723443642742062992626941135171554313293734900172124918180203815145550146361410095834428370121864440885109064114046090020224551571462138139048086361588907204464263537690967208449768122125863391068836914466084632666616743033136247416377162476586441274629474606382265252365412907254364398304808594466541379157688842689645313394352593691590208992768489063114775437241052523488817660702091570528988498981025136404357241047453603707055427608625708870645547032912466817162810428657441248209226589236750813975089053660389997535858198311087936866424256403702325781295022797852886902796136205459113233188322984193540506379252186477925970529226873000061787432159083843311595623799485013647768749584767735067080398576693587754426607332909795273659958397086200314236715276008554117427957819279757340444253389228659991874770598028268655272726975607806312774768011755243455713481133808986894041612060239941588751118530829835055011966569799478268238021162944557059787890628547081050355518542439737480554769785825718230609741272931999155041972614418941593776258656799837532087326695915331466627844165206677421307572141397587310093346471152429734896743087352817694642921721487314990910217545890089978435272461644177915862693887761032731008732700102732707822440175394811075970307714630688429354469513370179301719266254244948813464999823006865496570350404720309349596975538740682004806206032122718215421037040641560721721113733072974600652929270467247047932094664930543228367165400980242618339055080224800648605183680401258645420996229359923993338839967346722183360990998189829458966060025203793700401917206268675276213898547983053102294384016714321793137460916274507386972141645734661791637925345364622980859653762682028482274072698739263433925209045492120015900678900175565435108539209880912208207197460056228226119349203627778162251167048412952900108902167453156618613968456446360255147077302208809898753503319313441593625458212880014896617020758370258509324010229741761230458147566489776098209029788838544903168801442041165727130087485948136081923228455659118402342485527990099078077200710428024688944820746355059861176945248383777081250390447569990346267554521459977876890088390403874462875440959083224043687408916882919903278211950508879225170815402536122370616904301862461173442717448283226877096728026584095048840591450249577352006074228564518884613701025768061541252323243728612443753646267929135670591969091030129636619207818467068666962266244416455312242506301637343421780678990491144241957643042487102559672791512305863388573377735692685361303663611429149205177807727054890351425742783423736629496821047401406105240854948145886978000699200812545007474006984021049814681338282201984951376753826243996130518589728287297448351222672152264173788336131075825310119888369952403879738770981985409205546778978078866035302987793125273028982831921508949465172872082431935465286703516582893343680633952635059741917769308161370590931987141292878455138754932308822137083649941858770814233711868739906696167630716532123012349954577789505757840538104939833048039090934159889843195796204913386291171952213020325464508768535640265104384121692960390587350177919177019675126297126542741636044071242951912616315891720757635269616916372293230866921300364675099122100905366074370530570997803468673033130349468713982689960080406610985159098631216373352198389025062216760808342516697670522244495425792024434468201334385416191833610173464966985367897581282032109872917260382345217493385335088172212580222702108817865460298716592462580382974273076772338202956595169878954340615467583591106773170058867222425052786376884014935667334420043375835913425711596814270092263212313765196673979041611212742821395260728715981257691334912209637497726904382446774255452433145794099382268982219320352772547889139546563557754642059530934991693453753611908411107729992771252111583798919508275959996922236162654572299292755502653947343140446355064422710688157257142255673348612263666595731370517209781783999678720938974039545564888027065865168116072755880251573811715821317709504130545471811793744881625330893706736606447285290942984409603109799823421933921663590404447810820029577185036502451939312043261645539135057189717572250981932695652625688805982446005033106573108638265225442463372223656995988160472116399375384354132549706283401343353026256898728170790041148628104529452448331803300514296205023627375955475052948707305094099893517667228254417792558694815121847107257343117751984728152882722725142176134364772124968200567878904075664966512839899535942100868751147363164257516896226609786540934347182499310563298636491163619675851037208094523921516102179655062953921253103682560521354655815766995847499824411051871114775254826212139074912377588609594035532879318402864897561852688720538092814233434301883410997078193179635889523251989032876421802646699449214932937089584898606356911765523962871652582839324634036943157606987343416976755614861176387409808604261104975843202598545125860200783478430631052000954441673923353797814096181526251243415902854044628574154311704502690946120760493232854727601451754651531438292632652284519687975202996052723797364218723251874335638865481503835907924002661524198477467980900847443510860981793702421408169141374378203058230630746743998882654645446479429123183999604684353888897501426782186139585469382637879273431398150148178239868216772922301162044207162071003386562217802901756541988113213769482092604956502608244011275074270554363240023170230705257538503870313169025858830671921181159743847003502851802187562955231116025745414476867460195915814025067727548854553418062977052711424141196381059787984024488186471156740975335749296436170179674927538043512752740971980606510570572333383918863578351733155316411228167425840834871087574234699136185620141737684038299669929659042143639108399065155530586070864873279057420237876117261468877763911418978080478178107578895088888782555339309889933690830529289948455287816934942154890117243510406180800182057772280698080683273699379927483217025111653175133123202556418711917479834693133313144372475521052900247910592700831639030941593356428284755730725861018304885566482270285005841137503023217499763451445122495811831045227705008916205487619725437404040978281758274683992029603197519583988309761646796431505428599224530416929434783551413246304542186755735012986972498357510226817971384157932668544896481616783279723322105070320920892102245572571861926268421211066787882513534398150722639781829079646791803464784130791958126527298384810591919403282255044168442738600943172222548497165441913141426064679822127061210939092552105799537833605964219909017651885754990272466955138778401076172727116867980651014573378954433124530692364610961479249613122360429680594128153594422021211565325123057550191370362441886819783793268961278122533243188957916935836637817347550674323223624119333293341264743097853420017127068729747833006522719515500360810754435951610571868523252007803366910924176961389065341442495377326775304253104871841574896384659053844265298984675350924075374818719805416204809312986224923198315091729419121518084485294456432032187193927110058122647248884987431202155039699848773947444583087551619968320891622065906574160188483544953236299015405999694882685466248119790795611802441532292699218074505089213889097373025517684382781020631643936540855413094067725593461467021608921745817895295554088499658175716504095921708912941203383479274705235036407500087511319792073234828427750244097545934589876575032696782643566021580647901065685253416414753841539576870384218125484552442834919046152119851729412923649635752248396264225999819317688619599243592285890069390610754474268279764915900034504812108722752274975758971866240947711858921202127364869816584185274859841406254131833582041144483140143239582824499120968524333651955387819798314603926098940788879200165038845459935373273923073133336327161751749760192359897712977725215321863018397749683562969472859645172216101554343550479748105265829557506937515050220415773193753477668176754681626429538687653307630877420432989934301560163020292320552175890274679641446322503909497594924677476624193633925242770428886535222368342300458456554787164310178314952926806041446055470159517217629515019597210995579465384114178990265013792640318824186299486173940844589152451638246382997349690936767300113827284395309947087381616548438964705319843282954312085836914755644270348123931417967254038446450847549921117697845992179233296857810772323685902234618423290173498514607531257694877878672181241068073370807970405059412971444081351470885100868197235808803977649561554460780112748350210214620438287206357207118636529359243001979438431864208117114105540396670689603103584483607158531794968584086111905447823857839896006804869761745331870226886050980134356373340968464433973914162644259930339125929424119609963899825993838461747312909437786845621731341862412810839730799877188810874698627229279295301290508910992410620449853490524235420717247787751187803013069510480517038267210914408624259572745079942186086357109547812809069513456947227347495611780964250950290494374309020347850287766334511734439946059443869348501050103786381662118328556085877748431226147415296852088138182493398353622481909159697546258357016018594076059861290513028562774356406233252400965516197956031665976182805290683688861346772580887858394893003050176545238921977245744289432545103134689796956892607722769275121389090452922109418629988870503993475716411471161857814155009086938472352041216682625104409933079472072976985627572032611477212066092120870788283206116435878130096605269804550026171810465434494178584887895682507408461609876704699468926892968645219905100902439675270762829324914134683441004446468088240313347071350544099688607030777971850164204187420354915577843990583183272574842226582221829776329028866848952316495891734802694402406802914145173608201456111676695450664288640556768411748343300462046793963865245747134584978752239469620887900848386762715169579923577637242507752884644481837135341286526262677878352484075884932399880688370915624202977595417826408640629358645670870807464542706090731316311166582279119327788890639146480833656419602157156071927100335914011347666703565544433793360935470505371804498340474835760070815672659620267487955942838787259881532702632055883541900730485864187284930637576126305381481949239683579463655134907526409440257027249178343651119362274548726618485592229302750107511901387828904555214994550203005354101455516639538610599674866022666923091459065866510877675527392226013808535793123322462836042630478414755362491658341804092036619863761206301516673751984872920328673015272879490150303369612987714040146959384532069481395539758177387032260623853870769714664952254449863619214571534441447526959305937863261285952087227306891253389704867506387601443390271951647414786028898619805522406479516807741976677172811226404512735875165602231537014355448046321247302465235867529802662542767718042964271311767892309786211948162304787253560202660397123725284121685492613271592829856901735597306909875429827235781002393097003420222075964627752289688411866012730371775149666571463064635920450227398827207708223578943366943032168634342721180836539400029152695561568928639942619040367038970870817262918295811019500369362801593678729137986150648797724515127568451103327802274970064297133018491293617689455473265937530672701787219682263572353011453908677654565232541961284802178699205480470476192055781095301144982315370694665905383796300738751492301921827533019626677905909863052793319603800431577790554319454356963909057727743352255751769223370580519457338665591874957038511675748880148839730666830834037437431832811363918049661387759664162914228477539347709568494990067432380337211804392464784494754517878006298522019913429893321168238136396776282216941789478947096356921690390997920253653946164770266212423975053439928812519456157731273824620702722301011836462150290794967803430613442765562419732835595109551546252319820439675852326688778856082259180786839284887137232030226502750524522684890078231579610814287440625809668614548986636395369998889024489391004946195450124445427438854785643521988078539190213821571090429824856736970904902802059713691302487303807130672378816539096086521224803266725794994647738561209741118526302021976568397044847678992626297306864596517294030582027463496921216500497843682956947809729478870332724245912866407733784412530150858917937441910588439902558169474414057967255481256168977296617774116287039421466761437149419976072404673059365499888754929921651808984196012359615679638579126911337092786224220364723180943243455222883471509451797329443302151558442946565250082417053735938552895473354534703991793246755160780511211333326132857342799289451404747666448175419890050164565551109503969916619564980042760048355300832171003548564456953222700649742716970414140289769474946270660325886585992416419243933827437716434703243586607458557345086060647907990511478411662540381153030487740131940564481193175518747923043741819572603604879048090166320594905334784262674087279405457697817554300002333380013667513011004789353416113185257323707200204832905155744027251716006134131705783657716119309769140592456980320970949156293698283578701843273479344074838215491692475530399335842330418448093121115301052819103046004341028563150782021115730497569891953615757829097966245568680992147432115644564306258824968735114541625315622841334113382947785718607181571268961303674424543007384010961178900689204323720227450578195877488478507439497265328323546457664284225197973785569675929904813715529307589559470231703054732814240385946930845537507696042073190275415250574805063213633520265645556697280232204212295904584610292488709182775322300793336208014717234033340399555805702178822516645755845308882317849968984506275329724640013063046594186722285444930958755570922505643794232138191203368531740664268677464160233726520276136581169960609364133569658436617595400311648805286710498690697582820695426919718063941471259734815319289964863146339328755622396150841441610794349022299949280176850455886525813864550129725798864914717210342059349396148392417723275239801648354711708301059449130860779220461862048434696459029804123411067986513775735796073572050874516684511751462205903618865872370030860569478356557586303482949547009321726384840211226997409942592594143965375578126648955819290895858553498697844378864073810448820622827509839989563945514988160521986181120825874709442328107485427527203826169940382696338460650050170532430159201903745740550281742729854319123646860113979222778766404555801549769309138310060957213696383560888588113569670461180765054876996642705876892851540959488298262313625481613377899455534927452526221514449966012515981784691053587877848097670945902476426380246348414050983826882284812308365473508881304014668995437967189351323811251957559875475833452931567355068461182311659109138698463523650797911516533967375154372416688045516568946525562830556228191617072986133649840212464470907979382940709875498935099075062839965997125174128315246115399466284068498375617601934217639217143889209999062141270452980959316952884189334614125268158820887657818386729039173980382643344473238395890679930375293687057589953437779263969954909366075858011304858469112693490648536870558212955705484103296119766889256541883019497652086666147210433549878610190945604354567627612302552207599935912100815964996216389178605092085167966409040423065206903635724620050617340966822615699942172910614986427300280282737483205210026791680228857195571761294391604324597595856113173456316535969829990441930407894063588231038114368095468113839193497081800723086172128816039933362117564990798874237228351306046706843508738861623531823623616464770832403840424017152145780834755440393413112662793910532430107138715324569800516782015404015905452142592138379408766003119384905649990039642653600180581576856898185566080824615249552454714175696327895504834422670695647366769165309566266961193084356270001096917153482690713855250870523609451271422014382291607367612020309481665780800917892947384261617743913188323260537771659268197728644056995374926836399981636022417449601928144282073297646780292997491127243188527105726461886161486986208408452632083184983009352569438529777649543338508228451712852602815078665444808806677399727403026988557179108621562377587969785343839429879840568000619714134163143888364146738874907509531274128592638251068370261710982150259439858154363296882783811071447838021488862363141245796716497740057848239993262303216383809083180671472579542805864662127548475991544437459985050797793822598626107555950179460199625388065747311487929932987151267484654255391171959504126990492360553348280635922176715527173727826414118646930675915621359300080052212852359405397469842701581900214531786866246284322400904585887178569033950232171397340677830114878427796064095410288919780738893783853745308408130845580549737522056739584661981573332710557928168093534158080198583876067446183433400561444094707483457752591931207284843901397401879522840032335625647578354312905054158550160916100825041212540675987797364614174624255022139049824435442721729626510065074759659907021872406444368176493489307330137572576543979977098842522110885132106631473236898170373755589669607875704937822805834831509674979115646797988281109234368158926167971548350024680264748010467343464031518131932121783298671508879522662852755237407096860722674115695228479867594306943512534412116816804991963658268557166714700968641005280887841037783400895143574769929069752451691773427588428093298703288928913285724703059290347873796234788070357983469296975152794500799910342349094194282193770050792472973101917995219313683091942312411422622102424180721845849957447443563008993991873532499169644488574563529697873205795429949440807714975242885149175191512273386832965683374065208155657065911003217360652867912073918928599921993331947247531329895667350207662437069364577656763079887326026070525471567475082493587374530164559219238802506191247542975168812156748354399818758887512607385061210282666344707872007885640711250326515623992386009621278116298349191434043067700684333404853829083808208872407333049359975930889359496870058334527530522912338720510456745929242240779761492106888290083321439811192873430540736043894071767252796736590975147869244391883122498417050290219459580332301076351904396438088981203341950026253051590992001850875701408408546161336826170811340551566531656745140766313548628338361263123806276959191573804632580612741806007670424555033208944368645806801327764852488526286592140630505979079053008164945354080392358957736098116235638255171856824334176480883592093090176899156500137911159487862655370553254784844927130540995613486599364532230120533249283699129433395220127079129510491072646397027339459264211868924184371757840264179050412608210676077487405960075832294751630667199004208584267054811704586114982790763149678349537194314323222256279423316723873742662789472913593473714087058498734540428087380977677051299414240854646651316634523093517134355424704924275686293628647641242364801188541968431408725468047933324383090550029820216157534855232194740812948604088526012358319225056672217507650415535045648922536689950161039438241613187649615492140181284778770518809943571273505518722465227566923971868808509013959524212615687750484271746590433490468153997057629486409837766245467176818631710872620599148751920351955765178989185370243468514059074134948948484419956449378912825732609963293172212339459928734359903116092770003040035918252333398234823891515155948068547055090406032616031622052538617710983652720602705181346013309201584715992905778144793648748688490318770806814300458261350841817332479156235307164969221794058860265519540767064576758347501674924787080028134839332241412497932451990200820904457795683192579854046539906016832423674405186731798214268929273351202677845933427729659266561370890933879758908728578978336801606117478550275806033493977761427628448124317886891143813444038311853989588969041856829111052248841116886501471368888432661664232024102780706847641640462161084899733922465491221585117527789922938071656930730228519464185191931094674898198057511069501389104897675430968575374658413972961252267483349581824499819599763957755046753540014774853255930120601601854514555012027679027032051849143783239058579658406409705565260882861683193528245857091474223898879064476218138150959471964495941792055657540065769998901303341162718596808077188065891115384972336747962910282084143748108584675293743974224085336682889184583254944173772534166385713887655917306378112761749839971642807106522269430791142052980956776078283724208709133977334518390288930644149835546614139023696271142419425473628270021919861828725046530478446427550361391425871359069997454789558082024507841978763787295682348733536093096930691289810477994391180530278002784177895976724794247231143861229323005120293147728881724173742291490683191351141943547493717692090123629665225565413240334823308035045420205461315300411831619613812521868589444216404467029589182762797113333815649076807288706489492904434459170182715062828944171401617241889598233670291043044415022319563662754311820488988051266537253046187221686968562439835253715251641725036253792002074038534307814498071693197237038692397382966638172109353960382392321299656770879414141311397135504753009720609991422611168861592456661638092484144343711228445228946613852655199787530314371775977279491047317171356305882910154710432113280639131330446080494367865472831612087842000963390220434443923559347878386987412154280802762710423185830148516672556553357489349572533318621305736798329003380295432589750671405408559987103677281186095651967359065828547088400706162113998278993950940559339360626088748503607849262424371850766484735622691428509597766554931435572591587521585656102192627334173785318996845493419021032139316330570083991786878298457995501140122988694609295645764604922597087610381732697790339159401207064978568142771193562064505683570566161590515750059748481265948079599807042233285759998631097150326806087805685649218820921625746665207046911366010221596899697878855850486568710527380290192723639760418121936654459318971610013049135428446216625866318919322789332323507057880531674464508956691478943664483357839761401921136266867630377461977795249674824521130838332440943749014474158823584505158176262835916659554708380172942036403058994236972628162243289693905957883097280868490221632296525661273669855473405243104579907565953407009148914525499868334824789469988645631407633581028367344264745649603721302598785289030910179798576776462418791535177889692900826524239466955927532688664380625920428182185803345647385905440602973980120575183667053106216765115047005296726553827180185955807483511679150811020279492030606059599327878588808614710091403670157143672167956003296642285329308060369892332861700341748005625200428414709202082138177697704057774131141665710995760820009072852508103157610844651805260119817352366201916643441288045660546729130327981319476991236744175643773844270014238098037681108006454381529239405648993069143325334768006699279281911204121488726426711998322442826662939832356204053736603771678583759541561193809489141184468410733327437690775694887556909144812425267661721223507989884261905736345274764762875736559530671811777585664994200404183279201224822309528268161294041844388706778381810319335572029386912741074699424399055905602483051400140249359894921357296515500198051636378907456288922049835777929188788123853277879773363015224502460575475101949026816454148736060022865237312067385127638750472478634044519691288145339881634591595674186809673723410167318908746176437777625810827464069037087357114831582702617174835329660123661386605321558866535553559479598368006233941962063905974442014824213132239697524319449544469904329315301562159470327275325602623526586050042928624319186570397366689408940294591640237499796776772430473670315709648743860511618785815034085562263198684997387964958557760737316117991562664513759238872241144351676378998454878360488049772143742350122664722516623066540160408865049011798561088763038672420117633397866726945861880753888437015207082876279749958926281789186354611702637620431517222569126480504501435111595530977289851488772818072910631215599871183382824828690941904670594358358911405969656617521112246095521062414732287322109236508564318798553554297332672447483390042941227681150471474394721689746237560835447295959649987507197209928319340041245674703128670377891870345933742133714682256654532029137936255961597147142739143071670471851170051548910355750488388040087930458876367902107129527045985442214413149532401454779525489699203128431093620806458572288852184971437957140745271606525963052438751022905793097090590731710337320856218921441653855388377733780412573744530085974431741293081520672115800259897390681205439841542490470403443463777112955150807642645653675538015910670144710732705816579840092840605685974964681503130224513345317968252161124660910563229868090366490880178554126179362904000304558981860055940581076611009086910993645818870395509367785446673722696198693624967817568386910760694691234775139716283685757738543372832647400158909825160664639974862551909992593163921438038992868981849998946984587652793765845205925324208243884667409980059433374834050188488635864576943658772730858695080549929676629783610020866175051125127100267295096513766471020916346521898902628749300153317536957124541087476071999501361361585576761426109838234742759118585929824788029011761481418793125525933500768517475260773567244039993869227771216009447606150517376795156469154924768035545453261764040497370053473364984137229206978929047302031298031499776748385035567354645742329203646130597211744499451962298233583701050419732531605132480276741717051445568337464452240917461679948430239756481550395169140202527006324979268070053748313640143927008641550080525023845515093437280501002047696493407795011525883234360914468591080047980776006508912478696350480532059839471901523917520048123005490060162565405089788590048231814461307946887390376033151215163261007594667961070054481796201711869112744176965344670039778238427337891971774783290522650399021047124837784845553234967906366025162279728260411166294865533295035292039178148150292520691629229807151213866405904402566532408148211371608087488222959449594832750288542261071391168393373318811131126594572673430618204066974009939603845193964770700434874651051577384396267910030014714538547215186744062772107983830229497640128342897214403064374526308276348364232703331662923732011327289327241466430278376457097306065690062667285837368324987394157064759510017568814545852011013282109087149519525224584004557236439041977579384451925881552114078922597658883817976023926179932395015821340471075905076255736746119297578449959716386743636020917484064127139292076942859655209158969997307774898172996088906097856757048400108621761872933730521478541382926565773109873854096761552434300871065456399601133615084299846121895766047800994396802296823591241035701408267826922964213403707860575025991715247550808315139557834564337625600055678055441347446104067055635819984045226104666591002599644665470516923730667135247130562900327890556780774380968483628240285705540837313959792602645414337808869747073234049401546144484288055720924645962844703767278402127825875949757490167501352248668699297615248936781605461608967208714781509676611755438843198793745424877360937490000587689866013401253445737238103552154196363087636663924618698830395795777819664895699343979407798592185449610018454243913497749886943578882680595692506712108584737955236350081763344579967426529176129467406832692777946702494418700404195132039798048103157924290049692198882263655944927433224035409501262902627582506029095026460105374778665667575980232802427894923921694341834403818831915945173008355602686211144056771594088175179820792922667005519863047528132422830818854974933518663358288301562991559837115090630089496304074327807484232848223497776461291150588929789529093340480820534364301549725745030079622757732402258330494477114832475725047895980738755238462343832162231604239049735484122951859994492749592479671429578735162104956819287117554268740934456353794772331957215439396955115906931291730030921627216422119008839700404758422927304063606314929207605272525701532431473625847047120501158734578925992035626583675332813919435052643512563007138803838444901888321690667288436275658274600105740118924508948444344342199332769778120201750891906046762008894564467888568535165656509237061816678745315065670564556495516301325627184831043024827274532527871883614812658625590041890797959529227951546558490564752984823201536619399796658746838885940053091483603413259460772424592246721325066400781467610973760476652213191579850534810887296861908602299761046529867208616805181611343873942484276028355072368363972657427499210474587053978741091385094069117678837379908758779386191210850898020509982122558951515234005002219027621145240672039414386860809768222478264475743731295330485382864660388941859182057528860642618456349569711926778603601988437537024428951682567233741239786767502736579082780330595319665219174739067194799282362919701535506261051595136811269952025576921296817675756235393665139315784956436032471388071403549852143590426286686486031258521666437622619791770523301756844044215434986215369600140095611970300579972284561764548335150605459320559282956122550388681161093915333934080255964186781467304777506745148564308997657601444272441576226795062900234683913975547657924673240218163193142470939043148357596469926232836881881338527347525818572211478354943508948497212510309606372850650854872787580720399711038939910642666827229864459765088005406048527840743321472159339701658607503283622923920892169179216147457866707669739921486295409221807807715597647303751900824304517417305708882361532424849208378795481866199284982703570832212205932759998136628592963043560535523973728519803412845783245451231502182704375509357482934741227231455110815454759005756584409370375533082071194542599334068296186456930137490152201549747083811087973433604309032782209393064171926203513537937922274279146588078094047689807646301049068435498442196436639713480207858359783929809164653546189316720136995247706593413248776276853502457686674629322264501775520745530306601206448804505435772548340326140166618087009446972949860960658819481816207751311555031020848701863428097472768730988368013307884281979672320881299767754388860173044439804435040582441167453234617752854343417411004424485872412720242466104423171558943377706911795583896751731524569453566373779002053365531254006868986679562400925980177837762948050777158811870006845626048962822436174234263342337810711062442007259650560926187620974212189071773157615628890659451724554096283037293757799369853930885666923847586699964985803793300734650589631467325341919530008680445775465613024018051290062409032818436092765097766948025745375785640569685622933629012273117919086634107520813617340409871914616273755738172020027120780473029047953740306787415609574978973762277976102678442738547612247831449664916416709779292481298653876412122972554309280171639618300535561989366836109544659257610352386445682330422702752600855468694959495160417409217031677505013893980036372025918175263379877377451672229188308599469160857428349123964227785843479371493923730645990671506929519081469715506404560193431113661231538231577331380303043755325627904809130017782122571436412359823141433111094583622164547938997597792514104375000695860334343255219052069318740763553907875637621967887849542057884538549520681536486029537864653724558102474190527864095897661339884380067210761831015756404984766398566388622875332772091196306471784184415921252855353467281817419801647407197680088168926268706738978262649226360920137150549805384041801599987075623298691053495782458885171420138133816263966533211910758239055956629575718062910331978413002959193517464155147368490351406685899553747091312233001617805667788184013322023692865212100320156010059641924163950684239850407783292960423697196400502968734991172652602657517880491351093219061577819250974755785280767517741097687594278854162233725481993654243864961669126688184509759222808486191656456094889653105605195946900723771553783952637844389266553687632396310600237641441025125088153364845813544619863600215550350693296924794049090348822534221628024486750092063806113116074454852215044868711542530276451768029694034858935747564486634723059050331173037219591896302614218389480542614723643588204324562516818320164980729931315190124344453188804339704884335348048991956865846740834345035191199434433012919350531294090610381044678472428291115023830935517493640592100678315589201161483096008632093955749415803785322002995101022663673989507178771248849586487655523478201762497079337156617566540648347984909086507312977719302876565900469594230061853211469011554394209259351145878725851315860607708689358483527533905476429993128638922738413633879406003667250873887871573179331768911389125187602285224541991482973829126458024388509398516937348691243023161170048083144537801061176589138842453948487658881904587738611768200571080574545691453634005395903241095034349507199663202751808080254468280091398246214944765007229010190188586642393065649587372775753561475505352638564688260618653713707110464161897486862674591479394173962019352523009306538536740854077832168766638548174957590757342420829454652718604645595131089644872742614897876497515521143434808904056586663882871001058871470007655852688711163973738385787092674476877196843769439863972860833006673953513224750403070120643403318310616442989750796525954299317464482744157576807005218715897032168432433113223870562213589017897115592435061651637015156112874852982562302919227893146020868627782033206294523927051404387966666094056648585382631444376688614368309007674135754206005527228569286776653890443218271923061852307366322168456297630879731182042823801557433637918882707615626688613507637342312583735276012944867145020864821887427788502837083005041587963491037057126181943359851357499304679191278240312006743652600067707589518753484404839392080097732729224804792107565279545636897734518060466849450461457893119599002286701141211079552679835625748504832346788496607090040841160933958212707316825034248002374436185939034361220565893076891311420470215963033866301092079026820224815700033980159203845038985981621375421544292252806120798133832823498351386310703129580165358190602153139610487664998243240691643822550275611358189882002443443132915436881055829006811147032874461248922019505255556062153208427156338642359809432802308878512567943029699875899868792548886098994113090492326601466383143727137602166993892543543936136772866911677666901953778160555576723027536197870577036007340829626281385155355762220052644079724556614428623093026104700726016250608932446354718712236159792243904831212115186816991249652244552188019886391578608283995448819546431575536714251609283736774367680251933145617028335498138153281437933948669196929520341798272246077797888874379061669402214392034979393203370560222954385600122950285839935449445913407463278860588770380665143614312548016997812120697769945866022922490265317036638440519848780890160388138795728938071506774450587333101029171764298949734449627898772413356454352078506722049182391826877451099530589393421034186004394203433747339822613699882528650501872912573858822558713722157888727669807294995897745007627333674498810811949077699808771806013587603447196670349300982012930859185427832873494855398366403046482245475394646955286165346227199923073499847239359026969707502419768176819910827728506308878725082881662182248622523637179173748131854070068188319372373554578037526716840215744676769162070518101789473965316257993286231405644798631958791358399053267446885981009004822750865134386208789493098649378903284667232734569216036541756985345465798476418065716229964094208518437777772287572995859969750279756354642068841202235736581515159043559645064348813855596801383088218974532544018862646303928484500210831904839226969813398513907453105714012128965220558053193991214121850813880082042167872163860619031184726912171245089376770105591846412742652218634124284627005435744738911275916756367235528390095750944439220478233266328140876779336045393729239835583401018919500241035418700255585450279439787882770831345864221290720300871331667636189562707215756224953841945917179934885409939417303368405783959926678439602108774876424533088043822463394313507841731028829157909776940609320720083929962037186117624148257424918547100319112567543899796219513615475244745929614735604675710282604603636954306407182178056563421176645720357309025508733314403200819974022667185168678473625575941999555637251172915999144975428648550517992013773481777259789883093042899821652466701134059494283571097482673666551916587539097183482364377935325463100679045482315086246845092503380478772581446202473669211134449788936710011104664899298447596106368246195883248332373900185549610627379460788426055402508335176660532631624741736685678885306367600053621684447086183236309727131905742222861640130550055842505073424972712608138004856722706385704697150679012002156590203475841702198627858258393498598891851163251029317846872543467247747367933807081116639453485695990678668732641737343704497911344659605710391816644073575465942006663830235045343234744615336256243091930146813755929991352460970681518628329101148693581981914476106156611766844301530458952019085758669563887606146989159844940419741871558469703557298607968746226432470229461779106273252368465365959223855723421555127382593416776165231829034324022316733413096265726301368077676734645438368691743740640241288705993433593143688983529684133178192261946831545029318234034482779609639849536565725702506184550606548247014554008659589664724180072725224258753739876129166510636073898088244103963284574399546547417618460167648267866903513293417743782537566393666787184157616142357002828658609175663118236022740507892412078676704725377450459677766589138900214427871869520108471593517287747947332173921778696505704936278618277243895156840106032334206823106492723699447753310238698855735522416680652419736721643763710978082625822785097374938529775330275138105304727028412958734299642658420881949007217240675387963670031887329858957990754863683609963600917182880021527354641904681249422964722677807211801947046438847326010854262753964476789769595432771091751529899299260134252797320158415452530598346974232354484190326138013074309060953425569425046241182470881577650372406005804044010244020918752194554351361668494854107446592206416328795220480748255469169052568635732785012700761879463888896098538046669935741513632967510546084542811739393486565630804034509348666435575836946354129920425833646039534320450606299106529169091629163748263065750479916589581281692268007941331199939881885086448716280341826528837743266998748252463850022662733828368152154498804357144285793983490667243961959776324433810936935588563672965589080490458076166233686872875614104685462134632835115122322832296853859538032030745253565608865097709311082512998109135558969042107204856464938031144255396254288539745694858831925675474015440536406854577883698943193185469477039828695947459359212863518874578751181312143769455629902447717355083790852453392201388047062225905630005904175319907353090600986456983123002005571248421434925017947451198657189980935189970984069358154413998270939587338921464233517410160861564284816152402509096273611945007316060432914200881895685732094722348900118800796271677596661915730536751825423524907083302047276402096845300711927243425371819142265151394443251087150061111115385664164687088723793433023982565463820335838365741184732725559689248125982321480951768227658994159184922368476773550615962642145313308272288180995047412885274707113286908693801641363757288270282597704635044234124099127053446904530023741758117954064713913499939406815588339555577927287809360624820723586740992153154785695667332941946374124080121627342067496190252991193442951584425610322874196801221669182915101402852628767220006784035666914945626615049795668920888051034194136866904239532279394028848227055548145371355299270400912614904452681608083629221480812662595120665088024680445708536037940234613413837729428130965828271122306608756834984670288290587795072668610173788746895043568698354833120819508407226894471279535432521116806421779588512581853521081921465493517314864575880564418524340879973879687045169571081637730037703484114356291462305494862147420525736344140583379503023218630357759435539426622947676280387546069476275647854274396100261709806944658425353265419367236953112664642011425584540799669197144064871705464659306775716157176930351300359119175989361233327413997566192572995218193981043489524665347432475501495101545564813210071298702709262381141942121886436216313879067785508930856205896555017561789966682747256224826326721917518754863740319295927568798124816345032785271100002988667156289262718425244814997282128440065276004509031924487108698279998466253574357968304501803396761531797793432865640839246255744907353068704963983121560775305275991888217734086179136387997035812738972287692908120711107775749949846928593399662505025384476889835160884127421595274842849885278547089486811321836645264128032297609477361232693084435778999626162243272511613808992659793581612309698551070404115863131590662004400352085362174714809745978752276059515316227215182202302844954752455244835789062491734496114775900798453222137627498040038372849770126673071153880962266691344038174413646119170207738368236438625257567162273431610791237153123515727093924627117238467906794868820449334992895771558569233329910781056590323707004603324490986104044698306804419578653643777692625739316939268174598291754963375450202922932667926695976939306971997756033751893074270656178514714491201036979331114345377705274561351407675603435107211459459185105550515246564227505053709596923582198033152647157950459899958794178072783787656369024871932170185876658404600312180472934990683813845841235950570615945514333797606585742375343477103844651347628885522201237978503729109407463194964539687664941496544276386399618492255240552850954552775240642760370529920927688374752304550520286016836361021812163636961392538721381631418529531985799982638990647542345096022951358675602694823554295817536538421797885359122997383198606760166881258412398261779169880043809011454971036893070077881188164123187502390793851603806137336576661701632794535803489019019097769955571543609116501269764375688022813611562780459644306253517997160826864238243706107372492505770458333368506440121603981061223993517421135128158068343349079044420333571836469306581733683769726119840497807762046296702707037914349701370118256472596828723734534692736188659860561513897196245805221067626893923762391217713030408226741166948335761113529305517474629553916413357715972489893814561820928646449641597369376173406318944786152926701006823757281580444877780765393922268739645513729799792150841068459504725271848621426388846374578037917248406503581736723226293373449378181158782146223125364390457932910217766869672795522859238922242235695238846358150859395899993133839413143431511352631307662825852641046891205786497183028544976015681468663016446504677781411758710619384412447540711377753975739673980139321418409573034238284606880250001758839662602560993665817574475532324537035111961014355743576797980834552948461171717423132502685131017943705603009993683637031591469265052339157801317722266779271981666734406552870993713535372357996683790818440344988254991750809452987413226826529480668332715717505525914659785110400267905028809741804297178249849400033311282070452482505406577019547945504179002097013930949571053798370017466192528216714683135119849840168215890481545355842871120785374031630591087428868185884511118464987448836398902925373871199084749993074693874622316307488109100249175539213256302764185815628317331086243766371651675556427286663689383389121063930409323162036533268331001242914518974601847426770087873074223093986668685031663816018555064249843025463548655776615928868833236087086640115604774409069818414053446807796985979200256381637271633946281144934533178510631846197076737685846184961166192476982988591519014641137503571254833399296045325997904490128893420437804943902390390874166226942555232399496673881579712132035084253771103168871200781657617332141199682631547432503356261364265713486846848155163478898472822252232128852871321480463240563363927565362388706708555393658961737632279339266294803745177636682072893327590488874673768144648497683841543189452927140321873120625880334148431899275706975759787404149455443673572822798606354283372185632172366961447058385700799545424822216154292744286479189824810073585067264024778209426463631042315884115482644098380083496487396295909924573092099817542119864408919075186970539988759249639340575452056628474749890769942506261206792209220099626314527322086755478972837718639911148470016100517034353820245686903162624340686599438035665879715890318372402856785698886658643009557277045353776923973632330094629656538195664585216279601309262006310302527849515113584978715099399314302686036232067499409405954737615416109557803285572709406098914528305365743233810806916250098926034796010965350721441682460152462098977060889095848354820236391173530694659043980981127991700735735055345791691409418668373456150763940696717813612220731473347541176184703231383267595779834881021229099194797952471524982194774208225606681537194979625181550397394993193472838941168729771842658089126057894510642318480860518297181337040796859017141454362599938040079370147117261528488719500344750637368901694680555335586377109894370763884408779598623878660997527802797084962373495923805311603436229679918075169311693692245948824293918070859010862184685016726608279958102556216509863809398164961560032209387990079790969855997690762136587904573607758035020937621932005540302577037298259407861750699327730470456565652469027930076106454340265945423335978834900326075169234195582363016375895810964426811009188152601555545744329385292618146884239127457190242544771380860318351250016900615271050410462530122946954456188201486191083450767335604665691361961224772148723350063930138465768466452374136322623813805480423378267979620074506709469219960853317476728285487384926417249664032906654684843771078202153943441443543444046141723344390989032288705657223991499806317222451161824983984011607105993517871724070797483573705625445780647110552887630501471281709128975578797641233646664155887279462450159473077600538651319739443587259374992119674774673663668767031647705645511919063913059571819731217352795021566094550930806530038374412278084850396206425683275440722250679625364751321244120037925960767727912851714272176837131336445391915210713966357310930657788115047053592943356618833642345025959971208312851046997295812249022328116712182297415289801610237778289179623368110872148588968309722979388297096556952658056361072509204316687060759756240172078184818903557883581854729672115936173627901887621350262557419429486996410517761367444779578805553750238439552937755278813922105722578958484326885709464253451452449863657900526510215629791211766360227572160947262931136581512595358366868055848717293562048842002328785539338008356552924889240939753015037720944578230033849507755894014231805502495021397724004348735290517452118840083451607360750390654165885311730642779029853675881891476690403983781515935197946943499324456272930711345980451183144007676839434091003679151211840618650626886377002169040150727313382323232191179199522031848138876390620377930979061679691196652394890886044150923186157814881707877215611034220343166568462187443016469269423677570855833113776337464529854642364473636442491803311691997529540796137367379464988007051668002246097600856039734515437139331869560613193861931093427075637423230780566731932909314879385235772209580970416366667601986788652405529474776038766796454364906035212279998372363698735032444415381224507082331681614711213997144721989255950909266632160018582472474264660959536945458137263913305394906103225339292450801317733801733657307428088811963739537637310042684951559902788668501218643141778955366627567192478456779795539184194410560563289308184943227858482241359199439974600111415516831177592470534027231825961513361599997540658196640151658440151130426455663557654434108340539952400919210590857604770442083842421081000167963741260410633369729458979368911759575719667217044753490771148607356400994478850953365128556379335508393570790280252824726672693800025095175433780231313256021233041738053534603867817523131518834029436062205383081460769733305627169397448754211707387595190894884923224702631965501373495257368965306454884152985807506693080777204007184148617444530662703119550155666197748736526853156028188150977323635286258011969931671649233377717717675044161431235764741301367586413899969204249363777502422695123722525559854561780640804600176822141117930823312747372122048540821805835819969616189947809708613959124046387447965447174836970796099882500073572642778055897499725602729734171219610657364377723512984780266701082427864377341303286970469451686904196496933578969088021197626934302437045624723170332713602286173877191183016551540562406394994663990661542073937017267043344967676592687429198818237597569405892981675236652943380625258695533443988106064333733139109368744129470442356311535325881938293720366903330875668435347179225937937713789007725185999753200792162286625987104765615426613738305587514340792963766816498397756458594783519204395780917733738556462337667488495390760915715492556860400178392009230672064631070604687479515670881878023544995642786201954132914598181716338903079474627228881990918083766439132020545877463080560283548900272719138404633118825595616137151107705270666350694677559280168290877109366238086033141767404914116929287480741865523738528770371465913179544168782748914315453588338717538242790902287678888940863241526051207634260034111632426838339836768589835724374058140060439410422705296239302434838186668951831924388367438166911088621751829138701950163103355326766570200279609684992806213415645643708003383524546152111274638456310043529286687904942640985154588272612118993724632295292378947646971929089321476501748191970955414059769374633731150588989237251388305353804371052614640768092011605843033313760561849032263589859118141119676404600305874735506145023232415137732009672816514094692426744571292807186138227041081039898208122482712446613500816404383373861830131225699219587704542184683807366462595333091476881206674899434774179577551994490822065934419696291797743976280587895845477249386971735254491507823269778905251263406637498815861175519693415063784067942972148204519292316046054849483437337323761009029140542244837090885224481588747992222286184664627198570090146444014269422351050441525573420307073022114168377678252009491594501686225075197258950999519931952270224145697858910947925203017347539453298755882974386217493705905458297157690813211324666564773642970370443250985895563184489833645878914621901895361553606225601695718803000910227541246531473006805982788430493737948539032587651252052555709745016868010111368256729135945227382792118683685737877070414111488639162773392332644671322923353171502983554292081795792119271908126028518568963205922003735240537262581157574187316423347128906353826040648592315540695600895372562834836153003773715167285231124111407872445009118382015969437731850307313099810022163101611659544660115707619061373681009130206006852906373145474709660069549246478942561480502414116954953333954823793842208462739292492284302908769540573634396012830417826645151862273350446325568240163896867051535703459248093613754870250649786201245275778422563437472140825470017759946856178689012637914594621138296144711664879035333599441763735259731436049229792938908819934816762942966524487760228703298745796299345293079226419183500454384033117357892483823764459637397763065570387070520210797590932740658520293464641773827218929868754307331689667508608478554658897629591476116848545103377079883540762922719565609158725744123604847407859185118185075996922819120943609280823479587749218473504423329080937098074627725611536040430199000508088805454478455225873464667791353955941234467094379935717644927671023983546346787159808621680413995660479344511303303863757612237926289798431511314131079115412565891815940357578156999981308424606845574515256912524765640177318701046354676695198196328542473877396409588037750053428351824584512174711637383244125230264008846193668150801863492576064979530893644760295260170271218499665549630727958636019294388203722294084516387943726649700244773981441841860619965339395293583753586001772819902588696245877023826149579252968892100761580438650768525188608068713056828033241601924790194101966404673578268004368831507164881092306331452532684712785994547499636290139335441592923720790944960716555880749167185946099934116507658437415584052526581734496355233518296171560545527793306349918543080225228165740878777795693999695352200687486814648625564072924878298985347563400196162901216632025561847211787755829314276452377575553088790298491800940397095492563890234048020767438255349282021525911996768004171877530413501380184341938228421582105766519830662168391409642912829646952613186295395567783758759518865758387709287275523494093944827917378770151017855934501746461238411054055352823329054876193417748815245440397999194660177986166463626223344460363591241314253209557212164032548943507825763023192662765435743148938546349895536398085745206776647990744970501413918419801224153529339283899645526252847936851419123967187883261152327082447201573966644275448928336903187008540804012580978815461371865920246848958803992238536798593739894977966424483262644287244266311542909927779979006920465034267095389036204597916655363712851271090974762844219051614625907619518746596370582525568487794437636662324706259911704622969868489638126537884462041303477554484251265443810972172900547722666981260902224057398926864341867139852680821210922908602223537342456743981759706454968683748515394190271951050559046239240017364471999104315426636455910623267965032301788962425813049294700655336795477448473861706736772597484188907298101060386418531171446844050116198799345806438045002288016943889594473324427141756890929309942099712376455754304762528382283583216954070968135689524015788815630248155072919038654115440930653795613371530405814692940575366403993862122947716059901864314275769675349718661297918222437106745282844488139335674169113505812675640470338244677023475102193936038688195322440108299543150651907208161254384253988618184584557312885012770007212795179091610318628001293620976693150844670964911655117386920110851584355783874766953341170721149870120084268058042537280355116062160418587194818898886331741372966280974501470921718394383174583982861706338645296709720436705168360708690810105493405773100652504072377319866992596352676530158451805867342691392807816686072459532519119732106042399653538009522723994604756198068380121476152203833760469772930856570957955708208026040335472721231451687800900583796919045784971906470703613648670505044241191135216586428263237720591408321706441653858569677396771779013348562459870092234258350035991250210956307619536131040565508232317160430394428044092402250301072697773793741058392452426446507083758387554443881792705458197321411379769739744611729456998141507766745057651523149441576259830243753215279011650062090602220284701686488380932581589357946324991694338405631876979717778512868518909060225017080754953050958973474676511874853466321511728054368684837114606997880157170376215036892835877253518546316250334067973720705285037752603876548933771642924036781173462179433607334628377057878988526935753057796496461606472551117687714627172927614555243298745926567178429908046181063742098189629971833579592882497642762073722483560211660084699828790192567265332634522395063027940190845018562346422125287378672655771283190206328343061981085090799086082241319409974722727703762897477431337201516070948051540019438025892041013256813430346413125971905295972397228907484824064822782592261171930280730296031161586679472122872689911874244702510764232945663631149232372060360087655825454244449761537033940256881407274954342711826690369954019237648700105763640360658694256421695270770240507110647923860465868926544057772131326157752780310739814112735303268002152959316607922550929679513580320515543508447118770172720185249835682899204196657613111273703989888087824959395641795524954397379575239193021032030710541838252615880622882264056984465994771963122411453658984852707644456581365614570979303324074874603184412142859164314949917273257526129581473971318590785623190892715978553851893173195182385959918268500227878361584664775297943743947931555733703134374589561589302691658167928423479969635997684679323000489151305473605408159328204051790265951544685424844434966620763715944317359844639978496075864080712300482568822937626388274785313243631614732966817573278815434728198760531381098455918374206793286243628311035658063695277473479690542870835776170142872990256596677337780439764460386350812776239262432343204360697916741354218418326711731946949888057234091063560899638025086371784342366518033095206273228313876450789019558791929426317164989330584777498106098331667955667716026754071686422661628715522494418195019685968447106958001045164731862295294350168963399812014422171872352274588236364254525843462364082563210244895764208569853031791726367993170701602870000311632760723668880602995171525644625954450155284913480254852065986829465791666559177210819818701115246128421392569157505455095334772722527233799871205145706412971892471478457688750933360607562852342957645273797110136148947205658269662283523996420428086313514675216117193267945857030600986765319445789924244325861106146247960468487538536824290673492163669714912966284125262814779753513985281922598708393616429898211348973245627904626249245927902972628097771373252703477097810544747359366454258203794894508374236576958909699205715613826004498774229898631243466614719879329599984286823200188459956708725006448603425707073524135489387591884295208948540738848405802608484102447186831104308446488296360521121959789243622107336919087021948510046297369511622811171921293716856658386887964592981012732733790214846613848302211941894119051615811012735305026760056842138557934280938063748180697693682220233609580240671388558888521248229387869817369196555939505096115263089752100585097984453991309127586145013283149837269936120007428640462700651454232148395806845053017097348374965826793956134841764727939093157029441808808475896135916935904574717499110128638541019306790529107317673347760185275980402170044200880340531831058836371118509966968088944726953377948780509901875429366747561999159068997578706482266845922027460848523946878172835234000306565125428283118254738636759517594095720759333163848945230720456218612575950784008142330194091538233538636185491451939190716038265661000438373623855477663992138435900267297371918810841701725731098960664225212854035594464738378575159629958926120123068521329875879263732284620446078967382836332192510032578231054244082134760770599386350212011738012714169449934885997519409146040227896344375606766116548771172073017610307337987577239626854498576878541774558024470788872866866194155007184343570965510252169908933858295958564446399901239420291227139464855446969927730301445676904555306516474764304657537399389321034919591825011022620682673486702831349614946524897655678851530536954826597336229121200881773753652189589855534433313006045018453476507653131631374604330473719326345692844538363481701066436762100345076797932530020433571900647860479214434377516272929958563443801752228515644273394597299882725598989914965307267568703049609712250798131155402815681063331862693423783766770718792725480893877386832239059961286912547090727636330627032368741406342894943074751638703074271732901251109962423541358715474523699010257908814060282276284167404686480323065720549274858817065475896482000247956077977225377909080836071714832656724731497488390710493069002371499151359590789536126782339422412942149596584483253960360566665312334256040448666329719408002068349748624846019980948523849891672701851739486356643094363968517018673694847181019664684661011750910970131588931697282319951011680040705453217591355853342418390380266043137721888555982369096814313330271117162803608804756619528489684607426426491194467092173642792960000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
70000! 117681241537969008158824292086636573069389535871684590459757921963649970179474012470398941332858121609330577633801209669543440994470907970994418349100071687658367498756297615608297364123124763416017001437369718977197739469590902190060207836721004737496454722984897857152022074402001038415076616002479976880898426969840964985668606271865483434037176331375887682621589086276076158497985189103274962242299939772078569962142008360217335601647757988693393036881559661811791109412536408859064752866104784063401843439744833642208746781134369454740348391780246230405410320447946887083934803709156679098443784487328048613411319373904005175682119157452223035207556323353100180799329928131484077160430536735677368087302499448680630160107068534185759706397807742377318075909540086900450884898517644023314869691414650693515227213308159928892077325116845740285521006813317757845747411638295998862530617182728468038077880638288322438731071673858116495770091786918187680296981569876853277578046945849856525125382509953506462391765789842208964266283570578474232369794303052139722006094966701859797170133937377668514238829746963595431338852970336081661089413901364392030174863713637601171059768437026504604003742735115154495230917452627964868610096306431722035117925258888129156293206451219817250048868653036259352040241854143875080570342317552129211005456508477342143678988844140784244166525487930724600441687374211711670784645888081671053432156205765261598287154844089085359159435069167384912033962603451888781516966046914593789633273606847424893882215230596340141708810225073339982716029782072953151319836158237985642141091487424162291112737667186443774311043188322458692500244111463079786776803312111158777356587321458548876653736833861520645230268989556442696947950686220885682578055193303309990280467411596733947008008876872585134660519491604988418999128467721075731765806005485046676538343005930007167608631798262917705227609571844947412780024994062831051389477875266746809249331526931503955080885214962181093873569808073602377472826337499646603190794600535577617559257773178239693263986569206613831640998465962895931633692837473929763459919189354831849671515945701084882535778448699627194469756901388552494546477218412956586746245442434760478227775253395424949601952869860296197024783841532442255104767551189037412782057885988867043055921580038553230944140768908704902406354146244459891862879541715722391104384224693629697534358613634320897366293364942496350175344295124920172250129749060069984590566369510544552578737616649907277431963430762501263658950508214233457817261041740351864256858643936355446744016090292310940179379571805497938027151083991889194898713748222831772185565112850726212767533885142345169623300682403451919601836175645732599281169898997977534321537734215280833546297530198930620862525008426792574472629084402042220935798100182397288254425353586667173608880177442704963900475167701745467209310685830010304294089358519856738560048738701925408401612642245269829361948447738903773986109062764821107825590707618866354119318214171214015929814182745524722167246200454761004376063910010829414940210240116047360653852286920792953776812522521595412523682647293735758878507526458413517469924628927696953228614808897431362922501311858029909587009596696666692046148720417509866065874589389962694438177759998705417120622716825852900890200672559618894795371415132104492181503338246646665658752687017609573247634537037725546241761951433712935637986874317434721576653229309702582723013742945847944241096248297997493891673135898888712254950264974872107399929439987333947308245817077791455956463405603160318104292155496497170763155145582470179996208297196599451801535024781607529987132983791777173430839826352240361911972170030467882980586207917285968382955306676587242787811955080751394873129608347788743892923390635337198138781614802625432912527901060758198067287162742886657259683147305540753069160194721792779646834667932813086223004788834199614742490774163215765928454257335703141685941818567090359999222936275500450723915425195189066796984397976167641503556037845369203949834032399799377049513231217581974578127412016076080374621734008849554250260059467234186052379963942788611724092437182735094727381787363232132365647055967621364449717522123428560236639588900888437555970897030331825212405524276349982057252037378979982618186940705366903778535742748299693293508150124371802814910438895918536062704049191600794252655035962780589830743562950374863020219451296331436804527335043955224271546675289174441179880011298713277076890159840760885026581680469581139892449208495311905426040110673820360967904287285150597831977222126105768082142171075380106647591919972389333960374332267905827425075125288383301617764898201650531811508809439346350864207943083095348941979946610256443345417002516001036823659328009819379833533516792518335050619852548246665927345602778027279441198564251704220750921126712489169338559452751458838163349965215725251436707795981247525785004180319762233756495798163907298374089028419885415180857311047952929706270256722369149062736870858696266237955255328743691325712414343538507699639664584859501868522077936610630985145365575027468562976229551357043396131713820115840162760955707280552569870387222173988196125869246798502097791135093572441858618843039535995766078342429699323593450320976957592121605847001542652332213502772293526886975918440597386084793466800879380720285755267038716391594880764183307282640426381301656008147214561214679597445541668958833364445387961370070878154965895944585321652875579994397339287757490361452102097445741199414392364247324883494738622458666727060847084557768238680342708206835518705500677096945197851888211466646270583479116358288006300510736414239541237396220780048841079770885300006589540597305928833808063878024566889168093459178649833499309892642481161025736794433439015919863464746230152930500760436928363621120931664931747172315271183692969196613033651549711370721003759982392996596049966359771719819875159236479167152397934877100034904927570054230830757415886077492349831435907300387615499066631009709521609047620218542681424741770510492246319015042754355623301879393921151273298207796724310342654487881063448446871595221439637484652809442048312649477376085290172565597720886492442463174365303207788089112094517194729585339047336348323858758801124475144743509245154187320487582475645048966055395356712521920147147897230471467210347273208171580738552015584369205773359521057049908530691886292639260470562883383619470217270564791350607618974209240708120797320322148806197365772193294535789354011507840906272229545151894865750960299992100050644759328313102978200315707940371164565175449797308544572263644792784551188761689697680071030314003396629365907433676743404600612310411807942624496298910439856655028137344290698255791817272745660553245994992659423248716675704209167271835894286801905642482661107826519504691945410890093743120211051585699391440215948349132210112061946150438708316140927160217565320751879088676694387706459507391768016845693599337003166669409192532779799608953278252389132728819766028557070980479157454650270260228027571479329420456919398908091885044530019516668552602618755796043698741810141342814016563568795802877022184084412202418359497175315034557756730679297211992539502072634640225010476368163830445869794473922057226784750008179131791069357151967561662637256335906180557841937533784490572278002604659043982381301710385410335476293296671908279091843871461886809353592489845376791482601046596291170395854956958664850809593524461482935870912229634545977928238416843309294167728392203089976953071977429780179531170939139419963378342958629110468221464987334660056970041048366275980118730150860424824317263217767574870642421785016348129663917918823248281828754266701931596317870153233045487232412990029520592360135196724824603853805738555615924174983865758816976018081704923008532955901914566720584685313660411406707759477576724205799532859916010123696393836693323500364117686952495244482458187771867633420116339834204867537862742660761284110964695532997183096801654649052063791277534851694717139595465371688137745085823758745474606731510302295453365586629753406309049520873818151839631892115272977019553298547899483872321279275112911967120372057970482255521499635561564777997730325929618052930367492979750274587527396354231231780058665819205915169807606655405634876759102558672993658090081779952482030965835332077088135449559734616754034786986289676034563906949661208154190294763270008254001093417509412821669424331043955458226284534072048388672825213797523916367956262025859624015009070225978367858847057871485714735442865044688882069543757371506431298025309229392144447391884211774407989278891228690228433542796465422369530115274067204049559567844176755884197153379583135534537047117154249105596365707756114258437928617692923328086061750062814312490100295405964664640249894768322875985084596078566769863478723159414287687625282978430106662759866571547772984051311625933656720972286339765906684700325720463099793774244240459980023304790246393531409117193920993934086489983168112001050879793999815326517986864983320252428908164945072147158716638819536975825533138704626083209744548190618780962861796626431543741680113248524082168794630463422430952009491900314386548356456520489810092230024531771715191057322293967892805029273633066891038305969513882668528738074818061065655344634539000111769686610452774466649786660492281178157906670367218129024916225580662947358293963482641325953600749546009478262735802523277185726499158109329254819928634465391436004080640317051758103280659418487170952097910661952397754350526556823184654044097717770856802408619809639596791261175086614197378619543947535896992330962434604887890256897955834797105242935968681458753031071724660586162190061759600295878141778193160695609531736793390674003929743761403580824668857427901557065710858082700315878488778067073704848341629639626680146948906554698869226489232888753388822012733507796755587188740423761018984707816344064480421011773802508514219025004868240442954795901813735550312293350566396236082833205296804315453363413495785358316643632112680636839556454323540707914453387128204301137453802338360823773808106651101054656927945786528615700478995223024215039031796397391940880971456843023043256399011756378847927932342266852199420251736876195659960888424909176091913744193314989083171823509912721443367109861370557836661677696526642533281923783004170048823049506701498559094745579909928274378015359585850510436098748043612724000565601888107698681214145432057746081557170923842822900466787808232523640142747117963282019250716272626108209718396527345471698771445481429774995310906692230483213095523476239231738634724488875373169377419631865350100309804200448631462536920294232907723626250025142182898668063833215001994495647104740764397165697247479007074051467466607570125186104167148518879431726436051313006367504639631177103565393353650835653043003117045031249051037244679935134798047957372923615767870521043228140482807439315956683509365798008487521177888744653778478495082638425191665440918773793429245577483599187857231849733589882456371375525391419472050804827863701602622244355031723636551539665533727134165723234929487449314866833360156341182501546749633744796969316180625540490504242476486851377307202397373967057188114294865380517587352308878775510409515314390892174763880171454263804730551179716773253935454014764760104109967609459924146834534327762683072626623411679824172231304409184558031972514743743789584827186033372668514154875638258693295227520453733114709365763858902419766197888367735734615280153622105921453315114663399754144719588628466300658607196198675395751843444481744981384231826945838937930753552692504308509216835034580153740902505396985466376074415755547281610799666228255642762107793182260758034452031914754756661210896089183010263895316664309537868221274853368963450673866960783534709535357739647177515690625636527668361000799525586422482849891661362518153911293047765481350861416360380854187421946742045618712682885110785983695723145574427172172334234142099564223030347165133911130130927711425220773439148938497571422962204305807953488826153955897615208294224717455289654904372184358591147918332623436155727552887749074839288626350937824643880189044247483543264683418149066710975221345719921388433223653294243285836599571097270367745096842245307818536484843881955976802669532462159803095102533927078620708273602368886868471833724787453164020113937146486247443082905684038226004283971218122942387028305831653268195228793103612848542944797553040767497816085693315790320133387765785768801333074655363164909241707624820799234191218035982386455893370715647701316248628022672478470205628147409932473989040724979622703791510570128316106401211124880220423255285371452379553208084562960325595814966401692606252884428993672180865993775378785395317037586542586096149683052929077217815889824116208243553603641400720697672569453059834632471823872326778494713314036284832007512361578230641243467381836940954323703996963790247978406384110136714246781447552235404467466175371622954670692192585656486849386541083358114980447560112526000045462607890753078894630938565097946016699785997957879648954729935782956956222383781517386611562525553834111516096455014396012786048582030091304753658739454090100104078613565246568105261978611046636837857349722413142732746662420216052874385566117322716062371222929967706325977733021503723384863119917417429163889385336791250736608308083421845265845086932721042044965675347186004724735209945353576685003577685815579239288094508273065124331270727154194955978269060540675395033221799735450258147689848904378101771268052782974710764563482848030198834760534326035387860678437234641142179871273549003398160293416808654674112068046470859773000537595107121169504673482186552354351598771367571904157048878683970878032225456676230191905543468657746690540102083087639886643224947875402131050323521182017223223214409486297538907031672294477722394955788887840500573178690490840470693118991290903907796178343325136047789529765399899405535403083416695904529445213362990017547979641593680432644671843995717677706369000420994526851679886170900271027441722660108781180285505807642595718163958859938880034655843908716485932266295836521883755924506912883818150223944808224386500463222060379102765131115313608209877507259446708999404510120359683066669360770666473992423012085244826360498270058381490505148718740420405558929472200231964316915550249748043624053828811653442953804850328389663971862275293320641423106970320415307219382908512839145015413295438958403419129271376111281460979876420417389661172003756083941229358462126765066447642729008862107341993070584639133813991676617942573236297336075186203298108152226203406446520814703241018229948611553169977813427232169071756226420111636350991326402215744026577012512639451951862631355950925673950649988908649095981997244118419516473927670852922715186215460723139194036045397264802035009770978328268708056983509351413829795260495036255374549821754478788911671550274252245578475482812009427369900128622265509790327917329114953699470481437488519922742061970092359928183153823217476160603707911645957264550935065576857964570927847920255395921481221686781517355744829093460444078022725306628628852689231559740249814582459576317069337418725491221164291832643632681328834056235605310580060293542883288230029983525079921220124255171245636877544774223278171212747857036950172890930968108950268378091992078524095584057087661061054631175730883178725402274075262125549647893918280180247214565640468384387842949561033373536920867117100661731872550828460061294071600958773488038974102140763843150856337796882735017770713330415499900549409638209060236652000008630331625095562646075636649748268268208806414922728409207323247818744698821323005300831085266759534531044341668239793288731412840532232331070383152354550596652606086228801822202565763651000138359553581564159192834410619607420270179248324439680918408889015913539831030412449814649977662420554322287249689991440416294840646291567698922598584244669144195148704705035369350229964616993831045930155020021922027625809531726623355959493724799870513447673417307112457839072887366888185127507480780123075727968160548064632135243903005381973695129110300196575912086784772819985001338407907222930731647397692803924625097454257142716652164161356521880390632759004263128552857737850192887493096960196824652240481800074466809011050427996412310220136442409141565582315372176299061770300703700904254062880862480855313020246543140585849485483379366253165197094082590684575195233702864734738336716523073035785783004336689432205445566256642076387494758296090553077818718016776685791104202719772050415672800447076791172895163207643024829600254521878220393191789427902615188970192053882129482564424197675217108131799134477840234696159422822557220478962256206658192346937697492125341894264948302816328020087134751068713733931469048214935491232035327156613411933709838579241130509814252146258279647227154393242753660991186627859859041495533174223355927364884418347814455104542685199718779421334201021716395259810391624388384258930180479306206278175533511867421005196570956139876065734273398772887261527594208825412385097375691059084347452037124602292776732461489563572466202992853711147204193146005712017085416840039906682722059926164257035856988415843263781245734179508438660092986994337503979743369419042879368242547125504600955547662138583855562404764891980375353905514502861071457847915037673802152506760428620148745362911111068253487801405006935995835336187941627659371932683778267466335989615399804312097900772310297584010952206572901793049005769415148734796644116388868804940672602792267309486258624250492105531866361076290404980462761074016862827839646114751034148448921265465676291688946731699821074773042152099248427185917244520904950447959379062731000250252263542511094529710163696217938858151047796624256857911025138002488556405712799067846011057192868692959371376368948647901775664918251644255413634363097498884218848341009826787031974397557856745161953678899980851663918718850136143159333376144825331825039993070666326537087394835866538602937549694781696929736760484473890244049904820855604422372739801395755520966537891838985513220141930170129627816460424675341701786277235500976203738456515694083202343647240339933178138648252175644861404999261314455723748424480370792125130324475787573341973469310721099945959680529909746910488145821422152824145906621356704887038938704310769615795061630135412286731283321851162245271088596939469952909181776441436075166336699688949745636739848851192377081168213225761605143252933581821693746413589034214781032752525844834264859124654907879449088638314915221742812006945052936998768866253856186888879821631793062682533842318059740510321712507941387622527941368426264871881735634785174113083541007878333409366402778710375981132975822698286567525890200248029075522161561166222915131495155068901109966166436609414041673587798825832053047141446177129621615055194590797116785970501954048014876022828726377235616860888762935460441696301263409371747413592095530483446014086598962319130374072008093790892010552955333770333377815333820027120591623243987431470928242492373499921179735977493694532554931582356922308413214354354782544506717756644303080890586692335999589374109952781672090979463654659050971236770970729124038855381313610713147621274860972245786684999889216984881257360409086444626573457204909491555977780911917806837387341298050463296032229373664550517726693806016005647044727319448559533484449495358500325468536297081143641753415474695978222860483846854521729670933445429299896289382634815667301867614462988210945868694659037542588476877852626811272441905762000559351368136716967772079049354013355948373256241960224671081160928921586668728695794798681277825880149086388799426473507190412405839037924354609010712707423310544780949967940043824668557681836222716003408969390979325755558499813977325843253208396475383763914743169108190235034154215626009141898039927107820457102400923325554604665325468222763138388580310948793677951240767756238201817440159419085600203230840233737999699513134670182773145354674883547777617211800214905470263845596638487284390607487745339449131489292591982955657132181111861100803867495987049367916528560035227399369768911119284491194311514509931309222967486926810825044163807860920335851311625875012656789164711211188693879404617220975976864935945526115545073532164005301270567594915676366218623898384305647262718673062311516109547704538986706660304221299284394901728916502474162303155190808599355315539012261212304940749288823736539488510234724461518421698535302017028010536079569086017830128381611660177970017338153384107572408781019750234735524503792973575289141679570774277856139158225608799498565000840607810092112128253631897032513144854265506587482934420157894336257543372696463300426926673005200989879208047446494913111234084200687510978131396187244377066085948113552303640789855131064865386913029117724789053932055728606966436951345472287441895446650812562492822799031525102203758779334230341954294213978855063251566687733259390959286804815484421868753976813701370209986562960208534891395847129579016258079842973899147839708925308234983103829726956931363616322765871451962814021060689107397270882842956385174069707684743904130161292907190745828266755899341115988798400696720548030496415383963292160509441486773343937175678235054009998247473738198041193611634189855622054585751430992737928564134349805434154577532981293874920198023773755077321452108256626478469974590728971753755187247499542743284485117028897005733555075479911862729669513179971539050791665426230355018288973444561162490516691282073688385525705598908714317360743507717800894370511347120924493305011903508489827152224857430508779006078671295726538287995348687125617538437367927602586177728723596136033600074636585029248426323277809167864512594885374692165540724442123282293976283378233339710333741462583791075152305581586651483998095503996069909766179629006997863280331724649900874655230700346488468021837265050563522700875758198352155832654624714357722680431058395677820851384473196355782785507583266150111091776911566194936256073709994563134742375098112119310948423893788705856536430767782589844566833322083051088561521412012538039921397219808234314602723520686777856802433510235505129246017436825365108945883578386119085416044232182096191829599560392137855859811643752596157364929878774949925067206511072280545356780377024409000110074688920952660894072246928060950949623142229807887253427772979719499967317968165114965146107434803600206451283835142053970235352782055261742757025595574010383866944303283376445681476317446740754472610189389597594409114014211230752588396303343940677200326458560956575676158944306702667989542130041067305380467373575546899715361795278042108538082433813584443702894366910589505492096869837682444950384829260098184402447460272988116442273590914323881613716361158341017131982116930461996433033807034359027173377326433995406590453718927189868679283712762011120870776408163002684868840862955176238771067757618165265830615621728673197592954242894515605154643948505181176697220014216662953914267503439248949107801883704456439786562524025833426739814258791187442750179640216134280809678936432268922254402536251003400129258421573339652972536417992163851295301654888349439601524180481725997462545995031089378076407647424381599224640079760153052047129422773447473328596911229522230322108088235616076950218666039406503986458882122086190933041666708114270958371018046252439509519989216104102518436203318460009498817292980305644183865678464839847464887582775737213665330706264415038447496746017287090744712363223067032919815754049681524974510788935919100215815483671704763313174936156677682847489597535857259591257301086339192755807312715041447704182579139630688075791583584753170099736976343332465408437199767832479290655130627531899437432189423178276482410778900552236155277026011425139769242293160024224476904770507090105402287109774242352251656563321806499150336534144417378317381661988580564302276793322982610756795491086934771906627561739166659642661837157871493527443176955099566463860838260780791447606830868365576183729061007045693787419283516009321733659929020365110613976682818307383945419443210175188144140754167932574608481436286625185385514963938277745642309515818278758077144544576262796455027480496473714584894602267991322416717466804318812579637578291913457416383924922827043944377343136558276483365945538247874823387467524275101754316375033113027341771629004993045527950437155855396369436201402621349303898508217361579882843548323449100753251899800791572751938614809932066569059666386339840676699190965626271174219241641823328753177592304298905457096273768146021446312129730886399044324203729784327897193027256703771102614309380343260895960806531855302319304562326886507084260842433168641145252102075394193130937573201393913109813946052952449670978949108745870423882108275327824771843636342902222345841991385829909227461299203502192928306504052937292192423443005062142051637710788773046624296639298082432210110233187761107307383271400424072084149802643559052890969799624812602915634916970693516707739951163466913273705491408156461048223661377640013272673413564687769656832002853708179852131423408363591614492144442209153511040375076917666081468804476266758299386380318334271274313481429728542275976711133858616414697437662973418421234021919186385678020924080766474784099580010771028480578826252492858871116010386928377593427488334603244008124537636106441288145957343767065794623525431344769568326357449828934169133054517973815691342734506001534319059528184806511840479179685791629278606114400872399609810846133333783856139964551902043817012975463160008162895808665859386742856249934231741825989455432991725351423899490963713152884980275034894000055865968458654237742996467264906500688649119909845729858723345333105592481865005397641017117008188348204088270148891179730569981757902971428921043174666801485875035046573470231055861659447536285760362324969048024014675570929556336702718349362326185380849833693151245829628445137601178997065224073799282604201930622636894796399699626068505990966938063224485540516697682062631514625343771165859450167631873985077662773577001256854797081770922284701665448122207041545713617695128399665793968468524366630853109934989832982164239010483024765251771449284522026774698992073043334397012572336886307824295003281576585198220537669902351093783843015670049447819968604899811672617992812777043372992130759727497028098814584730875310461566061245745902535865000433736411869135014495931614376732831757297366635249662204726719153716338238504958798195268982084009360646574624023662130955359304733498727495188852896209179353734424365732169384713618492504660874690367918568700895115133190186213386610077909776833850414948767767092249559265090806795937637364847835162075604335316003844806931941240185710759234830869268268620392682978901878118369260803422677573763527748235169040304525837780725286623540519675390776054527611391884281861466570348731543594942329865238706505976606298844891309587662532140890782206928086979476301717977880040939686850186974738680689373975586059567326256161184646327624954773600805098557926668264268788878783242301044282215918975490183139292749848593862496854059346628933056653498897182005565624696591338875686165840420601652941476871554330214615438265206398327558943931876494961538033016971901601939015677385869854924293589938212953203614840439014435968222420584642681426714305606469971972902655589194136390117231632989379996187354027250732134576348159660563391479134966239068131041101069320752562215866752010424256574548017561868129785561883556607239143475252583684827428387444444256497375682206733727221985550316296480107207792494397041401771648134078102016282236201201243553948246386151516319249930066917468545457239012687858165399236304943528727397437913410351413519620623150664429860484384408222738128358769362245237197740693705753535809323008605346862685095168254764769326032845368694474018225770452403533350083014387488443005159262366418143521537276588340676507729316103237950934919134943308728655308056817098952926042283139773593079505211150342025625866741544130134284822632378631090139254233679544225997417944817767990456221800095244014312305904832575831885288374527469320070297532620884825202491536016445405409877440727829923905443326537027992614212453842634795956461829001377216207239927495118320048149237642472735513773881350442207252423390892062148472257034441815732200834320452598262383940469641686814964946688857723911905278704752720137599031474914707910423279999555140478435887990475131345054207421885043310388083697110282034816832989860598563789148936153038024665164450912962979976157776663385642333611926375981827670315319737883467054520886446889703392468597625616073452567876364165453476835908375826782093154403623478452735282670539519810632780630354536796891850990026477726295866673168181502545188842416168183757075957915990585784854130222876738224486915135276087279785082711004643674369712590178914735950651897332112042079463956672837260831045523606617468582656129868221487182931861425669481478756478883751425223975818224419358685334498513961720266257869140128322446471725256516982715019119706221000174437226582585913100102072762303538672985823094122509596213563373336310351296246497135491617587261537586004317339782830001457555951145645868824921042713701066924719802634934510439367262371371528884282457616699893381840785571390019265133319979212952981428375124472684354805799392689189276394522299166958989838736875978754635371958837864736599043285194772748521040328415563567373990771449917036800672932652311019940922931085982630778929555427240017655487280937319305264059799905723935350483045108451874025490757256410081135415118580527790770775862264901995565321033725785440668000159733436076856691034466221712078820680061029377740831401631618018193888801735223767391302420743765277345554099860915337336720767201490281723761342679960270314326163319118079363232054756050349218112908026321369310374813609413793745482104502629170570117282680668510378324335380855582969060380853158222386505531835635114053020089981871284437625680944485905935316067425004513049403939958838031542324978367317294894632546775838880804665518370328212159152983616857999045950317569672524433537317122138584921950933917621260833329019035834811382130997712484449669170368737549527558753002878981605609857950825219038965338119310089445293097255783299075862994393481816643904362749662969334546668244096623882247720383771770695706916171101825761136028710824231504510310721955544331268166918715204482687566946130246669061773703728739837254745929241155855265089883558004979230843800920803446782352704788883072915055174544252891795570990689532028395673960088480382755213116398789927015241819511131912653218420053355331732278755042449584722276315420143651000612233257476566933976396537294335597480660043224544415695657030696807352133347548938948135277996756797237240475280036951137968111357542849637889713205708492071771831080700127409057635397739970456745299195539031480832618249614686949047490244586074905956791956928114395267920659416995982651050707357884703270719645125374385055331362703185166188358410976751998295669960891694334488759955725199466038730039124850458760644830296316669952934975406495420306430935574885140496618261063117830360250602579242388969289136501795549429665699714998012451476571248756969649746101212009193384106856707925580700145372676631621113520100492477381250966792525148747332088718245789042835364701871127666062657299307831831299379697897253256582505825830790488977946722565486223661359221428328037191099150084492085424071680877272022967152225693182253833391055318246283805778530339654878585666286280598837404612664189937299288692195004942939182913133441506164615102458177225424722833848033021854132424292170616261056084178885004539683433680307215550477000682229362702082358913686573637575853660627149565001066944678983921937262284049033836142166964912796691601569542224630296095204573932089255481766112039852066100421162197015735778754491799192331643943800906787046236001939549505988405491815084461833417355101871296878886698613630311643496664808583956761818528661159804987210780013229400660293688091432058212494024965670241729296020983418160087184002263773715899900895194878375898833410837178355268653714504791744032166174892949674936413234357917303386672957760809958967961516092033700634216188014261971278062423816494402448304077030092996896859742125203627917525577647128492376904156488381415473734833567323810952080709034371445569068476533439797585515594052502825845080879306098752988814491259073355434253104953987496102158915768087449149225821314089375537500534607607415056378549759860621279274997947292884125717597618871563335413453859350707510706906605549233851154695333097958095478419521908755149742817757160923504641861101574448288066091616246760171504747061895266393395025636677676992927831270732815039556096664258660370390833778694902089767656577494676799381090184800152992713760670090151086863434672610627260411322831957855821231573311665738721288619622135809259134447695451573725292841265053129516453464143022324852165022929727140904303026442046925835601345562790405174978696119846234893846914053872890538302089485803730019099050935267866175126160642335560913830886010474077512723347479060094117296547007545741489092413964076835088942604981778739126064361478139747255434585290933352915501794469725216453985198761302902662780529817032876038775045107153045972167227274425724221510876358067319734386319215308398096960696318301653272370988264408611781753135665173290077916394087452026051856836771253588994633620844012431140194446708525478483481569971693744389427742205265136584772652920038945550848392265987882096241457765702667997269039766593890767757695441967611231442732006396427831274347387803358792509027754875942810745101799228979383237556609709330438595149889719289228556477278363030375572679019525234058331136394556053184464759217303700888058847245091549271535358999703391843410528977680243811668643299200365700296116923632132263053654593891424628113381395454333246490528688274764621268324886409789311260508962279630919494590784890757376143872120083156995499823496913792165856794266432095872891447042481813860074257128783252309063599400552224762533757749885153352118635905435970943274314263249764937254487531110087818089483802379298122981304042943276297255087750592406502509540703562739173098734107182696223434571122302672041909633064657593753553800100779566490579756850623133574717930964845124958277359060269644492065501665470205870665955505951346159064308328543454281063548396872546276824916091552096512690456016723346495360995010077643261167413223726642171486132562549114656057574648181402046035822142948022652453709447215573098388582265531182025316976195922013986471073619817479151955978382693217355323014244742261304743931413584275998234713728031530253828892803737949641322706690722111624634839629222565048739800465779523621572049529836537801660449057711753626645114143710259728446211841351653647359809801964432766413175821008377261312430188049883906752102124855514085040632801574530946662310887425456639147991400679739009749582061386113195589113945148972830045973774782219933187004314775274104360275392445753843802922059499702114877157468368313680337203378109729635413233097874464408763660999812770695224445791713423561446243888613988899369279547051715139751702968138912219157053881852789563503441012368523612070443334684174293854782357667924056561275432409188164766262441210037747427117657914520976212533898974424518460824939953522008856203114422895492595903228766791990810095034263983136530559550505341964184638257490988947416664819888551090891537778577564664227874393129311072347761229316803146489628001992077487528714003216702045266254365975426589930110077506453923807411616269023510482546183086564466560443711544953668893246769643445751243660885626051057203256422169651378115834899777736016356525966941647658508654184901450543699355809161835040812490731554856242795248301339118854332064319610072463898113311155674981644193716979919963085636356948631294637341541958570375983021380103021785501763876008528000930179763428830991864356206274623666002932198220601551628589243895139837534395191039741446756942730896500387462723197746834506879459216511289295396363684053704104986918231172354024116701682293345935645400892901912804946401669631767858967789715010936788192603094933200032987149096177904450400180386990616826757069216887899605281387784618154120426331158633270677716943668881460900605584652101849902719337205239811851850884505590864656673342684483375656261594498073308810711723167031433817322270590513878626414271413931822278030694300853939779493775531563801343086387587221810304129524860474132284649198031935356853784170605818855153387755043935152537648905532325157739613941742918960214646684878027580822559173991236272771198574772613352449972085446278303481505568523665525600397554211955753843927410390290027361674064645131517903708693789813809144831577818867751115575833473639769039896454674275918697665923562032609149985893949638687363663789152053448254696246635075317707214035129217583698008823542482645875781347392217491215053791728327983000551983642449568327361074756914723923600802958273802979595238722738252689399567776485932138618074838853003347966688108896191387477548167151459896035525423551503832595467233794496710799927976568559522369551151027734277881311541739645545154240092226874312241711795086115777381611110890100569674295962078312785549103338163564228633043442050762379470153718655231658296534583029870564298861645894663223952589384515981802966943083390552977032376516694755537117079085030810598788794724822678681123247851473286046742642450656576596628823581216948403847490408946066708393535519754325895590167489421778357543346371874399168635816541749470418995960387660489028880489511658609351053757472145868640242740354092658411361464614232229442976789082119378710579397944844598107253596579672751742184978202465188010464864297249651124600426019890009505479475395546623891152593045885787084096406212059098290520444321551948549511986951730350504339516971952679000212344852466849841630925827426243743268508246123021076807029390661715768723732585101924063227588855514287516568836708133361476704513033064080305034285711013299997210831099545597876646890459223588959638420248782704493536053170184526536920782306513244253777408663757582353066810699939279693344986277208110600173457844508153287767397207239408022406058582005767167135744708397611700932950324927027761038705457515972442753372982247732840105136934479258388545606402529808737030456430357769606787927058642032523183523893247131968993641919849498625768597489135924667761195003453132460984156801982529331039692705596902440539239953463155311998988271846425196033687912204597898632054326362178913847859103164607496639993122473266098620833885580641172911858959228886572967170226428858798454729892856809390439517315113691245349044374573233789879193778257214035136420460926719884777407367001395192255024558128975274360794678583155739682794350808417973612036417240472770426337907239226546766755198456183898043914183188727337119325431622713821057558509768851548339154968834770379436163258278789865653157555912236799400796578896839983781409506303072787061897119086098882530603085695644338071089933142548895017672828497809555625700266450143561124179882524576818737293334301052316467330648911659914059535545038970385770648712200648140483873016663856643146968977105251279154083405542089731449131203202282064924459850942456638345960109171545282884599181687755940515510323462364453972388856294484495649108360002566176400401709105750653620784103118732422237545754816672241451921047371284960003777473937701664221613442216445580232588512753101802099995733406955942955318323606556049308876068265273278648453757343501370938854550759339948725426869292159791484985365178488452208848082048471204850568408293461985443751178772131402824930172281021232284958948822544299769065533711821821592226183659613519375625349129875473318114586716592514279152969352108272549522367335058620496173651932385304370135998079885517788974607025439159131849936012374634521220754626954883113346370538413237487030107478015482977254842092872726798549513998291132679861012805644237840238739556480709662549798189525215956153845717105933238968008646321736317636781976685956516365437657111512928655799541028698715778986013633041236536154873247192879832616949902629393949318161899329157461581472796646187770248070512924514818464346086481559027118865612295238442161904231759934725000610895771664305883100821844041804892091821164182133055218442256255989008676157630035624077151587154121592121134675438938470974151418795529769332921709670074915576191061340768396859907169366567200819782991149039156129931331769078904058917016450807991717899269859700558141646649459121138454669285938386364876615796037680449748201290097337183427702688429753561641394205624797924223250037708788303786023048904812010512962805284210400140892444354187351267672947295311812857535469263182995726453124668413033602723629833329980891667762823693087220344622193898469986480561150009836514883044251392432657370144756827182088848907766381245221716966342642147904930534874191188230713184800681390923853840193637054905503430914759194616052029081729276504564605419780075095634887540009117632854350813929098543152572328150706729217524844584598732937157349914164726002621222705100440802696720789096071154498241336424013443984039687698512976751627173342965412611974196068149297865624712514575424863290546747001345252868039334259123017203045882811130130253881699540918130053029778809455007407912858989190198385146395833634698604847298938792188260367551911173569127138540639771098087533735317909959691598865554002744771954192706871402709479692461639901824650519083948893722880074491025594234083269400384593602685529792281608433503908503842463144159313159737202813559014908028341727333905543596753068881249086335158438261037019793078208950928713736711224772945440682108527324745263587695670809470922541477555070140637183903957202344431631871809025141072063241831871244045715590567952821918289343761538067559477395980618465738074855046723315187621409084028062579119993797575196609865089925932908328887896573001302811812516112496161978620678046297923936507194257648268576020632918071917217962259981186472332157690715042433687045773631868223457168553548612339553674004864057893001857195649350063458345939549719138152269827786860851820142122451407075773244426530447812950342979631980158111834071039883336237065181708098155291740580182985536638024348261422800339708990507901782213998952390325430070680383333012777133108743659059542586589889113161594530531577516954404874299486775161059233032991580370093860333581760076237789879103287447499166387215560420718064646366778442761198856086992569429159017339918223311584967146410921318785938172612033065084233438344270345068725950589590354623149502200944653611004479591282020932443988205435117359619568873995348115762597653097132353590744814687823578163408443004766717252477350060674365866599164913419893649975828435803263807245007494903585010486653098854236878819077760589831951747563023512279752562624231494234406168199319993922034903297334514311154657877472073421695153171048909870381317805903866259058212334277946982999405368524728418879852106338800554083787758984242890451216202285386431764296323163184643752339952564025570900842223989091839917388206810194045007325635253340876451518976948650473087327581807204795060284673266519129826926803026998399709997326593403582407545483676749357867530724248151291101922426485401109688812918466632440449693760862295815685398450066476855534285153145275574102014527635311550911439918069146466060573929290194781811026322699176881948791239804124350345443994457323140298374548708744280475168563687054573090741394754381546095524111453557978781891537422081894158049818625323947833016373127430532368621059668012629566977088277643057752520161510757701797519485279498948231782322582101139090003098154993794541693277511536926862531171039703105763509905167404844759701594764845436695289400634949833063021072885151846156107469960039137107138715302062000120854186890947091600990857320331724458229959729159755685876859448678068206429819115620781216472045201144690873242242595956434664242952750086463436859351504585005972916131778479440101424370413989346918525437032295977573321112470840667946881730485040541518254561816486575270535102926327562409729804784077534315621507773844775933283453376057822138671749029486486099238424540364778666706245046611275639299736133009028689031597940610390715540925320374908299043055858118272635876775506275119623667262842727428903003268507508930353744867874375463071223728502106420898151802173795116163401359220682373003698775821410851890166884175844465922440174279921667647501282667167576072345658175533685186789022946155454367751554059844151661095657040308743011982442514720218729960798341402776577614587844259814810255251695360903398966048250084520610626073919121733439254641827315873593865664774267165168620864804621670747993886034136754743947093394294801071902362076851435845497075181979091402271844781491185434361392704977801298058399561014680954914045413495401908091590713777295056804801461523445557334974153186410607314171365390946335160530814419330018329068063780818477635667300745593018876210556631108709794714720096161110802085824372173419990369794862297651374113176303573772307702610645611401263529065804815294886421302283715214700335166824876243402667434372050484062294852263910268091992479538256676671622550281270296096733537398233347095853345504444659450575494252641513284307661108197130185855844703743264873001748062284105818441472829038553831066955383066917151793892954735975163452749120430095855618506593342560265069762801319621190035693503856460933910822027893343349125593646804886868677634275672793764136097717896299792076672235787590190018975962678807245537076648919503612346903184177133801959608739752044736461937698639583391437856994602331403861308425446524758646738222356599660650002108080139077941250954090330353683061214582390245226852816277690902456563095208722911854164056022546962169215075411651188135569589017329003030224421874037906041630761022759581477553926819401279252517900060558055982323163292436135451716272709636355833528309923926392465514449373201652552184119909134159564413408148651501237903780494106639997701234004219152631201274247339365708279182527938206943344997729619912305154745430548875171989360323364824141419518716132338817999943047860715061027143221945341531107184431945478703537920329413551351494280980056941782278241370909994478706797327836842383948012538593005064091359524049897625164267797641158005898577717059710987844594122274562374503066129195689995699465944927499630887970030061966906189445112538924948778795075566732712626872298223676266426265487140676139653312391557469950512687812573155174890912694255754191912713230625559241537754668128794790185955993485166758877318383861096535562532614574923653020078958891459037400428273245965855577321835102720750106335283507944593115715497219315661722147953794587556633344549402163243169772202070110149824670737748301753714978240082186732287699387141535904842135736166991089102852455060096871267970470730111836790425302851118360139205271919958251383276518334740065309074367947979222107797569413306326137885589022277510697607215780152767455516539854590550852423986076618379201509028448668425978258314400938454178322280898286372408919458691457531077665503626264254120802058069330808489380352750491718291668430901989864589171888611169988325734042454324597110051521584475102538223097340487096125451934594665610568666390402292619336141511027027318343561258294169036992840018630169167093527572129165061265207825263391691825817434370801106400606595454199856113652158043442928425088907225504066892629039326531783024566227207797771053530880255486120386916731198986876435024427866743998320534972853041114929743217705021488733940833931402335645597630490970516233331154477778537795055734446745530678600905519434244926931075151698058069470046950530278093757455564215767320234477794562745883540108116126716091575839938972253392773142532116506440541047927744785419010540154527460684596231808048954358919301549607441240467883626107432457351420862884896875017018513936149554937558714656889137270340264083912933666827038190810320158559817724653938577411515526603311818275582705666057119994219506516270380580774021983882029633659283787909921619538317189973675529904734902895259797856101483188163666677906202915409697184456197662314338054310323043536939455750425966338839294153014822980573201722373982485085645753312820260009316880859235648281166265964591463174277280439570546708791314088102292924672011353953751013107444642612774912702368194276440471826644917702106469672691815918994375392283164502978896755268525763307010415957234273499645088924804493839062864607675646670609517252329041816951588906192538918698593056991496228116894025045041209572911889342621120856467861780625024967040549092761982864853746134147972833203311924408823851491051594235182826094545765372772583413682507298698263463174126222528019948334532399163367333873286917518101386796710474046285148589652880938673534447527089820755408370733609507049291301167581824506400238651877401350798258008257296963460787527688626028146417462526888765590753464908975420484759339813297169322526402983524396753298599575165934242089087465806251785419805858454564901965759826894241518793829739164136499844652234724473622591545776902878791160093906968687230182087552718360460712606899669552482583723230037639485845134946813618727445401489125224743859543263422298049372375342918817011326110486075850563940230404985907124525350153845032229742289648836973968809160816410063717936617254089493101545183616264620947735332272345462995575520462190204684858483633656844773226454635566935812297616658838836239408085132450573954994569628672508100863484188729602008349724910808877523859423516261016638116583115111537407609228677080482363804091671876955557853519175274279874298038331875726660971934100451134073908789503443640343844117265225553519113545256301838652947470549498178339643740240693943608548119366489789440030499482359940466776679518180465446138311935571259254688935436393241662094541439043242427974433958095443229223697907875939036532425946959946544625529549764936515542555779428881975724077522422707780874060397666986291536888850423740308789986550948334300971490988996250012014823557534343657669945040330269637934695573461356189435700573052504513035743809722901438483463106691168294778623081942509994953346825889010394134281164792336423930173306326146355398582887428990373566787615794035425565833244227434210599477800123196435869686653021470756168331397354186188042105452789189463583309247191198171985645425245614468784352267329549405623015671246273337623140925092159051531401584780806984240645321955957337889562021762310542555999111039249987045535980021340616170535246597287367906561448003839722327778361743492175183174245838967850237791332230197895207823929365624768966476445010410260705390585196615515131216690316267613082256778792578960138178917937030957553449327558625894782425388509142678861896741719199335160787395424182960011812130340470173365965486412858147114666772197851786143922008369723886918608823726761640179841669202967568043250725289713398387834237167798125866046251561924191469118414621374650197874527420147917778235043058311633492562270429966435119997266175296586902411362439475536071276247915111007037239138760321266717715921207189911054403538904368887579046965438480031789147812629030275562599142959795943024834372664558009621519618853549907839312823753024486918594225686729574019947245704767621654783454060268832342945061350108599657302536151870057963168405415744424066453708218016243928980840125826960011584988466006268996096492572020197478383084676261016956770625858801092062844785276356926615741393226505471611924579597894336358957892417894419965020104238067063067918753256622993860952896667406953103376317184790781303023671278816146429927573426645462507559878269478506866486245527216219049378600099944830181521795004893510277483136169738449530610419376801161978721461065653073907709361605234309017101682470511487359940027067852897173319479172688250299721031077888897080857117953985638639715094537403907131749802092348689809915045616341905014313827004405744230309587694502347062313284903083197531284595950660816224192315077277344410564792371123790399381607787392173828575352024842412018017904888362758836465503023399368897216206970930455852736527591380018687854598270165375131705109274120322273553117068730654555328744482208676389668854328470711131709854521939431507086881022493510010690668417056613999890815889333232461699330096086909280794035896108666572341881195756986461132376331429378034315302077544683581707952690352116480548706642567108615314656912031990215120484437833848689603932506500850999365967711327553143218164512731972330018693053062833691505353334330288601923021551631008632356054182598555259899333460215356567841919547643082251650170189803957204985407641222247455139504509460456051268803164898945543408813607137804504858170792205804548255363947195755340609489239541559995635219107512451486532494842346825990643273488814671058871633185465078094451285703003874852434496308569919058065809957493600822212891775722075729203905144707558359247478919116893552797291617838424634925120865468338306663604184753080700386277666680567830901552017863203968674840960183427855473077345544795898467607307959087924677386697784817246427515713628382031878972698379205107459148989172588849397550068067578105425141387362079693641428784158672388368621899503893862538382844134218252694147677773364572725469664879894347588760780099179557074350356371603919490897379907321284800611709642957092514194887721625429513772647980726044312683059518084588062300326820921668520930491406309649328911805751818086556458364444941287866432921748010012802725906054855491931788435517655615999419139196416206642614651114708255641254687538210781512014677237391850235143653561369345397666287910736394587393974894655640167287852525379096446768596411791912558239760766610962340189408126039385659626641910941444674166200492663833948615803558584523849107703177367444828110403904986382978069331641790342705048592471027477341720666885228426554307477545309452433136149314335524159197438164009104344624295368679443732984540130170503783397934125869455124081854701720502174957512592657515694097145969491113539573624431403026699948247638739429827928188846453782172725028374539128560512549855905076294506279711970414486983557623192434124844691205423377399650988304344668371941180110867212070140429300710192924644590921540434387362618824158322558117809859649414438938236112910559938860706712052596551312621948238706174424182175047112673587932202578055731274241577079884800968370535447146638952137995607167104201286830928857396858397413546761908737762062253734078613923539256079555168994410543239363284692722780469900752947760710188450488739448258816559701260276874185088751854134060696515844473693990073848145020346682090465246336323558599860231076180701947254321014471121677472958878459024827811423267188518944656998727189752127091447137410465950064281336909427759449948037546198431663032463947538456897754904736245264073159345929805967428704437038375560438405938619845870480335885061617723770014797153110795159670407350905132059329394646980225374581209860873735399656256691096518053519400816947349198208793295856981053066093702732781300399441307831400962913857140005121773978462508363321190933279922987851860309233903981696931615589241548910655489133358390438302514710926638835373474961778273922108082163945270523588874244994092497951226946062792308637933202939201908523760340516688981592920754283337116085176570990508406792766416711641494984727821850028330954964542594481720679436386016228259921076268535211608772952828742190845313277465425035104805880420531352181642984644118622734088244417860881396215680058717981783620429136554775057833728438361289600653497820357221998140538904407689857209789576135770153216518321552921036694114505427218373189447831560403344050308244499395668278910158438252749869741877395247315772714864630013072762250246545900813777717332378914317378563365613769621266901234318172591767513648484413488304110114446859783383157287143335843417249970544930923668803052289506455626562982329660107137927034134174122488280460029576433311047466593996995549131476759811209965570598426125641879979752125026157040980871722615932166355226196210379690311515288297653957945164729387760956572892722985942290404959643516403739928203656170643928716994749921989192094180610310312107003229980482140556160032811113304186856824482361831693722286436691547190333059375228635651956086611627759564616681172639115028653043052335075208067329558267327929560990155900181107480567358260938775869360156090252676081515250282882078793502831343130971623336944463921474914388315942615001187676914364494366266987846801335439133708604866005931533110036951546838050739890368739797783364581104481231249594473029514662561938402538759652392682253485557102783883058646455083961442649646657093936100764519010516102756406784123049292666692118026492092965790759073968711813005188007262333479782773901611780753907324489006824996784949474745555250517358299876403067550225643616110995429931686633963951038734009328625929525205560833233425385379351145559139195698088649766238124242131694026235760856302845986202293551903894054947656837090368674512841198453935966569819888934241573707764497510212338862363183119240344854492531760751242557842858662470155586791084847433884273635192050795948554277435752520848147337473284695719128286478175299532980807806223123341303196158654971631271014243044800693531019556058669044299929902522505649981415412876259032725588327899932596264559542795238417295496229457966137320715424273421493011577253098544333425038070864736453826689531461227898090526794826170677523130872641029377924244823189951731758708071565909333862458771814254192380966974669927049048949985176056169187267860319488994551158968285340572589123418546790748439113675218272541518331627993219009298985860487288842117794595206027417362856445973045399134119510980511202012868318044975961167804348056707747129845827034035192415144211806380024760927259306824889005606826446566786760066802282661719737434792294209767884693365106514401483953191616554825165570965815182330373145228214582112089355538412465555525994834376298321752764141490910370198105956736158358662833771913262791598233413866708530137362690005544596169315953876072492277421976077108531336564757563794225238890411522741292629705742824953425834884896606817109066174029316164032514503000406181610113822187050012205716654817596336685084747049103579691184890147173088945666206654173795409107789202093413265792325915237238575976103051093853066141808558153406542185364181514893798375108665584818180767141361307086406155848559925285374747142353757563164516096500675375833663233162837290716160447295674395679108989765911993026209872154116812075578678997720477877185670572296762004274221386752083646798730656912881988780336972574533653176863719185821410863287450129878642405652125997146595387728997878499397637641319172893084371932805251058149019628256134521800148219491835594902506166668756135068636659764723757721884512888812158448667241985397061667119490196143811839222383712796281329311972637219101304347162945598930190373775182415273965712156180310566488107073218749960621326885188483432580371600175045766509437733881244162718790875066264054857236855806841595247831841738258289657392615340502701905010578859143621486055615221267981440404141076381995854739165995200904664126234443599297901226682262326688485829344024357396394888550103708320176178196522132094040368054531284533402651711200357780384617646794244295201277697911150236156333010204336567655285318305699851807306780056243661236108857129550972107415132280045302584341640025359844704944352646423140601171713480648758728719747214366264829200171844373745695190896789519420972598640355038242493921065366647574621937376760731816944694335506180511381972764691732084758022402093843498678407837726524678598080812446678507447990654372482513818909939438632339244183875655575081133826230183580090707407965903490685651776940722898545611780897667953069539351044807140305801596481599422213699314413680151371691919208725452612724365358773886295894399782073671479817365081285541198280344671210601551015398217007461747786494676748326728817381937383295934732942227591097534320301819047899384912564150976110083730362764830799206360860693753678375667323566775081131647231538017075331786739056094055207379084310407612672324325203615216044895312869917467732208030920423011183915771457641453957677684943771148401817381637447026648734204418320141800572960307573998517126333679187271269438914874780614051206952463426779641488551743522781171209399300632788204539154356660383005760319291201835026751708088306449486856612892142291135226645155029319264181208444012689282856971568695297973479705588157930614727454282780782777656748633103897337809041698289680271014007722360820056713994882972511726788060769943633390773276048066234949380102413023963843390781952112335644256496814756200569387597110271095205441590580293791593601586025535975360937123906748891197249158486991769655038644277563729761815270556641313662033829868924616764003166375830873321271173886316471627617655276859441579303194532207028192386784726462820607522365974593286618919665506812234170860376279042147023995663297315728183219720013259930439008845124980510401751847081064766680346539527561453707455267685942051141247224673989207189897788191119673378099303317781426753355839785614696845372170339270139477393779684091617028853085721536660042289845708016022936431251865441897500498098374095400666772944876713474891200456756018427819139867619074158585202109303579642254412002903773322748424713928499323432992020315162898268658027931410737317293494128617988880532530503302310221374308046598267614512817502426933659800907631963583948635812281331231129033609095509662854103702817439396931374369202458346764543104875543425299433946083732387017358274490286485924870000623665048994341442577098146486913822096719332427142258251413041071250101093281344171811081560765419874609824422233549237655813698968791901874103246606930129250963555004837663598213780908500080077604305022599199420046659929932344623507124554293577510859269089407385287571504516092078606258414017640498049474166581771256125238350014083047610834304564392842576958857949743387158536919732439722074896451207109326766699227783092222475247127038985153396486064694493360070903752463353611659739200650665758324810270396434337954110896884239488864395600812259223403368326543768494456381549427986662585514131577865741864795761083474301948244038735336095097339230748427806331529733534278103900413884999736513166944521787481616334254570550635255061406361480604683158922766345926622175847822438456301578591134912964480478161030201664290260865940634627433545498581635007277781780479085871180632488983862017401430248747910470623566529545457956322282688762509498561318106438248191906481040711402959327328416894987544204084750981986296339273726288579333431685711984715526864586632427101961604164932753510453278364801625607484034622817114635753287824832480427387975934121423602368007193552835802499160383000254915779536053114750991434034273606262548861206601960377226443604575830111665885283062577407527806689245575037849939232684837325827577140965580293931287458390701891383071749201484130660445302366057116774370721379776803535081620636388702740586677335836453184822276762458502353305743011195113269575911099220699897606749046530270635901496759860146785004250548070748221367212350514450631724944096210155551331211146932006305140042652885219690918520116541821588805134180680172662372480664838345180986441501526829906653736103170748506393441732432588862719081505083050909024831712652663034364911258740422792720091379637673495316982807922983792815209536403061755184228893639609706870396987062691578779380051019226267965658185341390316400958099563537326992457453723614413310316692846502809530213270650163642615919872981301670672755037724919777102575109000182109887936254281598874564093258673240491527272951374238039353285851325152261084540709738843428185035955741145077331161280769789522957420107430969018921821509865175759387372272389600114937991049097189004405902894912538279360439147111880393063433246901463087043422615483569996008929894545714432437537510378974896211632812729861767528034364837073482459856117272313851411735590359413962792297919017349359170335753293194138631224902069607908478927014794675195587032011670439687450769206043267790368433352067363528536249537688635570860235016569114608092156749963122240525418359232775382840859092527204468221313457258372992122808909294508203504669825815081593620217566249382145825038914596859212418780154834591182592421663727144718853960017760541289147247033724865650643327827228571487564763513394516575708052401843779131024122744820815104181909294900882292729231413040516868917624981300347957131820050024059308858006530652765708891478144222625389043830877096779499346811104490818450626093210359690023248181541926003774949055950489349712542919740696515237485776704190288093852684967657601923015496540277024392150111357437199931621483794683379109862311944898880375960818688229118685039494102639367311551745750311795255529025618614157886510314993971623823906880009379768798668518508243499510530059846624665060251709171918633904505650798055781138584040821617435972917169962110377960446906824301532609576531940982155199799765151529651712091897347212885209154600806691750673750252808768935047633470353286534183825744034014181418855689208298805159667386607442119764264748454451252480259243975321975660232502959197968096397557974472779506517643080357579012859738525272175124126856421190385632388733331058867580959626901074193228521933037820119231344343331978529466169136404419165406537775838327463580903226183661980160922162314242120661895831425698234588593117421519519399466215618830200495316201480409204066706149968530184051260271657448246893863450912071146251306322196922645768185021246049306243163842452884157015903230107776784269749105578359602916614391664109607272734819208261113433281701400433653082992624861761391978697495398930019087277228315204481701454494232431901405125651259696950616221789211742183049735482134808978641083232947898294662623331899943885867586301521906261887314525406026752195593460810943409996287489381425863276125721538109709605693715286452732437370261410987138481766312883482788854429986136967197340870976620563575670140790833732535840118184318527310499936163710544730035408574632358406587226672048006178465935861866674948045661657949804654266420424591527113308801426677692316460130494761076703706239387386418310939746460575672528776584636282684930901141973403346623516392302033928735622619732437690492611817696844014953772615066729093444033853684206360822344740396550272215173858292166174175894183260041685178922386924440132955137152277290466173472348470665122019255999690032077845117502353353236844112269988807986419691372600328683706983166141859026276076548870259667776138590036175351142324389981867346429596837236002176861928707286026041567307365397386407352526696738921924428248955706674186155484129010767932997973245136143122965509783803377401805747161595751233126535824110849624080431339361954317339387205531658264884550714629945273573270931851817782322095922440340010626144253220744264270996992588188093716473916052721295901921561845688175880568000163527109124205396476008203094822448150387492017761122121234631308916574190930635827589848941710000051472247253399385851930409949497112060458499352381329280826426023165387560623901111388295185064467616318971186152335448203744989373604690829009784711975082242992637459013555372122418290182811315133087392064759448016491775585988640273405451161820092552238667210365277027091643367871110490638884940182533031060698734667620215565913524409363353010847708915193077217093021287857212156474540334433601921508093490107126844965342338224446992017795820949548507902290916204783899563391098095928529113642409763375996627620085950156589081828652881174430823806333913881676949820830295287121053116734189542603694136557012935208704778746527364000779351046908571003316113176749783342247315370988847586078548188539695267010185614342077610600502901489435133923148007728638823816785775051676559706466150219598523720386746536410084626184531260673607296330476044449934374410216385528932178448614321875319740987890357176707922933167949651282396508935094052871667882265429620286560073037809634702579318747890866031643654994242571826833178873500304263565049880497181088380287508677991301525529131858343177171359593042205239033831353238855426420402830315709309272831710268006216676173964914102051449383954486993294180407355819406350727699772483037340065008304731868184687082443589152554596013286911956525840656597267765878878618344432527570328039860938142663287377539586743319914979186400314672125130365368041535359281220995904181841533283093898916813408986330266130062638718086458410675066047526554764544825806905140367670876828946627951629744412627264863913037387927028711531104375658690891139576953969293091186305961214431211358045777984290603954353996054692107408429833438075037853068556932968725374783389902467465521414187063898637585409656678172808325148443751208952500397165958960071143697344759631191386696701562239259448309618687488251489440818868380263327863744566511716163916283362501807504802566187938099125059724560218395613009613608114949080137467045811656292892735074287333843797981683703227613058212615299136546173970417973399134756403583104962037628141200289784114597942272034890708401289671097668626822259237112233456817219788147489762278850896905225381828390680142108777791769859020706090815320771973090388033269295689995093128487771365789610970393794644104042136585862141762136226918224440198103103640969331612303253155610215972438562447528189784356528725104037153206175742172323673036500806603493503166977438183477034278563283483448592005593856002735566093139410427894438864752173936077910119961633839297023197756846858627580562163061300514906985371229892573300273547746879976506675630984543908211231857835471710548269114779935670800264354277078019871137909852969859803158796958867672014476074378319413341667858060328170563348052519553686760302561643701498021614782607976574224470377110903359188074719891058728202782324242980977783536805106286640379003911930556256521905097674112189759786404364048343397597444806572279113968090376667379443964721586009983378615469497711937966314942198998859034981168298047848883372489918605599911654194544404991287211767735298633096704987900281439510787144590345630913865131051647217395021313515958507894173670501670555155887291873480608622458586697971375763263323382340673999488553525264829184681192352618023209595972691147664658990852955190554285222152550721530215065187229841110091805279641265630884068120426447346492660765117407143399040111286539075254609979284917656469486163474678103458140588425170154100235962670388580351634462946093468315739267846107956248629082264035062195345373506893792412601987296619268879443501958270493331903237352071336889439213890445425365555082241688711888562420323640588442165463461913675668521266843203770170246463276930267245238236724503982964645955921183358995222242529352595269042458777414211077118990000384320065253126428396438381108174919986085941128132569526740245209041719550712555776334506936000863076567715302178137108691468525043250049777018327579720252748956402348415579749075849516988375236825043081948834787160876620380029298452007127231717252040512578533192591509492040599248634268316497000193175885932241495426210680334950938404754045133939340112762425589495571518148918410074954256110719755559056990181344511767491383834872481562942570383747014203948035525814566426018035638152767249402310088532203895369830197587193466703316538621040202965346240647051869940350045721019149002736866411605011829483050431235544691320805867727668784204850183606345048612470400890360559237103929208433543769446835430164894346329170337750978073561375349618552553961087555883435088439030830415483636211075563192746174822734898260451810956474175463616425690942413920868348253341671812441510816703110120404070350287428472788906955565325468764494115494373081860945569328252098121733376972056963467195406267882883409835977426577494235454274251744315779023237804732241902120850766153334332298127327856567125213339813469279170761246819222977704397269296538329016403792449272424927146858432831176058204494469992241722983116552301922026937329551151480844165407449742043340947813848562780819964453049994669081836489098312639665923999999751554237567510476349513843670002731392931295647458753535479144386583880273810488436644903381573992800651524319724678836888102466023220417378349061416904472000806855591193588158271281876606357069107078392334346367420594434985354287181943632104110132478199226361651663504158941072393260927214002496064223810010398974099848244136609585744881845321301028815576896284927252117484120915076374078285231828851752182728393613019652047420046846503508167345573742454352568851599944685943212976404657242388869744424105130473348545217896150424715063173831707288531867237057195805227711342314039690929758789221639243962447577682950847821214238265387516048621481330111875700180008392666712626353005352227091319310208186851374198582008173655847593021510893017301671141734397899501474160491265682765213415732689924268694633133026496153683212837271871377922873060284486239274249219442183089017694301451946888978952673286011155148824227633695437268144548260390241474159962134616254391932765603129855398046014859240443090321733441880306761716804742668220031205766121532145806798218526303962669499955149479775774567109845678688826511749978660774784991953801562792110658925640531867383244932029634350233729782099644807249198114849524416217784920558728555100678469148437036860078307620507968638671918098451946239984326612869784516036337471605526168512864060881909542585239199645639639043381190879928536035046186419090280383834232052392266517088510119730352225389441178877712935909490050332605862532346191767048014247264417124951927412811065650506572918433980093837715046629186926001984642575705027556616750546592542356785218110887953716888305673928633131231606291081138477759762574167706286591884758078194491720141963569746921890413138274945097212324777037398119395984840687825487203173835626299072422271489993971374193523749384622870046444009569795801590902726909805691318068021588779635009368648524419159120453045333791820739108792811920985301263007241452906598771546491637517149676855458790207344765235992382207974537993481302349974365717061950174923860300031290216027130142764800145541852627377347855450811609251280850106535348355212642649989623195234178498661644675610713066216388301513397993477368200473925147863270543297629417546455155849309941113356465965562030145675500934637929210112273411709634967733826933662284797971326170409685360453511952614746493878292179447628055670929744186846478926276085519212515153849001345193711719522543641775521593273442879914811493822405041015179952686908856609453123729448603905449058722282975488763311070774315613499102650694440249957337399201934088582914762540375861222155272092896865509854677412887090527774010550671790068096676781230583116398195746507832587014052364722118023793034601141347476477585433660196065842982628035455396636765807742422908294050440983932179175015398564725760555753994601655935187442684740754250734706918424408778353662302993564426955870420020387637492133545973741896844274819518802258885754418314899703797800017547478560792549597950589414606605956240731635606578709453147828481398314944890310860411842748836266184769104727092212295023369586240375688760496914728189596526713741388525489157849357336912685228424340023028283161320753824328133864154772876633911151393798005538158201029781075108662045780050731168466390177212318526335698601572635679596134651860510371697935001704921235085905071189535584671791910832478372671001378868517891777286533370175146468377503830492824006019660748829276407024166181603063321738636429765562050092632847102165501046920667496260781003104382859835076700675882078499622626704372979793656762988437034601043742033698475995606022498779028458245322111844983929403281390858631399064115275038528018484310045045392807258192807161792897840455463239630161933425980589005648506429014366161656767986952583714131632178280204413546731069064135001704617961434859468584383281923320646694014360642875401075012436555770999191035251698863831081583975691881246757254371714942465507516481566150481484988820147567615159101338170292546280830415585295255564622282396933646926217619982119633994691973751817369066350450596071206614345710091471211079828498948646010251907121862913840274390487602849045194005268060239802535756498218346383938659897455493012001064186769991360491369711861505197006950959603822136943211270514044776166944564720918151403736174449227761461451168522129723393206319985579953337372397562255882898589729518777903364850555522027478543491401834845473923441337512096438034952273611329926954590933832598440417385451158751700180198993680303619454721354975382586318723504384683001343980894295050880201907071267470238935975481419347189160218428665749871522868496043631021387556335721871560598238355379130608537208984900987808618938464572588151705265619742726709164621415860677784212447080257098989837436883579539867853234263780993721530888453088789110271618838083818679674222491948758671107929254653178641398194794241106951548856280045998967888590415998420128336141619083259896856275961707948290456244760796621358644481024640863050673723322186879706321503500271817858673521054023450872034481450732418821181379255126557878426498406148492760998839141206231710887113418280705551146270553148437399514985129807623864648739943598772983571682201088285031415076678070913633427960945202080356722103217080842969754617159241755577180651630457074103521579052772605625768392321443964567143148296592806841197279198301902065495500028759198031822183527771380267463365053603852068723657836416581476023031282186160290661516968933765589519406527373729012055893547692460511092481209359117422257773898774418318743201645039165890970957762685766662198273211114380845169033046558344854513864314607419413599565396696808103374725117285541518903365798680861659205089068544359697859198585622181404491902287310875092490781464748625235322951605727716783577622296316876203173459642252658191319134519308946381310212689712578161409553609043901818084658096742355344923680317767638031629948800492415434202347564189524586061913632465928308623891539537548179708711003895700126088073647976730845905663169641034952264297240248456682495245877773364422730121149021928744066270913072260932206365348187593017991807264034102416446166263194070535375477861187218056072606301691023266654890274226773550281076325094783494446764680377904522172373516794995728260108720647972514470838506068798451800372465925508994745571365997890709308295146660435346715700385757435911506601646431125683811822124301148309862611141476747726845238544923165616154782473197094752474997506740641933420272581755724190721880747849479737207508206681730775038113028876755923533821710685017368222717950876565861567626593869928242980166300300248760133066556920196901816932173616347932649455121839759270424859134614589526407976762470738481614574972143241282871130559771944918960853630211297727365420291424191142893564132796242547585279107239884635843117642301093042209254288647732555789736401123784686240415887743819739286161774447827359477516421963617155759478981179556177918988975508965615397593926137877966044558918575394534123393609326424183607804588030698910301926754379126219543283254226509115276474670773289381442452633963950610880527471888429760712045850438427030525762991243543748489799128441877508180378232763246814996891743120765873153867719781026767171499962164356487873900966892680362848893427134612135789028549469719011508005828969077379265030785782705317928880822111253062466043140977815500893198340794487360542860835733869758759713932564447765698180909091551420926267438251216486038541458718467977763276829255952227949271375244155458226136673755926944476812107618116619850262510872022322309202485952789334570301065323503113088934516233029277151155940521539898862177080424420788162421641968646014821660621405056411723693132749177208879106835465330660033018216388511169725777912259765929680895402620507926727564980021000669512395236080981355874910167551802085870543628338325891362119577999777456251377153180254322469693653988681381187325552949885482508966273484926523860382524995727239809671025793152812589256644820521855012732523925899401355510061627681504042807774698822589524775051457389236753414044717617532147545963316937174837860847586827009735824121443584455408607408245893674003224310464187138368091263455775262373423493248752961256624411097499440756147580034448008000698749127293555689089759418189451783131894088900383473229332918092030087143514890993685818231290428350895527057050614690507966033741460274694272139535575992338340288010359486561432111411843572314142206171060403008887130216095269119535818875099240096525467426526995869252792440221652579656318976589863395200159226123462454723910012286933231743841758812123317929583172907361394013835063584576527435569149267145930567747848777734133801817865356363483631411109595178090194197161340710811622321466692543845522421956864918793946736711131439467751072753319245277508422233623993933593900968600183156032383862366287298739519458668560939124048230127825892740769527669658460900090347716911237019906038851676521411283707210921764028282069998727254473829015005196105127680117204994600801294169588817080171488035025924834781458077212210822367578250145536700769111370131522172521742758778343646272653563067311903981049041812269471097966641962028752914691408032214842224709916508754339635758180957576941888620737979490359458376179896566126321308613923364148165080417761216517159270836230463015392229901395279880763479169668248003960317835845707846130712813031518148428940884092638012899984243341676501000281185664047555494327783614371367550347610701448682182522100669089289233055807373683869141469397126851245207449415396386284002295065126864038980119805091044395140314820711562337085953795847772744949167598938370259096014772800253502247221741712757732634324164751549935294092851920528307922133058682587437200301620113562997621319239577810899270574034766969421571340414914952663291330955011972775429888066314053166791923226434276285572457550285274972227216199233573487348839498784078338798104276005717580523542841682821655244016952249134032702638511740780061647427637134163386473035839893067277292181255953026927974825000164872384241543554883597770956929657902381173230640243441262622313478313988342765531558676887211530475640676623615260185214043413826790016802365687783223799489378389061905218001069928398066410387642655638809545688921331123588831632039011058634090827613442040419048337661592748973094776137083432457574583499167285830950639122331282712761813055712564446718875103753672981737210637568821678124236076975014400804623938382855012399876243281233070344806453075081237450481622544541311716966449922383487777697973849692186151772906980597168455964581342221375114567067483716569122287152708390292488915588812290096249612462214321218689172638309631083040290617906472133872611876997308239469249768866816903230282782093730935233006897602355553188890980970351239282359865000331890002534450967045773006605537379585080236384801036194129884198971719909910084613341409403367150386125512307857535793432034058442004078954835866672613379860667038287144666210523996145632684376759535533101720433881654720697098997232491461804309007061894376864141931998632491941510401077266156783219464861156585113578897728141012358944413144124218600347102639027033401357287539362858039104879666094702367987355720395918854469730816425171047742502852678075067620354012718803549578452792652924102914247850556671338854312960640692640976269358899890943458538580668995491316443779954917332850553097185453497959631325557235799673016792796229594747112431119569297306657680156170527379872834029000748936951547616563833258252597250332338130436359597066528140395993817754460486205540997196939035597313773232669846562678028329767616134186167092720180217418566549576813999139885188160208968255951011330795300635912094246597301354045443556533054779413313748782956568196268189355645811405366179022362572009793014744103656771242555283456121529344324334133780803759866966223061703302970926193331733206266952585430946942562392720959823049575476034639933133688417868367218240260850477713435846057430360901386388382048962326067870342784733853988193111635611319954812947196794361568105336966098478612471422814957212978029387593294670419474414431186180067590370124556809789692679383393107882317778599435257878913445361131582596415150850964785554033962779182746881413650296789580594744416721660314432961163966887151310091576617492639030970057017422345875030094703012132007047083271932692832000711642742218475458178495773392309940421151884459781057008640817537394978432512071200015399110152307779867376556161978975799306515358100424212605123524777282345691894104448876841706036083185952109968223174637963501237223184460301442253988118358424402249910253161351978452756002072272783394060677124896382490323206219706011967165539773534080366008340090814857331826838386652480317278015211286122840266911449643785567909080417216230122089073463315156410523049885166419204753278431820891331988320499354967852657755492459521119023696662691979881818900913299993293755544356170144499146677133517425918323873950825641564909143176337525810091490905670812008699617623787440576304679720689902844248706435303220535361683637395911911609695345741931071287933412950975682149089809399645584954519428189328459616960353771335101502721955673961326761118571801498051370590120675169643844216577095764566993388511835273558034903928337648731003157246124089518997676802343582786485643225135381800704506865577061916509983731917750049089221327430537483022029274873897607799233236929492552130003067370040827440098745077273368926962458089037531409460336819890483428332420834048278578106286095404648458521401890774759706294482314039070270726773797485721709279594352699928320103269748447668798665828996719864317094647279496249625683580083494553618300477298708348725129647990548115337073481828366748063135088241082081751843976648004761284107466085578596418687719554806000166692363979220448302850973213480694209449366414872924778468140812150447954599936385005424034134187779184891623314586030891524408505757042955439782132081380599967832846088282401152146853859955634628003935560763847272281049821485510912428761553329135201041573707882977825267561453267527000418834097940254068109252806175821876135932600674663401679935763113079880550537853094461601922001627993969614731204858359081423647996249299601691572522498464157703186597891753048760430037950317020707110425439202647315277624742970746791421485050673079538929864479669720651173987993694185441647097338018757924068973611529842942797641458293374290196147184727741659728984492625212690219038821214631510813582235249886044981968231179689529041750307236824170464672005702316810740678652841085515479714412927096828891459218717215631000554568724212845812872026614362363020558927103034562211741065765416607115243712323344862524983187699006246699569607672014208793025563030038276201262317406664394174867743777736666908286332822081739040781634652140149194586062397053825982564290957324734113219283635866903520929668887081126569293518842603589787739938126245476143830958134894531098787502292555212249693638138882197397944799900100522719084531714462691802366805975419348334583245649393419445759755807346171264377086991068946475409725292900884667632946878048714550855688917490194029157156877028023902667222013606639226445437228495760630678180268749004301282942533085947585970499266866309398388414945840584897253846963586726940365436370924802599787425593272731271030676753017520088004550194925140323728650712913812947921214758864251084034532570056681247887672349954462652504689547827663126475442241792826125475397803888887309900093574042346803364769486511844543611636306107039813084650390091658415423144311805738078640708936792009802858477252668679045380700428616827155522183577085798628114410603259644707198932859543464296873309223091308508213123731528256063037907931763962227716124493096926643592126753984038221434775553983686772540932923193221356962268450200410589478009679868367170086384717260472798380081167300004700569704209349049783329256438330958616725254875168430116869497050862755968172617195153153624240843609227533296780566247564936236826263377446317588598233412908960070814715823793746595555510200037773450917394284372121251904809198841822999811604995731681632869397731573035440296842544048662831325788383986614273952253602688008232325062786095559353339421641880094172069530654732025754326259965738669742177247642390782298721482333509433847211688296483746222480401911709394140375788835827938937956213871008899091821204415880978358979532762432877580108131387986123261213378490439418444551723708143961588326180045734672834103046480450166853299493564216356467288416313120620756180942434221329100769117687529071702852071557071160638157508225299752310983665534650369515025483790799883461331644670399375316424254984620161790550711966829838954550035127798392879897348331704331706630196670611125695502646090715542418356558945966266625873402511818466159766165622466463022974833976703753554773211419280713901170353315938143283366721068602904695402356294227803660411899436118635239381226587317766123577183797291299568975214146434744451527823252172328581765311288892450348923495761954192729112751098541085221717674931446600795918719907847741968003523867601946020525291698021162766983621763570521621639056231084968453668716198781686453778219515767126697881233664575836680898040222078491267777244477564474358246794628785900172768364409611805897801796659824815446050104299502041559652877616858413572410997105351368420348196308392706578320775929072334620436777331442186943738968940206143689548954030288870792671541097239311587649003222319370168649801294183867243127221270920421588155858797305399410786696009468373982504642116299191586348133261487673095394601773662492968030514922667921412616808832032995784755984016527234469292858856218784106789108944861848758528551664149023452772130610753835668199958313007247370388979275859074130233958702694845057358862646606977500253349924179111514119613473180128126403092706075649315972276359205176239135481631999388899652245050062941207429589945279826982202383759783500576084791498800185636283259287311333719227066964869259828383413556881041760093035207634775947078570838099667571216397327516419116814220432149077457196644273611067403388780070580880967816133021931668380232082609858247004848910203727426166362214057608613338962185485901876934135009213428260527687617285408711757811356533699876055871371407056238668357093968209314636201113215649571333350200388352956830453857654078997117626381036344827752719017714781295531620840242941264879432321343497269460629340258914296227289513151435506905286622953065094013538958086011715996960456990591887431866226920238226165437819020164691375686910791419167954934941359330692018901646870199469667001050120432824232519400694281495247668162921347170385684219464004138743440073374828888283908879121112794114896476386050727410086916600720788117338871396112786072582936162079836635874249784151897643056574731102103308695905861424745619656628793324108621577027310986360275820445207284182590941405183164279494317739363422391694342665842477958925220660444709384969870529111355751416145356710357916456630384262425341787146165294633075693723433837151922197194648965396459914150738476014605263622248798248972089796580653454969632575232911469671554499486200083300730410856037585960822230796846274227801617394645157301356579748207026171003309145318944881270363731750081189100399214721680624374175293055922141061400025625303234095895517176072619931462154843710672823668274083644492202485210534732980313551250433900020176150897428126863777161904672077320940743833320621723499240500029859240990319222501800296705440910011644408706320466438191303694590348483099094400562715674801280745303398668969632180193749057430620685698235387720945386132288059617723261228793495543972155327216830455359380724050079294050379063308887230980117555056967585484165611757726493443398214782839869080544071535272927527258857068619235334184452094750279565818209090868231364522442716784839126961072751762405804952918066381725216846511662783987834617366547297578296684274641681570438944600495089847375869145724949542977035819350389819279267649090305042181643994998997948022620726618032090825527521421204747364061256505135822434223007439503162958431430492800761629444479108232072478308117266219635902535641629536785770441802900502326705527710804781959221417204735104226126090531292804398756553641578830270111169732925609026137829646616323108486463252033582760191778725004417997801762164332529472596102989687128482379836480918031164395251530537296175150003062587853759454928826763263718514290409894023046892966748071151372694047362609541787328426831010305554300810464167468544236699447702069675845285536649559904544282618211133717086112015056181983453904923476806144013343882206834213155479839389716127656498733888161222962947257598543802236207281549370574463639293913064479892605025849138096706162027048621770976300723096348826985813065347290898374747269733201606168206407289047607113976930401761005033141293661528847193258794199695522357790249528833069744910363773849569210264503671358521504415361707463833150737931649752443883786585367688015314867346623403886156915321352632500456435339205645466161246257399399042935377535270037007861525385179590895381567091077569423111010912291283097910320856684624258126677747815785042729570887107854594152101871735157296772472132822108114395097644447835730902600286376840458833235287844321306424409967616870268400178937391172737537586521334346004357882661793023558570271344020972004084392440698072944721984276285312721348637139601162895205703370364600263315845822385474691970277127353587035105599911369952599330980667830978219200262995674639192018328192026264423795814164484535745081790400473886467567382221247161127014402728394024831545286319065889298967994222506762902002328744584839612898839777555038489873058574205601400683013749368700987766903812413506791923295758597930783334732241571727974185107952004196643541753990863043988365160295139253905902060829751260174709599048968303297746010621696861926740139111730896291172925889547698625635059097958055307768818950072878754414989905428092468835009913820018016514234801419364582875567025015999754360815268485107926591532250820989843567723648714266181191070588965727697040297279469778816040383769789378807964342609438200539657802268213880498428887785160558355661648723482227674307734322511243070301119180517601744780548864641745453168057471807921242283231026312657421445559134907798714258429462374687705102419313869087242777789411009124751784515930796886908635092368070159636175560500059295979362591250145001202022518025070271980721167772787166228118064104214167351447702920543717505743829130775806782043275218802038496378642246194169741157994352189317833939880007858830087719822049399650130366651727126419706168329875973683850299688127519929857241924202856207349497661648208383777984916393402644770618556716379230643189696364555076947518159638666183852104025617858981187061119332315775146064800050993956591391025401599342125146133024785830686078372275401218219004354942861426558098223058740364257945325513471156258130461015852500168625156736154285284718018341821809513495330672052700006955834397059340272773191687551220011380568311969711620174235119108501693689854175833160193540327181061769240531073584058537614416635104457476555661228722357907677293771318850422077671912442346827979151616977171320420568199427824016024609559811298942236705707862206208720851965985983659294188631410763622121048358693105219579908447500656005811805303861125261561201190734477471677435987078032213675703720227921332653220792390909604224306574033066355891488019144203035629740282782089735747600897882299741964432210439137395059700125317464446207451121708483996791475298350278864819543428586746588739412998105935574769780055790300528107453836873008185208208840581681750808665202623254455868494375163419445566151687776860773748690052063762548486639389738048250453004954631049050836612577139836213871674652031820895625070014481064789123780996748484108428933114069680058734096446515938481643422182673939764030650615982551859546251688299023213250000030939871011679548444498663355198483309899794499321684043352949519116158863449366076979569874522425735993579314649509882563393369069705046875536111251919512435373736003052222659470172943568561750804920594060185812113800516721585597174948676425249715047813814716096978959024956567272289828823517928407014665541971628309651397374684309109154187229503409483056578041946224468969996540675614651157198505099565514542964914805737914604240146496201228346799121345744519934381193166017669507399845605880349647695953503023342834434745210267589805111676445843935755940326397278180735070043809857261291081804890625032739924726452973655667630073905524061712364542872837292831936936727565502187812191675651180860963844396684886356909868560889592479177302849070808138575702072071876084532946126591241307749121025034763416429649854674662671396475385098713235002825430982385128126611980073844736977570142125126987788783010371015374926826017600513226288685430563512764510234830330948612257838488124607016057750494859020470728711658907926031721195915287080041769159390082163986929724216650363731309364396196667942694861022640566507247312219942665452720941590446820348641490751828967151155351547422463405455096873742821875631727759066478554414021398317326302120541292128611496454910294021764629491567873755208670343197907858164642697032014351465454173891949414967073067763408345331947899484477668525689188400238553102473125422033720901687063165393253075249971672648318987643316498199560750356519195649982560281976462500492729802532170839071868844443947605707551762786437688185875338888694432825524469753326772446249930295260220656618115166127771063157495670000893530771318140575430065748324865571988194369216168177319199565951615430124380431527841035666437585899779406989438608028231528952872646275397773042138063919290787246900005575449403096430507089229172439916783461020455568952589984812034368940361400636430549249364518807563993654840176154308740535460551409134463227202656909976552447874452713011303333861637659381144077201932209573922022423511491922765270061499583670558925682420119848185455443576730045039424893179958308145965178956220935034831181618928724166315013294474205133913420960715885756834236324493632795514395124519827382712617444718810154119983564397513260195328388758263240165125407461382305004795595634749730334351299555768167592486574378650224534073300968914684103057588131123053836216657325743522806590846741497015506125203381932320419094660112587067102189427046549140613257077711752624122150697519413265848761414777141120883356473356196776357802287075747211076828066221033542365480334469081853569796238461329886122696568930986290702675127738252755403171377802756831761697494919248617502303783198146478774404951251045642005471191332675498361575296408895061267858337278369157963250910551503500581213469238834372598196787778570577870751967009177683728780084459609917742368368565567746013200186554267702631305606072638153293426315377522807354264539225124588388664447619196829684827946857692577248444315528760913677731648627581197973248883776668480831613696410288657008589731415332553863435913438802736207404815238106989916324566547902420660263176697788286394577082924500753249639042135444702995376145924421690998907206385260165225653379654233699145882869834286463858641899479779459833426654321533999501395242999979494352521320940436609142867861667503547744127152262628308508340981056365399606950335019131625387881088326555836181130665688634383232478829336302143449891103859390912319671513424260852523737948618873074261126220646496673437539263517625171704342249982202133515235024790736264829286230391473379633928109490347711330041007272147079533744182215817838500825811308640446846550705995073669808396332796318236571515108003566281594421137476805968836876064779537578617953432303245383744203178034614824466636146502249059665658023977472261305228732981600355918910623487550246163153801810944239998512056432194878779271319353266436221262239115183955652937190427491453745978595827324168720674744363674723303131805085721519196819370556291216454840623270621025318465380640291349754390252746125998670584759305961646904362004304991543629584869276056631648978656566077440349788699587771907808608034600538777367613404855893412524959437119141538739810746850005662533348202750571639569992942889887131142063826467343170641202129355241318110121888282978154518447404049231058924437916560961524074335663968282828909342022138563477421359945627897357030942789551293465150359974306029956641658716059939418191530567908758263427446972266922623778312821488395084522324193744636717814244587377727326680584907776944734221249962298576585275551531425620234040459837716670623107270366823824591132890374414714784080412428758463992032608809115576814376920588537296698382135846540300905701173572056278793041764362433258651833478266366269919245431067912513420726844479569473981416140455205688373387450709649460908699331305898913954570476671306822217116225145651825366716918860116808578204111604368923905283190114463834103007218323847142973176610452960664905293318971169398457273647369977983449126851518776452591452922598253539712510037572018796128746712754301293594932762422746370874352781788187955204875685388053713476431588719262450810913708453010321039484221686590819183963918353708992691844455784667043083032320520479088655415143703992082218270722965127452957146768225805150533521004305676385166226173717776193154994620785585327380982955557552479095764946714996067515407202452450704800658388488236932407526156019877221928394452298625915268752981511814926244521260018640675135110514394937623575211224364073577972610916764630245894862691616169706266761668714009966375003562911624972429573664185187957982968783093003158067448274174078025463938033460388536794191599675984549076868026836456621531517059883985896271304152163527976445264920963324288794408935849599354332112238363558838306415134212550562535310457417415164040719343056875613577616369124444220280770382650309977973740701301789691024715718642937197084378699858114144126116609205261479718589707625882624791256723379320525999150731627329354034034124087332959417738246961864098192469831711795132289845741246614978609011241859723111296512152166877207619957579618609009966558711286143559328068599366829936302196259177929345591531149970232409704248077940760466524070704261598723519637657000495089981993499802764573715777841885283320553723306746022031994746927596234341589693869269678814979199012534887282918833197075881521303125286804280133331727281621777703147921052400140586800677497245316328323064245085510819758783921738223145873145630890093512923957936985123001684288322158753764247519581770944268966626340541037651121287424795385818074689501589523834292809843892322065198160956205467903384844115666130921805846182895542917883870407674474726780576951300655724705195456066563177901269707002087993073676294272517668299185431254376553519372116078786281681655947491022714978005316711689427804712769804125159026900642775730935153841351146344834407673425736745919810239062907167509132516909700635919231633811353277567988556457516197244012835083579027151588416216719818447666425827985426209412256715993107105584521241691290458028362641199233478878460739763305091559044133880733841554199057750779414857095732413541856131268232820828366662986373250094152524968967619658550969856970823344406001623755817770433852577822975471862710716578104242834730760497712540376157248309150005635512607378442464412218354670239278258196915531302041441557518669329919968696716364476233816006540078968943391830645463409268950391561370911353184066759281206453269670315435703954762973160177804172992040727446385977340490850698694597626616603175493810409963398509689291881452422989378304587398199593994145226790339147196342506339723341993882280935395922114420702692873472320790905414728560003453128476965338883286017171340383971182509840485349115762535758852913630861280930553412358523893800080415367202435072220415495325478913629488408737193904502876665549875474786420938869015890489166664882762842062005129437581119082681354504697613553623827402921323292569220584486472825429529858361704129756043630873686291501507432543367993958002337253059345292110151453045950885001837770230308656132974139101786933005379530707180850649800160026795222463641379458433501213136509516855061820244436117944844322521294889500663611419038157707441382727087441924765615222073240971597958136702016740374336915716466399481613960397693590020055124560348698054359757005828322263974539602675466125398991648330066800789322937838013828018039238088932063758440371155119797555789925984298308469925767380644041343109419119541197210363008891738692282023083158169554435942294061528353130971608677522548703965716227860826834536396656037372620471985153658850486584744458319243706008232311037881168960194266658970602930070270927830962208167682002291223798806117855479222674175967921531632192375305263251627828666887384361928437018094173891702464672246079485404776429431298339679280576428114456290349915175763122962314854125740744816861527864847882454460640050442048942667829406605318201751727296181322150887413124323944472880489281458972825613945549450675850921463278782230865530294245875858790025562915869802246626121160279905641564394161856376734372616255322981466320071678230935333859129706914051561748982609852392677164580678556231911939209924131617395739125659460208188320398231570474295898505746747007064264354444356001318607547800543265741815411209676837712055017288702157825547034998434848053776516964671388396570696311222716097873925007145159521338345587329181457608107289330872092844299488146078087456630487726184435528133542922920339156686701271686109973593560835042865464372269225785253259598172925512206446483580580261340999509381639517906929277080235373621859462074147460948016819814276907808415801124253819796817006928023164664768109082634797228343043083503414543592311018482395395919203687239660827057978657941123860805989748308604153299669663726224506996499791316966090601738152987478702238159288222361126589124723501721482011548214691070575132385049681734702584702850086286755446186926253646046508694933983046007767000741309433396561830335932570122208573645826839816269061665736848895344650401991397749345621425777060557795122834207725568631301190708392848749129035405930082561381398270201609058376042842323815234273094530866657601197483951642282322066768588573370900329422884789283585879912638317219289409219490144745399655505933838099645589431460854640438915050657886131464178114311409897496660936272674921924315485711807729465596287826714689748451899268757367348338651753027573652999490837367892518514829084151672141844704608341519297085081713170832430723558622277752984521241927003013908968658353879843098569397455152180258113906495277305543352957237508817604049402871837189192045458505285680924572456497667845818518924520081882940393609180604921710146369657323200377603884517303320879965151345531739035958413401841741170924401789764744411877068599989325490110188954161959986459624226264223535363601126318030243109419747783653883761104653339957904842201694675094331580994765360683064882696175503865076341130350917492068698285650405068660441462551292017106725644299321551480512103655657050022235472561931984135509520643254570261860940910426591136864756201826588002434515859524442563901132661215484507005880672786427691584784337420150587718818387857680331342934691521388885540062962829803828154877458714667942398799917734090342603557711284139225397500021375066901678484030459327198704381347885590527434279242427864026547216085928399446257928668669476149888901181604155338592947234617462631323814886979620212149974793729691969438715201730248653182589271419805352800471166172798587193839976567404369767898771207972913015388913907100626206663783733173857834099033241084861770022360218200836560923924778973486199715167354777009446340550284734394483762156470092773221380700986383611971975810086619913382353031275889835385332245836124719532832693673957933727596544495177428585748845879903903310028997114706959025022122587609793998780196490169932588360200306404945718015660138481064193553747668364096025017594639422771579732582923906808510046936669189823285340963824446052881931154805651569026107270754244374900823233779227254495142408868766121581744457357456472918760309185408803162418359445603189278510665386738651738527195748222718459222172866178335403227727839047379426453478804698921270467531442234024440915210422484888299197503825592756506753938410406306451277711938331371067195046205829262718342282986404243876736635430656929314867797911817568511561364256881468766732601731096895631120483816023396967609816705428631191571979005921152805224150363529812441379370417233943854949127083492129571970537842212055976649528263688023465372359687443215633583765107404088500149928480132603515293178912713362259256621336544922677262631762060091374119421090517236836365018682638826764286772350517554634869224007217893570785939751772883487871171936020906313607895951995254202432555115007468496371546573170298525482833634310108802038229178426485998747172927543995776206099910467549163879675450773900188233850845645310521840871529263638628790410867254942937198745455492545772976270615642305154616893175699676659260149550773424508438156068537938829913114669175101224311605195574913894081904174188186454618801292182882036393662017517857671416189702185857821538819612508283221931761774546309771891387870856784506163700306354544738919835556469842008781206835819086023174547483776207872870664290204652434878279470407910469021057346103042171693263402410891370602513037316903559537009790067819196714759093535195564149671760464900497782182679302235351174240098215096372343081411889540509490845483749547872792472727738301993623185571344573334651622989461463199260087909685396466887432075626352235839809205751980125500365515947080740156098058849337740398617216294264862456681256709279303277962405562599391158055189750116899336187483570122876029919688877277977628234953928126758421439115736742493085783876238126744262340795000999256208666969023128090718407903996223406052061960534577615622414922702112357385655562159938925464454571653538154041375209022418884393045062605485503485167654203538186994704856051346421816801878105683039638142095841479327505618369851861552695610559705383655512545849346989865980115463287068452801548361785285198167691568005402220969023603059111462897501178594883655515483489442942644629487757389879775196238296581738884789528796472483774331512845287037779731832264086212028269460339809268229699773875551004486993603979580423536918980324397945944682537988854534869105415887018007956848997040467338745155573880056806970767654895918114872515254085691695313684762454102601595301989086692553034979408026804179593966774336822027692504239464394170043851296751398118918751530086121455803539330949419261577202213353613688797026923786717465068400042655197728979454834602058089789175895047212871198620704904470708710396049988779260953880940962539067694904242585513069261788324298542196892504916690337319046929513143791985259457929869696873638826288192170327764800115178909113889617332015693099955119672796437675411645801474414739569806773180551128335726891669954039033677531714078208673773527019542880008034031947015057607056151875551029490388445661522169911635955450211001278319834827366790514447936626410148134140432543064065990608749402592291583881126116264733211584107539528324703405618353856184062829745162951054748598511455607848536553533883938775964769697996123516578095355614777741516830537881500909805142103698580549541133236272771691158261368745304041291241406269289832035256057883113610530100096925258272727066190144456889432140650720590309591901494915101242094915386775727760047031421482416177759897317035574709142811369589970695975390504741254869455631817979298602526112189564324887920514053431908550815738920143378637357317570266142236155963189502955430805331731059326811225806522363789950696111043732657241574783442796918451785156200079515368911420562269311441305638239673348468188803888882528706441049008453527216744523509227309508196209774735348587514290987808173459367786470002482698169772094790302549258271727381780953325493125689737162432749590538799830063279370764513848878176218970387937830086416258067044211252252577215444736403342088630115485810593296411523080111961120604539182285719243222539337607420987356368758501583119946644502284572007034786126733590532529312032617930788387817706809452523046726385704755676451858625848372637440337317912350220956572967855213428065876724686909675915918951239751939044682919519276178002832995635164538358460400169247275511489700480656278579539383617728406540904914338846396788806146427751815831076419860755304697953609749993291713020095139808426668907857232264078522011907907711454742853500605406599698971267342282884731734759768636290345398745450665495811834108224557965105314449618070448219538323437409923811284918215007182835418589592241320540357461932633922601385771107228655510965582766439550946877332649729967769889812027457627362131243264989862630301711907852967085867316874862634275909372235648259659505669317625286963448151174294226807568667418176615664319893255641615039295116028858660793446461099605028357667349674127021721588551885637158124462329576360863222740887833719873086514174526200966259334698262782965919485982784337562525613573057944647007562706698137556863381533479421052435229130696630860229669168209348881025326563851475121011343001617981072789786394584977357009228454408850387464005634951771898146779365992622565735327294975752604484736194813130443953040615625341211999852390696582021130954683225141625238620003438154907482139234797433333704325576252824845538394693241725530643262120653161562890572539225440174619024843015680679225003822798103043310309145199161325212988931402788963927184522787699533823277660621538368539114298789680824617420303883803646616266837957446544416829355833614402333332041192156061285691246988072628104170895348793092438661371443893583910034270006254149764095441791208673276648405038570818454662498909367535517023319302821131756093612350680787256746430398798492635887648769166091859628554000912385886570518623257391755161956219566526477966096937839951476324921509519084896117903385689901452984214579504902061535464309933317515747195780153534487093917649958779752677975874035279234851981562269542280895221395938675794666369585933448900400063735956566024702258937360742392370856395727774448310390777120488236599932315503530460291211241334808564991899460342079143583993035004864701975694898712537415287741071501139520765529327349089204527119095949167626652985529609897594739172903881798364407152520896515290625050577208222575234774895319076141426113856189776567206272685525407128277211201066800593236612401614977820300304609403950164243533118189095779413666773415421270871322097676274025355211346030971643188394356309829816043978382271462464687401531519370407744959686941543027159715756798700386605077999732499226261259517394830846024354202487381740154021150121272827116577234545938203527916828068737724796367712278087804784806154244054433351271737637788918731650970706474014832430089412801024927847315694655797071453366166653679055403855877453008807953864295419728107470383934235850494756463809957783961582539528991812819695760580288855982623300950704219037511801740191554269020093775829393206276497592974549856682604119261051778370338658267991387198045322231361315007046612454799146270056873759347888933746323279252033891439876176056718932685913499845646262608800558117780067274733277264197846080707078451069312306973149813929522681597622263742859857457741920865358721958035455487816577019335656084773430435568515624623395488962320403859459594024084046741634054203062429572780608388748095153630263042212102743921359979529606768692813882917506222273756028592202447655117265130315763844757801890481223649749903303358534479416659935490771156207655483026700002696044061786887569768286137921395328183478843582639321637631404209864819285064944499881767574821915862743047351483355059482756526978783646792920541533007619754820996091624418419626590085072835578294197625772534926586958555652135491441567931734797534779529936679461334644643642053701644209289886424223862859541148058937113428290384632237393824993821978650546789457775947576696848733883006235325897366306251493846272640720507741538346847569115197119479693563168759110414800287849569134683470461431918097678808843762497720849502241430033503303208492944301039509938009146235255088313320729416782325877135992065155457610779234610337911228061697679398557774763009955265593028843475604722770463216916529703711979259122151456396514146368863336647718927176643746687439316319340015601032292151492206984468391033352905956463284171000200711785458835937896173071338856862507204959184378953938940913864444474710551535593673529350647091039133474781657640357224557903571342122859659757434841843557848853078236378792480433595348835197597724264315849693414781288325929137347183915935027117698278379878839978482427289299362965614316216227028962444631492641346046806556868854730452913050589919735248956053396758168014383784366236274330152817262530555640308544230817631222300209959504469135112335548167285976560074740546293961103748973336105250557834043441457770652040046596216108479219892597253316972220433505644257206680454276128095317059914017324142492027122809248399383471693210896917378330287547591825588156795033373690419130681218962463797154492270384473027382504716635893524365811854611462880983191327510358692947757063848810627678186779500901096600041817938185315815530558570473319376842512692544162529369928962663607757645020844738646050946514287296409461252308383340130519387377369885330171731249505542863946598186252000934284533681953604123246603975565437377458383560039598944649719493615766616845801320122308232078560617283275661099002953165014349244250135621548797991277662302004887414258853918724306392490669770096814453687759043312201319696539675081132433024347407319782105531231688344171082041893708609599350769113080883913155725980339778973828449886727842847377857973015268167559342432863195277117645689651342401444088616902144884427375977882669318698661556135183196072723420562838165001256395002570083206394990897442753619729973784492559404706142072888694009969906902952779836175778477310947186182654882238475560052318447944814178818647580482323786880901142404127350682802067776313666946177262012704192068135277158813951745318142749713780972610998884012868904985114094245871597727219075253576462313128154294767937348421177602494102038007574773527975786014103684568699979930261624754725428935228770142530212639714083966263707625641210924685811087606800560354210414195369289483933351074581737819713114525765409700734673340042510365960415549011803315750083548489926550508509251647533304745359194758763879603512499684460221549839491049155237523577283049173952963469382513055742259600951376752107648160075089810877557651970083548073679582834276118426670293605412419462654327243236602896806208289453152275783533212687926385028443957697909312651365117749820083026913216310711222024748942267746659300940761648763674266766771884630830936073410385350637894574954020364372335306547036499880240449538185714647602661378894619293602367323737282067747630891175701709678298263483065690547999768148292215195235536311521921312827141059092815079304685355318160287609700898346516595191037586077902182962971583648483099320839233621173310113026217622078615001296966449059862762674701925220535261522249844443632089206518490457039160573765110879393401856574834577972424181041956791404499756711439719994402795870139947543058097273355082931314438277678451844123353384894361983639265957602932838961595459710054995215993615399891742686149440021411322408760225028055172162123983441893727686895651337947105383782961226697455274244374012715326219057501388825376589630489275396452623684975675788763825001291144269010280582069345046019864349628891927559643260784816084938777349701702108200618729974690030178153623876806290809454225755368578788316115048837480853350768388169964362039003708893453066184979387385166228215561423086512623442803358287648914144173741409696490497997849957637612509793940966947804685428584487868783209565772184254813446708868209808357726051434896160367489693899744422060044504911118232355708945083987649961352950022548890041541042949282462875785052654744366605436153587571644817514353419655754500719594043358700766869856249429713459913727467241784962216541088420958940461345490455608670322652627608540588213018326050455111572175231694947202735232268478457489866591608574329199617004692975802725760461154606597692514223917675895580582144406781479539777885723518431028344150664075235820625340814681999745353464842490865417614582731229556034451077815448434925804085171933998338857923522875384428334689398762126289611489886827169052458068703177062852666189794680391076229298284556753591553261035806612118970920879632672711905986304613647915410426592120883431273938383168678214381363129461227566306397621604912779589231400090047682377000223193546097413588066003973101123134860271318443909926575561360227397256548790714125875253344063345079283129695594553751361112651846558889702103511814727286162410995447347094137471226356785369444706694033450675445345774058850107171793347317025182005397979051069360972866918321828841786723072259802799522068426228878773223631152099998436763495858584117008755919786331168808736646426294857508564741197533435740130975615982850463911282141952257649815116788656251225320785368171879388808806193526092095464566871990323084002067721844575291431305360591181354287609230366529303752516985150941984318753583399562905564396428113089642408973693387668164765918893557577856133112276120305457705899309548805724379627650608041258783855365505402518909335126820711466777942534918190599891573344476316596501194338604250073545991679259048701895357890013100961693800068991519880261747025854107959359911052862446924523159547615671036654587461032606681088070066846400056506697282844730537759644785594385277623957543841499498375810565822023355041846712305256440184929842785567068233421137607810331720039358665433440268406983846258853613266495073388033270855472712992973516365864371183482953399935287440241607423485094487885920000995518911856406599019542263764649536746150377759903045029637889490222228712379828040070934185658848217660085750138991498362493407416063800362715031816485637055727117191029983166074398124110196914842735676541226173318655593548232047811152250587836718244353919832853112951918600891924701586355900591938232006555843033499930215277709817875873045775144576358034591333140788703468711274750970748610096718864838136531001750087694886035699653917335621639558893215971467837826558240887579485936949932683433978493405961154977393124279213287296275702198427299626770925884536750869046127232445257615944653470343111266802886296636939587236252696007086485321847593652107417129593008217217569588644397158125165709680136507114956087335495649639665627695615071349942524645393917581411102115878520179380985575484354095707275484584201377514719098377333516566397014204070799960477557841931515535270783300500683640558441646614343545574313016065920755815248781237396220035127946622542722539433382463093444404910960038679925358549792396800364584401930661791983081934532946431755167657997872077801126676018853561093639682921634834608577160103638456113882606929414499104143552056289889567523169876912728570709461043723905945837446543157544704300960020454185188893632773453459300279591917137152124113572866964547257317487190846407343616172859445838807681342122447503550622629557511679121948378843714061730971421812772553266358353098737164596675646177043729013536338493922746185031086139075733071909253342211616509709584922482756660035590737461718256543467864019978598087449777692970645594208708811680053633274771751042675597164267835142934740455992003140164395695177426536018155852271558953694424772339634591821149307068856512979467208499120498622076366432448902236547561071811278487423076588627556782430058081219355629816628276750446572613196261829569433992460953205304717329903006801673963790505844907912955468098583814864987663042405774646479092345003176361445109916658901801622561579707746189912339089018529065861306099565797449965935223052297227959543037811597933947699224921683976432463860995192283317279284159581668580683331812393703072048910511685387339438592987735192052296672320891010673469196318608166571506225796506951474274178885526758668466321969376980873822346995654878265050577380524760951420494591929106188921970753153118459157688709015144393564645966855788557556814629041161814761831317270838459318399345420409810054163373098085078087446172987583237457721922001087334315035847084630269231535074855922735495837321603797151397919055587526582446735271709639022305724882799769781141129147647815855588734454830710768243268503461596220208928263655829323209353063592677236970311566713761215382264354144891570791624379515733822111029955943014148125073123774653667690139663984263918407057800040072878034317250145930026726743335901920893516763532708766384159408622459247981992115019789628192339165451065386032119561777742217409361580429091522588737111532846136295405829959351668692657034587814262911819831807682092439877200971239807245338462625921223295525972498215219967961528435301495934171220770716711045605282329172417272671914957849336540182234125890108944160275075473625218903990267041386450017353375316313766547236863146575662591926995988784023187721899919131344349831006674430389765439383208319320696792240305104799760272055502485053483764159699036407169703644023331195511083351135691108857969541227458127472001197438725313068638834152572558505819842727854632079271629594497258081486303800523868898135314920196564034639960801301236046296722097406933697505004508390306731210181593667741062019361644927352678954387822359268214865740363088592296062839446981924264350334294202585837815061550992944136304570736921780468548152740890834459022503481534681626995501905000292295778822175251359331128989187546465418787253072778311517296034333834261691308141796804969892290734672184350285269124788027543017833122026513036244929239135565676178947909461191552499105824950313484946935016642000001976499904196862610270035663166471186614328679525181502436998991309847346239823854003366843004075886446098911492450940576997431009886628004631394072044069315651369484896153206747212038856512918765568092996313990706653696402993449251381266095516192834695927320816726368836900255452960809357835346641997789252740644903168784727267714833760996779569535277194053943845455955861078740329216068105080454125062292805143488386110564204052607636092195078108798446516398371677332108573500113874333473450646685192802725531176652273427144280996681067208472388946478041589765404993672999804027401204526599937937820216829475434383758522944423932934329253636492724068768224733974782490684322937496968588319861134495602279511424877905783900546791360509505479037602236207039310377633604420946772581773613679300892114015761164412028737564961562650337151639760606424685832041487943892519391012195178955818577011404428348933883166416537981278749414919974747851567188473820588946815828863785275696553962364067293933268256055020466021765061048342292440874148265843063013832966152496218546850775905338996608007056647895720838035488775469180304671123238889434595685395860730215107476940179204061603163915528682900139266313893517326554393115938673043861841302046458019877664490414327107975225363754948155518313294790565207642506522959793805217945975280169380507714792271987146006180271182860050288508452602796766798320711722884007312418905221193947219762173158795606210357094884370758330403592857122876085484016534888822657275110849721648679116664189706573909578027915576139973899011886997780860604530376538533889939184025223854097085231882923207196046908247581482579394912597417707198632165067111866260509735567276217193619775079599992553503638790269741474918220002043183583377381888076920453272078823184788150066013834021293616601488711579024445178728250950051979450473953303267988463068923046524411735458144361450555228952957896590531998503073220593932471404113519008140572569560461544031330603755065743684612669023885088002350426360011008119955699957095730721845771139972363166912464121144816393525904231619688236592540592240704583942085880514846964779853256696520323415989098612066329515056177272931881590723899543689202403151975153134991510964315069120045558720388000352639733867230200047420022160521123131518036039337484931831613209681310975154674284068927259292991428963483424901844381232489418039254508934225308781416094528646883053299463143134982341479793959410712137796178662681769611441369112757961041541949869053225589477868810307035149024554294750437047189419756376398182934628745020279298623867477742873756343614901862423821296653070132042173352807572316016856137599253765532505109884363493231131486553892448130279406306648882453201049903647727801613066333875748104623836464996032367517490249370834517018294362940829406836202995599532649305653225457270109155174903255234863103923258661164583697541264160515382692458222520118676394166174256734308841178207416456406386299141254236997569230757554835968456620081506522743522073383136424601927563073306376590335441817003589720810158881160228313840111432041291302954899862533715317614207075285583453444925405851133635978008062783482829454054421608044318621853987629778517576004567342919662146508695602244469839826680504996653630993509028216412611215488661672075667584084496371728907449982012240662284808365971727660458264612383521070527627335849258047556294759468584173908850423197425616978026693682323185024653850667767726838438628274353583276534578819305906305189068546588722814402426082168069796711636291156396979694715572225844501337884088610156475945480746236653745030333819399637201953042358331365159203471333175558483423646264869187199634461473099306107171576184380393526594493155423804580579980596138371913551987618476083326467452085285639564306506135294924773385676253998468579603894807137884122438632683638666242086701770964881464622068675962445251441021246900211890642039741415705980630300965766623766996851485894057985504653234956619934901752719978862983829440922395187399712940257630797233816311940131599066973382252406843524120241709659461152721992696761856973408323526666218920822446061219545192880938069185983236211110221177702328581083568207683379833000966696627292150702313276128322005511822220010938803667344910991919116237986218684193561725280286523503057799687654118655776167756785654500897855785984834030574202509650866055072139008792578974373418301133185626703876867051024084126515609905299957933902048436624570381872352890248308895714808554606001349527482610922569669204190100429526898358645008623474492650493149642413618600542779397536751950044968128268955175027641917143499385553352689822004359675045523786221742818163509142040708530562733012218075695367582623323777381672985719581712162618181869361981250356593455107232994819306620649096158566521138610970082480275053404371762309288338261753142050278479177920985352969304159159348989871988594612383278367039160704024929791104987732619486290966476008223524972102363405924517440235456690887596100744606656247369734095458673274392311471517751649869562363080768917613773603114412779894874496743384314836307728073430676690753736416100526899420853972976566871175832188764898097598001090980592838341764442943620323408211866097424793167101035578433806123731684368510739843150340287875027239905498622025742026941087610420675247004312172329338729490563730613696912505731474725471361042009507115808357908696652906866160809855981367122897031820429041966656065824777672955675254163382244090936716075293929896156129652951463490947336294078428939487799861418270985682411546525251790833490725438013855404514359938059505691676233840159731027894206937307285381158212190417868426268271470696128902385652154129172014310116099502699278371047975183584849238886857742187277871997295456748050730850643067182658282300784875496745431497605218965937155708296557869396104704999030488504204296598240462154583460398267744144374009981784253464678624683650150011856756010012868802227668385284782961900361833393608993846734618891268091442233464877686823812228999355028179830544390169581340555817205831160512224436921735663383295341503077174129048377333386879531637778978006278306444275668799573877714039633147967476006871499424377419477488973550126999078279253746090843866502149613402842148483161168076650647895240202648872458204142176362631440433459531229749336482204166957874014741758057250476383032624449827660202075756948637780152029575448155670158068058281220037728825496139256537702416793902021541874310758061555880332088546224824450824055708982104925964261036834147878468634893344463626837133106703526758722374160454785809131958723175501690705850688442146133282501670680983776755094300947103401382745353914368689445100129538290299262936268525731750649730637896014189162218371897071260337742101185398266661218021283227371094206122576726807455614910238970328908487193700575031804159255831227358915364721709106173022561518045514870593013784112187512104165052266854723611539340551092992493463689113343083616031868668050997069525930705439013906466376697737916494086364149611112499552086479102500730639562923378358422043119904463489940164563673129615037025882084834444631104480749184382383469583550322870589727410517640751960966708058197153239064011622947249776720321782365575783202693692911275989380018114474291134197360101300969150459924916534172936260229660938579657206864407047745238726210093233583626962203386900057918629563592404495122383102753546728208347269185996378500589609852548854020734366561722731307311504617244812620459323010807096194548092779623748595662578107776371914263627517588550118612075571843374133590979097797095432802673272614746641172774760415203506163004468917137862960408767008843907132829680807673399639695058790390332883851667610519154276904133574279316379762905568521872380081465254727598937831107790039802298868450608070042072877926583955443152492090329357232856329962009767605308066377693901615781616192979497739156532400088594301854596664699710982415412724950304681068736834961255864158714200006930534341416290340917034727349137364879702013733319538738188881149693283594167825108023468515087788866398193814387355081488258283065481618845513502719523810413218699181119463161548557532699550981301592139307061202305926916657522609805351749079000392715696989332893960324619105184198623133768348355034813074527676744373667005304522919172874946969209953088311927591578262507055882936412660101078052941042114733934982857165942123220929325081735961266397696947313049920253708852320544942627042768552295200144939982590753904303437452371735053927893790978537393799831312902800863041960583743867002946652331098249142452596148453867276632894624351971529143988529604581701608349776243137059444983816305166385212752763076012775695294273364259385868059156293720132148159336699216990823320483035966758217789106925981073649632401624745126940013808210502971676763780441326149461025849695266884546719404824958374986452386962533230941888020874949330332654572246395094579970963069980942222131672823933269062325679066571671187882754941785397943013003941980454185525664324431177341381526005021100040168821537470411590886533117345200036953930907121285230261266111178529599254653533490089472964156333767294248283514626721337041388751673926373211386149795450974089528333839192332567381825677360149963528345395830765586978022209586984763825437688941921739136255379666068713032510555994570403148369469233601699854590439929284841470935141314548918720840013844851568544699293623292826114184627566456300288639328156274308979881131047229322415215421717167113179183886917898443037516355210922782941634744323350717238320204745436889096954012854763623472507034551483659589801526086118883590467074752452043981467249106426704645774584432105252593917315174850445851959721682671251341091576421941225019037315981646767849086569507084399150001179049248336202999280185528493213806212479647040303701953323979893371775372412489968201139280221369350741376047823788959072993619213728264140020544923080725142989110002124472824798623218905496836932361733839194998598258364973303993204873860649424969225590426217466857800721189508334890522299612667461809405304127399998442766227339495930991485801891708270269657463333547011271137067541494188036260615282648705460183780183515241190426321249250094336081820706734406307792636358333213781045160079639193069742786838393668584271124652711902236813672940370344369779178182665931584308229146463343956037158787578131985588354862913855809598485130505719236967693152612033987769828523184687010654325771240222915986775310678308195057869855571236826357288226958837355403588330484937263268086122838290061997610114383506176664934208029117138697651575015857862485344820962099586254959763305277394914131145228068226133563320953482856777090985256927367442941987387358201179362903449522128335402155146260848866591386407834265775654574063035202996242360156744980876978053296350982285470220347732340520854584794000111693439467761791248988603791091165610914306194897134762179403946388055937045121639676272817782211987904924883060123316614864837957921971032335479897556585906104779073232568877241055868514788745718636328646067341800763902842326628226503282356342920313880341791937872384861954922246192502579892262493542548710103484488436985176221190004356782899291425248272971299402588646410522727627309086771146117535755461538903152287161602761280789111562907988867647928604169187497628085431123606509789690107267560112685649505056637492737814655282385767695179022364029140730568519415793605462006032743896075337575531550420966798486475238043181037607625003720684408026310879215944720931037613831158308691278389671377972449821867941284523616713727220570784970410068657292934542574929386453602746927611344768416117694598755324429099741604345146100991878223932957173288874834070145309210268996172056812973613884529428281630193856496382222222019841761791345637259929527220256547980779545257808504259103756193930149924904240592787890019511879565003496788237361257847577967655023459644301516133078973230262254438746883846524094930622918160834030900443132946535048149591823329754987437526519738091936690968396867943615349350641447373101114801093010237980535787720107111194904481398386190288105596772960737262211330013406446580350369096935899119476122647218433068118040089760972626085865535219141874408289435226323438375233790504321512422539404009208941839453058684819871035371440660361916662103478874446103990246213782997850706227434740844308567906091805647702254355029644333921132724259049534971192487408213016015875581370356331416262339020958199462288075721176345866821153531198674932810503592027219249705002941559550867804996025441528380437755846258345903660514652086613980023595376835589137842065817726049748643538820354717416547120636946214777236348344173944700429193906695873336440487337632631352892487931019574490333807013253162370569516496583525590635069326127322224423356135578105150760166358527505593377996522525252021596007489226168101955343380449239481708209704032189194225294503712367656372743078816723240224738222828255666994104299842655616431056196634664170288224543646774971635813909607759313205702689917573452357867151082627395010454626515853810004005517046554427851162150828515799398147787901293020308572123477340049911942947842031895913074460289951256906015722958831406138989762256995133233230671906697891489497741277021348050090839435308561970867176572285838679298256831713206385788792897731936867290622907383001692753508235409577147344635630389056524334518104345755226726155589221452614893858885964851810493705360082190840735336659456842882966188382335763377124835999367155154846581714812825753554412098552475594608745379709406674656686612488235807040303472592539034210355666810449498171604931931564978578157436482001189573698750082996419991143533620158810584449718034039511760042735746005122770197122930898796204822904998519240971798192559243257602384000422599168970707604462050078330891265869105760159800540257483564971801695582765651180209605567323973738312886085579486847310066754099124248439058002825655688504587759643017637866275206033316719263005161667230742154708221169662188425746850731593626496995182392072601539518671919391698354177123272093633932930104140043012663951032254975027712436263863883042581631654635927077641121626177207333136382239794081282982258237008540844511321123876544593385630731543288370574184543974326184967312573614453393346442107150980661873583575911232744606258689088408355518074349114741601022854633683481016802628724535662102974936092749839347252969138830701345587016107478425696118137407710097290949094836002627957142239448061651165433244085693768037434656033167940039527192937414264507552836029701176052954244855279590200769553830060547408472552712481941950063823755802371659317769939764817641707385914116024971148115715307476901768102542183132766454740097187760789680123688120252755634649278589076773274410781431534576894721164620989680173703880292587307438069521506484400334825486196268354954444826951765697066292091109539576469388089775460892341240373724752554737139701600290713236341063901999729667712560115125618404259560723551469049551726402465439973288086219283226707878849009664431448754553618829182258867262820049125060787261140718662948064870772406357195704084701031194571378093012035683789460561390481287843367346320988789773501533488588520657022659911000638066452637664714769838781055241316876221259277602690176311627573759875918369252880213492434080581305373573863822894631617771433386058127992416240726385214857115783532469138556717119186991535228413786621496114668417441897907059737688982784078749601717334712171413861783698709681159794717902670193348031826449635534626928456276659875533200502824702924983399448717916939530515777345372609860409061160623749170961816315630246152256817735508345527254542245493661846908084287801405769000112341995770141981581031201885392195619135791763046401732473939603561943728534680152044568425867479592655302784998062634722923553334050500308296592407441700945074134694920502639601928951501000256611750101974269658372116920538369482075878271242702006521927071237845712762425383197399911791612442524149349706516277563121161783319907127709940750134738914728288233155034728045109830892999959098085815825049734006336432188406690061948508444246541515223537777203669218156416788002525294883341518696734472048655125692984645749356396085437580668053671800000446364442410967413755902508336003633283975721787093854571956927994229948615584825429620677146724586411942906269137824326945197075425505106144470286385798758494983877261758498863625086540682820026893164695266987227877438684424329652118644139027228511792307606952893675880122910967665337800205664264007710405687230864499055481517217287798208588359018064811126624037092127879249194097486901279500342510876705403117500571356658169876231124746921772440421404371021920584568122253828467281905788780916977501227215990388144278345490819478169244611945768993885810395347831859459085025964140034346391682065163813887060428628430999222962390666535296484895515418879405388642744326292805200700759750802073270207275986485018008713501670809920516115454627176274318722115551495829073249095257571329460536502355595165558676450786939405209065257233395946728474447886071266254336743229752171769809704905712127248211223531444122634340099128552708244603600476668169260566360976618830454779637980952517652680541463374167290705971666882246715440033658801562701692838803670284232544159964265241870791390628503380478378056967068075752664696432909103425496390866587037229718786305680533464880810077545161283835679050204016551576333739790304152495815639476065117223954340568426333910801964830952181927031197858602776599145012177348581699644667592270835411259255470597519415232626597994270586903189732634811117701414116736605411726820210974646046150119272601479954231466295700825587429141819846562873905014911434459128244069467877015831375246313442427800147744030668420417381521200430389765402769516593633253506411418127584759126623560822848299144082494280602660806688150365274499717080706574414051224224410939826904880054613837935408874201258901608814664539522761281383207855053519970623471660465876772607403602629752051453669061002038522160276821721240381131220079497132317086982501123085650774099864084768304408601107274769847439778208003622805903497651003830795304792565855451544470238166454077509574501741790607332355519340242917851382407368661277496192796322655772529486222192240384778509224184145801455292402102961502367104083222283048218322623951161956753040712492229297671317535465942803411336091119171919864232676433602226057094961439776528476035146349688977720118883957582015736661425199168473878877887394657286055992442306012254974230297735589345682663710176637724220842076063998846924006829864541781599260857930511141051984008848590669032023246536857464495538338251638746008699518735505268102701683010061616773028546045242053944373646804056555875272028226886304218068186428894121788520327521570790044971390268712493464881637639306435126320741938193315113517623098177710188360778410294552788036867555281704292371458321655536472228551151897906744246795304659980841740594260500492797164453074903628146545721966827750790613353885166216948625837786383845090695723063843465986128700942955826065989063292271798668125786709783129234062258387525251566977400489173765566167156967639066260033406101222673997222670304165263464948790323280421240849529153002271936085672012578493931684242440762237946922814075404014750877776895128831039003365070523889630669479734827062806936168687673168876869703083182388579324258597520033289699480544972489847579274837355581218083603892433929906373537939550080149094087720297584042615688102431658570810678551088439805006617048256945233444248080777900340656224217893486287432760518150260374886597048903291181338533599310078963681418292748495407919677481533301840844933731965055869927793743616068984945738732922727054549620081140224138272386701712131439848736833655852928935904344877374200761699045565555765499524618572088360656080229917823232240377190977379127294926840082470656188703558897581742183898777724568365493871423667687380177166246160425683356397390887470705108605268379598314833674090050276559372899590813648408660466229159138310836979628185413346497081928052820750829207971576290435933730065876978677082080031824571651044181859795196640114183836971758081739392611673126171245310253787973756295416026961912478895781966806172876748968428431500455529030442927135984352185116412845701010459051914255343522196430943839879405595962151926114448057158801342242194401944129629889986136111223989081623006360202614796867023028891422288695640444945463084872583116060961739253462493438347525798803208781231319994309079773244977767688157735471880274929182545220542896851059478300404346072723709659992670998583210359436561996574635956199605623848509532348456909742718525571730780158075209971084045728655516344685515166634614263419345081363288556548640378178592394568694837964247035153263424719518373880311078059061542783844805983660484135730237673034848497569225486786284991036925752410032255347244595890561958833589512050861657687836194033713905838497534815035068370176082048475620371692042483737058273585168621702280008700974155651550734145095654226363554778797860361912460605076079831233785668783216289999939629415284594498561197986437897593510601178686539373546186946980263188091179477475321501695959562225859343048606913081031022879129620185375763614068370204448031871782384532996739293642265190176935855567816889453716438397807286108905501528103227677597498458584981227046920755184525490820330421490949741567136106682288208088121476085207853897862119001575178271195932211898747903508949490225346107239046575497920738653898833795186976453407964836680577555263427907741538712686399200008995321317729367319782951170269124779092854788948540481254930760348588276072893196105322271370349204755330851092424331400967125712063067373556066792175825169775361366249775933007711240010857759458495484033752287125178415678135004983658435991098435028148702765712127734613766837334334956503730943691714792346759255000063599398812818402974549289238042616189469234830490405504314915327593540710499797038844086637714123011776901036628007458176216154477979628744960656495373125535812505925654362087994462036114485288394378375460618981600943763082131054052041054296056046310082291178011823894938807500989075365480765052108895023492583232138895290181755908179212461418070870383468631946757121601917222706196339826800379690993412216633261492611555417783080012001838441448471214212857799434724374046911369941771894818359220726013640398600430654200036937444819587992062809711456550413938539187098214684145864926886094611753295308752171049964057936246091397353952598266244925074155088134794015608126996498069161261567858049076183067745916500951112935739018634455654193547656017711547097944608725523622247429389454253466689993889281683120851595433812990849378853866763510934245144450060319685132203745069285027396237838046066523055484662763461108497543616114367054671388886911017111402808727904898524670547226832825352670758793199894963129065929662495873210471608632130278891413844541147537893956880614459539143247891697940149146977171353039661233638749434593159843703067548591653796137706728570359822830510402086300036372725301940893120313989309715727239264721614928105093963346637965406352035286944823358624175842156213552218142126639041255365405228963005937848519979017812554035664727666984233606810698207767844857502832612419405792946317447301962253775333886786939888538689895437734787045640313902212560230844978528835336376320841240224885609717812606744806442447022633098909794894651214514980555859098135499405424037140649079404333183674556625523735908775964084302684114825531326312575080947865277981582097421202586499713209197538749427533522183068346378800142461710157154111752147915365047831020216559893739962187888368275366158306602481590467799151598804495608131042265198593557777726815180356210519709313532452969589288287710531364390792476311246286452113500064812460357280653556032517996638274058054957464240830570477833474515428100864533029743465536001837634174887004215384324267778389563636165693912280491720464072712983794426418318456164816267792891776994033773637947191550762944414110602366995760417840345991314512279464036786169753820039982430701760521047045568607985684828954817837034603273799795083974053680814812163297936423775129999172207832281077670553972785498594653630580833168376730053842666528326520537655392359944802270307815272366775212173429234234556844714556844257890968317407597534635693852077647860255175859848779825324494037172983080139284340833669597761300620077137315866726242165578862039200205358905259914779511193451235977848957743470880760417746175770060316035512997026293880112718407384809201740529496727071632376291837372402091720441395016645812751746341599587257798898011332554579155338965968037636587940564508509463895465317768857308367703508983600493392296006716148024336156758630724671732252916022997469050648286668124916426359173621791965637202605829027182590012226508248416262496450053248421188327454424018751177219275434055656070910832046883731556016382549125003992891909788490627879813075247607395389623183530728940656059832003417160340284569366348097820308760624703165840949902872863219439313149642383352018144555045220824779729788960335957144671566424145318191243630116457904794365364884218260245288996576902933371268804219651565083166332073746374030956188405234939804223821885754587838724318635438292920035780686698025184461357552918732135141580070561170416231667603516438791446160717126661181641459394622396853252555566806431123396743764818250624552358127443152755346556965508570730709811231381355094500905606126768003251845608503024378588664845813240921674507103724437270112528606260382462888012856589225734819425530278503384934028494629295175909490153336386577495496488629196801165451262419590231256970920712971135550349120645091507858679327173614570169725489725650289272102431672911102564435475012878727274106003920745586510795282664934450238439412467724774864993792927601257218438067346629466494295325155546146790106790199483085440877517087373525117276923095142624335931451155715737862556076937907827969677812445862976784033045839304961414699999209342515052593860347140607109753934006741245301981473342914723470124980341803878254445327661312092599547308991094508547565089776015611531641950616794121771213850435956285435382294083154926573672143119753668379753427787379636204171021662917472508331799856264458630480633916782876730397839958808342533738977926499635150244494747610136888586416542037324577143967088081520590322253511676546813954030157837417286768279367293540595473146036450992723493810566685669848981213863720047813901485893956656556133117551442907982406111663617846020274783802503143326124899648407199065469150685960383703822980664648014700848632967520908444981193386853538964300721535994639920839042180697953240382514982812064747533749173133963835965531996142531017179339211394401404028937760879366458936113425817989730865095988333088086582372463903801959237142607187816835786934944854325108024956716370119539479649929471003974474631208140150878257277995461184017861460467775415021691942807549266862975209810893902028488233430236539579115511267930920064231661445517855189574911015143076333152905030870087094935963562667593447952067162058713925689825172216823187585462097622735937896066466457123913164304412639190951985291988761762387604758664620716776544867778348956481005764297172903114531537800907775388995780511158591741750813440383049085113564145141290925491642369206842720058801296726713681919335248939623302628366298018013636225214712343467484326903619731998172010049517764923262010020237577219387300563527554866206876874178600722901111467250491490047300908750422562910704331694654893551951770423985425673993412904245527801603135002668557345243545387798817334226559062747576984231314583196329732554487000388886051691559988847954387727340527249507871977613042404741330073629888908501307587782982488668448454884980810315886519623227680089874540801079062874777690860908684787020546866965831848171634192808132494781547931028223402876612900180022862036784817407952999789142399001539824933881209377973185855007080288697223618367113992020336947316803138846155414218139790393444117399664203952513307254316785178938066868948112119397663192647986315069518820731925359140491871610362065954390406624179365324373702014061404843185663231111568794799077870799780934388580913005974748200600189771845782553993117665783832805110258991894937326599108433943851233158807570558348331493928127527089955022215306287033301248498664780737525596289862461757598210470976970494512279665020292285446907363778050982112272809795050488239999819681645100360479324150478835164648222246848431595809060133712679363847802321846460451827586981656122603696881043015718472679194279007852518044837621543767964033047126053041932202956555327808774976267095718135356380488654365266465595053588127728585618985090733822202055823927932511756827185447240464413552616980928971051866777513536813648220403449718712363891651786241575896089661793278104798181687586295858286492944185799133682799022479707412733288653630728486655247131640091336811654080480438788266677043072606954731529936076366504186800021846952422471941365448655125251836849344272285655627512933122663568897002128726829107047344768600458656508934638777407173404900591252022358734023168278579497773028976776238429577252746856841517822985545000466971362291340498709577579501065872282043654043090555152039094796718809412294952694515975525898800212242942768916657745116640891632889353586158958283642390528004594886496847739772508003319151298672527629292732458866292580574560940361944139634104179946477950641687456737598072594562652056430307919428799394548015588614596812257115187745359175444473179283787050081794179064767906810236216665634368647128872888122139319428706351958865087990439620172366235421847234212271883851893882869213462620738733106667998878510698714546603497571861207896736133423249543812514539236426569449290720959623303279889398665140593501391857033638580376209380723238380891066410822263837649380615695179955624964238839796984647465385584598373955970811020732897385818260353450883125263570401732127144404116394805118662762902591476101684833839343527362925516331905890460536851572317102423945772919464744870228239652924146443994337807073535212808330092297380810958724955691377724810780215027633452625839931274727578467042597461785288973352416642896051133666399913010879384035716522014334782488319259129453507571112063125545082817813045858514947585743035273172436823858518994889060983944357718275533335227239551523567552325356582556562601584684412387538352593327597560496818728432850468438167760549895422479977093843777037566820080927743617354427793755974370891392361742569275968120481136085014748794261387065218403759316538601820854946316871686791907048353430497219432388797492975469362888562455914649760348469227792901359139022329171951674197637269668277593531723373477838687866424016706993383113542846035809958607195176445192655101105868178722255554147613332336435594613764241485959619560405535309458734638451347124521274415198700961988735273005132966487721921484069065405500725224129796276516789489994725379392679899433995424074249932724187306456520734533041280170814323397009582557178898524411883044700058192155581422820529836692614929978456285404577639326466653862996675516090112495640087155430928694139609034751703236265372726375279766201937313546475525485996389027839390437407146677105777427154825377010297982044380789215741507227484200264831721303956703122946578598635110397245089563954218883076492439238636033781177554384407614391006467163528825891159302936728615371188128770646686519893799998880874040197318793532042164222265233236950761752458438566536117729786078986664091586985679572521539360011341931836251379221229759162294311407531585819722492547400586917119640661300726314241435117015824288129917923344073669147990775401501606568577778887395195890436129481466366488572014286595952100267749832401305511829663586263421978275557872049021902390871455388572381568903028222241568985705440065802223633389093196328227719388012500044346587615918161774913780489527226747649256749244010120394248650736469440894168024190188732848177344790821696875947297450100444477202438255431806318092626480118643996751965095192131758604014284802932075730345331210248852542591163086146309071741484113740993675978682246474693212644989487125034034788816477625823786704155944410282384157376784403051535855731321590636082081342264857772531449931702473806593198902515494602627615001109994029997630909705027405476218982421122145475432778522058209378783036997804236962335213756450876532680541424349055737493742206420982928476680165947133998670574622417086854278064804693439823715502251804157389422145952909264666830520734169255672701444812347558976914933196982660980759855593411000464888220874757998140823232280397207362777707571165240394945327137232086423077409625687388995331051260411082006638797544158610773533908254096066522377308479246479059985612117675627787128694737063172840597284832867252182533345867360686099146499332530426818400563625187869393653305305823408673780329005374202308164167530566603650934056797436290509986410108453520448117145258429891317498953652200879025907317318075594303500647194981873430155443418347425987364737538950763244481994567715216721966016565462390328869253458065963646427316284425021269132969845084311235677360244177501727593125184897329896201073693555803430736013326451279820609342866027569286076588351292864182573145585148091381845776299414727812902715492126717953745661044573798172262164428542912720639272165960225795803152154758414608495232104456701111605079605928856777321528995838582326786459903825168137054773703854272478071461517068706794004110562583587832989144595030649853900160947478799554108277263363848377920550873506841564983401976852660037287883900732020899121932315416030374458717693718710317929355542829071114205146128695175426786547930858755584668319564318375596206973480521489504835692289976342501855030716911446234521838180892143389626483699768524463065158407018170054417618180493778578915207055644723083505087188548304095737867350293720260597563856610953620650490290466683685701230949938299901518598582562224177241137361996100509524898435707518975163484868719951508946157491754380371858922687545247876668202017886419409690494988214630934429566858864199947409368947059114721164510555099482727047665896101155744352537238583799486299712074185760667668062001969182780455107563461020232341696182343164462776782998606138034185919852394608234399633607397706282180229068170194093296585984042896995795824987327887795490261887653743998795690077818258399226665482679122049239266542257047527993232660678504590544047041787173040680785428955134629391042083596650582020126910800450991427158740394775045052329309096604529050310554637925098010481533836763419802259523345962204376353957629730453955506663164975426463460561925728540629889725068404834844102845448866536206475930722009601257279809573491934056741163619457510352783917632917942431318805068501124328645755370794028285405272709523317311388076553746391888180156609894095385169935170552985366410636072826226908437707766191279387300571673995650669249251765799062131047535489175201107293976476342635137020143194059124925127134610906060683705793149897371702502498496961585147502098854907711362804056504091318201331159824113295378282128051927002131075232155659527735296136545085735933752847555308329941678204656335667087514018399070516882440619775485678513045203517019640128733777443560955579428463186050109692284559895569365813258478321140911574699698558024715690431009712400754656599838453704548295324494100906419827341018837810194597982567788430349944704373758189353941897136590958135837042175731996405187812357629253912933295270297821596392936884168261621665741050277134611114566441768051466819307789281173428179959744825238143547372680810835593048747077849987565995503935568894703355838050239898135316351005148101972484581192649950730397961036043309379520575990875216492672616925137029264226420157601654734744665615911195494106438568279204131764734484493277648813476820515530441535412057103204324006929764466924750538517658673669090816855437946031047501007981231754827141799729317789910327962162336958084444718438163002504627139249539040705651346422194049534309721139742246023944996569160922944226575693621370102254862372503587940304365261263643308040263859850857509185743650550960185890673707094169206462190180424872738865942089925596411442601873423165584832563218870961563085040486551396013217363795007512524013685831666716099096328451755847144200711954152925609989010883481223157319269485699723161189739140111174114024190408181383607417661873142816075656235471932560181714256850036582038063069902814554736721929431031992588988136933976195923921744424104167685856384915532433400164557526823034556047798887258945487891060722890756510618902469168939204069924278989610417911979610459369345112198580203066148942293573612769327267460164514349529166151519409309953686602715693603040664218232029378616874151686806414839339122410043363354029873134821846341208847204577671477785956315151054613825366891893069992684947665365893948543053191124237640173270783784711924414305586581809715989093007808055701836622700567148361392559325542962085496715839408280675359115037689763362567635740447898729103911900291843013542741990544944375518352636396231435142552340134193643448845311578431729844926549126788064911408169642776770965201492989081762940333448052163563621421798191346501770072280255079122475062036727344116893116146364682729011727510170347290919937767413517401057659566514093821927607215339063425691865611674492301734381070119743834291587782043530652147510466435067001098896394832309313313640336988285763358159447482579155058206182579408580885057747351963396282927040819825072907889683381680623982114910142888152835969845215286161303003704008940647086104029252705589297048068314688949017312772152377811288698600695658086488470744023002264266206937643771146609940225437818088254172211873378798969903194076827651370993725027316948700480266294142693403889182011329716934654063186897899764745633876064734604649570125076059160391390008764335021914560061112703167233326212853438545759270326701427258932290558633666871910018315841477728267331781175976646619059261870105129595367628913565679223093749088634576406687233383798332292745734499417843862238733325873672584206192787636637546359497583222821778993155191537886887621355486899416080871314487174888457463251082007254213327626313597076937717076501087860373681050374930075969693769976082388116299842462889177534873659007923380880880666236911510249889224817716653174302881149280842988697958806357511349798962413321988037431822520600168336467797154725725413954588995361160505005471836558391905804371097930612733849576263106683184761973925536812234224694543846131256294510659781519518581319048527982123519695448534438137132550998253470931935692994964493210675587983914554918414239449264185697762765134474199740818960110611337617099602226381522584688242285708952266578918071826142734541891151198596107206171462157123132046767995796463671247973785499059972758437193152936815368503440413905827812032626011969198647892033446103185303459793071364348497044602632264760222375174243473227626187367901961594036102680596499559427104672789397865468052339429356710870798540873183346385986230744550814341441765190696149949909485657299029310415841743790607162738996524550375817710982382420882494582086992788494372500004961424409863825328851983140394176671256206061026121437970489410350551124390269673809892029833792476387120696366133621704644868376930148041415674229829188898188140195638799333356777110058974568384761904847842937465653795030509454812114860866208352880039314214406757959498147874296529467501969690022985725374567288341231023312956047850333399617176230348493977895835347007099747083301697187888698824827507834126180418798503494025969778939804748825855942382875863196367849455264302123259598695342633851831813937461519336456361727527790594115113456795560177718766017207296101378930154876784844529152640139993654768001960352240671951787420017028887108967633986345671449880821384637986903813908570451343649586470314161264609016583684715533781450665665309227484874593180000263343565078013926455836631881527677177283969296446702201687225595750843180699982085598891169678655166357201418753364686352030144223199423308807525475324364069934599923935668907213938828219605916946820978782653509329714307245268874536031366366552659175395386317973159251651714129440610355209945660987454448977406664904190410996458042308120022807333895756924126869541539205006718259770946391183166993273162031914953567957316409413955542417059531951102826150833827200555972716390380550607581897245618707721039631029163582483287172634032619003960486142075932164839961893172688239445576526354061290175848277055552571193606783491080093070368661280583233552920823754792218427295503286239621197129230268850934554914831717457493872797899430765463013611974165328319598152524893937897905391276462898292938249312985543183078093111296404326081556800541904494963584681676754423069096534178652271764817145333157851723130846320568611072391079514167241692020327823268511838788450812350943680636165603205974928001429190288250271981328255657704892627336105039752845121232408081816665826812752875774496876850600469035875008954794765034982937830691800400160251117739554394171845105320139095366119635278363713878410399352426150158352039935782374894613097787725516350485665136306443917407264909081018005458873702234376367769192169282528964343016480964220502522361520325142675920119281078733174323412379992156977049430060885853531592440485256761100919044132525320930718223859062115990049080835630004471688353124996185392281970633834099974178918716311378062890828861798309674634442990543757588710685920456505588313289186460825758644055654757634787537861888336456753579472653036604031836636102261020895969320116777769108710973365920365945725086484425586170158597729007779909919106913561113373557398619984495632978586570730531900424340413769347845590169482426622996447312181063358383839636473306320388254499708584048659711961868536515721405733502549997742701485281638406151771922025815337253825443285330290282773601399824387467420605570956440423435390369681714249614411750964765912246573679959451094882303037652359713473776229120021475971200805599497901851224384711067107224880167094484726437366912415851888858613848568355924820177697636187328888768070358930786305798761671770585230040168987695626701719320812660984506147790870767829853280069466884449510966122676874598174732012045743214528707867158611078915485197433860123603871366318921197116190280822909403879921875705491950154773797860152544382382986720847534953414305935576806482400697100541064060598386561366024851139134086653398456675429344040505456020547230585562972105800434942458975598015033121420450705304671843101187381256424652217406327554820072665442306986671146560136865724387168517172269263654579037030803336477210059755986747185118765538281685172315299827681557297538801390817215144453687048437530093453649934143824882411669906677701351570571544393942968661451271181606484909606437877415345276806472247198712865661781216252877089320725572675069515685316624637914765317997552536425012347763721747218118559507119922584702363113999536142873057396313817452810505070727000207110685182509702615957001688161434754129169324349781627372901925384167904060462948913584165147919541642925985902359955170488967228598091949170822109464625508822719541599864931836246464782127354554206938291364441561145400935530365090018076706090514032553536790451124216670406623252183320358653777208563782640537241133242287513980445843515573702930033630817842458787556073795936335481002529814686264315371540460795892004655782287850115152285680372570928855228612488073089251136123118721687870500872299176904920388177692432586338822217679501372948704351450859961678006339918013057314165667329448304769577009601015975866176208173474896289060609161990766979928786910238386559898114956729957108825662984025738492337335514891386814726051575053157851720958167273439342387169004803786643879719436022294638862363286697764025794065687435787776260889916620032719852135105176264065089336837639122314310040850400611980901350536643062741564374493852337584616472345263357860088073924368595828942667915801967474567779731640517952152032335608049128701793144536221176574726342691242869415957525982108975564867439830462658937650793640390272186661416682329610797222039708042036340129847699588181244505467055625549808314209362109709222428883535947792978718926028185382117453053905255702689681463187188579758680483415276399001294517397781623145987940129075303188019357252856484189774016283963825916371871854013161773781000129616201699172322750770590745067486871005294384132029012876772257844298233030711908705904669162084945815657945051472783261275867348537988173855023044620063770835883696824433288633212801904069320212059615784464257458919422321147462986923462614142694938872473970311382967038066489172937527093188788369591144978386628171849599135453436298896149009486471788904853710159525666312156172952345574249111724196688952867822857241043190827992728374054948462340871819086358185271595981889787679060094760344612276386899648187618941832582522539875025747933425077121987545025703875293259977565641111385229744433198333823609418967278885169797518041235530278202251623555731722415750937888297866383170779311398382130146059353477896949653316576747248906285785228282544092045648557849427831230657996325950023731632155555699570991973093359303846678997449104653178207180246435864817234717491337286319603436993087372205210148319733406804640302597659851215541648379029416749188152440158215481628887712527400835474443915642432446920361096979898458918611417548664888530920223020108628370547156127621774228066559253042483624070503970837892906530306251575836922789420498660718527303110324370857547433335512139382372850392091682157942403352872997508572753892924230244165218945908702284134180913307104699476074467877531531562062027141736047231877322530035682649092824739889649774130603143372272489984012419995059666625006882195276341383375315631676102822290109278995605550162105688685770753509477044551457478555702307190379643401224813300442223293625301734252930375954356399700682846222665734169543570179156107132588543975794133246830868121895747422711110154298819587524698534583762936230872061702089111049644374948127168053729803625170664693400872655787416494492614068102596890895731662489116687808902760673925417150922819777498012788122090682088907501991845589842068809180947833547866229696309076748292253969400341037417710790064527198191616674119835959738784027709799342790612116241517182509226330223398128774192960372672715086872727551476063171553723777321577122913649891129067357007641404602245090384018616272441586148707148599162335708943880858948953175666737608219905241990880393723490354465154446155144793370077316432425176057869186386022304106747589406719740276623140937391270892254628237961409396390671838142141316724132800964895204274302752340517275379838618894705714474627061280439271340045983350915226484454018619147891064032543194663357152174903252097355952955222083371919524777550910505893175355627618901718335715595151240198167323293311466871615604977961511866998186667889932186744551511058094443402406013572178673981074352282814887337341111625062490551317045091403035020456099140477686948171707854655358337799074522156003690203870478767547126534507852980595381497691950028562035224547847915956983702910241225871868979364844692419223798799478604293508140804747971246862643172519631325508452796206459815692272970388996186293818274704033097728806145284952291732028347163468837621480923372636898597238904771644078972403228728806564969867251323864799197044241310235061437050109308691076171576839172820998708006679350409229260718166774034106751555622249737899417383979057093462670150160309347673343853188526531629908097886745540221607445299116360243039623818001039708015451799016300190541493108353554833815431586761888587632117963241486114817928756810593732665899400583990116835813111919388222299341992141381132480367313979943075773830437982712208027445044589360604282323598542699127132768376465950183360159057149889916796672012017245197325003522686749687625019625591062999142349458624525788465053435597099305925488018009920635299385708072428086714904313271300129835480736690359793331658212527775796655437989096207526759726101344100678013833208548891667373104115237361710036207582170915147038720485982182165806359496652501583818055501634871879076970306036751099655009379401572906275415271428907807805820348898822918449183233224440738793896045570015868767170169467313004725788947767111905646419056359486172196195353141974223285721171492633514427387514004711471970613834034942122479759050329837915820978741719055962262097014124786892016009847949051949609352588772853935359733041176640902851063745869010714712200578730276953509024376521441141341609233784525309764593317376431713682385322949324429670759974684367199817361481849046980320622780881870133736521693874246353095172390994702459475827263319569893409618529639930106396086542816990787979938235997749226971600366234345703182660732283010125985169400023395784377543860558620040721952201505505030978443614637636358020275557540337766746525278561735980085398372284195737335186325634302166665390652958966309120087584176245432975496667527714720557748971468601116388115401799068175051991581533041227233107363134640691250397832143122466623969554428566866030517995052994878740311510764799562336380914349984501393401555823390541913646936098235861336757224939789424625680976936260136311030859059951435944438072926760766416887209061763803573376897397460002417257816178276757212876332623190898556853201578668661607555877793550027256336166785657177069920441008026092631882497331405766931094671786492617917075049671684098040348422162287051586283542427102725054412029179874443358449163949376449753702496809104243674695568638251496347881066575715934116758600023765010419548705489576752238239563218649923910165504677087139000542167183055878822817726129029153345651862543384456505220004361428208223076745584304015305421114204158365955525335989213501792008428345133580618585460838964741369056895834555824836701908254804558260704447051769475635685236903684604955867634563787620720525194342754725761949600156503884498309853896623790728959051642938930915203244718510487245103412449031767637488122492483899960455165075562592412942622751637457666525860646874222529089537499872275104769787953452399694930586164726342577343886672203292857936852965410571742491575079507919706878688573069306728933647354147275427075050296937115112171984495976096605617867283862615038913787158941969358101251237847006814826360232145617497818433510717365121645872545749159143641835587351089238356894774338316742223468335103503443609303786841388786855094052540469530969555067056857629402359251313696034323820898784113484017199262953626730796679307113907887417269664680861126842600831771127432778721962614488733239752374199144333309375768410556930977470916500645781560065143029571825439452213786375784368129063487952766206984220025448521422613448780149448309021491044597725666518009272167342069371580597781287911817362634346420716898210262716046330920775419547382020409029479301226978820484766712966868145481579250807696741881376351973755291067606285022852992333794444929275570965954959941511365528824643376248394860778673851766567353989705011858262298970952993719067965715103410422479678197324705782959424474648013169496813786530748281328811633634533439815419319493099926485617448848825188378955481541432590433516967783629035436012227195750612899424086952002515425509052730971852465777573818913659660862570866618541332598043147813912979017322205552678920818403166816765878164523150358518560423300336803446860222376405251474458211791429463337840050937917416983141659726468532819681958008000668421872580175050488381873662755316547836792105752925640076713880720602145950136825264709770338962240120091398080936047516175408542592908935744577155179049948737247811456939739501992540495865300433386660912133934950905680800783043279431937387056571564783598544047914975393940463889362117114227688108897473697379498281597668355018898760124743317985706087580217437268551236237115210279394256635861364910045129745337369535884611267662376270269959996816375959554405813495104442998549383311254651700244550120486426506027533843524816514648432313664808449731645911011533056528804316108469995264781174984950684127165504120584639306967637516167602563496288742653758341015317461674510886317331010373728180029133385818027563788832599384386984693298257143385637354838235041804010659668507210570017417766858138926509047884968011886410802111245335484637271766327781365929627330881820246208308853620433852490051434944143706576011735135277576873228556261996889987706598064608101950256807912206134536256118155904600837009845907942668444882711943673335196298580227357497471929853574384164108214849295507425328777204335752774044270090627779154044869316587980491033480696528361089736751069825374307913675127185782710711625887649092799107681039042397165199711939643584163374271031738616978400121226839696636348970100518744363971121354450820576423258774743467946494067946395300649266542176339652211962750511012927322891766780983645820865049508437097248160131863931808257926139824184834545034747750280609828467076807926635493595345890015453307903307792308038617846950557675505880540637657346986334053515047513736616723370205678102745835187165330411855538567642733002308179377563701454421541069319228138919001642184791892029823137780786210908508494970435406264848477423618438142968527196182748462120181112245791207800730150210582388218069561405228098607102254385593610679455409071913575105270531107207439141752581984619104733080535480684757140480182427743664465281335990517051481799086590365722559996784838805997251708182019783158033280594014776346382030577133923371923807978995761678734175984691260282758256396246058081658429927293111478560254274512969710629272684422601952081273761943337437399312279762737229410563459842568660236621712993601282464666428216385260368567844151866225360602459000464361789070631731067498160628471680186925631100535603249931639906812589498200458953771427329283737255544488269364533530668457195868940388987396066272750599217728512631981431532326941814778510563400195216552093095022281867945740077941930917432095467899459064615222141863280325424980375999403189891608855306926588062312928085600119062910755905807761516986937924285257904680218269765217015076053089321550673948034075842898338160495081687709315282849228304401679408570093377144030248288873519661622043189331602272814561776807846574890040822740535944850085161714029164453744443634783750077501609653275878299805912942733599781431927188178042212916123150941478947980340061343235263539159932506532864494145498264030967768606299179457300299961826730865346597550413438576892423845090784832013311391367111560796205461054950403709951313145965023290870748620669291442435918290913128796067747143433415104662292491003956313863129652043254304813876098180617139915874431798602943765846620331087431748585832091146106823642804696328591172035958495572833379962665838688609528612453792901996358587274696630302239048206771294551479799431212283473833215451100245758386323091884914141884322152651410461014298210227682273731394730151492746749872176762884136988444908236490671975388059898714375723734167597743732314785838115554289232856328230462306567712494393880015853783963113392350225808791336330706877695631746269240332435201728194992194938259168808134173835824858938503190279716845452113440318940922810965830176062604238691702600307199283667421579212478980523136947526296970677963944646752803695282352883021202701801317824823344445286418854662578516531922466131494316836382364355587096221878107577648618296180290426584751195911586067544716608054699990134673967799270755449154213129965100994976349196043982086769743601731477734083875557809341803373369376833583946990461970525565194419164049629301293853583855216468720621382793045207519367602277893315384439813165977857668832766693081391801160310277879603410536752561242638330158536055348566339097347794048209614285882672038524539213073381597375058135599006916867571765791905142617169944904016126480536779435521196367389779378144774916961416952930107712524195698866484371443849447412232057070756400592630545213001562557643719227176405911325083937337134562283545952120345092529362699792262555760694163207488246811765592518124004423747465240199801770912307445226045359630214167584348860477593861521148550884353480121755001713303185363077659606925544743135801859739512245684625759899602691679558316161131956485366095280995414559745417404643505642546752808581557107559524006473208299834137902874291616603701274655793999925522335754021683382368397518666327852308023959825512989716130560365300193863117951652775069335662505111529386405421547666975576548898996140458619882981620987312958253274058226585105964028258188680487256494840933670821565576911213178308377105039126019464246336036848959390224654340941949374879491331074005258807985708015731343032700706123628757263821346675996111612625955450035248417424783455761338655881354965534460439665207499417967909421133819320302990217688711793712407979211401800406800460285283446881043862370293369593606102247577034391994428566312909957965635016888069949064684411692969628519782206006668830049076951499992203663569728936302762360109649594379535999264673531968876204165750796948055652638705682861729524579156418404018453707660843831558089291927433396518225501271723009137207135313650379904980672885846305105276498699673079590859150865492751603421213626912276855922150239240002984199667835483533326735603160726012994515348284052477806352865932835049906213489936733811809154935831368461279431756665209004583995456703421054936249281147483221499276841281961912276044025178097733303233661763295200432853357006225876088855197516715758224621404494986255105768830124518704316314961874847691461213660670389553725287849258938434564363706609812032272700935531090636379279545593526974034417390179683405276452699634102792278097363603821149491511668138718805058153737311198886832045334790894880736063281598082810884825276158654648937640476756207607498575663932241280454442847874137660455727444419498436902041832066717481971556763990638623225414640318240909017854259812479331074137814198965329042518485519267261080824642700922505539167760054442017235479377479729386266828569856208776626171422168977438916455271276789826482945518282551793699435482748318831599738752849047200105694582108974647198267362282885681553995518914306276425809366352496682671156330006894112396356762760725962695843321350104450734716291313250100665962216626175486281330752799261958307358071077268731782850540883267653603334387697379172312249962284838214494205704943752559110334292258298653278807730122044038976554128873992460571617448935627408466125312728977329050978015785758611291490116219765544564150739521664252452493321430589066133990384856293410899094831178548226700130709277772332617526054470409408973177109448234734897295136743409019742605550333676940270947459744568344711514656429183647795858278582551878026931469420617879971669297733564847030392279422415191029962004071901522681932772192029076289763285287851765163539290586309234835869235229743820358962164461627214663830693136070530008649087198815297646566234375054316393447255307522925887210911856968340206071768888858990542869648493181185863590769708358843460963379295143396090229183040251372869323888126391501210359260866071649953909286905059387715202804218641857667806498526948945288173985144353054128505667069280717809818134518457247619425650263103147476540714834272922387061882761240010733085387068495097493085764472184125514603464563153271950251097781675170343540367497659227431092388702278661747349415812838460258920988051447204130923351066269248432326910839117986104285866286088597827650273338893940695283901139882132898260394010237672773054418332576706907885814069973450168900691508430153056146165035538101723219552602660941215345177228158091112912143805377488447871632506383151552741239238448884201151459933361988659927238008186782857019498548979078961704520019394380985619920028217013922708643774253470776500832570969080449319962917323289751817340218406892568453724024325175546198052477260572546297496152032159093017367464652886683715970634381534743005603940345372319982970107916431272802047672386085171506249032319269981773272189197776630622274132087767699364510747817213095900114882070658584228187580250497732344786329349725823551840019339382077239562763653050086595668144843300647621066380114982872386624260764888476568296876013911933724997286678487845648387542652681527329877584281026264334483093252794002886986461888407521613279358322025480809584149212956050847546037785290423994277294633714788196903522138802098687249887850947908151294781972606362363259223944078049749124390880020718406902336890181238236735793377872374856100680765852895156899368469287007684054437671429166783868257178729505762950578112848742072466459713739986417618104584378072477838884664120716093747702015987590538642699646952483176222420148025827196461270500923953822966018459271522017534277454066378910825937336703532144684832434562009866974582327366966421533663458296926300122643875431213941941383262718384101721584583620136026432429386334077122440127645294393143572703956182703247003909028673803397044481683305056564977176560670752408810921440322932106335123435490972485015447028037096586895659092861894110873756254487695894643391960600828342056015912180583051861909715503955434755262619466639560106391318733275579036337458707907289663599638921233079691972021606226207583583167898801593007424930889190331173565765515603033156845304153423093181686532097828786851818739437764800443974453456732394900085959689269602984399306521592537698267384084958910549970000462972427545696073478898155169585150867186468272352387225735121923137336910841379011098133760620178159594773063783622282416229324959212774212846136774620306378332950117283772990050723656347741454556501327387001297875615489191601138764991065254823336836604882838479679561963138821144363601671685723902175773487012177678796010021788651795670568315267611311443036080471976907940807319039688955573095083762550995646165652724599669515501099201334781338159228940671320919579699135136191234629447073743905626043084772627940030326607139765189630513273093162740275235294878538997393087933920913531574207446066882852765022799336969879084585804778759720110529375111390286476043010073802611710891676974911319299045901681410872909481479749011930975858912552560591313217948919398512493286755599515070126778023449801041300617249805096562910044923039297515475987310236596190198253662185679453472701491736513920676386446281465004336393884138080193374464306614440084510175200138367342945384628474803658585066196613940556970530711729839895052420080475876423098460918128177438995373602758687839185719771424774609437248694409487754884573431505309291512356777331461681257077252678230852520920237574080368258091371081777703028011548580094318695469654607397973531824521736553572259989725721403459235040305557996944470720068356012654528289015607821682601305854129665831589971116732482715754425462775744969619404521397922692952618144408754460779237570741042704232784174418992507763914100920419300829537880567495473580851646086726277144064879531352832213435007663669406703686729404708269482430501677898815046813959923734531532373105434658454266609052326322391364273972652796495412712593356892844306787701304831418729510351814088214190349279900935196854739814437214945079273059186658070931705449736433482422248720897399537422317469889079829955732086254722197081842080686282773344868342209735323720648274716684279381972102951854978965081108459675085596038057997255724653713881588598474327521927881511320342381557365703560406311964433147089010184992904975522229320425829636411038615877060497143564385997114376839049772953184404355632747037566079067754221828230526516731218045394435572009557032250790575345255227762140232959010560976344071446289841251743606860510977239848156209441637163938887927925114339978346807245928052892897929058929399632459522997604181363589690145186936914520200391376196985012237244862263878762412780989360799861932531508635764601028662545154209355489071853934155936708322021715188222054671577320461580721146780061043008101163744709355850613218721938389059701913307845575546034834449007950060700115842194851580373873743273394202419753924968184452329424914078282466764538264741184151895210427711651068646442656130812823241175823709633311683733426855201380190130219241805152204437924796349785660780824766177012182283024579669138166877184931852708213259755242500947088003068966322262214432830885919727875769213722245943800250217323598584391101700365639916968820101636372416026357909049972815292784157404612787060170843932742879778700924331034560129208536861029415296461392258771603459375674498898081129224501580208174530653779023163291242894260608854885021920775169452684535286158020273626089068670393596603041460302691420749524535826456845284883925800677458550298733896914474744334677788875106204185706045272128322548601658392643543766691888847678165375503043986075756673025291240008342229266786463836492866731734910838082772916075700226880138621244778480780821598515988155971249268016803110126265434071260242757969066325513088817220936903094660391150132661536440807013401548643894551702090684326452055274660679634751130396906541465686998728255986280965774610784792768672863987355615115188109199830814206450621447646458039723453148201457824476084644882793572879730934906949900421218025623278158398580139736949010748951988699753079063420784149802216266722340951660404962293826428401320434116205147370900476114493587252053792711403911008425359430386765100811204487889131031556058802172453716273022973796739170689673082798562455558082769869269022826477054861817764278131591448879838054024832203739537435018056084702298784434873403984953600118446396444768672722373673073064298959143510798559158631867631078890293336792760739666414857301817409130341319238450209971650865848413738761445243626532501754660129105872666933516129553217693110101443638615497158998095618520182946697375378172601702769078125845220672311151240969702594076041879780961613608544037432984506612754680281966654777094821883701547776878166395840678634193772446626799454873508580029560313808204610460089641024489720419417132543391593444269933076297902448830864473949111447170988550422353932522628900796920051854053213992411556293706696100374488788892780591798394408100868269598400295222099608202313957546983861475467198378998107194508084690013072700815307689959900863908182436594628471642840831112410447065736633312875969538472455648735688525398016845048640450265112754803620223736080949588209491729869953592798053921559729945937053653767662569976555721225163835835391109361127172753983092556033346886974883957791363331370854478455131501852071924165570485256617678985037457066632354585006204838439104286976507280549145867612170879298054522710104914372968047118128540296616054918746261617690460267672108167442197185677948734177919286426816887958608123027986486507709084332826647777589263280217929088524254042833497937302568634399905108833526903640973595954107266028721542255978452349397124651503867051841135952391393888122944230457857881047551890991909837562733691456207919230824914737520039194057728817185636491763386044220433489818213725545094449045192017471290076536784582345166068788669214859774317844602056827287184678659180551894768070024837868666747779813016701454562258319181178610191286998951410894759696775789897896070902200309948043310341456870122695027866343915678885381406286552385794184857178442365062880862289049624013024977696639047159056302811374037237531963570052527912117820033718620130558839134382186106729881759437909329028223219013668910909587617889084888300821277050293240233157198994935187147142969060299226529342604111346629240918345757283742685113070612172492834485703112822126111887816732545391346711135274609792384779713880304795323684133766163530461526279624160408574383070057794458706405254926799965871042170540644780759392311042356889256183688342276465203959910684443257977138022290134327175002023767134408558630184921971523893189821384458652748784372815877654205071395664696953622157667763914714790122597541838478846092614820322889458673233460685462182035543091777981252474396527623821618906176745773352933664066846690621249853500971988436249414705824824439356755271250042655643541793622882051852950932560290297601185549472562505268718859733889453609989264582043423736569784371509904502212196448773523867511862581373853748508806202306407001261726472096876479950184460781056707168910240317438237729438714907836945778945389913120620847068729133533746138930804627849818837860532345510534450203320398558290348098295353327866274491836370052826089477718158840994775636180848928129506503453453868316855046040800867919363081531560231560570475872320557455860922396104579196961702590749094988997449412389050649985969481971340008148083803689845102139987850404991032516007907554979185935379346310558920530481230264558732674863827482788062945151267356798666207503020425048658485558525713641176150335629763940717548028698028187024351109482853886102332776162338237560828785997330791172374619821325657259311347804317748651710314529793049072464952954378137167465707840584545492629326905081962449768239676144569329704581050282858412170794226623314469310645658141941906488188803302090581636417298770394689727777041627664724038620117836063677445247754532529197407829388910976251167648334142923774021369145626525648813582231562687986700989500724767161606177293005154805374413275811474694502365164700593678095546246556896111494455670123375933209059518437343497746083241863003542746414674892478601429762891479624683246591041005062969882282269848520870827103668226592368660366451069794620329448147618986488903514638549718941631516334033289937793422902780465907545359691488532674531756716901256399792584466653093987303041531095577169900704503774538915115387247609454844154579140244725396416374368423579382752240088481937286327898667781332341619631707703947647488716931521143846329821804515804627417092954821034139643873766925140126301335722515300717650402992261949044780720117826347480073561065578505208956382506095118393434101331615646272793418398414818480512219762378099795333600805799923578249195072009195395593362563200385907348212578357836495221119080746535268353593391267931244984921505814831516115695684501936776542372372224644021171171007451213073370556619468250409272113202168681939553952091685856333498703542890762216528212394784109425691188962420063699146111519470341160897333514579093671575369267167565530924270220348787481706504832683307643687344910572283724900516254886573226438057034563413230805691046007450886691372162887785502179027957251578900000738124893633282820330651440374510464716024791346550419997488785470834523233863288149513211316251343108772624628481593019573873318443441090258744740175112685417217375400919166773424969099673316980007125800112753688940572979497291183302712152283238772185270762793866210757169661467319193783861322834104329992951603174289856367808454766125597453254601651864784861670062632332531173473471695747361866430152269521514190481522228655817289016111847688926557500709144806453107697721163355795374011502627494438754317380811435892337283447255844096696996432261230125313602949079871828882781019244554159986440954438186974764687418087007912102397877842965875884389578799256352729940431804321603062842790744710369367621911622055886764114746487011693301482115423176163448357509329833419464661871469940422093365416076437805054747660147391262695850957756580360908944200179177999599079330883744885427176293109455732110319145090953430915026449343071873286894887394704720659812949363325185126235688950432688109081541628491067499088366983685782017393935366807937706037349055835864399589459403345555183066844571948261971298026148682618156435583718969104055084276710235357499968592787303695135740427682289883466698151515838731854250677592626786884673600141839553916064706625482926401212473560149260496195769372600938135636226747881505667852047110111865979551039110038323098640204420045720546712751252480057790962674097561681507896983947890943854735477917067978798465899842956018162133207489546127526816445161160822329008150341978733093089671478899360277907549283840606789143185664441168226902855018121180261799989708916356227936365706961567457907834226233578417357388577809150356856425393076722953400736804709958480991967104025163762823216332381650444705055005539715763179530396919354891379227287488682098045828193061207969826438717281437442397121243809646908038917386027180286254673299830897007604611102832446955961306581592013868482117681895174967576016083857299166428634656677195854082396454624224729559064697526647020597612652390645711563213255374407944429808404078256201150258803737796539590512176739703454135003873712846462522129400817128074339146119169370441701399149358827464146804511674122412695833633539346868501470585857740999131364132542378232241800546316342429657175771057282339847134018679497138036126887149699972052337475780467422201317866598892694799284776376140291291608994659562657406292215775817352519393432140173489868359340167944054139609543692101729812178121423397634845679308277951759854305666224012800582391520728002340642690527865086168343264606708942208469759116292206335585355465820318904804127954029634016434568231677696685018504619840897721227069761379542096498518355531253042386318468978051154919846394153983642581080758254678020503525698559029092680715609924652609147916097400139316749041567496411067172317105013590787283308916727542382852243770572369666264866767292547829410636144262153854988021651579008450555846384616955749829742033538598950932883260871122748020216922575606339802663638951717395234175389288022652435551840566337725855021153594222564741024443595356727185647109017921770363891249926545994317704779746238842708339126563475838161370624116492378433580611985274747682251456625497642456489157117706498541768661555777867830361744944363618796617530731638591593203350890904362032776975769716842401409860963417229026146372917654728729570026980210666547683896281697435696628108922964987374013335013596404071984518639743628845362705306671199621407849345084642613763727963580849556104816854951637806359979744140182870776270626521871061095676226055629036097383101564716373196030566684912964336450297376681621498763161894126012497895903654875748016721974003634977137869985478669137984291346898561632073455460352969162567710860665399505846254284823649540821123334453310398010505846294893630327301458544464131363920720820613425215891904734333911978882220658668224233232323048074156216563667613727491739070573798464884828253188111912170034066515376257224451500265009530242314896558568499000691265475571166797218770973121629676071578821412557559183020756793735501112916225344596876165254758299228641027787152524535157055892318563867625118043877362840874890590082656924385202958942401352677631795909982959461924877544597074779143466192923719310431549326290563134211466516310629429520570647892269316821565597513274591346548641016185470993560726038223988516850760153870311759987296370177219717383377273283106379724656274085943566961172521117961621740211208950728536006828476643581509632960931669868560578283793814119340825893201340464819785937030851634712970101655750708121016502344281823457489751906445736460169979181326440971110346511587396056904282871544986257950513144209379831126574283550224646468982246747876225201465173640983076289565298041894381822383428016789375390415287255188026309352905351533558491361521085294429376940795779772305815869464378132319595236143272669740457193850301777262281407020314819423971273692954786426158502458446716655506648657043301738378723485949631020514246682283608251123824693932918292751265999579431799674022885267367309096986865265298284676141650345546645680615941266362699500708597738378051116646401444626401273571209259802707689925654118353535514368289269910393082316644620932672773911826477073535026656428598989011897731439072120090347209073993447013762324918877688014033191923828832562869723986713347042086119095315672152274044995968237458024651919221581681145103034248459253459642628403188215538109571208128619668693156484079838221100373380987598330508359126448512026392678932766541906151248874961791375480260152481655925972320217707523632348959867448264762083791015701138704043888477025855411792618886481591380528849041846266083219176089848634871351186614784896419369954740153032003102483540088023582823330659985375081639145397450157403708515411703954156702599096034800118767569992733083156278148387484722593402694658158060570586975417431772757673412761992232676350139484655486440321076363199873819743425187928549748436433229069387358766660035508178463453335068694775842753693390435709861512820841922270546329722768591861615634124214375540598319440953990678999946080210568130875497456647647082973899565061282570226171648709989832063200070229397583736625817980577210363254039291489099459546402597993197811700175018482840489991601788359914523682861232342937093239874307949290376058724503514106986247606454163123854407128745079950242627608158559777092163576218888550351080454614490649024787769098901354373755480314069083246635905543552798495831333546312942568916513665288673551666974583925406889586104584583305255799422836770859888536367953513627715445874064637539336477904780880496321253398497427807964449754948107962433047014615248337706874902025398417056349697338056759052481825295606637402074955224850461641002021878936740249892641166381346817133452628319368740708033379566321060026533789863206749598733886867682653566067066842833187097565158243476535077169546556324147483379440028088691516688004113045734534488092183125113319486264532852842132292790492785826986053797022813110322472990318686720245518313542826673342379473587221074800805500373761602851441587554795138571206010109838338930754441521893658837604045779373350310483066670952788233786105560095205146590615914276095728787240757706300782874250001282932782653198622809586846571930260449062574315999164290082079216468045906518179661218268056943353580771937752955218644485132953290531997861399058279896531029445259291798506288530153593858159130030238691388502430269322897960157156749942965146756217109296466806271124203656967918172344372761047801817806381909408826918672030549563370341233971217401695709106398388792146897243738873142881745784695060108411427984847855464880610836653550243778544611228194651412020287440530517366250610637063524649726694520802981261191200759330576987253607589290487548791735676120383576168931537311465090097580333405739779847941409732275575875994878540137324037647065854115226334656768912291361481667209239766013956674971261311268572275581869907286616294706493275508828630560116876696086936983315203270555902376721685992842770986152441162743824348836449634878150282501227612748969811820189735384140705140163187047764758366489303440612606769552452914978175173458358621160042132047001188289647186387361057613695568863857106085882994906411039532906202122541262544733047994576743626337632555748019624721634539391637850986901572372740225652406657566106593378902212560492860549651761058863024159790239201837385723194353332662166916332753026198961885076528036783103110612266988402849462701327180857422758932841639226408929318960525997715219676427316891115998206018518830931348481132385815222085491347457218752015368893103451453421869230452189494604186467821153490646761488281293896149510398031100573365480048439418375330078578900442521666612249181676660833244672413151642240771663883369604007409421748433565582112222070778812645017659900984187754127019849945561963141164745234964065507303338261407639534967151528799151035260690727485970950749865721577041479444265342845772138904387495218199699543361168696165083624712237807718371628292329970614587496346158481093993517609103605296537124188353078365083803799596784950218956863788203534068700428913338174543977447739136602064219261098260678069418567187387380332208255760652720720848797569422373242336248631296970015224756006521452916877299148830063210116961558590815049239428403016182129632929893330366949705756697702319996543048793272295779494698627716651383366887858065064541404181069298898160970745005693792978379374600498955796911065303404468415467333663641824026679859124492877273019519337343855195748314934843238779466888651539681639233973664900265570194227623388148004248720037744256027689673491453366284410479725615140359788275928640648446716828467528560142833881298707523635397838869555416977529261695552634159813958964499995520513120673348865148790308637000568799108698398449104293617938772669037226431602022866318019132999749884081103197540055327896375071553082418805986909227632157418740878375417258790086180023520612799199609311755763367021077686966789218602451609109233497203779187560280122661426728599319894580380034283925341356074366635651290391761435281673874058605458133748716231178755149475518975329094373708884317874101537031626233616626241377676801406535646751364986463134878345811336174538089988097648995797215742610680098071814190380697467348067062091563228225016707822710242716011450176552707967159543867388570414435481726237730097023923705174012964890919023544148834942448384392617024368972652830673421833432183310920253952537859312628289897460609361227413607772119762722158999105058727494979218578359298105674866453104163829916169153529206536680418873391675933088184736430553053858517187878575857537303892566207204304043186971474393301926909726723121007620426436845614400395875245231331635618443935576445169477976989244246194285315392131590692217201088961927789547481207920535886603510507532660900666245013916227675822967418446773442484086347070058419310322114081816252513797637518971195113914694948401918394948443595547448866413701398519969543957811423715538761661252926509194399608495217307476032180692340354546719721313511558468097495579603214245879726652022810410179125609723059266676501090309793551909873253251752123222551954440689718787977111155667022414345079683403183215061773867004136137240265163439164978811256774450551463069419175902657484683944232519746012730582558679213071718538645832143387695571457482092117403278650670468352550540755712131439080441517722659734413166339872538953009631057732006764159687275057245620487729825383684830827464646771888989596640575393944656100156490664661421253609167031080379124204572533856821764701554546300619635737477409158210182914330087991959140273614394184933820653242924795865456701368732921035129135095336477929457232252624524346477367136791031484297475658292928187888533287376691562204198992032138477371536785395898325354924265011085542038284571714924878552091549574570728869103734175734150149260142344379598969373299573757593769127612619426896972812246062899826661658361772079495548480028561086023974714993377936938246562624462243476873805529867075054680876807927144044905542491494457671112686678748701839167923956226296988390017914024911194660915510358937047483968458079370130335987392354802872696260626271790724792569209988430725882679205026817075213745616130041362152594958346495634293702885756193948887339926700085966616099078013724974156389811883517803141865394792388123308912206571219510614768555774221184449727734914186917563735907778167255490669135573848341276783130949786585562905678274513620482622398720181518428051413055147343772141428370230430712333353084845287898682455141318069792037660501980407509449184282300186202160963767023292555355555071030565621733754632992071069660162958905772771016289084807141766583898012313345596823841881427714812002033840107658468597041602062983630853766575929879609864422599815383238683128929118323340161970256038544683292433351234941525322390810537079687002258349963488767149273127945584196007739859238458355965834402413712765049017824538893086099732772499326293785164106573771588322680320740379289183728253605673493879766281138124631208679948723541404942548416459983530252169189731425135962793109866306049236056661761671332014888899739263120306788153746259505464558756732023126847950909491192345160375944383402967860197412149517724862636264925749014484288530183753416334111508454771761970250020545618693025658393064936231647388280120535582475743775455525682381638403371412616511418476145621349792232284632924934953608590926776545864356358277071206928205886768111704356486724415652628891669016168289965321610119911848014816113947197340510654236921978017186340756390855653132079522858075749248242038180086002083587041734330869788057491148350373151171991259252321653256425154084979211525370183428486465331382273133394098797228538175983342580858873672067144220586364281432120753307248363878017458758916512141406611309109524150252708954313270036368365382030403898746341306387196890064029422388301495491429621733665876081194714556887605836297816256520802188944588962334447590970221939489810559415116709696241434376266679662504859372584217195823121162184203387215025586947974770363549543484139790961452851634349664623259213904988233357354869467604265360326448087917680651990803677439362361171810601451569701267670170823251392168112754364142896633075278548350080636087490706216078832002873543128002642900791339038696038591474249022178581413838884049672877090864021390969000297059354463679676652539879757052309395291873049062925750309402960752873187340721569931503647803087270898256634018939327554218808653965979905144930740454121827581145214125205093425967683354734309621910609429887893879575661912755066512685504139969129547814903347881687598293609815447287957688586407102786382598152081587696335568461004479183218598925510860963725124331917881469278776072236202698099723030551110320702518114111924063495677340881776842047692648242868996262473655770502685114286602172197928876955572395762011090260545054618507788888414145395165966588343154161406697590840048170327568840530529040064853294277646194970623008034048353212484092771746836369401266573395285069882188883606932579447749914586070181310198067841890409209337144383289450365978086180497721048681159692512693257487170540346908739035867908946741326000087954379668357717206507113290582127515490408492723712019090026030443514848285304823236716441038271896278577509565443202164202497331936167880886640055945158495111955715524808344866406217496246482284826939303571279984862365188013659935797120154179360415958671130754753312832065454138498486296871719634044935460531750051358850594404211063091667220662394033933521288665436981361377852681338668236140156508489038764611937881527706678988056834550595738510174394302579629023243776987068652598986412543263497291636154091697356211327161017755392433674002235868247218921381304113176292804842038930763041850262701775084085802875016532194959528743007636803490986049612338337718430448613881175464258367882032899229294192022790172207825964090681783405598937180240938605723422405248026313076455347770480317774596891641668064079933880768258474248906137014479611748333052446470193150444251998737021926595534738733068094607433464895321801343582399575045771552980524868233845145041405513485350744204994483888753575771832378872440783179410768054262292296589605000226058856591047641446807201746875053335312435308683485787039243870795539856028979128918526232509699844996106965882019974797093024538843620976005446671003737235608903956515932034306221150023415392470524681815245537524618855934733425226370334777312813077689527263903745857662162872215187708006432138035731735023222647574484650496848105102803728113120156464609010180470101860190767130526444051501568714342487842598349330250617620463829679826779505481392028776118888793885623318750680035376247435022439974230465327152451467149780652143552342409096737391413886543995205312699023522339435569341002073215896575169412476236478468487309266341745385728618996430458617197529717492428987725598740704647387091821648858297215102285785847299108561039243503294510358088590183320453802328601608022867262775034441164545359495723210416411754204200040583519314027393441671137725958719804040222243846275964986580426881036723679943509900056737201247973131545605143789090069841442519846141891910627708479288308060603222285818447175162504823664657661718491962917849838070293095875043326587101214028156386732771353566616551087201690792842935530219725323060217425112339320620444261424720870165233702746703523614503327604485866072102669999230295188313220854435123133512981603426184395708875493325958805901366021164571251704245532505795879660635228491561123643912099799528479671848207925641328139207091654820481449569410108187216895398484792283381490810299729370347374381437729840014091253435226138309925983423017084657061886158031984004388703762706192031636734996342883506514959441368654860157840168491708567842823164149268412400300873424253373440550122570885490579874436527051888933681510350660495959435933861396857125189674070706378876065844837070524306278850191362118501368220161703936890703638931486766324749131046776288264314226296537889365163770853667185162956232776390229321003810129471839429369605863608187751942038488331519137132993856707535704809682667795247036140333516750882477279846731940407745604991485639814526067775615756916354581786627907278127097549495537663915192425115260742437580049171434402044495063588973469677902193752596521725532016306639485727110856042428740882923420889310578598438248931848517691921323756522317371061963053991952375038204973130548191653425906521095052402889046697828193578721983533128050958098733536606015031829034976498090353786332712721046721219884329742904775635717578383579406546645017667131979526998641223604426837386131332275019194590740768710062383581279472063435437586190377779074257963459270811912694850178141310093410841533687904585001706338526650546999625304497865784210846066639909046351289690909571127259062847169114452543920466621242277819352855775236789233956092787364901186883727645216420752537625170545911137027581303193398643233203729792534200528580815746281831995938883067359328847040917892686156603214959573451887578565717947937110917224823492984386650619770062218376783599371163960011003887596280003214162996380055989411879127414708158675243380238344513260179751487275026128144125608602804716168736781844604924180892446715648409920011270025176142411855769298592123603012850417698654073025513326673518436582198769938372259585211438705892656670140224773879265859305364870010510101057936592387949003498756812880424948938201890195618651755916783396866615474736508641594177124004188182579078514686526006632843983082563390447374058705648977409850467916577723386768963301012998143944525066998470793647185129369250142933355864512574018609100013785594712023697977828369797438805817969043501852413372785526734186307902769873855412387076974048215838277387266108799799270880894286851921442077128975066533037941373180082318718782009104352813106681327057645488626230272030441846373072599625535903246141529023586078627340794675370391710767689374005377992149882225355970585438459431450183900833670734590369238021762682689950927303513271441782533668355390884293942999934145354954257176139950829517215478480479408270060164361189658932540932515555473584479933565901737072165675995535547303147144386178456697031175872297410660020025345264201450975725928819511215317561249492001337343962357644603138300578435425929350672591879495798297412268804002533871799113741948751272327284185586363341500412573922573246579480237338398114300210048621338076602261537903748468096082196095078752461906970195152714380784734913181697975146398358983446185100576420222433731601651943679968375278053058482122623420917740461968173534487954927883955992682365098945970847051649640983646534130902328424165766670895698718933666104101553392134728502395028988392985595801305370483094906542348547918549401679425120754623611239332854654705299519699568070059495098459368744055054795761408571865726944493926605056910083043183540123474737875945723738056623671023210396228272747143731714736468727711920190414961829659365831145804146074234077139018251175376995618104378534038581588999854051783982618138166871224369915594929127142870360223945961681185378622495340843068794570019087490514927684235400474092820092083467201946498295286385281967210286557019398419340606558394061906821276889150804049634201027274127345806805865798412197883038912869906011691067318181645047503209721280279096581686859300697863329662046155187105372417964238902920730799014500238507649604638914252580146360510185743796839723951329060984148393612810819908261445887258770410901170165921198205230280912062456595523635512946805574757628855139238533954636272191306459435475434316318957441073525915379596736146470999441018990628407860085735823259241036576243278691919227445792493755197273462964922314683479135239367488638402891686782217192582847568494520284054542507111336061684889541412472294138157986512519557257241892560339328249756513445448263874311633932111374155564059479445279884251606360438735996449198466063955106191989605954334093079938993008695615377904751951136619195347967446013897087632220423423555676491966593614579316930360126759828992106187303126544060052607327894360966173237453495886878640135226559175149420256360723162357042537957009962679589942048619603956052969536469131148071062528364527293037453923014067520708680531808921091003473955807178924789282760496372969523860579341430425804109678056081957577437154171352059726438686263679863489016387076334356264588270876824496971612467478623101165075909732324934709324476366427722577393073818147325820403121836438764732774937821686379107717825135984272339666360988852357628594258697475962943768467111406755981413929770336129669332350843602192581118848910762129491194975547295401159766203946146799232612111186375890366773314661844400787955691469237380216962644599401882861274121470690691576644788508879274055839526291199434360374292325638119632287875617166528962335752425548196763199730314970953899744252935453149850741470560457224328306214531145108371149603551578319749635078018315490121935974986536493251280659122676261140690137813620467952306079281495038162727923980633204096794266344669084933494694020490907950301618182972329581400421277515156423100129920376394431714602653487518602912220342464662453833109189972656130884314377280990161731456622920324973534273491554642858923910142118883529944043625200284422332242018419864536684501776312185277062520979819156940059099010767255172770513483260671704823662931226007460579343703672144949160149055231480065218828291747515070881887934656178182455092604593759751765138704902635533153024960377321511849475330068230280031065446041956817919534408051809773933155140771542369507946920424767962685535497643218123128355865686925843824642698697009162363891586939071258200224286294990394113330809004649165220825399708247007091646168057752598560208103574308954973977801104165695971750555256167104233420228056863402246984973133114025242406160104392031719387147311641348629849438490920696724109830578084372774632235070993987424490039445346543326508441390611594658875258797479149431795934813225099817467653372895848162046940211712081828737902297407283926014909184294568506737976547178571638636846273493824528623178280579670068228919134179373892871966998907270716528787855375128620732708605332962555371769452626127580860754588643918883232032447442489686091484177329461352993818406308304642809287940342346959285272119074328077911400528756945887090714750311844482761220975164172314132918516033811229593913924074726580676975784457137234920790375582827170060576703961572054469691338074289003867893333314205451454398491843253636030416118743230077536519128126530157341712427573170711529017578579104872695630079774184284984394841896036902335316198669134727177145475584178038813818055871307091496548378068525940112348714832629742678107480771504565679566635430393573784670782581454702788790206586325279984156611636389726071622015405059994027328575294143228462354229181433166881825710046445009945454658317988321195471372182671100351301827701960806729199574783401887096336141759814020351449711682625839849632515689049730027253640008008066546017222366055280678918172123047796747550627481167235760563657116351298549754398171483009592635922519274746012860381754007186056677580327064878240146634171319498478132791051931244407453867534045086981336295408443934397397235816513734335523532767003748241836292173957459366580349494486635519175149960263576955269289589205838564008440218945960616876372839294037666466242268956998720650006620820905475073393911515364274364286263097398713126879032319586330875467373393282871162631873866819540034341189280806995071995640723171829567163723787322590965943168255247764744087350983836969059954330892378697548510619939982411500630461618520087734337620456620170865733236319130880793904322523775825731781953148017449543932648433463648927837316773015530925145364136543286573410348201340210163603564700114115247392297015949098645130453609720767008928260774376692762852650314831225778374880358216910178588909665685157641998505960964650583614173595111079577116650664409975097146788106964636677338025507590200123005901539474974409181433011438172176596505198156333623006479627328116959114429959330086573457526606192639271691434840029257093963485063987093917140963657321748058086712570062247170002775159852936976874691360721910615904194276260139147022986192923120990302490672459032057902055213509526085096011595241733873868536743154512738657633952282547236821222258352805804862778357444557741242399018480827918650411117823721994705087553671214397218167968156767244201575413627719944973085147575702690933223593573153561818168992175788872974822622721393560310451842724410714437059662874549640908485306336106149484421867218323858824898087850607496554089520763579034953242661324338107148312336748031617347552954924373283560877971230475273585053728536075709058295482871831017433874354980401381628716453857099413974488922913286825343419940584880373879363821354566332483473701701804854522526754414717780854233968115468262675585768856868786400287999933894066882722239848164175170801567379176859412379684067255170249307093312255564521856727484092140280131969620546810958466368449292706362610843339900556657825678556329051270908368218506568366527859574988767498737406732703454808853953299036177877827560670077924936107739309026703960022590379230802314223701903320914528351374742185969562660529129806187611746182023038290316643896979131889107570976226798075219677783208790911020983021257673605734731148040346728841325473390987674045127776742255174266461945039312814994627980068614495969239898001036070827247401423611930620675558123245678647281346003870143543771941259491166481973211070125250198309191814999728281007479633403578378183196901997235868633826912969900117922346369057649022962637730537396930742687057628286017338772332577824715450869126661607393802324749982622356833171959218936920353890922914512932168566513421397072999040997033615620729266939114524342015732290685380221526173921526118513576736798797769110505700884030167432617677394672167471050620704842281571851615108885844968332251174631038385450011429953805891512384650192686215166782824687785468983918652663848763394503020955600259822315603991177562091327448779171308004141988929480188509926555842052921630527020991209455444494807653932831637392356790573435192232085291910403285170203029401259587134747243405270941064115895791877145738709766530861554162280933074969537826787867819115222847867386959234184627982784806780321313493442120173003962562412979745862913362505838442313245379561206486252693663873996817435920539816306669955248840185636717595260044267681955365295530654409357935495085375846811510996515054690840422414724509891843772667908910095026831154109256198756336720994741307811331280746385301758163551041589018860127595858525900063807702148595756417182836615287638850416807067390501876008956567213552849101672693734770545201192877408068852701087819531159359502742875749428651302812192499486840626069718535577142428422088053058481393591877177452215955438870947054925966543023205435883467691058286337110684466734970702650449524749031536060768851094928228718532642435794425049075929230391319485506191793776615641391507185756449340096715524859366125076596624690714643449132195815329086092779597370470131123114616569818645363937741136566905941529419257177132392633434901818413328883863672404239567126770738594369103508693813646969097970233202478823108097998913433335673435712409318708502873237182183436389398842559155862092064882494017428954150933354779247365402695333525492375435931671194327812623437517355622485415487866985063629578413373392115432204461850085431995690893063557974785957500202798344359603054320586607997274975845274066786702060651516504785369590242093326172032677755637388417028745760563729949875945105986348558083873800539011668104515731687366624845879983743226891483464483796705883356866276247251890022584019799913631792855851872618294156727323813773790342388780006301996275047584667461391160720162389935148819213925039457389975670477883127631589450922997529882223398847180188622691512502856061003216845422732567096072977949889476687676805647118498525175201175518572199965126976472828379325536758647793534214687857667006588833518794882746440333122568724866540592585313089286840496506942218594693086126535710491307546641711249811235189786463859304211856205506646862176626618803010947819672145318795248123395366285271463463090009974427152496860985210616290993021493099006108158788224095802123044717580935256482906368774576873018231374541828784738675005221844405832961382695082002660554612964205918361668294555315439010781924622002681882990574473136556482430588615325331405393478027645707009377167385999594828139181012222836970763773365695509634590412745380106708165448844006565231428982260433910235005819274767980372033370232245750369755136939840042717813760112577304046673427129464280400209180820344843312989772311668121861834599053475301032433254005211609377081117246772739484169418378867433791293323729603583081531797373556160652010959520543037143465412476305447200929804327279238084205907045909865843376079423422029003428021137887166019575503158556409863877809033932977461349085785444660636449189230952235816508773150805768744844415080353962541343189968195892899876227200032792688838319460326478814625548836824586698855030210317583498694781047836051380360842771756812535220689981670128569160587762638460961639361987367317706282995595938247815485805634021735891731867411744302337304442605467347537767256539620775580946732744812356886085059439592243367296880120091965853267731374134977283310200421583565298675923321426556398141930953470327784444895497134628698060430191633841124167596230425611566940496024380816940532046038104982603356389606107473725426908840300708667700882485115675759484494211935891561966839933833177599028401198101538764027216104470823054175262744266765225852850739115865193659782142576067684573003751451293070740840204570461799515472013237009308548344136826435971629990519275684342519280878383174922040348021445151474728073265715348117860379185420298566666130947330821587209838116502138720917231719096876327720527297463206208402027894613977161649413932540672349920191972991819083873353001329151878320185400762753745468358231312668717420315411300471965458534939398227916753169216690390237717163205362506729709518306749631460343312568860016248267525445904264400479012005713973290256629092505470591183567486764766505440707593920299045722205540044034623323334244939402238773175751877186881468344178219587973617978437404012841666908977256321656773479060650204783218592590659926567912494489993581979587913015911871062651326226751660505345298134389690038104366683634582510832029205893314683365393557272628818704974061104424665272674880334873546893745320391588721812129506499938643777545008302055549872228901592052073928635880739257185328417934431006383479957711598531777112831107303983660000725718556002979890891770283930695749204682699894739066543929899126640362442409438321516956293837953159660930760861361494753272159128415768754372469927205118922259014364656183817063409520962143307500390809479299834584494343603177856098965601610340404562244411639294740461895527229870191684349183861300378857729717993584722639064206252066239951195210900760549340176060054856029494648105525852835286122355992005308266436524969206558233910995122262882911339392748583362172335937430456239112579674097298426031866590007747697628291180147409800299902309312846169377222867454118366545541865415833932997166036437654983931617550846457663521331369583348787977567974004880030992737506881279466801325886888863914779499287773307395263055497876853024836376685305876878864409945215229486658157974433310738183223207182269831100375261561632957989955025829812176272518378072749909025068156169003678746878232129919730166095163073123627418250876239445185998324967414042847523238566131980613418721913575354928179955486257106731654697051351391000884659571591307441500407503709886287626596764043163453187888409888582465607888920666463721868474850138565939104377208582576291541528617455361276237630203709109717482089645358982030987315106827150993959376765242094530839369822372221092800641641257434294651824530595601228067276046916997816081995188615373165086655344719654023271413455159143577290439529162000111962494671312574514219465736345229173889820226124329224928281593035215788130875777304657896897173444880787741469442733130267953730446768241316196285561878652776519168787425546638270768250472259794775487982084114395319915075256228469724954477416739681954754241796923453871327152679785646299203523537929983342857269935685249121858683640376464589677290662492616250685559206436724796741585539991360800629169994473552018385449048246255858375011396719362836572776494007630903327552013406251603171052832330469490610317324569287978283421363387454777011113373860538720874545263634972636712295823303042700836282500993649209202459811722550967860864842251786750099721376445635638436606084193002810139244347832283111335485714388294498286164033261928088269433124394307025232144310051623388724511078573101710798866155634862300448387243322104782870377145026369604150643910845478652404310233958296790076514251442403943790621041410872154754742783009958605726653605688084252361464869317371098609258914619658260656805204850356923971305048067274043549825315712463743625823404460589799380844463710957129898421691240135543544743875234110561838490485779103154677803824792158808279609963262241354852125084637271784795654154793719277111482921855655439772034899193117224438135610093598452609271341492173462977860806546673753197368154289619420289261231457483196174324847247990789483110080945765189579382517845300330254335199746343441857157075557988006743225846558819136558415987756587233142767429449377313199823458952270740361581839314940605880699311677231919971314885827888046956735676333039041766009441487383872633704786808965850921589965627195240773245869881858772387022858449093212800430729119970961327199691746795704557353119392508299482660311809387479517821752554041458064955170577038883300430939602656309433056869503203729271728380695621219135367185356116707011864921051638505137008856320278836153547472252793155826134449451491408281532484749081153402910882340974148260919290788926817057858472871033855957925427984396644598699257543236710022431651523962342428456225078489342540829040501383103243360987557739693070551111003483371172212555845184647769287091242464903560199332126259541143680002422370459599767464767736007261982840857129439815291629911411706232210098504149352862087776254180713648929516501871762019100349721175010046102388432276671626388864169574308647586921439323583511548643031371122973869454245826351709195420665282793461322368393106169244268075976754181740523241936486007099704552582465731881785122636836299344849188295744541415722396933155539170188102944565561616493407881992249925959137877150321646934341327334605039073604200562512391830137735332887961675935168139068032653243714415154037442184268332208612563432609645183778775551078476692822503972460474778346005306205227823334725511767795399094706741600450405948040851815989314744907157816646920534688251971801525144365316877470058434258052641187348185941901937593082472668782018470219323067205753911105532159958434822500349935240090624404216045392719929172876507816154576015829051301997373943161647965380312098220441080735567611164322053329373546160700305453384884187355745466177753064734532022120471960225106887136174703995063079520047444670886509226250047595107324329110546863001091310368185367027783291905576504312217833525675165985905392235482572835401403136933400731216616592272204694994078531073038011170466024341068645439150712509609710861233419331250180522139628625123721866295318021485658514072406009991886880045684102267942182500924047891942403037219903639192026168807519006197173307766455791730534597177867009861460953730278304510400479648609735378430336997149903385283922402741443612511891753215714224235693306278233792847955598565823312192866700750599733728307802216534632164817800163070224389786760648924299905354729068399382568639793461511431473984175597733536974597111941495405698178150699490822244314840037855073605912343129467480181394280548485955788386354283134905884095455788214734983291210847071425949867232795330791942779873361559211102201624492726323912644169240718248117515855461832021353802100109276585039231465659739988011208558229731078272697337997225069197896137751959670160882810429219976848900155168774664981825391016701807189009973608227649449591264848952507605421166104200629497675075615288478825140140016543574555125275506677088414528598729585446730023087287132631951024624245584588078909731680080272186684906793119613726981891609800898449108486657819489592063507241453918145533026331064694210806837684588733115811821128822645325028636242123404380268588379704182406587252778598678005429340618475209732397279154711563495696047985681600667390087816565704117542202333432537847587618346331348115846991672560218557742385206433706460264373795612946430655536113717687237428446253048146332776000792496334738929649563658013995941537810723128716569941744517264768128200051458290906744888389897869619033335406325997759092837386354189115400703614255328971600651449556326052106194381464126661021863296097598941822456324551009212480467917144194155994374592603016900939079115176060362586820128578237563762515764135880194891317924256409086474828156493401543599760031256892398796582117014837752089644069728679945027358971156937496489388754315798828405161239764559188704815171715575255019583316933333838768150563539595163361262693789363107028205444936522675547943126239986278421209760114408580826040825067252740565784397225158109648704717859966699012455253210367916783983461777943325782828337129371108265566965675804391195166248640592696881934101378647935926840512783782366202811467359873269690314263921422846573212887758815550036608125756253991067992062439932065230356624825936875825498960254161519915934738356875862841691445470887714548072855003764346817155829736812867780228180286529237373315254835571563160578192075439825797112359941270043934952907137607391462267008100765883173954049726936551279969155341199537261449787658083747229487189062944631563438516975142936367232209326780215759441096767628654725443826856890810729296915925460735413331252533847795767713299236604645262289951301522945070283541228062818182844290306872610454581889503800921206741791950109861781349065498549112284328550742271600286193601233286020233052448737370804954842586605196781447918071070930777995555989051655292019058402321205540156032468154096270873977560460498914492604037261306462403544504057349139257986846535217738364319709060829740397895005550158455485656166581198307294170317186898676494056493416906851499274903181788683528058475190164485674413180706953285395258072714798557361403928478947181390363450143979249053590720975398211314050443548912523495740883986209223822290870472328646622479754059730555454868758885900176888566755417909313482693209086284515100152064691479892098494404993943312517808491141928025600390892735855151272881119791287475192976325552751805230003494422996886834323562053968876747974912987504082056551534997759248544987832959473636870554437269672335713360362613703401430715319555853197668710312456056328738776949923934793537580619053863485802118309033973043908792041247078061531829055154067769895605200849991499975660089389505599574729820117987988493168598594458687372733100075190875077093071578261297821184818909195217471714233463632307194918278075954301588168145151560770992347251675991350026628786704193689396700364607032916031524174909432278069756032061779492010486512778971043438149683189622450415938541763135524487601701973365667115151885739492490907292005174887218018700183575583904785944325097136755852427790747395890993110401355248165593866231419701491346788472469005746563132701394572238675551624836796806597695191792608054361045937481566084828678346540928428025112962487120526990437198934346632736898467159615676345647895699947154342028553299812408958026545650820928143490124389243941434276955180905568676153690013931903920702819773658374323457276853226672872546212288198649548036679959566941894791509725439860577573130299509074495931722749576741700274191731291096414345087816910592945957491004476965994646657374634133468073687013799096453510537711075612956940876879925920594198956867006229765186600688291854554234336211516547806939062103858057708789576198009598138313427893294808994562431102970698616064432304741025350563061304227272306998991014396374743283381744749009791691676457724968571296541769751104820653987264523055851617439651941899862972453951253652195732470458689523914255476959187988038869497754070380550898009736738236403294340560922924297750083685910977557729344955577420058005622021358585359709582533860842676632673690078870619326434632748552992265618565744043123633082995437134892486884427808786062909367710054072612659580807433718679981207635106087290110808232868693469083121429849969567452968616684125520341179305846362037544573553202776916022965268628642059942482917043244392497156230206489484106880677435938071864914035920205493947086993467279594225645408757359957113979832271669918107471809204499443997855015536768534622156626368635598176911432943851411684048991168159673106492466583155351363559134400684580830903046741034883010197255051174308218273437753760025529134868206037079873943655100637876138724881319346358992655870043726040533130983724790749238526282219866692867828308268386049622274725494639547619996260271117022136491347950892385519583519188302686065351696640765489566847927996913595300598476373635577984240470619793046114704257049660678662667206280441299844928095475842191459843177465945434923128192823331497375066720030429532103310763732618788387252460844350127584151866752824458616953357193329876077863146235188438113285621737705961245173355887078828885385234777711943912913387584258268617231045429462818462308488298640129418934984305218016563978763029067617342837818564028621460203348675214990140838232308358591032282640299365444732251649134214194312595569711170378644066101250630673807559287722084786820702207365440031778195682656509910449373710170284672060764707676132471359905395904740604962643416116863511437938281629742593521691157265919895422859166404234635441136756265013531442767899435419215448941327233306691581929888839705676881770572159825555644337107642300762625572922044249248085458425770576891562914268321864698606331626953499870734800681040812893667784277708056072619279793040355617021053480101356527704543514613716430171754400188746401213135395774385070609017030949953273180569979838355698999008384665908964297503267209594061244375519062054827194360213204925421117034322786134833350243889688641577295345821919497771132794181739233595871077182736289345841317332470853643874622361303136597377990963481832975799260980651968207323582282993627417571480090031154132349055645477220966197681546142482487853104734848606803453998628384864435875407860035378506799504017493633842317641579430973811848477274134881571125809956941555052828020710011565608526779803216106654615723336635853933372614021954128716258398911659027724473852458154932221415978040212790653381616387189410624107080233136045655268209398669055921570730325026752833760002238265653579381836619903408077662374726868043832530466562448060351416901525838909285538591252865548819236905027670656792819963292040975133598950915472478247975834378258289506736008507935222152553363585247458504092943385534022443799516217998346587404291007810074492929902028585200701341911325510174500487319108436731121761975276678153700453549644855451932841133601081688355143551184952571247244954947807336394096453796663575430757612571998997348964213719776791259903348364191511192251757290066335676913244896390931891883320543888410227204872666100102423796922825439373295107402020029153849371826611140795720793958707653148943919469552064673176074642149473149695499455604779184552900508095213110993661429725398937584743856977866109419070138974193888517276797057130194499857992295061833066353042912567805144508443540186728869301508587394088845709105438394613310700750479852250015094470765033486787829593779995530184733202425510968368927519717462265846049263081983908509930295776174640366950399727296130988958021948633424566150694985018906010722844895888897810181219611026068061112795766977407691290865911999116314906138743386894472298195889665786357311180809386956640190521453091794223477271505157501023005294643440914420566928553126203054271986607990335008792254250225783581328190909381002615826289185256493728501400797306508152635759180231767237486540147311413430405206341186498290906344077487086185693311683203507569013892862711743368299281299294038053583815380170398939029555552429810176651856009749975233771784570544172878108333645217359246582604733104297599835457162238540279666109344291253510276255913792080645593651253366866492292585613832337535775723279859097354038264650611011354799119852296583937856463685528183878471032064853675444253176413730752183271218462232432737677834245131363282239510635472572296391322329404180556524031853089192467259242877552779944695020430040262396569028092596210871699153314324241260272160091676220893204987470598012696712259899407651499636273530940288902410842376248737534915407279069502664503109616828383954523153660921913122270261677163786306421238610509435509727427329191746610347533856674170924412423914690595378272742719012376758595115480854365719873274865805875507099866792416879765792470979461530982669447872135692460109931287721067345256127690270482850541184339449537851155135169873276664369083435774150645121026830669790738400005143277409138102398005819657168132335018285786485863944191503378794904511599978323793118021559008547327512824295692841790430730974372124215909125059606072247028972413691824765351457177069454051785992462916609672060599747921279676833321540651214137297078210130122082682111996211775854630321485227861832167542122628302064030658629691616752412460798711311904297759805353372512173840631330371875672939607712164127819476429378281615947070901747823380726760547268555523356958526602741239762847282994052744368836315445505065121616704661187500334774264711097297152001070061648899988436775618916334606687561639527162150662007188832915742182529380357891389706476007034374049059208600101818666710802030955047221712071053087821049141803904235705981376985000202134532473602234866986143887174961718580775878809917290024854680844398646243873248543866840375400468361859555235196610562751795619755134135754784250252360416422854673177519823583092464875758558454298109412925581810047449416609917865694259477500073980377220672591793565416707421199976417367478842334488618497562408695153080265640604328035281440051289762681220222417872760145853766517283211525585479762936537049408213840466745891881529600304520684569659283460900424138388411577607218899274814797928973933484787738505633497392988435991768412393384469799745917307064249826039343173899195312350793191709256922737725251275058035404387773354987033776383294777604983436767699960047111949853840014743496923829946251495921291064568130149689472167773989621487226283591079231565575168477203343482887564832611624367992772525540627037699733277386550061155151448654466278432519718013438792939527579065605607233797301444901704615303522317255718225033825815552270803902456410301592094419454961655035687782541454558076929294655766068602665832653289956886170418825299998648778149957409965497051552681905137562710705980366513372763774976273107717836555248368462172520593982349689579124229216219589932284400448478279158238431894694109677072847718339791749078870611669257011116028434251281626126776865207690007253881554228357158908127335014387095683753558518831569976557575007125388688901414916707615026925440776027068009111443091102854543520119582937978350808399582203943771884398484652614688978229665699105940971813526197730279907161716764402446042479802808904799144260442490946210870370422110356364120315010403370429357995049184207977932136087257338474120659791463608037118392877705427844147517689111488210002430923773291003082482178722786992721770471979964178524356491984274694720799985532937413091586490079702570870201853530182096782842124867415338771173559906293266143628910467219017624791376690555235835086884320010227454070750816309709849092267859133540203753303172066871993571580043895318170586325552053588709439588481429049790136495999738138309702178257035786658302200616571274833840517162777907059503313734420229074399590904828189578674344950601860571134553062448434335316391692652027648377239330331759726965956014801827365301704201159465245742573730332515217365249464690224393873331231148210193946032088883770737581648187738661239819346517242648650521267184005291215005846346173578292693677569473797125980563633583100279993156135360837046567395972082890477244653172848520809999354414901103445446123940179764198786061790928238470986899114909542336471071317346676291353644853315414116459853028743626991562729574748475637180176207224185173534092111837130116954224797259570904407580919684702253595686589981468938891757457848235513853996583751792143950914027445368578241121015001347737625040344824514418366611832053485392245687261881747259122587060200156384693266696927072344941572977242053974426279336517147126859575141438888917588972931764018672516121208041411389098971154871873149736843940987232145291678332563404196007253560158458658164388275777545049938683656326221985143550104817963444839340170718485167864889943167470095335044400623872721425680322891516564472774358645786682608127130278177093157253504795888857452770547153203033962404304994240577670912536815271377626576460215680390481891759248162317204128184268530671561829048231535873726616004236167543152932849217524838109352335309824729957131594695882257088634428891992684375654104217045338274405034672716858722149525099258276484833373902900489770531782742755687885816713776673228164171012952453466641925752306577883987023011069612832168630011241448942787398075899243431252571322993699118600079634017631641814707578674129237473629518786163301776441527405147411790527146165712280837597312298628307383385086833716469195104009704866133867006516728882801801352576774848545973608553051692059392870991905292696179657877420783892313644485684242772821383055672744493148042460921199283058297976154037586949769277559946411920136232373350727729541780352099108277540697682330428769532208111244678948098620213364127117070384892462261112929769964330242550910427824703889331581608351309936889001746631601326798815276340228186565316375330551944674330931395638337405364750601278637017233123159208691632276277673438487483331337890597135651858044694191364726589842897515377928750674150709488120217809061931194225663605433805553179355943661823761515554350976172863082648124043866184587180951123940138706389202941089863984856116519768937058327675706450370615312666092312840150800982627290455510601505123525037638985152152357925255969837865197732540302827474295572870394231635142386420661093211820944423772194639249622527061400224398520749305171629776008366870413622494033184867190741994671439995048112085911423892160565909765542636014165897800341106881348895095277350586328985930993404767483881374114816936883746042269177409988027489684980501129943589341918223969702891046945573154959487497971103317025312370068753267165120454103896015244344850219706768145924981479667667220680201378418167449456601611664157813041020412421410685247873673593120437449692840497343892084924198074337546476416941510450048409047274012835110212720270702479402605971255918987798975040166417548891478034905432554411059575809613021156143734989014165221685516492969643919462065199245797426798836823320255720107496028818680467244205523052049335404764054948985788609154810985903994097565550689879696370861807705707401453453995944358438724075235018158341363702266203943464829112951064284343754121842704121731862345838073790049825232371581195217329350066942076454397897718739667279497957134387991845430166206213223365906537606135735651894341845603100051108305869393651259133720022165680313340456917550608768390537302705273855212012344242620231391605462503368754666531414523624912945635392853735464723704802339514282242527334998709821751569673402329821716466891729885257348235266978051530879451560204994036394463037383559903006293728727622526819652604116758519596337418217715415221702071971091321714000504828311175483685500989985553184233781921482992384237992347778888233249140632284353701098555045787733604582807838112255590331027516036796750415872194394798477187899170702285280659081585372156072490569634002825889578021146677585198729747457974069396994403259090730822336344061779236055474491506708315886840285692874647644311629978835868605092192261427734409137475267426278277141470220449168247800047498427815916188323016550710580756936876916969163325863359296744627640950114420546263704373766525752794782930404105919738877103249565175125158134381729465275383028049902061444538321092499206115737945127387542247976942226134054689660600088750004138724013091049701912580002177944689044213764669069091251408949341568942371807757465989884669022933255817440336153372989345166961921956435768213149157060541401664140598914307411519862445473666973744385939326839927825328256963751538418347227056805993527180086923765493559448721453600515692087147374431054712471730526543300174383961172098990216285279093027350795526717663520384384433975436101596859727206921063318327568263885450597561436529530492259074984757083881373353791765425959650383054034309066286742961494311625050037060996486797271627977323625133859931965753540553979089997032272502274390803099015892022694615539344635711480704696342554483206177813592610702770817004258449605406407669043359694640407873499255977572506817182873596007316187755945766146427749091224184426202149262262567375902520512266011203447805564634596415691127211528063359014915368348879166385977838815658761583263193444359123285767155636599637012588207470231092473579075129088019884484647410078194419097131381171947521839240031920761508631118600038601336329308329991762025665058252106563250851455963485491146986619719322889761832347828101783572143510405500532039904901114191420708918117915050558703629265078754462362863863996524260407924767828740340365500685518491512777232150481596635230188468370067191247520433237760284057916012974539813530513432205165395360829285617993675556532792987305987017194370999453166499647896675791442762800262505016456919878937170879887866885709367724303049756440248661368395450443404044064585617114499563988850681573466368432948961601797624388003201558782470067048307949680179996970580178713957949151155753530499358722246301684789046604788255738384356889705088579898073993802738437495632764338243888547693548931607057939385594290080796625209935952005113389058674665038003042589500112491180573805710705315895201430835306409183396534843163684236888970623026424674580487552872803165634383250389005407664107644011484962528470750591365191221468416970598384947339802210802404963211431067613457462255259421998430226604992486342311821644833092723493337200625981046032354843597959012435591465688215618441668282056180637617133415196499501191477459324948542907251342723171515101482824772158870722570223521981270457216166934506116990417507022487855334363628994626157667676093762936326903922336061827147931146634126401173448004271426871587584269905757076364695196116342244416618415851417881056361905791900698597144001471618956408167701227244353682508032446369838742146280506206644681532595088068909180213400255839720137154287727828644222162870776988015015877548539376729542620480189009360951905730686830723014153597287221287291526862843504687703201336114683813801502488033077351763070801876901578547413586322280610772050100827848919301584762036490652563086931058167057826591136147814668606114953944241672351991189062360975855660495652237348946020611576362118173971715500991433384746444724086292787661192156009771490713667617708924506456566101305129849176238268209350993941412391298736394669273851852219188866983896679477095489012165107963682381388081089915488065965431030508998540055329992163713969231514200673187025046774746433743117376516256488681045798307322254618597758075325074095167607061613737346085749557530920038224571589630165972489756662401974205139131204444782575749255717457168549780247371649920863439658669743900514318952912534691314393816785141793992977309040911136453893986861992839835587388880714784827738691137707536739702795756406561981059533607075544398232862358628990361381426253162732905932658997598842686035498137198215643793434529732422406498202601977280434623598227087639778810727989784988521312569080297737063601189739676593401991685387486425962774685891866566590953566366629133191637384874756288506602005303184315200518355384988059815041108329775045591413764106377988424593442860518930029154135348767635287740149478367750315048207452284169519055833496940519407099093158091591867736440069391951854424484787757528729700308809192001413991601198998645733068546496239701983185004264275536522176777498627576908705676290011280511712696324956032084686912486652152121290257131858218275959100661861160886637107750211959755942712551823461437420866375400620930571230417449984932031459177373845661342424622234824591859187688737453591824378947073520693296708057901207114125383177093623199486316228583072786792922589626316353156551916844602994555101386908360644425736014161282316368862579686963014708978942467102819018267162319677038767229602283905072716692421335974303423665697488216629643155523283951449232301101818752627033493129296536355039330675873043418379073150679903233197301251692728461631919019399408246835813698159301767108196180252989342749724311963901412400453734434084634569915297450156681210595068067984681671957474218833205151049066501216810792791224359317551695445592906822531375490605886733434364368356624993340203950800860076355255752073244361887556203499859747143389491286023443084162650144987730331840549638270985302350714331285455719516078950880314818682144626232246153081505864875568023101496156031315784143490988122087722505410656474179619168793685274933696539828626655680493119650015490244183875809349656657940159304890950967054330370465428180468746434928552038163535387320361787027080138930765611911342995840843958222727976614592875145864118673591283451027103088417663673142642894812655403542014296374144267122117182047287512096060868183886606208252906313670240580692397147404340188165155499882528171742529764079713304368623891911080936552347991300344592226003845132080553999692595172078021300407593816929670700594805389423789117986948786984386108290123349959568005891433265754340433517261354780427521058566263847786683472006747104691578186341374719818101509139027919401632101466797255120865704585688622378854363939508415666010158638727220912585776090450063637480001839039029009327177809703999287184821031384212711595721827378316767827437022422280546458244805018150089863131438378218620881137453288297547233497976264845514429774939693336377324468553916315078599352625936674252087328898455285027157058133496468052359260708022364975728525005385989275029386914492711669983195523000271402324209897251119648150013273369888886691157415224386919466286967173358700912649884533782865495462949935055644245651236485379219045811298347824760325051854401504205174233368938024597590701676109033241279546055616241735189579765895387641825909065740294494068961090011760004657601424105840331147579625580768145280165590993019844831941896712596189479312258021087561760533554331917616661626094755888529868038928248935442634423341498064096153798876405876945376021291453469152071715525402842676810422974229497972593980994941271485555554007987272533076328530801195161770482537587508055792304547740258374874732536562211495833076182380127031627140294711506113199486251408285327520443203066238113154758561149517228529311942379760584655313571839424489175107245204311026144630742186824729624971507393352518933246804523576504798574885178155899651663741981538615226265444664469049645226842950771909919508592646904433335508952401591717480154995674240498625294808126508924559040604396190048853887171154741339828606182225242571841904479623820034125865777770466666835440169665126265234873342335823154602570128969924901923504198789601475290425414640203746611313276050244721648255173580999821691584100501987276440573794220471810337522021506448150528314206445409534780436690404969574814863055251450554599527117862660619573845610743091641081206248602101543572039477301969994921034919555078918259333001739090758979712711504696065103242601508142893228381590335857137040777106679924815842273806980348856908963937654597352193680624073097337427557437828214541953461949449070711275442985277360760441390418661880297874575455578709742379109319301197545052553266629868752312936105669855734939534963211256196171477167327289393989909569368143053417462565860880891749473608841597755783642547588345649151247021760131791214036685353571408394660501202970060241092173417265252537367728287019699063788621694317960512283089812378916674283258109599783484635045070348405160232010063894158864219180290518463248421122936738559980541472939205163435554490983613337270448595474760397835738581971561265137747122166880406996326846676766887538665951586045409304329057183531257209492736299688594266189883178675197297109327355499467700476244952753983990492834534345171047412547513825858471778008605340986262088097006605145952731597379911030792110852362152417608798117915930432369092243002370621372367203481689518555116161757303105405976387119657136798962205925131423824070268738268969732624746703028014673402646503214063373643716113408798937184527782001255844718472584394324219039066577218429710891590989956547792578003269477008474119513862741493534493218445808416684002094157904758080436313874422758208712950413665165031467505517654757730030810518596337842881869418912095868878446941848734900241478419204965560597657952138402680309992790925156569303033247094470460786971646643686380598731986266868552923149523120783250938632584274584738165902301115257111561177574932992306599632079476733206272991378715980652188561629648214509913722775105147028178290739408055634813387694929025095034944894440090742686306640353461900772454755136583706596332855724003145703862420854884511905033956595907314707370180036901284770877624864648104404385242521014479209362446511026822374135400364422722459563994975493278610844656753068641635376941363971008730011720184469815900777201632004128088885231460577734967466119858868939719528283192712398116886767473254208527160792035396048243633402016362479875649329891318534490869804297733492286609659451751604727298979946438548790195079540485136770165967585769841811798605943039622404928995527002789973475187691859666283813891301387992055963762334223404294764361131391018635077019656758583476132954456813498738863740142608562952910746443407118270329393984663159744088239443006258815319956719900623388627652057985293630023668208427407256339582510842148391439922106614129881320307868135333602247796803054613639991433757367205720384013510847998143279560774974319774872125662856936819653043818452508175267276134401407641891569839248118771363755142864701246277989903764534602000814986095921169650217546639486459249024551748659999929154300237931903757479305088376952802046123503321091295383255528081884669583013206974013197748116048234540541087021127769180545807366762237893581752237958933931256425235608022660220366828085813806275467135410394506578639927198796533254810352453531247561364471585456875226713509364144840429278341838480944822948295952940388306708926898990932541282668173660712769696070244814542720638386439461088585778266153233603640176682069637418225754173146269772612271512689889625447550706081139003756387092419417000015778759288968659718691115049169141677201706612203461619000964390652675884384099723661718233725529189696107285219405166668777927358631309458068737107185419963807835105014229444294444552803000775845776769656230544447567124580725088943494342349383343077795653816076790654568479924311347483073989745000913312165637740866782535955661856364826408671973191391730516179157008383256806112313366104316883381333834029278016370579969659381713080833642780321595198128608683294645505804734825767976419158637900926794862929562553276964404345874259224702575466111187053748832490206691579482488129741807978342965013365429510503113365653245803869887627023819769706831767246709928846200308876104868876558490315484426093826641898085531611601827136881391947697783520449785236941659831969633645599979321559886687158227133233032409910252650342879382927134293895913566820382404345084109693234222461568257077674968947212098458926414497884820798563345380418618310124640565272517906109524617303536649585319550078656079884165409892967971248993200091955524988826935979774833081096649370285942975620965190769433833846566547305565187583830164323142646742329688686077159532506414899020485669583764022585607482452417091549556732303177534078070237653049324253995702727602225130364322787615802109611349371276694494507245821949854552892205218750908351606316927565192493150758912195108652961103818154630332282727504683950783291960732999979252929509719132570415401127648598004397795007695391390062549291051808136627003275784418059607231754602847606761098214478994392931432070698936119431607793532573911178747962210033541064165972034557763869509868061679161568465820282272234095599213304263709425139901954711565851273184652795931390761692099979342458233938460019381921624251721531825025599341492057756060051463501768406929380753424472943175580838288039278293499461842997817650130613255287022960581944667617348068270305725832192189272388851967162377288979158077393696515788967892089196923865658121403116272220734209525030144546989464471235064871124718463358592420400509382445609184968291067753594707069095719654151437428503232118775018668309826897073913711105738100194750557100689085787787891409792577122612702718220619880401703599831186991850685254634405505054265253317032757941014678108891947038879026400572547110005297084264489338485151315362876485266503262544205986067111225575419093420217673218315555429441377623344535329676924163596014349553012567184244583042026225251340635472777630270688746771987229231159160988441318353794870580054425958051093298740157680779769379240930238977631087962023455382205679194865749464916191409564592577992868013417782980929882466987980283488447521463334342805452814540911048759336189460785629839172874004844066841691867313331460335403099147602679544913367780511967680181812879467632049852355801234464271566125279750194168333389054472006282785875676137087040540984987002358116527856696579042317476250587935856161348671544641912278071431282397350834159956768973246644074631348011135692726364408415540125575922097179993307284986138164391267853659698458973090026984613903176241344772669726891410289120142934849785740600356188947664129187190735552059820918711728397794259786004604050851757991576098133444870340213432152907458783516295992825924564531895475665700191810349337788834987891274379487299890885536048548685243473819542607187804671811960232958401385081326448941088142930028801283487581183145529106804510107945070346108996348376278243018566253133794416635251367020373274409236824019328337573683469923602308357504870178698507280178328137307394868561703012879363559566059264227964957212091751201049468909896719132065404963489496142770336439769580196606138676805327400705345852747175400660192083919346927357346547292652430020462833921414751148798814887441647845152139362163629770950488762911869903797345778995838608649958600501142023753205658296631645111595725049578185115753338518660182973837359851267771059322444115288642126204819295316487637775685373564935920268108531659700606363500991900306726509194795695829471166669714070269760678289856480084521274150796558069204884580612038171557729481172311811609744713093565453557675908575287577534523877593099527294388614455722956026573276417068952240974351143282889011516436731509718537882336588935564786169841938081689574693562833817217579858469142165029852828544631411897340830511404526722289335022527335834291246839345311300726078340675361808394020192709626297881294113148225723220219614821278132700543541751145522368507277009700341857269033433566078880856114084913028334755501501667817169047261037916727265605781254862717960872351497877454823777567560620103275767652948932048121287066269359032898674588867586563987639500565430111337433039407060487317143878715259405563759445671457210650726358494484877085478385928734263147400960901182106632803702411500497976196538356475160495725739333715480875420762519571109295546215560942862794201482511018318427343725912385779986319936118535332374626516558169802356922812287507857296678967156601561073903214233838358154912855426809283067608275626451476192925209226756264220330479066888986624558860352058704378113030382213829625414022969650287964920860971704530174619497821722616640416662431715294472420719898825597892903638765965353245994854730747978128138278935943030513920735885265469407793717262797216662545618097418522698868848184412057526281309428888553191052523476040602318084434109791294130148388441091917996937056935354263917784504925634739796811557807743081279531477532947254900115107478698521360325796488702808526695706438308354566710938712346551402311121615643481120830940184871451848577965910110302130195944086713349033473197984075475615096736768766595646824146351344608008350467795296874831602023729745404549526207280094683925512557767660109837080210822015194355528266697392251790498922870833883182980863826768738253540044725675170480025490699224585307011822362073503623223932011181154218230382905103377744581888779424736172881571066828959671346676646464615023778241861175123954894302304211485860363865766500568824803715606858108647234585684125451672125003451069896755412885784226952679695363083861777596019782864510545925638564413544645108795769797974969625694853038469098327398530316463012855082339718911805924193595777111822470240269287113061951842194923562883440160447967325020592214817909127238772878047479456069035603216595992514036972568320916504923378014445193584746589779550417926751139683654166037597869975126855674609821539663412615238958861203639313751618467874399399351258149342143005061841520278585772795922695031669366702789634147054246593282439915113863511267468154553861301763453317630510304643796228751636061918258461276717675364153811152980823258039790305791259296815435606120833121809682737815065393210233418995410981858727561050188954951773421677059801853562181282368340373266816467774550674012720928760647771487343924758465495514754626120578671298216209950882832495230738967360546811202769044980958454375251981830324731308916334851442492365188994760263041744834284270740448986649180126554829421840299741215283523794510314125422597496192407175596490005826134559199440057027407165527990749237243185732731623673298287691938908089424280147208533336548351027526554586112060996542797496821833173154318120902743057913366449087744563199110380692800984776805650898192077921444651446947309452612445089014968382295071957078963447907628415621287073910983927577359547763483711944305642398151753242832477539269587234942597226665197593476517291276008869249630811310969405970970077921608857930475008076038473973263710254585969611981036383662092862677733615575139264186627051299137863143540501240411210954617942358994846813466813492255367883641445657247142148384819492419230563972126722094316316686631083068295723006043629793772548154240848975712916069954915394016273641618868252869403138807209606852484307822985448073118350985318373359095964570460074095656412038413922842770425732604564504805453028190929887688653148323451454673381711678119461419326558320654137958637094780022835504506518051848417547436183199018156538422944300636878228547971220260909060073690743440273720154826018761968133555660948636652041372567059920264513775546298311280369623791381694156741922017738086170177010045552507267262858131769007226889188849649850343959974662466895220601423308353312792777678244322750101862648151875275313179323599229489931906411052598067126420901252686152299921128387789073761951321447437117018031600669338378871246842264138957575524797872771292124110241122534169848064287563148241800751561452764744581024108163318500952626888677684700419688670308698114188295510646393426414409571089334137619285028298840207112583458571263041293580490856197790111808113405606943506222973654084039676656723084650557017041715113505953201935193981326689990560211017760630999046035654057456189131555873976785109067718210490720698344342820021023936905489496509564048256539094739615220165802786083463457484934837862184231645785996893003867171659949872370114679259316252143770502261387739607872558732316406988127900074248273528786968308176233812902975004761947158707436402118209662616064585071263300829238604246397214401480325467083971570246945956458504408685331472650806540341201210545778189301671074112068016900679784080057128056878922386723419508933594674463836637821336238861911361896546392821277394609506333548604752016721195714226505152197557881629998082420220993060469669068622290848034797931068233105520828433024002730758812434538557867180495061553249402677038687935217828232753484667268056230741569172076802426057642672832931736688922787278274622426421716222485219608841602084085297906229857643131378759172065268498728487644694743024281493139711118366046530973825769677505228651492568739433763251772199071439120006152362637272880110414070057675003702213155145637648750029836364420957597936131460219031448022546066437947662496669669556804864899164182685306596295975770596530684768805018957221159471380752664681369775140586226799884503677254859271479447055970431894231861194506305137776173898327387939158785379375633586329605037347003219292605829529533465677044340617828389362576402872634921442897582968641677126157528867717730988872864331808358069180350193010694688328451507529138491070740992293532370065632885762454170715158141690176145243469520736187384069215508551679628904066788244780733935730858656391741045048918250916599598843417791170646355793377306062927995701761898009308775556419551849916706183182217679104569210741407385679135341309151405791654039053436487424143372618245977573152023434006335646101711603937963268969009861527181588123656033414660976244363781669310707935892912531622097039912375606913072607231953452901756102984563577441357743434351403309329489588270845688513227882354279812577766903768665521361882676516098700126203779068484407384595981296580499252256383308723258399532393220795498610173152765480463175915894103624663924063481694117928100144060842965340106047060960954590238478815076799835548186053452898832829628833313588330036928799082192898921876526769429636277268921711326986347998941986193993147926508589540961551696965258302575752559539386378646802261819958510453574623751398925979210780794122838158303752507908134447422274967242660775989199702125533123382383416054013776943428623659970641030572161153695700726461075042660779308776056594077714071324612524763519503105113301053159184473104619217859920359476654794619048257819014160774895949150735937681114989642301783905838344129531077460952443167058546203968626694285838295374507517125046130459544006838587899169587104917538867983335629654832427414128114237103776313474092458064864900621703408258241289478679866489602436449905575788854121506186075440677820122657158085387568240522562750307901847630198248475245856106768948324532968376769514592474587581434301078856230352585961004982169694437211026340204712759656975751526343326157156145926724367756690631514882294971892258469994490911213394348654242321008522331509244371263746830176309837848257153190765711295192769533081955645802613247848859025698304931951040578866004140259447962855876764276619645675078803496397139169857515805105973698863003291774258713838998345864473785817214459354250451024598625001555503955226889487471566469484599358246589390596300043763877755189670715404996752902359151935364663754340221884474490350639188487358097770259832806399573598734274649902538658213544865577590689673134235762351069246413483247899145657777116748023512012792943824812163731061828009109528289662688102953451327010328520177526973337381161870397361413277242450565339453925941868120500096837717985429513753570362512631378087654510744279958493067714960543897527326942610486054603780709871288072068029530699808438599941863196877167304187429716856973614970232409152058905244187159656044572329923696522371406875188251835410891866981776977480406627796260238883111678443212226784797385021224501899163551527196323405493010703438992701951068159947856368918608400451407984498932023784966643036752428978125135200642246947523432048692569951898350906259478714339114816864157910867073106533959941173669053274679358361086447230143623162198279722524482482797547985661813744002693369191580736743706715195744111164004482642288352852216213188512663831067652058688184712679853329402997647506241199097548232176797717705698205953329010961274298663634332396979044280425186112812316456166172674834312486261585511451207759729791194387506592705698253813441305043821723861201825327674747118378692593966086371778070776753212246467268646063567390429263478371279694149659932234840680671984627674652688602286919187945016350550546687157851305897110855132035696120615335551900657176741755902531290886465320777658514181961485725606043118343794434817294973905233333365654925960609857996350585492575865437852970547504123740895895632134775997592908604168394586016999675129003546155899362126359457311319352125998808682501085380583858637047901175458238899108688501790074076389953492160134182981248328478889856620118960236316492280377734663664594406563030590509633992852330570864778524857360199972965081168881310774496114221088441822478438935432769980928389965044296141577294566831533679741402109796807207709165536127278408335305783367894100375740677089608639735480829125505793826197520606135374649511108101250175891571706232244481161423795115272491701518325671285727740443613857596032527941248955068970179116456143240511912639317343429759150331180094129935287262195455312946343944417009773990867556429301143522301015779912841279780519321536565591747369546335301424564416615406848218249978432040533851108285792686585735239863802461719737328757630425108983276046230428084553136267584180473870236135355032514091664877761849527431754607470543858608117761701982498179984432868893425670402059583984790076196302793939989934241967134794665079921724251920426213546648927708251872166222983475340264192370544161838414897966162175078555950401384397490070843345072641012412121030898185321831761581666760254141929787567998663493777159343570044471454018235328776821714859869812687777343199706055741585202040332195514688486821593130572172220287280520442754287642980484771672232164487912863986183574722778726591741098810223968883255869874935991349133046288354155737426613905025890512113769994428049327933327128949863711401561305941428901811343351035852900731028177545529908397634483685238888982540809380993075135595578641917385229806246467656328853546148283249418205706922603322149311258462393008663522389186278303479125597495901730700099708779598938461223324491107790100929027855270675863306171655059002737167813832429857590063144489970610504529369384156759637595515285856493235632505995461452098133334272050880492357228095720613831407791416899762239762783831319454831622957470613573123864575058645166574488519603988945562338285150966542382300139579364725165060104327445336875543333260956842791176391388484549356160859933062998130407210412177185434531664675091204445940314333105310686100978600295096431179901055191719435856222375733645903537751409690305227586823719654156525574169116985319514885184448500550019041100887200127870770312974726699153250196089920612833874386761372455287391149020074207959165942279869587713340284726492006363465415513093086814790938161886057710474800217050184607621529517640270826654164497579787243867744466316748170515998132032814674242802633052160969842363870094343473929358477989081240134066691433779239313276318348154156083758767072370761997847070477177671071746195002817865173680021511068730251385450904911368297813846748026766709422266759078488019595153938115117299528949833417940939383848878727105637113458556777353001087436140244797480050747068467283177811477268016103591513737987873290855766132904397240634022339307091191696367316116198359784284895517275113630620173222369126397188667369371936877691045669185828353105030227355550270888507019619268932127783658832376845046543639184093082134890042778133050157060360646853624529141002633346082296121935653933374595178979805718898709562792281506608409851840677345825290828675980112969515549026513317739811761535730055299463626033693375985742337448200480361513488484253485860554520516636363371842041643131926899926427414366290353728430749772851246854615792624524681588649829548835390255340627950414269513074535803601512370649980911854301041276439534483867904851644706877594922303856709909796636692906308662722231991199172485066387858964427497726204465107567866515142396236236206565874655475734879441719388479212795529080189431038479377499582426968991465519044870857351415204748436054686370399314780862717791678508862631838296884562854510343410017489406041225999541047748894562625275567702259271120144041802089300774366382874452402505550589644322535074987578875132447432636536824987095756408406735308772191589800990431100132555911613945746606494947203557128186446941117991696033838870864253807489844931819110689554369142878433271429442197400740414963650668606184397753920307168952771081389894231548121495608817204446665227540982752298651093729074527145933181616212075694217490290626024445630428999252852568706669577122052984132634300686514354601491492058164272259617596638843451727260500468468294471442913010595537176509360791228514309583295666197756789260313341821771523720337648844358769311502868022819570290309509845401182344569183926608216271551277413085337956331480777859930432692353485786632578317368227173607469713865341439354666466617765615022658897574348199934259685058212342890418851680684954271431420609318057485398244100493119649577549875802519094332379343652165794097743801904912497457364253651019336318501235435025263770488538453660219798597320375144241179487860822908687066522084144931001396588177872184702282470914653777679618067424390510632024636918179048448050009158916200568050909271753476101142635432704772913379457998330552065284038014759862045982947956012951736036301988780650021322500287108986532025272125223371182268263744972051674419273685168229219726886587214631793186620706634107347084073532797587809358149695889383376047594595286889886580435518184316888803991203670114791010611366119985117163566685857664664424303691209973957055586616619447629123815887083473391881265368010644055595846116747431559865730488573518995712209908007541914230150515097626248709217659492269639901484706029034653417231426615448815599213533783815298865671713668429314946800249492932660338860657874489789356785383453970023372746360888483566327145330220987291566055487306741520204128882944171088687811020042025434239213456408899172452225258833854594167541513188069626970233418569538088415206019776164603861028335161031421523672577367913501203936444638697368204049579464918525339930320689219275335985113923099583449869439399913271241087725058521152319931581671902625432838227241436071863100253209365849140932214818584039686666401943271042600670325117106141136326310249163507220763996402777866921486197246636603375597559792053769119629609401007045803980539546850218690347003420092234834614131437696983463057927741647346193685825229784009107954332623763954635849459584697963961574944579528146802610490625514545583863692311547234705497931491956434961977201895523131263914109962628299272183984702353383973746898444621950070632930976139424248155059666330504376053148491973442686098235383105035699269591998606412661199410002284598779627065045240415915519413575708753724528764358448819745415989560790579420403927972469378940740907549294102168554382394378131237212047778829268393076098693304196231165476690011304799264354046328723058183928762639311152701540186378887820614008888652966694218455623737439107294959122047175528647483473721388602354299701193211152828277905462860036003011581828276545887436137894887477921835586982847110240195652343320640696567978461848222682226039672966767348520140910949496565935033649467880641312877831492739234426993293880173920937246213336576461965115102439259112831678316154731137193202053060273791507031054526619114084655243602337178154783703398144096467323662401615854422489493215432418923306734941481880387973952463895883709997820956443177698258246090208764915113608210748044647281847804048771443514971966274921295921390240678148838830239434594967390977951536431282877420419638623126405551342103539888939193772940064353710820696476650151011308895247796702965365366253314788518491038748693729032012150633698858686876432669451732916127619612122411501997712274460752563254102931301191537390734718697973470406997881365443501683893231683511257551770184466879326650129255750228331754678898047651104981420021568053453136812433054362327641340879123528582950671063103853564435265109497455322115598507745474101361114597557357569597789635643866769466861573942903414454275473274759461504415326505338720571000931830472387119669875263526761782091543361631667630642276237974173567353824451278131634846673985005987382336611487512704743043660565032306228071194726772077374347457812873493946742904166534439342876624557519301618768260919924016290271137833585282937953834536057840526511389038277499805305104738393734515039641473040441214351476358019147534940454222292116890634030356110468829166113621916627460818365971555817036930756978255573966503624499803226362693361442052028232929588445833118266122272938797501743988079914350618211237838735842891367258755930185516068876815193150443352498858815748956942914967306380043484352281672093093973532815185460488206045223973481223063686663827665646178176587092597151390885790754038641778872840159404314874447210624542265365452837287603927821556867373639449987590314619182706154990983495575605501325834546522616623299414082722685191212021230242794026858260467016238059456949215707450697756164378691545481508777813808274960738877595926233747740206556954284691136879650419223451168023576644856415977809358536886712292591868619335420072971109766207168934183236010574600229444341894107986401756627040992189476457520612685212942727022864317680001942707771611181816076707726235497313603610088623557461019379720338540389972701876245923594154605330087073364111069359202268621838158471838352455663912556432550839246775592063743061605737196210009304843036925529598544996794408289702354576460743199506629860361029286436876782939567645583460083060948865335180381173935973400879016470778090367192823741095863189631947410002609390704754141494932757400890317323867278886148416425788935110419316883884841633528846133480783750770474307153307171778093276026816680800041274277287169577647678603126668474706460811207280132555701862815828231756362408711422453822561388112732324005567231343036613494942873459871324220569905205734947563294748130553195065736752157069562706518110714897294229544031225076322214563465310761274645921362307377528652680241052248593975071340424209206088610403299920163614400365138511181165592993086881902741136913843978292117543639026734159946451524192512260219243557491794213192152061084361556269720602594599071982020343140696589896523452501946005763676797934771478297514974833313156449317009937197452223028852646011068834790285408429299773584895038557083142830265031438581622047860179412255787438330621736506131526059036891892958059088300316985171458695604135896792291390729578020513364550750560780743406590623673087247828041640324529905329495927965468859756245630405519699585888148411620526058892068007683075234334302045976177003446703765554346334617541162002576159777334078895874586587322184118468899684873771761236473255822454183733591604139091385922518396877851729683824219167555947023035051802133159398655051011182235437331551811978788695505341530240617104890110441078124353656634862435565319491725286417337474825139859031987820615656355653353918074938179760002421484687110627086509847996678522683833697064306733427225015214560498424160964089002615292347661245172441722725123593009106674791228691023638553124693312084737458903104463826598872968629336785229383743207883234037476169487830265252708111624186099665277216956854830427617388860192012480469693927655096508376342791344571239074048517138372727239842354628164675678759656517015134763699894660807283539279943322269949035976468374339926318384635878321716228420159433257033420844624239660346226804954531074738855528142505000600452778912942281406745364383040212147112565814470737383800501161269520079020659389429234940263830559161540420834675822714668839879329742491709353543792068113152712789737533889943928783286396914417207819206401093129812456068689958858191269068816261252522228282797110608194585198692341801720415072069302730494019136088353694749267927221849775347874498464367021180822466611886124422404579391860397371755454933440542138703345474456686902342672206903446259511975229142903832983392296689887510849099480246682664525700030778795478549535358110184135211279165805120547147259743288097774807061835741356358513423185506184891272137051781823959866697087193740332826446622545674973413502888068948526870959253390722677366171028003428967692398810615148177981782746693167604394422617555033318760949675512206322251141164170108939947930450751020879762906136994216521983913959754797847466498780485266406064704709807496378884956687660937515319529937140234051074029741104201621708696224288981724258861793925474359081980378402948907016799481343663233681125593282460598528577283298519456918180384578641706772073277867756420131864348480967394341342472984737948847963369141404998980734781215175150992630686337828363850988364926449216742768065081538262195697262639026736117419875662794148506233603066645292032574112131548965653305043216880515027298350149784587103552889387712245526075424017636983192060766226755394739264867920294458777437972334754314404858361236613505000511420617765753832142781132150456705525239845526937452898011069060953865321264217615393258703246074068707742070628948662343020154516840095493251593529548407392157394844252279676032517770112772937362276630117480904921922347216003226408129351390793415500556016009439246829486398130232816839683059597069209678355316908152992660772045072437300651620334958352825755834572855906895188109054739668912201185503535043100727564674725524875380619899485410266356716782003090839946518849509204667810049516086911140239245234188270408710023760871210707945665088000486300083065845140247606727206281823096531272904510710458965408230254056018600735646863618479051704111077026863856448559747158564193823881315961917639886625802109951306572271821761789279454231734804851931670533100545917325914454897441393112291093963767537598721256246045699459728926945635918934820672394070079259801655474904174260991033265911087597708989539379424290674151661708142739880042432567017117648240915827366509761635668397055736369560710627064149121311019192465200608398752437707892326400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
71000! 181661770154552011880754991204486564900235278840239499655936194620115312594873105664042003943211397288847097740411846344127121954115171570347659782902583582480549920059367765047495977965278432621571532545648471821196820272813918116058252893143422714944792293882203412515377872791699195365911730932241232294989237158767405842489311085479928890677050763913710212264650264535261633666758149954096800449861574890039027338270211561304374297104943435081859741328054976888196379453187018341090585187619779485574360420685922413077551372760654300947988816288658850161151950230561043162743695324860557159908637325766249561055220622204266850758645474897977917489045078367900580377869142004132708161686189996081052004234860857217865081711118416148608182318152862382145973915000306625839145933695045009310054405968287016306918103899742491851918958838798431177211335571602894553038655425584089193737391909816515213537419469373209862248336809658695633358692215234358120423555628125635603707924119355514815746131548384416135384766998292590927148295127260252231468285823191801968050077502767473274378583095057234860240835203231295015872911460292862133421952117213132402663649571946941673423692575715646712917760837831259087969602481811730870871791573831409430746803039913643111749626983479382718941882910715785713175377062358731807100898891918656358168255303999249513819390237030921064440564167593710009905174875174237943973055785481661823363929177848044977216002618388756265121016442216011865073262227880904528248810111730269144553357667625597081148687526862193731264547318629673138667825175898293503763873177479834271320452362206180617772019418145309173417686498258564088371598133545363593602768544182265808879358347895890027567879377022858564535923315035012144235831297492171182084401817608655535579305152091068819068595266404934087173490303818323900141989292766718266746024540134255549888989642533822266444510560388720990834428253828346653701047927697606953215193481726431999209398534114305573227942793655654866740495191731723302523398170624542415854758877472389371022369224562351049312091218493257811306269392484619917700814674940414415714751364407745826462645151458811848377144970491462535148536264320620414807780522939346441549775459686415029329184663750990060142543797040837047469755279795747954756972759236037000952828471213360878407562377027960511139886008026532667158310521062565169146679457923212012530436585336664580588389205629162460271352777881714445990387560422698398103934803349624825282365337131695765380950972324271309348439549541869257834186831529097349005320604901052851445392787232147148180188485393734453827782304025062750236272124519393405256362923289558928206985724061738533477459500935268466801620919693807282212682367801855786219898745173754222624879828445357762788505498150049974181132869600527452856252684569781212888935425887268485634364363610189660218947520828236355991523387888386480633089656911482793763564661410560857001690886451395303208681561395371628284296651600729718405765558935690710649852359981957226080283119720313666380619320799045415669490853188935495133118043654476843602987997280074515283549913702079327823256501087118801910514357915661013021246249344684370747013351637496437700360146101536807532867386511749953656947089254220544254538870227517989578971408939695077735748786811928393088027378679203484946736405239270364623941114804184408479859768562318575938759843591355561868993688859423388030307591156575971171591130294983977775025674995503316547569348458757920460269463815407434269545294945999541297348085247566975013433662855311459230810107155923694132778812773927085241546241749307238374525563973422382520402374751239027606067071128777585917085029948315054238230101870521600162980116268004603971030131919850225292337427499584149241117933190905507360038606126000677948737151476049817390206757756533191244287083063356932396972075422284011696562526130791610051848258159476131300323546028940552116078903239585403907630087225533032240405686063337555951338795911524962249161379666422057025991593105983246202361688586133837559069702215893429660055532553497391863734019309957626319086980087601085582937737264172831957406562381964037534750006863464917204191126077127323291881284147082900264236024158288064166454268351827155576606014569046361653775983485541566132290644878788916152824656249756030968720122681253075594441343186380073914435054667487223113367334760782038056111189663398942544292669806177823904650578750393630439154156352232278087506046480986116383785835762981879670473832139828804057020253127182423277498046997238421262600504014162096751577724107821828662541374374100125548840102047760174934096388612651577410264892703113040634416448013091935483665035921876362535427407965588450507679557253205887573499701130767717171404683604598328787801908449641118217041694199572103490036197573086848114418402044028400669981323249526384162718240810306581548107161603415961955772127430909062746289131062334125733876748258550916796715446230972875843996093830635692293727784160792160465982396354996788139755872112954058058112556227232624033482496266534527033417641725468684234974925166791346940280754935518499893228305069917845374128859013047168832792403242137628473836396809532316661272434570352771155160001550864022298637846640586241108188167773533462129225330737398855357173714361789219768775187114988111821516968929887962267402754818605208378367751837288039581061415925162774967087420777655276096275544568415294767310626383967107929677867970764029320774559472370378632674208390560161432015400031697459933452969374825128194535673665480842445485302740789414353469938445266335526510001986168430706766179322176943340936441347495554669778236448811105100316572475149631606036082635883507040611469025521848742569923599326701463964610072731600330636400774170975278589542621655450938509124660763302043732673767438812430240967735854676706571988021127382232646700767976060599232446660307777830732298357302516627851414682550463173902805841662466909236355957664356433551673727324020440537153894493144023794249524973128940435580029356827728160614071083057214117932013878222300294641751067882339890140422631183480139842662423956271259443058403798279257174046107839484968927185588560561273674985395731287656053859762645977868203884652488473169156929737018773316041595474014941208661885325591970505503781475993522752816627515576883833403599279937159214906083071174429817819282551086666028568385602889075745754097606137250296486756398318944817377047460146892267783402720780480133321710893952779179565013381707665215727094733874133270897561384427969774089289350077150368666027013793778790054149321480492657056965067781556720291715114759837685619080275069755496531131237569564418669027685254426824826155643698286214914331163875809304217692655410850861229398655633680313822604782529215692282489114910412792299235033130340714175555370107093298200715126527207374354154660798124638397100194442256823156257871918696928288424922134080327329207758620201865820146613273232874852492211598484461757388525898781867667874083161521915246600849467381882220118862082328693464529819652430160105073141597018301127460781108087432065157914150512611020605064145795574188976918498375280885352814505082556554719387247017677764244827196806480611063678159946947223284003622619542183574499774910765377666517524126804725855714088023720759894310586591858434672006694695840887769416444320839737636888862644184577581364965654501233374208738640749888365737786389734607992967762273337206954781043803145690103009583265410758728059929148311817558848956403644178561839498680786798520067594792545561309435312017306059512324909154300355070963332403295002415935018088832788043159829373847352706987532246494470462376338505718061360140770289114910224951637218717433755533938392947850491052802546032154928224923093978783359404965107704055800620093164378735010726929173539299987009408805229568728440131745575792519777933694353249298261459342083865812034665157498395482373534934165412564875767443203184767413729259326553260142685323075694640460214831538321172847060385669260194344961578915712485167124481179371241608617592080784346339219183670678698713792991819252895090664489013575593252371904652651182571292112801000319397910811553549428636174642511032293155288050962103776231725422042067083262383895944417187949918698130313048922079858571278770407231782617147731352581787686711348134970509083036640949525282216774718935481187615827324048389460542649755820554985711996248182883828789622025980317944612883046673117894794104809252733851941669840915630383677009453834941374873639476637090773046045689864029502313271361736996291379246312493065287555218523538886958103530107878075904909041054919268778804615211378902897530100043001171982220049661921253609404786825989933349545381742286534432734948212989085584758944781011867538681445933437709557277346077636156251782712483816368342894132502109693834239749991579218117628220438388692828558614890294612669810829845414321963190682999762270743556948342274950219413001182452049898050673452773027440232552742726940085217249358820219782258991874959255456752867544584504375782168433236309021749478441440756185496961496220656799836823402208188957831517056130799118205705869473162575986502411569727393965364241707478959251340088428198336881067257040009507956523833182557186056184235292226638366513094498760240087177524683686439562021058543500494971065405841614669268599305172059599101302322668924524725946457313013563065140020470207736209463489212748596553859483528279629665392647488207318941305473992816373206290737515757611899847591724960283016644661315943096462697454913838802613188778065640790905714918385659963602355168049411804484832827618786708651801235076168009440212319581982514580658791247012485112211000882336580565295957602808380026017348274505360819801757472727508279011056429776086244678559458236465755044165450096391665702347804468556900795855216023883024907644911187603934173652077704747588427357533219852454105375706864169484547221362175594468130177080946428163360552950514819430271168435813552432176186809018472716381904324490812557300328053599842066442371912271030145596725020547232323947645367837859420021913782828625954921686337853167178035760259945379355941022365359450842396156862207157747175387995504817950011576708782375861360056321887798007741145929729842070144859211776639856699790572464300195289377357208647087685122508929643455905917530657326318994630093052565152555868688911132987365241835509114153325505719745252923261111408807112487907921005004675982024863969195656699220151536792889957257698111414381686919368727261838957588783465397003878129758299842477371008596142537319109073716444952812476706639804087956190309745275104777012230667666580524652677313202749549299793354440474305715463506145487822273675598868536638318555573681382204112125820923852693156652625801802291417592581995185400110175513270753718104216502272352361411676286263246686256418710022721916533251543044611879866508150692255220570184413430985460288115430155741210264244749984972011066282258534692860128982485413430433755807392211969676078230825399898176453215034822224725068807321510050070846519948729108699609227331449202893796472666283838098454957988531301484410441287237087340133012533797466599324946111276174823317060963067591807574484226860357901814427062985901854356674156453452141147633526452356783248794101663587682917378358416683077245310194132034663477285672811019713990492765070153084302698489287334540009305316299913723795836217733789552752172492350772369892576974577704395325695283454604783872615881810007053680770514707338854328755918413836652862254387183116584840791851844297369078976262746411711428697441468039788997804228520360806030977297818313279486659703980161595718880898320536012956133372248926255993213300544903531269647903461808842591309762530771979937850953357309759446405967112125133034787730449183766586980100366881508035345226826286547092052794674394594183647140533869854934803179765373550666897342229808593821533181961729003377778632049864144336494029684238984445202527698189020844510903929249970176460021381265161060520876987832130589972727171989968988004388660717715824839110088179218285227449786740249862495694523383622167337190938704915825999620356877907794276094877913379492600004835196267482888293210712992196693492553712414352563813787504577330984390870792286096698750716303303024800885879334437888503264324609314297653510999658572510584990893595131728026920948910760126369817304779951269503251511352539055892626483520311674491579024845051213018917533488626196583117740634907000802854600184557613254241735661892420913734031230679763381528850059988075207708173723375929263129081189901813541434251097593543781590112604360948410225491662187047785948697583951829630129831612833336706064855704907295667632928339136967552567607477563193092524995879361239729302043803200891789473425626507202505212146751448390406948227223309267705977063410309362319374931543366606607576838678294413762494042464802293965716044538200298784979916447702289276389664227971051006754744385317945008475670233002360254937363899323263422252635233324611155830127025221829688224699372512921830349087681377869797564669816380017839005744019304380951761325566393687197552557885609149068433762272992754932550167708649708753903103624526563110287298156438424704279656907381963888283899895172741169740245432162775886451403891918695559822358699960177341261226806112877738916342519143893768676384644759056670642308500567724727584578244674096539215325201921502031944757016714847410969216409950543151045547423255748128922476095677205319508416642817801154467003327943133176069598235463689919584578275206000643495887404632845131917196874100642853848904175923995205167750233728604237044567558105313446305444399430860708378039770427559158901325999864935370482800744494778993738857831636620266641093475553172828976041473428533142024563451941322080152845747415891367460969390429711191864823544007558649123563389440212727631729468272241251414732597950740593520853480654978049142283610262226736750879009015429050029432258529748330871187651352132577439888211172704330629552403405453103194186400351152186963070900812043330732318318245744165295701188263076507155061441640707836827494437979677615145962389384031386421298469081039596058939993393432594392991471179721490654244043118795573932167665873532357555404917360194685871690869870093552879290437238832782352405204434172953426065904942991839880476850461568393844913024524272713234416207535574973123653941848876734905214095471338934807347164755696577491819527905320573445768395951211334942015208216616913134832292423487910957391374309102735939755574483583335814420415107053295906292131807336027298699190233275088198904011089691950882219375844571914915888339792791894199768963844172882240773415544526028171614762142565700511737979218671152120172421168603954140657822466160136580184752494050036016895980866357919439527677971076687644874022221775794731886403378845207972536989973762104747322868901770494901764299592713728128892618317529966933069130619132719542267151403158766357094819930162675041481138120168752278523029690828566619488800960488775994190533041155164223505074816562851576148769798825233297690930971684913716269108259071376101405202473560124921451387152300177421953198751278250570133444417949561184167994182823642019758471106161082557140683102393680828631477447259631842007829084362018784270087760830460265993841511397611709185919552903607972443892372005035301608018615947184180349918120510707293282534337180883832997217753433370301526356567770305544866378939125529764844911822710942215763946307988712672197506134189621064042442884484174682289525865217154088734823049409604139905530471965640998342946351798539157126033924392170855440220844100204243816585385016055343342941249628690153610302267380003916328039477832674549040217217815398815338055963519978000124455544461899036681670393821813553618017542879840753621632203040978286850546455803506619858838356808857116948496040411553464247948125481728114587942024167012719130004264144090879978493860938580753646470354572594802147927651916558309510059208296705635916772972871614762888676761216302665742815228810134118755158369628305864262622663825051956693632191810233130325492074713394955360014269367308600744439454661169242128574470950505787413080421330439063013802612313126000802357740633408764821693696002854155652213996989187345317433029542796694058658420904366549868855287217822725724915545956248878656489064102499594407643610613602451866704470249403518633790756349604185324376920536694364531945195663705281178262554136971795620280906110526683517809888144668962190146549243974667382946713039389481378540176959241510205876491818058225092336929912371974451416322755115153180809256814281505661833758017324276895309907300319018550350225580940523510419092446700615092741500565756019208124473721156207914076035281071717636473339454710744787840408463225154984407404814333181150757840882066579394296931938952324214563284015681883508954423721021324833629129263976130666978599199563459421856817455525462882096503382228350998148530064894245423578740274374411615228512836963843810427199175554243036438781724613188414354505764389210494725362345737366920899298273785726355917348080350601174238317805967506372406244524886058982681359046493298392250737958733210002123236969621843321627208890175950418992964607066124034107077965662266413963833962283940118912720293947013405623612768421080219148574775637446468129407321605352550811832886863129810966509259102178006721316575834787694878847932652876075836558032963065023448982781449426950094443089691065207720424170741619161937159327037366271597506778770730257489417781585145677573459677883511893000523325237813281023241653574880746416757847684161309412337834798423862302455298446987904259093569719479070266538101994713162766897533267421992227804130754039010466044682270743926480741521915216381308248334426091548201146774574956128664729747175262078896399024673297336201023489112541763255892799335187511669035283537975758478463592921558560445711576064214284431354339230850225469269495031984807638354835039991035925179855662765307491181424870721410058505740626476631043407607716387570947538063169313685852666149257560974984567833843742309894965983498833471780724884802959579307510514467875330811951881628577993322782456422915747452200382137723750854221281498102924955972064374236964815107502840729813946270101182802866763479151211337815722402735737023268205682669856174618340892743857192422727604976760609224741278273042285147470385185869842154442890446898819987116743897011027784666744363757257301045977453168726560026686052240446671850617243898333156420232574440061711560041230603572821938101451142276148438231663202933659814438856104065836490805551070366218313582438255561795450035539270759518771197162728303887147329954744978028376409757579605544288927066473182705332712446080171371320717566497699693100667559085220777963915310852651676062373286760267324659512612855566571205120544352017149061550794812270579877731808691500720477813447726402868792484063910146487750394084231287178447447298163997122745441589167160692690557015737042742043713988972823784305863656887105648957532376230873552825100534201202407211907692680823460386209052048742136685426398659132306846283419977832827859130586216156428592305064482006664614230686471966760006728511288676091212978718978083072704569169982015104124647537553668012527401476279869039210075252785993252853611258360278893924706432134711129509606202686804238010318687734654100443007478978460723612561419741077237741267830695595430790362545867795306570896078155807175950826372421910539741281354226199532435761831065843202454853056531243659807414552174720032729457817070046359096861573711498096543905941689013802203712587903480804851531290365360094731283937426297720255472445772578374063593224019389839828800088902534640461575212954203739527822859142832150103258422142618376793362363139019511636371044937884440871337017133503151797681272395704606172221702845340581867352060191459539590300058469041759108373595942819190506669758302801695529428926535543174235706131681138500905191257040570779039315691521709002933662836125037446649820485208797671691396577329345712084393264334123907714333969056172936900641866521337255441852022223528730929757807841998200622288171275956925379970577834387256210121709390058380269730756593865837288146806738772541190977427796228710355520031031058432068383350186054697537820730815702347261166944054204560873656765053651576882146737947583072694300443028360500556527815436871081599418841620755088184774724088314672195723324706141186869713370737900976659020867764073749281048145606311967637646070759730156580758889583969314226845584163485506501473470625310062332483527390239129491624816994366132536681991569854884667504551512186539079907666882813838525515741542036077836378162965745431088981152755356487275788403654973465491009265667524338242790923017684030909467611429930820674535341954433701854117179179614258153101690256408163808104298404751771031367587648805530594515658387596539292613060802430472094957664424437977792864181016254766698431241393051687200717711240927439686206875235774748837126517309983098114828611781507582230600617246989705312710929995321729485993374173102343270063411596805644283795381228224340474974461201044760856565321446222766577190768311583233727751181522538026223143361913292305778412956737446357608769982481877549716925910123472203873159124599376757325100102483267657887492920643434317692738566676040642772813133170757172257301879129684596373338367128528173511842249500135240467071693556663141225949234607724710955253220438302982628885520127209559397934197519298893343917701411324654898214264178840511202980591439682540873079629224957227013155328075958883881706444847561089278984949801385265471042256492955333898805399844720885058635801813954890445052969343406855653671370876273696001311156648468533859895092686549965602607565697872264029321028571486140038220969191863105319355147311231293524869934521976865584120913377760206701589939911079972392272281860775976039841479512752969439966557392209984080607931145430705288570570569037702514485731636134439071098946553787910736362189918555318755980628195549521193643947752440070202266558723837042820256424643299886532486084539390869607363976096892716382655367191356073680009441719077218665092205900000046356265577731358853344119202055443260263895303492221309885100585156062138901340794584577898344426427405952191135562365363385263866128191823715743139369240295003926110682773560952652583683154865899392304770935494498095497684975389445291419817008667632976330032337877001396755610755819276029935869678883734591048721082044331221958409431705169429598680315996312445608503678860902971730787138143515886532013503830939828626187295547721701471026482914163417308190315702409515491660751297421544081357126327558674312949575273196153442279909860320935438719249405231005564298579891349781433475816750175716275996318545188734678451286416761631930237831104560389735403007107703594435590063861473839905521144801034646202609768999048197474189704075082924334704212876301309475046069621748778387369213303034421817497203124681755249719444692135633718856698497947525325999828088683210228362656156360391470056302278758990393437982033962176012523487738489571644418355440050954106139091737556713085842701522855855291491077246488984336571537902054813303098675803861089185148053273936998910057658016861408686819786358703311847723110605608769014106031508363118441778814944339166465248113058867863993615891700332270250865515824901434859138469682261171692954078566561626560814730134505158372443850986075463262644280181822067950698549921889141903001517688022977164960484034433720774394061063126288572292139623646808995968283924063656901974504817291216406968782596466329098740965151407741582160122930514231283667005863036138579140431517900430274768039571937351832492661992273634218446468071190462509228444498653920922089691320765807844332647817372143795015900607385316722667165925137663551478442978254903932764341517233051103494416644493210215041960579228314255471223189335439313247349856269552550484727201547305572715470479748270297296854912420047795989007129414944061796800175308181602451723190177739537514551330863683172712461493970907464556984395958175786569573401185466859395286646699259333988954033220349237558168444278844382238105092621693051156857582716365342413358525656445137089660205053790603828680551266220491068912686419060639102572480477477070790775814440686053649852137819077265235217722768372396754516383575552521393819864930257316867821432357717049883066255117549741603604100140723804355861006905550977998914735184970747828089132316199697886665258557520183575184851665877315127182473215660972042590058906993248320557741638854527890421399080735043468456207528106652648462617308739033815489959994787227099089529028931961296925224336439754006774368610456901958295856220740940292813802197953473078416857014723987309499272093863646970828349612263897650875658770155088942206896736406923731447428926023767499731591664540021961530308452855319978410262728419736981808610642362938741479443669690672568478300772221360392330777686676213008743568884005020303201462203161850836959119127892324236800162021880918249955703360014006563219690340950073502480371225784754158522892575702555580732844114312850477153169500985689375937310125459065327954943522485988047606465133542510267959634902479697622019693821024915167290861670418214002677783537164528210213813181053231841921756474540809428936054711824846165832754706880802389192865810270970804627210424252047239036035208418603284597950115265393042727957347056498499203343050611505700563006030252203775069973581274739659872864569829309880871302877808251553974804718953615586195242718150416496836704567162052285342934880736018092432929736898660356748441928793756575820619488448797762874423663504524096467662987317784351377043294929833995304447810740628729824074493630042209561568439496097156159524467795479531253224810162626291474130724002835777933763269396494983853400807619066366070715965303296382313769876537779317697529613607743032073996746261977046664786779296608896635661592177390102062479060505669659424935024403760240842985251932113508526431594376238300619514936528730549708614291186965510705962203901552980993430834731974671467054205857612859510050383267659105652392176018436786014136452788226162900889979809421686694258729239179329271358938130995117122494216464174025372356994827558792272809952902866469726591645499097285158881348450156282698899437719635840176293686001947673028458717472191135586165779392183767244137568750449496472143154188448848690123716432247533804016973752771674965322446519544253393242998722832968225013721605842709705422636234000940472548241274283333833342434434017768572705732790628324281014682238954248447157242762590355542107162336962933473198495156486119347687773392025989862090515254880526644050701238346706516755469402103828206182558993526502102509168508544124477858649359586111377347576810284995265605246898514604307592595598219183567372073477920057604202479443662969561147514857283119697695216803021321599828946051659152472956630540171772260974843599162625935036006747144239845665008854784598096970060298682299314714169757515760919903926336347473639196574589874706511486609870423470377590761679967660900742683564369008509387611236316263315170738957178968641937371147103024795850642545587883339990490617193820992049836506272251762346023629947536723812559528516252786609356782876790159676349848357020607811042145326246016726825468756171086141336158715088372977025970876616367907525662076834103753293674988040337313053326193707125062800006784334478252535585977770975904456716784739074970702330372344749473968647919529743308057370089544307544529775211722054393788503120797863005271121361602212587441113919959992749562463857832871046016593303966144323074743227699883084622056617105748690865880270213443188786046060578057982891692695559206690999706375397638500125723903840356043581363117874823145248396892911224359743602561914650103212363276544011761931048570795999349614819362014551764976703271508850925480408194362131218672353135758343205450002872312779123831497910425236664526898850366355452565756957220741508129390686901960738485013484179742008595302198177940981074498922893018557763850078486357491264790821407224616470035296760114692117722043501788500371189616212508389288830911184824526129505961751925309215767661039057160119894122610215201938617482555778533389615855984086321900051463867214393187843120588218783766852080953466303464279698935299221892368341562922089107681757272252229374532647930035377277225373339330882841472652009886238962792407821114617122114353909495913943279165680294709520262561311805924454934860974849417825918089608268343398018401990682195734814460798430448788890567688664080541543117823159073016198654300019716557187116711514074776560327660207424503600612869248897651672528837748008163934270781052812627896910496369171517120797091938104426566832197084952320336480586470208736730979302005145343154537457544268261591986926905429316972184497133698921010650685283938703407696323860115047034264744673513455587439742796677657069365674689958734661392184026552329549876688473512053624666830165614442011895026429460000690164074940096231667431545292864409796450980059103429639403958197976613638336911038921749093613603930998933051525647514024868645843320570000737682773400383226296417801688812070016685961352256761054502563065633894457798910158945020397274809847369510392990965741891729403844491028307145072948749639970848707568940653399633031547641205992491957604684197701822716448010833028659281456248285343550682559219383796724034472263764000695575988223754267313623499315725383108930379952954627605534873351341494487592061001200933404804913424414500263015001928442237236919200583779741676424195836946675314206226808484038438401836065684696818289781712188148394661708719822947065175193444727280653793028350284566282981068653740302562972389656213875772967883228017882680106057622536877413643879090973597755411521955905672463971145370518261559521473876682848066939388236851454586679411702805983284287470506629024300270001067972945312735541911529891081022058227007162146248635188572633089194050439622523423687559939155270701453894790381902584371814098155135383933693666211302450229573866201780798720638501419327009163920689630377763559767323658581470035999182999779514718149504264474415225295835938600312876578125559978157691490750984053603698310673414795458528971325899546440309229636474907792219784632664094391778854049469004873834179559269757688184946458767120103885151159985099804438074200655686079564963891109029469182539979695580169126034863871333201124459108165433314022641311465597544077538033524262293371759587414635165417426950423477336424061581346170729788706424057887633894379115461948493769743078382371453311781103243610207358775628479211295566354919807045460495151632704296054878725725965462407651615210587480613853580601965168153859078296063657290915582726914825789853283817220465278193893151224682016541861195295685774138336418992674152766505755745040383878761876074594002291786194721962097751410549402641416406913464050687047352085751906104625582668658493487088796977730998237707103506599548149433395084258516666471827215996645516680837425186769963313719197603301530136206671764147642863947946682723020080957290239449888741386078685739663940427356354970147759648713693335070568758445173310408065508173925540370312446538299572488302653770381481347570108690812644578235251711696295296645812542099845694105857223658543969231738412804954815727697874993288236286397957282746380258847252594341030706049673345699439331038727282202760440065391482141271769577697636640358703876691578534958005489203646141588831479367139329844236741178236081154844809912956411649719519887259192722820873635754150270532714211529555543749028000341651912744822365767327372672827331789029767225125367746059455264880642631865891643007098322280420795213201575857153943715755035962207624136049182206028813420009925882399090817882838983330936760039264858728825650787511730312039846915031835123091315105373853214719320126659894513893172052521318463065416734934510529483578512921114281204139750254380952243414859407087693680593392546249053616836891477238540699055700655401015305494836707477372596127845458700071439837985331209131026775558296203273614709729826282019604292702380167341137151055048517820740230332410384469607095874049971944520320447345356890683667295514949642346510134057462710307234141970836315926309299700584467081473378135916709483434347548820182829671167489912695275137388142354916715079522532397472015786779090010595961150971408357790238279109288647947082143289313244516579035993374535277030655280528796208416716214127077455325650956619380601326455440259850777427629584751771771954456914438656241412882333692312162200517240568598660878022787976484891829465065024333027169092358026368320548418553801378121638942933335610143624855435429945412559185178730471138047500886797273269856384483090253670218471318760291175201661247854299856140527285590191467241130778914210110519546947444214593396076772958290996892396986130041699836893530939684522242019887791342687229893651008097061559048107513551970627431390603921157971047435286427981706898117247606810371994497460859858512651590946555413598428382890777054059295811335650967713053249605911060141288257971535776358829915248888941005485141380317037200312682223264128816232427257214038244731991591390260085895988264382336360232905926161686084285007521814921090885235379322900748885147454484354280886125402962071907767211428251875041725001805554161005392680467481314433296380339788780545299465029737558939956864105205445153736132512193790019744570108161634809173851544730253238214479425478193717988019129062739105048449697063340769045379722048245515564322586923802302632218104334950821396552175417392198993256351917459313075338553000573385776114243070419532881474217100690316701339497764949015201212875848394862123405518894563810926356035598117547948391228319288436905640077541865197655031424576396964478751922868253904517607006751394416221726494231291327370160616017127077188450668887033712449410905814494239509619186539883979303905346986192520003725508783260291151186016159543810091130096723011582815770425333123147725552305329237566671073733321358455181855498448842220698659860860897123138959953091375640118006339269255299987285888936879249901808534745302454302545467981664409261912284883949766733420355301459143077748689618676657635201102336091469672060239635472619815373513042174142436976658591711065495110980383717417679814651593415301612144870978103873862624373628607499179123277314258108225280012468162619519505762501971730659020248797524269749500020623083782200870086649174134187199443400607524147969486193222582670736748301519551160141061916083550785774870139070332627228011422604013559346335833284321662036245900692394815792655144652213515765767184476227827715955907215049284031807783159959529917449324432319444191369281814600976477405362095729795300100082876529333567767718980726485081139016678875201824475202666211371053807226133123395350755167314433848732871999503556189006158932133634591455124021411837941910992568421421448977382750233136723406773090158386467337000232949320394327708380533353840093410740616377921332638228036107404582065563351599442261601298999684925174507728982116775113567651811426490975803751435205799959633320257517516487880030069246904901615938142030889547054629416743311594877091318729994843092040493685185833632997008209933074330134753708586796580905845951365504985412585504320629877152922692555390747739599875257687890120347202781352649003059905490073472021321242185371812667181239031588433941660951502801089413084043859484551894851113634533940991679208690983703027411771336887591866239488726517470490486568629535085524703504842761163627706166017296537523234132328469342897523247307203998552868407032147220949373964495280720652497768755960678854311986597525652003387558603657562355262132864074235711265230526368389561492681072569008504730673156048140943858958742781893699398583750477336781467548967394952569447366650432580894624448757249851770736619206489965009753340357625388954084531598286710100924881987520891956222471559182435061419614327679600684128992402286568102112311945554787327281986542766631157241236298073389612986063644862980757485645926852246501038116314925604950464884651500613221830694889532338094374366673236192121468506986595470056705167780139489626646727099508861716402276142932568268288582175325545372051175314390121636846222299115246610560614181917296976933437903055701287069219757618544229627194016130613949193104342007439963566743576523468358248749956589592616613961602434724705556952075448812730428185763352118373094308747289554354746947276926904858700882183829575127442779576216165433219934930929625359749946361000298337993735238166475877775443058160349847677923456302365360773900294178544647796384409444688703254836118494140943886655188969030367129126805999643937894218456827388117109206399296604080578238086848759242331099836818589936618193414662660761983059387865116358977355933743654240405007633776237938033970674223524429993299355143706834165623726825435435712340061815947649422334667771869160786482776986029788556744972440167526470308087631400601953097863978959469257145910217319807693076784167796660855483687975120921652361505594431371501663710508947462984138594227644949562381296630360652712854909685223796951034182168425493468175122910412334144332082713123604127324889547422163362441885245490544773296138737960101202941949706903191200603525647103623240925841412233363530455777506463655904252635248880917890548142387038107535718135823583605201045967569807367689225475792666529446402110758595198088794698280480723080634246046849884644709094385510446665737809411406620941504919908883856761050265667244098309593483035540511967033252918848458019709029079285112527274775792453913994838566926185271388085656749585594862412617822095390675281449997826319076214142657256466568416386987863642375381550355172911789570871565897049341279715730864094046621996544105528828968454207303390263278118624904120498418065270989765704825075840663598608784527125463777844318247616720999074536278332543463294103453005441024931433810531659902241797153526274595098800511101060954854291554970208720844093103522401162918692620592221366451980687375756853706078491419547924179724687509687078555297046441839078898499973145083162871595844044895830654814053709589542950400003406980881234734007949482300538502542782263410647395039557564087523899288321101883134370391619840739769358983911947968240476524611321577016843729305540232740004972868883360614077053057125384086146036298489781413728604438399995682593764824598984771772881823956366948689914895578034847283931240913702172921757379716855826658483772183151042157175954728084869276350283098767460894550523583394739307277500947914828123730045179325469309803877825337581292173132249739123299903417429075166000620436227146672906653699859221133025826406409652476274718346457621931169075232821134547291461083401360578520655097663994844658904008390991026762625461100518566773374186872559621163695316319794212317239085949036689265784983021212590963732296415868450482015514315075213798976198289597391447272886599950686256777870059026437185180428195145196766726442617481083375443346249872160495760944768201516323917984280238356436355052975837833716546358299229360251769994946862747016336657184299617674958606816838006005825907562208586465992267825504538975634943839402524411424002845019623586212961559363142102317750161393424658106748870364264090566036275358191284833393023523875583267174584525203413824572554055852155253357831571458703837534113656069111569144370063794397327507878990268326329404135567919650945221818563876384654759924912311572792615177250410798853019696799064791630360441100304854553251681070298065373410455318791763145481461094436516181250271981628335171345748332815444628769873751569431048758949048888526504725938174847965992894170821419568885845825007356571903974477318402047418151725793002255894917565810038597689352734902262133272534139491041702290344490883012130035609668825429501151541879361230225249974126934915118361271773647067632975380016613607688446014441905213162308491213286603103736471098216701705779707477516898852071251954650715257785642628831917351240657811367976784671380673147022809188709180160806623729423601662684730328806016155355079893095350441153163898238036967055210930161111295498049172626973292144797318178149661500579596971727634341053174866173388793511852680917317665735032133667797565522722570852075767393204233427545379287060690095435333033566756760263593048399559720642711447703793278343977722787196650906129845269880720855767697299552521380192547251260481236779914759501988385712053862646687299936274044612189265898714723855966517092842192129976216704714116275182844024919405032691808205750003845615043261398834575665854213519188153782864113995655368024287003744534249589579150625469479149468401067413650163000694537243085645726891869599262279921185689044039242635953411869753579028379736603907377646002738931790333308865735936063696704756491354907736154494085227706592996481683670020566590037487759307046101508945957299852182411420311766129575280101453630109988185740724284684501157681921733141673591443597760005692404000751100152945562597686924556461819429691027108987187747213579294948789285642681014191206369777625031225533748645823337172235252385846786061837767706745735313133200905223928845626098988181721155386758913228780717004700821755630939379715335914856007535392385191483513343226006557478947454115643346304469590945975329729668346364899148100885384752554835678694368827517273098876722670093445616780452537479495758130662872427569588068407588862001948006712601809578997985789109751311622412191756078797129703041707737371906875281174686741289126250413160737650308064018978058483537060017384086013825895261641975448636943805107175536914953365034989854015055262721109266855218332091249700793355758263886287575657092935870655010054015876611589705254709363642282397733833429139709584154520787050145654738727630991949946624347120264305910550079732104027311089792389909813280830475450148118389733438380250450870921453328595992595558977107038575655273032493305352348570823878196375829824792967974137160510034676812564462026433352804181417260443312414981819142539045237078566947681830467364481948117475303878670096569350685394051991063686008143152084740183575690434887871207095229060296338564142665183171406782551901744234596820896450295098179056739835977436819351303995808923772251766020216882263539912641635651960669069775607190833719367712056399135560896949480724250725350998411084736833593987804080669485747619029428403024268329253972603036657100160998896211913680938284715610907468913206008514625415503408681054518771649573228098597357781493082706092736215319383356866765133720028469148607125761799264974691629615346882593911214643208304524359639132865491279777822549129742084056461487098101764516808375501066800989164797836846338818929423386239225832167499271473476791948561263894530744905419205579925015231603027463030889278408610253187865211596144434624425497550332145096268118216722377734565478074671244630546453871358825733821546928587189428617715868248747170420721109892508316849631656623315255953326571659655025545622935864295790894712060058036220982896118902422291105031082343819860257571733402972072763710532051314594615541519076741160443374061498420949173555072151843375442010576379401617806312743419238205370958321795994888384144399484166797135384381902293841714190534889742555410041684560365057483628999582110277408469898718201683583861128135565580748484265897256469411708035827105066579438390448195801673199442052799975426737644294095169509352912013438001824810093907141644818644754000781891392729466525352013109431446761200222120025957955838594146334903383233495497657477525410332849967908824277524677995895193765367760502189925164180767075244206921979543659452073125205574648218928417075741233275870488074520790993497198256801149482008110709843822775558504068737620784850398790560225796187739054762417591848713767115727579182257601053427165308703202109129564491969924359519316548435946242133255417265435793259828993670688610954107321304370716946138355324968772171123938643823878491243845018715012884907381355175647426409171820419302600016663376028857995682389045897034989253774492240761449023915002124926810002845695988225833497579526432783900559729850329159122792862386371980657273023277624971116693505652325633311935494010050620405050633537325653343463114866940429804710735519129476251249262806220590535757400398488411242775214102792354440009657562764635361775448803816981831812935489416925878963233178956175655287133841565123449182272182964507004353741688295268485094226307360864405228623814422263046738984609290528280644179443595004778584951524902128360531653633994578755762339405889404681602198814531885406156292210852926690215511940447925270095238668274415592762328772036585795234043716889875705559855476739309179057013226742464829560416735435229436408827254974087620631007013375304044374848436636276813651365457852393440301013029267760757062388990712920987980195910561623109364760791017414839973669420640636985917933223918419638252298665810689856290326931732481278760755152882914419940352168219935087906075291814859295020299564489055307695804359179632863143292893971086074263438910317877626337215987744285506816633365690784545942031029874076674614097718750163763032933992157718951476241949367899825832751649572903332497025006596771297606462225974261875187139741049934382164738307703993952761754803786940304955466490875576137280428454333895600718485645438585478334862502526596794986185843771724906089817822768234124849138595566022492303752363762175393295333433358613187301932236463809306790652205730575350038412436395417709221174799652868383773897244698275866856661936407811088605666666317234223026061881866982222775797759698607026215095769733093725479326296982174384672180347187981166325775211602083634386393631634911306980022975866920526259301103127235856381842047020619673416307852793295220461347623943299319570098216930574066627960912574650583086033030242899473425844431884635543007264450773892774038856788901992163979862288315305379274814193023066196950415394802512666871766981959528294713838903212576180670692055104510128788728152620832519734759111142232107105705449094363658853754733790524557384441864872288452679471171696226288854783089807202963712537558503309843934127219480878140532528756929748851990549163700234995071817725431990983407607549322778774673195968585218938994588200776970602905170147645782075748541847433569432107317850237486931912851668366219882627008372999135517128291799715629738176471020682294869289698337499748931323854160897358610118292917158917438067107061701778553047924914092373243185956859457688544580722562345650649272246636675030591819278039010325269136966544994485264528432725943382087075884601187065281756312789120797296229296222978141793532787084487478681618703296781621976806084387802130282607679551153210516720280841914381928072254565450049036318099664790580008621064752910293831935216330464401389984601565938607646402212733263043158662711273154964110590072209185990968101860255114160591878956548523521369976612119081476499370178074894156528164158851645644575585438702111028178557128444585110232990766426328862324338428415726865824378483362897095356208990988179037967252636419913492211567227755971754017753244661254580343841927606290115654817264253046607371140616656961655815774829283019773609957416606479146754507171150945954319149818257113212128671805280025459275165496941996593224266231960338109894670554261570645138726636422420018620168422733032634767534657410696680677382432500793630948081790567211093645967396352085461757544806068742196780972400854421015945787365142551593955852123670038461139147882201126440349498268805822779221837110740872739634459713490276261716143549129046258549050564038011455245430172256231170532785288579984584606403552365726738754537526234721376262244643646977925990577049268938478362616933359229887248256300513482274546513588672384537308083364093812748848078875178811041703546722779691754301027642228298292335027433983328887147736023307198092672760337857772211950571652751003326876677879673832177085063289223718711147358665609929656005302608711235081935028551816103347311986348105913094788199936071776819426693541871844951168148123798204481573574573102824428491066434674324106999491232960157207999883452582161448176159022721909034871031729142523028558483142096611203795600113929881085247889080629258102057488897270950303076003693823861367320565207117109630864110486865547326401865690358446067407214443685200387709163002874026966598104298653131027894258789259993786547418528338131749989906322229179064811051822343356440420475086765436325324934976315632800069793105540237705487726533789630267268747625453648299973106057357330593579002143924321393668284872252989423374432298652394131037387066142408654894035750396373879621517262988143156292640682974116676361003663923809945748599839262324030765832039874005315008964170669073272594857255724370251864031534687509024341040256587467454529530325729820165625706978278800504762380403495020493906186447368538094090370065493625688405458375657286423370590668206639821656239211427113646416093011511733740472989481889983795894590408983731054802969400879975256614032041653767786289531005288190654949876549270310715501106894508643369858613471286046633052546064355506221068387371054876760918223798700395283855975379242874219748038064880429415014674160237895039251197305577372240413855506958306557228250657470746248115572794983344622834253705545200367461144186943440178815547007333178471725942527972779742700899946207090891588741832240530895334128522917139832557615353019335233739526277871882559087142613836905398170321161278527765611087732324564877621793310475241747678441370954968945962025726819551813485554594294831169923407480268788447173453555966999563150226390673925775236692621221096984174131909559460581496021436930928359432605417462099313353699603129498680725485332801689566270839912140825513302935545827076329059469856979258165465788624765539626502593894987723039824318229697886520880035109146051390662905752168012406041516826145823146556216820759267068961250795963970649649317028910350340995489103284747844439496850398790397369092737540448196957677119940292520094712419781028525769059774468043116048449360437284308356640883802449657000402201864731957560752303007618117257178296848008550372910307694925948283840940512737290937764411291013735814489947171636450880095982743863876734180501505089881110608414730391484333668375773533446111747955320157406233061791127436418992981913869254645370483158489030657586500900964410003265148003391014453274261248553148150010475040021161564138800826669802777924293698262616815698928177328602087779481952150290272405259927877742184943968897305485542125993691257067946278833434589989712867307993021854024641835730837427937485424828183238555584933442140235882777827449715370924438799172241256829934746154039860118511422668251002963390743798434730954985147163238063948952744834745624878297882551435831131057914248918527231992087554913038393421020611347629165731615916093927466034675752301650048009534080752501070587132130627379238365402725539811208746420258910426276653043532141473999518764986131355273402826520635328711048117311763549565490677245074070153131947398688597145064275457168423409827078123529679865858914116931632672588845744844925647849696631627658805424927897552265464070427063767499214847553133279714640261870971123891225242405663128915887823752456418881435517142144913105261939345881675119158357177435415487044829884170734390374097527112723793571526891590504202358251801389250383384903143157945995449310252689215388180061925622743683578238784136224834718417466209946874196452930166679066227576370317826000152539786708762874478074020027023221628924609501317773567431664942308338321922407498458013041633580792570221857122852161947871552888141393942804651399159803390013690751464318375010279558670263005817436449566286924398385200913677222310687328831426421252600769010650653895078950407299751315454102648170208494221164390074970297769951487417366007742426145189606654240779937689334025231815170995672608352697838525200576675360789321084871026279446835838137247636454431901227208334096099861918656907857196862809849467414929949699072797389082722899212224890614926193018443696246771270821250290158462527058858364066579750247818347310995396611487666908536827438420653984769359430355075222996978810111772771489965581970520553864872553785533459877495819092663500607935412001974403057614131868166830244277450626655483863141796360635151646536128727172853525804032633359750401989311056895314195437977436399948198565629760499906946504374787960718318218188534813786838378238484238700249482552586489661952857591222907235281752966108092310532475875189645884059938410333883770152201389839178787681881013543170746116648937517279211528803551578167696220982499162381222684818174681706926685850009043762283707669542507414383971600764796958058217827927310173455273667983048189375785435359647741233733013143005634005878588451703231354443666481415782936626342024232980139950103399796487316634282161293908723150753441591483812586980183670372161834643103312186018421406046086546043265251060634952708132422852114167137115710106612139553350923718819001751872419037604256093989500016465174150284486248731526227303593481539700509680012273488327914733340162968725260838892640675201354186506920340079125088933626338351262156739241970485013936457851321777686878407240198199900240383882308162998967951254443387532428916561191921761915895458691808737865429240311265552636731672992417808522988107612375338025309163912915021508804111270661828751268324701511643024954616443768265664722868388864253204430297375647114931740796013870816416465664389910846151832751683661312052143428362395045690355766480959224693883694918624769420013069964090537444375655211904058842985907265604551434165000271041959460414155042656618504048008624096471307652602021436395362902615934181865055196539540272387684041033239429201637500460028314967407174046960091791386380417941637890943447971149529693239170199407337328374863014732126903286778910404332078207690743620399338657161601032870849878841031031883096046219025634675182843360044111299313648279861719862372611506686377958218356562558010119584078324785321051509541283268868428395176828139848077660917802978518426646988886831364789339013567855251925234152423281444771292102175410855123895994543989331587385752000144675378567660396691355855956686606127215936889494135307468392895001684836374052475663371276718817205399388680911376906000073776333183586019869586992233683713604150596802980040856848216162091303747034793877266423271900309201481017157064002298502687544911834278844796469289780104469506498273038593636261555706477623881387403440902804668190109004942171525186971571302137839440379802497657702021707823379815001779578083993449871875726823458781705177078614701980643570757996007689952739074636313345235663441831086237155714220994937912024415194137488319872647129964121672403536285839752104967555144265213323671255522661370253846142660959476398372046338715046855661664149479579436709145567080465612291061860041059057668394197641322707355230003122111644739871776792183936196138029890326558651629688732796757840026912479074772913115412662409940374285264389964892117789893944180357400795734129839479645667175997008242483371015115360186036851927745759817709479540161293868534387905778518990978820475043074288285860789593543031180282824222670474415376152625368429111985974158468515260096031951304519403799557548779395952362043317411302589357047631663778667593544080758548246455940352637185178564431338684201573489258547474309646745964408962805359413551822946722917917143800795004097832855928545211313334829086971830984383830868000716558568301674671406109158520694841163595080475303314558807874836361843244646141179253645718354106922392177573398728742866611434806590412129863919909433186705099681470664226955267184196835693897831294412844637183030434944167466140766966808131480624751360997111579785571451718870531717910897829769098476272692002221899781611831315355010116181487861919865625561697881375155763752822573383426896317461140864383743860674284499650020816713194617531471020906455084012488315795379664677898972802103673002755201529902896558387446049348917785330669367189491563516188577824441759350853387769011702917607245004372394696471361908050432830331299622786567169625328401384544608454748194172939453864044428165809279384929730240860875689563912930635288791777164124780362095867226268924947707703007258189590949656475661486580668156688087093145122687260207918864540717368366934000201082001728672067631232144684634048472841466769432141341458675292471054307543508937420104524363128292242771352392240868657957270690433344619211582316454549304973652171245621070183654447696246511893993313371183890679858059272458184056827441899766329549985216022824936250841189143922769003184951141180501620041155792877439030164961099139706052489435537710458955679123109404264021415219098373636884483206896829777163111362897745912350635947890830033388843195601152332855862696683012118909329347205429974330063965250208574117352946212628265583844316665579142864282121892039666134580177031151517578061084560889427001540370643998163527888369553464249093101459205240679046415732630278648953821645066824946583024457318704034325407931624995980429838462864613148590818394531590769010575837088419451336844332315675697162300047298382384026187059702737528859544444823865874333163671346621435725990767203654818489222025318913964106761860310158163585058003810265384896226322898272458364768211458565312073831545344684979441780781939231214199804674088117825687242699748892073212162517832064486174782391747332306205243307324805817943521332757601518940386407524930516243875946629145325357152124527926420056506047280119166443094349750828714958058901207102364606275685689163738122435156822367638051239740508339924842807597418147232239565812889158776697055698073451985350279566034371528418092235894014722228867312246962445798782639246402978065347636599858837669033759182563496293388730672568615957225329223532256156331459020143348037780530669218926405532175467001195540578052359513577733035841662957118805361610169859977997785401745543998228635558161080128835587932646211186206320358256013646884547700448823745979360374195391068633992768909003208250659023243324892540451279456165196751185773988540847864350584347043268687279316859889552649103241961476045177465239247932305722724048177254239521348932745612597274281072337622626689818899132025002485126755441295847059333368931488491720950828060919503024165087212248368558798082442685085967573162641071175986010620621082786961858046523708097670741042610999792940694272927594934622036164836572650650835652695861316956497702284933925820516249926484279702957278646176741420087193876562536507529511796919260604660681092472125958430362376283487669389323933511778618577422729834986281108132632790537074654675305532708574529455793330817978391625790596185065264368488278178307919277114645455005955357821634661874567554649040344295863254524264911602568290245756140909691977465560180357504658056908436870774954552072128879098491366546951278377899864821156851287432285947658580871647525523799561131393617539991521447611584963432975921268034601520628120272006775444902420149897182512554299479141309817912052783879192929325702479136353410554818166575955586878464013005585208046665110245234204734432491841561303197050335424953307953660527890427771506553391979401011866765384793840263346284475353891089548885128305705672376775833953940498531354373011012373873703228886528188913910312666806521788166531446991063426017478808016815684617826920830414664559870800474083502168930544519833149507913898733405770610516818872376988054007082378641989682800159737628447695500113756904092527699435744783624808334213563674407534407466779691387789029350309912066477405939112215280767374553518860620013747937437867850271082001134365325623322673218007146904791331105514854884362844439305441898038590022356233590946817769869450200180323658564698422770205819863750951769903723815007973122959139681067070977504468784996489358376782396322292155490924313026711375645553098727396066640766384392828882187286290647380648720844140870862143464197951442424213774632834549605735473902313236779498909968786887745218786687884012932732908795083711364842890398600150329068543594166504400370682057324129286838972416471628886881038404704803270422567316663963322688655361206632020043645126794585754612208559624605834837969126772892356185055037886114589060868248349256835409341419915742926412116626479482244807161337304009583752119869329046069074769544367508574299726195936771261800063248004323016727176160196333637912194766835293662921647081314618216955519786970687102197778993540495463473865857187996883134030560737733241768383314086765094761662740762957696835891744026902998449586201345091003788359024998126926553990847260708756676627712145739723269337602230073648132617995053267000149648009823339459203768473889521845917789679686572491376781270432123604107873716928456540675097359376030337950380957862734060858658785421535746858783982863463667653467381958184863649116115861003475342753619619189452929186203571828485653245684659576873948344708170139835833666453813099067175630424310537147289716925964063230676734555379972385504596124252319817195000509875587911275398628794311880239909140642593840173836524955798271831112554088634100804216257476122590672742800130958313813652956716337678483562661457198668693167835334115650563878866211848364083463923800688606366151374243901875091222185562624968110755275586504685678477510850906457197302755443807038659674600388947839996093939393241670674764345492935003871901954466838854514157966182819950293628124540203347589373402522953748624125032210755667154962313633549080650910930025873267339217816394265908089633283012518748169389138322115270363433937768533528862977367517983657932756374988583941324696983038070602098529439520507466248105674281636939046885200204172030160047618543011995086206781992849209692464117630493484106803925442272732053610741650505549930993473849866034225305533996162026063047045273252845035639562967863925611130418423288012777680982035630028179498897108927686963994694586508199879625534782742070779507482181540063280454663264253681873206139378016770889229808309737429269623421861223742782289114768955023262978770366397466558349177593653658746817194086208021220791283376930355874801906436194882935202581935472072395284759376946661866943667756001196258081026425647293240739204723152718560512409781219829467464125304667626725828626902350549754073091570882744237809061700409446764350691961865932981296775305989260569845838026491743855554794774439492059269856241922601869438582378648617751083446754099156811880452329618749463458614886071007023333339123625954291500206848303828998501001308372225648981153158474995308642924592565762452888600996965748872806514642041516949734229389536776168706706214946609886279377663646291622328378227081937157457839997707513799409598079594036236970023851754469333883650914891041293169639933721572535757597103034714608028126756058379916284292396173697445020190319993733653236941649101840829094617464995754135976412135886594617068868090951629686344591495462159761956846018047232293747573397364589367636861692379162163824514130719919205280681193609100728795103192360692901233830767880177193607922990674969153684686690432558441839078552336642787305554602296294885255912364286466894145526379842562122188856951944912997120458958068084095142344532915872390858784389011702232415725730084318705211063449632350475213452632504231861622328311406193966418670972983543779119674957740536670581835589686492132213509910831473785872826863010705958695147796019219189587585951685928262472030233667376983857430222969224384434149702924709697931997029489791811792935294215290883024811621321662739052982465085305615644036058352775174269667861385954651112080418838041816156876256954597825363742546712637063724768375438179576226143466836718041397809309873961926851317071856339740378679014823880444806892121321152245229842834718171187276515349285910276402492486638639119868786619717511487639470336652278201063790347064145325038980385493024565811656630508823471995109544606031189449549752124185906421782331347430234451014738915127971483603366534145556160897107256089426295975846239258157534234830105876334540458991339481452446043409607285863250187366047859411614284633678328857565467810185660668217727726206537194220725128359943451772538297829682346409458237192908924633056752076367711443257587882753651340294783885992777014101699199347054583592054962889764761278512030095569807620151622788027716454271680626592009688977785911985040655803498647203000151772206154911833186743996028487990128194027739142151503230883565403958066723781324647123839059334791491337132044799613739305284485192812347174556314805344289506645872332970438254011418542280684353375813577857908214342598519764820285460194784242733010787780792604702934011007595556500861681529941102846975432833796923462117147288992315282568827808084626450965209930063815505915194264208710823580833979738571309224944262524311802766735210460875914237403717717734744122417320731741255876511852495302798237674081247208201983539283914356123114630711654630062179733291139966264304684662084281313886293864249151244603903200570815780155434409547253827233579089455013080092517579953807837934329660439761276508513889275210700732632631714927780623600470712332058723369151105670526253215591533771505919301758237389523171328930754169673897602034210409888010076632164142378333776525719485009135926071128458105183111111907893953678964050177376478245442722889577117909493817892786034384788339608842467116341582247869315934037369001809032305498266147109348125692699206052605614088011561580620321039142641743636936232801292383492902474697403474334445794279966975544038795482945117692558165084933174736039945987322684795177055213936127216078567280401305175228036414579171699758775241933152185100867397737147551092457865016645065543643784601499343395709462444646797165278536706252696677633658189119654855249525275822765856506270542003599951777380956997706412032143506740913650513061285643010528581942304840301114813719093892971455355822757325419495810261036726944910887715477451864724183858902070763279692983317293660868199987962594131018345985499528898155089436458773262854302457437512638051133821013088502509779697389772041003519752765027487858190659809819364767497414912037242640718534493571179863263277539897927260295998313529841598939255970323823157766248869723092439680340487725544543699110089104820480993311875173969579044112079647383132119346987054581057161030360881433405629612314849104490299884816286920361874519087836581427137149100007829403880817145261751808736692697958696528960205819118650788533946841338319340198797418509574473010059582760514341266799439363028030150433294140718432474972941483405409477105376778501291490046280390026393879662523250173119520466375184408063632170980384483479544423264649591814884419459136059025959171244016872900861700000563062750204770921799295772643753734006633010925284775842465020421811426253229380963582234961997038658686751285363071251793424141923265868886191284700986376175042650255402763271946165296400892623203944196572619314136593872390576432442247274400303312171390272181181668972140091345111943940818075817982115468613169038457927682654725479458405514043065811611914911461691714199286740380706261740888738296683761949194092699250284655503656161343833836862316999298759512992014254580617145294932558234876865749452232916633330251545522984178579969584683931660480192909941600323159776807780305247853677296137566219254561071221340789037862991916815835389234056826796467045851058811469410748308458613231796350498584066402534714426419039626998890859269938478811907560895865131971012759979414985767728730132909245573047752479229586846882484180867709683982854237472519718613788895655041406129545838759476499216971557138128837818216634350690185870594644443829843510714979021217545612631963569485812896413943724825246838295227332553099811496396532598823325844767512595071044390630350020470667692243314340197914288930138926629224042779245362534919517807002127315953544772907190066138296397409931267859092754724581270510099128723395394970943730019729616363038299294031346788335508727293514797032127689601362409056299361358466778164247249100809603000130627822264710175042762905476221608789332540608894077228848460219117792983320008033778537568470627572810963347698921613463205804373343818722943483614326543750210592915946916891071142206565049276555822204845213818396851082415320800049953516411697797532599971255375277793129152062963598547943367583333774923423684547145738463677986376675828506695096983660103281418599600395925456786935514848813490604143992650800090958591003574878055263647514044569229965222892610139278903038206638751668724767898044743311229472802062721126935462129501699299416147533899328412843091189186638001602436290101948208200546723276252042454510128255846777917235785019656738361887645159236415182624035432232612930931704541185731197619308340487345690940473229601261372888952514858162043413064117351012994224294701978090959558403087965463872232332263314355674882203943732765056102025680698516354108588678278622883041690263487359736169695591516536586492545548795543387847134747273716942885452526344213570896919891494173020735052494331749156013429689860417503200334462059158254309396563089922587652001153529229750421132888851295776718098661914415821946470329334472880589296074629801362795033538243081955813777312058464062744426426295067056469403936111628970132526523588950006091561705070636359726332767557499936827044959909830121875717614234592984503306589311188845283366777587697635157246842867396719685725127127797172362674546416294078773678420245163028331576450097546628287084114010906454497149424321665846225489083769715683925455447192446616916565916340531354118579239499918116608241870399450535028995829780242690139202497149723852071270626335042438207800852864772229824930087463149070646205082130115020919364930196181684411628149505795869000030285441884665864370258133181824816471764825247430102858445819240490870888883401245814255338953071320744776259617861292139427140772441267290490057494815953468101409946443693871516141775661805374069994828196170559488453754316337685363627145555042989973102871107613941979626654132959641409565026494253226557507303641991395340944312606501874335390355679568436698527041080350942356233737390612441021213261102797851308530421828090725274753127325360818210152883930429400613310459361718563319271823990293161321423548526862628685234599586232364216233695106563427787624701119877602719459761302905570254087772747341839211954753676967846103300957746549797188863736874268139276368425589488048562695948637351598824269777804463773431887240132609825227221548157229458081195162722501597453793770488130433213221171818897476127702152699801107272030187766172369132187407326303559696367321308859186784069603995455468529450263394422245531167317355764742499217994112342238302139971187986393068016637965271477301706957926395366736192279524909686064848080632799675087953761777268063162141775285531348995032957245825015175447142171312827165138266354484500250439674853625001290304487121240094828171528819395233308250380900799413060837325141158785389325487400334298853855769653449808552832575521609898170219234132650028344082519751753771582763477385254402750152096417978604121679260066356001363782923152421570407732029641909229212586724773686790756081909926971072356006885402551533567132362997785258228181713900428538418729339791530347183958261965228303972834793288865442476410557525297516482214357527947832798470783157444460013505725121760746006198670019199191347714403803460149511383021144943093399981783920486199484356734123623254436599680531818558816616798349572640383518543301645201183807395776328078466458894969790546580473499929839355582700062628807473972589267441309135587870279169366111764887922131218782419766750198805414753083952787291844177081108490962844379638071027024664599933883175908180538122462783300583121244253318646482336054607554415739150260552323206282608542440901762914173360336440212821601239155336098269118344433190146575756141085527074638718777844695932842638362606391106029415793598657933482704253523253824110327093690449854474385437409763455693100765162462300000270982362272906723472703579256296541901593574951517841504954368350602073497232867547203640103865816503879010168873208450132039973927658985730828075723728407151280657191233428361776800226963527626373576690749353583170433533441454937843704453853210628403108328556676423582995995501520168509853213524247538762845734138432481176502094467015985350464553687843660723033329352223722213025623154997486629567089254237308926100475611473405454057342950204560933235763728626917282997557786941957839185045761033507645156376366022551336146341856357185075021135994012511058906450559422269175772925593366877396032735894738358922485507786384091941880236811197153818794793296534063825678851124433721399683073683371243708461949844096005868138067523642680743330999585888376811891764409698073049324256096772133053997768157588414338676333079090615903874618487625015154420783520261368756291296813754141129049618935487781859317075031195003279310784502195523424883689250471333394825511603182770310838747966549683350054787345584597919583857361258402137570939671334874162052908884905463517704053584947435147345968914335856531186320054637724490403523893536966258255686825615564320422033901779679787127093521305714661424812500700694746168615221078356168727098256617492977801696966607860813417259310053009161297737719148276107410130207992406532929192813736060457831405390760263652470674480116124929612396801264461087660831068972456879099162542351277132454263715820717781619650716246298715935791569868336675616425944173183224309213135721160151310222380652995024820528472717708801060561843314758516817585468424169500761316520587499406599540933195806022190881578339483965117819691039429774339091321890293037151371108385694198592323491443405893904662838871209585023398148215039163627510846412359287228335438021869421775834446588236672029167746736279783461605605577718020102243464878849120072862031713026136778827973297670393188159319683005032691853248821542829715032176523226762924032557140244906096015161647166440616057555741511554929133100696721626419524890637737081594441454653248616737450508382566224407480238104471016393858218335600595353112809492139136949873383316046334653452397098243197094604498800620053027736547305303504658819255411957862175007837158189698526302800469835832801194510761306059970575970510130732853967863103500941149269548591802343758940179575510738711659401549273850167612946998507943098786580168911292525477115307800130568709033882771247475555915260943390400905841030431679626962238659647459800489763787264706960242819304142625387675403151981113263551140516496065891021990729222501525153146103341880429270910975310110171205600661597280697511118367027122150238696221880016390179127249832396126443472342126131168478490569955656126446238496233370549669447516030740630839839442480506875500558586988535674569836852126328917440687066212439786925270242776146691420191040014456518568531829782939455015519917283220017614660769313407674559182532874605436528558833806774078406826494066190934105587839793423816674581502242770251753422238344374233485959753801881530835994344487433063450792462708140410906153202094118674869930394544631108296324458332699974580939562649107227417456572490908288352666001423418555205359544269788356257448276486031532407868962289961214030794448223208364726614603064717687867081615012252214966960034467492973518838665620894277791253429294641884003763714738568911145025390607016259473834895165662933577875301773993767364208144428889705832297602976318578120289619777909276243912441620882901484915138330128845558753914654649707341733539581728799244304826257669289847256973782820899985465624585935086270129382797132562476894223037153576096882906899743978644333957458347886062255906983523679321963336378855128834738307230784304545574973610483316343755165986601779921665476590380533518286675964920875117208177957724802008645925446469439897865894184142322517879520548394222527023887290543637488623794129616688590302306986057307358556123177524045356864121057967190031518309037443608694710674858591597206491793221440200652829932508227725212704558985135561173412296566547808555954808929155938432125019196335495620815962260987771165214927119499796822591574635209357160740461912381502123648603604159446810577218167037161307137667574080551250619516201451706880288321149502852809734847406043289294919935178970792640821279089798768848811116679168324655778143904595811790314432015257445816365464722720846063385429116279407621898653727883028220641557456081007898187270602425988485826185717189108810805718283178772191600781380407811113595914463457317695323013062906381031215300994698182605508430890005588465441833252816107502174972978085193070114511254780333309721311354239550515100487475636378340605808318861146042510079727626229942888518539521601815292946823445086137244688120720883034326501402508162963955206069235837455927659866609596056117556721719987749208477452613439573617445681988574728757911204725523761904338677565754260310322515143438868981578971586466140147703818744974817533772129491124612368750137591028850626446964880894569515725382058047942299624076984580191066080813661978945303669510559951088801274401787724972500120625082459698767327235653053943050908815337354125007407999392717031204783650519068328963091932356614725245154427841664144068219516776007090855973769730283853603747263511381473588615430683794885341945690893926745945114677497772045049552061037275161433860647560878044603648131253697353007093997944324319605832839232979376116002703198747783038951645324116398022171850073874385357234493976647177365585797231685797848862319483852118001524257326034064436880847759690058146846042331294196270266158061479850197374865907909618197149282699910543176853295902083991350334880343990897804183125399673490350742389896387415786811507011404636577208113623716657291126493397565341113792908286472160919239859724205631314196176668441465215654836748178028595258734826909784892753638380962162237118977568208839629356121580975548844930545004567088870434207961580099334744439977305082474764332059314674341845559604879403361550678529346119447968508535076168277422282184220111500824144330195083200797531562930364471661048976011383180444064582206368642396417781676567835548090765083646677681065405721936336116508724758502878308008379691731381832308426107541254464591023534149358503857306484677609343584055081082093266983933169981936882419594289185737366159768765821125592004740414718628122675523353386828377973595187286627387736145025985875122568965885451622191887384424598346917344724615818099117429848257342854821636030570196505746267377020372844612722426492631055593859973943436066960097610932382955206553560773749659526976728994651238526644030699898492636450191578125130892304632591703512256109030718497188367585591553503703637764355283831320100616456880336497956972765240771982862072937222679475367412301130517849654327435857576128765548142455492692363301050675963476034677300604237653510801425686038877936323601891088583508230311502974387550129630190902764767963810855108713608656489819150214144177943480652672912661366651725399526901507919707990950880566308343075539924040017526290793076991408154588735685734000398456739323121360705255428367893604287915034310007754850337301455398434381313049454983550309589806287658527373596092188663796081489233749381552619484408990194537554401297800891290965493297983815691767813207676494484631188638134950513373456560532414028045177108109370211013865093604498627408277464735809256668950632946952789794358039209839036107904703839347414392971208107062019621988033165575679953052038487987639571749767143182103493717754621294796943808693918359341082868638807698704889184543385590368726688999698824920887916597068343262342165462309891997449463354915622497045478139424205049311115966329293097309540236806603956345169009525466151136172462014697908409277035553657981471197927315447882446866842613865980088743152867170314229225977020165880925560873019529934011580215305893604654716316718308913670033032797835999492665394121782162338891918106860576485794706775376581445916692367410075599398863906314417585809222937270836865796975110582094130715872773866746169150463421134304771440261735424583205237404409031547262673226870542449404863129060488892320411443516600561234671249204260923125543512673407491227014123171204696671016163398958719533905102222790074692645583697127231514253257473220580115846697590626139116700834190151240932281004900064338492184369635470770773321096600996004359175533793258723287792290218409692604283431793976634677040022366429164795623616923298933718733122401998509931410947675884888197048404732329871010494758636286807443294373607646921099766734970765692857115902143816077179465660553743788763960154883945440556751183355414504345573022929423058405406909555851209574367765804292436180197953240590988579296322258519233855030990413416005121077032602013131196852460120109188471293221944865536165839191993122455753264371021954787516387276385712996741297204620694587954313485121888772469060666513495953575990120773428830304577019963104088605637440878950544117262284105095534659662061736229305348691376796913946917519503399616958327425337132269030351998372271367395655315660719832730283189198148148582258553995655950159409851478343563822529932514959937094183128061420387468083374704517530510518037647090693660531290888259392431863426968559892465829082441090945208631577623323314161328506342425127867758677030039669528756779004819933745657094111768069165730121814505105057211768809217978997387094854635745633126651725042981692052009195900152889266585855586611433076178993937979712941467770092716108186761131765785562912629877411781453859286902047950149069346665263816810893074072297092992908761330480819229200007336639360931739686157618449775252043144296895729975872104736443112656694188865484374628974457554822685193154762451313964867048469140496260318399164460428684876745645788489407160837850384286427884248843402553789916024158082388348683948545023307796259083486232293041984526897257119482861329414178628789879107735049626019198537940867277508238799034356812304406974718093054642401755739658055750765022872661222469417840615136678634282797884789929904809211399776571350898175157321125297758024481501704524841863114360113466992776510957772672206486440365107900578552396047759805852659282940606180661607168272817448984097638878798183470828403845963298059977128875978781615826659858355708362245930142124060319796122724870939614339004637518122255810499511423068066445523916092004098519086271484243422777367841034627330569962443502059833288713340504808774710593624922154516123643205521061566648291174744234980986386436598549119892766382521438339753155686436987574959775173613429037523289555396738770361708163098398774181513252602816483763204048944618738648093840990322465160627121315905762197279404900897399578606081626244887208180025774910606791530249051164466354109356639552343531969924369569574422323782338404666866091758269020415061306167988233284250306206147811127503922795846984929504406169366136583094725188544615836644304069994222692435993718981672100628126156558838126877510858157851321592110867925193211986476736544829641399120995652615036886439694625952597287367282370856642092609911964058339629219508223550606743531708236693793165765258094221283560093948645232401732585643154381217813898507178017697382974294353234231863211790167149636687916880649367091334392041661291979513849505160661618660144240021614548411202474660604385291307139168199448991614169168566252561402487819105724284010488166799911786846055632491740234791489102290689444145654376771359535907713381145440058571170104468250043967567449531624943197396151886822651797166735650548266319531738858629271036767190026689390311580478382699824639641908581298395101287495336216593342132571387472489599869762164008293168165815893995488794319748238753281022138696289875574396027600732101182200413158118715582279453733127238446029579604542596049807968626855840169891121648215590655211346588216488410082665857775326746113892138690598932835167164674320070650471482445192486607060305477795482837399387924639313764028419374131593301124485737390863642271724719446623957398739557395692189179306755178528539496983366347217782562235931225768812515040864793076153199152021339431151929846830706329023477967496302470186982855768040620239398174653579079783036368290564331654741224434306989591529886649157938490632977207587800248981143081882720178448606845721679449988060426251418814566190365202312319951996992706363978781123458493549329483840295879653301464048122086964004038035823789684174031067048847164164748269809517195563361298698295998617737590077708039637607160327183868973586360606068289552681544142199933479074332675959401930759587076818467908576155075637567799043888631092588787519967477431950908184153967949376311854162229206422670482269726287006559032692432526986563661964035713996508817948079426437768414931508296704545127247811900641104231817248636276799453994749140423139132567534923232382595315023469002854532483530152023033505023963089003429649889698898681467161695888800662395424551195594711565275732225592656986311486444096738840806662100439953590012235324186065140905441332344064554840560008448757427792642193823018444998360073996893341707495294952368614332142137763905958570747998414649021917141539686173105862308228795134203375190452777406304154816323359119149822189571267963727143161703590541612970986486161950045486929566869394376184756675037789169176258339167191809655816770468675002865122190700153438720865757916736420092393425897243032579564186505433872215504301575709347203136797997582890558135245803656075894641971537587289065841708068731944353231324266231155711371495996789659800430861614530020741132894790532797804476406752755012508302722098734530716025517979726976196345913004656410982495885177629799289349586224194744279545674043428492166090674442495026811730430832551856543928583204500894587215204912754391288245961850235985127884665702754518087318881009917323696303838897870905862219603270682117264958023145640022468489883939166182346055048259776875505904808878063723380994075177130142338126286998233721628889232629550220235304456187922337689656652616964958493419927627515596289047882551782149485268165736773764739417030530471073416462196100340239289755153898542045880397587359002994361086756329822843854311478089152705674153125563236468589368610558236716185173809838771428021755686787713119832146350485116796421149215558820899364496485453447869782883718346529828247399309593293552642557429762556885119201091713154912511077219820719880424290945845408131801358110274947704546817443822911964364034647235583864901476461161226569973010093369682145051271970848240532114742723535334143452464700363597454220496064532559794125509028634383316733911663150386011872787885663852027623544936104530056623693748527500840243023560491732938388547951142622277061026939630604405542591607444831473669315730891121972901633708600682660306715770999151167371556319472515532071454391234541228603375038130429290726947119807610401807404065703343800649935469341322500667088621141191120413813614166470269806302947439250675427134420779811815752467980189565269685995065028293946300252634698449990540642824461462334386278961984897766526702961479853930803112198412890525317913525461835661728961096418134630698129035009932241922469965418826821703307338850445706500406284947595450463551626422207142057539147592700307760586609656785340476557222238354303779549682097501557127208498639451800718022551043258431287280418633340566044371698927297116471290223393218835239022921024292499757075822177306307114717162820860355624627955322227421453527579941993333607412705765793779320113709777733381888794873237351597658738846436077848127669334777670574336280479460934462890276619257500443297015073020014232144855508651855475873652392475125433870741038620126264603804031389880204748678177046781863781439362229268560895829249868889408479044535541418583029262010076056011424586196769926332430615315331922827680894734257979953798284203911010008983642373372487526474660764935130919584806646908469262693051952233237528632526878818310782565982245103416885835414096271899913764935033600404628074877407196174698435933377384065343363577990740268389422496479612483835134675693809564963782019725881233014270577576411698586740511656948981624730500530530814938660455331271884771610585305537506720522598712737233932758342725084246586983668133931640507690413472871780301511511828670642693549315297091789819788304974576626534564154247429392946732463127029487166785792292187060308952810093672471825715274656510303385958568516447873344029048153036331573052053082820066186481177819779409659416967460280068339956095205060339687878857511370333050309602303587728861991253143137095879111047506249415138310923202490387384601761250612360992250001356578308231022298310579183673790123876400481327473855340849612979173337095540130761946001049127156029731571945421291998356720304305868312018817109720115410665570557375523137861040129606037526565515753493107495340456963147998988059542331944802563500109506563031535670388697245553158042497975272444471145490013779703920512805491288164672255848751857974993178475242146676926923292363570296558309773318388720519756766777973333771352088118587106144478219426177716524016529698488286743429467877818461731753979087939726777731816415300983927850877148720271885099298417170347827835890950467659035618849255758609542074443579371865920135444751171178555929656388055329266221372940534866927671186589365158850381716357279972809874693687003654928465263414055909938116438050134626158166744254781242324067545359186528109320309614324071430118053993786215170220981461841396486795261841564596062819530975409591946408082216655705094670597394214749743412216219963761552195040780800809103639113862425669922777089938716102062677747858697957890056060686793941864900221513039019812698147914404011946237367154574192465295680288150744765348973616736468512245137861889878982428670058600741502757632998192322789279710619608173372812331584607463961645715953958783364445583330368220727880674634350876302739198492785787749513682917738547946704301994304392725410859010360849117701893708388029079835335541886180874033594226824008164469791307812024373837547289751444887806813834733549059884223742757157846027650109222847195081891888586312395521903711094510501652271857284126494635259063684877197311723780474568515524325212468167920972476880683957125230682094552494845112616721229474577035803229450537791461427982742235979163906170077640550379526528593263715645624825697018716201444366715278723161408092185192245915209642663476892010912167370080711814111575127873450355507096726704666198209751369567511936242657016671195979802062313440810071590888921480239042096611395700600689038981675702665544306774482627664454347654362865857315736536636125245457615395551693878204280693618625987854888279068049966671882983382091234900584249982488144985753250085875144110856505124469095558270317853716590027635797527883450180577193686403288873162369880749049085498182804741340108765228476603538746458347231999544539450963833413235921915829689693619857153797143038665943214046905571073483190506360282223206901743211210950219347435391143107043818953809208465405622828165828816719825670439761115471242544400734293102924571859923715831787753615127959657601280201986279989580110419202545172299634387754838894080316691009218081763155403084923527801406128855356162953081108175525024356516782897228407607388722427486864728630384556475814819617081732168684960425293628422823844225091506729026708123545639842727583950927855397418107545993745563834267026565466541999266428097834335677281189082631284825070980696740371598174239038851713954098474386448667128992129244522858889034935907128334081807727160556939944930466899052417356139300720630760724949590367037460635824618829044328006319053788902714652469675984058475164018366698710339632741646657427671355618459277299333005820198976309570056797956254910552036324339049029170524599195071737616391805977297429722937849729111535671721055184498648607740000859487450785711259970217691776984301799674495202357643686621506377925082432536019246333148282305041645188573656688138702951511309164045772828806773151236320219239680537330704420663299986681852062678030593934454988709294957525232608922420351695140333202978669263071771013279255390056905316355408248214482740314125132410870319291149063515583972308957292873837983597058500788117194324216640059546371610535389746833818594885789970207382985933539540035299434172359482418097765881689746474764431964493714607278973828717247348131526721490980050036910758219961528559133554798143122352699533303976647394286303170705220281737856902267731927342922141839314682888365863037364927633251247011454380202090972419668062703648283673880051273480350916810495560490473437219017063118751641439725129086107823884164021935864066253206411354686425139034547916794980991309491123191571208347480942845458964976767673353131104704621945424526677811410295078112577980196998254847560873230826190356187093924664098197965507759820666358679992488044404738063939990273131846416318447426924463220953391118936008216259427727364770176603439603164201320968880967258466513064427016183093916810078064851879431375244291264379640347564193838218228253940869646167034166128529572312231690661597667854374459784132750025504129225891240664286167584402405550367191480874721040124530112008704738989193959248810315542285917453032189602810208191204867405499588095033974482951491556234784407930173819219675244288285974974415851661739571493545492840274758496514409714331460287044775045749214285571766575432593249750710455492949452956811175844001112915041161893789270216037142444615314004512902680588187231021756833867990491986618645057040996410836242377083523929250703693305421215680077070774363050915181147829348888215290755920248764562113138431148061394989864307617155516984491817980517889208002678780331718560905351083456041016198133098558433233423996792990679616085965608641140504233097575190851763148689300250888285213394166171228050953571566243282867178233436824550258702375007069431117174594299073351840094780321218811788941883424664110554837011261823181729593885360975757183512684081915005737237379474413399355009695704140399092916660199049128373710093999562590410396984877057923428950594844814673890817749943814741021944810973587982471798014339848660122404509320817225718546850922161521947696544147691080455083079378210417398625066753196340079221533948237675737956742694790217098593969812519185150036282517202077178055488412398714819237881237390084499555362518821867806948196623930375292375646261225754274406605240745398457375454095057402353975744924629236123242128945660423608431430671875027833878703758736486333065509970524190052445012292283286700116625797050516867079279759028793895099543534848105235518881233907477129359317505744374672045235121178545894671727794997677499266431381591807090238844183167303439170591530885031531982676248230315129806042221683868551366965013580139498993685582119107218967787460522245387798737226024226233225088862019719322614488883371259265934201276358962157569401589202682820025982898049561817020371819398906363837332739548817183851987754543811521892515957259019345965948685648439866540484107324943557611895197987948518909404123610632293221808684056747721031671751597127131408117792306130464455096302921873806400419560815694307726587801481498389905404210189431152878278390777874108383007357226985212329905956039001621018615121177824383169522612670945004048267587669144257889701698591462448540606622914000052453011147138569694302394251812056249564178578910238478215148602104764184803034064610849834621623889097941093615229313058878439831497794749740296997531742750319988395680174679657292972155403790514773060744556172425400267680796196504312662960956438573904557296182153078687795607252505384789814523279995044121098281375431039674100864512610751886498555891516757150657753230205189364202941790471151056860679063059229512071518775421359867045346947210082754676883466162303184915072027147974863764672337572427064996797115117728775568624291627408806361159312706267478523649644973895588669539725031971197078464344026815792039334305561607187779009526701996724100182638930921053973309584581901526795974345634695572305596668909070205001331937311885250372203010225128034851635824683980397699568460421088648122333721406565764722634572164188640757006977719331478739289915822476104094751028496916251716056811535925267707964296024368808318778967127467969873793537767904184868404827563671157456296136243770418246994795982500735011221916439152337182761688903108196270482939600924607568188056611039222213849861322232314258883297957175214314275419884290155383640476695966696339669999855379283080141228990491604060620391140551367008793749700202883275462600087878421571589139742662472840893003862249758124782851915196117244763165105034222134974042410544173554855093223660367449345270651406470270303125397513308504726422602537941105719344816572417925528651002674216484192217661137506947258912576186110834559644635777234752772632883152431116742208992350602836049957285461761271160259685186856789876743273040917166691220358980394864102010951836410237133767490800322211310499484137816321097839320242256034245940501504653874065163610373512861081053638546863420935935849688423809333140676174469442329452465741022087964559887175941508336263582167204069907193874552707828630084981856630565778484274937850158272253096022653623429808033269011235858276675528434266323567183814255135474694580489457388189339245924572495907036977667770317154085170829330277962258839964655620041881386481512199046619299000798581535041546396708082232966812258566428252790512752341051695077661879777904793450606150905115016397584864087430435654573531007767574864021696379317554965513606698948266383014450374700552577580889441191571165259925089790515683502701609859492952494282968969748742729727576623168209380288009247927677442795405550019951017830964278694788923515666279629556087667942552311720791811373637917472293639331273688143107148014948134371270923520383758373219329090873165121303407616406376935831377574415814347841463937317167095273936709368986943064166963981400795708077752627942515698449751332659987418661318998928502879358147485706156682763539731218396922010939262550773686165474203677180035113485198839835038972983568728700246827410562464984680236429290294330469606975885296805334044108896487957093444588990015176657927854300826699727230340538209113441493391005882103001317096645362000048497882396958377723595669447823623673413153782915848408145711426410932320464869548242765932969695767562873525855980807888806778287718713929688089168073222405607754047229800626197595412528257081640744131130778941297389848703800942543188175580044466309730163984928169098222118188522681470782995259404028643214818785717742655187715489497321642067518897189064797986805304291390243417049639329387039406662294659728242496394814167481931714251164134526343978315248220318997328775018820933459837884244989073477683651874483572027403736219612464938961922593539123359944840627723783335927395459909225742046714220983697001025473074758647495318129137125180411326598664120761374813210810144486162009337326160251803375245304151565716905568421903129708986732661336610269414117261575197769789758155426468204881311694574570025941860624536947884843886304700509134637119524729000135268855244299715595770060897302706807321345061356266552896557758212806703250445401761192044929406422588145286242654182836308343493573843342921890737316652614047608245681244155477541992877350766033042966105038178747147727213015472636035011420618348859777541172599913041357153149208238968347203850668294416156272050528632113072285851299392460397835451978037784643772008117102172674681977964298493670697520634030158759072697431094938088566419284621405750732784223201710200970126639733418793289636049203539278341780970415366833460948459692405974554781114957035537329788128767352464595091524424221044672193928825178741356595632898463135954835484264846308084095229171667957220696571654926402449641144294313028435281007908637905285809620132264477275245261250806532860483322608735745503186464726424099185147405288559497892809142515776258425180079865273197734009194005596702428152104993791642632352745728040721133416896968981861066899045624551913484809051828368796788075552359813102775556445285586765185872167721534585867839998158278708463270729134568955492715363777465172537518458436289522176364468982354950465693769712628158264860404374089495982207175401452261189118050346255185758043043311960842838899353614463926291861639186582756026752970466906187595220278430565914096736155166069019360898299096565517351966914409864891803318546682803772920581070925414600245388547139568486084442397954883488498433251202363191604304206454046140463144406187248356208776256421545834979364372029439855109958968051173817068717681084841030970564458119110660216388898115345537238872383380232602735995510353162524450449438302430770456832414876993362141803792607439101257699886071081439092571453042592855554666409324461770102417734819061472060761484737902821246967831161791711293463072086296948483028771731320547371564907620820008186467975472525829657303891010545087806166111286552221639620492196996266759885073651544797598332244180056814967461008176160494061546875432715379350616531795085194038628381393074442791229537111922869576633369612646007286186129818706697637073624128516917112456306813285261498821359527486489810927559401382208017816184771299964002878355398922023961416659738390546969559894403970471220428060225821281911266201771697612435558315153646584303082679979692798009060695245884139599208023034144360875852082945275949307511093956427524842977595839166067401954778390785852562114767474529660755540234528923665563015872389094154525063284452694590216644119677839417492942744154557835616698487542978851921060895028719077663594264630012696349746833883450263448222636896203405018931060506297548954992904232408976924330710924129470292615276140902888310579753173361816025106566428217007736290469431639792475982304087158899531792566101369819026301730216478188294369885411333010321986979758634777744495238950260362633408560437932080352644591185364013655974600101030180362984327947053117324127030509173692920019969231843542664117393529633311122279544918610736069954969711606959458038946921119969561600213993912680451771543362461381851325935666745193313862739283841042519831672680512561732662764561690108082501837631793065122388263876311534493092354237539338047402366424469963439941332397501765009296405796564743440050105637767692526616295953271614304112364845218838341936800139658676343816602258495779028004260386519601213846292306353673437002903758400632267348595243096747776867727469895014623189817250510677013266730438833999712403975118859142394143839297755111492620504455242624902256076881693214313158232390870876859709898499305256809689281017603415247671755300498779244123432945576664888226205626043784606114100965606384133598380294702266617794445962061817247680661353625256059635066748741544178562403941744238010738178088202461818825927564261469894154836865221355558098311591431275145127839164722087449588287968237133978909080340332806059450579173752808774472898403860764909338094609008695826886666446861859394786010143576261501730831455431525364522314030455991975269237591389577557506062332843085033501382080418258326598159697882802456538672080429722652813858328689041073035654865298902661949770300428217102091139759957832817664450699672369721799171077268519743647718332873158662988198110923366890928311667231560255165137808649244992174358278683264802883816375649159415058272379977440583214083262280078765105487036513648904064958583241373933245743746089390667222142211655677625809957615008294994035785457710989500015525170902527751799497570934733658696564766183366290131236576850848572873982952293885349517679681444667121575726028357672217603155461994827792205918315950175146936558254978485404392362150468659802772926616918306624658692819847132598484226974712803963198941006877032692059337282226786359267291911862038881872835649136689977499051696896505732917549447814102846947402192658960613708845241890747729413210412956353930132588962242382676833267382295589442016104150622411083098515505688949389330626897593785092891418559749901350898364403411643983302932379283838223323548336497103438567559577565995684976093062481933219048054578844763468110128580234797149497211293117124711441790556654062039234297281561157060016332950501855106202082050468771988335690132432706402652254876697269475277881881514590669897466474681488741820689606231688479282131267881049260443618416412270936249696213459642071271752337669766215384176243016142980036900177651654730689045967209638633341933054100228028469094958864601741320718134788789508598562934446663188318058716278167528285588606411682410197096918293833620784079102212945598846490884067210450707914999414947004373701139281727352700959819546664480153185861378946956275425008156340688844134206021271047775488226809086856026148714252343542934412130230722435675958517286184956136901724424399299247220184724212082176362626536098863121974881434083892798650256554255670027642762111720151360937148332718579149520990367918945290350867161402349148561254527785567544591555868135918445307025427518967916711930184920080732929657283256527466894853496744360929198974007327893189099451010619209129577982148225185275002769999538327357578831095111379293944791167280337733502687849161776879339444940982880972795048145988760586341780828254103074854349081601247659808140499399897367499609012011577374605356056585003064290965486035866833917868949354368958268983241751472940220486098939961221166066534350024986339099493940556462169081988283644499223789411338282518943091835380672844388399244957388155967311728990507932755951763738415602182421567443373055960936397624113080941860579577453856137914977280798874297426989072842241032929699969232317733068957371153027354957643163734046892699146345575077560804650867950063999537132536811491013749008269416735785375259453169187993819518375947550741042777516091006655595581809149542842348394315349545007519114819890198750537107241384993234428910695566239770586779136646677632721485662553194739554427226945677433087591713942947686176209963034017991108753329425172084012562769625200940627978182941855304523377035825867507713890498723434351185419905995292458756687331582387412577392960028321413507023311496993913496795784609270202638546087710016576171626841468917078890822198614548885340630142424735833765359435228526000709632197357004612079731997532023155593647211988100585439135992911828591669453669514813027067803520941322504859625108201473742409055257268559952043310319249522709917266451775045631455583053748565203189021832866890574321153296326684983436507307171190780026675104335940179069378839593719221764705485344226064201257974767443551099453718256758719583201176913748253426916974625573294538006655632302862712309712867588662748848728980766033819507886941879391021538137949040845238303160217281832517364238941148305766580755604652968756307301828963865874403505097297375005454477585958092939843066522084496071730332232872308517467692617636990589014547755235581889028485622430032272985873736174752486889933286433626365936750818622077612292566883185259192579876274101219547678452476618182197093013634517027525034188241272250863607142836107592093379064378808341262177030332094168450432781319674893586668336262822936602163550039157878556457230763544314769752676541406170308675704569745039369579606987606883916673342194139134476937049911714653911884581360082878958233222958011118278229307432829424547031165662379660538072817925487396900601862413803072436320246908749973904626888879172088777674588898797914304792797362704072460152519967181387316600943972072202325058999760898120322721508524358436867786369875036112061841284731944927419876766189678000385246960383674220123305632070276881483631325489244193806813215835285769676332456405862819368084026546359754442966144508291779861155328049786482374675015255698774848345191539788549115299691422711898044397122396105191351765435433642776177785037538511646346121793439529636223022489761172718097089273928306038788710437960420878845113151813242161359690793887034708458656992867629998845044576717093896927949688189554692556974778854455017921636087454688667104031042869826709064508914196589748654062975513371586434048495487403276365046717475353706827817108284254040925785144134999994433213260432455627800244062711565864626116204973185044135551576752439509054786476292627285479556940252553686623434552028563695204081082490505269600856100341692351223388031301124758842515859450009546887195800533690790288745463311903172171463000538077463386296951021809798367489803530451693510096952891250075200562314930572721900997326545727783508088037724318808643132855813893665032624759410602510754550180860912487606995845466619414262391443640252571340630984346396639159010936303628069502277523100279330937010312468304592226071559648508070044271271518501277701826549724468594621725590858209098022696593035560835799668207294907498540693262140165886625300816821759114954432697071216867917308888299592419822123103959545581639205371782107522473734598335631277630114575882543114701121117281662435545366537361173510058971726702192452978523138754795013802464873013547595484199092416318103359384613368274885137472224881265569615210095554107398605898849833712116080599942273601681003516981477291171647385843366867606567726270541851326594978238541733286949841348819533045645969881765154809449094895253599954575966091857316524417035094561518649031892923715622554097803534388516900735339079218720188619461040592706515337069778573153118862187272074730136606038380146668531647839985760559876895151659404228712852930183299433809328918754842647207637640115664369940226500333014892454200909931803596779734908153952482158001901887238192967837413301616129246592274344175889812489948978712765838358994615208946693488043510500169880795572922823745933802521246626703411267594399426891039318530347111539166256858828668504611923658573687512917748195574587893399199632969088684280190219292405742163184842838011704743461754901693898946862084570817169147775588275645759557290526065288578436091714133285998478420402089124858442269931752450222168266179997349871428906804131565864208993362823436725841265664828894980395202235913925899620258964699732795792587470357283440603328010662934710606369381628093603933475855395059321506413274080071568604088827532863228774474385853865809015394274146850551893405076011614369087728466022749120144747971726409731555960241218451852403846156852753107569941788532357190507441544110515619114522004855432084254765221687346102603827621324510769648453997041135802818388855140202388802583832148698817989299715325286173342716470032477800071783119261387873170670777928765419509280883489486023249205241667157012256465330222700293921519666524302894263300869582323806011020358424728012319732194559473379454385775581197743371862921761768930506553968226891331378469803587745618778466260533756117280046263395217713156249615527697681960019897819425430498691019208056256191823176052337526422133772310554718259743955552182489737312889108754456275742900878990653830434081547128913911297595417579296261426245826584568413833327377552724403387839832149314600908692486716152631433189869321252793009776294228853799075872951745506626209093623047725669674977118189923983129639788414615075703056937392509705300212654886005014123708121828978137924106608528087394076858206219269192905043520193745244196501661752657613809667296682782829753052502427686559810442332615419916128165521288965649863235093304862755053715119242978587717823517061498655241837791084821845439405654795010101580484295761048075755795730681268805135413197975522808487114050509045211862154849126012902858193425205229207032957445262478569674619904313716532572106206612766521172420462652789714356658142642089908303890484298459328373095521921271507784499589753954278662955729538747634093985367946521718706885038357748749116152738120989989040285946520953676183598481868698940541122061327627771051465647263206156852140167114685173966435794718820826431852473581522058236359969866494885601992736116129765294455839016464350801597445733476110376663129108076934471068185761663567616496084286140599746785379798446966406289442129071542682979918399003832725898167147781782729453687745399275628101347945143312550450950414911549237969402373042730689983191813299503790752099599410536761786726658864144492275992670447106834771164322948615859136379279482865892466982753614258516219129959731738506595848384750439388967056880149525007271258062919872923717406746564124713695810354819547763024098393211936963199100437072801222817853198927155561435527832557775153827355985356778053189309984882584578213245018633361292926383241074580982668094555998886029659876918940183579421333789992782389811298710162540779908374929947095309199633243371779530391568600456065381934883294712433023068959926885361914356116171040389581934332914813004912607100567584585800410861070131402982906012344062247853147148276984282584259207329111811803342751955619150880609730956135538337353904260253579735636928257462532692605311047777493026447845374269034850260261990902353514845241108106077810243637854696482064638391773401420287484244140199666442319447964275396617330580220199727310568206508068677058689417296672756542674461650397244932416715412686029441177720952499108240336002927483553261382680391529345156213544478823177842800189070241634190926240257887648426356301458167933849178840009929178357375507314533047340306847764842116468831049029252353602543825547839052573780509287640936211060376880541053946776674792273660450852353292384057251378586642968964901996606936987776883203474874168042399800205597767573833663804444500784913597824766836216057889289816985666377659557109914197652706606111577410578988738631084798474090857004785960099591446080268969630129412374510882139665189379489043461850208980633443033105663028957542975619620885756777840140942657391221229473313207325768860061914579593481238374633263176650258113224736993366459762207789536922367285560011406983232131430621399463365170441915844086398275778419462234850306658016506719934753586846046991846644779000773485802797356356136381601599075160415720518819319850295290877388266690496350219462321098364375359274516149220496592226169422612608474109124285779934499968376031404974087632903415932499271243337389946903684077144777258334933608816069209881903134912109071496417313852639262916009474831176783292165106011924380417893894537795161250826600929549423368104682745228516167698232645228900301636005802750059530228947005194548330568838700244897464847540378376127836570312205316231734970354023782203147943943149767855011231883921393617215782176547317556051300461046892835855858064057598243705537335694971976971127328424355321809898746603593349738744222355026165666178410123130639156172670133289302308978162598828178826174842544461683990473020401963413892659157421550576096581182778676245899863683434208193265122838254879532405952468988945138384898162872756825222146386407555698166069871817961820379666931744672491874053093596571124182427923949481827765190979108027116867663601693092024579576176256581669927589861234662590135246650765594467433404749869054779231199760432203721631832912221784051155551543043916340003559604593548909462743567940123373459362962522825235328786161373822478123545517420441749887073611200971988155327793304252208259075763538463507426673662482010640956418998160946164049452087292515795408752705292687525113493173940769867534981204377959250479908177747378473841683602462331122986081124377525141795635021233653280002361628286543178719138817624901345053629052137909954742387819058452828014890039998760533031909840870011869650103750294671436587766912050923985442978352769966414123650409079249355257680850636938802792020268081780672878568879215058114080941335129972843356640656277897403511175825565751312351593864247505541085523854202903978152909306833625355120641649113056315876613126962861542315965168542280339817179058001799742520920724775565365503723019091826609434355147145788366371197527893328510680791374768736094952344603236135106597846616216756070797468950967246925297195627849637298280087032444602688185831003093992513224040075274867243411591805265691794823980164089882150469490359257888385001896797052227975671504694984361628437524068882131377164268582480744561001388079768990955417389875717912188447981571248633422779597505857403781148122641505835501881918748386278353441364626666606084424610852103275645035855930535601661779331981430818296962171125366482277543459094201564559800990048707083309901488004596152612310842098555257739598130999201804112930947395289627006879637944801266025718622471884973937157015309854103907193923961123139926025613588325700602141324365308305981780075484607012783581878129247211419798211896434150733354876477067947069437180634499499671724003831597786940267667660490330131642064421863469128386706171070220142004537635889509610248983258519026413105922469934931523872272184473419191709007073465693443291489663993827333773891294232808701860409672703328810573093088717388972163788973163146734509635909959482457420005243896099433392847299185556754928449717797417684675653566569650562513622366351282130865257883730294794093491383074503169189783203100615303751425104909875053544119839749604282726089913817794612944747904980931667918177357252047016771513632501686100753415350151147038930499647106584606687764118222207493514269137598925461025010536938598432065245715743852861186385425127455280432418966020710715620657671388400184359004135628134601424509346634415479280740868177103368952395550565069858417447582182453748872478275105804052450706694816866776660117837420190646636292719083087576491036876683523620411199807239261954549292619591522097218686692110944765437968772835202946289121041871514901178705717831596486100378441021845314849618736364418950030344625708922612963260351531748568924535223716417472263141217954204164802631457344275829961572517397935854481293424133496447500482918951476061185972033717123792381305614883185808492988147480904952033265347556169282821087380539504132851664162620134888897445345822031029084159826768218435291504369325206503265269530237669225412395285085763120373974970643641680928895629335228420508107858787382675355230320660349628943012334726050136301924027957012922162749703159274658078745114068147223006158954841535481987949060709635638467993250049206671416980808645596548931592796674391960961168851753648972562956087290355926693688401567320492916479890566017970606815497660094239515474085567746883323761208228932057455287168471061495015281473114403810261942345994406791694923087485309920335986711327777768013248662297010519230915345404510639897162256547290139837976341548678775915505880849381565961494260367469578760244755956361012538219913787155941218048129354193134041549869884301833480220143926475196166796914296329848736747528902809934380040036419820866665025949127582564642327984444081683088629566271747204862342620376433539583310859219429765833289368199874452214005099338593439835182333660701773746265193041616821322561238540130912506005505160459016773514100114113993171542468545722391067354150385927287048448675309830567172621602320821418437562761939514637468689121613301128971045971523219901763309545706770748386362365602477618245815897240115268867218075885594099812072158076779767859477108257053136663796062107546512499178578607951478580931011916209071266517018848272918594180990656337806926708896639957235614101663731007667443349525450928967640677883634338903008197203428486665707316937962279168966787905940015885335782144665644332158014451789606788199770517912641765366013785635311401664040574963405668623645770197121431395733251228528221745334004051851855247043479152933445598422195241014658088314213199966374438595434808079725397298591991452894250982176138158663578308327674879723260079803432438436910962835856539098425559539878638327528988277052888707956865493452870062590036375554891278867349110774785175174882573369415452883134444530645050704166298126284261117446072169423909049930038980298472061644080998078225039518822390341706980771530341023337237161382719631358858731069575743572249449829273231631073170883680801030122962378453119462465788418946376185037510926584722640082882350836705776197251917944713135110212493802041088097202895341453726425403230817973015094254559161545389746174047889994628838886602983714930838913914886073848392335198864372749388095869326396339940070757551883375218401747848064165639632394102819235551380946876705624666408725215711743249293815822140359556367809628415635241771418560737680999909543058076493888728165720554094205412744547177531529038937461360393015348489599432043776849495865388889590237728347905607582732603818259583267265144274096994200515492524326563221524629540399144184042666652810937242680185637631863389593866154940616711752297650781741786927641011501078542134898969990474795754568944385468829468389235090128552946365001533230781649803415461481642709679694869378195151462999547429320560953054588093919721390137737933333274757825536762601657225169336187817081889016274423336453323726076898694178110891554998241023975829896531102206684748643967536436759548065949197900004420280918152055595346746450336043722362440600115573157012209492960857149188355759896340780300491849755580671558314616741457039945066194725430225220583432286197575910394002145452024484094051215270689594760012807285399555979294941863914104069305713150379392065244380955824845174415877881050467778474314031952324496542237178646328190453916444414284089624132033335004626911717684485431568097411032788866603045742991868492605283132017788373352423960526943170920801261267941829377365180824129081681343975595479068694794857059138865466069755455262798665231602207798613147372674081112678722253124065914699620063285040802813074698979933907825880206995137044514294410040260126349456331681944646031124136589060218896206962089252133781596470303819085912731623218433379885074755145742634307633253611078175381746754880047549697600487068832751203004310910175487976054613604889087126130447355020339713008199370024143484551252499543701142962778896383487133842457656079106074928946277351897310382231205960717534664488520765290849963925888291181859231215629222419688081241121650469907248321148916959469976034595105534512427064638517303836847985332907831866053079219705977713905693589636341686662537913402582414353245182760679565368800538077673676899821566879443626176134812247426372190711075531104791990272823200432382729546251962963439587402733880981425022171589056006444555869039183526565406539704497512786189373116963927941789696938327513905777579296552997096202582139998470740561503182656557996082278014250644532659611956258469321094769970035527074039451359854323556984402521082512762330601115318447261610334046906491256020622348041750506082221299402250862959363267174355213992232221360843318018237214868861426703950244844125260335982935346624216269627165960060473729794664577310424725725042399314870390283708815510170993871892056304137351916197568974522445097437877414372860932464984906709301491338669400693543347321960079159063536382543370685542619073725167192526621260876802162123461953177585313711448530897617119657113144050337848491145867681777643846019725447560633516534912796670628723112863815237942015861819633465585193326929715218368049164618513571116206549259190720801696391239863219410942272713631362149870286512683547959403444883992079519444911315989316107988025970488764877535865519849009665551676076171180523472336012040612998468626806772061867101006192526185770260417429209268026060917450869880022288458290856143880565143628661773527134749393162181172230418002768970591500011466942687553128721326756853938289149324228059745427933395324594709273491910813531428394577641617137685581841428766719915729573128511244683505146192110290682453214873515093378523908054691246901903663159359158517178137396088806080768363829186456367690689790525296747880406046708802173022278780511332023015197045969776021061688096049667634479980219178901904712469267361409439540904534272154845607506583943108288609768664494571781526487299806788554981015937816521511600116687646445374864722335278197620182017676942749306591543674770773278498204144009762156825269740712764958379211108930540810707957216040279265124548585624358618788169362548571884532241395052385062855627701586545923386968888217285469238053895065778538102128355535666816151689783107328450412654554144917280698960853755230350584454555290217166953456189020786420392718284665887954745797470257281964020452771687644737694843074388732841700958561696085937261128590013526858114873239788288528349272318732791182409858874500584709066101385974926741064864856386885936949674824484617216175165780995448953854339729342398904168672728793437874111035359126250371261080423810303878513730169796434218579700497136088599174857174042367863218917913161435700026779626537491139481365076031173576172528981423598821059016592956021421614386372449823397928722985154336935231830049256133126759469853726034262464269308428137506626333527259348710300996661336986105385741154451413679359443402599568937602562214389831930627838595332893679534217498677610174373336325459758845472135972142983324528720101604999771776153161514721073667193015004248567053584235866305803328785610934300463556122488242026625015046181419893608659433502937363339281561903883196061096422202509612160982775979214901803790190250979216338988619930849791129420715860064151749954373253098604531426612912895809846608373057992711125001125675166019514424053045034922907483612431201490589081442444860343296557749910510787313881474752553064816279489453392105681264513352275390844315398380650548744168852169071878159543464501961036400453923195381337767291194406540954147286869328964910983941960762947398480234984475705540354016180385170326040177279567158690384689314930269107560926452527152439946110440286810919674212175240163478540045286259367426153141314326914616436866958523192293287642860993009735103908225827287082080896919693786191104276180354684462228603309173452182024802715167512251052504252484607177585348703835505194563914836934742802550613654914264664317570339453942192382351143739546372360390970903110823114347139160854622453832493568636696855096166623881456501949110030473038751841758043966053961481813096867656485746701930625676509369796834554306579045879649195242196927526727737750832831189568851455201237904404490951794246354882601970524232306449759593739471030272753841205281033775610761459813966521585320894448189273376263186490334013564451142979114061170029439218763033819861725392907515248241442401339949458738820459028890653648398227422229164283311020561027103359999658935662854463192255687531659025559596525036426352880016497610556394694473596732148069937731208803494141244627320656666661655316237635874979574848558901859614878485676907660504370800238854214292698980083002731161988931296023194841035971121490824431320089449619666037741423410103026187158085114613162091504741560714120995408452109423004290258520364766408750401525521406880910772690310390639867720784226968604798626938856243848674684182861875019938976421457819728670263940511962219449065084023988569486974856109856189090781120135632810939176726697662358983586988180441181925372962077144129336928851276176452474688896849189648254873185209383858224055296490553799654730126016797518141329472149122276919617712366338677659778282959764733712720319835479937844850350438288481604409655421644819863970965932720454084469851024827253468752067551532456660388926608973393445894637030074126464065940768953001077617955260541568206879397478343517596600441273273905899455489032625837008855359365005570830553715481240062360458280943881612685853657060713885009046713553703559013054823463017567561835419024328727060429615484292391419214748687423179853503708209865535413580949626279922850345333024372963716198150588362742123968813802598300382097256718615377353502117820091146871473517839888625202922494107396024100849297758335704117152745657433636811564951389001661202129805614271550824729123733845755562507062994515646065920052032471801496942476410106012143398378121225793950265063005305984580499732056746932923688759714074849091250968560114897401480272538098276168327094008703873756650139328984763596422054247836170147211262768305971944138956374752289795509403265700954294339133915728018047081716327039833431775468804936168374309493796204830569951345828475567203469768512762133224532904217987441900356902817670110646707645962600659687919313925454992682781477326502747133623396764003486330211972196015693753777136452572082747353036244783614550342410200595835148858628807291037410483197889047347741197025757881891055088591131534302695189092943785339478365694534408627952109123169893282734402849427279228188547461358355233369687872346303044215722991948919165951304805009468213284850827613049244792679280181651982970837504533883281264327163430272638657316173950533626291418632315966058171799960016448146396684537570268264940158522629146301609679785236507757356131037260225382038312313205152988170804762752266229414171245577517458339565711253935524043010887219607438579523460671202460828659708423515317115410542027873728694900164397236115815762460792826922394913577743332508222831821278996725135821687990620120545989853956015139055911374930625358796670880931785671833583148417804176291346703609142586374398354692870854463273786847309366442794060219400170765907348004095896307313348428635191105286987105244064331204616318837580515479755656535059040166824961002083777994706531824158114861056704520155498033552965332032029970639259741479218790730279637059182461132425513419145463431794405876272438646953025716481721296520699046262506667479682526409392650218819155618291953922684142662541905378085887413127447586767086221717633847271623589646472121551494005346670834446285258906053135424065276188059145093462468192866804159287589598968368012949759278767642202577735736511410500069368595781942759758917298229599969044527194077583726185786027408456880853330159357518269690882848501919185287698919075341990452365744152866828718592948432099948486882307621204078357565343507476388448777054676256296882574428292320532089090185317188085056045976878842733460361534975437561317503273153084712679172173488152128630024256724585520863550042345733297236012569280449652413060315832396281016859185118949735002187745426405570078037384022545086687772122717456528510561000019744644243380782163451347137290308418841765288469636239108293522677450524382836851967399746331841527783555333996107419546644889173689647862424429697203741597984973819987882504417421306442845160404171638021025607176330864617409468437517184193594449408149161393584317707365484233610997374572065461201221596912595915081969992986065486737073727430135109186215934680792689284539151994381245687519036298697757195084603054741213744482987219578813049819645849234754395928252317897759052353906661604677373946505162290948468812443636473870153585003869147207210273359746667774475447939995322664074500682198142170573532229038306514258687765762160099299678094517925223524276737204769130153560807686001158095977741515423932345272137690139773376633231316498469584143307770350512245304182264475039057718100306678606762305946757308574405531866579275050941479866286798311400659398822418036675367658354005789010292653236768650771423214079982661223860205656540370331747878869392978367354177905807988116391449496725822397344365179806530477765996927661247242699678964462855982757601294257939340108043322917429676432814138586576348765841562967356107380416918840670686472721109813459349072015463432741103626393832252735773622941352980853794526591321014483232070563194272505336970651691127261993938009079013181895961707721979666999256875303765217943121397164563305297644601752705731833312469779759889507529175659576797728812299248898795226619749949598757352372674492103659643981158780422020627492916126140286927390373319756164864801535321254299684088595923045755353900505305445861742991614817192332419848193447543837982647714528400829015108386335033663955562052490249678193459219081903932701061963685727144613680301678262884062982621329646050733899790515291546923452736815854836059925043934685071658860571976849802234954608032635633728626796534041099939145478071456383836621063489257864369460637543620651604396216209264227861859614817263090542771506735139588156785345378941673099050545363963128912866391125432526161039399447123965529285565149080203556982723197090355509555972987119285352516771253983428924914362416909111533901329674209267836298043754274371016710996675440943165519498391244089377620056214392243964559746990283778550779986813828340719301068230214800298603287724197992076552374113838162825325720099136915458948381934651910039834457517415604331695404279838217435369823999961510065907370996745975970410544584477806413109098008950224980748406171085066573925027782360707344223909479400721389845144006604416835407401554368497082390584860596918137601004651922003251162021305561313659393804573293496095405264354342818348401297176042417929498490262170650603918320921471318903659188503139642743317217611465782807812078800312101925733366050965425924528666877774379900814236209460895487682788540634042767995610592110214979494494690629450061892492478689800601809422440773865140125287184772776670430140955675429499439912486705921427944312046436747446329840215731152066566268240014635019648785682905015683749591307366202875348107237115134690041071740071732605431299164885397751104276089755872263014387174752620037736909010434465643335194836664577689727678952908152420612002746215930979797741864561824790136084058409558692439632794149871359850702617774090857561159967178855724879326495830531760841805882419554719480257643033387124836865990611117148718781613610328447187727958273645529760279692517435783395028487146800669903275800298107730075185612860945619096030923244380228014763985682470324914194604650573417098684019202334042430295853829279653300875956248958905964624131479117855934890115039570217710420190825179714417841275588928853649410957963102054684598202383647325680058983801196726827642483820986498354785145106127882310989155332228245128278003938569382667027693230155879162020749727426733461863098067033150627564334953352549305958724451865068234599030212476251277633702945912584674745689724961402068092725007589761848514974225766456577658211465586501773930898112526264048398388960028741131237963599683911116456081626581964032702261704817980733952261795464406948231427142683218828807848700641534277775403256346416608361035328449208505945802948459866718761813421178890986055007655172373091547497518176556251949472389412367129853371591915876679084851604920709500119107127401449771260513314167247107286770423487511976557138973387820514619186140515919541027800650463047067086485478440556399989465871763203464027795495771754607981998706805658653205872145575044933380802717969276863800074428687548814831785505824143122910382715057155511460939104370196138481552642172451623852932674034300483433491067824022903819960632086540325643315572839530561400389517374370311002156537053892238621473893843380823278676808919991640077444333894703300472999447530218205377534025576374541736004898343175364345398797083645068033916839644055306902565142927742811498812124787761896882093755179385022596177596334973611355840965679393307417017113005296178322758068189198680028971966253451489949067253725895520595411782388479349010659792954410663580909502048526016931868218159511328758685492205333382841578186301085480443327696517581020971779378953540300897685072678383089482426449292653659443235325197185830939800201768307062182864536282114468669842409403384362670750594469857482338611050787123006476019209242702724878999889123748769535434338787411672098118324749154227476543486986699106503052959769781784869401005485013806497607584969677140781175369360747899975842122606985869956853882278523653336364313795196812859746294720125370938533713820251403505767972691436769185926902995672541198981847781312983931394251950136646435152448221006002354022830720470465618634370114859585754756785257753555781774485409978268385517316660906815236446610187933563759506509503802765023520796583092410051564838181200137547940950012106545995576263881444958643095084881946270774621685649738882479500400048743419152799065415106274547833774926507915728279726154653655691304815721988461680347221025246603456495476297989198610013677691744819958129422457232176431110454581802299655617834670383406408631738715989496632789402495108381627036657696935487913463702139273853629616816269329133690268822666922048901489858604063101944674500840078754857097854917454470058821900637602917071613889367120438683869048238620426218869041558401172869474043640966037815414802416807325275408591144192104269972731693809241931038549943412554719598571003766033486390438119901193025307818782224523416801786457268962463701724221291455025793683307976274006483386793376686806997876241519564116635265834783284268857588772271673714064205942726397864576165802720060170777592014258097924785043972035805096526683398018727371686095330312422760987812100643580955839735318744466912480579949140604317343834000044324913564429326078853374929076057420841903975873992636605281951518330484464441123387624252370975344784264881261519351013999237169499994965433921472272477138319792447649737352763113001845009600383655236598992300862101298316332629772496408379873053404897083911905540864746055889578719305816529064126106279700642834844297977226730096362305242601937607216752216460469545295727213757805913340327179005836012488457779523896203995314265399753733751041960143106335468306924278111828711996728323753272657513818225866572810343954781235964342827535122139869487868021633335168241202329126309161986040937481115586075483444023253382297097673492818173410049540874375304483448784076867270522660727373422686291715938937123038093194079024702926149528173829753795732221068257846191210188494536352963779852022699542651640555243324136325563140861877548544016685930301038612870738868615231945219713502482541682645681995264247265997805589854759796000967820233644856439195896976619824872864858841134115427397157392230163213122820643941481927260233294375797353212570116786397342795254246900443486404402759953709945742838108906381121383180709028672149002571160642922930359668483918013591198211454349138303834831690545711682647562313622678508338403750766018253704926109573573721678685891173585127997129807208519911365905402305328047349142409475176222857659082508715125432666708133366225102896241709658381638133461005414231545729023814173700653477611359538096705823366456860960052337198533131642309983633460842261127641612577202246216495969214204213035019499355626659219173016007918654956893397545266281976220348376627348679657036028544992060354641011937694810459568415874076056463759143709198359984277711772667336435339124074997489536993500074038426429715769448504469259797895051894575588695531191295669783746133374183789717421450125759781299237360965438353279828624324494450242846498621399089872846087172597011364226029836259787063579597860493082311184256266634151812008661943837756177086560919704466812250784717122562303678082273231263111439139755621239043190457151220044650856833389246772708732490558056196225875648293590827175597644275663530167897385363846612501954135907596743739225927344770528516661594940286581030315663753130342580113871906579810149045763342942489422943169590552945870245681580596116723472892624527080535237427552192707457479764013228988849038132150060604789278807839663725981065077281603575058952465288171496837925239598635501730205583696779157855350713347329104995370256345586229231308118897049204078459076330638911767951161309604347175572191827071003947556139771629854224619670870209423237587577747655522322557015193670187733037840299559431294148375345975298580002388885381331534836105961213249508510179837695178266505643708739639251101398662134749268568462085567504949521241990645427223046597550085391861151235228020650021534545438177698250931001570839028089326146981994338196329829696347256114100937791738927485980942928192585239439152404434066937542151396975896951042081401322889168030383464256419618397569621369803384622675086167851637026833653304055891636581941299106814628283791206227997093356234978891927862599863133091262116133907493318287467515628124337348998557408684273110777508166328513648967269306339924470257190906069715031614472163831647545662287378197039331860979149026778107171430751924971636454158221962822495463061731393343667352410813292953570507549831760941161755734183906078349845876363794510961870187529300697480441494710333821859486958275952928150217209570993770746325454979586024827314342115281880615567978540098547996848833042944519849669054630134095606441117259455172835940418564831461858029697539830682611425639111990200705901505759502240964153085029069123902499557524979880444066307748729218673706718950270179337427037204453864347870055824159702596668329152835148346687596438065922598207543782649416971358819663083256942804341133397299346838228934693477826594927886744412158447364085207302208470430201384265650171767187760346845058299927694914484002329715719865556905307935182880071692963554228004925851064696202552599521503359420766304351397379993076529207917272811465928402752516100040691672688138427561722487239834570217381751394570704037446194236923748888674395703801589698603744693813573648462490999385502930075426969474863087611334371057077507524120247586762949596605701392462688238129416002932792209376724210942793228853492835111848809440216399362832186132348220015801135535214712277390110315731259610802408174721511849632891048481904647143214348087560230538724118651138955517445944826876178749888840078301966028983589006128394738444888515058103556919011460711373968921623109437285160975323748751616711571299121667958290495657372659662749286000967459241824929430764047684667264450270946930640320802177990683413961408301053792321663506945234052444365192907332698074743407400836472989518509180645455471918732877334943519870639711148954583285989384816625062260013389485129169183464551285323863597844583783974976236908435158785777360559053601976351498798207446617824838061648079570858049756917368596101491754835254283045346310982376987583369702269904243989640515712640189702270220498298021954806828577261195028858774611662576219724532086046384351649284931960813745833566736899287958865385072141167834045619146280698122547997169591922919169613768687744851960675879846338969744130881706207068550054128121251593929052631382500823572552616233804043733004184358320644139084783895686715218176934038886035333501476925928237961166290998984583030390661571994371034131815107705309173579034492206298716821511234429021160676894828068955745397411764299411617145494867102866784686994401821235148693269480290990046616527898431411648121568757065625783474515273571897057473955641456128767737298721825844466516026196678212387091596900278232482746727368904405627068546553343842286246404954570430474914883735017693625668889233583818560931786545526754954823812983454389830129497885751979777765980960924322378944403727824609818430279766620816914469137767103677867025947925350141138235567916720043993961077409188047015429817305436630665608481991063818180246955981837599293043616683054137189856158624532467761367441613760232634911087639207769231123290834794290317602977824500866920113446855231015820179774451469816228665776993566921536610605394891753298402029256150300772711844421338780304098670803315093884133029162924085881811124288335037966924322813828357702191696929057822503741721882551622874763454504630240633502577073346685211413533232867343343529446891280318520364276179086762206840032823582845622970992535733584376335143000240000394589932425169528110220769703988824295088334296930247512265532176239089223055680048482289231165099905299872540241583266340854411490404738952762467426885601967093358131042975994331868649272891118949386850533347520958340997031678151462959869853396943052642644772769969351946151268885332102194846654287071105509282205208994817097689034681287083150179296731276182434533951129230933382401495676791064735862898994851033922844972103903564670354717020912040761731944911207173090554047266007963954119129834323942521252826953125888908366666200123198995007125963325814251259323039955665605132519556405688515469396862840751795199329621258972729413427600793180266906066132590238887947280423272641840543611465071441665700999116605388235286870493967423115269322228323096608353782834594150228659424778879983576732005911945457726501278371586386726821932778086159848282729242139414291388240245122261482646447409762765284770297219561115207995029155404136674738425785496348202788140024169116014577893851075482723564526682413519798462219408945162861438890499787214805479402406941391884615598816454973721022445059660909733376005324142824351160348291029533592867796409480963814529598885921572884595519183118993174093655510434512678960206965915058555947255052373952493166495567588512189925721011800615323789056858595374044347914942713971897693213985546628596365396771757522513262908468437221385691490878033194064927159546461137035458576174507061273907524584922144726441447324043296535579108294210572215645572465546765340365415109195455202104518064986687193440014402807612497044364766698599165078191170198222199857310476808946380148372521538726698310431132301160834751638038492284049745853494078431613975982563324653824301407255351887409903932729842569647048082485825316583649233533418148169315956317935440186225918931940509027921262670119808136480332526998492024972747847651306525089826707814089821632121001322407330317600371993156585703955891087949311194466444225138348754887488914860474486233011539167324842851597784387140167224827985401727815429946020099192452600987205766838336389798007056548717048069520991987163576450198660036031543064231850572770769906975513471294615694458933903775220249536837996868687291412130918233390153460909848385507947589513185736367829071063783236099165866693460077303676190852075639222088655924637630680901022717353570552498685864239134672894629752107689442000507196141495076957002852435115875761227902591826664099631677661653566686396884821384279323458600013887488152878047541323373874548133256028221706756768477951334370753258631426152217612679429328732617311073531108498081988896743933390079059600371233899288914631565577250794448485157270537361680566520786350500221071513850430057828140258782643972553741605939359309850920278342657146302863323872159561037367232693107555236483214997824363920686451397077641498591447599369664096264075235357832809994284298800976215762119851187214923034366261522408576322453220501006828712481046123896798861326448099427152937286332620475830868449201681555445266256539062995172619299784490589176384891584102290661214750006800089357547825344584622593382452096414240027084869511362716155402636897723870251000413664537817052831617420509458441573992847537237625922320168524009717353466158274976310584330493678349862457405702474531477214693995072152927597168826920552681245374652822029380270855129890858844032536270666647608272910634132400503831614314090752555914413728113534050952684096422376252533045560664447814743142465646733164294529197369867029466055263911466928544857874857841541265487566107268201166944938140100180968727177958919211414742031762607876545514608496401854857227327393252358611674878617518353068312200996601102329912133824203943683022758219628131936417945461561792404073587214719254621093773629017328591763083208843527131349844283903774037187902755714916856239395276502884524511509924602339690273419380827104042986974281094669928514328298590336809735578827893353239512611638793642251970058609629473336333283750769229129771546886364691091323052213417022917275393231171721625253500754839615397394261302641520533531404949572610627418172994605069150072198068170005737351675857456094496302826416899805952550055767023370242474871218007753526017719397097222305610363946214812037780546569491303176027481817481989491076404333663504931991484207962223412417814932133489628978716002813225197445859832052162070356466186801928067064908204300404977119594497341612044995408949423109964656391946443641665027273453906336342486688900175083892583152642696747862543474213201904465388553280846282770673374639791017889999384614461071659085813342265395018237763427188318207394526079546492073010852557460056774720503044110810216069296027010077148029824716199979771333964891860775852121570873234427928152249024455116176599517982821431902049484148566916145078200754222376104046531509599471893559117456488884601668275783421981551575095971749693250575325679716240651464535706788799015246559646302528060905583035096235168643530064135213881186012099443545059599462619958494845833803847108851356143142932761825328852653098639265592046998079650446591985355668227473722606994247481413208336986085447856267005951781268988785686758397013941517720642846379179346996548353670280046419460259187217397413998616004050794338060281249698988181492237113332089356748649822378553806865309544000314756935857696143561832117916541362277310296655284308559180388206774262425264626088133181189654857975149188280153891941523819507063841079557180871171057619117873308957345763502565503722108721176837013546754629502811889273859537901424533161928122437968853747475108631584697554304673878736229605541283640124981936882103548920807819340393153848332824587992834769901556474657075621976618133190373127456854168091210755864566586079426571638199175969477671425682678519347969527227353614198736281153276378387255523818322721964369990219108407791772821694774059624352905803404990923540559351957270910254922301152506868371433313505282579482182963333901110846457815571122364477161193372801112768588129688145192073204178683077306635302243355645093269766435248709507430206437545023930286214859584463082423460237977343614612010197282280622028772981801158545915901754828331937904101666584489806449251104760144800813178198923854872321254055149535499210617968265384190726598610604833444376478933523960623649216937341275602637670194777563470731954554694148620814754890226940993556671137297514056675650991233373942754677999430069497993582180709565912576521585527154058679726714654643940193910849810350533865088824783649149283310517553482328489203458401690351967804764841697679023285689441219557710750472423203517629082717747440736164630137912416423206185953463433312672823061752291567461033285861228377435346333116755974324555698292150323450291014418163130524852336142470196587335824752202389357070916272660523151504587962786150314400859965963307399897034642583184852276566865885939193136308418338409834138342030836792937243570540176972330344986105422797015841450461678997685832401560339497513175342795974340828094203227703388965641557170610439207139486087344739648417068196158135256745224746691288968314628592981512515646594177798177204629814523080905136324869938050649919618439290991070895943371759462439393581990951167223252292056644662723176413339584860200266629047927658408212355159316893067473475738201947624108826426660410613003533439594772000756782505465182104350271275162093464983353666143457657490613211977573179543750637133068938800631743971177842330011457944587251802344883586994613209521710316980275546033928736436210219386242121249925162540057951497929223234454761601717148366433011244175592795671282821573260381620582973427402541907857036140350817429915976357424077871658546493011258464719493685072593721807448815540600986632100152988014789040677470379267993226032467265765608919964069133310543289816268866448636800082517454099971107077926327996752757346817086855944856285822372096011007373405596519199928185548684372430414581609759141593055352875448996278846613561558901524479306882362941632112503376604935080169361647690478402916562762479860545628963690874493171320525414724540527381444692392003612285794654603768422423201375825878497215432499538918014099093964268867384118717060411616771040160679867072313777849231356843890219992002313409062385494154929303436163864825541031386993348963913128193750337608982631847478035146295482152495279156935940715564512178481314842842259833390354638605393242075904750393562186347013226495635096822446485005860184494541546562168201770545729554496950346261913566434439094293134737013780468723120214019983358460166198336629332680230666837352215385445899112044377205449735586298243311479125686828282203801586247038719563828747049731169693261564567265576490696715492188126362748448325102632863151955533130775330106998576973597598129415482930003090177157186274887192809637220330726525651649946307784444714784169896119225444047638108494398901136343404513850954511720732970873542516456770933217167340482441991946618409741050492953876084837423482044973187528092476086716775127821539506257461494834039447508309985427468340078528034300787635655111416577706710375891168999468877731355233584475294865990750949438831364780336527657710488169116177161593035756827266765811926974663706850210543641479164881572704060930126376312909179688331429947800207936901117836794085633376714985309187632025758148809721061574900602917463795371492102848468975205446132556974515461303848480531081607527414882036939131832667248067596396732591492998331045933847443110592591426904576564122162786722956723951736064085087253683908704274751143450308850832429415244180251022014960064506502729646633432163748764558686342436471785437073900407121855141699551888401700341315980747826603422963181473962672285011622616845927125992170014660435231259156597792496944151839758430439651854408152742559486704208994853598385262163737124239344465438015336076538001893961773529443636466125616493921770360538594536431643896570543612233768052910614392476025098469657379559557263752116509158260311590545160390822341333789401968812163793565438624336335294923961076109156431096428488360340491594685322809826524831729489428363102512298355658752467207630416773769544886850464940425291407881014346586294617458746118266200278365945170240875816633158794192271703859382571353230787925516256230070521149108799376898786068797165071626154247650472124691009375520231649213333486334544063096019990312304226519186576392025541515349183422792612626488083049918939732921503770473219586987993163446276623198421895940445229584489123100316190967746593699333963997157610453957618972791286671457199947926007394969515491945571764141863236233431771854724739386427592485589522678515019498920008728310615481375883539362017615589914805387147554112053185116460375196900252325845940163396858540778654658560587658139344409152566073950047202543007465845623349378134155796886473306861036461417668461411504621708785957577626358122310792069554996211865495470710157841488121502673762799507013426709874562925136369913653931087057491388036940129411585391715928965583804534303059672688604877032802737064719861985865905252785028035455646961992338383663758013718077134006618748664401608137732446993619500073531099828099687773019657529197464759469513691214366638236905603599035616287964201649705651820692208037894483924121256498994744348454812829960957323393451552128883122744911829218320390325178167806074690876131268001612273286712612798512010745558729069308675120963922613730121861024525716245999174718703283563999141638355236286551872781637705669573352358028774619983661804659373964890365418331098659386774808964455826779940990198455827738166328033412891075573221034815155395108473747330055677988335401295124887966569547925233520100547495704226183299094724412677658834617586696863791905425390834313214635877889679330542237354076933607556062641444254925802215414106430158364503267601134821430002332578302003648687211940582166002235394655151377512277922178196501000731150202963566274770786030051444105249399446963771079757926160910498188920223460510724527499724597112528552358479507929841448004476775490315175220292379369024941821153260950547528000247659901843177237426825586768540460574209351592562703645846260183288072218346809927958604691903775265141902585300327672934012198350603676467919661292536623966587792154684844660057225513425010868090173166284448047192962823732596684184223161729984327897375152776727622603426865412527944622289877322985131473272638209363188625221902135507337002345664262163109176196681001259491688104049225253735505196219519936941598749909927392274460382085801392400876567370822020566905370047349234685568615976925459589557520512420867551663297106658828762461607302215201546724782118569331768421150367434790344699472970102824061423434974189890513741470361671943469723679948101273256016716342290224345897540368444389449299313472932011875555139702086460366977090272792757296512379304826449865023200792260828229750515766436990754702010478135957876775874910393430690086225736705324683378843503835484821698386521872568241522527539175759859547993731024822036409958086978638542634099027285660128115166806704703174782473317495552382280998081267760536718461347669407716869325686913701387265726666153708377861213650314061832811677652393068146289865935132400541568436952224479851059989843554687193134631227836920411004663181094945657836340251435765002068135143583946085166287581030210686828007740302168972373094519612082114632721649669492588717782732757546179117455103816836493231882458185006419832038466867633288273478977718492424500089836307020555681417073679812640598984940618517465233830685391095887619994647975813458287503119284796254923014276840398884842130689001860368392392380170382465624378859709437260485966159402242515455473854722072007292418767945149280295770319673081270196396735626924017015680705033409672122065754909024546327975741032028427632864995832249627796516313121319605168015402927092895814939654560936369221096773725095946681320833903997963495543579120439833645283529069326819733495344555776385822472380493937238935046568695723573819375463161062238642186683731250184176258786362533155306322643860430107545183458288778114614131083613393431509347941360241081225156943632063589697582395364609079898357038446701625453385310899298184579485878116089958989034261303429358160833274466432313871697567253442904523397272149711412452581928106191480461403944302140110343985344617603611350795499517824445324617599138223619791787844628413513064493671499869920355680638613429552562285445815953181530481872439383778316133816485193035428136272418143403316377903444701430689748604742226675079372316220604439916366457342126663622161935027116701777984004448295158544705932966391987764252615345139437690488412466393032554241668721429157629832991264569446791202337023978652952099236190678919552135292258101602743789362472031421946956634026133943832574589690439344625514809560468971470254180793742502180144854291076735547562542268675394107590409178469264437751359144101623525694295505785711995555387443405626154362481955243729530993669024250884757163418665467721854841564921163349739346841639504555211180910920176498197390760862886536051944096146736750228385457946831474453875295504652516580003128783497203634292689808266785524792873803108359271110498324460726213413726135510883056008631412061146302722484177224198976172271767390784325231703980965888677655273757709448110225763210771261136935487187042227335495621275539400579928266057662524477532199392609931560857438351418306880964576389848520691342843944923203357958750091366809862158565048301289562446252722832411580879346601471369913178165381231913844097983531794165831001382027616855127086304610264438081725236389220544726179981835318210780078001086234205640363373747667757112453760914021547475459609289375454777012738061223385341265655357687022312791852148057703429999305430212921826934728686461519743369518953813200780696938438443542093279717313308271812603651685622268831001052187191621175642422110458307711532882891391046336135367496899153487238699575171478828424944967555591801687732307291194962515190286306822013023618280483238935233364250243291141371381590162449669291079091691384871888255593538190309185430872722175804413103980523170788062555487447274109124990884916713414714919494760539218334878952010162809388929035517424675503896140740269323400345123664065314976907215021836027725798840851309377512783035582230320963953020552503628708062897723282450949087868523453315741324137321722269727652391443372077679886168835053354052916859226857043348301899140867901741754649889649982991534891103103484710038518398514593527897174045744451713743306391378286041299093605251172437147549085965184421805800216343089167042275484028193178947809125151311870081772482185833297653849259250239523434804009661932592252534008640100463772315766547267854269074014974865252787947714684713160614327741759526758001242720898809212261417443114437253581673222910087424816011230645935980212757082589896756575539908642028580731751091757763855638628908057649928754583798478536811209275679979412340948851649981381325174207135699240746799322120290904058752235200708095865531150548446173602613115125421192228508843520136289089053382624010467861915987706533854726137323701709309436880653610965187872421037990952354015425294212434170944674118964028511838496578921544269696444665559758534051669073311985801467699804692920008536954444895352573537867411013296025704215826475348037889786690918763874601646457220777111046855163757185213913497708203666498379399158736247064269214089730465488616506411587659818685972558958975809972323249889854877607431078678071501271945193027775508756993604277256603042196357615656357027213797584533008443573494682904466489121845814412624766425175047458605379589873303350420096556540279394330392296625323387884833044754579670033180861516724443038645242432641160161648766520669022965437457900234561870557361788364039966128589617295943557763282716493284506303814627904254103442913373328885212884236510647736081749861003969532239981296557256160428589633367804143762450344813583795245835676088136291210445920424709335927362833409625190156338740643678075252507497650981668329371860824278155551960611613883997795616470412226730001908877209608126208763126766549521217087642151471132619062695611919719455438301197984374139260316766528196284354311650045770164011233903352584963023316319049258770276217679453802343293737776426868749232755130301874186056016832730796217785977664174193604101505186785094203156849394356424338726979623667800019144393157003361901998774563408139943350835174956400553843427733046013150363785499876924856185406924057933939055442620062855597293468032954509998051376253595754928859089318450506780111392422912642108220154419852246951401899682229787142178083691822856532530663240346837617044828370121446388808557125551333661232039662331637819989597074128241489698146976759734840937414397924972161739125058728556084024989521462114255460178199846989481795003275880683626278299938654939806669887586296131760112931637769062010006469988174760279260056394635231256289288768475877266210510673945494618633477443429881855884430834176794286291286220718898342504135227452229482486214464103841317749512487276622564589865621581959776610368802640717271752765551362460853332911455667491269334451565828242800666429352983818306946905935718976817320513026825104969038002625723852019940756544307540880486660013086953641368189837716328230331407276832031069110698973112400045769233632376275250558850968335321386017104765233908651296764395222505535100997922603704431461575782226554922899622930924367948960661971691040810385718628415921064448413444236964439260410325831179345569082602917646407903358101769562579292392296171257982365458574983296986883153784820216149731932521185006796747021517243929806472967554883091683463231814964744274478232380139291362482435053920357097820830992200138550283421806407733733257028201395882736876563774036750714233342008981208353577161917553990108835789172292287616478531808853731244891968021482506262702973440240757922683904241776845886021162749233508488198670907944422527044319346935754447991610791069028096723527939682846125821037385310006111854222991333439575072247428494003022961330307510723370689521133656388292490584183002913108004029460946433968666376138480670207930494611819287545534928033581804480512501900035817109592700566742963852242585778604117326709699112773157824708854721767664166689126533224404701022693451842333808260491066818120397699759052624018772534150256870289870829052633039256345677979104379283056082669927310264291139364663627450709740978438136800784015875433205056569842385926487350662192169973995420854616327026547682916654635807979755534983530996534346026818903126460059021880743143008024378307250084572224372513014733819276224685163111924254066453256199798822505202502173624813548379715564829162293750598809872634420922273815900834027329624795614815570105021476490097424841998873116023441860471803080367897995164590536184198791437871750885689758180259287701785782232548648122463586822530058920293278759301656449079005445559036073315900977515431962796968213480893893975558219881556217409434445464377765600394814292583352481604865776903081150385853736549882619349353299966363537685127655605504926647119164295416767384472328800810675752060402557015492506736762212108593786791354421123772378682520885642373817079010327848035238336299412183214185464030455322853109417370653544668333145159076682170828942324568508289474019844433967174650848052873373252645062759823945791996256763048726998234496229804410990893494677725845851775280832581727761117166644969198094049215615697033882048275506938568456856890535361340506713560636213852158839890212586909393405346845349936250026761855416927564939999908923533566141428380615488739547134318212529517216924526400552155644403282344096830175228531677496244128961002335783750430493116557401075719769493562060637779158099449697329904377838187097852224196108655110886180860709009926800179447153043122091216907965190197219817894677363756167081874334425079306518223418530746012147798017132524660705872484323952857444558511482201330584324922421362204058532363856907323804125238227152424272143705691534323902448958847086816635991146697848277868355362758057024728758543881563441377534474283860358216084998412066375988997031200366853715177780022276838794691641814282747123286367840763627600075235324209018731118397341398078982988209128660689409359433290443523560198367110803161008829980146230471993808057820597934495225882259131413592864048623419865119062505648992008178228351153588273286544500054698893499775041063311187144953274050764711519690268641677302213366753452778914110585944674204790718523752463944466317966934371546404296315181635465129178522208480158733230490964633329934579649066334607487021231375102690802210039339648799333201371581712580341952704304333765540509765536017362983257045149062493607178758866621189614949554469459733935508364372450620419074112991861791671084833512422543543358189413630513259417881054706365286896832352674546863362573804037442004054863762425010676576831297504517404154447607936024406169259654392158067618517303510156723090146630115571518891091703619657321707784830569110025857440017058862302655501334377471309373822772976122696628713678252312728903272404687607973995351830480146612814108903244457346379796503206898504721822615122022081718765408178085198556931505140780487397707106091684405192252540930382934534360656437363787436863938016477380084127508119487446770151367248521747900163827646802143296529985798478122279759669801839513098781602282291909016345148873812778488468261439719435660106021672161201842832129409598240588473064428212008512300192684150348505619637844700420659621397652888350133003483666754038114458686681609028934888883284438904796171032671466976861827444477944019954343745266426060570660877240521419258601011165879112798310095636977574917571389572303337014840140753207862757198650907092838369303658160764793345918762033565137712231398280570055033074854739518618804006467215659540229791050423917870176749762449784498423107454258938545927826504970160880335159525986371646929366458021519905187761432479515455666270080122288774910539130515053366624188150699498521797137008770931440153432008170195302323352964138203820687145881705053598817586535686157898877231719032469887822763132651703223757345060722494867080416547466528828332448450706601670925518760058788817976334330795166045617706799769305395155699217846007008354662251859144524560481225275509309531474376040254651537845542028828890175271931862299526071395140476346344645682697630664330031062602595804825513210702934934865639524902273917255687528030553520701491015521043060769857961267359224641957868602293801933503447693429327672024207461248400795129115711921548483074554935098410600047940772973804269598829641145945380588127893899797536386287029581674888988829837769505656968502333454788512744415339504502474325264510934656899773891706892182448375561022158114639278609476357349728158257429846306544004249035757134457990367717875811548428975531956965876977343237931934947525210530358549259810268261992504018232901402074825247461895697569316839241193387059637197820981423560451984977889241257299872819480333623234113730319824442325661748256695264771582501603005574724359116347709508748060691498268304257792147246783064090710039789927974645435303612416760536450475053509825151343637626769218078367396729323036841440200349536948419913802674830787653210561525399692164228910898368116532083174019444193007796146746215993174014396066337931578557301926981269056172068036534413746870762392592963818081607133239816727244613053184747463657683166179396719620300241762535937985934842243494670753930039787803464234511399760160683543033786188155569036234256186623832994671866378702685047258797374620823729271734947148792165048856880208013186953158244952292751776727216996732809004723953831250522895876289358199167901365036557165554925169040044732635747932717559520201595511660682745977745018651114143886837865398371875674709858623442550145845636880897997435655670784883444341637311030736807089010572691084742112400957950285496863325399691559295110626389902843926480165389967859387758856838065811471496670136879012442053510499237171183223077758544721592154457873995311174667091310570447319952267848437414816435439942911911145864799362316746060015751193459908642548584476578100235581018244363794382152036817402128697385897908871752252245304647303911670443420416205651967685479040950970336166094771342190670334191629064295076828185948394589303477283943682447225013496996068136599908255414050072131978705176641671329599209750104334943622110268394011067766029867253833552034094064066819949163610307107832605978354787151200417093577597457434211176918073077629091204795192470836481911222523836513101215095621357413448663968382841246562931626201698860575039398195971971793655215040875760078335019097886935409465835242367710337372111465017473870807711485686113453616069380171195375952399421186446288891205592184824304920033371869421921029808391505058390650699385015283472956715975725188810412998211808240117758523391551726238169279104962391581467082876298870953234459090602561306591255238829079909151892545185780228806697469766431405832507201657130223025966053175470437315341860618040572798114060812989886817933221478085038490665077825578381443552966953957568303362916684579228892279728808149429372315779082321888803338536659707763275696365422757853880345299039300418570548620333320857622505031752347422030562717099198982330356522228421559407994012789368576498872841038671384462796166229091872063288419269048667485165398700129724448463565065071217562468949096863012564300827648245298538845579260086035672480423034337760302645475706700570413983274616963265111269119017690041572144320698608931103689476930689771792586576524261010817790815716685614509398573929214182695958052979376641722422375864243952329566614071072173893183434198029984193347142463364965063982083818815869490434352735008774156420254547706143006904999319385842738600918052904814595362521353844485494267501829961364241263634651848588549241455008042330637612630855594111984754624998242439026762305307646989957137681383865303199258949899322619374411152450375175151262443633496212409664015148941281594970974555997696316040145134105784920592762286798214770332441320653507028759799735273671204308440095175997903573412369373789691673544030949667055782875542119534108369737052626613563911978595929057322996637895121787907152416659998613160644657750664394680519695748357177498999933698204287823036428948332132140622826074964741569730991250953227826020809989190193807789692984470873147122228364322602589537285945396024239030919164019105449245271537111542825089989409693738431146081445050984268838709280523529376647773270524076897752806778632219732123983681697477376153983059442882933102653494989723491979769704509612945495657297749975003156075135684435960253243777285436354949175843716555511105394768186119824636060240461303560719969678012509442471716900050567032819196079247392168533551374749701341407641668243043767222945072513795803994676951096216337501424639364651989193038501149069120475322328196213683127555727795185632251710802576699046555201040293919051863196533926424981864686453946428565068698334777859736689238518592055056979744039117194795214698929480205789233410389573507731629636297286282213539254506533125426583095177039913317990186766118095408323941870311303256097287525949414962390054010072535267316742491823699107913359756732755723100024251717846576264774942716557516464060502383776496838963897359046133652126031510295529611652533698823781871680784592093729132705860167254530423896815011051811305849043609346873598907789682295631004752636500559946266909218084761345932840390806800459739259632327435068596665125493638082515926301682479018133193116936125864252158114792638212121767911960511990127744706318473032486178528941742753926501751386314362154033639368669134503457214845869792897214413005227507990286494529189216326330853166431414719107947918426323610152461416146420288717269652731697807259834332096589265721204342753943012454439896703353896916379497039326722832616628973369814436784096849251682633020728721496425436237792322452652970926492520284077695531350918954174184935831244992654560793293423947207369784772501398172365276017165271714187817274413243613711417525037593538743910993284557921284583857683967631012564685874261956381456922397317205661775819702766201141283278428872524718275202109251773511454143159574034123745812826235177705637270595641560446788407706726513996798943614119440449582601115531952090257632139448091451850777941860056681211407006976023580021636979245245585748592988511748343655455930241488331248313691217655613450913797803892475542407570119396936926265011229880015250571862760598050662222027668044292468705020688653183799156518798705669805965422621757312336162148458327815582181111561081090610925940664388644146596307813523930530848711021418043045319810305181167623882508198096448914826911762684455861242034724090759025039875676710181363014682519604690044223402696543520554034644707261648133505917117919852776669958368412900118391828427106377323631051334049234222078487751432993753590835351389380108535667574048279852171865393549029760023918779950395759045749812582243916549327990064090073022015320261432688581572925359680228371710006961707801523278728173431435778078953619838230543685141953280546680693564602876846952112597226877900963545000815096705705706485211909124433086222713539046880370398093533777068943118288928547677418625165672427338206994166928158645895411613558538310912356480004282391813009638968937693554207429935175666271497979778778859105954197140829207227342893863382933297910848850997071329622370756828115439683007020923942854717865312486467316370861203647074892560254113344197371614677126913934673646837272804414235438059992198558529432296620835168106110434350019542123934141314791309840077588127722899553078182048700983527034649442205275922842534522600376359763545436947616544849811062849942742192836124939939006387225179330054977534506725717583621177260850544957875308662331738250894133617907110434937062495091049730019732040845524933401694356942642064311787026477679455797873600727786654747729290946547319523926189881237231163606312692382522366414324406219782525042167520099967863007587738991611547790163902300469522311076923509868792343244299069875095200202471585563347222201211967614845126269571839613518036515725041521693126366028885823374429945059026687588180061589501624491974618729317732846175849619136665782836371588257062055290130759802793746197912014671569777122090198460347552021487078543337841837695875072928921260939045612904322294416650197559141772389475612681625265376056466431605160868240740893073453976719507160472122295382693894085199384327241159926342017881153181759686215176502463240752851280915903695908879032621227796366721979341733573695219206772497554596316550153263766564158789973599600668537521680551917662966392702054738120694959844543139488765505970293419365842822643007969070230920456579871203277969617536196220267181298064608477028655747095795569018983661051237099319379280689827841326628482871758802388513726105447685353827266059154057636637338692289539270335193550153203652004889276785890407446556363105537254304289095465052245559542969989713116201076905668531368351821697454569652666587619991579085468188767106304479468336248179674232169950369197436882063952334374448731873232965623615704106826399150437693385786324699543296031085022887749768773098051212415614041965684314727403864605212065145369248743605920438803577117775594597958187168892279082606171485824830069560221933324723523324117243004700341550632746250916856007662703798104196639961082851405836459788320954081959271481799666252095072651907991386627888461997669618213336645337163041893202877547946461674657898392232712775361929009926641192347122823859572034233697588540785905635290876068730089122181888845702920820913247488542281414172855313158234538383156088356753930949814153652374284078134937126511967459773552004374719902683011749637782786369738911038840612260130692820512337426281592737057791137513950266548626156517940741162205116533470008549596357133953071895731578164788049288767516181658976795427096816817355058258740552208548206849713601922117477780803367575647947673530703297995933573536063546693795699795463095465044969403037654772266479335655940612214382171591528731582762706162970162702339074254437908440411266660804263211807758136941340229658733085179923885677037471826303882118539523308825599343275043285569351757171414563241687896901623032931137953900724125673253663952652336711086547331296376437769585342654140604981971421601958866293930116257504254314568286298747411958343950967330112383009154787632402054771435681168413215289089705760044297177883630882687134830794798311622713351486383934328052502665412051603868495143306790340864840116195814491799786758622977046335894821294734014916222306940670212318804653772273045052544847696407071600987817288979929357644827543041891564114558282790818742421752021092643690120157569605598409583695599201912559168093329553951009573337040918106955150533304862585201874096678267444103566912217919243764067952783844247880222399002631133225221700260960492727631082174867110684846175069569019402682166222376147858163968175715982948495965733452544164275030007913743015826654697763580432733485346526893408119509333343348110501012703931893532756072261169325408352615272724806303430220730548256541857184702674306803259643279153475995350943414484650957478220047458295888849732266460138367379509271590172560412423302062540985244050804100693770704399815180195204777567351536659433946646881604395649695716034406260804186072364384849760824832740075334216039800301325200991780707079671591467153161210025369452287560475069950350801326653661012403989470405583475008630473929858004875941735808649766323359608897137072768666668570426250361275095402934511042164355160017265599005425816589663571154701734197313799162083701095547872479192056029465511762628843593625544229004721310291893482038548013831424213036923476279578217124773472274973957037879028846431001857911953483842679956480683577325754336804588844563489531534207665612369533196618798802465545437596644642192064718804200684982987885625499371887465086569415246244960248782102865374656008844035048801359913096035648607344764718703532256559591599388301313869843233413432398623421368869025424608166959923613966786361114015298998892254788363471132722602065079470460276894488625245064972832426524987895759802940344880966518301993891517722437037021198834106231251094169976141703526262016736064210553813484689002434625000440634629927553905761051250610691211780705041653112581060572496599647146282360805966108715849797319089665416220658697995040946587795194310343440858715940652829589822874527656826109714866711485268336625211862817690651297158864449877920328153319115246732489150801310279726376953600155887106067025338174511960948889981378688408383656724916552185711028493345928695856608450593147756592642811092436684922241118454457945101979551710326789957945822257956988633904054160852837558921364437629758934368634876374250430042550968992704066379876844564156457595657990577130811384645181409274837799031068622065133893420050406290165402940005905392040222517087352928481103643712443503358513252661958393345572930030207856985446134393374394169752925757796810753603422099157274223376002715739045183208046035305100671469282945103927225501883860230827168436210888370232465167690517448353067668731246230878232950738079515725059570001632368655376201909566967039894344100956303808973985029025090967672054547004179305241177859498012372207978503297652092360623160112783674677394095397644457454329703049812414262124552116460088170075957848644019950417311091385172270607244429939631977527075311576745788528346954147790436948241430305088215538458973898304543495939417125641025335830282344624928352465077209663806471923204144493462419913700403506675975450125854815360584308287855691861947155381691231649956581587001089805945550685923612303774464119515404668493606171894921438098112319655558984592100041105066466939689187536328310458240656605058959007911507039665553627447977658776693676955881757742035811237098207433535678073693272647258030626513397647065710472913544680239512641224743943243284782007228849782055973573141514481195402912372446644997478166566171835246113710469298554907342078925262029378809327766213278731926685470206739580121076630899257380528650078945028675464954161240816296801750609102030037439920085875865218473153212974642380991260247489763236427324467627189856638895975511876992374755136815508480871245779111618323272355058835961277109106350006143994412616080175928604019840760006981078077877730144599598659338573941753974979961606947390714167575083427340224719700474123467760688859899516393143535691605700192839964649617362844947932477461528454008475176338415649197789284725275104148379870565611608048756129845624062946118153563858981843708107286307363540378977703736862334741473949576100299523663301633391191340789416163253497412268819186248260118331603590827506592129176071567890744374421442483709484079734111575528977173539592354136891342597940026082453968946859015624578934134312261114256577294137319343073555810505206727416428395661324360377161267955727726116710648613513847331451903529717253332234633279079672777158369376337269376256108865992165748071671479907238216479415235922373973580941300392379515228023134853959995782610163780020137457292325507160663262770656337752270731203558244465532374231233646920894188041016425630750527814771118286687297773634622463963987703124056825513864646975650619084007007084406947681318197754696410725270706182560813172508777506069717374350008856895371069519601291331106322734766337822018900713311970021994621930521321608462973137144298475956618842684405437916824051031691432574559265101525061550997028816962097723100570592878190100008597038610263456339304339995016333484460643801109080487348863461309756599881064670965155970873811044938630294868448264529829842705681679829148688711512426901821434678782693609355091224663804702238812850005579205611049903240696028121088583642802532973323932308678762837593931185124386393760864786518142601935105491567456783576183123349269853721087493110940781590741786007214499176343404902114365700276032161953561843273897405981462403497400597920458943002816203847593193132913279881345738639395831833166912467101616294281411959352745490736961314194223589827012926407496629593760034718292973990400565891773970566960257989537883195213859976401343135580706017764772916821989710551987163900651738141836974831101235231031287840221092895100790316958876467456769351792892965174929650907751589196161490993394615664851185354859024058189807256032795928746036530884341240241714488105959008783553247417658333978495893327845604013208561981130311532416878238014192409226391023440681713706567800893367752931360812135438004975295115517478627888313395677085014816851515527817738519278113566822323769248287843615271788281620189784455425612598788921766796232747319082852653041062715021269590028316608580805199486270966814860814279049112008484199869460798733605537812060846165815561969949140183583219137865565792933347462061491409369002161659533815674021606937450201699355979614650547196128509260599262803718494378625176609050860556089665718038275832525504422072032435603774760742792436776417167778670088857407088311273989088028904298548914676411469869439602448555098670094182568194589247955164484348563004112807274433563684848785474262000990770150505275137269584276443204286818719123023166489801646791207696779097792315360073934750456373985587929293060301837637876501269414445200861877330896654027323279096023793072869196428685139115341165699337231848289080682760675798445958388515030946606464128921974252021361930365439351573192514186988350518869708085314905911429082934876855704463135058498805452974494027604450184142762570138143554263151778082116804417950804881003807355305109845818254449920322639552624227023028373745631532493999084167294907789243128495907523204057084233465771417847653739768169274286045372863942602579270994584659859141456547368491374080874039725179945074643128225494376597264985208076906041126666129267769621719816540312664007328487888693207548050026009134824387205882426018534178302772413592970869215522804505131868168267630719615031329854721470776884333206158359532653531859919314701563764353008105126562046998869393755662147184441316109473550272085329845381775417012623967933022607181934135299992818391006137247335960108931188302043668140842842892081570114621486060759668464065086325757191126890337441632638267936424906592488184856427245272201849359842318530331889322057951824709825140758806333226845488905677934725472114472004908983617266913221738540885942220740271157629022042162868246354691813303397236856349292152737928767335910870145981740518345939764112776799176058417020778725809931318905411399560548421890223028961974466426464144853906921935819754023017936470539318767083989807965790195203789852749718037516529518610864454713458767847569269029786873409636753146345745901580442737705076394519754419458456203507056733049735768326153005759416691897575467054145694745078732919511432644870110136334185880633672974857627354792666813175168317991859118027817734580920911361861449499692532094014049553702176662472981784436192845362989892351399441962519865479353309233664525281903949085579495936973666487149965446904835002364050138379392611594832154737065183253305084562107597465554015613876974858790371970970684375184117895522518869698669333994731435831960867424907431985976157118700267647337036171156430369117998433289983643991776301233629117299421483993194205575188472613371527684754633692351118549150755348599375116384697783360590345710172702404390040675461228862015032653047679173061858444663160186303889718812622486271604945786487894710560146331920735657438992455377554655526695707798467455961827229716458926627944933128285833487989192458135955363619274140741958176859261561649973827211996875882157502370811180194887865031855332125119841061478225639493927057227058557813197264872853085735124700392895060889689259431228500221881940414428172708241031056560764193978548886247307490684033232077563994126181470964450900063710526332433844699222806317983881656029845965429915159849825316075182446539579445969071031369065050211111885655967302322600577963598072972710519325675091899841716811099294247129930705626413088461027226716817490692544522100955885206021565204574055199633680585679729020792987855525669981173543227301918458190486417202281542967998229008652042712479358429022898995292371366557374828965530757160886254058434660897295749513043720585290981247665377917943186897281665473003946924170906811873690624418775054350533403177947471355988578825892275617452746820961722229358147891592862663940900218353245917228391773307980075081419269466816772548555380988294016873587378483064447287487026104877404616529388757586903558655572500597461019572053879383240718733431438645501259488252132655215596838612467480542840064165609819574851835464125976648544716502781465201032144647888001340567159894853337617201666619621965031715601070323285689567781616624861041404452114512868557928551394417171530217206821754663578540857428248696914029099608770867220551672423604343363133040137706375349339794015354730613620564337485600190500712910201293836335847776549825002681059888810168810694350100430316024580111405308779868119656076351687553230868927740726042422980617981347381590001433500316483065041199249495178926502235266586347856573390495728079918775776261531052091269044907043649217666487506656673526307572659992142588179257140362712159876006834233457084481642716082084236533791200813073285358522658593217366510211981489279022951351597047937105423052772371502365967785979522120841789632464122502346477487764355885857562738946302203809237455059230253566935615875124880717920334991430977904995110279091009300780621415165438980739303266688653229140174925037540397685743409706124660584182678267157302899663528205978788679910147176125844533852615034095992521802903818030246380123770556295412305899341177843367050991964441711167869900062521399252978178592010247922187728340445519589987500989777764471643534264484488266363924426566132119666305113854912458258675473222147982167193341875600453853732311790862515481557394771586895078067223739142870062977751465602148258586393056949176085990443736105879261142138789800117277304449988020237835521887729080780861599525383058958776479638454611676097909308867078420350534357801101266639634943017538503564020226307704170890602829996504781387474570516688720087381596472810784004922431536626540074889048397483818859924696848736746558639380729276826495011858780092547460674593390219893563301062850813864893731142814725718862294065014167229211342126548599314568128546913586516501752401845606071360322666394499181133083957337585099590198709543838074885307307597327858288960980806341656884341473813768155402291123186304773575702113790484931298425754911310731585421109322287350753452767396999028791649241733988606062087503313360442556663752070815048559690796268895950780454346574694339418076016265263790991483036583767435473353256391065793069160196230563505127196273829975437019899178898622563543907444916304766323885488786618169284081165815016845642153567904020001870652198589692208335191135894355515976865933014851807417596959107458078593973661649991344866386762018622703126761636851218321092855031913197966610955838838033885873504030495591338490285890214108367454414536206739568073015570806055689343197601715303235908551216032598823356038814174161104329636716365652728846271367749990891801018310838006826350021275047478683091798078932093582372711175698765030290033313457903496002484645346436435136771505316183735369413005458552025064846783035966391255657164155097079062132532010361262400779889325853125607708549755166104015735221304705784278913524852480384941320226559677708998392685459609450384378773860456334336582363244528058798494485609503362874124627902355321210870158557890936897306683429705310958120475518129187540525706651420956535222742370199725046632304364994249188611662422912491930229193541208061725869253547193166168090727408274983592028240721826393074946647761778761556067872953678245320879206229021217336250704407610498151059792403326962213092081710980555226501400026843483576524551529849866793830445503215846612111016329709056385086243683226359850606576755590196285445180998795293081856212494357101358083772785885603677949547935511709241095073688816147011458235940426267799343008863152593296572733861166072023896818147532209497426903919089714866784126748857758709870582442499634677791908864761356256080105872834320216997557694521650412562000854411482384518686199358144802976001173203881611683227670986089476465663236631268632668247504775295943970567499195618206857591411437331697312682837036572183847422554941429787700631033111697308526184942832858822827423122377159830133790321944047540450703654277543361320313595724237316506272734119149499698831774007643899885695851829299431140736580211501470615384838508758824277448617016808469142918104039310144415700258886719558074727724959896608037440894224218367471591973725607043839341465986380313125355931504404496031933201768633077632690263771501603905655968827244234291119527958379106932881554266473905814430604196638344239525220360399977376255119455961878591315931792032314320734098862423926576909138387438846763550806568804255996182179858594706919208274704424935025737612654243642367598201287081551360964056152617013828373962777656732134587701113806032464889958019789534935252367625350379743411604563505180520346766007786868771346210562215283708377343632327107699605630763605708037641163823768300034354140845946889837119893312908623307446865241008367961077737860374472751813247878397944156832910663214043877739308145803659907030964976812524697463982248927492468919298864557793013414427188439374951085907963201635590542950478788657186333856244229585365493159166942617121702132655476740406265586867890054823570857080870391130983163140363481190146980184586996243299859654345466801094772296614470357319254099004288428123658405426679284128252650287830617363812940178200983603377042979919249268174991248400873423806363644302282663914661488442659621967057629005859608714639165959606300030737046496838407283726437207882919938299456020060927017165521826567775860376875362093974952640576371498196766304072669204889180924124585480884438578233980026642415776755686736974940619997848158240133186952613973420460483511671535841987549209185749292473523490752841795867378307200798650298004604209334844234266224842335031808825753180133789795040272352900346028120926592314358958521401353841449761177715328162747247310846459230292484447995717407658786183504908709315920918850288393281201589067260600955511840407606699182324693116502148958648278378829069790868670027890620359484362885384942445012308837717735048133517491584373005407702496108062840364008138339245160848965770038487097893855352443231681866397613746295109534576675396648289915442032173512351319896929971320112337830942202749361805956101907907937796517317329362101874394565808472476672063026642957751726914867270966268979453883393247055439839218029355050215933536877331250091877724467532566924860076340768830607224673480535314038378715591774992778736530016417380566696009754790856557873506418105532860845889591165210105159125413352128959978246983118045804978399911411594778849078713953960262207168278466639086904143466286288543562303024314992779419594938308131773095610456656063438561471604772499318248879442512778518469432066949158144851164080085446358153644079160703107352763863622675193263470355105032545910011074364820947844715659385042950852162883031250670799344798819874220980177144026695058163935465900074014038094645354395602651555035325360754285081458594774347293924338872025140820709065589711245400764317972497704564953933338537078357065887861962235113268741703911443357722698864595868538869880669165159593454498917051195658048612129804516821384767076049909622990388349302522367143662879366687530524052690853328017701298930940676131156670819349470401514492301474428532923663600502928788141525827345201459073968064238131319254784602537263044489914099201757175249928332728738763558418933380437387338480641676449755458011754644438687602354131962313342455140234209992294708538505459627468498659683542305955993238455722148799934539839715977274605479623568166036970007305900697793256484336656268966484643665486687634377012949508511585352930594668303818549203688548152309557517714785168097283112701308131586208530264510893723540380961820071332895376259690170352622815953728554621538546232867117318618137961690143111730370919882647982359362077226770014537395866792358830690731647897348268155329789739012227757271898255096624127265376030217737573855105474974225850580361792227199815520307017608402264000852255156630951963138875454157086983992205543956881876629216899281682927722103306264856827438435943987631409493866774065975189010437134585494684403873185780296054070355824450615591584568206177188425577843654347691720376727794434199084777889435467174067296028938244090668678651389357798310872503358654262141579576895062562501797746664952431127426095396387274137816651722964301820824599228052393571086908267305444442321155989477920741045671000066753170050666029051788423321547243747113074499574980772113773141585685845378711009909358965345634419355861470004021331642366247824891283998926855227775920632047002427754946976894307748556334736774068276790828510248511762557716635837770480399138658106832659963195446723922750230564177879105109396208171325339572445266556568446860237392354004707685414619024710798766661448669757097542149467213694109863138335579025754391142232605797852542228812838626525668233633129673225947746413348703224212024003308844730047060771112664435277055403413063750319974773531191842658471846104798871626313099328301105385565607864603629394020548641499222775204197810895114510674629707313464525077116887595286652564571283303762271452463319122678718995102231549963376709547117372886587933342863569684877250885259053046862710621472933911874851467396572635719491995571297621993167711999239646816603968263631367909123073338833598453258251207260805512628466755633336971201697567139810513402616011642776395949929187884126820482496824984054235793793380601761796232406591335531665429995699789552962388672839817460141782949186664456445064879012442708431854335542005193399420738988969589500488810844361519468653090161587296342843535980132608352385351852828571579535344654809084530224890321892245518425007923171990436573289563502051979183571833668720323422137744229598552987252439514603101672378770740498901233444782966164103211687797674636410769890907173093236628261533169215330723418545867569488615504176795644994338349809613784334907953042891078523223177950167053231935258700287766954189822188044052754778059259830193061620158173279897857606779195378693000112350361075972970507556516260023237860942715351973232204177525315418268863214606237202328580143236434416990658115195088281201452214854082950292346409508014632116197444707623702348611931554109629491307365003742366163486233135973123457716480846400359595369102180786192411565031233875898035640833831745455335793333727385735201026701692935480450449270353425638923884882242984730238057639303920263451772480326911302825376449555186217145647773193097926522574083776560091439340765522068835313464587755986710072441337531340703741107349304306828513930667470222761958945044509561456562470939597962279412565812258269397557267019820655910040046967160753597283981926563014949665094001195843527442827681906504465520780212339274816509708026834855087221737584938620560796983380250998397193608896936327267208913890178531717697187965616737218961600640804474731760217569950337325381383821589185333660145193054977247156747609882106711841287347770204562374907329531290542069391144970618702332776679942238658007282303464344343384975513460583102447487902310303083287384458741621401646228493525581070641729740844240625478033713531958489780796952665546365019017950323610564084960663152934688170953595337307045160501302272963835268223898563436707020987321851608617415699987142490801956072881154876358958029141749027380060456089293039204037434515441514776540723448914754688405453375698101864764314956911084341026671862631166646079649980614258098757411759973115967896172032498083271097455412926049790347675819950089320670094042586861973082129571365492617999969931943590423588468583859276503174318376787957194287238969734475238236238434765053730855471569795114534617804484626348200494050410688951314375407989881769632053079182413449661873635752535348711212194486578167853976132002080072959457937955855667389061557107035961007286211853900285178820825184231435073241243235095649947821509299846373399335006895160706168109460988444227206453290971138103846967081427497959688696522734392508084562800905286479275113671116260380670413526625433211246139218916454126736675616985649204839791937161676611825655031235094146088068805622257575079464985776564651873804945078052985900108818247217125709740074533648700782062970005896541124162201463546216838462099115200137960802096391327937473906480886197722657649208158301725689501057637743097222357557828879723154616031526609482562810318701922921133769952021162847483548523475618888603620555835812922903262026784644284450428650723290176773036276918635981625184679274511228359702077416885354440588486881816963786361895899269812781835600726933611984716092537063475410554874502923546327056247596206705334895715887620486202392176950061143226764560150974929245541201580833135057968012971048303410005321822479074481940500584599867039164951166073204761935071742064468779293612105332948183366065966150960765681127175675990673245582817371188818767371351562590824630377117479748633437652615751735953061833238613072333783205281845371740522435356922505748845670305076878145198380031481953122081845499078294491965469677867077829281434375545644219475044296752240451985706857249106699705021014762777959733023812153838587781589347434994033210247757789111227868205473740195811598466776585113870083730437152305705684164177052817592670030135383614848640667418866209644415980849540234489851751593686493284579234730556968180955223365424195085128041396196946587568452800986295266667549060473371355864165587358864090747667837769591581818841340039304599601880417872284410902773579000467447293735879912372182859364921363878722258478357158215206278971447933091153031064414882010150480836531592056353604004548289022247949491241018108806209373457149314407197446037405749762596390136893530176654884036277840824913586949545636020997592200739649843835000805737006885443472335005993677595334901622282419690253038711170086308186258923695295263629596107214212493669281954433883812415269359044453718769222964150577428607531743745930580617624235954890979026461897791150306737399848420986461539991205379415417701165012413468195887719870811685720349561568910361028741501033176587586907411384905703122905268405186867178237565293134098903848553408076407977037142228770640471662353297028939935977906852402307436838652115864567973109486960052341230650359735721716162903968857434208981881354074275775038400749561802373491033961934921539537448523055214676488601293999811845752291749684963778687647514100921629803920535598387331272947443662472909714346662559250444087963447781911524283982397882063044758751600111097847868354182877635111077792360595871088339344610363788137317891929723819678310535263747111768654536341081702197116170887856404944786181560876302052858303184629687477237078945364424284054985003263815132409061280302008748052309988549326048674582858591027009795347452730395321363882033837925085199047890057658704799746272675323996700192438090888903410795880255184428823244885294729657230907422875068312539748075693439487904515470369595785972003802329306178716548484746348600863902139700383992806459550151621490194106976280757413676607243075823162832660049278658521035505211104718271000307101395287581827666903550528264050651104089568686014286715465988461531335290343944028478888837643145151387792866159633667161465726798038347855645355213837149848694763506941197316455958186849594471400637250914299360193661480497044968499755681766350771568991444923167494963963398685264223723680228681437515112049378260526536776169928264649100491170250564885652664160926659331333347637017300580538253002083257977014807537752413360601913623325898964433987137068395815603997642586107109444738053363204335649444756837622033296590480115073416118552739904422062522776603232670051108465292275029187435234561720163131364792048270012521193583169985012301817483001650386716476209027088305596950274448446641926176307604981046279839236114784291129853261015052485958569222235948158939495016508111611449415852818176791435737874521524435250007420566222157362637021852754228278666997183159255646205871056149980588637176707982312610346343684460627884484466411945901938690643750515352241631340489124355257332481658944128267994582268737338673561245262401549873926688541545649178963524648963491660861809923815681363882296404717770441063209955851679500102328028867352682235255344977730655008902309305911495462843844278280814885776596899348836729240070324100995551793412576750920695444041585789648358599329969731777125670448083362831158060570305226495734779249918209182897413814552560710386927644940760697943990075820276652047781790676179985641277079496147493270967145350552380972893640538720930280216815400389552490193808695537880111021837826390351423716537039362440617355406459774689202811058191697701598697074618929726684188766764676210507620609622831765200365561141766696133393371510581341436171426150806774276897763846356125738435939421463992359062939762920526071348023156533920898515729115496578941155206345327518868596791909169656932371366236076761635868533887339407458469299384124933985044060979914381865435573569936816595601181980861715092010635898054435923241548717910963790193668642097467019324355144186021692163476463359444500860724275112504807688610285980694732438062634411968776851355294537661263560403920673867557002251022693978058763058615748149274397468001648139067023022434431286344292615296649898319693313229005579402458398789314412132295079414072934682804612379100490913337414475362487169467882468145869044870252675716798454053732689015661128800953546207441341256755699122761779031706941063594249014328200734234692146369276381792100648718330479425619118434445026166775512152209584429420111405334489630259234787212929433481986684550211418264309389553237517312386694632530635231194423444676299040766374275419907333249089118672922791478417989996915914912754351502561161250821203702469086271170649398536762512428063012881897725413306547027084506894127385501708874730538861507696780469461773489403832824713565764985286130315317960135300410727104853248731395942462147287696212656761359794301430894659127948031677913351995262792061214098445514836131168692103050711124847736265402099754487347650590440673725835808279448839639205425624166057303970166673435226304838646908694202261776587266830597963414473101570961335923590070385448248201917623975589357571993579754188442611902801599563029788222009395217458005660090774122578875055329235218987556967507105497334084404362592329815975499465841986474291774765125440958005738796957512310572779655287258698509430285825237372723843456211497517138118034202444927274482593241995239312331721729579435151234868111134245740985179936698011797629839653393699564473741199646585907553006361772520846367333029685160431327177674815321102686029217789321173316395175778701890069781858569521578592231907181802310493544701603750157424715389977066454651898833876026715803726373665571655519934459382955357875273535311774666022015634156804808882793553955470650843541904613181615052709433627168299224335307052048670038299186637834677102342471687974905494813786128263326132516941468136565545559315687227135613620964755270573592200608681084229080161509416579975471171150491126839083166337982692526772321490432112108835632125133085162354653493401193668403389933333936805230662444978085437824591864251894975358968679345384813172459352606518261820038675860393579253260113965592472565196339471830064723538324871960369278684316078380451840357489822093187767514558082331925421073081349412111402933906481976543685353984884703929930505953815776102386518219607825438724790110260686618680262952361346316166649990552952509391915589591482723381449672349906854116031021879757792934775755791198739338914745421082854858006409613961718901008701101329457084949963508876734036857760362818564686081238213720174553338573162529171720920930097232796428641255016139333529654727878898119795772324936101888920879878394006114366989509789617346600424380061387287820168085092202968393693015393197751385349668853463775286267581316856314276326808759071598323227183316786131458697006380654257359845028341530316601212853246148326427861204634341250969684570835582064922914464615787470761083738069627785133614746321120400637168358874657355358138561258856859758765878849290500896485728663077964404613240817963276379065444440448318167011313157475299572450020754341141245306543963221606004561509592112795363256315810975434328202965796948620778049243275573596902976415736236362657495711863744492969462909295601552585079823415628242602867985161638065227535390351087212448700713835938505024991965448562279749535243853863203078387820253728678498690936475644086230932486913789486920187441157742574971383590955485767971063321757055937219588244066179737579340938166429236208473406235426866060788701742640166631190617680177168207286904778999182061122885884798743226224970779719657286419399132016169340441105127403064195487642680771784966383493452431037704688747903706895494798769896945656820889799239495388555319122693784686660150796765923612042405942118894268334001547500514127771549589007287193844690415837993116694764155637848904903423547449059120067813224405592193914596339785015504370969767736019474836600923201501743943806814349743177561268463081741865454452984314811479164988750102679168935120763997040156576621335394874687802278409329405981796543910931437070107424187640217802176466636900262092651997928037604759515680858583919762765854345894061473474352241630822718791819595830283231932363953779787782997241013804034513358650719491261407467622778181464601020155521044087781395850934554639792446981104698964533066962560064177805464065367150424485986162998601644341625182683959672377593679046596654129558209536009886247725013138270677304990905679514542359402724431591427780432479087457973667940573823362262437797984276814644214025003577538352404460998087763844741382691668445532280133002497877014259538385226244318660493537412025181015735192717969740188033376393515981662916842999545129333506165155430899188015572447194880435796361908462390722497302014214460118386502923465653888515589900949873216799181967032957448035380930741783839335765480995039517017587332898205288765940757238086216104441076227936623440046024179155709741811214858464960323671841739825910497374036168832614254662191006514376114536107473221457563310899656997581698586351619964218815046118005297278600116695868476637442485506866729707748748582216802040271715044951716453834927820413309600542957305535420978899632292490657842413030487514037041602087354329455300803154564378330957898234068304418888260095795922007631788114118401201052692079508317104935886741259106843490406646856114546639655767819987317134768053454792165291554458585823455496864253634583587630738965348729390525243930397956159802089132036019875048239924152732593405270643544286670084615431986546981014085328722695887683048120649434593927095188668194748985565902186707690994884235334422423024591883812060954189384485570258817862482910301742617689003871985469495783179549198065507241463277466291625170885670966978954159885578783594025981549766809865041708154249992485068648014465396610013692313064437286604878110856163778654195092077511362844490489161769167369982051683518587152115135375036468889234711614165924467263457347851938045225185755250385609129514986845005315584672584832519083295164650294398225870482646673216320429936183949294290550579380416851988636332148021357718873268412520112202868313718709230498742598711639292569822949652588463147681669895280632829274045160985896541186737587015519598709529690071744909237987228049265369947284940182633290965805045360525972791950885467250919655697838345256031941804395211710196451536695345136782202771067698373577071982674574526171787159714452386029830566363857819864315526232045252852312129678136700965559771226064206533989554332084169700150321052926348369758654318941318828851537097884755117836755446568414246860438732179966338077056981795429055592108618207323140477616631753921319864967549869203233562138509556608893924438071523653468948484365589874739546307526338270505833617641966730822298981977398383323260948042883060292816036623110490580724418729137683845815579748480890060542776552419772011524463635106587193824480427615345577750660901609314127671872950183446875956343785241387964424074652026745841975275765820882219209823181312959204758165433320454381652855215569692487513598459289448353697221041714374252750570282054239630272641706328742537736850895483478041378580972898696901754706196369476783149892350928091276789937751073715013195489669799834182481492762184025318457763691451800240115877632966010781461236299018974743184736023561398485759729618459609792826247777662784186696243421631615739974366157201307093542950930206232179086614349271027070443003111905924129136719015564983382865190526294760080170480530651050211888360561270741863221831242093222465542260169343276224712189382680621520238983388250744511831110056534672753628517285561486197130328128802512700003405014381475885956064748884129940251977923474373253221673421334761675774468615751592702437806917592955589928193903132899746728389040285684770721127095790374988883631314096392634283697828974224071831017633448084990127934323692219426303515615786915814552293617881076716571304906015971173977265791172930277225530249666839199034563504575830452863278542342683030880775713841619716252686538521673028660446789437604624973948185280374924299667567484455315054709489174174002985915917450297082641278644175774383722745966396833568771182997053268852084354650567572079333673053653597096857176358435462231614528421770529074538886299652881138472891795304750282846528341382121870035593243578956148856304403177820355043340671152937101627598267585072571034719620909047480627221228599944022364165895003011621549623216184736956639280558833879389225827368905817193917049232000949365754237341551971175408740066303650635868185314975995895093199831316695005477625455119385776136255902068235711045896888410984939466262118126318183031606221258218175640579461909412943440990652875750348653819011832978054207081282464126961764012155204489141399831155535856772637546343601754840765392856231957344865271273709068557006725678425496198363623819076002799871996449999844289971746920525359524297370795290003710652750577777247178000750725187630876158782283628316184920382311341673603683246788895506198846124386118556684354461272205018377671327115379391709178374139797961936752732707887374189347921161685513592759018515132025891452991858061312789996518548201465055966835481588588454300412638878531638341505527466345660782892238522815577081186582617991821677279756804083143749552492494512634551636165165375858283395123732986847425729038575396192403944259309954146577741218630873184569017564132195192449348348722620026739253836709760337894483854124983385484021065728113099499195236077675241035636075124514483424595595750512804793716661671786018764761090530779345372506463675831781944565390022509539084266864445111600570836809140335139588102101677405203349288569070200997432793974287142686756142392805623357288159832084063092338025102146723974230376951459734288651204790303596016643924152461573970557803656206301972020761387675954500306982791871071568932964192423802547454202339682699280220194695624941288848850342871224760180845870139253114839346578458926486683409348182803511278626739336096109762032888728225087823339727072303020586847483014760623757300620797625491013289748353551363361394250842130484717458634270912136428537984967564931082111366722714341882252028218831380622805604492506491824876851832823447102192974727281176387038532520811931202621514636133883026030660792756381749519946966522041159635615558539789648926687514711966573884386468694168423922679087087192344169593309415053087607173180493988377690015851679446999270402523020041843520956267699988369434401339816173937885190047929874114867720853118516304523582962005206909232301385671239794709172925893046160888496057385014639470023835381169748104810747573317076920276464089374625551126011657331404412300299222153140704555500376350656201783678294644192472108285549673622459560840986396956153896614840638297816704647385109703183706922139379432410343445977116354073064343438991240943091737877665312086080142499133530009863534157830100602206297929403108792581138583190656713160154148267138289642377377312240484154959612227730380797579429176449543311960182556091330020180622040111922102371911184618623422014253227686321053275670974367450486624957858738583235899587581213006514486467021975499631405870672586590449410219605349659704055171532002554326177199195543939655180808485529560379640989874989786041373371154799195312053467411513780869142576003316626476424590382845649735198143373678768322694218293662446093615102148616996979991506480213248736476733249872738540026971101275128392718270162038487400355019668647626137939353174163790171408253227007458116846940750615813289487431610401396148204118190355356148821679216501736873986731004833502237597610360202317811517934376454660578259893173948818948607742961013757941613317765710665133160474784773568155310767387919180393951737655749249043619426690062620091098234699181209347295297327315534002718171349425762147459226910326543778218930017490585861281605540069758895415352017336875641021328434375561671926143062060557010066049524313475599866050151684071828421890162031406465073948066522426741924693127447670316219226192007084163628517389384818554558141645514594500056489554099464962321417621105445468705212415659601219584261269091257633453643518887499392238903986409438960169799373611731056323740829364125950187504343804999980876557912515142817657634876254284466432456071440179284771188765666634456490524567753522143435734507213340635795865562034582888850314117483660924884185101183895188821801663438495297421731117029374501363104216893162934374097385559523378139632077526053118607638163086296295121733894692425839975959922862272988583242021250378159868090323667735690813270823656700058110015101839097917595065018002217887861141543758019950420619708851065085410138844633532333000554746514500993738947009859419774147577995235331494139859108835102360160260983960869220466377545945530913178508772386372938398146540569010741661356780194047107852650199765345275331109365311910183461796693009168345359089648912135139609057201126320640941907224220565303630300965812656521949719306469292255799328148723663065778443823342272086125351825750275217127691453346365292864478884639803027281801732765710393849856664306043555714769132996122457920308300889147450557689945838681557835279967516587778824551417066212941211896438635132733805619093259256895216004572036194020287193225933525413756179604475865840913535682956305061641997377901617347178705932137837964587022114967531067052532393564041011433904489979199960956812641061712596186411618376649782034804556740224670374123257122362107708785598756080703756148979544259995209736552654220665963529491426364195413152287607903863842079115595973183997107393444319357946980085259081315418251863850046927141368147132791964478861264697924049635379275748610564062885087311217970511340914616173159675733126757183418895459852852718455367648681250898214162588987372976666101363425295494141170469124271907886804000663617037265770277049895710337544776781823004664986870166424705415794634294610907375910702609584496013974940949624832467642479876536360886898176805989036041981533217876272226002904022719574161205753644893658573304919262330479603664426206263375456034934003140333893294372800932277232936718790608427109929705412650347104187544884061921831688920225068076161408854463337170429383975587846962866698152306500809392597487541551490902721514353589813713968942705194145748767535177010604540043942815370911338328798467492208763580055593148074793357287152004840913448675293443818366721689840110956375537424894712552434856464167147363370053955794851515761570697781175220590436897218653613435980882284041752121048894661417135588757696804564959441896659595117676532381591230635452846292948384296519576456418634867385819967077129555337756469418913540308019057423503583459207491294505799631748188362962761165129978746131667139635693348533757042453859560118447301246366533959208046090900704332721016526513671603254570584990149232599103462788796702523962347979038751413477430295753239010726759016322119739845096060529904910109407602129688411090478947564297395604166830162435938146746605478188403384825586180033046075580518354863251500945975605184791680475740332273276509408474021294063598674097096032562925792530784298898679992660769632373551920091270082524444616619501920945501517970713063792700741127001892510825942517128430809738423273809421932701348926969984786401468382297982792077053161008564437288228357747176073518396338223852087056232537782818938472231352056238033780273183670955088695879168627233170584629308593253985036313850781624201127486399597823488814675548954271241444168452536990088134951786505540689217704919164595619561679515843290235296396453281931067836636650527139200933081967773694125492367586763520706176631434775780993034237747867276588729606630817742706754463767727564804011465220874613547278980860841000913086175033959692826342914402169618240333739296977519197988885514559467761889570227448179512529125427439387642483522121385593587065155973345216636905584095038442425543199261462306466402908029608302955932573758269465711304558875539079927897890373224572909578867238529314233982899848201707585915781055113806916576821932216290262308406116540578407950437756539969884231945242510693604352871933680792479547587683038354750388178769629312799653006996138856998150708479143174368432087103359198924456746621282200341029559902467935694488527813174537083988135804233373649856267741455452546146117279727056465973676800425595754263933442629823862834180821675754325639113651346274889594539191996286561395831079838070719533564108636395590713080411584957336457236972700370897480009492194974428999261473568136471027255829758775740938082788892737135229203054545072478106713051035527482476064325886092184743262521979972516389739052196447914120227729460847780666826244421771495799273378944777345634585498072567316005347965887025733727114032323212720391448153710132090399235921094235102900228675260888018163792515217905858669747237372558026104541196794144990912387732629497198623247326720180726642494485532346936343241748137667419142678569785008981331883205488318665451318512298302894310805680299556393789383250141065876495956620509603545706899603957905668306252776017941855017599382343368757624417666540499038488342397128794463055530629684010792205537498024624676435178666557380450198291675012283784169282031573744598063371646521195518499398543393225001434321061806737825763141376027382559536472900072711850700756991321836098804494841540371477235155878860420218246175079478022822438661393706420493305476390564402745149586695360619239972195165508803296662609501190502414504479381081301039090683342418556456278332173699959613621109865195502913706696537461752042346140854318127241376315336547658182777700863420855539169064948069933052681237854260721559240131874016521798458963272390973149267336109675219889781532470906775210538133419421618048153499190965217752119827930396212144261155269334925850800755208792873852923508186080285674315648064735931418921816979992929883330768789622512134517338107044038702272434085652738532273460669051558680891273879483583566993501627261628069994753468190988210815926956453140170806205910721165098149119184671115563382778132560095160426857091556896650154704697940895512624133168500159906896186655515020518251034030128436206436935534573963855246134139636876980146753171257651982842530021536556612825028639811204876407549282533851652274893801129919248143281774448573829733420548703354610817731257076266879422254586653313520847690033194917498842852727826467326341496200828837510952371213385955229314620651734234657113559872144853326095935724685387807663143787061140501765727356727919302339706023931814338502107447989727512708359324617341799289012334204467070267550589459284486747530994795744369817951191693285498365274739539104874781299770822405343111260120877029291505949176134735529787080730575756819720569008483561005935848898490481010981485658889385575280540809810183884621360417745353121759484567478443110818367577242294944326650171980536549384859285694215679060002449039609076838627736996459823538103071115787622275419609445119754055964394764495497143804687560329337070109970850961382776837257897243171022909637138667809074258365714771925869816039551419616296426934389276976444984681535627269737943728215323657808503591230361757511814690446507314195055533047635556362065891035726541213053031174807110485326575001471106403799006335064853259982317382311055592798157785629830355035513580319876899776171904774076513484780266640279748159883069094382328540387438966388121051956486638382890330884773572317094427787770826283587980111096335679204217890801500477166835292959148977435097308355271366794967640597581847670605937755048474883741494589018499415788309337766038565308580570788113784593771817783004243540905175876352170157676353916206874888721026616661880494413939232711157046500693007011331341010572949782299267938195666309874418554340572208099889065378933219738177425306751226509710658268569203912007379690229746810132238962924342398780622057900551490777722802645796985170662395933213117681524153725571162674595822779576067432746822942453771280288464390363301986435993795850606877562472792789401655809753071544996416965127208153257380636691178787312651677426123057465817313903077388557344150804230582971316608629505099646209954089299563962506857319247576690249926300061458177161726158847299426711648494938062539182955714354985272651509241925092366344019595988511812271057277598812430009209626901771820863474934876314486106454716204673500598150444676607969694780619666576031344429540474990277376788657814664494452400519572583668349628150818945789635591244153503712774689444243562032303305056002318091191785136485829073424255475331203975111384281224783686864990849371200671622021790437407970402167523571589592771412179837718966843990213046755607064644481070752926110095014407633973698072767591803758226794182722818883446170550762354564131391553267191348530525454549671105891334859215748191203039180243984416391631867479903154258209161403953201707272506198375452358553258236582214284652516705804258845794156194734696790266583272445521120799130206731255330408947180680058862718605035806925628095326472973080546456959769857984568849699784668711597860762595904741458029818878026183373183953850941538866937780979020341891826418276973306650612103271500531454373043739496521894543327814739712229313335406471927427039856106924732688895595538129288369934819591879450301678914623225005354704593856941704809565379070615802963741664503574362490204636748155075553518439242891535756943095402316032930583901387127313598220278196523455049862961616660663752356390100024243127076815291404987272077832342485285847582572402432412372307874115460988482677805641675556207870240525258532385797403673673697296363854171237006181331083612805669396129637145388133888156248118262466234307191132396728343648873233700292174591790177187052403483122331519644399351841322344455445000199345216754353180977328804619604320495681770309701863929299050337806758042638539518937274873896163863925380621453786100954868841718960985277446658040085975845084606903919964437494622116109397814166034893126082816404838579102423897143554249738909455801383217216344936844037152729386894022136808905588878505063466269451507873132935606107431992810971203337820243023746229474766344596735038346411943937783469245121623782166685706063286944473703083767023307821669452348259116250835734911972621863074756331787930918750373216582859199097700931514032999520758315458956115427493456645280639149849523664378482676393832143856918956651292814884696115319068341357334943776610538925063050779622598586640385788858084291395847274359899725022385987492326017665866627984842664795820489610979083233055915785251966082148267767770596390887634197067944833794123833919115294724422991192485495986962403394614763673712158225784723420960976878871299990910630391164096390322452072824752923356331614876868025212215993663199600365609862902140903275405238733045463885443331774708698271596661914819728340227399374469154088203247662837684527719566197080003806778394437130269958728368001309969080305223846566953087453987205996493548853585851983342997137736889854609637764062547423036793730746610149454005202170613311033445285837752437599339736731737271215630459834107863991898155229485200122687064626436267143804959675115611061970602349127843559899620247375152478608600562366351738523974789792309267370400250795735639388845386600927689746712567755183364323280343552016630152171730322874196364687733769670292592405348584308763658290899157982337058682328465757433971297558502927991380357064415373651574950397186441132271511009973473249613883202962758527173160055939642480521856145762570257831038989918064426887070080911854461265750260739301722412054159948480781950552078680088173536052117426055168933709107958905426909122963032047853766549164324673695879403508398555993945377608710991479668521202099104219728996906308049688658363773974340599804941536152179288104638622028672276236446253489924750933653200954216868962252946527516660004109198798056498872826281878982492573593318062849351705675725485802714947796090723391445646040227412158709899314919616682528956662688146090874901331868279751406742665025203747443597536730033456204369856938597346666192056137251508542214856961430473821106820644565156922847958030123803708545663883452173157535213205082833609230805420223575370768935980460018746684025710315671004251669693706454929788980454474192725428896493344656450843249862650247010332496508197193868620721408312977802533927622757062758648819616213020990787167354802101289792911334067581290495043018714099203711493144937469311104818271006679841571811127743707732670352271005210701666203611175549887068872899697343289124679904206076203708734471812201847488129447347642341713592574979677082151017245286792930045366984383947838311369215921499772082138226958751152396054327423797696481548597966632389370070089527038329657615829807967638047288165816419931626409061954697981361898228138034821213895270367707106906157488444787872801133139951470679087156390931801596819671532225550416228558624097352736685238192734035830376972941637860573955576071797464865309276321455893286461527359059447581851476176603985302012069603516888455628599935353528640175698767177642089064079916201729301415197798777292775044827369436213179743114034144069947146629568264656230346402266214074849935070048126860974226814010783573156505924067565971994788923138594319873667689585680122605724741157636514063344608894281624880983236906590012769144446896119919314881111132299736362178854077366121180146729476125206097839349184187151917246082229447003177957425758381873498866490138922950283617665957080911919068973716938448240614166066721152031192766931554477513426971455985377537689835061882238399640033423293233409130817828492870928680133650539889025466977630170659372117273836310177442860671116403312549375597982965816643635148112746021156930380493800852967182976981753989562433022897070660163840290434843802814439341379835795202908006563606688863066116139998993770810571034684656906162817255563400596498081360629694199868994855505240004220399411545591646560514478710558283679087986073421162708645058298615103741199417479674200770830557963946851744449258535585162704727119147084074514506283908039020008049482054831804203623092260434789378580597870782650637880754562510997985113585787571268267860426574792191431846689092744717766304130337364372183119046723165424520344153432093090482588085169741486679903948595900854080921157884640263150271101543591832387627423098105568190599552581930439343078240264993084422181837585760322162711733437067855136314622935779991083749576518009566512345143316975311385878313652259092297418879681556307152803841939280449226862284381516121536163865283576915067088323451936542460340752988842681299205231254773379309423531590552651301327802783720740902283710530856803682975227694036915853781223103703818171767629591300282625793714123991766348818144753277182442619392214716846352089681636487231929135070088913892673819624012097723082198573778721830314150417550175778720828589674810358673314195291880162435858379925510431717103823529821374240300630292865188167436801505887090230338885713748443873169994636069465422465219951204268224447318542553930459627010822277407497527498222469394375857793073076229940540478918429239498598943563148156570193679620245287337413469523860069095628424134347413690523865867575550048850677757059958735679473375632747358032758373661723048348835738983660384223189180778388426917956587444335497879690768568054814576867379022830426364020469728127064665561393472016121567278745889920075458265054853339685844531496427546527059032930074287206794112798377087742454003302586890054032461357457025611583600721495436197245344779475128501334501221303229162221788752534955577981178624534346563042194465604171400689770148991362572553402011795433519193417220869032039460225737308668460374638477997613688432635197622135735095003637801219681394116817422655600580787594070538780157000057465967072774189870390935117310094013012240556959176544146977670151179058217755555558136813898710996976001002804611673441952399210843010756213337474580929561190772244484914707266437513114059340308595619850572552755728459673872625932295556084850202557095085078191494679777041107531255327595324980266741122004270622986902184003532467478678834508009773531989339563622674102716274061468499845443316210963527111156478117591521755659009159868830299364367348541851075877561203180486317448426529252762740238353435096891972591492711204359692846382966293314947716807551157643917064885602454754726555924259399120521114740564686569372176914429105657346182321760679248816335135425109540084034416770736341860086975487139128570452539914639249816055831087504352120549682319250269970910979508240703265985041413265338911513979842124132003606208262951257810388460053275819482285272716869973040535669674907517665186056106667267874797641914329228399391064582720946319261958781066310202687791901540060233101610057239319489052516087383494590148714340429779997147968391183601174234210804095817777600265212363872186064972256242801819841257347003220077215097721151244569853785923487423078888274430118902008038278432844096273693866092022062170653561805762769067607374279842126699075362245997425934116957751757678942773015835261821230052710390431345684485880640907392895942643148422029904811327182109970142075020649065249835632541406328622281501020115741319781950917735380850449020119645199821774820429539033033876330466832351334163563476998349981197119830062391262125403123592247883458042716169258914528479271061126467463394001531257701697606934586777196678187164864546165602057717166889361588828745778623340729052202328832262004123325746774792295202552176196193308185524707538700043528052311214600688991794514705993007928732738187029111456208878910426861968434464821106110568881678107191594024769413267008354109272866467607414810779547392366627106085494373753911660268877370612686483309252778227043451872232598202512049468248583139904075311741437364286977714976922433590915423867945331542007233846103928415645617646069780278477481188054847416520166267061895080852524092414411743311726607101253581118786318996521466968055797758139543244574926883962955394168288788277569171087050146960428007434583346962666328925143741364490293849387207182805316180119529164958045193928761769407635169890207716048671430518807233313669850248165245574178988415609919674187942247565681835386162575331504751371554548306830585144650602368677358539273756499674584184511811623554211736089885059626873431618756908218473013094298644211234434920123842157682460539138965242408643959322901579374215862104633052306238144589874515316553250655013467340740157211825000851363778302005297732662183861184049122693221349870213796379363921431509765605971144122599454922286537683049757650560603270176233490798935252090226309968082367163167860966935466473177541001729990383125904171149435295862728244726085252378541780065406370572990061052366055204332322275583526012581705261162313296701141075749021843804110444653139162279921590877828009894477794359484322923919233177251833053768627442115487865492311326193122422514008433445935271903006196325494694673800857821328241915973151531718722322463128498775123767986852821230098883934721581407835903232664540744544690775846966555284461355198593111588058252453110746030930251996129907130623529378077302017672930888085638110060682384496070510520031005005986383603285654082527643801723027446972877306873818291567664664496672355709446891064700214275959973501730117435281442394968937897337360322017022314236472974205993169955436199990479813719622047395980298235855082048721968163731950901460611052363180644774618577014667286853546692061119171645256161921056349983150302710586382683601627005163786864232074810724494728894073886614832323633072199535047474896557824857430589673708185693091411717939439441192017766578921089103284073894303137589334460130917580667019679010187952569571893231240731632594032535409267313645705025247988300679770054800857758921889194474559274049022288003927081566911740193743537140806006497201356863740914487751117518570868384525700447111862125493444537457669651411726616826560889225500803398609738845378789704098552653814601068942788241565788284582141298155662529330927770242136783741771019920642726598322706782746989357200722780669671108303692852306777522250656330446403602178912646257384755431465882260646450092167239710006063565089922485866930375557074677139429500798434983771458549408740331368859893247369994236823823615481424877895198932552553162119837323316416339652222475117171748006762521452177625638599374604720485396485958493500665988603119896494495177408047005382410668628778520831748215874044628183564149343191619480503302388633197435420072142001057769692553946250855504603050017369284553706701285964394822567516741625431393627643106466074808216598844348511673763671449736313733722389491429339342757274835596854940348425463964605024526599540940012995949732020270056485136246524819572144374447410163833376998072988856600549807172625826275889600301150372058255380620414026745414847532946254285321030350380299851521910651392629691213089572141259809591501933439182185494408461898833066086035426516557179280759634739674599372414223695883749999631799796047210766556209730460140966117715310221812270602179779830054835613084905827152153880804765071476241829643494522676655092892118401273581121720547036020435166522958127859473257124058371488837941672380951104578213315444094891760733783981703417945342929963104461898781922882427107366469562086694854366937503839200055247457306353860111444625352601115956539327165885572676542817632071464803614784248421425639273852765148528212797632744083021103410800067213793688218595927903710651859950247769577860698926814268540788995561207857188418236757882865001349248346936032419811593656254947005445214816245697655448327269605364634055550942514268305751803661563726867908467015230106768978241375300193615544883397051468743414322720919948901439152612155189169767685291998386094912273753992437206148268544673932490381528959699053222687184971125027852327526036912149434051451241389520462268111622870260812751704764814442409044773054422449267377767041395317279676000815709346424481955549661457094527881722053102990392924844314064221443886938716138527662138743473238912169288502173149493834542247173073086961874497010422094339254382417892866952409651113573273071670556584387358469287464283493725239486369499798011845486019892321526205171977821346737085929512347953259822698990584481451824835749589345909794689711570440326102721038750038634210704572834726320339507710092636439885178498392980863751114332393254078360997563545514724818198552362422464915448044447989688724041624637263046849100149603802855202988916926912965712633703048870869095587614663290867858389414673359471441955359011633846222346990116246860116800610544998176743279301448179905589173128071297105880302375084561324329135365967029530690458116992671429932492666112057145630504697625274529937023628847073994407666976849894355139633717025584078251111325355946945757090196046585137856153195053032693465465691742956065759640998396821284793871715761629366052252561264718556141275055948391608468845350573156764075803837847621324180222971008044837186072015512161283692055637741644481242559909128141834213481047105110891420594246198887956232897026649724053216632564984872140009133111169598337076861749443500658924045211341365474481274341491589044696941470479921741669087186446805605265729171505258136477411036342506198374592762735821451685025688552157120884329362150895306797935385475391830328091738491985258168455048521997848930222017406642011845916469115533082481241590155561153967697215157238602829334847741433418472622670911456131923164150203115323894047694386605756650014955345677664668577139810217051553864351161031179511568975235949946661864696716936313789041346831014969356853175882480185391669653807400678900339670485142362220092432334379281077084590788896331663355583761667168246388125801296458375232111015337231088118849184289589027101951855716396705962323576268648728706179765321753786059778719261956617162418292810649393612934332539199445594594665272000981813423795757473918530277563720117308120856020725771842300121673936263547565782892387226471451259057264338598205814982645476061955040371391434805590657088234878147852697401803317797906732539118213983578321059846219263915652565004077679961226358552837222838512231401171153234384111200166735371464992577373181755124405399879702490869087985713624021664754677766952577131788045916160132093859280117251420246207132791927637377879599187004410616312175173608594309436994408356668127766103535636678567688021606259450590681193274855077518148735057135518517985905256145089487911173474760897101996884651358565467726429069468576314471991125476796653637539986326908210125212356879487674570831355023324577198828603097850784907787130426078138193285800686276375865772961323465777210305495893432884916054230910297174574233618082779811696857085077073997242427361508794286528423053741771244347557489556431796956605985715160003506760136721062526461484897964412568894574888051944828769999469200254658167736456266131233692835605542922076757625289474006916668050806071329764291548762919917696930716126823195846138003538430937884188703943294004376434526243676776517670384889996093523594846794020757205621421934212102664145329698603783031382138339164504622078593635275821139317077661479926769729572782119518114627903143587200386423320722840077975203199746536925459970633178026295635488078658181680000516238153332200878885396523346485340391838562586478594537100803859937213093777248003486016463489164511459677756607589617947018726144607099574875535171644205730619591159352209034609298635352784357034494802991219842134700033783300941994296020797434230359718696183604840116527829058933533042599478749071279919232801478838803198067105017533414681986004616574470779801429867673395264601757541254445731389978358807022793282316527441870827825691280742177015515353146510149918724897136945272123199388587887930733580385845253867978519964180349748138148989324564112773294159771127773738133958144804108063504987052191398147852399189240452719981574297892567502927130637467335134433705179884760757865309195700898929539169189133534379909579349063193718894933180559238879867168875520973796288473464741087331807972948746973186791034067421770195795442778540665568631385703028345139090625849760610535074614224295015301105109016857154308703609386893377203365390689876517855494631563445396326121557868013421628706899323089016950140255704105015343671179549573333404273244954294621593526331159781446636475025194164191085004917718242242432683230787986369968915963847045567311824714343939076521961830523645932944210085905934290572184301838673014979869332644542987233908111590848926387665813578283404319183828811829726960725029661008235709243945009198880932677796782721194985628722057284384298644542899338487324713177097790668072097602311086926347178508455617422596462370698611611236391061503436241327238122055990092755610617394938688826266149987517973086837106735848719602413532632345309139320875087704279420798910634830837567429164413261057372620619557815619633953966313696605959471446316194656129512902206797851176711897842147404744281686483684594901877766801380796654997806782870007092437461394354936418252791513904870950174205365834021684397615893573834349191600912299816615934019173213962158374588719119769243145606915400539077380839342926348897437130852480089770397039736116595771066982572638431237012127866638226092939649919126621439025414432719206189326308014628909154768059561201607379221409991080506043481512166566496632436068753658914218579879991181274495163819398758560875074294289270550587121673634491784243254990936068126758369328483430266508361051083021579673452782576944025697031762082151844038902807840068936132586321220977230565018429950221057352095889761941360681924865355245398983919594581891326488755438458352027079935133880456414967789355265973666366621409629188032742530650905159146558803611848390871286246498732598158118340634228558498345109577386717551639706446088789502990775610246339951637284271136663672205756650830816710446952408547627481737038442426009606227698531871027042756166337150641869361956957301439782355997706805107706544867012412415598364972768494696011350694215363285160002761401768999737727642781696200118469923590831790458148413761831953439391051280382528274023021866616503111218079712793811598128775377386336852815438457876212076718029151932766870097536584099218655352597112182663081404396912207769232773930661327592231811623515790494405581873415602071245483674366110287494647438685280759974159940802909476921662215655855106659127980147377731355406445766376247459764074728385170088419774943088249271747876105299305304522524940225792047400923300365432531332327364543376760056923165752144975771844342268756141866353840624223441879343095614831879893341898622042985277855057067341906492740569306821589884385062992120857411439248427422621167008466247146925348956344017914382529085601229249485445323560067848020084335931181714739676982968513864162459083253669425608112831690027201506097956382491900849979023773834773844638485814823517614800187140635352251186950092213597303378436803456252854650131484984379009473298000451678094713589061947013419267280160661533659640032747055402372340918242412802768938426737014056332498403377609305871988107995121596768257444649020039621898339796699702442031869560738125304081601463917148081421068143165052149614802789620665167275088031017535223103274252628164092261050136743046595925697551103697306377736937971821173858323703173500658482237208337596150041145435108293372054501244455475393571204929575081679928587671197968965642107972452408571079805908265815311539598168596621905927224103641198840513107467846131836431234780334473831641337685969485591133349823362557749456845863831928924794436744161926779805862658162361392414271913688048341281418500264952570150152512776328064343713553614390668444023174990304688489488381745220223145415965605016030918404390297699592028157281097289648711336861685487267288591298256745641662151756796436622968575411207631123169625653914040099461048270489739609704208630759977820607901584274028372737853151530070914364392088180827508877371044175914925300938839234278289334758425804296658973359468577619598175258458703438717153401309896450666323546008349591257230406930791788559164345491055906849894565543986548257935476065692363279036145157829622226838865644929905184676310892705282092280132564734686464943089182267444974842392456645600203508076814164247014443717915616922627556017633412777260533802687661382156424672388075908381442784112344280609006692297626186965153508145928416765673591533209521517630921026551776317903303521211958886111448684348180649723086532440407957139942183182879592258854348768920025598602915638006970973835344618265057020726123372018399383804302456229179181713313538967148713008296556950878379837523198551463008348039223540669559511627078971173737499498559643528671737447694740902418851888704412910433317936782282683192746681063577712885128804759032846679425080016880935916305748818344427021476160978505734640559709884470274433979286729035140452552890024053433142107557461457204481056947560112733058405598235086067341611848047183867274191963785949332594052565960072625280288571822066742296137504412697688937825580067986883317759674546676002806046584961193180199128073241483728694807181905476440826655614124628381135269084779820919756957272569401863562747832421885687921267696922635046964557305630135202109194777906928424477746341855660991560980822968908897767307722577841595408463843732123786513226239334632201663854385729495664364924225250123402656215606283047265958806785113027471909607491505608467008656191107722233636473010185308297050686208376650460496722863525027920783009415437669185384269372997624244085260680306929073737879186158258397467958233552047348686987303516948523313833150955680239780622773072984295240174464162308333085546528192901602311552933454313203995218015662260000926777652322383274490618501008016024956205690265224261870085706270868250978538059395120128136851203831432553162895106440605540431930717426170033840540578242636914011776319156209842971943736264235555970665992198901868631416260358848352341806277367569668122247520155324568249474274934830202589669933411165319105508765254133362698904584705470554763169531869812856307037236924116766853439463178511784186589430056712222221473501683766841796230397082330550844200617885678258606216244158918512902053413042414313936449195813318602832161920905016062979348221487144076656106813778218033945006357487461788737118371191631947923574117577108679841304617397445151758071620691481017334481793413736596301037927028242715456045980694758377975756947791682371837502849412042575971125989551919162461120616897958059845549560289378990020064033969419167954756211094379720579785269760662330307991368135826940678800306416787506718441502326903541319428022187943509059473567146221865848738662250744319625174321825780815874908208334718225977792929487483450758045004660587338574680021837898521497969397571076806718039137162410934014319372671098626825872908922316734581903830501513492173305547581644616202953464625941527945199657722155051557140965148353998688181481866658638017226059098357028870965847374044329486621836866784050277157742604290073154025042105613365344917100743646563606903833024951021645140884641175569287228154140305532705387982934903242442753468006471896996977626085898027311837502238128250764801596442944181700990816870249020824877331501662471073885810512278377328139328911120864063094430156750439720728501575759106322435839022813807816884455762358883339380792852803079142307926963308862150222132315160450020009157102721249979483082787064346422188046987815693078839734525228535160144103768081760989315541975836268844961061123758716921714300566710325546714682925354229879942623472655353869035585066245967341909234205072739333734549966367483877931424859449373806369670547190898187783101914467712545735950623569187126067538353457496000364739181110884231977107131330735233826083209990959991116770466049198012722775298365137448877725614601053668911875059262686273947391314625394843501852303032718723459812703285440211560914896509580664297854224396409891513732478533899974685798319603197061275707480851884610289634824148914442213161968584792644082716945862503164931990048720910867480513521782347338579087726275456319384258125861849050328659524866036855453088728861384378678994985948493439699191798693667588928397754732865840756528709392653764082080564761188150983737828936549416313655086530507902665043800555559855100015073817645758137245277222229396601699677612557212489376729574973754203005807145271604843421949692227593383253386291122896135454069007986646539888592985006158506721238409067109901937989145128342727826502847294575565160469851870152737683961849659315791521574371444811624269881887290140863127978916694359280018096017048512645652752301395782476291340069212747468125226294737874682011878514192323729534517020966372274577676053531891238459662139004140245511102829492931535376575796609180913083248266193969289320297539548820601144140991695706360913824174791524430551674482054351438217447128988335983881613457560702526137898068700645018156058609111858168907156324831753192020212907899529836122265723578100122720245783162226562473231778628420762527876754638481506433466894073066905050938704690686055138900313255537845543076132228925397070514498172628191868238372177220925021156731460913178580525630394977933897425198174834318021694375392192041864008087263022802692843105137046637901716984031208674955720959441271382832146922796244249455467914859795560772116687582161178969473823506412957257523939772515242062770853695945038905470161063075744683835503782798830598894380721468147269989559629198026438546266176301324384345540510956915630558539110198985366411313906866581591850205061104386517795833025354336776620617491812842001520347501747403227673356981503381430196015144902178482259461506237725524657272864452934476037807536952321072283406865682849556589889673145898376181130103822542081767085372430254875703702389952206811317140093342008804007588556805461190707893964473939653662619378630897075300038205997719664642820346456289775653714813287900078629105489729546978260817747030151725667299061905199053260493660669911728295302427009647148923340906385344083582481879041508853104470678551369078335806207021929582575031950579689787887952123914288060905517196808175168555473374100220373218775843285292109828380940439925141290275629562414729996038354440241553129106402221189967409017894673643765414365856064870427600179371678758861497302017910632989121737688533141980576569689664681642016203856791093838240959016523809388007915168844779207753335160659130620075127041861647548603002324718958076905616368700370800645048466088455445277025829184086882803026314846038778326329764300265084093753702155278642785491490760192267833085161701419984953710515452901884883341239446809632114847123750119519204769560879648574695648476609984387555792128063784096395591508844717621652719409990040846817377645664935777759282758734459126532511818251942627968926491670792753543670353390787848131953786219823882771588462226040783408913834445627589771771227624451418521578365811198533341416405352774908396849361863578621182822451349320208074746558755809372998945512025474820120059858766583704019036186293189509155360238577588085339270366406577817308673587733037460263196629948872060624211189453849391327419981936209451703737121686639423027952120181966327477052958178980492712864546808634359812278451883433426916247438423062547204760883578055227250309536792605780766744380555204646554298322668268406324176188506889559654507011417394285185058015975915872998918708331834284813798176095948737244020404897679243658967307019588410391282169104515649043967713601841402074348942810287209699553260995773104122324274932414345525263935554449833938014398810033158717475262313005015616445320549434810979165146861790130227125618939978902515967813636554023682258084268434445619550166864653180994082766700461595044655531782654444240901574843838704917062190454946770771102698264125288147416018108881737330303409626803327115742186126439235116681440764311530603398314609017980979567226248226593533438240137332892994234205878794456823054712769078436171408369182769222702249651768342002141582095401887026914753739489436816179884306783094937753029858724718016783594010905430975769451421097624768755299923533484236695902822818715888678028131536477308337203594276148348282118520810985348537508905172300728021381561465739958530147417363454876544035419419184320957578824520826827446995273686491740304336336830081961333039427044163836169083670296678917721152310476942027797988830232746863278004215417703869306929779253663832335038238393789898296897319909156956389416387165045784438869654144270322631871968938458684596559771336554363413405251018093681392378901431229661812232191796625651782515375552998398324911072537699382205708991026215038718559277109864558786356708438963282015110502667741120833303961645975478754163872195011010904966226787751721663356928947262483183710599220070119812128037060884154950669970808579113159809679528343858740761189971544319062322479730480932493897223032346733345463785943199589376051824803097655435762640982501274137936082611456807162261648624507606897363274458950018003322584192285520914169752374180666794673204997589704229793210038242974986155355208688166336935266388506083511886748152647921321474679796667042674879527903152638236582002900622384445984316028345879337904522637740817245237004271806373011445299615042567655815353692001133991555394014561693828970106276324948187082110299718721756034229549380402956850748087705225115654037316501873260565441922793464693487319645092222062168058913004848307996654835377925363161414446305856694024569329298149010676716105341419250002692694875141200147518084186989208147870482033908028889533796388341734434062201394413899771316583849201812081110395870665093164421062301837788664919693572327420543235905906598208390721581528259913419502348496064864134696920114363870578179626498867684957093742149108482230690814406188831281437668745030779585101103955891562258299197627164391669780730090647821005500690510134840188619466217766618893732941638778064403358529289478646584927478700897091164648259870317464072208539883355151563215707773790354797832097503580963752567857591399360391388858424679742410611366845260595567995153354526106040340350270376851937291208754824050905449679883060171004397847739144838997795541434966742453013848886969731339259246753756744467716755229509347066485292712080475527649689682870088604746835187675565401258179750583441896488178225955944228934636970319034951419598188600522851110692886292358712244686913117308890846890026132110042214617151044295176249534594867550047721072903181683102975586886289382496661553152393936775905803439626407776459326577500537481793598389570597401627325290035918092326973662390055111208392268947434475309229383928158529729052410496519845067324893869969952965227598595890056188616834462814643562452013619679459386426789165127491684583372614757625704067605027247636257037074579457867485356946954720779619063037449644346223499493585346174637427301539245995205570632275420660135674248133879326859592767858003095260127051264842304818952371525354113844237741276685813794621710354805484397915627784076787604774850769427115281302694350045567516111028002225420841271821082769204889769221781745959815065467963906113471599303005900163503612828389034698831723159940167874927855025216352260325528914433159585977605678115958699132532833758702862547169653444259589467197474657042131876022600342893794986116512368215309830764364829196273495742642423030870692949712535632899583253285420454743251180058048190437566619483496941329388085536493098570711860269724863109879534253802801082478236598698490601237224152579479736082320045453346993757596347858959921253616557120913192402512999597853407228607901913451275614892503469484521793945408722966643126789195407879672125217869859784400733575760952326294535229507279999649557832644677842816001719407287561498471906712473604613896974216457643785845293468949065319695689292132471955654584943413693151277075268659851591405118823061238676253927124137946873737183099738980324835064495964309806852297799719788544353961426876435776571849294957184663149187639915094741273096493857539731455989640815385101897780811777396802411238165491654485468317126680058257082662620140074108953883467413711260396988307357197884364499176916656894427306192075632944325075698517458904298609789009957548599643684038017909347263006629306456129041340950348930123135041297667567554366835010379411753768883825265336165667503774597585946562973349732348083527584889180605729732928961003882204066003740461725829435863518546609600393869673183881660447395408909532069744256202086285569002577683122362502907042338844959542900304615740626343718894298449428377106516484450882940641773651261892747146641869132658407961768249076819043689140399993086768995798542290900728105055618048339591233121819537742858247978756429281738723489954904193096239221861193130664040968653825736957712090349305731112299287111732543580135572435986817255920825600127162112072004875879266516172298640796269771360917196906781252791426350577955636460617883986854832688130290115100816833038304464437596107909668146705246431190499914239135372132440194961768939248104287668808162494684593753678356156894174112842540170567168938689877135134986140427873605175038477357621877940217767512621803659259149368658166126623819863696472781130535119169047431799020205331004355831872099366120479405762894559914119629355245082558956730794779884988911719572704466909925247053368351401302243602211156193740470497796181856543238812510101008401353766869773608364204688730896120861779985828322274967873644102568068332629660651054478520059491086666907858780805318487532689861928472429623892728828942660229274330408003312266663366967371055634507328649354576040349756325667829120503600904724845347672421251691201822074994075269982232233860793552419362121049111452885184145270173362113471641915883701554573987780813318845695272430725256112795521138396713463237976802272336876290885833726903682469534028165552675422926454077023266947055785001797167452128647335625772140422749335956979977774448203500663965399800163955807102048785460190016842897569724691876827082944912729690716808668794618948948313173945923612113803360070476356037013968353398314773162535736279733803573394806175516023207433338645332135734392643122237668964872092793065926650688117342962341983040829539479338124599628514193718841075406509293225582571378908886898677728633756696538423442608947485891364383233542510527478757762974260621521050335606934195461269757974160024509392791436899719942394423124227338674085982414252865914967388341090363989490318030813655850435469039269549215960391650598982515115378563273654164994455913145320108573591337879508368398168420372776728139603593612192849412419464636722200905557553447726710051809504867491062710843455162427073363534941440839635276272464616737174277943790504280195711381965411455262690116338554293600918757402403264113843839156748552291643636835645504458050194203027795679027553275159181352644318184084627064491718737303364509222655410605055178642036582910402533006473847810501360875033381393959756590853876933958407130797196065998472820448884123424333151830573028911267500460868215375874320232420721072801785471152660747406692738617185561439808029167397105944816209069007977982677750434127919277874409305892604541729695980526651066501559028003419030111394510291281662889261371143354105870003202395389139706861223581868230126946996377797285130775477691476243087333037336266884833403746798243253043065609596799740494800734749329802973842048108262364766873503529420836678786687159389758546571875554606461358344378648985331837311228341707770551510762270846699181598256597024340453391429817686466356348740482452685468124225976691761883773568427543953659804990997328029500443687255595254553894488670175435061135335422115754535375351200831810785385142041678565509478905778925716900985672776251272420077178208383739747283715911955960341611307392245691882605710443893775228584988069689659369600677144558099195773593232556681950135585813504499075582761643494847525880218187673869524752264859311608290974089683983904466749180558277875681292861474280971650100534707875978489784843847265351176955845882747774707571818236068474903633298479801010851194527251876445204799016586833312772764098659944402340047315024128733248175880132672071492302201697955079090879026533080055868976265724210493748820418109558169329810984695537054511694624187176440889070824999100764529663770596270232963824473760636855981232858729403290983720576907333719175198250213552633673922961903396103156597546308851732396336325081108804791409335692127450490459511756030082404881015181838138769334471735730519380692740240703415377048872431617919300378359389146724812059864298454705727703797851933149959569663392704596325705306091980785241078308501177857642898596008563632187300142345509929138549180667032741129187480688279292218184008574697228717329381229272139546958597064574594538721170388584463364920728860095452150880072891331082968410062929059512928098863573439100629656004989873414206130150643009752095075120276426966523979894880610594423823390516340641108346034584451713778427800903621150333899366829168473339599433299343310898913576844911649109304500770907586546088037993277222779915172360365401481990718289508145645165681337142537939009199369638861400820721281836390601875098952825370159292535001813996228296582745762634905850887825850175191670476520155346258189300209207204714958222413502468833418805856945767770950213627865674497350189829925901396047959949247688084705731669781730210637549073434622779178298210666826891832840901208625266820019782249079241793885377056981524124622580681641114598484827554362670526131694866921395237990208498386906826245259509060714067199402821387910381768822340701357548693731578002022893964598935361051850795295376884512722624151955027558304281228226853277859734480774895101293263488768945783086310524302942175659456052845345182910023532142520750835663294397157154861118390843736454088350328436572359070123027740268969047023764883860762530363540039571328621700663790376813738307361257010151486395044569843698071312259538591248715286405230421563722084556504506558553465031008210118630267903125034516371808303519362550639652097871869975009658889583506816841385218580803208096087218775877198246019829296226201699288433346599142278513238534692859244690432360388682492452639547752243766765793053189648462921697226816835202351330796935252372042431346119331494026034245311079580665492957623960942291240613703163140501577211293610605097680052798307054222798482909803624529892522699438945216186839405612096343167998864949061125936071739480876762292899773356840308526966610416648822780487511433619669634167633538183414548003925799626941196914540479100194594846237621195991690891986543045059611209014719878829561970370269475910145625382895217765322972680957922477949935655756459749583677286136657798788473630873181028700292834906307508716074062677220109504291923355481246195832692789668470309034938131872392722855704018186618813176039951520589154623817947601063854510215637015370072217576844164707261255001035966000656709928447121769734417364872416003529769314663833182450427446919444928472193557800321694215887967432280338017869504449269559009383154471438996171497502278954201335345562357758501925094412778310123786328508040594154518654236807583087784343574267586413341741982118497311528330993067310592515076299444832325804537945528858859811101910071056271833559539342487096800060123651195473729133527545985633949607071068014692423706252573677821719005698879631926839214194765934259359216126591354809019700673647549980311881606344409688628662604875041227411016183362537738754795576902569258106861969215200497682140388386967385725021936598283992577402702110328925057543801488892914916877268188414579786899787481442979560786976693408489145066063873769342177104934401249376098139376564469214229998360827196458883996711712632264062001545776711143565054045496659638488923653074006904888516382088161586869842148429078437316870588954671703337319689806931170947467374034097169023060138908899010499241715752231539424655352210879143150550161045852505476215484721751540726793552749904797900547490863720384902293993750555452630187046800656068499459976620800935822353926641765403559699311881108094773594294234692755256461955588295208014796465255989206611966538232251330836798637999591966605107334597796525789625305322701869579824377137815767573769166193156208600665727128607750810303384693465150298919936853642566480456615312169097565918512298734710816360013049945185209973254230362700715480707209599211853314605711654500473699270392650908109696343822984317715073916553212151985025496502176362724117862947479010857077638459212102363962523060555715002309141937364433559569159912918974588068768871750917728722556601284785501317662651941904023491041102703612000636880507867474796637986834140369562060828043420341766736485896055856096365374802756603216470026508973108920552130599002389899564321411758175460737415615348179143752894004549760690777459601929703254061906882908123808396216788746665352973329241990126866720577164398002034730056329558508719949567650056711913261247431722151817908307233028912311319416310477528340086681878862580424561958440312926549363152510198961669212652563539498452266079185765579851953954445893717311039641234749956361662702943549780045326135266060675833449640789551584830232854013421701738655562321577123113181014117714123355238006300802014544238631779813621736890170240166215311577316930069212574051812540083087792564850057546323985209918903352055216102888081342700194441457201045843518815448762295942024214086896225171035775748557819745337922229035146736659748319787007415130665390350836622545396154902335263243592303658577204516038992016347826447873434021226507999163930662929448321819630730849476989169461844310953509243155026202990907662141317355378258003532735085123398354592721043631876654299330548256099732378797758637018267129946511505004809373293060665296835405040704756351899954137209407624639971963926724250989093056855118963138833230542567136709249385776767737800189340494599519445659637556288715551074667701720591048201839046603747214164967798553421687256848296206193020199462999170482084295056487203846003833458231376596871498458896200500215762467278307889754107513252551986156500578314670845296163309604513630450095620228253944891289548460709521181465457325390015500383824360484924427813215874338093496013973959834003103379391761216644009935719398268089123959829297791512967414941558888734689034158345713783154261093386623935995340065014797615450317785447650555397726696158603731056294227202899231983247804820765685319229408649698786490649941169359921920813540919070115581968830628717441908817005006893312885282357798817452050040924050135406928948107005692989640630385763096742560200115698496658725703006826924429238673174688230112102551052870118557500262380979068789246027231925993960736682764651891266954766472183351010434572100453811849233303401481277167418890201880231040201945716370067303498614886587167445231262613118689739477250600938070624298560123461857560297007620575819631812277059443209189585209309306828111546603299163109830970727646080506529105062092369389876298025961298989815435111190783440285015322219441869396706388301880324026826571304630952096058300097724353330179281806903752750879655809008873515597658567502958298925793544381949247326061660643400628239315965102694046188813030871651420865004892468909552822470580593485470553618685974182259813818580050509767425224099270921210790931812564880699123364875358290549300436247683434931351025953485869689528834578407409143251995478980390539473542076976569077673856466368531623452595921777211977583932922917352994058005700812289061162343020365026795917360948663765781104733284466470681729619752534618812749078536995022434234058671592885058336997069013403428351098372921545876931533553669170431721544545319402505983664773606402296845447699693473713852212565920723090992786063558290387404668568025832621682679345504922265804840470329027944058092506502331473308745530737963321393058616638687545751390081117528286602880694900974102944963750055456277050097906151392346029097684055091476114006706079581055513190670572672714311259695162623418210012354244092305462439842046760251685451759186086618667879065038126089351771763171985545581254505229274361232130232765032661479432427053317596506818534892896538065870771793580782421872180147160831616135961179902037233153946835939297444624190423456369115274825446394677777374742512554096962965874502515081482008746651575828622103084953333004767927155825689799413992214412984853532905530340086965796385657443679244130676306847703151697912755316582232717601617502880172891734371696621030820179026449126269130185463313901003346821535334038209315499626771617273800552275878611192675276503803277184665596433858179627618682470463912550173395310159593493628607668113994145102608092776436837584226349946677317572092479059815153409471257584448771177269315452076992604437937583298777216155203928716793182618329052534020515295416961989804255388149631518556196699490201119982373079622765201780809281915983641492229247649832376300651942422983453885514995249411195589858561699666337113722593987887127289274503821935078831579215659376098013867971451591343781675516075375730150524974020649084493012917425255044750467575619818800547663921423286306692892029290416026205886601675996785406976420338911057546311835977990148640490883215623754404325481871556741613114741767464228275966335084043883911499206754226165109661253438034552449014635037259447147995205924808311447396100764437359805852345921722807017136791025044991283790636325739577230921728501916778820529708047826143866152889950741270006535721884974545136318029766187304608512808170362802690239066354790450311315362351543068665050527790399900072246682229481735846364320941656781553059930382478034552916690386298466714384912025871646627933625981167701619123832410861428584874960646352127485080985168035010690274502206861746290218955732439103332032093415774857101802311481959378602963089769816082858294724636405423988678865129027608206103280212057642542477713331104844557058712845888283433373855845638569185374063387743092353284026809383799300426324194752290184853175812844182031301806063415247032143214734000170755255480789425272778954718624993808164091844979885603737784363297549949942252529221548109494728369060263564337205807442298528614442196975413930203180100397354888665592067739358012599142636327148928842472790717013098428521762623110278712319296028337759084750961307682345351991988509733369459451364942214360407120019457178813317050555567443772866262922290488116945985805262880777200201633521444530829676584114678822938338033309292611802611479508457863595394939410981506969854259749009586478040026855056215930673679547177606732442283878726686247077590799816939036101815528827158583666094669050171181329735612119209244039466144883377426532849124911500625068296111314776461994837030894205139674206850341785857374467369323505797110863018525240739751846346797382574269125864467312967743201013992744867139366920585998401039684704302418927623532953033229532413471724030073989168876544119068461270313828922995693479500989776852798284885023903987658327590057978546387776922155817281554742031764052432609023900404045053299527088084560173695682947374503095206824680987122843329563107869960605602243079068905914350969008385149149226958773453212906980278872779371921551752476802798800929099744395501401636559059277175779556477493016724997152104835255647165755951343445781699795279719389700536732212969397990994383936870544106556327816473786268209353340202906355627487218793148907666770069038008448763695186624235180648219697985274619632063986084378822003048262500912024766366912722563317690755213923664712901919013090173040164895432386266491036293314091669146381325740900900519652725000454387546366397709132237645517086212011832572957942201197466242441166716405941382050372455156508182755839737177404620058203911741330153258125093346095477373519263796850173407656592922523743550974339434050464003408485547708015893836690893438521753586601384008912200101354099783011014733776096882429376642464829022683399180968826720396308915794356476344158569249973638979273281166435352555094696326594279074010582314505809952170951550445628163118942579834905690753609845802858990972790082463682460992756508019810520240700120527710272902673086504956212180639789685725852961868742436652552352657982266369607153840518861261804194580426539108958969512241968507438269883620242580436359531539287654929849853342769093506091376349413377137398034487959125818692404174390053518230970256597761545708634296210886863471714302765619067455400331512131526153240232401284142684078763400285852073223701506488028011640647316008968547879433929275892358166132632606644538001936662473667129334765650758235568445683682645066410788585458626079414556358022451467225044181907773926256613167101878061144635706554573246460543763106709236915983908533562790195609944533425322585674098408777235677592520910685888259462854224314694206332721797129956031456232376200889746165977821208904411380835808478468107938456498653376483818912890698680348286494250082479603896224988929822249600453937493674949632917198991384990264789965725935211077330445619685378090246411937799033234860287966967713380616707940769129988169815998896849062879424254361220601267759259708864129423895156611693778104064237442226141559757216391994759325638779198431228024434181295542123563113199267205730317374087574408503964475072592476438180811847081592767231219989914613110028376681640418854266770166074294342504038005132809686504423212960840078180797017270641475447378342781875099962632198742883816398581794577946623546214554008334717207009257950720583396365710215793712982142016873657494296275668306663069355702270193693679303825890338238661812881297601899113885950857798226785468468877801576058160359241025776772417478689066589480751606199371763301609787639145940726844330791934746209496631736443112739906868941960187632173369449999121693786005295397819358222239193822609443542789190148782863959505694794632319296267419387104897853757983648872173252404134577834604634987474461489056011186213440077979257869221886820295729973662565906488975917939658659549001212944956592324584180956530972436964829657872360971990905293062235274599360047568221688149165317386341652806672758172287546345957416130492013623218424832325306262491782774897196489718795644555750906704871973840608038219401832977533613617713646739711026866655199216789046095365961257050157036373746276023203505254128657309937370733208730631680694634297168715415499112959522993145860416231593326306941335810388422972161604100588979709821244592114230443526341951478304522186797683786216575880603011306025099336874756252913325752061375375977971599362418821996558414248964838163148358260040096354530817001294230496569055766483460541562932719029733964526172361444487442066273197992192377252613556126902275233262916984740590208587170191637084065896025426577804952397515955785538537863378466604986124468443378871037513125909720663781487738424533386546522048643183713795318646083928859926700719135018436204146457771110379505580848336191114568452015703405731491712818732322890911867091228556961629705168249363323183449056528101233625952713617449538314332234048192668750954863107904269031661844077514368268250723419828461431189501763164765341821388648763914083447184763986709326671987193514377163118614876260633874112593334968905906271622813994958114415806356605791136703822652109909777741656794819651666146310709894338204703088980486120676583957546393488654176091303255547974222057828965810882723287434331136119371349544518742025919131547050383773440557252104293900577492461437810403653916591634689826008316481029828710628654009650468617005487618477317542823327104104096596334069954533316580493570294277853720292836497411941539972929816683808018931742488798859817762854637497437345292342076496819239345517179967171053775857541192294298720369927681450846619136882753825227870195619076632879183775378517767348583619224632466323830447676483294018474814744829291820977507616174453821286918065661996991291347410066354558936313183225559373123307810787273663985969655042530297375468024823271073094051869135914204502323297655881053869634944543104407615679535812121542016627281119290744888274085566523597613706542947389356988613306553242141653964521128592888485625862909891586044476542058081056589836386385418066714156869419864683846084250611402183046087564846173836713027431318828379450572611215489418920495365071268551668448559380613736803612263086173949891246504133232076548871476829755589252840375024813261670573703252267061849843451175582165960363048229463315542857675684403910953345519698433805449745021391061082723028596947320331303089489111216329425728650608178367430996576440278609177211267503343608782872968894331056113076759999209304129232269693661845572097931013226642079253746432114826517400009219360560530237664280890199433498276331152491329544082887772728689193450851475740232278664587764115534651596621723171987652796068246860792160065958395595302803404175365349866723690676510562516786585546263723323084215990301196315459322202455367954331843088558525996010791067698127325234035835510346307550972786830164353667218720585993921299188313104989302533459399117308587159462398691133162488051205874877033818150088088960783423063529291228686759711735587141629624715755596582791868681092588036303573775928527137421090685320528359874261677190852827619526238169664210256725225113861733379134212972056343943196244845234953614388212513809853171852480237291790669552504562985581067604827497481173414562100102918913868003878589150843309532032177811907998211834010374295421621839727488389021284573107427210415933594804829635100407824768699306840263977595600210835866563163860444676171259006855088661665462892964624174148521544336000994537520093729293517426366079508581619521447601703207668919001663389418636169715078208422827308680434237802547064275357679666692808767672648552728718715224730920461596647090416830057713819282421885234937107673349010134044979536415431843465779535369519833491742727878630856282224147544906632118445384937861053009953678345892090916368662771768710368340794841856849324507366127180858510141270325167573841106708330908269423655038403166445972471020184078306889645352352758491938287000307042079136909120633393731650371772882815547782119177599654119888244673917978259554298283961624649525314771387564241421085795853870675862830545915291962994539325566693599705844508138520027730387356932547346213221762147267379319938857711629760700793334914387737865968670595990896637213327074052807958516416987985669244094416588245507879099301844721266994818846461517152677655742820272218142687966604803052457732677555015590200700850663363529025897561901271842049656376200615638478663350104069945380947027315293891712795010410401393899661312399292789344318775283677430431483171903402668516308302881720197600965592673335150559744338203756727728672359359078545930437565778686825260707904633506354322761985275457780875398191565365380016196485445654361016622794196817327580921536764552061566505034691879723638493956989013041862821663448278320210990685937011770157624065070298314633307596365307498255347480260236457995843160483699809684258397490217492505771710886587036351238384288957547327107874439609822956261250213431886809324408230879990080915499357771167661093690656549571274568974116269921759041748578880709490081357275117841785741555255772746742608281011494984468257799117467225690900322716604926862031779106292951471071556316272161801439097556067955398964250488654724198883190313569787407105654382383579566433454943298678457016783645176472445734496966010039035037685054871746660926477213729603992373958012278961950162123925890665068120531744938020407533306360445130530337901077293806231763063426652877993843692903590161317353908050194838124161069860843835354118218430848019171145227748830886681151612893456648698924193205097723428549601975121037453708669427065036412400068445459262313118284723759467640427078249026957370746527170998341154964849975625117046155363253700772341775135049271674554470120480836359451219605498940415097312926653293564516286948429913306578592109773799248300517066385604836753397681142154639744900969315009948199481297248219144696267268060909764878585147481648630376249531643378064700877610382470743705800861632881432472198259178854728563687135532433135773534768118328453972924971257879620560897090210437966168665818041577557233786692938364503038720861498346768872128172308414850748310733859340987306084284618586320064520032934453613065166596254996785284758218605365009004908585745673784871302161622659735772800721314049203250936722089072523688786220323175198564104494407442760645343242486755571772450217686399143506466991631120383184227001456302552306959897157716518652431682720341445712789399562167905929766725474237633896114224616743520684616298598244173820722226222575315520170524228189412643642754062820798609542686943548653516662730177102657206230297766270848816312385157044335817298932719271695849623446590546015807462272179238940193824154934893505703787690371237182128580240888059378165191969876382987369814607247062139344717985111744698250405627165716781253951784239509556793490743347066812960270788790224535278655152171449747193735856588331349231831640678894749448137569437013891093357571042851115417722908499928511899055533103420718386099517107356505258215078845843507903834201063710413942904634545351599822147573143172493277049090532694311044127333373917683996769815775314168821501279244760277352499479997676197792727808638360254175128187846181945745739945192268993445992647653298669913706422247259277878566542134300702556556342916934464283653430428431277425805172040253891830161820888051360684867168461440951818537839188699442784293598255077105909090655702944482570519970293583148527434620740303121969508165672853332804184972713655863326379302227662443963706679923695552614806433205452337197032001305400652184833818529506612953975793240754656346780974286258630474498174845816073404272255314472658874899359389369288247952311494344699771383032887130459410499781752000855418117349471769379375527900686561428775418292985978074709862695832503257728858350084867655522770135263350886956356425003800692571466713545034327016847593819478413577774175247066225524261648831282252163258821998831621847579382280228350226040984297289544616192525405796027293010945238323359300352088796881707526470010236807443735118647185835639616804219758574216342483774549631553096538035544486774113249348667698235505142779966655901087751843329514202729829861253588868526054321540880191011325262387536735565237575408826740271860860943987944867777786534299331635321904100778099328504362181641593954859495932138810772402541549729183592935693602746136868061804248016474457289573041674929435689137391994510598798261421565005905351405755811307379431575346492890470400546840367656268379769078215016327454409607211679736473954311429018439268295990403224037288754912411127505203042406225118814422787704155406433774346267023531173061312750969755919148944127391364928221872141922902257962141940872938917318721573779515306394706877724810651112108632179726810148726333672952282957854772064728307435109497041715715083310356586315433510208252277875355564211545400304483079959798150551444673391758793293087561391274695814101078594832338317472701251655112906259150961715161583166478229772329382973237984796431761119203127306216415181485188918777050793792905632042608422273139463974546856218583962605712444631661865080781124816646449173306905386422659624652418255072953960514126118994027963797229125883057548912885724014612513438400775128171521013916345769384941611981030837582492183928304314632650857499121998512561265337374304661901654626990197833566777394411343113539483805251192994218597309496987199811607097354017384349543901340646887244255593848322383368246542964118353783370995331320634586567170109166526940147134955352234077735357990571867806144266161911672089830831580198020960671459621063624783825738360121726297319711709241669747471511241798628846346876790320688776811476799892209867908031216154642170330397470414894300459905351577976047409222951742297703623003269641895435178226543337403917013311103065134168751358952776621070823520198266537082000501990637658058508029457317046043484268940263460103890258881938302241871987582714573215008513264724543119546097890743653351451397176593082341073216474474720624736416845848653367253197238178175958747115357642807729577577216941970504930088459137443394499489142784605262773752831496539361545653258748094431236796353496585045542131425598427302147912449642243420615612273092241812304842315882424690198359368825037434539292963801011798473590418464373016317327886146983359058091728131422854992470680562805463671847094093045155685711722907261223605886040493697156075374573269116058162024699437824770512216741614325470357440558952516847292342360185476823060267647107910963702555878743322266728244761767492110404300843133111335314415300760543070100742747785855739607473224362019076011161538771419488167169467027453457093404235189544592205512589271499470653131755769825865784157824295622954220505687124225106976934083556419600451289523205930376109623852026786973841548966674679589130506046604803483581970407821394139204928229663483592944191488876155662114454374782648599809886832024250548953189709033186910070382968936775509930864300890371080178312459755996304594380075389969289564441207934639900954848563845238455557958515220727719536198061150156194532441576124260369504834442036259993080189434238914956808429908123149727910501514622669920836843820409661632894230079055518301923984218723002003629768783297646782877766276746784366912453381009613869373605044011159220136871350548598383210120232025281996686929507755760142481089535142535752254898174120951343547464798949555584490536484332991299835771599463379711765821714961519138239287525296599597464145368287527311074057221511995973764327870708022248009273851148648674411407214059293962620049148842206067643540447667025822644390805458529888083203151451865483191662567401337681835847327796404031093257427478707022145654229549657827479272588661204786409766276373761650523050466936235427873039212903088091514231039224529482189585184259411145157770941886735082666291169265080632921511601362322062969448764439122693070192558953431971451999172427854028775367096012918078807106928374076468903832614010765742348349233369923640442895418701684830286503869217606844978343176654800873597310841424766996254799203651970680905964824174510399766748497001262698686902184596750625046568277425846924928188040213397492866991891378281888140455899473472512667960395317963804829675369307555060004244458295225877450328471955297429781906752293343909599796895029982006871977358485046327542285848483763134089142595174353666360364794293001027678149948674717507464573886446406919556577907877374357211382984295662386314969003617504019530445765519840208689112667932905563703938941349225144484225478795625952348836779168411647704131030954693700098790107602955090193829117347552183255788906438724118290434853389548437614409660343438722187255941781579602328542540098229748380626738512081103893326009209551463280298186525661752068096461234627774134230500644949659746459166801083520592495221240079730714135792239386371145026375901343533296274447196351631449007882702164899200048763544415314965729204720053971274677411695891703319962519954640405022298243163976309443424257468772547514794144899146187339995814280280394201309297409691514599849546901562907972917093038714101679663808447845615923687677074743090234973336450715537067460017607302892125357364134826206671743633273537487004481652019388750890129371813039828284282025264645349726593737489141797232205640731867176960922471343606755781054696987891560976964943424593428071676458750236495818530872964482165985630435909715192286301217896895692831350670793679146278916962617098101087347122422498139200961214774480521230639028275042073612656861598418681171109700343671231653181540558537857961094509963191746735586571609287667141033794635998653265139594073492276972369234091595421757491497824055368013761919403708746044063555826443409518741898464445797108477426960566789740793462892986061846306251655571186034018498820023704129010542572150704903890539385922428333772484552159248373993467548522666883421911060177418103907432813995457834634667458840416912446162077043901042610100847824075182243925874028000030858779570578242924440347801582460470826256336975852770060660649100736509200621267030224923322016783784072125810661574953209631162584263523387949179758390855308731669592843701802126336313035491584998519173088345658025382179778450904823177093891996417239955079411854207960809923789604219304656996704103880755169058018045846947096177403023608332857328572862405809064575777541418164350501320867273481775518621222089556985803022997283633215355804084342930316121783429505050260034426122493287896115196118344925774882954313951275144475359703550961758580502054834162348990448562479429456232114195000420069796443489384211760568752225293467895850817258374794128874297889355534280924179764460636277575703341348869254576653832980319759530610569844917738638590746667088359911924612140385781972919327448087041670153383110914731335201282493308812828085666183705901034454033716273112774369730339214073274429749312268042419294551076591895298919031397678922558403279633327065336142286575995225529001544635611062541005867509868273588696489567563557034540717848911931026319544628612997475536997860135431781764043894965332770025118325360896890189345714492333428442431373460369601014091188556587304670945747423411237785355647064952529133926619305683891979853606594175560740312890220295598383243873886763518758567726140486882128334387795304516830911869116532529800105502124074082998278197322306033287137069564967107672559063894833855404339971891318360204747223918174950640214816812753374538778024914610472015842351517940188767283288534297293601980115548655724608415807204634847808694423196045165695387079352707265966820247362315972178831939296558638818720745038252690162973992810280897371013934923218360604251510324852227012583642941056768850693944177332781867945390530302030352836596669600792609533178896092304131639914356800699248721707997574440036177501523383899647909873738273671545965580751606648959027930454106141599828849412157823960681942476668880921946751024706565291836194814563548036167051970498642067411015688829436327120756961736470580655789579396809027180213103700573612989829147011705476628595390845166961758778141421979016759621276565687170848676284165379338162150351477937203788241418175832579216046519105862625758647769498860893508563795315886049603128002298529527855324275305924967066415196458563481261007578943815085638727851108038397047928909067859000912319414403165356675662869716951432832806850337780402549401660353137069010753344520804796552112124279121601453068998350499967420050969456610367055036898528261440740462993130629274839109338242826424882877195522484717957140641122395912046139729597483794957993908252398580654376623186229601449909463222271147578715182011564567665949316683876061665531860636221315014469750042725836909887864646955661210998928779971416839737693935465075213142301481832938136572575322143325284173425248678895798741942814275428660909486307668432008656783340457146145851327584611013557154898202042507037404617893184624164999293017926687038406722092194861299690025925494801067758196782650545958549817491025721358863247442084850277226875849651984689194132029929897663326034637438973382905333458573870462653120583805839777796193013278443247681597458083482960213651657943354040177804995052238332469896955597369452058317189824126507276349222752046547506804735561696743505176405110216512177855824525151164861596656454673927424166659944476489915370632138384080217287997192047481927288395540802890203817574400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
72000! 367115483930560121033030817970130262129197145067955807999589047486127794639322014034599460593269153560492948144939763101146731537063322933405574173595300647249940759639662931843490591033292943581737906383909343389737704161655524931106572349391416821165493692417442474075804673725627656976092494816554601862250408942841453363425071626422678452273212543742108579299347911580464915586889643315833872664451967138311625408390197534356783969663067606419150313567408347155967415338894922326905609004072601134704615312938739153027935284989066216610298883878123630843234241276460568099924819239534143779831663593204471244254979264348073938710482347806155136745308068366740450202365670433294968347965555133031601896822036713157549859759603893483664354405080455432578426308589232162731045503478631223603466325164903489151910087839834773193963886889193971731065240748281601295100885717417736987700687086492324110797919983678483890521174479871683868320357007559980818077314581351391505516461634645375918651391311481091088047522833593834242776349936733759530620235206406690741071496738763400349335804730110020539199933528465470831529769739525444474447009089970242961124688004218984193771973534163665249357783639670127538929049849837559602377022684388540434072024604923000656893256696294737707542793278713703310097388072001143440113100794780645032357728364707460180995677161758666165119355045083368978295724347872181033150824414649967387650183947275706806923890177446699764748957752626528956121571676029503267885758103833283868749415743164009492200316760281597391348801345696964550763726338777001797430978862097228997983562001358783000666429107220162805545327212354657161657343804054171203336382087511749671620031542051625284714698855214296704314716356213490113802316776836810633645767838434720791521451545709588163785119707541775768296104342259884640103672765738497578022664284279546754362733664506833941434146002836055163704837020800719161199682858134600818803427689770757631012253300631900118729684069546192781448950112819921121099682591353441962397590743248632512800083115255393778001548807400787724513584033412398267865007928879113722531370341881129219658773431859807412534259506570740908470430106486519586034760548924967898993822369736746149131539407031283933267851609114972311153253040244294420164440688275104840276642314575013797624536523359491741159931910388193047894697884121169568708791824422028895208500703052218817514383326649658542663280254882204962275834880815908428219723595258087641972391905221275422201074113472196041315480313014383264773084967088789888165437791480627679129192145789066637490577332429550724393975967995596394750010572175292528125880309345664078574787821965388059129019977762397589122266650618872759370158546818917908909211978949489943234131567343110768069980422565473680454619649625650616675879008659670333948999389406334440281303539354596194665268575510476631308501724160880332226099261674326304817599188607894556256359722819465579795566246688788267901222298906293051395997063921010421228720763549644367221553686106538880608905117637387921295898646573516784181390345720367024458268415204036806328151148765281078454900945594912550555198028578027657479709140781456088176301710728750075641671334079288702136057513576478582075231400541072897024879956926851790589830121065462228776024359255141909635918022235297391788203362168927976759408550012490743725441723071529484287748359438236405702977754183431289977462743020646858922318338117822062219554987738233060854942554593680548104294449039154862431341207174041353500404625940280696231175640205769719660434687664132756692271311093382310918782903991528522538658481976231017741481086597988840605707674333457646433656277888387325037964261175153531748167587982388137106881629750573008769709966576241528065739088712663323129283711293661582933620950138794161801737745930398182485422325340045659536988083379313782453768684644457942782855106949594622542018754308069795462128074721487968599051007214545095049102689734715390063428246664782106314021609643388288144601487484795437626091805360199405602877732896567885031000348579308604222156516458138537318619628860544762591640210646472740242421233804632472476587715148543460667132077314221233332157434270050120060117667201271147078743961880182771294520446833691072323808597235117182020808749311043071069960412593095319889793363664871488173954134955748370593235558428121085510799929508777743883309543313270969889905450130968110344469433412183753958850789873726966201664883869523162341611032690092694106658769292937769979853415335149272463663417907411309670855250994277144062857834044526508534396638926825418698038972170371197605980236945976029572345402911114286334005698391848468075365010802243965303720210783363327755332104391436829249164798034085669901565512948157388633176452148417216226264817180223537921087738404939340828246133237782028201580173326259832242377228643884490356255788071286383393059816067762044473815715318292864119561104134320446765114357099112092380283045961811472904659023182392708658127264178228902891267271110960813971838882280207868738082242173563478476862162618993377741611570149486071766595862710722700127418107292470352054490613468966483074625900518897879012338584649920672970910771634072493003771186124652586875376548255396793843139118738894448053390773330559082687411737377411215691118589455694449479090167639486751429311822582754104059898336832935080137752519161942115007739961657715724977687374595332231056451405661677126017909371122802442840965433515334898147683422951684784241645255364597131620067420428236795984779564479348482493488180294789619894137777255082231940458483322079256038186610289060547814307747502105446166625895224078472737623464624535430717369910208238903793161435784077029251025181095672789200177993941792113678034755828532245670495516670717966046904838892262452369300118030802788772457385678926330272047927692117970490662488606703763243363410001607437951962210121498819340313072135311082357098507888679599695310998503250827748169647398337039052423635572098237201344075504309594397987244529527528377451131111329982975352733986737243738415547964910010026785085428135647589021782597345940496733728850212986565902259496458950587876671360953685158750145112946965041581832921027517562341272858237052518682773621731052456096667307544237343010899808500591934969089172105460823075320052459876525131335683662565371157660102810784100247559526735999828460423525914129250858003938741527841719129182699415839885723332560002140106825404053462262348994895369953067572604595441846824398408766434639663004291385741628193753256652238161895413056933574954833879034259433199333227250443815043504106328415060197168178144233564398567508440918194872155118437438505092855052907011649907366018744798063711809259542979398029990381682630539743731570142087902593338805202054456330947836206869095954325151419338545492213379548254554679345953397923338387137333743780652084981917208856892065136945720536549608024726665844783824976004685228010719111911176088750378693922396741854568459965398522866511510811350485995577889295145135118634520088110836992154352552422688784927401929774778394813254807248385684197285109604076878354712221281453207377694268819541399064815865075305774441975219743057344121804161752639909399871726897130503961206202248016943549471444188166418299440158295652149629135788953868545302218893348054559730445156943062838330749770930242639941786218617983826517231075016555265389266838052006121571191401497050999088305162420457150284842140918007608542364622311235035951036169904076457707280381770810318941595445978126685019496242967943025698833654154510042274128079985578215488010929152563909049292639257894428347858148491365322869959421643848834573903537280113023714772386152570694436703092973434132354298035333668759942997952618484577144374155389565973858943120501484563850721132348469549055577730552053034337476848103634634656390185502443620935290210523988477087225121907827873980805582169969856900189136044459620966224554799138411717415871816231380661175092005686019151810378600511173056432340093963294177081826319536427751945507097833238776585787428228165555161857541516489352217340084792886634061832713272314568587957343424747020877683029066990267536343668202964985622748739813832642352624217192668446772462393944454029505110747614903277646575161105572905206586634512119686272634304355611580432383238642271037127442239824370641257926065880290021396628713218526749544634011746430115059203790489233988872432213626100170284852360394721679341810162823908167185506771595962426616947963234167496345240194652415132822267924616578210769946670323040846735836392918669205234272442624407583970398452027527431515813928500338181869965189880728080846009563400602202792929253929271821420883114305305874711888672730282823103141880881195225895632940680400816797174807993134990595449080021361368754310339723657484431155787448172293154608994345985250105395812137087437589999655044165858392744439010676082333389185022443068517922963793083574378785263614482788706627288481785258647702178100853016448876568579208416974510307548487156584998549099354673863472081359903959911160096464966572398976169485081749552633812808417419238645315768506173316608919895468989701735417913081476364491815072186805088916812589817940992692699109163950895991034309706628893430061593645915975570619098643180602106115880696132739532782588658808153837436236962153459847551495835480547551195944382373445168342801428675190626647607943850680190420833558346320623238052684071973166779383618902887412375306607638505476236315379120493080539879023385421535038932713450489176181554244616944143796137874088354165750514592770068585311710240564875372180911267398225215159710808113895579688459781927249366429988588517725628981106897570510441187299146438553710821115635766895828697753643019954892966506397049141777011887237018067731003571060145723681074796196193135792562073068047181484943884912194169582869759665349229190484406261807261434195047141491692824096632174012176703779979514946549410273605697472860307927073998175416422070590644463976330753229590325422226412509214311816097337551053491076114370558250525781344555847942468285868602914400750965897167930400456456256957401539776011716065080035232378518652726209455649863159252728695915797138709562008201885992222417849739386090762819619584231452637027465817998015117473980265211813206101211001003103300186436205892318832752176742970368395777266523528297535154867989698831594104306452283805180850726682187953911490115006524900000428255256042007316148688082342664055020553003322129061633328890759772198862132304682470310897344628852802063505154468636128593669394513108306638574345997786617717183179615131839827040741054155404016606683570123635518172476163391352253449854147899916108981729021353541932038912101796565245228996794445430751267543231822883698339256223989089704896257684196740689602907830787632326142646794012878261279160272303498872986269889031609842033644325512639589350211670389220215694020585122494765640937004688291590823509094348115299799979298126814750147411029878358405870648694436757957720513800731554494983071723318889497440247191620583943820829941199796243679783330627292649452375952611887398419040920857121607550906660350356847299873594058225774382397573037519684651117690983061572069140668449097711425167056605733977541730101067463703284174787324816580484167979946829839490549232581022411445833093633278503232440506320046975004373397649761163518254412057488143612787499295482751851670954594498476639562926005400478226052038477749663740480904360728634132416309085367711971413924115310524176168869839159022840012348525572184233814233369135007640006972440470412689053351585441020886427424371125233740072212923011430166673182418779026709055610320307788881296030996171643873553714890924502974220370269577825605680479486944642373236532197959873174935331679532315523042250293133845886776793388501386057456507354697643559275886130246806981165000913970481214713236835492566595480186360681833074091534455496198242684653514911950293011958938426862183662810200057516892748001261418911363249952447247831066088347083728104809729103493200518189776328597133622408200083545777872142117300304158892224895203149457802788207037032440117469800706830242420222876611400428936040192046199253663460264063914236399042118465468558266508144872224092526852813733281291913234049688660650545894057813744228602526359383196367615419354809163923188099185161068656543792613364291207743044262079905434886296370226243061674890861965402232948715826188321322799919212340480343141861575462302720576404371612597158780394751784452558394136914150363100746296418263258462594107857309777650517678262637972364048120341284267632860266357804246677361967549634769900943301877857392689114696745210465203188313942862318623975703264948613491784214366377010465894961738961846903511703959274439385995598218473122173214768911115360705833322615283425587167190219231070831714645136012805759566249951875119606937356557303448951466274374281416341108386298558147941474545204991334872124815054212337169122604591141201642020321250242677480334050031018842518652907110626495610394093122619815978995885850791072026176135743916229415619810757192945667456281759359801585827745202609380128264930338145488116806649267857838120299682944875349824487532055997581751746289848271466207442521358626551797464682960406744578291928803589520190382803057889604054080895135914198643484570659824666382959128212129305483963899258279661169471910461756966828021457670734872665463534421501520847462751777146713023006966967778854310059651075771687250260744233771270318678351114649969721772426257219248387175896740361113795312620436588908850469984625129702021014500742280077287067159929112752859467168721359262367933550369285854690463303216224965178889562387317563349587010827394784187879905860955820715071132532124541492882041860790267833486198408958160077590394518911230479454049629221167829046863908947569090945617503535693290836195512470957371176619839756787339729016486859516907529997944246698745619820070392458900834087730453818812446104749852545208409550275024768916423332698656344124897733197763438436214390096687377587717472093118012179320095085270475934178542232126117442760114542286328442870171532939965909164976439263670298827962318083962236983311088538233848036253997426646768898941947554596296003819023580208649129051478806177527489940521720024572182476040601299638613489882457390823754618619340737878920016107949870739635233964015865235553322131817634611865428722543189791526553081370128676017089998333352089454445069712850587274728195021259747800185236963349138553447659310955627882347580448893521349464270220927385598409559916533651773738717573539808615585792506907622112774983810055058134886918675731230073075223901165972461346999821572829444631035963401526889104123408222745809251796439570529934734001977266296196616021614185375327307169918373211733300106977985745982471089891194164517202751262579557521993551184208865965239855328286523915236518531170018672807259042482825374234214160794943452080050264053746521525243148270809313923854665921451877168934816881370820452440590606535782111758071374203117039199567750067107163122776977212798240141856878131035870325164234152966210188075344808711582004356712936885792150724101348120463574932735572557333018558865771112757051871327974540717205880940138669909950666319728396667112030133992729483515197345863213988410606636752112551237238914122129238501911073494268584352291159475330251075415946656470937890444091812581949164381578784264218227884657486647033066689453085134200526175505507189431915416287873523285638398057592622758546914695870387352846164471775973832725628526171561536396718515217207699117550936833747626564249786285738477985938620414295376278895940327098814399362061273983000265818302479893932877373285099738892674486307680715543386983944208799955894365623523893679803445304634985990567937261572931957640710410109322935768564947283595064955650681896550774632017351463041242996471553665700831435768644136778897551883922877862730052194636035275086266358832043560069635623343732774296671539197390621297098792496812104338149063189798320849209934382759067090324650015032057074714368707044222388569348421671059902728485789602983588038045665804783867004947459070830477870220182155008213757368884322011655138663306701148934985254955636162057423238664228261940570356821189371522528045471807411619621912622699666027118340414933693214751559042965425679767232170412519812257565833188705751227836661050625150433822238962007125739779378904281692285260032702372009780992668923476949676418367720912441789088290486664213993890813804852660768162003509276441425026674066962957071113029766159744436464617997173931748296454531595726598852713254814664771274824074510146574691428001646253534771319001187811523433949556940952287203198616521335534303744267562379540699064000963190514958247591568194982548071038874000104450024786618573393861737715747849622799938197450832630563623495410601434135227122941667925439077546087607003788107879532017467752230704662874573499781305122783779252696888849664582471559271030414664853665037117177009405155119654384180728716064927580990578710426825637541816641595820300109300821500905616905658003079363088327638649419276608950023655945208601041021328659886523722129491403404195397506166087706719277735323103565336686891037525601769709414906312054395391519935904373765965729534695851187755728418577279419307643008103979430306548700331436268804244573779557053569231113695630933004860233710859398802819964731680323081188013262937498250813464550697938684396138312323831067950651433039781882492441367422274156420307359886213713340486250742035336725404067976365327531191948457389133541085851059756802867063042329218803977211731578300502490464754276792513369966880517991006953427692636033362019468842513334564147105175364793637644883073698142686719675830879236151451636167557398529349096707063976462697802982303423768211488288273873512272343608909338423340971838050446782418543175290610933210276289622669066597784559204506288558232666540864326574164379509258589014210447005340689746392079567116023264735060922868108918933931044862474249021613337454648064293139942015478292948132924691220652682831131373608115875662930017902576841702591424240872844427867905862795845373153440956341410431400345694630255773450763751307636152088172340868973162619974877857701220799304253857139667250064897631226514004184438408660327436930174327762566010797685707902022710346862244991631081163600616441236213200647665497025162185559283473871491257155966406439944199618398644014927979257630558806708521654585669333785621663257327184481523528182365278260370699768306915127440480510196371090858108034762534870130157373944757347363472836563442763332813586839228418951927746713638422193505908729354952901782003217120657579388137753483696199651671313313166565374559821451203692256380021584035945974853453701949440339970538158758266150279386095536974855022329346453050966678307781018728122420166213441383270255284463075065484599219553469387486458562777849924709677779541329854446740768468415251336560512107540462707741054206123157303572081395395387075805264294237958450582461399472225429388921494454926307055791483018601706828526215541239842862364542505335782561210093439434474561292164498275614583336746022298313360073435822208655495731633073903074871945159247103965670801069640951567622550324264617821618881426700176754640370080284722001393647069643784273372919854003362850001567035498788856784298214593038981753233633749225373197793714186591609374499058696387503766243422489863763163089226168323374304130814950818243199031198285528984142606406729441887092965833446243303535142873391770985438653228578976897308423457776513265564653025516042653425749288748190708319909546689504307789344583584014067400210935737195860304390616288632483351879781379945055368929329222063102060463765142010611415663166305953703106784900652568293597673763802347281669930346391526859538856225276755969816583833467971152709488668461963608080494078906545497017463560036880467946430261702906919446242525204235064517530983420313144733644527804964431507520470280290245072809279140858656416724624863765690192536405211790794624523249351795865517452593540816196597885770504137274942216952658077762594726763018601742097171255735675037964962436272955596600375141388047322276757787750026320659372355815745820364822148945394206959927591455191724670795531651449381502385610258591754085815039455874658532683950091700991831995441087786764757115821547770564381234701099098899337585098417638296168131189568507159989209807370542014896778678520535602056869747966910267240691017729746578255887565166000265528285933805354621223028190022864434585274021289337743907288838698076937668866573234835286392579016484920310567958844967071265204824270746263484931336590472125242270187400944455585307797956473310938475492233939449641090863487349606464389457974053107794104300061852057860060987277635452737831161557381628509964940228561149399790342252726182970845054241388589544292757339194176873876623498688918288873368563606759007927761083427170443097953693018221203892049590756183797351367069981139750804739001864996506313240750818682234800962470582184344009025361429714888477311739809354279042914947872356748900644948505353695666306704261971672403382282881343320836902288174299497593557417631178213079264203451688950617664167855766229522496653041385195523592551635070829789578731651914318709509185465891009664954540120467306267183351252743785535395087647133878437200601260244166393318601805269442650327834421592341080013586234915146085269356433293669142443819706371797072084790400276334802113056298469249319583737482549629492794791169611995099230869827158237256892991407738623311684116750956655737166999935158202045650080899889019620433214059634431223627441272544715254275830359160899228140568565308296701003890432731645613670085133167675733313433024915627359564510897193895557365473002719999373401080759466116837355070526705332293250665310131333258480731586482608252206975607141827983206166524188712802426581220191888938817002395002798011818940794914226174757472310747465108736238235491417214737342955974878538889250163982188878072127963415042448469014535591694256990318681286642326882740858007723824431991837370975056963960917983814025059881328439464260132536165799539773697102311164363589463661758695863817017795070638816010348750432968382357417595691730545566862797792356161954002759084039871492144089578842718378613916041873350431233886660861637753267124499870302294111798005509507300672844990645952449629343388209350353451068837269223884214043995971781869751525518360929301360459036506819900585394792802224041939612261685670585825939191153719052594597034437628965625989654390146273231401858879068182103818962017413454426576400239359670523735036079530504711336767864012555986432973227620751641910044678653065380226966817131496723096661765339861245968726067128438884159084257800961508073179291958660200165899428478795654773187911124579294960098354615343327071348930929710019047508279534867269785517022389169365450420705789472682822193316241423536243907258090852303853042840312267746443198446480208933569008904441424597697610722512855935225844831062936928190480850564687154879202579088094738512934196822130706992217435006676732602841016783322428347906867743949735160299845154777069009147557891712447142723408797487967643956131902654539172515731152697410112313749986099826650956238117199273682904087658817350483754251176913003856859040178257017951945930670778218783547154247972320186814637181219513857865918779179927032508975070799209891436730854771556115331789623734749214290605892913279140345505407460232892530570592496148790865468084424602665914323611021558225662356239371984944887221921199032298415411280735260395776477608659630705279266559400282179588197177133037611267563427830870064307658114616425994009593321729984452691955715899999751831683484796983237758356901255678731886933707257091875038971886586278967434014166284566777796577214841923623908340260320909859653524025601231976567059227825533914904046782017809139063105027925720474886389929476691525730722382774899137518367276753890539470207499644687580675697034219728949499350973468351779294628810682366602884464394658056880717955284829357242988896328543962979631059317175904059026121331056055494849474166202901992474568764297941992053539107722636007242850304362739843574047798192375750924737900765655348595295356103114875558485698159068092659236547061091192659598039947263594157548008466990429127286882256429472424153987358814063494128862623897642954632217851477528088682325568910866391239699779618228141960482540701658006432137767675174315121849964637934636898916688171771975432552971280749093592356178842302932453098757511878139977405846317871531281027054602682625405730468526548483860560683394768981824431234165776019954842762273570587648180262589038524244636110613064061738311048211733010835324563193128652522478617110826514523515664443358690228575093575153082877421571708364947613083460081217804903323802406478231237595210666139852818933564558773286582695807224831757503269115813420970486415076339204434443075442049700169868956634758790313209836562541157559451514651860690195266791750828890255606181737321586380014549158017399467504846140577976714434979319116295602793234573176978808640487536432401649027264407532132415177335005456851828012170957358108533280493053688182546759475748890545347961154298932943297491721736923593488872305734482332600755867103305456686668074083178184034127492044009706143089321610056827731952932808617669428444757240877248084371612677727864697517107595208226868871160919029903810011350677227472907561058370363531690049893823309742382598943997359761934172354332346412329511756949885250254949303810558006415295603605275258356785842969840238211795275245678673325846859156817198807108260222024835547899823694290421237310462635966128414688037673340626227887551576807189865993814306790061353514296994141836368425787755399199488460391769387347689742952545147673706927777075551558471343423067762953837166272990968752477823145519704381589290777992348651303423570465130447656487337982584948395384065207153420694819462916394387496506811737781912811311220007417688976802745592864526113464439777272118001664308791963367871220195432112214861195665927080472515223714224563522049479625936290945060282018579246736437041304745692562462270112889669993280470010757326618345580147199209801943856660981572256124456256528300056590357851481385144060098883466113770237404228975361291826830349461422956560025944097120535082266159192023841682017269677135048809768434797145779796237257629723347964773817857668131135129127007374264289816092104549886462145874631593959206687141858692417799082771781002225716744935614007634588348572385461679564380390674919707725207918702125918195426340372157996809018096703899507299057811349805619408344982477941124801530362332592929397031468070421275863353567145095952564335560132173737738132279574229207542818244302723724350523544756087763849185727504569185799573209898983718140741618939296308911062871981866824990914042676279186027144500732136945625736136710887922061501424790630767210193965515664251454870354909361184560272761290237677405140945102504005189875975231851220226150031904024756665316371575377514629242157930248512792031729526397196618772472628329052991679845920554157250873936280922198589641532808796381880891660653862024644672041365317304806219325536796132457324081521910686527078435786660948159717371043682669533416956181457455342753007062440376768338723240711229428854550862054616728218266469122574176228342075217886659451640723205746335847448086564107482617712295833027239358267342997293289618480357519389494000446499750463788220782487319062484079329508701946708602449061207631092721821544544183573239732580308516228797532993383435365994011764950718348793435454830017017440527260599870657437776551743286089836628003210132867431347161828344949857352869073683819971330995690610744751165621934137926134557745249921677178262663963879265903481085846960311924635248545164444154795379848022154666224632047176208498288794139795135746962415754550008853272254832807527123265207568193372329611218241985456773351559077910206709091025188893803858962753775617460218036673361398924088513265279465452839147138295884701028842029346103327865471361397561769454585646461340502140824917121466719037296353682999364157244080494344676520324725424612297241669621733624030919268955227684754951926882928064216842311308877966487260096032097330095289035316000713773564438023488884213727038591164074752548222994089129906690073957123165066759770563871907719948923869949645194808242898348609534416836057399117554553559013055402270239207336505331356854382372989685754421030224099639568091700769286956662561564149695754309823074834996631757321808725126733919025935737491678492620795395767378914592271706214707546557742372175271664420539454023838979635989720393428003328459175886415867712701385983919878808859614082341149943186733131114576122662905901296697874710807951037104905251202438265417289694296098384658986880964818248064468563773689288647612851153370271143017886797557522154702163023398008989747598831298465790739387804400794593817895996745183447318168010793915244068494316644049582916898722709524176489356241926102901835835993813148497584555086244308337422670045920060623365955179142184492325302356738900803164801139460569625304958133799419590450073901402310095709336369738125843574839232186710827494642527900747161373738966750456231391653348748739920634966720690641713392142279947156140690046482706301110315660940946062466682159176862238117859013550325239019976614138080309459133650620256125040898664636475087008647143726632065907713111164352795756365623881661000569843138689114466321795134904260130292305063427506038168831582498223363853317546801232817369694662798381779440613615412199092532231739748700955243552797701176539062959344517382957925034036544765748464463450246293329893972030760813526768174471191709186590939773199683260439330735155746023259720370781941169346348928775123501516514766686613521538506988346397456975739647300704814626442349734807862492890810954028420704286306488368559157969749914695487592731973391255104889076313513286351157098854270471170327132478075553715923701929532342590583949961917265151597876395573324874708460639982656709092148647256571211306981327986471624158750110133184094231409994695522100121528172759415832481155288420657461230308536045920141671504671160967983821378838254955435267553806949786684524507832166383915632461563415708760419391892883193491905548784189832918923490101274779209015217124146204072298802262573620674302491213354881933047105465324292927917729550899410754981195986836929886835421464921150527917029180279916909255679267370261565740340228655887673008356418686956820623291714112663758781208401337086534968850366345602092944792582380454389470377667718158221278152123513821462896577524292905574327038453346821913648682168238392228186088554272766304895461011056802197610057524227134761776036126167993651897398525834665852181773636048009984839857336580422297590278120635452930121256997667635459510033023563112157060665563942385469764739330727793087190137154626435960064273197562450038358856013496555429534153055092369962908530443989981067818266607629427192367568281159727661852701800985993003145022732717474958831785033032134480007321314633141444715466023630283552183372629746824730984978476801197594874906433889468476738452554640446874568744623438428798027817928279397273655082274256660422939323558332255029049931426215133263044227305738665926050527313215222879567040914193229118140285947041236059085442071383933102107499221887995015479039375191158965645115746491706439775889412004676674811643037969011002395271634073142734162062479526942571401103409403122750985512526030487534883834325234512282847157685536613765199692038569310709936028044436417908291252660434110782641656155937459977819772619485620244213714485147681327189050910340955767505975876471058546523367251136448123281175144261899110645152880812902593353551976955372326281968276152705608179132379425145199085814515998488735416296595430599997772805827202351498778262935300396166827178658790351802419339319688092942399714348753353807525142315728548264959555122214794057996167320201199256737295203606916257643258070382862761357216702600030215014788468372403287448412365456825180590726198824900408184499139284167030407456817672220760549024005982463398483935182670149982412886705281811557285424419763907905809505033608716487426749220858993049985176203795335917888884051050050862062459043427570660694528065124991808167790571524796354284115545086391049453103272806142009074076232540796571544249386177234049783933783778943013843061255797167156151906150996385420979034731305577317216988817800156092583321252825050302411045124272669622887407457950175109077277955379522120915580781006766264515714955363406187296710313581632478286902773641908159610326889245104499313002690062331507726807541897121830021402128433650857125139466754255574968239028355594480037732993319242040382528847395482484464502593484241491744790183005984220200684948609303876440407082357601037553365301226986613994600555597336959521320710772311506952988684378683165691546015480970086432569403412891548519882203661729531717770871879215357382606778291662313167089095011507404168276086564487788099876552880588947659069537733645871533803517413121810233067392243203735396158124783984968416367393810634642970573845884338543705139808641309466172132424714346309462246180329099269905080257673450977039899244030245163970490552315256796834728297923126074185070437252571285340249555101098499657412587365319184324756046174886788458407307838000329742498468830698009641855510123447211843801658025258875189766589023790739997236581178456988312317079480056342285614319827337062134564711271236427910361562902679663098374545352505022278942564457192696468021985658215129674095606906941316250254431130546252680413977569593991782162561305245667139844794615640199172680416785165425521122965236130363873866651644282993118337107775216696585850652073390782080710762325685788114564209711563272238286749915032427388924370836339498831574770254148692141781540767423191727869045293913786553945898706858685521075176532112640921807474875978207319264785202685225472200407420067739722756801705691325086573760148966463651686140573369671700229109544555553497579149801853556033249661352114173516540690272693297497104853268657298067338418889550554120270845049036944270523506989855100384273519762354467490417011905748111741245974001711446870636690339230458746746710605383512407852419551312942967113803027494267930594954965774857656864451187177870946076943064846586844894647278074106600162949307066955606608770680827530137428094261316440813716100412785171133968637847358613775012566094000512879261631713266066326922687441476321019509070652752806072502642300247332239738832788605762535692988346855985783553089663977508131498718800219122627317120158198220896338500527199185613580595384780509254181843058572187293324595985187260500965957637920860072904278081233315968893785973673372669410090168962655795288210105890194247425904195760261248418830963461999985679040386854098926835169790836765602723138565045763832296011017659873086054754117944601487915020406628212020599696717495383025544728125453343054653191275197668935121409201269422996918281553012307762489997886743968724483250807750490228972146761115415719586444795134014376897366611403354693899805886611493462949450467022753581723884397855126212745878244677026361871304158749764908120420318375848363895394140585292535199851894427800169910361334076507964563852056714914888135949865830424004770190958316000211504011427689777240253576885241498836125649367391267143229126011932989656123344237949129109313540537662157147588065086412875154746044151568643763459989531285710158353377449945340832353016145512518628930877270942073286247572822763780189451169275818110665938975038023068355272430343066831932814521898715034426418306796781353892903573605110264844282101643925528299038412895988189415239355072086774568674700689751865665839147163052541221087770995411749851832780574921773161305138558849577959845292581364605902189279682479476001382368152495113106907877742381659237047415986713912105119003114271951578539248413998537041969950591453367704659945671814725865697379210169231606665849702782372434624447839877861004334544210758160104966969622063025212955038367468834560023065245372477900758838357175371201968952589263207830727131996823578264483085973545523051347509967110755141478839589083151259517415813780727523059317313352525011930035653450228762477215946712265330635837227920033176616648982011206475783756146287642958904661186234309659572302848357293809132151442680626608817478563601469268168099595197715209973425039926837004872056650846184765522144704160081142625671472493581579383927040251097093066672493269386832768005427712877046218686939796807010091179623745553155493410956572883596063951041300970486382457629821851568462538833581411895913844227245778067301596727009010990203630259534690952756653407351713807286812305588234924041332115453981075515550877511768641550198868628153042229377865767422211743065812199202538715726003370872324747322839930441331781974915525696876554841063123867695971904043043795547438004746067944723389969538241668583463963836388264623271008795737354376541029994246437940319040194366930965599273509635882084585676786235558225208509217375915533596413824143761963428573756353990993381835028276196765280862199603236311786801889830301465641022635637202848988254947447218776779251067615205891523802932642034983626791914299751872063328750682151091068720228872654002351457735860580511825211303840350345590550027316637730798904168161924055536913602120121004826043176685883971950052810596264924819027246472021239353049900335643611534397459886712497384899735736723418195962691625140551056154475197689772849838512571873539859126614734858878534411116449199189437809850064041778233673155637509921287197137564069685143955560683260095035706560920580135289489338111405897668064493040157152164649744344771841255898496045078141661134914631324315706517529795021502581629829469030017017853528563535149323983649564515568451888975572371891532991874133379994697845330176256537554648596616294787529843004050006730753429624324286510354375672577742463816245193445861995257299625323198267245908537928379799603343865774655973130682144798821225278613880786247749619048450654928826022976335462162654066235689537484559534887810028099441758896330752890051152595380864504190081447163683381081873942355023802999805885888479418910717629211173407658277359517266098657736002927436853415536236798639693493748174100528617758018363518240443354894187372139346635874891814042883251709330554678698980849069226899197773834599722194387244033089941917439127555323113481921893392577509615790063971792525834199394466810503516112972626208225141221774646974946714740103176312802474461629019592249383780077286504182254324067433223450821237266438402743309448513002654623027704194227015090790787000875775369293208001980287086141081713487236926572024215174905224816188423107548290292302842619687938587385080426980105595411240217639324746036273667716258356332349719366750672817016897120199371022498143383891807460937627830693815298475218145072727219627140493745211791519692312249552603304068704311448229058523199304261204059104992025350626029773466672601183145491968373759515707155260924760321083508647187140593937108273972449135525093874011161401469079466677409195411121831604690837839527678464101720476874135960891853575328566250954532938749220313877096795076445347258456874013322017187774292322732967581154040985885277036117699896928410380544045122936337100085803007782465012440882773621822197830335273429599792473860947140542331240650384239748449666207895056570326835622695402929009326410096265012541843245107490905510382915937690227442059201610879681415298940838715500070860239922396580605308216237316955396672973913201275659297998331554605502944573676720718458117960607663415195882483710089093908390413464325728712230369708775920707930948624837687624916438894908872099096829722635169155423437521064186963193784628289000787073714857890668442713782481458500418475047692003484795982491799299242120122938877724206672622469303708089296680796184865681728567957956669474699107008056100222577867002692673991251133885116687233968315835744440376701988626957638112031295513028359288237277157344799557128441247189023328385665770683686327205991063304167107510846941259349245185780683046886326877755813686453012986503056273620368370980424394951589318746344476535532801995123337825551964495358407620799159307936798153449076759339223022829388634931889276467626455418125897918523417839753277596543429644072271958799352056288014333918009863410185230286570268628219866701492602707857929714662475151082055933744449340201502269877137229517441139507877479524867225877914252369885205704033014896364210832480709469259070338861856236602023310990580369766479365280245210770462952605947110645325291305592232265677571759184837651607314398940625944323114965300363435874624667431616810399593709580160282939675417443032252884725568258774800590702199443526583000098209277713225085368643577865549450535268592500698139200060767573395759731515277109878140900099948869861382345145623994958056584782401362323781801076181732270961160452487108055521808522438608218548771631599359460997935126352825805700823902248184227924437093884771994906327861984302877766224771315489552384566681254634723895667450893297281161755881687551659456055819143821137591278636644531997348617651746917704809459512239952810408116875688310517349422889142552861954784378706525655378243534996391452709011286942644404284279090614912762857500293301892971125210236033362117912350904484402351856545108956205379675166778203003350959253555733551614893037103375746347860062155935823103411612689983089454809538079980540138238066522199889675378787015199922867938372252605751662140848754636826313575764789169629152248712981745021407612214563843617923872029376453564553960699527393757974892518005587328521948865628555755481589413714462479764364569378865613849977482227316575875992362307249074272629130131632496169807780293927191330891617591497306419178066513064445151230198448792682935440340068469476126781809319378677203328861594948946034115945219835270977495563230315415674997163676950826582630206982249326494173331561390790916632127761966546304970649516776122184904696404232592429896316997628581111263054244265572432230922673306014060981238890393504933835950801711570656626826624934053503655207448196746790498190057694953550339424001117148675222099147351469869814150945989547817810397794825861822284886824632801823458919181312061267984646406692213784114259705923011571348490709347904052651305995818429255377475151018689988571613253309377331142261685963744359064177847568091151740306567043962117522320028752126636570167702418151196295233826752471031966595574329744592107454318872640418985733743025912399421453191085025600381837204097116398632518407139718850117800338883015190175850933360406547943726490817779367371117836652960287712160140116475567316474334203480651907842235397589845621541306891547576365916188014804237754202698345178461549498017299769922837153987620451023811390258207011532560278824920663477743459452086734594727268945974283311034528159361210161969122631422621197578701182877425056293342395989398938325447822396866539148819601601757174778633928740472817047580549731366634168515396071220818903484990621572424633028316260040077394122741914786670159845889191087811319992565121707599904792128080437367530482895008098558239982495572173064143331509187311774337514429973393582494223386030339625027425373321897694762465060546423785484143193611402237838950758296992916869696719889656599624268606921081007219670655475765659301494248418989346029249376139992239180460649441747387528167991461777684987585668073272050681644654627233135398826187561871647704749595461078404297071369959374275396538037958654462101709942609258262855686628316376627699717545099424957517880637434426623481352895737838509569813852111415016146847829592457479838137083380767223159488366809542614793768679930568107055887959462131797008580289108065057021938481650699162553446678494339212842865998055886209879148198655717694869421319886111191405424424843386993388213761514239553362720484810635514825310879686094514987258531875918413934210230728494891173772209832204817807063671434785415586525000260297619956144165283299254328701551000653634310812943193719499155702841241385854738178689071151957407249139733369415358699461600335030397111584288975191986967832691365708181392956250640634715837537074611388527984934151586785973901796891943988698844130219658924256320429386612285902789431477909724916791412098659181818185709149840009583722743958060999341145572382107687702631895003162645196027456302452616198147008222174136420781937919065858801930519378939037879260775071962109048226923085503032721806756111079047615721561708579699350446781685317036765290487604034200059630395031074165706067206469151214761929627072393817359216846070438545463817132523703928342495919451923859075436173487330123216682913868450877584270995955880491896267277772211389488010870830818688693588278142224510116562656083989107499260100431860910365284467536635822778751173098543774230126975516135227129278905200159640869470586527164440860560210884904962137395489274765066167298100367281631285969426207379502641072964134659810029309977713170841440586476439729550916395668263418318021598944941838152177692748618915974874073840351703936180331142238208415310657483290639403049051620872102691936574941116218350893282247192905603682638033922658017644708383256183874576655614429439149324528607260587192081451456076342202047956161933306394284639129331381153389504186524713346509626134636491612536564920064302261868764604718883322252678499109150742374827987363783374133755143657638870344341112889653738916020028888784536065705149643064001884557710760804837079534552674468318921355113781699279617762103432579546666559289951458891284503144428692385679396514021712135753729953602253928249685268051532201185058182958167016913118890453856699133665203828526276322154839886175473984981855690412775413161713672832949398914335097577823294089500226913955472669758278350065956065116652217244023236561694304321498094040111222189056881840697951008526977965125238568092100459271880428538073751131705686806770546727115322878834767376653304151829397242387560439673019954950528792835501235218260991291778955375018248761886730759939846150392662126679120917129788665320530555725089003549228532969462774208646117898629541871828033573306586369915528321076792229778049242986227635092881577688164871258921745133996657065341393901747807078486849267486805606154773123489405239715090799106778736036548066607381493029242478183799506026720209924198036848886785237031017583698740026432774577667776434197705439846614586266240606153621800927922724572991714953448661447295462667579003261345470494861885917564383261864724729782110393903935562697171715262948670697379672064707964364406139317613222745666129020570765715737372880310786398937129038717467090760280094300703739346224260168065982926705532478947955611047213058095290010985520898302418487647491551539081375804525682678009921941681967732831625124973790314207331150314309242176904706086524196667217844849903553455161958167138659034689786139059048893939828407213874941816257898250647585671201546260352398927976095186424573064518853674394044103332340620955750525842123864449149899161780355652887851976860340429586510958199808419846109575869434584079652767781889919580576114912852390327860379077060714761185938077265839913283536632571130611994526948172880937996641649352251531894352354178404776156802747401317155840650325011517363240463605258020197798809587396628531999169038574110516457293236773400064337238231177785147053191328703892922544159768545117564205186989855496792012021611542004482654662406720042440118036699730661012640870201525842788904180758638072189556407593902412406393849293811052446742943179367411130060843321689390757256626700285659587648479149300819421919472618778641303848526541227776671028207190742047098065299313616715257647608249910072969651193849700872072516893001463542927722826990951433453394769206062205243195127649877150294207223930756695622647721371126707413938978990088210063680701775008182938352662769460872737728470695409049145642603407162076948821931526359725478485138984951931454939926270345119847924786880008803400955347025230659575769785897666138761714755923488707621633705879404764696362960653930196772328040575354454759916460338720549288571563728862527721236098752416924107384000041604489702011622228392685871689094757032949724314412923619590828059044207904477857857200330340245697792938670715560529902932895537806640432782656159540639032559948597168299725256119343751598453383799908085732969756318792242815568494975285066047078507495988284583259775882162510191039537469941049575084567583199783209102482583631747257010283048846621394385810130584955917945606058297014229177623937994919091486688311487811732446765392082187252917389231088730190549851754751217773147718691758319354205432844683772611263006265082431270164878373078199972663211203328102838160852354036920903162307604190394143006712872232560314620197116300848878303976662396867157245942902374704285069926235881600955218327303600736352523931871922786830066968348833428273371409759604625297834966552453003171334220745491280987316018065583614427714972124742977720570433689649615615285793794958996862813160959485283824371937131139447860606905916290005879357006426352574190002189301831117759085344611453820481535507441649250678502466757994021406029931925571324986711351382021788090169740900230014358881344353416973676012070064377913847558173436663581388560011690766978737526585012535850494217793073134830980185084861618390239960272609877894518262996361572665534828824360904141753314757380818838237204007405623881533557252342903185902049687605357974433735969159659788613334214070481757599790902056149008949819170192000388941461517880459122551395780519890494794476120275298823475333572236089369102083464505181405139763480918566801931348433162563840640668331907933265007532353635626277257594747185393774228577441909094638737155446731822420374697060291809709759157008238512326931301331644397966613023507748768743460067026207318094554531410083093722587598596512681417476723090780183270541772111456496077317146498924396964266075497285727922798947522979207303083414507316713264001731571378604189091105049628473232747486542443734033423190521802003830723990983514944353205229229283151910071234842252572026476311671482197067351181247840530154021187878339700815001234306186824829748379530501970377086679077759833867476307105614204687938603018459621097682559529520689476070230880383407100733564880679886297955856503708817656121154245684474351090476593468652890075688580140088180096453498491741276299655203819665881863336619134927613446288132668714121243541513922236524626995120624007832488751585490622630493815654049077100254413723461865779937850761622236722696845895266024590158004173283073321610784558131751242138325438886424556842760805049374234669425541960330359848355921868482711924239098093454602639733430126655941609840703369804234423845412316317160269021208155412772153478122444614526165896187408728800709298869890512809559687083645361375398867443426486296405134714670704657860188023722177478597854141180623362568523753289365357709366528205812856173780218231814911263451100887562043458820071505689257525531656216305217647399467423569482559989908227708350899142496661061120032689565685537737362648636509365261766432785666879707389796991043079067085342617909529917150115295182612736190361194876697484320333788941879466074377652639312279872742409004589911558551403292988493926285445135937929091926359847940878885194246168383618147601052698026987400034923594513684204994516756196101801572531576938629480554160517498002648082818126323138430444175241404015996683120764073404271972923692421213952832215679997302608781282626117596044971102211099309346854509486280762994167343060321926054274538433221118107719055469160161050812462128563533872622498904607141281056083029507597158046586324368379359885722416191709510136519550995541713028256742095381768862639957830932354688574138766831198460425315344512214486713891286419423609571882682389994317148956520047288727126552496566616920083607310953158438355137979010926621561547668421414976825852103938772695080812508319347303141751132801883999259990554693108308153242849355513033099287780194809525393784574945347684706178050189139816776267935146507831567375170069353003005901454874732863825457820212049871775564050247147587069607085516885468433178975581411577332307614297066364719520901248790654508527647582530448651593241206623009787810321615480261867582145367841144718593503602121487017379954756683195364471700495296600746160063547179062510152357150719823465767645391510679216258295719152498450501325541343408216328985583202524904177397954410810643011528430446913077953730884791203145450167435491815778777325402091027707547222531694177346765305146833077101586374186095319835389807048766067740755344435584191862950375847907602798906939020900602510334626086159462386398440736794700531117070543189985774106557157258278087093877678618743348077371274526143808423087987470513260041027058478821469873047004385594270462384790400222775515856327312769201703696184016651498832264996084426853618959404155519171820458883391118973010583112177995894354077654598699009461188521187089674373137660558608420671048614349726179626681845952796295566526688250474615434883210895096026721976902491915713136480837908985905461205345033309310476109247957413004405850147352363589086943703066391253940264087614769679419858811519996661493037558593371755002706662258567353194483925033553224991174679201449072927231656740398825226147859103580133919711838916109746966672040148999298410878832666413174336882784056936749339907037449395531699501848980660561170540657994929981620126888902299745867286741816720687448864925826808174436761855460067158954778639844549387352181231911684892570158109529433492499473699893054553569940480331445349411667178719390732937107962306777288995678611137487500218991714197305157241793433553976186537877782001566095147832361473359635976698226859884310564674939072076237635809981517659722910622683140665161764289680382406942612864568748324902486255670888282428786041533538519989441242167800355618454197881307177246977951149584539410704018730976546661828550577166723974592116456924760078773526536139938753312012902667048545999308196755259773583601694067807990900902096848024756906933504120269072851354250818917932977164199137747597298601722317962780992450238335891365863834436610079264569814948160873295300994999810900848660669359417771956268891823042474642071594135029815185547857422270454492331386057273470387971825277097623701999333948477459550542184757394836054161684984369247998685324214417736514801052738070856750291681959354081938857718139202687551174231804283421961819488083918427425819978324833798889680819804132538942173672795393557928905184156377584090487667184644983675074835686253743433377932849910244758624871774264729972725438577950984062526851960657758478854241251487937713204759766929245726561738704463587895376137227944306908185762047608398158703624416335589801500047954137836930775508287990485721770040835969511878714676360299355295623663820169544036122728999177724566849056479843943497537651102801018873035130640317736075153366894513893532380854550541241989712837999480865220952426688280661631753140701005041113418701515432100710226644514248343573511267765605266454112774516544509008121530615309228408040389267594824510388840709966840637432068283309237845031895581029435165131717826733745519303455868967363923873957902768800360610223513778432169620016677266632657930144072410236437984928431168700279873372051090531885930138056529186055421290690639678712613524001978317772151343790026989145404977335361184592204094400343147630717900377834122641610409269088886706787080998439789006446183128346635923519779691982945587362383165122707039199269563777910327666845691669436057288625455028603733604377383409211885800473298845143527623389060330283309536354215326461118069058981240821940896088074111679166054903780846153017585229618826335316563704047992685698145948040024737929602531500683911338885151721612769974057406115591129004154295426748409005606243898243919576461929149913444402328386956017399274418528748146179964828773323890420075809836949057281567084682353395510120093874875726985165673420376710360604192668345183852356292163429534026682988931108953430062616652511777045101294714422020594450552355251354963838394415064811660628603964381368854837837454816039496332870931906012073831447117334096878826772251819991844287536175700533455220273313458572518562938069014007536407552213808935332874719990657682084271516449172005528168031218189953522382814625295339722898401915194995608935219285763021262189427180867383474576021221057492365710431179807735869273100095873788942190763867558959075851496753054688945166450677405805590996355499301171656719617752617736565159030708682286859798538482935540447913073626441964518131729730947408823406498047632477962211603267476356764705824832126365204737261714339689071176828200082309363055582802821718693944445037876035030918222442154852583587107765279285123464268348505608874387439238240281088039689089149693953958933470389016646558715503187144834978566063103904048579844446145384934709613799536751951794817710339220684059267503407974506010643924194352715385776107314483128559319384721767607013782959327636430520865771170639123631423583569485126151081801119893476827345104021978323500326122394123863579787011451934036174444421333731747482883753000819074447351787250530533538615539015493877258307109761525663140013729396684021952807857855028737363892747234375509694316554648338110951885790342074040382075047631178465274405900290347259967591365609308655039755334840336876776346378460518394037846527494961707703826308547334158647807784937478180775213357326635246031731337398110390240520753280467557761525087405652419584638326150369927180378567748352225966846549382223055702623139156858842932622771280449269489901507941085675869048018477405928245041762302235645192564057138843136477284821819262200866574368725816470526097698144703752743975593872481012677042136337909605066143502170853312855445324771748291729029564980933927867272367942739995072858032363776352170129032714157557229951240191472789827950835491838240096705445028773219175223379514465648534469156258926110576908373642767081277689997056856343451097494145992502301655290225402874832687618900509294892742354262277111245425315420653945406615592924634934650458676074541988045761954486986247476063435328072454706473148217923087257255063626636239368076239674695005768228372255463414043153666983621136937363914097716518495793964913486516344753738961018676720427669009541134203474690821529096316635855584507228817466241933152934964505754376568933819218881717894494184698056661577097687788993490646233215785008072792153842720193789004621597608773995242288168386855749221622942447397951853580264897059604472833340857269757195847834189098615232623506157078668953354359880867509636407230630370792577797539954026679235099746936900004528626264224652525902917254962625984573336613454588818568406618917664490317230866775301810862711295271656570269773941014505384984979429246112137047203873072671570064533562633418657200995944898096227469516164077472563169640071906168988938619434175381063910462315285634227008029221868844934427344456521324376664391793238054510295334558583050709552960485244513237812788667883743780369047717878493097590202895915340628769487478993938193110018866730081653766152909892186764281423484146838090066837321662174992539614042779950259280268513666067706623310668684823309073740769657381809086034498909416672503305128432407968104849552583163591341555374395068884294423717691406719830875790589315329497659242980378751123021843159120495941079368905379249317510831807815014405846493585689796617622714128578509152827569354093751495198708043051740545317362992948902535215357511263034354000921535482031419805015029163935814493075494944092454701104523462060903735654412524023247556528156327774995859665310287663300271524522891278352517500721547904784801420122914888515543075425797001851506914653543854113267024620907849165444525705348857067575469043261281242160550007122889018694461069777114098965880139568653176459225740326532763836201340888871724913793890267647151987892807557620299200174351989352145983379257316399286085543727009772476501973112477208081698485386333014716950226650337170604015492427344551831503193698207931881334154796761454017159600404671878621048416840800734619436971422791759482887298700257581774775806522326321550476689400332148443535158509272080419122943751553780821588768081112965126699614204833233421921631998713350681264472859304353506092761374728264982443688242248987387655570541482839624687458378462953954023790238718620332077076877863416270155768885220285330211483998399948101579273903208034381793383463405878699230016163189140386922381232675982320400959153449477627072906291488974330694574647725198265905186011067199361215404077184704355858862292661592923350808861955925479657041553661523245705053694894637202374120827551792204130660895326801128274275687668752628453271171139613645171175144119256570309352431809256308013993922256248741880505542155280601384339003697767560321449787434600146894807701139132670494385098931933147243614005694579080234482931383356829438750227112264834261326405110651280876695479731095816336881565917468385382993814109295860605637853702665949633651981380057434760584397721496699624060791305319241775181492691041448439519262080689032742100729072647880741959513286124170798039671306994788826403059403553286653387749004830395818191392999819371291421622250963371750618191042898644232900971703524599805593676758961624362195001862863035848401559694879089122453348964676337916213948101277629254775464158168969844435762356047558931364535251591801940679762111492410593081685479794272443240635671524417836627366312039609405854988578057006504175584078390215873289722878852706462123377369576262577248975742637820256281568420736331400935955807049468354011737044186349311626302003861501216298162232488812334441728859453974714869688804258899541219397876211572585189491962193811196788497824291041190821463736206983444560421373214183279926008298793323343876347482506238526611833449543394349240087380703833172802720783283891243515400588877465518524973212177312122582646948787988865751808697221624213290658904650253639720033278055543981163849137056492677640485110186868322899316287013311501071438065137629115441538718995700517772424511577004923971996620604373119919469656367259648588576941531719239107282270908290820575497563088811691495717327229690005256921865745836904220533198090634001058038580630795516402526057475302327163667438206529606723510118059902359113956421751677244556961868846147114675907801052486390235080254466290437738812617649273564341645737409262950847742942928064198531432248239709790129558772124431891149972862942953636436986909253644583115930732323265320756323811169497078141951507727952529957095410440599665523019308953330821681709285753412808926671839390539528591846215893999760735737078210031830647628220594210370503864924557712308253425811989002676529726068789296166201748565977671970633205644738598139078153278440133009492299227080552562051189279903495850971458129712399142084572555621696535006222507671052557529552728487118959500738939190780001566246508409093482879366636318223856376957728251484225213043594768093474819736777650921504696789915531832521843933087399844336648743146500338431125539055842380123322289524150728461337863329526328332238710489586731703935695659352815869481191357386973250603946283920320270646492208999888892728664883308628194732333384283427408154499321793243618098170373701964501584809198892884897681552700343403811694244409831818612513740962989811735001494100675536297417563711871053931215059593477125859073589746868632646806901513935199235706177212932742439290274181076809133169205766190735511584100828910882639263572065773860808169775714387309999982191995199273032894322295566811904481240834137744667914579783895868217105007437745373148684538103770216827592018665269605570333701486435284259867173027272919516745637896654895647984140582121298288076446757007799446455882618553258609677044051947504263690272544956525478227715596663989621607390394172583826419312460327286790812150752895013190296142361669261807976910003930580833394098099935693496541919946895391128959871405300357459504443027382472370379962394222617312242734718258883669312320397827889861687983943589180600448389854725395819983516310079431184602561464379112225076089211671016794691032275058654346034110854166336317107597435110415844485385787736514621816589515858128881541641057968838860806574311628440086670178717474756950587593122355860503359385392716285060260443084525163967380395074227050723668878257305799126548899061747457787482014147699757877927226383956566758135883449077041366113960857718215666302194078979453031836457493497362961924964744255797776794560512618292270549933059458344390191817483108049758738709672670059597217528207981034451700085507803771135538438999776584845027953037995250208591454267510842277549236803369318592745352505353486095650615219466688268405057868921062616073896533401162473449238915458877983809604726232195028961127604710099180606718596211492556424292806863449402531248120484906050280339369583384025203726699134429020074103902129902599061843491300663022498738193467959428495338387077199287718572694241080590065808281021180931609459955395626281972687590315267039270825943288392524718772559204727614849925827867201202873275587426137219661456779811905732946934470230086813551503366103114620705497656827834851587307942752591466068830474097961167876006479391603713837968025996359082837580960969894260372269636493300475524798080100552200966023349312832476458784385114890056579973580233164536974033537446151583857679960975993564530728069144734353306633213447780330604690064554083993858515598471423220205388940188247507541928904669906104261165661152727925833313175612456684849997977938498686796531772329146343653584548858396046267281032797372536801541854393031605330755506887001223670041765209067802182189502938861475551845200501147227529646855559464339912616850779673802401649360663315747478552112978188479752928182835126516896292919102943979089336998644078454687224769862926757885240049190761661638664269036395864179815919323869493249650980501634284466553710258193739042555799381783162076149262900207965403228626771839297121583225793536726098991942169300428993762758296280305597459480109188117472912195068594636738903221549043181604497525451632073399476621251458724982510883121021050956419966125972508708553459406710918143514466412797545883697278479555489440150617004505512464692607239666177653521337106964301877624631458942753833794368578651625180651016327540425357272703757433801924062120045231784051086922156860731473322198336368269931264539194260228708545611008321550822151902250489406879111876480625049825954912673760366727936391937348141480941649528737928121524923916305112377904017895795571014631535962361714036098204670673787262590323128759290457804582769903597415500638946926290719992847289526917689560201258232276034757521740175410965672431883197036263749596425891474993720568747449645681442729049856121295946173486950614025028082177939988123587099022067314711238752738843371815503108024497131749223552039990723503672327785404146849362032524464057955628069747156871940344696812690449310247208896546430739896457010643806669494018420569683457436147288410274557434101927411857679054679048953173741892664151237649414837209970901481241157861452879615857339274055635616790679545419405584040109279417132829262637421195747689578459581537165673347990947921685768831403696622624935475736115391835416640480543872097114237139791223731573697059698635484116617602249865364090427820605455458307024793854093009367848169686167848896689479957513617853144677194376294558081576337324249360887802900907367718016742674038802357593184841222817059208744414139915015946673442643631424194527002893974349202636839691859031991356434740895426158981615117160459429858601072599592148440501833916505297735211057481855686262770143212976319080135787336826375706205295264626485861539237836033517952320899891882993204666036720381862839591018588402319935058725897083982563321328726884530176310374221693261508623647038216863826525833671660858410525588511335618685457779466243090664714262462643490621017284717131921212264083479670669300375218181185588137677873662418161356804612525933734330203736016239573677011335424723489384762862960779265576653554017176421651179138252697335919178616011340381738188135879630599132750928684161278351674888650739974089337337293753736212000391482303509833523256564744140861501030674190329217299122814952528940229925300927553965055799986829577301447602851783571056246998935543548265769560211247172183532185207417454741207621774820643096398704789351059927567506438965756776237485229226631649162538612225948807015922864813683937230594939169524178604375154366166275359943779796736130699052759744500373479016633718481789126037080319634308406974996324399369817522657925364781921416843573885178918745283904759072856205406866119539580966621800044238189367963600339279078737660435955742757151497997424203514672975529067272591948016558298682984147142531364194458620023878645014916257478148690880551008744139643616432514042540704704147239362614508095121651258042500022949959478612148764593506055079348866157456808608357591384510013281942596338926559438433121132988516777792902088228921602534982327569738154833957250500165617914413375147315677404380611832736907490190037951824630967943362922872385885928235817705690774177307796845846375899255266495889930064261625725321187878166203794936174653211755060825337193600204822347572907026358104424936822215295413827300252660732256332544590588838819081134124518544329539491532310010760238316099775206702707107952423094640954399517820343222446645714159922566732415552437723323502204805417314455462249336857672255851606808548956162961648205506369172239972109963596975562862013816951293176066324015112114978031788143250644409421718618268602388171947403988203655535763768868650223350588794869923820268755677071259576972251460868207234685097423395190387115262217925058937363154784801277931769652941401209043168420373780933001435636566638908961859646269538985199886244960032261082540495459529619771197023811629992025908650288865697078792807192844696446909894929498274204446753723728396837871590663404124999771588091645411021102361594721043198085345089002924245923695598645526031773840538465675853548850947614740761837622356780463712874363943317397346574729772221744182592272375611670359054643710512306581079912603009985988949180003536072287551314715399907134449262337841565334860445092833133041083175138599096673107355999383832457928034515730002579104535416232063459531698005272232485698642477050820253635709782150843235728101199277026472982491353817180588300484532747400694978993613096559248564840989732048605720960475053093853661472589352945678307559905470599417423719073854321254947090135138473310576052818000417494341916315463594258387060256969424987118193032546018058525926812749243396268186458682796235020311142430727357584365476224965187344814651690828302334465119739086423336428575258442775654609763746746637748747269954533430275355513456341453191965222494476987094631265887690004419093683483458408834702092694380066892761409436004592459127679971558424216180941271026523930479287256761454144714320433007277464071659522561435748574047579246141464791682081544890099042207451111416260585930113211143257151019230485276909861881795898142403566629860194949217298211196563133167562567538964646627581226442051342901712484048193644999604811606472087572541895979224493865249754466210057053697990393680794084844343703703449716333150851490486017193107766283815281098699510077549020821217534305098823727356525153067732457407432193709084487485823054982652502278959007868164572940389243256558726670817427094706798235617211563015744243010825158077378187546307358884072070106226752677724916355603090429030002361663414876004786464142623788907288842034749247661245492065923941563937314197340697535003801699057276320825560575155739633487676706167597159570153660287275112783501187845254107934223125329515744066865660436471840276996534341038028941427961581482080158213148018936610117572016405579953138000005268775922195279430891286441410915688235604066073266882635478462562824137308453304198700264770863863986536162193477777006884953713914710275268527124465852052291130457367386009115718176869054043913048898448193068645708551112441600650463746558088967737285941657718239976497189640900146197827390032175448472216679563390516945605340518894668589019745715941839678900836824928717679168069003903799081713019338652044171174560870221614486335552061754079472096059871344642563184861709235867298028802279785787007654077295609579869177178907024629554337171748881694191413968336470480155224860868212247303914481174651224210717330161295552252433932769576045459219130291859694625507837427062409037506132512536892654120709706715503604196899832742877415670739803754680248436232473197534609568906060053601644739171895045970428045556448581162980596061933075322738297475936492061374074026634219298092182497912843796378421945571658485894533034586469149831465552140417724398536989982925883660758727131780867474548658787707757778565719698979575943622804408386830085961098995117298156544041530575659073884254251874427083185563666070818849532859585200563678222159595303482781428863615332388626210923850616020563386858621217622194272729435495024028936338670694816305998383437349183660771773871883940732652896160195828622093983755410894127404032834733262836578734639858272205964844377140174782377558948391212133174310005500060390714070243248338612973359859809224475481406554053453916989144446161581058299305012091958070392204624728382254075063516796467547936702338821885368364683136157198934557887307164587717502062767353369071233626034815695891640313851374621487849364920044129283694129065617760825876689646495758535095782661067987731946982218451681739666086073438008325709141813965719651621925463618494185171335855104281105238890095715445716086915309562212058602012566526854249575560291480633999933861977353376081750608658638864491062253577450646083230787162161408702569509909447952020306304678865646315927053674820797784832170249304964696557185100405540079903736251021790109549571240873804691448650581336597864099350876893543075452405169783590422434323660919698995039821935807196892858088218484058184507750554923942676065998134988215346940449016408949354042988416257291356536555963834225639552053040143894787632073726128385557032613100833699560239118335966545503949147642753435820707573442452289556716371286831762887454483960647243892140357477255925786414942987127346648196546921673543647791599534453896744588383057659247776728589921846098041202156633139050900076750854454588456447569679378042648438275997405760649677807764983356276519581058342881020443432504770029935901203983232167938081818853824364401372142047531576312336997510104924034963396789754242261333939238503727031923971079476830249256166968789351639235457275337823155996340820122914347022964301009150332994192591613997292416317178467310015586447032705170521951266643117686696877565767746873734121659131411764175311929431673968239028364304359330702082394033071851398383162932523657204398035960108881950226605447979179022109061148113787145494284079380650403827706974364082879541144805255414095981799987809214695050180213124125315196300433498383411148963159168722065275564415907010163799353088572634673758327943521560933555768649220458692647665940158074557177112644877931876001186112313650439064322304982761059423680045211948272933777344372563207438721103339774670094833243381137534177225578960819226160478203752913770642069193379099264260366472018954004503612749446651657841586171991286431765577555204818673605233260504192504436928480163910780065420408494927886259138887631913862744322056184514353975412099409633924732890086678779396486461628029875178107318620118849382647896486586621360889690301367556868135510610094921840867019082757343716741986715708361630249213191870217413054760728685188164748679883790814803360044391895854235252281165832973985427656153533864359412140720755533349288746028718116628115437130527676655463669017018462043744162629064414983141660500817394908957995220889259686410145853102238208161535263916858037203801450704663277773127255678575821715174977729711294477560656042975218296989676509630721127364796786981096912155739986539703536474586934091666750881027790568643227107930893442503270099230010216162050416214283727429734732016269455597533987086964196635682113613326738825709795547258808770484718176349680474936296398992934534415534448921262986290097917013324881075248983595024138305325723214154401052494327122659106103009240919506212181204553851780064962428113707291031984387466292167086775677887767891069249531457067436275824876002275428132678524754941976686707900527092840374242999316632166926902455345948853727350287295208019025695328904776746509389150421495328437642661832551674124208809790289263064691667289590898633711572183663722868592738639806362573852751833932632116917417848973200532702407308812059909530970083130237653123809016543922869272968788281211458720747742042723742799528774386800652307830885649580014834852711259144209813592838866425510886764258074433007943124254075562221612987140155418861297073742644084034039341011361249512065559266925184195668503818353267313693548578468712705241759682273168064009114443017419480492166146629684421323348649572688350373579133706314695846682444483922251248726414551116030826820230156341504237781535812691383133281906304229000187440018039317449352909755882701041077136852740507718240329330238661776408140573358476746897550561543880553855206912051610439725800490889507378547240900822756950892589034865892666001684342468941476536074648627633081593019461815091003889809313127251398336784140103366156135365451800979552364507201164848509745866432374440420957433127529982598377767903359850685466041284824043020019285022533237866342262688905866242814006866535090641777385420185431338922855012626537603932664522948621263078546094545681450125437021042573923202672776401917294340695511790943694109440883950923276085102658693045854441817443551332662491792396047462565980048710011346615879021915309798518217190776393113543994216133463982543022844327332525882676907972971821286143368570168210211594895375064609919857678413437901738352934556856057396057242001263308657538122579382277982867136864497549156324164675666137918398085060065328262807514961915416466604304739565467300345952638601483217731340769580163981188307416594724813148681921634165471561835241337456206639056722346248251048940420720274084782924395367998243167972760831371012613614856203491085088196474675248044874827734086885389818152194915991468658338981337713557830256648399432718454310065826424665964253138990654169234903506585995264991092385583691339595883139535583043724823860462004655284761266027511372463030053285293564303498916439150502116797201989244388119204479403119010000818117808021982583013188039808335414801127337274688911175200343026061733087132567215550921734619165996433992572694618666882879887728096256329704915798011766120837647246140915199721850996892977914898643247766843709352569641103593515116108533347619281440539750629403159284714254486351057956165925376031280012650067988858150395941123285519949651879183041223972492915091425779777160555562411549093166751286600042157816934559269995175435466069795044818739536294895740344806539533142563947879253764165074724227430909434965025212458330201493128197062794810541492970497558657529539033901919107450574444468723706834333056326019770890058866519771055003696965847846183870484207283081345815364234232775197680019029903507205087213315314459567253084533495940246339897295399321100755570930402068311330503941377232686548456653862632864476251483266965444528471605861814784254045719860254559384375553340115609091833726503620597831507064648366318734278830395361501818825769021895634096023469127716492803681020925674734753600403951382451471576979298978655016149318807438388218657438626400049150643733222660408583940253104508678313286988928392405343755860276609051343879122617892415607879019688568276926794985398916076629696213147523916439213847531838470781288927733100318167448837259205226466758442480324539862193797155481271117466265607691218492187182025698675941296202310707814248805460523217335371883495960648296163137923154360370121138397041143642000446410049828119191820084836818383312303439188401843854507729915372578375930631643892156438730717775315944298215018713971076038144925283787206703876576201544520401546265942240548512171868604534419281643828058016079035682008650925881221600385481075493020095881772743556557899197266474888666310720026437859817057317291529582310509572529893566114795891565865098655627786392212144029321537199333435708120817835222950166785616254465850601406326493011147355692257159490590711654274496366090208649352008875714724212688444822772284367502661365136213977986732038860487590868412391149636469917960205860308258153326737915401785793530967677068168628740401343013709761145118104396027653260641601897199669681357446853433920272237242785370840268126819148213184674566063359433262220229032136893852536212952023574765629602436519201743721290547347572179395609969514933172086535258760185563502763735199835561454507717903572240991221473209808701223350299210959409823914052911926733569813130891718857343795313464195285727575112673595886431249083660956599860448802375616494503200430802511430339328429458492239773983197208233272874871566893478828821686785338117668982419743685982124060341835068892730292254407291277290181415736599001069462833538232685835718988206892227680717345627149715918578221795176013098711585116791904691507614397140606590328511108921938138420855093596451963232343276444912995786765884179028823590697478062139753874899734252853109006835788447756362041013459861644661505627041163940273617996339843822332449603308735443067738152885898051544348176813292983119994056443508441370061214980213778691247179220643270746715165224059328296838195795947513967249591676149573116697317942186678946039245130831814387618648598740645803788383369328882511161043794762421558756082369323522970692019731143148909942177430776911500105947004510340700139451309867303109804111166792941577153848998345266479148664256802073289416823418773456205303342000809534793252351637346845049785260045072987634921677227138751834664653518218018010328973904578098894154686221028914562041509576180764344365732723684365596132753734660908671451658932654185469885491854088221170622301685501264016149561349931552358788977181210999794510975345085824028108714741353355010959673013546631063580828122163550682114452114851342273594749563517747760514021681699218221564222458347711201238761026774706855976136673667894218394793659262267362533852923549953120123993698878078128293445914586646402440835634460667272739560728886600357334610327327481687006433836051428752872038659505560641139676952433247716221601938090092215648523959729461083812247085104189346872434841384188752884237310611160441630596290485438282026491861299125927458851948032727925790993616508615761373777608613219443756746293300642713674614941743721874244719298903228560635834755462374031867113450182502053305016660308230868190767130766976501484357457885402315826438099915916781518060018023496523101732504758794048706052063468274142452030062390622764983105898804710205033719653498607013910657913838168302356354017100788932605636540323753707568526600748154908905896670547288424416989917680498030976510359166413624838581998505384304682303084484271896579523706428051730457950642174657621806625957583590032258875824194932815195148590315667302757568623044722995263567671521537917392309624307323393156905542855029244672905698933544426699874845062739220665004607575805684581307506235972530831194366373583673214013291281084580546704202917308506569350919412905258400677282023804430848879627554525748683827315564113714967701925527629329911251373844419467464510861327738906074753471762069166279529174108454495169009434249741615232599597359710755642111619793164527198515967795164572773543749899764460154393165325384604665740772696302508447617877719973686574102525781829547911703777921846012738806056357921438476085907753252553175919465897630157398699684208319598544883704174275297910629199149650884455263187312039694657955821975275388805151439227783008738314508209500415291707308806823396685599513101917255569277176707342569448282519308240322785451810039404972073487564366350914686727592469837992877758399304635831936090388861250263342733481302806037365766883860452477905178923354923430640885101504251723185747253715318598236342668800843986835525501460288916618111449519242406986730432579471025646998787754297361873288863751232673881808434416963337917697871511909238865235455696441536726557664664374940719109479066552122393917485666356167431661937886639915570653101738714011204532779445922087636519325953826413807701668650890985905775539894994042014076819810504086896882526803201463281560936418371105695474572972493529611226487392365116892695868239017389980938795371085721202077203812558660144726949257919113372174075101228245735835045156107295033062241881241842046616187584082495065099921937203256469791843953817198597134473496128056962786798161966313377269787131404514262485686601189279929519417590098159036457051264306878690178901142108107764398559518955433675495071154073224393118293242930673669708261213139771070240798919516243372376122435942471208005699107881986551871016302592363464772251986462422316450390630127347552340249544084510367369924510956682975937983529503269124989485366585395974883991627440656861868594333594954215057615259278529748755965853817592322259723883054283490971359970323739859056352462401291760933020086427697760690893889861959028023649423878194467460492123825709041678508822275336759093220102186336709063502039030481712851323432230971155964149932968570789482038277114243495882788858229826673744079692401224999914663501126684435410971303498597747280269304907605228090178860586788297410463919587626424342415434351462813800431777644019991340494828764968298641835768462382660702921024608308040035913365183987991083382988153101364423752153481203908060537305239052316454561670669049191778821252216140466163535679403104899751389310853203784024323594405722829393216142281552220390006429842037956385844197564370462505415039651166664086085538241850260370962921136545877889592200705410149593867643431456787758043711134241020673257364929091082275107752479415222583681304905760982870752577510296137155103942462555106522907412049390484236843780855170798546947675585428791326857983412745055185143324128397454647250891714002424428245600612635559876306501178363557702740424296024465670779843726857533094277710282779931452151383619828575033089554637407252399855910363712967197154437846597814390649863533676022755890242767879605455958894802473632008061389065287961632872361503854459786058032732752884498326655119689082202303903792338784923997632981521154751152846317895337571293320863733123505754210909265246157962263652086403346478831579310419832542386736142560707104859935465756966831093714397346454327847336132611918047765431461034008330284837668911604303872289967271705962401860944736942699072531803464909614273955266883621570580221109450681893312893650079765336140946804174520930550244607406356802642947474550893930199745698651279047589225628294758070483036943251062372698292268532184964713992830552100561452323562267108511390728473527477680355963344688322014620007403322997879022858865673130571657080335866693995047478442166629183849373655625472594879152084185504845950470235529633381990315310124565168407443644420481908393165352263548621817966776971976964998293428326772732293075446164744080076515420284646632453050423336775772283446781460595793550894177911237463687544933767155579714988735434674508717702812745481957494019943667821157281625032729573704168320652198077291954684342506221578684943720289392550845247097207663121946893917108004010787733529130409064908142644499207090514102898576809675813483175342540840676198549485201063089027554665337124666328187451858261502835070704231248492006007872246082296829051174229369601034673416049067842737263967139614297901403187678393148300318262003420728025182930673981522754258031174908058383818289624477857093045542408726283382743536922423224003915710924705095601212896954491248031911636020109383274248698985743758193946192137225994039681891974617253130471395909951218604415404248934480786429491500443358381892706392289138480061661491064809041957786850504515124629674286523364730675198009825593028096227178715310564581450916793876641816352413087452274226429923350757062999124890586894237748582247323933148265869783459227385077442384962602257916755314843630296913532566331524981416431304421125950800995043746256435153955101749699676415986101297570243338966622117143772790849205451640721549500820192287779327040799815520742341480879304038667144185406196632443714102732728665675961595302511821028284935474943521308893600666736881198576110276439111108950163799279723035622927687741125294745953959496736979485381047665662724458163748509306516509665972150925252774583697084973998018953871130443819392081039519348684751846874763823136289182535850634839094078552189389265614637701135310286234336046041590307578196843056086202449083249730393169956885140340623748543120177213905980101479280567891495869541260990877915479999741598251014948360185277720409412721240385653666836073994528594530696385327887071837223598564803156969875468224243603330043894639394082600876628837952771642397878658487810345837520878962714183403028091873160128168917652791959347980391322573260463135825744865117119905956551299217230539474218003269328122326399909036810913438386420667430941534324523910442520981635280250724061941782024528506610484186909815741939955992248186053673290582047996621723065907164570390778764418071473142372433437329001036949259726754109222126073735972361060744797905932838807154589214517623323173425335635251570373688845453833710381883510767105070999525726725030426052050069450884660158452228770670751141669041466953419357583737963131552328257343566457125089997131686710146579039182814020389272512420777105896031841126703915388976283547581276776463800344095331989941674466782951341497570144302528235302183899411079684208305746803446204886477638696474034420895787861207083317002947353888206594747318769044520408727220429112784133260462380312340913732846093009926714104106172989183391005909817093852084666593626082129702184930356663353820545051977610567752473303978777616330486435097207466009811414848613651201755955313911454835369083459258569736674202974479379692205749350223895474100306498403154052525725559867022912792121862749385589645158837471597541112391057687728440266308635136042137703015088568149474170859073962769939224059093745549912868673787633490254562540368407515768558122429926240573275628293774443192301874896331032200305515787155794982268207936292587700094492897943128426577371235502609602810931213912848486745306752385069354591117860690024749525835057768393518606201127681038826112687987710813156323757216519739605909461335341766546890533070601583899806363875621178044721814207339866492835002591510492177259802989187018773851609642418026227367732986394053086492459512680250440858089341372767622331295648620547793956179431182774123189395926810513349806865926611469453575542856551030774817334139793782350169613016082688956106006723564716761150773135453674774389113914550652454918144293715383755681173080447900021561801431530943832706907970737387895973615397328803268742956740097589528201826788499574488596241033800168065694867256196878110565994080892479259222942880843297034811945863562402896544115523399727441908023946183757629228508462246059980304829437152912239445054392867750073148993832574625668363121588394499872408008054846059859230735055389259810345959438203985113099964642128897099809424145153723620149530533583199168138179411794562874636251507733363624310327755971793164769526969349322145137930521279678097250700349819700744600047342715645457379812155903055997461333418540017132078640834708597971737605880261624789723797446775654215014358983119606200525749662852293714127706323073468980284933268076881463934150772511588364467045603465490368559601397688505578055438559545819161330583961275828994552059747654358294783211963488523369149439972456036515118527862311151016193702065507018555020166241318275143479394574576409461110479410378434098886911582195563859119297104748652949137343959959482461436452087620494658910186402922408424502758420104977566746638508743762408923668240522475035371619898777573634143447905988073944764555672503227755703202653555500248631224088608955084036475066394118946773236788232329879213889836164117959013365472781820184572930370690243840193951765048812069705902326368332338064967476970504572049744649281556061794835376392458991345420301594452787099031672908533342379169323474219332415747479753775066240841784169598460049956228449234614923210015250731729917214122077629442328576117285211955166826919489337329756286080985599373792177538352594121397239856578703053299879353369137120064449081186526053322714631003079432200017789690284461793476241027902533740495383569895967861586177743431050217770356607512861737472279395124534153086619349433987318640696786414193589710366654029124138426134867702026101428144283617902570808399013300156428428693259046859830507393629637230199669002241389086425851015086497249095525255522798869657887263581208228811731263852726269415966082763338414785408752458058605748938987418411126681974738114561362396926348992462893603027249991007927456631584606715174092144690440443557528898419993403439092325423881737719108823619475120722899417195070690849924422227224733243052321586759338591615026162845502750654305422696640963691318575119757197939835404047735367920129975535575039888313483175244494882719040096786117274961684422649630694986810716127658878398632420479419967231497478723050752532198000024767892386727493158745787173038461394213722745926097221881373871788786779533679778727661325437131968472230473506086119978475983588315885877825680098619839815535609377658550952986310962988646855357226548098348944567476374028917968151361051761359230621584868482739454012825453212754373319481533980164619634158746930614235010364446163347956034260752668805432943104000666239127472462977477800965443153836272853717404209699315244851413694782807414330293513937231073101035069662891240757856895995922475145964365695476596425388144579835388464031829117637801523294001459727172186017640771155266080889527377475797175811034557483336575696665756252106739387282973269941301226597411656579021923321157689609537523912082942655608517588459776742939718689328771132861713313310933451905078332095018922966959711307326951976557153222333981310427472579828785549386612857206304107010738761780385057083101466975012101865877569149353449211860857270317839233991059468021056805829213777894542593210457145878905546004879697839288761659257243530310359516587321892298258864346026168281245425697165329803379849623912378867719781928216177866447655558411048779661937824941577718875832393896390793497060492297842398273845541761306637815645137836414916722507054014161380449734917039485538118092815986155222708999824259297491947896148294513709912273030294712167961460377820671433949938808146245044715134546324501100084739483167150651720695575843333220694536619782829176026542546467234568461118121731967779323679544282999790183847422338242090398757902382663913484037382917761185802938971770676937872109182585770075337981017882904087972550634583316348438759589793238435588988330581047937807197039848007040455675168539355101120014060304933045013579351272808904576799394513454446603917024363606147475294014667269155826829194330167277938781393761895684887940329059831197654040319872627408033288215936576292204628412786735697018472188317365575419562363741192708452593348152949695654209979679786895790545129974988097561106047898975382550643323816765812976017462523313062298638251828871297024634128197257182651401054527351624415981788319768523198001957991358543125446777795968764848216042830707771006283634027744202442734630156458576542157973594145976933731560399900102473695926631098214916256250940433888574690476673744745489768273508322860954466061485739929788679785876019312437121393480320544812511965209520207741420515739817856050670119685657882139750436348785940529428167200366735537630853629161178155542905069684916046444116002490115515793092923440336077645884574924215632677385742080074901822656447539347545120587217676936921669580146662279707829216195576319843055449824578118365523117103874207297167080770357457057536962891872583013393844818400624283227325293300318073357288823989463514087955889879428187587478539172529714535886327906690419613925377770738871197026579645511169957006730856781017601295525703350894079596531860775930170369471135168748356373550871885223019597365473940978544748309717806280510069796815684556075229585017865163221638202710689993971592119476389506899261944651441202506682140541167993824053931361248755183677478899121470719938044761805486766825863220264366592895014710986200484072050507438610037542975112205794959425716364516761437659807975773984850729877878203195484707835047939022019967686199595893959081285382535071710221556535759400918718837759960470056447826588895900353637297293702771258770301807489096309051488026699361094515607216245220606818613880672962882635167303401542399241072336582212834471445552802501414937730080846614501075416058064770154528019166824455150718842511969736113676010639124386396330807527521178813615636994960018815527431551522529592312166024269588830467682463341322035829355655746788105793680650209881711456254974417729744727632958256934385450378630000449432023068562709943532507525072395829647353644084415346537826689303251645924812485924881062624300194669087526285408975178749987543852870278639257454900267793463235173066746284538520857803209230915622733274095804038239778443342205064924321940299421562117040170500165304630628666891916016669380586185668185436593423392318802597526263724455219466176355696662788611590628620637852328296453862471352602520464326182051994975722899062091093358649510061539346927165647769439455389334965428548259532129157288061746453308105871962053406187215401046682769052656200826758863827925397482521336109056243347873651295429698919500540748876008767264984952992117074173266968435544689552589282873777576553843430517213807326124914710697771494423084499943280245101342937139294527610706572348553660499220580629552077505702075321551263380143554330952958165933400912486348272062798362269789420257169891629333835013777838697039647560215588664630351676961255081748572635507032049323678342153027060229345505023134164525532679934321091328053695542825094011955950563518121677274122437922149230883981674353412168262629045647243547404557551211735029447871299842371004966659185028208772774639957592622698795502112385086050650020593436761802763776060121218137274796501090788356380024432964818004702719368252913437288138599455555063130908979182539034022068117862644101689683427384187674665549003959733485462991670196051911055418163370276711393525480052333461032390075354959177886236945013470365200462768054017251114004449572678325646223603893482684273720847379725364331482655359889440802283130878987590303501701295880725289990495171155273621402485922939533067028470784420670059416150601304434574434800115286187502255182618572450197580474061115443360093378504184149995756725134670690712062118835836257777967656632358667562134301921303787940380465812149655157220902117930760613465666062304980278880452506921782188435905847222917179959827711024457747993950115127330960852906151346116054431389236350666222847536890920764214523331831934428201912143898538016080834564094904604767804139824348819197491670643816366201121941439277914382107986972620897326247069418294256652125612930182774466760671610642495397981391842025584363787729013366776219426681349833828319832630520964705414719555969636493400897342003102219962092057812394171452581171623296418009901053194430775813162725468694075818379034598433831731048114087059010880153263524352943374091862621008001393421796650390052460399685824184280396639446336417094180930083141390306107157133323157179108311001885415111099546251238367622577731235909964062061545218035626221815939018864298311988343168084015923399579595856055204390960963192382878505157441424052683422831013979213959746613784496752271928067713709581664421187693353065237170030728598777088939473561692000386140471098515938206356439007040378255346232242061203752608505562731108271139085911079856493521133609381246777948799324413265474528043510154158496967844444756259696601857885306086676139472731774457160294967164024058886429581600963064390159665159758771487174509711559299580698528483942983127290392073798898934273117103202740595488636742991830850343984271652204065584610790043432579265754268413787636782107057128959750892221321815951709622362962975871647339308115396923708150858188313604241576080984559048909473968827575008934033151792529312080220993753037869469929888752275769752453075381184912314045010992076249888068471005586657309680864758155324384721509256663870707492345814304015528565593753339496585958005062192838619345645032903158812043465759603418582724485599437708779453828217156551340405458670785760822970565077993468483579557203203537817701297492776912565426839435444956350580179859644133936982754522408138891148884491365077608387036638578571623933590492837090909586590569350093788484109775887388957948737457193670274611402737392754230677893638227306806195992801912443788984898771020598980735702488303851365192253949393039996662963564904325246968584139606527209204651295823682053150292611882826652143511550460937390718545821291045134446099918262537161047510399254970661864236534298966299617417621951623886271466664610500455147299940148334124314431592548519587386821977526169478485655145639666879695018899986093710062054621445629913692199258838934599442479511720646596858314912438922900410737812030045266574959087537158798235005507652063147666772784681111224391899365050988560587199186859739467628272429866154552194478446073459508964736253111670956596633244723610150200606428179619363995231613674259389577545421097896509780481657726896817671697309413596869773021106471787401448572476351057255227009465555442562362258367957741364196746049084125993903016383207684602065725869154225074821108158508342310168140731955549159060516586049180138446924147276451707355535016205319372438081568795107235563420985821967599196296202951420954900369288950066920376471795507326257499229552952758957401958567387668875150848737948289800625262869852624143321417109761273473850340757733866825371399652417470150745907680005597320025359812209948397831371746631075357740944002759289270657788771681747624539678914828130517658749845344592585106699143815603374171924902719350398435797786275185014751451404872900512669340247005861801271341347885079503347374161245663607823998784437098906010921015158130943927351496911550732893028388140285150223146202857566701976937707201231022496973122510683986539504551658381733728992561449056391675993112064550819920938824627327976817889904897590179837445900709209655422140188738938105677467296016804401912773925540178501597708063777384233636889135679374263960693019498759574526712765653364863314377425949632715775703648943753765524702209766831357418844376561789940802934307899812398032511290377284759507100104844611132481409963981537947606025337517862208419058897764239819901817674851617504290461018061256504624951456757653498374967482976992073770153623781240991833836667745815408670831324664683790272464733529635788257190994781021004356915665449876287879479347559207191686914223472218637461538341448381318160879447774584079591026461730386259934805617386867065735083302728234077016560050073795078832544773716224683393564119014962392159199557585288196859585797180070845439630294770913458061500793121240447796893134946787693555699915406443135044332329350047477852308595258865002174976922648428577780976346088835515047382224990877268511304940584150544611746971719070477781536180128642544978849414792011038500703170798448109333323712447407440301850771449668808466525323566631938666053929522477459643721408321013002285241753369479699048973663184671204823825023973704825099846809607643834656966964507272175896670306462808127995348962528592452667411392618918890343922191276637500374196773602391456320573196600146695534370515267329208347152686503278723067777100972145517857037806558549922772868508604776038499493257739095850694586562309552253539354153627170757741032880887727190481911534340367208960344131847944416810727412309583023665288967464557364047041652204723811881120367448427750058382712569967770529081008489382557890522972084929851888862976032695293506482872381339818313718696234990161003946679080001856933115246039508551142133507657995341096404471563533239184187016938810507802878477025650909640576448182835733398940680184642939362656114230723797703541889376351629198390956386763913743137352337603106354464767997902920677873347572676509163235495686927502717205312552029091105323406312012262717474458661697261122442562895023681227097451593466854533485546704512010067623897330646368610438491995863367547481227848156782931076850823865425136009465518357059114291492697520735375762381382639369518133908173507091735788502774081507394979409890944164420781503177859784677022374963908146523897436014072697851496399715467179249451813792005645791071991768741290745541723599245554658559757533124695372443587788760388872505068733588310085005994440355128648409318475289492420931920502060856605578359538000622423657582745074235601699438595732015167106997723454634563019946274406942553415716231135893982450591500398596276535646146436042742288383876935300237212248572748469581200622223211983307553254571395214308292424870827504713049820995875983862876195949512774600287546192875681901410203118385506353332694791161767296053537109940939202244847911390055660275994655306793109523977241470811236867132793232632644940835404958030726874066288539374268430053117091274127432314728145096138492146999127494734770055834128264946360528140950644199821703791562568203482494340105005726909390172585501872860208569541229297198526492949272323267493459133821583364569704536630734378563151764270383360366139048076552201133700163363467473442306495011734272054203647777633389346002745793737288286637501220754126840124591437218886442818939019732592981748844631093738808477236783043155158453655940474819412632765717554967767232081604980789294810919460176054130325638075817332214018288299709253396316353982120050763442945861395944684346314340601198265476883461231593989285507424157925045694274527488896622518803020723855071813500688935452278369417259664541323330523126880143145831694421501072545779327779707369152268936344971439957245388369268285691058735778764188409650135908325957359329985513796863663788050601154640486033840199959386567455796087755615121926597983226922386569697287925380552826556664296010342258385597815231192210183852033377781917383940859387873057722330662552035691467364127860356226388568443596536081402998177550180840928106920938690308746524469870435303631755460857950375596134413735308070010581148315475314194946872624187933694315274902140831653492415909299589236428815348751035588973799360688721629415143420397087218409260615601705484324978702936179838548028832786807640055909277048448886030619338984236794509312182267221856824779483196326561548016974935927219010042704518750992565468973778180953907884569224707420229707804268158337595953080194860100474895498077795307615687520450117990502376853467213560333955870384509581530960075121996062615988903239853829403743163159207264240643400589079253273105101645148399375924737888282180387714929798792932444631280653477676218415777375625175212445985085202573293102895955031803398781625999812791655946421439831006225573165436835918437024019537096915786813300368885544524581145268848988208686174334314723803569834784943092862489497747916282591438185881869479173884224643896444630543194311709108587218203623159003293676833008819782851244188613734872470798416219468306769809989309768970702862845204537316112080090255745079353708718031773158613797525110845849119951510682376167691855564285079546807367536390040447087476826756508320884478491667738474654863756358669038610862216916537796912396417041396363195009509088475687870837403655508966153174619741299729693589147146565210329801284758293193478578139220732906713649679505637265080359517894981478125512133590816285836508795769296075791209874928367217194574104498032162359425177220427856051639354116548169072713072318500735087349118260583096465847249462411772286779856676208071319573568595545287933983627883515234821400492442365929507946514149909070783166187915146133360742718140645836638869389114538672269026483887404464050780358635894285060933405778652273177152421427795053757486676683041310702675539546530293389289976237049959732430447589199308734274270815281923791107591728207927015541027895723950717626174047913484091966212165592135413099908026255831256009041295407436324596380322018596387145432672232297685373780357220922762273548388551844899198393335950995420953338994395104069927926388632470496260174591406444193776121773275737381538574600999490626376046057523198799865670315583028458704147469619804544534829508817906317724190000327282478346151657449599603388982560506898421536390829350502172625722367069616466593018444568241216713398250852917866791408493408714193421097568028547323252725518628791416491458593854869920916344985884131908577633520079771756777393954922022572432744884267356547508719691401511591191471299082781292272674663216105771518339334645201694206237512481691453504901262505964619794737011386371493820937674948365487331081927441934486834161484757782100586872274718995200266879296923324640766240935795161631369285192306329288600994534603738500090284471618685963516445356781017454099771544785616554461619658784156656395578218788535522092224415445435974693093338372526916695904538020026352397724847284739376575893593013590454243562384637207790162857126632901455857382672969756285515437113726974996369793759378916581100296606119935899501319161517140105205846824318114498417256938136850100279247827136211079352918982833374933625117050636017956200722760360754548348625687244809401279074671912111170083323965011799337138127459518098224695468088488610028852048335959773657204993091638644308708551886183272143742910824159402631914368824395378735766400042750780818313997293441599585153190941197736682071520299317230126039939049557703535959465459403777895132904199963144777580692652379023661299414676406854352556782661565965403883494879831455267552592243671690037746068760317354814031645267134443995437663020521901831312544950481881457707420136994611339215081661266316169175594951653039116393579019520968257461244491100473723383352460040220699486981118878747607847592018758915239953913046232390894074136519134559694528009558342791025750632143300133688367328630709066608840362098784408261311214091675882817671379485543513680529934874674556162149765451132839856530496445588190551103573744347802595798827167174094550087636479685591406621994589764999731873373222630454273529364346169777566317589408433104728021498573496000759031834258247733175592791850284357046153665606288688710374125492511639987306424591415915196120535857254790488170921314567207218746650027280623321129031245428003476509494993052783404558471875179595205933269755655891189474727613584607078534058769891361953102801970906789028768878178932435343049377675087252254954936016419645114351049745319808519536983623130767224541755008532791427398666757158390097715474093737229506774817985183520161700994307453711369784170818844282348625645906320001211721206407107412188041688063732410525573505881783924606132582774514748600724567128882008253192558563267199369123182268743018799603816027414251028510154160385857113255402510042877006231579617792376625792792605129655772572479416559184450888299913877533625002217623176284570221311243624832179006621435984270341976510731325706308023583895417869098796134629352474324257399062398736521283513633344131999407903449282164520536390948435089514706363014265544404669386598964053809716032390778044649763631990708849677471934863996204226472174107064839186111499437786166274209315265514998313648197888186034499872352525953609626306454083458478393557511101684001857271770013156448632407861751966390591218568689288080946839814138124318825024023740128325584214842506271866688791905659460583587579883689521766923106910030191257705047771374991907427804368366192653315997437291317201945891942502151774829662572592013203279115926340101281232608912393639335393751161543458244222400366204117058225767247210999576944924083795254512243641146962383442157397033583715807181482963982013334984935430961262969403227582347590260320003116069060567203172211848313769524574171300645391714048342045295723992594934394028488786893834744377920408868034074204428340924673142826687925722170371554504913908095736111546723023938029239494301379415480843420779065976819582346431824267580930208546519768214918796833213149953424264157709110886602957537415539364852426066202256460896349526605724226324294287753830951646084366390439998879525142345952014190403372846680469631695118841234514340007494659375550275501049666361540993821240409526634746376794833486512263221669037553502263269427403358130512374015400843533399238144282076728121736581231159503775587637560546642417768071798147888452636228778325631054011463426159864890187777409392439211835650633699922120822696645409215212386996844302961238302725553361703676473791697269181599607869623693718538929345054743889497796518941876909770450024543614205168772010348923733422784878506641894255949485098109768624293829902760692468169578644150853335833893289831195902600721338996961762943070426807667361682955927066302183967856773317973064320898166186680121087437495002402631222603301803520298019538841328906019108258229304421079135633870898695455005526888498354705890744747385296820766416690661227218232239132299838580519188272753117271971891473014701463236037706722051922420546715521560919053938076301429064319680089182215456374678042039708632183044463743708500690792491790099206412415718920555820383508973820299042515701145378884326278022077085175583512302288967930895100375799022763242739544072518658586039468079995330626644858276559921050815853340730454010426448453900570150311712818648601982504976213596978768343444370100164273583312503011523928175101395246928352363020909976601690038858165852570089112646087037874612786517889275146074191510408472703661676148814632234285982248288161162812122671078467500421976940181641904576059608546389829475688670709509133593802763846458899504557144753602429163842615475752028201236415944948023348119969719316079811077967284389370054054007753639074304429945693079404545044464868943857186099957874427589622259101538704806031585415573499747613489268749996913532635491626513967204880695494772091786945587853346513421883854159869459256844892870083307762110591752855192334330180892550582935933370694899468113756135176848388941891851448238588286464762998081063015166164694746741879953748476696309233024759015968107888685899983900114380240861527594784789704762470221262398815301056711024052433518860860970743503120371089404810846025086443824016411788129762128732132690331989407191512942157264315527021842779824101484421710304720885583203193840913839282490417906458123697363131578532563479277556452300342603967487675864667783471240622793538855476532170034211258228648391031653688374613607339924309521566396657955220376027283333879150836797077611371178146481892453768087836676676803212667292296160066075878655935579050699547988578077880684622656163367315758636924349570666313852560935369833054531679022947388986853175197447608674757942692589462421138550183010282848610631135689495320948492173970285636441530059596331095680025674371186705397866955291980583036144065085901961416789710259855563773601633620858866537604316807011195240439048732019354535316851116338235511135533235715100162451878021924575741636172855118776658438522007932233980469854900756838221500105109547754059840590491462703263259076468788246991991455259449304744166356253604019181011694180592160105345185535586572839242484011453668463220461259736839080970417942774306413585871622739776296037615154316481602979537462863689239049494126218904687230220515313339835546868332840571027750652247778227499828918919036868020086472858150694085736888631442705881258225885610586724035770689350362977150948260190224604400821255307520693448598072066504611212123712160156372204125548452144806692384874086779890070159473428299616188349455003862220486310831693146120171337832738619529209626777975603309045571574120475630358374848820432054366676982455042570590710276609653767684223403811253577201966544534318751764158526339001273714149604521067405552682866407289697538137904665984106814084284212067886392997293607892503707977493295060556571245106508114453079818744451638555626801081181370366019514558393244495378115036642196257698257558376680546445157385467638991362958100876049736806829182959053765504269025864299420142456087003216048908203676287817506740197670501107166355865318220403774939175559155277887910783751534100310041772010947498804704937530426976807919696610292153051421419457348554466711374297803935892393780913716690817228484143069690472196678326558585574966455620011197250537687623671766401527324750254808034132763271268331716816325461971748094461584417561600199882731544062550492605187765589788098908225667883519388488586451734183925631296162463604997534008679867208022741188682632892790935969506234913969103357073048836629699533522989169394377653149933385131665323848884357259068697081477093713379177598725488494583933233338791642205322578635983974305315685213301883946337800346508441943563816854148533241149935175192563357998333173991874790236012804850922048846880137297243368733034572457210955801167140680719989368850324106405170858784846304387459450236839534030676195955236496383594591171172232224806759116007627612825877300032736408032354830248448050272156863538844830003688226566340682754725999088179776283688229299744463672052846414823616229625501755881629906714738773830809782666845326601062993527405474816140501487879109837306000845738851480693466544694752775121763625879228825396467519524975626831765815888089336271533859613303889924845731303401894607908575189841392817404821698231105336986517926969214084882925007462855693631404372169405257221467017120260391128794579582504950023791767011635919982082317599478111949642222970851368010040034004267924184609696588519002753833891363956064656443633264298142458748094715279216392729984403048505599134336880282683983049234994396289518148112692148387785100104321508620580261595387488746665617243807241059830525699058321069126075257677575724106472508859172694330532353557180474902809690351059665125920954693434969665547196946999670187796876985926006553323594326190857198246580526771467927170000111003476005302034371476488124723820576805202754429221228845435083547156567685770648319718428229721202072763156696745289338090163202495706931956040566915407873120255074118435139928553884572786804837736846497909093870018775589880904079681761282529222685828229473493439403554559242126652563350702357471326504695144648917200130527383645921942374432151581512466670259096642247558514293039279512467690466818818010500782504356127663037726356766745037377420916214018359210506210885062129406443132307024796190709751592552857099581231877247941521316939397440382184215410457766636670581424191342264467992024872873789711134590055421435224098986917726381389486168454881540359965269474740433176514442570312388112875129708173132248057740548913802997746315018364488953804191253470132534801864391164256735216812064027496660776225349400021943931507788334805861631455060739123648251456903854229932923855206174471421363144987721877160764413171600126618764659369909723200697018994713536743923869175321967200043548802768508475580845447799024068288338598052181047730039375351699737137095792888425815557457668949391270468870216381481906684503608849427011395008438731599502773326218108306409649972408352407675601166291560845768563172398797612239399443702325784893928685736550577892507478034632108834238133528690339136852905619014523180638670347494071921307363915748172273891511506024640144742093977955724250338047101674133174886554626051440780592179232226711133453253871135410367869953374517479538297670166617570849233385705208168850206265305252597581587960279669144900758048644065380179712275615166651849549446929713905935192392081455316989419181844180930360837569198413304754754211440860440242019024438324629109874237380802004850620410122121146033142791819276472702526756978647537456667518224532375923084531019050822155474001441928549206486017429396918257185755008219297342429602790252862714369816374852817905254971753835635917934956282198463885999654436413554934153208528693758386838758996208267687273474599759207294239920564951256631529921790299060377586591256538566027312321181166124834345756859472031165879583512898520242707396303507937792209568069941328797864160755934361980847022982796688097083324835986610935547046611682203202556011622507225551261586361843694324132753446480585491957237217383143651055764550557910889171319611415343247759877256210955524082903393628316515619387759049168586138402650151401412033794129160500683707567532750948082850666483202561071361707231584950948748881439656703477864221676792730904051017525013261039940446219311869378917941088861130916050364632916651054626987609117214266180996988077416941915436360235809821248654657393809081085830908948971488030679792403210393063630803717184472726907953979407439128247084783579895020287801249004479518510554446281319800681243881954204412936913453628863536300525009600984591912532966112587300224186072505100412276707474643028273451632109289014327048870254574630694605941188383190835596089338567978953773109257656603220403574824341148821730833917210904562415875523603526986943767939494954959997827221368788310980316467233813814964586187148648559357116537553953789897713979572444717558353220210714650797778485427215627508441172394615699976007474510045386501769450187660399100822635103960036861562881178251275252015883265814317725661200850784843758765453030177917087154962111439895673335653065571263225151376963950142826323943486227461510323685352101910675339490984926745977912883350112842851426666525232202978381816400413743747001087174802760195639679679559902930382174581488222068524019299953653502864686318629160900160859568583078840258713087453768641293296099191958537417385801842427537073123969631880706560482672149868987907906271130829958193790371217416765396925898261456839620049136272879962860187218307938927365534195079133900938122813180508978369344362255077040229492462919070457268692773798203462980197790427985965830679194441568893770877715854843317523470230763509692809461603613307804393380786639371650214162756200707816782663762941234804091483572456550619228332458642634410283148279298242420470133466794813549369154731177631970500888534384874926871980822348848453332345466631256227773905536416743789102616630316055653083259701144838940957723026051069735976180484443181509702810484723388205089960636377287098822544905535598495986773415511475948142203233190509830194717303991272742933635224735255364534184618753040019623125240232516724466328286252243613373778197352693322688910193715718367083779049866970940019756748679270458502375115012716804900490739925677516500314985258655878872933315234311388572857509793256101870586658053459804668640872104070706576807769026424226973602253775773448512074634512645001716238934438879783442644171769775940820588386878891178576740841969675878301404385601992425947746538895582933858965868620292600450164164115839569260357364740119252256580453754117254190913288429001500853423255192546560721227625982006524617569052994860886600372879768863558232558844032826441562781102575641789026704786375475005851449672304737415354676870141448911239545170430407699398710757148238169993063132302091700799904376970694468163852059631106643355450142841886862181314283277926761839857888753220505654809593357024757743140001073470431891332101593639600307035942968726447406510768302107633452466651383936948190917509893091102391008333736114583167906911459818170374079326823369248628990299732780374535451144665213994956825548714978023725904717805339257537741231423961428927331631486221213359147690885562213255243721295398025952663668062458081936107830628589901300075402443405533343008345867952051501908357414649911002971289037099216675249871978104192977086871188923211274751633666056960188069763863102948291663793369929402076248582698580222185476980991368330123939607049727276410610409666231809194852470120818906831984944263822817358081360786775170288952014498459021207207039275243565293667843179165210598683721847139081886697512847644949511012285167980282098241742145833735315422669902230289443158927271249647556880710962683818111288192356185383476081771970693514453257883009644400211878141811496254277868279544695053370347686592455120320121733387140735867030649936444963622906852465210769002785434671047879774652058020568583833814456329919181787581031750115877780808162407851434828449525185308450932065557390986286344773559753499005854959676409262488839179236181789779362225184095095172418354813238146685180063126818899480750807020750242548697319472671898245033856861087255695252040674837422028398028707992312957052778775725229808490255801976214576755554968978625412261615746801935731579620978406192134750837479052346798086503000861306106626047798203831488829090357647857496648858003557828946616098372191617758640904828590944399193337887857033420754841396775423909145087169298628044595738494516067113807336101865956870915862463439822214179810317597288678425047746850452356970752678399526451932368066406005596840735279416425052849737642820292774809910579541592864198946017084583607273235276722474627284396320076761324188637505556625548863884338906509666086754167942048979793033002911084198892318323846571406326018193373370608275427829974481963192390537399234961676652454062673246618207756073813706079873301843998916288725467301708936532876912466598145385852095181057366393922723726629342344223110270136111705298056529497668889424552789781285844214094501764825632820343100882330778773632181677109947008898799901989693539252864946495125738799693715102841910488139221699937820524638685554338754571958248109389432641058397140140274579198155477549656108717747861984827815479090036147604492330290157275074977605088717745121403441245029643173155915526536621415303832972667706049517123178198772514830433822027844317468197434198855897892563817525311478071343519364202469663977242484525306036025767991812859127014654476006860053586157945881668527755198026188047895554059212076399840129584805742055603852423096776148792333964998497783382472579095556654016970692164095111213324147251723964731199140358455765162530382435503158630729268672995993924066805805015922958511308339095710779338255574105535941589127814635654999005299401165529612562154127240229458507192539264695729766846325501487907605294803398288165018384362454799255810245340443264792352017044021658325392061577011653784475385964754946871093542126655735368354187228418758271029083036101192465282098118921307701813738975348361847820225475530710985331682493425131712059118529288226566295970978152251866792716206617043036591875593031896221148585709649189728499260840421191000169459052142106352764873887290370113743316632188517878109491092355409216119965537203920381812658978509373092612495374035977549912957330022618723512338946550559439622114604353850871015629594905983081291826626782991494058387307219199113118796266229852184602024386588996740984109249381035625418097242793793384762885883147582243564840125584949817942458313342491706165756464883649181821626207497689581168681456698818089601271673543395734031915963950234365563662053861752829286239534074059823114847000939617133258297996352709127837642303306356402307618561583109850970549670508038322686226627864225217175699669763179540990479696945751565540569673870409943154191212240421756639203472493425170505732013359675281391612728182934104239081097611663953757574568533215764642640320856189808725120512353016603618767786381256956721112172103596457193775368020265806308159274713905869821704017992453245986002355355211923741660682453237444643587615704654530926279538549921208993746170128477900846196731915945406881250584876459276001450930583923293185465343822238738906869376327226877428202164461962987691803550310794765514427953628766168803967456401525787071730747366527207314916315773336723367709543313930855833064632321165391117378473168177868286386170039051334465008087400787304767015102279113600575613459883475934765090984613815190451463319416976998946638078189260873513072738641913091024087639553284841965793292601705333414681700022223167133987283438782766416183748010537764003382199018238628424924536812136428916850138778685315284699442800543896597499549980921812897234924068049791139328303572191732067614546365321570783085381819080353909970004586865345049551433340453073748612242097914457283614991877325346919175832449254352552609062622096285605135500587756759067128163910982743992859813812417025960797198772013331751557102796290611359111922470266216287010849873523647521767478762696543580946296032296815567166487125605861304467759327283348406495976055032605026672417119015707974381585802467431667810635161416180235279541261124229351035299801612135175525774927342057444370292856352901930092463038390075211558376766463440661547959558703637361056554145714595769214213539970870620677082954457942762251537533961025022412147178689966338748699773836441010350709634200412166530970056197734734006345411930894271906162868986805213048717269425456836636215858045263270169558334031010549970544876430747826166086144792013542543378730748917562147998644883719334983389105329098018967809294519977061689422791539184389238242347885338529423475419969308167257387172847019407086312154899659786355902515930358309207976589177964321359702218809338254483058370418133687088299522667649264251858305599153875417829284900280913441076810407351944510569152028967884618477859695260136928188268568658557821057186455570668168626073416467700256341498650440335343774025088642193161066475665121940258878344787919489190165852890157457679322613276061716387174005246611727404106025397244670242290908828527975814101175401848811246082855826918296319132740754302344727742454507522940576391149753281412809082146989197857377367207107083663463134300970623864888496927419667501804871125534053282906663566707377614743488850692819133782262353166974870159122594523594652061214775284117896136807429438816075484869760316293623644643567780813439388458842011115444654072185816512192874382086241932974400875782045353803496433858913038094315532081099805858720068393647611513744401476284106861063493459636949376874326036481909349834182558017069878618189667616609168604754307635830076852938976271676328504456116266532277602649363298906509976129453520190411392671451229576445263406337613066471815042882269162324065184250963342157599943097979096737031901497870059723400954286287041786749003277413550165582418445625945818840358197115066778508878891626633492010142875321017608253957118109827713232281232124154368450497001544437497133941403363843840603851080014687314806256880318970188615629507819736385406324435251190967553718697157095442104116374767828955878848307564705078538318244249454711063921042651049971324329213473131510474383099553545401737561054028502927093817183730299520542164281404030199667347469963700379032263879475806457249772865158637587969767992369613962016121539664102174040046558241782355877401024347233788887613625342408181263545563039960810367723896156679493089920439727184654460320173495385790354329380363499514060156637737324951360688764853583024277611515425225161200355503317328846739008448371872926140312239384783343873386785142289668761311800052314250279646380695922048942226474039000043867306204293013164790150666986547588806813238740500011694185064710657404414603781716448435161730018023790609267340799908506767498571386919088731441419842963932032644169495546166428850294888369408227123641516992895219554816971891891580476771018412633565049671019660324426409085998365251878083082637576496430935150321128445542830588138868122869779200118948863248278668433300896399525573551031765225350298301836471729838489674314217145398682631888085893735505913346096693842468822147319430772244901259276189334131007315882212723926954935645309776875581845676554188479075968922353337659355362083140003342948829878327980538183167614302400648135898005883034445396595075012494601475413776763813607894238042840034308810223493764877085776954240131888992171658748480542762027563508537350666879092625828353238621821312287992448498417369938974858428033084075397185251569684960052947420061898609775979550463525661199301432185548157737848351350457196572185918634282538463644897762648898164504184934194638709208160118275721291630484064879600462451157145544719663148785267752826886024946282931113009265059593938088372617172929664506164622234355681489561219892040568722286334586978117192357633986406695675450061279050233520941513162858212624381793342315466218679712577787882358969144411125530802147838796605603887030590350067207913946444093035622747124553102274265104924824836391600641303444251568147264122233126790859978050468595539521735018083872959587993991923988856817754489523181835487966348045130517478264440971833047682417049101229813938830641571993063267398587319717438870401189024291923045561504417567588697987692682405135100511754901277128411656363056190171324630475011125462375442871975481281888779413404150593840574902141662400605514485593935702435861740920981912293762628848250371461592150131307239643136454294372326713974919852183512706524064129636025024854040405380451075652065895462460897190000075470088337944788820286188130244619460674450946438045377150758170448095837917994486672499438261850825961184884721637622883852610559622997368958965153236881630593195405313263971594509606089747727991844946387190605505498991410552247460588696905243981258450064931740046227132163612518004494914075411100370491044107557218093131736797657796192464804075580635039762103513133188911285553846628337581450557668958748797170248680206387924632747035912209881175222438296340895394589311034862519314774169794173378239961947988983029188773743994805567576144921754638997959992462990948579754871683350658485760588464506866054508017741144098954253311599911195356269069447712200343084630625228943061487931542191793991051392213812805130582205937729783655069340535752169479556857949874686338855763667375515374467913552369039299318780161418977734061039444657327060826992783508429224137124376851899753390567325713977946928431192827916449592901939032343973039862629541957871038721414850627697149181845592105259282176384516403486700568631094495352136668316383629727316482307678768555288672768759446924939966233191139567111856718426651307042403878010059204136555234005072240816063574868515156016794929800580437150708314709312031724292083803702228718269671170410613137448461237753799429852575606461102942501662390574757194021936370589490046911423472433700685081511065590662881033321130717901322094505660081689814965404029167188191765467111346550362274398434789519279036529920583317169081470259648665825669720840402029941703792058017191439922844974957181908542563690559799594466112903017653713893737903006361511663884662685068674995920821053524988844973364687945514176051349070330163518387004896373812937524092528396676678784404644114976202444758669464295543595449481000973101286200858017446166724077360916354981339217460853056343239980403831155962229279608401883518423321383568452804873015543491394545913236914434720265116628961413690390887056317811277220943535940499245879839210580564908233353516758532563165953800782022654171911993992701849172894309334241949880106506891078612621882514035474359670019617742480087442790781379964212813377203110570486340058441080622754822912294405685686177950649577236620760222681850137268400453611285860101235611745658261776873088705102926725746693044118449248145743594675203935649720498045098433054860046851980491715265870666618624036208788313771691491298639958365370207875863812058299597052659065355404890512520869023945016976945275976255935533100880409361019769043472805121305002275496271244391808840839730779507860222877292935165499217984392249419553340579781817699456405343606294380439074495851399277493406250028576957112524833449857682516095135955735931843476050415087716791709781748149816413043126003413725554590218932654173505450821210793939865545810528994955853186572888752652026267547374047426582282635948631935778612253820235156180529691537185212280248685983153775913799259554085564328209548641275722833675030827511609257491825897336958646418805369930294456178405804933376398506088068630926271737205675786303210857293280523829281650223773593179229886493459570874338264497255866689083334994916330721015768910262868080578355800115229616745358115910899174305661894021921851871351047888591305267034848215750997686966158905457263079123113713818360255560937450260569785249804417196411586555652669320665679738588500980170417635797775199929877605500996887537725843212862265893503706687455243782917145403449459124402645827643082052497955824178311415314730466963524721290177962964738613101662886376077911915341368035511993869287180851459888248413591519669359291479912295688080090064432636486452598510876820927837715632749912023726138660626602235769444906198216101921728149331989831747355242051887419243860238858078786198426346028939818782243191422329177182751866107886312220845025646405739752191788308281634396220191847103283194509994611847545180388344968783926771924840278450559349842353318705348782145830128892040025558058982659303460865506147389696551368463387516912676322531616132146622790799568915201430548225543892460525143635765351587580461647713759803965487514631385836677369925241452779959352208244083867064776801601267445074037136302269565406137901386395788946743156829432480204296725322332152758466788189542873830627859662691830535183293062090065960925796732682564344552774534358509319360030252782536657482243739064615625666871644974059738487374489928724754927925735525051152190025599476638044798129028824104692175654421526189740380440552354770108312509640503354719144889677352406062869110767530012248520043182241414621897137269703361839206624000237078270941610486170538085155829205031623442959351380133015719257261411854838582001247953540518325176864140757891299379038784279630848650856683520738312200589923186057572032716255742558466263203112778753029612022741944694233952155943391991597991714200528530165594064767622192688863886413911463503171625533726904534361264789204814456042234851362850238291868592868206571650522757129392711819686807722075432270060920288936962487287208972663866559336832492185700990016393468390117880930836528125376541854786900228424682617243539144920816046980188089895379219871745266136208911590966363418681469405821913487495591247149045848568069221610686285462322989194872132678939321415862736356901168635340877068450689178644234602752657120673527759205250212717612423179427487254147667838655595917164641172311938606080111433830713638955704357556939093650945368828102872026215794196641322833827994598184198206428108484304181831893611108797470547386040863913347112902411889598158926706986896269430307502882666098918475700264347257909466305884986150103900030423013610217388430621450701269804771651014646367543062032601509974816947586268786509608221184237939297650032396485097503514372911067109482668018918438577681864822776473607720728144582523943020443571825996650806142556451030658649077871330154526910316909529116056527163965396049433326539355405327881571112159184261990504373008100127485205692598030029537325891752917573693852313546504757696637068879388086550754116294815477701422973328460112426308023379586016858926141641399448037253612881322301314998333316076016459242787733232602456215408260523849508851807228907258335920320384230159973633420061915753058379547595281728654704785468934480285887273436071994348386839586919483679253601815786816805538633623401275794939393282220848649158784334592142115196216427419861541187374370097275194738521590495074940194111550798778962424464095463789391881396699571507004447204094093705257902300083238505167396140745900869438587188420785185003624738051511241240983279946768502054819448558737306260764178111383405326808284205172467905145158095909740986072873240501955558844460963305620200665403571452947245384294637304928549396060917684711618825299134718954690224015191366773186154084736136269889606969800131762250585700226179116049308015949479855559485539201865038694014780560073727751720848743810556194564993743964076516720250034941767153552838383117637383067072367910251384266586107539051909416525576710224677497171249779096080677405384036979228231828977484193391805840833491027367061321737127936368139834254744040176384547443892867887315790517662052571422809973731135642004164819497256374045886185078737617525841957576387646961575468131036494059650493157066112258771670773315711067253788026892576870161533953380175887909063543780743359663563541604484749456997545769390859363405738517850363091792334406649122934549875892112030451415228977531408963958993187646811469677904424828492739632964376955261014385737859741247121535788187860086775105000582449465312785404693691334436217088076947200671398333715423994088316651683284041828551818425595556250263875581835057204482077656210193661421533204704944730291192129432658562952026695769585666830745375188091069958567408264752656776628845875465814063640730579167511073891229842577639602347287610358434017855282505537381386069209747524561265995687423986261177993519607463677660417017300117318445370862511602039713756086507283196593941320102754885590278940351204017014341943773635641730062795648766519448179522496475203024398455070342400327088397083873029317536288518393262209874989013235708273866418315133898753125167145502573954586469581871673241695816300960833107920177537470025073460395353029434957907692810417313096595053799869118848808917899695224446696110280410341947234170919445709840261866233909488190848251076221494011736562131559664762015472585415774971609980941659746891098345079542514341674900432191210557688204485302098512222090610319115188758277811674924330029987599482179323192005050415387073507831566307467657964598227941309366306829133701203994180155027716896125005264685352956960591132008638259943202053970024946339872611949080656711746948556722985841686346849697187459856589993350654818386305736443469922190324257943900117080926647602418621986508536174331626990236610086955225192113689207989016255617762716754218890289772093067544260085441116808289262058026476404482844508755651925297117018374789940570587463349766993795268830381727289631362334166284887133726654110614906253715644341293698367501951900504822801150929504409405781744448212559034759399021247384996703860868463057840561730851834420757196978159637798068900068888235209627674049723158943675809255507596353694906099604667089800664239395626745506159381539250373183387379275319449807122504588790128968734884051078111944466072470465361952916742139553157741339366471802679736683139302747564505325132926822475477728501746008556682646596143918901113551988141389415368569014750790648325158530361758555213184950372987082576094859072121553979113465217940973021028258761143272167775426042789384321820181793346935000497520871973790168710568941809198413361600780258535562316423523769681942073179450204886749703148776986177095427584454524749549361785795500485973305839695791203342148172524808162369341105974233578904321615900117855423654023356399067804457267835335182193421622529514643173181580498464320222040183650025257007466652054057470708586282660245238532579424908612507795864113826692563438407392899780236556905621644556799997360125084207354789030349192318883954850087690154117457205429794207454444288470578447585111785416065095916105106322805112484028829030828362957623730664738251405560575841531512580125924475617603564103680460569494462524219558907341839597715949484299566510330948486111933113681244629528495274592629979343165347013300078588763038325568437013601436194293727995107690881842772644596833424270715398876444672413727272106498873798973365047213021147563960124164528158527373501417643519941745436110761116816939091545807530764269994689720428333115076480656353402134385670769892956577224437447422933113258947601125815937720138705542849251355263404672906964113367113638119802930700628172648209818185960402986713647662567054839533279468026402702195889475132206271732972886816668819661501895984731053485865959483214078966684601369230653188352624581867272139901452716031539756601907063447839151792036629925363324651124606653276356527235458732369893663058051844022078463427710990657116020731766408728871998502397116416470309877745820551537103772663172948112640095369178493142940995430574104351746650134981223878550888839670922752971782802967494540743950080011367922309439575354803060679071708397819943574376654849224290656792955772143427739654323271682981368624673834328119523456369981593223318868642012172198401505634008555836564043420423844603899753145799733113710127483747766160442273894804386654932586162231408929611259202637594453310086224557655922335081532976596761417990450411058186061915888484936599894113976688692977178718204181770115287975841587887002813683799474695064708110905191010408493522064479905958154129266133358940124859712552905600129861290983943722932377131617838642954195737375088859338241647641499719387566813094396385802844154846651108747611065119227646135345721779736050252518870080416041259960757104469675376605747874841353418069864282200138095392450268983544653771865055521734959534167141627709265925418909062064469023269355408362186513682389150920265703282542188197175170389134818612222512766350339551056342817616251788123341996798125851471884141146340177588258518196132532535303535418782052588899580624369530504434132957666262117411715736844297112576965395996843657916985169748547746027233003420284353206239069000421463682763193813055541509089616528766561907556753164114139044395106463194389699753547332197674567279038553368851926749516644136544348982738161987493350521699966041648270412639190320233609074129211056669936709659300812165962311085595896284782917521185599469313634509144202060226850092490767436889077046568509885611396402209740442227293887060454674006729382259431866840258529282484648075596044452598478465588601058911134572903898432183244329754362046841565120987003445869602292973298324095267096280676411727476721283175983926239808018663743386204097315870242336134789698023179412954232800156465894286098738572827324059740837709136168984102146353292809610601034981303306488221620885315932030282146745857104497245544975070466419863752855747863384589448411221151747386931338196676971471619698858561183349552875477843966518492242108380128332750306854286239291753916793230449110955032386718504522235087863779121017028137575669723591734417926938056263755416653458814229842181530147329693666896259682807268047996369547607545792102730275097285878798187684560571233467033990276553492399723925990408328200463783303533178605425273597085669577943240364661604694945864920801815401774095222336411034470888840891623467480712786473302677016518889913621997692718894213233647810042895668924797416467782533828059496056456526930202636477149288219567369187205955648860282135212542905620242044875784535209262913443595304767861044763798712550063201627966150890637091732690196155408753302125255981743672996634727397851516423041217229734676519788417259833629995528983588588596316439926395585196843727486990638891163473467978063853388729739454684552437269732228520417556491690386328505559432702904668057148322189948143494789248817306272402939405909740899622195576350640298590730390510152307265826178291244738812720420239624618299346753610919796824282842786639265334091692606939883063385772893466232604495449264138586600578138413789637669279892497016344877951006069947766594244155912841352490724723624390464649551980184424529440209790602851513267555382357158522957591171745557120985632250094376637767466023403239596437880177787135048012802181609139879786190744900153027695834511514006034361123837902910274413290343130711571291763565151385460137797495669261034508075810642528903085095941110878152107694586706506158429961443746183155864248871169385389170167958719814296536814284827914957093751749523688758351466280020338233171749603881638183081549914331083466569168795311275103386829503892068993137035213872041210247019572565857344192267383677270971841006088081290508400070107050726698025120702410095779698635274720575628360915893701022731657187279065287326910696267538700864765016066717848607388393057952881401191615945805366310639842644640943726566887245619244232045402842643064982629893080470672051825144716001817754887266894889639706313165639208665429749275890219199605430673303114302662564288415172378992412546873590961686638317974977507663451894313355408356439009235662818980018523161580988190112470042003914513607238469370808643521801440642081704506454980251067875853509172795935189808607165608688640768759070910551159570728112163182980186416801310745265857150041407414754769600410552956652398314338190643949433901553584824815701919705188262930673061524126433540881668837765865934474174326346226446497933249572014815580659495176087337576005843186416272900445010559102332058613805671215978046205325954070014016091278883722232870052287756265209504263791255789862690362941410604964854112819438346404408907160745090659588875930274587876160094256261154407231287927326996003515040682405764418576001387207635765554072100055917790700663625759838515600721930767222625800109459085350121967080937996020699929029700249461934042434718030169172228094014784245360835168382182196071134136972266475570534862328922591324144286790935319956617081850012061064446891630005581101026403180598092576653765766711589988637869119757126079994813238338060723468504207927092599176717826524394927451682772898228050613226377938189770676727367088911449226248887987968636337342151330010588812207533235676861648620526561538708923558106195671619908988828438791977783266091673031614315073499398176656106348212370484665501808039838111662362312330546888802345824567283365467333193592742073766510469247358749305523719472346568586325463880685821808623706335244475906883081916550280565644025459786193272474331395016776605173518128223780049013748953313351752120383836655637573930817767672041977013259828197393906842918395158789603706505691753768049058448332019158801677594082841064185924610593323185700954551876013008378673555953398556850494509798082441615283087461509606034192500024744814245846281554098660313212115605077712391139920090995369380292778102195642932200840271500500864673533632391467915548616477099332320356401083734734442096096730052654376823335713342988007466985966414537619532877989844299094459370008326427645842440410454679625372125250967676551998447490363974970973802518210469026241038317375049015768857695129918692486651991033161015522351905742048609151970173168346065718887733528134289135221021948208734204837086593840229470765007375135704094125377830377668445232648783655593424157543899655654035576822621327324429735607511831000201667544933894654350231841814320135377561600935992945139826030414471378445348070855614298201433082693976680980448648540565990126472098381101652335709294637770168346252979797267903956719164467646688256985811106869649152352119251038032992518913891932881287414020964840271149147336048903319967484259734487654546748641628502682291125311036202058669285942358314685815413628828413359616738497658371775693133182324924051491884326923743987988465783997496128368780722194685574741179459234865539265450728793789799815933032932383640552257180325616457611063094400867834360665156187258173865523500060046203467444623884937260694219819694549044036989329225579195981880793641758356065509000606711270028879888252632252346226865205137525793160932454499744614018647198098610811294100585002463900527618091387529129025461162943442842615174355774946599154030143386679378508665912962060518367119929310307620563445591195296552830914641055680850172223268751475981835940389817758749932313534136272324087626216471554295827853784967387985673341393303890227574368287092182268360329428445767668614464384239764856080289333620578680570237841232876504786619608292498053444195765751963601919246526321071967022261243293023579110684859331644064545134893254669298956742999134902212533982000889929972351729672862517468551321301872905478223134851731327445054494678097222109020244062689949461896922300691637292829699144778361551935015857081722753775765211923827436552994607069962661463956257305753049606336617260295325935703799571814082767862853367207253863425753471814782903569307625358751974983238169988250475027808706389672106966810194137740274406108301144203110012429999140165680298078873265031767874208417209014945082554228228326954155706781877087467163044638989012073586553642495721283648192436242297034467207643142951418834807109010487052789505632308804288288372277427457626914520130673154276201720432846586038713818281479976356836916170927806489677385369953254333601730835196311676861928178782189955861632901813765140207654541838053108614999661504296345114825773245782068519548283103160963408486459347059919592367664687861066434003531566538430495424025900029904172738508695492134558231262769523244738518300879033307021669732503200467756244049260516364577385302739534962050797858561770511370306982409926546521489352749307025455724412679540381870651359999647048750746940335447125333498428885957228443159724716434440426711068982867764212469893675524258236430223513691067893511761172854939420128029187589070693725649327430208697330631237871983297185417423560627304116663023527425040555219135022681792334192904475240289166296280959687873448359668911184405085916776776080979000288066793577315341245371950353203158620747476732781015014842067154205075759909535392778589763025102520803995771823290466410881094017225935247478687652516042225612040936226974848930585741702687990557312141290652900190850246732929699650652799112794523050913569566850894615543861021504620268914178708948239941230192530019949546810164959585332208603151662371108832856648656628972529785386447392553956725237593717794558433161058500092277518850433941577141737806530761264995526083526691552030979706859364628105233357287689796562969067351210403034084754693767059413150790436748967590356054298309972009274423348425249814230337410099468897504190087472479579574942726020847541427033642805002772683049664908046510856641683918777333035371507176936458458466079342653771862987555368025814123112520445271870553848630080677577325146531536638621589687280374630374121412145967613324431912055450410701215768979945334780580306040041784800538731991071309267791661258362975667281577021561859383762336278932362219026464263920411345167450535694367347080720129192714157288390501735179304901957551436203869946304913799362049380520365517804630737068182372698271467129697419190309559191089733193997072185937261355413608108647798820138361060665133298566410553823059446670243396718722210146373260901166221731688031387924777804746021698587458527948824197662437222586376519948022454045394362150589755954616266275802760840877009446527490212228596721433650290327640687309037645128046378160967545644971068482637724062957333466290199040034091595577533636241339019013048846577334066692612048777303666146196040112820982882376536245506420905594861398966553061516332797864706687485793826328727469714908712857526379208044558347426979685221130114146628611789410930305155385038966631075902791889750513527242696304646597504315382440640322671814960345887082919392274216662160580480561091564647987486567512602574067975282977640438954925136708998121898666344967845129723515040178603122193457542324987229140922100034030022800530742099883510947498475959667883847150786029618968766386344446135140357964020801160320111427526382548133885339860673753513264348597758526437046367545356613555063495672817016373634536638274255504400367251236401216817781379125533978338898661265891203252771742217116052724863725342500324573993933036162107891443098687978662639149016379777725825658916640693697331129295754626515889670989972903545047992345183582602432073064220550326635842720677096242965810707979717413595250623256102843057312577032765007990838478277886609249274395498948454822862094585757950323609566767569303267705005535547598396420339929676440220642292173715398074948454545875385903153869515544133172350945665303775451060648893660272590913139849388404782903894502600128547211774807665395516727380693772027634117840877024685356345109191087696875059605985077664291133907500045135053277170898831232672345091367295899632936468803648454089203070662243473244269377951946054499770807456407649048032497141549608401534685626147972254326774895674517541010315374662773130489386843967398939054776784085488062005162650379544156705501475525350850908627238327573568735006300546049666700942851154856639962201962406754463136825969996830503386847372440933050366569061072818595410962367548636103439285255313474066074038124733317105633818587249631985464460059948305231607144688110040361288844535761126283806774804163187733100452006383663588798756155647716499756432257716886906403505962811903603353707950756901308574451418342831993053752882817967450802532021064737583071549508517430807309268275570309158332053950617187348631393490727703638335691057278469374963538317594182074190404398622455869411709193150654129648030039140501821046230942796297977664825707232846723121711292121212971061150911285280332189026782099823374950066597720012431841441064690231224744844580041697901299405349534072149001729447308713831251942130687782365918646075505849976892146296315093231465098125421109213041597958439099411011951315154589164894015485151117282971808146835139214659849813361866229299541259599554079319104876502021977297493666030696655668413074990692433490472872239204353163357848731956432994073103958027897334504673748569146721907457355754468838292789694503638589478381991269287972039930835990241236664889355328610304160867679895553539993222486383847548538411751319275702044116275326591305511513208487398706276607943384730171174622467739174138973115485371762566579279395860181891603327908468981236916402396387524663613535638922635203791530632302357894667907534642204060561793960184718323463102737547699706768437501870327289997468691248849599560463502951090213841129011796866067097890146266681394001172710590325014089383136894037410418372519879406953033987702661551783722131462213671747032917051492808341325930657988545320423985391043838507678278257951085492180998664384098376237205848079815313514802262548750460862874396188867438206405227620515787475785011493201165581270290166597801420365753017414429115237145110158015250052486507692280449123756734263586254679593960526894363772606041728578245909842534037678584058636199018622634604325078185643970725183526799272209668386531174496667857594818997514957566285926320811741769474639598259901317544172118595717217369330909826552161492248217267111648742620526284841476464603156149105600409920857479846306507658848693642574558114031280593112182560292067967615995562295865637873523676702958058838911740520246098020401582232758752120723480151722992961599426663054496575962765276872682416378610179432826294855974249771118393576587291449932161178163467748221161182825014013904047453823819491744515273936480677769887163026579040286781379051697826361618092105921526801230964306840181553963719187227964039007455971228971381221671946869939077752539981481546564171961248305617274840790025885815571990070482492875124461646630147582388734576361478243722732443832166121664684401203302840572986389608379581525794404017285517789979380060795344584609618385627720238022122045175309645157405572791678931616942001510108399387022528176602292989866687845792614176977114867446421462523252997824780128006428928799400225215015322758685239492594196959532790907233422669475260695333285309027290694637859588700365979219748746720529326052810227610902897878293992466822709203463297425878114909639889674802491785819588538483797842253036452917774628307521375705127587217376990568856167176023915864496397313634895800204275386951305609402294626257704829741367276554942549654269688482138592598859769968345543653188135693168889227201346901487466025311263003661100542218611621897999646006775344197617396601026938707411211549397702479937646784887581438910031215493962461510880000212114124882486810904566820652641725317690034697757940274341973996005918528012232869973323947939131221804692571571779108420259138990981804966572277095209724579970238639927451982485023871720498104411251154112584172592310404901933579395625069417815089664201729629446614344088803721336543331278959985995741398722847173874752882540842575429299640708697254858535687601955278662102979325509917848186085951649233235257868043175619820192969850891808130875863196453513219952705310002713499429934954039941345258339765415499480357834000243741488133041684636747266859459380111703662771090777502901613903074690193040747429106479709014141289462557011414715953588544083040242001832131502580086540677282954084754852707511617253122983505450560422365285643523246621448799011441521977902412990963736403244141449021244035997500789040958097673596798954036584689101283982454369910396133497594968519534160620638556092252730173122471916601945042483037865191309737899864254959916222492116937767314684946404232682480038206045042702130494666039755491624878464490487211289232716037570050481855449555506665810441290508108489537173269079828369980386344954468049532816351616857495030232625897087981547933914553282134873263885113247255347011369081845579359205329819546867673525186152434226461586200760744852678218852217360966416210389781928633614615628428390596584163250473833316284964309572298652577936534004831000666711995330181844733820474691868739076908846090337090615536212674085826539492447819873007408288807774243246642418588134002941591313885849296835750674520170582901047907950798245033802298567058043453441381128816716821938250149292813509615484316923829993891173112058925224750959638959383354524421224579537008659068656603494815538615966425482983070382295113954449872444158612409261047452284307146107046427690191007234563749587983866999628427314332023833890352322059009862508570119738135489482190829783431679726295381931094938189530264324541407115693729062917293983849215764252238442088614698721320575144495814503626566062643219359771052032828514827742434512501987408875158208836861821936126623553300063551249673503361709471001143091907849537182329891019801261058588932490457795755985004363889521199542005892551358525305755644732321207750509714341383691093375927388325366850908901265518322818170058956432423938575754231529025649859853876267801158090765686668508877907145533071551686535275794196592914786386918805042707490546865606465806237369154164357314001502272641900093674365250399496232612986162060307825472325016585815337938900002914892212691953005646461618025388228756778077850290052845822371753181202873492218442639908453647357588726048416543107477657583688180799670327603324028740179775687283658402496335967209595844848366176904936652853245708449590923995453556903282674799121097873992807015070033300171758981193182825649282964421779459784069079947140985474036549095034523609571743271614166607851295306804509715470005421902622285023984836107114447294814073662252859914209051125260262191010116596533999335547545930144243290364753253227262189655642087884228137780286819571367521240086723667655310517606959278050929684206185264169739054549563260714170893452285506813692798447738858510561420787388145767429547426662083748397770041941126140761673591945724418157336609981190132959720832334074056099792966919722573990875955803736761092971764183819958108468648010155363642210303809072317066079284761547360622519730823782061981417327432160104225426032850852722551598196514726963717707279140602373743683477633349760411838365427109308843239242539957648484627464315850395659154227107873010258285045783739758317070665475810333419420668685354385023527759101727088961528261909909939392324574460837160329521890495602068936898238769255285259135016612087460362077795400166684666984845295357230724582908263445886600207492561370613924757123180695533419957467822576542582798614722844192517179710360484371786636009186781469496293961980619344019098296735843575748850919477717001900263616955248907607623683956728451187414959918703199016207136319957550419951749199301128950902764730428346838916998728503534804343739661519174401379845954009286185279702287992697307036161585782107094049111812745552764702537491299565301930331602854044433164186436556454461589954777620707933096696423734993304528083449994834355712873312449175673972751682531906281667623971305840792559568201826172489002582480608789611247339742527852312029555922097255808664856929419464465091495535993197143757920045521704771235976969736178011638043081651307781721342444851424073711706259315667697731752710401420073578498403589205158339963980399655896075978938620659172869298783610512777462036612482244844439328080405350463669413021432666013227074350419201482950800993944311005612813334587522309869267329183057548469642872097476289992293836249855524205908389002461402644616938572962164442866531125287451581646485388132809438782777124811288558098257466675136033949318699479327881285728303770817307553885277830794981032041533077190589967217781710985220466463717836855364730148077440657357016853332711334162413980847630610605854669123008911468677512835356825997177103339705169443103553437240370502734132670578887528157580932690156801618726362055493458298604899952843170171214492753794329101480178702889116437262425666482701806522492730737720900814262088674398198757761267854541688569181396306061148728589758364900000662429966002478227141308172984161119131858325822969438151334756613578455635584659195187588675014924106259845027190273174403508258089218051345077449375982244782282837163025353613057572436300857810605708882134612866358699040581550381278924183183915164101178219813186501896598329591627297855471714958026922486847701994517273433076781410911258389318631428802937268735586377489782240331123921143228731935662604206329275982736018395741963088823149813092623252266729284982201463152904395655207115717329378481252659607187906458101989743396561213667469346543270763696811417787943971569774251804529764537598398546325130626827576735343232495548257339439143737074553435343119584429190809574171122660478778060660272480506964808403700368448139343348553506510291031437846143659107093790958232572515624322850618678142848827117041935206352471614534824208202070282169830357122078746654465420349639334027552234068222799407704143764338439542909455030333491217908479286025720817829560130367661722992143720607966015030589513848778806200332555393989179685365561480731197327362712349162014511934741164919659922247872395118075291238593522809763242684262990106180066644053678943161184726132870022222391045228102172629291460703669030744479895864251802371834123653106039905098518441371096422753080222547018696670209698098335507563198600351832963595634833482361762708796900888384004649688357447954645479977510689185373193791434286992103207419540538427400203221221632653837148537999536263041197273402587773341528020955988479496245636270531758200964790742656143590175594469014141719584703363594475772775412923629579042692891973128254953324082937497809470915577829126496943054772896329756318864831226588085276747615406548271908549663660482309006875306327267163085308893409043856233074980649295766626949319733340703198905343603196541273241213363849048689701374358142766363771013325010059487417389799601649053333468087660182621026957979291934971466076299222098131687695844070215995221203779936557588671712559700844277337417758545949411177401748277618773248943016652580451759660020048328711488468554731621061180340856737785617681780755576945310395783006853795188813233333938910474033782146449101981061598711200264990220902805966540852201724428255903443474036146049104807501346566095064749683079438471948778932414828851018303419886991142564114518639163957963728686148050935602289572158829625372647307626195681151982876880843360660875491933641442684332144000192928746149491861362612877082737452675769094917907526066786613558431657919259858125353864046132931325409927115509497607194039606229099315111771235005145729799628161985615050198982365157711847521980272692008869951473534001485541791030746037853608094526512525808595527331649985119062513249004990997225875103485883106219661533156858149968032363887722461970120610929448177143626784693798207640249104678923063342239394100851330034986995415407921686432405229055919888320606474578910518177162880305331999951581958693829604955515754101388511541600689642382944145485217346004106134422422276916703011549243729588444721477577245908055995788078480094053505804919358875507437918515343169456274779905321557976492326764734563629449366206064680542322894980027774140990556995554556005725465085586780296390541354354477274018428459008535724108144384387655810495089650129230753313794364056619074993705915910649242474271784124886329560515534051067297066253859314028726500095135620784601265604993793223218394871021099794674474193950496860958415972704973732444086796772956153727346652002400452144970282078247724789829697549065299072777011140974282283274483427892606449929577426539739508860978691818317176794646364238526120791612936219711945419031256367484013266893205817082497241972482425998289716943553719945227091924854999757288312203556468069498388592380557836625924856887717746008421423481627259108912714005669116478882146798216019487182677669949290947999504616449778694001433030201152806986847025079310020865046768631249768246383558487316592798778917141801186244772805650201797474797576916085516363233374011417841549260830978308339564943509149950059887572092721368101125579585871643242343374808726982511144832800457602208728826384776615622462051506273439636317959160100107591685960558626742272599302072824699903182060870087009228835771016927292524235547201533660119293198667283586553721866050100612176406428711822841537697312625016649872275000316869568106417913144983183283696528491983560331704059781876787048469046930950809398857888042758227070421389789972796937537185851345355851643714187499244759787880668582350490932304029873622523895114485148026073551377966019478260353570637188489563358274033689537114020345354971936512877893790494168689764976218324452466517335337156626298484301804865332239334888126368228553176244147301196129602784547333904536671123706552927583820734245195725154261985506410624044110546711904647551686174899406675320376305702589821188874409310651732225687849747471753719973603852411662271042305945933067978174485615107259952819072741556916820117428298849096021662144821829661915312098461080303648509186467845513855964432141287502304260706988968818187419521376317894467716367644530878746635009345706648633766028781674989360230699211098000531523746211033898388492710027172013556871371188121537341773740222029998060323391151694273819028996569935978876938968691869430588989620394966546360770899724431144681113281633424036647885343964188404865368426968880670044336017189911871720536318574574601430436720724567834180881110741463633978195623457907186458129476127159929122024920644304827121196045413536547030543327640134074870156072103676758426512712187814906763174160885308025257257970080024076859073833438834471441996966568303097108291697478391569149353008408485772153670894580430264494343133996952952993437017175862410820535602231222456974723004354432662708078775161553158065382665011186651234893472756963831087855780272268587441939826196503966978018694501752977934722458527958764102928094262897737425282069430441707247755641802112138179603345886256427390955598763339547529458018964120636101478938224536831732187077286307395340293660133307740338455643999261236862614181317843302455591431148204992733668603705552244223733093029251061638896432646885639795259568496175990053501397355536055700493729769307317386047244252392946731303202991775529211424156486458716484296442588006447023029853778334103333897595593721533242535388487383059157278580584799501817545261547005279328000865035537167550799440351517826058340884843409017996705780926529469415499887805210842184005666936479273683648418519260362605721079012749526956600314043830651073889890545208915287566639068241949414254386218282083830146172136828589207187143418397400320657719147490582218429097727597960298990694475639769076139118437956094081939064422249956532776535695301662540753599769253807276357835241766046890524497675669707242234003008220152891079090254326729854284114827849857332130563881492157592579180153132828391812887017908637950571348036675683645628373595397059218633088093596530812524486753767017095769302225989015151677537997149756049000004742772579133404653270323459478628904268825361914315051446209686034136829813167501064145502145316904387220961236037850350173807679485846200835851081652344151790491145607376032167073305266067386207528639872299031572058899178119620295774715559575278691967559705218010137669452090416439177144049252571700605752453357003344867736424251415144054739300860609627639179244746808973730822253160614968524018270531563451595329501539483130280075371262217350896159395516238020056656307294695359508448144536953833666626962668405491337395701128107043899167914302920219689146748540187482455906829005945856707050706799945250398430898726799376520634808340664411647728435944168957058968764614670709782381780186100866959722473409641477223942793617014737815847962105123145866269044220897894625093000483084021340042998037276133416557230482911295097863025184790948566235521668355063494116198903692037914868349865239022718690090214907490951320981890755604948453141290331492852026844461095843253947305894605082177695961897480141286619683540224658242198176593379131749060902561661681201633352233304691198808167965449348119924932778518103251317119157566850815998388117785344250936321858034739387418223822316909815536575278661175617174393887443477765738761147636200696506889953330905899219827927149926775548668788565227247540431264307533566121267558532922774202258100567582489248764347500783468443417411657397297169042293851500975020903777482367971197194341326549347793676932368814018671603486175113489776592719172817499500698568735558386833259944768173214949958302678371722589922449279863058076329800004533116032102270895025425992421899754090479620975387742395060664318913368213618626448875399470085351405571966779193255502277930873719791331126771400249357643261783001327862561449886234213597273147766878965147826093344947373389644305792427972319877089817170868595155071617665924089815249515773247191875990185725125132645006701198019165848201196320183350642329216717450846721914228400522280898921303707656877798897650056229431366331633919737898768976426824883236832771704224184432417504357507472734568209831403167196235770365407579947070255369714413175254195761587043812650113822575950514113504158509915942819374574322617156394241461981923991013608556811506658666846842810574381399571259458845270760212132663063876021051300762772756144943262528781288625040187485505229420627354325470635892079527130631303160259640208574721213780063320162059060944037337174344640034147299581191878010089084227879125092618734115172276626020433863728019911177502997010739382536328517169258562291619120301738460997744523478616101767146592947619207977295061400491220154243490075289691368661842078619336453192696753149149463421771759504559884952408167639706062676225957137526121811351156690030608902405052653548584940898191604011962391984687109724795085606038777964930402516299307609968278214996635806027741735956981758856580362014223763028074204375492625035174831167318885454997489044628435139176392196917608712123033714566671906099053235461264713449964131616594141628844340657501403869779538553715432874500383918072661810545836115952476032016929852614245905626262335556978049462198351838623461184782899035308505187626454040150314548722251302175114342377445175595009964692775659659980844894764731976836035036357416519464331416954960544852762747414171838126646025124047832160429388578471068298861372774414153604525146765922324478023050120515651154353529476186239256326945030358229236046024440296760124351072900028071200471367507273691269454193214987347338531696189593595840977269182526365282211658664731460167405727638900148397292815942512223317257253868944770992916441903827364669766367157873001869651430001329823105339043604858149499209334810377822191995223598187750196914151966761447519301646132058678207810288001551546391417380700981752629713173749080942862969657262583887241157881775972232703277647677690590051834739492662394512741063304476510315989305501655774475609110311516288903051527396640314047425951950391648267071097514207317123362441968960915314802550733993291929049591686060903792237074613280205034832178517950998982089286305258729868172772813201813795442776306733661904233563731425507648345627480828749891730896103474726088643335181580597507438037459648985254142210769058501424427412365500075317863421726759698291289956197879589687471120171884455767947794895129483500309644377155551490443590007092666317417428459408870071454602737618602283882312720501559713878381271411077666233386412738712496550294893072729160993524900535967862800012470964355331529252685406322536651910462531145904164684588345760982048305010663878003730366297291179631589078335212012504525859069181733906117241748504615122558494860524262786640863148507144914280479456292307837167802830549698484438057050823504512690594037067432517947609512315982755406196334562415847306764244488274623741184604101636492324531567161268836177906652022200825179719832926360425884234996258823537154241590436577009894099785145648447573879194094553522030753377624637230144900619264138154296434572043630803379544627027005682412135120203227220976963260919713217558510922053602546371660341100967904963869734060075210257879546504793122616140725392207804068611318152250631298020040771955019003593035206945183190432312258512124860962579993576460147269110273670071035970409973957040224375451827046078322156728285653674261170108763197690263880344170579291791554004328293050557459940222960703443647104922474425016225584837789996011451884409040826985507642204175270134564765913526284767507388396958230071660813533046444058173896681217189536789197149169664297752700405506640849311798249878420842384316454653273603569820484514549675669227619631327100036490207864110026964513057021746021794963781816798808397025178779495088907970857127411653214444718767214782784844575282697811397553225879940338883636038628732969076163066632232124983499457344682601458761508802267491422274330185652764400643965729620864136761268589862946222007957600926381900400803259854155727233055408745622952664052036938696026333000605091397537946159208810071483976316891110609996366286156358099972845848955470401706727956420769918431060234537589026404697756802871060701154310836031892421699428033638698967863262227979760913467368736133723717207478630356170687910624732519392544568396712989583309444062059706069632461614732336989371796846899303416943629443954130265706697233646825807536844165487824986566324815718824932546384682230682207755633677144186077543285750243424137445088897496509168945135170415957995366772764651778312701403557265384312502604477459146275349372631309848581103223883342516229270358238417606502023515764387112028288574730022773292022205913387397439876934727068025874294039480315192030255436580420880935980918177375694255527121969505657898590965748424839029545105514339559679730447155351311913605659735246315288119238920682816136068796353870335122972191951563379330138967869319631363313781105589305312859660418368585287493507063522995710873347932549520165253576489889912870713716772024664670520910475151689181918686114159840028342180101222606166555277555154457615560150408719895700895218536679717844158420042842312987914350277356232863692384387282934850670456714067462536759949095517704630269185275180457862428790940304660088684853754964519760088384564308556167521948195000854949599965018409483464748880237797403927117452819235115234551840817604420649817322088589441560717256141349755863838801323590768529864914821331587567743625492210878577733616622384039983376673153163975814259717142127830232937708152373339566986594341854571771382732402013411815235650895403120319897401885755083211617605524267189220262028796148033799464561105592326906974885120116061084656217993822102282219433032021641274059511799255974327051698502929765635811859684966521557966957775802524299183464790853039270283663379775008712998299198557040113953991854827971815854840185230385816165927466093603547365615808107462845918339372963553083170095743658405979131820329440405635453878260989926408848437398023447091143750571810624021552752250810988418578303924925528761710633108487158704120724511862811474965331161406858853202936907211228653897425650036715531175657582248936663012466695019561480461717696486851940251924025421968098575323831336543414599078021444966474643793266411942544772399955750331749396897663376888987956256801810674873900941640059541353232288083366535623504697625148144732027050590676691652414480173945826347001497244767688051528842614288552210695690037011224656882236774677319134023271314376189253977993291566070252799140976211101452111414176850694452515887547042203231168628698772155106273724132749759162609249327637408957807432360282024474140678625356039786720701714949600956772417609196510658710114141586528282991970011361506235213706315723370514871364708770745493342347020864360805840309266967318532810133355488251406540417024567978219209495343095649872503334806651654814934864014136339709450937363184862483084698325950143601786975605048024287511657658016077730416802837402311474114574137579996567584388794773753972861281782290194354149569748746651007324707701740768848912487490923770286471955927136583074464821160413467493542011828786132184812891709537958389991116441336054666452474425788556963595184039698037282403125688893335388717450180970059741758698999362959557378420942298723244123137325204836733647025596272350645048716110472352792132100877560900825156232814232599132936247668987780930957259454451796597061245324260420704153036133759785480097459027261894898701233013794714292160240934444449455185791561895068266502915346893236302492607305717577215609312927828268830449980119851468082556257018227321427725979358055809748625996477991365760717048094830387949512864892949013998195541427645604766832713862256908658721638911086541008642463110298377905297082518114576654630628966158151375770808163408818415488234162163721313880779022911871596624977951256099124291795227358308677289964584125460731450266463722728639355470794702202294827058413756099183535250320278632825951759812468233589625163673180476693652179682193220375493532173236820848866508680569447993587815320022652309405874612791797889012081346034306180943833751744706128585601873673269139713061928286826561723502929468335839965490889864736520703200174861821155343541737400661270062267299299990397994862075097320844220740162680650923896311899183514511571514681125425488696592399663301906763329051704458561124554514607916783069282596226150029073227161382958153401783081807286657938192844212667304800014670046910724118998400761150801407013457851251191800001864484654371957063732551898371331915452240258905015392021394233938267982308946872830457999765100285442598263243917822766995454707778997433065524175833531257625307909101273958662237294951966523654817635543910719980739579254302236563857124589435805838829245274384125225142097648189310143867880343822326898721397664207267273672043112783579934995256721452639947272801368958935835214303732114763748928786599936634458692022231538725298304030806258652429191672977964968584924203399532614872857778181532292831277858706308318204553852403178136068244345271519872413378042556564376445622694678069349466917640766864774359459509547577216435487731610385986017346489554184715222727079014350347274581155241036881930186993537781485657657714297007563046969840107930885475428848898195827794961692801014461720915405267867664297961855062013056025484957522977754135969313294295098711757487290430966635501510530125895103088008390014069664725283568787398690433017433954643285526302688843189679581121391463527815154215992768791104265707674653719514126277271604162946512857218711295946851088675325789026826349661823276749420452228576251405081806080640132556974681678178016101248566024584094593164999866281048947318186801261789068175451963282561040752155779188613458761917088150294179644754492123839746722947626832066283426482243212296680817387580368483324113951701576907240407804298989641916525068539534413813419783114192274479161205313378195512867902533737007153555105414390696814264458633822808269522326168654512065134277055960338787642895479916471668557799456428948962539402980612400851451110006700798056670352451516500426042450080061685901635967672531838528573392560005942543265432748626454352113532998148459750198292381235946766156039131483831571001067912438205187753128039719972813567876164412513937360964365401300316424926134569690883596744910291856681580349326438182626170849960463004286467141062757314226342213535553791623158055588278851405959153223660683535610755647607896440823552911247416014234712338882312477387703782242882844970366111823252945771544332698084249305593803241861932965122553174249630072081494162804992389508789379362589369275951087064149788592082503010387866774865480406204831519932840999528434350247130443075283455921582365370169746097638943080004115949237300272554377980281907508327400023398751879205022374006599083910864099418039419707770621302413518365833769051603742352365508267708247213902025687049150242632167774087746814356276961872355936732606458110421480628205438598001164910994229415983740989725557067302911006462623073127940772393405800940248194763422574150432680207565622935232142260295491823261098961656765374064935249196701477443164664099774894687995499993746355292675830673087524536676810710032897639319663910172694816158404629766758104671654410245051135803536289773705921801618443431575281264386137096771994214142427469784600088268889305391232093386840104240808543404360180984832130553973495642789204360016522158370957608638726275856247434264927234065492360776735510238951077225700736244219798521901325359161635542363883998569144749495167595045446590794628017947422203992813764890612924275015141067361856776928016021134432203599599503557148217651438112051217113672206904537748736111386517169506993041034451310179298588001809254562410934345227414618465018756145757957640635362709608069579362542061218638412290869109948180540532252965426175871814729573275132909809481815388348463489094660895339580123800823970223843239068116029382540208561618570644771232703237575965856499271450432069694712165570909896282121543148448459590976425530340072505654000138981033619236012405162246978338199289872508669314504711735817143292609018332962767782580627625450384159230237762805362219741068940117601174157558943176162576015360598947005442594892779864601854767617218226903537791828718945885304187868104003946184570590759570870617748876607208623094919166608214974288615130713929948355207831063970154857017024253028046469118287394744137998530485447982783570103810141357558020388751796126476959356370785407500104269873099907703129729477702736455189809566662746166374715437186187474163292681882537436072234100662364536330811552198154995946679442147161978685656223709614110843812556890763106490117514154970637710001165390086836194352191876316881224597572968749906930008805961466654864576172900978595206495397381312253197252247262167751699790260520438120826650855458603344704712690723639409066348948976885425888225594986361582753589742673221587855720684384394368684834565719766921843020345760297799433579288262843913275381824112461925074015554867547384449800145957379950907357501394201584409757725372285456019725154735881005450333361567687350469459434950365030488199170060383260142300281878608656141085791221869747948153138599350646929763902482927442099247621552427725862463100730951757424731393660073915104749181984548494284933301846847411626643434391075680423609192077560111362646485650526768303706146829389432261983012884596576532110030451827065344996624717764732516215506648402449704191339247761951248580884301345860646983162330418002856805515700227908541787578137579014379593037282630257578930408765266762781117289329801132872780780904157465493909109099699298276627956390807535579499920571394069793027474079241736664791279700305621216500677121182089094499237989509063458729456808053458411392538119103571038264999412204069202704073440095069182418660929741812661037046029402249440981846113112573454431679145737711820602155542049597468818778460979236361692612115110312910999828094710063127063793071263952191341279143413856931797697569140927281480609651917107997044738276491117118595758288097267068826698601866051051926877541132727522327805118521941148298948157045138625795819836680249636271689795127719397611346579508756050299312211042699698535599625356085624365236969916665226838940719785061610498647039509786420378188559914846757860459938383368029073936856309460572689856147192456382756531846189984870744021531949646615682298507597300690187001139810993333974575833599855941361871006106925541736105976415520068468582500972567248564484262322459782442507341739963895411487115583484312246233952749794113866770113993123990634266239879257448852790996373378909089068125569394674462891584809256091425644326151529394733828006155635228960324265442840843342733493830708131012017264886448882469689660394646056733713219649212384855427033576759967309710301249789069690382134364008714270502239066178363963719717087704419516584332652585823700586767084074180518864606466482808301224881969345231489180945073298691919804870601220090481448771641021992529649426097531233452834992850128188463090962054800041777339313018974253660316129241282887695742510764643468734914791604044261097614331117075583927981898100306659286357625642671698172141736693272578571032109897481819699670895097086752356022359987034713968311512979472640980180148826502783293647205125878909709395936807964543398480566002784819580232107469666334665677329472832795225694420580607617357325242245870355622061832255761154273307860906474803464055960438574139061698166870893181497077721012062211631205859223627836779067753572743452605094167896045526075577493629385256757113542179088861047623148777247093855310001413416547476715585212389662936007919950158658773589360051490064714677362292853248284465939157807008625601368260977313824557106051389401527103195627986477588226560534208437003633604639890509628859565535633110649141926452984334287012058175186063316740751359203685893150178532474967533357545943062698494986816915717305630419991382685954274451209189710444229415359034616159553696708207860745603136921417573693277342434316696114281477033323196160919771320777278296807727319374799345561653851855457510005204920822797878879592575363588296544467190472997593533509030256836053770318607605697262454651868161385069822650344220146045643157617359570542597643119944450921970935876407173162551464381455539493417573771761807300919954778651940605841689926212236740565473926946441472562371628990833348246237229473311352710317080945509154625393867687889677230726631438364381737438326446875254779304777592278882835397432415404740971130265993566645377364455567648347051840346725996121671489445715660545570553328679491901956575130113954903875852791946740929391665397568175749320147928435031976516789648601791697106953941818817894959434704923176084873549474578434568745379074726880416625287589997473036892620527260204879865675452554942117983174308534407506160202328783039357608275967519868645098211033500572461443444039721589152447207716338091943282110514552669279371051274609045945675821583588505053201957977090701678272022147110000930740988066278145045585153964328637153923099970297089157500786387448892022265367921330518077170739449983211785884686568951646664949287293249542189669541195081305935154057470682491483455200539165699673703443950496075992318148255382559104966904315190369571726577690419397247043232271227876876913351654825132514861420463387623406739103946723766662258042189501514413907438925799779086515514095914908240955683758794065502218433626321092355139329778354559105428738151748021108804717160710416719833195601497233333541023811502062447966423031386414485938732485887944907954921671319112545021112969520633243451405101742355758939503003611053619723315328137605248364339167620020728740222986275510946320888405122026850625553246167333606394578842720802880703887956162687835364866296422626397154760126378205801289813368403343916323154753812778845579919950788425888842971306743040035966884132310181387776070290622194642555456991363733292908304144117358059006600196316879984353688863070233475693286466583316827859467465822983320384189085195587461397462190974489513407841322154369530011266366290265791095136561522550758209018242937709324973112268151908833989059749302404751480307248138267575413748282091686437705996768155102401069699716428777076606463965969691676111128007274370623907198382275647885916587859226411744556190240194079304169948149246416612514500099773677114935990561822036198469020713664409889306131941433865487533562841239155292339433146843236585589584418789353253396403266042569079141311790933326745741987400131879001033667756149367660576119968663459966730573863661508151317571873474577654736190267111116205646459454684773726410994699084751657484790838862187012154821500285387332436685000384596477891685031615607774124435041426338962322698602021878483156957634721932556789309422315754253304277434230565115114737839720355123079149121357044055480602004465957163458899285381303897021642146421340783278677647714164407546760522482028280381172049930478283021300191162255664903952008676182902121194325229269735599890499124554643540718577290287098255766165288671602987924837560981201902371173708184822370900620858521298304444189507847506429501801881238619219854218176529249744387722681554476023115369608867283257106573411098815134356630406073901406267567894741223233586820379380672386975089654666068276548575320981589136494889132239425729540799347397355433314003754374912419583918258557988195090356111838720711161474590585158236641761029311046578263206779361091650115986849044801153284986665018118394493368022384373562588056721387411600798851828163508191716426025854224011033604409202222423452480825529465194211818064447629286257930259574157759759997417308950886218790090220465978917421050824877621252032235250658841810183529309670107541891452382953316461846656495253296671205362787036665101847581219133418953173779264613918924801680485591282118061300040110320506440082758906665907176823258376395003106354632543988653863195561303067545528610392050850660866330875821154910541699836604222578753926405781041754178012708785452092370729146841418579085078708273038340863301261383731834683749565915047231445191977090567081434574514976971336651749027838808135646241143646261112950936181840406373609342393798761144947486004055724898915163241650808013107683196026247703992131223216128528419601519039365186906929311077077803166386899644465479923530285359895151777370196419298040840052677183134196750673564988579846348211158319048794561448324249811802660768438096115150894291437521065336113920099569357306036504508778787302535329162473739560763318461928120730631395832152301429554980859869594311559142502648747474809489166111144497077130009436216729188987123455623281023867583920609320098404116249446851377991523300979574383119269542954641256266512711520357756298837136075488784518109242543150133437176702719089773827213788828728551417594297880451350462075846820792623537086454283577705933056647693015745987622670006446993620303954377718413754724891249815810891103457926283234214226224153116935508068214129578024631492677716232955797590193327939450586479383883592424626240710725354026400979670984712843273052111319878861336417728900486425308242937646874760926202979308241235008025701508943348248228418792407698865844028488810990112491666894403795388707406150746755794779284859153934772283043151851220089215277653946830266984631103830852794727295051858941070264323024724114409414883789910715246357046133401849861841077341009396157815755717341199607147764064853830200808882330682093244092787041416885841359906846587522264959196929433271147701899887865225329843478792284305750148254393542434554004920296141301018681027900328625590963050819297530092932635402424725774231640308958441230391841139740381625170111334894258539056178971202035601509260033926107521354044961624829609935671652621445212134249703862434070999503017774248005122811046131656495619845463345447919258735757983670561865915997592012999373043845342450362259616760839849189570660006452154803737850581511287828428510030477293475023299075346348396862468068485486546843021730982596218097241985921038453556137463417435615128880340386538373527838140199487484077140407764649651275828120114295644981312678691948819024280117648607930221841015507333019121537717595451918082145750214447112818111137515102299039429804355715070758745711215394685158241724343959400585643927534032000189883870090146079370804797208671681644119141088870693517031362389742867700476697471053957656034472841264712130926439570324669827217305273608304367763743129699718881725987444071835434507014208480172821557842271008922696430740279439613769290589909716764387097153867663449289885189589413678925264633780417998229842005644887826396889040148516328679373632358611642978557574580685553355026497639629792731795243724607149787368284683377529524841666468629144705330759332237808452350525661396152729922246747024135262068620463768826562627725351602230429854547701725187597983910001154027687764251331130696237788501990611900973515278212728067920862073609049997900983696072895285292989914554364705660496187167821224430881165347836446731214986145029914488229957345643991410598448805832890363023558860159791728085393304206750250290320438966082433145859200442535455368354955527094214009248906748976005224081311686356960017565076404438533587925194177465955495516879409355779594459739300777384344276864499434606468889646951625843260890886555210711159896334544313102996809379607099670496078839509968329667392581343702975388307434574241284566269009505875901842314121676058916881431742103809461566090634726805301743966978529149302290023314149579011633494699648593540793461311007222474768500694683222591450149784888493863237360189314435261230100498213578805203487473186964967276571561563650185423045959450128320337414728807638131352096317370642838509873586645039692564938537718041286474079363374046353171524960405445955253521904027101997721076184480471111105850697846109899854666686412140561948954231957699680635824223723074911737596158872227102464904742879053047048775170347407741238376334682701645941108573607100756358707905203158239203048409849720634719486379403909533229136199654185518199606211823230158519305807898645998323770489733647607731973998557260436390088904589340159481827623859445811379827388070744795201878890008059264722742855297786557616666380893399231920339014284616325046002050275290775796293916847811924936781177531689714658886451289830995081721325528263010985602549361566134853621497630753890226659832371676849233197382449730017945875816471183705962939519998699312860664586578026445540809940911403279423977985512937075453901236860300351953525988458902882629694109225169609851688920195190006314523293799336491611486593045711681006053671168729526363179414328629309230885339608689352168067325851696792572824134280429829119344616847545659016548621465388710000956869431656771714866376044651422499823844895383230599821806488779084359314302930612447992285877613931971401569241163171378506446331647540829449090485314321764420542399993544834144731741899304996792692913178967835009761999239149381404764478700663535131410405241489971792247954316274417235956120895633377256908104701697067038882886998420045651410476339343080278832989087292812943100387343739899154414385083805451302825810002047497374731645341282112133160352942096178122917951594533455415801240874771015053748708590616402859916283511548679377877400773962820216340608822223856222905069670617718162577598381263500488140094547591199989708125324964921502756330425908603942226336880065664821490145554876376625398653265687505612820298548357868924446137215166377778788348819197706045080706508572085647598098470672109746728480652969499925169782733485902467895742259484867410992459908405462081366456268431658364268241010993668318444696305143111649586186785788107641572607388502421598277341858142056783479541343550769736262110354857384686322008868297547374441755882885100732089614878860432550778602378228990882881804893140969734535972208796297078839707786614916709376971753745472006304051113474060182240357639791676604689925399468894146923734211604657159873072533981724885070945530256852866266460246497605583066528772902259094336366965015349074951399531705487240859450447621464062209791919041629232741814257054994391540687438261595253824390500039936229814797474218680386023785586710605390757376958158037094030549387139775270314331878961100440670781574792562695498277124615452685718504795498261155761654177049550961146941824838616583951690727030025368319764604689240853860492677233959885694634802181430115461779293360591101673901332166307344482648547010675633719535683519987790567790600396317400233598567816324597267512797841063506153115613490727035373942910705345688250648240836491896634959422511932910620974986942974478052588016738498803147035254691379078743229730876413283314676171144009908364829035008553205524807439292304323700712715239635953873134043944260626196482920581533039958862663356398212916453756773831707030434480829426262810368438819630256159166544504571269140512708673345136134858869784114760450699864678647153118200850770082653304537381039482379961058004086327926795428316994201541720040982801053045070886066553238667702416480410216632682629900588269119933852940006372796768358234878466981962174600349401428537082062328762688327235297273818620216414494122628138885450042122423005959446170459597361306140514409406957635713046446104839682351679073257126371206079069997049608835767105736945873219308844442745612012385550857461036479988753684463645544480223626601691957718683704147031430278938282477651868982074447170788226616250775305663520736202800545881695181850783449533648610421335021940925212339978011520427177200864561886335625886278507206557889594915038668821602850612883506116899662704893865878264870361455878791687284424195392406358307348237784382246487761724397737751744475715653843094837840335916338985869240361446423839949622022239522790557437780616100623365507905737379234928477377266565287659187782933080806902695047886940768970716935955861382347661477807526967702363557070068544997743385470349043484252550308138223393986447037583872359893016767243536013017284639931298255039708175696197820306846072384109993834832444339187887136436772708739639327004142488354796247967359713795914330039787427040893544944167988812522643754699803659403498324339393038294645066270075563260528034606597909075350902996476540714631800424348541053105857103559940001500030036136153843729909449577200518912328911111194996124901301443485611045535728789927933018496947691744563838892422843478155606895553624017930850868979360722642924283932392493735653516128964650205278922007642394736423514722037908894263510878434431540645009639325181247756939201330162275990023574399556213631437496709904242387979348053861047691333157840698793667767919455964200587115117285424923531632546511104245817949290346592302067039748734374385833701412338646130272582027424726172149998959111111592044859341757182496565782147782659019223404817073500650471555153098147369925537206902924917860507953766678422443915938374357480907291024981185050499096463920573159386389272769794797062412141808203393369872216232362223154576722384692521960697776666882098903016456992699550108466856923032544631570193067071707272332727080865993149772644284150781440884452952110340749709634472225102582231976997157494367279630959605242727207242336632467230849812172067990830480335699956782363940202193612687865298810523700055315118595131445909768159413023782741340956472382660181842759309327515851029887096442360226361285073914476533332127016502107857076201826207203472279616448933614847414410926612758492670589794851671802546412090212597979414452415932157576566562216259864912573537824900740079786900845275479452331152114922417447417648520389336884624840793103877291278978489122884720398581395128081283159201675700730044012081871025025352014431940655893466643985548690589333033039655168997416362137394103677735878301030607877771231373676746402220440913593860818887611204367159552827496700167325915726059088660188898782032890563874807257317411944880306648942110181923797968187631727363700151021270623268425864397049135782228387038471532420314909517341888510441571933775145786678799081030970109928693537772745690910815250834312044888874673380432028391669662498846391780654177180635860125171349006394837583405468250586079275353088828997319752673427763853739432109117621435058459699313734670779229852748952819741181166337797184326712284183805039559005158507835189433569936585738554587407495814007877000820236577754998310482771515532161403934547561288190380296580967827370635667199478740683394739918314724974216825790587301251033439602593625810789462050632039765277350594132590176612707957609471068782227219720639905055063646750985606919493936855282751810106389721196842982195568703464005901105029734847766615883796561031827578502588113257219590355214834729723750183541545009722022766743259027191659166081576804380260413162299586717411858330429604801587544139400328042931811349246763668482408388087947777390049430520457583986558629282353208880916056478995796949132354892008545588645650108446472289438170056476092511221235610146636373733359141418893069010829398541546983566321654124905626062341561963290595297409828937284299138538673430450367551922526351621183468954261169437162220930197367148214190101119479893106708186692776558631957118488689450977386883023922525918581932159195833462654096276723359722198013016355902508016226526612557919387394118516391550571083849778172582744024941269686526032314600405727934871647609754818602862315708125942959691903751112403580708857493770718230657089297542912961510215375680882422093057546211475327346147675300196658484549681084983010767196276069239421430992956843172840957350761682412599142209918706910853097372305682326797354155761477108291723653347975172476312564113411313350655855062994658717382990332844101383346898722837482560368302073471756561235475571560773573074963332522522103683156084946471629626762900968030331092625510511857995338633155437074461308158426975301586390831735292205539127696556887642154254032022955761920340404929871481517249556422102125737244278076178223825043194434423479239888863838134818134347619042327997108411098562356058401189742813718451233331085930609318417750005282051202369178851489381780404470151568686372707733945705630139150606808686655114729204390456880484072910175045247356610045099873514669469391658616355762384311082188650049080960887966561231747704146368031012091828620503612135989780775647071807255521281760354594456804427144518397673219051463201006126280308949036328580863889419379771811879146143548635320183063681901210398338568501136268784794857980962105882300406321773701389236418538514501789360731462555315872881676426337266704140164517481385145257090005313214770900220088753530803404470317139171577333401342955049391126802153384693341099715180097184430234596276858199673472861052203203561168602422285820054761742942278953033451413646496731713349023280096395770515279716305036033464572403771647110909899384751292774069010600019386250838470094605329830522851193130129834012567017973723590676169072980955776939964638189756450925776015218608856673722737208389489611263428664092707262493553876702270490935715487570893378920397581239751522848496866057315070035399742931272457942094127721910813012876170627946062343545240935351356260741367817497333945843207213675847356915584209139249115288341744087654016677246994968503501141667628390587580293523525657260149797035373453046120147354186759881774015480677315814187432199369728913249917858024785447286577939010117221214724267810957857666184609199018058504522286628704545006072256210380642315096606436962267585553826487492187314833624130391820648216687062526384247268397757013099366775241995134162127682091341500004699137383380734069024225826570615211374504752353926160046288695170731748747313404194301900455043125642589671120727424566781717440527111401361819423564891161045874682491376952507377148087743756267934448575709596631783785735433610735166118673205339206133558978112713323762444992086120163983357484516285399077582755719794011340771264385256071668984817037392599738159602776287073162782489708824559824680312810575189104804214103388152274433994976195202666404828529230307339589927896304080371181591706826130049194820842491411538202655329473859204312058997131341080099276924661086523179484114278186878625837886578927834031444005303435797592109004248901098394471494399617763890736505415650685185199424540073383430199686569659155889949780039973646968988003898384906198993580748995741320288312087776902763198864872301069738485271384112343030724129130508913916892152783757860248163375840498369072058592000697983324218253078377302813566724522721465036669297547549754079259329785848752812568262482799329842536741167430059619538994984655719410373659600791763655772374863306496043758836678898048326065950043334741866206615909546271173396863265603305227598236218800464221348105095869609311198316556083906570461068970768232732371047787471303103641032760062768015165884007307336448345329146419108870698437730950990936383026895294756302453400081034965534039227662012691584859395041476381648666618420205661346053443824624676780457284988695873342074909457251021534049931610097762673710292252001693058638426949701501427535491976696362410411444109784843479424779594084655208536141534432237325884530601610259407246061004453904497758734682103377513594149231052827854479497870174030138517421032334293722122844545111173566017867315637800483383768975795781983568619823378662491959477758505822283593300076166714912329597768713659458169677410620789505208837306977747802166920123207374299918537630202946976092434340094054049844379993152428543689754609386556763582071987105739150682196599087426763380337305896941055456528403663693129175028187629256694868915853890422993304013509300182953862437092269358191226548973718737251524548754904303981002350816974696028068948783822202427215154801795492881510063414039950420883631417262717632473810375846214816983982764791657727384874819161849488490676806443716072009730106226686935142318726134231098608856751814594910477212696522894673794985923293117391326439060053119705855942451049007430281440980697016547612242717410551866049355199696625025995995933957608955800373344358747601002830176111905962205061728465422649120068314931591214708365030233721221692698901573609923655269622971818357528050527452305957142456366676105311003561182218455724628404565041222915084601263298017581851882719123749051543282610147433226666761769400703002753483478155731691502333470809725812563626987912153709905220729786272859558840061623051749093625278595446417226529080869156389086573484795125310033703638080357363592206152729861346343309373536737709562136280138312616462608202819354476854315297590102019770163250773692223089872759088004750013322450266137329432654920151182414153488862776339481424010265245059954781794193766058816374946748515422472807463458934231825059498378458948427911198611717058364726940786001314258044772566030767398798568260256374655201152018272243824003664531638446067957621974362688021301252380657601107176036855401693115468246923607256875380270145731041460821882581997653239721404258385056959359121241807502097880222623389220123971622978499864554013386487377312475535563364677644956894986802250061390277494596107213693066575714024714281960107281173296557546441114906512988326539385708867768614750805948847697936016967041868728802431472173371470212399677878747891646737215589199171786142482745193602197784833372703116982932467437973992127198047487035938064361959782288496598001982736109228095675603864687315123490282948529832606826468589903685721246662889008453754238533380891823199546032445491084021083887314404445171510800056908170342726894640849825480478231326574695386754017057003896696935551401029596513919485616742261022482938054070013505494681187484075295778035110608815380020986789622388650173437404588258705757462110101139279596592932899494799173691780764387687508917572241397069381761544145156747531244090110547074885097612929140308496818457347766984886157080652974519250588916234181324653693652651009048136460957724031687383680671361767281288544971933906608651007076607589623069658459424911875586024164626617939346710004748667348831423450613483616395307952927812206181457768189509602270729823971789338773514023192145077951612864393846586481965377420499600660271700409984832722764369231446233069993257588151232401912655779740709095204957249878731007022047095372463040657473935125243989760201011744841679744729632999293274018105543190908660806592180410124296737406861571769283531515723680163975560475287415465487712655806844497496048080834284889823183897857827116486843157293821485113399210099390465872218153188516782153298453137354367210781196848536754315695807779730287543252770585496625038854860391927544794635471182973654839870947789734844080350584112676305819186345074920513612052947181235491169463698621151330439983240461406223563560485563837167939990940072638448142791732688289539188450433995237834381677299477960799784254252735261486918139032518802782321370838057416349779310289519478257694761255891631291856639075016999832604255855766567251867452257181229903680517917702623524719353991701543336720533931224362045946567297244240605042731288346104719482842364578007885708151158504536005925839413319188414806394587019972773243023045121462312370793499259959901806100683837810234290415937959606224251511282678971575739988168784503070295799083382818123180537627580936276351130884737990291059966375327041081618561770814993916005963434819349844929837751789674520371346215349701151570298532669029491981856847323949257202742985474852055886517637662825968567636261913490382748119618750184082460664898326097582929944176504537725845489571187243118961504767307071902306107613058966409746956788876824036872226876172105017988405097868672075622972318996820893298988742123757286120508445916236151780970234136166456908461534644552141384278164493077167566839580400347785148372102078594236602574901753024278538647781663127090365334831997464281094689404662315707672463248035594789793231715530636186432931057163476313989358339134497046212055836148213097316473728716154206159216135779335812266448486794536949798575135855277133891929821137230325100051369615237851700978955025372515217337967895934876626970124121414922025268097544662668652017758822307569559127850423822860856956424725039298738887353969611748199222805212673440784451674625981193714300850935654302550842258205873785291560428532826296394950203882919280636294849265326415218383543807282954947775058201049276507857935802906688873839001671096980162448678150068581297189714689784531170886638860176378629181315935662809555891328859432479660992784311351554191596588727624154883632365166317844198180513897027535405642623082655910921294261442649167864862284607415783379118219316444486916317693107371128120618512166123657736349948125524024280910996753374625370731728605073574434814475623958197228808614784710264031910379608919159887404662047914508446989822251714493740275341280791143560806654615992478148912263801209379254099791110522835489304572176024107049300492816801445862839799281505555690573611920539375487703381576915919258435266703984201828395614032108493875498863537154647927963323670224307028908242524188288087317333861072965915010054359584831049154159774711249968902456328263006287926092029087680483116739167521691267909483987833927032392430813679171800963636023457904519237200623640050876119848412797255845288703590371358030696475171206591770299469483044178603814296677723732731608626776577531103505014936054151267628200463040051667148667776470681469976569941719845146406538435170649319191033591151688720907028496906953624719920855786099043138084859368219503533482916499360037590430375422215196012099621897538015157982535238636696307657216413544419335739360311275228850048304641909313893412476164166424019229006761984612465086931994658921598511202410843424182801249455249184396390262392847391891192215852264534692962263439491973315320358408965629183472912427094821628702686734766396801333883412355399097943417751086996546051312256715337943908313264383694960039859930622169187353774157935661996357164413304275469448589362005475417624802144277341878904522044325086893715346053037382401536610170438371501360454100385719378083469480830890545812782985218161048445339539491509045312323992065412649544086947657086132942082672584694004376232506291530408121140335753210803947715648000406284359337100161595865307359808982592339673944482893376485009135882965529642985238581397278585796813824305871205740447591966868957824463656273141390264744802875685570121299759245886540767952516961015258367961424134687039965234547417353982308550140789281380380254947354505995125563988193121775690176465183896350700158097763436500363439265279062799037725472503554620119546562419806164694890913134719847637101202513177234025432618465936891683895319135759493979804745062317581908581503407080314203176128422515099762183863423417450870602420903859858112920860870550771118154055674025222530633631185855215683881984961038639038258509541283101372645285037744237812067921956618005139004468243002685047725756582342143301042362225402066182502145980034648386842101392413003613806056626295368403559577381124135726810462549205793028890036941546138461947714478673080409852863684339550052611863936799123609450580585053134319555271781055881006424728065202091644941431500426463057659990891600208433485463409992116502235504097399711608366706730213141288616393726445656319620495898368241074528156083345758878152973552449620199118544809710546718400689280010438472959592344933483456999339779188215410239634525482209370765493191395885852123415204045942380056860127816222114912232367730133065020950373003537129556838860863803513007230767589958009302747072964914483608177151892981580912571197765975988664588948352985842441706415924762997151815603757935780511840517391950686349028988929221727419922946203714897645348598916217476652353075482508581023373521104050824176153394585967380982504977737741945243045273894895187283669273037198332650917108751644994279068911646451075840344547751610034084108633287060173036632918277722501968648465540361038520888931739272526729842087019378747842194461782187792230076826017330721188286991359649902445776428394145796979510107822502283161913335987694008547723131269176724812317789547431551807228516768492714486594662824520618389620457547263212404108328876376175506744966441949488339764322657425673131285509270875179550625557687076769005077349562859892926445000446351649863215986409790845166926657000347412503387782034534394184530559706613130356514752164702223648121783946245536501995501347940753160038281860784406801117428056929916328676320970561555069902498895014018689091047904906246823064032476229712739353940300276347320423519429139572462754751285664061784043401431029825641008402572687761952681954540924590462336683077486196659320269225911616528960751386797252829357465317045239707270074116102359510337833059048691300645808386535865093020543393495807077588829921082882446116550771830687678510114685103346745568135653194857144598471945802010219774590157201908654187721401073741880527512334569442580424856563783053310572417933173349111668610937128985008254634989805755686200417150161449561943740312683993481764975997738335557085927313326302704507315497028889437026219636046324098856779051746555921936999255039938927043854399440939742297607003303860573907946681250610248146195282309006340664676963798532023120937791477934998407507208583939616225070749516787224692689419987155418124136731953579122423570404028924102969620375844668793814842789359100380965727392037730616066901303667142917598246437249522828368564532614118820990012609936894004007692742720621080646775634504385030660584639941211844463298084481464145861615986750694170335280274847599873109524549588108179851301414218048721183648494265989480553489442263915645264532441377250487261479612998058515015025885747308813522637230095749513939755545994553616108081261014506904415916058891054080051104750580002366204234109223349237313439086669309237569531117587828287236353580317306756380975065569703636192314944886239740378044922198198656099589052598673392529141493407098944597484852573747322340372237476126975307941515090307148694153221125173779902878980874287689754328153201538453133837551135089438523336048885926250953493304785912239968131989427798994551858086994711983097398428997086958338147979999329339732899739160398176170248716512025007815058047380784513374852433367000434727071935464635058420752435829409610014031543198890447679318815543618030846214053922164671045661898563946182650542373431569993673101891808813134047799467532165409719758588153598850182082284888884284818572716342989372602017706027165427243044910238666546233683198907230781311314677496323524388498064766646819839518026653751300415751358691641261450434874137094956794280173951316669265233642737901164582821460612058742806289089666057768406586490811178360286678965861705190552424202045354796639552894875741177815490551274199972402534959994785110029529034406812072705472288176919187672257757698877662632825558027771145237212508808627482014038399149684283646849513278435357807460681555652672093270535596533996737602612538195475124737091228407672873615241555442703714390527239649532307348120608385455633421243174572647580902336584407229691922064126463155226783548870652135277992376806456414517138483597535328130793248917119004937603775134226304961372116218780188347259109994008603159367218551763442359012995037403486301338089431106769875293325468074801601256400365903733937380349063608338741963178873761403474786617277607859673085806291059679542619017587055988793933712374735773268254857882697048277666759824033515601916768464204343931055892956770671901817220088868411585955005194141888551190154267242245841789500743031354543779174225734710007631376330140989356154092694212445762574814169009145364313310969015048165897667404654366333405221019833474033393920584229010885267641209653452162696998611612648628189091566081197367461107897914476413522404510510445391236935170740692406937669358236414153784089571336575869556583904925792725738134214295589511424736113415848989919062160602354206630103451261286859357008117310097072073567028497401432382354987972893001452942430785200611626944964168797234500227245973495105962505181889690216366275078159608129541077074444782606939695579403132612187137018206610570561117623890751538312892023677014639036149136521593311589632593710872875831809911347450584916609808425992758872915525843078061082997543055212253819294081006063196211671634109222631761377708395476474831205814815163852924964969960254071220982043679863542585628790992132964539598553920562628548172465268122466480531422657149319500419248585318420939870234100808572284657679097795212360651559946198563015978252171065571356997679408102486229478839738923190315313563142304858522901016987048305952306202972897845178282935558281333812910579460530141019009857711258004096354191557090479797708764738454068202158619669793148104505662500592944224814008022736352890238039740781587650012227618019858045696893234653107506142486398109816639121587275726310632883746278952797507372019230413025516685205732833448222044729271515547286765267815326570148302064656228924339265169459522630782146160778732901675587482609102527590438820830648590888008119863737283260508556414183968590962246919538399287251925239124023694206939817717634129853283922592831148260806514113462370753912454196385772462457576514163164352474468799046030686544287032695339390229329345384375226981383001931075475317804144307896221977214942039983249212431096906583054261227298393515135139530791637523280003169216478009871842177158893719957646527370300809309073158773099375555792618689121578463180851184639470187142896645207475356749546277369082054824264675323094605297887961302171161242618050749384312736930015339752256670300998536548167679525920636979076783953992595333379652988902785442835573108798736263933231683215800573351228432044985268095449857445904579038793908756186646046850233625468680789990938669393818951513824598412289055098314993866725584974638882561798364379306326318934588035122878732950374542401568881183848426167284754937290966744567426952671201602203878162106531377944587886291722206323798174374659342995925690836830613631268812252051101813691091343466715223684266174009360151076225234942444414350051795208602969269494695375259370329635409206990156088245779335582476471678579495677940278408242244079994098364115155483609938618322159950340798290212645467306924871190184897975034214289749004574283395741557935913107260682370561078979790396159146896570127606433918240287835133189094962747632695167123368421085858915577418515536532666674511654251691998089110821031594972710202820481019491207318800692662542065313288639748113727311927142029879406429727483595244089574703707237172895190144421332620469300880807060356365725723543757160151636539299022719788666703100605601351630398447169581834794805819697940941841092893613577586587058116727503784375755447661883022181068793513076184992191577419878556175909741711214774090540269609963467642814053184945640921102115818407568230067321113934413452195676725986048076797893485803828388688430466590432303026880072953906547355944824386415036744015906895867676727938752057901846950710331974397365191066653002156567424582457054012318222887977835544579954267117076672404682490920912928157818077073652747214676778557086242084263584443640937831501844300101055286317855082791541927789132117687004029524937826326329479219590175345474592442820453845217557772406215911876178149023458451281113455430614753885814978572664006415322609053984764394602495751071380392413781480769297365014320215278410560810550904697087605506234335668524379933100939476392872048667978756112810856362081005817415534496997533493629595468495956864956742702965811849323504439617136184521864078545331940495596218033839298195654003372306485925664046042287590798708683592084000204726958780221720597545439413292366731076477161086930993180554322111953794374228824162085151950198204396038522874694717677980688279471010707365793181143412830054798863019299784938671413331174833947640890604665648174769589784857713318462938863559371244285358016450882749948515006543453607170761187607628809968092704616465286283456442003861418864653973276292786504484767475315494053369101137395206678116507034556828861766218416806116319408331920404721459889566675067252589802871022786547661060733748434635580870272384162993988059986829711321814369303212825732682163741853901029833723624795248298309582699879017105954587042839333770848109747458921295814313692482541850700873121935871538708451993134319069975717983481896611646236537341214247643322202230003157661274555228368267470415334862381448963489175324065604260651394337084545964826276364107031395591582347424621120163946065739971814656479252681022200615056972197096342929751407201809633287077003727465011494079053725512982690639220443917570107562467396269914842234609701572788526908739188886097461411550943087734397595252220811396324177118520223095992990681312338235079884335226687520740883103305674039068607960017419089864885156997556591776079083904482814727578234420142459525390380022816047945574321384864424162988193611176174539838301871168969345340814523405193257808283583209215148842728477079741966242338820895329810230443917768173105428560850679700198679269828189066033812459097263716763232109417551177946609016166420985508958041507018193873429272173887481643622944994156162423775376401895441117292713509336040710842472899176512879377925342253317113934488871683046468216745768694838926171994610765244449190398563578204715274034379049207115231034054833051606477864422433087869590354468528224915932437184387945838994144410736192038459734415994841157194309862139096787191790362134577050535854492326868414290023111536628661375381179086755950074689795951144374794941541946671307277887507983679385653141503078288304712653882822180206037657026683888768021442655991097496652808916818502666008002794511702198824674853974947460621925731628508075545806352784061156927832001832679900646167666580506892091710307562502697698652599781817006083845340737340059177141270638793053811004401249808672921534852780268392892252823131443025567806698533435064636090770860185635423676379900845782748355693985964150811582593309940317848015060317384916563444323222121666449168229565846320986259042126402188241267592058950230395724586702438034999062740676245028620875227118470234254452624958462951305931331221714127419136977459011184493336759773623378658084462093483381600690082181195025752989000663095976040195152964320898479528866353969446048765810978187683678203886955148278310716645807503240142194153510258766846979203942348976254395190998821838701128223237515117423479707837971950943433965664221582215604843448614262332767880545619586476001315410769057543711869395663680128823836992655159620543343127813500989642014767244850607456962995994409781263428332054824675476950341911984649481927404783642564736364766012373866982838005989778291054533398590662667881058032156535252128280869119418028193569505474869586502866205692960085476948783924123659551942983032021014381515974307054137513484238314241970348687175200765478121520107419031384837383717829879059209754360907476406470164435057343704716705510329166038367876362781514185684447025072722907683225952242195450048317111514893443077593061041487264617932406926997499143933514653423713269606365780898405398699897593080928860540491942112092679770832197860141177708767498272216611512953114997637555667771834914433763208225213717680073029220766200718876493511516413376946122817772859067099939268224489770930877539460450326189722973353028275235623641965951101847347583472017822879349779350758062305534259034111273450694915517338845591401529426965875457353261979965121458938499555880062439011570918897715298688072426139064278547523986048287410931205220676249594541257069024841752624310008601047151228068931577734846020061465726030852576027082320260427520490420846908131705691103732893455658882405952601520782084453390470556528515659999683397453937900117651965640230773648370782620726840021021280804582248713028789216605839868923612386170876194049856227667204635944706624780405907525406574560966612455697762070296103191619961881188475633286414633889040090044777172954651892348826187507743911829160411535460628421598931550301680393198427445825350527507801274878296307383121815707763226021240511502909928038228878150753876894434066405558776038511022291643561262550318566115807474220228542117370686075930471263468315357628875043366280382549474896007921475945605135597539806432027809089624277484035623762604915070339783396370201139864083336966143555576688312007173300853848244969632017084750574250490471548605580981540279956962097452358045265983170599962609407023652225789183225296286706718997737545731969113694155931750525899353214961946463875880134166781023002613020678887958540174424845330515353907356380558358943536267655668521423176314769696144153288469590715566219036709191094327092560940682609186924881669531253879793034682540282869709679572284447347589548235285831631348693431032847602844229476345625761362118637326572528767731142980201550915168493467972738875441505010778206792471662888500824581040841670393976885920401113438161019253191953563094035638562700865063119831640618229486977085332392912097143615666016078717510742479791593669001517202227623254655096884614046968911769546793550200543358115363080348320786379520420369449974233858452085830620209619057631929421772187948141867094400571887553590401402250015197700139430682240609111634212162295131362914742068364176288532807869535675302035248071684604715584522482077878280276739366334477958397885765844805374794944767652218008918212110568951424735084746393399155617228644068665876961926729726155539564131884225117343182626714666643812617632723333034619739602719165172529639473460113396153279489956788716043906226915312090479283279605921741774487849004202291988045531290161747537650916240409262715294542198245028502739583905514607052871143860063592293684934589161550871548287774206729563945806257454370983242902698038395192720287706402806280209634361499990690220848033160438420902057180744237035886593858400417984223756782029795234360104444270107274031411106803206984825616135669316599237813745548592285366905182563165226801559330990505032287253902133574858059908145509384119822109387305182172975587421803873535779927238696581499285344722178289718743941626104146561030159840159768158950715157533055055290380494906096534362438672201728375382355507921781159576554420177090106321650987653275345383618633863189419105064382367774276673375921227067496293761783066395294530774101609325504298397133643578120114668504160108124549020578953520704213317068243035343193076352001004795322172172739193652251951068468736570295514875075747526037068763181355585494421857096833806763477640246042682258430598985068300562949269715146336116955669267263980772007890264187549789534323058056858487582515831820131130385997384530602833318011904844527429017688568134045254525807570625932454093479248520874803138756541263707277771739680201791941398857792291108900334837044416985308660850692596415213151267583331962218638878865945793289578420655620693002722886445399407684089064135810109802495322240980172359035260862164509029082676923746121748288915004768131076485098189525550737019841304357059825389199278208745219448200178495529086995403495534718252596765507369168273726854218404410187895528886366865184294107694252449189541113575944640641296520735039370005282081978610231171974169124986122830376623249206082876049045611693209855242106479969948861822376836261925544067751025102491765853132536684394333355949094585567516093886275762912501797700516247562886497612122763957022413210111289087533022702105491535442017124644287882967222183445333613915729381526334832592814685622026983645364710948444940461423752522351633446514048209420707407881690952583638144836716525092945639431738660149347273269263040546430129529434974670181727215630270717862895587515078935900146052094077021956746044832290874796092453640167881244117657062837592199981689119421803070637587504564711674628475372891572430983491263684989107990133341945391666919962426739477574049010708424499497535035818200082430381333196126995490085216058032242227214993947298830028489543766904592331212331747932245193951600772677556934163081506023436004698078718578792436825777121792173543411168068487143517095555442008726084264574385740732506691270686406588983431590211062989218138959868477417880196476299639574404778042540643386527868280044720468910661124658029827651473594111042199383734262761812728582698348044703785186437775473661045899123947239733795893039808307688860946095622003611282326016424354934052645611498421836240105622226667128807272143967285964830886595715151629877205924907872541895291391927212781350711257999177422153775808286171837489181833767850018269139249195075056995359482368164938757790059667885844688839778457727878624950874430350824227078799961508137060045337159604300736767489100045034915814941519992981731199173928966501257393149822118348791446316379713536500092408096974822086174754440291342583834675182019222265509635731341990079576226578263142485302448513358925563448720628251274583304911852707773297146315125770038681322738236257598025673585141448386130229276556914065959271861752159794579548391744820801446285630296947259250155542556633334560041392937030856600370555131492612750990845559205110588073417423958794568755545175999170865733256131832940507112482401673327035649371617118284389101931690022184386897354763070308381585729966174915857722867016212266252119202606560157041274508242924512407473237584917635006444728582704598787039143806065241843913938302412117074952911937745687319878420371082636117922900802974240375357439952266132397444179904711515969891455655207657728447291036540444595381517849174348785783455581708837724033271812619288052588241807432493085206262822426034434423663113127614940009810869734710288232993892465763521892499479044926820560351240735575076238467379347335694035901659775396538632455058695435430248776669133406564057653615444938883728219054094789673945219622107376640763457145045901288852146750436967887343665325544366182460271506413136782181766975039725717683126193057873678893191563602925450800098043360814080678781752610002077160546306772131453616713069548628471304289599676705693451074229188321381292991388793054049795887172882944462104904111456393793790243184798254534584417606562314324809203745736326993513770213579608011863060249506717144105250542083289145883263521072694500066160639086671331131571631854191747292592220858976729547479382600839367852027634330629513706217876428702246100930957375333882429879010012687780027161352604900468429380001938491700616006003308114679735289410738634191975473545636584499462921546005280593103121122238580758860356978639869917869629080707417409571783870523645600092291729389804174427185312861532988028320662241806605254592189009115340444091913106415027616757903523216295531998541175028368905338039372641947483846426849481130518466322616694529408392686204982075543000835068958795852222747189041539462522390864876758020188042355378810259427008189650722949950498594496340207248506065468853219114621542951329974353298827009464047095620960520929344558496885378069512369293523113907530605338048796179180633099161908816157648824155018460307423345635806938178747892905081069820381671808030275589799697336777803205238271377194658880432011686601922614314520846017314516896828678328881857343195042534409449949959792753811245995771638772341064113030394266290379160204695432320701461862366992792227506139531331618842264179720067821364792537623466829391828313916303181753621518513768719054668702167362902148804842110235027879598699737062020433820470738458989411259343367131112940264915977043503350935210648137422712162990670154078016734844311821653544311098615542166037333827515911662410836337943523715094014631643346792360880513528941843342484889337046580545275583445594260837184507457862257604616170512514485747240468257206553886402762715268017003212246601842363382390457526912361337838249086474916197028509180780583718690449339600185309606522559306124335705732133810242704713799959811168656807615881072512714320903458260624753320536818378097637223182279608239169637212032420883997054320108779674407252836220469471185301701049966365389231935089630941434563999417022136622381840290803046291518782184647119930158292664299021836167074849383572979421987059954187817661859865676496607653896585431966840661986903809094230054616410704710312829559469644624248699800996003004560289938841538248415580672111671062180359901460576245671418417958000440042202333114063299978390810624441430104113401410672615889975231127387817379396397767865402134633524358961622893522136593373315582655564636065574751170737505596710624592190029731320833918466425387876538862541665101451187284366600629360231130458978469414274932083899857075831531044573952753760076237786038803499037109223877205426664074338622397958535288546330980462252692910704193848911855140580293619555415584103176351774790018130246898936590262804230619397193156418121142044325514246444337900068616546838342216618261444051491331239137185510532410652071720768444610726372593432633688379608037601606877116993024152775340360392065128231225449580054758297793506856837106028909095498273306820103835493893747810813913409694971351013793654276625979337389571268309932068611126057796571912537433901066781056330789734054302243895682835820046033126151304727767779697588297914680116348213850037822205736869202843503068369214540912817253030526167250945017375894903511542648888000945350023167585309359406589226785204031464929652992168860158371964736347283787235698999522776813565242540562152709865626185053454671257555283712253826032838705970089850304185925998703262181568558421495501295900882454713959309523797416897261520233320041486610749527792523886609714194609607273182557594024032640803857291729504609828697979729844995295598403762843498244514866070332737724024997589242746536339340986033629747968995807791289692984794503354414622931708637462468033288024773852084828719749901879635138252286360641406521984868318355485644994067793243706660338767601263451604163505442435378169448424899584397722323572565402359753504187385321803948781120573552712301240278822908186314041604673297111470011765050605807748644406353166129441514851540290769253521061669520048865224405551701661960653695514886996583336917750918646466771469803530721771498651509411739487028689453288087595559895539769284855125095741836239938990582488225196798178444484329124123430264476636326974887200845550105710224616808096218533674543289146259340133850913417054606911668492014883334996123828989037359183634219445034187504986718637182455373343988802909625481034883672427134156846601626835256873465137886038321214182203988559775777359536907061002897628381756993067991621367677460543098997994417882214138242113436316720310720381124736327610371888188991707604248420105967397333038451583499478390819087987660333086284270531083862433081212557015581064956880918432333365686238899702490562567562294051212484219417347546551472864543713531550374690516930351772288184393545499616457256618305463710060153102927701752604675350632443940624535240010853138251623256040727172792361381733406864230289687138679140619569097417323320762991251812529998374822143977768702359521296247606408923478892800322003815048753910753454158955421635174269388797413382848016272876754537713534671559819375261061944085279126762746837560826464081896598505594514987804634174142994630033149822314694638031998340570513749849578187891275338974745557197332484819800073790370331563639770410874581754390296275091896455921365481511659966655277505872172815787987778441676501404409801480818010125187075126164183662031709795462858008805705724808685661492251124592313634791470377240457756602537407811642738243863549787726475352250089724725887233310245119561037168961623152462543274918493757578429026057898716912236159959746154859726346010442809755100867157778746051528855163009485024459431343847556933779590381908131695153096278289412500041792996755022807240310569492036686719230845583202152052649796778742663475152776905377552548186933953890299636839214151646301512120289745058143510373236641911086145234221125275580599887764760097332005044394785718545080667156803625641819481919896121311731802348625903720790792639720004138622461694886355771591239574453013660660701214988545455024516225701199006066672202582827450812319660201559632821122737564754282083510222977367334378381863604167746525085729355016813326894415694459990987894258878807884088566889462021084129480871225345601737028901203299542176169353459760958445643059250557805242512060254758480854961141126916466802477464576829012019065205244360991880386637598349893917257817535608162789838843290066332021016902968353913381357848397361161385168289102684403795534739874907190258859571178655940715862704305010039612504630421368047197733558407020873688371182945513739321507395925164675967012438123952504702574257683558552363069957233448185018354745378369821655207728167121964098351156680731243633389316184124103739935898944508243835378039088786766204961351145730994539154921566318642691015987252032043708250156435105401652944585393177726573091918484008116900298416225347691646150589385044789732648892219596118052964077353339304067489920722551595989273266376759901768220587398684807244390372468242740271092052769032085211212067498300301789088820591601687001482884095060103019238388559383485541488530743841769691921976272301575005754491275136711722974196912386973771681429001752340832621343323536107287583038218156792328340016526264332107049660023376695290732056033379574547294433621672363149900801824013179036290209531743119419026213285727666753362602525160330720904150444546622132006693461610413738682526853591063383756453566475226049022511664639965799189362538857424120372303089089651126123316898818321540672022519851415724949899543270471031543533887841873602097254957678906386453149847797610794836398497923875732372208606423554577093653855766411078154485937312135075949386742046557506710225207179338857312514380540488246706023097597902210326875449927107513321591778913092184081483266928916169343918836596249638894290412997677260814212462037990329511033332737988165534806980058137897276340604622318622757437835518830764588209761834916473883731999799369900823077905136065653492889692840684715041964727555479122976858383662397691117072276324864404021176597743976728362808751772755114952435463795588915642433273079886086131163421423436620924175475366401194223860535975850284086716217527417694214977357737875762988071355953567497783497358734580280577067381954208658381180423491420103745289909163475494249717463745249892544129830470709511604753853819239285580247548797868423643841844700581024951187669516301520129102384833561076246606489429585229295733619570318853466494025837673824307795605268702269494106360853927150360088054165667103855935474024466237063102693159487105737005130811352969219782831935393572745093562259731006232590019077100667643318235584966684188141813012333387185060629887094809120335819552657259134117063080052663394834439432353853313498689794563028288421505207661795192339025895820334165983177118885372167345377153713492775934502600632362791250428491529934600747753375891326031439242263325314243192846876824854470544659513062248427911273242875017763920217768104933502502521477302863109316582785489958671400059374363465806774728299603008700457726134167015150712906349851452629268619959371044023624413622954006872193412314178232799730480183006644216846456491338314894405128744759034077763826298764992563688881559558822316914803913937818654859124205456200384072673754517636904769506553584818582528676882374352753655444991550340813770385206882534905004062501592754626297437609038154264839379254671912529314419747840545349035515023778547329589925452810500213335264402635929435683992387296764221844787814549353432130264707993973314362005253849811390100586266518189450917247104347056624317420705223987973771948055153905012093577526726622913089010069367353352843640000780781493309132974609214412700988058522686433656204206805495217037269155178970025273642900708078542391335527001993616410415028347245904510205466847377199651652651461392144354609179795514841364845900799709413168544584262192343851274053686464365296719490455202748931483434276281918383172799241951051657356678057651048823650046428719130826287937393535263262083361561641092863405507100133923462826635073743469669540256355487840538377966971695535620102892505550459794843656003467177843329022223436884012439703153706079185717093002926118929048232371138950138638079313940973993301609374835967099184224554459585492588957843780901047760661002318365974876195406767014270672804562505270392694659346499483089486203311674990152914477053264500474020716406062119059078265986399341403775831931746980453536171587165667535509590895855393409852541263404379462687938816630649682038098215866668240978027217818755778348171901724375034963774813733766244281402773370839970170486144194369924832269052952617767056937802284509970727164688934034515322219417573425642180734765693316240197557228367282022491654399649496795274841065156477599103289364264084152121422327475731171400987524239637959869210758845600179194076676859178370184163189099478242595772898861880012991159138589211243356832255242678887668238771527823849266656015677473653851528756474045830128761820943466451372079742566602653470690391687905387856685946648655533029088006394641305156379599236835316852705333225930709256866952463842793121178340695408830097661030537276039433806005116151111099923818812931496445209236844743392948190420738233981953190535008070548395073072599486996898974499909199577161608010128160007708556810185151081998787675492834050314512987886033079022888289034012809005849990572979754409149283515491018768607433575984315186356903636241499079706067974682466271001266465413866442793979010147974514774811631907216055215673023402839075132741723160839511906332754287211335673278191002775034472766366746729239058184135951627125840415496324372715934283766480777480993881192195273198051945931791349210299450205622472074506210814992297388818516932226448443884869412345146452538433926957513048848490501041429104310504939897090884686003298296078256225927706813362420350283860756594428280154239572848675906956477441963056344344170659689082706949901309005683259194330876822256837751466848504181534203452033425325456413388584146406034534376674057031417092745162059641413883748173223296472248412473859087283996538517684689337680581167322647666608238412313084816942011170893278757294823237299860705988980580049147078023431855453314472428620377589532469260127699285475241971701767639166316183462912706497251866246033859200900380075433435360957483990666192054420154008070570755090118605657874722137315835939060841531900362064141989377718134661989780871125766292985897037725331381466816655380714772765733037047802223722651623045277326730325353438694810332039343641915874861993909878681526469757700755591327766472532329330443866650045263959227342032927144422569922857951407780828143013175220466606553055454741869039191379222944717445222310401995773925712535372288040608082433376510629049367849770276271479208935590900919451835466802561899790704128370969750527305425446782709628814371431608910745265472716744200249754326800329053007135953624776372717005728974498533609031624908751086919327665606633851166928375560031614308119974737765897068967406977865504379411174230021211010046579271298707991180708626603233137364383621885668393689610930532544895903681693317818804680101576251541151518483272436393767830579620430305435846210250096895419787935606305179181040645319035319049464594728330264419592743039925166741693626694252195498055134431060647121657984012846134659658300449263300782015698911381449718646763577112598725364189703785482533973348802951812586889968720425286438499074026673742168315224678777879513859523058969787135041505463230827974132740768081202791054334485296688995292727436203718904464622228323700688217300341674033289702612540685529145091567705479347924482276628333902871786601077525969516213879743761888845247632259161537924386921972262067179808448801615702167770684286637644841366086239968403759693559348036834227900136951137470874384356796544007163468341867960135805754734711450234366727363669218577079123953043590004297644779294417386364183649014922501470781595781059702475289267395010814228004716383814734360962699706800401698651217494638148587477173298114218088949998753255561060401589826743270442502673572583546015271698129762502205459998853998915748199601123026048651034865570271203504910586488016344367499000164414067727203937418810752863353503821022488059693252383867466785347731611878836858762824001995610266063241260198897837466871707398063959128545160460552396551649196685439578538541096481659722525420276964434466256739262785033576554611413280653177610496222182189673180891060810036438427017791256015743503343563252356074169540445277613415552460697811309499819060679627494380939542167884880714772563111890269424842513315507900862030412944169269977773340488191125630177088483228397929697904105268607484553934109537375427689069523661074256633542773935682807342401030181339664488502764032970209254778769253168066060125713783294186698083453026403137623983110331992957531291877839187392471830052159351603704444402941314600949944656960056874282379202651871444500432297424383587090491605327638579946463366041901278444839572503807539633440333284604522333266580551100316338271310715308147678791999819308893938303158651920857039857031956556496939538628270024442252708446774501141626188077910106626232607287923941827437851787924388515394503613696197057195970220737100044492185592994181067118580477597618841201836172850721324307394463513220071844685901391484468104846515137746377510184745646696288665537030258939741536832275062723735069954064562179115203122591102770114860221913845733032706420650903072420607558715306848515028413036756387940595236892283427588974485572665784645624032930647224244266818433341431896682478494320168677451456269820453105126063132889988934054019210169239492888340805283535982865704513316664693308088020237362937378960730977282532567090510536683426678880338820337016293618094804849949963345608503033222957611334856145911333108709063426721799759308937228436754965101216096308273637415041259811624940880197563760492237676427339179789693821803954782432669934772538992921992292326089350248618872156270772865954002355974474962486341512799557701208154677125608606161484999797305859768777625730349839202706499032552632178813920928139962100859691972021535809975493210023072729747448876962564167664473112580155820495276427969216492172118456384110899952189026072287859054736240182092016944102493586373193020263598179164002286046640518856522463887930247679418367693437852533014074401246963946226032494236682738196872208929497843262979537558560891042484816080093920331366623926765676146266687952972199607987847997337408903554554384283755315007337959620771138042148156352998722491239647254101143512692284995583719596853447068089683368556936361110495967677660492906897868477689492279310393967516280213164329835743049990855427833145830581411982993513248512955765969762276794543883613704579804281212969626351049993838157859840261229848427459321034484323826119193573428894672150702010563797130570221609450041574349772395009905795113941925140138982343610696278981765272939931904075643506051172250573526736079246244067634934429638479107542540775220757895040463150428369050252075470238351149771914467298014192771068413520793866431427425642362957046879987472144094842259470708637775229852076151862077979040839472493562712705400875524536201226883869706060870242818405493560287068262687593306430225136341065934907116415941339383259337752349787720381196808055166387266961650875561937575660717326390008224626257066346401465283818160066128996351461846332161008448533285299143192928861296215996903752476830802502530637300242210004753269387882541849801645589748576307285485720160567535154290947138462482944849240762721513781449914753459687470294787901361177845042299626910793400911891892765101231075464607465004877131296643155596842377619110772671996263908622206312836442927379973673836243145359394646457373755804219660221907057949541548212025031134586893396210819434719434705480297965079212419335849908956212599514319924027962470458243613040923835417334667047719320491957119045209919035557915781381562891329403196114994459414471779955903849755427304274787880727090868962902906117624247975628961836969578855238696065490868139734705472631931271383423585801762267887510562348112138053701290756923278974877980552851092954561548925333967768800303145220982915523901170583614138810672842772895641908244583494404348302292923677683363512499822624422740764353572058506266081484765157912300318753195543743176087551786178127855981692309400934055488248023371837820281106393208853203321225298650779688857458705632785886032555528213817544098058985437556060571084941350194114493992019735186894347128116101314396274909732031976776458176489306808824888205852956876689790946082292908705688815837424874569254257956090166584912023618130816772284483023514361636169693626467979525920307914718019868187890526975653374766203711884131578609837659245222460323715414369808051800048945380575633298432542676114796965131528630405689207513401362193963244533834916674417585281739734026187060402644870647286502535130833179320609943988993193404453001568724877257652040324771876095829993610879331168112369692619364436941522746927708621285435235641373972751401234171707881466708304356256252724952016313652205954427664291708495660529437963205492147226635682328952557288503181908694092096242808902897381880594045968672832066970836226288484154571732549958674146451888828296593350908580119757169832713579464993954737594655183675656850021929174482990754530944049778364492369304688046097720250297526710528623711523738085799996994735885974481842332541832198200908149181789045319053556969887075488142715261024110247721933919603882606920439951845314658103550511884814324396891390611272568103567010681426728421934348635302408525527348700774260929588119418732076776121895009226812678404111769052256796549630426603136677981981059031336394765709187326507937869860326350660821963285374628935902094421402919226711495804270111897386891042781126828392300272828730641561096577782210712753057100857787154820546929002662319825639792092160563103033424906616263853200646481743231681780937646891158751778487117015969773935392898653454434434632262526276145121124406331212301253210321261019863865293554204664514814700999371530468702221179677154557727236612820904516611362987849184582813080053973704632485892093804022696267562305287298840974568981009874154683318588601847715378462707732737448629753807452160601496725957830838851178633496231451460951846124216056360806437496603460901197395327128151862262121151417218393709921135947175634398583120730435503015358675059436771428393394884922432980487900225377297222989147444729147653670959961809511269996547772305835477801269403972876266304078011137342368160305059449636840099856757329794445197307524238819738827911788328683832028084998634973717698174610091888192682463130126620592003421693553133328981164032987697180611981202795969453486918278656606701324618114480688382040474039701101251710863844696577928621680206401986528039521513494592202760954483575374097853676811706296430552717724574264924605144928242189238988104272287918144882229057620428137145241700997265978743384159955689162148392396024325228315458225389847569701658223680839897575638990060283740751955794572966210414769130937937724696494454191888628949583475344063378955066604473333464536439696495360882428737413733066824387749185325852563254382298262482407721856710931734382337611075816587054262369766451959871466561295169257831355142379361632777415492391104930444037768455658463210082287937900083120664708815564089086305530161887456015182589240732173457405694850563790839022879773241134855147589663485168870799666741560547167912966474217064833567935126216697796735218452155563504315926220198579966466412442452386942057100438432830864518306813332199702917875112541000714823533622146518956379011141275601987013483288808736010013177329755200646764241677775233004658313393934657143744805525384996484934844140369703736205140558483724737752013279511655194739808848008879544466523888135945155134334697005263892343947489493272596964368180142778914582837761188141074047985737259661703880031951293713785133759845650942700624807455024375905143576673287605911196143171330509039834439497781722161788495569608876371761446462304872227673775981617731066124013671283854275817015679196845855053598143098783102623168676672008351664735155710346476485557131602414986411744366535389649759974825484459161359067665705591289006672082919604095725919409982887656889418423088242067940108043067510080644706195782645917513587893110319837979977272409926094233270117230149347416693957921119630625187250515151710511109301871719320469948106401184796747571994783939897403041024830204948723326009865854729122499238879056064467548498444557640546306636613075783664916027382957220867687986781226427752209785772024031355191568578564570538496993308160260634566704155362313859534989742695636202129282330068553301449962419547112744111567085048286732571233527674334301201837299933459191549207247280875638474468602119006318799516396222676646516256020339767114161269106736112588802877217934635844171803209833310243899920776216321841740070257875129750574372615654655164628317473983591380495863592837021842775281727582201934821452090298231746386203343344864738794687664279900394638166064379259962399578272906848130021286724907964119426100700776323244951785652647197599623281708985940961423721886092781311562985062609537302594952142715513910704007961651932272029872402052518461929570451380662702078052131032894594288680164306629081263893199613197241390125722701398423917549896840983218309852989579723266404051167968989545014945889589317059785326559279047981274686618617451663919014763189337723857301433947514227392772683111797784772150927922140782469560212727308897236178588613702068648593758393315280135105190256260426532235558248772366293196099005257312861414342304191143880433998190065866884974673912598132459207380110126817342004925162877718256962753701210381374395727190763233308365628295080235593799014944219848092406954851112189675180036892743404607920261207675539131484467105394594911642323387155454125673876968600432287674161032891711578148874192000390080337238166139562928418525401387814728240034358299958280598429461475331678279617726380513004248959978937608239462796282132362579666987824036524416405400120233251422476782979542378891866664163224276496637485897949204611822905984460103192870963054199898973587660126161314064209349179664209119017575066314142945385589954765505807212452443059508139028983613870795167573555846570676072086599610806843528080583753306698072982165006907608552783968048834930920119069235934324978035997594008172296681963199131963407386716404924528817566270844467629365719579978859970308733251640739695740990628966726107968917640093803383874055894287993708341277872814432857372930213453866876137588222559280602483642364664714120911903510328964482320429074208069847993964398503463817987841086568179289217886898826909593191253286999403928055613384313429395239856638108828122624017820940932416252330986442847755952910492695219013950221852107958463718096555200676098591335970784790894831955928985422287060499999451061818640936235403182268484323119264114850513034470275560683856858999421065468512644146792065078842379350561606260843399518008725935891143493141870953362609667081841556508967975344280969325937139513122361073850420956117076181372439095354223100501319173121475462111695398795885331929630874986155869783681293104769729754439636454588301180354354234613811802657983495674277588747981732811389483634983672270365872209113344513501215138967415013745926983248186016289076232530217063296702387693856568917064052439726983176735668375024072758991127686288497753143762015477779434241842263351626247968846731905532926251442313843837560323437102395344635838366559390327119419082376498252000706036795499185699797834635130986118341083757529494112828555844024691373540476357745432712473252294241796256951177023715723501850559899160736762312192450017553494884614010721208396349618713122375816607549829260093190665297319070048277842434171293318270214515708322385701997935500028968991249762643826902519042753196779774336977440630822653471573641683343027503489081605994729328219859604341639024232736388995326040936405080831384959125513590504365136874277970756448835676636297887829781947033982936251839652840201253848789873903067731149403970121640823583864672591883674969292931419418283951979001162402154974746290932143048879810352125353146631778828135618320602149538676499496632690386452679793939545382436826992055347515769103440529013369658981191114324493150940706613586146994899915503684716462585476727101393593985982622262041216603184026304413798104508046042728826464311933853361762730779764632975087458227408052317626658765720122057991719885921189020396357885599442929775956131352772196130410097934574837110045954035193945812766180315844719085567235097158514129701504556306830678831304085803052770234374088107897297302419023459848228340866550695618885232369908397754330495099094323391992345483474637479792488253136571943759899689501101891361921008416272521161385046396449989705871109988672010162511694837253273013371238652019217389611261022188000188885592741749419673018026972631998895052913041728916913638477735924122563959537812010924217796695984114417702624639939603212548519301908755449537808715105431773848531005807757288983472201188359861534201347212712223209838901433937529044287421685920252813523849615040445501925243141553064015635977297381932104021128689819871281793935121026266357403910052726661869819171448130769093827994477955000519839294437564967047129218065986046619641051018650566058820075818810567280665925198026157176539941779199624524752889535725810248113281295468441531943596243672719311677250663563316195233732376782137598381210176304098825835619882811193763381655296050979779355576688994259648052473455775390653229405245361155381719080353635565538318472155252386748273102387142071508674104227561056979527760448295128508338895806083186381422917031461172173738396672659545574733927498231346260828537958862540189385507857856100149711049934136273998801682084647972380630694734892710141300875864205592877490010788089936929377278784161618293318136108222700475794605173979914380980382720331793027672285406179662688524317606598067347807842623711551924570944319314076839240755266424956957660649109691236675019509348291850247351118659872096721988406091695772711343086007528834036372205874233181512305642310703012734302597318272949553196811167586675382185492675311529875083079713038256736230251378195196532421749100456855371111284355628801584497025168271189229434750399176153445446860746956018461598255687721613271577359046517885350652913570297194423473615045950972631071368053389565091914283301336717974223199066066927182546192632045627473188557721800089293788339881530221562368284207454552163419877769858553124729612627082640757651817628291164917675252904757895193520544788714760520102391908948505729387523220376286438608998085615361138779592728120924715980792850240998754993942576250230209086508605952424492589532014785747806627866359095345266601191836762742864030867376396981151627604777958057312644358713731823745458799878131708874576900388497642797668171523509562378770457391535551371868292627662699782112911936157946254241734642869118543872843445419216150351081938552436365446002997728105572382455138466991396834791251549622063443976570973590984938769005972085023323128011563588208532917474442999465877571407846964491961060604950350841909429728230657762869822967959915106418765967922264019814945230381274629519161622885697669474953024607256865413972754988706907486680655874563531661893967307969690996728724826436767689557454066198897697371888336919270095803852342906774252085156817613975339954854037421173638765954705748358908297825076264468299044965597832092541160081897573839578365676788360867307488153972643835582885423657005200045479312695508933931391118633369914050842350369144847736033634083782981884722511469445885924693738701009442628316428872400277954039642035966951340409117216091913830137407418091387740147186274499500914293353003909145769202874961353871783278551891475861974337174187256224718910503851946461432244285284912376367954497408741998449408587756932872217969821840459192670605281868165138103948405832394625654576128319781563247494694275554417057835201154228580096747804965313515787637437557890463570132217077345064328481186810787891812384311563567532933064029347353164193799116165447069741827606525976070074687196282658915737149949044365878538097492700072488576065500953455429146845417641355023604230493625504698695880193493477198103793332969990569724577981263862572570209207615090366190518596434441015852794206833878190422963751916799098583262143282503176308735910186056444500687312583989346888558226893417647158143586013643859354181852231749842274798378708769380306411562362617644864269188604535980240784200103506050477817099735777706457185744474448167724779188200901948142337245199549583485344151733493346522568016078717018255663883509313102150296772104328228821881481086513798534276703472676473926779054329677441815068025552010467187122228028285777068806543069544587174079163963669062189731213628695796998323918479174411152787349885821519952823810998394401555417527456365985581968199935025262343049860176241146837956496563035853684425164093938624143862625820107819427974180772119950660475848300484039706234659548901488720458266780337723310583256809340503498247496177893109666593468117335277205823014300868004868888350520772766503934501632219255768103192048110184734076824452849636875815558286718470792684390450560795629252627241506385679781691068551502508409336921741275056525709159392170195206449045048114681918563880572202679106117789792992340010842166661450712691152190049555858144404339243712069744810250638913822517879195439202680369482818229216383099609680219533335525458819060920865816042624076184161464592894061075091611458298472935492875365006647122937033633037888848335107304554470806790615466169123757650295677791685681912833226985627463292391126164186967562058479723442305461449255788085499182910079857645574005209855190838393687067066403329083589097916066818189318748247824358703536528172428660224977260377732908083991114931053281930163173118012618846065604897037240833264555041921232355081801368677397645371998965284881891532779792889152095756658145609203561654632369978639985922380523210975512653730541128580489827054866804965619860580093765783782125699412918339082308242788799753233258370880434383330125731574948787630209191120114233727092071442150709225977511610572078207355733213353206012546394115702993733307127252566986890929319691465197903141475345694690433842716662544164136427844161075444141300989135146808550795518766408784761550364393655213802662344166730401533552103836817519856590649890027067581312570495030575318352308263000070288372103649006364841094502402979406793680886446484131479842578191417505993958448273898210978131910940686453835078842066214334026145155575913325154888460681344759273503957040838857115448290429547989670079781245403165964197407406268937171817002720812583494885277020467762674292958597471350089669679610874231342367806867444932947529530289571604332400013228769015578152206438759995206868950391665185215114600859142834193867283852448217661815374965247489524249203447167872658465142903855910440607289505452057684717605114528432260482454764831402810561780115097070126873113170754804232312868960506769662523052349683828558787792620371718728946950122185414676379253558577574271170026704430112611698452418934913373569123003256211502200592656336576000189045063845347398451468768809800124260248014321808319212636723407041581718946286273593572147257835224143004345468941104605657820396793907264611400104232211140993669457662658312030228628359215429547662754173524302257136739575002565105818873474743531752421009562067991239677997497737512451876980844199323093005817159385851707479098662206813154453972551170534679283333747013052154126875697768660294290241862316470616923206249467519521442950010262814261286304935240120849085208510117158163867428093032926469863884143273211948632952241392628705700953747935795283757956535698122814843928404063058982369084294006462555302334704033445229274484275453147297061622270732262403034118267510771841789063167337766560599747233877012837450004830732532036379649634348363398385322356800343260617768518775156521050229785593489440027703241650744680343875063540720349880980311952653498839915754576560690228658413323506413266629139222839122924586289116114574260899614789891686485608038366796792306632405293102706266885400938625319785089331507683718535126954352602948942470817276423126544250469963589880232947056289550996296586653354307107031261984606852539878471544691036581822595385608935598659255292670731113604372133070047394605013697727998379821199997136003816526206214941003488552387609172975074757757741900655245722584513713937220507171770841819641082708030360127380618849560305050779360710677658804307810624072491281594227267849768505690505058413180521898957452306359651511900065336506101648184802701075512419975984525232855956136000720172593719909547867911397373026470255541333032111275638990774219044108421198922772000879815452826956772374196409569289412800609467479993300153643753272880895444126558934642429952929521659658290910622179007697615022965045494082459320821725153618704720149114890563779636932261180831059119356373460191734603120957326943584423572580832659163743339260731174571247386909763880967574422355792558833248555728387264551872258407822654003087442600606360964612374094680144297537223521162207354907789044190300839122046913657761970774592790757890014071091574327676350156601995009433935197607502118836499029869976036309507556491616592039167569218886062035884025865917406272174883638660526574280326434142926284221736808692853870715775951694374338125277897903942345144223655305425633329701209156710911268200736780233733503157825441943514154553939289952896194269470550114295153815643879839933264656502255475414990075598641202127355592274137999078809011773317709937104247100863549890592463931578189270959778685983429143332323010354908378204493199922439309708759291009529770161287339733777414595222331697621723880974319745350268741005416154349017125470053010616698295957559864353268911142123734490692552787563991075959418817429332668487493858263702273647891944410652151889892406525875759201157216365589406905848521891032980627600452196193064151472399479969569496865882987710172666825104033530880376801014046896680452844784825953397290014058763063775910150628561146297798333362537856009744531976203909120720131079077443866264949972956454084129440725969408074648912909011472226146731672018268276264605578225315007572877321745131968542755409675958186938326444602499128261315944938937125253760711397273216509567504065630060798773751125300368965448298885815282879089209296846113855905246794731094128634965656200516745993559043456587238902673625321573923789301382358893654648191003341710535166504280358082506633585663321496407807333220132867684513716491721438971364245762488925777974583772236798115025931799791213208049216237915945571470695362768357866689930167968683163903545333717956396308129385544475347728785613724741063002931596159843331995919297405138959583640424769606727995013931563802279225292465994887569899283905805022927108499122698323104141398674643926982918448283347076629102643371476568949587899987784875712981414875279615207542459002241269357526390378616599581418696569864424667995289614717327570830990617660577349304898345386924851470566715173022072167915622629505304181952972715535577562496821003226197972581767100031854691238890002655666777828554792045213029792261274389471249297830766176793755211760273313449811410917214810543031353059796136716046762915214616948894552542863991788570194866174379861523500840977434075172157733331259656435027945215713756142007395863286355999157252805447345268683496471103717512250569517667661651954910208520033555599429950703495712797646649885141980633199331346966072177970321608693195561561055784952474314941416166662566575605838795652494421916315345489000407317067650527145551691877225515200320899020436761197240316709315975294581853183317666208464920586026277337217958134244923170441385733049165085577695817067230878905397442910901412190974321959328853022259798272023560601591900680127135402845256333631530601410792534840760183352834501160493081745974221658428141549745833037278889051705889633322578990801414736429060505570175302630076315593738059735684898839006430440187299184784694753713333840200968848932219731546006281067056614249821561250704619657100999283542738479668755946061350224398358732178473320456737040862486003549704596272002959013003339610677503203400658793991522634840884485443652881012849772745594967945604723049915641007094279726943914915928517550756113552367014753806619905729872344078586691915314239687012887340443301355017768721296336608254195612597300318657413584551880022686293923368677376100362980513721316385714807549829430455377487356010760403520807373772956096753907858701553103240111464842510097219241023996840184371286075382693094000992269104894536901824066504151566154175780502535137042412766039161620482192378066283248492603297099346164728067622507187831676914902049278354273542007911290210994314402568083925387082069621133405136876152225452412596431279900064941009455844636378420439256523247720408170950249520275333076167697238698191349371096408825040226317712256063254178440094545071194291417592711170795574359174012496935068864333656420712813906549740885099892331677274989483547964156834097283779854909629174897925099501108052675402511304893786425231376788186741994738358917011693348908630759145819794741952307499995628511592762812648334808351172260474332906026022143274450502817799082531697346327201066069517080674268862979767353605699831871598077426273410981331714353166296043132590086816936166537075609820295039230954383527126254612789078956515472530259660927388447782786758711058339631861262282644682411296576777102628033286753514741035187150851079948401853624319330808098999090641799423353129616872984869707105912006047397462258653756344183531655389671569335924914944884566416239197034265758927275049777459100718362013442713685017931259557712860447240888843993080973770917252535703984894300114463139296906061721133097470181094485362494188124913961571749610560281138992761101645360438403992569159452746949924520021227889811659453161256168922240355855600171583422645379591603708918235746271765588590847921454911643631578134811432464050648239899250898901885484945515524761329686951883519013978437868453391624347212861955516828197067936577206883675012885175428933574727979048766752777069679518519130018065919495306575673031697179502239933751654905999748890313434685322505274647096222005945481501625223040594525428002927634595799923178101928731024656999901349741217338071365343574861855472002937540471860576021536121081591729936252698657228043694274601846970273851646489843428377503669233411386925172997953433499306538521436289750501416571199520289253587482051267057464065172597967238841727726614607576192742381885046976247989850574942244436350188570841197248282400629238148784306244190267792131410300471370294558001324326973783315726090265764959081270569378006092326430758170388563053723908881188008547765999658387753530162215211283440422120677806267609135900093789046917383148442140847345186228079597921688951309577713397600440374800512482921036212856256869051495072443485705190025850552970866137230189575562407920176465287781053346900493782129320499509609996386581668529820522858204906607615525059197310601201220561638104158357147349917453135380556034571656416490802269843360536468576098587263526464328032138419625020176000561284868448369233338087192441513247772544512788122930234904761097517220599868877003778513975654599064699443804894763795078818343878827995442464961795323687718191917759921277563010919531202928575355255297195186599788876231126101680775581182961838449053478544427538856894277920823582523876867656298360933332224943185360013482521242003835479081231937674190951248040291500665761357242586725321288354572503796825649647291688491587667944330036835262160270990994758893737121885895481459808963846208582899662331723173809589483063824420062389062090602087368640305758267559196531637525334697603603675036027936735020979405517215887515931849531037198450207082428866730622051087613747715394158308994681404860775815066919481849064289670060741129679462854049613026703252446284858963072584125992993928507151227842971174365972366565830903953073847384609121454372714825920549449185772261151493043536488832761191740961164701468916348536268283019873110704054274181052430140653652656340468240566680158204612008028937507330984676251091752290473731226366521061359435418897670194599801251520289017023069375573832565992322923374022854356568733690046471042078313003771955612491725708428304653427229747846202400121057706069541072197633512360589477491701965625992950564710057112299829355309098544097003363255961177797760827467188388334418114571212227677293668739964031431677921758753967969584285452890659512247800679533647562759568699336303355505345126426683306322168935390849124542594468273353312147337421311315443442653674042258999504950669769398252855173687780946028819969540135498812138488744311379636628141797760910893424102880611523466533982750717496816873277151073309092945140473048777354218048708219711949717045294698124393789660302514147246398387483721859569407988782675661224363799521871011060305881794620010778347862962845176515886649626111498459345837109168275516566926178583347966008355484636986162482960368455241435188980626869583935421869765851548639305885603231136641367139507332804059518516352273329566951369726569739077158185169014885585618315638855530943070090779685048514666267345039067512137533190049652966988217753504581802671841282749263901738461690401571669244886074552683858786945526031441256282844478902158363388730361314716692585273184445274167728195218996796735343774950309430082533908733172889933135921490845725300989815587884746552610130991693025351069879432070652706778826846146699161871952541323822964678613143008420136616466360311078358446554694978270472183557690216863817169961062525299482095201638972647405902547286405356796425857356739749397570165511447966224996974643269302670199160831065065242067972699831502548578662949264269153840885304305078537140193266339771715033619681547713321754166282352344588441786699025937952476114658448548099099299224345628187360190383702577607576048603675480726788992541245357344086164611361444601676518228647227952509596065556804423352337079643029291753496429077170401923247983057724284801597105322976537740655652607843400440220657394789180062848491661133397265617639402608083939124114206131183974428863750653715238349665522354847848753887882300719217824528341606198033789133179870429363287695457843824120749437061213949935325951269579564993833571743300836778146532151044537612811463728752833566392676610119783347902578818363174709534253037921482140884396667144888533512353770782665682888796932852381603610927423064302329391279841529645668065110692628750009694834278258022066178883264878486700671522760190718718758390146625260785711770390968662732824161858219298828774702510845877336754131199111353409106460905658979037358040102312540278124073038590080072677690857906818636085004686177486891751151816365462382773468372430900685068676134310817740594202844654886225171682709072263567273603654230750215437505840545772303038617262323082922285887643143631713534273126558603954040517014986758427942448247118791045548589730760249463652248309169587835847752704499600735910813202965008317742929126774906767408563452446964815318528035157913072176899780477458185196445353044554381824630302820230646456199500314249397149582556274691377113392904229567524695915574919959487936152637762487352150922877232385438420139919975126064433350451692787510887690110461303707366948062931575643781394661248282068210595720984024200055431507945277167341645244136852237962345633126749645219576205775631710235062011684260278691985670982669577209743459264946027786688903445960378708845456836067930474862983018104045171017302511285546184455320306270102369788473994061917552544812845875207071245094301558896176070561891790818551896492207362686459089384233949189043416393373908795159995549454012233423462491492277698459514790627154679097260976932469771346119522759064924968302896795926788882582594806277295416906004765592545982395376585120023251462751106899663329999224153160045589665242069748881416929120683278530000354580114366715683314804090720084429936354046508627389947805886776434036649863623853540152122839869221067978644955472995571526046400581442298945459248020902276727134908090105794108393310106643110152495201776082850453236747571579559085026135455020755989479658463877032104213708104641855560282498810198455371397221483027541597303651017617021953251125444264686326458058869942277906314546609196433256980930988444167003413336657557101762266897721147155459232587332998719143125393625767218843157822939620416599809635940592620028076016422276284123870036526614750349571975404807819007624626644238859774079706517890179128747180597136978956161849202124434966804411972892962565822090166849310546576555151448585819783623710325208308110064418946372233782880923215129643102854596910544772760997137593296442150860004232589893070308564344939645738473296608239878488454862833015829056770865219619402807718547632676679797984731800707032029854552541275148935470011394635048638951264342116400261802498946873679224501137914731689552667815856048734031230014980813728993696687938153203463578839026553699079442997178847630509783394319648457197826657947404776479985377327171022569801980384509440989312968534138917143072384591762465561783862897518602019873702958095394209717546991462628671707491628521723248653627081776945698628776792560256601658752891412312545694583186070010818159655061191481312990712787344919047420616681036409748774943491502739332445330200101154704154076110287672127380838797911311082767815172506290945207427279923186002403977058947116400610784516707555963610516633976563934319946679517558440616647971685782867653345110159194193817432505258055795548681897254071781858436842425513962547439356632059459029595532444621399786769547087668204749879842631367756693719985355263215080026800549396678609558228717176888759898877541564253736703936413850482464399804117894599029775636481846781548315637728667276518508583739374083317835278108412542859036742373797776421386325299508412038805297761916477892771925225618488654832565685840117912027721516811060607992432461289290374453829949220784991146808804465645292584771367345324718895539528981606872469604438019596909333165439810115524663509169000520082458259686383814468755181714266479164022289322900472429753847584582524890073971513074347567422219645324420777466093590379335702755822823269895780019700731099965988827999363004510662711156312969166519599599723410646429200517715427164492213162454219508098503258865763440601764266101698150996351020747457783728837848532759334960131813368527513157924632451801740093637302573382888713313930008179345436849528020399265437273182055813708057719748499554881358182834346720617751442635301906064500639437068602268449261686033795104782552196128301327397996129477260565269432079694907026946870827989805120419697089885836788365327974498653377900513449823610952732232805074930058020716911952541311552566338244613212645529655367765475291053654462162587266497250542921511691373324959144333456734690667404327579615982870444643059812542021189278841442785458893978032396916314821935245769547262396688921962687322030218558481120372327565011583563662448302089248910628821318020549470392770629192042570949817869151870574942378852193151770560611219483797713028870292690611412150238338491928692658530085766934299211294838215853897882369112563280715428975511990378021994239103589011446766259558948424143791092393268581708092885865514574341932592470474769305329996800440528851710569747741670486106256526245888863118251765068858754127720520091796153346384258989287739834518692345432576755711436840961024492875178014758047325920161416930758617041060504532550011696587241922002239047092641520512049886820740302009813731691493693408995846018803500723981768011058466083895925039847224855681718150054007865483052087145973937031070619154820525363479332017896823033138623887905216057378425845118891703460782459305268409775654874728038634978852972764659840241547029584262702935246078613288271227463932704215882204860688057031121580564449622571090194469026785190741604614752551347829526999242395324945786720465880389930913732328131874943687269529597328401424751922835240550664757238321383432999660115766917437983200588365368037336075769929593989825208456598229204247748149072440157192199229313012960927802368991283626328102554540811534861446764295070887372530027694900281401020656117740128489391965045618605607659057414793772997568722679030001852736663188020749448665494118222786394955396121961823236614031919403189214932670761438027678972634378406733391825403367269897344987384474493982489375964186179266636122226409016158468134845873447453242327323233768744981279054915363799802480669146048470128212754819202964530601995431520824470431120374667083339280627512572472787164278361093676444944053560399046447445214878396313870671340803664365884687394376844140931387943943029340485191665766695840041786096620971345968368421714775627577285606646959421128010740816486393181680536025865978895381575288279314590309635409073315728175137532884860259414385937438122949134786682039485846198673609097065852767865939605565137923537698211688923067107893210653277307759420942797958266369032631084560380109869514703929989545280033248566929910179244320432145447580836220283431370711456307960298844060559263267038525009151792803287625549733439830236374743730582222634878492454043286373807502347791781387565653661689049429516010727192154238212304743508116098315225662096041013060683290457898579150291964659739824951562370584559848283510305516188064177506038464946709655844357304715714277926081590774259245138112717416923311402572124527213050086239533978803733359827933942655385145084721271129120240693818588351599698518371649370617608821905578559076920890012793943552134960546452887913918713778941967101388877218438051161567097313706067088550928696578761918573839112867392356726597115570811777186947299097436198262309782031562798639930516527135502253996031024314291062705751971844891853395446477686841054143091254283995918923632730076606851600743861869469702561709451721230035887179807219575390707651612682515880623387787261443905817223363037469434695412133920665414799546626384616605944805655284045398344127439238365837062899345316907174741056414290160950341584836226342005164296453352546754825747283706562612925901153425864971181102561690140349409733908448682317289895622627312372570638542465900430606258252141259270171658011620223639590327305637431461605861331381511135680283676525007013126964283882071947808534150280453508599106167521700801273928422366197534353430447485750033090736074907056216210317194318145582850188416186271711015260898352472692202938041761385641129217636117512679848876708498145380969528467612029578559641233634250616238528604795544136728517780607012028484825353998077289617372190678160165254638150293536427889891396977214839591699288395369864104379486899542392886273692580298235148750051375743610796266069375481471933517552304212618382806277270004670913104388726477207571932930580239512258643850714348338623450907093152236374029461153056276119366493265203346098126400578543464837548443241759149364988698740179690548902717953214387668585505818466487267653424224674787839419637031260691182638328679058410491168340773133830501255592715021689659788917102605753566725211534263427688868606696948480444347799657912795287758833805012978442375979690447637050311578042484702341040948461829532888487831276569648187459486543430898847735665345603126310021091818970447470587894342023349850657958328440215657900479415661699939059627492025711944683096920323475659929110227384629174360558204730973631217661243014460890601105892250390223165765559496388027825451652719260224996336131757663764676099526291081177635320830930063003518307698710561367382849484728427688078840681165214702801586541790073832795571581789643317184792957845080456765971645881752401883200076167246327498922000758081515649448351102745565410092013266673025955813734136999675157522084530528894231973554504597504543822265845086308494716380730163136139434668417100158392998473023566049331642960160483158474813162554102773311265481371813527339892015656896095999484745088841856776801970448334040801273434792688739982308890708479626075934704575097963722770271916693317116272997990239800080472703685812328236384617759387697786242295347584364081036084637416003313364010993325866356824505704464605236282883071444873356319082380796794824075188134834684983846049418161689641576612121808031749250591612350480900607358308318407479095985786879671766329461241213196295398201920525252838293595659835128555301060024333838445079232528770737300889660175447563555598904282474422778636949697996862782370070076626038360162850783754556288633639293709330386187251915735835753770545001645389684793407214618981639617164312860888289761125452993072856214495840081577694201017552222623404514960316672745361543946986067157045443139416976327627722085757685735655065808354667691003107474042569298411172781145745394512276780534556002616406191828971189018144170283421270371783142956376264209412886304305366409262858290439141367166223865991602884364953227132081456570798404996245459447699992738448189901804340153810510247660965837330762673087829868270844297989854709292335070853921412089246402103142185329846244882576870979604718320327207243717431042534487015458445252912080507215011596967881304657972627918762781247237790224187146463927144600897257518940559796237688526387001616331573129666222479657362026276272134357129970293382707443929918200542502070284394369010867025739032867010599865052702963124576425818021293398108442006404181824105199709170119452947806382246157394204704717793174151232807354106771204388299765398290486432075809951749080512552221518022098080509531688819188929654694036063785388817833544909788097671409042057238798342860738702464643121358275154255118253172048265930039547304346655905914227335975853085700105985756121560681222287574375612254744110114896629221749725832959842406009472111063471677333734546578057983836824428985911173763909624159499649956933860684708418190763119818442459693925844875769170031215915180455045936135043350834840514518912037839666234643719238173634200077417252319367361899182166588593175237202234721881129156717210560560274236047894448865058870459970667984257446093845360409903899291010242643580609942085602953398302953889639219905680205917933775296715367915537192611873943219209104407631658417754431870572653015462788114335714271187988783423565072863204022602410569248941893673314828827621614256181501239855975837279402098013902649772904753516724823413909939993872199347419768952077164512398219385255371545627234051644511358898529963254646424370564047618815433312316255828486297056672708443743451057609311082853836226391307663284467572808354875854082287547513824357542238429105789611433362415708648995628725703508386739615680157985935825486217189899562750133213990436025800804816671367035728716680060668853064087566740235116771774121714914667163374425437557104152157452040298845235208031712111480428855722659444448867909964396306054504812468417579217344067678146712448359253071165587920382362674449177681306772947660682393510484283047022199530070593353757103050242064717519573182307209173567415126885011932740066831256326072741640616122300848862381145236689584372593720845368116467662922724611336711248137658229422097184336161361807784497715379173170694648291307979781975094007011548822596378124168310382436036495127655145982457174596051173480348181195877453700711541350070088424083191899180534818328524586300243598499388849548390099787028124957685738903029719684429037422479680494039386009703149283582969649093779905247731551747705717698614842791512210488920159471943714379211166099727724616921456180674574746096578049508498260137180324818615773266371299991555402444077779070343470823347151597662009562196713664776802033485803971605670313420875967103620683651220161365923579710588448338361777500834307877042347545269353046026565460398255379946484148664324117857982057715895162791130644686467795508111992053247439272463319695260943409806832492560958543122516873223632596127017801606926122961484239481447766504433258115235299936574633635345557354048296246858584851698054201787928150075478338847254949856052148598268825058782702119405887863248452310214555058975905630566249480499506646602641666131754840181199430166426061408253704424981163588462986835572979886229022960168390745256231229267441249533676826624194204145637424159423888589991664885253657703167540634859739735202110947185670456286747253279102785014101573701383938867479025990624494643861702312510782544158008631528984360661749425386014881665777859909373453118071151356429238460938995285785818024158363680402567500931854673114049901658117195033414613472395256372428476931111108826054739251617844517196809975830033747484374570131399174549085877298201747969980245933371467646261701506122048166497830583432535893569507038103254754709575049128018687811967475909621903271035295527070183854777762495735212908230449860913395023505172930402189871544535414029895573083389254779277838834628532745226464902517531792480577711522012617847063979917726944528309483553170528851358077106509974038058676331729100993011215910106649705286457816950654980562246580935514176867813932368549718811932917504354919845772632928164375474364523415970760463240534303060261012782808487632786190666045869816607683988965314358905972353436276684564672320404319517144290582659817168554280514457061125133510150143895422151936972320546937046176874185574888357111891703234314913324046247469824001699300740759942696933847822467600576884407505630192160968178709543975523312715551934487635562907861937497592838118669902839481485982125235282815276842198971928368497036715257737374966136099702012311182234955033144463834583415775615124272096615292247148333273545484594272680372615028508526905897549067655829802320218866665084345169569562598512431811755881908391235964696646766227271739167013369640292544448048457371062517816654011583267618887542968346231609533841483275339830482032942407954052534757112012249111535894690580458584661390725980718559521268731764270664198459651603560446543377100210108036813283720305881143419457622918992468793475240319429370478497339815725343648331175729483323077152859015629425347294651521712520055338052925035121573247629765574773516127332280263514939108758429522684487326395038596169212788170592389991077606334890869292696315536042004644656631997832977785792774133568194652954398694716348681384271392431525518233133205299585632125619915412931686393056538984179636414547505937685784907812311442408934834987696665536029415208341873063245465697244879514838392650191019198666902917204743215240943344960741157983871591558526819424863410700493469374410184504693576899699637365446902324832516115030635683177742970645213108405526674900857781153783314367534880419104127573482272243195739751132008038538988799544010586744994232217603886285824813606928197049533511622145159453878703892475779498873488769196082321779758573537920210405639161684686995044426909600722656737618826654823148064099473327123633674371235063350312616966795618533658890260353769536607275697512154733969513683201405844843181904256475932537751339558948881203009066923217302373550748203375825116736109394754576014254644333935971733793939301492757243754945844031460716490130340041470648322527471934682503491862474079321802736066247162226256369807881986899085433672145914306150691445737830063435573453818441358351851984558580740438046153743937318372986635393330799890735687238666607676919317569758881508026296556801771825608877873675915951127065140369605812569114195838695380996933896676510379234200101763032466035318741867364183788546657855551653901134025766542233283798127619245608049476725624802998346711173757087415806025564500258239803740016437582278765833386907770903312761189837230202462565159518863211202342072553343513162602526411922005376201432255429483441733422876572978399540726392619264781054604001086053880880967072666782023598700967838616841580105785545188312818124818587165330772982540697619748029846127569297056486136844032149854476459572260233027189358149437875275241595235797044863070454924237467369951224399530649786230241427567534632719306909492764643269720931827895626678288550759913079815799689053033236128206097346617459607821719487387896126468619832614824178991722339372892455359491365952231415366911082606298970218083152410757604790774587907225262316000282847305742204357919938809121086239024428261029126782189250809405255785528020651575476121240592766607762686476738603387459178632387199691772793990200988870059618294230406767698860158365756979958122908702615568854296259249239404219060240120520833611090278000031265357675919104247424307650815356200963141397563627297631253513953452551007212887080960000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
73000! 798659599261406521399947852113380121676931728186503235247497617443942207012291320852727986675431949840384527973510896915071850055285843875981894101285496672060700989698238988480240619324757081026798688573068535759677125762168260961551547762435746874425178914356931152256656789609060237623149798652778074148364491283610393099169783157647084794582277831667677000860843117750934451221392973038801606245869103910637371730675635306069098740905021913637378454458393345280495008546388593599691725686670823706277282899916778062506831886793885391697640433208016076971119690160047677565803357403628269466589018044672061455410003603108176601479348661567370460172636757712904408223075869554619904072450783114227664568124832534041154504041603606301909142336014446223833154918754279574026283515634714320126173717139935430273326842716851443717574806584329202453903692949797841890231852913334602290508186068152041271716463634583791062458198627480971230686327921083899175113611746345670214536474072110555944244849099432737427082885437207279465371426270959530634271116951740825280553558564856351941780388884966114656546653664807602717930132312761069606420669079792492142461529646804519195541304323878082607621456075302512057405836659203775697209758285829337428709441995301964721216222572280800664579899124577176173014328833537457141160941838472221069597082862747953238616649216450238842235852991435825302322150447695258669196508882577398383760224228947307644180578769708326488912947313366095356912427522637774930696283217191484091407317373805658796756957907777870635436549188119685475567996118878389198703802792647565299369779776594198233142696947395929789488789873365574789447248430591615072294666577643107443042750969289692624425140201675313951118342934134067552947662895031286563775408620487251334822583181122764540489537759022892926890086651153647174677397500967488979962186981554840308892307970465975699475000938498443701675898666833521249086461486072558926094335033503420957631853160042598141127470377945867814071754694797962639724633772726594809219392156471397414558184397930336969751375527996889628251018206566120058903885634864236037986433451860382511053061338746047755159010816084620870958374528923338163700146040161412425864551468019708872865136297463005763256775004808397018040605976936449185522980300060923952581325432438801468024189367550435137380698080395705283851618130956954927049355883844210641833454888541842127160532660084644197301250695702801158217316798237062756003288447641121647142463299071161990047565834969247055908221952189691544389702244283767043778156202830913573934342049875275281530537655013822047568406816716354183084170276421650285943355265368182594113209725273397734292553603967764661451498191929451353704821989335747816186596084050605508521057640683500641771376849892490390996530267369537630244036333322337772631815547430592621206243930375803825965542765494149347636368273033949985531722235691210485027880882789993896667496268018103793143807520875402301423304202878545204370679387188360237661387415890031757210805758199565364303060030738098080819596374029142529039558031405548206443474398272767252923657112173282175439635758655294784812391229936560402396897506324099541103386636087643694183618529943745286565828963692297763967425486231816453565726643799105391246539577036934060973574118851230294875971059794766018900916605675384805802647515807211173032009290190027078953375064169378713928141569581957164290529206533977737380292043814537299760109973602476651275260339678870427817057448038780932552534920014195532728088905665074499083181233678598829921957264086653021855658159971666056250908046490598150461762664532620780423252414505538807629366377675007605352497848186647656265309621610824313132581472933547894373356254779895135894130120698037497767718665120914899477410056369062113641775425865275751446063955300726747943902089631385713575260562379534522617781327288072396107258996800902073210167214147115424979341419958601778291633382386816458071337893286417559860914467762957670166689118644112793408978133418588818226780006376954875443350252486294134505072226095301039501823522498635272206108754308073167601416840327825859066092063803971003783082884916217803450164582399111564490255774756024178498455094986029988342779118441572727247494138898986145566839019320303511816347113275210364927923390013769467685992215851789601246028150256627192209144523960379510169009571821710135025850196066939209909478334151220507899575579057975929725584457796872537143237897536361019548582616680988622071878987418204967179704793022405293965303610956923752625331375617463750718545369343258654491697010758768474465480409411208285207503070426029684744952555636736045514004898239536344680636314595237211105362634885440079638216859891354806669180444561305691264571404144529372921049041178137463387734063810101617941842264060424537893073118439501011417441280187086313852315847823090577807937744018852550340983855065072398257684657200774422842432604207094140948726003692176615731508449048496665874691909057325775963728266379426152318728795384666982838649465324121564206846595119692359528869006412862497297834491081916591334733069278044914766261104275356274743521258688034412852924063247971062868487274224043488366664402056793237457715238104194828127845461550199144746038786409366774077453718551309980238489744619205712885960054239045456177129907810697861808146123071363814205292692134123391217255392584581954748390851634352264620563791091734323859593369918974596360213219765255458123149286518858323876578834154210688722096635322764200732992391747670815749639206494085670858138257004136182289421704826798907650528119732433393965118823752205030013706732452003895141463870016356437254996278901340933474132777597484564366375741505491128751533962267480263499356899335238063610873752015627429701078651428949244524557666194044967514440253253042082195616431029672685650712287081973881962800381233176159333017181431597586148605733180160795783323998041455522561690963390092222021913415290031325915821699412726941158859189066661285463370320419067189611173537117775279378949241050323101714527407732178429502683917074727917542230089702286811900573965224544900756447711630478681611088731647608103123597327911484038006705199871356263518306402283606644164534316073217959525450050989320363832255801822078167789366070985802185839627939009821788404834545498450825044471293645111077759002199765267988104342444303662153628438960717439210739951126228020477172335038376283303042671138456817826043844496407230561737189157303897600964042531409734349319643788794806064823115651094511631499680417333610217416208697007345190445392159567937837238161294843330175038950235747734269341852363520461758859669378777660675819819963516957359637991785824312287727511253259307509426745551393356570652745049875555898455103481211962620561633236240934992460968670982467591336286815301186944365976145828449653197292682194277292991284401603290377729681211449406675412296067456556686404084830686422730090750188694845449621743948605005964635393118533264985131775143678607000074665244826160859521609123414236059438326974708169157797616753685654986369732460765590300709589292542709590781280952261112717853551723736178169427669748342761308640001608729970324533518350515669643253489310686833090761502779022087350688608720093438800710687457816597153320479596137624588387487234156041821869079879929908977253832811197040203716442487971555841836476752270561905608273268219943402012400359002710134323088978882643247270905025527873686983297628500412422422761091137439774901487053539769095159557363374833700489489197125208075812023280649763196570633832833922780713072922716696201321908851340488948683445455599335344427143745801763234574425942014421057399646537986936201272492382085778434303613594735022312175891951925393019714809157506239580265022031110728743973074449495497759339414515363125687654340479670100941707178425899893049123574030641230161059124168727969336688981017582490005015582015712826832011068586401621734184164215950176925930059605230754430802386100854504338001764549905978004547746620933097488045927528529035696253950070266725655711610912204632995623271450626710864304623690887408607236905187347573782789112434410897218104229664829438516522362489768748339967787977595087164087627743440998864490324494824280129022105991747786553886005006227697469269756123287935890317468224309878328385378741382820358516158339409334301516552648550125781443097331092143151684367363980449102669670901496929592627820743228638969752983468474811435718372840215297830269873483790907941157628133022865910817672831166015642479681910910629433453631813040426241483655611745507600254315610512648698228747930371350487359469774128099473787290825777810370155459813182472284013438833827464147091445514634640085826600202001026421805013188736612701879522180151118244875109701179012695676529515250176013450313435028154259847593948627845192300918999669292929295076488545042097974355062168352491748784060033418668083953604717263993798643084129905599540024773235509398186476871922782738364182978693214626455943361557043357877726952385598828854543998268718536332946661868285193582706492166581764737087242528436047717879899081685086812033224490384931512884617643513304777864826443808407366421207763155937683329920139825185850388532335280709640759316073165360537117593336492022615655540837203871092230537395174157553275012402164952210105201305378472192747001675339275997143561172458684917197894451826314967491003341270831467873652413712706594032337136378143575894366773092699701601499534958081657297608901723937772206386435017813510769646249603594641772621325756109505716127794652531151777466620654216304322904647801474570494308551638975246235286979594765223519968482498620184448269286681583471398417316737420902240199871931853933655923734294868692029587934897471536076240695133223090817677384287151858686418513198865608447604094022461141646996213728694446832537839556276290239199681217624726025309226024070592362891496861273474897168144734056881569572754384908857775783291197381451868612126012568339164899479892691161267893367705366091458448706797134945980415820261905011448249483350454690420209805276046994527555678030671236072526987103126035605583040796107597027266468535689614078837888696568931631336920584159517173653119205767676099749395916294479105893869869227709548279406595444740787566043639294722091372422783334418215996638907385010556851408733902561813397538873356803938828052336779760701640429921672011843687118012029318043006657028009830000049306678247723031534889345296158334942475734107174824557767799516776550924687022135091485191755750522698219044813438696004132581010773896603680635677526201291107380424050661724432438544122589352704667031990311819487027604133080742344284449244913972902922802657990892804797878338615265497444005843517539174308646092880453560259734966112387099496147593488813385250426453282739511071004488118102457847262955433755871999619987509880071493049510576465824576662601353007495739004924985629047558899158011229980166242317177878144253949977495810964522602184915195898143116249671545062117347125570481870956585954611707195544062277900876008489754151018379851820181322703680271145250302164555834353444950752651869517825335473473692216083232594093650444302745560454327131233775792762203042646011944835585902556090320727827802768259878859879219768227203565035582395450902490519955038558524382557738997290488746669641168404989868808821062774646547829792921768489415515518402494592044687254312891947315296492150628921798179336977470425671826186077073490209343358732130893012440613685668340924677928221412969751201633780992683731607111341538231740742850622357057560777645531201284988802774353845603446558690149824957274984706942633882445256239899686609340856658398684253936557742965601842098834801526399601915846052082222512911518167869982449258802919883784540772021796244430255747106614011633612050643524359041377439125857817852466263857811823832599419459211540418066585548341717911010158468445686295512815951708809523329011383711472721024748514143365199415633583099481456843030978690008139709509577286115113740038412318595085473660424581986777757312060043966310250758723286525586825931262483440915356028603789369548903780558414973655247454963591471476724341676370434037615139329918951210260523704447400118597551394108110875651630700975521761571226778050691735493332703906230716685171626896531416017517660937444974312572479376528055068174884700151001500806432631813642741222296366951815997881122582863914122278901008282085091976218759795154979536563833510720529838162104842363160794394588526374154788877337844334207576138069118761393282943558332364532376993032718311657669417708077535944004747549875932881801060267216360740777273999861865209721824741254599311331633930644271573598748919796379120412160746602056162196257823439847825402024768206376242654702345934347055234068827141381843868357179964209763251544422148230513928243511152603923060245070412135795007675006533352953367140120402627704384992221410943382757400320399164817556132903804413947229407651897840533030398175478106736479728474115107350104658415965974648434871569642962161419897752866079339727521142341828364421237169548245289116941397538790872010571993400576795585576910390599207844210214177078974047657303373878034978818916976586894205948641198492381374196576481212902168287968117847028016632155167752220915389227330432477460925306382435698551897347380749731575781967808087713442916857117941037330164444817149808022744294573326259228980020000345343694045878115624601863115540800215837112242109885649364565878690669288111000610375956993270797964329506936156756472722183749502513082134968165537050799739187193795039018674141032471775703962738786663564352480453111056424480723371279965865306297166082227106276674809618406212896393361969079763070655001525545080813569264607734914308119037050343916353891341470472412607085917373533328669156239396766264507786710481900812748620325865248700633651480449918470519634756430165611036854776975394451489432942634172192351934619718480591805313897230011797473172122465755208595294769109678235334751069074034820917236286183684616940453429024344372457725609571429438265625817206917383754943432622684500278893624797971941019293673035227804403851935910738782352128534094069295918576438366221172761534108224906841446055981284499797244369367733788239727990357857690871993159326209878166713065320487301974133547859606900656787762304082175807726815198660661791935905454691379167807457142605867230973584801168140015033276588041524439030589653946059881177415436968766888277896448528422800691465836914546910589561729782584511044704540239313766122119726196461071201815530301118680539215582820648502397393169168942459718401633657155314371250213286082167951642611025077320493024216092424323722788201119826202763660456299952167929812079386962058969179631322732262625625189366751533671877308769610349793550660444476467386298858542513400826076459093313702815171320634507894568957108788048629356402440980917039583305288666514386036931026352944900044492013745426204398151304488172413556373806381185396277861835822676661088760439919280269057330266895327266935348266595093008956648660165432861275168544947208443008579575774566836869573418013644062879414800493772471150471304542152072167689257467955992944023246967448713871482918438821121873058806725403539466765613603113435349344885528594318249964833900726521623242586128940183034651747583448632929958228456374722638696308988968070112676760143834808330335700936743650510174476318251062373412372709714327276978870482353090743045634596981336794648395739635677101265800255452454880564850063679188343706009356644373872147472075704065913131745428523235114342090798778304617630450116253274804347218957307691183796576128085450312579011525513376496925811142978268837526312739608159465923036254155751325755394203435072957956350376520809801324084540651088670289373037740073746585329104366478617052674142598926129201087714874672485577609302850648971226180260620156890227434694763810369135163754867422104104270999979402116263852389625332839029613343526036661663723911480327048422448963558793993694573983269862186691565226482362809883604655990517638677533603940941718011184328368135571486471768710185584485802197949955628155985790221725486287361789536613639951471811985781232943617743968897204144718295030299738751478597073476762446414705337114318435593391960064334428826389719788910597927376367289092830583863446087913963162160538397144959250690837586798027485814721900408254190607197977723668596450550567918590084302090496673804870044451287615981685072673324868801414596363794643140541261141273375550534363862722682521257207324708407671019694464495502579345876407203076314938480150122308332682376346134803384947595791623230538512203867943726411914881999211792892875035207660923553667243995415716234904494453328517130017766512164269156432195015149054254068078435856824547840756295484852984067739206080980866258239980210887728745320118939229889508130883516630324892886239992473682600109847258323059235544541667521753465932027553908267533969168731907022680993141167277635675746188672332299927592315787986524355180538560285449549916584352155372971452335017067602056353605505499737488686230526863654684026800114432157833728510203908630673167571450596361779956594586866348453529019192144915389955274895425655854454687385680725140458201308776202581292544015764252924200253717393186406543084290656276749539059193168593666232048567174305564029500072716094255672352769761942885912694368855680053532838173301831369720127793782111578809355573504689293327731606246774004830431746836429244841370257403419322289481207141182379812074987233235416869207310673496107241732473341615794868471280479851478116509250433810722310613088842313875832920116354280809351501612753673525341518803898756227725372642085953870677726648425827196883991441328600107939582145496699894351077786380965385358868977807746997770242161444303777732083922349877250882816636343369779144727319327094454566142513388167973638151144958102375563123792684243262396902875648597391356278218124461907442176690482326850677272519139900184464737778519932477992120565336377547369873351174514464126747676890954440011973651226549877380960077903896099568454084606918710045949546688574637993415730987751943389185375058223341107266541647154930517650580301934641215019898716951786513521510928561841441336014936490693186628423728022881814340597119439807261223628313673218276464894966966768723589993194914339366590129007903011356247737003823142847748850760035197471310800241831919931335337782432633672868952150711943704472856917810244837346420796158163771706025901873005475793373292073156540096568943660961928178010814491053884334864116019852227902294607760781385755175418513642360522607867656643859015116705699206359623958701782562375864515965767897232306402005834515699779274980313011721712897999339943657210589492817570297083206066799997033376296799039667689529962824351410290319217196322115816025277906990677202836395455852273342495331732462856067323458319370105820510129084529876142035690220214861375619232198904393980150500058839149276906498309669797831568860758883912863212101561190809267645423269663854306406726895935220949569001593911943353648405753026098393261819936246967626815447313236202117797589394123054837636490195280517259548988475698213984144123072061266733477388210986532273002619336224491627710452612576125931963555946626294940465892803295320444235864737981895257225107123055237756665917965962164292425616158509470345663306328854103035161305580092578077387467749569970720951133657761113876171021693237772426926027056273016829405424230001211379892247024162360123525380394537528131381148996678615371942786373883872699976191227057045320825122824024396947482517128363627345373100006110232695868383794951370857418254937753432510241982561489298338606668644802629409177238616341657413245961925173578723488694345714594731582019312234472626168378920818281956921700589970433756657340871328426447846104165228577722231738827829176765227438973179404846342677524033511149290963913179678592867560734095160884363244891247114931971464703364705116435589143449033503973937415357688324875484013384324032689877801822101764030712102557391440418018282954038352816604088535930709967793338126762494138304372565371555235931178389207569761457693680342023134466846240046092565811756902334842026265063192639989432552184211306322374291023380183670629194250711165876585930798820391851804293026176925648508424124737448627843397903704159614185759903949414169670887936717755539385356653981737652870065824713431909682038039618413546191996293799044996578085342629608634856585825256470145402490386954666799885697273242843418474559033008733322966134816037770623867126598627067025415641264770585671015195298749920911129271565764265489299774078895693710819499851715177207366835234061850078895812945395082245311858807663953983057103822590724229919782619734280167361558613913018090658900480602510530396261998886524858738357517976849565235028941540004876715695693549336272202310861623169588877629954977625864571334737622905135135875788350996645612137430671433109805364280088226705872486061124640931776936518874491038156343080167495484222744672154539048745078513581287002411985976032588731726578361693654454268591624574703816219649678463351865418362989124689072885403366069674482069486805480623773492495989766317565098662955991737999478923082657550518107806324632983483814349714082645066549282058140661282066902217058980409716940387450695013478127154242962237028947303911929236685905687218742179562806383450107551191133271806387386317995805097442413430872529066582009566714706081643722071659475882120698405121673971946422654755715446995248030650073318718553691060751527233221447341379623099537956362262292030558370522156105158065128445428394029972020301092750496910053383394574550440766054256894197915815959589114567054770059353382183778361307272186631562846742399948226146390728430584114737928537502502703074007380411338659862434635011916512418705286552800014478442970409320585263610064205784086146375395078220553390693202785667201492422452556114205659176403065984663721723630257356130177322792476357721783151495823312709362880317989398614971670016000815714559525957676275740351281324669916095773401590996362129038809902461182772644826350194575271902727512107889840858851155100166839709907596489685414875955164943760394369180815838902489089009961928168321331684362703625596002887576046135328558540972174161143118605626083581515918294713007150422747798227474408326274547619417064421878001338707166779067607893650282515186639806621739679151265984252280338162941852142214966417820237585254191128066026364608612058416332945425620648460229497063755825614906567080578125835869113497807077200260089676880666671944422547647272400176683184030034025473886119889681122556337993243158125402321541725172528506762689999391023673986698741292323701202300849591241521684546959872020194775444895354331027961931067325263158951899170216204328918144678917261189337178320687511112206282406476239383205373752776639490869028025070666611708634022633779513136629959428969758247396419452484955986256328074140595752555290562842397035875137039602648786527379953990810212010773894219033001970223083938688113491576523547538230637591710640900479178341187698111843426918165007544406817646981975210796079725309024776130333710517724131033223364634852896231497357414886204776777886662167920885384736628941975204725234488579706574209739388504674508295855381964053717604097936628252799563187953524553189110732648446736505398467576148473700902517948261130295534125798286214063186095338009242688256526966508266102729132440282404400296435589439344058374792928173537236662112725618489018815212620289344888480204632940380902046104203728640512676864829773596260624942638379559358438505086212160485618945469124769716069576074571387678787639166971973427117143808088936888852449947903462352015926767589051028347993474671958048508192669128542254012098001814093445419012889753616448289724169412290389639355085385257673556486263110705269382296850437799990984024760307938102989339882069480422400026677732671018489003030756313052999908189129369082638129811714405869515397369103528359441760388759171953027353997769602810658993420801080714157101972052815698202115587524333152247532415035372936565652420261972019890134176540699660547643644342578170370537207957216966538113405859549282618900308830693375434364952878694875551006513870597132805427405986308353070343572029692036586553634656432884086188510287416720189255513831081979636805104602545470916451613384931799143009039335951650070288241713721086527970556383552603860969883074285189811571299357963232919164283550019568269136819560466315910016813523346825052858749322840871918185082117348867324942538839081076175855584029376231868556421339165298789392641061765799301239433079711063830431189473125404187527899297856657626610119106478025159376883760964260977387877989391791901675300488605559118939340448056072974912191868450733027423697127206898692630646217221132315874003324468978031549981131056670550963165297344350642554379320911006434097240635558131509037364879820978351706269456991219676106477876330249204397401996939965285410125587991713950501074828553377708346534881610550788127623328167099244549162017515075207604564350320527664149066676669200151307973429566706999579883935774370062485428030503280873573737200557982185320559388636883674094346986115464107665700078723807019633350837285729042587771582138758898890625532984914019898171002320425858669976415167147265535592920163823921765257591034089123241568459007441550195024165016413272503367353773500122110475024076344925327864589725284599500384344543639407761256861400364983428973123299356986735783227059604258646878257208087192971180086787796201263727082077051516135080821949440180777483363154058626988362390268982132351571220719779822314613131632423284403883007065652721653218044945087931242250044297263599771201251842593333515579579469003655490925324903854209793126213454813895265828400427819881895886283206773875255958359811122621117571063048362470182429662095111675642035964763159195371584212306011102550970610155732532447593769968232973051523847005578882589607764902889048421397076918635610558781278133312705318781373176013948320510617024162293528173822045003811185390160581188066533974525262350610157233122076881699247416858821587319009669647318853076116221040058542834039203835668988912659534516599138241938422300964092273287034568216304871761330340673872906400296130572679560994805725003412215712110282104687914593956223203728775742083168082291801651444711180610638990179473255115688349726106633465728763341341470963851983389667944687434842032510736863006743011623375851766112833846500310159302563897772501455872566767485715619076248532844059287559296014554870358393864539486069358069984623330516982109473563790099848875885213582139968306511831811678348908907386720603607179073789649176435456357488232881359918865133857010019792607648757284697282397360393441807076446616191090841126524544453726199355174377402479045129392884809682359366339855191032846291999809886212835989412297958996817039212621712912216402296216957978876269194849732718367862190028215047306532853347646986225541354228422677599191027010860617492952247618395031020958690280687469081142939893740518560493115336448874167880555356960214004967780355610895160038174587567342539160968962766840556267094606026966247451415827683650177064130946876298733125430553163632274600502049777117017936510430349919565110093827911066872931736624767008539740184759478542510672868798735450659365920006652139106105588921199815298370687970873245460560833848929964412492976404770326460979585314365186327002457064656275769708718380441232918699539728168793358889741325157548227109502769844127993171984576092579458779774049855132560431823242874676628738119514931057889513638350247132367805028182629318884478274158397041837575007916184772528822685387730620274939544288487322940545060624239525591966789783271393726692615787487170264589554975127073869176966782558704915029606988932211316928437240428110817547855642075117567070479743298200573422322101760335367274347763753343591760666775145383260792926918858991737156897913581938332862470508993831289808779526592714330293697717507022288871335593510645946382215924953126984043205948303947172090375674526627240437531434151084405697436434504447463113306040455613287473549588554399165092828532051133379162233665874702120827951866475387186792223202399446532589610736774213377309773348333709649740398907000011531849417439121414312396778487600933535666014744902344764751451451666711797149135927230356396499113086950762064994801366743797679110996842265639129965864599991225787815392253329239556600262269556604710303208578210641735500735481727045685347851648648621736714348516032015331150015851050533094554166488881053675885919548779933605474403222189166725031364213695468398362255491470152960224757642160578339885965449334333493040116489994298589082774070652411680050912508564504483890465590901252861186948676349757872342839911157461593681426124639254851071175005154514088686730813901377610621902049946940342769356750068696089903231710681310455808491971310363184219152304786532026529788265992373327283132621659339509057047801319595621158059879301933440320285170455663791232035364358435219287438960126302579585504674656254200538991803333309933524784657398333172628873938469461435351586504401829322079017790478205932769447562728254427286666803497737074913336308825582292888854279988277970775872482078624833722231470128067315962130238718099887701746593035471131578884636557739162277013414055682848445319822348419988847015396361449410630431845759204804351432659461654594266421636258624364711955749816370907345966859462445160673144360894051514863546289053159288481271764406543101943191276479087863678101747137940066236812808928364138086463328207636551549829228428988083598373882227029162060317837259541962240135070700195165007344444712236568810012083127098416789136157246629075479379184373489327636778727320695772753829296849004470189869887945339447226474156284905764475177454822186168990585811805220082025615081483376473742852837321716367605773846277649866839216180326725837031633015090055050043531984145598510261331708709516904031834789521729224984138183803415902011604328382399094778923991101186110047113305860153026247463083038816302742506359089379966988973421213332418804607379210484069375745358910189555332104962439741003998943987323123472168733406056652317591849597540449463592371120916069367655679290160877158815139355904410253170955018274011353386998376527446344540266580722584640658233504240811224018976405950885095206240782354787590109755972186178037246832270097848472271727896350498399347439086908667158913034468839875821974992490443820074115942374302416039922843186616879707030987861490563416468123617163276206123389206886152304256009081752748108163031154843908822111861387036664184591058475833791852743281270116557196377545203634983837834915455719459452196729476392089177127425185453493838843871495469269508472812128947862292959481607825885031025731410001394487948409329673236362317716925759403281824132370805667560235840068969021738875179122440698950635838713512929140592770652382988816716810740482480676008369573344724907562303566521287043411262983196139843392820337246821179139226840169877003885498827002590803276337467866102026151592706550280565959554126194129680490883886496740999225961514239428636762698952622595876257987874820432434987806575841468768846885881861442677521965079502382836101272374659484889718986740202539319022383619361725431088235873054696843837173967482274020270923912376077894396765295809451718488582613842051476281198845725942271957660536400583973639328284021189072655091626901128512015732477165505306431054530474518564220468648274147908754880499979069699674276436617521098328111142502180216638600795759303024606124615758607238716201855990719572760879798863460243704314734398491742604523220258409374053419398606306167657408094837159304680342415240249624852580926476315741657918930684913007795287042560367099889507763855967565561458273506417461293347655876365809767837499950493960748493450844383096272563988073769126774587802254357116256996007559407849785274851062184479677333776763423780106315050057461835545655206124483507579939723873335472901994379320803340007544132278375530643768241024889991580158856766690194563722917062068371506154256363507905589445727150861513182020642725628739117879312466531968809673314204248642137078727524509684113179474957135093150973022414095827780503943408941583623472782503610909579778248494960683358243467104152897536780325054766946008135674931656035180476095721257422917085169788086952744949944146674207095853835084445100962975276923571232989848826727352310135775392701536811860434805345814077872686204719508473748060258045200774485845336544862600118223306484969744449954458356246306882413079133107125806358776369657120162945367710368695195363962335041853198998668347268058932503979765718740083139021442063539945115394360660111537315209265851867717119878384337789684343998027462108793645541272865342558403880691711935551245278798537114037814765064792059873451981276893072690280295881115075390957231907518889174953986301852937227187009079937028589669293009389145686858063963746699708236161831693541527144914333579796767409774871277429211095814458886239698085185797703762606721900881771186933973248744880894501650491128044408862691018419439766322668402527739296694237905377793015091003145764692108961234915537556056658048344987634681839547578410546979465005393762203669015242198808948429587344478600709962276154808261231242544375726100595138394865123570100125630413088288645484220482576872623794785458762426824967054196560494800973952424669635759827716022135124100620777737377958176893426612831567349318475182574328618832068543471705040432648224558995363559891284760217544475261054573511575673162391598135483254193423624273598838720262159129170590648520263713911904586866256965880828877884998736829051569891103905846853011675040810441359849230950502832150312088836772901203163784489385898281232618322316559220950870690154234607652765497801008744292543091344339723072554856431869646662765173673440809555951319184253855514100639315114394299931969140349488596214421253964195556034911676836265502840449961505244862910994367652913880674914087914699242034531574714903365666184237438210849839468572285005423842526061029793954940652308911388387442231762696360021312996634082338713298201055303595108141028713590395659985355856944879112310533342490291927127535071649840623402596895173895005176266388240368871777686399756957225105422933171833200145573884784357216478335848261907671337554513861988342371227221532395918212951436132739503946648008649220297521888218044587854239060538755743015057903811731900092487282415337262219258714574978999550288561290199508055294740184078060584561950533428089897022817875133294314545993975184307541946631176943797729228089990859567156996596793726083047278195271590554010826718214129274625354654564691458358856301695151632056872576356533773856335709102275579636387588667615428495620870526359562303400000326473971012982912121735707771443275931862713908664998794056142129096777747186208312650725727172069601070633752840907321726453700310119242750893970785001950558089329668759801568779821641017602982742131004026867430282526235638427239589942069211042964111773411598627257653312135716034399498459401166481974224880271367140493532363928910829741862708091969945671804720224812287535012853744462639590268493728804298945165122562667939033233464674101248686328654520730082643751850560462082884047086578123601736823012207254621760944577134780368708849819029650673223302345998046165615463199733701424762123758165832000082477575800763911712877485639049678122488782435959507380743774144993597955972049206287546239397809274162178238320116434751494125056115924791495752171481984349265725538392840872459474269760734342034694739365418183788795859882609552902295646518199955125335618074150259369153767019547419907646533685103700422810914803185163824090770261198438230191456609032538485272513022911373239307451750656857019556762766904394475390933333845316718023745965710801051627183781794492446921893318018754693353286862412251536439870635735014365150728533350690782208388503286654204609283577343089804479891485653740497040730889175221979698294308182287286339822363843400167999988700816515821828647694865892866190753010594631198984587184544320694400586889677319451380559561278958167608335756070613979708471551140867092477573292497998862728530243553140103357672503804604924626317520099317550220767109679682703806944675011775463723144138197866104213967200217428191615746925256619695755197331349318953498522930593601794649590984876259313825784160139000825263886468634934885249888917577306272305528967411428300492160241652461565591471852192487755532919531655892399862651739129561071989043835033583800185246106418530137139454813623088068712268636458876956735582912458688357653860224449273210772105879617193886513521537826993571847363361572897091547630154784812327731270728462536511357197098516693535252432265092683736189956341481899722286894340597346371455292557656652914514854366371403196555229567625461717010115931441342741372970147658667079669972495600886255438150009967371048203672275089394848039284934604990783264490603800879618892601552374632865936228935803204904025861457757190827226751124257040516903217011186874480979219726531615626063623093426268672559200094315009546712241203835920680610832364632734339643874162231004226493666919769249628946370394850201028664211194887360176993463466862408459520880681552982738828567430140651541215086875685091428900579982944206838431616210859146847167594723593048298405503727665332327129984543617499767751647449692968964119390720704928499671468841758306267632372373766592268688628667446956060345326812399127842677360210945085097256991088205335999395163871930616795534458960512096208920737284355088294565582113040364762467664516373320044431008510629362749071739724909303003321322063347959150613255507814632027028685470123296140051400958195540847679271700630503305291228537703621306501377067130615232402920207216821127587000261975713094206610701431705571179242839507588653952349189560094067718984422655835962504708131974768927697681442490010700421473298390553253851070521936827291813239810647676112573183298488297426321273925946149228607668470638811359599752903217702874887744273138551767064522732427228167682737762051507832297699241303732644733460673351865169964008951309463764086313029576502093983241454850871233132352783833527848680553535052746160248006455460546226810497490016237793941260165118268484275301485202990712599306497868252806793883499698663665457590518555280065624742121173295223194733913767534895528516419916104914461737811776685325021144427898247686898381637412621922969925883762369209988510116570738192514000324793322774084426873073119960921277191008797866915507929358361172920807506142980498884699091778374632206981661848545903283048390004118315545478827396212869121611761159654853041756718837788566839736880506521726270128883478758554072410630450250557865811542363016090649890916033346355530516397634287419423783052229726348147389057576290857496653228280084528906561098321741035013694528205957239761058251002666249338212433990866525851593323398849667482385018046817027554731635655662598784205891153548719290884489545749660034507840264971125792126577582697393197966705226709995787739306656234515346423207631231286934458860452410737873149705223511641243594290630081934552026927369400188691862031142094981916670062853525468888487613123006282464284637239634088382429686474472506377759661171677052616027772602628308276488581067624408981380486356657874054255675633929383160344198193918942321918851920150152202079179497820470491934063847462214874511516526945206908629825943627264856511881987066871899129008444081205387305799722538335329203018590003856144228674808125775353159809544185074413880436781719072112918825213820560672638295136863911168052452370367154378218573719393415710582430609115168794327165284051804690824833162306451802311174026710852034395094171322769184724665066779167952393621357916068237130887625992258719361567903157720814072694672497099268454256326928792090724194972644933688733358201835936568561165265756242277539188760390179755047776252285195396046521462705038187605508911335075135761488064783686899467445305079446853239326755519511387268697412213814306901380528481884107140501091167849867780821339404057893187030856399190739422534369749223793428385919582194757368607170947949063089011152733146115187512901348786489885380232380202104086179023445699354454118931119160471536122757532206056494788113912389095655344864400794206112381829299946468212299036394256317610264772003870795579982494538549683228217664771030214563129740311842350719446337867283278547373582558944433020506430907575570334377842195171697295836239613597594792369866839924640710659119889871036271048341525486907943115446091094453060307956514462310067616604652450752645082405398208264821234774744532022410483147756027602024809607165342800737914238113194748211993884408608105515525178417737778674860603304502413858824721432233792184260587477879349691866792678572748964057336072102386996133868142406690040799737411439042986613610857635517279887724844808176232670561638700512849587098244987033246850738839841021730703599205178080859128661894463128851911921661794608612378245274879968510620572197858537581947400302817245932990931456359084852606600872827662384353082594325370523996756937351452689986112641043059060676954695511532271848498514397514206578603571352240905432045000594905363359034538191917325627264599653199513482862394909090230213623628624560171822397360560787934856626004366484934865602767919741431641068766539221358239489133768793700897501115622368266769575315785483546785646521782618647809692524007053058358934601763113542347807021730462108532976086672712734783240971238724651844513904321755878909578713346689608706039555512955046266594916357593244039428251134096231328948506785738676646920095869284510122460433422586923675462824157210969901126606649393357564959687110456774048634620531213691808105959567275941659112446749187232194869546367843710873150295145801252590489746219905312821934205968948891627107394806109855564184060851027415095756219913180359165228032695163959941716890666658307456135834601020304692223422358988046418043236775463567495238810506601336528119705664753639340502768916244837103295452205620578397878755132940394088532266375408463665459901336281634926229315877456378884939789385316290179189754266473013000065298967250293198298595696569390302981033549073646745354597970101918531857678933178632486992003729841778925849557119490376670372926726950181187732148457647793041058124980373109677107018931371075738768831658963607899397829454058139284590965920623243357334884255043664526814409594018777378762250470388236789299731054662772874403216600284949887516061875074711303692184751887981741906611668216783411296725737254610785415910143284231787374225646705445117275254125110218638907952884003354487109380794132060716110521067215584136509641328550383891968771912025100658618275370632594787330333854719893321268867290433733519277866282810983933841303290401657636765391680011201052647269622271536641689398405693514674242150748910278322858328925742107263642473598370118433055123751519091101399204158650965268320542022688991008122343790466788870811415998308908979833172221639823793629775161231695552496044535576617208227391220236702499656959187720879734129004113864577354287386608692711233162693267333556203171074458016775490782064810671000838655074377701704787681016365094861267763093762839930973840508665534799452061556054047290523455104548706760706871338356583497356805189706428122484935421869277281662806451981859448899537559215162253896618873046344218644969154463769779620848050750405396228543760224769984058270819713272794353048730081491779694886355061383325189714698080375574702898454232615658918806765689121759130697336371941179894543608688758132897127530960149457517301785482605733528031394408685812683485442845005360371959809934147519950198302761468013595907648892957281836121894108717392244088370698623340007161077136988429921214244697771630565736869576389923885742602376580413123894367220294839070253999263371964919334461063834525163468840624719957149680506980960651294270293215615339429563008752458724480946945063321116536264118076088202509370963456738103994938485156444505928124229567062160458101590917236900980341333435534048405234792748953491051979793565182397295273397692349412233273185624134305383541512705655255112588302775034415434371861691289633052472702279646494150806133595361957482751152935609536364590842186668622530103800822539966258983523968502403886693355283599993668844640154115604019420572994021008922641363413209364057273919004482403963843618225356450269970765896763847430940030992305821507087463298394654234708712384488022238584170468226717109620836647962890440843409731327974229477731537457366317998267680189312093850067223243092289125574762125934829154105086991548607640924897563646531803557991002304650346486959595706343927559572905534725813543734956414033864498549344162791177536264043404466664774977377391148643168017858126948762853270594721505848906609393276831818120864662224944009342993817127103974694667002980197874587045979823966583771170019982169248115303013959289528274567221568818553445958406784641314513146394603059587391567296250810951946821066083187869797903026223788204564444775670281714141358700058811528872712193816326284116150463672942980532708817203527460977890762757895000727435797324856537039504155429621208356184525703072569401028730820898369692129979114166749914554792953277064456272715144538733012233845930777665763951238012190374496639252975290531041248434516989105694991526819373534417968510381499020777061709477267092810025766098869417181020683307385965131297056368882200960981678265702317306059163541203213699006329472545111149961848902355946939547589013695065354489301304018586354135448785634435651261592967016494166820755748384237810601874965394575862534121497991743069317677273129265662571745626815909949122964289913044306879570638449340428089637406118065524133341239583455203218037403815916283339531460499492841144216663368416283897996460299865227638536298776950463474801304614510520274185693717917508190911645889345432551247042506254873755260692486780104565909400409714688387931621428914252926912575382593791097311763951083223001028206349751193922407533161075761696031607919121079289900423385061327115386857799244830014991477795942580605246564070219195441514482252972265108022116480856422244793627913014629769434785062491078512556960367341178724860369545507928109477818982428312301385030020979444724191130619754787579673414288536205813855364666107473201649601361973160693817747342253400389678920923898385393596029970787986409879412787852055941732196503780480052708288586315367435154968661622289351748753966290823175376383438665906671864768000742179064569768557889769088377069820838750336012011839437805995558622504118078719631540398840043573210149898348308277647448064311791040033964089174433059427590337901201787138715174736726487587973868116934878587529994015315819002531056661958635249471491484443173923366285317336772448084892851912922772786585382259508138234661163132919036526940247722383326477830116203013792298139736363878503407204760584207162330812016976392269558308414953589450660214789512473892175447435491076556800111614039266879871438598462890604114698484787606244044512188346621901635469656460351487721438724933482776730241426276703047024233888583829327286416553607803665023639783576100056864194186949395414050895113517355994041477803553844007975496627052567651899886051665147828055422188888802409758456754095457942417436730076547051220511535751142697637629781286271813711945360290894565012647447168761601670721543578174004906290775267818870681246515654694422332156034362170167945192588772345189600423663487622930342238142617984342208867023849565297144200566184877863461589261670349855677089915560365434560132420979619148221300096557044839918722992563736836965912133474385961273479372632382064535387045524787559852834884153521794444950332022264808379622124510890011545290581212912984974767310089240483848884328924893461178896632497676346523110664458754191131472497150542094450054752889538920063745747372738015043549712508415360879132840073626078096427768191520010988067837897788151363324640071732656377648127996292832788245231743130899136667870576676457774925047123981018308391892568740823594346907383718805317535170600461865873838400532835856556936944966966062027681301889248439838766043059246453022583568496159104272787115971744753105821213151942182734240501389891071167217286858348770376201203630655079884276208842366140811634218600216729165313058372431387681069693402912221967726782607868073270884992920137159440435261089488236603563489426410883274336448555516087204295724136267612731888159983280173416162715023022741459865049666939591253244575599431949488033453465463248379157033225261699494554765216720624670196741940239584732462714044814761729668057520654703567219416154983898889090257238208706967828220069843344234292433511996788836915341294118332870810050385345255635078037184330166782489859454384762449197685753640630347760011901665033666634069244379995282369655459280357208087541628664258221363916311088026673890109521312962399174450297682438867921675492019681793587754805526986653039834167395074018703426201754360150190432523803446689151595492432735208327940962164004196835311106937307836366188872354692529897793463825053122238414789360215044723364811932264275262153339843447105458716954264050192718097687347297983135651382093211183533890536411314056492073275719869880630474179239420735682046616869994156569416220568700961459186096187688106700546373395396556442986722642878721794327228325828879937477583543314943747211174810273576314923482382886790667948765468645553411582911867925737102429141323449043891019333612406434029502016453990955599723646792337024459420377731321337741121525592588189244873619291121871418834582517737882794744170507366312289700640254129280286947516937831586322203801071961771032216777610470173250182909534105491611855342235329020740636604151753618012863324178667770748554239938651671741827429426025047390730760330450932396038397784141894475833482657485733257098178397790187665211011114198825074868027027862331020598009705499768011676639585356662267845348885390443234578304147883063171189751859629822509829994428087660425136786807463968990833518920507407306961442080922199099130859722245814838476832115102981994397540450822620804888437156285574266922518294432850096738181138848152431918667857313758745738734913873189354213616706706592408812194915637988340277404726796504666499274493803276310014756915337962546083290407901929338881204681595299445303659258536317651537414657409670984972073758638302409424918407088432529223285008285710622101710508493405317041686098081753013694234870609412046161083727702231466118152710654380868723429823349043827112731334030159775090312874641840693481517441346151279802153890052721313215023767799890445812737640760487430010349419696309778096775954022524254355680999937941274977308346833278409129504953311384222402195743792058883979161566800610762021017820338090227958135747893304570048593501076055170556895470893624983103165442169091269769903607934103540906712424827531844474935280849930284617583364644416839539005006812520188276833464680187003017584229191649058724357047494014944932955340392580463385423910200587764992262622319736850973945758662867270357510806104292226519795015409948614648034293604979141066057638755848384345595687096022523568994936552204115485316496251492709593379331229773053157653192403248063190646778119557711138849524207134400964314287479178064296399276653193709795952792399678970684860571746702054643586853180654106445436745513903374707283907538685456640860238127354524273760861475857629594256050797961530066718835502588212505301444217948986104482214021127844319694688928596386279461285144083624904163291514192834166221895241455036156804029283275151825781659947157552533644711986482794209115822010999311286422357105588300987688576628695496762085989804889565307766909708044551283315042761697198441494016359968820112438432746520789361749129995835640237268264011588128435061388267272582383998394595257070915303452058916873954342094318306354395138674264001416935613470342043842059506829291267475666475450070793178106851544989073894710854288600320204009211524583491953302050204711226133417413239034111289729790633488403578190472248176247683002083224175783278337737160587232258168090621378109843653573367388432462267884903717132932236083359566253944884342767956575448735595226008882729998879128970597810404288535068978676644976134982701817588081642797375450383016061381316039111271934496593929872719486401643358670935179724848250929593297937371749492840422725168184270076272978251762181883695245431042756021554755374824635796584929531523154538827386089113505885924563101008487543685660970418667645264177752306437472554803665877353410873129673737070921410433295622937098705040830888409419940619216887420160159470068381378576192519292794576419468302463587339662194224701967412280004402789377849642787292655581832580328340146963341296920747734792206445427743672583049288584805505005321631084598760578102116010307618952610782862446393405265544788974394608131310701487002255166930845109831230950235064789555307768501032601909434036053172697250697322225561778738242893735859402375475098426095645528287973513522852092602831367753498729848729607270885183420372953042271527689088594461099352236378010241796872312530474337640392722110877008896152088233621991123554158276725608873037015661706948131377757188467150194293941473458195185690540047558967080982896587132492119551117273053007126625621074799280632505848126735622291773547792670846261918761066710893379409402991067123691017867415892720079039484795904353123988706364116648629173839662000963881654486011268123914785188531861865098657810089314018424781676441164244528043329526869718650803451223385246954239037699918958620112583939056081419781532269115740732461432955603379756701639103916203307680298870945899701754774344248766222924864646244231935568777208650394171189014945588907823210490261369396628651360510480426951420967165359997045020203514727672135572796420545864000900917988932765374004273992525184155467307665501741289231770898782195887856475827980887623944313670399210385870512776911611711784397032295460057850146024441944108706441473859773680902496299079273604463393988162490122898968657953382825998044763247065606947242701217611805055998160348175844598702033643727845883446756620773180516363902686686285418243062918234914572470843747631800493184827085428132302818709756232188593424634841239498021745731674209579719160052358651748070916140108283412701456310353857966548308019974593727668708377290160563835422605748354905321259149195170904335810194408329360164295544810087130107779486097609999571867845290374135639713666140229549080667784981907226373353366792714376855160490356192006179848469707557416271936911271266389472433039277561885546722890089409348856018135079250469165899145688126151329334617086439668788358763347977962425944208028397688652634982506211076535501136886787163479164605543408688549789269568557681723051364034353683210706355441646868460410632152622411775910834759443996415019304500749526836446846974621000520175962669579761330032646713405035904333016139292184071658341456220191193318222526317379499337872862306014069105974703445253912830908839870432742568886975826311368475245843830013264672404829044076967714095474813717123418313269834361323979417344376544805949651872132858804566989419514513120658599759304408210897690954788958796245518232959667641870532730267921673985001705364930736761471024773614371419791598722265352463387387919014078810607634436924973881993829340438058741900074891898552972636581438776611348850291500963395680691315754302749435448460453230186883652253083418098522667405876981070547136565741939787679349796910253389354528550401715120734584104950427991418575305936758418149357391711228600159426800513103493286469508368281538787443426629275743704004444717151642520956664973152957622560662192425771382787408688562891680188874725340716530683593610550211458696591512469739900951711175252611330052966942731739077769491452715917827154213606616400132253410066736530654262875715299163411589609955508257837931644442502200019623810452671150433231652047529942370247738349546230174190180911314714162079204380143324522861136627062312360665330118372069541520556737224982100015991964991694335456942981718033918472060830044728308287998953406061640992317274370682969802831762743796203591715793877002879321654247398405748232350965780229139103873886770852859453508357349489881191916448857585857489434370862398469847832465750157714237362379222939318666959066442774004114709651755142547410943917178171326208103851780235166542570004017972633887039559653145688809080208787826106088687444188803674866149910823052450807660065943260909878969337961962077364616259891880648302308714515176919643940173042987154648625598213346686601576597564217543187395617243387936004762136079273585691145210732385968421580269850099440030146975957734281824634647979654840367746128324296122117503694653058763189153802148648937041788969326440245221238776597438578145028263422428811649595927219234402744558148981219414107759255510664869505768909934818469477095676226759105995153707187257539514486164629712387920794191036340409209396207750437255057712578180333274786109745355006611455563905366579154185366223028966279780683269337700753019608045021928832495533983554486780723503567351161003929121257160710479042375254226728248274533470676559455117193979116582631044102251234272107611671142930523417201852307541367387420186126629373668404882911910502251791032770813431256683807495785847231373755900437600786418759357468798515047913878762758823635901860611526331104278253779077840833618798588676346720911054980435849995498064491811773786176988386562621512119798019449756182740390677473143424675226450594970983722870531351327524467272209317183087238436961384064551323252271377643964127590116533175926157887475060011413324363550725218824953264708104288086302018721683300727674105623513035179560175199569071383117811556861916714137227654237296342926772857780972799563473089048197316682068406254105090612822941581977753417334189855019692427696578018798916282135325960401332234479674812485863685663984789535042986937701641622273745191223709627010517255223401955078719659644953271717947148983069006789920964044266848634024541718812174561214117337547748735582653785414974436537246609393178946181389781730309216701132625049082455132953969239540443760173624012198970040937419122536066291856725762725963967291268279240957483909258820004802743725073694106856043276147743581448772843156048167182870799922307474613127968278120633014915049175916544321813303270681797635336759948561010494397230793908148825675037414568808120261734171943777619315448117677864223266067208296709217731043778747138290091732966339589237454630394782008657517524936366478372249497274049306775033462283635995094810350278471406096388843057742791915759846259043826908111509282362484146963153925909571927386058088390301946489061632001003652029536401041024634325702163343210261418536379824859488581846345421875184506831211468639199621757979217555285890763006900039442399822533829495356822521374926946204384656463979517753344460921671313214250779716437766796157751688448122938208601979144795592657751057099460113817433690396537652766669135940266837915085674571900168775461245508371071985420575465349764375491229204444188269389782893808191986311960340661032308512469389387569476238359990355841263500028400793264597853556842594340294911543598730275162285114344446745135276231765299330721872260074457077065756475783568675122672903258383140722415063698888571963597071878343436347928981132774660920548032762953822552090397166655917566285783754784658708428201360701780811419603007585423439514282848048267730563908957773852047780479307619228150416109364391911627779240111409462384494259762878676161435954998061291552584442770368722938008449324839648197130236503499133898710931756600601826617392526707091038422832461526533681047444411478794432373341535396957330960086224805766913292073205072545790952914633067939098942826489159419003351765039914135106480318147491909841645210833192722367188507556510681298164912484809686111551880174449861249391874668037247650330050525129588451199574209775802733142397345130752378293305677674201671518670129961385583491696785829019581590043125072367078924677616071239774879032086036583652809361147389863751216148306012711143792642653730043984598211960954860718243877894217634473498768067963656149383341686240142818270078060232909508432251670878888632348958065006301643112396130666385424246709228872535673501412608273569234914637745146309413900404651953820892836626221783628797369220021103249509293883274119981799267605900379435183439467675714125608443198015302008627072707311562757480299267492042562680044959367687162987329529771970137410517462631280272358598056945199675982092267102329805119979262725254172186987409074596252487411204476639607831839313304078697131553369854595152621504019759364346097357049189372227155256368204972843230931070325861043921911112566405459919277094966178546840934391421899908581337490301474680896923119143466900692621183688837909611645010452706619295841977529625424667748754289147207183294070924695062044650120011866456576505044295512849528921461197688431709223576155939221844107271593195508259534326353543758578881510624582187451219712401778493237722249958030569886154530273307672759201433811224638784900002265933661870547207499600770025019862047779836518981666392806523874580384945327232208085297071972194258190709092412081460892985161901072125774507829380241339705493951902989232585601203649299048356620585748186915718171693714127410499564805260152372065080351406363121172895988229346547196110746198399309271265364341098830438386696575584962915725701938933710639716343357108594565939779455148540062905048358878531731036754999011448983307051928584113391946024358794702207541587981103976283346453414988037811919069898404309893388302221946918061501573961027803841165188829097211535813682928589309095459394975947246391890028507842514281053203813404915355473840309582361365979917501209004863054721283725127378547327411295992355687292559583433495570478335034340600137191416078252895426016986229489495476703107758161321793389514098563001414583477135440667068922997290319419167180427825125496598224934679531943220546049417545224068153326949474245683589927279273496163438871801296295886747262431586516467903665768166806342849660778198509946035601622516060500940388417140245169899661035980935919985082343258170073931758842364163371250887632290880735738888453593964935625379336403532614367701559672109583878627672671367150021509123536255139410410404925529588728366450334496021286623589879896532085788463480533540125095617908320153353401456471179358447992952205436919121641119275781692471816411156313287149000135384780095875110779540572846422930045515949152626078954415680323441657452514887225055294836087735731042988851563694177107829526186396625451637342232075624482025722604491219395845771296593253582698777258570560484967577709430281315785134381118413275513481608375420549739400107848512830638577552636453273649066895931395799656397153381350076784321116684005868808171935672713445289993264505878912919734406114095831817599584686131453725463963889663850271219604291809526379097031067805601805171084959968260553339170876186321627740091691317962484696794262919459266524851817303212121435566467805171953045616825830760179539655518301144818700390452711561752105729559357140078604977475743024736412451751325749491449080327248016056832916226897181809299041876077248584521218709799493443122159337677088868086281541037465352839869675138468786675833312625522030896623749239591879806052464500902863604469596019057348582835343188686642633013607219577668147297645170744977979228047945469516114760257751044299263150303651102513523821124348709301596731285657220866630965810213289965812389675501430588773885931774828821944805582487429593580564419843328582092077344766788905075860499083487421882097090523543138242325861337778015940727176166595006431802349246714316659558291548176432976860679276793623721743995656320324850321549780979693565167794826434179035109780157667634501987437548522129262691517457978464213101543974778483360569100554302234230253217966550512328037928475153521942899431116347717277944588635277946447921491359999518108669966885343209536470210168764285380365922720688415418987867784348157271258725961548190175573271110900272100680337435754739776203014748944850535818491841912444660910488238103909620019047933734395305324294790360870201098962740793315508343542787202884057894915866762219497282462154735058653319001056756590583619688550052509007242142789083686182498857303597499060998374726987454313754654637500023344571175207417820250188272668714463607959782558387469824037076878694572778134220495212212870906189017648666560938484333398104638795353119569159810827662090861508530296246526339768807901893338755643824454006963705948286517405993525332548377669995384190953288092043396715445055042042695224104926465127825327917044594236385887486497975765003131785317732657982588279484494536429402458244687463399152715411920611572514980709923002631206936502916052071536214662759835632034853106920342897602525698870319412002208543903543197754934311801089474645128958580194698160088559055369417358417879415180934404783787510228303353720282987164088504183071154310531607181380776122900091384363576579176390289803538102559828961590792287700898278536072846988614743205183986597401882818530917341226425613080412913651267291113523805641254150078893180850571256336528096290176762973625705500077467543322452656134799058582501792538794044587615015978137931573718981944776351460153004266292808664696126589196914178827152943995802588888871558882502901341253594747786725605343628043714462736579297817274622294443750194794680935840406000510742581833555683891458292400386811169220704801354169793867572146248482541348243145601026267283462836528133036750514152495262058563148974359717419219885934577519531886718121987615480147777356823911948809977379345287876109212239418615351874570835950539446682457702140696165655973540745659172096636055197590854007846103045999138555480208964899836156999879838283146440957646001750202552651350595987021607785436655698681154762828970030718984535085826794696128736209419121385407918817686805320821530186476231103526209275224503141336492127608117230010311231863606836088807221437926992067237904796316098113263763841078406359186921489191680004176926174176600841277437543124519032686453823633559355493443934178604658122262823349364926275348418317810243594793479895160383359057834715872806879499338809349192914287674883874364009431233037946928542476161024996986765464288409505490234209343685564474125636603647406712177625075949703346197049890097856682776947022562699470659771555386088507664722333426115701489813569273331663577636781827690084569666513870602762851028118822546880818434790341992983657398276252684032260080260210521638531294906959478024816605629264394619343814946244900587553291672841995465573119146629708067088196151741163391925148608201665846931235816745585961353006995315001581755841452409251151545306502246408019123262589377327806051495542334358611482319280958423415159396901652394079675109408687215426174632527349881539850636431953092203323315714679460246110592435655320050922386771903908667843305778120426329212444213026858141280643705129669427329958862392561043720303364171715255416539660371139495119708071334335517598187138176921540466091748642325961654622419193170940687433792532732179276621561802653315110684920362465201373195261902499388458717870961484432526786455724080340472359007812642188316870799181885267691307394590755895467713551515765506177129546024385851201005598607973682259079765332195901443406492819805720721747753643819190417101209816140637897396614534743955295571466651186459034708443926659001572478210106094584433086298408104985817375205465601914178371713313865790498113141291787272541208504540598317169446974325757637434599874581386791696407494851093488853718463780889859236521977609713109093983882732403304274772189100168340963692462788098576165302203256531445152046710053491797820099541945938218273535403301184800617674876221627190536731547311811018350066540251488475341060112866224282468400957027243074749566745161194059411173057093383959675798851398524868641989206857421586207867664490693097862491424049169337484924572794250776097556325154068383464611235840639233962510464242205917612017568624966009125011586519896912624102308734743103865420415043884797076969768631159606266307844521296112353122605402611866795928896893277793825910977139919092291143497303126294445594753126525169411152416130994892631704927239851316680571662639929951549926768578234296522200669086856912877443513571700828630832797152408789453730968766986157479018104052303423407055645378872757834800496495062687539967148160848955389970987529898703477270843045900016569328109826561644530985720127621276625032839560710918344709232015777584896862793826579975983920727501767760667346657098973961781175606536978904017877548306990999262732415020331700896736457385240861763577960080949698940175864020723685363572233783458075799265451568341919836082544190121277438904007441875691734061527012115291800373421648044246794296954698036555237629690060354922709190240395644508522380478828664404922739124964075843094664311245584480288332968730207718728420611287324164701684545458144982578609855278127325267709928030094174506556194343143150456379155784249474414895509490291770785538128004523236494811695088400967214188507923938762756063699235490654804814456478433283862172685717895545878442649247846559665086452677191862026050420319296494501256280242923660488181946190822597252821599490221529828402115941344975063264276128837180390886795537499991103895754793374816720672464309357207692560617498333638151985613461671795932869328874999785021141088612329794793392993655035782050223136790866983801786487279209936042878115040222734964153792885826350876987291991910121927697621261106489008895858753105030030172552574086764703960119205215060820260861988968760895607671170405280637464850166561641708268135644724940773639335906896034438499671990666162779608969706105499119168924453515593423898800362076620468630589633949916287348444320992847373674816416378676171975512144937993012182007082673075712440010933802289189393164991486436253925858940960336424373327461222571448796816942353349274438595406425879113628961680305162459443726515364042281935083119521050658392916792900927464824057731823933089487771567612903161628611220956915977912203741593342979583192898652979464669555228594815523295313499689722404711084601501505273775778336924646939224482780859564293834192304736571561334963690278540594173769186779334467402585882059295065032819686334780694000965723673103994431844322554936590608388513625370861168522780718162683037941005633073388480934459245406578817354793856498574382556488386223978945318053151532452596718245062177878249759989359378750164777180470654680633024271197363789238162695252930506020762776175634825999329826320622301387355097150199461002986153424253215377483714148930474855087933618108864342184363142125237641191137278504960961207038607220957572619129878008706310799178681179938147528636765115412441504095038128711370704974867612917054950570542455534040785994145181015093819459159631015914226585523932700405248753341999738164273219703233223402682943265641906867106117588835699450976626604407306086862800420248200017408739366609199572388008355617486620756818437358481657260538555111982780449365466285857832210508446999871074829248172079438590128185286100262030069237545056554645795697343132692764932930769335959967232219663405147871146935679376666319339403155576945156315552480749226307789628142976037225123164195984072863302434315388966220473234394720635542401432729060756350389610338830102333300477004380817384247133985541995530337340018857063641706806480951666807701092954543146983091143297603194948316393891389000505765260188386571864233153265996950343951357458125439528555499649796180330578270936190514328552245536664625545507888034468790467203908174597446465955414033338592449411436048947773988992016171269937770385582412405321735737764294964695300871957936160125705655411878574748666733983796183701878118874535093347226840668358230587684870487133419227474825369256539013998005242328974571039594644062819197698475447146991446583884973580844908102744716562049929879439036666344775700662624844742600431639832192833198985292488469281976272878697979188416935057756866829356987473689433390120269785408151243089444506945167519675115927867204290879715033944960595321368296424974990710925387907530284555417688478256030510416918491224608873099197855179638345835284351920377104351349108557860349751146149667859251534120173509971510577163153292589106320504389040937569876611222294765474796218834708810594101854005812956970691942058059345332287291827369583163213864130114588599337756996634235032741961889003395195945376098977844855306204472282274447422198546302667456474398827055293716399378026594748107167056675633471761161453666854784835395799141927507890387081022239126084173705753855137030970345139830769820201698358577100408984005675185625033899562709568729634126536182806293617140563884607748273964672878786139039999758724801596639717601111136288334965909592755663365864661981816284172608540038628415968492408144035916376262422994204746992278263993854610491491852931587500152330309146812466571094043240521661439053786770200938659244629393788737184694605182818689633331226968307975402095459335772884273486113255718739176834438352576591838095451963678151797294336463541601075449846434788991723755445844731143187882526665462187474476123133087831019476323760623913858355730770204780775780433765733238166844034467498237141363211445070782292428516454581643724837234487661610628904373407811364120294550531029644182379378688059451493464981683732956131870665271166289426296866457306762966272203777597113195940358812055258788129718596471335747975712446933851090666857179248655304912763508734877190579762552308021035272056245589950415465913999667245718441147970524918889229148266696498036457883698968362629132554680866555928184764906346838223379299271400391058780503771813749753707997712301047619501351848649463332154354195868055340941064716078564867356537681883874885879422648965150343801174075960619717894408287904137699617432762528443436498184097662085017669519077032127007345794858359787386472556557650023274265772790089522051799219168193202731687252520169766498429888745682169016717633941978289925799862166563612742224815144692529373891047218552752079535168983670483072884632174188753065370352227648336594378567016432975607832252647389933853045302760229000076031955242288746684937531899485703386117917200565601259908346721814496110168351348304385380388229361558412002199789162081239276003146729659998923760606143939908378775322124113326573036256306673410009801411900345227346175611093511010713269694486285578001386415121703034107834670552481650548440438816668010905860936072290459173486323733342305579286958120506436863301207820137771763369485101990507060650734352603760329204942659826021096708148117445886793551433582797384159930850893870296343635927958490770233951588703598701858656000743586371697948636617419448349095808830541791908719173776753377984782318838626148183797729809083870973970878917629328196112040977291861349198328384625285527061296898050975478840733980522934237045641005085262859729143503857039000861833415270785664550013666612319802475129238971661229324176183041424932428283115765173891503407008420207192720142750977447159621377132479670455297369533615662772169569965600034367793863396587510635407296510012810217315581148192410543295046412052945743718333449279884262043395287292371513123124008495363669157408275111069394173624868713552978462571553544282569249547393904504567283921734923385444801261774470078727054189989794868808756723879930367697443943096179606808976627249094786744878331830091077651940112405172218305560860032662457765915933888579890597301159110418238880737000876451590388662033754452333346899949864943142374049528267529188179563422412970454079849261010500563203181197987666762182129167024236405609259361898847270794219593597848554248180792421133706719621006221305944676641112446435263358895467567303874229382273702731768978048731866596091038801762675788121331840189342617707421204928724340681338895434066091621268952592483180583950378125736723768313298081367835065608517545970080858331981375538240340327349446811032197554176164189045253644542427502623440502861104648799681033528068040733982669212114878120455248678332507636880055532574855352080128378877155592131545085697940839769578655888702315025060812727556972941221884466191227385872672598727455813083364589664950490205016198497122195472603739664556681204843419981044506296249039932187021650686385387221973615617455016152285569375921126303908296372230210373613126901792935862492599403264596022100576603043869782707485246046518694202702553840161723380634586552446463323414661997298929927748714083969027635194901972809470531574252622668953328789592023712460396964269496943702241339861130930687038580819416726512860549533487729849373798264797765326002285831270329244013009433862472828819564165127244783930622089287468806869285782046000312837967336925470249050265638581036477085006876948350521693440012054173562836926247458760345656828785055399010457938674780009644579154667072590098659981522970569593513179372419344415631249427657998933946501382408029299961361388716792595573273796032676596015413190320967862258747912417633403195573381339952893963970704633151780860350929484671648986981511251394017260462882601010303535521063281245371388398888224208037145454111252960246081329076585681522762402773554734087081051761628869956036013022932131177330836787595179745689447182418166600477964978817694153310536487134445745898659143140696640875399256893594277153869744258998363966926605395093994739749746450508857211135214942356049003191358930313151158207361979454081382076375004883319253560032473269086797661741974435408356690214686945829944497660210444463057023352896127889812942216774105983427697915116266624165429793599039111013076417374523296347589887868844539013768112520911389778666522798511265802697891197519112455512643483843290403346380374627015109127552960832266219588676779378530419495854780234206449918078453353455758493779940933052940804669231461152811583817668500916613733137767314477858454378762041062657747218371425367464891525070065897452796864650694315070372504898118310497807300668724404634811516799305569405673450715459691024831570683761888323021937247007592012550362448928128877000656330308563081533539258032576630313299405878335584261967872464952160548724226905187908470709725306492008792769149826987687216919069715081818849524083011909911269919170734148408919769726600009481412588231720082560718851728919116698422001302539957002315456405505176429162510526828959082270698070866015643575314446247475912733844612307922428403450823374588226531856691138049615598217284855254440337039070283916410897229451394379386351268861716706615698036526770808490885642534647777322581584179339385041604853342047530488830573705593560158064209494214700500625863724581073290010113637543816426278565332289064731452648705795253673223275955446274011126125317534333474856693128568648428338346555333398974844982227852866639951682938562887732717319879713203690976701731608130347623118703952921590172445643139147231171757332458271404941599348246363857437527571790466819699976047204964308063899931548827018413590235060591377925864370720707543542592509774652062073083489334388553310821346070660750310907006143752501803878170867350899001773022388351188310270546116220561735464217165425442060876520067189883276292058541976990851300086777090396281279234008596916708430692898506501427609800143671534085455037949878533584721562145798872155960453315682765532091905233407080766236658816618307876176810979094502480173854118721117979018584971201609517930429473227404056451020115098877712480059132990402206480387731270657167028299141643698102732995205921742503204066086118484117175899202036396962820463146634437164284268879159326761368167504229137453956957823616008483854284006505110081596439072416466057022505336949603595838317659495287287306379051740931019048925732353480735092423003621843008885256110724357748489097022696737175181118429039496157619367855708266162391869007629406793056266448177905249321133916359049054894678953653161477006538272837812632225315803834983408005764581827128054350158407569115854584655798873058813293619323874973298958220267538135547211216394839611019890513456515932751618183945473955511760691098591261675919637970204060885404551613324303224925549534112210217517648341366465387923447528063899479035300140831269968466069351297027396030706345424075759495003121006392960465726044202661050547058953459489821124702310859502998808210668159936702234570942283738314971231066219861573689389240723330112838441309018816539016592197644636222730221030478293234825706165743561236001098425971924818265493269998124958535575111400408889325179426356446005424496349786970569407425703499192833672120867535369609645769008292937307423271251472727890116963886287374887848774128183638772129445180767365589232881298658355795359551512680786619419569521475788658275667638585891679603702509731911873868428969652368190298090423723335924384641574215052747866990398915491553831403941687698223104733538560982430661178929645896879524405429737968356667638790986103797483605090742349032958859675425305682945475027289745212216700570198741486744559576723397125608104771507573922212829780381238215418107992500645391009390171617870019384954600125218346327798879939529375995256660211635899618194505173138552326045130100868584608571899802208434706107115250564009944113942113136322513969863160296546839836879947952856685796231317132040492918333489906173391382651665690217479603066348840255296048471040399427270665056145005929705147598474325150803950496157998559640073364654528084566003848555515006974836155181497549855692301678348343424312145438975529471592823141547052662440347466116027153765195215847494025328608303730410059062748973589447907720498306452045533394899258215770866495544335603892047521494479614161182627371407556987420322284584644669603370848113014980206853954783490105597416394181304371789519430213490210640862980504317066829182486325704733948228111970642550734228349572370083076087073463493784611238186573387968122394391650075612372625142586156196977191467792155981507716071376340068243349101062744868972356503912066636256694348693377231763226306801975815723687093139514470454080832453348636038224272002484090200958385608214818295734746416742300464231756986974164421162877213888841185052710932790436247505924559908198960944028745253985055775511786745559004869531456996436085385267225688587182110650311153985084926622421523663531130471669999066795413259105323774993559779162405731385511939261620959174810123407081492212875006599935548187655544877935545411395909091120749526993527411353865352464681412283878223052584605278441866228795878974835538330995733191545392502304847254183814445265342721498214947579919329886565337173426043107641515739811936078558943044997261725576761114814367598771278264571496441470273259991870299761277482277379357769514804623572064727905835629320537022238308353990838441763058426088318671313578353662604951590071268600913903693693623217741886551220116349332746186775221398019926823800431541928565941704380896529740739085198534385129031464059705805917826533410702481211966171380893666014809506144686780774899420747780625713282058253157832684819421809905693950780751792820007418781246728479631837869946013690759220371829625536260439095783742097063057455206413424683328454632057080968766818850406442628928535972641415271252113219753794144446681175491641483845988150049652484571424210698089050420462150984386156857570155617070066084749277262949036177588360855681217604329284545997353843890030322426581290284443188933192883207568992134807472318128320031552981766426092657912798247106331681061462168410703272452287991660037383206982373577267315670874362988875950408209263764769885178756507578825766694879205821054696104811309490082972245790064232517455624101088181917351908428892325081117804004630459298734522407986115812081868859818631358464244434026209625976426449516102744091399882303016922801376620616880551203207961329012056276937325014221039545526491363827446161097416129406387312978454889413203112993498285554267761793392077350482667110959953087516374492608116103392515017372014093010951387897860399206843543030849763097415738441156041745912267757224997502833687464053016777243504189262979045335146941380083629374647031617296090768580845386003645843580883188290020364223118550778021314208639020591354357310162676675571624089112085721961065947515046012885545716217238589892426337691896707848530571142611396174066844759302373546940751252978363097592658715869256642884082329712007134189893202929971180114201273350415093836017380013439748431023775121015848973533293747007165884647478427864612042463679440114085010333622208682342750783617413213116478394401246249178502973594840718749870209962395856118799672853966810304694928215557119837328285643897476797925340659713475583966693024221138581325378424083533453808164960156020165289514675376501899279177955957786315516797344939636402844204262913682327939499926561319793965685736922716453622055533413953797879836176371024640565008070545977220590211620169507288094221887789099461130557507542962458729903339426895178728011715468109714473175990268616162194395092353842274535954061518850201924721398593598162667532927325594844332130877281037417014575282107318008901021062707905601656193137250151350394908916732584329148703695669587859112493939459585852141778845433045885539648606300829209894124842296859647143356037299207279918042685455351059261849483175491227170376161922651204767116437088421571723399961228782371481636809373345080000330496538652689291409791715836922334769076047367499844829771529890963168779476328950371891477892891825580502396015926573822720815579739516627951499431755017929117599141123152723326498296135680918882841329599851312290714503290637959160754766369241012572802340951507291817550537923773656290159744055930368282528943987683944901052900925662549393392868683867497469065137706248182252224603146103687967756795345759091986349812481494110385526458821897944459584269313414228394596735039325393443549998486279015082866229734529236778034189191002296026021725631354726354178976210759964901669504210024847594710208598526981261643568239648643510018179195890310549715678281724225585698472995663391506341613003719708652300838918656545067001521334036246894827980168195444105722156979730918926129602166047444925830782791994027856109595293975097819691955115944244801696383150808149789865130939512366497188130060368918701736618175650633863074282157885054351184134378811423735426190353322739409237472700937758855413936456373667057652402949529610405505969686800399197014921680173069944289418393731273928529085375240085298030203484996480648242849823550505438004230259920668743490651972936685319216316966673196220116259643738645958962468903588513661665853291786319441348037860613044380750646321040285142435945118144989395653372609743089987466454191624568147725430781224687215255116856124434752586247214286227325084055251119809182619622680195050559546738934345972649694998718637341227804034622901878294890338301303206558675147373573222446551452754602117834144503490901443099359559636592822796493268995605573227947455053068885335770828221964055755336338367691690701395352752832025390558314689146511800075748693334785339236220562076882577437562447407498819878173824925898491161635762437419096408500660214621400379333126505877065363774554052324720809249435729330841212707884458482588819048217137952048689724988070884789223730435461374737751757432427302962304488253494377622589835833580336770883288356948425927650841971963746734634535118154509419098704180512683235705459570634470517148815258443245519951397729050790466733367369039989578170200029468323800901032544693198407491844682381525279338400093235505876146246775979963734403145917432348516321994766628116564756853605811680660238489191036803934584428234179182620084348357653725800465413562539072224023320798698436040371831124117647601107613727435300352065753093534949754089670511443608187467648988402216051177124125012862293476272595507293778539926823272704311385529061581326929164777395203960752444185695737929439009869930262012893784759300305740574590598127439306259947152260942017849883532398244224913800000381390040261052493133069142343749286944332196368917652114658442982397468729507782446557715560889448222528154723167094740443941032854606719843910831822299230120085240053811253066379603715694423039325895440361515024632978382465619102605930742593963664686870718386615295770450580529860276628082447031636336487078642208719718587615023868297412913107771380423015952573748182903557308338808248810351554703991810108114370528642779100315926067871821535892933338584131602570953894735732418426581961884384626808419251309179653010828545936738662437244352805884677766696027506886498619078445684210962459287556435524477411910864046815547736443435836721618115835274243229465745246369147687957438880908330861520327641548460640627056514812047919215211569149119318172337878373577777048230597181998795398207823875195183899172009499379604173950226615404297935361869358175269220410423755429872236390831630585139811764858632041411355459793379660502782415193099492611975744753935061164069495287664331728814547759059104679711234546532456786112970862330670498155414077051927341381624904914974185434282976314690825565268576410614590362178461134526512939975952398135974894239524295810154911426833451772573095793368361005726287586290623449598572604762499499962931189753194759805486497543142037176908354776451235233739127930456091385148933249904747917744250821389170483693157161535980934778697105387551574540966561317647730807268487447592074877110946198846478212468220994151532820611133800825958444214174014948163998404752480715099645803058002527575896930935710316601159152870914098099337363023042576847050709988998753309757336400430930636748982764201012269801274590548637996606097668841724192793987006114460989801636353381959866283583527624143779032755004736019631607090960261751146565243342171068889144623559948214366278571715479357405460062950172425165411422577428746651126615154782819413180189375638070539704475979505429125035029258331208443122093408708490190317246680963658958693051171515489494306286141109719202035459114836964317256921681130447304340757636527790672427327885216670670525739417864190441516460428994128159846806424172211097624741291119292608591623007220545654490533411812275858624228250463797178972218246002418585633461659568701242151863344687142412626911238836006570307593341666544918194060574350142402976171458574188680423869540243136669888379237617734063529131570941300698498143002159499726141649195815884162365713251492079445261192383309009419806811060709892923072156612016664393161746463511645888993455014534884383456234930126996302162396756316846868942290026105719043551505759603792637346474093753311024940382652898058345428288930220840646108052378150193446862265740100510717240279120008586438842268305763868551683378097799802312386437856840762938559209541243775100130968585230864364343901821435405174503202119963529119832132737336384298428552718654957784144752218017588136796866750509646089287377865572694289838691319438894138504789002829530410428069133854254086761337079513180055794837209712700730848545889893023303534351823411815473137790799150319344204375521499909536251083707699747289366802178587725706523772013229103844549081813680676154558276669067184951930201085933055507176553137903376915524863002644889056968650741085093663108920432884889118540785602881898347923408236580134250947413451697736650388544834580328390426743302139464787647246437636798217803794310526197541026718112551294399478353122487385447144935619338223840197230831490640077854757134227355751337953330078068338109522679834722369308318576421812125479392515855965625188133507214864431300563746710221112492815991490109469748864936652168055538631798796949562074851981462167566537851593098195295811686700723540831513589636087581994571308866726389307091242996288369471117228280827145518270393304731963407775899322554001273510776994097423060113070838552673540940983031713719940186009313630716803823368659138403159666063803211156592806959986732330063525608250721267635503309567037303984557378331864749526239794009576882213216348388903794314151742205510928477631688704312302510095165692917159376062594787363963006265756451830327334866669096088834566115130887068364077632344363300522624781762583280834639911369186360376406968660816636878971469732646674406597881280176264059170865722464603027974521846137851602305568887369137006455783671049369453608209535323860096926255411858749917287451273687296028721467024928859380062865730480110480758504568373454699603059188718349572963369015975093993705878283140926097457093459368823884075305281361779575922487587826101222768006737603621078413161333101046699572484104482411176634693537869932844362447086893497197768981399119965326056707535000202262488416787611212053888409306649590287413022883811898535130277412386364977584414778176607465329233040679222904180133365322056488444454911294932844446016719086742850374085190025489695262454045120347468471888387238058087768430045295084022164408892196317172662855434685511726709251924983489706703385578794998316449974923134122599390668867010718714526276490543057054559639764791990867279714139332035773719247356196212337452882558415821614648352985762082013050780592631299917220078162422824307680807959918698495090409771108456280779664538206461447311978134565363603747779368108769561377949330825624129998033879487500495413029087442527353210806597448638257166247189847618426627901828631764141020539531243868111084372004097606857963327618364272669256454593073193040132781782561435506670578316021432041341032526962790924371635375295936422742224116361707787418340481680135526230545505306797450275951366554201656208592187617537865326493536363808301099313688709258839111416468480616920178238607125832531357695551920080035331010583065484521775280291561922742867992617999876897228289823487096916622882147456521410990377821576020932889593275509816908047059816276816531756858230302153630275068576511860507994007633502111655747416926944348621328447309993127840633526787928080558391967367860225525744376237565955853417934165772161673157151515010210708490418249614753178852794769411736663823963167370749162460546325871631756114097573506297259513193843617540446594402614703937279337046486562194216933285537662820207393232554141910694692018995783695674592429505282719337772194803532715588407141352604259487071720818355758576044547801280125225796665529680223825283192163516595794970645454269852130383627715412303131483427561455299023573511136813275470249156346487852474281082557057620578765329215101006746443521470209151214080234065807810262227855125402926228962477273173209918047412554850273912613355371886932817947868037059658668187544700715778385893739039807760525172508518684791436920178086175914663333509547761428419119693721653609484172795273183266218362841165961919158178951766982719362610353424806103974065235146633882513189835891816617726686470852194798038085791738997755352760339354558620811226153734068212936617836888094758105000845634744766311302481127641145819060420514787980114708020090621884993986801879203068174627312719715105615308609814016874131719219455322907760757740412902630872907709202773901721038223667198046718148642959242980922227435333296608021199768268187957333321975059421175880413137186047811871191050286223101428938402536210203757104908640895746067283663854468401228265429836325725535855148168449769592204094961383507934619936993163338938286672415021307572487134550768157370343246898914505238492649278974245832088616540570176148110969336419073697786540366181440747701093445213440313741027463288552382493150102239392150092359952819491320523440565861157245946311351379834244565941581781448011103058700992727860878551159991322896922851112675704479493660160853603611666826543740840311526969040532017024829363987810317708249042470761690193318044652695667144853606030394783807043627097106735756269583861187687949569755721283250024041878088238410183795317641155070533771046034052831804556708551022134084330551755454105333683268098796484304217988646953251816487107554953010691372223367125697297258307698404654991446690229419986807133405966384591786563216920714374407201504960477517884719737459881189167541246350645964311815011728506378492750344172187052212285677457564295041416438176387579713326348425412298323969745967011494216332818112166530701332909799147401702756269651576849463197912136854962735878697080340950650632109031903661208790861421022939167108809224805895753396474050018536567576615883360057094114287401737875861520578384965404353932357668190763070168667734819236931626282210168682114601398294391263308135654859133287377397641012072884200028791435460453400121793761941263330300850402403505633082139460616606121544053342163015147119440040388078001141304192692748170248238696476240879389017530108269826408848608269640804459025002432510157505369019554719872181135408727201443526548552239447307128034351572170343464283325109870202953932174364030642517011181043994503318020396791102520244552424613204142386530352412561943424906864473873040306538298439053385813980185960842917109767692222130855826675378507291868505883591472413953548673135235132900753661778010017360688915295710388611556563967376152975938925959650417525097399972349531068092976567372477282598684046428918353941092627799044970620412256096383391890664841212906326767272150251638913238550979643554121127452451090474399933823781258144418838053644232671782283009076663519939556204574573130930874702266766900688245792415315061216661276629515076203856474239451559917156540124820596066908658591300504764368109082966488892883056000942454589560472483387895995647622181393738278165175924917264856057724899010515986398372632942741574587335218732065933287082225023266865892572547160627110203804087595230705064185860433993430812271257065787533069781235434757153286842598003990471970066166608133919576188886990733167297029868645953878792168950577157536947983828744408586490774032905878454160761506715356403935457916296564957974359286958427942255332636856066706134431436882930895355029882761051994910553158084755197318953141278896758350569158561072332298102200502367879829011238787500767092402376593558298179605864570761205744136150742927046160151835512969520043295880748288753059556385751329230556414260833258022969512780459627759614247054395192310588083919866824654938235186118074265669825759653232094415740138096286859958496133775081682238825502540040590057169584231251999860162186860548563346044065961243910926852739110506050451890188139451108071432374128852353092703770103865585144653283360548743149643359914540948158987608462926811781981088708131510998947491741256028481340942514014485231952980205651234158582280661988074060719524857514359949373085245081565075649692390048815405917840779567829541932367658520373866997434263740870943196319548687026894494019296733396679273550565034122808774567129178787789223274242888852213162000314833156991549713555741172662155653628433048023427973768621655004675035727664334603409424478401639036049637627207718565607037475318571529976458796451006415860525332508464911314597483964243917455578202019897191318665886291992844077739808911514235261825740152580379300216180363664951235612848158050435835800056875302763035501698557904736153618288164337474307222894324663517020040872534187161645342799250800123547935986436063204215769021955554827098898135280527212389303643923272564279980643028364270248368588193212327094017382740653560511416193263600529430535868551517009178828194700843532622724638184357610230941308138714211062555301108464689618953107160536088518205828141660152245453779411573119333007102737955834259792492214444532192823764189313005249607542768926022588008483916858755576230729626668925393216922420144612707897958640996683314454919562453492150376770810015455295358559982403569519763621619073636990671208234277495325008856699828368798685945339220597421356773350062118328302343423448065429733765890425529310835197858750708095823625085720461548568972324262845435697744128672876692361695174550398712688737797272750178839913831566682071894541068361938093566695417874470105329390974506495714489223626047008784009600548072648815214952363254998969306178044119998573929767870335581931295620364439013351871983384942125632901935167764512934125749387054833243252172374715098876089535348239760002051535992980658281323136915943910867136564415845049184385991932258924500148510321921255190933571641461058323919428714350300213812975962978911850827275292953620068392683901485292230873584419183141181942353421188947837259244566434206734458269687299070835450277750354059332025712074107368964979589948662886058923940630608259446811007018531146941716280635325801901183726880498493957823328898783559781254566264947321360007686521694498273634388895244343079737840172036011203113826731933258376329691975754308590938111737539392572276294848051196026519630563531046106338931347583365051536355767483312622868508690015852956560569793249953257039993073971858381909131950884549009817300268619245605206715122969643190775581484466992922314911794390394687638109990975907371484669939810802929474021862808939651190736293350715445346448276389126535313007790545633115963094718334304231605656645951164968390811739217832819898225708307138364947215249691698215456217350792375977668032612741925746286168267544848164701245190542440621158416193144252109434501728064386946251386537246116048401263323610629188202567679576768306392275643308351372917332622557248284592294927389439947764583854252577065206559618090984080008205266954157615498795490893608028404342123508593435002967531398273429881886625948954279289071544026470353787930881228613284868023639711641948258423575999353565249264775129479930849786714190956510803445924354578221774754667627334885158054016063503024362302080009674356242882555425277463724495128657944095932110675277432427913060631696154780582655005628237282148152477926326092515152040208233416484544988714836289193709569845339751494586819299122678373878862308265057533169457161346511236909510294116761827012435107381866481518459610056354865928789114477323347899296973217453327117263906264169653102084630006126197309010920285679819125084902361542522707030606637514389463237397536936684310798995728909544319152988996246022355396975011102664300779059147435105536447421579617357575547507184290377611732173340314109413795275299620320857732723896252803456490407706602467718665231599908066112492995911919744666006644475917380406046498647358324269449239155251357909846990629545128809919798793937220446862311730099245256273935995599122712116674636748226277177331972103993874163242152709652366629453344268127020672479834767408785435213105908670199101551387723031455772531053066911473376043347659285053965339037972392554104967936448299543165676799456874918714516475719209546655798903278820754522795232383806044043658300876746300857689520017087674773534126690053025483583848736650242646941382143267417748254587521366219058060390866956572479119930991956955667940255245112386242172125147146689974213557313502982606794884098797023256727354695356488040646055820272275079764227494272839546356889072827800438080799067885439585346880827150302930067831865945655349275360565352899129919259956422799024967864821698049321268299836589550783515574278188045111246154513084315099381962890888530684037084517482603612526874670431819452802914413818103930997704059546023240556356068794912688979281354372569315253794720999909543278261927154651913159123451726664759533618372074957006382955984611032824324698170606598361108398652130793751830215055222658946415478854671895234268883515622129819688684646796612351177759566096275413161792190267094992011459900581199859577201790479726079741077989177113882238720627482730484577401248280418845706627766091162059163429192856317238758063678449038213929981412922742943109801003463160210873950798661932878464738918541718915051267158705689005726262557847101155039964407262613745911566302890061255762758531869708189576401134634434097794736079804909421449585675914137544265046922171929231138715826070162498976721013415778560368556356003954117361907490755021687325659057693752043769694799762611267519650874005427863210990141510080203583455165631057946664664957446547317125745259413997806205354116880926964316609575186421594054318169787078631818464387828744238826354279714475910312299507952837730298711298224595369649336546636637990804901112330965415882164916997352167674088078955373866362016964788113341020755409121336849956601651548209510383619078562096333076113716856671829558548820715095578657880389572983126214593450511178921387216325395748487374882567033750981343962385089311693756189315723617087853555303268922138017644918579602894427146551747187664304024714630290929786144295851778627728632712013936661191602723799776030789704035762327651014716057568381788685417555888491388547720161515901254132736051156604608155890265347372630866044786385513848030061652046474815138709043737953628657722491856628753080190927671246127227365537163977601012970052911917992330663934981804770537121205994296132794213568735251523997566386265037069101553433014616555215762543357654660259965802545767991339999747497057877773754000456382673553825669895349086828267304913343087163660960396882202492153968920874246675482678531652949457468881571428124354121457932843609202660711525643158168792527002787525524400686834076992202692682448115199833964592655645808934114805560301097277274264552844240175013883927140168734631143212021276524360429671230333769534345363820635765517534574783900827736902824561382335200523693773030471123581700416633094149724369901206643569697489499223159538552903203889405382554260174656367891101608115167050550882887967368041838528075511641014513956561675160811791074508372641454460334910199568053363710609085640032395744507447042740451984582765295032598539273944398578105809984618257035725056743692886475600704411011117896127336516069056934477458442551054416467379569001771615033083813595235459480998345512865466026646501346343846821828102571982164878290656082287147396210561051027238932046701972014768892269183714877839914573462343610822363978382065895000530265212854014670496300376289585927655118833995628982227791379744760014365481144690512624647165896344138901604852741635584969904631464125505879484906626128418939746352653478679037545076981650286053056648870987868294522771010384841088768766711601437173464201043050754436689847173691226130280580663172375725297132078784808727921860512129005661651052329615536988194082854046002666298991017372068840807835240338140838647499090278435179939547518111412404092708211045963599089798292401718656961550676275942965363087734711053391308402826811286135792208629296807754868003621826917531770925879707259537062336986088285923225216547405018753560686405293666009848780046379837025895289768941886764173741066877092161807797088232917373388958729433711203180316607515858115139493596247198021240093192604260059573210289140750724952509835124288533577089079584694374675296885686270887960531959252653250591762651991507542830066361023745574142723163131635371480566233734390946102460813577188869460375828101157089392296863251484041201075583745981873547403719104414682582114056110263166264650068034414723338795441017335958909972432125828716473651198570601905518868412284165037255673645038854865992424770757341788008752821371169019037694369607315332023281022384943596057489023177640135557113389138864425055023358765195411785429702915195883366620197561086663864771522222860637464078699720137408143376823598738974729648521653517151336254393080136205652723170111988552744618616718134411303433923164527907757380953050977444997186401602109970856546992550235835310234638506464265926352542150395458153431575120211924130602958592905529341443589611894680961780452122645247291770256887532928538363262908215248931592353124883665121187683546363291373233087902766279213334312392437602362685119149384542434028977852035149927835002927877187904829814927633053382407204927278533984024408523093061557689610612674284319647316305110450230307706702779402450233385276349149147708936783602308736335556521615380637541211472718889553381604492353629001608581391270151695690056354416545278727877385864447113769204819352402573660149344027960487050989694024225450699049390072633560041620933336618506731150198046406783414121521669211497483730477900360731210210274403299700879979668098418018719177016009910908834668830008484708228103138773044221363391125758382496809083654485650340708299412345602602441083662454833922001396812637806955553046534379030788909636527795102119713690459728789484371474393156761857291543593306052744494457296476263393872010271461398303996570181541421398287225461700934534936947688760512764487478333721681621822410083520844332844874695437766025246793432767325125673562712943760642683788082470225393942666568111018242013071832567857736931355430046741682228288369266542233208243794297924115455968221433512574936377844318859599446020328485134082441045285941392397786967165075760275408398832583441027157285582121212405209414035859232808636524378519881282470474479706726780358240888775401935243888155018758362110206044163277790714755319032427909969729916699364172767968939437610117763357165322432980804837913495218103122384827445152137901012752886877692222657222879638633140862751042740060018623103788320251034331497647260557122244359729413732236123136557602859386700807959946874011912691833613653986073686397168398819473841489978387671374711782081057043837736162244212372221842708058081058898969012047328873798486753213506613689255236732479886851552987775516013814681193532495249261167031605381254517375075888083514903434631365390184587689727704684450975808705731331808432847758181641260945455721722499015520949606370185210579485110896323767408857281253971610441289039877116660555659272999711509794935442548490091916497371804196305784620890642244677505172452865669631798918983693595280226595468112603072466895979270144126167099797135632299961617743840413785554335084839392913679470013842796525895773481471777839993006733269790655258942421650571868052650533743843247757079538796420650690701576432219938112503400881903368421399947668718202963527335680454483555462236630692575342294834592153268461045443147799591442374395384559522295457468145839180859659435304983621094887227246220309621222998110031037792474741019905387101615486488073795930119311380916796542179514978085609410350007680884845008614495933141137378976980214991903270246810866977675261923606777921390419522256375366067543456494574742466443836647939040016977770169848663491640185270086144921298776623098654604250804535932896933462551967807282509034311152629022711756960121997847823450869810721458109907127368272017648690735316684814426885251576979559370231735849858794401274230042432634562815409194093632164790799536863743597042312288524675733999491843881793038607936173654348794549645295231241031894306713447985996128865911438304115894173899888055595871637337282248947298857880226115208776720173387415050437491737878905680367654563446238693600877911661810510431548290026063774153017950207441187528629746458625775382443587486896900146724018051497183843410960693086857450427878610825462594441521832185822788986016253471166706087697450509580611745297477031744856072746195519438211065567074156055054726000370486162647402684962365908322698323465310675362229046205497439124206046509419609973755259050432039846148612709115006588563385938910250364719168494061749974062849526018413961555038365877584253659768807598749768426251159835655464279279273579238894615529997200611619700354695520147349315168319692297758281577241302259823981306962910549830719289135661900766889599953344635184332496400798927414785725417301466164735420199402012369598923549405220148321249461243496458625511451768367358216334447095773027185893414209727294705324507137501742899621944871205574137325926505769052253315001768337979531589735537968205136857139185598804184943665637713408179496524006146813822192270493435358668460257911925310779620526603546317841860211819999645626909247719041233138023581418221863674196344035852909987843346414635906229438083377187312538067465770706207742945315711482114336508527143711924975116226584193612102308360379927458475050737310574348187909968052741420387121865409390175414155519431663556502113079570856512288355372707658051251208485286901292569558938172813670459263321818825145465412443553072209695198702539777602769045151700166990792080203111515798708580443774037530019627018037775727785073926820234353305889501113789288697179396981955144125053329727865078493372493321774258525512698791639732018927524749274481085982178568410485881171512115294211447141461844358503811042018739124884636658849520036692195720473865237961637799299390009308677068087060003101389420141114474208130750651636680189978984534926385900272438060077581619489902828753035623626207318794624014863492855450833451113989466037618952109409189651639073561892352161341898013953888227065112779841082289895419358777513265539530280306162918885555693022882106430294616769132163776578700287606370797626577277804682829678544571064194004979592204238581133338377180556380080585836153084202553319949953403114666789641823969503558539355279444462991794476822811506940130115071050688479871431158155869979933236222236748099938734968972483828275480386068279810052568714522456010083290492987199858100455671491572643004072093149058769649737694185385010286963265588834003903370350802442496336410853881659071180827876245842187208099966144669996677279992466807744118208963020196765829590417286943432167568175920743419481541835590700926145127181263939516199183291842984284429603346903520351457085382676393583695843848382020571237915492069031864208433231948522025129652850078030246667036403105716996296734992054636786852824993413747458025447592718823436034838848604717832376849271552578667848746892754962419499130815504377233221508172208804310118963026858380574501492321502244708307276873988377981733419167328692394825021687409350035991567836549326305851638868951892220121784395074031153789301058479400632467682680210001446168315961813066304202668407270394644519340165164403117799892647346011505222064419844875001671371075191007755910253831080539053490267872480794776919674417482894340239425781343424956697236571082709648342401744592397505499416786508020113917631594394414252781318315376865649933027276047966847347318228683521888505665801085683203309360890367302545725221463658333116736397768036149633312882847789344238881763922228504469109115663986498524792737544103316155826439948126615728697367107412150509919646020866173171002222340305093968347132690957765970954068495801732958654333414101345108253800846009649019687917389076020289667945047020311587420910131836735436222685477902056531080427865823071123869431290460393630215230937384200160778270599913941033253837644335017829025617927357731438909494699132810047668755446803798876466171252739277485719381957795146145665350648212980686356673261075296698936972297698683055406023584505547906128482666170702376417927623614504768420884421166776459631842382784977051216011061556168118600927642129994438872938377745275273742832622794444878182609960017234309698511487979590444676437516706279055838670469673852053889370077413557609736756318461076416185146546703199490061054329893310376020239091254942038063814944687925321500972671224855446423258408730799331380698426344854306654003506869362789109312614984570867015981460257358368366361559348431329963597014344369180616416734020224684055601117604324015112967355447554639898325003393392742691745922427917128935934952284123538983512345665698936527294013135136616127213579872037407304322740976705772367398918137051908768883955923306496338347360535002549440891473054526204311960698024244778456668682934862792651688164510652116751102238886715933801257060878503743713061307884819948728533508591704669711068877983838624616324362049600535568467489919294946726589608688809372750748155265787392792156414472477540436336161721845122239940930969185959498683385750788965417717115324103399946499277603318197780571245758146623329141369782266758461164820959888717488897874190868374918049541835507909098525726024981849929627026533419516451854333661164077165430496504421912622904749669060174600861644424870887211642534808638024515578960889853011401580205167108855272648626850455661404881149202329239271154032931459836226811958633524212804869093171404732398405270987029667435553221770387602729667435375074057462505807059234504525171363912794331852132410860199806177015081248308234637300293565163151073107272145804975906344239215711251124194407264199333896217020668546252068212328448654454761746400159878917232214521773037853109689711819252320212112227744378895203291314527979224848366741554285539968681848575225853537587042045081354985488465110420604022884326398783975091982583923882235091633757762825025457388337866982960757757402141441104465923573020026753667962266309567030456351936728568145742417798765201814905091357879991586991580004399271953967289506488482042830945118277125162822188182424974654554399931830730886483282858552619001562200121052016947789412726526756435699094126316921595716301685020553132824352873173791257615570038061193543573994868536608047211257559106145272650958616352145773171976990060213110038285258162421961250146278037040920384349816254097197527368540878587622043499341110373175493373495673376834038623858830833373235338275467699489430484712400668724268884764262130036190432676197174191907227869509521589775835615167552682009166731246358101853186454678059714209235085298807703803660405656029116310339504570658609455794514666668401642509499953909658734748178959788316717951887733523761651872110068039209733966752806055588507168028175955290930620070761949252423078125103271248324877620226460716571083519942587850760024158916133637729394936878007051870560518210678156317403840889658882918352835565826271498652853086562651240105873103530931947521748944062057138688714700131817249375226007775126743374294362347334242424467560804016866929407943446510596287086119621325146610370483560505432539651696975345350315298489616082892736093365057873933806443973709995864591910335824035054375168329641896568353718942475870810477085726943825128640344536599376961768973857930098418563700701596676142699486073549307257889319134460073862481748628902174771792287433654699407662150303136816153209372846407086269238067941222003942962885436427410433344068775887217491122158264286223137184137891691958625608643363943981786757979094916756663136831004689407177450957727629158352162188726156766661259780238974257828420251185819488745360987141908676830915958826171810223293570709392203287761776552514501802017527428225668551171044789336465354175302149454457915377899036851447193637156645022062383820892205187473116183848743775793829247544308153203236990566954133795446256113176748426304348831174271630196045278045313021290171560735160756441656021190898059780687698019501629443164165292264568452273455941780064862925674938240328911013979586321052836141492629741955417381618177105980846227555972172031546671354949713883086782907201926244691823957145892249150803401629353325406971710427479963250799767512178911369246128966978841239891828038685345175214157393586418323568908617400905499118806725097308593433194611835796946295044047799203416914391733133394598263069907485481950444738419674005113286387407769691627126665268731687542862876221293456316915861097743062951377852521137329800118029147228271724765227492824599212570056678357735031681423194046714787892797391419461405207147995060957192237794476034522279074971381482198910533123162365256658897101057900442848858084184752748963443074864323860257681270500392470947564013914834466627901905468189581697048029288033786226982594222155697854694591249701939002353866423233920407786680843859549495740224693418076492630103101747590068963287435037517903740242462374828346038580504838858776564881276444227900736698001874442082049376451435979583150120783801610444224348525650582116798816298084911755757024584392915569731856086430334536909738979767439032148421509211104092514130111196291489490170599344057183043073809615679670505288234474053729011553469106648247668444989548863743281008713905722551416862191616532805059471098136687558392064126429374982123785255915768432446279131877407716622926695960493542714103385924946546739728657463599503284489012276336969001410073978914023729836902811551980076677525310342284032403773522583614628794539435855126362653912391390820901105439608918244889210015768688230725911563201449808057845453794229229503717624672592809910073765227105675716192491170752243103943461373714469437354733511604398892706391652688686228272838876899238157377725233712700718091037218581921411943220147986874164027141852959115246660454054732963592927610717247429944435730210535644812261591447684225184457117960797366580985588745516275159550711295242721634137554061144517601912148389628436289535693376253955348107824309210730456400467951676694612243006183203407927104909502326733625409519916700821616264230371185217588647638740596062577747449935275540820691679141129301759249120716974737763024112053270383533910132838695012202772768123261030805078927432866502500719351941813701319663321653142927661370952249600859782889792390781770602239295381346060376201616314403073734667053386374425126444357645057665616967525935851194236257344036175768888406025007387496289931432692323937397380269580677056003331600860969506428482808305792153908921144474122263057064776229279138182619226311956363176046869654217135649433780650960029379963956184342071073879038617073996658521519740384515589320906430231440620803241145073928019689978627815346202034755333941918823295767138113799644470445977264006853832971178107339015680802886292714460908409586330132184360384106284824264662037684353031001167348337631222507154864025286903724628370298517075786203263031252028751737206817878827294972444487521127522136384443170017796666286081316996014219885123396370574008530700643437169201443614833704637518339994257238182984362442416090982989728872190028214467042740511709815932322804734218245077676326155141984965093390131412427077161465712177030475440160461620163235083279724700721594710287716610985659979495709610323291020588317935260125901916502871176362169171149677305591409507880675902908920980189682812999877101449826799791580044362229267487841075335827054171132246188485526534845016784048184017262887331822679035199814922915132058632300943643699321331905393674497949329823816623733178558974222220661227849299066022604783188026371326304694133925594083066199702211041449423661973222104374443652701393932551422152640553710909467517354349012101630805275750151015994506535377792628902898539192842684273064726372935548752031266134797923686892547825594340480641824712462941217951568676433853252045640377436461109232409698639665988308291166583584460300677305965962840589022092693387645812758209244740460450435822734233301416949841143901375789997837052291827697710434370029585412893151063107099788309821500309600357681426321293592210534754743094424703049082588414631959538900944897019678308064172938947923161569347623835141095499162509916801835419959969715637099916915786476304584753287879598293737894626136604290725116864735642801492646239989907593995602689134920367274378538054045462125383073013588849194915189573699454382766788596584537198678941604818094097191048366080865227307769961680842150483279005639870921482859942155682527626394189975923243014441428262536861136930576269611060914933308916062206468252604347700376095829337529731122259741556112325084833980715937645671424231074526349177915170327895789010393101438984438794766005988099648004480554446325781281650330668373076181594990355377439338848780657096378389808136067300222045526474664476942128339877302045134415913946935393093650648848337352828480495736724649532148061460234082184927506595500568253603941836417479768736690441844349428694087652692395546574153268352547617235728908219444553933839908724887330891094939946455695238819934366384394468255516457916706828511326807269765938750832062066934912229499581423644715661606802781773772741012390167059042818254746048272815077455093735320902701953664908339583300250689102626860068395871974024974428664242524538179171127040891069996909803192960711037587180712890160537149319763872728400076645148505204208234839983109203414971907498205760132645360949160341876851263751138841016432865413965791748656334392465062125599474051397434271089715692432552876638502335629161315473231177136988313266967165215547768266152632620792846450291053219065830170469915209509055010652191235049518675841227980199176057748280956030508984946875548177159171416841340263527039478047037937085588610855450959546817790923624701777661053724803590900232038653064694595757474135360561472335571726145583621440432698828156089083395256703512465534377593381805131551819451031416364418932530664001887301232941126619052855533506682454055699173473292679730274668081178567217558388575810226600115758840699133598775613125325784669645174788569937307674788565329474360185785989755341974525531812855311933859498141982559178539674269774887430496365408538589284021396314510121358239456532126727234268849514147185945596761198946667309080403683131108932589339491767046325448649985681338016011409750385547177866895131128857591355931470933242394431501758073220995163806191877490496229071015965113581461608824113047269220063529212023413537932432681981947881615676810856722008032397826357359086909907849536252693731340957773222766354657127439982555889683395836355284887228566054265330657210312998715522989049311694308270357292507330269201324257222848050308858002968313674340650750696388184925637938253530826336908322219844268282069427605706637678125289504749673008778931720183042249964360780276757781896064520571291545007143266078432170434814435913984130550159827016048096122924291715531815893487421536781221364422035589039729083707659674585387480742811537307046245829934521470679170135027805281568796083599473183918512745670313182477915666934537151385831177798273464464963879400176384043443352348491330758831865698979386433264701715506234984147650766059445679348679837617492652509651182133114160295021338747514152841530492954226115990094493695664657444459481636442279211873964041596379309762466438782498429278531491930366682291870015216046426380741323251487959128981213000088442630616139069328425911299991069905269693688950309795586961277699722800263632175370516017583952920330525840964327741165421408845852783571534042328964403760639812565744886623109855451513158054624644107133462794791948936110659656487812594725261943737627972084725600370152735935816313397123045672209841432121779940572667510887459858470978506832624063941786258018797227537588984781576307377977285425563485006897594906581557006797918579004994719395697297680746559012106834853984087631074090703041019396585803142675471827341755600183360219466734567299145135735821775539689220455208085699125573994907013590652365436382429934013748407368878329833706177039764725450602870894675513556684214310444952472159770044691292954144066854234163948426434348159722758994197243024938580888230578443453903170740278534562813501798682419957546609302511369049565976108454746191623391522713704101185313974150634293461703398410119337494236473024441499059139668840106678715216845678828728572303810477361121350238270295089141984084941669126479279977803427170772597574114861916080450747554711377738066113591210161305664901315398025511158727388803670286317553393129244618623286581462004021732044385546486778927514197226884557648943859226013065429350030592343465293047143877091937021451080944528714432813299209180242071635359367766880827052311319156356938641804742179082568212278469837545215237562664022454218951634444267192134394322426589307593376151055132859787708433470800418149695748868779865944596378216203574841452364384283498917537017676192940825204474343774995139233892160304287061898759871669375161519933398331953195031776913803409919197216942361564432611969237293930312397931230745257417358502483166325523450171759048201366179150884747581562390424525398632925102962643779700216874609978547862532275754563874048107816571999784119674922265752323589219519017000500018212761484697461209189812321716170465024582397994350267105937190811000391836966902235626662270993396293914381705255307482250888025166187885661851128108828529686918618995544258082311682839978047615545461952714540376339096871535640528674544118473450596827501800277740283604679600173283869516822904375955952746615477630898753209757511602988674063382635866581204210625341647406771071956328967381293752719234205056799303647165975043509795781273205498224851146171880503752904082948678249981824538152842071866737959341389863509201535722744015491982026078311481380405246911351998963351377683367363610402180759409752040466027168361728106976001170956845489684585461821033665899404471854626580351406054683829700767589463910373978426946803565739610351728977803397350324845809667673268988567142606123202178796954386358945454782163813519283047180442737707366499091034905431222915153171685624151967224556365348310593032817770943732138184468795137366996942889757971855465036849229365612415295605935856983945705319372275792675033088157366474585227907701600471786223679628487443177095215131597584295512324577010389232171848726732576350725500345163907779808965017305167554181857600052511616876533274356463395012197921290049548726293155341150328333155358952917638593110815532558711588836487425020168268373823261761301258866804463338688416141218815312209810061140452056238000802183952509147765348990278895257258674693674351808169224331408033006848948578830641139818776921790058443388494101270587857863026728692831723402363504953398816899695771773360196723097414376937123601229160004556084360303130040042881461545873650710850675184245369809932589868243571611723305675785071675177069972294826001539142854983077026772617896604455886993893544777886973520091505958359326246566285312196239586059457317381209053897511233224425370758875169913102282569744551103129099780507401613509889429275386193673995661198026769370057305078197314623404928687351080034446042244235306647639932421315509740763895077985972139062809626706332012815384926450630932543017213799222177295263831146956132511424342238304410024482192021238106297006523519733562525375252699026355958408273301623479091788668318146940461183186433481071564678756073560475837641034589549853915957038368877622671345446867675415839585336992452478817671554437179994878998140432499981441031190409435543930324877434521653135847086316194700102812059143405864945913407600616995463798524789522997262007385351003478429729849818261933979513749410316689671571315697359191181086551102214458522760801413199232444583883321498777474586877085005520365220750699207584065198808753060129672154635582573825038756666205034863194125147437514790968957780565816307619699299672232263229017725244643850189632808133181627721625276161115559680092249877334244087241847846038497264241163345107066495849383450324456696595386033679031839527894395517146957315683089322091160681493386623099741582223166955818001643837265208790871682163846456333462185309862167181337727517839763538224370058545381430245929447265224354070700284684429797293912631426131982807892917775382080561598387351931353929881406711849649962455993896614618997061586317479373641698205276853664082991291903511861820752557910829982802655813675251027575997489232834904552860591456327851085701486877535592116815405315424075779215038301075957346094341629419854807768137359321488832616203639753638933128367706628883453330433991606562112771550387715022074609402541487668612019460532562240537247522755329059754468971117671058679412738338027036462997459813452785911957206031219843309014846314786713671804156441259573628159008722492656392073110762353867805256034998479075950517057930792537645987920685219235679323272842294585846643402406052953623379375377076756934001705448397928453433783963493915796268051264759811892453940675947062566324494835694708371950086559300549316587017531058120530259643540989482706234804453228234960582678467184282089454045942364776822574370184873871808907529756769687435625453808213433229595196824547837259503806808892030027753022668783411564408059688223124968656999862413967606694799150670512786562862412519894878445908194504083306200016018911988561142378711850151512544763087113562758260981115802687219008687894210663134423244228471573598500738224104678125802560150885882505668306467552665634793190185370538951030733917032279706079212042486506767666254681348481703114762131050659311028013331970138678517374680414664106784352265716446192176868454221574671099133475711717633710635890773289091246873899291648100229471304293465447485223354176596244693907979596956498400964732340091923267530478375389449115405901052684889024518959731903359057683392850966812549490944274327987881560272664913531736598945371550436057113325901076671578307103661755094448191860043350948530139403931855718043829494556198788277221526289994748575579932606232861919614903336472904723761713811985480302066804739286084461685617337659567085865301825942338861183580199339457284994353469856608885484529867765880958847129469232261106826964183377354153123716945754822672618203012124143199273800855985803375844699169276833463253719807614900802353683949140434907013870699976934674251188441210472278268539164506900375875776371159226408524677041295712457566635441460263795477622677170942617116005495720394390883667888682186146898459617841590760183719666603029438538790957469623895437715626197823107534592390372773955759492259467198835309811554573094273319149777299126845369253094919749709051407721842102135141154993162918330699217477177872272294694222688733489551553701064112339994494754854892149133923722213614007707676427677486219675996257460757673518645561870828040950969160120704120257551511358342616340774874121130338006751186885583847890007816947828281687677545256686365064959763186068691940093979927025151303479729680116857601735516261208305502508130661363245053142879300134105459423602044539681303699215792899259550514680976112322643919034291803430971434363502923729446847126266260349421704464282033736699563321194407372649696903616227280319607434178067239683957331288507592537797688588811912235303270140222887361909361337848393439092563049882484602435013147664377120393408143743300094004511788131301702046906373068504572332244413924568631517007426771618768219633784444936114769566811596985139918141188623473010010386363192533849557101944651290587290662504781428477174233903236479088267250035836835686456671373105478101724821155796066949419274041887608879624101214719250840273717426445213983365133223563886993112683048034631931476483282895607058351086052442225651218337965127201899649465974774169371761210717533515442533628047897127445708127920864108197292060090471286141114092288384580189771803342999439294134039085347334769205871439681873783189306834877553078879414794580855110304782120278232884703365625746535623764041444389593457434119590558021682275833941055941689575724188784877174656292399517036523512337572424934888408357257554855071323203371601960521153308974874007270265109538222237256650396642086357427617452918397089598733072993081596003441834172255163003263596161860389198484524191024784081188577792502771563765196713396445558751132952020114260840761022808047577517483281255700128504463384958485320559362047615943595017273848192801903446011468267788502149018699285796175890436886530270481353055667238553652432831889895408086247990480914908718790887481918016815878417348137587026900103858696477674082161084592473011015859772219142306718934594501631728715180321151229308420074048289997446892913461850397751703496316388372588534513209032655677448074191038881530794633893915229399877489966353989450591411176632270339689490041342732771039847382556394205722661385797741963714747126104123018624478411395737139927696730804816480615529085369396046658601465085731770629163885661601767013541615174142952314185829865739249240075950513008832480493479097628344846235240914630480892748133477290458241427279857689340373075976306455448167020395990927050503626672265901161147609129594806357243564912899043477336070039710672408325300805534244451991189533918562068751546394896068396974502493041542992512497959844662904378285625325594492914107915931117753750742471337900507089550684190759641343735900472575028337232205741317888100202230176765562340782292188919523130395688719031585842148971351712557057252830449742642936293034976746328553580525373862575251659623329932747176678483733921263234240193218522091202489012200858887532338332682793852783363903201927787847295599854712603815387584585814934336118261996751845487322318552060300953373545352049075886319563327110869607695256856388362534136068057792105385714892640416345311849212906696705031131135674276005872978683613122595845868616027131315457616431032988457684879196074323433419753543393506193305349525929421582416633268475386304299963994760373641296543486480081787651665487404753031802328180465027721096173815385659389161491766426620170642043415569287228742087438932715352295189539420214467316212637670279501525483736937680388723827194722137024198662207585070748522995423352046046556748788551723826824697407190449720998691689447675362943892449994707717053088745060674084425030685777842137983035564998155583185238776292387960461642702369428463129771285035798986082661623026384557621340158056856140235331768997123189850071985449599156667003695256592823080135362706680477143421767336442095025681748316541341406795959721429637752366988221275991089595856101968639818347430739270980116639245110196678528693911468466104787190577118673988026783380684211653140566211406823174960198758605681381384736557367765712705751258869263219856053316391309605518624756388200666923702177713368212705112713272138747831057532323595557103865701623122901228001811182450137057349946463357377647785935557755307495509163224424428610422606222038613453856157052279962004562230703457839310575810977213401336968418456618754054798932153227609601774569943117882243526769119823940329966648263218113540506843157832668889978150864931273676854111984724273601851227212001314920457525837533635486867911473232967175270608807054055916164336607621249076116752645713304465864112361158435196795981384267753785301065552065426592241424206460707960436272935964145592022244082353235271028486732874947747197480122490411785587488607182662240419981224758415698743846317030354572570362707745964345265691107138291804006900760313720179869963376503023957424341687442753999513901477582908757288211735152091983313784354278083578314329742374546747730181418973963862654881678964179493268271975604420950175278555381731313465394550522075738814816412018881381621458134951233986640961613363522966359546349734137785793064645861897275670932583944343257272964892536467090815225044747443726481321247367046403296749572201677863381044579330971006473906501797771814942167888989120432992271743941019494157826265187864497250978405348726609160463299583051269985855663685947877434241626914828160444613837690925414384941090686237725451706432626373704160527528483075842415653829073466815593865758011799831535455723481596370234291751475711044769829960030468483402594262527645941572203301299531687070625992133988881162779368167365870777694688637784387682528524741573538614793075434164584328250446782267126910402050146595778839421533173784019738703424410628760631833096578359066628438879306465639916033804635656118065854784971527904203125402609936522575377373038796560454583084035033229215114191291619145730232106783356092745582270738513177692693310192887869506087741772649180140993771893841411484058197062859499527095038649266150050852087930986267612236832598142688735491418115985712922443125450167256408852281921660416109986280289399144210890444937757394229889090324668762966410461414549035131882195299224841078099364302315567784058363746454255101864395140228552438069770657855499045713059131207397793177661418405692062166571524638812063273107123788912976574915356907109662807091705884418855796260766761721474649055883649374765480867600379733547608126739010280238222634703401049946392612648246066084391554800750984461696516116868244215202260699224697602191620707887266309330199857892853538056302299291050872327714100724331786907151559127729747486723353704481735815976883584445969874184365172222291565832276007668057688427259689620430835286704608950751422297191462414271168821348769206433512247257933364675553812080591854687205444779513091667130010111249437732987150669859001270089078752838046975707783857447240716948247575415543224798087966070450303181658321308454437947656526841795069923364219130473091126333533048623541506505090472955220250400571365309356575396719581132227803886657779541446714862666958797975471488055817935221216072689163085534859767236279451901578916668618971892991558270951095833652514220502608191123432873536856671017553321072838101100362866417189514034355774215424140332384009998525333324103634568761032354204412919105510712323175247914352037900098054584773135615473487388664871788182830004815112861389698139823594205131420540705470611778365355389630148794327339396240908807285300545354419535300216401935104214494895255767345547641728368704212816799371100443155506387855153810445054497309489959074725189204879345384104843180059460462268852493695113127871594686746877315531693719364368526737886983816295972961681748566269332478983382546629295117259463177260459929361274057644858815256552639933451217835763636765408977368105455414620155591119505039440516589311469178688534105786333428522205015824013963137924921823493463024328031144314311870616263723768340720066884017219998859692936888802934124203882628676822558095762688780826865462121677951969853723393508277594653368291104574446395627111295565386315988105796320862834086697836581619059549663251318213617359090494793587570362304328514137697573098520930569305006221911839392090650704615953360014927375187519946385155901791262308897953928307269190266321511130408959222287095097727315252742507860113770266049946225068141374420641188152679576167352363078580543408994351641469267389454577844250918656044106623603033684041238785220601775137059553085385515089372873733521478097922962332155510307805988213882315290667469891506615618368005905591520703218213609882160021415892255076501863152803372910195163689523362590481681310703373376347829062530540175401194331089555486791949149193135451167509126097549285822141859426604415533923741590989390950443854491052906008395534426847056755057154251822262554176441950044422367369412761647052025406889238265989523503318592503383829087503605532917874553559236636769379510617069089351736717968782946374877568777575240218285985838706757973381452045657507809100200455121540592228556773328866431924834773823123898221418939471796040980691300485064174523816056540166459625689319108986850541886443977396940924551203494401001299656376363379655475136183570035843114818927801829848333938249898297055766450761625215618986938322801287107716962716344393472508766238109217543441798577709292835022885017935031890206834528453785069759743214598051421924159454338498346998798217680024684915120675909589899338090987806997814159734765955411496183159922652870949681383157893861313110814285819163793036510854395396416817287540026860988702891061005344274295956834830479643512919433269924416180202285286885088098861217174497217101722551423912321425375504132795646062694891694017953212698374580535104113302471131862953303554641877501523584141768423292762991122178437003712850578899098664587489914326865937747770606255532081430967323635326835015324774193187446885955265669635522760673601939913790929672611115234817152820904098918370989752685096227527789394845327712164463565383603359397472967674710935229031157522498920609732425474966161809183751267139247290357786884832340308373854930265269253368310145167827727461007714404035426207133012063332455820496758359966636238398879902953813385962401154388820228031990659490869979639295309798497453234337382827762704031061381394451596624088870343801107988015945440260943941532509184253820615341330599415959506008004565822401417407084786381058352459490260516165052862389084823253175011797498813140711037058403825919414139803638388297712074349398690848617852985960999759892780815737939958228467834937684553896143545652408686094965159857657338634258200660995538487068709092303367911880768337083445518710466631853440854717043754565886023719629313170399213092976433074116831921036407109263810943228488952784437961806442501616179144605796611314549583772701038913933655913942058960968392420670654633365018885786185038479123991020519530251722364735539001017152335945679010139386785647435069189414164016237938540615855816776859642192105679289163827764291875823529544118740271301719081898133254045701491404146154302876118934633102523829666840725411195452016444958116744763549904761924357366972309164132279025502429730520216481608035136649159245729877231919379975214488380327571764427105460182958998494798966491323957078945316166025635387603579964651237756282589291608405608380253127707246711947060336571435059131368229986029717069835035100877617116400328361268205469545651078460017169419317360181289960406553970093774446356429030014470585991984723445228163128616770046627482274676276526510351594668409334901256761982272832029794774939756650247948292470637071956809932630466031654976645249290694457519079234488219815284937957006338992271052824886590943143551018916153812649711725178414676584196052747830878618969126801036749893035612084831348965142990999451109924121646733906711172748403300703502276519946258170746717071758979344296805778995763854429156545828118502320830907149445400577749237389257319591584232925763227016125925211656044750201472390633079947211851833030433834860066657452390596292509016861945353793824922634072873839437130692007894576334670180289572655183895458572996114231074730055039893334561672262336416787661536321094576827537347181748796228780584414454348377515592997337913671986367656037642665663105941001674997433321971393236221053962582140521811725622787227026674479719778764737529160219277128876952948581174858242272917932286351535671981747807428221824392058490505372289217822959447102764697339207328854635659099985944195781579078054307180579027463989540360049819480627952048434463598463718139024482958495614266599898395842306149649416563567373978052981368190449790736336366344584820002960547757207740711878555664093441922286869759767114615504563969349877968993261920651237408254306187364192873372004821989502262842207522277901848888141084317841860994344024130127915519092090575048394135342946652172787925082343696041353430909326159051743668593337814299310294318808086297658478237325046079101937558137156212263677633255726490059264834850441187937646421434495244875838086085933383932405020359874802089756492890897525023854520446293914576815060671817422150507940658913699676415161147696167810076018930392266134526292009794148200420802044956405560646906256015059234237139089797374206867385189474580780206242540999737209897631484117629997981025669348586725934260611404776096438842938012820219867200719375580123850881300359326328572600504254227741265926375179577078524730262884452559744035323493604353128150380431138380654978376082953424061429459102328478968731429957347572367870552352280266637520668295563699330238039168125630572397326055730534474428280636170899196786917321687747552631411637007712049876769735240935165408069756194696088969671729380601144136379222231595863488042344380341936105047803113345640674152953623546306759865835997172234178057723744165047442984527777055952040464731636211290973133391540218463110892846847090384336985376019517243237314789619245139106003562918155626008893493578264275333847595426916781098286765261643295809480617005065243742285185982554779237655515291272216884166091245316471387288383108285772327586218385671540659491906044515422161523842169813703167610677560432362841688096266709128321977117476167793877568966062949169874118763856054694091331093835235627068299382644064782623713682162929235039832044868854221389931138999439610341023149570942067100548265038139989596147459098249093446398570279506588293331590218556252331409866138365376951042920676260018068942803445106061544050146100726047556768103934973219630839086320212730821697395255464186624616999663438103556353552833282593158263008876209584974921936230876707348730329662127699468724389858694791927406276826826491241726256552023923417486714447625102860501025869625227769371587495332116913307671752306866898176742670395313866099091251396225367942936028083409746993382483899541437917056683659572259858181839530468075408867714075814965789411585688522063098661502231656940084724438740276595169581419684814986666982766628689539770113257573198221906064520489198664214978830402134723640000363687465060636042805141663780525346474856009548901768973566663637593142318635028036246764990197829587078638096394869738153804616560455365645337200389770711323740497626682151111446055232056938056249174611002220813350417008442509754234877364378765187604345100804998926220964025412292449903307684310956388272699310014728475188201872823161122876580463502437161074250344148631307321612352043981490684171749405506346899308027832868634341398572685377776053977357531519373892183258367015732520383006724327778190673041525166437394673190032085999545860728940502728537182898724712044710078262031691403494293973897228445223491597784917297229005990172106877778596897051239363497493840134949183020228108777000961147711357293809871127342461998240405403757508879405054674023359138826235515644503164022466511434474091064362503578279300168906466228557681549946949594522320210363908540394643534308810074482785062041752525243450732380546177247054547624179980480672828659926842001136269858578189322870397777433901283259638272456714769719162786393495719452671410877423017397452361873913725589356631946010016528185959418519150592152774812882931253769742545250434474020555910806266563077393410681580038905767872836221608828980117584774295563153751711473113254060233701574667996173390896747369179504437105502758102448163553776576471386202720477551499610113124308210784836814336148168692513564620471337128938731979864949956039436969819315204141249066153043862128422317013589643061518967399940346748677434748287995882647835732716751510021464841380259321616742313411071744005522267404352213297983773332372279282423503065577401915118942553327371624439286385073792311919000813291065988984407417007911974378868820820199449610468118686376093750127773993827202560722714861525170295945407555385379818142991796603719897111687507904044825612245422155827840129681038680288432732232879373492365406609131682982650976859944468854425809223454948950435034376161821409072590707403581961347825673408483774947000169802121072320360614683239077623475026711584753376047374281626935813740224925265980489390817780918742112613798512234487125082542002208916628813440649226088648287672686709471078621307385832110166279380642945728455611802923696146740928502337968508908106422804962439274378230006736929170397932545106004355366931159780483642912309715281413769844660512889962290983071957782051781917304249056859346850792503621580890634423255088500098745119274721728930951243540714623296696433534908719062067167472247621623023448198887482527079044946108300267548221813956863964121814854677563854205919648304095320942150902061312082879469658696877462613268443311313945369517155951993937566695004234408934553129957639147501228867216442479319020593822707521365653992052894194011448200114261638246075307292149839049777052690108063576487969695854137404456895488181844955474798792096015355341766334505608586031531900369674774380221778432343475394920861214905119055071550049369763624554667722071569556546386854259791045546625424880453643927545158478849622899789865499674102376461677494218022854065758312874960032518106833252557744009638685135011919658362368822787364171344335319346028257676437428491632385825087331074024665721696055943204285683487900591824678632397418703473470256249547522014299479395398307041393206531663690376915321547561011761344459962073223950890410140658542973884909236188020125158480499180010781752900729092901386874345956855315907227014024574038237824956949094972248676927961400588627360653117300202116222500247459620352747994614893720341030201344069797164793543635254216714511445277438876313967251396665079646136485606844745431138654164711803512255143912378618216512273727756186022023087644090606106188582272087815829556694265843785416651602981826248191077407022922079572779279581046167926927521758105448326723216116913010573122401607203909138006764546838111874039235881656126135789750498205739442702687322544889046916768515130407221392401117812721881179809577166773152658819585666019312944441021513949084944282818192297146234561168505878563401445945452859901309912010877278425671364742285507667641634482262602948582319976647911464348964853835389104974941315145659552097163217909050301367315309294124219492261449811407202374861470670186212729462878492028640984137879715412450499782866322383058474341557812080835684653587692859639865260575151627311117782759645045131384248075423546253617562518168512114983971140845537193774782181638934842655515507369448405523774827133414723444226374902875941176374570850498233548220540102502820550309580531585448335662272816488918038240993762888034755282495520545732662881741716337396252987573088266721155083661935071765639414919004272478932189291414465816908914211021274673390277905859922702553534854282771755035793390288111188800382654070005455202729353618685417245780642861083970889791005186679232223544643147994911740955288511517296748459139404672170992902066444361657849630987358555801943949240271681604923614581443557861753306355644413414297156431885598125482170606426660383227756457638375224508292785854750008410536167869987532289699399467033331294208192257751321913549006123888638511438942974195202679154992270278959691903722411716251348215485774900977537569060883135461825488796233746866764593474539734328657625169147172519254785375640652292029594958471764068707804919252461182845261144774621130627412807941516524611392158818592311021925067286475718956535229966752715712548037313118813289186815656008425534823940999510231451042628691210089748739139040517019849385991180703061300157596911791429718206659778044855128303063178368522232083714141066284473558306860194479172952748808489025773921880258671193576766774046330328836151666624167670606513931840453975308984742754159582483931970321245677547004134783906274970340743555402503649116096811400456453139081398439778626962522383401177659005999590409954573759074689444758031960274170114031808415354237166499865394573074181482886544257742577729289571248333007693222644698389333317116141111014322424257941430252524881325928854813831947996402431777227078440308166954439481011887916371075426876276935337985475173467523318497599650509754173458587876596977725551374570923450653681677726223684928145997917542040375953262695834604333211491924029831042510259995652107038375880131643348490592976521852040087462394474408290706592008904807934692113175190357301395595986536189387395186663174033347230016130759294248526450446374254194702123189789464636605482150004122872881801450921452777523543319642961753112523875285355897730646056168154568496937443893887414626420267519153918168623655424281574815913974019916013269857646611214903125494615276574858402876778949247750360101902581022106842429462381279846909562047057311137526446570318598329734972517471142171526152980910866536371730535889668326870608376550741852316614544175851432378942904345427591064193521749050854364658753371236797581035386259272141384567817607568503875291114433477974287888407511961841441709181188473881516794823777688474506549507173320996253159033853019450431319690389783945288915219711930206783657261087445040599880788321805424538234154416149897291300982808881691760432750729824934080086526446190047030608757535194812958353192044303713475679666563950896916729806307561768711880394136013568545732283986605847017553423128197371053888284103772162114553136325640745477107974717164518838212371313927140338241057402891044051086555196941926090853621441704330123912610711578851457493506377190262008459261368631021913308720238607383807783127892171488277534255512837417713001675187263541575216685417769354001926866739369851673354379269339318336912033686019149009168519655498346496626609450739100828409293586716500172723913141098379728975570468077855231861348220388635861070390871794824159557866230674189113296716038211014039741291763809103217277054238173410329451851052169389024647132712528701901265931618291056718657932641676324384345419544790137209998236438378039699359624985714202495434247779504111459731221235016480816658570492950064538897629487309443500062916837061923376069814582354992538668411217794069916252249525927872781404179705757093300270557947500263252187249047905590109983006247674772090588587289960117499179900468969772755488404998835235180715312175607683521873139830433385853029578860802303359167952530636878053744918468094014305061056621981612783673014008627140980280443592633277217409132484712751904575582999924948944667512779970044540316840317177670892817607555522780059527626261000753683798350830276715959544462840429386995363458200351267204476481056210195278275611768254256197956327430759526917803092992226505798982161422444842425236155432996266371187821121665176961740462409594469492386520550066521072426816980072242325103390680963425708250769319257302312835372180408473386129848664323724877389887002196481707648289038954134448152193547469458492580121612112574142680417231332678852799783239940771546706164889116154222320576215317762611911104253946149924878421836866997861581874741489687961915937400566575765678923986634698744582072550189003266534537363576302625880681963111048405792374731363113872014949847060049145006420371757227269089926646184514910229595266337183619457975338179262460973358368533286714549079664515950421545803843388196541272036641826923221439963536735523733298290616836387983731465597844860098383640955059924372889689911804667339998364884201206679765734803940947925962511666096419672988468378652135984947501891184533782506251752592276908379596677370976055492328179847713902061055844182443063173176592070202018315882413695314373529623531501645169790292313272146859029075030271202353468179876221882546541227027685179377311693104536166689062339532815853657683389814214299670304709822708369145388509427053146482001191642438608416801117392423321715856725716170304726069119954669927242635768083983429644887206284814244473012407790974391213609965686976945020700927261612760903991470625755098797111775828005891643424135115834531444126948121317200663454452072589810564829325661951494526895965533177132926730197695132361430651508716727093095012787258908956040160962682662817745889692414706757876759244312233142502817729098190334279955718094567755573103900889402572574393033330515824205984474995456885159311146894220304034601417354521562664851206438357891429443456921383897080712689598645510093079013634559581880799610272261796027109321658508367893311021132473417084901569233954280955335516931937023842219414660324388513042144711915966927007017561905400360088706972385282757985524729750676184756721467234101214251965753356190326664688461885705328351680626777802565926244960224792038440742932384447382673877425686470366521271584701867980172970895513615643557008989159763255373407988848364608849054493449714174364133061180415507200941046162924468170551613409156678255362594343193716371292605012524719288623803185517375973383933054075582289678577559743165266508146691690173812190060664885011400737048448941607174573309517533089962575833855455849406376870172350068084721117489231919517705357724107580380956174651644336019597392330895874373995854189818934086838180471552931788935055173054736433389226363250403938307168771986645718994009845702560483661630694625787765816012064362452132051607907338825064493169481515799529167685330017123772512513973759953461609512297364163379622644564523742038214622114623785794334798480451368200759086390067595833121266696622469082075592629259604394089334714801414537731298513672053109554292339687123427220264633007201382081389217209855168842054167209759753647306906509690672753488360153825755887252075361773274081426400772734641329853768111459092076517181234825422135694600236834348499046204155581146743738795481618715782697745407943143999902027516519639707205457706722108129762560762273396730856736162173591101879890805619615402717878770305602434557741522264406160720952872695822087972131240846281749657729585510061756501154795496153065807800127882709023134795550176945971972577682616211422695607107442290018656690968589119132154964787635558252729630899485347658129247123053378187139689445869629710091169816760124455174309424667037502068287966049147156420151895475673936163124221307069342007663657333709595553663322967340959908857489850568170772243299973074178554363453428032008583217788290928736204641587299420270286333282820670208283088399387072276119547934309055612674621910847496820455368536345883641684719150156316577127352014289965229573287387731945113268901006940909791919704988943465297932580792583007585621554110777432003642790834307541504924518658474283471220730416380171362847103273975818737520934400986367068814444736559929034272153616434619725655957815137179439555118751999099629335337907158976001378410915185480851146998674806337211096044723513824488989913371945478833983958706012718160897503200634233915117080055752202944412423318537815092012135287600128752815731085923977805811702208209363092808455382628565500695980806272150015326492002520615006225513761581522182300889730825750305743404461081987519858489869609121731673368151204026196845985228085495814256893103766177285156671716988865214644953364731064489252684448201076309145021705236760328814796191647291476946265680313932001670124541126957571889557003872016073546764779202456305259399086595006600881831029502673522255249702202702493136332142905244036327614499913456469609644013290050099346013501562601517044234146481796934451291489510326587328981964678083150809617846938238093516902818377104205328591549112150324882087270927506485340281301780286133571212377097950555278526889933809248653974178775064949580534533092262705544350684983538789265849915065670594154093066074174482848578032741407184965940442837233395276829121043861386056155094469623631773725674766198246220300958269265348176853479736728546745319167545648472835474636733499175046617183682013007111390279483304417210252229566675959829656348167280829704036183831623942502668936439753488579250094834496729860245604891731088591307446501217767971963232352394648117479490324061608528599757887018731855858619914316474808441903586151405198029345913794081598938541069552307830924405181936224399827908424623224572201260253605165769809822385229123612264679114814358186414548590300765249835061919732699844800453350555548065735716012213188453792527586186749493353798840399991485405877876865760662392202129155669558633208931924677392475723047784302582185742119435105290195296606552109948247094616107478383697133892570230748125811345207730435777003959613758426993823374160764965110568190142674182831916190783795263029802651385865529095308776426792821659817252112829428536949270197759932723288323136528914849168789454652914884097695950540839356059912633023675715654501034652398480053201027906341568659931729536933399175232978150388444472000335086577201690025219038890971608839241594816002582139989799041667443358798210775711373633888501490543579879892132187213641581774122755263979514701904887854329120395261136303729207029630185917018032532435688703399412164099991786615816358474936193513146193329577290874105681767663188015390618509151136111400570686673496290911798825706956116533841758848440133307627872167641731387695703950337530951611361204869289109674649214567055669818766145613356021391574858406217961686304365241195418371092173498939614661390399937118822370457928761602756425768896262508393063180786534809225830789197650357287000271539678933490890896048353678087631658438874208353536254506611455715913213397515220914931765922624932509594165896004388642927604510670525740311522030715159358198424955465267999171720747206067481976888758866019740761763034339367790210722354910692495091119482014313413871379382960595817230258871292459654272192973712983681860681667075066562531137211873254748973400348053966844931099747591030444021049778127439859861625237337241341141840545959039227993062312607555661366582943506346999161195098832794341891279387082295296872190930232913854811486333356460905709483242079275539388067434791180412214697305356523882784820001454602377595371163476263874487081880074477670366141666062638689502692938052294636777739359880008005608231584927988856877560694971085415522227528861214023656991730958114905119445619340399342193617383005401365075274063760094845240823974137691900920233503332983876218065432716655907319128539544808235904509179134433241656949148620521536005119854240397184046364504342508034362203283935791952781075311746042355010945974393567846376726286026422203100015438295251346462850691580864060110095716871905861295656146276178255679255704814216588042699251264498614776195001211780947899640766879594821960667790952799102275523859312301963199443775872416453683735516336269218529024698157599318339341643368290174354144766565882485967172184543541205769708040518170248190207673782123759036246250418459684193546267158497512475070215311508042997121448367450681524390786415113090299951310126609077861144552414064993532823955097368266556643116303076219688369265445138032703881350421492426223274539667649998532621798901197091968746703380530745478742427491407860925489195533477790919750731705698828883394902721512790125586747303877922175566913083190947764220685512406077348729915647389523289556026779274718997155311370043361993914759105858805733537056992737505794119053351595635905751693728805290340516764796099334032387039137188103681369283372429249259108690764877344958276810229113974252533466472517074904292768037200179807915378394372448593810803252949354899504801276145863952221630528609051930409739696757071661120328887806576419282753974116311744570216485299727006037378087609476199773107083509877154414821010471621110306694991590510921917998730913195136025633522707521667490469830041539250111529319665706665688904631161655339082847776900775039320595055134022410372580543572307467042872740313144004242157704770470092394336153109776080192900990541663428667549742272701347472611528835396776569679394798873499474188790494733998681881665834224013633104267868154415667098197605326197465725746731780947038419270098952945451782152499069394761700656199749050284710050034703135363299356837375735044883518914014505171995245569024432717623514690683270260671632106717793821823478725415387434436099162853700138573379415421558227764326084849345065708874302290652541473886995426220798643841275566148503520305111681804958075849759627426678971661852275879654654328889552251733377654193216218568752644372915698652772048601135025362223436132706639385568020408139756170410421775260710282525002830097469065946138134333672891634346992460355268972774016017674116379579704546512581751722131194148895998352026467470067840675560809205716317026333379288343449039372825047006834973011544611394252807250247224948228109768566565373824983427114929342543975542739514614085982189411591554329027491780821049229088368310367880220335305018528743530161306790465608409802714735865759748263612549007731971083157627072094718916445309726038742173110583502611875393935468314859338263433286029794109758510044227584433417256003785247162204192523863884809317965045712325019056057900639373676679224198188188713940687292899860815145776351712584470371184152479685683319136817538845807052051261641646292631164379903676430901329571420440410433222876215772944586829677260729606964340099072282203634555190021610216053445206895021455970467631776358888451402008667723140973106184248479904370129498951806803175720290255566621752145379344725473975843167715476490566244025703653994830583645766365644339947260847535676680854399838203758813798596059454515766303279020412445725059343692146138450433743872772294682986241125432006977477961295573474078765330352860351568652202547357170767837875396012193926996374722231344445040473512232053529496057202580882039111930168769036334902957797404102181530714538267160291184079226124837271715543942939097255714880036458553554089543028266916060693017339154150815525583656783231896266532938285507061185443073539294794297178044526588427219116137509773604248617559370205777287014111649164295663658280405884755411321099545578610375687979673005588492376747404509875128477599767462556355103962307461985666476477936009549966318311725484763419892542898873377150434803271312033378450167335981130976225720300759404109726159690239223836609951489651813380262575066260533334688439433200074938736290040023144956519412004798163659380959367628567241561562099810681060035281049042135357354656263010014104344709247514929222948414783813215167785818612915270360117237455665359906397552893090494338587539081624502049845640362640259433747395580503925246382477754943996947590422417881487440535386060110654406035369183790332300901547197822613291184264956326977339612352021110566157183041648683311836987388296593632788978076404642534350497833813162172714348359080485258888369007339585445022607879868092773905187717322605641756179211541763814371908043218041377626748510979833023820361521924869880664357078843777713051160292152933707965919810236727435167806595774938220087348846906685182377275406174081635928827817839727639405372683998720431009033258464797579663511821915922124887663296276666660308763230653604270859333151804696295981579747488377181000708017221797705612538609355502863933861950606589601696596530700988149166981800356760428588459290316434724992656742218831232546902509439127095483225776003446833846870020607704219761209535780669186575198859089878868681735791055451933431379382061784337046296328331704805324201088552029192883014011108870546199550287834249981071229231121488616516167006544373767794027430251819319580551943439447859871445072539145009227474197098471137025629594241205615263226936319655017421551390716190406861725658361464013913649041345028707519286418138027755760810992861100788954194295864561227311385020265481398173919347349528372529407810047568174322813317104629525783298291055274795105147940044252689247614694479424125556255988468764876704817457618270226926682169985676298600951228892765055297995279171386733028292263513350545265484289674472977569673759101176210917100693264084594581783398938649226241119424286465869582998235092798817957529317873656867987593819036888631892000495003169898265139397372493815182737410588724673269835679371686728917300954710265727395629505943041797231856992475210454916312557803574275694924241623684907217474274463651453747458113294761716220230818144641168242381354490926420963661230837693115082489673502416423721153616293565298379857150290912496080858598117733359790971037960469412807230004250981808011512203878355109131020014956603357468819179355300742419778957562715056483792087498443835701193990853220882976279721848826073060020927861214132939683972825183985505456158076791868552310712925689901152774982388239627520635137127054766961060311535595542160900438002835218878191941148242041521141777494870775749402072668960738427157022749304209870431025564573836568166155466115736283549726765006323879736459371649598504323121968955238211024301458240134470250597103166715402866384610727915053939604356534924910655610252444060793319851443481017272905215783856454351965362170959374085507433785907733049717685203544635370262584002933773551712710086827274579992885985243842116300332144174136538772805227804818010488287302314730220972603460362675824230463292780735257119229659490923047233224363710780857808347099741897272293575326427549400002035678993641055970091750207851923061524821402454399927862980854535206292758749568238806175989059592627946261198597104958395139781791781444045245485998339133082398365769228797402623725129204214046563083431351551661395628792767508326206394362901569536067096292441172351963909618063947287385269816679237521481316656106346766467142397428624298811772551388344571505494242850946625195919165439464374226423457827958254989345130674713637946201868540909894003399426376885743921972957256155287913432612124048456290318783791721742376024629985527523953275421544729992359154211194093659791815550465954881706747684853739114288155711645502053859994495508433176626911123382828926954588925141829411135886648212749285449412144751586780411950611243716180754272629092233739546386028850949850315227843743077612914008692453477781479361340072189029330472645064151339138677162227409633020777643473644411540318877300073163859569792709243152883301943115867296344361095187636539878040430922647139851472724224983209700095049397804924145412261230634019568627696591049010647017533380014952329887990544119834468003696272252316861085831320214881476148799751808656801077288943831834097694728168693786746643934385160493950971650484917588113562413259258677156170049621023670869331489917711660938799273541537707825003845938524577921093008145740175068393826801111297679677145870920112137775495556702321884934462571172172334178961074478844858395077327908374449336164013118602524174648446345774494989787976010630610211868572109245320347163500300459322260215609873714290412275259552135267138947173039720770706111953070352943736743111950560746653983262319992150830864215865513928399347436152432594887912057172874820547802772651098701651568824704202849570099264276932553550572315064083706766173904737421054052810249311929242647498481051929735404531546391462325330551387944721177288892959562536094592249986352385024115923246378917283686645676227106978066620365320420337362827631852459616083470528700309920328940428912130651670319975286948279866624757316502667524197419481497561953146652308266727837237179395582988496873171397348946592041061141748682630580186263220591127168469393616387861538335882818934338057711506336613381252403464643635188717959876321709617404760533700373584263124754339758082104385012141733196035477676332600333565344459734551829276169807734530900864477589663541069292415322695502505736859939810231621398748858844509307168724017279689065339225559737025005125574525239813329459751366260814846723341525687626529370165585652464234403009274827109119338193491707308686541659202567660192515284878154534455512781487687365454650360127696462833678780562631400753332454136784119952526291835150170893130614015089450096670976160819682363102913520584533333301416381832718344614336624471012804674245693037256017778403311160557287132408318373164577631681478768455303485913315395450232384837007382918438000590155102661706576405687596198707333169288160081670771410239679973273884743727592336905932539534987021520513227292354783442337209517029243789295652120300391944812116930260872224527648631430661797387554704426066096351219934504750145505704286004699518990628727944098124826058878630709689762793051059137773919792567439317554725052615520990135920157373858495993704673905836307307135694301155323508304847500411238184016078463683079605476051697114021028823488159058149081400682449076655818064771142432855542390478593977713505339052862134606240415905680648492436716486961400208882895838604755323418435892244045752236682285475826534388189113027361277674780598782134281072323849992464975470992954561722001928026099877425213175934250339964868549898925090642382063161378221749729290370173199354076906298661883312050143895678818903173374731558096982713208135918331059333943309753996309250032192226011577420116787289292769737804490382837174213639813982728587168194287358307411441202823862284326237468612706855197425262515182832677911775932119261591641991796708418039309581916709917069121097766009919639339707880519375226802838080099863659201782159646294728245159970190409568591960465958975257092987873719833433733901527460156833345813272127667047044308327744148597139460168135134866104335230238727761737982012558073416735459195035267679082452556005966378996908760046262984823549499748177384360278924216290346499135732838912256546142336365900140669130289190288481402500524197336614091973815702356006707619597384675720074885233419540867554981897044494380549680061144462338668170550562515301973003353455162297051782851015829871278586158274560863063085500912361885087930326628857050294693552668007833740687541919637245984633617597671211814085591225321076843579632612162149688919874231713412094223058486783790019598726179771757322834040486361337850941666938011987704354838377993923002622895153025849579983069775168104162251254319337481640275844464247718249649114825754123543450019780695471530652349821711517773682221144507803990450071787188678995948967652427825366829487555867765670953816979591694686366987538444623443151517703150816040367713486873358821945300947334929669586233800375283678946490319596662129914181647030381820914207515994864640448270287496102819704287980443983005128658141943095124692065576150142791969256936073390936013649633655563937389954892437098670183803123544018062050713673469202123063387150669959884880215731536043807445026622703593539255669736217721891588957565512139459716103367657592463989291956077159946947050673694254430724585855319767182354211228105334287755840141998772900101177334248322869698468487228291947250189309435283423302432615442407125209022671668140728390018004517849222584866227599792867298847956132130592406219425553889044120933888638327534472799419256463722845666514103355347799912113046612647602638759042166958118026966289512690992986833366290461734255809693789916901408335618700519881386772909900357834831650267698617289636290610524891365641097558948242584547560663133663908747877656141292645920660976144804990257189739489050726952129965464738439916639267751649121686386724754280216367124601324481477669590057012104944358402104401876203675201250630125280815877367860156693174930207661939808090487668406933130136962065081924149185554268101966049671339769702052977647661578328295094042403334079869772652599467358230970491454053368541539164438633976467218950497769404825394552718724898151020911895448188151352318354594238182694879564740975637018793112801985427575876541085268603583614942473418710379154799896345795674472742607972519292299614382663828745268715171326231845270196340158018730463852993784814451459049424747006461810547857390865126982223095584899843967839991346440058993601827112340558232805705601730555838286564664030478485055154823009884913810331312944854263062670022928711079102918251320042567929592402196925565697804013997161114060112302203319829827775889346337010411626525755965088340808261865201065176489608346396777986471241109502321194359440583983634983083614882686432228799213539861697968496054738726457923272808601356749620849562923602984021265415941625491369434577877433400689787766267460579042759966280371243398477479029547877174964366510137781908908565327637998170438490495023490355221337775860073748116245177875188580042616154307500881558545633329796929900835664796514933548690533529316160611153421618789892287225760449231778397659896078040729059684485936813155389843786486299830183498118418518034725888436120099688061069963866935846064224491594747119488637991805826266506511642398217913539734198950790697542484725966032383771912251328178346114959479318928134390760762703646916278187852233828937486159982136662839089471022668297010579582803168120525614026109543279919936777117317486068933837609218739107167566639142067031698957131185664292145672942229517232814823240818592268497594178421965497058412588787464049274676273041158965353523425232454388608427542848406677111701527854674719250754695624478796973486155686492764365629116462441869096821732508666905603104887887872628428676410365382850629154633326547559344831667263982065316281367302345458441926418322539682337803868557691793899444055958685937492738714951927619639823978368778156505767253098166943699949549884313787840861007043193225382197785815326892497110052931468289650650972978737401788931470081894988600951732960633352431235069847409614710903074290370904567956989984902252567704764104967435552513599985917298388527258648591015104041156803703324012551796827404172105304572363619969387004050008251652918855922189418354561344628866418865326616838000746076751518494652067212177259324287600484019676860917094644485750624039369461498888442973134778837140747807318104276814016871723509611051859891504225145129186367141801487258967700348313614773731228118706704686169600117620153050321263359059130303508185730254901730442839004186193553749069982093178974301617429384520851041155519229944717553776360000383755993811950834632251900730398182052488706218619551483334280109461686444104654400509410432682422785857815294424471528688293048956902380227256806563765007373976914497101354346490351704703615813267237603873952924213067802964548772674123321003220554759401611406795507503814097258710166190742370342827212569362328754158881925081449813936319848195903243990699383085501779614782675798795950399371514694699723408558408666484346330219512210722266387729893477803269610435160259427298759842698895024071075065921291328332270419041690089553464756742966614294479502883229838081124921712676662016795542952806595696937716391306942356257976899724196672595471443207634234758982647352722104784526520330442356231132453453142317767813466428997190633850782414711154282829998895167514499158953364610237144154231955557043437301607059565324330616577436629964561329202403178066549235334816163553574920075321806511726972773107356497211556536498219287652682739272559035640146877232763573228579160971510355864145341872800894369139738858755844215554522750385252670159468086727105253439053509183307915848638096669055534957749327627244788929068943439998802038523427528641620620671911879964904889143432878809133510166565590551945977647341935382927351801685086935057173578610405740977066275635125722513946983785927782160992801858606068451503640057248856580532588398547498360461292030901849311196536225494946702616358184060255971105432747129191276787397997721542283487551287141648694368101481183691266957646760226321409475932695003582727348265224123452244709449388296387444787379044670985609503125964982334684362176339628527482440952863391126672543227319852176179841399237847268384270537176770988875381774895603783641044225617222135676912054638395956596773739599009047621832631065915602112963148731558173378710881619644290388717649107212505179636430235581594546704102184561013376141413491406568670054783260766920847778145549295493595935786141431024994688440042373715834565528837979598119994605750568845951509729704755161795459381937766484656853676861364152469133256366721231079046200991980110217826141890024244602024328773054159513141094408646893119169025181145720774628948160099447331380367897651077656156169952032644508562287086626622561990435380486350829957659987968362487127651665560860377261392865479557440006504250939955093253405100741265680421238139727271234721010544607443638349140683847208254210292330625377121420218807130365083493618162989930167652345959238656150978610758959960664428427246381957941886040668606729657094949022987520435036546670332430632975585437110236273446918840411929095377153613215683923102666547052592018779629144476859601147919606504834892698748002717138432666875049337561770661085544374295639413248733932036587758468320681587574715042104057170099659913074574119517202986953036310794490614121143940633725722278724103196706185243400310572189846389399212659441086302412174512364169962461335765698571554899255989917897671996054507767997932584448726145837049275353043287421819102187883842060811857695258582164581344382176125519167158068083430228474100816322487602993204492262451520821687934139831921012641576005312817075007063570414905865581613265877744158872026311844233770279638632999394359150892989699963051690734863040327650978610212661880905141996764313410083363026795146419879254876242537165763275838167688430616840586258946020118830691962751891980107234100215956344776592890618599702925912708372998692686634048243611024390176934853543456640785447601758933550197306274004388644008157663408165656014214060596972660411594967050131725129241155511009004062845383359766707154668131350396329801939188423471011292508737243400963006074476163341725146839902567866494902532342643778092795497271107760337074299452817872532511317507785066107072615149171576435732870389038771850155822843150289309862635605839399570339236124471991159250227420186754017433677012268660344777981458293730619183060472424671126309523345272946532037528309455720889917358187001125747865835717735663380247281685093021178847271797324232422572884041667879751484025524174357281650978437596513858974691343149674214023423287552662400132484210360041082679825017767154891673734958047360280964851008155612709883182002554586490409362457396586102007108775928445156641337945456706055919204591118553234566944611608230590738022359713619804966027669775561547884062080329852560841668885778557764493649782336037482065330297796596289582870313215010305530060425347617507142218463706779075257850938141200453950136601062039840651238143098601513178566006166103475744409831165085851342759894070730937491272857680671106107966286483884714683910607386754432780849306175576774225081347287310820174197082710227209181799826489036930918313763479533743609432469820527704892868842749956822393999281144044290170802997122925388191285467360547100890279765808500356254187342685732474551033766431309278644139515976315960757686989798431173399267877022192584708202943457531177002706957259993412439207403323714428619344313155393654152341473371165318193479361301734748053339046246078696320652859745591261618709454764985077865441902113615921749963811129159462181048687374864579287756779010111277524097581458714836512038071443795614202853253810043032569334544674442176093900135668904786771592977164242614772647241472422222574419340422538557404850743828545505172901728806773323293516087108254886670665700390489276973752954571236255092510936013223301245863314280607749388936603794553461666568075090034121456704470145635460893923647163742491584103437492217235087994008975892508466353130415413095777903799359640008953625333014078660783326910086014768397943535348333787127083551589264053199564268476447560801810241231466552943949827247719077076818325855537380487311942284342493429373599437080819126436914084440226280010582739897814012801544608298260008753211851430369877412359412122511149682692596374544492776001799796903099877189782530314505658847957078739659585895445151142327314739806378474302385823611216149013774279063821395007046542241227904925548150000225663765801644822994466834023824460143356479768794885040642974186953730310554000984422850576091552681891027512736722109432830238588903518545197531179194533495829010497166594509925795649926381386194879494910241646271988072478087500954526971208931465552217434920348522200633424605426307120739521428889374793991680770386554616775967817284179876360340527123885278115734607731804612273569672142392073040915781221065353956670122410655495862356384739601101746559355303799371906504368882002053077739645499240085057976368962174219720600418108425416809461624730492828738521931197260122402499426163593415245404367218000285804995134998180829834985561221116612847504247129419218809019670658199218658514430959669911863418421674377263398878582013791635613974983253673364341874170706731394974721103972692695138457866212416163440595186877497541504032172753796985396767165658301373439560634473937591750810230353498929547560060975330956375379851740915814868898171409811965223109237106208230143978559871696194424857545164874975583617636501431898232137471669769046906442716466911158729203901638770149950123382995467696614131420049338576224452717871829076823566271316664924074743184815904436615466796231435809145443663918349785307983640450482731398313160151510873756273298668471689285726386479088959374852820126866100907236469665504493241864368616980899956585880797052038282271727858625653738706723967093470334565698598038597465481369786029344376021449230293446104925105844692101191830759683733208792840925931435490127546274448587867395293344151199563205054949181895382802319819877171629297241375474913205884218725004403240172927002309853372719453212650548790089107260147055503696840670234367919546022329544828765482776033025889175328665524823506729342263049730041814633052039342945993014969371818365505317932000818329446576495584821088654291397392265909206601853512591362256836663265761409635693517720048314028451752486116975219760871023039281599213819685020176418327399929428278778100588749308455520514827071341709538765137402776744115360398781636951723758632929095341765548823447961374644174901603623250409802553882654515124190403705851307042871486132505187619621176003834913387243179024674034194783272745725099304204300661730674545264047692323988562353746981898051832044669425220573931736247934992896970848856128155181905322915685500585733719347658102555468592678713047049996454977724967365566154918369744328673006998365535010750263661147775973111444862572602127630247202901589700489204555772180323959560198076732969653419439079506250485092454993786636816305033427724992445804821374741478928531823475976454146197694074781972178928242214382135465925707076252079633052003700761001047204653768812341397322440558402624679098978382385879847529629379636275915408794168860989375375625076496825867522967301733851496886314964279828545731606977122714471069995477611096424300618764846357172077530229404578557473307087086481852393602674686332675934090064676985689451452341490817810337654452765124198870297491858412337048450730536947167193605811696035584241961936888108080907501279649780336326642943991400228439688603054015913054059338169121602986133625974674525404282643866210492407075620117640097913844020965778721780547771768063580055754491237283582208939204056044880695755858304384709111234475673068173430412578931034809252301219453659778623877836447247220723211457897362461628291904908787948762553584813306637964528725906978867647259180004293524802111741263418278784956920791222885087744262757078307947969556627583738671225498366283013036941681503434878467816965453500600642198967928341100761041367218719917832023433956214939641330010912440545079619703444131993048302458480546744779981422821914983052768067538048698978948766857880998792458633731207813518246704909575403410897182739033871529476316873953075288713226740012038703346442547878845213111958494494720673404807674590501588493699450231682990290240030080467273501631926960070823561541922134686939996549568319522885951259820159976054817821563792659624402252759969270113501925164540666583222144450102443400592113273713632253092876899456262368678455070780869326387072539993594673553623891491278375935755013421904579229012708578170146827736356859522071405107153078472098981100345914487343112378230696329518436259493776996761902118524188702031790122987978951298910192520098425218493927739651430587265814498121852306408653986691257099227595748649541926499296978260900181479211406326832744783176929464043490313890780410210463300351241993160908065970721396409088672425666886739099025396352264664001465562276807015827205759906937160454094659293571864848654168111455728163167725586556664566139636892212080476882256089480937417878425717279647012553547187539595478002697800809219976855911467228549688365125328177086942785775631006394972237585468034059558932288914515607622318668669996914211191377452115095687670448614166024174200365179834872035864672461354009093298334858718201063916957986032541781929522486666811424000123924268833100424378858427199013401185073135641048088826489180041580822231106913761594078639326960549962595672851686327836133733667705651478671439692756998915549396912063553159818634328828476156113442906035898480711073672243486134431761679672814624097813793512824715962238405598289262880410959191132654964885854136301620209415849583076751525190817217278265151078864134825365689764325967523006537758598262725536782346750471068313392682357101406713105445540748813183949595422459475982499559645103996407158131276122715854060646183622163308631237820610742948058888914386795284747262003902456465624063184285081953980409698716656953770705259060888383880094297459601868150065406978959629668227680138502453724495221490235154665472444846164385257833110293738431705929717776287944074794945607670444366428181691440367314761455437831716381749378635753672549183764768123593570294722413058227730815181952880570045675205986973540085606515087881844624631968597482963205454998463859370493679001515148905659752471523434114602953958727672365064318045624113125742482050335145975585280707202177418659733301441230692408882553122166634576728993287055748932379702664592749476139561770545692246176573285462906122622264974134902949022132448684749535323812299596789987239382431684036561430739942780480368767745367307164682042837503907154496933133561533998722343810824649015293847530975328601574364999377882254532928616920551991797326190523153561434424362574716474633231408453232391040385836282365472544284347021103270176498608581186056186554422855768544614572301977245490843286775795308242283768345507927032672583005831688765810650268681651061205523405302116623189816705082713753655483245011360503993285284522808011288213149126983721314526796691059169140925998754825794159557004233188102403273138892279238884951793341572171531928719473412550156720417443377041705131629587748883408851740653952571674122163134586632811933850245078274305149119023069304722290752675125121259374073318491888068219401203491926992479563917535460564611088939205980735201278470104716314475075335085748621125537335702570513991637094089679360302469049482882042982842348362151246926620673358390749487135046138545504783218950239507195095229701926534116256943559849911054536441790119569416522115565299966019677337057784449812909965101505245416567141464689195269902649461625443575498429374598174561625746345378742639893019283523078803178930916214477781093194224924171518363538265203021408849887065219714578456416280572901471283428869023057704233012111411014264265166819117005847472039122719720054679633886812102844783978935999596682539213281378934792354394292269867452690535006615335714754762027225739659693133161016630785257998700881127899771398013139616080210323658580305342616288107474880876526260150398423872465985816319837700192424420968472836037265783003254244074876150336747637756024322170275890518099027864684189397255145354800080029684643731927597189056076715716103009844736545338944996909762998645804302594520545890086239190552949236712535993163420018043718756598672046708617105174691578083139974929227642723020786643589311425066888718492412428405281768454228937342301714929720990467044961369266649113164926923017164566293832736934138411405868603422434177587384964316296191697194877962206050104792599242903569765303374966230440146363351597324802769020225595291293292451564687651540669857915364166914064877965972405705159205328704559941538137382981549900745847377018680867626135407069153982173322823748670139244597644058980162380071992705328697796868422727788386240239120707302643228503616877822668195697102468185314951062511905784837088507481618380199330703510192280859825619906108662203171319402003129558438175256543684087314856038132652091816518300925953416345216272217296205527151581844316067716628484630638312844871552366453033301042624580608149398707996071598293713478235058360871671996883343666316863985594602968804511177891738942935449281357805357798534670238430824325101695486795600502425096833000539204366928953578691240480034087358336525560499355337401236085477752606283546294066308773396099050903617900459645741853535323536091405905581851717603688440881306217436168146034885558713027744968283592560697235973545439735840531477936502416756107136917304204349336445104214840734402045238063787537196238069991950128509272138276141988364038299878929592335195731716578554971761118918659863598210723567865471355846449835614852767565691735117175979952878121995875193221918104361024271879619953536340668157084851210311053774400317588839179678355050554813829180865241942220899257037772640490765652621988197952516263791193879737679091392813649293085725527492062944318903741506483447196987126533006769480860624962486177403283094237631291429298666841023314970382950733118038682373468202572010879865249757760970129580106567249608236156579676669829725188693334021187457884998047463501656839811506013733239410237228213120629153637385091279663913795954948757339728471297234645558497679973653858390672034753604764084042927192652084638965855705015784849429734231834520965117686668490435638366654987504085846237489024389899487586413100681495499161883372592028806356532935252650394694288149384662825294013682395964321567142149245740901367440449355031794142416386896148549801282511763727702365470091444125857965039318837018970874562176522313807727125148992759742236800028311626376178162104460791497566858178076585578771393081323838019251629059976952368685863484691313450984206836332211928616095467058718106648195462844695802123258087870597213827710333606272694234350077940285452435034829914780773111536975902124093680812535974716434929899093284601263342399486658001980116933533683973239196203519529888123640570474939896846436554667173291914880546727109571013414365666803172495400502025061940682804298992121293152746527427789205985962369995969994445819861191654362421338298702712784642553624300124175654789730345732067997440162327274421537129376732137211156091188324867543565164114137831966217551229382594238851886433109831615354142847938858093178675901562228728602772721328582497689531066752079157133241169354331598815024739079032466060295431666615575850095604185236872304255025865926710628997423909858491814190292295988350796783477043313060368455493659027403304087456849272595929985009728261678844608871300713067045464129759746400433570877092101148690458279361423067910851058614298840716750532383355753358158357926872128149283606198723953366455616281343154315809066834779489191813773568578290689185345003785779453980230542036113896095006096648232812587814824336608435679910652435870735202807315722836175174861794978027989540153896651939835967218029067816804685226877991346390901060043693437108858263627853307142328089163428065234260300551497214799573944546296362366291588648355714924085728497158505813481474209776600361690883309564585733759833054094193354895533191608260086621960310672661481658157617140412291290049669979414446179289216894808078852718190115144736903241083400332311996086601046462886918356861904571658395358724003896318979212110641736412063838184029355213952232773964146236182637232026330762168674321218397465815643399873384657167787768487799888207091500409460483870913093914008628924331530253791020211753738209524444953486132115115816582795414894748061276576907945546146657038844557674096248691393568168216223845018704541745949430058430200303980408816491346887888259750650687617351965168959372823305490449183465810488496401104911188405194880843580724133886814481483840041839702273174681098977404404057981615705771614983578782617667030625836280152180677082647354347094659963334123391283127278824012536022298139923697230205716459692321146284993993043273382820821057161958538538220456185518500612236776435793446833032122336337136267643760422074713601107959217280085488023366671476851093388055913771557421227392788127007668787548550313669778913957456971447313066227897491638434741752873037027969686680361299550713546135738704757688347158324250585940810503806229945164517122938684166078519234985928460616021672437989349396378829643206994933103371561217166676733386330243519049598997533209559680317369878482633024174708657834716168992814935376580914131300994784386085838916868481872875435410489554703991692650863849397055163584215956515326325521029452962506954755525435807223569731400990372551495204884383509551869904639840016684464041122372237640666856170310132804730086873831787283725927299675364031623315427045624906753202920496381949768398753296358666926593854524351487852889834095613076279831563308321170203193513499423990041536470226508346507537145323601971721596335334645728918835161068629233196439151964455284649522833819559390312558629398482077268678572076495166518437361445741925142830210889797302742554140409813630479238706790373653852836686342458562832657590274911996572976896006813322965712938683386739720141255420566163947629944507298052389644291787215784883145557144150162768350461865563586216833338042896023143794693607030226560685817889508996582613875228263416066877932261314329459194993693156092447313938668656050912076944911170395494032974720334822387509593378650555224541257603101252190005787877173101769416459464523175436422887948483030367705911170940138178443445464495439131097022262877728664473631167342396596315146564821769173603755646681676167769559241823371406682986955964906849608222655317518300829214947605063399517715482183959568079738692331847051693463612560816018811645776185557620982753988109392216414383992118927078666931478359923584755436474254018114933032102154099773729542704029724436329523055506433979021640448099230995276628967984897541890246926514380630468516754789704713307743470824539660548990843552146824328111937912603014157317638687447282879454873499310216869536762635209895372556827188543677316080026816778923317400563728743931804675765545104054243584573044876537394762458392059036353225711093849626464956345832195457589642409986029099394589773501807339465847670849279036839639732053491743913334716471938988690995565136068038453825199992435714716978701992191948463449662289359255938192554466340047037642291273463579966230123999330443242301458251908304760648065647080943091765926960023327764253347453392089423808628858941268155760303750845458018220291005531702610264486903144950571188927909615561315825239384124390203820206356567608492738776395609884872034569755568143536595947841098240205721276268980482338014989147206398550595671996819560869990945995588540933689286451802877449619680888945246357124255807451204171302239970103801429503641552341864577879604540410875129309726784612407675461154197865449658214550268543737750612353249273169976930297602436171331883474372377607510405102796411251771711598409641478339415464076435019116948009473472926380862604224905915504797488324004984899705029842481568332277691145013619436339465101457644904270060320429986865965286617748664323892963712217940892680897638900508291432770782866414994541691301658797068524662836753882527665463530716068724340383393786853107675275327303140440659176494720104652352151982391724755108351331923032100307710544214272742490111404555911790303834646915961944421606928937808718834857163906664016929658260492454964603953687770147569561109252900278382431535076513446340228280984805967276293975021027438212272489961254262083527419353995513997878253735548736138542470615612008156762167909822876675140493684304872561393194470097872402451621793320519064776333300428442125370179597835707858471852497197201417494434289852594097180392784283647013729680436042474801941012256542656216275895137633691156977507361229497087900777422181294121502614147730701287658555573625567538722593165429926020568794100717288360570705903783212483150420066175376454340161477809437419235599167517915297248155555696897055137810204888617921970929124061014313828468348927792219663241968739482492575562965326019567320037209841067363485471554526951920694190962064568234442810328783029504215642799146778583082524429226131958779424614995774617884224507704451329390108455095135324252493984795717942260751865012455177625689115636814804554238686343789368058176415975718215061292534158081582378406959470148546097132907501760533292513895727988033277603491795167803122476609892299635596584401078306553669323623867844807498671778201865894830641154384334117283312485009598395459063260593391997032519530467269334555908259748634647443803278744323381594282198122787527941319586496393245169736557404135850497432012824897316199342108066838841965249700109094718176858234849425328552656275606772100544639060114077982391757254707716669483764009426760485966429031808794806013293749814387480106969072116527795692920849331292646875106771590517174906660053138381456698074734677623169348331799016682340078993419760035350590266111330781288161829568678720414629511056208197927813143282903026488492918442884333999575916701308112978476509094245368973947374726382114326410741022553895781818523417860423417845204993591208807034905806256229441156584156977674436575208318438341473825799490897409380276010743918101549073155972810608149972447352242903806564722788196267055386360102809725864419015983017887559757373789930047766066044235860847331466538153624656400965091965880184268554861138439191821555627515297895997914703088517130911484539167861686297723234273088953453541310716663773960397483980928262191105120411867076631926887716113106618713247773652329179531667068852164983180839522448814082786291443047073932294397251510824784415884400549239260964120747140383101868328228263485901021507477674355780507060117447713136722010163802172527091249806560069362399828479234900143147333519343204078567959594170508192542219189255410994440766943299552728350345108238265974187614696079840603440069098229151117395881502511218619229349152824972332727655495851949747723794084957632016525167403595269351972165990315278070060131255193204778673536197456320380758185680906140206979549140029195751536250295116947715584909145911002539607320188553368430628143638544749406801275669747546084982510064039301681036397526748145989145438920716145245999206442813548731360141721241099020456627844225154827265199054661882983669839887701877916135944185796137780383355241018118974510580651002209058721202189959971777933443296300869380836541073875863658002098652048248651780401141819395391128047446814338311197885322813947181337655235918224514359521410695689760132276702897165720934798541389324385348926164441944558659176186046302566438994450492946561028637002187628693346384761986255596722377134924780239873905633082775058228186980640393724446700424456698879790258804611655603856497362993897313282126772974920077956971524947371832017128712179906911005409932674296555408950596596756297301257952291656336112823396533529440705344169957491215822001118592355615593345416660701847397099365028013009657646681133170651341867558374086322444722005453892811467695635253892984734669085760200871101472494912918532820080512418266728943434010931793313209005823286690315612814037610450515810040515472709377806660355012289418080530614561977510087461825405126773038203176459237026386300356149244180817859250441057111812018116079572504921727541209299421062986758977102851402265323032023005893152209158128092243066146210711839375843572282296080565355112725993311046413471992200316038735617497352992392275467487547355163346189259618781985742101700853004945714249489277114467680001170826044086881752539905327543281221891372920106168918621723420390113415235370584301334972550606271046221483511683269118737037940447189731926682554426105266025034001091706249496459091828966530461492300972555307967060837896634716110187785544214624220284134100180037436043219153489148038006741940142238897068729686078529520754313809469388464875236172750238467606319401730201212731011396018683960607950288141549126428898272725023896854159037039869925522471604247027492082461755198053296410985894393446933611237471710591672452695933756191443440058121300592646082485172079171245144689217564897933013520544025464185378674362899625737861590756920652324180274459357768063352787847584823560867146369728424975681834946768133694541522315885522565533829007412033195380528271180113497487292699649962536587526018156061488807372363407270308991200256507928555182626182685682603214885034044358377019578072021878723162257502527772344312022726939648951994745650529651432760198442873087717117945056009678606234753878432228663996294562578628433478085662828669144358915232757833418882037919943334849858354945854374765726828396481083979077299530670380339710394211560879623940851063532823703460351261407274091444728186567191279462704051380570670132654845779906063580793834800649211887478762509027648293225598137588855424201351276124280437081831522297488847945167322731144287277161720532070240776502535797412630528231797465774491226304825615660601637681560054065988883873333078651393706202428108940906082052432875709149269044494703031195942232522730036435439677464091912750107777206989614088834332671781434221472468171941848117056021162996049123469587320732275329718902829722126636657579258265035086185941017827151498640087535013936016231737107908865911061105400847723333593951499056916760414509972863396781120337460049100059331489461236247258983914937241051795376138385719167661553062537905966966327586666687233952284353261046991085037591846227173069145872987629879195631254202860761514367717518115384122090119732067063156458165584096771756909742980741068079122114894424757035953473978741046299136542019845626323228591460435433738407532495761996282971517149261766588936099625209199261879270072357375260741767338659341122663680639909942497387041350709310662637217839041490576834809421840079176272073350405440195167025713610431982115324216842391234441826158979241105154889888294609554445288406736270603586003841216787107389082035411283501192950777006526485692471725130896442532514181700908010376351644687158006236457782546791373991307188259604374970964027139191649163123685722332419629357200504956937022438442397614666945497091715395007209193124025209377388570729438492845423451687284910517059588368759824658794596615841438861622100495509841292014202892968307932148118485402987776306421928294282765282748106465395821494439759823940259650151085202170386326056159754022006535202997725098008749017862736108394619378796162907415731890938565596295671651953955909388557505873855924726075572269609987717724604345368548503454738162972798408872308146950123715565739962696798580449659292649470860396068426793258619372857430531021156843039916751771795493077185505775248914729527969163565570833000777672300853471615353073645788867255282716446135669141379500720246261159707909673570852645564052318924277480192911905253882621865454640942307516816414250467631000843955222936393456717530000862045592825434530568129576972481738665004869957551581340119160361916592124739674350785015307457890587717430342833951074719640782253612201946954562370812100699242441333767319713432278547527264967708353561675880013363613148494296143239948605748825333477771518259066446780913131745706754917042808738777634657833404821428256587286049165664145255899730872650999573642381843800886288756335544123347869788763796239619601713779260029353543366944799614365581238721373704847305582887080535736362927042948051808558723325345852668263314894755262361884347740694879130414516319621797734892705216037149240847150977860663789885221605157086571142930126248530403360572729364010261341815688896335527495246217068177109317170374062383868822487991802385900169952476454379506530198818705649842372538060022396259815265431050655708594164526808392999424523648941019688158425233394201461124679795719056330474680665493864767333644972132821054275492521957413751948529141000863527095683684857364538434563504295765476038014707941914892974497212870873005612298984854196875766444847959548874156214507880157133700678549036048729290146725227410366447061474793499986717659903106733606940970690988679199404597041287117798643311949436666981927668618172199728361889153988176721007246104072591918706279069796324852246343704318065280640959063913626342384179862965265297021998841266241694189002431991751624320964283465296861670541225006433837225720888391954380569829687883940066066725353346306615120244224601003906291867339677607906465737756694420616796566523346994574982060366803307014654322259526885387676787247317827205190005819549836126349838252585571952612392365707968423630163079199181068951553105505549641919775331095627086423418586016939576817185369892181527151683379424292115277837174796683791186539292693846840470683652062300075319917753567873482982247693521577383105808355649222829783996799693244101143139930209266663224390323746272214886909330991756891518047230908004533385964978206567664454253114498952972882649478020564571068068352767014916697899675220336609778112594874898600344884101667370509142302035534847265503327302779085357682752895309751200643212912163664914564033176285229360188405847941984153560042490282970435849861548987636085188576592682326269008204431109126247328828908597439147223356887344654644084048048827421983955437761876512494555032945630369811509683620104951226356820375106738275886390148237641465626126641476967143321198065297973683792310914091547777159616552459837134159917367523239642767376166190874687125120311098275601102196088485769940988766094662615672771349268371881823451876575126374577916302687660384760327898652233395871996156182368281140761187033918709249158304777164381345223549151860314623164826368656127712922307749829597978714710201290339577818544308631370492316504010547499303875512269368510135843802548265095790573677956260039913153775327088373325644191185620945686805281187109113513399349806806258940308938352242112725320568659469481485139260146478232660068842522230652582932577039486352764776460120034146199710187167344083738561166854394402573230960442409074063143252043641217308724435079776278299938354847161100116439692128481756137634510110936312109283892260450149126615131789041660859539209933077433675931004021847564794535471856807805879065492918945240360159896899241664725698106796853210439040929502611719092161960499026046940773052363079943426318801378297283717268519241064860440691875057817276367863146772794662877533041072196377391198980535107993791194838912150780594085671887669038291206366235679135916452502775076578034568354760720464020511637520405901089045145517366905353959554217145085510178350643506567745043399491431147542069014799455957791999268377291865978118650884429020919485898373377032541723589640838999518414582236139598611043178069242303149271767717949056317465060468388942985463791653091518778531668540434949852375698788073101989455656865290785925134660323521918647548403824909501129536317939684620873986130311879098502374856264317978146354092695960083952871775676712510125537083159829717371232366790830030836362305051742875985044493821907092009806646608694124081311434252863384681733517594260795242577862438616224926402441439527505323948963927176688231070452720378354184432825842306302908323528742513238086633608252580095611650318773131597155848992879655241016709948276750441235627014355253319891078670509732952447114204568247072804210416546687364794940292932067445683371488297995197039587376088751640653338795808044559851797908479841429587511621669607858826419195590100936685089378465958876036021427873135546947647002107914669200182218064716066752302914192108222365009083103052394992607436147174947091436994918326709594807818331298327279335640613765942327372630768320092295541126602474630793864768700877961793146027592600699403146829257178527603506612260227768259615264640559998037932718957885870061568932954874066899238864814394485540651416939597154138910483063808658348672334398118536176134183449081558521941556296861167870951295333749840826542113419075919891224615453791982249183461800427000855322034316975046703104488689968754110130530523030071509737881944624824449921963096773234664029896304705975346107138473934036032143154564119746374808440149332107655318134188946695829066189247972831609389860354814688352649877399194668055472547230862587100020892652986611422346057657109790404554496303552176129387664609129100360204596437870160704117149247234825296663298695402549959396906519072524274205988280674329798597942056679475757544251851413808747245357511951749702769105100751357034072716248226892259971877054980105358190638383643045874159232068821204653610919594027813883010944216320853380474087350989321409662849930299884866900298338708940247255114873473656747350107975056246199902130543653778601367193005616477210719666779994726518006746833387610560239790499916250937090756513243964150183729945026556252409479899474011173406681845986755040196312131997238907182578391197685711386327846483065926690185926187654004892750445652553716035029427317690421425124509122346896597885921506986711299144893001803220483923261153641175576807961894223753324757306536178957276412979769191050613027174115394538545557410530272550680456156642539411636838568047228773632708931581783076138839818831378975921867056334476216169067806144765193936030665683763307195163264971705301473819022232226838210489446798087058088147169450176627440208885741802547160004740091074699266250381825637414571070678687032044112051669159727571864170183916673468866757461375244929697533330333656974123925341073901895861331339324475152604789146786625845933774962669866480231075384619424202448342531850030480010762967872370726212352957035192978786025762445457078942909921222602890238261941102139371105738220670741815627300402684035272516811382348134197134936079537811175745371349996718167699136746208609554067256761875810738739593211728241604646164247148333519700869626283302986610437786333348105865072422029071927601365890870553498596750730855231721069795645509602440091900352041334986211547406046214595617230495513657910184959121908382465716400766982474659218837644752451960770438529289487129424211268301100774103147301587196917124705566752137684628237711910931235360226163847209090097864092684770177304773440037190657768468847922240612170919980292675265348472357748581926188543723628278946380759251211190313222975549109606239062769364274851239857228373765868186821005058285852379433207655406860275844916217935949459726012073268542488492058099935542365687714500600454817659676093006841932485683279860997447603245924114917083758845202234666311482739384161976363305030340682317672751442230138334597450454285253295902128657595967390782915001641742443636782365003415251491157521385483517918178587032094462823067428583118478720497902076289843749938221019805739753809070136483715801029232909820525212448785716649468853681404671634004876177914996684767652621944710829725722789075054316852518802898039928104063672294386085292225453895332138744738341838903279868005983792170750094150684049325138062105317318647786090927415276165932179795877806782868114595296238460123524080882908777185620802753530296800995842449347627556094429247669355173044925877420032940774702375845862937371262201001775575206232188699371120342688110925446805030940099129991322927074121304578504021858003436941157361002739439892647330900748952392278479853691601939277693891543696269706604054868491688266327451097885693360660272322030654956841404211896789787946914058871302826012527701015402040887942412805418945983871542275418437280806506463629986470017138989040972760552250697001789678848752634240330519065328701091279323309871745991219474363731140921682499495535246383330678732767071436651888132143203676640847566384164407015418635317355637982725922825209877397476198616871121235942533981905089167098049607303938453203968392993683651228552217239166286923774119176505041863197061135133432644782104268146128662598231300462074159403841971556911116576240817139813335930026092672949051343109256627973377145442630090038572342668568108317540261963869631053757352925230942361500341239073691744042284588341275046838886905198620678229759258295336152560159235171970781567763041301076738943988061915674961188816541973949215519547288617445824558984896652917021542614785068269724521487957791080086646464561185459531569749392997908522683547125730946492290066316093844612595863971319673734116829521735511581823486082542650207781586201819037651337367850261988346545827185948976710184912285772775201932760359828365893333400831535350619907173159080516312743539537076236591202852296079601156717051008108329908757887970312579554654925651720914248826873218256454277703286835379148347852215903812973412838291085555926772525006873949890958582702165579892927498520448765183429890378196114967908991953597330679526345897399530884792138611157690563917988948580994883031730859088923453503536326460447568372177610206883767922945573636883806876240181322782152007474242032943446735790108094635809774131232414665034158253296436216943362856864195495697066215252298885992949958631097272468303425103216931380262184644190937269884399893749526324141426583993406010256484959642752238280684212736442096552804301727704377706825294692805247041898683867649852650608180997769650353594850524873011668230219469926818553712792215310318106821062884342264839198319245919011090929418307755702101447801842736546872944128235571597359179100092350254460103650823367252108017613556362425407176893537003089706481939615610822781952019472125310344840669464383453560019706831387865186955221439519629734349937859798643477425758761273679781912086136783161693440209066592862043516010492674953574670335902623567709525953586680650375615918655382250500567110515939399989386304294334914905287677165533054110737775574984567288821835437458212955086061109158501790708665279611297645318953190905068961256486531028799841592878828161585992325437941402377554432606166560868382835344060563404428832464370735427266844269885921670825857645126524662604989351167093546127441104898423673110417724671832455505252426196478539169510885109369908845841417463532742651404403818879333929514897009856650208358718361328320649475835796956922219148238919678053108035521299226645324462900735330443577402815052786341333718888144823023017447442588201460730469755220184865587739610075699163114006652938712736601639949025049675734134689367218321978988452073065131246586338332532364959878350265041495227035315907720259876712610459558715241170691597346933120048408518331292534391916277414541420703085880452523144634418304091606015923379373000525591391060032663203901233137391545747382734213090744718913899349055659528320403970680492376284533098030219151916307330856721653145958361110961001816993262012698323867367969759044825235637580680291323686589907702921599093755005267079591917968020775505321884679425679720625514278412318715623269814082718586448264329685137480356404080531008569397225102453522076452413583737933979549159413941207471857290983572301539799572165074964980392349880301908077317387329983892230059147632463167300237214463642719472562031377172560346828284696112922447512344078189651159602419124612731248045904492927137567436960206707811838092074163871837542367462775120151408081954751810594280857400462759605510570439509594024441034478216962337730270001488834079378080027955468006160947373568412075278734019025755699187331443768357168125852301282929918863569958939113961475731797039661359320364998556147052441192011686596900755614567132875786940948676217026442731356312853383931594303382102451350156355769203056263326939875518345453919756820184225892662869840537204630511824449845545470703540512316689529632111798598151648592824137035281382905717426138546105070815092944427990204192424743366487588685950975177182693413094164897861540965548122963231405236226339295774249614011802175484702272122444064088124044588002338392889717438220564267576932803867217416598985614220360768894607345742784680600271667161512229411622434402565959516324096576116792510275776931056608121571722963192039872941662344717855752430988844496933960792290607481518399215553996576031723255330484718530396903153592465490161381468286123469973152969145671717198927349910697377752677227849666207126812027238475213073972319572435534719828690098733845951576877875436230543937525081292389273869912559113898128469949434290121869842355455411374012752774092821094531991674122794801237156522421376977698257170034983008944147845971850424015199734180954040928521782715266000383379720479254952074525730813081613163082880977820398794974652398622323535112839058717670176757474882111983980423181119471785993642103185714474430760785430589850751797908961327137049950529520619008035393342077082636306316272233219400485653965686399435083599454259742111844927217214266079943841168892628996552607174850029353813099943047669491522476463808313451756706154334922593532768542752888589796524665895793268332269434195287939403689471968382010011142789954906119855057286332568466950346306604878300104304135168965807688837333025798548746393523517969379042908330189807258870985314559282988242532122615216438480827161321521104331190506080916063562204254133856526768186307577701779806149649079473900339099126063639364740934260041559600464777633021108917878139023698250052083033886381510029808556060504771940766393445029235263261935851602785682799068222924825744356037163693630386641387145841651335972515208448020404151462371751877945950616043357826108468998358428418901227819745841697388291687749710372031991569355866663841103787178874984676849653370793737397926295962093438166901286417512021614611599939897001667237819675812652534476811866791701902661190480199410828043404445243590939075988057798819959201232725445244164763239630627563355411726328656609213702741201028648241112035639096892578200206061816564284481953453814609868180506737203230362266086453676791788241454559197903056266770665728569459850652121216990753773227222712204569838575987635480940230382548087399146206124504507933330504010136669495686915893237654922240553318315410375481220413718845590056979351752471021568335866045651930340883988538593700216743511312168124880817570558275305759642298026643011621582634085963574768247663369228485820044734988113662299888110722378969367062903490300744943978991008604899607922019624722348097839617595001123375491916503670775648970050467711481280443307479732493063956869429678180495330965151435211668732995513194545866625219924789019482439877161588540745618350279648485737068617858412532267626362072333638144539241579135797049659995616365714103586698757410702763232552495029883785587856779625315680464423592694541219376375048608732149357193532639935059714540406666482250615506865936293667455038051757911641988975682754799841187891741864801708902926083207283869343375808575098599348715648510961063506837207570461418275071200907371348498529199611756826462008128553955761574596014290994468266313786618740804269514727205933699633120840379845369883545916675726814496523501310507144029760322849073087870442849939915975757815588002859133168614087484685410795118851819490955341611161231590945753383093856247593900475325904232506811016989126354807740859259797616780528165959231366256758967875374474534802508263565398182089568809672728534110823401826869843894507409032381692084728567425996352343070197809609725912763023773101708751363391331613390707571479278380652678995987925444303105837706297002287330782079722819926741660131276865081207174819428209228572600532952708269065669588140938233451084576063642787840041986371071045055319738165603264721308001632427655868344517935340238772334479699384637494389835391258784138954023929426844294603892042432608811277807772675629158018838117607774902382174571160060342505915798629885493978919794679184207453393768904287591113672759210096443994780316139343627951536257945517049566672357666801734374685048720303118581847694169840546844215677135682225707408043776747040940478143936755194401032159243142980918910648378671428712919445694924429179479380078195148680398165430315442955759889386867460624791616794114111207624348684354020285424295412897249219911614474869805399348176294522271955532092431121558354704938076827947787116840498728081278535061328690021658171497326117191723030374684831034392919316249629895724080526137082935360349535042108648701757427587414134042681738833124125786232807128415055241876129204156022125529307111506215911399931919104392801125947749550195827473678883622624766662653907083861087335272113939804581015786985902535761495315069637579100233112233282547430876351853059907613755717313292413210020598777265030546923534394896182728947954503780780273587570555517774034407755465016830709223029391011582027420682122783015197801546299680658788953764340046023952556581291436442360870156528406140394776955167409565260939658455928225035493122512953570336266006448199555476932408090947115989484923381740440373302625756217523220222878810700248244910588721665464007102862132329155170289658677618670500636263424342174685782299220431544400172257405066071101793917840936128749609276509709821520918572764979634369867334745258241252343884697313259145860704125829146886680778224068848614234572601129826855270961240837884085086366074211919387147305371599362400744802571279690313174297220501739087272920334510400716020645600772859776564838504865279794588570099373849240872209589264101102983492843770807955803312342815533969139188515996845681195545993836358421700842488971486266746617332084155995104410477782928624716223333484363979609086281433831830985227234790577611004379788562448096779401510565610459339351752464445032945795530669837815207489803905257875354697271261996796485932832172028712748063934101979230975579954140347810851338054170915930244651422168411401815533521314070224118082644157062756280141956364082128333823735067700395949492547189561441122839923032536431464486331289872668038415629258173095937234981212277526073660300150538216208594486033405851434541466000937952315115239536948844211457759471257108173180882404384089668373760536711844512722176448468359103186003670007133653870076005100920098354095138931573696198916937491229035545628323878085327774057099721911937118338590198854994150026303012340097826112183674125275921586160060831966321612968570594191968995045010453666702335484953079323418695956506232479042313850810196303164313797783391094557985457784279070081730477841134429141984986843261038174632904369136570845459379301719918797071487767645692257585439935097897044453906280940544879381996045545873679652543106554904526854511710342281553165599978975023230072816063136570199129645765309260653284779150373809877374182099667636261289154149614080161759773985750268827287970208498062138914895449070356527584070946781249990421304668622168005830246614612185169530191464215104955851166277105259520690310054002959398322043839886866635335701652060223161015444079021745447976321465013390109788347118106881130897115245426812133195019976166329718721652730950858159339459794835514434374161799504581891184345895386606592988232403165449435313923129605324389057852394979789787453695895703656704118619274948036376930502540123999517525075789509938717574192103196516361969500327460846260331459088246152215694753089532170156495259764093641059707140208762879051827177980544177189123916925273456391163401592019897279925852834278097586456138161361620102476196545336292815973049567021411896275109293122369516166950087372326755028024615542582248986393210950018198253463619145024906028191170765236292440426441080292333575301216607175660216548226828993771330577894324055009992714223165474109020382649613188963694883839265231294155548300762445943532301541723736421859565157404868596594767197280248997089570368739053188270100635344914700900260149382041618811880116091739595267880166913340762196508859202617584386933113011515258151185605094342746842208941305036983288831642972402758095407173907582918060276503186689606995151052784588006649513253179415816610001589876705002693733060809879017860196148765925777998407185847509058635153879757070646581302434595135560020479149112170473561920895977670339431992716354710499562468982471614351167501050837372492368074675219242117153489071818847693571610696320802749713327454305855201108658915483240912425038484050552439882834250244649931916837798364416231128493670990766065022550848509020853658016522735691566946709374831083766868156307910264524111628679701376254195338811510389701887665896780917667654819073128030378024702857891516176154891615880338411038336469716724134685423572310943551986566236263697970803490282934490493515849741853413834232452260584421326093957951641067039922264226020801960949084950024089599447662934088695829137826590979263031136913958553279455234125449785591162457604975761600895321018836940539662185724611954393964930288057833789886034788162372556013157198599172126886855678881578361469631187006057015271208732172406690268194349181281067088726615306925811158917084999686151413288403881366096622106373032178514355052976608402131535799126191352797113053088135537593354544885850194330064569567050731859259646655159175640377823304368086245470718036186374440584689030329273212205613641612836114518185703569551537520107232719510859722242591049506970302151059561604661156476767218296516839932068455075541671080128747089834920870378024374703331753895243693576882020043578241887877248695014304988394059890595717971121558001729535185424531478743079257201303758576884990357597551425224344092873772071529789378989989024310144318292430284775203328255925540130114090180613939584729876090808911294052351111673195981016391745220626418080901759980435786817254920598386780450304522888979451657932942862660497147349179818858470753774357490499736705015484341958841681810015112115763180762228241199993959429875105012082964998938087062739313693506550796473162476531137262977173143132359010057501877317951998373331925850720554530267849526653981651546880467426376287775144383509119093044348287250686352446225789430040220992048945496491842650730282978151432234612756608309681334460438707804819613096517034509471323334558200664494947335084166678761170409386494825504514090424511072344676448590421584685373944545828575974824971049858269134122811488046665864897286283995897210741907626038310460571515185256663400297725279633418079520379943797940880655697751546054469383515706213246599367880780337674960616819755675441127415709872760129729024295649069385454860441529366363829070026435688755850308152225706204531574203500311924408856564252724195558930803698568304453147076013779038019364283743282526026183853233228959300916944032161029002224197882992009555336740702937783294775770358819887727924142502086153148330798001733204042262077734484392092243970081605525093493075624814604031911391805854010097510377480002198960783946012959778944719566727325415242322826494687050385925588669645654930561459631775236425508260082787700802671115607666282793944006061498971514768705970574218742497414178554131479731180156714219682963381706037488635811136980399054397337658298687262189010643641967483312582255700328038147876647508709071287365853967173900359175053304520672846158400098110289790255902016724922113478603702184405070933674486613103985094948138079830134949172669401451488782291760776744627623387717098428441709289365060473301242548232087320324948443025074413449436486903803987441763387378135569630897765362291261763616748894509053930893346285864328790507697987578071883185725901807837825330382214734592781224492416720329385048491453566271121755912873484607090374680482585677851354513319234026345143904470777903876759868167431666946697354668311029610755084520084403605491291498104202315358976194690814745016650790432186892833830195856274642388568850403488738930280031986810675570227595578171194099727090503184440312061139343490830867806012293084768493185582261958012935518555511984278471878860614320239388844918270285024359164436864494882151869939725266437823496071788106181272925389350594660031685197474325942554240416799226741070651056243763338536659478207011880671020666039860798101086957449936268464908927365766313970581484431632940130141185058066039369019559093839863324116958364723869194225008091176815932665751541995160432510672458424296532479936247931121812985673660652778316620299606196545292393532823789788036896054925794026259104863708842779326131114340087186902367091241093464506238734389199730967984873173702264633238599894067255403788870679531420196210131412594340274722015123416222110722115772786833054596130617177233342748688210057454484014977959505885306189361525776717864920832201315225167861878083769291074122954349356317575325376880376502756222221673902851464865323899501512349588558005346575965370377111424556725383451769236120696584176384780678982114867476227082476636760479959953080410840605682789607673184761965468155348651798567807354740166275260727284107978714089209014061983404036288577931273359044674629154764519543799286594405298132621747951714251928800078468130154141394921500152051929691815431860485338372907142848642460923488880530756190435598045278434916127432734065892795047411285592056354724486301829492746041033192782530375149929748789530016803964140230758122795297857552826522916225750877321224414804667475643379469103638467384201627076766904092568673832963187598308553931772760550348132492791347597520921106412354972226223620261716107469603867053154445060634565252388950210253683885109952946138836886877017589919084331615285303591975896258139621315101408918053600437603593782028009230434730100598902203624632712692725559411959072741736520405002098886054280282344151695309335811887449795466458724861248216077133513413409487405876719871640362225044048253717094845011514288877102038046873924790608004463577026292557268748706334653873424346000771024406224954402155725904986299676045081224751091855668983871746605209078786397049254659132426183395206423697205149007114310775464274988342136830030655665987168988043581757993683501143873145538754538009190997795214132794941622501618755791951870371788715202032902149480977213088073039868529984693645406251699776203287955355129171784401972438968639449320948101354595927491307782735310965381862772844047180191279206038962776621975745615986712554159076020771994950993675037929418316346290839398793011177912635884081175600346103087035806543204431343445738980525021819143160746075952131539460904942787052017121931750004764589756446800718459272356215444365145905033747535187741711064046707437544567002771530667828997681630790879387076841247140108157345021788513824180814207239798463794028040290390072068486015852942870687351708597562474518199460105665594101048910396301714642889404992044343294034151211979815180567551794315862456042763791375186323140874046689412148868858648812034403444751199642125936030170952602814593513471123225355532843390866829444234777311482772549939070511475519724209559113070672231498845959788683395249507147607563781167770180158498565421292370806148671445907253815929764147571704607379682420247967185297856768951297998037152912970020876260789570494612085825894115130561827572086082286766399827915578201703574845290543648803717577076802201857168982756728680194683792987183946179784359371141744512785438171855296682931018589457743769649865404480154477454549185361191714360003272476924559735354715365234931923770949794314151038514070795726444204520020129756868813003201569761013540246513960872038551510499331477607055212655911092145320914576500607244976591494361815804359649501931391125438908471958968005856530412932820116376210586372900711472021280775038190343352282737879378540393361200771587248069896714094847395973310433057426276922905575645892137790904522389360123768060165045961786527192604273503708680921708544171686581601997681702775234579734999656595365023323010782312172843164846508282935437970530634939618178388938310029758042743399141664881092475078771333195692319763160089730959052435633662607278920905411035583284324042399416467169118318134147792879332953637658057194145412576712013847538020480798510764584497616408297882990804616184132777793787873172377899561561010484303479014582791861103686532658650386072112273862105756585030617555227676287433924412982522855935567602013799297154708691231246475725066962745439756875718667918520507834545250709416531721831422413679716767689532024697057299094035735586926663786414760136379533354100563929160000370858181197652630613734480792440407024756886090010480379131532517819146325022808504021484129659875584039165775615169470124980521903863430222957009328876068910656347148980101537488488506266603587038372329687628958878485819311023750815714639007304328739564891493216842780021718256197238347103327422390842591696337924134721890939275754798404429904025701423084711367440073727576682745324573361296235700403181486800653230039765495388767980292457441133164827718225468489039645897801265126511260415334672138111651786837668093433557072759459125851544712551792937390189273256261541471924184400108313063904767184142664184453413713143319547134915444571236470367113239357336571969840458944491980322622683780211656126324399588642932057904094550853298786257897317839648745033752915466229940783717858193650044089075724557934474582122295492211736648893385733167788310485310999707408789364931174384733607678558233201114294903099961760819028407030124950239336362870053174186636225725497977840128498755946691423292921619435648193849690752174603622096360335123468542488576360050092936989475028220232715142385562583937306567744284118524652458582336918370620640400730338666827725548918653165528791007593140850757693609905991504651324788102091007299696198114208198654254059295062958487837310279057489496830565828481665909087158065098335166378548631618683259220592502806340901966287886172229958978211222097391172403411296251334436882137523218092882756956977387799221894060101806583806111745577618872649242986889621508678596285471082417180129527617673768775172134042632482925081917736637885673788928650036087242450108121752146965472471548227038696188769347112109575179042124507980457347587200640390287640749800033323512740697848943193611315583973983833205944665913562248761241092625617031228234205457339574952382106246899254888664845408678733898833877176136502995392098408290687864690138901404048692810148153762220210224505158586145523424944427107698144011774004978455046904157502941815436275754435362494910156657678977228117548567754297080760941174187803721291843446826080921066961600132681613162260079208935425918006202568184182609475641756870215108620291595399443710511984367237991942134754895991790612370929218453984419789970434577920047907772974203791368151681062671410225053406083725822092671485549230007074506094955526679092553135327074372402341010651275043174024047932792681280082051307826823787636244772342924727639575849258396200194191005514436785751466853120569961584584972309122289564376534167404950700543667577769742902498918194452838505243908823085532102018262694571689059129767831079990477670035887309378077890732883812953760397585193004595707341136305584603766987889193462475039950481188770642121089623344757489078312618087055674442483054540641922086131379127716336018058965525375284135358098944081158697447697911045918467258945539214860187867173603575241470297321540877631819064627294995174864908774214265511699037370601235967613508399797346085227842106559085697886605416150259414566715056690802235170027116795272536323794797666409076215251624919296377884819233023954886408153544308523167407174230330768363990533867261558363414835161479972695905845502268070431590625762764831411038217224411283139608490675684629738573714414076002588049891844100612353526855023501575214725560787904368242599364149272746328580559906172885475323730625401450921877870767072573750830973733083475178612688043070584841535907969124963303092715650452884210387491609942026477443525186200732004042550743773217753548039100815266423299367827935716453945568755761910864259858512487743179476893263531289470565646867022986480846957541091588147739979768675576881376722486598451696970728604223078401437419412835125145533187623370311453786633416421135370046065654726296367257382398626063358576214276880795941615628165259486798142815250719771137623416370632561001985712793955859883160674000768728714143879945752854819776218665108579626959121681400000070793228540815857202799751213699188594694045660193428088508001161148875551249372040568948117800623029026416516165252267707162193255458282889173884163458087466715521449593774937160869200122092655792310108985774298675206705629976018506005028543920302914841272121578613247123679450393738067977568094374255867765959047707219120591823687057318965701319367224968765632794585871422659237082538823432454072422538163741612583176658712302944363688617904343058840970812548282876290383547617810736277996662939825004894005152563148333771179600066565678836303276347329950064447536248990468737882093575350392318511458398028431708898160151212917133829827285125718997497359907095189138489808490250563107070473691103770265602491037874155235720429503255082745742603509191614343304689525457043120628678205709170438271637522298812149380091061683382136682475997849505140358412626787244502135814388449581344658057884350537594747981066418650776769240497281630129845050013216300650242952467348109434836031332239839011372535784346211036142043237726214565312595470498033963118811600731402773681779311778463948536603428336684943396382134266068053139414888055788249441392967433024550484782404583588250432096854367216683661809628399250653184422502127679729411046988253124146299084852279228216842902213339521228995608453053000023974939550475922349106036864143348677894802288299722173900802837154602575054915796031142969628984354625737372808499100477444797338357459263161320412639295099111207583043346612196128581789200492076374495379740396650331908857007524470083980292366838225444401506227245873684934448115958208673151393256155597307031651188011812186482100305124688118037248451201507598103947074544270530234243719704626587073017573027541337788079646657585578734628122525756571695053541624474773684103587695098563790915949260403771081851954933566528020957023823908672091786900223620013286063244774251271431677838036742474253836307497152325554943925596995385872280025227305432099815693986992659811601873682075379832065902047663360204836635278627579469308980621355821654185203667089636049417913011288877933572336483884508194673399848463629079624204110957958556946368968455357302506147810716613984047923381180167484006581184640614986053156551899783366173751407780904597905135026419494420073652366171719687917932975138584258457907795286831890238916777037784811481594032044379283065086964505056113967939642650542711423819332084577683310512096890793040483879162703802164957401627707325605954988094395954923509234182462125943952738114875084917946556607535590838473360463318662933802904688693202532113866459096845653343153599048000265668864397136984536636524990433329216448435644974257656695867356174609161407715733936300919447173254465609601057716837919662273194830166515954759842894030532499824399205063839763736700108533363730057499490189163375403497847042219801428662172686407368460092153401109316102886497827762243455193320430711479293365987458612480127955631116898645058516215140625527433564678314730766650143028828865171839206645597121801177326836826870360010640763854567806725929550153554377188561840566623104612422847164020154709756150113560715398123378806060575072751102984643058420996218208097481578832090979152020145125103431470665380330100559345078857997603709844874223411245711341256617020554676402334520619359496725980899207637493796737913212985205300483766543512202332441945045912624207636300593992546919256157586266882739650660351819823257711663937052470760035773773181069717444085681140498315421382942790388398170697948251565533931364911940960732880952080113616682466835866900840870950982642347420849949047829797677420856538635498488814770713812825168295338805282136993721548084296619229768207750003336734856569656919305662978008250042289225188516206496953865028924570931952185196681303388889953466416789513259946425356480801010153761661267529108891992971067238272812925478852379018157490105793450450675765924354117095361505454487463309747115698385947200607495218366912387400980962730371350453806131205850256918165808512778679877499851812121089170839009526513665507483739825666793085131363212741466688379173022857874873044993336633929465522918294650291239383067564382008799394163663122812334339038835999141519469136685499419466866983266280073150790016306414004688495516059776504504789194209499993894947505930049457789958541368033019911081739298494883975550921732942269101889702480969629473413893888651299624758201897377111397979885026451271454938867286820576817548157213128252903737934696175792354588595938947752146784627232284250199444959401595159864082017341463170170086364510686840121808866396308512643709183865491000123336421760240802956941441624453454842666910326914950230171090055609414464378410047733050395088210798117590096003526431914176129502055026905972902681317847624822719687939933974352894754855115275251273291976199771442593134225349131569427991978344827114701531318016599290288584493666182241026708115200064775600675542534065419980958080410612709921608241585858546499256115451061239565360151487140200212607532735838445684400425434994951730625885877726238045518051368184982981291674586826739250347508422358642212886080995691250386725520546685193254339277571047906755521714292168869168433084129255883396151139828284812731569885737925230651518423804021124339920780725597835931573027005848065941442833969061037329425953108656521916009305072751812922821581901677934937053140776034756642833161330545281006581016551488709216951100009038099985093432171432942968359816858440995900337512752581183328543371142498164359333909834940905552355537893598074297331492472659631264909566258327662839609898281056336658908867852311952445543756688169578805869634828016455688300310884804954588031706706526830657546728074993455386941502311763854474858144089406222353883933395102538685318299906736347507674257843274713706025114964633228745000719172794297397811658490394753539276476299977794225773115541242695520773471508674170877189282378615284381654973584825505971405792060126207842114674094320116786541139408166946475080493870934338136818743702646889205537150090579769707443865566036190199430677899274144732264867960820471913443499714884661183311085664790031112269401900075376707985073145245803595253443251499086301415403872534546924642750512969099544535052032765606517821577037895046774851259262861079674833488432146648102244891624980825865568841521383483151222857391583651828443739093505888338226277083916408108035236207047745772466276342064602121655153387621520750807181248646040658956589862139467497081123373801134776636406355695230395917643880149879016668208681249479139107285728449775401989333204494576558150278034010674889531702862114993524208652880850637095515440477426873818124205185353760932620987514300473621862117233364723726496982700534516517638574964897025065646095649684354597620166794543288172425415641800347741529429141737711184337600963334656637455877036922972698254456340477662113783693112950215722533454922352360690246254452375026833698294066479299713520670497996152412752817555650175020131783802625488090001616867979470251547630851257691275203356297365469660255840611531774328594693241185051337009159016894890525636044087336164341588900650048846668738243038912831074731475111018344253029658206008639722267845327533352139465476856875313707088977395882892757220974237620696867289475990252733795323158169434085601626092442732763943841514800788069769379331627344586284342026468310916586610149598290697680944152364371462394984901523255198791052639526351491351785851274641834586470416103189268606811922696863219589593061615635132207094898475395353067431462464589859357324476228410905120021514065500619357887038069138026664523242876360116219497318606128781105493701958553233404003228784205504472228686113044410095119512268224728209654408105068826291446026037880468250305303599170775618131199230858690783973022619437032377407581390687927475741036115164221043842760116474760310598085225595099556483725962658469160578571230286745320288180296472249897649581355444680297728337092048776682084889015910475701138180457711760595266710460641663232459821995304136315205451691684191384512859699380725899911382041214108894090807595863667670945585021431221962271376931577948945615428745158585199542895280201885964207513292297578651536382100013887528669350657471230915873801215361110706130286539383485932578221509034599298525870587422890523127808922640818727143181424567803262645249201381680354520912621419835212762544404990319774559588319783781151392745157957918598263903118313268673058507283208205081428422043544351794815423257080550493246882506434220603927941841124813746515235446835556682247397243839073254381538878219225154164968913837761240492880929380203851240066095736548844680782021271259448513673381182411484068842285925746114064062779871490567776431629224575479158782745934959219091749853558549074007455446117599323863287238285385289927929946623978648997432573213287850382451129325743349997658985038071845103061158094047163226064929870239147081067860512367797050111721463847971158246924412475787158185032358008513596286646037193043222438362181555177623196094009566057103913341113041286506192948882773309590969662128942884278036471256747276627272140396031273903532847742465665551181511369398325215885112851695942842421292039813441496529074061800400879300178410910112678136826321758397711216887820274090467318857332364597041827638668923077343348248010053234603817022087103093735929698918461496740564594445583859708510754503205297634659903223333143352511387507918984479982413005467457123644283480313290371031942649217101568074836538816526891440091618505416462608906115087009037515422960864104133094535301297696117211241257105671369557826235553097241875883114393635640982654102010238403200724844914696527566720858820741383748689254065211410354679075470800304685566698108324192971654352321161085768665670705331063861174891263522089898703120676595430967924425195042134633134416878613807182403511236237290744403107861146275082556183800195278084845471821228465000693675994362983712299189702293380600730142925161512298519330781216928031412668028876486934452448467851772363792085104623395221237342804365452308382397857949158576425218093876954140809207472446713192488643625966666389854227411472705620641442546732086906925592408713788753805682120308313031375406391799616450101437335376704512111490468397928043495122242716596828443087185586630098206059595302254273990391779596150241022276931202366489185730879299799354361812914474045822059866009431286093990550969092038040472282965371727910148576611355038786696161617679777481506846684417823195195960751186338522729500491889826750083712164983723998689005234762339419448035517922769936094624441798146871887754624029892745849052208027951345464306639099181097392044766146763936529100991200995653774095713483485398458876806849729533689092671891927751206521745513244042761292865993312309679562876102890529224512752087592090591317868143127592579392312210357044372398310538036316989484671449266019196130209786371687610983355761594608669449285701907135273370067871520089718489820225516361157318218277631770669357242117562783218298284058726506260093539687017335695680553292263810521748360181133618185278506237626164921061380872958210830868083898238113821503370994932650619935832384757630231712899923901238842882902196057305150508676063991194215477960778269080142164499060486526376630118697946753787556895461078705968132073846153648028514953527225368029961867053644273443424266376042221502860488807281311124119340768525758860870535548724502963762863239961075618770261035990577034732554493171300901091289122838333315867190181829551450376721909653000463836191990288305056464035492780677692090912049527928552275294049292534810312953349578940595308131588038897742440518222228779491202040702654065350007263321056424624217372353073098877983659028427848191637812565700156390209951781925867480573182151525163512708977202194360059291380153258969049081956437542159028600699216230424878350652591838520695044012093794152213772297852490925947544530552884729369647286212572741436428054279209947640136122885777149010185365889254667363428976895476969702237981655099501630002908302534669759407317329204682263376626245376925551517060996543509794141683017686185983150495919287927953775768250004350259569656402620383458188515879948034440421062947284045667011733526529996126121981456266090253122604279518597408929510151813727106704007640318825127933848990276683457767729565316165423079498209538192875921701009126039733601021650566198581033683459002168151846190858605776889287255598746863820960086778456693817476104201346830464365432551453197269587294614966883213140776929973250540733631314379275973078009537145666082295677050114707924416640197967122576209580601513931551171719018091206838836315925267053372988650282651100683151780070412136953221011234801146302347832732296969495032101164459394494319034230165908962425667570414913735187521284551844838835971409818884384469895408561537672524604769616589985434286555964513006910600097081952825591548459073784764138228881014323926921588174214290837532417475171475838318549610302914575860010480904203336552015835401630832054271290786415870552353126941600863000290508018131926205421106099308227806218386061678808572322760665823415631724335475150014903986196285312162880792077657940984481546622587687741890756401353922185667876305083091329797637020442402565062389143604574318930943659028863219740514865403478909189845536538391279783622365528621536210084816836674140181705456282998456571071207105866214629746816083988193672143344471405865050551214648107098454239636404724442115650432924021399349974840990107238625932464898595853739056697599001580196103513524725639542892233370753286298397554589745408373388288058588801684780039065671008986072965763498137191588715616023955423078323967889119619167146490087081207818009253357521502013567667533669559019290902755011437151649607138905124627169686029621354673363377000905812299339569986011723317679022134758456752571034106681784613671976209067016859743652054357417683434279522105902413592653662032222123909676901918360931779781403703061978005740209671599536227243195997875140703424323767407531427860249091112084282585898388048214757035012121930284197195154702412899900881485244869322217950946343341388540974252317282389083366624323969828525469593385929459970061344718199910574345903112149039170746706951381822944281396116383102256904836737471163625304690882095859870473766012093925223058208363358626233924951820648855844300719108683889105559025452321885357009240430929280121698673367802839126184843631775875758736622117910314784593352736044701517322490217322051389623807939564053107086436487202377758812939995859755812605500498355501146640354890992695400220258580660900483552126388627217016641843304190377766487658403321274838422608532371207357020669338904046668689385621725498151815021445339955941005108469980122022711487520310252480109402549889086252852419350045418984423835725257861007361988639782441834217927579577007153941520893068261772291678152930859490335316357999182292683028662652524704547964731158296434483927098945608941455999971160838065473037478906901411931995071464064585469579554975976146761643266493697231229137613232805714993102679842418290965799202371260000294122742585304334594097704244271155254677810455323556212902523151912372597805084788391048350743727482975917134363577985863862995324754482013783697391736909848783040474412340755167774980549911233775833422084714085498678020799903993559675301837376252703070754165816742241227519532583527805878168271927003356048965889485676939748382144133569330745890599070838964204729608746324442197086582485106432480572963836520259023308022155999298555543171048215525531511721760324053537214396022036157980600766145969325383102631994487298071248008035857587738991937310676402121967562050786105290124981079236237228136309881728690675977439391705713797415817441243165337651949279861774535362498982792846126373121201674191041138313635626169436700488754792295934128483681771036790133493204742799427248996836310064556117431885269479195019822483003718147507313642520046983790816771097670980312139994222527857316621600944164567025057320886372890578972003415602343526801197499839714354679836225174823439361433377434708902021988484155788168224284199838912419112436859049803730474430855155833834238897025437704596497696315060493350631869929783335044659520391119499844051920413882978864040690695798592779544759837408401268818881997539950509501987333635880560503350664481231202926515546618419420597933763163080160070030744789442050032525424408406918307138945022783539654881288577013639000071814568300453866345883712597089094089659735743379686985930070017457357184078650402627149542532359457604458570430043498439638049958434017370710659322205501907923711791721011749664678846714364437162938322673900464270780364778331766432120530087878319603638093412881186055810646233518625514579437116382069627546827970318775876568491717115941820284440465796612549686992826370796775607065592907965185973896879697201348718888107995938139257287855663616059563428765001432652996357231297309773843628018319726930652243911323093255289675982960823055249990649279359792060468817659525097629440958414344255641586777395535922305664512670282732636385703205739330821437436988585985421206775534874902263837090342867371505687137597179343652656652458703315857796289646463079779151268332585051955178039441008096468379763973287183608257279962349245675732651171609525259826121501109641947418747222403700654872052815237423715535955092061699545778608819615856442374874910949003863214412700874553368019079972975758262097333396516297263301643387908265313375483198125444304166902211300726470556257753201771991503641262856495292669155116507897441049838992390111302453103364618113524028312167527632825589033435235228877275346874161536307951559612011833145136784954259635369034545378840029971393510326123310599741435717474399169699986996421950433946947267890473031818412941051299985979397052107450887246817270759541096728115142667540336954234240066818245291548574113158080367751080574446495118638100927404719478021713372696042481566016997478203931273421354258894779028865738290869013546887181587282207602769526990886564728350990723813213203332541353941350676500602910841399542235388189855684363021798143957045397299536213812995096524633996053152936576603336809357521254745550336575908668623737024213383399881087294692666368611305570149246619567041176641444902371628296939309719306732409878743464992537309336320096265462732813434281982516242897284484895471258672943601218550547095683450786775090259317204140088309153637746672960905928563802906339621021401210804986225758672978939857903844305738608649313669590444250610129261514213922551587165392413016448764712270534735305232450529856086963300166807121554569850701124101998714199133865476534870096016440174011746635894870976679319272503200384030528234412811135778063704000843567938451747974323365311305928983422930608698744271411472168564222658729731177245984154590363222049887122212517003847819791241215005199385267909976567247480908799863610532756069651504606291171793655045280889608974439416265729304621530766341672168375966414011920819114941638331923967261545628362617083059863115340309958258117241319499223121035079572619791152621506985920340502706494711004079317551984530824593003837715206771469926093270596052105754782628980772867951828963687353915775607780215893125080121374950559228656016124681295033737151080826631305543882342993875359105862290413737876043430583791043451551494509657933852719152686281503036257125085129877792372414453096178594985766926950441019618017781956069702285787109984478842626942809670661295580125298368198186838087397437470305143103846726151958251927932093533418371424218977231413348941378953872707696684406293569410466201601201811795745001137019304735325520557170277866591445575016409429078537338559715497611519899933451447438705750476579142832896065490677637916452937656088952594372509275163540373907435692302914640087090967801762726965347827225924392151971559668237943647564347732743325615028806218540013750305805141408731836064110449293903074386876558527075131890126992160186373037384675242640567952573661289322069365203929005063644150445422699826825570911977712347814930475117715676154615034471932976008311550063783853658067513297686192652046098641344811683945660049637976142012287755526596725563461019873652684183382980866179410402323726408218503580829775019110634648159811199101468048731902574904570264296007287403851794352867039258284106496766404785249644577250449981992602755782622159533429511714867260001426523205844543908918976091777481790181220602383773300004122404749692836644907986978872220180047950392476551104899839277249884333175892277758320734014485122231868856756470482675862055948752519030627073144644301324892625863212592369893187040832322231479127092196558131681042993559817719155470459556343368452279261481221762805573896970556548391678907929140602590682207562973366124589772970017394805626533965712191652923215295882835241031031408807003529562221808867426745417358415487222480969842151456202153361109798290652487836579371704075296286791109782560006152338448539851645823027681666776071187274519490846792136798071263040157534225342199773539990497152658968152719162894233392350198652823514555431306069092388029867894668231383786335838417585908317576812744877083210245916451861878855571026263340338372009673177430153154490195502962388054208496525240255524720661280011994424836021113370348137731989167719428947035514386222256294377936919496959571717065277121024008979923807961122397913673516340237919213958495394215984630474269422475616475539879556537511784395955585798093795833306781885204545770249526330140801188935429389102623133882446326069864606782848485989043837800695941221507025895959923709462950313554231012205292857044447655582884279201495680007374479572551163973957153963291214795318151294361318639332885360417082222958419395095776002534744813244138643506470560754239966592820776275180712036608503092862136848697124240783177302812234493833802466624370513678163180628423165444739240930346874254562757916277568171081280592979425293923729814890918445549894029395286254898023085713858125727560005342203467599702216095299430717610382833761146887898244715609944939481241661051716859594909246267642324556115285764663893766931745908083958555556631455973478009257757670964406215315971011164712818402022816599815515888934493283455256738970452946898929506137144389265582748243792929918660922452055590725029592025632148106281694613316567172119484906801096944714306339932640788465956135913042962013640740814942913071349076704895904527628048543445899169899510810565827567914715370440799491242039606757665988095917651124719355653922704463120825427841756963528952780611371501633099877760439663750722523796963380717107069788579402307781346471773694891479762769797198611623865224892844789487165707350175370356233258428651400154599570106703940085756830099831569560473254555143210861503574792626186086013812293407981063883433177149363436404472776766193445271187878210159960149450622794693864219416585723825415288200879690377696899703802128680316932857664308685872376557661793775357304558829372885209862289363113786309292090512810784306451259227145256421951022591710512916346108153179473571222957515926906783785333856535884593683904629360956183358022462988364759529671552490885643484374274221769932524076961818961324319199542439638176371407827315866774913666476068078492696735515438724732160664787202699606512030885490415138665292835247731569468485719344328303396758459682615460196124476823042831194714256344647327171638264874189391093301256699125695918923617410769174325343228027729008130128525347832897785184404756068531500944939271714924523635851577085043448043435346103187301424025475861810635591430646705612770198405379691836598609166703346225534401094964992141359010042669072856775905757083242496890653261542271118717547777699070558508744049924493065544551634761554519422304095089292195624762762137511457097964979205953820529524833868687804038948463730075157936859686810730510813388394805300759487155500375028231087466546948034128085256263679370697709316945492388741787634988437826824160353645061184128213752219662372615145880875995205711335668614232436149349767335679154664441320291081740833691029418192130384459304037056657274413635999251197598085696769487662009498581709047042127454090617256800698366532087825528887057574365134234684326292298434412968786686376734768259607189345305142078409238619073226071447734326543775124762918975077648554748923546313337504632025185129278716581371132391448561438940887896865282661879258028537514122229328430129416256905130333815147439039478022271871220510146164701344332741955679473758313335002860093383056797166266089700888024774814844755971464858485784208277324564346111012958004440343502596725562023797246617540976752927767021177594723440634180025481885453809636570841681670958376520116435168871362934099896083556394259818572948878758535497463581491405567151696210634385655807838264633781196311929748824623065396566886744907440072673416221019373504418105029556000992268984944996684594736330657021186699772842378250798328250718787919657582725470276796014936143413662546337210274274965381176190395991167008298877668970217004906749193317143807941855478829220307259213299501980691320410402472432111890177376650002999709383265470156545442465358760744287281991646489837007767812341433129913082969668569893042225671388397426642406617572525411835745862368885173089189660543776247019733037809793413400411994365777171054699189673977656411192440518115010836900787964746372253962319725624752989411083437426956440237007958120509604992324599829614140915527129954829582568163342445483772669531437794140534190959107450724238156706065708462156192678739056006459900318255855385183137994704571716770536723954843026847848779598159420473197921465725742279139855914763614612405415813837565131285379207075383653523316597662689909397435508001219726228519284619592825702715090166124884050934910454653710372973474311937138699449811308277826133410888535202549838707742755020334664576395233766709254823133074476947643613415541221413476190991109183708105710140447281993752683505475680842359954278096252028761464512651750148253869829527520353791586295781643981007611589869299019124242933087279747004170139982034130560545320275749682780603717362979445940087380903034675798905683385874097827785498286369321465160045344132140668859618188944316270052069235894785880780558591536616903306585038253404091882467061010455712399133508868918554382414555355350446899756954666881330253458401756780384664868389839666253410196543260983440633129035704438915029592162576197289723806248111488342418260469564986975994182764953119843742038296882470300504962087052927119855213460939764279432979936981427924757171919749909778718962198526413148909233785877049908542058010522483556452262253839816071689402747788056990182074992624813815304796509677628462709692177200659905072497472155699211026015142523925324685524868765654897395197253519516547517400944121214975620082060863529717974120124419120104065636988704002264178480009529257166376302888616504541163069913189740457065980970162299109894241487072056739498101550664271734966554849152785931860566129201721058278195824147928064676461684206027791191672222428911016494141866335324920552450209455499917810448145736681421722231386883347779965524287184840847782807619764840067463376581664480422880412554559564054717464238882784671685717598382335220545668937550131503513661624588953607159446244428148421115064918431863292456088751229571831128756666409794618042253253547461479748380279062849741264970148246565618603120297440200388817808769682030940369355568955511298380240274217268860285700685840442226382938885258049449838611120299453320142265010720362392837151889466760276094674641280323670967724204303171524602893099541088096850561256157481113444927035342339624039291340695484464000592904610383241813733864367375700516389151467075516752902940549673899697022295256442397799387480062302844417128353059543037558848729365583608801178012309698106881659906669395272525196628395175749701187245406602703718094100252535576460140936099340836601039670716162231410485585647977120442464839456383269102589759245607246888416152824304175731830679083943737756202330015684075618651230023272531003062542810916926200632557233084344195388770631710643656580048352430259104182748486511971874424079624128623313758644521861934612254287918456973258575786807014262346318654795980173395071516917079261495943329522802565433461351124731108412155161445762022209449533848898826904287239130247134152210139571766896895508266025572830571873933301587025036372099427699868289594873434453987013144463044703513834974533742909906790700100619952963619563361150519107191303365227516927227930219589629458083318785132621448597766585729623396800925178117295061253118065636798453926693881727870766924378002124972666883368937722373115921704816797043430512690556456195901783739499758533241178070320583753225216364941815593965124524576836227761243109639487877272833199219885662986330687711756810424723021982468968778389482296795394789341610981316513423570745993273473368111995393200618904132427356564784521204365455691219291292493084843231828111870786860239360212569721075544404197298184834480687537152987754040421132176321135929948879905828780406269442811448860063207174107826505293664810302329654780527076603513290957974261399220559923981854033676408226791951076237133876297945866755221601574662953225567209140603801256252782560286137220064252066065578062511142876410367946422104408364428456751138911007629544088241323530434427595457721816528315087986345149430653791125600037413512597694504076839032977612423371140637498539080502172400757469200172638297246624208732450792741777345694200156462446840932824841778055689038958867386461412309341716330707633240030804546523172315989346431763297303207994594844291004370784452391431194777904022911638299850263705031240380784874452094455728982186530154480249096134893272647982360583081978898564030878143478582854138866095540033952676429360546915588957215072521209591767660615941990475379113425924067690479470412992306038579906858575075308573848702358553155435415099982274337668056737429969569993428926522931136162201571356784115546225514135354124987071903758779759376586106420178773462846223203667318984515352060919777392990046809256554012233908439152747970855206154018142703803637906005734844720442188057704962889990362718739831506032272377708081313199327942956628455698740254445604611525619877213276922398499820176420593612868305554302557618620159336452703993939855098847301083375381295949526724686182832792370901898308508967100167130067194035205760082204762469380762113602971569916996724469697272459915980524554978733266123258882909016974201636163811238620478677432075354190184555437737481899087782224626595050121775691696743936972754676142418959644430584860131845458474678813845994812021527588168533354953195529496092977954447814560263899148354614906904542375065649771669295834617804236305672651781415558954620268181257615349038681202056222359635402923841786664175245610470808593850092230590519391488390623315688305153709005075822771635315267434712983273237036962134857006456869548696644875814206739689187331835518059095185971015419543383141674649892879601682682828605100864923795551035436503744188448611605895189309441831679646745479270549194281884081155283336662497345967546593733272601772114893645920705075564831013587352359748561693918556907991194414107738805505716892508898101460799875513612076771230395991853632029882442682915248803391660280509674431184502912054673887415564890158462666073793149371105333165948319169569278808847085200114809700454036373602859276881500229769352867985793002576873849906692856838069285182051628345270353147225762249534687606488753488098180720745484615045958045453430746207493742314692798582819103244353495971169411166456771563456610372068023133968351032904291358427863042853639786263550090261192346570404434938120321928750545038475767885840998413504946160810405182342875883775146874596227564053994701198584980578472178236811406378487965883492324893963979845989641031937674509148484978559749362273097345456970387826279180370801514335764059883530831691436795363713993159809073974784367478473651739381846128814212302210350800926787282099138981717892762865534119941029790513525431875469709442537943090967995856161138289149745293042112874151613410111733450417425187200248532634314969671298120935445355842258224717284067945227827713977133649304968950208190632511854077132245075046424537427191858369619912513571034077267612270969828256800481150586127130807324967379159816555908928363512263983728787726690911290100637401784717966748149219462918341005177414822749672089053666047693441059851760970764563499444479971291288097866888470682090226513728112829612625607411177968754462976841281550074602191442804324552467106091582281262583869626142247771596519564643050342647947456081000682332871627510814833432641817346759230898696858541880245556565978283438230527247729938506098812716517160693629345872533220660547337531477942318220671887110555888200698044740769131091180035276335889277663337432512058107316424050685873198618433957058115081516686409713207884487347477182912145627323559109722609665765547283644925532444849553219519470918702642790812659383845749973490784587267024362208167541108365018104606209149304598464419322546178352449657908026587823615996628910423552908111245678055140205935445202304066594411249465786731399224405622813293156122559660755856412248998276716317139083222672966814374923954115200654644329549305612474911764579173541502698035848132234724612777025317316195557673799160030611947888210694357555537014233760245046730308782299744412365065978013099191618530431262176410773967627006785010524902870591707462478242257346400628482083450910457210005795981835385003628404328851419091167437719670374633868451664528432982830815302292192579926818368893517135096403643283563162833228881465882207709665968577331871062636212689550538372629314970587546593759576921109435779368806082328682425408750992497941238170634284472092466122082031327631875779501656245801829697936995463587156646437238386029790100862789210433843319032401001557373914489403077469049880413591090836994201869894532968828072226056677300640002384640158318063381247830907458183392593703923177986293096766447698859267874256627692401549216850239193542610127135105640778119139463646598340688368558722224173064917750927954424887778745652140713215222498321948901523505877999145756672544232108293750440832107096750760529979710985450051331272275829076724445599264938033072351597063976424053420225650656791456650780117798032051308152032653395065193526583448166139170406450255114801146859282424056657458350092343146121141930739748800744663482479068217140731721776184586842490855404450011369292572680205887366201350238217227528988386181744809664148701758372776677754367683245499485596493506710239950625064282986009399652265287229829543782569877716916118460754336102687606581023090515697008266521641377861395166919176976493323709080551226237532696379125855254572602138603336719039547868652960604859092603438684635282066651424156023664945928010960617910073518497551734206441510633541695848544364357670946508865953496934503155234834082038117738200889104223597806284964542671896913827914165556964406895701356657175246254866023365263213630225599506030805340869661413250733071073865395632727583411756073364431392253133709483112907162046340778042305193338040735966441515309437200200901473867818719482881185248980849295541777275482402466801830450556940903104857417578294047970705501505327437987263248093324876065826544722811641240522425775297743493068736606191693794480639903374401507061117695139336297520190739731970381784437562057163500165488247735740828082414844810951234834986048892831419228793300353733167343487535419205185847676130988773413388109812852979597525454809109079535797233314210087190914858467834280287343339376040837897396820722555245540709746938707262832479023282987281758645527830903830209132941617400995334661887356280944464925575546992951628732048138193651850078907041215640594440748472649106433858859931503385100022323540505055840113517553182591487991283360474499314467245333903348814104762491803174362827750203210829137515489741550739498657957343599673356215999724160067529679321722074561362951845515543071663850958570588859822429909076558139098959829460024356059082041175092159573237468263073931924303902632776055765758962179212374272975644611793529562771235087132940974861602054696651329472519255903998251826351768093010086788034739053418213584297769768583262509456996513081315504870199455748044890712778511198842884635494495661575351540354961499772736377556989963969204367038735309125187327539860224947469010492615786127738600280598667900893403311425184698471785261179196967699122332884975023682810808694647768628788046726213489722660821743559770439654745403310439291182222136539501951668789465788052002052122764443972603235340815045163627595153572672109495391305395100318359158101473284476983541188630604713466964537597590181527692809018867723987028227343022194832551723775270477132257726256558569964736608676770331635185653588002969442334884195583939071531545351524396938153593812165391268938645830343081337470386683560596766942438640337090068714825502430052623222254353293996119131610153091902017659428375460631841567964230014839398506090734705901105896822757643451251233673362753736430393500090741283643574685012735622288083983513916843244994088552474892270720666534257576416646040921084435122720358198752660717981722394956474420045262008416509499385188597801149366966252717183210312791274874394074181772470410143579917910283885211084372648729355789840388780938733270756524967254087219941952470353964856397277558680910773063964822944040920670740883911670227439809190456046508533346025127853907696639936955232712698995560343049033887383563295182039869918532276011082742479968174277183535681212987647164825951788475205479676474111867295660426449283668653521222356059550018123014522615382274151500584461642579621289880131803077008867915151082163999128109250315202075462189184804387072006706994850808473702794409498303298830960092524786811533248587535387517376288463600771878393508974303327012564412675609028650477081608208286895933476382681366925033321824017958854093674242328136274992631954572973804948240215413713528711512516769821888959434224985684268790995283411345905047387377914912649054277206965039726667476173228175005166148804656540507017937659942277475754018400219745081539793989065238062012000877867898564609321733757425354747856964236421635217848069459573015588193845541118383390836050147573638820719152941338749985475805395897437091510096641841811506212759457871337302093774488681673301459406636998371961264399311720515348413001556951924511581361999378615498560498898217183526424846506179671368400942803053271316522369892511456486337344726818679868317455236975101790111375288679473570098025461187267067075988306903039682807388395912803262068506736491119091367791758413226988790640423077240934766118125185909059784571896696998220766562466429787047981697556634721248380489580199809779271642680166807143171926066834186676680796203372184685056177815697179641494986115158782973440367122385575300632740954126529036551318717354735402007814418948184393821890459450770182451536746695055935969305934501364180858444564441560992665689456991789483725944912103096488636811799248518274860272790760614897752584799084177687697479690286079785179394882141626388481885881481409419156775606248232937619146249568589287884742564139967739554979071706792668441380274633985675507512045078490671887879348771298693784481088636518669979422353735664873362203274371078728827386653472349220812283216296188360223878036751489339360896023895656167316592155042397734801401052916727800584367164814460027292751294446158282176377954677163404772634304658633036602941770298825249976031365420119904338121086688115594993720290920020529545327404935552508667676874403630989829252102398665730117563337466369220995055172727553467205138271809585007437367970429847426702693648866398667205754505562510713646958705433813457058325408844335752348929229117153737896008779515829336225016890094973379702444791786588357499515715369936103944697986963426525919157297100394564256165396018192189466799992569936143146149954098153512176298052022654065074187047379483740934961896916022637547905480584545556185400760495406925786111749237200691773448443262900614694116748587198206007923538588765133894211256791014226648461940233374264226636977366082995423791510016240629072600396398874276044975071239829378679260708191867434600203110049017048441037727892910418088110818936546328733926238062881780887601447502698960279328318843811736130743384659414704677121234792008311257054756615425723770929313731382236284110498756160879403779012899271542316077919915278613384690440168376101635866849442815038431025687444124807339603325587027711106405788684157645346137627044843122169484697157761152453056021176590217135908449928442918461189624501814850286802635676411807926037232852018279309619668679713661338900504298036253438411844447953913143180792942264677577994550724486773449963113501017073201219424544937461434935126711091939948536065004423349161764215256961732162712235946840905366208408707535791603056419162634917525272173485824956385438556934923814201314975958906199422937964178932586433935385111650518768109501024002499093455607065691443391227145534848627125482708617156047172420508079489381243718062311812369664903926575062480075536310056225306509563557615228536428336575157101257042185556494757625161891095518196918017768553905468127918377430934135616618085476588815639956269350297394639043198724641950399578301179681106912843060919654418614913312759094532998225559921167040602506839148724394247061843851072271483397475751686734934001772909497633012426984973128673570163695416667702328415709141048414996322996995441734166604014423155545929747137019798906693839596927815377400307332327790509375720290032371233753048812916575171312167104942517631631243944408681809696559085443151010634972631084814997797440119325185911829590681817005427494586236246895183237132059895701197131599087316716306737904781541164864562387295060932159369157531922993991386881108543180350741994813661152147467837439019937261623597633625123829593684489441918302325979607592469723309225423887950224826186817895860435387348395016198615119331809600184385744664687719137996800475130516456542122973737965032101142930404603904266441360736982762150051176791024213961466142910351857462373526042140087098014823763164341070712572754622776285112999900618800948975109778574000501331572439032020944090327537869849963647706911396801670160858334393831713028682229863184092966850949888884556728013650986245794419600697518007174506608377058962872034719293627169092883652581154989072480266168475778159772836225144463512394338841319495552275398217275295666111560549665705041316206475853230330030322315770983545029971568205995537535400675631760440256249660329326404538009364789011719419303755626208099980667846445294787403612974002242305593257496466780147131122951881762125974425094938699229910326766832870455343392556949714439936298133874618170284044672383656223358924173346446735051471070897501928731199948693694005773690492053508603007008029172737332732682532488696755265837958712864860379984920449596887207366794168903587594748600469094477834116819879090920143391252952149662357118190711417756050003979979115473044923741064789742335285709288641858400476342114421708088005610801844377117390075581456026613142994815223824665383066451945250140771755930687619570911073384278577972222367504261463671902719096530492227190704836405994161988580653921508315055778764213885034630469258071311594365209078530483527910959515181637742983007812752199566176357928021410632548297153036078742348512670185721175896289202000644913566378432204948672641602745304846121958477964792766788265670309202824901849697450238922729465076026904316551136492311621855726802817792083664991356374387948834663557492639113295330095850872333887660023932270317694865082840846074414279559817906855610381144164373232780146171743726085926155703298366680839801726026511604005317391045871982717103288569795956786739137672495982474887426896324486330750146232951964070987774706864641363797904294925636063567442174342869876927570409865542616655793623684403435638027800642708098280283330304422028458158190794228528676430369442495191726787880517109193006320637679397282504386082933939780760013551231509758478383123779541661434191414559895867526523562789084897035444973821281345974761182065341053936542538978820284224049296587083842032945555427276681023286628763524306042131606560424543300170213450829617962420393730581991026493768333069971400297385923493108684158886474940441022564632830209690084162412406977177957229398593474883565270843523840979540545571352686941365590862433995567818236620717764813603390595051902744842379494650217510064490927531909164292012732497931480375933728695063406304646133169646671649758392103797522039062599980774803819283867356010913005090647744717969911627949930593733511126965212592280413009903813400207815279414354969396056320708034141243947492955828756614044281604367361493043736444693451535428630215968367660739661158620605788305272092020581378794567680528088573521532604009012553332996090905849546905162510289081663920309385533907847270708637215066632310726273380605634974176757040538092560063096381974238779649624682754941055148636810254907672941300376047406287044331714503733483191712522365302108655018246690756937653388614261967152131740927777563015861617081386219475288167193043426121369031758543415692115136124626469756438946649623583633573998352665928427052081139405374459033965924664783912966510862289374824527368996337448684487894766341562421296595170254389274289511603057789177844347172157879179840923773996112787109345775647732257042311572815075944916333987945017424030530782489915266995236571531789208228462274681961669676104518092241493938460883121640571304831351987888064582822829745605074405543106280139233728431856287505462642713087006851072045364112506881866599439669209041845774705741368476442996121438983579104066014919981593643785587014928760361922421033936146975814446751625196947045230107937204123311499776267601787308411324978875044547828193114668249518265428480424090381839608757557934742243651614666400767336960258970771003683168081203712772011115629798274749817373940743939290083599919175154680218376619518181627365041518729640179479308783696517945847771393156860297172553728045783942429395450469792072084851425712177270324836732540731710044401213759705549528493703572650242379921935960295365977471008656877978068767259330404028495628263794348868262732622937532441161278108154539063144760960800751052701171558567380358466950493844395536983163042877563018064968940065917366394031926034552805094103945556544583913465218521728990406479205069489992903845416548700554681956103305883919314199786472346321612377737121181218313544533747786121322125684809210742603054381333983597876234690739972348595198462439259222108128460340393052801842098633983296962969233867407544481561907605897197916906781026275781299690335180623302036238346490255598925389905851845132057125427209594748974623139484493302921131902899560305820565110988115523306254629958469224857940146082709124338064666462520544652777223602779326865687182629234499351107330081395660053665144023894545802737594352113495284708096908776330503480595971591098995819204314112286693767592924025739733978216039393017793650367164879792294003992299940881191413795591435186075969128987840971530854403000964428760005887570647371811966461969955578370251333371062164564488530434438418413502977338315451155296855384961710975265753776802341843820762811779046802094170062124268617712059005708172273512576817461039454153458849814558776616473022702015063432734709437667218871045599723646727161611529036364790252870874917938026414741193656411483298057011063554518800459467619365719527328340717089332991883096357909220393717083035120625393286893718969564765952489478302215525439402959930722639874656848730495237331603692636701885883839119292336981766443861617978039355089043449664997043525761275690600608364561298656499089998626949806621048768930590343019176607653523721017708442633771841462182145114042101632821977198710866028426675493062165987355452557537066150034505321073337214087273883405120829698483275943162453623844313934035516712574573862867041798953550008906661550050334643606431762989910964045600811485232206024710277068418251347492935155185924264586403012292948770906675309793404963491462940514896703019629811560725603250807166338387824081722255022136724184303845060724963683534054575423522507011579857111479749054905792115918447954183815960552810793868464244713581087626902082356945274569498257269255197687995283776625715561751960924723992303926178001613174783376400111451997371289290958514690539562924999858454650194275696716636973779769526216603664819114219969748440872210779474622882238826883177421322666437788253845215162755843536576472001784125673118214283667650993076026914251107889270345615088884254281782467113937787805110737736134481557394753360546407215723378862770833718461573321009869570245907495212929257085111000939383080754850855411523744036568829602545366769685260996532745072263527511613823200179121709788772555442910870391223736173316991678963746924344369932989801398809411042620146975685545401911144539988007711028914462667813665975352199061046714819593492858786477922912156709315833827151695333094246351846287434526099029428199569375840888604552339194676664773069551095692563732814196837483958986538213798852694535586012471105139138284162316257647188739708104849463975714284934368074575276836560264343052734910694230728566237209700589649261967438286385678755088102240323149304944241717605317764555928782115650693258704454513516972199759370185013790347335532528434912028807364972971219569675454432670161042589121233968560353049790774803874699336266996336727088983720542871305025180441702187754234892795644027837912135428156395821870295502542831984313615551877406186709996523591190732875171889159964827334353097022749830251332108931305344481893734864617399085544618798075376546018220890297601944356821319497895260000482128423339106081503087936422039485662943200715590537678445696945932388590784732494390275483410309556097292898247292684560723905785421323651246009411070721032182442628231817819796626402408534657507877898139907305608036484300162354316180428196852099517938632526221774822106734864614935501587569283986690306156851709337744223900928073233071465887450903802444344485150235937386203020393529145098424083252217197458238713007891987321144360470212342298013553877017047087039694291759798386401682780900048123567187731974823642796645862119324654119367306286828262885210045595899682337546563958568039273280910774647869624439153941988125015453343488591502623322268370780800858279058679302936218226956231928473425115949394701974113679399500306385509825524394051839212175756757207025833353976059700731320220512919233885568226736646641864215962860847117998401103235601758219908200228350508380569422016369668666946759075241503788491264774954030759106602673570862140306147369532083969070056078301018877592561453805651340882101356144992774747790141715873197910023592353228609943314010850253622841915760737553977247885723476499635929191481019506536699508973382940111179084628107171343920181330906944064415250758411470757146389405109044221001921267131389228805780217498329058316390668299109075910640199741445265131946282780834428317475841934006259943634393255737788169809106010140438991818020442622945624192538952301447883491093275791736577409840242896588418931679662627462769214810700213667671909520775620163742762094290920668804956115215821998416524929191032736149475977822284812377540297805950477253749223052033909580539212807269640890579203436642089382815363738448707182762147821687979726239285369172088972725517577656892500622632629291716826228809839307432614720818412374239814521061221667066545494780744724147572493288239552066268165060780416775109073255080666657007397169995675628187488494383967599848256809019936587433768979419673166704929079583817293233693642412949812292443760145249478067133032307256892029090552337388184480578376463877019940250708104593860220373338869049616001272758987776757051738568111119952790114742972160317286354005410792651398436004811324401340743814601055737286109604428420913568697701285123224645136304398068172597102600971026048998823670964149557708772832286080988357245892888788686480630735188046661988819194111756013460558400579896460657366426142073281987256229375878274663157476103959413563601627490389095515645844334690884661427668489351318630174036693025547098811119826213172403495716064290709091456702505172639194033603704114377085422511996766538746419652041560025036448784383315136426850221947571841158833961204220223574711219720829952725507852915219607097504546898597303839615146477184191045175675976728257923574077301070064367772713157683053190658714841567172143715007246781788298929615373750921435156997380781851546360044756794894810643926786623335905590632251661762261464447237317939390667111874260445943892037447434558493925898781369611752659029518260037824303107828475603820152336230442144915371776243102530129301300183102938939260429252979596353150184850392091410358802707728282175240423424299630554566563160734063683640877438060991222680189244105230674561493336630380124737031741166560827912416588109629212570966461197897237174417590171562892545084524895541441819808179215028782496799198178395610101100358638293178233360961801022561861897899653216573656784766022829979611505523473474948675580142917409947644054471261835439064486070616903180527248258801869366946589744520122960615617412850689206796884773625821711033625507994350949819572205578393216377151834064372496149362463936059954113095450212866774682678077534554407670294902564520316681441055332161239453585616614639528518015702227105109042191177865113485425748032607975953290249229938592732252357952648120740665232845473632681882008190418128604631879616512217911435949306482020803946678630895483867649392140176563696380404793753787816910617615012926083375719302007160801015372127562347969301224766367987353965579381840173057828148711295358549660160912408188947226906273588491981652748776143958236792145525939346943885233660150435952109383658010122300486440985656867116398628759913354123864630646497232846748150352276302297978893181914608043199954389804818739943007196326622388618390893780424205804204970063704170544355642025957442157134188343194328970409554451539092500173336968040587441597072471298045950813782557207044475960161986879688360942270884460091550318044638210270807857163734934799502311153387502406765607275631143521405454553898631736725013247732593041330240952283438781866416303192674903605781744243658762771349546871850965269836359504710056005300866092576080567803269557538111043995279018854307876875785959483336713840654225882995275532235970438012740581801488910963793712790014567822911495445522359204268907090633476325850954035890417584269947228615211379972455391824438385448058277795492313575413417581761805080690035566635538633500453366672957030214753699581818419081550038049194488333867732672310211823856467274990008309881642579234496314599062673902683771419881864540153862437044127380107827205431275762160388481046250336607413040243641051722725571167416309736270734889987098361268121940537795845083990847769733238317411630689817465713410280574408856123113092322309583665813045176601610469120489673618533916781245658429610027786427775786437315777741924873915975547425626640360036166582789012921541010112196870776498818517174301467645913575327336772606469662172082955013797012313420941283968307326371907673203501559789597517231405738488626202153655869543081629560442721259148766462567856655379490823844246879390048667437677474224452290369938861559763240294777844099991184723595622796053291901269174535255650957992815951125918650955880664444008739004328765407302896956887963453977147747477591225597887588791012440399475540002261506776106250309900118911291028732655128307911773997159864852373534085885614926430464527885631428181016865279161120430759683619570675251109948931663707746286706896729060922062206485186803619434015209020445729742419217734592408427751943501518206139112794486315134186462124976895238814462971764754185856961741016369584216132951934977790804564168800299062186364746669684948880323989856239576770415721865748599417583484600761141454693985893505156535202133431353629173074115261537485174456801474117677353007178172587219096499421095238683730226570883185650238994741361968483880866140908841599763146127583333880269659692200441687316273950674649608094810906004492237577068376879465313478879135602164765670437650695996919161744798595854844717563670875333108953664411022825881178076262389964637104560833555871483493662674751048919288695834217036440020273942400421511949225864198905302827082315318674712748722948713500665697294672885045712426832579057000788331861293826417685927079370389511441010798083426407018339352322366971205718756144547300911848976398682210783657212817412016572918373857898341356372397952940031276692778305374381172877074119909870949274567167637506891390009954297348766790203674045750507904432381674263757875886742029909277491851209669617576022666609097420084928497602864821901079049710810293710506527941001930963240039190580893524784286146111445262943833438469842119429824283620044048190904487476128985183488292997030183718527651414604099000280318959855446549975398182079301600095051731713320253495473718242410185115594140608036212940228416151357886653802005568268433221708424360795390896730159685985437122118146237118506769147462400893005919327636899638494063536986074481618673607477360184814328382965851019915419468246293885182729203689976905217080520436037645862713062513695401590515320067045221911998381282539177034687057964353274090020459683295921195876345743442456390155259357305224547780289871430623654377212691613039376212170300724317776527771256045966537226959469116672035608202012995053470746736222822528763103616902576318679946256712133737883290256971053013448010717607521183465910415294065596459353297366681408405504649229008411649207192799235801234875719927035771001842238399735033222681364696146442657629440428557057407587908455270494661841777091421112333660282325140036202567085728003273438422770216940058147076684708262464005618476051508444121522290193859219611776533076562270292376942109054240261634019725900740653902002194437548958922126028585557682702319761697057332060045851188185353111230328513473374257776611265477286752800122439031821471932631226178315740512592957087488531530369903138033549772494460479578092573804798822337449218797029642340160411478194832844750171442630576783833945783142807137042939094747677410533253935453364282576607501213555815300650974718659763822424498895387490399724933801623620379119896290166588112879862528458944145130945707726512753197486890290009621915339409323615500359665320210185151912097522411209461472586777982576013465275059600691214584954817102986239845520607071103748683720496080240787656816218344410991833851929596765722036329390605995873208324447714128969397454301644712061688158686379807622643546161544837477645447638333139979720295959927422283410014768729909552396244112745441580757422476027480953682529520000201188914667508812556907293915466695186296965052334911375765387217011984717167321454540832443341256490017042883864751367582022702293392094443151849713950106376783606216170213744443591046873323697164935377142196208670673585601431073925974642333211628934512322340033930386766351528365705001668920900552768503584032813965862894307023760412489808567509109134551352684236866964855320509655999941893079717819047395709596910224847389491670399837947586351263487932967951508791576086874603308622495648666360755388996965764675275639765529345017526771715076439480134717614977490578393914131522981081904429048396920826361513225368103103161350165740925067634187901222261807951973359435255729050069648676278696623097923239826227051190916781485517863480620715583203991418681912833162713128204378702741425028383634039806352773554187834202487764971779713753782147986803079834493131844424575965538974857470262965889955631204814495024143259977442704551005606030842802432464944113733634776755646423171969841565982107147104391565609009562230418305802044525602304904239413381421302401393409614097749990533695752129744280980361337959192216968100593574629199167636282434100134946685325191846197594180664093911217703975992464436601865785073534583331271936396197121334615886555311668630184222906763372408621356678186763196888506886407872000822006470913054150807324909580933811247167356054505724736444062887724394574348632017608606504245254823106628722475878015303189579354332402925547574778534969330094180584426070509743136218615797487779271224926040703894717447568128917754048061058917064117797639461010630961136355313426984245522754162395010761921049780705786440075299043346765752012002137700438985767188242392660948667392398023662989761566028421490595329824383481869337158053056176198020715751013101909511550285384615838475347193402047892303844685930155282665000421777539436078636569444478185702757728410081738642540153266712864259309355971222933319712927942923419183688061689951954591638743093301790583238365857272282013534576179750074341832496434296267861348030996936313563848846632846403602580290822270834354076803039410107734850001267531675403163022918426798330131750520250315936272002500246254037007350336670894135394244876369261606239940840030123494476508642414204786561382762864485537211856077305126039715624730770534496199258834501263990635734873448311417635812177505241930402597979022471597371503753532148044979471981709350511731269069957689404862294913234635918179041280000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
74000! 1546341938951456751072539165460155825408671962194428671451726680966591666110746072487896684795542710285137305588705539547252204842126561731594794438659242692126505096835767849129758599831546419921241506506637250511984046723310642916663350094850927801752718648156429094594671321269499270545775923220037259790621400368508351366029226219952453240654481520392532779929106351878911020863096172099485611090340358972055523200388630714340072646534925036183656766614591583328187261527182676668989999943293493963152388019911652089225268436632548614424605924759070523784813945063576911981240500672908060840974339394144859296083472287156919935150551495100803843004886625889487337396692818481802612550324773447534823181102086411864504908704000545059959958496730839627985590275346853999815214323769786578848808187401912735677081755654108594767603473597969132597046788769122464107180141003405232131611727543183056686645636943433197879151992239916219593660574213930308480238614929017353844480994035316052793195430438016958808724970704180581552264941773967622679026562601192001790331885354577199915541943014674767564165872295317048044445109950671516901861208495844899201326141477185897232213079288826589411299714916313252462942488225622324827599473159685083700899355092667924615792889531908470842149096690183198152670919042891729604834185115009136275859713154417372419314852987267417195749257095504282318996616985874639218991304108802824913259127933200706048877812501848350374446498579263640959666937675473531143318896792362432515070304899581954815005763289371255540037117917352515841911751444001227465630198535178392838793353836530114138083897332349308851253161336527991324676440035750334579995381508243200404735848590739784711279709500273100493673798887440205763226693577343961432138383406357533689696945499633482377062561407803164376900859958254086016375720631454600417190448252322218964770987147388228898767051572272790454444692581934521780426525894805411124841299861527569084052500356738631628723960674825192528193716639802064088264453282378227507685016715950801712287642032473715760831830976641267241593431930806742369908443787564884222309229852425005902154193836271488221117481944102093265970362671126765624670850597064347307488340359002825600293684301230104252878923696268073320805582397590440581947033167162642629037021675553868141962118657085644872374726231288598979890500105551901591665274784732869087890766595712216491845339776399117476363278303676031838744990545136485130879737134749268906187736087447207112976865302838343052195444677449544201598296743674045099509496422690602231557298805640870784094158372372736696559591632983053180315063499596375079970582471868011013431866766959221577525062093941165118157683306288410372310225923589132521180027710167604429750799958594399837719194714430797993759848748879332879063997128189043070546242369690849993191436359663464465952565824188059059370715433289977868035722907158460361318449186991939734052777354071639340805424924061413286130007896829895318474722935188295656627887393744557078053471608754940347730510612452067828740557152666887026267361494620470922251784178995276872447085535286559413894016609136324584713470128306886479202111850412855781008851983057229036783383062386702015248551457016338213237086711491831502530396247698052134287318869798474708326509183333465036294830418202902298034700292796126448857050692129409592324310319764005692076704470240558074018722037805785265112702231911775029926503455375145531744473375503113944506084162934103175565529410415790525615622351298145969873072345637342111529618140063679343234462810888107761415781831473896159859881087252422525632995611697634103718222129283475448500256227795612645057648421831814642964479535644283593159436474092801794935990370953031385473583157456176445458112863153546968447796083820059173620583523057044873578170644779873379872124926640258430529948697433216926351085715333644616236156999112838219405226800612668698947351319283785613605245690455957913753083179146566618276622530104434006685826925142311142920285629726226063324522168423999642114574759913987500936787461737131622651330515479435310533935339864838410960799605501181645442657478269165503988167305179263416807759069279773201661835605366840779562079552846363657969917670127740091235552239290393721276644621648236063214696423142272681465308984423213862335313518285223477367900681422103353144726966143051966847747195945379622508143831829062704126905230913108104060660872991290961445610474799410341407253054899931950625025872499228783232977751911766585055698575959783478340260080438888992390752514191375204037059341146012103449430577108096482350800676439340417927340196434687724418428920471549017387498850784102651632040796882702945934017334617774330762300800629727148454027519035120023920288185814587213945240274420529284216609986533651727208126399118018576507510572125541973462310028974896561421645283935106169584907790430594068688644776250646864707258016372981755179321681785728303383394095354573156140185201834366244438865935687499328122973759831477617194149978935944708737175979204783601171905984728031690284700298371236458154667742765477670460637012799005206588672405874764752721319419075916370064562725642150220296431989669448526957493944823776729110500915133761079633583054469473550075992412767539399481527175405904545499114828893873710151691290548979316712825809506048754704234477702860107104302878925675054000354228580688682260211588192504255566467041642057964189692246625501176484372438907176615729141953609697171785532469512768844139867224491136403623332799525762698633205923505489756582396613225260324201246189584906720344839968282243413792949832971105443643002706050124328316207503890163614094971590867715033817120040495081622734480216047286418037097198419939256449297510004486141143334737977555219545230240980585452565401156288585341468793197937507542281555847961349062645240319558557619807832970444721902623376627729923817447304563002984156802793777741179792539970477562704172315502329811058869625272059847276992379660506429045664730839570901413582608983570732686222685377699766709857116308107889607190734973355942448293450193646992841296720008982129465630059506842128676354133962254531283736369251649592988604710515449888166190297849606678705202907137299405872727435118814704828216064549909031593781491971187063999905134746163501591477496169452948263665009658235899601341141742135684687069520421313261424308079014217686364162917665270357087068833096855701841843608711817011004017102268531786301765556266208342968817266515148078768292972529866451149619946081896908905147877839370744383101008562932605480980451557570096049856969465178246954028663659669856030617608245293207683188434696669022593372108053061422598741126199525043567273951533703005829938073362791047235824938263627800572291450444998902284194846945432662468681462496601452722122480567130094972445499876623557877412885784210015722065620358836928030075124598081494082678254395708951234224201991444819885201129805635580777531693342191312868370774373154326679462815121208367366416173102033560701924081342769898217615522624922768409913468810780566622437920226014471903077573040678090141087526609656483204216359755068650932825680990703218014986690892935648139188435939776504642230945754260772968185796316899380441463207364248462346687498601360380864485612213041625396876860241773288268997944891771358510592418299621407712113816965430854054348100793725289154660915062410621912720863031235973642829867504322314111014790185849446709426213149186775212461943298221263783508201561938296403478425519199375020796638014516739402187411276160295788989320055487485335529876496008490938044363415867470345635860788001506490743107075999360059477414028039766678640003001137528700872129968390476737139999386052494667732554338063002407813884285531133685288990223052669379669988618614146327098359065012487141077055711508428066868582376679889535902579183738937879899355754016819582073351343200697868448348342824202130636607778196437354283589851051632073250027923262574032091276044384171595486923397398427704329848167141522975462912103244677126393785837211830655589007216097797891182771366724361099543589180842863674173581199746276308002221038470486061339539585624680676651132049563923903863646334186587474438456416246118214867173993612101073043719479413468219668318564628831074505334635980898781703977414297284510941761198778614587912366407638415535101115981921315802180434362461715553571389716081113818214741387606178106270622122309150887445772179881715142261788136046654638520915850343629822059617061695325728902031852818170855464972576410274938146582155497610381181287687806358404694804574803334610763755319518541775747642372208198737137853208132338513363926461308175954110824634524424232482568102463495050281068134219662342631862749771218733859125165146838386435397959784880759618420225550725063077615670151331402168399382216760912987304549760616453460593612260839543695107641912663853005230992887523910346767319065901306721369191636401824929972735985552419283974812617699023306268040881205239210882213982145287384880979876094219575299145492990451116644432721316727490099431081914901246564097897202942959944628710575189060429276892319485241805472266697254767766716850434489366451688478321161335649863685882157820024169911053785460732088217328613194558174537962202298417495252995917020715494861211103540594522819063408224407980527666322675348344841500826277132303481383358612853482496167655454329984387801152921164638862373880691007893434938913471416510705409806132076218156335612483732205966483410116167986158960464605325981350005468908161973890350560468680420193973308307195342082554863207421611603987925164989157339767798172543136140437704229256985197428471337408505684028862289186788113993708287790272003699409849580252119027870074866666498426354464455435881891605039022971660549248887439006755024133720896650274213073140660188813178207779452878752686434579647324935119571659781585690168033579742254715041997549383727329874615551670943898129292854693448558519908928075371235447871365460811357041737680227185103512050689015046975529670679068781154652032575518629955816794175098597999893543983861255164534386227272796149285823923246761922210366756597025001647998658985883731831982424999146019390045334033941467730225054094566345202447754512201760172941735730975995465744945851336345380828981077484875920989024605704785988069803879213831176514726766055221817396349950302049303816263769413557512655300858594280558760805626996644498568425920615755788265849300636955483409584792092728610059015334124242506169349631361685519053713571714550840546549668785921988985311747246135379697462074322195797639836877315430648378035134740823550596753317245173251499284484338598314477792178617703225042382931359415927790154047558478556303511392035099804895902756702144624273374405191760791456360524664224169385643329245412375162165433387184437626988409296230434828640796719414730314517759088117744205330172072289331376571994653860920417388416672404545372169179710365581996033023404805221198237268372206473127680502023589293463201088543474575868709429188335290872905487836307371247032195662156692792620781634981212890255766294270627247728970122688705064993855959788936099675261626556345414950484976046756600987141658926354702688953911324384621475587040814647019573807602521754947817908575858832143863064998955272242072516775842137587922518135111582033332690920593734979914591354826269300836434587902477838717572890114090057100596085603477991989799705670658793505209770146606073223109186043243371430490852664481929136105686583418823456706321235311614251012153447749123185012311491056624355174146076747181358817050226878346982792744600265529779727482675402365438060696211155987809552071922940526366572792450636941579016152369213594388134989754713563708615836206298835009920067138508070180226192239346680657516390217352038046510967800421801554074724018823756542671171002147120641599582132470485211932079175004890664091903010384009289017881549929680568242607944738874585002159411517158844816568973617423936834809373446740033740889481138692114268061330420314582680826854097903448117068463357398788352114679570436774661538431257775907505139880152892661048560241157267927937846431772250736038074347034954292276758249482440965627572114489790434493972717217325618006504114361895184302137777372226095698828837181894403667420583878139120940854831379802610718828351184376989391112557897468642340178911373038254014967230164485069065233198050090942428557198530112172471098071099283637328054072094277575333947710919868468926461350657601304777380911295996655567302966024488816986094797683313629430524958732238957147501450097340618610189399593427466401825642941343015619290691249481379415384002025172263863839037706701931337794915065706162570200875164913979595464526609889814828194470125686204635991434125535668208494782042711029550767616569600205635312415890516123234719390679552876775019348445611811998776213021353014847695980228785319655808293960634402775665019945663896311932816410010906890128861732819081183215348815706629499231449640345187205311098957626026916449406440189389613522716777758175669038332630872876580369707317325927314015089977753749785521747399889815837524971512404937646097014322622046166550953699423039318706726907267508547649454196018507983666142692951943994332691168704557934383698781699189249827099620052254976153551389560484635167970207316758733791548155647108352839031275244403726218430625041961311292362036009681813855019145695833324796529864665741562469253941831128122351290790174747988955881506305992394971874847528510496749638823759583207078202861527058468689317001254133277132722841392415513634181790047613269422577108090486991948993683670663259771356708940532286843899511741839808722801303870439984505260772115673106494355328771205809838968089720656881994375023424601013187378669292122902391225253763854928813091242080511564058326382917586678856554244540184466548488701486200978232816731407705743126488907194866052864754273978898022519554561159058444485186558222378823978049055185309696984051791864471821414183186855514256073942884789920167777988647848162061992752780129648591884231828276256121030969630347349865551958159015388096209214049677282460570663366591766063164896630508075636086208063638950294607765832955591771406741197697148020263097723802804503749054396483868200621254026628425000840684248377020141748397316030197374716247827327460577335635684207073803942552387002464665828481442344063048144354351113476191715820404313407083733915587034137186448440913498481480003150900003452838292107435450022827436031559534491472754669704541319591481382478518221878209883202093976986627014168700315241075633201810995733617669079221394162506081786294551373213250105372572616854472758945471991934524739897520322015448582323035506337389570860390855467290899956269226225945698762221291499415281304126891343285467543835846177131484848502967114644494665877012663707559736978462948093524166498909593778836814668536258952790849047267481270478183678141999297359756022068767806065154530129909532273876477099032247612453794823761647464513102060273824856523000912558589213912549943653860106862151407458895887713742530851261007892856633102763302937267458822354246042025075141281811634569616330998920481619254767531865374570290531378816470383544398915189835409827567668824078817904990462362101316937919309582333165723542098013356994514311321026644092959100850658179565028248611091374155919529470686965705602492059239284568718141496580662214979754957678551813818399464311096717186223326083311993178732330366340560319544221013527384385506260181995260836953485005731599052207810931730477391462259256446973245176832513688279957803906067343401921234233138837343949271185666999373198237942552090822533582827611979438910130474756589021019079466472480829527291207085924986847824183261777415993971751469898033293748840339799465300243669043532905201977718401786506583419652783929835881939485293885399029810049037385435873914145361486767472414706597586580216408725746838668257586819056245132977139468399890386315377938236919392925144692884080099969171546106358024745133312299905306138492298845900918494870111659128290690578624739731675636414522088268173683115235225874599729282415637107198774881488533988335388516357938969486214634921038592054487283529024424308463644510956518308425307072755854479328494634369078560065299236832726069867561910419559153413400819776357690450232769695208346210782802478731721445954094592557778369703081219389719494143364904607538783033474504413183681287052745616357451500692657364163404789709886797337041851822409076235727459615724315703910681246710477809093500946279742415165854148956357601844160016067809556720081043998766608998504616046389413347573880560965186374883771909642076289976159294969765413158224674459363860247902159031627726267369880136335941442708456867699878823555600869237936358457200698653225218571998755135388068293525752265534453671845075122188778230094764569936464008442853383772566303246455718358749725838209663683283894514561372886972583285227504490804072593501029851950009891183792687424822771738002517301709594186856211164907991484941757431391137984623616129531648083983827765451223826420636577189141402476399040670491921239400268355767609536237579590686142334023483643662390138710907857232342897331600447104218992638747422985670390402486786575698318085783963094330748687281001567083388277675378449898801906353587473456238429922057392021886032090904241874274533423183339605980464512284243290698572687937124556187215843736863277361569831794046943459183227605408839867860471885971007701310860924093169807987150682115915450657243879020281554615768629728335079822389460871005622878931524590433924779100625129531256130219861970864713778678659253414955079095659309471998308269800011074187335188343304946301094915360209767405466537521472011091224297890279416496906762782798832089885100435154406999694637577499333350715848373500314541348497099131956445117056841952600092933108426870899968911080174412452708317858442806629627642321884158329826748655667588161663278048033008493086568801032303274060748263597786148157073970117579950417765877793698156232384964158142857087745643127059014716779004169250738581445680964551968794560645841859588218037750997517658347746688648612519774575171560658011013380027373560786869663362940110002060535439199496531339179194400383319392159866032127448323410128644221650767269089869023313266900094862039666462336694304892599636052654811118171022518258081600737583327178406390313839697914656663426624772838050490263696412867986311904075753471394741309222267576952022467677234630270099081301691230122162655881494682797526288388488924326070295958418313486593274162017619215888528800047654322334132730684758268733140642808254463466264195999362375732049903336309771109241481167503928151925800802665521675079279005449054640498409864970477616913528762245867233312580405885545148998680974117859181552161881761096766555318193608550339351950747348118376643047967362224760446945343152859640246777608923175040289117110834322752463808963897179572943738375341296700089765905347137156930473948467230912384048333011386826062873480181088991895727831890198467508738853363416079876462817673756568809570188913228529544949750489863831967330457017207414470064362113802564023375601580702186821586639904017551148054268666482808226710346861223285830410231877322523856318509510745577261193283161287587275623298100854627940561595540387834403696180356413938887201991994579130953558761640876776909667616128357017344563494260743506390898091103166102421934638942794154411887289924971752911061878808008519147629286585054382704162139473655689248927178663114098107594852708950514210978705314282150331112226671689290031306301671393511345138899342209806732066389530809838422972365504036098396217745365680000991126788706213507042830124562254240858129736749379233020539466464586226443525193651686252561579673759476827249396910163269115269780025117994385504660316930235772610517426054929423888198206630206912445802346606150156940806196234261375545817632503686652288431950109674498912045966352167743096668226949524091392723277042784323491929166770805820012832086524068827404624092707269810340779275975349760187919924349857848806217355510339333716475408662709100031408382192464116235338325471567743896745403208158763400913703099537207027674083575953846922950155250549639061457224390699152155920501528802455016693176585705807851687889748231196844084562594430773875356000889262251554419706164912417949559731473295943393688923863666273382222702581034602704302854510486695655480552763936538454536501938186090877478518368674699172117771841505973160566280215933306015176402110982354129223906783013374556456682688374811765544520628819381257000293471347118456115465389724666042131896085409657732433915088692013515798214998391006576703150012225503200964132964984287039641654201924752027123419773837961975832713958758841087065695894307372744214321893934988693786194182525341488199033414055488050801892582927816983918006207474076675910445575111456783369600950446084054560194404314006804690285232835561827117864585079209092824131708073312373838666018545426670245825690112955292248118799915143132070954989501405002031761517846527145646385531642055178481368702313954801964196818530404276693870111535389345203403595560487935781424161555380008855470035483219663262905187742087794703049624892075524028176521510104695285470176794963721721193554732896553828308243246623946874558464339832703861684395202965941789657627922733140387726410684408069901196993426752568172014097699213173537754685684245810932331482872887325407674912629819744636397953918507244773631526121782623469038788209791528484935078473201496543210993519320815863030086307546236058425982709860147082974039674497401543111927638794486701019864730879086135431587845587889305724959530571335554191789726528328159118738881354960109890205920690635167544676402085083747054325716539039335262349659484904372563005067984890473724831560128451430277220460859420003752080044584094016504508767742006874104504350379486457962279613923199808798322381636035867066834662178392779684941321668087424059972001301258297681412339509658851000210736252719220852169295802704927921488642133090622260667452616824360786524106416216218987141868400655541821155194447513867370559528280583353288939207003125611873412439978526528560813728237458847263448965781272787272977087850654383687388425581390324484686637293679399120313930358313056506562397243189555118709022234219010086660827486458247054479261469406187286809152262761983352787605343364029700624704913747371225986336301694066042137459621663917330489732894099057217168486302566643120900388560475028543566106776459236519769830105705279725724686486121533385178684868650055283854764021081282198090097976732793122338885049306729141867098935723582560526835867853125302712406201786855070941724280807665979115445455485406314068394926055282761900260639107328520403473371799761587927054512585943192382694666683259799257932491360573285744310603136491984757155465811062746498373694923310411714620442623217622621750317119264295180563555339665946694218039431820023694259040324639408934803497695883610494328729819627744908586369127101580219923197419335021575612520004734483997471625246133550239796392992271365834280978047581637824907723281091489228257884327895457476689385667506784253559762961561165363873287807383014344639884882677892197383268744540296636076544570690076547621789775412728635930827779784012447168191537414287808774183866576771263983084651319784424566067669152449582087263625963161343467247612295924596546151297490077525794760600069975390276679866394496921941296667528491187226063770162919006512573834742283690888059075530312943813136233144354846674562135374608540983852058436708936302012230397291499038090328001912213685068771397741601416077600787860604618801380805061213435406050717337263736029743678992866437179115770823688259743404583436516114942696231988510507158756832681423373616463908153006934479719010245836450945455202454736399621763983499439141012202309028088424719231546736657096465325478772230031841426340630307113604620299451265838574147808972830862053879580520456685251338498337234671452136146046427946946174579593592960930747055436676984750193557875943400064019598195336650376938659487178831367351514221582395443025905434332295589566821238733789464789880338512815944963269322523400729243323231763645090713125572399101113494167484760264805676378688640025789233977358733045042023063334210570045175154653458958251605590100511997784479348489122368379519929059703611373407032411685888195808268844777150920973878478719192148197720096525393693345003451380461861560806623846439276698606966595191905956148715316763389146911600886288256431023674825017369593790487906782882302105635760299849636726843982874455785617636754775822367537143057592933017827035493303268521235109413868795671612871555385764411008656326764588126800327214693303852288262811856960992160056867316115278239694355433542856853856930263591960915657431286518601534125400061315483068234116857208869159928510057869550211710475882256922729383468954218905721394423459927964867659686688819302462771270997737417047511779834990083941529775876676342583741431119260774030559899380427605221997891693411320528596991372247043302909972643055358438162307997399004642127882861633024804560242741900597121665125685818179596969410031050508793846247506083788181570473501266473776556995549685192960235968793461094583051396313172734229019576124581625774821918380258844272547938868017844634640740022570535146889583250611366371278589740467285240723416440049722570528497630552436147016668868053679499416637810388933925707257824305491392630477582151244108372788826557634965946620065343408742133980715198240699514977636873734686737033740593566063245180768440690377583640836306514237593260196599295227154058474343042695101796718706791733395112985537807554181108447923132251364845300379292168866813980333913620583260461237097080327895010532253343438900675556140607596045726238071386097293656768950565482146376099076052565930014056530867022622467031921866142762234590596181680507414784241162517964584424032455283307853541595092165680460058948500916032312623548655827920610778382069745972139210598324451591907295862734140556138523792521084734874958437889164638660060075893343734172433372618476672250915259526865674163296062439417255890856532718324186083089691172890782700985136982489338797380602414636756379242440154742565484033051080053986351343519909304425732767324288526081361540379741635802019751851642076382922942650130329910763700944923241601073557754533973481110215330646003544937888586803351188461739247362133879790260508824134597565959433952716215863794285676303830129458848174990175693766305126700453379842946196859994164537368786184969334577423202882805548277032825713313316871554016085085828801532264494613380963861426676019673424877186374899010284186455063851686091670470158065910616049516171961190415072718952976438066827624859876549340093747543694997356669600505490845706227445795351302972894288130951086742199871225359821798510337492350275827931054872234388652629122947581159428126909424125098716837607491085227023103966276814431111100649027611201006286477948114770330762069952292331447829450620474657803985104520802260833363692302705501374056858237682832237221727476009301823612926322118996864720138672596709850267743794125298506369853515253935196955372772087076055881258366654096763359118374545194844617485065339371824372801007620549634726087257081395442149709514122268270635438964325677365328694615030101493876938079803310619556095207808608727606599107663496296784342821191554508041781237177928487096337196304117234412954586883312929155586024562202143406365529644623559942762650603119465690165443210888379638567465817509472542461904697350487097384353495678322532725415111196613031007139636709567403370327493014930495384742965610875164785507664897748889667314812003076247932024377917146618118529272722953002138626651434738038907343563672929892348428131771015366433213799471917170908089241985126431006953672425662903183817765513098945761723713606938867862097380111429586236639573166063490637448871515527486977767353005736336302686506940892458776457773338064481471605852646554188224290536378059352306585591327000100859735492311721979458585459813993808331156419249719126680517664015656563349096280098273130218661529124104814138583899338573155929401035388067575007522243290780215558030709880345379674960172507509507274328928201104132286794450296453182183236550781186271629417346123290478268280992408936486266946355493342338321997771900366031328562691934714836077058578873579294235505986531399891925288918729187762997535078983470558789098818731946845110999580488490126966081430065070502625381242440321370495075678452436287714507901058148045853671814248793180625442501833244070042068854126972523359295779875457857546306498164780459774793024373741176031194047426289069924592991344446432199013085988269831319096017319498736644878900124981810495231741116547578800557373076053421676070084710914209517398726958376554683796650496902985680247480588504382180688232382642682929138512233506676281169126989875314341469219745598834680271467353024025987419559387920164163331146651363493323519617631852335698366135329194538568589539209339988529257394840207057661579411383601825944330743163445699342469059139257258622888302933914560741626998853723873173054252480663156147200664002891681630477036056086550704182061343346515618215849525924723457376000747176383760863969502623431356316388999874735298006149919703004590948398620021638597590488165621462436397034584231726371007198456614875074906807627680427251815741148534610394001350868515432853638689865254144834832554354753552069169814550972762198469019791263627989250749583139705029668668259386301368832483666515891621810321939339964307481640986685762869299567312563387777892122714932787959505668563569887840730414091408466822280208916057400488837596304469325748476977427298160946394093529711638383116082842368123987705239803817582857614939675166246847558216037941379845670407090608208069336418113205526721417778189051066677845164930630753676918049411680978400701481687018856573503271574505208774146127082884077435786717834438417135219588518628302323252420722658051181913024428006687971309710377805954903147360476535721680179347923591938465668237434592570016109558807516500426896894565711301228956252963923808897855307677664572376524822002778556967185062879172590086005031892513714511965330276202280529633868980748080956994852571579141793581175335170889102540635493458320891059260256288249511170033057261499474860298326401627370280477675067852307698156891563776357564487466997950639489531664980029395440303510332551426656655876994061605026440289922125821631113260880609429217143090855816429513444660987945775653580281230768250506499998466057867438613747599494006409294269133776848667257976749586299059903458953484344026893495889609814465458282574787460253955801538206565018236395170072099601081938046120705074995414768348706173460640999458328089610387888888340948454766895124465804699286759573240711358722620291849182712916632587859861200941758911367072938848137392083779286490685073797689802498101907468547899312436039843069207194543992009419108093002501312700400215436993541308670259860069023051881262186089213538053607771019424821676887213792885043839524944148210166567884154846855633825907915537763873020087483384750117089893999412748399144008180794593025840957590779570172659839320984753671281981509508139995360386981146949723041521562537345492624604933110679277264347063651949538146618017685152629526661122119469654659416532608804884329071130955213604344698723595238073664502342551814763870268905887344192193609440318354684662285553597869144227403545226390316846177806570295447161995340588145172977955124910273785846168677499348489127522974999984253814968361341551090637214741811400515270627379015615966536698854173641144716398144275642300354590299083094584627603353694742603538842786601653108336256913043773538320542419008723890423026301093732811091535634420841645985942020504642284178350102067515473372319093472298442631435536465983365027678799431002876245655319196093042316444087824169178604895805769622203407137834918529296473040047803249307345967980559656630221452162404999880749530556057984792337211977621011793272304478414940709123088213312656636056857581830368887347551748836313703225322958886756083785873551073817937380423306085267480146492955696264120341125566244155352153730426008786581668798881883958378873593539726944481971962060095783171557895288300316185963547482615627681104880844441467975165782045299124370812739852529291833469753377054790902169698566966378834202844199468071780215149310376534954725480307806443262748245785611715498144784661743580809055791095155609972422895376907906127404170345586632762064901526021134754228653179356590872990259826013508897426313594138026792894133576165422928880062779687407780014382679431208998606374994869306405518965510112933975116257441340239164429621455629205196008841571346509904477482503926190645588340227929015991619403698706903447441187826211937003412145492021609963155637565286070576991598151119833035333766273343324071386575912555430744845489937192498380441396225319891519846294420961786220404273201498002276268357410270929184377052378471187094314642879482577854938970170487477870330146404111820868841978167185827811944421041782433387296608958372598549585593384684362532592965668158901706934271559656191354537370184353746877871552133568953645930043800274119872711462081953230995915318243501146173524086964963127768225739212099181293338683129178869679550926200983868062392968310644229734197185666706652007323763393905844640174062872101516900091496120771324052316535627725088153802912893957717814792970667496729103630999585118250678579116830564634995791214314170716273377034010585311533767253820310827996315746773435268472815478010068426789423759991194957295470658279546775837528370745216829253609492777028787510570772357134728966510590284129930290001003714701533378710534526653028955966220345703986388457855995449722720613957640357188749007872613380757547797302610284836693149471067384055781226734808074789259735499859228820692876499634468344260333003604896010726759566636526240050644392836153258971433959642839109932386018532357928585202949233440327879924256419606186031112379602045567310994688461175072489031166886314669567958062768508610874211967325381888332838960631955527998550286060604941186153754561375019109605476444162887476504070801712392766462670683275419847604348664107669693388479965485559664943053175190666474483595309628135832245569035892749246057506211457411357150839371552760394270753911542216878216373438519865054869320972987108915913473538600003461433563265170491553125512428183015424826470705036809223658238151887214520147181340013871514637908689586036733711970086855319522844603549832993650067457455181829052238752296947909439171485845292556925828306336200246518258778577801634197084773547120133649356373245330345473514778338485572780202970336841408983096477760305551231437572098359057826844154735592654959738085356923545102430230118211119476163241355830509116755167116433162513256732884800910928591573837348842916178619544524465096869548876461973957251177230449169112520226507643444351706682724049179461664046625446169593018389106653478961860493488580200657323271162623136605859014686171682481626454768930600965398808128853273357232286610461767218107071061559136145965873451054448399138658580883114150821910230285783717567818291821346625209843887487041070385451414773660131934951210445100820672889311972086605443337786311200986654455575202752457682338796942005755848539936218919126712488872152117699947187586159196882286083332360496927488145288810279730295256756291492228990459249603578339741168249383017416568069089969053308686519718682362175951122549964797526660274651161025861294334900537718270869426386441280654486504472263729777875877020707555662570731747950787608971629171780686254227998628430798341364034228052037560889654742547084875437696548947402697305905989292222764275422071152413192911618329649292653422385481020395575156867330614885452495224733598889777763603174202596611628221223893002525947083708033751041715982554008486965729341547887599449709537531845266963984081161061587683920767099102418647227261837538674556312265172189395227159014100368221526254720780137139214709922386232625380415973233564102065916175388465894844870687167175466496169969314288699884996126992701599479173769797276614963351096530621383251753140751815006539826502458668824837908838578702096797906670300098652191418140755031739026978707819604318171895902019160225457726430348990399494210174178223342672198096259991828852590194643339989673941913695702804912913031824551388284307980597979112290552628014880040753998332713408055124137618508501138062154089398040544736671756029759352367717355067698123773060127697376485743258150252948043895505385586357496703515826899547937723528552960591907995045260008097094375796557924247051547807317604638677322979681657725134138038190746614894868131651146907171021737989145870964764278641446702171352475242294552457115624301266548237266832474276696302601034191670721635841210192742076397153048963630049513785180612564852072881693943666815055602379342142354700671918945460784157287616361463295399248777013748155978459846517373805521582429955367335558170816228401921833380686248818431967289383871601343292741314879762229527847219006864923817107333164584350712696384148694051616848599831417026555707570102860426523362375185546439385482088176452737645943335562841473094121674734353342643697389919417604605198876024231338005432568059506329108367001254586712326316486025502921419676655602371452730977495282431649758871956086220826226839476962103854233547882337844516395470175001163077366223583200880295016705102276635447130102781305512326636233487816926597061856097145389759015826765211676454597083869509350668332527426343531696717207974330419391596654287974439914021051034591681573495174967720764624861564160410289607033138798560323572838384651351868029713292611170130575126618383962161049730334927474464994204612493238699155969311019037957956306551495262922498215244071979576134492775037947560962922167135632578255966432742655947639661983969677023675072414176799892297637279055051520169112762918770459420160261090502142216350315758228084075430000222254302765866885261237613508548948610633542008361909420169251814670054632622084406990540186165421411712413504087138954087395816041468088589943265117610044505414108695509109214986117594379147801449047257292931474363816851289536020119566012911817772010078610741450487060035032503008844049865148225247852292254619264868038396220487855469927582116739608767887333185171619959111559957297324653223013047433752118225551264190572818603470442563592301930253941325165970511364732718375428871430993780932452247814794524076584149981266273918135092761252141604084003914332658269591585074892262936032796403378897956180420144566161767932075651755600546102916054305642892777056320226358141780814848428464551593017489230940370663988807041438289028183391439776936067995767585619716295641085741451716272328597295734523570109043265757296245356018097808550131539002340859186033517105069631534583068053594527076502609937037843068487089106252883624755546349879215153957965126608795434133361826843763959843686583938241837726415995845269301571552997722299047963975533824736810251347783438673019563989641202100931460114789542589881490617736353129090173567952671358966331027202623429044765344097707904706956857660439335214949302096065111022547124430753841408203251546329059276675503602853499825665425741394477585363638864086022526957181477840254765631751280943538178449748138266618001228587195367429685197320202283228674658470083877745528803816446827456087666603561636740276749938528789134475015321613964595739053107685327220833240522425312173731769688239743950079389724640762797384985235382466002204822003588227102905879510463399020470323235779021234840069705956101833835417649771059651023608445245758546254846344949999997438636345879449284146798843834696061000013740495328248370533909637459546751029416701255038534134113469782863528353756925980717112189435369014712874715026798390876193735306936027219529354248391791242694163225528485439374372096999659390874682443310683787844863140745501616186620998741077901096363201584451141320665889981878625180187068610619225704201386146319227706281547871982991267464562214275423716194496270229017295054592037753983105741668157239469368596547118479565654531242140199849060039105099061488685932693860487555852577536175601038814159298768477877260428042735925974486194069294633982900297799547725147128365141963834427759392921052767505090456394873155933893589072293262404993119819225535355998634809691863090243252356992782941149408385643637938908437786003231641117550292093404462461763133666512340626339388824029123891900030867505133652430397910522783629548903075156592579346967930304656047196325648947748631573856090504024167482024957626062594487682520288880648765984644358457138102216309982978663537123874170376777021893452942833212196886818796537838451836286928077393972563447512736955357071259857189173640681924704932114734823044179457666475570468205000824718122770042361727411276229792795761967716469501872235676052012099663452930036141874119883209619834237472812602675467648688054426300904769467288144607869647548567064968523041706517220114137263491021949860582551219677507794287758124005417202672507665239947377060703469020770868379754869935882957549704482963924604248348711394496090598069065046835433361871179521427685820475690494947264820914156262965875936057321042864980788477219438039838595676708177890909950924366926831640966193355626976244390612019595208077828752190818231348286071973801246640055090349957113384463888799500155229481472555846876819512482023033058718969164987864111168837093404605954186446969770159539318067712073306916620055879041681583685696084290102672600261707101581725494864365076203236748864638251687307173146005611905779782942343430921844253248722741564328884712772655360478822682100940347532342761243969198443139346520171966091362822684141093205914731734307371040035228110443597601471877291130810543844399650983669671729484130521054814256713952482884190169196712221264614412337988469202116609311261847570128776622006379252603998558266146916790847377984007630109469017494259358155758565672811146169875981427280555789394120882586930108651601390007160451267470158387567933743972760445020474562324260315265455097853867742008307183243099934657485516771684081607035123137706903265445329372302647515587888779460539535984747709988525357964705256648749135364236276939751839771283475780322172345686562303419173732872079382243012060133899933836242054406982800156106953909421603072860901834652517522185367943793894959546745098482822508870443143161151666773540514122126234182711372650304918731474491625801076030109530116391417539678755475443600671706233509293360226499066440958474041241170313414657059326280709430370155268245757006428726438605212171541016967560146588373861157229674249694584897263373705060420865561856009825823559169809044462504343873048702971587763635914501685544137883471459891767316333263773034781226146957103737461082687750877662171373336708478541319958578354844530119349959949558128994313605914363434303219480870463086007514679111425134416534202822674411440174101299050054565683455504044767261632849807373284118158114331869319547764815783464433058591140799367888798436968845193053738705374493513061113911080011234320700212885380400841540556170189575841506713310840107429490071854628261853376654943953165935643660264291584571434215965783344222219042797594887039395190398467913327023521799964294904466568875168559187775444909222382473217854024069809393783850108301171242028411764589655972197818584924222701798640140836452154941740206520340337822387448614208962690218386790726086280653309914265680188175511470502691329425707965376665979045841918480075483530486836746277204126875520551353583389585354685562117984112952030652523410494668661519036011550773726779333712817073193853209959572154080076751789295929516777722598608496360715358854632752813545061603481151146590625541517701264760247646861595398108083470641807214165147712597465894538350653863643656292128686076917898086648544623849279992733630950689854532106841891874426574821198471059740164477144180241945726487938950779384739079557794110802294758629499060803679672621159611856629400421850437712692136498748405681755482747121431934415568449322884848043703175237885778417149459309548181302132318883601153291343488341560085423706043240158694518387318170691995226202301402170877019135689820256910963112171672752346852253877341869935936607460499362980196551530370419904187577059586045190207000662430965085317290354939296198556488939522499005132944314990140143789605304423440928670467373048069652453829632240962711998322337319520485605575520360278888936586744584240088246708503755207440081967171614813834331227301420019736756648875960803978874125799224079995447954861853195869920487661126699093369045358246353636002842281133182334036447507069193277117890504276767289028672276933489701786425700676412231981763455359073254360991287487626910653969145102937027588381342338450724806597436954312049820540077895625602965975287385556806631814114680093955017844374240721304399076301395375771689396426471871825495767674691394960273368544430122606813770250552513968456302099097232502813700426139492232831970251801403360961916654093336507718191580538135139405902514779271261950081582385566177369555524417021172677271357381242700510862418687135282053485351464349562634438174843113384817756407153250659379819252382759646612180021647343941686481229551045679569374933419950676032222546986225905786154482862440691960476300055605168705271286173411364037047122218056656990262976330565096106199816856053091845573859445891810831236580192136532260631470106254141868771902630252767870875628474678459499518193765742652813301816957469986018342751531177544724985538265506583262715997467490488477880557990779023863171406609303700573433699265303730435468568437202040961421509017750334374459728989486398515354407171255684069960267163893665227709155148197105388852120034506646104220269546697905540213652969038032233780777501013627343864431657716870747625039743203232797062069374066468229345087378961653472462572039908463665654541299489596092930987234714501505436214358683371834564992917132517649191168320578971159415272615549300434776615184548166092647745867468816141708344176093468479378147700303793089720452173520978891283667287254767591422085179880917241757585641018544440242911717055752152286387772593235079207781721656872838454254860533705188666519335553242829784647961451306569854129809756539912616378391906960622848789509020668300268207930353832761572303907339153248851500727684651586010851201991844337380990358290381360663353972486099263080977899986666272278122327976650593102320247099483407329790663576078015942429683010809354152820569006705202644143661167425793162650385178739930215010843296368352299415760112269972606969055347591193726135127441710761353483613920837386005156636810074928673630567419145744534206702707186530679450248107570361569844690355093077584959639832400639563127732867660791942132644966055317868081710884723918556602419514877973657408411294781514105778354702892508839672949982069455047842773101788602375422354117181780779142432398322925461923138706974679496985756233886802001186945404177649035825163691257180910925118389450509545979846957813450113943798505965961699808992870225871390318306329735033544039867227564229397640060080824084572202759397893303391011175417340811768037857851586694760988099801911228257707746344613373408131168421283551679538345567969573775696576181942757707927583697543362832846357386584156615342843413328043099053135899631700795453255347711261374724302392334673872668131042460808228132628434478089513816806775639997053727336387594687824889114047685951838565333058302856590482371758229845783664140444475737650301159157945063603562823742763875402663881256136376869525256226221064030261378778443831022511968175988578341197344390042006904287168368771868360139683308935360991744796196608739006778054641311279635657307468118423492156344736219535019767387608483801646006237478569362051011492438075553824200760409099759419389110742976254170223473956130053258273276320624561777888563860728869838437527379106369004052078686522952064538953561702072928279069601484315724465274043734020920439166034182760842245220470734227829182687224668795803847713775863841383596224716816336437281283642154331033601696625198936621038426122155917802352402761111767996681824555843085714899872513008398414616961420157236980573373320113197113296511272917199921447329200876325553450946655224356026368271476822575836192858016817453943456104221968850184876397950311894273413806166344573479233133031801387881782680114884683396506566271887741223210490067764350506529448628761346667155381478597745761908453612900200634557168074582570875584438673742902523971003875319221319761557172374954419825863855403823923364591075711515960988666227438564738159547161498241928611453117609865345164424502241289231831002645401987017162416733821846899334384322248537386098234393373298442708553373911009804369473048693350857305839638684423865379116706027279437391874392575657722197011926165853341030107082377634863797569587943761569098205797229359241081073056091427129497562834382486273026241963669688953623888529024211574162976576013140520327018122809372678515983039198734068319780382551597520398529385273662825029163435391259159932518180542556500851989367142374759591238371054565179618641377336688062171815312613355647362446942440648205434972157953290657635827044728131935478223774069604315073946531626299547819008276298586065481858209165228063781774250790535687507796205862978375359426754391965026802207740456536233909622084116233794500402555711201849857529122748782254595083870965430304560675021537887635248788002411699583854208128993878001571188268768705555662068293552727222390856327107906815387080487138388133118757126538959938464014922891670340956735829846221656417538009767606790794857572157194736719888637002376110170581859589127443958135303358712863708830673253971259577657681614538607288840696246447156601417301884004463073697818333929814258934811458312705961386043510665915039342306706172366675757601089100535368988758935644701006929386847997008006059449185188419537571937630131356226121759268929994986929207212176927408297843953069425406971564312353597608618000933594095509448699251707613296177628375211592304685392709103381755059848682541388231564452983146308114452591581219724962507544933067686790711407111072402589487848974753967880805298042593371906751170637656233941442467798915140817780342003995781678378367877805042453014319401840261391428764776011682517842235914847713312132185350551329570561441034931027063194741634111588103530989977122471305946465389452676237784702327019387633259914309179253172473459543234883391470230835613246443152456578310346453488549601549615671724719639698195382043055996548114477715649059476081128345650677449761048775231695956918672263101702405709850447061727333135663900437240372208059014223488270378001456342188737698474492926558703076829601065657426968669510570714636326859494871456455836426689776670930926396291843027056389933032186045092773992738239844466433823237532918255765698328808140404595157978098825501059899879867362068203364362736202987368274411446398137058816683666308125622829788661128575943627311764024993879799622000224908876179371447389170838319689632747235134783367127891420975671347797190216224791068524033610755920569384593915399920477859417140392505309992412977977831201436377803752624726742109472511702333967935915087687290963857027935965527894529063045162170334214123598216397587228968226410461062520845150535158995822343883834261368755828600254408980325982105025895134073561879611171415507173444253894660637373221515397526374890843813513413553185249268827296318227827290032140208849213678987496431536071071342409855215039323649420892929504858116295921834875648768944090750698149865018939073238904487630156386498483401479665292348261230720311719294773193209643790706675035731513825654159936111237382560724105918222405304054725957475982770157625921136276614302901772687963654032509361179726582200835487856212469227405824899731606917832580537897558549139373290104220292752777162398554238690581351025804724804758023419021347479908640872331830530307856619381713118569936697150952604713412965739642632025974671385215129315673133961660221484089441391581598317676560315532135221578397542040103854763251362942567025753157555344313756738214553504020423810960298733076835645810176521244129210044505000531628988111793244755938463674506689932250053758390720866393308867683574649469277459794010732185940405524252879528215693219354097707741161126923263161512186273701114110122808558983951886137374586862587737955615962915722212457444962391578574004542375820739195163580891630345427398776653263231049418310406589412663606418707455253892286265703001771019888652742828934387087057242718987405963483452171988478476202369271640668059685767319416639549346406915559503149172872300135515282081470178808605186369145769039293030491902126872014784994279605894079715352339534877262528488429703462023787804621823769362347617699091037013207819620137642634731921571037279352055764261514435227296951150697183147111291537070249914969327565323620278043746100030609445100190123414488341701775939114963526575143061869000324365735890251261460744647037047209012926707986983488108353709122830351553984609716702463909921851661342710200746975720455851754589659780795656839868733007050743333845514986066180979442631625932535795388349340911381524202644650541306437057041960635833694574113239172974517424032040218464892474472534914407734374181802184612105398451785425710013592135975718417533405626217624284840219014496784898967486608390510105889571653541131438449596574790953705615633015371912372618695196552251131586802966228830028470591313371347844161452449832156695888391365547092773690523984393855495011961780618800640000347303335024911236553251054921943949599764963077310048395647291580796224602226630228677583954089569742053401593243265278397372573430145381749426487119055125914924443412421039018261572208079757370357839104575409611348040995541306359693268456256943253275427483381168851693625538204222200009612548487889214937076073107760151488677376444480968188873264487330149796244556392679318705947602702763367851415380725621992429346532130205358605335153129250103654581054730945714522616744547809643278035550175937636248922059252117289245397076643615671852425073693648633387954631329635748185878230011850160186314951680608488759089630042240184542514158637345841393909381709838266281284315110505152228554445458642426640679120061717991875384952244645456753995045033681866437435721835879038876279947515251801124151727795624385906126389945320155083039086096041201017861792997527760563749243282651651778190450952470639774261826128988559029448870120136943680988970148038135201484476472751128689928621808149654700701332090547622751113714903194305567185912989022283750741497127144614481970214041573046532654268492209360260392456697871160595072044927281678517697631676771992352911689731839389368518280884090737472180304666205805645704538786916818074673515637332828150679185939293188118903857095536916677372008678756578141590416550891872472398198624855193177813893678206970491240214351268261933489246467683643218781793605543404481288690350140260602169257008060091738768546547490761844549582963532015402304988279492125161855209813065358590158307453712253098679139400745070364811110785403242257155425361340351056525444320302440747092465354418133205883366540994658242893287471644987077685484876683831679685278898243247108040243665412034110401270419047151884407586449082307632204856141984185738484984306059086857125719426930570998198407736562304574560680707256503504535480289659393292072195569706318355083281576659210839219223586773554010330983399331502728844427717291103187572488340268111248275893713489986743954492429815820737686966876948218522395959725723481146788655788106382693586375693130621001181927392089218847279073202399572063331218728327819703216196063641356492953585607391673857199377014040219645503631771503057698146122718953921389723442549281897715807168332647067751817332388864740034533855518933516408757758972153890396098642318189346477289753370486399535954750166283049676528343973027086306971297499772493027961370061608990341865739734319009278723455758448596375607287745275493591603119646184329934196953963665819480309642673238132733044930068263715693452281919135793724052458081025978845568472954702703970061769935344711586913631196756618550070478932621442508698585469925996016245605973760665104595648375654916837013277077333191025027486762909181160325092207309395958110232847244011235018570859777689477134348394635011025020415481352646827297497078404895234888505541156297033231041840794358704237773413221178865929298783340608914357969344099539624989081605195944885526841188080208392008668326709270292300791099917696554917433500666392011587414188547002877504874862710235931652671525592744349082146075568723731323347035115756153362448024669139746862946127909456942461972505082039386477264842694423474299816682116079775350674543825694448630440715559375367739575329495191292733533372875457616964465660970293864892857364870350180108663224260863429705859404301930847638808727522027400984683709692025127582705753180039687514875150586602908820938008889879836439715150466684533498519035038908382629462697071593830716547633348208259553241081019883957912750559682745756088540343213579314866795889553607473452855355333405349256236215459276043235278288865293539755331515187152152558570174298856220864820917138296261440384635671506906072474704601783174295714792022209629897782226097797073967078161431415544808441585336856246663176729094020686636768948767202491550314933943087385530547608023433954293386306028484798519839620419146726730529852490782850151671096347303251946190275908359765321041624158554824958017740959620624758652187089132263772892335205658582583380562925934201435022353995597855883687762324219085330204628754689006749122307879789899104759608384753878084014208642779290443081928239697423491823384233880820024867872303602213287827004815435743313463407535955056541525778986143695273308797417738111157896582463365365856384809434897534315220476627012936318514991734450671815664608298070354226040596516197689758433349395379785526381042053033513829125783182208703245614287795600000350750707868737583752859864582273872656289482156446384934215769013305522619110008637172401209107696903711591559299206373772524693938331282030687854709427000413923281980351225911849355872492471371485331726370855678487485433541071798695335570275186130404925631342856424315194842895675410800882043353594358769796035763561939794328894053125051162197217117569517589720208114431011713175682545036218243609084809904456451278885287505578659543276831077368737949843167465381122792580934599038154733361997492052236678951227862362645759517768768460575109039646884613501767607572089638488026282963805890490857789841305844065533404964627638638206729254279290466918928401462438161595335408175460360083932612851438315061679128841965164563778062112916326886454670287702661392471506634195263008162531981271548676889643202948103699013995687955042773545074707288983202869621066578048467459641491640922471962715792123313744522204714041867534093099963069368984763441770326865291754267885553928502179785256110850504537637478621577746301995814898595921240036910437757297675073833040391419483075923587479067183761852685135761624851076590299747488641084028366139577713146623476986599560302217285438773075550692886086351326960576917591106068941459441987546660807021628671835628118110785569281541106411548016939254457577636922620048326009796835095904585943805052970356463335800694842830350961049625710784794749576482154753149273867478884587576760234810310282628517376444866518615679853668662849853236248000941291241597340551691098333739620062541298108211444861972193832146090470181677054069121690917344060786150817768015916211998942289063636908732208292261822400348035624551582566398457252480329921477051747325861584295026569362711394511064637655088707889073224435738293011664808408551305274960045387724133636694582147114400847180305199187096253832600193960632626955698129930345403000594790046655876364273216262395565076510878673653638648717410060502114834475088262450111474318415117760786178210052585007549194003038966552424867076131500348606898336951374675744239582195675288951087356053439344860153124500918051899461650706812051606363188720759884306841475969486788672320585685815973760632947229045644860331996525698013724262416182687820932637736660678328069039865102821359008971042074632051916595004002643933531094149097598910861139776819500903654148642021056959910645793659606200402863369547090927867159006856689047622465359490120286878874248245002633487834606913085132609384123532461285621661550168025817667684495326221478334114028362926998684714046205573961480313931705017644153997495304320626312934749336468159427499530004329896085811212498353250989474651196489517507929298466034288438021771089843505215429746618923299590272896967460478317773036392587496538409933101965381465267615178877334896317370646123744199422786160133042472479170820511674592811523639245082900371680174214658749580407138680116426847691257312174396127741355357038292894019477503975020682200998424738278998516561513308931518033007483996350924646848842372723343322059456754477970113226121856013303158560169276370595914144872066409756966330942364309719048222154802251302644760381737724345281236611925769063917149967019452474358693755338232457532548288898656058912949434923977023789024689139647622310793248064879022545727607486544354686609427277375560792598125919364510116407295157850490391603123574306802698449189790403660508811153936650719577782012041831528308327003946715994335442950987750199613544582530514561541430584569967094192224734144057020238817175700697733756616423548826193155903404864108291599553320417897506984591907326431986735009581028810814853985440569190496889007100651569892511575503872096479527117730744902277288118950526025997428751276627592327610926829062550740643746012336412907970747854512604154818953699701356498354885144135717948379113341992703349734902768859253993205926457880147946361779124895829893991600751839435008760408138363089737852967930529477049958038011999440291497581071415039674910739200144411526172742664061406325859999252991014193327333701048435269850730124533882169933661236831250522743429136508632094222474005750612798004543960912142599224248584088894987170494152959661489897797537522277767022795210265189129146288434741108586314272495971236980774584537844263732527145878018693665603606700796384177705089326431145371005863128978581262008701052054884665787298245309653524020414280861365122479467229258984949338541511188493808413210715250229936883431038663042063143154082418719951003919708730252076356981149065472116845209648933393606663496831176215633948778554262676871357699382690572565971625522331048352923925317192581003470943651178256016869903692172942625980394858039730348888402297817414479644097254489567325486245015028504943915317565924416053557497707767136738769699156738538014689004082270851265777993031448783078291834852147802571234048421859163803543272387720683571808117865935892728535843631682685254094402632566659561815362194190219378401963615128516150270910517125017730549031760240975898994720246791538854849664283788160672413796683824557048072681623759363559732431460024270647536493403235075517184943608190093418470366602741020305025594825742274546635204221936936079318862130520970964242546077693907436409290232680265090100599550459980813242729090206385343543703723303054119783199624647563021334452549090411876563701207903206501923048660835280280534466862302306329059970189554892106044182940053671664341586482498487393385124328725143375885995547585729491237233978224799195249770941038001376965644398698377757821733935839022773998118251283180715777841404302462049712765681794455651905683072897234160301341578053378235668350398934699427360832367522476398125337081901074592125885391893515750578403602259120700168329984560331391847011050152802802094856582502953354118537200203386687642566760758471208674353826514374178256906046676110814346128510841088501839152488548960189785526589452007874230876721398118806890676256210351092809555260894410065688115284066255042929229897129602048283257162709218886586795729790810008072394125189766728269401043002664522858361711522155060369115289062422579081406377234976636328950384395946733530693817740561294506369956864958674202381900873530594921417917931461257160707416623430750951052154979614777013735268944814006410396805734760094345510164135300608192846888309268793358490333730875986491976285972079233959343060083649918440143050785566937437922766083821163800055344697916287416024108938209936691511226313217522085673791101625787017568666306928373200706991283771764528785367797101326970604714561405859433297812520982354656425069555141164532763268354643927752643268510614733930387694389021618610597580718761719927137149488726199523156399580207646980678156973837579162302360822960960203903667253490394090298295179568738051329487233775999736708413728694158985175678961225128694320035899240754192027776588533802394624496963716866032104537773846678120154885473935290322131854502908809070675515388912466281682842936737594975408539381603048576906935663337309674087112489402378016674607659278440697316763169515349987253242383179879943412004905668565784542747854552883183143057046859104333401023429935203618029217333667053764460687607541177940081512896364303159337561614954436471482044901923625215507416044536700914259073549032589635461199618423799553256669293350111531609879368929897792004562311750758038243442292654927942328025810067035252686758576390402146958498460306550344042313584082173531274094891084420583659183172376151626267258784912608150804646587510161321567114603674745008499787432468808448881798895416178218439091848258348537929405897442947128243645485672387029408677532243343386731262243386426181817883551391997814496241093062478689424235712595507715067808736289598842854830828959458601778842941327326560051252190035650627628504203204657975809373938095466497329314968245385123860191897909730502204152914458449108744315795387208010354605051909876365808946181757492468860737348643219114498112509433116515359741317392100631387473523941568400872672840715144173337462135148614887614450067670878153088736968834063222281564488252043997285572706478503688637305332800769188754725604436539481693242644671670292912160664801152595699628496287482953554044378365703028696015941186370489965729077857327712498620598247298251109905092327898042681103403178907080755603093192206655653853034227115416486714422906594019773850018180483944873721195338223506828846609898513698257258558001983849401605181912561844603621168803272165466113939216084600918669275729133400486514570579089133106278753411975916942450055810115154205975552894577091307536029182180559029872717467126828575348339524653839720344593600362589980231029085105774366530065188764960496990334542384615609795246952708719151614424749117570796187293750232845924948841459735951470481766962876923932816459933634378949153495367298387445325976825255699037845050703823523449943728005857261294135541269487314459712862392915199869419414605734693645380171596616619884138968169375485833324309379022422708635478421075861326798411497238931868526047482438618947961278939241541375584460231637174104894497543712097838622201276728383506982062679913051526270792617444095678810469612946844768252071518253711098242128680211101862153443783917808946404520973259900390390526105528982034085120153873833147604660541533700902064718031831153341940336083693943545957083212268609442076688709253851331305287632489038656459351527269279370391823473483006574966593239872259088066811357457412530779834136056115655184739324642805489599245452882444528050695843962056770161324662634465013387924976916579757085788847133097350405747027186905538828950081384202444541288237546831042610001712816893032585919072864332290006302669266749339220422469565843346641825778507146007945662581153962336303279795430103561306350687503381231087346982307287363083101454262001850353794830611982918052919920609266379520580857471705281961266995516815514498706100456944196842767028873114254444695356222662965888716862072380677720872415700811510208895045965498123040083917030612031049019581326796842965643614649558985730460170477108004266499738192221135716496399777373523083680008079370423937303222868808598410286599637530969547554455348131779850005186031679146954049070520460648992829333692348080888885722739121501413704425611440334066120872397187276168613560554494570798905167928804622584745469903858832002683655504091394205330298446334279929402880380087591021928647328728433040330969648921506397387376855219712917922343651298820144438247482621850794439242875570309970448916049147559597740536514098054710493455217114378432975277689668903376763068513734188462680322910348106194044414619570944166822961292716433698190300492605210350894060604252335350206805163327784626068456663191539905808716351485501798332365934346717896648694935979403864352205802384524629590844369318826104155614032364770185547250150150240149479795624997347545925394289356157892476322509727724732680887886346041236466699466792248632210985058605948527797446064400773701756496868858355155121756218023256299115107103221957188072029521969904351705124716799955415819251851596185313089699628211896295089277776248163282740825771942531489765559914786332046079576708052298651009913889469946231743287046306550179836554277130273876925719226619564228830534961005892895802927982051805766137628891073632896359261334633496955288066390431021505752243564707069366722415990368818563708381819120030338366030111117310003695977934261997242440778896812502945664584003129373756370430051552505321363334573373223861275791514615954366930511192286392936032605346471113592582516285404554115757744628537847763350035352307056478661676023405221635458349752794089920445589517511490206418053807911277281403192700023677021257036007777106204800594324113210461199245398983065572597008320292437954910909816029676878614646306812644448835135619614238251079344186424136403409421405319730500312553137967232678346309967290094175719241535914951387911801086132415237755626989255714683009238401934454880080104200355005368989822525662381109175530546028252865167235325820928396118727453017730822310670871495067474663155479294597177314458057264035452152678637480445797002699681775393143523308374526487132047159597637974199458171308374226876428429035618074050196474073130058472072753141609684522978586346759176095191166706058418138161292512661273590986288454508291073842191933772641285824354371937338370528218796595779174764948523319734424028991634034186142218499690003682884608720067343752508339239995181374170938866371325122723776560389727749568411675146537318662294794196352186857952559543746500746939285578657928201671739058989335708588716938121578127276332429496070497010352099314230300375739954812029258480639260891294296626850884925205447673210857794273987509497119222468741279484211058973211511998342912935584811537930935730534159768739431378345019076418147251149403925631235954057183302449542815303247609218279662830048299128500083604980393794552190435285993177756241936166892600358123604715624557096819177800512151528987903138602152273759825346060519124574645864515887856781017934541260131879914451469051244672038116055923131129951870405616446911210312381252547060948067029390760302536614926130631625884195237183265399114429342591348552789634464782979244791984609164810891315490369544760563802341785618327416971964068122213196457354794479898904718832387226613508017998377826874470742751055621306277048761617427697759694517143793119553385646549820820876907856794977066483632591967569379234245021932393472409214251008776013131515187349367027736331457573533538033761935035999257652566907630369805616639036113408070441746998096058271884992408301004782386273914192811663028975087807397231739266495925259908140667107135785784329722389325755139309178368641247091517524929267426910269668258279987755633932520413881896550089479827702580739284995360597072482890388673984519990932829498139818156458094061526671958218335027366651870491764625930788832684393070575098413109178706037746653023136738435423755216507738916979226559986215866938810214302936378343514739074718747494437258044188245234692977996924754266426678715276260159766539848223089152732353061152233266634221720480642870514686394336932096369592318984428315692487425280555603220466380123464998486486182757937122689828936570185455178766605254446525143153075931660698315202017488903204759203366519468665629515108548397178515493198689339817138053141599752885842126247295342026861810355290068368091351636082481748604270438971497244938403564893983001300643822266813985999793505689318366330289023868249685986784025054852070510350369280617963737279892018963768022991526680010009157352676294645122991488517428133752589150707583276142997200606370771546317464539274594417501165732210798418947378583787291157119700859145320305724593107176286925084355692739508282719832495750233563466151205461476655782494241261331224339371928201237500357402977610663694652547659874778568419857035409791315688794628226827003688979084568030560147023063039364543032484989224385811625448194526530789041625657551197811386154557197994521556039056844142460352234874476357297201249783988006419634954259753342256942090149634550467340675741360912353947217809872120709672123313426116165313071656213267307295929620243802496490831989784029274392948376789112239922487556813418636747775852076895098001081026722677831899451766092755332162825902180126009570699039416434055245760665097571917155754420780571875196728077697402705004837777028076556231007302697494608228911492500103306582161594883505289169755630393787680877277440394887400270930234121858916751422056848658812694091007032274491113078592043215589882584123558290120804288281812162832498123772726033435386341580985435060668590663656194167127761435422466870057228957213563584822678355361023145924157425086999707091311155592606464179090180756687788540179886360698954487522535388742339886978255209375789725812696602007629559380955056635703520634379377878012474672731820644505977663033057727016112929412493992550874852774309843965573718163087611109311897902024351875354886625112217941028059958618293397543267753807979738869156463200580315749908426258714346385764093339436889821020211867461325915588568075397062223234228906206934001133160917449417008140643446918530863892647406852570576725956307651515287018957919745629550926501197424487952803320215689153976480846971178069646295600690054633631810580486475879089228159994671986524783109463508992980412914970273454519276423763867086635400601528697358657880234948434618201478157051295536407689158996463879811261567829084845368322442085867987285375283146215976905048845752758071678308372864956486484152603810870949927837604867581138444923599290959832109501495497953760375124265193022850225085715311916523260044203761104152511710737827754569526624805698808161753041521501637120048509671701975606228585890555627547725950408625054575103387142436402047794467185582349382933049265430479499673812768511499653777154321142983498549962687246137462624694188373781004957725941729885086489685252150783690147018118823551750105996231353803588992468306833977699048114181689572436882687562811087116939906043872196199014327192489909222634511026817443486198344203287499533657548683709904042816202488991905501612046945216899648898620508783187563567305420490990551771526775917432503072490484259323967956980213581531981000481689257090568834876725584400003239275030006551964852806211282889799816510635285883443619714686687529141737318417622436254348566366710145056568794689685174382236643220739800406667256814502095360671960855098329302935907986342232899988488961248654005493060829288319310672411981851128120606675060705959280165082952289930889997001642942751617411461360328774936969727250213820471676935343245772264408099302355462821939988444079143793057666609978767245240585114589508672463620482014114814219165038381541638313911079724246624697140844109263160538532707414653559065952852165874162769444563099874293423734625751387980299732479970948048473180450564865392327669691832079875928153851351089290825026850242474294880217711638244953375856767428285441171835879073329923035714892434456521678395909406103945986218066614348967899136377988064353038949762239406853740405570721850657708154541338719768601170501364173464859210897855127608499539318426538527485085444598384598264956217294206058418819781734383656231608621163972137824996900549393048873879889532517949137826869854963078216351495770543328872594743614589765516005394404218310726628821426197354847153215131705292827989632722743696294867168990072203467916291966769480912989355682037246313740678041944064680765080390856374498033088321297476206334818886520999456700656054773885653011755871317107215771374102440049347101482801178990793071467773063753366714542445619813033872017880052518240168890623016901461766395023849713730302095632706200465489968177920008953943703954782471195251964195156218848699469314137621027482497158357858553613244407782568393142490917090795905621194142028542771844704851125518209403827133686661488722582053672416545038896877926889165788158668079247388009403127928404938551950424536584567950576502320762355212090673399529798681102940934733288359141690947723704118771700185793637001751579669617543862275677839216329440549991652182114326587923078513685634938306406427598456249556879684027971118295852968486204121857831540635714795792616623707116725617932729144934593772661763419678710973955518688561334370479436222781537448270298811241895168707283887561763192731806093450680824557046954878281090492071471458053311994226844048052109601155034741903149659896587353774884636124354278966824710095339588712636249404131225333209290609051581456761561920647049309214003825843025344579462326008895896158156424306129105660324245709548317561942821956713179649340130067579376503517885540510214756333871453031619767314615373445453794645385120447414568526278087879803663425207191877555262803423220360662747149134692647219845018620686899056399480651960019263723621136292386897051766447223600209448892383518528421328953310393660105715669641525611505661715342318512601567365143549456784402570846425271486638831250805121415762765390468299056911111494844462618909196207083004564140056281815946307303310017022251597536980761801857671710325044544365075497594592798824043125108656483235232936865251624427417675874408515430029513120184265761517778829798125846125191794705661499201490100528861686607847535042114404037207584219816887732842927803556293107951583729944908037029113650922596019392803811008855022115295704560119382857221714908122187579087889750382768499547019104281104425059961056503162809651156125298903505447907748363179088552893505076088845438776358073051200493665123003579517556440956337374953379189204048780936469892970382527264862170838826852250523013480190548980106010405526985886768243936983044828373289593725289155195919894742776141638375765295098779230315180772204592265553109200636050609589855591902621706666907080595752690014466324922152132282686289396458747873033037071111564346243685795371079066825495134101397550426703046317263200502673914480246136248444200173690779553318257665801950681387417413409802378043794124901974060466247918592736798303620857519723594909736284232596810154652719652696134134249862564143723892141259762510501337486475885594448375926433154162214094652819941447563157890627424572204240236796513716816444101142893598416052244448972621418684960018164969237430119311213296006599131852720285181423883564623646083323056914906539996852670818220373849813937702347742249870499080614633694940447200281029355670125910568230576249235987001689182128637684079668161927642970853960764452807599652989889226290122378046692835414985763200170033435250061370407144448178614214332860805024067812526656136334219605821169464726016333808399977820820367201747770612853472049717696236598423205918984109894598920537382290075697783374794349427229151882205108553072061273087329357853570668568571187479797534359726640622307318403608382125038510149704783108895099700633527945451914485971189453962605539916103995480954428318569305589465026177271064603177475831452094567863926653863623135770312097197322899328680158010763949025281498661980554687696678517569792304827835119373242406699814582437349319190970048321516528719988648706638058227552814710452963824059538192658638771866370217287898144706611622938891354469834180319940520565942126175946021223534399162721296384900223558660135526936222565941118299388954499883055362730191149402333845383020324643693828878234618396475644482374932870571829230333779701248414766564095732677577633930243804783004508220867857003604098658579519492080557242281186435672894840619534855651621373886458626244731867708405255092510214752136503936356918045728415132549277289801093834628167873334565247881985194919476119145594086601942438180732506848125134152643306426108312125147800289252126911714819053878733662353206063199330281621164761782633570012850734706821233610256988623539284448888755012893592349700696332164490948503495215908587506548520573776620429633853646830933133138781031881599283252568389847293654817816790001739394351225595249077061621686598192794746988423047572585017178675892689107562235218082321862582106683450803602575660355670559098116795266887262628756053407421802011562969958678384440251266493990471027228128424835077977207013958744869478323271093189871549140683303123442210637231607185896887709179531647225698925821886077651528042831212400924168606962983455350343508397487754865110411656845554618024948369812398838296969384950275302432437359018123473405462815782666529938098770844283526137329631252818837407536036206983639807720449517099060442262242750766884704475587257532467657009143082332974756327341686763334647441069525991864684252164593982999532126577022586292646201712349797139213597604657845858527143762501759206068105541732355132198575456088048185460146789263851166753516522595092409078123658888533552146443830145993906136957451461424006371926442499997614905096133195881092655853887681005139555009437006333578893692815921583777290078515009388081224723738544749340581426051666571486996285838126090873376128999906919263041070947743630542985262885086967755191139418519289594858777940299796926425550761847371711856546032283646353034124855208947662415317264444731082132322734497119590459223220254827834738628002673481628420711229214156870883553559779980468722934110003253199068884922160900748256603753341642136366459098890390310407891200673080890158359224035597396532669926282329143361321233898398671782999412669231014877512853774698364928825649495716357007667059770164092907912336486227122863606406008290181198367529969105997039333797741024066886399534409206368921030130519428030332141299225352604836896956898509716826153686937453977182858221996314447983939639752801214205724265110334302173064423591623271097842121647263029744922075749585751521754992465271626517675670265383380187015309006725520733787918646691642892348724599222309416320618946881856313669273038495298360859726183338914138090532528380578263672315090395472801491456358527986854617477683836297937938384804726188186663749130860348281239198374786694590655884213480090811780931611022618700506185788872532271849019790189126703890140515200963522048454224435360109048991688265280593346336099687814221725041350649051527749029054950434336169299102814260837099808714470473752491209948128702757639597269671664147853677970785587704686202447601711046886340573417989488245636028486651302297937811826358374307707333024039072997996491524595599959878233490574465823271616085674819761289931855155939050383986364364932395854077341846949817967031290126831537065709064018925787300568417143070120330742561455582332270445665788212854866109163277255014127140184499617510322878695414604716357071540285843979419991632322338232764249119991464264740693403783910384969558175007662794520251464770787992991507901480245903676781814624399359935448816713766276369966632344218327541481327848531494200204727670918009791845436401480783381958797776805444237408019094790984297936009100189552498387721787128256042605026140484882248172751806162484128471201267140484895932882242122658975740141360254709081789447156817287560847032915122209633266408109271158059994767575640773189470197913133935034062826402153958592081096899907605429352896656001367886795097660614429028328197181869830493424412504140122361376145455986076731508857307293114139587892117004951418493912326460581759228582517801239167664388962514908064173490545731631205673798350701089440235038012750394206744946049689463562145476905370631919871560318542209879794488406371336693989225136298145142751571107913872003322318759725439809812662695611220692686385446725099177344113155336019156493071274200143384774180496384424816510560980762344204594447780989950422961228908499787695157811815278113996232802546270175550651206205835442473304970969420363940611963044914560649448263283892931930866241605758266066066027895573407002868791199343575274748008712150933074046555187094796169826249584651718234622885195225472479184549995468457190332132604952809280084493213494883028360344109053640056402373772952192260695077092677410573067169371453449527426410088879580299099062165994365096757991994013553627833644477685763141630599370608248892725221618546438411071732166975579721613377012348327472446176463880024859265053164208892332266857752709230046699748071961293117520856291848648544230908220966366096686226745756645365634427827982054381293470580813260685885511816514547763270230390871965042470549796941966653711246628595398688998969537178998889186117739940350619991505814916274043849919047884068704996159197592337367650398904558335667378202228137260801961418168006134331256680804949112885726542481662636251946630141899349524822103358754557140292846676933842029957437065974451362163029885331628581618505912961050886067236884371377710721846144464347269841203821491185924894013246272358115244692975509581073981413638290066623209712080463331781642806000777236740789795067734761411317688938750293956471910594120525109514159975120048454128871320966672734725110935297866687395501859870282777180452944612272639903885178344493473533341366757393624656154595548044813399236095883981897082575932771413511254427234033994189416197473593826364230032063045257773002040657567630304037380641014622849248293646681198468179064253577034033460894757759856064609642674281024909645222753701116505714362422565170811481755501872249128403451668973114863629613074528858576800636681395929504112201068055720163912109778548715798145568512063408146160355601803689004482767852648547483384583040838344620731134446447828327486859600053963941763956295105248524962245230674775492329223930055072358801915392562294926707297600781903492090926286354395012136344267071180370091219199151105622518150290914336518703243758656924426149700855326324264571320930707733162054821957147198505218101617624957971771052158096577103507870570891036712585018850890405093692640357986707532327888291607992286525964116031470929045442822744700688074759677309354949741019599455775665940773555769561296383857783147957886640310571952387295591935434300681483007503368069867131812762312304995442252076460538952978758459220378487329612687022235750486583722897214474765183106431407718108339308568439834533189640669289177356842318544720604938366884258602566343152440536724773089498520578232026266140914488272400565864848225826811741657915232749386376199075278356670458428151329467534763562173600302119946965409278185386572060154907326255777077606176349499713531263877485223950943303504131448814393567944048520416668774957114178561317552453076916422463023752697284069461908709247220660319572117789562419231328827658167961580437195800949540893251327844213444216458788812142479133762610998323415213626350650369369120587572727995285610254253257218232572442183173286155489175181820174495205837405910968896231072536505144362489693643784369743314565452894373253495550551039780582225328830594480836605726923164823505367879609995372535629351732586513156123683768418467087137206737319185702308626017590553302022852390531271100401727434221857278891344164327203907232804908151384608292678270221384667621919771678982039860482697926728921295577239840320260992811217825208770624115056473467398367977259746069019509399851681137206008352769287478463736064873024563729331635025235070215682437422914857192886198656456748353891073180876850186080827596687743160787983426566671002383339735932121996667838013506548640618333856085693025534234316501858022050350588021318858752806561406572696997477175775777755411228866121672083051853322855403938932489705080423737040852293700444522107993016115460098593109445608430184461057300523294706258263141584283357917483868452694719811005369341335273287006792074087493810903942999666976097604207492450927736679267480488336690513322923464017126534537731643620184273356488588534919480401159475772578993894267371763063897129989998584273729276305831170981571702182944103165866535861178575051920449319665269450479255183515724324679002512037237402349759111708621441428751504612547310400717794251752742188694662951673516504326795366747972850294454513788484013259984328600223266512811636275096610363856727557862358474097091484412958074227166940879504356147671669231650805278546163809688123749975075756700962107894317172527228672884283968569247943157327745217247326311871716530742677172354761426478010302155159229512779571205894057080795818809131106734955587972191271918974211816941984776664056611963686958707296769541619694624170901944658761914334984167427131709633734469005698155072545035621809897380555247997519899106077695951796123581508165800236929371169903868132501109758550647390590344389037221452143377652906646607133809852498234628889445779460816866569506835331463709627927914888465218757270611123857481464899772315677851601429330991990956678072565533489082047316709970339032995386783126714147473565316772144065807442701389634589495349113584241033923471341278286690443996758416498077011804143139756769395573429738142745202409545421138113073557712559183904539657645554654685143910296376015343445934686396067781691696288524153446037319678274682630545081470474994813514701971735062041482449653093276471369491520354897328015629552780171710039017998308545917480757229007465771959221082560823942581794417392173782282484065580539459988682164530302480658094639322306551536019577893310975013440305784707862239445985911719364546282030824092243759865961452374920532560288975050273514076988162742080275979870105156695390160125266850724331658509504473773945724365087756184575220289107495256616331804582529978596987725224032822551233871132470063918206946569133354798077812191505457988231082302975010432454160306125579957940908788809220192884979682440438275525367755807976226610987624761357765856558603475455536661228254349084818616703165490541782048392947219034537140922231922149405505953358945566348366702990778666897117592966507618422233650960309300435614556165175908238057311438921484639029756652924697223851580729480867054920131091763698679164557325220463370273586292620832018841931600085373469039083576822220207305873548077927663661019485017214563403025357944075647094492535078962626519453466770704517784498488878352863161833591779724030842132801103087215409179673134912089668595944337573506307910240051513775509189485813169314074098603956369784306883020374432892166373051211106252503168335046752784409952127413098231166094749498264495011736189949473763296467710608960208899535954096707256889649705381790448331466223430814055319877635499124022571156360063233013384702358896154935917438084579412586498382079543358143510641831194083858048534781466962635177147385129112511623116850378419276400383657000742528531905725716325164523458439672042681550372349278087168989112893130236040193589159455640952390532760772486363750234114042007325740662843017637784294394125051401330370653125816045016717905535798623335043215479610440252597156344007633566519935650935471257401071265064510542034652092723883504281383958828373775900947152189143170031960294433896034087251927925477197302069777500981115471109682109019159323178411960648345190411048952907442411934376906795721159210101364164464841051168272512180289425639173088056380243004674341202627340589617414825818431965788477774885979100168911707103530215271959816560124203230814828032767767083604712129291081787645624988206970851709476389744383158639247790053581595342581935297885775199536616664258993866649783776675080891069421071254742420633754141977821318548370979991116467855818176444605723302282497950414801431337349500319272317790101429073839654503353846453027243023723380202028262182725817240140480676027717309344522956216438640522609117304414015376994377864361201065524552480700597745247991734545446016346733072134125622351817507711637696459147650525927137580231095490192903996798473828390349209243475695800392513659593431478553455052849975737020243805783538618744728600548947027161599476614739690140942322704848206696726955271774255445942375134378993187400829599552089792264123777419019808520860829290426582292041070916123296045773833416290663183216539355719425242122682755715102070423344962742799636365325664822577506938673817365949775064963544939376473571488722086907343783368062591746495291813908567008648462264515525529678272664161807557906584009729232911775785428735654523109039801914368634874316982356321124999370012722605356442523589332958731007677190766758009088014289575263103073823115097906548057822777704428472408938477324863728074867135682271414716844899564255025429058960074394149027866747244403577161500500841397327164453197516241001534986309583703665639855540196861151668205372903083884326296114957807249210633100140208294439605178020463694917312753832572175371279472180022609720307795786361683901870291703983785705657348468998189263428596694749407562680718901119698656038734114246455156025313915129749752945114844680375186513809452901461431389745177835288330675933185243872106208351252916793873959682750000882932762335474789691429480359304740850478886287623346158264481018358243503442676074588124433955801140004694041769413686488805692537535129815783469691837133879912321143105982116105007587675919233969171294565995239813706304693209318451482102682880676179117559491325524485103217444403590137217979348521120244710248595676855146471391333956260380152809169792763486135197548907544839231037943312746181610896431852789770056495901699289096897580844773253779842115882945888810278746362212043955045942889742696821313207496411693757767077296043333302002487349695843460444462814767719240363410198908642066710641301943993818506577850693843101863890043783565895101687094222962265037460355896964777585981650882936957529624602746181641138762895212460397868393427021197501250330436304975855833370652554375845892706474304000520787884696983535961436063778589968010956399758889857505210998637674806454291247782270148576653455224849083817292033437150533033261044440979583375841340480662969208881739845207328860001122892176072834830123896700201375174688672833868964353775670832768873631970262040484251654819962582664311654161845716076769094325996813666933280515093798931487531270769359351099242526013426275497098146547135462112008489067869197767561624793463221480502795327228410434724230015699914283355261654598283088656257329687472041220717813596905697794552849034401817088875383372536914446054560051109094162605286988194207164095524407893556255225223199132561405426641899992938854790908392518455752312779491646064820741168437028346861180335073069208050385754958739275870651300114282421527743471163549659079120925209445949998009877788782581571418639206880174228302066881638151809974781823712532334609301679309592277541988505866738662964247283380169125603716098943645413383767117390491617807665849576415941991786438398184039290479476019377860493537987656256020414556804809620075379182674371784541856506379361893130895505655780192519288813624020232871603958441106808881601226968309827680070072692789013090768639315881644277370758489582357867183610135734060675990850186452100974481997268076831619522780206250097066655349071304208503125948327628271113351632052635758243629521967774376145123696003486796595271359524933175344307245032375680794489593584005805749606814436678473565743656411691859877044373144087784533534714768822195313390146728843220476838866703548525949117507845132029182360796258478654599803332965513454066858806898624524021141875591821838839908485700030073952654171512775608517915060911074505119690108004569420276154804365116964669025235156744620432680233493220359667976692119833161016871976192044817221205584123956580092080758642712677722678345064806939523473226594252742426887675498766267351703849863642218217810517186909042419094273223175162050227919950262012261704663969962008437221384814251433559985525440504362149561056268132723652279355275984439576850670668370494891547424161299088160405938616366797404913207805496403988684192155033968854138241330921509578446649323570781503193999778576658013906407942909325182170753885502948018351676248899638955546890606770808588956063003770488325534931504653711349704937938004221474259974830384785506873488689407190509392730045098835324672045206638485478222956889384245461355077660148620122246024888014270083223362268499212070200019662529737975739718370699204468759744837623154140923769718090783354550053827837396396193257501904755675594335569534827994925147701870025203744544815612417018814919438474085131612635369297547661351027269385198176994042749273871180157234971540007292841528337127623093758685679703332467866263456264153340670463490742006525364949406599588525807221675280362352161538258175040346954806933266745553886015907841808791914601698797906191096417187837574488803223941441283866508366469137807147809160922681966871579103081279520781553471429275549262131785927613122828542853533238419273155599647770466407859639422648047874250218605303981735546182560275289714970575122205591677114886175856821768054813259606295503183527599927633274893116738865587843178403591216808119884715192128356438186102948681319767894568486284346884434197744262921231411648654625826981666277591941055540209796473356897204155612463150965885846592848177739572778820924950510424342935974987461375668096128674958150059585501882841589838839487647169438631331743410506728983289285685850874627523099676643828573135500419601750162552784990778289269160038277358435435635705828524090665436855854171841331754236623493286444697558917524443830135797140042212530971107507658004986417847059297718534100293652480409212633636614384759831040152465526511872015444863685830933585649256115674811539609418027925395353421936981187546336275159408981445755847118258253303138113368445102440094126261056123646611545654381853008058983156425110605149857038875736958592124339197223670490088418715636916095456576513963702372186129874990512672408158566792715531652784481490242952658194294852153972533144947927698742726514747449527197060198002321976804880200208039290885440789124940152041915459862967731228115176594113791819596477097503688404201204006521718932799995817789169841516818195497153959086004593516561928101189456300219738041864994156609749112772624140742644200180144383741276205872259807114043385031815450935894173048527393810679140048233415145323905432765468129043786421490660403250883240456973912165902018546853078499670385823240979373784707419818592974864454338263790173032746862225776304696796057762376860797641269800019949669834825200366427772133209200838718026188761025543754919680844270647785218541369361829401107585237457244270048574272590703523537230538800167051467868925395796254895714057844989419636194760108511249228022916064832914171172745682611507960797695583631759935577933598660526110238106732866102238963991240370008403748213941423314875574136278893353706707294506416552407825017297954740056730314477747181142948813710489508193920557052523584463253788261756234470650017377185763678880971282543888108915873722648447003540872476277048351180045591715655007179327075295253445014333253750743091736859978728215846542604663302649215405645023910861745474493097099218939977157842313194544185916795365013519842536404229893072200901858800778636052550352623417535986972721028942547260501515779029350068697464496322415981882203546932545660980660008933535883104706024713960128502747932072428152887108506893963762918346161688117792409400599347587870997337500370002318658962515803439247373998778904951584933325114554035642305741756963500543309109345755658408219372601986408177202878008087096622536459207082752002309471246133064686706965309635966031542943916684700185078758751306141904289540816438057087557785976520258641575102046843108519404418740065316530101335499238569897979787322717707400364323552279418797321688778343712193079090484275022530962636266125727626478939113585995766051420295754702623415599059692617368209421503647967589814349023231708978490943161351922850055853596804606321299668513832614557383245240234805282666205331213389067255103737213262608290877568687400960317538031700370274100211612953368694913122052283391768718764888271687450358179671315481414439161632887655199985223642985814184179832948015938045654310866558440431831161287904505001864075729555969274566823461744518407275367748268110067327234982760970165520138937766197413823729878033081450889805256617798193401912848160915406513260578687805403647208982552939589047828076933945976557232922415712526053238135365799810829217324209246106832702380040886133696404277520266126191093817016646206584645517273688333238028043658832382422617532529355185560931997445286154627373049473360801185050716560822161035047359642771858798765532778635780832320041432361553539516205830982650533181226718622060377931518949583096883990699148979893198998354884959526847960675297064356459151173116873119534202853714799308397836772362758756712001887446608236474645614253719070929126950097380624677491077840323019433019426156897059460034941452449942913635441505555733575306033843650070203145247518529157476970362004424822651037900188116183504960525674299707019777040556271395719668044476813359499232689293276223204859110386855176217746325741273154276540535893694860941088056990422252113347381479671597124324712684689665232817242825952398924908267815496679897302930879427181321558912431728289837301980899192446486347307286589342695363370299252351060940101567684955837670280867236430619606184130838552535165776438737167566459891842722975014429460491086827745213598664896246576840072029269128833206543945012533996868792177525326119464947198463874015378276595541096519699014763285545140534812791639688033460027709314058509639775732178484986979074596849716649608648825309381199680778750487431703051183870120475629322855491962010834849173638619556382003275222911959167453914054623392344758656142054016140555598777168583456502742747465536082977921472887117348052063305966141172447914002748803390313550913724128209072959673280715991149297264157214178646111983424648327474880223569346924630225160996278651715906222867572916587289851025560720036457859117780834788829252375518821240082149969539168381103426589328296482067685375178333503139830871926720182772482941599852510543555525246531758391847275508945506274532290985809330565884453484583110123678957180451940732286802343217021629602398795928827171070613130242369755516096500225400130964844376031707117147451805418379084961271405971225772728553892568454024399084102121150021068200576255351761126236131974717109399878702377147337905679469193523960846560979281985351609421293406599814169703570279194714477534662843609913487511852635969089009189067244041726116798400039439084715935440100975615928677877970360574899809644410203492256513343626211250295891550281311099618623087502567576807189995127336465555187423217877454797130117841483808675913154745887930703359418470537537994055214615543619990075229929105843706388995625304209337466515825937479842056339567490717983344106678315916451801234994285622271191122968219761051956341493961330262756304403948199088846813483563309560754965979849536454367235626130248108134496922927642532414150150753360224583872573918524167269122595631174778172379199224296379523591675171726594349450203089149176053394240033018034505863322253571424418834771609609220778635342260371341918075419815810306421031931752131709855938597357993820314625623165057598592404005202192663794496758116327460245125217058284613515676613350222519750526052530707958654419442592769414756475082389198071879408549653506021179184755022279799280833070421381413522759527093831879914478253929855570246139724209163811219849463564568824290148252824631251000137728920127420705866688773525048260987997048377192726441420504320690026141196163207630602052045686734991090655168052445605038013819918069241181311779018485655343023000505231119978610113435691565003284266745331739109106937047095949575537279726984309629635990921499396723619963808526632848097311666861738331227969819412291297844923994179769128914791853087878396881281317125739404783380466230816529940013388824195521737503872076653367229570740361136874610223798441127988608063042989942879968016304274844015078711751701827309359826746681319507660991652916729346805118117706773726388612449934775666997171244184860307579342553485027064085839153664033866072296502508068424957918623219299068280988948068023840557624157802747046125931395438502403656953680043993461277947907279699362400616430814641266798091481002791618641826108032146503577715772286231470402536393682272793194727683081973772527666611803157848844599649799274044409572632977790370405604868859193798573240401534558273105481983023279868625782136063038592514194154839761904016824058004484353575677688501939083292820046275236910493868573967173043934009073774788244554143970626221425725894858429987815818627214318602178805409757773255572705491904811390271899996864466619602171305696327154768019092250250378454013906993485555151919108157966568623393683322331973690910966091872357813120985449721977307034541977340014580962825233959275448068784969238984632313460601341679743857665806032726863152699802931575368362269058474234612216915264280966147787619245237116974822780769077920958347465419312765301874098326702580446066364592262569896600768330725073416795295905040336275881615518800919097005637135923168547523700046425466323333064667052923764709332261180782276526376972676070039716485291695289501313276581289045066369363627834840055314989424156755905454589926667906667081882900178390749597240711969730333467884630679462780266664336303567952547624598869832432483457327999444592116829592591600105332376774588953476142907995901815749407916201691469853936400516025023244944025858589858872204889375541646167724102936563295236740414051731569690005887803724190529656465846088780027141745722799040026531492746637215199851726595693275237170243300861187364739452886485098507075736075546117786451072077842294712980972102076961220271456226418044816791854598108087959393694351278467474748834093240629935115003517424843773675765469354872566806958582359527988475637470634943906566588742192197702456220490829661803215416188670020877694716922197600318635894265271756659706204685050550607911090651996426914563585885381416434721100773099380305100585245864127192964379277888062351446556482684756570034629994688821338225292353098670965431938997801333989419419802002748205446064951590530141240787803617732120732436323677383717824690209937939000669437338551682564155756253048143580068076567396295887001886982586953357338507914155080558465009076267456728236990287454054708320301801363266606858536038887634407989869048651232927644720091550048170602762727307585543614473569185882836936103843586763843470915517706321570959827776959175382983390121218054529974871613559604468058886512908797186849487404365468808562804832072063047504386767857531069727246651501953846205308153947707909185244077768247590133531486013195472433271728141454741972104525128844699144810190783224995857902955689540426065511969732564441464585576737153948986621795814137306479357144541258845802587684029853694285056108808211672106380091838004996915617765315876644498820946842966882393490139941634674569278163842985745960337279953638864330692982165111789094338532843671509698992272960262809328334690653496952844659498594749057729384375662873344966361525013567424514854157909994760690080313229338905036960509173218782572280566350674491528327736297960569586707447214909550686643308112540128967488966839004450331993007717062981038872907922770311275574386067667243870395942030096088169662195702324416619033173154583527562356031519029318052754480430929343836595931249008641789103492886296460229944155827395330592914403908901008647625439596099418901026962255769767279169253703074807681758942255780246821250714887448459317128351355003974194963828196952256310941267094059088495124838623213196783597037783785957474414066737950214386190508476193161704329168235304325986738914877106020362759128059665936097091219415341588638560163647942615261642697138784293545543648481976690757489013690144923133903649146483306896729713173695005048464241835768442540945240923935428528020605780139188360623957740616669973041675838096350000740474543552369513416686882898918644373438371284216808397159665617541354094131230324594850988811566035191904694007668888151788679051951561104819800845544633894220582841949484470542934628293341726610873954793742724449276031807993864809117109770112072210716473476912398605920021898798335209828255067750808552944652277539063707976293029323190037694957539716793074050735706993266848524905505851401188705487857555591531590232588165616915588357465863243162702846786502568471794872552542730427903117471924921994001769678040854962199847810339034295854748660798287160095128160389641874006539502167423067267109704425218354622522476833149748888402343288340915470716667380938859719920762109624981584790352892107409944977414412791899511906309947415592976459988008982570290236417485194826464958633552389085825201327024343849720672496468723031132973517189310364331775963203365656065964385099058894028815007655760349968677561414272485918952374173933594017607636977109034187964669347198268335823198869886218955845467099426986049669758539141757925434888840537350605636675639180431676187866921522965890696553010036789839091733175677193907525873031467804407522009294101223457239889295742452223018824867800963484114745980586781976863039845365572318498645228779301232538273949132193207970963898311591663621439379891458103145708272413464540718869194754553069540648462967211008143716125727698240743404065956750939953890972492334163203604337921920593198573871880371458047546268078465722237196775709490285200254002008965143208082641085372964421867434855751382516841524964573874697436751778426976199612883187067222428853277196221449344807631127440652501177882383755908985845097610334050667505567607287254508618536482867394800663208573803016223009978775075001976286817980028909457876973394599712387917275308364924079355734067707910261958432895450963091104455038410533033475090525890708592939725241179868955846969916541972353337674799015529404764907071250410883425036726466473028510494622444924374709456585723279971827857988303354402713981472292572155217877093389378879162401116744743341254802084371895257254244499932966411207689954977963404865882360013861406051354260581309968594655609967303173225973560045366370331134520465802353985277606846793122251731774381587664455899521364782180280386679089779403901225323505292520514289972438337180851612470575385996464181071666980333436216596653047127506052320167038621904241974563377584674077938240733469816704894283381743587452268080598589419653452289033647498971966744155839438843128271377628885474927286418216089062506215066536349598397125397961824978296449298282857248552425520157225729191890098950388736281926290798267887334502287026054393436993819677060869802399686410221076261173790617682624899510658760198662644463731111422864312201143453174851225837891111160795074953732082261455523542200135009442044975297915356931755293845058225468320316252496444484917514875761587195572708949138595119915605936502312649901937156663611381986817027822257638798490206880106006558697390944635216143853391823161518191952049468073845747912672576725483304016159448119725180451844029789164818510420308394285334389187647119725563963320450270039426673440452555869722647545633174178926180538500730637012081454061216980363946081077643413850166650672159214163853500256121209743305603560429643754125397524887975196420703693396241049662880779649507304599392139487825254697672452931629912840610458199023854797591212511741715900790725491780418694894554040934972036490403857826781278706108460127949787902295044518563098118878865122988077632875676380755130374166313019405368210449517795023765337817918674961389132887104962041818470051756458712160750448060206424882558370966618089337640065818751311062094564219714346952422303475665497882807751167774009992979407728879663217327328960972525304224228818508013672392370567023831473643510337338163288593538626972742124187354975177257176805656125854198290124447052663798238964973677029109434987812493434079979968555669613576723485574234001581963452167192753958993176402348965074984367983935958700465013759717915142821584940997055336403357719857144224517446029296788124549495414329572500984377958805669490130505504260692895043902204156510079040660757541855546876918048458276448363624539253949483686838211940486479143521303271848400902601612848455503346402785102164160860536873394340861784143578337480309646707957980710316794630525604326680772957531615792221388023863820774087980002361426003110681817415288241133234844168428375613046599780108738806983674039969951809953538245918299027800541313543785682514825653847118473907416496855259650209880961342995315849962043052214126937150654343047539490427726708332561303966348430926145883629131811846741710096906757527357226196671541609619080021254308831466644105348054212455428943594279850568726232983311187603309405599288062804859897945229444200093973362709031426783043708668334305033743815852533664892706984345471406352391374901863480711392531323632537967184031535523672542171040939344008751046782578267972973666584268214633872947321158390084921208223458696793612882310460149063268431819518924088579645499654255958760615563156828007119034488577329621426342419436671445324889555042506581749256403983184752819446210379621601505448235084563205617231412820990297577526178739587997876319460215436666420311143689735523273935856209109190586903080013597947469942296069691091038747025131348388860774981418634625697355731903711199718204608940861372930490639171189360085497222624442010986199038724041443249884225663526205955397374257357720489783348191472165928223232445013496310121870280549659604305199401912513079314085348750739547795128891725313918246100873008265012206621644487581212901950699978100221226568610048132398740640516164821427429981359191989172119372398348729200958741909121867149403335233973972988368692666852148927527541103426644308759307528180439452044855104949658135490395591826060460092153791199954086038504047216168655127767162167464706862262904396212343620485963683913096929314480876426465762267402690474909603869487252048241943847274137135538421031669855146995063598943863309278700812167507645495475604232142119036001990180644236442182984280289030630608067672443013033097694620061308395716683529422122885619798712230717305962083079832001883115906213707410141405118476725378712081392172571898893716933574613778768149527361197620340070688850510806532942736669652348869607679641369040970981510320371358766777247921506630756272593836379775322824870099659669475504231946757686488287191576718071820064323142398961598171746108898396998779290181945247319177042503060726786482998675946898730207224833305823834771103929408038758419103259362705532805104891439413482166453886069509474757760226947399453422094821395303042748236236463394245174369370128760966200892568012494492223824942737307285617116795559563685695530140290627271552168068822322906258542832135159738203474553895468713135256606801838757633165407940239634056659542533354394467037707005780896673798092967756547466907045009947583991201839771955451992156508489529368725355072595329163809990623615562170696168283493502726425078492468559388225584919263406700439964395987285634816167513509924957390775781840605811897139690884894199231831922774715833682842522132402579839996507174719311265497369595201680337375365333929902599316189424133360400921048182872352313961311428953073188667990679501547655747358958282208858376602971377116391314860376306398385878231467266548944459069429173471146144177315271883983261170109620423561765581012850604470719989346868110343907167174814300372126060898488574240303912220422481002659949651152667556902083770641463468216588539362515702984494747341999666236980086750313649890744043712869856161035822638172995244338689649482981809430467058675308724117456936902637314846804409588857605555250756647055959848794316016521015830619650239302630264722137383335756393337246143834289893005275373271248195316816856707976327893007633546943769962978613199469424248190506074068969233633528787098109709350892569424729918670879345419851125139028483457732027213650567893099811330816649996836654925133401006929691440228152950834831075108023938006674373426970018162174076095356260478608324246040221272924973635103954612479735992127212782937203817198920391035788085308151341771972566330891449596512401131621224904473345766006649437313312852472595613099229981800389884293321170622571509254385741536994748330371257837868969586177488998473085428126845378072124935950455405328159258912421144083048699429180780097006455465219311264167448867792054661806786365108420931689062219467475308966997984469196016143586720529044072078301447363147635023514423947898501448922848075778257902420797179942255461386235039661860247524092976615531969400379623862215905228564054280192101566950042101756325165733530708029422407517745487167892634722808508046572482229873924094764341262863537846695240174428027290117706202845394407379599795759107811855104954448914444373249381580741965891225841511302576299352555343300332243963482273665950813137088239747783510569484922183038052989426987137490941577880866110660331175506045968657021011949918419080753333487354206119197845211722665071602734984639793818627424124208135884893054946152283547891620148909461514741974084698119464182690731750485130249714408828207459091992779480700694311091094875204304770806494097248840487865514517171074466061276348521203141131962156599248165538074117975096331169578133939105609024008900245311239346404149018308228842083159743739848077903780210071717955139701646461359458294206366363601180341776098587263797072340009618481923908117142995569193952864190798442369386305725100467586280792566496331327856228594848745933288605120916576984393834918680915967576147354300620189681943216407472914548132922786477014084822870246232516889457150025153467971118892346631356831201746836994199372694346000486914849266872910918458414598971984299670272734729074202708313161356870024753787116829087305056136811761128860742288972935288641337023664497936889019933646559508156561180830950392790588750763559716681415151153709355207013901607997534009234464133906969437843008442470446164617522272685654207849467014728326136594542748447594724130804608059709466873968367848313813092741246619399669328092233642754527782819208855758629250757886654061579693676702210099711203518697853549421404564048199381100688768644851385678046244298218106232855971673069125749066922442459036596015742867309761170983841559522447764856977554720426748248062928530452232547750614066761784609255670649631839487132486147604069702145800133189550598468719772378413897849144078109886215168501083794805117222311285648325421869378148611776063089048429455246351183043430982707001911760312266081365598329996110661911545233672414552282193958048417453437840863900077825003395947625536547800244373854702067300723160668856118699534145477841806378379137668196507717141077362601347259380187858240512274111827336668618799042822866465920028890789396783436045264052315996036153366091947065484902132815938080340352296420400147567069320027520779153747088921416450635518213113349591263758322601808014309965881750043418258769300147521117951387003809750391875056055565376176271684000617725535870161088546805684902320882989200724820010516273825741156539833008953602576332557711761749676303208220200520346261117506774975071625304892296491697593996037899127945297467603474571843397700430045882894091728164817635322527648766339800105008802517203357024530931598728481986137219930330126265329318287502853855871626240980163811777933321030273180767489158497053183912802050967533617332493559707366453070325423852130482449871637950734143339002232534007831311395157486383543703714117446840976805171395938793766983180289361235676259128858394215891990399416802617833181759862430162317165718206450463630687273944131254963492347761136555917816868667088130992800628392323030023324941389186158584835650820347344521060100013334426728526662212189477229684971852705949391513576583056006713568292152016893942767978432138220986299324278488421795006003156320348038415620884772061761168036535326390197086950302934750194032462633648209360130924921168032560812289649386023593351342609752898919645250829737580582144976700224952154154662262042841144340538584072931107101009613343165997206514134183175659171492296286577580235147853669999269005797004218072697343108731277333817882849397662715683901886927462192148647499498000445952332530279563429153844289985083808289452126340131174044400254890440741868499006386037311619109448203548233618008212678210409492679153537531326754477963986391798521466073237079427088741514308855061175830001567997005495496897825710702774620714719774795173406888953591721482353529467733284008897589029788103171343574630390037911091293686072656889127012505766168093355181316570383379773538978784401212605633754457058183481921516522269864717436482596360280349449998312259327216578917461028237968998108058230417419903825724944524362138203899910729641951908067075615195435312257823122501586167538415018658293595993964017752869526996485973439475499092669680506779292092604024989350144366115644482714441804308541692818062374208100779091020851666689212134608613151640537380006289553560995535995979867499174793866375253309069598368394510588999627483434267110331955959829996722468485745607336513420245438105656560390856009610591477905003317918672727397254184940807205338734048812516980299555120398703055826075313648910329248657393853180184676499505554651139295159925530322795310431383038987945430003662405383327890013966903150508843521134093378706055181252956661404304410860280770287969138199912896991428372882638391688468795125751686289557790751387170248355654019813433085935916856875648411221307167855528212826597036821364291895194476896414774256658483871897001028821557920691942733114489178148892860485067261860863277812621217238327350528849649782756588504292301354496731363059228632612396419183285571694564485875282786856445005207134537633102677402939895532382928970801321057531198660795484640282131380894350913672879227033297642232249295957936538161487199280977147382348935234610944702156236661560690339852876942627054243395765730303524091645376840193668546229594448674876029265126882321909760461911286180184186812898950157136146354761810257356357023678127620940380318735707705797159906448145311838672596188217248470858473123180305705662546322079543771766090766475784090251394618691879748674681651955346607769777611995784330999275937594279439724549034799612892885741134881802992292920605829185223534344055400041172947883258368681864694166413809307675891317175967366525551291636932739496957891233040743981757473551624102040717687007512424638289186412660151068236887641767404701414817881037935459503077936013093317776449224558915604745734444107926280365121997809087359516911303755664021381366744244135806421226577467468050188077750867961654526694700605827543617949527114633691830943675979186641572753375612891258414176492315779128252502841507643758208281038236671666415619433536696641341439087366970419703756661588733627035411318282258953913594515466957289295799591719961781830616916427914776107594987343569573761940270672895342534083820746826317970269234137326115849217065944173548935101518160245158779051034793212386808798650802478978228718314427139415083525904353431659845457933069686183856221070915500393805116179861328960753264416348772214251837259253137618971417658439725684491592090170658085241588468654324688844916058909394199757137864216772096678699864555811306040511543825558801402992872477662049084711364153863835657251288089761164790476340539725280528321331919321170555384215361689216079480617921800929225365287958207238515657269513274695457473939814543967793530676410355451162215848049515951315041113958318603902613320537276888032812092032069381357245679535532697740179494252347654181826256422590929374407218444757438146451800893666363984044856003049332936885834121200314797532695891938142566994913970945890847456429977252416236476677060152876614162285621757048282739655757417979264314965856162010809602954299081105229193508193017164701167484552362512730163992107542111640989252199553849925368435550794265101024276756107896880515314321213484531419103282280385525498145753117599436546234274542481523504824121776848273828235041120577715381933426279591394630070869790692669812578965264550953030929007532962206143967456554987469506113804464947422879870996446689888021281383661359907203362050990945243286606996205367567180612233012010969212948215343839874692619004096400921177911199793229214915123338792040077250910579608274203964017745201808922690836513545875436434121986353886167872772640775294779755494321203108049447216934430936272174763652063932520071317327532626592261634315130906589539313229911160117427175745999770395391571754927075685459837290798471116559146095118040378428735271295370357352031396350468594478343309068058898346022040770991001583126551956565164199149796338678823904055289023927588465851549687098648746762621304478519652864025635156704907319998256788545745702555141322238733196228423898030701342982227299352903306126742937229603860048093933613244844868566623964941881323599619260213701176386572579819550696141139201817828003890501422038978058441408427679273497938975034169954146487187315915542942075149230480861408430752182766201451957920740882809288428913682697460465674396315822247914245107713411607197424124398431415043520282539599274629147000728870327986118948286486803679757181907617995743946960047300197303313728646354467327893905563772401105695696464651370908938639144814105717781242528362125413035500331394380556524313916057655897786346146297340919382630649112832773701743609250131295408337158304387600992714329165128795728613739659537054707717706709776187638719231906028098108874303463878532711630607876528432288637875484741367311215129876065362404997011755700248438674960813007096750878564194425166052107235888983174785620959939050370720964565644520459197626685481971660070939088059476651901398128816711558975591612443781218316687638142968891609895366060736114505449175194731659069052408796676061725631746487177750779303522548580596629448170378768281838565692563769396300934256715495708307553810845702633611717844284211950625844236350969774215324120319241234723021700816103801072001947496395493873596931041027871806214238052394926887502824764178017952867458307692881560026053977224358549581897527803632026570670587193823899704721244465530758263010360535980121581083838835469601126654088002505112616104544294759261738498957485190974112844744340546957606344457923963802130039671323581645036883993328204891582659471048187065221265330231002227280049380986216814647534512433396921740678769694079063878160922307220713470742638108721209126569339576187795899486669850222375459171480182191830402317558307903488671471794168107634385541430586106852900649695762708296850292953623533469955327094198677206871917351015584735822692110436368080897207137469484542909404912773223977049232928905375059740578743287275810078771255113742188952745473650477976600657674857110143883816438250495599610462593599353579128049325368641457813007721452118974583730061813321167146871945538225006783918509049592190500297917121831751321344360667191706652486075097566322157554546569125844339798840185457034288186156294475071712154165724414108760951444617892343388612662856477914841437363144627755655055193437561338533776044015012857977659935943420728628317306268386083847507287813109439399561649174174660767820417997374471963221348648713809946735836614153278055940601550930839349021986748718184651587933205376437415684616167760193382170134344928740047126373960273105944945225186813991802074471861945799735888935568662586953847045835658408049586697186386099181820153712480871835394214478421079999105773269689319141301870698639415247209435723252127463156883489758380365191926662000609890596990052805635678969993484005079425138061304567841322481709075632666240281742069677461411975960399775782827593801297861552452030140726592228798709001051742985599779851159603682859386160645230323905563128196521477108210057308883844548292306091941925228226962417097407277258560917413665288522524433529524221143526310058135330496755617565018870484453909791397379269332557514276076528382290190201703687384296324643874556926286092899237360838203746180377068152600647748960381677688570721661201797752259093155296590101837147704838707401718013051367652854979198654291707021130420550731543409490431029150305831373865778809419904411764230369347865502647767130339202153603244281740956925021734232006996298767726203872521790907134808959110245756583822386881216036598461100218822346206721781461330560740500352005570267930383046344690369745015450168969764212163441931911137658483424497430269524902308747674376039397611735435771729232492756483362210490499755495752950038400593079907405722123097554964729513590993417812561571613391675506510997050038707585602232980634128508482823855289102531220492303048281919458618636961204873901393006564102391660446702217439663472677352218114828971556768084939334514294597994542914831057980911513158571468641141053101825023713029824120786563266299855695449458260896328283863182816007096568833263917948466653356274401727920266123235367670087056682231645853310593367779676106254037938003938833452958215977168845777076639880746450574661023697239047899617021624365351681031058381465721349634475820640412155089556360873075233518098365326812469026846802630129763122651391359013711352808769882923951854141415855303215865684578992390775146882066573581334435778689611779588516448693493868358953635131248456897041598823123381483518565620007251050736855187187741321233567646092838588764375783934397713311612895774108165650962383845191396445839447892787939733817393648222357616406008106210343138876217861658693956525071508159649711606774043935890094599365048272119182897831799859354839186288606583392199594143889905325829706028857254595991705691699432576969507338077142849092381862951318056527483273822254011526560966344966140030785462708115495260616673120303891677861983511615640896160577848293465147237616006233925170279820546527660635486592798799050597190257229419353598062456244561931088857300797904917193543083578560378016705831174922062822947026665116926382534210555959358131401260336119679536886925633340247315413653944163619005070776533188769946751452119715979703243353101033254319975527592740646053552237224392971736032264732747985890251195023342459475069849024117919899900322821931621235565067917598745460124520710892783901387220530973043180538903424661612844661545081325777608911804161714994895530284355711120861630126215261007909829172221664076110165529229937818209650596853833978515921248274944078278398233200936244071144042472931242555577837250216565706371328674597387133929949463612474588792818347556087405002429138086276275029343443129172587529750554047230091835705936685276731924109462177235664724481537114617523465206624798034544703187824333521017184191596567304044221559830325246162241320984925259650966241714231126446706490520479134106031051017767560340250621062741098709187856483990020959108683146354189968083345259439179730661583846469392736451814951347102430914262954704139344955180301393321395493862649365355026697506609230162393281013048419950472972006244234477620483836546101848688785108432463152723379430696505684983074584955511647520830454279768506533498273002953253782085482970706920213770500672375951172821230316119024265831543245637227778644892022374335840141084787473577032043599411502274446016534109539118296162301927386514001363082454293333768096354126633891232848780838014634701770855488651387027460048471490046860111250370056432911477077153556675652153294058786131785193774468455155441983778389074245940777959623912868151448955686550923346563283235698537123845316254542182615844707768163522134151760086863404751019399453333490161409619311450407672498041473371792982003372035320944342520884488975292837679299196345803673951897347725544012229126376253379043782862115817336795968590916238541453885446581569939988770656060960900159810690915655352925205663941216913539638385505353859823417426492055119144662801827681997480843794119526673994287397897520969369132044553559764408274520690750756365590787944675860271798153175362813664893436368474850511253889367398135466989695596568659616444168746153475734552443750682895000775364971501366703776395953891124302104199899575738636647003052214129574555707417075831579293898039550941326259292477030570877212771458780908164103289855986096943703989343323638395366486234978906285265025088570260992164098017166794410712891554492397790410125234846024295566180320799195873147631442332985260887809612617581769521318069329985523266886320725636391235125024004173837287819752051067421076298210656708638038807608716936544201721160962622922464464042645092060207631805342896454434961777490736702372494474935000180792010180549811977617351004914933345068480936765051025202083519393311513903018965840076363265272945483072575626145738364566906540151027451322961923913841300503005888656088717051601176852573130867602839927192939679674076419894618736724035635937655654368520535679454422229798649972818147453564902675856548432355658555149973076676997881650428279350069119614784790815050515856671104275968092987401865026149321055653929680475660058645996515689411179447186462303678225183713923330717954177500227601362680077101808270449870582255255433999403639459666856771808453236649066493364864699243534506888107969383671162542419286562801640457167473168231883810753998190400222845938755079201508034614702633875145719680139831083252140509929305921988104951330182166315401921918621781853776392104834348467545754104182379394536760329171697007896365020476533698233679821733067733378532569974910594916673344928005575174783422815981843067712291243619922611564661356513451032737032480002738870299912728392317974057383986747543706451190551516988057232343497138283293008798199020877271140320126447515806030633042607068913144276859190435937527038455308600316776425989927282743937715833085117815782331583292815614959745077700690625780238335319042891354351292639211210575464128959200612488111951116048149437247058010514694251165198423435103181566441148197949719567198222060672531939136750487631017190428483333602470540936632041535313398287430379788076304546387979620838165977174766461758135793190842413202569202596611324725270428491200087874245612425725968593254581816570587096146404876672561489950467878940757901132662588344676775934359179364400391868031790290749181563247606377552201637980460584216470813123210327490696263210787274144761910036856690731339795217557479620475296071011333197169107490228903930771347108098831940557154632430605796084695439700259818893270538435365229136774607097227197599262879566733316973316301983449815566012145949718959789132404595255264841796187969593316600741420640963651262546923186923569166383460609240823276695767482882139514977972711462355080925727045193072598426008694315717564244766510114155749566935118973829102261510026349655559030242243034925874781015232895694945656393207062504544130801927295856510947145012440019976987476746171121804502476188098516987825580360889657008884645859897458949987204077640916888705183672697683466712021791181869888939699500321635522643836276596764660165623216750042680739750844992920754905987782298172772613138601033468314125951177301710837580235525356068956696649345388945127513477486393342104057094150895475190116411225989600099277423781948595035810700878779590409266547007897589621154665351748242553927691161595606769722196245287025251002106239346514319773542190336351684073580947609440662435847989416912376685299754430865826086460315006779620778072598465012321856810477681572807153068820530238459782482990308721728091480805090721150009558782224170155412375744104630470432178860469940564798066293777496320410480090189102707945277372166057748681391390513236031742093638310979031993579280507564597631105232277923021218168893004578624579202460478367327418007376121121788083642223356275177846277740958332012069672605256583621333387460215004434320874434943600500922752803980201438866432336237586949956329579741222388849914003018233470843988756213316403835268679719065322327231839945859346653389852019891017732259488973179551417142238112722437715626917293610712971389521591659119544541065865791042624094566850085749072778775735325356372997002761923607323494507952018541381048820858412731406114326841425417565379874402638132257797945765143487385219931953633030310490072776843787428990648790777227061285428787822312073297587507202565572408425578192210408100036207615284350597284082531419884189057957733976855229524985484783484644119042513310726487712916957946034376853680536171097085727880596494589194566660053601320087007555104105580402357268943145292456480057174009076292122920009965949689563154294848038749815950178447684644372777730988304439000556229101237195046401910985708890139621723277707400432702886754907940191969459882958001726200727700479512432412104643326310366525540955344963738471580398419960955042904998737346574794080801596008930097416688376447776325050562384339952581773245205029814566736571100380411322473842954445832285459040541535927964008781046001664369741313578732103306714384591600076368929809991055296381863426817033769458399365370282147288720895177060517629239557682143451342089096623575052836349859374337484819230220107728193053216596275061948865087073014294490385157278465971614138155942950980381212843478828086759142572336191218231732452237318058452155292515216723170833284126842030337896060220895208120417552584787015497958965016364084803155417241133081681019626222721520993581233598872696700918946556381121363307426658471788380260341700870496913298800805531358462378501069881671212358307012072612169106892930698070020457246920319330926394332474510069009823272535120391173981113765788208439170048297694440784336120660561804487828362683968923766829154686775624403151094699517560418682825043532878794350219015725467569544724906054891080546457677589288232326825093276122687486773104581330881373113720210908369165997666338570089440574974794244194556425604561118217835658694651763242759431055811062289412258285589075883570577315174009682760370360315648715013403389834188664643225368806770270224356829756523782617577690990895410109941115690751165775682076430511863943455876633400205062984950520497164948070831606019765096533697331815402991220760868611435643150115657636306756754782115151368503769433468890526195179170184667622229496106715909946481292980516132307896805284224721219248834661466795608876862444504053166273372704143632935070316712355616729376706467224894056352947528704202601345111481870220713545189911071014899837049231729784874301329669114746595557651699204696557586383159171996466627093736159182543023387820889505377347861421789150917900504793919624905200120406029209995634350782756075305410379946616762959742230190071068143750266618010519002019398272493128950552241429891657477479447317296278261618711457410610853514821945613389617665068753946375331738646265809102397340258746421386132769485207092667507607533131353043363626482852303434746712224477074436071037558164680164682450611565275584889721048286484699488906090430341152507941193195089650873092404682480129646455594589952440302404823511326945632488970468421357027644995394339085344836638817252218423176276960939612128737936349201118508368065123478867829450306682223356478678274490458260126534804871455675186829397425266046168817253756067402947838033633369316215022871933328022627819462212435011971645009769367903876558280037714256109206687484086962415776511315870531512744507196688009537289283155655919374672109934119306949926863357246289777975024094579383172138775972018153445590928876927569512625198566563548492236340576883616769086815135693562848534489796962284637098176044147130023150595005257035490692699328635215985139435841739918477136472261284499814188634656114313323437115494910064476235236389009595620062316404869604731950700187253880939663306000385033733898429120513417511032066152609516074570538184174832491246834307878963109888832619451811126088296986236959692384824879721545254206313222783031989238316791912853735105819613609605232092783228953702104223653650345278155432451744511299864302635053814911918182326233746070274070720626404812109721215173684166884317630862155007747801523096303336966957226010847709183240543832640006134968164346331978294342714171281554402318199941993562860376782448173187381862167018761725493892385257833895615447060263960058701291237412439633962239911255948850375820864800243968028620909388352055790013063746548111837959907754783219878586560963582342460864435548739533038679290714417298294455403952925717444632587321211545550171440883572105380024326266912529675447979229442241574397299178320749864281786000576860740527847603899805779212933879780986131067869778360013278378915339039743231948713981130573580990083571691456739419714935752545768371326046295196177277660585415546203454960115992548392294950896676996778417959507987733180315234933811583708528434297052807377765535971374709839434621302682583784640254604559524837729970135837908585178415489500369794102226011107691402997574287631421843060027785921244003894955814427652441102466357303290159416838862348281141809732941841978662547228529891777167035871707812651913181508643432589695909494142060562307828004326950950978820294223759146793804401986408319713613816770742205838089074559760429949796253053976234314047654285711778009083639777304673555915302596600628789359803107667944515244965123621732232688387790373215173602486895823301914604605596665169108839483372525856102367193024127777719073968028834736640207256179715069215321555685394697257367831325470386616586471457003603497599524379640159862649953987175737260598639257594324042054596046489009284387982987353983210254547170074149434660610728100932600697123714263962104174996771315578325187728815295697139059411378783625404469457150529328803722016758831040847741779418761713076609818009540941167291269424485031716365913594734285184521693571234297174984223260909483151375913400718597313876417960995901815474696387974099019940921167149447705107527176552828173870271234375398487877654156611116450583995068220074936912782650018023402403974003750586422150588269051094748706832376349521777502214988659621108409974119708381107052248893162288187139689458185027015639826445910338004807611208971395856781747687451527395075994115233909029926315185939793441910302088529230225665135775352579683078323554189980578420391220628889723638982799415595304797536879430739209814164997379769998033801402768829412582862160225768801071690500734862223620400069881518209874827453416538693702779208429619171078621394266379469124869595425559813169265847461210944318450400372462440301892358744561488994639455540298136996047529744712660408148727730521751444022865948149124105316295596715688981025761450412028612402832140221232621289564162060294908757795391346269128712161467081671658667399091145070496136025021869679874218682631372837997092963536921800263814948753383617232747899015054987515388595169709771364263216756881680940836244617029259720496398972176413593797195009703723914567360137524742621691500426249768694061936018245223744856558218705096979988598733721148749140713458092416967824788189931879336991660524735550152629882741125324633413512806523896640485968823878356005572654735493411529658397377784860586408500403129922000151439571208057978500269242375323846442833797970480114457870272406102730957477492929692691797339885603532707419700618510213517134916685902372236550955294067162689007766660768264496610476561467911552179278864120387832827532669815060103133321101289299253876279926023469687907090344595810793504288212951113587248032739294935241095245947592110695023558797293304068612044269267375955682123844288006925562886681505268028004352473984344801098425404892393216499984582294868871655835181069541466934142812462101469595920043777312196708540320135741531431043709778617706834755271708507804584967569867638720418139132052097043555436199344975703155698414960079733898808308575437992334662861102116134849741237276597049604726149932192066782636967723121072663218118445102290420688370053548319183180281509895172409882930433178676825833730050878446181306435986187862281977782607509214935638312089487947397922155922277111132622599086632540509413879167860912923281169721138081955673506719762569387126605652853339958097345631169143780299837051059597394085889959441834125284173762426774192294204795295929211530745661030247573910319877116196480218994698427504336342950804585534198376496870418916299887441684349946565784442357249604456190840202060450749933473530993681419234090810221050553533494122670457627543293417072341762135308103212852251107640051640704932162934659913715363852812612971790378559352166164994483288406416235236322573529837458021173214644191233150756709097379848164295912432838528315721657846961464836554559503396139062390256335795090290247586827691996296074858821251735271873463916374614002606151901993100307184714731000095786394497641041788833494855687656691456509202742476811262847879829201954118675094843221990371727837115350862607780815404127813523573963457883898832223208656635799001040968278554451669434279882706158882477661949856605836400011498670834050067559742581184958484582943397197007433994745477261158597783026935469711043741215162989732880391431452387269748465939018356057124152107410031089152040178540480709985214899542476318800413929368763185698585129519490611984725748709339969056806933402391223658532131349215316460054253619212174067301873362106429554525529197960985685227716937048212743938281989670601481823458570678297542011898400056009822778818924782854705504429899139444097032012059884675302462615487185302859172892548053504668166016406316003321495280067385400300343522067842350165964751792253223430586622826992371382912292946960012266050792473906798408771285202332191171896708383977113730492429301568951272418594968946059820011910036635578335013805483832464384137327796781421717443630382864797372122641936623254453611795964083673618980399627893952303862274842498415240338110918953574773844632647397882413019749981581275925741155131216273990308225580195865830417008015359444816843321417044922960161350663177366992305716830708303412708701447447120680669239187219240468236806321367916808595492192955054300970445837081212748220239460065639453243879023228329732913741006939971604829953490019326335910314575439084286803675311826062252677683741275212883963464982442712708069554798631520147991097063855924755876653458931175891560825846977072352726145919440302658046218402382275072569820461290531914543646753813863797540507890073178503280207487499269645740456647490103136269753506583916661436681179901304892374800869427511200818305022788946468975095904456118300468748539896164248982596715898592601404024692145871809477383339994796431570047736871612631820872662308120205417986806713125437946838280737979676801702683439326654124156571866455568191245291883477980114432738055154992862264080457902161905463253874370590076673153972389510590063939528457119871313828227196664219242985136182498290928780355346955387504116210729249015289106952298115041906647767795469563011481635453301979620089894123351124391942775928062654817016552869519475108452965530404741637888556605397629108869639370838877183919476163986329895310851356930930486437998976998414118744520740205703779339136217745825801560358967676255455165408483559958035217599369693424832022922847357119725509939587842292410102500842360971732089808762017325636703696201956829883121956275128520888575088259611059620678527189083964717514577977162926374813940985808448312530383970327816986401696173015749904597071328804742569055003089664063728562551986116589371406055795182775692985783518255077270662342418144705234755329678555105578165585904121852613412772408140792914561106296151823208614290621074043236433079134236063474032546432267033585300805285034014239691729088778868126667325744050893197064277062355078030136787704336107054958285978809127602362185614574361508784296753194587642356078133359084575770948507949086289616443014552584565026834919310423713364656862022062318102852154222223668880819042750291931191251060933333501004993801011916677694375258553446275461028454374878693192484609413081697881165503943493224456701561397150491124698590308096142768941152519012581905509927634867271138179947263585935452234195754700562841491212461514830981714672840365246875973707621475170801813640078005458629086116448101286919428803451254982993271228556193652764748776385028537574294467109831914735029287513280332077219949149186012183828126133797266818137667076602154619427959060678170450587243751247134154294897288548614130733370697726840862045596208298331831660724840846740129906973653200537923623545785761608296018179806641546428708767712317151995094559445468088135708026971567508159642278909087479162551573889272507751564229510299435724129088378316078667870669716144940294605774819563776191702141896178392500475561660444491299400969264769308370220797055302736847822655325461523064856392006057344887530480905126636424207674034805440912194976605599241656579096152579480487157186763961321251978694863406461271434960491941675223851301111748600752232001365475834735358295755563859586082802330676073096826852727518511056008055323665295646364187680624097679866491423097227010167627756967859636959159505202593284505564652080026714846831869376837512314316206997356606122673572993389567576095134905148664527095446752317058568625568669731158692708376171705284394882865975572213247928718280833697270023720830886967705049985351698875517603701007997558237164876464914234747157886495425755271183815446331578516301415331267234002979217750425497775783119772542373666502816117781739197177276982062802617749182203978180971111374288853710948733116967846525735898782841673271886570911715325621017167723040928651486923500229737565523947233341880239854076149384311108332967251652090521049898376113529842929748634717116408381244602839744393958328858796083020624808116464124461486025649542041181008533332390931149574914212480160059940090140704386958064825746399299638616759884176251602768248519965497895548821106568208672292989189368351077292653252167711181079741555645842629734808621706732186690796283562664930373445190148100127650883199487169551020759525389409474214372622774775407926479810139745128815228090417783487897017840645537622048335121123269224602194337962199706264329855695872886505419221984565683623242146181246841158989585469243146319637889261524634122485943888732601920342965885889048196857829604470493530509174126195182841278478115626504530848126241182534636269982824160751313810619092778006782210681139548093686362192810871069903452319880423139961535138086450938345949743926711642497344331909287360096564348041706420665150821804241137703494648683925269295809882363534517070619616766657799615167093412218141906846859236663998866242374649307642847126959076561941523425506502334156162829481838208591770649508156004716562673135337407487287660545606332142607130892986486257176447578870533888540745749968631645388481851369483546021624629615707137157274163888234084284961339441378607616705050998879506605216296465813953589828310903352433095106985123255032180792744834973925034919839808064623627275852771348483206849109800963061844636732153112210851266622705988898173143973270194701532632045323751835644466714982618411830591708101754613400095568228396139632474289193607433292121941879974087720357503018674858181992779434228174597692062958147950465231131163897541827545942917044251508690951764614691497015154748564722710771760988689146605836845101506094133708446915489656584409211407626372400243720177108088785346548608434398551594943887502716250106586325087692262834167821593737670079778982978493016583688422063257357058819137358110169324245265939638380427511266364564182828695786109873786885978723818025638116319113067989336426129438846535644954108851192649532662157253939316001303634295493439093104692948979668400305346220500261570906633312323017383673451597360731638260075051084116658261692120050793965366924566279911473198991516069065628581520983249442632749269099658672514436487516335591409815741524280129941789221520085452400104592677027151947401708753579284838227283530105761925358079678720957102490803597278934648487521093273630539158039228763591469564265920417567436942169770729219330397446933006934244262256573769456489799671985987091248447144074555875745621287141449551322306828160922080968870477026307334629733962131200529165024113097303430225636891801885721541090426768535885158189237580845949344400827912358513578513872176187675755728136614060952245186985155353210424264643925500818486082667459433155464696947754645401870305896355602810203268143950226869212741143686290502822207960041320177837165385853088026400841258477995333465894225433878860584303249862351633492721695870461634879420466517498136155685099985197818952781136955790889721525014656856887638609126623235578890810717289129597794800079227298631218903148219796352251268355098203320773237096811954175502555593875295408026924180488040506507995760207641542749708572121001648040083244051590823421056984240079606916535541649512301621749351610173095085258677796103497715287376773391194985594492801970272254525048822904463426055707910030572929535161506242454132104525099554974693584809206091911161520210338347588130472973223269293347005778239080197600321710795498185248821831082653745080456234316563525591830660514254625613559936899822403434081660824526954177686276196106514216701770102096895640546624394505870556554266891489981620454166773094662979802198466381372005661826025433370829527511859935754686117076675824375474640674154947841260864224457546387844389775850593413437183264343515518230049715185742095943915874912601683462892320657257934448052588759492412774664286419827533320935741115539616462953921615240619320105059675328028953305478852737977749252999108470525990212225054128309158281429339845614154190887412708588602047836725030341026938608296063212517913244161281215477229573418854793682892625600966788035964956782308568990223734565625767285434929011910380433351566137200248129747766358312839075349327870173419877135381699013571321229024160259096925389974423956112134615750679771471282778923781774716151697570522892141192756662973402676831672978123126257914800807331473930625507803434874255967155686308313245396787953348314039077874079260995019878295854366753740577215347907223069497537642601727722314180355348691804655726251137397595278640100370163768253795052842219037383836818147283206257080046828045438867844922704464915223725069276198498660460520223067976025669514502451598301591332308222911098281696701118081077947467385144018017676350465862338477845471348590405791755684264645199525630943733638026013565018328551765988374321150015805904973175898219791678404922568270211725302665859769872154188497212387059054354466344629893821815764395641166242863234323894065067867331097677537637581235798142008162200689281415347089810691147363659702556738035862946423127471441184972237923317212791250562871828503604133123221196510924815396053955669682171392680960512490188791872270358459187142927149643802468219394425787700848534979549963542316597687778470669043900298266059991363045804572542978416110537297992879414124664622646018475122524673476153935521261449837869184586629318519990156113552808952449024771684291806726047862070536377824398628917305023710705142376697210996227381947659353958068512536698663807174951110979617979707725304684950581976848735998278466807618305025972431500731046713840586090547686261359109717587666568161368513617371956572790772889466682056658883151500794171299044151260960691549419442583341101317631892289834526897991055294273945270079552911052122605945959263779130622543199644960709827860911082107698697033392197591783611473764264272573980131992550653451001260282112183857703623177344643741843944408001332356918958967592764291863482332019215283879813877398953108616275502535241942293655874932352521815182443906593275010655209851969800675862096971820494836142905380827544109104949469549664847391252081466932116660730882565507409603506141306602524815389993270043292009195978969530018998413815571753581990897316173325726913249009319374860399074997632262033121639690708614388558423556592450963341930901702499453137783774479651296224951210511654762140103835969499033451532298411027211899538350957631293973601408711542253657807268513120098181050887929682770653038730310169692778644791449472542896819218270012887312389866765222221626886108644096796502713459156780042173547180241623127729040322943503520492733261692928635677120162166281876860872111580320253300131003209137892647942412052967748873405455649624736734700458677343135930395112797317101666791782580628714667873553133999719493187402499986182761122790626277036414980662275235771112915863993068692435077993399125942846771569078146506972787512815484250898846584276173348471811926838699285029509834460520047626612040443828535948997489701565001831232502145514528077477477811355472626922887816819112335457789983973359868083666527442623557453819159165576146005524483710293817637918595458668192823239767297178173152628979134876929456529299200952853919235239839537976398041064773276605533318145323224190766888298339669465958648451025395698537927907096934539153160140028078969939053151766532191616707677482785732213901825091861333791049965406001991927143165181725546652328276528378426956571173542927031492868166903793666113956540843915397989329211610932054986388719381054276652788493178102508816211987924141436923850927578381843184202246786316312323948931219419631618296485496796148793473705567683016399114264139122968670300942235281179495628917592246345606322031502800352092287340531526895635873967596740936198021032439970678409130837820417206640721082861241860257684429511502097433142550270933384408419066361386390675612336137704904322163818882508880961780084059251031655899983312622909572972603530908058868422643516171057041789335646954308183649331779739985077188855793315611028198543659483993644394371736989944988555161154345193130316672129111565418133485555344696402455853246999740269954408636441246382411537786062758725986435195827568127676575820487455411624448760878914437768378597940894876937814517022612602255987562868468938681845307854258632789705108355986119305568606509973819869138976745750092038531295835883565287922010483336721577811931343817850203233318724772834258461046369387936971898003708486763506859283586987376598520426742237980371815757116983260601104985376199220330352083744370038707711611128361069074955299256918823361875903176576146199480543018879243107827976932027286576307001956781225556347491290917246420207408241164837515255342928899687581877214450956138673130992527423584846617300154095560027982699214789169389996077295262403634562311043624796129816854175465764408078976145960109795626323922601465294246613513338603870143567192556952368574381250607842215251390091547319372634384330439546838144826004534041568680292554949421224595956524344780083878783958623941098946871375227261065672797398168656358343075298570781040039781621819555281060779038250554541773563150622880175934722920411065648764310711931565874627964529172638943265634153747025188030368369765145939789728465696500012685108552353270155142877960311705381057042141450126484576974937062802919761412439479469865987748586350271878723180202202914238889172901568349212227257320448366601478738467518913200836377826741230575732211379294025058495116789860309872783845763273768570198498945873075552015726941863000204002938272483050029659036833356888482731128633106993608360679832633364977477074296767490862380138176626268559438478530115697694981958964091801840963117462407686607887300205576826317329985495638693308793517631713460231416895344500299296927572968470822703610339007713044109106556086959410536019280604356071660387526052853649340636704192684500250732220301092256854514227516713226847128591538719182664453932531792508967775311865258687862639394458355860927278176858845283764006707916924666249316591172742002924978387777155007951596534345158243670580899055263335856921095661208972882912289115556591544837001836122405099061380020216151604950357952337628822019356208411623820575602682914572071381010856465141901012979306619997353838158264000273499522274255461357200900407249425808613953392324037677199652474262027215967171860539410840427358988456209542987200627634856631483929414011393278149824345202673868572598889749528377494453435313434777466637381738998589915578608085570359792805372554005122491800424682284911612034119042251283540196480478709603444998171152175153556271484758045837954204063508669734385680310352959002228987749177093997332569036661311894986725369928270999538856723203007183267046200480114328377723399447124153040620661650683906058751727583062021927664503174495602473840844584811654408265593416886081317168535114732060904511809645424743120148548007767009821564100990723513307119665694589231913533118544647722706156539072733302523491868467886521049914830730115721783212045210899924715476185892441758549468441239566723270986121616251390725405016434449523329264520869600553051720622103839490293325992793007978116379811353417718777493818741237873994985361738330684279603430583044298199309627394905618080237846858865122715737421750961423035760255605184265045484614439699966855053064925442213682083134213509911470673107680005155177850665432848441184856139858753566214663895172230843608705693076082153578750953405992677780592341741643280185810231658378821826558553990148935454647004386422025045806084277270023665054808296770315057257790718188629209906824003622085650520942213835388622501570414747057420489221932300029939212006983491503447655796029183664054168732608497340056169649443258245903857575296327505006786557926985109035861498748290652032953177904815572041804801129083068954964947186834667669095978518372302447390095632761332153702977483189277838713596830065938076519894560962264114689021875914757358509457218112640962890293566166077054708474008199427323292407961735258490362392753343997453402217758620001291249403150185886933902895270925167779641645247052577102581611402924974819050732692616125705734010044366330152513754436278361450490011010272271325012043252886094976254278733224224226233858512081153539195787291910243848531997337291800248641726457021079007966650113499092247367349996923214764515731550940269761258031732579550289632371311352111444251195136019461177592211661781999696168412670179649961493820272953689366374290902572230172442244974234069594732734852030818974809819476752063002175904482582038615656415488005500373085453735298455658242998739822599402291538799824081566407084934526554636899076309205596618839977274800363058839321811217173247025340153247278485829543068390402809646949309493457797932546490302272495745071182610085753468305794507372752571115107743708372539755342241959472463019899997865769100930798852675573855852478056089982650639571812419681796315292327777436121751604557037127268011298106291779588717241669578563446292038136136155184869528249545599195985944825239862432872520972357632418352116799295495343286843096581349064336628290394275270487683473182194157253282664130131621217780711861262442354374412960348068487287825944389145836589066985697600818288949548884811732075607870698619175283338568535054412140866524825127926117388503999941355867903848711976454913529221677084915416195287992744602924362316090389059519848864651463274204144693313491404379433354728632544549106684130735997705601243510064445842925725608890932074695250456625317307831657132616564132191780717287496611680447810925469806046032723874407954682359201931409535687366098029930518959148481850250398671736897228152230872941403391366164013542109198587381424898114174724005635509247074003804490410929531736817219512386656298356757264929788205070739394701469152194031432969092877710417226236109197738805488490050364316824040194044921092927468152487190424287530546143149783405253991435838542247873083639132239550351992606355532982642393660737054221998449943962209536480074810781214363744151982491105201029311031722677599593862485212736060335979713478253816404298390050871473983812614453854324765308325927910678296065558644777083055102128550645840660769667914085466390387225503507561537760879322760280625356753805561732994822418398697997922973627372393881328380080477838166478204308045700161340696502974702242114824816255449912129047533855280031913372004859123138083275866557841033848777817795126362948193991913153390513623198349849567800620327095499991450501891308941729834272101135040405925903175819822716031251479302658095860387353225909750804460420837087630505554663380642921774477968147660158234351052126576364786688627671302823553176124859343949743007558974609758825001282711477648739544638267596296176020646243212199954843181599469633490833533017703393458940329533639164458116452299623382275535913676906249373320159713360111055016520562839781359448059376046078998670069919289490903572055314076331644960342994341614752612231169180620783862063032730288629430794336230218852906683069490039203226454881313265856332888243482691511074273889979210557940120466933999067167138831677061949830211149301039708955104413617664703212495028511408877763078790424656990984180223168478314333118425732340934666737955026116297778918747528607323570186875524493786167744529839399317925275517630667888616217060522239807393759990114196391204673249086707922586715014628183120417697374924191796667496743892897560477640348578869957641458671181512997816527201101250900016329474437499421296106936474549201905483109691199199097685644950150895575176921540609856465623219467683767606527027965358724694491733465986770209193061216805751534607034502961167410396001269122391664022979549875161724142107137542483063259112779010221228701484546051044019074513799041212960534666232022244961636104682817804400254559810479366732589859256394611167875645901863846082193138565049509237666324751194648692433678625327551972568283971336332895668486931169710373199128416390016817866411676097587778136939610593499237581717549918557092224870328119552348691330956324034766692922771977087565650421555089904186471309905733294856738785180394625490421777962946848394144561923719021226414655312874254658565148721878524180465611157376989818744143338802316933313311778088410915679386714035343944633203747744472223486246582125051375540036781180008982219961550352800517588033380437550603591568971962578150327487273136111676302036645951995475002084726093009754801757094177996019095620892845898991804629799756323009825928679903006877238447209723262223432868614034713942600419007588822358090760668354341720149889290096955142780932223535071821539210178648506354122673338526354670900807740364951799885630632832005777692256583731795071675989092789723833066252322109759398913041447301834290864039879921321396422215735402463197207888259333310438786335410883780788496089053932666480376716774158505639065480834242797017465841699054609353046409191117593555173224643162286861981609123561378238476867170523921005628319084791629345567146534666749164882482486879438095540955367111081544294276648081664544047384815605817887206771649130903017281338776849167832037376090823240897096554431483841179077682125888206529387739189100037246083221997993181157707903808935265984648293839686033276467235489376669263558169396178204381598557204513150374574486899490424660928442979347205916033484748016238207710982827711565581151761377631616936772423089262101201941541701879943338111667476819098704254640840182226390322310741039804496246193069694101916483936110917581583881202716797806330609342131969400775493962988766671213091860856045558976198055789605673436343042893805721497318693385562669342255337888021427808332508936628037642121755635797873782002368263245722523028084587482232264563503042596847991678362723096132899043816543408139055064829101781340822115756292600112867378248323105616540663973066643505514014627640745221381686927404705950344719509824223632481974865892857931336023708208884983936157717222648913053785041192701337038869619787145536005756292146696067274844704036867150006259638132906082383383670745258921117353264903286816398472603084300439215284111476827242681321653563029873075982111555905270109640842334346396715596987115826991457107959833130836244481490779926981794900861079039193706263839508034619388586192689623121340675902026021975450172439068086401500907717453061746222030749227440366380331514591614058773725351593415040966393682318399035220381402352434980572552312434840747380330589400842877545141486600858287902358107586739244205854145396403194616368679502788982045494637228763315437183582251168719851833294636728179973637411953799867703856662268020045343848618723747894074433072572984728503203147321469869688578381679497738601815722895917659443459129126076080419745684808723598108742164821202585507990295823245983838457815838458179867844858567308873866910746173209041168229052196452544933863656340306763876178615528378434736192050129560570401634735130290361968660768781132558029088492036557287318120256400076167062366509599491664898548586286124267591354129351052351268433665683644362446156283344047173644922627667720466104198089394442766411309161313195623189153911304751008734425282205394834453038989451686046456767948204699168094812842300202176706053256970880915675518422552271110544119675835954411277530953086655320534370291008444507451449295687989044744112539917907207105798738956665785256408550771077237796517552838859021394695260597540411812590017663555401744981144156720433810729790216196126887809794231020274990805710293033821904946970506002174098019283350667456606661794525938268196191778599698155255086723182927692859560054215658880420796068110418480395132341519195887483880664601475896717128888044998765859444542265107942485661606851153838320980271858779331997058643107292177617884988871500724498481311097993865040902970277684031401432278640416618583661907532285981863732225521368012789620177171454496654236890248374173641046164394207469843706555735483067226695052170389452312825965149263647466258643348787237414866029332483140358469414207217069041602887094050833347577512648170641343508604877480595244997296839751702126673078573201339554407978668791575560905291782727348235567625392496263239820767305545054457150040915330644781385523827741842247223492821359512332175728397823152223601800063241789202613800691374759552257870778160370876564126335816062764813054565109823105535431765429188115459554538852895095327882223931757539462424062310123728955592466621202130994048252076738306788983602929943090208620183794079549653614902702392404850788312615293907751682274330908786628704604249081679673814629897213548188078790039524252447955533356183581352528837554656899146270469384944825468735950197885908470630229143066188161170423360320506150813427657735033560887142971583787466687560448743082793947022894779096638561616919473423874203089272289279862670361038117767294417779546532744551851204460103175407943105460936880450737950043600720509998570694307924157881480903877827729198106125765247759527709267951682048894080594490490898773884363074991791859649189547751873360444955486984086384268309608806057920055553538025314039676027690238741913063590121142071520542116790497661900271799836502792589476113359823607284545134604170591094369424917026265146393791872616197878859684934044580311343733393098120738375103343137478961368468357858314787117064161971524506740691489127232533166524934204146390670057290497220812573569239220597004170456649557721073680592443533271104050328059106590568530058003452316826777498605893501513783445280543525684665401107167033370386805428342002502049666857070067008776923192142736710483823489586845916794282352033991492937716102961228553313458646590682634079057822810571162304940899032223308314580109788085490747871912967325368691782400202768907361973585748299864966552424738549071038695314472091877655684596759895666553654305188198780308912225837428657055305281319153123031788721279638202156127227184613182489147915742433351262327412039394623520775048739914491471437070295545341541529822517937188675600517392284774906040491960675869729001949160939498892208478128924654415915168246036780981986074430702377450068699801248102240584530528224306590067858818600005608757558246941092783436035418634941301506893558301740210920526532949640502173258593221300119984761523537889304804085531931111140588680134600207497693923810414816029769532327980776507370749425020808883676597928021688771066019114505961541697250811174795645571456782913606867225302775205964207029496657214614648172347456699465878396385680570649381865343966138895511988626526429048525870444192460628454428189458000660685032052002944943832680583150122232779001390690831619108732407731427134682136691684688033923743326231855152960210550170462258323953516636967044911430894876424800738016501211367992815917448459466904029025294136473979466110959724815029763717994008571971774728157245955247146929019910810588275277145782997910410284329533280824750209420429723088777309065088721076514615408473678284369199916567966366220110108962442340585158237188928848063097863870407204560270182948995526809457208430258712385252958991279815952916101317650128922985587590494399909162646867787388951002903283536005815245794056525594205741613387838467229527064350480272433084059972733523474162766411348680376862875896547072502821033809095966091460612051381870455465250240994349131687252324157603732500212870115807490261022113111418881876990043564330975792972380597425396793602758798346907702838099154136900633203228813218490597514512483660372367511512369675098320297338276078045812194980208213656291548334237750944501584576683895259038980218192086408047764493728487443068936154923529247662510750457892836086056648759420319796923987503268850832813273061853498151980155955161318875170009677501069968240008007481998962490705437846173246411132521002328386658636536573341393334802445232430053326169244915232622779131436234558385949517307460624571302218421183459494961025839723279580591807809352352398885300874016422717110668547044381965022842983038119826886352199988393008245026628943384897205016135469790801287455544652244016539071852633756632620427834742950116843122312156356112548831923581966488922284338281392227997005679169531832100796976230366389665502170012318725442095391643354518748784601966201812572885195585420809316486478479022129178584097696864146840987189648441239531321148306684823713973491108640920674054423102620325080641287408346361371134114686631536746012905576236285296566069108675959630086867293250228880641133539043274698025896927835245292866440771252190058153598416347143530921913828395404483637615105931149995840390721819057859010585359624445278101374766899661402975819467783064699241436299575180171900632352590460342399685446561861392861883501166153281362242028616978544291690859931360154716977809746355401270730546787857696072376813271323980084015145438780921051365821821306692765733757983641099920555616939834771930578739583510147898592233576088243473802721091564238709370978186185468713024063235123998256226230587116001750027368225487044186552079467056282106696577605554706947900390318554953944417574976082173649209670269690381179170164178852022447656442172925919757421085805084619051914201017873774105483810933437437152411692872112503407866394849768297082458718836860367094825146352265236904748037968699210875565176537494539118267341003462393494585357757560478202929453186929031579201153599173776700534455515439975799952457869701356872193966538890209157048378924360848995062785461851762295690248800264878757988792883512928677309593985415325435849218467147418191002117209901824851998375659081715193025556453144971270187091972661180565158817135308133022969109242382259268994677815440463765731128236861944266925040876635498287032634016092325422115324339622854351236353146440633372847641739150688072154563858638350804526781584048539419789592477555027327347892331432391594559053424472912956065503146044946605100065490154929230023659119884954305381487123190053625074618778307134978836561132661849847805926567880865537048944907581399548939711502457782688575830846128751738142046555214855416700427664182559975465692732810180441773185942997055989842174993624216559996131190334102468084451658971665527565026436194347208459296532694550611575320442399316444435359586700517219581100952114943863778691845578646746184620821714937821563515813149341985040771071765114921115049706473709857348369929124158013274751528014327915842445725292951960208839488706055728544402345079752028520753669551993449027526679372087769878923130112905307143612530871243919344345235367899179935563284150900242536095544977889369816558611041602435652265753090614845113050645008633679502743767360501156931813838768918263101174421305462281099611004161714789432785414575164675791626841696920817490425264083026969662083919782311310937011540465115793128561141405764935862415342482936300933416152871558896858496066685106768858455931950798469461904476821897757746759038024357829916195297401302266876873209853441996767567160760159297161092692143627511299376135383593825566078381467130586778311019270570517062328751026514966858574034415624149503564768572692261966172747163659309841232094341843619561795335025697845799684812688268611007563701569922576636018448205361342633870467621595003010184490723348301592936682630571929564980247160668159729332982525908862224792798802064214574577584738243410887290561825779153305689287782965021825389100319522425975891883102362400379329978653172926564942543327591798634364963192417453029710904389236134164806638357945184357375007024317608575085202955152628802518905162706240200322281263430280512387813353790027383555547697161260473814530382489164248280888160781265246468778048706446392462179115341290545624844826048036805503663626673250991430681084966016968521558022187844485762453865850026750345715408884028965202309936141524707473438087297717903099604810954549357075455240543118588805906133255193679621566455365962388732879872552080206198680804763594776308160846494341851601784640348795014907442024340347505725757791331400442328806962850533271493725839017883876494069467612214758164410892542157887215250668967055950166595234953928359496624474753746043684991851893597980267474030988644517080928193902627216106635812703147645676436494423561656354438882976329570934843518462368281387555610801366792611412184624575568259209989543758134602726412862740646621610196173204169186640639956694349549139572660330181818591043484476808030082797927620591432343005297342847606227248581122395437383064723506324204320821171711406846927652908153136505531306744828566761370418285193697850751320342392393847079702609742512676126209260204640902523988428047954205773998994914003979636764966973876163254367792000196566608466345025979787879140341203777100903697644091209049387746446575337588890459908770065159285749017877109060993041484094146096897395743321400992174135255036963641943195916305751249210457272763995598627621387322068661399950994719600337561451999803337118049752520486443360083043921973821463032852112637419337044875705988983739554245060134693638319976825916386170714726262728142884646849879096259140337417862899346698759900010552292506656757717076940384035693206014929630695509668906931485337012689542400560536143179479411538539035209516707689525462386674028394446733693872841525436986933743037810077707400890479920214397557869749464839823764788528061085828078395140858012820681185564142090773582557249200958484315289954260347340593835930916478756091461940778615733788072593489034527833821410027657816050334752915790733396634330797167290024945288226050856675826316822073851884919512940121952229582753453496071881870495498307548216335987515627979176784553985467426407994221948966571874561790337119707326428628330789899962756382619751606044655572652095308737156053620080546140334428993291460719784178835713844623695533610957256970212730660167749944557425946072682114032765315551713729273639372971630757682076853336072079164453749142596522783372534686206738551841067777991430733150941148618737785086856280002411579760241077539606335252311444375651535934015885288308076523058518394370822830338228879994181084373973136765179203218055390164144585716753025121194079562733367451260286780519918308489385808970113062059681883388766059406505010819447749426096232826720046033149723269183082287473893786248359005494095833435899207649747923944351283718981362021465154047930635523057768451579570693160276840549959272733575784955644363722298878834422933253119712907050208200064910997090339168604559608174581285278094764564738632884440770872193281586955051584861523873946904497997522617124245929340569531526834192698831857079285433437148662661671142681233487912649321566302571006152598610719248664226174201278019198268068477847892632968492409127120680327947516760461846859593059196350647140129679888666332881191011650035379441344148269446111629042234479940638623619057055160001045504126329300414090499281442115400602166433619623377612827516679793945361519736535585238709178957821406630282906729724404166675630759970151272420701615453808209332617638585885008813717180494920937217964809944119813545407388926880369545275756162447694962797742928303641872771846618840075709207008141132426349024759958537146218465606730469531537993455048163560708362860614860358328287898903820319844182926358700042876347183577805654658901799032057195980551088141166319653544892423007012437189525803949890960313494315783638625605330865629520887138233038540506490718505777381993584641734704162160200196508457301250550077862996089446484600703225712073271669531730438054920177261297135515053431049480756858348657217327029495708680013223791577165165517276452402225113545062685771291073824718726305379498813170317254785423143405945271293090121700354976215267488469833373948973179555525093757945449301770011098471300521613031349449246835552672646605004989922975442594938148033160976740504495576586454186010048795098418881982360285276965435076208725143910686753293157488926038289206558766947423232220852791953618507917618623647065161096802351348698876402009308781908261405354656942454506962554557021214502856238351626000625421835979795302919883886378568295553208141834425340758891612671021931752648821696706614167863985639905636488955554469177344013510610826645375763106427886126447819122912037441030238571799075049958203525043610645966696180239664265852689135768936725644752724082954301548788872014493389564708153693185581850754507975734247000304508769936392423942619949053305306413197654903696021714334982081399196076668215067046804402282607560184773924583478187986762053442173520472784188529834202617447822498458552541135726898999788451567327575590523399436022337295212495039204219242991921562686515315178812918147504517205076489433475676982918910021832040746674862211116589836332500762468180046341947073855441535313153804838054527658032692108454415309170773791002244463451425118217258413977839559480033714742838401036351515109743765682763068050171590989731865348188069991749711849678151023881705264495254996250408717316385805828133518974362881019227546366064363484392847914795395902973371560839947237258713886956133755214463889420186487810194429715697368218012640160233280447834183653813719884674406710100260309215124660758368856362227137094126252519850624066868231311553057989245413214498942370181597250253366286765435122460370135118606675133645052127332556965219135858946682349893265322842952069369465804191758963149982201233667608511070475923750133498025486861527065357378269754872025358774370653868482521575441881110717449030354770788627169897297789963572327394297320893590899281640663013040818401904706317931492995405661322066044424772560598525029055719436607906825871009399395902873284911982636190438328993969379309987635365285304907204017000161699923120512636531108445418319825731002906050646329154527633517695989831732772993923633399114325063579015485671034241771517871541394513505071903492833256885639860911034440632636862410780832937899594649074564283969478210761089976275348371429690749991298946337664455915231991279133292477422183513738882135637895934550260608570658914333422216375224263281327085272455980269926577780944773001720207437308108321649525821823461624456951514460386993366214425733184592918961418625841180301146717117852430978812905325031151942639307823614176128741856750900035991047264772077946503136627707530582686723204319919068597816081939069662509401775368742660608327563879075818943440689027407999500367091945122803426375760865502827069321456969513674701055020073121337873859102935202862934711882423887017143879747821478090040824036072672528610410719554724423878693388700310769363529478613746813196493255527846241750061938382364289965604488058476706688440980953994037091938473590665614042649317307272050989683552531967808287139732559019786119382455210647799992886100858689232747246897015178470174457602769508147706634792970891148691029523993135655100250257709628872278931826733295281665311984878188122714645274300550863365611720136591647467138610785516055941746685316574610620558562843663196332356613575649659188021281354843401548477259675642643084527741938834509317958977338401681340309146505958493660751177121356898293062243244860526611249505631190638318540330093678800701797794377222413652135137821719784672201609993541081335188933159082145193307221082557062907373218083582943536591116189342321530383240545816729267861304297837606319385357651105987916415289281929527514247126599234409259425377728360536123250567231505864179409814974551401474581501655139215135108472300441696640366277185517864566296805434305138327445751830359050613798408209032202673778147489837262498369132041952064149910063711908701073113192153025887582553707780005571692110086499217288163997960001701024987495798296455967460602929901344244156538662691400307013101687641693215250292277273205852530827829148547970213150937019094671274204511443702805315392966531206800609773438846631961361989962909986453492694447846784578851449214510685989658256310801605839337073889806892582354720613104576742813438953359901060349513985294578014398521635516001947908413010601791514058705628160850961688766969317844696617224920817123329790733158226816347012141371088038636273248152182168616267129697322521695115543763786667340797513408390429174802657745409324828769833442963551534241580444916239779180605442909401714065629508845059145707255989233232172776769756453826385168551596078099069979225676275167798096439743386102005916968088288493638635742205453489864724157017361603650655466654778979173649994537512872799313127432237780515565731387687847886858238677622415669519831094012566882109292343760599839923886915703707839611658796394345876267473035409186055489724376525099633322720580572352624110048996031500007889944352817113159117791351679793467524975999823774764415364025108845318812273883746670335698487991063572862162818994153462677413500551318302674501198513240307764689502050724877209000150653953565052402984298374547059577902169809664944817990591477193351650591821370538656711943092747100415688586180726134307917981466886051468527760966487095953288507622432731797301267131653400104095377285674394815905886790513726090316468279073608532906080175205890958468117582235590329775825459294513933147202284036305742498350582660209390324786492353036885910955518301814345200619686527144692221864593984464234191116978916872285406678369434686714749966041790426816490268683153153104218486995021606667283305624604253744111851742852399624699492621214468440258799066921463886035379816866954039571825802561978829282467856767111540013435188938818096081974380359702177037240773975190641561531126551507813416418777416653602359425616261302871347798417822116016829382035080018368184971676630081747989144815837275915478596790965831484727948987562800904804591404968437555280945124503125319459364375625527801217915409232511868351343228161849331551629651669961821039570185915011830100278057072582054233813721782426580974656533566066604537733453960238536771833133285464723055205695493127340588722608869602792630506090862540483492256653568649195844706091578301213026197389254284372243337966676875243206297005580796993660636688963297841462871765783340673132080983565505960412289841818716322034390014051110624971573051399442848415531771685380175571718398479106939940782604138873389114166516977985543726399623657858149508497369826924364835967536637355507415768085605559214569727463922262977842535206855505902458107346182124408217069812690326208634348056094709708818724897573230442673407407224748806649721458195383495493307070600585588323530293457427174689590254921358827640386337866019832261558809673328393937629205274016516764661767734516271854596893109212574437661375007858899838560971550338745364730403244783663674867745793778687753436859574780791208456471281972515800793338584237076287068970957548621400093496306648024418514115536710757798091057997789183587839672631971116650512430909970983260590501361785103933957510837190051975957821576004317684753411014280457328777022058227532173161144041949015243243130307630547213461932608901467743371431269089309363381105865207237765161023412732814183390563739527890945266700558245460656258616895701745692756973705309407786572137288352515913907989030179401055899814222044582591142316733095120223123245314508031484524903869101485168588223197729239080843771054505634319253170358302857882333142564438955712615228653314636323924298566272486283880092730638589693435616357649983893357227021921886595720776373525073208780581903634045722107000711519797973335874434055598904755173828697095913710551441137983015188023973808438255103098328585315013242362705311385652288838103580127101172952427063987736714232025913715581707208929617058136946306790091201849774551481734019881641143337222802117033783806057825370033791425672151049625584220293711224380686526332888604209788166045252220060754159900675787369944924246198661432616636365946023970143357755674881472048957873154567420747399659850835134777209062813447552334741457128080426106033636654912018486001913965873520209616335606980737242180191771182181105328225895342073597769182964013194373979540799088140703886486043377846650342069489562349129623844277613169394923331259022909977664393056293572961860192956169140299422724853511708555496875072786406993657260815100431732514545162093349798245836484050448890444664656031623950815602535822110489397832211187538719946143902843227576155722654324239204468605627586482629334464647046014249568308639183231615443681331969427400051003163364635810749047795443155196838892888516236355647080286376863285173882773476309065414158396142231658004619577954298267555598905245362996201437080762320843902197464976341394579624756457032360814105683625656261968495560503679441732108364211266478822728055006305524526575273926197732604604204184233829284877321882307213352760822208113131732700383900227624240454799223655004742904667063800686099827143012859266064010510591763695838176280863694654208910308653469051412766629706206552769520054893637338555960747557916994895577395007313198976721911865678300641932262975942302033751030933977451851047462310190269041970681770201696962553970188465739396394789201803757829206525160528238089314855561487945742232951200512368550574372703901617954496292559422738900115645266352425808694269043192090704577372067312578179811017437698164034324256243704340387449198640690057331174347109578897713260946494588982489916399545521443816937020998573587607826508785771260949192611238402310260611713787363815431197193489329768560729121479441183475489789887668830614306433323289052894735417333502175523626771816832876634741116131352117463134167977287033572141975897581712420750990146833286669709606590993745447941916730753224655217245838796194848505239800907671018841824956161117837235578381377191830447712854861211637599433194761134177480408179068444958024735899370868950825639711930170972966301395820698051906913609723105865830499882098200719247624744191376942434265673607474393238580126353495713448258683763461153258965692724048907707757625457753371087498299145671871272643009712298405689990252249264076531686081555432986036672761445702002507489321515676299181186336071299123157834027723329294754114645700559407460419875031364064591467489676061121755421168710369214636583370963054239128452334579824149325333542974548940249632279360479374057744785512872799037961682087883864045250393447558820498330616689423052318243648604511999710297730777698421837459180051019512092553069476906994037563416442994416186472559429667340900187502677772378994879208782836712350440705809039042894003369798709527720101680076057854342893235058845968915430062936089273986785343406419907663192394599403792268471130365278063366728546642227050098592218672793922535797191070288803863129089204008463386323847522231285945529513825026620040016403003382254363479988272781068014629881370761225261232723793275533045192454197021270390346277652743347925202734904949201903605862779191037013324952067757162707915299362710507700400843671349617657355110914611113118848360467336667603575463014352135693803175130259384519310721564653476816187730423252732662469916797896125381363527054965947735744464415229779927101322412343126734830324500590670713906705065823501328904774792792530156669740046385269949717650791503718181506835315989525112216478898233078032645385127964354975357848156673883718159246025725539778276306958304895296544124965920996692279391418049565752624697811243140057143778775531758289384107321476665966829719697527401078917129441854978956018931589534951092646612908079680956477792936533271579333985797016109120317394003401520455313716060046651050259976757202335616084676264092951661196866802635291864984493348577351691148756522993307525431139689173496144816673920224714218349516773509524201623352770211792585803143825726681660142020958112276925111801913775928891279163094124722647272039968920323582212531414483220335152406457871028506619997006425970663411373140002092827602005213482143306939552033374920960552446510102220526560290677507514200217484343437654963158009338656265240496794106585811149471499184990818444964742987465477347548984444342858849148704274850094820899544074802962439205326110661541066835182039431321274048708788046057863703511380583207105735357534337899096758892468194530080758744353121184102569971309119840712483067645990206796702305343081726326179328775495391417352998069142744575390534512453479952562604908738774920403754912633352904117954100288647211626507539548950421139926855252899567413962951066866203723805673367432931097122510566762493334005874979792070090234115947064983998259885299913813688072810907535198443158229732880010548383015797852158801078523022208705722051932573728569911049329231482249591940949611775028385558147697632530545549630049194261068976717084171252569117939813887078777038944720240398677192454944895218811571709071094560803880369982024929148546137799674501293676138601293207374591195842002125740989459525354577743746745184056302994488230616266626491083888710681298684087999080604304558319711965771634424329959000454147426426353238783844553036068484766959106293702037571322749239596274771856248655255047694748501706867749372288965122760167046707264296713241169999054430508991341080716430504238357365437556707428302785876433841760129041327472900939561739791290919105984933405620587785305496186022301149086002952684549661337504520032320574584380404766845277686498219811125935872218055909247854689280481549257536975497166237847120699476423600785332030138986463813823670154110625608307179021417236708142786718760298796707135973152774338515881756439536352733900523139043957343276777871702908223055843727106766488526145739970363044246056081587310192734181868380010913806806259323051636445434332946792920223982302913232062222410024971032846457940314484267535233767189265929761190655227152876956497197147583270551545213229655306227905880948961452693222414393935904609870662083168746139960724914469669636905465804698282648867863486877934001714417487906656367559753072619739342919362610007307249875611552297209130952000668432588767400874723782074987695288120953407336520054554650438276633253341450381065448915042932897107331833163075920919828860399367703942230021825366860372116018814660893698047709931714509418725844719719703005031767738457665475875409569585682556361769725744536342571227835532034737137188079934535056070332648605654905695885407617229369427072725227878165901695652949097565801218953535344254190613215281659151496741441071272628228397687491559817702674098848944565873380017387045409921284247311840574648065211056199816437595269215550496463105351068648289071184019494494597919374273635991493413845256250916480252622798420571038175847954746161476337895665243905050922928068297832294697586839427717501627653581661198807910239278075566866041200452544151349288566994808275121846342138047555568240079819972254652204090159630502643287206893292598045746504030346430612960426119778006217717343533214994335407967006202481298490990446129524768764198631975388724156839028177512696976616070373471483176784692576122679642883363009471430584375903631585388512427748386877723358550302841834997412644554733160163529154374876872952311142185786068118285895573230846680946898967858262679252234479946067153315449694682494866830636694372361782278928791704786125546223635807528208133147912482375559052012111175970028187095369209873500737541958874108990842301336150406030374675102973523223602307553514633839330196356604764685776210636025425666524733180789777866801549977117845954876422091044017035180800796882155302562326186849502938466236065786670932273311578973840262809139887335886337328814071987626400532801876078147956963797672812836372653828833580950182233352229804849856109087750246736381986169956498121039740325181739413580091321033180869298183553069918393481381824099604427812051245665182634114897017222551324642905555583260822197886869490310835677821380928550259387276767790896615486224143737715791677342270989323512066897748944984984413553454707019421805418608939706774978532839865437544510177851325027683068085830623147887652249229365445881125823259793859180688223339724007975019774259978180344327096408873632814088434535656566676302062092622520425430124192755764188293716303106129125773836201426750760367999519864128899886518190480675385499369446208708754870017184982900328480861673791703150980006162256768153604271838316156144484006329693722523848224047197083567185137541155483745908626768518739427881154106432093922811690195901797592623755682068222862210455537205008633363897974775465258528586220564130798043026741178426495641482585651008784927299257680514798122817917364991072787582755981666316316290753562845680818299857427700378655400708498814581603606529422939581892682839198442745632827914395086211578557121597705567519914213570558496287713766485872440812028453533155895349403344163114395556588144388850043817094239774158089385892735351412063485991388406151972964632678405527255720067789054612397659648295346527592501646621173496469816697116265005911460116345279984538857829867361266404283497416658378953925573163887958996059935704190706997204487633719434236915937825686791598728419140937467531820383743275004433141419528884573402522923472201550571514030482612793538453337230074351325301105363614971705054484592098460163365279294508291237926964855845095470773376357946801606034822506683416362469018132423518599161203426768934483590416224770937923375698101519658582760261312464207635776267651832828367093222566049281716321384641294554539507181387984457328035206638438670683238805923615963063826330269142816699105987816420234528538870201473616622432868635482762982743170607156834762344083779668839096883824024015033509433507595781247099878427911067202748741626920765554423106717875804473550275097807373448964093775369698418450638872446498117588486865783159194759586445453471925778831644947180389256456318875001137825282469035676577716790497507559400902835346641623582163086608147482751804136336273378503800494587753970584773675779093889890271663397170607996697142011065020974370271173968949568085638040626253139384617924654345847915175068339360067622586420819200700265255217213841362201993670358357783614243830199470433312279098692419498986824863056735621154953820958860199452262759704127222999116385105688285865321685864672765246545979545201444273394717200533927984681746107213897092239189048687848501989391229808963999822285630564190223856713139892142461487569968063940925255180035538479981365325352613779207516849463255651908518255974812712252215044497217483445490306485862450269230924234632413388638182379126280827525127315557242345176948525706495326006655315682868541723684506119339856384046710649519472047990495803017243978364434679993278279897482055769055478119255136063533790331507300322475171086664906494164230458438199437559405786530393491286306391509377902619048424065806409271682869003709424355029402319624762004058417579120799795064759065586330308285231668148862439074853234709964682436369118327185881054305063807352464045745197737596183252330502498206580718194864493177375163895547998311734367503845371021691751602120597035544104531377000710547801884403452672567812411818108567965962759772276138393134368793208283482691292921866922579802780097659669049680760473242545017827324447305403082515965466426046486347846273181795830604092400782198802364576785543206998931388972441368040023091777625369612320354967678286203168022300883017805556833491522675747633111486457636987864896885575217189944669674075314904811546319649728035008768047968179642002104326868928110252314842208536345414322186191214184285812905127899922880883739492914724785987659455179221497844805338283779577803075730055010118298188913742166955951119934612022485472341714690364644779337436567006728737861391318842592022896328854181830935497454415606171034701120254693560996316395944785432904907833315288096020635595835182288692830792160575196660477468313014520970151116660362562273315516374718299195922624916687175537426676515171245978084979707405143130007529629650160937048088773004894284697440061169549384981799694276931024182046746696776758573001074984323376093504897698828138586328833770042007324304987897516859500204439069965833300966582652648056081605870334956839888613260255644904517757214448147978821471187240780218525759589448019782030177332064165548501098108625766717828696749321326701708388230497933027923227591391697992986845863711299157585494323433578741628946707503020716019148146603124320105992528320991663089994688357323580181983244960771062779620334493651569390233842796619428849253067925397807178767427708859263276783551281201183698203233823269803305127931825013127397770217504319922190128127375516041557109401376758505763563470067395092339657453850505027007215479061688355881690248928915231990130839825020884602337898305087817433481818947148517900641075441189023657686191569270716148510480873983218969024534452246526696680108124988784961228011729635816579831381958710629093229036187513558914731334286488683525189911137762463981923257499443222317837617038340371690641879197155255898853727905072966054794014574632275670323050255259108836221605411330319798544808968058691148563863640340869943133673872396939660410053042487635016521625648197598975978917831958799972765838094442806901141068419514251638812354252795168085651449521160040484147261841990055511957993874286126055867059557584346547561613122409167250979423743297023778422147814891359319256373920446987936900585240578444428691393377005551549897390292165581688913126595139539116806746230849612394934323496777657291674065943057813326020110957627119562602599885858808009766824034149323958428873866246965664901973589084808095640882185983504020637117637494393510389521394062904961629486591445119911949834659661682287411976472670846278318527854697541803931638555335684980943899295507189967790915281113134091275230955502537635803386657947499455629222500565333110276232073371261696534819522063349886753190939602102909653293487577036144066986224429075947750599824318984557907612045227454940521217943400860198226145640513023794701346856491335209164849994615358231280868978647307375105385824159339630715650322738608131013690858489307266044234657449507707610558391785473776059129762233032689678890325843309760250880161944494378969845039106540806426674304211358198575506617986930511227719537839909541707014639334473371149084220458444025178796063275317952764415425153751878508862296526994430423530830494515660946468726903326462716504618577180674515443289358737204100996365630556710829517965841272154934694539064819470041017934458650971627846519290053901230949571349838309786846834698225694057507656762650700265601038649068780824633029782916886578952376161950803815539292442050965438112030442027748138055292492891492099202898376514913997454238058026937824077409648227156231482821960304129618356060923342378528555642174425643550121771731749395413406122983868184187634435900436592716598296235449280222841894114730009112757047951977789459838838361631717473306889263624086694020807645314452316994788639873028426810107745918656850809269375992941599336449229429809441735931962946190714573317899612898363293267391724790409307449851273938686307417192233390296950040728603918748592061247568001365515805483414473719577145200314719146855759595291860122251474776369930056639965618029268386033347635162229639432775568153780088354053108508448985350369759242003745627134532930193060405691737182371837381989243851619779631856378259006323215192903452970554679614138268016169058835613376563024921699918261174206578289989702917664647616369581292637413048546888264790112403092411289958725179018982775505375395083392660611595359519615398780779717963381232220784622305558307320467668782581482798102024673083968999551759995692628482576783877176194110461038577126933212662056626616123543029388181814743445907231202940367308470321927527303859232615316265398125855379166746873032820730763596956098798761485919440839567160861783359539018023601565569366310981001123789347641634980585404797990351413046145372032857453084461187905236779451805398628713968997832780492742398716818682512457577327688116558653408232178797794352885164232760749959681966821452747836996860513271636764257039707446371068525408314718711991036079919606834450001213847256674988668097480650248663866898199153403322021611679468737865529954425197809439224864947930361176384473939961518222242766604180383273634163377920869335390340776752985931481182833175268406045017907522332403744605644597330772959434818125048230587278054863601990075352539267772218607375624411290866414602058762202229806853088380808700917555978937993909311972210024078671757421627334499508812070588784327887072376317419722401165090350637284227739117632809359081099512631555478973953006084295174049345026925764375385653677269661495863584101352847146375735220244282618788581321508310531016420742609235455647435608208111182855422820912896375961214671181951544767622835002598252985470182564466660086894855010757307743874662028025253220166847104798914530229948173694085710794645447282635742765926185989328076272673734825448510885053628082469620071902554286880917353654219154789387123098211920916404378139525867234387318275891915089309788406907010001221963249344963979685223340398086027143343572995608306726424031325465042917771556556265966914064734893383521215577370692294722053979916020334011348017083022452049165229441178904914316989933215046868527963328991792341694105888614052296442025070387301422315204117139683115518288348482687982436741651833760279920865907034782170820400268140270697441073926393579168841552356736227196417165495922102069598922776769518758311495884694839215185506270808725565001143199161461354434559184835652724054129783082995434800426075968404893850487131087411962984044850783340172795564541623911008974325918703393011834395315657531064358319106675482978087861607942878824012946188630181090830696748851237857605658215105842312664100169152762086444214868706562794570164371930237541083968739254627978365649514510447612091094547748737045354707957930796223973777878485836322745133526339748004134237738423331507572192972395031018833762814308511273826200740665886517137060126416225280176902828874797887150493871434034599704528887390271019169335108450268890250085940485225536130152304365445994575644663872970332301870931016540760782672640842536468968043928131837167486520803329175831646644166252557663817463877399973691699902714692210278672632005927106696672493820732266590403468849372463940427294155210118364293837302937617203066981531610461119140702254435327121580022136543964548985312104701811130699878641289881283612803706539154491564606921476988391908242833520744313011921448058072003257503947885629986156455288125139914226893011618688246882585867725125582417190556366027230824072150017822710440436175563064437261497340785393793195963423642249218953548953596865237377368524418021784645162759975011227916849808937222322777819027628163610947788031080583882261066981754781263719968819725812177483962526839728475808532452221516685853942851704260166784016560732261078392181732813495514014447142838146703638369188003037823344822708753075262303559809169908767145355805255047644770956817717542914988912541440460326371666055958592966978142297445858016117167494819085212133883299445844801870638255755449579671892402995441566555950397431478094711405937805726403013412047181480564450191124774929772955452880685228535480772606622686431599536001669863853907626631360932544614012579379806448642191555307279451671791474354738778420830624015376294622981219184427016730967522778778187931496181392988856099638105973965128498405146386102650969819935297798870092201904689498684910052134865621711341582032716252441215912237691812189228380731011644260939509892370633360936863874005715181049744578022229885744472241678260332347903345122853470774048845499441638153842052847828658332799723574470007430124243219287304622948801043036041683010967679215112280193543977488119142807261998068269768532597945029468318624490096505677915883875190865796256717742060718589751953656174201479138021484155188242614302332213826468675659090528504785306941705313994395523402034108531549971633949053591229008867488476276993413812421532929646436820369749481202654411010471781162106843279443186507979730925877367174794200176564325108692540693453336502682812089014639246226522329866354137160292852251928448982633417914126701513691268569815560005299813389490960329575637771113005461941846521950701170861232721144486533990629746289369803615108342455616816691981386006782432967810892598152535488311574853834447882286722827110126449916223726562100661481350488428715758442003931284503716038895836075637740552401641889371830972080285483553017230610031310062980215724833556757786120448488427149133711367953787551996754061729936887389318404858517520805734234306586804232735423121187962818887799710931187955628639301682840101016045654133696225420904653563825398973311610388616991435553583331165027912743865765713402932343961817427128777559461456471875380501490429442526638609858343130551692024888267666487354961900510167392283878568992087761372162012807685534717476150996564570600793761802810734587987253459395436233903614290046939437294278856844329270966944608516417008590557160794826989647940082642237145534529076784950043012777958516856249441877981986720018334457536193959922473353609603560670611263316383184778034475739024869727688889264580025398228726549943753055540097976062642160422513271902952989704808073595031496362160717555390211398491934248219736887098018735576984419016466955151886375898178667286504567765979500511241023688536008361287778514240751579809493658150127757022810353764821289081645906335771116329260542578996068361318221221972131123657250425016606590830722648545286830094927670665479548609151298752549153328391078253225099588701864102438582829279345633269616427502918830950529597242176375205907504982541771666370197617082976964990711600453448356476323822710066572272412576260456021046933857327228769204469427281798614941848393060259893056879133000271278838686499808197583974680333897993460845503078040201417434348544128438302381405639499983704529698260528235669871168234312808151711171450120678274669248701794446665627655469989076165453488462351872634332419866352674875126867206826084182424120724459617349842600470076813096119613808864213945536987622405036758831023594180144819413790848969672521143264688376174578021664349041466616581815380975809770179376699948687690576899927911041311467277727785108613385388730228782488508439418823027890454218861290992861006637797253066324395910632714237463974241404463085621202066354413124638333041329120789841702236304317737843435234918567161929109545207195297891405737412924134996472435728755279947524154202032748175283639501994305896535144203516734908633006119628720342119269493275790127303354937169142762039491916875409826882968736551802580632867341671168355785897890742952764015363638202905501288156247867671834580038206800242281264442446747207852158141370373641764617001436089740136799687520016486895048846052595841893563310527036142467709112835474695904754907517944337147821066502343309614570797840611375187249351132899107695777179337622038064915015763269097583545925712476269416041932555764738911697999407386553340532864996790019701876667622259131545152283372489293103043070788651621746350266031550453373271921058018926605414311444447996206091079481439876259108554513657059823836854469376912492540118430847459487373493238194034796723794117506650503891776806423281409246900181339327663096160415068695755425324033770723421721872982903123789708400094635484024900257552592445412043947018371935977146690960545504215888606771305159136073889929859321541886349000088202199653664955837170343318604738831408764125327814830175772737842423601267321166475657249407090066081100993854161398904891303589373631999563495749579700489057885544918868100076783327061874158589499166051214430500666941553037579906120116741909272917707524618162239545963220480109137630360225503748770148448207938719674862852816442339450169255446087509411544569967531320581497797550161097887791329322696266617700104742631586202002919994483454867970388514738586517499011971787213276692595344574069288540375368953824631466572584359770265861287297365437841148893567484770807023075106476253985063361084930170859779607216733944453388870348185281094845914587043211747797599758136072704854942814382010894755468656524592084223321877630128996847387455738128615287137582889123403683267546479548442328513966200331013307864845444086331171405864731741159470894460984997563452329045809911967476505917966441637171057868896092928254741137709204827764242907159610939814221510895406610162350134441013680286702443237547264176481495422962446659918089202040345343296763563754456829843823301064423565026148317463602719690418697205160290624201992109850719657077357020134113819464618344998713415948226380192709606451417536294384283578249970934452411361397655904468840612661752751400089038589448673125642308362262420660027990252504892680008572892847574402134702112053337774568098110606822338683793880844671241672605854744939270122537458235265644760251074543892077305560493842399529675597902837381792478618748401046077824444396361738395576113115758472651417015674881464961674940635552727903983855468543849539758374417305110231972547857620494799947736643082322548216888256595379408922325535465332748073100282712782852783276092511395936455073277731088681545083662828073297209914688998688288399596520251282146863033341902994664334574168158161350694917308277908727186504164129402477046672028864372708766440670363409169274687181833067223183611206849060906992010433405794957773166339124940097739440944309654657566452154773690074905967977195382148425518904787776789626725194435373764051206959975660500130451373279359854936374765626120975933721902699811543919143154224845295288806714823321368622286023200465761671151936270797984838136897849681639160927080385898587580256106791548555992592354936382414101089942127328905479334783250415447197048432830994205337115727625962721673397617121897443174710224440891827406204764326537180989407422508282649491237046712542299723848594551557417637441877568091312435519181111382861116207979892134024700807212562428856012716176638624414276588256602080164200180735195606076003237212963312191197363374864043534828025236972569241507755628312130135526046048188193882382315261113968476656853420040211237573737856278999379034744236918428903446900765632850106811831307942400853227933245404067549107857984459190091500795907071385183108413103255950538402228396543039351236337157290876337460042903409385729530645421574910887066266104002200775040494552135768652991933750139626224767679470897404286336855511021410531867825759329507401993251798452573361710436896301410893681600421890648049391902722182405530053562417204700866986961713191565984273796300365600723357761089476316605651781041819496141832177030128549736102261917621394591749378395982728114598343794551687735457748923585668106482524886683887867972240746942788349148676370103443273909417729477561993049077492267140099220699083545948704357463520650619958719893338272616272794776914436805955620907742475182647615139130815371477533229289341390818661521716854132016767273211486999448090780035641443772122444253578983032941115349985720778827034735398110013358107346522757400678240023543021148164383333447050381516177178300665315220510967002782667250797502666454156200579778720595163780959682957259642762969090509222085574444584945098523025129106591295879139103740673456109881447610673252554697332190343213637373053631469153217150039461577034185277538587229627613398164971556278716997952264535940012439219438589080326052081047189383942637597508311573528543071189829149672484500400108893306330158546961932826393777025270827297847783075663323012894841011333994865713562122511766710045987200812661210856231224196197233203896879811581701637183417837227329854387363553741827959696634195949231454873335660167988354858627748450740584060374541566943292006804945024675218428257025925860509986561439000716786473501015251000618560303464735783567403617839447255707697216623063796871494267447833654354928364116007439159040492934866298986382701301363059694569114765582342312059998127625949257063223978451247398810611580363422010775613990778506698249622075253043915893042556708215445393471252235385626937617068951374386046522030114260428768157640060295836917750884911828143450642956613021998021298085306800465211802285642481613300424406184890822472816058914067828853608034028698878818293781736700517592721518945122730795645872513382771689184864223176925243785362552157978188476637760840826887924764267788353543291448002338089076921768781436983546630488348076968960815441911028036752901407748446109609471757052253626886288696240296408344210554552911545497537886677990033429789301217085203460985764208122372031510237727753693502257655985660630111955160837989430030119456171907778938756482279295900396396045843399946006205818244058432845864508298186365039251891574663602148109433333532512018830402048432289251403835825376905071357133103318139319467679616593173135478227392027346400206686619882118223379512997001557240764567698683092482807303249615592850078932501656906112061136240539958942281452598504790717291671653012440527328404744000715652587838658182118199754367032352446305105363227069007409179848105753145065639704330496798861010570499780592676460376062376483665787077779268112778238111035496958930314778990760462388320419837788985649463731005535776464086509305981936407439134551793880210275717637558621693817017715711272617055388726257139231574867590920399724000128099473411250922670566815766239221667235643392158137116485977364522124920107323826641500369368513493184215392836614378643297148750638017920374740393816567716817035075575165455429008338645860652536190969212843950284987544668089389749948333703159927550236896192311242577567533109652364425053071885701360115178410683037196272293863582099735079042838465461071821294284856195072969472061680203638979829522616696170504283404955474123539061916619995022182557753086645312496576754388434735404176821917184326159292720134598591737502362310758927315582001632277853572597045067627805322605068417747049656018341137632508066001542487345591342681843825415472554168408531880229368563222591832859016809015529724215848812736809552918256529413882206576623460743546644097532755697397329239211516609803294710249412644394981730459107958663272479889872234076748371604763371903986462242590096860991700171213017174642270523707282482207620624332042699729771972414072672037151982927084761880443556171295220753828036093163045015949674027376386240012741529329829692209110585914737797075736091752477371610403681454977037585503654230380149007984596608620659521298010531045663800597006853892549796293489484104254168052292137378188252812946704202745516135262937858907657701319476334116626009585032966243475832263077236155170550313205214347603490785035629179015038994767169694909542210795645105716089147842632505705990901249138783862348072361782978093962324970508518592565899308337424769934759538677746967170047251863550503542059775195400539550887513014481474648871501979465165012774332090669710983364731264659186099075837408818109022468696457688901853342296610135084436478228160890539004096839985470051551925685844843348992065836077921215062934369626165054881236771311823226331693643313144461593508929482384787739412013595996529938100690300103047322867344781907521703349799831012870626179287970681227592148979393788433116793980378801226994612978110341370053353378510785632073034665217108981934842694433141372191111065479341024412702805950720163478839521349634208046725184826897195771048106986819224266836864222397107577901499682135172951761970171744690420101050661064024122356079911011601505768927064602088083066163323227398629158162834996052748864508849585216544402108628073677593908422072260051496312232293985274096849613106829208970781098601689125074911460759780918493097348969870583695641985733175303019013474211119985658671559222075437033650979318089988167636433670103916436234598840311361116839363594245607461958405944995023752242202041191003153801979019763720874883024395276325986837495145856921975493562603737080014929030163452910816796727297341178388416015192325322281850957050072248266591707927070439979952468065795265670712816175000559041845421640617930991170226080107015700450170151912504197435563587237067443497338795693997725428986706894663582125938814517025978471719668555084599053522700565344892494680684168708308231432155542266856633068732247860420379594255944435933480029712449453443488005281637766836081488885284855227818276559470834080087006385028956661248469483694498581009413176795986552596236417532271777073691031068940090215291244153399177526042441996162406726345314424851037666684374971842762144265302585963404461708170783244598472334012578889548702710675182899914688514473135989706699881149190083288060109796990789651286924730358360470177183641466540709479946617280527861046144834034943299934522958954811310747945502947470146424209860831154033007525950968345652394500316237010805683713435934340439838474472787174276590545077129621399595274511607350947686441770125055650056957326360330500665313255474141658041325741602134958537693863355898799515754365402599562080447093947940261629242456749039600300357633077407945118364479757059809119452636474301104057705117440411223101039014504188820810103345988638599391428628527002962030904369181605585874819547392159459196991846698970990117924990231419453973819959088375237239520283148334750581182899560782808585551743203595042712488922762593605533574509733909353978629067257721172272547952562004772891613285230159421841152485266744453121175372584877584993096595678079336805004943167754612449892140173389288766600499867030005680867335455613217997703070765138749524138117586590926919280034040111000906812890081238479891107980258093940340978810214314348732459823307779039915316488327852838368948566770864833863125095763650377669701675455309119323679385392200348357018310837312707566588036545345803589754951699051461922916646302963004556040449987720875495231130729248959311600515290518846253774712542574119063736260583393525599962208331588855756366327399935346924099808807965994346825229260152294013249694731329051199447017521723186659681216259006532435501120558609245894649743396384024871712656613267971835016155364769244582620767929982852979684356264569051890494313444141305715079104520137837008295267995681588185716580851161629609289857263731895150952562285434435946651366122285811304294341648554909843567421797313068916548634792859392863003700796884801511047905050291914637405893515884057941152980574519398297380279123949529731046991703047051704208566837870122814465616961454720320511150126835967555698276498206077945975801803414170869498763611722488482502494417378235093743676784992224264605351894534102001037870553809387236043080340861077873569177469996401437933990735792925546187971083000548658208475983013077300126737328263625692390783950263039722939264488213595254619948470309084875954306924366595544402217132859998406443743558215220070576223287211557120354845877189528140457478467336660520702495406203331245752585209473471013134218584502751200312209188383270803601456022741475084455685189526924330577242183299711142545826074094668304528546358854152303539305367528738952830248409757478773995538134487958624863792354960930552516119405744697446447574060394321517411391728872489709642536353331561573834007861309573997090460002024075478762519492671283219299875024432148727724054508902644340787443959546821802275466304431430753959071403776665950618929718848735460020797117950522741871184118083654484164477822607714258748473143486500613965712811137517167807499800132561291618257273474095061372118334886961287832166029448161962123999936621233660391493442850975388122048229939139643767153697490010815516212717339934391520467484435081811824844076377292604863759958052030664785580658265790970214462413942310068068448603308422712937398209775738403196027864889583782631166206929900305028753808791982957787016508777583772866209674476736967706546977158229734471059143471328379012870998475170414223869615592676720208699675815208819987962889769569776818624888956383625991618410283499387999019311357610134195595448770646735639645859568394791299714491223915706361773750298850804035054208173661328467512436605316920974794796170055900653187675992014587810722624741831532479126560154017323288679163221535049280354257469645175129284425873223916769292234111825336639439511529141150128838352523967034327563771255794969821917162132956603873159583540651991736699549938460533271838172447410939794173511158366903560080701474928573244337817390225731251235861182993568995512817419107728622940296568696576534021468584952024359354389911446596291744382083362831799794975756145775765738685210589116057574500622522700094180285105453864220818386539533330839034003676035837919552443126707188026123505333159550142142183726164737794492257108297481237217381491740668281273010897679321765972149050425136353677007472051629402590759489311088058695015140619138206603036370007252710764278740930621428323550314745208802097251534764596016436990879990066258468477244062059261812434574470826398688748485556586407949187114129623242884707400163159316660938804782443891248616183850600916040276734029042305383783875146219234636127918487311893049208484329910106840120349544818428628032839088415560661804881820784113402936240929645418628757837499820084405940441723438347957922515480871179571972898297097271893281501912005610347698618441789808473063875604184750329351208321369248718111945211898364533514879485373937360097766217237488290943508750448827914924841037355131195140536607582349105314814994343212563573130878992316564365093412969824394742430958580764001609097601575352532194880465100555639422808734027991859404400182388917635953315657265491519668609589300944009069414884544541545133408733055258670926339963456812879692306212039449973167402736411397130078384468215001904220231254782956802305382278038459757052591834638416314315899795849839554217745328198812918174388675818753981923557552925034502694092517848313621438868158204521986879796321705304905367562874231367234698608702879782357804198601692250303455504281627137145370424093875898271893066697416796728671241159233047952125845957350633573054301493842884969485321647378546876962245001856403363247993466350089620796822300091232923208556131156483617507816771373151215437763125359019853286199526875922795361191235761509296790964267157849335323726355889379540601672790923416783640824792960744312977174666922915095605757164000453902399715790641450292160866039333340878127445351263161674008083784914721329900915415113741063392839723054290593365056194514015927105007419138751713724806345764311903154277853498456736550154576234294637892373750377291788204135861996828004888232409009365519929990110842147473459618571001353684088818274674124786173949628750758954163153932785163346185626563253098337238339522729840767190624754271382643623811447611855015404458912912485739422235831086930705576990393572673708633192505838471173773911043980471051876684684479238566642599973188504166393607271250842183967156999080370116912903681601142489530334647851992442052217447580312631069175166763231510148484427735341263036841016181275121508861877378924104266034105315732101726211595487225955975635614138427218940084522901245140970060797522777671899919632849666674807464342618839343234842419567481801298615813582930175812365655649663649078238075299246322612178836401590202069873831194596231225724936779478436479339282450662867291893525398094743888480433758974961894919737911549464325734614904618814014473112750298160523752330584536028155521349505990519238023604059679830874723813525272237439124056810257565510240765625867987089070987421199169080028709194502249250108402327743585785874734860500887898595068800739309514358260650922848928326690500318331010458752886296132375083390042007685364513302060619200778486452130858178492458968002252635544861264571672316018227753326177749213540732146646647152276978489924905427349704111341439845146240949060471839588085198979987743078998684689365377902097738505707854273481944174088443239178427216503833621887227671169849461600199491522267009082823442793215094562665505705033159875764615456009787453593064653913814977845829405341065827479099784710261793369786881208075202388254155284324789480588842014202914532823136519502525834568566269069290058653868080049260485493888353905098160049451808375257241624200106823855241573556599245527262753460816247770326257868052553797701238114940796418562465143841239377705440735429570431022841378818080695609746277317545119458069688098310953615610293302289015474291555864883575478332777546158174908423942611673990911734864507937765628533765124411757625271826990974147685331166848648087939830299874867284823392653959447385927162739371281695152326904570108722930324127962601876423391751636429376623871013771181933745368593577880548943675530194635835832448826072255195134250069288123454075540513916381326018915908330686399656877272195210863758676665930896239629552598206260975066664782361479139250792992429581056994769200383035338878963278222328832641285372806759902722176581736457187313969623754818000024372974377897760010982915999737494643285784247086714665522468056621626658716102434871051841439584404902269712751468682487173608116522906711348656681027300115233290249899481450954484346167267038062078218660704526969446260069527309758054428948919941341370129889832186732888923512934085262352895550894654674261521244436640712850129089826468350139397435903016200736872922721272590384127931169535769876753056697672029179108641273486534421842016260442944867751805128599572778966991745319673603253993017910051760113238601520785827818377955608602278974681087466973872902387972379490457119075633829776615084408695634713710895878796939322653043423822020936196985476587472931137076107513713499117388244989215917086096643146849031569033893071025232006984600722519665641911608637661913126471040385316219170447742362147360307606594238892936980754584818462345078506301302344654497217309210519885315644103368915478481023952526058046897936905449498826551909336967616139802609159404366532630033319866042558508645136461713378461112751968488329456883685037484663868507344027897157833336446858509527074497175176134423675610362133998503806154499770289720197286794643097481598765350989615821881056894284002480917322935894494432408088432054736403198391649587124734101728088272772334919261471867479121739560731097395212072111798398940823412438232404870651451266488965295002760377923955518991019005032140121918312268324737412200158818976727958148828629857388252285487730597231707128763507529606125961217046647148649229166095424911722389154223838367651115500180817226773602310775937359197949190197423907369362958516910404176746465562833216738220248783432303936409761851835320833161639865761582477912223545030928581977933962955484596633113159484843788041839390339230744888335022529730231367722086045177167114417160777876368597151180911389350752820287179708804814569337584845184058484288919488867253071233598229168142897703819505727016038640694414366401981673308575147281552294593101914288446722620195638564047631073919508305904798063476880762806490007852104065796466669997551216128915799541388454627146857693539736437643419536149070820785407878905073674588830442454186384315976548286921170585530305517797156415392640465354822206991449367080239631265310330791592974553448857925666832570275126040568311268350174581054513044581945393831313305695523255242894014145417979862160810320579014954837203323292656876855103269435420215498112504373342534379579814219883279599576947951300431929204283413590122899455989775199103165068254351385384997530359370760151955704137874349691427807120519039420058043682610088455130775130497629527092789267906605756019600268905780744591095248848389965603220187150226506062589054629662883426990279164633334452265064611094457149927654566891721886952382774790113760234717863636830710372918488930095262318447714924094631957231323102568615826987744486698644835383832525411977916144481535938868184240260338472628937620407922061620037744734849401948579078431548217255809364498297279415306971462062196469422453054523966361388396950256400729882222838170407242771807215458780403549868562869534581163484733043817530777605159335312249387540712014521460444551826454271035539906727964814021788303399194986486992911733121717280096139408565512364082336689132802207528420680177172821150340221628771508543132789284438056994431894340933296450033697480546365280288120063421545759748878582300286346222984175261847486420559369228500696768375771720844129060348948227055379870474152890724403666591038979725141293055832419168181389581022899836032785607439929571660962314578595079111878844457640062657682079090021545261909190541391670722917257839206714351430741236028933129205846249875723038309397847240205487763098040989750703701496485550344387320633701030856411570855380757913978984639482522122102012215413314948377667538398240784824837829629052917656984942383536853200400076812601371466401244776166930598549189157279839050807436941289659804334373773206721616726447935906333773619161665068651014986059680493749616538564929423973567663251408709147509705912473642049472056533103786243126652929013756831958420845879793446037183334063015863365154527935315956998174980175022888229253760191211582314594969750316893392230580184452204889592508096509099129064066533316877522529731542216007788231043275944318438083563764892190296388561982129583454449721417376878126283793486624177849568362899432216905209190250044095210824035391159077242384444283213650404755187291627719643836777673837210295601208461127097364610715361738347896584691443365684608233457582039318503171818322329799199309912543763750534254557632418285259989059033939072872026606790768715468823933446726508993513048282725164639699732472180094449101617054682724560424434676355413277971436167688062835158673231656241624923302369463689602396285516530713417591694284070780268961116820401188719884564335792023824177514262805276975295346218065731809746839883907521837433722786650431524340138873841737002686621204848980451272244924080519120147772796035097410961679657952874278721674568869107688750141075170044532069851868970058527885837161395624495337272810172104292980343279033644782664820299096899396749465700956409078900225265899154192703452432073288816550763610409700601698791328570840820013667069922407508691282489488955868427628663915050067186299254517777046278669447564562992229605127000431968083585029694889017113956028343868527441469751295221379555962842419944720021973524153149748623868086633510260335850871909489994182402358174185275240779821673481708073944718904772190315451743043014924463707016375912015291560246374969470964995251368045523268689359549590167729543399744094876319021149659556436178573967792139762158515123014671258556265884330098700549798640940645109802491784722123707823099441710376192880973968085592745513230657127129335936563402640889735359332089732658010122810663171926211081346605138664096021229329948587076517475926320200173460299539454757708795507638005197484902943391340472362149702953290318680852327341184109110469285468236781407689183789771829989097644812700966557970420669377960128767664774137787557737661254832747252660398972510709179099670075442456810617007198140228802517117296469979638290125002201308946386827459867799009448789555272047374333163651886835091094638918242365901174721199721012757827654253083816508658606615079693504088702615327350400290696468183330770398594539454883412412419258981894358906187048123994936238356872962273424272751707746585442352508009024734751985490568373493721516017069280718239066535917135103301727679949886660904731936622893805886468864374157384024535943772396140078557613252999482077345823618433701950951868033119450369782031556242866459119279631189426597576316127560474824838633584053118718041112272188432781326636760892574853646363491406600529504844768433402617604442098718518713601583279349967927593022465459186587978730576479054602891250555295430559182279058295979434682339226275942229701540187880553351603280381857968095841258944200990753635010589337362358635340603505383635015312066191793047528702990520092383831736748769864357477936830222783104596150267598949651132493638216054084125802977804934375751224484217970711604013123590380516800199114916238469033616938448267004204680554851798181975937819520791425209111818121945430662713111269579487410124350644544690982530726000258147838966760742665393833734268198386670815665250121244441468256121646407236690522146694208913745641645200434935741702940528120469458530369730850602587255491317786854183772814907842284035089326184348411482255614740240990062400408639178293323612262164543155153336929730145935683471379596545633585807242012519487525844165219689098980965968806823722410646985240015125574806010729028241933730294873467654847703693976854669972304598290952306623271363328284652179805383500972233086729174669452330654697625413256875309239571000251324718713887609121379958795588131069801209522417586417484671807358765982857239268680704176466045073185808895147512742422292588386886190206612983404884222242976975614566057956144439540953417352579721039457136122536454487952872932048679465132384584754149530474867856189254132023376733828467214731018624999501701589094729174311089379316194365200408275088563280063196219880111021300355695526678648939435113780100778973901250875788962334642833990881874681745679376980686199522331544082363475374868448029941262580328286193227361167986577372480799073629611426521720844353434137956508391313130488764353180795071255292818381952050182129168329083909566185376109954076304988850858049731591390666790563309789524438441250541094070282035838642504832394599355847018144323883707822516811723353256008080262567379061470992521763276514107604825090640968717366972788996854908464912764781881606070618022401350338713845389110903735278770588128714684879688652979003524074480192007154434587763753752023946126845539151095948381705027656536139934904789759637484269626628096105803179775275254662808304657742462864783412864379520024803447291837293542267301620635930967233070326901211304977389443045864442858550781849209794015570265673312344974611711053875750860511568450174585418213765691624008762917419136388037737691226290916214713105482232244490662384182812798056987521416049015588818526463288289256333885994701324462433528678778196672643105283407957250988142763822048617197310576723889725483251066932602012031176841778354917848282522379288663168817344551533456979291155621391733594261287696473238659488594828205008779777875035931093948291541128977980970502328991909263650865591105968123115545596415759202341099576286319997619169155447374444860817630472993884683958518482615250202773051724039670572479619606359420107629023245301432309484843241178618518672696840784104942240028347727742637310541959638832676660712108400053654600452293739994281576034381282667076191010486620316399109907599013838815929247825342031696669380199140024919518650397981906116288254071490358089327581922548100858254698878923823421076336060946987847158366197401748403294191658525969423758051615022957806404145067836023843664225102412148321960681631501260795897229882171336940562948335536578753920503204638077864632010702822755422483287302376445611537847215498485517088199715806839193725259983983676188435059319063786772190624034760555139845106080607548068408366392984199438726267707385747341115297710633716530258908066004665738930985847081530519320545114105860284576214226974071808614452026537246426857615513195282757043862198533642860898578513423973290987220994501303243235687306078766428016684258044152695827875085336268768914967793956095407533573965141398284310241203108995388258736030008142622357628067248433227272344275600374125742111794177391391639275622867762616906688075491212834696380879275464622072493388253653704898760574013038138248370691025159421114520183617001758212368435753266515528537288544837699893326935041229138514818434917573776075684548568938551007275800551354354834879862186470770205328279743552644015235935894335230073714929546282442896748243039390781113286849156381260814335602479999418709159966135553314616149160616193660292596151143244134093360510776947869785467417605288704678308347162504506925331083525388028210535768424887709038869878882625243304382236114988017154039919729583880104855594399063169775960421361361526700956676751083394185746137377523845217232447004365702685690147469097810935376067744137320769355807369676842052626214767956511443744339305150034405572228352456146006726469920003284386193322903070029880385480305431332520816518971382176631392293162142726654820943589908569393988458477295272986149345808013693043461765005770268649374467145247248816826916475325393180986834760661877080739939879693509526123603592997231860214304775642973818375963954584241711101799698506211086761668562605032090292603933016038206629817048003881665698049387015324661641649373938383596177185994858478854637242856656716071584737031731786191872175021692358539868730647463086974502919137267882370365620648560288426159534581816426629398859628270884808752161807699136118469743913442404011551835293138822574374359962064263190127300224161718756882116015186196774390528437475579680779509037824369179465635932516724555821793890647906492233052546726434042773797048702333862305087002167242563953405184734634195790911789032329353621759880215457771624002296636864407312432252063228147639425752342830892317026607595460011559050257846087080387833288794680831254448974024470720402821267963146990633781729689474332847028680619840690807107930112693458023209081975599130757367213258051875788329860118449948043598808477954196615402399782226357853760232522835049805735420009516363274731838880829687813983022977107524107604829850542766200953261053748002163761764266915014610853514685197227262489350268510514957948379749341221834647872327576558838498545982832848202108782039544341402542313771848807050781880512254324194865480819455176263065057856063398547196391233093743487058549026829572867110384915084082219464131679820612241306621451239246984931524023328830193942518319066852620983312182568720308349363150472369316252422471733853191733593977353270467938984009559500905866177719457677663776750008858148524680853766731759022583006480781756063601689885299632576011699822535142649921461846037573113755182140093608886206243095399890870597390054065773437878063631779620344215200606441323468231165196993404009720547718755432193394991559154128836091896240429108756219488927564928784567605345689434713348158848185334358675942529994787585667453640436099417351499408160621858023505775596501290123779901415027536524751423965556904933647411938282901456167919276047413338233595988348007579778869620191522195125205018144703614967180375638091291101908570067114657062974903590010231705152196373545950062824775233319740007449118166418761950212516451052732863386052465808252492139531676428775072802173722532370209395201939996629385059525378962834069540893128025045061592908671822547057505019251269755355489634480634461059612362907001637452556802329507726261205270571905300678028927007146004429449076998964366279828645558015396411265462120202042586731867276225308799691172062052688427647881162045245934790621946721022259033973255135562603602084633061232113006820547829823002542443475507498119986799445108196279068816489461610257878912322210161667622439558381354953980211289514519302188743354020797399965315226743005051135927870532461172083658950359319278643010411557870131949542573638518098917874563056360140584967704869790709595129945367745629597722801143782209474866699889605655771922497100717454723015170668603463431041369060458236585980591930003012346803013186161345524100240684691683683210998822279068231589752439898734503320016284745436562177167119915819173994529043706369084664978573957217779239844939346322036680092401073798871238537309843060833812808625522100037626302577756169502304358097525143202466106286374643176663684051932301092883975786082283579786138173930141262165351169645142888328819227484254556349439228364869002133794950518611647639550400439191046593394769835867442964000319854780067400113362206073486679453631936475157375510713545701699599136012864173458487664142789970056297472322112268732587234915795886465801298419344169194859821173861298995034836261211740684145934794205205499530412950362313988025461328742984646831679563239034839061505730710404242589770113743040694322802975118237000330026773678741874632715756116321746184325644518170080081242717167420483788625768872823382310424285814485657681609743056297219662336399105571231578460976180796118569539344710209066410933916841029821744530517044756563329886140643964242598759317090942035826073244486359634149319840606466215979949874314334839646460640742338499826512991311164508711000901368882004474245730224432546700593241578380083460191002161694495865517887400026375779462775017391830942073384906360529242223914778150217764419683851650141097460266893643362228274329150951480887387387264354156295087791488614389306173436253938514012884158846182217488733156278756839976951969317553526554257281434334809013121294986748562210905949377702207056825360383207023155235069940397758027673273626854994844017626509685872587907736472042474530893764002286654949199550026645041422284286259526828914087034806925360410116414410986307594121533531123337034046712480353536773971756811563100579933629969110595362310747321566004961820033587941420682731435949621992386048631721902944757162213217863460235232740325961098400983324733644047647306231910328214644417397060196928327090654683074182313566301820998133805374063185396694523967132616222353715009067535943414037624854162405070278732951479265074832806609030235994652042738251384095467455855649679763825569695629307376524132443235318914120818111244240360694363257693326400831889335501754282636147209878539249203836805744072960674786537929523670700262166388083184878075350409229206633340960979359767940311968905567887807451283351461859200161030947356509841038037248652534002586499586279964757764810181434261432469046796436582366084183686424035744841490830992743419221015785564557612667229222300602403074325032323494802677806580653915605600665547469951952937586415934791808393538042564954344441742400840136241379172160952067790383386863236738366577189671364147634836689230416103037083967136219648248679897394174542233143156025258728443457929525529012338891755039051873730120461979791879360463109080606691760097908425459150695122518619029954994228461892258830845315586636237330028846385887615270732387365210293867805366301451945264739957261712624599351361660119826471118412008065155876881924903233532005491138078593004067066761766573976184320956775514564405448500093348007702109432355600397872316966290037916098963382386347218116265289420122430625236536404276326520512711943466558331724229671137991041308803062432946707536035710190830329258650881194278933117393245747706673462097846480601536844669726995381143883804906251522608996191082146656051113217603742412989267108604849692191561904288585431791004888659341521596608525801719062142353308460392337507510330683563848361151622988981569814087900401271857768246526169807693943210252589160381421999253311545111362667458174985051992840420269010687793065905823507214815956259983381748614217762186614006851494229159116140664141667867200881102339606046053268344688132909520361506397925930582357599774270018158822370372237194444030675029034653475463821939582862168320980582953728558355653176418315855447827680576063653744198894980921163469874862571713195651225809983668712326608501812726001711096251167786472326442844338965745738922546379839319970298121198277328547388581020419080038161451242872807931307894362381388408723572478421888326229637210163872996124421923683682157194820321008311696884160762335171779925781526729396311479262973224351976374093645429054017919137398097476348223271368345929412514413264146460079846676132168252294334716108433933532226281267110574553149993074111828076804198974656412668731922273853649449931200447272162404170700836503775811486733183064563381332264051861870366845586651992783346003718464741905335363510786319238876801687627492070095952015651757280492126943388500305264025401106602258801866314978562678859113450539422529701758147290372556735591888054409633500344645339658002228456907572004257328636274094928332424912485199202611892090563539452124128596563780180310276876097019404055007621192510369096827967630351657602200156140254036835624779021051925008951531919088182445333353866049768536396888382092485336100684638710309043102311842939149236472987689718178171928119696770503943811841883236476144897203709024458948684989457043170540405077060604166466329356118581991386202239561734523773501959892277540592722097095006771516623544493317823497540269289634259787502160532647447070339112421017145828644814522038392637445243001987603734750078135695515576364160894960982643595328043710744846336116613480768820060545713955284847291579567074998242030728912655954291534312137690988799830588171760038384720202517353719020515595405646204627957741530010155865313976232259119853485383345158886369036629431041665233718322518511334216697114486135338479034562555601917633481947466019888140622699362700033687724457896819665721805810188810384865005746217647947597806943475736584232609614954052885103307616499714159379980158617570389308931769059574377415890093907591373897092337689403525770856824506265778544989563121116084191938801587907825585077025863161062305399355496117926026260791739931232685425481027126753059292805321934034816735964910824050646667984663370543615865310171726228754192790988523398848939063691053369758848333504660378341343350440452524752477761277562608267139871961614561063230218841715756417917420556244421817028589403915532826250623987527800031011911106338102804298519197603076867035095023547874700499764657986682813834895523667849140577301643525153499779402538116911799189472183532607316789568324734818508709286533460636218182296458868552204737026499391768827789981584449711435354027397554291753200800799112071544750486784643798003969817231216046395485327798427367708390016035940711589881632023412124932306691924723151608407866478904984726685175056434796832061902239450680472877081557848673382488328199393608842508322884056371930243795526176094780067793668614697946508006776635855992751499404691518575222480541065462742529992840805539415037833489899261421727269421923080335907236383569424157855393314102750881423492900926137559148441715048242934055989170217212464766995039589303314946233094451946876781224607515637319824714574534256992491548394535618545061082975932156707679536368586959854014515179611097518896547324350646015594766404198535500921752495532351109887430923615609062273689056137772272988642678195105403445817815007286878241955677811477865121451083681826279801991366655216852955094593956598031350357815283741076176421088848463635633922995659093436933830325652026860886927949978990192537552103159541732629454096438100451560700312903334082807815808078763672054773616907731305795659143946618058218491577509250990699181318692303515932918169031810038400988006171490777995863425328838211655853304007329651500156574431905200371344522657311940458185951397759745366840238971703913418736593490626186390897919283306116741506862125971986935872840507489445189645894617244993100559885698614245928630618951484971555178164778728463043167376290229146824374794030322147214520312623456709467787271999245799693925176339476017690209664401643254062417629401630380021727998501353567021794664602936861632447924483733210090591347559973037097103262422527339955817469670898375939956691444524232679003823217112749779290202914777990571132887795020015010147197404062928440334920039782528999540790211782450286954134642368555242554172240017330115132570040188481234353239945648762776255168818735868375474135162403973696133485406128312262339964829337225499446754760440490401516371191738096829034629733336166455289611083252008327174180194608898338553966480020679957730461665232408343619545781478058227292084432847163964754804623459289092172101888248618340531646564049312636911063223961389749466815273746264190038240161524918953901557225938257322352206116381194318028302224917614288418334072286782903651394857552244601246780891074959505659987839941090040819638400026697345259835596536897025990951625172845280235002414083815809524113149830310515398769198023167574767998399395633190135571383533959220725446872490905334586208085661133158962652224873220036830805988782577079860695255212190433878119061543286045072445503412188985115939344887491534209558863745020533530608663792024239240104291414802953813564646679648694662876539139907790566519469293053512385379630615842162505348436551998569100063930138290547884987989639329799293090116466940649549099019056203379275440517601532825480099358784350654911645338772549938130067801557956988612664235614419726699092148872317797283698897489638914678191131128895458944827161244488037617781176534404446073074022729747410768676118574119993817029204030090377048989111484272908769646596866255148128579832969704352282603533638177617169922014676406910265304084671279361743501033950777344809088779869594169225367516972723934929659791187681981925569015648183150824918100449460541753619093713605690372375605250218606588529740041862599285858521205447677005906858319377600778600045391951723744525082136072712573486472704381365730178954607187892850994037929306629992906748867089080638618730820706110206172672983377284620743723706976973689581623331481981933623921440672612067691140558750039135241151730538853053494350499006295597798454002432173985098311597996074043620672412313410281722786513315120840142699597483812733726929910609154410585750371641715528970822834604457197166561624274085139948052432132485631158763683577559123160370238864835637714030630317197347151431824197918312857271703879944653949498379296890652696706279307589707186178343133982150858651730261856498215446609328492225481732718624828890061951888019002852752807237838027754010422786478869954444886322943074780631041954805827416406459677169123617573275676063028942499227680571565362527195440508526016064256946320839849943158807491007079050554787152888057150466336097799577574854808282580625759085970144845760641704122103542731536164264494284041202449560795158659264494067605699675971423255237252123418431997390471361741041293455584031132930921027450857861871905579517405085837577631785100813624317777531592143446393073371809784618665306895294852726803851321170204007513399835064428099778853666555148365173391942371440022203236905428654446550896073456633814457840078195750158284082813202963802972550203244552193995071435364742696449746965998835005173882770306124570818494345699875761538618259265062298780120435743836391978080033953428348473639433020883403005613151678860092192586127653074697751775797719556400229735203690977156812903032985146599310041008260377461430910788831661948920306039382233380609027920127932686253471952484681704853145400115261783954833041661165005752100304057366828826200604867479777530871428189672725559940717194712455194324046722602595377079879828940461321692117593368146806080451559910376916345719487373765525455524066949902789305719562327073363071983340711110984624980771098698798036121861976615352096764009396117765786164119160839009211957624596576682599451754802190866031476173341858595776548403300470578101818660644636418087678618659231970566880337798096236424065931892264605232261587652040119903902605089712843961736399167659755123404339280723355265791755840615662145000095954776144528721845196515832266758151056189113487963725446902254289015776970565261719086589166158442083623768484174215527024428399757375069301782191268485816695574547136492650432772455893392825737505530170695609684835322289335744643240090046528571463708210759917674326590701723419240075319544667011122905610663105579193072946717457695176046759178171791039136806478494867301521422339798169158810405959248006146523885625637628048634908198551606246841460533401418921338233840114450348817423595307671030048555926286160036006406557697794489114534885898085457955051883846981170265455449068841805509801458095558110698827449552581276969621797589025462474183702773465927316003465332916918700627198802041569884999197678693263399736923631933721274036048261150881140084737647046821006672888191388711694931583750522350455529875509429495593270740765105869064627065864450153036110368958008703341099683179661110145282176870156964920278992586032760822794684198280941224608580775237098880483511907987582355831524619867165335577899137801374729974650074936124046508153183781234847264543589212207381025760235285063189515529482224165911300745224963503121411631503164798543152526129268082337188070895711355947096896931859344311255434478018778436154517356118346774191466014805148386947345025612376776875299892367343542370583720977659863614257065756579990191994844056520578033625766984926336548024281685660594709827342197118956824928321253261642571294456571566595710562373544670423113526340477014239099567900682605565746567204914307883548780629307111543567033148829272188228015445451136270258513668965227556631991724203385483157584808760220775852106049964946249946008262415868075062922713837817276252447378495030260347083411080049530464429800184202752322906692277183742817316933192325856319246258329812108234112570795061991121777824872903913759973682866598287701802490161800420151693868095019793127012988414404545440522074028426564098182079874864825347824305148326555386250188484612823817725914968722054210909957159369531337573863861743387786417737347911830751953825123859966591541288292505797445727953574793712950931128771187068740472544677337134172648482673684498764612060051480983153298816755043594484649096932590825709643251073584229671715717054389888366909159640176105720719917951905952132329374425580768464531098710081856390548922194600633366872684713704433567049865623200407016124238149687979067692513990153384194822052678583206502693714976696383136375415818963970011416741591303354837232432719454080001798334181187293283891952713295106971798881320513975501279700466139848806319921924606765476196732878742903833825666284154173883790906933702033915020456831787212644276887770285106484806887963212076644528255376312971152380969691069622304000233173767636595669309193494190192890174697584291937403971344851328492185241837622427373960030481633307742952773299925265178046714204816649426623558193596853665920519123078524319131663708646961514608405443485081416252539710156926656098391642082563439251310192481143310356367277909566841754420161100653231040515293757530713280495015384567190223207552356402812856525519443441842685942605260984546435533977177676417940415625686759942725687149866962620324806797122059346011505765331204771401789085584952778520128071901655493523666954697911267014998877713892158163611905756870183371757650525046661685663448875543042399468624485409329609448889856282953229750427765360943600736288142041340378302288415905118872881669384492068622768008332593283939663919951045232690525405990888123696858204688444182955856863857083096613411306688414597302133619569805596364886765603942340858995293612249099850184065614146120522053548772335833515024373450164455988389328088058763293899667475714041821480854413272120614206893733037519179626004503227606632646423492420648814296331394591415144003795673900639198899763597681351480772795199840518760557927779577304339505384774501974902084162584204805175018331233011001581635776005967079854407854390407998778270037390891295931017332096942353510308499747905892897830943009848638409593528328902907946222202940542652923092909390641558652210277475082476778677968693181961842492780756410794630391669917478521314032781561641455907461586985676382842645462974732794821460759109806114992243061632300064679452247697956412361568813704195506009500551075298796213058975715506583927427383746278707925473446838778260363375073063970083173651233468893937520557111032064103145189065044603623760599560583594568541267147725077585878760781703478870507616065148410575538965546930919357912112403984069000971819887693826025730637229088132945521920406868606617904767937810137952485462061137411310427395541124126572251372590351252891776442554751321870634980236310949670979382398579755180621857759194416936812748949352044456287194282878187042213826597136926755261558418719807740930736551046183825530688964529035465597163373222436691104100181564197124351548368089972918043986742136148524703219126572042394063752174590336978000016362422681054404052601892457064641563070844666711346716579278200131062698358947529743872058502967898381857522301386519920348397588438960558217960991572823080313134572850011983748834354148154922201979145540099181494203107366494882400248435008958594658273735433560722209868435984633644382131900710758695894167606767340426296023181596963495647727486787855267281521512802810019977007289617156225771845605032104291424538729533672647117202184124225488879410222493090874303893174288208691799114215533199571194864809285530390476346154909965269699980809950601807901705267453861113945052060413498106189357522955120682922292435599240271714331840549450930753757104395149433785531636495146180892002757927042737390127157589929127056945152293240530942142641757717263298821132063485070129619082722876319640794172100012566696245995039254762266369191744672259822249441678969545344532703160994506487660567894369692946519128777994126125739391019699113390671995162235471332903718592159473038755249195378796064640654915888096252957251133924438720907156041824167586535133476800289724397147304155052782257504557336081443713492911147166865533892803729531049541175469497323244354061050831119467001014525673839082001821313336914754885816466608085008990721242714587305567948284957347611045841945782601620032583745924233717072769072434921405948382822701670397717697072241616155888213409274179388402545101034591454583957314925568527675070372196761753109075351141834389236888131371105726409287193620806260108112936217231769833515892887313363163806043464164563182766319530963871683789035113634608207149010932913457590387485884968147713037438837563068016358893220119423322867739483776906128759742452842518424536384680874874379426465966570790574989423553225491814671792333150492985505130442801835453398998776138538328056247214902047615664864830826120813911405320089239453860961526638391084672842090477353290207125615140675458359540698842541350913959117387784090145262130218392333598216525026961735919248880641028099714254503094553539265364368532153448195885223845546447680326823816257755511973580673667389568359991941078244612867668373660319437431399040489063679660822216701385169901154889512440138678388664812627156559328541656625387912624083055812013143007449224236406175868256055910160645685973900764239305633677783708353655340381649039274071880822662311996191418609710086217387207052054122757932601537565114617407520957352360981823508103195845640775218726641158340874239402007368881162767026413546117586896911730869988050022625113398792187101920572507955574332826997200072969176314090765895911446514853729381027771993283773558715020454362190139284299572710836276770498185972049541478677347997995363809054251043834211489793339926491020643439139025898369978823975098005872224918743644415340951770213395768233086314106938355375166561073659679580678318507389499804763977023313519674977749673873496507931229194856392108813715451421028029120632640219653946121772239735546119347220862422374842127570380802617640806058899328762777025277725205013996108917795743312031294330862620851630128262596148541340217151102032916780987447528398498257519233755262903969626006902973175486836445721569881982443138908730312399186668776987156722760621776936375904853243750592384453675194106167361478631060559405949202708567418278931720980531007644618763856498209572174749486814586297962993929003131375178531446256414264536456135758427703908039262103454565882904920163173523609324643155814124622986814224871834138894387831548317068556159523808977665891960573170766349306306663900141957480129983860974224167499855426364472644476701679943639811401936425280101265615942504900767527249527801226004595719758511483329654265932999630563690384724707037896579644800753461910391493774038792700233118719218164236067853775179801913038487565468978916173564018702557145262486481318504020756615116397372816443104366461781487981820408406372918915909543210386542248490563393764480323970792075493367161404781186029462709805561208123454380828472533967312065036655245498262263998990730023672945839003029979473930174281402571988626496990587687813865421115857190078370633750762397758788902080203155713778590105338684964669389741968120693731154315060775866851501301383689840247812078938352906944735259027002826380967449925514675026971190343112365881699018824445749454915919686098643695272095375452036351358586618437375032833877815002341829397157657473576936439516038701153935133504278479822516643567908272105160707527348391438497623752579584005465945271731925436974890426743742379081942773598264427448135052772977477933367966288092162603311275601842863995108255215141973261339090399450266613942982165633115155239083329691269903692814752210294657953655374237958866332361457955030524083156697651427902580376384488630170675397184482255377344805148382375718329077187174681715759046381125763997481762265958420359172801393404286506345394396184894120834775674510996262239985928192459155312404357672579187512955028027563469752486432678176382857220183012201389713021684603426758637939412419705505971367497035125244599191335200474862082541611407778194264151437960101960897570140190994543356804884939886204303873078990401768983431344785533420409020952383293909909647742691234202263610485546835079383039506753307914389047876751471807523533621499998951215687513388634493252386507423709281626073783776033385272365783014792035455388609450971917196943717552139671726254224667609674967655744107209085586538078380533237115947341495817684172619757801521534087082708604487002871340944882449746754553287429948287950834915133966892027379454612274185088431492081146766648209099615994759234074262926011740302821814888492943621128911377561130111851721052168048865784887994537510615288414369883136493338228589262952983148317790169612121160334602529167684737771660162995387969217421417789762828878181395338984194965509508198368605967285168796180411206729757777999217316141067468535539180439553551242865016507103119075374562944902449531669642443506621735216978942833853395603504408201692346264189392341235563471285811031025132842944485171851522693125748521551046644804878872120009504969997373512757274544042755436906048565850028984661203293785866944220491435315108821929582795186838651379085106772382492901605483591536312914110067408369034353075859810763177842043360604692974785660288664791501584989633885237163116007111870414608778641213365209787786361881244629070584030308972147625182988727037847654231735121565145635431973811619492031263192546198443724551595852119630092892723541705641560007118612591256153446767260263433710105031201946419071162505312541530778385724000364664393697203175216223767332030948905494464901930806127925210260661414007531361534636882896413940110261274159830927796275072544756158962096589534835310079456798343074847672975348920827235529054230172042882426407995728816916086218464385886403798114940308415232810001569191219096906197234134475295515777731269964974807097333051585970655136166375502518967408671999127599178132954658871651703810930765255208025466850449396395154803932083260993039408910497256281730705657427102878101059624801110730020225871321510442115350854537779682301747851016823686373920890303576561281925805685213362594291357359134355921284722267328141805806619520609000372986709929887281196833937824650238081194004216316848332903981541577014366118335816134523901965069319831413047720871935142928297456997986722381009996001320455885242338427818699106167777396429565979298443839712769143254093843404400520090861602891277603939684529419217412890927298909160245350657497590300933948483269290577742940485935319452358219634752620152659128091149769007672986597016621688872195822070051881094281352791808815109895470207305932348166937036095722733360589321898116231734129063828228866922308267722196441162907013884348251025765289781771582124354793173608651270837681712833571163545654486876045257915873359266580917991833234909922653574789581555186559258623462835559693230641649028293487075174945896339620623173565618671454159750449530903440435785248490726883717936243129600464961885748172618733082193790214463774305305823456108595981927529340110699918944485719701786332165348271345527876309930539319385213407731906454461973771203553844461919643386965469190333399029248357894915938292019667526140545410895763382370289113211713205800772967161062404561878378278140708917118655552855515852888642804886341235523841969461431254473839914417380115223063569793648771247002135063060902299245032985834189345314099825928636093988451384701475125414611912257261382026043512641854449526162788298483812028198678274163054575577879046796789081052937272612240548877469828134329933623943038382499483879118952845566123280018654196897058873443300721075976213097347603337491480731549527236379820104453878373579429147968449252477704613290644293604210140163511243476292957777832470445181660842308189397840154956353274738660860315391196788631433632191613299464623128432420476879427691956240468897989894511341314461818399141279277049576729613711393845194525940649305128010650675883522469393545420210211207889023379236620460403403159182061294330633157540338375410690292124782690352121131795720638984586103715415789796385654667566088576804440413044005245743950002605471031699398959856571809716820230799077463098435472568562050906236036495969548044285301445852418455285095385840253972569770464865147316878093242594249746124051023235608087047087702012712967846932046824947234442478589504572051572678611408499020916046212927856662620835626435283613939382848913497423399967206480291601704620811617889175819112500050772619327686868843764595268492095182983534780973710521419004681439717833652633508786084054413425841325188621305554857134362839501820852309137974279366628415892401631337329710772421308181545612456982276994700194144724844077037703201274429457749385890130842216273494764610731076726068588899830596557441548970420319746994454812957331795442158363825974709413465125955576203381475749626410538913976397122753326341441162768067079119468616153691955308219229198087978663206013396986478831237555212296160662978907544328623713239096571302719762393179349550196705846962231103142013068745455048014669379949363093806082040955511666143964922736031417967542583011708374097114632582624302091604212822436162602200747964858614453838032364005678361032481828706022928320193094153610643820185450428853272146849647130465276019870000609062948574537994363660310698026686440488767288588385840665393951974526172238782865957485627754467525475762846747255788742086454969007388898898857273579015644310960965678958703388295427752600679180555447901433653422143629792467744391971619266821588425336136845232665043332504995048615652559032680075248404523980363023273456738208250747469286833285356929095862669144569949388185709085235621887334349149266579693979551541874699754159353065678084714463648832564466551929433027437508584619946539814729998156667060673474659798887569448985147826321436201896761376272083118025934740339296828291671403709097221000446935818712215368856338988422524524962362819287688385521501769164540311556206234791668611730389087541102132385545468165631579555921351607389467764789403929856335433243885034948512842933541777967852077080766514050629491521979064186357581098190759902558793801014858998916165078453173285858242782477336411625169513407277289277628311476691081307708052777743699940207731233384691869500649674306031870379116050615622678836700409136554732153667114375964299273939182243350301426803964672635556001686173226969323418997253037629028207193199973157604942213931922879192339950767173945825380524687116728243586062218776836958272667494042827917763465082851259190944475101459874751167370699819106909250094857449727627574521938954976516047238070597332049856599278029575713014258378164878588360114067919007552007193589310082490458084694867905007511966771117080056257944777743899332567458450629273947172441970285445547836515760864761668032336784918488646144846063098528335256371130123802673270463886286777344711850570836912445496067447446726686987216554920834853459149888725578354417967584604373117195605162553637634963630985532998934119173637217810824399919724246134059312569098212629719518810693881331083275671416273740568247139519523383886018046477468173771221938417679600106680457887683390124737439416896621420516953132591343839520213396554821936154291566751441993523373507651942764588677941011778548636972335524953896345664827393470376516369309466122097606163747013204275810915798946642952074527467743405293609505110305397241475765902409835309187743881219848792200643007111094326979033046148577391610403032929486769665135816621919406289692545711775805076713386662822648342155280996374920376887294895630178232437265049606213310154800677426956253731434685406518344588516233519930834591143084049252537664493943198876372965844127185550243689188547278347146302783623880732391571814872598410585450687842852975363404203882846019767827735420214346611770378487796157391608329123483434114357493079640959338662986187139479770376100865260154941490442690519123022251443197459989291696978231228519801845387970377594748524125795240499318823518168742439493901588758004181272565514832725677577450643267703185018969680519776185189189347855808183123955087663750656022072668363997246811682278282977752313150111209775059428973686550799098081056890011914670682365860089111905415273358381201394519502802552854904180539875379907451146793498294136737722313458992021602250961851338836796390959975655085006301931621901106155290148952907707210725039482257603099765590117970157051116064770614103473678102531778081324474273494454312427174324888058781634655324651056628382430027214234064360452727754204213522651844634496191881865316768255872835191618524066465818459479330872977135381146015709069205872883562035699498618976257992411686336636875788387519707744509597875924977898968225901334098270379472416914297994409095342090190344576404683418430002873188351483430004688297646711350332097433306538234555834646765528348478845328087050137313736535929831554844392535697593675533391659864324836555102970820215121232651158206111046467021379075192137089600144562125218078610779326571258067959164272137163937317676982083453108499655205268925326154430455051213549684992059603039680553244850211497956558237918304647311382689702674641460512268796943149062985618420904850250165582209700683704630859981039732452172404838202560702833719030924314109849952096667989945822504133058955832268483622212786296596352241912233732991294435136033121452239449303454796825461659605005551321267063752502985025165282453364883582262155159059261205359063772590061605639107228323698660446651078791105816698552506372755847211786936199908751501850277970669909760451441804719604845315458119379276581743092811879668987709145658810742922657209817775550735722989202617273361839945072500439759293932068083139519037051216528701261256149334313011852107303357053696449583930818869928446916896018250049232869539364583516155022474443182641271701822445219600027678656317932562798522725230696200671513655065640364761966271289393395281603930710706619250290152019570966398692079168273597729833028962104297272947664017338272820485639949043558152661589089237730736052547329256446204367230022574922514562989573156973476939378968889652486458203029133735141073500959272393725242131738912381585055047530497867506075692844616634896325843057222452839720793822950737912370767208248462787040185146214984634705851547428374565147985450067442901621758102847005026451181842389761023882861770763282039517929310504980180624393308809942819042181749716073826316078243881267338432542540700536207393105943731098715634068549524395064704112379697304584115314384229432350412712848024757608203156880513759773766373746975925971328053718273274604540689012753466298889568353688859244320041230083791063358035217782803633764761258675105267861025733040797123185202553368513670579963054141325503817925750993290953976636204551864195944872052784610068145195556044705269356642297974445746701922247977600013019928051950669285573378538025862278567760546532627546407020570162586399875580491923675928265991653649014137394980157193804385896990861521817177296445621966703599414322558511273865606023057597547875316031800014610099712321982851788848313506815877093568790912859012218572210649476280554282425671637084282292311792054307192955963330120190547113539237320569461593317475467200694376133349699280124734982898104449680776753934993063251667158953619794517153114151076250532431615584565454671108856233807221526794370420302776494712179312171449992059350127898776718185045588929897637295961729658293334893822544317917647338798913721261044653239391447980363653060987453093878977603232336216039670407120985841913750891960264998843633223643389795326007653529734126552610979710020846445865219986198619446779633228263923471105871536797005760850840867382113305120882583759342662283017419015381049815040203653015543973276693235190998070260626302409906189432293296322125026723681165920002477402121045690861976509767811518090667421864820760938135296872270642585102837273516474325655337415102428251211216188522818347131442462670626698806447430041899712800087887172815641345379306996168705921210232235320796507195941798466529782049098161065542482387784596911481470674130036922533482609307836519317137877844159437369630768584682020947065707284103819013809439943982980121128752622027608435444379933650718420732585693031488490610720892321475518515401372268408928629691333844405887309593339672164994154129385474201988356996981362311617278765825251758166372145154940784426990300244244355723307010081775810165456605302930512395962265239345850181446857282888104793717658209748263386002613918451405442370676116556137424503417962021845651339328994341004898068598685109002600976891280049480171408029006833386364854423921771303696912519621645191738983963114540642760949937717333018212229719394732905402775511246834272777184811669546012342187853458289704420328817995953129970970080662126040656941250048015278804531766911793114505646651196938825266764767296013765691850918604280451158180068205662778520749122779285778969503541538784306450595849661705668982459763876001925537875869691560798881343671392112901684108424251763471776822806954511099976442407149146829674261087681622451912415831551912055868469521130295439125112345568049645486164923027284031687436634431630559357856155872960856000604236703648293675111757387894085468122841261220644405734140937828667118660392185571382798467202375540519072189496208762595454219455896331567801986234282969287255849133113913727178794447164828770383982036006455637839345307299904555835383310554584059283332426308611943842856189266792624044429138307880877828233901253016009531028883496051696424363266906262778920819623727880984582346873786051311083782072691780242911836584915356166154734630729554440216324418390980180012405777239465211058188571705340184328760091366805923938527265456995242735188298272972694709496225609679926418311208113985190261672570542967785966818141427184634746468398190618491602458993805977472331232348377865748718150468540557873652907208917471316921291069599984217515086053787917322676882774657618201227462091288220973944800674461299339609983536466977789859073816404647977719368379606985207343418630881905736883804154682247551136708377998990082555211282720810148823725637883635567833740214967164516930251738765031098982915760998924788253870008914474931483774645804201881443303568914590533113551472621266694463761387404847279336070265407220280192387249988783216901311228505021051654918242627986843468567963470037740189998542340449619189330396570367106131429067031922235469423538352696197861141362237936618965073003396889245702989307436342643537718024032507845050736124634451812142618542399197393571629858502874028227797837022420761451069495620727718092995871320210206828937230479369797940605101161361148216362481882652231879009807602066108527195082583893604109371656891340052607516648221574560006243222963362975982790912905426982790218050043315532954276891078525079442676650909769267117759037269538152388217012577930555010023902227242651844759153812168261921467570127579191065341215324939667303420025295076617994852516633682661406788420769202296317073392487762834031174510226346138928834983316116862867789309949767202818107558631866581299556656635759506675651190740643394161938641506699715748595713297618904320186888268219701185353965378372284247491177367505897910719591655937438626733327942890950368956607437509697407478836517696587834122686267890370842134116342931338949541133634302679071143352168524422441856846866937329578673590491352674108690744685723189174141648782557024673003008113540663835060525040333388579429551462085795953915386795448060599686515395959337673912478244693567987532995750643355859936867557216623747928277980370504838637711723195983618132105265870593929514798157786846020751509920531280739670571560048417435867584858432643979983184592683882143012854754561086835822084564012434661358978364409028276734532373518349326672237795498389048983876950795042731045681113020607533299464924823455013573051602566590108600354265802224987433667296284064972890976280595732387138978464651844293970187851541639584002255371009090846270226341110426302565296658368470834579894100994907449368610356130292325526824392942963230318741693435301441269608140589483328329383030432164577855801435117845198624049325412403726792605265152764151815805123969523801666291863843698749266104160918770548786986224553996154207492152165581558475832431491602703417592746009308054795935452804899048641595102907163704148144333239558868793253870201870250518766501421831481655686950000179855907364351744860634971198479238522036352123585015978373815551404936909917798710026919466486034029804204098961496169629752625864220436346349271777036404570971553611016178609647712207152200527922535642802787334815117753552311182050226631688298724628995511045468227616726531532771961780482135472997193369683532155490205478498425938481208313320464459851361021295765421672899521861517287335233180543830480877976869265710030829477730071599155931772233770217698568064811784342526103602683614873587000189611697841681924573662403344834991696118845549868835217782975310323794123634238996693289406899495753902644353038319469389094938483515887175525777994040405454622833957976130475390153299898955544990455336628806515816606410579601641261255082805877664889859461740856600269954501343578794636651096927203134399113862459785699389815903037855842044401254488371103189445208262963921701553995294655086401333223600080436452255566861490221201617775301120127889336899325768452501837164904697567915735137920223761521671986013934821585716581759516492441580240511300932405183761633085343555578840581601041684643838011453973647270044921495986853962674254627206549284648250602813674103099610520287009416370716239929708563120275950368931117742068638779585641365589666674319173997213389937763257179439017207292643976450635644874385565770850337875967982066269138255886639729673157366802923608086656678372616678339962659500006155553586883321670063511725432601732468235273597894222414347806251773897221996748182620916968277791651093548339039953127447142119977234070190898728744874242123662047054774837275143729585822279684297803730188335263473208835890078008663638199901519989576999989016329958727211397626666928751718933460415787803299185784873423686534743756199824211949165181514432712585110582037289358203975799482112541365971112480560910372495591019168017176330092510411235965967678577060264113637770004255998369415671167849623485054549598955947008910843027030142579176237111981572024579244960465091563951822758567494622193661890094767261594287280385932975855995974576464115964364885029658967309074660454005593009795490074935535073714064506261518876807549465297414956576068994489062627381443042066849120593191575003492741338465837955821034253994775816265104638040164420472403021848020966583507282564959858462685294192999087312302110474643640869722609713236643636225593744185292419833598948025313321781186047711183927102546124981489763176034168775311779497409770296633485487451753332316790326963710309401954413074965254984357544040990005112130357922641412481000148256807075927014241856630259245119260145880037049025858491664539657682331067349174730222657113883177254788226058254601733202516127938577962028020124489581190077170793525548982364395663228593680774141749327578782445172809272138057668575812003298131392534132792966315274525518543219278597622904493619526391449448448749341674812304076600709481887338076423297692639899389263944518514499322760108878440108938375817050761581011345848660971456942409018131586167428916174942898931441062547271350146663255954325371760886271893572637996936437613735246475023342174480092441830134112494614286843857534479816115696742545109598677527025601594637698784956813865959926369952423906901768195026170279066916782349766124936877994292759600117143218399843426647864865421398693427850192541575332696054813855774938117482228350540868234115936462736786972905527021229593804034316548996894185415805951934564124602899698974995809726284422690491696380153838540258912604003822175279995814197565557468030180770765389309856187858303399885810006088034322049918879753415398725877570589915652271541790394380370829497859433879093201184458531036156254694131315094561704136149499380766823075279574108492006816122435583176186198219778488048949764486939247614021324056454511066283622054982400260042436617229477453149796796687802714120998712457880522865818379988088460831248188116068918973128819734797818013236161310239518333168316177506183236344818433679257613834277620455265552806329825070673031385810913420830482390861017625400115596673634078831495170928286380549605453447828872684986525890520381693682432651181275155304385759719315724604430077462324010641519702153978049571134266997978852293018855132049485476653089861697401371349589284424066040320370134437383994603577536500087853456183834661124573113857947707511799137672335704042952146184284694274834727922755058843203454809889399420923377952660275308681980558195266680640005183943611009937209837630181940630423016603656924065432704238889014069661719312570626242226684081700620481970210619363433740177735009572890435798877116451166171659368655216190351768031226459985910609460239023581367001603437931622978391051756817759348731617278390358859545577617335885977416750538033729220459623306517810290127895326252447979939766512314653106369776494187885195364757493427037366332308085085929580862774738353443790398115740918746526863899107800303419347592905641439874691012828922878622385600876171856162227786603565312624519440867123158831348834118858438520592262386286146411876236071150372834427857643486937231507704213655151717772051561001651612504909141293532661654001893255781219679266573443587895314891374667678500134393009479943594937385807109526253158745079697617511883732462649204719516930837383025351565625361105916472405838898010413562983596565144986480295631817213149469166093326981314088181216385478984236624280159384665951208863712223429241894746732828588837335610591725294360215906557813460771271614589031265777207056086754486455757699742897920822741426083575078477149773084118655146246194277778390260467405237262692644544050642648094657858541134486835475194005201041875006456144307085325063499502323880914338944638433215396859027707618452191414311650561258807622704874859903932999034794809748083631120357032229781348427813272848657709358937674779049941882641007343007599621326503233324016012629200210505331224014467890564782234594853213680703831138440115231980161407046984990952875926461316897669363256257006033414094364082357750236793804280076675186968148331376164868495921055921238952964066877752142906612671258019800975806081875365230919673669596168457115459451716612655837031346747463059018755857346965450173951751263977913933821366533633912445849562027381321403698874765988133365989072774291458334905197350800245953534474257197785929388355710985710420520318683266164627449658136509410618226499511319864584977528651158208618310579668970351447344789528555552026647906661815114669792459409955525383176578732791686812410129389266448460143006226133681370518806359917484292342950691672951634063534030383330707775491834252469645968351973612742804649394595614902568533797553915425039392804513616046994168205860392264009834735469242004376818844216947785237046031833293397588877738733046033384702500770513400778609643269870038633075428798876991092369224186053628010784280145194230688922226074123665546319445558560427712480975518566623243016212870218457868238263171939393501137518569732058167236763626034677364926540146949911497667613209014576923326043684541950495860197966597884462255441817368748076095414878115071465029366464717418090184951093376237884944014109959159424067393715979896231517926078526933397434433709490525306992384164755691872260884470002757105079204644908888368784612871423979104730422401522951995732618479198732002487337093732915804794021073224781485185380068418498790105930327998659221685808447046105425074428344854149004071820582025828995813646235731982867799769696613622828716188174735831351522226446604703258505207207729965828250432116199070860955446059404324896438742348199714605815938355929583377635455452431495415896385812759545198513809248194315439031381330356808986649725291608290176813053844455684643287844810048545886569311837410203985069965989261124620439383961033869964419040382631612160230457612052191987684738498581540310322935165047273707888802741811589390388960577640368384922118181718135582130527613289335999224602173551269749528890129090895454165996805628980340433405077882592154396951930437910884912633706342108467340821357125272448305349595126944456117529008753917977323328749637777653214098936510749577705686020917911679885622034142680384998972028187335222301997451237402810086507641491485979280180978105322030532087683441044918161772989457715096530099716289589228326894351549534022849725025679789811024626574219919544402114214610950729217787984974801385057646473146520198616528856237239141572518612952092087584857257872925166048004342683460520810669847337698791447893884295843445575095593125389446461912142287018783939887254150195711418178043429512384220384791610396758245854267601230249758357544137341593848154344698249794181343436428755971217670832673322795934791263824510783381794734088849628236198809083524512452963764030103202292964119248123672349131868339469610918734183410021751503242912799609733249735611424367410829447966312177057267882174561614264344565471826930951887767105651028878349697367531251237146455564624649919421776384705788440027248679622558438926128081438635203006216153387191759366640637110439653138684437764492039624644168288003699190553661942798388932562583676513925134282287800517083266390522480917226476150836246915094156355110890364806192783344400943622198813825176275770123703827475292239988255192036823040311023750507008766855169411119662743442386897493129071515287816325427303978173277779804212263179513442032682962031705227224335655657859162262804107683374528835713889445187970608970926560266154149839863323228700030882940287658763930345752786474834342372091547808536260735773417439372790269049597693342707967201155808180058084094716209246695784702192048068040279675811325419841542601999076954197309628695850827234713948927506748374391617518412267587534389128690546795375411707297207610198219632030357893956086918553373749041972391399249942571479985043407666128544105976026612404722006430827244214086028692954739220902212767599951279382688502411778545081535196003085312508574100540178202924808911921416792178933075875305441561718786006981093161788584647017761582489810937302633015666748637828970636431495433023497758071649426227414298399348826023053380082696800385005386505142569992053736277480033658721962464673862735673116899096038718643926744453745836139741584684114952346017046641360111455659019422177892888154510754360325790000749280225203826914818083157476924879471265595390896870218803334053887335801955323852955238935408635171364113928982695316996935388955829664349028582361929218626050427614352781355861025800415762963096041331675202032099215857334960859046599849984604731152637909771527238137505056204098942109270189615676112468570169465802812026321677660443606639698670482652339294088089131784257243508664141183060580293192254277112367633114614050864251642559284404355437732549689631684898620658535718352288508077367513123932047137741545325504000723015086639379975313829099161658943434710639287940717130294426810145905790917918099316584786893881310146651547668993062731565319369154019200084876109147223095473750920922853967323643009930025296317750832760728058218761623542830990492814476276827614616994075848832279775053840030649933551644124913064603535909878957647580512097504162760870594179848533386548659275636628799770953937740817748946732577244713093523276506041623674324198573542889139888870589123087086596562615177325882362131737959766222511203043925448369495783371697897824408295038357731170363885395903955928701908806281697952154597738088510337070805481632917638519997642578070151434468141773517882818439847248987884223529515559027989405805438382482091970063403334821369527956075374589499014555226897106370726654005540352705393587704517279459376913906719434101238285578892259558099952449121054039294021856703939408414819719636548470113099426594379441324638563936995937264863356616547320203257161968406731051762097709485443491585812774016139392743195865674609507966690023129794430510730377938715400378177060305993353876692567493634257665984105825430021513909109044622484921745252094435616079714833982326774498801316806810156880911873467746914691213253490104698637584788685371896916088232961846521602425360423063942543218032838514451889204125823935736976100822055157302660848690521460165145100633620340588711786166776508705752360488268972516734246152886184710785275105794323817204132409721859993504482333060799643392709565088648768940829296510776471265707583902643453860595473052694543730572819822402734907116422828957701590323611658232749376027155541620252285774349557731217696762894588807768832033103989722173664963060620463513840271151850452488728966613777658452365580350677453110638278899389391141082820195228556472326492785690789158207693775134125144408297666569925938742261488939728144058686486933432546424052490036233996820601220447469481622466654834756026051650368607661005919547672541059779147004447013346917105549095476354486158987328023672628734882341880697721129440675139574449213956866084789034280672321831820234234832139251010974059038966406456104497425373539149586770654736044333256999852200250990467895469307327513786667952142033599215001423823692586299669147732393603705287242602617116139610685558615399784735304219001167768425325688183295376292511299059688291768323213601854050974851683424785587390142613410341998926510171521549451622777455595865389032443634519311764683804521119891063501932474497281772187036647809911726342840272889967656037748179106641019387381704793755027900195234843921138943262317361516672959980134852173742428354096076647772157280306643086762415587095010209209577695798955837359944648690576229987173776250085969584104373550189443949188002789034412572163474925617370407336698189671031411078403216121574901939497981432276186558095624306033832059208924901251719753564313577238160811159906057838332470976880064012694180534656256996983112741292052481331575450597924181525142624512905714813773133319214401900931428300756638588821708674537365822540366082997237564533999224577503405086489108884942667649447600971287978781475973669750137721157741589780542157054266724696596523426785553964728809084881510850184938014547693310130201737074833196866630559141614668148481575654183055475049446482862377962705545443580746678491017328153484483593803150841715677521544593023745001694210292320479906291539570045673193096139487532328802305271233328709150083893964467605895561240557617795049500984795449867032409850156866788379968300892631011573586735299638204083580474666844595333271395151656534166169082408909556393755371768869428026798316887676882032392097306719095611575552488838601002004054359466068857010315346917603773450538034576076378236793011896288479211592601851104585048405241716410284218734040631970235102296000593715964090072431700216665378023555329532146308731466063394707019447048400726641303389128482130901652708430983834104142676572727228417619167877710410724117721815191563109648742387112703099536107129470914180138093885321639054713159680734797925063919500831501813967023792168987046368569059834622487065764860047865767304530866066279169642864166439238492563217381024134346434928978010310630577092920409284278972183432177492493406845819852115258399503150197691299796448790768710834630508421938492957612112534080424138318718623539084725403075719001832368764417389327355018923057273002025912946871939168479307278536532744441128689731842457072456423820686189313810004367868761825517427224201505935279153732615871929118277683090630512164844360483345475442865961465289523528486784340846876179757922895366625440050698620672284468307373733625461258153344934919268541427659647303101856596030540773467209096184633148187852995593210445703987631474941043750393276475341741749182800796539976813412199534955651436554451002240933850419166358494718122280778906765665806083670849729320393228441589017071518494548393268748606342094505313491664560612700496370982713911285877251315915017215200239449301297445363668862719449752405202019695299780658541643127596730764070758537051985124299081697237876538589562836808874034930207921660924298217124108521554666991888406943160983713148579910700417494698726244737104531280649806406083581222799523849592196829545266490596319543297991923725859715806756371805606206611688823956420809133225015387214046950757653867025808567523674603968440181607405177526496551859085846857688678163471236430341079977280051278895802282221757273537792001412225418797157192958112202489200509824753787215149520878369988133408325159461130961237986127096219166065399969071167094476598098714282748799904404445222442054323907905415852196342573150136465338059169079977604913064934748868691627286135145498370185731625176115929594703255033238906923444044377362811383524020325537163800539882171786559874369666173976777798452279080548051552525468424985281840216252734558005567379653994560962577367891625759914844566778364176398076833056489847593573085824184862762022400882063946809943469325870383346444702275764204120242448442855711739325167684808400749322845608889590610572414809164338828451484032869310762787193093397457443376179569213958843461441747843405651670916262572824331259891660020899116437218205839603977227810509422631102643459629879007195759325000330495160439821196485500078819339672947077416367722855612337524022153559092973285208262031819374124867580080406363043617848181622863787443399312017671051347388633605124824597987592738744340091258003175118062157107901229278716432861766519054251045516036618041627340434669830296396564736603378660001486682898716701812790182256403475845710879695553000152136378296103065529507769662509654916239484393337746258544354330299509362401910036187866873053995650425463534529641508875111970060251984387584592286921784283805649805685852309969849833074143574116398255731308941471822141855653403789720106845896495363867906151478549833950935801128157992509746899791499979939101939672832176781215924896369183236431797289490149637890137769367414369425349619217922650091638071891840056626047192288086087711818803532548866025532450760815079417140456870643300326141721466890907282214611348423297172066103555661631380930404965204095039516859853238636462091119662482231513018839882671710121761899590765561083272640069977709078850879198428755236193008210057118054465321315003718942143272864106838693045343028632625635545298581456953646869750647864988430980714852773750005855721687125053874493343434320542809500387337654490374774831425132022013183683267046141909729949100365783005916669161324365935015120318797206832197886218521792801647649482178829796674498600002307080665442056640521317655353495022830774460812076357546447551757925517856390184256431137452345121990718518512950683178452580165741276265489753370179530759062446981859969536566456641137733085377538600751781065570731306597253259110753243399353857933190365003485993017622771749394672601553958831485295117105667841841828558208434568293528224902011038900505851694268195031194660088920299625069275731933761794769560922382979801543645450941073210800351722607056590093556333466678265614017391460332701910132232913091084402065307783279642973197645827392368757430988537401929520735247147609665983933330950064330706526530439549531348998387074070889907266471788193315476917007663304880595052933364779060410987782779117139139880314259918335901615605912825802203955737473863861003996716663442914858712616786168712807985551817052334431018688842428525455541341650437508833731429292971357242164634648455254531185483142228039189722043055130754747818189950243958620256055034735901331614354500869954127986989120428667626087520871196847903253058001408531842363884041254936961474708593948817988069884038824820014465027737156365829300601434201008599682030191391840199402401578350727174945819874833887134031016855937533531352142168986253453711366081738237799895107708671518471043830440856880727649552280215292072990354132764944389118509812869638759637700938919653456455443371683573690106518739250493808173602112775676442852075795739641666532477926788713236601363666020210107089692280520855912781674229526000024215237921933678868569460645914142462393769921289781635807508529865247143853659144353269544432657260806066087719673986239403066576387639789406001980820304558079869694650320781442413332010684545686683139197963181015270889520378229235957084547529470717631510377915259340394001099227832898003076497687814229522442873863459045796094265963059458554297222805683687682765636734625694381283553771793020521437623498100401341782130664031972032352861896245124098297414968997287883973929997019764179614297414650074613118996382384985660021722937825391552158165126514252630565862521119292685803802712062805165168173928614797944574241600728024517788772224692393043573038926708088314109577005394550446197738755669671596900436986297523699167870078656022980904770298851957500939128754696754443741784099913599351548987690656359983414788733777849607788639221916179734716594030454263675789528329275582233810357398305086108983742669559304185164041112299548845587909799516443099066906182759373017728149564034569399453602984355012902323441453372887100337058120527224574877657830993053625228609900577104505874075815115387158155869630886050650071540978568773872348789655596547770242717759524233204087025009407628783428938734180087571960761486525584286294133350888759952144790489828681869426600690111252367948386072272755936546816987677622696835762022081464719083196056514811715666676891576335335381624695855694730806539042688106139931998220777282972401083624321026984343114474163180520652354171776213249773468161360453287873069665100887846667553115930934528804871510151574176530368601480011029961412426823744763828665587642342709775943008875073481768743300905028335883451476277935395310209426348016738138762323886909796400436363399419562420773222595468676418905622096694750070012942523284236708201534181912022391666150897676011736327792492717844476928074949652133881127876932209243182284038186059546536277148655184453670406984804091271945509295914648347870405423617478531721442578973543316066823381023673539119442071457723166605519735724106251355482497119969423822510674906133031810936408213432678141973821461851146182428965121031753230049383044852212950188439017038999480962700654546466996600632269522952257334910169653224197620353893293099949758607018554818311399258476678538359791965208168512592908926058486794036428953717314133837211977976089262889705546739171987697682815876205709992776821262586933132624761200110873861988383269122565955269623618152591197572366064263953058496805089500956028834660055473162045762351147552816582574887020194956361981381141150080988231516108606067343194658918277007333580021695869536978682638302732033919649460670771257330900493035281882381452458660230106086810975711263476920118918067641318369343831050622573517070976007725178532488558162811148470901119342903880460509280521100233298629633718390439251835001155298329408254255792335304833524835018233448407106840567424836992425174804871322306882672123676031251616060534152881924938802448379411910392892679865196871512189499161085442564207010968583318099102373663347886370304542119425220867704381734503307455792086031487903340446770901465834525522548151551945316474866114387440918659988767129422735473213252095632716457744922590270024710913514366020235002181609821524368701912192704612260704116859803023947436112809885074619697931846602731494747358601395425843916703879046464608554045449577423864341193338921730550731911176835158019551195883458149023562118747786712769694191622096382941942909090752558424449013353254416843293934575435224719185440692957512383791379001393428051920611336459254208825767574967763790385277522703587382472830788655586534009074065044147914344136281376607489370103913783429009157376405307956250884532223389250774963402490995474035567109612771093572186465549303475816992605055440962917864793269917821628067267523171338261709159676038562306115293114564007260089223344977886516882294150436622928059325360906517856201577435026704862445212939550356636308834077012583675807209309314173452862422233960458062585927676626555200288522955031051392191968513814713722630429633265212291482180745487611624362329066049405785010799546694477329203613904190968198254940492926727549093680695842069561936120486183115585834719003263691827366303429823730189663497541931113385502658989711715941917103253357539384669470876910979260370526297455719351685439417548568750589823521568287736365167420366546339297978347229276570324984455182750688331514371130597175478024529427790196185632273112948198375533247629006901457767477415559701982761436904050027086241591454974164801008342084413450495248719082803915814422301558271257015532718466506734609191803982747699003450674963838005146770731322167887936929450531624201494022981410422880808810393776455558578842889516155388096777129678460451848547935371668148791551610013147761637106147539666786054687539371208272378594829653433582427226894595924943197349968268790887750850893671566745072368098273574114027820545559063690003815098414650585681478405656570582430482604871435199509874283689858285720169999044321918476572590091027575299145888806905390474540857700123184413792152580128590373395040011226265575428145782984167070588502706008901351165278723268153152633843282817149811956863249364965988784238711643897157691911430188339960698052007991843863973874908328238022011697933454875324951761544590670256384292685628241290295676005321195205223675351112089600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
75000! 2214280737488310167221983761521245119477888893310005576651370144204367531671709498621994014318689344985022157742936966809040531766850601092991672054844635529001810226754930126526654001190601775202700005386871912962503465912776847851467536985997256950941599029384868646123327646960080024038781184916120987444423000051194492791145045136406473120428033622046505453226117473485498578840712177003804033358638812615239357532499068254158993264734763233131213214402654350376056999810377386608159146106047679053986773039240869252865325131823807436869832084814075572452602673122902940434810433987701344219647518200790617958479641974721572640409663021588971817474228379132926637141870650514903037354217777282473751654679746356322870646809478881608859551067031328345363149633090710624922702300971278559223653362399488378139716693489890978505019318425443770638053216455572443557097686288601566190896845497987971582851819322273809595197411035802958493755714010065836689279792812506248256837884647350594970114212980238822834117867683749928661200264580361790068379152086684755149319309456375971938860931238561797950699467491279442570575851920783115322789551849350372609510214582691538229338440207124438815499014469846004109799373890375438733786690335505749617051526014348019690786630682024676534254008332408271221015398727900450097397310525658903824742385578218888762531291123581839335528863907722585013118427334558706326682116918325374040600813999504282701966111699629388397886552366264801735621318821247207004743194617813316713022660870861376619121921713424021756992004031399627130371926312453890476094775247015268943371993320731014036089219721868165576892107755121125458378048279238002759293297103946363694598383970091127343461996972247077154170600840543176692230177363610287587432815143342520076142595986923864323912200297760553835581645322137705457580409729193806070749407012389408953164789692562948951954118948707762406013224770182509705548026240414278281845156499265205770450659218219630442999433783690525801899355125952855976931711242669043235065417417054272622284181512864340161887468859193287015400026897932736506656051919302102502473794080042252081051828675934357290433003885662940897819952142187833517610869272516911913645513245642125314609169337940765062354428002008616199790381088519001398996400933146854836854702112566669106958077831931702533850982600068794863459667747911014904069725755399247658008730640772385163728151321900721359031368943092086282822169600063123029927672189206975494618869185806443029517863994905615410269806441850501914133770249823155245824092928765663807217026532101113905147300413397501884220256786103903137979653440905534910535882706575613010853739177736186916527182548521811561165705093535197498957128213554134578713593317460175542396106061244719561008921998272665239038400027837241829409822312564523323649827683283372886681010950780331306796602903937770026937978604025864102413287287582184159251006826938794405900113312103049956185488757079918668232569114856238157411855962682399954687443065625977517946644985034205307074107715570316832224375413745372796762924440882269372042991815898634982430525489284410382754901825607244446778557025845714464268266231977617171493883534976281503089473895234412119208963902670290302271095220672826326240200538674847493082658010168039287477367087937277252898443201195269550633769723477850649232744705938794158739752801744781331346342414587604342572025324951230071689230724227131187997053323336042187029134757277223552611548333674864107626208719076717559215052384063946202782202035976162618805827919468108379547168223817686364658945092398552124835719746675746252458268896980036730884195027514194602957095170232762483060758294736120093652844824592458123353052741766693491564836197380626591509215876911911532029950375145223043370725166203856972026066550555627179773409385798541517559631543195433088532340095752586635021844749331728827959004926825383862414341770017414738322114262632806965469347049866128544236755590779248273315781800155897348080180712026013782635026157144361807565502351680224419809279133806054105114749764348095929449762178414939971310427220800616616460036083565358689272459820617408118627422947828974108294635408188349171981277091474205938895146987241522294715672695647014986564747496044240576189565625418679611876634674431055063215475411630410574408086474539494858409926609182041432023429470573023073269601142443623004069330644504694153623723728206314889478968350080910675728810777798982121677004953121274058937969496135140717034321929279601665308402742217755889300316718442097002517660386169648665317048285477093090875435993024204549380090835666892007331366994534941254925765563818275623614595411789152961523169025243863766282774444319326293904649902037262355514413681128225651375834123649038440194492955088603890114474261747215500196109136579977185930686263966296625371068817131564339863657599086160923511990569815166853451018532499475995395652610347687733619435177550267320164128904902123470212020728912174725753820680512770297079079849087995801447726783717228867117763728684861808289754103830785797176180433469470285370515798998343722107905088981487145587484980275443099753636082254964322342875700793895739424085259044993976524509070057986400379943075582948550286000022825329921686352049809072299476472387010240677447569932430654427270188195407408311713445233329808833859484913521472479559668594127712563339459275986598644045870510385590937600845141823280882878875269273034086921244953794744803507952724561252880375152229678258613958136187024033761805284161060274964448069176255714151014135530147562573233654370014692470075684223578122331200095724279623379341766139116911747048956534004275986327457776178224024652067388349528158714577376390277116901291599751015101816280151144844625659657596828139399759602957456479616309426988403468249397602995125688832748913054787758809479698430399450013421676321112582446667386817808232357150700670034093033620250368353152557330233983931136228086453303579648401228460991805072845916610912976059595856649037957711564629554750756337206071357965253197599346637639172342002981181472838804787732619613078293565630720764357796531516525515414675730487448193027701214625814071740851263176804379058391059179963007183752495633820669246642740659706287038616616375323498422121984981035013498604747437898848266255130817873598645334428992227221355788555155094832716211079499332129656814507848142020134725050081533354491026646788226878654018488853348082356154268718426110678055007282029567708565014168507627346491066184062882744432533108146854037046370734331901650829957531543241096087032577803260414307254622264571780961468926868530442618946854808477991455758518786155826690338574662344188591648010608014194504131436237029518231288282600781758538793725684572219253323749602068613736538682807763676227016141099591814303211678105821161259329435804602299980667333789876733201345567693382905821044877891981167803943497637139111944974991940210736312072953480968780474399165148006801011870227435830454406990744907076618440600040529391637006063535406264108896694422878232451971863459185507228366736490596842531703503779769823349892047976755897987850050280403944891473162095145244815956128440513210242123747621917279130644946677217327882332427552703474974271198530565892914742992496525742349494446463248587718796735313597094472344672314132301861172057124031617689023216819238620365643197082363389844333611270724065227603906519829018870270361085827377943150531919079236999697848984142938062978800480685164688861172014186400445716543337180339553173016425700694684211385566812016627808853253214960686982180169734320597505596109510422406783463145008853189473032720701519827748000387513529993614510934353864270408463213027094259174864388116702450142003664482145120248943621838685797298442037086264795382868568429548481133317452795699633050981387426369461610448652855374306048953091577375201997034762836720302132933083319092231267649883592329955380131726728146760290681001858409384324652237652125172245159530885342077670424767428385943688650258574797772748931597253542405853670988808470828838704902882904775748232978808645663616286238492011010365875198703333027493454888939225922918969011108300272865020790106328869953458226771217886017278297698764961359276239977174944606376787176446403208335698821952352682337390637594963912436503733315416907532041137084795879146157899218251173785337202105425661793400367161068196328629741808553717766422354495175910765843729670286772407286011652538010740068933727625851838165211487528828791955493209832508610449330898994891557060799753571371674223785170624537584201577978799586807727731706005496362989973193541093982762818980329820305402035755110432565307777871867138325129012623441828990031168936154358174168046667452378695807317825293846000678616517868673340326106870394627005853036335319182766709465856729595141101662228904657284879571081244614899220905748508261807019824799017151239504012661476240862014902239273044487764323364941062061673748459990974440164728714438612672805157956376452276367014768807053819099511298223696683883751013016321511126290847911315383671712490522688143552624032590463123983511035371883445609786177111189082044811757307428025025024165540899821329562525421645798336210255043703066367911408899500046609113035829194833529348623379511976726988427880082904373756200043144051419943451544006595962705877371349255192782553550278857829003404057217446821752880797398266706837496682836213078476902806150369242666121424211539995142308506626098311855938998292531799806103268157620741106841440562116542850397002719188387441900560309483047968674431862401313861325330669099413848778003509290536805910290679424587869550634068902523474366159865995156255219420547162949260380448126661479636227316207154995526235693413801609659190199595909489840012631377146760092310501714482419268593042912825337131198869877359500843091577030494653814754921217780044029156528165194631950183213859153431984309125925961166696631615308962766932760566904856671371319962689243710257303313057702311104420943618155251906223200541513270150934322026423646971199162070588844385581617773985429915208576187385890788313536764761695840951147289470131076925657909309881345230602912444515161650871446796228421306072060196685973818480128944829057988883896343035808940293189517506189164182753360666072475595661560021506495904697111882058124670067716009676350344879816341776835573611146760810006610416618999166646237619210686170971456367471346061430319678683763018328248073548636850501038310861242396672060435962421818501068027267259631862967884273275900710315509053603471283904517516101992755247583231679793535456342916925373545041370455443964610465363759906382349458965159161151388258579013887034365127778695850750253951437346095406832723887344993342404729073027476885671514847336084582808482909366511735625968220248459097599121518571750652068757845398668994519349776297156238837669156729372138696773684422961788359118046799199146598757162649747780250829470020085147725295284705312121864926611732606626667638924461698141465252189163709982774393173198947231319507167941345139263170405024594157454760744661763652800309745647200372922629381007064397479981933522568705915816306285706020823952671846819492005517832831981338849999413959362112206992447051777361888980683174654145587799099381321363035197195159507268509338057954845121575670008666733298552059521319050129479612066206189145941623343446018482199926299213096645031829712552719802848605644375726633546563575994804581481900778029513816997215359273962034008219102533865502732381008057950967873358371592538629393805106251494409691735512688737527782626346081782973588921380495982726401385415994804267935248780792340415326257019612030593842115943004201270148264327391193682011130119188046818038462906249184935309301497760865114964812403937655286218558904346762245125067752234209803881522465571749011515510366610798248375225737305740684723526048397938286772971163686332706667365122406750117352501417354313207687093607031259179280792208301780389088813697933682363612455195724028513759561766824532262096870078761703758256147733699748946932026798797793268089636158239625333662935699634661083042365079790520890974348080314211502493187388944119308473026864904688077598811376152878787464180215222363975463724728070970568996157455402447544490141513712702339808506484098323520843435672198443998013775798556938348321527949799143546687564924355116323664903715322767321925791828525815510101045613384304873278595943134176465712384949195511385675002266069821209396369365626440924069993652130794723384422237023284523328209946329926708079967283353879469618893043206731879728615295715939391370233512790185608142958159603350704072581780722858597557931692839050654835282701020009043882215625594017832170677946936647891691471821679642940627873484491386263733608203968761070842076008230123864830104806867018526265636603587564413544712961319923671823577067194414786962862547072334878157551285227263023103047968684437864335151126769358503932791781829307973683389385331575548738876757240903850329624945002352342896407097363254382955205358904759150712842404216659660724520706633260910237006858313326247068889114056638611673805605556294470772299112051862650591987294565251331989601210784228622001717714456375491475474579076614345477742547008469330129694679840226205561479954361955922149052343412418826897897917951768811467357595048970315404175795514811981477178144967864841369090719512491558462434625676440946523903854209747018992865801949266138159328906118496883455034167528129287384394721428682880791030998948130964833246148173935109246344044690950305387846546844991568212789367018859030180169669780741924686237667812770887299970929662514279045567106852585906974967100329479391470299454454120023594065134577291977324305513179219993248848869816823602361724621356646685046806022301011616638177933955903843651369014329423240509141934141972814193556191817774922185746625271537445629711810041155525862254292943700855701118644951327796683444012307739550372329190667686700508446539602835076252968926537488108611377070566301684240334499695881748592210490454838529553632489555937756120553629186615146408161484185611080598002247594654014618260721196752916043663702976753830827439097384722816301141472752304173868548976969419592927164648416918403247218433540113503215219328994284072684155929749536305291801694972910886436039779483806701978733982938966634317791792354838651646111981656998443259199529908062843901710903026804589076791060334804056332779247617942583138591410278054764206928838112180271292229941299772913627126608466591731702592109137494343458797668295946326385589850164815955587454008105370472345800230716737769327348015566265435797315012971188160045768140589178205096587844988521527863336682230815588082595811427418028417595810561147563039756490975400900536563100031767038189523618302111778592139946312145164975277045638822193275263891244462715488330782415604551222476053780671432931192218543356095500776492502338167907622823392597519619714887238635541782720966142888651545707139549771158857159291093456714241292649102168120920139548065591787801312118706656560305534660340993288671023730741156062964234201822112948969569480765170709777086435941578132816314339330654344942449441980753127187125634708252140584488863876715223986243117574446697041140360368774680571522536629483537072772138718424250400834841501989222209465270259918682421124469421901051477199507547240409987210558781772919031523519411635389040801979413480640459646849174163301464594753974686484311622938989090076857940869549860915043790449361420028811112866322875594693884083824682931244409234208836244753406672840325579204558031969519491985986483414150919594561406463535007010173619604865852189838839431686416892898375950086237457637571851346915650473349673479064705545506672138070748629542877690788611207696299553297128727680670684730429827587920926860812563789736045083575352112903015369367114469926025111434486434302520100900286844317290329736605622981982614819047773032724736584725115845006516334826883159415440421698663095622685416041835412935628510659741610125982763392545962434611343887680863908245096821453517675003200879310933940659291322578317276509469664104470470104619019219638437470956305356804554175251346020665635164363665191778114441278265991553690116339007717180596899284733680846170473770646073537960530371275671483315239141504476385845444592904712117270305770582528390217923079849553938825254020984637620350593067447976589914989613311802362218050810197076560503512938893151760696664122108987378336017009071103379525055435702400732796261719653964149357647903273527756484644805441305407570137662390708226932702570435323775554379851109455556890076722439442101167448869832150511048554201391006815175391790752344483506318370962766342854371214190001756287050864416002665257954850847446681570892331043990197075070225021072681077434518200451322753556977106314491814235116174429760450369796050550953229045750291163660021197059525849619172040586751889317291063766891972788053675883919253677336991374511928789150744386853962205928027258159457482305206773774445657680599293786030738357500006936584114122009237135681883118257943374887993988248323366218530074559291440272394488548093904103287652588714756527235336932306712471219974964033709483230829055938152529411600619831555834830678306959385932510486224583138465674157079362972438897940506843225759300570275548355919485343896333957942958801497468569277075757306308100296054039860017798644929413196663980993640298419761745017250690684057833308868467365506649894340539513878975678172505538688813276731076776374558307378894900202953939075184114149217556966023819561981003384886902165249453464206535615007707236853165678968222333654781384816349692750399372298589752839967341976808139503248330952315239541063317696752008281711018893658089666518494747105674400077853811467944000463235272532038656842815436186214480394102143415061727919773767521583955626923757323593029509191972457365150919531562243952851350207406213215678113632299759494301931888713722872834515343710104754547949067931121743619598144748583522144112685143329308131358880433690473825504661862871737433005163115679430364125452028666853807653003990591457065722908770466114189178414845526648645726456395127401485795363424832152618266500284660275941217816940620035333465859689234817970508983090003090683119912854531852945471677261870548665763571298012297280519472885003755202396586514296407902104928761739815364216305051957775223203333427007182783353137165257787181682975711779688099334106375662218874894734042361513637211198261768291038896911287462680391675302627565045269351226976206821282036547226022027564678102831903340432289631318683930194381734424271179008189453313881102403825281021344463181915229784762235534631856617351680492477846018155912042043213591781663519211628431590177208300820422005456638163969004755131796680626665604688395888154047156599325051951197017983642657794503539138600109878482600094533050880479234456833945253572895487315923688872497339539570015024445141758503504332619943032833093979821339978679246543026743695486001948543143709606821201583325727684213573802762897821656698132900973313099042169462160686097613596836390214459634017172884279707727060084128189957091304022120185674005842047989776294687595504916391893928124606973998633097762216594755968581899241785942653409160447705122687427631364705654624477990298469990649011014287195516426727921865743476542577171608693899005932542303491060805832281031934476539023316793855060013823084117555085909623309595787746556752060344901037045044200807649518716805510680087246435277516817562722196906826730572397303443481367386514528654757256823461580520804726408655062862065510911181010259049179649091286712805190797631184424408906792205165399592202067077419254802927386230073647566431290621830782934989696509893065442541000403094099642804204257173292569593805818745066542614984649456204397471347340897907856266375727934692909639201147439113719473842069492772549885779566517633335526631636333324008646323117944884955352095449422341717793609486358131254810559281016662962427264218821235071893814389561669703110083032216195702763396841848353695162311760282980297711035217578120717769253902613249416542866910459625566743633103276479155286853798281587685525450260170506857700592277376474321494609330743822425864503553026400008408653072017785770089569957817888204402529231485769187549290459619784432183183249337081993585038471121305240476739327836996269776090856359273327038937823764522764660880876323773383534355949518464321976439063199047457050734899167361980405959395582969895021783677934230812214666640772334408533415666630391481281572038263302628909973602103802330341383052792179073587722411361044416692572514029259813553560298984666195291521440559244377355684908078768618380673077984011255557900219233353396306243763603841352382693803305699249474017121413657980096323025048446279499727786279042027067857786884670735803917347559752254573333816770773942699804834065511526134968624277155551813245416992020718113201194245773558809437791006926670020911943232322891393867452380117044141305851828975653833599778910131840438396081918148012459160496376198144475640021125563888187643431512368272979983762543169507696696255517277199290369687167716758831400090952474413206816083892161721132092041032572728239042915859844459507854323488515980360545241944963744630844596193004345829450499051453406814443334073330335102702465155639365682574017007761313200258113156072303766370885132329508449107089867850903915585760967232964247590005786104634689981794164290116714523913776707336062081712481930321358908466482478108091181427018485553931949770398150809853598424706037558778967858646678895973912443122739489099582116545951674604197537024668663974237789172406902235966702014963549272553450076397103450086244934964514043836985547085852698136246685697254070494628323725357653423495470198072452755007443950713518349412236750656777503545414262795459308700167388841033448562171553287857647769437159442261639652389489506040237516996642239768124518705691913563342328995634744742709583061718571851063362295248110387062892522467997931880990442713445775571262939813777051796095107439623581913352580640210229342480362889112885205333893345322670963952922496170320816338789445436721576489995302143525525004071380599336482025433749025654793015589723752536152183606621273869063068716140529967133676621053946826695037500550067038348534096982594570533623400299511459075737492363143464266230784183403795063447700987274466559080912985156966766482458192543794247891151509567694938556143932288409691397832845800659531766633586306293262551326192187678888379688535917683290915220985388213964918063013923980854804187252885694545837788660253046169623665550235974348088984806378474270406593462049319272341546646324064209374046746683392728886662442448874909098608224424912985145925831465747281850040763329890050588627851044531373856443944900946549440104869347171979049717366307509292280495008868152383380369601703852525241094084561870295607929801979036365479454604473355852406513815905214359624387003917949426749808157994345727738839162168855744297318918871791177261619229668065090052323794190154352348415667888723274090493683612248655583982718104369657308301443312751660930363000833060934083169314708944757506555480963676591459180287299816285068214095315786283679478046396624501455882323756706490461409712880229986263053263714126279291456471253324671639451370520964313137543426498177261528126603833507290901502044823378858761102768577253416342459504524313785569837042698645857771113671111674289714300000398185706797378427652912302903214723524352021161831302165036943195940963182563859829064872444836884780230751674994385390342692569129961817517128697213405767691072031503345566418035970404099718594215024744484503778504020972845975601615941585619273404855965328349585065958661066234698139978502975321900720754222199534444242368368681633063465252623961768255737417695983421073536902486343145625524115123740569584730818269427210976550578663106067778371543513658333508131859505941833597809400681373648971957340515732126187756871778593791082968831133171503426119885636536872290679999919018009118280182232519431978753688645952794815706640792464808589215125306327619109566723566213983622804673467077704605429884145926008422966190208838062309131760553567043357971729920730190650683330365997104889169870465813454511869967722176702274426919449260579689200083215082154026746759076157725229703460775084718271700095619185303341681995607976144912979165275734150607378072616148023744705475528638442301517809117836034062021404166154289253945281748927285093394380869834365705310569177984151375146642322120590572129089883354384670543950758974084334969713311460772260402102496467545024246032597732083897754983272989056390173481007089322665173630899133855825634443901982989078369419414657430570191413780416247468003367142360749694424690901460284124057740891804189527730804311761588944178896449203912941366717085304422135749816097363223550913399442589254964569346448250226822712372597155703925382326676252576556562995207627592453793846287900308166831860154096805464541855690573903334791112766620163538133121265437193340110478355178629351267023894583891548078764099357371511285581033600405412299375736564721336189514004292492108033319591903769200712790309506490783744172450919663990821828181016742986487323969323274332707294394798716102120683933087100128011269389435383833212427340652250457443844423723111605957588822330988013314100315417043298590810158714479948296357022231464795937546392589722498908479296628176440101545129846240686310261910055249950022906110090023695723934961079579619787131723007520414948316096812843486173353898261045744945750350124539038505540025311615234948568827580386186830251429919738122002894843402892772526823301700025496260019628690075764701134231327997771521643750735633713255701735443783069618404203865248347083419115518947422455103404975822799666462948644876574217411889344897656234714607502496248339686089105235231384334965129361406203931682256342107687956916721284691959533623703794977249300444561732554203750223673748836492361333885064019277245290019868009052452493344147303391014773958040413625649536638117235825831017269221581340678597130918890181717700794620116599889618245165365172502570429279731276145017427627323518890987351659149935417608997566203427361393823172706628357411292083932582935192266865931953329782512977735468662928989139018455234340621165593067622611725551399795899778728973324239647077823174836039659706738481033270478370717009835815693698758354526159722806463858205760922403907271651727980087948564536894050840357555475501196089989988501572300758734587029566631303767979499458117696996255056093380185394857472536584025047029146328856769009404635700752710403894399911845141840392485878133011896048629163567518834519393641662744147740125254100319359508919380017665970411018083511436433688222858579336784088277695264238867383817824467318580097784511632924689765600271690855065167772226623279892526220994403325805496941572602993699761696002301342164070108068549911792639728168777132494875551657037923311277134579212839255547157411134994182963206060702342456539629823663796074209566782740424627875531206990430927469753001137207771938032627660546336167293804486353155641327229204692966475566808108137335680574221234502684441545417961560570668377845422717509486127511392493929760455414261121552460713961708261636029220512478804162259516371070493983043210625840014753545978053215940758266929815988091208918146280266585581644865008695491821800959910072107473546903817145185872517354012327980844666995859697411992676555452609514464023627570072943780357561999178251852379716143419095348922650797500856694841895002399771867079905964781593329669909718108692745484672560279621507054686916340225131796233658535825818238061460783146158017773445868847033525937696910172633793997124994517903320106278999769265552509303346680634951272290802492830866839371203522102726475792610953546344711422532693919821165628791157056786173580626627239468648540180132175389826635172484395905299841892612479083726357444147696140903384743916439315119045528671758320668989750338877104352704201535152476266884437251624077778348616296319507226374318307749583716864591098120915141196823748265404272200436182189070277670402727421834641410787982701404729710331999254084837835779491514246115019297422760479566754251942387592669838281786047787952772439778141488910069348251368104590485430605940487952140468604095648259164745700080101415061551835575402784036303105198220335337564850701613220096831284997213427855748012550245227394330254720783607968648334882270010762592119053019142233163035134648492210563089379398459371975945428594828508582635825471844565482475446451692236299401013367597315305206785307157564387561488300416861756517466362620693055990562647258166614206270321879069681078879801236244361606382445580725100098159747111227110597512423612518723890512129885356787751830120292142371361065705023208504061289243659762079292257932498330164710880581916191391434419931282910306837368444808905065315304969971374070992469725976147670067251585257681373094603818784267351254884325222207428666320472679858890365702633318929116103683597085298506978329529078245378911995957855256184332060392932789369719341797995858240433246547988800273779900309735370409488601590662173419172751039581511821288616200091541880256673144274947746234986487237499509979751227417237166296291338792335381204500379851485029766980357162811175190965621966462881399289378599189983140477709020153782573981141765926414923551780656710755409335180271942350096953295023026579170841677859463402601105682259946467142388498577278150635944402989435061681330918173703217293671841487322084779844730410944587907005073923960282718205586134382921560524283906417799711609334940884526863157510202205891171512529062878098014290859519287351225363055638852707511701072803973860820364832368213809823143457825907656757506988838650378518234940847872459203983712197883712694197563132631562304291404950658177885292458906138570021276890872883348808153811129547345028631015847591983543328958257447763338431653193836205145176753567750339908602155835447301573976954120489553998566075341157424782274301373129426768572132586732253287802244092558319392528754882813785086689683141309847899865463319377217009977183517721197934903022918063123902947389338649908461670682509135431788294944623199168689175179671694247088750640497432578912630597211933051954441201192407519747783609688488030068426961639019538139949522513083411177039008269410895547320559097911573800033161707490036287299524351525692234160169583198384870973463617104346412017990523380783897919514805316904664210836037430106031409690331075292293705895145494557034117591633932264338886633275156829009425622148025456295550018633611428361267731952609405693858303343626018303472941433188875599454608904001568289457131874124680092759405999640801876046848179902867515764308449892070326346338805919956654455812523473470724576736870673758548564954278190484133068163550272475122910476126760954298584201689654461440491441301166048528696155653859175503806380645528171772687779375569184256132762679782558398103017542881915347819311503559364429655924675410217039189958067249285490997270235366162908415218581961642271451233670577902408222514762191907100544122551367751522611350104483520753447758246575379071331157596158443331518490034926897233479975933094939842359497006301723783488641792736342083408353825749326919541171310092517073697957045437118788967593383559533890137581845571516907086654552466024088337790658518745141749203292226907431792322854113374746490143747768571886740909077291235043670583400692507062190005473231367562963416349017397974367934119738600647966257644615366841738868879934277115733266856257754682222005695025467918172376484285721865130740110101575614895281934189392445604596046684124597997697150673044312624440826799076337649935244657861929638666458901241651967488636605626502278732328760060112313661646832474683670732393371745385914854641092002391857702723662983311012589237653275284984957787441260550948956894347492112158817068919354943286028435826118170962679636949181105125874979344801004546918225547889852283419049523383295526903328991871316558415220507233087330500670385523292741084551263455402533938970753794315002901406158392184922236773699074814660895311355524637995138919160652490411412114161839475451876472552118180671185886033948364910076730327267909867216082796268662049057235411231575313807913974663966428005070858429142166717483598512345964134923165842916991102434692623935884082939320126259101043047380613017090593961249390550886879729951286764928882269870665983008149651205191011984973968101820069160458440126172346062113154738424143628647515995600051554616855560820710209412083141595648822731233444056660608196583209171290404272018291812186948012451400787187919231602255250246988440877819348047980780809775751572817949480021693549466197166182825883502779038085200610525801062835877466564663594751755486056824924939579369499732359078740897870806761432787380508842048216055522345759055749674572583636849286047247535871668647474557055820515545479736306679149777822035081251271389517760945967179362155444817093981735746000777092352711162171704635330426854603799223268791826440089299282706619140786172752160919241576411278102140057426467431004291481322335734050801988214105490464882861558291923926531242881899461504069670495426129673339060148181537205188307532541668688177186360962485912852415435680763574188479986806424844080088523061321699484799865425867530459142154205090985957602879790155314951159430431975263615383565690312013762843068060314025034014946482558143408941190822682647885775413394577947045615914828891755632576520592540778025959146710574091824192754887463595397939706005350539115101641822873854261841329268516650057872698264687944327354265540649555992273573490059023104498784151080646601984962642982976601274917648588563043437506122583941581564268990590629260882643508849116374768571710080955674303823555353348338534312423097205711602264673807388332143319250948008550504117045575413767519872128919205009186627032708187078195016800151776357252578005863608019789817395244572404012309078807162159516827176995827713653836899831827930511791192818356306917154836838177979229362576126092727023666092561183350854680727129053314905729236263290468387871850117496077329938010279659556649439689272269974050296540577843190739505597819460272171026501829573942166091080136789909506434211150040709750298361718157807702982010067917798359310447836208824311627701764821245165285101255600353111993043000792648915950022502890333035204941513223373251040868711865388378007545411718834270726022362208580510570434596006564328990766199510074773875921162860692526685556012759762615103863818997616162697171053015919769943480260855141773699355007486064825053209700563614332219585376778605248606912566923621917536236375394738088351495379519760530374745067883832219442547377198377573659761596697339655319682448990452124579148975757927626885137605328924469166869418192255135876968813923568364558834650542338154605969430390154117302908025034131473223554020181609951415945189788702381009363068491032144857010469713900108648196693578161120632964298445541640341710880457499434031801805549383470686148925080613572714454412498644316922467885745415839031304952271604637408269468991482195120989054542421605136459414162274192068736844904009408526623706570563833757448003393120350024220987576594751794862111818157219297891126054010289350065043080888931732081621992088628080692358440464672296383865104112640473200358667890621483994779808777362128941474225943413340354482624923812940332203262490073454839767992246320648499185067538495699184685515513269394681289764949158470344431688494400941172884936817125011633271283640339877297966630904437887622907018734683237004077289014105022993883760840185958847598254563921498626348492994670273337538271261974984305008266756889044866285016742012902404244593877654479040954042689259739427359122982959053742931684456210109865129728678067071838920664820970697943543264740669686908309671656975030920589106801629400028945317833168646772626326724955062739321394004443458067670579035064760683161673627606072566112644338299045046508157496362894003778443873192487048294937151085122068676844668164186177741148658136993044300184348554316134266211980984939015643128453799108748602278661867176889185649070686656717614721443337792526445723515258415312102339888456137895962353216911097274735219216720451834754207992855137530401360805213888389027760867581809771201101742423543824519287334086276254998088323513784054956260386719780005387654220733236018150846049723758951359455886884235032884722240038193964253622985895726635875760227490716844997409776135416633020287965011391205388329178717223012076351896817349793972220229559021404429817367474944735434873243857062155764487707614041283265987467494436949253971891484865165392170747738705682926618072612620130859332524484869093275062009333910884168890847513073164691567034168148306842614817445173597112939404778002323693404680752448758546086138358691106836005694510436059848586573000274108049813688805812200014538245999804598041792908093880891732610816887095003209993260755466441446733999989813603115119033303886533811770387913256577107372612208410933761996030907850998080112246458877710263989493588306155888278805595383932773038759659343145847621179407782980829756607637835051722521802725955260308051209458476474237686832071416684534682298418734473670315029750454083985213903388623674215477618222440813957293595713055015632000119926100374382350722345967732028336885929653910013705550405721476580192291628910544298754988981609442040482253228382057488686301607748327116160839241410981459453119096634269511947313180886045529381342283863326884300931407863489685448193285538044595548566690916284060221333202102039640039390556569201877297559591186774254922701284703464813453955341113390614323205268962343937579276806773306811663312628339152478092689575504269094919928622281992224630161182523381699106397005350410101829619817630399798771864087482115101899326961987328438175280156178447869477477327879595259777111323737858703282458211924868449217109079806879976502602666932986659475015735865537189428563038826716664703085004544798861976444414821943004090045501051806021162008395869874444186473865495199562653082847436594325709954505140850771082442445698244773933056585741473036891564975614248102952203014775107379234056674664526188317683334958777322084602657362915731118602090157673170437833142700717529494944794562420534444568953258396894380022548892780690189933385041276307175154632575547933764013865363138210117071937088720091570181439248970041152230125406133691813027913026278079933676887904261886528835824649256412584221876520200709862566570710713925443432021498523199444204903706627458863313928023027878659683637010746881102870184122326809061103784433839714189397526903154217653347835637322105720266084768665623692853698512568431533581881914241122544675903256492913908351179929303844709728474714831026760375921212614993696328525416570126395397155226006419991446155609392120204056773010192085331579472312478202750196052781952297981867599292145660867746884809875804642211524523630357126775106068344250108339725917469662856508753930122592845661084906065768467724876533749399796669476587226770889836199451221107095746087413667376685286559877536632007328669633078087030321760702760298919985875621332079255647402966289171688238182094602896875088876077254494492329224760984725538257649858883378189823092239916364080830752533612067183133420062090169585302105926280290013966692937793816639113967376548649817755411365343653516261680400075188329994470265332510435007436424398168519467357452741576387204958694005232340161938266410982310355598923605496092370115924038971221421381038873045805373266285127501660590435246926340918691659410001900222516220724598303021112973285120574432601049807126594307416345978404455663801689152141813880469082889424142321102661500875498712872822868005397850856243208107275820577987612825403063986054273978484075254114642684656066504897066521042752535479327339694297921095470186228478260508317329031143911801982446534610007288350199351844934293907393201421480260104870651730739422317915745255678238344943793818001049791871623336097181353364879918123294518824809412192819495952221432445949252917933247950220246606759349913319462862707733202847032433683789704974063025329928750880123661416094236796113732704124351553970891572591198451558603139132671119105509562546881424309946631830922459981685040230148762845537118429321284524648252874789963740700219464200066324456408734525348413265363998288174661206575935708951108961456818150142576626870305732733330228874906080356403268753468427444757694494027046847220582862757769945111047766528152790322796094111948931651937191526228752579063837952474232293911385261837254149400089552213076892525686908519408368610596435207940549690419213376594276200878777699827555036362196369109866944232026059502159153295703505828476538153473284612266218467078726407208276004787447639599557544843205536026714843714198603037613461531808902106574958398101394773817032011262798792507464854564627431848187373850599426932945930324872879097593576104306301231252896854279832542643402690648221414952698860745029661356901778818934512025598520035857030586276913957688024595384348254595755937633919363353419244615092575203231577547283025530046151721104088737360153129373352451769903881692681613791085246006318225552289459656774870147414887067716385300069601272866624778171251776029126452780608057849281621518075293198524914590082067580989353216533912041704875432817883223830745630170055389606290116135582284970966265007622729493612402504404612288666704762401048473106801872175630675225183049170323509262592495413361167233354822662757245178287571599667276100026001243812715649576702045656468565838083893378421608551434299105878501834244115739269445859671897078875787026598671076986804881943692486674237446817099458574965101982462311945623857992009505514689613115927064269410695236913183471257477116471212534331990615162815076839440286514800741251666103047643383396509902770695208147051216405456131253571455646693750279894088326606230863770523828575751504299069990908452920019708096897063719781221377853451963314989260271773230281531981158267379850790119417163550668243442128084631052332361812499773637111259387980462606770493904244029179286262724193692719378682258324063352213836258498690367118335242038191798382040792827407246027980041940493423108045890792082459799733022779837167388592842824327232061901109676843572405781626974555461591710612392641289639236101933565055656159047502251497734599461095339528268290644548957177397717779888507348956890971399720053020560235850746349837603723689199582664725340891613797308555093255233961428715835836226445955821424190351880537415410947654591365301253999479372012548076448547449654222703249511999052644059337423485228859060091788478629013016019505576335563332628572341484851689653952282235424930925691231750034702059389051251192090596923603767895523298995723609170264690963521496520364372242234943291453653612889877638013362321288460265548704035626682827108550995736896482819060616568915319155447587756093369425825534388684929396260943009927343282858901652067773765845752377507628735341365075187389659088801500992959939709646969097735591046626950983872127322613737565541800253826949419031589538097836495326540242267897708915705923771390835540601885199539827632965890976858285184427204424509758205777329725647441626918721358486558309313682718859189648986853750253883276456828969096768782955335247162124257290096946284175731767577786873805865570573058986753022589530285652255300913198519082745201017617761750914946931443341850383187754510918655920892832665771564065258351395329382039025683517702891734047577589703894642298503987310971090641715205758379728739717845010756666767533515783471556284669949040728909548583740718166316387765398500548531068125134961256483524626802793754219519999083044049258960722912599804932442229404258841946873811074824104515893662107540337382361373279033576025881571200028135917662389805360892543639116436440907180521937779277984960955193531863073612142670205460535011398894031589105436976842934729215858720693003689849044182855445866910944514055077135719691682223268132445514313547856004492571722998489108976794599391730858451539882623677580929803130464300887132749319530067499046093246333026530114902336941933312002442001038432327718837130156118757297927318049550701160411884473723226230238919008960566560565160933768069792546846864344609872218353338370040913224971884963041819627542536290182174943623968038240626989093391709223769077353912992788273240239279726794906471375353894502174389541951471536465956567599645719549148522916321856701743328175291945868137353491246535234403725107879098975977701501741978548545262324446564268902107947843143844184929636147486344559783169503431582464644199467235945805598213181645024479273692085319614560274697230317350275326153330459313475516999717913777988354326689933520416608525476838589523360440246621960247950589786584196192655418732446616712999618866690529059996349641964014488543093345872784068386291193266214541515214167340962745183530998701559159284723643718762742159901597950638916004083768931222431115887712154039846150662977287827617150425186504797375086830329033855697246231732508020315001469846779466166848516898251000010770422466609541026969545946220591638050323453247408695164080810267988099228378485486665917021364270222909631202975103482888558989515320841767695728646045182208004744483663015420054367140281488791560473819996857543883867173780446424896651188987898850953440121598097443654145659758773833864976396396809064505580261952737282120136949340430646891401552158559854864657555049451272378797820579652965855325998447503657206248656154541725593494421396893269787279802701549817764957647904204542950506325296063917451225684843720521060731923356341049191845613619615327079513388779553281505807847370849888553026236766223272742687789395126504549149808474480530108244311170173996344521154882513422462227531185887604798281995778131576655973234048381232453875981695047776321591079946196422925751118064419765307341236842290119049539087398589068956627492189956318401905831454252377982112127026792932394258406223798002010054846405823375963218043767864518657404489846822700027917768267809693319503289565839712790395851851337375044005688979382848187621819475655589929340748943257352595660543490522779221516907157529576708258775163884922466564510460666161756502419571604556174251554106727886512569810259936247821410331982098131695198654227805652791234227762371241463924975134247272646223432415542725141562384250899403804073262981821690854811164480547029916945228427808087787365922374222544411793525722617017103624400260788740917164458112852539637499133611999719265502497308190873440359055582551882688887248137735151813511013115998961429176210160785577878728314997730727986335804807787976437018306105726958728188512303406298074509481287396507262935720062175974110395940880380403098660354185882332936002294994558068691984832542673872433033562815207160924857780995387302438833057434570284844004880381460715921096060251108949386726542289302079695651096024962149457024449478274992125729699525508321175304738819857853001175671362359926115132528402201871884414485858238274040588611764748601813520350696452019346326910005662543991161194477675819116813837867476013241398894466686830992390108111205374161756889262946733689613947258061346119600265466523531987173226418176842649156714818073665410541416080344933548883221238213870635058537407181964168319369904802322596230168346031686169357264470855592310950518618980043257989971209474650751094454113683067859651104710288684051194755075781572292229773411706605323309430977365282471903322549499237735489699696988125522568412223919528849881408062051793179198278495053149758064184857746111635907426810775136521048321343084655170414461455581439166192564009660355587980937192754590239908734766246123186600326521869624057104824490367027377856593677384707414551116990197674254614369142462425223504866526400284495270782361360248369864381575589658003602867603443249053524414016908574465909032424187856670911117671695714489414653738306778815901615165671989157665013981778240899952205271030028871994832698444892753025078122368961321786251601841548387582082615082895579466670146901081548462899591743689460168752975507018036798100020983882457897138143607522217181226776785182356133329605889122418278994590746128495779096015292588317722462034696522861058823550142629792692333392510561978435208284361612065478210504109930783736485736573466353031908898198907537323112209608090534701324831398658515090472598253992027125716204868799719575217235794118767507461241891777976143918829392745989921231053427759257299087698846015984181692281021836565000771124931095342934738445643167964734192906072610651020012999322318399726882456768018944093633776015353059228016945866290615205304062834621708143842513013340748982916286838606165559871633860944888350559101075232024407423415045752023758646212605605947620969910713061977853135968009841513596239503904971453348497601139052557889845163195367389242347942860018302446363780252961070731376505826768089964537475962357240529943392443198630037562219614409754802113370485131914259070419623674133400272699868985736140442828739066227600392773581649352611997370872984251225235535982394757440389614826649984699329171717557585164059747834950427638713161737464844022704108224286408041610057341752866029912590085632980423509777264985092800493378174361836619912965271015034154018720401992058881596891074183544352854316394049574886982445462953370881583123299187057217099863634174816073287982458245883995585334888990015307120533021293346570444587903028312983387347497218822265517697358194481794782786495136355171402814070370472906072696180235146854914400071379541865172445317426773989271100937444268284941797751833170025731740372519558809578879805080556376608075351005174244132671473059965997038161866992499015177421873497186090532256587897942732142422734933595164004536157909067098452766062801093729273305919382754744110844989867615175541266867567458278044823339190176681632928844042408347780615232209987481484380387058287440298956976519423300224328337872593126843401164481680274970651993607397902104771832403208690790691254280111464529500563124110254413645334136430421693266279042018642798764047289760088881177273522759633831182389083277524264421318285638168542543233182806129305902179669450764826845224101410792522835350323571509070863709084464884374515929462202410809677831051816656087567405239996821084908372623101937498036053609764735345323271618890811183129364736646810325830334618833391098866077224132151925564785240132685620071956782621270085365668516913549836689154538664244424029960738488274439560259360387140813550583504992395009041250963028966167705497595752840388395440484824670199129451995579528818668206177243647838320311408727583866003508804096098433703382670240139160739315310096649552418139745387570693581581098653681010966048908617315874318057170678451922336458880328777869693964661233489746234461449222336534880510437665441598638165328077946510099725751426397294472737223370303557183278178156442956532199965270646340871629701988664620744657025856993436931823336952100085534598012919174628877698054643067041969602711672400166261825303148249735379264314331889697253346513717032315703114497794285318094291807700853282000668738712442385841001675507232807079246442696364222855764103404730710827241149698051946712419602256299089100880719754328486088123670862795857276097148435414325800715496506177289404553913243004334085733841431617410740589827223856123530833185058027865247829305790594734082189671046161564448181620467846970710899850318125003017871168996755297030062725007749083475071838262266867574968838274965358257553690440866454957618159413383806591617613249743752070902671641069080961807832976338472901623857602845044437193320798766872174948670789209925463221959046960013635789334178049980734961605886356609233641109443984180560576574441201496031083145236223581482078913236516634427430969142294955388721879837315374241567064822111371639130604531395401994710923625851338876446388898927419443689803268846031016044355357328851175464892034801251929118461429989498712799072241270173364562111895331100649555339343677824063822316123779162025640678197378874720735084703163766948979029667350798452330760002345714576623608957786195018739119803897221935173284902584866204734752570739993606462886531169260522320201345608013470114883935396476930666595707180803157400352756274065560564648250234754171614555550080125807834217968683880843352035369048492889319648211342910385960060113400031299723703635029432297198527567151458919214691691911271734231715695679816678599503859769600395318199219136802404634949574508355576243796856625728040797467995525529952890488318319299869974243298245753262080109769878348544442691829035842320227698991967681296725051482083778965145021900337447468400856740921248366227172687265235263013210984209406596887629599049733689153922463803751680413779753302959557056897092172364829546870700269601661502835665383369018306333505670908138741520306132032139697371837856013455147622082445618721245874552255468706138291009088575580553053590940363410828982413112048562341785130746029759877835812424373257540637419409153368026042560980495872886799801303004005719141744381904901009112222472921841215706199247144426919954645980549076188964428342691805881411129914778909637579975360325054079356199665027426778838639034075512145863346607522393372207351650473657838278896803887269447133528647981934466743469258154294303391460783358948108099063035066830264349472144688031651469599238561273709360306193395983225368517988207625550459030235205371856319327147132018738710341472967360450708745703352677626567713803755920084984219860743643843851463753871146415103381730281467428521566479946253393829758727197341412082049264026690357926870680457240773258930544960928923621719164096874891324883651978217009107270251077347834149822145816783718541688409647584829362435285447370787150305409222475039446572531015611342129738892874336256747465989236222642946146311924703844141988043337401009461172919861261065178540529263696150618090471148554975110333459303162400622860182495097075472873982215079891004586596006475435969163986744334515750415067779674305885152675119626652616333646090809149846185649719803572008513592925859963282219395704285909030770362283068145272863976354133418455281190248447552623621783986375220801372666064440839900902581137574518472652081338928936867146750432817543988632271282644830292704898217075133641211885309770277798249952221686951860011199044109409968060197179355700845860667495558339537844354733127759038930117710253832042986509180269697073905981372601878051135156059541584525664750828678124901399211700680762051725947037668075503572033613416013708930849081313247192305822962257587431235560587313243174720928484805116375984646964874550089217111174123344192313996862788303088767905267003984537928561353334047878153716374085333714404224630132513991526295685565109178641622804777179339688055708133981641930411754084878011977915887239345031272855327223041556154901242808933726357278463042052394043400866852666368880559582680800950732507664494003492136264018543067538048002986744419623562361431916037385519305620590836230434832257107512890231870847932308390071041040666125951736564651479513903255718141336398271970989281413870150753151743400005832330515421937563552771650466556219674699123276301234242538028519095280238522709182378566757927467826697941884558664229821191500655528162440902431738534011393985411859651580573887591321757387303029406138182172014536997239131274869967196728609690758375747355336552913135925150617793883353446471709681204314536287762752613643744948474297847955147998561240084656317931491274624222253433862905771698702045583013185232518353822998607960740514626632398972672439750655697486316931653317784655137537687213915924954713874648613439084907948709989875520539350318501366060382346610949367115278893938983212661879301532944710385023660682146239850136909035045210009653588951242984660421632134389505883591028291524395218812853577488739556183617513357057165695411581088854138212307059632102386875664623769764097987034538544992513758439029906491685044044322899759564034956502604515754512463956171619625605587596178242128415245119957523082384385904476485496941746671649431118511618140811769118759222043307293775614019365691203880982246844833510378149476155546285840515511745751917849491792215132365343578677914728295189783719121305270936936579459170066234227149057840866748165565001127453719983335587734471753489572000286865431067706761390809113665731742503803740811526204921258731889044417518228341859181832141060281578114057164279182229280410541614780021388639270066126820136293366889220373833195214073104570241872610566764711828951089131766796738212770145391740094668260606702464928949923841041288545304514777607490767762309808548233628664203382240241159800174418431896978376149210016065316230062803756963830027896917698596832850993594855333437331471066921851057833847047617551311219877751888469258236439985295453421597142246655855556881926271428722986744327040946342478153989280007205416599148801372943388699795532545175106364660037556031278731690104097345767720770868108952549780454585670853270481476309286525096678803286527300880278141629315546900802840827124232530433978026077298756356677250147824770766537659495055907661974888784628431193950825677063787204526804779198672461987457435298904700566908399121911567449605199275791069779741513642941088362659653595641221777874586483193962311279129660396229189895459115073688436672653276842767320954968815386250526620531902461241464022219269214200214158357571762623539456827535501227119820630582063637265553375252371002637494199380070505786418415168262053106199169124314357217121790987266892661257897081530996118501511474904040110513103593220728847829248172428588762895655578170912883709568984915981461726443534180989240701212586095687190168876885294709548056215934070099518450035034854432897945770199089725516624534656145014843041279718266702304915459883318153566480337161996072878252587477138338198376479934372313687587205478886058540486477584354106103164011716687341096035084761987302923929393800318427063924408794045485623865528574314239683288165517568791450652269027095460873638202472589480307776276334960263952305953916668564870852187860873968213695440224993635395684587963409890054881916696752797191286094320930937282540209204740610309927251744524279335856269454783981328876133330562294425768020152575394599902810799584097459505623285730430474721450158930427843969526199922728521009612552848611398066135002869357029404599225278693000687845948177876547279346251171116111114279451569431055717819524292729012831478979938874735205039022838891284279288006337155445181687278897617963262598564432397306438393201668259478414878064890974003047701979679062695379110819428311639470190970741172564674893156147832805830122447486863362020383842596561166063388748489280400584305677309651263995176084123563512990194612877896795115116912819767416698487108405675818916744831407236506680967736652450488799812418249042680596941328730330480464371726480612562935361293545833129482672480341364184506996546801791094250519888151862355689865583458097465169243885751946603189768219373830003801887530789626243565281750140236898421946261546947545306951011618039430689837903507206127036139406832403595975865115013061103459559716854030836605715165262793034468761572382806798221887912068134704479396893720054082516677042232310925438342437533536590408028089591433937393782310630956822882537805119986373814362822068400921744184540773762661541698180713769773451970362939782189129374287982630003662223937120138020470941303152010741290992605635516863727701190645305289757392973898593845053189448292859295996716925896214823001461119176198736525056190479189089944681211992491604506642918683921996421167332092497633994019182566575376065835851279189610929177328052517135146900021534142703463615851294393257774169754741674695467595422570765864470367720487904836768461793858244112246152048314807336109401434644827999404618878589956211010699437775651194838731485297247446686143315873838648237416713400576993716420291059583718677871074039422261391811756304088552771198163320437660413683453490362672381670179245820030812280852370331836087376132363371085483683719325165810729270406160606074737089472579550512729518060215220337807584474617821004071060839044321420888563445309416710270373951513814777915524392546473262455941539192555876966425856247109732078379288708613344496897386440834224254972686516291080140225627394341492447093774885656379275117013619009462983520557279671899535321539774132554146106369080293449060496194699110398276832053576027030964401457578147007668927448658548422905489665997256286144981267597658762211441429867207409454103151556246866154470420555674474641475668812163310862551240272729994723948425949437008464992866138647721277166885135236511588499891791416381789596502181211762450476159106310021247942527034751268463108392954730075813966912833101733837389723004726885612656067403829099490266504719878543347023958911476350257713290075045954588003998457969449374825389325274645105468002803544080399434885445131433952443653040288644005801672944810731445490879507858623211056048471020031111854852029906869198198889815579631729215532351296369083355952171529848968403906838112568643101309339530092323355180272817338539804152341641055659210345379458965606707081294633102883055589717788353218004126443738948435152066072742788639284391484044078191176274605939346092041428900073182109984314968891882160162431545874705757013490382961617042258537452297076104620665831571428861458685556789771815546943906659730167233716967537062543342158327826882771342012287069561584745514320950102902937118219621026810371746076091387416304837319058531507630922100317984207342891862335243835601093067959585949349920748898568861072858051657568422102173906875464781074015539428203524546989157078940425973965351291809485053503953297526034917179817015641462458401363727889449232354029265786798109647784625862647316516851131520671943295325566920404828903550459276063935781818176903486703174615441778528739695269544423564501153264837904430432844046449895474139498576565878831266271983847806122319683251058373053857848509905906855805661377171754420116975487294891884734517110454030591247603089756963057568812491949935178351210083504841249690304235189552685245637348074045913237781722243947820131057083571546961402845698615933665719973671074998182079833428711041365783391706231143266453625821697454112704276780905970540094233151181919212278570192342622728143794241488167881695603423374124574323557422229417680278241064344027523974451475876660665053350876054230186757098166193932896869760591606676087719145314558010719362825340677120575950106415867666408178413003440288620597466896802083191384884565411992459370756426346566678123273747352353910015237149526698776330021277504435380504765232325946949406734836718581936669636044102685879193799403084543874556775604482714282662186902947480388723636925250441092586709048218961343006297122328689139901231144974982761218336412186588409695580464868522366553477042684217632484458341572081349061959196864551006797813366257331419210354621941072302005343976141023644764773528181420152814723019627383665125146630705698797131490108728153366178243816332314202988791937517123517317763197536680534112909532395527099200132967412009468483012479212051333581213429997633461132565022302287140226026269864543802442474557283397027644169837030890756753856816238185781403667396741510191153289701458665020210263593923604450528153705545820813134379240363475257963443255291335656772683055959391994383131046731144054789451135473425572850851768942967509327042807759256110720306225387886682671678044555256715725641944732354161023202221068820674797231536797836260067348955122425693957285560420266543436028886023118512157687719531438630106619947797097892869851660221843858203565856465295323049194045811056326298197234603324362820404673133593165434701640576650958155764812488491420577980338384509903543275930773275831923879763327011627004690760851542560489216040247121311957485259903274546769164495020497223250824067561902646618054165838187367668553240741641693019387112074679804518095297546087597117007775271043946043482853649531501847017676350933779534526371728907733392754201632399374571857187848691859121896687846241480580726095511659802357802530901919266746742713445207295592775948100697690858955848633399061501976532490856946031833186957440491713539633757796622171229111545329272477008914862999061842893092925719562010353221950730920585448630448968454110830028445305326329237014781094473559263916635926623277230967935233148276358577309379044767459412428222512239292479774303776247674189283346040859412535992574016848344860226263203455887648358764662024614703987077848053244968068409292914979696155398300121371989776247241077427290232733680460561373971983123530470007022185584566967360307040817823430500885967203029580713423606282680366509085050292780641666654123285759843670396298913514466167415747164488317454978942805095281083769585570117867636105970204440018123474120066742185918121482126956611052441369633370531625421751854217373276487092027661184964024233622868987599672688274388717653643227850413611741815869444510250164154084309352589644232101909991561892444329524103210468471788366280446600603284974031445517104510391727488419393014600831013844058276165910239617473556638522328283778405235190665796666688721753525850766852777634042015328404247209233563455448496422234758565495487231248994353121540656651581593221146930834270955674448393288993235419438347707335232837488523072659443101179240847259411890940875380046630809777784286867870710827213567030730248043342602357043576366365958155944905107160987514829154681104528883208896890878501757926245771269820372469805303571364219845934665961958745199290083966529314609195220921160212384665194479532510221910872532144560345787974999577022815471293678174682382418653720282135971380050121339102051217777790010161476303358967303843445495270152205376793745681945202655858651642271756985472091974491273002826575751291135247952492784760571675285699950543401421656293203697250574230270787356310870174667679685340749966779938192872670162503119632446207399298615942393125221017047785800454832783325582201358765501006688625392320177477490900435969369526295004059255651156838571044011440686523414911033064470947469409994869784101202450482045121550388207077611157082260652901441304719947628633474305084040794793060257279294665971999420679164097908202721414157068171911864020968736244394112091032616600487701181547443509966168027223833350603798089717681167897848637445696251175102803844253859301925461367616997965081131272776437674664385607080528929655912209088413401757793282098740996642205875185583554617889378743395149636212680526965851375975432482229012811483406276867813474769536080052066139609156064204078485294677843612600669940925270079720075230994731167512219636873616441400037918057431353246139058900878554902389685091080618086862083356648522343068572632881861077616212474876828607013024017927554811145923294385463399445584703477354638188584289456313572717610565491115160674709226055728864734076677342572855440000701875827311535082744896192113141911018758601115399726515294357710002365714417629487917264310082101917436761819699351853396092946776560187342296201356499983851201468214964066764890024888019857252840104519326734813045920545804448902226664929590650858677607994636695992184708720353854551983350476154224805527618120369556633351522086636926899398286090612818544868012193655072501865419668487142844892698592309877496099280473458146393506259056661414267512009024977157268694717477716097485857947248756396031636655267434619574246610825556596314409769108268186427556556832647857996260979286939777303328837505304217227422746294437192731845692302548302974070102713891417938088093286295441950078053184194104417362978589504865462663509990610867496492406192489661587607225570621895821893345600181701621718964529839487965892960717504273157752212233650695568067068226689220649387215937575613134828594950003849392078570152447154509948799985476927443831008055258143325467076823025675449390518438783935842032353625468419659085858526691635348331421013257604096785946872757936042706666361471323100020741170572501023001906029245305218467603844465170674069073245128366510431280965939232530005786774792406252767502630519840155894745972606704053436245085385484457717020381891165744024590950177452297776634769709869846746456482027400230455671200974485020728934823739841057887883459928573853872365227512296012635361148862731340562442462844644004071223921801074329124663891733879712776604571887959663246976133518170257129964293795934118963828609739835592984498385276604320138361193478756314738977637690753988847009854973417802232810648232571810321996670931788046805703160354952536980537723141988562698687709460393486418347931758037961729580202300158722672648766740158279282296533017376870954299170536598647809619268532518413290451968137499838105028420086038615857340857917558964571472672269242819749003538798939754997070396373191947433204130432284259554599366359684843020937288562672928874235865758901233894684809556239333411057888897766891196091036825804380917190645618875385488293106084102369072199748576646703216074650350934617221772255446963345337408247560722988400741934059034421049012322175866278083643939204558270825117047392278875658022983807814457042586529217492983360756302866928919286277165181908324613847310608515301538712929145817044363978308648345478012912246202158023869405715097658863096310371349549534184120009637564079658857104306633190352510107881215455129853326330489331989520299527283519207422549003379475596155112352241210961114498859754174792438254080981832169089003179718203332615915295395058551732221192814409624374622316835528558885345939619578999227626750769172303824075244896481693808554543571247922034894030182502550311564620538216201092326069422313905340265589165181524619338677355852043224840045049195299673202326854579651904580938052353544070536440003834706417679005272810774445062815153929245764342084094848411305449899266405319966653943552597451485125414305042486237468071249917053064610484532966818038810544301972326291450599506118413670195908917641397964844429187702070913291331809156209114886878145744035927787692399846140475518580379345311529523460731620194872325060565885122136083632307261132950260412446829308187849978106554294884252791342344670688985487315961499054157331451936113792998710493782131629766355297505394916738694830405269847179212706816923308660002492511107762807178670431098237711570574034080444106291185480213011460184138462215919971052009621759087349956219652793489993754187717134311815401687205932697516237266982083458800687371765942536917521005413312788718777820449020957788648169316322873157022490202996666320865549498448498091862308393246673227928922377760255029147783779407996071116833526492328643125377277331763437342481406447311157269070043330806287828459818375370240865522463733643395622890529350050489419754542135511123030744282414364271583261302488676151199548819867552533387950027345113706139786953170854753041281980880145123135418170569271125775956244816154444934919949764225256724627811132200731693010039155193789497476878762427178325561406086470747100798504566553100823388019443096633343859975969535152742652795048538724577970891374275573175695256458310226648001041857620250660621140406557477917149670041499238571025267631766031846186452513537170479827782637385509622446936290184091503379108769304282272200737080111214299421607521933335731683477872787372732604097733561383242485067319025173940675978997973379214195001942509490703844142756085297203415504997124130251723065165249452027657895191325444470908617558213666591946455776744382589860073928732111830793421716168220511816669068230686948994160681170334749275619279148479127075515623335286948032945839387247122506312210991454777643720019396950896738844894066117908865898861225242706634505652998600926042679736187533827242176257939164420388834872554340828860918291388468771800941492993645032651505851437317001106564728053605480180533712817914096781010381889057564553837517682637149945125853392747144090204410100715372340703372490508453499114573287657392992878090671707789777043373539180157279630371028496019322267752032847863678149732868458895072665735001858030782249288592626553844009758730909057038023572670755354998066754354091343868452861049162948946506415362902264188498318725371643814919183215998394566973379890460923710004715379184683484128579155004876438607902136894816297844286078857804912372481928213187758365436694978420198601040295274199803657088386865254208191460978174922859102122988016384780076552340151499299602101220575145464120395455665026510955069874469682002923985613371497453094990052504474908900442793261439256095139766501703728631503159603097588471974974421585216114010635906110851105627947098834318033625987854317563601229593922722996283984085545261830112969392131756013053453067203781900353937894525811013950720705119851830572583141797243639069355796001559395796139617257261603301378740228544815664353291347289201586130829739924956021997858687484472280420370346741740560951105828982750923828666835476353530055869438584609949109882874540224103838521157836279514902781017926862252466346527627180408381499261955713794264924319780973174259671805980150327339676569620118590268359663114857188067361140914504994852101853411394771474528621605998989768616924873756051938004220133249222358793852427964865589925433793735014825687114957078466923305172400004891516597537765351716136634578254694482190032868989317486918908959168048649309509661819987319819413441039278141539970132652017270445131557550620318600266110345664211302432694020921361828102794264150431934710102838242607443013039510748858135797943908270361120215397497353726268252284043564207728489468534739021341892439955963006880617911250332275016909108975033505306591475778992313403736067097169275067026310635620716834951534162764879761156514548283745682629955800446492311083418987173004694936692116798311881680341141270098762696882383222087013276897882046423435928339803345706006339141658796244191391832640687874678623879806320216463060129839403457410561225746943325669189684183457256522505218200391967638749316024994574721195298093778550495445923200996728455944239118980753474540279959952123986463461935176337536680093848398216600368841440812065250890251191315737995776515697134491351529629933447098764692067022368092305768380456244486593495444573236940555964406389996040648716415514992557988881781863353359039698096915439858854225242797948060616959084941988379307233384546241141444905092597021157642440439821067053843391937335229857648458568822392200131570327896812130607196324291126712971696809806431088048431495985986289856513688813581541207689604811562670927554635849391714036381531305740617850914420407846482765415989433675000559941431052175622037245645712991981780346318855464449344709965677245919056420723802663466145383674436698540907527524681463855607672583827913572607496991838145818646759948058903812219776644894407849973020882593584838911110849691460648599455601116035518491019647321674280648520619289936681384315802981589147150325990307674487829610174366937577913003973568055355918183219346800977785240997625983057353141300572036434420000415258994803231809979673656834079544906423348652741554019282576418949039481903608602866109172803188278816366847037229223959589692614499635366455930824266527740619682164498505653083697757215964553572574935883958316393833290488002989163738711918455173159791989323179230499595571293416996577051483796876328930071876185523585037069741178361632882710433542567699312536269003572601639211524332512383604394908586923133762145059590997145995077996005610573930749783920768293181086096133886577003788659277962131719384174757541133025078498410967103982570341974330916278992278961225191689682793572177232928656134864667243919935580128650777339785857670697993076289894995604249853493781418795455101472759155580223060028636389616379052458521752900861762643323116690690856095176263058712305605106687776621073472518078315473589140358910507706160586179976494657239283870304089065763856768119405993626453970208485985288128125789292366063602140017478745888669623900610663060411883679432331887839958096353405614047581869265018355950713316745560018192097316059753967401678828990866809981922164058921192067867763286280277221467781724184848503836706197703968459672854913283739743690535256659939570517943147283499722683433960141125555617625219210548401821944444020901453967888894061266883921666897164782041914387791683221994005923684747658611434482203913287770161957960108805651464363842953207047397283055414972964510037001489909060464608790649479021215872623173806772172701644002879608369901564120266532397563383902275798209061801483903432374483310053668918583321551713655256182690664987075329927518093076256124216880635921045558094026052878965140655344314141492731293730643517928442102955464810060277658507123605238301898119269009417623668269816358466139243424239915495033060321144335923828489157232096296768239807748114455191417362955917162802372418931692751684692530969588283012431331503950470948046981201154536631735489487404328194968332005531211220820346307220843575784435475912149694824856698615832917141040734036822812100120963919816927403239005094257834344198749821251249782314397457545561720946150693380800999066529734813810551951694525098357103940039336890456938018894624757278192445391708673947331509680017114950584197205948595956465796005547070984566978933984560283307650750835972641183907447344064197474628463995837500195437529481792791713414310653618247294748671548229489974219296414623083278997368378090395804924512486401414778047677242239567815886350796849892749531835051490131503203081455444499743880814026944930959675756143099445923851657877873564823621784739403278657770774735353059772019191201141533621010292096062349292790074108156100687613754996806585622640308054702824105456007056461186571203630899883483426443755428337678318958237674361878865124883066157076271316785610392770488198907429600045827180561897653804816070256065466046158071591847948318150830862593451412920939765671170805741875416357957503336966186838727380460870232246638149561394074537379496695474510661163610411847305425093817543236214736664288105553089710222652707025514277174764348478803725263448919554836486522293308908390612856912708814287286552066633540498073050566128954008513341283504704992620926812736636228884370721586291865798508619688439593114959384694928223532274885200179128006071141120364407646224095285841369645114715259031200735192995628896176110194522868144305274984305056341818914616774019270582738334939059005427489849088935934022672991274342838602706247612473306814809226564356193176678512781405725488911428845483750207407646151238483086650411588942239160628354383836144858821769797550962555456909274918319943732271988903017854341684979975401047595934297561014403977749285289295614906321806019732066647847351020952890486744381489279443657353932682420598537662990702074820271419554307621974764799570050161566581632064607545140671221040277929877266217297976781856578265435714942470389601655147884425010812816195769190472083303997523425819905031307448972059187712779416734909900805773600346626685292364945567330736173967019515927476841801207968939037968643086637929368309991527225057381073573720176322240439456368023000909400045438485702484543186119387336307829886552727912310049291697638610890611482820129836321138897338153831956405040662129657755729630813612395991593007583779854386780072992023917761396946394267322486313912510597113944388152847752841281268845095488548728358638650395637878941544324073214813221569570289111585501948982686390618020400307175954440986776036842405346345438293950839346134189576831947553641719374807795784886425100211293274331663500491742417153744512878968763222093153080374704195031641512441014999382677090721346719773675529199045680487094142101953504554942023487222649355583856805895186358121119338741426063472190513535342311323345244254333312167281359038557727142253873750843675674198989383282882592367126023495825905247969614383324907670913862665695490682790077734750463386856429837318390863297167316882557020447650690254635608419767808256802354158937817729095630054817491345149764969481678425433691699973003646794828478165590169876826871154041933242934124967410102019721510837296601437090161143637752521021614676294558043872731036558631679287488092770849164665223453714197238826395928840164001354814912799381811169635877888479349622135104816951467708027644302991755190477963763734070865155127797824114726981706588554915619274882261732339435145752079688235839018744485206637500663907278462675079063057054338675746394280977842456709442851412708005433766846557487479378430316191876303098201601062971199014172622198103827624701148324433790007661583000787107551256629552942521909494160245008647682682610178520459132337603159331916586738245389877474481549882099365621809312614575737513806557156223274276643991330569523911889766500836934635904792207676817759919558230188611537517476994210799746676084654399900157439885702824475680473247841906580962039321862972048305590473573105255118768288614495787893130298919011346737313887427576829703338014665724990235281033866677833117108296911671653664725612215368235885340253963761754630931057415692665988657403579243773592615618320844195503510070616220081458880009269266664970162777645526658130829005141739606070542494985515225537050288683581225783350733570665144058652972431446168440176746547118572836513431737628536458675194120791023206123911933456059501334252457440667930478092265386182570330561583191316546874527086347768817918639066291585643403158022855435928240665447148735153048055590329243117482666796067011771590416768123103400213481448614209437890875842756003816852241659503288760507562307432522393469630567548651887865654466152753878563280962269027959821752404575104388367473578137331705337113513184816288027681012140923411026854511806937612258920810300653766315115416717603442997556286047859105898495126749247143370827367213525451047532754030014425713129393416777480486994170173517044649159780616533723803744681451512005010232790914316688169135705051312007770873198636872985268110994284912722939043285060125429897653190676057945874248233940057177851447865968247060057727891115529386005329517378259128426594286336264824694580756670879644224435241906802897003658698208858734083424107117736098183794334609564914737471214872253575231722457011293806061291200905896128207990045963076606565511087682411033910132871982743363528908172899816913558233871592124593206923675929293986812554560419780268623543879664641074409262366537367371921582558740859699673498537845238926609810827966332533160624780575301041773402888990099873918656912731374281758901478728521254714668020503544109339800785240827737441397733970543592236166200661766241493060587095095867152131818906864773272881839029050374937935616729493437049852536734136401171328349784253293767256902041033357429557514482428296724759474772376334325831473180684986098654368413114301993603816907489893271495610422748970411787010770020922844818634913392733576275800342111042342694082436458563937502057988666937862958658186996898560069482875903162016688538047607994984147648346623649070068850461804835655404774232370342611212010839590408776111657522992363531165716404839767116025694440436949428314938796990877305872299953046932317329646907560828397552041095541432380837788803358001735524308595714876623923858349790920498513329901338298941037031953505640092912531167176067030977672534411605300218595582285137180950217370817253357501937685747383304072727471672538160522455623520634038501145599275253331248231309503280759041995010561857984132260080218815221338869406918590644354962990137950445589813029241672404732733459273299498458463560206700721352042844453542887846712271627645207104641338820364755834635496159765284978006098164070268131732385168281498371649770561271407899096683644338109498690568307426090904592355699327090998691823377619342997394286408329733222414820856805917968826204089088925644099848928274122246913203449728022343281090983455491654921631024025374045598479561750748385627568542686267910476781066564989844059278776486497971746494518527025010889670114660169854728504039847820241865626997624264840322131253861945896916001471382857011752661498090607293129183043369266116766564226945856196032515238390998427869245698839107834417304732671310932881270280276954680101463746796763364231207368658760057628268122929174099569499191764289499681852597827689640180670905276066741820513827820400402660755692242457748207632320959694723906536594167100715518316148510736304750582566939444998018301425256974163153902651771002671757622242501581216207985491533033614309766891727581522298706456534877113930408124981007740726528205171653304718765310737650465440707843844986117457223733557040189281989254947995011712160470264483193594453406411148810936339220888291879141091880868532790037472423879850138845399414848068200307267574441194666018806815220448288240820117728538343415382689362538011114880692253982858154496212483976099389348452412903890492425502353653160638972484911111011363483144809303636055834390859413387778403639359567955000405115787928396160016447714490067226365900618671569770612236794253168211903480250917885853487443041876213789138154288242920808290512534067469224723938626132399696093598319231696289545554972301340978474274487130898923435461325297050521494314239277064331184782016704138230834478479391601406020636388843685615105890765269925295123881640015561923718927778580666379733424408551215044318324444836680115454901090565915038985370014109823159761580268000719581929120236068526160257742990595211598955081308479553015651099735330988268445081086073615601511555978590540774308862495029344578397127248043351574390666470871567751176588661310550155800950270282366028891378416963294077367835279256184494299797125991699896744927449794645615031624656985688628008948621652309295363442403774959461038806810586374812530231166947299935258562107508777547019452761735865607553152268408620028308496634657338850266994184052522790603191938263082756505229943739935845732747864263195670679212221648066793497804261506602162761501676255611272903509676698729649767605271073084806208840426140081224357321902906413477734804624704799065899119783196615837151608085019162032319891222482740764583752953404817950644705272352994364375272428726577859554385105054381934543670869921091498727081784168353064038690888610303840503037364731108342844380711470409471253163906790372959827069690972226633490407854307429044694840833951480814510207079719483634691043058883883472311187166256750338354367650921061362033034397342913814977637163835765827049467179164699078011892311829137803029864928847597640407102599495867780058192444667697622100000937992305230203895642576046987490433463830220965973491254525979425028605332935856039205361049439918510402294420639611095528696360482828078252084694824619125073831222212518278623646405047142316888287984239955593943051969166012102286174858959609975055636344500885309839807893504710223110648837020048022275226768335927938467815136939525434479746470917937042626036886514497521404479169124148563674944041531732438229828306454531768933491605049743866935532079714584777678089731796983458916825115911241677250211379630586570647940840099038446643067259424763014072930743322481485605362462217171879988334839789757594931595859319852694870545629624292511905569248220921777647421773411937312918951851248295191884827057854746298171783798085459157474453363257075377739800976887359547201385560304449392567869675480954798046870884075380928538483631785838178500348617267669563359046217912588451994652052174418953000384279987558017861884948204527887119184357489189050178942308157526122786627125929300674993203989261383807395978046077225789463045036261914604027326160924396829419885594191519799480702333793326516213573681541372472780543594943693789279640512282460769140721974264526539662914860645557643897412859586845213183548113432593594430794446906492192288155467429037290699983222453203359263693243728234711253044708055746625386297134152168357177670244968835670523779491600334501512235599703585986763461185701940560456768932928557856118603457884772608199172995442208810112025847072147297013599321745785863214392122633296964701250345780531388177284194445456359164424082337485017047940638477737629677185118432882648314124673325082012340658326345953878998286360710372716083704815758524836905175056739660764650923884801293979828570144027835532739548152759346499693238004372249406195574065871644116259233320893140362633025631465791000249011678433405494660027518658864808940886579209598363833430736512047210103305689331726572939901425604287351121345519355841391208431213225798409654433919737204325177707837016574488105555278436672302373060420195001875878023115314537175000467144070899390890800187060280182519673995350188050011420037694419022063845527650510326473822373207251462243251434778235760970933466391824449607610403354715564844775633489511704550802167457834664990755557198006745009881487551251165286033423398093205600242527449102773755950651029872114298091318353766787194606555250752037393136689410944979222887042554314778270668936853204258323523496942266600902537581700151240712419620355869969547512577777679139214148583678457723222492173403273504735445152351483585508042139626133785844155408286871382446077663743913997495925173432063765569842379329017918401278641232826404402124849249408409940899854951762136221526960773731525928417576656970131675486887988155801981644620267543477225328182352914796442949280572427064238910760323155491582107124880561139443088486337577024101668280307941443281055109047886952637657093551079884381410459818937111074758083168213733652110835154977327862263824428412274644570152687135548998432179276670320901450018741502118337447231233415138629157018638483765700076906240331773102861789470692579264299529549271286313795175765493295467106792050045478137144308382510385730137600636044159535883292195708035848658774351109676543394407065579315919434462981116959769925833604032504306201083912992870403496393210567463683998675955221741897127583146979847144735919710285948047237761554281459867169291541618680653362599440580473645984248494227401588461018327472752434067426926039946338424311659771931743927322406589677819071536392920001208380272313887401070156741623695687212669801044172411405203074646188368528971785510951603849696900562600406157208719841778028182867159902317809454085482938086459283081359988702854508478174139328715933133399976090916429399928097033842974053714169053081008571987749975843901899881169730585483026049274121705518676824925771319477408220850123537200219335204792854083506846982328804401856764198981375464931105188459815259598281495143719406720068197675257427492901731727987275977862507926895026994441116801088384823385125156188642794970107988862528660307769293774838465245211769100031203276770207357600038662711818200939990360128981229787781136991565070797082974872133014114160425534561637575153451218268557456640087189876047982383623883849128340685765335348588379797439566898696180095802377882951743497347104899541472160541331033912053828355268594187273698381513167650113734207251113067308795618879272632245655069123965699566265954102417290958582101329964316687204604266549431493506498554470138528781595893661322125824921454520877525753301168489951384989265117304347136398443643779524735654619226712019742624045881499663998251457646143004682372300793922733134529706421326654567995461630255255476140280685093359215276337266676786224207871922564014833806195605860570694606559482838917998322639910210947268972263354790235092244698717089939739856355658624767110799625854957510018618123964239674225878227064768410687833528177304713751630185849594734169992174070694828519076510732479683564103199602854768538362968931565664456709553925420215883879312109757744433335080092566559517142954306428196478368536467511577718019886741789581906088274793996542019677396954396936792467952024395314075657173785181040141035356328495306216920590079120253016345949271338351123135944022849976435811855625118038986558267088052897214777972363433152582585599229560549157878862337501778178437501286202714298306125843752357774670434773796943335923664580903161120083018761120182550759054359726304503717253518409378022915252352147978008442795619665592858109340701495984776799082639333828055716287114622698681605277324755538175973538478819361250991041036122826449746492260877670050286089162583179540011257051851606200169815179787282807273557512368593055672086210517624334916565285000203881637576313777277124125962782014558092421166216779722537038154673896105609781525510669025097554102696339808250805304244624859433737931540785390586418328152862254033516193866554304481536541306127498061387559279476394242564249919889679773686494984257358982359779182574412752993894428855142263344582069676542851788082747531771923330440829111838353059592769333686183897816081414766059323322468236495321638593578252151169021460279207149292910173503081759453796899821961026161688820253458323970878058632843005385050075113536695619542953971316519758457687685100883152393101482624348960053143863155233114655383938368937815706969696127533322102105527359545264417935974026030893823829497540423268971562694621041295369701155814837221481305894236865580580239058071539881767387289890728625088808493820812653642636207274575923450040348970327457547282978271977734714928770742627179184395469601698828248449638454908283749074244414125903839279622246237811014649658965054157883336375882639332343226381227637841518205697783115835146892627065492993996892981350330418472831745498822221609352903186579750401337375012449024538789499917024085578084131618214641135668464632981272991308836145910026156168386116887796712974501013672646698393472497804741908806971659946033813315418289978827413952071310625322881494994456315356188114770235343242147348702051146243731272027168844394736048099091990754285703345402379467947700685098536893274503299523048550568112932793739004575213345061457182769151727515655472165426130539405566922038754718809206403348972401212869881618887508947335057092139409234235799084390916052311001937274521462373566879789154275280675500351397939997233422944012538288795438335068336144005980466237932999513293514039124092909884400476107504975898982688288414936465507695290879195956276151642645224225619560510048310876772457294552495608804382442633415735368676865590767704677933284604711584962625537198604268153353311272265902099466037026276480873078862055742383793431671055905841472107060004117826694389077875483822164796553589221611231261514822461256406427989028954377856794761477987307752637768954151756862307653293788070614173376465089668695796634009961929657612849519131677397898506043599259648555287860235083832864137623870087751692660711928831853808968877986257991645138839135440143937070824754778642469583457750412565640032623196158921951229181275863630432273149795210126417239375780034973099879779119374387397572902535421491930678340478137672715037626939620084124514057208577545336167980045455677657323802767886816270373257658795892964456625108626403391316846652616679881944271660284755418739630053102902845755825844964177933770555665142757031849852019933869017129811107036901281815739091488514068133856743883327079375310857823740578665539680704738943460230775751544781303883582022439124284830741364774355495057065855960691167493476457211413923213132539866082642601585284318830043842411942675871938552703812069645496075564132612443417833172676790044400750837420750131102554325638247151104278792373150887088223744725749001093908002935639080336738573889534843526217244982044322941535205032814743728396869733483614842510986556138350820814809910205839025018337006634885725241665916011246833963186806728754671158913860355251782104527463655580032698231880956354305929120686326442615707704941005258411150254167576966070349033139234176325647395068429709495520456098085249197010607206577928299735643702746367602998876889667605163534520109413516227634902016847230191501894859164824289877868036024611344783208253656201777673769299992141442244592673230819670605613466410044539605351975901451063992625987801977777348278661115976626907595730704728689039045856946853732495943864292009563252788885736402033938976239806292391214764547993281703575513196583204619920377533184116227856500455419117873843500318598522398599038770955327046339309010984448673070027637636410504528096086712078232872226175259272790460004845412331158221609034115948684759632518088415192627496733316173873302619264572549648432513623190679569205540173320612753573857320480187202973190592801651250808613864355776543059799522754388402397202298244138384337433788381842915948487952120660216775274770830023439454011567359749609963735122907186598601728140082168262000002704738547488375551461862139926417082887317164917116352404581731927660733837903695844116721933321933003694519269603580496765304141453914462031261586175581926369894934933690282106202921711303194064061037653901402275729259299308707554184430545776174387176475320225687328290698089927790772021597474613300922828046964673288152348660802242998508319120633045107099420213644928657385754130133784308843997861133401832477239051413566425149424201653035685417399425116078708515035707533360537159300552246831980221589524246521578196657541275644378129590687233281627515176113185115689930850688180777735599184716162413601043315519605650901211636786869035787727889538529723072288366268856957613813452233545098296251334847778587348128073605982133062214813707525735966758709764778904041001576242624193860077876973139331648704003139220286104865315037755236523986140475872152345539876299926987748661431490568388837666994334059961924220991396944713587333207466694119614941960578923494604096323844853910107988072871699915806660755548321233003029440927512267341266265451580152198921815663382447624925095318868123314368034929518599247709494733711342346191470574836758797822065399161366616316026462283270138124241481203999065093386142108751790929922038316370008319198400476351092853755189223355651294505695792728915942331662682720304218472681937518835291466289127865048902881797927921732812467404018963630212087814817710907043835017645194699796458505294057817251523588292182767116288149744611615014630253237408246928229972602625817304573654861992821955987066316948450037241293941193769550526911827271145792291156017548855081525701433082586248665715136976311244475084296045706483031761735320242659486051550762839043491371704860086600078547044592131635708651351895810699071931119780634765668143358442430352523425479385611952092110600682027536953677484939089545998049065543545130448481511347706561462331865739441762896810485071638712405918694506781915897871339221340080021648667607312725575404676439595209817580639236799106719995051130225220876160578599918647791790439254816803287568482356910201114333872452597238273651173653172131911085961072926144703443712591651039556770420902897944871021393640052891370798447981007262077496721451985186626810755052159253842104583335442440540035370528779581600205517149461069121870998066161253877035778745466540453519143274158061479847971177748001586263598743180343118908682054572685357521597212109630362544601102439655395703481854821144653470556595694039035230068534652929792091281374648312466753642904889944782911514708047551580814228403299081685192339583104923704036844315271542907468151782003056199310316504991451646352466879376992885602150443438936131018250951343711614465929594140542938289269439945889998654162903204801000462084150515476195617972525069337050145804132420048773168521397967662004388636742469591516119582382862920231112945540580443475570291196334892951042699088776161424345731338524261265540321937803851292413839004271669891324392632267046164042756418948050629373605634663913934794482655173219176154387308623624788783397817458982094920339178374568925305856642375117493675373438640877652283767124087234985185783902074141191586653930384617850146830591787678723730073310686994484010749326080322025002000396263071009499525940793699575251105203665995177379398138577394111328196944171282832303546368004387581059351414842777348417053602749937226930305455770671363067454245355049942498160030834917180011099153239199700160271880413905708285715755758651791306927962990996217002665796375312588159273818686533032322190512853957166942001684218853227742995819706084106516126302400283150101449476534284110027193871162579863092543950702110868436677557933708755421759401675453591747409191862864507565096857901643649554446737352507837157767953397037364850721046099493433740052858516945185053234245456583296771008365543324449388322928104086364078133725335765278634143836814324006416338047640786815731674142433455508618040076575835186375620078626377670269687945229401217863757177421197275979853538862467060766492446286099054369256061342552002245956705766859034697167228079390450981756859221348439574648949075848855900247958963672331027873665638349865409227333485735952026690296930981184059798549332138802803869072469788692712339400835360023639259788654375961050016081631072508310837379279246004644184418722192991044259897552441358267403463366376011391189115244096935478095166321800540385238599778427837949746819281214887514051622909514144631602023680908896093079160015152238991542636432377139046900314788301641267586705848647438657022586418667992722866534412982152532393048589682892615995001308551679450417368766273669519030857541035843973601697899691999629390982196312985016883185313343109692253668665830837543884290725018562379714766574922880047171798164451812412471135219284412941064850337606154554868444325105804338275665232835991903550498096774031324941533472132547567310581488868119083765305599162164901727891646961442957532231245371286960345999375791834737228716663729698994152229626014493623969421334501898972127636804449434840327282427454315091154139670470165115284835500716487636129925607455433870405668568188752752227669610148472635368288632702968367361877048521901576191023098572289574299507672620072832413810803518577947044392261319853746317226557435658574103109181690363222499452990166061304581752970470666795468101936678434118021801204559838613020972612565743871973406454569877625794368699865945171945231577574196179527352270681019627051797609539239638707367276045759902874780542671973685413177395481203573593951889699243197046302266088864429035530576598362927591354646610476730523062458859626287148543131928307606561465144902910512999778306880962101026473806966463421267946967621784578487813541318179778526301222024902685400565177266872692678350988347809983536178443783408080325933142410630116882532746987755411211861651219675970778024031622771042497885877933905277002486302281092802968800024981359941281819482984803821340161066035808024810486734520342532333026460059061951830260320144369980321172408178607153403508968703671288072345592666110983766429378057650924585936205121379899947251328485502166126814868154213572200176962011303784353739633379015200900787035315800857802456470515912301536642114816490478343715226128755599641356260191839436466592520963812329951060989700030073257466631233285189102695495135123913052545485021785840148566334052061380360478339510529064221973675128825639486145342631993564124624622498540215905902363456364105333875922247380047966894144853492075034843064594326511667132410083581619098122551098046973744893853065882137373380624879338784384569460609577212741266567865813161592969869965103170110786389165964421026459787812369838066879722145376751621652631947924294731993728492409679732983459003328977746443651014208931428120463955166749571089255893190426797341908325415839861205782557984116392010868820469442712721093784475145634889369722706993416647136942744934450077796139645413476421520278914603533154537173248392464361259522277949181296438276764256046328865496559612408352395841663238825212037746716975436928171777109225325312741303501592849196938434036390678015072425531060051252240000468016091327538040474378926954054928669429298238171578532356834721218402350005930430885829694707194003106785659122866915490064508495082119044126926349535510806749606924409213015057374533726672230152803679327895286805390879398225715259921844423224548806492112405695035847987341527610477582112008320287062489262011558481796499600581702680658802334477515416966210891581999920807416030720087341279251574590526508638399054060309533845781806142116341879613977997922061325515969759485324702081373516417483240158171048142695805896776673530394639395950742618497162888216461506720587366529117507194541040514433763734255605389773587035623387064786677104869688799437171860071324446089851311268683057912215164531130630596283648087690572749921675067202005808533105120046804145623581503669865202554491878269094507057302998035191777882653181002690921678045177930179025683131694308009771913334125423885001915230134413235347378612887269042802859389352351944255012304138046146452766254846581451108810461457151863189453879639661433251838354255572138022484686306864540630019362570947719088873690714811791235956370172414921291630336450281533835359611677378136150992308174803004960628542363642783489423295574867711953988092227119872801318885838889374764664810983926928122516389032844107721850946150106321533603183113370797325889750501529077606736989075762654359737708890867033790851348684151747512344248787205585741722137641948761384523728125223346833239487427043027646652891285556431057698473679722034042188300919993061021767139265785273736855680565481372179100654714957516079722366569250264264055055721609079798338133209456979572403273611750045598362286240806345055405309820506828463411006460182693023146399472097306529114899282419863964618698368099915225624206859325816606979668810634032883491120361932827365233284654974514277013927641858583675098444170181766896070583847551998105933356082350972322745560726012950270583658790716010830869279300399722106338984481138169231909452082621092814599125940345452482134009237906571593888068102254840988639481692172458712714075287450617076396009809367490193295489470137879922895714445654011011501107685646731296317900770164839281945768589397802381450127320154902344860905705008807692122989948295376845940928061972183057134415334926883668664945226861033732624157000912816966175781966978233464583932687337664654813156250617514168340872952640997880505887932593758293471559630406399537584705294602965684231730333701016176697586055646806429899922769136079077999698051138840543922692597428993235945508759699391968562478886115200566532558059331535952296428526170258985232492048471946631157131297873870471796969298515675088222303237018010797336675293322058252191928841292322194002697277241201687170042191846836370819904794916899982684589761704397916374967206470728487856871490352137392491695848962393536543768926920660506277772064320757882483834885206983615511451491729896166385229531324574432280798901179578395026780185650480437036416711654965304657393493885435045062301611095242915248885660945230557116118734914958922419178312425468123788619958286673853452110507939255098313155887451737240835024862865099538485930217024191039675158484400602501037777305156252741657278901572550353556819226698396718429948428158177550639527646795217252461737758008776474535274237287091302576779643568737678808335509741908906589189951927792541964988039382622982611597822831527052565615916043389127531582571492127964199661723414161327814461117035072538349392216998938028276150864354644037502183005104118921216076857890713443908242558511150460102251193628515203391145976455989746118775822290257202260749485818785319614031999975228290340687273510346340713768939182992731635680641765368781610403384469327225868011618578722051942020758067804537398658632425038330708227756757106292715479397102045708568508440164825523029457645051872351708787504037189010868367001418653536169383875640828619544336414539381973797058851007309727255611470665560958859873252482260974954552507530794324306574411193645090370065862520740001502447965483172919767665011658192550632212780270601939596648247358758942073162070238551438718818956950609868824134921437043013416753838766201844638225535559614608763865697955470876389434427202551452980697931062392400166300695772080742802195021013115159465980162258447002405758803434773516628302914814416078246874996392715772063776290504148116601330398908887873159148800101966171733173097923962199933851042622184646672099846600267641644392027752418759605482410818275793220516192168873696520278520483937111146417675215480586337267593803307825202366145887682034089717761727546809650667809337841217852678605760648098575550981307086903453463895102974746440830350109755116704461861268489254491764638609707966321850653146274597916138561939636814045645184864387234239905768439531163469213231551550600644415220796771225617422484747035379878923133287241927822319300635482783708311441410920611799781778184820954925795552063271504096534458921227306000358636477769311951973621939848684842683626755349790256595355468615423277867982641519839268581932794131655784683470669158506601157364283243273154027713802859487036398305837912990268281059331462652658901960603823100836608832877940743140140114832319010591837554239424456874165630688877946031762494345850394090218690030198725477650542053290901470629483704849334508726629243935906205202494940142319046652744652009354590357974042492216630631024478068002981120242658460210580012635957476831180344489489212907649605467745443571763706613591947069611537686137211963812433167911768211189847546382873961214176410410288220823727190087302181692360370237653696244279051529770953254684134647023443206737398881177897633756450449596325003393094844792726998804041268203871963089703130929495575632537544702454919270451460069961603152269718211925563621198411413534470037981727945196752127419597769076849492640163061960331978646188751029042979490927164328767819841089660567864404164041843895058124960040403458237903974440923807338426821617334509572902871935265995838123484438495359932145646534577521730226058682300911691752380431985168204749419029063581763647274939007239682809781840556579254406656678650229821507941782700326676334262983543686496766046157121828960926816106905355827364168302956933881717691012023644246846312115907985313669228881520973147183231088951642926060704515463600415270081178460310088631184105589349004078187263167071949092153965640930669461032099275071407389548101326220191825831549254189436629353159907893971736923153418861186483842158902211209413926324381371168263784220164662849675439771034205438981573329578854297808595705197102890007028363404730578541744027497657395761874006697838213674631874282528537717491226999060731164424799422117140905971388297747125923779102044819654332822837435895646335935179836151095002084302584016507033868894475568298087783019328010047914243918290540862287090313283153456688294602517863006904590342228448157889995787945458295030898335623998683644647519362656763452757567626388457934734579601040075815520807704365118208408665233323648111438812757455465180539961190850484020222721384987047108767688036113261759784359514855390982189039347888073914999805216612494608845687565371502784974197720708490539613980088525757930419897656721418918855216194611826725667993092811216604411213299766726801683132002783415777129255132144819440821175200698902161995570028329847740900214902395479730729650657425349590447572176294254640770888139874064022534041357444009331214954943493346653173245086551766627217503112368367816850925635712422705328599594972723255587281912329102745605621247768537407697072338326189073951613608746787697955847837186276420145309413906890363771704956934136296206225456822779882761692931040884459214004571152897691210051221267349286559407782703935025474763114779557671341017060406991480141228425800341006912497810669058971384743341218718668322869901949090366931908946580280685486490671740861151507537768628098018506684344029401861214888248392584631316995825827922690283150877183550397737074795814573960344346427773856687180491155769970710845620133175281310674935929543594797662364188819688436889236318975457275547118883720227876500452745575349403202953546432987600812551082882384244098089307814762601724584692649598368968531663869307910344504201471236407362806431739201523787892826592743591127168152367398396630689174664063758934237236223809080095337300649195623824241633876969911382001827213176580435193124072652285725169161493302721597779610158274084378851729534110664677141843118349946113225420225537392800198016414834773338701304342917050104755230401634364563848751009785902643879515125827834787933069906848133655500295247802496357372758507129569209283908513949292911814386735336852632932227715947890738936334312751965077426064094455704700593427508787115187873271628131164240671308320880303612937221306011844046387199908323977666778706237592187055447854193961885871623463116115073115752830206421133371009653535712190678848839242613780410189179804336613169251829219790729491618747146719970779643075383132630050854387484080977724693702037597323348711816536118658612581614284668059374971501706638965568671859061630434220183043811858333684194277205858242864631436474255946588445990273054575970981365168894304218862871160518481434944700330950179429166218434364642925835394649114336307264973591020146540565396666397835485106742589893230808988849252461999382735210675677243323777748215649424935264194085253287101119525929341490625246715118849545956854268098583617168370270535200692974077550459438427120067072833186305355643132521632408027615709605983633971914930659029055489298665421816443706086679045568566374412211940958099333207848544080718348870501497291916526343855577147511254265911697953589350939756167304211048235861496471001899043533847911684564613754748781104944848145886497488175602497983136356232003585484358273613206431815284041585060321321987043082762596879139673221147126552407336632312688014118311197256400455882688944053166136421707022218787476219039419063631729380015918200787360100832068820860310625071670605030355303074873413451611357600631865620008021644969450938606642552778909972549901134614552931701401743967252904011890745541639788377065057641313791708365637437573156151517624052882082762792567314917310707638115955088949035566529347145273959121063304111869514822937270081337508892287914105473647427233179903249418476387281564193890542039615926364903601476178143589235728637131980601684797215318735699625126810379039297683392828378095681475221945381904795132918154897004607624335960221994623739988273265357687799853952178553073519772527566924519289263630820272997596095846449761999870275003630729348175226985551303295216942689697283263842274366341084944701515604432688953771008194483032731698949763726276912075163495001601035502971857400368992193910170263039414299745674973758792716715324196772935301611781692530507805918138790747615597788616956647930506460899379819612014936180938164475569638341970969891405358834201619743028830779319354152229278710055907853705658411372333467654440187456800970589141275904296881048321959437103075472618922402369840221691795629363919376891142451030138578992364466217454141525345600435680914089840932008022551258616178007762625047261091605934414243706469954185388499868378637670720336268735591960650922282540853821080568678558880564124628700739036445454873105625891767132539342322090435072140965553734576971011759564079995988449503604538382483408245066572442059174972293801872998845135285462945739946637041544792415269456303478592678618200767817329408310029234564805235035670607733402126977830552240249930309434267389636027489279298663332365454920280673471216286983577561352755051506913737515091356418802166368578324803662156328924782948124786426777128809203492157835967716173924333284067774411264209940709655313680085166130294989991202139774834653237108797552362911485403812716884601950228468575848594034177433114410825000491778779196251383077492759041344852112183257474284188690023962965846020102357348391398283123811096077944043206685026515736006020850447370613707975062271215535826490531555346632669781205540580456221175122140630010058748770743334765704725351386207004228005589754193173569118044937019653324311049877200020696792378770558720184678195449711749743398825652960201490243547360861885396340059596415959859504010974039735564217994866731108772858855708397558015409627495788231776944275312332905733705664281238808378594485485058624239246593781139573363715388748633985960960354432787631149743129363078024967601056334436348824683758051737055582540653089668592484791603628398189263269192209428506076967950534066771169534400198159264254351284623551815815681312089257020761581463990983942300345856907785288223024941957163811980600093326500668847557656782131401711261320497256331623806877088607988235333992240529905599075262328612545238193304978257112950730970643208119274206602808569480570202225823533115182146018899478292309393180204388752118515184713428009896715708428315398431138035246018444051345951756179032981423630894352645752369614334968125617597920818021885019952764969815039248541534921013009611724879639264428180171006022659612429093072787493433962126314072750820073857428586792668631239155253726853863746374523742216883704965519336273740924036725094268092263391828536814191362323333413773580444726952069345756820438153785359375694107410342872634370386372570835450084303985621816893006002805806621233963793452741130834415222071487155557681516809613552494557042703796185572612943136432401526807108540135557634315681510882518331862707335331464955470901928282625200967768514260435648183554631211990694575845834394845059729617511336339252716758005924399836283101206409502536179044070963289024461958074546019474733931537275953851886832039938829586286685408726793234505513805143586820881290118334234696389084529497146676253869024256882601439592234489859464303942935227769759574607644714710900203444928655726776741942300179717783175032849781536863386370051770224317920765179205859874232517950470603894170670039637780388726420587865747806895874977819345167588836498402692533544153379783627460206095197394873515591151207452113342583988159956478144279665388996892134250644833430608030005366595532830886898131679476649748363889438518581485220458240436818598997801168832483429743382126018145804394126805793968481272263532636784853102008669147485178507160583170034825798199064093922822994482989136695926149634770829932889983178251082258957088959247179431940955538791594817887997286221370573750568478946708695484814247630550315901670132841353344185753801773998880735611758068942831726526552605739936358003023931577520621310296462863998088440370289647370040522535560997625721669364753627920226733651362996979432868233436058442128101862534495460392754479699203212427695890992109462939263938364743401452839669738789525869383916142873796976845436389777810005198393155356666626853065300749777303177722764257152567419030770928776300951886424184062274627316012532507422596293035106499539184019533060311996460678517178326612495756557812079010662428654317776978816274364327837049854210738410877580815412578626109752403923612970730521121398087196101593642502925260317255945975858294248877334644155753331688417568759595358180858326216915381497098851274311725891975398783336791914510509161708761916721766667713509935410846945118926930468777261184943873513171670983253054744918336477629738443055924670826275589773683249534970141803299554769678019051259807537613517237467974723944324293808196731284533884386822061576379834511046694214807657971417584316516084147561268361355496644104244202455770101618456026252800707977815701215819598189864202835320866227635138904194522061008045878090323091493415152035887035004636187870832592240638050036561143476446307561857334925555178091751833361900756848050041860860248255895578233780954174151342023234683045608954133761970514125029471625288841078597068557842834530434333110688462740635104583385957320875174026956478603413392324502623426938357348648280155145544714869667955769786887514698003156799415732350887618467706428322427826289421798317110520997759880554501575651901230486832528667198484734366713589070336508539024368058073763627181561704402535453888868406198227920661370758461420794496802466833267928824979284365710476153604801506457982694022796012396620773587831271902166310143692475314167815843121336643583777067698720479893568809955228534742979630816044994680158129044800908018048000340038815261800625358496443420310913627670639955280105538146246300169134392562040147113710679108935189016587021894420402232563852892535386502472518145130203861293625966456773570722110704124921695229861041806726540881134983540441802406418966238444203319602437241691922596083248284459413128526958141304984197247207668866146236871483264550299719386754129267343134027073516345435581998757449800318914012969758552605624866727593583759541776700500873521886228021270201147970122300376905754008046478209780696669040185222738941062900121275145342717304479625050398774853921689676049582183466967957926161392740168383962655371931319408919809683797607686008644281521130565484896285972775392706685436568643343588794112973963976280088208471363551329054535059377699413632882421791426510997980587603719874889308922016492692328242487661299092461065294382970191708903887999982804355214157075595767777447094764690702394710406373132437829847577879169520106945856017403266538071277191390166654158108736704778056777233233203433917381407546905210340127140111187271218659995023303327699296435146297201615565386366737370964073878531026361466792589797314511216606480383438720937989258715025972352211769733886466013676834014064214955808794136818243121928896925795270944140120711941188472915326237885477412258617021039043458782796605000459322203807525407629989464824978140178898936841888346988950000158685285395240473638309472755531336493489589010574325849801199400828917777803702232876653055547171064674615305881682190568444038152096146116814344719689313009898992566295056673729075744569179499512601156013127667597068896176371970844913905634894600496422475599747351070153396054190263249021765484157921979344212778672196233394589059063425738015452144616385039884463165680273982083721543327538217848894711914965851560245870096175766097413454515610578168030810563130103348368711225050173447798072125304372498862238469391534755833569122503151839578378920836656475918578858285171950335993775229687932909222932434476552858696373897242216374546012042277675519386994589240747213315168537175493766987553580395608754607016463037534521684905987436690087784710846118746979662245976736642509862077651730082370153574690508911052042637923312349091317384098117361953942591933859949040914274171477433564008528526963794314820585863467608187831460510525412891913070976280062975860057665040960100408997812504886710345818956385821833249057054481569662212565965559897374241471644653011340210629036531464780935262427824845570626667843300662638158887239264399964064658522155944168783247373613392505837772499720714495117675705665679830238044327896300571103512994061048059123205343426248293267759086881258085450578058570908714777283481532034733883638276863593969277955720321378960316885864340011423946219917645286490170019311150716664447577570196954149186911573033186610540218894128920588401809598223745280048043383140669199114656269144232329248548516830629476788583919394640947865261894405270722490272849675476250272821038548656794880635125544986681757193404655787625151327473556583227656511688092972569274303179836693362194680585797586906078192584893605613574322784884134402196679938330411503555198449590334911411051861699484915907076770994521612753926559984487448800775823995418332396374848297484881792581982935756181362677091677878210813709723457219694349030901388064977694195820747751488575567397690222695181958180162221923076801841279674800477339404659584528389246206549921667710183272210223698831686276273097811157276517176470189019379986567792436414401438403287652049257041151865815957863445369446652167184160775871363425606916596978999905006780916749956400875258628955063805319752567012430965425388948650529192052921883227977896170801834894921482156632464707549480342517696832692327839143538870291517125786123963832652733790059941532784720762111271255445481884534294136840057663464956713438665413848039157044083994550714771186533638573882354896301263664013187264278272592139963194901433331355563765738737423499703225762718681408481609221740595184093988829268076701195810106232140486921694119400038554304758208383943106977626440620172816453459113167192727675075687065175885890760547998445736988710197485937669494851993866932650236902302495861085410005590580911351879052442021633043356175417852855855624290392323521361475725493850763885989160233106397935569956156436062821175034609528422712232662049782758716060405477255052794267133009542748560847133436409658384451756035105552962316662828843757401306651202382530470372897023405925085497946519699025065435812042783180760138641710979621947865482331054496255360313549310842750188107141846989063069120233562735962482893486024273245404038484752477903202452169291744765704014277306122233395111769315265113577873546409105693479491900409704036571645487661279567096620384490706912145336968816756125964601527593093356610382460242374531179852888107772643520560917402117878608219880826307519198072240521947669838047198923744838705890950469548098120226617609686592348711136875848629131336391155176886929536153583461611120976591104442746746109613227112458926720524551381821234965549683646673197597058141233877756036364608107711912226227190107137474691600341899978825711943748422798965685291454128427301354374484564781995517406071266405872403128299050426230580931473398334838502535599137646133025435157065200525198376434098523440814237746068079653473052934439243995185660136286284083064559716452611310881345889880651294284466193657556055259563360178044079467550695075781623580756617043785036566775654738166519443846947551595982762459649723991165728851089965701718924675446974618012704590153369924463298422092740249184932394012553086196651960123395123543750930325006360474033303307035800733397394219096700148147842468574573262186433938534703556034038930874846682942632767082930426099915058975828026814101173241485382880546578599225811999318496373476760222318417970414649768298374170245618158453642031775144706527532537883833854462304631586517973584265242705371953527051972800481103126687220889230265882212057078393613918681151374936893643034398645166155867619581818218421585551173484456531236655960786041468204071086928057793348315938453710742068480956415702892742905744442474896484465427847587525977131387409935895907006528109192374227556623273049995559498322217221734180894228498899914491199773642022913014221780345018603482725564736655534087987688097042646729846508973548176193416636854480897460130940500934273605200670447277416104504502453140311790748052452430731665805195158222402881124407657166753701615848855798534737838012877086416010499250958122711241269178662014927157442683074299443194604249069548479379929264908762748254321256209175390415286847873174927913187785489354909005672410028499710789649479023010654525115624132773015897909152007962122035599996778008093723879171993472409206934652396916010288225557762005964169436675870810063760072890470397974272048885925094711786692694623334681418995773971574595849423493867677137365208891683712861857933805281518800399326301154642656713106964882166635612711114720761605049782914309531807487651592594980498879760279533326678573607410860217912362890078459322898814022794245408339583520365006011650465012506786965045679723086828501797317724106560367938891424863076368622176897989287724429251956158386164769033311133710538660797909960173769752775655090544221058320544035497187887190821713338262533785395041403883610766802648133731390196963525297274458210936835062471377855573687028344740265543716076801462453129419957928699475271845691301027888186863229122390015401135880824631389957650851625070034771661899215133006064644814462007032467576621059533077192254756068073194280992011344871078629310284157935824626118385967920214494944170275508694978248696860349468632886096602720610780845829147628419074354440801248182968033423879566340852603610157519961599607430086817156753551252377457997225453216018078570072731709710701010803486894955754897929232160664287389888559149638260240509860912728365607073195355911431883499076695562664467203993336493179044711940356051584019370698456798098271644808167409121530616726165764835230869811210917419544832595600060690526903498352532541625911377225674481979603867834344554370729980639631830735723409657673055048457397499392602078949466098268309639321965997605263405980630113142084393183497730401256045725924240266321702985356209826665955546109769534120348883452076368233510948613784490323147853249627700254197911256204874762137005469171990696792172555225575627266840590324059796894775261096354385345816045717991856791379226160191320113032684583776465662807216054895653225527730896978547048492600369816171143145754133003561175611119166335567795896305521120739676119388814855627381082508754090968505289970364722033533693353027958735303817483009495506226922291642335565439276284668349594305697709254977324346136182355548455336431547714071151111487857057315205872810598572568046916606233674305756011346128226678949195518961090975199108525575714790048507146500911602790434677648364388618225161597123482477941131480217599957536692346813362620847095580486477232788899319813658894609783519407131630030989362176303491898150412306203993757293785121110751708194148069966651467283638663632325001689606576144296259464731784216780387765802634788658776409655634421877902603136230807954390836178785012392761099625867072357761297222659851993844902400802211324662079323897340861461104234732815123748125321515720996444575007329224832551946522903980049742709316432784641231228034300567084233513050099400674563385704176970802464880843830202347938333737341124253952319110068176355559871454326434813227136923651098438464101729321614433476835983085933272014606334492259611513229089793634611471430069094370238098913745614637539522891934695438750137030738395949998652200820870487465865554765551202224807523936401822913487968221920553481980166473839774506214062845928552061962397089566306762298863289331578667444811199736042508720346631862138312242979603209201503774131432479491511457366962294501722060521109304436270549852972564424255455099056031037955612580517839733644582149571326635490217970363696646097217004574031999653299950238806574346274264271690538856100092095809863004868880079635329784111885693771175478132596237361156406398440305550825722462008722056249618101876315251846141311432659238751859863509727137898659078290363420197596094860916234822219361872837696477021018260987956768228538382015091467654341180492536324921872092282708728462331014612796056345977239025483039381790784027588623861777891092531583033737663635479457545844106561675712807591490355801726860933042592873270770938944889467585378512119718142961947994410954389698100106285233564741183390249361548038241327878022391448127886577265114931810975997641183851535810838464195517225211530500651307854818803937621487711189682870608242987854932034903750063421067906402457131062341559838350447673344047435755424596726102914585985120353775468821326832214116336431137245577165750693971522216175372482467418762861179458091131762519380911390123192760280222312080074708284890562819543035171575455483423995394044834140432924988726417982049080618924855475051440815924945276992993522176944568292855881344923109540840092888868761014938241912348580436075599024929279335958257716968631523386382219936805872679091087368193281158026756269643426718054646588922965750818815433277030259432772356964913705310577720820025352344208375927411663977536243910124973498394028995047843590692975471443224364374095359402655563427690648792268495108936456194047142928482948735220588740600629203391822384910242950826910939941428023911854512121410877037408968275094117117955343467191870770997769408902860484465939787634007714153021424403847122780148299287471711362752335537984386044649492707652035911170566804021781225650754644480822354476437637482999387335277802211044620982419890478854890834313587902088221767530239151260868522972224257641955786524206579677818524894346304130431209679513560167199255106007274059534595256334262957967719529479374834161871856578934490679367509459540410273030397494101676728610126543045943238152096265968094045731617464195483150196388385328517135380823629045042420436266546383675820918400779671250954673539440384813019819534703953039654807850297175347861262837225232368359531155769030416065682926912552390790050279596329253916778733165102228990048254581467575040149399713962495999153004934866158487038379433192459608836293592802713743530151402501695889528430096967619862092593384446676694374491724728135677417317990013953535004157391941627248863854921399921648144119792445924955540048136984958884945386185984324472269437737950950634672167959008232606986510523896967629710257349071259439934981810511020420176221417030208217423111188651623544123950337497057924241412184255172798706157538548271355215347406981233397019513243939393069544880278439344296866825846251155925504769677026813439121315413669864528621142786995435131027741225581667756207628078037715194577000016982412823995412619034415775441124029266212065733484176807622538832485389437274251005255076285028274501273695213379952711925867538102215332816803757727271634008889006279934370922448664930517125406307831257597343750344019244714057884422578399086021857495718061292869523996028297003180334605886892081532639907966412358249228146085121718743289256507986000043833908016708349318602180985619846941337610881591948934781080614248309654098930624102586367710704697306617073939431587424697319959397148013107283951361268537061759872480645822240668569014181691450977088536841247228110258028475988249380671726604998528536666729194544155530027395922696905814840824703732323272457130038639551413637500394673237220179595102671058417473591402855967264462857111586024398719326467355104651500474496089597193731952603008201647039421875956344856996421820796047302276092412018432050770015772357618675804693812003269067012829698281019777574385236301249743692963178956616758586350516643563260732265694548001201708699689896078324891176042223136373228196696380482793833209366954183351040427247023809774850928264391863000180350227125323531252900889599266542674095233981761611846721089265607002575643770766201076595923736742972929633677779941379486650249891764680201750844474266404673727825968537397599277329580230573467123179022688321769260688100144385034167366328001323664717997139889649764933713024191405737601713424072711413052349248903043983192963672192800211770916499379872858708577320799038701105175614320802638924761952174483013094282633727783593951547405227929338183144076326993970851951479018304579712355015760026755736858956751979330172957490163357725280515304469930853218366022754342928111494957971090076332582015773200125673896978846813703697367165944517565273860115289819102279150734240780833234318721143799815214964193057273180701706269180854505735515935366529786084724231293885852282999484134993160552726264362509524913640572647493299006044459109426165755222946219015272234701381271562935286837059340979674201717159508822361725368192282986620580955732936361917030513739999302672839364711683842911218602095581360498453539957305504928102315722457127179148381315677187132714191836202840041357274173136683468523974453294442900089497463092096861306986965362661475140341934189776537075566213203260621235511995342465902110554519095155820371182971540842034864306430374466580398794311258978634085170787561997682909558129391168353254801920473648157526742749385506242480040462877680113764707258726340662093535958956708254318322611960782228326455519953683388899699083758718099315410344610452342913016917114497206815355017221622555734246666755276932812909070217380093380368307647721100683394116516809220281932103832265952453664675776930151619089490981320070163447069290179201978441459976603792334364390639899982934389834759896612084893699002094854892580314212506457193353351622547705417140495642056367259505297004225349448206674460803079372090463454432548315044237771889666639522879173134826292868453114424151263509360728906498098945626989470507585130313393159929006437038000540876511476388703688977972455902409779618981657248565296362814293423999261033640694268112975275601441846991984131349444223942132914897039443333405853324787289671918243989095373530063128993633475018984012124010180086809467492059904096261554551738193236633268516381708982604640675504369717579180327701309218591558160427823124616930651053394188447524470741032088603312055648271133038275453361764651428268163356861535088220229743332741374916702905081934569820146318068203595583526706349530725599247492229371488625552101857987720596849418952695527617510261831296207770374283870698969854894464142098402999285874230301136483948060443331434541202405862861069586837391934807490949660082597168476827324811115387284837497988262194518502370357322186410768844672099247069798187045337625188090258375663744106548016837426145608180782964593931818802682270011087130014285293986930699528360279514148083298477236885993754292292896300161576319104726987729099136328124656060724053535651030021619930490595958288614235133747080156346708461463958680700052904785288098694134800434802214212043599995590035285047300999292786692673644108875113470989127147503610080558631053713531432080765545931123489722922105625144928313662607613715665691156137644951057215819480141793501713552475583507293712663081807603244000275797572731134889915394498509813308070808803537797367176153362259225575475393015583916331901630689365763975986730732054479367138639573416282050439578562466879556174247223626869323642753783891082364609718481021014604897214657252075099308196435538944621342967330261640450295929875320481079506940776566353460495365535135765486171886442284646381897820891023858496983383381158535024608240508840195854492396952296016089743220658278807844679474442568330492075147762738097136380251269351731505253829955942398415981102017253772950513905300232538009189917637504821725121168353219105326197125257097995015357744808113275697871176333509485322223575299066422407509241138644098384202023709020407568337869220984588572725400647940940170546843907095688916762786205261873428412975949119670653054013375192238293112066447309680112680249648634009977007919373410547679563664835054539507593996468079971356698846202182998445238911012040627127184342667941991341121329414598101687992979020988977972773272128689040196861077400941400669324842049485202658414519319056547189995556271104828028340176264128679591776246762617118931885473141166616147063344999798458098523379674622251363463638358496615580483998879002988909949120633284494540362496879766133296382683133800494757641579179377081756303712110679484349143200382799108528699462319649501148351554421184861842473119362157713136481335191142754312168589676851442735976567191436120457226954419550453143144559011574729633474871342886650150230467985231875058469729549300400580755767972335134024150087999855218113057727651505848219363040025553287962565342543330080072552573489961457655837946130572375773267182321404057626483771050379948208057684379846335603684999432059956605483426348942951681235856618542234751941793000329071937033330304484228882859490019871270408804239331228810607958388266696565295971782486360572125114195349514048269720279748493674697065438115487233422475810595272964925708323428218601875269003185294985183754986356167269790523218911216415866300915413651022857143657754956380584797868692113918763791451519777160882898440495523493928698028418202251731675744582920460277177488990749750874416639412011751002455254895564970071894899020502438912309571808139587661369111612714279376126297053365832009922614815544950943106167492696419546421912921910866218973403618648779611194268033860545985800747520956952495057881667254356722599175878873120554529929666561653091187084125791259091639170450439236788156631390759356820702912740546337220558358433863208310438589447786861020122330327092891383970160581688413852740336890018564380431123840589316794791710191905187048733815211502420330424346395540004986418067123185758858197041737893662338692263415629568861031807929883709606991549767352676821280195693371880694855948680515078957147572286340614032449396494379367392116066205230872619309393058563749910762967520792382527608399529013329339105026924364301420041173916856044051819788815566786105104459729978572473331882551014747758987701907639726487698569328595012350066206121473660038961341736863115334782084138306731042085636511321144986639582107326996995678365316825958040941747326411187271292222428173079042337685499594148121149374937584222772394243506080077566406102691149972640266508908079567771882746003387731229114595352079998941965802361019011378601472449928340952012815016566860957817449904228408820823858271189381434822049060983142893799775532866601694008670588618545707785975964624212988478100432143146397928752486102140189470081597451736379701731532235160762327161080882252830706146531919473300856244774057044893815541672616570858639762263384814946074758862224777187059047608582735835745044126748353010250555377992857507105530458962390888253977762480999606348386424360390339131028113846359202857426684807328327786779697477150608679279407418471021297832380577974848902673792205814448642854277461936245569826149472284230723660334684479491149602673057708917651007051458076005633317534444964217462255986368310472838954316960969124081119755730042677815715466803295740722709519556448417711332786969109565088441300113041390087134679216997144881489382648051981215855220139317544304785310159495144365334071011693211459338404544332243216892417569831189824126432351270197883710582204529581096877965239059031171713438324470366872867906492879143069102881167286735133754890732614811621995237776982619780155618795333680560762722622820329444869304142290552929692751372068381749924617006816996547182742710972160810567652932078843570811083842232565279969313738027042111014049326061642486566772591267872784834952868093652054970817831054057000548063928853892411270619963987203755542357318540949657972924032541901898769071440821496314679173189061284365656354540167876290952819715121413659743494735870354652067818614231761156027671760866747878237730561702600048830192347521417053585567419834287194085813021562782494541342141602249336672875280514083839584586051051388886825904172931682140849376789580744399089552894259623257786525969676317910918515104686209485878150272437268019244045530332432352642991698471304529588216335483326910573498536333220454489046328272606127367734671617234430107073546847815329731613627114324911258885389039851357543485751901877831588631789841877393709486314920094514684888882258009523155207357547440070210742345848023056956524824485979582626674981337905419302189880355619682151702853195699682195586024112072153253146461336767114273304060956339280902447591773146940290472373555437325529810238493641259190499560891862782235115996221650314627040943272991615958619121036110791091235653854305938172461283907599167186111472488478282444381622484564522166374345407942734013211204366906312144580066401328616580146374229927844004101196329800248319281087472349631387279212149968353734482744956032486150443657241638571656553766574185645539321047548346500886012123101308010366217307675041840845564231026119568012487428235315463578618627726033405980840814119448644699338933784770503848298890809576816084019350136835401200318618580250695979021645711069838971151973071008083057584940882440692008964023803068006448948173545723075645792125981969210849706235148075779215077136035925918618352636310627487426670802583727743204965609780055189863954104993452021914969063646920037932970525515407402365167832817727808183805963882811315444519530089293537697857320044139172230619511444954355192519649595612674515938360979175920400374305748106297055630162626779311660605856050775908847100267640038693901134150750611189092313951213976416317889962916319157162773989866027254226631355833119980586669581974010098670451226286318480005942737615144512151100800674798173081147641495449628337270409605563695780538751433243524048260667920778033262041584834779283187877844522297243586476327562395001938008091801582872748867673375570761070040532654286709006664114281349734541414331911284581255767571975706289366513794654997105879546605293895890745130027436303397827341066487301395015672828883531291647247723758897870684076344345201298333585561574802350514586390578240176789337825964298887953192763799997492428781976617147308791275493832133259875408535755737436412242191916217426438459521993653358239453333058585420380655839956005114618656435421804632507613625337362354903708761880713356965527034848456635292613341528081987309269500623590426877463475942867867843072352922611055502389486348727943052921789592608133882067595167248765973885440567642326104049597518311952487396594667788387017253129405156923866833606946331112924210319222959682355956987024024278619513301166304922766534538419339574746847382352031647391484679987718362660090278438289547368820050568030684806098064041773292089448720070570388770321966147301214953394160098138750583131894186881909508311552218745054875734894506300905298242336846706573627194509977565083407511251758223129512643236628891285558250144546963249033263591499657732510194223607117805559917647246769033377384302519080305318426725431862585907160518099469823938182759497472442420142132202115243133809370102056182734733929730825472571563810931179654841075557712501027899216550473509134946840677419293064503724080935387046323704764791439629409439137007804846659666021279622806058359447575987741220183330602525300857773567364765959897127363505270153773483600181077214710048650031311039118240071527991590182025314711927722606820593988597042963415398034192541878729932591116667150861847418528778136886469223705862081085005397246357411834283126141935050128649273342066242474558203600664210666792540512000793915234989502361080629871081711700055864143124590954685198384276833673605388597050759399352828499167357674512048740599259621991383747773997476654962733578556529889975514139042321520810193641507909145385379930823524390919258252977548668911719504692890547501616938881936977353037544682456767730126960007236051155729999861169676458214702195019391276812606627038848728051412310819978495369833070288237352785535668030362126881709401464135147610149279202423118813190203807937891483924396262789592430072419449567358225588680359731492085764080356888091139050380661994171455784766154411495233981577427945789416949652682099650000508375001491900203124136257979212090604321591217775280994114128594397020927247513861217669893185941120993308956149712876376062834195363847250095499259612087955090759751737532930787782430398749527471475700785632674098375477231903628001806922554573449789103928615066310928983886141506013958182881980559496209652873249063511700173945934003711942896028786453626130827499323876660495904827746008211374532663468515785046732398652438994716554651592381429592571305900393737885352853553859197719691113427184023521067559698265546411639616120377005501458926365172137578285630738506888595252945925466681052761449570402669296965768237526584963954722727301603537861155197715544903675773067192521485226210062012714789830153915115126749376451778162598179969514292150006229976332607813592517987914605824181496721859794675353455821593218718962353544263214557877375375697054651303881852008993128330177289425052319341037271848620504073128126490397219533183043768889996603888197104791728476624321360737199215144631597197840971907186750363734968859790959707874436673174403019998765768620088079278619511073374142347452403787835403138491577166088452905197515240542912721742625948695166403924864992563921003020941241537122602608736072522264671806437993975228554402529777854067399524398687778049603540621742489473207268179919370589261665163172692625501538833767220721385721280608039658951198693679058250195310065869396227078270883880751523219096182626883655139304407371681622511229121355566107063129328219035049177792708810393435515268128938053373482550038960103074397738242897159001032358419917924428971033708476150158173688340071184846794972445529531232403652678153350952838049005359143471418316656017461238589937822323833375267990430910848520614279007220003240903274479063507613998136488424342310641664319848567014354440672394402189747127690043564783904339228637099213059489499130983511125274775033427440698643988141924229386075960064074644486416677055947652489525881274375992489117526461762914320344510994677090252501237260757480052682236558871227938999977921850481842049097112520905603126160735086849986209257509928795888213713034011300347755755045769530186232758967520970446355751818429887476196658398379511241528925709682694872330180933304734031944413499733140635467498747705214822071464149439688914666734174106156689846015315317979229509348392297024925658696764668004573789041072135894800792615016178596373516547646269772325368149361762153931860021427405731265765748509726493764852953776455403929135735673424108750665768811040094641007714885561032920816654789227519108790988921315292966110523854020743966615009309257469979819414146738382954327330643828352830272211225979081585169538623758009837196122591041054902503880821554296311521240135712621296566319763833046137500585141369126527011012895934958321516650745970859621198622397414238450546066363320995707564903528750153165239201651464753548020875443107349432598000604317670105504989378384058173752713859370992285459318239754132667620416977779591902320163967782297536219487450716078847968694208576620369090933517034705378294248888299153729755430378172602748845402395384675371649023188226320368718123030108444269198090931230484180105631813045256371972526136033232081179832826772236182482679448780975073456951529644738910652103664635424727887544296625454370094217767876611953668003870616987364322804312559682988907606474390829661475592116943805907418706126774310192209054321156629586658898114260018265101215738683899156092796335559682804266363762241107924615657893876145562814692794826337299634811827437667618301936424182931930330773589847353187018400177503560991099658754043926806082426361026000342822371824458895279614880712409445269541293662537096147617623851847780267121324761619751041536375693931146829036550566559106864144120753516396363267038881437377187768559354221519717611004326711493830241762565202039750571719073452295473059424546655419528099710904577606895464673492561767477868861823201335328297451235237855918105979441855750772407350801401564228216566491988599733092044115167067828317968419705607162635866811062789922163121401514525391789516394270060720348014458012171933992685000563024704948225257604180257422191288165255230738001928453679286812679436155654294463956398063314296989643904211417176085868392603389579239716703908054390342143634176724086455793902769202824332373975132812727714908318472663727250853345836924754157818577779202616859234289474713076663132849548718150525300109501030704558938100230498433904151808949385293658570263988080327556456122327402094849534890993741513429261649488824390263093301815335586196054168293427016401953002824912304006388704576039403305382965656854099061496936523378561153663340273544110966331825424666876086072838328320695949105591853724817055982539016877987514921399492892994172210969644898444749519836608832152012750047451290844418946542584226520141155488266700935758656503042486008276340821854455295604353399144144644931496319971254242722381261589147049087603379826408470146408194204592232215728784568994853930415383099185861342833757728919135865037672522533592599959131843039255039541234958475312614611456256651947958760719816298042056495368689823716557653243601626392514026757377777526639250082592213390897186160606257403471998052086110165937844562108017285380537298811377706138233710067637375778320353830757613314682750258573026024236234425567931597228671723873391747004985834777832276426838619929210823873660964094343037752955295113173510234682318692833461108969107851632835632389271073777931277938404980147295945446841312486084653117549028680233286015276936926347104242452582877783789272858000565255280579135896048204062026884677469389021734410566453522120552435611361020888633515789993666593350835089378184318776789754674190091453449926837948807484474286526647772320743720226090177515981621154471946719004440557758480185140529172041615600293897445710679661217900766092966636494315626884756863572160933271920460935401930701577170031027990710454372429993188085037017151806425094152650597880200017500722416170877143209655593635048385374269019772481132760108501176656127947599815208659118975818184155356271355384494928211051719836056931959256072065904693217608463018989806416466562024827654135403273728668018230217194257287712235858452766432046368242481325140121031552026033912213348617803720084677178615653493712054385313009227892257810190726627338568147546486571641059917961167649216297375202553159969166003803395578337888453261678381364200796643374295047496661580424777215340286775576636306025225955541563370141552528025327437594427212077661176098641734852317542878418191781514771441983077152353126700819029545457973241610774091250323186410901511716962376799810384443709508468252385151347811787307067164392070931891441603824549785393071698903892282693238511282548822158379180276076307943164838647222962645839687086408864759684888676932298370916045416928828623527803805389979708927082067130390701616265377555986700386926165426773812977064063688205198926465492871397904110247731651893988528966184026856689897213187106928963435839664866045555492650074470098592815438803583232146068838539903211602570900833256497182219500498817428454839668885340175605550169405527864530208396868972709368986985737268964536857340918785233454750965775694137490617245836508105254942318113744585250591861058360755442037286572888112776526546668886164383393236579362490524435792839917218140035021323264556575483852434843420404961858904204891330724871792298160254472324454297566700960138181446552858390310673506399521982018355841014556977996691530746345200994075727224632502244852344622927797321554766348637157161578657585990404973732107277911493066094735750091670100038145215553115364014281142265802171093594210910007642121614356571532654775232203453733533459374072339153805705926146099957207242045409294579618757865333122742726031070731832330840742105339332264205085273606839798776160045376838644237661078092940499745382090946207468991547605290907218712867300648003024761641276524110280259002845355996693413670800916331522084488995664968694943952690264797545032009631993842468951790763944762322412886485856001997658002291906185002195507544494090339637959579200384351436947616041703383161282607098823693422077024290995689294077134384103071623585361054808705274493446429631505326288051634165122433307885791765789347384984525315989421688340290817169820387579038479225482261918674264631434986561971081111149899119544704716148493040256000177355402903239011528301235214931487620666843697395449516385082358845040754227608550736245438758912287624461156536780440602952513218149692825820440190673549802683091586613757812719443346686976160699697164307478479991627282391952772331194978874398304160393787401449733533662658979559897932945191547344630401592341575206261499247063890969657959107046847921265921932483381631211649906081409048801816572769932394081146457972265609517043892838548462667474612857687338994218140300286247681665506862686091474035787844104524684638703417382374547468702491277439539003631932313684753714612261307828694895882396266694252421038411346841173710865688363262127186524392713750330535892543901034662893558723791073644672504580704289608843653132301318065207812757204817195821226767662139991337289081656516995412611084733648418731293061427010172565608017996914011239369185802360739272901119774718065872304378869308939086988443739344037407602256876464211247274433629387921585143533093045611958343442935816702399463967781095639636284858643402034960963286370342249668198689117140936085518068703864532869807500165174108959284889630002835873406362949272511053956291931577171426899165120710298590319929989972420857890966237721435831054287328752446947402979505147355426582796216040671123856667754536568658116140025305609122960877116345216650982069099723796795177655259915671399850538379165254579064134954114427447122413045280216667178688352793277452553234299401350068834919148977103746276383104076016762887489666086199563502127197687313823683121283043729374402121370860027317994728424701530177426593330904110497685191835173215922348391921200306804797403175700593265145975071217731332506801451734323383586112663076211634522799765065296796666430200448594304655099982620925851607157320506541030742849993759868654336925285388022660905286789597113420989013278815277981165961667496813336079711531613933838403906709468705327413850236336754092298601998100912831681899089029155588955332251222399122988156551978802205282930853590803997142533553737463907716645291323540562222335301640988168077339431525939816240453927133913675394057567177659220201106472301435719039403707717478943708640237478050279762907946633966573200288654318308306205930089807143365866455734753433370309352618005459407285921156576969781799773625857261771708151586743407044682047886051499549020150732178670204058257103566910787376617975141434794454056354844435638456758240752344972882621211198261419956491261511499954593508174691234868719955885305284498981591611626406876642144609209668434337155724408799846060102831392340654796648055759560340932929971929760813294963161546847531761291550009644557235834566280538719410570297592566513369763905377921947706220137560691509331254812988472049965829347241075006748989585643103656991121662979489325798314843008927370638882079427904382853518702193263534025980188348280485190058774334873002421511234496577488428888673395225614544867050798328998829513048377264572473999231774085757332831129359310440401686889444785891890072908856802495348073801127868811806357982610833775540277787964351129412812199214035502975312251844380646223878211885363026713474940419158137655159259425847481518459484818066404430238994713032818600729371352694775837123555874450814090325993994876856071043617472391485465491607068056377220837453549122588353259294872156612552540845062833504204151435571992064150632301192673404772733865965115650879473094914420622505156727102889546718968729921713218965857087776017941200058090870405845083649520311179450065564960380240784668421212273040396644462884566504395365667445192160816399810734114893877612311002848808685330100991811533961950191249684021124878217393254692355768931235700759230039611403954005492906282230964311666914426499053841496803028792713684717490030681668537157037739225240042386691507336036995769270054188225415405464708689850966429395484488291285852550176319321004330493300833867908717171198118036183209841736550108803958063422779721899971504690132490042627850518264481627924571359827321387198836518044076879284282389768657669188296939238540813155464760751976239586333138657204920847736740843872723003290091144114694476288015946420677415436659480373102779881309701251465497869725950384071321026987688898108698265571865043047504310549094817531202796372017026905662895536237260943712130424858595665018381532671887169014261529925470306805197303678126871060052043753269326940674203375724711717282030724373449918991999100951217475551603108150301854425261391347600633727404551142753460070745637359275475702202744763091946456464368949794954219582883113591625119708636436134668212519566002237736502404333542943120715870018896449117925170069060466153529086013679760150408930975417987428938590493216183837652686449044188554852249552389535959143448067850996149425212037300331066408117426676432341814697838522322616880782101623794397737534756447569865525619513301994780632658366127071986114553953495478587314619249514601273427750814439451582617411457739662806889399628955898056896564860426143693722430073408544838788228486732581477948233714967684904787339169515757753815120810711711210675890599764408393364112131660419229259391925747794473602991197889731425395760486646328710557304635436405683045128770741174084427123013487183157718471319679021697456439211916193151148134980347729955146601672609780148004533101573497542821864645159371593398276692500126034589028396168162731534176217327032030272982863528289137735646592445713308738341221501199231738905181915625865090200088915128784084270349649076762563011634701487181980126380053135555665417988540974147592124170775272438190895931586150745444372344242400705887423177976081083328069898523077564573557706937682674461917380880868885274957274192318316372120967727745062481321753777869005998315591592054888018267750726702260022460631723588826599740039864058466583991538671751257007226689750673735246087965606385054461198717413070863017034015152147440995776293038759507819816966176985476798588262115555024690176044763657979800285980636032507482137655623440125434457526371733909961697405443441175832167952988869154575584389633865304849134312553189397019981303090124426747255111178863362733843903101426718034534426478665149058298726160472622534190255878196169298936545450515074362556907914163458738398656452678344529651395189423769544007926045899253554586542441722378346007901424784268311136522240873808352508880152737478959072688142464542869343742197322553697331524255048595338150354594197398097720193077583136926816261336210452717417231558076141527347693886555218548328007371500786604394975240170170070704552679786807399512318291029873874264329551186757533502984091266280296312493546715679830439108418635840087468636162017041942347749361628902573390696878073750972063269538074421298401327304804254649300378804659779870015520423385603380067436223482084746066551223042119014444983171615479330448115854688115354107887404393355958280957601491985543375045857472129261680439417874666156784310739019669877780145708589730200477448010961538709851494668164004925296887195352732721617532285752944451198807161691858958308968380446809631842801486971499347887548546565111277927630889470153140372526482207050949461428212365865438008279122903081805969522169676826632407431166448416630027692350954265461011279478947876036681002638223707850434188462968233721980202983574233784307005273661954187171415364868969207222749649157023034945774147585430972264496642728423576015135308735604892077455222897045775777120120511810924469813224120746093252726798926109580406282435030107951099944411725931757781835105346473306091963079861971779899752994734483843075738302932412287799786425094192238081968928402741910610368669051444191144487218183355901214372479269018445146749791764025507465584788303544235812482234060802927098054590166163112966210257157875954380112264208209479444631710561429389650817644469877612532338051218236475172585018458358625189179309098704184782434035563876131378196448465671984072853947490218460377651254667167311669519314152419905509955928261466581151493943630953079866790413637737950849280094472255883298168163340811034324130530511305552403493754611174543495291553325494788839249286926093790104387302296460738167638431417094244155652122485106300945924238460747717617158004962600346534734258848496164109018604362522255002475687223848416459419445803886216464558892143087613714753040876881224965308456473641647389615903636165606360625842728839502680350667377995800234748211798839915025597114567683516872979496493996730609874008161519658262505368898697096046090148595585237830914223265407839432131984046277601983600704739036070966675387014878243128342580826070604213279121597889523212558957870575548168649876112692682726592276939683430433585756945666411818827392500294023332000711751218421272790198829956898798140696678109670678686474158672812411768743726834617808909244476644826903191713082090076854668161044264685151070991534397587948347756226577396604855888916357598318155967722720103368054467722901809795625465346010681774425552163078911908917934044419227311471790927784640465497823244214682830123077305500452956393829183545082800164973568879216691094767019348249833769139302812338505168258468843478665369193431882641165692326503508793873755396365395132796915126647959188907041808061752726125245952347995699190476321983287798453713170508949927744821007354945992777930852736557326929396444927556741144177825851546716475473720319232170471242361226595101810735052023267257904976337608940941332663900230509115457912183524669764653745449792789558774714282044813877048613268720028764105825258485096217870297694738275775969777573423930984372854659921210530023232767396149212808302028240999433102310893380463269802046497390114094395422866459006853973940155303387459408104310406881504804534435425540541926733757814713730338961754658514566503402632441622519766922882159735979203902387229442743786722089360234798718048679291539063112917702693939210907485791276097881285380330638518953502034412148116372362743859218886910869557735809468708114815887462823452085662244388955391199658451070698622182985202782120886497790518495165161463646797592353328570897693024565980437473685635779838315643149198629917767735334253035972079602507948711535627683968568873918819975728794572749822119933083599171051382601556438377140972043144356313916596496718686445895530158194936122259684650474661240793616517331403648580908784281834121190314494863206322306335972313933913744325661040540557011946178959200409971750852054799611371342057899674156304163642264762136134836910710024338143449411667750782079185980021103180681561606506014333737052142724011006261008778847150082189395997765364761687143456755893481694906856611387528539356163382100957427233310368487849890701985508219843893712811950802334499265030590093263454788096995939743146711868828967490374115915839069307161167892509701517028500052647362600145053175483461045148276574512529003753420168889532492160336998728538708557519989483820885459395413781817063444260722548252716521492765280359652109748717703645266195178942645752874428346660605604506696065855857775241214085658829065339490197758889858486227670956589010397044486441328448297468599186670660984834476394262741404290243618063828807472007101972141283894552468656880383729302271407349158392341390121292125726704076421913905921160141132260679556781847518635425454797866349398956061737993268254525171210781020509515767172015283901789323856769790400991601773928111798020309389514518946910207438197461322995999273890638683734495609550435371275599700707746311529616333138265748891607509049693138460987295414286644771205010072010082490433832637979838001020402482348385551851790311969011601893438649800670127809103844096165709331970004050778401113314464634331528094473073475488809958315094879214750718216649308750074719553099288448414656641738887929109727752819778371427017397099601273444421610213858118259688709725471744567025901703052782793659105657468473354861054573633260371441017859939916817546960758135107300121548096061848980866289804675195791831603899253483077416549635528941335175321684577371570378094120429665676455638478061693599029788177360785933104729925054878052750973076772833015745999960396333417903225667078771054418476995398711836518897746178965243539217458784840778489133211685873282338740960010731892028740625042691553301629530976822418041438273701081607039270570121813184765626674714624323821365819096529853474644845828737548167131702153802368048087385895436013556475850984666311888833794461331927133774499931812147223065076651827501772566726399492310232572480479428692561666239175498625693333349330926129099837863953116592341156816338937813727888181055232395498110753018972221659099743987926035669453781075013317596925721914448244873067382727880939960304593399795608839004246382806341535227675186590859745801544147629499904326789027020748526659876596645371614609602920654877882533365659211839015342851942020263499578729414744433960074466119894367656832923672432702831509754591187969879694771547199381560979223002523652781499346641074300981390253401329493288046812833467457153406335535672204609472445438726099139910906785688120927264707609465088970989906090694349329084365153694617892748505531362638099980132774415553398300011429636748360146333303988895015116561495690909404859191753605574916891232004038165832943044389938303577810541696272437335350720156376970531603946629352831027279899875793764377700794640263816221416265451372157329085695932367695196273118928915510551848857705276070215100825952592198978592222450420718521192677383692020061875652825332453371516303567744075612334578412179913297166896565564717971371210320003282439924990277082996857972228886236672129933512740550069079952538311773281824336836998473022805364568742075254819262833829433700355473777218626642500107552831188354769784151415149490971605981863314660089685780733328905591678785033739778065379516410198256777702711374698239949316959305906651591004607336465847440305762475353011297617395034130180672315260243134225984022085576429256603434855830714673398839929047111210499414876160260044020542876120335586028155456449342961208753599743681723158449229205828671670322621933157186313152778322403993269865501280703654973547133692936430634182841539262518908821603322885784644310449641546118640195251801606124904260763301116820081504335396807256592925864570079786014294758155679823919453551217901209099922814143219200433457317878204548561663754725642917672936256976725644320238518495866810464976826128500932245607819576384850478443887632431925256039989956868288300219967378725347555477374256057236726808381063657346135843889220383947588694154187263179369904510977007143025002446624367553166546800638094629751310834493986010659948606887183580601292679314405543978272066560545560522301028649551370026228467940242143752559086340521666864435215473475806296931080167228591017400935844248242751161287183451012807991709280684259477127746909711812042674613113359186633656485822190698997354421850068357270658294639625844433607149919569243921788398158449717685710189107562151621492419570970935817051605629311256043257454255968134598073998635421384129615003369397098281005253540406315268424519745745936077968604899764990780708783731123842951507354010557945754158443424796607708646202456840431948974589729938839673320730982784883070600238989083802281582233359882385795342145145774858668601382953824558304587580004974114705694280305051754287453363184240674427012049062317060552990241090461339130952716101819098148881421654446171428932232339852515745532759030728555057921571038602703615746662786518642780878812174510377260045662382021472446686455642263514294029681227100616591700326236462358171582653678431525589824679059172727438440435972545266307884511484535889949379461794535055384153609276043517934883775761178362249244923341314523181592641011090899485978414687208856750490530433599332440469038837171766760516320055970274278642577267469966943236719127958396465705571113833116102588211708084714833673849047309040599504041203046856802915522831418233439483096827904191911403729668341885883781879790725658222765575722797479084655198319731934685955421570406712488427839560415087684094750728418073676762703069454150158596684723283813253146094648884646647610110433955364986692690201651128526252308966118040119623682196967139315061799327800168133890025008478934708766257302668939420912075345036958656262855377710758894866268254535585253439358270241111899480709729558314417760069416733959273082255893365042964087321555634285167382824812382062212387726588291732483776680305664001901504982790712503536858222822525384154598033423426164502954107130642921609720094336363532499351348028328561282215422798494435534118037768286721678227880280964994699818442130944345181122429743238411114334860644418855767654469765643538797614962572925821952127225518109243937017247774294052369129351903385507172530143347039656108833078144684040275021131042503864647498103217085133732372434836537525477950657190219247683823657358513757354142969824784195856322698887117233946238781599962591260776060566324816187777024505257987003867814014477738029213432681171442213610400490344887718435073142166304592143880041826511273338144691612819783176476767723355967360842056909891048594894304842734696722318510577715003389494593141880196807250674453103669335141662438778363259055998370540192233777444314396770042400001824857572836803052028575771510690124736602495073137777496705819647291036566209876330419778236877482794283357620869257718598495037586933846501698584100536325643408322303981237310393566504251944365184300822146877643794865854755202374762966598368138495810662391198741212692776827647061784096424474870312769421677086347139686048148986618511175346260985134404231387253021850446242103275280017132573529676059016035456139932297859232605839848614737013787340820046325183009039362766192780527861634495629347710197559658163163850234534830126229285732418368090152007172579988311849907535516151714397863322614772653570236101897595872769478684898059200981457735866039356171764438722923189432778585432111847293271407752575614673822991167100204522748237169738960174412902547185737831602794574170275423944367919973436629083378138088288425248780083384940269675268470388671991236362351078407005690917886706518183197238517690931130971976060171192427003306370947221800778942681898027210005972569607773500630254738678456253818417300621685146792256532146451471885186660149810783099909425099705669324035033543927522796391081542327283810283105002510309305999178447771884160633515130506192395345354885680412277364255709994810233931891421430054569439572675450790831919725301341765501102426915543568819398306035929129009992069569164521947402934301211568956011752979567145420535482674610900366814888853753306809071277918896196718203432269275689906184254621009635029587751151328886270870492344533811718857208944908109905043888711958075898726980379400742806570185774968667473433331700039723328503707311727387583130713823266286522847436126519282911554138102330973852649608921452022855888016275929738158372399705882822585054858421156327059928011701606015927959699339308936478134345800857617832424771466759462643055177208601316884432547380930830192861272262990644722226662648090686426923208081813313918799238394089342078255670746715113317728525634054080528125690566204796305487861549841843499139293829270057224505177398545679284677674474824549711797244710795253093018703188562564976923198797162389107695222690412544622548784063008814810978822559328316122855425517672501055414681852653052460050974802464611212653518545730024277322591128640863035773386919506549635349701860078851066358546572084463258145962748208637603374882542052906385704191126693946989105209842143431498121153386216739309690151901211045990544718923232551185174660232429167562672465862109578074341000619189946750586440105185206628328276058148766854635603214196762593406486774065986599980727857921643415665896121726810701739203447476219104561135575317475394177091571302333800278683795676146848031837351721703724282920216938906159116036946676987690171928305727816596529889172139285088860249651967330661807479761681757167281525836745931586174118377338058130197145575968408544531352446567064554033896877450542895837726512198492863318132863807987423504455912243874805373079231794145783372725869641212204466662741607724073775418576552357437212661318940141960612672748711773822165229036518926912352017314609704079750463901872712387205364980703093782744870569756795723997906971182540989711571899215060247090703644399023913091569398664858758632731831591796704731206997020349691427679223515246635986085514395004489586704805826809892525244945598642179516555344616053598484655826056924180277855884203148307284897200697948862961289115430566302721336094522685432821108295303067517276389433138697990459672614150011852638340418441897719880679549634988331364389812690679758555876989143180843165810973097345208425796828442968093163356099184541465466079018146918008087054041977630802039826037823525065398553749805599188172967226031902458478351041004481576940890040686735064250929977226041817943962269123027071691843542297895390810085109519544199644715232334978288425510677979154279404999904179797610589753755484269439779019350779069559427927998296981174895850730295814850648014739476663854119086803308937571149230506742630464662771138448287855566348179515941492776018311710857112333553069487344398295682123753347345287412333137109005830937298287168628448316354283765707153035646899511771116199239720585928134292599205453113857224484737440027273849062416604836879664057384263612120825014883616759782451886666210583790682560452011371526235306686363678583567313455582962719326078172730274748657393202714133379295861090795060110001606002721825386827310917594353019962947890356606347343900440083652516621223792019143329568167385012990425226502615618269691812665094949025276195716239458891291384395020700738020475733908450140864595443480170839174619594787482091153996440637296725853789042366426919520016755648625149510742843727826945679893462023989491741872167292568259451684211381094258383510070162503874716596053458496294127918286942449247764458039528129685940009405910321980238435264940680211522748723483266069711486353448278093186574431150768919840635663484336901014654511304738446239405335821203931293344271535501746046711847288196379200763519059317347986106751586720594882507458000196739188006586958809285408908742150214107578427910306157062573459275182933765370759556785546777340529529488657242150780681026789683064171881639412640082871781931684255853760556229299997125616645600347268919641716086408928783150188084909877565580190772337622691139652699233667333911550755619429071577808225089662822016396484095540481462019648876505432580342486144036531555848770611309445836312453710559505319261053280638349534843272894462442281354734790029023458943246073883732874073377971337186962169167922199870237520049641663457130513048621074165087343614161617127291600168781346279494252790347929331914715907699390017903888655877246109898381946972766670486051198688940996505734071825485218140985516279614508617700295443575980160325028853416984801709731226381936913507088307079518923053608045597972544815534806350926086806417598103744275770506111572024877841321231003051310953721290982688674115334137117285006946510237563611481967283404198487582785273415250836558990514372949060813915066157551863861369612321224322180938617112332662444767574156888361500191905151115912904188262061843152835157375445317760274736043688072081650212879912461779951226299047485691905400662989027199124791574411710759515269819328786013920698217614438382337753207939050497018003023094632830004710252530916929615080468571479077100668185238004895965321694699389135294853881815567480771155745714328865102417016119027389537550499340769766594421622173827902567658431517167636877014136913238503850344703757914151697111994619206417734298874175928097487909256341724607206479894125853595994808266980552343537473997854661774419105888591736655159999147310601424008938786108155975444022993336499765316377075242749366594373147675667991056505207075072302964424958673782542979148741504910763287986321786971020284194116915488383384089026852779923575915355682655481463300418682734109552285624515141234341073672070162600812730409008964261892966088637312538196095323066795886514547130894175072667255151749029428515091506280287078730328408944948013093252710782214984241279777060514080859841582135404534731442580699503064865510822826978301411803822797770232381253609882939458402025645880094968284811261598299205121363362980613915249547857451907934910514266318371628546598939873173983130625484532573506100763901759415796481678350868984029887869445025560988342251580142383017075606352214474925173114232085471073958205945301622744757035308993273051558956649597582665928746955941497378907736152537045193830583339215912736075845353369082196144471954975144373947483777305847277323314050633723379355786095539549494485476295161155056253150690369760923741747367198669514357486517365583868151678241235754240573090288605778498860374835467140950734039606736771651486226322590857162279481016317793461623152890975499310468708016567743298876420045225602616461840207667487044472489788801207666170146908770561475214626180801801589066879321055946281486852496060222648086680762639368852634088561605283270409786537077251890834476500423437688374442575782500494408379452299339412720769324046496545409204643953715904257155550615193564000461990281436866417323973613069462734599152905219751404860345213329757974043933277379720600582814031737307869420463325791017879752085201000404020820507623236234057132629134505131112996057619765417444207705410243398435091862000859835506381339350996555675840769615034578115714723953262135220332915201137171758899754772794079045086119644878050953116232988601171445379606750233379074509831097445143508042989759694403801424867351056714260999468794714663185745020756663442059407446542526595075219821914848456837328997151261233713038736658712521075529971900357483883416361387536536607780550302203435835640474032112495666562374506687133830108116787709917343340757165763768684582033273217672444508306719814784850976657317073801608045130073686451871945679895534055305286071016519693166022716276999917134227682499780820020229065118683687223151814407069086826248004541489377613617611138737259757461336135822199088599929802303127063157881213518139754670151061395338542960226464342167443699122733110579261426664114052283758580961071983242480103567359702578323709262229885474869118696570267084714779083745166094296275040145755072981277546579646353501388409439285242003461408341076955549937549271312629447677526533173562335861110966034973175165022747894160649646668244511226634074779756823745380431473745609846015768318485732312392032549804341676660521229957220061565654467548036687325235125235464491606102309774436338781641558070761129697833719249372595632775612118711561798417437730304343422556207084350612174054627719314314157591950075908917713640100632282456357796755201606515529004870245523534877726802372955837586361773769099467910964740900541985349679074209464135647552615374385666037422726194629543867426564742839813811958756768276349737580793827904906336875146973234736244350988660766888401463522345051697103115950027673291563728360215452988096582787113570055977539130874034105538265085414693264451192649279267522403196771311943146341818469576198211682530785189060179250549758068191738155792150054393887705441900611336791437338014639253294392303136464648023355653405872228151598736235161968170143655010546866880099205207013885652193154152511819900494598414498024014665331355981930029711513343841669110281160244871876668637147015961471613751535241044988868967164000160789142271374274965900557018851849483013750793083284643332223079606066908146949259026486765127947578074098315860313498568132760274214125136432685135667533623416790910378487771559081802156152666807554629961256194598716598696620475615572122380836084972195707114456020255348694713007995609717866713985303457597461404592929111988444556980141537743405091901187742829813059752563365294055361555299844432548159182676017766768979959575758703362647499902951977115171605856783134002517770995997861892071198608873892317431003627206380905313288825536454341831919403554574035496976955483354314148590154825574172095530696446998159447529863753895776737210355161131983520357465168157451144992317574211986904366626577773758079044549136151420302173570593597437559283013542185086800048871273784181711323102113133536408107852858710458734244338224631439684969223452725599792918466165385544055556959418827373109545029343076171740370095903718184054970702755032127553303079204977956577388759808411678622959526958730019290777113788440019733421007891261819902132939239939191220004235821137340938026468977711178873133952984647879987031730221913211155765306403420137448680710341525498248523299856562799552674155790249725786528386915689200089060258438077732333469424689714991265323547668280438804869633787021029405629370807062073336658338876633467018939467378250169376916024830617172322269176680396825503936899468486065031352635506346696414348891498058941003327301169118547352165177576250359375614453871636001497350867840117378941750470674815452110814415221651943611678160179201557119434863137903686824435213675719750591188336939183559639226024170939502098839309018038845515390417095058340416675587378057568939053084015224077244229500344862309469339990750496746562614097948104640273411849761676350272838262130384710794366436678242257152107878443145694686354315564290963491547299272075448836480828351170808545138686503794280752941894777501396425563342069064575793685248045898684449557752245948232316244067725721899199144703213240849425102649547304038025945715034765385058387685202284332753637252139413225277205449752387676046890967285083267173217415465886446124591231858486339616407790490261359064114343458164996024084216910332631151110691496133681215630676288904891366828338190498157326865570094115032083420837823065029404118960601182093668317223469306669051236592139841163246951434407755444837275546252997316368315391600590473336042188590389547006146120053676350906269204829367367331484881299966569305428848888489055470473177849527220884026477889635303612398922117415658083241345483709775864861107060987866644119920095758629776259172119462019861138293993407982661225587252882272815576915447230032149951673582185481294536625348886086905764554353702223279907939692438552283205300809340124109186996755820030020145536113379947065870682782585038069840376889141234617151311719218287794320387399072882254484299420313438355067802705215231478015212011993204992908281687434353696318516292612274488441019544456867436397671048783144405463881182738891674367469912348909961521897907155119258724723390751812071365735499477721468583568011395010817080931652387766671458621983812080252038590848817534542842017947956126322889680927582030638750634911408628231133100162126115080257065766908893422427075904168487713685357698268751917923097892503598619189716103254067817771419888067984379987496774736880549375117237592183275786393279611235900524737932950118751802586167365651946694832806654866290157609203510334149514626895357107854201225025189714224957647190333030209736917924600394057792104572311706425448231931698760985121382249133721909170531024848078043615523489512820827174915856593513292866455098821914770241541783873668401874157549740420702401841407835852968619634772788055661566424558697657707109232066202928068455001338000249417818951561635391455657807889425909185050165529881018201680261474009468205509673646586573394233321684108997889341294207685225556646097768056867745168306946223297006136419181855359392552451352697620417550972724643532101354194955217894136574173443217483333499326444106990680261779447566271891617147870129022072483087023716054534324669865646061582374355528945993237542737522040810262869799946941577389008587202390077071493160431466389172337721953810704336649331188710690919238749970961919323431122676689368934174932331280903551699389839368944546061363415546456081902238481878231076109113466765108287269417318121271967350983626932867051916440886521815153550322070626069277133816370461877115891369421355851631157962376352129848016454625385970300136661881509808629249922740099694453252230603169383182919123443243508765994146773473331252806729094801886360352757707454027417015992900760382158312307484966678038843402130728002790523181087557767849508393652341957203352721634428892559209947015108066775971452169023062633309087604930861566402716875334636847605968244648959272506920855247335336725437833995721179925243972192034794969924264538465545494079148357279814285727401570526367440665483567885644391987614407216951772165645272235942311319875787317541974133253304066351662645141705935937496753374454972800157153269241091169331054636984171639546688973845670092951262935207338386581129180373882014550834519963499761501359706301788124562937695498354479836746294551992049317853558467104121652060591055011122108446422366493498408512261939318981092190825245347415404890583108643692992200051518761134407820005476672946268361795907602649176794767595851265143952214800012779496554705405527773375752241380947778153991498847306353657791174626881518186813183045520694301534979089769910049588777613063780221471486730423655364542544918272997822977964070887874256635075929647345150309036504240996328500889041852651632477115946642829868958242733058813438866992938822020056732213888272621285937459175020820261823022026839469114053965995605866807880434717317947352229353692080776039267802694063182570753446326039223433514720261082692985940032414829159679019662996542728627203926688978742269570121398726464646281487707715365356953234308531638167436660734371899594069677134415978341983656212826963630993637455238101220354339318219964623197489898231531144540557086670254617149471227735161703131617461481220872716952000666941026466010113045204606046044581165075547874235405693068781179793808990293498451418122053755853940907440986170379714929261288047175025462138887892242873364081916796492127314429824095095334525265021209316201605431820294816253842323819769694566822837098548927693753975796194750107891588350669016432633463686260392335124750731854706962673788716345401233129640225730376629922293464622908118838726384837101326710056216305641590639901371773099462000115044283808757726995472139461590069890178057497692288473957366297605320427878599387085482524147079587750769659832031459972962669003189150998428334793800951593163712743347917815461354507837232333788366690212686871929781598923971228473686899864216905521043429467493300871150528987877665663390186471540555935370880731283136082875575394852331478250943107203323051767991816051813223297687150825178197708703810794295413076301819971368966405885076415561563065839553830474714812449956362089325539381564246657167195899093586581119105109697833874100837685563079856650637930614039289719423239993496065515738611272226204575858890192489538710634782071712173238996347966701753839937004323195315293731482442676032984060437409707622999718644452933101666954851233156795259039460339871940523622554340233878097468644405053715867228980019242684564891815981288312578752715491731449344094383529571244798619045045454609476470238146700532303609549474728476196192128648214876997132365109514456188745221484406095002290211581250388952573061966917650409568631327780958853063677994261522281756951777764011654985169806230672175407703845813879732077607267120161984781578577346590111686033884156775804000080312956563887996063112217800711063615618843231725164426116579185540631067823804686708879654986747328970420608822218368612093650514756735595594054055854751532577614538333025589508293713443461613348513505761881249787834934624956459300408451730114664183743709174409915520630809240222857667236475636379017988437542974333747851890146234709554506291411061442603355871722769787973665524531227481995048663042049168779542406368493560909908829695212096982589787869667160333300159147699637370127979070487642688989593839240571230491850164578018173883891286808552797103917734331187845809738535746855496036588681842999093143460433915893383136045444602865471625263698094231845115519519278805271416905691846691341069205166353990450342338113495287922153232327410917636099141958929450353566481669289586607902609342959489704877635790578215789051213701134864915692902937227348572764934784514451391551159087978824203270234121874268234389644177466307763208375872837293746523200404266629181315222659711732178254342228557940078415705041622658183251769867418703442339644524241486144127271562465402483214064526968568835110048343289144279574085915620725542397196477284756477419614379902006533983493938775761370195529888396326106610143451805319529041224890955058415130985487800028135421940129280879917807122545882695967814396931826671270927480273368167096475418523312390892059376977067670843749274514321035289533070041305140415498749399747490710740567271302344266559072175153968990388064783480744267538301364761039042173920302240085116457787461824701868415696613990781877240529420218573629584660483053797368133161750315333912301636508913561916523800312501663949553052377483419212605351762900887812380093645663314756539019448234277287804537616604213861922555778665358504943996119998034354878941858922672055612160787925658199880499538295690879369699542409240442480506799981063099304348213979523729393271081802469076194978387037986364519987676843734963140318847566378631884259337451219784232205855849348960428648490983978675848428009749360438174163634736148895523137956454234666310618991818713406753227982855404598232293778187327933858224063778802514702152123534526485781219879851863861020473611204114457310599608116675555110345927625621194155661059899085230719498028265358823863773345474930262012725133035665403032249883828057687515897902235212216878306756068145881448422843659110466410539199467897188333933868366240029845922837004282623209941963808307645056460485311086689556399776841446821732846101089049074870460934397808173596342617930534250277065803766084049214059646558757458649334909176387382783650430875482128013877851339125986901777805470602483300904296304997304119848290173777295379304327217304594067721020996290611678254705057024192798845026891965501163181935699190278782614942505566085118787192901364670688196725973663506682393757811934296334864287930145923627153423405668441025756340719730078593621192349565252672880743851321741197858321606061590853298838416268665929541692214964956334629577471520338802942248072368897408956257918177021378851759507818813007250495294290433269445712728815385409330622412059989994250172456980975459326573034875450078876244337905247351019158120661161797876715606250468074221875853549900408506364675978799013637514464341692949655214634423243386557291143559037373346531844134300561860669056965124925710694544858002380146242289057074242007534807417617586159409219101658868842096982587476438653310413089168909411081547376675096220615086875921424287525128820838446512099187292946577524709642008028683260341892736215918467544499868726845142981128780212352000277789646338240240057292561358616083711900288136980102426029766351106434123104482087152825799248398797969694125714866235606059711787544923088791881175626228217443107037161628984291614699979156900623264389861956365175512963258714856721293934809261340439176452374599093373529642686342723012774281458135620576901445819861626075992244880475111993585291813714128516776979144871605707441085811960299474761560124591959171094441295752332771174293721170137340881162480574277788496275458820247402454359967300428362476758954534857384926783575338900632458422503440962596425680315388265029499681879361650892798633471661048892323159540974154045608904637563327760796758899589686113511163468675383669489695855768851301728645551072529354828429000939217072290716257660212927055464133063294699623749679437845403423387245061064473628197876577129744016351163595194316324335274479360371067824158367840855760722364297750107883927858208160200937599900204326931525279428342975471076837008780158803872387796633408883790178452964292905933157267601735786056512725121892154305145441130046822998917378553253108022483036151860274165766370639071647577589195861251182187942241837928145724830888955373515430796066954649984837608173222208283983766744144692105252591848524884270985348349817968291297432120700519656372975003757169705197444114576179690121042237810082494126933815472217906995264245077962843437644996065988833705069897050155978186400308246135122360998925578301865731441073483313827643917008858710951469354188861475591335225797301823917302260645556001257871955193819528883478801529123786860456023753100999367516248605238303038075298398270450289238469747927860821211705456989267178340833568069411306059684065167288255186730822427339837011984010216793192642460375156451961546026750193822820978039406088965218533044535473483834494157695299122224972330903403256868797556647145655659037914061404042078978600139324682793069354297590403804808524449217280098966902354884089480482685231431358186951916386849622781177974379349016741787520440788107493719555894627074405172599036395243100696793494163521887848794155083615675595455600209384331061580800367982894874779639135438597207882940309327708041050709552438889370072569710634707362145984948021462786104591438289333696638625278882757796808353143096077954466055628857773899993814059554813075362901876766118776423355965673546053697549448272497813903754242332506444004032598264513417590343678794899587103790210435571923111243408638074094095093742286559207453979215502209671344143442938819490788536971484438150320013653130358855749474452021298988092457529627183939547058152896773431129223834998705502264620136417941936932256198232119819031488496260930057889488976198520914092403987896091542580727902780318518174395354216692200101787756254305666978026399067286247356123923030908728844640118724321754595035392941282414417404796085937226899008621775991032592331328210469247985341395186852919619751639007199119607763079882353032225248403917138596590625629714991767518439821478643453436853225563070995324161471326916126912317606290351181803294627361999344227018297850735055791439208181499911473513417218493425877853151537993363230805905193140148850059196699195872148460570599911357020644621983818666980677541245402562515362077816860383613835010371343986026517629535533734307772728431912224957832193432319956025910916552672711817241699422156479065491843436035395783029939003549101248326867582092496642091524020251391525487684409300683413938940936165050524228810181454593501210769730652011647752017194377461615468490373014418834917759317891641600582513792424504158247351928451883245986671929273895140191735559541916815173472193184921582552377954635743657806979281718081235919973215376581350860333563982209042444418409796803798907878751494817744953479045605390170132791232685959573208562401774273601339056611180163335133310235952378812889839480709113643158450733786829403081114747148167999395434025438652597926819105320401013291778724292981071629225505271512047600107734434079994811969059212333904276598583604060993448719421348410726998648138476904153164352851333254132760419588914073822050886497803525456520726824071863169671532839996345182550152271092392280490420189621095560526633642535218730436404810007356199955341541624763380893483706479046349276032963762979652554355155876749954686777373791928612220777829171003785195261392106370627977645841413716638581192371284918402899730420025731313469051738171265699120569382571475173916864092384578236025655125774545021732520492990317851618524160594148818431032826322006862638126328105084332318205126292165111806201514266628335049302480692971612031684052869953902349605726328397878907297741149631876311423932097442992456968658641077960481057995082716099771514288340415350059060922824406558025086900472527990316516087807931033213193314695446572868945898736752882537065302812668355552989296451200614502037587730390675131936400280444609200949478872593857944612263403456079275506458178094458914719597506293167576513352510541163390461694787982437194648412509945540716971782797749174998039985930248988897110846468410158867387341964256286977116587855827179191232839978356203252630425510098692594720168119035389610601868126851821801286756355010543658176373586840426009082154792590967049631516865685657014485314118777941502052539840722994423119800195269358432082451445877238655529713254391733779016798902794390530590846308978489346028936625261581284985672818950807592572532708978245768560544710413034269506430078656477736514147495229912788706065913193470374321072289715538648479237144229428114207293001633033930409844709353505880250226455781401846788605291321231986599238253947270228794529802798071514650034701676132068106731836537586333365679185525162213156249953072552366568111901344482339471087393194064907907581522159314443669651620185565191807336814759648722262196360399462581299233455597348023787264332375482709780430239447743151628981767179396526379612598877309338518836395316178234669504077763222140487302829381547318424341285904855803277581604638857879306620467701882181258299808258657385041248769051796253707665504134746927344601087377717062154267677192308734107100156836531601475190414072550135272211424986785885778047456989112829416734121421849240798471199156006645609211532377630594785251001797506333047248630861080069997567831704944203048821914684175526326269293569206043984089846942586910927305050537068167451790464963828235099384050631518139858151043819319483369335258199388606650435195988091476724125297313987605743779519261735056472687230604077374845491784215853575565717588897961197594383553474114637123459590535509216504674323888578145750195772576867427451799312430920908892788058121859643794780165465865271788414836685545722469512960095917191740334218292859541972300300512539420024692561470713403098735753776918886051093962885275538729714026852662453265972168676418543280760525316787392532039147828822698206591203865116019815316007457364677248862427689179753749313221718411868449346872381015419610180151695176464411416869059538329702572362848504673384756473522402349990630430802547449470793419887121866492041534917243859234252723850795536216490631121732000151859025939185538514721123918257673647515619177914851959974543742089208548251985086294894997884707016198260738760882098544333083242647189436450328094922990166045569266488563072845668041230718613305937279197709121253261108180128033329433909595763435630285581472095538188747888053420434004412272691700169792680229556013918579204089662578077467514928475132532202949729306081772870126317849537948057518595166979062501086501254148189129669587683750287945424139769872653056830543376750537798392388192907769854746588860324978906490375707358632834312782114258437528072658159071228090550562472487039850055540684935250532040607528951566730890267365024574166295894711854065382629550403605120122700756964393754315277076281725085056580359237434626397009125014926280982059264504207264327425945573695609980822093725932682526599849199065644619192471402114351990522502606067489242033184238757811131679691775170812709278855477703582930742070048428866450008255939200449893356010255397691003272158054188536410661600661457512325844409026030708758946275544855974682728845339097805108727860635254980887863598486116298488715935692200184030846367695167223433687195143186187893491489402846763915614691849410271607598341787432332251840162891429054683323816191850190762016875757485499891010988549036171912049697230000106936458906078265978816016145119339919326394668007120914976663121698480859966364640010526164554468749305884167256012519665448004418730976600147163268515035367506318473316033567537864784783972598583637392565873311446343963000761063435271405856117060335994914140413703984646862183390188668537130410339759601775102461443479190596515997709186826731194920136405712900700926168694458332286481119622185805772198909736586154042380014146931968425094543294526295060251936006271094694608854449292960036807041470645453542720751073938415330655454487818923049351346455263712223108503258733209363334128925678169354052582263144420625424514967150788015733307304081216336589376809278881829312531175567323245109944749958987844670998077744898603530928598236738694468977724919790393639524940641289119350746769505567582546400978154767479448966007073735737497324106564100027027547742310573993315801554234134721177475519921056463933706949462413362811533236361786391553484364464950826983926489565728353051650951633374813498837963080535069437631863465418675388046541948358044438970037827646489861577487848816717551435054792920520118467954337004171152993517328067142658516223308684183340055982233201115016747741847617359927748129754922229501438035199927053759460846711489298015506172637818298453759004874498384096186351673592104520632109385538883153050490139251184417132744917039075390898795297627291499126892182278656788899137290965052846272923743510403363314314706523588516430991465546610043601036245047623160682122080396831703694407323562791706764364301582225796524189336894287575679687860772140592420640767547924665712130241575404666808635572004435345080004240876589233062899455625545416018886096792846836299571357285176367611026462655101378749768742628395694349769425477677837735978339672095907437476325335197009796014380285900995185543627594000538523767254038326475450953833246251607881735590292405263187396805091387487530305604652235733170174433312494505958702350372792632091870978911605831888057414040900114440016060230030124208091545284814076442481315678568129353559533893753140134714530915580796593407396389836959293461117110334146864764884611767192118097011382272215289247011694886016927789412979466380948148801679730844120694883263743619441454727293718610672155154765662965730201392721353750914927232895719297626806205935402688523697135702244017342215827379957572133694367687288085723608057296345696940980501277212364611263494017927635897655493118375368893159360457012574675999011672795726947511048942597762257616964791592707177836285110521177943740252820423606666269757474336917895165092213778724819244458978793813019829056680796257282470369307158817491519772058452797370688909929640465389219351309093489899948965767600241884277362650991031546357634318275471481414887388416775475202130674949659059743408036521819121854536425390860017767708618475317471187027287908671179631453015649660004657693377914321635422660440285568609774542142446349209851405863986361735367218527045544767489207576648586309646936001441724380845942782757124606859629909626447100216466320906530822168104362184500190308779153222072335159630769664373476488262136816677861184385848825748402430890830181287350143107481885444207859283806266451993583539229574715671747341548977168835866074529415196289179205788186698715900777424689103388305767739586741758770540138659407424708618314957997402662933141932062329425689447975389943739065124601350088918864268078932261479906852097337355912934939200063594405546547660655310882828611792664209491489338908431026638885789473339632488262105503101322552868032568702247930241556954413047142684201689141260552339791231902583944035018757666040361905047355730203773045254313986004392407530436312296615913794010287716982907546821748273717074313701746073551479532015402791115165239888408126993651961612885959248490297123240676028708028329721498756392614029893135999307346758995622499739657527060064747271034853425654638819558304768210927071111349166486383635267845549144104830913485072312909537773918863164682890548383987623211451122963035846984949982601369579663248792380937198825908717392630133273938443763851804722987380322525753667693993004329354218358017873887062509209483721847324581847020176287794110246918297433093599039942811735282693576033860387101210512804983808587633544869274176560852419604962532017929137836303166426446876359539679129384997918495841815660443164801855577659843684840178668666519244406084045464424668477706408896245273649282792573911800764368039781933150219120076413584243739397883257995350094144782851308835168922808050618414674977683788948201259132275217646831652146278639864679412360144340313342293939618621738883034608025977374116359442218935529126228080139369828319878474104664431530345447247750528402152283134455895406927913704652565316434989718394758429776331556815974005154993995566882262420629621861156825452238462204524233983081764220945501765467318667063810228468725535775426770740223492859178937806612591410583654607286331021346605011362947578004516495898525236366342966322566819917099445813820976009788159617629542088512527675269004934968977449258106310608983363744300847207431860371593384976191631838780036795945388075702199599156587078543880932640138601614781974102425511895036992663147966359503242511993287574892158311235762926335532976904502516547407710924238535822990107417026886477792509689687747517083173766861518418379600221153579929496658913972925614347478939019271396011666401291468263899206448616146789009819495465398791587851930690116091079397914016754505670353543228847165425712110321668300044465304560611764289024606721309369209869945814386245752252892772206095454630199304400666060486627969756635975938992527971557221567801647463832340721969923018920494584186410532167325684845499963924386499879991892842666454478308302930833431374135684381136716618992019002432344824497772884334333798629284422568606333622560115043141502838941041294443506079201560528494653685846324726200355565062567635253355179230832672525977047468273224728293710250500137537157536760535889775694869784493334410757760896729051893743559651384561431697703688624560615315750848614741004962551623442098471014172635451044566081971919363968933931614130066360044676687247185177693163478356226910124824384571167500961581184720788835192950478410520186365102938413456489980334439321604441545303538036612017940692418187120217783252605781595536191691637401314828643670682653332490842140966515319052763260806163382784297575579568035851421629497601346959089768760428800558904053996627217360668506274237993215272269119805307537677581892207927203572125005612389530681585844419387350540085378265685475753842311394938336426600712490052789923894892326633914435716921810303017002223879427793750679084377166782586610261017338948314732761418151048054222017917381716720534300926998380505361185919089472059215602844723490457316949199653935327198008580715174406013402422690528014079481806351595672617125299752112885690814257856567335374361952768054945961316653233253809165758033704485467098722992452500637490975606742602191395996345709632688175885652320446952333969186778411563822338033431790454967610110381522020460565887312995770539437395390372523351616839899888335063228505424744124543231293687950119682126109380667044733197342803411120800555315851049745351923621262366992665432332494897664475797757873321675191522108983274975551831523143834856819802898322148640290061292269050479716696305745475505956502862962225438840016766580099595676635452518372303146597745772023172135600011815545680392095903341505123845934126429116805850576180999704161933745500139522479497107629256676063630857739095305411628951388436845664069406247230490852997643391948018788488905225415590723669697532088165162096436265307446491670430945614262569358837081429744992463521293382709665453145304101655882822918392939473386173297960950256817875353160746563636713393694534095631171413100503149562344452273347960011091159169482728408054422056741313209742741377753300538078752072303921063103221529378164579247907131172806826332982044151227686246847041132543360022247590407352874356963410006277408673884215195200090562318089017204128336400434459610590806990038875873815690049821864503643618049671828244754674409760545283176445751291708118158166489553725124244803457926049279429438283607271728629667535681400577293877275378870756251740332763383846838758744253089982424293343028475442444543854422900146936360705436019217932357940177752755916739861415433204448539245394478309179293567307028105076447760361926442413124570651306031200518638415601909109896610824019866885905754427815940922855840074465917594688492882722717428333663907716241668881509147138333485287544654484100296559268027258700172429755002685458603919392037175224826111279256854104429653211820705368377592464645716190378284423633745210580834774714534752162835462543481200072752283702471759841094959488416633977954183400809195363565067559746207187750384509549588516937358803202585556958165961049451204952628002342027335325697845457116492065750563829363896439338964409419532484535389001796149837740765467519646955768087115196369155292990769730415521476206608136556083955327789566219901971695435402425384879400567301692102198842870799374751816410693382783071344492494874842612373397721660223465157874269044100286021137880944334731133028143551022508181336817446722405248239372910078986625118148741059830204449127892179515116753223064967088012794812481174953271860468452144433608246923722007435225078589949741507586115462087992545538586938807926707892130439747998272157886389422053602660945929115942368126882587888336243358622263672351987000387110820011871562053935234158542585349642679024464102734937050563498838898257614580031671675215574081489313338257689835003616470137358191852111399294619147593918900074706298961590284930108801254759984797416662848614930589948353370641811341257278576089297351173135111696341418422558773413838661619635131628052350230776821097161522379635673764185607339675548014874673165010267661210654513700931881713330800744787261545329178955727289740246491331833575072006116358603060842551599574031546451252092426775590564678311873974636944979500300336699561267129308066601135748952735092448213108899044805434844028711080834500113624216872653094303013990869168978089103973611393270192411317550808588330341129767104530348652956332633921183239469684919109533569248819447899293200353135513902841481644226348148699073214552884866310979049333717896041915920259037455222985225298759217553216321135228903604443603328325474848225795152598598138156371665665763692856146582361841109755544822749469276441925007741310879588776506068332013061433046407302940928692617903051569072250081180412524878515569056888484621707216060174220974869788411455088465151700329963879191792036038804891197287035988149505783779773702166433475222412664469721313794258213950258569019354516811086440963550326970133622082007599292036228205633905740892794929530509893844017160199935815498007665152826466161044767639350004453622096916632574063339181921989433684261173460964295390345127152123598603788451638214357388180810342279961298980176379152961514559857438951830258256458894206200211372903214041587262629955272740204901273390821395160746012489476824900884701330102124646941627332469610659734056761204210107377712556449039034019915910596973019745608361541524891156865768237204393196136859718482935762727276229159857510556921475953426011808894076939610300691095350675081614401254419169305844144394918697458847903148944776740405270655746388356561814571253116636631542490585124212890868800898199734020787346895201036745613669341922908474510310489680143587125226435538677313204707341975257320019688577753251004319246715628217968611432370142003424866807298285941647639057309927079044341888470836370398928068006510812662076278550226383997282300299946636872058770907538027126957732234903117402281645153557907005548123886447768208453246686658727776363629351454395308269983966512921784093212700663771493161063272411587739526543923520427670885132172189625772679515540674856771888746371931628187255491002151872120835223452173014494525283741958628258131812092067214168368913873591097714313484224418772253617191522468746183614065226309125593259211891696313070172300994230007524058728237337596696743880117898753035338401685145167116714707396873190026423146790785455878838480764296883715510399183898495689632744022078248375877109540493339907914959383957817531156071563389846323693993333607466608890358918223219038875431400142940699970613055497476963875928957109877688822810800122846918487401948088169439507228148529995214979170608053681167271833459307335589948711426510395208482965272343782282992642223772021279325845936837337062940145364558801546848888475288193118093738696131090925417556666461872634840865085552442095494885278532538105454881974038278662431667761562251866488891604085171859194412934482799659853680832760800747304643771992440003964125117749411794077759106514181907025854507938144391645929716400030503956160426924702922237155909083813641953252727613772545346290342171965571956118121453457763050718361792411960947684241634078522158094220574977948988509292876355434324457716001112855796834283159989364376005165988603419950276484065605142135798683424591750565616307372691529922981051487117557855161135048715294340842769620145591808647701475349258749115860194895721308168858982429928453252329012788259480165639001924826440897939585866643625772497959890495078540033461185038430579781643588811918908857561534206836276828550589571974388399839064946470465960130057999851306388002731232654585952574812460346962105600198369281446523737658968660725433785138168120356335203468863718602811733352120724678197555768750344042030795584040859177071530668313845046086255919791655091599261430433016136784100496909791520131069169974662897439983575678276546365326378346760554749745968659481029587723065848182670077220922853945289284925943296337012055752449404546442953524170172656577203570124340255282444418503851223046440710517638566703948550968077738362230589675090434233322423973168722977673956444379188174852886146292912912824989475417561389323158720726619195280641918885829479150769542569441312429486179863047600508842496305644308575344800523749603781667312467141956365713623883823545374765173159707448535106866178165037625617371901135527392390980277134773058444404323954251739252541490992448489076472083102348942094519070467355633736412756954662175394365346800035793368604983813410164858951928572219509428153360256804805283104656112264483677800122137820198666321115832091626628648054610062861375216075652658019770345088593616576196181493524434366388356674796694678418633732269465358989453364953977517904050314073929379853460413115455237698444066945984235542430115642660676646338648924113690010411693738926326104279898024212843385733081496082932939461321376513921902393538703885718868860326401519951948856935438694422701145005603799824754618332603067887808044844373938006606653707247221871427036681962657205304226024047930307597668077603990666891138302455155440065469877114195180432126977671715999388934768298399950030500821364224666428081913950395052828366257230827218562129646705950184011190783584846689503459666366340143447124671807532808088902928013204473220007880873114498694775184640753479555993003112171063359736987730773443129107044786181719723562125123956008015856165774830597946404493231276084911576614964313501258533387866629168924270039362828850962408007002264968476263638865608291050703087728967792882328519414592212806035147490360475875840023593218287659977888113740710987449919997991362785543358691192637644462530706198828046820564611846614318208290981475091107368794166487323085038220631004016548906056884963523056668066612554558586397750842917868959740517251020064551470621089686168085264552326349709928290638838349462716915944038013427894624817345056914062001678799525203196810147993417719071684353370170211983211309916521181407389153657540228421158221427537309602906539995741378548699424231620646979583706265927594671013645491978852332546600976575918692448500746807523140513095397439633230160494792937885470120030584133128832122658776244946945333814468808359955347138684358659731324525063286444074902557254856283326086698731225605463537021444859460515811294334673836758260849463879748813768164229995280591504850889931518394788773141351433287778253476170070501794363594039956220771984200611826425386149946146660870729864382459353231540467161226648782953637950209558325333420101874059920518891114695846543955646326981106258745766961136537068626488891461562656683072030182611373258685145311680708614195286646564470953174887218190943274446972935116068986827325857076547253744489560772121731814588202329290752255684064782580812770407598373175738179789583869449383575986070618039834258314846192642662378989223713360887241574030562790132517840047468086866424666813240228502078935172368063865553969973540352402139125394741594347672401724036974887900840956088466669251014896889005318986028104991560900196836144202911285002055021372840844217296777868619707211702427165399344653027944880486467889209944675337546378010014241988690521995550416914333521047423579391846151045347948190948222485865222920700865976386210172742300373720313755163658612419093627297790564702631709320218344638876920947185469881955298837886189384832470028005285625537449161458914432167778302069305636385258788488372718605938772297765410856556602205862231489159490207944423165328250177639952694502852956663237996404924461697713020385354855156490487217506246817574408673085034628042622794757605173064214436307883238019551224934826530584373637514805537582056431865507664514944828237625561372324345780838094486468481148927294622860549660847321121421730113414895771947643960954680762766748350995192296850547120766982061327049456637337269266592692685354128677265036883341497316959633923840567725620934592154372652408757274036981959114067425739078930469353685360215281360654037463565007714756623881508466178199093819836140135834992346979134857667249616903241343564673788596011846546306142744664463468287444140447468522691544713986352892703890399907219708358902561129376061408161221588838708224425937532099086293134866420613191409986216618369178508879837471013346625282036446690425522965235622871774452100171374796615659856139421328608490179440562073743332166140221601135367929111340282701624043681346131436876547212119036181327294977339582565766346335403680098969328367574266447879697896493201316741720753744269105209797242312031569648359933834517425549667334023081925789783436385584638726519146373588384733243092769821922150110083407462211718511092024714147423489464959100157444673569718877938605049547699887570672009165465505420491376401404141332614532267835585763383425530015423053077779774761303555783519168584851535069557994139359400128985073490349466637853555616568266316894229091015100273581517501297863416097668364782628962630696931209633527343690023193714122799328623088878934365826178708220168337615493161397169486182272833536894735259381600477035426265795654181891079109156996315752179939762743321494082872174961023447703804642430608693902353300181896094222668624387757093512565502925793389104134155763856818966263962299623081798437314921651230972018470547396570623472693819082414229968860233790071486787523268864697979326766721426466357619281225568524165993887758387294729343948677918010088616462508026107794235538183760713967466124537868727019669817047795268589340631190886927772776365713288453653591537631552901848257187224098406224488309654582829826703244331765301439447108413500217115807344144230398438109142621014239468796206809611428346997845083831826320372573552407297514602536344532669031724040921903789761780580249169108615181119682208774392189594238008437630538129867918789084053613744502386016942144079853276101200509292836966264924186141240110113958240416455592752496083651145874762626816023001983144353102961211522153463110179951671329119124720081826190644157492991660403775102292563461144303920403546834197336100425553717844216821171760603041078902771879825675961065299620514839984458455014204910737542607249144396414075210047997341095499977034530688352634681224325241961208337964238702065032869146028927687406097559805165592388595660982686374221057681687198895650270209806723589819870523897852572611312352435646746810306574433785918441491791006102623673691256597487142188186388727388949488962988880127915676083573898184015015276990623613590658520317288063262849736198841929598360375897635070746576076577390120326500081336509299361529777904874394188762620558878538459618666268777257389741473239189535779450696066795351349794742697743167514143983685681850563020613348074551945334190078885961877780869014467696275559272317244449172183110469782530553483711469317419843800291602376468363295763960234096201967313672410020805595819309332972758040616690276528276252538682091073387542607104983675189410192027167248816469440382137156564720782181808096694278577229756901282496935388675624793033681507408859455235724064749520799579247891896414408506118294624549016451561771325864848061585194397248788902674229636087608547342720172713541822995450551099358344321205183171857355764946462596707144216169798689819408334237107117378115851745029532303549534595929346024774202203798043520835390175677656610560320826324987732910284064430553361397805194145713451848598013845075818757543318153775767658765335049228214109698904328808348054434665768092708650582560730730541932795325166817617810112804035790423741557518338253608845435649029485900892648986970653560680883026691225969398818173618143814684286024554187362753431589358885140012998031613101581374740455137806316034739102745782854076765704674339096279219847965005454212328880872092868116733326751154778302638862242484107481887678061219117699385734199940423999603510669634017108258667315698706775896393414233796910159810515651312575235613620558376134543478042028512462396183480143681315249921055280856491669807528823649294685775286479748078776389676318468116469575847092830416549984965688542396823358606460119855511370871227735554368116089105560662983422157385783413164472306053570311596424956532964524290642326844318508335287009454205988027326625698725063894928934855471897588594907990878627047771972318201006113261183797951107999848904819535836898988327384615701528455441079909722071626619533581275163166198855479694013809599103093853961073781580967931728609953221614249928055172577590313463190705679509058982048180312322259905730389861979237632321965400007933428958587840678042575401798187367261220238788520294237132573581679141308778410029122007369818967599663104096104255772857216245782556433614016589900253716764604957268765270070277271237907125311454078534721316754024445539257386222747784730049885681799502970433355391754527523660328844413407420233040939287158091352574761375766930960602245283385939499540041668657366511171548908207579013085047984886522362323673834768353091660530426652640717006900562408850016972860955176500828509963989447859063764179743390185647043321602023552333967372161852331604021199923304414124741556560359579586129948451855456652698415193382104310766418660474685729030540795027120973676815629550537603737581191071617805971902778356092467759002022571603207673675192959170545310060281273687165085688450311713468518155128937580258998624813679369053125429090124278605600006339366716878576272566830375429222296893626065508561982276742319300674752845636915792515243951716248480799998300773814380449588478785976590321439494652402321346556762276810329276222150631773741794976147602547554306183095466537635579526450227821417197262068815521695132990063535399303283382816635112279955123535588540960209769617266777478163730946746978188735898617010734219284809967874420954133479106019551111355244404770589626598844119747042198147911202888755163911489605140878329062473890298572549358193038748743067067417458558303728275393273102652356716038252293334080979476246840148114440627291338415328396580683404014385561961307868806238680594057644358595754947629549538638240025509529199246326858395140825139680450313145473780243054332894130658227746543784945469023140863914449986703946409887911714632370105246636209022232434183971793709822936531747360348308484783757957008585634279641473548958232024651480377255847498178604485067604712769416466647023815018538311505440206106871810915428273794316157195831239688793381623934344824908804488452534493893592311933531780891803075538150758029834760951784734032851065014543422529940292993863906718610979524190031277580091482696791108612011623190294039704938584085971828372730121309268903964681771935096540250262766706595467157611159391003203516091761052297340114185408020029959998911923099879274036592380107836566193834658525857015926225894347046886467208790818985530651648156561334233623191196737274839989215132297510906794087634323448552429577649703733417622616221481815856471440327234015687291034381643601144121201928789783332548583632864078048179865345591228596927392051636500164534583910121982357554138235318388081981783812943506354075988733061584282566055240267134246620018896227221695770367327799978481269080575884408639079971311338732374997043729839789197399445864482390855561028212364318099606069934635137667575671021409752877295787888803880615535072955743292545638834081743950159155506701579031547355324076048900182295000803487265679914812542947598338531069202107115102480305641118362730876357401173867244488495517361517817766893167368145601320885610535567773856707658376110219442658626304231423933102456987886309535569806644663691365065121404275679523870937362705351696066713583788449835516230580649535493427872140008219703361677740110133299210774214960319622976020832916629589740315841413665269459037651544622773298834765692751064677152713747952547461599717015357520122190679050997988913485301869529637600402308690445491917752181004513999586478890791537279461602474674136309956415990260563934539368976721081211295844024944596645719295525313036269532007246937987852536140965180679085787950104097852791766035760366296505842863272787708214502100809209328746307407523185843169643096174519852555499855638612186149146833600118118842347438897836292579225304606601559528374366451855399094956615423299160642366199237850147547947313023649483604363928374941646474076063631537641848999323576476076703155752071873628812481178135067691350515092208017547439890339673877140903139163715752715827036185272621972713434908135030579688514186352802539366273695514543544368821965162912533620146828833001214225737460803107809452038077931974297931317678544154534369075936024830591081302392498882019018942401041381098267483220300148345203531348698392740961722852940440077886052117673466695594937254969982378390236323965529012481322967309562412199748673916534650737362264413574260402158857609724501070593759214533543293291302474094521424548041440449834264548279060126208321709952730932398141661958430551097794316229483425264217772524106903190218592375716712375099221158455124781695195710168493420333115337167114661444148492349467028354972012100659083967531807671138071251322803431954894316790064669367012567728874253090560363156830159621246150248926679207220926023117581466859564547807069968230061355002620715824667841792398787619800091396835430942292415129263741758638127117421875362129604571678652969890248268831746939311668588062611583552583109387890894315832597933692588522687522013777477404601292694340879627292847172665363191660077403907875875475668319017020784852054315173884594235751063128991355296768227882858286625050295813504195269898820716537437526523169760078493515610935459123906489104871800167677269196805634533403326559462772832254457311903963424134869099177915236453357899871190634297067248304802170971636008113229598068938854012423112151064254824033178146072786899806790529258745874415946801979219148678122878263980361062161498198959992953902310051156971716791932818930689088554039985420596808553538115072302152484015129117982063232425512603883066334293428345442638323937705888933175111208075529145102912144980885461628830208343298380247636716877955449082045716426034309097238217584204489408104628273407773692949628780278277955922474200993504601862958927683375589707777873332601066104559877828558761769636795838062444143789036919277235913659958799916533066888092898490226910565473890032580562933598234619936595323579290198327288101703848914960091935224126427908064895727579900384541169747233659782800125043793009472916264144694355452271929987148611988781135577421360424682411331221783503242995399212894725761803351993642633677393321768841459769559425717554292962043776442974955240266488268793377476138845338699845110648884849748219799420444786521507660612448804355360796357599993985080101351993720726870263398526901610635798443589435587959021683255748223383077796305199210824525585269562240581510907050421829544546397660503702402158107041536804315559485450153430919058980899569519175878377772374158837754562022637511651929498045503639384229100554652117786452695683454729186133330439191823503589049347138589402584816882030955769043768574333250093301086303324020670712423740688704988896654322711331450996676055601453740126618056911081388818585495408385140323047402705914248752264494545774750231531444172212118526027029455614084393933730645172759515305253033178041895810294990807793904532655682978467355928212736825025215003347385212567627167822457015124612764309596622868967391379471086925861035539768580653289771258971469378665862577570473270211879338295222549165134109597496472649925216870001825979862447939772966180726857376500693608762278756304822062595758299032721003927603421990207244388554351685731065621450891803918244990723522306769407419827663384651352602262185277703791560228665759005731855281208311970379087229681327600753747366294671061387928972607221518321809085828765618978235812148181355103443279467758020243064201404707261219414375627868345208440176633673192811584454506876971303349974974781007883614557235763085530129597723498543286172865998474289163148861170295126517528458445342263580037733076198491461696076000637027066405784848845804554948827161440476669383132869767216797967474157379313807291563934463950417987680532963010446138435297638775804088320797693045834197120773312492106367626021884428556063331895363887072690670357699460412940207485689550616370021887388307578532975182449498666822122124281116132559020691615743083122738181122798637389340419586440324960864352387143735292663934776081304754071079179556173733422198097229428385518200910782775156892568551605685128041533745161074718490267118774603836831091870797845628472310589358062941725480895525401759913681815547750135629440490679268689441196286105092093760725453072287723005279940204367182710131679593497416614404557599290243322700635848408390619765266063412618675778515052591651820238543761734613926074241962571057673944179873298856828627694950151995853003813473923521779224312583451651902369982168611990988585760541037792770271788154403637843418850918247256550339087051609880546514065757640630253310388611463615236297761640192504333897094228240864657401870843733130499495978667353386928161076613365924060071650180155721046206370657191784072152229260183904423530159689959145303939851920622603624361064316488029312119411047109724805246662537284419042016436761537869736198480397904773258839718226776076325602439476461703877964854450953079367153015539496457616474910145572000560009295980526457543600825739853562641663333063251057550982372573589994846585495458949091061554085981226536475904022328086529731733837297286661676704821789948314552151658460310156808080365927451262814703797945303186861224255876725387999651005723292894167554808411260674661169352940710171246461431770401773330347810077907869208012146203229589765962009501154570180484930755312235645820869565956033340124966179534907433564099877437586600314591991803412841411038424905765197710980705713619339864121592521901695080772175250317795513620492658047031104944066622829997046649024056091972180357695946803847966503146630327414410311506566260042676334360763865496809708486268075272147455045910012898147891510551399400964785895437302482494833319422105913521319456320555638400410515616489363167837745282214544334422287897376501252468217611103898148978429868278164843139437432789854657010514558072526920823369753757311720342548773868603346810377867896078810280658718490095718357717231739272458269951631467285507291964202218001475051189817213694713476326929937766535381714991758943696222300735125428283427521018417256004231535606063907281565163844160204022175509025577259986588517419632300076490751755676391311668121973193661789323864214852568541408191795449227605663183091569402629527938375450571665808310117712196974272327356384816810329971965409868356117078475704198948559421157669557367888728573222696006363990584958940402942343683334446594371724884792270238854477877456971331976053640260360225021944325438929018594860278785226839382508454262098624479727567341853470847588817949600724303195385218368779963737754858524287025229063437212037459706603463659290367044578701671271463115312224954778553343597523329149286937059605972694458877023353343568217710011112107939425395041738156489945080448923956498088426895411703543784422083747437238834319402517598961229489343469120940047598181785645152455680984267788593981542451478577818184191585049280552955888286792005124928118947969943913646799289762345052796073051476102245130380420487151201874770385845577332730911432354232694893610896855144980953900725782543197193629870918509815460179768652569338187775175856000223593062329021314977317745129012555563242667395413656614078142843195380368046226322758600304773427952858098141672239409508191333515184813531996453799489567168552260011898527119243292957014963771150380532875549712455116008824016245752956192695245127226576674930800797804939368870335282855166489071051064841612014661181230596969602028188883930009677089541860226792163316019174489516365054502092631411349998168789176886582620391311414831440897554674252477561828976932327457347808516177912232919389027452248743624518120161620377118323775641823989471650397435976227913239826827887455848837950524775193452710392950139818345525645843397231388827147455490548589460675130840354589486379652846935246271168668156142188456393168954809520773726437335433095670249071327452019055615017439924950132912280287154737078860872678615425163297318698688533900607021343772734728639053347199222275007414001813312821485687804583805780011037666597999253287371492296962395162799894241745880526728739880575783875631370031493746492329818811455021807736868123952216787725995318008010577202189762194195266390865070346836184678609128464815468516379370798807410148979011277284655820238475405935479149009071606869635302568165292712372381302517008034517939962472619012506291777215086125397001277817580116835028043558561210254465797767265932865379737833831280722677324601477628879485893617897477512227538652305674742393410205234571495022084136141343741690679044562848491549645640548479271508036800234674396279824618309431883525906689172925426948509849692824338306249267125138487799394354815990159507231831705675651158163679544041184478258365173973151328496421962208760728029169660987877258902926774411387707753035235268526969639350748185816357563351238992988051853594563751837793013598253693419217677992152094961409685475834888716622802972412312161266306380471707188191998101371984608987661068106155588416012462504545696138427427495858093383012545480092228957143515933604299412832973919004475232443384770678378413225578510907958104724792669421043264067188888883974013876026743068165970047483928359962731314152739530848609333911740638295059228205873579278289314931181832551193702233355356374120817425671930132496917845811491013299004637482130953474880014212307911924590437515087979984574204889703004396521078194729768508577306762210790737687488814282883457287327407505114013276277832941622688976467249276531379632844611791593372262412628243688260471227026880487645329506640251477993430627853176826257691035740260708878265484312777721774601346924238305132612476731661646012455556450544811219886971030479537466791216041006553920486895301544284551974298528314149972945211102268967898075886688118046988005865387805209755121887599701963076780567198382298329280748035691781502165464348611368172709341533973085271339703809828469595770976884752101271374342412958872199012828786769837591557811126160748494389544045059158655932524345418145564326935000895926633956218851790565359516115695800925711131903927762484564616946231191860234791893571306207309158117040769646601639096169173785917088557044990327642813845420823813593236722217643287216673595436144389303761746688824179935480211554384646593554704898854912056156831117510356080248792169838912300210559352040140679638923261734153801494177666273964139756460973014239046995539461389792444072905775788074598627384273959551985111821066597211781021038584975138151030498913570444604823440455661084024966225990692355921390270777215910872771325194563831165692359055785160633151125617508436512793928246671915545833359283754864370252310049311099391174367205926604224324889030302522319768914163353710947262704850471291633998193671670800082589102157784908564641670562464651930012144976416352132356787942906978743547249173463594803260139192669916383506397628835610033017177586396805044687848586720708948685999789882953427522504374977579348355274048417362307016788945732449469015268260381514151559234523544258367375560416342961502613958834804453361620412902670969284027458296852379054900008775583582253897553597299279813572889205392291164949267045423246208380592883633029777639442354567708862538398375195491306958221186994550338728841024455988621152371939236545385964651340481490762350340636034663863108595498555959429973653458952922534958722922262504174850457919251677388127678102948205957943077724660750483158970037174367266935934038352872465164857328815022525032829702748892638294696787697352315603964068926791563387506344976723736048002631949483368530257863210548445643929300522357610290134291347293591338201412471611275853158621340783645566517845820335364661244675943257435840438629599614886019054281727366805622202200383909447133432664949354364599298179074336788958461405513395747938376443397714949627535129604950593595579518192489754803909330633299689290274945046747626642181112404224507255200774193966033980900557177456829280475997626138659979109960261981868236185978161107666106584890734492504271688777461415136162990465509307042050643070490018475504074862421393502354110281685370758432626257731666692849443692889486878341262258241335594901881535298134699404810883799478169916267826833335173772159064666749479958305671673942032913761341181886367077504392423012362040177916779457907988077694282735799165683912789834552938335888743818077763992285787573075268023664629366964586144722178132400840414190921168350495206241489993974865325604669017033846434226033695895090477972730267210798486537489753258735095462964709546367409886543964468948174471222661775519988923760919204039916229161781663442396189306733053900788073893461806930276926523747425468980425945795261367562689352445376139292019128284411601206821454492524519627831823920900953818684239239049559997730842220554202029497903110936480267959982619246915692309152692336842756493332778865505747147161425325665096156709313621831097686576513350689070798088876030019996809389506728474291977406880420801966724637677010424993774368398942894908141831120146941030537124329835868761283259410354367702931872120109633573148897396094546250177102312929376311155875379653549181132672334516260213174852193581905734322616795119408978204370662194615744889852315026562830391732174595681336716377335515137267405788770648228567705127404043621381357606150084435399392256375730129829249028960814252585236254061009827526662261204279503131055785897676032982124648705808713393908109132455131925708020108716058039929215001537745477100532663701882776118508641770528831789083775180792554957209443236228222734447779206118826997216080367307489934198168697710282263712401269512815175063203007826434891950511273655508826465703083352083964600358884179805020811353055535745690305660125123363935079463779484264018144397399256864515770261529726499570059040582723988577726981014718239805424460823538163177377852341473866451604300826735504514567997778326778184599394116760897664061333637172408098386756505895836991118516729842438802838739338860849928458714702469146653479934087678384120812286043906818048097291567216730956642986954194759390109699411836157444210866547769541921606445162754419957886837303553072034942496184847480873407976888660104690355426514934246426250367754004696691410323889211946848242037074938499804371960602310141572774244962521630327852466802472908943120786671772564040940657266538233797376803833076646498281163366611601097266505394913853784079428942659294387557782257925574496003412320552152955970375059359549734947870717111382679468122684187765617800360030070871381484332345169177287959202563575905298478448391892873998468972527615179930130633277503794658912519766437538901981297163493570082953432454113219484935793620233083187287878299105427052330236957988952524612887865645737712345175163727607092668963937779460310905786128054994717160044071983199317985445776752531549061819693334725874305804754887026567067655310920713161994507119428910300292932288303053792215552193919142635837476272777380247147658250254126456560933549837515450294331287231388472786120667824206935479671164873964703365891935201342274583399158822769666105039868856535014464119139487365383183883477301730678708069476800839163285768207101581307075082794091396146931161522390822663775974130959720073212071936710702902089832578858981822986143199918309425913479900394203127890131904201069049606253818272069714694657972566832231048621760058431487670919493071362777903508889302079230820338322314736614410550464845088007711194863943396034301443686076156269747430901632530992558521728425945675082716641779037066012202360258388002503596923738589054098766214395598186797016024705487689910984055843189786479444834388216395574442475743606531837063848917945439525857582402225534236216189201376345601701622416454546716731725807726924757604245401245429283456987929055272791087977449588696784550859727176622109304488628946882768130432377013820480943399071957186009828305357543361819822200435198981865546409177187467471723724102150821145265755386246515895540440209840295288917365779977051359808150909890244873740028375379863199208496528965877039793684405669397060898591490717128651742643061578851015356831085868163582312236665504587020417960136264235904156468034169088756686827018121295152716403003112866540702524762852076267848750529686519828938695779843732429476248467282601687414224237596570947409238325189780486588926213104559391814101070976072215467622232105275802173321409551054969302185206894735619768359945560966497612152454097739167676626883108959985800048819224130948464443839796330067991925023740089880940386788657709104987067330144097528934131205332749641979249665096760952799148907371259481651894017585150491448224164617799756904404019139861134292451124576009353438119070085096642075744300936071114220670678903112748717399670110740169563986886760098096246894321145321963487937283875880302571877485551199201645973957728545307133729482410456212514623919489449270821142655035659598212979220972945707546109945381222481870281946601645625652134699429454427002445291484365470020480898208634598360684348551110704381078363114862477334019452017217587028051620168041869953984533101136050931191791066749569770812457503353968465357650947150631065427037921443039027214206442812257871826697388146529590795620541593209950570783271231238929590366678275335356970616612129366303125892522365833656667243472316296428488773903632762366731098985478624024660687822584396924895289820876626486572722243127111420404138009758501468813839735779502947586143106006682783840721092016595223369467992285349078807780263439127782995626854785715497868646035864335779387870921187553258193455532185686592665673559554850356674900846074612128129912525422724799240483074223676961981471110093879155642965415827088161076907309921175668468952468630613123276909916716777345267429448317127786325099885121099681702885093440923809776058471557018508980971226391531229940761058005511726770411346359823948797913379001949865144697287853857065134199866227640965885567985623657333320642506103298857021907701765418627024448376271972289535520089923889110187213139188942533186663327826723745073568036143132190138105997293022942433406591136348602990605358485566851048954999164837396104796790731085567995395238186703195091971015426383545640989094057785236654708858139514297497193601773827996475601743467378763175388816292824723581793602732871777616396855537401058012975416192052531087984463898807633318887459601422381676510053170374643913719680653681718393419422054070293704582252559149629576847697298675595720441117685059333388951930410471262489612668034695629410571003353932118890121461024581415374907598637881983426877365874614963122633636187787141505888275854800168935816541710291377172785806454781469655783227843567028316839535010658216770157549526494273726789742809094024816850104848065238909303442489959945958850315829715256210315384943034514984828926162201426838522943261882108450905157401880840929209050645377810318122695116004457684833809379083077123331358971468287589419138733222844026563326215934579856159087272075050063139423480394201153499428937207043525700037986194910631791536894454559148952819722750658480244511514542660102341446909714212470830004670901644046810305570131585418454209099323508933228119247834672674700619590278326350163687225902811768521755167235950487346581374367254267001737852549965897770745653256969529688451131379538777840978106680216264626594071533086109677928893686357913550164842024195998437042172811700378292349269888721230216513466348367797558278533186028309801778949183816121478907601813486073004673255608327297860867890676082291534753912214976209379601942039159349260219053474431194300903927587259144144510959366163288671097167412721433218492848982704304226164219826946331989236541458523201583175271531465409114132938543624388936358868516133045515530305984827046830442732930400023509544256712853937303091984467860539263408034434510741103956099740505461917982062026276675011132315143270195331556098993884656570726806596212983096564842393743261516982279153925083425554824772025128543606380720426952634044374250245921575308474259548464036229717599116906951883620367444716282398717775967060267686028026442261592771539381848220174820033756978288104623345771065332106679502202726059978112521428624166508124832588975681074320561399495737623177058052497383083316437261286485359789218648137497352122616665180376117592482133105283013842108449507467421524382621817360136882695578029775146386892662570606004143305685518475724985710829939253969333088355894836023531118656203963228395256661873016340893399131677782363631196905902194628561585794056921303653164445540657117555065215118156022136747215966974008713148502955327478701117091065696571082218301440904895583634528442647657560698922233180998358061752145485673634104032233923589866759547199016682677500065975153337714111786572501752199153035665885269936440996274293044963881463033423854973685971647195421923359560388741788004613198622747570061801319832861765473199651450945513150913468180835428119155703471294179168532373833064253494247920820891491491016718811653314828785783424697044454240803499433238122270304597915007416023633686051134661777659870951890163893194577034987719541303850224877892109974103009132951495102659693078775990350750527847079678297900321057178395880682827915212578482038848829413934735391388993691619658958122022804687940286230248992691099262006211355878285962263415817800488745060418280569653677174491931602070294577093403222414945052044015048318600834410523187140428151758937766784832364936289886393844326002533021701196421860640064552675797658736943300672528685173832433417862365674687982706152270797671408540340906512250742238096566761448732637425695870655792903327183839985652959148452984184289920924206063532293893890484046825596900108063464377614164628564113839495310000094930369005686912706737107637466285395608973396197265829989844565394541174365206767796486746452623932422159411350860566959346493720740983971367125258904123827150468311422455238983161099548774240416073645665275330492840691018665683983753218093635414113071435358144269391907038821726953397903305473569833809218531167712452748654884092051959371726112723998256697178591212159051041635102735021740489222548638734742703648875230717782571370959433047704430744328250702461389689074627087654120365883180115624125521035403105206253491206064538817804981480219242817916842928326018268960051044400565192813682225491940356649085952572812785524028396751485564234264330565458398063846514268854244165198407579341160459072237913891669936111410680810044635113476115979832874602527650049387454699720225495970606745128603695785126215366634511888275508887813238096602522648882884843182121557505108964371933845147921123617283764869725105107579877096860370959658728338119797295506998184463916472652654822182929281710377245817374047420238622200054787783719861195478122086461316053257480938701520398623883316228575476995258851148164003511351003962058303999137630681010812626160784588388111169256550325233600529244634834084167805387405691292786126731324377832054283000329642515482090434324967332607870650401127273385290944251412612001366849210917568592709601851583893478001104702122870534951853580215446521975622810932932513365958601169043909129176355793929113443994822888541917407237318547370275006800962147003131930972956796303411730553220999948469835214173644154735982051461047555430337098926015136688242431320172700964814831935422307217003229100632230994783635357539129807868951623654919559275368768323678680364939762245713660197529218425288658424210291923106202243964902770333766573758790870934776114411595220675851995283648826913565411116165107818254319203227390014117127438525725876257962336695189827386204157492705296170560511131743451247169962512483389317594879762868302079507259371462517304148175891763704665091689456406462677598707642679044245644483979353738333003961373580235091741394272935859822028761510170820618572822711830410731466802562424926641519385626270501527868015386293981099464379781639383265163014566398889646940997211515379234376506574328194893717911468102765437036288565613082142332726626526041916254496703152087081920994745111449350454551424740220534478421062422189566014304012809125386319757844059180944329842063403993732875518670430392289128870959487228678090257639150126550833203290229427633225878554076062126303698058062201556689707375875652119133305233844112618811749329254222126973181470789631497377264535166811034250199289822970247761485776982610447344112349446732310403526559570658483964880867391277182356943291764292794305848317017120186797346861378484399188582989267518676876859872687840501382447024129867655902237920706905135977891803789597905981230384932581211629792620811960665175726621438913053019917324815459179106961021486785098342431780138475566804031122963429898541942255778142615617230611419928940200320286425143048879084016601998777086533896988454208395402975015624108171164919138115335660018723055891349185501950304558465101103278177552634355657340059679019150657566159338362078566531947947333521248778173000335087762024398721797477026723947088511814224646958717572015376066790781794777371130008016156850563362082654066886759978166986544314661275994970056621770234707987996559928272582979091854623982793032767035274276448410287050745428819415521952462521651479179547460666959682114393700854607186442348010103348290286469611284919044486075339764107249623861170439155040460146247314584617119653771881269822147839039922890440077324631751354915781902614540810782975129287972030941591111676816869208874213399434518759933664174731370171536992237202809457560953366719569886218590024124279030030202680773555221740566497698705097040583988639724822674500879891535822634517065303850086944709203314117240436174014750261709726204695318492956020684595170182836271049183415821382724292118114649600608549497233286032567541214816523184891953477391723586068108405883819512864062999810123354081542671456038826040781056731676360597969104516816458596104076032403963269450885948124021708073765946139931545493339958752026002506956840992620900231578092340999791240512993079225324473903296397562660783500833521656356512420113579787159633545197455221192780263146117879964835819171350878256292096841560816840232111551737455990081030014578288134375855587871359982788787194139224260534427148376250170953412267056269245588049952022345227482764371853472587840925806372896143460498234227893496887775325730254262704031379310888080637475977364912884490093892275273822528009412677678830509038700187998741266325167669148798418963514298423813515051250698928686336616270770291428155648350702972553928308139573638440105541132979061221102868487548327894602937654158215296730108588766899980338942515544376982057232067855072162399887974355028032988535753070162804735798329409737586534918911275445846589044018158263838227735168674093084902552376583598600143126074419281538293928885279390823103629449031639254923272257379657086460196744076823742553301402519753349352041228173486242606420817900798969353487254979314506408116751651276532509267115788647494015335118427918673997313384473162703352979263330979055195387895362319913690417189802034733628902236284289623045601832314565088433454197606910373093177070668744955645530558704143819879262109618620935723571136052685140758632096841152181485316520900892533678737333908267264573669282248170807559779594873739447799276461191571229842715265411908362429388171109525094645827545011535868808255930384615545267531478809583360061433572309722366678579736754801151345857023034043979320178515359459129776577268055897027471897674515383738306186452033559024824883620023497136647456636427914870821514096591564599958556627309086689343105487660852329285767023598280301390002583759911052132807785652449287657675888669482608579443782866230528444097395367189232925707628021150262100540453739241672934478438650406599099820326192045920446971006612015137349357523250024720523484758990334075907320367160966887305014095368891299557075297134331018024952193404818329809695342761297151181385296862857406444069733195087717479708322454506774143160812495083330084936343354001799457784093142119955955585246563598278814507154633465816605207708521043832437214608361634697891006816242702024444085001738930242327524355035350624503108234935102390185231077010146881880661779785819843076493497321914364851048907225188098180610954734713253654157629538775562587020363260561179256250916482412537423691329455722242453979344873423579543749037471181722792572887776943265430760282408013068205483320326692034406567197253258163439427121179312885157620825604444262616907006605514927338097391260833308003137571058689998427628128838730103902139912588001799204356269946231114988245689059737777049132916442380784180080216055056911858725764351706612835060591523203946176213497293877786467411064696230035853657310984260185840310089556850765323752271941596184349738380348136690783479465176600152015618733346025499516296482706784676067581781754164161958246975835350214219757770314284282114247376063893361673514045832941569042526363615632991084757506023046837933347254013878457295480156216899832564466409588959260502074875344528930262097101342787470068137536553820006216109486508527788934928633024535273788994796890156332463551414362665831064819184979637931368896481493389307817301910548760832667896672837641659586592154745618024559240488520138423177808983429392449579139606591627737322694107353760158706499723862615960015239194901564547663900849415284936202002260756980741499376906291273180999207810337593097186438390413081069204218259996601098418168912836771784768544299711443694661995797838818873695138730110411106991964853250058007994045897037613198046342244433682942422387726804076035334329919059373644886762388469452514233384880951217417556556632490822782874032812647973536956184385796707542645897776247534462708018058672243786346784084659125685611797920626140937828031110937634880975199078723882071652597098639533053256852168489765698236562396679562822074530576391410699905228231599976885383606585196968834972633499292789978494659087231045836693022434820681193978898135432861448130591655351705044254367257582668522907370176447278776579140838950689139816427037518958813064347820213668758813943897824985525737854667459388875773648144883988213618435104842182349652004184985666354735660937768393454000555465787993681289807910826853779386501284414749590563792199102290111834872876051318862201415960010534953757520173548998479902507529950661295237131010313832952125507596013389735806860027484410723645421605528796951040423703508764715400727255054165624017421556607032879174843698662197180744499962509177939902355975129065913519833806149485808659462634698961010603649951171752511137646961908153612461501367601991774113310186553532926031804101295035846092407284381401667828706078736326256157475426758499453093400958214873518062041853720180273800029812990426441762811508485971343008361702481678192807770077199432673188256901864453595008509159770271270012299633521505842880451207031690287030924389924976869569199045814259726461106757804826777541130560866390109216630815799946096354166954730705783731947868599002263227470015139172924775568543868785300685707208601422351931249071717209408751233242586891514600809031830046497167911588975706284854548190386137454839115254330338424725218418870178829784044260567531988138319103160705825616609200688553482171762269175901446165976926536322693135033095871937025335051151657988483204255732948296096351811005744892472648566486017712590245624203491534525068917715878213559389494816647512875903411798564246141704681108531987264246333741110704503813942214151437273927513416753759609782888198652553645084392107223665069428199586579968733644678119305761691200218907224336770792883981771167329102552768839158204103771054711566975689731925245926012739315481394706693371762013665384755625166022426699478568235021679655979928394662489085280455915128396255225700141970721397556076713353064034306944062319888049351104743083437763516619285516808515853209105392488829049575641754454812666967559297021183782642384365672438654765658480388919202030647887943467131172611925630563355796343796540210551645652649457244095092126990837854108971661609184388296072956747721786587657414375206171700379120136612631738000756873745384473518309119630918042156039598575457979001576167353423725061412303029771096868467199526388969710906467430506664867120575471789965618194127279313232118625072071029593085937074927542656047788903039297025271808691998178023406779578730996611142108524412622586755995902898068178541995764069517217446756989586187288557786710838322601956766179531487156487882102835967617362084819992095005442460498509060409126771180312919053349015463518377687556114516630388826125637751150553389765919283111965600822525908650391718757293837158302126496491747362454797736445310877640881422022361347610055928298073437815801274528630269482875183443895462545253028550605095999989470015225616150401205017513271187552555283122960061769134796092027731538328640470957684644214131029294728039055469666032036032055339545605382164266407237034990924110571660441647985227450526671528930449772082716715841827007009269333296054487976502353342710954087942206870367727600007343471418508034100819071723981331385085510413831472258147007126150144351190451915575444856580751081378394079708324621991542080579912295679420559423742574208999996539712790705966721484627548217049586833685633274339241448046125478768621181530076622427920088004671538915641511252519814854927126273479848226111224862269622381916554727862773313440694577918495075210870923498265643570603257920826304948644722237386232505629778160917248120652453603597999785827825132878918914960021827234393206690033526873286988264878137832656125674750029237313389012380870264452806769368505342803686371283014634577503885541413395937778561910070233439547374335455367341036971261604325688204066074827688569601648648227175271530473920936031013653457425754630077291585689486250810369354081071342592591479546589001921072955272914071942858581495830862729644238038619677863131033786633687362027797936271967722137950624983988931459314746862990944399055689435251214851066660776354835983090189860501493933803145070903011327834900659327658828340734709929885274734101592342602890494916006527162042323022228768353039306540465823635188920493200687898192029472613955783015124301365318161186737943882134588366914702829393028756718257595768704425525911930009404044782206111070463315046682468312154431808148972280222188074143009933730905095385765115236421096956442692438234829374541503275473515304762644972954168264311891309199325460448015013925794949699918337089100352042438549619457940399151441306143487536970204832524715545257183887503613777900165957313606593098963911663198325531108490847061080573438320334435065245341031450604062585596213219203175262044328423453191785254070031211318518621148931110260872886845609911931928303176875415622447305849385972469113507096918077071282940027865048701350294916134213392521916233893308481343613632912108249190146067968769920604237915356852089238356638751672235620962337739944945921409086746099542905999376886976568054967700334822433188241756742093403478657781988284270828022977512807038098109113519989522320437300908160509735822729354862926039812844095041260012755412525477651558851808869580698536635524658679069069581703415917475187361023807482001892364067455530260976897707855789137203263509315246475593699373470798860122427052885329344870867086990032251474476820544842538958318533222730341764543359085366349655273039428499662524344158622175961471384501163355209180966696840740638850426282171742265648544538309058529650246163406308219945022971473912758470216273400993553404689214398011112321375902248059986543812511076130983024034195721928468586726692247057157991731226480542612922108858406726178705976989863450476435272491817452813036692937205209640585848908774740351751051430143746298999739856275461420382476389410821666716662317304837072628291543013020346176327206697982702850970604225781223876081701603527320871240044204089679089087278733045236540818347053062313156294476019964830840813720966088635537701426555402919248716077549506714973263136779592185537345777729359147923760715596162282221819723507498947018723320880640886377433452941184740197577286900897337783190460870564156772870249619554032509164080744662987093832950985007069813515736649798666023605562420029645094827542322880626914984809402712866429442793894012303048598486069605529006680155633420414016038422789770746987025411661718773443469639894544972263905738734081794957170108688639151459743259001178765784605129383805348331787925108751572288095751218399158097591475233133222867188641826113396699615853567862428865622858640292347288074297445463698269200481129346213638594752736097461338503650227757001736325396047166659945113511486527410007878130937043256065497824420361290289051637658427344145663828886581014397874725153092136012398881547292404506553550609859404439187217982735033218048032902381881260583321018104370513962282729417003348354092958302190715768373846636601807061643779737999856860346005948361529225394268226685282995408340735362810983228405289316354794522457252774517021624466667315852383479488454827489484470240223822444692324438915145444908292220557766977050724926343466693255008841142700067845810472069187371663316787911030766045918160500824658120702736872997141896351842579687843501856526950986482132309788317418922405895864137081181075788267924926615460904854539809095613339319581967212842806067531361732414572962546991036556043863979840907820370761841172072378092374026210451101081146820370140994837807397235425145760062495695409658771690600210409232352188690532726415734674897556620182347958618171658081170691470766272300393422287260179975925955684623330055787097299319203394722893889891465342517253249095028391306584059267750213867856945545437844648642235226760579162259296469834777223723192537350374052461986714941652817301909254130128025851442986189760121480847122096379699674951507072911891160577354287017983171329408705102195036074345220033950879350899787583417245481401554729007891261091007534530240312972971473503803546011214762718161858984638588040322302203930709927869218978367815073110240263709754538336508394158612635697632936468641898468496379286707442582630371455862204330325340653970466319663212625816281952837734102901628110825255609721049591679439419240586170976338586409450909502118439462963745233696402167813918904910808313871143593817007448488028326020108278777807573700099623290384444853687554940380983210934496210752640878993393787786058743410137003092024306788491177450852764795174417673470796083592168348806893886194270216224539699148602971226862158717362681687041723087567844068616329336328518460676661582689720727611567339172078125545353251956514588150275646045334116415993493992693574001976212688151913393248668008441996221132947962881275789483419541129821113118646171267068102558327350680431977027247404737932683975106271879065042304655505074243916478705136400217816724750794395849948168978768779184427880573539897733741593999872183604457169298913448972033404597777303953936292913803567114297941127601116360124194207430626093851179922435067920817293075471950572713584530695117180136724585384334172291578834644937504870745348301225924486263429257678197701464137468954176600989549301655105605015024188483334742261285140302698713721457401956124560687994949810552698478371794773053006762108243889494535270733383740658966341573012429825969075913879609554974179273244006997670101480820652550841349835988217807710458366520204065737724752161435874530023469252693488589686108283392285275588992986324286505351275579030485028503663317000765523761815959085146642123401120593086983149681068657234892175437974610883507217944955207578467297514908718622781995535991794754621405972818833106491287788642037335403723027858267104625355851617071748284810675558404403640859508472789117911942478355468067490358257112832546250220434430033240760563938216380370142767920762996740297484546984942978067298256927636137824220599451879963638847466715843289931298394307280842452205267920497485141708004275337422686680239525790050697213381364764679819454518935546536288469082293774232981591663855306057870808520675513835076222246752678391791655777542185947937223620545710566360453542248606131985271827424431173258522328155944679259468780567735369486785572798020420180581986375888463661947093738630620872094494988485922815085541847767237002812112985838247072450649165628926126610445762152914631005487531762906792762100188429213171372165478686579622616022799712971784935504963733504427032009152130281309803882854733414289308958602430687766213634610644755229217242074123053400429818152787322196375865480518732083885757254966192830231476610644394574094973810595265109986452973383809995963031446174920807707252479271314521824720375589751683123772363820638384386278843618735699958889556380474751872065085379938554011131607841577469858652378242595472036036556298693088395904138483294863128988256587455974364412147901757542305632772569968934363196495204206708452288109438167808921285306374490532402062199517652737617918445870893658380391025700502747270462237682089531730105912483339514457877076617289315740832557661520613391949083627053082530802255528954696179590287530069862047516978830275068068390204189423302118303331220843382328089845433537282480011691317700719122051967114950219283126300613471842979184667424206828366570056800657683426928631758615664755860723334492272723336891819760059717845529718835132155406011438232845427908996227812618270797380015667984038570660716574545759809345355739447789167670023532671172450749597201209892373251172474740294292456757944876711578485193805142057765655362559463413762347687554693890687294536272850452457835335384723085387718530452532350180156180250835280503898709263804702523351708698091616193115860131432215108162810708182822074212993552956697685349773696805479332683501447445708918264168071312808665944887137766875440670593860331058628072413606825498349926613104400950270757366805545342116906831457891417644220810239661205686137077272455175135495486166776522303039905078124953271999942279758965806913402987932389687013278078014186471389450429504397251572007007658597528657751335782929904186524525970354613943480918870953335374097984138250421572713320667508920987338099729373959299297370712846917898275409301622230357574929301052971934860496825973968940869023830298791224882265892215748412466783090320956784288561327540914817518245493091312891258269651844338180063666714405021737907566423453586432874831018764902247491337111515204589405216760101356542038475822072887557560253917596079651937349095277443002930934537861205556403519221009280593678801122235732097437875732843450897095654320990582193272866210012397591942723167410972791973270394799154581464921565272192734377409460353854961877617911793809250855404077381633871524585242132696020012197706367955133399587538615060737390014025691512703722927128079025767412699784046497487665615012544213947943123762301677300223586134238019421624654894040360812745333196145146505887482135628352140614606237657966262999198585830999772012610011057152076761754937635875121924871660845944164074761572264150557548593987313216724572575191006115643720882003658053632297347355415097017730039299937701947215050568705480365515664541461505381530788849782787594384697405460709507263583586912058799532697190993189133661974190213180154345270011481564189846903437224364256096871884889591564564662805951600715313777187586192790418735808195173406612068828152424766381266622702522465468707918810417544213316382930862669411188486591983439912016150222012185332452266881477972717465720876162454583763809878659075683397290436431681729955806442631176085788542911082578570502835046264138299432180124734768438217517528828581630643380792378966849743898069399487282553189358528683275842222421959102106325151897935244197432024341393364228984103556124154576776015039104128417096201465048765035926104730089481971186086432159127072878367671588684293914664425698307657082962825273001606355532999774816369504367841272409180351149749059091199725238178708785563861382532390570792124528620075046041404740309232926305548538836409358866457545218100226909529891514322419030706023956012834773782408275800332146346847270582340279435065892915158697399571563944588352858979375674404591374243789483767069023196076262781772202533597219615830645349503669856686820262662388646800236636171115948576355919051381824404086034120168439836287743438351693906682142188744076457747321461465093187952347171984180872981885786926180019848280890302666647097626878853675693445126448564381952763700727831458214438580475859285489368622018391331354583550268793782214367673866083039591565287455457238649393190806610593039452317987993037737896302474211789080221265364244182954250934741158039678265768898459188570350170903926577927383643275174232900611545580497836405847011616252356544385887532183065500604554998178725046079217848037058338293988880534147832198719248630495094176188944635718427045511330254952009000089817060796369313507369136169217264185219801313496941129282067213417706039050156625844848330359696520864047881962038310770523056724103808903733126884882095635321550388538364331889013937279789961130656241804221373019696986080508090770127283192395494301383963115062044784548628149652253312411773196725492800582258991316290180422163700643757188389167258671114053682353281558476025398627267490593201418983415947599466483850110708801218209728050976628705858547023115591276767645471107693323111082307053000176773763986910883253904138025099836838400411539230246538755286850744445399622463519397957120199575590568118199639467584906537608330777697626690883315005441765008231299832443791933162027363300697467329036937668346557488919547746888902867529738487768793943277142762589482442498067105073651057917701667479281160308604124613216947416720060964782594688636927316572603212295293054523366666829402597144433072602830358729539202394608978922967542287802184411568720410960066820873719812411899258918599281368249843356824367331633523792040494902248782257088647339893909103187061177012747265757928165626180894931200167629966359777125595612206305439316342398072192751963128987478586756374586610310591616453179857839985563272336420839440352764335492139980642936508634775164425279958889341138036795561064085424503264815092326980912482672061555282296174299248981889085957908300083976825872225659694169030250639145116645945012986168646057520750105537878943137332227730366159778440012315792342203490452308591320004276759558588177404722079394429141236470594427475002509513152177052982575412610305854762888685285404413552792415910246897971487032953195793966769610448399778125712211609270100346643245791375111984895991295111853080054714443106525613161174045256483143762323338819224370622783657761896058871912259279426861826990081619054316074404642920829367482244729981584256041625918095840943055974237018598145717569940657620963124666356710934067939845265624601639389796567898096685721447511326064425868824584510363381117382197792981953675342115430851703098508397620983366071160195159914199271793105584532751439466576604711645209695402691879568058442718294442745024688596215062128588141901237347304869427174851642396397976765671431467965254658393252280730924111926889445927512679272644184770567401365212297105983540122196937665762742346173121510202793018539760023676691251920236120233472474251716081358053806881029611962667671765161035524402857607824214432103457378738410488923025690143269206779197669351226679702969718835263633522672087812087592246346032323762068606459840651060215442008238184209613424513489593242979214654631746674406468848424413001133443981446826155127835059300984050939930459810647948749723167040928705434513380359748838726191715496209133624507032962255011132076153336951722475192840137148537511696233424851826885158599391466984334771520420107625579403453888164550422367321397783067473956174662366326322531771192958605266009000465797851301967544678350035732712433327805621575499838011669061348710526721512762577302082521849380920112616817989172667024989674323783231190176132804797814797812255962588788440179371674666037715408910889689693099115147025546819140047800534327209654538139447179229023667928361531720941181523850099390907502832282568494376085405212200821814635613019633192185467625308377215778942967007736142558364753159213610715039475726485537186366340449767662399827930139520029496056007441299295924349105897921299896242321148068599628229991013873085543304801154960134098126420636352930515331798276908493806651894420379620352869347450029101491197841595335341545027041410403923688465273570969320960107384389794082294809120199929310717974609568869163723829915671467350525011867749873426193649592354233560414202625097169477157612606647304321476927083772396652427416808362836275495936375309207632011147927297042667647823785093956129868685502436632480435065072611023639033738730704577339460017647537149721101353150093233325961832493982433143091365100199297322712512178089756965694049775497525634212941839961984032272901795319561758828580797734453136907334987316977924901386879354648560496164736848506072675475223380683220459587312731786363123398662431649711154467060998492328630956813946813937921287088615263305250862208261149386096269684921808078098539894665283493066615928466536018462692242914936544731917187997760253352944967589236308569969666576060191017158336568950752240112920258985886198599701319221373357569775058283921022881488762000184187470152492928141331985997248643127208216453477549777073217964393679752899830295980656748742222560316032034295957691430088653789998938963248778679699511685551964064993862619066044830578239391210129893352763471139417156323138812615474330698103453910425361865130129157911811070233151927278998708807177250236088628896027237478127503402602842810479083835411452960715008622654078234080191843993108687938438850219796315111716217312540553255254227150348184812350462029313857142307485924444263229998954473640014031722755275030832520037145158688030143479232892987184730725736449856659451842247674775333162059263879852441207988964983522948263172828507267178846062275532630505863463258466603859617351468792227209157341658981845604570942978166924762846716023265774725665568504914875522047495912316555760179782924489393264540407339026073787962722981056940180679669982090714366118336700346590785069651926147403582442576739045469598141696392341327918884371133265977564685718169911802748113143239461411548637887395604534796526488865002150298057686138219310462217009972019450150805573897266371450010232961155160729381968743510734858917668266247147940985055465907099640875751440431773346732397372325970152356265010785179669888030828225204660993508663713569808562632549756659135892702277210254781349208791686383746465637574975172444441490247656834817972520046086966944066822506113506417094742087035000471799460007640762348101280185886811375872004563645579277249237664049389321297838177665479773916194991978206671492515347491120174872952306081847599428230260981727463047672420318542188955534854061500856553123569199041059143242699153207507769568763883751875759770054138858691417726080954711531092561832272520541516034466427873560479570265162300208030185886177761193116203478808387476332074110688429742301584383101727327916876584471326804881261143851707043597077367676195426641553413267618007082090116515861509617480624530483600792534340225886878838021196378340497462354972426408545684755883954549201277813069601541651056796663725469877408548527957804601633965848027776718752848617719876696687486590860378231148157706675614427635431695395502218283402040605529774972475338148635586994003524000776856159097172639922447435788554267138861511859474996749556278949798531103447182978175039879087259902887502841023961306610850215213453531595474150985123264948069825521617588105404891224590956200616063772308384161528889230231628725059122584771187753390264908402584388077009284806912956630035601609799994592257658836039623259944401527819227902250545268774600787679938359052489275437579950208507691406363175496433633976565630492189482896694497461734193195595646962844164641792399680195674561947288288795514129540865123579083375964322245485954424468066382846493629516314496957229018081297955932207805353651034079778993547541869012088703005673828892115895309080789022633856003971208117638159293059140453530027444180681666846883988231545265761763880425971148174451254548299112647955754646261191705233006808643778197787921172551030231716862796207554774207586071363873274143596982933527267126446367202925288761050540571382453129520530976610342006976677459814270066374917491159398491874293217758818348214114826480895965587409137312334666695483044015680263882312578007992602977031749085094646794973800876502605000527431534839458971950852753357352773198135036255088158565749901386934933669823409331626584761647494838192946524263958136665879347670810446006398932666606398354622824701414728280610552745189368491683384834918930573922669980406981271749130982808318980189802598621114204350790428103578734775682156619472544582578188431955870629944226329729193367488654110779219026862963214772309255174736901771024285595186860942191767774422782041077924842999243757173690327298032144208767845279238538137974583770111877576559209853486822637570324029658343982658177303254910039409732095028026057925214231502219895545108207749720684565739058956511075403863738486642985938626909915084952841599448177747383108780908633106173344913398900303607600830488069026964700616286102002840309398940193490576185456136117828641811959580240009180596832137816580917206380321277819922251730898251033928504083253775765581064440891631271916014923552213519020878674924951047732980713477802143478141591882646709546261918829251022743209804501590680041510603453715479868882808102100151142443911142947136096124383278621046548246941300606997754761134216346022540373722174683750588603350700370282336589392213312654345731631906244599603176833966056343600648375355024726082687260843034490293563133001411830493650768476040212506721383010793317165243881063015363581890011854420360788320329767909030225782102686278312366000632189412845255991084279372473327740115998673433255075685461931465047026021131432241634168666445253806186549902037340199909327208485870306961846348528795389055670477914511951394123859467969721366601720303280637216403091985292472830254131041751591400629048899602767389094175206346378732966687126974240818604967392793566724853536198545224802140272303766984773579413769344207253588607126945826732759163487061986994023826332697037426525276001475257058562932927240544343519798484689853717172585233053708142820895331187686437425784593549303589919265384994877145239655305259848482141847868600604419236436095715568799780796826597827938798336088574488636656434019119185774797507084183141364065315127907514906072656404350153946588017973866560411765756065160250408712928268435414879012718767662213448556659019681873585642322745379793982201359935277218650876144625956907831920050281080517410102392405707042276759918012524182306828391259137949464977352623837454269033215397735820800975791738492507329276496968766136813571033401212192787206453460886673064608945936737541888274215475214746593072209725387401560928666166998776578225577322000681171925936156887273263942448458630585061508883810094413797841878706643552707564418980613778922392809125245710322986975340994274095248244171041827951059759792136229800071420492979114456531005697666311345800207570518162642798630371710274671660452751985522975194978889593393876228671887017176055314597645217210830656817240076702211482728643754575444966181365674649281636610915286850399197785824549742104171220172670452763375669795216660962204097123122247479839063329244112424424129588714477308274637197729505870088399737374135835686948839144965771048273152366262512613883685718198869301581022130779352189590293303951086619478126672324406809213664855653010607744823767195905055755362823417203811555330113605290227859044422194902528667565850417619004611865030857556943550073806992605627023613131770852094467041500376225625152621679922398149230869127243487368037011120475247306199961195389875026999749213066799050592606356006297117011338414886412720954224188096980804718391248917771971106754601333726894958842930897902895751125197917088393320758872690054875701029631766330218018258666511562233354628006881609203558940104845011157271160840860497508763417238271795087798546201565650507954699188019702341984853742398344453500112718444581431807570655152831406385550189714401170468865324549471012824875804964571816946411390150879732309435569317027212106373499321811058872589202871395025348058498756839494802832968184839383836810873127263539214815578859494969530299151459283447415626238381778085277773242085091590282866265265645220517999126350525957966368139014912404582676500825011777410121162779213386914896451207415993955475802487346767513468953750552212622690337579236020225377273211532747314779601112495636856448518959631405226243063264605770348826156281105495057533587826301159930521931769566651555513423222543411756803230749682119757811769929226412586252021511501725561415972430207323550011414987077415115151896507791364129850261296378859168996738218420405704866546118607635052699985430544239338327395289630059653269163509004188542077537790860327112882024343120398152308609377156439580264119286521781104643947122755331931703581382105477817220530215984332087194659991215753630213015751868970551166273697518101180890857816218683215264546017310937209380305452127047452619329916227311517854461388331883626664285085438320491528647434679949918238933581048940820842305872458563723802432423611650993626259044521305941917601157834931237935700202213324511399327906353859976099594919160418130600244313938549739989145202731619199755677429827808607534835493452517720027927680647058492832554677080211659563682647062250933718547916674268830323671969033460214555942580087499896492489388202744669271230559161811278277254029822219787101496639042712646422192238642399006113133209500181844820682153213762103351224791438657210078244849663825235310507631561525638912424147373744940565928491602868368143270473065859600426306042973453596896972930942679281397057110774998862460461484349357619848803426021027178822219201556930952018097531812874351423724010497811937258295444289026214709715029998448666031507368983959071358555485059182671991002245215162306639960657209890530761873896980254433414326183851433484349046024932746088551705284963417108028923093622624734631719225593894082679876404225382899739173802064203487026070651092392767625131573559182712882789456658585202850088713444676003469140389221850031952211760876086334767207466627404177307336359128580389862219490514140424601475908519858597037956480321470069578979192646788147872374513952996050612348473752578033016059492692059318999056594164478643342977368779173699024325323096097506420028100075405158715878324210205456492554274453910071739478873086188609234191381675271769294957508131220752509025824328812926798254613992534313831270588700742056474565820337438561375764646565768559351634171678087039156215714243155880512380901309315764869499024467569796961032216363705526698294121013578114179303776224961526701563197090446568209130656432219336907044031744037427176769681087530839386872285535427038258907097272092014787884870121664050654570058212476615876729549546847021655998489973923421047543269188379535157360556896784355633826492625200968677229495626015903357220489794681446665904201127315213708222323411512896926570559148771661008639817830604916727202782280175347163339826275836469722118729080898835031648891692572888583973462425513707297352234573031752754014895304304353529340361074905036419735593569287078167656627594032579446173214116964969623777609005916105759207534526070056073569519066055163549214367725258535116062324387503812028059069483920541285908705804987433911082287153169057798448391491182497088480852527094412519310478351962049976793386388261054633839483528669312936965173762750936733839620702099582067796044127294434680296233030054888984061374304734057753974779022595222681237931382381771762977434297092903053178108050101117013616696244023636962361321183965120102579622160603862215262792516124514304760746375602957240144744963913274346816827689517671147948696616099766051682698554988415760888060852163381783692085473508466770836019427215122337626662075879266362398299173537542007071333941781123032074299148241638411571008298712760924213013631935078944333912965233718965221339063395050517828433802270050043802175427588530996765940800899102350031433792494360561272778569076607064115496288155880443684351588339273750641398452298670642547831476406071159060572064805587051107614543705499562606965357125537019048868799613106625626504777566186873854257816153826897612647297363104730969283011243795184368677988340139328832863010144818436787080743659784009915594937755323117848628583162335636972006521258925215533836631901693422554478086973293134917070562626208322029578445129893170956568038332838567687538021376956333142875522991430136796444332303703021408247633571521602711152495390046904128241273319549628823560019469947042313351382048794121461809651043583358676377935691169657781345521439101303749116205912566521343386072290617434035501056312371800149293752257949798158467423054061457217927796170788023424475425824301160101905755687150079390607268899027120334509579161295871426964132974234653189193536115092841073710391013301021523129830653593568085671177146700043092504585573073587862424807629303061745767775552031086446653288682087181183408845120187189229060217294128387614901207413600100818200200236297835311024668919568769788915899754569680625349829645568365474960354892561198434205137524204004503474027034261548828409519542194150150030294038878739564752212835388390551219153230532247803768018732598860204995793659947044338816491467513641248296808359667290889863721632781810909145369927734836476982453206080243345524027005463038395301355306223231145630663415980236309255558784711080248686566034878779995064668719095540759777024538827271677823506676925093040652298970771930359279049650673576882870615612409407903196194681310468682525562173344284361423086333917271547765734896026742558434379062867184010495119492373010953314542530189663110701432419844654493951256949859746034750571636432129585352240825591908389389751957841915231118005521958250113916324156115786678697985776981103400498660133818732142825326322979920738878686571921958990884636207228206458495953834679014601183717642559156789965992232758354799033360947879764227765516319524579031188768360988395541664987165459647468683758736620382105106006851198892705230460646538297395108293396611174432227393753739297418738775148948763459747829400503198477184838404199112759963739897493222734805120385884738945824654403340426748087798346873911870634034899409870548768042257415056179268287902520944222204485857340557856126502555858402700622068527367475955014033676494988417298691794191135656362117033785535457175614707860689372236119294648586939263534383421068138578939716833703472683951689222405010585325139360977360722456046763107295719279716852074767922848352064858799697269160079599580128343901802612518247877873803538461505180904719831077758972615518348657993050415607173498265345679115713826165438161318560752162258028574561666650044405260262340601914892205801664607521666919027865723487393390596005424406891233948538808185341725688474005750584782953067840117204560313124082824484579469028575945710959776419824378914635818138131911775236426490362791345039287144475645304272830946501380217611709188583495386358419987365262802805998067793007797197074820724418469032044782411128974091879037565583236544734813745774460086025428688338127710412968766414415253120383221625874870993118056157285673206447448806612840435171240090440116650992700558528519834469327393476672647272993882545937298505243667771596101078767364933808544192635902211178691433528100929106247665484002214888206250057556482793290952683564339765548568021006828301994619482635261846513245884602551768603497363129700790264651070608626965744403646946280499227205073266220753421796535102560619015423827308585834430395723733506425701030720124495668517664774151247548414164829405324606245875785789044853204493670340574393956623458219361483786189643637292763446653727334993076054333513582914057286771994485520940830940689650240763714316802470933556018421776260406469085619016379316199161345842482614689920946602469917601873444408219799499063835800560482794557514076672461407605655941476040131560628501608460528535817955352144302174331118674917843137629315183727154586973362110592104441955046136186594731743407889462597498145254308075369402925356595054395465211679814351939200512471126186021661079040419962677101234554020728976068913439479813611622964139327105354692419323040458107492624573898501773762637543815944041604906775059988567666029294220211591165064541307923763405421556169843825668834990660195674196332591980173843564452098567025738217051325321317751793672023208773644425484055416996360155181188532321059318548766437561925829546674044417819484100783262344777166347367169048844712884633948189990149601390920139618282144455734044053334290079881497114597314167561468720789574495296782670038758294074428452983656234704791049919973954095506210367986245668423079644173756433899835324340011607059269162859420562303321619205725922052608081297086298771724356955973587225591672689016855933393211369650189009890893931623919217500681771748934689040360615793686069990281737114118451889472815111531174554092633512451440826464643443119592808958143863467872445569905540860339039251401782271307627122284882217055326007019357789015912439753285764513393209476346392168573168011703666632489235936946281372339852280556131802858488765211866980591163961562927855635103295129713955550029631666324984381163183083892130980231125483507392494986383065199335166865933225837000773477653469481445218486149643138948492344021721645639808717009577152687487958421472116202336335368584257665423713739508989787798510182025280342810347387806124710566673240851814068856850184424984599908812173844695546909787516084334375313541826481926539022648867937504526540467907188921975621775597668474005453056635919566783197910532211925049640693211247690805328400493674129016049654748870032957183822973284274119060839292044912448016028431934542802641672254142338811534302479334385025668200288175002900384633208536289461115192867432241336335212031246358577485143509151883315494797524334953599286955421343539788413065857459193524372376757873966219084045859350900593100230367223612084219633253209614690529120601789959091155759224084317832926887612148336669811811980657174690733206310397771529311908785072497775800896833717787898388448576435948495481176684951175296547146021838331636744107842171494148506400521029130843234373366210134586684791181348303797908084632345620552355054079248205393869866741458762601044390975592979619951843903728696105436150229448310393756831513612326822292322988345712668126222171177003010641261456767395144103398646354845221559051468945154183741505139885274601688394168895456168326452015010598954882894703591706792465808523247846797066260044202875271269586781051929900425564587798261943093712910863209382119259867778785474951215254396654572807486325180118928290152167247554066272698199461592895508786889188264752239673747258951836905919388375190995511787801858311445308525671709383235478397165693147617043293865024911825506473972242226311880041247651474719759096049600686628953229478135589627858861562177409855281236343402589274454471852113991162596846603785211173758835970539902713587514939580101959932486448633007868055489239476532912106641414423014832757253559907568639274548937712193887878107475279802824637791227852009841517670927406047649161952598732989646142514188281554014226438482603140688924681574724928032052335316320406125291479071249540121078995872427933260441813965073400827845490858001251222488118714708952937123221092819754096424529242756985447505560238927725780403192185282411765474458203359181734417701219517510971642802114955166932189297868987887031699210853993630755605005989927018758988433089790844598888187386708896138534701157056650315486339816752694115394063657915990772555431516079696385165572359841816528091889746915604581731545968853373281711419080683336645261721196036413888754009132110317637922978770992684718030692646564523856929359714887531440117047530793217461045124706289992723302577820420642010248252428105443397040240395797171347409685944106127614248354880540993983953516748854742854120511828339473308981778768675974928991683017768981295042082873841223888126350665487918047502234748328369132548795634443177638667352338933236658442520482051795986505379351838075953654242116851684650991593779022104574563602276562827406702262858926173308879630878609239551939626648262639527675854205607601160222803715507127382540447060797913103534838178494662082533650793983872732123942579462156637220687884682532261244475287899271815207630007093624919788617126447298102777738707898041621723127014135519309107176349824864301470140277156162489221366431739192094611983143187996481570923063296342608094165921892766368878958772569309975454649919973701116582237121314577276465819022091307298826676152218139125012627565225652426965688015315854598667417578871482307933219945858595589188076536894548462304411450542093868597441382577771244545354767183458295369807214585250409168031772704065046461123464494763279951256622353937557773659115556693695622793770931654928290539718484925073052155162670530750863063948873026591586728914761959606144956737978107387953325611469887383913751985918546654316731739267338013440602573520526552323509507856822044819466768101214301954481955626419078552367429395516575114320265843949504717355308554378207357141756550031399938811889288808637364523323354004346871617652176727053556459941081681225941312646393917052311527080184850444058299141158003254578188180316630859159523261651982021510382930457824233816899308796693116935117730701929051343340090406919483621826954774194984607853634245208172118402603943858130086682279231907168686983020804310816682962966165524828418236444824818573182636293811309896310093337718987872615842099669263398365950214121529017306755600373244787424906199438175633121949598290413413958402537729637178474280234864979261194774316946584689466646386387110032857605645126903541382272913597830292177068673449182166162263797545391599210142197881714243880671519383425368326805102822609802977896602915490213494639047677376593543231481075000713909451069754760655229385037967375414652518222403852958307541817601406866860024058037419918943596107869379529003134156626613308643814143561717297580299723947048277616830822243023495778657868053459821309906993793973493093093943349192962821979709733519774611545991309946259818618425704949448690404850833213394575777868611823667819962530483749014411306774748023737965512280439082466148099737557516919346627137095139845825096777119423528017282683907813458391952288257700570419598508174791786894228357069866066638040122117490238397173526742935703321638864408562159043337894366624400014136444023330337790628333665476672335538367836253553690865768792056380216232824473095450684209172648674460486576691501639374317303441310877360639210350997036030590086426132958869781261450514882332056297025512111667753749755488989711597878810012423357813749478530792439189199559668589130207834334111051184086733233421011214369485811837116099441830938386965362811243714368066372898415134235540761162939999553552236650857519666242159936178740951776341103828006761032404475218593020045957443774553204093641796995155391445940084840700099942200504682130227311552776138099871365727897832530116412595185171780362651517696773349445770695035160625707391565465710070020372494291598812590439670049523136048037909742044456261955354647730776026492447209401842903018747250269613029729532806651015088600094821574025346119372187567251889568349627477075108804110179391410280469744037743627490325863139108854741128011414405572095298770371847346088156402227641733935414900943600409048043658259092866258179151984093942295676350684224292410339855745470134827193219663493528007064483622331373322269680997645697323339535236309267390296601533835541689023983445780375687706106906474984890796863189931922247095692113269447923057722296812372306305076640033049882771151806299387997394033704422911402725173161275948597316246486962556952080579671977681475807350047962015932250715828438338131849872535715923474752263017406322053801828855953421588934835068726820616720588574411992858702264700974597901350576179516166114924089851931250212550353756268754016998029821549955849109857929705588096066111795558805964225073208017285126817803845298888128049449209771157655054224091756580116022856938957826901497839715146476722295509821326843295436386954828243563958157054272214098646815809600568439575001899820987710772439048909905107012200281173761402705925913121059722863260769994131436558267847615582808777137309721143944132831858233375767651511412278637609817679137598055986320477534174837586082520597995159987171803689642208942400847210917252797852727254266792504432335775667395268931725450397272524176167734065533185417574830378806630896063964730510087988719770512454873952291595193965416324929081162199417787503535035433582687000119477701709909798298617007639691257711296784574856891809515823539981821263777970021306342109371654222550888714888255363712810159458158043321348207846292394239951198078779607751834505361040574997811934068202121300186101662527000698936958473384308373750968456500469054177945408862922660281495113651867434807542441272052261008077314449350078322997171163557968280328865423527101019689106325638558389881703310327243934650899949484744569397480626159880354785549734426492562264698966654146988398544602698422132256048286952430229346268913459080640045861672805036307718149071887836264090681815045087698067174586198164901884397654775959381641107382134624548454407924376311524058801750953959916745709510836609298094008688071532756392192466348511550205782216180362931732386653519457366756903673281354338578288520276726724265555311141496035824797306447916999396658093611446951320367767378710756435448876219735558659344808463059924111131297781392955839962562175942178230102798914656275208091368383632508437955109063590897771954534332564681997147908593588747749935172146781784431744618156522930624384930969045847478495631453416700369316637292602059716470951397328020325927988054901477550107359845133138322149639753295009877879894253746067461351485616647171273891221999521708657783435692208235194018438069573668295299663145808503358163836525967084646917051751687017918424406785888556676240691876369576722081822377268980807178575132037820289792209785220528852198026801453259418601491118287063358676997372750334797217433672125668460536974143891293408984944712464468837447427108320593256201588818351612067201292698200839254036297115391463136306405205154307194728331608496435405916754690857595981607704498543846586870646562518124308105614622092502928423617575056017160844620702944890952822501009145171134046349911852213762338109019175853370567219333559514574022069812723103173001494416619100635720699594832350345309845285361541196913428481811059499400053033117125350390188884995787115201144821499135060967889778345714409196023341595090297372894867829928741985542203978416992514893142365237946676388466728527078245882385844003756620502258722684694658281950037665523103954780563185035884311030474192072979951549571805134467927075685745816899107320086687856445663826477564481035331724049387748457350968221218387155905811199388784384122096995584058898084090102355026323819420598337200078554654400920836368278101907609817857958657715035746916405360190891184727428955467967031494840221182830002398202672122313151279966000658685906904280140345647423613435391954386661289702144245724283359574314748912324643059337059198388315272102546546542347115692841449945069889178934048393338915865482826782316341960061824875145906903230442679691381718853792661679970214280760088315657243784271812991990632511722461765403291782712558965922374044027310349308972413437520614063197841247384679226281100028777935742950516692022563793059016321394638887974303274845389326561652392456006541440271773567392118199996602190217206680272139858546470757316239635634115908201080124751131768312277538072611491468129102692793827206904492762004654673491557162380538404703318594851606947819335812267957935974911679380761129709603474854902780763933705612039926461716310894594710931417071083326196155233786877393154156794452560498527634731322121121624135684549833945401066064460700432156661278343975008663722390394570358261705610870427449298787580244850899204938963291263289847375956852901441065332811567117705194793042454955294229313967825035002854230137835937501935448021218644715373053967033403705199476978130073159999579785037488823241174895542613807521523829361360849838442811641421110054205502134250718039085755418946075969049860093809687712313747677956884364975831763036302878927116361140154860658282766165019840452950466178651777656791878114627426009643439226041101499310832072811027597509142225654748092342163596915637850634350505490982100616721482076251473565940664638410221288057456270716961383557037974340101432724639808110109667387893280245022610553573744050010806426144471811867031367790362693582094548820618422927491148827530592855996873414823244703553928043684483639127401338824196458083832600855475111838030242063429295508281914131502693359718253347560013002690698364129251494139500756623158709981697368012197992241566078207976482273322438151554284284649888198747978896860487152483977687340184555033539162435443837079424163657245883379041864513502131060005748777899371475848483801547419676082746589492528233571924703799604805764534634566079142326605239700971561716008041118931254446123897017097885306236615603733690947912439310938315336236578918805563688110447737241812968234983298736478980752120050728719961567709477958381485279113964618594636573468617672591442077651429031370120721904957226945903386053317274318109834862795562844943424431416830916094096759350427854075053596384425811258371577524565756605759660446269643550778355739830298635115766427882123231230348896979150922891420179441525111750494369472659957162313448143528498416893673114071837555882327091458145661989208702825839298313177860275467621324511196463529787648761743270523126476621929680312096189655408039282338661021483511853771624623518696600274914904700378482977444375482683747372481562767126445886130964784539879466331353218057867574024290210303943634034797110533546993294860093183489624481078348251880057546395159652695289961372732587576099140183128256874127748390544777020792966201840118529020286436069683699438700900673931968572559998724812851885892806947058901023628652211138070986647437486285306481217988140021149701706818796686984539662722893025719546546331843795921433341026732165941752038104916311649995240586258704881110710978369403510564770172237887231244738662943261545735166805109500045320285219301904919043659884178240192009325545188860994942975440479055033947257685609029552205205894072936772532112083995742846641005801776893432161010621583476497910481573444554898174546356739265033690844039139332689305303865710655977228193589409258980789884580416388492729558148858682886498223338266129042287207842590919272557114507103381356385200609587515694620877563748594202927057480696117802771093671042819687174433233173760384330288971954427022044138652884781955075577635821485192811815728999790224636904279532867413397600428864181004518233812710404319407787264580310817218062956908590707015303675188603334634664901422193766450946772651679059959983617193558653815950170832154569475087102791915524790204858778356088143567318391219137650456690951487652305167853697252861535758862224918796757944514557058006821744643207954572340055935429176686807042241613657139803357548211463982194752152401595848035485367986364320837496939532984087464429294833342663923234293941402139978246029381974214711705386483521937411558074345874544254123245441602977963877805681287581853977890270990450189666347585730089785337927308589285372679467692768546759890550699363132114985725287068037882535401617823729287869400541549474332688824663755429547250916550715616183052843173606338899524443468558200677632318166799461139707252308434911027980104392328342135015609695460949667503810017335336939487283838881448057994831585885272531967013419606657745733702640463520114138206954290758251192570287017546043667690218015649094961013092010207918129464083455380830807552419875424984487728606859437946620762345202666293440053042914971867181768827208500369446870684359856253719023953081151674352062166927301215179821855792596960866125669702245410489592297473125765922155478773997495396190659791496953507217366341977640018577996737046783252137532028462547008526336541455652396437575292903047720591020666722995487662222993717902853508049088487571893563713489333851207594091415235297330643279476551155292735271120420283828758474919784919317674351006855172476469698725428008818650298565217860781024459189720705708251345959457929298565955782113647353433238153416819972336926377062593104009878687071399742580803230332735673560937027629550554589443138010104486893213643917895637456459361313889692028653376803090536664086820598793869261870378166335548471423042282960052176545781630933008150266609217334908394610424384461970506181783707612700842735048028703944852333598645938454633998231159501969436561916199896368186224877378268017227485141301541067941586813758964131269591111556824812114224962772274743469529019080246033475071836452128360903301140671378811503922134552886713750736314006609168966899883201729832805700700057845525384132476101693617660997698739916060851091480969701632238631551403725116658930852528557342779179406005975424777458357481571204298827911784132007861292818913504308917562615959082358430847563936698234904795525051941357210042452182668549162477502672176648904263931813031099036117263798177927066156417411522623092853801159337905041615984252614442676633766184814339339836778721019391676194217271193884208141741939837699798590573091650431515263305967232948865412864382708120537542715033791355244313363258616560686131436317924922575566903567059713319770171015331244709533276400038496247148362659645766170869258573337684608753422043243474042887547425984313213440542787715360299939497170466679736343281590355932838001778522063461316392880200545493926126374888393333683544293222818748175643956741469925759760079238442287471300462516467826886447968908936508093318207134277613784396274240922753026558193436356260800759104496492283753176971126112137246962915619214131973500983379659919612902223512652632815529205260259658795249533295053343889869356657029027059707332364750234323363521825430523774219921759972285515658942061484485315984260838871771133021662537531632348730340716262041702827200643054007698002712018084034635102240561923932371948198813498171493629833833843613496457120459569156495055285286534932355224267402321193285422333890241083215810000276593794266382167459326029219174366333836245082303733861065821130516489260590929204180419901870489134956593563955244749955057528490212772698411787994069451001590083278820384404023156316631273860264073086372773449517767014693605147016908803101953709942894921246243886444986979432773299181313673017369737707555809885402360674770724768999230289437742145561802238604292763565557027001671934496520324015076798802950487228454048750972931025931280010810716907284238000434871838414755941583580216907261953509782868803077238130786052112400018946673920107330390427936408722669294353364300693411743357719982779582454399366664151143649287326828933095773894064268802602387247282429807138492815390615375689388615285289247363529475100206162968081884571672275591254906435873184130815251875373622398433031569614685479339209070856590061936614196895166722778711471360654581868766468702424790535350868872357981252259556550727968220343570427459072152348485397254214025783317063999092967825170034674200041582204727895269420262918594502877592076627324422443261831531632098655803330850549064778832585176903845708217073766880473512946228741601010761312973385956822006922738404845625868306403836112838920424690579384751307767251888213009780467980892612132969231114435161829409038804467922464594630746733831420514503362417032784805140916429543505829174671434270712890586770936028352371250896281889187278935989598094045364039443541417522188936713438381773414918936894629142301225849408477112872577993073544496372154262465690465840612679515202851759372427083130962898879986336580463800362484295039195488105442640194091068130396212526817075501323055502404658624601319428731222944292299340115410065008406881657816006492828475294574259116138358194123239174688984840916848575056522522635873401274504405986026889580695784862756999729188966098893001527933737165125364419541966530837766262349903773054318630095183371177394530913105795982851906167189064961448673181916730317585052281227661318241261549843141762701400473354417893537960971862630942637936206323349924938840838524683910595432276468136022905585103013916096261336268580082487813660731284281848057675552257343897072969415487710974831139492668303543954842127741462810246981155523501440815740945509694351432309153975454667258575526143669163607605416855533193497980363690510492595211643952266550885983369248073129330789103130140422289579442984629307974379172560424347381436209541778760862453902140144795537275364889148144179962012115660574548250147790247348522682982495416735878287962072280120331162283289452510491848992918151580918687981958719819550067712081418095093684683155351182269773852921076496962673006076966634569640541379624960000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
76000! 1958330101568225327858578173752158143479591924026540354823539783306840276545531837118097094828673847149145474480693359156667324319581058659116246645667776509533256681082589409009520034491697911925184102036884145640221375167981522222828829293879454877824410154957106047518844889381264225555695878861386856433672778632436819567831120382121351314595476062815719729115077941806416529632372148720869749284402770020914247612644738751726452312282703550768002077010086022316809593204692774825128178829868023851171576549913119285408378081822490412371044421474406664335100806379063718274391757633337037790153484173196869057226276326475578854881090470231122786596841157386396202618620596897718445106617050914568185453406360454966229826706742475401540131994643913655209524702464098058078193119523855487704684202590828202364254393316931186435877298121344009201282230443896370430011887350056975664800093053476735004746730904986932706462666220321911862661966297629036257335544936302114121533022080738383882214986073719048350271753011033802630911693193717991192740235632064935419217920267340553058769692124497632051853010492019405826191222288971331501852964644077347669131219172736065208558994117575065192219729772763958307265436361252260891184484348928398889291240597486202445020439880187632210661419605109457311277622640522075979336489136066965506054597818618202235052565935165657161681274607030295741761938746032282187878757541736925789688728009927687335150289252272420484729260238323177463342987541156067720722185021226990913596155277552163778313238032831835010380283896928594978138591836743593975933163353635306402251448817917934037601230071370707357526584892216152373124210930824333695978133082876792982081308822576184090247773838881635382568966017148081956177438689219666813385238451041187980179662411854244617125987442945341483930449289002255020234811326267484898286220534904966467203178110584106814141972511497761040032919978602686579327256761766449609486602062766077731304731965389636630122410464052107752801117330881269035567913337736501569805176353324208295120157284950024812824797606495115562848248595267191551599522162872711720538273432205838247823232388451367814013154363484650047504080357427453070892486403890492433120713410333841895307976884412356492096226393998195006485756098031569723478945407864698604713887452758056232051241675401050142889757964737579515450895594755543643900070604873456375067324567374347351324393267256575072411240789557441290875241141000034143941215151605927840938563617372370626225685632224642770079678320432691989133322800660233205953737267076984986569308151797833038388474079652948289262450075927156288178837716960174980171077387428680936582474418480366718872738838064338841774572427032654192585192995650702027164632242740208996009270787434801115183831719708514790947879588662640715083257199966526673838331801590166041472951427249607260393745326124139794738558052032579741647793109971639022914995519532135415432805719745553860983456930492525849890433935485630013500342597731109787172909494592370522102559579909754846700555447452255184478608383515835522172221314689357793081983072914105833650218446008340951335787915516731806665194066450282064256078066331759022261472267082242088607765312706360676142810594051387970257113352594422630428455335233762867712578744365898954858934485734303414387940642836362589778143753432105327634613374433851405465829363041358255494892531696394308557473156928633330648495258186255059469212341063576076455914540430539575463432551150515158652143161775844524917947173176192114358541302405405218570046554383467954321620577205417741288440483107321270080841790430634567597392869168168256595359379459145001054441232698050474456600149715305411505192391611368972449953709993565550106269355448528506829699752069931373663846224485778826420862611132130309097503855297866677114975622210413538542068642717414438347398315175148570540016618717110255750119853974137181984997314399459843049630103204538027488222590568762748224020407603411967392278325282720508245625796175386119244196816384014918310936915367119341554583775669231046701585893143490263286847873938348995790658296065077166086449623214522220840724579683698977827272141017597910220394418891295620055318254911567730111358761892852147380087233336047102049362363423079020334341066693677872082974281047607961593982979349492826439021529955599809020184927828999707451842424657344386308935851172409416684959898267825568455420163598043581015169805827661085352107734039506549888126666258545609239729076301172155741683107216303064228015223157709252787174026824291428154525746065065483752322524113885424553068718980392069671531636574827588246143895893111584199467734568798802255504454918379886183669995645795925784335079601832010916623269217946674482426803950956040990571178886457962710640594624166187432953965783592268036933365724334366378631016589481567183618127485630940904359827404908963742698111688816966315296764436049174912583617018497267901155218001295487782465685041088724043259531925302573012807864652700501638322914112412756462226157091849310076341277813104405859640089835989634336131349359250521824857142031544697559983407294064222662863341391914643125809256036235402523321834423643411084002635101528758693005027613611778011770385151465159506360049599824569638025405995910376530235738115915210996615606647958798778736393111833009620294874410727792107368717618678895013397761013891287016480692088153004885435490259224608845560257064092161250712972554092138200071637473717534694015909168337471896805655462612400802134393191809317791256733455174245338139988872811125421784392292661282744433580784385770207527183239448590769638147945140416605755099487845710198737427680474902815550023238741104843179295098143233768847092081828893837790250214251033826022384720404730149380171499038747443831757932311699393142335532674976500423044331446799748132143807154938162654397772193521069159151208916891619872320114057871922746733881093968113447243632962096818193065287371072407540014129174885985186047641320942784882756902102059920771624925711743126562080288743274984285605272086411667599915029460982814372891786882500152449060367156783264964768202754155937250960665145159964020861744533194599173953787697927152717803752577249892127002640819425313010752955100990574867931158211780751257322285594231073749719822955250691165733711867174732632615077055166332138960497786162683440275586279333010291884676071947228265814347099751923730755777479321314163473272016597388944282527084581903675073403652836439232198688415170048688193929989118482086920707516061461609183519878137064716626773582243827779541570615595625643344147878074456807766340239426252475656166360222318148748376922743315564000768208063166236463218961231736561009228929608389362661222307612826843574442324000539180311671199915664067171026398980774571615114093713492463772165529297791644209012596171010871795435788630512138514153834012641793347539127504983510520260239268336519616888951207163011920343086333448975341072355025109775970788852664733324306488208684243803705720869163109180807996015791628522115455869365318362686186863393573826189691661763750960393777966271901408389278352646218159755276662478134994892296895228275329416924055109906324546839122332914608456560178316122001853644084213700997651588113044320725873046145112042624813661990480984934490742194659099484237761211965613482956560249210545979729728377516519129815829054396857197358304285011112662000557343813065525643975569497395280072371686133551900947394094107575354163315929778860057096544382444527465716634833952416715618082646315431300493615029235330360243186365221733984818570060732478151209361105577054995283408256346817460022823355632454768888929214727520731780911657103062827726125109389693761308759834871848253619446344902252228956799698932253343785402043673121713707128720919903235636655276726307240725992398063839281403067882915316080401382628699848653854075784585206300724167516074982939388288882068938904408795820700671501132258196000497230034677177880445970547093483819661417910988278296064445498863291203136403628304401401660877744306280940080108766961953913342467486342557373012373061778568386750184831166394538017662918001379861149024313674811179846059145932881715016323625702949640432907616120423308540932797938444634136889852299610056476535876607939107133454644937444758012984780816577094943552695095710673598813746398335422367553593790626423404805961625233427114773551208170674172167334650395862469242048681981002712260648829078784239515635318657497989156560074360861942970928002174574484732617346508757806625252763100123273174796744579747241222779631423942797502435159303422800943118370349504699896131242279910727663457326917557472239578493552764260481755935940972372513785670267144640871065834528830353826320632905442582768409223687560978318374970504468368764697248750058603860851659815516876390903299863671454791591131094368705026953915185722332400455399122038064261640048070827168740775492217029785082470523174318641134707636243658699929207334526455634917950962835515534439149400340187659909795978433291873215847958299560832667660111558313442777762812766076732615788538676064248410678148196570886566164364095045833720386404150733376025539934719143798399944238220485801259425470082025120870673018075938414221093260954545634187273060827959415910611523197850124676062874139167431532400157154663549520079173114410147200929617317655343297592157424650907477873331071995261933308998281629627632336825921125303313776381638389668457448669458946437744709571340828185045006200233611230036410446475186681385561611077921026752328132971675567483605294017380566137216795929746488412374295050846492808022908653772849205441165289521421450528630705668032497027134507699668915646441604882230842354659272559087235953243585416318562946484969690624895368258017618226715110307649484783157612730078549601226235353471660182156715569853761104445492789260394890457593482827385563439861199351715134587247771907439193391190037342576658180703244028733553047609006838845965102572959363619896643490398455035802517522235788204033056690379076898082244702132664936686984968649467468306091891377231131218912075257699048876401265145843274806930118257452604876527048804189177394800777929493092202741377008965013137016172315157507125480269068734919428312948580908415447014181776258610979592798603376711685010717737264864366809827007786214636545643884331113740422335711206043948997854209184864195098791541319367756007188345896448959621831269746375827198190698224602778288797790616167357789622934351840930920452279265059179355964136189144366684938192234215080919739996797242842776011333509183097769738895790878156895664831681536391448689328539291826818365880031400245204932179124507065233217451142438559613448390786581138910001545873457015997827731482964899988787230790233296397292175714161354605952326543218924962068554218446600039909483079484456867908482996961740958866435648620502905218267676798609146137563819170870859888257631359501597458012326455144941122207858805601818086956092913296678192555988596996482669902958717501498683472452534517956847527875917472502764990343208428180764305206134828020396520480237812763109509160426567229900089945725903576754781613451599700776765991755895300081245682673005652613942143189510699725897315162749440915820824724059344558517140526214046239333174561418027345416062776418853030827416341826702998023593381998102592369703061874258311772197568848149469343360095500475895169324396746795038330113818198269302800980785853277343922129191695177204103754738694850497395108851669698524766366934487100976076451423729194178487609273385848134104913729204497931810702022712071921140464665030743971512992642360182656354570322262895477463357803727248225734950758112103898186482338155079954081024936303219628143220381546095092641701905438679300607732619363190223539206593001452039545167204576469433073380819724086046203508208247696999432492351881030850410354457920888929169063227450171001604739392309229064156735644001841672612722187192737235997695804622387326519472434800499235278566645231215637254084708609973592912139387741932474405698929840654090257536366064949840841954498711921438466428024280953201794143608298739342816654234160231030112269404149025424692133599126784203630820647072770006279005782013204857221711228350428985675976721383151398702420564249631075312208646132358495678872491828772386134104342626538857901170202643312954865000098355415583090708011307110196001266023571324247048082363531948234372825899970731793222702479813719151602709684982499402828288689860190486488459317952685680503236045618499321448725137589392193947880467819207983177802162755148976273059255911819286691278637175814575227896832277069629920559064504958685959496389944231365725256799968092406455895007317128879320775154078479127621667845046555285670970577051421732719541613417396896194978964864881222480444920839350167277364299490691461735134438099363110274949869045361612897987462657712101946063414711699245256031653901094892350862377039396469665978908075473680038907120034201160764399676289859992222946104586786559436453067790169159577486411100368135914046411919320282764743286946818197293753257875568868468850027037202426047197417913168862629438840092764653181346791657091072149080833575990132760304173014285013445822820799984494799470541791300494363172481760615574715876528271278198750578415465967002888265670832339805336096122023765028364178186621650251102468846648277934256452424927351771705120979082441402346200080762871518938327728097835545972944293303808600353622733849508824890947898733839511896694661378506299449536478322582146459904979008263182879761779361843438182303149011271936965463406498186453253193495297412617775767356661759294840755044483863274478510421926092869835463234266054846423220599463644502455461899227584047276417158952165441818657916827408284720541281469371192855156780814105644189569700722636230942599051201211486524123499809220965258927392695657360410795571301684505976226762447572443306772106511313131939120852452276644072034591212489211368136935833079816356128011420594754988050836714431251667703812213697690024893879651972103510316399081383404160674154582208839578645845863529202460637233313448254583644898649376215895706075555642835219293142799697617809916243103238485514000416361155897405315490744606772219375533544619533804056263240518856672964337509393340960041499679327461191453125155787026572105468148864816640524863002384107027046748266545221596814236372276739390465079781698639139881765006299582481085958382233052883875725093804455222200149870562280322062710810122346712681366986248956094030534838200273116470433198184305445201120364835076362098226400740540972932920374650823498072444018593004881109020487379844053562300440688515615455707113346371130243868347637626481994800823158159690512275233822520928063758569314410434812766167113744851041456939874784284047492581470664352874369882097591475108822777647703271132816159612995547154992837662992215001796141836767603479351088269656076367906328214245056305246090286546951001428218872888798534136516231455229639991679529020465620435849851356941093639729599091952438430028399020795900955287711280690639601119466069483816933839926212377997820627166359070202176636656102103017307428538299103160702512209526018988561712797603237796657838292969427507885106050052492329358683342395329492270787665191869693499476335600656777388255302542428716012273564189076173125613426692947468553626868049374979255536947283178333372694103766108916531230274057388675579852105087606544157129308204978703153197345403085254352196678028289100124954466026602078777815502316709130269825827225783848323703139552199674260089884881481784009582286170889337101163265344901059738443012590679470896788502099691846899297447757563468846722215654285519051549640848562284328345280924530810545617955508439370202515789177945557040248939093414340396402470742074847266129290287400330174414501816060184581772744697430148867515327076885017096057091213312650362095328053104369734826660675565841284930286829975151803970628478545133844132611569925762427286065158500416974656828684894101381014524806861186284210156205404401617812790114911480445742275702586868247356528948193235169545182413775037967013577554973835340682938195370351923694085650355709218380445778954187809125534993755279418144589759583978522723455163336246786819378671672179108956254934951572088159958276051608160428344454559369975973707664187071528621646462132041203297444542306453018318926412165014199687406070897391839413169298216084057529454659149007653956036631556022806126967078859717493211763426774306800069990816686653154852789135310207385651816949395024276205384367966760211670011321826916774043950204645586420161366060922581478521529315669905373150775814332278778132097039810334610286645172321390254674520657582417496791898575630338963606936806856493555269472725340329268658436568692506113171337197347470044720525187049106201559688435485825386506739520717764325333984461394281145702353557328925284412197484161382623441491684661781781882574693877999913521699402990405952829969315328423472785386353909191321525222752013117426052691093732784959158052156775365555944827735506805484346199170242866388898503788351529191781240934952881631804253488712647434647229834318336804498296754726622822146354939970284546900452668204668275343374790442145917943278906586640221627276585440585994655040859547437140646351379122297385053086999318912706533357000283213175657405289790394032306194456506892387619915582214267505255938056865924837629028488624932035125397080393033039987777459824311786984840643140878255246481745893971614323015505837105125435067230455678918745379662257086364506953665487722560221305575639453254700877857684087391397168580859289117937681554882544793144742592851286032963613311328997847914900093635694515071147349135807340608492931028781404453474518163985501804423419866664845048287842766512894684139767926304004329903455965802919072893374039680395042874217196757436128912131967099101287473180927902728239991850477761794426076478760065999732166998408179212480249776324599594284811149625926991397870619334189520280591411450104917067280017586783824872360927766823283274326611316594619609448712972141786050319725977406050991935501953480598745814575029396738162991120436617582283577318990016524722879993172260373949617212963050647548288657376006287667828438007523556756378822633359087605218804103698385023267108946516099186767865985112841126744861043481963288547482119306956678108248371607788751480815544360093571370837965626894606662567903173596853319332373413283870761510318437516886706149135990242974122413925160366266219624768305099424657507772875651092843495049019336318099674853899743910104019255530954958341439494666979457563265931218383071661405476886022298972094638115891824188894735728021998227685156814225206902911671878091637130873245899050950048140226805816155642512794234981931746778316755044756287657929741960516871434997510924160827536831822927130941963401397323416077492322668663990375304534465679546958098762863426663764592225435558406571574444098989171464742905998393549970944958865924752347815896335597906239300262381565337410375616081732078255769877864113755014887820696911462473960818732625116707594646092561731853869921694888004773795888526719045791334052309112626176487461016168304304173498058355561634662957173137748012021497989004913063232284650381828500782108276332954985952019986659361484459603970905354766612603581757557965455867809688045958934533630288511924194826768317204992812091514525418557654354914541680769643922609037274573523259289332360933977871665043002280888473385882513456625719993435213760135311575672590899273976421643373440504406626048126287839381734802051463110517114732413722054667682521339834650986881211371127703834609303246199533271410852108717819334017774657427785162388529960812450201313007981434170483565331256686837903919386756748417750534209691495244781653808122110239831052091505623972415698534287565197419602147949386743749007623980225817730898581679035250013914584415818103972512470547427908399855048335753359009306539428423630077322371836975518144832792229753199869893079264598413829244223514640397061932182003889015326144215448314130911286114967823149977836216452067282485679956721478661864455605809514423945743223009950591086502937079957626928509363042889019773951633490192841835054887456155161852391969442096366135288745174296385679986617407604168205105528070812316722344216166262411942704776336357116061792972883285040561604565288077490427223152800149135229900893001433815754449179424788825883554809266111596246883521429242534773005177312554953282129937479279439730999012644053632830626528274898289501508684776029765596027585207052139237387452023783620695033486610047440471105770313679812603583111503907296249503924085503480538115888926634755644493589821778525819999302666346869486861290961481626937782813306676116422302391039500737553789914161296937253965218396444470798850619290959278109510846890448183430621420906638830829869625620750534648458403465195687211153409956043965009610261063006607945933311207031965629070075535980099876570844704017346163242070490196139914251922624666637507928287667983698778394891618337485799017082908407026162251402731354871754075332719232426750193431687886617469373684245827741237762436784702086419910091055381365811387959309578057841637167649469841847624386178793324993983085029431132713742472392302346977856001599422355253669898866585344505860331206123367241554655511924225020271818026417221309593704266440248752105135451428947170189081406818040305127000959868235547447274094623001235383795399024517203482472068526623552607169439178081880284691597526701228861594367103536650072867036009509230520109411516561267642932685829336336316115108938875778588394512222322497028946204569815256057797804613965666332340103913206252922334112882093293683179637470041687210170390286690513074406497078299890384082622599203119280068109997308846052699648012238577276677825237142331245397769114818756377413242001774010589458190029506962379715428911260530404326630840666586384625773150118698880447297849682711560462529136670523246835359501980031212616644367651162223864026502981427585285732844842712036761921196064281878802546137950309993176667336073980491517795788385583952270503284828877141362176554467868510400706340441286187364408756758557323053058998044684969404521071627686849230581564486833736813426487948828904403749359033989186678310086416202809399527329968153979894868867820377521897141741680494822380925371024641923396556123569707725664275392132495375857827727492610664431970656159604620619635790077322310873466618750079137132503523197280086402189579521347682500721720675820883588085503506051402013111014790696488227852629586429523105441020383570329499843819599199412814862944729099140745885351724081616901389878033291558585041778076811087451817375595041993444710114098397899726874348616100707046983338777219551565105798388643502230641430949282299583090967941179680421868210340551431627135749696605131238686221976202260632371556878776073423941956011307592578640927587821980532462903441904273839917707294681549359854761527124960768371800703894764146516565607524200581765647927849622267463378156683266479431079363215000340924957384939938789953782110491511143163617729954932703623209489750129819327262387577273322522081279432546173102701405738797675160496994256104512234425705133128362233496074675011457829784606784831235790315955824967143144433750155656559169997930472045758686390771037797283319892039272470396756010480542904352885511809040186007447714956371138634092289587567837539960903951236969484123606934192087630275007680599856602821941374392342938892654393107807829578020730716509594025405572237697036709155248006912121949485339109828227711632399016701887892877660063773514328982543119585631659811351811947601244500191177219686881879958093294448762667888671440355149212842490452768337862671824621939935062438806955721601244368284765963679124930226026948491956645085052039457594736997282351836571362554463976964349806486964231820200616827749520692161122664348989547241304196963218619673713962166351391049156815443596164787845466753937938334661288234137553188711062389944933625880514281962938960857591254676986004050482486991438714111590197115979776741610235939960069938054383147856257809653006001193863572350922241728761183686306949077601948153574695579257754873228813569754780865969435563274880421053580662044497638318170074168905949913592693085243701503128933344357442225830278001823958539154932523947603025242625950247675149490736762275469840401690456938126583795038446046015428584748145399834798994214927541849998600278244936814582581448556895669601819779055061637908860398503045044433903472016593429079462798374869619761778314945843927110862160927448448181273629519895164819655687285565239845218801711822547789747532517751292470466976200211489269143912371317522563858926337829630000745184784721280447419749243036753049971845187002284565783071854890151824753991084143140575775386496193708231624334121862342177675518474001435428276150598128107249290255493744951125628579947449377775178434650454405091494776861202301607708114959546893888834299186837070780117065609309654562259653038660028707211722550058134497150792768809755567971393141327961689124870583475128076699568225329972385347628908861214848800157386427124028225755714409587147325497563532544904666982850460360939748393279500276815030432987137364385689173129972600775680831406606050886519565425668308778168007178440466696260967640749613204182447974451776658866790911421655654043370576674995476435850297994700556012929392256976281241440993970719647005920893838607124047188778582448528176255058192224855383743330626366555716596082985262197952683536706418184411079925436287871546913312412726484424197401027198862819130067402838565092770321180392637563346508742197358534185412512770421618335770653461827236994196914913060014621580347446293206794291268051001563225717721876168666400784803336488426113664226247310572810181465430220555016809017644290148052328121096843172893504312985192130598725397177846803303122608123664088526922615173774880363570672103386510526724826301264775641955312442870178599977781150308354969895493000393472936532264607137838001920763536409591113070194625605506589307473663301944899442610232174867464267067066160748232905132246631313133965475371438823545921060115609553884859421572341130486834391135699204717185055752901125317718556598115108628483475855507982907475467485323548984537799419731820010701018585000736449452151612969212827281017035413346205570125669160627241516788067662332099220615677640585639700928786614014518533873413030398208985378573292768126895262533598295509727541756059971374153192305571657025461248851215449788595305289662953489955092232947438391337014763628143076113097196126317932121418900362985300576147462287135964707371311658974837775559060879747993024363928686603287842889481408914581683639424602054537690262747547049532199083861574186724372020578081802417132740044395709040064947034333778079459310237390377337416465910008011392171833519713296733610375830407084320829727964830128616957766350763725786976076270220744233589973213914603071590481811377581011681315450556060688562251847376687008060112330475221546026037895077908619345060974733504921640240916963570203904375789320020907650858708326111412444409229445894342312325113653869374756338352966152053049210330174982306829241127353665742846458834620001271200208513337873870318580679309688230273057434821661611440549139188825717272774772287082382270782783911833755141951925769710387995015614212412517286366857575672713344398355541720587504428745895086881795270159044113179358571893132632734525224999026573906801723597609450497487332235495852699763798754302124733160695607955513130150817071210680763096960830688963304927555301523934811178906475080939739951999528461113338354650876229246002448385152184682281566121242974374835100745856518634686249576994858677735708840254227875870798066142029780436100440956196144289267879573044549865842882035666933337955973285796148862239047103385555410466850964426336821630310893818415934522076969707339866714122705667398369073810699461947367664323405093332670902690863699510340130310821562991458250598968779961317719379469578194966599648128939776236638223433505120282562739084833247307368686635579075327712828374680849311384771759340968770946454417589161334696594620123603261957720058452318859887390283898495336920648412000354772277963737834804719956220376398425920132742158362569415351073925473980838438561095354116913419939005808482291453026091783252546179839609325497825696362821163572759263396941545621425428247791671346219139068927997692414480341646257020964293416095686962454132080919495550561516388321655737234667083217511208620672469383420857585284222122016290517204938894640425053318842151144284364865898681389852578837978502317293369087088539254654922249387202622058752888060794293536546276745383222368684389570799995589860739970570059430358560108457462735693623757060160503469838150122259777350268396438400225849096175738654890082051736169610983844667345574807254958638689532242014506716580831642761992853796837492211197461848921363167370116479933126637787106698325729876184994162153074338125485702324274959946441910711681203465188081403896652064621145575821956152656031732016744056718149315203037005709854436168061977779728870914781262114229190411994958735780833562469640504547180541443189831213751825244445441586983432983772203506314211043568502241904116914285868394528367813906447939226646894256944925830779610660422324984111196449015945895641972196865018571294249998743330654714480631355341185506722397781120705120134865950422051435972962969510284006604540169633759673838743669820861453599726205095560237333035061739332406773068086936605692214197085799458961619701276052954517968363615314201595837757687285388504002471801405706424967925709642051399511532232846922896314129786575731954263203023588968166092416751545815874337035573763964647024441392395891632250931965413483791643103705311457411021816897673018554930496098736761851249285439465105300950522068686739813772944917594993312708813341745040607884837495758954440195814237185381160000455715877607837315617086441908003942471681479615167815178128581341465515584061353773107236745668312557249408002080891527306619361728697941781437426935337851226093448498319915204096796001342116294732781054191806143773889022825785582129606601814755259594449332452272184910395026574311982209480761005333482630545659175935393365846431033885664458188859630438557030516903548708788144542461686746084951218558845412251543074521904467045237676351881940371803985643083080842379392112350493301261950606992804572805633509131551324271386761894377888352591213452218135888582752420412546475259716606025017418264515489111771554703453362623835053935938853188043893846594995342136642788887035372404767888730672581663909237374712463282096712271175822470283320305200005815221329016886120725386139243826917593694610196119249009381097220817939785220837625224081623945288334053130669505692555098058394735957265410666768995582901331509877145073250372232239040632589209364537701425525739182049377944219872084282698090724389694720621149388434389798375966339273636820811921114125117420336957019624661514645231582213666626215176715668639090069580308923673471237587142831251046562469052140024368485600208994745706051996381485163715497446992366981479647601043377442677253339794599464621149086721285228553819199979197795444463942550561407688121155675568378951856467542851604601348434675055567910338872882587959058135010375592861657995631803378203461313093119029701361916585106954115352431114824909982684428853418239890557565679667986864488361977974133505431922240116888396801925800627876136574428211794526277269438779983467955571202191564608405586161139426620013563895475581148969566267634786742170102745777053877776505258496063345308105480231148962885287091526889983754421111614876597741712827199433658707756620461781810237641992460387737516768376373301963026991502074190396276475917993116290277483943900405383025773910087373700755309940720378246943557401124386797424645313479749343468699580030142653506229452488337735759523205123532541235960549362336425941543559602415177022797028209634619299076496600395752678525008359884191824752366612093259732915023974914571941770002046006117585961717297745260880754597105681123338636548635198711830436407756166235176112916786708737888318465318749550944452337902283574362183174270182972372337530130296377780749926273764899590155938621626051771434934773063837174536024951921567819443466509591723480982101600348554129591104392772472997557267184606618698037520944775538051787627043830697146214074547097810146657880034037285841328302971255556603271201143419490771129917890787381917017820146603773678358157673830499260829961403018871530510783223995155608411054080333170373479247991456296557754367784848370397170351968761732615885193442399384467806050514036886980210454357377631074002044193777012723268241833332420899715248569484065258945127469762329208097767982353048774240197754775309918147375878098982482899451721581288123601228980401368980476699351045817631988005087245466215836772653308716443784127073579285848607649320948995938787208147444337419032775629539246397578577327457390743439389683197605125277933424867201163740771701925953401188220947013938319011300833777244108581489608623660498900461759745945519432029924816770355773828995654396596016087506100765453241485821668534820602919760941785377876637602977857339624658194691557733236557752979608133712143452901702824149370925472550507807328605862083279767136775793100177991302511928108380619466985129922911995115106111623115248424667708461715885187426765089836840957788474843513108136172827982848563024053261827032532858768138705670807783262313489690648378757153634419171811497231353789994945974282141836432986146072464409981991717949395855677442608524840758857592001427241996219313747708647599599342486093772530836626603286978800842327343219375771149216571810274604174569311427432273958721715667559863973201705275427847101443267837352988397002478270765912738882751290310647121270368286078125372352153900148612596536410975268954247644259000710130461046626885112890825102994089178185419545217073381549558831845396515976060041186235788047913261466653470356475343426802532807109061413190859373449445214426231059876622588288941244554243773022928660755290712668789982223750664438896398941850298925250326117587985558257463193545787439612448103821317092483443283374817708109647492083164748855451276881809978867471772005213026809962125528994457487979641145695179562753688809531629356561514117655824680245297275423273859338962828614043636338602072183242540170506113469197047945362442441186896492909536582968251118374807757725534470330758258930743337051794702198606977010725309894168263464027645308521749324296108914636670986557804495401898228856254791918235538571777975015232673593460217266430762115041102854432104806932659190579661771905058917181864787881669065795187617686076204595456943488475459333873543346289728194386379718924789969706267349602277606706178018689193937469925974334893165144657642278668634320077202796401347506817143432851536036640911018664785337020814423898483769306490176880113525066810627920095382675820089318242877243812070886310437425494150014891150129482953175538602482171511340035670312317791904534024444746474066422563886683501252562117316795049620326507156591093067785156868796411192438072945269508950465478423908765639077951642669281046816456142259079255612416189909469998204138568375713006514260220864323697902623108670820372062315683002531514363911769621767716074693071607932921802767083607032363838236403181598507300313030815260326935009237523053491277957989979507222140065113577072445561560439198054482414894901171105808961726868781812124804374580122254740230826538740049671230976796213993943037776601413905162193956832551746935894055657707731357995613623392578632190986723211663186262024517737561845921164463925511761068283529188721422809027465661123905618579833238115776784921719557846945273577668171536218181245499854962132118209917385093567105502669121481798011933014387201648683584846746400896407929771790916205769993480947816874925041085257866588901426314765538894149657654036492148778020957264645349025371436668600675685239467096636253016796029320153162475140259122890659327650445904872145371727484402295162333031341433228608672456142643135680135835290877038055463479212368498287199642076549012853727311404556378064142955712235041943367550464186799838034781013506702460956261809314459691535982636055921503528529644975674000982449453608735502478946330794293728027431454948854176398888850824682065215712571742351286467317549898944543289409727989948238025934078230722704064817449951721549180812755038581984701989654649010729417182064532634018260933930746553155617673845200738173596103181609711238733202158311149568512248208456171109002430920095186158497481905662036830489675723056365432219582979492484626688363306876120296045460520586600955674549477488926823337740869432987105887956099441938183973244223089781005091649202586437133150153161003831390556061177618742991285970274538986077276493662711216029161593058452117720311118189560664837281164051828414344129530977826058963653591336332191839000109152462407569643982413514459281374700342290896582611853061643793563140015851474242045046239539288021540657131017660462514008192764219812710785412434235400028241116147300539697607698594664361468533719374746405510235615521757401124654780200539511022583436110126606504151131647706015423192214819283122000192517552838234177960551784304599269597528292005547253279336173464671396893979336630610195742376807470551423726553892601381585163820372208500606168774441356215501112011454182224231323227814260006577486043287332395067179556100278245234942222161319474920267240236531944547080435666191854036575897125525772312547558170887888976825878551242060686602128906860561047062015447967029476556934249175671571115225000697953512632114796059194760537510711948379353508548081886037010005238010308278404186066270153572045398099839134982468034327265290580753743131627528087933877871346726834722777529477751010963333036030098763641793114597468664779569428719098050680242553408885769184170132036639913802980017353977402276615806633053188669165204963741721257351580557008060795001271527063869052986392047650514730433796140866389029420840804087809015949101203163542632222055063670377990380617884139727755821864201245868209387179006655497277836874511143739608156065676738928808758545772232990896296835190650824819393957238171374600090308357638592563320071820773158758561969862168727088777866920366693689089647350765753977848747705000880066355263655139783848705317961213198619896455670034277773632344026358996723459135188650233408265161618023241332276237195173704775174563276267340842128674705324255593181728365718015755106481362307536544741847180078043567376240052588426806068286436386584378146442954169046015619130265680240668845198202109925701350813375249406536545813972821705540304171024014925923345976584195012328372266632356174020844523435567992596250180963985994325577332403524741489214318756818215218163736130320261241783427635893689703385216160607868055754163669512307344426520993071261314531611314492364859843501249179272025324397061328993011650001758306983242050974395823220336806045221330487425738659886165186796486004473977467600320911323140896426381538312557598460033903406703637428132729120070629930176528075780422393959136389851967557850019981658548200580838388174978014513277054988978502692176113302142761615086746831396276470463665361504103804366120040147969657694420781672959273231610285431885097570132051456001682576030063390231968474299119979422299579895395806290477643707906292366120823901139378188672068912486386292154976868505301562151273602614720460467934638444132204915444536514043037049309729816757573600156452852380151641767330489672057987333995321668255480487364405481936966839842796755837160052412906635165017067332624372845185283792834784496292265279586009775356993845289410112245244864944740160452086662715075116812393784824797236656443555094189913975948160103100949371748714877717316648914514511295840482547389541623585743259412936182736666220539453537779876873144336438473542816820934670178498106677565339635148653512071680427680611055432003126699284504177154095783083069249773446285939042720626724996990515443537219695988910470124226187285212943168529051471263534314971002578299604585874331388178317920560548643027735550327348002021565401877638871009678338044554718459720986978628712769889739180996535433186697377208297140282053038192605832789370315921665289051680163345596536108518761470447449020152609824914608498592448544060581317532619350194598176326420734489544893110226944242642087803864716129919933554282872184561189015617387231354763636695104425756653236946576815232562872519088464057171582244000634594734569012038695177061352206586157876468076306931390030098048717764146966893351806849163992242664903456941641857407732628827905092239658331201156779993393197733797394695963797724622853751025978359528290895922418539706733913694098287166398979451519752646753989283508517767403745572425879425711219012279004497113787857009228060205864206043807823488727238869908274580412605547391959135355858761109394084979245636301299441671526365813570759759143605582686803142382480416591594512707811351019934282826975753079593572663485418690498732335314595219055588773573703486776768518199603085973326822934360307881336858423886342055439885435829615492741517956237195452145668755247327114244516144499569531143083293295352947251644601043823486129385491901788673610900384578547174780757505112259799336814932354312293539815084904836045781191004496711025164302638117124737745231797633561888250409566593506490923579588344653819909153556221178487766551271685094496666188334417434966840205590958452898087100549984851257076747152937782411345181979194506841359964535240842207234953431675431681444314391789791002150610357246932026353335261990687655189349922867669962644261599322164503116393490079901330297762001158365296428850950657321924614609862385911956001835702287032568493747727932182076616247415736977049611466047290617084861197112791788400908293367049423948889155263811082246899285716971188728016045040039092976978958457968333844418834298797559283041871245901202477248505245074576240874533914789447369506834330344696662781178206673103888444821616777891030197105185733395899934974633130825797725697544766597284341318642580071552706948045113589800202329845118561304559555214333091724902613730491305617984231138288955525075426908413544352935813925366442987338457965809648141382314458593366903377982740144907825267018386631645749565051909359174477247073632288210738068986998990987417493352368630010931287293611146608114122091058125936566689177344397950512885250868989950890986038174285758222347138585195255529474300617653419347299657743789883119423239927802646721879935143120675034077631182060892929349242852323546980601585006499894214506825616414032788047534020459063597331858670890199334283816535604924072025309905649866180681317470089502238907490472866262349144138825063518831206914182683374333130074971564380376946853349291332330134642028500236215649129805816905168053014301425287212069956152788059967292699964274678983807184674507298718160678689823542792289745505016356896006850418679712148591890418403849083831104316445976139491625893727256127974432471421662776525083840748176544084607099591244677730726982289223636620606914582316002253838473156016690605009473631069379531842749743715541571628431267967802716240287533034709885294353382756284033148845440352949546808991656288176352848034924058196936663658793922460824057150155737930326949656657366614773273541262026579160833376060853834827387692329762868789639451834143239236682574040375677058902449127246786619611360178180836817450109236514422771360006450375411013586540885540901042212052938708410626030184446746767153591707365212977531103210637399410388080664462754579027354300302023524426128657831978980631321517646542850832100855928440482819556067613673308872025544992176741149586830361033947218225869568118509679936879559578585410613605709937039752972766548607713522228709240416033855092886880701579901439785442027031366242848117151342917687007682824808643404271327018897581495231099335716583715002970153499515700480822451962869222034609309987107177552796292699689752910844765490435302462105259360106347001138729296689712819957504035656570324817590709929771196768001485960324570523691758286086703502312702218081959721975196268652063779672049972930341484144944384267629088513731196089962568762197113630952442924195735783517095951255402689419958935565234112603902318333451112150930174660911723476153340981771738542222120070545435470376188699895752628944141197539474252533449418927940254434594689506084218531052866959365596103742467610123333574891075962251339282630424987043431896795353832188126973461457980274182823475667183586736890599294195287156701446960380972830831320831593017517426541643899583712019448974023302487141181979706832111226014833956975562648061583476474888540840795353686254518529845596777237143427105602190516264459756740158066377088848065944285946991121591325431546476635011873874791680980181407350209668820257855818051229652424320510075613641645612836428082383293498986952001048879045719339462725080949880871973855033431126658064626620497848430551340654727109045455288655484271145216176363067824073210765273108379869725196472289360271460277063282397236334905650314176032211907122773166430397092247188918207478902096482979395740974412354876898041862443166723940455216031409713910868967085426125266495259618165666814872987059510878368077598956919520634199767486237891308579538245272865982020655576323259736137804480638484204912518160612620010375879143895267669948627057338254734136989387519171089713013500570007853076185827833472043066982385189118595937021492728010800447507777798947473471420296700634217435253534852923468414026966552546517250592513646665087554412142488145225353169770942845149239292198485522329818192053368919197189022829432504032697036123245510277438927658137070298044425789084611638559528378668277928894183409517709287199592593285539055453547863536516952572755968795259094424210031613342254885927568612764908097763544276503512024790069318732982277354987061651644910144939210160411302314494012429866794952640889975921553541622284896049616101410976728621314986902025907961983775666967054819577996962497707310928168952696729493226963980385791235810778891046631992932928818600343285584859286684010704131894638405396793389714624362362963274490572019450236677934592442552490872132434219283225777586487392773761418391352972920095198328388527638770471121015342961889044726923918083515205819747384411078291069915745268440091190790362433210499414240191716264669295380890462829992994563427108251680769465681068171216035280147353392928614430867167224375618615656104920380154182970833902687149902304335160198542506724262010078847264393478300356517547840138712937272338676193694416220088618314748375441038758854617343960844432637269044520403315088122033591634451940049415290989176238076768506843769635872967527035409914589056375451438560988425048448253407999782733889569171585587082193964742626309561157099040548444768116581958003111803812187132511404238871786278233390726857167433017006234694635316174379578855937280580490066256567496456069417133006448773580028494121501507646256569412869058868008363890049064932267421893510137679761030047196780109127183236548411064640012602251924876936438738483244306699545306578133076417708668766444628877184201753819766297377918629146526937897333115092401402191873369135522520722817395234701650813939367649354096890101043304865812653785540047116814784005693023118949380972734473871949395146052084168460324280497129571742367858109474558067270589898235169176285238827574432764598439855469889098795113118365820553696908076855227229221380986215197409454887572114243658986532505593859250125552853031849767946736695468760991628463663811683709662129480801084411933139367799748405838956017977727771257046012956538211921224922764263734958032709608165727612668898335195464540334030415145415681181770607687975383128900930544278614043582032449984389313308973793938916321251296836299959230891733950654637909106953802333352819787609970177267690137082149114749604045933344371405894464855346979579844367904611688083004255351339999295107148461643214474149563450325450963751816315524748575433153593411159882391128328637393781175452476018203934121891167202675290086579198904028923909696323665771881808741366359356319912792765286632238713582375167749756299154130176796506640983267831159967605380027633877772426260846972493076336141130323199332351628326095159326243075824933915790173724886787198383520827119573505887830461318039940329414583820776175361805991695058760104716072792565196373007048033057885338034004535684027617829370973780537112042584015414257597885009369457421274836016950003556606513184715016819161522975286081959557924590906513800435430419866873742018285514543775737261176651689495712677730225428110172851237622843223143363911864636240979257057273632261500702983297198833323529585533698873737117206626313784788185309426737665427275047230637826859235426892715641299038991056046605001166453333379537643194124909798811572173542163126290904673967087103326641127153901043810619087823988819732331172339833524737658812210230925596885091161989079969351755480697932756964990550898871370233400622048630284271737986907699783866597664356583701604710752511288964364407678826625459604074859205655555652506371151761333123994240697098502753593941300820829591275952507746868470773875376586218849843911801962355706227441565504492102691257742860735102711768943224137025757738567442358184112079362400399854662837423899729384605657051616768517040045725797773857752270268188606994724791870607910789897253666035822733180767328793299599239843810802991040982157087756744236350015230376785412274476038909403212722489925644887590462380235121981230281681971639550006856386036497224902393304772985860687519200192050906745015247325759068046652954999705278334023621828830140196766900589473404840175779873905686540663123404998519865452459498387043734483197608764946463653906281681903632770724494427516279716759229334725891640360055156206564665311259926340994980130983202583703726321210002547889141848111840968127200342670813128404366755363875967298812717229462857430602499138253599562530001216562387046132624180198858338702014826199513667700293395153909493541397556163625140143526052335999871898355073885795967724358628203310920200975851466690823826424342882344260420929776596057138643309481705328063663722822291175266367098850594934485947585294174364812809087162103895715918662102289383496695327232528948487782947573097527530833808725466867006362967220606035435713054055159797777204658262196578433021232171800468670134530943656104601849062580610434854850616968224470502440557270368049775900200096061456065605226001670459114135885440019575352849402467083684038314964639531601325011704286748261420416566192174359741551318304960147086478551051675243004773350707119544206355123548702782482459014905501449172250046139310970149181504327954490478825219001445172453206178911694352454590326819263224243769599807261566955979659036405587419779348518450481031883599181824359375983691228027948582673547840450196680505125578064474623896746145978053897822371026011248523070797730567733684931038261313352637257210463797992777770002403574131931752555081597309597666812148453543855832587521750816691910459524368916874384797727932270434817359209625122949825566627101193821739723891493685505149111638508327450889415837628000997426330954204299653667390326485861742244750320836509268660937622493909268061088890583607304155799253788323620508057382017183688047213750186547363267607600899914551230773315729008717577105907202337560332209429096857217888656609076664521967975820061197847963656828476124764730137971906179955389414586909035199837493317254178751296933976876238260910641044302948902935327094245795708842510315293003503183556188590478918851650723113825955398713758971173316621601679109243253096251666469250057297979669378913997658847343090095154290327708429822267618716681770759685241575429459287277931940668502778341144489760168240859809444260073347388983827788863612978216307873470049112014995747997484669555120261481272632916427030122725797077812317713601170979084896765588606458618985940780386544893790877493821796032657262666330943672391928645755113355674401367201086201613612395984071063343556903237716075414099828991490685482484168883801521234969966651363471847468173190288536850591153232905450073785094866890043025216829017643671500451437514632667785337388127384033733960020708282545282091194962895081943010419994925426326110892298653706194782221887337639084439460046130452302757630252345205983169352702804934039411266986087676478244395936731662872594618532674690640431300668426888924121062443484922478422428460629856139084358905219122061009367624037450540105110731778445146672542319117087761724063243059543356499978171956102142796238454879025368534590140450096079469357101470451392738673533213763268702412828239490135957452088446295257698150893087916244522944608357697466569282806067324913508805969319989039015932111692427825269089622649402055656913082849136533749837644167484041342133337550669369104651635560918542622723007814514295443306230978128061710609969217578384396741161211511793790347112103488285261469131451507000705529765335399930494586478049226866830520494857684277250927037723677520439495710561435964656664427493488055960169832065306653034268619866858832103689986227011733902002915591999590695675159700368175824659894855268577040425207742471950004283456284713716288297996012996784469537739697593536430234237971237138960719166507599181767808725949786627948367454581649668471642942665775556208917498410155764885474552164446320920626380908798496629019346806000696403122902598641244198804931977222123557960528945351495228273316937190817456879092900501020261513790768570703375706418537691084513816253837197341009892165534112446550709876267760411820558539016995812008984243218463879932918893031003425939640825072747937788508464115883872667978226173099717667995400880720129407659600727598641233993403945257320438753679583216057490289727514380344863727708670390185341232486464145348224865288268870566443747468115347564223144518908105176876480516073584137951531910852199586853088139980549908494005853363202447722762044162704496796107004573572272600900756303495519857853896378154159239532657475629379682411315798008750419838456041054549312714934428893909129348707847424340433536212057684162081412886736049063783038481399297363756499222493524292911467290937341669455126571716450494563614037574489926562407600923107219876174196908944576700085451993044820474136313922262102820685206884811275414217891218583649210483203394089024517349263443322783409775646069103965267640398890062051340749536141170920460794240265074082611758915346140151286484838243577006411514712562021811397818969337397258807222984412853192030515940673847761485789779067152415806811241438019858433399877929002512307615437607317540221850286028916109861505503921965115371458633533167481031722749236540792638691562990025825486709358859325935710744993700278882675872224394753703931981100347503531896216458998059138071115131202551126640710756022308798869808932977849220843989276466187151349638291164171772560035337257151058409393552478494803897691936306454476038189681662889669922581466876162804586823842584460201382822753693264996808965824473783837365119803463882220278167339090683725377806793471730399591770166765027326989502629063081109792831591230310407890641557763875078128237851445704997115708038799298111334428252096769743611523951736207225148927420787285233127298782828537102173156902840881824253199467287768396949722563037871813862840892286997513750202851274155236957980648157647637426390718078525139458613820555860588333453027036915818982232331914708766652490911155258667762206586679185324225881356389110568593342087760010882833906876314955699660471739249547076674173561164311567549482291888218328287849466151951464636989645684221436412712200747400168646379226511951117270772024625651146106709395699507687863471946536612944988086709486359531521443642240766407880977191560569882964848391521462164982185256120723558568579605676068359337329267538165434791205079935649937177244653448412298408391679228193135458641934541179416519639766106162406870616073040549824333854232250193999038042012670706716693302192119643329950562392516329689707975589599382350599424315775230489521877019989010135975475360611977311669027315948933391695278601661665584370597055221304281162096602263150119444523879720732142620853456258266939815429260084310116041147479892786363006998024648407985466120464802973649663032213354413323580789970840998722584766164744433159752331545276757921540538152023922656726232865121137244050775596430172862467017910884568738503196414115491919621391222278554804555045905954439735138965131603762754222102312351030212796632078229760209097012523612122268975518574180563532955792828492808431183284075981947015008153222697667476117823687441867422773471851777694153250167125354273923846384479004932742885897860190885784386111407141073842577647614961395592213027450533319992229699222795453184750802978190573951384966178981244581416445373434751163138971066479735576491040282881824282373580435477434194907889295218253945247769202737584018317548493636979305795912338417094070062607325772086512827156862851283083929129377135991052337839382314024804679986919204113825848814641623357540511215612030828563649152604206865879200046291112667810044175381407466544645593271402077310663424273328666321719877567144364404341508282497437984026927319670979713495988193411901973626880181227036589728880566071105680691226334634792364409531645621973941238880360168949223132946452102514186299910944562263008415717904420082214998822378319671738167950651512172460070578692134682621551727386000069952348361149505309281003337646517283339412749097072215578874946149975811490732707673085755978287153648230065316246084762930568920935951085450823032764681848864780377458229251534005487167148647929174290997965840853287563184190386537430499054969452891650716249967771053680841516397874090242700514059789266445376920569030742588000066695339820842876834317828825707710513559633189431979022794745422080240739372949635948977932033580645621277495716752986892124131810999562401487114232776891957167686138036230756495150205570808565938063228936286691501972353237146449600768018381139983568865371846429764220529824587944664370190360576039725024690994830199774368885122959362241576871813013084689520673475797497127852844576985287625378293182110489673652319550176655666762905558208235602374423228238910855981415125610671682231367906081688705142763466154197472347014839553838087043472808081579155595438823739166975143550006956504891230383480697783689440901520308669344980209716459820848019291262033465950739169171364082867482151076636145245337323143172084897596127957684025749939967869004308087571424580171455047336196088515336169126219959119993557950979565481533481335743010349060922224092025159932152796603104808815871435506869607760151418021681933823966538199241095027992684247122233672051163717772387717807648761116676394957029400326889997663583945434590165765626591649469215811062918078998409552605438803158455724529833257697595334879492161326365852107472220122326963490672492380821728785807170643912885277996030411469499142290535810517523791083639924372922423092275561881633569618892511986845631138353470603002944413014832377397471884722898216330849060858447592368354629799877874650918697606113176514737181627277619781075336708288638411195470322236982055485772127056109333403712775127068189447737611524901138002134280719658557091314453816199298984887728052096512275619349724366541359332023501618160288248842569038984092372608404280652962792725692626015436134628002896958154918677478710815029526699846642489105430442189428007153406980194046948392392283185135071870430121269677215641202682121416662499092754388174049959010349067603814323142590778184459687074108917596386328338552875868376770516384996119686932007181435232149224649175805302303162590025538879850910479998321225918280171960829999722991727149302146548777340482711884638657409790175086488291431174796504248824795446043120106718832052315108609974624129445295224084666536427213298398477513489758367844419314664567695549168389001247362036384641623729247697851308407877559033538888186772476995345040319663762451208635694054076244726708589808752408609476832371570606930835431331135623849098170314193193601588379891763263464666392947391319930386636775679881882936418099777635884298507355670751989378421393280104751056392305501231944149657003830115482722854227042598266501414682612567219168147089741413437729135329584568316203134684183739476779072618402584804950497203758905062036711692852171940165961020969184997829678947164190081994141476659940028972791003042613693524196908763083531339154463566542025779161870740661303567304443483079257210506050840440849627503386749362415788154096567693114150704563291943222492583529791740233997574284467980623966433465057846194004897712408876215139108835745246204371903312815568140162277634628476798636160218031948350493701445592408127942435136023175673019249027939903231387808650364164681143898768516063111300105790948623562420258814564036415405054062063172535384030352100533721244604276246788872161221629736009976189541141929164312286189175124025070225345931913534501683429619687086073547767447283588725540131665929708358112001796860637169987165645108989468921027758240714902924463233055827842301067365585078616627641459203315295862378605823871583413644740614270269880659712766702283394879454855524732753785161854888988740092867840667943055479989072420264848566017848781878999621374118533709344549076532232101997828353389448181097898159101107422353231757418934460552081292206191903536959009625197900355150126150935296650185609123456430978318126695977003392175240887505311536362805966064473279407344260913369968816389462544402377347944322115458595291221776529661254078572968530223409718427343722279298379809683163377060261744858516034266823090747027806261471130508007969067031922010617015626194698395069899963245331522776905506559187164262962708229599378794720425933649584525552042219287521317191968710058678982978449947284513858906643017434412295948244410432058214844651067894383520765687576861289726388897087418990871595502311541532195584328541832394152010779420349955907928631405826753406093862851955641132628599592105943100600757529206362951168892606102821015546955710874958338152720870453892218046620956202589624790339320443861735311762912389506931802692379218038828154807872693516965307093105325033918921194735644848015881007575134587117688265026666288125932487087181917118266906867243862154886543698845955282313638575081855175431768319346246670394610539516541045245442540624515552425577214932040488223409858979186699570615688503244253926574780612117209580847655973195284575630551758460166364900150546475747601199890014095599994748553835800607245432199657855789094701020556770445072041040811962444165668378744835997763983510698209612374241392974658678709697072986963164077581922750043052207232865205201512228811009155713972375160951056473195429523367141069901457175711010330260471108191440187619151086001120619067291981770127121512891671354063657103794199337410188300257531704413957236414179751849485671022405954165578752787946761037343715459385244403748570647494287207254983432652437973146815243225749538484337659440079012389911808061436494829331747383920195311176566563229280246006935124957865237333474062762833878742153178788957604739272759302790374580310685097536410239264727886562150457951796760877419761039936517680132223178589825883722968725749174106792838629592311114961446240135247677859212434154945492051610070744588237448199684521087378141085628822655771906016831826445529855457189343878859967316757999116977458221921071963489573225326935256828522500088111341997786571002182417478233148892422549315831942049765933834165928034856444285925523137910902445344652596310379723918536304733134083748289738812152621354314757688637412518279725223609342009408432515830792764819414806459664384696664257658967296398447414378555347764690590203881529849981553778579783666100065270971952408732704945228178647570294654345816960685793100680686485750601362675494353785312284163913633150546709885166767400681273525132879866311974776944892067840117418504869036085729630550070005931649397805636390298062756479157450102888270204639823760062490989369864875693430090975861202147933747834392035849328345124814759369377908908966026657777987569653404177637347207282769358607294234857041477194546592296408441051792001748966727822689394107465255455196767116491656488991405552982284572454286086976634906382477327579691020468609555958966349150394354023887298263939667909491471735260946248725949345087839818396990318994525913650064450157837570402848363252578186862994115821221215861157344217477428987970296673785067364350363609524046666878048834378424846206618236760439674661992514413519202870463563842352061119567081022651010067547087729746065618591432471180367721859708215631935746695788059682514690925580033203300043067127136505617540166253066902656077723230181738242891094467204675522707970335320274285212415151638086630517563199902045549874891937632028238658336369684761846646280964817271940136244281012640068041461335954635046741305646497918240471774886042576113033853418603975642699627106428150544675100244883507109532966292620230283161293120723377878558548318343948187653393157322662989598321556565860373024992133688634146775927821646601745580261175018524743432465129487830508034311306668938500064463576966951272853791680970614008913029916486091742314784881820039368643031078993475480824636180108787732272325417595150985223040698058402930167031382233137044138969886371175578988810491022359073446051906278117868318018800593348889774718045535660246650721174003816636903243445597265067930363757599362001430821839362894527508998183392190689655997576060643473838324752380716162430260323719729896144072513880967050417555082334339791838123137990199137435818702621913586313728134841318176919786369401653159384725143263261156421599874240373643926483337889029999431079148470468894558907375738337993063821978685932971049047364475611382503804871304765760199836848048412507212034724634869216589891257567264728946739641007344679185369792128196145527766666824423851754577768314859990435955097705710267659219440607365467189932640795497632040936265616958796865776056595413246177858367066940065287866849287079214886774672750819733907100592743899942218796821067450655175030087586445294789785534453724717714714216939365896434419030912556209749245356757184927688832326618476245973816984398869357584241696780943163996834239720912518093966038286285645576508010682889870599079952555210565962818240742912239299682057441395511135932732305879375070047564421869941194450342486451734977619222872149891309834446431575273836327626104076642616975651845369676853046925327368332090913382453890311115064001318261069631500253919901551344672485008366105409430347119866320377802644787537743420257073339765713741594758576110756921442509289694063142359972489403328891792378367901931775216916427759287849807335086654918187232355983013300665052111879718652071682370161128108879646049718650934670579138172156553356019359465801429849511934445790166834986495593938969853244223718504953439818678594766177500985268215437528686269413376770486792004723530813085012988094334053343001494197939215612056247173018360839414579396310388763282224452315125446477968074741458537751531330578663144407183980965193631279591160086037737956996147752247840894437782557907944872373386273391051256707592316322402497824915641092725615171615940504304601205496754101729823370485695314122462448668636766231063757622665584180618247170813764717851233765050186556498895814080958014342940289425916316521893620820491112164059749396660689324233217586629590263280659365501758000999876458981195473023733561416324004660013713574619360572816637312050623606371790140036886896503060652240017817668233339845038775307117898462072444294663251605818623824546278758995379925937476589884678201968024656658313792136042496276207811386350324219328517550335094080278041711735755323784316962958672087953535382490086990251983624481776535167836349516096012632272530328442518331107720414132683998044822438885164483914105569967533019388856744009144308207246526807084956253423272970177383231183696857681869282345950817150678948665900196344224448862647996464715704880788336818864024146065536709073731125227897261901191446891759784072198640438985910108091475875555941144648325352920532621518711045010969976989832554707138618291178907639525898803881852598290890797985596350408748636641784298495085546372075024357111004275313418786178780676006901604320098718381878478878322106588465714521703344361141853957468143276830550433613974595705048209028496225376287779920977984249788582613177041230857946885598565997175961775735564618476550948558353332251052861281903068735197770133713679331167560064315662221540322276131432062506972600442759541732274910379606910271223028182549150866957034886001008806739096121644738715770502862277750916780635387104538575973666077405309829840399213230064180937939564297400293791792708154814570809115412724845939062602733768306816957991746272838894610824193689750101979418708689724844348374579945326558172785452985719716369542848663416948621665423455647272759525125507079250704823639199945059985177016104880722700237859104522824136684439674099358938146690144394593031734613956179861184241326901433314327475279628900668346848939287681285896751105923315628617304804706250954844972052672759850668995705186534336398862809254769851067169120282307405333459105057954035606791389499868132760130544385578458099824139573301720833218151462479688994630166203924218148546067280610282718673116326195259106147566661121487800331416696453861588395374647161658886841873926242189929052001915840797342531608892335317068886148759131924125098072430318683853784599737521842697977787807376597026138087048587908229637274769289547593950679452464215996397507681432027517061622829764618046812960383160064790009342869313919203032420128563903777841451885526845159221880311778918449425162054750625723050427706400482362941663692582364614285615395947853179339923180151036352880096476575065311510173105019153215240449294790443049610923698291044125860626686753855065714597506513701043744534429623417180851861643570044137581701969539583877184274032418792504858874112918989392366570673076587655777875945512031957275682481162034572158464352978146883249685164377331863118666218597468458798908398358413979021286072961829346778143892976244431433729355211533120879958641010863025204753321313516517561461638624556825057672921320443269712510895712160174112959350202071465183473843819307271470941025229126539108409225159828369191065028337472808867562776269108978826042399900442944821757429773164421470987128381897149601719822034761875249268675793696617964981721664356845301071442919998856159989860808378559385268772357175720070990158923004084676364368176044569550872795807159031718238225035191614888203903359194693876557333715741211878342110342950272132395266134999279350861151480894337197713492478365834277006825315551164819361906701251367170846658274267730467298724384766386249244695072673348823251041997280181946262042225570524636920196224185513366091218804542031204960355436179940078599553098077848162155260463563429171266102663630051837612653535399575111722386503599579339839531917576713692366123568756700173627977657490123474040502650444119679327922483708760112209090322615449960681110431490676553331857941674353786837130670404144083829087546730872625662439227561599929510242272975300903608025552774416289902494470632712399596919112415302569039646088222919293697661030855383335678689232856551499443646283773501869095780838917093697399814778339710156543244837276499045015296788609002376310491465281966217039325579159477932837219693526179756124581545609898301780654272086238802909333260572063348589454448080798414089316660893617195710083697219038751796674641870915229342431812710348484423149452976456245422240417941791312251145431717806032594842043210333381854894900639554677687891004776977480899289602885633739473164622746633713103750983173226705305834518465558936154139151095040666965859866542257441876702763051236614747839920429262791991160891341854393246078116006286664609604135433732596287880340966459923899846066916221231953293872996100122074885239970346669146350036866027679736307721802374600075916265967591979601469821894703312425157860092269527105580189170639818702579115842517579260169070879639795763485381455990499660942336822595630925558623327862097667422433701490076227822780138946931197191839900973713630455381977105991139858406745992993259090225955149398533115220773767119697375312003387376911883500913767083859626688216380619611355735013186903845920602280209502840526833012102021269210649097851543014364140258464378457568656480154240254846545093934566029903812193370060743121048430347156232938091391977424501442360343617852267881341508853898597387036631784132147558239813365734126109052109135922419393547302040865762341205673077401003870633608796781814855721442217894903242886206216789176371287557804540120564911319498240957953130437414968637616415397236034361018370736451236451749253062151888830162277864540215575094550621589764969788018888517256704223407376256604388243189740438100845289323791878621131913576379726339111981174325471142808017398046479754295235761938738474840270404059459155124849468107203383929800457772380978809832057465655932668591619032928739795158002842333304261678853441227301719302550697300724001686141984707412978474648258527378251237211621304089511750750828936426497257476938685436455093629638328324600248569360144529467887988924035464186027777663070513238703080250571319492163878209878567406761951613667974820176490763793384508360841028907791620670159073452889626844664630188225861237301972497648370404056578085761880675973578143675759457618973371490724321417879989004750692390512230843098823113186768912179330290985343328692623676751080632169869418970627591539223715179975327338994516761716841015448455701359529938720098691371859913025942981402264863337909267418181339000026528432644783109418887216734633081036371491436705827637562172082480111676669099745541121767428657181660339229792141321404632351436388517227819021146860379018695795910646049512951936805220887482958366235329220631431698902104309820536426146674720490968275239834136083353400991555304791969158517406732853392711894444012000219343899997893303192359820942500428861391665134480878658393272237621592856214242726804238711645421013738381567991845249812506890855694841922444446045652409330580991863067115234457274078405601207708650734043494443483542939548109953478413400613610063791189861292207950454669748035296361489043772375509650562033624867676669015307056468702217479486020476570702352168863919757815925246609312503753425337894379290210479491352075237342674532473573687271726823169977905559389583159322930858178862791287328980989424297736848537206270708633662025658732961536019429043982116891276558479154194220801457141796547176849892309465937867364712588183145899500958500888041600464780667559932928438814862810760739514010678301128412021124995878850907457786306034168309486334615792859483166330216536499028385421461457566165314605494996652894342395205922412777918694219087402305353717222877190518392514255185136210660554946359440076161100669301828760931694515181049135105444659387232429034971900835696950252820107495688606687309978288707230148433091484397905003823432082982742742099557262734491774011640233534433816414845970851394668273017081677466501797654273786281367257452449718241174496773610980505798316328195650898928307123409094883239458815682565417729651529226816927873985749379533165852868042023844687779409093392151115661265829717251047025322643795118033101216849698172979058717739455312824357182043267168992748061040073656258691419684732754966735812757084234962419062022272311314090415024730650951320822422997313270031294753732037298466541439283957737106912601364672930593396355439048631125658246725109542602874051743798958243843830899111585560188541245877538882425875408071396728343714458642038219027691846214374478990595891376101763684183347883186439962965043885191284195478023165698277858959237498912741540705307696441889004558045154884649093851992395026949023127651107072620441308187807937724122364820739626262741346743976703845258435998238267450020756166738322896999056423000628733328865985536342908140418985542134076579144938841218127439241712357054861269194011988328363540283946059567242136597924586713488170368713369619987799718350314364952790974816724673173444888992796657208980055700529943908397916003245405118084980326488028074466105029165192916407233157396550819147729649736260379816215811324348573739384336795140861982276600247756957652741841453003502928356575564146203050926097550467935622303507291406017739169846547665658733897446228836197222217335257507888319247406212247103880540116609799895560808504261789900270246135689765883609485473817290742400137746088174170185670170400800782676217902966327640159935627462670271365410586572441434010690086920727170194172543854125184174581347352694955218294082150633618039685071601997847293112886623920210226167282711691007191576283761846643755579175420470060243278658130603996920736210258912688571447218358902151107037476154545886743858212912562650636411538920533178193833255887951234015102129886864564240708308816756498274286185701291687172827186866847176062095306244138809615418038717745840819777694117730920948548565864673280644259643060087796554706295264184658337949243574428408929060336666288170271783951925153045259023580420961179944914072586077991924943062092163019183739100857513881417803726075875158304098500456770097592400855630324900714624940320727701595052754052937817881545911906323856268244078887865628104356494707890582877597160633060610314945375427441309978222385504430303447647410374875067719446936774829064901776923981081167784331524725951597086189841143079185920379607000574085223336316782740739087349576645001077662573930330890975221647747425680259436858310424855309805120832861351046388525030440320109117221112842703172812959658428395690959987929762963875017387537015027800668124632120347015407466528509929843614593580926010529599134530667525792657013369694261500247693751504527403420704835766815135206453740738730642517627394753707064980812105906289801636170406998741709863140317075063357565713336496231824428567453845275756349003289538767330849529075303021774216215411665897842044816778101448452896900109552764743031316085508944132332901155042033847639482343416617691026715019431908691289883433623670780139143370059274416112741700118887662407192177597830653960754287414208353147346922594493638571843747043444189695929118330078244558562904962239808372288653338745406652518019851196768720011060671824467254774932529888653478297193963327750265758439360330244107819462093775423299823633945687222226414658123395402991766240611226167307460563622094271202562316814669127017154841323741447650033520469378421581063002423845205782368853352794524529514137717434183439645938301409848580916433088562889409057789451299012336062889978735968971887332734667098528391903133886914654135940601485213175576615676900238188647063015190919311907804054129423714451471341680104969327553868208713778363181606374652965285173515700823840584911506408147925015095477678553266374794637702411956397714910227873315678153966807605242004732168021337297107750203018952303913052742294315259087766865425549431256592829977824070215074652972726985747522474410938300411388298091403842997022941915152265033936095708003537069991543134891025823993090090866463738707015512398252484496469925212967146242760340246570953361265941580898491046148216053276520410765452546815135880404811452577054716925205665279053251018059685078140565838698267041960179820749921175389038972051327719212503257536504446602152042618259878655549888147211500752357746501521027860712145427109810584567475546225738011699872823987034408468472665560988976070189938569782566979867743291147864325813161111040057193743242305521105346057872809637201952982267007609086916248994208400219505725168093402755421214447154955309921868731828345287559205219847228173008642159760108371646172957635078042866003185885196396765568032380930248787237268116662415170733808652389766058048759138592580563474478811540749081284106577796245935699772344437092788506922726157967018417415147668606883899119296644784112422414464347504740777802812474021767636541217648417380324127053709614096692368900209395614797038594205263579563545901911567898923467139833302024568692264701071286149690160149572583314654383933738421972797712358420330915404784372379692915969866636445903166536743176646878736520004580905373622322491378442898462352950140891823981518190751146766787983500486816221678950782378948752674143628798627760729183989947052830706975194393550949292314061651241614664364015060946133997070758257694289923815589021511602220207892062034469834845088966730900578564237908503823266020242671381695033068702516255579505819042528280773083650681623345281234000435356864372567190984974210211092564672845940448297750820007689323305363094366999853588951976550538996354710114095451529533875502694896238475602214149667014675635261968104035814709144416374992895786789849882030888347104146920114512822767168768084514325236137474805564851559565276777304362329514912955774595376443562127545566820960822502680323229886611128207770313320028531586356095802954273962441878081731844876690487511759449216764558532586928191162101515155342951115091705945415268207945378556259535834453579707626317091690816596083173450658906183229501912109187012330301258443996572486968451106236996350048758205210011437520780017925822458621793193769742007079157894550275941215550060624792440617301354825493757678353806721071824508273111369550330044798592852074092774082834550901685874760738365617415301749670588827516689993614437908117917858083343291229604641794742731207026101931573529949327165309714369542442695585630817624964887203970146316425908361119382606823858208161240524725562643034267855564937845036956496475639768199256183771191083155887922913912282635555056275253207907650854508143342637070748361746720644028793435932031800287012058935889519617166163278878940214873637205150796243314851458228327776072215889364057925078126513823494934640236174610076671466034380209299533953725082782387837171542728932908567186159801526789184173847340934385046654644118678364889668465533507834400774718502861254627245525563705858920310179302462340393580646364552794347602359519545070166372774577274052507657718090409388661493381503919809834634453148542648429636295905978396862060127625640026764602847620649238553272966014422396907031756161325042143821197142400854123424983730310115126929843368472092056590537822432454046666317791393242990809429033694185363968903058200719125339179200228254219231782249519003169371341862250509300692457824989646093338600203322248116770651521922600583320686512583223529807342496606525546593371760543915999559005092525853050497654812572627175075991772503449699508464410064790997072136978071201324762075832844872602074782296789409148028911728934724470146440801734717488508767704954328489235571619544094496953335023306484400796495573096032851164768995466815378528223989696076877366303307396676078425675021087039321225264951282012594610161401877391316835426312404694665702293242755544928329212481340855019413253146788875121983747732851725061454089782817163829941613765629379256249115932640606679027552129462868233788524096293321412192491707533722859280180744236813535209458202321395682908208113476882455911074239903039967530621126787162289057980957217334023233003598983872074573468441925388248336490233420587326602626808541792336272019496080587248371746265948168950677528051895507398409781945126344206282530314900901346613782145398305194354776053600981425386800164236625904125750306788833006450138253770862565270807504012848102756853023591087040842719736813216999440036782575365755983885928603326141795538085922839619266963604758803453635177827589556473447285571581888689093897554311464714042483661018615648539551490837737290015871008924652281922073055808969106310051647393874491026903782229730796967433264255181980857273083131814372341449302612714284739847711522862681698576503364065603639665381427458470054296931103928316870140046278100093756459845212191893846251445884866725997565350704977672034892292789455233843800905095507455494881368028578147082695576752852022903604502947825221800138006796616169800143219348776547828586486359259274436634363559570429276541794378872701428253391480434813904609224846133724541121259693686756189553509850047230936546961703182837166730443066374791047879075420612646436555400543857381303507058650935272395475661757118500525151228839300315883359389774663566371860617258787379485473832953025521467269946170827014120151773819480540434667548588005461952142484021261169783630186948414083739441539532871912869905179646822751807543840932900809235981529364242621405900356185403155905707409275938908708561203129396478250625772781600132808798745313929855462611449318806351168354861206288081101421876689659599675289282073443843914104957252581404724912510702164443013321122104176172771999837960852844805638031523307511521948242861156569942698559773955739232002506928221198416537573777052983645024399133518687894046310976199808670137673090395035741479310904316256164354392600196472435512931929431858875965964001325984193613422598751396443831449758397072481324621819967628959738716153202059252632561428806609754870997014354799599448194146964364773449659400928325437925399317493030704876642850972541972943865538987011594312753776353189188200313308235333431970422784568471606421502231319622367480036056762402958800257003269737595321877393824834701773086339729540438326869716579739594508453395974834066321405075136883161066664763137528948591948201916929583244676574144175384200352385549939494370001970276624822037707201209557716713498052689060724713077318089102703756388057850390098123028197578124105097167385385830912211077019012189927152142908476401410721608173917463138373121929022220908327364272353750185854734750331637759814712173908276083186628636105470725901881327474195693747234236389520687980783445615957688510237708250659815750726705667219748479227448309555236260498398478131089174171965286551150702500319972535107888917167127457027130304611303720570494590415396950387530965039708123379153112515907835992869115822302015597858860144233459813149643250059707564139084373822522788777619722626788040807241627160817097080274466341610295828379301001204123182656832695114667413362781478979782667085063334167467811773280851132814271953283227841496698807950819396817822104277351696167611977579541205625295632510431996842911448273964781826865930359391758949296548414023028160289037246799622479350563635336825988551666399545070449177054345244271975444437588639018596555981312081246048934858456874143639621018151784220920225264765119797423439241522631480205216875929005069245612078386658967402119624094127865363333594758690652069219054579871907986661736312282281423905373626230222067692862248335704956141597890810925091268683618574615250853769158726571497375200187983912929201688440275286814406448234829880288919747827034267354844062819844741778893963778900670371113778810326635039150602364567522231269343916692829279446647637497276552085828796909317854176138156323535600607931499056169807806637493843561502299057987868612464496723704879139363357263283606899134893662198812051475017563175793918402382798208518913451703920520269297146698418824779964302604467826654582395530236452149298536180734918529514891962081039416410052741679561079771805679318253622170305825299497191559950171249768071960584634494640921289090371499538200286647004801043037191342181281574399745925122418760191113702868852897488124218940453211319517491697062547711618197817737619997271863299165605334938672097145930056103759283070000742350226045548872141815546638051454017937288585945276538273439708889148966392847981090288001549892011251861761014798718059413949616744543853228922052534513218435018221941986813658091181169434778824043171236815751146347887927834708176104129915542815873422347562305459034708619377692063699630247307014730861859283341232985492217806206363445098045116151538958390316567417782731847981374689403699499723355518297932163897674531898212403883882116994972158072270312382242754752386965680420417812678499021202694059493213938882784447197417252958247269214053432341668183446378185712230276075411519616781168632587289090606231546670270952903990989229652047981268124040432443316199915335443729415680994072976117785280662960145025729850740553214181350509813619706783764349747952062128931743044961573952709961128657382100403636273977687377320340746210932470549348879833353609880669412323654014120790703407271030450887719811606528943059603969301484322973546095536765616184775792683827511275912964821865525465452988940102141496872968530562416636606817538889477023994644801772170197887532244238209650000191257635001010073998703208204543213234912451179967115775581559973686585490036108187847979943756639950561528518237894969831537647859027699497219014193142537905811193282287084498947855706454952754046587827268226618427454368235056110990697043465154209325811514849190323554874816297364379595033757906247652272579313754541566117812452779561313476369306882701899524608435287822187451594610888730123871090351523101969767581222931279669522789625576227474626475161454120651848047762209455856514203141834327687601277368337616384751651196371758056279198804403722310815254809007816523462910928091580222698949068032200651165891717834799232758660244214735545293231616494526229106666590789968791417410737141149349370349567262542835339591827166459964858284910163852624851348063636646500600787764868415234172660718283641948136863068742554621572622433452720435369864723044121599947858729141839687861227340850713851217498174459618832425788568926721704313106194071586237369028302776758420652002850929216598866205244094382420362054708844622266580419384121032984972681989224775245203302254755821985349772409496594964294258493049040264805932024552706804582952567670932888215408978572460598991774992878530657868929879496342354983830057297074438831876807944389048522150363316996681848219852097950466187135112613609880884907235505444518153048315535739957930069149793695508988701209064818827792435577662197112099509673526814754132559797519532732259979069602669241787031112847781267623197011423695093897677829521767564029212876986010420891238053250415828605992368248627510334661758458083082031989855141076263528937522681020540997635441310524581426302953221732145417387841132730774632101371118752136508947981162609314276334321800213663368602186954686396499171025061556421905624183325189946309320257078756867680466395953037722283889001994509684364210044553347771120954696710415202888090505019783698030802069335397201729118827167466218611251969194409374354906270723607503435692171357569620114837884164410607242044063893521587438982492189495732496510088837468443425767423773909684873851345544627284570696827852725570248639533088649057128465456311483633353408025482481804190449197349561947560197801941175875702089546001137420095581876905868493295296089302357364940703339952312232535496602676561681018124085511096543340136247519452519526868218169934600192264857807368177904854826423918060698601592427014908290363021864471006091975238250586122653602738211137554137498561052021005224966156408057290378465711504771682408363597920474348123355032627403184587933730253313371975596575559897142844430181801311123939006049741892391299550878011117591386657888257748867717654007252275589830415486530092315067018131223904906320902557037050581124410403323082951712020142490370243323205553142209155221974635801197189076286983848148448171074606712352779444773889789607885131358166078910198560175412246727513008618826791420273309610996895241529949489240422963390984412753979323762088642861268761207352287585778773597393988092001352828642636911510294767492459198098426270758703756537988437125426135473469166433470526469596708212076846604136163378317890668132501095572241607034338518084871165836359763972762169067576347903893825912512864428750529770529734078580126169268452979083706159315865581278213252678520523275963020553323297349471638305430395676464983195479675069996442752505817056359011698514710569479342802573617409436931201076842746299235835867678645003850696261531029080692737318308321259731953578771828390861952178175810361180894427370932016855893479016743878698992157881763920796662209315317722198756745553732572867303901594135304504559748715667432698475155562973207064754367044487441339854038160869265603044008821481911533824273913152622194621348535202983328581832570134788339460812204884922379182605583778009750207736790621241318803412078870425140102066036008058971500758212406669699088136119665503686807032967703076873860729117307100732692493750638979373301811415504214716083688984924658778621444584182812303077231516335295184230603500359266750476613344524901227430448852225141481465426220440317822043082540795605440379677504417770571408975978078397097011656955354919216847762945779155471931415115403444905895195390352832310832323888098547916871133049148332524001817974405163124781371388899218177150204337239788314185906429518163683803385633634648130201414553876271705621886553916831591417502661102835671891657437573398020055479799712545992805522660608833236092017501936494541363900012081031269459159000370882587701814055806992709236142678997346675948320156719541229542578196077818043444944439287451096821244006084280839218217920276123488207692735267123716722620113694728518777606606063268883695513767191668072545291241580857523325550078191703886944496955457663431500171124188802850899851233868484879125575247904417026564366971189155681340469007091881974707035747066750175618736424821433502952607629223636678055090421575031215387443751823542825218596607114357776748951325550449135893736576730409225431668639598878362257376871628624105926621056022349926803756090012089529197946484827011997239578484262389189253777124136028923391583753006579257528966292657993209600501689846347879890061559722267294432509451667176714342483417280036144321237964744661974709513530338985913902978544759405506675504060131708634824846086151145520680319156515845445253159522170323257780686413287866291310111182689032958687225389718382880407745276982753927245403695082552975547049033456515272516242790413432036185355779770411427148541078391897471415781727191962924075904595430116101477323986688924570406901287627124250766594679028722588143518928180112440378117467050421124023644507928789278856320283837113561750178896690420173689865697760626968484495838949357305439419057758124046476261164907836573951511382615507215218483933747234512039604677480115657194816865808793749334707282740660864381633763319255842559851124729853191605046643489991546141202305120783416900584822908913056808782452274522844481067269259083166230502470573852649259534204357381127498554920854732591636778545768153595701561332098713736150632130550520102223834096297405358049629920293361488329651948634125327619253544687077035136688738795162509334156383746188969857834054860570570944681547730497804521904608200646651129146693103213828074955291397892879015637325526199056168483025997024970157853023434688444740154466090844724015507604570049047328447854011301133015527307306010673751288247016365768194736396122519342487409631777245962284961460142609092202729367100486493986653850166289290757128956507748455475738160062482731920924623975520480000067997998467235302506342284901547569095205296469655275421081860029386054539900404882037308510876168087098502340675183497474359562439067198331088329999076292961707170577405067795736118137468400694498707604226357498370375408601318048111733356126025625483924828119790733498512640623754947537704881081757868801453606276539536997676381526840501770845954760948094650387293748605047593130834436148837826420538454397629153183014564369534686140187463309976119081806048950783794351842567837249262347644032785281270320265806196749704492260970729605725952828625074224702162399390128816948098218767694010352390817831729348974423011078009357964593628648015190363343775862493314081378553169861925835276228009460611378327043716417209699525974540002969092594162821040142108643779746400304855596360295016265634123372944597742270349579317087435320604456693854944122887492607192953023643916540593510649050198747387313783392584170707559648119042559304120635050756198582840921298489403428947286278978048086797682563797173937986624724368743655394972601061948183033281501790770145190633348052401311040863474090091499359763421365173433694639062808637254814783525017672520210265320660236796097115243831941539902234510049460979132278643842267421778765738619581796992809451640145867291207754874178976574610686950093962954798086313049277418749682949192205887105166581003486363037462770839795271984455891183767980028814502086057419738935786004208724530643738288594401372280628474246341926745134602146102622058696438781210512066364823079912202012677631917111354316614122155379782706126369591163759615662556937182991414709745360790691345184530284565688788488915205646890162153577831558615538887047878694033525027886063992552166307370797097010741943250188380812526585698832672739671526293336355199492664595236449949178509762171765169435330265366491669810000790378119400079199135376271138039945962229178352480247626473224085729510034067836490620835500282560588234511694993216521076559247752974470003021576461023845384641054741624189628232009798588178913447312785570735556048488022196375736527430544066286896398526299611815741136203199688407127405838666153688585889023708924963852133357056000002476370722013522350770231512148855000787996573407362414450479942662995978022755905419075288740910685055127020384711354291412787084896633180934164925626411337214289467635354506705380637815664192388660679873971319928426163333638230587895562210970044555659062753718633061918606418303399149314056728606050756879911959581586753883995097719386819301767941156464138924374053356492193608699563301152648032674734053778818402938859890223624180755821033277716164443037142680205520838290973607397216021423742280886150169283123637123805601710005556346827089974921439890306198680772436712943731748752599109958736555775551197221459406003235963921579333897215011280070854594999790990031961855597786465085874405292825220181319568886082926778548356900790856925760390640284820661385578775627790649980981723921507025246694856207947138024757020582078535397444645261738713960518969183642214599153384208165440173938619688269724510386493362579328294993775439653548828381220447115811130429441605211656377915310239081240597358515211722052588524573266444097132024229285667308383530150450430649994175591906967754963847337663666939412841507830624105792606619374586476904630594983229908047696579190095910807625694475992687354751809553876743591172552016052401579708858824601067349719021280433487009230251105254179251821512309976931325898760108654052698961815333554242636201366461380736878198679865063679364355842076187440619800261503288838134316690872213747071258043695886816082467298642078753787565410865919140503642500599602513593771221218821373498396974771047401109156703180140603724411911034045053988256717865134133716439035264833425677653847320937597130976475540415718788491055312568277354839738985810852733299552452552891113588730383459676445760704490964741299017969632581873752009874307896668220449795942663992426608137445868446557133480430859319371061138816641488874375933107093590620082392073763601372437377255025341304792538586224208469114522458024112618976008877235844364763509301114514705014762403443041181386843413058006045616339624473213006955914720218393208648305333396792895850788330118371565514858107175763459049157706550358887809957686076152243366277731579052482912100107723330193495167162391302893601170796177330974989157929710740904255437063499874187124605745531316878009035386383758295150717806532476317265861571208901155906303590870723445218525766839252579189620467951300944298452264241235293183023040215467952439789673863281567977412580944267698622382104520202859947087287193731528935052912782221547171149377487005110134884353116343207709582639942485807273111413706052020347271284180596364195657719517595693026088473141770614993934300807473861674450941425122790679164091710893784647667346267780048503909625018698798588690203520363557239388727802206923877328504076435183695139160879669716562192797755121159981738947263790378979457132982636887472655924484170779962023700912207813600554013677245044981747091171880528922999186489059539625474523207855535895714001082856787264896218026707611479597991995618604111182451579515520682724667513725300815196096978265881973158986075816989113780084432226905287996265989244565697771595639467714332391129380044813298304342346869087981576304162393431498952770225888589763127411881326661410080381173060497779568641897626845444742680142804445370604405941790266315468113747217554981386778772352682039914506299765564541026068176883172706163635186855224889741931449426467205485820462335969728593490900539086768022344519307312777446693131461995410297057869018540424951113583895572032832428042921514565382516325485511517894939660274026029644271572551274107888088606113237578661228267398247115486920952301482706167678760092230320837839710213329728745082162324859561108184662730188614295454155440954326436660816799077907111758724619355297211260439427234913491240271275381747574113055938774194819382605082822061839074688145750487187068363877778551260781480546516191457929448955386353264758787151494453777890239724417478134238457628441988461972344328499850198731858403147761471150428446264824565827313429686878503335795055168312308533251050375217981575009818753198530436867769693848221666124333977469926712607910182380872222384998915339977896454987520926162312152891561697138318857302682690763146476140956934766563712841707232920919069183601898769872732104616255389597033083225698494648434438242956849652648085551150358246848717847509855708636347183816620281236530770861337047234154790935833820220388525886840641813894061806292850987307955300293521474166670646662649612604870264410795440145144128597863266034696251064979077034307127971893466698696427624101249609094992058472056969730522261829301639468250417871397659973802945054781602952943187719019419558154260231886997462665428106684353470809167437301611017930126054612451004241460066894340240545854821493493841853493808022042211759353165188211981545431416783890841877180513405933276902063954544195595945718593710825694232352799420711307774174127055154073269598224883504420197268572286644814438576089323648682623302248852413546365039033675190968027516101789768896169913456203440435496760216039452326748401694853853441621759105843743812883178047827507945416459638927785272344456747653170262955814608086573329271808217180511021377489363850267839265076390334213878201820228319719144651275161236940859170430463358279213497659764823511271261476075018001290452095171681295269514893302157615716706820110416008397015504371518631992057963094770811608747205098362646723218501024834987314257949143272546407701588070982262987592472774762928454409439879622170220381828002667310573950050051165855827350493774423393839986040522577493065439352535255453820353410785548752219812362630227453432741471664236849523515942146637751040862965516056408222356129865059284002604597177990388982037407076618883816251561220265077682797181375756005195156272904048184487891777108396395130516685607767720746342673584199475014757255413552027857035942334651087557918156203261152284031805257724853361148460274475576174723395385266265268363021824161993157697784248193530289212298072340122577790534311977794799231629456972579589059938900286682872517521160287763776773329911486237027989843692189709069321799650779369561760620502326281661202063808012024695775506267289365087417595834421841453694618418776477096462623528297675361475423758073974597354444197982236782305277092969451382620523374043634589003879790748904741882951663739093632139195679535000645671104881334074609197452338540232573623985722869086121025441115551593007885865920311015361442425522085744696583679652201716342085535004259629409484237770304792072903136377535626821272451295978023608082141475078424242811788718290882421558277331146214680674347204147436631261881407297084183461950335542090847434404183494463768471906318453478120241852934489441179339694968925637528753748093560533001357809711650894885520282092902633517214774520971058517585629487138550089131309740162494062848062724831774188001714038747338516097213428933156890641517439026506951712857272740697213632221880219656293291298397778279822450947231962158397626726747166588603680049237400930998633021835862383964264862977988881808052190144511886329819963072285890749325489808074226748283702767595430943682209378998311367317512380641250026426511546977232340320715077434230832341182559803881617754658799310876617755192685536085999384532989961088083210373811352834823507773659379092241437314817042207762226591565024594966250354591481470259842908728685908457955205916443938995534797660180144533675126552565136415898659352409660976069402413123132367961914102436949633188045339275318826741259030319346422429915087206740063469898053260528797526562946052260728011661615264884063028386658254501984189129703546824234513562239296440933800873265035633908845381790972869299567770369810333962463552225410098666702309476296540274052127412715714034710429446997713312138173475040966844901224689699334455709537891282341463150701344512913247765876463368786796024284338047822883447651335716003433756551775971598260272514857777626582853018291498010300376172592451246542730672715948118807926175532245771412785205183022918856360127647443866857099662484329660876699558545854377377434307086571735685775407560504881567092832406203022057508055081564108504878240241353219821889411302193609351611739510938222010371438204589058436067748352577593935076483548127645108430152521040379347585747045118735011777126925499938554185441461237590510964495825476492078267921155682245530179902842192011402879748028555130090682850725444466893406016253676017547114762663391427515799114081707912199260112991921395047577136214723775556186685271129385225839169291720150905055821009415123099662634410924792969458272243210742254977953521120617610586129071847303852606468178062197741862514450813692449849978884866331605332929607920012564687203379531477482747364722220746104469701459926472878578003840520758667324517988850401936277894259104078729368895295727771110474914866153145565512360311326735409106198074474743887246174670397021363317444739556979675863387159749322523762966848370919705490273347532132546859093073533313985355061908113873986589204091346652120186812128078313830925199070691381019748492236270497874230898428326715718783653823089934576120740000048101248846962699175456374083754791511379893562190756722191195335015125635346995596861522722049814328485824675307839352463694003646510765709577129278578495915893369069599618584105223930244801176699446095563566895824700520936052835643287163528733389854178686575032510689673209087254651970775128802400351264554264804603968495803257167322079052934702104091962555877678793425430385832612525632491638082963278601181822705040592758810644681090168083876358664042354522550117149444723485353915027974077172113455030712107800027254221166764206346663626494376928126854955081113523240785335355063705933070614602128365454336182496832500082852627244271275419648458002925326077005850609065272609094177757846226596080112868268170982964136242450691107624804703889310423067886862174822663019952923616424607858350317565133052789623869152245258540873064443361175685348045141647276613902171357986336214618726203773975384798921417658868323947487327669259766387557509114845189433278391377203488168042843435563119341320396870471941544858438092002394826485824555077984184181862824631560441224710799677967521043561337269299186386114181783336220639444766334189429442286648395387875827091161817157206746441643871963726451176489527070962602219474151182896948557058616918277120495270230582025733407743635758152149483678833249514322736042378199408870602178035225273977463097308580289056725503489501449471639010060575091910517209331039857462077327030942462691102686922632194698667372111584822156779708074894400527964952463867922849049390824487610870304584512340992971955277848018043046997645763198232553760699689722315519080196261759592009397776051350869865732807007718110408773205086821507429821197624778899694119988241406132091383016569953183305655936824005116519982033859149411930640442694295296587475527196215699071149233578750251430262719126567967164650706409887716865037671443082900905846799077502895066554449166620544202937174794067054812282172633267397128606665731869365737160724214698258737422850763654299815961516537798757937756604002113451155599124011732000674180523417841450311536955131171699736631142199181727263970847007059926800977252402977129334988565170012088669443398902738268579096927346610238981732715572451053955708914738620246473025117106957350527289662087140151289451026290458271410569418123817029521304688968714834552296778587728130178317614222367132695868280498295770927009668818858054729367513484327841614190009378303878776594741144713019883677826211252367289562942825096069352642921578337948729004302366164154054045461599905382232549002044343282386602952616204212332250928006209379702080373426304391162132864587876004198212214844172886777501763632258817963063675175177399856989890463968065911804826148548642477120401007990641624591400706986784110032898995496015841728863473034640626969492673305282522980021846386151251753241182548131934386595357152755225639921011875503483152263250209379804500676355871256183834131254871330440112763959144772068454234145173501746857186830642598897375781104058796750248368477022920508680236115100638337604664595182135803532902482893510417922347163032389643814759836350534564450514816046481812957612379484918982823897592857955774565845802115303833193133298003559169101432858190626447063239694103406787917971684076879510493095297603601324324585973171817192756203332220394962087250270632601368346430574473224147220465877286722884874922029937645346188519673642105625643216986018281510831763349548419167095333042631258755746198857681126460596532517814253967194461184743428989533729922973343073616418614678199152764810462462153190814840473487788026375406595243065190634560203227056578065542906877274016163352535457538271461505374172229138096621269835708092385427663039906454752252719938869844796782451607905797616907963189052158006021948110202726135355210781722603816598440942438486784987307882717755078660644030203188818544404796384350950688646093346881568424516174680193189202710078509293925905977825016142906466179752631033769290867837325677194248537734350764015134987433174796231725983539258590772604536480480386514322060627822151346798668163214115368372722354130687588542884093914556798759066249646622090879435097853609943032632485873735247677275931284589792180299730768620505418507679964469949132911134927598933451946423639334009049525527338116146521785952740519724207951066926509188198205543323021431943775839551592010705820506682384913652504288606396829129184127291584300890380826729646779997618478747586125953298826194440927481762429602031377690686222111376635628219392679050936912159601498196231335746958907333847430059862605973162138933279908443489723098491309987960138613230677832980819872676352800086039812804713601652735060920130798527902547701166266257822775280626013261164512391999324979618299840022552357824963279144277728937805088277101757696900461182019466049089903680503301396218364053325297656211853883940306778812428185190183953567978788745233784099336755695613122162667234504610131828144258708907432070291772448821710695110494869761517245434375478196926332210659948076662355213360185655804885768179613321081024788134669759908030393795044156611469634510525770865812250519930181485668810583662899658887790493637386163194012413649130809619622299442137165460377001158222018441759672116178581707421938352746299581612639611170996832950823547391884715834058091451400090339517541084722155053034550130026785580952048998212732041269699310201820767295706865553574987672731879929022454319042661930996098563132570686461979057474541244122301549797204535240838895748789180553360273163820871891610553251984856192374691809496008940908284927266318636757723578248011395469325061028968996418256257486947572335202066417700011821566067754713887440281709627425862417858058489994590787870063465138159625069401119739080658162232522922929826245512778410645147706370068165909285552168019359323921251607645176404773783409655025405608251204705152497226601786473652357513598411911653015652315017247375685507344769105595342307932308226355772720769523233534118378715400060640212048299603934894556734989035850047670979496880546255142175266472144493230935430941354948655827034635415235481255270891719303891275730324317517776673878170050014500407923747522441890503636997776274856510539261929504809337207600701655903261898358535886216021178794862001593392667002000508030088760187926619349397343513943111934306907192960062066608490787218704876119510671868661678844016526155727687768214337754726215542751476912370954690684909162454738206189188053206622609753369464530942179678494951689328578468049516690673755978050937517677282277487714123073188780185116546331365371662806688078576461908979266413575653831985357576505599805040624454005446118491044207840299390911665660365935993987546986491983046713841158484437970515284159270570124873993504606600725189004162901769802680766260026244925137447377493574385714723933129371366862757856097526810577623899830478387778802077668428573789459085844656730956283869981313801791921275600688859846000124216156056316462822996629155925480921298722086622381212014661273141145216195654391092932909307327559101265990319548420763829109630655132625619455232194841536238965148751350485293000712219502283084352894786717504662563167468151798185623807078947496582552220183609421437631613236364602852822133987495405307148056333773417727164757027686602658375730301453400671096614464235314839107318441960448776368247676092411687056646930090028189879727063107224310950244313701513632109292772342953567121596532317403552459280980885207806247483759538923085593407610064074351180140891780542809716554944688018397705821820092799763248050181080713116015547820780491194043660912682448813026015229346899487181164168561888715843788088495472459435002795451864223785603454191951980397989832108137190881252727303221170502738196990331162486377076448929705672494147721849539456007879695339307768978209996175940504431724869259830612311140885670190195567456221776007190985851434554883537710685416530469808725427279247008409735936084825502439949844233680471543254599002197831172626605397753318891280517414605544827216005320286069114299272672804124736846104737213203173868047149855971506257158449173023797199300813913232628599063492778916004235966857942205744352079529682414636652278557210024018256204470421773114237525268381009332364951636384466814130564025570552774648005396083209535851220391492280434568665996960729526720061769518656149734327940878249025805671196140665753346844807314718768375949756673119861485658775379905801118186981585967039996365163645768097075939169120396552851508423452335221196888641117050507666533927672912132245634015930431764967044701583787907993394507395341541303532042319087141983775192367216928218805676123240478113649518459682312120337736714765688697933079020154595595247668605456888801223768703116948183999001307118763289504332712285801306658534156660311411863253990520152161063613400699019481821808995998713820500734713645597960824087672810642282458091113547989073547595406299686407221857344782374579098513464837455306359225301741244602035544046931689298549643444629441573664481568743774914504115499565605338411543960647693183534738423030717973307753054672901803725230342585895227565672436287063277354122737209616718380821907394018510770663237722683665408516404079894289777174224158029563164971015890967606710485973169714061714032799794332063017461158304401862618534008417488039755428768289314799125165098709338947969950584348387260714455821756616829785786908696449509478671184818923364810416542845642981953965522162498202487417310372748173854675038558893766239183711496149376135771271199026873697684330927456793128163056467162173556675233568350110881675078787617907596661170885151907062943263238293973325274090783773801851191323699582693590258241042073481360742875473521670618704333031291536508626547656282905343627949738011132031534352545807859627971708721850284349990316223860718591503600313747559281788948221725472245686740634755495542626363953764765785539632136750092725014757258505440955157611584063379024447250640644394356394867146024156098804769039450168822251679919657127762989981052473963376824405342494382275650581958488046093134894127855590511235951526644239169214195921967471970876366766672447116872433042146904553507987120744647777136231504987633408265021995205686588281763988323614189281820828978285097964788304669062130650163101831766595194073535864649106408110194781048880703233754665213064508114640650117766407747513284257088366706041225512167358841404178905793456002892135009377929372324308584778019200910978203720519418735696127857562951220149484916809429159058038972833533256722090114262316116821437839570398492823513340128402985457721002581190792090670830079897901933124441378916008900160464715335583465811481148242190992664234875454964065210717702335355789078367020438766251120077658635483060863183699293602390874065283968384639941078398080998981185412330663053150620237601272326833390658796651164475223826051926556073223603670716890442170091748694202825545125747345165295733564721520564348621668543235323984993803022543911248531128218122531222610210164718553292218153405624400387781983306441596216701095380887710270839696293639236161728234787683186664882238955166294073254637642726657100695060480302669047326371310245825728041396637092103173153548773591588888601601378968649087994440551796222507274531481576858290731261187910982553878568190896047628718999318118326547890825641304804051739829976140337983491576908001359407612130682483157626590178942312174868583218995202004031235428140814488364730132115566765095225164046848934919471320256909915278814377099293486255967907588540244512138598825453272150420640349603488518712366705544517796766498620640236792782942437124015707165697400669869330944172520611943840480838220787376272226496283334098698353151320685602574063810061821494937407359404395009286572934864664124916148889583574344779262517181303582097989686288769370372736695808932240784830218378224114813387909918640464160791996946974695500093396647202253822867914771969789241904337514444426912908536788996656394639896601576118804321746238708644878913272945731729078343764416908586597441226167311080207791329526004887595329563262354853001345053412820517972526250100531379876638884870197274120781536700238242125741966944908684144781746019276196308939884916695080200455935520933232561337334357450132592986891188298505455372372381392248912565536841731488905610756887685105248202610181687613671662604479926246186751699021775216709759395955729193501195203958665203351851989711657832989250825807883901195992927514729223176334429592609206392025509416404164306200040808211576335851226270932886824252736406036958109142256951948583731906362211411789886642051568562279784542055707903811362410033125712061662298075968456714452547405080324322619085360318958094676720055066530028768149835618336045853828098737676383776910605974144616265771312768253213524000560765503821707117775218217689072975199982130753493986286675088147816799539830769190553029311307195770366480756801399550234567848825901190680311018176245404119367933589203691920618787532753765255889717564174808303509316757911492577603741483858775464817387858316057851876684457950566550423158560466222375027936691628958010343789975835625404698322611334554313155369029674106009997475350318535806598662471069225038592066672803396529297302271358760615547039086413679927719172232716451352110826300848360421467040313536117816906035823990825898153256167723933707687061145950828890551639947198871573847910418472875601734437831546662501875186528270187154603825198446221665960998194849193451557857994289427880798685006561633964799240585979215916555470826991765203582511887709203720065619492534805794825394682059108731116176001646694993170829746974366996752712581513711238021524458149254540188921158015046944942710731300793284180072549812566988994806895632296683342195217144468804553508045707430490816574479582888253533492853778497357939198263123759535744135738967600151539456894709710192281229374259308519131526527054520905948995300693729994755095823120502436372467548672607372668783965623244113029255362322275841448861604816253805634702474929390027831554121740962424161254952385116013798580246989601395330988890699085308951342566204729043894536977367942829040428712392381019641466642418764222356497914513847249403405828528263563792476533016717718462615223465145700474912339165041618300354109876068535180924488866904604119344372508152608730524313414956073806556586663236355855463547158529506402359142057463257228198809068239735407174769803087506152948170506881034076052659794020206765194826743665151224974705812728939703610903166386395560689494779453671837447511889749906336215193569250473127067495135035732064912689702663844773285867786250744874124990318448833581898157697235055629181965470115691157534567977592997112142822822166292681494074401525390604356825455585008755772530482701484161804034431700142062321528211620151089767663000937175644202449943905001105326888699521221731318272249259070390269150052523636455711960528911881120593222664227155235923509776729253178778200208726314060660182454802013262963593961427145929325521231699243487004277430031452561615087728154502588666420542144540262725024158336865534113764080587369830194806048331581973450421427098207587600192108132408322708121624998554079264611757164288742736409821798769527577176071918139901855156842890293035674889780350912479103794706648621023383559381534328459829582455368705935407961971492700220316023747130641130703077796783423930941466379987135124507446308352985200409785759623340642962964511564961969031717867936756498490019027556646036958215248248126614790629878009271248594677957315578300963979750196027667164826246649868022865101599615360275170873900854045265167774909084584114026753293194883990142440348742413748551734136393553558671222974526639135341250660330749401648446463980839454308527851559422128107108182315506778691385432974731192595812788497968882403774368464319324587897491713668290978017301470135670426292763290707043217066165064061258841749769468993683243278450763231216509143071307512045605669581864433468279324516450967604373895764415203224988579003447758482690971256241440812534919247083446851954323346648728955500494807368202383913513701082543578093278728559631540983514737147492637625391873788005741259419614680037944355749718045799811486279619057333554397750962416933571820170561819926808832359004251405809519913136512796876440052971578042841921629400007305955553080266024671631883639467723861010350497540582828824783943268381775217860676129695824905888317692043436715482671863142884909311734673234276779842107059264731267513705204388563006583055024147028098325916240847199554883240966075250192076435361578960802928665371747039670983799875039198341558978529502046365310766795617723425922886319201430366439883404473176342256209093224902353614124391282511331490277692735939534365108013912941581185154071514915405541222566047979862643748514280977366613397002474513057273791938181721280010404473896520942695478190468117183616220248380052213383550449014370128873544242584160598369985485331818283851531547065760486512458214596449311000557560926350959034370392117164194245645331532995308606621467726951949754384299362533093002922843107519678273660311970121284252379951846330106738271327811115443979646871452446136398158919238929222164694216445086183307192645463114202196644804251099396753112651909047958474191260483341043052102917231163559315206858252936739125848977330219246860818379712285293123105381356048400559530992662441464042458641974199513418562466436005852917007223017889636412774988543202248744857282276361053506734152936674643485489916316653056953137555556580427926998193530273241006135836839551124898020003115951093141419743102660268537209308645501434749384006798017526450439080619459565863527426681483548184472068474596228635963190061840898430261239241014575697361405974555909254412545571111018272109551203390684026079857346974119208515707437423152468823981119053151161934626733720404938820572496487765859378086620859782774554456144765994505091031893466792461496200927747564617379321012675272900501453583513958646738981898655794354100371055377362468439887750367534401662224989134130296905385502406654562730580121921230855990358945621473581632871273496758221178724642266088355804359295184526780034791792788369122801714547111744055510759052099964906505797134193374944628160539736451013783637478281495632994566811011504691212941303701712060143971438900494070083886369076547002792489612346917773176714091519943974572885701863688814178347097263883008279678386816732931138713655702651394231625492641072223089305846192413002235356645920434494270194386640187110508536601388886332455727912429725010541458145288976765539190675210185616240259414413725224694862118750050961345122231136111084221164779343886014338269557956051621914931022293752593361490737044001696560154902135282060703114276119874195942608736423717060390306605937192051870315264602332861326892889221482266078782545000199833822294828079623355480931597805068109892070958254698102266218281729129728289088400940947455596796289172527776293806465851121925265887338758251718478534585261672165472989404595755524577012578755713383728456600262112176303118162691301418155767647645354269767160824463685992214493193938786039952562986256719882048396769131866881360570056654124384923736920065882052722787827480322149869369033817659917662833688763050427128490114827271353539215993462243120046797254929114256275674291389547745794938401640215097941211914849681203556926953844501864204195129655653515269635846287047096937359929153726464487420167524388297265989360113210212228553452790030713441796401948383134582143333165989986101296168896308863224429841299305254825955854170527005870314594643627912951620865943825500831783046053666015894541095695238612466082890648866235728243565496644761114841258035221169080454582602832316760019259936270456075203592705163551391006198923255859409489222567004286515969526437726316789826358268161779732061963821010532597807279207792185857530608597206427547853542150838148100196411836596013660949247082498240994591504775872343553373766040454978338102560034679812646018236807684535547241453151775293067882099969040684027167523416715465029125408795135314854339454074839466810587065686595345667581367598167366759254404352393518346058062045397422431898578145321362113868085866432296222717905795501391855850841233672765913614702253633684506864342322533884338665088129872211874648481467457825862862826499726446086542600852004550509132416372344515824649127066040496403935809564100738425396748495839300946570394774064425538556113492126920299615560889010198897642420511648042293950417537979044008728195082144052672487715682243594483622431238356532881952534927933921357415053438688900750183859369124804800852096052465055275851260547297795816713535093351215637716009437892301697304869707171573093400466908038677131073451674250276327424616311023013534008487144586997753153293066875541512727600055908731107231227915308409658706704664810613234727957590792409416410275171373959332163039060159246706434955116503805170219634024313568512578665365911431949235490273384583569620649594399640248746819934664191978172519648103757429311107477920382571590021751613519847686539147508215944714557971905209859771962883884601280513760649290247570972813898726620292200133345275904483138720190328417910687725659921971080276335503000940487171733479200459552471870752669819930448081175238867211701069808363647666958452804924328609218043563929962853494070281492452790467403720717501999408075393768676775448425260431927736363863298185029067755577912912924781676789679902894636041605689133951076934746252112032317074436160217546312395021249507849571657692479228715040105519008351300082344466792092114349684234891439190305975497175471132870432283544877231525425902256676364080977000112920124284562247222719328123663231144561511607948750120224758269946317187749025974762651534798634491053389802692876358542446664919648062395476950484497578352356794893217153676795688388155617066830456693751722178262987790853209539569635553509829230857778954263891469589729273163430085360666821009144754881803437751275314222323764006730889956154585016068456752152814554727749606956492902946302550577699704326095860612068044671921149894457455844193509853835910587692078797319165539871989537555416094952027538547383430834028716737771379642059125902833018199798783021035269848330562450781957970964545614503353159009869971106212176064972107784730898324280188570803674506037980499030457679377097087576812659686029203430682728929383645804140480742737766932528739744677640969002481124408691886282890395880064840621537162594579097228842814936862214980123642420855723324648052425284444167031418437497485729893892795979619057954132550253549320132026056254422984479616323364979028743847735163655348727852090342957923329926512673418167968971505264177121966032218296451204895267653443895533952753173768160920257491259317760807015742836050296166293455248155601158414948554275452621810169139190192733805739355383032936613772323926576743805433829497669568710465425745843063959333604764312708617921570927249385420804386430365235155744405164413599449878254602328283679305521672920296887635863937468320921869392062369896690475678848826781517647287479240990623995058925005379205824117196234017024098900243509976815673435927359060670485429780545777095590086823447199485154844891191342492985043908537327503551924156604848417861947115745028288065362944700796309576840233472250782451749152547466661194486996253721058701347904979379485727546627142467790555598591182310831619490797259291938007923198697698960293847524717767776730660156174305973686492130104143424111934156763706448010584851274384501688541430174332368574429098882326805082717259695379472180361277265965920146130260313786078195734814298973105434428311458332269864365777161550333308995807686673042343872694446470971022112113061653562211518649797351674974279683476957089306990080983673593635620436590742443121392520540505729229195091822213486010975091683514750124301747613443679205777956013658453169162070082609350809701249463430926506581086159468664907918568154024476955386821471153179870375128826475752475602163994436733197559238356062846661769171743841765567276991919325428107699391361715180063490710867870201598651632208368084989651634685033186693682036205767475918823432878298897449576767768871353667579823324246850613474307072682158284249845645661506697561992032863655724212282262230714713643250079116707983875810080350264274396052056052626324362443065422790416851739534316543833455805590156831425679817271051757096913713120825623945337361817412774988713730501685639009094707293210000364045998173522665841912910959368575672278355635090577738730066330340801786420829069322623807366681059743341348619619608281500656530637600264398947029410974687812830416880664840173463836326322666478137301908822644246326792095983137171325876944500514369280856077921235580550768603760548261987484509363298971059707137740096393937436157380811257890096309840068148958786379201841334977954241563565743543947064798515599634267399524286791945803520516782226125282809130717387688526706283760828194817734785105365168454193087116250184954000651632240539566503745647138250471374354792647590172290902365856230423814994866452999020696244350317174041514379128504398595919353664923344533946907072818698814692550437251469030738421395219662228261894240537551063072744389467330662000126962745194384079534308213777531448277413710917429468407790781800008443818473751530626739928999128625083304453953187240774271462669499066372262225126977973593528882504940743307424950807990410834314100387228110490093418914181747516084521081764489086404154611823773407354004941254206377513493209181303031410877531048262084476446955214945376894523518423395494435641408529671023284508562403409611836438906594422721396629378807751171083299579181085161544887293897507469586614599933017639287665965487675206822614253529630364010948994496780779232542602136146487156665164725995696268774630490956509718333229448616379280927701402339722800432144560669354267276589401353824094800658862609300628337457650689698005660930456550586884766716009872370238521124737948966277662896137923555604318723122224820443125317395428448101790904399173266247610371481107031409882447563756125847215826725152939243353680711836636246255880584033095729641800101632922809407911648140450445453191148662397250543720951551044472314046267843378082985008373554022920175777359096334507143596463031980581575730845609088207494250213901079462466533807069231694993910459599566144960737102054641549670590978583421756422373002914773558810940763403117190071850471363830572084308450270170013096467001463563220819685679414792030301817442023007498798581697809138028269468221346046392614657023888670819305456593760856615369841396891856211142562284581204747994713324281177514463480821647404253263099682794564788491812937031214743655583170232160652869854377623119966644494151058409255317285588604876000340792640381668933889209454919362586883947916941098183400235789896878106317667913662872272295471056522440841954975160765581060350085101827999686897986152868270706122642670570725522550926569541492425990653585352966528350164490560663456064942182325234716613648797063445665684774261437729770838808124123630385966699953658738950728107082965230718928136188151850847765237154804816793470838333099200643212249087360956524852732894609152717835534488768319275938978449055834241806754010374128427846757491361044852948956283192786226387661013759663240034099365435653253544918252793109058016562959787979516309541766659039366631328329546697062581619266723005387590997797150169913761621848148287362659728679954232145693866763199752252313435873077592297302430829736282275810544075543719958647449181407955664523010338579919779912217037282684111410926008293481740393606988830097149194516303245208919803508629523399669690727980865349792627055700625067463987007972806250604432346075870988026103760875941559807726862378364092764614547275355071652794727701483785603153338768644848014834166104798322325236081137855034855429421428960918341775514144985983507029899735949983959408800265720601260003008128760660350693353783865358585393994769503848554361077135503000373639769140697022035770665811550510383000681067957235794917603433908584465717268850815275626135588474993061768222883776640277715786028317956021236232243087698253451663672533106795536039600460163806284773004306266169512529411252777316798277173534425973732598711167246940140624840007949329719827604711479525476587579060376111820362992112364013938756795392652551095895106874053644405212577770888573499832417800288429198222252192334193102405097993747716152262855638864376025391645833616606367401190014865256214870730836079870331987710073022563401225381466202552650235500736499244449138320073946760000239804887329800381439993493478668459164480435541322548691035082571260330134888969350223971800564903787404357378490397309910690487425881386185010117202909221757492901846163009620998160560036413816264789362930931541066313920347067951977580489240730498075231023915401208068768087403044746003368752062513060770930396597166478121666487652561801449877837189917116841397203684045026003765583846348821283461485634092280917707481614362154541917984162965629426420410995529882065581313150260233466091610546802010609885687740039381951827182131500549502951465732009742241509781480851810874317261482633778799749238547030072414862776683559573638090422145433211133272745401428061185497467173983483334066590110403017095218457681024811606070372819051058310446687426712048660545223323632858370173972110685430213976653757635115040445813460499146646095849561091778853872549082612517858508063968375973047988274982142520596677386531231397790286773589120649423027811463587344084824693425224802919518039527634616322941935958505519991523010986563426413361831136397655758979982821214702042939018067239415476794326758598447040746530621505837415462212116921365457193041638784816537887808507296551217917852353454948620511971638810366638902221261651247986782668426699901153386934946133798892458985866318561482016090759933458507428816685386333213877193967631194246996896204759178703617549633941196858082993966124263215680673036664182925998844507119873240208468721428001215917033205316842652195666839371233604791628199347675471780306596783402361420517452776734944136941663920343706142651041495249062148011477001913505446337330808184886185327021848853149132162923658980857812983856760369483612533013255567144585651527626313989805929153824917653073923526677157231584033430955842356260153179258258256880874774183461114091558859964411140555340690553388509702255669980387758290087129201694307164703035612088066627260812761363376348175866289752823160743240622025208528382492267585105293560326357565691546990380130972711204268935640108827056992465324746851387505722430952464410197012663207325708213621313922125029204330215437162388987279873984959639851877779903798065409734052803748540206651624126855412945169983529429283025911081883498862734256719049754609067176718016863682898796512994898537317777764189259003350094635157711617200132307705673860715208969125914358918652225582282996125782091554800975208182814193396502809123425790955861066571093883750628777943229300317282806417207345887836992344244238789638151323112223099650306558755009534000129365373915560171707159704247829859156261091121364308970879170496218228076637796713782400529327433312274729125648225304927374637091146899135726322602981298258140182402349724867828778995104644476734136225613755265103338562762339819689187693985660667115101376103799338578247275712082460663121098072993571564529769343481587630799967689810270287848382590966239055134567863281167996116478184277518134963998678076842778482714950571995058632962222513370843809840138093132726269473863261901239375522863682153380291079351381853609471849186173544125620360789213760368471259330386183360852935884785753926429901128834726808668635984645213261123174358900530622244880031335122383054902890998947622953592587332568555943570660138695081475436156234505751202703205910117271034080476826796420723703765536384685064356630100383540319861661307884405609542094183168506891998280175550220834624821381353872595790158937249749533220322844180192049176799700682708414259119440449648967509329960421272382623276627623023376846953244343470163220538773976758947972329300110122725365143631507673880551983923648779528305057804744129833113881300344237312751982718855121256734962582297078400596540174260242024706474313511614832026697244765348445282811063753093668043908980002125061869280916966630760181673015721982359136002584735539013390457410189134155712383486394145700349698183458847707571785804910213404352566925376452622733347384733521344998345862568627455799042216720350432429097638587699925644129383173950548714605315209477941993337740339515657479493396611989021035270451350888670681895329842520421507767326841719132622555118667298974469510451792447040395431031005205327065032045481208399323669451160143650365970374999969104104571734984006227301650978679460223712212640016481421363143882794316587873913396898926561029969527080226694454565199285871751240935446234431760660479727375451709749542215391974707836112343617051657083147189245815393235952744442427202830412952095637147542950307765688729617231623478071740834591047441937746723877827357540332063221567432207463348417003851029796942594422144139772607351927808667448670858964591694355244377416012628136820646637458126941869504279723435608976299993660599830999986086440966768849761259057658413671204717698248417083239869946579075923380985761114524216757511048667740721959969917666182168885409003257132286780865123825578488349153203895958922785979984500409048024708445206259295782578946533931817825576891115891986127301475786631894095298123715149382657539720453754846084096765113037020830669156961407004528217040762973532791401252440647402019159444129830672605191447338942040451317095311619895942004287800737815904523901681985895346094161562543365441127861900620362552151048138315880884611991624714069629617225966670217472630120100755708929101196790190732021194354408271567470058335168503861748611163761255043260007749191482565640595346756157866193080702288867394033589775017236167449823472920099537669104580369218561676830706808695462114947258565450317715089462384226775957577916540579591892002121239705683812472310601276834284508985633458551932670041954432967106153751630705448358083648766219788092011964988782943371044312998804555805318922010416322959751280968909439683121101423409223202017712143547934868486110470289689229673059363287514463327325717551676322538392566274282153301696303464755949444540860267681780930208575886249198908965693481297662178123391128309020889274270519244378930997889569348961588677896970895800501826499437864128266639536174652300456385703373583232176266484132347615270605588384073002434073822254303120886702474992372747642432635926777536848641438632713840140586228663120335521664229656363195029648693217530759560715154627608290626800266949167997228203380661848130586460285593644096333310013108458157434327696853297294972933618738558119967742835601859452514445533681540124767659165599573500019535322825637712354542866942292469214963973052641654233137179764821496263398962958654944813713498497351842972075074178054655984777790967970971400154463487539377702000235038839976465228717786199787395728075747735267534748290766941853797163227719879953048131579652856035147679727085650078590383783150994081257345594929144714231964334533695738999886595062036421330958464786762932663058090880095675026530337810537312832972487226717442311746462281505485991009089739318256686399340026585327690882260350062787037708268339043256030936559398817551135059914222944885425432790944608884933948699417762131602166968426858026265986190690506655765081867679746159450851748865948318577690817692016446285005444078998465587683484949955262664740245385556801189083721155354218018210809872662023694373153154919877042976082167762057936184902164323145141012762986009901713058476771171455284298365969862207723627773452754745133396322234897553781141165596595235707108934891496580299607224363000332456573762567543497772064125610880684200164544488716697800373892066773730729322688090906745450459236530716997604089591742243396002369572320235649807270006104089490592517718996905486911395980818782100307900017148186593162314469837092838190107664953510907935578266407556886732728464883028432055841817185878541378563408463677097637928211280242237095689890865204150190914652197459032366324563814953539076436160852400093980542860775517416197593816523429151033505100400615601315256576896388486300601145241305252173205128634912499214033152577038525686024643575143859055345330277314812074944249549420027727755835387093775253065563140810120253450268356910743093960013076957333096156864423326696981505121273551225280085911043301132919392214630251474614811983712338310260712377046327721498433540095303795429840744795435901045732427267360257952699110624728824871920606238126971821653491909571937691634655364093103614406498738926460005850847119101308291354476934440550809068340570593000534668920767940400024619077036177007283383932941462215326300134697732531573802367310042692734170878552359457062151988850717884256667979414458455241157402430074377926252228448282240340737482715803949720604558861318091541274401034099565643555175349849373410698655878556627526483725458736903857466846931306596314701297190507984974936573786956749474520846595038123952133239729815876402296004032648197980242809849735396196261279034007258580172518605426370212533176647023474931447429079302849841028502853081285421663783121205299738413763854488924020627239787413932454998371559232905713619157505427731596440160596999249120759165569289044770213638964254152594183303148614349818523274117877689120322085292263137809448062707314052291480678282006475499163168255721029649389725568857640509861265687586396219786314768489100183367166464062501473866078901710865022185085171966811892638716290652732246730486240307803866697364970777695329737464951346037031546945338045675128269416279553946131230827073231619582285877318269782698968501341304073929987203722731280472774282992235772654855651710642993899174955544023366853125544448382485794336146257189265027426939322450310157567464811278060931644946784213810521289839450462561428314124447882948442239962322553425066421990514079662183925341423190652144497125402736891932708851693330462986772052940340196211698837805089171829855043920738077640149566221475025323545780875988042631562016188404503955870901936925591171990351043282459454871059765733652613479846505393416739393307826897688509315890829433220151004695548822665217909513544964417648951831979786801086073250011638742983976037487817390030149963206103050970331163371594599056445827035224980078585312759703314602588153911944932830610876862964019473798016065331326520445287606945119349112952807674274005919114817758400940900867388459645101560980133357360839987866185119584283889950663227671306026419142860102335257755478588742000481474297203094199705822975463701488234536081863686865484033108454502830982080202912318278097441166379608611606489548388759948973597694595907622535396551862870114960686402125364007852982293421494846011109518044482416325909586896914389352306157397074073146119025689167944425620324916615024750668152337973864896367550101354499019763405533754624145513096556017014535350361256253546828901260541239057272286359350980072384216546830581107302692732242128866899858499368149609912051587254328653305735159976532542335610527676741265491632249885843483098823630784662012797794265379405770748526125999762145096065914715469298086890043632249129919558435356008853770448938389115979728527233955644938656077113837354430995090278175806867516488530073755035522532024724094849275486513193687404154015153553984030286564472717471128941323688825862395474328034251344273971167078135638057326462070368653527921321812483177730013984193503192166385111217809147132790414993628498373566910055228132838616016953519921660399462189112796197885739897387360061352106480245550238660157807850260844229616584513900574804695968017780142663083112877597572401650679412210721116164405672263630126578803956036137680621539852975217178772169303512547535796228112964624498484410709661866529306897618224590941938574185164378847713634315644828629032260086174457174901566162137993097380785382946239011862126425069829819476948659562136199159846315469596192161243306534925606865404743308239471086644960869870292062224697903195735597562748074101058184908580211340771831259015021802939377346198574622196322997497640689936599814953203121537685249086831889952620708041789720560780957131165401908305346016790145579826236334583334372819625044964135807683746870487323234410331431689578847431196307051413875435378092025619610467470449285755116579253192552852920128769318577927301267916446028719418053807014810442910736213958919924005675864759925609719877067209444546098678184566836133345810053101300807283115769773440431444879577026091243844675526183177324201327387052282655089180679458209324813716985585242929575389490752104217576298979211231698457858098128947324222308095037456863133028134168309511630503173627665122302047157455224342866521095765331323512181992206182015821874709620692122722880586923442772479654167965543249142816796679961121699551722691098778356003792402258421959429788274627676737973415618650599969217735929561888700894301914383547241038622718368283726055557824616431314427765854949060693891688181229230517978286817526875025507118490861980284698517514602584355477557423374545289222558275720883338332874136855749084544763475218882000170529048593073111736068451722463373410236824765572628466760437965772065251525514467190234721727449588640386162125281375581730993393985932182075193961508064098345524459725824107989370049140889319225714978712322015323020620481232728781693123662554272700800991314955366468413986374514418246506608602967430256543139856589667244954429635800522327644898185490772584603949532809384336021690475914874941804506765020117258662347367487863661407717130548081914580181226912191114613472197300660735540114003316026038972002878122138011745711338628364625844130112952875319109281499229753193548369713299641653941080643402219119018880615979800960602684228139011833957249186100338268951483248676672257228819881852284721639940457908683342617610196704837190044240712375436197237748357652962657844339794758136544739229899606536137507303159562751882836177135147438060890876832897707953802488311693407865491408430381052632085398139086548203362135840064529550879288295040204301387826277465567432058648206255763846592756414311365343728012731016314650280362608807659694515660548341181160563884555259353611994455537367587607397126862685774329348865905947397250041721262815983387499361680506768783688273254445094461509466498440489299765919541769801096932788454494201807631782344523857674555143786012540677146150075486171181032778178324118969365788006732832247802458545517504013329341020311862330892721880935306867344864377727746088497243833771947897099491290071631033173083089581299566460115177542020696844480642611112407315441156124053360353094329572630270480802218229157082720518638233514013499585489168993903816418541738556262605409650549263462024929714755192371177015093419043502891913101417755566290759143375739372211397891007076390949968501917407564689906768848920036527999886192829881497553391517356484853317899876836148473368514792093234769387425377494877052629953010626866615688228378054758981241068054964110206020768421750025067985769969517957560638366944081022966388309710295471881827592495176117983818934515391108680206007140649105508210596869161481538715372350918578423687773725921934594213459318170189135009848670119910536358031612071611542789773699310057017297689053708698905709956643966920472806588880000011177850746874830049199045787543629564111743069143296939364746068580643860131761740421933711804908546873654768873982299219146763382367965223541256195206639531732622498258551898555126254791615717993681834828985527046731832183616803935715522356388256823860914980817055756674188798911129424970080357487955903302612811647320807948509347123836943890821498598393543306732783396999750122832045342524933738466550071898466335188382013001671680556105746299343645923866451158180235484020392957697749821581076062220939098895942516079120787364147332994473455588561709283565380377859239577926191369499927361930499369214000676739371867789249942402951640227701325095462911675111099017221077311567933453854590503947475522328125735905529001473655722496250551822864136135210613373122925733432776347169631004388943272152950894595127325994735383170742275720794229254841090132312366993266890551380546239612226033232400144879979361724768125918395244223490266967976603044541232079968975447152571015414316763336279413920675348016839575821158088226927886447896783755078259624940591428144854623003542351971678144731206824877582523680196881708929842040075294679210690466535866034413972069677089132126620597465071157477887681661947446375283637677640537704552057227914382676987438661155526725086034395470440575473089005322967776478793562479821645470257459398631586476939684217151960210423184239917704683733799677341039721352361094815098533826415536713808430052951200146185537452788799944330262481892545674388636499115248646274018033421395017051033101340140103855980415147434764252132629891201043294260390346105299871330611489765228384649039818995291682395135074369181438318682988554812503123630699251544644577293859285651448784872229544902511860158053057274648127417590482146697231873544933199931664256802026251025991293807034019982269544601395503743945812740857870251366725083284463023098296422103039467881196524510916656529385043794482866869114368555257127420345289121068648566615709025581704406637523246202573397186782408580840697868017803798795254653974398691295858819275698226748383922717995388362643960960640798106760114486874270986229647673722295632856197702123401343838829364124509846336134033752963761719628773330284340271164861414534324122050908004450237564489231662431740437163103761197025124981496525100143310055920782791595321046398105464109190811358834024207951031667065398154836441028193860448958506198043720200834709795705108366131643324716501213411048900465341839675361291728702304754331900582685143711651705077162134989678230554043064942928422119504470850867599335459751554885555968621858204131687418501187230309826818753518962111700067399539596789980998236764630577041954549687113463537964631891879478986697507652928509692819761529753370231537816634788473289965235565322812340950893786776807914229941931628678772871320140806943528775608343952752181946063750035681196284934294374947826516507276782619693928865919331928260962333872544440568798888869580461603379257091786202445825616026404763235998254690612915743964662500447143721834416612407401949968829689669340052747914243507066656841835699057679805223705437449019495897366616472160036857337064615602114129813554100713064038057060776191617458960340047667005442596263631000618085711641032692251580884568815164108196463815764564203949718968218854964993765677037020109118029778759720872130508727591474694195358235564675410013546688938108979357966408826331301005221344091318123903869225322785078517082721831765067008600789898593727881280361399372488308848568332095381262607990237393912860367903966470838587901670174369992679838892104400299383466639524244196462057726048129673596961542226157945163318346902411376417054005223064570645526605900232478914644317351956730490737952470083031492442803472342218509805507193000840087000392458070307193495613428438914975552890932279313891481052260130601698319692099051115200482941730921242664872146655207528492793800823940911117783779526558572659937432587394537171665294670644205307767272819228131362919748271552286213128464909502684045259503911639880192596972118681609829058959192738406409044125496745754252362589307387475576306676904808851998048815851115286193732222404314311056242260093735445723984066927006394893771710860575171648090618142057054296033647035356574022626809224109736806278947025356551306124346838114955938370890235516248861198132934565014105086445109730468220673746120463801477568213710705406974462418438523780015521165314662296259570840805474719919826231912280866038522717016330074215369198335803090484654384504057042777051217112180652374036813534664697068223694690671976298331427086715890396200274014063519295898996846992071750567317145785060311195708811404803673526105587337841024777921755741277106638205314542547680795812786005206394681846623925007540102136310289882863398429367649485533653096655020276698934163544047412680849699481672838201774865358854396186810916905925158146928532588458719506610909794845507361757235550335843745382644092284450651923992034513942592823888697293202746029525572552981035890876086903090034000979225725775027694614908119437181159277089979369431848363359879222907845301486156586162208656924738784184740111286803178668748261941106620209810034601242229877704284411156380196265059011597425188727325410792286239106033751731603152746467796098519434686032496114221554064818267797134832007691963248571902831452942883009407452395976154964211158959290081447462067452768968471069400589136293820419334934357075472843705709557064301079247134843726167532064139684966117702945238301003867577020398285774477959525006641222259175960699728350430880786769329323416182923440626351909831091776160397749246784747548069402497458331605818529587847493886251172587218636392504775267375492165993698595868163966063606754863179106864402517367093196440167256564972053607262894355258891275501711846249827160241659669792240369502501930883531095214167879679698025843262054861046520976097139032796908288119263922113148718934101839309809533173036962202420403756147839328096254616457455501190867994892473101234639848103143220190063853413095346713157727934692886046947902295745272205477109980489197191422805498517336788490389178984065458152469463591801050418962584316043040337015518223367511798347159684508585504909865570715009467642742561769252949939457310904572224078616392885779803882324646216174817209092201735935596844832426881057519369278694978189326591035742724501430025424380595037701742704920891737979317622827184296959862674239212143008525805736740711634024112725045653816092475201008456690520551504881230597051839638264730400938414270841226347641982276179375646689791361045827467046380668231342015139540563485268999739882286959896149728229654523819628359733201596319922782921991040302990215422108853704967646224326654675367476105745984013254175763944362732105629351468924531032593329274414959514548853638750254551043529807042353336338942516816039634194162939325158967618719066063450800239558889754752912475944822786687943569154986895071037040121113005809540025027457406745076628151162602890287055389757930170137659681743734092830673848896230965333345296182654111265301712065250350060705409736478643411805242142330592760087095538510589064346591276905808647762086964205993741775500936202313353480740219402862809296632599236963903824843266530963554054644525126077942412777757041663698360211740159697630746286773098045248330202272161104769321009647100053852126308428996772988274590605386555045874892800541397975939386475475564906897410303000053763849029313796017181197709947478148757192743839441184557336413828398904336209365900548512083911238023036408532594568241606017403733137705989804383103987406740036392560882872274153448498367711901096911435122392625370848793150192081101388036814567426948881668416442949957265899390095994702952855217285095760002588108581095636320343054068745039146970270335750997231178325095543029539143503349439891771622730593263607225629473206643838743724630530274812757706893438657382703757879180660320470761071433997499747214163234529690142367834976480421561459215957803681764127645009106644897788075391473461251278688047259541941642869225021760463182733000250660511571091621987472645173678039981066377372155165693518079527477725664172259032560865726388229489090993182676727342335740733194941690427345682374250291439602700882643385065351423871056158739882519009624161917345915954957294786329425921650293408878288876454531579372647931926978044803990877510664474398304292610641504548760057475345518368045098317223030376382579544777365399176672514317275439867751911111387401461273999984368864082112372391814167980926281832693063727986143414963913379155231999409963093888790843306204828908630475259262134880477452501962592869086800303715500202228300011684269698224933616495026161520667096013814349260323741744862588852719706909039041514178117002733933988515134800814188447942972797599656239066708274217975183239607918341267948474153856642494952567836758627099790361604716941911530788070532018501441226269178160276505197113306387725219905326301501023235091845009958233942945299425317716678892233383548247758843450965973627650425594736010029425981105410287405358968702905619888964694781842182056048572028347433439793139302416334553855073653286610606890690622607422621977823924430697084876390809569749742411182061420049025687610895300928227336477021509718481452358470954344912204285206887562308444707801076780994109134526846506521443294349999214649481270441363668183412562456540226787920150776324226276316974071666317500815383867900205717913942688481917332857129509810022884513686926238936564458865277415240930469808158617527217002600979784227328206957265388556141590730973208248645597731135799928764247084346298346014356776616646389315939607524051163125502855078171975685731581349580448349436845603291876732880439711765898067739957183187524607729911159054469824224899667329329977079264557043263812335055412180141775454853293509865345936150648767280074765405644303417707959861224656461753175494941195384532028371177465872735625409150718760365960580204412943694061167573650634714827978465917454709552246055495226232450038047684728382781816444670597456064529157868525777642448374122272473592653715679996448892765722069397603873910616479959390844059643710360074847974773716172912117287730691104267782361028823929130224613902729824736637971976219569886766106151724192877506231112727485345902256595250982531936259125287813304560165919706590980937249583291007339619985085527776412449025140257639202789833883619171157805367653511024278351613765803573259883567297329164091349535774304422244295312663737512082718755098907750028421949298265217626263060503676745964839479573025955189417922308792721301844541468356334430396735207520901107213796830899024166477302356846134792625013163840412427154960042707250200792261027920209813796221103062825900739873896431493537443945024241088042439437754632891631658241834821468493628416020716284620727267916548529256815862002725485468723766838055294318739022684040657002416896593125225846726963402364797070767858904604389948845287806937586038956995904425855763511339570473254626703242462440881454882761097509324313110439204079383030979881445523525876754274131230527098729576676209842294331782054993015701418531963063735480316499890360610711195046041906920932023138664751897555309479527727105091649929464831909827561351405500522258776730479456323471770805392557967915020633732775698049491432393851814322916816078195736706200117285985967701202813573969072586166680477845575541875154325949833121878904071210409364704395733755536164652329607286713768177654748765168855771675972164108757079446559833688033129965911601419407853220280754509659498639449876130477144370328058045571562386852534228303610134501366236219466262508337177535492833355490575668799613886357310805520440784784583693404098347322042176612051428787531070890375732450621585989443511207160279483537063425538430364422556591008707352063588216900013710891080680085048647250843827929099899945920233702008942439381229937332075230941512111029119520422058681879348254530332536816945928523748236162319064920230731091608458025521766337809294936428774984685887025520952145396402402047234113708922067132470004501845803753859870196655569886297916277234722038572675248194810433952425614132277880386883523577212535017551878752237353050308530058706677685229676711511073547615109052191371296691256111457190546535144466091071770818280610265565931359555133912264566612533368764780252246153486623607728529259916492988298790688346333732358935961977468153484478333415296614014601734764041342582967712716439511478889576304100191554466168579350723135394754724437461173185776760224119789376624747612161777994109392965664787091791735368756379669134366463913800123843701106466306819053609095658307433785703266572577507372257197876923667796274356942944500759654948585022920353638595784809585209092431128474076073601349437711742995477512686555564524054143888300125901464784038878071624071580813094295785775180242332127860328126590636517344943567053289940529211014550751386927875069857724368694961197309211977553159151090976527874667616483158676979504433612096740178633952868916957224108195593634908262278435013182185008197110947721333280259462265429372624938603020815135094165439852032032380190809465356897881548425755002009315832162301788953932444445288767592302834605450440317883242894654883830161499562420054584962406792421812611820825656267725686562304852014104131757932342725654471920297812695494134416874658906487886416869230555538487117194560043265025086557069599698076197476461025690326285233535085597129771744382170952376211958619926505284033494227721200259436737045148302356554344080282895149918238176519115204290033362964442794054345562445233102249731008339476153310897498406905248219081497958600112431052772467601976692844480611767231742933651907003617978557617339046394698377670246990279322897207337233392683677427780528536471766425646878695394817491336897260302833267587056746045781748476062436461043167588477207464336728041605105724339497339440937914062393364548968984527620252313621111192528161470112590895640275868471579884288449409838854434493912812750645121224595736358877269863886981696626079151285411604096867096446359355916373840846244569843918328433274994067967859986749723394357794140729580761172452794867604589659497733742523591262918405289547473616580419776718908067814934341689127556328285605495993678950475903176533519615351014609281615021715311911692606140736905685771845704641954411614711492661463606133308646260346996980466574732401594131335186093568586619703304940229872784922591554782895007439231183403870108803479129927008176700323978027327069498052176436991335244495016185623708560535927074365986873627719695813746193735788405785309602445518079344216238633684079493702946640457034463353242841767869998022560708618567313074140865524470928521610777980116569730039209503142653882501970321995797229190154260058135228133986042656969517189430233116783560729361300959325657400860437871668831276742899248591211580142331365043896605740307677502359985885439139269281690977654308184682038696820759891242681442708459156599080307531688339769109014796578594219927176218977094791840350867705852859607201541524096244764840313370671697021590781336290184083022102592894120427766284652245090510801617839087362780668447255941813753006797063594676404107957465162354074743785107908020922541867190432890298864329835613813473559102126872424809420388870428676153865667859330648886570198770329608645744450392782088570095361036924825360939887963992889367229702091852985166405273766840941736973206238249278527860264005941674917700172844598103880704733405803352461693237668546721704793284701776617355589312361972510480777864145300342774422501602481477742190222420421351208172559635236050538776340985919418544526415034933198134317986008730197256677832269701682743335535013186168826596561894953914560650339541351727594973132508218748514442315310707161684131835386463420009272973943423814773176009244515898607361616527348216130824331229629193847467415483508440684736619188049207590039957895262531588254254531955049659319067362722778868051982533598611107332882256011210934164303737033785776142696577880336662964982974340250278523854428510797366044986273549914022056211536792392184542143348871003519925016452374951141972154482890505491984715932027563796876629720789249085214109118702963930929315048653278662886355066312469766582770472021993420353906145719865298134453996108105838984357676519465295910025809821621902210583352298227837967022822106524378341727512727829213637188376511811328807060647984655587562254971679574756769786030049549771328342334944316167736999241342380995220377668832825327780491943914323156273607482699823051495870396596839084773588759110730040535007141800504437505391382301269224040621629222381276964993008523036151309799843452691295372450842935290886983811141085352748577112364882736723331028974908501850783848182348574271024164673455530321319266841931976115374485346486629421001464726391063499079347588391040281015936853694599861187370577160323345477717311777002002856865634964573260065154998658093462935266129000252302233286548145541035056574693610945637856011773287956475940958974145701156752292194474572837864222780091916682328658343791352762780951745847273121541976751695753255051617811646745301482791368328891316115517724062854731765661330993239145073262923856215604551730648561839272007897072238139437296850931878236382456080134767455086038529527044993448835152899033151554991294877728694644032055721679886707265526538077997733261010208008547379611980794694893167233393930269491523798181310465739585109780963985848771499186117792277129162851442427052189588229323004970343546879694798759395421325891913751235079822776780064168953773103645143176853877831420898091774968606142693806916718315802943223987682154317775238461525166693075522902228944792994627856260701315523861390161316123105390894938789951674438355305813272971690736063340549118051371544605998834575879918244117151515746050316917910924016844209419441123747430616064293877472809527296633725440369084521857840032052860068887260140892880587671163304409627777742115555355212764347987055013451818528195507674277969776017802916271596408755211481757869001869888811548878034765978292338694624626441418719483726708042371631299674346163289037775451354323901827150099414549519278338327980425458162500787053868182965092985946053958397623233761090397988973634288547022545990407112423891072690859805863611714711395034151732537926318930957227370534151850881857594801194284957069093066194750397409987635902724751656141852498943264124155797624274774603291742967055616857581139303767434932093889654902023827683407859319533143023445587873639007366682424122166016177629197313844410528408837975559874586970465397348331191203131172975655758076186757694499871162186394727274823987748164464331369196049219650103136592305334393112535148417123052759597231520634652758305366286661667091325313434674190826901788253856200938947101440080858518468974608666768367799655166976218053851414324006015065943484536883281170689263792961795410691197717693234638733297018372193077636950685753069013445407203134179022034720460630456572669381852163709822855434939084820968294655017816105081839502062453700239504951702526580527838287438297085597529451719269829812705518088248066588009721630005429457233846168354994303441378935203570085632459107981133511395202004171219713905561869162276268102408902945219461822158182935051650582222724369924463761617912215322383518346056893531016453181264999642959995930701542072555080321358985261297933418221702772659333604051728701449062165841515492150199451756387958780979417580125829569217886313610581385881480696849067791735943401474667707235986102832171333644833446381945854313849570384898647301248324377435825547346914419594446980662039353169179735823838675936042929560900978167244970024426104154246442724484880879019297283328770819440710691309798492139615872032646817517839952348685928328509889939368815021945466341334169016027578043584618750854406284365920607658118566533244098296845348672046584122473798624191167527394344616326143241429519845991596969348293182328924926596177343315853814397218172301342532357141399194721739523683861849427071364390870182390770479918988005058035779115067205888165303684582556314452173832952208642035419408410664074506438454639727715459613678699745368203185324980000053457314218384087085441387832048290354147215652562041257583171619073988093960143532659943859246404052836869682155802153914968183212485400205626200049362449840696894995047870890045997798794954000245775150778478167997893017568638241764374468975192148189429150743321584354737300178740196761694163413712914907109436777078168007211365177242776317483702381885037622017948673996563771035194894656536248474617733361762160309319758536539737838766625365832192596075095114510682568419223719318288977333592294668205076604383523424887483755000425365088531503763948871455462482333604676455637942133650034900122380247849852867536481574594713232079938028819112701826211102666997862097092626461275135138051716928952452717534045491734451573376063881582135797962852548486044950822238714618770084514883723402638479498722835777658923870471780840218013786203801948193824288067915006630035986575341672418746576067833792431733190596421440067956714223991803452140741595359395497395461952151868427548280543075253752593389891317926419100168491000283110840446612670177243361199119166396971775219270898234998860054451311395804417116124642051029044600622584527546696472474347376560799039861890588364546902521326661149579555589197102532603631257265735185844431184967701913772310736290892545258578374316562507368072485741869249670736761430054550893126266856910314163921510275649442691595450590755233156895823082950277024581736214670522480836344127075530805052361134457024199526071145850016681388414631003847993201369237913045963028168943373328208526836548978341351167302002229359148004253660695409428495319179792359613676198056973453998941534902072547173039354802778889542687804945713659680848720081584457853011568788691222471282593653758406834361252521689381041595723353072829320712230529792936590198771539036363869266038234344251831028349520401522526162984504891824818203210241475714232253469568442221876902707798256074375431362332576564766988575942622250235592026723392003142858717387878293411973312774307110622191001637107457435914488371224420346745156985631765314086086321772822246035336113630055250462455635107763040480562849153432787537801900569740012338771289077202166001865414740212485602725450188900365262925083337618541836756364664230534556965340462890884818010343195386985534872247821856868017225810840669300588476405939822545754879978256857337867167976066370914441685343875855017013235712719861052536228891273208848353421046855972777926093198556118669240209856655441345190895964052778893782266332825783459461019209703536636186217730357385093884580907437497496125461986401138273271447350717216871118819005948873113159895851090568956030847800206536562232432544339185767921801922089657156891397503840862281544186983234773563336368844919442666513281853191575028813092671290063697905072511852733624276433431253734932236213877728761335725712626989299842929870377239596090329623612625957916976651405540009529858873718379961505435281094892111404293551557737453414697048072821129712552075534340198364253321221406970744270442059894483416666805134440991321429705109503120532043862555957726046159944785134710944774456776272548990922177219838842053872283984422663830053723683837305309343626042642229673494272604212671086041383462601816124547276755812692614983638998364489293227363943047406353902065151613837453612925398873863624857771262985884519501943209170166576508676108369936643529911152749123854605413715700792520905567015191158970879351274131346606821925692570515492451153722857875939614526520656299848419286476438871215075543768041477436575342768944333870031407361885154274159603325705391360234690408404734738198381078500843510724153543637999895739323609335726780055587554599958069032507318120219960181682861640806821415647165050620039910876251942245694195393497284321585848543130516486363843251214115340381347436067536432354293040790659860526242001311424902292704341761903515107941401462559510021207555287518772948438100824958965051680071121308465921076370128308951493395718976401380360846448095280792039366166504191941582934160297023560375527998984640252456004774054327591160638332891507079472592690379084340643630232733417765539234433016970816213125665717412292146618395425618449094911149183016304158242966289208923859884089451567918707832435591681597930649201100316693761736901188661718999079150528142958336279289820313822744107461488480711935444067017641921322704638290562959812050537982282751672286763807313564958428282993464426333756134590745653777700782280325549523661230601384487354180080279527847549465333458554424066439386904266680337828924109021386654920682194620963414117911335584528015303367497910940533647985745767187996461987157482827876359554928706904225942507887152988972227335291757579652516274215533229658839788507329753177157271356877654867381970103778142619336438939961165367130987977857010798802670274711022962878953514557153803837043407330129801773733303378392043964192385744263049099731431011589328079373526107892542628762803002586813066238033626230337992871156066450348382116837219919349645182988906443262665253111376393999813860429220947537917209271060247157410578838056706587591118862048819389209282787208511590590063031360571391697594438222512723164929409263451257353520146716379483725879370282612589332823204952690914314131095957444509460674971089886802205372875610876782542423725212650783499826426781257877742946712816060942709215085834194691090598482327993363985521971587273250732261565556021885526847623306082761079658973658236678864920895725223593710150401628894809240680806025336667606531370922858442999419581150058046676593104256343850494840997419264009521547198299190723312489501411247967271787350554610097928151545605545807736796131136146118491528221827964366239025622440447052083170719616829409320652464418471591381242461826520156837188791950096533079103213107730682189552203794130523029363383992016735019467220342762364640802308480037975583729862725378438042154342075355837141363293699616091635989693564344681738778213253550166025977499490681093998657442258864849894694657800533528301770809086504197155931854310551333514179033331101412295417447693055589458644916010760934150107278795400086422709298162827572451956285624044606309630941090576891146948527142981950958313967449688268148905256166152446540162650266160803368746393414040826703821158721591755999919201308531409690649613624261505443430577942807370209920642248643087050893173880988334887087184645511784630052682839214029940491861314106539721546744944091874954603950480383799597837049430357465554900470093214665218148603937678254615670752322977521915871106405949825458571653449668866889694864593144674529043463100589799315636552476261577739335368997354417191633899152418546957284002194649427519397392173985140719905514481563564206937095148634719664857120065412955421063898034137965387271636662929456918530429984351054525403815108111406672898500810400422552948145349770389221169159916729004043921135859234281601894625229445565027990168643789117386716056740236252013104327897639717604604099006586801060797537247083495677686093536011944457296818726729784271367713753527738980028545794301928480534317583963728374219660044999804796157996316804523313579498166902097258451741360246327562503177220703123480251289759490167780714673994811951127021355141603733223702065427263304620437891669063520526543894727741447253286307533875212142150013891653472853760509967711588030071462278376418869920262180751833081052954216518303329741156958251565296778629673204780119003586429039526981929524827404176149403412717732708958044089178078956541280500297990969239610142463720155190475174538736861661112890576526381446526985876038882593625244676034480376391916617607179677040874731583935400860835335733365829631830511688043051502461598185193320642858178252244820136950630090092080044098169750111244744730254080902158776443954504903566859942308825459212147735647607589064987220955988188611788596250709509121225118713074911350327939652473041271700291971838758633340105768714832462773393455235613353763198492334617152844537439654566151132276946870369652206716470895399948341676664344721644513583210792819596623161471606641102568348828885034644320751859755362217782517616898718931208177489257795085201332774216724307439825960009627018369282388711321466897316430691674658443037445632815379052314418910113851757281185846943514136252835782527234251887832920494545561903548059005917934308491399993671604220785533184948212758277341231813677794770449224505802845366446175461859745848168715304885737343031549841431336996107758393193846960077451361677593351541554340642666616000210994088267450585170930543463815154639208988038067697660154740082503251699690496053676561812384578643833151604214464012084470218038768077100393736439976629766847336819375341503169607696402447502837703645102189750194867703525247976652429293914783882120112269863861260947117721348825607015258034149332906917264675959310385586803586521434159635856184316968041271474406095307990066350917604453862924624868026960935855535206441811138407143156041479727266505052060941570338955118506456164661004996120868627399052801956965739496595207609611237266610587121855233599833322096292029100319802909908524961060777089123195645269328909881274735649763808092862887341352897346526480546395055590923695673776518669475618532157429694594761246154950884798384425098885236426959734523324922945069456896718095010071401248504537810909900057951036813998479704172174951498008564217644061279714033764866801535548030483586146310527588565080030436148594564850412589641510968713284705196580811203906489715357090174777912098226631776793619186599104389185891845922470435081126026783858870153962403012294558538517685250335563252554074533087867463306576056535105818243459617124417196902615120579164336631460753253748004143053903129927210219270273804219891160499544406095076576944747941287798062322818152464325013817033290897432072542305085417874014235731539595107491510784084865602735904692688932112139309739844922147421738438235334077241004613587095947444539396241860354431255755487274879375892335401803348867547581304914515506413726574255800182952539488222621520020133382228736368905286660815226143415840550459429867889562826289642480969103826839704671086118765938050617807487704224671226637741320003120929661526991664142462714132610474268630134439097053876778000291821343356004304123217115446451117076092452431674200858485631525891068651155302788127876529855315237463594538543966461192687445540384527037222247480506032553618796257888866086362646595593731607815285080898538684239600584381476887614968572781697252303127449986010804347703954766368606603821005771980918322983797998407506417490085900510517817057746571071167273027439874326048609124258109444028382719965377110677230783275210040810876140495413437200455253996363793946332393334062392838166540803691442883599054455451635135431676555348795456630057353581808376394927512854658225600224176551345403561212912943817687535387967281179178097917741301789223999723934825365140277528210037884246787334215017400912188286810312734105595129164192016806424755525760020001944357912143531200185482098441605436653591141234622527774378448468537628592662906065343132628188510490825263480343909497262609886145204899959946020764019521334872170649734706799629152731519218713875265139183512413496301564683793783253301221144373183089315741467590133666639447882969719335370704826809719714276487992927528682020730762275626767370331863669923086619253708082846036595176033890789900599427119108729013984694904332291092634818046790048094688448251903860912988553291677227776339410672621880629174851530850952631653457262661922807185780244688091867148554933010487613976564794472936881294819980772925678839804580014342179200155544467057177191366443842180839749097735656267683476657646630396475003794744031421293459007056257675542822704382138411929060293344720855026650431923577672879947995868143903019791489081497698933139580588805175463873716953436844207090600857195414677614432388969769465785991508496754375636017160671268993508193443716780308002174221639429974497093565022875445166142682242548637503098854077830215132542373008674910364880423862366382965640408121848405498312377161556889142033306072551727171089514873623763446520473940214668615966152995690181168326234115557070792061242769647749762314527709409369198998636056773129760956189621401715454504954616192232578385761502672209140281381081102758836732767387719640018075311504647533060395276900109553806094891647653951402276711275808334549187405688803627281295199797893022643656645063797319841343148398099476101381159005206983669196413217629766919939486589062329445242739295428057898004443744670060656244356317530790002348124948746115312978529481438054093061434332263433831920275909258213566279188053005370211188772724652564157973460581568998699090523088167763048016063431144854685636267359600360011174030028592449703487741595087645455735346562179836644197679353755094267098514600911167795534772843627614316585252210139259526274083255770870009136586224200422406995533946676461336645569407843557188719045425239536579326617817215848782890228390665565595904589651659810228459855327719178022102948587563359699858846263813408913775477514084844566952019526875708726949942802401947225689123898787852633359023777186580891070529515627666315162941150861129867143925825610333801003375495993810893719500162998443610101776651346513560960821738400613667705520045880130921825149742312213853815744283169527360458559090292347921640499723426663266994126826556877986833801268085498745246620141079852918524518042432471637513359863300877663199843361406881761641788444881556607442365142968370615292968383456623456687240562222435956289298229107662252424325857500943019584082367638367090119108121056934865035617487112459624606245997705629202358428380076503154260217772601020987123892452042591196654265108357668820152221319128846827829447789658422137348581803018244771797816663530668816196878934013291964592644362791114222199806129534105011683772151977724341692906255461962401691360562760532192681064800199331580636705306075096542862158199514285992323755920892173266798329966412023589554316219426678532323580274777389456845838130206275472197430861027692889564183915653073671411724079906736180619243379313335478990409846541452947846127240398379742985206541276379483422800636073734733609726218794275792797244054885926008282129666959485959558072799400870395807017862928295875706701344210781210543156059740648494569963729587253599705262719127390528219167590686540500557590425823933721773441382573960923250300572544142102673092413373467855375086986153233696856782700135248579567620853406715441613214937887228175896167002074023525195273611881867742743129619809716987188132296136205013773375463374513279141277818993830336577614343963281428085420250185382136223328305396578607401181570145070210446012727913394611598726959606268809916722092904613163473238231607472971122368073830699643226486045790518158604871207801463318676704721185185917562042809225104358343747443251271885694827344927912624836622729468113259577471523920796391045471146600484944744893904479190810655856122975664336554422370267215350676800955015040727310287300210420393718319360585238900487503908827364331096328330975169780045127123509924989575411186055302925022210009971014940366300102661878402961886799289160928208709564041769227931159668257202422369315073086474622524781188304836104238384023231978209774128865175305791607975980711243141907198492224570284362214169812740185100243418018175452090973653937665212517254587211834416861837058459799949136452427951771520442133148821566196505497538695611595086989991713568377275247447425746738809428788131327289217018302260867512420184001863134852890775252171036577423976006811880452044233524291955169547164978399014114058970462499415241567337711923983870048102665039717950565822499172884307554814268557229273982378876445945890422351332803626513456489416375967331662838326946166444923237724527770498305249236841519989298615321589839903973098549325768189564359865685025452659324221866266041749215159541690718997282749277166695127115407568002453602520965511247006159714473439146609576756178259339761562193857412761386650131940578491085308866850261295644639284553596638673468032231596274785216540086734129256620897340711610455862326216842121136881185543891493119273632456900243965314115454865148051254130302004858559572991340462709158428699858422236898620896359670117041888985123846163376434006402682983007409466160266837320689983811993815805563093330027003079153805187737913264492139462656475328757864260161954530532759195108168520453084715774615431943687742613068664009946299690237362682892166452254973389962008315896611419355683226910323365715751233705411787866722922254966113543550598486291952871075568191808645399093476621163772441874948803462869804049624691104253166788718829479346036583371014103291865740219476249643773528466331855464517265193915051842455610236256849548444125239301443286692404652508201465532908519455679260780436760569351877708679922122734871369462440327931640344454541045127494812544205224712671092365493866329816680672908982384150844548462945062633927503308212646828366846119202840350202359725408415088911311183560021791568482224431382840567169974157895136187517766064544356752716511578275112899890163097403568027143753658140678398728674951146488524532026301884872523088126966543721582446000742137263414227910590240248952800327892922277485234482243038906345847421280305843185596520334907568436492135681958967090274153617067997470839289833126289278251073270194462290803518048831803278514036139815456388398478862964878280580109499387174465882817918339170767265477527245965722998764904313277687277505551656525331914193301643401950895860420697404183294177692895212505331019066556502303570500751395702550551119509846726463673917045450162917484656512826430731291114699053551808022081781834853920318948076762971047056818356262938446442153219767434606637122888710196675035837471414585177218129948769425939818124467907319922965082030519985631644468744778774798491267121606479791959794954492646393642657412655236169198952366153840263409887247771930009791391469622262855351547362203139638837993315540057578158654545217239005655185916730818248736001379318622571859681836702688529945541633969764668549927048867869909267826479946080718945977424979674119464461019867328789486457454249689997711030289006400832817001944157581463150732044540876509513599094290647179733949420432911614489468235367809874367625310118337960829386955503679608759517529578523797353033194781544083466058158241478671094365450720244030023710041861771347846058569505156597197586057748772065599708144644791545847137984115400156549954976948406731329698425465188742602687426363815127402462592414566940126083632733830528631765485403265468955682020735956430368119209367664022854642146486562982935181804905768642855230165685094629448625253272560128003457999317546887514370804404747800026891103866303412903954554482998477116575556054250854300943390224792633508087090826303650619739488788955450225383678384495942222269264022186664014706584120000482725346685301533982701042523947446925385763271253331779321321973776245763050687081984446208621010785315980002769599775996823420673047416738258952130825605581152364499441080503529665435175066683655154123140307734946129532506820152368711118939078196793309140464211396410527892092346905772207159109976641365876972948319638100784610538093473334692341509900058871512566060281716539445885571572514365969490207894602235058557097570369156134532506281075738395226288535080138177761220728534865128306025119486767426831391913438201760507450323103485312199331312827827057684647618411373188963126462511799220268295210154608196217484990837142872823873367393555722745082785670446832619612419111700558831212069203000612254851765626302544863661684091419510664710033754478160379713408496305248276402015214017875882017454443996796539997026812054357278574122445643473498718549682055352891709848866626785509899619447343439561606947628315262177383408637551312392020831135486163431299835293187199321392541677549307293943036780280191602975046489953174994334277816032223361430591694365480207863203276226331544130459842599394967016175400385404916126302401586845560448765181191795864404448936101098115971777218393939368476811566484610251086860630426765430318431350826469770281095943804922317606726536439316465191037448129458296034002285098027527607621132643774270862143315142249300010425150599338786703457895801735893194952982478754063207560096895365423288754611433207874787616058236815043423384762015921298127677834197443227836219567793343055922391800590506703485037189752859346666147572440547355418515957690666886998883871140172990881733318387635473406213343483440026438993754685821241156252527181705743185146048851760996192881226490211766562840234279157030807029956582922208447239571830997518958715052138809143734874513069126516762157787172308431649761201620584191574917075894850609995280818416247786230687405423627388733735569030248303619393780184209690682169865402669814974330676286423857386635476341164426150081960247940240355012585944778602431584457428115567854920143181381160902571166765273512685025054533127091653838535990247926385106730793416096039528383530037616433776380196433661801145683869196325142230010960149356123835897868182131696708630509553381954023150790457661754883346314501260982373302085459988608016090301859841911271389089765271477734312663789972202996325885395967611924618945955587212335032779768082936799162501956104432576570324679365959487637211311636176044410877383924898022507355369172810919169937462894687777642188123214457482923111503825169051750987310786046904274385278449577787465934944868234369005677430826085344870721412252278316177642420583817459800482704353962820177554888243378490345842415323919628761631326468083160549841943860531886960898793781570434680952368188230740978277626291121578735305236741631301682787236748225844469494048307302414464119875658308742882415373827805542460790017445486913393153172868958284378583984133158864646194258944025495893925882218643305119372353529829867237381672727507877388307378427589669683478714840558004512461073458922390517015535470367996667199694529544836318799332429871657205829165023035089684947220905877419637521641681840700101835461134595730478121117321103234828247780164209574284636636241536174194652120902750210542112372553864050622723123746144664329978183951329261217947460323990470362953376898276817030019560741218473472740125054122487389782535513294288791451299874656914288255112192185521664634760066629305507046755734528518471666905681204801262423041639572967373724284675791118737654113680809214952661465516794125067846918809171626543422352101394705478844303430816870479102080526196872206598266664100799875261359413737507936225309313206440453371217167901624284789544379780593782424942004290680281371062740569582441350310059100966960645446091316173049946491109092251313796044661151793073591685794595545635434541655960813273543934163199600134886621211504849820054965295358181352636551538654716538241985423033730238487508627713913027244068589218054554880929367408491061529368217337973023636244529602197535745226612691476158131521294181996134561238017990649765898388917564921084391042221175059668284246133366189163494924476384328103164626026653120174824973413835369844888901114021733118299648140435471992482201032910815260738382876130109228473932535755043926980098771375513894243362530251878431074198220575075451222204678949247909204553637822564112541352508914080765060062679505985942792814628699262190924977895626032240522022987494047099215479894498394105497624176276643924442733771287585292903779362467387498956275895376200009352962507314631294244077115402055707385207627078584574925396574560107839503663027801042057392348144907521170972858001097132197566247381328490494815043010451237291176110063338824082240650067869760109551168559774787672336402142916648590098952087033719298160962067649866296677316785264456318785841627006666998207840745558553975929270714264472003900963990078161348492144176909268529591824153132754730371815633315830035225777851416735004751793637356694067481292777401754732937119210610554868756188358073220676551010129649960949718358883152085679275708069134774843596643936709218326311151867761210691035812296614166792643382164197426715978549699107218419330656214278327330669899259126934608270577474347317766956851466966306837290863674088189350427389918413034333183388802933236544333595499821099256651620027021867893436291486629751712186513151293644947569198599204948662368497482559608146910236582453468112297737825909659044194095043221905830177582266383823778023930463201543157768405261575726108336777057757676258831358212071715635284779274010105873423116715823624402536792431538896552968897098820641747448600094304553260004915225491143289961033621120558275126214846373455123798793884083330814430931833531989454425258786900967913202616692006029167597438613295473092123195836794071381209371069424268796754452759741318032042460508378484494837207826112175634884420727713620375610419952453904242889459281918928894856356263929080724260142456186378648041571112642836663089218529841054072594690255994261718599116083788360684482972421541623244979552961778920183447429311875673025319122909465502710172216247749378629906328641768831726708598290214503182732184437929760803414767599547687018459617383999184191508307290734210787499334549147249261641504185283294714051846917137186480754745495484545790301710848126254947984120465243907522669892362029788469132134583395441719745615000893202867901240172296873483190293850264820112434052158034048672868688922103685942400036297703469844051788991591530331139217517978365790720498758611408336816058879129331360682591403063913059824518085377926674857634104081270406536773324543591982715055138232168512009431413254356474316241617598361121071368146348963865355363443947652837810984840400647687557834988105148163350572218984335703762492805803098845877341093121914361128812184010948439878790099526675522097818603292409122585207511136760981199890006619294438727352849109287520249418174270989054194591534349974152149293941662292616854114110253558885078061371932878668286912727155037730373627997489153664104744635570875305115682745333212225090926687347374135852349972882351468530545544239048321601806293572646595055489000048503658195441809840688458641614957499468808242555179586906552465156505221273869798421315903577259766833025059626819616797832949660173049505573569217138940772866622222149555322927389712254284155397094679462735187702351293849269390437193125854907604170188618770819831087598584124492699232998204785855409920468441927132529457908499717737916962031012262463730425979181137054374756849371211354517407603775810854166808043901685678539574797672097780308031190290724327968578143877449001925308921339695472871843252156096992150290235945762824856924485297146919671313311018328385243868086528188147777596672101053750906937773620827094424526429792166431395491937978302110361684480391937996409165654286279955904522402496519984970239853757570084553061737750104931506165995265413849492544982186567207060743818120346286743423978320357485304177920378772181878958549976788112280024369747107940597294721989244368251006205248831538269843451278870053069293973251047767109153100018732011927727822066605548470120722878165813422073239362271482306206285210317965258104821129498831964921532465810050474484429206248580871399522321841541367703606679731993140237214016117825329410899133723624777015768794028558171918338433978064207907515952571283452681253843791151779021402250981431531133749863926603056517556772984260256550060197779101740339757124421518797679645453196717809186512623186946306897636877428634832997529981350436580440177841585173515797663247899460339831895317761312422952323171846007593402574788558898659730512587333095372348113714174625439857706611170301440159805273105445212786704798367248875299704957525776041117968356164589700068090257176239930744579253404935824057192872770154283450610536720236383114790321504609431568376775346734961988653638929137077723302925993382990342668369796880847447845152508797521188043658726483277363686054471259918201953486702560618510093332123593441569332516119298189659521113133681644451021443951953756054368351539816531441469089663430932667827691008821337988646780357021230630144284677696637696103438764522320506913842872337793460209607105149586240127097329608716796550323242862309531557129215954267028688977774813591492736562015060613037853938690960515857866977283004339674744747514100428911029615508411200464524940871158318188117071446146970151467719805338301740601930247456282474997759632333659780026249644683170454926195198619035371442884011113744991843542067453742921820357729165624481366490223507299758346547953962591550620458217164345525533459212634969569809821633775426753929525405100265307552847611863392860769908287140458712920570975604882067817802823992945592918495574013851907052101895640738060183763189510086725752003293766642160060533329157150974807924481750646277436509254163159847614441911485001297092739541734136536818146653189024149403004350094357748443114500178688537240289577808056176911743343597302792530711424091914105685747050838458277047206106857918859495992851732184023134172745305993234455472180986810038490035044589264788654431199602637431497925293908383854425083391345664528920996168167072036628031582242755384022170151038244790437841708724437393560019659950088082967431475874331239881951853745176266356675553556923570456908307079447960152190613204847101144893899843115606207858549063524532890330004595570631121290348489988893005659050429867325681658279257036289821226121036420098277815259400581746031211885962880718565611119548923160710021216369523817937892021193506575343982517530580561544397652852279812032332507145345656467442845646374920860842960465133836053660476375651100348025865655661432998963988351348264854165685912579860173232446473774260481382201452875841892998887487379160370910192635814747330543144424311855633244765628242093582517093339870519272276154495395819929692409597446384686871765571899240525089283823900846708726456098626742132529379903862920377792948207751805182234697438581511721928091624662176497342224658054239389967939280280602907205113887015324674269836753302996225131099304316535766344681332556540724261312427735251981409516420043598536502626102251025504730044233918951636679787231648589705291024232500580161186142452938872073159385722313047420970954778975229877000713789029029656075290802978688729528455024483414441846116443080013711809205287383841851789964658687375213216644498612991509687765063053907459447777008760713229991192790480179348978359730830642683854216118264587975842892365684160969325329317408539529975345537892905368987948187050088586985218214501474823272973941562472888587453438174319323944955411390022535066862069166301543458542972919672783358041434163258013673328423355023980668656059415142871586397594731078209565307800477057378281643185660836246709566874705729831248076404665656148593072548017155737980412333370201805382384639899567632476541765388825532048347062541958980203835846337265452188656344748010068005152367262801715504298108417554752702005477814986751419961757768393691627958164777872021086371057999329284662545770365844659751618027544742488542286829504291603577710642360150652281359465145703194403641475336859362662002622866779864741362700240297998580643988192894979676000592968635221504219552222118084782258405254100819070751945905249700068893022205318067806590674403738043359162256344335431151775034876142209509772274206377782056833564321299463201524612418131633846325462339618768718747473424666134115218359324200085831187779604819087266395298047132828630297085044805961511153996877189139416284873140255326220494144832169355917333088285387311800283008230266473462845742156665691458001741598681110241740564451007071617410001349129221573669197085929514533070257337890934664372895757208619258142105508492164260868446174483479324021691527644769462083841588645137727046227375238465085494049506705876224532742716552021504099751873967179702739763208730338984377460114826947094269478545852312203042139578366498828193567842953905350437174167181360948900134004770413053750661295274019419305118264810740297038096134666075712885615929831012755906415747010983389183053963902602901424470749976523149027750843467214707118419583282789585643579777693870556100198767188459227535051426345822903467443381113271164550401797838740024745720395174570144940060009795459208399671196404185381838050576378314874068836371677346028949653976696208661095906709790227852935134660610842017556997356008891513543210842040146960310116537685411357359966145691803424326623699393273392097723114501039420673287665884635471676410169236554537834233266531887372820287285350729761099553332622313451828955073073093165714117398002408594192455032421295894693851973673656081948022742333470258272091270314641391632931319029227574970378164577330806694586870958263775052528380447912973833399013502519142810101705075905958881319118700102119434926604623797262611219181502952378480180706981046673864470795853828758992975980583102751017448118898898063481948101222982438377470523473553756314338648124825376163410173244938305381829828918618490120148538129798220526842366707092334629663129369657748323759412923883992826934477508970383378609498018613148708862636371983136795614828339250605808191104634751243355999167516295270369419843673475163541011241006570709882148062733474518561693045210213791707540149027391918799026377324963508112571172073708853250651975435908270196367791125184922596864131833134261203286574721754991188832892246604181696710548685167197491002287947654334476563073474793227347057660578855084145913019396299751200395296672517423259457220038219715146037784051148656098640031754286342412699538854548673539919664354604826366413496351738747027722215020658989127556987764261622549993787478967973306062265653084160368269176104289181823703296182389477331931295645685199413106491419228178780140214058825127108208967455852811811288182931508082412292246024182982534133650666958562970492475724709452251757395075032130914080741091410250927083429344811419154590342237698948362004787572711197081984182272370480680695638141553241633489836166210533337089141425701871685683816155325045174944867451061093675535886367188505954980692721292799268077086574765173613550173433747567080467006407857168114459816516977733988123830664975928302507436124670388967917848947390129332294942143444002315345705590135547472436489117672328722420997921220866107343279315887314306821583466291535842168693083077572434514212430873714447477319618348092526828499692458677863205883139572638300347762106368079402863399138825376818533082186247915273753844142402683685054823179478188454512213370511911708434732941993638700108359052694881922817000996244475220380184029503237033220335119527352313752982287204191806795232575989067678425371990074485667393753299302098591370056498296103600541667700414929772287449610373735060831402590743811480798373685087414048718813056010030213286183490280496752981152937898932074049015003136234941045152604795379863819874483632305032973371114480868598279638076088282599494091900330730010347968345394938893200426400885164555747162228682309859455439450228241881582723518203127466197224268953904795601260125607747209443892323225015032330318505405066975154559558054556645970327090484400423020810138303052548232574773869768472767016049869567477608355366541104756105670546160158964539461974420312501006569517208034529801610197848534996792244476204383872874584795526913588990163443568463698161235622964274652241740050380768886211859542755073537417055473911762903373115116505342120033192199437886683054797308101792561842550238879648930435132187866969660829908678580815380179348443847657782599521944498060030011545040503655506853797544029600556437201566883626926365211939422129408993738195903267828633543448328345667549165649422579675613976460887145129306997471515983822179836996710629723025946427275804467615735033445451872989481814511190776105292819272990979911746946242280044689211903787866729526247630380729397245838175631092459542331442614609856181551043631357360055987584097413169691280849861512129350523935781701738301451863369871432112690973815789727760292509842787521200174267621373336906456038128285340978413130673271929167842454050119343496703795060327507987376484308586949975389795029684992233538248078868492677760998059798645716736025349767862978842521450064416296627243671047037724952858727890682075275836174290872649988077646387321214694209814357604549006924460357624590238013936403142060793483287488981229327211030462880387931900087985429042983382414793865952969628434156915370365803665693671394867019343195715049434032631515544216337637119558394965003807705202337699650551861959733413441116175659498625675644630558323211053781044467595653429170368802833089581149385289484212358557072239375489547977340565958032277480434110431063088834330808405693549074921870895518981468700959386625839692116642293711502408034220895066624348268234235110536071998244990608000544259803922147835642212439264202382440430718632902000118830234454856574235465922520362722760775310542218085047156474366611398485520713491347900416793944854081119946123650096267252829823235177437288834995747980003872716782057171833426968387336089041684129267475955748468905664949791468202527032782383696339556946471718758989116274325442541847003297370764835265331443333634950468764201913728473408275254448043710480268136154840506467330372088674240432363098438832877589277578965259192114366017500887083625988393501977143555257940272338949368076879721255978629432951686679719545422828888887260882531162974329934784880802392502590035446541087855959432910538927561756003986071184468635730085236111881480116787367966677595766850893730897152904288540884443876178802779338457940957785446803061328738345218665495829780888753590059341685136905175648296213285820398011089243914025470373275420171566490785265196139840635682213339538412034224164703081387746646255136657668046549847499102015050997867623592122108437263164084711906116780416210691610915011973851769719004219989770897008056792716512407436071822918426926166921756921543755658297763406307916063049939557721888916538217726566885903996491832684751793373752124846713812049359077360851348003767579915545815474539666737267668770600435891799334291742295146914467896296338697544482809308204886463552925926118138799761480389107601252318308726986474071320139573558522689510194626349119947595392388368838097836125177875760675905785718558694030746737715946154266726988085017778524556535700079499115697754265047249037979733737375253496998527425129795965859299187066262944116053256832242914827243614804879391520498702590224592750879575458036951377450357211916771306612550460846428251634476456025889301678187372865709286869359645223684642050128162767944910022863629715103765031585246189259237481963928810713955454381318488087905576032336428664657573625035449701983166514919884906640432505714805328891548958955830203088512814550640740187779273554689813346614671439655888857172628688208991767313334587298053239622228791142618381070304023320557936764189521852984591001156714452130346270642209116246250733189681420744150495254122089601720228579407101029535398470194288447514525540396648725430061618990123512927085241205021575912937576942767219009820265534071624044636059482720658023014487298610761421249776584479026207002939289218468788119788901639301893725733717299689349530333123136612875154195326699287241047103382842632653270781379552564246490152624972455261911028077153968152061915902485982161660974430505782298934418544263798152654645375506438047228439478484150915432011073590670555227594696545200478066029197477507385768252320998070665904536827566844479608173522388830152895184918170685079244212124889025828312949286649882006091999424765685855291664158607765271313333052634493199597033142016722943889105278247663123733071469392267718503462246929480366773526945925786753865992512362684800791525232522510690032161100928766501523670976726949630519856741447877431512322459594040549264676786044383145138536232346820332322711830239461206186276928185914325887940443479591793897613760169444992748025995631903394868779715828214978050183765723097440334981946036853367627208501431709362056550761256189917182715192370078845189380034718165794348227716574089872802968126608720383372957553529758230958531541999379101686145112232827596685968251567889143820926197135417248596487244178230784174953888232301312821810813033630921064923470288861846932676713326816275386732157346086783373292131461726891766168051824126860829181133084376802740691021631706135095490742130464420809018984641218539871125845208517214988407709865421416345714866929226463392103014581748109948317031411132475364869554088096951676663944267615203606582849114925498511849529841737323161080411016440519562873818284942911064455147934226086974921296193799928278373115602696899762748524821397199405602785660505212379483235642632995342849502117251324570570286164929628755151025474006799708739254143346634008821055789236426214796196173885592801397113120266230179564225732922885157129481256613081270246720565999833568032895522398834530665814454651600678252617128887726697472789426964276162243232644715161252961263031094897076029347821359759977917779999895716690022509407129093534541201582205520044004360260562051612753204749552964095093803184058061607240337778422934863872595237823024126813233360598412235325910264475033141567823270869801851253751612707931001570003113617055642818362434142275393696113370133186964396636415010976096146128564614683325562109513429239546093992968220544449782448374284285145010320428418165712150175298829557369018495475359087939656758709805714467864234269636725724750466264886716983894016043601992681870422312494676441673378769341697466410499341304523705426999472549297578501741689193962440577456535218617292377586342176217762124120046968601016954019163036431716429743653433003036918625940626878618587865103639498386595952648472012821514647013550461037184360116433236121857343410150709649037874034880768558779326129484223183344092231133617313881694491973524764243777465769236921377220073854011296040408328345417551557996674575913807178333555260131786254423920518834104559108687271253580364491100561702013747914572951908864322049346935079829456576383201042819492344236378410130724768843818956283449101697641633982776119883403621315696918197855037022021490149136417124700960782554124839414453365950383260528647257983896650636835248965822104970898299381382145849054775398145880166226340032276897596447099306122999901035430740203730761744231613303785497077822876048802113957656092217392425334672524160331853885069748978871069328157455395909408317759218640485186387513697457239758016341035063875010549390319013700520501646613070653792321117406220276481462422151969497911666241725397746889241507948684792613461877885456221744461431732352746232845066371981937244888060527055630278941513881485146696772969052876489944416987912823357187737723031432495488519403588945622591659176015081965061269894830673423088174026732352523327186316616251721872815430752492661280779538065284280542916848684469450479392998407975677342591384315883952912802769976502325216492425720829440349794691324476130829131587520017234063636740911133871801168530660292040228225950204719324457402367122315670633111883165404770401852491316858011043288792734428877395098676991580514618069140045428109765364690005008351858748877209788109855801325521654513061895355181720122145641485061983221228103857415151171888637736383873336145354806829030176055791738974498302444933282389970643363379586476010068017171876577975155360836036927343580293632894369315548412481481179442342129046297977871618167362046138229226384444422918704276936098233048057382077556119736065180889621644583281210250351827861591937647661708727499050441175884136075361081711861390732929891685135063944385608942215799343990778249900931595277341854719843117958755793492741517635396149031244302086187664695086911181760352998718295109888313787031351374918710738716496980421906044094855153986801423618992613168573794041141259450726122047866763117424055176380011011203227131462174597632010660033846206244544320157232768413408215716689363602950604126948997803755085373446524856370026521767305036164118142385012217878471844301569007503511905256727080620892548824540510027435404534487178143133549008390098435430967163407752413428581802400678902782018238358819996146790765022621325579899848739703250225144811770154994698475562953086691822799442764333563852967499440130209539410885306822517130788713808879933991199042851278386604950843134791059737924782050116532072235761344739672005155661297579074047371735689584988552563987272915603583708711297903994761723627955011703774966967011599024886850823021195641945555354008000698482054116726280330152113472261870378827553857024422308315933886025011635800268078206777511226868905979702667606225875001522555377733912636377661895533320618845215746133459331224617456536769202600087981012496300142486152386482733653329567951823539456165974622401968991168257867906770192672725445211714960632326886728891504355723685515047698077112007092139665964083673036438201954146927288043052090033873420610187025416706582769745410188099226247807349622710116808573181890622175699998556517308613509664965601870260283904804999991484131635206865570774933921051689872527343072558257838150566212531452567892087835935573373817495312501488654636963330784460202416598647128842499976977348604127672933235559096331299801166369895548549900199010409179427403843004420799405846982188549582457908126707581865353651631449583069930360201224056852471477092802886539341609491169100617114482464383919004975358049880755140155935329189472612471387625958555387001808625194318943061959110781390611321602018405437396178992883979231415596293755159092299246940769351076287169853202573177172032247218041811370918456105895488479059536559829366443395654645172361720716655306147994141498464306371885483769154471161306900286708078520207964726669937009659423007140285107260379839176900725930171779120069754345864667731857973093096910737576861684187297203511948246044907061411730648037744462432203974610860080444517930021364437750277451759949639959536807678124655308819088901974648006603343253297214213535519631509365798677888584903314885963790545227667620953612255366820858977374249290420007698860160108316190327397183645314432609601001285083703036396030440524445657144677961464055793098903589966610227210205919298969999798026946376204212409461157580498836378167715657079320694534938459787959086354865725284538908514067140386361020518260087576778237325238426107582456879048639507694003012341379055770380075925480910224783362938191813059441948687068793277712779218448011985625688919095162991593636129160248126439720180941694893581930678625019850276887543021110071005844538067189699749247586050632689173803575244988309535992491926529355582219981630710921884553975114396348121385977605124477896554884379576025161019539206320403426145982300594786274451853705511911588419856486129060524328551611163597478083495268080725978840817079068114516896395050582263607420837457151402771591170967066390473977805089821675324467825510847941212910886514868473292205820410199432246802241776576559022700835359571776023083594482758039612208743886493472532521170363315498584138431892768933765292351912124105644352767223830103758935944055312835896201411963069849401966730852843104352181214338935190794084844584820899419865464554581351767734065277645256610425346336873973348750479764363804008393656727285591359386127102539515137422700299826634353720571893299422591534110511717936909070456337903316795275245814041601917724461250900970694853684812462312581390827292083271445229850417511372853291368700152592914052397699930810523548352661579984035141550003556945038059113735383889723992008672401607915414746821081914811571287208896873484284249064324446141550964715469792138247098858240353337187515810194174617417528282940723324970843200317734614297794852049597742663451062412325394997993103250711642928682949394984177332864856452584141475074684573467238900978252222839392158590156857622840120962549597538110514826287039370251050708638186510485144178458831062031527162898641292162245537511040136517782885298080963299575731101916829588034888125179803818985807907903776597442591052513971600769229821833117970760425086089083145978985679097987395076563904143832078263481204763953956721189755598096075161239600813516102919581216446853371494829886339613071692204579242236743850438877921853384582602258172160207128882191330763942066802496026930364814768176274459667666606734174900565222758825404018518560534781928135200626221891193727749882826509198902075437362131654106166544380160128728660812415595088993389866852699466344355240639578935160751900680117107937496605662727632697867225276354307178389200409046486312150125519165012266067838390811890457201989587566548028491111911209947543563750821551856968140983326589065582465846902682504256707961503741437848797040195300261047895355992566159697259244527763572476554823489610433048781636200483928730261424421777057779778333544916727365165094519489663969184504250697908714174597922187849887035663794358734543485413796304453120093310447728574898368910703829978829124343426207762557212003490443856753079524251938895108673551941378299506573737694463473252905058072237267679192927176117487146536544494206619072874891822009120041773550292569827697217217942664165395126732439820568278589827823975000734494073528640747074156416111318958419386842264344106873615878869778915169737819471325331136790401774842950182003789880582384615311288079795185051102733212288462570293479079779860878429616062961435594495059696660602111028484736704000146560637366389473664736266585411559669766429010910600704512880956526744868157070625527884679127914686714287452262844269139687895073682610848786711299182692403013819106713451568192248532095454416408089044025688813375897493283090707521816644503565757114002750460164539645886643248729933701214915927119343183351458192415970179143089406529038436527533890672925700767969139738796867619533574724799728535531380848881677255840112861682389505373082649475691856335342028299306440071850638237007990857279976050346494059212595791758953341017657932533017233300326963177845659371777542127014219733714027202519777623453217451089651636142167610706012769542806454014814102314422209751493581800554320528663978070889205893028404833652873826694169683112675198544309322857936935959112258723149026065602597052365459721188836699609982039983370001935125225329972898671701853526352354136062800908797746053137391973027910598089979015879363440744514485842112476768119151007174715982549691810726327907844756040367540431267691921415899290136618615103058896058492078884996337622314314484614278147164893224522907977452215500405287825788592235102840347871862340455842296103027318526732504947340145636004645153781354971487056835477333994122246559947898400726966851970733086761426189642460716114800523376796957768917761083170866862097548182816282698881728243506361916842619074987106883250446131863931595240776767070256615024077802238582387150722797446945156091976821907387067194967858812500281247034641496609094091348785003193070090750064834818952734593867051979173908975308154030553935320821546812178483030259747126482648148581524358925300924983860359030604320005230787171105672814021520013348872489499773707573717906907489892287422396825919709810801351469177362171929482596510647375030826860410197333759760081785714290675466432657706409690802892555309895645857707063677055287799177296393456848238586757369500855171584748971446110659762006121225144357848349817243541075459394400660953157377550534540929741153893307828683027283268544429707885650150783217494797603890810874686532211612060264409308634203846562609947825997088723172387188949542832956189623603529600609861575223751212177992474836046362973105181781227675862438044804074621769705168807978100202558576360592091653555844915297352257809002328711114340487387031992969745188729807199502682652683104347377875290421690236332008816781390569282105836190872911137300732648312137744928046979975250582244339574267502725586857538936399755509359472673949300400567935272958943276287111175180642977162924490890063127562671733887877306617462461679240728339498337081062515736893929765619836737068075362027031319296995115298243918777265781845209965790868509318416577685800599933524084083296661569780460566429513003810106613739653064677215631104584799440196466827363812833904240954285294505487170692720581575850890810360818761685255603961358081206608804313952753936232887528025052881789054255773285893146462076671174947888733922164368155050758443236682867593035149502272543086832778228615022402067215698695444778920896007528712630566951788737146899133919876731671456322298328425497790152857475946822176267156214191364262761299169055626183266074342298414143734295839671973060315271582679953643240241812084132117709095172374958624050658707925493053985043928914583104276507704216946496621318254013925706933434031365410239720028042523036046506538706916499669732399064035963105868684311529483173412886971489293050147871466536450581601728413393455475220336459481042577267322600958389586389840729655891078846616350307143707852511466982430826310423711703651420943874099269926894696430142916554692785639898503244131872133560686797121126011978916686428603009178204527374935947880271822521848417659630754731603516324496324643517075244668247691435209855605099275268615958945657545114212566255843143813462505565530824123065253511947213128728201615653970431073141279324949979083152157489068442329180088599673661335323886579427992420053579621114904027499396603598749584041825947046177601180171295250155472850933468392228304885872495064600593008262947938100576725731629638782865757100568646504575873213327628594603693153619522599526749814225184293105637896531892934771831376944947385358295336592531521861035501332759292260777044004741434387772000356614764036446570813856734906694085488429703893894873839057635371776251234651808129962319315466916481311051131248019833719818770072556719155974417440811440018242069025368318801999389494535325203530842672522378718777900567492323456239797444833116116338073912825617778758334433985569016176719406606445177563229125223361854268164524458143931874200937255477972554447639596032310568270979014469451639787201670134739384670145330014854102059749350777232200834853520660506390507293530686760182604358624681749144441487743065113961506034826363343925182084375118634870751098387361153029833284421716418845110284137425931310309209552373618457117722188161836768220837938388527580193781639961828761426806171108432446281988642301690878866202891063090478152951897463007326188257641604059470307496335998066352021109945501594362360923895066842399621773914794340695878460786095907441359728666688249084603482302078646031200483053555911955579883891988192861662145270444651594206090504112180087380600183016087701456827807426404035312177037367202002904837446982805607576019910360522835626233134814984625411999189056745200850746668992585562688572980958506184180684496657858587239604430101677936562821569865301324113625452138285513541383150122417964812635838692383671578623299632176618736937332554790304825255085615415866479767321680343940324847442302305093668450257655350555683059527976002943069562320480872963288741606437575251502546454272425763727421809629165919766864712377997514417856213312348812943866422509081418481386322696082868263237801166839899588084732002602872198970332711152241225807602147029125043555854687657286555938328159695022836877606282872581567984424553932258178164446508823437606131902415646118906683338821977160656563286142815338145075094307995479036263427991619395642086773706015719670820527067149613002187221553111490002283922269928859384437660557770841266983054265114560248913033906482775493757315724167615058615413034398675205574330566284400880460695045272035535661533345872874940782185703402079568293525767822821533861470395315915411335011845996122719344957239033935219061946392556445081931966269091693690478990874884474790647530279399666123611756461645257476731078494765605571187298624159660176879576646658965527190303451455009554187909058407964305249878484256605196061431454771579887603504642280585931031759738158236282301432628948585556009746227224935568033366516767230184090919714018829900027169711718151866875447028355798359967195916787043781676335295450705860430023849662350915895216992863211270014698718549196211585911178976138646549379852649983824423582537718630068532716465250768708291679807521823152190771325861921580834752480078607934782646731317940600038547897027810564210245952244120962086346389651805169827853349771676117743720161551881374502289877407026364969983401730680837603949080655108485825601750742380001437890658329113031653931806517344059304289196328296396588810607106213589161112835794472662314448216605272338930155193400877193069848307469347228275288090849118971513237183052737698647492443663413167818898631998894509068312036535688153868218276324383126667113933963919758993343654182169833325948691208933415318939797119103530275750153284452799148824665444498679996926341424511736865892382976276790220138692676784309136272141343719483085898572618082042840016467907860439736738968023707202348784431119710484406190586295396454032775977584363954637939268600506644790403554732686956480058338430425915344315320745091587053962398076822398035792419617258730049876213362316196056534003517670712940512266778542986931038985902069269868300827890260261796162328417480549219598814613674973010286950898557605934652368687358664724842362008407230816245867107349512134173250185616605451574032625195457991517455245795772719193549608548381213579192335773332548644630026807553748949702315894740843800767491606664298348826780238598407706744557670127606953892517732709910873043508528011014591474763952863426907393093647871329944867844076759409223661585923277075656457652696779651092034310458774742169223867214753956819111088270201383561775300944349152307094030340726999961285679144899166648267742694154271259963682691231691571616219395188856430260594571648612030683434608841584011881304366116399658537009484985439672360345357370253459162806107507862569361375832915340305406711588955690754750994775819985843400494851925490194256807084813230091830232715914218206268218710150876955958909487816804511059954596253509609757689657166410194424648066444604871009442256016560985230173657185976113332886264085030278020211069409076725415268092657074774070528913865803381492557225573921274249420134941995733034776908074279343153186398335862318097171062626686103179674484251330277831808213091863887933384541851667598187446732753749953275214155320143412390639175483495494014976072372598857848408687849161865826009956206127960850727283665567725933968237148821228965122661457301130056601785898422692565604286728851495328987224931699809105605239513164518117823844655772015728006426329458056116344031229787600829935976005341406546271664329296601073716274364377330275009254300469253682942361440184699855794390986251042968237519076686313995271667910879845982682608027031717744809439392863037609631864443884177955433510345019966380538211754959312066237954208011078473975181069333983067371193605280024624158366840738927530900622433859605821396862952395669253854830953779658735180088650012622328621739600553777199150237060556047832960580311715426675360690982166840607758995724462396506536272213754386770176088100438988784560897862100435705474946428629614565061885945497126692161991210463805625799559304827657560489649990654926727293113293096006742784355215427288486186506261623325825229708906654964055263199610007159670108987752087789287630710802328698111180074648513078047226649920334490194678001484434352318624493626631318755967311267606121453754172412242350175163197863189359272720328433008469222205892434858607066543353697302794507458256732949953784095295787365648264636140404460691275252734235581946606124641161121637651339793906317877731444680229301164101384551451384594363760512208941738772374505660425523469221547772543256104666683955391750796500266845052810488652784028661336986606317237484470014736348341052743091837395787456646307287086443835593564535745662358738800283736862638656648659957930943230811049168686788400912234325385779387673462376834624628172879986726424332136106198894420861863237755269520125518216331568104427299092694745117804822982096307488683839000512142340147815873462977183861017012542142313429313301567246090535312498811846875372833669089436956766733994866412775219617297826151355621383592993258188320958223931414641632657819101488268705886382118885429339912624014975420955853293794067818132948823503519162726802017740801318879448209131843913515318857227402294369833069580380224275412412795459450068935360302936909900467871757250080201036109294418450222445803586672723738206828571219776188010985222164522183800382886765391158272512020519197159310416848535754186692435413155371770277698492687358063529173230212921544510353813349453074253182076450051568697140994234928461077419821828304416015744251850189200837754144289188814490720268847982219455245032035544997402111023831452663029682232625457467241370335043509173259500352258542702898661924184052845699411753821549986719990290607934939366994130632796025299807945632029737487576421297545800738239950114706284722234130474110934137504410102147277501711236572806962196156905866047502423535789630729612852555159018399585607923992053079984156096648136032223047090553542858598642938057302621774897893579547445215716329228459444853165304874119735690152401911520123917012650148632496460854883240243443510276748687096884514405843819968541697984045741975824034240475293715380664262977288391517642704492456090956284894237190984944168304045473803324046090478233331096126120778314340350007146935977337152885197615834723752251333212560773079057992234483410222972562573698765821295919069839096231624137077523059115370290408068246596310736936626175168509577189871956979521134710629219894789104692187003443632761556998561122922391976362638734467239584790242140646602594824897105941450561864484353445677819149735902901025398246514117793501812473003539255651704784256050636990856930819865332652743061750895749167078937635622665224519490703404580174919207120306729821530471661839870655199687886542275549929177326141793405821653469654874958187072012683755603950561385009626883502179065946759516514135760654702953716222942148123418746028684213398271892178302608820465828478261751186736011117037563287779143629850498477168405966167027096449754171869837701763589894411886792198311118113496472740684054878298995254230141413464685366219646664241439535315389139512435720873953278200117367524649519112776004768004033966369916159904495302131588117519028682673937108555020987887880431808055588280082439708745882153381848584554937174890331340763788076482580419227480510595155066518928372564267105717232366117584425752165150139394231468920312861927155698917279313753797066613778287773042785873485600874045818227467163171049933490801625646513268812407799104035743169046604839399882286406091124063464257075587637086271699311913924555088770229952350637930591296404361268732080608477895576521932105552985104950348291154297945309835750249799259250975956432643384906085925528482606163335089754794722603061922938965520377473649166836552943173920351178109669426259429316283610108332893960746461306334351822453634892695007096285535957810026083652984847396290244350962227082108458620770802589716347996278440306899507688128572323897242444205975706139688190636301191319061682048845850899621972530705076643052568899893331833861417564052972111987152135144364750167017492089179094873551116720502350176069794560935256326512985534823240375542440012297314108375728435013951297911766089583161715057856169396146364489726795915824131733636920783863912140904555133200381394359679048994506779855494081374383892547373428833494241222098924327202169370626343774306384789502802653760499558436289484277391425221548279507982053208629611647563988395758535145998498642031904463065729611839033685876266094179652697882772027969945308046633895103758318408583478884799169170998224926356854012643325658196584846860885675628620326658621564176896860764423998778678207998684999204333458079886672021606445450589117603955906506955797130620294725946532091162579009041686750270585543696075477554217101125196395030899404204756704700889979267994139178600848512259803197248796068179777527235203248112586966970661648539826729090889589904129134791931983776897730902769750978885708335041264013342203963103834206074802360738699716200831077368627768594645807561589365932347244609171676078455263672411462666025291365943885352968670801455922517607526737651747396406861660167388232524829863439619950527683920914953142177892051752733810112138687481412822473008961462734383364481765002611110398459320429716675590364462404390140205456406144459619712929557757345703036975629212662640019439936797290540395000473950084558482078706322035685296764526051402690498012097864606367627461024049274683693909628653523239190028952103037045074801533890704996125257409983852491461481803987480986005578045119993729555913411281170723894830899667958220894685303665224461492327606485860127063642278087101993121152418402204815208945910606994217921597745208793312949375679790198333758737809551589837976696093152837432578702480439939194437787296784745283798668320546502176230516799313929300153329476666896114823430557524071505700581185027556918952089538182844116702604009085452260614358825930867645167459849204007734269073845276935453664572349617463071777093781937733138514009273096557333920406564031301765899462906015825733831925215575719525406040069350164604370788150910641753784513960684808622793644981392812098677323733118100649679114831175514845861339452882735578043020551554042872415111498511731269465521352571787492951180403068176435281433272370364428079426747064224874361155045390430732069232593540381469037321100400459323679390945997124375087693632951517003679866772690430092767949874405650783776004351477508769090607819175319134743311641203208909130258185586976151866264301501810562398913731879748508502163653481064595862420514124043011554873291561549249471199357901269661194801683030986667383699242830212097899407793913705092003055639044804763595112695396861610933030984318396643166909013889783671181184683342848649274958987110125979183184123195751223674203921226178144696574559260311985474741484744477459012341209602405564455298284792617182049478470461913741763530230164458543176853427171833552429740652145152097301429271582282888114702328238569498746119666298319774057308953849876436007281504035328421705609417730486480053502282605388574439217765233645332381928278751576751397367607549066475449607558934814379196419198872049231039062183970435800974491220913029603364656560500481108606481216199574909562164959583751497459820486606509950573301318606329147177868620421291458392800104431857665723822233209159590142696728982645407532114021829036262842888614951616822193830049002569983778311241057534578762571521711180037074435384716917001797565759743001554351021327173974173750280063317423576371249659407173149883705227366920383200451546843991532880269318592109433355007051796769437396463507998703220785782238372052879956890561251070858482560212819221340969420694475386629738583467709663294875170592813661388883242969978918655556280995390240170612302789625663492043078342400480062004222084538488030276214927978909718123901316520397749282267189672452078429880383706428309010806021040528585216411594856181826162684376125213946735930783161061882065387448912228213459399744854534295396482807828788840786027708095107621508454980091782606455301896481024502482896648549491803243714662280416700296878967581294711440197815101239506165406828561725406267729577600230427266727789143044919598026750606391026442600002897534511347750207837416780362813724238488653897250617515228489576401007379804813246540757301572164333224473986911185745562503169046574198239729482765036176551513310566465983277121283929801392347985446835372694879808828427225545853249397358732783787765140885029632601367755071516427818284788998766903565070763605144381440642467055087670591701903222586358091791660861285506741161559915903043366349164294910577009238761136171013503369274998587376745021894130656734346109782872940982470601517810080311598536952431372083510493438573069188953921804620236468706288206498545787589564068989886920019241396955821250962589960289877586525755699900276913061975057367850165921259391557225078591901122836732424832665205530257575594237620829902004580678610725950608697678197543929286623430664459364586251048506002634780673184006851888965083128548679983507065431435491896672108708049897868417491803001262507308069009620126429851930390988725200645967420771747175302771773283035790176797513240576062665638848878848938308754277770100068214243709485848552588829646437103195232451037171729789581478145140474832519879604175206034095514532736622810835733525447683562910354116581985294269207126059740045251449515013615666080462667931235838341755063514624255007778586438575504064618690652092840487586897190838555551324048377416783576575263301472927893664145854316660631065673367778073129355437165663174749556390138624551425154492359976615929014656953371711322835135076536408337644666834901050022895251082726173566848056881949333562703331333766956615246604253432544964667628606376606753185897136705743857660446093353019810254608739074596084173489465753991857322881748101989729795111376455950749821796438880906350356792813673953157764527819653689071269525798877266303353523724801425429282604923992384377165214076849824176884336744898041412713909811570081676468410584551004445660848808732517486784809880904837936438209508254558112321712509717574276216900086424362271394400837848948765859870973068830192246042561550379636761708135405667785687690667635708450907172189397341896108185669494362044675656806805507870711283880746042708597401188556764484950695591933803107062060383705545550097951223596281446954969945605845669232645230158002454909170245570996214007087475647681381381664315030238159370544658783838376384085169928214718089257562789844936811518024490317732078093343394399157121343414501290263802623809379196330140463232375456734400084948114598850524261244018298672240889559662334771707532699291213811333110814291152684356419359936224186729086843994983719153205964500414438531937659628081811323240506483056643932474871836548633072528057858093125527837583212027432123775275018158255676293005390051550983777704405947748672955205029816907370619670839533698535735862633703623874988906568084729495396101024681176986884301254890456859434592704425196371108631008349396169798302079707873598685292273732780872743660357671415962511602429952874017285100813916424915775558385613080209941510825414009100974706586196941455965568434797971329892000344124136322692027133117279013501613518282057541331102157012404203560463337517056299394490218772514141243843913678039967097005944852841848001076421522955936516003899644005314861493047742494235027966043623184608033694867526915573599527855810529565961110567726984188226589281843348065792994500626731288746774701906260668314149530437472341139887315234407708400788507864851397630484258034358302315646115077544446461098658109110548151237022296051560760395683013913991302357520241670384073882154430961822147004478603248132125153009218022777339211240177037720450950147623818200373341756429230532690586753161603334169995508737196085871569874383713202250769652877530957360354019272504673179151776127307334333537278723457077926172290561937683150385236187944853226469684381262946158574536881738735784600240040130886306173575442967133868969315275840697094773236123226194369017342092375857519698496031980281449829618131692830121524881659197503644672854226758772963907271794128799388989016913290051392973688084175566465182546168739399135424526054444909306075578175321806065668755309239594337684788201790583166145352904801238896527133091164859206658624214684219812769134471730999898350278270910446637362728210733014619210454259583313564853232790119326222807054016452506254131627164253834195834519497685547382818375938415062122107593138840463538194641766436655613811611478947983070135886153087788351372226385675857330828760373925550195990690133673292612392265863452378177244387700477939174472717371400969566374619269317024924990462437474339701232282186025389250410821690182650510708222960299735488609643301638612336761702511000941128837319830288347844877903964354276572796968906653565282097093797660442476394024510505591621749636794248892320317320367210849412272579010583178243810652587679247260293691245024513801947641659107541694375987401434592438769235695389850302169290737203804803954304197645303168669018577562277590559055001063154923145372744542976588908121793549612909505695909667134723954968101262723462813382907179069826103855200197363996301458584195217735796781901736366042986333230407172946915194607141006966491155385593507640765690686135993370868701145692862084289042093566543925068498931818545751994616447443691154503608423655363227894408163759081492849084594134770026004071586143343748598385853923215606934210550439389686271625993774406182992415969933284922324503681533823387864363696045454353545648768263269780125152584321954775432839136686475287813081917678158668920068414267417926192670353748916004311144320496176449593384943353687474011747333255647500845414852909776134666265692648555840230639571957322328665272596267028535763812554513316455759244317578245062376235201385245581991025026782224231714851226695628907580450200831968941371381148171752703293171183068580025757342996804671163036548845982998577954393280267651303857048423226905250442898330700069409021522109255916062389433383784742573774357603039851767326150003232978607974089286585368812561661898868460573039256714480948968554780233786506162024536486666943572979103603644267756267846208235919156974229430461632569200202494217251484595806588430584597361746075606643887894013287145876077004980231897672431818247669189599822629361649895264814289561941109824622411641336328649245439661898227430269419860712595859549832129436421377360603431765684418795701263086913883702921072616474163407353238718212917768979670702174297020153222763880889972274830618970554183072068758351916438182914528834669123521402608465386171711987114635035628931280779266545081271889357920811480171467676533952990781271624995807602862687075239676949880201412488004566416714287674274004213983891824886066186147419240071959689294778970047028623875188688033471247026676895750196474629717121163521265267589240049027903545715118921890935676174184748201834195210505408062754275167186013443816206333985159759705846023369154181679058375291099058846644172562737504847964102321463457630980695576933337948259463762299602592415224780444096621715487697607076921388676845976110509785346199358824012565448588577145136054089653121050593335437510825959665026299087730861743010752388460382051558573202666146655165250747789146631758725439648548304200335030458203333577151264818669933910222132778267819873659479831200587605323304053865452236402547040616461352393979343628075120163936375395828626639459981501272833136761618969763471760966184298515283756381823032178977317761629031373859339683932836304314894740137553295149320816138987896439024284978374417553651452637600524292496637300778376005941465570015427495990937295146256357281933244830304231185171177593728802678620895139043594876644764821032556482421713102882198158675420577828407159506325909735933033275796354023283296487330437273678155187412809391000934578052225024682832695558725044051096679889290351523214223251543936936994739558677405908358624628417306487497191936369678661028244682174798225078953938719300478949572816221103710310294851347827617603819671245760301969545334798611214141035144275897246902043148112864652447882350976463682069132671150728117466811475784897600148410874616417682485805522519898145312140864374622295989874584441270211963833443477464970656508803272271394386820402920929945246823561827651631881575716264424769629375838141896608863447041047524447513442176600001767262790162212717436393432903285074244328883734353438284448573753226308490932567474246478473436914250944884071947270776192667552968254513590140300426728904102174167839577913334499050872819207575517224103855338970494398711465201855419854975611646342593988723227022134636523817840439578527756830868081783010222454777303136588968458527519668001174353668143035981013984572574087028575843097696846362107906518974532351323346222901990471342610566222831328178035105205769255955171235419705173992093909814324019814239736697058363268248786692193956421283507108197917075747150711287085039108285750496194704501670048730960674490052475077965928335747834486011907910427034542451980206194549559391124258866322526189245719714222118637321065745711361256655454714318317324469188725983111336234922196417769231030884818015465059551925772106048981382995685799625822292549532854025947877872646552414870854206452507026857852743994678292124267791705665495892299394194532951484556889885254888262222381294439083135742517753271358456478827359064483277368249734233184915857424101394322265780990023388365148033100147376418133424724327686694477247699155706497982852196201378954074362212428595338564365158954242220417981890857613688173659849538499604194234422469776959041962299651201117917456976708835364389264740078541309266577435032323511789563094486777157847197347034460349056553854546023771519569081919491042059029491867154742618527753202003190828571247851788842639514499540349761181551226511200177856656055164345926949192548877449097582567743011303704092168777798610362154042553222652542828621692827361098462242997529425185926990342827511789665681211927205779058520602239844065002341441343839923404250839160246668775519276330114452144949378059504739116523262767318787211413629448675454555948661403596369178170684429973279239105780691800383845935166490462054546400682104413189380834066927798915503062489710245451551624246041170955156382132958371362299276345098936982300977033667435292194549896604038790938420498210688774835185437860682160217320810766094700071433820090912373868625078688512406341203197256325126910908582108392560908964837736316933942527896516432110208874311636543076670193390351689578695484455528581304373319914722781651852452576410885761378912445579909652289860842361460174621055712209149096448540118198261452203267796163515047195515760173514509498999354099888540271443220478078789800144990045245637613474750530262265114117077105254640872629972804366137003413691167597139179364990588890046880864610147212118781525725847708487243662576823334945471765141397075230910058585669734012069701077227329481782563612787498299753018854865640205376575340066762004756821786076461141887768479353961584588958923625373170007556431090651164416764337140783316687408475962485795096641606175539626642991684941437780729812459762565717206252488081437615556283703775334934154908935527553888469051213001103085628638358121567636265247978577567750215656570731905966001083222152762042762644880734641540023104634223647974027894893783620151136940370920361271055240401917598699341316031617106676288859756128578564637294214318099130543857994372718289475946353837736367895954409829905369788731429460985111832971325523826068371108650335327499675275650581257286366542494802913038208928459358425577905495852110392422115975199296811287400050087641783654180463526053554770284274998460687366131451938809438491854357222406596017617542423756888662355529017131098841324517268309557173399648059631306251410572088200984802946983569354166195838801749370320271955945615827640081124348723693525785248695037038143304780256708740357286756947540246640410993289463217310807316971173808634263038684309992565560981136140964122384615585620641914943411499625592098926702263089491010724038738164786800242456054111120297805824158178246433742332142247297938192235141206019119256172000615344687221412866432912219116450785745210980234584046557864851985038039514581462383919541502418218390554409319940686956697061771677013684592454830175559229628455230944776638018862008161990128312695007044920821735599014867720440361118829955909264937408290859064737783389539879787930055911243914044557151352841133908834649553258192046077646934957550210910626087653660348144762886744389733733984717268074728710618932903031289408224725239540280790577046764410960883650698086140939879382136258120575395098402547807436172941573590893888484909205682916924728404181904643716990362911558237545353037611988730409981171322437472412448004585363144932962583024340314840309258626054824884424390998997346047057939439768314179393265035169954653696672980536311564422780438994969875188879367695421497034881434391313480496958781571139950796248804097647919401629405442135472683647364521429052317584748958075053768071151089344025585204749736088797235653101559376019859314460586900179051083266567909800983100464765346430486555931598346210607477908519730049933289914988908948598151145642935787528736362063788579245472076846494168273785436868057392572246427608664654594563032305249025393157775771207181514853734825346576774026784660374327587378510691401064272931147553366778256742949554702851380936796791980614838633833037892396719371824978635775047426430025684105918717845599497888724429769805910347166735953828785670292709622205498088697132998874412039203020216741597128546510569311279996667214714503299146307534369246648183590153290137874960749827405337433977738997218888230735949897210165127778638324641189278169181904170113024150663039321827041377501609876638916106682424808405354121750974370749245648851557693404986755701057006225431874151583367960003730692520575155506768150597179578008811289076655267430122372268642692972388295834880408656931226910956785702954939545201981665505544156010742778852950093706965535103941391113596538367923570052497853043997363994750414643002620226122288614133907029198148220185279477557562428835853286773210685725937659206920274183399621662791714770727235658751935553978231952192296685728993377997005626616046641051357390955003878298686590175243346996423467124404020807125367495447510045241053011754739155395176145542992949369206209232996609096285054721144726822128038287978930362380942735461969116575151566751048012920718892819193783695697125952413609923213647066901614046044360358771204242500070657253731835008253195923709060943802991433339265023367483999473478956281036010509039349413414486208814570229636214185514209766339642809872349388661828473377675122666113723880256919116699269557348644497070387103154121998363204654878531601835987747488294580360965509552919603238395288277228538992776750504286102751155123218491296477907704656698021804031213138493316949803417985543932666616787121912228970244907089521584758944697629591359131842716680403561666705245208500757879154698799356793562200989742203460020427749178464088441721545095133939825034511702566689066326831800497568673947723022835950964996032200624058664047850294720434591198592027053066595052923187818061023810445859239320353143824795511121661560049930954921198973208794385937034334010328449968610788115693211193053812104776076488806713313886110192880300590567668485523198116186753509663435105295701241369409734384298287567490595489540534485284669411416843666271577635742955964306737298586254187769590458302057274786930631458503209022551581132332280938153861040944742246896622315881563468030724996659241513145596981951268807040619280057070010722641294488455266784504609885036538094136505233133521629869302814228518395578257489679298426305783359646910358629334607933290898279613344057249161626529119212760671300187075948071413560853625381980008371017724133762583832524177757116136612137218291700659355300119915986888139705872422055384384698948544466167378556596330787927498724824928850498580487361828554428167534943820967686318803232703397619237839078836671561782842955347008756706929806101950857840796169205256019058834701617194188719502175109759341482768379711582094778315328478319642826387539348371562779878613156333177470914515938844364424927955317926987925334748036392124296415823426335241090633461269808700600620530543359679545982969539096380608606787019689957803087104862999173993610652666609753412613845562794594944110323392822088338711763358965318197768500391539981555781172013547644508580121914330972577483311519957134560326214726305253735262371613341017995613449652242248410495203534793595692066905439256559785903217617842657314546883060642604848763577518995367652708667898566826254261156629080267815044410144833767640835920838075860098129012240244064858525692102970761332863039687355889188556582198090799496356859016347261332775128415499036348233530796265797950696179026514981491897495349476406881714906810168846222993237746295787545407193337371790143554776378157556825916195292683059300130891463306074414041101696688755737348488514228687711412287158945614292926682172905950767285560861947727948362466256850158759549802353049710814986452575205229679934955488935064105681571100026095089235593373788674388999279911553310887679556065351205016045315615562798329898848268730248641670047294458859586763617865588787558528312252076436495530144629909509628379771673229158141943662391218571426784741584354597950418209234322030880269061594925953608200426316312405213511257819697776484095173198812803551808865410308606682841594718277208843416819514934623555462235457354978332904518231579971363259246823865332719566050249007271661894814505675944118743384586770144751867220854992154598588680072041109442685895770879371599247380449132954150213435733373690973676770333155782001893108721144272220291027714339411036474612780358434888995785439665309652805992318545295962032173046430240081509819065050003403954804108816220979774792632691612156685396286279283903822197812112092023580788310242996440242365106009310618622282872673582083728521484850576133380514926516564299444464018487468278767190608423578208583385958648082192450954874771375982324394100574864602867233091146590523282894637273281373804991230909947489140844926968123981446301486242048893058468570825096276063417945224250678910890213715843356972467482910437680119484066517779766340174343887219512270459162358100441010941769632565268865285444933493758714889952849925268210644289839835548571931095005474111207090848395309224548086799139904754287952227896712009974794638279487800613534054986661253807616540133404225626774294903536982701859894014686501573094293002697743316044639186225036179194198920261842756911577023022708672293241956207164894616985992659120663482273446907431927062905773234781295238876952348487387169705191754065019912964283398836341382644254927266047442216237366595860747114467788145399816695087659818237240582916760627365879402309462828503260575201613287673774078911421000807445394327343412360919064790578474352737724363137453348762343714604185338069368078786020882525545165739238440465931035434763562852982134810988549968960269097429613454005461833930673722969694441444411374104301524999935055874441783821325777905243457698771527462042883436432082697495125076972585406358163933234858211429617646060649888059907906711028669698913629656975178395275179190530319451661528770517718464550888910890147998308909559982910197515592439564853697294861552214306917823763480779423141066700655892900930708014291715764537784579309906874729443628501573357576004942609181170033407387651892605826861853955422572462569808652151429346952516494663772704589465859268902520829523123496564139600250063024480910677435886536421752769371992271886025295718849696056165223706081723156494596917898624124590892615316713260831283241001418142213993881387630526366045384827358330554979259110452645566575764544608792324304924145303913064049241579048197539751872177562025794169058436981887082775373331373067253681641703574896961837961989682861594471871851100512995657089277512489178914433214475122096124274277486607873810771943042952441337269835504227652411243031757353236125892492462551339567305207658015431148391200813910216108501646990889962823801102213896757131333294992103326922732215425002353024016565062351088084321405636262645941938672121416927461385291720745947386442478263782018406086083991846749422098701796983085023011005402109515501249462274119640264133438037410523183500826105312646631228615525928186341200060125137760131174933616944919831210250866578508220364090508208368849833823998235203177859949555049439668077442789512150458824655856211833769709766927477979407469631939551199235988570441915746885104737734903768257661364481713146981149735860677399333777543581041206994944280440768420998562646719543138122584270638854042625713985406767372772265491596937035384720800363689756894309382471983059724731776537225438713504460676502357196461208303053669881630323354332364468613290592404399328698917540805615864173811534401402056952020578942252551622788336546062171412642481817021586605223387825785270870804979507190569965409247574367786832135968448202815182004272970835599213248608025225968269827815728105801170264269155284755033515506916261675276080365720895755664702119185404768217923566879528189606908748642638076379908269850279982053717547204849386087563543236008204523564524010126124952403378079018705300041241548731274917987194037934264776921166382275797055672037482998946201717457960691410937376429268133144553464015718234343332958470202559526991136818462569660059275697933330132655052183713088968022659529349697289007026469567195945152252569963974054166776738107907306157068984618009113797917836569456492040304140971842985452333449703929702054742096500943562931787003384699362422061441428086651618566381062536692060513027512708371814097897537652418195609291947444798546981695626522644546642252347913793005395025486814952607949479799910356132156785192324221474648351941236275604182614466202549956896684978411890013501920358819630099463105843145430425091140741716190657721120519528134577342231521139408038646712459520795351609701458003835936161910686847478513086126295485540531035580223428422755186092108335436385795921943904292404862094547542228510867827814236142077447184387142659077284994286087449545407616828793903766224656546063510681209035326563065749632822140876572192785318920176177638284616778484944494275365456055431979383094419622425062536549949754550921364695785690158738562964803001615446498748658015827947561515799506194535616752901969724539925509045188111682988791171422496455010248596111404844131232880015861657028035711692597372468891623787107861840696686075893305247923020830319320603875356338457458122092458924595433077888175462905587973144332775036012027428839508949039736740154191350436601199439771088282321456084792290965548206446848654198241762724423552525692162812630035256126761750633123874665362840307540104211834075082654768978342567585331564385293543370034454510535945995474761142437063633074876274066015688995003196498281982574205414624103537645407080412594122298161971793140166738702924831720051677189201370219029874135481987220320016023140236954169082642480886116362435454814795389418825000079365414247993152712224957710777956571166283939781192576241310052637599693763449473036485901789710224545916273039211924496605005958065610364978266650239907571832442964557685206509466099651819400648413042675663740580250129300061398271900580445109404105628656946707447616171190964244436526409032451321374519748785733751891104513019083621789197878065565783417030811039343713915868764799865872962691550610198267883163787185011424243348886550486804418225423096318478600740535697701467485086421627871435191166209100688154812947374933259446696901627274152907539093335394667220879549062293926517207255522491072379776933671520281463859128239064272432915058869692858492884876739522405527799557900535315799636406709356006623291753389503221248148554423627875714218646338034492424170723899849156737338113136296761928738916311085230024872613017929778202387074600273391980128447157962727296215483149924959016197698900755257548998657084973868793141422788609017115684334186413975928918792856427110232079875529955896032070454331278432492186271435332470691325937688828543544252362769868851815655187504304212915373918234173582414524774327532791962795485249217596233001807270771588530814900762805806800444920859968298882151742439204706412474939712641816793703604162007872292011984763784015182040721261167771568745300409545650776666317897086211221291245945417769717584635445880487766205473259973561049118103592787279503722626003279508114478737485242997538695099027150403287544602099747002496393280518962667714388902580720259532385068486777786261209531015558051027092803065240291619560272254004664015325515786366438749825110118021526794236992090922720228477412065289129018351682102088615709750578715715192028266209357059116116243374284338733360693098022720331757101905616458758972337434537799176031950443211017690531636322453856342846868754546835104712765921333499273816279849178691879380666297100620358057241370256522708628213449935707011802905997494697446445029467757820953924314235936753993391493304359600818515530098964040252609616726691397866996746508700126426931725379186736684015489127079007128997394758434193765276079738497030480964048709372003229016227947724090891343387050867973389500150268607743388070979465113921994710506689763958849217028953042906626054179850686283977465776531094566688960683606656056687364859631600025262136711786474767419698230084213059459744300507731041879175896004702091831166822299692052455577990688289477874978580167493908845725828978788077229845724686130766109941495569158003661131196585985481495560662663340663123629470198077792323920677119515383904988244111553159513161552639670061366714813163360063725891633418743229816799266073929204315067682755302123394538904916080615048314331571573348123220481842041350982898514719588322317596347786023149851567491896472813749144348431770991685419343322989578507958818400735473300743003475561203740618086859972633796114889737499741507005696121490402884943995070097575755786888930629221575207711090240160096204528037564127972570184501520150428496946845347474935285240410171896043974837706768806828258958571340351678627419536872880370343381889265616894975591130267168792316773394168369528031859469343315015279242549892691220172250690341108864214779908790217287654833626317245771947870559984051488642490335771620691687475321472414697666024199458270270733362964578387728602564025296537808009408077839029159849711750816294857967566815304383437923096275444234188264190523400049738895746653162073992793621354117844882225508035297758718774082403955966163999862464436698740293536866395318315022387235209551882464280670074770762890348491062712198979749607179434128131926636579590942912081402602347657456934830116040945171036808698278516779454614168399006847555013960686737772025543645749593242786161270595373245495530262651116356184494549532321191827987627322350670441573050574563919019730616576488795006345848117635312067438230943507190211150801087116230173153761910395920157882945701077567307502314986174326881335804625933415590476335933349850218438024523714195738241045412010583062720477403989216923849527924266102136417383165602382050502918062940158958821920730121440985960589342601267367677846601971118163722964055685032014954809115782315853304537321670941045014240415380166544152953100392453913212590889535848619238243140990123071127765680061889291165612625941717479804348451853553464969408461077095755775946971532132094405710969623938990297338872054437907513840969030918571649350511689084743687092948338469318789688139246334353676894394947504798357102602695373101767518893694533663612087132581085893837736775762006489935715539181156269264659217857503319577627378739069395548680318373866302911360619750983801896830263312970197724695141648179377183778789428521293425901439425822076745780943899712303308552046846421662640912618876276978401263468275988721637331683528001137865401637463193600029528269341462987904568264634672630856270931756650267324977575709792600435584613650247211162772936533018460839202799204370459625872659645757699873633429450972195706559058190142962748936262766032700903609232888570461237308895718963589761831128381384712005760247749363779751475193295804709134227933542183151246963122051472857569638231233148490080062331459308928152760784764655530799923445135320026997877098284349131002109312712349016831450208560215391994451957738425109900503091903383059639049891972528559204350755874803143645734926312160440528534059785103904632972126589617428687354977180691635982918680741107732846477099933741206933344935887431906140729285938561841259872669632482743194626427637102992933235842081947279019194945421696894789333090922421657006490538641059279138558243800300642692611031788786286425566722069059266685282171433645810424140045606556123197687401129281059371913338130389952282261632598410399569531145642958562310967874895165970487687057515144358085546995050247806174191939512738005126954506404874662658471052004182739388398218454743854452619053923739369759493080000694599673161991864377240181712860059678434351196401535349178637944878125259850933511492756998686587212908745755109974917722809182515789183390207316615029822063144578539254259087122508821734468262847728029234953858297288518259187298764634734427871960321342450344254534527033430990725584611572410343627381539179296808274657878075305484359218356400430427109978074616751324500686263029931967926484656714880523879981577731179075835752078591805084594161799818015541529372482432554559155497582884464206122969682094630051727824302529841501585069969084391515322207879806628384658937845676409144469054630906284212258442097056329801846476007666740921289183474232714013372422288319808999462430514721759628591183442920269649575068942967508768528574195883848248355852544034838370702233108477997092263376159405878277974934416663502704855891468308698684911903653895846022820720103634658906835021123588045657610780589640148104312073576141975222954757417108517439825652223322390778385158613403751748006409260480754869967503390602479440000246345635316367574806570693728285554402057281325589145713805457612202031755698648149769282338175553869765866378393566613807149773694207536884620793454774661452424960286335212604344390830679669509607534247524577158482224408317597858279644977047071535135983994243738165779902938037838877346376824651204899086697289464860309089201092463769556670602843214506749141358397321624237488455181443214458805107350781564860371135294389648786586280794338595882034726324621852849342952641792510644400828490016605952774241720486557321424727377955787943504254373645347108587870592438643168963064919816753167296792141038573644002290706828177765315977736660496568014548424556030566397203630904827798125369032088235641897075729743582229849368946180602277461357825232254791469914800485178569841505240507049934324229357697017299381399142747990953537523993947667162091087949654818923862408995695987629145257577203028545167753151671629133979657809066723571866541315238695667682741289846618817320701888821525843000622122857523070141910875217433675578116883211825954655961246195698708490949325438216571682132936705003869089551952963900451742436133360771723245583206314978354708280991557780140545069892838757330735683826974956060264604977364884013159941255335081990660425025935372875695659599037611987300133312340695182397027881474895168799510996375731043194637175698580021521640151312074287505883013700892997769973130954882067701634502430900599712346361472625679962067791908643869145181263079530666927263333355874214994379525293243876399024659244245648676531490153952842390566639195952665076794132339993947554883085718994509519522148196508138492640194182987139842702037002358363263364345732109556516663332498141084813622291393875410425576298974481955750408790769026357225468893475828453497921624366757467862945702661660545841578748002072537699958628940201062815468508345208927227680959002346235552350681161487077688676215818659762380775974843543801581403007047640643921174959173377775926475225040807726781607234223321582710198446689529782018332217181938804759090542423901264045105173726387870654695773912696058554319909200703073720652812159586366602830284441813388143024026398088858076014023686167134599913589787122229595715839314491032465961520707498086822870079086926320110873515750948857049245636316558905353428981901889885711823381049321536010773714886623677167055212381953030994134398949595213851300749781418836632423789381428977680967616434598316147029386576704461901146653424501512950477175923973401156925243437209971686081001421323735683916120137246560549693096980061492594021183326203412111488187064121652012735319376301723903086755710853915289526615111126512352078606726960874627091956670076991712928640324174140714399531948217873536109664817042729567502238652081910540672843944779100378598496272398067167458199792515643617693603067811302213284158649210467270689332462777391880987832546348306237078068872175514396975652394733006825315691528547299139388482641257222008087138123800012608377046508526337465810914237539035096092978242712365193646592037251464669353997510857453802383684623709109463176409914730010937360779686261320638726502909198052869320973622232276628936694535362145390883210338116375997794923334344035850374518623293112319005415550028885008475965475105159514716030007231103834422792044514272729036785978877806396028889676139400935274418353409552365107951055125062736098074397697022508185282541125712561180788604731698029555519083472075748869865640252465947154288112913103777987497033878168606692499740270016593305587029284619432986395679046506806324766812294863276522196644797669207259455003378528965553807803344662008295111209211482977270951723435967748730391212568301092167077872742115762359163942028388473381878218682891985637120724395029471209216709059824491910484405499753927511529025472135710002934410321463985060969294970159340284901513121052158017571705895094903324579003571680307588781409475817902083568488839401952197956828842194466097512578783346748757744056705959078396039313190724793514997779259925986900829370745886379232714518431129702367752104694359983746302497725938302331748156205194961342317937415599480315754060784160653483885263805998928712361266931126346830188563968630305418048978504892335885652728477770496826799110253005795409634231466490809870955651073624124009798651000647145338611286158867151936356949244895006812400341332468171735869541487595189164852495542412665490104135335838926381277477167704168237963132582366268565922721788735353118619110384082383159458115352734112154537063981632852825499934262336210145333113049574445286705837038098709909766217569341347691866289840193674547226508659674742653867010398431067684831256978107035141330104899990074138306343901922121528282469931552333898372538684018662216689414430522238494195311869499591766940872423891705133353681393691036840219633965721055060571773786111713896841124316209176084647439310050649170477861555281840668157431335859085187203138150077956750892305759891131634329779627610964051123966687154518934107616439857772258179426382259141993942116909483639631252503530816403632596916610566379035337155557480712914292530936659554252837037788765550454043965421779862258057360691944521114647511290254609339182778277319503783113620171641989273569726628443974035475399002014725383421337477031340174206774958745100918667704658917573791974116983286920267420953638956891918081832415517068623797424087911074261759466557764131973158161004640446208681159969678614432693988566402500915179371748716321648887361909952150433757748266742260496053561922453738974683137457421432232116895006403393289895720774058258411458066180881644077902215789702286036680494886511223203662558939166579160121044071684883155290961404688912200884369522169331481643401362362917324762309013884458231286572740923973768562154616741496587711613193448960651309382940370024916186020208714589092949044532273841308685328570499043850789991416731963379771661184849693948279513131941458072512663297043963770765983518672293167526834380905509112145816113323077378090517932460183937094926338841539829432366549373710700214175489939250884495949725052943848320004560363842404841143704625767037823430711233917038670059546888557657704310159840518913189802984969956652472348890964566171223702935813568003326964759999967974484161018225567538962877490308582621892030151294838887325209923660163737758638043821237934333433718844009260248812178955895666164349921087955306428669619111234790039492543217909441752526714655087506816642399240259575652798291190186451542367883132828947833264989551298045309762575482839972430811921943581313490693294922859172775749930950567767501433223762651633624379560700395177585976091143023412620061208131842416669115711169782159986064505543695116760132920440226633874287688718499942879008336575543424984420414990303276021363022753089714238202785727094945661020774214680093388396485598994771201457108740530355696396031659527226957214802506854489319851313594087911010160312519556841973170091463507781628637759547238936557692798700523184978775960680964209211434581757146406317921401594615481844149828768917582197097742804925590873972622335600363885659850654600353072041719482159457389236275843983902911317253959129661342927111365473976800839509576414927230254346310808266935143019947830080370011977502630907508812660970213773709921502996971133799703005937303147927171972602416764629404769938603522947192359923767144773072464878690984679877372664513406078301620326211183521553645478761399474432454116229952699409610580641207123180717860887678581348877314731834734841497091756611423384464377084033346011392208939707039970651272656852990971469497730658293425950521924237454747235902167209896133769855541420261139660506950988910463037388093542283640953196916750961616873391194196835250867395760287885450217413949639075166414124023435433739741582558983108495384916860969660212330010319352264036413945479319342268693208791515227294064375477432071600560209234020239011874303451183869361855585431178393136469842369374833528925947293463102869141550274459305363338605251605003901343844270304857269709178867959298141084364376804800758736905984445355788756851637944279335506282377676656853087315441147235560257075091227083824891140095978275872300791659354896214360527352514028396001680801950212737282182942224062050145546856202315281422359070979916723705277195626630362807954830474988924532792142236876336617122349116450731640409660312918363414191353175471504158428938139400047692069306811635309480266170981180655478452160767274164132493487845427008664754831041750842142579493836067945635406866244292697325093557396114865726253238965077331885429667576272675890322669014822930722686168060679349227828152376875811501973234592803736373802391968968362319769465432142401811972078441587047918890317594903865492846368260486947982065258187554155025843714031360138722101185897371107818974989098275293702658404930617535429732010286615025699371861095991251080491701694070028032620793897294395762133974856066466479137355330164809539940549976542955209667107848208894445322901531830817120866552499415418467351656358048696767602203803572322620750428637381612905895657877402927289154144610038455753866233288979068678497063948268578760157231409894315050241674331263220884138910464214597692400715172652523966426414989042616472231869570607596350629477285785888806057692256110135521865226284567296058273970143227051806056316018307243155008682897466020729169017525811629377266633526441949460097855729039435926262343985841134180219693339896767344369653126492869869710494435987072610418693489058565294549913022196309219795784231306271588309331189468919697438111697452752958498340424117353373682407009522825391805233289507827343369564528501897198623787392864749813170976830865390808050274882387758801271327896108423165138947816626326773725606495720715451837789941890040341158260446041876351773508954145289432951287288622870449128939422416651924661536801359344468861970664319939563638745368866075747726608711365205903176777754764951999349939063731843549421472782564616570524283595490624920497713075956329343003462519146372247512721879644991471761044631235018450783642876134034560319516655308438974308718946450640714430408417959051031234537814002285028144337577757810936319264478595451839662434137102369730436111509759096845377804368138361720244937488522821363888084915499992901524348975780111139648440160268326728263573836157590827113513785762900051185240175287731922647789405256714458134771911275236795479679217323518526169876327756751747146250142007675049307385032508622843409905709149322265542232461039166883345682276250177857004035096416698643429622694764754310516406311558808908625984951839208917940509111947866106883335013393724217728160569987847488836256003278245775370956384692902802869162012810406393066140940466264165291006806863665479268968777978429433846354237226330253563752287926645809526143836238240148434501262683880249262388091726969557276111200027924528120933801525928696325791374518784768353119294130051515783819318777077284126718241078672217545515271858748440465381267235410556747187347360365785771382948381853030879187838892756260936385116657087899503408213088506945019314988325246338070005470638251448882502107981767631203063590313319424391967647508338346655171802311937568948616014591027950842609461729713840352983319563339195592675167491766411723917247275071392204160405976303326901270179107681790816230720618885642396223445840697281118993684969230513896075566318820627368720120544777589044189229608045222312648900839944156610908194542407795413563144961808470808230909781841930054510317073966514642473385895438273779928600268918927057892228386370435276802136438188171376850182130519771352100915141473956935869344215112416288343016610027348672699852195040197350605954370592646497780297973840025960074620947506132993202116993255634454299767783212066269487208025454596905031270623389324069933960397991513198106257871798618066758621239783750596513844197944780707338605612640827989685680032020733680924380732387203988686505467589529023284156379403454780812029460252760478631968480349037782362172974988030709251425257054382107979660106649219262606654124698615147118428107890862528703881328753114764307910833953268552591980238370561022182551025857245083049819465503116733668096500402938691776562384035263329599739959932634499350576523004963233467019988178175678391371082594338291197740019786596488805826744373649320946102856726543797654944425578292310645059550083095167579328345766113626413797711224310300872889634821481244269475059726766905567841118023995406284000776859533474681522341473492215395472367381582958242706275516914989718659564631088362151773214009519750281733455851448053898689996244918032286556490517529014609051025505981388959273583054597195432868165587910495919930094345354752417425751634616919200191212845976957320221737408183106671674293890018467467495283513083542594471895870790100965983727350290093367514360753099255837816587495558117889958031348472198955685184596680091307656443861787760106401647748351632156004596985182793125998043225954657835402059966913895938190842433070182487864423088727930253591603273190252001014352884552348451260197200469115460125388896123484048103518958299257814497130283369142620054898227398000558619174522756932171158160062849928523560497338983972037062531314005491258563560380609556038491206890902396756949759817649136227065188873264556735236123673654613634476520480465729092653912480344219725854720123609666447335370332225484450280065691784261637834789049503394259009593568218465525836729090378243253497711730163164862086259545901300392728686474077240822690731169801007156018331569393255068359637662486425805925865708549604871333834702786303581826735752795609401760502086553298759817335320997451183377529811888662631709260604260737111003284950926651424203289881553820508286746290556446866755620018227489669629204481022592944380003501327954992423932837152140609718329390282920848030547006849596826935274357881314639962095262379079826328942344496406787429227557099646143676656017791062292746628189656909200192675182401945255541103033780631235760331568804087404237188759909763910034745162312523899185765884670008999226705875839723164679002552795747322628899872653636287869604823751491871614764002197382119724013209894545395143336656411196730368512523197733927015815974952690924722552508820493422633683608429816790825061478493095512488593156043720043074884737601983991209030008740651596557084073227111861921136550394404087419647358490608293221272497031685648158981129497953495289714650980079131922975325539117873419527752768786724220048435541446281394616973157801167475822877065712628501242671224868562150622585041799201269713031395783239335548842208303374609773922884850866944315882626899246300742129848091871526140496164139040146549916521496774020721434453594167329378590383938551531166471196975701321046231190318904164918211892551106506433329468283465280789864560933709857131047201214519321039725980661746305253275330287874254989177142027128217960762447879042544737647187327151500760382774383379516260746050434424380225286395944544266239830860903924950097940983090354268898925418367995454071350397915816131043095787794770035618695639772589039595658045662805321872215550720976727670787777408313400275524252975006662692530414437928830825327481986269595175667714734456017997117483679243281862539420977422873536299066699416738998620605969122120632350389570517926687647995829709589675533639059276297231465149725110189725648213139208285109726947142856515807536395466712097690820413011757314897250919648613201618183241345217432544034639800758065900775781875805874989267987040747528622192134185759502233010204324780212668590503660228352253323218420902192948582333071623624732961094024554169960215014872834707345353849565223963743414633289616700449931238638824310947096231166266137498761244772445814785153102520845638522690939680931578139274018883251910848237344015368870020905106674217141936641467263590525818671410132390905048215437661777768304779774797229324833002242369980479780326156009720053465375832961812289485845251379864699879489750183434479695353449261966739361148995106610944063997177523533053132446245325068524484197260454365315573965479888593014313973634207149240613384962984624724938094157862603660015435674561573149123933036492734748971970464339298321275634494841772072205038860193612707985478157519427897148388229869200116951818287050088888243284408216922764359635192951595685850123666103453718756442464770535049891600474842748654651994459822565094381936290369346507004196786048609592247814450595793178822937865098199930771979002316345416517684085058456930779877315638742902764675589602536125352890038900347203041637181009344224662721312965869165591582436058184359042140000170706539804607340892819542979234164568146477816589010782413659049754337599970534725161194719099565090007531499101668001722970416390106493690454380467577794109022685523621892314688461182506892382982401862660945229202100971234291941299551820615497587168226532321176704788452136490801866320319054472137986751577470425404430160995608234256620718001275274983582179870523939593085169689850968187431123702299132360716310794681446730450041186634144268066784186611612099688741782506885847389258820516347867897083371190086429609018170897665815903312342695188641627925046495844715875347043566463351190287147182214070539708517097236918921478004077133705834293084349596512812973139961894398909881216834781470093229156714016103618498578709241529785886791550279365480032462207534583189168785065451641640084967907092136407313823538082945405184992199244452078767216484862764719000980573599241547309188177945172393620658989062991317178465383571770021635487358194541140271254358655943040930960276347656672699675352366175502225042219891247647405226385435074797714687908742343208659940736314394954768620069547877777405653546948213008366509765077559121164070048450755327842916399474547885577849601715835658533593171687537946559017977940662594211954392971384894945453531220834403545220444556852950627716503361317876576633174657686158159099168333293214827360405725643677829782594528783069937417270129880660486584631398593307839270784895755310556674855587822078198150881329047718598611866182766430433573414520180288861734000126584935609307485051510848690849694873946634175475842195612722937947364147862820902226382822051959230834638588013065376017054806054433829193761079613885597641455523529587208628698836794596609251243048491020117116140330428881890632069387492000508424258010811829431583671665661905959313024805107161892479866984320856742465523255772168457354457146646010546342650927124779455029180496109106785666664378651830052743333694750353175601139644634506147453378865961262679744888003748487856909984736465928922099464478524168471802168190727706503075125885883926479570169459051085336121936080218586047674561743190778701248497581655768597918639152029363920321317572678091838472694438304436278466121071180311268048043977759945044077069452853368428012347123882042503271596728561635870971750863749820348064218754417829893705964268299461205955236567470956168831896480076994086170553519126828681165240441490428673094295100080149837101474822276771986278566256514361133713426505998002290586047060677743612389614489433307708474749988994212870849551346291088271023376467660838970783633041929215914903170852446610473193287651655443311044573202905000584720910995497285440141156005355889284723865595097615451895264454868156642371470210497371636085476000443537473782796402508300676779356685907782810843058835056439583327309520239227753470908580687056700478148166050981788386314195643878672590220012445293090587460763918456150296153695848566787600655043577930462744767742566981801459921089222801703137648266219998922636033545568481918070008738460225185054684192960704521578546410244953492493683313031561488561359026848504401608074439723625302326223474901541387835335514309740862200748954011961843906950294494926156871641390053849725417157980370331962951991714662253913877861946966463463474174997831844678489732621551088569468001216925744210627427324927408065853945541764515160181779462464708710078253495381588944794843207694059504797381904593473553931803277807056308972756884189103043755787687426281674788925085096320585356251853840946816833164138589002758380416637530155735781616854656015360727611432076630270836668108204907935122611291105340303623238857348182034800610758625065647376627825248355229075307691157133472616214458523458985654874768847234566871077291438992835213391852866502417728192957020319884756483105584943039431214193890450226812533190718121274978425882006630363549046946219648273616273283382458894018338138651440586212129742507065482603216807692423744186557359456395695396016228221933345191351217406223586405514747567007444804614217976334768988650704985328866176574667977419001208217661808238074972082337488736445912819467347347846524394775359215056198098417095653686733108439359206981466973530508559870073585543730122187852485707419985120316091077569844274549400399483694783786824341804900261256073047083682511871457425721545069771555373434309800634293342554515383754378895756530359184669105486049330653618790997275366244270131400652531923700960131476050267375746779828697974505263244059260952319418981677910388632813174316858516886822221935398319186642086533570727152111586635484195579266027763742244678757669126112575088125125895246764348849155118424368352102819560604220777214436824936601827530279810762399814768034256292168610991736815524010028295487738799106598836677108323055963687198667122582679085445054754327550548407852915109487596048352226299506780050548299999311033300538683370058312599975197248445562088939792101531298355575795499814956910920417202205952835974725881781134727404077964549549233434829741945980371486383856089242982621151290556616101664785055973139113504695721532555498349352406881659791592125882889682902022068043453694867514087158828449073636927847061958055766869411039890457669691652048747711702799155058474439025709758190136846593793446012514811744728968474574020691471521613613690397199064177997141435704585027771646879559600200892489932334827392400232428881934896206874739750479112521951526749769110107885163358151040675386992706849048739485796592420058084892276857639431343245006370428571725617337601862273970867865840637384855079560272002288197613298046845118211394340439177807345165883772234252060130146046988753207781784103650286658547183455756017491385461890146345921763319158803847163254159302525887949146592691106561607935393648167581990468544054004815271242813839337035520342150371459320055932884745016237784947306689139139434927610855026451259313962824794611653964223972326457716267931163915704629139937844312188420467630021132885900475505569250609820246149534709308146623492619707877666924069424393581380907377335516297664033120505478291735253601917189400769815520333335200025474251969572453048775676330283396594200211614270305086237503897746378325734607978517936734926642733184515596847019417534664149509589773188428450459104169780650157889010180074823227994024330573120141675889952272867199336836769442426507116919891564369702228536110298609600063485355922785907723645555527959071567613700038658624864227885449960958219726745005161346224291515958660452440888264515374938428512144310492914486696182387265510795935905947036696777715097500168142468468517940385147863121378033856034327353890216045893460715528769315720048070243754706609851976232361311874643070968452675624171140692832720005634207804101227558962570231704474425368181802120262239435797810005377656876903578076441940995943858783054597418921760508309321208159991440644920013464149144607363707986171573082031371587735889280859511757464447785999391422341566129600283077228549424757395487328882579699488762832268505073198819767648440233619896553637158726762885553443853260029978056777402103678869046432998936780706547848788232878523690304489889438494614718386828580824030443256807640990495172274990411029644528492673495726526719470547397570220736571311301421568027593383172974778132726238996096873800726312446872952906057690041433393476863548576286409176299052425927002684901577765165870922875983503310194369846967868341283718294358002762123478943720551418427662646289965565510655555064473478204387499677212712281552746143903485036644259771039515079450612225576819753275354225419816112802374454380175820163861801660487984498283066083187162090345504356508434425749716434306895794397767223768115519161233511923779597847303617122757718677310306684009633606065627545799287769161629590228436300398684355074818958536294139597425548594252830121665528387386498192044866578624476831493787139189791120869003615453988431032859435367252378101278412029984798870288903677515028944518859422640199321402653607445008782236143178649420726604770958064081439139324709309913133444252153570422541680675142085575948218287662933214332733397790978757727151751382900342418552006938796881494824167130560249498434597482766165522382782523174825547714458409115704581464868970687993316266640040757838903224781745129262430821718516423311349177180602936908458895611350174979545573688824239780798041441860521030431786542810919180379708983987408322489970012666349808651457473155802480080789505679054144744490615508031883277923682261747263526297577174280843090863693022110577914976377047974533311491937964797813423018876383607582502054044365896415684460425931039289201054340393644030304131769931129629969570887192295655127036689188649782692500907770264714462786793404690315945159387649780455160965806050718660466310637359190184677033109416279475316749319313669961987058230861827042903428137473837903947021460579348731353463394208330553297615619819536694946191627229973383098041827214044439549258807236775879423998620612284749474565827181348196375572595079685889998531368057059735708587011925526072516850161670678856593024534533056937801956211946046040844087296273926588377822654718127893081450144739195985331366355230600674068498286008075510159878483968148716603949121373021763456805108244552002253783276126676983944453984035399398630856839863682832877902540663806694395980331391843988475852726497194189770054525330104717336776544481792775472552908361799545875473788987670611543516572422174115210727027404940990932617601605277639652456877402033872616150356340511011475027466066232992874768014107126171386192831372044524494684875185133841532608211446990578660026309452106778839470701433743837305533886056684378762746467831417260231816345621600901174280908801004491002033775315540068128790077074049353394803558931855174207422813664559296336958810490193596408636142782099000051203096140646879017178351114027927293365079753216419210757574656490289456870404076681121089558364408618753902995585440761857036491825952258723712527682726923537366608048931067604323261948608454635123278517137340007568786198733826566158456385811188426979033583590910786576123782020523903733645738694081895840474239268206940861560994820038377806496917782319679852047776066128861303489095564469148296717981865140201224919573719849427209418231455662658855164063189185659206919637276420712003265485301506653768495091091746588332835043977555225509469056660597777242664576558964802584252010517307836368210023981326730205662354596603797130106369777512976158259912091224941120499803731156225576126462913736158549217604167126001975718443454655066484851698938447251128908012812527385787861507107539914127416139686160308908659481526317306524605932700017320420652334385669618040200723402979419264976171771954933893512279618826595819350308626466607318301977034771004638660690693731715822884454814655049886125142287679217152661055683130259947009746006955053322273115659662008232078972184492694760452786915009839948788065858835150731741965224336297533615996002269087269511626799439803650231065900780333651277838138036483654482892609134144503061895315457390870834498790986485160556834783399278749517167376485025184147215993770515001320849127277195137269175442609165004707948603741013940909326873222264198461995355585369699755177924846642565789936556852202026534012461809247038576059772409028961005133298011040232938210434425728770264035728558489361249192783394003863469794770485360916360130113493002559962049514369383051091176787598019273968436884006360069244329389482528813519373534759540318580397896193285707205660754892343267097436667672929814080889015781937271158096156758413259918155843552093573056629161990871044548867494600906078718735533952559501822068388254848533145028411668960561562915418802239470996408811818672116676492188181426222790235851924044977260708232096230834321021145584293511596663180051541032452913622353576292439362032029087214105782369357528374417263773974150263791847051743904561154796675820935532669778029395727337184151624764938546862848840146410398205820520466833025244684333930539309771284224198797308249117894557990045264137637945780551484968351724556409782727355412666563733382021080224533647509689636106456901378349417373369595598582524798259568332706746996936336668416973476012993091925686876456016941361430615188348528375044301851922352892278706886014175942358363962722337395132136121478350696343348703233650376342778122673520596914357335299902907228819009934683822760652168211980802419149558622817094070327440588581122529064930612172606915979694719426650586621171874101514766613058916869659237867407856241719195137519270568145341892508922699075057945801735250067310767405214488965744683383470973987093554328028583249008640444730845146364919273769519796578929344593782894938130790101226024211812093702574928295014053306608720469422906141448151505064516734672317826010364630481409481503166144919286598053501593217363262103462284221321904929775689312274921211962227734918209924731229494629561302982852216653644594755127249468248359766881523085551312915181053170009181371706191228852015347965182383594554670837470254597620393468857483177751258008406602453560299595869501046988192536164046039567428772192905324608098332962974779916058279822930174085550842622067226490714270084451155067279598582425381419779774738722611701499987179456806052804878458849507496094820421017161036254323370092614762456915449959120481230910132489035799659776556572167143192103450618362876181960145472392845471013867020890986040561355884485228780231752565480297866976468881348752815189939543091067745639824575173683320994790418292121328856298734786982129765651512013509023321259906398323141261174978503482469090273161197677942157605024453910724184471963972162333715695399297979591723637787531054646823421031977116072929921128649835002029429792203830148772710505290484157264117267196063315082960451245964432143071588928338898879381839961814098622293941699117385236007559974024490817176615132502198489549855696205617848460526414430448262790257192421784450392843345740373568325739144025692522307807200397125577801477120116393716136112764483761896385470570250143296387492550969292661801303631063872233313600396850327760013378555184651188284731397143853337666381852182213559778151083870151060573827084820722686743105118606434215145757146604245282008404908235849369049381145136659131897709592531904180599903763096181571826120381657889821007255063556449933999938214063237009888229006957453006821276836511686859710854461232659007665502838780421398649638638267498377803980028534422001246528622938136893747896839570662321535933984958605674875758231103148684632891173305312463051540140288607149481321597797914245471277519246045277860342329963766975668974323451766558497809471704612698088548723154373128750343515073595397649386368859814720292538248524718397886310560946943614364829726402042894768025366419074262140220740301495195133258213182329079717435121224842316942563737352772620891485977245575685379243124217059909231468527202685257113008441022948887227093483931098071140043516588074133453483353752316860143430676527658829812487592258765288913271060266173710643497036338503298859118360827660928724682707413978260909028017788289939798783328109117993867038831443904935120440722569340822474020520921118754273064679344046382701723146217301846190575928760814055699977258588883459032075955205815775220584616406866645558769459130051878783396969526321578964413044286133287218416185146713766970588625955809554472295712069544917612341316972460544689270240107844032996558565867659977942996767920186001236322863454429484580461164942998474043015536047756586201815068918591554456908544251028954935922370849083857191123672140340270442167030409500889082393142578144712234812834111664239862115509228886365545555916778045426698154784034239081959156354530092181751761758243670673812982879245519029668614431067044330642077174305950383867163804555077323989085572448672579889660604242870159915431699795103467197028079845921379147551799806656325105646659249105409936356130600231886553629570115113815163612191817131972244510856243463657251672438413711433327730109529317130233240461069055969919476414681954097587496910725713909226381907397208626057095047024227955144684475326070984562343964395944616099410775111662805808084618027720433183675740709343095251377962494548271589748060669879908972040954437588499460541257756554316058176946810745001748855846986549993973630312307672927660852031057876194106435708230073872589484352510814032564211339644580159358300439320481543600555496655614186478058657351479533652229424134071392979893354023322039531628076996852476899956687444878877762686646854864690360764849968374048695385182468825517315578271900799046463102660327023163923718459585776508436498322232674541273718911657264924375982123084150804174565861582924554547184938497875778333040831583894242552127510995921071734543769702765911497697056618419399238277927529201774258485934638108418827684301989165454994859072478463728670545315396655951422607757691077580601827979126099459520492213492381198713907985971441908896045849010204441272901767786347399558619857239797548398292827145718292199744931371996274159775773141279937855814955623907088502262863254078403313334033135387222066234756069760669100519063998697633299630322177241149753587403791153018266428226002778121813518414518981998590998930124355111508240783058170975734756204231091777773991003859496207744103319147697853272415207070155845756874968593140487584245794354433115087020402795038763670581476357335710429834442605453611840907659842147843620599747275087084223820002434861556068085455812267563426297471935674004174604386304829842254578026352354673548355284065142014783694855401574201950219474871579333093108525853930997050335696971803123526494491608639673366793786116807676926092737285916181980115368107094230048983834519700996820761694630484153911661268143335559942986895875357952480939199684658874299237207937437399969350072944421555495884335958542908046970811680935806414723259592562443616655636531517844514145428496696216327869987223911615334043044870242442639888457244463276522335653661944150901058292919213873826806667608282961600779397091345047380734639827198580379746785069892367250607172468741657831738336606046254141163552416447103244495936223223255470610622942084458751547151199454622229415096067467231899780300602161088904811410182613592728922440051859985790115649333040807731167629779304459649511547851567567184386853624124553077922779376935560338243902019719458432069696818927887963469973297539458141859984634029557338068623136094228710107895153872908394259164547314535238672576010586379404708466973583160633671705640715423567140794121071686003123892258188962851817504184402442164449382769762915253813041645659727061530538900336699800566300078514597215077535983934216172489104096781070094773786239343527680570183244805052699064234701539959919566937387217719329313913974419914696646837791956451302065050835914088014563246319711768483611232449274802410703958979142786550366046038561133768933255788773436945120639607567850323560655802522190871716840317891183385339345248109311327978595153172924179060744277697342881090627177928210983129680950546569606309807560823648219193590081216184590127527756249015993170789655626954568144866122796809184091650370750664263583360035601459329752905276029461029302576967134857496087421054865013819126785629278227242274383018550654965634476417667568385492849662568930239789940235733361187215781182441579107257514143520151729321498847223193662624179900011395544142580104794251999748679534203138300131344561759484758080231824718741271608231814169408242794148802405362447318330832367018011237135917774658166420876291503267741498635694122852334768513182541705899235814722540161528731743017635890703980381623001291965323874373920315796232457989130560639996481098286511995582787328550418715042144920147123177554547778137727097924633344446927075343557127737317216253836121287890154310533346007210351032534042901956645845286008803937869717379249714547330406555397530487917961392258057870802300456558887357768003568770510732390665148768780931566031518384353827983443413621623523377161297891848114374284223006472342299497106409534400593240858765686282822897379785923983396240437210060425262956691689922196777666950891306865754824930326523099344542501171727304473685776031178635099710839011777824111284234030733762400601644279244263096900948389314354366017469312792345719408309252477398843375354046991634419209494653593142309688927915070709409648435402852711707103413993754752109795407695312341381592399788716555881736659290461660881293627031603716691738550391234329284004735468636068768264483868190015444716155815888511292231281184693646605926759480051996664319798693513341652021265150685216864036142827256813000661833984163315122133086435143096214316208922459943512101484509515664638087005278926210713062209356799534280917950429037863393277177729048419780849458513697583022910386179698041960023605550583393397556569384452140212367485061319760323726924775015290889006731108257763194221939439100032079767592703206523001010630356160769908135340366970140954737466891679845788550693236463261529472648082766222423889460786570682220452671656639191723998951207112525816838988668153414864305271902796378055043427630612079424263382248195167779669835555522428358346863795663450414038777201978877295249571991554871939451081355734555291414042013324865114486962248830674094503746486277856096741116679030807107615661660289870375394593031809533988473769505666723979651107658122514561561813771820457173721226360526717696714670254496605521634033788210699637178475948386875020975896359116387532452184670312096545468978588288876043309209467057821051130555293217871629996229391174519245252785928847868078726495093456024791867667241292399761224404533839455476336113484119191855657620227353772612302101270932915516820606354310251179823564181593837332231969165827641658625390958690988092837891542876566053095400567910217879681180761448910005810426592748814455800926817435037515751753820135843389399744249802111086304586670384410625328685704311041743860528558672125988194801971990502518359546722382143406654064122728289084722229555185658179356195334018813905531255691052096251890152601727343187471581531912668093364121388937966709048767960369081112635533001497184250382136455629683205634695591590646567745458047564668242386489150627942491885801224682115869292454634282187620465755470132969869440373635688298976764779285450798968093339379753403986348029144227155777926452009952069128305468590274442543504466780436542720262137286363185812173685687200028351931966127158942456680623132515456819848489015676919468113232544459564231647748606076062291030580535464333442297453479206148282871046495661823429647924951182222167272928842993152178072558059730595127826612785814736746159078055852746525065894439996009440184111224302373997339895892695148635627197869308016330229296620909552787576568556677930879569545147318037675722190557004225205000530519844168137829610725399090169967090753381473161498928130699936143369005219602247186739634297640684907820035456194802346998253973146173941131138726709629351312244103374923410824272529701197039533658502695286776050403749497568272198716631441757105994320913786615666746668559901417145270636410990044221734651817470391368377442633098780616145130038845034059779752251624398769846659118402736769252258851803743706501576772944993889884930522160332071492491545019135047272322137044272350093720853406882473186480892649025160218979781809491467816632400689622130148006775041727497317335170092958660086413412731415269635860323394430807540512364992859271741713921768148611413823123542703896213270660265580568609080777541648066939235379356727411940806844571797881406486129354363226893756500097240975716563719580388386008820070375032377948178276693038891070477657145356288279388196232946497382907447978322113691787887837283632664448361475843769249028692216907510380084253958935404878128793411718021548972664888643627560994494154592010949333440241400421681598006448268860569396658502879660454566023286859871526565159485894849161439661224872878819005454910809508058944915958156579884530997952803562309148264511035122857684253710319922300077739159547956381629137888943681600854498587695510197357388281736607471166490474285667197687982387463623217032577757807914895398410508540520842665257718542920128901267532344061365175132266749670899157179250077973453832026951212846086402007813871547288377235873232152614103612543304347551020997626304342546508879379222346502332716030311854766488579161135481676962722620440372000657303222936961578635932119062659914922264138544523900837479791279754736929400520951132974851695190617068905183822954020902711615692057653187829427363798239789527894593533142115069504214027399640367606007208480155918537854012718702215626326605912427536993129545492592769705764605388783661961495265509818300504844578240595449094212920978240299454064316988958796766119162770079121159747143450810855327657610560639716065567956724191388304348639141384503931107317777340124599996755463515370178710079474984950083766838420405838585984588658495748398003390241934642901073722102438968364908906767918949966535144498113859928622617673855767876047413573651583913228546697541671289467458913108896895047081589950638637488776623228377907329954228988580982318181269581011568346435491932190648362930070070102945039930990555721153762459338122098099804920384997806764279915241687718025063456651211602051183145180276658812254727771911986569298698518453581901896518760828213810974973351434988507968897248399134401426365694650587750611545651902118787796499003136952225380508975316068982429786656201329453940628282698487561928599061096712401896592775269223109364056855642271457829664752428126189244104237975547686717338609538499052591086692696499381896305495237910275427954908942220292507723781953839169700277821714265095853687668392205270079523770055435224792423433635982390474635656414753452875472516040185584846227429874751904044471760636311125283728076940583828080887966160425012927146327279004796186562545926353482098167648831164992540293114821365971571983901891457959196769993979221573617446539950998728008787824062644584119863214388707668050067430945013838545540044365077184707600789300023438112654969577679552720789695214775024157071807052532487972950184903392171212212894937840419869939495939278940534891901821535166978083898882018722943478986435200707962300684110412121945719738254583729630724740773742732162610570882849693564574070700977607643556621543538783279290708181947403938163732758441590588427930795402068244210364052777276346762726039706599001107051905824771609134070774105755234553762568946190175168341021894037254550011824550228399601237818954955041179989100446987497055684091161683474820857796347095937089090204050523406012365540395535612152588007482812102095068117539151436885179824556759081762120853396584211468340778091745241421291461937899033517177166857908828626467752154924861901591860993270289480197919910830063145863018728377314110205290010899214269832029676646985738973418092576277404456458363933580265523534518495203287775513825855164521045620237305906463562214570231412346821290281229393137988182207483668386871568291663380397612714203610216042131386828812220112297817341406291862425768966854188946091463992904469904359274491778618880234049144429026947312831304919877653334015123250602202578254634852448953032400885912251455977295617992950690665387187779721430535125296408481355677963899303505785337138037885698267004469550181369776556399186831265768843806176579320308439734925899370898682518990137746311995912974876352011141360546414672418165012600589165221124566508591100647552403704720167723710152266944082877295491236438123431682213118849538761971127437128658985431236999436794295224223099581530566803944522698608242118608019928270929823148428065043778042255343873371707594565581880347644018693063055757841727336189568497510523326086610681222215073673840796520956998429642115342631180892293372557462809897926864196359067179184815829547283944450047008785077742122525899579633951500781527880718031206860084327502279197767792230595560809954518214100699798713896500621363296568045256410420000964235682326253141508739752478401964476453515976899950394063902074572280615101353915161696180281004403449921690088622260783360632889088207547248345149721121334239257793804281264491424440168960838053363091488801386780988072136058907908402114458804235596370581021318611518538608882988173417282637656453948933994288752223991135571628090630401451046186507290386175954888997895141099759384396651910109859131181450323444029411450506887994405344003362645140403893855721087485365105383803557426571971508220220386679991955812507008886659626931415954375560131792471567141630249070369522084545415377276871983739000882828011588652557362490321630377059966726285221644998917267977479774284586012707405148338060584087454098033855310268795943157376737436998742167415982673048675154323301537400321367646920392287007043008856857060480109625215613887903084571354611462417416766498997448237827232202188692529541637700360740659470920308977424990906674631531106444762345030516452466342632970968506425748543543746883064932405788147711900880514603973162993358923270409937871528325686831298740959449551361696792256408702483089737792020239073622046147251043167880513348803708351373732221411926630449343292284536490289820109253016030473800099646564719947953833100673912103226075510151394203337623256662829296956777071507995735451082719080450425209573480605479904689855676961641394647289861277520589478790463252712700707461680506325043461501729852840288649266589308659511429623342646664166364810805030313422328933622658915981625825371192989494206353186467011922756626392781841823842763874082328945373053121529161132640645773952289950577752403379870588217768348748338096818079458185617909221968566295769997604685318045540730450001641828142274355264719749342647965737160673363573328818768037689512121725264248784040084905086071033913071750766331142305238324145357728453897682251582533398758137600284458081663529123986780324235963719645568494112170926893005355301497000060071993231856080500292473850023535920766377686610815781672621497607816573146072222351262645456048217083121713508406137302601204639666458043489920116789766849663818585559445308663033018979286012984859939931021325134863491042013675024968132346432189900265117478737335233286816586985558015442208909740560236853027285264506757042272182089996333215815223097185746066181908093875452525695337318538990004036379092207635319810871339847401069508484824278211685489031009895738935426382872505492149832610768465088800446033647980133797240021283403165238757596286739925347913599364973683073313432369801639636109877732096232630160064736941829857917161033371783593720960105355748633561681663966152986252503661181362046640709055575367022587237495837417582056082956066758313215474425745888528912560710106387043935384806561804902058640916154308800532949338387131699657846335318712812736232758513147651795054850841796103693276765631361787771272545731005143559187285637999719859976378852865118856998851816905296274413285640757020038772506353664698016087578662638384492763325991729039258578837708415783253350615224167489585491788072168151819867491284129189073870750246803837249013715867429626148389923096697275640415178446525257840681164471346245546822017477044116079485202187036099382161199005956311945678010736371247737715157512342446484399096196813832303155428796784710127241475748262160337002582541197517608983452518433826218469061292851998017782473449112077833615205332145761656236572681619627104838028756701506309799607843041289394475423906318827137913891671329322626743828079278910485835313434650940333413336288273065456216307150616658076908151381765230484861306157514131675757961661070351943481710584153543474353188513435439324997883127893898943399964686616749832560557701911369531363872606439130771156624699363250494620875526940295196668484545927757845030550497490403204334640531945186010041560525559488500691634683717616092720967384724142975736984324711379284647339473555665986298169265721726790164213310907088156160875914030090783017360930974731075954204940452914630582356270168975324055101645654537487325348987935015378236302138611775501258228716617612745573824605530547805877680095499488270982870380115672330046355095194842257016242463283776818586264003679583878560190118496860769218375386006024335172410813497923897797884276361599162412665925848031871261182653053894613048728541644717029033973352459659665885934100770728623015335912552188349394044445590311673206116976348587797425743236155319111873519489123741699746735507011912126273495506205964487703717446781101486499896306840768870781871733162122772384096781317996188610201812524123778053691382613192597188861767343534994648052948738662531820171830834324252989339815851783234074773245083257574971570812236510536600630723236967749177174101256551574636561658038127935484062774752154173003512604317350790654018222671357277912905869981211901729847356263927670338557349455059988562888401599604441482714414225796681519456425433029366746939331889331620252067795170468680734071462307798241844778498064828908063144886018274322841071721883653620272680972633773766234686250484002211192958023759669142540827333427442767287498518456523666268947180747840482169413894969530284215116211718560711402657599201863587814042521535739357154175687326087849544313426238315979886097163926952587783710155414755556462327463727722897131596964788821744556832487918985714676693030746737047563570788645434759149132617500182945893836985281949116335150614618922202064145137778207911105993069953803111579351604338911408010079093736879300913434194971591330779627520000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
77000! 897568282578382517986636716181009190132447569961329733396155490334882026538534379387223929524540044759653663579953829254719205982996566560925631486712679601276084125225753971445306658791303008169148334112710843896417047250991321541256181225518756583493608272008456793747393740587610383888543394401545906701142512004996885148079498083848804876248833640438989406263630504478268289655528564175930418076789081098233825837188883767312359308433242111785624240411105996189763824612400853043087942466557993949238896530352695649164389764674227263437084810685413110715349723839855483495118874351990008113133486903544042624355390474535467965203164834585290373401206717007625083753906264837971529631355195256297516449764616129685520276207096871935938835012531744441377377514986119518086037955646914230437522438251883127869034023810027400479235881486534796113266376803836212411256664838845530238142757308929820074047062029779720110490773199179394963563988746802451408234786364805523617825496283749325991797267961786345829482572379523376593077599819471877054503759510462666790359863518651405767204622197588497475782838018415593062528991357783549953999120144823292620929114723563294804692607427629566190014423233848222345680973725023547532686113308934801607419528863657724599396019307634203492858850228549948627800130700519831257519459623116452101400270928439336439161966248197370324775998610243304761299220910009077844175909103283563510954947725369389600763190343769780471465964659681082098840467959775127400825890225884876329328585650596905970560084788578608564498540007293968121595709593678781401336236614014571990927237494598078449614644876413400650912367838425251453254742509875871152403859402753349588764394778869651471405876965968867690153168353501626103949065725934610267674116273516669503319661543913894867535982761474638421032147862086772486667766845344254837790762019925702062215424772458405790429338954317347990330948159989537094850805355365585091048307726180170184197252159397631708616212198382562961116770877964229644953345425564030002028791940274989455398063697180048812316664915582883182599938649472099537544143339052737487572282220513133745741267968906027503708599091439014376290461682134729058302525862218138144650741174890733478921397252412123409128766080324057348243319071654153728311570655856783852522111762442996218432966034366595294558417517567272977566887563567903368845748735813100549452302838477985452366434485574594693150688598478606096347243181919600568095707610244311297133553007966268492990297469143285105060846225201662262739865656263380694815750248088811498408709894027478607627486919337045311759983602773345922753464001703379375471651229943177848667192944144836218246243551383768179574594990895742996043333453983822929600557966136684302360461531742000714813795803899906374849607377214986077923716325410605472782588367271450909813513216838764105107741649363622849447574563776277053076914254036830564707465273249691324028906085414407394664317969048173874821012904364501956475660332076222588217095319537717252700409333835803612894360772329654473133945523225281640148623392280355298743243835492501890274346644704278212299131449508719202820887891874600335850118065119009750579969914463469182267616675026230432256827722198845859567873920340327164376540600409787980689435248336952740795905851850286161791158458243670473784558441745626695188692048479347146611390272316776725339025712390249903783398481933992181376720287688137324593385262565604316809186000041914532268295385651140117446407729607653807687483078057475533722646711418590441558901674241085511182345995570110262011697564974163458542544142190245396488981414765124059382746187239614770683544716496552338025447405629775521218401494538214390926250822873656953957311820733876427158472419756872855278778966754294465833340507422779491151640936763607116480707237621266731715492669939308053680453108198159107302654503116491115830013136175543874461271596929602037288740106224460587848996155480246146169763871325572294878007875562056844801015579751816892323152871336456546087844032470350315206556055777570736867228528356726426065188805348898753224197782365832892682025473861959430059910371556574508887517202945964099937456805405925786168694938154453605589482784229753749863730074230042703457262434625039465578529140698813525637441145212945459428270891557281552213294195202011275366396706822895266880171682095836565918007829633050064840244296143490318296786313271332327437877834502078157611401182634754565373700585264269879261111301145709895539476041124409404217812266786766992953181022035458396615053390639299194000765484679886370827691394038169172868337664491518044507794715741857472364581470857622328515902537700076785566471148367003690827063999469923079849512816493886761478403025263718893708328878726109046450954637723358209262205822872922130174970956800629752791183504482268019516517433205175225225659278175571618002443755794731947113875129220948402392081235413681728288581705430947992798957433595544685810216533687989855061605868086067031259217759159238679810010789289709632331249770861354159852978019937850869944117107422194336442107698228782949035482884134730977527247366796746975033432716936593418151062419083561175371297140215690492074680721169264762535574490144571577207579616919010256047007616199092156922788426807584272762029221757897112369263682689509891828864945922581719428416842666875473303170563670145030168214575528063468135568482903345600423150325129360130194393395073069460591091087976971791228935290920872154983259223960341688511843252353117581315756264571181297228949630139864325338701711246680625572579940310383747873901102476120034568611057236584213298449674303949263967781364335249514838358660113839330664728995557820156479237989420549432964454083704057962683094323133822218705000620974471975006107312881414934671457257803666660634338360821177418129812777334835553174757740453417976850301367683726748363852350534624444622467415708590681193956345809282646371088711162933598702902657216783796576812114811989009516405702701189086149962183685393454279857590446814566017271868247449022394446085642524679715595950758285864020719314622267263926474399800232173235585068814487640358271099207911840168645839237454843295065698818575145192217483861662102498974495740170177515411202756990909605072505765813950646975645222210370628191194336900872856738633126561658958196244368855336861029011343855905336689294115309844591038781626950202921148856402523156293209973775993578860959634357213046843379018556875108245550802148961842604580583305766640074581100888057010096097939197695821712558241367520214079870753068275028495396934241107546892467848950902461824770742581930214148088707949526861163724940199450741710468701501000167391759756506344167313240919659987368143894348796233573564599914795856150283525773592302212455635515294295558428178094800412794181060735015138534233075355062203377765314418772010366688799960975087517785044179617018907812459066465390029278104051978668610500532971486161623161256441854920316837312715030439876989178384067644618867568081457727307537508226054160840870273193529968593495479539718018130219581197262838884406078098252165273349484061525080951469998988464956958846908256247350122772395362073889794648843867423796504519509265981146877549355786317302233424257567549811766999399436900869889659936719675562102537992115457742232032137782160486046308341721697836766335592823935550590904306308300018071635175822433714974312249644801229669775077954634336367360278607223874663505953218878995948006243429403263798059571370897403496705872609465038404784780318690597727673380049924962387584817087041610372790702238786439712791356079579364209418629627868137039764366763672606652486143142622446585293515310547983810637703384859895191577815623707530450654857123296300511118914726911025944579121674955096989717379875164186716199399637718695054194052839907636844961584874130851335475308211844300386990384079095137568299806329375450327884503614484558695490855422285523059470852423040598155327015669808782709705567484340006860392761128984299092150246290855029720331296868348043353616984493924051656381462304914932676213997090171925896265550687699711156030825004111964772905456665511176761240969111303014864608006626808851331729587910399083958356700453243414304396925727614165007235166858574019162064627386536652123418646306414503162945204047231322202803609352184537222877386993610403620314719186088268921021822000407391211012803483658395359057370141573531343308904401574306795255121277663759273604403642664374406663435821115933089726866858991571628757919078118414015150173033232283717324163904129705140037988629252258141574869629792183098856138727037521672007725022824631193819354344119591607677404692123404315332814034197748812989012010619286145620156527238560909587278691461547236475436733180683565607946121789434496869462254282326170662005025179924591012322972220190635437365269350135752728324588159860034203876497777296430042069310611175773658268252594470391367779069596732441925309927403242278656779505348809924231091345641261356745542670248142223362845168499973207087727491616415415981417780605337312673544279716696080313543803815175207191635485120667922876873046505894218839749420762400099312301436034821177538694375076691211632265078872832724120743482134946130350415096250863209775796296352822596480127279023331388430057343125936443615800989326802994255405081822003107222269092183049075447862051396442362086807927173233221945033976098528347035242721090558215402997275318554620695751343910326111586214020925788343456743420884366907368880695142280044445640149218225065023919504831734827723722391655008577899921428176568185590528704135464937943823786891855806526944376962540821932205353600024410159201646507663185929878732359929315187738179612400641847626999290937792523988689950625994177856353254535139079979786400326501580107141668747014756524530845123104847650981881483403756882571534035853704487235264053534159624723481522148635591178002250357952971241529506182348803651670456015309194395025732152692956641299743829879266007765604870107370823886877334268977784581892135518340292569592870808562623085481661208881782190815576976341644828446837321824184708932802497962333980378945506469796975753703375519944001095947205021034256055528889065502295258297759227219454905612906791028049659672220003434852273675574040665957333254314160338422378714573516917137009990052602262724545149810112292813488974129931010112755672810309286059146683568870883650983793852606455532006217530557781261084523883467633061267652664659822543829344928719466461210362620558725517765729324564857963318018664440295028106436163466563501070651216062230195369103308938574836465742114792047709893164047501519243536459468051961275120606603719083428366130854862949074634243174574084548091205527348587910856524663273564104417388606473173009525203741200005488399814675750577097536147307140973119484361231689444167510499981239715245000279310693165884766906743497739342562236475939384091948737144600814517855711466261007142417278356395592960873126322485010238968769609864679050861381990859479589307028376165565677881334482628355246741569949744645423894913127953647831510454284616959318472740611262628582325741919626310551797858331029351996151426026766947388400014448147308306163472153995423556301644431110039828303336129000203782288878885749264334405123794035147698057751563215809679956090225135381178135877350241974834477527799569171325330765621611345944243979108776242000199740680548162866506922095777296896609188371762926711790712477759023842926319568728647720730030652156254592803562345774105876009191467957945286644503290435251289693610914454544599995160134431561090885559752956336350905728503711389805222585768175199699773514716074095475804618767828008834921828312755130424888343534347978755082927150156676040879998204375116383948160446913206023769201703050760026540370593861205479231795540514379645241444789414277943792678260127045272328793981319817426763725421121861359966340624755620841514564696421075473114725215926583584229259378240702705938251743885238757855119406597442187164161575088493252094328998994281067325656289062069180859708782429312089605071795545484361070575083637255658725327153118843206998600936468303111498862792656647319521032372766983405735149648602183051752904033006009250730869003047614435319548895634069504378608358667912291844710263581464280967074858977761342096306042327900633703471145364568920176060139074630628705063908036040840618637187675877623018387534289589824956851833995769720971405226891607560705817921621376327876377615255709495465997865169247991780936704618881622961781003553029349173384715115969665168033470409061578137828407669070171808180122930126134145969648935413915646923964301412060426127178275434433908656401897908008247998299224048799180716550349535058760602440018846760677895219412187453735837617611697818811149377535862554548794249100603703849917411194745575693849089032429528409672373697203284135229615965361332317889411519952207421497363785533150658740172056252118598428182062038974949296604373354965527752646455601183310223423832541264308131698596781293719018286494845330401331689659593671415055365012889514208255664134415926033693606999592962475641256938686875414149828532040683921814425223080075331139053588371065461224958501730282767354584474018257526196465650583492836457955196817028263883333801789832864460139888296393509284651907185463918183929145079732919127492938114972478344702158137633450212396378915127640569356476098462782030459096575434157619973869316627616059079500193622981036147425706508348469518536024407768073362137537472374928642100752643064203674362545841027691987301883562562945575387053992348967659526126579559050283463376982761362239486220299919619828357533765850922969948522274207674508876734566875228201849112596956541108934572386318844475947855612973895338186236155423699556979795605092260034591246012473552113149043466166496311075515490302230526833954071483349697683417215589407039289583388659090977230776043653726179743730301487155604963112459633790981189191852533529333678216282173082436857939065423999753773475830904870607116187190261954830391598489507589725495873464266418206896531147399379658335171185070676361879752281721123766091158431933687766390180666307271346932961474078027094207576964286277150330067712113975857648920740586893533048046653412958552507936558077970339887294219944962843036992374176303242712366953888380840147483223649196171508118727923114996173709283178850334392329911330688938649606594400474755643645780523675208860877310657467925006362262421169072702398043482100303889966980619228671473244753342755463280415579363621088788398326318932559124214316136858910799443675476099703706110817039794478491665401261054945454914035364742409598441953656419946876266609457134923537919458325844881069114727321576468200221591433501823533442970204361379392615995433673106221401870846030102547660061989495846751720157932463097000286797848098624174568316649650963887138051828965118471050880520498603785321054905853432122902077393274878447427520422325678777420332344571669518802048392061253202609207670543956857923824527679744498020164135629831974607647452634583769645380774363205571523024800540385488562840480837917597167221712121980607041769499632860288406237242168870391548493161625678779020458996108438430335390852608739532112265279923022803685675011554143222726342314940007128269583947894238652032924734111602673024338926557378431045139917322586074990798498559885509926148622836145972926970300549519367844263420302107720420418110305108594269122874406073759250329024850024754360007124782698242387354120479383567453116058077255442741909089612016314689683814602048027868026281934000661112768666170758625184503744452443532012387160850873286401590247314145604029183768334812825742217797373626441300933149253712852207116984484862380754160480046530987253273034837568502912071053107382493778031634087480082845387038138844418588014882938363374988087015778458665650571439990646206580078974233119397561545100168280181736936991922057393044339361100961393773525615245461275503281101894049148777002915610173527005060612818190365241378757143707829783198755226576102305751754956809623441315192428438014201136151669778023153087742763350982262360979654918341131700815634346886796483604643329617879968945515825637772970389244098160161714351862802284859016507749671776540507171450033853726252944140640681310425085738562019191328126172946160620635057568467872133000385598087344045542092466424616903676527558465096193878037683409973664117857344519099368763217527845684430479376923699300540046367315540361436564138224992151849344295239985000245278754961154271616751742621346687854527150795769588355567308951284596669494440174330810750716459352056344888555498157135652224959869469444906667906933985220443264956505915796088369483780274261659213527924165380372443866228370658406879159311009362444122571295357767703157731634765770407868399035489591907307360403209065436258268686732912587032929194273026345331664573411509089708373684113815055115214034435154563355088244087569146296248366806878339747393734614083655016435679587327805121245592502667727053876377341087627024665319164865444646890301811366138163861383524650377397550647829396808106493042493538296024925064466350613957851212606042807768431127997627199831799691933082640440841442867297566288080326992564773826604083965702782046697549141749967987014941036480522397183102389014967030452200676444771089052906811085513455575137556994340575235497090244128601246532895541437814998745783559985628861202646547025590880371830209209772976147762643222937262203231700691530531617697209610409192061722768240992181238220701037688606343742194964617857864545528245232573787229780281673977229464854496795887171818477509910869220677734675573849856981921948674726718346147527293040343265000141933313897370185969688707800391318861118547773118248810851103521903527408645971861418187350388186381764052924261212349322063730710440805397212238314199523139428503534547633116821649174501509058190167452695768476364836877435413729334556709847442137625847391101792051755439039833826606269220346640585389163150589404595398572136865855207868266145775234087871307226585729034548557945331632760941350303196596420408517737289551436663098898908627676783614653105334795930798160539618617290278027345771476817849248866026171551726980508250411857547626771165416850284330334050747535078486770546649964739092991223662639836646090359933563010153514759058796792245115712046632937320243218244237354244622770587133579302545639944781340620184728338230437812729533790742329433581043068793015077672736416290922316557335383503240252023660531202439059418853619119454251617537078711752880767554755682134378049659368642806924205881683560408239161268711263835217238379594971772804255735525330373699450157269699351876676575210181464332647341087565506737643939606020491754878854048288302096230055625807546130971696673596545540928378960263158598587060305360107960777021956281211757513548085957340956654534606642565084175451472426450453692333191147111934658606062597744696113908931555412111815845995367851142255779607231662386637850378484949739980333277494427625994823552260939418644140519312710568526006171685583869619916613999928729483468988065456298319506063317528250025307043744646239107210591856347419888424081400315959593281399927393266018792827689217218791695469163970239807404981264554112731726692693188486529583928454413495276566553561002755995535555339140229896763354546611605646718921954056164532150462515592848132557501005520229687039937868462443820445362453796457926059573929685982076925378108100904660484476360182410168256451672998496415427745938180786820994489023714017719360480584316665697230758224169929108211273456400287716816300616372810181629896608330171870108675011170377183937118480398264418547765111478929825176154686897910504657716617636774819146301951235518118288211081249574824654757323377250896033432235622867778617215026941070000186359715307585977817825367973591023278887559492747644862530418389564780811861771385438632294577659751854571166004367626493445649648926588771763235949561291394102845472516797732048988669150255537597173545396939755492232608425162425424226538413900844776458260538448150965729042563249052980116529712246025894449429151961290733801289768670109342153607528799986579731506948468669858384749336878788895899883662456591987392021868324858628962023774605020176780285811038767334750123935993692240576160247141069959087248124317007109187387128206667258701060909736271534915846818902581883234409608355845132098118493878173853923429908608024892560665923924538524915829942217278937554049543512916339610553921736887657285552508685271404454789648989138227130423445503982162713751939072592125339173045521769675665721728319442779564411251673022699456113767592401473923594854551136657969901523727371435446395846216119073886604876540112443565838362526425556572142224637361281665086003193651842853591953181589192137609523363959591727723758315491626310832332632908657502512946205756262440454031372800052379234834042145937835651098465119983364441097931507553442759317600962821332834919560114938581198346042086287211206420377169872743066814851050340382813506341633212920362995628579448375317198163075363189288002432823130038184378770588932920115251863708944112490416337674049579535832108107251225097128110013820069285950336953485635425762178467531319872874058827679752729911855263137223958215947488228822416170711890937295929845813111695942488954511801192546309042249744649881736352743505178505294200883406716837709856587289776147769461309722071343942605657649627814561445852471371660001918597810791680374411816644901261590264364900877529634041728651482071586765139533550202557734182213043715475489026647397304337949350109389701234079102904187730656094279945264668536768367539297289916947083293188698966439367388168108057654792330553565911164867416486798658580479761941279599740206346079483309484026382939024756025156032779878299941892474507175318881529581557573052503999598324631633882585178158754107387968402756773205234931726143111406773986521839724308832584435358739723676060171951751136823605012682069742259299642426029007282764188600359795399332813189757901833677824741087592769495638776696027343934573346847402849351882307666147742989666138430863326289117942654523749672816077399341236998275269532062987425223021410026661835027975245328411726680068973760281542057908888834691968433283991299305905474105165826594624609255376738645031972447067151548699320747692667791356111163210094623817813775031017262277006961149185806518210740171491329625191159219603703933623626083940341327654307405802008535845049372308939100545340319076578814341891865829790166061980230914471203783130608843538315743160559111954683901090797949288626268912123549278114870853912784349582666163669234411058248605338421880901417823274262536852834492752179759002046890740307421607735434493924604732151349155458679124990585345310501232650821058756420327954671931381605459589608891267994725051771030769490481227673691340855497795387502423372854033806862518946752042203441239395010383443029385426749291939580620340501993819879915959611077702739566362320082043352851551899318730750759590755780545573590668911392383137523461576411387780576512386967653917484559495878659289105987682864033463161763025997443714907520547072585636904953640366399373537294943453035943906170902517543743915581834155700539380334714032808157539170941234576250025876687645662587947673259763890870801021717264209851552810326148969464473865738115909484527379040980335996823557102648257000764263369373716460532911382432468765481734622164184657153080164610421313250799193288221366492833614156584184078537887681764430268032510595366508033898235539031807937412275886858010715395086866506865820820652284842857278474713555740961543257529360693108966272479006533688083536901282792572853865654998209377938529222921343483480626875454590528863506171735944793123311513884328958135652113865854648262886000195316367834855865425703029279612696938077659006160071782435895779204783904258954921962521803590962602482845648665641264074619689918823392517037789057715104527426466145976620194814538078573720539619736893727286874209610859157200675257242755809406707631554225492651576710597013872124459524801953381931237232635579265770320471221658846380073050916220000427319165890957893815040869484506248801817459566867872392316506949159350203114873235171458169343085851571215541946395601741072899465468959859199296714155345846748773235401675153942723789622894765200508921331239157357565856988128761748321816061017305475409106686223031398331462019116202217077778658012514077271431130368491702537579362000112557501664264406583325874193720550722885964364140585519222233068728380519730587361653368441236064966904586654535561160791244971287565781873629393613965112153816616584489410058113030881463969478506495661390315759531848988850477119484886711119542879862263978199753733738171617579312269824943762843830813950201728480563869205373333585040030933256136623585621399522895140949062605585525657884542479645402752161365022996268157582433000213053700847098147611056174530696831249403908453671669976813937241763254122975178420442702149923927155913866723209721784577129660391049306332096396620846501414561732987520397952257374474898639669400566219990810344513693803948370504512438589852977623101171463012909060153084181907456082881256189096130551014214622562345008842658926970509219568146290620276711811219815323076822717841694298736186828293313092323964369950910762026780517934217495099468688348591525253235882102672353956339470348348592300771523699509404792840205701290906343760748765341677576124040884473460456822187497442190788226238655567356452462655495744982329233048336768126201568832003164871365791041667812619440270756676972652644679758273126358294549342242001484517641927350319269074261903493190781301931540574549958816862270384376891326652753206764149938480132739063376469907379461464904970296673731973593806429471726304194590344513823830924134457985475750835655440888184106961524780028016187271987740024810900576944031788115898904446832888616382818056270745060941387408756770110770839585433819910183040977553803996006480057987363123196819675369636766670833974354985564378544429841876530634116424021113458417780153023737518445351734280519802604168199132252165239776609768539190023559103937280025501268623184393178784746189574457068206213561951884091071877480894214599705092483561067866679469610007690666576469531618067765832073924557473900837723381012849122477631338369947294870843859448692370742791393283124184572953665020743956682344419074810087356380106120643533762186851453174201487178433039557867228772353113762077748492419231909736822366844025049167207256468095548397696141867941259482794045411317457071956237874131503121334427003038866807614066560033677600679045329629001412619795066009226891602495438389771343542759811133496141996007946712403955324746396750696147245504017548529481903491767008326046471580068538059288265806394890136887801395752366763041752103403029344816129758368265087112762093621814561073484180998039100156207915164462196093063041584132876872486809893929815773615249515007639394660097834297350939371425004183298378746975403504991953459868244986113384544328352028282086194345612145823038865756320798609430631355690783406467610597826391866848692079787878319777419498521428504290131394029366210719263644345383757942059424887582489217933425615053047730794705292010237242700751839297235203299170187088760700492665462143022043992221824956785435561906400015205800292386127593607144767447508713141605306510931674611567431100167197514221325751656686792096702630014156437750042021147927560795197396170212349371836910490061850111534250034538954248473963102139479062741238855251166124218629986944498006337933922001809849422915773858408252434331563838762883035287307292169434202839131180018185782484399746652728578197550396916732648699362314013947454239203005164190568333003300321867394068385524552733534474817442190096659854193636671261638093824662528285679182462984276647584270083803792995883952275329415268737799439918421966598011164271815301829483931082543860919328876262754666539282937266564634776669142300224467214750799567087013601150200675552385459245274740386560052577633118324659225281826832005741245135288608858449888512011564882240981508605817436141193898033892063321761997769690522886233124843060134066254778155152968153852388086034510502543791883835677311224764237239063858497919821509003625650641876914509443525050289332163538922879944710216628662833234690921905480197544086503798394075706295967929199405113383109754019491163863688799394757817995739521335261728196222872414044726791601711571962009374771643809530959845500364649443957909461283331688547975492005185737979285723698485108401963405586199947241545244612568963293424339481737529333563154975476704970250131110324389410146432117318200260163119842364514175410888110161545584359791977527718880564169124149331844063998685651897177982820880969667823768491670110766826865728978179253802505582819373258031623587360461177174400529852567167176545701767480976274712209939155492993419493668061892622985657080968403975548540253204710035054458963488409154711037738710899568009872007616678971788672083866182363724581558955715583950251572335438644000636672545153960847170555334463258838635108136102835544492460116397877587166048597025155638050136571767551502993656815939288059194518550778832481449527985222919291567756397916582225765123994033647061503874553867183246242746843596793549365611203537168389411313318252676345338681965550120989516217715744110020664878426422412381778314088998572379518494946559544683779713308956883872716350899000876045178688451051466772872914879865786690072466978306463429226576130117307722114888453673082590022064102336217848739109851226368679286695926753769876685658108555222581450111983717016480482028242699712269713804252752693997938971221851776678622978717885017125604960646702436129617614888129861319262474150291698295211325088183623640034870016851633404488515466035301837912961442423213738743007134060832849181197838790245541101302699283545680020521013950271197872504540706091609705821812868231578009975256766963547667023902279849385330393200491258301160935496111046558562743381268094494193048452114442889688726619852663054855100634408538973427647692958644344254414865735037913654722603105784795930995325583447441256093465999319483181027121692223467682843227205216398729893397512565102018360839354894381583826312039485932555369431548019851168645233860005708171825166225335998507312053277291096392269975067514920257004704115507647493693152017971115860697028469654775793184831875902967715039729440242450911937321426546281933686221725780572502911668963839889341212847721502211471440060095111517715286029765837021325594402025478039549840457369101702225345405332034436790869792830621816356047852512004237514516703437923002728296890902826412395538146895590396599328971852055827409311984329061535841159652990107386716831127934135196150735879835332670597975297797711518726786071796230131317061999988338894937678472982385756354664484909702868344633995095066713786603771264573938809367653835430280969235204943591711418004368989160070607633040148366964942474706030403640655375308981295407302433223267232894817992955283581583669225471222554195487451221885809286821753977865901715786784167535382579679650349119963512211900527834621088290938703091317688889548907346272886699980274191306752772458845776895107626075353791456180390909097866243527060624877303300227705464476693800276382650951933902422823282132851244880024580119553813647004095713049146673696710100076002576265005512777212269967753295086201495906213731136936003154545878074632960761279161054263939538761386557312823805532552470969267885654357655298179563319822458886586175638349940067144375970215900197331925415649823953297597156576110413436213599380059953793974663491834478836335259510754305654068919469090681619139607841349219988326507122752724337770478774614523123803731903625845382348280434431710010460992761768721811487937166667772910980010153867522962145680307859218775880594416993706782241197375650355919556264905577965571365783548009733835622118438511821250667070352300775622061357465678362374431568773738686436056533957327462986701196096335269168402396807720611415176070523283623982397348506870989920632102180520818116567210258497673878043936118827827544260621698038215480544485472319323122257606089327203206766811424094575980740504137543952611888639555246801325768309132229558152493824480423018782061712682563871661360243369453676856922510625185384271838098032675166236963271279373934536198474165864890178565425951314461523681853324779144483394627944614177943545950932188998283634724838093880813544244792403069071066201410178786946583944875400769356716571958475267473900753461530194313287624448485893542255219347575519548124662138827121920063230887350158785712110185003852624524027729184784897211684498997445405417317131235237031989868064540360252801826501701266261580056329875054863425722707324121267950934590402597523950214479937105760567010277148012658105410244172255849022584578138821254633875406152169382472645304014160767973305109812433975109724601316878926109939050611100646477865475335561789715009788804770038354005380628277264050296657212353136213384618202740257330604746131683901267243265664004677610590660425548083122862854171128080352617935302430853458667534455970527656660906863540120978750584309037081985581333516833036071273295792983229205563027706729276652133865935240084865984782766625578571881248953140194678811550465028366796318816547799349408838614546025870350750166781957707251630061665776854710379138232118514999755482949570172514434981093257039055361564239625887098871771088254451943644801830223491199228647130139221465788946255549403949055853752456884713498174925336643932205202831189055344398279444373618154289255674285550178749126509604954884363261292591912184475586074052036214185548216623917272274495997245841420723656660264155914991037234411490096989544701281359800825141066499227808323508947785448631722594094084046901667623096502397163877872913609910739824312607358003009666810028630618833907471418735934856840495555907316035583428303766879606694633904362645285440826894313991823868406290302717000802354337022531849747877320691079515473206541188887834484349470394784047048915417902497112946007849652365811091182397996557368957876994226919360424349201494934883823874050577567997256757595447119863710653702542250638197610966567828171469427245047712050932486922450047587451554405178865021895093046021055887083108698845730422612934787617483856970562254370412088150356892738904079540423293137498579149980672186294040826632699924181635995298168534857007850559579795594096543647246807041411858916868754119123699290557783466100789055008227919047378640292834584947205010573150067672730158955810075934996565635189999247131328669326454610529279921903685414685336439452114741763622918697317013913632340716177070090350983078138713074154810905649795508864560134617136428401783181345273169617974300107929760923238930328146833354430256923866048382419364296177924198416319023429469991002123741329453759264593689415167901332014661802805101149578701015184899292159306323707792412080258930068485528863092005576213893791804942688143040328892150660858169037277597530891414293163715498189276361471317898595786866162987893671414533304712648772003167221335349461018607115864447901042413934040902138138448287303379968483258666245250786975765708000968266566954658588969017369768740452796445767609991293297842833823110166454837388620286256077137163616052033130358778965467633712457686961963875078823760923261381590444651547651195939982867391443468922206054988149219075127647109685588886221826698344410240106067388389680296612927069997921498899925189584511757955344698954106041556901882663604743553589797265922375239513494679785740170179684417984579736587282336509390579747034659223138135461754424889510047686906805908119984244376138765784801219081964165543350344117961695775443722522104871203143787718027906871368678616612799111347247927893027960911693762772326087471029334265583788003106956479447291971283194693679325465258369356955575910075475090553445959570309524650656948429585979398955460997085490666957898155513295056918217910073585270404865532018901317317592248343529389655131481228775507361312610975014727391588555249194496483698080553279034560983724180784628378589036031132137642482824154947623740572219085732838191005637913030497474355857153943952627722728394333320945903158099062145159026809978654551574514993513843664308506984931602808791581305575512451995470088880718264087275144822064181541102998567249478233328055366654937660103319777215760689327013914295220537958219609623569722191179602256456436910273296022313660546572060935331891706879070351400689912963601601584226219982349103087122523457373072636082034070669157273307730538520353116902593718938820979710910723384495057413469994830471602441721299872772672857643309061267885161665485113394021839103805377939331957649499322367023382890899706367924672049494286676375694925458479456998689485589960784035179405220536459512212379349290503441063248245606307222931646726940462747799884016597370256501904364138610810504478949695170866124608379026623628129126159016464215669413345465540319410315204593671017710495522815535419046018848057240287868401630323592070903283099181551593159477296663296465386178910160432154503022861660339384298116792480621576393215764303042213909247440515024263345588876492215102696922478898536933339349768732020160998853526836815282010751838051484801487525068324080511887538579262631128262133979160548816856913308555946335108122868668605092288598415426300030643541639636476880275930638007200165042318983559544300183234242982171111660331855297130030675538011803709398936130739410719615585951705713014510313272044646731387955260160463928836081018947674989566921855684590484741330707739370579032310488712315398139238202845544862199705317416907191614023241399638177152053504558847862366016417930133369185944864962888398994160355577172236710519397064405903615327612686133651169826853290658420480055507765946842105711461290990551627765156771262451428729580815974374727018061673873990579259542330229049766160112555489958739003983473560251371152440620110172365340725186576689371004995265429604274276697549892908435267714181522249965227562565958508753276861742861863974504396105266045484981516330192867485172481944938194437332747912478082056161631367287453902997097419455670960444427518986543729160894045406072506277081317757408730831181585697992867763622169522342474414642935923266927514790329802468203358587701496324143797847858013338510311860308509205818118360725156099090818974302194311609313177487125723387784131226455324184555989662187718096591446842588401430741864248548277764970071075397262356644673441625674277615164438758306031751590399454624786088698032782008010774197619141088970506067268214431540757466051584406798241777247483881219146482554025576412875288420958814661281803078504226804197873237131201228901912348303064696645058635334268923835706417911082124007563560281170797210723046283101374416262105161312539224547227883493834570202685475404178226371894243363726231461436859429702674412471109784181945355320612936147734574093900723469016538552348613124465086691984245252411972081494930784035795914873506773531452844285689372370584025204506401362006312356185150994487343190818450427001259678335822139652282537480949253546295464098056905590911614256473013513154849438622472842710756029586389502435151402890536818730989386475255291045186331408666892191048446013005271262093857329348583559940712349947115954600689631110692212752763482967767999112690976296836172278722781083203223715281123280506412569294325177632831916206582733554756519360223640276224164542343202464368289605353653764472664208953316098003456519382577059858146406819433819994871774794555860216592892668214869677035171486172068740676328417927287651025579511942114313903967018796250839795802013788718167985180576030292777529233178435801283116939009390979485038208241641720800669911265010519449571219452132739085159365118639519180025591693530469582911172736586412294917685795572510030155643043612129211091765829962371252719484157509237441822051135952311659219569881322614977713601093634749824223454014131513014066414101374843233112432134515301804708165755711402719504233934513057754491269055316535616127450399710602707265631978962900474331712070389150843908728695215175148420893267859364165977719786689528531709533814255186965133073892137312693739677351736913082372997360792659588793245232603170589090704541484083405734323346988970365203410052171162280303225600203766924855128804809048057973862980649604001665215516070151451358142806739168136746077953556914367888858770885138503425795480663581626026151816662319946124026109289616378909837822842785681088754126513880596391647908493237809257004974932736408539287669014152655397241606632371141132916428753910890631755962427135355673040217188788997914378511635446269662381099669347859146896888667921520470541411289772555237796729633280777433762114379755263381666919009012754393332811816482574440428929191921127828029438009941292071408555996144347199582278720610954496066181486977799619211739816244454871384304449569613643345985944191293740127930905975523372615251946787571926026724251735816681202905282537150738130299487590702080559440680801874685798380176069970712585466911803299668047708331669743656468197156438088710505480119331600597748847806566392558196843096216217380988982544974880358865367592782548037370375798431851832079764689072817567606368436193657566491458377410233371875621031327262656560117931535618991596872287665336892339458094442656909357510184043362765066475173321813670831019587012882322863847920545732672222353044430752159067514927256286425583470527525998605752093622958835386127742084698376381794810331063118990169923590456282358931391809394971330333119148687526214168865597279869272880376127720025738496723987271687115144012898271312145657018288857829649886144169470977370832317041657802630182347587449621805274928483088726079953217063337328527231694581938094047716582086831434596308253224215043852234873871370676155065714124122438919017985411264039129155563166987070531263718687550258424863206424159349725742825925396334731375214032138179634083796255353327014672319633881016788263602758560238711264426913644706765911775711597433115954681457566427359035714961936965418921471510331587301395896044771706207760766505938718337711323112791278205029692749928843918464687500784611588942258530491126554978877891071755699968068022279387775810205982750897079064803074304083840741282845604809644255042060747640520192406440750024948845403082716338340925747421468382426502253154590155739523005253729744069219534128055198493478321757110638606719818389901413825354324345869707791383476114352209399254781294741170879430402571649097715627595615122231252319006927944755916348748403272736779012876944837239272690434008099042457342263362724633996461163066983619873553022653837637232820059072328886292394336469821863106604537964376743054675318586899205539726456535184900087988192689554059510707408175515877732222097908622036474438708459439764404915163485294927837578142524034050445985324106265707417461153537374986586248799942585887561760834769485762460722743298441913109414006630442577872615346452813876962191214352834649499120908967938730425936065114860255018037151738987516080271642615318647181547682088947189986084351426592477749677749361426926470089432698456831114802785149523619815445395016331234095793692706140269656673457972525786827972856854739211538919880272094192179138669754666436498033546417012304871941379940822851818934387807977903569124338428048136088990211056551960334326079372162747090935114744626864405157644652220979501078358769729078630500408356289047669661226865186405937744691031500735890188643303467860348827933253402555173527249223469714909339328177081988980064746130681762354770349988368889521470964860945072890888104501493775109940867589028746425957967294569813536363218295388551784998229247268338268329858992106135946107266926525066786824320736107927211585278143085821208087940148611395692912319194290011764112299879714392409851649377201584195256358541763605028666076817867179364114228820047827693539575430138603199332399806076393534612321349765166864780582264378241116355088435775321208326950741883116860820257142923453383831131317165792520766336174407798345922972378583889138933757363055095712879642604029906635585262597976085955461290453480315816436389937812602059588569843449249605705065252169304820769939175779135885349940155034440500668409963331939600037440877100103288517397682336981043472750361168947067664648380402784434651048454162401490144553254825835182111226250810775029766299698385784453584214876513821926633683281833828028178573057123453786677354986702904829741251569757675508964839646849655144817617632649527820973572742260989113527428985086588179788592657120449113547332502313878199821710607227681864107835639029945630852926353536790567387866310788380665279199308126750340176051218697621357835803028880719868182026030736984911139129753847028914129108203608691680991134661809220437859244716204355336291129789749141416523267345725842611045346659885084207226686992875478218962101914732335130888344609429891945315310203688122469380938348034154173321926011583053777942862190276699033095587498646856622723613551636422702345375612767112306343555795711568185532904366018284534393179701522066560045291776386149838396403778429717101954332503029569917168877631093657942105809354565633413628224588530861419650413552544688423879952151811192433624868278621634900190952782827610661428748420205036602555515066123529323262290530974438897438203440334998427705360043398462340146424295840184756567646493843469198842675416420778580776743942342823914674603154366495792310237165393997854320961959497025862005991117099864113802533341459544329699169268129269522776524113001696041439080598140223405915942100067909596759088651936341919429467401245663819789551957610206700338188093311860215071330696425800865231006807785424239342992134499034749439406586519749170631365228344152744281582754144552878148794590203656043678717447048741274969932060688089418962377655679683322918099461313626085798635948190197920244533208500955455770643400392740194509013648630321102755469522224131068681561555030327929352043082548417971563843730920467956884257535110689329600884273921078392593221231538935921216077010223330665886572408808287903770744551286324671223852540302214045204776598628009071985398725280507480841106768604566212934890979089306565086703667005616762728615732974198557743414985404658528440860901002866534486461528326129164706821640575135321327781046057090753638017244343244623334250327170990711957120520621984699727627844513785926891698044520105998047041691830862116977565246904304328780411544072214223405241207433125623319602685961992904870348382884085547638905473045465087887496784402822682081418260357303424254331985159046658273374356674000217627591800167125768049079604322524681435998765193824415778700314772087482545142042396898907439350939759116016470188795975026099206081106659674998246370234786794572828322351329566954238559195219987265094584698157629852247252599827810705021649784771582936737249712870435854052883087330925167323623540413219483116453595375394816280172726487970336156031381598516992125189201407979430837921163848461631729199590398135802504719941547074376482621309293081366491910716503202257799064712557698523193397739362822346372785381373737880353783535251260980182429169168970020689353363363400480315767998427709774028155620397588588280585141623499552468801236650167067431679107787962807985260235111024183625482874320319211061752667564755182134142742688967761190785506049957995079773733657723025577171898852767696845584598284755001289275328477515238736991999687503876574587157641261629806410256277201050350973189770456818598368288854994330010827640757155118965105240031555721919489773072803329067005596062539881267696406867857733632377319372396272684156991491475365583954432579934366120759090824495427786595285800880947204318408220352077329467363367026383789646740257609475850319743896358186730595224175232838949015876039037876455660744846442152347925202079743987662808466442349820190916264830354519340558932390213606930308534536205774934962228848512412899379786930957763078836987816273328654519170888254317126300118873185755608283561287734695871055437409749429989783105997737527109855145903240319133369595867530474824416583678017916126288181228031414043945302490660606249813960949694226945060648494599331927450102906804766605008432809503569031954792559675031696549570153828527795640052642285665231952506186020200227925768056626443629951863218985588689884323627115035168673498490776006050426743788276144800842615679733135300375196834467431172738945332982463252227088185385052322131577594711787519716389372804001136093155141557687972299508202367329326272878261236134619045608048899972988940937598313932131205089240991310438939059393663433398786863613249257903928890587034280167283198269098015457161894560757039363927185074741170794521966806988040227525748426470501261301612813324920418696652910747807818793482150712091913808705038666046780627709562404354876842783662300288844053792029539503279594366692932058279552952822347535179848505061535686015520710749753531362019735317891900198160390938258129732009364013074011536952493654419196655812653143940213091795566732799271581506478068428965695050879102106781398260664162824035254339440014168127348407055679383646924448371517519326251013638686239802954200837818790184113515823548925274005189716941031623837175389890267736393471627100431634858190834781556445728934705704200501344022427527812266724604530525752741897611721199445045031582484722725963457144155188137719670380458345106212325118735598678247773608288817961472228948313058088064365944540009331397279956170198688962042923764813116028929276380627117286889729619923469834976396697043951631269122640201359244621185786766745695637157686396507953361951382676171757699562380033363540230053094698492189376746553343903883016079071289293229350306834969911384602812591454058641105509816993871843388844929308606008471917029267112605689016765268836016707462154240934285313739769203539208258934745012817336846507197010170666411398041911176236719117863671397999477004575553963183496987330926807770138137301017256800837190699704315631051256785201943455756336178664549235735878856822117988678230525457366804574928508385303668123237912091359494233842022931278562774591126344517591075820566078619700064503839726526072409561046716737220835034567238002947615917105683813164768553726194755914667538658245825718517599119406196644580581105797159352342241144101780259319452947235116606019787855800005869113872874656094228030678490051684855854746572130447192063163586349032515348827208881757225265095901743191600241096435189315265661543525061022684169285035419535305564862010480006339688093029629520925695178488304152586774406300948140510953911024863096807342172458654282039940796423550860094945906861271588631351335538831664567531531102271717101574779347684365102132837940578699952632612520516800856014531116945891397279504985273492043786733796880641865252833790343625976591457719067658106060018755283549569803167068999241922923389512749108092110168450474047027449983800217637336486807236623352553499073855744686293599222031540262838625165795836076830156182788643849510405252386569294620070400758170054410170965330295261620583368613341107325747421656973236796742831470147929979377809700536370412767915217904572977138545081019078479865568681809940178183101926331483089598912804652018340151988977794356160243535472261523840372042926917185315114576922046718447860913698994483527687721433537133276853785904195858853478219182983561863170008120267257302909044753206536824888538035089887884164966675510515184219870991387207593320670121209117254200224676974099468771628343377399888230444997929410474642750757803814196134148028030355891414524977070312129004951429702900179251824016888457637686343909692622597655209791921740068577720143905449186077888103837670545642861580411013418198106184256151157087748577201184358281380380814520234405675408957545303414860584437643964322106472915835357511947904085791825980526309622777138221541702067059198618716882069984619639046935414328014295698763347413626166686874794440903489490221491890448531247519517950731742162134698546262768640854559523698975955617191415982716524188616600904845890123604785308190614783572201806978469674541554533466878844679392368403466261007818435837470708263264361732386489806140495341120544116824151772491813832083196104078258436718060557427303783836540228704226282952430559472211191394146093344160514225395759363119621985494238464637098974879428969108515184008001070621207407843551403875906897014217010163267207495090094762921905320535324745852070829396973708820428106328047670222262963632557776419847929087753350809690849465033780199771963694788102178649526972964600137119867893621974265278184666104609985230125495346797468957491749702522217998067958102513114254000015678402515597883247902014998872169816744984790858075334891466707993429954471384205320698539950477546379691048952302423394278548809804927441270013250914313419959120524206073332226574942546791854728055871167168482119358138471455366136426542995933244247276633772474540931745314549567251408950391428980787277084049231959544232840734343561528104140553781912456109853112014764972015697625223326557282917896701481306125475608677034710912769234384760750750191575390629841366580907529186644275534015431506182110382469423135542724625679180855454202312596280804741967337524034058175829190556924104966049839016852060600276879295750409743683075708575477537539702638217795336841343423132415733352368956659899953917636925885175665196592818355154689355738561698258577920419286259429442678323634177095385041312294078460285846280644547407140531802331706885816156894424017828586858653440938468078949887549975214848303622608982948905833294087345275919490504626568913499190774016623265693245659524993402711753510839575871037642447495676635217843017250922900434889409117974979465989885278717263963548082762359439592190199093055669690344122660335509225026480244527625741618733831330837351386622532123348463343817849098948278169574446896267066108997728323049145896157758258583373223093608111977866934824241252638272143939086905090021617050505935127850088867428966317436299667844401677955297333575232857352371482214247021536526762561351936444143749324240943167629134621166649174743724647151301186914128650556700490281732744697970510032916571864513039681686410525781023095471006074729613420014425901605618704521358388433952655382431727248395000492306894259735939491752068248842280031187105458995169930413465945415225134148117903879638753559716009927499300054621909880626743618606286136932765219608634300991325620895107692818458286988835783286735514930776148772287973780671845833956151076441510185182060555920726654046282141854412196200348527826832812423179490720491227091487521385821311289785788879311877819650446779604348627455067049178512592600862713214940222755800905835056971995409796500908467885531039479157727385639038062511146584973535347949431742677298502040186706784191389859950842304189614501990727157849219055585077248265554313208554236135106825702484422705181941722148942510590416134679385099825764997695005951610206879030591523255281631091611698815190508396532572319919838017370622031938245592874091049611985510271313907656712119095147341690468340901837184798183219285976358992652071862582017600665474104119957999201279060763918165997645709580842845219795327270604078015655909492860203971843732602626509394614247624695389163085565111153134039726046374347154545231093187959969142314986003604894467331774380772770424616373937100819923751405711964065409973452021249053209388112781505398323867739281029451453781604544246179604303925347938053131594340837811553399622592061544708834277009103301308276877022670736227052193922403988434867709700482591954967811926436299079660470594253380520367622485286696161546901118407597212020321272266784483558513228030766765857564321704077491443103813063059578038790689163435937115536665029568580865568226588623611786338867149345554403570829987725299275701474958258121778004400805499033250372637556563586987701603211180913044796173582232816727058296158721023333542045271826783565496222785489114365088594007034900197935007648562902432882934621875604202972944208410837412191249199838287165337879845994761655598260889811038638599235604963673894914804767789845443586047469506591382725302436520252820357554352590020903992262820733338316866840400432271601030047515548913508629025369614300605485481033969210548659148108786693487556228277216329259579867021108183799031638483937879370265167366103064791909086819758972124720889092402610673745479899487487538975051435079030930369408619489964039682388156706468448417165916778477837455587223487142540991789099086691462593336196225026310709109871304656741188167503266835176121223252031005811634987212224481616201857953226140559708524046815203927043544911233212493786234591088149177400299431657401666833191987265416077102490829859430172454525929448923138263111020973461992654784141739349257710672632622949425468207682538238774726361728030434158117664417993248296866547065068932146747587874271884795807586799911191199514123433429493048290279806396095111429211156461657783727387991221565934119892255978146779764307514820922861072333215881809101602561122224728113816935582084415423048654805921773708130357135065253972897502766051227053600495824382635927874571260557563130229700705988440993641671213866184043282408769712595405240904465028482973997700954219407851933849598968066223154716993409816867821913397827656229221418093450232294855899452352486428758868321302510451427913559290836319221346386815094237621749811595853237598606092895935899701049166203752146101204406942743414069910662334675188408229974673053978667129143273105487858803110437163744487492553803275854993410526229482189540932040819709709050789026105106155380959158871046140847530355196588463965583063498570932782345802207439030510289326881469445240291725246237370654859678209854699365171567570072133546266591534455918436242987323957049332454789896467982465263166292630655799954668405718026525438889537665966681805503293089441803118570318807067041595833809350921094409274447650991023261841326317783025883182409641889491824373715718665375593968809380992925000714812288050448401015934235073072017340973515712148162595695587287076775968502760488654768269482210702258881410180972414331661950147804554737092881892598228807425991298823379127540797833921650020429278454304818417818336765569297632546311693048893848204800152715645652485362881520078688197731059325289897914308869295574494473542472871913732416099156139789393844912505917015154619438388347184133153528687161565120865914837445505402171875031527732048710912228361993291751991550300022937104616004542097017126949996878010717420404265932557507905669819721572723576322201445646541907417968880559227571603888073263675810993119897522084273479903323636210899963263825265527699176924964856699639403299944470307658276088415559039956039145063735178102512218367974406611882168163483886863414246516442996881096999270607588298235031686340318382085707413653694848546455136073841494139839611400473925297071915197156876566754511276466062443926803380008745475800670134596841249304524132028355674713995620242094440499263667699776226445069877535189110597824670204992771776388223303206782682787436169514880746954417770887225406925850033979053110476107021538216271953519727421056176265449968705297613617190162559893163903196467068114482363936892392676163161246097461627577775114093332560307080821189421582911777440454874717334040629495458303279047699955416168208477329854954591209757625504660292346218397177035823720885204548747728833478999262997205142655375570570977916367823714347668658635964349213596560057160390550968719412613478318653826658949552629032453715525449934527174595353017113469895221634234597298923031477121803455617212386882411528284046585402809527185895367420321176714428387296890722099719576285763981952865331030112997041940853416894940621478500946736536417875866312366081365091181492606954726121579495172163747690538642748435445601904239052692328690182550946213783042159153743428749500797677537307819022857399227742371028524822739513858988341704650770036296202294551446714774378047196314947763392835121341730805645802999920901545740516759807549032259742268428109366138202720084846424967713819151952212464975081478832216863000941178253688150758343587997144463346965979021348316230112034132501850357225735816245014912052852116051894038705506578840866508721638398409333557407772546403610228629371478484203504778114099058150748124237597357299375673614198274262992277460102923298240205826733683445462635356246243873925756571495030012015162797175620647997616807864613462024507868830394521451416539731240826385764009754896466739879953392230790023290392923903822740643679081547808626520088351661479901302526463177795760607602722679270482056878285171783221168987358281835415024915922690009469230577656285781633606856328092491054877608761475578808402345398008621538498042484848495301141449748733389938910979556795017221190239085462726132829976584302427462968741387449535671539567517100278904115132847849708623576862229533446661946004804743940543312803657601033656904775195048481241168237639058839022793795663451276892140142584542919755292870385170222968925311963902809981361293457712191646224854095228665373515256029835902054752328706878669914678909697396953037340411892092450796485440811599147740670323263279055484874638721451413420179676564712989779988866086767896578948702865476460347417771882428781397640474695950863105620430328836170493849596610376242483484955186419713865020274855923987029038958325720939391249281723214741502577105356010770170064169995879236816481961232531735165460336061908741060660442199882227614721957572865980817318395974024914830265431079699027713026307100595656772261272641819991196013853780595215815883145380214924825325259860129126515659193794556292935689406202715829091413866062216099463483097344663075759848092638738489677089136706423472159693860736000984910977723274561024943055977765297189817418202813913938505444559176567161186882834405023120598620265403769882629143221927144720730484209406820932359342480687940680669306993792268846496484700069086186483585923604660343103985143020095915487769038027879117780187220778515620525568272872158302749245899877162085581242465044010845551952436529126550393809748836472113898124558288365259403151477026508242020632074281207882148914696386963284431948945670206744990286794385993207236390585327096721476419980090771422463573962922076436349941104647042486745443953557481389889491486457498495655799045256920700288783374584784487809156449349663112437920068545298268807104565713228341577655507037733891077128830079199467899234345501408028705940912794701706693547296943406872051537565966016199234007419641913343693038217352532040011767828609913229602759064195141907361552196778612193495676923183115609155170894676865001619516596235321804080516665777914824427659284061842882005238482333431970820446999492173465117651368786915918444609972393857711709345848996220516331293346840520711659881208047856085453370404663712002355693196296201181791949505964624598972846616730949919354004519583033475117095755328298016472820051085849624705896667427911407272413209907152499735536364255245918572472076786075889104089741949196048247374235539726220212754747393559273572334368860837666528791132451071800603783264583169906013430243424471461156286742533337847241077979268230598127075918980301044669233475528473954154484512054763705454501346281795946644168285540997972591652421989780226457791335732150637149619591424022078182662717813378039169792380290254026794912709874410294134198735592338237087238220150392753430311082207979980275036816535000408388081968059622102079216700212267230083802025703670867279648371297107267606881175022332441039710292073835861722652851117013428044851490513420355713312454563259862338631160445959024452630183475323608783886129774846412109655214750583261248197738890047230964256729232123557569687429788922647445221921560394724425288101408486812653621841170401154736873592426265183559752344345841180499997367043345900346353563937752538564054588269687520592346405097533592290442535515689142366021973867636005240959332588221063151886488504393974361151929335189761234212572257498384378823866528395207476036491605005681698950159417065833415944645354399944008875676609280921980930600981494369334660898667280096160801934927348692844745952408778447960252294093032550571901312563362903909264141917253442518442198157655487214108723473639745773115937131639733497871525081849317452968252614470701553581499906574247159999783018360669691238976167540658739004519503156826107083780044496546841116978213064954290804470047334844906962118263691092070190501739880953461762080914559834249206120752646525991588277843615766951773151339017085970002982507188892771262083148193136346882554906101503542629607731611732325290360800389021761695367989210286271997117210412200026435438353742340173961208841989738060551281313761399256583048530449117995976299598575653080746027018788744691836033621111156043149346758223008367886768665336046970134713743655604871607224234947070563114134993793514703926268458758352436984362531560583673301280638272631033385499874595790368716582654192039825213251898806444594806272681794006665908036716900475108156730121493050016851288907559112109933404719916791294289388329386185874801672462796913190696819049223421957519320792981514281039427452881820690425082054443057852418966911354197114159028397207947596572643855394416410883767740129531897652665171508355827213571593577214845594276181236771715114560853383741471788569133093957389751082464931844220053231836825268796262570467518577750984084832695318061456897249685227633095330757114717037296168870350946711864421407769153897889208203194536345215468425445020481383483502008450577935663707003408091987457587820639608285530344778190448439672719703344907670811064285582974459698027649942918307177043655744572828525731320175993245039073948948721424275924543284487582771615513895396353723876038623175500507769198664440770963211278153566941051012457104060742813035828849119874221417798081454219262140779961239763427977018622735109087845519196651892993437412237346292974599139704442294683723841771836603081024695205443510474309485648208746994327077453261405081628637165526233102171222584277966077008972212006645184533244650630638339971814822108932065991859657881046951169526424194310800676097650656348188400506013877784260522062682123016364114013780036721442769606495791297411473589937467110155157613364648881620071680099364298912744981125460418609856830073397603988346929900404868746899644907997349108928716435593979132888687066364153432974909106390713119698029553468778749911011170719672718323002055147490914068935320656697946262260637646415769872353060554252744119779884999475414867893518184844111070507872482259925103221671663424091068942772197092840205863801137616932782612094956105562078419362419135496075924718870295306275624818365987846275608528796136655302219751524618675657264722523890925678034067547725252641797520497581522907316102026449932958767827490658738840713151274353075270635396715449919579604227072914525213783486419697949710060940274706095162594505102315869918305937465918708191681200539463858610706791568619076206220026253936810980577904768949948134536373054005975460920184911752080029930888247600172388238889229348650791367423674596802473793427669733628087990815396357577171105881361433506274330353731832687681090129563529595078665679588170437741433292717003833373600829856608199724343215860191633166619538616665296729068933311031945823369067806418414992692846250131500332256787672384493362687741494781222823400690907064389072476465103452059729537533373812776452951196536117055333481870314127493578176010166596554172225179372426857713069476029131062437608331778795919188670208098939214043563493236410014590570164540781441579808174069089344218572354991828337695433868564595526596148201948057737607259084892317896114044386295395405048707563029552099923977922223602961707421570911119345798268543977098560949511116815260728586549790448648042272346326871984889080047395002755483915238323066940691081660565908326944992069167330950975690900608864030570284698469485565662653487017605075028803307948276021855908665495731899673789020932396509762554047778985930222633783950949693074857269436055392559719222769853275443299921492068395024060232581521652537862454365094293497898433038755475869332698000341116696227869876224271266812381228809897142585093740391737786126720607391048766524302806678335064091527502258451783716121171210423073373979654246606238054598679895272070417088340988018095652652925720795410607560688340063500112810949336224358354385058927023455446940238761316405080966872945976170798423311431478830761762756713622568097648582153953941363389334895952442111878522373819499467418706693246468788813802669718092208642626863483608446789912503152251892727047823023726334406273930083236763057448788086812885751545469665132783245132816204652942315090208025956039640766998850320024759600749385346911242445866936275845141494580014122193652009815705888089709159843925616239599155749661469712911946934291722651472268373650834344549670300614929629849950968325892153467802615723110608809106361114300513786632971358761698323495199630513481213881745759360639691550345901879968147889653631290047062012113095048949045763471678888770951598986284413741306365030556504034047133283690754847210533916973299149520779654654938584338946386708526025940209066857974623025754114876521053523620958074233755625900627383236285424929460258813749114995124361247608719828736299855250821299687005449921477175601515140647820869191407299681155640578351564603587231661230501168636697546080217919719221391458311812411540140348486859111011378813118958625350876827902012544573121058800521183755298994161539621244010536067429185863646075669412930898464127394472022381927000681811933457079152038473939013607025445651684595423747371010259524374961719375691713164122618259279608061210729380376255087850329676878171103932840379648395390985568654630872763840622243547426369471055126857945470178444952714438068638128223063891304409753951869766159593139690141356845495814891258113346968894659923117568107543206151069345713842947842570432780838052859503219630560626763663435886784845228149194221941220308270794149983651236258659833972311322059895819878298225176974884688504379064815692632942472312976506050749905625152045889618716794757436058186414395371905096666795272252811135422334206249835650876811640634614480487904486952687366627511496365730406319365050239713207934387359523107130893893626751427197082078287289299307125049138970253540641795182372494908714705893913562831665377991000869863444576251294784194420330568974749292113884110832096174399726012198464319084916296218942743884004674353216567376794313750088227777688259855232021595546597873035908680938997660520855643956068968324254206522504302699489858409157447999803383073767394655888635728979097911233483513251091709438207842120180742807570535220279538161026942362486318516045144417045810398445978968509489467633566803267539150363708509457192765778528147056214408622742508905072646070117832492450260126438219633563694126395401931252823737356675886492307389650853842241770908200961357724535884533899619089983523059982850429732468471811302573397843072442286397142034303381739729270980638495659812833654608835058547607118787706019012782547574856691560331162059049572553816726461098807861147912687074738349433039167525026198997359324437017516903506395392498891498216080785201981926637646370437248345393033080008566711132916512730232551619365627660786242050408052157031927190497748161933489647089042420468258141836666545150665813875462344265905723546700894126074836100587694315923159026036584305075974999937250845595976107813754567897742248322948521158185312936907443292751744517266183548133059681723414954886404838427560929157725712090593151349617114345938174965134321285768931735498878461250007615543393358194048194123672059151564560473487205677752942003416152785516651704882629532148729585861124189629730572443070458799481095370803882279026962338113284705356858918424997484223277395853278061768414832094094981120924815458432707914982723039556932581453434756561156278011587960747430163225944902426667902596481720621478927372072082712220755161668986916349681531621128515608722298045352940757894377120306069530841096347297738089549778401269968328564486676331963990627259684236521613821280782625252928854544898913954522627177083585935399129002134677290107085287598481558188712707669106640759578381491463383051639543831224805625846889460408194360862639989657371934603507411318168174949234398274979108880154329859232293397976813299925876579571234554832018898939637700342711710548175515428580899017455339950627960310638063396634876571591975184721131600103990746735861327347833738026883852279859718115723348146327403687397415835636681698016923783974607292106188874985971424278938728368625354746106837405287220516563297974565902771629914679120141611400570175056838328270170601982688012688212373712810630530991472254271009461015505191101989940074872128649976758534351607812189975717509266405922021288529586721720643482813252454677690665776510402557235343053146403111559649281032972146810508923770390305246143792897655925186316690894149134171779379628262777684592331339772378630942690644345607277695974859768715755621458724245846916707507199385984277455184809307197624757902128411338003580580260699366780163205074646617609259302130558849283129180168605962007116349234586356511008242038462028074537852711572166616641293881164084863523796874733230528856412912972996517928322875519063387866406233948652886785092795921098400191795328810783710315180038509778571473183831094182859851064391028562044123691464611224149483797426530597943478079559667986328279856742867349600246022673199997186616746376704888508871667036880865893667138917043926339767176091101195199785835337034215599801150159607231983154380558146982492894199218466149301380006353747076620423739193682748884467625450698484941437212957351719804171931420293185164610187316134786701818498752092161032751384400000688647996957543460561490845035454624276566986614259339367275835209796445723136451679437406923609969703256590727378342522533627447641404844895743881874439164002745609919943859689098178124045713807852954326757538551549622143500137131771943515003559267802261045056964398363307488818414641543247335160451001879391947336971291787903266502686939397121719909265003655526464272449119878535011435246476184883790281848543102709816582201579584921537886647451993856722494494807654597760824460770806977067261611024540579950937053534762883915155630350662475365910954707236247675409614884709462980046809073966094561819821304362153550267418237506592123346970396525041921869595306227592296176047960232984107628383675233301247387534953593264750800288305550236934445295599380133115239029236597567543581653784957373295819004327212544824598230947171927560550216455437393394559263707419119639561707118436691553081004394519629759183972689411723020966919108807414722389047890667087784768106280567920223311525643550128201289722046398376133785784859450156555161651687334496502697616664976649617929051351265177270381542655013599137887987548573582733091882100666735132684316217360954714471481785081765104108187949536013479510164090750448702939125249639676266187881497853290625694200737194153823747177195784988894417668958381825597269121808459088161719685109539845484084535963108004635954963693173434359433507651005377273594488297279300816455355147510474289240812218538241991842409565240742776744558121037219316338032242755400876483415553082368987866204972689269062025075087760958699800102300327006752568333241405863247184861899277562422956798625661613653287000091205503296028576469578331326147893389788603843685271197463347563291642871962782731486609034695874502758800894255100104581100115934000556593008555008954627822313959072807271004498281315528636852908324132409412799380689757142379118053916704057424075816207723193421788169161678152764563220410679175246946924119398865515638350470292844374105495135432407704849826564375943568689651887697725541298791036187729401972383177866058668949642164959697975706982179751363671766215095967119017048392224546210314999970479265650724632572130242078464995838256198804901763770412428079705002208798088234743278655972125282303045722309964589316451208361258507272025258428046989179804572780906336041801355455760976140401244316602328899171224651653227188711846086784322462412223653885155142694690343805213148455326903854296317580112530878388590928779889014999539833828973294699130159837993927695569928020650015088653196605033737612204036326778901576113983349932075505494559773118076695125604680253894690467881058179297834112705185414742383472740090488510547225721778345408440905229560848154070392043924519988057123966592845641170128372131065174451111237311377886182860235665759326644086613981195996693483224247220396651650476453715400880534290848544582260354171267400496736238247565326938029180508888398732455110227904100578756610419943478310908894295233253977905383380096795922452381856547827673834603397662389218407002661018638677930806325310750809569474140100245385539078375553659177805840770444443487810402153991656166768331841534411158049154348130181755910788782156854786610705493631011243761420475915145226285024652767096988598205036951381966152685749277806999156663618922473847154964489443561730386632875728493107758017570428336682665223268785331238163359470163954535314170031072119588591333363248454617039617140975306624124806381992453372941124509053810622916680076808180608123307326888058787914079100049489012659245734447653999561169724272150687059945391780093704390108310269233303359968373089731173435329823386308060988597235189407954075627819192322134439456121678367175087610184193504700737971162151142985982523881128152995648876998776497726602523141321732289272348672944137701853330586004821877138464284071586138899975107077502001392986833055125477516369536875476749156662294936869136677876742266384854120079074873305991782970260565630968540375702896395108116404791163205935401099357450879177787201162556514148679671712144494159986902426183385881168347688626492856800012672167024534615109101162494730306936032055743601349270944814286067208216365836739735073856288207633677459069130098006726580355162826074932228737828786363519221407010011864801726506313773228561731901653074950087565353713841456274383322365234901736576471291459261989762684497345144150984495250663559862493643789273337271317321807745499701564814891517505088036160461079462586259152428869519598025674693151529567945826743780222244198012929244623109521706819522582027741251760682979382055170444035071663576264456953948426595563050867047427002069291076030609293905196073141988104078733075127161329068226434438228034429463428196447649274756718142807767010422496394833296781778803200957790715253132114117087366628604983952887489523182726673023638319821179805729153529134481807056635151775349234591084757525238875306679901763458683440145411300110150830896906471162133605578095561009195962439274574937901015555122092739851145915171497047144886010678839360837969136063015152126041247658833791378051611131971322446904326768234455337112085008589543417156058752086338778778931616934109188071285165726354355134663912867640196585998732747118247781396208061094926497726316121485786278931176699528713248125046672588792426948285194617271045733176359634155440715624827899903071868242341296187725980718422975589601266032686773116756396159245113558048204593018550169975955296191931430062709402642101776649159569371287765326793696122719527048673895345324915675479536803306616459407935903514442150276566193024940049008343128990122676628996469711914264726436038840778514697465222724532096257021439365088146973788559959523813748388583512048077239324115779529381164173260293940953623872670055901415791554794368849149321081516178665206690549713263023100124589611445395944144383520610349500808004223080255061865509824075070839190382997000346956871733872419438362975915315779506793206236962698153617323128100115997683159581328462736722351216007599380357138244511856991872361399192479724534056824850457333703114809232830796882107747410085404731014740117242357593012538766288749007223361768646742989565648190855854825206216561795375276443351501017787108522433611924900147191454041093690181917821276067174322557334602449985240979599384882857740948863808491951781890333770666312848994529347108866564765188736396913326049552630464838675948636569709943513800294035488462340388899213527064435838374938541312821083511071985166998436660648200632900934915401237863005989075057921835323892918996606778063098434091176125823898253609636956049746580592928063523838254109181674484630011727165421141364549679851459902509042684604027826771438151437992817927971821727690410166080989794589960583392152857320993523779312525710771830298723344280464206526609118263384644006249101939409029192670543064913018401195582870429756294170019806797036150031068801927149038209075492876317570557631842214600753126944976947953965474026946897487275520354775801594038961128101265070204871757863419209815233043080013572844772878449308233769014990113660383603764548939473828208523917972365038901607860862404743534272538215305114797050482724430673371122740500447082811078764781269005535729999714326339502703884745819570376827518050614060371146861093996670940011742300206287942633110040901007433091407928939797001831661243249141160958931932858384183050668680981559809430390939695407275009271391294627450557757559057887644086373157105329287881180059334288186997779703978478316271107589875751562090837696425765329263537839679745103841808877728884179509368647155277898539966479217332943393530391125499939525840469379074565708270738601489760182332431791426208501101476932185165750575774698780293934586393714529771724564610414413447400609095236787377799052282507914617262169393606190997479894247843659007347430354281775112101549171760388806298111115149317128539339754285856441407739442577075721547581604401764323312802497237687613856495862817119268797770918798551903667417549155948264785473681697956263063208921725307601173274589694877916606419561174562547378771800225052064947327586529361854389539097494607542153265537619453820171165557255038258628278511830408309493938105914274244806360410220627188825364235526692394507934042601641077046783878834775621707460972119777130938554421164194050959907472271760857864566786110046827075452799542016977755314413153351908453083904623620759932317676751330333480733919330480249373178176510768807984991076572315494492629216083007882377462762681650166036954885221648159435097267486919821148310013254829619485370947178631525601305485402365198494320533987031391176419648394582549226119770255209079140221411447389961623179408410224050984313846701578483016554371155918381882090603456688758963081645810277898361998721062345691948637767406629426446219525581085107392872088313400962101278640558023737437071052307611352027402900433031716549568244580214533250682954059315734959106743795016622386656592396129510522160565128283924796919360266393603800947222705934021505625492699515158609122181804158165904000040768851090474184932248660619476873883307927962328774381582455477777687270976748861644372266393545574622792692486056637496216838473870422274992255533192354059085701889131335446186827353525939016186051056707702600787290436883420008258113252073265595738078099139641740813422037505411141114041251440804581734529752733914389625126681442047265701540266490708860296655618114728063761099300012789361080932849695784181219962583079569567927095991606962705904057046055186910511670731361827751008143382421909618833949757462716293466409328463702740246952850439750351627535841242624557097125579331471465600094417414766480322454936140094421713006708053514260518708853731227437198777833727215118597899159576631844610077009548684158057164093772231911143867876007909586614309901952829944547388440356672738720049693368723621240104192278719532397678759477322963210287928470897313915833188435772394889870523728742342780362098414434720517587530850213024610512216439748197779261684829569604732017818098127468979675289456016446460380654659627411343709063771082747397978795331392785136777956574629578506641090038399780885711990507427583800100688838536043312355137083678924868955719000405140289965135403903014952413451497854459223459332480619102857384946188665966774607955260948068395844785905130769020578086927601886214215662051020996269406073908432168989772798532412908826775298584550865793047231158006642067818505249086875257154130091274882444886622982860231135487150594999043930129768908246601936853540230906232485043873433393352997731503826395634132239953512477294891242602883325611206516197824794530991600666876394105051670768628241095201343611278457348326498285491057312003579609554142329804954745391834930151261633661653154057416359681320426256150072881655128926982055152763164455147838563670485286441529837194866114059406664692896236045419826932584218129084047781297493204582222244857307358388263611373765701078103164976483431872414569815904094850543493893038553485675671649369443187942250955620465346931986709677905709023571880024977003426993391442922843115700730609276272142109567834993888120857359960829755878739991035464177722134672048350872040489228361224202883212951875271951905035742693248682654148145485208129158250543114355822022266446596030681307283090134142628322119706323778321627817512657748901903236380609092309240096482973394654161641100991871179448023930238301805460399974033793965152063857923805289973893988514036613191752478360082417512372633406509378421356597250094556897991008653974965625006970742155261275492918717261694158029542726007875285103565654129229315553363150076547877170750943030682217423430101935839187805836263830794987180163093684344697739709944135287253714975602485010798887710221839227311813769740915261060465189406690095226486956187007944113010473319548651776707338437625296880085597435950950575956908750655543717311664705462944483252158048126273876418718678827609706005159650334428136523060648366792646332601074478172566348820788887257845636168047024007879387267424528596432897707101321630700404157504928045203721248165761010397853169790560066550621375755744057546795260043624313935528068706525710737703604895054128911554101734078036787382242807094098672665013666490662600028626967020600837558592441687231783702670799039265608929530635362680824508580555340765044700508807511268180867247718268132161645560817231361798321550457506636567743742609090110319812222835971581162707435311663548499931286799371937903878273844990485433140792469009915334025277382748484241013398936126355920957314393362592867835722883539437905114720505131110389702981635172211362289507421514893280269651318084442322205980376039376668162918326557151781757347325968063282873389434232610299375808726877940769783913782168691653954169892268213878624674726774881758593611061260968348420804982172908756194316377173706308201271777662351327459902052742794875604225689149778029475631196836372191566347882640988691164483106887064415991094426210202278606013245387049760292086052034128721266661280351546621868064993641562101256382509950386850605678038976942346789218072758250984907727640998650349958430269443357888378003361767673756672179319692686269075681529205099861581608118327780663838075990372946412830614664145034626650803834111774861382088868257145766073135205517662516519229959489484012619050230494387062611633534564031250129869626004527310183822935645523546146430912050482215947820503183979209583075340721592612257996527069400632262292229234016291187962301646904927986513257980070952070955824907914672943461998606262616294980616317842664983572449612816406435184373681102496318587254955269494724391309808427784703073332315512215097318942653784559659984943857398533329540762149690087886809728608016369509498991007974090704671903336113752886440666568204509440685657001412753486423848620054519048582636611379967488884244275087060718043547006266100573796566517603933467604264262419923788707529831067293130954106398115396762949736752199173287556121113233732496253657126646536825682986115393285389899640924117004328377909650976485773333853276226270456470523625668131485168413613514735455109932207544655696973938438955711805149686655383752994049101723258194236325972448468390199088771029498529592352053055862121707842043563181923220576413866411373059860633266794974410026971184779104964167984171312266184609481826727951311264106798041238807983414712676007522225665561663272771740472108385498841666671329981563952687531756197925829183658672395416047115899778577111998677917222718219797984566459381860753024344604358992119890253545066836749846511235430941991962422437931208072147545479964466697853359538557253595966259833662997914496406568928189897229092398874841507671155478904441838029353630282592997128267206673727172310615801519909566716777871540057223750576236560726051675413780406616226350268908347102338428086268257115443248028871838200550675704507577783040256384028272711149180301914035777999629470041818497238038162115732092686657941754255974090731792320256934010577526246530434041914040339302091915922041441590649462249303573739241314818199766431421696039851652768842205137233196942813146425416257222439072612267011547824709557880432383863636082736241039906318757758625129435052156924248855739902933955982127744176611091385812325534791880636905501681047123135090336501053301021583924634368129328693221725327928026645001574997936307003694009043706805299254257380421933976131384027355702629036484379969988369703943524474532552186038727173006024445389683344700068319992628826197314226185536179436967727411152204567667473994799141699905120181054950774242349021936745599539082798589070295533683310325975568316639943497284890042375626815529004240276128281359615816205221822411413772879264211699262651872984002056487418267947188610075311168846596829506524561912233686771762464737077529904408445234762891792740521217275108592245017760377261412852037727449577837956822011145658024607939512732493606443392082465083414610664321145758283746131427922102617970305048415849241018256973188376541931964519222123205961732919842592149720127254933827204213795002275774259020983507560309130004569730071165905301379129714489892866672964790592444471397165902267758387328755105411589737868864961028304535363837559313236125835989862214982879180895475431066399854449389105887005047249574532195314199684180254308717444126612780014689529811703464914108665830300245628435618137030204360115806708076026776996281897540244280559209303851381640654576139200515575329877437193635662532033295513716869248983437134271272671829349276901532041157897643594451446675551196601855322001884945040116889564523920232968932762753376405076993662296303741372272867449153104961435819836657284531606482435564551511464321840065931109901696759074770479204946738090999570162725369442965736514947023455374833510932475224073952067657975395493257586044213940158165010886496768819756466965823166004859439305807406379028823674112747282796760192347959307337728853419535168697612786810096995720596331363399057609381645844537899036786536478407255716917530765466289943560810423535269178309409527361418116728892553255946668240306480794001120335682806037914139634440986322794806508745387638327081873939943703628729512713707207385531481941894474305635806191433299308591613513488305956169500941999266866412672417539267455548895827125948722842008686566393378524539784448835181455675759119769216954154790477807025938288721188384575925360228009115605481450018063615477104917864854928426589622642520526003697839647366595188368266703152674840929531664741935301594141257369329818006452123510081988984376782002844121544203840598641728008609714676852785892508759842233996228347551224251818467377011521833594047575388855941370429503871585984152233037416244084119629429452745963025126366394731767441482530379095157778052791371478338505267925629089621072302487168952037181270685768669714351110140204175265702417198569991842519284195121834620641669420547472267038456260405773473356799306581824490902545530931963946211574004868055868885853638570442509957608385227469221178716522132677940726606460643833860607443264834332235841779585613714467908069823141304618370608665087686462161279357771982126544717449345596445615221869080703734127405747069514388767229190130874687606232864832573176693160027088079236618741603819834947883026206872573370308021938008874738782638684212767187916989278941789450781271556027787607753797800696465036757963952424862196383416544731060149380979274121529867514073782020776325668552673697439083293330748147905354436919463897511017570503626895671018170090553965312863393225164513770428641192612784991962888712670904640571415570006163678278284299929472299863149939800289581859308347965860917467913389420929707910950844889060934944929165548523632400795298078894005946506562909918495426224051862067433962634504428513469851293479839451545420312815904775494161471138691448633712725531404655848166495758329596095740413844444436681083841536991603236515914091569125116127032881753280256888266945743122445090912403469986847843937253728336120526418411360964513717947339183563514743808527709044108584428616070358219981660668684365649780263979081831705943174548599258027245551069861151906729417141415455930412487489244858834578492272484043294544169510613603398420818085372006901390235914987954918079859391006693683353837491858914472204896060984633118999253484434312893193347589146546518821085403141364231850028883879107450610276736185884023944187988489429595821341846474703196910489881331723403270833669670843967545875211763144902305927752674892068378856546452627108879782233013985408497049040153374629120323756287175721788432444299743351574828695596785733002418895064008802393943921387663544391061981604964277458799836380196708921833194256252466809317280102294133292092605052174816727484513655230855923109097419970808233982360147484890579175783163980491834762105790148015915226948197148035000940732117000071627452765183709114231078625046308978338929385707585796707266031359410790797828646080959370631595407526820017212849317623383218920348344861734627738668339876533035950363083929263417365724045530014910855894032623174018988496275207145966494906338859962815953324371069498716971346668996620107030199383283133414346013266877072175429236006378254361523523101502903197638615196659963777293814502340843058496471451160161861291744391979513849896914876827123123205187035749173522086618930024185061226601693143211243725072144010340171781153434264521322430212532677868570248711151595960558268443232957528992005276343456498016528670799267393193624269881995083037800347706933354053072775114895149578540261692501657846964522778157199325571279135256353221708921913056608124432483984625229011862153830491052366981094050147934062974968944925682827103653984519699532046450577635374864994905967102867454963648766458000161971209908999962340260578949094905874923950799321809496441693604336662099074285558261307877868507861798483896807562090394009501371309050168679719994469189158772621044156923724340852168699841434828808418191030719137698178900781691259042826732211099290382470357861888965797114852676309849300414810911433207501909153417918517185095024040556634943818405515010913471655010049977549176676411978608138349633167207631438318933242004518720872871961262143747984980900747821633860803925416324538908927197407775673165989047213159435315803373490088727117727077502939612291848291563585686603638006286123703059953669932169161663557009608547442988586876295782622056375703178690400912511401826087105445321340163231404680404636632768631792827553173321821179439799190465175825022711194503522070061219927353655055406540966752221666315543733846659102613643929018970060465496640952019800476417772413834673502457492855977322597964181911265210230055069609607584263182744370641850195564732226795787676177749031864650845228437076997627160655090805898036678449047014142583517898271716391195162395785181384161926601471651938382455215494299011294822595267580762200603718233410358536198886383956409961937653491325158605758899951585650961504216462095332950180364065840904812184573630152910802759742749430930996930759968897814554235084900992351013105317278685120529182786173447989679862382774246545142399337525556772994007530323523031064268172514313403997886271008036772339126508108371475827047951874028045074560676835059008814793584910230970570333036612592676866635639837491814477106950542782087636027276676196475530758941100130528614597729331992543304391575723329588913765032625790671879508718238739646068486476663638748609994057561549554266896544638906991524275005281741043248050314094029513336686438690466388833674357294678859764506964692880716454535530259651081860730237983352384268535958159670254715379993534783843829437756586606422330189605488964690166441904954256836014893255815528046186097634588524066358680481268268949624368879664758116097526011386301876440058615036008075147309692685718013005885179957969261197457424569558900922307234458520421423551178423965371934592052071742625863843955260320914948339497268616133625307524722389230062213335377570774499113711670280145240717201380590028715335624768208799538993979582819150834770112252136764162391963936922928961701303253193398849672007939742571256946102306095364707562360452508395933373071144140989964570634214773062185685122745441048170260274926617613537406487155488656735018602505571708213978717331565759085913343630842209432444749644108719579012457391533793165306707305880081666425035010222097574621341197341864114460057841612006596076659910348422536904637787697540408887669331038540394547489310477523282452933060632587631423366376642439209036951358458742079876915323024096612296236532263189435202348923154036730284527265289405295472691027998357170582871382466772812927271901730594727545506849820795982142585002964141379561196287757281717859562905084743980115590723684434776032265418356486738040744259464926606096591241057312548306299142199434163825844991800876776258522105805889342274451954589137244448976177994951042267762336060676178270441952469826227378287893577205103790907177004430868783146014610541843135049786185966497514969871139211243862445178537165693836280495466434005180518026384356233907578009949221966066633029839116497672023984831316009858092025243846891342759067732541081740563524319630493557035543145138968744819192582046315866611531518102626381161462429607455250436642478577357827951041263293350681327476392428833946572892611444994672079036829611619662094063510182774552816417781883932128811150350916152660683032808797066899085567298048950102944276528468490416191708966052307743043637762993986793949631039418206209603740718332650992374903438176541053315169953222904054796159730978827181079605140707333833658126157607934309872176533840561127339973869408187084522553560777042081341218761111972581629166561638454133066525335239933806433229007114306769146323640780129636632128222234930935717070756780877722901982908721546271049979080098983813053986198912382396996577737963545450510916222259568977962947938589413771652046946663467137763607998371523921466586773879050545385888994173802571712036605572184641153504383939097783176833581838466413335624736443335956769216552156608552748769376649656614608765632986922195614332748182160486415425352713111029378645248813262587462610857718863487865978676567735776408496772962216504470132847960650379491841869766413789176994507270410749293861771929180695915847133392286267602826606127583354502306625625584127974860500483339058917626475697198652759872163882311280260062845962335248578069481553779030472969884048199234478580874174654873394107250383122244922258629183032023730358396729589349015191494228549732314644787212926393908563155254392828319968567516814044228210798134001295673805193980907388720682441996682054888761398627959484491403659853800938294442772936789500433030456607980986429781231545609394038483833239530438467769188454247975407767255020834406871948219074238169436426855069137234277558813721897624750920705725775520627732923059064354835936278740445499865149709901442987107971940920981814234747828034882274519944926065946423761008846550546368118477029253603174615884359339305846947048369899853919993554300596583686426268249279574885866240905451880995802740928239219199284273445143788085865878085877273969694011053707933710011038469168469238305170240135996129247646918097661521439470750726153331983356490870260961168729868461481207605034091177486378323347049931842541370944659180898607969834208447252892693165837088815275713408646165016121801428850446978376655942378878176927798150126923095065767707428313914688162532643091678389319875268539574561944792019825566909141797293983783569764684363703591708312928747698210856219898459020113971023479031302209533212683227138668529659476610876151620667117962916145218927558906550329468519124146619501410846625735100659387134312339693928248206633490143055360417846550063940213108929515188669185892980565843355888129217650833840104144706866680611730828396503590427201472068225145806385969119772895055049720789244913549319838569619711587766171280528195590689650334501874026423944989744087440845922620778885146517068287298818500215715244108342286824983994946413894563771589798428383562204510166674517066108560622933276738357180451116912982274523165392247163247915459302766890301255655919092882137632234105412846396274657801314571168063624670204223782663891670734212542006911211190054270745185782805789582999621368948632133445017950531497816975160420016328087151077154007054153372883571148876881834542269289281410225573934030172852847595931227457579849330785351014812296343739095631504916907281305528860303148252584366550168966219856282002697514071448743002742390991366652829944956187724885746614945348797745451821514390520732849273403794555443000662383800026719442912562747287948331992541143980162351136036895455555614342381233600011979054534546238353338466252644043566995469217044245433369153434440672099099682661866167444596029752222171675830104789040498553329445504531825510716239001513839067376977934459290249190882807822728016703873041582081363002827694675718879248383553103541258892150086523583406607474675770387410376957827062440421875975349882158158295775256300564174934913786382711509698903048563951861758575301487473297418215867688986066694052893203539986416639016961266814413635566715444646173354528170175618808093372376154180589549113314905171363902161063558648024362583945043236730889201411632465619370206548169896498577344341656367119212408154661422554802017801419690225890916006965875413013140159790879394523278157234142628449856098999981401430970997617063584998954910855716790663743655683871634476425186477627643544266194250013415799809494687446015872601065983262693741954163992846851451879346090429579829915380788593340431920812190350612068585739348302344611955873206242121545261757966841535417003666353369371995008201856694890446903926320143585800036780380732288152753444671951207628192510716763151587602495494680406845566722629157607146832243702688451531225022284781278964332222041700422662878377885886618780556706630696109779484449819048513871516453828105327785304939861083875391360230695885683218872623577455157452944780912456532717095635731920172206493839018613521495725982962494667463403830072791100808633189775942483699347536297139186683365621407958395577877104886056023737123583639375915019207953414543666852601848228468340028900850173166555270632907817610734292443992026805420614439722260647468825684898180436699964899829053751404395954415848366346238795073811114369101029894073931714224256833195750118259029143157780010325259267623432107607180914235277320615713067808394319755780857652065253693011254655419437204223901745642086365455695584661792084438428119859534138025543912616900350223113288598607301279023582575824201870114231417813445786247098562569663190463963215897977181110278562502915470679629851670596568994326755266107435867320099162659405598956013598240245538378208134062378807696457168491431628983510205416210553026030985673977461031115211120484416852045461960249760157935932251785839840713261178330768434656645033681606759061203587330493546864267610140951403527485581083830573432088357187240890553888306965281742574989390294514329240246353543508479170716519184832015293371376481626983119660345728528752158570949152676570297738521117783714306696596785863097360270626546676127246182826390544319836033627159140674826218492702486616073086243168493972736825363686071526035842075591173423284626336543994157342706026061201486945990134056206441391571178602747468010663969755206029631961268615893278783376693842411351442439097836773460053594528702053802675187684914305606534513561845741696421373272001626894740047308851947288107792029391572527236811941339904560208354766248887677280004718567152174222968213513556679629869543535632884046522757662995269876029083923162915709146540775530037666074733733048282248710868001512730773405825554885149809322217579651682397439400751334806241095457951369252598420964152079368321520013187774736288766956688406401069023813905414592917404784666843622191852179769206936639199554741881876531875192063965322048388488340780859070562795894473657420179489020582667040446589560240541756752838004726370006912335923743806973342545930162625621606012405328036750942473547854683769959640848021107891870132080804161643029785875834535543890102675439115010654539386947426364387466989715848935291931966951459221096530528465603851037916255410606885285568776703411388521233903462278575509244088557680870601969339946017354742150265716022498259039770811391021347305143780825799187526050422344043617017820372774586805644794125442684953940166707313912382843679197796119582428712929179625636396843072510970471511855506789744750500262375304237661883392476566174483855080518855431046705952236635780156791269168444997620163647195540853769219363852750939904133630490520534501894077832331056980519671853621855938305830230074317259940391763216388291188013853328169434626569533395265677508185799688929533764588783526229239036772113401217637345716963563264194283844266765855197386420303329859125438638857658346909983850794698474234082097621201217110569729680274558712670777236266615490182483747678259315459484901382697625461812958906756336924023587505099858529237552835637894843988840640417476411314770238767718049446199151053332698676254081014364807406432726179727559143082312608360751463330012602304645380061237651295036155822832560486911361109583501628645397538408054070624140597936095780446987650063587739191859976104621570848366957863156492608122291439488970869607736979836178244079620328189419028703701332688426579982108085614663559901601281016608284258974083241431118422091217075887788996110889289105547917547244359296416639609743130604226691003307197148139770043278567734117065752079931858708613659403491523285185227144685075955446390882374632923046668964247719773800645932655850181444669721021447067180750954172941412146471773401727501624753313227780276416728147863906700907242822971463889263775854218898712281189069734120099630469424234458323641492052876390517173901749783507624324364555612896413128027114888465959235733481851197815533608429144170054150333088572239343964704842182278496996301734274467542299973084681100218379423556946875255549498014330660851839796844141774553200429163389742204517963281938453946686835756291324346753614384151271699809224485175928341400350722899868850496354576551983612566582481311597498113191439983866215811116955530388015320008930385886067182012140254911858281927450531634859573866058827555214557942899637176966677182588785513960973502748872646454367854947215852305513863509072920379742707250944416360810139110400683903186898633249023986965907597337811063948723964065387004636078088968149995340014906628847119928992817819358668337217973427868898563172789727846566605910769380181428031367993758027126457456878136432470898018525612531923853566175013503471284642115167318121310387909678227613640307906728051692259183177194497378565140779248550409091336477920809711397123561178611124991908319727719891885700563287930593627798634496681584574991245937990991575692682380545545189985981587289919192127969981254596764371011105289953047483697685765180967174773266139389427548154467664049144264045840128063184935517557098553043422841491763499416252464863266841244449755027966674880430080415658717937789692535353643910010180537625480050210589200828222869328100585410605660043144582034493533814587025912000134246328989797119293165713964028374892544600956160716807968090382438021766893534281401350515731080208675417225606025570157290263655154415443776768803612510945290213689322644310027613537464683364672024360699354538410086482116797364919441273028797278830664644108347161427295747607106883153944157727718343954801061023316345137290641754995579542214451505474068792141261504843407734867233663070787491367696454919077304000381795661698467320034425374842751547734922118070845289574798547658269287876078484944632539057868073039682309249088861176820752977001745977363490953801305021175089898497502872586290641876883829688759516266754367830915117451495037344372382422673175649591023762701877611562187249805856724830217843115112241926344764454470255669140280148877122294947965586827728216451739466963264092087307160987486114938743371044235247681834369419614704113927576343195535900138947435992064939737162075552410741556932052712892281830369619764727240507549520374448084439572023379239000670381093611743538080772332669722604605638819768392392915288274460916824088251256865168729133341674784709176010600166562580862846629141443950862120385589621686756794588999177259584108824177983573075994100283720267860711572684540667044490409801653246437655642899334531809737205402273790682392118647246807117012408448754711720496613894788807938749887293266694634950925822067617855242181529890390819808309077804941615504448874238725355059465370564474442481123071801796008945779942998137279936169484734892022829563028065021386545497879742190768514399641467925567371812738692909784261993925381006181042005642585235141824316475533677766414906645609509602409962363252314213376671203300143188589401399269939370459938260521514680851617678385298160901960497668761736976710091952864075537030816461267565309420503686483061886248959429472821654810899035889499795256654941638236862536510414545355362950811549631072497198323403071800709757234461941157246660791386045454351483024135553494506311127164346267375520712051257187997711310833497569432923658212498057462113248215292161666832088067590936501743736422308073692157744421934271864701238967868682810687397579308797990648316302320149379081413539407921182567662316848672992679285941765542292773060708691432489245358518494390861692758598484820369830420477854594179084662529461939354852020594656200320177744562814459008991590047129265008090245328616217292347144430121917727360733614759348736761405758934606870401494610713352466416142981868387734632665789918671175743570715189875390014340309550331241479851893399883877321448507441153302554000767071625711318059578852352280554849577322780993163791976319910807350626206725050642423735287753567477087139577744484459363293595319273222525640932193814286725676141746193792818275496381274824770884218543179664443167808466549815861321671845980704854230372386853670188650847469457606398546735661823887593166289748976717096407187149130885488702110961938647218934594312707119080941085299951574976737979316023567556825122672046204495619931448119249418040199429953254318046102117445153212432969450787825926641812131301029442535720587486760177692526189038092110712792211549358222779059026975508746718920859169826037769318207162828301835162759362313654031403525175251135933277424119983014561217709612848635781174063533586513503499249227878887088036123288132707207726735027372352639144246290930713785955959548767110395754789220396317201310615611956474945910648160904611243436177502552877637771683823232871015703299438835629840906815269111945160574325478980090353808658963662366406504702413197624513670797012448113563276749193378234806874263986623811365542988570722522289679041537822110040704481625082063520087015218094967542587887756497294837056129402488350536194821713872623928473581758300250865202215497161491911539110872335408651957539526532778996274155542923597442404817314120665541347303611584295437853527559491509850340622843113089175938135915070148969898562944918688319432612401671706129048767133910773896041122700318226031567801399010747898619561538334642285043812763153103942304735257501180440276092404036670960584254422463761298900206947554544905590868209892440039936073488610015887302816929955165262880783602430699569300756830372596177002948271962976957346184082334643742089587163205421007554091849339724308387594173493542407424259660550547600967732254729991244141604503326519756790129993610243619070131858273228759129377375295169820494799195936229045226343055619648432950244156166350624567664646447431897848182757046904744203216850196127980640179999391907703616857896733478667842791675719741610996791549076357627377070701664908440430100122404075447397444480198901931987366528877364977672667657914504873141450080208339016472623747151817739575416523520279954296083905445146811414568490328069719538498900079772442704141680028841843218847437992694816140470454754248572509461489403884937433377092614100017650644102404117447555545224501677020466710765745463946599578569635632502830658326963271940434651068733665597901777545332446473521549059304302625423397904697081456850588227454099115997875871935751669058900386158622430670031519923183932573004928495081435490911008045700779579189449997019801069890645652663018592045527255417828623407486935467152270211287682098748349482203533939138389080767440826626720643520367652882391251582400653017047320940549916622822154615861347796594101656527588120977959098230495899349055381012074459968900709323247914482528763631046704166143272181700699000851836817224669920396549216384003027167620168629893663098424574333561875328428616877964206324820445423139180106411294169419289787559537044743598132415645390896619031221788776441392247257759530795210368075399460340583579357861765622336581857782728320563807973611063778759330667414907607974388353434794633742560456060370346745462401208717394603862854859610753694920988469034376237921941703124240274157755819493728877681412858468936748595427592489263333600935855321994224751962754594604379235179123699070715418754470049099480544154146139426945855447644698442693034442992171365798146602485088327773398853530785779026591498445740627152223964445599297939137333855935223002238551419243398435603804817997024016047239241368787950543700726004885237905043524952192237625399153607960296923406926095711127110927039867462104220792476633701093332483146085579848781813317086025156962451539843662165690982715518080091143779642741292684930783241104292769636132191132605423364486046353998213842988158856534558280216553244995553104313644483063372166556223435057466104863607116224001044697332805448801769817602158177604664440049857118252538539148719457775454309302546848239567264708258753559761454242471080747220647052904146093568112804178771732366888554373733267418894854716446748648484425201793708380242233331030664127351133148541535397914898546440655144871265794830691306623859284288134726867111893247275017589184230024952702168370828906371928027147234782250647946923882151792155910357017631225908105699911488303566986124784735262449050707502701970598857871244123475954554588264062929762404556828640943877028849414117508414815325641102929040605490982297709664311018185664299351439374274727667550768973141825035257025001494910675368408343121216773518512077069989362070250310325111630332233212215077202179430493797022184080482004893292110976794074098683723374792917698652770001328665485591514201338033570683183372487493399275710636626838941475183105285548135727046302897350809860577166422989357150703772747533243855584488423911744460992914509533794035677358794878224934879864309497948102551605873283615576624838485616082874831939514914052308916122143852302816743453973346783075694269337907337495757044393417113806827026574683923099141837833077578707834216060570780096843216607488107279629006307544554915724001025849976898299922755812123743290553882503354885090089003085333396069546328270625872330508162393582764539703984619507018597182984884791773543269042968598142649297112417164226629168390191548610322747409562283740279340136954382237116600375514468720558598568799611669953377976727561420399763047533150118555947333809475954550145988748055967985467810371472434514397188567563297901583347826012826334600602955411182227234734113577461510677178685218999506196297445292681984337661974955613724492627749643329540588235455971150716106931084079958008822959428715579944988314512423468665120198855955125284463167110209392861579506863157288022540016148400910350150905370500296788248971265442861166500753819107108333679452074072730107047687596178621513683437086347400305228989813210489808342484248130538783577891181634053068772064597410864978727894740488979752706901725692113367789817659397892051382749536061511913743068485576863371647414615165402975169112685560106857877028939868689115507019787122915603147010318323608289610556397866579357247733011751602830867242378836148665885208270965515894861685534790696405939455746572513268376722523217586772849638133384062114678582033749011104430329406094921648730604404773510815637138711496811476536204307866591236590342679728456249910154956538989213390378601223498868910969506183529770584806782061031705431483919282649647647371525433615386263540266813166660212282418098961221030251572179538709326044230603619220285107914056041878648338578782353391297105353578049382368358305756590776398773958969066964427548584776912630233597046706811442743420385302644894061436862202603242245524681873769425853174553491897474624101255320155214738396108822071309363021332658123564933549668682427473645269862743191513851255191860095523993571930082954971097533029663173910969503835934415842341278413160787259751557989865811305129409239394162464103505138902584074229354487603515031088154769675602058080922518093470494445277934001454484911438862941519128974976469742340448506932248824847119972339399019209764503641858510175924818810233177743831086450783713691586886322383255473785100784201085721713361759819024805909273529017609227717169606322802544442705973018006590909191344465818380944371761413764687341964728046097617082423384229085922460628933963194373044737201515471515775352946279865024283069325067055878342973342886227593932790432749388401081627476533028656868885387347620137468579985599922212745070603353922235349377913954826510378638253767395399206918792375650450065782761926110813396123967745344644225332987151906478806747984959798304080568257940826905567592904065577654818249571168161105483376878463396099211852153802756908252620622187359481756152054438673574879367033694941005193972092026869837703488060148888308383035909959393642660218820968311891696133101576532402136138821956430246369543823593538448088282573731610662303355477378671524339771134166200562474889251837879710713873592139663929168018923606157885576531244117605346093535650200361061129657531729714256639676340798985609000830395409456629366323256816652877104022018457189865831245948048772110245753190425882874490980185003652054321113131697712040091467354317281178792326870349014620736183817714158610816942801400161584222569600207450342934738293246266536292534143404740486084744551141364959656969380094727443964761558775391621999879081437513957794374055394750333118633539898255039531520929061973022209247671923605896558177414579453474528472209051937195085393773921328624378353339726636731354846117541532492287143268951072107825083252951301010924994482170638275051759949634049640877422686641625265451667201501062335615230796388807671590514780599108287371691466278510263836395925546891360216038918564229808864572205277260274203603122214000512861938874667824125648514118479412764664939048446907213429180262794070467782513745399938968119814030269251146662801739452420461368312333103120882433932273376198427783279101184635710963348027552141690992137171573151184625769309322291274260151665902504511684537789557577392491699233546187791743547187443067541598247955739424293075859922146012070170265391746432342506214168721368044480065751624884754400043599524426932690397591553685258810188510386488309444587171135528504395305665356899023456429145039087342108346346925708516209710777426657377132403699182239686220405628533174285103429724436836030041529128541971743995818981150142565864457894460856021753070373097155299951643930838300306517049752505629920906747339980919346327754988016615588755018231277113720389078005604952532072813048361256479929840158688795453641210292014472459350367652021428593877015996936967728906382142235083100713497684405693734795107547613530261491628126624250864366048257051572938580397824189322122602873254442735291563745264826559686246895899401713938944500060644425061289740838815391219459716154797921259768778448684410964124703053142259441842409269518075051370604247697745748328348496322173250013328275366426123568340549353522416207352773515338345808507070564640830509157665804854342482531425009950253572932714084850305783162905646146901397341679393275142893675632983212159904636661403597455580512886444925931490766001950692019537415613194968162777770670258084298769743867949279252981863580681470884439960704661880039218913926810225837352609671168089284421361499916924927688080305848362868742666077910741049751520420737370918851177914846199381833505226950542627192292962298640345200373743479639801427207440034000778914917551354883254523907837000631186204197117890710913879804808234109803372619959984202667420310487057360050741895197307393440842217765747402671832347623311699799486049670085263599161907166288395599342365400121874630928901110913872223206730091782751709561824271955469405333783724597097878049556947544036402858403062646630080425686842392215745888659975128375356553549045771126864666612770635115115332815241520682283471452018793246949141797827584085796868043644077328441767103624964065499123197136233306573493441437670885559063560835873176748470960117810709709712438255664279797674458886922643521156213090857133143139530371529055928830209927936036763805921599769667832971374438955075745351538689673201917530536879696535313094980887620573736499985847444725264978431641078319496916802091748021036653207528556639650838701563912763562672400883697008822295542278002268705975776200326835786332556477778554719472071518446569603455263714421338029369033648957907558635168138503477631873531295533886656645208731097204940171624478765545256497352467470982289109876243823618755215768157522318134174528361228333363227320598420530023437980093076386522114022978789064071752467778161988167585413010619000870002618336477027445664103554318142840704909179708749268874262264925000835458112796272433103857370029443156787577602009368223004279050706508699430349938663959463563576109321467275643649195443609418451262869400268025635516722186430111682403776524989882680938452810081439194603631615217160467538730225189544996262192377088238567605923079748944843260490189675831434634421566207279198773246692451504863074724576966533992549401787589302651506913522530337916176821555113454795940151200918054259499097257443353597758369571640931278838008418065916186574152008026325011394460529179269723442089749460592979098606134656141985604501940369716644284271770986891646503521762767060712615112706032382168451105660094980333823761916073946211971760757585514684962106856202464843031989972616375876289160605269178452447164550127646944271811000164323480486787501657460586902250837434732673471866726836573268639060243935872117975225131569841029345158949412456794696365958905602778141327955542392839724097759597954681686828482884788498766425760051533188442803718212141156923520292511642175175992683652353549041350059815693953139688795614124498174858393215949939876942323913147760042449574812288595863908010792805052849673694236926078878751650903179567489826816689641787121650281780923567380521255314656950495173522277868641372387574217123079679655998406583170431855931356862039121132045902178202225579149858837924162295290165009384016861541011596391001362395071550821671347711692245628046056772968322831082216304528333911344725328853579900245380394246262805057513309807229727956423785528278346724106920035939256374319806817662793566160086870721369869753727052655643553690971836891138412398644566502471613687827737321561583624106676878298879013877296051093960648596950004639516484405051323453426599777442941313299517445792301600118147999723670622359460497849223287652223712289671134477167469937871977861789391282548817610613567045392076671819692518785940879121776874874623982279817756179044353966335338124547311699885624307371966146160616069747843955253802291649623485682556089347988084000496262611492133008240394206618605565283886288767397253258714422163380440776794134496603050114879367070059522987776754838702682353007772942650452942227251871767190523215796680039015988872061355386298337884948728126928341434237237449892563708741627071917838839272560088099644407318108162594012718814242595307691759999944484945783089006267436616954145670926395902974019626179733988032294972623478404435443598392196667841353136001606429915680345268743324152210866468061233256762732096179716904010216099267642131617018110946146808904898822411369310289469992017920559940864192264311100488253299160912688959351774142947976159250618038028162424609534200833473403626474951780934994102045707775562170873862764870277037957907125641190029454175897472722920424470695153338941217588037891384363556622485030180142389867244052889496968247710181150299804001819904408947076915287862299568719901867462880088769316055932468316218142001562998668844215453968762878347064621514764019042679625574135672773780324242995279870155358312845459016732633422975065495248226692738123393258379126432400514300949103049730713503682811153663779369578692587641950049763544566498514013028399329555268809025227087993093886681712893935869154116751956303323734898010209887000886311606049929329682122738868009776276357580413213222057726816753788979474907018922441852900247247527227545206523891350177286779726069493821371915548987042505520335882769295261653677084976895007320026253149715861558265326748460294694597600188750868021528496553087450139934641343010503006649683528070844718833692795421923991206852918366284126404755881202885458697911004812235712069537238439059994363018662860640422958771875055555448900046593913922082057775498308578843745653157558032974676514658453482410471486948111165156820575445038622582665023388222339284344125354229468843396042730455222961594966145221934397865443285261167775254113748361968587446718841126931035354029804025550488858270347655978727524752375361001698635825994983322955978230308756280037758450679579222395462636737291073485525529996437899288954629794580241975690315746901790607753778620633224599193127057554040306062094141158745713263608075324360216474273891944965492702220163912257320395656358325618585541244287694761942791199758130608383011112407146131708970344853553085497336555795472196914845497964965780531418491386533523139034869665251637040515296906886638002521745712894967905823298782962314959203735379309599804464175723882214479763608537737247409138994016521027682625701728611714861738872741474322507799759337093317261428959745062383331473629118760959952829739237989042907923383694633454560107440280234558171339860324196089434452450165367144052374444801927704450820714959228462839865154252026048502911990339212361961571856905813657913723803799972982668542857042516660015408921290486403946588598856558602281074714466765246536575449321224406520577125932381038037084091585064971773128571233520263139323618051207114963490605750478104884927140461177976741644199336362234210377364200249358627839882385742827064405317639333106038075272690605884714914802400720879785729293500351774134727048191694819722415659754993605388942186022752749347674850916731086212784715171597654038941233347949432046463339571656662952473557827975940433501103558827371696763788239282755357614000808793021347497594987777066683581770071856662429581617971209608011618351756149288610606103135241393258654308997157626048545536140754441880273581309627174734184249611131506870116214176731084711483398571839265856082936298028448682434142874623152319021062564569591193607751331183918019217009671275283236050482489152045627544053041601257711744355187927213463427461117274800548687000335063608974117958189317885956962421841973491272856290110418972074647676740020545022777483633660719969321533619309868097750439073931074795667492792085167903123971364103702521972623796778465642971019421939885712013762555065529764936823756102002437633079539174114809961389234625288316686584979896025343264569881802405803810725984759480290130681421865265207839728828552127238706608892656599191301822853266606589452673015510917281662025571663842492463455079138746824653025122172557962315615426298399367846507610152894995798623401743599443849849107533658779913170585757575448788159201196895825302042494313721740253988018236793756005582610022105446775596049759357537809272496319986766542543579279602375144656615825619308417923376310915117764454962070370486607899881890877188937956918953107268352615347687522633472720064702955991479763422258853719506645091803363303298747652084228532254196981446870405677364390765788035497904716093987219899476286172061067842960491925702726001026103478152035822209711558491551331705226693293623385496021846388773680504859134937283923391249141866191778260421799992138646812279331391839341481790483398811054013602989154272600953058881899208114175304349708745952864275339867602535546467355151178118086726787995288414910575966600941252997146117410552741561946206135833187827872596165721203496863289379014847617801877771267946246623674473814898798320509534097359215675707791730342552189174952876763265542544106612134622778144001653073928759387554399987307096546417163176322499167578462631863765175328797672816955912722476832259397754065605048599992093572053093774637983524592845903089910655588896028529421704617951926609545396555537064829805411551344699315955779159741533736203087504336597031695506605488724463199757283722246962411894103512678156369757084125535410812446984372626161401555917445081628733914853967596391011997623796827949166480201735503520580462569005724698857297673589988427117892112679490134506134592367637358085016463203861695270650488583474964586410385835702488613752047841298745764136537799896447138645333196762640057429202623602723498090370328821966663156909166920752970363560360645040329993545908683426487323923838160125132260411046226287169309232695292902264596090314333984391121921414901009461311158159519356802510637000782424334264237743485217749890689609944246212069956099161514077106513410372693459317229882204135720716917865463950041837309489328466967816397957573888109504253961768541922844423960165830616649653200774819240812878333079009403375821107353089275969527099293909480454815797948766286411886777326970830532758190994552986568906774822042681680650149694259368743214092308097694638060521192935370049238233893187500252476704471455638719811623647725052238887439864434140525526670637422780144231133474513384086322558457397002040735604134190507897397350201258366542063436505078431173303406131706160695152301828643005592866172142273537345085943879946417054121102119141332045624020535290469063234563890369171186035070167863865611240559385669270135180686870165962504633374938044509103326213978925491759663463488183113419553293331281706280990241550452806207135766960660027328921634611950355349109726500826989488139616467726295069485016184439979217405779462524671964645784230034645528417124343349289667762858534466308035230581508959322668874539278881145067737112545332181107533094997949184824290057619501047298988944330625015940167956491599806397248708344142465480166889147104010401852144992418849285431578743120451930770142867597966891331511109796387617636130907816545648773216280013155929770276950183308430306530624507323104642905514710405154295099459862807743051356118274669347874587934168071214756728292424313844970088715957844295894625060812312379650171470634943589245720175756698154316666222687738935510457558503018320751383900220766966402637655565348856741876439568945712467260962162554510938438768346804992204499728177353925966335416627420144668593725110161972132042334333463523549461573842455751423987562356355993301730992880890767015302118564927234959981277802438779247533817911644599453840316281631119443698668774553646174989085631978250583384217884072965164045696489934449518430842482481555885542275150226092276017126751221892229785519051919760706880926377015784490081697855616196184838005938921493621984487648150497090293789177323965358259774042379908189374738221976546383153822566522644120152086762408127221237892459783050710648414537627229443328605330801337254832468061568175292539570806906512796777832319574144843100459133311985820240918090522924573247131236586052890292013925432489366579432024077830970590670515427044219651705983871427976155050392389385788351814473343463085887495770204599790973420033794761450504319595506385592489530435599952632699112663694629041057230131181533053056637331786021052749384458689277770865059688142580780703514313482831563794856299334066844559528333570544168417715789651369835394009220038560801901174588353253835369435259825298508536801077354423347549693113137212334290058363986377286083419762590044841083170553709297748876705624674558229030211986206992908636283280848191447894713358040194643134069991770383577319075187097286938205164809229631060927956267257912713222690816348657204260940158869698857733549123340338601533201953100839271808327794553746798067002957835885066256240145190580933761409133749353307021617477994023374665021953973505304710148789716917188007343596358159177224266633182150425071602064669956149251657396074908918626200857565423200383381401674801703640178501108062511641257508583105823768069634996133423500996749477033123686300475284658964240511790102764584547075986787479853340468325228511497585746771657138141001537703079975426011560700947922494115506169416495009455696176621412654886164190481839986525445873193375072052255289136134885093097202167733836495704990878036338788132131173457924543362062478171496935052414283534510915902979126023258903128606809057254444759220019037867218789932284347996145813360680613512849235290438412038496192615388737752508062196521129753176944912418843820429166875183925366204549466616684808663173252411521033992993239784468547512364186165203477077112300403655817715280311048741353389557802880467386655976263749879880701966585681415874108381321017203218531246571483886475997422304149660814910621142664938058682619570066081827231606036401566715941005166684534586106320145728015648479232643349685791642961484545358507519909067625592263735418554752125914941184090182924575257598720197692148535019635036191828045629458058080293699344313421387854658315958268032913196453936078673587392694731156940989797945683187096512839929469853586593503740001704520179878567080341397457396222642386994781006061017639477771814793171416584622480234614242967308274466266607333970618344579525091732179818827649624134416387626013776676562439685280330452267845766291630762338457904245068665811805895407026266794026508158749538084722996974738395461415676664409343490853403333706201282978503288987008353215474726958758176138794698409791486733873968790230523404206774299193094023792676484770000262517233001319016114220373876707514209766280228528014023560190733573572411554931134316660099292678933549134605257329465175429868211256227881217443325667218825816860370261529454432262218239246162144825564574401363271069179111172668719263657073313324056309285194095751704178999289635582011670487531515569370557297268182680565732949029552862939271774805360614537675479668532622884729138028215402219037787102611695819274178526348743420971833619696024529379349615517866844005379971533274402997401007386018275594607196553057997526437022137108010911176675454729347799989266403613138164063083548109944453312036815917100260657562871382861519366265704206234947411725257077183198351825974335190307957288227415813881130718964574013700924042019831298022538544332386964911360650587301786417743828042463433957928745574008804485217936906144879766777044987127319744055092926776162692248701319147098906327149281946494118479918674078766386474600108442664374098717600905675995909560061511366282547245575185851119369970462132392736478647674799932557235474416716014666158764175078423175623900304256590748517936824637009157963428082241179036605456739807828900472810685933068868758969441277723662042627586304331134719379308509274898680441433369449634966964751454221117882591738399388658504938092354218769875791796152609211544812458352674695189797086084812115435978856409665394504798290179832492484957612084373281370132182237585754657253998796812491083908077229472435972921051413835146140305170139238641503121223026542399581222386665427832178559547062016255299566109185438890082147864509898766858074147010435059650169489086712808366911141266697742778471322163597669487390379882025767226676878784447468938625973376299684969476807856650568303917810062940457419840828234611793980916980874526592914964008078966283632874016549895780558919348072016185894792917465123791024739824416847387845519044996663147380895592725065871933546895857962274348133400282826788588046595891424021680611245010841139859928628443630895642012827375222740588022871776142704691107253716091327168972735998940591958359480588151893409024608486633669873232146767330305150921333690675443701337599085050768801297125425179964975879181737423473198001821912133682553027414402479270086292177044903077438186104323280432404143893292358959060524128420103746244739178451429522953784753436098233087636415874500453185522400457422805881920519952751024575538189821245893382285721806156428188951408861620179910086776722960986954034292911433063232871503289652174538972020857226745408445388458520209487522946192847141528188455686238962171471811822250293262909147765355706356764317280584468760762746089554871058036821719862918945206981997008492427368017058287462255429766620460803686739730488621116405483609689094109803567925521463858020981008363316067835801389031654055417636576780977666352768920259191666064168539223739571246894982491867779807577751496766509631328706328641530577888928718296045113768096543490284494847847181335290738171047830661172542434405684568110344090373421924833070294048720580599092555908847789228332435589093381712475419741875372903233163061260809349603481200615508020189118920785883945484134119169043561228405616271735088874243788857560900648513447930543887261823767731438973471378758551572462951410000705432011000336047476332035926427030102334366325100769213339540335839449938930856223036067669858485644775228488124393396690791717483579839180973211732775117323731998751285977065252514713729861312028193665108196925806783955277404051682342697438838614193828924106481739678334087489030686279733052206541099292530756598619994606817902336300048494106569650534453096089769058125033602454151675795770015261764333692108049893410897375951897635232492099777710599526586261189100446482294549824273818293802990963925013995958519199531968459370284646618116318878812853243414530586571454605857495172425098271574327571939126891256376947281894502005354362461762288876450807148356979016087251643690979156043734797659612591628126480897046367905508007798951457428756712653524092064450700199088398759611025592291557564021992022384322722652223210271429444596239526719578561255626254258616219568641927341098396622211220674864405362606200361952655764706436407946834430303387978938808437669333678181852609208262004761114149218365955094982318834449282958110790411077177889133992056375637614185871902340225168024481942110386289938627727519969157864940859487723509070236512913571659892258622469310203801673501378775233540939540211702608259900595745870593464602930302476044304555651151977438363535992538124314371619372134125950476536027906989703404986827786922708345410580252383063570790123983800767196135458139627126505431984085756723322003679350335597491743947104068974805273739532530568236737008796099178054659859530145492572374678468314338126259411381125344284095399181338585036211705897718591111746152427340968797673489044785055409102131428141225000963371639754091056011267694562991955478473206024762298474528957937004403891767001149547690363209861040965814090320015676945477186929270896418195705503101500880114298025668741996183618881362504985485979839651581009628245294385042325036207356395374689845787338100497535772783878720238298527628221147112761766228454026913027598588367167979848429923881937055238148401894964826930349049950427083594508127116158667650319064985378543726380834586308759275598654976957374865116873158404559342795368560260059127173205079961880711601149532421357287006929898454462293845918312386812421395467327678194433926977179751926418453421206381892627311181268255305481244599837517018754318279432971744203083628658606088894530458722936648050840405753669658854934975556617795343921452792872774926459102984360709765423838609691821464601247303822114819989602812325966610626950238995427445206559929190439204843548833009388811490668778892056355826017849643136472685498249884265386245425437898238002418046569535416880423710607291324396649955612264638410223451344090007371603411670616603112074496171684548925764907750621713005396795935011221852639117532256421136905929411856774200250432656879562451975399390893052312863668487057767407455494289816621218687831301035941174570554575522836695655944718566256553143672530998933926705669840078075345462786207872963556709539021040892139202385655163573115421620440277961804654938473094704960135692507287998138745935612344055332632953447999923403591698652052550131470421304496995172505640450053086215231803615190995319058596121945502730262133857955452211720187620501907194933508130738905797406100231004336558299852628067347645955482303508728609757510675628501904895027926870784632659281222128700565079941077114253993278208575498006486527367938824305479550522635243062818099861306762251858768685189139836269614204255345083575473006150632394766703955023879807819552865476834348753552857366579095883845407689003714753165513070794557425628722219291384585482876144254206437584798854463328610201387402340100625550072266377064910113628706289068919104622277739202865978969043487251841474451149975405239361835818240834732663210925354977699629439615117090343707024452741428989784117096431763812629361930785533497297083772491612470873480055627561391046863319757895565083939460930986029466459129325453673994572348566396059782585395854546761726984775593594406786882355784570116953844454750630016571784031088887148687459814641218569023674268030232154103868911514146285625230851789576078673363610727782518581959211378756332554064774084066376482075285258316471389968353914121565238671943728243144956015861234774753032612561887723367615096489608028997244733090398116219450208200997307502736016980835878988260944476326266690722683260954243587641948944249448265443485507638202451576183284426256138507376318532604165977114771414368211072814736368070234388060679564039412387819611627343287258498092209239529245852419713305146650144610714694503179020701641558435676030295548224282142682704959489813141588148478987186433580406924828312525631529259182351433474475157750809330362348842551266990895658536240843365815906752016031249718950128124945679444858832688124269567734569919291031020261055498479229776791192483905347176976375021348176772401993425203272944429934123672478181991359610921893139398971141517747069798572338182777168212924075664997878279493589676560258148714006968438334680507407206519261369536415370546965053263935089383718890805334186261320959220809893372727029818540069431576636838409558012741494500361482404587651511501702860351895724770740131504713560532352116387672466432314420754099382840064768419521386161710777679248452766488541697637253183006966608032634459879034215821836443605103312873049870230375858843596209762181461393570894339892025623888823474714344178871143423606023157897070958465617064072413186513878160246185452740558988443533257174425999419259373435480076407383835957896077233402243088524264076936857353227180944868417915561024231582200551509094762480073932511819106016359068086991486624332242305681432617207031562139348991557199645633467316729393309674887389566661599314622719724976691297946453416516754326520545911377937809745127862280979464015602631781091425642134513620739899275088171456346238314637852716955150475942628406153430961925428668999964687638832620809273963697575198565167595873311604573041731077554469210952580289161386199894182823615282956712456273676118804630482643442875168226243057231510644120420065519353218954850078567803109214224528355294882313888581241273584363185228887716508168704376677589159463946769620741596705518093814584162677454978653892179879189358410480518474222632790287274496775712847279869460906944679990969505557750704082265658025006868050546408105243310910483956634831116338196509514677178590387377277920202364698825658896621325035804886740889571192126359276821812392707238443514362054359056254073072351408992694492354431470399527787709501075389855541663292350122407709944197142665596679465470509543134140486778245687619637222109499908828310039372671380668963078275131410286945935675466043402124649439548377737955470833307309169387346780402149625667331048994893862353490489612721409413858597636633560566155027618112762020316973057845226820957811993949705471618622784536513873587616963464207469619400738773880737275572323941577126526949200413487883965798817867769326081193595519040739935865723087885466892353509707979879650613070071830691484358441846325137129611495004648771274291858694074506019544928213016907455510425287974798048822001429820994934047446899238211821205285847024474923145491149278295571001110235777339792718894957521643845511818875836979836772857815956824227511899375886936647990612413730346198627461852029679751681264839391786843171762880694520869703655248398283221630384939679993907758350705558085169863572399772784817388402949805002896044408615848833046211079774029652039933273726681649623434503034106818632984997918294742180482861693263665834511139138887783227167909786067562849172851580230994754661321551468948836857436353499554328507194204258833843155489337333649039258788722088644170101565524380647278513175033105432182593363298521576965708956840716376597360454897945084963706033745117058521338032480642455333970963528646282297921179358545228738555829977054600400841489146232537892415633996721876737772969382733612256898230034086929559166323476555093712900815582320676180720298314513176409490600403606159790725101079407245972611564731021911920075336743929732816526463772864841422864493493018000233986023765874148297457508924298259111060871971150481394491811126799356603314130116796702759992661951592816053656848102189331829638120579662250542793565975347048610074264422080075009582443862836240882127314598043761709270107563477843161850751880800541143856621930992972815960856769046168210279615082820579975002810820095185295797525275717863451896378513202429054984610768609520294579823609898193851657282124517476748928215800762708852395259127376015819493158565821327556286718100974545150280483349276038716584011296987734209038735975671826185025344241872045327524729512151675086033052766893236590413425224184317530631427551746778897612225181968678848987616952541495841733881555119994911875630872522062605286196924055973061566903899226860524162334797816112924457549276590399825720571239426135471272914778348060984298910716327452309816702852768927033759075098556464975892355854285489670662523577750578551764487594725860261417538811385610983414420562493750079698405999602066436365079943510619901454474137720399414615573567265652382009465449048463030741876407367629947809631799267193540647542817403188955498286947389311716553352471153344939215356511750751976590941835604785240229123880445960458602338945019547760500306806583326732145748470986086513273154934922082944620104820541342753912270418203342653096533224112933093151185892035628555131515556877995062512743365743954237030133446990698525678134338262629613112145745320652893821384769446126019644856854299479133604268672217588935411796586734183447901953514494522680378667534592015931036791677354690764620927373954750331674927116945353701905262719181198207176923303991148857443686274865909228323435678736388137391289545142153270462783205654666718631324245440047270069957010043876274312216194397162593949620741218603425817816430162332953092756198781904792318093377799404019146057935018969258449017668571114267393202603610983502524367258783859905629260569325224246652423332235341170598928740385317918268851210215188640022184142771777922189924170079735969877954506895784700699378033191619035372811447040511755207661132523218004759581830079872889147574215916216540503982431510871022848688093295506764173676129560309869054833282342904111081106714238952044559920704648666397838245527963496723747519001225020106794847512458242881968032415339449141975223698020538982729008616888269022388931206546047087272606778443610629847897971282751545678862691001027109467641732854084846994348902397348681580248815093494503088283053319084477785915329072346828715122170158786002576567077567575092384493207946271884998174983832966080903236149732745282121769493278424415660370605989795082074453853707087552559420595942646396136955399186546572791608270421612644231048965346921829053249431288679880077713141810096795531209866169235657644817674488773820185106440366041159573981777938580874186068286756335270862616788005704707407754272379210535086018748458653803575011326750782676667525404099185892602809156305340508356136502351258468690773248197360696467700319329176496616607514743648164737908861104506691615583150574145907391998118958696655924271282950384105451223019073639588813418618130001079890826715013984855303771898970107781724020823269507312030205232062681653460084062642801149669409431035816340772239807188427080674166082052266309758084489200071023364936894560114303381311166671944020490474343141418106374482069936243846368686401215461020958814414761230220676580236483754552447447034139261820185046199290320348952441986323517064115608683722342195976110363831117390735829831124216975274480211275003502828512657529626125857230561669147276186049446377819014270951762685000135857836608540286759540806976532859048905812859825761656979343819660030734679122097413147797274779614349065342858955572620430650794429972136988349659999695886542842538207163754498317965898450129943794478440755223500292661774725742352145497627107265333210320311020420161477074958300731783613820082936634869747926252917975782445435146357489117438017997736323760174550707498412579477148794968055975267729510619777839544351562934750223558245288722108494616821317736983960199805448778172949056899616367149840819223115933391683303720678414073601373464402298869035191058680806194273106468547857540386820736398366288634541868280721458888899183702771967126534643656498416253521584376340840402054630324463424336863500298748445173238220080360038077678566115872207052144498579113472864414727352453779408502732442710878858003318600966238345164663127767361229403800826144908655667083977742805490895708421232806239042189619661940519932043045973051476496858595646012316173538329990492688910832745936669409546247983401562961190032931774886802181384616345946335661306456282995172798657132423568373784655234466184589451330136623633031179945288910963986945096524388558467928787612540958878132300500987058527272218848218247474921483941377454936536454975689869474758123169181163497419244381683610286676137224693169809164721473878576391674015219404941383279316333137488973647953996841475100438294051523165338635034037560385833883261161982967013303060934405721260074235461757801170487464896418520749267147593446226218499045139463935669809616557563067942249704568193001534648989592054043539258223207682243789031369743425943180036688577602221394866765410688501361912483197139688521101182513030251003706249887326121107159632489083690833131929141042621189741374055236097061653781922684909497628586587202178445606723444912588055091471504216480824165696991115509982571208135607189289519036708642041744760837227229233923295642487808458473254403680305054617581832429175131771911878553419514049228864008169901435066048364629625487978046846564663172790138525311358246658389896597990031124433664121652867359210311768722599645134703909577159528048009484529289276593275142549788307380601569318721592034108976720028660149518052342913786751099179903659171181571671266367941466523661670582143444552434069570836835129430614577308460748150511556177609081269172949413522832987472293963618364662580653036138404094403704714221591751209977638517405533203227816416839757780461115257576121172058252319388643558921960437629640011562857148121631480117028852989595046439446779224077332785095823709671200006666701574935401702269099277389993295566111384242234960932566756145984763623750573840087445048762504279956005771986593247471730002916911659410518358138729317277162499280367558196788699962309232904357019680334653362154587863435516751012283974356513871114093802318363157553193535843885082773050354770308711240279482949785000862541756522285307980593867704971634832074362670679950530178055622822139824373282017834178763916142883197291429194086305937682516300332281026250227769608863508512634118010120392100738494969933643352500767230681191986900573209689109966477355351079072511949553239378897794622456163991421272897680077709830001564403830706896928064991186146799156414400119078060069500600650423196281393763260876127524332592284498129376421536226717769961522952468271878311664020038011112420554125915321002653071996609256952796686272560241975683422092670223592859382005090502278636996749061680253353273459415599761649994222380303867360129788985074664421438405878347136125937253953492306277499494241069114810407062508520306414769053303904692233946207873586928460493020912191048342004517668825313219067463373765952328163963887080882206863861030224563306645495553860651775228429509564765553021390374750551841339767637182277218477974712366838061851450195158068112857260352794826549574921597461417397333628447383790030911452925403540233995989492817922001453768029989212359546739832536197355668737531009481837553247923633566560640288485583128855731769247720406439478121207032523872125649965641397495466405834411232872451117803061754349446617976883077002615237723744178592045439265634455354208610234121779486041799149592448812998210653586816111186671286751526117463721133813226543785448251174459501437944511895004700956126789785661682411531483687189812760996929315883599718244846352374446961895100118895456583783459298330589787922768532703708051443821959805273769209096474171358249035421075541162187693773872741029301854281482024002456552858481063130562779107224862243470222622946338109562918283310763641832530369177401991550440798418173236197978308920470170090736930936130085219987280792313060147352338009602368166276292525001874452099680490780160849791998628844187978002457348637488530440040897473599570141644456131661037829678520680453048827981751715953773549895010603667025539020622698451060977154277532711554481248825164147640630470020952613059973642036136402907365812728671229881539852969818862832343297544681842848093388003151454463012874867083690766405286491596841259944030129203158527046080223535509919866804628636752390529715029384837627435622985927560090987917935862007882506067240486823708358838154157817249274071777340871294347902571018478063119344114742661287944125375588436841121836117471155042524040164722233133631226358738216314738788477432748478355575659355852026213482296540862245328569285161815212566746410241121475920448844098558450666072854341117979307226394959298678381566088632890402222300784904003842572441650856299277594899140897910946736096992841216450616350794814788495904698968335281602266532775851729636752698342205856873415977230379523307516936468573872171791086137328492181680860695929411032449646528081620951033778615154486977111289209872517705528065388255977399197477700856562271704381239471123944364561370117747028205229147829820519423786164437280911765601415844306006838904770711468686297140870200132270256610125781294851486160393786170545668433026990877789583425646799672621674285576635423949531786363439463954751002525160953720309707777479720946248443208394916215536556974165672874252957252825829684785763952858636179346169749526728112374609991899985701216386630264364994055454918234506395638619214085329822213853701200390871951891247630700469697041581127666863069797156654303632114036233856890136691506005305363657945716872981586894461003008482721048849845722216614106768983480036878782689643103854565889334581441220354262169027704513919561054793911543310131901743131030668201960683463165515796792573536518937822799741641859390933204248816209843478671330676673460329461909234693360690607649903718431998805390444079269013016996874842739906591982009701765953781778147508895127939442117872964883487066792344542105588495950497276103864666937964947493781048370520317361299092154368766464981627996567759490858952906771770809802458598426572410815896672968369823397389681001427639870386200780492437500819972162578106777335879329028292858009852179350560388444579012237272996995698376302109638816260046213837388554409783491281641805251422798760963391943225357166095702816177717773769854649840533457855471351519917609266780282336056971708353670585780757833095205977772677888981735553278071465871252533686390570737605333028660658499885824369934657017821010046971836275176987490541936784440129646481580253373030979948327355399377698447796055619231337548762240148121698122792389729378683090434400088390094591620933181207033246943785296380045431646484091459294681797800658733959142160647921206295920097365709571500074064455227909025692986031350008651270078851652024838259998032383988253504280393209887390103872363433870343692130722397278355101654628769645092373209554212347935979903328191899651064111239409089359482129210579425894761261204129835802696929120651102563715597384374768796253299275159260197449841921232953503042848514101808513317677674367801251599144354733148171945108156800803661050579792612281908170578811714658064763584401293929904174568511110056647178072085267410734134006123835661581231540327309093917473673834120822395549744471458091375692564037771033718270455109309995107582042947264327874047865649414481294278314922662362107071377094825918227939329764835526531785299616186238677397241229720263526654581155666422626678931345082252449511194133065268916853832432711405864283322238742797346657168223949871841033422376260478064596210590033396685656867352882619532576684468686504950582338385078759640163626870375140698708104505797169597217704168798491138546349673561172503028853984101809275160444795220973217273226433069197138578716727009621489029044963447106096757829751395806218232346207905130703766486770992153840467262176906412188137850366063469236166923422723007127847961554039261963756731927577303972251413162826483839263925594227953035092438263387519383910787236967927746289320534902445437082556597383528672352494784929933585830319009990221784269563085654786971979294627356369760497290180927749545981968271229062084147015571563832671657886193462829208570446021512502394159624250651777544122902091344352870140373170206070409265772921134790314071800485322575856375976081921248892464687090954293733717468000423146006666339611736097638109953288753620498187647825226420024786770006244290081421875663170750671873714878262578315535712222220948032941565867153168811049090613129928641976623667456846468937767846577509516553252640378065952850556149639664411253816967591740754302140027773598939658694245368451492253720723435236056587786835475278568852344626613635631322528060288940817692507923870197435198267590233630114236703513824743263265880478294215115904486202964786185681035355590868619172955470354743698229047375407521294852290494905432976151541781203786514981187803821902471004821350292429315543981513468483798791900874041238086822727394886366978078678399217896328535056722085088380726019478069728519109001586824776937158410323872811549578367685080845228138085967786677594095734964707491573889364048218231680713206293777256220103373928331177288884288652370610495907357271764322326083921434289702765055322370585066942401270779656868671553015750657220604209857645338029101304098931940645442369696170575205676410327548767963047695379721996104886185967331481243084406761324380698291214812990514184996710171751068354197703757408074430492227933355610997440090225613667561526101752549754698711399065594648517082410946313399948404520750466350008538702001212008424012469248926769474687249089614322424037810195842158443432615273773685555717315729039260054379618713532437636383190176515011964014082608748394905571944766807562327817258469378849662568898482744540290312835111085737143468815950982399595233865853191688789116452843458099728983867658956976704478208659682085909404689582442143508065439278437154703203389746406151164771985315855135878882243393092677180662584920935295927122845408646816154173949727054786448734488927210024213126390717074001238724925357029150650604025631178296704365554158058578981121314844444894433140702538770783753523456831283308807567131850786436072573239940029260868702628057652811559730958828893554572861717769526064832314997322502937242317370056004209095316533473509089251840030774803657567849626886288204069422691679081966868927734355968043565782942066296472144853506859968840568176658307661361144456365015621150199460803028198417388951373249744608000715942259724995242410132432852299131208322926492648688504977648881002081327362950353466782822259191893819239488306406728416028057151077766814558184954699315414967423075571711841862750419501084807265179391919317517030080178847953341419948071342011568348123982059406486042021629679742369823634928583011714064959264294651378629950525058595933601590338401006827064485472869424894791654364170648275183126365208440957967732932477495190334389646856077023890022456166871296274676348188262982003927332497450899018555561157318664653157375553541560473345380925721602362945885244996716788570331069389044231170747546324492269145225164943273260619294180470389110992884313812097856174726443744880170599483702870798385790632402414768095361214522001162717596211915694796180624212879173577211393520805237244265909342868271952326999154056252964662166477881666617354156761275875324537602994342649253906672822953381115841479963981126427429642916672557896485508927367436413173844922839549300811935881005094321144837243731012867576495806616212247885452291176779426457448564483314421183384262722728011703948568291091303789104709908506855656276515447880532946609091584103794709960403413315864435435324645718921391061571305548039855154610613538927763457267211205886346995603180908314239737254716916001551439205626004494206697299523589881029037980654089010854257901729135336677019288446609827282614552545877211375614630116399816320650584069316669439962761433665917214954732411363375551707539233066850594230677851687715211840672699040200975437794883205431049085475910689738196255160588287029436667112698173180136837631570036291694214229210415780090468014476917688345749246560525904922660887058003055133178674166839664558652875474828540726543426555570009174878608005150600262297907791525651013860592288445946640994041313004302822675554622437677029234923412657509428505292121127519341093283561355535344878672284454253166451510804137839424306337737449369254140816766166189177532930893923605670437067549826154448863942146809402946776105897357604114532649307019408542913416669673206158597278067813071724677143094177270087012322510765054457728745529364518855365065713696818202314605521782277247381615114870658603715980560826640828178880182026335298559461128636114991238304262244001576494950909614781868861453766961735889981152469709907203694281819219314389357694118047842349866943010686982738771201470658561403150309005894836032593327580693513914508991500256343572721960666561149922235402146793707996789759683203901992836750275225211862980458598426712342866335233868106407789250652002021906266067024694236521270491786838484762957116914215233736012814771301146070452746030813007884267664060589323928981307693369372423654376668263066149472277682668515741386900429641399049728535175413681054558703442682543270239665734573363989807098581220100405912491095549333751933378778259317119369722185904856147084487586240952923613292416924355897614629835783374083869389997320454584395251239086136832670348034134035079926864350557255265046919290978255305548239679512259779718199584822890122855016636443896239469316443702690094319159216184358672907102417286012208681817682682179625015083380743286432497686231572450295522645805096409821255377013406063229575902176604150921894574186118845060041031272691782862974711755531638071076860945249935215969447115001727975711214267018384227054714036540451385517967625138195835326166303174471550636096747264705232603111097946359231074516146103256125729497541077716401468448538337442871699005559120916219346098625181178416269755274129439199780973357411651387446249248292576974868200766038622391584454675789271220560245011703919860872604421145624391877812597218900524740289894152781141595460148277143397098336758507939494491646301242653366001488748851287224291454702558692670725103295397325548114915107286920888837010340378318620936870401157150236195858561580822380080623038752327848019518935744366974869570968849947408516748946533235839594945591928755707003043522949285797931185401312567711626119311477573134676056435952370252385455130971792789926016301832594922596228633765311315704867825013608938571797356666220998193993617399304877124540435537931397252081833132354778582340308649243567082507982875485178924096964400995791316829575766943371818306936320244667661004837335752285236520135833037139294982605077938154306648233840767248515702537654393399137752421150455214806900108102946321206904869554390163530321376503444631372528302136622691493980828039666360554486095432548888710971544635259549144077653092098582116306526874623531949669767841999182257588955764267237126744079646292580269963811222453118569440511313360306729744152422425326022593388927259243612046327888707371339480700561366244086285525637178283029732789893859794895476696929930971371104880628490972734344217635898253748090953043937227466080802327688773042121978215572223134405506519318402334495706698983380657002158692435485399796358015682843709198627956541971788820081343817552041208688364105173356418521552295192705965733751094895693964951483582455347870254308840554581133251915450498890586121873123805527574376220205569502898715597398008542386759776302212038285925576966050037528182583887851442801743912323953658316437793389061622942397125969095195478910208932986934727380629574594905232405274308804916127610538530192263326651650602983087487665560438833749822381347452498859723153637624119087038006413425360407261595108865092192864337036412004861381899362514203238969423552796811743847057087050285302810157995017546301255765237930349033218412972715743036751009266869199895762758771832756037703560120264338446511419134119658298658356334841790721781269366624428001867416768495056193069244344695380822289110108794174355728215784102450903438113128960501487197989123901771542432288255307906761741214965255034179368588669779093230989873240151103636225618016339441024271820013816828481620489758267610729820711164364688264276093073191212614764917491272015498683738482265238524013451932319645325822175444749481491506979963693641373770003358803554380512554697389058064818061580685274068981495764630998137147160782448046939518891047749080428588307684794338287661889118644097167322401544313290834422966614994770030066074235140162704252613211601354448952828288942870264741191242075600229315384286057164478224527976006324183064355807479606051243040514113004497887717502822634600795254451464137770768551101702865260823672307945235918396286548238164489323891608905715236377055651818724705642843869626617046724433465991095429578332834223463363725606676447594770688863145594822217038779342924757925202290309162965293842556864740728956636540425346270507455762904526421827336232824883965228336452755472746056704361131577891449590923158308020736694959065316046263757800659776499817333224229841276505016447739820906651214700032166400958481990112238776229773768433808123684030928067008651845757785967573031893730043149361974234271852731711057189219030676098158479686115560197462932786257868378606667527446499611983749127250869623397008929198034769535727681113515567577877266151208384877447882682474455620037919782609833023346607627740371110676277388676764353726527472782122133171849400007345806974498917345339914416896959626963908684804436648826824778937940826188460188142372159710879462944780621021979050079385688260252490848759726785845447919580228696938093229637016810786360870038158680956157106295607585408368495755673142478012320996848497636043827154456936506156426346054232169206690782891982689638943132792446631627376995661385086905821896893632932085610169494781024880156694156913507326227099469866315999693633137650308389008416248758015957585977865005178793944520760231238981691041552782160441278593903918050571583751379091722997086277341832074326542843447924843592812874451418751588770023718828238032059580998607748394149136919917297448702043193250959576188396461394616935217783486378047877423616401110215327245387410706973047995717716568746409017387402199131288254708090189733693804173382284832341612578861548399317359355669336121197771635321579707885939904588201475905532607657867776627655436368783827958303765701677180614850782997362939085700414380278076980663990543803641648284921359060550100510711460011609246767918122677885074725011026006379865359804048875475955179856285572095423580158513825415563599632728881516093596395349528531811828383664978662829497498146039541616558799188386339833345236901346593212539730150477608218923592983882095065672515805754649050803507494321050672522227611657641440362838142768228182614448334482466512959624183223725778785489214258215954039656689569036522806388859859730298837468389370984598988715635130089842464936143291353385780056514279046564294583313017313175569974823467822662219140870398266662917280245819654990216889322175620899931108117464248036453103507248008374518086837052028858425128172794131236586967254207633810267768636001565449017084129182097800673101270058071427013313747167584046194590037439282780452609078577419275235770396154038670766256330666396730668274514109185926711892128272684660548995275382607066505104435949442432339088036882518614843872677575010849113689450362214659162159507996820561116754830802732372884349257952958938246141574566552404694062699028245242202232786708287599582946708851117671923352040589196672796536807117264294382841148981253105320452211276769868759835206373575135299208317683012643217049902169986858539573108910167187136514118116006330085357043584685481531521457971592329815079290962959366763687664035738465483165565854899462621554795894118290292972353328677018688670131038175814059984943269149994989100531284558382259445718404362108194964212026427711450655628181060676006007631748717669777720503735945541558563653910185147153945446624344247295240467953586049264136155627063292597170672313419517303661125941059648878619965466285370097383144404628730367854125270554431054504585041719794895715410582173683786431273416770644106951801501289769209312339326076065347586234811922146638626706042417257273068909257546631218931648097942664258509368424326714657174366900081365520324247974073578411572200459346870046677468816712104128633387246213832149642581038113016603055896910679985597793410953793720985504931206655585506920283231956040472783443459015431138907296756118091607216180274848460041309731111121834640698826096768076013953430662398411753472852711545171618881833406792242790821108565162788795891029814268079145044370931085180262365615755544990541693247673847253938310170706878308341444222345266127546954533492346163180951988013901156500064217403838265912154130957439150746431440517958650462408897237784943785453385830793101061058525284131028009938959365701046131048462312996484282133598805629509151374886693442221378458350765322873644370357016875003812469828277680839041901186242119101983627922613689431159856062517552214728557789887395683956177602231486738698159165470026753654796278991749124640941717977380779933310314318499356748206646942479698201456799225985160643188377306828596364960042896649827021789901917366162101902461296233607934109067950658318018870051399935650344881809425918713754554741994392241465458622388764650384910934852853847480522809652935991058444284026689241987094637058094296931562692285508902972942300021560602353935075154988937354812941942630879845381226256898437198671852904986781172649005868486037343879254594045977686027923801410089057814267804224406888607683967330561386730584802242142379503861359732396303567757943576334136085454437848434656255056858657313870039912852869057261432364424436067128054329625618439737978041746042886584632015077912555737946325547317021815343221061255920823473912727666304015128577747752276513886579912977552484057335371129035745618810274539072461372555161728029218035044863949162397853972875656206738421482947364613755132358797079925872693981127135873551387511095459700806193561436989266185270653730091992796976045956866865935274330237439584924415304717810079946208555605117788834093714457652340223987119869160111200472572343308788211978657089093946364284636875397421690109316098113445269759625358130395327105825083314362754406387410626126198600047893394188069664846056529326722517100397733719945884238216863066700538572508494868034737144307695726435607425866661272362633014306698134608901094787293426509595890523720500143504642514087410837489473750587605965698753846980613161316237499766881713313886888307169264009961445043092255432772010966367773412141159337465504091081830584311339928776400357025682922440263664062261023888340978687100586905710660627243672460611667732910003926897299362305609157199336319112643836390171189276254585553643346078308528221503231860367920678843886325815135162429347750439942662714145077411280206514306567527412471639293151094933594572672333911339656943241203222969096167511597195211352657529596989365677235714881775587836533038943055028783581347639594957984141268605764265274252091104949716391608133039429896292795655126815128960505168390927977716251712402130567313037755516202477741646098264955081965063425985186479236820863027563235856362765857208012635572734360442760132519029647584178344947051553325602021773252848597566641475424196964678975056535556320203202464231286285656707245056931825474624324910263490940662471488526285079418286020449896200342265740341589216968047975840446266599741642027626118503406013469167370863870784428902505873539059457302565093428235026482838459771625907304875010031316882565807205071834368020852924761833181921782158591444053689198253295644807981786135113936223043012335655776514194033550812581063435597925747843478629047140878357315540592887696169907150492350104713017315229993794276915048528961817141627590747844627316760869680211805987277915000095742811572532976443061977142870187742137982244351379705046929315316375645916818719845708985000762050127660132631760714966883928239979456936923092662862040326886671583639355993020724176994341525216641948592460754181801835826527280204609380746209650453262130145898624444019433141060606876836026857286036742716740108894796044401365075953842475415687525241543366647518893013714934591242227950653270074429365359487741708742721614181967206005163773411894899212396953052135828959432716588348634745140231073440140486127244859606139170242400800489929720870021833386687601619762162493024257123203237517860536369474075651216379150376660232010699532003424843801045829116724241579108269485709562844892142054806463401180195075314904193420275659059773473637537190312949824620030072570471331665909270144443730799213122747702800684668385872059166434080544108539948405272555665668071819770521979639550096195172144404998408424014652818047678394749108228997979450559136105475986892770525883054916055298614854743115752487692194187974279565084591442487844473607282160400253385270513233219119974627324980880191508299382213256103118505766508113181906934985463339168806011142764722799911498759113595103937204957285987517806514775649972192497848123275211663291466887090968753206746697579087435153039499226105760702037201249659722873292887776379261676223489864067054315077409962458042912735322548579163861766935453672488376874084420046907553049985842849116060977912990819651791730882037660844326039485256435960058475044619437107436121058871588211993896541423763009915203672625094409339776876872884071478331432875480721506926197047614098161725422565735259816326114988808373792908608724554110930677111351819187300573194572420284437910536177694284838322711608928940068473205626517189792003754147201712721882130895700511603997476081343823004964784924416708102908073434683952795544563136223016798964313440624561687804085027447438815200052269718653363270804844396238510492278211658054536705110760684327873677650549297877089042461488542568308279265087059354223057532769596932524396950460818691928799252296631034722927698952491230164414147361784582373457764818075502850606093551651404892920928056368209914333602108750252644227340778111155676656594260954807127534991475577861709613163420468349599720577977900792641513377911979247940409357426719290937072358449078438759583464420103865078660947856540673372638665253081466212066300297943367615444589255653578332534217996034856941203325830817978442098843127576604519984854061116796643937634761658032583298812353948616068731486239622284734713284792093318168090630027870356025595727592205378452130393812025004569136869366657961143777239214848721395808498004262335633331062458987178539194665430233392196850891303002525171455705595526250630205301311238925128237831377242314350780771995930587679999906366733136578436829814564674222979347884615105372944180296323201736976503460851236904244902386073423927562285620274967777163166729624491083508409027286988842705784787604010716363443242350929788657653646791833293445511583412930178175923957942903320649112124746685513589052083412132216084545576818742193664685256899444902154597779096136346791775058770678854232277754686260003818567581798008191403350363129940609664218716897807439465360951498557592333037092630216626114837176813081341641719255845008386222029899259381482318303805645771307565214539316495426426088976630302797132085339974396177096945581824759606324426426119108362187345906450180493016959644659964062050096124567835012451180551034252800006443508406202143422693368954233673034324121540441175070224934125106758501164541439167424457156016775927275306545880116564717770417073799989066893481731802534603472842674780776088671394862102098200283398395794316667128488288054086174638166031227302155637547738292010069084247851809821782513187657336263642705235694392935647592432245921702125591160508928538648798920037469522213283127424943816508487033343330911706483903010876082202948421686895067289730780618467791862142613261480712018950721801129704627678165228656833917226427028694377155730635614644702978893355050273707154480210486840515919585095634208678704471203114738523693164608030210269528727868297117103591431784944215139235951991073867509944226419044337732409611487638304042571994004883250765580652806475417149884272901302175247452333326890339039130200569539996491209293768504752420154824841280793821971444519544368064774570749686465901408021750220416734889506357493071748288833423297261767978464752798448206428784247989265510020769799386248393526155500230307795872213826383838661639032584858147423861058400795385625743981903202246232284902506352347757451678383772306106136983488663427288358820050760449437085011746917735995437020297352254045287773694159620383031613177355631969533720818629331504752489749794805447068406790282826704011000057576931869044657780538513811290932521922244665497524952614739275950558930075440427229245398326561613284118187985015703528853679679702930512925504424215279003851440486029340705444725212167854600299990274082571012479020702298089400965748183872527233795925022831647074945944063044538254876729856968469050929161545607668056723965396047268797155721298929593441085571365779241401203974359285003211670305925302463722019327499860115850674780911778667252407535407266376097836988009078505084430285054314612303517094804371407266465258198027296176391489624653685709110835959958705401306831715465662506523565731295280664940741387005968513623365045321724039046789380427224126183015301870158245000719216489078323087642246065414235720805032630023937983656497589118080752666980372181796444200438613593950496166026360274130119885003017093551005719849357518777595204334842681194866298389151860890890958406518286607687736563003765170575412341863810673730568412154023444417608195159235041765176026993763089033438002702699535471441995399368267608093872489082309639290307386195817178603239283328580914408687285814274212703016872717544876487663405718897398073329873007055005079461470750899952181655618704104804850308593962536614468539222952272785685176663242220470361088405796478648264122973569097552928687791490532688394774611270245058977451656765777616954423474791607501329404355813074470985534370157894128023790987600459496261130456438395867467342611745761932924369025759874081155031622054192307125302156707210930261255670535409508497029475327580822659052948988908167821557644493700835918609857096772793272895716532966000940773662945822170377033227316316349315611669203546636964397094525996182892920070066948013338401406666928395164526493762908233348423533769766195501161724024103177148151581071087541643908840537155887760921247465930862827953886942795994504222310939678450094613489849831258543824283237789803898696024497957696792129119969752247931945066316957063165005158936563564559293550796824045283170167485084112160779580632186932918766451791797160429963836292550426016043503169693100196317461287470533047976411537926924667686878647784290609352897772227867071492802479082386014580096817317414698604153947013715161367468553702930718124880469288578175754928544698970601846756077899923822100894573310444473982996550544420460667140722881831301977690447695837680734401569313128755986205760792389166646181293319573153219969762292600450137339233641451102066508592526369240424340343369081093297898692497647595819137599975090103109186773450311859960420888805504071875465193921220570347228845100400643948374832009701409027512137258148653877556121817193246063049211593759000509729876610750568132980522388154207197909611199208807858325742422577587953978782428211928188653686692512159029910349704242847440859935154706516813761126892566570007408217188840625663523880946879774227172131389676930675819904944585241074128240329153167326039801301527662352289027459558238039875575116447224447373445676886257916351418043780909853406727771718118367621494716444934962944243787742283923744255862174512540692913061363071398253815209817583730121145222868527871379572173863126771467391883319345460833544887246019587656467095094846616924357444959492118493416385225125124546725521681932184625176943982169497127999546402772516341595349824134255580668315115608695164538618307109402468472757478827888691105202567632341032202868676274491936177202109247690902194116802271354046378509441399502823768809916347046969396139107723900354176667787276762849035735012697896469023648403168203266528848200770309992588273339338151809585038112624905947941410011898404580685872200222307644863996620753932455829302175194373939277921574444243088538319077168638337275619717563913037873509945117711239701436875361266097417627221937655162467512866661649763488622968255937344705345703836280808270558475959873976955834263917668531114319444556202487899322842490215514112565807328485487821975408267107515425487398551751584915143616994729530917015575891455017739936644457927695123695144315423013061353452613138167905305107477728452892442460114269068798681570011569402372151529448473012559600631343269324141852915711647188645077503186147137493533223402133158701970569307755951639818707530169905880024415224735320624716574093246781910996825693752054465093209561391815764674749840609549432497493974916921331865733658099824816629173946985134534612432313060504810010985146475800302577877785940967981791892390757292498234998413451366493922331941005718745475326462365932217272477379973579717538996207682588477797106604002315883600782618928134000152564863839469659549300737856676534266778991309280001658059287440083238004933121946160301445226349160488267208196908434062101065613624076528676018124350035617556713930690662171059559286828306783944727734169142458857754418503230685294623967402580849602038277370473541853515866508314272469967915745302527303362032879790290742116474159126781863219603241193749072250681762558511683883119280414432233550236679120375122932649720027661582630086042851226569650834627785487867037768601929789393907892245715653761262782694232923833875490284658820043693535622844821860850125729106400180329808343496981410687191190838732004846630954018952176765152460842347271988891968302483042917398219722053675280050445775906224703892739037754906907043796752067162658281704394484356109670207872986268054381400559411751566199143185399639283126128838725992602001238105360936180547070022579328804075811908770471815815467423758560097317651366386053117515031961882922054076764797538628265086291520462530114003005013352677829778714343557068700971492207490535470265315694449161086373625828966689556610191588734457830504015295335485827128950899341600221914277544751212220884797679840526738012609460787740634881621988189364855963594416534152376812690466337698079524973467320470520137942908707279732535267219265344242456981168563660911297564699745172247296814473468188173737975185922170150563174074682537339898273321471581579219487520715730089065362379897836250853028021537816530261504036295096342977839133703240602187239982235220613034282982758575853723670641418934857221790860530160370301635614143007208999514578442835704136069844458014015225918251529892396350057546099340507721763250212346065584623493062042147707593291237200346971038039534640703672321787101101210967465323500654799319684281113873714668864050311536121189357208976287963703067214327979515749506527577848438427926019209263098707717062410950814917645755188993158103357799010690777974842232379699204659431203522172172438576977153063543234198888318601083177573521907076303260161810130018446608105694694466075630190398808592534490448869387573411644186503132421234264507879975434583518253358309069353574826457349166956953478356320572440219616309047163614601759209245030439967009678219843425286150658117469970412512698700685937931783857311514623045865565663461500714831851217989524629414357413835185433936208737617790706768590303018436139255188041643714292545576501999207698815021611673511886917464163128402521300106518109967813882774030300328876568159392575629377076064033353585293954229647298161360733960914941962578668451448959575388820451261235153900471695282603512845578587800557223413120428181253233059952195162083909272107676294743818399534927877186719881091686947849714613215155813451910312150751205023849368998055034051341208868869289473879439787753241944815121686627195291679171528581690659891022705325231566641816177831635720644465095775451042255942530077572781921786146300506433756411743428637724733739560853947066047497128240802697538286373494492390855571649756496332511308625667867621424094044457765522115997323431442566665605089914191992259309063163759997845472681700108201492637680992805537626862367849003445836253975637755355952779310530049802976941671365957875238810101049924804830413726507367333614298861679919197105683271657080527418674980161249727399627042389420437806708275878845228457600589305614281556970418999449663716204960841071799747466238541089901326371818126157793791392153459937222887566148648089264109941118602570210123100318128500568996937284483755180933438495849814786196394367376562754357668479641679883840399760885417286766863484694050643533964114399826257100087369192104198249163137579404088731419042465266779637887538245290298088887493550203479751687623832665757307971931327804687582787665922467474707256842177676739186421384470299554645380839902845438257085804189326877092529673065535756530058032311190792822708215102397221330080863919958575167341855351427619015516327557370369906984901328430537908886339539057821964659416351391962223000836833207414443472500252672420027641341844309147720219503774261712332786269626827367438238731292422458489174323365808222136879579663737463113142167175423541950647307720922255413469694473651569830644199060612546119328695740723818660361779240059663663917050633420405544413077847488017253043063712669402792509695227877010192810143507028955318527469914425778309789346469942573370813912387315156375438972252917912100972694516599640443954691896026399516216584320551695513792746522153996535666942043227085863712999857795070926649946999965327362443306903520268929569109044780831472752089912708313321788865200064759018747681031360009089697776040908725571579763998643964268073237104974933604940508213383917021576178408794132325182943430715986657169847826485881462992079711151775891606565062022417042438348609869723495651210091383689568541275770935191468183364691670860637871988938815470558743223376605560853009175186062260740826330766747336841395442900922486483018528300345798582201229879795172293453706563889365704435706281198038358729765739085323328120519724628665224037072086333320916777983855816762981083275705878039556999316653212545148343873154148021117723981477920185701999133476558983962498022907026663198744585847088642180627478642342768675305194772907788954086607677950646104374561646534008910970851554640660795136081512414246853386793603071301773752650233869560693456863125738666662067472059489218375915337446531904271068413389829539357342903500818329100027828084556081674287729668102229057366924823032928469117771031654901743224197469950822268000092355212834276676610803120862238834675753895882288053405247904739504705173930229535398571870226458974915945370674380747070759528634692272142005771233334997372176079204544988082725858205611001905729870626307769693024476602133472125056508887999977714653377005221564406972077485624199132155971012398844951853608864061970363374034792652931152589317548019212444747996050461750047529378814874672816573663807896164711560222097265115620377566376802865546818191090871774956123196600041806924027797184971941283753911091968440311921704456475559052074870593483064172889829417678948524749262675956755592601133293074108985881070905892759887114109028160094103694770057268357265727853357630825091874642908296685135680833966078886131850773062184418506656914827573796912445311757836966398129586499622577956606142207634944129523376385323395631083804201750281933698869269772370447357032321962990990342959994826334430064844306665630938318629040528087429337836305543826658140448169797820666954717432616442167101384614372682786424272643089447540215964358808130277062420074680224170464299805471517487366024532135956928529189443337908909465644816016577317675908244184135565212336062455580474325232963588043603125674851126152828327767186519435903902353909146145758171191170562766366176387821431020546209683986536738475665728553813359152871635042077293066185354456523917552072017604184260972146589351700524583998387150401511134054953608910514548364763947257872703870560010740305968069568080937711369392245098833944446578653938240927585083360864483329145841399186634852370592390944910934727167039523085337476296785889141776133755583280632993893893694267787989403761331003376984995386232737596775484220550146423286987679195773080641231616507595022279163788632373663172863564264705467329535387729962510889439070878228682301068159377273544094771975609049048331820454754362639575696336086264837204678972138132488497536759216369645088712981589012364559558167039882756012066919006725555612266102862843404884728171110356665627519645111180334602241895436421584289071279078031897573869949894275220732397505031180712491147550628964229394421124114196650090486002839996592849292820522809455342338717291640736936693760239068484436183982194016582100719357999669885502635790320926880840733107532238266999479861955081606201025493218087127937704398658689510969766452896925959505661208380317549164004596740166031888948175270308725829169407990730566049411423985480349424224126253909660432035062405729192879645865336654509587147953958079850645897593825463137206553585417352114292357403347789960934381354618463747854787592155478329588534277241209674827638119414814597205634622904872775975068234200310068465757208274945050451752551155550093519087559249897244146397676339532993522104360593833250231423519952199572634818670292242518517204412462767513219406594916129813102577413162707627987480015037245837333336026376983813631189728373856086352980731702987274808539297684267111091725699207749248922957053878081721658005867386320527680749482575908576359862812221401885059836251187630453357896058880269677617591260506700366843064915464725681441925935419544604412174112237455497654336285960541342197827705958102263518456863519830954404711683514546353413386102328724478475149689582480044506391030551655331607501181998452233858450976536054708233377887035372812085489007108752698545409687946399661262833517505800671024884499942082970417393379122143312812168460012987615655788432055318236722418587043281751003359587353587730127283715668909805942440182115444326643558289184021263533901374554932128876417432277540431424051540072035730067107294337531657901686750545647252581394989303812565279750062126827117937964961983012131927115884942471758787911991150351625452838862233536580155711037436679649321819940829469517212578425691478753091733356906613951040069492085773274846196707749507669467034495886229722990850656110705101671904626513043741760365865969941809773034765077575705110928090286374693833207792186650283591228505372003189925264304710164908112521062719674380378618985541500970593660252100174945832920410467657707838994697420451583702467529168901719962680660391506092673582504639614792517034404533444375324747938598196848378710775232323563034126814786435378074021498858049844048907147817912471307147498590368620985581156235290759995617857163878189363254957150049248230915611693768623482681068387402257952490029740357811895571693647493518621285784179622200420528606493827159162279033624607057873266604875927410860509834964558657588887135465884933737743858439044566738748112700331640455875387694703118325225697982557164114197329256727528104171248671355859276163638703499444632413243224435326634594024578028679243737391428255103710359207106691990553751199279132000056907311026242035607972210680488612037742138917557850910510270059364310144268612680990853823432198577185619626202082565236605932882448356774204293263217173086221054004211843671220550737608101723434000494384753866370232986683373686896786538430378342965329214680003616823538510769401351935122012863632682685522437922105541516000262466054871060339160102161236982306493781750500080795389281874529510873172202807563610358895782301671898709166068852678484682382110461072253603493015845493767276452885260512939889132908616334182160675052085382072511984046334034719521356396318191243652848846303248686986672767333543166515032536296438854029651967237411087539255924554109280077623774247139307220733030792992343113589533389567209165498776052809112252968533672099939318543692634468943492573527555087331765015252083471152601242600445234593634105234862527327113052837802439148779605911965847876311549500732226840775916753891753651850413920185475644120593035884688846581884098946474676563788705530760767924081430042374688368954076562887106962330267911022077655296802340733587728377533217239402977879125862394116831928744914931170828963515567623456215075086053369653636797200644902588207139708226095586688958441700335704889608119374867411128615548424210144877141886212116643806135163646308602706611720727395138424748050536306201885086670520657936460398585418470313667703968614501168204166736869712947093984518785534023339984925014542229393540927392485968645676349400277565337303977171149995201737054602213814160941239630974618419945892843482009669647768936563774343288608058391751298869071603492945626900585363825818077674026774889202180143992504704854801870289676430318596119255433542366617939534463155940041858737746782872672148477980289909139902383609618791553011481956921594006169510183254487103467980098914780441084753331136183708215165411120672521583687084466032183373377623172139368555622419411055932482316222569556152420618667560812551563052688663703808933249118135817536445582503731134228993831718952641896856724399681537318104026636957272939679697213132184249814864549795355813212953072679155729013716538484159976019562670053357416606998137245130723888841036402382156432212920149222512519218229107229354718913334920966820290968782035287488756103476797390123000062179124629474771648446823675930933274003909630130972944142872074815835544570349831485774187929418678267819469427886446938989613675028077791989275944527772480227295263339093502196127558645230648703412259674815638318246490592505605037413678307451517021176068935504572053431778244118318158223683257022236211630900338718305733466418702731118885085699193818402302233228980600398506106449325515755020754658476424246275225880639505598978227152460127784946281950831071312312813509759320279393492855003556805897791957638443306794255776409262637098062658675623059703097899643297926404011411754404013745490290378736763288277679847198749561689499122625385804303879671141342668216285420473051005848446941494434545506879574599476674515601143184672074371164978917001305813493234061417683828371002708348604030250986196399228393742837887073101883668843826250852942129348724358144150412214626890570580289404536889868722105746402771785695701287457166832926246251000843412238234074257900956205687045201542971868467706262301051055576778739714753672278255693728763358800457271906942076152031094090621737615248910453972045786117891738704633036466497144071891119483360639984301676629168666621181045920692426903642227518209010520988414077063445324718098438092794388410149262203175189870606400742896386353682434857984470044174935412008410859165938609768811941208090106382871333977454455793918236136868738674605794738652128812000134544311376760889001507243275893106496214730743551994311311517469376984808157015144646337282481535686779855443022578559667694190604389362162545398290405600266642691275793702182817691150238070614768717170607627695567657832272696587643643779453534041681429133369627874138768260205751724722213300608969672970672163220693791103875398302615723626170113469390690711095308371719800304703253094212403451082040605729693279862057915905988148764368385403581050374261615171989733073409755976224814875633423304889705426601853739810724081580400409839157074847467664816695749819604698647426019801131780140835471111708222086056122239614387948362018797446804245277140551722091762586484872971773848702233859353745990167670604862167592511519245998017685743788738970880807204090553288621259058345940231721080193705145439805542873164185832699294466675969823320917569722520656519753473271143226036047356888194709146890391550578150268786103487177608226835988802558671548843053123147471025530775820226588627783119802666049044690228963395020149795888755519296830088527031411835886242348946128643730302648015658376238371482915041582187026927436957532512595349206451649461999856845309656639646445526676943766851643934991103751696966033130490820808235089086612066927544680242010468952132298111631803933597844469687032487960480308966782783492489070800991807916405756115538400886980014950463024363678089065997825737829361822444314153109137025061739017824563367152133574474985331243916332171819860758643510541814843724074848907485762757675122025519611283984343879436691400683612661773188703940303379010208269571605056632604009263803067920159975618034015751715080166243471280919848337405080629376549042641109213784388280010628748422096057961627918753913663176050043760911705895908776755366546328271232720146913124666466066649079301516907863230891302223813713609700364394669264735629180486466315329092863116408894894859347331079345914613103562617559471548536580538909232276838125939798053145412096301415787077850323418557072198169189777200840782457159450543699778498127920164641501029001372026938034387122802477118506425030080031242974881390795571022911789616353848514753310086912532354473515696092131551166650054777197223926003734016913007180997438045706005676458855680389153634811103870512409321583911411018411155347132305236196100665219722901979009202892056474485171734794022123578741326486316853835475133111551226264413558386686915829548831781034228353175798048827190129270005536586000581311821330784718572587854714659525784530218529787599923333045678459232986013271754629045531916379547619014449525628687236131919323624146599579146341220304201994573729097812985221994438515463498480495674875545913562543794781652378670158237605734324173389836678246854077980742248815984489600326249278370071728317341224049962352636522444390413950028107586629070081176442158447441912877750981587285920945835738806437310218095472923587566201355387407850792229187777184395743600367862242248466682439421023730051039926961192843323746310821866882787589418813303291089241440513827919970792460822007754924941037437052804078181120889552257079343965476804640347819683810228913557642384891729462463619819940153095311387562539229126224276053797871741229906085536130679943694244384810686512607751788885076999954225725981118340564212040332502171403968326754667204062464537268933417816727844228705972138294540063887344126784954047865748299657330587741757838176432910839145042547408093534169746242905718366004090044175721837841198243989378739084270843860243101363820811582394090387436870138205030074885009680837532129457141818373877003106004602593034170613323938784949547305145867957003798727750115823692634136508699481381269123318665227032637889527006003610677588720404729222555479761859424118806736439623132137457207357181240802959122012858949035022599183626949163978725940893115874893960522066994355088532615986312121039640271170862855875602851216259852698757812057858618811760932741338664726481802981381900706086958389817500382766076988148243459085924303967531829213896249699492710498775205971301565928928498988699332902059516951920791058287632905359172644008735297266750620475247835425758403831941111048428023268254550869499921850512325825136076320010423428504763382441026309749690458044540457094958620403059341816333371496613371820879955917779288468310946430790457518257005841586034935854365453944348710569697574582498348719216338265657641618054071156252521073968867257134767649510936978373544230929427674165568826153951937400362518981265505461210363886133726482818774589651700810474164027138239410077943923743289515633317628153465957826375437361771266776130643051468320176258812834243088043188965272238673584819523576723906330949987688918852320105311151811110426528222927735739006840321082879836635340043034324140242539041531151327309615882941304353300955328664530109022950949183767415851331991489080358866840355432473697446379940425190878599119388768679803996507934256731673616476282502468596458958221221144482692393684356370766924931532578105250801131821164678794121571844771183778982679879882186127149154900441058785975517672772565885899929205229344254026449449298794942421287819351067229380331094008274299873711987266708263105795505606701874624708343738479942202918830239862338195954584723931909957596000062093961328047798535119372022334812604546122606607952389740319011235755038045133045634652698812028796149212393239457301084023935967145636947220665847277025091706553033906046322391201139198943663226506875323473459509189788642106396214560868045096695638990080327736690506977018161247774998207889598852171423041386305127885465232574796762225115597829689738188069380511681183522822046040411737288120340420068816164475015360420434338773956209624220408802712401944300399286653679826469932031888987374545023819584521614412894883445714467664590987765451015444397048814172631708940451368237793308405388661072562978245625307440084847759975517648855466176477176931478893105580506231768000440185653148546737347241478674468189856510088921977076543945525512188899033626836089290070538515534054211761891725344241689864721119879828310727647554338054048676046969546077962312654213238872526082730228438787704563723469032843874989665545992484508617573876152641728096857067370807508951504981901205695941687434669953891638709992674392055138520705577761950481739225669105041682207874253100747293796993886760414346528635260712931271880670558945144427132901195591021845704215470900188023903657005744183190480790998715419216651186100001798445591296872991760665632298412469733261070095687568254638225241949521783055039553863134386892808436110423625686076740713863570782410161307116317398473527250787564897955591100863204795066567727212696236360143995095330256047138458229639184231748605398359265681097223476563860671322669925398939046759148153407142927511571352575114643388267523952378870673889982934701744886670819635765008535748783718252650817699524251320218505070406633750567434217088886996370932453956800196067500251780451029064535070863871864399673128471451313128895399689342229718290291892573260578222968394682289569759633797010994764618545866616711248671844191939168845335618612552830798851783263344028142146642586077168041652765221095771420916863687111036897979780469077516596159063621107553525196382076943115986497589243666539075701361337919652583153725803370277598904158709064135039080160667777600056981624473628561562382268811080520171551123993936841343471512468896246948817130134054020563713403416184395252591086590942799693283558216068535988349586484392650547008736068216179997906078133541322397531069418850111623081859865550179133549295469575529230987061295987914737938756381120668527866490492789206849276076834081665874504667472130205520375290171975815167173046782284766871746540512691694935251342707219248769671508254915140434342530122840064263967916903550533639176983650817289434675080700333625343975360432801257809079659095909162963013406198894670153297196311200017047604441474938061522064339174569104232130607280954713722311853397129332495219659639758831638495966067151749740649191460812167275146714461910970956936646996027244204570700526928977852757830654280020457607514198058320750400250926225867235881500123073831950005378775740454737237748139135067236351542918123430409572836776742232036098556183881186900046452840927144942420562249952728772490724521611701290494061642239229858258491338976768389603011083577876135943284724256411935261976047221247790961044113609623060649233957647221967603722644368522934855049314622612390388851835509404336493916935332310433604742419505965720881622293290195298139668893453430845408088815276531548663798937840059984261499395179602042179548908150345111681308846083196138120474858588984931081464853757941426600605305374843581840453623941711706267510520256090374685532942122130781450857978270587150862563929723688373302130186203400136141445229693470026888681267563969857457578052880726318092507203558236004482912356953142727069556627668594678913093392227019676774483569409525953217387334137180386893624405405219887652190540066542276223244298713378195497798454206626413111173832683456547597024402997818988174104861019088941752603532687650688107702159964701608405624695596848508831289370926081373666346800732402197155962310577305853031760309080541762183954156391030324488631537615774266911364045374024252753939220666060413478881494273978328350791878145672575199610056427367184852145874397173642589582638415528139600795640854664785314461960854508662787174914373038297897589257065500213870890425510868487126080613826507835103788599440633989218532164283936238698039100108375705664683370255055595850069797079123615299634501072731084333193637549172131787215093046881138707849942910838750073386373644213179747381301784069979374765804609016634941221827405985419738570097126337280084194303710946860265113877112168796998502009762715637772954773168825546444301681145981940022843893993237649516264334339304087831278881306937776076397408106981076919498750352191274343436503546772709174635662986581767886749798404794380354203597588853558247620939273786970542780956692794241243674747322125742978501276363247660315354429784398407003859411854842370035960471535894027793424593862528413253102743431483657746947613674118266602415215986877956899515856603091305343067357692134380250937355254769413837457960945203749073790093133734025769488084095677522906468123272889874808374229764773368332483107171998195660835867297577693717014633793917234253704479664375034309948061816095889852217514515380441325107688304212148992423931093410606715893877436667299648582183262597303817436762719506700488926710336112189252996457158191308884031200626675900538195710866173266843141215062358870036081271240965540929453571206126844423535275857548339623285975391998042792833126327920139588160329272909790566880351638592946436362679236288515327573249978287427817184507111437216825215643814142109960716956623504214083346058628406660722183945897212433691004516717740587665394721406753170090259834051295228769825786389516159342596916003033151934286190933089355755285131832506990586916239359078648260030615800565403428588352099314253289786845056193586324099664156525606507273195560959757401861848820751869378836389381129359983059179003135492351618948328664261061793547714235117621714980327636611978966373761223222208523930782580544483355194966304870312380046240363177679980723440837999706452472625435546102177459513734284002745649173739594587843457444842755756328534054358647817815980777536398209420118391474062852055636804398377154557621472217691338773507525980889024801724484822649907451669678984411772603230326659966011809861721491669590847712915355371500251147709239637687358921811762435737861057460216647250553166144705684459352095772447774343267396093298793017513602535252021937517952297534330136890036375057500703766468168028217924972322654738902945938635337192618008088700631303486719642831704839740119231859497756095652060406528577163694400555781258158043003052301123045812005093989843737525521044541585910983869026000613911225711022757216549102412448883431322400656205101274243860627409224941368269963679618605114932687789357330632768368438212364765880780465356510678519606920060933843607778981068401884065908967485416699730701388118011436439100329498364515814961547830347775494536235681770871107964445768694735796078923068463697989712083597066017211910984326068464939959121421158709215433105667342557071407410900574249735227824900247945180468746846893571595746453306530318183356916566622824225619777517030498263988716620400317216115224618545615825049863350859412888331941666154147860845049060111746535614816055855359289921113908625797464275830816060222907611647665442691544722491248862552957923420899608487179860304484180407592060344132709918997126388800404985372186147052378917967007062680060396985024266247830145948968061534128549668254195020205253721171059924474977609565768359365942853629684156603872457957208767829332655794526383896903353776020673550242326737544023104443166697634743810949458413223716230633752257848371529197371480809469497434218270645970169956195475710970223261747537890116508869179034568909348921658724773515574802960719094851234958565749174516210645701637480874928251459026552952541058831072901247395744270321999482517986361826007535292689503643354759748515193464748011188255284306967112531690924373061258255233867058722424983993544507734570616939805046435387611374417017607627955416154434516325207239230580010540742653915252186401107845077165793325493865167252616592020820924939751675594253266297178726656954085794717439656238679643935529170816291340267767475672537530348191729469443444786441987055977821294774255002356364801379771737099477084658997789617251150610668670641796704182238782599381461169438819544561182289820657804304218081226384196306356598174210298727653010641291544826003234637915200906195636084404994021324124353441810046250134950603660290590697905794998634291192762818707482767829959476121461769884137398368118416728003681251569113440664852088790940673065542433750326669745173168051608225996315580586673362476911291401896030514509292160982087744628950416006898306219836821900607439226690785835302254284520891586075343985732899463958560137656653448798838560340808294618865077003031873151602346644163165140322581847925196316208093733315139789355801583756744116308085925852941150559241672308426292010293911342207677090574107230083447840585984509434331352940141576607850476401302471958262382776570905748066880888823019346112363167984255474722592885763506660110176918185004552148347363056257031057181511959407436930927272638462176991340472663345197714867874301186344969976340436379458583691917545533631770288257228203754102600905571191614858054537514498434681317573914382726484012177066022059378482894651774943972542786632647794005051853614479311340645435792277883602153425861486065381961291977372341445950729827569667286042959043028294911522451357463507088642059427623976772242784386374033413123130046428692911098058272642082987360229283456961494158989115877198919306627860013310729605721015142480062757326472888000228275031835561170911567752593877678885460975061081399575055009506881093710571533884735387135367357619669662171235142801398465798145315834455386913422164804825673707180791526663118353512235633501380806585841529364405597388561848316633340354934350966922286714777159693393685706650754110723475848324363680668264332185531503667779692365656569996369710230223149833808704992187513726567586707434178287974289536596963502645582917443558278430419787540687285085883351663825014448036040237322580538418750865515376561399916120752808776594174322009146400348837907231274285689805442732190558403760851680211604065297631958520079139066265310810875217086453374543145985455401608602981770754475552811653614497027635691855935146071196490626035651030517208791403463817720016577468116439289019206796634886789217510403159903326964634681680404824923484718416398855236624646148152247565197129147378460061376742211128627651288097314823089383680283196572808218346989922653163527088689176121387675955448297663777862797903985235955941897901091077918113112166621662799817142631136201766281145805507972382693760787072086180885307430511159296431378328254344957308434723295179934894277218470550227960575343748588662714292601303127271492312739873077753777137669722781192005732956559353028414444460814819090702797459188333116750828026177815564341028050568206950244537062667388047284728949957927803351616102782254794004250606587222526578287420935461109734163421413688782120550205163182221183136033856308039175620235707411876453673528526943518131361384012293615615641263744414564555839039203239580584933806629887301800306076719348035487553957124728146960069302317530696528862566851675734955941071907070768284722568396743391687818137953221429797738218206284786562394958715132371215275737639707712334888278598085444781047888242655492985708587815055798796936611606336063890363224083189843455130837050962695511476903813342771625842560357936498105766755201887924148728822141934034202755338378403995914566880214928252379674678843169008547277888941401145221276313151631387151086553124359731258408658184737721782184136971561367463069017039857658927754222595604093685769728856196430272411875309650804171094627962514365185566928918645657018145062673310574700908124335473154646019310959662499912435513608186562584871111323026918973358858154231336201232735602619114407472837763156584522400528908352019173292637471302024336196206984218333621908246509609117690455406649540941886579480125328621789676080936820464212298406619881893352751762385430421011891480913432339468578523045415849309487024144691645867670035273489142298158552971096354008441754858019952805121042308272683963440580743254744383433538983682590681687484430222587775675032317372564186509074068245246776659717608294207916238082175277584936029060240435550671833716996804797388407237182219323161870439151577632129966715154451954294008058317457982282816135136372291180753135239296776175942759912568036201354279589732276973882283898554831310389592837219583549174201170517979661699179951203369283040149058023220307979526549443476957368220263972432846119794865342114447544327936537961160779383836157311736301017980384826858213427628988138865866122104341893508975316447836076475261774347051064859231956449514189111542712348052123035424109029146581267617208530545573168665128581150662421301262714552848594818296953329933097775976921448779758288090125219590194958096590384703331396461393870922692431187373689541426116961046443932400704528434111548204067944627179578702999488076200107152429488564251430120211735786975878775727220128343355660467796879273312725849732657808860443485388804941842412269095345819869127336248098360435858996732967311851393674444141459704212452216654212657453742296921568193284949760151768029545853432069990949467130027934676421849505169170913182314348081035870428606422892598560209985748143708335994806100640865177486672702854689443847528130475889696193028234228611402545697291591225628580218012355079850733308809136751080482835200737626155245500589575574468344140539139357285735101752391863461632608190608635907045300035758082914200363229488061875333382872130917017689062706973049789183293487059098752900577959164040295047055518939569645089011411870071109921689501432840702789708841913987884500836929980096724451626667011601749753665101963209816283637862998247896510499145990523274243673713517634962360128671087953990384523572903091273057993163958784692297794355571421969663951574800224165958935449264958764360917306288769656368497320795287025153823332984741226585941276223065083664919603909901929484728701487704925221640124663398589524144132480055986754895785675314557486118024908223567248524481500949548864050613374858749718877935150275562054966744557697663032742492586218185609051101441050216768100455482183151865387319218054276716860120473588480637874156082710390275489025672714278608685891317946755846588183394367036864056734236524342525153473838822699954160581806821499209864076659076841173388322391904969893873423827281257048965499762176887089421477449579123226779819427826775657839243465928305762674263516885313681272313038418099454472562497233829340139609288517881314372539497317320297974119270573131254853066497549052815043002703410871378605158031059746824417510965518549369760276332690704829367854019777832294784660560264667032819932738080730842714418627950176970093763095982176195530246701706572887608801064037002708861605661284181618787614728058601257003809674989279013432741836090203743576552922023024375384765526079104999235109973908196108417320282880335522416068949187160791390339270125900130021900423203600574454648013165375258912192653886874913270087524403195406180663313419998283573529261748613421113752013412202930192594163797819685003314106293768498396344351538466227873252848213995164479947446664786632923674665533583587871038212765233831005869458331054139994079257204916668707207188400679289950754656426596749978278912000202937373539963427917716023200016582307088931114285551091828828383314508965616970194289815345628906753893409377748782763515909286514787984647929823800509093906704086941467910279495568290957428995905433115387954558805539313482823499255962729691196155175274041895132916403936335147499848003044606161296953244984095956667254886440798823354942906719326895957708712173313951304464114075570386250506597602051513543657181742917796767177505304456500715885627256674699537246819041739749441808696471411952179075357328476476597736225331182905985815589189201811892481535501105806886573331008900460741472895089366211557928835809693183970310184749807323112287483647933548172859664266444709069336932627101524334338103393035337645034652792267098884701329324291030398793767498450125235188947541689828977136128009910769653641397137623763044151025645216336377809280175594461676832998713843001255929712521261654460176614877776416126886970808149679346712073723841559418711888193247884224141053220300770518513202053383884832747035954163974922105151613003745495125464446034271515132605637086563422576797091792335239703315635602801237742458505067428787062596653764477753349052523514911882609967934780490008123334303597190654330743532558676368103430780711698876036491171948865802055604573891503234902046942495783179538995352278954657256740200641869929890378367245755306130737846573250101922190660654982660333558399295741209562626830600662986956505286690180007288511773462054171898118743466663327623277315180180926495958494323693386266020988203756158944462477560861420523598861655234394980543391619554478248389444764125281177353116945812533707170371174285491369424180893006043856536661578700520102276958187901412587585818555800832941812205461146407027253360764734715562747083280520514289707300095572730090073007726116783611142523152011756444607433715075774605940481871016724918542035907916596445198910071992698385797897802625717472019765517930647693427099225797044005068989708183780720851771001682190831014748178172318238187664086922446343039024623524668823003881719953405464436295496715906516910679447351985420636172965249038747106121764583627509705150925956965094091726145762628473975435459058568989087679606833133743760250516762975109100629189986623633382809541224917624664944896270453756156406745582537581217222481750881601475701996242753619942888846901408124576053685827542675220835763486683321840744820301769198575080148155341847871682111160975365573363721171320371152719385486137715520424143709990366509233996733179168579606459824315122486457620553793294854200917563995829443112918117365454080747361862499562847083433475590214970441073967926718885394510191181588265724013079454253213552658959905455548094785926288729915916430397230996000731618607784645184405624062932104348257961232730973619412672363163079962880694131753380525869142402850426642429140780268648867632024406785703648892625482888307687456170105706550111733609433543987657695088686681792051307294401839984099372794871204920732459202445867739533978948527234170978294081600570822292535695489348945480029076261319313090908022587893374837064718529839511681336518099012487836031268699766155639763168778967638184446235939202729492538527902730192950425250213597080085685574891410062219113787308444451903273621617196828294695207117464978120013808404791196874150512737747009300733239255900087957904803841918394997298886585725707880999300054155841628975473006006493533285054982516538142348227955465184199251283603103310370214322711756207088408603162417732157632243502578006368194898404235397845578114927864214382133752230002953390302681055621153275347391053918091559763484549467903890785739862642646109640012326143328767316527673847651945735243991572884443063414772461959119925997230677146944380974200666065286265024248643706236706729609957550050041250947752013802672252719239568043609764727871375872706788978155654050770509882839288844920542867717805854877501242502671815940990126424715354464817261901441412116643393981943556595583815937270836826699165988931457398191432845194010880048264452455210786398094915057508087657264228030217780772801376202566245125735708747596832612361130748904979584908573160248195681085761857660824099166909664128782705712299035692888888378868043236500340013336634161508076532346022980553756001863957809013992537641053994908628428633960848219033243460634425982214414491545243908805087589652327162665894249921043630947293132022469121930953493204478315995602421914826198935216205371883970546709884896265073829132455951484749833484208792284923274430451361081308026837645133526187183429887340742353603305394284092617860497751321455337571495803551238578948614199348386933843785749877125195725566202224889902264595699413151918306356493546876979640493038129207589166840012599814478754249590950887580860087606390623382888160655472618506111179836380040505447293032432337294075665937232324806685670561411434149607038101025859576997339332689647925330111714434362765057689495064755365793054180827348174007002248726653685540373993249777497591955418425915439475556609823108531371562958230533991027500601928430828218940865305352381054051902843570594701136763751064582668479087574184503998222101899249178750353928505147587632316867570377108757612981928694494348085855241546617075948249717505035236135903865844065301655766077263161370151127107747491249561312646616611212774428323715797775350482452148514747369800063022562595703098596293199109200543623832742988806279236462606164322556182256175942941198431065646975312169525493068692551698190772930260129295422898212351937077666211750889605206721351941225259123957943679121076178061600902950910005391794364032829640281403331314743513254832541066705534830172100332950210697335825088911488322289837634574208883623522629698466721702403656249323898856283003931487387077111333312682327302418373954839238300040059717477270612704533896900320397689807975041644263673599379079431564447422639321631907556468728689382591494287859709683301576992509960266663910588269196669572801942867132701225217465785481378269148392706526293024416850140588091629145370486291399778944854820603989876740035635098762630957115197938187261294988910367842582528380901182076227804205401138618583804269204713197773128799993520880679061926322827864068280584487518446681835958396354790219070282790448046250492318170026735310147734127756621959461791018229814323820108887235065989071986119164222231279544169558337047570724901633682757215660840026539384561477919872091863461506167454555831744068157306482372832052586599769056926348057087914767541820918265240528748907436364393369483624183727010603127679604168677198900617645416189687341667070483460638420950057455417347845833525425496983447036637930042739650894063276814433834805405641232571413001835589225887026289547341534982131730679353096689535973341513393060532567658959377525232172910318825170343215572199897168177516538630043518973116324540440319726854744993250472301015785436747055495673438118177612374191013912186369726518650568426908485780319137379887460652210620339881758567355682725190862764075505697999614770419495282110545765916070334056059844861468050385033822985650597940950794773150260375122258654563097783229763245016386946817751735781764515721469193752869796179564642852951512501991622040475755878273263062640430975040208751526005240447512855009116388025809305876999209354609627789566127711216541648662178341973377813874860966730572599362056864616100679236348363347563759912974173972444147601525930642831046598890374788444712473713782009742753388664640743855446772918335516286630311238224812520500762641594873492086012640320443962234872629456981583412687839321888439738240494834774288875420916633047598898971375112578661647497976150377835033768315107714311258043086388311806021862561001280080940332038532326725575677278957466027625311686716959075784049744739602894011502136960694335856187119146067033750621037715793067032120463556673939330377885666605251650036043792352106693095477900712502725384285203232885941799244305398247095512036542784873686988499613862048671662650026640744603933322084001484157184098508175686343731213456859956666161231355375530090260345671889644917470744768211481670247127053818708805592394087925748824151803807547098177453999720411970307568940972396537024948823021750200762233405266296173267484548028378827682331536192251587563387061184215999408221808472316528687685783212496008614894554328110878351264690365244902812278221468658903280327970656904138079699977955561827057226154148040928577391069476000533886757641549204400023766398608954877781638249010083029919924729164695891958814976499389196589217864329835992653433647176095186532756784452996188282350671554555211582444414817103084884895215671034082829564469270297441509768751714296123099899221094354442395835386330142535582341207116017834052243641305952686997336839684764969521407309275274218764345983855918585727240583249094604029685141413461748961331576259654341004638578447214361641415079685852058202701191480432474767784257345067072788135189215517946840494591109002607607421348034871957792593953308738390958449010977862786995241460436278486721588466424034953884728888043542709592284704703084387346570566051964924927592295366453541291236261056970605115717188468492300335686069202901323012345777101767699301196953272883658646781851763368357591661844584013261279534318346755937278603327727456147688566422220620952363412766594682165780340600317734184169469403102782967930875501558039423943578731680620755112898758878920672555546589139399740048918947832982389488082304111655775925637947376321413376811681883035276767038388262713606655987641752246785055169171244975481895060194660618044523867133633652668980712882964752058790195260132524008066137238632649407072813448639064594011501970021818441866919425425667230346016517282050925750586349314780424220761112278308089268658405678365915559562501892932390310831554754943805554665998398848636232475081853746507186592914736377923088864224548179872423057502020529646605771625085087292401490609970719076457250415887632170268944166728092456281378504401869881753855867543424747892605776773408562729972733481770711060948926575081377904544829604248113449100765014653338427508496366353711151447507030597788993874159966137327231940797284787010516853172180835181759237683389327335558297375026710596886932339311472014932023694105497335605895863910399368116696790002573360142764450616328953786706738907671612973634827310546810436532993622593582235583719025202709943090641215645481754769903284995330354862977111779389836203979741442862962382814101140298191555544882078525050521588234523925355020346727086457267833035442601693186155459788728270951795478374531952277828685830054771271528184570019009730669903134873682133588324092173094792269184296422612758948333569892542936998356129732503042948196300112908212846348103879286778976151609439020968052505587671581078880542239392190383508644337378848311741064049616507324585037251875810338968410668842252826191965532768472849823996480433364953862857944108754304956577300872581616278697640366444045624538578003377501631397609379191208294943143329321934184244144873594923973674313468499737215733169605855939418644145502294821807531459783542539888634323720312839390532236479258805257084580810958100564980386821937709855646393434779210959324616328683691946369811652843092631966271124749721232709160254128017271923553459713404125956319439534410989291418781961688746545761074734593612135152739556408627399045750449245973233306955920944104087882260912584895077283921051070091297596184351565382817329916441585155017126996412659104377698766077700559745841342671795955458861553542462295304515084309506799788188315059839234074144135794729079887722928597810942819004172533775049975499722192084405395785565887551952618336137967861918530708453433128483921208057664852103887422511384318527967570890059774248154836138743997684134284266230355402766825416827079212792674263112328413160291904370742627288089729688127802317270287655647919745937434350963411683659561194056564553964184675061146742708178144293288397175850384758205894427066223320479501775437644840819091419481431007095701455684424031142653523522500415602112220633457387181503916405299254457509195789875671118186992111547431693419773540928522283659333978294618802321919125508120129388980849689456438167549200109302904754808367102859921291780584370118225253585549776226735043341005890196544622329967783068801540099224141496195383488526079176533419055835796345811288996527620487213687636836773648206395766322403129878120805271563227188364311263812336450226760386841184931864990591189282539332430035106479171584057435472855579720641893030359059236529993979634033372139042380768650708718416975187670200282666382251807616616666827875343082008847137212517413042308919089995771097806321334229699878172480614753335104006710595118299485455338245450736032680870032287426971178020716180264876263316901502276713962751342948780901028244806808444774221011877465747790612044667920353457540330087169477807719523280884877575064273785406476617806580755473238115016006526604589368626114395789629205287807293415211764237232902871323799570298871324005310923631496288424202362645032830998186521795807222524947253486572977763072031774094333622571119455343992659640828227002695599405448168493884855095878044331684556524296905130447151157729591099346519719635763478290558878551134541445746093630037715179868510015437729124337043240298513797084173898999120039967775573004131271972049318359992917957676663405139736136493735773876006434304772852195296126229052033365533527651471104031090930889678213556359996122793612249415724650770283765507777507882255272777803774973581660544851625284330775396544216960424987220779177963763300506159543995205469617547095533603751465911411558043431133453655419740810272461915050989419427044233950540448225162682892848931571943861040412181243334412328375429001326317320528049594931240929320032586771592283162059423090741046803924088553887835189653662219404686489976369206500788533066144616501597277273139032287811535625712254721065106489885890513293643196191857168085644919522743340384613653284645901749446319423209929187905798231157468727072569324022518497867374532198887965077882307924718508614694128772156943619208317402907467339793902856426455160712541320133544585295276811588320958448258201274644948186106751369451464758153123147222710994613730575814575078847004422613436372683521918804478999841555100262355869338344403402355290245521134854589501551128544576064007321414222426929952599200026844843521576916418665342288128583144123934623497343841359250288088110422890809702770232580936763792130584542117340764739408579702942554471041921183666883356126645222448976044134581697697806879697310010695625546664783796882376557830490316114763713968352370635046558557036275468377117723902402663063302318348394859301039571034316680506809524474161141256799176545790213005916418108861895509214939142665899474439152400979346812684376006471706716149293587893445537603477713451540307881538222879432417116694915483201018570802441615405778452814737697723491478118945767340477010450104763766758084782320463829831036974583600054204651460494876986872093620360791794952923256508511322224894811434458556097144573097147233782506469927250212233482553285961895529431903665790613193255693760444389319505249103547958409055189408374038296630617267616375694282343451019342356906517234403282803304152695893848903138225672854854282928544573116688101984579368069448113451133693315744243486062535615395421718112954553644536529847732424094063742162586952501093322030611699379309956110141956854013861349453609455356381417969565612265555184471374373534447185057252001531983595680540844663930138820612414829038556146201923901202435487872546504420174340544611013983719936697968188514149567292879140253764565946578833999902763857130274195304830827223627175164101465166187873128203352166546557939667955109618795140650897779749884290984725564216118005351876377631893447426726547273089914887606055050741769807099338025490116517546076830597942426874894536297774020415157039619746314264820203312408171363493428977614723077953778190194368639858041311668175175511198460680628422813568846444098724570829786929699451913143892112355996234906297412012684604144028189142191193973235902896787831293659866926127620078196240368026677885152653021150343082364001456311071447012584744505259207753279816248519975675113526002624561539110835945081544900516479141417725748936179645060074612480601508050872411745130062215346638429262883511766768768034213207721699215730335676089201309732795718646161541009583479815039770281990682057911321388159144596176758176265976417298252530954683380937814576155408581105413987185401325065406017081949420793266962273793855257812784382500480709442345786405032786367621150253518212701736558318804495692815787329909014350471944070181455540854326583184434094392970230888409966668255770329233205424364358445305221778254525148639485737469918739514203213446330238813181705711964496437595400779112172652099441502363787440114696747567505968717066194401319237830688772164838759105943372360689568958590452285596284086227238817711186193814001202989513433137122218759348077000471700393984828437303562069300209636567210526849738241285073324508138046043512095514371586689969140347139706489876370243900769609597382299583461825615976504842705577499657272202114428734261924474728465482040605341181512503506333069934256539937707366388649709544003936988457584890926066655545280831846211021580678197859926863648022573708433958558622015076940729652719751808195952593948267126448393422233696370693221014079047058798079740404427297662555153482453323569558973769806545011015743973290521032309478261631213545558814015082034587149436493570812180053556752718688062050926439487447286158471811659985845792265673393748269257702155347538166018584171523501233927540891456578244059890826116095830587620207035341788538674106344069806314278546759059988756385245780531750159825067291764509475023791857415954848873584943621824542266683338618420886453683757848768012116182316931002612407852524066236724025708360472923074953824122567558242902722981338775736812584158650798484939786705366595481418353119686901103913293403494996384688820953973444918361776257374667900925676525183771772487199025190038466285187976195539241942607159448569014684205120402334870995329507725197300253710524196048281466067474019202939479810486069391319474340917213793201453730150451956824578913568384183835029085717194579012965372216066568439705989289743409639179080808658809905805283720419031388833198066759579582226631668607751153909500013204916808237918045469226611510753201805090627829042800687867060675621186648870970783996899678770760298336815305226072113260246882115559644607787986716024795772927503621906477751026549725787895777521905324878937483085562472443124432017352445510622540197264980073161278600969374301080842550452892019635968681511183247272069770414545337289253074640976179459604000795779506073213925272124376153898174551891722720045266726072986193084448462698654665105986420714895742136019027868317425415871094068804184380108918342948268345071778831882392107201166519802156969308440935505324191143931954159327325707299957329143973910319083234591683644882718725386213470856073096612146632877049512737319721852773593593239982108179719999449232997924341771958685003856892313774957355091550973187464860206123731611295571794761617133414403236668455504134917838827158189684861298542470203649615001375397542293350881712524853906747340164733075472324534217968104651775524334543701164724832464938678500021851890970443421386445918898420702687487785211067200546517175408630067404992781365966152986694304823065385497057744099056097344947687581802228648383669048487729569574389804589684996432876689610624609595751253265824220166113528309993794188860276580198494746375335411542529020855411741593758760671425396424505240213029940457425784665495356456658798422801324810451041086323772946845219216968875020296661547546559989857790869670105683702729448385805613527854526637490128952442222897121839525259820223478185873039468548147849709547243620436475247491456867479092489207479557343063063911581170222410772050045141311478410703342146573124570296622763345393404073563844030636184828294560109529389085297681544762274304634683518324788224873740189101582985588554299696397968019017975889952052863421929775084922807598086890752230416379476826652098741643024765786327266331455387350339195194761654796499744152186048331743762874533292931639020214521914079352838302980182642208987544166840590284200056508954875286224862139053558014340771918336614468646467569833910577090983707359576638277949967102226878928065267707907804705336909564872809128582765608534868958554939430966204819668452529394049215996957652592314629154304727709190499187946495462551933567293719279559447927270096173050871632329284334074527900874975158793098052464911822128754100570340785280487771117152171112518023067928049213558237412842826339002746461136278155785169001998721326610047251802945039609343349221161968131319801987134970577806039816233115688957372691176182363148136915579540448095786568472169719879614667743766163628340146686592452278695647234308638284395629162739359249641153577483875497258262392213501011220853318815373649400183250091005077221178279436992210126380733009782448931272094259446650543446701606712880874156032025436791359535270982470433952156182187102922036197950474177188789926241368021585489003282826065695397763450740518177356598142892223363814726650727056634752990499986221914758029607182608099379388876885389417086145922188462687498452015915968794740395303073542264497402498124463012271098472604603838525923367378957396447235564029194103684007311276527061080166179372089238380882333579850733346200770451992570961768176304393838764613661609761671568088269960390269118068917766329993970351011842284105455451829076087354718086899834540477952188627700400732119262304343848391171559958319106850970523826374509704105408406569765034212324628203618428659144873217381975481419923686666729557707246609845533376794957850535912809885857596632596477720544502866754067807474392342540979856005273978011831715414274052107146640184843674446689924680517896920340015402875723257404327956491290329771700593544251404141780228184855557609531320117689156149103201477556589690151999068875132026953685656241011265109649374886853282347854257335370235755272316503541283273005643176175041135824486721702270546420376034502914269454222302587863249796996554675701711155723433895479141568065790345878749335392940081347400032221000409011471006118247790851803889519254427530166476912882572855227036531290050339029866946366378683630880662437521095406292026834291085335141152158558692893026342936782971686437274098366003642360647791198360708443045213185587458800799657546581638295258095125262879856391864852166179204402702164917598483896863779580176991565348101200267405416175845449601091703595153638517526564149613240374540511878364394637640747080899885829593935523342258905573285482960960108216414393779896087771608321159787281152983922649592892075825206397351798314977241928481340124197091922463684109546993892583365928265916930216631950029612543303502341500249674162173392172482315841980995605450080794679351771066617631808856227482373402489515757814748054165732009151447603272484692175019947423839286183622759587450516923115203059268934208213326254580798275217825743641365698037551987335388571414392102488068949504736581857596333760476375637728098253409370441071101000117558078539439671802819026382822010607323999172329037525751088060548992219595820751048226866113223618145410834039529890562848711613644352306781872428016955576516480873223390215790021348298309647086109149420364993692878963966965062299539429591548617283634453832037200899209745479247392336247262454030626544395251218572500657938674805804966744423584882804026058405649745902052906768957752672520182372807398377280192020775176301554423799810532424227975762776493328441909152100369675461623840631453545285454391970477871081128434777736320125369666546665819237236688280746399674202166361446754166225714377403664181131860724943119324995878071073305689512191795887255183971399028689494525037596524216095888608044856868077359050498806154020226004253022781189463969336045328365018692461297676749010372082586034634399171132271593410724780485859867044876763372713095928795010853933284433253623158424351358863838718529978207044728412709780208153791444493873183606178765218782430203821734257339060054555299544070518752387033332050875263055954370418349909839746383511782084947449292600285413769666434536593889353795756077391354712792852198635576326314704169984814946051326171887243993376020509847348227818931866204382692506762963928699336798762570287048220030946415838111049326548394294301471686597871035707602149812259468864719773519031374503285410016843748420568318458499301502112323318118421322914657307354958502590906346397797281921144472903743725863785739067536317330332584999902696234787643217219800896310259531264451351190494794508979936506467999067375993020638335796418118476675708564668045143143933062762151283139787908934767495865009541729471727823270413683863091688628146373194846974582712845517300843487321847969063678768602971841892609387908020549789589511672784541484182414432121388533091384517075478834180136186841431983364437366504530175425997027810965701732674961176806688426527990529921010965711199965049027737313299865176849663096454079903677870142862316385908258545643562916305227014210814826591700893086693925782592824701730840895148086852924051757443001664397283206897050160622654582210801495621723239006499887401823222921360568480049651893059521020402076538409089048795499830705736319553290664745278705770892784749753195818065141535180023662187042345411483525519862491597928760529867404836907168708446458743895598257160392861956672919097016500581680954180194657433770668620093248886225446260526353560435118401616501049424254253313268032904084003406072513416338609467413872154677305504526204360335889605525049191465828105727454501085582075228071665048725427524024717957575726110632713420327387713980581631422333186847165644459727716370858865913985990479879826612387950212117269027982922641058307774569534203992232231802088551683831476628550553423643776473833386673308698352576145090524114760006856922890101380582374906325354657026523747516161362857179572819468570818992151070138813359022490378942662204218578189377485558182590769686505980729653150335839619315609031763489887600749642475955517992168918060684334578741574480638396452094020424622302502847346131066591623713165738698740702628616368362904323863882495471398698552425250941772606001348746885416391434800863158547425745326168573441602406506254085377343137530705965257527999353596486247582356939258805292741721577805499697251460974686216699165657919347452278811788434045808035945091051500412923995788319542960089598830274868864729760872697964749808850071716311442577831962527713062625959708499509785418969596739636491444896161626947003767225987131711419194612528915866739922011093839659873976370964127171025200713902057186660376024428476971487184806241227178227592238933538079302232991312953980756764125798513040733412278111334251479852307391814952163704781916311915716293554925411997398565916494798510557242953931699677923570513745471943707250060568367395925278368504265176383913893552809331833521221771746862995485397678223394006234952255274928857585318751471320551926914097286052764794050154029799638267431364232034328963478416652899820309776977677665366579280916276534220058561492273449748108278695235441570039705027612127856493894034367595532834933630071902087437914849210198509218039196868765628249715250258974028155701915452681085993398874366674124100787044982900277288811897920004061593145833710539902926343638714464357707307272663453871473449717389268089621998109499797349748247156435368374408512263896463841109046818405339354029568630137720025710328856727536902817984727302705280571983645983186633128639055569903114195177987177832735817034523403907876931754901440809927407650960459482793126365884549113372542664579791446297856155006091334558445206841326862672739597234650559337089074938199810184238221142304073251955502180490928238838279135630702304111761839731592441556441714748477533837429109396520144346264525610467173777515024080594503059479785617580791153720924323348667664027921782250019530272152498475795337985132963497975240307775264979733195063569114027184994798853937022074859376717767485898028281742168935559216227427252733921332467106197356047262588815947205758906312912551946920192603605614887477631735835944759579472080657088957041649836664651214207376960721271172683110903411267670354805858463660243521678268839365376881000844552039882139933182598394882601976263077716333287947030238691292273933836596686361014286458277050861083399835795285487939187903046593863045076655046262421504092136392506953264257626543423480677136421945919533016962344109346941471959466280346209384479166036509927664878875133138931525755895255563022117716275914504848316078077757447488515639033508175893562176060535018025271413279904356275411987076356189802094943176402193270037209399871758636066935525676555487955889265530516091020932294030308177337422878128890237687352655968255827118165358529749678649150752641556578670197855708412926650374036729413375961678701174769977353854729056231795449130015821681972862994507891825329099956252442240631219099361465959155578466472886583374876527588766246832191045430881300921578777188264375404075692112148988467226368841373888129208881211036195518350450786431322052978341008138609475305152109216587852784614976141377529981938914807268710841797352747843411114923455128929218355717408976378022083888403207596175015519262787174523263103172084509229705960255337667638626013229776032555684683951848835589629224482868185052494258131525836520410886511270979935802053229816533671018549234118036949692562680371830655484563159076348782521521200319629206805737434429247264615555865961472212488035573070459862110106072449421762256086634271428276832428254206144930390069596596469666510051176061004450968656496346549266508989565067419665048145873841993025722048066567903353379376540476226177476659632154902359518079322379076123480341897170589692671710790522772097147430388086686342000821352698210884652798145088174252408292842295207669946655601933443009526491255810904123386212893234072455183676715438371528466427952084457884262056240810605150997868518531382853320666803362017604763341572648059314154707571731938388429097305102030563104537229131135974231040058649339798114547289716714073339217606535484659006789475337704918194727732206480327213180370364717761610084161891763996013364338413926487377192096094150660080128585557153353926531095691990159519486951404351230986808575234965271489518360512047960218506957373913171957491494958083523125877510779951992859235105942889671094660076885247256820106437412635652901158546807736185769815948250888189393114005014021455976923577620117492271820957930308597389058485072122276227397390255836363233168324822488097808667872447113299904648348274937475698181559611206103951201331576980419789325674955810339484506708232995922695247108186549888770015633276199858693241140477632173274561894014884973226938461604983974242614745849072721968264875415363970307796385897928247865995798420821582404189335883596206677725040443933729890207155120530279676322591181369645350199620141601304000984952417157544840642792909843854577485278293073025872870575978363276043647545945044451593175291433439335884405816092944084607943603151627249146734609247384361007087695315508735731637320530212762170103057787284062769972461358306283088467522172056402396557884906589829867808365410453163948164230344861394673124513652577299315027420934040529036706531591925016641668575660912576274807778752763694992053343695667475033731122871404400612046268142497638795760849508080278895534244688366923056682051357942462898488815313046416681977999866523437451678305544400456321438568475395491377656451165173160123592770373135200565962963207814423230282694057662922576712732065836032236389079347282824990196627407207330559717476924612584858614197095864625867548085550929660775445744057896828479288302987591512416883624878036962804209205886078486293048708888579220947036032841909070408457899666079697934250657206324378192199774220652021494250718514331592524847593750766724136763041030922418359850051183959258641427320500922179745202207452141902637181239047679668894483222632367183191870133003204271040314634001112130530449177956639979976288115960000136236717806605705307970632237153798500632071876818706511638534248667428935088087361857639850609777178439915589369008162931685298277054765597195604922660143885007694591242765453225780878876710719608900234416856746236396404736393359611161536134382014455609827096676109116561630563500953466694631756638003405447079861068031479912020576279176453021534896410626599340376409664280778430470720496237730142315207661353531199838431017268068373277246157860258486343604480902409588910737173576319914718377262073526369954038777293677375961213492103500855046814986726699798520664263428334840726137623650187191492989674912666280316832225077927770039131402578298516759589189506684249824388398992079206304927908184232565950507535189669191661044699118860087346960706476089416670109105679816401371547361691023599969879311345429255050359807977067346230772671538357095288163251304539728992781614063541146522126423757674990839158514834367980297655533436543659099144229943466061849671793281936515063636356170402492973406174758296054238651181469457549784013400248203163667505956528400431097715677332583707857528491583008946739086665382450535618947242297570214229058637916667395343680672395640438817099474883651769061198018150275722813448391669438606518504479738918864253120254489582123305077752822982945584058716599294253811434077480377735128012845618984346741544627345579096096511072177429390698051312957409066864234467661146783890086049563652177285356695634486307835149992049985116349129940133811463415501027071961421782678464547549067117380137271658079161322577557242764240676604619888392735640537791078193452873078707475305820431667536543887887379449874421971758987366470626229154464139914760340408416056129877693576232438865959463489660398849169612391111890699078658394113152330445108920550530279206602262326868092423770911403792497218532097468296758884573398729875833240032737654891941486673827416452516106949365582523111576318210205029001862462328206787713861367370638614607118025967074137913342624947851778474647632980224210659576086376809124330724587306778699536038420935815284993102925248258968112332747085722314112811695202852727309416389173368452526303854872614976698099870524981137273770161878320433254306409898028852429018287922240842740122630654568936032411909295793266378284478634901389864260914316514169973507009466528973940221313497389362701502637224841365142767984904188904989370865381533705634618567971329952523158890191299286145130017296157871812956421290804053102800535575864609864726504629616543507752914753748488632644747907057077653387105755905162296054978785329448835316178615621658483590827221693087104479557162507776944362429118334827286432505203655752052940530315925007890010992245002356232222887286128336330466960030317159275835101025640053988069755220531010005533902541866332015972967832785002260762623369650587654839401359347386114846167141874060070988300559263334385257831615075087941600744450242348670644014655491352814391255373766379027633021386935672542574225234834788303172482605787880067484589931461140794287443102705029468746126492866198670262950468932081690001294078934847905410719468836465204619535952860475165410357799968040185925475810933501532545279066058407797668410248119192752397183092583695236625008365203538870527134809560109521951682627686625550309734858142446972588011527250930440928265294942432422915592729671194211787275391664333522794126031123839447138153563646712791279144504283958611715889832246800938412405150319392964625530469230456800022317492520326515199231567647567981174555826994006518180113836716495696882859539070603842457129359844282739036411291162227407903789496742653839142711075026706690881335521415176754753684532882994719079627187675032323910753837890937840623576467698754304770458507695299984417211077986270553921166696999735180481402032367815445022123906969573416520494000166546646378316402154677350462740290348162602134769687941507175305667754517901170815557952239125660765704807310873243119785671047730323998620436316887368341099766207728914855240198807377246964582593037692331560921033248547023276252233193617353356072715620005681125174804605075108116268677517867778682317784799409537163297575640152960906165400297654967195061245083082527138664674798291030418597879298147010317541080099606458274828163265433878790708176131238110228429441760409032777934888638549581377325874101489662503936739601815741980970256945060248147392615272596639326889643468874061637100320510556374004536021268003480318040504846022907736294716474819196546052126206946318807941018535272883437276973010879583199245324860464521654183198572273949294666598679506101220269315844828335310706111190759927129659205601502778892869047823755554470830125992597509922061572561957202265206441302148166786251427083568694837322787539474076023679616089649318655337663551321528866994260015248399370844050876350177034948072207927760378510607491358504620411322372877770372999314890345740096426167634994550168837263269727052669964187379693729708625311164707359170098969327552797035823008704182527960984852240051412678160194331983679048580283841214131665434587745383594758083757426424021065088670077731586768888927730188832626726205118575853231660809303435107232421014840344838780545422291707287889666709684167634847957730739905505572511624687053900424121156628670656753744871375665200037913345918731030141792760917093043137548328037762412809587427340435446002477357972436487595917812568825675015446914765907467174979588977963017233413754147489299289408339457273665860320099441416765308933968968376967013868050382936599033055732205232052209735099230277605175483112628237383113468509013966150826898885801434977675557228620926042389124802347172925682073767798918480890034993452420276518405844826109918743523170373979005517737606404622349661213877085203227270149481404163741208170052794427077698967848523116429410478695633827553107321154764606922508032820430642973620278489917742612949167792415315704456522235100502363642040951242695048038967344146098685271071361647854380934986885927393067824063421276253319845758032064002889586010796110850146115737446571720950483748920018027619896174519021984702998739774220760433456521285062022356774583289581166073988090540113218697136831715642973044926482404824641854373507887399663196828375479767736164935720913733262466527787163191317097301800461000939098719444547364586178652547666505160039025893626706143139447589566364912010542475853139730237262935280870522028594002806930754897198903424357200562923749873208080356218146443520030952823995959171070643849967585202119218377452885218140498527878857723227088290601865740923803673063286566815814946083153368846682619884007504031514506497512382534782063955096760856548386333901722276367193730347312915519965391528260460324936139740634486947263345387710185205859378213654811075232383813163157944680428208561581580289494602536420241428840912799697412174836162529878271925486873945206633918120316536373278974342457944870128766965895785382118085141121263338073893953108433165283866333302993130900391745922134882948340547065600859803294105151013129020595451869911586578716788137194448007220211083924221911458902584650104167355784942015232498889401936677147535885468856690728362924362741312161671499992530081468324116304090135663867072625415867459374666568033911094612626891747394876706104945109656037950872016792749789133025628947741084926466515704253660294791446640974089584576586657625152885400681455732164642053273273851117525049015771533902467177404322374820817185444835908576009569614675533588637777297467269496844103973053575909684698431246708830922653363721698505723815725285050105671501913036173626334300465946316728260939123771986970969211544610708776045882827413601926678386738437546677887790087729906665995374821051703943059334163583275897137013194081926913036465538476624135419640570826024190572991423836643641911573362854059082348857050667989592205929818267851003858239685346239171306201321786767827086713011602584691833367470823791369488876239519314721220311321300611341857250021570588010312267829466555531886961360585915619925467180343304711670945966337959409480489493749550468935007693593003195437399279317282325689114815780603034517910762232678704868591922837781690412511440508668820980776350112640661084997837567995651168229219628369294465951325405022479497415328572212592229022865087364770781997690677079904874178305344346239201788793503662689528394362410414288227658710483832958590437159415180765322126371780924217388213144704833436934006916030150269584590422317540601838170775130559629144088398331998561294432925289869917786414115686054569842695384731327033952965084097350758737506206351617495670874934714143366643490196875025488270238768130840655534794829871258143121858998321301319214358908093242836667224904273922015287760747142829475881912781763419834631936016887988113491020256570588588242414608865256680584633031166928555378983958784689433221764107800855329530233141821598378365904728684542567644058520212529425742765408242901129653418777595145606546624495828834993321787939485454522300238030568135407321079304968698083133278167559649000073476936011140918044605375709501003632859259768272442621475260191958823811722935177422643656192484863280009683501839254319662422277262746988347687836790954446659222084736036657604053225114251529809171959575425334569503317124934884897110239289885944001583776674053800667146780959652842601526209776594720514278338177174499299962927657594723809158778933403027523646892265242141507431854257266316697636869261043291167208522128201703660903309417003573565880166991176443768959984330998841489124960059992368100273893667835452130899367588268957343929050208837447615924226025571361526710534653732012452691524630032625652567170868105102001061802086890452027751287012158607203679963879436529460366348669883451939735788648419856870861950972440129191779343006565167042155523463963044664171474712065435486444293609925487564458653204249319287736544665560744938599214452342475256624878426136738027269472349566299600065592829757277434772136437313923403059982578057388593434069103059256719791942612190248426859324159033189564021746938389560018478284134810768999283654150862205520667161295082751188233841334666615482280537710363012374189762190003105518073742432256630634341312532696957430730983596285875754545127691322904598437344785194802578471390156249555533392291442487435289838932639106808489536207914335036635569973443236157346028795194359492308687033513478940253274365097333909436731414848653433945140223510426172138042282983075440395172997510900309819514329786253798233161224180276197650135561118484021678851178110891824038591551308146795567065036641003804073019236594039869765522986856438129385696885270556162370438044147528252428361673346718619396497717186752952787761784150562895248652409903729261540369465094894507118406688753523310384640254717545225643239839048544914354012626560147929323797022362759266393564956316983679983958964502909091760261110843853374466728098838970707073920080491476778239057360081026934007522816502278246911903571868782555657832934760334896614260533849100996073883867298794056516936658980847575129752757735582044198990199425261970544053380718202541762069681197870870594098825311961392439720291727079458568280328102582995075146324959728086185575894116818005776193197462595907807659048966767512777105970294517869558699241593286242219986020730594771713440008201531038587415698038559963783094410071463141560439800092786932126706747781626052964103753834823251196428305877974537611204205609838061555208888517206200646151979266023166443884975385882803722461810468592719784062959224181918116244644211195289046805216384018504928224571197701954205402589804330856319560405457563303405879796404441407224689463122282472758278525866204097241773442514032499363045855543184025979113239823018458917691987070753121687841575277685829022674351338405486188424649140673687597886196972825160979056510427128285495812724230101039537024658694155621691643507192454723628060824208109106548446322358779451879139997383181828175007936431156213976989455541128444151596691089999444754236365507361855798220217357329824157158851890861921222009709092320853714504746231773427512562017784431505369495174834737863997798997349028299396689379019192059012808837611663098613102178101112891423464746623325538408084257133082216346534929708665897390279048553287519821733383868268861497241205091011692466905267486836430762321627138565489602821469249683517017261054607826582137312889759900122800699769516540324906139223921095658260933929429618047940747361658903437530364358446687190025812568541191112318633864031119631355784585214849915370037809213041368082917768296906369496063306806107781530212054134121016398257499586480883815200556458443388546063581004273704115666721782090992502626065264230245050999181313968235159238083355982767051449384018628780794234608229793427305878085263989128039505188233224817788622430405013383043583066677498880387043663580351680145312607253755227568267077412785833086023907082612926368338443564808378147844940821935659649016799535464540220177406946024872963480517024195790193311488744478011043331652238930167638927852293108371080626325206743415957682546733669891259538821647766148414374239689463766366135660110857420194264985775643573775667545179328691792297622682288149134204105933246142463131787532404758896927864305104959165402083266868225117607121209414291718562789715246713138676658865340586811320989902248577044970554942392804128095122508708989272250538080270239557929829000936247912554363701612655014875118057370978533922059584761631472838537968256002206014925655743494268849296545034940407441523365834218359303429354959587168380761544717010983625860687421023093024219699138809039432264124739807125723426567067744616465949070660224044438807706817372441254128354302825812877125227977522865527655355318813882267114326797252237781238158357305257799128242155782156841623860809265141416884147213799367204098316738329749835401472820328349753231961537981390044432876312852940090953719552747687622975602781908711250321949203715120646058664851262400955633608587828812620242668320780263808597622938824962794939699068159413208457561404089290347411492779524406426502901962062086144210256402083056177413328200741051005374644996244372027851622850144857059885066653689053100992763306991076069423522771932199213649730063901560850279984961164966234448326190975070551022029162120134664529694126076855883218364399240040271201638356419378800212584862969918922702946547350521855646968626444790714002093829171692413979904989579994445264515388377395860746251183063973361326701810938179545725548210892222867979873225484867815314564208170705214305380486126496646566645305668806598399775687674006548986669886034635908567284415744043597264612487812625272622780555707716368603878654191615259935455696704278974131138199764568123293733127296619513141989199693996201019460205758604294557209083273192359710425523650406491913973011335538446661326760008097710034102237485815914035508077271366022487782357940619785931813853942479870620668997593799010913573996991734128797050605586653274227108756655632177229988976388869476998639547899561151888656416502549205084400879607298005900683208923435320622862159889627614662860579357386646980787780994032308691375114585687063461396780138970003309923789757352461523065738209481254584289323982368202223441575495140382898434500854148944590126906189802867973236179280138283366907953608391238506899229364311837196684709725809154323787823464176225509461474150371322283511493146912021427021986237658110801882352397641508273003408126186300818086727914049663209192398205672789543461714846534554483962728954304463717127309087475887845462978457229896630861988108266416544649468017924506622202238938753328714815065580428768290001938603464569707596802906102770759675238053076769112675076395089218384184622512052807017126386665126628044211405284000559987450178551827546281852792202654983938973124166214325377372028912014054893959059969160512865679708454534431377483632223632096383599313283673418510195374798381644611728074758871884569317824045909443999912897454272740382215064911398410659297516762597822918571694025686563833857438023843002450194217583085067844224636863478562747053711876246911160817580526536625516733544816086309529096288178264408002501901460054624022866727422426038243807478054386031027334382080082494640273744562514183715383611646594634143121957266293527807325421004601810308382492261662473770149653151357700749218537994524247742491880963553009111657247735610607912569024791003999230604825199448135663080272875574048776094997598588324638167299303742521607565243440370818293679843066715858938470972120220891109428916690512442481050269402525596834552069854263640515103552991647044828598077361616716667189847104507182387621227240030305804681414452305807661826328993276865521098839881855160973070150061622131594494483205799027508945462180973604035845479013877589071945666575677311597082270564561447444323566606887546012757648431145222864287589103150613990806526335856488534814924300038410743733582156626635524725939368649832823884301640582081297864661515432298968326053048609916414695513447355879712205047396260120284486517555607953898921857055884966397632013282967077104098342483392405491020604804825312149210657215374481867274414969745708041667709310539910541122827867809315017539308268274041608219177976399568144788377795263502242108783551411558074086292888610747563967840778935643350636570929372918453340678043678187965940298096072949902172997976713936716846852066116194830852149961421492502309645438628608817731617913903415592902456853887030093024018833310896374803742791211325347348129077687829498407625124187423377810752254843276537765141275623596062490527182114908568208123155185252384272144675731114112022356803584281956524959671388818451191454702492303788397658505393125594581526354368846467340274071105961155401503104115785213326322539067923165741639841573003515341937276342766071958407513152836453888369234921546154405451838543219618226892733633520266024770418377730290579997465173318725937211682121938297042511629411072717832847224405736593368133076383310268302220968442722306753064818615197287392528701586179480172996996450545671915386828065247496693609427238914314159674184990811786505018588504753206230308781423820782713513239959328603871956927330820574275878228286939484200834433314351643168410020549253970482440749650706142938717817591313356548424899701908497845613699123763277113869147547973016801891697511787371301333153708537046400894328114887700039531010970187661613568399161534320537798866400689431375556725919739010118517559435371166860510098699194331096348708756985052020382022849691857412191819837715050270738203820333894827163195817339470783163558047618142818927184518089898523331864034738238737915376095958001688625752923114007957088176512954596236800330389117552239424365299780339204710578350951020161566757588930252625785691334890356704594650203553654237858023923614191077560386632279464073068472003056341761942933191439344509825657292543190843932929873274686339165966492928904389146199320866509280693236012002114706247831022027344485839393364196786707179472055445746302872509525667997017197607083798020617636666192394719381119644980477163259407684938085188345327745403641767322370603247186477155413788707487191467066789736170687682029457449199708095210752428897300352207071367096296899163792516311628499097738848236375710848134914554587505600959864226959387294492675212775802216533833737158237200857256239070490421148470533550261036562660368909581563026745689072734253090622585367072120622957475479491348229522146986824070473276568140588989572649171398503334235971031875914126111226729794181479245395902354937639580831108767920234587470493791465413746980906437633467558274894147235606680563202101746284840228234667341128758732687575970211522342582489105563755574783311160270139761270984285503903811609141740553909390109272486710052734505188447088484666203934797866646670595341346813242393915045685601141104561763251803868785947359946617041176898222128093951651171471578845412037361694539204115458666526353601262297678181041740457712155040310704034850615903095742435593142269996744597166829913750978374152648082860022339879766155096140427707469602674654895792071952142450454841223840930287686593698844194496733433630532666233172089959545829653160511475024449521242690892116366073798696180514973460611675185219168765440088753290319122863487028213909284019270588295470965121909744116819219298049749397081520439185929379683326242220255014658057570994606177006194852671241970750449356986165644806832492692673207003372022532492817748107717130398332971358029262251989207394794927373293628661738657675437113764723392302343172151716573459895418573223180171740469730172427778468859746081424017401109369120166056341084205543585268747861834646560350577071748823890418012148301904008604148042664376081704671037942699304776790065274446325624410249623371877296586588840846097078309163765307722977665871827780217899697834690857853424047240290384169609686228624776704098683480379011161418185885843898791357034984570571806671188065530227151466237853930398301193986851014027173584950138074255701089258591261143233855385005186090084959545133177881200941554130400502269782463039500171130851294957427154036447375480820959300967848408567608557227248111124715675453777789014766341125668209144417874208709097284290006352917198561385730442575559210990837430847940307940219514768388507962099262811213157340413117333030252035033955326727409556301367103936817627676944226489249623765251533484252433942002462384154022019775834612811711914149810530855949271076875476236192771792525281064640147464797699247632926368991495100742079412023085005993224568638136745862159848431064342598635298027909206835068455367333499555803948547803881188846296056855961808982414234024998424375052965060872696885840420312480463649647676174106183729051772831997423116319927830365086286179904944749317231976733076717263606601850411095195697989399027471849527952271505259121193680291347291117575245565373089046662479743400039160005457032852120871316903263003973814213645806956730099878734261731626317554886953266526450057811485178811218737558392083112014674897640711359131824242469756039958006598591279724846447447112617588257967653045903388983893846997404421617901974605908918298039421203621094238839285417261111806839040972232043498613859614806892615833997930509055131914541398335298219547974127525307903852113502160439757717945708538587243441194163931343042588853463620005395361836558020587758147578459579536961265395804400225808377703571904312643286675540119204978398588085483176043313595015011425739781616830831227704297009904829152370038726094328591889394137114510565493069256822144783370486482086212234671552055557420482074461139725271783306943194625958228763162838245189388088424423926940618405636584888245787426855294619536843329923462076690093994252312314612374928117644133477468357132012263703735526686384893002060888484880052650859804401418863586033198096015936077148531634600067316805139084362609503569465745517597518657245217052379761617668855119047417258947948168555775325012313179054671700133578575006863441569044701909434745553951445148162984310166999039876388580870079022987287958691503592592988062075858307801095678823114588641155157376097934171988865500868496852162453984555385322221785369037609917603575005242220550520844285356236714657763207818979521749212034417969828285062485342570930438979416605910121413770337140203258267715019261537511665606441575689513224394601438510072122141730366338778592227788251979325462576746927221567118216287724518705793262357021007976673563396927262744482954675034693324184233771577198141292547692318593069544407943457640545057062972413315856334403933793071746093863246267081485850238956883141198767386014622250938606320778089316082781783445208309030474315463591335237739764146440069793502580180188573233643550694264493239727157779125502993539280367050607869954547717173878196000342195819622309631309222905278462016779131454230704487389207459437214330234876394291302289000132682396697753639540271854263456119194613872347628605300081142022940958497145919840698635632715856416238950886157312298923898491134017627819769347590107681163451824158419546010126787049303314928691725648321322317369849098950559457788423087043020594101011937338420618581195053722675939826269020218337591638214469387159575442282964194448737438723952179652040297463230715311749039044113704131526321663450498347201372547985024739539067548843780851085946178491507343420060162788415625693255461534063166881386371176208007421553947378886377215771318013544579107730076993793503590842094726368514159307269034617341433559438042984433687009405420804051233264002252464340862907423059331067879353348961140487977357919157539670345160354224687589158101602160992383465296078724947471380952088111946692111226762811226010646237617900621868123501493141434118723808752105305087289028488014618655884154490638631196789059820140167583017041374962459750174997876795209191671397537100551015082369598750748857151887264964212777317929994918037707855435540484549215904120443226303584534614445828137289365434042384448748196072329165117986731643571805597410356964586472656096729452309208873599878878906747626157387841850447834392231691316844669886126252007128547911136770297489463293688380769644511894730248328216372255572289112075875909493790661137518937735159656481484787376626469505508536711311372916557527441213514601456953653449035963970985750122335691048963529799236783081600946778416824824782981808783311099396699824423304365669130177595878592124997027660456294095104204814499348991902558865284423145891404254990861644076949900484510544571225340869612090167941121183517737094659041886620379085877883577243568402668990524136183953172034215648749353891588760312830010849021519112040684084996247718969391165198374831136350071931757287123240064905600835141146145518885618243434283994439424309285672267163488568393507405550160985498183249161135543556499936704649774983870731388937592622843371011612197332373107886852348122446981040995927461377957633329273952270510166120103319162404299660646627505404526734881805334030164359163832820714201066642110693067492802653236142681496486155878612926558327251902252883609010555841871951488567019138040083266453024767960997361052186920685638565709012150246851080195301245451962707785102239748910471725517229499038031453516524270240330359616995587173668832708856932375652830219672937997500048110781282860313000891174412705388869219803089652446681483257869022408954966687748562122295516373541644621829701952336953889265762864050301354638367457309736056753054340369663624426050505596301869879483028508569930700916585017547965983824058660356741975431955423724895567501905846668637689133959724405438277813716029003993289586212926042784191135620501207480807301884580028860376525538854106338163345292141162400337157533840599566316368350512241490781846311619977335239793342392374073562479836161148174496093787574901033064558999695265800352931208568590466350554589273250156057641855658399870670068189221208686962032561350517415746696559687234328592156790629528587381241372994840036421710424513762610627333191834208350418844364270414625931330102703621079273071616528347995998202140079982349389820941771821318723686329983553920911550938904261007358502971820928510254875094157453337513127586548254720536893539548353253719426327427332309854084764837216152725426681571405999532836692238862054153987815365841764371204637308535316912795488779228157630058129058334713228167796633137202566296968107300620284387868235570914082541466271688367891382291128320610852272351798862864953702763402493221795981964778491746662524799810528421854647057595447381711695385165633514188140103954088666381391799602365989774092562740096589892305745523587007654288995946838214761103362499571605465871701825429624722664517463698595077520781876123262320934888163340066739881181954767844170989564436448533314393055095647007310218086751088083428253246650133731543663670578275635936346489382928697496133300018906986506452333673522237211495872524039294709791147011518652341836547163193959869919580864623276502868939902135219307304922143014319807816919146168996147780873566166061014457126455815566387394148174882221803495441397434284218871451969247081632951582378284281361975934196193297395645349865593031329695235008407743390102725959330782809648012875630922350167283852144443308431774293783015699867274409214286979704810386795952383737930767708773970792293712168602654919294040425128631490820498129261042191395171014506192632713001154435820427403688270719890384798454312712479969793550671064837188831772470231195566342603461354952340857833869001970532937326909209678771242401164382065065479926116843950361565088116177457030567993587809620164577342601703250136716992137528758559367551910792608240627064991569752910671301024640486793614469481692224841911032112139363142504516209218981401594656420836647742248622553516453825274447928844461533487425481868269096658594916539099423078073626483474144291837882099956750106376836601990069277660916918763296098193622916839038889771705978342410800380675531550344766687408993690796521905198850017623705002078916110283264559066041926245003534448115417067718799354819063152217814975618380548099672443283875244796927740863719672581972270652884869353261422634540176635752602429075735180254871192141658016741679849050045512009756739245093900349215143832334182002881643291824638708329064584585303683315505947834064672495039965989027028118516847996471794017130180419997659892832123215443570574942150061279313066710902140052527358888182485644119090943771027018458747901746066310144416168998289394609929777170399510320493966525607559281166557401302419262463861614145140362311913730099188781360869503423368283668920648999176020850466485046557934510973240004277817739583770252550310758598303561195772693211590110689453324748237852805327389800158342146285341986885268962352198172318131651047353168765354441090645039632705363977638290443878855133196797140675145042523595114209383023531762881421836789808090098804478752022641845219223676043671545698491176270700412081051485973729169407829667549058499247311490452014439206495400129166327953489426166656112826881890943046828202450495948966387241770740032272961617699299239430299015089794582271941608312874690143214187440860974789691071026195592860943458649214778726517104275302993797891080192760002360770197471041283871909046916536512223589616165385245062302376977145862703036533644723638169475699834266905522423797712862440366874832008557125639572639392525617797028835264124578644582404971675491080238124232923799216230548488867658035843582531569964707074971628259760564733761759416710538532114598148518560567879657266490882233897738765680866467171110211490195762179198880944431530352184605255935141278359542956440083585608863151351498646703604297939100702743282456313817105819708007870481512825898033552232634288070306343956533786839838663176578600309547368090580986689743954966580795412714640571125441098555243379128479510230078699838717698836876441089861591083944423873236117671637497897334579143534963013592498225488194891963335144172898315929084868222406182181971560931088957631645921226072774978762600666449519754204763788058572700672671276816976343391548092176239068669863958583374593838071954875495286592888479516553661352291121169919502091023741775754502915990695195686662683274137159195302437971523768756163637822648136336518280538793622875648719875405051045016313636985579637223251701301848278928564645161551263525722696608989970749483395528641656958906526105997464167525676931370292009634606114210971349239171933466039445841111661026347405507727239314946214839394105305842331296625250609669229519084085978656951506374375014014485597940383012088769653788069741899603693654159094959965941374244333777135479999160425324349584335353024229754700163509180497634105226186807530260240215219830861985397158237266365295407914628807643541986725352142066691655403129138228986024495809858347682838444100795452591981316809747670901287632030894896281620822217150263704570124597660275137351933723072682439117384857173433192991662924011853174306331847969720474376515795545621343885606527021449990425539540580777436371252869919395925121280644975336729348764688690415428345634387713714690983365116874502923232630069018124454585917349702942591478254160011468019976956311612534354765243376653166612252035000244651798619342904900868097510638134725912259540024140070430649726276075031244498445073182807762036655847170984168772319234799472113720587966227857007492062961924400708917959666062336040035908869033948570878968651538891665859969776168204481401066861833251299226471368116104013977607059428586037490881568055447177189669272669235799316205207031298601107517383260727284162153747895367241667264009040461315296636330297076228793505398635640334034095694475733774247892706486614095371381425872938024672061622135015791063698277573858106077413802737593700085121591180898585819394054332889204674594325165761867682353725390541802733421395156487233345691763243811450548128108129511763457003768675836724135849416670632505344745517067230665025677269507200539377758621656282374446672776105193388138374307412172316848942068076932482778656450951602875636148491086874946790034345416172360332865119395449572159152604924006551467075601404967198968644430135639177103720983129620302828078621603305559016874686282475076742702175957336726732714782240484127587182039047962001203546635957360658224313510860233503168657222569470962498589231885522967675170897182575279167695183628032641977482675674923957075155584279356581997201021627800296411438559050714311116245347408847320394501249961033919857969378361999299127784634455220649690038698632347853078774563791616760676772781004458914344717261599543883819285635076188274923095306223919595155934584310894934345176822798099430286668749198281735892320545517200430702121813166306832993903863167534203070995713715100461336917691689823410697671532407825533957041675834995579863111595821514621799265957031858558581548551339708824577024597414436157053511471757583137983961010527103765912335416393641501968022895888870522958958872234624220536897909836739868344575054994067645002106957346226566014650145585328000470975178375864873790674632781397818655136624155648679508974791116632265627737113017744696174506080379937999566507890907183903149955699623766244992838483113094025078684086477353506830506135525796157434369197371764904264968633048158915140704817334167600303692234033603176867706270221811730741288455940069968251051769308330728037279913515751292583202780660973590775015335252317712602702521951261957370909607772207079113578174241977624203985628965787165004026163315987780183587599021618217053865523659111300237059506432900540086152133491556733258670453955880659893709192653034972465675621934816149140473476371456563798448193650080876220222407602608621978907421032035953245387296111124603548217236477151324497656636320041524360208213304056890334442801991776939654796073634480509495006010988811829888265927646678484666325561206120016291618770719123141688573500709166438974284267273170789216908446425251823070203124694786679246264040920751132602992855385828975168155248494877656759025412878822386003772868944806199606845477728901979451214094991931490578523932566356256119829491265726247735459941462688850067392507409514542666601225111732161608818423727496385509097143097351641012520518026566671624105724509651188075363732589298872251490942209708061978514755673778336310940107430300953626005959049976073277770762533918119808259479811553698570040091571537805683930273934412200201031598747575563470675947543540991768889951350242292393013832894002277300970498063187639398202730513919798537793010101240745587711327472164269336603369967020131681973747127528078896346608206088892949395211222432580727959960973763041931245233926115709267989132780684912266111634879401241232920869270812583877670335082307242535384262438297228468266868310599770703292268372003833348756292748393413202516200696441909260534600545784765699344730598732205820499570035682008019680750305760271548072764458063248088114300183196130077778247330549790596846488728360893613232531766237898792578507145071565903035040415258420130735575392293378355480843169231733514486351218539849126039673001068175070320455456503638701221896019746487633469681991275117169302730311569545040980017934200889326519423625369931159582870932547010092768106861713062290731300201057567247328089537350916763787812509758944823184808859937040023544996951565137373344739134653419992864709633942626540823361217243694687125043970426938651455310418045057925689140447170547274679662741099684145950305818640605676493630198135610544175408876331040060889665476133404496075645137773266206015571115528085348511278351059343081227599990203722912355010520114114426453537578405768627955096515676163544121973102590038877511860675527859454430624234976910356849355239020243596637735470061941910846716027203696555121831009107368697495158706220984670797074487720982192766522270837791218166437839574848988547064473191029338371039329694235101020138111321355021601839592660328248582759318184819804529418440064763433413959292981155394101079290587234586370983889151245433542307687911114936182834227781873673078710066695950004979426814920431524406649482928602421536760033060426286034533048469141706393918493991946953723013957561125384288705081061480359782054377868807313154402695250069166919577563547962741978830320257886652521221274491045913399471824970523430276330974527732189450231036510312346455549187111456919272938231102284571638282075678728696022549183136952712439566214244437588312309488864324439264822123109783160320438859209014927570659647026973857488622608985518312573063634672440397102472507496899601625657075159239949539541097246955095829665312225158149594492345712493823903781394136033550211174296290622140805023181863304302005403164074142126192760810171256920865272109397971079415120314397659955690324852170715135908683045717997219708054256435810068434196767888097634861308579011086263955540256564179478714362756510386139590879144604696160879991412355662982893287185594894549730421912165700296282317995359048370785869851836131735152513719332018629563321811083828306621592126813861093789570928593781960288641556164263484672398823129318890467010756672223338226331760035196526095413707754648611916938348273901872611674246817132919848041875460267996185044497764246492724905221637530039771626339835246596140689736227171386324987446728090050222470236197906590272882575701061003542434790225523880909316341603752816588518641682835657298517000243839367803793188390812885840385039984711038256198347010202109936636556980399281093987227138414489686305608346827977583386777971963186462241674501159735926427678075127323658359555576936134032373437154527190166848536811462827821145451448705621100621906649502801501356043129200206937601906199551438148337798779647517409038596571428560691179047632283198792862155621712108922399686248779551587578363842612968911472012642854241455715807644772967058156454323502765485136966002049293074349902543853722333644651431035263100194698291644507593829713066642105778842133297852453659417025471208727411196831320840467094153081174407329323365763882779273336061219888279475502213758521267097782934766020705458907472499942806150528397961374814404871823662564294035185791735309709358537178286721959652870762084954721624490368442616385663786211633864526430562369333057905199472839937602024909695278591816690114182956145617932349621971081660390650311140702997671880365681111995571011135964940996072316595617455502158388830789731893287315465585350437965996934942427171016897251890936317839931121737854021019105739840965864711477080712272424719253785376019061386730940608436634925722034683466676492185888874963841656607396281790756508746990528729363884340502995023447325613245680710708653665676443083621295956431209083772923844408612720005067703765609931490091664771809348997158831290475415469553592187046807471621441391707746916058164464421631156410152469466554156626084477220502913480802316112112309830164968396817147114214596671302297307801623234879477354303718598327272687712319934732095752265158588613079071589028243990158549245679138239908737101142507935830609272446200835626450480799047335247235254071744871438922368982557155987151989358388837831204121956035013962930715366070424858604149943159958746841703863997449043764920575982135097369765560590318332120925911597483870877818634789120514425373920017361343225627157902727081884743982017824684251691438583457344211442200149383114468848267291411924042913235345990769674187320733365810297820577236199497341539209674979988290140273027566123522479640490503794438266637381015808665369867401041342863879748590048074490128541070855074108850624432615150801639599135838786057435206934020019516551329889498628097297624170765545774615372195689609582494205545037665120503254289703301899833065851796527937205638925729407808967121410087760693391566617623405923614049867984141609124188156174583095125171412900988437586603956510067142554711406305208105997164957536369416306725777231318420351303582606200855631781628607030889305490091005933241566065070914712251325623271089983003255889462028745972217032556413493512458969828777300314111955831275355530259894272719581116913684330678741217341652038294734343396464211225564750366164492732552251610731714423224454659698064991548378124401803573884541668783329353646110410822025620278365101713792475824672815282986181752519632851107862611225186748532955083556400273447302210605680300539730549112947215662373870403260826178545492757580717524372604802412422341132218078302783935540021928398999102143337560748466898848883366964674026981305081419670308450767883815195501587987417031756156045962121757483495306486668497142615761386739132190776396169940255053097958072564982677431022837082594307793495237665260191400152011075422502557216054995566945160372443918571845836458100864759225839109819867497118965276674623324804765607046724952708044575075310044679239666420305635555733730747614685573802172239584325592914018154200871540053871109440678393234901710568327651551304117674846779524153356847213423833400965334068311639678772505121818552679108140722837775847859250787492464270832454171289023104362471167627916683181853415210534571887829248148162695355086411279900127330393161260243984100327705983188092618391955661038377249693841231463892807673196992938216313202360102889645297688464800103480156753646640575240323831910346814858164310153075304319793152186097308370079497792620627581151830098909480636468665593477446220423234297843221037022084894082545180470966923395863289742149618179518546226432081445125227696121910680888810885895473839606236474899943460235865962480535808473075996921069521695483978960735567251550295423931315562548089267187845329137741020598768327510723147884558773922110669903649402473538805320503424675696258831683564555138320340209300048940955490602813402648593451222998053097035290798520242239880589000209534722431678710265779523236227653031510150322193711469032018249514630413290188930225820255898923167552744179063073320239339775495409664613352729678323385831509915742989845067099720827096386949757740324178052459561926509683121080694963174018557126150213229061091097028515897079254405026699867801476239345882882734325559188478204535718698809105980801503023833847650353683019294305781388033387435997768796425038126166204437304760570110756470933235485590105843379632749983043135563593726320071866125925177478729338340374125998412829626493230600311385920913249015676601866950978800608311540202727829323354237081925869942484774930196398698121342042209260924973702807169334335599357401239032694640159494367701469932135128972774013735564088103608804763424043225569114818349572265276331820964881043105786615976190559670761851899915276529960209253191330888945680075251251789298744777055976253105390301362986506450985613503129311163534687795792293164536903445733233630558176602778724969979926048222671440936017612512415169162322169339355997091259716498993784983016109054441725542628563753266788687704304163877412421623220684544874483377565592716335808477525224562680983841753299869039634785660077700959167090849708754337438221522523082135599483513794598714653812542061310157257355072068842314559811445963988600405439032042048059193213332760406692203458677636605566888245165513973300876226694387079706376735564008174098575022405823195998902673242018435812464084898145116784759111866527791241711283365215678719920242898031951589660700391364863224558465119192101164715948619248345684786706525196563694685992928352472160581637360685867730392422702402968760204091767993882579991883511606669838418152680827146799055251426966996113949334928746942510194620045476051647984046448149036304533818515107571484521094612976540703675082259879101996332271674344016024803341158480653523010143654942668698539118695781210541472284137387403000920578716201411390522243721531293598855946235032330753577524462057810257078250232531932087869316784414096873094520145730099083506730828342259909830874867084060755788578682138882872606383212737990628794944750083780322031069513648222356763679167199099381464426112633223897189559443974875321228777462150439193912445820813630836919222972087936212410218355058490646671221643435091664540582515304014517947784559087043861507126179364654855569284520156660380336077223738861675357100329504122189066376112163596898764366866292194177351702954130465225027766826862396908222711793688928243250280195423921976906576586183920730392825855841535131098458319257015002358224611369116549676481246470998572358097522695141781673582889562500462493715230321231783253731498233296255282156408091776014263904602838734114089426054390864339757431070207141956880700134207915023299782445163372975277588876447659002522045231482546267582588156725888170299977535465869910028332550295684705820296372666244130680373571573989495877662601376981401895438200231707727996774983419124716636818088831384285967809022790909235647511187521413897652158361653993399290040222982668071430190932398606735301112021915241490255635803876871764897416207114240651406353422222808554696647899735471875061252203131978273828145284629432498025125384526881721237663772504144030242755568749185289356779290947900228269545855632107565237162874754940679161032519425180085477943924459273442952985266512372682419976018464911931709266819044088027668210092499515709831292891086951788669445350938225089137629462037207838358078800579470852728999787428376509704420040874453761158571299340102471185303700858125362304091245375182050077555805754892537114240855277413467537223160105824248332272222123159253075917032597887523299324161075056453328419292977426262538335432983542751989587161453454173192391037717816062802359808729940396832898529796024085229569741555739121214388721715416506023059048721953473184635587784979955653381236165929882196862190629554867101161760229915212189683565268096606830398240214375235095636297094316798356895987904846112379167801716951691268227138113458116084314771543194388856712021179752908707339864751562649701840695691247620269009083586681593688343281014301873342380954869213289147150851840652650124793811571894360482246424907570988343753781478577980463221463074463045873930019503592602190136136255199092080414498396336961418793009666077999519282069343406526086972079354214695316034938585456244110490541101105392497071217181778098191677706504173152224129673282171278265286322222650208732635644099185383011817816392556009253976081342072445927477550778870464737128286107716502071637855548923244011104715046491839464238965161615067406135720594156325904556532475456999391821142416321133432937748764745877096288971684703983458710162480668551742635736628078192021828510694343056865169312063735882371764712942192379194362962406633137334597842291926117119120520655666099382451845433646973258725610397457342184995055837307671789948094409965773531269305374988081515702579860683391124412993847379460734684638682600202646370762326931594226800637265877354534268179358725241334736253950026125703848386370697918384431159757323923408488652605108548275861849175372968967769402061587655471575073997106293686109740674111305469467629475223066389987054411384358679420969892214019550904751848048824291706377623250165412032924245520560244261167079170565938841848538821675692590694840663314864195243430754484414291761714980780612955405564585459606945344986642497424961190528303591501880738954369590389234422607075243119966976600351877600598098553163754841514307217490756191337240612206629512202349290275603183585503802133548321702134218133351222350587944329138401159963152962894109754156350325350321328041123423966649718944623838109997895745018098892007813609754424872468828283340954492235286508302343279979084973105636888195064454265126316807654076377241093684035139101719921042219845348449235410503612491608669458747045398979835246063313871663430821555351689075980579359804736663547705615956338932010515629569906471643915281842963528472699465027222365063003540058689263410489807578739364328041166824778730747351824792131371169457165739792874742223746216553164258096804483212473217215889946655111366220280724704699304056955354419323216439790195928458930923104592649421117237320941713888598004029754160323054031363048920953067297182688137869831399361225479354021327228846419365806852608295414126663266228641611277100446442791064319896088910410707392742630908473109285495575910945200599570764458686797764150819996297451947616168874268931867440085543169032774027916615566878009063384734487016629033576474298732249311260309836332844705314949097265100045672161066525864509607287579088031175181938997236184435433402297192745139758667102492012369198985575558770309723638814695952795153427129923226685378424892484639691965588792791189350679035029102467610191459343324312674180422354232028381458729938394192076985288461549395773779751662207882068193258167101549468137554529627415092471396996835174936418869271223925090700405597857215774459399964300660615806581156939179000156039761059681098135251566513421167638331280820810387194480335729148130300882823149457867322040066066709704035417842618113983376739303008709121579365176189227128573292138127752115614617854784207930747177464758191566255802292434663164228939748502011558097827710459157067135646668270352719679915871594922193920711009648718711389497332430638548355875935834123899180724555098481040353926299117974844105571366075765976677937040075482229012327304241572369665061979737801645287482001260440870382202061492325274698615759660914989871587338540353119622829523287326717330139929495148298623455042013354684317344598114552201394294366550679374897388924840424222517437956920282708390123655566182100624808512261075173499788449921973262088113414544825045069421886537154261241048340677585426044734573951294857981251564368993636956956464163154486664131089263789992783561137594330680980689686281546830766034700533403626903175912053186354411260290273696775645615225128258018615473076888398119134750619003785321640162400565635874676875925963177998323235522148202679425453266583014319310717299308914102320086644561664725150273159537468492442725763558341875573703619413441211523343162400724404427973962141769939275149645792111469656217347613907806859206205524592359399568567028835519080683082653050549377788473580815688495195276628918804040410154489847280048535411447015147101748043772055296237236790302827806709280190453120396319686012404631863103941834216884563123118030503888431931898264909907117637362378178454438690556558652639854722283848512548039245382623315590350697180064427494531027837662971555725072094223809387260576843058507726253763490094019731013408214464539655776571436235520431781117848535518227660495154869812467923914720601126254145749068536103974857357584158780511520007373346151501868506715196500227460164935555696349343876456257518440432270439633541960326936205100226778277946089508877950851248400785582125615155714248270554085274029902339691058061906691362397441116569445047223679089532789945202416262690720419970559454908941721397845912557765851617667153978709719574724432836122243189201042289565097383575498336011454355127968181260620670759818662537535474664824241670000531589037383437462736332159998346777350488427273475276140996366465894321006755581732176952018768025370623172280630353753796465803362853030166722550291988907790215996144366781917765030531776686850709107686676554475770259533858693415754357092893985094912357664379692044574674580620629716227347000030619523935333538225480815266027576307339860507715199257278035195454169758979776173235086461656451245108118310657661351595132350848230106995923236620999378097569837279519905211913860396487058561488939354706100907962152032558875395407745227555992565649361948794549458045241739031457463655455817302960340737888150366724629262181978577281969929899690151689941875485676243256079651686970991189292068923407888075520501950508845552366585725034300714809914325797900261116812594393977213716892560977760929571618078770877754058461343944029106176277147572422167603000829799230521034465528041312107433687694569326386683653751097935925698335705565300565335360685011660990992125316701003180197709980974357089671066916210274342139577199372657918153758134729942101204804139968505412037763468142462360862504528941501535628254673665782717185148674440084446890660648075881178173725428497055565953299495480080784376325161340419748625473078872817879679731334803129650799584054957426122377392218810918371024013297564959645710936329887671893231794047987350454240623448429832922547517395967444999146640871635745971516094615684796246384472266876031584508910127518601783083945658837398390150891731152112298131381383350746228210412449671949605098437306099420150554679025251804189379856383410651963871312346821450951487589020065208235401924951444208557761124167590748850846446770843128488183406260687531648962730806901450307077897933960070398068998762945773253830456530694129861884969974321431045841758634059324812063189882409236268315414787315455780529624894560755458689481605835107328432535267765035698394826739137134413893901674293851690735169377789931966550662435655177892247690364411252135656303816205016323181983105591935689992905457352086568275391902254117671150678425601711847455838724143586756227023159984451595617608728288433559074857775186424591621125347544580412495814020940188907272308975111441769910029304395257094564828689742969516558073899987277737205274070406234051604391246346184541795613410736711473182592413480599272115686954446985545381288804650112297739995731733434016676993320314732111989776603729633089389066718110936890967242996299524062848320442975424272044840151873979180795976127794204283778689203997449512039526959636078142118421942039452569702384730009334230021163162522554631428044677940879738146884757603741520760825273467436380270298316352443491863669947039298049958112820096049564232360589986070026013457289708596531903050714716231511664559657158707129285025985796992170284469844205775566025999415685785180279547640310972800377876869562461096995822374523358726509108393324152278910505965832689823475917145614445492977375720751291655005386845496373451855544636351798331841047608451342933189389153627898651151889297337290344702201172174930625833689016108572285071041633095936633482145336219399159530720547738539554643931459815187062481920747605769522366885663890926902551914030317414678691411996318113235773904335239524360341980219993545677614105671956796537203180495207381821862813499180391146468111431588410536936344591306924748692366432882242364747654124820508913004527012308107752298242185423083336948106223447967623674161619098138270532029001999368261275279514110286110560845912039839281305179065792191566271743784578555045545616631684527470445973698003303472832724497108819402369846164329938030822218362174775527912164071845449408842075969088800462417184037279406832411000622670601073876539717446500675342044646489428965961210243482848147388982384434810131848523214629009843459320681438687779376128000063510668396489267360631621345379896338018585034346221607896665762493591467937615612078053541137078305718410203745796816054000937284788365433673234851858317605565797320567497364103131477812140718711119617071396972770469576204659797762315451535641122818049369523197842260525954554875540175957628178783393902232018979749018462208065261898026833266199440391680559878839401634274456179372725905991416160590597049896985231677271384866877569052015605762989347726960176444103062243954415173462694352223296250421641437503765799024006334124663216645522995033678431611417305236408563119957959489838019744439284993145719693727565590606946552104229620064734063675836287596917105436615450778235808564507258405259436506691510535369087496109472331325877836334066896985776210564512799901131179492171874795188230109789717628790651138538448727601295842423569679341509585224875754229733406340819569257981663370740591422689536455829699212946432537779543802208516269950397960959862931072684300106372618152947358070254762956490839530120263818169837400134332726387177199615187017059892896785378145245428807167634147532912968311491321489147778950898366172152791265635878453916659878914582601818524090193100929411791203788893344510784937321379064384479497085699472624163776922071963746633904136697782743905983516082091181618853267681498453919271883437736974651289514528760271913253979911685362911507484552750393621519941191667802684085993217250210322180807373114031622746548317948555339362870999797731634585235355738862319097877592652040586185479692225023721248757390057044798728706817712427506436667991892897603748259325020869326403435367740719129563358376401363234563813757997424857242769870051997109863098688105700655700167941589451476659028033093462444167639611155027117760606870210555913664931610334390823934394810988768049669163371635688651665048881196288830238087885373520348664675913799523244700281515032823288561633694722349569344428844568717542814529269186121690700258907671747326855352948938026641495083764314013054241832244878770379910522763228030496855913231807655272556967472130629036124652055131654759553598331452443133491544331898983602818782423929534628896991858690300677127737285560607125793818681589648210677940626751148566060219332970846317891310286123808553179586860386375705342766841892431393655167020217212866273348614899363762551760529379015911531410914985124463183519763086057504634870382099596902717817363406510344403115056375452620185421097174608616738527906841481067624409182547697469211052609530424483975566684741588259923344991650190250339879125044341524785563325293488348225265912176154563030873990189683218326157318219626505899657868193960102614830098494003249569496665034515751810791714257419610005540919357004848038615676464999262468416436796077787263445128907780528266739154451110707636421754195811285432872892213525873829792434682417340169650768476610282648833389379125176935440271849656911018636372519658261973511877413673735778917645755687226160948558261439598966072204863378476604313153832822812540634857544935587999582362500564968719001798214390413429108915978882506096992493602483934792650867149413981308877771218230897057121302708255645340478142617004684255255619795405754748445978867802618350805783341249750562185925132406328517865730991348482928436718735214928495730728745462596440743499267610008567165656796381654610062269096972357422864036063911550872197790568325591138562034729282869497251097194834870001011156162772593275014447214352145600234665885651197405780931109170293139921202719389119274332805622232147838086753552348792922482297323731874658525704678997629393648537499375600705937994925815270308672098734242938924921609254088851065482109280552074682127184376613340607439753925924502137164973246303647299900970711797079319470319177592377404041573819385922196762632207399654293603588317964722145618026193931053805819645400806906177267292200465578204819886234369631959131180158892893376837748460287158786408478840930623087993989858259985698526820150593798639592863086004354206478610761766953898233682223788274594598064959130079537719024321789182449908800639683581812079798880274358713827001410204470635096320621693679939320251924317344194303461495019821590397001851309131958791292238196214854813420071660803441572801797232160749950353623527273104889635871689328063271743568733261716754648032162374464300206762401791859627026541662144768791580404072925501331745959999454449502134774160833937580472253171242391889348482796574984604560009742316244370986232345509518476642214893559121515507117089603880258788397298503434543257521156437802765282280806106968883193147041794561619842276059240626019019775763803626193786656270085229597000058118055990256164191971457036106747120908915486819790538610322048697653241877482456270550980368783606367454974752607694013287721991631946106354061293385122462008678677083864308447532485644231474829713836444392290605185746893188347508344519827514994490149270481638027132726579013784889871414446896025747097814818824474998660199214849323667638076936076006908432966413338608157395680724382003263960272217722417872508968930222484544180383273576059681693391318362993106125450801649379621662918590755075055532612269432465904561641443695826306899708967026652825043786612669492505120258369511665655659775320957646639066278748993902856596877064617050741797415878143320188124129734480136677886832767267746968518244845865600912114704354397211972432735767047931480530136926846462862518463732399932484826853024992528083324668303841973878303329896971001878091793290594234343128787665238611994469023133546729728370058130741612310851410344968088092811691823610462215695002914017525813344527848384477329948497684023362654423833998018246160585476265355451441626907047113013545702470387761532995524798997983453889999608745291245505205892326709835571081843705123170415653235526972025972425755884988829821301403350844717349960963183150655292556756594630468212320297515967008861063204482729816608055292365026533964628842610497836127154309698566554784281546639016323719689063254285918075639020035783102791924349498996258049070000613634120849560334238353698991965242460847579981596385747675467904828787506789998962698776802477177941858207431757740809960956902016506820301699568055071087131138106547899822288735791021529432262534795863865211561931346037428015615596551601352309681789719932854748031241747236204597411108774724809951507451452993022616313270811339252891090528113783641521678579237100680475153188416147856419820505431922319996515250256792403891443442616700292700104077387087469510661300695112508042226748781301061165421964920307255945764656289210858889553066559156369444509932016381746803331378479294932948024516759813077090799206220927017278609212681606812376966178243198633463836889328226001560320985634211291662396769950810693805915894777860106757005812766041249509423300570021790087904293761459851140124925701897323940761219603815924684454123860326656140365628152325735741822599738686904518377514702479364927791862637404230609493838324235056499657990879775265597142672696858509700234975514200879687646916111917017735109898052836519920333071418395783686812147763960603123337304439837872602468029290698719587511746410709275486741350969810333196089836715594231846911715384181484209820909077925227190097175182046757567389139611444358883450084732118729767665766253399936325495671376674029842855383061340730914398371049343629238918370397289221293420005301394706801021135408263233701817780498164228691215151620880148001456751488898837755149911555468613173595720271666294936254796789094149909588488116946787306067524041433347837233360080732674114579239317470395946512752926629211484558224550805549316909629464534869646651346217865089492265289199653507115845921927866294189313218553173307106690265239655497521259365515949060018060443104873936096012757874254093781231170675265587555351241560736089489811383300452891887222575844888877614915948958402479361940613016157201473318617791963780144013688378183670923997227050691521484171083239678365585650050747764820207879452772149700793844083150015372084859063838069611658853027385393080029759775460004008730383308438750152942846873386146694733848286511842135029160983309730988020822304225046036792648843562085550241371931424047126899934090539667720226819297585238089351622765527342573621861157009067783719023370462805568769117011238739096548666344088702320861608072157623989696194928955926434174410664812626403241364947717073767130898174424332396700920677023023974244650898704335680840884354510328199488215975191173850219837425798608324742465442091351523005212105013096349296081631854237633510171115095290979211946671027908611235695192030973165465618667573581647533467073454437354022034364461191277672221497643514917501753749691821550899039693811596352847927134486834442970881832481513329128277560765094584645889637574432810482360110468191417935555182114731800016707049518565800974045033970490825502246134326769799794651762238634316131807411295253041936950162118152261576875852928478660279857996974965726525910402399968252593666775765557133486129302342673244314688885064574441133844729984962360740021397243696235628660176562361544897963198042659144380952768916127898227451106033859409069926521992652435203192936131778355759061216199450782114959873558218018260744326272135026716284597088085392610007142279069772472218664680059702448555368751296462315739641315727364782485575308061484750303224559077479039669670324434254313690658523397434165283822278328583763734632137811947758589940087677480744669604635004469610973554843792621415988793980064896968731406070849463426810207824599472356014810848622585298145636185991351305797622640371755880108542631614282207271345719535430134168383204321874740346991995400504567699834372378228746909087505591680419130552034538001041271107276908338923488515759911158770908863604545735306509912939555583752397652856487105132641091000575524798439811237406840921910741242625330306874079933293322016577469974254633136863409836242893325304940010385304603181822971577307857583809569379980531256161643846665379017838645646539513397588851990284139819089445119552377902022661026439741295334257441767214409974697834967157326990531063528608787916938310712983700644149645430131071345710950960980670723291274230262423225706081985298676717273718565789615982309816356681196630172987163435408260509435875791071126362943633028044567613353571016925484864126220039300185412911305333152377456924679008600781765813300955881941152871041451418812785955615816669786998899768978054646799524577683229361612682557411220908550904313527383734879472049808493367390844560342147939808819448003510167562220013980232515603393650530190957898862027060541223503924354717826401137966000550437699730410608205986661667689623987739158977392384782447974401383850657075780874536622946577407354172482578144063396738895021938094557692223280442586966157084179560212943207541401796457149598320505288808041186135005433555532003143546969990466172877715477268700538933346516815466252000842850395221636185491214437959323751782951640410183966601956668487793232815435329904505655362969567421347427799941581765026254816303038045244505514574914155151190580004519975749345344646022684804497749507989873754409850647840111445569967313371560572510616771087011554237469395974992636080364851791137442136053726684765545985271715219383537874857742830230790689485681476683467718183049033057704481617910756251464601263143413362509527743052028444040246341985846914356706106125890676528008409610289575875487069142232160371880983102264725389675778473270305541217001321098317384205808256434458433836317664587655639411769795296280083364314118413804384379499650505763447687827925332280933634939418489551137144743708523875886764394294255273129880126270207733548871537191200974943129258244030696293879590378540887536643494721594051814230735738297450183131166359438259560137134215743523110336842960315295045024875813693370542405884602149339411798260988722254523019279057101795072364822236872659708428044564321349068159692831965428969572688023087247296283373532076479845959049306957500714097243371078419319242919818109323783819653445964163210440518167661132894648093271500495572162205272721926305892615614457138134586165774923957446202439888005660547927285916920744407077393465913025479284843044231515824208232900528944803437646348039948851002330538767675345881140760296746100553211907274184279753639964043092152221427024693770020385702166730222752052099122916085362361008877710833370308912068332076159364562582226438772964242733118106578341067037160952670573434277800820743742575455967463421227831547814065146135513627430620584674950471523538457536476938270117500087993367180343419205914294932323229207111863639066357564243836841072581321886543207838799543465052523077190599735055269109171161214053818356626538955185328645911783953371032444469717472745444399805997087208877964796976219462515352035047130356553308042699171582298162359970015766490986281378560038862342840247333364722590642851836464387371183890723375487498139207441300729152604252756441653798942813055745840800889734150292651787978337479387469621795602215304994643558800702942388975017034647318269436922460006262958478576611017057147824989993572263021063710635368186951175923560336188796638133947686155281984745687466991093530968926595871042779324859035571723252611343924215068568651474583848681444089088178724134526381629256814698012392164595781803644549205941908025933910993425431976016297123007265084080330814299386064587469196696197141960139778127489354411931587502998009234635627959501955507970546273914874932679684123651169194794958982725897087831528259408793819120155405878095695337262724803644291465203905059497617270086738048372912913660734261589755113264513727921075272070535450126997096370182630290682500250878094884208988159750298472074702429333000687366208260299054022000554943520061512025515922450695645020932345149702469180727381892058817683008906695595051144174310180437629462281747250680474377065519905404193306047938282538528866043719667265175679490359580439124874669318826554574269248495613746066487467553014011360309895093730086715042400398102367511183693975243533643401140262338438529379564157595785117798505850199657659667403666541974370159658885093038680225003595793842664870995783935645200473418367567704679019165924149721664471305663956747734928948608658608259518161771144516894677297638683956859846425973426104490069761412504946884220242496777231964186052541441530518770454833048677427628556546252499309296942133291640424575355833720435837948642054240883681545517300498058629686582386377184801245393289958502722287339554106103869327131736700112696641990710615060568958003208180956476266851539957910133723033940318135504359721393896250714893975519579879893595124011618850746571228796985727584717969923959120136173684624475677747028913752324316555889885494979681311265279250037951617124952858622103434550860353258304106278366529298441523580686804498570763249910191815923366157539797637154149971471690290272473944349935909434763299902901979385666428133569080313540148297614855284017189669847139151478718036507504638869924225806639436377334389918201204606885822967284705149150405391904202949903972063802228246743337415540165309085092318651017554740715324947025925240652802431759080404192731538863351084694621665393695368643029568012026816915471782340234897176086651173887460639849447930426427127059746007425547617090519360810591171997802897686110187889398666716171168179344158668050970435200080689202379115317458719975989326011753555437077893560553562668020867862729254411808873215440839651826793158179527356837981376902635988891815636649174025601869572695860357439084939541814022619273535233488322604352463839164044503337781772504212052744093814970664007281215286058892903960923454741133708492800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
78000! 179704562432803697216499971311854745094388212716067879264334737075239311660218520037833928669027815123603857273277766185571141695229388484183475430120285211199118189900279718852153817693376360206178069805831495467955344992176881660890665632949174355132580011952603587485905822870291930307852270388559307433204134522428515582589224363108842900387708599894244742057326432249681868828424800485022657859993444243261615757569613010597651738880091445644029154168417652329100249619705416230028503108946654030140619359057519117509989138325323710716826205712396481887597432059700003021368325346474766234528559731188856659017701693795847464113577731996637844369607471414686048896568999816712169702340606808128476785112564616219031146697112791940048922647056843664502115904094084279027299670805309221954048320001277630866650379083716623571827583404986445898967430435586365853312904835954247770004424379391051315683926344642295414575873135019182043393465235304474313372387111585713727150232570514470557584580412555657665633329783573065041290114385510144793056578903925313436342920699550161973685107420657873944295572807264234119968339858990834360494045625697972067047658157485348852862953432118422623707286409221409380757719010919715687557222480885877779903177894230846695935302998051247315798849679078702092245954715168571411029114298929608476464644357954275845890480553445106346243633095129565177382553243676518151276780429028578534340546884753206478721129074356082771849976608225201008638307545566677256638689414423085002547531826313359670708063918422369215451583293608254009114747834194809098778939320606026185825574285501760477295189058855603858069263638768595877195553976204756786473305976876144572654903832039290150759703819406912388950301579701803615536284919737504456238164172702912795839630073980210394252551377365555818687853631789188392560955360215987729545918049500102900664602007816530218700146889422747282017936055273298329910625263395246692148773897896263597525776245005639926146173488461303339955663782688313150516171706822456534739735676533152710253222773150023371776956999572117905114393205807081878280481879715093464813527522409669264893289879452352030030250792084681190122592920264419101239950890535096329743450240258657116360986530878920046565563477648228888139047752462238548940467060465398221729727865595386313310939577754067167640450977252862786022195445902218174186039289796352128994453643054196102268118865607958316877243499326123376421996905209577954829429542730214535032132270513096789843963331244628778437901221014370583341417070468645612729590157283817220886950980241960583010384537572568375133157826010036710667211649611777244004095518850463881579165891483670725330678765294870622958141921767307510755068699596875391652039080317433943073083102682838578172821647320477919661553886473112243335604828183186313112104489446218557375687124211400130229836199262944989763091495020620027328488721702700222194062053528766553116202479185214406665806404207125392917650778549540085163433042227559383449190399356954102166146116096803868642336659600962485613126907446042749017752933475921866528833487381112067957917696441523716442222892121250758382307012138019117498697864786673136229540652406232675835983991545255234730859249609637608642936389790985994596076569154222883769376453605345711699678795164485264670375625296248455143677475278577660344999151493619992160033666566781490623539914080310305031292070800084492471073385222120401013831606027652590471686169321200093725138520552129443092891522895883971243881292783968456855961907970627785918982119464791271939945847572853184328891185755135813477438223714175662372978946845756170985687270522983885670442989402120455585667089112213757008796535290328833247062693500557826088929769459940866069113606446116823603467835521983616450779441805531861335532803386499523347752187661634558612587940886498655109384317852437328251309776782170439112899799618630030746313679508949340615219258672491598187635056980351243039037083046967480480288802682612617596799602921635149056172062143494171519305180044934414391514680788367447494477030655636983754399260543269533811386754518238859149497423147898235181337396970902239511236004563089575961264908966364999602200771605831023828904811435798976248190976646873319871382342128000690287458753001325558274650422119989961215469703723640600922249198336023577935693528643327726177197466615682581730411212247505906590904931246209411075384123220745526758846337920208634263463331404765722009697480670141069968549984602488029802635936211574727904786283551720782362814721836103716623167473162536588507516115666864898922517253740230941965542676926856042770999457184756562579996212834899842898559222890530916171829718071912207406364003200572834701692154403222017542323505915312929191004443115992863356365041480788730412794252342840787840808183358154490917183424417491604158126348404867542790067807798815796789514514517368052696103905709574641640050546627751533478098108202764196588725786370395547379730474010251296514181599293474380079041880304403932626956171561078965710990668079691806840150779387168148085796916118825069693529786324161545932794923407598627899648436445103984185277959465949570624338737158196064509360190377385556507784813689135135180280317941622916442668699129758704620866319962555642327500447846340441532046814711871643865159790269942509842502751658159607293275845290589427940593369089041752656045699857131062720521033401569180629262022053325404452989830277388242531750837828019918188394818325007398513842615716267047758084260594238697445931449555074629322800606137538604134584504376859078485426389411451096692012424951647193316377417229539087174765466720482366804878098709828928353222050358318105600660837454407591067097233927934187207641018278394409100838193294086967999261914404859434775823776873622931471214324905480029429779761820201271291130911728378412187273317941651505632075173781210592580435942956492966585754967626840573951696423825874840664005963712145075653326584339152206185538493137860884040535336327019639303658124127082031650877342066979862854914377045237471696983733095713719791491682813773585067035243969465733355682995075143402668707928035086196965858955525805550724731992610593462259351677729112732220204658750452262442745495963902398428728207703844293342900970994550448954562756478095500733784820751176940367622591806124654112687675703937725043394167474108011105212735861780293196005862282143852727449112237305302926251571888272991612359907638684733869673478543958547012133914485614710792359375959012781166036444828174024130950505296503282073726517845249544292478305536851644773321485896439520390271543515685827117443359411242384323419370386811042228470740782414872727936776442477125308885668905146869305212277731992980504045979079819873060717692522301190067685957059562811112815809662460791974409995825556434887109324238786097152200679690366424500499523872896056118361015581418461637776938214332643818510735001325711145910903217048358804251063485933782944485083689444081082183925561902781191202605226586394976434585008207539119270033555985336007694534826640488102047986325714148277620745364383535016212424836462084047913780155495112760630036466173340755087354571382781783211753828918072315812630514118046722088953717143261328095558527907621880188798660413633309471092147579668897059004478565036523086711173832599918975016655834414525749705030455993234217938881117842973414679143630265762366152764498553791039397840222518761594563334531066717439599364455248378332770632002117806977400541239448422168202984736022544755667751955555235695359979972459698720453832687610590907966472906299828075665433819513520355809872665860292452069862720201661939097098442523282194890508600941544945318153431939026559517094494363168293628767902092152844198606729729326516081509285977165438544175010251298983521200459471418897835115925150256427466011578279566046364338649011663132172213764023599974197181253269887460346603762338724658690217719714589495251621474665630714203257429522194861433889776680270721180118074228915640522100401878264141400118486321740884684316195066544978583758930298993394655512487351967877771074778630352531823026986318155274501808329372861661105979410387269573798705920299074538900993090751029623992834739033473813808430374380039745234552168417998712277311758336979011602910015930229678036569688217886591548011627321514059580027011793447840454298531151314753809293217061418593616457622890634459374936054583318709392944179346129644429945672273006847365829558112162975010486343213504662958030633684641954552214877925143439421452075572860946865803644292935098281372383152968169747194857470338308452005170977412513234766942790824598788474855483429348890863989859950067775377871492614566009971215401085344914901612968895100637890107936409652362865243913520873621279097774327322163650276819226503254108230726662841854768882587721102386918551595003739593064222989492853561544876850295359856029423515359217544754037946691336860905964668988566258917746018113403076173578475831665665218860856410566803786613401475359968691229633081754411913423134567200705478018268033778726235618567916183834823261675210663315019356106193992650909765131477117030223329187010571510457923452993642050492951879279133412135531680325475901435808489895589565360232358697424123329768913812023791024469678343182471745253507225759365243630752769804090177355998096750126085480849176526791523040798749972567913564127568466012405684455848645858045953497580998395554143487214336489702028002653726501806789823608292619638787448309412181262702243720106622278120461119926354815323433591072450626287769381869977108727533475058667145305914854802038700882018255371054336746463122888315874840315112942537035327668496963337949903851591247252812559204806573576684077556323981180703213912555647993092728859223708791030598926716527895852378250674270888273654217731038314195689490600464107429984432036740101250603095978619151361243152913442118979760049649850726833733982906661006893201699878454807897345316722580579429256358487211598467792363417482913433070388917924858635247994847285077691612436474642607525517936167224283925294457389545603710225744797894117932708374369072257302035085741234842225758998131320719041358464309948497622699202566484825296659154057940411448895679327372933434405483763178654401527978265124482705734564286812830017663959407069964213832352862246056419374382348876295727514889682352737029559514565873794311051198132313494642220409312823301093233770461259485788610735784490573614390121518176626231722619902333211782598422004432546106848351136877449048261896856890198730955452693073327244872320099436041158476665448021030896473684964747588653294820278411824044280479399534896126722353725650480856130368586052776956600351488008685611051679013230981318737165067300494417124368084334867088708132990669375081854747659228151220674763750068547782693071191558285678117014913966411797518775254525414477841201532682091838707484318901399283351483137848691913636972748351256313711822603065377624665325898581120301213126665838269369221075910754305333289910698012265400854941204189387657252614188738370765473622725457593696073543239622184118341426520974511878981349437099089916639861718418413311540357993209316524262291285207756859951294281944610139010972790485898261679348702832636606700492765237519109887300364229342124969889431312972815646462120168897912683593326554795739963665917410174354550596266425401604558427153122873986362863407709364681022900405461350462064549076465904622870720888928261245460608474896108567183728005980058589227060309356959695798195134696477917664958047533786565310303950984388779936130496251793416162719041861540933237789139539434420069576084690695163625783255900330641530712912496028157015032943950888951117498257730771540824476076413863638696253417043681155598579430670197278349200424410926817596708517173765239029019635604759776028035273751224420917676174337484133082692956856931673148693099721393658521500274497122005043898202608965847262920830591501169503187961034975330320145763626841758798132217000829211057771188983394269082910263606024845715430151560018330443996870438769953147568548103381644154611420195203484734371638850189096391430162464666589668213619198150459239401204571824148037792900839566690307226006362141016890478405627119927950804456917780077701827248157148116009219039385269906099355867442570933799799184681299646884226494235739355419625114018233196536065483760243928408174988887053922233553792920075900518123224568536939035750846779979530791585995384047279542460697650791919204264693522381803784813571004011780307088735512801029359699591508072949147686918340086229062569845403236391217892224263087975305901321352900515814914796009251216656416725291010519798779085599480974363417128425590184986748418856181727411545131722426184083412452237399377701874053791597065496981233809712160685515212394351916943118424126561071546020896200606771769567506165316535521443997150232774762481234843619573144371607628582778447376273294086818834960358424207341231883637808387485728657365983062393605090053774472190145770132989625983711987306544796395173985418926316064491932050030852997987765434047205000584702904844237022460068742980663666537441292560563935539109271903408956782665683270971593179974296644976630832233426575024082839761960039485898787248327868108720457587329684872074818902633079380390813070567845521700748626824914595753424910887213394806780521246872005810429255934272554510207569088503641471910052078671616376838327714955464587573980297548167398433249543699625919037431381521326017850648044148491749332211459383015424155189085015822682792112925927734086268270366014274053116784498286779017422400861050619230460029435033364439015879374275445227312946021968981982323859824361850821797386232945046745966057507536604992834870687584740927834507261349137939189001305283792860101100446404504845358390271106208774743802144222802639783885770167048804088701442128915354666039306724992695023821638385577285777521551456644423500597618775117880212727385837234117205510292401416302479706907786868322566418096328255357882162589738563991954451596844651699385240417775793119506784997626021702858277659739013776524601237190147933633505165179659717865760951510818065391300751000129182795194018569672272048324050713295782100924009028542148422800708335284565948943394115052148953951805825608152324097166800998650709813940155479822316046035377867628088659604436165272445515951406735038400368239539077337477995105824997439127406019485392448832196182328765935814898212291956394455793617827325349703179218001352084068073629008193630989386759890899012159057119752928975966410571058397899335789206556844178774993077915692858553801656752672408861400499900220748301542147686625424434942157361474552281234473377442058323351410976685054025823674501337449819089413321483283621271620650983057620586239080124588163710346892141248360863318610625501048951253448487277408233842184839480587919536254946537080085657934030439978468789879773313564513102294715784254964309525987868692514398324401721270931245861884138041453363433317346564376190207274023943763672180448095077474961429021885456917990421499413415809993632155773538995416849162484148592469180190195036033580892916918174127558312999665215586248919050511131109524662721718991679726851338414856573136758045648911587748580136135975840762128073786595895104107665522493090825817660003293552983628540498423714417443435756997799881133240950747444387791238958715014218234410259743238991696962493411288360726297408530646506750271168464328946857973920429897694582803983562861965636305578949440020795319721105172692950723351292602367163585713745597874140543118751875392302116039146455814904709316994060593245565901320851086517211582243303707006572552353246569157581954631117522395942017868935205779736880427428892481854017623820119911787160370857968163673986974028496114366723073152225008448661986353342007045029384972698830281515539618821901679084266173983608464814211517778424246586874200226420851273785736986280478586948141088453872307463000105778711540755772362754918368425880665572785284375067832361879237159458488532829014502922592967312308525087548199658308470676704929354128708006400477134611801253094310224344321227198655736070973418363391258511390024945218981771741813669292197155935837263646150932809626246580379798716232638902301667453983010141833462224801021351740696451222815079847219349342986150227976659841244785262934953098663328485653910309370688955858121701809922833940185570105563613157436577642906890361774703133632023339476601101816689581693431429660590930000182723385730548297824049962583705023997284908186914556472749650975082588566592707109966832494778692131767102302324882895850761005285288570302783803473948686275590395968818086264509135541258323382963050342256723544133720287047431051523401712789459199580801088521183939839825147391662554031911731156213641985481308528467524779943907116553129756854740597907607214949168750096676630016803518138024984148311987412955009496480925890825401362896666220134341022529708105630525356693506657345504993852356976794284558081800012432074164321682748325781625026503565791154607742021233966653612835907492865399523679082001108480047379620444187999892975304770246730804198361132845780832013622925614358355300015450945391070281602782961625488736172524576403007295862000057036488148134232460128754122272199191149816306224228728594217607991149771708096218249926406623102958237030128321865154104003086097070628513818118394434375199559011910089331956196310475981765580540240894861952957310765242291844679676774194622042084504172069241937910754288129493274213882736968942243234584902708107487971254379072588361298404428107076593164223121864439443932827834355926072933163063915106460794748814246097137868288601506628048759771559014890576104733723913860214991840062919556500853062993282427527157201797053761205614797397950171254295959183364268937848624560505068377713925831913038396644710120532840026042064757426768956492238956757729574577203651470063598268311336307751122845457409067917343620433996292344210642659276520831560954409029166357513993047786471537889774284377641309495009759634595916331881448760909765894316720372895238380637286300384397763461044357503993686796217563283119568843234268895715494335539068129205819534005549161624879718511493521235932243695375410103627235012644991716405513972833498210793659568504437862137861042829460733711498278321434158688281110165502012073822489168742906318977692652112737373371259726236604170878979049294673741476405346825594551142533750893046064002806212004104411358733661987734709398063681957003842529827144319054898269212045908117518506366498452526920575482535605370821645572558020784974836076588072325344534011396694416237296881742019445165065429829611236848187534554725303779917609486223599720713241859072368178298625224603637161064072659183856605111885260925810972781517837650383135055235022596042653867875432999801755836432332918226622553819119109032875689707429838507915664129391878998897792674147535049115785274289580410817190098658329911140466591933365113835608891226709123024485751507713851123186495167010475046979374511381157809672061099107540453667868342514571583797145514821088383131642658830905795571201993401529925915755354622151411162370187844895944106603479716594900963635889575751847955103445152536227410549234603035025443122934830368485921925158674251849309949850053430306989982835482177570566769452229654284714277594911513127964472763555661834279072727197433451927647769179434401679041327755713717720038332001096326157804628340002611449264295704006154697009284808450128598686656490889273195090924393049400336919845499483250017905256860958050639979700168723578011909154853870626122011587487040355574441884040065236060135455217988601197999851898796340111065719306096262644932830950908513102084907039874737072264521591053769658848886984289547511847668254728731061163892245284736794413687036968813836823336234589992071936978825788571914298355116974581175727228904832831270860343066530979779362128179085445980918612289339273170699179410947845326277295333729703674074848870277275309831166403751348744892714054083382569478007934990406851552268987003397373723337193228263195710187461500066707763539623010945549085078028646828465518443616686732416459090465835629183692713971011211323598115190073835659499898170259261892138223874681369680771819311168013403713111701071926999281251167463395257820473168397354134982600051219911473254783098750792948132819059383654249975836982069782070148154326662074952637530191252647103335089982216946259332265518255769835304568922259546905824893489281104600217882546360513241342106859757000728565072167169295997284980281257695357854047693476120744955412783620188821749678977931026673983260512657181919038401268330325244351771272528751874344066914262469887180341586518125300408065951700889616765754079940239257449876864526551643887485630110829897573877249492182304316795792820681472963305308010737135038682893294152246238650122961648882873079979125141653349563098698756380330967591342734282175496751435573839311548845435943304466959570160675285500777088916013298733662156451052900156088416203631870269505512182094227194613927630368891878856139066336889508472663547935715265182959600269918837781879832541345657071116593523032421238219859961488102649546696123330408355820339501467168169442401456715822749970967922405782549695760449789338540598680378099980707898630481088580908909361427142092614134324163920434409754453912812726202906087323006771580101593631628793911475120314192106567858768990010563660146463245645807346766209088511931119076326741336865092991597039588021783432009577529810988196824294138473662351318400101278284549575718084326806764802251964211436394883134900430614263321294305601591261923958256619047606986176762134055195102348025279941378345205370592977785250781947070980314253721074091977541590328528458315765179271927902809783344011132905448122777248780790939033503252309962387470432845817771462956662169200949792851912304813221622820707069233861503771584054207805291009392569780646326832933696373687362031641183471967331926627813417549627506328957293359868116261657256877404871241192152263502079226036542628307084839304788622942192980984859702655837697426418291678813901943617242904810022048436447718235315361671325164818463526382663036557168497927153897572018716467795758415347510840796997954301682456743234035445026534403882210804840185037696046046676493105139970506412717962435638700139550319719732801008052971812862802541207169769509842991435341757443302540475685040622849710064656435992888689091699835751655566120140006622724153060177184974416392210200365438594652965054275954026236134883797354174643064469796317404438514411695348650156933560660850589435187006022938360214693203893383177058384713811714732124080153036771661110005532368200901282628771879776557038039778858463605616050601155944674618709101079826345110939786990894006770078936171922924733167668401093792806648918503921617124833964851125528008260165605127433486615997523098652030765374962608287735745520518747702520227989524181844750508199017656060124507476129114064759949207517733260189557992129350394112594098196075760611211802908804690156296399810979102996710799950635801995810197023703307627202437523655526591824032205720785378915969225822192688473528772639289144989345927475613166512027554509707106820248052005568866831860361940747010736637518433405372707689496687591085824970385591247639562110052877663372638729066047285579008938989725672092383751643870644127706359282980969418038393106533817633040973325543814467218037785147800907097919435354189304126624047533878674338290460641998092722850603778215883692705237183217621030952655460283203139503421782877171314115555775683642691797561454675994288073712781825145178289965249582601818722520994591123895278626136041302181475029077720249342236694434717699514567108176363701115406891158566765393542970857719185803228894355108640018550941046608288904796502419449455793315857072974977159349838069483870760168187907052701977624907369900182724423965921606326695334400738247177550345389034513296143596339990036386912938054506356171717487700211830776748630347226865942932832572122970617686528871588030399993498578848549406738949920226608241717869789979530349518104081098517767481769404699884565976713853373173388982949248666797812466233910794120628103733111316091804270226329140056132712170366614907966814323488627438297649932590025094916878726947641540447318394343157012026907471783780697665386979716070462649097616912288649903955182261119848464272724952760301433224272403549790416451983321045866244622284793510614127763598186561652272598309480600300092860978989624313994113716569343586188215981993607257881932685009094885953404412845037578004746406085241504901693712724985334182358840622724691158080900517794119788511951828360992876885567410170677788770004971761159912415246016580004337138088585176219493917073495143084828203498789962624655701971457946958656477938203976762014393001439968404098499310517284224697530537830247466179259464557100234516277806356667699059140701110944425392249993311963733623554626918555212708738381132794964328663498633666022445536766895012753690831034738557542553881679303506615860710051017110497673335244818218541240659682238580960015278408588588381130141565411843200187717583476979407615309843049321495479582375444960057773246599026069223306893992035343385953058732660314139417350461583075454495732216073103354078315863117067559208736732599798349752775964652966972819655550393578354769626017618704796984009075119160878016728767301878707897724339309413474465514093002244889274471156173917282718683439160033507517369005099424048779564801938152058454598642762183745833933338269370733246336493377840258093616294530406764613569481681103179044975716437609782861406556661467739170068624957005744486773849305153340858725249668846585935387029950044024882189921839403977999343196560185656112199090284892899944665080839646617981734408975196141608579266011805284742520312255207291898799761234729622448389893743834198992489173055623891340413370412848046243179231113455434859968597582104866716556303557898819495780913270995028237951709113700643356537790680158136751818477257595504119387234521754862733982938421792975267790309132281821665045057724306451809007813665840797582534876125708624334868100503717246456622610604118439512550965745204747797909685911438184112367477220644533211607154312770560810241454807627689866577724251503087591370958554686251957715279945524152717507097092044186335971323197071387397836230088284452722670220250782636189343532527119933862949046489250485643712880190627202982456681159296942247160181558944546298162950683261542499994344057101074411721443412253021288283074183451558763126017071877476653398114576254582058807627380352154769650975410986588955150892381993972251799876474694439184098188237878924409259298321621054292239403886422272512723107842264067039040546505011222285628307970547638355040656676212820676887884777660842825534248848650645032908154012208624778798237190705607008450087424039207709578958771635834950066265248316173084271868763931762438523924917913917948579527458680659511557008580761499009257268460914153754703905441758442505827293331838508382459239223188830015807384069101494439581251941819439395578660680320802222889803249913291686039581175706011448784210618259119173042650205177181949912489741937194657375774571006528879787262747583611299768937924659624979599052810267677570768552356069161280706968251439951252276502260907390457611683531051703799897422120676475932655697230103602210159951069284137967116876020193282840021224182405668536015699250457935394425497729665638837205708475980879795153462785411119724494119527471522525422996370885949913570010829450523342090677128813578044187815369213878213617023211651290310105183442443145520588546761269588131108220938035430525909959251214534833931445243288041361208607012056318037957003845968686789985700429433844542510301404825445911326846356178390882255880166618659374539262610453710202395248457791552322223881517707635125928131553451909429424518362366142695819390214544910767380721503556026889540372352580977052625807788526013407516832669329477674580200252838783399698092140758025933143347956841771035510822359792913157568167565281427863774037585897094082048810824674656801820826551758313493865277678758188355463020223424671900431399404818823222018725418881081700542714625849056121199210352131226898185273756176100502497915699030138336017003216231664018984743070233279581523438112345153351881457602176860793832299999005622827783733156032415482010413637416736519035132268590418187062799868241379666213777030915085758975226230882904603813893026507395132303599238422113403697134677575278437259490734939762982071600624370928762018893760453391875361646727332722745154747120621902404592455243771719176690585879571359521265767633463994999318577984088205048379062685751060469004612610319773205102387849556216316520762552484847015377069422048780810653250712968297081618764782558762948713611591049101145988364861003226957147075026354702327811974425294332423443909233362992602714451453857434962404129399156419892511476262843300733985549496441942516894451012008774300118004706344315502515429525055329521537464925037167061289708454644141464976670531223289839082971544945764440576305192759419637309538247148255826144486569336175023943905564981438622479427303269578269350888615288317313053239888759143311488377853265585956263166442176725167628134209312213246582852515164957816170972799575668078897383745991263262624167361286601876231788504830952873493260611396771650317191544988675335235131293482640719196671435424816748053848038019373055761394674024178720383739866278985041722886563130590462574260703839712164933058063418972881510947733245325906062496922550951051315294350802989124421146476449089546738719472387428521944658741374904594465252685391745962570137024485067321314139002700000801489289648830850216358220091422666065545776793913060597371690204283749353122319549371315236688077545768015866699064551352879648494294453893893544422638523638420928011870348366856497085260633015050711311774654285087388013222827904254101310305977403517758327601741361426826832724246078243678732872384624966960785160593933641598864794361832604826041611461519793360240611599526132023631149955188428210371154065945140560338752923232496246961729747176482248563278134742645593749059986924265535331006959307884149225676194679292985784222326219064882196333172188710089775117386703258304208399824993416642398723786570192475203317536468287343196737276824460575638729174473798948585725611452243989232552842999208679648467952527514163694551499434681433826183426764106914467508683170398499737188155039367636801153149297879991502823355830441382565770430236400548836559164712116446848451693360381348932728115613640112451149916232558247468891516567893452847454344000277549887781822214036481644508846719579212947685108581791664642295109577229913908653970159085268963987746381131702699236688235320658412081878814992201639710915412144281528045800086341498471789272213397202932820790519267352351954721454040210592327967566951451056711597394176112576212776374902175996644209621763572798718665380525643789467133343683107126634463429464252752472962769031520135005404841580250572217674809614587873248208725036465266522522712024829615780956116815548058843058149586869852508615435008570490140359313223827573394298502057146071184892968288089043367678645453089727176675597985443143545401676370297228739873455102918189379979280517506924334289821460455715408994908369097229441810251407756454331086338476588152146134304372030040010567340437612870713545173745242964061069500554949748226308662445747642053449980060976347582758513974162369837227806152137484078229098975031567712831639922838055961218765169762313871405128635667132742535522221846651361425249101459740651636467185151979825099513570074763203352944257553644028091917305410361014060569355573141860260100646785372425885123235874546594160657738499120723083062522686755149587935477086072569561058618729105493244411056615799967951388221200944009042779527273245189126314745326113913019671939217824361264850733796436114008630383844292503029539295836447310456970683171059924588639109543669998214016398197758484075107226421249523025407173035916412538254062282800119712156366470750623465740342011178449116407429973938624974679929040703592639249957610001938938148211099609243747127833977051668427340551543652698130532071304619244835517800907819579187376563751088510365601936876563024967040845260006359223843289754147293097628329590311282521370751944573144420154316712590883282174386063020901342815573823973370812114672885518118469430418030263553108824308167049630015134528105692906775656301763844726440608279447665101535500899021792704603832166327771780447434546948404863957303302288444442545598147279031225115765196556150150371131583268443108372871454609762600559246651068812283055101091927176425851077163462400247255827182954091970175927281908359953056122548020394494838220001206116883505136881378065641832802147672017537090404953704683871745779759131089909881353067450732675197175762803018993944509606708560847070111131241020499343458529360104130899138329187910983655445622349567224880730896054439195583845704640407891732513115002533006180708922859361666734174769463174602472479702484315618832280852669470184848485900590167334746615364176135569912250625764966866270519216738259725647357103160012197153278780822816228185649439342036151761284952258045507563725077967368497241495528454907379272651084326250252745358329338211141248068410055143890071418892442349765223329632031716227276346849799409670105958649382621152045553862501245998820410413962831423379085899239443392135983138710823789857971912773092682018882634671387289533813077098773064706644031062273366915999274729006872350530137248254427126090640557910288893382879845663497026000157917377107560209921138486414443916820303949644854899970648019682034620168457137269444805425278312609710674958043298029860615730498915651462072276737250510915522571445859929294291273751997243774881968183909804154074387802276569719041414668981155439702588927001013622322117934788994042756614799732743227445539048990668328415791001369680544817260921377346830292813956670507959495822118678173335885002589011854151762420798711924120797725448495471495050910268092425599956155086770435324479299345886039608004604456059433977200099515253258442707214401739535782277724423152403625058289015292292546204896805804779850767708168652773952942730242727793372241851098681759502944495669427889989350973689030937132154604187257451827250255817692985495581158377915263573670194852112789836015324328319996990903134144051412218446551715694741042908249326959513431881101196639983448196500336508269400624411042941914571158287018703961479913150086843378785198647145461374321980937960612672794954080644397679612804250775743150908018863053146400274658873353635107804797952364277818965959147581772438158862068935504231024521858972344461186599767112438827355495106804434556583409845001759095375545561587245877353461857736674201933721425574121019994577345863195264404067119272812799635873907904152604899921984991947107786470463584304864238284076106818296401201500532288825616623270164936726495987236432198168790664882355939068792925453387741887495988198173678029635990035804424369501450690354260997064871822205363415253450740254812394392611213507691633195617334761788141420367238568234857444185388828447752451512521505084517016658867038020110172079492244438726313094996428240067861788278767100774350221533426894390260069882887632436534531547403517259404675008997259827506198791637630925609690910435606816043350890140873521080341120192595927985887580865271256544560273783968938869014643188516964738807664459653236402278237121973458599741566082817031236970862203005899885570056362258082909155789453470482946768719886942355245480234154205972334609309817657171307651396418599932090999888301074144751380763139222892018363244597422408175017118531875235619374968097538766606605509097334476831088311564591649765582183172530777170049808917204777997881691327305089870353125791699203288036570639415111709095653936254166922426565025350921642008850624765963730884469029835446243880134502430176827398395998553898016334209970648625718257471877694871095486349608954483319243435950919821578126940886675096965844293199178763420868605405004362264822592697625227509065903071293865148921413707060627289084945317177381022358126751795836219151505452055118483822863738465683025496238678791282683570213467289458603309007800247881506090017998030307460500654234109798663048742937902634824592244663614099640297531560557317834625649487167677479019526163964391100099507860793606212652045291354933626974238076969845971785770869998011605337264303894038874771615089001312030274707614984451578181077770144517679782258564758288031448604310096946378953155976321631703140191312508999359868174800648419322208968580100306591302124546038884961247184264581937994118731048078953058837093359785875788852167308517771594280438242084829678133422929413762339021188403896046434014955422626218958673336535068832892047597681961697448972828648483672169057599627153932133921365807031341684641667324852969040786761972082031379559796889992013293697323380009938876662764901810188330767386517640053065101664736568451965578642067192947855243475526315365923832365810752874239152068780460456083875352014228988718940483615870106540886076520189413676711903886222653577781184408961852573578044613105122002408442983015029282644913632720008417435027695535245095685586924541796259764217253853512957273193606670654451155358073891548925644035264379527404060900998565585745302157731342545351029270885399979684472008728944768295836736712682416146811999444278232413421799247770225528940979193906561764613524323746904661865467888816633364303004398651711370251492259734915277505954419187237875171537019369328397229074050790334974182058505745599313604539940725176296663266687955305456325906193165567506848945561561177954940937473110821641339888082587888908105556230182686659806870380963189700921902080955899629417365754571518208065160371046467040301396372667973253707344712657770663283300350723303792749952757317787434814496365850974180711012033050860758391884035360495091168131799077369909136259483428154176147333025127802405658254385287573564860657941890187749968796497033749156643231525643196980495273538059859771140367409560473802763664405038374740122646916282052852303239916580813951195598870810626420635661735567699472093112775721584801476228305069620780571514748433295215182340677417083012656226765120205036514320235885616106190539366323980936409373535140159267604084338313536884418152886649840655329649316724615203623222467060170784013837264064360990824428453625138386811776536864565641620160878113635602945527060128705220271931397628377651242462452816154761383047698995320722630936371194315445673318426184326982936695114705457405415749148477661346353235294539770644185720340757787162432050990763896347501743923388263805673684155269743940197306431649402794945481263160713721056723612144660725280480478807257314989178082479175217335036651315922213302494802041989778947119092432819299373733284274112252521802917111352885182303339206610774679444701115959341174619207397543582081141242404030665839334716252677912339741608380484903081334901528597436437957347590435742503253430895826003218101172914209942197329119064359900898169762984138349383676081753155441048738636027222615687296752440186273249356577778768569379305175053509844185559715187441680289100840260470918550136815508797630811669560493581239279176838722454626029187563768027672455937284592660457262199870047303201751310407664263912014824734437002728104604033120875331449138228926029747372283139145010378010750191282933042899087183702890315733939465293103111804366580317177085519513805758230734592296944259980548666364527621989636914893438968841119642435605777212722448496774031759563927610490703953228488704020294175466552131857915062916033233857498337678351566672541213873648703992019379565373208854717770546553070009834595455999195874848594071897496149260158518999345853573837709220375428499906906535957042925153557323325587428713820397451915487880072894293260667597218694049781549307966893992564697518999270031713581606902757380280728940547026964026839242017998595270231707698994184127495397663574573814335550463968577096807880222152604081424012922070195614099435244130486085564884630117710300074267693284252265745352494961433278316635822639813609859909575502514960404941056911912152606504897481153910736360004538502165164844399294067210730983323762088214588995997472473972271975646660492932267693459704995375034392459748091186487121622173543587089077839975694729956398163234312698898311197758018076836291165236195883797921990561278729489541816829898861823427763189169119949249404935492130085566074615843478742276963349800931469988153407117344235761274147851809183772795336236631665707850851482076843418354272909668122516381579310431933884771410350233001459326509098872541839849384733562347184883533975457691737654738103338503643869905109962189520973128257720007955492762759179735665296852133564043907220297363440386691939939554620533555907409815886212574891112890771238079377136375517396302513786720070984144151112650087959598443623956025561440038313619825915997289490048009484724045958371335349789342900770927236528467805781632830501007314810607320419852211243275530910967005339796705064476852176439284446425707999237661092546681107116621630050420366976115911973974691087287222216981631527896299895032813005746661873827746749900129759473497662022440163075568856482125212303770006771454395101542738891693840198586303839768913058468933987827787470041984179522404580496037855940630187670322162906401002220118241527789677505300016953745663067991495427222155651163515588460753741043946166097751152232597123811929359715166965837461934649213285519355964097526638973426459359391396454653750021657113559912038867335631522035265691611243386208823121252599613648138340577201868666946081596142094627027088497905628166105299041898986673693590295102567911607684338565301997771102893804800905933389586069534038716734070148519091142976584345392156230430888530959441873429374890084152049530638015784023700569147891692363437868289761329800760650970020763922807782643944807792757762450160095353572380332501752837999657783693962606117226510317175264232135721699533457704972169083143613598124920029957333474869831631732595794341594150519889380356617904049799926428121498319730971927607410499965500038148538001437555818375858061435985348612064261531837118230071201380453223171247588824537222942566715917147333659577898024389595421753071002871973521673353584610566484092563534968585454721844050086943276506883117503527618454053561885142295062874659285012467739428819909708528639902353076873872526493473371107479755459536823068101199963981982051041688861718512513625202796331940385611326340344241140869625023043877954164852127674632575246867932661198840115037129609111508248465144372000311753200798681149902065093633418465707339479276942411790741935098321283636656156222903037471410605289517313085015175375805898640678391814809666898081612835190672206740153248478980160329508891979356331836699389481485408422773803438031394632891091856770112788658827074859591699644812635911867635625245337621287414581941977816379020901972035456206349083339061162825909413812478817490527612830852098996786992480940380547933310631926567925263136963389460564539218301460416970911562050018464929654830188207394672834409706029145013780546230681980453505552150858139762443650383732282520091443067448593669215554150276676141579158928147305844297610840246490185730875801558047120152614724363917545301701434555607595942294640792817336768810547684570013834881834398916943312451940116668841412570710456894587351489171858415080918519776536647378846440316793934442934696801266496959172159533027141393921026795015452341422392557420966309276597863524184542736451611048791770428483080871715138131611626745037928745618193203031053177230273301200055304565226230181618692810437247457501003726219060476261859586965498678447394650149804468336454819207870490986684897750024278044091473370741520782098810878105907874357534531775865271892023437981389276820861254591536887894222679886441834785582062423639789500587330747236849626812412496837556720592458603469826062596918920497580148988110559130085901809725340029375670849411258128515898170237969792488983635671968279693192268661823326862636462502618079317888354927944189165568584310339312942531851369304638727265449105269016058606234801194557736920105691871724832997693152319612491979928963324331760706773897705093970565621692248053892747380580338225394680875024119878765771676930738912307721959063764857672038243300863244393032152360922319679151210781561538630146511524867669960417179106424239620933671526996811177770949495518011402028991866314885282665011827546251606157243478662758092398558312021611169562137426763527741732570108400791609338276051154748780824891329342003638391955712292254531987625635967106332972029091066859549640218158706350323864044664896851897043125019739574347671835010678990711178339039354045735597365871101626026063392073529810023145178989530799145234922682117778041633284835951325926544595979330990826241912028291689498748270737433261274991198823667665878298336217251962741005399173007013102839821186038485446670643902389426529676092649979713990080877101849436079010046208991169020455157050480543537362256517366793157456378531481098858048903117409954671592050464916877899435708503768144742474840635434073158760413942261094935620033962213411314933798690812733919215818660763088743361699375247612919950362325478834821978068220098967431587255128611409570660489060941921128956842961893592448511628350911412326829716111482616668469624032992480800797673393001371855294631086955138372517200984361256723718459529690887364211273285517396675109091607242267900460767970035885936528309012095700080080748114212195904261897669161597284211403974866460111341357566908278635083211821171823624816505690222618825544111255338284277963064041149049920532761909694269654951889213078887095716799794493352988421868242116156371019203487651828459693051828175043647356044411859908116779878427266873000199659427497099874893980553984397122037074559072575185607670487632082302834377665004079525184704802112445207640675962257657907260880631723292730781599793688037916511447120301632459533323438418073021418303166967624321076681170188973078594494061260879933592091887532512711053835762217812877880100896380588034076381829460214872507229998827873377417545286667544817593111885620594598804314382963256790973650442802097732974807688265866440472125353181694999575375986851173451663470069853457798817419675677679451623563284869393874044689853175422167502643970759046070143607098751368556024608807645423539988970659810393348578317819024021738755647258009811301494464290488003060781022118838557787799619526973324338837370514770590115520130833190196750572079226683818098524012740634702908889113013722445072651531143765708769299656499789578199778972384876090113224394561043451473757847051402503565797819632711765134036997243263010573109669970759880660060007153851286726726116432366156318844216448650635220586964089047148975636233802620508212364044939580517311274371941611638506048449503210200271507520646879524675430261530408636857166009755565177427955839353793367984497536870973293434452526152874210503553123895958257378299051469663532278375337637280038306090135846559832559597719318564272726049029810274945809773374234882642480623112632726484454485644557676172371521910902194013571628806925022370368115066129662531409429362034439253206898492164232160407338107810203244337028195213309416287019921680791608102970484010102056405196899953450659264839634532635750106548344052696982738883109587881180069141669409069082644267828987841944330197253658114579764405941061126205202330830665185335196035131579490503197149483117382231252960646039904459313671759683795490981330901126468519762257293922618924628232254729818021187163159441992348300950259955113379351918762126861407431899367475667339674785579268212001089936117124534898513511223676844137466222362739208220161241510074200154888350468865338482136401307594791948712740679099175715991829545604057491615696059906964805337912445574663127775200809221547018889916799676269722788614485140739747699373908459434302380945060007520162252143215809795359888553690346354876456407585913900938917250263987950685737767103411496183420366889887186860904853230715385672881623011490385651779483262195554389459666219886416128340762286368647576146499387274912359364679016030287367349496630530858985730151330161626844717189543904989487515253497160649309685940561648326902174219126201283797155999888928796847917591346637096381043753329224954269414086343956663289816176628660275882532212891369040821521691639797013648282260801702416882468264481895840454595879776790176111818893960386915085557975521725494880138580789444426863257453519837553325698640881666389855378155896097949085321774200629528938462494471705365851871312967605983621135155600806502652529117764184485881321952104437057158584770879786334518213045662221131443143018432599808018436649648673583971403615347061728773239096445980559723417452794466657549157928883375674922559712910356878904959875430248446694852946057278722974654456491573177423497847304708436198776364411373603723231919785564031669992707802190589715007096186094884444898282689317842625948273471909215539771052017192550761936682518706875119836194863637653389651567400934099206791005428662327211772490188970928074545598692495614913376411914982227517474110846140371728935451277254336601490212684584195353897672570919916316693179730503399735411026828133475242606273727575098197102180863706333804506289636618690409358206847123596666545760212786513151640725471277747935349265629922981526640947453606029196453942394642613146226409199645232324324056846734138756240490449775347929914096885276731223009649079158213116967262377256648281727747315198515089268461217367803080024669079495772441880737507080006011362856985614351079758934967735523576757261134756994541346841706254478997539514753152761570490953113726750547409202818553000990840572871300968005462379578398186837089359245535661340018731196842207512007487441975794272418099573672067588602682161663405003153389345188007639685436275563659166188180557771713824879149530702376705025536036076984287393316725013762347766196965811608250787391797701347310225426669282172669808343241938852498721446310741545287659803868749385421069218660149311025288177401233983207935652529676149334796549678595308580413388373332048202230975620203405684311095776760845711069357322246330312177763446559331471100257935442636413317927133515367391741893849416646301594139060293671011104164414423420246663481029991946030658324791047851068019096246285839890736744237918040001457280688097145797950195100254468285615653023727487230879958032597480302192080606461808080360412064988013630085207539515018529266453560818965751252087634814268085239015518997964612039410267409091835340244705626921725019554455542579766263448137219052186273779226699963458424017465727825010882723859470495608945987384584491395341058223630865928846611797135369568817892503596021267002988986605641733731407998598161468859461584774730577493960854458218345489591932788106635813852885786147512402780285693998841699629314890680358531800721717063449878608614799687852638864912246507645564181070951831275117396708382500659585322127217576578622493119881233912412321076588982643836590439172556450558285842407456104084571202092247375025438525234687471159105342995564132086474088971728705841812915238695198995550867237027428462113699431778259997350686394361871889217898372774246980427185352002156768544127217762921631983758135302934653342485534576777444478314559816281316538433702537584030974696404075577416564807863706804144062577028483398557746460292217183315725142593003837642667178541896467710604742523064623301371626760489241491418358344079067362955794643394878558601024626297701221911793225532024620430043296871696022715714604772438729412899980584989154285579918664779338296165732285194440650022601846193981794838879407047048199572499343575567397615363222839050634215110046862048038250600508114082675440104866308097817112856841936231171054793199986364732862134194436506194069847246943046566922033242604228741721803571798062922455838473110893306061973022687247641262203606723251069891750494528047332595649656925370874866081099535865732738287279866569392609743851727681109739198994947729024030029005075470782304739655256664410340849151978389414624593680715816970426651344246861602169381497406671979793536241149898181819854189017983536754924164989209534564525921863403104271817032888306059519578731604739335331574656650485593052652352978207802632753705353359152713008684703019764291704756680178345157250192747859429617838689572171172302053787614180710811643963264540785526130020856823109354507968919680736371862478905758953201592493922883579987033813818879162374415023185526062608028186742979934781988489108618766015442393138984961868892388631332668866258273796948458431812995943381382625538705669798700272394833578334591553644758786630225962649759019714746255829252006202804650467623704489833274402042180379380980871105929548255672007721876707939406063610798233892328528605031816477055719420857990255430265126564330497111655550277223842460849842714327869408460997705531011223726840625730723471671674542920715434141984496235797601864425626221779648325583069989828608401764238508290363743556673714321107236577965378108962223486698098778309854111361896218787820313207351527414147391614268488039755437585311287734123673247849175326818557165213558019992192073757919522451102800577639433085661212692572193378835804220167104754885145312164066447512175454838146790954597514197223608881008180727738225920368687501327482766656626588533062102572254940526326449322514037086005008516524922936931509073060185038719786951811623630345283853391566990046207153968050833524841546195320924520483506713619099904387232794736249161027811789578503189403873980818135433008991752172746325546551036642997383528397272869814642557046432592732814362262986189097412752278676972313033366628868283816929530622681945119552194841985591067670649773436154258225658639019709651581559210665922623057838235187343024790205443532228755975756384138253881971870997523014370546010336731637183516906717599798157092582199597849630548876435462897539354827277315036676596645524758589958758698681047317452426276099168267168430067859269482248230355791552223623813743015777995203626609931892463684235332696255786397792461182618117953453197359046504850283879392156131938136435373002417450445515647202050167817871826094460858070648967191499841974968233756827215418111633885770352145460872627656538111470659653485234928040202311936377280343808032143633796148426899346173719838137727945981383113121536282314786513678765270171162139848934481499451715405385411536856265476478630390279725672850062739536566688040031212353045741482052074759120635533898805361425338368965377661668760282686109677341275468863402382201066136923566133472964892396031394709089169724133998077343830872409205321085886020883478232537775390141656764048903742733212907635884710310331433693503128337251234068317546721974117522612980593677053022621179858528974677135440297576130061006800982559608062904725440183329915771731029607460405727678637279461061964577970933013965795392743097829180847443925348573538104490097775127002157427851033933086217850329900671150882163452963879010329959991822597854735041001927724007478260713372135395412790643175514298326746890624514813059093352831663068515055220381468695015032304839502665289273115480049286162449453666824546456629103179257956509461959509050222164078281527180575253679949052701857943172118487878464344016660165175067653200660251422181068000143438357783811813125791851796013198187449706788457443396201271736393179948774318690252139863003546341807955270338048302991244841926882745916446395999062086296070628422544276422205496332329285815361675948400013466609978605110179665822027426781060831730779751541864729738302261204811604064402158595932104260683382825653871711613907698995680248128116318292558540655823736256716380620930818549764984094953952726386642505649779034638118708620305123608019700747326987470064235040903652544976835647310735980863577792243760881829579065318292734506791662037766227430705969667474909791343084289368468500092700116712858814403229890570406453954532253654215523639478972231763722125983521526167773710475131248882046063028765674754227096666962785778029890221569963651449119151497406632218039420316155613676720144069100186365935669877489249787815138999167996044021426747516843077472311597285458069689267032092922830658526530204822508790238644466734865372732350743791070952162458944348503480016556013169682737000622953404402248619722926070181745859710127913093876391646877336553677368028315852816442965344813209075446208898707236567477778804047854795112282129166721639852434968327314326657786640072477192208362391159081052807731467423068722866570153353060129241034805860217233708056660169735272885059687786688352599189801372949274863886291055293796944336496733107419143676286062985379887969022680184195118507481029652470011234366935603487890947959304606045872526458637528014681449478492486118105265849834151609745198128359254237736144845752358299914190439491774514196253776256270299505889968656954287487328564880240044639577312002878170117395405734616532253000196728659221799563731241671920086483286211293861229655124077897037611157420140922598787483705253521505457890023381282170096115454724818122548414376457071774936265424464583563967302530373779723981997879509538332228629688559769550942052449107138133384696907534752767537259714938489119696978782185021419783103648598030791015073365421497515921188422182030032281749445998973370428275426468001353753180143536855766026898050182587706112301383530639659934240176090494629992876080181366241333994766280595872565226972467685975016684198416146384859308036113295451399343119729886961161207449558018574649541113487493138891572169394995185195683202533816864292753165155455311232497663983311071206701803175125293475207862685912878405127171046244038738589461579671690912860106067152204378783229131685270001882135161786222283445128710029442728428355066655889863570956116744277755776804462874690644014560991061722023153929315156886593483843954265880172155355365962648421629686793178261788720066328155779771967597066115185122681366681136692699904119189409022325444478807003368990299208218950611204184930109359929471841379009911521027252469819289864308303259531642687735884188277347255158437750290493831664872811075467463845768035103661338874087336499932679066018338367729090641311142540984443053464629773419273506274596364379523719215585126646349128959538605970639006085888638453439873942375201052150428307290069662088352642371029851158284917766777957795678384795914458404392730339474361685632201105637621300330095561030781038750883547870446939873784352278612169774574332611866448511509480156079768490523394538622747436690229766759536627223026432380502527592024438612202621053542650711032328628223534359041805234076241430188091091323674045984739265102714343059841614909674850216709507319124194804038919597652641167354276060480512310300471858360296260329584540759140469321241873393897491087784172596097521375374447403834468308339366409985535319586149344415404512994023557050227307151964527628489210503609622555679725799993756117898822048973872641810313891883780107334111296741002327902812728946523346625268000872480205225505132982581489352315494604275245058862177640214923812383395949748651428559184141057696953706206764419839249348725874724955236793542810363797255778895838675861752327706092514659995979666886421598263275952416765628751661503931483049761019169830786521818304759726272221598276994904928741900269297468822775857899343425293488543727738269016888352405616460283033652584188483131765386765258324504555588954899125472561643541820830699334520304863434843605658543525466305315533389724336351277977845375961895906115862269933671835532834656317597387996667234521886080172583665479776610843399387573722838218338738989181088196616617087969824442353684121289200489840609180058893532204520715180163334970807889038471679505330821023986361369889298276244564517485031154543701312155226473601373414754302704961146634226169263163804685248804008756193879388713559976158631730163857542632228849125063117990337823414562843746784470962002309634235746288423872130361682987235638350809413172125390788952934937671709519167253320237205970481829453152381612669394909645835768646910703432143999888835326379328555423775367330502899071268890117075254223983482783348887942412886927866635730187428978751906195963792188386431653547022177801592743021495381651789397869947372178424302000184057565618552314700283906255026700093289973799518618047798277321166403911357229002548980245870507318238236370257311823737642135779597188611437813256480216571162888106132239795234673012556302414395141563873760954257322092765185119769296217229694113019318261590734045483720940848224802626053857451538592007437788728932450906754856449350608757023992394419921863926078324439743060360783658521124438429993639994085665053516653559973835251373520831178051760827872630639860312334552435451612123020734589829835471390698757938982578811502741081661698697618254318582944724345656365378796775581141133499063514624720163128724527359554519172476796314287078794008890361988327501868553780465883109597235548353664797511567855786639958041691796710845682674992178212820711807207356531436393029282485949051577157129975994734770060055551487841792913959794331049702883254919488988319732417171203358293756908071496252893252828242841707368776493762204816516203085809064385048253101920207820132420150690160527072416238916013241559859509652370687861984568817508577260194062883810836710103911466884097889822482668734702141230931133135523619875079543869879230548710071041090942798894259899430426750445897081897739791077069675421455461610789303727663135579705779620086198035777056314380793811919709741298700408312764197082965238080768902262233904997437584899836938555298274391836102908766693619973401905425802006509580149705666175129645385503897830200498494046944516972581674057630976066267380185686084223044387102333412890764099932357391569964174304938217301157640800302901217334393105148069401575027191738482277529271844946529796897149300975542608031334901254206432701723189065793986863927675670034884739840078784264630419274125314668257054630044979668072591635694592565891072064080636983853377411134309183184901605046406995890179089140366068400717450358316827005828075885199791541167670298358795686153107767063751804845709808228769494469447317018484422275255823453399956111900436339262518246471448409680902834506795444281480288986061300993468419517900836215402061405745526951601410674470716112970517177030036832342790339383161251620379856852935686352055106748411852947548958292753163109937749737014806627071357529775211868924713231277111008360921935103980278040164248526070011459901140515842345296474940193808486095216406437411494809925571472929177360456607301301053919901174256172636757000998553336133409605034786013957788273596927521256508935228879007854110550620063098864225350227041588082084745622176694583138105726717123296209074129445316160440884346888682156617814066559795247790987260502299569322309050063520934157369040265336471780518991494306400718846951083946030964610701165119345478967412869661885184595993888372487139982554032764495084471246591416561107577253683086130337292902415594678572901651054489653817902746795781599420088527093256538677992752900401950867645433491018577778658732936640880698019834960958357775304696700682265195895505841687009004172052500277954036129882150432666159108736590841424521329273867006110075946901089164766865249136532954733355936352477968495241222482263770311966088120231343614018626033078436626140541824898049443492403726240961430744863616587805317463752229385897169499712534601197074735444427943428533417967732028003415878967653851546126910883077972060277327259480663295008026743055445209390198260030014771770411045521195765754004349887106598690407604372963066477678954338022806981731878491364946518450921440817902450561278180379630205223054835259818262315906078397202022014311960056271855182828573537374612772613126456659846649186179604338340779327409672269767359582732221662386958482108290282772844112052292075169940541721929842664141772526608674449597692533634684627702290461665737161716604399776370532033475080223775389655164949509638478751645177499090928106140640258894184028754370616912329874307532742676067280443830255571645767292634520303265305339295839762758863013747625388712204523144849223671344985581682751343799118321290946523757139111872335935920941010146372780076981728041713142667226444674331461480694201874151175272567746065677916141223803808016038805505164673164141823921450861921398303997993579944392738448941570020609511592384283884980243972374540986055682261565229296882730372736124161144847770235666786116287095869744335182909254995525174095307590502636736113818303700094199255481820415981431798991702559495699255666671299105745268361802727736862441151628019223937720305336414692272488013619296305082605409981941123017269648876753052120563659815957252427828320346538052855680240686968777297631513233742927520221898596681510323427515710338671901316726672334828599537513044995933334367873726629421484200639569120594563095224156212522837149888790334800801506472017359551187333290089014991461195370064578160461652090132720504096392966976033345841895002103657883879398477686662473020591545367504526850205808519332918710837901480564891392846811727318229514376555856694384747634338547819064163228280920846885155662589738016395010993579038511370172192735657241244271098435870739000150795345962146507169748464866138005971845464853069815633143832177269779514547776796878215245213181233167736488018153115363554116914522260363564127511303803484209514790729928915328237403687406969103767748825033465002347924937909431921733698907774492806023412081940434478090427957722620563356555174056334388630342158655332801636815586695742802251781518581262428870769339227189993940174225297654093270913059934367676616276038354308726490305593588158876028215133053842097875934829716564345678891275483604316933218206219134762579942717321447186913279457466194893989110832638318658918507718539871918329189878684807380342485318467802286781177546692205462841630911335256326280541465798942173540715059570460777251982579618362179487914122506077951751493591136686684324516379247965845765824791232150490923763145614642001129567072838048797451071167740965230693327290547316323752067120295436821677862552658541454895768339722924310168845394956635401853953521718857424745287590237310102984223534395336461720986808448163937163896331560798854052358387168450963264211031859082631581160892862652349368058814102161324204298386190565920470067802140384424629490166017119266672414208515519348038025730211579414314474598862590882105665498319088402795064367331287858795741056498738096144932792842282769521113695989676227054664968727077654874382913929546571166995272928000001415241503204578051215737421111962261033057462231087742556149609111751326923967391357008983929034094355793973520117084250627768137730024795196442010549168609038864509797094028106518391546207140696080597602255087198644674798254186996169041712458825235073096024896796057593477560332706984609499305051705407848551706388679316914154191177748344946534196963345185308558744866282856273935669078860924708723485137627259527973492172940996600674533209308410545933201694761145438104788367576793041987722590500818118705613042535221186775503319112398608378020129856890586640771850871351803051936983963546640688220806742694090373330668347419067841500784896233125703518359976493693887447961469470441868680302349612586358868484599702630676580583340935722005521503267810299409421135033723788513494821790135037640351118637216872435606934756163188353167342072612729216582266573722616986675986105957222879221763136724038828833572960989379439909964703178987602623588930268761726254393274113197157433620474885023211980171427391633835311366574425899392524076503274587325254821519648299774045385984753221961358202897833511367729627030238829889745716628631206255384145896602923017014164064958471233011911266892082295180328246843401442126956281486080137529168618142730980712717050191715515781705453813711465793619195720096268748925492807612532071958509534330484069332173001435080330984794868119148357002589591904685357485824752418762476474195821678202963972405105315713193457115164099652892073107035527713954632451563075584672972849805558101043520447725613201154520854224554592678959517835438715239779480041817765651135934803921939474129533413733599050788676423195802047603588904181788324174825251957833538135986732601528824095358913867208742456235991652712301128689244257724966846751898629043734145491099160306754482858184833968737749085367877426387592783645825848034619207376310310633192658608927357500200869403340813524320743569716157160846348368285795157670893503718518313266706911710956494964544004505112756844298391857223553482868053265090339386170470976006121879248517669274225559211995458771589927875575493222180017486498329771749877415336370435382462754889622265645410129159266220937622425151088298711576673733538546235388298578405457386181173292784928775957055427681351537096162643153206959637357448924366418449116688146320378434795757080608750552228109102719855985794315302340218546878840814320352275257952497560457740840282091165521057321239349595336346667806274114781291848226011614545156107868591493408418225495549876173680738646432038732269365674214304637540036469409129005656303438220866402992657054222001964027546701146167668952713776012658691749990418455472135558469422054487023122538642260706971129957033408810910400839853018399771772753550721471630367754758607473451073621291671755815044293367837805165456040176848250359855247260682751056357446510651184625096531793445294805530082387187048464459805237401021867015118946040179164723229574955077540181540814485057270426104825761246593268723760254080419782531084370585728708639168019213178068803820100778599778302997991300716906273855491616811614429577208928751418981597205656207425524801260171944676104237076556318351152130604983382010878632397304794743157886921759576942128949315832291580182111434790403412595428618503988352294109234197822096640635332297454890356167404125704758265586448395579784996332533667750146038485442851148518954202728764073915704390834256292426486351143977833542710668689106999286823207133020188490502930852233871337048288561265345234316620795945298574671724093419967268605448100469960975070252476870885202360205504946519537638652583200252494508070686491651172350480630078741025923634844625721776950682626268097137226440338611008559926105989678705331092118903032466007509852182306784932795461509930875120033952407672765560862914467919182266858759668496981372587341351004868810976155355424677401511202790058629748568367224286976779273141442294170194876938152976880868988499149762675131210752831516271239246196155301533831635359372598752651696238336479439874835187333914558297631112990248462348686265158726695691650848689432905454605384803591162087713535254366068660255743483760153246744335046546036579432726856577434599666426873762221369161955041439185700684845813660701271185529932404510940590542252056470183635926896809333279903120930057238137586979235943731895641586790547926152156446251175780375143332824790375605764835820184667558793625180049975454002105416582637665238495904375643124729905093110679881004754526780360364506231336136792178435840266710787589313736207844171051912224167987531269101835020270362195675404161202754039558169729592724364567240452458010979988104349858681330040522966504750692618566456000033260178021111592795589918188524505661586365639697816150378921498855105952200910629153075837951284347613878022750288741813289017215443725633595595147920163922199607317909270056072713057942110598647025548841637284120439479896678403021698362706127030242495127745061795276323427437842309633190263045505821798728041269911084951458476624266024899241245369036197912959810205470087145813882502948570999898063701637594842261340324360833354051384825385976637588863043045133765247135992946095596339633301310496582373686096949092511032004554614080391642674273504523344766815225544190341220240989989064144754314703395737675693040675364578083964994771981957942023748478558119452323051114201575060512695511520947784866464842762820727695174025706853297397311681268435960923759018782741471166802795555965358391257807989716359594306954449359189566965464439309580847781783066399964079224151229365710114799492265708296480557994812236635784225545826457162466989224222746025366128745029989605039351216668758371989911117246367384445827445647121464640323516763881118585739577074029513750007990532407574978213437345604824573758044078743891806826483409570706971701407295687765153745863543869820897070419894462878010655202819257721536284286502594757793707349726141917517206356890584498885116709914099386390120940851277891220738700249806389053813206630326164564461352278704660470127838399065779705359994797780540578833651351594236631935261797343855234763765008697099612920184685859257964233226706009786466102912344645446680142508333921861234238485319299380014507214117292729522037048900276744890337627374678403228616617613610795876961139495268317167190247991677867397628501211884608125841411192479902677123756307792908570309722692994679818936620552743866334902767833898275132635926718451907181415814237665381743735465501823879523712192595966491456800243817051094873890167351148172981603163391397739500569798292385946897235424681646979252891836915869293067813116765741731226742681729534091956918677006848354140093037637367960102110769815133289553121051166969399264460553005375307428907392212424063094591752311393602414083782482662112332613504134968451496537067768989974947529857362202961581873003007012569977553649219002612400253290399937502149718327315729649169529527123344740465018612511792545069077085235773036009418725233078938967986250982205393256986440947077549413656075793739255356554235633099576373615605302246299852270637736127488517132497789538236218432284024643063571485202052036385276658484737229466966342119687382354123331725815002711898738005050643679923518947084320674315986292144237898991617271965416916903240630490393903394328614848071208056049193298711121199921765448786165881636660652260171976547016451031765405619822608499515168048638357595749036193496172950398379874809783001460730405067840711231476978677934019492400358339547179369853465144571699411185270622366082557511046948406372771855430815131765969227098511587603408739686423850652312188615857525674392611820196509951709041102898757439579579936600982452440303953416166603917959403900819573679760452172463860936232060637968967506307715582636788965416515496842976370237966264956208647954307096531929034729249215060506577752283446957448884702561860588447014729608254926759945959515512010663911822827332088802359435824725729940161119861654771838904005678874155760887506401533451497217844862420586455078301066272468815788646346420577820956607931456565346081185369947748392013772288188944638810285673711968803801352830465446541568692975648702922081064040112133333780220376877625753524551996796217493511875596489568343255281241235364345154507003204660751367667231543263486627537008010354738433116507923210650064060829654575470405534439988597861540287501171726997588447659830001879233000516467434139613009468212480600728135367329068322921324337070745758608806311055072207962214194501057003307579185891103419378513306070517168548720076257532491589451149414775513962087220294446259505443056545183892897810749852074455473138438718711772727583747043259145162504706441229615450531114306264324861913530705593591184964001945636908755213928840641623498359459507601142227535181787963406293822954119273145793427605753998435822658265820750510997293201667933050989575751748666338987825002532443664341388933351733868799647960225193991185971059266477166681083382386397269505195211622493539082479885814918349718985190563654443681466059931455427053485451280473836780370293131215716697361064448744140088061367588909482956549143730214515999871821999562616985132844821536330189219278477305160933398702227229919505381049129825301231076337275700944986350766574697192618233483977806775223716305395111178882530708790725944432654122418436804221671562194000812204743807464729324371839654957183366107556487582956904986241950948626209022259709744183724118603027732779884042830962082111603826353275297356613986048077256297445895516557908278585033248350555099748955153365880443423111420798009794250300438646872400013384107259026930773494284698045003730152791507627182878845636897934887645994614268496620787145870715560588536100229388394415090525013120168042460679585511944366006584062242047165171550472752638221791722296575182472132518782281571629246880661682366584376402828335836573438496477899047211716221833409058318908500714167667039141376420664494449450639660842521146295418555460239306804744220472055960537815951624635109737795948476182138913348260798658616204701618047960300847055480629135138485998889889305118238133725905634550235334297385090219854804636886481711329524198097063900916753159768425369023161230141150266696537107467397172084908611846460699270002533633424871496725302703768970419348590939363328765782594525525691599920816541158954267792046779856915747969779972222845971782776196087366907121022060732456534371401109275362196201381176701132834526465978071798487942205513309383170593224392688178446995691637332912243097045292161929070892823832643679680197102956863448842347249833168169812471041162025104326477046040285123635680580404093133335481825204141439428100591134289711116716560116952186346372218756641246925984396335553384665260847387159935203647370123080107640157287202044729041671040029605487672065558456541648601013349328426547558486333735415625826368200526289764481452759369222665497917177738147371976394392102269393115009216881693531730938337494817825817287294270357565183483403787620514608991058464235711726008991397304691798224956151365268962892645248839552610072225671904834883067063084078380922392671269692745720099894200772185017838170984226554911192704960278693891482438976409626821384864041042071190738897205772843609820261045830958554634343926149795571789137077264108227776797560765391570629869665911358063112165113584670049717651569446343345504741381215771270173917239236227520985809247650507975736737748528128450230613545620670338758787677885052765088522553428821990318259763461711696957002266316615592813150667463794845655204292873495031708052315307904689734237450566471914263327912185951928370606943337781481850343753917673243620146827963754397912482918733932088845451070930638272619289252576506484033153538167118109245662480397692973203436367240508136575617934259458881990291614835642178432871238535673677115298841867398919611180184824117080954837021532207597841811831573365088732736483918888048049047557362178264774194398758869221348278664940745010309842495473875503414997949853845435292228270364589598515557901398152524700571721580071679502162033707714191104985007206783231004125916694385100563137731876614051153252222863995711434499996154301938106494131582151320507690571860717193733326235403384803536667850030113103385191924975142405174109652433547939704699786941584956021869619563665195984722726645853428345184354078106860442922302127971929466883258530569070243950449386712242979521081017685602733174350398790155815969598751119019696871480301912642419316726493278847250910335636825845673709138867618488556660426258999397583735182557075189818710116130905015194212813866829453365142760082888342121737429164860192315807695498277071656228318907947504896446650557710723286734985318475824674261510471337651509725013601164861045589056383517744996682721670176861595378240535707417740371918521831336705860339537650413985918711804073963894196957456696231469195067035306996454720270166911260666777202444406714612975851660109658911278651972641230438299625445056847735163503824553529873659211944437528267007585329087651168317237497470490771961082015064621417129803963412961056794978331748692394964526488002089275328724697601840900549874985617869730477400433308620935792162563781550970258818426779138301417110820582771187440485743266821407011072529788992344509418845566511097962271539168215572332650926220559470998394127376404780815361847725469233877576066195032291927324753858006075882900565201551710590145330849780215186992977142753656969259935304409119003098466991102095411022299433414817284973462289957569340720073226380524354031478782542820818430536274104715645764762217764939551160942408931889048246674172906005186512036788064031598891873827908235017930863328564680245814250634906130356324212752897912923488219061100579888846910918883754202385129364771071471446860021228115240159175591048057707429676218355673599655638041503923266428951698082236450979194896018524614092642038492826052981117762554800314438561069906232714889828166789209671027425029329133003515978211372936834016227267059299309483147341161009967508551767041675025171564419762762460546026267762397352608507168434597252500720140120886098169069931090698122649549494853150537919917907666567501652613839960775541377224559754474821258392141029513774228915395754157449620502157030071754174247246062988130489431186807147547554698254325309904385237440406639819395341648825102433836485648587041130671282230408059827911282065542979696905120984492118512725011695130142014612214917206435901962662684543523880773688737563817213360039358611342472500078957035649829051667346634045100233983290539980575512056402718993002018903465162662486637047406550984031009975245921358451036775548860525124487195875772583133403986134308921702951071411273264233948899424234360623803419665007767710976993036676913180789969709633128316434455652748190919836762583806438839711810630219052539086934433926131719075053415601007382425369358906201368968545456876727578395304618719964002946567300672586336428535992262776802859723599904232625975313953878089469268569512729189866845796276695278460073622987207286825782408083581706011340137286875192583164323388162277289820493374449016359291680259094744016091715772580163968070963043616683019388539902134049923481536116099609579917279682558436941489563896386760327612081402455283864639915871786424059702567520055903823422958450650795851466187960775483719162485308078615649091894338072786713729248620173720235042958588332162859268978594907346963604122680709316021265178413131727760013842267398471620933651346933790092108974447246118667522846593554928031750950320514081239704026295137533734137428092077776127745674420522072436879482371203070206685797009708743575785376601664945115775517378895402061197017745337949537011470072639356819207442899781738094388539595523855672642931916057435266086161172070014116060584831087052507529778224125650987619333828955515158547102363814059254252976338549335857644423245568571153123415056670044673986724977352299466729499688692359464099328807555668894432956265884672708714248786889990067512433842057032572881520598905305999560697601944672889039062318524412997244542985618293083259805739100171292507867241824275405139549363546518607851590991019739091715431278364504876762381990050750437489629375557550812997319179797219460865663142624757460851469384202622094320384685224036208444799076572572817266915082841220489114528166159644182750548746989319709182004309181899162062947102217858049744509956335675850067844021379144775960748748744111623224453922974049062134612535565247061693847570216631513135453513799373345135737984245218714464941674679450801401594075307546110497218322472479125641054451926653152798286196836505317404722473491907562398181549221717639873681757594904864365477163036687276741039363381259904964496519921931151607045367935506132877652402308689426256444983610947768314681102036970097004802743929873730902311874707824375277501200202982616427225381171387036899379311203867289082072016459002318398362385385186835503119925341978092143871494499181238838320406026451569103485059117420499586431717788389440306786542864237127736908832164948609422452222637438038976867963276799231486374294776360241802314881934226915258133081822500281813312745276632581612631010238134730684161763003339127771098374687525967683340509899260436809711751021236897838984960443215179126020422868661211948160614630588131113814782863819123187014926059064941421745945040486539145028324044600745818525751079310422431985414369096350799637744092381328536127298574825981261325684711909981871770545447014568078846040403747893250790781790077843463255201163378447240864899801899892211299301651486860514184056738047798852041550143694594560327769127992263496355270412616757010282598638470057856583049217817212882768614830186758813415833535600175865314015011886440191210964140459165677349704667315561583071551485812707600211563785109373311608078268065099027364883547666886949751366095754313037350412007301569582746761225600319123330788623302482510993481989071256877759423534479061554088400942535046262273710847109366858179430363410286398597709388904568984157823220388070932747330168498510710206306452382238769002634560513839542844139086014154889834635026218247582487601347467036641425080711508531728709759582340299248240584535320755530080766399672586349568879751007646532800180261129551693100866486653987136612357089671172164216150659584553141873816419605809140702051209833730428484148981182027617669930614011290653020375329701719388339282716981992318874629972699781460143610411044012819203830283952757269409648866186397152006337891595043334475075550098018144175533173072754407250417309985169187120876453398756821027028891445425082654634131430452024408376385161281675603169431608385223272287208607830921766722343255346112995616917774777766478564426124387350073670060031911810577274234857733382424282629798008077112946829967919809043053053872062511525342191256341061728973849290909152046994516863771077509228484522162008084680339491057533926475805570481104118104375038330720819645866573840825507656112527251867711316807493977156648147606382389359487842530536868156588961140762030796844595804038857864864262024334766994877047635786792655898278569136532861850065142272648611470139869370246920385467855456062642844947345135219449737583471923969731330728845036672007055270951019531830752072128344452565770386106518388736281238976414028872273922669769530354615203088761472852911949062456629572770258953237664287060044394351323439624872061788896606221971832855782824916968746752850018764653261466660763029095823426850810986803012547283251439278640321358148473348825847818836462456798258829709432227602281987906001535266404248858931868590281418791922576119403369670779747474195267642287133110789752061828635583392259236180807782588367421280520043199641051642312066190812646364245300354758211738756665561196458925035504252549776460910079908298530772452376210592281241896175052981035320529690121839406448968891715083630686774137019517325215352084474252587023326787845982287185794752401042977166571462111163574751588772369154937781548361519626486097851368818087808572220465811662807748724685226030171678197278175597556600694926216201690046624021818837493210978164592168543111924431512615142184274215657133772588062861104944967261235227436237410221243564606247042123375153507807947571427740965866025417823899655572108855296998911556590425055631038443309793793776664895789267943710927719572181892611106118802041347096416045517768177106666444384018031415122639085222322627757224130394484915387955384264213922676839619989079592338576697258376952023010249124248568281322723206860676763230711874221240854991891817927332549402591020738807934911441900448722289842067666953980498383204133949424975245209491543683928374268145497010735514312217603128069903892906686481458565623796021124461707046061509343586253901977748660109836411247847305578591040914462146726477240013887404489520174295384720647239280793371429019136186305774683938308500725340077698065223123730576127937232942664352437365962589388900378793022159100699920437124239057696054756934855536067962283814075897697080719586225602589881460944988538011272378513558429973376548589617855220670963500721125499989752236974329933930592690252347950266995722406329493733384833988922930694335361944357623638334891443466380757055147459837464961726558054671964934937994701510195791726448602389995415077067698307935719659831336942959149758886964236894883656830118329076426319498207017493149456520895708049597940471224555969696848874529649955532221784239476275964064681689075781115222494506195357816429841132713651822307420008583516647082821921855558557100449893601402871219748313075858578468811938791969392343471897931570324549365640238418103357825511231213780917328091935507091666723049837844981589285350522590910936767957104145388790477966143464619778633228291515109990648860864977536836465057555119741222460746753975062688002959067602067093385534754610526079946063879943763719092667757904520145848079484510742474018699084812965757275155678617293612810618869799125140121447680975020803496131309162301756135325595283486844697514398837790300610955875911381990914002552635087628877659653908117326377122112298514456384164278636151065483941466923540589481946626166402887575708396890665316571007814382719445914271174661603882564944957086967801286218839301249714551653609633448948102691738957326247165901877240808109124199901402948934980060654596863023044492231892983456320928649389238607175121160642676209373221029824163678076410086849666223884067557721239273398963861962000999168820764680157126282846566239764938935749676929797315348672954372912769526822706601703337473621914533756322208567581811038199411431909906296623193056610092142883063208166128729832292105643042247881200830321495826447608966594617327104851088844121515989627524137244973869716887005502672766756529139569968972703370594044918330713373237691466414115585085743094493460935280371526700855224910614842836090582927754731170357011207806006811640647348209379556826731040656889037138244519453617320582822171139132652327417251112875151397380888961672081866908741636169175424446832093734404713203147033208124459070793299180365730832483243315938759766258270455468696206494161618465667246523964631362159331228852564377285501840403559268171836710571995794787632054379948779142124572988658859529377354594128545238143857967816534921756708156714396977484477439192416940716759587996695005980753626294872606551054953775201500651991581926246074989586644162896438818167885313360683434766305521797835355380200777262034500517863250402322477096858095007496849114715043740322804879814004865533806839047809445766866469677763089062732027277325479113028063990250239252352165214836837167144687016218363431152172566520736722422480566331091319863707783363140252634659527660566270366852084934085950055526835932228282839988237294548956802578681493602846424973854174679213017985046077610316295230190244027654818700461493914450903489130316661072964667184728154070199073543339483856920741935125022308535112709771391355892648570758652738983168183053847317585825100180970862055325513376794891027759402458356159279980319920165068813849603799971453064967422658051999382497595231371287834314634693347425810810982116271357645974063134796517088484820445006220591627105706701982623635204817379834710899805855368957395656278306204038550482352076299471111642237048323495268130833255507756664957829085109537775188714434908242553462462421432816464722920677427598167406141269410045349940082300670854597440325300953220376036789911632428298497853558001355705116593284488606450682082497815767671349166626259202366609306899744694289307234006785543782597055212885849377991078451324082862344575937323353344239536608864412942920760997723645500930641584015651830004482553144810123160190332357490821287012914850096857290177235474549177892271915466442551019153455846111427225245393586193391906029286251269576741576465685925681527036830497945905347651113980034858579019141141069040646653730882856457161767405803037620155859449126796150086538834661883009432472460678665384635365250881261989410046770883262629363847576501101974759159087107594013025511699921704140648029036302900645610350556652571617953149325320841887735462873402600454300750087774187902018672993181645947695372616518475083014853061959609480216906312782059276273045704716308557821358720127259144277882017665326882980647581769076649714016092351060671627104037042415050277394992607904087828738547390019537366303565193866391514964407189081294903439219458260257066846611675908556353735078405309961623438853497018226190768158445704637390194792474530068862174409814271791726036125416240564294259682337219850677325087070106405730129666404428098938779658785323399908119307006543508851950260869511675400537988186598239121805846259687197745479402683607965926845492129908522150985562181297113900156767244665636743217322003994880404588295304419191646176141118785789825744355586557243874080308865835723891761558235247361252590743609937899400626557576002724943409563212534629505016866956687156585478911397798491188867982666163820127991106831672211230508347128090536152386317689397149795464538214893278600981851159575168283379752444215636171551242791646037707363385769669014152978764950470189941874596593575839312929941653816240832331361519947131843479846447376630921704704220720277500073112082877002140501253812304748825448070085042684648109207817722228732110420043629290644317420089803830822326222931288455586664878298342007958062231300425323240762498876086233289849202952079840217898504691900083317277049819806999059551579543656758416105391581165441531926348080350009097925047549709834651384503800487081773139703288880184945738212080138909022550141527969078827736693047061958640534216758128432287811223268940563628946606367192770427160965074413683431346746295507052643857084101169503663846317164418166378936874880736490187222025848951495177061535707129625019905948624874011405528992208499557111367911561319348249676765112694024318828680549503764176984598084835187917084065652096937556390208793503293916921172661831391347476770644080784734480142393540291792843848208870827744825212484661904315031146613255825015908311881552102310105908488263461202609393606639232702095874633297404414113610006917925388277721880151527880543259303726882433121973878483384554794126530422637554637454557740851780734579260453692441662546168063222345682788112136954612117310167396280967664612903107040614519293215454131267064774071479000424258248299490369655810052257485073308655185443330517252707618835724850794017307847234428065719920968474554195855349697211819095901189685081644107442201664634061765594799819381762448551159261435482221077422444257927828694174627947313525847838822017240607527840394952685830879024293809508280945474280105574393305346258243095629306519778254143050284076405075764745196177251931633249684400672233470266642324556362077487305313914917303830685497677219599214369390649764315407709831777027180488599593011421087436197639163850530107521571852658424860843036722192058058910310362327193796661157190016074902539831321915427999149645816701422765556209008003444282462332607216080834381338633549379267350351385871207749610972062042091970001572676270581677526121445800399682250952099678040376775283553990599202994991684262908289601516257379276856839616601950453470622128623995616584026414802808501890290828500976175152465148766046454711695320186231289923691665656141639419210917041782401115697865124669414486039782027132260020349145526162410838336982929752759979512065652429348407931264402252143582351169001632410776933946726132335018330594372536136666717830879028956970264006007342424991481859699657788459597940658758809536423511374787740142259571366652370942569307319476846728579885374879759429709560800422718101058849355634368045068252236262517480421714531420191955386160681448458031173332068537226840088511748678942985466444799295169148225768206856824788535565491223720807165617439316020776468859364243067395393665226411278165597737656131907392469628377656750309623027596767214822451989799149250324803322084089857023818374972857496360953008607616377640904810957541720750806105160988792607176886563489934579808227999517380632090403717812646275789718106462484213496888941691999913010945055969014364934111859423344750348450585740446194697728456667929956440489002799558654581374149006119407253413596461746596825105857059243598694827633209606070336828833162103291790155708552458176943552858079486327126555014353983991267037934660466532717154899996509927756411679920097589984099517169548376407474226015858037812402005060574284118177372512674781219778669341502264666067312604217008488221675403440761531283792810167758048672343991279306378498536345379604007646088749132747955086076653254647483539549301254420724566885301946642150320518432783775402488909770449791555024893478261580175791362274123549187106903081451344968749734062544119156416119625277472175909824233089748515562446855237600751058005397790780180821153659833434368517669156097219923578907317052762290212173746124978674748393036128960109532660039533520465759067287789789966251297240681505476105864936592768459285010922419287282734304307658514410543203364439092723680544744915024300460401207121038636476618560553157846446821996887030440396496254777401588130407528920478295741010197555753011989775731503435232293553116351571380153224511072536960132890889184879754361786599915387797594010720600870386236879536145981730792708045505735597713468079576041143498873870245375671254788152062324946070964919730156759533213182122736876137807030621127526385743157905158756471473481804207343420666622358812907683559337401092914641379537643343024970208058623651081597407619039000436299285682049941071340531951833422018365145125485323066281040326497460001777501935083247306017546032278825716676923419925306593031158125202605569928398187987780927782229411522127116371755468086642293934499008625479048966134301674875322260346503060051621967318237694682741568479002086671303209301132951590174260486577508063417244980884648286703324070365201181571976793949948780351419899168710931373332455880012781137951821761101118576191840855604744212062803392288343773167837339877058296248031356215951740713445394905991138574948734340224949074176966137227502551070249855556623484008057551175637756137197375142238863758333768365788400435339779671838585978573312160450216565762226400459481584009294389151475156369836394213277483193632827110585168952162817316462624664547940427734338101970673186974080646277587121416840782106012003051630318284631760852397733487704638073884907616183623756896194064555378617548009362839211427110425234748408650458997741821025651328582058035198139360708377292589738872270200021552221334855416526928964613144630937658210145175596030385639484065269763660055679758013969112223657731754195441826275209665551616475721860348645272200889641212659156437076137631352089300554479679872724695387768354094327172348825197253086123502039601752545816723358247111209580334897839686137793544565160215137938163719415982407501534654995323772079479643887298272803390589450540334628915636307315696017051141304846468653253290080589470018929664005866957155953965121378586055108653962503269492268268461932278985780392830632813904289383181647949082984750608856308476124928899972021001139571571189069230103593536445019178992203252359919258433569347044149389400124120283864209381185509025067181169846853406782611280352355679689765136340479211949403034697059197014236151415982798039116129321040902589692430115340221572308715881510171816177863508855536460271136601439011595897379253757285973654167952126347457275410340520498728172878031670842709940670866333833676296066691479367270658426513876728726541462240577737493064755707213452345642183294042407020004748959507950425821715574244831020706794792001091866663510967855621049847505261121905039082205397561404844211113147083905412468750526621229114964957626322939023489675388677453481159942623053955308681105828913616027222075587307746510510375819386417416336736838224930861139358510286371084594249746526777762517712032623204429136529915603607467332308896687947409993342074074156081529350219059815737228436090353251921947466133129611021623943627220129357661070587214957221672200492773315870006319019927765278069808858843311928443683820911419993177423849764193867172548712819008921770163072102683823512032865648110061522851167447502467672877456785280843035237614390991767838032372388061392942515917924537112965708992551849085182375072964480005212782263007095276609394311719775804918349780149292300490830439975160466037128493871698995148404534657747790732230407583622418216838380683781046291309295450834941242201757499215332945730458031060241302194691703837452644109000133549592054032520865268194221775838769754785133773025674535191378976291189859293754335626627446888586857624227999850260882761347014748089380059532133543949861680158614511255462690961147046785733694827148653542795514108576395069180759755762501393316772620344958261010318066745606216777302036601144776373858806237820470197078691439457912125487010279688216772326842943798618619192085200491824558119960100021943676811142867690522032805117174348592574635005197033942279640399801668017087988803575303188643464229104385249674283131848499279987504785954480955852298579472409230012541498549212712551030178346063612226372882039682375511828383410257049275065207582361045078331707059608255402425410061279348839318819758273923079244345723194433288748834126349229856007330922300755827658212399499343161027995670400766160865416835806512614934591267918775765623367590681123983667200412156230264888819442669800780132332288920126635851352475321826442855739229858795226982710788199606296656579936945957298457019693372521344322889026674391773381504154323546654196472517192642120444376166236015461840113296544535579575280725089480647834011465859227207453815138517369209985733822851475006334235121191485831687656130678445968571065779494971396486873805197524081654168002549438064196735433458392530005492929996019905722406638155839282092719930883434700911602054382232870957197107911970190167708610743843406869400373267509294166564375399227879474895413812555848823251977633884139117655859313635739812190942365222463066065514098965890809385114615393144446174148960709152936886010062792697744871839653565323759070546790281545926648869943605749380032883074056116740407173503562986050475439834053925355134666068203412398576265433159525324014187886049188034495581015850828147622660641874953712968579952059709949199806186791176601500331997665316344440361760917303709904340481733993513948624345225235356792293466841440363166904425309845918187908421444127112043008644880020112190910311855647916244798042584848200296590057530883485202552863565587976986515089244308983485410990230841081823403884039117757740933886342641055026149264277449172056834717764762839246756662816936305938387743272273382976339464269848743170554883536213564581262107252868819163275851575544707556336923459540086290255512022240783460155196070683537459498010395008018233662390144289488701733333214833848476972604810147859613033323395028564916659716275642966749398883219914877127066924380525538458525841862982952317487416195218540981135094850222321715639450231737058054658648569837970019275560347537507004569415989461557386858367438978920334467964081173325565743671730575393859573280926962439530749477993284250280291562441669567861947239914510907808036690513220670201080970450671961347967990351255609792533620726240270957579792733960817013135656714858200996775040363358812294336373955879302752305397529705173211028958283299478368961887385876876194731913177713838850700303464479446734716220467697997699569809696930205071875658012418460250241245894016640404267597428623142312733978566341600068841568332969139582066816743158683343862932334415207836547527625024725650457525224563373701622113064340654024634248084877506753179918128968784620236707202638789778465066119840693603370121257296174048245538792307921832779547944025714812534173254327894360932151604507988017520478183940822536457325142226938444546891917198012381524443496662453728085721778722677354418364426175167269950808522003289976080450585748208473072420459572774107225633334051320976185622004573588587546679500449196753276007275359372070809199483742120865599096548834811387302465190099565943349335278842376337353343837491561924893921481073698614509865036411935131165124798831463152931654091724033486041204492968177149408585278960946911934443220257511923566103452228782345165723826630184544270907084374448884687369233220401747808383165991124882312609502003543294035240659508546850411845947204394841129050105006825965631337725481313177972767076180369901714512907317639144491173180154235587847750212848501266145944721988560237050612104408352361101511110427643320194015549582484030408259969569579194155857582503097792137042040448303513000336754304888077401622592124084394300616051296074274859414214210169562947577386808211131801744478444125019101985096117232699317796668251942751823242326500037147388284137459854433855909907833272959447441518738673858211064791404152183562772013346350780001082060397425542537753410726969590646217401561000385730802725332775691307614997317811014915427330691517446282803521740224393197325699817734601853459932258527278788493611316678277685355182821950208642591876911100898324757915056080262541564350370277245839157188958742743970288817637208240231687168313496602042818828183831515550148021253753311007742454569353854322189968992807525511779929594667269983430470066875114901926077680381609129753030203370011495074492219548556019579041849606328830537396199952151468824743861962156556761082882538337470160036344760962945958989922872043987543277837692034570473342405873878953426570368636791130555723957376571304631691196216956505973781353563389065032469214287890212608398681182641236737617755413166339544428197301129120675993718869456873375946589045469492900532172489975888866373871189045196289027704091784826533346499022397510326427254768776451207742958020135581471801461615258718768845050871403553448322261777487380309341974022893496725341826180193255044365881802389326574145267178449018751268116114480064120344203053398344949740871524274743185112997778710987908617810330603591030412891858174726235239825742937034654632137002088745802999785785209325632611320093151102521495055318109483831536870079250370061097566916951804676701519627246439040712947617154817293350599790080690952995812686458575748849721044861345518687672781304935613122650290456899378390826674310275200433402971296401873168352654330164495631704556904937768516251930797881800419105634231687905399136438295429562681402377138061051607212342243799071532425676475635463234800740384157261453963347152233975747256044572736140584977348510835518156075436420320674412697833405294885244701849495851388659249933815233202453780246085055224563981876775027339145938948199238143196745356012388390042915008887103921435380320415829925249659601155906477344987352163790393115915398684848899489905704354008988942702201753787527175525209171520400348418675066871030803713445825640748685142794292254139774186744172713276814227078599790400359722641804553798265543938533029149272298799256202916023452813945098646223847379146742593791147377828549555721814055919685998593313053018456830936409046103457938642443174565478965994486143123982539747238663814233927082497473710427203934998460020097064877500372635835247656979946700542550375205245635615363463882929723082054997811301823432333636159839156966193763341765652862872433481329013384746997451590389925331272530516747969772564392274215370124379483199143717815934476993680290332594808499280996218750560312131494562386085387244272250500595773043994571860219037895682202092175473323297858401813472778336227530461227581652743918120073992144297591488348899934142360955371974830124335226241412614219138001233582898724526961466153937775643124035362075871608204139180438040582732020171396079463444561921019892672935925859153925681205112252807859280209504358126917778832038748089908511070528859915519308535793374427159995188709429487245110190936610551482132919492499054582019513045889762873574366762976628992027184781123361534306634059346617160675818553888290003698100662213467336232293917162911684619495852545033337460547737913187606726708627006322414991113588003169000278144628110664129502535448023639977738273447847787189818358056228828354390238202732066111566725714279618688261268392808593428152326485493069449279864699108669792164235710378840515656171516273470889815268464264140702646609203506231028764911590699419213294430179335915649807619667610901772840740619835901798124324748501429297102862383467167383440501962514449345609375802401627234920698105476125731548492379707311035438583861034560292816167554926881258595119802665510369477479202744749495390475813978387358285508089928031368422032420461365821262492093862981028077634219126075936187998382860117529980935786707855258994398232560412608549768880225041499078125509911854332265623133070708480862606827355848104281555282123021928515972588714903945034269720003364596758135533942209264833196690851709822084972699514533253286860825180101876886677316740405868224161223407105744660513567665562314609728090682818887308573321054798492800214280814572757639311355731566661104342604697499381021940796900731401283807914615701870940533974030740243295243688571651042251688177080531373983694356948161543938766551884523295811087789811561267401967368710076918121960230389540264063768881389520396520859467249864973698767971563685516131108093998877562022475282251838980174494193601446230460946108622153533853691142779919598647063467782958447533126186276210053510194981644541259619558948327187228238684669538589354138024726741658262329772984856446300092603675766124369381625202549404222722579584888720502671605601665941953282478326771541203773863013035473612749997977398494392480307713672308706392930611446844443441550061034934164983365139473799836917819720695587579529280161137212846859726157926712953092718167630453744300968129802780707127037244622050038013152727397611162761587326352854501789763744049096658131953236245619420369196270654268891510738762148198733902368395878609186811505693501415887818001659781215006259371733250391853929102646440594950970257868432378074152872917499633455040065281114226259793574209783114656915596020639548868320133608648223550686124352864784790414208539487583294376623253229921104024406976663330580271985896689266440611697352796270396091173487390968547993878754370510341485256524751477957277446896707887913044969592240129844128630138058478432154901048256184614450938808881937498193813132643602841267071872127076923374875535081078885039502890495673162818066163036162481511274512180543624864920905264072438488661296493342037312866801652580149957159322678860046703296518804321723641267061200255149539043912890923126021070390604647573087768076112101957189514553508787910619122374816526968243231040844230556869767338639910019691873898629611615020484610236401979038336113662450122639445825953050246998521161781576950430791017855102908906700390810932850966783208899811290326460098362272593894136776117453185760499183192485446140193525188647802147372341750158866569613168522419302326342178993074860646979590637192910892075210996967046080516769928528438132822255551942390483571935889216162549058572227527582948327225468942314188901508370435906683534606187734408656522608354300322902980278834220609510162820994543011484749002270339594501013433532882203583341785244130362860028555726788412318939646007822339368936572849039161604360379770970769005908821508390795025677423030559238686278320820745567930751796496934194869250963200064245757924047951956098947553309415092697169330628933359501681076800343009582866305646575730014300269380615945750530653395713673178128788107632756502322233652071111595277067085899413904587286729388724850266456167746728731702336457072665807729821517112491307723916834340952600310544931340993734435026320788737731455867908425870250035220474933733220222872940117443023169726499381695201725352375060463742437646105421698228177257957587937280292968898782299095793870905978325520785949346309319078154639243210385679708782014198406434601080026758023904805149926009057615426308104168236036470090095540747715927667106529652658661294490052444931155714380572394123909784420199319685496208151806133452051184805529876178781261919659476017375301781115935335513155091216736012322108115581036555008412110209624704741975926302744092849780915134778746231227180850565570609229605047877902377488759542471621570362122681535978262092144287660449400079373238288666339990074388071477732235329545953336775871432550545622214679079214668079533758987898157470664149834290481056328003995528270203059263549333089401484877237058595595642091380128255035785389446558194773794843227470169075988523570341385277190826355776648054332348715366504304161327556910493363611745004784091262370227720401589038280386958660292663804110324335840291047050652739545247807702051209738182841809088718795476019345112481552729107238443161569300964079858928716021373824565857841053139383238778325610528774899156494798435297129870263138439642333538169221157613048983505400408291727031726849575051492705469125489917696199816775555413642651821742888451269427596590686830287953551688210361644407576221507064280871547243376427884554273700649273292654165140925663047496319847766755472665682641721104349477003997340122609244965962334721593519834739791589675562634558634687968813008419913166900750398341116686274683572256746582641244646036665312049385019411671022957652507682098993451628391763738438724494589121712000594234248056386690478600283404227716663463036403698875834712251460201051824494961655225548670616212232568465015085407781470200487878740894600454647798415430698795972511709183812545646139664359308401673035323322455202874880686845234097402530294630145037627382044638879776367794662217278103731368116450391992444303844297502327524043853941326328492742427016882493461556769803254652132380260786804951323742908450915332150342107133737564187229030430339973289678197732490377460881116944621420401718695084381909025858648980706956580467225379767966867325314536394558351904846355596950789625189797022032491594562731287901595466195257436494602289280496978906009433961890252840783736247115252917944878272561426361244486241789110387008095285139965291500978916205450990342396808922168367332672059971301658141493682375612073224284647218516953734863975384271213185269729880758010586146002258786738439451606719245693671585889579449255269401238831774323880483778386186678442741927042769964673282125989333165113922286360324449028552723802348905735433728914454395492732137521310694536883430526044127677827660499367059071004655352897222178898511521097704787577471404332529133072720515504011796454420394174320742996896375797422522468846038962645255074135212860658374585033222553108511693034622582879321220976413879492303779982874338098005087613549382445707300163971329849896690116361847783925935510209556167289430588387242200184948084041191218235089144797232272755571501037370258989791066554536933055827228675327117156040677033523827683882672646423266361994436020175183583866820571961458706115588958219725464736018895821021295827700086324185696303969247456958004457258636101028874969460308835134880494328772735976204929781757725264018368583899071238965917004254787070698836668869739992274191135836436564210363632495601519414429466780161836023878997768012215341048574761646954649530913213142262428491244367731697269426180955468442518892699755100255008896233453306032497819218859744158045640414979605254812759719312805505895715516713215638638977733319301848741964077558000862465492406285904796933196048318371446244785254207063487956281784020880600854629432632068418035801287463081737361317196829362375452431728341926401328453009662568637996743266151816326971594692033222610823273643773112756779872343310858417337115208594310329557379762394422872238415849200939632317637185382970578286637326725858246497749862062718742751073428084978048314369310095007550486997578405080996432516580802117754077833661107066701486642462110251879148687719926084254756242190048309909092036568174528947859351577743269107993687240523040590323267284650441644855758467909130106335662883014568248361337173933714268299128572307247591562229127578879932136442951218170009707910041359399030912286097589663809685631785268951970397856441124445392909426358789158431529138129145865914530232586356018086773014696331280740767085572895762697372866154855107022224501249208706177068849687758820568748921576629842752020535005021483732739507293848245129969603001614358201264497690524613904548851907635820132603810013282307569038740195676392192127224287586957823134024008753715828392238739521825105298783592823723043667871102106290181482130282828880014940554093751643255962308252094099719259629769619489777218094876590075798491371451775433667564980226913672014487351181899730752586117665360046933371042803551981108432432503067960175348672060157870154612894467104638049806473361903125436036172958686278833681780778777777869353395971306933689279045309581635418574747246638009223348101320259562244663469829112203140801241874949119683668586496795277043308357801383241838896383821449109864985095819344373568265956199468909778180891156097279823209635405997854210808518300862100373778514559152487416376498173800240831223009301690421083764908558574241994137521790649460238639615739616019993913485774244612036001478362140118666881372227053498843679080778473701028583743423395163229549007097155743502616301983315970744076206202915117787505980599735095560056496704264670843560010924123998844254844540391748409772264913000135503481700505832873991493056114798351206996140773471691677906569445288455099873408545119901429815716760861406036062888224934925894463211328705484304529381816710422571344026289700600565867016281756365083430383670509771283336219773061104378396093224911142860935827698383597653398030875223453410449708806176071446343424895009861910202305527856485162380343676634187438917009928043787886704729472688186230115928137133473124260885013884725919876651876696251826383661580252793737751233344911446528141643906270065591691250887207148811348251329270703183202963112169062119361671172887507048902324966363654075918721600880540607644594789614699971430256834050572950954488422789703502733290714825384588508622441101847751260129561896530746613178120879779464814712377319579085136633928585391235198287361848958595057319777374108440665216577200919945627155366491975788405249269000954372433255959580491325089151306892681596646884442214066463791968481974962399094491314978955810259996995086040123232825402356573516028863361066361379688050260407744662891630065860072617148924120467957203982483271590543530983540940144312268224663113664399362419265424603566986098582621074460096477238165726321763331762427117497097970998416799878240542616365657342059959537222755670830549193518248583401269553635699139878143251556385694833916313837109055004148079925201840835447007540066279769084306944702796680883595027975518393397559149898557670451748110631259881462292156245682175033009245730418164982164298933263947926619423431956177227949090237715747159356525088942979505446511169894268053293295515296173379774275460924597506874263996032235016371678595455678882586154969248499751535882245301719952138574933162327581005241324116621686680857119912976003747138879306910980511825891632506621862054543327143806514044745676237907398423156888206408141445689744721902510777118648005829891528736331027511603912090679044542250685222770397787076065907681303745429844315857280179805713851314270097609719951057357981148343731663412562877488911863984478794662422515304471820292107533458425970030493149393238495013349596723528870714956160930926362385853923766926689628381906536883312700077446604308613605572572981704740007833502514306877734726432195357764026124640797323757452169919326205851163807789918362540206257519590558739720890202002800593869423448575319041805654303458212123479643589593633160092680116936898327655949788311184210651936778864839800007982248261959910527210981990307253805490085348285886306099661387919265381601110422009117694449905331488066569798125786241148590318316381858128029521918957398617328850641696602952615225599568336512334734466921842236282827843360009868086781261828581739062214930271426768382502235722628115938263925115236692615872142345389258318840798223652600036294007094969228832102462628459529153648899558232252655395441005598634179774133633588514234561897278773855924320474200623047846909662812955748517229897039582609573209798868623080553766161477443597267523642999024450185360975540639554718149985073413157116706573960601329617577804436347344324331678061730851126721975381719661848893598313883004887081418883139675290125099773122567419068233010792772047871631561730775059318299126066162089017583093480913829633176375479010230589327816660345222642350193858903537657937376396484676362999305549739766204141629532725529632504759033332702138034287382474970798639121774810883657226572031834026430119517954142319024635669416624041669810132188252427338426064095997819400343406857225276939260121545310894608160452074840912968809079204261105248529493131132854074560894087802233369723249624154740811455739655782655938008596040612302873183879635061268474864932418742209024855605640007220737700830767858090213933411226130807826336543582130517003452340012021328060058813867482634559292283966142491666425167630899229593551011567232004631457420259392765229338680339158954075822808867823177967965749955061340329339143680478802595008943630382464920293462963089639046474530390673452898701256906688815234268898255368294430491689053075271061612483663035717630095196530779173893496008187314096115134624033176998161440964280054036285869715830374596806352436454602105189751608296673513578131957274316565473994525284543575850311456526115073114603430305536473227394695845554583687453080672178631578426476768833583022073910194048219171744390742987374778195625225169586484123575933991456726310514463739797306853965248655181095474906343091163761371197468924714431761743609170170597676030650523198143766344299817510193425894810494410151365055904754931100787590058294751795230785039831073840919056421393920556745715678168380419025152947618644121377971710615964008143511500590528271218699048515295133960266376621572859927037198355957158918307570635823922027786762679309936436104533431835111045563678076637266051604656867576668396516344235602688297809449685637579812085210870804432615092491988428488469298901375464078019298361269016226482118870207455401774965343372644105902838475092828155814318600220894380537175091798548049096908134066048244417526252300226034405063525432163787921544259490788776119326890754767174381022351690430766891142184457573471925044339785387613815173260375386106994388256661428365400658929692562567330454117501492000910687501535674158394082183385836145939317750039098258961929021839986198077295289839706131531286411999746905896433229894093460945481088191630161887919931218273445519875024770764910112913528745305197704408080915578472954143305137789121357425755654819830423307556007674314730788013648744131468271900155284224647122538640851585612285621850329092706334867525629623090908754654865597693136411207129492854708335192398995295327414633535374618965068611561256653511662558579406271352792368373545657309906698991176990704182860219779620031912194127012248800487420891843925687523198344544839280110144092523096438636830679687345563320326810320891537619888035612572581925783243937017115275722224329762750995761240573695997757803184200891033170057977606129523226347143087537442797756881340272825587959674795980529926400091585945434707079448635850146610715779896718577730489206552968337619682988817899748656793177676624216514733289954075297270878873045386101088804076450727905591443107001065125841816994200975717903890921876284806136571058210271977346266522410988190795142555567988989088256053040245097405751166315036854858413627691027253116137271957871385298640881212005251782441184518862191643769832845720758294979476736729824452948981726548061177214242571720030785240720727823378440586154604879018343107639634829915192273486467801100145402423130183561674780603603710318235499581755337064877418313030399745608618911980977322724224119604702774042495422189275552867388369009413733438677231477916061888621797432297087430259539959996786724564441285848353150420158235597641315797648658160280110733707884668816991594978999099385087591786911458175485042088057840394027228441401631947090677054937730583756603064993102179640969271225244224269831424405909588343739329452564038380084508571631593781970115442782782232543695510297202472974663433254588971836351137509820932052816490911658332242338688858702182796069760786571439396220377750236717543435835821747234431308507254343940312625138144669491901312579030925753979492103165338580490383595800865415437577940882057246643962270010085408715202091568174746963902400817048670927171385732301236046031412526496516379653788652609775829900946081386031803891381580294824052060414258998748273293038223532422958335164951965838276140205055156423328980523973239770765221530679541796644349862442412941771764920751612438237837760772308204742562161547343385969356398966625448537763960178788268816451180552921782811313494314502830696613489213586230656149043927245410497892283084411598644320017882660351989493386844531065615232569789245634085400659254609093689785967091364397266794978729959419680775492564939596432486069411858738851549896127894837466989739856848122002690523827134636074651102171305472467787729370809485832541656488314254469721393392786018880843443436072863436151238861520379950433932821014488299732221302147395405402799918854810609873033307961488829328862988215241331876717132775421450636689269581102363502617444608368197525188835541554480704674132679064735323624313637671050856799103901985262375382529721031400159938295093281508894147965658498521230664570746642962765208428337720901622757153454463629703675442001450818735824550819120525182788755504542246345561256993079476565787747578250732591402871116371423409248918498133461954571126269079135403466073400744253830011589866019490315358521724776346481919170341352297867826841036139989451389903844225463556059967264116757022419669762719470740023006937422607771484986190496658982773804576418218911356742410036029131086262720376513305934344882283453487204213236521187737247073407226112934465454485558728883824819025035562618940202169893475536839637570454901800583540674227742418112556487039796447008959439928766174900619183766039044301017153635418585788712466588871395141758791112833623250178329948275320245711037424760603014399324284747449685154122935274334353208018842818334294645272635065466051242129299523857166442859592735078789844184198499799596409018251443750914623686050748872004850530378574559525100784913515110262028826316384846653763951225364021688451979179256182778190805278815105201948491198479629678989502446307232902668514312263058939009934607388652752807943658891300918158244248355621878563874767738552156175545897771638448799196706866196120771722509391388590201793665579136744482826808848039377693388580979595730279042683748851590583131922072466886002806186045803432359913238618450459463251487679944186774427628320055930938022992539510680677812556852393323688878124652804852697843327325198598206693943809497773087419283357950535125764623286574427797784643609489675194691632057729725202060788785181138412921825793289262653274238296852527350719037761106737596484260802637935165479211181887707707945371663393473977483486449142631041064948830504823930053413879122273241060756823644831440087659149764602155364663089382492775160082998741559564150921561780798110694610063414958838727848013723823216700124885484398670045817947119798135094469824799727147646597013429687164068934981466164664386226117141102189052774485906445080670663969065982144524798219580961652516038193317353236008220763178652267419937778742958592260913994651927517426923115124417733404652951685966959207731204781145429824514873558783120499301932292142691117690184241843511732498514636051377059706648713696659870225870235464172062797829354325193561256450083235585058583892369967798783159378496358584028777922221489479484392257735823487951864226225376256145330175589971630628111193735873742962310948905601523437005999359709602979448653929352970232383644603356209429675246383101447382161932634383423661057918244993787361287670121594093660186659034583570934231341232068427642708658570593786692129011432358717319352533990665012971431023121572875541730528566058375352225638800508589504747589029413073180901497051703881323659878085015705820807926684568723450762051120037234208813184293187803314717944250309451009959946157096607069883625754011074897255627228478267640187714738178248040144417887318831807928330484514429536616700208022738022058070106966000255757634005217836319271064504305661306666491791719956933444565735851377966783122757767768851831079709544044127340643608008752739108773551501031772961421609977177117154657009714947217983343168495836391440370210117936736670614651840526371347621632539870731448968280279012502643244266046853908191820311019581744210321313046340146451821041949366856033588359757666483405019917610155317982950148771775090882459539147611803383842043738870048373983758249994051437918111913296129428530432247976008661499039285112921129514053839360326816204084201780684313757939365223601546393233274661618101736930493407473129271152688911350295545923893255898996875447660093667606598321757754400286488539911782781117860020523613122752074004980354934337252411524817395099156560150547226981266518220701389002793167891168910914950824380867578780335786302982246287402597914088815678970788299799351930444362958373484345859629131445947608600758671295439659503452783434058818631090750321419789794830915332886721153171206385094262234225999715857136349883099412178257530063317497240986248321062319971544402332909475303778204629077806984666407393886643152239532339786732532220876044825565207607717871756854516456831136506929355233659879898291510511889318950952967561767801096521668864114031908053397377597437435217766778643047835281691328222987316282677460233101956369445011854191216221658052060307042322289311024521206377619410309357042306527785166486218446971709895680675226826368503071891430787860681724954111564476689471882651007097471078934817389157807825868305825199058226310522901906016713142198964393232726850209437237045352906530595129112432412102407027327117828716623307689795868353387889669270012170844892418742608229864260543392376630504643231449887333712714832993411303316794893334881868892010751726298095459982998946959828695035097153810982361561717516816012938662116662208259394396298272650563773366199587317362671542412220628980367799941568709190081603061275569944761652477767639890940254651041381614369868014503974970040873891936029606625221647774592069337030936664582224477642067985758596933442220100985617513568774876639516666538950780773575822654053380006499820497159226959987984939166107729108565645969925054973802859281829204844457279456973744003503927552274525958898739470703530365576560944589736827241301731802455360396674401730311634056206709371332854453665442070114649274596936513035638233277258868877315382419672188625547395012769477756036609968094659825503474348782142358454126259717251396647786918475640846333456520502186551578083672771288464984865829126472448352690551467964464314121312468955710928716697079693098539435946001245013227203570712434740601105794131400848889614323277347463807319083788227969109550719079283427865917150838744397466915447918939092277955202714906326445592281052935489166151273900259693016523871034349090888051904591540364315547108539221521562109646135198490487961451028185292218390069019430368910599271490255663848967899090391123657010388834475540448722002783032859131266346520618331873776059934665501698856921539927200864672985812196379272876809028469007801640103044753986719551482272076345730187828174184897601706952279804812219609740730453039306500515531235077415578168235141836191734786759549721737733272106347919091244737179222253556261304336834633399628994471142942399388212972072277838833037383012137961228772519935462630266782953802126707078132820660895402139913768860109048586624813356037719404167724186663182355588052715170731411258075341343340995967842725868052017717285813824965272925405417257054008029442312638112490464242161988250734617784700819853869194388875206098226333468395077921727383850993525283884447603984941017714238561607865436024919620713415556350683997966209175756776226383998822280640939288452817585885648330527859048835660483251256185520941147817527878575778659614447820971624576080852644586046410483497000616975217171292914217238800617084163712341482100499421596258978707168951004837596689333239467745729042611082348511636537227297408730194202757530556574581467012810201742038135114657160258835687290966618550847517892123778926777361215383346143428433845623898900389996657851387507457502041304118360875848659919314193757379092317505451628473682649166224431366805855064516419591398647679036239560899663832225011868041033550265558996130601329558323257053133153971220513027650407613898094729312538400209629173641429486763512040966631944704733419566688637488359723915163103244867086225850105792248966945083609770162600218768119896239660179778808434482387792544070346412030293163594136046537822835169629121152520661896982609934597901051619782920699215253982702450760105080414347745447346885621016612174741924459223067533889020381264540724679211236821262964514780859616197282667050483271384463939677076306729076911008139906731989248565542177234276744116397646674584136488635605898424402671240690913807563735281190170404504866061139402218294882506562369217399735532300074290176576505521775308837444641256711183303585352566561853535102392621924090409108002834473832787357765771409833464635740249444843650945250274697797215663800009996003027209387662560357564707096362762973172083225378661662549337874721749334482719687120753374780129162962457831562510552797538576989780888830909941199958146012362176048768509909108587456939691707950456644747318377018461265531804499049804701691458368751177465941622578361280115369658319890704862644197850938238187311752351122740959533668065802912705584923916983946858758671246688622660278152152054906187889889588613344785828009627225571607927717137889145861689459944996290389319580065038112459219770228399126534898837394005410306165097773775490207797419484963239270252957837986759874105288355468660004854276934697442037402537034381145953779163585075466896253886570486768877285208754388480539621599980711094768722496346753051724218778359114721347362384015351780804556436221480858899707904713927009752691338188547729647375331810600418267581763280581886600519005090524851492663471031985694900557309634142395859182555211667979115171989325912134128209626563257193420840789547922615609541697037008410525765119040111075947252275238459571174587865447198011927982671328172372762288215716016082565543939870590079863106655384113729208964196737547449882650650917756928817995410629830195686589382641824307916673329427096120298915802545695278488210052832431785549714322421091012848785060109732841250983683865641363837981799327806182419076423937215201882057137636022591962810107373498744289232629389960310096774047956269499133379546347477370173233484867748739743905854294379241034301977814735019569132370390080507691280065075037420760297296648101344289240774133839697188627761750597210758029046687549156330022772701396950388318481229807915004282027994273222370981405591724042062692730153072840032506539385381348598499182000116450411326716016628620276453708511480367500939731728633226180393148883718413519891052124839725593397105424664226873472910361398840170374373370810245760717431396042703660029421104272517716272903396889086126296066165078794670632726980685740200605239648955465188503795777733639884593827865859896254258995497989210542415691491343128799697065283804552841646188323624277652769039708147841236699571758169323326142328369046722231125630084323634133306845156053728259872456465523582729200752683785375786486958146439280435356250317598323748178372002065055119043469259747714323103709130737017133143006355814796426682700105608139427177741090025427564854064400049289008414515059538368762758135623149009525164862955274356232513815358835143396048431897430420217364026935227896766159601821561776212314727626989037744980727844945770721207425386937989257451091985589300732605348476233421891532807451395229834545932495426026937993588092338774655348347703760241380220839600614473309601848950844501428046637110772683719947375992306565308875318273049685946344812253336339989775006472714550331674304107054560542161879707110142167735919560029260233090272398834126787672671769143704506393137337938145288003328283915312059494304372485853967463805702126760662597779502384582180715459498382489451826071579758464873523852680935572809748794890012344073851651870756182255140210548929402050319285249063907852000109045124481777205558011247440567176444679724564124685669751745732435577042943094616896059059610171269554509249638512492213887576706781061051194706872721860286265513632748372603404237734285936392989589690067662550107177141410044192417874129737597666675283626005222677227919702931605999489070522302835241543517947147275671255418292727016359109914437666419680472878320039363404778128301954656979774297651091635194293992995045669062004121034553398938575312902113588991538206208870431471267495353055000423721092921695136768956608546041789001346675811851266739167676969853588032025652439025885890900639341753060155092849442970504437546096746005716665369115252366537107031167106761124150746789612603801212980814770945102202493240248298824002399928405897071267558806795948828521194360065740452703608197174300106609629558384322034622201550700751549076789900693995951702385157963832560847456227821913692558193819585748177043490506542702246533818410145805672715541650206101244413817875502257782910004989010691068839386544665233217471866185366885450816585184007153602369305776751815313549156457114955628335489280434251784842622144291009448900434765968491841759154008292468216753303316862290989521617750874117177222622599260665662147407741281242045335871039428069162700344969168933258821246392897131762860129168721593841887529569302848667975415559030049076044892405485501400245652455930448563677018472708571998261868126604857137386925316225967792002724320255568090926789993122298904937584960931985128178302265057957559578323439231448734522106214477919572169071517741564110584720059798028703539849086501737284309841954500927316845545997319778981998672621362006827238047402705383417376942646208146228714393898525124336336067388456351871338125505408060568890033287332915134963237034843292053380128737554633120478752005821719424924978986924799265995709111972835591865352680948464067994372322566761055974322831539955246771991864213194498395259485020134578528878974976957638566190339784187090481413341581774007422136051144843755043606644840008974055463624286252912009335146248069072414511652238030086870262382153002182928768120725623365422489551673635732056777400162565821729625451603322084881222781027777645804965323128893566333221960948658866654659965931908377011666279133402753252292669356704731031685565389073738004716110207914708725822187647452647659715774284097299887133048453613123064793511030813504228111744812506891701780475542659411680251542435424279609691984060499388836947404573951351865688100982533415884658270748581185925855081403882048810047550466578391520219733082047511762072247983824057415917633019583726501551890161507767000553099391206412636100859742502329659756526739826912753692104346264530455953395053277413442229799176389936979912140828741718860247600451159985460715890111874165524169384586714392502958689210818450156608528916252340548262826584054562405404361164714905717696716926166029253075814766664439844614276128035736435407917534265832361492481146691562624616151356523255294820827337145174376913763595812665458463395430275713289964160474042728662885304388607278488745743248447539060178024126444206173353562020716842510394494530766189621214935058188267607647257438255087214047386387961371666730179434686358493228599687120570992899974855152141144118526514630828901028147549167697142242507793987032530921928836119467648346062538812136124324836625711395516103779328745580534195853983293936586267143928388500781716261834644197033023532034971516087185406958980071809696710482763450069083899487803607737091072065164136415883744055194167752149971763951480672141426654786897235482394966048145122923762684354542169051384143605460693295804992423671881457491488224711984473239205672576704877176922121999224995567328622142731336653476860331555944176994102108004854245091344246340654363094516707599730922669549130339267974217683288461133195617138934633474885827375247709653645142476181597564135032095952461049600432224940425621208905800380137838391618932505054781566686179355018838806227280308939065486048807014188175674160214565404359088031067652595461874458870687094474036260492548527154892215728269556317050350544378293875144475208284570896394976591602502880738901217435019457735001732242133486172375778602669639831857410930340011446790652879433446551843223984375320115360855218986199468661065509032580218613643345947623603700121131848374936408503535190927252780568698190452174191452359295900789919722045944581304493847489621169704772814755412441000194668668512892438990473672428671995041141001258706570394664910326322768922609857728942154824777929241940820856947400126597999859568436197388870281497043224470106660834651957508184135811731483407327302266018525082503168551434913643181448946797018855784163110522879116505046266027946477798143767767259984196324203939424477501537686853826204390139147203058017211525682260312986974025473673376471191760828592523182847565555558515677666505126207246290290199931706700581769716105433701143109665945317507560555931782555886559978973731233614180850964515238280219967906555083222080378394866526611074479706239140111360512456821335025250513521442622734645281488150791204996586211918499971525255743096293373421021629506167605985583450325916986354198843004949902363981838919814153949283175000374105161981551547597127211934180140734414621392080238422019704528876413071974492588313390820716629990703195786116736989520161571807008580640310796205266992285445619273523964026449682480546994631994270337467216347584397945181723323409829522408539778785904136410958441258453246641194351359617573052382162601101906388524509045733588232683626906676012893757185002974472752296959104163087595353461158771487143599419907140572387955640997682007106288965687080957210106836559105088454379867825571005878039819489282142968864036850412359539213188535673440367914344066450364494759828244515081130174217432287391715682397920858613263085866835259973015408614297872043010243648740774711849778469854670598576775937681762694371063369759946170148513772558573353204517275083019928220745605920654396843131856472807642093309562159237647685368426659839255584895943306249129712658737715903385426944138489662991946944047988819195379235736780833462002615494460729266806303575688057384389997459408630371724920518277272081223094784799632780697500144948472128093042723733684946551854229181859023315535199276137669534152316157188651644221016553839203459720295769847875856603872632839511280564261524375914042481658328134140624147489292830156985909553991816340203199428542087284395687840792411414689447339118359914791784539069684862219875867960267877366980716696482926876122805012137339705249734107991349356855354085892605654059488841831480266290755520897424485325869960629341436451043403492145506966403826873326811468414156274544054863761750090322067986764091374470444833562512197798945478243676620358468920095635162971882393304946201509414567366442389093529234916333864415552211948043405793635528108984507340735221411389096502018618963037289000858260009117525938069148840603133423608797710040078276424387535796053550708818614051508469990084713281395968100377238290204613689282713351640468564711925731150020861081896775550666761766301731727487387561819121566760462239072921515579337963454686110555792143608428583582793380514555360360074763967142863303410273369684295710348748916158643561974758192461093363561032271458323739351705117542959852589709275129680800883438716316875751517751410472795543119248975236932783839562349033144817952452819132690666932894428942256798553577376672496230104963063883007707096030144722641318053284224860913469714031447870304768838510715855544161627520929329171779673456155861023350503606201322035743155465943166483967218727582800397562319867921204485159179169965425347012714705343481770273553428211292182084673468388802085242739157941403379741340831345431869830341240635961102386219772086353976028317319994919324504001186506600118488636186797796218846244014588907886314826812247739926999860301921988809954411187589098010729486144323054978958295547126244879301446369332907416309758238690981205405379723597445897370169973828641325778088484872553435168269510543321145954975301544658010220396109369925402044378283274897204426228774037125581304199299255258605658764385889447374060662793499242964394378546434493150981390001370134317842632392722142065892364811127768378610622053627420933044152670659115327785333256753145280258643257025802979086378495113309434920538800200335327868375037929686375672645591402868682638525911105600207551469249139921342851892057487779350116038907395984198328409593471557266040181396147344768679059961839840727825829748231448016073509381846223944517215404343633565299608262685247932549617130927196094482450467090131183150023621831869438071196307517986504769251589816025231849371818004825123791436786463867329386478293556032373496082183359002584971263950693547431118210501490428789995844621805264611201909306423337412417420578109402021279819372929442526855138207270598992128087653031223247441163288442566988129578080053343546668384872759661536478168117898155122021448785336688033003744555148870690194285724974820260368908101582542264496558690479225481481584886052088039650077896517804754167704509642749709718227464676383851237972077656482688298385731361846793591859781580705119359322458238815746960252339794915982445398858032892792168408879386484956356498413323569837730144219081617189530417766054047021981070980067604931395738551297286977267207390277909252985832273825405025959202882124081673551198339468569826519690890531646954186305984199913570654059706140402931006460554347169793152582097141126002256608500459827086449392541205159179173487068867293503450235772421715622472371647721070285460983570212564131473388721032902352104850985061600167127062198056430453922586752120232734987696058026267701872109310198627492387640966411709599520551202040201269891421998839162475956976517652291292189456621725013948289610443634538261751269378228787331892538904783994714751245547537376924719078757956254718788328263989538057680118633730773650778420552159445916412890951519222367637157744007911842231812772436127599452528738120514214764920064004975882522722045922906805981680448023063378128783927545488081851440650250263074474283051636003869674376770914662187468634632210001207430079963160333308020495326232713159628840818780399756685927903309201419073339447316294638323227155285728816893613469580143197651071474367400886365296574855075933333244344288800133032320319997866064400258818009874242137939837875309136982711179944713487579631627555139784558217302267002865025520291849907086975393194489483308145434762720989426962155388082213549353944459840875749923375663619320487208620144120159528931860268542428995542440377985658011140718268264303264292075098253706118641974765772467709240375286561459387865256934145986806208057565877135576047641613634427257454868724848320010787785333990913252712675859077995209603468247315574847715656083789514816124416943381252497167964073986863229463958767423259104705133927569268008595437886610569458861887394577378601905019580113404301352928405456222301255608917131033631269798817285721741665821979613146101197845887423085649790577181972333594378669830874013654328954669780018762962680750944870333390215940411076925444202102881302940360758748994278290971567208525131728445751247604069376023162294802851838114015351356805862418074504444653991042001286811966678302181876695229286920972984653818040606295972004083173025311973939172545464856788663844391346476855483115755401557022105841160359119709700881983231587466350396434410781158722517786061823545932746455598999943351594412114597707163362385210135830290027537589918762021404148670427783708826220665205393006759803750716669124861600524236748406731994942364721258492933160396070442355714341435409650766171582693425904976212176220595453366673284571275321634054959844245469972323598664142935307537197271235629366563874293893922596724866086102709478116350114839973338225640831560159046610497535011063772343980701869171762456545171750670401962302942381487305182619580421661243928671185264517791951739334035356308451741477110748820716885441983961813753118074584174631861051480663951830808233136957598264807548627308295173870564421993978755151893305706458915754081639636782047054336678873500319917646493167684038066316195246724876395701882283793655629786930420935547431402005168770577063875586269036206509757302311366215076337836919452586915360963097367269918042355384232559413139538476233062030218160513745999857259699741891227388578145252376954358042906335226418352088919508769291081791555702049846142513568091487749762014313583119735618233143853163932780383212661425253590621068453045245692892232783242050867102552187669948649152609057767762012273792786678868873837799802917979234367850395353855169277647171089569727252842781025212917824942460788949293173366826956348261370296057373446997486480984346042670862434645657919845121771303830492170047799518441624408546123096629525406338916795891775053004540965819955386094160243816074265551336770111801828200687800131867593734322611830944667795882396537459871636747439648436860437186803859232805938641155751083135037494113890326655238674282047733183435979153283708500845568484777011507894962025320539214169985038162242761846391780080902215687048928382113995610724991807278287158102896546258910611916741928698759610803801565113016781012634560806561884951005931309274388983187145510471600173999110595838890232077976563968583392954378200334052855854493277197043959414456814459519157788352422368375508452061626175263350085231667862733810534957063833757887084178518893876542717268821644113717381736224873894783943777878883797444279590285260091871887228142787092370039208183317306074008589892187567866154754484394741695335788926784905323919291286698596294730489654038908470582463290259675303775427619694338446949174948997445145844112290317893693475235153819558934219163847038774236463708180039843018109426532022024334146019369698974187673754374764284353139446841362851436087674937410337877612911273404950668998740000417039253013896956404256752030294117559528784821239898452365010741218969382562193236300184612543915230253202007138113076155824403010830110115324429181662655666638813165313920236168889017901377700585610410898543904468932524816934857499349651435375649819634340413222541187812672125100723876049874199512585204121964293828441363413304498884293126207059443223163744375063433129553367845111409272118269987313852248322816742201145384433219726485099014824936695740796854672826873401459215960732394356003283908247197761012597812858362039630816091046182668992425236106176667384092480827231126904960625625148411126996564010954171815701129114039125294206678646925389623268543477589622075392374234344935852658896467618131668777999188804216053244335537169756420417210063807015784271801946154017000181324771435557177429921116499365482310091235744834248736409376584015733394172052520189005808113389064854717279252551564956039391024982355315505054297871084286493391956770779502496779800475919974564182346882206521900889555660147742189642931836883281572776864026857957232788512106067403749197939955095406154075157945486519706619073795987360748148244521596018215864319803140945770530963553367007800352759963328731903873219534597543827188363965441808187853753573275616252400487189140009998776845069582654864732506992952812173862397391062783553131353321853914319894318971496220213028457624073959079408004507701475729433141436167495411644735725497080522373078029247858062605581752613048722437573109000301698778629630211816178832103401336011897596468405972747647283520812709740900248739610748032228212806756313764110403838421886180842173084013479091000199071015839700198360933913181525896589830864977640737288052516994187172447120212712266997244904257869487042751137689824790836289545229711885430048181120777952976575212913544855636962128239700789915840553947365465825157093632090359707864892194216919230235084918206603855382949442178306710618457651039090642970741222881992466310059402572602635004137069559249842913645332236117394385480026100590011501641049034722748260460004069384860304965521673407352741011740990029900036240631933240741977757248140046042097955885456630773341377830453448455596028683290736485833097495803746550202625064757695546241349439181653252792353143197052429445897687776732256086383037172501202597415629462000985899400113969062335126154181019936409720369174936803685313033677073385715551824289741850453670590223400022051209606679786016772899021769785048915123468941530242033742893490130163399793176725851036030249740111576275096476555550368358033582504993440665251777987270861686591415468092487977750656931527073494885096748331229578966209017919526306258487813145120116180788752923316700305168371200604246323905217025710661929893576707276475366928778696452265547105113603767793166782138689687249556748346355176369854505995059815597749300988309314089000622476189687273905037352300652099518496477875538851229624422431625625180031654767335183487839434873440378100992383123498151260612306171310445781948720089945584372690030854774652878079715231068164956926882745661095671542527161793372924324016751271317664499181606733465094864797836650314169774809389627590998099663203026220993372257864146395372639691979357392764286140331650836480569797665873110377570876115920946002078055391526405835263633074081250021231512615528187260086458485942811111273783178495819522103519859913887408249643659496177833835763663938939244401677069734393756564304889095684587397623127817070677770163515327913030790092139060460284813971326546287486460163129226683562008028148936788137473224199577704952322136492996642275748310095018061322008335320366339527671107602204476360413855445263572363187882181848181961405553433386799200004319342138295979066312328567138455723423066178196578767466645745420763867348740078251309332857714678492400458960977045368303837486040122354385993322358304513204446363259839777982994383536128130349851903753589887888477881412915612199017950204444526871692876474480105549221515629626349279967291983795869692862718649595348334451743206164109218179690710682674663675002707663218073280401778965554674353308369083187127170288649496323461094336338036126873144534126029151648775249705541994782155375999681686949267646767074622479649075710408382193054024025844147842637270002049308604567769903462329545756924798242740857759364220508749571692437465447168815033888963672208721114430625261526194727411440840907939529885654991593950539588382788011467754817185429175095742856039430116831883508408287316563919740431276729392171392399628981256221141261499332443274134849843542535484979063622504106674572188669241820914653632722552224949620312794602375778777442741821876618712181159017349739695410994666498113578381394643817809639447835673570104050253098859885345720571753991544316971808820578303896609350250421515097101366857379136923838185337430673968012606839038967723575277596006532238428316084135461834980546898204655764201311244659096794707478363698800997747373735256289321030093492078872469249474585072893035451924628258034766711004765326287670239813014971048507328003371319341575710142857649481926066243912830662036961442994692883571182663282416532596677343058373250989927805193552111394119795768792332061644845887958492324931913123047737814365915164011959537677707581726649272464842953083549005451130070472133698924324267023760343463093612061085629514542559163778978437905034706849585978441188864705251195785211487856515569582227858857780531994544608669310522254079479447516069171587036883313901286583058929721814080000609368205562110238688443011409276836199826610004603884744316477243119590550850327440036158883295562738130095597774231214128785246060516974701786105739837627079251733397266307571663377998490184551218107906303963934282560930176692588405065536867913974059173605978238580432486133126449324356403123184847593198440679598704001385490465000077362272898436864180782847151043290978040624787938779057733319192221017698449201187792043231733801132508972766667950318678106988402703734518406934751622395152877698958532736344606267379019001176358608517437688237561096000638474820477257999213405117726645206978348390707534952272045775614325975616312835475256142813159463212488409210665798366503080818511460254990363888717200835535686677308941781762335968561548071190700092515331827086786645266092189501298447036344569961176551795617676539595391410569430467493795709977087529141618119357418244822603252916760970235176298706183901339029979198829963845682539087281608456410319831271024030481949908417573903799082398739361230983207070858590268127722555737621254446926906539475185935137047656009002825752079431257130670911878424584262029192311273781821810840181548764276292208514718589152925820551049589832481874909894942800915079785217234415090740189207724226920336250147635262007477815885482539912351888211958434516223445782572631114078628355761636202565680140527985523830868423720280793773928273772821565479209112911480495297024107839877661411896111205012525856207831294351238436764807241577905218690731388246498472635317670561737432328246364934333669959382458024249762342931818688555286527434111465702794775740622650318030437729483654356354567687597918140842274812922370328794883684915316261451738286138414855124092376479620542352816185831127227497018662513565089385983372730466974256045129507530340374647032709343074017287915922124234240695749204655294230354325135948655241598259454740320521236067611025725173163412774596233439782518184200284923921760522172062096316616137033782716905150775066141833320365419431345128126412053730303172080922980662912980138428724147906133181669528860520957690082530522480607211170166917027417661550114844014581063610703797515201996665999600466381280725140695457713583741261157854186854418099725746042723954798198532998882000169100524551366013937870682833643008123456944699037018840506045237666096477981600330990335657532490431641407082194581262687232440769832569091523642788513461971207789133411537418122374958839702431289843007305850409728353735004531804891237443776417788343675943264228355676485545946733917849152034781337089024299009982286775597216637732037344711360533659013238507285328048126080737574459704370064594391892965626622752271097612030101639081488890302837742849611923064699889489612950782575965757605621098838384401013091347425881039052933654700343998378231753686905457571121097675822696996373774826555017139443215794528891549396922582852021678071668395017403021412621930703205605870310132256370775086725198688682635232698409924943655830475648455967214627853676164596626771466303226215965201423600906701118610739895442783551339813815450376017873498801507969972759752148531798656149524102881768457472893488685218096754746411217333256842667350299923531602504424775109340142607633703736249139202368631102971304576434758204400826408147966108204116263746418427999559307828877936841015108585169448229798641317033976335692621253472727046352846958636789697405450199104374634360486678410556068686233212691449126925578729375876302982936353848055537532175767315278402926667551618469440933448941006673300546569359441049354867896553554675257532340029144592793037908250545540718360722751290859034821202762698286826251113041210152465767134013794218097162025059731726004739133432423922081561758463908116215822032619796933503159724647450733364292323638050970340909000328506275197962715874968281179288908622448198218253877021868835188461060710263509224270687333065142939642495248958713149355709650896257817032383096145320992797927555832064693490196763154288746155103262561602674552943206436963231316599339635687578623969826354792027899397849564313273998808946438196698267374687932232524123651057337210862122028277897679854320646612097351545732548382022133258378152456059715098835786658659302054974985122105956413686822254179212320844000940834885693288050761103720018892015872358759507910047217104829478264176349798263347466841170584205806744384325592575133827011853663336529719096718919922650802687267588506907922534169429588250846589836782726395151624251405513913934355150759608749001699774740665722044524718761244598861428860094255254414316050999085104154558883613014508035291642794658085234080019012916840900131367794658244416947446844617182487648318399995849284376518724178210050887280490839096270133418483299725091790548688767947402247814907200027319758044530989963030586098223773756682449957459348784979685971219782853433646099432940803602026189402332551262622424543891437357243221323369040065234447064860902908235004375958919107216946537019783837592445087218505181424005357401800591456313252029631324913709774808223647868034001181507928739486084842789745812821015125102754947977255111211331000222210051893337363012367067952035185727270054282426349845825719522630701967629709946650404526177662172451183490748696813817590012955878208037387653193919629723794882319131062213747569025681407084941493633113976751223732154582925909756224201043248918796729309471374625753502321072903487469813388034318819936637738374861974634016858789002377617145852242293686741707203225700803012216573365010897350708195943918484367463406649160079345042254591220133084504141460510226221741619950660732496474710918768371107498147996467974768643207899784877168738482030209486612600403528055049958295886609434919601526563628922504683734504380258873487179788479418438315887871933535422980590395089564661536956366340628120486693354126333435054814155261563498968902921049594941821256732662613158940745904140190371168893768584624892411399209306995374610314862535377055939065180761991623488887509367104105743725477200135668205087604222755381613175312590399480535496113595121539793255043529238645163939647487083884892489648717033701932711339346378951444155977857061679309766990828069524365234470832124625016089553256199332086290156486920233150830978043942473665270801158980876820729658271503126260093710311447807230339052621600366311393872101698190087051042183768817291956380278976543218250365938045868795863367515044384015904087079501155423755208351131608618006921524142030471930300184654422271122901552951255865146341093026420131775245770956983229950565365216516632680529082098370163963665874523035440978364732530324844514041957539730153821891514406152455191256803596451828129799488102933425870792788776044818335800750317071163744558758697890599896832731150220282492703352509011318525668802050333362841061461155089636780134778968786819928631525122235378233236817809551742371723499660996248800746553017020831629264258353329516481424411780738538368959029808490852710920542250284425609391246706702218883953388019960515091257496639431326844241496184428241324023163829442407527865374086193268260229878138881135612429540295159554398925853470036954926401404361965877575521078438675190710988152504693448767862262327627007122266260531146853871890226090847612064019581634489029435216774963565001722108161079028759931827115713054968704791335774038104125324789279082560753191232770880278464482287022530415646982913497988800376021798405230521769720991591052723182968964022392101816041847966557755970549375216727349666130112260336079231389231307372699762201490694454303926953386838571482921088659116227579727328680861031281292542513264893024989883477709010566144349929353852592627509590257703760486424554548965802647975276785254937410839267052500423071720180894566207992279089392432596133912672767851246126193824743761718214666981987401144000386900369711501710545188655538801677115283000990521076269815909968291677702584654625495263238367654263715433609038000908153460181401606384922228458940066036341653044089082095336356658212235452380523390694682451211655760477176722038239288834761645035669131721856729303500656563602865262120342296226773924728138787364224192525682765211504180555975857542006872061537175495190367569335355367104475400096440852107203871470046864146349492120105260098609150241607100425076169961652676594394433136913822589519174051265829429262713965838833324990220527939921373989358130535671154700102915926701310324258818186977366029403378316230068958660297130793939726356477331301589229839219649447839743993449297617506837554315645938819094931879790959239135674659489288425241068417558628551815210813634343237964962364537464840510838187601626168813749735795307851375618994942700639210986231494335418662000910324421355978867215331228219812480846759391782750850326162570968960340983753138224514427452712631087280533672401451737337745072814307487275908153269624322925191486512789644172644870512618599607893140072979556705663358927713304849610507779620404417560400247338357771927232394883152400492765001155939641962819225394822165932075584960909136310218136617027987670845431086065647768619064790203366502586186919462370788453481847297393838185936837224227730117921513149230950795945674467489365958085006683362968816793621989566415483251411133057057170290991394293967183470467889526816890628545653170666843519034115792778809884060629668618294615755883516336159763785988211793670012888021814138811099933796234779813824383699531368410315258842032361183569069351065657973504387956081051935285996657603989961778932635424357714502879267130737890450275629854399173663427238443763358346404283855436758701380628042376972915988666011089242536198328821686622136282993812913914922436112959342174846844571771190682566116960682289503304682881071869868487002758245261490330610580162061041803464415612932200267191582062935396307580007551845359011546618443945894853214055787139771077268390491983392696267619944137391051492491101338808938461897072042074327662256055078245104633460535487551093175006055419326014515649015180977963777847844813921209160170501387909775158589339420159316225849915254532507626095980559151109414168610429907390113287504168149721084217934617928999023738578557595147330044173688717959626120709535907776443054226473681860295547898131173544593268775611214853644020849022334061947796114916064252355794612224308998153888019580779436910847126180887035912939039696170416022870788533080379611117433256248591825378244013384651667410655428356404748111862209554438621444190026576269347762527033849623988057156202932638329743853142537207269265097096701577623642137695288462202843324894441276030174908072787892130462757441461813994101739302920212422450695022293485612384251342531632218837635382013932407902143718845099539461350440741214428251062447665119113026561450506288088391884838133645334366105665170835140784291191024305367806550048518289799692559042999486092716501315086271718730621167825016190049220781472325116389173433494243932678669694961673660766841824880737170430599616460458487802611590100473441777711408699445232177976078322941855997427718455947641040196161690221169110840201218383286388557524191143187336861696620087351238750195513278736649836938926787992651976440844821547129675948919244136936031172419448220792041991501813482715036165505690472619762977052838277175797600624858032973877938234187108381655645312078493322525618624632666891798935823599476383815260473806398676991253992597254319300458079907916051275661176690443788269811916314764208138853383597629961376823741103824295410437372337340466410683244956219137546899837105847713064103651665131706321481783019757094170154091250286994959520983631992638983487693291348259085007837155170507989664917368923537322791894134971279364616218247936743445587549492144571566930472855333830618283471947292294958723558339605054960176998144991297009819024482801642122409665560070438461868614480708655825188298645723861949673865475542775205096923541963876969280874350665400495082060141574935457542350337545756180653616641464357354585439140619153813970351751884073375618611774102641293805687265196484227419179512696632920327386511875153698954319083766816350830172042933499330892358819492275787707496543617490245953748533771171251169524628837131055082242637841085127312935873332963651538143098619909485983810534701023524008850775984790646009484081489689873334587194586716382419167676045428805900580561726224922391009544774635751336406283258378150107483946378519137223190029158344656045416392739263412953150612039283647965301543840250038153523909306638037062055932870384979974307646206337026626664930477346909495495489630656610579821748091340918116497796093045490480667781944128427788273146384484792475445253899614660968854476369066472870365973654312128356056154736765297222106414281183569399283969871666210883948852412203817989482306138142106505509432050934927595915689099677183183866774462248597458423518169612876631171034405534129500390549329505225681275111101194837439573399295008966821377956837043318345048209930538410113362159831388287546288855763238187070444888998726124659115932308399750289389389533600572056075290456685331852220552715797804262858334474200218792230119091339092652858150194492324522672594517040130373495347539806398386238372163720898168525928154800627502968929577019300546062876543973577316032791505676110839809919952537058989173763793243472419543284587656380535870323263649543830438466361419605844527791560651144577729124137958310377120645905115929597047007088202532154746102001900313418917262821702024526659162410428369648172991526239682768829039107524916029572002260405560087281514630048669703073819727426058230841593374591237934052143621977690788907175276376474665162747858927479924196293545392669661320797773757889604902326211148039154024869959943238558222825853588592289653346850871182507368159179997734861197459467593939953750492140988369746880821912890140016354648239275841881902931482257783185556695343367247692261395664220730839619389896285768490378018665655181410357674168592597605890225035951377109350621704620967113365626717575814403293530168651064544623080280117592380026623542340654781414095109997549819616098327509706564847077467501507903315203340534069454034154292478041279896802378351750848738084390840706227409066517479811888100379878455300429109371966730712468299932562146234823899885797051584090602206188955699962472928939845310358228055819825165544847940116070983868078784457264079807317221501374724413711227815569581534569574246343609818363730290021489512379649077785665986166139830418097352185865869169157084707948133922230256774982626574004666283764971550124469397155923643708016266654301556063131829177564497964101062795760225563050127206858424644527273606412761011693626295683412264339447263968369446631467209564738314046104919824651688219809539913931224221808140901742160421205672445755414462737348433562040436637505919754979651056137526566206578264365866085862306272690396101101067379215024904922159067032174004630500911127155287515940597403729923603794350790996116709052087481500222906988685989789702859148387888983773409439416623396012115659096448659017804166205403410537469462657937979218110876606439324997178564980893455636785308446002571341484766652321098874861804501093056689529034996475331557416354886016044033777380769963898560752086711233951267103118416854391199913722416374878011711412954038921884808260273385421282615375470656910893128301072370162889039615340236429081597414290166272069949438763991900843626791123879971279174031033695362969157380188302173186973867502076283896121492784747774277521172090125769921457424512415789362981142658695849783393642567172612908416057251112142368843787163296633779817774598694410753767115278282999641260005578856956446655540712495494290775441132541084295480018189280843570211811516383187066127475649402979473788724847925747442102044449434470322114023784239379747383277920071308032120862347492183325707358956119529198105405817579810170742153853241089827506249021988883033352468365850221401314460002884286928892931390812819912268194346266510036182509829974199995293878075218038689394111434731586721189139065242012836678491301789243292957132148133493644421699954008394670555182595761591326907740209251088932817330589854187295117901835125512998706950704990764924919955474767801521953855707318335926877796618404900345089701330978995890003455443145197232193213395063064851955936074650499577991708380214860994953528904909358262132757655914148213852486696582268753805708328507976930449395094374658200950727461801365993449376742361557371889562215599998036115889058183063525384490769373324047222156188850860565083588453381426308165148700682298282216165260486344027452219769457256561066438982725735691226609003380176775940537786903183385502650401161937072735546753027473417055890101641644376246875567448024933640130832450009817144964028951812599709117481753778216411431554089770028782113795415378559602205596953962236325305863498494628950599354469477587505669517595369032195697745356558636333940900749044619390224977981449928261668400058162465319322204573554268586608593407045755357040901509827369261262238044915229694396900306886935937187537113370372347360949864370443282314558521563264629327387573949728337081046600364350266440426319901148902630859779682546784932214414118389063004167414296271847103932687645140746317313277947774576341525071576650386345527961739514738044230995706049797837156093970096384533078032487517632607264257435295436346409224501796535996636213305401147674857809457014492308237235394914684176532350301336559176146974424865917962638387820102930336509673027620843083796512499611698687026127788740886808614048247813208973221034399886452009510653145599416806613178007345435760509443439276608000802189437627145314643177187417171119353322971489346298039677268945981264173240668098634923598333477752103059838540747375034479423939288433304193904277441246211343916508546632755113275137250083493087524007538967717509316847852589885505511008342613221246431098148551421717224794053975308363039551805996116612654723562080753832520298979250023188187366721203617441546262282064302398207815982667899745213973429792185666383674597103248416733350659696828324617148957201616432498254320267424933217015951894654288590811742550701685313772045129205439364794871287680933836285157025448523427522557336759804387098827082768840074560410875770209273565318469538609503707194687506099683370727788757963325198156663431499202442164207690062065780558741299439371796827371592184498317340370644309608865472723375491173352218182328549458967065614390425566631481633846697052392535588681058650024662679174102730874359221644454448338991358981842206969729202070375980751624305517220179911652164689712354069615570289228422043672879087691835169410037019260682150124383201678377195363941801972798810153865285725329866829294617181348569857540044947605688982477089653236035888046019479223953942473819226564035526704329293633751421502376561194738194019219648855330836903353604008922831447652883093995213909079032059333009748126558430535295574790773057122772466130040956493642828743026302235170652852251075332362244892866912345277569177150991359755451838253368450470561600183719243893421701329014423735300834541806131361072816018635226173180513207461395955752508937822673362733460995415144533108102419026857978378237947487935484233576256327427755965165711506058912945799861985907217596608376673821810937399922605285576759446698863039333769881031976929005683772286114324418510939203487267418457100464538250462611168312844802004457056835783480398823888831029519452017625302099979263825166492418717187255474342160414849122253057413551689477582659183566846726967879789832584777342338928717476505591462278067552923549703385667519960895971816629814669628750105864364114884248235954621893525763307971738487346317121197673050863937837751869582973615758933238707202433949099089774187592345118328066711447524723451091650712712162512483839008512581672921301127677626356557465740095245606729231905442812258943464175411357252416610556645444001876975738345720001251337415861864769843961006556977696588523924121024936076107206102091594766094437860049300080326112705117907719676037143216555342355162872471696388570455795727012240882987214337756123135931031680222207102938983268279647317367714468380424147361572880842629843381544981734078374329099986668295907829393788249363854987988688036322921757116819619496180780750051763006728066660371519630924538636652654250962266617434352555712205138542654907666722797940570673608468985594805227750906414631862850390838844805406033665375978806567165058947332313750552496205097634362415146711766994572594706129738363571476202235721096059968684693718287438708952441216803546990431984741633968499872890199817871195617188491789442483799980630382409446032321025828990915369249012294126340066790786864219691663302391790112648486724129297725161027078957366556067538097034960200869045759937600851841697614606684862276156423850890370373926571052491880992294788874034457337078580783663818163646009127186257824432451905379042627720470891970500859014156722650609946943830868881084760478940526416687773126335563814130216448479491834678322348586628741536696983060397011310234334932422083185801410668128368385869147596420645500723474709843071928822276906497583559569919352648555424924337481010988279431736387083359456613029806437660405792893059183708249058852214003387062889675455120408504458159651932305665727058442955851527472978901757893049062733929417294946600832585999986633637405945644306091348402610132244059329673461489609109647160273556506102241846405236472249565885057818003198495546275095427339922475593849461379970876171840572346480686757538059924609981512844402009322930505000101887565825210031323510528961229906836458543667632383519306440782184083145524646239621841076218611190781177418425434132508872266931668687374532961828155171420780312848862926389134584684960448582655861120085902118764691216814665671013627828343497351615458971935881166037015581316573130690469917928416838380812437016203938764807780575250927081574555920709278092090611099530286803453814842926509487942087458541007204907628224039011692605682859247082224731715448827570736568946675363754552106212024582367259520181818442745506841188776556820179112577674827572453019392684746816391271606143259471754504859997074947308093672957780478338262171566504059981955733295864505899789052794860125575753618795861491842159037213682632753601062430494589664611339614982478417959508212591227173123730469026975757550820472265206899174590624511559077859951945168916754926643914628125361824056054181684529307788164849131853524657251507446895045611006191390512174354068754782664748180310700079525297044456572992667946360675902257058537833109133480732861698416094613298926732528252785465156830382829666306829743855660177401503111503609377986064084339381224493163746258784032579929803561672653622256811851423087928151095008051332445496724073969190882426192478787192924528533284564634117000288527789461311131429231697464234994977438031955806969594717053894516041703111411850304306221837385337650634750628646594268457839728318516388319945284429147046846263699425221486012261569760342830396520114302211063775114471246481762436078028026662358967165008844517552935647564584043147232597957305321116269741160125427717497059038565770234549225160753288080034608089770227128541691301592298318116403479364203636798906598451348146799344437422446810032703409322033012048726109437904813037423505190303508113637175861017126589431333155735160170571188345784576046285212229073811895634676570539545883112187449226976581183392616624005845460029395767205837363755770684999015031657533709138954017776181115761186088298707397058914634176610090045691265315467683932421511949541853056019615762555046718627801986985662374895922663516672760268106367045470429286836057384744846308259162319995859160838258502425624950369374139020816177241325253054297756901531868838269200435095930183098463759519265540132650856718966864724250231775415631677640181580924998997802969433587617541598054959715276930695082711904512560322852135180029306440539078842158806734988983311884404679059790273400727825185068958359246685175864703889022228571485799497093995079845900474899682317178712123220995993916373268772827322129463048230418237632637647368950686876610480055458854425554106685217762838552664179586954023199862916045334676521387368754550056920821522616005890814577433868535945745324112048931646257259382932981285766525667819833252653620876772737996848991168883162696185272300215587146172510146720846515022942805057229687401372393843651407771657065978606072382733907161018956806593335683897283677622775973652385164120756049270328608861524404990456430326480020017564905578583414733033262702118708812492070829085733014227305936441570925149621522139186443491417903462436073466328189056738956795159920924672483179795475215245388502616479158280874806879899773762446657661439215039014554682474820809874364343833744423163459299884715281812824837965175772286757237524206406356752002675825068131102392222556705087740237022996882427463541674284714407127875643898865582972030711273438713988570566640129326020274340941171107398318402977788629024634579047816476396285332029005664372320260539777454159654140958991605412378069468954246623230156177756057873962488403405720298699408522922206633162371357070322278034421249607397076539499594850482377393051206904308721621450971128600429921366447325102461264635875467565909945405567233478610010072092325409799322644732194753671503332666538250020283735807520039527058092329259607281450891420405924925181718145218838539550440078639342144366990114773072201236675472389497219338145164015119691368321274804266051219376689779836635461528323013383630070053976887138309224003941805557294715271566304225848496072344398887075670231088059786753896858371239021482461019533513640977870205133934424429972274262272499376912493947921629764651917927102427455008728762288499038903687801910235852186480238557655056419962148258302211673430444854030635286206703284917689255242117203090958794118644704128718969117648291976874353649297286500313650495281020560037128949965340517912414290759797601338684351345490546584854910801409124831092266904939488545713589640409715177042713487534444471942803131827128006153364935202385865371500564745382042050955106994138477725632880825897258924086391118515155661237886190999911607304631419862782079323904757894286699030852601790732718461068435333429865977851684185975972698176496928860349348180325548010268718132767641822518256233616975293935838777096603431168295109432070449070879269680037656620737920299513800243653318697274746182370178324609186018556401379026689451574336646683067653144658587740081923789032393732743499680078435480254273893488729262882945870171869369454608034495574378096429349064140886969909999014708092087324576735146635289042110928705082706767369736447834510651565632593598308319132353697974495721954903184640193588683659804733332833567281119649815978636951469735363334189112275325490375487805452605341043664966136677617828831849715608431883002252793884794402904735566047590093827940826327511040928172780521839555174756391118629164710662308167935275611187269543344078052285466347013862047227900783341010410575255464283617744655116057984558861473708330788340466025443628860319826308571848350148773981606467388325242835530674372974093162358710503090401810629142628582411861824045660350631791803116076294177896682282340939558380498313333585712033377814887197869481731899957435550667546171303043147712994763899415238648260741131294055594375015879460730496181863596648310608931188388084645294869866590350989687485436018080030709476552299558912708245574222042695513166316091140373058092315905977034394744237117019764552793347919508075050526004807599503164588449874526190655833492063462406114054060886614580572847300608577313845616721296960771898555979044688219171762530216869416304141481080442181255187290507828821312115796115796858454592862228273590366127495060657885399416458988286258792810674999230743818589192608143631848741435182590907164646302730167031420319923134829274684079058800324467634626502982005230835628983017328035157881218147056813593276141693233340340440932149471517556834455728046514323914094654856230674556000718261676923823390251804192010747875615383420819592748059100635941795693472294249024474463735636778586646118009836888110956298331183692389609042971277592718980349692264137007554650674969036908642586242306360979675614289613833411175849920446707042478272242103706601805918017117378298385396317601673168451837392043843896028109548785871503337085174507930388594887512465880317187954882510574543876642999668962917026881203876286560055019724006669759183599053911431676105555494597766577977053333472379820842374070329383533399008758721351810617220206950285656190751676199004167551450642599282786140993814220008975549606909447374115489672418700567407540916476183082926166031572867358573314947944560989120491826553513050619906158229156582509519622683404975674346511707250237266707456025114396429677531729567578083157737525461077842480647302565143658529942981086512370869812681682784032225978133188605696898440983812218105961931155680235470889906909160815778223335481127623947999404711794069043090901744419132043616811338758598718473964158441172431198997941875313680864875519559981804684120237055085161443695048503301385928915525087740974780539705361274040558765185699821007566071123331726153893836941694263534770124119790172247880498620505454529494276742359208383138597508693023259942862302671347743086058580375880778430251909100106759457110813888985223061258283610117067970277850849529305863883084470544511790235786355351135092050276712050480813296534633989600788318160195961288367273096318866521566335771219976978683821353759877208678819614863313139417654772381554331686423298189787800072608155371666729563975391196969999134692165216304808100204486963392194161217866082862081027104125384964952670779580537035930438031851547606012400171746979587058115728706835724557360260118006610231641637260944906443437516207105875261591991456208040460356472090795304126471746341638118566428119425414166342714982121246597534804852182611381076500021469463766949776715276188653526650957594502426375889930575124836618514098073550944187406247264975358527936323579975899535185761533836792493165691022913302591969650892244496127219715669283289733708100311989691379207867088314343718840769736716697276335917510751903631287859128710135116747907678149113690853977876651341033849720403574832064847667680892214978683098920991613479611723591249046786740053954327319011791957622485858082092272085744918590044211007582745764787956931542849769078886100063369721931172615604773444574626443819465497004257895814569327437899358478713302168584124091184853109150984873134265466249994728205780441796601423265997410462561115588868448654870085896707440397534327764489247917477458084341862984064991371699247836752408570534266261106336126505349615725753531605449375625987828314851624073774958969619009250998226091167125729512990032496675677882432382291381306337742451401171894462891380733512727266838374364704633792842037582781206933282368235397971087576027092277829055196610766721482044279377687256760926629633861003282498712903606140661113631614705064595336496948951977566537378563126394587229253206657026285388681358465839615311201902440775847344123406107841125204199371927565686211334354286995329773726242360837520804241420727708848145515123837710479871561143211911138694218101062158390979429385925497931155039011141353548072088719550644045970949958734512002685134043718610250976100059742841557194562032206915295470300000970329967148803104472417431167843962208070306774377761835964418791799026073904038143554198616263643475092478199852182558944979584312231492774271216693230123862575899975982149785286489639757585412450906265163125002034117500228389612435473009071884783640160165674683567670441235265631490233676158743576499365955675075669694793572926760694130665289513215478389141113576769140626898806325820470533792277985218719974640266390189960077619736482657862709186348539921874705858574963451967875352676592591177599702452739224492978487361799723310393359455156316908304775643642722206199791149282475462545227639619742715663021492563434681644629123573868219282051358305500382538088331969148030372237050483608888774855401791209038600813241709697129284919736117284275719408316731033019954991159438273829719302382518351113671607475541303069932856335309989977165918931321298686694896415787332306714686391988924845358233920498880485056491367764348337396024668454447786685588739864853507476767791866135896533691819130524173726305213270986958097109850072655416781213754975242260828601849140186392399474834256140895784623073478710489580003253011736902156811410464578101445693854790504063615398622103508450663631461223838487487669029117014401457888043495124345708067927163559531348759335258506925282290106545234398132409255978502237403215368621634110902882180898557567993938280185653540540278649133232088905168946045268362019878724528214647367949344087249419032883177618103311036828977600583981640863282720975541744691865499795215290341506180500365961266133621295643472619931996841841676090273129843792577483064729255424443021802604026957219539881547396211697199030662029144045208343472883364397487973869411493673374944352431550824047656061752243378612191179101285023789192602480319015812354606928772949149590285948484830259066946352918875947000162037842545900854122091820492795210364098255372352841696671131926999471754868985285248739564688074721310670882614261832223758075489573139762863203449112353636412131439083211734223144437775975385897958779211155631984956977233566048841761830784204793780796872924044161589666964148635842369676186058061200223460540010383370214714572690841352117291591950920449783404486234598105379481775532532006455915262224313914421691815650911235178045500169762625224526650256078525541271497215267818926801321218914249529339406772787608720663735309629471357559215229546061645133057869547570286675342884097601943077344403528677775894459996685241856146110917065542757597955721803896129035186889448156789441058728383827086407459324281391084048122440249227284950153938587166401397105265927614141224860800717473698842856493748957622713859817877169681934504189510696169974120585653010993124210799724432466420947231380434452738132403927775343434278834810783221312202491085599232687179744795206379663697127387968430591295162672821519998517260244067278056945205531726162647782189280942987768880422747099377392339983709207163379965601880640207114128111279263316120880300737650708319224382781365185192363568504297341302050102250821866680813992722720967096535344736479447331375534039840648133262055314723558419569292195564959674581773353795642526627169444162874515909256366066599586178568214458432203369213947230882632762448822403709239317422873956618959635688521269833044839388421015195036094486879471402992124781640367054640275089074862778830337766526269811278417940147640121285716487587354131296117615354342104840120742886830903402030515101152887764833732941756716982768185968276085553338093464017717343266720161091702231002359493265901699982770426995117570258956689084447193268711105564491197383136193474868456799601540632387805005844212829014234688183160935859002300984116805072097882253279826473495346145443874196358353979782076682920503282845740895868180658916536725662225794747977495276085274442490534512776496351587591216663351008583050826005917077130179933577213638756688780836852587793531312147506951505466623982581896090310054865123485079872370400354146124746634268731410698370105520055313462231183541886767997927636443596521522278146347717202053881789237395970687827916513810220994004808324063174095226103495486366044217077103657112438207307818081930088977567072728866796143881163689518840532179548504475777501634507479724651796282975809851612503361290937038734139270345001266178722801351391732436249227740543988082292642651406844815018295551718465436503686041679859912849066452863907833873341084810368971743770452230452701938737571364553835662086665090003517153359401492661182000067240575868739065306059350232493438580870521360058266169206380333392599497623557147362807254258248374179623561394066678473708584404465713628178168099495298451531247518344349382316392931891899059579698195278862855424929264290308687810551825125614348874024672407638616376377801238339672219858142275021844830489335959042180532757181571115879746088630417705087689293358744228306934562305882716839795863723451054307737536149862645770799174204943630778166957426362443481975155510280225784863273154296851412431423850502533365498646145173693911820661178303847154394564250679164224109282726175358026675851869127999873431901212347452507042796924867650302480932295810784584788327178630446177394632589817838468458352385371921996331177137425092989537302882578792824145137401015843703988061261381884322387496574090139067102504052972016007128568574102546156610466496540441593869854980448610414765403311427629355694248105120356452952930206127300251350211510127597432515613140810803228797464804891973202875426933352656732599752413400337952164014796330000195738915725105613385250486373554447980614459339198468593950743988244556859067517127307302357930089809874859837810622091565233397474328556560659335317127740465751239020659289206944922804089391433455108280067475013249336417940000569180779235851324945401622908123692803411106531813441167679411498923060537573960131217273797306223504717160908027847004018011049325780355595322110227614248416613622425255475624874978450232029534899641725154377579689245763691705934647836004112623037495241928505925824661788698583740665834839834001812497183063034878296697326970014190373692606832231683571947418576534481561195723096472181169704356279511475414699132953329192985982979393537292259940326811430782602006832772065500560353060467836390681408365557214768619506514525391715992046156512199598205719212168232742809754187711305930924257084544918929438300377512271385486642181244561138154522622615197292979841924102513135885071627849622830007352652224574241157241120764521264069144153670589425761663228652510321613074794467615321129107768502893845173027544657172486176965769930423159684416043994968622608471904993148785454082003308018978249860379818519486449889404647768393551609685871659362935490087429981705906811997854523005196917678585727818108558107931904950004152333507911320610542636972038589651517138890263624386958806367357742916828956166471374693763409743384471518523080970775404719461299689197754291110449166258165516040442455409367423064244563261754090485852911915491392424692717962182522612487708180915954749990078395343869327921501576424624168635637825699825463455593577082776072866246884019306233858349272984214914618742098562318605322928000054637529692438611446727896710640126483425277908913997185596865718485787831031721407445470510157340565427151861855901441402518995673513148035324875333854347558943156610276359096744008776278224912161592051541243537334297659696673121976217738472863355785339844417904644008704161531956198627782220411422740795180788613196742706375909841502380779648220829065579623607463060557926335496080503027483723228630007651593393372835979832396475766522809596715238013491140327246025554119326641123378960212220541519564874897995751960014853431110281057289241802740829456790834543314771849119581004848872340857500046333578458422183410666594826934503913312280560842495229152430876335519962427380043364142396326540918084432068609824968650065859996125277849166273714578349782512456806956398284472590065481244412503106551225045339941705929307291754010505036994079454972568611111325839521194843559859280802730043983212237290892498479403454074427268509245946214420845054130441603002679073279993751228800347797731759139767814083659598849941879662039556590293115135772088578881521733959388393483137815751407739298095318343736938068234998959445368541688924994333613076072148610099143797255844187222564314612824609246168157567343018329364039738852836510366560144114928457771741583729172585088800640074320448299949670413755138812626172000151029360341906355027317586332064224299581996927404778538775443577316232860857567074578465444381548210089017583669459379952998510061979332825869778218131670113354406016359672679103988936720023968980901715258048262665097589130355572601312954179886687432471978698629764684018529544772095453970100659508893218600495258997485100628286635817717720953068605568236250822813452717084685894179721339942429594802358496636295226151804776181227446203801109657793842115642518386372262737691835626423514790593198102435086042300966698119514612286412416275694926854282588745904025536083982755015689339937820966684835503366436683456459313461639182477586614330715707925999677851043190858826597407325659928740682928083191442962291877221730197652030105389368317980199831695424785096019558493046164307310809606571923075760711700635436633797938388812874990301048701433782945321841549051382851134609874949894455258949830757632985326999513324660970707039769698213228225554364588244517789923327207761051478159894510534776446561647408428364330872202702566116680006193886556132462441496962347987429523719822637375573717474275218579080406848955965610396996534409654199721611544535662313213940976079054241473133690455252640476714987922902632497140727300414556401479760350469927657013666852566282988080673552604051938914660541623055626175706276396957920913755836295640852307829469128112677103284100418983172448708629352781309858794160268396587645664163213475386135031139341721685851541415817754276738340558477270924866031076909113471262000666883141858496551434841353337630307193110470421342270093904897956911167777772911995803188680743382001010609923308239851366720651381680160413677245147967819252661654306658241489468532587834258251219455915318897448275541074807262116476381835002531543734268583807308059542090336753633811619733585888007938769753106297872352635250195202168012933691213186807170654073282752921402552982313175866351430707653941539819596693466625035367517712065606416317783033506591097708455905792184876291530979928258494660275054818956431455095324254383165262000048672038606874217090188395680903713982216360494399019521384162701882272797370570311214599713388636071755012003566121269977399159479521250291673387836334085640545445494634114059586860996679581994610057801700851769663856740664097221429520188042034172091466429867152514179423433671136648790116655752385265886209565680581782774828906538467778174379386604001954120682927000301125178489802098320251897240203934856442562134252318330578780865286371531716135288537255850761029421221882339662747566274361173583204876011837749145069766705882865544526911239266815797676590577716719715048477206423728619436262426697083377980396677264357168001033311015008535706988206092948022153340385409407463443532722461066909180977859133289909419996147602845903535169584601555900088466951979165657111342820749512660754682500356592554296087497230240154888756868912181237144860563568409469399103577497228072168883219141077209778597233382464267004770115168542582981515127949579705707361145500805469808985207896889617685814268895558174931421829916466291620117114407653053333006530521053881846174170946934632345029088491659521750750815436102670203322483011730625882697405232117501412383985408475675324215073514004784555028054302724403337570183148656481735713012824038410834583464277668986216481636418013190086660638790830369875959999825060213058497118706601630782192706805191756240098183415393808834613503675777564058714200156552428606562411118407216281252557681852208870448415982238276535337358975644062657490147829421220435174617370482914149363766564182334023293182463090383415539128167432940218704007607925527474099219205063403240922203144311325193315567531589637272465235638886669136038865946121170683200571461622300352233256679839800016668178316106366609978875154265790676212516205945363872858113811686162806070885014767807119223267347524305747228428838501032366767788647832921440665845236176712149573410687352053137851563774850604269303660255306056492333774433104539247120417265758348592080476042216603197186221869983186585049606521971532165912644993634472067493042529710918788363663343919976123438727345599908630670643381729272815157883876834567627560844130007311115363944878491184621240130367891661146937666890537906372756484301446705763046314326897808575294437785640720114660893109025311897684677219419342457931742479194090133031159354478500097728174755090396603563052756690694142762807599721585989930452891547167001245712714997323295990242758091754665616331866742429391424658911514785347527666612668909561849603239698486565360041675587715907277172881488437677069315422345567689299973085525478933988156856857094242842019340117023899322971879950735946612623191354672730223548322686780395524544276062734576819081715234472727653158420784871066695629699920416732572973239094781144618370981283513305116466532973792380914140405115928139520169163983948173656790452971221558041673919624806171792740199150034962940868778635071152676664570836125973072904212211819347315113376773969267453877688332904674029794006150664115916060411389749663196362621693432479702872425185982474569498183992107617014764465937350190005800993616263715950022650152210633721993030694069816451730829901194534586862054545750137125629006886521974085960078970343359689543513946219703195637679292793935061431565704771214763154613924425811202078946571252372264972834315796558205870328247108636328758672146059843776284225679210302239028041199429177018419648087231036115525142195830157513051916346785245088301710653034439080438188470414861097805363920054262880819094214554951929251635326501502042622159182574501906756704505785155232294227011588708404282170804922865395513308259744371026301276337190602318360813107849099884890241880661795629774420830810418995808394174688478711778123320416085508082307854618342097378194129262486084391167526328893444526703718035310704883714354713607749015206312486024559423913709947120611473349108695838055982199377299926264876977940857710797139776735110205630765640147191408068845501567349973740640824528195955062883247334775374160956329126529961081257147512080516593544664475747578494190081842647055795327629209230515340083796667336015095033077139796703811257538418923439880706914145138443058409422131294809891042443617420913078993778772774409159503179236040148871935905829557100744329467742526462093880197853904167226358297615228799388913357597576326440674137702683171011306644295757452284266206972406606245530019312889570815331630536241071786719910067997223537060474283610303066344240832895804095544497152247396224705397306073314240512176521422723018689572734243553827632096316507626347814451051746481080753244629936798012052941567185306934427422702008779039552552202502201316997866002814076129090706803843920631517956484381604072618391492531602392385062749477466171545481353978732402372196427422711673992999961757352091606325324285239179632857136848248419420709946463013725128039497445783341416031306697299461550776154704017722636570441831465555968247590229252404893936752913901972668206183176383025327895405365894387062944335554954318599197661569752664333864376855229646614011488375792771196808058733161517550397448623775009879857129193671934779854131023918967126957165123364717623384984576632824682742370674388317575882686056260449057097512123108655094240117871018865797082965432462111027055847405244252627057355886898451212048030188068685764791907058702406725511165647103503869784862363834059818418042338287582999144285719144279142906809629824482523265504082156751850177060082288889979904209623168513612297865815883261118879421106941595020424429008086895413017872762069411223680509304382046093554351886370949122283338217114375221594790431882390690378679597030795018605048536367510337621450370944053169732683888700484208271090780004385624352940593643362002509204822260874092837210433946495795055686224165132916277626006420112855392350170408625905293758305219148448469246166005334380270534310289282829191954248292443537577667615949964520301953101137635019595787990973831103533335581568938867331764519773004736796633948862596904877813563181332618791846521317577031709417939595188159592888574743290138464615611243325612100305457398154972497376992091452469500309660619881691149894282169371421678001876157235885938879455955967254306051279153053827427441326512495047965674636837415069729259501890597953056777770077314017454197195506857632951001204019854355128709604547458433478444087947890730136987774637401504696026359990725247264118580339824426151041785045817640874171659656550556703627516980302051673062654837735379281698981035965417020352157102243936205797152203655849907102141387566187409740753024843300991719093483248748230798018709471675510477361958579537236710336342861111350845502798227187487913371885202430475970495550529975737648325200606754196398136809914189481897993173198621377110546275454109316319220880608692338567462857638922913266068241903982850164582761141547475153217718289044843655232864974479098072318978657424632291461916178714319274901837582899186863144507039187259833392224057638996966084562556361885160337204268936494254016699806353099488028158618058222621252628545783762883499431794274061383863585926022028474194330898639426047695095077451564119846039901441825897870433810257893086924735058098588106447026978137157370938546413381182119846478865272502061265060491989072156543330934444768486896367580986235806826146515809304885981277249776097061876757908348351285342651790336216515692492015308408022872976457459532695692372319331759618399429162483550000697341343030270343789422259643888846478680001831947578524233340524153758188844756871924093298148018574704076664994708043964829179322754410100711793040049412028239610844745570184324000569453437810183260863898680312377291371599455419193942365571001880257037744832907924677206349665912895745694457515747030551753241323122760008890775486803836855689946406896261972794198941041303834138166641678472483251305463537887114720328402377832748593185516151824766499883394481294921311846036735783181659490648967610773524170256369688099898380239001353239960203903203481955872818021780675174656320337770786054801790078613785648349003967012966976999434582900638651918362890043436653050603487414011435402031758221438714490189242908515921503487214890309549417050482656566952567664676692517315438028722123099486385231947294366092278237382716258419300493604537041668950734553176961948367213529542412646726338144430703120701935655212978901919174030448795562848818360141452406357289488184416842111525987780296450677807700400793659718084679429163946262302755974000111629580469104124704501873561572857207328935715400337183240258034047003208755247139745698066340079256738200048681995087427251406804850783938874762308872489412344848764193630195388985244603075449774384622088500058976260266533732687103533292602183986512693333853664708092827495193067489882494791602014471010803077171879824181848085804879235973399389290843124266428109028882479546672480588396845950589295229134060561463941153653446159460436471969412902425155524855342300336949186832689261929057701804799769408846743215811037447221587398979305611701840862713839331340896323724595271340294928010687758424071786637804642673129623451689353578474306035567820588381092903356167455345151706046135175620246614497883985043105742023432759399330879172170197869317553498803386898785437581598105487671237759873063972861829409065815399356257620300874456196719103130479346808412717990586273701072291948694966603008522236276919060824916593388073492516061533590602678618574376349154551652848927866310575057324423746789236672891324169788760937392153356661171989382436608330745441779802398658565035723284215296160777046720521409337635537747031670925212565203144718027198263307364310504838477666582446667289277081825353677079266146918530276254616501214124377769300843950375170894350733380366545263169801977250095756287413149133700234076656581643110953497307374600328361546067443815118106795164319836551901248501669750333243373609140694402844144374353567342058957502512002640556812444533128786569699013985621093435626840698348752821910430683241515078746003249663156607750210219897973806151245908565586328860878765054993067836889455788287698488343347264459518198208042261589244962099642072033972125972929533140499598659682714766711700156559484182353507921563176693639009703134230860200065275716127441232520800872136987817802558497878194258868492592016183188712128007855729473563164919868778042455286557303503382738256470789984353847438416866975632175651324313685217471493187734706973289522774580062915873978058268302145136669272174183876403400265083272242977041177964146830522771316179807407278356603533353790415900599191562139491458009635165521615511635167656771797990498605420679644174826396320272516373124304597072430637654594093980511815333583408254181214512796705072713494383551981300543743870658472966780139810196783119109581527776125808009846799520523553648148247355573645332868653354549497131059789919451310871746530073989095695633802784789118396853562596036988155705485299869628144540692882697445622577164984114182601293227954466937490199803631069338485063473009059464255477286288276612094264875645746672053805955833865017073601146864802968342639646978560007633920367914492373836356512592440918207215232858616102758906872575383061864769040643545075572769309233923583594630301387300058141418267299535365286947342612699309462573979898170595049663666137356081465583600683616249829883110629570697195966118536220584288399504328028884150057842360692450018544289884666825530335925396102386935205654836250630309853206790556487323308238205483418654278513015800248151192165215549288128043340543068920670526939200872024232229147552716427065976094712750635108245869050431842855818811709488906087866885602541596198993925982904483429973634826819389826441868565801313102650589549267693725657143410196356209138419609325949811446087720189746467949335877704320732309946222180511580295922637587211151208697144444166153638642186600755883416699365811164092711949252458576214345461757169779730460790303750423158644640979087213889301619343189605869246003845735275155252772974248503930167781443071403133509238697986272760371038855327377168611450265342448481980123344705484182957272824610045551635393460602534676161953195445376178334764451455301214263199683282806861291738837946106292098349279443280432339486685244570422409847682125737643889209067670311169903547764359472280678073453353749276965675176730342571828379510212551174973765082274495127179132241431597446240907112376273902376597455381491749657777125830784555943570249487420141244787313420910405730047295488020035043632695282783614313521639900048699755620234511700207342471467187836501037772682858470679678563759113478094136331082689436718896660469858715971572817734535157089030099534898143044690976854400390730797249663095476005886291513464828251468201253656929041539509580221436927329877075683228395612880210969776749423437646593659638745662060336498338202268552637903591915207719843051969747650370090386494425192542266330560410851147950035689387772687362179630482183418930497415150464742372855803576271983803225225380466990180527860037362862524548505051277257311486991358529312366228606155688370174775866099131511806979681748470712304509091379088105909111242119874672068139684945125995236574571177837245254848136799878790547445529456825347591048268854215821213137134027819902350342077911108471676062480180487624812362226677724253535482981348814818348563623501150110967047266472574046410656167593390040474509580664038102489603959343296540701352141919497101230296502513588335740287657099638699095770177429893388519247996520953169076151081324084534466294318614831644154461108146548608620250772499401549679038257242944103756071689393129344535581565869312751389687545639731548513416784268949150550848946339177454163334679003176268441828439562168817398553901406947155434147553093927397248410659131856441654274863422986642448412257706318053805648677968669047459911220627558474923469767599156752187966635345379243862748964089215026546155178457979576940461472889952454005849174145053702043205295968423995861538458985661623280241144563332100600866582503616393876150915643682219971975347753160687162131830420547327506879381888534082102654525729047570536788706458295332867932008962415449456260160788080685767146011888285787321956779700541863065960520410701716607989616581389177588486026106353596769248002618423096271840033148202914251139562968111101782741047394249909746593753373386685112724350978384226658567278521356443042679581352684332174682278457899096153036837883247043742048499565254884711167819542526961132711356383803498541668179879287361608419967852801894869047855120451350961124435640778344911974688910694716617144929379779989986134656474543443357379817096725771471882401271154757095897620594744485172866152460491553083604805827718589580631236380028953782189987798905899214805558269998896832015486511642891060410087431053599831448108790198032445735288719877134131652553104391888614568447136116332839202094786096921197861691654247284636771263716306965284466420297688755517590125705341152364341088835196847174943743448458071176355400940119182991902457052015991124973405445888473954260788399207439828723166518288735595867644887643038362089185160562097549305034384283076292294239081225535709278857094902246462872684560335166469480323977874221280054708091069755698978547078722428328754664258212756830493801802239897530607014029278970411036816586465010283600910938051168425178179726542539378042208796731344271524269532608168403114480691662283824591277780430520048495225598674519850175496417281374073969112181052047227133340276628381214371298079003921680171126220592567781331806919834792905381713914602450778198332086635407291702824261915065108297094032007900794468624398277343933741961312721192953462577184933527264497175788315554038249294995652342308486448068014595973773179988321534475653341255022839446853160933755822278698182168465662510978023537209999306895235326516589653304847290724568760585985849990283829169325692435186309734258674545546378516744060678165740837838729379105748994936707916487110367057344702907482640972707291035821585955495589242010059055533413940906643784612015176733608040638276217426197001113699599831468235993600100572599656489119452912194331489903717750813151729227085007036937366630310880193756360062177199665516257808985307134780500600507189455576295140736902283755598956746894813656568663750262995566673268536258363404158792037887780919564935094296577238081997002577569033844819505345796557156473668493204170529728031170695989917963936369700941268792683117818450944080303758572723547538165341064920906866904193667714526790026743016809565533555736739559162899223669362777438337391831693569444802410008773472336246091911777783934908687520961716511204074015872922322317876248852652213701365082289126495334971976575898448289009746287317249863308247705117820177332823105054259790190902386883460034581698593262930545821532242674457824176296846942151039335561657890791196002652699547160519383432516832935872496698353124011590678687141890102983889859708996945509580887209282452314643048018398395234133798282310886866246732222345559058668969684704751261743703491005891987242967648479189644975643309947355345227143201887536344014573184823939395557949598376447495214021145175865295668213078061642114414707894864917210563896117848465411562583072966853628823328097476898942042297355982929007236504050222960468519836143805170616170768977901413853622376582969480659385209256661374242814581220150862244753166520461890903030130493621689125937140251388346021857553685916003253765774731593900078595016066760523552201554101625833218685391801047887588589859394872647976652527816313335664922688685364661805620396255912389533658751482437240220243766725709421388675737238765257249039119619143245407588708170328152937669854426266748786981736343040135942736341040264431028622324853482496693244555291024975176112246492653800172328174628869727081535831390684053336191378565025720183439414666193393965538631870699222144446087711039107636635057482037144564992615626800003516265438530993369848962085959715335582563812312067581026920769477142098316659238541861085276440589646548900163815313478269234699715793194952926955119224218269680795256796603539547826700245742181785477593234103757916304115261032598417038993153922597452741735680546667084169090565990126401916432367844251079242910422011970771282680919097779261629695698376946840757698770464549921602295108273160389843787803739882517181121316005049400665872792129058144794080249313579514853970326508093200871209411699307413499656554328616477013046081344599134117685359365541826243830343339348756337477685233120419628751369320667654262586974487604825325487950925876237298331924816162529450391761594928639219601628728108913729130659393620228177552925850248675467501320724991785794260161771902921488529991171466850301812224473469541404371958505073556497357361643844619723715299818020422375757505248438230666426220144486071057714184031804053163043370318047038038181103472557951434869188415954386935681383894990639078092904116728531989258892412665230365611760094554060274185303750489057720866383958487301978791329519119799933207485667080375971370012953267163721221992002837731210414482045743177612692275820982169155220133463373443882184645486922698999993849985701320437300630853375513719403829136444776822600345909577516176240108309746215389354882778776174404781113298508912013697144965551016696280356430293606684455864849436730045329517160484408539959132160879283328812728853618082668012159411197641213001301313685369886330270811550626254833294608976167276538645371586153691631592861300823839044660981421083665089960991364972960388667084216603329387485411647055321901024376767829333026788898932701526480864256790977517249009145645000226796817808119027962454406813112381727675074472440923833065333949264301638348841624264291237813498360111306060474922558793934906475553313119566813704539696415863959709742996291192622806063205980640932549788360190953860695068856837040671157214090671590501334637775645352672370493283715457733685888691619836708489690657560891584738092279741379526808931079580620069284504207734789032861995259782791213034511741265826066396193150733460618374687558885066486560575152207700948236202880916467472368423211036669036270897908544289301228780725760657815178651392502417936671055944641785664400224105169379675229045079098373761685905416390903651412128431879454201329267212472242105147118779218991959278346483843782489537552365841031047740628366237245101867431185783804983340569837963198762501544973756225445817985836904638778603901258018469046840673809432102637184427309114397264595817611127730422545654908175517213076096630922711133563803642052371932287366837861887785090553224933452123548337183075718080290214614514530858297556120753885756910917354489759259452787372399966833673971936772320586628710881332505778562801960952307465968510981019225370988039759402956976882191525336944431877832128471048694680021275363456406645866927362504339079685193844548084063154639820249086379777627067493005748611758820028661158084042394290748765932554677121851530048490713854855780832025469269021445290401962794399600706409553397627165478842620885549362170863945937997897354975994696748100834243215387545200865697602476628412913966981603066269942666493154303124750030030345527634373865212030939914783754405699236593550225592815197891577363091338678069277388238750998203594826821122240336763498514600014105550096401194244790474321080771752084212722416015033851075124551767881485581273751414561818909934175673637474583212123412927606897713035026278317324073908893085461512095584367350552425424022863863172654685235164311238290864347848621901286946888777067924765240319820544493497715246093768974290100030645818189997571250753065309252174888761732432932294849368284445293283966958001435329349034041850707322200434065300599096448450648546546488716732762092072781385819990896444436358685689084453239764434612109361217122234604381419578391802982848834786603483954261694725340834891350190364384478643534748454197743888764744985030435811307448483342587213506938541997927317238644669932283915936675457491894948681274141180999501498595941423409468517788566326922281832974114272417256305958338794846271294543692909808756849989120837700172773331934350732223869224712759806860013526464728786667047333491390178640954438748054372665488072778085848025035176748498725760560111866241551778318582897733358539597823088054743741731825708535538362793361217843563055908667034263460724304097047508041172069173572532636751313445873769952313429963076259669173204732481932817108483052823735465792515290494578617637874462174992290401919959590349022740003683408212915994797881271524156455100642751467016224872437173050842637151906574266331389052646465986581880403722096510682031035295715482301996245366816361978429913912166735534771410378287656242998844023796019046073063081724068304453554816064874840632582224664293020689556296504210590140747715265182681041568010225677153880349585218426931255108896971902301160437869057537911793370150349879722776016517458144266777963503370680126503378363911452784463424907026910077249733937487476673503970798835665172033707597354736949361273998227143436056278264677200282053392735123720428253021765973205186189358996912518817253857176225535036395390605417230628100908437921557850462606881679732214646367827734186054118044266991962992400241319793523405802818602579448768230111346630464752252627079073193156355829803326752654362102290913361219253112975580564481834316350701804017922034552954135138344922038592023400937979399349872498212183152674337629421344321228923427516859208372206907774287553313170050869895981323057852058199687225649037953023181889612869205231536522857855839558946629406730625473185798923438296167278224011804351660249081298989960309615161693722441370955283917079074980046767258851152040849679790300342771607192947844415489209616335667334871557837184775040740437406720059217665620390241996060430916941859110560050266208950316828247004798617429680290181990793175163476648296546807630348200535974269576859631487113925498691166564915356424301842183628821005077772157668245389138431551474981964690532201217662113313743455727224600158298718455282688760308236535390894966241299956575466421186843795001950774378678479781799906558692372391640988886991933292772527556504582743672965723376709585666357070927787011500139255410027572925826628092014380837720775568589580741962663736260231364165539324008355740509505382160776534529009945660334368184622566033649837584120143355524103070647533499980421411631081045137667100821713435101956287882767953536910487048013382358834630332126296067173335462559224683663878498656835783894110437967698551640371818508915024832021533858949034209565507876039458465158769372336422061111000538079029481670662206607256712175095050067177041607042465483283867497353378593344723171338447668612607436297087470178378621991956260098946073588365467426444325678294695483630515407823516059687083262366811930778292603270494390234101039398343225832015816704542252922262393870054788480260130230526527050513614995818419960198214043551384723886835525145763712809277366565919409027818257961955233694972012458282822415625887942353646758629063945535395928345204734997364220176867708498045511429028484939264107920465057777860618554894087199041677207890915775669209165102901852503162418266205354341287494698060346570185582854995521163921706362629133822580911009108141749718031411295964994693674767476727727463817678586284462051320409101475939201848354483012736711924186281321626873735718663630195386321674979959450830440392042685774415287524875016045861081971761314807929940665809917383170711007893213131053615557292863843378670916053679007769238228876854239008677596914976423515999706309457761270024416148712207056382038474330195641417037497725516631534988882093896369324105003297305122279387270738176007570551579008180363718375802812239773485492372890918262482405117643777486497707471634118549617552729856553499824032677666538348608257110870787665441509815769217452282048056854435715599904695444472667008580994678384904241713182841441450633703347038330741662665913327745931098880227087112882156638911902166928275168183057047023051471115695049117870386106360421272720986091711828891711981891421715418457484365660134099727285831203286388516630549404004004141642909838429622455270407459618198058568986499870938450772273156142632028826201738770488472894992158917722119915234072103682131277551537286075725223323375904522076470491606940852085758037064756796796006381620650624561433916892136003680629775470499850588617570764662520659712272729889514788983623387395951813797946387520981125688542981810698975716687024032518634668233126475152963617054023584408157213423941424471145045643269426345682770892646747287179566309364102804936984871763893216687945075977818369084987681868990993723403070201691632454397405877461148421490988164568776934498535605534140260568371651489771888713065953527007232488220903498964571314671003942510149550600714751747345430664932533450044996088726256935758214001568122888195715850246267324247109966108212028351435287059953325944464379971934188053801562263626218527085600400590727252889563445033098979888823867233190054271164342979274645440320782293747605165153892748708533777589784785222771111562999939102457110423299201255574930088107629497690072391707819922522221825976859380146522904522797350244588330693549058358761823731183271915586213237457277247869619009100382320679142921967376925582405916226011474406574823528350456738251192252663003306657236229264494554229172187041138193816174422878763128546155179208649842053537036678756650162164300089042525239140901545489302828021421873169057886907662478475208831043558248675844716218003106141691067791113029131946650076925900482157051909234237289471500591434079163639745436139477135436765248477266632453053120558218002474580153323430744485675764623343344122178615982983372153443734195631494334848207470177871745279781086951011392216055194775355854312593469943418799715341741482680366647393234346845112289177925042231360205264254265479705446608315989754371678609773898756610372846582501025755107480968579535973970517315592228632339316696646599557541149428195567927869104973222734227081684379611787366430611081415768499328053008216073053284431993178387038069395867842738047135547913826805867690255721078301668827559328913139744613225382292493841427131470047360335661083280764374978780772739871929605980169869286892176807287183640891550197692091777007560785781308697540302208464002254447656599659883120728169557358439489445375007158742743220927392096317942175787860575757427294620652726416949001314453010019808369732715769759285684086431092826257345396796822314206302961136159834580826159330708863316271196332562025839857088887008260148515472307562180149476386325916271073388645444146781284861339667424058698332990008176980968994852966731944547833607907992066904396199157849469258118975503811814672250851556773439405323661588429147126625214182257942951906584587934523402371569130870110051451400986057084114033291092728412185042441715230359526427608609911997661636805680760522347661552599863766823238369139264088877293142933018259273614170027171631256559812011694610079347771051705213539666556755900995457224391317734306813015230549887114091853668695500841598450266357771752928855890854806172702462882629746856183147262136993971528552479970603785501478919424319943217101286735542107335675410752149245481919772661763298992137393542786396844953143365392390726830282385089489023742396392204790181221092544810556341175530280498315033771964061093477092939077962626515075664636762506674752441148752959228837893967929504972901607971672645494746158285800026086425499210826914696100855199480127095187181946502972200656622460907541163935971886982042054928752030903973034571692177135504932793392860266823912605326984600380024833429172517699394057879605999433434894346455680209025237716212613307220301765896653941061899207344504087641977347265954598323842504648775160227476030480910336292203751598281550891979968331396921711808935573316204234995324632003791571941040931601673860853137559033331740896841241466741192618709773353469438305771373529004085646211796671850199472247443369817947809958879690380486225244388642505933421712856006146727524539217955822066943621777786110744130642774000547782752010421488159211987191822386114246689637633042409693100065384693992679716615041397847055187861778293156499858957271112462122249021174481941180234774655049331795443642477912507032208901488190132105291121658513753288937581514510307066263801180375346426548677589756112304191910663330799171154026003440379770882898024358938078607708564963537346172333800918726011413714397045059789230259544527524087182383428667249847726537693455879862102210339143579022345459900026110375304970263410846329479123410156847187680500599678281725566057655969030191156416208891448256518997342872796867013987995919088913153716384146512137591945813840401481552179585177236395205044189948738303494459482618289599025913654404893803727110275293571242301595421521741579264860272392604252740041900643396064054509230572550573252849682797248884891348136997697461652975058425646982414123489852202693802695738621864081187159949864000939284213633176159873509001506353521736799790705464524286065408907863131258621847314699377253215807051301752716294730355603329933784626389131345557626844472233336339036630728477027260653240414243740464074791702323124781742242646596332693264515501770058469808596122789287091410929324973953051928387555436088299856817397163642233295696480196717879027536739227407020895969774875628800375890066126848978662560482258762452954946677215374260081864480981862689234080778420212233018058974689674979990898612779448415582265319254122814461357500589265951734576551023829987775058882085953963648717183533632373150573750762727640183677978208222352167876205667928538491333705698212505390107269295808013850710681171490737873533165803099999754090878780455244888122145961113912133598854669154374730795842508486893626931078004626082327329044731495122405167642053592269132954207624721569565858529451432680294501256797230943116789084906485639502694421164461642116358647501808887025777624252959632942838948384978375460446337844287202615657826864070128341938216455282576870160630367908139553782090341735124642438277831041920427389726078145881142107602909477671544554644587216923659327133452679112753196015720235583213756448528204061443873973788558428901252020517355950576414643348131315670856163596318712113506756009636178849660163033058551784848406668625587682218256813310203547377344824062644084153414865746067109703204117422515444869497629689103688218787989287370353356920970575077978717871543370999443224418583108764196617369196099285441993051005000364172924504875213744481672440420074986529504234543647566553419859577481669357785252148289093976588282215806300925497915492207564618921792580731481602202916879606265925953236060511474477335734970965707841183464077223192421497597942050137520553633191767232661949483330079300401330926310041661883024286619092605603449207665967376988403885548939438596174806142270150280437546595600457077197889342413109315495034927436110909711190489554247215294176374499312591308670978409264064193262065324475927492252020744668931749146000341419423180919547130248074801470677726997351938266560048626843391279606911439326850774054922542731260152328656041471724640634975008069286059216664394117052805759062009834557962159330878981584378590387647649411212848825071471025166261560086498180368838368739837712662067324964655364629927285750582552000380361366704240227121560504094129723670442047226897600453980886322917467364694722010047078827056184237754976514698523410929778748661677746351315652727460586365577111779106149413854109680315161946821350731007173636348611378951136564059096136827653288294760308364608230933661065822191545919143460431700961924318893822528465942058544307083813779170197946261351559245892081755547999424512157588340127414264167179599063405761444626114108308647339311375052555534258144704032437367017525653606269816140343888888737119275367297250892538234245139581267321959892449249159821764716346769482457101184601838353639123423173717878306206383977464660496261744131811281708109673682932284987261594046302760353599398521415445445621521132847406240742225823553000832453358142142464851263532874223458743123302904510887482781494888856190171968310907879120910440821576297031823689740144140497627899482818086803274752755293628335067239346014185261535967381514777295435673221271439435107500339435313620718505224284484686011082423440006810788548224984938412957213811326908224719477563984510864166940208000317721301525699313375739712165987783172219857000535515873046329000460267468029051542888471426606740504113716354887328220544048643159359875844976523342509306649498192108337193507899563175857260939743299362911291452925714576264133452237581217274309829345459436814517878474795582194396061417878347243004809346331905049542347697052313688776354818021084428776104145573702875311793190593466159913531711338233060042764048633380709254017918754893965500821258450163088591061845638255675330429274685227446357086332922998447850791596550520570743327614868883620270482130215244563239737011015175178365357390590995414570002965232988478066108720890849360784777399008036121422647815815196608936256795969042365129734727226933607692436600905860462947161397526518147413397622435505653133948060660832655596409125773750746987645067381288780886176912422458890670559353177586649598174433563918707039875172004512552750713249848947681735080707030583592278663882209965259239995794286063271001647252380782245253925945409743310887566725240826307930557034968714910082802999529645400170190537723032789275420516632227681808903097846273844415269644519972890617772263806250456855977381677980524714391337939934791305214467843881128805105374995225172858676464294820752445881049140350614505339345956551077808032595444446517197062161319497910643182313517106557114312240171253186824904862209151101472224038430405214613004532290593704167124702157878164599220831982304959695205747178289492389599204487745466104574667202212202681620307805125655498490936133670167020549999485346655786532229909487863099713601210179921758740643667508534202244167312707555700787218936592898517277297734022453236520893658693265441978656179121062114935378512120749868526187401158914389284275389960513113224165622444753389925371360116829704449656489280573571583545763060523321220283010403002571565200786589944214515506587535323289931791785907318843704565862347934006254224575270756265928672939655326735440231055779038612003310424481194995401534627173600279864166235953520774199484212956466107444694197629282450492034201566942624841536044884609871119422077677911858052965217587958019600334788089265764606952580601397216816557762239446086242773681523604080378973050499635567251678416044815512932342768872532126416386055396438643826050848011969676666083146619860386152137769762365537058108718713422635520140623838774705856368970267585414286348220899766967669433255014239898667869378528872120583046392030440756733480581270764144608509531982755669978207201464201669083825355713875400717188491482678763370541128593924984612741946754883875508862959057561406710281575711625062345378155008881939935924735097625678425222180961198048523839070433088271070026033613205534809698930965131469597047863190187431997114899345816547558173345074167795592543977149559414139408106383693480803719649462508247649613224836064365988615246869939805699521521907200490895129098201223127288182951657204713366117218553875840173874643263582550075184361611881322546270657168969145620645167954054409027920956664480062661959912290809750196547162410442252386663790815044774478978765838030518471970224790992334950482737715781035249532112902983453067683704846017556452844569374629109638067122879708219736963895691404734786968657441974294820904370095574513080992633945684071048643857689900889612919222097853810272523568936564837734673907051485554752232329645241534573512249670936763891067126169849984203473213143696761426817647318088197928570832823877632017102360947141978408843744596068638214511044749337594308030256529393480990176561912901632845735057618836484781787541034099924526992004731292956075207640722951820051966092144163679675946029767232625005190017963260762418408112141786496272900967977895544189014574496738315896507719457784903496362841086950023400727922201824991594451414973861494490597243609359286742533122787251426953472431644374265086218608656500173978043803065418125875689612621655379774866205047551009521017586390300412649403979979682043895671936757986525476128085329486338418889908893931812012638654087364500325560270502150774679906523831181425590765459193733080589972378549961498747659427996115781954457584370784338501969216684807882489492639254424680471117114924169185427384368426040724272972959296814080041396554569840391512547052749549314500289919666725650448322924701870010655784616159502040491659603206213149684856547081998174047200876267847039680334794676193861688675788722080587164344783426889023453638206657315804612399182871685842372111803689835715527549965944728112251277587655286617638076993325078561170835583051878169409565017896676509714495094887846222696690711953468953327452257065003134453364714774779595930190097356553999616770426252688288011083354032568001684934417190189091598968042543681451860418993766974219051240122898089662509880828465768070194106124977005502258837188458483599146035129226250705336174300694894550049248771794195412633760409021022962876734069923917610583775306452011134998270334806735956228216357747147053394121416148347407031788688932276150019969470502562907396924736794422306361529010839781570757531185928549509959571600938454290566074719371966333980248348218825625541206763700636731437401041525702302266463749100519935109379973660371193469406534264283516419671774710776332334274605892743139016946310465717960766368985666067051281977346575954303925605674792143390220427233495969983009815628961460019785352858949893491983977401446298959142217223743212386815044644651786304885500440839098664257805456458409140686280953508111972059444596743306383569058740256707378995614725316699727316923139141786674452582548005629425395303370188341629980194295756828477949839632894894297021149310751572706234357204558762444559986685713739968936236648981353630602920370701874859529414616594512228109389169458436657967681091751914401490020494818293764522314256943808335846281655614407629277692625696595436176452327708961858800408844325213758116690664774720207471231621481626052617257446385174714339985886165051494800292027604950002048174056653314010212530887831743828394992413570904393736884407711266844401118619887359883032590085333975249594426960437904752683187777676739696218342301983440501481399582479248676038985556960139876309914198044419216674721717332708618683409788039894467107593453597610379950457341199071837442637827336030268289083617825160735452374613926952868046278503921678253688551931952569645315225795777427993127296160632097325816618846677649629274828857204464041781227947355933669863294000804419101024262368275162717130974863603905914708545958142298451132876967067022174152825798622149343045368254425971842782085738323653075067361494742248765178758542293426782155747657927058342636519051145690446733356959054558612555039578793866189188769760932452544945379928027097513631852880261451673773237066219807394209712797100895327732096949289562550072638414096904478188587845686022031708863512013117047778728436803853801900272716513292042136761874066099767856267235236084369062599572338547824576947862889054315218430694634929385618868637264800708863474782635470853795637738744754927008811962844305185963965776717437385428798023940676459106412627644467103739066884316820347789159447468180847952733080435299700088686595255951963838426442121421062266912490871405380006782427617196167828090065983336723293817472607864959081957090405090904442157228628561158299864807707550547950808709662608616795417701308755965221835417151015684786821002422038853484968644028750102160754018289554248288944054427485232431484178844048606201221730694826033820139472304378554136348994655974826528555844879366682220050093463882534113820949335737176445494276454367104733999930801440671724168029807023323299893934165756179736407270684241253704712488025429147048163351153535535815223801511056774927692518939266846769198912037547681690686871437957121276962369372751451027457061508099234379146463678425810111821612585278201087745377925980804263143532404613104152721754762488666835819083632009155124620321666464598178274963959452084587801794920478102195935476192706747618475295047118572449283224910807205444270263213593710229282031179067940519680065586926324699572912447813742758115240627309087957283664983426593372709981535998683669586705888936558379539834601534910107695634693568920337283753812537347443152462099709079481555547055937182939078811439218568952470047596471777911806300156600589604599846500309992950805742286780692138993582072639629977145291003190890199531970214501083160144665504178488536844611277071053272933731088636455466281742540604976445660842879618478752748616905499454226483237798398769864976494270918826652847788359386592711935396664113530090011361525908733616839295353567079650276249701337431776142360111826660569768926116936710040710794916788110963928238424428411239260362596008055351048249211358924585162100273015082786943920630214058882654993223489840978897887255377105601762622812976678630056988776257285046399352972793786988985500880767907593625615851167287704718730222522113867803705312140831418305197532868090960625265527868404922031453293708062691206298869775393181567887834710171613595975517205645414276202244509078303788052719681112826803151679058818861406820331323150612273379755364700990601023321735658494964770390161689221212668251941217241843157631488416845290639353399072587718372532316102353441154551036691769359188763242398757111217621913686754190889370964889854398443003268399790527537250978065523073184344316010480822313228924113020645946409967818987773776071088980039018337921421545629170128760010002917825442357491076734070182962630865645368899066346342870365808260507132964324083198278339162084047801300875892367111008316288267643905720484545331527433101642703747123692252422545778266487369507289488022756270966113572993873653461806492642190671604029863980438987214750587045249848916756877646414635003217495083284260734261859929771492940814673037219840887200028305008859487136222040468704042735146750919464564554954494975863289118598271922424639776477778699759510331746106375228048963109857036273781165129816645918903386020878624846478583911224029947814275594035712816694770168486518651201876089701583288562904786560919177467281396689859790436836444612597701311232820223131803485063986966301365140877759779124465938297978227620437588443098100437152065566980080612463440078897922424376469256404159881662744415778064320665418505332778905508097669284782436903744639591487008605446575665449826426594291089694473578131459986217849171337398333868142693960844274934440494827639877088123827114669392553574725850307042412040568155516365223686966077929318524012120646336814460922490736523825513908951816460511237374201075571277003128582995689604697562459170449852959551120267902466370903599312895195163517960570165230591166855047056103537904488625152589748234982647999803004635937859520804655949947170645658892548326124302885180061363527174656194973453390383499493851359915017648821629526266655986529804954758240581924986088813333310502207719486581375772143306696879650316623547527713480321070001064361997065323015547207984294342895465596056287866824170234879037109335371849186150820420097380220781442692680646834690094572377833325065772601971552702273251736637612424721398156831467457259733346547215138708547265209327557965407146165187216068628025135186934007400812137097186950277244021543545515658536564517345402316822045371115309579635037075356240464936874364287145276896818492643545338190660972981506977146850975503306847245405489966342389020270919214645540693940314518796309029648711134297514694887297117144798955035351681434204993095383793132855173606654801532390637283192114394229364264259975755662872512320511356003976443155434616782649302117664953735899208737983714389822448953496583240926195430610854833692551962079071398653215925472309988576044458569128111518034860603485037288982932920308649042437974496824065965330138850884574347176401565285919640424747371710082381161831019311676037348763037749418641022550885467253388783369351242331699696031658815697211594214180116414580069472913749018828279432911031744182795239617597532644572947427039487318026619906053273238276108137330032808036138658664433337191391945976592021336785051197002580623124791851602645770129666425614239450050261679943124879424008025543760902059896762210244844262331188270751248404973412422438065038585909595938308462065801650720947556236893596461260984893787170112661753427248536637523567177671460226342897222606741513079261358999297827380264953875518838299398030270057606532431659757036304510161962056950515535967081528646953786524638570009348214416611516921513395618064347673776349683006937287544891126083627933306951825890256012676352968206212413652921033195250819197018210399129722282466505474106186297497355023773276683336909999475735521491815963730428806656470971824032667548170805471872614703842098340440683576775057589054196894765605023243715984832777231626418326712171982956525200496065732092196664911497643948255614434287483624390134385720909140679003976686228561781329228325155311532897614120183214908435705216476586711546797453345820885748630570033337723135310498745164985308389348483517371893742404597499510446069900518355815206830241302281933798577124434913227542850288923089730247565448783981176660158006859792471875314784534849923485647168997247549984570764052386267980410392308633847313864570533365599213838996345001537279052088032871408531723069965079390919215762185724607475885846240114744227578804985147124147813030682608650450219733483896797996278644824502806296122537493692113587926006587419957803627265687580366295918342685043645030518529443430353243505865079793305564157430493392772180916098241871439625017619794571469268031903472734824412426773556103396182453926261378953515356034553089749920561835742152316967941440662733909390990190245997221880666909116443496701942623550419076265629123266682236751369555762507623721694928282854843986116751383132127262297902635034726193272374604231774217223700935267510849459252238659771023033370202957857244364625330866526340972351953561975384969253764531530081977323193350223193109934653732611141593135699877934989737962473639521039793538871802198318671327057310835474348987761313615856256709981455451046752495789437619219712594442511052651196083176396678747966309736880771351671318628176550930725560253347893639576748351862316842975108893385956962581725267774759523096421311128260200090946866023536267456851179971799101856689656370326786511261762530676332244053900568098506901946597657816781143327944298703069432993892830313849103552647318662942323309046548392474201531203489150214527871059007838626841624356179492859019386544460991522640758655385381813522724427285369017515828298174415784686396051261627725926387160353560717334892203860565093055432417488806020798664244614348436598571142108505626801457662182343116728114536149595178348374263167843001863367565345041924560636177759093507396487468431203979255055773331488746841501776547695422090347909467582188974968173424334867497770007720319448734827801092578985654435768288364993635818852715047355988848014096961270510389529360485791906418488982335954947615725195430991939446144995945120763360182353081368844355518908062226213816077845400139187474886293517167573048813287599589642989905625377880733668775913395379576605941811617248507763371826507455474349467111004481592791542010612496394459666699995600936408145559222092864992301078498634452117683525806992838124380703963468854668155548427618285409711718233710761661374920392317802090735954800473725164610176769651071273830292947436115413739785262102031344548800442991797533339844010025936232283619231149397001051950862938734162515363146489701167809950059528095152848364657018335534840408472068884850621452308355952276583337195447562445287377950321449719546228793069521046648846428199674732267191629388211882171489249317935728810980448101029548865305507894461224142181172484225292816310734185855092121190281790800381721367028539212931200866419220852793481464745742994916346329653579937175677044010342269715160889178403045072821423644313083945582185539209708616660299522146087650276111478282272630504815969989186785709564634941204397709086424622520514451062407800553630850717145125159151724243459202937669543568872247968454955497711285585273818804024156051993500651990895022629082879243620699834524603995694866243113774868859737405234510880121937740533629679529890610281693377896972519530455845420273235873998570875176366004678698694056750682038134537674227216901053765062968176380256900918302495213315616231582556942734755550558810620898254927180183182298718716443698749673853226452724197151477871073254321421136963514586314205391127075333772578846520847656279032983132032651421152186522439372265682252851138878196046378672057973683889143047014224919837136979416522009748206732376918309232792032565520633514608482185686368241640919820938356687484093212487179978302701817467032137774044345253078329511890141171137956992547617831867015194467756082295031926308413443307335992898377725452735398135143804237975127435479101078013536394146940700758474948852660676390705409957795735257282003260350488553141489998980810543758804964524752744143463704298174494306137095708597709496178782814156953871624110471348876546658599719268846702484131240865250927098073394114835569244611708406310145846048705916828742161761030143331677243097295440869246236840521312960373571961073063376244176852647334447076373881683758383226730260895936419766387408212714962201312891117941708212184941579119373910029880842328520361211814439617901954016113985799083217068179784467120839717251117031882071427535256520991924964302684049083466720838106370527140624788753975003013159414103379447728438741538387946848856566817339378355798565497393075782961928104166661532405439318318029871198256983777112688550137867969475393747065212338895720119585937666919119613335088764086809421144947823229213260843649665608083516581314458856032061822630922704716707127202786131662280872630341282609632045822770566835969324557964110232744107457527514914867756045174845881189692794204142458195677700073625550108486508103216237192181238465724595601496001458433999525034161950607585734191121664298047361791081474321291614627264284135822379293043452918135464297034643369561899497343038061463222450835063327059576213559252456721969191460342028585794170552691973117722321010279074062877605239314728021574168780158188085109586645926514908732399696335700510152491570128035402127389185057189781977619065688581015927599067910460487549635538464513188542618978789698176308942900290731879584162177842450189754443074915657270411935222321161452691336789918522793842123466808511402546881825613409038972870665926479968523470454206958248725279689074973065554829939910764008287928373275683938687640536435091513953833673564519395975984870847805864285549866707693049591985061693975421475683309545083796250225855726152036153627013324418783545998721712494394377081877915918326677348573226967413672098982974427580735667274052675419931274574594726672451852211467428570316537331317016523962668732968605813917848309649838861324152104156861761698119960416920275738566802900757083802999895124916418173074490683657161210805409205074297748262083046834659042343937539299461107951023106824069758300309990501715618168656507920370036409366210963103953820526553452482346876907601001458902663995720924102008408407685275368009296389949197490530295259735559759011100398481193617915306893261261368294058130201018580220527195007396779458695468409134917403157926103503392887483137582555573814560568242252449503450977952284321004940196830760062444550058568874980179088052393663108847550039327929936064566066662003632127278838512058821137289511569232954507450168456811347540803619735920811722600284290147532136425694945719995694036628522492834224731155901395518848620002151460135850624189707839573313915141928791036545346301915557271971730701450767046261371066450191814905880439276241302649953083858683536991636859493334066449717994582163186119625587753621478318993197509992270091215557411825540929707811623312264323212230911561573925604585634091913761343556520120876129358083900988692519540240790261020906378327320317535631958370769211069555357101563599324235773970678950656632132126870861455234747386751271708863489775956637044461985331484316270527285550772923812981660463814494848432388167985657554264670195627054391526001553029096394538859719714983651357436621530826876169913186410315392128390833057962638040261306806179069368696453302445728044741853343118060964592537062795769220237939133363500497870080731169192785952352885390900265310035121479761100383213636342914248133505216559591683457136462348005387531473672753063194865550650201673664846756812125943969556291354312059962341003944624236447496341237172470531541342385883405293377168009226951761864890051536522440519972500628680777912424426430273103765405375082433583184536664103273628159883626762340501630562479942261213608325484887083247509220902534853235858391460826253480546618049216325284932167836824221715974434432394222590357396528316299277202077386992004465095717294402727873395874025755448846512171147732910705912241798867214253086013414188443612896444019349121252650845615253905006801340957791354260154864421272900877877165777161342384647186340907497567225587108230946562105324629637745511016818416205170714170090347894416185019452520418659675160391819070207367297501805488771582052597298048348826570230966374639771154476686143063184500470204972177317132999988311340459774677026099528131360174981521638163963046727202060567238107489141341309176846778501027193704604616664738070379181931727891576060096375456820410931495434286293182165399479328355095422510538224070885535408666117855109288195716754215258978794502719418513042713215448290134010308159763505309221873880395280534643255370322912312250300293933428063170172249433937973621005376428446635303386792514100430262872829983124589341666307595120035028221941254121131021290477929580497503380080509875183269500614900084368518775857724061938093471331833264588325545107178392978462689480741162065646437896223696438549434929815872618030165026928964833419217020138134653889540791145184828700141837207307064631869866374619396664190535629294509742040813639125379827753947475357564259970159685423857672658460425679913022922458174847414863890756474258890973213717011406709974409131623684776831716198371640179940857508219471928847833186141634201507337453262521099293928058699038300115883896107588079169934166194751500784693662036073349627682048563912018603281712568128933967632776299536052212341791260778548050222989927404579583874482835401760909400536667008184184746254363684082966415666660532800429843364220247579995233243577504367966271420207149008019694067706309539097970588587133339725618035911533186422972872487729199402832974783336909286046287352507108341050377980252264571998266316453757209565955837225144851231697593910771388371208428981515704892630082626013716196266233159774386113918911419238647269463662894474432606969468487520875712691621440252535358327160161479619245533928122585607037923907025447973492189988909484891985778402784790899990345231010492509622318314745068206815508427342082109146254434225146084104459071231617030560694622685015655741974518649244507446724940536162480461951351465039088481198158762973445010455628444937461283821625188688794428268856793631214044576873572040920764997631255559506770605036859379277323441688924424641122642521082732012828234167651165634371908736288131045311710195030167069853989959693562328755605897106573056538037069567814570970086157097205886909942989092484150313563301125944010581603579156130230586743862825822735227199922552542310476245391266471587513382896674433564694942257257135049456494717701663855346249058069845395980260370827466069852103697028850819427554682862672531753359055952664941938175388084338711682154637513664352067351537829794653308167150551388870449417053613407549719085677072499904507884849443434920003871282499424114660435578745357833837973984265910182750322523376093825141933030267621081171619531108734016700751525045273038332311382199988072388571830031860434544179475033790810197963441156546342484154687942276697376690903629851391001113470096341420158488007252970216277758756913899239825400596689722128219255594235161924569286172036116856531528771415290751817461942952555482848458022915446575249065267170633087481080365836445318809522354284713042466506182836311684041798400307651207347229310367803013940937011076677233195402921376845876040487775623195956934215309474339133909553192442269799274492279490643589957298749874403747324278967292721206078735953778272340051478482947749616739928028371891502312599969540771018480968705422288755417641656770277257075277801726657048068157177346580509873378538090988189899119984435451926180395585752180937193821614375075298841198311589970220520805918947691290783841394698416837634218551913620736980095928768185892220020677691047737599346279645397370171342535534815074082640868297738669529643473070859928710888624052730101894971036151150575149277121669725960104586144677352911270633512550395122291849546106599965427335754287374874007954212284371305932012010191054482316507129467476638576652746759458387173485735199963648505877665848858248564176499693932501787106678414866949195853040928916126180987279032888941373714457447106400386551480865953336844303292117082897781648856670437135813739400915724305196378679941021856291465028632504494808758088981307698656475552659980591013535998051604359712803588560156947118044514346810934621769662004629394002853645814918887776281822140170505011563310177702109849338209744147320535661271913555498213940804221860554803850080126844259832547096056097830434235193636402727156632184737099539585116016807774135102964883991412603668334090008271664975395436391605551457101806070198156869526533968472717877293432895740151064544249429114497065626761876395990352015053981936362398099780029253876366542040141218498541814199349552956946243046415487340977197178042181869363355617383307463396715680973509596104016797547173698744972883056771395366876106206395810175837369224719227933052783549828359518764759503003004135053078542650592360905639399345161292925224406438460309006378684878906420399968991533599147305629023124918128965250865894080479666542383758911152622136882916722692005305959513830309908572210176466717581341580848349999028036851332136645894749596705432052237761118320646764303681990947736765517040181070822772946133509779578763633278450848795963403005030245295738562829098932459985931855695269547313464325860268857639253470792203662498899447021864322878734128876600839850685417139769496462991645003334660503684845767976149810370003478549242221347953460240068659968971496341547882419771782200988235888429800494017203648783403458389883904517831478872277164019493814397565975717118010066420554791397145154417689398088164182488977409143700705884796310313531960119171023173272856633099589629925744270135463773199715797509691970664496420813807574072969691129925801095725678027191111818054945676412557185190514952253366624206156662322743821230535680168697481896316955683486277789747070884401977776073675224119887609643027538662195692336041044199446931317340799067392444179907408409142630439187265810392430509663480607600041649178831342559958236245950853837463127168403599133538849449323871764378996406073645461273436958792283580253737471182475351236211714979160764724441194391369376389566436964278891844404003745052736173836563599261420251803923251217007001794594499701044580755954801802845423788205322051774053543152630601626533643031679335633819915145497281125052581965909250548122867562611815316727624776245835495312361189440954899736620782508131309814321336396659126485756043797019635912764914994664375806620854130447687362418233025472604349576560508460130697544622669429558264047565792577523585088904281973002052518517195181428916953924859232870533466120163936209910685976990220128705673098177476130507860134109461596299368291875239410067399314594159216095107307800679916181906998111529247077322781344912092571758279219390708389267694703872529608214055012370373717254619629821955386132175438485649513030066356727405147587927409666246673382529262502594554581288220508044869944856500305989096693157465272545293276972938578930895951158008363204630822148483539787196724489790995838430404627786090877565409436454833767423525006547501706452456340653046733620273979470215295347767746537721794805159742638675703189574618421756485314713949731861849885796699725067932750510839257722066702841831685569298869863421925604894942033650727290540306083588367040066500540808132258971282855563225599253282271466211320850934430834266107617448132054816687999128955980014137263259594790920873994746479372015834802784166766558718866033984718332895264678066706969093102436089464044056003001485922128579336945944563896234825991989928088223083379204555009431329414556672817146729608099385569568338306310646571652921110587889963227723115767484400437166316190570369898385159236081247330051905393895683530968844558531769883585275298542493759446557823949072715723523143962372437170076677419739120896342899694350385785617845098581886824082793804475560282969546337032454500587859263598932040218587874144847948394024284156001811871756247973727596156178583207645459343898575906327011995968151244616637698245099851392346991541243931341213531216882160449210829885726544779639104353612672160243733753006313581936525342596039304417582643500176443621848710064451118944594959157952411131570589989159740353316593148431121298337030619582061596737262673390795805388499563729661777516057590931247213422179313717487806343287779691780820363795514240557979968322998443393914193782487888063552336327575988608085763142269357452236913826571707333850765808805276654115839914428723428582670177580569929732865724602020507284999793730156950936367621543163778610618831131618131831401910182902995752808978679462860663999364356942648577085565284307561623744193821780019665747780209677402530797481162449001919238350102431834782676867548301022254924463078639085783041806323630417138574403669879709661838175753550603348971606011445411568863990157442384705445177078565186386711670339764178586700847461227426251210249122519935044362149504226441288182539063084639507365348052347991858886850824748283637762250557307593321529542078542410607512084606469651782476741241970798463156229640409033900238661286436988161132650322824223022495991320619967285013644312431325465016329340512878638655152852483122133747735453333930417945659750505383838460375061013345136613757823776340662826641916548661685352176376574386084070875212004755336580673926409595383264869767792558512129634537444282405613437313238814324450263040481690888642530027296202926473277073143114252952989558611437389323438127785240884397316639923258237768029757147520678980807199830502172940837735265488119338194282573442488377448499830342892314772595166443044817937292935493017312264879861300217906719770652036064631657024637117337449528608559370803499582597317521817307274833968228825365209403091419838379273468278325443555686356837983189266932664048283719608650941041623514038751884216818351104517485862741000310602427421098610854305996472204806870969498070481444938356261423946516708140403935652441540386704263985300615621130379687030362987964902115356113692965270608191588753980505602932546152664722767122246431611846688487421428361972838212748379573017722262794988421477048643861869492640621207074431683422436159014770778836923985562761966030063501157092812779723733231468942881870299191372119579998121970904607041270353243110892037740851698609067692306464231583364559862640198694161329485923665589371478045033657439131253377705088956096713868835218064871073570091668086076619244890750901404441993396232872674677048579864549037304918000449651487214910277603599824953612405283272855220719483802299532784362713669678568167692336176121759107475352462163990369132559408766702531716785259593603164968216319950904349349433365725176878956376190228277794061601340916555666146037261707129108735595248004040880240617600008514147753061284528125573466332661734813303522736783024736327058533787141789373125017507413461008846053056302236631554112965470267025631901064577550177775441149674195029395317672619689291495067995271941544466899430692340757702546228060537901831250931518642597228323912457831841803700772374898818722031711585406279060427651596444095433540100502714072377307035992425318166089898834326958903272896067320350093555574264584433186741004649574928364847302632943329550581788424105933257584436788631847638090880803309571271410437392237655547819590592724921341043314719295779754918111284220128207497518851141865854343085077678330202595057405093860187092056651254644001420237962518911802890741671027956580713613509384249436228794104019554390652035672597842249884357081679473520597480782384855206099181401113435994398158493412011263165594689397946454526759895173233900669062095949624759018271371418198041904845922338841480360177891677785581333885739012896615299907182746692293436389393125370699111315394270165853131361139531407891041175648166887672736096512365696501350358552651114667748775767049805564448896765106342901682067665386254778558422541916772289301059728876414795513174563828512580757145307165498402335967246285771409792668144205423811143139499554715408187833840582554542363794144403142443174255255342264566687396032230445409754974147818671925368126946498045360835701352734221351903708450625130127459572478969333342034822622106887617648663614534703728957034598512711182927612150776237640863255477799616852768015465328916597394754661751501765939448620827435643833886939555482489221405094714589788301221232367743703388272892799214625112965090242414427387741090719159357185880052464562572496187208070019526429160578701105147550231228950129245728659639341569167002559509936536181983016571946801719368300692168928123773077580757968000892302137408622062081676532946343378866334575286275816764809561131101211222566454675311986980105938071940754110761976566533727455439766565986522152134750543321462129219378590405133012270473396904046213866745359223153990326018251643842224605926124307488798122596187751344275077395700258134499974273824512669870591849114103354939950983439942805661331012886361278983018856591859658698472932777125175022062181401146698934066852578013131525068263917167410932260336875079685322929312410938450436474618594600775167486619000709880284686549113807547766656721417553691153405709282427839523314364648722772544964217236720479844071740397597154117341144472286814682837041061672869311216326924912932146897935689117663896479537060890505058439457902881291570008288364998822096514892091152942154619725050108653492864446556904684538550595463333757174294713351236534008087493778127183832986328481756191525859078711736901047054389801080506465946776160876069894784981821154916433520105403296229944214489534260110994522047726806375463255970249887233700420030511826756366248884020917448686688741010785678003722028097905683770021920963361641418521789523569222784106174089089191583147609684307334030664182164985842941381504894656213331870658636658977998532221487593199856675790713908487606488148644876822396138059695676004294425653865153269710724852754365799066087943841684005368500449362228240401490603847577156435453493462690940769090762942996222688190349666327847389531625753983319020761402526388163308297332171207507143717455940088853228229650087963385111642659228658444267387413871462949209254723543647519132601927269183675392827542860827662083621566666215376615437106058125238508184764836858702709100947412543757353995408203839278898664493333572409958265986247843542396070852973412331529569386305235563673028647447985235917014470634678173103329024983779982215447139949237981816558236721384813885595667077758534997221559688878598606378591724885407429397734779391835005588662118483867514758867515984070436420058818066702741740809681720801447190155405132846097739898270610629173056004856291092271097813410829077574095760180754203712557701034625356213640108699428292353124147215032963184680699804432344701327877294866912638976636511942215959779036927652178837303441951261612840875938043798649642172453217245895659001207930938760827870567482406655696120075209878294495428954151693517139003685931432876062945790301250867396483147992374847424513573065912269608015242110738643496756750063687851250694405406382349807690770363512638127090556746593532533882634927702672189991938037673563944178824566329557302716996126914747482962127189128569280679914044459615717485273003669603043249200252144453590988216911683987391071847969384137636811247257073159520728286030687875873699232260698058813529292543172183661600465155031485803163107776059631436445401397737097461681118938975157888029788604464190788236541093289462690495002090699489839439853128568369433183655169576678879951414203293932157580883341480701306516522020949034244399195118982660356416657078609530302416144000677253858663206722742118419858123013036296428444337940329437183073392870731839499552197018248315310270179291414127053774674541693415201274975266711407013942367318913221434910029542338421386187286681176445937407608816909482147941895980840134802305400509743192167222826147239692387823200647877467294727609548470288054002951028909552770019368805581256897220031071207172810613147146621711278078612740394785341102431066800314047896024322229978032862320655981454522148498458374701618318289326482484460081053715830375401827840628537434747147670843743478962197293563310473416195593599220576317301633475107115444811784085169495019280167203970309424246586916336789235040820524143813452638468806197411242577129524395016281515074556912076700498885292325178452679307771267245622526535753880967579951552387091148906626204494157148210746535033375496502162447167308543906290364192347351348623685819379964185939861177193689367576412182555345054172892072876804302929871221562888038331907855235004518210144412574316182850452195525144946342421936297885058931243511585842935381812721585763192819834675005046879794392611403222459380546964616704002576216083130731788233215323951615946610149475538466659121970708210363119199591973335829421469801108449247319866916291808474226725542122791525298523466520380204686153555131442730688115777321528859442718589241016278200904879250580012130212804577928534491165841826093600933339011300731129578944361930924693700676786073660523723915155866834390896479409363370580514526353919438835592479754053322491645479474055672041309927099630798959731430453498451923070165352500433461437397378750819842446000208178333029705142963010880368511129255485640446893158673761937173225761161131811991392715866137174204625961745502533056273011804100449043929600368361104498924175990568272919978697192007692992184616577209101476277960827151086916595902554051129786182990042303817509148114633739696114428813581368941605640052195650600786926977787804337995978294360649446183970782005930391190527720564076092806891985590322110426509436520047759814234849576549473823572942735811700618069649224789367350767057578885620954944527355757459563734263540459680234826161936831332919994470275233159081779840726054196633588907223621656308694002305628348974152428690934675489643266394895045882891736747094458286344110312526987194216869401256178035999538220306576643657913897678617651451758003318436233502389037752859562328515543541964463374838817300190360983095801792059112773498639967906398277206177159765574897128363039186833998794261430606188290467077495842757690729764991212960367789563180465787991895260869325683657785767744361351177377030129625939076381097137421248109368711547776910230166976833070386932475009288506889406166530483194317096006888407082460259342819592219029478106281279420815891484921548845480188463516266525135435916761513368602739153853462969445288193407155320014287902219743665299910057451141510059054889271816122844029883635985752522597881370793819524017476890999906787171564970283563843437863370153302062857193420607640308581905443452468550105188738632772463041410282607757554157718705666565551414239518863893646695704948243409565359993493005352278671290807390062287895726826927557256269520768493368145416391508901322770654322444791271606748053138716416573679372558893688703418679241902935621774290550739712296670115559148874480171690246806427252138658565984766080988379179766135292149862960992182060021994190262921792248842277442704689148011567318352354886547424710826654893838282611842341212246108640525493560861738123427226130427560256188297424246400362017011425105349499433461250855428036162216537587761890745643704708696098705456850945995685684601839708422748957337050827780932702706521898705202488900840555055239890890669167065138552567253673601305727009013111485393337938793482604533746777503393626574819498567306443758952475262109659730666133646826305882211948817058596604024979382849204726650191017933727427506697538204698242659941545869930843841404788735856563786442090956291562611879930492397399735528691550502499448366341731047955530290644652279077849005883514752305646248867920161146807011644924432700502956619589545407491601070286331238916238537787680337106105923398907643812103011037368215190300504903664550811096934914098837644299530048553757102643286872988635519592346019770993784890624801557851646312841247259829594981397085405227061207931892985878069218532667926573807187593428192237516421775482980260520650674688058222533171051666052667066599945079507494216645457991368571472329370506329590981964469767821085653423360117136270508288653534688463727011077893113593110069309974343443597668518754220130263288425628983750788038570488630394511712933846541126503470441227505327485352498577050804935072997083515793604908944882209270499622162495393048911178276135328932910254785973179177590320296702981872811930870694133860359722119697496817128557261071562531215880138332632788765422263137967898657184205374614526251052734291290779274578003587389227580722209265927765094323212202896800399767167784332213701698181421760408992749953522620334332068622873144838896906545494246374338745662344966204243038453076351424793972975776040913291495257093967024962572768019095859943549553037128363133558258288021804581676447067827180045762609060587468666619323791086342412756776624322981184608490958907879882593242644229977627878626977275978222681823221403608444263979578207267138042938216526893290103406599713095661598011156593664137783237014138912693127840109625120255936408197259977145376363722040500529570822980213841826935908630438744739723188513901060194639148416102347603477935146567301824620339061691912490858628303317525889955451932318427949115255044498390745773915483674449536797337691148860238489777726286442542544511478525306547478835180134176872961227967219638250847017165988168976734659508456093679550830424308338506148495495799558452911499511179191648124040246489841748963331346761837948321671219530840515631600922833602119254203817538412133899271917132074524712766975403416635004411646434121565584461835420832795362582876126544704353184336807560669726305902759518026797436426589587492798026157496976354071925693769999084983890560771014837896970656140638101107996556670019389041830078188987457705963083549644558524119855690232148341006474440681797934199508906376818879406711992436235884150299858802454216560001537441851969745819173104842757348279312270926254838802117224186530281142425340758121950719395310158271953687215972974318316272822883467450356190473035598632204698835273936640840421868483319254215204415860823356816494539248246460761682269663858565550447642581459554166366037576321799674461449621936590848035050655703584787773517359045827319156492896260310924685238683050155353282113516770121683640501378621611574835764030748826167762961435246890239563582701778391512063416204077953648121225502224678799397246953011706578024060797516727422064465761937693962680256662931875647612501534560915322826033084519607758406213870635841970497684385275519672407871587353905139586517341006330552708906058213372323490958957305946364622740301665801189468481409169646657525839787089679528711908539953224914721942663304245126723644588547491866350110077385551078165933457088170400226602090019433413349763301137042329206557971838630869007591068080153354828976025400062871268424815006839360613392098319791201643127948135467588813058173192591802808026930740569099452710161675039632180050011494752808276188168883167931301144584774505799206664087393705303963014547346148707016072697482507536791412988885308907681249467706615197769943113476239075887686190530188419770472613411299207118988128532830444847354016896504309141399146500788346133377434349122335998680189414391348161262633163315807349357841812327669388913098971779307094370572946435521765347299340228239572343269581039609876584230948311553224914576019737397914979578770261471393549932164274532094370963298843775823095613508336422725895445485850120890358457399662139215529370711417386254040493111156762170541912979240295631784685163520850908548022038160053545052758219668052690112142997286815605662265989479043646491666522256455313703752424854856815807045876632414651713994435612956555117885592400912436536694677210934404652961352875633409138301322581549938795274859482265904264030129964335574510169666947479882581774862407896879895567407710474503988057989840248651274037134335032541885474474896231379217016689523105960453254247636805477789254778007959282923306430241355750027773401303478427304513382490203987254479276255190951804687510036972342651505902321611511669635704570742429448034939977397851121477081263365334616808912412485973456330631287428919782087884118677566985792981917185525684694292703969925029979087729394264671819809047038187652670685926717993333745077305191924816633203658887867969999570391952755121499027655176051599192561481837606776080395599454324543145123178792737966806172750176375909464349773828409891256042494155629737957609048635918424009191383145632238437053745534177658798283262144381402283290591256696531110611604932278554397324545275066177170079812065812219567669711949318092558937998605035711861309014867000839176297261790786586167407538717432800124214590610379554407088791811108900650807843797451130954107255988933373041585465929421942870395742869063782601311540961029389983230150730468481101708475645560686572591670560906244502130466115583350771846500981516418736776720493023767034462655910614613447826742308793135834826781308440253764971682722750003311879198883377275113594748182358424123713482091958599772870067766820917399432246350023043153296743019499068985610973945640314545186822003192653510553476700265913224989328528522194991177961162161457379743856528047254877719568648043662151436893354260668586951838582716264738643923833291380408337843563697397107766327975306169388639946320803801994281490599360907152515897459253552654673309684025987174427444313785958326877010208874173939142881778347232479290793336071424929648355861300906685575890602232005175458903915895578174825101951749422871692910652080605418593748388825898093371493079617673639518443612771172324128491457825649542161562993829717446840609041166124827624696892886097812025387103380996986650911387400691776688548164531449273226648520271863799026424406390707502542887166401165668192723414402618147583343907985792416242309597864867377979274192030967672588927836223261987995971084453914984578469743405205946159870320544185004342659108195506105610901536960204726811984698575180922759469304351834550547767889540903731920862975086227270975449288439377306262085704486935863302835005870347404951175858609140256204596014690530576550862659782718058835982662692546094451099743650816285686147030201474757898308934848384039504785677426569116513038334684031821058838297726501076000799572215952990848416296498590483581150106793025827227109039773582033138632840952062928774939630215110908815678564706023203458693913158606906040396887921490333088667091548114441750379320704533125118202886952062724646253614145051944687732062813725062009612721846294622311497195545013146318617555095564268237019455777606345661917843328086249903445424093124693075855259983453733098088921431067702383095294826142023224440737184341319802586748988592333308961043389306287583982619050579876384215409003085577772490572527354010320550995496429577249061191084908191983697012632327680654485109854666625553351384427115766876460639355122434589110179093953756763194097560800381905361836004061914051017891969599615402505074876463701733868528440990507854344442792052577249571727979629855466649795333585133447027798127388882820473505672561388377453861257720746340019680411296555993133647752474690853969747766672827332339193367658530852680503702704336231025250022800167090567565978686539308519530722570785081611403239044717869138397379150086423422720908855831264852069422996952706067363838859663686813518020655288721054650688079903691207461781350690047502126810663756802748255214414281545201634290283997013767611765225968663402731915751169816557945578112617506380359405782683807519831277151695993595338922035372235391251993825873416669722595790193742444160302050608818286883539904288873375798481197789801851526646247536615407285392930574674260870800271046276909552493813718658935151809946874994273022078512904229079909730794373441027123358803965307279250870885336176267354877342099453734043544787737847954205135610373551339271676913184627509945490947470819399353762430247129666134626497359749957582662280850335297955983836507104383188331785074887633621095619709125896855121450861703161309524362045783574486564794694881663935983631151207425694528890691652525054154197160913085835379417262619640635354579529380213894578864972673008830936290604823450746773689069808804788484215463826385247572422265583790143691125404558794826643868484603333461913858057698583280538296420392085082317310943242520745434841969079322942378085183319672468797766826439095156290599554133726119749977277032171727884889014746145814965998282890924738900612355107899372611270079899107653748224328131713112588975941031147866985692921143939855480149726780463105879183057541407010270319922505849232601035982392415281987393043573681915091087712448304734431948304540788422159304364412101559904483701001956401362211846824015321073348589683762486601583029728389760245709799021503456618108112532954574952878640049357693898023818196086758910106972693641264777984454031013510902099049673044244837230688401956911523028323634265371034313432434276910555598869926283592657403844902334833340354750644946919565892568321617194040207757600999523561450912184003449820183396582584120301448208133028124853279687654709950197642020901127327031585861992418813153135637496066374947241887129408254378281701619922456579607584548300239692252542877133919702653060148521815447307467505110303706527939338067050386317183879548897349680545627431024879856466201710684791873013633037619567498214996408025510613255344325753192985296540423826217464476199502242083740319550117776593576938871632542835449139183076499637713065531756677758700772289550179229625358989891522989477718786299473316295867522245370221488425368890413962297472571742087300561902714029418153916286289124579850506112177516235267214850925725240048750543442861444441655695771041867471165994634922020803152575959548780371307345254759377684308320093783502844193585440058898060308648143399760495893527367292292077834018500602832850091468026010646960186360518088333230254047285227555715554831969483720600008002440959268473459670867073488192354798591710798403887568832528498912736038810460915010661747823214591152034609467195822192392075577391229757096098864694623074009286518771523788199184423719757889060822263765232090445040421531020411975072718349526547802321546320841910193175323271125525458093041822995997848006818502440953704977723768065166580281525521221497913916390153479413044274373250117347703886581681792562147683296024430492775115239526497161581496949264691024293201726659156141930899636216115553235129036325540367270627313177147678211943240229230932865985896506570978687102371732805308874638567593375472959573818990033138036230705174628498128192178936528932318101559692524653601513919046090636699384203268580620354314650285045394861580650967713621745195669249355860505098257677415895747650622540266497934816713668102123991118858157079543066383308355486574416556884175527073274416367779224232164536714072829902141601437748696202230043430014338578812335774332389176660295905515942111445521899351999410808406301209393699317760409402546047880025239110674627493200630267514729818057822386062072592497977196507194540784235988044670387429919454146454883998619482288716134196052780734223680808530218955295717278212255748521447979311862957668920987992793315507490446693305826669263199275903307778938361739624465758927537258197173951803625627036071903383667106132320640849518287689587689041736451262232178008197952512406845834924706284508459130426076980752096550610413962710583244076416137056048141806491521010467879682042776527752983525837274655224895045409022437639077894323764127899035819431415324919612001938682036950613025395768269705648649756777288610926858235619009582598124607782492849426586085595646039024234569340688200165394566353891718709192649359926621460444534628885462731624653753324239669608171766298344395596029360656391329764871138111579625632673137105834453415454086746754208516781604015623036959269119347300518133046525665398335218120055041728279701978627704108117266394589160388810376636343242249397514863470251385844531910982035679524954780926583498353137257290601677940433733607068166456069487268845058703610740721372653228584273467995864635762683619859512464355413182900977921605039769864656265213805042800251122051647229944935963723665557183945769241606847585029453295893335927571279655724835827214450980959078298804737070515010861720811758565661917153282923600386955941702791941636465278099676070141994760951582392925989603585433971843938746493440150103096077855138238392281392047136831289615732328352690384491745443889271832153862757231274268547311331751190170452416836667773820908736424426757315988262997839146266271161553098882493962694019745893761527953342210567014446100909546207288750368554362106467761883410184021013122513105294056564807484139293012823724593372250460561566283343559187360579126340748179707938059501812808288022219333259178931991027443759467429372845586320510200918348238212162953152873495919999206422615332310020395929066813464863580976841290774264290484921499265671622300101496834257232994043093566953164074749387623449177054024866301076579538374705508820151813099129634638712077853879324488408829484500379853632754765567898204079964541123525870530838714165791442218318342057591628348725399901749625728974812392828317867934046667258415268133468416494702851440010022520458599373240406909418281356267472408055214924303973585278265781109550793421188244538514309993265172778068604305216713471158398815802646003040454534702187863822029557052336313936578300798126244366176971527777601422741961106132046230266869157238911984287019727057548319858761620169271522115833736783875066275145861133699286081594498046884505494492012638266681959538459838599783307852653876372825568233038603777092905790837347462640112523250713338312267279391265611933356298050552632335134641756425731357560337836199012747696667420120059214283791169134941305115634486283418553272512536877918941324365029554157367971348668979309700132974737961537605298667130293406084141215390578848097052420746109922582493320900768806826675055674485066998180480166894666860251598683883315617066103005296946821090937953271787413923547248419735553770875107571243582543150483682408561268434811059820664940166900352809100825737253991195767603253412380735274551046017689560475296453573844923813168773857020166232268925008698258394495874115741871530645848291604240175615416074099254267849631745831315920048393433298392708524506767039029687449876558775496905694493916900176979795812648035750196208670160309183440200477335323384923687005203340205087149808216041394049938667255441404068166459512191981523339618797388976698382235973150136062993308387817279372025908953063468561782478929826104487531770997744553859009324006130545317654069261974065646304979289715826975057605757432471490705066533565376005618694652441946790987760169063512190402469729052104789962828052613904549843952333761855474736671884347110283915870064652306193656837027863608708155965106974005428294643845008054103184333766064391989615351776848564931795741865078745540533821030499899534957043845660054831233641433818405708042814679712497458366467702951036975141920690289507562083674687084896523873044766775048624293000514472937266859815524732136356653175881293794456924048554942392857394651547373556842935153433874043608853627652541890996195924546901385003957789282886187767022115702343347507694377645376575575855335470709684300744884102855444220124079351076036810880440936208085132579288756675332054887272437041453478568544855568755518786994015958016652588791637728523018483359572051401082646493110826752695141153338894704162921401830768710013325440878902506665877106744120711060320697468259921786578695026844492406088298183488371985060508975159494058632729476027770027068697115819035998490154256729915599344823810265165892095326550188242279325867401425420239191439560854619889120572296320781992749269587823479734371807537290373982630970993132409700808119369327154308562780124557597880487296080271836090083500133964357125957301575671243381122052471339398309734573983798658122635199468210936051965085402584815871776788291521712379140013361123615506060320122110324572056660139733835238701278292156255732102443879624181812857203148864891671874558493736764275537228033785079497290803467185089066969819353508954233179827334463977270791602758556113657990296174490207205842717171887364295972562219126366626710211550610873646271104031770267223520742397080954965811179648261564588090046474457276102659800876280533736165716371490724368380411019546209085129563313119048705720375189766855875194129671067008550584857644798822316029470918631602065620639012456361545961676688682470862216556144802920348203897270371040403892806092241411610417277100918192850186851823342210352117117741850288118961539498856980123731395066365777344488894776508443195139375393930828504950238710660226666305476398447380870793867531156407888241721483349809523756555695134260754916358374242734760923664989536645961542958036324832117619265439804746989475425391632929975586625051369840980093835904214888460614430732674350350413374092093291969823749610637114978694849807972368426332436003816096832082901941182804532212148497982259200554724698490473598878208241066431063766496805319836028313012729377435316099428094160484052961856289713867745900391795656421688170719977991828050409060287315720662611520365121860038843625056528455610125618379495098326216555402410484854969666985068125682595227091494115755680776998689331867896425608486236935090675362424248244581141917957387631022555277996050479415773069361115538428087725822270840705871682717780602087670723096972354272431149011064711227648927306703418586965883159782405172587589218957753396752817847452916392028941671169959379844921949291231903946136268081155563290915454534742412157193927621300560888507021578914565824314425843406896781826112814047432236382435467851437842332999917142292592096512474837515147470863198394932483153286916759992389096012606327841317691463034725789069736072348619581606171162453609890929359457828092080934452649042949501057896937882329374544325479761948043336388916976518940026404895539076153387104593673007176200779449310624347196665619146873427022606217285420334087386109242507295554749840026258820929223054281967986384396153767615163195951297813769447415776950044537952594418074662272081001045673768809613609914286839029979939329407427916302293433360735860458571917956869273060086539341086659978710968855241924793937007825485348510972855483532797452790228657209567398635094427166786411337383724670753917253656474480799985656345642831243200099123819071550859539063024489533591739060891389795090778896650328994123371944948946801389241398349369483848833067156338448850847261364785368283480032614120443761921193851640904599581591719770908785173561486493413843618071096358334098172381486793378360469321103413202010777523993445673066055366824886764861657451316943550732015928097594249284695708572454537215224861505422021346374808248189520924326360428524310536421766193630782215276680357767739173681202395918187213517320591054470628182190223211688411955963798825721807900343634069824261572628966279052211598895026979619178162070844131913369856482709720551425515787151833605108925600158952160124600909313020757150196419104474155201548141748528526631333588942332962552854735333228962091262328113430767862457815929241373804362389255077795646723955658100278647597070769742272909039919689774998193519325945462405860188501379838696198820417641872594061071056911685126838175369062509993180862670583530144816109916354956672323658380422652851542833589791482909354002381812844197547862285904070988356146105930210585430078257659147862130552097077524390582910736870382305124857950479622530465833244951576830344111360807978755105822521583621334035882884293246644873269523547288943310169410346455640344918694555780429461228760715092949481101951210165608284135657385066272055237843905740847947449784435014664937995326026749698735927450571105578939772047155548398533000641661496464017299591729837945489851113234518620190166805774769139803747785547684077901151534899027013326519170103844716988126636079589218270707662357072243534922477007546740074487337096418202484263105041312610377633268076305302021466287936990970567970791365434815368285767165094267732034575255872472151247558975428002436423476317105546156682220530262126922885636010317357536217337212558084250478458610340913374600327811127260441054747656363452732547044921421306441004998785624092417464418611732990738557008910040278047377428217504301589003043113545547917788268130499338580306416963485568857903161471864176386106633352350862312551216480411919533738390845473393189774060055676609293738712472796659460837268899951379031042747564557150588801705939218342291998197248748442219961072930738413788519002593817579172167897965786192605070376436848345081209773299267076099932288293697586925239234082664796252238093208609898122164866451951751737546463321331453836749401051965375274329375385463716713172370604604551550400116861231160119564909167641544251268176774185526689904929569921896671196190968369264640492376406558304249344513221000626333644396094019574218594055114768536053433329529547686052116764539767236302103986222549393199620998479308250745308383479323459482012822231579002851804407535171734656747121185394901921212263558611876817698682210768951768114713639489042373253697538467333126837195032148672499601089797075654310942658065936405177504654875249674382154444806887582738749816527720699482794719838554724949773334750459922640526384365944584024221349863205584378605430421225754191313612802809962945510233059749611694592437661082418752171515525619420821474747357722778647429660742979727209957748839129156181525119101668830669207156003152746829064894591924325256378900577759028239273203304243078995158909782665692026857998395871977805576424962900036482735701344507316460646081101686965918654257007718982583345692060729263765718816455899028812608542277906327703715715465700212717322795546004616948834338400719818650079195766800474482449401555987671823867270450283827475759264586571483384885250298402029206997132983326498080855163361697452329652817285866274625904115466207691932573273689627454800458800260279490784060916176315580733127988459006938243442563612076116649592339669062472019263327748777587413156979130673976946120292729662562447702704928603817448618134258821922537902929879273960911972285972489890024982839238415049829025459648913828455400160218765233750663114030522152210183894159979308133056599130889562401977092078423665162560434160577171555757290021408144842137012712136544366841800933004830696290440640183547447432911231518360674471565134377716981994797175894876988288645228216097276218483485113708955402611536742230386994344656190465985848272811028250971920912399555460544832451526138485576351552856292415051969843020044266086045572784010061460973269527483090587529954199734037927584569844101415112020565484067180118301749976628301154167764011154915415225542080641358668168809981330691624397622621544817813845784133457895892837740711259025771694112136570287338697623013453372407310393918215357954229480264500767821264152413162545646714737437747476840599792795821414941480846161967488668726838472753071943001332524119475785347163174023744114614745165978370560378607823129915760652684600109514139081038182504324870204863989812815768566964818092900841238204958818563259396511746337309762553076076291168405601541521240477449222158233796214447035462179935205412027077799120497406391706027986623697759836129045949871410065486512115030279912406243075662416215035083140265769621800903081381489713385805494249316429466667167865450214484013331411706883177991893959548002014496933641395020778918466750624287299907389892572762699679957212508741363026453829886066545029577937710561542730208613904750042627553828572167766620746270973523374242951895532297991875450800770059213470352958784855207542976601310733107914281940981701930725751138119967990271052880639370863813340176948774295877347850598700771785875574959783016867114116936724800187180950232756138760881385401335489516534420793231220326864205029736431810341274969761621337740741049943210346062919591541175679122204353881987610223174625223478725268122255144847974530839780544750973133459651060627896353725230249755864771720834919863079902827652730317273910417020964837966709484701474976926117672566199886285890525163846633827831459459870473452854993243188401976983550246670335478171766504499619587174877578468283372319064238032243977253862246248357987705358151124403076364411942863796906464963013547499528163618782207106686227881734761854617644752126772554031290742829244443732482103336633504801506721699545914257703564885601567220748034861523059286650130352117329781505598518129180762742106486706763446682036145625380462171831192340318301385848616314602070033456118587592414265279439581447220079479440778882932872037648412182775709025745350779653354786626067078465479697296668076637445448365369082907481883359791578043305384007238384798815805170245336122830921194862378480441178585430695370750797810825209496659035056584918171178771335244821117275392274376476970865934900157364248706912322074329351560303768962759687341471073691124550413296427803072657773169159349760160114027517370928199977346643230367979629309512857727310390598153757125750393311615365860284028216845790151940799304736006060562265868845448202885737751843039272053319111364837085143848609764562324782653694078479889685191923089998012473460278898921405697620821613797573019868585227737544025558301518999479803415569017355583063851335870935949708152915667280117689207218156751929785646141249816102487196442132911935704789736580917757832851200930139837884709411824171560891934433704532140517994221767788687292781706843741856042282329691949110608870729356600260029321646641108637731863424017794694892705145993336291990620190203826479975068778824072997465047167841703797617163012628437826404436169714767611418850935536265896631417842127387376500950685522371523365114659108324021821263084070533710272411173248024202378948855945961083271860400531139856118473870761380685263951723910033195057985518615856080710990590915652644646960120068689730777939385784015691182994837915569189326886291900822643933009183742313944855328740297132247873182674370055769351536920052212237561270347281520482520554105628069738158801849631757007404921226447767456228534830732662897965190558412512556003377877820451521732307062892547512823389670494165388801724639806298168109000576241768410996300914046993062899467821233958677391977285814356976718483036724424311894497191836414417242419437661845986094677277292920800983865910886200719956054812712679693039227521722815593914093249502198045227401744577850577256315945797558347966647911482921102725090742709761692596777113620073178443675506820778495598399567881656836570509234843879263236345366917326541670992016686042842725520032441726387801627746562742517914783811797474433063013284191390499204840213980980188771020433231819325031396603247160239099258089889513184987877715547404263286689962105005935347319274784936349535839097194172165939812832072496643591221929751314878648777531800579230940177006284441282298098924923209497837628799410614786408861001020182164321099039997442684826149779212637761495949109842616520798141466066199418889522988221304251778501829834585276403082201425428748789720985576136930408687204555328444345144198603948745112719628017244401452561139507358507566592554283438292018245602076848805179559213822902739929863835223015906508775988002902163900847883272741625921442710369640982588123024849998916818187480196566672059880528364319573906197971906304413861167642707159230237086024476445719308507019317974445120482450205989755900492540023482474331940947159169613415289915332111823812864176402069140737771381702102150775881947316040970108350091440754229940577368236527490944441101580931145297999167085027465849538255283345801795862014332760712466000090935842774877768558351505211796310980627171411661587927592021015966677996879658813132323054655727381769932055218197565908842525217523427686603743614565006535396978587398972733607162460151007337288840444972677837111627103506554098830654749417546807682146337816563763070942143121676074986263194062821271929812847010286827048255948782944303467768332883047672643377567989399723999399778168607018870501385752995835265190874413242421525584254730157603713230370629475640453685411509004504414551598216788747165517643372451537292957749216574289051897439510945652940876319833652428554639562155122961268964678661608514000294385911859550189996665886709144832153716895370376049032088940266661400597191967840025917919418782337472693627720781197701859654576414912048873979892418870853770212595294280706253443108826843053610395464190792292876866091047300828803645940265693663662970929589558632690584104280324566267000459521912179373633313636355186207861689299192880124373302044422034253972060756190182585526488262908714306891399531445248630010669719782330952160112650334081111135281050722182372943782792681040512639863879358794162629350126053552897902192146061710244080381742960332301780157113936074919725075699112960077538419163664622830335417545109237939263559493466790574779760146197115286618038256023203162454700084827931259265410936609766672819593272007981984138214331424703955057335659741951146776822545880529646668748664809224228477998765194894233673968461403111547985568137618454226377713448024422721328613912990188803640626266034466067404630167779786476819366628099022745732329502565638208902414414095575133727277935862780413331337307504130853290154843517820632054328168390676288936942122680219214212958732816668336091513869669641927823255263247239798286792155355943236716881731736849967163238617668257009314421859181200190878617939464461426444048455736361974025355697701802998924635719255070093749017245570737246857976765184238923861461373431634050004756976728664510431762311728400262979143890453977224290775834364780711387130938215247218215404293556366750485208987553866399750908353884532257734395560101886284249321510544698245983373336273527211074401068019158630763359310901369713915735878314666161760999838281079834948463528827975004589204396128048296439882423827945597699076699386494568342252847473662113032397329408404115019191922688974499751929829962420554944259849855426737136158105904418248081409047510857247818347619367151569476087892680187515876739733839831546864749050740134533114214397309333957502108206874974680398811386406091201785322259599502498912096325654555953198136194313693545838941955298449744087246552491442086939181212750642564891715190203365255980463169612519685721767034215857297965975119120084288488670925793772231525751588248813457514571096248889890450113977827682819506457076416652200623843641638478917167097641139153085053116932709291466522499486087885013025308434081896530259282535322073300825351805456472524161516799861442392650842470738837780709695278009651131011582516132383997094687803196044638204851188800727686746562073676891348144698205037468116680956028766059039017208740490017122975746456312828452049226823944566274915177626372333605932458372284987639863107455906444509609362349884241347532502625929513321715758401559319803436552239310198233952258995214070774797258493121422400478211267677941369943685252871762114020767971998644441530461612310868040643194072571803990146871271051802679005974339939689337671978436659476532296371466908379367348198490835419527983765923518753755315705284671998496767280495900476943514544736610340105740481546928868246874721505148812955791434446317006719754451969612345125003599802046522264324822103305591678584752961545187935567834313985050302706961145230642836323878299907514952803473368699084312215710938790522420312910357767948620499609528646891970757260015052182920636074929396088702880191608861262119166714536104924484174092605833845382861833743952830090905037233208297225341632569268237386282617953274503736815985008850897121290534459834327681909626566607652650775118303522838139045713187327825520038272594559555262218893950876193316355689162754352884530361944510619380067910251940948362056174020354941662030916407758716478989983370339316238051020525921540829301496549893865694668064041248289638736446880660014142526899874566765553970728769725274827405742558658964344849404186159855194091296127690344742031886181266759657416597986213930440615178923170281591818272294690489375484436131040214045300555770238708605086742707305891957330518631325554587720274239193881906717070233727827295638229988169042641245160979111805985620866633027136528302393602409286537393649934302577598994409729515995344545225679442442014250018708289930455253932587706803221154860418065321546249963565502328378323396843693721707094911467763933990776560416385654108939311059932586376899427160923377857788661055567937708753254648263234097758625934611816549399672464768251724032174311240039839171826445437192419703178423363679361367306007541307762905612582985735422237163735146301835487095903042774095874040349943306856943280960350857971713725847836755576120325204881090113296285857811000399499838896624281095826072887406893902855976159363663376442416658727145714973139769496068056918588869559016536751169811983787039882352004741765861632544016231459382143296180781463473231061774455632824376949042417895116826663364847270594219787948422151086698793699889835316152013394881266234952904842469993881670585020374258436839494810365554987078813481047992584998923532861330903396782794093214116385983597212954033247121338457110337298668017625655223985211543956544491601207586768257978981043818944538609744495330024059761284600563401726683881852087209501018511008704243250036122745641997061740658241328362332392131491058166851987262184800658304415416087247192461140400209968934388423781070266780194792280232105284385835440989058043563987313167078596564338791427614652191161398672035486226954518925567818322061448791276327670197961515374898044762888295853214616471698587410919173497859639873101903309062231089160900078688951015900774017801174272288174934696046599032591344909481069152271449509086559923398019640137876049087644256543252457461213417017090492674692877845692971823591969888796135271987429176457307380071285800450964252758480854360441481596454921612370559148476493868435141614525751084928735173318485777241011539564142540524271123272202712387655584753014705288127915728166152945049824712476354191169599637263894442699248076421522995390648656131198510159672726615202918518768974191289780764371060460155883328355164623781351364332980329077895049937014791206986409002538720690291621860833067308976588915063831549497316725268963044699132068536845315925161832108488792413058292881997093017332332045949156742430358828939257262162403674924738836486464204205495242063165173927954435673715772776362992769764318434848981692720275957464740548238791939396531433896836438087083579775140136403564099982789136278127511107123152668989616854215777278653878245980164088826659036941044239766334853400678288747356382319899823178596222714440674729546047403913472448162775401269276242811809942920551732048204165307959374125787579666816217936884314182966432065758126565450712128906395785078705968208168058685679502848376687595458477086443486242509318792918101285211377025700617855746288789472527416825000809056578830115396523561633900480578035289889831209264364502427692421487914380274536592764565052590028706835082455144624146959177326294057885352477987580982824618617675367418251000695636308469386919846600336685116492986810520096536902808780292102582903027887059313759719177376995460428353650895409925883548937667161953096127214896857790623815113787644180284835866235793940210049252700477373933068358418272914266448259865887713564677857267777274171904982191561899946626453064480203948559812569492589463915502677603101891248805119008079253793231099160744138345016077968056895955169850074441148652501495729703195955620069235132342516024720971818823460664445395612695415096239003258574211710627276989698766535038209210350678052233963354522168308882869484697060444758601538212635213878648430227518460145590681506247057048571310749235150664091606442805782476739884847860930339584846930697335731347855595789513579604627002638100021537789134983161016721547845886401942848707907695672552142024801987264879796248106053721211387481931040359588130818383328717438991653144087596753880471059812771811338050415975947467266397646656956602679406427213209382257163349227556311326814782079152182905600534895192684861102844407661971285398947214993178003787166792636375190402660637746880146275559027092116954787075691864804676030392623124661085286416196654520179161544788496081242977118929628104023981711633445484362216417086631146287005319508418716322017534722666454206371001172434096395001723614956300207557829207202224946942254646951472747055288356974010072441490234842092885158217721857121659956733586885921219146892044465597218186663907155978021971175898023391904864749183673859097407776302029080810748414363859078856889551473035783792437088735592999110205470133943162654191562706474471422482189707385402680015223086291297431007834154564067729878962413464097868165541886470166679655501999650668617026456951177174753034024165197147536617935144298593140489761722358663527430024942131259580746643659353212378411713081720967538486627167758223775003849722011612828335056429985808007241137848755473519058193969100080843547647359767995300519735712340002767729394538858359974020453126190056979599699570148770981399530626661830129386923955749619356633315416176135080857687288982128595413171934414090302696832451811341925297168701748557648417484135128005123288696198001286950180040513430997418284663977805316671707034984968913584550274341574936367592619684604484236308879128428295136192100748739138202420701227711873861956732857674421058273077321335824702272926273530549521691935314921969002718935115014995438971710495527631202293666993099194763318651701950636939503365579504459872447901175541492419559798945760192555037157440225630413955112420547769036840132484103455345061517069308554040406583472397653332427125267915980948193756663467362368313911283435381032212946835245900883149850714125267476376988925945973965641604915057284157145421477595155004271001114406182086724013568088450523797879143139797578254131919757820439715842501093757119636275214367659341599712894846818636770105748674607747479383649830254719181352467155871306620485104221067142026614609520843479965166156200028280136052973121876742154015152817885496208821736680246621641104573493540875462228089651238816944177415249868516714248398265628531599745681462185108810102953633175461740567590067180153854618511943711492827360082719515809852099609887213166456567604980607149560511354820718331722262394207429585756185601330231684687113293237854382791393352624178332436259509358078236451334704411754394273632112689957600547438569928451608114444290361174745073639202284192474723596439957824401258096790715449477943390813147992694013178739027445365101825054098817779497591218004487523940881258546554044331887256856090616604189309388721762789754491328027603656313884717821077013643494945038684941378201795682505780514795971903167220431598524048846541191466723237893718711169306617265526123406633623109473732669816605273676508379994424091921726937223821220681140717254772051831439025474255042805687948277672389659534342091233972809639060932114655273596536536737166094490707424323612308844323736942318752701867261952616219659289209448420552294717515563490755267413797466677782736713541299398958238641133472410273811716550720794688780087694736186709862436504194928997515373055512791585272065893369741823186909163915992504361193495855827116327953555263054206138647450731623218080271943504649221674732430734093665835707181122859652522573335931558740429752200599054477237486491402545512199167444922666438878941233283206823803722289422488452933154832289864777352962467531483107577868297212856102784995813645554119310019860646270153358695227128720388698250903376052402213383919310677785391191579598421075020899237398150840336033758164957735235252475207045077286579695436083076249789853737017173685444021810383859204796530020979577472489076550013915471840167340861463766799196010779142250147040626150612580887922900503828418010303153476591196555388580124769915643610120593736147294254547226350489356689465326257265254489811996347269900754053642030666459413017267264685049929296324580483549200897077671481143236712825847472560371988717586410091239917715308723272295161957203930219070722985434647709923610772205866639073040174838337006367338631521720621904661718240118099907668061449394758787160217544467377892003111130674821020080011058631135591842872365268115460378348509463681964210396521518202226380190755288752758182647308783972875546866779167230152212671506842016606846292511296867030505122750027065750536932789898178575903125419747868024532639120552638651504439828859932392481795484280639447076968441332476612027792910319318376267945307024642484263170126323680277440787864601109290406717417030515949074169516795431083474899673013943079492296172255552300070661858520228378185167047636322366902548326302068133051414239387725983165447363412040543289812323757916986690286821021252805512208136780708101181886778616472262680408898615176622179813810845151745139860224080942954553478711484948123511075729159692481810733357362651616572499290538866329145250550242494022189650243669682046785869982611551721785015663710802232566019767537059171594827134152377253392807037878081217186506766736565948759085196551578458056460081894450659374323049274561137423816972961026532102092562842201219548584153852326085590307084304037898956354509048283330483225950969760811491601561727102590330944060097935660562643396589259310322958176714819609768020549292464205828661331295271586546748834522736220773984924190543561448722381442248558140626661071375596579176616707962845916715316092325452129655077035843797281043244730571161369961243037739368508831421795134182444655412727127082366014609432254942944495574433669980462678526445550891138483608619311706201201703778686575227189075035299655377826710522567280162360538568283967785862721688204880328421383523300667461254912539129702662322821522821581802667706209622144793830303757440491896571890109659369916212891613238405973207566089087529693552645328728041617759436463265979518932651417408221657905891286286622995785838624977157074659045397765268448846796907453446785476464482759898566314487869683270822493768132473434404737400736032126868710351904270230264108340771376854215438127020793422011220106264762606752712767699657184547078492576542034496274330298983566252242046167599510168063431388765786442465497315575027124834207673268115815909649289243241617813010899832226433635034233790867861415914006655898488798510918465526711006350907100018143230846779544820299302164345530118428235600287937876286524363896281095774552380851092493056601492918061335993933959862079071328642624280584526850049922750424726523661172438383663342020640622840078234665869639710439217953931667694773333359464511639305212725351804687895601849139230305848327192209269064614694085639030086676013774085928647831849838557404037479734195162189047936334736585807193396585774165301129812050253760863553436418606194051124324197318515987248185604800838392708802802983217761384934350020233913204650970715454500122090065162536062541404472354127795476058988932530366275412262311482916315098760097370058603734401941930009621013191088361461710510186000044706248462037115273552948454067252571073088319053350928578393677280720499759064121120007239475352940647316273444744968889787448438970162958315143136355832713841929272922425028519222789131610205003022477692527934559816933916301405223021315204352404140392029860259350352298977257626675635624464464176639841840879181672947631147159559115268503139860917871871994929500057264809073243952865292532206070947174913003338819636244883086161223480665573364588332201141218858467839980107081917162530447874065189526918641044678499359591461900924175660392732370698756920132724599520545065878344439033225671073781222740594013533513534163518129203597723407079795821816774085548466014455389613225412349293514039124068023998952867645089727766885548059342543269462826082807047077258418990060539906399575638813011462824915355006048472849679714850972716553517398461306654389770636084452406831848168704042105184975733333315369151884800335453807190486816721603907390955421847704060568335109366750950210866975648448073400285845446454988383741775871291885587346652555734141678920313340126437762974190355809446825898985564898513602737093003384893960290621216266390839365427330286470216324431019532293131519879475536444150255175610380703922920366346335072878694918310907535761637496216414620543412277853964496252659655150146912911043316887207457365628360890004937720245697157956989411093754054567540834692358672854823919653016349597743814654140893198357627239305698130479486928922892477047361344583075237789903189031911134470197623682465483441244655879757240080257809895678808246482607571286992017105398851473625962536129499981384976146787824313680880860988332668850351995888177094733811472068168959343045621150278195080954763871550430206465051554411407803006407463101978956097890481616410969801029661319801301188547351206838259955585084078244172691697053967672655195360567562236730799780245677770073977602402219667972963933743491287780103130082847532937633014618165393992831904873491100209011100854391537117966404331665032534785471269231740253393957191183378695502164728128439024884354574192933956885492185851704055397765820306365958771227388967982880549673708027247500146700545041474072231397835704782985809192667345587793287518707305883512206373938635176855441182348021005692829886915503992285979634901216490487015467803965554888269740032380426854545842644021229512096898123222340859536127278032963534454392453400442899450593108529364438974363830983515167184944957442791924467630924834931548453571707671712038124523523133093619430192331679048167665026837424540834887278955596270191140410041373721351155640088094005417271652246005314827771962865371508518595891913018678125854580857364264245370526995558546085478609539906690262717496286405064090796422021868302882989221270884981893939042346201173422448334568761010132177286263451630980176904114228675891931991005150695091969809084596146366862159224604332083756238864250157818815995205552154430730831627544103675809859145819831035750529724073397289555454025228728985847649152163048433825551205678474099030234286981426974889070133033702779894573902665328777675200977338375840866441046025207541379038793096743540048906606136410585169798557730097310621407189750034260638523698464402188873327747261621131691789878615616187632345472663242180273052523042588433064960841923685029745278381322573435197785394875495366463081372388935733806028524939814007573132119197660033868167405422242393804416903824627932028081572658779942893932101149691057546279428603620542194261654212205560922467454616075630190481744599322003321691882920395882810272956553432517788026988229585016636821909292167294913383525013837776689944494646442078597177320017083184737546511362282001007072721391611494056196955580958888333842211605907184032458497398111991119904511763488477788262206111640659455251693733211235258498438412499190321348221768448369453983809321515237142911327582808711820195614389862659165597195657977880369882669174900780631618130286037840479614618608734729019850802259302493200044473639163006819643769399127553361545636768890544790555188617600973969880470860211416905773820998489732653572332005376005240868471802423605286183661665972778288202991888803530277891162898475386970617152024830237386939457433070248507624699951090031342703950661526152054525291414354518650003977679141926471065192737464274079341603827054706901794136662220960146773097447375653701776657756278299970626182004197255307619198948598695847100946525316302452112609352020866470936881892097603573219295954380013052514978658118327225413227471561656294316711462650423243394627609957754912354895028748417027014980374904629138420735371725510087234350804195522416771076021579156017837690600404799510415348751879653392903464772416582871912780614852824208824493784855835310614827451551313647549558592854626124825689260662771948526689715379287537691201307800041510243946891031931212413271753077227502879257621606340170266322817729227722006248414170578063455234193484475537299547571796332491570077934420513714346378345143856231104505039551377839822767650844853504797345667919429582103151518494682835392297949358604175331362558234239006181121567650348442974307296395411999552280338166815696816891646558433266619511672168564288928589404350834010971776349507284640603729155166717099227531510329881811335358366832168811843929243534635124340489712456863788687370756946565183127280208446309882530420112244245176720156860895365130857172166097668380399628689666631243441300011546209373579696531801396718175110661759825644482543272487244263024549118881846542484542181610785296855681905838983839197466891432843061629418959232959521615083194078829484944053944449086985772714557749615064268383618520109026463063547871231652583163611934575238297551941563112150989227453832925735617760344999115166345764490750424262828557121996587697275475068339061283535998622701572811358528783780182188606326662140598856867527699504469815892049911925642577591051599610286240276570659684978406482411874776566546421738306063156556613894325962102830254887849285886633999894692145389366944446882437782016842525539630117813163268878838246665941037858934237169021507059859202379232465373750644989187666938823796016817104809701754122742700839516182435983420240537886161363714825958498034380943800081771039190262672985002709985413323262020453628959199639509352032930758338064675373796594111292004254216956613364645871346245407222537428376022838403924471287189005234582227359367219128204482882324359120552703870616411180210061849889993720829727056410343375250831520012104209488973629972296563720817171567897626516413384471762385993370824828298436037923039542440017680222198612578271358526154515293148761521333437230958671035800374212489728688140449510707518754950463837689941019630683501404356521287864888080280925563067952182463703972536526623636160048329275193757945265237659084321746553271205279454306934665192044835988753711084032800698955179514811068317413150133742601708015373296989354709185677836139889970539280444609435031669817085556087375582021289597685500224992577839571403321737141412608270402188332697635722417764184788836933379201946706178110641138509590476441142669854161552154859814179832216922388284783594907029133051333004298391779523392039434816829223680967254112703822662906095354532271053054835040264662533827223272018059963118918927591414581019868394749058487929493750067008888878180192229118831135200216801871742245636349811810192092228823135385737198004987280412413724071213185592337462278418948502304321813086154678006065064898533123485990715091922841719203664265590574784778789686703005321573248893936813066525242968971677857533515429584089846907154756638035295537030471786556939377499513567566801465539039587083534548985156629212819230621442309138651912298555978649685613776419169694779236024246336903769211462714134400203560867098221241793121230403871517537746555515679692319245730623417304277826437426779354970325734326007569065876874838366038827748384351423059869029064441220007431084560934630325747299521374683350594595953543844519334452159978223376904966356130620712109135876205455240579572155337534234516477145173688270923198465676986864605042401223156558546368018090305888143816093259844362258352663038457097702233138634125454119190959323285659555708677963688177076525584100995539358617977538995113622465413753030683774722109828136875949178528839662824618576341159364137254301284376947840350360002737679493949622354554183017593783040627656570994234556444022186873881613310691982096562339294849363180254105473073382451227298479605856067537102520806222807296746401881397500869930956004102604590592106162882625125224468865433854750280674863861998367034619870268445519088323612110143583713289599515818449886353011289376034912649254709354315956678242808236431494685972784453568446696189538378905182148573654740654060233644845824243262730774347025799167475986769532626181436268821770075813348604405504934492869335234177982999535727813029557271003579849141995774042363707947033529610093140487128864615083920935983319253973789140851649309186537341211344986690827022207877171643337612309538995274563791556694996522880828262864331005187794303037277276747218657616360467492729377542631978571555025896878549913234987073829184000279101387671693887556571623672826940155089717283181966894823128784621593103440006117984716997434962073212091400106332970766708176571686370613979324424199124769875092759697235539025233157012013417956432111384996286110013637220129593975335356527642552211700540090620077033209503426975815893634181569126168769965411039778149199347802588889057630370791184979077194845189176902174322327707527702858239518260558715735902651713048467578922735500474360238572077963174341404075624194255501590595558600634273605012509642704943187220736568758107692219152158782106341241742313102160024615757157537064471676275291800571645356042710714068683945237845947862582826713444273292743977236196921773099907615514411095529323860579858137736888683606345782836247560712839292102278076913750370182153126324129078445906985654437506330978534360062850310894007115773009817424297570692956858435669910925362551649586814586897321967494357606528257669944972686861629825831501608484958648416284968949559290346621546842624914368656878710253662638912176062226672289578325690796681268610549663904689397977394714155945442979346773191969602009392270203988302536557510362905800376012267347384637816632587650484109719352386582143521129773987988744934569973457551144999618904917776868143111257252375133275747910194710321722090652492177671922853205697066206184910235191165113064115210050733051970617248408553247928793209451031477306369647886142124538208461230197717661358509048355206791910784153006455062870198650700143001600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
79000! 13305938932367774951466934399331032337346020753638367639669964918475184625097128710888025998229755368298636177638960210499653833328325674418505724230142553919688498940631566186174602405117677732099024169149218814538131307747369593010810462870451903988538818213831958420165724802538541867956804828660495409997397437824902458962426633241821478743729784661743200510481879654248677189982391671369511150681780436650449861733152187763227226213274238900893090492145851777535133047067859056706660070822243966034958382368043972387373472946974481721715517707390819379825983963303102684026909542164099230201139855867169113801547816665057618529745645964913752564131384807244860703149900590138894858541156678882650229815066600660161682371582068266247423457508449720621395225535938009185486688865896548226167434570527946429094865617556456673099109549629682647124525909361142622401746809793585715347562709522960461804195754224083834540812077715131472195621890128953985833492582367017433747306581642156228310048370754071821046657041103106949903128331205647106855694724821761279723733631502380672370194118758861209908517700708131696612145572574557005048313453419342021101599233495568149065777851651714373809887326428598696132956744814655830421197555870766189148394597169067741331993193795954958798094110574082685227016256329228661667657356896256838622897050915682593440993303260184257811272663894179951012183377062554785440147514542751804095977439699787613054718249625888175065238818042249467524519030331805629120204385383444217205939343636978291815114839723222350695564589471962229018777624433967243397878358814569015005155712478829349566230870887881782184730887757947277016836170343507527106419289332819119152468056312447807571715888046453131423612659420584827373543015591597867582610256106924979005782217155364743949350424110258383142117789385313048986884336015827987607061990548365764854487595624691106894441001369114922654713404657965556802283251669608370124335141262743372579219510940982507073464096024670272005459150969418394146842989029879600593590563635613299115398057183971988330586912277571612540188433647336579046767901497247086764661312078023395166498635946637070209505683450224505961359887788968871372486296727118499294839405178790946040924782452641584179250018347820582726720291998205060183396138058816427124690366226001600023541395957459458600529767808613715996103102264005326621557316692237849629527606769749277274776293554545217160816693072176009098083688754885181981019899032932888228850475250421628841714250658524819331312124674887404209702514668043526172564961182188740700155099937894773573842446923315976910494769237261062966360800904361069964489223734331210487494744754115160647342847715671513215420562569804096297821047604805373615731311261831955016791068913637509955494258170711278858941200924114130318454970337144941619851577113234755633559294913579584083039208155098761841585880304834991195161930122327321508970054702008623331801744958021261146197364765376201693791971891740998409013585468929858605525361387558971112694382839250349309516211936812406521385741556319235935432212052992974567477751223012986529700078752934226019932149275393710926103277016178335342670032836619921948299771778639034195750146318228814469544863216458585505690809135191086595156180110106627345424787643578091823667318742035387316977658502223420609731368465574206667572173670561700735618077831673552386397950886198271129470569727294701502387546697075437831146427869315678933219689056007705549677721355893237031781473016568322659929284865959720548531329469271517765056715802883388500807224592590486362591147993768076340307734161167433947832091162641934414023562788058909898060480069135449664866480269202021998095336898727968828443272149667233266581034204280608221710194368576456015807845397026763396917405166233511192331513318274309932183497408109497135208560898048501648230214101626864175046862094708209923747447955709964371758977542550498538496952119173719653543423594075574851905512216853122822925955984018325485539633535314027725075762368826101136399420678363009002802984590670885491394405878157459031568840691132010123067154642691439690681388816569198810316486882259553665788853819922559424848399950316125880827250607454679770615288557005283543628262365219839962770534767094854673154551536030341345941000534668500615969652723192322030450417004746120902799037383143359359635182048306439883131118624224249721676883207978538073405566214169451936936504810993544003716736007847233402605218950835766372198154199719143978355677261020548455365589765616007434096925575212316309387503854394616249022563857751245961942724656519952094969509310319042769736417892500258662132891775906582146571196118571513564374144502046656051572233864481589601158933531477275337516108213652277173684231345499947095056353851800054554369791320270218528125778027387466953027084826578088694979405306230146891951194693742598092578250353540912033103760008360993912298980235495316296894876199410626523913969232371070270745006332576843464509149717710462605925073562220828842624557014231486655910793784364877095661739485767558253366613700629103401104870234398627843379301324406791249417064926188777101967078135784931509064679003748987262026693538449612011456005178814635662430251083826829705349120780541108065905795691461502226729071225920971856052788349785741947411509706199748716334703393754046309627847011231054510484265969218665346023334522995894423912999432980408557442011673471716903323380475841861675619847651075254297461272028577200402848531825060654683098813217606109637046274731552790577314432742974324865403935897040303034155768437217219970155412207026276120220170446152203874746073054820280966985403622054153610840572699788546822559074789098866257450376751083756978820913243633011885607872519326476238225583261523918277241889757338372427771241136815440336173089569747181555197539849335169296079727163637885214933559723975847879006090713356519079952390557606536787293523235732750863284233943613069431285061733301033742158934260927467105079538465916288635393523045948788184648515020175263906068529722054877347664778779603838864709796044801105474785483375944747182220057917501068123771520671827056781503722231929813995490671635722198173500003092994647142750664527015084344458693862894078424267307202116403379049334414353632564362492139603982997866878103733474929960879789500597771451635948122506435764220339900979311712774725373309332611225642754999014158960988450152129236173451098823980482789893691304851523659289884674907187151350071267668667286855360688349578964569286023780142902877226462650333584339032591617508764686685462714290904129053333265137351770438733107240028243956254894943661187243487922852195506759459090733318684029507310009602621846434001656864589368002159024172638801174068073017359187116481861631870580456620718565746610750084331880232824809693586441547174417401815506300995353926873458038552480859057097733269899135233113798779889638173170965055197000350003229043497124021614480856065690833928141856039257409854123417879375354836837439086275402568556174436432246193625550015612094148988008009784168567853413351088333704720197987808910439502843546079301155462519427804500318134182221593863078993807073407991175695971013082459350527295199574462284081912074388060917444055801805586941059963996332515344893561049493234837111455305841202016768906709501574456517089246672340129273665145510112923084115713939497995949105507835873720885272464628017267371311709072346497745215967315575888333682390862703870454000982379790242673506790885493708822787100635082161665031080660079375389772174572579792384513510576171917193454887676876917551582405539759528118600736915876578537938642589118369679557243590969090595913663067089062625262773946255532933393735781812266409306305027331190170086403984421068518765610655020230021272346844456476238938353715324112595232074274224362105466513965368773671392369756361902899734729179894575270314962788045093749781256236069822692851378569994336638973913317053739184439111425042274166948496696189327206941150599224001719334882103809772134815434570398036088474295708802930894756066361397071888925289606949851477142142334729212508720142300642386169460784418972171755263672262602142912652575669107936835034774855152074588166549523948503091629737888884066904910664027254153776031535685719831107015519381783626336402513894449661434054694570503020677639108969438569423108182554711814186011962476841327004256334231393578945941677530043523378564980946383533007149142986683813119063963817586933585775332336675681342810486240572388449821433044812188501471105936770959099000297942536143610558476443104712174342478488401240332531189909018038752625281354412488757807757955882367465071676545226195836102729556397000414769304865022006499154885462108401105122459162940905875775031988191553739819919527076168829252142602499013127453441662233114273894174102627817571616801296260662463331243973564235037189448019169456628825003882860193529046692000500268726813159428145300294457713025084387791448247423513762492906791278789257321387816830230697976403606589871645568896441579305062249978535890932983876228202502292064035763103516324892046090294862433935399751154807044271393568454424734877683843640106604569710876859609215653815174211676605017812560460342354761282248467368472062340579433993078095852292997466996113369778721086665527415610688419609314546560238042837510532321113061008202162812962168922424024482305069011522851465527733287685385049178615143717233390980582102769516511770134320934688462252590873739973664750954207820117259124575307300485627818329152835929590466881512744267666253244285983737526955577160456248466594174447365996123326703664338538111583704802762502335724210326428754575398834199923193217696823015219788896176402067050992474770255517916896751722260708736156616639563003297655306078249684861473782481707263695631545259580606534897206677776980461103433819274409199137359830549956723887603646790484674609752033695628271628772836275799396733328277778146527300936538854621542542416214532219537648025315027957224093352932667499424072522969804378866581648482789498336315878359347761224786387950827767611047529159989029401384532604660030072756246783936877861552500565582121061727411143229403802977991948594202043914428852768939532509308231202743762111778108765592350162802494340185270821605941279078585804112281594137025789459524359189838761147020140516582226870917277174556059302564164242358543450071989488530949351243795766976818007534369390303314646469822698310480777603159456937130908486589650300976909304204938072182712353416407423693435008907073338377513503402210974996949353239274928289446420463561216886997097829289180747757737442086476535494433598145482039973655597507924118474127969126318864804990627403786271061871073369664198778198761808354140604901692595091560367960713331248685745139442612252971694020380443702383752394545956444984968331164239525945821821257415481536446338513554544807985732969122810036810350909855175356702494455960015443862970689493840635958465679637940770024108554149889477083570347544755535300437872851542257727490682824163189779778723631678697790060815245122193969132419241725979888095230416886631474916604616468893840493363219248323655456769045952688189484663920433139557856029329773523210516764233687271346325743189069031830388014964503615067448870947445448242015093647778202305468056343284015683694482105521880235217586601332282330344011684586591754793534998344952586203951190972941866787993621163516113988914121564424250468933558408049300496197234165086838433090266299566274701585181473178092892560924943724226590751137595587065202427587682727932287724237633773914757965400482552354703818376047477733088390044892629281725103135588481999345466026805572779272671897868963106538315527817760879888024368133993166755823619963605126685998731360190484291251793641651034549738882028698776586567411556439039118528764550619634458434488362453755071719870663030980972884372686342672997773304398523045910926157106559784436034309063553526284282862498782694523723929564778037912732576395700393949030834567227042067006661237893956985000508742361484263643200108937229599935077084449445414063396213583693266059062492402322642199748229424005633092894749829007377549388221586707706110063927011362370870544352677437368462253621998055876906697103611155621952271154260798524277497911356659782896397681132364774571837469272826724049953102463918233842998038633136512552654291292903120148612967941429222964373894778219851383428859153252962516461793403698963798027850806204116930828425943971087881386054180602767897190062689384231408285940058127649581989681912257912233888140864738182449482429572027371748721941597068376850514113761517632825061596376514442787425820156527942713568804615583719215039069612129333348937618712874872294738053179100556483809946392842461537723105733593583624331667084251201155000470928835194475824590372222639809728875777572606997627830262644823612187039703504643060946704311928101107045394191270607779478173600910484686309465960660184696314341376184274759399995362790368290235609705391838966399209132866386419236355794815825991148654079649448745647379714308134441540623504651465250898844068502881497759621786801981113483684107439036207372376915859899289682392177228223266840583307697096450135273589714387077705554699692410110611144892223145461991304196059632493517199055424950823495648982816587874313172432483049253752798500253511691003152006610545513231401713279869072225621839095269099379198567192217129821317179381200684875317917802281909089193662828167788367916006152031510514829381833711901914756099242124788701167156186548982906583132482840913602097822797391486167110738423804883754338729743811526974150865416511413154885131411560580072562234068781841038000209532929422769902239823113301118231109281927821729234398789044253871633958962021077873072091132039663517629189800147918245982822210879466653819149452089537186354792710771586660405105158765357469083917032738037325762158016838567019891684842001879427167583537347743248411134480440735603054559955695669417539901263789985273464859389408574039861870559074052054133939347826434700413362475355589395283206667822837209325528265658288004094338332048823160492747318034277982543775789721102739314049338165304102482401565149109251568758393986666038322842957121410152178569614889283641838667836518984529682005314702739919792705042688195944045565838323315237610343932063239854911603973727468031132119400559249685522228915131078169085240949133692730332804268624349091031299820744711538970243877250719719606398934732408404935443294706517465114294418599355622717055569240681873819526448702412179632647745625433512083659464689955263242968718640748592833204488311275801995215968809682927790570640424025582673508992357797199841402373427123062374617470656245162509113682487332778207995408558131977876411891619169393103645238219291338486829716737941160840883054137609135224605579840312391362799916663979792970120613910675888609011309459182514457376754607521574904438447429928971492439113682901440693027030253933683080585046921149419112992974932841807108375829627125783619392366333535001893175965343449439469495913715215952969562842670617107590436305221994343867197903563939324240580184184592512526272004492145678593081200865016849648294270015789889893503454870987389956918995969011534409684635382323381546017720652829154965552967395345529753054980310557760231100895920405522066246835227272895112450114717595619183057412038490496081338195756515729243160882248450852638157266765096927021520955047289825705545791032297878276711071438622262028260563623896823303135995887687406694528143112443930174324937944093332247024227987855217393640278801255851539631567634833031000281470902634735754301568179248352986678583052128433124831637938510480784821173500372049995415104541972186740713630189075836458903898686462237626615293309265839138353840486898880038286558728381855071081999715271201962020806364896790649005964751373936392605176562043246459795000401710979036010817241331119141240663127736936723457869369595699681025298412511493188201783195984122043133258612397785382946080644283541475708013760395514754358989164463893414635113894469704128370727629511206924015622709064955892488092800848618050152500150280320507427414822535454696189304112079254799987154325105927925548445165228458763298900980725660962248589735484033533808631592468587489950156438935838234745010499146726309127038707175666282985469897286319577172774224061395092942901507389009261605913648537023757042681879132280368918798446768598716188331943672222772903288860720241499120515516440988815749801953775480503893750031076633105739420404879593271161634188118320417512315545288312516176380290570031326073178769299285857629414635617504680884982359165460430399754507765094730317309341241158872172526919079719973851077998075348601590784497520987521969190547016087149875483795937049413072822884404668797760615776587411198010302119360908241966692402224827805883423917679347551412515800439470722138966577345257060806415668943971338483375502716414534994146605916287513706272808638590159790258377025077424978921743891611193535596837984514845232442483750111821891222985705758199943320775961974946384830001896645445599416448025671184281527277954767369300033936954169236354409389990139994081059410578859043638359032284985456751283234543030758400165894452820070853415807264720099518403296664331824897281426055261697320530079791007414755119306795622922369737566421546994374440831697966264135083528780713548541417620910260436494481257795760549131324299574585328519607307615055997818475548901289985323901463880282441619424642196309684213715013812388470216412662027585539891360304834481637936167958905948114056187369721839890178825776084215088161365460332069741648336916588915819864761527207743147555247513785864392116884501718626459016782257713484925409324875546671583446293664122220118477752255814014159583401457979981693595059823470717108670663592310374772433523766542722909680299555752195538944232539607113165636399673436129296340347661930919791344666770114356883745628212535711463927952489034544622318116264107759008274108660667626156104351630228042327066258759790714895712023895229499220502090360353069539742141020772184177327389326611664374757156950798683566850696743325204549021874323724454219366906070603642592617329720170455800479953942319390731745363033552822468457996445309496399158182849805758610913251889720737208523240410223094297784081132127934773086636652531503627985949285405113092667891104892400621841378267799189478334192951773672102720003053425427353164850720068644275434322716915639750614000187406733806732317545152710751706843397356353617673356806439098209478226720013875378343047167628284821991133488894370134870244055858879780464533610439339990744242966671481645981649089714804912475394156510789503525973879398208333321668202833529189339839010557126091454827757808942537039037441699257884196532762795859927584342074942296070735333348859682166544945285959796071464889873663360529939415896175706096661291417503003523072713689850648068395520010677877205870098308293590533968902253646288934928839610674694816110677216135519169894185395984504520092357860278351516268407261761355285026181120686075743399517325963524347518297509387569381078764116560400263349055668865932490114149149199466409638761694574598924911421036174225016459390133082788526885737379400517497280536821883841403678128982038155384338844231309110611710782798536647648471764130895766672002394837141159913696680530332398522942828137303333993884401538992921133342323604227370228935166875916976295761806902111690440488478038347091014574999433494593137251168613460798488411255198442454064843196420990678560615065185449655852859781830603256015776426174712325458434948296640809292523612291999941562420083790461625957804486837804576225074006964057182193553791082929283305056510588630771771577433733025770655580269027270291404869432956112051043220995067996998410205678214752918098740751670482598273335534961206429234557244032043024392200158800639258753192521897429297397960597090140136900133574375987663485078792387290154280449375699611281592952686194054744481977713614012749915481721357242167574782117688888751652500522588222039951218489785708261802308637252062252341854298828621617030819766574548712891158190334804099003849603879677407268592817213588953434198703059680660856692755275942621571439512645206288488114244281088267325256095015261092784458573956768967531554872578684577700060395491553288738745307665579859931559616907095260109772168705227390120427747575188397708403188316516736483503120462643821391987719557981802113637041866590739539476448147140665359536234808813612590693029518834173036759967207696030604342243676679362169988964446863202647289225278858002579731817376955916977263084702938919925581066630187998123831438338381327913026373550441795935881459398162689864795514021446511650338637458406338526180700881855424706668952316211713085240920918050366110919173634019375093707367029786332341647310971936910992681644326861312470848388985747630630209634880946776785440770465161841047049045866629732599410801102317320327738855805229792916486100453187271430143207614335645288686798723496251626027924926768463968196405462803853843484954896078949440693725826904209529321853874078026003802608493455835217083845466199147576542571087695385126908725645233741065292001406579704768929558368632787744834690579717255939492932302161783369823124894765344696952105541291878576915653226447251950240454491877748301634558853400383444698037734923612711287283711399665307801616765093369058657702041280303719002321131990943959654691157284653326413422714289321318281339669920970092063646630036114500966419553310543280214636711983818013275301436692674995482830614021483720768654714204543463823030805418597789893437251029361646519524357572544836472554608335839062875029270868759326519433948476324310090240252125926339044448644400364701522991949156122889332564208554589457404868178265009425987465922275365819387917145139210064512688919688775918161909495542256614633135069760782708135786026266929268003951878839031057718070866902851586087822463721670783185963657784056146553822364649935448671921070698183077718895041910066759949592834955198151059124886813398207492706753524138734666330668652842169723743667394582180435476416315888564741007372150350153959422890434084971916815188740633162591578269592563939639587542228865593571763077231001917776184121184417734633624392411641740284638517819348061838527607190634957411097383070644363952812963254862759625792876970973578494540090498167899621409584321913062882716147532389874631916136561395399217766503405419216472188152369160729590426527346556364828378122731315046773313121961868061107321180331347724272595739693722473190660251373662495027282597861338430164359913112422311085091962367923738492088627953033558974045068770392025030856345342970712073514152139313900587103786689855650901020702495591048283127413068695745750863572002080507722518528326125152997192432551925683937157907376106971700840025917306837935181363771002727538712511979557147414010466563869595474329286225963708369758622137844536894147626293564364678788971884263037998475940679449661791212273134669934072204935623169305667958689915825333710484335261863802021204251105233938696932437755928803033293563373039173012045198306569781106484273365495508710970285600961998787058305421290981845667891311907058267455738811720973324728056575130213784961432394917137248742177083070392115751612920072012192106484658056110434648496293848149334492118444587831927208263899456151666688226106025213993208208750058765798541302090654051227324402191831520374166175056015852455920953433578969757560343199189233221087253645736603516312613936193910529593888258756016169263317744018354158512571222557584371216786360369449909620601331330240871957976823331068399981953970885485091308987925782418713698786136218136929941795696728136405693382834527132994876797415667235084453767419476255342523424248433227369978793074521342494163229846438120934100133337433542808154395967747607092026805199911203297656281488922531220314860317615808042950193070586532415434951954255048133837187798643827959689058144490962973700913697037982892620545504778869140749559849138677361197078221453305854640350017674645088525926807954437289262857124522882505558085876393604608065462596721313771032801159490200470046677068406702246970660030800858714210274100598776319890213431705628305777805657685439251259633825602969155628452554951257559806446188431898362369240898654984465819790931981956497725842192412388158257003857805855266778705795605665612720602100764251338151651559237808863002510634994794854249146801339143744633773641255647314606719882571975162243346859200349424872586224867631438729928703296548616085679494294027193678790627833582275184918547216049816862289502372999308440204064383535724863591241369359029174773309674995884120752214796355309454896530787788250477113535043947864587399543317021290061246037278288456435055729022217826632971585385787051330949648943153468363931034325354098873754924708326155520098816272459014825521420657744700724340297935102584160059040604444614464030652272241036422577191701539722721131422407589698063237664745165420076536764683496663432943826756953168022466059881178325648175177428874378229972053735013792465615355769747309131643414764730369576865915825434542150203699427876236110057227029759714529018456387789506953162464084474932865757429160959143213094584579899670947201587206188676948875393500303772259529086423100584999710258157806847414207737230545587162992287705908827394206220195520967630677854733550667480966835894809385904093116389862327372804416335775830834480096088230115435146102599441141256409819412955349744085477456128484919862158189636668555352563790350345958180078469520419880305619074985489611591892987905794816849676366609659559816268375908600725296918678865881797930972738723363415492485655927905896643619607122696620358527533934326835932056047150553744750620929123308309455092395522291786731982872430078291799330184391294092071635299441401631406289452326658865742947866634150378914047707560130528137453214067654710118276802478000042165137129707124044898706865146647650666786475535917399184421459865816499086738400567431399287340494437401381303955981100601856543453593180734119597333068538383509086677381253264884183194679652386724452458905871365969992368041740684059976089214541540966491775060919119669058957180127062678160260410248647180550168064597301944657808754998414354785551387286827068760450422568057151280616085006653931187646320270594518008744609681144142428467867094567628018371980892587474668129443804111216235431797408424710930077479976785250758456127469828782702093192463952788712520862535362165400051398255654077389746646762545610698104589079867887091405153966705136813918330815729962713370047274377756865182650305291587708681682508064195671877421487664182907040652228145396005692320082725821548080600204445403507536066776348969402606942722446599236641425775842543812909928883840286916314651200231393721532589606773610111112287172463089400329721553184102937256868909519823114379712254529324822443332853937328358989200438848928413027583283373853908719533489013703186098891956778341558848191185737654890745465321673455104119372992163860415354732962244611423597371474338914259599803158523215994917518524875252270544959149812649781405345452540895761253755579828993748465196886227858298305973488497697781512371145869330398562599439015077021348160208636415511001308614927574664146430638924878126029957742452821922877254198884894535444951349634332639012571461473236266332093817952278464105222846681402222860996080460013509802665991195719776202023870512687314812238459250753468178453235779410767893717297153473897143389874555931704560168040914465718112102084889460081536539498263877660888869528974836964178309496590357150834584653869940335754116702068869075641381985757213018689608923641208870665530335690200001849273855120780432016495838473765834633700214833948173700343828052992467177189632838034952812095119671378832941130113147172516234602513324844683391893285534410160661541089444304144975650837315814221878326333698366949091224883311172617229111687783178965547936978120670129884227830874409392391190620130835959926235413898755261879550395807662770063400579804304999165481817463876501300358853012870073738642239376865632575829062965218475742864958994902843316567769381912458225337321518325335622452976797687475910026348694417629120161738315899206216698031049322051942553254452231244786509846892379428571962315707972159231170600147104953403925843539236085970697094613191478954311436689087848390025822623233732845140726135208688399369292422241300611772731298469493815403751321933535060334001474665979064236529955202885682998688123123736115824839873340614274663357900368540113579470105895678501782920819388199270311367720290415147300993456750127576748166506680720962376523365250863536044259304235266266797274195427510578351244741729398640807717666270241701599663207747809006438061984303464919372976573006477984984869829832069539087756760873196871124021459539557468095145883745634782507014752436808831155178324080782984107212904826330338684086337492927461710183348749031358096251688526535930168129123450073151817001217030936740390983776126029557325974221873970402180811364315179820442827258403420800449736354849930153862632323830317412227186498378170629146244050915629621507261144905326124214569153891058382037224165742170387173741744617533112553392790846817656251435255521084068316241991356414859580843673822472612321535676713460610041964551978582234206776034880157224848226484190352883359269430779045198854044074128722853522294476874793408019184103137199147927762288334020275461020997702807656788891675136298381566405227312152199206374770019270817981864679448284923593584182035436318793036166323233469503548281982295188635774036337545043678604825085880899393169910895757242849348382143950550722333950702739059195408770839105504679765523646045686375392191983993832576537616219513746933448076709888782984307520597714901612141013713910347764252949156632319640673857919742307142889975119814412174248799983991880023070118385135128875480801551989608157000300220287854306706443312542561011586190173729344694235569424372654351799939792687313530177219911778205310076728526304135915214805638742787690736224342043157476841924571282235636235526702908175874214358415097292655129719629504278375613779053732925750416273357154812351360793549430550447007569382305456770704125344228093921645369993176539221512997731974956230971464879985249149880827476505274047308673330472330857733686203283506873574902304026280432563536451539810315569149674005320256217936409523439385442419588129195613431307374954806139544254779279252035402947945356134179523450939596300280593473054569078142644067609159489037356978090052780295423495417674992642271379317344963463865648041335429463024926273650146368264282610473648036727644979487221204073044913359150359265710560370249415157620984398141988885402961503624313962490639907286149254432479502089172882490184577829950106932129254794243359651334769516955205025506243483618963014638902346287973952246146335918153109979422327981727959841707658563723968228535452559343893634052281241438538870350997865874056362741548277150165701934777352991134633865997686447532627002609923140823982736659427084911245747328522067599268804580412871260610711353875419477446919127298954824175611850671609950483299048921274216424327214756626862970151934010900505883297048592562377822344250083229276490998265044434547653545126987657066290842302412196569883469188890400591196375167761061086939979187493720295578184985587590428899340472216336000526396413213113963300320343151875247169726316642077218210329828452497120364232635346788649962017415218459268332953366177516467418457822206448010690070622390530908496974769910328327428400539815643959379613097104733322331361201009333809657823431728300038228040129657760413140456925252745970608690429388929550448846654456419737230380674500909079632958369471316116429535081528576446899490514762590991781544212174583908839548551594069901861780778606164820563705257933412759311365296288504715903116872874475953112929704265475623556182032758514159367003103414585179481364583694684665700772538316295794178172840455643468487979402577096926915292837671143830177028635420359122115749423928817344014891724757170581375922206631371688692305767995073833335707812769144545322920339549986110784850187823271138463674395048431980018959319330191367937751273118151057153330948313250952602537947602789218699288469607364303815978133001610557433690348915112040774571157178279747195086322742343621309434778608827233039474527160842041059129735496468225370714990316149556056240842896933221051186277876729027829544300362203849116559526558191272015192799651795729334578390792463924699977681593371196738242512814843052638717057679900899354661395502468893609952954681421853361304934528082906920725641120071671656710964903018336381619438696845972209038759047359041904756567104097490249490245668802405205595000646980660916961254119969089928546057036595862621194992366838214981221987332206915731399356960681041213807297747632879661010239262565699270715324510576256765695208565560071118766205403432296747719679081909339234250201203791542450348591452545888692352795257248112170983350094442707905620803124063099898821444680387836511787752814643594134971293484478930856857445722729058868618774243838045385110000444983499562811485177839835903557337721198060374015778152611032986253250184291976117567008933153033040210038801643814209821910685552023935045843033844542725418100626757333671493762794878371098312392308162018651353674804882867323584940249105822968384192741188618212099521247932459730671616625527126203233243174955158961528338406514157221255003726890333659807402307246505045728356010376825267062575515182861773659857682522535250201482094701783755427519224484243749787842849008813802228017733715899688622645381923020198761581015670781434428607376937874292745051873619628389481608743944131619840322580419017666270086475766988606855728377552670626083631202697377565617979269420568363155854610742179057257326154097140229567113187755198083806351913647752438751326051705255232100094364175392693426879927924186247625707886391150459597486185071350016205636187643250464649471795611140222156009561434734522016078812826780662626078856033458851486751476292104056184675876845480157708573144646593773311288791729251728217550731884614602927306608154624372161878009441514561362405486351648547854921886227923590114446668468465514123555204118791873543196619019294915083208874230022196526270945123245538372538802185164812766267427184695807085983776828193726132381428611237117302009547476608601715679063884127554141400876774480313865164971016548248296644262715483315990448046482057883343853025686740315261624672870140347796651645643029750422052777157150829403614302371368644387467774442640527309139902931168607464299904940988452946818999937012690678570219586559382334237167273184363698263047492183467160866744848448716300664267115032617078202052330299763739679327741457498250018067655333318034954551205115324081647056698385297732396523531495406849400738422830047543047941263837960214684630893917639101439129085376998211581501535675235238905988918929432150668726147863437492201069918961923932469799496836936546783315150306216427203088231403432578670339412602721961747938750968242739138884925972732752703165049149472803124734619796890524223470403896864326418095500037505194332158510535630128153583495657995439312466375809608269356500624846003534665783922057473917600320544704590784319750134227971017563336502238915319284730687828046211747540629388184870132449155229270533882319300276438645400348594544185411089307034961253204917644087800173313277598563463111473267839151521186035203947172788315019177884777346439100415004462876439217584498807102556402411157811935911515300590179782332832296425152242920769736521884739388930677267032578884357579572656728085854721937423755299937700425147569468217991302297134128490077761999109188383270324217362866842300342602366651942244073313695862475307455717623101603341680573708091937809180436619238074563599629108329157834182631776077735804852250984261861324541484333447825645504001438190516516213242714435071252222142250839315975749041774753955612242992438464655982344860945570238940519474695775236675831917999708065344184128528629130264234304872241609887611216078694223918884728771567663541077432866277011065861067679847216387248290890526878470983548621254567907002483065127671840668775909055836739423333207464091139950210609390778759851166673847520538806582821336645774231806125316539437289938117275816069611421449101480883966465521848847242337638912527789973056127211202567794759512132365778422753931425925709079593136061433671486128373253931793339199006180709030706196322685206742445165848206873508302290430515554828043223333964219538506493294332296651403444811886431901811904680021906092321634290946218743454162650260557988903702935146846277095539387540402240314831162201586695212494962541946130195743735844935450977341289488660477095102077918156363147578044844317984758619970484532302989171062098184237635755180202483433464394180852753210978698061295366541863437507241040090641745508174511159186050707973444216591484079576714725747096478474932089998905105795368214048864090137476677070030900835518544142166843306083718823435829610112210211019331988524473737934793498076827553962933829312397629981063491852019119824499877402790469817463102088181048963013164020483586818604499222833411961478369188264159837636580358850569060914776219207922488777369580548643661881908125830708251586325376069851991555060011931185113403460450418604647038490496911810911167278703210987898608275294237648576170050296290179331198988213199386758885929710016260191649817411464625604164007269330173139846424851646056251178952191614834651141914683924029172804292544664576469068934083806506987823584319068009274479999543697375112055975881767070391998846047538721780387516967217454852756329196378130788870936651776491168950727087149239918484403192498476991187623102968869123592543367455433518311817864034520472655085016727297846106771838552610675891713728640752692793263743425456014273932408378659238564127703073630947340204014558623384931551728309875035824199875469958065653797363870652271208749339342875896828019765412326555034332137433897260043233260557268302717305072799225197876225403258022115837467537299626375828440450838292926160208485728217982592112671057512149200311828309702981727402503125826004513939936327436663070084107215427390417127984706512521233083075874282600912854804489286438599935008681382615802799230946789881544484499524983591677821369006711373949420588199780086378010129035176388774918233221124355760014555752496081509241014919672358098611105752618470268310147104740205627380235726760843788355781406179688038478819178462280695440202113293482804347141084451363393019607181883687314401953854076578849549414532936117987374152756534898489656126190233086044740708441957653672438531782397505481241256615158847878667096828487868170681919650347062191281479857600701857679216925115560622521560730501591307371313614037652021922186313723223296865655332134767024919055913742276983829728095314313631203914654282517502122868636208239551870671963528106454574235783809156259664244395620053915506824119252804684401705588257287641525481719920568622643759837315012263518461515140433770177459670098998801169926838067167077851752842701077149410327102483227603093358289762015908552598306967444145465539027750347257197678073080214518585383273165122750628352465139669964988419410015613892031676561312234296420431736134740253297415794388479590104693950398930586996338602383480562141580009787626021849555909044201703703328298670701710033952166262608502692428043344283497756834444385588021795746437813451155500278209986171856766622565139664158096623403110317264536384423352470465391249418552396332338122300552205487832042326135517904395644970391787810017671142990304709679734494464338599726861117120285841106588594550585844625831148301004097577306438112655860404728392458445722039534565816944194710420788749810185470819627170007618216168683864232094681824512626617025656017367101298954115692341419026420984507387077861264066534998002140135640573486933134240876432217867515204864169373645605318447369646293759663952452647485474002202202238794927767402270747647406757851036985846044877504004355741671996069698768837960360801010998190817352453328420197918189812594338152206708993948937029413711933987246882457341125155830896137487851395771196821497032862525461157735448121303331588073130375734998458679691533269957921425279242447504280232979278681791744516827326775117318102052492960881985764893446839334576310326053113493050454865015153182920310613807554793483135570235439671409543649955200652961435783048623988390669138893183004014650459573754399756074376815328213847879495269025887501295551133221726459136747124780299359452479962117805986069689717723057926997706274378041764042006574042251523890891744692937889154167335757648516118497952146165203509614689626754975888518016351258695400991921742135221758669615891056458280739714583372597161349943043871236980683663863909132723970482393402115361662640636831882937209420544245057321772468974727994011989787303163961062497398329008697213870828759141370165297131082732251517556849377865421958411440477651245694015600829708347892233269727409494353601950392984870034411599770399015719234986628271578200529918096654964852573066740549298004173862858788930854935407551899612564719144250508284863566163371869309976566209938297744377179607367205541608506714041026170943039868251966054725265596877130202842170255841308685877361000611890415545113346085159316439638401139282334176772337747912168753014581307426856842655770008747678603909206014026335186448812194437456911866307705037667137813559657405039867782888800476058124170372049273540180438472521781244051915341497517053965956077160525772030132198212929951548518632716396646023272131317672108298763194904785178606754687060007255144688372578088745271393049797414077460256317352191370026301950427696745966294148377184818191646256495106355987306792044434170655084126041803751153082906945819643059996715957433359152510573336537799309680598344280032713278844972190881508040241034959817238322708618439031449189133242139647523888494337335901909887694068725797433364990510537092651072185322596537652560439439551733948112337023572860128719815115293417422980100404473488036506236286843387307375045744129888355199963420961092871584721235814615548609752142110728797134476958027122457890387235600214119784562944580839687918951175998722184667244052096986873435849602653478129128015905250889886008899943995560335772779277994961558652075798790168140714928653885096177249551779215878910635955046029863775531821283781228710154104590449265289960060920963190613049415632214926293381075880379186463476820249425744314363100131538318652017536304462078577102194631451803709954285071072183290198081515122448050260126971910098611366751103823337856119512812337781378170505021959756911365345206350309642195382057784468809577713955681661510450443630843203428388918876890697316431034635906120273326758835483103062487028383059787555122408814560441375290852449618864050105434018488279426076565292676994719036751741460046728029241222859693706698633729977134499373566784554821376623585509346066292427019150094182021896084958609415634924190946092109526998271687127418303404376154741211400817717580469639531321028012095619941939802068681171636236871990475778725005458860321956332153354075384757404589459176409658292223298899168174063924520927657795920718705478677268690057753959710770078134514895966787501658484612694075834160345627108375989739692816667504869453577172068889724496882498758260196834981974734386705852311078133254949996151673985293294376196458813157765120160330881419508483168593913171219999170782747090365416193480518734480067212002301885496907289231869631621271397762758498918761809916799328271418155447704842805193012074507213166751652587365808653921973500923070499605416896584875597384067408744355071505975020279405229895147611325092382263091828068319426957982501427113606145829610180928217225326927202419407243037775749773323612669211864033078015633558672760164071072325021037931211724528761061837835832496154634577846274197783165727132500823128312339946334583662716527229378739487193129038231548363686355724034897564970040767727183652223424631983545134755408434969062354673229991371638893263571149088179054378137807547903044143590008182130566784864220855158178512256464247809092041830319073464489770392293845748919711392594108055428417195879296313420693241468026228206564943108159146194101275805018659249791343884359335550516864710069324528218970321935000967883197939114322592635550235968888459357655568167607875127938071230031406113186500470369747542075220721716066555623879760743613622902810334291742095631610323421510418460861350458345806600496969619355036667243815892763197010519167743914092810669493299532130684155525408963927469940284557798517336055244760137541604103562339698663216548032530392712514184332397643125150181768788856586607221973002497241667124829402174886682497281410359033663769394490755932298642742030086148323393029196384815041553812843258537914082172403280614131448664330600467493396875777340476964870219460657559686114681559111413257713643962227068282373162521915894797423704683105153568559659005102205801513277244520764354429544223964506700022050841763143942007721052369184711279708955378108114219080520172246330841961710429085551058848682245671468164902257873430733733664811246321741224443165551105003969870015898237720488859247603441521479157009595284645957287988641097986805569727223852131466812242780135788261410422920272769761336344859957362281494781942576548622794261275991772550041026288940049342185759384388200872302631597995809046173258484533850170870651344192609107293865634874959003425450924518339507028798749837741979043294291930473661853843189422738089836812618497409551923500443218737606693348384908349827155067900557699607655735645133249258921739840272718175552814002554739055511412917528895804653066337212237102527644890214201754336607109930921558594813273704673674455075244160906449134055814078032017526455509463947822820788313788118472969651970579892525667629513773343238831764041313782955253145794242302921043640835300465993730536695257374899130715074596264726207590901235564267790520059229008505894959372614241869083119610759287441660932381159958799911917782540263616938558465995757570723721926884416901904266496230826305627287594992378141555936370778762805917987999401664062396544781437842191018075883882665072606261654660854179086094717986473171897091757775134262784482045362722284925126388297329992651251698591376815204159591840825473120237659302481937413953785887439783844613372256311400712275886746683097388369402217847002253369584421425681854264426257429289515580402387080248483987448114950761778251926110851319873972600490587173830489866781693327265253080246878275279755276185885188099661846915704617021977162496103965185764238951075341107099414688770233537832096982108834195249081557565677977269306722989712215254135052564951823062334580287369570050839071088791606743800835256462197877537757918669581486681621064867666603824238736968407365700109900264194176919131946755888251953528406889971612089886097809271156010011400078395075445478274726160076529053749933113676292789102829423660442446000950604096500178417166702148895128943795756326536081813147940468880554437357382724352980680740137837560207396627156098509269367989040820881802211058722641996273046680572380171960254827227298204077884145293269234072984245015993490777766946182470138325380069097807173179474589705303313290517629606515593538871104831765652111037037685934658992306911565387386116485110287267513357834000721948571767601409508259769291613441009461042955883207515344070363537052989539503110013016680856547923433457137879261347554036939214096099187333747089271111390582890799120104394673617800353990488799567200046402763187178658624046580898951471768688407166998672216657259114478318569328568608985157351471954812017317360291260903556041329629128323606595243214234567193565393829647492166693536178990006024064174796877591895280740406334285323275369228826800165306535478830724617854399486321704819997484982466453616297648704527664452296390898792565985736286144460202413413405329051284734607366365625673156927001633511550935669613143591252246006752247691149807159218240002520965891299733324435048159134865449147404628499817269260428584343379374211512657918151339645413952729271124646356180448944840539278740308792813725170819756065222952165839090578238761029796268856864373122839102438929368026212098071330728863225069989803426142636308997844356089052686499962663743316852915744086620535676094919959930690273770483292814323929225671845668797784970900450029848207259224929077831324332936785651875785303042126284915419293259373030045304714541515439082761099397709344267685416614593600672208719392444001416533431956064252890981814688701241879978772019034570764941185312307945636968487126061912313945383941668870162949878246188881320169178887529624185974536874968378685501996950673091416117205114251796622579572064107251362053343007019742911500408820917835604222519776950652265189188895343901446577659186345894698301513978761872510601222214669103542831040060089521706585669400097612825044170046727420279885675204347786837232065177869059633055168386172237681254782732142958470110844478260974089734653757545258767959498852781933040180052515924423171301352424171997612467295163142969243282937948615660791346758590396201755303575426439549981666217023227080626119956300381972866795225449972911132536625180209950711934319868400994774896590199764394191648856842154181707788860629498164618162018200151098720784675403660966952645612966970380710186865718093939885572892443702379287107298328126059366278871046119457859734884318009874161942200522506402155471575157330822257843363818868015171438145763192346903455427317114112757638800468170368635283435169610591906416217390784172275657196530025456202196787365838536800578235635059327202602564042043394961060009659605631967969576884523956490045014574738562822877057067897230476688550874618331511076690597327537396403791257562937774875517619551972680161035526094011944219086946171786773343904781343365364572706065265617095901689100004142617324868829454393558370836507445698660724626678277636086972401227388370466176339306249249110770685652397345876901758511290107180373921481643416651988911697657868536122325375968539865424550516947672464906681552049572026083842792406556671657966616967413566558629574549347243239386300914167204598711605750702181027241107827081056309994052575977639701994986512814321135433701563725066796117281394922496492636033401986617601006736031583713693449989696775294983769971727874096090231024195721112272168400873703846450516049505305778064203238553153789705606268371520647283620384633034260437130479361980093068435535890427790393054771761209851332968447841646074002852883229053628523134977856457371396864723430157404825169422242832900427309415205134219673684656745508200502012698207355186315345409419382430017632251134639047769836575784740879177405883055396048968839701195444675852841953580251841928217452768857393035864646038731853925597520197357865531522333530846480279469792745599206163871063457539120605839073662810767883228565580651308535479651718149335452981702325022971040649021366743204804169197502127082295713309402088032678417333701615484809369030780135526647554880621890661745512158651870443185470849558549807073799575323337000650500849425191606947567626885554661605398459108229897009835667769013904534476044562653064399101074859880660315251730876949335146303637723718462755123376326708902011483852535429418291293748599743420159511059149471172874567185385446908437971933213157638259386271656687688601872466133660149386900643994349829878097267836911141847079787999441738172590668851771313516865739846884360726751006593546143783602300762742769372567579638200617839582365139415468781582120812670146616781903307181380449449051975123576609446706408869831304276411082914024844048791521227694427328168209883189478123568640587979010328822269773955478499051216553402881784591702187052847608151149496403995991351353795473254094975410186302995886048666766944913141941193278737388890451396718539600726145646645183881448819622927442719167840941169869207347224773498007853569376519764413873665725566017533102285386198023024535928236985348933958433576525331727463078583993914600059597971889243707004155159517162770284422563363822604677473152513824848866876717150551218573496352253149038117603311775235961319897528404002992254964725391458312830034338409109115457138660110177332824171929049635540478685438798193277103765250769203678624776648752332397429864035343779693421659038002938840556990263924090924294594820595748359408380809852285952364236249886787295868622519197827947768296808598058069600604275988389052841921778244006938450002777447334525192564768249751516600200203697825504813818448267998344984613751600348567062593506484704590889076166997901058656825804421692997403229197033464949792060302003048970452046890424900184525249708633260645610947761662239997616743512155672228154092773294540197744927596799318603255421199087322659479135142297754203706942383857529342254771107468739562297770825103865045662146656557334484022581882201390150798276600485938721064344036583639973794655681233215691240639722256364209644517270821859605788461564688505409725869407347206553971045642026913836399794700024922638030691293732890396069950111311403255828497779705548307388650633144713766329333673009622425522977460415966475377301627560930287186742432386540145045785323886284085454779406118799162551311405349393266356758454770259247868486621785236502785464244948007531479193068401989124358350036310007597701198818612341428610526313120884103782255697932950428948642477312344564569105460479576617244311581032163437609154565298263462299882975496054144811835516985907847752066544275730610278498426778761802655853904934101072978788327342616301082520028756292215847523311419897660809966383579985453792949609139240809727388590145589466715394674776300349729804254897448834178160559665901958356694675115446531628018318906319236534745372557130856256396414996744710154620947914262023026630522164532582446843202965822227779506496746506238086322353633966597425245511240683759944722723637469242351868611398729672725117572076205047877362755709908585299757817979632908214501033469219468219180417129280265081379620210475467882697663826518032306013166068134076354080466513007279195562008251673358247173741130643854690927647769681668804498400611797794978392223859300123124835312329589378125116047065635654653528910777562890379450739294502348453352575224251548254075427537459942574870779308047276001265455868547175838723325039011574972768090719493902993511923899816924757507878769586618005838001342900629128696707794087190853496141815860545742984253283268185536691405399873481957489694858075135593666845613719718173026387151490897841298602297595331562610286036010133349826416597664990202298031261193911782995052431270045905965855538388578454990499950765613505356762769738774259950811276877052073104339497241100691297761714576480883018316388301147213374242585420633608023673012390831631962863587801590097972877387745398802245098217736594084549032009336103090071633829721698093528634663093940467959608209888028260752793506097151639510698196342085967301833256950396359831009433109105806183822179047486236747664090445380952884028300659920541902826152116520436229190727261635888308852945697384487062477389202458213970446289874028114292949243679518017854339531966780188068138211913210154308275290074127600158292732702230071969652052804484401632781879294969626535006338679543299675948915305616313196533512172817868547639303120430960587671071452499459993201143399049978873561823633088571054285544717536380216141681744364474319789558793544931668395741054617677550507006127136047104218956626051831127336022420304612055884133823171381870737258052256471701739170372662829666103502197779742381741394331894290243495268361465466984742399141074044193516223769867872655329290480777664010078287842989393110143345926022417325316079189927161452161712167484913088380794783460443994605888621524586327689471230119748742393466923066987455900829799572936997298687621813200875040580700134965149752435491042746499021644330162524770889161581131435139148700140525391997742827443052630656652076123674287093972822509171690141772406201830442548373468332874033635743894244378063743027744804095050648232851290190956302014245479368610855491134884626893417089120740531708160945905056101824055396905385981373643568063546406126747252789799871914582740040336153475911865329251270231115653954058236799027449400465540445676137454061754220916752079980895947015343626956252213808040252755950523651711057141403042641494839244897633018590001836694973053863537787811371776316186668146957719801393886289133986974412929631921528964852649673941386479105493526350133751526829970817543345389684671255536762008292622481641982504867428882428842732142185211004311810985997579060139599211414262304620840949448445615161044557476119825692172263817492575017897197137605540964013246099073071391373530267571085852659044720480991196353191677490417253106525527927109872758270388236285188932212292826944508762764581888649134944236799034653126783794926089624216549873532950687023363349433869818574278424722108898829940422474666058252591412368668223111167017956063637315877503548427372224771546188069151724487647309555307631502392108739731392134645628187347281484900676101504479910731670276269436386620793526072193555503485263604969581038141404050637414462743621986526142128199944799565078219596072666981011941247731572170657202556696620564254302003425803593327223850228943912084521464858997460268077472388900731456465731517008982462315832316454985427072924608094463086514203450923235708675138074880096533299369155442549386289561379629261468356485861535309511931627030855462268451676626097183293942502728075069901464826851463516374152983940244340394750653132175711741320712394473128202287550599569301372413996312414963070043464669031973240312641077986535677651829322910105570030840228011906404861632758516093456006051532033809273193081606403897861512554527626708992390679093846660039038234915246158365266399055331472533769519806431095321295576581571955976701591732704915560708376073197443688691060262286566909699018967966787857577259517353544738866444467099321872836631670563428575684334138992477099096301828598855775352587182477797308620571307582841950798279508825437093353285501276580209979217357014643216335010194361010371102798715037309594897418297304099830224302799595828702243731392441011292476572212971060743096929780178792135699398467648448430259912525018369772545538256774273407417141128007038845430521698224252365791922917102199141673193662242617143536062352619081381507093659001897089716125894845509951171174193681107660685939955456455411156219551734605394483790369374837574535663743985979890620779751695473097340385441141675093416113434248929924968899826858683048824933883085100743434489485619420169728084040159745317688621444142475840272608607983310880809887744687449067287123574278542246177678944525385681732583484048382487200022926559801533602732460239324756423401286073623863837057036418934512697870971234830844963789912867685855506574743258846477585636163852134204489281726322615671927080794671577540511456941299853916533439142458980431731419663244846591553683247317310721859340099636374774604524430311879058252771323666627848658370186501556130007357227365434790298284639496787529786095788938864087998375500369198198635763128219012905063782640088275172939319698625965630431977181960242209972211691408468436804920650698438924709408480558577827292122708633447692583716189969939613591265324983166742092700856744007758541346043578997936037319548620414880050976689970392795019066207685940250703507420855222210999044299092834745546226989066207316685910819298061942486461877883897369742089482566120578797093575808215576227374255253808791331916776807531354988323014285510431428538484400186973730009881634440075619521938921493535268999104213209875455963672716096790970149178951436873301589224918528488352790374292968155459282181850797399711982067675311953057277868586225434276917846486734417791513464751649877486755266570545020750089829772025737208575393145336584621879310012093546137982487876070041558942585263050051046876915995187157328703697318200071447306140375416527845551268311474954435664204110094778378680197551528443587265937182391367841386126837658060984923474076177251388525361100151605235706594543501386620808785543104843473132065009269722271350277607422819508358391141788775033272940975548865157424206061402308699194001331401428368467957623044706289913544970500710974866817953468493884877840831172826781641479561666366616299446028197137042864374583369546788894310689273759979913238223564417874847440967084720928947255571696386834906510552146573874292941375302080213255341897327600219432582413826677391031793308877100541580428626558062522388890955009073916378509954449597592255103217340061066108483966820772742599979727486823741498518333638487463393573954971287674152911290432699478769395459829327418686407749832909562257146164457467319290513409150350627926808647471699586658737953430021630283818759411403475315178394338139716286765804268294123551622387703691089571316675093435347209151066901503070207122637769778327109663811765732994334792550959243221499456162383273758869581067751740734493319680818177184979821228654060632184999568888649474714684669013885976703837200010421096188164234538054351407529307820416609631173261186298046700637972374282373975835138341440231445065764539325455825078320846466018004172197816850155757031503756806273289501608796532837384614387616791757061760786207839872089895450159584833606802995719333248467668572132257373276032926917020476550665839362301928195862280896042937750714380785043011904583072259642339738831397499984799282941824412533590261824005271354196979837633770700968200618720803381473415430977111697019286914134345843096905936640271594555475838768066844492173791147793366594305824858569481489122920780413674522095072659410085455695370037746122638777837368948244564209237192755045846610756218041187063689546936598085590503589464445861215017541072341260498258339319370377165760291853221291250475107326425086742359883650736850442122696769533009844359842228435016466506071268271062672494242392134630597150473126420996081210975739040542682496963860081392092589776578311763797599293947231505659358649210833355629955378196042883561281100947516268351408998475722252049432727203655138661741655626331738637783381682046551625051523989394035019995999617701315592943409691589243851808995561393922757983734762664643298474205388002076112567133970079663700554249361134360244519156314803233834510648529150811036227727712146729673525047679666708884776955338946224356264985509752880636268834066858452734538465203323790613090178766279067206357193000541373107701069401711513781483913851363065483498909229703749186446797520965724814720307637589216464439392985983399157851911560964120152519132095286408558705123028049137484494895556700532521031676983941749837596030539178858331038381125359397354325203344506395841692633540298672106833459386417378662690975986101018918805601650500866002455649169426428633549266410554262680521606896805043135390574966008438829017065929485876087645711514229488297702949411721100157716786703792324389151154164408147307415778883481241731433060909493667013561445755036713774088678178452329912968468417761184269490600163321136316895364206804173243556836156729048800114487667122686554879073015827639723531147303935900399286199069694919551446477155840176441583890756791775625583847281558370795625589410859866305165877048516115387075409430952744219066409177089876694587537540675716119291792825241183172072025097878860784895785267996333030711670961066629301972310872692478201972902369285356295056786150440195990529942485723945109289719403266010908386695988269520463359010003388383750317144815014986355861454677034956523460926184284632404474373335496618100279854584618879401780846735573883567911580356994657682456172621356801254786580771606377943228140712706642212581199712188465359522205321215220094509304627965044719255002027692385649844056078512092446587038405187920224025315559566457215754070465903615951154686425639901507597885960659968007480933830693917212023521388101089997482469114817640977779021410039522396808183363506332639325728594523206918699569023934544376012629262901166965866857452193857051576658275953216486670236967996998613326366382165652374368986717959225002761952491301941101747097913313761423832103113236743440327179272180481363235763687180199624678914474367118009302854771124210662594459674824335280237187925057157881361222058143492773434915849140534974199495996422348374429333789818070819435305266820481311630534948936545331572152655398616949648321948077280804039380628834428963261590556681609728913325047849520006557937631661649523926376472733155156256384714803985010369806807285290160984214692497809777793488280057000553033990263421872786701016939517662005212385615205494518987571434898691959894230431656708143674543692300970060229358169266276657916166157523851237563145745959059492979878379067228425178583700453887555124573659261264123602328288727217119558274852916970546336719383012270367576796793189681260209272703944105960308165500744909647149141980339957290920873403907239800149999432830627261962308252252375930539129437585573400558132633615784138396970781181187887554500596484476265005214595024699501977603699781106606372627355956279219605564835189848105508912950210207136092617537810132407833750058543742371310343334184422063453316967166920006548169343870327791426927322586978084463676870162776760251076749295754647576734536393772520687249839673704084582384515604250173928657504915718430284356897412496502224403507984858134452723426491003317066383092679676741225001302315983897443782155634039918646028495783697831467408450319326042642529323507192621818948749390545447812136013507116765049053920162975294217932800589480935764488229013048129097592280697858234979113942842067719823496245992391079115705497118012106411588943637268934839719295019555894464237398366889748634511157694627631199808208403907168349070618261501417562597227677281875212892008337468300027236664472553590715880335468083283235837064014496043476354307873043376099589943110990383958233362039557387503952042131137217070022248478842633654788991710071563557456430061513417551349360103472881864353922723614145912571563611429355477341298255633290211531112622802761706689984682215465015069749711841045173568732342019987614202230387833796537765176718412882628133673657791325466622755954587445461294573018280809010220932277167600207675399085473711769676595649581207290442826537064427085153178731389078279701643252213404561271542630107707846477861345012393018167676433361041995622965057038136598085893966895935611206734932547490410688202423107815772220053098248082543069524209916384961894532011185261458656003613616641765438279007836714088377152276080952952242341553050333784542182011217511677171150860339854333649321327610616985018432574193142040205581674892376162727828127652511595055215320390627793410455358704498342819040013927630902683273309482067933985882320144970760777866133474660476418219821251874390400730520750125856571368195745534389839681617588174227548074024925853713541054856107936906650366627858620091943338362314609419539737236119575487182593566958808561995672976168363360291959030894757604757693898386883271012198921309148801651479875619939584702037981267358357176090302548583068219433689923220320300709763829331443005002334511220004116953597681709405488327479992027710477797101569641269147010446856924023788349287690554638402503052917339325799815319026877785391967077135422855888727231821308335684962435049179023836263904868343991357833406252665710882855441497232761700352190071562072293574006564746960383060633615278326571218035419769985121505586553177913588644523835980558983805500959305811172118027160487646906025470482708987449056139436382811685765644202959076058933830950804865632975712739985721493484638622618538022864776899496801854575238671559452196088256761250524734021445615027711623491297222340040047797954962052973198729814108801000596410281120378312240067740411245691479001956146265390008920495117677347821279495901808998091374694489515331491060632099321262848107412940936168501001497867606944285758610457627324457790235435972135244669237460492505882315815178325934487785954154810389741290588543802905715215345766776900022582845880732326604123258579378108400264671895202457707232604805800259131743354994112271344287794667057503577860143402360406723538942302924620148610026120895588820565433909225010800412877199458828535709147029838488431458836105048489819377276850665532881967526986064085035069843544941666598379401716559430790167847191503544893002964224806028567732179366843796076031945454049767842650992284587701855895530671071161019751238040064133118655177740904107107686082891562364021799239297731847134804794000125583022021050336496037267853005981226130827196340881500664456718865120018910658600912836155205018985611232081668801705401465692110033816945258966797480146205187984881055677306487593060303961687422792835684497798043675818536361462562072532418719114857977494871249308018951743726553956155908631412868779343078563489053291419286340835088883636735438998976906896854050931872095615507324595625753314193498069852646902914358878360693791977019786136776794586526542919700087019183910166313059585974564140676664734426317622456632079624442484151149187444710741088961168945432125741081635014493118794156278365117078194136490568109277561913845891596617860841492882685907203842099548097289282728178451375096583913415606078984595018357966477034502620425872029068783881641007516768062906275282816548016339929559667576831582771197634370889374998660338224164842660919391633612989656478646701634388732817188945211888223430552729091781913956235750620449372788667203348293681413528829277028905650208156553140919161422542247838072150581480165362983881338158914464877583327900588221494597243309452141943021531092535931415254472924525274490548402480268263301294018024468168859044971768156229500692943079223494975004184433640513844389222162097885552332885693053227714821657636513361432070770777068809136299244765136034653548505557512411014332049460672896986943291367124950919455477945926027664280759939438899630239709947116410140126089556007429152784199394980201736175900441123538387929837819223243869597087271509992857111710341915214342534632773580931865002072805874427180951832026814890481373925085130944892634863018404055980596481238804285203169758172999926090937749183989990563916761372498918717474481161652750512938373251304265834820716789483966656536983528415655067456526393184562175127961039062765955288685285104180971867208058370291377405428725041255521689040459687907293762798347578873073266706632678740056674983618308612557038841282108052581463555102281867026160142592969264553382747964957726740356336796800215329771964877343252843725263037703963047113500448740261862475487269929784151772467339654927943945221665124114982575647913496238413345267110704964876482817450279269605404865316577789606922825329727704772250427521788341736979737680475098877695016424511860627641126381552738105055740448301819083459821223249276966978312070068827027540669577951127351846855206265451910647631889596310947217315503505670467086184231263338239471704450341858272771193707907468275642191958941590007041718380770439197449238844688297625799573103010960565087209798206424337673288668618548103750369813585018541997089728458311769458079240345808731266728389536550453483729376684686151186167400191162365517777862341404901438304456383460089937336560168666627880629502912510066290115115052020263563277768072846786667089483258624129163016529405854893543746497558797451466222595695126103199082770657002616461081623091117369245057000821142436361624903554742500937890797478167245207175543117814030661605878125816050000316163723763197917867081739541857628083642883183155867818028339059555626168467419925646823183223893348535754723014089795691624798152328798740252772303719166978378101438916175410714988979659147382622684261983010795309269870363378052916862322255703404021152814805027432068707766242155652196029974554253093172486871366426682211323405440638320309926793197525586097972855375046041004380300965672173177836971662507881934030073862914242156767000482512991270984451263013965078550329011057851117527354214823706528174910261844154094133732718278845502389439187364268474371331251869367106223170335854812238126516672364637510385593147675247813339129717802657501498827301229928461280514083002283032817546409706022246903428063779944775008006819585629189857138863249907255532543711569289008285576128715773544653466821461464943541938692481458649766662686749818820934860268517521431925007534244089982176779654128238236406300994519445604677435418996342159651645256093246522454433191454073843905442913343415474600481976095335521898180740373518244779057965211875643228125021076235926040267885856743290962121098259186180116590220183007625183652577809616947573487765490970899113991749065243006111711663825051337354433786509772098852905346141889744295611011904846637008540381138627113402906644681872404881159898607804187959954844371650858356146691506059750133256614385970887375354547310157650111297885157162212268744832918685997411402648573469361629965307955851579081375143376641902560980133511443325924814631231585901697884003314610101143385941157601884991315791865542871397852387474722302037940537516263187528201090863623391077380443668304264196244170762315781234828501463843166576000283035979270508799602016007468496417804681138873159641579923287006122677213118980331594075127965721389642203461327146700012269592442552545684725899754596577376519284729064187357269818523920105000898070129802859568503710191702924648716144384623545461658337209181823642205669024064958165813989369544424460833533553363578781275665137005445470144561534675577629926620693515845357353829883293318521696099239630031508986921177781891925262618318412920755394138369722501001411305868057610882218251851809289138852480430068683276191232332281853679415349949668673803867342251149708212230877409184263642319390809163479042678473639389006030124113222495998065563329380128031342185602345686504056040247234076437417033724473406367855787879948835911460809782696667168973527316470728273530892089164686933688092920627730884193493310430457022136281219974948764572339542166779029878151743437206722064911892366327504160945705476165557902671621947028143557945382128918076879611572563235194236298517912009334741115994941542573484174050935597099878200595146867280367668131164896661445220153520664374448604715411456883746089213511297969812748757658345489938675005772912105922678220031295952108349414033769695879930119527931248074383131052696010026655129610634016234777087107620280070174474698767800277710775964739148259594106832347470070762091736085833848451279901445097786418837469833983972525322505062229984418664338034572599565741780578731492048374750080135889807642340810781506833200379994686716547752409549644852506434330412748149209342248099494539713749472825650692991527138867228212799171391572195834403587239881784615317856195089495480765420750857621485885380849394996460761926870876623554002942860996376875358160095869113767297276265584958965183322733413356200752228018570481226187856456108034572326961011436037456183164469188149592043986188276525001991100035051325866327824431657312438119472428395466641176598703364885323717002833195748206496069093380756563688020320205103212062080292477701776807293322795408953702464280642966565498923775200255931313613475566241441119930494504246479051781121276665796860267216544451648366651540418894445510658422326465776587254893335942843790514087966234334204484383025028461799353826970634447805496220086370605063782698272796987331515691984082613464340627906308551811866305740555497571983915287023152173421645186971509219374236857410430620302118229260480579690844547195194434513613787579556190644578220947702895086787588833645703327572100989094597916703402266014748097921685555147691593731757459027664232790717562440902712024965265727252059117949097400009149206065035728873826028686224826052213951526716957240843618562088144425323561406679045312434729565189885766134928970031151864720337371479692206960122096419803750390061195008899578183618821878617722931012462051405767002216123992025722735553642473395310296164113145339455353418965471179674646202291771668584595927380265914933666434890964580783894661860282526598571870719212757485644970657133080135773480939873987888875338340486672129467676458962649921945279898832688257757323882619133950822910996766415028941406657841954211092664931040241862578609719791799295879553305660866325358559007484630308257757694832047855572255107034215322584858937690402999439470500561491884399498232038280448891917876774751465537860152660737678555691117041589555972381888409771258237495821214273819165094484504446760325057453751879714852223580465858932917295397311404145953447351535197630287569020359468898176153178683244814917065012746696216167427331707381951860456556645459977011161075259729574425141314679325371309486417570611143887270821512294044672553281449751702115215250771234251459595672709707506399493081833929911854710385108546818055094508606351482687867325452922240967597476346842230948598997897714433187933809662138987370825290220062721638822321220416749598216022499440284582482825613358672851967921665854669432212199251652549390002048450773841122400929633617684201472633413023250949754674590303706299378867804512613096705337134881803500602558407268816739380532651392782912645636999608995026280877114177603798114605959356960567818326953670048836968922939521113126926202989707632068165896580589797809571952886994521533384866933672447875148751397926860250896075036396006052566630384722228536306674843320381756957625328993860669394850711129025414596276656152020044767934452040542527655700533149829464529056964467110301262321470819037886634916111731172932408957747143714411842145136218704872650925315155281376034037045566586558874655009655768421919422324357027862959815511604168897304763928482504814540746443614695392504214219368592710989806689663565347809116668958897510581330325613972501543368004195479946468173221995506527868511421329498763950099656796523803020530656741992226685487765087339542790209549686575748082153994844513322006016780045527995094369960523319353217641779776433859195605018792523557756706504753550051445691667981223361715964767876798504016237629809098390819206282750699014781773533984465823253478502406479560879415164268049935854548577776505679622227288692111505472221150153022682148492864995314435989590752498229229242803341651452328254770577684879336039292990916296452093981726362151112155718405640609017613991146378915625458342309300512317863858487802782573675435995070027934648899378503507075263853692994695316808342016692053489169637590065312232789477131925404035890844287763852143624079231786080199989672547463466751325582565567246130134377000752992521682092745752616873773775081288175780653038659734380964801264832101481569529977099297840129418293736874782022794197262225475200393635267643092599887152924124462678573951016693130630342217473350449893696382411286171129997651249863861428481573172340544000204599413391132108591726412678455434799238687910601914236703530861126491565028169152379744159706886727571127783272186405181425182159818623122962206889442053338217673840385944009659488341977079270840408375377480074815956173257398863872810840024305666361958834072971268332860539477170309673997253590722559951548263330521522857084252834395657080775767157611428513706962759140070749597838855599460102739725902308346565004269095182454587242764272660502041384185787420478655489134227756542119673109555422028532351000602333271955333769776117251017146967417755357083918984166863131014171564815379369283766285178333008175536668954956458244941071860283113419428813612320854979265686450039678916672568936433754470899943053702409292442587266977765991258356556559515922921199840811794510136121804559186804705569326413715502944843375825295856037186644214382112929786233026408886347462602338980561333957666400141961550003462453093160843708822374464523192077011221119207424064433063440588400342795918529429962213774876297751402841279138997515682442065720628141034290719803860364318534243942566148574523906484588321554101052879078260604494589343749258870282515440294257794203208778286650094358389039449510236350610888304127410794501174855260237986851376781201778479733010888570509606484516598828114778291549642899123098416979726464415777510439209747773227352747584965116999445354607550629983323459985098767498811914106081010315470921358882274904758733685484937575339343735802222624353503442915007975814282114315247342694687398221048410766175567685999578189810184687730440804133302440758281156484099108605322777081210818057495028030109622036336943192018361627681557250076904540026609327242212104783124182277977760183138905444575680215760123764260521800860647079248822901548746496845645263580226544293992807446759937638562466976002698299559399226972062236887819573263101027398923355508141878092312235438721712919944240439530193204079050855225933849673909550345766538144415515867605547685427618108431508981630185240100300942231550018852188708024402743854560148965518890001205496856337097420994937236564617089370135137348179340277654891703998488761921842275919405394235907029526290347221608758785386246550443313525581846135683676719378519029359989928288920839994560451948025232098375528923343584486941210288586840010666711290320430009059755890060351319752007225745205200123144956473650395578960423666423994923066545401592863275016368203552010351749737188661961197372684693059866333239599182812639396486817299615475437280504572432988171137731404083189788428164511752806130173415201323813427303567956443556859321118819060800642139972783539879205785176350334000991212175992361513466904665949493201350711169741123471034778950359221367936250899980260465525724214846277490438973873772296027712589880426511954910827744579098877279992057991541737837249694326312051246543425197242801503575129637185443076302685627251930395086874356280820466304036990004888126146976290031827301159147691820147393064732864671222861550608846988219368080259777135783385628455669907438639296849916302457193156242883161114314832327051208799874786869339056926837174996580615350315880472535180306897181110426408801319461095944295343624963195945568051468899415060857907734765257027470271880709129932428964757117204496614775080089500698412228098491300349282563831733940751918118578400421086847704208184773078723091958438793096752756231911787117760818174725810546189199436133746451291861429806908481272212300352478935453086634952277675802202777589942068535202444418825487173199657815407109968155754516174843857915567504005408374761284629441620597771778692072531802338057382977271314281286884056121103348350618876246956481586189619698694039937832057015741300686868845947195948786174716820780586217495651748731547232411151994819818350864020170870026215890116281771153866317167163386467290322428438339979194036818108673370697156674084735536288363834815320155761259985218593824957377791346683571803723333076378825075742742357809399082213671756323502925875893348187260234052760182365467080737989622451079126982826771578100021277164356926621863602375372453566878720127772524437652393769509890509397895435988519322464414054399932968105652821840945998477193229734026827486345671273408038688348736810730671035523357357228767905545600743418848109488046212334962930345130873185074924924411163868657434732518475279199202177337533262446040282126023978853214615181432093956108908631796123823127958373319568211625311360232281824379133902756404268109198163111724261199588972252188608269748971997096547472217189806094508459655962222434570773842895728093341195624463799122071929584943778809785520644773762729028767349641223810068900112846342585455673569179604355643885952329689689468222265268884978227972844752717070477959823014993091991141061883639029869047527493932539313521959680188457816663399019046950339049960778658682741966695072586918731170249972047651862180140838981898480505844351924461075093640204975853283095770098244443390342985138022115294111688956901098123750820017645258023830929581284785297948378054391591876845521229979787695268245038768358946353775493720889834652373768663791535388778346284806924610720610088214229909782939286789012226295110163373539870107239887656947481480590122302722342170078129740311647824958208093673692107603840979866414563151907042527981434556688934060323402433700083444785490306291791862919499692637778694115180170053282731588479762522266956910875524025148286995855619234224763554395824730220847205452297197450594625624943147614203480528299386394932940286905652265384060698774440714214136116892200625801510711953403490358920309534814735196596973981526066336268761957119767879240802883880175575023234413983570906835146692418947620834061176992357295347782421025859193543542027087066900463407043038571773449323460328491238753906059505689086726396911421683697757812157138868394033102643644251623071716557144648758929403111477983363620238400141752847276572163426476796940316822734650978071792851899477372002664939251209041543339412639690120291049484744105515365810088389263699437114792289622040195347432679329104101275892213129850128681192303510928003513552645037459964439916485076092393115259105427840350759319736044402267569007101470199007054848534319223764211192863208895636430026728723917631406840674330576235164324410744873180000254645811916636949194959779342652464710384908629069832496722767668084204242373702077848678576885431614627795452071860749229435448455857187642650581272057752275058639656996755294462533219434508411910150482118975440795481954287855403513627664136543139100987190470279375257007420315586214929653965735369252739081488907716166068517264041170884024432227986238493446645239823827009931177675445177765607347470899692263810402295226042505176908804633978699890725510534158873491624971541763614483388300378816507007602440755863480600440328780290863287300081405532527144494279840379083707134799060252995630681242895450631541983967615992233429886631382422038342816932910741367841945614784493890202257714073394986724263650979853763159633165970452276700152972627283978077663581137969755855084885314179487627731309599433875404418428090406124495977680257524953724010152048709798246486654463268756773334236216581208613477587188414341514614748671766974717081372078394930502108611510080679131884249488038249815408180472744703186740510406911980124803071252171132701126220174958336260914294960966244046041519639366228156480005518410271440447911875725213276056650408788001247559903544971026412442044531506897030382125383712378434064359698367514412663626867417154067703054144790843411947749395022250457152431370792649296439487349517780859960891104140821986751682550216087392265270387901596908809397186531572348695404987090496592667465294333317774472193550714230300285729283854868377955987264159942103524025289278030299725025954539085060829191002598259696801435826376811009896763923340435829408886497813938116024172910888040174578151865582439907575759886644086931136805282976571219349427223645086533156815757060646926972435413185705751267879012311798602880144072392838765510737484754472587818006192319064614657840209067605149881407713252993051068887506403577514097418158136175921695434184927819055117080486575295187519198308541643794343896887003081446894484786394479582576381639525459928817875717901776956543278616475004260676684363078669121031391561018440579726092452596136155916324087676927116873421541352379746598970675109949640503966012882290909313405423313390809755836188029064926368158717395096870923157326600721589732213323837074941530259802743888403692155940127281670938289549421426694623243756257892608391789385190846640500408032224952945947535584915901928667137726356877810872079789719749990999209694496125142646321483821740484379023281920166784232045786747977370007944497077675449090146759543575349637520470684245554855255264779725312382051453970646849591342766936443725704007606143082650603425028525928149124570682021880524646380802805103857796532659790912063168546149217353988266549147482477490025267132024752300816707970574177623782502246806952464730284001219951197746225338843962306448884704118664492712403664801982888310406271213795642332005026483091113368905839273257413072106737354786688749465477554369844390134749587864347093753467449023804657103831521343765450506261675872919224960921225688287681486070557111370654408977669472681470542721727451087372007279258564301322231569498889635990022751167274809074864688599839452293046269245029552451493879090303349964195270274114923436298446870432734976629288367051580016578377839597694969699673411432816977529592280410309556260151768085204437998159402245446467669789045697967518376133152061591597190567392049036429317199500022992926232987813198662336244835723092028024742672938865983376971386180066002220926919561765269265039283822218040065043871667651348954921018316319050420192867858344196244143357822953853511775076085390581211758589970331726560562957867921815639385154631223102068543675451152607239821383152069697836090209539628792878777345861996184656227356432261028971074986494760309629075632478814327884284576103280083430488949796184641438303962623867585400099958372553710603200764555110306699793299701968025223620596312794690216366789682605709244011258615495672370735040830312112169276311619369083932520748110086210118597629950422238880187466193986196538188944993378563613738016458367295294086411041513521730235811871566590517941819604143014527445024060817416405660299673349132059665513400887503713448620226053860139711700924851171950572568616467042301841396851865242645374214161965623855412066713266163525260166756296614436016595277148974924776931758715011720998623707261302323512938662389652804123925367353305575237416196986651544527044335149409819715275139058612343434706829117785777989156798371604810335853146304787958799810861894230372327254500974046303146578015582701809246388607653982496570183139829593704184646189723237231782568298190722493404045614224708746955584811320162259981831069811610066924590055165547584364888653588633859438303867472915532938969446929665776238797441750311633773972405727311021169706929339525922881389592564957652876302001500131894398278758511287997120557845542224418051439850427478142696234620347667519347949653292915055003417726780084748979403124998511958945295336046479355522974895895255604896219943178280517364788704309817481122331262296927527041062536193822007133121236620323837262563131295821522072926281036548524544160959361273733221163012932097292517702147374973665637939709838640247216219558514677687678044240740324982945047766022836080641059263386573648510726713845445624925270030815675987572656137827238889500613492673390304435063462471351891414930977886568497114988471366039064517743691658999600018627738840806110325169821791460678035703426382624501549179890735072461124872734493470221209498695839059054106753028915237924103645748206304293950875581466707788574550545335368682117554323977562883009205767910178769314079412225278000666083514666213971559664081843084741642525678635773804958203595179826101756619564771168643257273530823837824909970282420622803819409488554341756815884862463500189408594458462312496913346098101905736146671291595177246502270732287129090901203568423339420886780512848288292791430742275171206663105854199458349806627354038372425502206861486647215360385721349493418518672059151845078987593621076154546399383520737828690569385123757318172830203036500800146408347594603770361212154069567623273144134638389326428689031111844624977270164193646525258289930979769426232427124598557752624151259193882867191597898230237682081154627893030845450201816445241636623782400418109895574794004011895195782008219733188748287974958314631937351301800560069188174451282834680955693140610195961755620094481584309712851433004962713362735784271074914482725264698234249499573227548060316279719252781839924887842508446982178138462104881158421808312031709701839007034026997271739305082704067051504601343193079521573599161888379849232336887960680501882404467289578468254996449391647022134436947069202524250450843632252150472705349189743118583389457826749014670620969989375011724551225630328857820437827931660700565476093127150962742584983897086537894013806417120219536214636024410022603122560488920935470705503793892331737257686331280711822766644645029341060792004242364026699388303183824414052256983238624381937265845664851986222344657593097654837948589887621244328937874245441037907907062701251952809549271200412683057468859090757745776514698655954269968002248917615381046130253422492983648740345898777263533291121394205851591835017803434329151016153456874690138265163349625350190885653362530928493533770810731919667080927146621971881192757677206535822551341698854444571079723939401094347927159771344066607104413052635638919116020579996070872287308352942649615827575164102714275078570936510788309983156559111582195934394761902972021383435407295842677515914623956552829680662040725663341201331802019346483696496933726348162078592661799563674177725954345160214285284166654426049300388823946380577600014070861236117395845759524107576003167913269328361288786868575328105240742813995122688947681719066351213797512402216508715867202305418121438290248016060763635477112346244272701178160777930752595232822746865695222736324683255251082827621664508934974595301637026338551916279321030536003339701970869834035359214925553307813657810740704589194240184171428160402835892180865211974250632397577626068542407829989128877266030977865648908654783556066815940888111567817113094247810373461147800666803509256027352611897478040176265070974303909350421325675637202703707533841264517837829864915602721681584367322393905303372420866479697893232611442923235458926969030740915739779531840734775581733420420297912884519650564255987904336232315346336357927380468749760436482430302664870572971971841651444508133764313563038056936997642834587127085728521867332366562438336755588278168398351822121808569421748398264564126006705226780965398347591196966111237455204158457215703080689088415753586855717005266392710906196800206866446768290471345012597824808644022109460170676330954272812636509625040844698659043694861400914893152978677033509611587614132543925293588127030584056130549396796061260308304240503166241751481124897693608244724301882067333696640490585701428601153951279552381190742194971110135930506655429388344376454804296133573772494828967076953268081337291809344225952256272212592453454240431087693710457455103188083537703414615761752049161294758241865468868794244219878800545800112849367884147821613323702530489609179005909731230661628271917349292601631953801586564538229668881466908132016450455410151943024094064988096389019538009820740107911816801770402574119031241787165970693864382299301676007631309368610127760342285090036017571342865225042270789483483284283430630099367287566481347821816025449658480096702142676841680880556149066944686795686964936452967928610608320774829666900251674627110449424695583619244218294474083436169930422580310436030864096483002724280946107562163002607789826710817335071614545714601500262594962837777259002501185495330583959097712550082275704493832116121767498786809674841223798409159413450870175846786229536985756235176341848218218846881906355379872724621731715704525492780065787882969650130054159955932500157808518712561520186208706031591252546748753912050131032117114651776694286248965182750753839591089240168078895013062712608304219877739772585477917659737809428564456030673784652686616834442429191566508442631824044882940131728696963005269493167196850419941273940831406053881458852080038400861377284498615469593644782468205634403186501820169416417814114841551186173715626750213066662654290834358043841834062354044666492943545522403210669282087394333281320437168166058447846385637362554461704235614222877356396599647646522069649243414142287808613436834663567728305838108344116341152248666910957884795625580288028930112740161203395698833613402776615135304526396101527110264266981895741530325716691410888191226640083534044574521258894916314508961463127598440404193489420842126939683417806425652294512385128105167588893510234388189724278666229702591283570135643245047208771297997609090611685792849386193519879771403476070045851185309725882584219248063680666898732600750621003872924624167800089359522455571518236992301183012412249812515513484274083060331182640302623525841731331976385862592313422675236581057757241091862227427031160236999823495560802892965814994641198046146281648324079655669845473477739939062431537447994900219949046142233809167144240804846815789755036756894211053679093709060232262249367324821405277308111221808408124125791510248983552381606420172250406109505677836071298558321011541096248171166863053504714581121513199449980941378584338679139837832990399676627258051185494022298292663538110512902987425793240391096367945433978562921586991100661813458195205500370675553140092420678278013109142263223829019269303057527141391072414563947582977236692590391869365071225933096578788105594538052487567182003361191920651217928777683934946677190199356228280258281548942793526159275062937515245951119898358460475579982570844680307941370540496176242064857460794007479629503034339675609599629396511128889036206627617908050390159869484952333266410240591516339011496431568078550719427726039607386855761152963324913217088989184949073246098844213630640248334102037956070379454869739908711164456829485186559749389930283600535275511709046501302372135378672996853739586461071273538468186842496787026086167365666194721931645055678001995244607206719357385219590413623644321276006878973649807186319205473620998300826748326594342971611922126894691453381748159115926508031337058575939535816164578293227816159445412474380967933358103661367604093781325563581665149642947506695842929886267970265090058769982485120776000304758021382477117001047092451290047229427656537921705158636915584492541961313331845364686977822991726564113193545426415383265866965047612081160380144429800460163920475169600183910510457959950281835155502659586054533229626856724393060892422427168743678316988000187271382045389223447622202936765517653023751032658917809351597132334768099522513796687616116151561969603882400986262136806640208445856948001673184368271173253953544062536024670567880401919253039945686393578807994069723057995043180083471746066770119915190244290862281149504957967199239482213462844904993877931043639980616770490525007787178652192240299639900830386453726169743223439364853078488284748023510414262639615196022637203025438544050283448357420662214606279922217085047897848085072095064976123141613734559998070860823463148884536533685714479095031584137680963198862396169148446908432237200983592790059287342150128473288392587478552067933756366170160948989744015335007773641923393936618705113193693734372479922587654388780372009629364723118372733596237397928152242822729789681538787766924205336883670700783224169503499713421957675604440439364551614881632138150497792190373724113476359143240075360270643984664274248522391626048323271752442498268640173459323429679862874757523875630947921856529613903734375066317725026631277893826104386915278777936134275783834821718967774323103161372426759491679067941778914591790252765220353093847491685244223283450286657382008720854787423438083027324742526573318805265099776761668986018393637998110008219151378139765763395269529503755018628697729459331561649422019123182819576204960823431064038500945805975639092561489860128644765679993455235092688217711438944083927411015309531307398876632305139268265629684611983223024795492274423374504745761784197809873611984641752102826924648407762447536269142839461171220331289836042996546947953739011414927259784396923807465645011689011315341781742723003841696058508777890884826392591432499735146781808010638754523032446971142231564509256491284725211814689023834841045927583080667552914395405987289651920524391736070822710508837154699113316833179072936898829014726922317397525781897321956012779944336189746158324737301728244800911796398210412920545567905564059721140214278763255606600146200698756562440792763401830016925463316713725823343904261567381434819120620129673110536879828558102315572481001746733276460370917658977799378762039206119037975089064412578478661233842512838467620211759377581250659475095516834653889855417015748123879644890625442925461903521968891988491920865636779516743187163129237327476622514486611905331154694613093530194543154488994317215755218304093021994092605343585215219166639810805294994746176962547943902317435029691625125096421749615277154662936352549865954039870212980313156533622599553902771530178734200527052838832907021883452113269054587498137533114475168596870954557085414455523768848562975902603156313981639845513677706121882858173061189150605199978095749363532773543196106343094891902424946589039446088401609624322964818889336692491957382117198967406497432291154763147520512133015227362965631497446874245144662754506477782705377739567362453395756869119693135079303644342922435061863299957325831962093182809709416932396620876911178652618027692230653385045794329551164399835339054199985238936834448629774528880523079538177461431417435110290653415796645755221022804839787449615621913748868512161510543999301405741956696821900358331852737256602781296607349870832828603201408967438356156441318396142706518344320868748477910443349257198326178491872854138555779099657659089727962507523217875629310288023768932740724133667392663541131020196460517572323607771507737978196059337331367675131977541038335690185874859482642448779167941754509010364796909164538579669127411759819859538278448149901480217078433409626113393053759231303895784149129499185357467026147340528325061064622497241628939440471602955015859738664384155470289988441332922254596776824208513436243947338297832303504853103187064171794294830387235994513990938216960115932048976916044179074055855254372281734355590115130450164217926482116547381534990918185374050396670743463408568066181101976101872640419267836543134732628899210040219176559903810951278461437529336476572539162740758588338395514443593875039645900798243821794585182897896843720660947802873305488513921628078746495051064965811070950604126887250040022660163427961926844757973476938085716785076701048481023130549799244462857514575942615293456512109149548540376597691654681571754677828655848522701619025681308688650461686520600009399090124545627221100121757129363716275526399793978012829813632461874277664448260860605974436966555891094714561569941375171212942661800273580087851964983758014951515059704308865718247970098289492776148345391935814794933365959147706415569715210924271076415784148612766799909652857479105469817014824980152840188915245000079697427473466552156590261990778497442320219453037519601475428166068296871967221588954062276948125832708483356290285744636383314672012419101268700688878304471582723030932902744925825750239117686747571174740747056600567510872698499132009848213707558337101052464165083675536391394696092102804383857057283750121039618431940212022814227878745210478340437710405332958739746924726129843663806993528179430676884310622716252204849823634982192424534634116425383587910160797344135916867278281070497390003011854823823983821589212879383487032044449180656649687499585685743092363017273822486158484951449170518692554614581396117159921827904663797255555396366301877586000262577735453077202292965310532433490466600720184456436524827840958019887094665756342867752658167077001436783659873425674699653422340488142624996818560162008590771799286250757357159462876677422151069058238230559503495686072591214915055019846878507659657739212575658977548979132369921040016375469667259355247722090337954087711526511775867832992377980821324894688399438432110608495806861500635181069645342701247750617153946814108915224244165651243450509012026205889784540071756102078938095444772270638141538068082406676529767824593768299852597351982473122530299672460052358059985861600886011337591810173533689311076530336336060688422242680881346109986815341614168038077363406617199571159716606476181524365449568444836868646779125283128371649125265589126112801186516826654172245766638073349873805931646884059320136815989198908621763337794133662836542971452693827899981793645122658116029043141732253876070955206707577866040167535471950208845069638816675428366709838547176230755869451139294194197061057205217754488086576718358765120793470884294339574620753450770852012434736306859683835327415879593700765525840899398392083328090800110583327261948023133026216468944330116755249632239392646617393625637536055205756025857415523780190849891952160901423984659306984457699354851418551097165472155278513038460660187754845982708911430231856717185653946083290761400905836307464162889904121443855186132260811469500733187262266437590202567799962368143604820232631067187358455950488339506287012023398654955012817163031998961634024879576514681074934450673225536256897881084669710911628618140004168283367181017592295160503887447495463608307007626587588087771714189063253690693208607648439912232855470988389646872819832770869344733564176245261016284138263197321462311845282076780330683891483618891910924482073515896240300535177410193409840327681235242360020507562456707746072661048672439088607230835223507665818636176841909628137592173712662888575193612384060718481581792550553253027838391391800371383695913198204384524010073876658780668929128253294753598436747816555131708608634568516912615190510310706386318713308080700446060026737639049537840958473342231073284563812201564377774843049984116303748414557052956373239383655937557658578919626191233181589663993429864008576016035392699677682630850502776737028009187170211078789693788357348621096206183913241428252801682701588950604375137508061218091291805675969508713605336383930485643611865054850547586208826072910123589242702475310934116024548002238542527353603948859629252483527407684740922044916741316487717982602993856165965503122970438911356952379995606981004140912951692427109477057352661158658675272029185282030312653944066806727371204504968508104567584800513088233826889653822078451199903060185598678841170394324294698319624965365707596019035867869703557364057813898209230913164955139587797144588635338580617151857541354141538850221930127426922926282675824653191306659810334624710745288861977391927233187931188374537521732821856224253517410937588988087600751165659258919692128702020873876713534760848511441712870640313965578365740274352242829659732564915548582970628987176924297784155753091787417004695088639023740723498635492187605815880672786339321653289763836425452554644914245910529066340782930819325464505214950218573011296688948433497039304048913244678577572424553349833531179217031249061519662525514971604232211995771846093751584067936875936083442527154973176343059081918652197882004557344279819195249594419986813724992914633434241260347569311886255445341537959500613771104553008919420247377051281465503342912015067874956423636421284772049272820508982756771692167779137467256418905081015557777807035344646882734338170187356936451728053711629219424255977287667947463050396170271402960162945773611450069416495236416272417234449883487354792222989876931401136179599612924574464631467882990779399426792332045261045092292789955355027212290373991453642360210436260681966100035648698400784418209764216705562318642779802320230089889492390574575648219672364152352646673535810573875820870066466284634674910104251776344655328939122889628101532970259152920753239947185105514607380600697191284245075983112957351690648823187467450465418114080378712485190628000351735377519671494404610013318364324204083037384946727820472800596621684337517270178807087661654506522720101667543790624385732335343922549595429795241762575436155047515349759081586728386579673700166440117256372985986243566907600471181403851461394290291418999865603559224648963658717614158701420218418464603646217230116261382241349493733464063491597578901673939958601398220363002464381037337584607117570414514419924226116937777264656541292001551383405735179783311047635308646007724462953299477244131333593216763439016909267287751144921987017586940078694693228307307576459735079334333692002433051262192294772628791365186025740821388499529505192480490483546085907238674931808463872176090490038972712533727796604523330941625901508702619249215370114256234260283271765379564689582690672215555121844364631490985113085452869405160128497219815299731841439770268038731241843047843668770792797624808271442100080610869970798360427513886825062969933655433646381255352285456657684586304939247696521851463723531063835419729847491569379755064494333234466988736351574496949154234993537348129699148536911258177230165028427527320089088103150593343294081767689755958724369578250850104778566657055769885649636618519488368881554349430031613392404474074943019343568757659170922291114155472237467377680105808622486870135610378095180119856030743821027059327695203118864390746623486138236144379541181185303439123772957801613541054042319288785560390349355947001182193364873140587098348860005191617591846889034836547081215674840387528628374951186006364475577127833475534199812264548457041835917421193684778633644054799543543502382892250030111641808303849206690274700697622562897859529636340624671025870313719829453718235506282342397879665764992980433873100715258936391819560858932395996696840074220728215195401186926174993037939159515849172343681162994760514350350101805098426037566498158489715734831633547515109527878376982615374447617658146433150730500645633234891756068437826681190715044337209380477807923753864094912039996758661183634750323508441033283799925326631861302081984755766321163449921074710233019960632017404020216918835298264013009405870524425965163637778015415856133574874641892593787833454176085992047169565269044283979300859503180156351903806338133629710690731073637655476567197785678382180520387115893043015181661203855141303053580588617023302472111909257523435145086476806386211575767592253857505083999714257534003831760339769212354931518012605605292616905355461574619882294094307224279043570222300864636627649874759341178392843916678127946226442164862895576150588898077307232852255907876527390066165266279100606505821439375337158208222066178129091535727778574150633379546935733210915880167585742987392185422971981185664135712983346136405101407310016550615278777534498764250479728164054232749667346727325068038370339123776723224310728466668469875038063339098253907307229584101647883535693018361939483961265044511501081239959893832739898483399402380599266332000241371937106026574689277898835726536182827637318154947235732705988553637152146775513322320466965520317145377734541656307502817670470463459796659082627229478708245240279730631519189641663230103530450795237115644493226998533339395558611200642880896027457059660349768696207791621900337402702172822976950804887703371276750318303619601585978069276143460646630228417285619342794552172281300150421624626374061956732492615273357283377383258841622354831659780042281387391230901171602485099671220534733335412298992147797636983367109815262901752526862549399546083345050756344152213785883850439429768436969707943567204614628124918519540685837343996799984576624466775926015659117230806457026955341844145555063488738775210381180512821486120200687525906856236875232465991743651738123226052612972527993683341345706942796621792003172345602739232276064020125115654041509575888404777862160396016275464216238504414020295959408022432182820180000590841336891448584910625292876698217448509340117932498493119974987500871575533379287002338599256500317784609634898910745941351122667444786909848651922970868767150438191224398547111243249581766215608424984500438791506046277121776029048983726822054356057197618464092273643769258932298429860414088417146654937645634299580103922846378721118104336998936612162477401701186628936070086648318938264794979199639889216725273735617233048688908256231633743842823895905881249352305321105826494883854462990551753924019643023167602006986117175485165239157083563309172004291166676801512965199385286494198264573620692516070845327046188763778002249245395230745852195990863343303320860452171501735678912651628076630822803658458962416837928734667585702418293839916033050794245786650567995298257217146320360896779532322912004546673189980382185321229156363937515435074663469060552588116518883591347693153146884665192130046965502216174228271856573819411897470583870011557817665208137230023374003980378992753541110712162620669025791195301977124092393623885429278716657310704327801683887007934509665686441911884734255984581087860717044371023933390554203651194025477020710565826823233516897293935469988209807579617500159841767011011195432821911445398738200387897725435494321062182748121371788469130991702882895757060914809775844138806771958136878117919232553447538555580584616667416500405562139919114683504971071841575542969583071088914267124376477683259361450033172976741050249483815651259808243749408898687479436081210668671387220392044186849959057720593165484817406377110501372291277336937221060665785442044991989701647170354045759810559845377844321972769367527445913502405511878551758076542878213119864976603315659197130626569463743633321095219246337557439387072440352908976041673626210273556608412182643293485443280051071029339645278371963281272881110205421495068370965750921093101427557582548067089658909358337544030650566238745282808380799110803607515926557802326026940864031555430152603461378285148121778106485624026196793470266523567966881074201934340607223814504107167085536306767335810821836752849233488394431892204446411800053594240940409776028016858351361448155782841659625378421147509517428962673890575574671290549972489961563219086181086116478225562937653961955388717575352366529016738698040266100793578334065275379959138661156779269743783902061877787202816160591017154050122541519377177329974568615383777997848084279241316201288205970015906568296791734842489162889224447772654604572233780131954609271224618528726607892713438419935770627618869595545609198692769188871905870558944394737006738604330196169075153745529835006020068442371274580760658548445188096832716390704314264863013294184694189445311984736265105058945931792879488665246490571367169036019063935026685375233629444947786905668837365455540774879479709497726535598293120807318402774307972555486601856393389280911707447975054851870045890411654341904496794640954749398666672086998167487929271548968772176343233743411519930500617892018765711474173228485560904139995509251014722719437237273468786930844611173109742243765672328783809954777390948759249996091879523630512800044919432772635608194681900975070605005899035311720411644983320646672578187565776264018133502915799584257119796424689554258990013199387756570902899102064871247223698145277818254607955270071228758011862358647661831041697623029106946389825463057733887633179996734323501355765837206961615880307594559705934218042074165390292765585895866594960397286193084281715010039389814380345259367255104716904301074348198661579444209095230530745718134747265950381840456491323386063010794678207914989341244920930742539427171488735110337662283460090616412968998238827145753254081509986909187480059258929057518446110124917081920276090970132467537901397884328442475139992537825524637296092494926775606670517046047888075259397404160564007420039763293092899740619315405234028345458474472240484609785729621883608266087303172784170273218290273800390701320179554838419007556440268602843610290993583217997037950783279699882847607875872837112595901665197849164349387546979758476330110423326904676928113009239059233454501522313188854283887158663644699781777380499911268552524151061382748170268159556702556020064746151995089810622626561104431650272022483860882991159028214022663184042776387104697590088415691629978590381141836660320173493248879148203526160928785763016693392486381823353988649807266095200546150694936225980639653432892973624814867654039133059080643691293483701094720146610188870887532559952171779778680453873563434761843772041022976987598031087431419378978383372947902988581881276659786004312168044727557295462682874467852375249685861702174240042419390325332983825704467199281386782566843645482528946621320514800502026215208799134923464396312938756292585411844298147576254894867310732400411892245537774796748455339787028643809403560375306134427636871413407474269165114407694713626480416137104659798092139156241699414810046240122498233601422140169271669861813972493265956752917236182627661357647209898837946495294399223830960771390338859843425375035389215773575532772406975420291435873309581485031960102687656601282156137187359068177333618920396689712171151562791235746057701220716562872044416580074515598747501947025750532183812588115903930410715261515762491200104101765512861648788308473608385468170056515813518576834093682746563858382318725795563873745209725361677280453589671769991975024368094345042188249986780543732268017723587109386388597025510918743304939265413276647400286130128626325255262506507178095239162280027030859124707855728387307744398047128377323919439464037287205097120509134167906727385755536053250457438636080819015636457091455225094053713691498951375884958194227525889136370183545092336291255472615967066363503825330495361617982384165734818332797305568969533651444869171680631706780819502204332100321648067508926655653383253724522995843099268390293372283955002428473010035610359047851081888354922304370260641046653507642598240397244127883355518551799623627444921786758719684422984143283041390024502707377213425347636336375643617547223985027927327003602049722632127612520526465702420988238500542537327064334794932655344367564803864750679340417703430952981285726167694970233705677726225008120195881695715378618647724934948095450369313355464348146199815631539521371339127618998253064624386031948713606078847299573651793292309878300465337229002762809118993535728914144143258957054441702303890766044572172618632600772421874547539643899820643281646586519794799401965429396227320229031170050890657107092778739694215849692765080155494095324311702967825135922400218084369638648338811123963276919059221820972291516640566464736862482784078763196876104744434968535183934301480761443548649972198349376587539074894815868934707127369697894348755380606174142581854285563817883492076673155305869196470434143989931560187887866754839376824047942073823642504357731351399892683452481711618314600001226804284585335329448275676955281700629150392043851683917971752441102260786735308831969713507528876467776330025202623345337113102534612264355229035532904249482205610445371507444579361892321098207691038326877939301699170640200882561743188139528752159118219058032803626384909950485486812670248941308151435459744825224873718436479550024627147552895944377137173131338983100165991907523604526048308834901929818686713906441774056173637869573375326714851481330825730728516949843037862339069047982552067916335188243823368711323151125141224515586781104193546300488604623343876093236862354800785471925855915830081841493294751437860274760761759475510405334874126905999997312653066340933723481027791308501292487302629148309883973801017023469105629354228942395960282755564489969796931780810316235059664092349983504785226889140804796047236727086768129435030486144829394014428813269671970208441251595674939244126260340458091714660804486497008500894948575320877339745644232280790260287463226845479463151427861232343245477578328805382065089661546365004410288847568352730628934135657140794193920723620491780778316198808269289982488814783280175276311531053149424912695587236342814371443792155494163855995957094629579207193085577758168201476720044742125570971621199478583958161703365886642240548772230813765978450915002303166302379858618034243634291938282371985602106075739335560842490469013936343771826258951734720658034496077182415167736074148014234847483344505755836840760036206358015104855831893388304427309007267622839486409052231146905710577132006481951261245607342884539802102930803845105313588322301995105969774301997305867551291711803869979785870791734725889544396224824161681592180177167185645892328726150918424283771170572238350975862566076589813955423046877165981911022738588341475048955631334677743303988975532358533732459221261447341991354261732455787130249961910115741477185006818846160609162771947845194600187822988567770941424740329437571100714476867884346082365331022987163219379204689982622753134014398672755662023416495619103434191029462014020139564072310031692669638192439418034061200180993379994941667926753480895818866687659370041331613434361129610531310269529256654818817784233658796700291956864786419157189024967135381415299198956958413620289499703979307362488790083567029640401628578613171178275632645769368536785839780441782738721698606615527421341432395844107444023394002497526577863156036341382163898284379630805653536305499899344077672376153749555576697332389388447767272526687421124503699017336572636084420655327994038019042133135133520181527318912678662268366594669754334772855652419900844177756389556647782633937349396170360261577221511168928524630956049498934873399609908247214493066541819845122098548402387575147351069733424757266550114147614082374184806609766708610334431078582098096293949107165782692921718885353609371552228073097824319041526260444206119836948444235604662000402605477499185820147942260180236277196415163599173198826849658095659071787839525353011468380711727682802757275201740468022988505907499295202299808173566689040814960078558416945185428560056346477654928730408749591007242241053313015128029520840153897464859725795814838130320356882085678387271497754473474561727560231994899970582224459066823232232831588138340092980671225981910168073916826942687120042017353473079219356737603036188192756517924065830867197276968071259636079958404722782877491928192215534934594092999991839821599438772706412651076751783672857686660326323858635569571137568302633654429921576086861965208913606406298105476365074000340866224021254251389792110075983174562940930879068309907808405011998326607999494526929080479726567495921977177743327822622567726959783360955575573848564096929871890805887667310062815884054251528177989992134124341852571057093504992452949549147055145658069295221860974182868240210871437232298731545182435499300165661252980855440428127715197046641313816303079004401870715034207520725602521211111053335447144132773841681041199773894940928583721530719258992881812549656776066510877072014121834080653964951649447553572778403230850024731748413980654607807965748957365687478541165609357267586452369753055200260347126960198152085957405988704170224462056191208392798728868045107011335689357052636378071380517344659011166274501958947170718874029428999010608444478526742814141615252542570453025427965266676423601483414214990656966933218778116379755032220333574868567782893886376219916634516380402407809925219732849541203723304091127232637714450821934000067812217866573674360424875782933938657835985972532013364761193182982032293877502856423565707984891589435762781816305809056988492349519659722232249079884015176896711577883440059407376410942255612010898495104454171427536254711467534171043008585060465944273904361545547080334637291873214505641667979797964733781099769109208537141975572673369947857482363851350638134641966737015243769039064887980963184676257150937058621294928164923156719854899388271281574602713697922173886274635768576773331018816924293777866919863804126884404306394391647657378904152587730437259604261851065222856370528915346021455624657346986710974225636502450975747836369736765717373724831066494244920086118195196602214873735015449115416828548445205487183185545027928255477477625653671554667516471907370881585625808921052355344869515421792999217284879409180262204980943766162591438215075201414253205684958912440650842356435844744401886864101311973957064183605049756863060678835986879022096743118982412229596752781929643219655308879323652016148757730226989052915954478117309412103825575999474251307762483619482561098920677162476317158498047867186296844591468266458204581604945875660764195660122427948789460116469222210031722091493762746178058600699249667427784396967097976767029232040044040802371868765690495274301793234953246126331864432959055730428953077960165718990456549374866821219713064229497966535088030699011260422046026539339189130392764259631679673632473354032737034484994097970502954471584553967834679696789356210982517321896063677873169763234423566314562173622214701936089294408969386401592421889204593639107055765229398269852009450209338721439612724445275504550510341535481713625895214666943907759671901973010018974111897560755680376926996834721634967409819768000143248391113760417597108091121645955466450831440068722918650354549709464758363393054945575213553369880187406018896293158096699776180887716153905342272603898871475382474576242373666808481863748629636018779602008473562555990815252603273778207411597962145121151951713029365672222577125490669005551537231683294108272108660541452243036394011040810435437997262329458971961127182181859232355232297953315897472432437793214276220921481366397708113659852552517696206336559559282362929052631258675835135338252511445808936056768623839513239108971960626100516748255391410671376048673288358671671090352052863101382352148263154932807118638711308145029984632162689690457995531358281656918015237575335238131377994046184158197169625246408499903809952394208581625810808493078664659005832284129016164042850460836141101822358068892985060881044410993979720171957398713034394744389906359529410248105761933241538536942315984160679822529590527697266461028662778377089259723809063818741111904877272881841751433368496211965758159775067198148007218082158651461932336488539192678437830999969019956338212120090622318781005581100283079758891866060914213292838137213758465190327672117877451051050537487981211124368423895192946183379027622506403162410363817951017976585885243075608867928274812712341441327061473785304014509659740516934338196816108197659163276994570130855490011155537271180472138831946814359922030137153672043659773487899254183975186827851235854827285383172349718875429386722585239551200125719956299482418579606281851516968492219868740339553517784407118246399197964788994748117514560636307692257668442220410208676087324883173668351398151121826115778458936167048152248129330325236772707174506692984270788715562233977137140317203395671080424936052954966750818452632252300613082783123058189256796275661112151465282710845950200624803806008892347149732597395360756154136313270873653882051156317139819113903601727079273603318933634865074581249601509069359412536470042462057064672923099758078076298484105489833711159076929701365531904825413998717917574224020319925140045769546369079478817211319555518999834508566556371729026040508770692840793744039176202427933420436646964920602808401711708259293468276969470182310463859861980250868366861851476779083792439678230032009600852687316276704535514862260120861835945672045632925416809187293958520687350109586380499821915313951173583714617176223708628338630847054368721185673577804728818727708819335064939828659582358569189028128022274741694321841354609728925049559222582633465494597572980751252841061247346255555983260204197437140651062253002781297142318787158570492352069125118593514732715246630396474436153831278627980840049632667032366524828817722585036894618837315624220584866013597523230629126838895517020966598449711220506023526845749797350938066902261622304469011327839761720248037567822576104080588100471083054430962199171317976750691338990313852709282048066966421067449586032640727063899668793782702921638209519365803905973732667400523166957446717122877559330303903395669682314765802976814177953247786558887920841653915029424034096626442033643278860967753386221866292230016069137784258302475432470866964127559980173037622796250676486626054080798269227335955797030435558855162745195910854560821332233381077920580491343014260035781555159676306363679107362488533777061736688284390217469731365782747219256075704900023704403747004011895861429460833772538975928376630695823870949705243495802626715612395189342441993529770435497405245653062945445919559969364181787804169283067722206752265490487060744925108774134013819810824865550591645590729474400295383741986620756714514636456609619834403118113028027910710690359517719169647456618131829846759989897355210471896681386523266639509182912118968897723603618137434978629670328376521266737461452764560830301922110411456375723790314675411911840346738502928167735188150964211748267124765047709075262251617778245973726524914452600925653750046365773948639862524922030788653468870447576309437848628947666191517711874693292854689899167220422711315940609579954447125767909066534528645211739398659463042686710760209487057748484357535484626429476127501249463094275975426424746763669742093556503026751878972976482966483510191646098323365955828920434876576699899738141247674513311468524450120291190120716780888999653715655782431937329472804387311150841084615675776218425335186239759340238344681857773321631554589352900563083961095808323019952384237495864251902238237524388942986333454037329097021540160559969639993504247202400054819089051008656790238733602263540615887511197676169452686972198257291761964139434658541845717112817277651628764195111744102211398521663751462037468111754239790386800571202255563983958436526722641526011598284709105502477079411027704384907746913743712740522517801642889696158900622584828168426713018122356252123481730684259637736471951866780979019716774106023065567521915425163228177216028667098405839904395320590292846921208945601034022870952865616247733601873898971119956736997176184511120524825522336857881677051133865125675561022038020219343384352264403766852063152776786944848179237122442121262570585466500057590174084122661787218863711263053136231129362282177648620929997021115328758372979391450025714306848937541754467898567456561736023460066282392729424521025075264186852307478308797606627995538728110143526507775576790274440350853605531901795391153779869984087567688514166981522489152554930560338153068338029796822107974400436283339943212801753150549306642861213117638101942566926824599155282818398007592503137651099182542227079983018085486981130853919099294528346426015428894938703064037636005548981723971447863560646771790178462397326081554314019327625756986557012445448072485017640772097965848414855267829563817362431508107339176535100696966427125686945697458226526797009428562625480628439108972952642493641166327131601834441499049647280477341994033528836982199558827414053030714710923951634591416551217006970200506495306415189637884660138410063967966900574435942445364748055810982968034162224563854760918520823118587869951399430912956554923723835772062214299793977968298188589171586250463092174326985839490723354393452811671558913468367335029501646783922156606422922879886730596299400915154707755934212097960271505074068884191027511473524144552635062087341016316192701097574522048804004981059457453149643206558337038451247316845789183468118246496820775150212452432808710800067367682981635554694064732385576027378249530935157024238417303228734551449086205092612976822964004258447741387956554238558997700857071595644717496186586214160684566867210143017588634624192525410319984519592140621610444719271405308261119123780085444955030404181601075244114212707116774974807227525077517670580614121612391403843827486734732941638659072988023391918522797547582024375714750348350539277955106346835284394775357532212546037415803913083480522468057362601906413172449588571285201889663907184476588245494928032326388845443293692568932601149992695591726402853443950539771282954426779604792620717943966403056227982771420007095045869121379544743737895507654381500030490981202753952144430576285219070263345419618665306356769189739646590193379468791914360010476012653739140501029977198527927129844109082482642859140894143433833860504925675996746040668568158875705655547802126378643679823524849895302159325566025406884677180567808139598835457058589664234722364592124710797966087959230066142488384342585564662787954068959013442002076368401502193160462194166150257954349556772774562999399761919152796185228873743663496357675228084595752624838659500457455874222870424515919723422848380770496828095366905058531986162005790622845617563942297330174475428009271277881355217491069907838277958288255652920406952758018818850095591828027708699061008791761456865999815211766642283103586476486040043454433282654712769166028434110745837600979035724750088030390103646451263325070570988541136562652510511941949956342744325593862431917215623041101725080807411825361384940810917357960852732580455912144200231103155168489452620245884106583674924698733796233483360900752758238321368839699941114350799031551778232734094043580173905118561548513218935517825685615609576796935949082390826288607545777368347974145891841165413910665128431669021699272025979852904041210236831353665911743756561100913488894740390902370639639530699598825149091487389686101026694662266851749894105934811233152414071792057977246805362902066070281551748334064494042046759738192903445756615878066978788322538084991721435874837798557282885641425400119667362297846047987438084298018310652498661597447266342048791479354333055219911229636896011659388339575811325291694479526895266398461589459409801826698021985502865173719418604530123064109010228107960685866894966000295981724794445665860007300822888382493510457787847333897511110990745658790108940708844388147169359336006930911119174933738883506414622879714382960140331092402743585342737848317901204845597408281874671668228434883437645699052950722602581435973703409951792214419347269527532686697742088917894387626050388342603056743517879008191104126799789076291136979492360473836558231755293618456854124489810551133709538753117635828059757949205639588651920398443047360499998163996471834661746102987101778977057468875687528824463141091965110970189484837710371489238425195983110783757418679538117634268973524417166041045032765195253951974998728487953038904991839367297718677755984234287799257932817678540838969246629993666577297219726398426772814903443388135429716514335036736553172275335280590406972491652597309500735108469301865044120696291449847694694577205660746520925309006071459578134002411945476901884342944574999621041520884547688777335465633290373595134355885870330597859095122361147815309442721326738124776209855675404924967708132134347356812413258798018854240797150273266633988952002673202066785032014629892708805159897144785635891344657510826489703047971454478707804298347720974082898653559442163797425485893293471044523620196502286538007428837654485912583052110628099898960939956972965553134427201886592482941576510149252638348196674977353313558305818907114355113659047708925580139320126892343305323756680611523464144416437962292065655973608837192871471844631927583466518462010556387806171445990953338781065506417751702087836687634023372080467326510541258562155268544470694552457189413637620929368156057706959392350150263520400761837388524740993364090407143494513587055566483778293137450556279906519627064046764529585862096466792584415920530577306177058774090129531892856760193421194114039098293186819985667360856727979652323251725655045824124618227651169914415489946180658572378850204941973366925034569281946018684582311695284921425576189708056207543404635449594952753011942344074703563736342988807661186343891004054921462805985624375443967338216918907679483733604796805015295656930957036248213146593406029389637450700008702743036965497402921215547252503804610169593667371687368697637516674394333172329237844588309276253837990730568976415130289411328592704490788689206857318260271503873225847607112029838735939952724903416959055053296183687196191335606729350883394091190353618323448946260562872849348346763823409389354460467495097482535299634780480901484286680768914136460414593619447333253160587546915566747970360984522362560931874107965441039138796678873518584490260530449494854936391262254748025184307417210325077070877282840751414517024342397716374304580395114558438529389612808375858111051509757904790064275338285217485995156396617959816344465472745903261394397680868992611756510454559617825787974281330831056454573114114188088406255859809578059935746942579698097018660644138127822052892612588837569479649271666525951161041123004200065053203800910908273035008877414165924974995710423747660323264815665993525537260068947936429241920819665997861822603559377588872215911293345918252890817173994208604349370221414989704382655450751853577065358555209701218583946469438448603842368595306238968590266196811600042538950677656460250240257492112002783782317405746945950961212488210895626151168081702274297067180468355220454209406228535892288501584356200720500643128714811912435914748008589571222143867908985126817717381113746766625208661542556665019581087489092750876184635106978209042238936716465781666370191288440081042343696114899086871178226151405255582565775054877414938917218600462563088526959859613794978364253071349636237179659303138979705500782760817652178460080719792219450773981247160548608060523781716550387678411027655305187784356961332956775923271529912607791183749029826450673902295110025009062872963540219064566170198603553093623078126067646257240640381956292730834715686940621072624206872091459879415715496022325008627407743749799914032368547334441641310379501193129752245106172055422377726129376086974905642997550827380359665819864086359047402011073484495477533115532279111310339392094212710154158561041709056838816564398510167109195184518094798874993806941824947339215107430984436078582592356730942523502325550406052226284444673987227530981656088874069118290245831554805844195262460336054020242122391534322662185937785654375222207379983820622032603625322611451537486917241560802171088133497934281805557381987874127210187471468924966175315806953281524514043270010900124990372204718157953323847139752548241521706907364291514472468032818146851183069387299082167229150140017427650444585970916932330700729803002291325408114794286687808415485759702838813619794898108289033658507303351408452016913958415762470755759011547849466198131372763456804005633654503064284516727386028507632545248593032721938949466333234880707906364575571869794517937352577711578598641267546838649172043670582996421372231421574089229057114727276907542242848018984272425606927121328856593340840251422184333343292412952036878517602890741523637793062543850882618346803896403837233832881468821970272903334940485194178971258982762123546879703312500754862629886946821421781011523784824719514801153543889938782974878973675716053738824661818711468057737300817371346068630491833734289547770563878286204939533019758439586251342374390728346163621470306296396961453707033526910551807693937404635970457735730774228371241904374577782731761796544523865095771742134122693523182700726199519196015430301292349508414655962290269707972636332631032887214827708227743189039175447594169868105977945921178848281982382385006838022430152566650738942366387028309935928811853430071728366243843638866461031367521314341385987185898408165837481416989327379887523775430573429234981499515238613011124280768567801603488007033004286464065853627103321569816412316022113488415843133780555418633157428535874899129446228212819355230439965593963903001388434198112593996193215104116850954696134599384533036851686399902739153654560763655233964538686009001865937169904332651523351159794105025094931842751111276687299819762328961769407604380588182620300851756023556701909383024508644528870983379077419066989063087371459473006997207681320267962078309697244242762891806652571320646786213813039222665820352246818892352071337622433503085979744097427573310578119706816271459545392017987455957836647788876968932702851345922028537187198776549070717735175734953034914257321251475939417217106143840670357070879777442644038196552204730116047369250563900210997967052171959736498679986441452998570374162306341845276289979322677638006724668668353926364005965947551453587173925704490831479488086439232921658354266352235105751732250562265455127442317994224849940496280911735673346478110300848392818243058632805975334587212837384406490538809503264014303960699667988259605427105795808337649625804876782800519209583563547848199391623956975831584369383692995516530680408416070022544346534456323468366915233174796072922324397882240280737473795691796246143991748577335509139924198947017315903805418013237823448407901913064470873818790652837940598896697063480737486375253049175387348709904094248491916562634297138563434071930039533728705199596160248904174741658237876127589695870275028062613970996339936127436414997493821138781859009451971744160083340781095977469855566815870542484833008767065208684905505948973583076371183421170063959654529787755272831153140692695010190792756417330869412156246045417069002644177245804406460575456272590915945402586676698877830210977064442403224944513287705511451815978324912645511455777670279872153229674561086160951288174932375356040953712541639521973727056900169509837550257160029494644270186030590647861592781509665955064851492227753627822321074649380494735979984627763743420192388744350803736229882087790322279366260948520202268184464081205524851144497342664445588693442966329800135125991406341880179561393384852017447779671027175831935401612568757295906250105101775397364553903552695761389834369939274805945332900357162533276001999266354901835575445494132889356603937300838740674291263274430784702089278548209984577510229043355063889402259650744615597950181449033708527104162497517040331187680688236694983720976034409998983894502339461169454609759723006867067249526108255150387713708616154797274368717458319761017505882976649117954173067213959694825384501509183124168190033078989299638225265680283446849794420448261202188853127633784299057102933213731263757696404952131054743315212947591616993921279207390021323676812381604263333773851427808481866179242282002149220375314885588484744890990376216763832775046533114531998194601453388428662638542933359527310558255397001240025073468695307420874374047317277503478283040769511277014855908490801847631636293151347506238131336168022892751835193717421862063287040804587440530666828711277646273268217287826418686710920216884215378668125840140418862629868069423129582772280212981759808028396648782870680493576171688390118102297225855640290437173697312794665986545297402017384199103128269844249727032643953926050180352070666392737572178568608323048136179224780747453588668997769705638485380472585163187866488119286108456170703818049948543974506544930609623268482914436424946070907759449794817917895061380827559405004071536335615527552447883760088922737541360831947341474022058897666777943398819941647892361208439282041360023063122137271125679366290496928392145277215256078594649547760334337383474192496164012987810716180878496895800248976963956517096092536643944186967088234207483358761657548090308067289488592020780622954449069050206326529369983078235235745481786937738238470128690913809809730557216252019912951557348046169509254673919092091551410777373868186285714382393382720759910081775259134548490205266936559036315011231888326607088063596340252594041235222917933485799068940170644890980506531590226295994288204642243334692945529485704949543300659148865464055878599903462022334483280911169045083364581772486386520899187512522817246201809410144817990603531704688506471582702311821439368167842741487392823566891797290530032058545281586384052811831756273632431519081389837113623301418735933603106795414782688626932815440135682685209831853720389763158527343785914679596953732721156910708254756565335170678343142389098895212076289258422230978072255195220957257363713150319546929817089184139780884096878791435050891148130191283311794969470370995364106031987739601248861422748588905877900509464577836992056144539512704771122213326609140092977251376416928494382249888716410954910920275125554962790728167870845345496925092409718177203324175977431039383964378668619301844000932793926720390338598109558664612639188903167915204931948157673114112677257185108503532371963534647200873932029634679315002726267576386091075128236455100303858325517957482865719933645543308282879802400037806688142383867568740814659303392828510329063292300846647276004113678059070146369130286288572839673989150444958041525607562033939282595129137584384898750333536511251154152641254119684517276041373881474625359553809624976065258404734314476063088190138423264828900153118064129935132401260517395065310073655059788181970903646996865582039369816188471619734376488831969001515233338532990598432101478950179704124258662615810639916315716835404814474791214721180154911684233892115509007732445941055886355343070927603243019834588739848968835385175062092274442720778281721324751728982211809323118657357857975919933871082893361120827529012789028494855591135567493541401627685618010578664972827412910156857152282983680992484202149484827502547554871882252779394528114445559281691961815490974562771474575480303357541071048414369748400248788788823513890167688310584796878538753500161111441878524038771259004031278996077927605350595000217214676531720611193769753839040720657190933259237330614175099060299462751266172543412767194164160956743653556685412452721420598671600039381581150498440859236749231812804477941279747621951795130970237921704138082049431152325108198959968341708636089942055697920692074972378053800574748496303692116518929513723533796757498451019524759358945766437427620685008392877442837347884427803069581289264514998557299861150005546782834460679030747559720718595344655049453042289923767977894508904514026477405012947959421393157939666646226019283106465290764430482054070886041634353461100948675490394708412222157972338682067507868712300897338278773992509274614635780464045863400376406258517602613070119925430586462968235653383384671642728876861239169716896921170149360849766592740989646868056111194799296738797015884366161636038820970891777822609296809211436509066395503272048550104654775397007972197831324659977300268310488642717130950337881096173034583324609494495424861652866029781304288861022379815679734409788009580530233919685646376695460926879440416237256759995365716389515293290779238411557392764228496759761920921617672132122607212483080916323793797703120737296664487836353830953175215406371254259608842469104873598432544953101251505990496420341195893911309267885048951355448715750821100924523682516227723228933146520595279217075474989276619078258071558968585208228521619658906164324223536157164766322970914785491985163859190237382143309462361626522965332628011348137042764793934339105430084420545602246118547936841797335886053242819482579900532468118484479799481667922122689204400249814039751501261391451584818003342366317326585726119833076504097058977403212302527545633008022240470119910835435228888073403139369440641734856784592525107415129800735729353233468326414688846521509541332037617918095017037396426559180419986367847155921105016488222991984067506140933140135155724788308505548468309193055895629063009791736432305178446700298192384376480787000462978078514119728664571500460685336636461219194820639672942509711199502083563769955660467901950928941381490927991274957219524554939710685700063188032731406510131870946818813101306290866592290989163266020405612039894255686170016433787208816531485399511497618676977248535581459099608802661711330518781390177748089625380238890014566188832599435727364612620559145750742163277562060278837237044738170567129100211515729563611057120374527912778561192660913328513332125653128202159044461947792345657621893855836355330947458658313697608062568237772990995334382156360686879986093324006296273251538032807412161752244029988948961253094345356572057746817997738846724013389128461067397128822985609808866225023787559946021499922313670566981342993366238406930928174784919533074504961351683661649945496638902885499743398641736138113748595300638938037030476572624579883253178203348628076549676724800872057942960727082887060407666238444857119676089815978980277506913977507609512297517845744597499612603901219340914897069155205519072886101488084436065526612528762521799100795171536899108137553048701855077257243001870182639960905002467138220675386956187941318620536448501512316277605102454120974834344491302502435850671158476094593511225922757270862496114491472602733837652062378670380051534753458383878792136743830710114376614455667012213834636358687147366340846772737068202212233232767694292449113580358031894439176770699323672584023457270224060711644624542058020357106007226285024292418833312687662183335273236671641966004668876947357595873063486758345487923861291607893570842359186035926653264874022834618203450873667058536496835270467913680553354148387786126308547212604395243973197515478844050629228029968293643530343799529737870852635949660482052668606477975489654659408793150009143485235266394083584174970031122269015662981974008134879988886019605644680600430147804523643605047630116483686304584952786503883211970140848004266149966699970104603999215461898817839738688245960220424113462745413679291362797290671356411950645736161204989227690843626882968126360246861610865257771179259034165581921056303325751537034739475959618685347030826348203254399551522226389084396099007806287352328046165642514143506943899785168804855673194589776986374371208117862210956197657501053277146313051312227643307666572802589072227347278373640153144156722416630005410222692730705331390643116574547193038204726753649236598047506630936000444097797733715327839191027785767695389873671676035698840427307167106586976462573011175971538010260350649075229642829968330760439472450506442067599796724342871937006347320615543916596968484334987714528916552657410599048761724332367663581434814624311413628115164172126777433259554988678294679330830591624174014572801334609212171046169036380968974179719809333311309322931750986349916863486645492977954517235110511225782023316014718494971210175760215494893372984041421244202953101464718647556616728245599295179638406529102380210804089262351476302756137459687834329994369347429686734306736748417381157067865485947707886634120282084396287623106475789195344338331230215830255346946444037337800095207619225572800096576780315104544493434024349352226121620015952342325761982343680812573484332352675686748607249897761902925512470648371606568559732115931159498989270497864108363973750318486046402139257205090802074892339063064893985919850466565206193817414713114502247586252483490316208880508966956406731669180240844534806766926203034135421451790594904892407787180630265733099088793131031677981625907402075399551572585803332386162981391746689667528763327538151392168414111886286262257477625005740277024778981706513311481867841159565983917554355991686679829035299761329096753929531278171207276452139789245731552151923548875521203105136071851348524716197835072618186359926733028757300300564816270035006773454877602330750392630048051017494010001334269381247515562186315944239760815965425923368494483102903747513051000448991896911662651478925347735603469555978767404498280684012101044016201533809176230616066536343926969967544488010398656238594603181738934008658890319526790363215921375818701030136568012697493803216692430431881459405806510853485115060333816629932030796603395585405283149525073041383594919416850904405805607546511677341206834845579044028939102122541268836753476120459732098535865460354456510396088467922671067001407686875278016954082760295170034593727515159381471907391191919823796391293663931957464856781439900536984261870853242587073061371047498931062191814690163887722372961432010947030712207001668608366125559169941692555141964839864476547537379250462901062442593037813724553739445797354989072160996704807442858506918703497844165493653427845481239790894108722273612922605714897344085713760103804377966756505948856566753491979430109186598772986371653535315569099090585385261934812878815108238495276114340785176922470788114135265328897153840448338389531577535514290215796445962300940512455517069225851306339515729087576082431132430308055678245723043830044448813153903551262101484060656810865932973500213291383888177469986266223100895183895758934025366509793285958606205550838432757426896151376995880241104985814770882020653595061200839252363467116819108555001098889000040645512588037897633556870237258695883933647528949673213957439855273469870291234699958523279538639901570723271296341998066495600770544636667858941750107261019750141250885772896630044540849118264171785858388006476958956632162788485506054231337325604968132246895291533119727549312128811652755797606455212893170929668332628451254858297781502877362434877635034797525855458953201941115554870257290065261859181474529292555012399775589590054423257076102809919113794885307945259174159804432460505407687428666002872465707951266228667732588927171545341661871313985816289129616610819479540997557543393705473166437000085150322314256361105898826704847917491639187298107922716768609133003534521401200972626182175572543189435224852767013111363406210744129558519415531142159214301135777873793179746236549242030565110975944122160926807619138420959882590013865228975067477099558054009003559268220931303447789501530887230722523226835772400885523335087004192096176399431529692644719873130525092995763113963385491004956690268757494854881781829814614774783517383774387530088814339102506033297920424125318315013960625969496728921089910374188162468743703958915910867153489332781646963130885122872203232336134700793333675473366988901459008770523426914575663912350217378274622684191999777514834927556037570855394632343110367689903135557588186505160508589113455058401046083868419426309549404725684052983771682100701124466219752291578142590741597778851607037298520200962617713156338634889666432845909764204543659874247274286177196584128884434159542271075214010530482169553213261653950368639639248631654114588265341477111420552559651621475451653451884173872929976368196071858501746145439833560641369014244449839897364629347348734163607966689040982472034276022837534917803308017781809218481599279092374202964580632595378262095421152530707390285331312149474776774543185207388731954252143794978345019124358682450023362812297586206133155561044953289445433572112999552983263316673801068569445517781774049016380021027060031198623271131340536427246258805833288273141788896939358039083664224077103177355233505667949236597426015909540618589793037436904293350573913682243516458581429114874393896911895704569302840125188519703536387448228080465862320304504963489871003362364399174229108074087673138988547364711391463313185648824300926451414895373962915679005416156438496167728387757452063228704669899109476954498927787660658117127185753602452020131533994521264349016806896001352910613230690179431500197696646658454102567892054785682128371625755309850530485712611178076041769130021812113989891081707208217576074294929241471024783519588152859086941531190833436723668798490831410575120021183336719519009800035380902656893367001786612512720229594639655841642695919399147948570101011911925087424616449791981239079845746947017874460629959894192940093169816043244491190870796287914917746616999891637624266828958317961017131015518578296706542499937102987898939266700322532217170859027871643754994886510661927150689740923626351274569794895136437205774150391596274040091571449363499665502501560336926162552481847855613594530258082517658728652443021307286465442328052475628625069880391722807126879939659337531356066266755491656321134996408350199465914033144810560382264062861523081900410399447934616133890752121874957869396401272116891022594159537364050925017918059358986638223390008343374516746199329616266531615018031026939438434288227232407953891980044839057344472626822602881715853694981997611926569414801627460928463285913387475033265767948117274754991213599650228723698701702248936624107966041898249632495927181197968210247244560892745039107169819431825457914206637249693368372244192463566395219151335814140325606012346628886656305530925667369886093727717168561785933963529849138450979368181906537425902269022201236242764886486408473401011312487313553785878924270995527779516041766301132580998730813021670608948149921285280803579972691846002776159383629527548333905512759351433308294637471824227610297390295591444550132523200651145088216636286538620739250081406896207298147463715434695672425707694515247058880974104056008203626027403611487417589265726878638051548182972980462464461577541903998243278581781078402955929021422335998925238100776475668266388410763168933459664344352228723127951580413122040348174929182324965560292198932296515408072903605059503221560926147895034730401399392246918891918585670953189524024274870441685248579352399523275786787448919865934499594326591837437951991582377468052231309873413620405908748782208633925139591982392332233560243144283253664574689857752550979777302988622000726022501664659635994899277218490467769813887414176442676823951096148965087351118748398214716819270297809619638212587270763883858337650769282918212178288865277390563152770450429079697042232357090700859221373464878332983325370111205656819588657215202117651698868547608416497916060766550506701992310923005600147482910247817626149540718599923078694772676425700460809374986688952727218932831772337868026308759277107574396419842142532838126693113809739625472045444185804012317647669586835348741732877146417044643022361508621704278397329771182884109937567009936322231295239644922049708000177146238180250172484415892004406037935565827901748616985299823040223050646421433971955863793874282208989720484908026712155418491878819140835413728243549180721649843341143515544312142016001496745819712286564186272702530741882623533031183252548489838139165144318809607855492025665924465268130589025567743483344224176151732397980120625642933505475477310908125551275280638636216853944326954562022951077338492993104626989028168544352911401070404002068111214527799483650135123937198333429052279611023206729216466394137505671218405598112432153482040755441765363449397201623940657322624846215342103342020382904685386770178990980829388249528562479968901045463494846287064924084015395291611658010138970846315787619729406533300812688228246204126831905040082675116202731941536178702314261052519517357786521772219823969609795598887898894136080699359769411647297178713471498777540970222694303947054756160090496930898608141992277394772884614812902857691679593761812041615625735730592397204953321162472849915385046421964293306167660534308838743288143408885941870339648855323469172674387994189019839731914890662567666183662477626387136744623415187442893475064081787523973825523598751722520412267217177597952364955055187606438285235463158145263604362517174654818019553580895783906728481930975142834634631902672151694600687722465025676318284193420199868547286629713255432913825921167635610650980527446966215183160209768988386679662781984468160707240435904589251031369949213411413738504218165033256593241098912924994369052889888184169400581786846214719121308680015054073089343051336808427875933026762309751827457615242387997664871598717816834999200530376108280210504453606815034465535526816614145996079634560037617125901286281331554177555430486921796385636336269870691166684733780379270423840400665347504813737266613885972213481057922643446438027335481336139386868230303724031972134959653211592430040327794366456754047791032844528645480541765103435668976804521692029175077971453016640513816610525910819768976061507669651729599734620643500135057425286014639420555167871128444666677183805026443939474998894558260189528806943857963746923439288715153598128666287772764454253584312786125987256065540469231111423149193368299077778035427459925138423401255873976296086157944948071919974485148411505874827607888606714125804269543756833119452697864477962162227507025575416516212487498909065085410911209625960137668985439955278271277116672468377467205760391008952810849184585532081638394697223419372336572183140397504120651697968214433252067167344897702587816377622019599713758602385001676743854575785094813220404790037837901992885302748463642606674838061995649515924446721345862479553136078522283238785082612132950048575543045474889053935952891045561233940228519114598911501144300686273548371448622981398847387553488040280023479040719048721073845109964431905015585476832862984383724680280159295620259674507813947946544731009703252090268506286313080183093985931234036191549057752318373857237195844585854926093645992658404595888020280390843434963697361786183882306678313469800429148735522843765145142852343708410745868733948585032220467045840409141844983807246492147127985386632126712429343580623925860722384514023627048778293230669215608425770188233379526143992797826561736112455138088827459788895407808801340644756279223775526189264912612346923634448601066664712775796617410266130051968598648460287761140606174123018070355858900354221722198169035404380827656445433349465928864220159626896230868379609848008081202330537656723403438161870688757177605269292636044650240101233208435194672570460738406235160353028974926664083224417465012684301814146047521787395377576240975114699665976889487073305262257807676693271950469191993264624968831896939692593060036131608246641036963314136060188508792105707675635379857485514717817924192679206355485835492315063434978004358071565589726704688070717449374498708933335792728876569012438095210191802632023840080927560354639136004753352688284311272836490138388357210315975172157102626841871165334747698220595556249403278097976408163182064924604082868641653941443156949424551348067673059530547499898563341104601098659280928303724878871997843452625831654673597225975788196879071871490510299444549810193119463822033904723544210453521220433939768696812342580970323329221329506697525571781711342637554750190327598428862489409322562363930246462132096441571095971919417512851019198281886468417215138149867203403434030128030156152550603189635954833752644419026321670342575356422380204636451682787220671347928165297364228183043861266687776708539324902251151097065140100356141064842031509680127286945486420015663520771028749252503193863712625865680546418246391457264604321072774760274078049700657404321267583814123500580979663312911917232380929752529864056748228575057638748406119984898759962020425207158218965042833590740312959041020867860178461359442271175564742546562272369600677776039887200215011410829098592390048116655746953614385526166000270543129676914209451036207706999565396063325823995353319868984877789063593758602834770059905855056522527655681278731474031486890532174466801388251190056177225700013968596899730918345003113598793095344139052490343287138934890926853943467884607352154121329734426617717965905068567087717729544633272915831573583470888891499830307663138392348698503112230444324484092928291410466902733893182920865435876740541544391312166146094762241854536394578145994822245904009238065227599918487118577801326898787134387912978725389191173062666608368500457789039158220726582128706588672647643244224712314932114611581693057908470893791303013197536646364218157674658769301650072613066214856632060282117483247622538883977642650099136387417427224866932826767463798100434209491291994135289817654301446584713462950664699038301270402580286598315117775933647358886781775010043547520741052161973226802358674762246105273907335133780051412977773636494665633854362670816209136456716572412349222702242135533128363103104518192020956305837230288916899156389672948726452704001760428617829393349308782092546799886690150527718878170119572429110273916406674288916640968003519528587555557979429204077673807851229257007504091821317755867732539910417440172470916138161692751127173670854216087310206314732943466376953442293529470707436057974914241562878556296147833303730375848320678829236893083108338763734343373996304074070007063183292603446734490227089416150874539293393347851749176912439044804933218370718239451510999799977109333949017703704357961867527350075140405608854420686606204701562671891000006089556839403221536850551616946561288067858472591265406223390978922384950631168224600986697590552428902948921098221565762027848010302041625775959543124422857652934438061096556859009816306780741541802532520048380395629819913208404441455318125345310568632531115130504571484042389930266917775756457382775323301932537559919188500536678265051877784496513555956389394859847091661700875131729582636727531323041573204819672664949374375163054501722638800102589258857591801050861954204307442982525303294521373891780395739314833665600163493366050665919519131922629357146442777377834862038563865890062348331734145975167620453018602830029484324302329590464789528394071879030487392911384316765919124636296712035093750310705597810427543899429424020675213853586843032886890455020043085632545097151278502072293049011684690711701648130580943147225986509402041341374985484963509742907718861182394477059759813445528783680404602491253726242640381922286105641575480037025763501620786613038463808048094926071075340420232593351472976864774352904670778675118257040709152219568122943488312273148750529694484186602283657524115637517769058944541713389827989643061752354556542975225935215587710315056509392932880989387501836985147448830146827989067085056542698892893279212491914427615989482372218825882496990537881476300938647240163787980610171254349718811619018254365048125586845412015578555411175963995911164812312511094846350210777511918568399580326133513514043817659218457334888504285129221208561697135218614637116198960809944124819605101794315278088474309050753939525367949617632614983607822773939116146226261915718631741140800862150018482653661277152976349325344404916806377935802901248519032579299288865061594903711998950217257247795455540968146159578435598204543460696169001228890515573705494092368502945915049408364287632431751405630543216551870445160540932743833404827356626857048881959995746744178374493618348930090960047628192729313401857136529308648665142923039328968759789353591537797025040085653555558014807170931683494934134627876588778845055612933231735713330604240483186183467190358187861130389650003513682054546459925493800692173806511933257267173723411352491269800669586955008714030764021599780764849074326820406577666795215627432346477778561612948934516405458753668401791507570086784841663477830882621651609136890708796989707333259109300626641693192612116673846913510806157565548657309156740161365496616092180651417137927987666352007777378769017148019489558749133644375349111263364646723880669317568587600767430459673248031816678826551413225639475155094739858943428644254304317153101674680396677174063642265497876975934995312754970461999462767944991258565346880692111341302821638497547220523268937973495414080914470150893833762976981513211456944579798163580653243461332793435927366302828112419688698627952507538065521482207564458044890385366000932671225529232841311729646833764014417645801706746816344952561059450287664043606329258657931318612716253203837753511252498955192143430294190654624212712226721606662121154084322476942350706049220487478766425451183990972142564935705290371055092855686116731892469654173801186216559281372663507992892727002656032941100502924101905059191303565642528119480249368042201683586049435247055637985845038032713387270235865052020654626017984436492446141027707712355516784922143782427340842353817940099710162207292636493373744246895597654367513386251293015115082983374637036813195211561583583188145788943753300399772995957482610762186648558395998886731790286058364426124953120980532949007280935645076130201672537924743536849796016535018269071242908105829039090557533205754475069721937621922308585397771322809014454736989049988152071905262557752055543871483068936261821577139066518443426735760616889983086888425065351990963917479732964481518211037428880834051872969507205735835850899127982091396438012580683457536460989858117116007870476827700745672852412399895719576514769934601837739021586644981000709366595691702856818727987436974677423495972697980955755075006735303487351949829920953564193385994654554407987278143902872847574469723766595679726885177542015927563596443112834585891366138538870170722672469157754951461150026047499076875980644794281844154680442228068696384276699997122040048193131169151726301882985943059784835952347236395356640840397499318960859564010694451821648061100195295168235258331410188134613150084196275182428237656235213295654400527565190142071186257065391011266254749551117539312895265848369581965749645639207904056282842549941364640430433622767948020593017833204222548980973049590686850057234651919087939776623890574781517331570910518094860002496575378039659675698611865465160103475599657365419179498219560596964487252949693966426142111358448926436160167762625359889958367073067663097777902171789575721584040472485041794763088589810133664017198352749664119887868684763438755030072352580990564731091264378371002199726280124782018490086118537896937595870803135251253652183907462841712626889452806036108662716354558191698418105952256567730755613944181355059700421137867974098781959352205897146317662298370381552260341466806883093244003900053391019023970093323584946499328389238122071765012324674057544545875982021747764603285479944720185118501743620661152573652957444258166839706081849888597936507230472239277477907719293484506777512996319398551140989417040589346766511031442475538893758661615552029078714243350710249724718006817566075231122273516155551485828534293902729975182077933341237303457212675706501574995410738498299664675954055573444689787103512504800652211257660689095618079326757096587267454413907590659783068145772901659562935285870587303536435997205639854695817720488089757743273545768464012115956272303792908181530244442607068190787309742506972463098383805249561274974581790979146657816389801267481317838273138787630252259174631914966362891273566396290694205505528781191066576901158525633508518859581290972502774990381746048773124184879994906334707023740945948806594227704779042100543529615728108771567994440880940797174034003273738315217079706894856479889437584175966597937221974339012700702080142941603531670477790784661938895563240353183248495531565138297563239199093120934977474618524816552977032526693546657074213083032627129660967821912819396149853735000008140715704858829941844291185638550720885719429576682154318990998142733688299663948033939201755781907877373495225631217894457735688718209547894281084832146210783573273491289559015389255089315358061505242653979601766405846657389091660304440733420702023028080833742569766484881956839300288253688327216975489394749557711915267785117200529957038317192456562759428801451583942194218127720836439605012235688317665742771609530069638882386223411161137195038036888306778064095156630320276730934986511535959563243935271158788309181397543305313555114197974312046926430321283174405844209043701528717742743703990918880834413171781533064907397690241155594040398335054086436265180062212544361652893995967390578320482579493340586777120772888749116524547871686170964222548912261277568615263130308738715349776680665056992979079028076992397662998485918877530831391310617155196291175772561168162390973475503758442124505313745192164649397174357247064950875848268071686180343089713121909490226627084482040844660152752600766573232959815108774332393426325287749940075040498692164373845384627343307596054107963651888307019280459793694791499241573915137161070527491539569740885050891550101055181904277542888179298093574771033169091715860726229175134356507653004714904654759617129887406568983831925652155003904409984372311154420720071904637247454388046414253521914472898214811605062741372903116404689662722517861823792314313809414661856661177154098493531511036437411138908866475802646259360603963914742317552330000443964788562555797377382338648386628156626965761391594314764927187968829604664893781171349570905601800082247244373997809142892713855970787770610664527080518647376602658266825986702227818806843699220694946033467244006132051263916014374342899472421755414619115088918862007196987075819843364627459107786360830420650271586734808597279075170874558308697237238476989430340935484409198464477030646052067357951855109220777616289900350720005168009231726324132133001194779762991447369833607052300909799219246309203730536836820471169440826046148990796566171292838655727276005655153249080547570302547678850640296682166950057661447653352374101477465251569402392349772056667296065396098707179154188597025802787379104214724743579137362209675620749458223432867724597721698686787969232097414027063049240658511446546250822517510024714459106648171860255393577062588298623578796664971865609799462359976130277216875252431491918251251991464352489273670866858921318225713584002376197107558477908921765288840748907597670320996520107862575756327258798191015197174360435453309392292473586790273849022379368387817874209472360209412595128578585179207043580903875277972725032751690007655090658103185865972053051319189679945620669477098046759439300108481014256526221701580963053020225161620846813441228239932583056774884093169144117820830660443983135229145103302700570164879069092173877091523634370920683430418393849525189105559744538781978571895800309315357140095592632100310643184315784786043067849702507447727937779563251973392843973061233146938906269230113542906671340850658796222032954669367345490342283116145798336720430112955074935179204427658631467818049968666004532482741884293542746988576348351578569013154178338684450575916817429957874044952965531017404282583527002071093963596895847101254706591026709165160033343247366603270461905175309727283076410640109631193956965700989712973593522712493600844904621227253117044737023274869783582736000934186656363321273782957374397772818084206144763352098287512517851908275542027598123335817739119072031032677565652922787574095743911007754890176118928955726895185730466588951148075115348002760236548040038547380679184700875492393344331674004258563253885752878190946807011980179123531373803849820182679734177392229065120742978278358998800723005438330825179401521236882822382012142668186688354747037730447941037777010763627758712631365692712754979483458368361551745078716930289155835846814146540395879159681310119969056901883702190627255484175723906616396556555774990421649087642581537481532655470716836585232532318275432900862156463778622311692097822405410302749913405432042560250132722570170472978004516048905795812280619758970269582496639951280124185277745633214947196816712901470536786364965324266731615310898264432589658167682871237447054544278055895346359610453877246241867972895049936244533466701791774048939860438616039484404104507255737799536012230729174584658457501766445016127534639930547040565048518040667849269777775343436564550787718170055133476355634372260495000714113050199020283057186218523910231246601024061795309266343771421491835479912047483944608095286422797704956527738759521987935560377225404104958556881228311097666563842170202812533631579127410780094240656833354008219691807389935863931867440602656311781963864758085630383913506552448271324054929905816803388642915679346124087119214160524981666898440791034059446631413531155998828750369249718980341241086984394086837071051282142804161729135544024482729234751721769996296908162689943227884120417613398889963650714930449455199018133728479409888883665366373337983835007498318971381442130855628665555955522219933179440590926860005395732377832776551492749994803020164381590138540921687355850612859446196365551980294498367041567583499517895551855410454955046172466834258181560378783762883632368511769245710891702593562948056205949368946973569608131097522409060804547726875735913866794620362710217031576733803624467104360136154830621593935156002722681700327545698466941943795916122227935712076583042746029283102788640106594060051405781769797107337991443551270206208622611743460492080622311798452823978661839898651358638399927796734663627468183925171573746556956893750771511277467986745807153001763933893685034572808954799987193233535947827645483414602804288732764609838319434283966627827917565670101378742329940075935591717015159630117733409871709480304598224176560512281063161981191161153406310618395243409764087666363682805004275580233517268585223883256700096824911092031997521852964275154464902563334104065908732179145694395043181321313143687838066505517787425622114660432642552847694370908088097837999487988278257157279416395482357384813835773201342798987096961998904132693041733862333039327001632525743396981602782912302113357574596189382742428025013911857873073724433582509589519553366328668005541234396231448436406356202840526661809632922153346392404793581576862987761256313448365938218342488363524878643159065922913692078332276382649736160793888922301061054140298929789164973434362888660134445657714402904596818970985348561293502225494235946554729352554789759408959299983160614093723594419410415424212411819566994005512016934655375820539574125599638648132939329649278363728919392247146953680917459739787066802899468446238385802027392481499050008780588091231197576462277647582075971523513112616143371289564892199891803725271449283946810047296138169472318653994920353150470726011072335063644507048758420795519175923797763437531674224982225325212380440226031498436066313767753531010540465837668934499122708341020352487640521313844024326421471456061982766370318350361581170881114788158701521144272725446773792296595849206708905909909610066700131359120491241591597450039122956542688928514192005101011183304703024251360354454583378267340540161582952037902511691329419068217178456803105029114064927501400987359192788200072725095978372525983862770165903855794899717549884688271796779683826862351497121504813484612951798539660052977853484606483631836488993735551595186580476459983768287142421034931797494363272775477749287149455374207104384763175590433521101337196603432625455037271379899747106838135509999748808952824504265247991790788797937608847221903200753829727461863452976079753622020484000112343736121059304125017183222066471823756277108646408773917758522140646296330025181360905817526565979563663296567732935813036013836663505589411892426351745905847238657505392639515788570267105345804052118762450774316152095370281423787304645395196540517616776477403022362827443725655086774975034933536678434467872295338550469287326915616304230687608020668072017738518123182540760952933834160619637263462836290369297174408892467780787248726691435843079782456298908493046685069491085007195874409265005187382817530723121895946312797190720113733804364578393896214534133099510314935185953747081674012178036019977580483299095099442605692150174777914419068659709386201995331957437985896254198156834426531733540075107784148153715950370623076781390341844932877611267342954983386188148377673978959625443546573065446740645461468966736256233715992126104360197153588970758738125362285464972538774906713234043184437052152576537442112833295701263862533217182068318859348484647292066947836054214723510157222072587066809445437646415748021847850903644349216618100595372777420563729639832967846005587328929207100696970966501475164795480811087759780847991661566119742838740831091337314838587589471693597403915188944744189778605765557052346467131476187077534143373491420559686105659531879178870704006990592803190427156175388932130997811925959839706316962324251204062370775518096374626626081230087288971727189867537112774803013574173573762973465273697107434031550046718410016355062272510048369940604273239142429151779842793667426967893245543267344295410057414694355783733532274023391664884029531827105988526868692066049898875613776244339732816144762007483200117467778585650164295778214846110068111934985905454373625660228797466515374442438831525164851518336700699273587662708121926537851005820351443699735129837189309692581642803284094731034875572197345591748416044917584452750659977576649314864301931452584248286450970418458074000203472313187470507407377090175453667407977574091712476471994779281889198246866986495707428091543720255872793955588509561877132752825155657364985001082038455536444976873946709561001193172971496980098053467561530979285821637838025446600878310844641134261445708487912430070883124195111957852357426746955516606782981590730233926904917783355838681635125122315548081735842979723736689307300068702192414244567816913999023646748361961921106970971133163012671514409676076384495121095566005325298266869930148485270505676815707069498440530044991206534937344834996564391019483106535700818553703715992886691189083477953576268911023726256140469944207437811365009409236509534034446914627259940865389224435912001425404819928649345603991144833203549319018101097603031079898825768347173945617760507993131876242467716574714932765900852304106604034326285769323001752318026496243550715994768255247393888026240753220838013983641849262119637568270330393822410328988878389741400907230660312864920721392100433332822476332691496430180958369936736449869431091784288998729582369087666818490849484446652097421413517007702695490967705719298859632215444205727213966970558556250575746129001643794926685635057169676474172017883405960502550799822699253175471332867747291398518732808096673985871723841631797604132962562898249443003270793484250954683063149766290962915260965603778577804975983398585452141062010821127616396480817035845087391013773362331516653018266816365667670937411416671554705838852028142900314177055752083287049116954994689618748513616823730772828915757509174484784337775193250815402873026405770936630525652685923228700755930235678892603214460982866670237927747492589215190977921777228588243405835048006493202030550436823653086851469888282811029667832778376331837797433947468264897518511932983745230454367213592581150975211835826659417633209560493851976505847223435776883210442938051466359903003292877399025672961220748424923364001021310475686169102357243062888160089340697095398668291421867230204060017222335837181408034690540719287310450924922139942557860054013603005447656480633423567206653198914217208710291061699007791080062621827277950878737276300379483215240895728635899952116705974375702821810095687895665909675249098035597951349330424457705392511064567294627938513281763155400222169370633784104045883855869475528717069888832390876358698370435342488986846005369512891141454298452103987536219251412392978358109665135602515594438560456546748599430891462877676016334774777859051098733658219568739221215770747037841522928785536673419791117099471247454792772340085804439455415387222386468146752519427567685771525047447229807185386806595313184966571753786905536135389331826251764252417178753804065886328961732051068519462936217769782950324690673231352577932132374515492849952733545440128343079146285955425492522700709541251836613447038697437019269869777306460833972840387641750131942807246968328373896987333287748877257496460744332387842280334388722121171157823619205360117348500842537766358954353058471500810752280446130814415352157542474168705144968598984654188098050258791652919500642174359887991254439336766206865564846072930844207026140411379046076303155927435525203729240934612356416751175726943242400954106753377082730339865711440166675758811881575079190155316609528238537444432558801670636239611052592731621595710398771782824326059828132145110373698023053771010256060379811175233787736451460322482451910896805742936736842061238111863778305590665028054101362134366783791124807010408675952687641780409783419242040070210033424631613772685921895345659832427594277247660930034597206637801075498085449120884026185477969420656086065028339906288359529407417809906243731568491029127064019208473998126930260797654817990722757490263545404876940845422861803988095385454944387448043740027983510069478466018323800773710700255098501425825984236332724039158787018580023452742953704215177211519333531301080294800795207338335845257142744369359870330830377426125638341547161623927536422679309288473552123208848376659477926571218705350000689920535468535625560927688480227544637020845692296464032827304668662128344085150836988779350408795778239094540591344623401447060434144247574232162846302248654649563637537192607589898593603812436107011188475418957197821531012716973215138475751150063194119522055006974818945601104381970449178362660348194697730186989564617555557949401685932495319976640337580345255149877109471792366823645573454413945342564668158708008835697924522600737464151441867660080974273964555636082466049538534312094043761388725972252002434400997279964258406022283639695650305182370040052610345787178382295475244417723741381447937613409846867294658060800553486003993242545713505721944321419202135001990415607383036776738147568626447700886732554872579264901958566118129175379250328656290485041227776319932025423392146088142886778053276588048754426354555895367967191666292761211138805722662009935916824000364721675181423477379682849752480454240440124059844324031063071482077074043318108258235310230008985641676201463465362221723943203517749611602677459492417762002122220647509919552195367355781665107489631461706937664097863166226130296205526931467894978847059875406094844273723556554210553405050790220060295556948420872722269017719274043776887773787628410596094648218323086179767254348340851143474422103966162379742949897222482801260537396378683839898460608671712090726754085098334151344472191591023014650416823084535864185388250484905001867539549408856822274232660645611589621019617448404499739716342855939638380212428762089177164690346462955745843194714134625709780194786886139123912316360409955662370881402452462598808380486856309226286786555579481436620166057909717308221033636756900778137418378418065729034826444491244897785002244078874910144269181416041390889866671531113297485316126637289046234763086498490824432298761206563459955794701612519921699732633715119052934266123472184817465715694198751069519628262048122649408544350765846355568713623380473985491361189530970597640263931791998425725170082266946061959669626733201491923192820408072133134003893663731427056676034709624923511416523011588344860274676452518953691814571117302842471478698603149510255401817536559762681949739994764763860580200500165685463985720505372149537671758743776938232867528081859056402807889891167426571449518628952084612983298276453728818819997596676604162334256486065011366459890749022539771745489495948894917829440478360952418692771810478122943013737708765693928920802824303061468938487886011430440763293232827478170929646586900752868144945288855625786861377276099804728106458799503198273149732882981836141632293565768934106629031465183521932052205650819434437387469681700925734119469972768736148346342427039960937588720818503002387116373767384603164394017602517537909105699164509690563375524656006175729196637700648993792993810149016129330971689462772044172022545400596588847902341219913943005811430070821741250688844727238282014480531538118257774198089813866301356994729860174061232416338085085831041749566923396405514226269177903576360072207915052577650804843253709428660705350818060835069784912864964375764756313154399386151733946211107637503918142634719512305411914108105274539408200789314236667844170662597864794190832487434668433978358736697008239368913592207095532319038911545895049040653727164705215940591820233848673800735068122923940522530570748713535301349964421554556570480623828502456493523109179525029057630321046378612618219275324508986590542145384891775271351899658674949088520260926001034549765733027213947459324945203823013548427541573539599037869426588433812007478240437186498275786345570776855714336786725085249716675140168528271577381289591643674686542719962520777176214641819908040208303987220855725231263651185440742468218211070724240712525517460252654344322942950256660019869585346017860304448542314120133396817724138745616701916321049564833754310751098063345898363594873905535084045557873508714370646426229604155941136561728697717294651253414845770016290355038555379565186506488035360309227504808282491005880864717332398434586231489736870266722675303898564747514593929833821843311600008218422379837536073785812081713894060423353158330731784807549627391324857457721299388597560505845342906065282428653778624259747061238791670853598818831597011114212035016676460892590134290398237781508588439301182722907572304731608117026323469520188997905388044419336769453907662115963617899572407927068804334254277699499000928243206785464373576104251933516369243247743857877432318078408962944496028862682981662529432536337104127970313733236490576327415784406575777350306760543609533725068858667344112432260048055275516708114932127431066010580448212116494453418055072682924072486796499553564787354237137447112425876556089542955908817837577984892204048890314551118229866095793233119423729245560788952100391032848259339041270047582147706731081180169339446628256240762275520980559984678550817743782000529857239564098830092736937554352159566231860525253712064885938277398462924031247591002851910601450810940964790210537709622002348821721283399634411902609796919392179103691393327848590278086309911022215022328738593391582019400789994738516302971294650756772098582803481158143413941305040766628843559460943841648057895401494949977602555387083848426534859345927157090605097783105676527490370642731218403589534228360526010976980852561155728617431116623481547714995485538725151689278687947640975959789592149932235386577088469684251535226299520911387580239847400915894864955205955122538759197001406315382418075859116855950495003198001123947801658980175872654113496789197251922179640509734162711790079336513910729803369086779472480309122852750531684599344058493469442788561495578582827980877528761839761898139222351665953771869461930271872882033083611445840317160268978708224716602923273204044437385295625202259664820221997378449398971135298471768252664735242219525875281608247915983852649125713293121121954478164089978438411053151109720331003571436040529251168989681081177951430090074336966032177606841768461898874623395302027902814654608791050451132286933569595714247186441807697012419607213833471004522906185324492625120857484102741608514671097410823311617760483583828162907784472777611534740279934455405270807928126851080427412123310974404653084738634278148088516816265088305804993284877349413006260005550003828299790479385185222385102753888310514936092705184437790357372082758396916514845791864219116563108201344676899259474324457762293709114877944406670884549426066184282249716053428883699860323035082174379013520341808433679194741096422042012254837622356491584104260905021379297900581207453048914957792046870201411643386914488748587707944083897051228704184923437778571546327067344048946153151272776770455071140867648319354664068305613823806230164958236383119272104989002728536743995775655998175925319584160589584343899263178279723982313763897507756198362838932517827833793218805212479091347495172937802862105057342691610577089012157475467333331190454454445603395722404789513930152015554849211608132270488790300791371840192539460043210400075833878465390136641420145169509230650402702602541716761465926273264531524687103089152166231083208658888929519721984873303569144795950143249057069081201618550955046700993665661630348946588450899256964130898571046137191890019856723282487866297769997005448534250534887023566015583442438727244806574369408973022916562555971098302959299836495023544004143569662924663907346646441781218166975241394034476403551068248445750058980071759612622376359273813349229089798539223066179808054687512557538326412997344441884216173753576943238505585118605142114436191692881502642668928462917169960734251049759482934873964057812858043549707864316729192769409659374018151332683570791511008699586739043540481532303576388643959788389634605008364656148736138584080329086763173717256407418099598309876856534509647230656038278651642705698480520419870350146168404325799698342501003547622098794791114342711519738030650953537119463795451591848410486338075085833482767232700528720674796257954096818160618858000886678852049264546040958254036097581853601691097479493724281752646605368878740926588474154866770901178771753174052257758926170232707682427179377072701058998709594428896443757567315187556120994685116298013145466924214209482032339298997214195343852067696517730346402973835080205542007771216688956099598796624794696121794357234389496482132565219255168825799787026672945556879327275174910397853241257683630640769856287712959315702162184301001673845697408829327589212166414223656259319228081075274589663592613009499210874896082513160348086674903430893582090850500899248496598061245943517677306168704982419794021457255135471861602913024054848091462760980216383426038058996729669992713293485641747141031294888499053629772712261812297463084923701169663836411033211089590965960060529359707841635425321684241413663525742433053715139772304502544197948445451242360436212611153808659053506686624009409951337483331547998612354432049583049738151028342552589045270496502366336963021877182727041371034512477723496559773393710153084754712366137294552431984477626287352733003028463524436818220155736420981980273611019068882346997451902949567675304851284816586351818435137453568272365406438284336042978384638808208338420112437615213974948691633344184767978123457027457769457330493493087387617434297482043743246782777869703024039859200689674005968289720997332630512596150691207032026307377064258797878514463536357421804262571704438383131693235522453585735025893900525693700699951297250150905383585555279367119185937014840156718366754492659838684120887682139642808942760731126492389878224710401418025823818840559614662450106850148246792938854869502875872432888267713929287223170150885805671799493336781139683095528124425756472819363356569857468785746011392689982012416855993765092561895439167354477876288418711954184120242511094219405594719619502388933338268955069543831930043848480467665295723071617301004208656029120412109137522794247589916060343572397111850851218149292904341081332307694296115849316309150111422132718621594488696841871811560307520118585685466687583884123106665769086215809398687478958285502635365310223865998571905731669639003579261152493995898310830405933165698687716992863407162675202167609039233328301796491063434940396327697628311863963956481727158852851508003236365067734878535745491187049005727611487560963721097422232696599664934786536512880511840655275125043633766155461091177200282610337691348540005630613994157843464712673240028481061550174655593343363252416925495070056029490287515892301469584045616030550415477329251073127949149527970520140718943461082865233213491610501844967591145683496260038990878073946318558715519850749062431154495737208317490519237149583971276928482612730620594053427639444879751169364639917495399044060935971119678734715812139441884762614939640746067109537137406652927193390426941850192457533479275243951921868926655913970259423794809565404153664033311576246053507794321321085032265398127246254323390494360051789313976697766408467550752284638069249006083905797292952020220722492593540749683001243971459566384986333082811765702293140525914376571708940980272843372031306122114505861552276963086072786609109294145878106086963349696122107855345102541315686362335754361363777479211338749884005534296558937341751138118862004866512721251404263451079240356712809082200298121658412601551256245090822325411252398633887271100583767960163525713806581916656509114069467468594988315741175599638043881161597350868931396399967101568566499622455217243318380279957416167571791222547443253064073375775863662329721595758231609715049435920683795582433947576803981027968591028127114137186941678593185254554519074853171479669811933572568451222646136487599500640889938977426402844849080061442335583161452792686135730269115934380509511603077869458770231427646297384223757214270396627980598979200588521888656303734947504438237207069890734893367613702009404212959230352166204291833985267816732319916344784435696744311427918280236543534940580795911210072135504350789541905536586130398410754714836342021141807375900042969481005070147195815052787094241319323938681460667039980958433865763814518699117662178623727253707733309201681492295470184131109138341617618086435021107871995479547128086320532080350910180414742161275391209887177940052264687399484309455104968560966846997466592374064079813615360383626838916544795722394058523548047859224480628498687221010260782511484945704333179517911555382361414489767784548482559405082881024391459290144793390756218150795001529464850315911470784767912463489385234469073160857396289637807691788574555861217870123060086266011741423321351592882526115995203245182886433991496931422011612076454682651022966821022626219539804099497364495916919767602988087689604064227724907573640738245172921291031196775572824106255634043025818692341997875529842838947571375421590081664240930106953429834207958824087643007474989164227754657736952318046571525911293604371772997901986504712002558959023223178943749642268155462325472603181755632019137409211706805635076799085211857174608096015136326578093641596252043402965402926935270975858687539079053646776830311173765399576602598411930650235797957979411376995397196986536705340822185374282671654473883861054262877479118171770541725878014374962117409185957984175836376938902352448882254524284434033648708543151596000056240364267831359120419477888132325757358454517142532872677021882121767940769290271302786125645733853712343166445962425153556386801680013798456103021482132638105883638821518209503165095414595997627475396685436211063281550797800092813928858626870540860563723330456005363996767937463310093689980853074114676660366192008988168504714673147390009317125077865434268840957454032464244254673176828937868495404116301860683027777633372305207545792966701171502231003274627436946489626280417241055727945508664357474056686715274561000180550239005425431498257280877743934517208896930071220375384463575941766005549622934622138347444079744445445531785608056804096148423778561548004641585314535839065970162618148656621027651253128644715836213328390673195379678765175973405903101418942688193123522945303567233060248359812650883192431283893467877751747969878057519676467435303675156818413134228514663846654249781297838700628323167168917678704842873258450404811022393442179066949481079246118643519994608548350107168592666873804173349851940333324856538483348815045557561596204092994101620185389229179978725335881033041236461022945120526135766098198521927043634545037380044837102402062069503293408503556793924842147620872855372541435015686558476115808247932369248070849926411564048942275538529225303225364473616746361014550233411581391169212832527894804433560274791907394282588845448341924919846283392946714067396283870861178550486337501860293922676830808353524919334199180447297584870961182685595152122854691810191836252210851020357383450661577660848853027181320059288603655949362646936622917690619725813016890869991872983886806250548524586876746024937929295923974006090398639626380817934990070337718390804247355369927666980017774030344847533636867453465623606990301162029115626921871795469822928979223831916037403954631498410122678322515494348519658833041575238158232425691355988036143701040741479700741382434766508601369386310648899414803163097433786304904178527211725928917947512586331365074559427033973092235587686528525197663953105936376144467016551784465064882160145514524709794998511089270254747718294859566010610337327215706837434824957534690658507441980611509094814872481828874363018439228857563332271768578791573981989632985086245619393744123229146889613198467118850919712500659435942699213492763710409703282121239125479541906617338833007519091865009496818681614936645010095638619438892548802600189608990769754843055315550125330848815238058722268712259781199136901654316939243408967770405834668450736448242958287110222969785213895107544366371260513003595409457011594680708927131354391700748483014509064243594100080888408973351278983942029320105852334307725439359262220697237046859109306673346223393361570824847917659928495622585274623538591650745888681638483829121779998799558195937705538781755254441467676937419672701473441319894330099219104855785056801056071053164186116709753418146940100070708303755773982243854225511608026786469880336770650612496298456470877704500766816671194110580910861658419684290359169254699819407726530549773186784107518386514534628473121878604871314852350025851348078542851179918224502885344671789619009383657238413238015191498747340365263637070228229284769815917367147382825930818340398957151112348173502459772319349022976825755604729164519815884224924883260409080163076086691117621584360342632280166641478981755242507601768244329059194390301276874696598544289257373916020154213374787946984113546154252996829053555791773952695011848807751144952213200428569075375536691842518034078760675801882620133738693617823584901136951809869281180308106905924896905765841880569523840990249940873953670049278848399267825313728704238792407011210873920422242024456972972456443321755226984630092266599412499268377868608025184035316172040324678666718248439391345508513186089099675893458474933042417112566275163636468549641526787301389123834790642984699496158199125063889985750378822830716182822257476867328662567724518335780731228945863885121605866286530013218206831984200869126349200650674392703959239383710606100767204648040722029203044116618257865459071812079852280591047002907758910247875809627700440288610953291618415755893445934306851814343613172822369178391182988955796727862832695040634194277611334516377025900108820340861067718259814019760555757182859365441245005850979000840335070497380655640295907263508620357304950898046863735770463819370931800385294927185827594439317766149316814496586496357515819465214651357422702237140268012154252900218528259632308110736382049650777277308052656159527165025186660318483007794893617267019163885932167582053342330380720268830400712713776004772928631208979249872205238298367319348322693867255618977707878947115069613826509715678081846748395434798722959324448645129721401641686478591361216895950566180208628111964017665262059544469168935397774839246735210304550497134067103476552614024766026933810868705325014014348916509150665669926020599388242701495918745173314639407996219785157209912219500852750950840246292481707305923067276952898003621945503940656398225024279495648015884435152682383550869505011307384853124679182311182998654885475083543047660857413600226369167592995124738179858678165847739644484085763060875880852252288488713880029323578713207878585206907957494678536739804718236204896462764576451975841156340751972629815482992230255884290125979834321399004345253857413023476542652592609299539835996626471168047846788211689072826795361159166090030094197699720000230257496379615835916352572362727918315070596860540378393093641375025285551958763392246229664041191328478540256409274974744165596154812103565719321527342738970695280036915898387015689348181058429469345761245811919597867836811217972284177854780323572196747550818499857562626922748568198824379587122752711332441243365304413857570174651317650094969568596228311664875722669880081184641527683893864512309034893263397982855041541213068682174346874127409448900059216612637062114080209413474056787937457337113852046357489341662546706014252187952112129644240597938369656372056302341176728700124479225163602920493616422590252324243662469044560042480026376600487227439766152419063637934198931837191634123100347784873506386444766436507199350525580554528277218284070464238451545769389769709202860036182296919890030519954388895851826826394849893133971934519872978104129787818004946231200124545358718537638543439439812340081527390775768600689393668468984357487686325139033534735666700411351725270973324656593291389877952528851444367490073732505238364924628890962712557719323363183711573339438765702051375957979505756176814720589280854132125177418617711079320193523439096225020714051393568810958596404096260180268921686613213988019018770657780924440668330236361847207591990597589823020181487559639946441670957508773670057279633102376864157107273680945266727433535283262331059207165073146117710991873204824199957137895996045660175855567115991602703877452121057958405267489559527154447474167255488420826259388209727664913545215952162096930969261081456240179152591994987879379264898224467778306562766929998298160463609444774690264501364358988297985386220153656925041553000464548834783623453317876106133299192000133326684364350062105463132642576391257034351508096402682332680213321344919634845649262505318155184345093868338260952717963520824528233779837684473662245768670458279612235167034381571637912239786999341303706869075321934412509369455444218303583826431709576376547643813499104740082180737883728374627662410765378223907222804016318232147562969465525678055736633132882761738781472044227876894212596049488833154220405296060179464542181551788749260354391612710205443950453685314140907345334795722988630277891094092229546239703955665887578995597860432161745897025092681554182388884815024906137679086338772902187826235171376877377108820562208758172628437948806552372735987477893887956373199717037558702737745669747250359057542985078837744940790402784102944658894896258349564772636679505576404340216656213618954338256150697087467167740467867796176130546796355312813474636222309095469948093931513761761020436554080566526545139496210598994346702708038196545797079676307499795278456079164564361971546837777457027623348626156329557545061713042805693244899443788241536124821621828521900635893094671747565251757991965347066384966153040468963955537523691331888647895135995957780450948009616783318718802254481647636762285536682521635947983522870568662130499904336516552186304212581751043643870729395469137586074632866127897635719370367471345468548330955088553688558948094555176050458079061529814282835741607220062429480102738174340670664363648840397208897941404186004325153685330620780904443729767828387931344387717356034244362381726669461562126035658289406052463738993379782174082192908027324768447820278391540153015017163295003585921778396802695898988164512503638803872422466482767456224914219390794031078357139808051915095602208547908879739783002322736286260291651449777450486704101355216470125813612450515138650786968995534334456337985295571999430329095800369232275968326119712599190851405003202347852658797653671806003071672579747398846028523122487021231278033392824174918356814666776782712501459793431907754800089677421984369678000397604654543713884410732679399295930450730802861208874327738684397075956722051647310560091246559219134671805628777454570228758830751206626380420436083960220557335678740522309238477673547304080990672970049821229629772083634956493045174154808113307035659940153625071953899217606638878257393704679381413408031737122080954339549222379974860042400193105353253527116378623904830692858583894745810480148584257914467140368183881380932253570731813643639541983194377682551232683567527931902987424230768242578203072653122704427932859820075470710596053465414775032635108015954744846631283645649879521507911697955300149199804244036537739421222502840652215817742109312238391917373067906146563861883205925365985077153469749630790944875257011304991480386006891403167558215866827812356357538432796324039383244781606245417641016135709598468870203303893387941133371100216703980057074936565861016469025369952796019346759523406743073632663070711656865222630276097533883378685213030760683547914553679275161462417712153481296127733885387790530420410917003934503264714451777518685759689089054560127571967303890031250303302980899305212887647884658099600041304239624831031017675680963885250122957714798516769192906962879468134837594828466507613311908099516403640347264807062446977898598475249206036417609277790774832140403981962303751353256275519904055651802585458994491782614728054395878079925619828243832421966521736092279927148925859653084979454650882254606413018834666172505784658550676904166494800059268775006624493793869420733281129476285697397631196024484667214782154877410370304694409259491276119788459773303480123637444399557933837549841235730907617798740886005851531000107484762199091884325356706837185697381236900335883239846842444860291324354814075198801957012668252222071574458333606814579720550146146497173795702537870658894952505429565614238274532809442252405312143727794905170136607727391693456697697643614040534773095827742512439553031530158832262559400746089065647606655115709705632576286649779284826415411012010540565591402979561935218450882285993431785573477456988463537788367476120762034535341885309297986841460862559869080418176512165425183106048423995682566779722422713630074485873959019864877252583187546818972330219588401445602569677950078705431472095217869756453114790737060334972775962305876666199505891342441507854971200925388909725045838112050629733847022433865827943500386436291563155046041425038633900620171466829122318080432423904539925260741620396412756547970882757245330650892107031841771624470087352941208973926865700156075462124087932637083325314704457589945554733793076039294083805639658272242810529820261203445304810068880262779915494386665287761431959783935668432428375107325907371503653487546833308883490684881811170920634615712729580109957291021705526937873365028164617319383838846413610205013858987321189878802001901970934845922812143478856968678840376395876505456805540298494711959903365164534940356117122224200578292251182355319266093714235832196902317309828596500680755044804187671939321682444560818247202485713809130347590743889481390447947218440170701376302058566083323320816920279718336217633175599722258515718649761479587092424134707614874035158866286950553215278127897497276834339530995487733267532921447777052940186207402530245190416284048697126434635328132491161440248385918907089537960703662772987770837947146414750931420339289681569297696059115276623710409843240140832768385551874081135201387572748636627857666914413498236867132060890910538271019431716447966853874921012316693373028003648155599670599859385985649633194411809709519305537876462860698028758093160412218525339192088271870751609092102371321466456173970893529973032751225882010144633388954079826814374403956110160874343056783686797714031664179483740947113371592950137071020715173177269181298860393371841473213036242951765957834427258731437058613659933863737933641770427174582198857089017666050676765562563050840504047393092603001082083374853515398984882989860021604024403740782844612909718763876599673996229445128750551467935978816252422939768635627675433544892089826269189589821169826183722798582827718060817592031473207919298068101113300193207910787421779003223355660381407380745766287559666397457805362771875459745132959803837977326435142365361788711950854682763614067043335068344640870412009777594409280483772081352983218262686320928385982202150946333701647175852320942272790103146130459326515796177553631539903778240841941524896078144817788907337727156495696858353730934762216301939432508193418320096755027155709952384209151429335844149971835496736296988057362663334244354744019104003677320940213945449581652235726118342593018400298708588169353641007745245393199206878214999296809457583363248268837746030327252587139739446232532543584967462649064137472514270063849799282589487476627462607572331610645620893899150154260526818654095885750325641131639446189241587198115216223392486446282476440922537600542489570119907608494234102169817719205922236539005668445170760745487576093472452284924733745664124600599568757304100449568503404115239955178378049100391725374818538547976365636659266013280576915485653786627324076606919168132781978234168460924519199708116506880227529531959101944892024826029186513776779268839426037430185893450821426577857464809595161024762602375511829674723014064388982368641417306550027208046367575213902329729694983164333175279198602815397116147822139469728609259623133827300064430512766132999900707962862405631821415524569911521176313033838263796884465391930881317496790983843532114736220078207687881163872404744332234354243960004066684112017206767928118086519810466843543214540134431100917000905899094814514535905472149929912552940510910608522831969842779940209254398940102560806564926498678814997975070406008214629878465706561918541330578691207623949899951615900446466852228579535347654135672851559463631020585196260530163071849288808568753463292398704120231686630641062316148855288372577828861590056600192658862061938145035464396360890166169653742485664304489623413767735373711507728389578484188292866740148990595121883295858641516196771061233870641885489755520947353793237127266507757744141118454204899835001893262310982800763413769712428556743459955304545907476121688933538033898670190631755904018599382987014945935298345055378048432323554940624575318270808912761188927094986371112553632319729815999123084470323829079713902474708553987591528188166711379218810249513348599033817401363031098752907240971189861137726618439497653633017839964536695778604907101015151958165318604460438763725680735840783154297690953661977628862750678985812816670662517815724694913054942105327782518204735362603694918186455659083507516534884227074320440247314715452024908161579075755883239500292496574047184907495723866179985157445304728807513691990717707808467631912099662670043639025776269746862913620837951091316547496673784277927421598242002570857225211462382240166204052607973118851765821932501053489994960420595512665625349563465928184172861061151532503547641701146257751246024009087871562157177842035944571590331247837229245887733944663190728611315901186263160632150356421749076067154572954904448884142011602088099467144193109854821469911861498210429484515752344137950463616026343980391430173310546006542774468253124316832072562129823444249377708441858864207859391168743596435400109630518368628248332655716951004758969554954635314211222135446239019433313223720247088064600161628945038075524953561927636614927357622554573683661606099304698327746310410313524548586007167527363637597054493636323893496900004719836184715858431735978614153762631326228410757678100907207261162498347507935206972430027024463341604856398676997405242722504369360477826295373868726034138498706151177359394418873355793202873398627765404216756446378685257816373839728518018560925023011822750098624840222318567982935787802342280974922624835149500880024668119865374303339129199754032353834945212106878301827128724672331836446851722880493967541383930776928002640591675513267045250682075515841430433715387750165448632995034378814900551232999922258439395664872540065077671033996156584844004517038854517701707103333750037919556813588558582896041550506182505779270621054844168516084803323339026283607714632977827207688280572402724942190121358585866673800084074721589632890911004332118257551005734995266807687415008134275327428428688558133587183211945927535298463852640186668127280974178015232097101613143555784252018247150849950493051925573300556801221077852694114042204950155941778535713353346969122685734422438340777235508990198713978880538909813107271651334121945937274063175988585177078674373341033500751026706384622693361388139767993082396412528060941419037581147121669581815205425803767111692927707814171220255610553563965046337175110935848379598700248286959295024331417479064267887329160657079590127595378016605475283287963782709477417857821663709142925174769940876802565691334176234369988690723948400267383991769925537931381581410210587454197901875600921477641436566886044060620859978096538135972608094806886007312446799800983803705927729520340433114770460075809077630073448043727599485978755686045066500361455185034971267337168098088658275231572971336556166000304362442814070180368599322966231114709766731726630848228222747660191867305720242008941754326947273765296509284570503450787158574779435546398503057278239022006864466536750390742060523315367286714990170157113906555025091542214044550534040496811933136823895483690633922289738404222012801864638674595881524852424271141265752643582630251216551233848553066564041508383366880996143249874764061996262572827836957440199782654292106504684737095164525331020432042237729745156393022038984808299074717643219684234925073368985482773414813982835677026245752098110672891472958258314462245802759635809385844667205331741381038812266630937011068003774121832153175877252376372986030719124477374675521459177228750011540445415939540875986740851301249979162109557904040334243730047180980629848968250340451700521142082443301773154832511338344233418592700583095171301980752267046970616094687218716456521140746498742309180218782928966619233768041690021864421415171322584911060826040785648957952777345927058807631000059812712560894380799450822993932901146274702201021422537731741988450933854790878338751576260505682161643602019410564758927719285185507282759770987042486453557040441819007776056060143869159616133118711142327056784439278922334897188908971308540063538561427785708678086832043194962030986272904890232659667148452253095939118441211711143114830830656436545146850177635743869621144431884121733736416764685044845476187357091141283682211010428808639714016394696914489044233780978146693448391791453232776632087611091791124088608332931198520952489982572115373461589432289368010910282286612960671231656921091096909051013120680655137453599199268556051988906322874902543957454328019926312649882116377296193313711800278114599149827798083448187209645808258713221234594679197295418788579595240620425693861280571233151674054275718168808126302645276368896611719148812675726251492190728186805094150696514267385621732942282326076873824461803387876727535347463860450240011526839680654860155948580665498884541471271211502086951062377872573899152074801104994731598505546776875465244459172346485708526524497467588024261774248771914206235592815639935898816521464338241922984143590377071279537940392361163275593946763196355680535190297665704926688297723213687940326220840312677424498908192151842233599173327624621785969435802840548337081407730908635882322765007339275308421127193074750851826094673122294507330087766658156171914608635541773249975764151633041335977611740985024445044513378250608975106666922676904269132602712666999605850043580126923142510522210033707565238783553087586493651703489016172856845597525456657321827688192132633910398188930527833954540004197295015476299996095167761444730283275744329312438429740879893482264409433633210745108550330468153376603350453000401455587576232438264232672377122417590081324551555663841562997045615997191235435659244183100330380157142881726738011864626914547923728394487417542929978814463568576028544646068294449381149236629760130915255037096843723579781773753182207262898630320880235221871398242541694493978495649649663251653623404139485407281771235740269431931048194367603168753997152418315936950505648165466668272686850415524736580888662929969723284068981309675918268767132749263755074781484103030223137132807018320821489635390683627983737696884673332397728698297577925072216798971692811155560313815676558192678994321062347988800395777314034838479640192681285210404960471444509253880531299345268308320622620714289122300081073595430276541423504446780728520814503876790985701543947488400906876231853559677370768590111708087758918614180936515299633562530160897994328746310551006580072354090051486554608162347743541023432977807666590314953464436327834620584665485714658050202635295994635933581033510594622266078452928005045815712007099773162339553127696311405252963405659803258324558958135475099521186670913521833200177839097158866202034512702388600157229652145668575966105855210702252032510921264741125516869097639760288572672488823610386861501090774186223856342723134897525829264152544530033938614632472535120706162687007203391197826914678988288071590237142837382320851415037146328094560511125614886689363470944812484334018197051133972203093430591414366550453909577178508619192877974565891870654836563357919490207088719950708633252757270908152945831066328854613498609742202594693483550943876671294266185245133071768387733397710746729254902642004434427231137217217172240321961799700399381111416193348818031464263590271129892538859101954538495129277672051858096893375500828055202218879501503681995505767527899521350331899268531403800236509514415414655519853182401480338922231000006876452497021240767722288925850240262789418873167339734597773756098767768488986166940326925812579954737524749433317123617488346815137901085436829583650114109664900942660876009804389748489534802727902583983597855401661209801602731579792971357098381164933403729701758010937460306806528516207789140360147708104335623913852991696631574205537933740273656590631483967767904517974119270490621409720066036502362038797038317945585146533306921634184917255111676380047498829311254124353583081806423879580045063920878093846010916157804588250406458481231300234811810628991990075450363394829816498539558682310130770622818996961300183076957400463369647847773915149111226185023500623446653618555682386540946350100030099369313988733395515512953869310121626605237125703420006784975852214777935954058183548571960882306300595905946056338243737952937189897764261492017743979705525059125253037214140281402013074060506323879813018662132105424109522545203142470025881243458044569869042056535274914807613425810141491429992274612615606767998235736009663955988498225838263935757691453371454473570627551589008547536541966063599333125052464364821561806148996162625655053808916654119668256394296623835096157774594265182648719034328149972647459626789005191580395254943849437088731341967843393606793859342962818752119843163605641510314845632454216496553011829704260190866474688140272673441440983799155778986602539584533795521071354967532829473311179373004878159871834686284392296645853976945957492967627456977394872194979997031618566322357439150054564461795621522880687049947379906250176487310207759235954837757869260677650085185102824088140111208150452845099545997395097741833256080550776721037343439415459600891434691589992204113123977330064208173091359167846227488606182892459353390864182175455066710008920509967202077311172986060646453604882542706027405931164876874137470934130219495951896431626154130955588466881655222593021359787321671122450818186040196632706268321947117866819129675633765804548914436235569803659942636433341336986281775671795226937741960888979518888430900157387041218762565396333455103035260408341430545417903641054159228097977902966430115094619213019212218304297811860667531348332277168854029043908802046224301750475269608922191108333315875310995205292381787539610824761423750761126364617083929627984839435787556888218467340151764551251432162805178161198828140714488747076221943060418956366917654400186662853515321767842139045651243460029981053426159265160328657139913756595971989314071341463964968465964847402058500741029476737381090790474940855692899719004209255549178242740479605654469976168647726322812948417034385016139682353675876753862427274912887123397766540251328137984099082098415705999594348080524998717095867080222936468434419767733128758371727146395502225539015069919416583611948383703755319609099833286023024611033901042680992232221681781857371930538866057910326584774542007833627994496094502141015172439207931386617947820589497521477481460860077009382476499386664263479704708380530228198004508698095880154438173317987471067808753644356495862503905123423961329730945189270397843935755465015082925942025345559535663317066516980050311004531663165921818185586994361367839204031397735867156107192450841247361988763758483243969730501985282301835558854652408525112037473704920268047828045575041010283753795330184451691207324128775542801135867609034079312902293749643420605889627766838570810023529600903468066044169061896729145477297875896337507210530254821581931117524107450566611632442033041207763399637437904808438859242489108484462723160204952041510213114463880564016872971676473075557095408182681727664244019902686274340606393515612876825654424925877931955725169184221878582170149662312782399023213818053418777441206426251946785337082807346210757973487203549878636590683504582957508698735832119008644587593261054121467215636753308013456858951227696361243584749052841633045217084650385851819595400175361314802010159191548885981092155670529512100969032825458973434116262302500456654918015492305773955185952164567908643370375973879907968373324334400998489414377607623496669595175353568742409325141853500320092079159350158082721060428390027419259077775812930427316700521764732772663690144728531383359021373224055476474534326854657556915144760111028825867072936093000868739924617378702348924909833199339583496029871073670645650069723039283561721692958122332873445437903110984580051683699222770584729325462513505632497470935784038054009827761923711569599316060672460850725889565966625783478350033901212400493267212912589429863391670354060014253828167004243763874855398924518653915131841990755336891838320261737467853813558467104680885097790439888297074878360151548498006144662145409282414560509810140297930779476813236744551927449634183235668458314938546452497677355330857174223743036254945119384792319727431105129806938991227865645574654522279966071530577846221833207706706263228065094304635009438438121514678791470058645957877483441093282053176934581398574982625711134149977320157364238439122602662384694568977446401999112482098348600350272735641698496007585825961460552069059958475026168598514942422844192887037969237854305143855824259927470561251918177250952688401059053876059959815621102144220915396092611589493680271027481925182815013061680975111500902675294617041173647087227573129636085782962345190328985691573272354818916232241633889366564547638278937133587744935519613983027706612472955317740348548629732693351281284017886919796869011501316305810270129660709367728848922941545093694495490138170274431086194972231184141055699801078044327620735364816483360675253313422040733233032329338995542047120245148614795307937208007618718099674165828762481624003757861395851938191565638203338547092955968815427444414545572690004024812599679000501942407749112349951728401158919133225375184643401133260766266203842767261651138709330463589295806462486020546490656706177644557785848000539084808420172781389701421922126902758382158818066518101040525831437686216360588956483638361122097132514682374592213436404662279934722842719562696427493288964237600551678178452008524686266441103118070538907682859159171964098805052241931214895876872392726510225908754422020202533177336170060168459464232609982231643704957622178750329130704503139426565294228439848396436051588173087794544800795699583827890740108706888569421326684774970581208112451716684612372886426966898494790901557483743123305210079171933324678853618751106559419069635607007079356800607147749086182615985040034985841817273785037687653045833758738789450948478697525718182947723900750252634315577155434697212415272471017979143381559832086886466239885075521319164182384486632923161917256995706977985559056040814000381558870922155828785550610561634468575967046365872986331078316491846235729812764621865981826963659567327483267311254494412796119324246553127453556466109577519063732877969802211490093872006404158396294298718703209483985717992886551711816537090151262096844475516774586729060023080926170535467930871888318612745957639270925888969556852778159920920996570253214563878710347121703027826586257250859883895945027733115871728401153691554825846215008240532446206873500721837606516498214282006496138318534833162954171212186526343076110484842661177002805536328742059215781258326099468023436300884543305113531184535190057457144102799071914491928362290240631353110598346868355146762694946664368590630330000001136693651357055899585766881410690976424229969869123861949430480813973847536665652640688309820940830527342371174427849941659962832893373547751921553416232444263929819499939518157919422531697920697901904507690277686018029721041557184159736103489361529965813155026573798810226553020477388817551718632939787484696028967580779676610381704314336900260609422485506036247368031276982698344484772306676759020522794924509574108147362857610536459056352867290570083877856023144207639303151608648676589125329714880839749007900734917421135517923209880673508593243449201117826083102249277118502974086850054688722735480960493383088607059199630025849667162030267997726573739378463003527694441120372199930620727582040813790885117391222700232666655659948833774952921229107456087273230966998382077729748545133983573258769076045865533294326399225581628894196335598210753389433319393628889993064013250863802817647686286781733295384310850808249136323681356648914679992265786479350945706581637836831293285785808439096503034169723811835856986468939480297102105429191865758643084940788965511967746135519200724858793035320524016279988986760942395628268260160920331890774634367374151839618074690299282508338393436957020531070109198478341430511246016023267350065759106326728169649460011019652139017474709640931828105926108877909603633907450110871110985356817130822967902550076197625167943643008420024517998117309279331483128842451425706500941894112225637112656070022972230950617869190563605170818785831962458120010104593898292427910441557785355258665945438916660853650650988013017237935788561837471831386002318931977099937762849159567596284600022640196559319714108526899694949366304357811429376795847253705278349066568645076070106146843780283081391468509165739510479838193152197699746010618831496460066003642403674127165673048883858563552358551335261806661247373759795448792828409151737692350112592071606886203208767376129703495172490015219853657584691573693681395110156888755556935902853137671023044764883366564154220821375889507168651549340495176535374999769811137297379020077484906950034707642628131289392512531027058400497014974361454640805363567355674308173577096496287302800302862764186947066249064180380764830507117413619651851088261409573547647586213538829292407341754422537478310461176613229429596680066381301239189518485777451687432548461345047019969937350730213519303052060534142881847273389830141858968482583428627215139551240260121218652966315812872681344930913223448133382553918999752388202247141239722799930821506450687417712254638295646108846898031532894424940207365152085396869882176433521021741831272699394941681253280829209729675925276273784611801808866332975960780947111841072028275183314172837303138137873002301346361607986794881261581706322344134861259222634637376429216947714805315105676568186238444539501976418821772566224639053954274315611204594167976566689782858899869046218793996683874290678877337160646481363275095660183891034077604380009382895245245685709632548620752421628730880244445535048620828082596736486960019286339039961483338019889341741066087117393663264783928948734516089374226720008523312744819097841999023456837809508244827131383700658561600630084769903306540762350818274469671039512166848753734222582697536212033793287570285539639219810433643846538977646113794464722818111742692820576804279421827539226392239431344278038621003841606298388839610504037605299427776760977106900771451686560953893563431376858082956770947568978268168316360217593552241263649206977539335903228019574767650607552803977544451101544764038650531488139182715149531890490867838024568168132535294860079786002352803180288861870368835569967230122773196111210967061261065047330709525624505877258067850778085281973607469853027058575022246787616392969787510027300845539292188385946177068937911065113718370422869916606405260233835752850118551473351941350432516016412331812625888746691781722834487721630892514512762895716144191504412671443039652768038184647014112270685129655808893819934431706081564706092396305694600354915136471095488349710477080586835312887875101588747907449273548624773170153758439485279123738166062706605766259515958702915636786453809234640389032129078259628302402440316469825412720838497719675883510964236732499412788191709149203304359695955170748607524826923997055461146052565017413147754069269783339914564113023386885119701545156327392583660799573794230427941382855623706683528431482131056180714387227608262658720937394551988877619414492354305145811863212308219230526716252275786485713058118887726271968278727180310662155296547363380019150792318368371806217654688862100171364533769740926549396279652930321165489593658304069247895031609229397339637639229109458979723599670597011474000594544552608528813565615269486802094442690943323751003259343884059015512113040086210997295835965112367573474684103199363268566647852586994722361507460184701354146701498559249859157503683462399008496690627631286215739727996082607406763728511776113210826477569655267375957653606187562186153037912986253951352392961765506564136787047885375691235746707193923279791642139370706457846190863904038367966305519491202578304620703284902853852092275916692836717222806637190562421099914741959351564041833041714030333142145933724046887745927309562778488545377974409041380811402130845467560138097543833954206811537180618154150640429156873040095511660162224325734356804651074594557549598499896806008648717086429629625790620457967456639575873680281604134362184318424216714627075022063414769251885685042649606001336674186529116274808497871173883750648844027109149479644313160081377572751145666557860977213342981540650269952240934727413057927585473498800319367062560113604210201993660375679234801266841827625353618486609281958415975561451985350709540549573988551509542309759824173781219530100569202833135349896173005220031420066317338457347112884483868366462550293737818180599214595186970031251357933882772307182162837040622711515926319427577168394040557707760469386412579106509152559581184871110340527022054939811322702247209686213978791531217555115808193603739296352458566312521095825297484374480352784520048052532035502909081967548432886438960638083555913311881525714942121951232584006802429950588073142231248332472167052237881435102544602786852537170924914691262578997447230248494386468613417852146959835854160982432399473891830186306853903501396505087059061141671463132081638678886385128017948554889834040677334713672708141718650664375319536198675071873968498076912258232505793670860395867120350387502182611915491449222717188762786075362752988632778210574299382819800778394238517271922836542020806263741799594974607253457529773205018789932204943598936830908857475135584075207683432441429536955985936698603764550876114928131386967467619609801871451367809797717923743525744015168521196539640301169950538360386012651824065338701078112166317333185736123563762260868048602092049990564905542338261880352640726330779540965092394299737689787975724677452850253402910037037097647400648898469607067419394846273178189060310662316014173245004279079124034832866587740079018936727157038221162507076418808557732246651752505777604165232577928467149867544320087825956496106357370205131152792790748817851624163996929455358103845245814819533445365680642910846337478372911088997574012326228760959375865556199823136917372066783895387752745946456142961417147565246137025710215002465455605398714895596302089775325759388343000163768155152504778259670816472508391463313523159994870498106654244670360802086730772979903951407888166549710096320925749257717536444431021450099040649456628210755152974659060057555892395329240321993473258435199669142319742796975366349841333812018676471212842493874690325354028417658999323626500401868699145902863312522947363277258716492567320237410144336522082622581462303036818146272070746620050928036363730357501663710150689186212902228816920841557294534311313202738836305222989293734752904635658616611781973668148440689484900626918692670819894424771930308562900680377995014611358449338048362033197426433532529237175808155832984645877088493710594201943119914286310344219745584724340262825044423464880780895800996641047083598091602319823452751530054516248818916635033545935481616020386423324748423055731387554835311466276070907045877452940573187127444201992043385344402558977173522666318177385341463230015261493488866320537571058889636069908062872043796725322707147302496001987239521675717388461744760404693862688353142082911862932317024861552297787317214585963207811202166281485172278624261709583732109879344985200185074667589934509110588331753924679199536466190716791164511291744022446461477960531112084533275239138903285232174395356886485666804080394382320248430731956087773728839151059594950177149045761720770078139909204463891236599203229885574438058249515766492340250991894493774669436277898255723221470562406457259169329569187267679332795445307259290518837594111071528582521198785315317189642379577033748684981077016488336166720905504650511235455578458144685566540563170184685978159750443064287039866158044299872612014013582085512704032174971038410906898741438485816016979668263299129464800982613666651176589586561838398654073500935173881745565271052812386946549246607359653279218885342859259825588864548931957150602718284190489979616931589763346120561932074421243463716880391070849832125852497929799406648233869335064655395380567414092789735091870110143420886469267940291228210182169217539307085606398461335467880661985375568875938736679680066175650117975155792656040342716346015018954329746743426461121313577453610350038283593188353550976484379161566456748180046848488133572486529521570752654409777701368179091764927137379085480513656677726830269841008013563086982743013215491732132232970176530691672390988292824077443301278474375072940589802990800227832338245382359129537736638429902019817151099104221407401912239091323845595758528803244107578113540849429564737914694055679303821593051293696383674341557669987736381177383784128630008668077354949520868444986868427874687623877194073398864195769926039981170799008250728521626114851758879033356930155364180962021940445063084331722669982492974023409619611381231748770559182168397174523721361780941541163271974321704565158250178753333000330459482306935860385692976132381760070501367740154627044216564369565846277187867019909778100345587130196381997329478591646323665015865247116304561694390528324781893049636496792578431751241084273051773977096006369100826512022320405209158704683926936588820290679164235713048752665312626855225987911814298596235168451531386904807569997441702448745537321605722024564780739707883054714028030726717441758439666370039273165708896620430075611424562166764473469825181734971704707848589805168334796596295769526628926636984595281672799874601075649830065662034694548489825191453712526030563595029759980975841288871752315264824034049257253594823867620065612030674397523811567802968632150861451497336509962452852158856777277558391661459468515320109581389060687478144295524390062387180469758370933551373898110175885564852393704658070603119756439490075434881791361754421221949806729443996162962264501529155382858298095119023317456894662465102186908891096202494721830590692597412654979171632272412498970048595902371079119944259314825689716398003785866925338292493216499909229505844654236830329296814355545225066137314143754358484109104049044756799125631662621690083888279331700494949161208875425959712154866061898793581496415177009281953178412461697851734903352304689238047839167145683699958747004232512143165064661098515496814272800453108900343989430617040381190397074658644062770913491411754563752477665077317594819907623701667226237699782677613448503408540222789792108566484715104470894494143954835941586787967081161888201648428193321376158052194696047491070417802810378105873834495436057837671945763424472341826637304265985022190323198861890431192673346163330171538689908941475393358337069197175680856097090167680498616741884941239621448644955357781424623710713322520396956195169110924775170809844088428345732068646844672889719946068090124367459580527697521975940843520754405472718476551016708665693389585698562860781457217589576309223560300221766816863533321810602554786049938320380125766209799925240420235740369618909014723137622357220659348932137860278393724016754481473682226711449887862660478796222525220176846990739569406683693837495564914439523002494622234001628010588580956622956292946537283775162612318480739176304299314801205727033130778077226408409883359920157228129460414727996184611563927527381986947498115536059243342374837271608463145631916980419342680106158297582281616881294460807014045683879898091894411964727138687274310626309556909270329646458190263016571697546675611564129729477878580350085771531129802554455230226939838582312887281975765599326710731799441609105473772791229025667259100663705587002265892876839957775983820313040686308095123857971891223533906503691844701185362422073826468592698339962476546251732261662277415016630543703301240379363498502186464759081161533025066047697060092709955377442816667669748539950102734642232654027695417029592087005120467852529902131251123825434509057219448472204700783980436053219930006296986282496122944779620032171191626256532620125788252424673390586460384130298181229149775692832844555847926661539208072979651893878608742762823015560946481392081955878525625610214763903269446023650075770569336634557049164442635059614750734599143726927947716912333039544734596361646373519915419646494300701781879152204117812926307696124324437805863246057606971775673018688055501691756415492066170347062374955790075256624494345392847496631094101445045949274854063782701282660609591755513880793910483805735682478839199353590529658025933283384062323034322819111146720166358933520458199975708854422785219897097458205235352038182430408133901970859650891673586707177704303186544533380648423551326590130386186266059911054751025723439287030550063836129761388538361995175165086263432178122828726469700207545099441057292355748364066263777120508880690159541899675303784887539288657023966874166382317832596870917261574237263240047685600610411937958883620416609042722992568704294581836434900639562605354912551191083756126614230884497662385983353096648180356883784190119022668389312087471612319695948493926707002183362148853505510448832314259141844884036802002152779895264360097380872365188695200470591090896759825748828307444733625988810835949490577381890991929527477085026533491309225005590727566748395110085687276316621609770743093082875773701082895047611090513023120537060403589959812482543596560107283289541730038269906891182847005559860741840172825210264581917434311172429207781412709722701136397395528828730532450279042562531328631050172092398373613516591941169312706075863587006743919772525080972778085000379115738176098579585910543674245944783691842997227933605576310845095394389061533405347560996277611732336915923694438325750750421846734366679663823237058959381578787999548120472371937147937101487049459362665411199640317995314723975651345261924117881198997967460374751897946873931607457880801862481709402511839432784965027938610692974233665886590306067603632408887828323474249976000381966700149949811908259544487281039450466913163741893592183497591224574409897793475082308985904202889632417342265339842587109117558444952962299372431348381093878728694301632938576376701703735932029159599448635669090599504838414923735251273487336687310980552854190729233627029628081625076424480210748989015234629545564677771574729080726896095202731189557449675995280248950919990317866365174119380223545457499941497499413421622100317752998076745567296242346480636744383475865478784280192150872996747673285479243842197664075238251548778969843436550705434186108832159522154949652152591329361398915613701405159359653515134561182221537247512656924535392270786658864515030461415825689233527056888942084185140931003159644369096545788467157152050935590840028577026584910815024502410415819581846490028274987724498163075432433879370588421985865907615630643507216968968530507499009524831393258040596912847870678130207811537381417453094324691810177154977499626965306955075402975340634734452404046591093828151760089456742165630561734338036649522979449630292278012570898119465100508720729147241714363811768168596035130297351867855165326524676115817923759176225302653445433311637945611205286420099716141575184831373517725323429697880786917521441430179285312233907792732701433129681484806027273627690616320662550411855762428748721584179149992537889466706370727089646079430724953277495840252956061174888093716233097293482962338375525751298032748136593656983055031319277666861963709240919134790819502069660467447190338048289564352061325471841674272542284361772394081816613598287632896843220014408309197965200534334045339509027732481453021620137149177796488689670627301190508148207865237938653011361830195980297017769421331185838381226324555262767250214287093948477860161336073927614989512155438756313172111704983913538526168891352880367415563971471213699105511444086814053910462868844512325227085422836963591397955821445024339575119317384445744821616618348241692743893524361221948265880329749401628055092281362722611001144428879482369005242113880703359453062814403077802888440540067534264637386675748834883026973965061319403822776568797617919374572008968237471931488192803221562524934817876636868757761168562666669105784491787006187093076541321723087997446878261154664422891812083453867798474304799329430668561149779890755140861381852511079693516612259145544234450311351018648630927584711622576778239234741593296821232370331634296833679020560566441874268882011077928118742612696953419803032839600367702794813471065730637636699416297084576765498155512815441580088991135861535702841078747384574155192090671458478773658285189743375025737372876962024985612117926846235039856084282215763195955712823274446512135129433633463470254698100698640818263923544070642075041965233055796014125380904784482846929636406304141457312485506663951867069908258571773670627988752325513231204352815395424723576276772124188565490678957970831922651767917485239546407038434558988950212058032987156359889102481375558423144444881942877081649489402671838762684885854660156036571218690516186661386108311057418966054335667056339657314516768017768765509679095501320622462333590438770473784177231380705208987257398108765164007779739561550864545501024373979095631476901430371349363412369373251308397335453603517434248641542158126814420901257043315260178359199894785176936966631158155747763871517328689623614419212816308039373609109894882991457029447715984920919042731319851614633408666551901354757931722731083301312007905707941375423005734214387523403891724170672038833640191300791981821685249531294067248611793279141884475895226119089496929417057042128674017073742206326915382755924823175023582268586699342249179874955627956027524346384352413392692766053542082372749980654685019627786125702515257281618085869806365432861287934528346418762233432311120007075515244683911102752458510319523867506185931811265149084172882548265578226867583048703069441256992412133848187733997023081774335162489541330466099598440497436248908351298443216751757541559820175476253120560676336359255173836238849947834873653628449502239643805091223244372358061646931515669384181451924173756378505519170967939498246428173034170084416256329846412251187245761568241376390937918734108100687455115428378106890854464102787032730916625222856896990291868277721409332198264029487059980207441386634850267565400348621322452272819221464940327391009125174610435771951871844349259916571358526789570965882522626077295863923823424510991972174294576127014905567241884720313371261000193771233138878753570748530922439281345073739034918705186667398177907570189418776268252910063256199799736380775955014263999009744665336801587579677027724576309757182442136253914710524667854851918881672317972447533009232207999593773369299507163194041811501116703972918678352537501340831486450293986354158042131049791697214092302458068757494668173041499073083006935327083972247471647581213435645136702377893190542421407953349036033932061513117898611492561049002088734406913661622078103182249544384634650872907694643802743310656366241436389912884085581382762943225252661457565366463963172227857245585141966631313878742674827780201240903443733316686357411315589739632977640053474309882400469019813393842388756822425377766368411009505605391144870484146018052319867113306000810216183971721847481358234062350913366926520111163485148977276774899611680706166690401105095164057947403819865664620176861265570117901794788039958085581856851544389819976434708095298785708495528499728628121317111013536655660506948980889373461893046919513175067808959435262902007995476637745960390574942512688030008201787568308225013955685704103801190795999154519461069795306263638673191142013139529755436074249539397859250178322855301865862933246860733987060119082821637047922680141190416350972739739887679477105896595881219900012165882999863902756737947906353609370129322918638588672560183404017751905052227087481221459665559964754960110073403255283185871304730499015200870919884821129216198719840348814034244972764506732461462918034905322020106072520117147134685102987773412251981513931279706347852770579588236768266074306597221275027683289060446033044880204840792372666744152313755758073749104037870148984105228815956582211862422268326749580342431458745518490718727001949213834201537385158795403472426739466805629361681233262365675285145387794899136452131720098555048094700759700453268884969775422381959770722268463165597634116687585253617810313864448303066208561627415823795570026752915621541701183546443815055706920004503395458631865203474153140733693469389945797868215153164852580694937787876489277467446061912809023996485280715082609451712073886940185934094513769885351599198559487908095725461468340336770264244387185769809909448770481943278439160067367585302784479487734091853223656342594128890979049732144939529643475608458609195357897327476948341576944751835424834868930012222356136249580603809472236951335425014502524491287327068746112273572230087144694329839612829606384063198363952805310205112758614544022507255929990225003728272218786073318742367053605147455875577554053261524323943284673851757545721110435599787973307172248951928477173341460972847088074922653424494583668220412585641824663334385758588354460370888644974335983363523686032233769057242353400983567366860203247189523036048319265410266337907022439834283990690397300469798836430224964661770929201359239982668405836217463657461764465203656824869482672358883827409612193009991718280339871098469170628020935710882818877542374160332569201541688386870819725039656725744167097100652301492891664013625473456232570766901524249029321545985436971682059550339799570347698601803068910406233528842871760148880904540530842543399423672523670406091455537928403348147470722451686419610575355134300263010306700937897495213824279409508240039525736786380367193544242096954131922876103392415457604075747559405253329896263587518231917389377702574805825202566322699370579733328252853314954162163493431901771546317801201273669673539283311292994266748826074102353786029252548894112226214715256865613561214915506816676125064540924777913148937777898603985492493200535975650212439951744071352266370592154717276916632237513491367076462241586426534487786876327340003192610941216472904006581500142281618105408570753405161099988086867432642593532320477656908433579736489157473676415966110138149358182626137679372285984186420290291032790041254998037364862920029349264967624671776745226688899592831776379383643541113185541398993113246460191618733575071135057372469039950355374524802751685808478768079693787384860609916580259641118243574853148029362283580230879773433241506099274864786092490141698275657658289784395718357127089532996580332242934791333907416148038822841966944823230335439802302143449757521197994764868720290826995358809139666054161835880169571379914177704140558927489603783793268896571572861578504410354023859874687652188449054045955169861298551672866613126883607589362668081019902039107095925819957999506616003429288209013481923170800230018118793591000314629901980727819805749240552464102799397124305112123848966717945010797317047649661665490567002846458351802809376853935356989756623367610446448519031511601255541663790368538328143980299450097588202575940987099462646181264811845471053953491319629520048224421952183824977735232738584721909360185381606879564635837796017006742258031681013344881290261745084746331884190935970343003676628983592899137466088081143929197362836501987722696886555759256771842877789960100306824652323389048591637365792220906887739821629943086137074849037094653052093201605888896066925237177227144457254864019309550435095951310342168537938359863493636652011647085379134498792344520696076937129379529205693727655877583940372317542448899093433303163192897689404809856875902956073742952578659373337725895215106085649995837131181079515451520320077891685821004896109635656440594660252376063633436177649232537187906418691312139808735815993815645996708994892044650323630926304690677216884562192178431743582350153631261839873548007839713063356919713886718915886057271329141838575462911428553325756291075410847152436860850038190733782908849567419117762479594604042826698124147702285177184965177882077607871653628400197128510729284763673605720092741697781211703526919808075456394687606693792818995395685368536064136113829959991116183518741868996999703396062776621927352055652352877203575977098019114873450967731614825606084009073355681964789867356178633489851504349843076290635225141235127943354264418180180197530608606417491613636855343090996936094282835290012515233029566905986547998207808446502409143016324902495935749103321598676991328576179262803728053794740440595700171716263705104643077469020913500332306513527588048617665734420566931812095873793930556134659269261369264795285989364420591995845851415725903625811683114763146894283890269258808602665844139326420748575596702531390209050261804180141655378732995785103245311842099675134698744050051610990174707593627846801595388557486566916892123458068817790956170948895179056615375844623424003624543930092503397474482400656674552691906597471206534860891004750519899110396315239361263230240061905726719388478959843923427598747087093016129526618753662441791828971776036420356623667126350389204569517808670328055180814429774013420730876055151377483196788111262257853334640009090630205868587528059141645406770995113853656401902751381871788000851431118450234238272752546307981427780092010120111321850790368201694461693748519560216960549504319458109810342167398426967110225501544634447017221025395973882615691859251746261566832096859651797602506379650995972917701085661834590434679899119599925710193799838249469994418737731263668804907116257812393161031571517289742618222881646874120628746299485539492623794126246767086281220341247103197303544468950464847021744406541384521070902839738841311724334044045420607100940577706311754076831806935944301611389394214021955974202504695607333935734568952135615657852214490334819227709167768134213844901575733481392894285821662870929238535448993422040410390356344858063462095629704220310569326131768690561667306063213088555538541171481055818158492306376678993229677988350407584511860321973754336944807980248506470098500188668719460659052185499342082739711445272262337720674689017668792188885169489684196155252427929661462047518845920105518063612422340049496628126143822018275002950146884282799382550313695162870701631610410356635075825095848672133903232560994067194222795536635794739722876503121173088333961060761317516653139398601224119519887760255713310781330756918480729170054159438852193471145606554323434300007661199144561679528104944260086006142770002949917539784499582148961465402844542771260112536182897092097069528946028843594224717284237436858585678168920550333422265151097540723904708965556355828721405560218185271457034981426285788752322720854407138557499192552699103922071592049165037314068171159299572351086402660207055322013664968022965813515363499576329841878911382547128100336719230150371889777948530295965903170686775042299340524567854914787757790776619411761592962070777663499309984764891301467511922849933697689137638178283800569237267171338519613173609751565682177384362917785327537692210436890736488250653689501764404440388801253876645967166471842334022503295524513625519713470828023904644104963931212815615281102086757406548458434759735743794905924796661942026522221959263254722470261754306493402522000146602045228341797482204653558513848763865704724788923903164462744192985044567101966518515309317217531988231377459338931464633506422712838671753809235582529835050016787445213896301847180354730870790964531022671011690189921410286068062046243484754277076180180888279571959701805094755189187239635876396960753111727698143288773191247254237791848576498643618461220842675884481799203209573038573650025059394360352211462449196456703970931705925889567438357456177345718073653201014906250590306224329256437471546924771978975746781425551048884657196027117177199040686999551446813509060435530901586816218369843014012738645258593154959683180901844297580959304442363470523979654343791339418102667911430843663403487333031461247106037128979923131593120524875286410007117227577314550262484646090620138743504429652153342214251130617302926665549824007657383019218483684406218388188972455129544286435193471938667185331518903443506066565538196082972338702565893925584017632848394126900796477486653047280984895981896839270585269170426550260297107990649762788911924826151276617158341297655114284544308072155133274791835946730125887464327819628256465804649280002057924566216101693039656996965712020774958955469685636348475885050390841195552014969408601720346435090839167746559578231212591696104737487262499528975692763504769960202533356880030370568549442583202450162984462959098741862137773738953892564643180366898891763944699529974314083341710410560921649891616115102812329793518192111067521736087206518037370477633656803143573690608321675647243214318675923940679670822854206050297361299977800059734823642208274893576453529420737004853321618108008363377720522929471725242225857396640962094778273757520560659062158465600306280168016288047876036879130650522471297612840198558392614222261337746665229452710553025323367335362325274704709344938840437575945987540655911328698294890887489365283824422428905853929106153047394748535970943093840648959566277994875182094019910349338192289106410585085922889816274840519708372982255802165821794767208444442415041760495490144887372471632418523627641922342557769977312767733159606692064380161612920800322438900986604629968747619472492673958207367040332093722789259457202944999981021326440488036440619189332456076977966354360692265938734034320006984453252719881981538624920407409861744417304015840453337247721128890934460890808418054435612794065065901393757023735610173666844371749521991772650308163763672308306306787774649101226442950064452373416913244036903033675611948085028338469942840349707153814687576332535629344730131418750419004495918196729558854840749881796251125591885132877433004200217746256326835661648861789482735370081232970904376419441252366641994595776011698479726076852554858432161851903497597856719623975488875402827983201776058989067121766254287060506729285487997087311245754104325874146955017994986266989903440224058958898768435875446020087671128416612025424567782111046685560909969130795502022827514942664014107912452574527261858298315056614824526060601583447534481029623707604205734251110258649717269449126107327748162652934964980438083064488623458168557790031155518633394850256838177867822671337840530951046666889595510633707529105172599643695049837042962178405421883653759884321389395448240007790589061363875311452324600017790333762422718079749461605555008932777412813452489597413011697307248922558412071189570337452204225921973202708046220066949079126032649626215771520392069177081280208252837714132740381829033800441881390317379197164640957277378982207544094536565809581134417277220651329035511804000435727695791994850613374728594641725281481458974139707554855774515512474044150442059544029607765295868929772161794127368121139047110954991818683315239404355631304382261936130574070291800987936432054040212624409484040688617230569570042681524046838150690660533860570870038437737548085115398227812610174372856518563546130449849722279276031738914316343547071775506887641743296739317262147415373348281736689939036731836433392789352924618418656971086012976042698773151628200254230121917971874719678932237428228419853206115652984821374858409421461563006073685814996509703159039070539441057625080918620867180956703122930595814529490783011311829693911718598822454308361829021451738342795253764430199039044305870590413883097125144602049045125373066824842541835162796173639986170220207399189775366260163920227656415772618366459092871907491777188917083353846216832631427951711073440914929673125228641050195857347988218894680650925556039757529366374228655086197589089052234950154644039150640480219106917245140917946981124451883560923472913606176782522769178761725997379430371169344923058426267090757795108220371741655216683898096630052890047275027533906110955962904933332218861083294383659274297032906058208009758606967949976008388128359769414869861644911372964086933997619371317722623027820958148636624546380666993657182901560563901976365280888531787370465439914793612213741872024944672874989511712272951924921463853582693338337800419569976475750745033556498869865971235348796675473444221158468094703298355666157513380132234124103093737085719071379126467372036468483383333743360680161303220075410817897453628015225485188462997323339620564196902185672064679086757304668390945998103378026935227829607361219253015908828995370055171421980672950251097347281214950147624147784175219986478936242782975847549475920045331171587581225243340310776534045156211565770171366280107698578134399890881662612955068049086375805212167800971920044727068384830644467876117305910661980970197222341267902990948143329166789676324748291671739878013449769356044488909387568167864181808435893342448110233902520918181080115868338363926220912587094391476237723133093658057809001980927126851305458967629307123904527093741668538923252881326472017548251303408477817377456555862996801178836352382141761442509668666598307070666499091091575275118895909052049839577652005380521946075388690399256125954382028365798647124781905449812649106748454920274765150139163468820977921279878207610742632107767294986867221265666779109749777076431993422243923255077245133234565148428115890155299119559580643850126233224247540590025642372978849464385413297439973888503591583273078575806457313361794664786842482194645308424030603049924509026348005089767392342030944766425852702369523363540110004378801173205612013398857981733459835104791885417382300152833988568122008353653206234768509037165967271250714328257033524123402874199975385535015469153671740921157460607535841788230502418300972135670651945071517283286062982247873536752410532194619819914303408958410996472507711124430794992032548357776764426813349932425345359429129721411219820266300912900597394610125130821141673663418179421024876459869887683943239220003867412429270341462017698339032772043547066927198238769202387095248735919256689420172499069293855666795035729942934373382518216115519756037257596134416687819429763908559053093079866740611354919367362993726382075697149056284292501301519759318094532319084831258754653232909657402272111056384577105452260649069251187896866848586217664407668210268346143690785200826157271771318985094916558150232160723911775047579690160431988076726270762830961882180226954993485808637469400021620665023354200445132748729305522128426795927481804098454105807890577953689333938043406120489306923397114967670349237297550393858200403527025688269274716073197873396854467029071880023536104494325064413004841266339428138129166238936250902659795491009921964784794719186275420109558563436773571743102361243905070371348850070333628997848059599296382362821094440902409644072196491571399067813906497956991363165908105643616261391314206074649663010322413369883100859043698270934914943632636549330886801608386227585488600382984750738923304616691573809910700564362873822064209748193070789276076050159952408510188813135432216462746764498165670274337853244283231853592589770514096561289627489070107886269259066512511950293042449631718498142071867541502468640734675346168099425297775773254203173204487101532286520157855100965466362773389996902700371031785818786471230901576480750376687339561857608243091205565927885085295584456227815173183182531106660605205526768802915298372917858277554020108095360081919783986179385913972828341874235301174283912187086190927858869307451118876534744144555260571286394659288026590740056187171310477483336823214368251734818578094186461795355588976043782998341742121733674913592259726143086737462318337191494954896251858658046381101625280221108402013048756003893762834613922994174624302510459642183163321117962063087857204678325031418154077677696205379442400342647322298385132450971342471630685967029800585356799870857948980632480432570708944224590392197235401706545960253142120912376879315755320298616746609159789044290990573633699716708273458109199025721499141574644905804974793061727768532238857714306169772756913555525258918357226506288021449049710887005998960374280369123604469132728441786712146053058248283774536783051374516952030781294995048010085176056032360481852510616006193489143548113059801846022571576205276207777414099871683077035210054733031012481868294680393071192547542627096180036366090514976923339611005921765120109348257723539403061687789270586082845580717456455867222964386622680510041787238063616624557968987826524143399010206579864454584878938365710027590149416275805691707760324673298915846201673782694773008560248823506634139919478092394150304069182264930434884315038801066561181598848227146220349436103598570619714577054897113448218491282337979215726667843925743399009225822958042474907401818733216382091461694112911328288842992835306650472198683760292967365982183655867298120190481043978462615684093231443260548931847623024111825005310842902371700069358894153465720697139734607729743999946733244120147756874770622591096238521729307532142063757639158357813995503513589956086728662897469118440115848838711882300108421455574568938107996011259173625899856888776966941864478627683046303019719757397764285385716876657416106323024060126376181386429124262625325964507355736706823353328600321200143698509074504910605968729258123705538756025292969996458958143105866909838704215745467372802384509440303792089580288662540721866263961885127515796751828487703509179840724265040565402955625741470529815988629275469283740174634684136004907498407298233705954327936972472030029401485805360457768471399039689794483516823662888635481043013432322530420537844041811153535492678719252883925942241217175267790089371090482821218239318695327813876891369606516295454647178417910878514628113167498990401927323048053220065545948760299758095374924928256358680016735363483288486814602328214477100347570068779156008824948000806250823215925512217876555151269444711007538228266161023226645308662107184690683653867273069219144327177663602843557292731384681434662467759515582505165527809634323297065096045433377733285018040682039605647815398732130915636323098526024543975506480530160737601616742730994955433871506851965785342728715529797758616124380888463920298324894980125269799287841496528708818424373640500716116663745658763403690654245933878801840147759792827160326484205624956017563954106538948006333611583560792310163540586028142926586510743749891660588864919452671896213367546400254688559404086776786304123972101856303193796910847778546326601538836668980913214063366164144760624212444119178614070631757046826529041856545120655306761647646411456717501008975768038443931324024982018245585392198038646586195333156825027979299225496880905569048270714253119102209020577022188073857428389303035060796919810145641860770042013461942836279081731478033684527529628707175009521891835420656518085762760913512646267804116642645945393943583910966899253571994322128083880113803298076338461733872337857495800906716634150487221149071951874704758397300560895270110558357891738385067505787678037343683273614047504577043580351620651929042257317915750632929114656891050695082116402498500367877427151807926464851403340359885651950834607709817432492361950303388941058599388130641950857228999770412604875542864211405064915379816042167991477955350121189153498303168651145292561256073925821543920885626062536783331851669385128156420467515842371431472889219244603708084854282221669126352699047763803556730588213918487573977103764323720946856709004821195604838961863712450397056076680357700419416382160477560879951164594013933386148373268449099962899027041333421133271665539947929917874667214280517117083181376633163953370944768079978345835061579111321932055987548514416630164276385163394505776123233569652127252164197100638416176071818553558026210598901673454708842141551331132343705874899564286585146728794344531543971779216899512404548197639044098255309396161886693917340503745998569910917821863949431003773628814645504725405121235189804234758848400660556951030034456775773824740045970603195379263684649733418254800589040710384291992456203150422461004313837921314601052686937251397745651639001736693065487219563232899834203354589946482854456167237774533863898366599758328545351975627097418955609558579426845799013109446050766588723533214546435151445202402019901154122380264692189565432362126031363906446688484341050495489029325624669458318863683383519847187909338054896209151850492883155131656862620893614699263916696224658719872835671514241533862996960571614901178195097269991222620069011033036551021638083854319756425077884173798664963789138606978666545724878330867207688174229953498157234355780766314539943685397456271338759430531286947217166508971723828548714461963767720786169915743597208294061135446363470889775172117090479151093174725927361485750530948585158977283301538319821193988851547064872549301629692290528366582891059186626682061073414410968811365021559830331101646226599121182555926201309168467509489687791460039015423132180647818888610355465938330028601588750637405934380020237979306069589036723664081102157609647169934532943523602342861088485828533680301628944180078919382885298688143416549203055141045057266316920393195198433822296108471127499322121432077418513611234485064019584250871234198759759595636349330850536020724537613228024827987655769255548363351225877770792365376687676718664863583069541408823808292146085587758863500415111176921983837971029010410645054489743548438141305234710041503249663582217198024126842052698878249544766634839756487774708853290372771388021706212605434083890018329250556104274076575707343295001869668965183681138177417548530347117256878258312134940680521416617317522214008885185487767671759514907389731146757270805444115947663262480505744038087246373064514145799779972788242440862050936496077170049666821866660174008721218235345328647975609669371527299818154830300973550229659105744468163957188973975085511548435927687752396099875260357079691836206678868832467784524491443442155186340596493925741430115961561197903626649009316473053804658815781103104652622173287854816649595072025215037764225699906621793561950673068233840534638880018324387557755959988627714788541012590198966402911897404521231088060207802786153082519048536510770037885832470520448999789915664861868649853039119440161982644834080485045560600756566506540885769296599672543980601792639524970421307679922217031250405372681335959468077265045793252660659070425898977685746159207491287308184395538520204290866438026736539087262639774606041304551548236497286973945912130218206522208576946661623717313847322539980664559488128006775369250431907543669611635646840264168134132004355783801834123684608459303251167996740127416869091947617500335757813215064897172849002514149092573887030631242156098064147712234656091568362724742660130588255336058668111723243723806154295913899096818920492898937240944927077114585701047772811308975874294801545765583342950523416701643817853427398932432856186754175325831852938270398481221504387883317413737054121262061960685097653356883975147539533610012095107706710660494358263197178102821287333273356071532987150216079370263142763981789593314683931987609818036203957734021253017850235612743947926100135696721791788931670691699614689548006811913045479258167618347455858354052026107272949505616291888301453249801151877230886622508629239479541992628100593706280219491877835664533961966874377067168971988156361281736397238755302410256735935574754484396791661357416913192249669123461681759801972850798654619321957243100465588875832563092207853228043621542939787656710070982263993901686714498795382786672955626192036739078334099289557990786023089928848943176638878334493385186326061143566158936861466125109354386459351027370051820678501414165155621112996089730541764598942144137961233762328834403975687757105060394335515823797859205145893986131509065797464821164726702729241580142130533533753886077688757899738619765859215484951694425331686827069684765109346167362718135537220873850253053365358346069597739883949604261948782787437468870831050939971109920815751634300272287690345758386525618632978717125148727838151464596781306428814494343181730174217351393679576128347936731322243879700266067085657354413639999070211369983420292065623771820122825552281521947535313547598312282590861211299575633588803827422758864661541396732350724419782734381466637640530973235334365846263266438364898282402138260416160138411965004243684690445174634970217693523917469873986093993134382755808970931335397391566244016591170525693982516125282655976087020072969463045741898301898056167990184843605931376883858298978022831959016853606686693045035868199608181691020589667717550552631457039287254731068702089833557110482057190971999665127631348404271330966354731193831912861815605774901235617126914878874890403323435697489201929080381690674283245243522671280793708403774672405516247712482469703336252024932939972639353189053782469834914804888325942579173356274196813939291277301485647889291472063022279200723834980730272494419419888016022605601188304236461017150228271886887606618433249549460293577463509118965858439865212452765986992180564454530563646189091564770623946750913971946368726535536758635890348164281335046361469333993612769817616289433730288577807409149497833494488849501366857905253409968649581836176711847299904283598658814143203170825772337500062619130326988170541245518109049602502287397766422801668285454646926792912359494460641514159331170387448288548599058667492562003378808775739318490514745407975988914918234275560681511448669416816657744055738578830160416785261554970166456017258128598381663773340858594743133486421584460340454906999288093193436531194762755068173141694331437687213101791433335834262999150749168818291390890606941602987022209207215468913221561628081184697590053848726622315087629249614716791140049122038358300152607216523887893415841256480248717052686928133570442647616970445066033780789448566683271138013774728088582439741867323430095580994525951932137466917797107597347517549906269918087495758317767219949825010730111776937882625688124789344670081517573004636264957339547799037321895222563442475240752939230088199526257459621006700250194344273193046560014440037492130142023992941615559128848642235452892522140658754240404690052685494246797357308252450395813023928037870755941162014262005557591650890882265467692731461023654840203487490278993397474036383158648807231577787595941144594359505307018951873577693146752128733183434787787896551055208719683739023926443330181970120247417328509396299385398836845725749435407257802996288754519306049871487036720221102278643122864879688736944813899516246115542619211564023677602790848061205451793143779632280383407679707659898574584501940430997549598475056666659562892403216440283566521709548988375554583516723171133573426631237593447026472438088219870785545790363893051802603497040112174361303299836660672657608147104940795334353427101094111789409609777150418479220552319191496249478977760818478439250959094181306389283233804450943478867584571229743925586802031912670670058393834063351280417554888658345658187341761341096576276308708068457155587325116579668813070821186985435322202359589023501761959722486666521588630562806672380181949348947129574665185087268482778460798146122950823363636582082122364478938244746535344271400151740189923331259136688482975711043799724149758765514734073013270611631742877525112824487922163752743784992945535492129454540300714025839880653228510312615196104119508239428345021243274154079248965665600611505762357609437902412178746521375137233666946751785275818798341103765502602696976575062492462285450711977975352571959139767384627332932070731826796708799327020353487168262204299944534612538053034958953152409468923549879000326924369070994670020776493881087934374222990086912178294796439302535918884535372198660142346322423867368775526358567873281573839456699434216164931958589959123392549314590465784984805531334375785464955234179625786526954119193701359157535033877188139990696066937385999528011216226040382507230876047281311362123019582060927422544412387896083969132764687653757655320754293436954123149631059558922334278785002982499600998996901031750388414036830593283940169508768490124081009176385124313701204392829269737285170388485559903248768020572987228455206625069682593302136106450202950272803209182579509075287522489111894728886007737049558098930069120447696471228242699641013198116720244222027141889684622626998578262019236719524549428144626961118052730667097647174363001064559056308551533781215506885742751115275509761038166182182358619637074973228994993794269184101403725571032675614573084791294643471364247137791907002180718833285442526228908666023171878490987929676637362934991563851551114899387366183445279851471165951029007136429145105619447659684807963697974826763108383511687003968216099843183498848812129966010782161106906530882186967864974195569101780417218975380395401439962508103072770278612024323019676483608045704966627782493429470388761618913216056406036478706995500950705771138099843335663338592797199086592355070468952706511186709297541238313683389795228870312720215470507957049817757730053497251253064814531284094413718146018826326716021076202804563067234021827817067612112595751419242690820054172725363006091720819431211651607571646145249022729831147558792319565727438461109946284931380009789282055487285731432441817702171402181754339199036292047214601317717970099591741527750440357168315674302086600509302872465550167110608603194020138621428252525896904053030271265559975001903130151625869133533858643613886327345859081931336318319440392188337818772030489452932589137784265541872175077811165252385022785380428414107655954107006223055862205509078961231297205053035314087547768100573045185819811885560692633322286269674667509476850669653042876595246660792043573115767914493826100253706374298511176249475221120026448609845885558677338433233570929147750849244571935483592120024459817540357794167385977358355454873170738121404353900314651270436339767022610845820992781734710343326047019762475318414193787873860139918536255529086417393599126545913302419464811412257950688333974367246557870021295125401509074625287543143258718007034629166419275347447086101623749296426819185168841804707978781266909748617098988363658280524665211609359200802984879297057713316109474290827248992278717516931989069259163723712143106994163156097044309095052158395313864028984117399095431138675055118850342616062631002179452974845131798298501994458999636734769530282652055193906636308661482514162569527185965852489953193027672948348870480898108819657717491904241669350048022814076631954991772034425499871768573515904993552887568084072104668928118066609151756495268209011603242733742632027561098337578132491625468892659521152662832529129912098689373045230786911115530552890896473680383860832762787828514045253790739910207025272934037413964692366745851461655535838807083006505294526622773486181418369821341462598011573207292584995368350451335844550645150467662619320410737078640972656920832717327751368473353623266296569736965253630392259945177103661265907660119208580224544687417819982870034342670397587825292731671449076064613993589969168113102083743299115925292649772882703066860413806544164775379980050397368911374833176743933845153660163804813326076120580752426909048913108577300910779684313531266608580542166205368194568370076534298581699719776996879423321539999873936528081983269914995035766987675102743207683758596804786254157750908108183259504575954355397016606298775882382680481505978752851956788084829693184357789177714759918079067503028113128555771147652582249329116535835824433204227098409055320740329987592243090558882093176946093172055667934890798178089810553620844072595288324377503468876789518384381462016684836477102397497996813572523808187082375195089565870051154599528888433595822897835175994047203743311750732417417956954420796360203575840709701735282390758180400657603220974992170093833229857865983585587222609074254520935297470426703759046033333080617175099621534545223587472485210058726631847109723559950539846207415646184444346283179440422299470185514005992338146976642998292626895802220426476287460507665906046269610884166008188348213433946267887652952094431349589169350976019283933119681345706023691219583332442632731931990694420422921036466746064357895104696660044736157162856121068798363055153597753228986857531555744113615264573143980752168912414226753277929258635561106068416939623272680942212415930326941868755847747547474554244802087263546827564246630923563328254395143449451448631169793665625795061031477332386070780505936392787262726458178919929054670364724543564764056947599147447800305067668653126424261195444585963674751211538127230029254814448465854923692082517985855557682155152563495371230054940802424745411955437711052316685236950611938968554838769455539481953324701715490618366091622498007609272914068050338569129501468908452217931460298126644771960992654537139225028471023134893350231652195642812138370407056512447016857400537362515399953487051306696509005033535797767892750462977449781583093921555352155393871856864338518174198657932869103851120978375223233684646578272183810288269635515616352698631020062405974961945935489297662778888484882211137877033291729135746993839876993871886914195070329478875903578770721305472701593568916239179397177042631544832079074303354750813216763600301485162404322205834485792977712091762323756916749164729167193429719017493133644307663739194452310530328603309736710830317855701980228489321094548225328574242579664312000126310421146193044007960945450040452195552265375997645151120848675578510642249375362241965914327423613723340442932258908187271180242499812050740210285108833807645021874906223439226260550652223331252468959911945781709311509484873909019659284731865338221575305486617093268893922358191320076596861401860602360832742970003906878607764958024162062699271569071367947883722469650422820783296006452182157768173993841709604673293280291508355260219041966477618135654824575347179966090712221375856972712013827761350197170844613339124507619351045557017935533508819169688113717021463344288976286936910546607682467074818682208574775322019942586838890940698456433137010006044051481138171234829094071597258303137562711606061428816153193212890671407728517566750159623981021222772219094040291363937311751950495075371710224142354434446448429954251082683254946628365145762272531163706993442263718077069114807516706384681432295969602567570517610087944275555443561354818933379355119539270813381467483788452858708732136010098599700990204213823229040115012842311710600764139922026524975402412284670166909552044598629559853023040077011188571996359687581214061709392998520918269255267872866804472392018746486379139564984210831369873682396572331932649570391471675639445815667874914368861111182394872894016562095962769814582862567213034788912932769340912669673791540417269061220139159098560066002932235587816438692596496290800437164079643908875766797779081687008127903572525208897125530379872104908303500718765727560551924967149459693603840777699139693697696549673145417426018262565595653626739082604187996579732098657524273104004432142437532879666598006244423510553286969054379941413667187085817236953145669330801454723820612539953195915956511250902941013535888352215053322398888245640385044121126588412776256123596344826376545385154764011159895810858267235755947288668071602484590614196135474414012006849901847609850355952654888203873826709614855236688680524962354435298761994677297521017618179348621751763422208921295131109236802613435446103277805794883103610845775583569796632307876832887865167249537923329363445492307952267219280276620620698873930773417211681688865611590217693792035598809016113187072682238621388846563565005827616502809766414621330589170143313874530379366182048763439108237265981720447640511571863015677344583150805682411453982051617352984398476160759614625942961331645219707571084276371278358112377851855619908260388840572314667637703875835684595864324532661367763897785417163436254101933684100422838022049133269040441483648576318719587662338834534264828784005303184851260147332565644367218512777258994300101343655226103862287610506292554164539767600497490787361655683094598319343414490278744934623164210211745423146324330271761438687896408361095364524408494206360206673870980174235662920591735313606367272144447562929062791774466406221122222778562779609827774472183471045044098599080355557420772106290205818672177779381824431623167828546344950285065273342396309058186663289449683480935844862509898339945221640259670373696935683601774779578327313325739933592309820270252307664588655035741644663707986672634872542870336691738194218011878186310555163678244465565924240578638218862420664671821076580266646800847069308109443546376391848893187303516814435685295348196101005023969784669931307605426855268718154942365792393239922138337043170652157160003060025768291169015553964040828343022638846532214416746660438516460208984725905440149478838297108406944733598141352051854651177845045816394091070862178423813060677931660047231564616810852110160436155229050151233501999276446339659217947415166948781950127877097020302909087764378650969054594894216848709366652367180808543523498204812769953911841491848306127195616718621375563557008710676898341482801593810343265879004192695315971738417987084057680275544174004493390839088273588567596841754761765944003924877252926554885170032619650256098506259666168693906497939606121311217061785763308806388000828049657384715340142157843214000789064733670995115582356075202151626730963603710694027017183409780521574438951259795172088943612309340137431359337658618949364426544873948793562076265924577670786934036742613372036893444699789818866852573064910530580854914729167117580622892262339211867990717894661097369706537646942888154736012926877949731093963852242851761823134766992002415929633638400021794718471191410570612028208746193472554976452770892074695613975360103184421243937346178802886073127662126407692447651104250836992072044452249258165160155701720055073772194650497002463789455284645475870484036742256346679035499064764215072031013853017513580921357259443374112844202895349638404275049153402129776597591462386215088273942985687990649888701357784095932895846834791805540877336751771632949301121860130310089838994390818249506425801181168785689375074714998499066525842355576841239977881929344516669893552435238131019516114421307403937479335482568299351872540968476896966721510616924901278362216727438487801966961043062903798773695064213305879520068313228364015450261373862057662230665224899946120635654874647832091908248087059952128435224016014206607212119956765806200102620141333430467409742598870341940203697795374913980525940400140839951188584286938172784147257063057882725214720949361961833434091324548836742678164310071160724548352962565256934075000693647490867756780897109823767230901881271884016522275449066946008213772527173018722278340965431182884440583099088989181890003630858809026522538796389142133380508767849462963002176525356173654001216058864352478176719442383259782540163183360318172559523531648589873285240323570211065645122222145062728878040889164529695824604295203077562832259384927042355502137194921023068201240442620217699349745900765388709099972162635879014526999480714508918515516271927219719649119678576956813245795754535144625078584728543391718904597278086357469489730582694439733519678154382199253803431884680655708287456588705677000448002222805760141491534727309970627694986991009432827101238150797337511562947337380602402438681645356084497484592600832608973638277976167968101849032087628380903456254792939473988818970129238938675914424328162918865785871775855990608180296598706963729598323712899949791114229560716392459301499466562695825983688025989055425180985267682743058624846056051988245852110356525744161947444595983204528301966449906058122015219948249275128480227974100917061962393605147893927557718029562453438161972915702656114932737313210183550698137015002216098020585972096752229454429382598712822521577020178690240623765818888142000456447040674560241599735146746149179776475022316154562577537519505308798933597571310941140491040557956482246317775288950351200621640512265252635439945089836707186329262602443591428859677164131598241510523045893600835537323147041046238912702668958697090079899099687999719250922197416438443685388878881369998642447557635513100537113478305712815468196459984278042325571827406589502519490979515390844407542807164257138656952375739452545005797388314864051761059920905576630332154291867635792370309869994514210829939238663953132375012501061857223092052564978137688184004108527573910958885203798655798301863194934653934737142643136872608125512010252519576437372467071021253299867015611372687629259793781524532817358772404833593348695421031925168239341340209007433868506783580759231136288448571021956293348210135400053570533688595152240628281308068386500707525184720540385497788171917383864266066497191206174538130551333197795447401583764571945966053709445848523706367538962790514050134744237075937498802355837596961749294633253905042343458368271238364082533599999844698555898197703476950708528459701572141041178440909209297438951428149811453780374181114028374922615635432257085960789153767401276621156247221903642628330547560937439038473297093697783544772664091048635178403331839116005163894193806834534076261859535822341105273853059244413875998681035589383225278130257422172114889727491702376602883200210989130595428277367148226130150537518616399415502545556994400000290908629302219645876248091707210682192373810534483859104002010300732142404306498628584018194174309052844070827603236426513619942357315303055302082860355601296491770823505731844829814509458149128615570953437951111062767198756817374573289159160014278719661304545640568210324827267413298992815981613969001079246844050318474568289809369915306706506839244834927294174549212913459212969500948587511298284996035969351645533844321978877319320910132877902072769656563341490923776057476215664028193942254619656598963877623331322753893245560432644087243012432381833154726891781183851901400639116748719336529744050221341132623440845123970545655103131033588673702900065137527533506687817224118052605659698760081357496102403546823740350618057251097117750870138466205519550202120625343466221408800986475810834203858340739960568207067271372414591907933176032153400973285180646146617496307433471653558370391539955235537970378711233843530426955725464359250082200041468658104174220006602042532349890155630548753089745511102537468414442578594401860514679422994022544584315461755114379265207315068605537046090715795813501207648038579755187877580879470671062841814323430631041226164389465901895849298561156576052235359315155513789570228139781644313066266086539649104215732569738114530212516868251323282747552158336834253787729322689657331354226517727502730041381481693523950980442771994841494651806494169807010645623295244474405628758507504530237876786841022543265058731233213990211701218661733721791763884382426315241030537103667992069826184624134204268860863310095993605784308905805018829948181143756562669883052598754700571070540613959196129488177143537067139065344339120959306807912300749224950461654694913374673788063254717319607196513872135989293164316983357492515847568191055016643570773369838480100143206773459263967904004145779409120029531225916843488881570029875911505989082844173644562271631195007954950392146427144439488424347195552733074865271954637076870613968841801153551602258972196506279917236365091612306871844925537773146779318211783799635077028105334017461032057501396660936171696775098529313474001827580843392499902512902401717560148678989974446838831843565450482443816924796187088809963071093016380599583607526005981167325000957531925182356885814575790221356582511875290411203463821553830755933058284358525658751413111407410881286464759211393545003951451182386965466821769330269351616193979578762634626214387379189633211685008520716890096465720041286400280290654630506057060339532794458358305390487510803666358267480617094618900058699651134520194133127398885210048146298540090833560798136340916541761070651860368435179882759137098433475254020048152325803979221027494768005021935843808471390803479126673859901385115502402177615681330447989420940176308843513898247410397287148461695249193956061869652720905964610095278331597360279066422421834956775203829130232036447467654247942324120111005256018068714329476587644551246978348851660602304714256736182786644623953563495824626173667245147413898572988572484884737263287392575468485551441493767197466123131496185069262917578605506600450217494189362169345921660708325854812167997560109005357931361471534911457109603005263701634076180453273239125127937772508180695602190605910059962597931994263319544605573884457985401408460205980220811742441823483548003195981126197663620846997852648311306900128874786544133931275605660110723933407239917462444743951915619668617026050749712763058559823943385838907300462274376375234061601585875382387527871066336327546165839445542981286705654595296524667729766475671870880222332943646694397626814727546214800383758755844515599271190334907399883318073390227029900127710639640123146976285625331269618102620990672101531790258887981713583161716898973494836147159366352683963284162540231369847047168518434621873833102458330164184351480947022872620786181084977186882505758313414351423718592651644224959662229667722020436937531638474688679124010603661653417533576065703056837879736272084057164316953857254329243659632489986025766565959790477781709100876613211995818092450072197977085772129736179566365743833609510368928751008120903359995842646685169293722529025239900408159278366500724201486542981731660618289076138918353444917981011771623961435847519993455053665165669280566063482018263663026963815017355203465394618560577738838289868977487625419162839521936076297708097119694537796605605104370364513645294258657280626892173927410163802714272831741876798038115518165873335481859509785524048830193945553642129911496332630755580438263297062155335517072420117742029389940553107728048668933908110944982119193667247295002657186735775542423470724194202324573579982789271340263555011127851673173086535822979776168723859918588988742959912568269486020782155364643104920836049131225140252435262897931031923569877305271338989210810742134417315852905749112708733812337901390363418417571502007369104380724749660459643910564871396388536292274450546138759978727637856082592223130872538673507588127162509147047126938822200670048637400680093655147863594537623673755245485970690333638663039908541264056809323658414743661008530986601294850871128195627629701598922061145241545581258461813638041998306962699386040777842857384282285109322635351326258947659772615959429937797868190313243789177133415855810849007069096920615094686369435826319574014314986156639527443995359378919111645740757231950784664757176043526733000791027437900382684561979772717543735875875556548935811155856646768903291476549549342192803012122816470659512670093473320499837813856739650038568671275935957883638541100512728414366307139348750533509070713220898177227342096452131242596404956947183101752612943168142166260238381932090036186253199717692970719506164911914157317546760855299299530611262821795377536255892749301227611622412905110520514181336347812636032966535396730637373184136653668111188185046222344380987439601025935915382330972365193754173041904051291588069892197182186711496951119389016923891170017983726578182064634330583376828590745269097028858432797453597474374158807234980077670968292243407030820894474842410562951639456308630673998999257068977501297500755699550094635385796091172730756619680572657967592176663416652580446098363062623188250969015881871867893235652560907611201487475951644277320273844571778472637003795068489566678430222773572488280114118190211259016991412296124460056138712573347686750407456614845474760629647583632850398623251239053757776454260548166478946246601934820769521327015141531958180225866886174297317371140130898327178139119676238727331955249375380898405894734363486241385843196529895607036327811741515171868869619351364691389080696268635222365149098175325282791631086659410152213529972665061213623990414989752655340278951008081929197367827043984280811071432230646658225280282936471813593120096896040220755542034248818157024249031081523548639557847847990609943379823180717207746789946523937403907346241893476345174377682688155478015712632153975857092169502300862597952815725955643357482712373503521850140779131614862180774475934674330245097633822936026191433540181954042978228240088155878593280208336442718847706096242889715150920492365997968652371521378002477995679088307244980200666858172547026607724676502027964862599493437854183994559475743471067327491696030169689614245663748973185128772971745160778131370191287000268324153251202162581451337153032982754655247576837326802619603477474167118427395274774687138003905301295966004847993053177755695638118486689894675406873881677460737145010480064335164582899454505729291906424909303698017305940309563211458749881877148540441908915921346217525367600644946715149374460081921523927723322132148003653468042154211593890137188468747527440211163853623862204632264402495954654430202489387346219954982727995508424956782984029237756702759577030322115983463118495629308496521363217303307777507217106969024574127279711790573761821618126047448615791988725465125153622868713910834538877526436032567239251675125641705286191845666524076640558608489000837683888507006595268048446745011061706346044391389684289557295029288157608942232003368571981869937522126299097148330753703772748449904451184505551527325702676272380271066959852269134365891508078779519566382530388527729235791106771264225910483032008375265471596765613308218588004228036880160267624387226440579464158312889091429897216949787970959179314365388994690270428039277257252654883841418758499410538034438265650663108299628418343042393179686069539106921365782372989766442925883902964928114889040512387357254828208690155629429052658430651316635688009338241463386908533774753490380255825935153323607530598971696496622614829897300635975664339127090462164350799840698870394711683064043066305130149269260757725495709703275451317527528347861582140101157946365957053400153161712788917581086269136409585137316596271415288002567087998745751306029229201159443958632189878286485678604632636269713681365154995977525971977044862650599015859698601173118536760858674571830301272097891345570024944815075794002860044736829730074794111134315753470025959357465810835178689836982286047176641590187315630434565700116751777607774125457226929256571823577729401969710356224967870041327931566992625111022247573140906479024439083924174599419809665963434380868990849171127406165242204915162943091957850864764517195384142956356565675115751379564272181782685059149370662433930010929213114348664924244522305447610351711686609786293063934283388586165303795053309747248839128617593629345521338226959892598955854850676113552510485330188686315560053515846866893792133373772213369688129378867521352178015165429150555056225497685856349435766281256239102377360077063245842683744838232005136235332253121708230703046922372226927503471898844346556858905778894750329067405343204913069587811243998800219930511903816624347343176084350163067557777156364929575030978833424192453486985594052549494939735367357273694874395784825364598187992770991926985649873102322625355823559193447082408628202930963161965850068953101600872310836326960036506829991655506135449948121601779253928391909899665621797693710378758169992915114207954685948460606106865049727689155041331973262551268658954404981438573717099444910273201851243260019752109696031427193460801549384377832049323893739821221306382486818855396908190829322416559897092412163606699473358947495884912954106360221530121411734820439355790804819146480781427987647464946321884385538057405801522788633482718044256094179182022025471922325868144913982576508551293001678802822229736234159294745961639205656724632352687673702894153997675401906260508892279998458578202795254686199381324923471002416547112619643635955388696901740012398634350343421476623340248743499507835330979496491793438033294626433612630911855808833661202262016270929722751572683928534492178678364678282977307748305062938859561940732060636425801628796729578069861777684517972973694470374779461487626119500902092597156744563878018502761239557251669706967914309013119486911897225746162311473277406916069389229197148339578639773631838663950748946284300627537348321156923179766700432325482058925161127563996544973965611994645477682870727652142612366230442069888886139111072646716265402265927595352093002821364050615996814364783842257698760098609133838818504435140163428328649201800057824197945915559476153765438952821249738783949177840471534190225107833745078692896821632758010901437049324710132693407043030523684792203458362831901524848329087722465729974468896371989563113638878096799186993650316272650345932820585954885674992804327243296375483545912443296789928852310496321502035412820998335845694174250104225291405803956907254586025360968810842990090428731868943140401534995779969467489321398344686560085540627532588865321134349697601454038682932233604033753431529761650596964282905076315749595284308084085289184086711868307497185905447039019611081219009353768801768985549794666384346434776110524106377573458149573408327179768783499617897224529415117471639063759374593177410992234684417694832686052528127943178433067161618903002954263395517503061188024967856677397200740045037324881943320203335995539920285974443638460021508794364383846527544529654050201089023584713118748279080086951381118408500902182165696035013541562367471254058604392799874708635411296051012524168875456368119046738059282331702574603735495169047558887199470170526021410376006706736039699599878666789631477194974098899574711947477247935949899331146744489034358155492472231829316187499379263782438722656657315199726515486423314514500637587651229403308635637557614941786891655749382758259349005531727601993917406565093443629034580257529022818682688690211985386165060997895256084468542163237960990352969413483462518066949083651596498464058550733251677681800727595659691046661603240589228482910683940393096017924420691959650279691517232921389204975736117224809332598898003529578953610904721736213329738848905791808972961851215168851734697126642037768579209449547339019597666344960358685376772830438839775897849490413198054702528087407840422399103038104595443240518969348721641237967870049770436513770056006648409643226974002353814066359769081852253386101641438510660902478207683113391702531819123006283823827586092094370570310083360247782860409284531212637853077044043653420649505996928154379705592626159653130195340747792499649232167047563784709523501655634946044249611167323781682736091761242631058193067835866426495536053652957648198632752851414590769329517718853914514352505716280849467604689449359253607862724528252557385152007818191856567467194116571923251559799936131473805084053020867948975576108893199818475980569618462783456398894450683465073106749067987554805967093962737867854591355759316521914323461014534970625535412619537982974409363766983559702839453141634946698122028637717750117585448089801290673668632740424578713021088711114020403228690646584392195102731969334252219857393081565613513456573986191197882580690260796647440798168820457509497812086886806809243883460070612213480270360535296423161134426272730638363540576869223016753780106869128763522526896402982437798882090237842292618865593126392784990580721555111212407397979041029292092233810254915358850274627704122632535536204523050581917180745819014730531798579327193525392230210943864275908518206894432339644384729408070742325372338426032823675618772429245433446311219204765954013060801752614302163629338939895155000286776167405312092626399116827842703298767263930832113343947770725258404355725392357284169899207057472268581216913713639137730966853413222396976160549314173571121326064186578282613493716659247110318148205122644310682143096558057865902105918646034052752266461957800915320112321489694658384116763041486955717318629254201189103992472083672291990055949430334441730605552814254942763544873424330173806733509617595702974844024002100711819782261062326550582700439924837481372016939995776983660370781159188218370574272533945322980737784100286392787799770811948525759022074217494499561148575591428833497059519152516919525077414424834202670734772029823541973302851657778743283991451349979998502696055245208258032073338993591690025675895059766425124406916474595310696110638850665776983511850141723964134824440438625619753141586646003932463302546802655969405714584542339089210057499509405578345885364800880437576034551438276793735912139266576237950679328691493595109476744445339017216829846123354933792618891250043592250207160654893790874389981901985188811791841345567414990644660036835404848503303759867280863595972213179309897845460955951921309543036295467047849234512146421356677382935863552186564338686170407958001937802998824466131507037500778794588830159589173049587955669156976723314404260414919537532785010533842871039281499537579061289201217628112635313909316556794636114566463103109643529290750560285201897950540406448981647848321717461889730176719794967042101004369821859646185926411375735883337402497015008431808397518516148733682112798008577949532145693931496190685653869959365126282908729310139207078994206059519310893000754918135916106351320794972864639703317164514965403863598282738432413944777738682576563781560215136082621234509854827156228956430196151399934311901108463478567295274981963867854118955235015748599869302107688252258128987622946604904344331625115812735844134718335789011583216457615521976097487865347704894876456558479194708383454252173319154878583356023381821715398653406024704396514270310401154155126125421722281454663549476465914068908649671690113819473096375467478397406228427432464181213013969722552157220538371398701068659107082555615455372582982676066138219052729531696325168928929849273569451683508620411955047237583252179268048746578316056915615126036941592801069512482483339018142738467979316419055043055624113350025352550534724851768280943846417173270516559694236657546868453770826308107400570669819496685102405679440797814196553636104453629257136452627309321450945419369828198359543544677344285412064122931962590798500382326478966218377256126904295329249962373758426715819240121912180005916454045999159583710797523025914419487451209915500081755419274015988443934409851553981778105519761783555642059811475885285239206403915338143844870431023436742323618376902887531486970716106899126548435540696844184959129057347490385900917022697944028687833395349612268127529865946663900121410342112363532358536543469170584386465036732021530526911625597379624188514299288767318415759254074055943901202921979833709975227884108311738883696964424665672551301654308171068286886796931893624200902461888587459537198801645385372893053584496482699454016824395769454287102822722746274336352363248699861668797034800305680607947088308999947399090128660822965153207319887321222713755898798422703561358073889245104844143048189545759887413819292204285793405600510605668880689213752769810212389749232807661898222289222608136350100804331804274294150758584774034676386724083753677327654004501942438625142145870242446262882761700972864495304334447478648317292587828252064399683103913963679724685903042855996894225836518110541198030847813580914531639011370967282427058911713786550198216836594184141923812280279784535886377988057890401960833536965664330200461766341426009191359456267756890152625974284421054012606722990176734029602699840488477283317466823719614931292070360226762691752965817759523806971112707105951229998394648295577966379681955969345117998303266829772251795001289773633036002188527322727911368500371428470497292776021071989767692654051444251941287950162426562595012489226411751665049146345473291104879710364170209390542197764624478096476922922602256631833736405038548619752246045417302625691718258157244596391285042071224558973724526111394635825675647119976148197148130966943257580286395998937999646593391751568576114556182002574109328739049911161530920119876660074413868036565936046077933090845428874164641455003993867112049665883542347795767064312010141742136532925652226017815717552763149128710212182125471549609412961893661486410972153212147790771186983844819793871792518183869998690278727736631533961382505033625633950609854118946679149055891921412782155860315861741267259589699449473057635772215966952854724136470685227036720644194810588521146760394805045843580173316266318502569906168054086508895905873289306279553525011435673032308283073316622513697955144008103763419819298341166203059041871488600994716216315868040069024408102203078582268466994240545581727746076888978824605887849492072701733917717733842708502398965915912834635579088700671275023968372269316621859020850125265171870716640846170450048635316503144965875263371309417136801075869239133482383237128416939629627824803626798751381692999530713278905386505920524097047567292832862148380607155054706250018048393188525045263350173095127473663592168405934550723128987606192400657511005495604297822161488013986799065174995215456924948377306395701810346230209263270680287311376906452914560102699136037631922156621719996060707312162201595179152673992166041002382983391075507114320925504359451543511070723155544766924408446293434723569027172300932551328812916762791138852610879951543978733992739539594094825702614369280972687841249110936622241172931110188764434092773105652522109366979451352219994353632781633738316816138825889388213120635431089547733681038575817879931434993246299348150383896236860358749560419414953238583815286412712649194051059727975729388746857789001509885946816761880080130074294111941922207654125177209439810803138258748989407857651019017694643554812886474851608553081648520275774829286210322384349294266315918437279907763052779770874407618698979248863584320077927061688162601682788071338574920645627049380189932499339886463205015401490329819354867088528831000769258302003498521121807829809411456825754325011357422173454053538969568879679945683976605574342416660328610704756246099450253816223936734703567954634955928063521672368286527418100671044734379951867749120923979496378921672794818242669409251712689022598239039959841638079586576808620184635766565225839103231054944178651095008433141988852139885595687991228511551778643225783390612100067416511248233204064061262870135097761612128691536805327226493959579533346468261656093454965635376136274676885551601785992568092699781443934689092926829821857287868139001118634272307529951908765847344562511245881224318251537643183303942186767557077834813511698115894071667050036594365022080812243109299906821128816340802704421604352889548594227545510339721701792682973847421371594529218144641544063395011507625086880736260947644518264173686921576676615892829020990696695670114546386546416268333624393080017973841884876508449908325636163042864397528279162885734904560935612232765738419792341295475505480376759264599069220695080280893908060596700579206487103879405978353235950768776523005762975685094255646289613163948994475436771362462873225281738666295245736957076185163762644858138621839196720367276526614020931837592377713559180373600456847422323586094578978130406436112418117898550334788323641960648168826892207217228395043761736472575152475459559536433727228850293841151767964934431371903554973491204636500616718884966032622495174629079186709838639606991307395758259607183418903075443324561510997628227322384519252995269303183684948700437212868569769543015101047061662079793374222598121324060151832002476396258535963382797581144311357079374913140519903146051845026683944639582424675595070188584700428201094050099475426885711991935620385934051552130168716005984152166882020161657747712332463765826819317110357137931740952375467716815085927941918898269508083766684935997167839077070978522836709596750483268024035736101652458547598131405375916063958866752909584138199816666077785701461118610324184740201313929297371364468206275306698430406719983013537663745930832883279974543079834210767007146806954059571081773942700314640837993100793819554176923265642590670882809098120713072937452284257667464537197703879051077138531027641977063066983433982254758906618883968086072437903425864751618311548374365314251576681843615545976744744470601416181555897585176896159995160076985865207883371489564719000437140839175736166745984843363166529088931403723296687257924894229323971575133910697298672997013727846817188378398756076478008629611704592198254981682981995773879802731230925446826785352149042516758508172363400751376781389551928731075297033215150963399203919826962946649801832764087185541065310766840402944431303488046149920103452183901828785862277454859587946826252237008532906208703069838274776441097804185291560148581592839976751149243721934949986244244396465578154105229490449120119671642331584207202938503624768823903150052600898574587320254168173844495075962006060604927572774509024138373805022695911225598178821209104013461221685326576360731575895742287511828179369918920414483944750637483126577072960803290723715696309526425580644587792587152308171724883344613998361832054895666675322571276894816706770370054654662935601302261189982348317710152168807553065136122427652712751364161877245931283251040579197405646698642359414969206047994901709197361085168852410718456263103726016127643976644043874792819827053348588570300036007481660678811441714698670533425196547365284317791463724194438204762233192030910482106971274869437255144305741739745938359910777275772923371797373219469827754676768485993610461862083803868353006420092494641853120880230637746602228679879707076385813322458819373347739802739660678275882220044444791865074295889311017587313708208747940419173313074099295701856077303700861638414108701954483948865508019787772455370620364553819719958353001576444265669753352116239381474804508093724893926445791791400074974331681589707255742988956309561430328196308643329697074979188595157829335397828812727586487730804697302362509763289495278303401780731821720907939136597123905266059523654046369824928971599586013139808930065499508409136470851546285153345741034249898445948482115161606373348432796692711098302671999954752180610378667207497834469086488443330649829027443085255871920929653914345884604444389464148189908988979470019410239040307129192929007721494417889641585238851977063492915595849743724657628385665015894044901084536918605980126674090479591728361073425806802878999678666088591586877416359746799518166779447184585078042269233634636915265401663936767549170288630352236679630051966005444845626709548267228766896441636784898248605838414753852780731044817803263461716439266751425524417819178376765907110364886620355629819599983449915983245402589275211161154599791782627222610491450571570683796148202710607679079180348681188280263679114960213197909265751611450682581760136497809112267616467652922375362491492138039903315994773881324469333881754043006939324551059334347002165545633333440950568919535474729033143500257579433306919652584780426461737461875101640939510664967343668272252443507326538409144322888893543120639309894297267777218078462544793989049188390303233630313001006322182694870259748282902865240791937864940216921884103819180580016171127976111280580850755704951693261841202241428688706097762254859870127240846527112015109383559729704877931622739606214840483014669060161786490453877592823449206210491752292077584792399035774061382867523513338707921568821563537758913796920087839815380047500672310325389735471699839037362909186861585292340862611088357049705271604638031535241988393961659421466481478539892096518039648052227785667549205245014365126282373630066513802804567207730505708208847339668294893554297815142186251273782009822234629326772706669578873878089177604271554685136837570215407978445478604454150782766868838175092172348784317789626637162418579421141109102022237219300667783483691680733695586841041351011384629203909866414937640073323659259944523365257103283833971540168106500296276244215277712255506042727998297937592346435969018506573414697996784530014599998003035017582063118811895230717686086603003578597391654898278142780867937850595936873881625131088244666010641665091360185768421277350077087186176566873481347853434046984134001763621740859965260578908375784262939114138514164470230312584399114537038584991581171609214255391312809835915888046793924372808923270123363647510046908936950601726800968993598911693002040856627412655280402613698128035881409009764818866474308759613929909172588852654066203869072288530886275118284543898300767782588322059321316729519066989165024216055833021136405140598669841613924402675264403742014967005135548352199440168761473070535949770236407932770392444600113938910967715585227505885409908283458308614050016094936089725527803737212995778932519305242549907975372008818046914463433414278753847286823694529129215712807218067307610800590367704429969645913979075788511380794259294985974604863774246666475421130467536450970737613197404044609092559880418861999932940072040233436086782926882890160995490051488686293181499732624749468992237373690696174066236131591088095842216503842176335849562574166781947019254016622627492314049525335460704938669597453488962326404771520638202600626121406999241411381523167636970325258064024315502149973859841284133294909890508801937046789832809685181245811377409057500620420195291003687626719373525573519981575776236721687411615041860259082624284064256549031401571902040241636822739021642212349900639333002610107569650970697261164499388974882732061367782264549180952969237568380597590191307248221397800788755458058181383759371680333049986073223627205772968405732395766711470785429479436324570228045297668147531207710769146842881326117854214129686942070010692163059375166416898513822385943179057325049305465528423793756829084352944060580447663488024491044695067125326215288573488577318867296955856867159613904343013366773331235685485765174346177365893123057350954412949453440181418427862957230118213688030627345519006949406345812861125002413309555029067558677778650534751505031324665043928303315286417149601107418922536913165787119323031190226944719786495461843985142417682113136394161908723535923736671269432785312321736767951795033790623512422887418784749420048078600057752048818086084281388167583176497437767584182132263314853942697102060718919493363379642598754461559107664187870720374232532834080890074000403359940768452549898651857067864137626482082472092133327993596780632735931004944417865857696800914306476724365949868740274219502168853935648825149969283449736939844664157038246091543302241861626243288747686481026350063733174356682186640746930561621661957257406922857183864326933247032215899817966115155110253699923582610504615562965263634856640127833798311019238021150144032524031825507818731566839340998735328379128750993984630572062169199231147579776216748615996898421878619455129931713646099177575811397289361081636764499629832135668861181188261406200148044011092458862348557380644365119715297550480633772135686427262204961168690571753587582788415703777573303177678098429503103873613759221565861985181500716128787539152201372776971651701641550945379216789284361303246831973531413005441302995823753555653766846130892763559420430005730626565846341198201354358338545442038635639520639823209458909757047144246535259062123189330319471144033505920871498448081634957748651219998699812987339149728259884458003208109790043035805444803156269855097868483041220346186359489168791871781017392117061757469367237749259495774443306148984024374876102169530047398885687585203388336480501322567922492797120467055584566041022364320331736464858315731676776967355564620557636669130321399368438008593853125575955103799999691266690560643101210494076569904638895295428473926401952958076366781232771752111351836524047371319084715941437395935694475752380263978683263546654981943448032774430160126188236860335348402309700816073632958139563360302717670912011778373568284123300985525178193375372720988633764938461608059217690316724329896839838277059505067302671454976443525323155199738179096755344172684521759790840178252521730575894689233587512625306833486668819531902703401986496419737549730382232010326190384121305131565051756404102358701889426420179239456709382596619832204276917889238282895718189051529858594127486013163606256016874430977713850518570163037701702363520382864608399333356977062788922656935895792065005976124238059436333508352346363755809409559059200674274689084064677096918578734189285724073282168703781754438652634574631549255283298268131188749722800484711889070053212836204294176964684669636463402666915025673414926615347764424444136193590660285246866798569992862777056388781642029941684668871228520064878509876363098398186286790911771499874192069038606045476004660668302485499194604625716097511113828601551291480192993799458713642877276721610898939335647788625698358038587265364036698604531289615604318241464929894195762452151270140644303482488530600751485761665663046589380309116162379926693307918198875960370370242478269516393170257103482735510018033702515822966889415283280096111353019555266376506218463906901828921202058575585021756291788985070600124817787887605988831644251780600606901645517821126003489609938094124880938309045825188635091508302323344693014073573616245868732590498026901274495464950623872369066930710929226492363767076454090802853964316025586404196224573436133916736885407733379717580650008496873646654649532032097658287673826392100450632817545107212305600094867712882904157570194927033452024437008594169586112193172342870728705963847810262627970669708780190638255911415624020948122776897985611667343921947203988993553593756804348732848248575312316716450867619814719753171153521903037132734208227942911021985039967820749291761646968077583705133685986530256269379228191535376139643300558611470888614570042417019295725270369313884367992648779840095488078156829006584521796769966058359463509614229677675165896391325808256960952630668520718724618693646077959097428215219881478955633258175416198795125370735756153289083437646746050456496880003835923416521814097714783328253074211592810477070201461758056346915095368563124490753142935360297314343929454137750684927349225551968717193538561685471434221506500039925069075673148733433856675396204701421178120886870515506868942441071378843905038944337105906645208025491943961399762466400903923982252334892799388728854263096692280039131917385257059273244133855609537112329880412779332388962845388100380155854516762614412749385158273800030213611392585814723942401855699571279217882281704780087641580309379371773909254745397842262310277630299193162163616420252420129503205593120104104473203004148800752670128620411653604025851003925470930874637495338799489750420480943723518581926736467649703582186182003993958633542164179654858459931381797729233204771288442858494867826312430711266477288934665396192526808799309338490733760167563391505831745977885397719155527665208329374364623433494138071210044467001803790645638059993918200818239245361806321624072915907397484243513785946406208160623906542448440652822280332209439000004408374211640955686288183463598555652373352005268920700055525316730535276395568294226800648729265968074476076359449743251677655718139865578050772497567895435627864425964489057257954832401869284391375192747099006471182478362458320357378748564042684977210164481045961678362714838913598093693778329177081166874066440624571543107401711163563248412193386071644551201740947560862235103731003585944087124435999482239438199691214231875309797669007070866568857868169754999998876311248903743439433599609672512070688354591429809980033299487406226765429640143048091486846647440618399773694773972231306897982288938906090162742137148762566488131980509198519480011095346886065384593152752337877112960304891892879176814170642070083331008579306975657642073280563352070349451975804994325084537205728937264963160175276428337711835676172546620311778145969426699126777181113211715855175970792260413252250477184051866297435590283612847558657387799894819792982413150348008042997671128539847419659924594984936238697335302664784852920075889504660430866869311497253524806138683953056234798998426649739654071720790926435123899342020439825127034944968501754750011279606473871162129139040843431591275959577876411850970120499511886473205749206011224801120531251210098286115263948161671126875384515624583248038402470051735797982787736779329243191683454827182544637361151491382949074104507484855714018591555589214227269977369622879013576079025354605861067888942077145253518302357371695604725206888274722861579562227049044961694584432023019246550458725480138027107104782804663035939040630517200411456910913592210793567600264132720780184920526230203265405384258969742231534467510220562111523313485102837216927510955979930282027111630817942290398006154594406748362865744821079257804502161151077279169454037223016474619085090614051823497617579396530714158245871591437821480281328289819605851096985972301906484584617676662032356204396292733349477415060325656077388333139596774606650721591066919095955302081364619379814435316791067309165082884910425552461066636083112712329867645139827942150155422846912372811736110296737985412882746454464166261886604050263282562856612957429259886813751373689969862645387303007940648943978002221242381510876827836852744918646889256616575508190188443242518566708070248387571352110880980631379068294880030339998360847767203268492275393057918226482447205955347909962321862441479381246138270358266582100062792444995027438317862492814596491271457771665139026311455155740745317104848333701933060783581388039537052184847683622266307452766506696509117141067989982808514645749136320337956614770000810989890421338542589333528106064760633486347856416378986336757030195311935243117574760291838072825169063560467491963241168826716416128364135372558538019471746122002208357291436981239894374338566220043076922987976237468246884845860872349808585159688870958361854793218961184852649480321459898085446731796005266913408115921460676802255223204041429243253491487117806634116063726443039735341764517621851653303072553004261773347484415028206345159221169882043764423831520554870930295409136394758061996261169586679004821702218170494853944223313043653901909435794491672008597989115606672060941498247911831675194849455382998528084751919396942329517838936104991972669327788822480802803095495476556304718827932587753821481396262914345578926885410646038195420734527960191219737751043360062274723541972990460536388352088611105152354745656099222626483844842446358077232527108470682549992498888808501933484258901930939036678492692670812043756562642583030718861843413698973352101999478500700323876992689854676937892317343413504657604531115142250143728721692232353752098477225666525640718141867327858803341789949396651769466487373002307467763168696604109681996349480560017169808137494440620550397290732908824678780591565334502380470812114317863171002536408540978960518872498664070426009953302209872641748699643028546688094293936947939815534248247627854745255383482903136685534887192079624459051810483518947404066426820187140004996941370053192958956246972628908067732079314146645327068050791934957411593259271367593815319920727542951701530251546150960463031851578092207270582687112296590159742936498694663486563025521957893838192162079081861886433157269300675354294308736190740304414411440225365874257760216862763832288311995121619493455473101858712056364598161313271851013332785164873093731097353002718826340131634882725471421232967543887361853590460084557131617744029492675824065666061848742792912234126017259029153348811587424552609804831977852154787039318121715175414689936227960342459969569691456737068322645489440041922838816432992551067169445532496078109616950238596507219483236973863729931148670890156931018132957935811774420196946539971629547250182588236214826144362082659373479587057253664501826891584615073157438315907445331643427485551088606282601535063562235712897784062599034265736169093974913624123880072320123448443364158720388833077408216150824940966757430301257203990206441991808661518225905958899495629370817105886067218613494123436164313272002474548201985536266330726932277012961440525679034993774826492808605259823701989361245635908695827247450571249578202847193901868217704518466588141841623385677498192321240791240289801361059028512275542642306452408223839520268582066467744607657919661501724630100763017590015216129135916655332584826783988623091551859542273599508333914019402237140112728975399642517456120656732931509163671284421532354882187266050240400345039098202238203835312988156173217544269554329663092282079145825379214598988010084621460915641431400071824337211497287038212836199448463943355536487554707589592593993127369441349546607859176549325993966287075568882528460850923899142619455480678940395222914411467567647089227979117524566045682191862554735718039193743415172608162266260303325798817272721964044402056113562436263669883632407244232681431494556620964196726610724398325482692956071337011223635384395430508087515088921873445952491512364267355457258231521357371898283503979456714719738673807977936860918407683297804558515070458033603886156662742667404815100789547795769871049521273038887004693945459130583237442609611755981586151748185372253692540061907812478184414108179177358961110405393815927018386882268445499785368963583429483034336310660855133810364684879291266161020179008842125625638986967059853104577432958019023503944809054399695378477665592146812833249552849745484339875118011155928930099404360294618914530485937646459040390780722615367951503778119893115273028353315520705322223489962392032741575311011921059847761286481224129821417169418589039968986331787473933571743542308467685248590570240564339404816026316299025279816489528091472873979320110766901013616480552277850641221408985639867958508231578201807929450628126685821813035190981836414600954715796793402795014330778307911223458598968939469459067328908880091407212154354753945654039489110478963225315871662242483799269174049413265531392975919753045067451973581930792736332016349118886273433398110025067902105820828548192551998640071654050904872421808298596547717686843640693307583166113185536895184948141804270687985922137751637580510585009094852302295695199332402533419433851927339425075886265882683051992664551699618385614088437564477528883380637697318090149786052983715780060675294402780484891263627218244259101838190884308184359943127771864716429615615067402965178470170920640235742038687660603674796776721537012654343236297337999425393704086322084557014796345087595387570603648226882103380204961523296410073878886643771446532439694804589889189542630759914060172063793211480133708911040891704887847838857551157750745013455322354480495213456143569009734547384186418591471355449238435048793326509023889266600292978889714701449789269464084661517286802501035359021004759562790497393037497972302624844297899641214041788139806118329821833995797298274886275131367068509647963863637275617762974839975012984126018412960008302082599849106421069486043320564101221197821518422818882868914208162344017813928471227067576251263724791656350239560054093962422562373625131528450010980592145320697347476460938434512114978819862268159498020089257553542902463707026452453633418143772432893013983876144817430069155246981863271676210510169862951025008235844366531628959113581990701331768249415484398114856725880125361186449496150454399073112939879578943437929598170889971957638275603736992423269564360245108812464843483871564668215909388540946352530860295014022281822274035537205134755984751142638012205488489044685859749012507022018449737101450576349134599319027158914612453036759566858431221647882227770830832589383889630466243551709626830758820287236399152155560107457719360186789700411625994030154327077228853058421246517306700209716174036321202211917582398350656759071809219983217532022790796595005688423079828475520525367465902817349209549325727571265527457954755075949303082976095355035394237250227010272979132460842732116709018800969108576453803509337035747125899883850391944982589104420945036392140354463756431399935097293179951915838973433503040463039756072136963952239607576503902253066154317311265452758356461177010215101610109569789509744959620882584944081844947647467806469114354424413817472815458681090660234429749031175393318587082046342172803722135155309657632097595175463960179157741861535566075203106652325659243984850045449600648041155373453832520887792219919672453940486530151507412468218141833235187519336324976812524149509728699319039841542455805996419766737864966754893905918853336298693960999016238994271115553980093835912413184000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
80000! 309772225166224928639821327991375426836758734458964387575212582921047851274755242538690266969414066391855481943935906759817176354489517544743365458855889624460525384239716518469073711662898314179475604406426612238512273839949808180076997921643499731018242143061860325685844577922954653183323872225995758508221394839100525327534700803380861396185260411905681082084307864217087698513325450155907817540634866926289169740152126656853464645053355695407898436769162271332990680780270634222996624061111647100874909146004251735176975110886219545917629035273673524369492433224447291275243618880878480545839401016645551379486586826989571097485315874416432167700086052139379799739849438001202478615575586352710518055672934157340029458067334506226209725655244441506937634582017875410070844254858207653033283372763875912595520318077741175901646431735645704853455634354739284062923920805595415003216078402164578289175034750304138119684524741284548075219280830909557441390339650001238538935871372716416495119585060621584364424219858155208079108849675649358830875543538927375396704268413735116244955374895213591186391987503739411012837195898352661554677475568714896824976083987612262087021038697164465351064797186432852066614340147579622450334501308557377484952443882409962194116501574069044150678255484208298192808492787921526632699926197599216750854609117201121855723397969557069797054145691678688015536343518907213511918052965434268058654071105001836079603377402401728243414297876212147744794728663571779084585849153801005850860649483484727416389722928629334241874917950068379417292260219940283160863894637867709493246392106587161121743998428360685217481216780459016919459832910186368573373691482174635255947952690805017382062194910424675230592678925586261693384578658190074234569624914363120168808766547860456273042995176191699972673616317674432450577468102827929846966810111407577843644144581562434132798634576154982482399252116288101034954744058372250437017473423770200991425380385122805395716639166250878446684994623627030442895565030986974884147993466325296238076313153608866230580992272963272381542037471093336364918887158198804329202123008084434552880424283135803625338489101051446452637631290614011103711488633963692814287321260254940171705661514290285619678976672645666962471905916282984211031148725727158864205386019440523350752031507729634432245538143544117026785509715078249231886857925545229716899145561521912533615867113197238729905612071503526873242908027123761601246140398867892932185430589894885803196176863633645879290486611072393944686896959446777816659910875163539839021345176470477814138058222460918164938618545865586884961387120863390047995954013972462015586450321907338872582459987502124508825662448905432026886074565110484818084526232149495358310889772640544106583407246173624291288127183180206240135619199238097683526034259333366920625094296763363161301255470756993972034721888794007396426787504676150735520211432518519591173409346703323280635957618970344334959353128480130858764678880748547835385542606223315174607733257281364213020889556747631756922990530392873731461963685766464595514329159677727353115321476625118299999840915946121731667149695971383781998282219625235881584185842223281548085147784594766353548188697570654263311180434557749285006613011568409171141477925521145279058910416351890186160056346106220265097732569259814031983895128751380890791888132645727414595447907118934048032116374104800729315525578047789943330113551521385984720007108734421124753551671511903458353123999291667387914340312073133499273483392674517870391494853578503175327113731296879901438123890784238136654387537396652286763284183546637460355006248565453052596075672452112418776776113030581177902114979782781556594549001973645406233754494630513396799928329104358053494062451182302154451838982788357756943088963898018925387488719360564771413564124154381561075679468723429896579964790683626418063181707458846496989806186395197076515769379469939628776452357191145850146565127870338321105096757407176231284277276665001085960178764338967731352740666610507334143952875820534775531250458028749360771203273889702318542659030171152774706353163804456809868500124129928460284610540118583035438860979552614349717238384954746098101292130059709495829649652195829292001261484051004404415844608468815791857703162515459811053820567918662450408030510387310270241378725799690112709735174499808178730244065343115817484466660037270280058542913182048044936263999166888657341943440645300274705073180685607274874226514741477072361440234398810992713463412953817948546956507208790435697735546374309846775161763256020243845529761092403142490991968258727389436612051703528093837709552878512084105134501732097776455788691264750687540129126226614100573227073115916347886047947783820707890117679230826425375596468157072863177964529862611316629644296018093146530969675788803345189856590159635286818950739656360455088561481893011653750295235829345848536137274021224249103024395095924383961713383584401231848455290963243926380202278143607647678263929507706896990631914707640540335344375300104757472837501221615364752516437375159899944758462011204554578030839486809541184377235328053554246691851258637996362219994686043220588708988290710432209723567821005558160592428723614013521821526059126393144254179207695020453501763538997527154729254914692248096387916004228426822053032475231081956698038275580114354332718950089794706376834900315567495033509672510610583775370914409407324193053752636754621703328194876284099197004392025346463310010369850718756029171150133189657162449216408820646719983851217400565007363789574389309085886656564973570307821025691988510352227489514537165870854803787408690506395093326248394197113364139170378182906592752130339888223962766781070751904161474416949984225710446061352230514588795598372490919608162061703214578176937637275893480534955492915042991790131630400832758488895253625526083285247690191052295517279189060786265582099393104207867136238397858624442103881327961670088935138684138307735666065406050057722860915281984966949311903454584011508957738799286159649551052870780709837709598212321049334809782849590367131950500542763196157676947593976232309561151516837749181584437603604258387862698619131978527317292031471893725054479839408001896298008354265168636904909028833812769107327027114272049903130371351436468830918976720022266119705195655339857342558326331376037241808205316778034396398210551440723840277897309697689872193952289846419423717321443643227543011436904895517702731597584111129149136368189970774846767229242968359511176399181374521070569119653012408371033782069091212544002630559347551588474003692191758300389698425960645287109421892244811929342635843867518005025768723728978672735267070383418539709298117665416555185332414145836218580112835540171308422964217050826745341149640736858038979151024617834175283785820374422011646036771146612695221066276546447875077651963474182622004359747879014870859480037022822704410070095695106639085588248062913355968028613947273390040858330840230625566055567451695358395629955397741770911452721732208878048814565250568016033680799107620180636986202399645981623821521986819148627973481754115224954982817696088874752352813928199349511772965289024917834067856549079775189677855852835608905031118364238387163047616825894932251888669041418225927092163732757310392618000941498064315346814906486199694373398118973848362475726069828637032815972664754831330170323692009634302796023091152239920245954923402550140911907798383682712499447390907260655733131694798553287604008189551421814140519577468788661379235623856471718895391714927927464790209496565416746543285260784848637279027975444436629979315340557676236020170952324888898493180991723492278183282228046864609068060553838685003093094925774177950468787492942415083546211495738888425074291644167050658534327663876002425384559835124086719715268951544116308374725739562534800524501490586222300870546739327950365437221385067238118775009899778756328682092075628485150208687079947576489131528174078091928474485458442606985683027456079066738827183408029625060052728615121126205675247266264076986282976144048245954335232706958345165281113596548291749496557829911738999204290069233569171135473727357478761013003805414874811842337223769548508491408182071394849602625984686642604550326417402303360961762436683829287380398225666673808608450591302859311113799344624337015039000512307714174179973040687130705888298238417752869936109943931337909684146048721037509958179370492697812467673820932846850858590077451621170129195505234530927844153395575359713442705684462717990923747262176652874147485805723154075328420661816144807114799243938156008209537802098736720449154681596834201953390982500907673758085376935377691564237395305435024891978371008610120005025457812369363205406381812698772651767221409659989014731284247097920572978089588788714726087151494200664163607883078955462610813281310040877533584199892620387644121751504135883427713285734480627551748733676583627841197959321109371104060073856558766151789872603733195104002501337392952669867687046829931724617176708984218471636126507733385511730454242633067916024104101536076105969096902738917757304674964093790768274762227153048127283772594111382013623079198015088749063752658946310940172203864289304789809231943600374374933393120406965418541261150587031646044103139773421170632245503982096813916864907285320500755666018089646947407802990517813156964477939951471407333844063105151120692035430421713089753584029278385308084759535745236091049279937833896417030934397333999979950275043429258048011667333557503766117778749235360660192614784482877257860085755629109782812316612300157822175081199747204867869465985554836086003668380623845660419390590056676601545741284560129493625957018498275144995050093581801544595442251481788883550206648886256738652672854163630749990298882277718697349783395019293291019629947905390485506138520465920998552759720050643623248616126156493737668094268083330714612249523130455511367940896244955950332429977731591464220837536848420921635923028684527903925739373941965262121705022874071707778251292850432760108374220463369159070407518312662348368275546842498753238138839817791693106037193202495088096439559673515616608260642959912533859016541826880528908867532597854367995387246656021118748230352128534199342599411609258300038177889637098572947499310750102039134935148994726926585651659336381488132319203805073722161302843109391675720486874171498325751377968707106702211935059343158795452860006125030884927551298855315241971665654882327669320449040797428136070335036683197401878481094256051086463856547960442239523753217230861856793514107647069227170836152188073289199999399376272407243706385604071310811476502070392461422638934620324378317092253731239325507245373547940478108088586194528491692466317747367124988957926594426876859214165729657407205676245807319274917386929981136776101084571753103977344501809071207020892751430746855797600938639655407495083246627422547054574827383790480168299726067504232749577419939848171356126327050601661529894548273729185936363798974469554434275071464157712914117940445677939010915034544929851097782684356277838552993507270822623859385764987924148367352226900240020579380577640261670942903837755381952493261442044833324927487376901435513762346679872957330252671255961050149698881736968448027281160736900536414308915624656223364621626937529958630188084577130301098617381862926601164380223847983502616719995470722681641148920373584822007317215999893617061552742850425042302520310766307040554434312866123954114589177493818209192715201125412206987292207980241457936307064673385021762784916216891463225009888416947062273514413676083977606819491419755331014393895238356007582923567055211808682000943520334129701930938348988760366911013964279605316705669219512770495904732608781958646534917304420954780068527718130905529572052423573276548840584033651464758245927371788820291634418831336036602635491878707344173611300491982220762057688647304501464243290676042640895306706845280630590958380422787760278163162682361368759076711433704792154453962299322145963656002154213262231330025509479435249310583596530712255573729995447751802290074036883410109092352303676631557891405626277430514019951297666682810211467182456034865389338417657035952592802275885064218956265577658861108441965867157836666190163010298172582864999005125192621346200095044344210074025585024352523169102681034998584701261071238106114857829778200997131905907127114710553914609491682531825016952484850639395613808829742055062748906938169418905679561978188603047056441164473859161271057334696716136073826503402653003494414306710960106764887657850967808447006571469925501921542367081881674506057656109781433213466918111657768898268127340567167714847067032952404509818550973679177883505869597209295370187012380588452632201227614060310155330087364735778431589530816222186438821295873935061435912903267582440553335737344188901201384187721858341636887698037502471199367940781423554368196182266351222336527773301739181731831404442061593251012759852074797609963560364112877897971849724775455755933903745600060991531223273118934992918775103968098944008759906402987472334210988791850602726643445304595455445821965933377617459344353356241106385287919102437580185241647660304616758727536307146959399541905574135618611911003054212440995870607385946005836171018501228410172693199341555687513551207413983162872056012056591001972465857206126095757309890677374611350342368936506336492658849257168023141128455070768839555323022402563228896433633923535631201757408587678175983283959307528948095268494044223578368449832799348832453808802372917410884790924422855813021931926039960701991790699935018243451292442578094789416709717466333440360072944633947498400921417288831154892476777853944536806810013939485605579020576970416122681975555832853351057156133435537298864901925605438630176257261222253170152846990266021468337628877517315876700921262720275305484385534386902105755326537055464944379975965877503723808599507902140458702802704860963854334228426203932349051621092170529334304309848742996927425504596390846185486950919554770645695909023639562171265098371261533910659768729372026419021188985907793872610987574836072679165626360529991124422258879468233736236351925614851257761233758832434558963804832558474017285429366087025312433733742691548233565268951846178436907977481797909698427323033690491163691331338926521974922075534088994154366226357433500806880226023583492381860183710371899819673870758967418631189544203802783673678676643696888611437563887782070379409790667392126291863308713496185020264346009776704212461958594345902355314225517132612865230280167730531282573158291013638253248318880769413947461782114885046290395400964701869045641824139247194946274281262719060754605663181160840488121269456498037517419495515036844054286048008015902921514424488882236634065527166820909527101982442269256668688528412001607855752551989654706418226879690021431804582219223059863057486347481799631888888861391113645271453050822444174053141922550330110700263886439547501421673726208062774897987974337109710225705144168112483748645759480206487447152539967383476812449113664184708448714835195988925384949115002320871589719078578026121046348197110496422647755610938679151322732389210761354739082426143624782541348767610170057937392415069143182225878558529329477130456652477246227135082588191596007991643850841431176403393202766755455190642116179346247907474802433774237059675120697280451893096148630848169469860930174894526863560252788181819109015691216863977060879781344551276412927323289032634077998734333000355644027653709605589127216860269039888742763343167266769952133075210559844381757603955439241254660366557304058273778458282793880304877369462723461092346221920998690026288912933621854995042469550187020250741944246822165114968108207381415304382202632123404681926826754961535609501800182517224536752517341323660081313556413623394182879145292380149095093805568490077452781229316325175130254559221862423704496733131913161716437820823132957517258491315440704699353104895761218195947942922707207799250672036172674364969662434311945299289901157732127819202078360607231966971065128113091832826384344931999203533435671480661226617737116231139413395579358148849898549384638637211592782177446133348981894756672519435023254435160268169753031694757201413281001515632785877375085954796218489736434535164742756247380597219483922209806706211261423850472430489790965802556566137203650687903979918308022736128264314492545599776266504131620976973267247643032229051306384387812951267536380208592903609186034529622179965899087711258711525205750524076789497105313419830800085766338293693194935506085321977934591005402974540458097731610819283585334114969114086423152426605402294569792979382239487072466193437943701311110442605986085591806150143960878265094618752114058974760371022201856351777578514693566712705720410311322176447811636185301412046440240099147233043902987554219039161686046787606397714849889607245069850392763010015761345484760029456250639671859912438516451896084777265053867280737784395293475254457094826871028228617701696755924042277638002851797073582051288774199064719101971721272476726689095226514180927416988483497452479245142522611970215422011753330211373634237575095884895306011563586584587499682441964684647828454056084274500869958758216843512660386831039097391109104654946253891411424378173544384381048281447218027012977989633821384233703553935597673996201951498024033924819259351296914888506815824713672768427592549667137892402162894071874872957949329062063563017704788877180163254527701190365365100796090834794367310611188422556049442214231689712136049319455039891533216269482096567881152173829279907030702965602225319928878925863706559312610014582930240524690446983286771460611330943871476349675543772439312827914884625612671442515765240702157225294281763794058800844124023187184846315048904366918503564997331887510822919594807312127092163547579970525128604264261548936605843776646915662037223276605336932862478186522623246988108046296175859173816422666319280405846832781571898912756808734240579363402112350297020642130145330130659218931124754949679196778297713274781531615740800338987016349992568986257910267770841176340112564695876525846138125670435750257183053631218531240951211812796232282443204126485625292368902675790269854312868795788445064080387837228013176794844314327577797326254277523434069956709625506887538523552645322887095656398577170425326979571265068443670844794940139594310225705929593111256055741513681379316788372290149733711357167921083587351083130959588796836913703294531744915887103788764418082593015220108164572205419422165684385194026308002916746745052928670299928935176367003712467679215037141427115991329211233983632802270836903496710308397983172757663254908796084337207449606187752085809139833469560797203037433614778625965251246401054100291795858370943604280629330786656302326011167410153671310490961171589406890746638113443369994199256761644057205922193346038269449035811923437292384379441045053675503076682869615900134509872408884108144956070419515425223298082145061221790135824896230230445166486244550850495413364429517888968876268141112629780423398216561642420796826158957036931673787088146774955422650141207334449907088486521604117579402061934351205712707582029066942379223884099370820904635895284500801795283279714804837196209405730560933470434126538091658344659812463314422339067600615463128902578425754933017879009575198301582467126818213607889462793732149323550146177608565295752321530249842484454096430552622998617197810524096632389119551071045012658025563577503828365188000329163714742676177691204403757232241065470718424163398155951293887266278152430856928245491592823171689256388601713088434129323278666595922766560831025064609695461775364768259524379506203532465822374722153004858560910245427974937867710420712565439169228535632500308598558597368649646386552394942920527699733141359311543485408576308261629914393002572765206213042795036392856748899322965766813479712052597949937287936744436738789359508554813332420001244451258813471935781496827511970091965156841856682633661416364739307037017829621943315912501305353895636680742197774480451673612110597114013923258594091213937547410486223430338833589667515785314507636320370308223333016612402794012499940800504382897198849897669934385504308410768348295905423079464881120465941440315378972577742033537681430180643853381224433033609104640704855122915276789803819298224217055956108948483787389933099487344259897700116199453348707816201279306958615160659726748170805460223611646426784183415411583893379714876326989970850052553339877234471318136286256018001105165594200193082594241137271801645892683591444457644544628995821953476432882969730859438391150471116561665411228358615903479577626088671500140482553349559691442667517313101211065680707770353741295654788804609549358583484026107688670791172385465416857364150772223769376338462590316665113453337878134484025026923639541289227866867866399694156405728292448251018925652086906626326770487322730514780398781228385971698891879667360851579603036249306959628808951355567341752309076684957448150064151794353218926256347624935449832167583049561991322844867153513445784536850495484625881980528425089735895305911602443048430693133447183449019792279283929363245674906917473953037145173136014350986363808483658910894265116851829948801425157305138644313158038032018819323715490574218367610946045567327305059102638440407173985290337504670323691453484169442047310068739568570482905844741307670705914675203835162788823251511140226217532373088277863186970552186401503921441176010881351646570135121661947283694896398436681413805732709896877750753271904872625051236677453923767601131316691362246340397728401787228780747050663055268526352865745996457226326655891612951185633049006810120518095814652777118440294716780054600595377262875206354300435542656074699130513349097419252470863622845569115259934090096701720157944481208104820714915147565379621284314754410464793175251248175063890843674951851115825217030899111316595868659235613237454183140385282695720651461819648637212765729785996485816603512293246956073816082321897122637745030065842077716179639683067731887747822582221001224032731748872344964833625355250560652336533672629368652868943240835017911035259546937707257461529110085681530159460383394368215217155201760720070674389437541892114108603219631594338151434404997915523047391171991307219109521560129990824702444938739735654212805820667331281426047517614786413849407541249949781058526466876939992488305383407185720407472362018069378330165457396316116347588258234798845405025103669783881324713831793709501694521682778135906241112401477471052614199158612745096418183872585004278057170185958633596197817460006987793388969553055166408690325169505030340009101846258945314443909902818294479155479990976247942496317740767329121336553380695633766389785232378286295169778085040292385718758127027646794845419153210980636549979302380862105115255261330395578567815783214364667345090363347873708502193375696908199369700768194900463590396342993837354572865587823187270982425372176828925833734077027737554251755356590291178723232320728119566191661791586055939851217987791280903255027437895310184300590063558206607251735380737876680737290375807622025296431067792792790154702365131708311762544242165184489570697536932049866260009516971989041724923194401106995099710448071609880196194276014920773036384519259239506815044386422384853063732139323624618904492379766422859585691388511346811134999957078016426256780595273787269941058596024445754250203448748373278122198729549645249344887262775461464894779430364731529123018016793437894375282667036502179050956781272956555930926958144851131508544320011613108064015598418453136139662140528687037772593738426314676872275391897279660275121279749597284003299873719100339529689579936840512662855788731198541047616172993805269999225870851365407602302863994702942808639631271652984939061155625270846761120824287055172277212015238003468807066922194980837679493034234781882064824156766514797777275929821549060222925448707313786222409740399582375968565132736847216383661781977992861611711614495159622205838619308180246491610907705001284429459217341460715689568639014699895844266446532757525968114904814493092533434726977809891950852969501244197218148522842260788426031698264592913275896518096333643595851192865082784604199151265453433995662173060608606547246594121536566497812770418195476079493323051679383809762091830644556570708866858577092532241864558876874316696375960850651604133797853977216238754396918648338137246844493454476393190454582599869570505528139708553435899630002610671211033730745748470364817558862028081895760633374667404919927615358243201401520768361367125295836288162915018508459698379787571043227226416843601734872664977550190459539057076089869142578798999419253897131225473975734614753220094947939495340723237459129063438689873195319631762881788757610315767178574966607651140597308494953342464955371658838181080622447057214318422001391194941209511178091039593355250329298658945599238304702438562338940263102147493084480689984456843716304456410811576578689387062976339809887755807511289790996738513615607180134993328862344627302701972313058468171049145362736818083627320267260857803057249027970203768256886697690641446489703187529533423391655610883102459363648258816494783471878525369858440199099357719540110723289581265873324946788878510277885064525650268709783511004678914828946701867093376366676235183203446867029705350531298075978473285183244022931323654603242622738420438866130480394481769160797073867482856680358229543954239665939367340128743598310155115983951529006997985182276994777106480290052518365727486844099008101189619053012326996111974772467478909004390417381119635149970687812533682848839590495757157198721927856556073336745571598123697483794004028373968078152345176051310174917989622835004438690400108710896845046851449483144879209081271741977060885587205058417014767656746141416370160252057826779675062221065590294904861245549899709260763018793404451045121288703738253230795066520630267888740269177753742749035554256197630514510059197750077354052250904289940155219389213510170150452881086946514278537855729193217234103850483411107162414955256066540939148056169391936845797652103096481778745373678409875697247272481273604774241571739473802467067155614636530690462982046724087453190746170596312842403027302501960102071521735728616565748568270808838987062359098660096968588283386354768763686616411774753867496282280311985545606566484885204708422713057488418148829343578004674426336776884999928303549332534423860671147622663012703412629222354721963222350176305371302433584362224315132806935545019690536227751217512160140851758080054428540504390276098818394421896709647470686228695427311571386757535463962824861496827591681368161034470149908959710497926844407635822872692725712974498525312712581771477271779595179412644112523775950431118283928232467516147913786999217915845017248782881782880667286851971840082400282940130354495768150405781725081472453163803404963180205935487823464055537911345216745508816498423136865750910850311401829402624872091955565653504650522134855184977556583715935567089616640326849320572555173821161818371831909760989890012650572098498361359583433013827813295232312313674358190538962209634272377720920519638016601126747764603992860736825887163550583001755939128237457473641353677200381667247252549035733478084496856648290968274089576175977955917979848907200627672566271009404187571567078952718001766827805707011180907046460338028291456552557213335578112494803113267042369182844995308374288545883734516921308744862418725012900202884669557804592914330300509339066472999436645056096718697222084858325082202040706570780956749675903920060623849736724953386407797361030708414463064371954551845938993807088529124130274420682793492781104572289570760719798563448926240855537433411834050888432681556725767764390491178560716262198514109988486919781745184091610061131361399439711674431691944530058904711680067238500906403911890159367623025082808686266958612612429217319212181347399248634515188474778279457884719184178437240643794845828927466909291249927478850855971652832895152945185086324064472646480169872968648396187693948626095629327069958098164806178452337169820376068891734060603932779830773206981124170449891977503357620330486589794858366967018019230485815841761951911634793198605843348675951739900860758653948206240831226560378027438510156452331695153804209809163066137466697627206693559469527855274639689799122890208634423518780118126035983059141413291731842754418569256272947909939770756394798642660259636189747137629955884878474096199799976904306586653032248303080490919610792153624240608059426264086162826696205561703612348702984975194597338155148222766547583118056066134867638020409939242379082061860829024301888278287955849107711242937480334714808792148657556210367412976542152648618806769743655670151399695002517513434323205802953507966244864622761535245305641143012207789498573626008581447275440248292052418699645417095479882922571229025866364507521959543349296905042775833792980791704953482415693315311981721710730813835971564472242961458502994672445626694112288605350644778052034225215825247142334108539867494615053831205927856080783674561327410063623160252757761584020534731494485071026248847425746986020845569574380770493064848122139654602538892161181506636298429377329406661259027694928407577455567242916952177606962456801799409657611748021462239956009032348777225126545563323064956967857396999695347530150766378883142728796138808380054290565703171628712220765139243938112089318112868774141476467267397377217553310920180097182469393214745807834585732305683616232309143524704833473169957654722373520532741525418604704992400189532466304978720772773394183355642973667909381212131985892997756448139427888272877894447201711435010211860976517069346854445843948972671291999940699706860558692994062057819470093173056595690156863500230876372996481249526633915935917923522868054449601272760479249480188395067730868042356478397193294415965661313744502599647521115859912153420953073912916047799443664862532536259167937252009900748293130919445955663772170632221501340149039831136611031826017287832068811225941118607439777764338949502106000405336306784843691937893901598606001594164115411724003024088899768524977990329746689844136754951497788030519378174296304637274159556610009142453914212073462610694173398215679750873739864807102013273855224462644948276142390065600315808523506504250107795331613733896289687000265711059527775903703651753377481628173435761256049924526401883756982702932821869431727626917246572610239168232884598152477677100861178388754349401838603502914283103400373586457472974105008271624025740298576688514905454906881204481460037933729146501508199565563691811621851705036901222274912945657348745359779017800949664746953118048677787540391467253818009996787472638348529040868269297174853048937855056886043384198263000056002552621359694732864880493793376918524730288889677293458368511368551031519810296657107378779138658607684317768947343113400244936433069556725833884542112084230950771761874700467644723322083105391209515249161945434013927310619468025706494991350618358481027919379844295688057629017596031040780508650134809676906488081414355607431177189794896609264930519392579014479264554497598142211648183176754947890179428466095794990378100768052100086625047418783077160648799362857476655040727177860037669580745918677625146217360653138871510043799147104744366100988379753679439043537659068074217422228769169903891762148383085464135234283318889303650050418510800004322191067971188399367802300013219948326663684699852334262201533800962933026517082185590402934748849088380728420433746984764527614631863625695677636812850478379569624414666265672667338107162489995929477186629031225964170694936091127577075601422048591139491951176476114062292368219623216581020716728230547999116772631817111693145965349576201775547541060394853391657236540695618085822990270796762495856274533632290574876345881223642805486846287513101647326054859266534904799251147735211998370742229553601281842530559087217938218616648671231887842565519033509845942231248426418128210594926336966410017382555800411257654621987357004898100807305507277353094084261973274993591833619322583205867243218615226401956603468158794678573097311385455848609483915825836498254568100587715784804952009944216139298126321251212885703225528394978460445825591259051179804437270805194218113191154472192345511397061544141254436797953008521153609628211865725379942766171443183029985879909603679206696081938807014332034216320128237097508901992393350351703675387390294533235157569567767363346851197742005250918021895733089168954032584653575024864150001132261045461596935203411000527044702179387197308995818980832638395402179411110028934574597332937118927669402171498636012556595250064908767048663080877123132536468084957769945357969387876946209201706710258348024371266806905656803781210613929199454866056873706266225733304756225232816767112266520445340549616006633509884111018612699102441247894727734108870680663760677977207621528331610618251664123692866142715843558578118988985291460215161073664784070874248985856949710721640937006564683085474062305550463402759164566740501976313582067803401969525402933088322086665360404602685508859326366687836850236280980037712406360481270889356966923758811959410956574405876995129495573321306379938933633745117806562244030505324879825216370046119552395978850437852258819251682128069266870429352199880358643582485414758378806743625314252155719114435926674023993947292314537232387754225288789110889632484578159611375715781073812497500747319230790447904109837840881256615387657667948996862193534909232764621863014502573353313530034847639329093861863057420027183177601482183101615739829774255973547939519846395058340867622463218449612766515185638458680520474154972684504655899527664178151444872958445146784943488319806467981559740528614563406235154150029962055001350707680474360273586600170152641887430427812627376031265161650529828599156198935950903557044220738270947979881570323379006055288792332538181312258483270917844905502219004653146979700087822558866817320080641990030983096578221428861022921272965555156843542769478671124289261237109523799766099331036278358505468688548771062219809227669600188657604399564026171467951657438750041979625608155442389702430596440540877863566131784697362306846502335318809327736883402023018077514375129611425413440024967529247238390179453785865612881942590914727271769992613286059593861806399681740882055372007545241491715907627688926697380727601836550823357294968089687367962290279540564408937947823789479444586136441482217354123536017198422706588286151148590807184524969497414422958140434263567827912195322403235307157184837811321603194665530185764463731879433865302049450016505392648065158427125113700477964136680755592168201157862618304580772813088981984814934142862637116337791266426831175159758511248554091704897688694833932806744855457920405956829872030193855879917841150584255339627733277573639335045744882235692427566206207882521971400780242928367586473393450986585484710732795143176835164431236494521387733851183594763111216903029257594547080537613046389149068985780156855828534325103710223862368367754382022656225006775907402432266510747495674250654169493717543310494476560668286497276777570153242894766437804821294969527578785690429949812837744347158326356685888488037605572802556665713991119424343629293182633609281459431700383981752300320892292817830425348594993051155751490245260283064761769234477334315737689049904203257920112245615434423194529029325327539670698307147780450377340860396713916718750953553295600159397872439181310472094313238976379831666465892445146891610324391442229441825605492167775685132864854994607986367824681706437794929054686071264594728149381114861920615905513712507074486165985962089789023822288479527300531923446669217637731441452742751531689899400815760826043925508881480657983360129109272359361805950385964152184743127828642551762071883094211662564891870148365634951070218934726964784198647441594929617031470409818312977064914703681378879735748393494159863800683071310105134879607530408249534825738130818240144590423292166365359672046994594518618365246178365880009652175756151355220782520099877518662030052060189227553051215756861680904458513274003195752269070072200761130817336347625351090030528498588315983572278481831526827017741094303873163611196301759618867639538109855506636582113028071179047889958673410687034723522633161103227261165895248968444917122315757338441046578327408013596982818829224810090692641966821214154697862445616320376820531278255333860260461757636949032457580694821900053049474021900490437789298672029166750509338020357020073058274756141073766881363265440228688681811742076279281552171722143239222683210316532703608455578778410030271164695554111095051769884372996416680314938584612453944356381480630299504698228139085802237536692429923000079519910563102568337420382763110060567231803842086884440417317078518371434821756778293837575164422609225584514507994051219759199448681268071425762423751342592676358052937119907297185640630190605140371741565142990658119561452200994772657094610112789473763235242981848161236477570016780585849210344176287342462796098608923922080045069145447894766871418344059443626864492236723089479077947175548701611772306782164214786225202888355501609959895654616107579952383551499305070424842516492245316170845964347186512902926853316794557307363281382671510071476030919843615118677049704004325409831143839616680902801353360023532249396184557454471210465604890652983759091704926357144659670798301175061361891887677436225775153032833217065781347212914492823677999846767831046733059785948366193675334055159861722293071409822630419117599168240357263046681222523169966738274150200344430360418686517218690262565362688468337935621655231842032331244156059665446483785752667651779038826903205383549666474004902791907528547512606179285960850568358059249561882333545563235992234391709022135118942416936501957350631050729516474924959766577355994273396883183880369694001139814830918604064724421281869176809618105700285823868557783846092409036151207033285608994878972604509429297738236977051518346143910337975524384150146439121071763815233961624189387056625847268280893608865570070150421994989003960367237247646398982822594210242613873945825691212975179760997312760151357157301389920893257365812789707663518286312009265445932037024434627604186606107007629711701398744942379384700772586874089536285022350483671774373047074157837999539728630388859800776009028466340107534552987854984389931526361425245871062743685416299958856101631783659409319546451498762370586722454120758281969912316919323351485204041223700528412407116838099115337678904746385953072527224192280715113965457579043570912966568628217012204385785443257341312222628633370531801729154384961632812637774512339388084346725682415598241797352491057248143179535155461651610719280160481260974400768507434837885135944129778607787779474875746794784680613557618350527877352607752550696915136967147369599897748088236382004667658796364929395976186685333210286249122501324612845564095797159562469692024035749200114535962225690479543724837442715071585306508554126370522965387358257867453860351974919851868473826685314142327159073805336812934172316240586778506897152432281170601756494394382963323072838506478824907944985685637557184418407054553307267061672461695984216505611411931450439004662952763351560938006564126681439964939709576182872222132701273835269054382484719501397649022955844393881111994626279300241055905176618985921909471124382687796025927780680699354227139811181497450360957936470447486004900022755416958454459766817693969408284677328275755653385857357693639988042113108259526485756472246435521967407996772115380861380596313192919551977328824816467508455981956639030618515435754394573028185535302492822361837438420714420957237325401004541407540269791242433601580678235501141125925561834612439008040990243261075311805027018964590279853399091200257396133012939085502178240920631585175630127929262031834597018525044577645599273163143297247286676923157579393645624361581558742269388608718159381007385704022952916785876591314915694227610908373870142456731098199573482450830404833422139298184009536929111249009036738589396521217689685902021155147885435684436479575503959672093564851550672226567095619949840829131373774412420809521709108100440719293988950795387946289309720779510842596364699720723092859899263645313263897546457365402661772008690382277850585280731053318193601976244037257714272149774967802251948084064776000256737031580623748553782229808454164779199178294652936743642853568353370904767855214504940241563305125146695474226757619541774906496824390445844000164946974312898702582737374888185274019318530970268837358762879998894109391711127952208412939250634899065298362820406344118075248274586252995199778161406398842950172417006862464434902275517120548569599923826926111349149742981784316160104035653944754378905524672551180102077256673522744195627809071007504616795467300495054530104295066460407819092111894172096553202252901987486859745633762947751925266740294678714263576119136333079216772272244446176314720207130963847999248969410115626423743900062586582608396127416013068596943518926841444315314163538777494349947527554474425528602945699079412609697235362161891628452671158139143455525943195189026550623858628460529092748270437117479736132764420752486156731963170189417419440316931423010420152876047158982687565309289477328970772352876859651080954755070597158135262898750837929145064210670224016053217393532206911053859416900810088066432141416463272769881486637218894795137705958026658001948768536124621775495056810846807004725503158659907957639458006884278235970729862307706296336894678780685904185137136970607348643271512500182813774230662480134437404086355274077687133862236288781272448053082805649615084538597692325686157819270170124094797141576486616818419451661658460030529787794105057215586417656878496180562769142007290178138663923458894521219269274801627339457944569201956025326493348539357937387027822592259849723799486615973411392209509137212805171726366046988848371045461322679260944575576891420639311318650252808665155636691732073925705861441233365601746617865570514189960629693847592853703678002017265468484030035108754800107377529514923550399317224150487844177473862996752747220747074257665068563136395816721391743652775401763710641415199396223976813857084036579900984033625628770421711179619202624853248049673078028761635022706289717892695796727565061074591831607543785888975601069318408877037059214742888878364942485673863047756247667280508224867499982184694473838691095536737711790309251639480400223263428853182152041421416705685957429073306361215633690007675788906433774299540019360218188562656051576201631867154749535174926294142194843921275679478406545907728476359516682509454281604325662718750926610302393554623597467772050111673171010613702337830144069398274206686983443835351642454497349130789611808769789542825651607216771466236028757875773706680486391326775952478828963167717373429382211857554315392634653906021511693162744019118615550167948608469373578144290940303933079783233859785935172027906956326684080992368489671209053742474123645053585598890471724771165385501858387234430443039666337105408841364603516991440309175690202455010455169780382472839170045899384637159376063593328262322831680008250270848215781844354994724053110644091056420435646982733788656550493837265286195988131595374773501491892268336017303428303256874233979258624029379769639471551083365124558249415697248287490249393292675834428272730982769336646723927371678072541159906124429893422343238121339068751873607137818964928138960874307454724325386477275860300866059171698081484692430732638161266786593642539459562488752205242299484067512211565035969629867009679583602309369069308668832146167645868337257631687223590208542993192124934511574655156712178901105629451924106019741479036632448309491189250027576143574194508438042220545917236529394647359232259513927922420756471801685232894543404541245657023568318165187132640922871059444622672940097779898306623760513931785620375870006128156536016557139661004183697764531216289030956986331752421376198401462530397684103322058941047802037861450633983055018964956203166830567315064119067616008272641231061904997055671338761465559805188812066470183723981959180645593084197322768375061772250576345757843094074438110689182373828602544389215919241354988142846220629318865376285606421408976129425368652502386087179321547686934879302574025702060279851936757910950089899923703416922078513155751717696809824952672461176676049767685324240458630933821134956639889461692882231297169706711389651133951897916623375533924850040004772565958660709152122352601881493935094035847747585840860536791549953500341359813631062595555906882832855323438431912147562862598231000709295828491389045361317628536307028078342711294976130353727306062382687817282606706335367678551251250172267006610633751329758879699703838092198763043103498813320416180525414272977089482623984673607466209262451710719923027074257225977897065556957023537093047500075314513147159702202980439277774885755902959334160562421837357337224161031374343562238461991087033230953195016017133502945106478381604365252236314872623910896111943669446733777198402938238692021454589690601724381444464851167784711192560759212621775572648710031069576420601607596965391768723252312035476183868978612116640442417917274342947910899979981464163557575860289129846362955697549878753423060926156923281489327573764908210553513475633244999250007813479460412141366847373437780189187574167800849842144895636139621880268804027004067798688401199065717448227960219752945489568355091086237686896289735698689165716295469459708578229631686231679476970023467350330760350058361270607658795339155703647532555308356911260168488179169685404883809554480168232315675936443603146807384755582545377357011248139331459042586346566105078288961410515302986615971106244550844543222193145191469903644369966472643745225288591972438259908007567257938934164992819134700348337824700841041754398946145234153320275212141349590005581791015175775375857462776618621901532671515260323119179742833347267597389124281540680760362948558766509983821338242562607016946485862913911101636315811932006997122247058812100471743623509836037759819910265060565601670480987628663792653795198936124343393670085189441017063169337941970315777979151488346856387732803645429099751123600218084827767311581612772516867954603653511068392247603988993809965873143666280575441732812191692047958925937264088115400145359428263733819729461219161408144100455884733600901049594897078806788436243617166302888615595666709309188007178161038426894569904518480465757536649926277294820892410853762516782919442627936066440878314729015585334533026786968143145532271367631651576016652824783909394630040657936424443772597730909147284727240054514230831317673510223107977420711553337218344344696322256828513974087110902188028709537103698164024742676265904472580820103709359168233688255973742737219968601618720964562071901623347084279535527633612224958028025072093270880256350617123631163096473580344008856039022985326834501512825928446506605954239678806796587282439310673136317764908230925291820937988233164657356696456066320999160499964287108803960852073615123316310641530313368191752902559945703027361571399837517489158298397966017205622082739656476752612682340755199096922880257909453644554771336693220346824840061152729192611850855619088030702311064176610887687200027795654113139712091887261070437170231570531425662479630893940860130159469313166050107391102210590991486469957096270863298185529969126416844599351592909791075067271349596718561355737025629863144531100575395951045336344845821663447885423951639811327596745455396332666459479783905194702645823020646931829216490101332519096693355286341990200129640922569328349597904939126815240433347117343837239154696984012170479449906716081596713416852193376082713345626142717998278872280339533681379737904966064055776813379757990505066028578012731752533934977391226235237582891226326269929956983554702624760877854490866817175033315760888153627387171263490282451516202350732633580376683011875189278068878469715790227456608734115759466983005897933573821193701390678832217160137173846940692283484285705591226956297634512700763658376518342160644746318913786807322763557802278316971990884437902641550925908856043924426484156182504971720053333821770515820828249603820565294859176317113947193255126287971740260186570963380790256144248221670985596816336407076618116930445432466978160261823114051684208111307867695580918022337680012710100426390514274334730617532903985224931686745962145847900967826128497705564236751474751424161128463936916104055097832391934790520985715259967924565389107525332850383348952203924464251975916315541894960833399907601887581290298745798513459651956182591117657638841370847928589779843160525841059043457759739297662257740010014112510824001409490452591079462767858287413146855435916851239483898863371741670833743851574576102414353983534492608219022803826748694792436898665189630880833974691154579093521637134893316745299023037758901840839169558674250748692823260832119591243489217692859194544859762604874118280403649229633156291972017143977047908494819455304211655662273489398782246962391322840530647152233491554118589942490534345964178769078485190492663317783065438416561875493436986696561636672756619800577649677077422389986978779944220035392965970948055190474784509362941851458150558194444789258480958499894106067123993389192649516845319150220847289522355082783324932510877707079818863892179742313155756098554787386742550342817722046400326514015369387100914551270650464874841692827955043797097789084736327587380902158447973405241979861852685131563567928890828411608838535662442797848449867283042900384477294137104609098466518305531140709988166629372988342223077218736648796881303135605422775777607829061302086345100679230084881472000938462748106342546536438603029982627758954067948898607048652279890152525350464482913942065491168602415162057737509144595213741325724672544630089618524025112328666637603973254061940848342174829176424248356407569218265322691566066607150568872220142600647939287844236781358536532670860017768799131013139964888682791629439997629760721534047504358935672053656645454064948197978760072876761803721855644192672305772638797445454707329927674839124247463761127331514721823764405418461732242486448623649149346630981356287578755539887594541540351119366421710680601247296060165323872579149879597929912910191164965657207780620249670447487734326181345811500600899938007260862360547753692846689342823451446156518606069733924219516907659367084197162596614596639833935792814755083040655120511706489510245881543196633026026839529226979020244969983790291300483453778880089917836385124389701171519171795451929862622766985420333566448387492570984366934595267941475532535253986432214179725049277886212194019621048951350705399354657179481018527387481704113800939739996632458739653917718106300784020779562396992682946940472370320904198951814806849517655072350571314513629119501519040086756119899713148233030050156753711647064276767660780063984726726520693971547734146697819333781086822378286608140524847397377353458311744018828991146959145569083146301083658690865379042142604110565293150237462628915329056239104062183379149068029044224637282862981714789129958515006390684323131953005096897138816375774715978350843356525776203637837838677356347323750244077035352388310253547751400978627761547937018130152066144439587336404037605584138172393497773661008705935288681918752256644135969966972756556085999420752146104775147498643635295146367128113514884402949160209519767686657240224263522230611414711191422627418565841595200568157986521996316585518703243122938668517646382453081536239436794468702651176227499186866712083239665959778341333396623628859592166555364973275594146921989894406089589748104452735257989667766909206917855359553194425730180904057880563341548511149578592294033126367819305199546299663628177310801651039720579909833201176052308843205887412958886119254949678925031938599062597472396732295922005119789771286234374979945694278197825689770483190134994529293567253926322048750089066668587206167279054823256169708769626640307186595402968155410070107084228170880639331708413931195399217958080573791973059042204279049019604144470964447135499239946353909073775213944743308870378441151706255787662598508496524572812564137333193650757889772909999883968645867149821125030495204703228046015000611655220030088357748770837870764928602036765796694187700396945895859869759986971484190967950015741863053295114149897337769100483770552445836063468730603114987654594419924865915036137310714035135331025448981469210733413778727688757124710930997022914557417617647146942064014726425165012694252800458599782897252689377830581465028270630231253757290007658933688120435540291711452308472334242334064626183521086495100990048675440417807554896545559326263232562212676628115273699067242208036973261943382820145159903650588714428083101295165555346148372706959053969742194970389536020966482021257324435704149340260208779913970750579218317888030327565317673611675602138740405466673385338520450816171729248939881065582750554040232417017991617581948465723579764927243182566390360679903899985875564042294259942263416350272043211474069348544844729955142079127170828848328050218043265355333569750451640182342574760670379635889560749178273385013618011969748874133407341346261432632862151700010105269614124486925975013406919186246837755250428051296631519943246968486706207557694827221718607360715576463333169539136275859086370134897636674031981033779407170138998614037247792483170675105760990536221289603324216477337241076756017102100675027171721011475328530296736026664482273778138440068990957844260175586553280309687714533299855826632052012864749659807481356314621729321599752009554258643773234559902812760102293867754403696726289988572045985708404953596862571624997769963089933145991958516417569535608327296037088530674735222296428368583386039443064716553396651424474961341371326631268760708210805650208837341758658054648566076578078245349527150191606749965812074145855731360395014260080681698325012701269317341526272113367535727053639777957072122982037783871393308466452000456007192292390255621633750897479671744125856763465999145785459079166020265105448194300801325895443836598432933095164123198310331594176150928873736774276759713656911732259433128681355299607091301012076412438276930341992272798210151231187546042583162564395108144465456755845449421476625701186884123477506211672449314955973026304940622133111774297593981977021890281948755522919687920740200512620892905040532513664904713613883677419790803229471481495606766281296714109458475273542571380233709844347299534049449304481700342699401331601928033806094579129704693091387197659744443156740138193469950741959278435192429935895221940379238985068769908023656371386529612163924740715720866028151451921934192285563151182472475271858343321552868937106346158071931017641526581419915232820287478374013022118079622926914534552528010007591149315039452106716969642195800247531536977946567543559141867860367111723362076263988987245458906088613134808136301955464296757430544526195538678876397582110761191722411207578762761268189344589589127847723864173612078799678913552528547840270714741860161750965481365328032758503711538078031619253062270772680984461403931095202426587882314807995206724253998526413046518344515769935104514463052995758841311596673699506167645247650062415979649989171155181123003868639517961914006360639519931464528135514694460404522198199361162113564757246841149513566315411132216836734054104290037636908900065139127851046445726013625224584162066116415407582895420394618975815507658943674946356511868462222629141106426430880121405140452139548107555465275068329329246671020414973544454301633817101026981811684879088366802709265056612763906498103280261943844487999610550208378714079217780142293326444158116178379411594616921011650705422148166221696872925373073270509719053787825246291063647246196964497680789057826343382846174093448664283805741387352232684047264820729468200804563878824264869895334539260002096664445351714881963381466344914508651606506147776505915312300380816816485898254579963078195970212633360806455957626988994044688271662013411989534333568270909973516490862453995905024867845867234781733452494859026428674491885476151846439705147108707938293540428746950405598130991064136017395715203762898571540053262936428343087101627098871476870571173640855655768372952770992370767309272258479746280184793370009504790337273377880340992183595316307167451180707394333332914783342358229784031086664152966728286195762079098584668236379782851717138647441783510361689059508317471861958978310602007375096683383054550880342950019930676477889613255637924819955000528412382270074977057387306719479033781287403956440187171433238436916041957077004314827412712380994390284906171578168686407583691712980103709212757928019941746805923977372742515401138034447618164239451014616833702361587317397575992569647686330488090709765345646768375768216793660348476903246699444780981630858573887064843201917816773477196708424056268818913337813309116778204409529814251079770048358629253743024880472374597865888576500082672473307171772241931454097170687585021382660737504821163532290769124207472443043009047906886168511347529730184512595966334615627697483155460852232760721130788105812359595099120255851760699182103119806962359264646901955725926408219409711328221707800010360468330551635058687067275779007760627310257323579510293027828824195940435426823534672785301912753243614452476959916980389331848811709671312035805291353205812886359711158709982879375426939799425253731474032098159575177758774528984215578765100459746446270817452552236987900116648728101639547134364206790197079004087508560213968867426654296344807382861512388196340698219271446797580494529686646495178784466676333805113687372825970091149033781542615118001500785456595513100768786890722521489640746649978730110054934490159457076203756284807277861752719906761341088077405519611154083305721730245678917401483798990535218701964205141393027546049712413781837556230403635920355248149147031619579793619313453363450020529814435275956728668293906810564125513936016280931287497297846940414739878180116017633846849383604390703314059036531367915644676995864748011095496200320502770858430268425604499062962680104762790065168751746897774783672198180730873898359071278466494534231673851348392257460063803713956173045090806421134782590244973710456340807754224083798909208609167975404625320460356784373233341762831536128809594639978179511488861987548688256026951301302228000629474723432520219217459575867947865292971024838500418386867477365236664922243321645458106545124897814541554273109413224920875354497787295613430284683583222428055626721421479285000139690874397552535279786262186320289914109638853625609563105505716105738556404335486945831843664390903599139553535820737725895329965849644516157198828273859912642906366011204899005064469220266121093276869349094053090333064024226459201464053236167558204623529055710275556659292619082514061007180831012826481408168389184814459764750435597983589296006114929644540313781899800112169023165753157255114514246718821090999221167289409864832092247731113575172220185357090059809708735532766333451605994764181153453627029196927109483667634936787326059559640797815869635066557336316902251250884026348517662599098452249372430837675285603111272565917461493289359591099764716157396840155282763835546782391764054850670440143083410005175765601579498347740873589740196644775575351651661773278460016284433548548367450588140911307915878555720144733136570541383293852294099999452225266941121678708377885136632934716259474491268638871242797538142302711844584768646615427920015597859943940633193503047664607312196291236146513588986504609742479724984438561003411758707559897075554133970572828804607781041368404386802583393791214770095234289660905364139654275051292672446431792766243485495697040661905024419872186368550178143132305526251618820084349921307655485520513183928753121984251270778476258505839467237694410942945128438439232677037212186366486677202009857120814216761419345739077564192894511179445541516067617862515105348259264807640318094526909517236175018380134614305461614473514121755356403745197462320152514948265977962875073163759434533296575452734838859099482358572491771908758006075044973751509273621777107958901460520146200997277360299683348702537607555926152740259622801683362855741987217663203683041796967664560396529818023998796500663397058216602952624946835486519998077915033627709297979216867067778384637735587205594716807981302226775646439416630422816625564184113772167647151783675463888806454130127992315401679755740159678191118048692279696043641549548336465348247370836054911816102084464564502022050144079701671533113193028544240855305380155630002693298067122511513422256293318633248436354756637524998645395414789292913211189971665332585770234650343722356966936485376120352346907049003596255010413925695947975075509517788421164022348085528552446762474552684909818429199789349154010504960032594908376158187756122848151455193183798635549004540953317176033885655963885990137681716952296895510671567643997675101841348208302734250338608457171929189498774592208127050528819434525786242584792697066449155444209770627173732802741264558549665257472501447625631743450030109663523937566913664548910426194555470655435421232494720309792530641512741560600971994763252904780336809747637883159989609043465383112801348660610824835968577428409265369605973260586196189116745130878055200262578117125836768038131852166411078691235521029883716306048152890862724361231255549483742361551140839334825171130872184336268592570979636215209432909226084343887461638209268775677782889768694104347584170835387879088760271028875306254811096245407717562319968742256980487702706489779781539198196923148536081646811642427459893945512306963590377126130290769920842029938166754001065132635911180593780531057970431112758923546403900964613542429649613670928990229783181265838865962778234338234435579021738523066694281493953795175136197616082266146104218292543759001364727929359926287725164508644589409892693019575731482476015433453791756514067264192102381370039310679428805787348527361298031315898313857450024387710496530231581365446119448669243975000097950166625540722592028081387571075459562624963390271533065441428436597280118026863338106995390432379685303562816962331216525359627945794082132877724048504214323600662522878390236706653485885658440160726016683460189744613657048809900727486612442607532236230218561042378061163591178159001754927023042626616024909636866167304624947431141081837682502150434252634218947420186970992854525137176410465402571835537483447531663735616068823515409668290860170748223996003707566204718701695861482394001387118891192218395673575838162852595870093904491461331933879392307647380267081072918730555863299555078226906646399809386397932316815709595456421371098510794477715957563529055585804129373521743648318032932822712406538961375246338808318399766050514601686387941309958374787137163799852242313347026465205416196696935002840378635711832349938780946645531565575847900623289794064053034201533698160428533375863730646487791120656523160550180694294707903385337149486775700489892593302378401112121183394539300064527591022619960618832843011691311958721482801407997059965798427912074052483563692064767395811512820436134356238636834988787169846752176599019287496887710710697445325833396918038833690296889327617511097770095621019450197328733888880759006856489263622236664415830915097071921859157884596903941074939457762093469919858839932910340972092848073175881163607937312485803246974297430365699268562004342160911610045670916874574718196384835459633465799117139151263011946120640362001863935265850080494290144600136124475136772935084386595919925403557328335665969681349092825193947807399454974483150369339650264520395234061796599024399285822790612702038944871958872943587896483797179184439601901361777991774545770341939310347961974076861330355061949889160148449732733525627777945434962471123920246452739103384443275945682885711692276969397770861547367298038963290385687605452594960101714375572373420557239685173799155931758890073127307870623484799301981274115361315387788005797718524305382700930055004888275043203252562768466479137239025482734725546520352674094884774432156606516603794763882750102713662960234255917640430532349850732414630691254686673424165763981452340875889658125493182628759709208491186469721965180036988379528139919770760140597119582413049062088801348459184813737112996670897764656887284775501861971915828256887809320886695558434918640776931138249319902914640070603796360037764385613351853136221245551930744240756388366641619091275571407122046248166776705587448124692843025245229660347203332338888302992891122220995112532153466672859802430635213284182902814300315167997002948949070888691517548348192643144400667328628950129810347998395048636606268038960107817673916988562606400189957545256577919683253413290814047897768873395662297099678213670713707472766097220582886507497469855112241024746571188558892339873316421416324581049151169890649203472172849435049565515237301149045489620146659548972127449461726125640776501399626350319935627715780554951462386636559571802154032195109352976627618020336316569780673159600579264160313857880139911681497225397814260523682050144113587149547069883474664823398674185235890121940172614164993172330974284175792021402840228915497424236873293530224730505926738750362957438090566904809860181914559431119175947873670292661114609675044703649885857047860921931792484429750081456365876348045218665968557078901802376783991017152631110374062715158397463922540675856949675817480983413649180423581805385071597371409178359462304004181861114196423252259692305785288354839435607855127219825297826365557353227666476023747067432442181989003020504995855526295256562026251412917040152760547324105965657461689103245173661102120681699979033661737522935502707525563390200278209234069558596487882457545262230283601684399595760645829175027952712303578733986057385958442968657130604890233095109365244508162964772511033317589363313364854846423792385474888146122825372207153769953334110304824980542888759561974637524092755957450395078750516134505453678905588962282817110884191807490264844115249668593406500470646611111355299123536589237357510666363331235810219883064530881827367516155143657467053195299087030205069318465538110579002567218694656165003001956922302203272030524149839274730631427228728941883132252784651262187172351420999788105953129274197654781878132781560031106307155296378568793622052553924482191921567332387202880905308111284689380867531640964175816057441449582230249232466022868553422264845166746825823464553287527792888477422278174075193957604074892258230205068414007634287306136234701309275167213228994358618966521713612263661848366245699557897904951548090583818146356917148132826252222216450224927932841038067690228849722812393719881162383683555044702033508608732123742712678403768744606162598581422553381605503409631434680211496951010326205976683643243727334154022432026465768039803947122161987695933744583518223927421436074517272664660375675462216414491755029589626019193317612082733886349341069377014840481553723274711206159600624047169178247958218464266743528429706560044284722334088339235722716825771295849349159765711909719604846265331632997839150158876667752661836479288147953669648872561950293093111052556216057806741663204954996117022941226490880644414568169567163135571190005382067841004185758051230361132617898293404410974686907412346158265464775212249697591321407452901653245381399370677174784397565964809527916292764229703519790130755829588863238516577128376058028714483004563003864705752760810124725620256349910986389529027396969584896866352907138772548530164030198060276935514181878907054671265717114586114703294386722130931603451423637661169931018244786469923716251952499278347907306566888542046978910734799680902361676403672219645077772239648752142388330518055882386853976312054570124737438529500602116754185481375139801868586899401586177015059737482374969334358170189439324084296589435969460389506215480372294361094663781066700216160475400436108784346926951351452242489119059366078794600647822866499127456892112388559965092618928475659632696070485986643299822808420240318788256285465898931735592237722189380208505701739331581006094034634499512155618799988774886273328837909504102734450054914589606831297570430254139943919520143256450792415538516777090204614020596074731029816315397392882182100221560160075301011117698897912996888202571104989342894848444326977643620914862696741474642721507599800202467324081586188743785723810156088747194707625682552346751836621395642797780136552920331617018915004216739778055652274702309644612107361646171042223847345840127050068138917870617087900322291630082641712463210719414270877528393075271304559318651110904311051141351259611588427696305706043373816598420779372127579073689324362713378019394677977178466187805646666292233871119187994174404524107059991734422981721174507418849468486704767517385789259294438887445186031484307979888803882149115313629729396462403609540666951589837658311796275713404482473633915355122691466051042421525837369096213926902488218613871324765682471186331604456246766319957710211189317088162488873536209247176777336058611550731403396080076856510832125453432092964531254344610486684495212735519070396498487373473058178189597415476972655836886916038427790784601738838829991288401367534347603816757246665064288727009565427220295763625420377743132971390391195984993682912058158101356302722067903383462163734083144581397093489958801265433879260549461186544358076802744692589422423100327596005429094357851156089173725699395489367694456990521848437963611801857946106096220827905978550278702013331094722263518388464867137793091822840457850654015905493311137263807682865077619706374317920971046936391959629710257101633138723358151627316769557970514811267932704423470716918273634210124889461402633917365237524429550493425108224040262107899836169297648459650883135589854119516925190763278384282643877657062434497836673929592159275085553003502640467734457553944947230177879820186698825508416022389176936763426864299770706880098281505580229524515601441667214226790289369241876140977165237327899829892752730170152293700925925635811606869029478215368185129242091736967520579708620550643648740942698781984585653021896583659296513579345266557619392674905816786412872587166796024466571716327412014550512290896305646695527662255649664236231685532326263438833678768172176539781847124236978593344040779230719534129617670832754819640649737331966209183547704156323126592458373376105642713079008148909686649592310337159942110067476125652388757666993477471991206948233722025495137226807953614371053213625821066921876145320120540497724993308352881882801267684530617548077965181218349118210047706584778046451544326255202674649302964395089435088723994470595665291655704845317389170853996851316098615444880570466002173065900000653906735767591928046971088802505231141486259178166627448328543068118949516060232579705595329965537885136165927755663248394083149544581115441557946876876140330037341097149980530881953323796999400098963911989608813019678776359245532764829063056562134017997849567865961411757847340442548465204071407782430227305680985740231325696688162534651603645811829201145174842624235551606664157910769118678826879990520442089802716585705136771310410093186531159864138929659572711458950288252022901567977793179325676166456626329467530450542556377235494788420752372101719238814714836481427649077058301494506785954634412418127104842814488222381708912001741317928593762173710548779820308027155069512235304956607391040021611245975430054336371670997889322575600457761121786131282513460233357650078392468405790151184176253563045789679524927555403764161661412424413946718295606510019960277338952052982685930563377568666824630219540243308136650290231288663329418116552799539459875446323211365768299744578044683226935816895019050179066916210106543639957145961396596169814540618008251940371685587282104632560028159754438850805719410816257322961211011355894697013678350556679133152235301382738901514720774770512434927824806318439480132136403536654338237685570792150505178992268033341116716688915315371023973745487608887352504022153578754199129614463241858061265211026726975493317631369377149142086873291349251536479543454164039471141708024277362153737361995905368190230021246313665873991932702927440059481168811932277923081898596432640075213493257528724212441933079813989672858309712193265689283334753157962400021814770176088903411964175921282406969267671049536083181519512422736307519655590620131927089500469266023936796660299142118576895818891886545660942984188600278309691793146965428893593527754445669719716611115875845017888778712943054063445805633285149864318088750008657828790682580909710525597368471667877390868879688688025252204032830584790733811006670112558258330036989788868587237064703126454861650404005610288768125135509941226531414244522836306315459897433457931794251765661702877157689501037175019843249876872166665582264530702582872937959883102069947082042392842427039048879569414315147127185638358582088209332105152899992293790626984178268038232229574574237640839305341765896169431911063684974367469611410359458266627259813403493012754503302517332531906301046063244729184173023453867414630710217046523665769683471112055158405890461042571545293112649716052147635928022838064017160929237714599765528563015725285934840570633804044791377099758235290395275342619020389209298757038031132605426143490591169007841675626037134783361303209825816799873201761773650912629208122166614521133533891187449574486983703728232008672321629206296273226659827863107133567200753971528346462065880653493915979892056592971320809474237674723660367644782489433899505365395507204210061024730130404116912858627297991554217409084111912984299037027589912039311295844504862227113578490189392176351105938501300346416219548342526553892761182797211659640821206244806777697849487792785375338302431721949552318059602842989942978488989207869320324611948103044541052268970479617538046220190921148141810017699930454983812108580314388345402827274072020624865010392046527664383254134470948162189333541211931476304253259296166182074869640958532233226045334014728871733513337318979738299176065593015489254101014055394899524181924655052736539571230564129795001262907311866652979373827635675162923552998509588106434339882453792077094776518233611265715980167917271579183593964431722281213831258923598122712633683898136388613755731528790807841046551795020446979022446821878225644069836181413714836039999798999061874207802425693896027330479613689131560487086952749792525443875924271232606220778590667266134671934457242817978314050427144289295645360871800141931339572639797695598715852431520866218558354669407957641461968896391513661067288799894509354027730208640924795845737810178007821707839913961150658213182049457477602655167289959660455544527980236351617424588070920889588471215019362616987243843675427020019588813672074843287208908757384113788821804317011758712911215284664241680998462737683204580847928172861450782032760141418966168398644799796367681732698445673293745336112776629898299363412638997620284317368681913339898103092623896691010148393985099295232655737562582072302726694802216428212074255875157097256433471144034365854216090002821956349139104179304743327233528331741820872072727062006985019152122873199237421145936957419450001712282802422200585937450309116361897325862050890232338014636138519728202283701809109149541936932069821158736740914182465823069308143412264851721432306731966212783970773747346396270941661291252676282611162991573415748034106447812693464227901203048710840634865611173071303202254425330836882342502657884331262321710723851654244456937281288122232937039767376202155477697458449161572543730167585529673314827259498533716483473449284483178622457894471104375071063360570755678437898528688311722585912978093679461509676975090215495144042189228917235022981151143452600563558826411657055330063606544356754615150785638611285879446111146560289399719925046267491605629241032440886969378535636397687378835230719194489223655684526474311930781843782377177664483836709830649197996649677605681480475199820307766837488521480227924856208785409522686431807798766226837368646602468891020761537429613821884908763636326243857863993841474189305788242210834455747614506999453614880388555466054235658845370341551603561047846606412935291576733329891766404548195462988830468983219513949064866948571270794762431981569633741182179631903146415677041301642861215152331619164530141628977723428525545019268956069904983659753125952192532007890386957207997864494864018448097979431984160967093095965254975968288393025226047657187915922158577960631544712075338543261376434637832321903178189989808387096147632814470734555709642765607301300759930317613932072739603752896124697777548030770997976930766087206993123515899515521093060051036672566130450443169657711955940415746944699558016136330885831481693696772616537076586192730317447131481669641441046835308629595213869157981419042094781140156043858776721655314084904372448002352187715453875158655907299990803268981623812626072378272834797655025236939504493815661998873826710090418308001172637860295570872835484512977597539919317068712384028246365105345643181928499288178370318006331677258891129207259403499583474922269559009652712378582538962322622501447850506479556523123219762377096518486651792998669530209971538962866291206410552086949493132454642370883071698260377443409167559879602633973202270095088381068655363632902833078141224940721551295468056707229064285447899598721010014582549745926902614283351813957250858475945404416623846271222197065282246197908321882693799894428774039401914347069776243396643234877306147276233099334587685000272524214327667674033221303702041786759772527005382979056952470754848097863134487638943535702051643916021776342413209620233319595166850055374277244214624704555406766027555769385622352596285727049334368609105504892071715387721829450635493520734991965958910870316542742155156943611687285652071806235989152699101483593985222694084653041553537363886270928043634536661870635071855104163144296776498190472335622447210245710396777513872095764917168955821548254204816897710588591001670226630898115572003804889831715382387036572877166177084806889918867547977390523734220928794476072561542776985683286759562310078733488258699083694772607300499874663107020869333648165319498278910426461623681406178046515356250301348152782660487466117415472433028735203166090376573080029861125215734053599894491237112973723502058671181636697420462711476156041344124088215288177755633852476957720573490352887969801558407320240590126170579908205714525314465268948544104166682325606389932053531905798475341163757680119730512945376064099155131394836290519169564635627016901698507503862686266580110683225102252097395715605118410672164500093611547268352364363650738138580950822476124612269220062365611250270369857271925245883012777206246923202855042678344951233427387222271735231382371659169284082083502757021908843887602407742090909144871527516336414116258460546412163917647526316596929595634607960614677365909972528723466167289500953220738660884801609745062456207320677606818647186289011093185318913868527503602514570498663835175274559369058911992833477542497408535550812700880189689796588634403359840605369533350572178933710327847836365316741571197283872758791450849720904178336938697335361358458462406057577949870003172101565520179569553380997221323873582367844472512530021987948621449342195291593152738013868545985058561898275596003751161498759434583765377952701956107054417658628048671376258704576951484933736271763864113640679356449106888728345252327991012554193035082231328395496989257304850408388857300869128881457019730403860882049159105116159458012960815024513729678543142136495562562445485484449996159420578135853685252612682396775147154496776264672520139360801792632731769377857277283289695063177479038795522031283468834492168838588949706364651075798013577509250067676983649654984179891776342663810878111028476759118229640206892026265193080606470170789630083928033397297959530599477754005830573732258930620995725158213080944619576119833926847150882612521402411806377422231897927461258171291919225383889267822970774786373776190109164959781596979638268171473055701040797372294455505135865449492737208742619317577085132237964872332602193226663347891846079103586621569161125241882958370837826953252021885333256339974031577198448167052336037619768765338133807184957920280200186695830475149091798507768348900076964137105914799825573081329297310628823923132881109378928542428193539012510768746601071676060492959177705262681901141032357669447429138686672763655796515962184599089425060300615503405695735263535702496829593062728632336810816721542852080031925469642091246949232928987405817876070861446930856827173208283001548297674769574107813887743224496649960031327371435059293318221158989932866336711726449410899409686995344088737602650892739214691036244765288800600488286434901599988658505638588583940320652982145322253619125942409966664089722133861187482942315006420868626595913563359257174594558516535536068934396871824799061910209658994861697347467048048412775632852998842357418528393102289111859455107239534545589994520174619903046015318497723320798931131745879516168755919673148505449502937430433186182056413456307538899014878838243118914433541098223156215031888304948423640760026002984433640272592642725405826304955075494654287019899527465999353681715407625997657625955922316632586801087728895892489594815753200936193390842086955681386891712240529659727317436413601086149164171326741852912288687430534526003925140952449173215022652281266729751367634813796532184074709102102384333289373233196241921041600967900068221013843973297544510200640112954114083767028433445411876927932270303534681261201729359851665442198096733155914109884334253796657061736580083980581311361711550218116959709860535477613662900680852532756139299063742734636255306753202139292213063279951754961575006398039105841644927926606375902204307402625291516780968586614841638371222323281122670629449880087711008362026280245082107088098279072090654199423369806944722421912703475632882560017217165171422220368433875135915436962457727514556807001822138677711608870636037568036555780126138145248334171132240487589384891255521511632223692571211610275123342255799566199192635954336417550839428339328050656949656588730719432077598716648675673398319578147457042864044627814635310718652808966185938707613831547381633787498525707187384335111344561845332811411609274716539794615879668528741615575271938346053212688837172161566750428287532183450250312600007078577890933994360563990185389807076991369699397833326594142980890720551978096677478302962904295823270292139279038278925026780082180832895467731964150582664095197617210733173578476776576287215390251038709017795981589595205272373642130453087249027186588902091659982386603009175362040946202888851610723762065918483739939463657490006238273888595746195886895450955409905963495010875259678114202418698352336470640850303868190246658241672646456279836555936319918855334157566297629841482623391925012104991591892330037029439988009761934135217975273804933659073670931108454265646093701853280415503770387886293258143595166707957924415568118133384578906205393172231023075386367773081308838109659474882939125253065394372430389855930688341024180248860813600440517023582292517412559725731637881169923544032437371342587476851216450029316920981127652274326112803759614420003364241266688041014077762465557449179374037036707312000674053961962513765805937918206861882847480963262507031466467054208218759030484962638144787414183557891048343033204271534497143503063256869966819997163107380995402268431398557555689239981849387418962531041790427575660771689946065653420698276835028772515555546134843217822647438377640195972698653708750649489770854440376164232122133966331655951833953175510749838396998189385836636022374061154928368687213922186995546939354398661314602526365392021106899281642845558472749100736127764913209547743666680829621187458062076421604116223543836320687182790222895191407203715120362978336728589602409477629470264492692519928905288558625338175834407192285799269037510707376185498532026252273406429470651765904509139746094226068829788074894235367996575362686615073313358222385822867857176515289080828653218795439716085325307366312562864159263659980408027638875057553181134102679424032211063484401257438963844915940175594840774475366521463467896590989308808124525467741490848242888172140876690156234010559091479983921377114644511981249006328674319900102418012819857703780259545725732415598468485261689057072237520242843978939450644699536001952655110816634911895452693648342613063095681749138486541848659115295922687961239363677866560668565412892007357630971406924441979780573957126652325147885973515195480105739720273650335416314628735495190158733266489750039667449903891296316267835936157443897826066303125487971656576698146879625195274521456153071545645615635999655398761123111937099511786253506890335910685025849054694674878028080552121358120324575074287108507728167284847813075915708819641718772157326886891137420826394914074498690200838519663433062709412888612291076179336205528993219216994845888076345924148716568872174352726463475645238965969676846861592283776924981184074712064655827531080534908266377074609046984671267307309410695211290523291007654559623973404113199761942927277771757212411816061471694141062879259827619823350300765171399881753077781024214513857302288847248837811387134607564794411759776547354846544991839027492144759236353409748855685580439043196985174024681360546116954732483969245115483771149307606669549262701670781894883936228503284288293805555266579188273804886575167901027272189962325819982388201812334649794267582614143475606065197945280053512645322476477809517672691197194779396999185954976760159542543551852981968650533036856788045694126211813307762249141873053946242331603345134615535406772801200738995281021625442551875996829023848504441976806847999223010128314841290127461534293632333358223634781469211794495763208209997504607735835928391278388529048748316521529752411780803598775940358382767913120879388589789554861745324581220783073000998270968467608313847504178477033485094420971189814608948267891897475557252687583200661265679120789073195709614500289172103868202255960811607170541224247698619479013309027690580437368777372993428169534520784061013002515332609415165717223701895950896576473441045888614502648236454586381196679062815829758522246606014371609894062763577584778206541324255615063255284406532436224549954179944591671771633792304598707696997746560869849593151680234167250638432640771674507327137404477042082150929889732252287922901462481727637419894069000334872928384277339392424787971245417907019283466400539248052532889468687753905798920752746469072515004500404173496659913913762010655394391882410068563533819196019437348853519546917448500068654283269739139084047226972108682050469802037359437574937587453767522323861323365875651389745800682249109850612117621332027445564594283471909979105725249045447700221424654988395464499342878209479730211013558454301821264246966073826534598724479948004665700670689345593345446468135566599752359857188069488171545439547779738225108272675981295693937167687056026298748061267432816658888101378794074805205129266267273929057358294632634647991315089144099268380697813983047998022752172596249557896930746290741836550550068237358735807599393519606705885556068485310992071245194683368890558351250148767331591694585032863904799647551421538734928198903365501991389102166687175270901287243670672991181623551307010160423520018331316869557240098123827341897932248648224884857975279041575414964562678653598961116924835011955588879205552139786900587307340199391379003524428547135334086894759989528240512212193874067963145710431921705225626455007604279699452519217627460056489437446352048482750295923080549931309667968389074151918543328871310431259010281959761136865983277175393051748253329063304651189975883192996293145473773770258761971581673455250680170175103213001271823348697660288268482206297521854586203194811721649365511206371046166075445388421721948561686716270782532390829702754240921606312378304298266310535379471879914150024447857158278341581819106388415543788697907769254921173178877738171857794056511236405063905990893515161558379320685723376731179925486941208936223372820944020495203670961740262574222873966629515395936448227045319953012092498889889540885600953051499319086080190945741809153476644971792394350924808693683606602428343780893311314677095410925854355628039901558009134494020210092906734006219006056236846016958248384714171297070951118638516881097021696240826486120267591329633067541517655152657724147254339445362582165778507622389339221941360338517619824526181089525155282725422754501670756125123310235549332984516412326954914196921223468096814892191465306580083022537684667483110620513812946128270733536133152140940250173022073942325746981402767629037457511273046786944858352336759278058609671592293317065462130449059214520795516647797611216457346359794799098872312318511135403822274434571717877660539604234496784197950344340572904124872218635204101524761613515393559682245285839855984978708384440161291473854790284142783825936292812682596422476461534339705955982413283630764601270814707263128147564532542042456010512127441900925745834029265486762001520493573815356114891558896786832858521102630826702562952653377344285548301063134540198858945229587723655422541083195064714626294422552582863738373405376241631621576010002909881454871697459912569963483094302740580559576996656919322529832359741360011435078454041591478287311900016215872336694933661728047076251549232729170746409614631009273164759858198768025006111350933323034881265769368007089514414500283344527661070001844346279900234091953364589617089313925802679174911013147923548669307731733957035425769317230624083807050745690941833979643189399640722830364196416654854282651146467819025399372597761959123511727321528608988831452949631783717366425862354557546800427360188852220826971875537176010840880092753159517669596192065065660115597473637668046699985363557034415210505617722090126929967003634809239051837242262832285949013959167664685283726742674303863322476683784648841203595031686296467296285835786285290200960588645102766491159924946940773774405656512452541532958262296887114493572281349116425385596784240152219838919368890026902465251685197481259380572791299307405178171659168795669978741250981184249084579947543042992500509589621745341016811664320893267158490781354970714519922985720117198431045648980029228740853490804775867209953334062872916429960576394235758291437140632343778704582902376983436371624071056074134044501321621385736141030111430804536332371448931984478520170891700110507429092714564811104803343049568611251445226583434212132524988227248745567036263162279088655483922659351705576248802784113654710189507730114965541011935532110383278578334594732592633494802245042800801898062978829588802616956361960782525960036865732047155561924543550454570457738090031556776126731945262401198047957159828200936530219913976764172421717829654449723533725636649764341039927823927493916177176354383688889291597506412075489781249239835933855539870848331984985310807889986851983222019216125881809970704233259467452211993227096646491772650982155277505382066109410589599443008843202996452392690050550257763088657110501407715114152252123791250092998345769174420183749785430066924154965084378998366710181209999746112299113590091858724343353347692472124714886981160439462119655702734828164110774832621346807192189127704272341401594600777106189720701672747995793081595694082788570234046586583816293329344137773352605076697423780975334612970376314149630025144304717401981907315617164486427235239351184029233693130626833139610542863665437049473742910869863387459284481673513874581081528373300835187748680039666190057942801070137720493437291982493815046943462733702551949466327328676646460416640079097288546153139294786367638372826320221375983076108211533498293150602796658762417380796454197610471102884088897834904724837424549846575263651569388889633483558608816618068794759379504193668397202979904643116893857177798187310424919451921799891438749801240379791299233216366308147049923993229711610032985402737763570632927997935290950617242079978222821645876938744211913923659044797253198619067339175765707523241916332136271732226564500336381045958303953389213576076728798659690035583867484732488148745934398752702540113841294736253666373848105203299917072410913567571180599570142817363255064451981784546496407100830149960549828982950551855636563208883071299154251914433079129289487555687568253838783184650442804374947959907917417973532197033681814752211181045958040493488863361569866842353308731875563113013925117794467895871444183669188773433015439543326620808630685310224322768592986111302559421495650933530232906141435607023369066432462780304101905651352656246920277664523540765483896568185814481220653526751417724566933168647629090744109321901165095549236056577083211466430856626957557129883198235507778194204333353339075550223248848557981636142792900334594897708595819522971228792882656272936136696825121385465243576035109375358996568505989448860012168149301646136344826915466275574118683707185785154074093597021258155785743400268836372820785841532575110865667587924832285082190710965526915142761807345694329565535894240622146909253026904765807393596643362207739708332912824495638311935486609347655532381048377217133208158023675252369873204152954753179165343354499196367885012876573332907300531665841142673339236057685538740905506639598372874709748578178318173404170572160508963612344711569051789303502562550193919356212367651178724779163695816800885671944722982646064269513168724049704232104781744009392813104881515696308803221462211694094376651443175760505330048811283051390562819375617256698625559279532295676808633616728475977721144705675992577668174876385802448757366747434671499834619871213956763296261801469857183480361048777750685396363083693214048425888060129005060120481860201788450370014234578561106397274785889368101361105090329224947963502298544619238685530706213435776820390483571151691348042818259608417618851584852179598333223411118254101710068026572449768179624035329897551658427085464230010122599605217936022563807773757307516419884890007713256588188770404099705899924673840318084352132621900105303034140588362139770566971689430158105296015305162240245315716771760895723603266359360441689810284021448463992455495186248607629524758407983620771224813422461695903978504573880522313274701382915028968831991178287569643101911983894956239542799832064084071786061987600007553639063328008143602958332767811011055754168343037067894077757727940925147142210718647761939740513719688409380768443591154397997909077872687224131830213564977508187886316156807384141757414116652149806182236981362105831004276834771910647422623606419118546058320961579058212806714403479626040245681428672983585852717541980895510555728724365948380083625828525644670233553222710624561487609772979078178628811887489041445693962739044883256298868055689208479455317559379510478968312936358570080978436253893947618515584052417969155204331225475318544434042052022264454829086082175546377655765994367069508388663443112733408907543474658702644294511878532200188411805818357605298635003985751601248179558219703848228874793690406172836165766622180067216497056664474871329879058982820336504512867534781652587124839856548033103614825066035729061777232621081598703307224896420324539062091782899168377655975755329319719255181431462596004993456096688684570798525349037548954895660247653835864418619754766749307436692045133255342167436806667089873166314644354743340968135202313548534084613020926534240695582394640763746698887206073757078174777470723163522593918447131638664770893665349853017327253960242371062337088308037784803584191293863001078185370090640147921352697149331955161218393406126107030109301824596770780102797150368719293050173670564179102926314987168512256244720705945468589936293164611233117473588935827815814688105834889088089901758081407497906425699734377209275255777323291819768685557275149656918521478809762460578573621484210980496087841756918778624916546164071740118567732847303178683925859406148793760801929991821323199325965532682420184826101843851771795459863219082214479428301658614927330253551416687419757862909111473382642632368553781194285020670820408759314610411177422432951789588207827334433666774097804599636371981657669320240555406120095987307456891467432676093260491182428283892627479161483227917266609117588356032633673638572065719759816501150495834403784069045154361991092413805908133833031295996550700794449067807002191631337050676920276023228362262032582200971059960039509360050414998462367297960691963748923711187941130197261639133968275460321560068588582623159749018508296092669142426480314398508153360060729720204478609160297638877127619702086104946331120624136313173669558409518408361732484070785124585441452474400832111310637133229147903638168608940317417776565848675402384070532772706453550181752640679119134043123008734737615547362826409675239392317537946051400228979057569001692504670862840181050146348283300250736114521548066804068434544811686917814125952010875901497710901405217827468755873688928296099023556886813876615774372882493708185754823951870397558098392319091394273046625340205727476530145201247462478697979934333598326680440906782398747192668301176469365073395146420049725574636859717393355596798293452338704568430253724630474949744861916696133799021200763432353727565867068265822132587385418237626911847387724720989531313890871849580343371015374086471078121898644577348178148361916195369650133935211735492937247341100222714395785573576607130959950375943827959876193803756102529091948696206002046007736343887338468854485466334154538436268342591806811108482604464418676628629079450129305776462836893406314507082252108020217058179730096747451545162851843062881536197577284615114252688985633977632202498180371811183336473936286730512326351225255328076071699231661390179734439239367279333158380594979977761434535898986594498337998447560012094752671499006390669778110096892539639190545165915992472310743525843188831514076910041129334878391067907630719949209795943609211134972760648054522814775582999441580581329785336395719931567516009242766608418675803434857926981898192598477561931845247715865269429046200220424472092429607791462690801015392641369528973811505765261519116055025244972983100173342813968409481084192664626369435658718128630941187910864835758025503901280202931687738912947754274899003874061463490802824299045444142523847983521249717456352319791770460238380576798233558003677834883051705380979107840052671486885589857367573080993779608437263472395284842510214918055652550155584319247989707815695008405067915944450170064382724770559796027285250621276712393242495735773961175858233407672121903689413445085435377560082754903295204918176824215925305385288910995648579304501987001283589179998796085862074345983134326749917593007960314348003070123849314440199468880464039088702415712168196336961898616366295806168434268884021303462508010803031370237194603962707017155552397927739044365340542966523865871620225789980995495826230716373129500634206165812658117453948806082707960394913740203052176788196696515244055280795112077784653243890340481285104874780947087062022079466629442101978613441165078141724428311071014948402863955254693436433289779173366256322560048921304557434347579590534490798624272234996539375516913149833736754864582044358579431277650469541352068726393146052917864180262867254408860683903171384257595465466735157455859338678786197094426664308794508984880669416259839100466244480846210936649374412810227282501694023130919904288614646153927224493127841137943262307847938438427079455176038019790227148377169536993599852437178317355441240551454678182375427727884160035516589180209605063914506064407899084953817934715338903977694452203451889388071843372031979367848172735724225750516250714903645560139757019730790702283828770109845327676408518171101757367454260336658455099546390293668480890823499247171639082782523940796513340657086372087748849339358644810328998959719389427762026626663068163808431413425441226857602290732151060016524967556195050065298206008092275126142972289003190995886436677032248693701678766789429274427264792363129429967765330790306289460301149440217545388712891613730393485872778760376169815114463231603316056399919328443108458884752475467980012187242822277730485346235751834779523953801496648485542327953844418209947607471760964941358014597049068886433489954429503009875261365320531925390318356531130191470633860454447584336570897547985880947694371251507778752971521709205654869475094177265161874064722873340308814830599682478155584653691604247985828961294704925750545596966224581389092658666446340827141327896542564335850087736722212915316112978484296994421084064309412286222992279661748008632667869122275006965157710351016717589192319621971068772615890058722059431430258347145410090262368648798322815452371820162025704435556020822308845349201082997757260832555414341978180192275956273439428055505687930101230841322361196155561720428502880416335482401887528960691549129231940881355429393235254950200710748933027540425995347941975419348646506574508704660086437991878576398121544066126932406690392054251541484848584673030239581546530944012145305751606930472958673494983076967493565946245480113746912528152054778086457157187419177601477977657283319154539725810344489855258823296118369969891037926984306562737167297409684112790998801236578222449171267871412700681003168375566229350306905697006907735707481932013735628198344541729557541021511701059263453227837333330935872780900649726965300031799200076589954840061094401769142230820411768681489451135119399393072062559555693387113279307143674145806066367202250125833759774450355667523516033047164137096614468547302368426449445985596257302978096341438315364007114713475538851427896068789484457461295433394641276878808687698394181488125884779953389003224851317481362879132080170388293588039864173292729915500885494722779861306691543833545866942104661940517991580589277966693452185259897941782603201596417972742921487422129192678601572280073709595249673694299888191548123289019377352701566862465405663437189320310920227603452337338542219756399649527730978357395360214447186575913143743993708023966644021038770428029873046010414803287771966916501840736410813188601970071720649559927210711138566498233105434231830196904376607606120340162214430960733860409347498868704607343787244620511034365268800386586720284907132495477656004469859982272515005696625769138143210834389971994802682581145889612689467746698480500370724322508809828571379924657109100893713408206529770750146122404946405215280014845356835452952270548111426214042425080663304891524129950014249974335580796463518012281393906012725212805984379549426347313297154832728739215066006064896336463982125062008538737505294993422187020811938273704501959097756713044869231274102857536699659003807149617195675360364693012159878555096734227770197973367314311343026100171616666300858085735192946981289012101503609122676098922940410941751729414309099380267858346684898791992019415530997717348551477180176461690142205202831044088007223331890861475497121742583774422025202406982726388532585051449435098473468922245641652369908384530418735679657982370593033761488107485274440867248134442798348201819776586164155841973872254815210310369721366854534330061276195483134342066374134319416044028671281604970632842333143302209405638419619772760074285792492042661203300292866127413801646714018212836300377422211613870953207402987673331896355660292836069030349247536593150983126284877608405809057520509453024306675209336520341283536514932969789480443078910626289443276346445265261029784363452834804949103908157914448944102125298296045455467254452334179577057260827794993595091915386807967946818903427160719291024674139073690638784797601727664595878169413170715722856191622350809294761311894847632277300137466359152908252766896718692298617595915820971578526991906687584722554565537602950529651136707626299709312733288523018097406620638897151959359427208615253684751535773218801471567942323023971629405661898672820301669408313985422647046195270638457660662178619216745753389256195570018088438189383458273159737184243418066648696794914625624040147888756202697199569743805934266700964426571098436415582572350430280712149996114018244081472507509062791367558100554447643694374562622993841623908338883900919003302396378315632279985538054129762645128296127707960368905516927161720762674007584697584001610455333612037616489171064501189812980649972509796760095977655364487669022700437194497651587290220511443618530057792961764124197905723705910863988240842850117162047875432515103449119577934652347617996312973692315795049524619850021794381453389480393151727146757808176153135556756026132099818309373459008410222261559498059115682858303371207999973489336628784113723839124404303590795184178599246196699236966349507418739970266925002655433813284901537851627289905972522246961329983057310702173397685488575621253155733395506608108830039689620992533985019267689507972740297611573664576249851384347460472565662299965264517715940318257425131915411880078140037525893772578432540595262872840121334820383835859571642745762716264104153497183182442840656544102385324321107782961011931166582120556514787696841176249342337443435297556605495812640890411535216594280323972478604907712743339578435001485015528105988174816956607209689496524134401775435313252412625543250969511123617112323966559153169780658558736693120209527167410121564169656540444747997826829927598676569425786981747457231992749140960972593956137506991624099567369339163764414603348777141516618225885351102503842510350402825046170551237176494673095046773488656228836749059624270090015877209297945149171571178079693445344725657611816965330289946821576594136436404186463737256461234248118230532759392717994941877811157064269931497728589718297413593576134449546761847046930874167695539067989236475659918519137715047610211970652116294208873341995303728673320286838698911230521254754573359465039540719707657716192881213946222974192235778125663093487670753704317099743609419158431445367318798429801640663232731319633039420403490754599514011027417655485114627151016096098345027239507483594859154641243144388232304214966615280750992002342590515821140957921357361645330676626692518310285491534257707962772245367294856898106333079715709189082356167831177430618168990761148839869758418228005854903698467304492851745768948499436009363583638523719745332049852355113043676199001377679984584812053679260760420847995184033028779034551291794564398285223462828086784908915622106392274439622393040541539831116287614176866052991667948814472988322433350914064523834895162016741557597865123856392354571014356067760840693580846155494002589136475948307590327368836983099949230226078962894785728702308606521063180901180002314535845808055009795885663390669249061741906437217783864435712379336100230201755051708390919470953065983173812635596113005711449757477538271567369730773456095157760490151824890663023560806810383984643061524793704563638573277080655114506966533070954365850606966662118856286898194617059676576242600043595379448174595643559013251744231494837391969288783536588333875820803310311389730008908190637476890273537010112962974241178861884019010247219772282945866011732614478630350718548708947767266066634686527145396198558140942675530594762982781511701667993932662344310379583861353720954803230187385583740054698921634549649062449664385362115884001745586752764857162773262582654907024666728543384382517596682628731201445764523348326453648315901845462841206505633126836369220237126336972842940511392164288706932502567476527282245237381425044362775046270941858996917513892495761396844535331465229926478517107692448754356447684684999093371627776800728926121814427567370816569883697207073456858433733293529648268906159669183567283021530626693032691788942946533283796662234042303731717634387322803828990111742597313449630995723204334512457415808741350992756276878607677694665469459153198988981183707950243340372511603681599388760429532462478744690528941193725830907902842047618923697022092752755599196744017715646060561222449341659957585429869350877820828764806338655971859748551781575937585054390575294277431249566984927378289676373230107718709691933331707085792565679107541126764825031528272909242433184392051334599941536386948932558492058491022646891558840294926668975014257050536964922518165675860135750742760671109772395605753026041031698864931575405534926603766970491596894142671458874576726566019964544286861692769033175483147979448889847958837701833006329804145451479418858796615058145042631605908113334807816351294188536707935644173424137871365444901023203518360203136034785261028252420765568165624743395812219000944690949661346863389284555026651891085822674719113221454937208857131031599868652744845918032390125869410022984068525965011735148660247612995326641172713519301879867261399965625539389813420211617007124656032789860754035493987631244673841123874170603619957918890098769083519231199372955232891896902614069646784172441391716523617302349349443277827039832988747872860296790229986673964750366936853052017641841838281031513548343736722807513866321452358646046358218658486453865197960970036216330508596129378776702534005487441967790300872458884940492539859559843108589870584657941774217683167645663865419186730713413727401093474144243257721194745780209738007695076348723627143644614901012297105869898661952964879821069610552696943616126473325280176978950148191911529290676224689418456430032842993082908429302692408229486252919399109947584899963538430107160415182690157750346191889659511372210493487583853226743298667727098128326047009002857969458145053541513479529211690121634881848014986239626963790165469742442764138485287521091472258021668525353946638844079926970860807635631705758354199580205710575796454918237280115801088338641754373621103439915674428978856229427344866878560291640744525191163401897476451814112940261039425163614303548383182046132671238846413712078076573186970577599790434100996903382675721064663283805269395722611543705856693818782568677021892716223896010470781816837652975369474783717291840780769551283943256557030916923009110896188802812346721282863378313222786150409786754202854335812440206706365199619838726451645763846971798588023717540674989286615684077935748861542448042796331938247953821550655644171862342237593913250398710120210938690999341872168007094556402640113317144012426139830745160596074924173389085424851644217800621059525967946982696086331665146656723567694960707524160633286291396209978579843114073663381128899440068513437468786654029326820020079389528321295233643669858756096987013012493955227752191295202342867094760022366056922945471106357624336986178697820673027681271971369110497889238888924217056183961210571684085535504437740696291876631759159591211196928448264823774935576705672253900416298948762854054373003531052764754068750711430688774698660278593703160164767296190590886275076332379522688207077545305211343379032794353446223479670421921504298108618816849054292190223105890619611160708062494435945080242204928686881557048768930402821040069769439030166448136350050061269352697622650819416741274358387815457404885470168312763799488117185964268588958925436413240098042668554574597525720415888635340075858307527310318283442546387034061306033315925678476784792245827800324597020036192054279672575012599153743120978578077234407808777871378381891815785301474440145038135552890513922579861528612207616432208180320357034154408268267819916750755753709007304909574093577935587264651347681999245809112602794162295522233061524182665806518288477383349118588435138605619460745660892901408669901125735108849718425318258362497538822706744813627876150208190599402912841138376398261427129912206532670773520062188618858237272885533937434406134486873387870105934944430377154413978290299696284593266160165041976716639741952524974349941251332276506892757533733167967856602986280797191918780459735040036969663461715969919635226315621450311081761558803698452996481539881460216637502570327215051495212327468527912739799403399103065875372436643337353237143869899195108860872205013864257155920348605560014695407081434781042926634704688282217255696073673357817713986597769908317011738847823320011901286451372540952997574924017506314746390452693886462324516846754279275114840096470689888989783377248971673515629478970114991533690631295159401178052409436848597925967310945181115167376541042233951412827525018521163221742708401195773190432617102830794252709637740577796799907175283310650295382732111845511412027423996787807806456342823238297107130349988437738248577456748629722534902853672756617397061395595115786113178448574936804484692338195753563145452551374069612388013816766086919208245252748979897136579007544409684221805879348543850370931283902656289793035549664057510895278183950338904441657638663649294261869481070866967539897637965651052212214924912987140064501786807146971858452657748610965611800224621190104902214081599338884564108597063099933988299177791968991883309850974350695419575491101186006674176594697626848459987956064993257313518107873239150147665746710405766243214141582250231090568823870570088724524861271467979301034640037243216363347728967841822386627404009603299152427679447266084311223372672407300374202746162696879677497501779127511865586844979543268298978986910223629150396312944635632992456992134742440645162463105765282597144696232791607048202532556810533556949294971590428764016304765660864583248384055185054270898399734694789316711862576304273340469452425279539948657012509228353370286632380798752383481635150342915520621912922487306518064549747949589514134881437001718690976122024170961574272552618895693341046906787844013233139017433900930062203184193058002825803749806356118271471666974094295968551876270183316998167749934580133805178463704889587977442964906160860573864482218383390289019665993110120920741114540446446014816053590009665836286367515436063522461021447640153855820965019680868644429537141936287235627654233084969370179860889378486269904860998065704604983914301453152061875441128745877897551026909874307162207391947672690612995033507930141718741920266533075732661234477812708845595699320353466526272205093114688652657958752607033436663600744253766010629091681421706025000038137169971785810978017295273305975334260925012912464109429294878407072778283472092896376148821541132648357513522159157860277857269349379819133249352711428031757925320657352013581146053417685104770317136435089093495277224285305733070412029632892024755351521560793020679195378827008744324752850620621116190708573394124958446517332821286089462711813777988846800035840417145856089247459777124722041799746039060105282998532404482218216503225674522263806962160673176822639853035456934462554320037978298913147743144725526956942831328055235965554857600706148448815158698838767418012722728580110667457974297166137264672755809335593271992886541650369295331707967372578635563139174118142892918922736741530459272292166443081710151034458368870110645234224735820319966272110316911928311865207270600142768113893012087633333089400769203968607415985335281449248927182740867393008608259876792592402173359795756746891917070738861421116645611181379491062275816771164171346606966529268880264751990597521797960823227067780203445683094969390126514334657721024419387910164173974404689178225440999335430045295030533594410715948310816843057960956356951200046600358866802742393316104468304963654509740896961338522275446291405464660369867006945651076100314473459247080037425501064380761539547993092914013547560944472019693661526579123043553902857793350719098265714538140226720414838145981964690074385036427504675268263027487070127275521057581791496144237884027626520756246352123068646175606536832253959158817629652005431545323685226041316248148758513897329324611993737070414383057695057199325766562986350916444784666176128095737496733277068009074472054105442413653822598219392409337958932009740846166404315320560570806953762489618664312452068193358695468267818829071751246300994191015257583019428986513582706673250456505968216899551660292166501131193618050724518309828027642045269968300830385226813991802548541729604333535655653107046781345442984595025218057748952295487387788497329074812267458635778243172478580588871931319524170853655943393026942016722420387097530395030762881947552555229815713668577885481672423291096615439848339937034204008309512913020342950049442424275562722373165911478228629489264454469081332931870555049498393168614533298077842103916888871471076274556163845253124137756863150782371851912799349150001762553801828474032103006544860339887233210477279724525041838715696391753138451420655963742808507878869144128001013970690688746659398286211517236571043939409409647103408646919927597612832506667518998714737480178022696011556516961330886968550788767794926840158019114902119155328622771332149746848858059767274377203011884200316741731723747194634506005084193084134554134324198456987725078220172513586985408993931153090987775049013074206379641138810560733935381550201187971791671982748717498665568960495224862285094743423339783226081201188058029959435557164266832754347647840266135964213593397200840940844814462220981565322624659098063050258157665852074838610019595835429189417560299057536977148601937287671243332148704555056327182877888669448537694289834327835716205236336496350668248909451026717053872706352264031685052139777133849151934278681294649577882987757167014404177184353801405677922135984982327374156252810988883342909459796981272312614998363543571025678904463505577897724559169597899614677587046493701171223585619723447651443128364070721769567308007057275252670152076160217889990632631856280972474336670272271135736284350670037573568140054303516295775056752584760471989898859251796983841899454636992020804725547547171528929544445372625701731555721528837368030473393430009294031698210640251273683214941817564522905307556238049528095688664561578984136561521840029506420595023281813637330390779406255156024633542218914690526813452821318373983711659881491154748088744150759971994272052584957422878498946270865610231560472059593751102877494426559029252741994867466846091875929732333915891652561681549400293342032665757031204056169566235817891454178167524704374625098274938284265523534093680757196148082040820603622077493336282796350090033012204854133271556127724000497430289776486188994838320874377946864295971216521121504966500888691071806737709040152300645784538665910234604488724156297074250107431349908174503073109599531732623877886969178147551892322300349383266374475187166319245412226062659815321668003751617098943304977623449581457034511126261968402318084697852964574459342151112554319391414764474210893312420250168321360576778583952535362060105521304576867046872624122528815694434399668883040967859932425413344392252654548430325584038183871824411283042639416625767776860166559415626585123977247400066046736420464408034014324237063415845777300181230614070238296054891883617892412237002703248203675813224102467947830507124655331375527834666547390142590214896899195148745297484321522451124792984813047252277486403469275427694975603526297548972835364670094439616480690255383338325235780357806811293085248567187887189887435467361201644879754297321837062204436525557978650361074162293706686612212030079788910563740890169298627398477563107388169141759865817354645060012330391764280037336219352411689094829767903671017496222114043832368777877625657547280746742845783371423633246076576720408816268055575773965195663151886812436507255385915400541948392161593271262474563948055732481237918113137391198045057980454990724147541150101566266809385468712209821282452218299216894006620278851261725150183547801442445360639909065426033318763584702650178281397328874978774081619145088602925782421617776636682599384809003397485763860944631678706789608934352643567551846396475074334901913290393347235306084341257622604983501886572715699131347549262947316353986260194949539284186753488572354086488409190798937184555736669545093620685522387015287188631206009946127133633241707368873142486176445339608625676977943680603746384628898319177853167208869477852809426978244260175229464251560346807251257990121616313388410863872417813380082715123458403263154547231679581889766857235872131654982707580282722181931085598706940551867406006740948729626433533723007017571773577985088865050152476878617291848564349518044002639246088880590295058385959156568555719045399723138251669690292752490890155206920975287422098993715448852304030491881425152864181113846491188860702872931435547824323125172991391870234610061275962897192404636073519322986251237733627846134160682673946022808453676913446448455723843816156661508871286398086580002328130844445988782821227477354452255591273932466648023484529430731492358753228211365847678451789331674065693990324002472547688474166236333172317436604758892442087615073084441490622594759437498286084837593191781769879456969058032261671848790459570665239768594181992763819766323537299001670853023448139958326769556315799986767680752870022050200714313260657191670727393873990911067201963938084297833578252573851901287571335019167748548142025186313253397299061219296170068432222499851411571331435636918965598873475917177549558666840754018250986190558405884653876993796009679013114552715698314773578506234170696508386939762739867361959358427800988875023445782658838066034426972234302728674203135660266463268854779037267981691763773548700827436058737626470229295281619331933979827973841360690038679921839202271119171419162420860223736462122834676345773046434414037176054717338755777793048728436866530165894726234536267927575523518156416310208620142340829140753796774495555846502893682553241809558774516957587368226023750826607101674582426162797858350792096724028823391023619942598841081264846901055962193091711942911118808533327094403102508981232604187378693557292308772539712844590998630216515722449953929062854667729289531007379796758919085188628435353165719064486402293979117620990413864072117287878656101559353935772537274232264769709501093993395649882006653171825427959616320410105711501297618952310481076627678283863629816068144186141597762729766498512076056220236883842576416796607663766049558182272985631407788855396141282239827299422884120417778505798960328506107249967886164565452677776455355891459953450298910826626384748148305929375713624911244302219462793452778698532315990316562759382873908784634151872377234716949689351610204778733990359381454071293083030661404206910200070130023527502585134765115069010519868694045572117589850931764911446533954140200406006435861695629430680138383930106712062411868058124648788887289803941364924394095068931524336663850906714593602915579255787710093344124154409055761137097152393258163066577681537574990783133825946253988366299789332626948057433505961432392962906369020591667507662625963965395752557822426301344391861725847463059379328883415907542324969597357468021904397381745357357327885161923986319870286692544506657057791673727161976112551110986604924942804294650917929591283504133259741116604217309481855104867309556423700232578661194849246252963466373316089695639328694880525472073435166785601190606586876643396706009710009264290981537215249039914854127543791279449539252303927043260135841621621402986668598166652048545805914019359525197103558806873988858676246031212866551921775898314018441829116610084621064859528720760744053681032341079513878281521239537666894389790640679328154629183412257196365832076206566339153536880507938019212359541111975996066477158966656085070891437408808193155978899266206612263445791447321214748347131279889763284932995744885558827662477034893365583836659110927218588307759882147918106665190800335942695620653205633831909482248476280831627643697859334449109188194116400088959202712968828541958077393000933776472019711944557844942979406044351240359507642178099286857834928941916934451713187504850533461827200151467737935486723154453833368095921972500954041225823903699070665475465792841317629175326751281486310516861538815619416369510246208561907830897945559573396214482348696131191869178870388583422557701204882849721948010945660805480890105988312985668047570356059288188721062255318878479250956923739642953823979254372865273864182952218082847435303732225817369046946527263071074952146263598028885384794981452305364929506338546963335560454248650747272183763464337116759086369228293446774287819122792148755297417916694655393599090042341437086352884059416608026524384700316848633513831121758271296443255304169440617638854100562587601013071589735056812027357223344050718999657605002271142892269570766351857405297653713492954813307562750585241453927044168262963059036958239944955013572868760046007904300603960959267251163608216422903912291633108972576760360353468483025424314280667851486862428054446495588381095829794355944785980027465315199465002217046947910148936947684915177658035423534092781118302001634252696860264355456713221884931996339951761684030602069075398322463535005920519856396881558520743404879371600439540935849787545824209131034268186383749110149534474683750578649779343824505419260765299304408285192646768261153091055105129052517476074999987660007924351202056228236145126579108775570088385441717669742356422699767593857410354496029525062270787346074703387919386241897112805591553262480437689433331651659575564446304157828021518873724092543495791941504659913088701949104966306715779833757156226448617217240844741580211276325209238232613813985409260380241060057026706627957907689440467140636357658455615558690306938873361772181434510502026816087251833097780566808023909359818525746170460429784201735627302874066065049444092934098926437313598778141674970897134757032247218329763334510707395077262302338052404683936316249623331845115551668968416515940620231526097922627282009204879811539486621235093865695229454818185782902942667257676315248836860257060905258851127356682360744569366619403610372311105045376703375824449023678256464550537866129073130020162664106475969934236708537044093701038772871557210330998413117940256444170649970185013828649494014447977273368055174051181317033795505090469867705165951394941963973758470940748917408294214651029976531270555904411156444641273046565375322835965068761936545951228269658297925287305383980785236477808671808258871092800895723137653597584010291784094613334484660826056451125118218614836734954374299315067208628698394198018818056297507300663159545501322785739153866144488426919006295968822098055829548796758127693389226148259179742588283351557823150480854562246510354164545103464509749946509644678023527239058234486130394577380686109468404027218803532503967107019264124784408495843268779919078149136529609357247932139974819961187047007035423866460667251287758987787356908330843347801052072842512763958004069561423380511467714178413000351631107935181893353202390507622781238848575633557579940798851019272690149865625996059898855345915565060082790735683086313029863502633094142649219444977723867038921416809767014076087102431839886187869781545492637008451149263742442369038979725489534062967621563389461993861174891379413177663949811871296697324065476626755612206427190701577309966355984855062664213365033800081330336110522411327563260710574598794173273461568028583209057164516660005722158191501868345940651964156104997541571363445015687527559671279090253179518026017968595477116705388844546360993298796510743310348109190078329948977519984752048303820771207253882956479815601806546710609195570337708175990949068518870871904865938194908239166206561951680721287512670636581656026612188566522920668560610903303801574062017353691519737340563499585366175463170349947366324384506818528677368236547013033162378598510220065194533916986926539556737224087919205699130992270139667934223701938259191223039916849333850080351743587184684650747765762778304511476876195701973237610198389338499930479244246422243921459108049492980847688873426899922973117649008572601307804906833968412900064811166783188269328167241199856281446438913685795311134423415248532388482392980018623327161929448034445760052588824791914006057593075041941509722971598730694200832933679945907700402358875026763119590143367697580158136253454676985365298765194254056563449606828544686316666891469176389012441691057815969624673169234589943778395344355515509779376117997556418595891761699681097306429350427741782575202777502079808558804960201775290899941055470935281273184138121040758637477833316236268915080026684863390362237412016085334183170874641387154462297058462252329062647622371965746412093603709974410609836408585340989916583630865971991257497633284504066856930209189078458845780093090474750370693252509173393570107514945219855776408305661539710097810147773087922042831771772337002253822703241311725577948052270025258016940702884364464949369466608079919522690948255424415666361009293099393785064345432138320609442688449679465192028230014125488855448700195553590535530281425440659609419919262429428615692381650934945458233404349807374548290635313502192857701558547715257251240466990936025050012981996712823171618429494962608801379773017045579441843724363829493727503308710982148831459289795580914089134897657291396164469657455362831892422952021248612673453831984290619963996988411935699648390199217529172523341829939810148618548324556398943951900886728086491632820844863626698021153395152604113263590548324237905896926586658008328926307104582064866218739260164788415715600801552581605380347164513319455116778633191957207110470855830358171624389531528999207504926356403166293510517804191049811537117074692963475622062356225147867245247538226036348425422363523145218592645482842463392879404350009518822324867539503141954450250991191491504700346231910603505115250755418230379203133658524746366349439917688972181604909807864323215113876747218544600718934792061118059448106423273287992404407647936105488984581685942918347323849088295181580931048162685802938734562855836371097279780768125754730258818492333672203339702565617682757273581245350930455150923042837355130532520330824787594127787411005743434036053187841517481077564268952419146384507088117057464517584023872922942966368811878823676255421907159862085341439789033453329506731326698323996473801916347795154825397065914998445966448890759917374976869129615665850716176221936931945427864993423171036041253331837208325821852065366334268079041887620784156527678431081968959795140783640112684103100808383160763369700320613011032161519876000416365254637411220569057674982899488027437514310884152504477395769549736910124278667487088255016232611157163738931193325754907126078332524438425329241729954674357502209105767194138241253680012323679061373801661782826988433164701816777732474140313767450841315141121457481523134366872015455071916142089216112875268135018462030417393099950253999050331537075277136554332557229540906365919153992475950338245389494254623276887721157478891705676205236114883732871444724773504780908148227624587605974362351278824938859946042872113399021434782111243072926782298710265475901881143598925016177510756573658697968995965020464406568290749423557699629049251691008412512317702184714206059554152782853690575183894379225185253822239324191972085496770920059732711234576447422150710726687856895477123764530846595825070416370907550275074781314267924171033045374879001878229433188827009280928894463341627116027092119401409951897929162761137016958916102789508841681506953417609764275194125308187207093180599688033432918928534004474296381499014181279320649318973466455881224067420673466640643111861533236355975197718225943870512375135506695800974448887479896112611054196146017213798701398828978406209613034524479211992505223249933872011777356396503115122256651684303385130531205908718654573717054240572197111659399902538584356828875227684211816066260071472311349119362645211788349874285643672529463574926928708393051834726789768364878721314700713632205473315129095978105962768678863858936157701808850153527984587958174748700359280367754406480080517574891474727473729657718200244848825578083988670658542018816840931795919573315081336416739111108437677766717462848950041771154332065561636978983507621746965317241443733785929425175884636819303417335541426879761703872146911073979811626011340590890216387339719004535950039522040404442763382240646315082944768146589449504350934179691879672546360491227191763290444453614453733709341988192720216900130622452206844881382680828650622435172811005776749315461128966944563924682714953995385931270963893321117860896209630179563289713191696203982080032058311456240797771117363215334051774444931366435341613492926362457634573463358640145370933941779341814780766584636364847921209508641081003584516782316108044535039770117198507863516042400634926998557606450307999702309542728062152755826590088888721454790194128201461809482662562285594897633314588778154634643648335847596167052778708645589668746284765659558070553901604195644968085059825105766109106345064157957436140577457965982237768330757961385108115709609369579527488144145325305604121890408271400807456902608209259898448058773239819002200344532773220260618359913515660667120886527271642974284915051085257757404973478944109289481282934129696578156883523482178585746387767625974168502050778676852577020974750965503778469998374992147202559623123038377599426339692196330410590266864873136889960514220208050832090761554620577965697741121676253470125297329663351493983738937976685458665543771800095783745245632607411685236523837751895032212609599004268454377263222315601747114597326115117699420080358828144252185767489355232694594092751750453395364945170614498306796038939972459611140525921272774628144863826680376281686444575925415810249512000221331483597437115683831686687157432966925755353681346609235820549308025812563990595059361653883340074894425524411367645648648138401479502226634802937303800115796591643001057941251670117728443315778338479156996223992684575805806188888135276357223295748914653283668748504328794949532066863813131806171530637836947893745772357846660109157874981548300362156529530890444399460076608596588625967329490882611056123156265051236405357112493230063079112107296548325500442645446767008703850309721538630503158583969791814815017527167969071355366263282068303893724393867367452172494598478031728153872962504000269653677848519164134352808652762392835813872475605662110022875386018627456507410153616982581732813259485018507107965317991023418234594106316214695533476318617393150107605616635097536117835222146027615983190354718738587381552328329271275548971310297596956872723041462953707935034557212812014416945934207866230713848755177458365131959128702541384418520513142537248238330024799318657368973545321774700930612561916982252525217369593241597555049565181827079254444882632292610928684008775892422436575237024159454293639832956698845590169219224994255514132225377242792837571907389628766937194404318408317009580910528698583599593243162032875809642726283759734065649645296380822930592209955375948308567683432468062788518585851791926017030012896474157823027108981040114072355971337937811568439895068289088182749369997269247067853878435951420370470832234203774868108465914827300908449181170249117395601722201275664881830758522263471146735581959654297273518835458606191734775912647175376720846996207168352461634853606857089849527761113554691810741379269709099576023416363088742062138021878011256614384685344297555351550871034409044732291349742179513767266833537771376647271204030140479898982670705762410408394926181513181478894809500396596236758047200452800492009688184863952029537199618255260206863119489464723000292618265069470534573542642912581219993239862458500747883119804717225652388795709700397427549751281015859166494654802830855108841239422378195417956754514373964630928914651437383861658162117280122370651502259735267974634020986395141020266309322085669156682499486915832282934572736570694589654710136507664011597177869872927921589610286072485453292462948598794629008824628891768381872329389289851916302919932754686264037170908942440174874165269599883567181418604927818548448481414093559223479261565469280283541381243266307506463416938274104455059461935252909702097676035339013927034503419039692756875602655693098997685396615294397592878215807593501067073529585871964016799374941371633692384278809236840527811000663815043708405236635143202656525738988935083482779527964547046722579220942688397399117957491461763269953483731310621979054538798668555833416767863168559961035132687269211789100461841388421172926255010962283800951840097240449859923168547380352147600361261950521320494624151633504409227166003577680238191821047538839313778824671485833581276651221763640343961649611172529160113119904705366448698473514376933271865992665281685162458161395072792495152818122584636431477071730871975090517898289124753099567294780896753507324027606738075521742275974556956016626116460625543979712463129896967580320124715423177234357892506511795778008857546500730735404217761642091522070509074695055202419719735704768873269211230573306609224351741884481417770448109597851521928715373897361631839841370284732256092700510722966907339093017096098889514693443182324255417247459881767163139164792230763125008077271080078413561695020573476677480363609430834676695895490164163607835874974529942441695689132275210703284046554797131479617820840991629660348079256186781844153518222006106070878089583118022883534162282239550053244056482663823749410144824872264030916560142967734137875610574318235808597551917497257786057173960421007670540610387296505564856901112783468389554658638188485180623375879408112513440812237741594205711773258051434278648152975513297640558444092145118858477329408194342325210383583835860689617739194252969523188401637016658560783205449024855246551058979894348942226993147979228073683283236922866775348385716755689868120441755189145675661387801649062227845189658742607658592780819536345381009070733605105841396219937172635965887913931999430907982032415251901658293402632185723410177588509212032553617166172775180331108773400964799442419155286276145694625613007780142326892972205948128086111808190874910750144356822212818730064480831312174488575178021384495982987501319028965587048860590272957417601140108954269714393106950336833431512800259762114906910758371203053069156670482252514975519088950994043276000074809678980859810617056035069543683678038810568281680868018232253906662222888348678804284346130962797356753864789098647248708346586097917481847725370702103288985996521637880132435414143632645286570492896607269846272318548169253124155911163055197226010197568344853711010570499039861918901636971730578924338746919473266009999452580295083226239453037261948910570232249962712096406461478093093086769537364126844756883770175039000287732362974650470070029173168827745403574679932097113101656155048330251733137921540790783624587393196697677930597037096049284375511705215242598559115351723246733761609092344985922605947451174921544118888662279241198506379230098600389380676800659360331343114498514998734066432787627156351493280278678458016002202921170539938050343281846400310585135790362102710946959921578825186788660618380997097057995817036935927156515626454342286572709277873025684516431202933110998158190185346336081159934908425594879284444754036633713404352925442534546647699502558641108001272585133554951087960940100745465086778518175139845983622590397244111093458859027224003678837738289199989874529480997482306087748443031503999037911045945938668364727424117754599252986046371329924829562230996142048263932203357133650715685606889314380139402075006351585529066785695305624981117081946379707424041453884475228056770127136671584806461439592633651789460733585023584379470445258455729294387645105826493765496075683735006985836400439099138621287997998451546558280476528061880826696829540549525160757587835294589619823559374313857088988546458908814793598740185595899090376748039782052597362294440887102364610169407177899260020588784789823950523429502326671368861448616928957501402117756345296277772734349642964226916622503229467223803382339436455802850778819528761728345714993104266445291058683498885846664124859725940334031806202674965350827114083546519850912514671005749445363530521641315409431689304635932099285176755294428413712463059048643227808489976263398977827269339956092269599963519269930220709999813683696721656420626620940207047722287751011358015329410790400245451936618706159814789965437450883121809818269275453644518609489380551134667486415082434660322196048722584671818149653323526206561996292304882539324085202195994334557774929617459061868666334905234142454107949131958455194540038325687797353819549216089908508205679798598250836626629138890673429535981641384902949846445835968433411833750941618112301630968884492726508931758671707201383276451931062690791416853317443427956387699917278617166922263693899636335924121928223241981243612004032931264840888803425881435736630348594680946223080782568653270770668976331569624377463726881795625882958164841694680592432273420894409259628347054994366529002960120403403669205775753365380697519204420743537315468430930975721842041648241334768004458686672858066182424971884548164517580147909945586112769721935974772088570507580823939194900383826408650923013930005073004004803806546567292921649602517934676159196750120298634843741663938558269985712355113884594352958014689531786408169331396987405959829767240317785495745325834462395027578519674969556967710657304521107023363158658333976745177128110448528854443056447707002222736075147663461018605155007535814659770081468775078659133941690449115798236189954036594956658729987108609438640429773130644674028329965637669409828447033295633884854907106932464810044925129283790581157537736810219341533702698449209730294779704337342836606586114538907550233433593604104720220860579724471349876405522578787403815262806255420578792949870372623010934678600046780316925543361766516409393044464594807943501454625416148263066493157028234508551928094872678728924968898086239710565804267226300105701991915087478391985755117922440896912091090192312331527101545166880174767774155452762340868318975119831367835774528801680163319946414923426654624249625462873186838040577820362853950788673551795327651138398533720134717553157720451816875797478640123252754158769649080870590691100419102941999216039815945669870852424156499708133762172179498840153869803448761842230196708113899867852755212133878543904250778366463084097867125883017786867976381902206162956992144521005159375530870264776666262361597192510209811817113847406212126678281559481805087019121990174973549854620283500167476784939126493380755652369547959858471621245322617945599120083384582473681001720892677425281360981327588019078144926432827430101128259486324600663104266448859630099627111842050825552710125634606598925628237184923157026704178689788704868705665186474881886470582563503968706820297074890237418993417294748694143985585153282934379719108806619435150557456192396981780468091872510829886444658930519928139636901620804106250209714080042988575974330131083700493153438743040714309417618118772405930616156654321693624278972657844822448975406509770692554953764601508780183507624661026085794555285101797076700774256672700955466913588025721017577111289561858860259886984847872608942527121329126085377218709325375741836458785319819618203171535827307033060970727917922403047978599831347839077819812605673182423699183839650130049853514245060801956992980992967760999897074304885213762055390718619046606914604389720780618110107678283408146955057947219540118347841296989590907650616044061303098203518228454048546470786985878450037347712934822246492105458065228362676317532189002057543544376612834917565188935226240535117009577488332430710827154408010360243272571287284370856653897503611138128154723761153885228229470922746598521310870879989755810528417056414657000645218115728876838093012221207377872069865241833796492937210170727760045162441940531538683488915067808366547733197027094653353783946902996044998516539521186570922102689959873105900342412300757937677250663843617012708269135649149413351809082584001403407638275826404669641791190810670858620778674190351899132973973237053469989881011622838604998259293668312118871573401285208737983063255956887529087179450005390781871306166761641234983322811233298229448733793575670715930440327170111003755973993189572599493265647146327077848894680625977965441556331722712186595134582930953630167421341814531525597568094031475543871711778349018863728298536707815010368736429986671772622904484468052431615530485258849898319447621784830118331904286123729158043158273094505008041312497853606913341234677065608498544423399142275129785752773041158463762029083406185837782070194958423557076851772039693069777315941471351751986089080870901578752498515050166566963238755425335431899483551760249661655535051699135841890469734500450175628247666853112827089889583426902970557531200913629631210818564388914929145384547679795480299584412399707873321682382474843892330021545786091801539843255635616907866680591164480134585245467778715029168935256843640525907469935466954024961720832709754960962446107290375827450534549256842108694474462165767056721464743990523637136434532315330000460048211202368079315467089658653934495388488191025709279237785040800794398680260980785286027460174169825777860826072204351519407140309363070602776129700248167170441226073129509591366679382210527599561528921826216185760073665731518136971527624027517372707947423123855558699498939700288674790178099882676379182810440489985563058310892730181122552927193776371116445610369586521438201200958592635582261476291049516958885520993408534025703876575483843910196781003550839520711257543841642895370751570923805010525042084981891655072300231196097293352679841794567648295943415485955209053679237453982335837380123075954200836162860107278432899113336293265924554866562126702635573643802479595812134416776954234528674705558716829083451573158018431227808792760516576017985545751610463376916046731756547198063117897140408152084000918672809459842390127948212544403527311616017140059233158147407869746246187682527847268229766843568290522212336440649276528741988498219292161923138034704818514345929916042501310115978659314703321245878273116539944816739533750099834123256968898315782065508439651482752574185112383955355839581987718086156162178036443492379039625693593948652611588745338102860367286636016473301042736585334878805577433643571693618432701366320153934850320892453590012685113426702900860259928110181230966670621104416162016081777474529842221718149148499358538800167256759697098516538863604215062155204702584512266425769604288084116438392697603124727364952301481666765967848317009958647293600861708278186756055955800610195245682155356545316206340024650007392969215039774248644283193904664372100103436082107644133424786129883960482426244420944024968982915134662214183368793964803052975326819081619928955407652603139704975649502828679601992225936581520466921314760455016957879125911895899450367983073640982985978269892826182456608212915979360982575110046294753766541670600757271015303629414880495648892095431625536142990224564735709764118272141834294529325678077094030043128990144840891555189787274900391061694470106946309698538149832494580642399072347133835410095080011338259394881471488998071400471788631203733466487275862519466249537582532569251541723431883400573690314251637339152898482665281296727918125857736776487481308245325778916110190701396488007112859884676094438687000720073121167394463607334859221273959813146729474383065977740611574739040669946140663262502849720655684623582375367455357232565729026241167631522832513680198354868798102190529069494937553017223343093952763688279415115043087459772995833431340782894746893703904649493424398553960328670113209990817829190314057050485906447186520871132065038847098390492694424135727588832592821128523763063630868967767837466287173208760748627862694121320599822077135008622668112850325047057503706972534178200639150358866345491687238963127475170394139115739939301613712546885765883100276192464609527898414940292110331974179513938804523160229539091694556616128860807130383355722077805251569401245009306734778471868328167911470540048660393083435680236079662415358858155251061934997604275363635331898737244786693167477347605735832688888665094634701797264064328387426264041458441742343794342469142320757107145934814582574554062712579036709342084103710794297665976470915996356174965326618337425903515085472260246112014432824909953915236919688848304195611522561684440448115647846074146806941557117418786435471847188438152483221369711246607692349562532295459427317793324564200992467055058937270114370456246518267273649755818795693948657126863467166705915693506701725081059204249874085327287260028406469765915478236137043819499611056410951215059979271942959035696908183714948811198596374357215082709024196792306939803997560057283167592933675198932349009743222191434142368636550433403724448723910736061846416511427274499425891510547032652379842476016849154560503885363497377553363990088725981341589400233805701519215288014759006956186768435677780002602862946982665366616782849334132497073731525340813487162088883943170528068722815252034876025792372142627074653180276291064687466525683016634426754011901472633415770879668835820747972175063787073739676855108388552704043266587239482187304879105669971457049762923988717629742010520033075344473810536420335327731083323068595461648631648755855452220678702475541780554396526249348125454755815930865323638574809743110106704778278711896571877782403225864639627974929038499557767856414563904955252602901374327830195008398378510157800318472833363605175502374330916643936729774140839803113470909739337363504699533145872205985977638023242369742229067652520834137400071596711300315714387824304446737126235517902905150481999529542270073021747447060819671763519213223664061274083917603507108777304081162778592358268078117223514045208361019691974259603533083649090378945029953750588941765223058604223138738394563863331833595321009755389793325525316510701072861123916620471271602627580767320672425667867859438153109074085495898000025603081517581681438698760439609631227070091611174322002989183318916410139204870496526125700162068162795928465514179880288273277596865999010319631147399850505424289774708453784204636484748643626686766909128894806139982768747209891657963091280476887238326576663164500666898707482689560827793485673370227253133705931139855679676103387267391171990946084536318313612647246193568971660043198435031865652598031134319450570747999313098636326155374932470475890203993152979466463050401217590219989715543922708971018310931509587067071174667217846933329879165034430745835861622856874644787712273611513995502741507095118925252785354993845647516076264672776552774357180990816184414362773817582430207695841185003436469314993652451730499965902868602188657750565586331337808104380320845804923445441150008238067609380866183170646411913093379886038707724603991419381335299173339349988003752370058890265888703093195860050203062493430872987422863983324372444652450460742210141962741025173776179337972622527037785423772759042925246734436168810715837982508164839753976968894496758883965224325257111907888230193250081121164138186277625597398711957742800918423912551120152591277322916737686304091922734551562848911217328743725798505426417121068756562906826995022014754762716083997608940631742591439573462500420332422406727974106865827425641797784381398034263615840377937724803617805382995286570688491988864455788861159463273470758480774770572614217500692289633402274381576666976229980987032507385957988601347297478963283971364666648222697197703358114392812918930991126808056302048675084538167371930810025219133557690104576109811808894210890545457097456958045354396445240068484157850290039229574596185277257782201743604223667427251048768851664481123346213364624567503057265930290699093777524244145532446359988820651038427404185504927981088995168123029328302790138629996491282125118555676277222641899617951113299364963851341653021043758819720077893633941068906009427906110926659360477870277134935976162575755703942476114984306712693662512305937610854622303317254359643028231843320808495456866859247080681029125310372873271205220346052032020679998095183050366183360574639546443380294518758270529463058686205537406467372655510006508236073763339176178476405807416251828621738717418753763350283796512882034818339084725464868068386067244875555643979991513359902371406790928321780117829377665259963962200454128927690360763603952434771454404970451685352566328108546998316216823172884083060757578711992697281524402427792340622464166140378197366661031845026101651485527246836082110902617967418881302191502416783182369913104164705829545750834239462849704807271282230906511260315281953044893295153671577185109698250596072105647423736524313434401059129271561554029506517031193459880292335226979847595005113866078688400809316764294029921284808801676391181301421888104471331293894302226861798067518449418367604743219807080669134514444284438150747903401089561478832821118069461071102210488677686884146245302421311782396591135507349571541272234231487353640377790909492536071193621129234656654082489693396830342068225282150930470193564037604006028764909342801534550846433355085704642265333909755302280944364812778534693501423648391182100507413109768073004099944905739162862661428454465839410401699084170889982731224230329998882925775485465945646849268153361861316488053981013919974564504950827520109743971038859086992422881286455762278014692008095008607716349164268323053096963040389537839480785179392274991225203465172275184814100063929373265378672647268408906696036641441490108165144068336061029884152101345330323987268231021822905966820707528851956790411121437135013311131650627045727438517791731139441347065913735394730319855939570295143044494424421070993936108782958108651423931495253301024395923908897625943249775381310900803060903021696180998976734255427287668400204243750855007409401437055532217742093463970118198274099777300902045754585994367596976621335569529427197980442591685276703751179575911788431946300328669501893416669502670446613869812604863225261069283170786477761515094579108932931429592601181033003769882145770851521154336580472366826202478573360134005009610813965862399956111720872481471112374364288838838301396931080182622813284639051746273257242139483494140916249167131915665856024327311017575702598540032163515538700320633130017509792689038794655043635631955949498531656269659991696961354402984374269405143571408270003106814511256715591531997179461771614042662002105756581245860934742277737312177539765113273726427226706263561905796782743363963006019219601659080680396899232436211592123967424908746752169650433628820766094421225191475275332867382775471721505571896486119073752750285948648374451179562449235366488809398465047668782524177931203171724010770784666483531141030633579156943879889654237708095563679404346149439012252599259884680901824155633321475612199207380917999245553501172988181962635530311560777665701751893341877944838990836460932432181230809946313998483995185876380878624954159085244079761198866072657556816072880936934187795997338091499149875645418788838501127760840933849293436335648117704547518159011986181915045176939953526007075861798264520498841658965194013141728197258268111482366406371503971089978437450599936278628535441067461579175030160742904547817732288137209291494585916094958982439790743675127197350115864179050778743109380803130214110593702249326864069573388815317007508667653366532667805054967081724621451084318429019137302441086534845864792612956933720414007379591957919874838097567051738542831392594442487565271363486386343604014227789271498198235868305578020377063982394127333526862813409942385112368172443389654223662877217747406289296506295067816469266665458716045074902293021365953539455504408384487545259463021408410239513380796087408337122287865133639142301311420192613344183588201946599635092296974276903299243678168408156926493298119180086457969802373535205396309292844348221549234169805288503340802074105467591675253977437887535855063550687205866838071112501658811746112464091129025665805916398929750322406113752391961477765967049758769230884205598001779752080245327183655766761973122489799016062863091016901524179653647860472588432082997363305316592254351265429718256865031231269491603673371348537500910705948567208566145034140361631104789582608938591128086301891033025745752336039714141399789581955196294519150945486687264681465637474808329071507269169404877547252636543937359966017244231765943438085140986354616303788990115561961785398525459999684384209138019390815674411187619514499640618248181152427693872219462241475274918083821112172527267562308537277406989856680946802856771483435102650724243855741478228827852397808303023124765521376031498994739032932206217663224666714582430104001350578352553134500341686254131230096240502143067808556743182865492944824472963526970074480319346148251892395870982700541540085085098592050208446651326280058447808936539921257932864407370934615320244386515086077401893300125792978439139818236646844417772730931227820321407346116100171933003933134938205292608173214154715900234074616775320957647637032873799592257309856859894331031968434199031020179842199073340521697370949937673613569546013310321204969894251169114484506587120828679532234272831242028857091980777275119818497782978901777294031063527785115280467736838651804136129960273652184819465512526431267370720869890998632380300650829674757808551774994507958812840717151794526734335773900402048678146107734102890409828782369828352205937553401254240621085379024689658649271106778570891338896413324779814329594468073082824833897276907441279891249599179015177339731092859177097716305649384828138750521515729065400469435943296416410878427913917134061959334749940646064219493963766377459087852990099547992597375818406808235534105336354362885316913581698889511325634151160984212434979882202331235326197626849795484005548246341359922662643766555870781322514463371488212572252752111511222049575347332482299639826536508869034979836654180467234791971068108650558690360596477054621213948132532633459120987093488012993079543110188961019263693580212517860281268146827691012476174859251816646611728116971282573746204404501055706842978713719875494841761304619328299464453653831046566939635659290651913247081085475709295933636939169967100940730992678383690531965916062468255367940443921854346961669525174207893489138417297105081569148747280177605393698101356436190323378061211678732015925262387838262193797626211524374941254026723761345949586536279315516974199710639407148142001639925301434322950567719354771169714203037987611456910420741172571137882070970698729077185450942516097189195743557088465249737249096703392747827142652156790230094074256984626744671581866415235161300574656472867039414192401799376273513509251618849297251533571161505042022987030989243422190827947115537721078890898857828158015568835566312481264935634423544295864485494490151947212636173543914798566082021645695861741349025843437603115280909518315981688054955135891798863828151920684060616637171746363885597729385158354161168624800864364450442849942690102708437086012359665570749507006130826854495126009253218263022402056744012424636351506136817479660249767552326513282447183530805982328089781163888689095992864801500054867643569375737980784987368701317902966942739843889620145769960592674566952488481443621066825756170288496542688196455275693251573441353444914333036654965572755918710817691827980701355463288189198568926602472450098807284907274730425363522373738543062978846701223501270063016743167526998014924219578101606169141335253204582070240883942201204781328390580548552394638832772036792189637607797657155405624841160278800849632802091930677690461338245596430562066116372726015487486110779558609303222151171191934475767804667648523694675868845636602141060578364329355412443074323085831905960718475415351336414397042659438113933926360789975882653953529223221602573998008280863391409606802493913248168055092177688803355711520047106772792823336349240634203668564790874980582686302901762141522653675328229388956548701657442092661636612305327280098187501252191124262801103833535153190263832663616434859665705808661902140816826669876415566196906715372416170295035118726379551240582822187431003895156300468440791253964956608976128483048514473844308848691680665174012476443577732491232352796740489847214759124170833748645966153826904360921945745458841051093280149985929358433694930408961356409703819988647733634636955750143066542329133394467787146078756612916587337546373429357812670212112253774945486827565769030310791667718841418971119539266466679505721156818677788650115035595159590381383391415823356844489514899941295207762682000345996544106453230015025480175467033968643871378408150770718228173130213953223163679420922076424258697673890763207320991397517253812117087773406906745973492950490459200707972554053848177518724119363163240980737339899563629757887806471258324051536096458633966081722244199267025548026126598016008136453583261480496021047518272121893579048095908251076161248119769162274928856960217983279292504179721113654774920121084153460101563161233346940487906406187953344641382568317806999367915738880703566217122712222559720095390337041792941230473207962092045673816687113355450274093973247764160169999275316839779558803643872761112027780031735466948559161853463179590583919752995959384434514680408611636056036435890217616798150786118690545769224878159800162427088111652951857122207462667978624773652170243273753038346661355251276136640929949921760090336199604863180078118997305716390778989726372500024168585790672786811260613506073322468942042111708130459297902421619646550059263541920442232474395452855613294398057606686875405768279426025536054514311211615302918963632306889456729373053830631932941304755233493159715070031914917471117187970675720036265370123472720728589561718632733349045451573230321052514599231218085904237106898254681935938330984586438822855868413653977055967588731571739878425401192683129617856882112524456950820559913573434532693927928199004914380807533567402791548718036326671271620819880936433437438675157781048859592357901806587459996195336363979488675054242347333306436833794009795465136205919384934184954086641325835814215799128698868503917524508804159932876797798682416121473599525512038876201953330295695400403409186797631693316284793211326730710895202269781299016989699034527376990304328250051142847393802666173215755822685596169511193241220653661298918422161332225431963978614709113529547015278160617410958201188746234814769120626879041058658371040391454002193084003502995460475010312186581578714367723276927068548109829939696761982523684738882204962736886905779649548641354971554974875704907538819194618074528784770723135887455478702496851159583916380630163786371397432491185196877258436084731730000000280984790302687944999730884395529955796099930939512602931821205028743887327415754211409146032426269250825287315145376312315000848290382213071890319202877000339494521007991052740785274703816949649048065499966450947434087784715377942329200788608809743619049957956379044974653737768790344489218525102899267057794467395126465375589298573594273794826121625878500286338166838462254873423674742361274488314669953405691941620344911469773228853380927824661384421896024734417148202837424309145374907933961882125290215704877257769575691194948789984055323835946697746405191186427233272740606040757090083134673791888422079855866146791690698842125005354366201390450966061939102234032753687548113259533203800616482870647505822925133836816627346135926268862069275757146917019377785772427142470017264475471840674096986925578015170862447136564745692495208110592765582777301975631414640138462395444266517154501818767200380940361488328947342788012138300763714864744088225373229308601039559436537006098125428934015969233322819763656208742416715551939672743806912245282894821178903128697134037410335764224900071086167500597133516454621024459127682336028205298828954684331938206988597371470914332563628782409996149062473481738641350853491545129844461774185283595573412297359553539647073336832259529962331936564091406454182266011697512612203580736100282033152425067317669211124091866230568971590435934439439302899209059817554496033642831585236657314811720144962584788639924541339000572556993010095400555723449756017019255937377265417889891778744949229431345691416963910422607270822562095056390150427659880554554304226605518881907866355984400010205142174010520227126437187519846815177421594875645318343338124370868007667967858200883741108522462640440342502335523091772210059820846855786524619507540958366519635508200760211305747096802957168685294234637457548707919560145675898058837367814595031596766682704322598221710560488674932628877109760421586790031914461349694021038551222864696795601381001483862861885759421113782046620425309505514276553487233268099389781030853215888522752416873899418399380798374022153061687427766910793272506187259710171783952584820907670849445112357336043348655797605107721442968359893538086089663789884551788485435385089832276057200696588125760770679195039127918903214511734685426175876000917489764683018652926812064639641067974148763711708596548514611216463832266528392632135016214394188487501033267522499165325121345093271761585269425751971688681787237255970337847709056959670617742480166071374487391577250771173499679181253303101601233617567018346459371408502279820296371782241095064510029779039082331650572917267977743669742904144303832112546483513953247041938502795157192687020072658576985973609087353742052397675303679025150576249406300024942616786190098069858020976004675153104981829860033503585495263106156020106733429714835809757750654049339673870807132457954182529590687842412834034902555590430059598132869546548850781436627948577540719038226623468685267897340859966328348996123794831757389630851832763659185752634894156202707235123377743608766829107454557708453028699448726676555198143564031553028776456054425759089559585157285285001595382086543014553607847801707102794345809717104283358934703217326087358219036520367959842697932990225670829683924777355244209911948730325945338283910769233763151019649108510260348490272439093182042525445073351953940228814566274868513642060107690238579505400084753087570937080266986635413561925849027822146733924812283877087155499560118820683831563474112075581820924754393876178153131578642403453719905026184880170511497557902945294801422364916468889576601192102937811848039084324538167601037507221176271214796235105779773136355397345263364098929007225145624892555098266380226776223682374144603106700615916242166378888107698565558703255713748900636840055071378497981627436456739974192006749898050087556630150406620795831378623419790466346928029557577915868394902549734916725584678452503571168929195625900082951152036803355811381183787270505093934145926507750420741703938678364772207837191539729281499788325073544947041235970990861060406540871332697879469373399141880899812590602641005395665090996025249033735094003479713667881326148082044253699432545479948518599116840712543445188326184211338460277205261160164717867043290747091940826913156381860236405905964065776919492479693802985587157849132679836212579026616655320225344316571776920427356707642904958098041862413169042787442997400159244318384680134599209904319215100296910583464204735711604078057114682675745822175777620213797601405959287694491433582437957383357366112879920337078334365047646612975156035873117906804898169355489726360325313598837414035844484110247682175453585246837410554291847730609959138343766536223598376621718917872840588557196848330298010551508398242424184297178051648114302994789597545167746947505109952549856208528172003059117550387065102581594568284998512728764148744526356987615987450390044766697338544496209321284077066993926853492787074341796993950882938375820403744432399661053212901612691480945814519765891969080187659328401778317570314999268086890816712404316597108233292373887226418516641344110722421209214025061944887855093926951577530172373403817740874629675432608005526869820322973261058121187512904197447803559260121161849046759516043101557468550120578992359024287318942670305222530595903498399115899633895364981689237107459578715282413764127260988698648435403914021068326113970389427467808438214078556221868490640541103199604703033714481203943504986059728934818350801370009665543244168644927495724495137332980812840838899595204364602667783723221012654479969964213882880598802235063400708562537975780074016209800514139428535712761324736514239545103327445724090823547168035430206377621108460676841110275776730756157528282788737946739117016611776949199086595220132788854502186043407242596257821046862985422882209148088652664759592763030045805618516047347526535534079295011216450803727750584812977147830825720411904330039804512585105012651149911903926234602193994712899213900794259830540570430837075895438144257079660527126030583225560746078347123623559276230148744429345499201129907820245028385041997250562756512849469862442790421129207767714584429832688962827498274640875116532957243565157029647890894597607776343396479653660847512729788048875306755130191213382860740140482203438671098080910354273456038728784868279296132686869858665134255445599246732916713764314781157897644150295402867057070823429018875019822865944276818746833735598255049123889288400430590552704367543166729453796678508443229241076239803168559636304980346735451366381904369528133954038734958841666746094916275977837957743343867739269569389429302861474846633151052926550674839344268179461024278018520512863887787230388880218179049182436957104979670622312948510134458067414536597818007629959217270458920475422536350803534282681013682810595169296289824278819209369234325545012389198118219201320282471084831701226864180933524456270510744523741083889769214565493042875512336029147655552446960315259184851889137478914779740682995037226369607156552895549504496522038614237731248733629280760757786301232619571773663641258998215840281938622376826491798844050450335535977273242073517987038506602092216095305416611121237495674683085066408066313996369790783436173840197210507792871132678918354124402804065200546260320232607936489782949596236278512858205617851852790197403925765374336583954048596642212908636683599473719272896210641696623698785426752437938090407916891845592858350105747450375474247435780732726461280668173338571274215767553358139325775394400596101353010971636514925052683434012956682955653853199123626073974734457778850064638939237270383985909264102164115560314656775979054642284373922689942953545520006502933748138904132829823584658538492075612288317621288778255305685090888919559315661122135164147287218126413935074314487641081970942388203132442007442341763927527344092243523907475387365885599484092613596918520629626077021186376115802535549931650052971610054923731561325913289194562999910695413763338039699180386920439597768703025305447309139846778130634257882222860980029911916060245737393904509557626313330332376192712255043018075254619474474615837769342453126116140226448988161061416877097283896645630685410581637381933955448409337955013908970924119604101857150850288304996463924541472196490660679771238128202126552440667763885312326452415342310408969824451105972623468577614931269811676936308700818523687590625580137730414379567271533767094622550596438266187809609539513197248152385452819978051768723689848320966194107788754954175497090788001069699288460033046255210610221572159823256578086528055268347393907710818483069294894409684844306027385692631213311110869545595799702643249703322266183143628553691704919662318026110241768464933878104406041051064804406112215923440541068070366545597714540420269410398889969379882178538432068186169173721208043618847850073970014225724542162452248810265240706945884967847255279703211546169943840375698443977847822850617761608075909454484456421236837549772314842317321186759215386262488372660584761763445727202216531261406021551517287571092476798562953132821354206835909353754870033279100553147905078132622381828994234844844100350333122296837376014943600361390261143865649927843641098582708341062890332344463131875099842255405108799740712826825592960252801186991693241571777546989059136260754326928927033741780810760925541841075616243904749604411018508903155605303489143456081698920925889157850937982482640796939377252014931658711234955467976796097327538935738778978185727700506707702752435313284173117671474090003267508744885088608655578252545978614549209035894524037668569203321442770017719057380844759069977543511451876134035363931371181413568863617016502138913039289481014937343466329756475214873064336688399945220605876707965647706550816086438739133872002251503560657516777511511685715346816680583954871741033823880323497571580654905897329326795959797177697426153920631363011080334448467214059671765689965607815221159874971284789233417774244224438393116657664439996027942978361757185865353932884030708399317139169889254541752067635161028164799926464329006786816523165623876930757457358729969158950893074637778226158666755310816577430961734529548104727280677392123143093393898841490653906382035821556174188871454914892207457370711892785209587333206439237653458830748911507304946665651335346596370268078911632993441924905450901804742810849267209152370841067532308768992394291594561403564980864165257212451655390679724165169627994773187169157522357562991925567324921065669288382342414722704603824675035939752367118017388700796774540173457224122242940849947561730866705821273930757564963860030720275156074377108560757174790750587687855005755316184345071419411955246353731931311461829128304784139698306136360762383555358765111961606527119679340151964189675858087872857720026384776948483211699912408479358621295237887217943198298936104840599957273790041220298078356095504650703340502216235834155636626086536533165664053463170589464529551134649195553956996091809573372964951722084448726020290757054032987474615785747029343458948387322660685084968191905197705833550290145591541025081894100290777449271678055966320535494593511745592550366922109995307695383990668296139177608839386484633902725469550759443104769064853593683337228025805650496884701969632069549492025209709401769463654322230597270394348735796799557010848206173275732366459997005132914532909791921930509667700589040356026716493917405703086969467269634250436612360329469663826483121377159877628582007002136749110264639870292000144522236131376716033222702871744971425033414007008597870610845752358378942342248814158136370221470317172424820236689709259002021249515778771084629603910958133484232942013508733242587894070572828505527121743302652947537846022497822135737232638784218206035844279939779329489159675108501963033805210707755071165347576422331388195160029698460827576583787522185144007067351785871026672183653689437989168211730301969132323116712774930982559808118217459701055695134953137538819287070640197330989694680475919267346341536068424161822125202879638558580557826231679863625057073058801958559503793276294204250868953947530183320485138575120718661883926044889589499747576003881363180607396689864872524077623407632336983979631063442548529563222345982382485232759880354732790476436414655755217808493981028957995785220760355907043751279247652661337132572758212333322036177949473456986540211213366908213201191103502406629504665442792151876709873479054671142884225049625947530863385393571826937561945790787740087808014065030810863579354259101869128790764366531488167827010183613725484536193711392275900282026356650738317688060017995322821397683980760571181408606810759409634479334775676918857649502139441341837837069338775283969849182593165101430826068888355850180530482046371165913455149491392126566934598910676490301359190162245295869327566085032353690687667556126951041287273208508754400112242720958137311496834136043578481251349170018515639211887497992736467917196766244812309538871083099330115459894701491224205227086958630648321995155657011746694927847059548304860123364290833907273051783250496061965967894042521688050124141724384702267114037338731814457171375762472606914249261166793497992092642131515646985415602759075081817511984573259746234166508133200748428950374303425697451508972881150146433803907372131409226499645750628734745349991330262216441906790738126218568560936741753914566638839691606077808898384639644263375249269656746185268723196889008392280487493701616643483896775903348105896768257092404175890177422200917928118885863356146038155585820275230403889802958975627458387736253190075044721860510524993635228075911919604122795175804155725845008220952701449258639510884098146000988768761958236900629626371745483855780249459224118544654819583747672337268752750000595759584355019317861179652251292701593031471616582935099159458016892508229579778211677664555947275036591045925089153687109775403058364670358231068788788321507574750157585719553421646699883093652356194623781633801733651812360690029701978954598788860758653612158512275742612345514107348046365882068739975870824245112872479224924203393630490543860261662863532455987836863070671421053345579510396451733763290882716794722377802236310084391171197068425266063514021947344138043549430001446692612400652422797429648390369575693329498818639748119854726714878036103849189519495522808806444786867054209381481115239318934396297683770773047357287304104366209413098900433850754410485093795410540610272424036262212818647656817551610125640509878616275753581160184418102686057790077679944682989749556306995363333817471731864394515425915393386989448761775699041887790587731592758021865657749754512203004168603356699702207524426665605224896795688317129543738320320977626057324600819375552854540620711112964755105005276320910233117482339760179323081128475972924641161124143479710963263163819851312637159335899405288065732045258472833361198412743863702865887314438427445002405565059846684903297522607549676461450850418128949215731932067045433847808822793498332663346492776449938407613412166295969068793004372916576622698066162297307050627603640000592639424390139170626784700888860799659268611107585182239833154057263562287779395747306209205555306726926118163699791374483058917356768139931447354797552193896466172234269068550769594330976699610133680009655204648315890149053663239908773115410086110934169054662043875882975277419658276564737078597089021450265405164409289969092499929607567353924439054884782297344688380958604886555562167590335716348436718114521914794352098152611548386631475705082549176987956305187091186933455505074281034126538039408477375247021097459310364848999536971543110997410301464908246869841268669655869701477839179149117076591613298667817477240256331262017873339855060998554958435383449592520321493042988644129753831746207894996169043154755665740644747315579428846687782511947102821640352815979533857278491960293449250076798420211055612886417970822289304699100174722180441410354478844829414762742582565246709924447781318866772911253480791258367881329082725722611205643364269016969924038708817086681600528852460534291845764567227539484801923008597043247805333366268549996757058518939188329465285594352177470955713616183548233323879752749611850826928643981194539209644515396901847043460301075258475980868744586320915395620993269029222485441804846319673646856435215296072920834715681918668111642434805955694091753069474675354003951155023225410269626721355218584311125924190111415463520949716123631257165834996420211765830234510266257836611563172912606156266572437013995769262540796007705790973714359903941366733830135248136014466273913080379396388269809122194490427335128323313483417915264206230550346438103504638983915830620506599921590076440377654311991984120758872934595656689634539135004515857481582164884149251529006886484795199071570121500251297788825214538215287642710909747635518222679962569217770502464286602399211522074115102966222902073280746773929757360110092819201489192475616354207237704652906038652563471507705593106264901619991845273360922648216907691183545987411421960388771048017248404312551212163613333651010179461930753984422255722396758439471808980104264826677042612173434787464114192521420654236213181890911095088678160756835242699735426780193581515813328423631339059671293565811909424950485263096073834824639685689531576207618186396946200507209946191428541178524834615597841912848272204895225956296164288952707996804213741783775952312047790567148585648511613551388258385211757042086132240803689886161792185105059034809122669924988105558737259700760932491882780489300374997704562596041423584097882896182341796596392702569841686086499074586798853766975137244205930588598989150512834951516655682192316659594772120639162630926444459449339822709594225174896658402326207157086095882218879791847061344009651561369984996304664038342315189108234021824828085971228358786131597465398209123707409520166928089503006434100392289701982589199194803219592976986709656519175658194699731197016047807362542811109740466388647455677684063506301341023233919940953330663637685006435095450929158392271933661650475767865009507894537796533236370829299855836987414074212808267853604685587306683931918451634439009928466850655629561781936838832305900463987353625049432468365993785704872855375658105166451993233790681575564763279974390878953234600426388453876686101681945321754817647922318005831476476483702610278354078056335740415558492516225619598271983910244682544264115696433672254260485721384093069450145230241647249927457736597999968735617351082275226520808929573054759722864619874912719801406060545867021119287329503544761454219375588480321050964394642698474678944889985878473474355906580135895097064044951880718022753705599630544107919967770784762856494413246218729877316912321266094177328863861628761612176727723087623272008376166114594103841299325894559748530551931072598921786537756463344049262362586463066663937393272800076862082267193902378721898402939306978623895405648491906635589471538904122701043768075210381257204892911786523291009671524382626604151618409044028534902743696937824620451698209643470062664691620756922489222200778551258901739298045909108406014509548923635930834103427561997272164178663781174382588911245785896326302008307808802233951143869225429084602211994398807151692116774146699111586344765909684236241282881748588566252043252298952611410969697049788337312703246465384254059122032966867515331059903661438265240857782223256931987654516724191561220519574679912000262836877629556563898258224560334948558910047717182095261692543709657465681722016198833248021541573911838239539911262440473010840546395372761207843561120671365624873914260377509910062292182105416904355118518098921155050811115189434211548012002796350834014988925870405581666120583210547950037811535237863630481684788284954872669190418828694453286962053168877552121960470988042595600016391842036194889950238675891500879177994427024901303951077031854511155409547087200871433639636752723884549029650268361874704554165986890175849454001398891809577651198680218361993991142186565578843862202799701524142225344887537800437343165385929444036815193356048619419461692568871960014962797700982435016972150485504890677703942747318244929185205787616277165578696309358030450189016893151243613066986962070436399282840164427367118859882679458534762299518655957315378918284307456891027027067715762419680100004557737879669084975899549763116840627100987874211060021602580276522758088395538642593877502066765066777543494581130914811998254307123132489275305068761044336849009169494532998188032877596694078836168065359524169389434950764482663464339087606198366473105505594754270953877778011892056937408350694546534712062840179992102826106550248528101405250249153440305681114606793667449645719662062942979751086708647863191971611788217189802467312906862471595110341806159476222777932995063869444791377677206352794246035762527520694238584891862429370110842532217983351236937482735900167719946686410355618596177390475376253312160497524264319456957399532437796353514306360873236669364885050010516393257550563992167269682217798183546041136029918739437187450175219214237081673139068646023649914521078898784754305846938762013086145488113440645742518975140642890244786940863243854374816904009474654000475721938302161088543275797615036383496731761285976381367594736072493679686079132751666830107601007457380350579997230997381093322612807844397391854177926591171983243070374732025626544124511109139070838925007069941767709215956767786644565391369775182727963687988734221721303798436619022961712521203311755580891296486195655314692623012688621740941321280270087218234892274898211699370073129430012417591144658562846596512187411153926690001716073696663362443089833543909500644112429458896235503878603226790276332882374845500097909161196592435625245451101709351567240434552965398707227751626002166977059158352069442061802473235244919782561148410718794994713777970312377957566393205664012264241505986505012868660561312949358537554764274752701244906661140467332840412102999469282524634836615610214764458595852890866218758376416805949645019859871706090179173187227733597234720212520071106841654932912639865654493584496373522937017800824016124291644262265035243345341264977976397076008935898907603079963264421632117701017312742896833225207746755718107290784430240979249830851990647215400526297168314308180832310107923498485721594486891598227273793040692826701630603620839372196977961783407540355985484658115194210694997659408235442213302398850679989727024776647070814606718920587351761317040524440328148054513617703477564713432827393730590679276581239293756542951666535660322827534854553985314618348875607195808399249810010772849970738454283076490603823893406744440081430530002833639644940353851596029758270530766159101498549588730585173410688082613489259732593133176046444084785748397748689238979118958183457120632901804462808527492243793614109163089672687660063546796533875178983099208391191103537591284189355732597208476139107637162135154242171670205258650092787515103077594764498102929671129110876507322031349847721840567297152977676376187634531215191822330976532598005005242675537874625700276277824009527718302966906892203477610138456135540662315843848245390827054595461653781449081637888613068444125458415834081565294657003299490026778036511696983399152454473429967396292641852970431212160761666698670324862097533393612959319544554441582635449474693034381803075854915395654582013500581174400399677969590291332261078879533838105583888097973092340798770750888997377386579936878075781227385363117862774181011013666475074263847397924525168870283832144522753967782579907074403364757217697705942601409787805297901410183878312747567898810194780005695443254949201395578863613530112756527477272991790580980403094159290144153013865920811408813118086083112703051654071061589570500078549850055509685299095519084970219078977344389622181687094881821955208807930115453675374479156352431178349645853204611890321199215547933020412744795258370654232122373586856392563317683506761258250580696927317354597655884551176930048550612812510406658554184463165688691405906152469567760147975143854377745662611566591155970798807296169227347578746282539952510953564301764730624942615380422916957705634880730335990972740011637208739693315357440843399220888027606936871328189386192690263299319891452391112732337381511755226765217057958962751625052651387604375844328995398178976698421275745583718076883446350478383642753237065314745393601167227741138115073607393824728827794400870621868112538059278349181180506324838991781512683557179940220898529369844595331536284674473985806494723191506881377255131352993190419481823035971051080183178159578510847535707708360156135762458422262928646825446512803164116537921262106072547666425620784864702272754230257571717790269602464559448043428841779025577582552811958333735961422529159212695735470763821437041268508765852789920784601196731247347864688901333458918286764933926628596727651317683100997998474698593963508662141351080009854941655268562844094637607853333708447353922649962964777310605126014856470467629585281136617546605351199947835078060150038246438235066695825031312147838278253691463568689419244015179696989458714226859901904648197459056004903271425354828510192959988207875637119573257498337735968355385937748880964530371086196950145624311091636160475457950142892993252670092725213327967282464196810403698503362286629323948153522416061946790437210795834114732514402039024304037713581385932686392451143100116274094779220579904438309711067272270741106798604343324792542917669270147685790133060363910648809954312492891296191791048434081880483206685400805545561568567409293748688363085341789183243831530317206789938525277343469568528411215863673323151409597939735085394236041826358060554757410194296813512643713279805026666472634307590851441926974205840181923693143463372296003964502695005251126536565787261132132558257678270488392515002293402469981094271012359635499540832311004908132792897896699368657990056674054640504132223221019589498393416220100056418211529363404208801889219986099417847352339439124839794071922102017680636442933460059059239094893752975239834833939380762504124740253391525998830782345551328700162914649357578182540040533004529855916356817037100267641678538196583790834646178656053644453533010276863215441106935088728051525270366263067057784370618433525175961526018852112357993932440990064247683668347772378173153215387340098102477862140576286743690370444480434734418122943718779001313772437381171660439084007100507621026248534743589932430483281265384072932342241401866132833468502988103285872574692797955694526276328020450576694311291578884459017431225702535073173125396089903689800257785678942753445454569699227316449282559142742854031579468673528106104877652581357006616209114130246012127335057144277366431276323983687244456178598198490146661598261385076518473189950471224584818003033087297811026240237390230103050300038965604028098912837339115361370758116830184409717630004545595506039774601031036150692844034348348573657515324674547886877242027400870183229000660207994166253848582595409333913817959571341611219229092502423489095752101106126866876852721344595075276891139739404457802110345485946467303432018088007781330041173620975117734023376079491499701461829638803200774761093182273634715872121819908410391288980268281668822570054097973023896479834504236871737692243545090333024776897460894062263094349169167600815452266428609570212220212849871478044595245121721312274829144067182183539280757806436679477019054058318672861084472476715284911364854021531961609783605615008380667005164930989592736015770820238316706986152994530337995792206849030575296801363512174310108229215345068304659452005833179797765643037995943149456573929831815019335949377957696390222265379567179174633624443422400789257249607360173052304963518422802751142911832090539801193537143109355998975776915049923964629061113761155520681833658133224296167201200903116110201521881896628162212044873341213557613965093523235271637041773006220418731336524271834747341791925126690335009596734743192371591328243809713293543885560084532361164625061624974825904289238556336446846701446779914821436798027816806207965964923712612502165756963221020899198454626243507194868678627189069236059554519154370052744795543207348302148714949082575775086745246623972760798461026776164554753662526097413879101961247172500235694105591521629811918248100457036509650738762827518181015595838222369646925768554843195279898977446438313287181192731948177298079887491654565150566695338645131632545307305570158634560055073996205507156886944379865729669921626897207081375948274211302004046269904998822572840947449923406260431041347721453723899880932988629201318800936708137367775332935958703407461099965161619953264953780120721447026215844180304550588066689068944823395800595987416436408126853011220401763463990850938260549634526553975984790561865301694595300158104890266866915675386384351283667264446869685502923331202745893233302151550958900863307694535986537317095904848752377421111508578956626494721524138409581176910011395730100425446960696157746568971962110112516641183959837353001175246148043682273265728589118248305782675023613389236036672234906949634810483885267683043693118135797404390118109955783207885271289753838748219100771837186590004775617148605944874796669847342909870796077278335969579303986881835728133252364040359432149599491084471492556468904518630716146044082344548761286561263413081701392179141278186269309223904129452455031514397624385328692814525555183319569955926907406054981408678317274887129565544381233532657753832194691331950073498237012105851312604967409518505778905874417855086490002961293487517141348696638218129605441675277279056546839562577065168508630641854275803008263268356270762545523741140604473517350018450051924378598420632099028423027462451186306970304320252095825384368398832591568276078647619591282251181913203689546075880604464706232059874762639686457569535722700747433091527734087948540050336089036664554471307785292316555305541744449693672278870418798879330717796233151332639307656330665656336635700734708728494772668239332971437603384339247521483165320345812645838383469750286097569955055333390933445265869665608736760188479799037369799444103105529126897607539586833984814085880093948578314655412586650571585878320511678638582529913775580114761145074587949232227248212117354158442479791069548872498212329500756137432184471926297183222572283161845841490791203957906926918610645247387780353030237038741671672902293836885745076112073017834390001946557979857784777635466624658280631978317504031556850474537251285702359977439907360702228572725723319033948920896254660885785826711381633955394471843275365154927057647749076837278435615307980026612587251950952094398167520756063422994595759748664031473615227981972001986860694913409484771590196755079221393206954029571759425088639661547351417826866949146940128633392664786996281110299463504062368667434302071602895857686864389202766341928360179408261822008106452124651943022290372642835793140748205306917195704352330217094285585743790892350058740079857975801661097005603045715361477777514619817934440439624735690667075330461773078310666619108849503919588576092556212021284910949561392507892280683157572919389078743730991792410814322272995179910784113922186114712101067035618057637870771082336446009208863161349715124006360611786071975364647527168528124946949439491380985075729288311126542066698926543705776297707226685066922554144167772596938100732323459869102566939217835951509800325009775158035774560674087203577898027057437799537908333258018292753688131094665248465184413162745360133561031676811484160718750852350341462026407800318057424050680185665583310353076644247030333244603810992408278785677972879790577323924767753446785313256608693803258660830698489517663498429330330385197072817578653535687287368306818906329096485282624167444215400093960368885298099669448784570826939440738072585597781481281660264173421488729330955941741066874274083587011972298752998480636605135585658489289993073140972778130350419504249046273218021510586725076179525845811921435687473969004117914124497263655209779273593747633672893224709456168728909903547212694294983639821869172928773482791993944687472758514869507457950933928977526001510776164646110592872208341544725687642298489762227931685333792046467414523254558805142198018255694153902703962646803395457979757291224051964212106653012746505714272494870375584681680017188078234572354508315614934602152163038857696882671655369246912725246008258826485859793651207963233428652026317048368765258252192933567018742000307782789493167970059230754042726145846062728797201007069859509208636603891558088581923215077643453730195040688170670460987555467046623669147913664371582418251911580252699551325753455735895845259169051740216202159344897670424422385804687593955718931467154882488773745481801252344357791027769661247494146350200599733601027677465363740729058411593850674721430866067852164764719739222527272191490268330094159410232277945848882724683641471749167720151801774159302138959113955450999164686249638911459154403995620209429915917435847329124306915151162926789024846022667758062857227953674388047840693514129726312812138232067022078138927298862007113567105665642128744617924068225286262669776471637285422973410254282565329487466926884323023223746850035319938366539750207211596141911463396861816976212262321071377193883012108196256227818113075457875922299480630466180193956705474690248249081021178533686222360108568448481854228962035300449956139348005575868082905438255880403138753044274781232888293307505460769633502888887915560297533035957292794895561757400834383662431733333430010247806454437389108087504044595153609476166492000491725940001471976845011177916592514288913165283269461251352450089297269424667611518534003339044471820904604197520590206476004530735192241889071317118733848813514503778682040772455304605511409455581421309829260294507956113740084648526757384020659259602590756657983502175106194856060023300113511594549696501641308781584671149289845254563569570980967306713676344275001834389385801272363115617552872282722492821771930643238979130246538734598263287150159863952444577907309978653500645864078833908103415431757986676376698237145077888439405226160528197443477412759140191145055295256839128763791688479990661989805498518975548965242724130856050248930330582258695584879918601787401408967655978222591748221766615245301458744084918617974985305971398438082783924594819914179707987661410668434843959607782177395694035908907525363830170667426059314139004455578269030434059645787539786194976655937767305314294091295447552872623263694196637377271602635295184896660087890010126029346529047092034221613197367276033345328898571365011681876876458964123351819993513278436670975072573120348575108679800731932518067715761453876480545136333228056196898528329299590846165304998149236661704578190989435785820464393787746775554841857725110615957413954582478846695596955072029414452986276813339804149229092158983010829755184624643026321508125470459066023731459467225410168428660501405381705367429733306799114835718626550245220341357504169325410752160384551759770993289984149950998153634715389584486449860869323651964299313254421465281653053421805473793086583478211911243956222307598727421247247198707929050062948414355885598125252572719249218398321635004414007446193236781819809233911929797897036317245171346043109287690700358104015115963738175104095739620420885198099798432564838593813491344098294562447518718347042016044350622863478614515035649748315560100465994422538886241299807585367777056464147289769655064975273168823155761743094951594314140646507656954902259053499036157482878170427415662427391031331290949664492791266917000216053223763674163819318242917705333648772207848328340806465941365954592219567407012897356306209554788317178517146629581647774958236093980920507954214917345862232278457105086934217906604428464471458871394332830309258745380757411455492925865871609757245857847072932988482087575424141642569868548421752188909577456339071802747808472800659754599885530961833308442763295128405019462711408123787754184285095282816058293057799571229604689251965820767767796967125109361436548084242775673910786326335804306637828140790453938928766163659243201029071921481158703984370618417871954158780328882495277983207593446070707330606041836785017830337366853936813050666314615577470963430293420694840311786042946601520976582044122559941540106689628139000438922388036188955178487382370958364618884268624563997976236595833759093214902904195267022495612999149287108921704451736897218689014451551907947089251945935235909721579172480950052254931706045675563797459599297064071777696215774852592286400509831993158644351064043540923460500256986723821052156518979552102405959876134910412967995559331853129041934685938933299323962599207537566606722649345357432659693867697335485452826963791995479211701243949669453569848119960975156072369163341708325858306706339713424395209300353223533737241038299892411661443875604267558736745489662206034816378510837968417624681099786705005657981452812332752053338158565343466042099657907487505930732225576229239848245627464774909330569013100594400611767173500825436219617194295345194401814180046515867337475003614656653467756080366359816714890704644749792484862970436699036498200150733000725718569130111938158477091609083435474260517446572042245081099780788523981193166794910347806866098520775147643597638589692730632753347506646978624239299536753851464147071380184343709983294436192303777481396945661120698355288443425861588784098291026514422065796960892439773650423920320754846942032904620555309671410619940158521984711575200507482017522065046837033027765013513335607142895057521027982542926558597925390009650879714251408107000368261632447815457747216357170417970847689367014491217093504552671491631393297109660387667471952301443220923125895794783618568095362074001696674864062239277321508371053533291299588382361367573807826972923234180811169722192798411128529279693751593966930535586603257422460959303153143638307792253925614472654865947935428172086437661714168329029719743063084997961590188911278781765326228163308885917090917750171489956414410386761973865114968754928155813722734550779500256721871658405880465986691250673603399335109106109168730834394149760187573515154354838680455530956955424256621919177062651363178199735582622193845328103292887487705094497167960387764997955649937747587019315531776586816157308636034416406531706751035151371511022735567869420629570820296371282968882879843888516783528778717710440092616761819774818284915269295222322020232195037872626860068087065164754741588545199643138619095012484854645705570463480382236729446531000156852668775228151584236471508946483287325410960417214267290532831904617678003103185593550705858986028150848356546629900536409798904767259283050926931476389608396509161731988685504835918230315588996095010540737735183128847849149579324613721336151777454278225395119546651830723928970949422526561703804521953904469432871773514348567614923311055793622523985088270324592149804208851566954394510958317125261229691232672550123583532896904533600129665652966807845459108725905412775486521284640101710534970880262940732948136028463071334106576549806103329823865272834919187568435105211450497293838207922993140795611004784554585448497477519942189132276932529582487181218882475293608376260982141709201143161346333974578955912678538142110186831492006063041050738058234854195790253079955888837006384514842575311173962853877299422031927054441479180404475485972795516357784111194573838067116154642082162246763597306641295464881929944090587567756149336605854400102726586249238941115014405716256426285519482063802521910130027167673351554066205466317768979642757409729099672260943743728500403433376102145857684282580151144815723241599181406439474856144283201308320336486687999353499586463910051947895661934041402039479932126108961234709698356039342773135851727726851776857099986368855729243205783426945769094051757841057551647884293760724270620976215131091482872161786481468928313835994859547381532063541148752546387361335925021233392325056671130575800224698684235242073930887412651851265195053115878921291430499844917635060586322413038955940340237199412925254753397597286173573814852338218036327968054509674106183337078812433123211929444285092762679383975593261911482427319686644424671138228796887716225760889843895536949163268290766357800199207484900603673120438487621886801389401609760392005082784077043050000648467426552758684925710519275171026084786797481897688452698483981366722491593618333641177840364855433789142475196495848183502849280374231884245398559302436624525666690542917934488230911868768480614992570681574828009816063576200344699031825482770302993392996989949014035403911943346277937241959568959284194180955819194164991006357349236566660252943051607051406184108101174817285026729543464777693222947173107950973849817753892027387488643248985547289104388169539145971683932836081972223018355313971420689858233758392973898111696731211803018314966001316002002337929475492697307695125097957489018216221147761229431113305914930891688206069886972470908916949847874986456727671650779303925149771009472221751417235376364357376604383750734454139972314994723179929936004132254722355004691714549658806245822578161097488508789582060239346643644754611505893930596119930095313199465725575959945433296269598418444267318952806724534458119319878533625683326445738350312654487998335409752945601261097522175214094647919588361131978463244667352903201175722434491190023725536722593763855892440519396252242858701565245683996422800748580787970263273188722324737870250445034112499879116978788396088495848140911655604740240275148428996448544399101865687741342569682102880220157667070537589792432235802503153759543223591720287044386555365969801449602166039251393946133095885385265552628006741926942110167972711209396815398806360040288319402608460305392358232616024837658060167638316994867824689565860053912708394536970542625157278005653182507264818733956496554976665128444108393241238649581028023515406092108231660942956017126111057060165774510893901177343859010950879429123735521173979070627372155576404434636229647185143181164832286168485705392433969576070576821179657796377685723999369928979382090296079869060269235323959978601079856677810630176815907243759283149660525109759753488875518367764402921793288156783170061959947734099459820140584122722251442029552273457759065374010485324951858995379528815519919557343847704899182000140801132380500160914646253661518294383733777628016868940176149484442993880178245170680537628435650025602089336976261338759295443758533244674018242886092665411577578552088987827268352691566669750276054242980981016794871796849390636476921671004970553621467948650301070707310730140525725671472847506711726435796187130030056256310278874171338167423967981919490885643976543522754303576453514839957050975459954452858506333761971529222547740690291826362179928023946580961377762241583152734982269090910535610433992648631796757556999336042729227369222820733719210235054098868270053279222330156727470664331232247331878839199853996787731998405514895418054091816391928420043325137671348259798522586018484191876261158856374642322168350222281173454830051388722449864085424580122509240983975856817397084372176619228236336043128786030205408832364518724323451298170201938511003443887875190125382558651740027010900728968618607759699017316736350427693903699343196761865903894054091560836452363232606123192192415243432764581750296159239801006964805226641125715548749484277719050640080106088190209760685354487667841824442800862776454234230420053778575147526395208656624544436946588614899707651807955905855758114836089204171341379223622098786630428105771101445488419691406242642688010971057742989770140649587127794386520533020445700020937815421115224524998874809559258928254797643997983410227028242990455546327147372367716301936078683693984740826524513257002344023722197511312189488544192010911041725832951276497517739704063961681857252144356043453989251262457844690101122034216490847787159955567985052831734072563101060628051049068013418942503766840095211591728425611684625941770036552354055507852898506181879973376519435297431613156711153514817034916485316731654302635657648894781578481476603252349808424308119438324839706227211073417527194816286115434568166241276682094388874880446258639351149156281472005695472427383910050318201904119680622506872898285298926227584233371036982550679190940450201372408384799304807233857348721983984609380538804693166616310044184808226230935983904124723190976846815104131792957566115673487873492400073982535091035032312872340572550533594453167555855349166775375395744280407920058931504292971523723586131996394115318193040280797435524124874689057104982473508406797197518468571015379928332303815727500698666881111884352706835218879105588750885518582373989569640718839363900749418898710606948979400825914482601498188862171895739956335143784643646656304448471486735116303218374064834705526690078151832620140851522583759103945286343355276664323843550682277344648125422090282226148900084008043459787854480638658300043390238643028452301573815801549838550833525413859758072444545855074169189212945729431109649126911383920873365658204828675719327951019915310150621686219685074011564025387210942898445843065743745653049682960254291969016353776611922697774822109327473066300464113345536529322368403325511183739782873941275342140021018790264564568953804957443630630989686060112669332521582667696115400437819834757028331269593287860402574915035823210536646982938675470472873953454363277099714486201790425053991100445256688703647232130324258166000423794830979170910144780619100067287519516144798641379246389822643344781011566381323115634633195633765089110118205761727388291764997517773411375222072101756406080531182382694797644361701182357580445271820061139399388934041378929002428578369714675103278722844696048046328902675781290145598133486049831189692662142298043725464099647986525770762085329804700676845680740230759936788083371627031983464523863143219035440937743286687114685523382823907384032797098646774144490096402723833151635204366555085824456060311304045632810463134916280390822584068475438727388404496992014180394570625566009269979849034112092355996766997156474259915683334121049029999307756112028467110713969048445204634311894118649780434487737218686534969225614476124766263925610545287927147845652902259934072488937427377662371235599843601015197635542472408859572783872875577834139633221171427325587818838812413878391628135829077302138681285054954264150051892972549206728228125427815777442581953149523467949514300437575476985049315067484255053440432635768613592418456355149628826200181327626864104436059282238957708152070786487857721628822724401401639776703981417552364133650120924677832197556838823347647185759299604873350953492638567180832157607410942139150741808985462600977042556925995577268703010381512124733951357005560063368245788372356785900190988501834010946536776147171652603585999792823606502611592225642411836574953645138689209325344922270646410965627064217771922685299418540323374893624452939161868300455197889084157226539817918424024341008302777957452714534210658252784090063331286482389726804113707751548214938371976413826159124516752892192838308189734854729103028216189356671271714256919261684862609770051607815511313682448562679026108300196394833465279118114243569632268647505266637302854483894191792751349327782374980722363695132682668837527748720875385925839273134350384731537070736408069130629560268295210851294420273821135077271264438569749270095478839593127975326915438324324456048692089791386592984951828107484749905576843465388653571336951385364477777811225969408937674687540767592912351296332130473289813184469519545709890966621028183630496444493141415738771013580014875918440154830745560187735314968196161737019634154072361658842317632066732155645686113541142062858305112381409006814069606114126925599849138925708374154468702412782276636454572915195295764558693645484431292542045528922546998613165969888160999052605560365205499836613450561802228286940084120048830557277798837693946398243456236550184320526174509387392791736393440646820426724077566182641805325701585774526750739893566070867529408203754144935957684407768917845777553148181620270423299148198384982780612811569072675969708440460511788192526248557772337383782816514008670314405183162562145397916604996649109188992575079050162781679133260682002577123001286397830894965245725344008338392311928011666638569663399535568004418646995388130712118150724502101607361137474560588069657601168829246017570413885873058494436562005692268089908253422789866374893738318412051741395337721182280097808733126591094554953166919517177071140127161097446437108798965272098853701821281143295530807686354579005653994967211403524645378662490013022660656895844864873918412481446830697344607171998818359137270569345182765363780977004811733558231563508807244259236735465904260190687888455272502320268029419580750765136629630577892172947537349275703365830799653611733749592513084546429481508259785828408127994612069289803417913837176880038626726138172072007568426565141709625479351776521114244437099702624063827077128966744195805509838830101324496833677064186783373278623493370130122571028193057682070473340307527383353567841492606082493120762054187325735549726348140014954054855377981326996751896561804047007058629553096172332862082713425035598118504479911283677742624257027832276969372772944243063350937130374572228310556332389946373263836877575067471944770999997572248249222645398626834955104354885559956925626304488563596912336149478742070617737608377710190607909664996548282189696381857526161947316220643602593051474167671326816017689974665523810809850485752449810499863430341262734421601145845581400871914152764790682983321848205175601991861040487348599524004596825644755641461511382930672005939235598876506371405554676922589962367449252317425971687212375297611210896446507888877371284011449636966389279821990999218306136822002152265678023487570486410289977564059392776816054517443612468110657948298603910391815688168374041892819985942260174640315011569623329219134783709062079321934524314230546244853027547354362007909092857933999896245533438821965787436921869514720141539477573363853174025978284747019107138272350272300977661340744419945062710260563270310474242380411430528997239953050694603057043979864095369513971709849601893410553431619319648166079370945219855731577347941342932350632653306732505512364679937963908111577610688783919450540153811913601736889010681611188922746252849467223952639019853272904375701412281755746658798915943900372129514399138928546175663943882546992637704572471448336052249678824136931969746315735062166380858569766538762245208117396450947632197370840840111493647679590499199283023480844586165769288855446333272786664978051270002181933425722971277893287730865385947642049806329385507841485184849081611468010402574201072387227118497243448390435827169424755465155222329317320160147305146721051824937673959511804320812717966677828549236591813846798102223097916853359313902320203217316941934652767268120392968120953098231284923591299635735683390341489457959191603036557876055596096870301570958013806020229413855293935729499184933712112126340679325194425688668072714416799358778074138611053850028393886207840320110044884356398985946458993430731792648761906068523937826506819860883133539653157024507197463011574818276956353309459810869247682074467380906216909261888497011089704224873956957658773669969011563121183620745951855814222739197882384025119025258314469920240273113645288316047649484514027883885543132858961215893176526512793259445358685319552467326961091914443192032147486607819260355319848892828926626700255579216753084932907707473335526271753760671495139845469714439456006164050468934838476015690616857168626028732480892952655849387109977396212107659696623111432530798278535635442206027606393310891992221098954442738728474762681454369697937589814362418922132400818819781973399245689179667617802596375827942287285957949863593437554262651647199931387110166702895671364932096674607772714570774472370959008235307810493638385841059474193070758776100032776034219576324513658089873651960335068998502806763731177388263851709496759682098094208034299752536330900781988417742581990740940639765908523589852756296441924559474384432527489912731767171316538032032820202371826014472561440397384676313491073681853282250707308095264476221066801726431550846956131466891021429891479147966225115249723570965108662523994005503143047542970226001770984925487173439859767002592221857923139124200320545333006632374040840418704026679608947941965772104710131002224512291049044818717928038380003850312374565644207526541663528759953549282265416908173259583152684661974178105345335841689242839136228553182253080235031527326407521638964777615346637377847687285178692630089429413984549654961264395254313215870400608091814773624247685002737318859822282851885139698719536668512307527553510744315692629688161488982718427213109819219012673581663636377651486257193080938805126429256137475077170598633621458363033878689759305911008058022258887390938120757792824813276290676130035222501997978791049103955632065306172645739851105558981989052747011761468363677839835080666837075052147312909114437750999436449322726786347334355028791311358608973644862831273571696170091469159613252201201128500777087035114131700476222175775044041819677917374046499206257754138324081646351195296988163179574819845607389813196589387026931746833914781664844866760520257627486956032332132370078755862669370889820432538246659033033826559103962730924209527708348148439409940951219618723378309363105019450638459153799385515652457201452944512825194807040236300563878750875121392092163377043424807463816751740872463010362845774849840972042469974220765493817478771869939402365489797610711556901210176676889045876698990276265971492655217552600053516721909096344863870300524028275451510164970029259265167802275444720837646193735670500120067040279257726464994136159849236811321378063346283964252114650336353797240038161045586241495773638948934273062118059327552534876815744803968007215570732034337984890325829834878350359387797393388336983982671996736101254550024192942917799075215880259011452566432202200663855591464759338986902470857589041688561982584656264249977390202638862377432356154473769265862487017467081219217757281026312257805172900501316340594916976303987407978949814373334534222575722702117396671234464919173818305952991845685199766859772197310209999499380459585418501212452330521417925034139804749363165037079298375837029233497819763313545573229954204447471382599716383762416291595410412176992895601539823918804778801325301504922979483150420781332812153906704944269594840691088040208329939129644922163314938328245901845765992693920325254583243703813819167777870058097409438121934367184145744352963561802998393176148739549184218279348575438887253910699517547102891383643674215016783455068844743199743860078395455033071200294826219395006172424498621155892513752878639188234212625880923826817974070554750027035203462475104406012648039361810717832882703073297105560024203600278963306074944111605374505656120060446087754094164821818310136646337925346134983437802614037499369024508945910871029108823461004298400430139000441258796606054140898737952206337961493415600328970005603091365746943401076896322718446005980486770499389479247116137925455956834305910145231650940954081992668588314057106990881894704274062337111346720376980134419967404729016049333474720658742443544971923825221012235375249979689948008282143726281155096586166201077645736690209992649826194333931224561561353873001770984539579085866357640470818939105062405965097236988007148278686884452983335123600293670483711419096189973150043050451880102841884923433281919156443336838905832545830948338187003174677770655740693211970355704852921320750430676991415757298404344804382787630792904928218539221020941919846608046559081330083640411646296508005953509483638147542068428736962136028898347654072151797844769197148470348205303674500061813403452884557303831830803159934587298370622862657289176228407820531505104730914090311024776673978800783564200132718484721328462921442815885502423277561304033929219157895840325606663594038536681800078729292687495548983457327028295889061646885130817083245483674999558969296961534498247120736692698060586680947832602554393964023264664073186033027973999851130745476625519684776231454269890082505705093032226412311530496429852847924766667241338904461095801362569854473822262636700634072794120413495969520007572541224475294847609534076757400084768578259433539748858176081475651729005394547848351708690992133757551607685390646133158853806456699330393196154933651265117523414650950852183084993371072684894140938037369613080211459498650240142321147956693203550310407344365691705439560223466799260999358825237072782760162333131399984647431037220108618458582663871638841897386815031415063169047242931198298014488981865767546583747172228225652747800988396147127970077982561246015799554342743716463074565453710134345918319274757348619543791520469937291528552064225778684313518023537043801478492675770620981304603093151770467156891439995056829231931911676627270863220934298389618929752305536271025277712766666037734068454536066032848921874108315558260843445416967113639220889269728619831875814287032767020538150044660642498221292048534491699327035295272383467038020286954714326985677809024252625819207292652869474526571477327932265670854569617328391420089358278215269331747205102821000408407289693384430689342110786545981531634741260664576877652134384641013095696879998503908655628196783123259161550797992785066853107009962500870558879515127651012882379354550453626286242148727010015029351812120793106981501303387307104696358644167946192062729416678227176405318753406778038062084818962427558133200919396536709402745877222618584215077399413038845008424978270548210828076882700390634517328199730834958235251469666136761718912735643392800857182822659538825000133738574813352086186189094626357385711385572426984480477666354598330333441841421163170750382357638643330919027423990317781058827929952988254797733165013256490613257067802134789352669104754135036322746150226299169328295101634959738204432486957848986393304616332721525309741089808744188727433826539163138818520688910084427872206404538071559675946258122170885250299234803914580145259219723548810430750109851579911944116472699487672898047833245872909621756445284419245850561231139909197186413287350172448469019694534319317481745510883522588086099502397738704380185893547222771369817639284436745467679353169025488746452290604742507722870315441392889263357406578362857024508102392329458955657718574233045962016726143694661753262532346405361036096300965185241609894676220923295636945665170592007260560411685115525306334300693336692017175135120682869305443454902821845072512467273806391088671327355700595432866951967129864427654589514519922022810659248987616075685713050598500710136431276420261775422261860613781353964137166451764332263333064908602691695059201859512814261326199513195442393455327974687947386732193132360705909578836910131229136564276621862551392051163045336869020064615909763342296171306407551394362578162532839645494576018239515239645202791283924702612073459059095199429710699183180484243717470394099860961294903700369148289453877549312647333410047440535437498001987031494864769220870290151261421699454865015931969945165697164391020007590879035935239036411433104454142520680293285250121369900620326610146213206704412989006100614049302301358510516463118428652261225499787821170502635986192994276765311041866688027547695479673970487586665906643757160809779493693812328739906705329675353779290942717841967995001823862679422494642215028703528077439558137760308633376212031885292481383888653488554023020426059171159626005626904354610024623249237125159698236386486662335165339959349276282892733823719272109428144962414161732004944328216253204617209011586907113603921660194382882683065991003190957268273886197120818599845997240875789645274444341720538694561445353141741714023608157391805529951374683292251607569343144901428091597892482480366702097604150295122127979241937610774855814255929845909392861748974260139797911550268620599118387619473501743786911068848882409410300709260287623405754974354124486481473334479636431932671404836651004521486307113829501097994553845291742057430734058564485968320532589300868213325849694170335915719360694560033176569224572924118189066496272937539962109283488209311003063264685191864423683931096099634470204146253097769937155351825469409665078558447199608611050948887963810779950452659688806009327968492339639304519607736280915392349334174355654856462847684243491192563122999754300164726071501183623300726767306044700982689989914823141784886980251971474991765459790898563764281704695464943418411694353580567033335686685007154513254524935256692256183478239632184756561407907938350535877258733002820011875153509089530754591547061738871440435803924590658822646063951466294860967460567149135601059884552757152342073817201717768257167474295560875985188855003815901346513476591655638470262702813073866924611659261803856986088605348021099118801587553369202279711838622366449663610051008121009128651615899500249283372337852922352342132878569327389643986832836699611482515730214907102163232785060042191305041833530030060739427726758712508218185794531549271534342550162298989890954011415413667657635291084420418204828605676727763330315571617065993766347885100741328614827124522903129736288783447199877367258092849535182897739074227650588394166509032372979749221289171046993446362406926207561161675915430240519720203975337275227155138093469730551063968670887303470654349361953944242441336172481358370468699888772984894474637339419062992309615220342690718964095140161282036957295876294012249377020458109039062931104724637325584347230248605895178722877148529475240059699274500150547089993255052293946425501447644195239344372105797566840020483907027131161010414967845947717906914297682578310464532217008742384992631915566060813168899442607112940519947650966880708345951173158280996651009790437756232145063153805281285190159527212800558121594409027915564480493706839462095462357226137289868925417700736230011357174160150593967631284207281944637721166701492380942720265745852608388521507256041510448117939558151557862479196178742364231908811216402786392818475006777510791361867842280419759622012762624731337776261352613941983159502555448861808586003104163730686647733222711737029031943222683675668692997948486674280132122040530919605496247286802280173925874931643471097166664887875798955823640444522707811247244511056299091096205532801170150776747502509508588476061008692903382168609497268631027157279182147241628753915145731688069839419345360192781899936642105021701089289543285810833913123999833363609473105120024840437119222715626344747453465782583810787930509788276940527503517823304927935773351243762520924937345587727974881984737793077584348242322722987566090181321248482362226942704148744162655276763079863662803376456939626579786976152164392429046221540234838117363358393900222162372906943613574034182873148217369719992499747009602996214043245280408556300055350119903168220979175988704947568419535947421452962727255661460652836455138646232958530169451167309390731356587466683644527146818432926441506336224609654368042666882077315262540770751535471633607799495057367602110300494236534857033635302014664108038896395424845249626033294255782197438406792798378801495380631922122612282788919696218128798556587480907381655626001976035730130958058146410156068390670838551654608767146197845466883231799033702565607352512756026889539736257773949088541266428202412188914308994040210889336824325523525668803659158457203681742933010907515927409090098384690568910533922178291669841986798295890098506705061814395495344602513097749625377956872366377359832676608042093817146465492752651030278207830878870579724900564136135083761922474342854244855872651868625975042301983664387027760787050055697154515204326839919746047835005852174188683494000363616440271054829565129872167408686676897002170925626363540620661025797695874354566071928088532111949252079669364738847861739981954210952342257993690229531699372695818304104092140767590678850527732585179777872057988788788933063210024174357359558143803310367087198602810608778522585504981801271808915973028177490130488972025194742586886748399755954953051051505330817218691130557577923915010519486307937193060504503347177753782892582152465625806457540482213210239377312684770883647307163090313353858531744816532032926416849935766610653537258615821248624895191965610828441594321844057643011305438214933346450202456670445833238008750356060471531746092398657737122533277659091358606171742945158325702579290157131410814442778164361826235353416011787027474299381595191226332145311635785032040738601008935657798500994455008699572201842572853016961348125534422449822106105615740837827654246141252520598552090908058381765626121079750751382644565552598742238725857060423879679829853962355023490910287698869874831412047670031564098543158714269649823924324412016775268637816844905232653645947775401248224703842174497883327501172827624432453427954026328528220173464650960109454668243180112567619386588390944705552077420321010466639596673178218631601046255485060998732282897816499767783467054235982742065652403853845677103552841466498196535004837135506996021350261919809440076497087318940619200913876955966021093910004903502195373262723286785787165220765290336874867915881505574442831067276554425225097320260676916208520042954129610924135111332502435868501605105914521111353364610855430998823339552749491848772491027623540385774949336019775520685135969999574451209018850760835260838885252499411104633499317955384100618108318899815920652923153396957010077325545689332303808256814926873841093364937096461007613439616453418446560251955207870177015075320047125002897221712729862720807746937358128384611405052495907388243936497215098245254444284654471785687354545164350828022923250845711230070479141999730154695333977183956643198093073455850707093708096381729942005490478967822784138701577808615700982885913151578937687354035427905032399413789564245417621987110231836536124840067903189982441487262694712597375625319894374788561419281617426539205199403858882186239235242057587367638208646189823092225983650637964820189951223287450192560951825759747990956261210130683731257313660539360901588345731483558409302409071243940421121932513552760677423248229762588725243459417525985587170347070911406764502042673074096860561279141089954756634161117986473328991311053475440605271699865112841833770597917201839535394503423727953830004035391223062971075699261732336887434764596394309413112959326804111948284485255213987154704230348597678191313548719587641956516860375755512937811127480200374939037810379319763765851178157735091825732535459980549364293344610609340499770888370845575986213003458556905349266849578953674990414334589019769822057345231833472085131041522215960721018292584341316695099745473731806540590788016007943025686304253893557504685065097550326917156864683518197634266268258127613668343371242402729252202093998910273359641789348907071747860333146734144204813540701670242442801892831729717330114670711256697785976382183412670548318045664315835227779137366575501943379141791522128205487165469674876832768804652921952892418506373037937076848952383606550943301353900400084411654242108836960707900827266205364108827306129654658216681723361302045984273886227016011488055916509760899446379881944515389389822571107402770379300448359012576698798244475527307208778040369089483495143171858628495698472483054996453417064406905806961618760583738470342065717390460700136266481183797300353852623143243440805547431211384666824001756063534822242374982066982168538418831088201603478812254324037144051290479611960801640300146520816269892003542169850152869846432161795712453039625881553204008024403219481353770487363243326441602701651280867181026409193766200542360726763898126141281878474887001541211134448443036631931999070988009138389509653687818786753949633505153438297788820692901385072211460490626388971938901423762083673674239135858475416523159308085332037769439732093566776837364269130821163798066666906552824977528659382591511108422440240524900461512372018845417162095363158690284013930858019349114617286731761404204957631683936739651032487999776973735139551624982691262811378841295514831278397083954597433287227532617023699716052869413740768154616523216950338004059980094204307427251657595139583432590372548972621164033441498388481497314403730775705635975489354345428691922068924722242815336214399242861069622203746511658297147679639476903596116227703056708337560679695516469755356498528583799289166551155588137831810059938587329941890588233816086073118790928515659419645962737550318057020538126466734916714717830655274767670075595174367949585609257414319832510899889177995497355359527066059426356282880120074396267752650183997199006131701816995660533883645009842070005620545212761292085880396948482683566119988250174704958864830183214191242103872915067412234664090118177193070995367471947601053693117771809447585273132825206284659477928616492118693124738462712468282641013281306934668684032452169064048024931153237084643098405475354817905369669835766378853013322323031016027144107283381123007487777589969577642758978238044943392948821073315659360579389778307472196206741659029078775322136902270706740166541955307370823349852789657235375001011098671898184808087838365040091324707978064759812556707291547959829561146686352615635525223612265828473207032635477444144883607162268131458443557382929706065780407568003955424925932977384667563838522094693225218174362759253785581217210140037246650983788900762896590031038255424447351847517212899282332861670517117383474278332405021093049254237593445592227073263254375749408435176908406024589222563170262092308095526247048007875548409448682165983749997997670338711341605654601570584310773900130695055274319068070189921294661718555497276382372085955247312677371469105535584971177624680992673622216895152023636590476107908213496086028012743836325659681895224621912543056930594316964902599136505097149297724631801430910186384665935326300123810134817278845361853079233586730586630605584511485247095499783598843163945412107997508199620108448552771727952252833271294191129767688489938623775220934620917268703839179403897755050063605762792354301114892342995781750633798000019046136558369499951488140137269005732547931499827808213451194940904371871714285775471250354278012489289783348671474536109616628419288006795534132548432488698722997890905356559757055781962143265400871397544093670627957900005966765584659273135344137571081782947506687891426310210104235135730479569925099425513611661339308740367257449456062197496138532457350417063607104892099930534045086057069252000068528243168003675986195465090714694114109047926575858543505113566725700143700335267519080761107272305713485255372467362668799416518832267314675442933281978704593838864207629432271003076574459102798997604372754583290458525630400686373230309500383314019816430141274666802599619012868631333504160388856890890329009119288916184459685200827883162020752392767287051469494603638199426363441955175014457327289958408091371085587243868633793048508164007114015269870026144307506104597720215754342714430135985270013145006103212086989484247674050417421240105676741679548000659735496674322887127621255488732733036197474435897992675741390369411319370244464411401628044248482828655363020088602053963947913522525459206157814334412853688493783026364777247805657607451199937890096755262308779524926432422762503775855259901832247631260963031822239635234287726420174810139276234531201640595896982213259579593314094810656307298081994130818809008003737691990120581080034616889143643189983982327317624184123041242707882413844410023484931877725342080718352695478463453741047352878981416402508024465549700728408298633832522244715516511170624568644044578035118720872119587356932814495352944620430521865806215151160125413327370525297729041848274392414725693931123640968455244320053320012339020448877553120475158671634286985506850058252939027851360035010605250167913248231273695289206936523745928802120504645933753804228778237997986692521692965289488053355712316495032546239792187202761978689116880034284048966591601404656425496882825815849151174622777739024408785415845434315951029351535388272653265448327277883330958790897590277694716435130180932074010292770824662402064103918081102119053714686152635927970162076603391215177066675935360378546548519380276774329141726843301861126425856904133457658990668434569302876146657407701100639542721344752190765140669100863105722806686868438077827258331131362213899818804857059300612542601468073037584810175719955873751729282474402521847411653424482603175552507503714699850632527962971796971067970007326966121081652841592455504582134415457875117081481953736428352783182379496120167404395782402236317805824600902324084815911882809713422683925599270098105434440324938832266252467918832271307157030911837272728174495598357264553372949511936334987531735166923296820746156413629829665821999131607456656852583766019191280883327425565177245060227095022328610648222873531281969683627511666081665867066863932672985023042934857521463605031049616518839247923727567426601773732966628772019142746319800811621668246856146417640282130373697036710656838450135544194940858458326209841937292173968801918301708482148656968491583841789366412378701058949638078878688303663811605869272391232829487598474048181645300096786982198803260833502047614347671411805766291809567850816974260053681261579455807225352788706847389288433917706071010551358346849528154719132449149769629000664994456865624749467969368391707957123564374526040495940071313379685223588317155376342659531354402223995769832864066623303533671290338907989720139242133129966423457892417180922012862999935113557509363355663253218837477444324921349187155615767287083076005944133036318838872659755709979188536840070785451649587028837460461090621145076711537283105803011199742954482176695619110447852658266823585852656802734880782662944666301771596069272295547092034063352866377897249065185635947232415517117379638265693344743102241181210806534702254897818733374032452845082176662655484393404435841418174756992402812546601778745635404986546568228491070466438153577639881807564551790840732051001661955397356055263943448779097745554711420114910283430180885210713784537749752256660496177555009095500950847861586087738706887498062876648185483136823096976249678482902573347723345013571537688347126991917973870260241387511351226740838199179655540726594414086818776552093904311919801848879711727820366514246448522591571554637151525642958653478559993341094596914365371351600699987434496376436066008979214635601597942853076927048166583942743067030798880291468473177323750061909618758461321869916080630175654561666208109774601159578497109931841078935468843670620613785729729202824175605588758740266257874279854824169218706604290316938446925699868702347812755165816469989893896797788383943669042937589580761551595805379758277204967018851306679747940810623012558725797912137500088898318686525585391805405720987950105168519083628685345292906027127668704179601136111282316307474891656787164191424565746900937838063252143180674200618464094613098578180148329411978464114949766367137128767237485271653514020600966316976268109672080255914674971181139334074606971528844657967301385523379190384641651128897909989488722722278447497291188482154762784845725263675338921362613330129412787209852983607457893647494122939534670822410853684454194155038852716294749388855577266452562044572545092866634231470290294599634432545425900831939097598721601121811916952756426507389984294031706530416066732006868627233593489590970117042233554325481366291501833163837953323310698155301111951544261576859817085619099424843420515426354797688549952036512701700184287381841333630166893792000483507269741395483286635726599470016849871440505268966353557662957167362608619676568158087017833666225508767669594799957427867573645707821361668044542379959117469382531505375702548039390584272254266225112584404200103836811095096448652381558818704052912732759723270157258958467098322752919396050143091152774008961101216283649395612321548645909849355804212023917602945910518117003505355710075056816197485453676130812288702619240372185130398041274600935298884941868636568121110655340087617483629036403355008147785119888225647038401896605769326696115918988850231829976085479638177212705393676035608578603127453936574386191932742744818554619433228432329003149749925718552392621130026795982203287522580991930344432160439485155794480644969029584133971126636208196303179037595864226974499669492584345816027409122554331041484674939649881711801609051355080197963174094114462701456333329241548259915510433302880885556153370047573388485641565202374971535442708463772041309360682899995120227325524216443232313344334805837934121676652557620062416545672971615824852404118709285080894917968118628090156841207845224716871408595917811541903684519482398061066591913649804117999399656047047640653493242326586362287488770430852422804824437326484025021884902998811379038185162051575894079129686176730187004776395730079267134693407597196217856775189234832614534783587457223526382497391080797250616590825869240140820471001841073584877485787210611628297933740596363792647788257043670025203650401429760001911371740239350781322222485874837528020434467696793497820796961465009471637629137512481997661997688387387184634483414737624135944219972049460308662015857319036001101615297662287233686319164824094382235045702764958232012201273079560425238459346621701459367122607940429374629469026518033851071043081905619387967912942238167449099810065908981166057986953620574257637425903809563477181530621936261503941684655249652916105809360376148923079529144157496683702393279188034371922161307716150409862686810054554087124994526467704066673943372171813633359006223135186228033694414209848196291417050425370588661413484850033180069372442165065858985070997732047583671117681028779926069272659307075614839989726906411315099925988281897539850995529361272567567147963996426674579996343023033002168960637775461811715061532940709792532574885918151476643232755753514124773160050434920047415167292337724143538928880966186648780102183484072449838586479262464639737871546875036577064353701614276891394889223138009075606462581075309734857872181534001240413038239420367886538014627238774332209538967611505125222069568195947267912919541556727145038459269591992332742153794228658179326704017610775755215367556523866338433876701557598524698903680502587072590172491322180823826896864080689993072126356126444765414436801007229082392886021792506677271442180303365386521565392496590058004680454214079923019993697893530042482809101438734852436091112849972010363600312576899508694880421717124521529140606518647905008174799797550743136326328419461893967768827305869372721806369826087122602646565950593342410395819148703980337520121374470373273562994857780517616688705175319382036531713973899422485795496195583641035819959118093778008140194236455163214002190807148065656651044484528153300728636160093755480625010463656438770776296199436034205605255698806859875377265375532419703798878192668524831188377518328173445439218815014788959043802857268907415581887621538210277879184821035861593541288177276413240915959277981245610335509120355679166147050789329236944407985523718580669931471850007537561428776587887255754796462462677659827099435910077154033070537367169047288072391116535491870461628751613081753917494497589073457710873605294698605353296283247163532077298935022361997737486766474985837099595974242072303215357973115840847416306795013044290928992356102010443840008307250275797273905632173965704362621940294254674478972908859347596892070805885276770420346415805930712740883970368623353513783285332588204362711390816683396662511137648702013428463392200273225396801631130393388974557051373367302013006089307880387410064173653138108117398332573060209733873937219153972346395725879742190432855943152595363819242413700177316790407016327293838671388595304144129118678152483703531979925243924796522588978362718200911603527882882632196567169837295916621223580510005224005205249526683137572641644906411683423223512457007365251597360117104684294741934393816829204860886587509501255778143720599863354619706951813858188028947391318408813775089338618837864623880298326596754947871338297775209743129569950473502183409289057310367006739325217247788369389431365979695626825691786207873413953715894537614462639637303521104192810208496214971535164811998331926257973736743206151624096575441883279400810756586001913045994948486677665174901299389271533530191020366937219014731622752168746577057740577735191786399071987409731218645743208979037314996327270329898925627313122557323825690096150433789312315315085344411329025201983470083356610360955890365832109928339340779100354882694859058927452615550928154919710975021465550871643876535773255012305595197073249894547139711179441774198921954452327082800918649473302009186038698610070151371333598999766437100927399428044943369984461408057413158384830593959231892882023095186440690582585268634718076571410644096004112034975639808298017898262350297076231766661834434964889161830868948602460593954685695050447239445312297931329769190924493667662915378232415468886059552702091849321211077702394552605834741894355428422639618039672285688849614186200610141735178356691271572296197328670766796471784263643185650569320475000295672732012294108020698087488175479919962033473290859033748671524386473632515531241712210985619847132468497147695683557898819073879896087885283851914172629413402911396602297884033873234662413252050758374949663886930628739895279877015014372521632273222306247093698642653661692505000281654223125534263772355475625992217727961574826613833110482541698032848697442749147197084117171740510473333617073949693769830910731188868303927328472928645356867090593382088858381048609027435690656262940615577429233213352979915988866072361404237464524283138897419060987679280845865212434314787558871991634514164660510534273644951408877845061974290783563918738323587124310118798921843624560444704717454319301847814187420283586689052557520352909572665170510454838607406992160583058700216322390009883328863197274490611097362089535010327981998531889699739078768753018609024095768645892083368321804278695688493143685649720123463544484129911373001684031523272146573810482271324916232629530751389444749501229055631266476924586851815361893938895244379947519614568637926110350704224857259975865837648045329619818023724332015496086754279701264935425291651332296211159147870251816320143803110445840866748058186050477407812719484347106987859954941635575638194324687348089356626930121453603419545551608568929627888157643736886038776499597121490660992281133406304508663760709555686867352784017238270198032894227829380873343444606048161322261481782103405647792129496698723226740066604968772304814922772320469223965467645427169165489931031607206497301129379926621098270864258627661032159601338225973182138326886439646530782043076687608579138392912210338584005474302108215659466432591416268150834048302598838864305893524378764449054935904911870028591904800957744712438437354513275923774936703987437498684571082162731110317750271273837148798234157348371456330065181684199132720359001513214927317361755622565731380267265072694350137798223236475283303671495187200317732342171507102147446345283787652202456651616560090279046498975422272408366145173198474394877418292593937814757989881443546614142162081009239318695451912150007796594282144258079105182720440571312269393763058070540665554155957651824477208072711109004288134312384960224887513284583783133686342706153433525541085749109726357569283271833420840371753288638708082180188568153637292700198889121424594666496522066658921585459180591541320938396360256998875180738913952380413708980550565268637494803544236378818732239633666863740342700791404663130741380650439393008049495368361965781639970930173272414184002478195425708653167872390788868883767082267529955921870798247128734834446241041214912759185212778775724335640975655964638055145406650479365830594145009773623415344148704174631658772067862575968138407854417497453840134180686322287846600479505511392905199601111823008061292843594806654291414104973251101790894798671591878077186188968143441452226159809450197113833834683098058208962366119455127735034065031896293784004561004350225345513183155557246741095449959440912227655960308659031086970146873366988256550812318448655472743234713537539718751293700767932640614246195135595207934396326018762598105160906469992751787725691806834187995911802464845521033225537947404470945457742712461256479102316870975259211804513879046615726609714466988724940172965919612977751038570172683272602104931405420040855733303819373410388075406925391634300287472387253883744101615403716516319851016835514478396586477942616805079619073919112053658714010455348352126152532694600771417803020018240644268199761844605452781342123718060049251562429696793891492080019908256516471040938833562793479207342566012573363266976271320788631979755047599349398466141496068288099021684744126311931547817389419886661738603301420836271676184376990404919745807302399803868420525113431335521670983335930211417072436852971536262803710169468569825039354454087288565449373544770805919388254501831703172595943814874903796662014968256422589497867922142942484098231867492898283001643559638277250932211471255023482337971313235369687075093338357327641867284590402347266074497641044369355600696802688547473341995203113335049282443378674344266887649635346801949346331222109245160821097257736251782103974522150365419194633005853826981839647277073107325789793401814616189393981450133587006172844043676322969515427999043315619454954135416700426419844374259280563737729001254897897752537109860820816837505856048798219462244906631750367069717009574128128984224091175180671824497114333536692105108882602985627724501174384702401322256307735857396858244960854045405049736987963606425561131641942005963625998381549763898221386359966315209980100817296863058199772998105062581850164509223423165821122138441467874603675940371703625536535086575786812988629778365813467838603734714036905787530902085441626840878063121723421300608515466781067607231112977955569685218358294086838845850204698293838979804627619443918090231362181923130864007034887008991286864209647435823830551946870484452638830408572656485331744006037120753278645496740139873431657585552330719215495724213935888546701080194697094580072713400758004991237880276868908789582278923775198177474874412439843323053253156587008471561040490652662011651801661909382536375104043947301039008259929091168819691257328485920828203613844316877510627789901897615216402847957553178802580372809591397970426718490255053132518462244882911559198109038184428706816154062078221867972024321101083687071435372132484753390019060932357067166764506289172521768961686225323642434201797046237079523131005317879279054218514729771188460008443608564724680724014917187481256027221261555659271965667587648772696881158758572968699880502016293159927893098658737311030691393685147610713252890364634509040443096159814411255074074512834414860298420936741614700577835424363406012354716737723936972490344319527976236087038847425267954095822932300249234012862347574789586921918923886844466525607461527871588877830838572186208861120465995582704831009188951597568045535838642683170937608812875056721161815716227879948594862644731188893612861978866886384633455865186159932500845524860096841459659044137174039111678990430157660340234270243918334302480124161552008153438895786370048759712984069095131530927405115986293907137426406336442893896381515974309900328629106269243276495575265846786397435827359468437836941719214550093662526674435133782854592846645970678591019653452925070361537489528616761299419140186317038226426944575824115614763640119528916344054784641874884924018982992410606568360944121048562406527732563076567977398175855821274798670592086241659036678836527736646204413940043854059829368233565986243328330091526891178873824435463837737876486841621719861968862127554226128325894993704682639973702815730176371390239586603435258169955994262443660097838024150382985837208929256547132106430398181164919097679944002537732600440444931708258877223643364710446505897242243772379332496855852955528270377813597253164870330207721848209384683985882515897227234387846178511822639220883982724885048775250178962121860145710871403710899615228540479111531185903653090968097162834512624617597212041766949329248129973360073884625108031212445711769853669240373045023956047068353963897665832540410622209261929853752123963641098963785989353772792248920077960242256002158147599000816305743880780422547953232564745051842890943322089089404037376891401138273361406389514763380609381507384946098663575685823785067595394522045464756624099582068268468751248529946620465727435425021348797846654906680007744012931248279952666524570083161931161576784493172689294299079195276137129233388557719368065711870372599722064936856226451819520958735968089847281937289502822845968948801859370909132314890538039821396721584380493455805549937576526242901863529113530906986021894853476679122793076460898543209691899409102638989297528273422046893620272549078032913001099790981959822347655452189287965809230952394217794996509790785070718245047609229977311963971838886494554290700547003986368728502854920750336281688604566775354946904337642203484289765762153139603018458979500669938536052051689747914015786540346984626306165271474416052269805367455764235724746669269484036722135519898912292553963336725941342495534133682080309024855396497798535770509261454909163200135392689680038982904249677752493132307284309658842282490485131771950833600202952881477173099529948160214488942710325129123193294759581617488153928521168364037035979568249727690383528241439917319711223774582969372690016895756141818303141223747408479689798127882307174128181839046615217664395980682531999402747769204141766211111234957181529330081048043267471419934635028754456939169720827726714672149064405354867972392210374989295207350233354612067849645882228352181453238146441306016020214773713825458991840396592787911888355919059860804388682111555750097512639082613387489738704338784141895210734891989292428342638531211765490631911256869989338529657202249933499205099138995865227535508682541063236822036875562596258769582513517229287224154787668458109557421876360157043603733449089757624619583111653207442186218663243496366355756410206927250178239581169533174685632514923244302787264093789940407316333631183267214193770320848260532056037063965443549646695840460702898545715693410968744470016067910124233174601895799063572419988116214687770516693393098661496357061381171345319349628729994252454778498032337323737139227136893904973124861203312747017301965240200622056277090126137509294510703160681769649349361429485751618853513753655594416967719358529152713845044570839114670722171381492812662745395391104020021837764868365702624255561638607567155249721860250606761719188389769729079342897260396912209740257614536557290957862514966197879171844125567812356840884979051897497879935070178021005983673123726756611896868138213424772074010945301449496856347889111717853956903715059479788300555192999412554372658665739208398980421799698471051869938856707361836130851415877578874503219510815212041735178667058587854557328763383506570711074685662099182043350342077304892784769431336413149521495201352016081735016613156249004266124068230788291861179232543319852668181224419701038476742265535832828303210285797673417962660009235664410192578429996546580096800308037115828003084711509729522487219448376411520988247167462635358430714478894208078298432341764140637675013714080869049491013235019232410912334189031024628627629606894025278526052916680824166715154015996053973034916018711176571136384371776682680050313844160716552906752906035120298502244525888982333630523878661117900893599149629891342691682581701912085116972555739617263805376027813914342565134108835678524972329840383602988661324713481674217461603926178865332284219544786139461835583841125091287631034109070256349580269964742225088666747055011815503709144969778536919301971912003406403261303263248610492013897761247623474596590031222473341164783777418917299566241319007005617967892674921517669961484838074647568548361287382940696378958541519372919186429396295025989668578815455717612362034328094923486847246271366448266315296495069540081563988259587749524972922742313762755289061275527717858045264246873445474239432677446911482010673131782013456765967843598703073338834950631619176036738420437293152626928545766426287057704792858206895036407113972185276258506747051476299468788551132745549545814130416248427303223965446825212930812035870134763057249593201888973949624333655072796209153963980820541975029872683577208943712319133201045493277071416510521414211992170898210288950721120993737977469097059661583667831971800340425125322598441782467383789917977158637265942174626128209596403329315477412711918454162364544055284821786900312736410869972747417499341374626528916894763747858876265596811209862388136686786746193230859299258893046449261607416795782795303043211059794293292732412437000328070414800913841197315947524509515703713736187915091404713150342466453982874731437838296964851542648687317260795197947217224982407968864427285192314481529459968779613707902676732249897046669316280179166626580680592835540943609455912767904383081476929123573949647467194125310124625808979489736521700690836330221581655793840892716978292032213869061589529922139761418548771893686270113345403337844983658111141731842357091771284434391045969316727994158314538609159321437596707622246033274280630856543042184271038964397823907870423733978218219086321289768411292695662353228078271171511966984926858629992079160368573228444144218584960623984153312214241448618748617013918817258520926424780021212321139867954112800689881489649288262231291301854246841861035819131514060342924201444037714379849762260585225743822245254441501843082134931644165264634477272655462569297048876093512995327630523897680985362081238129465488841759233255724139052793239312681132155170871147714818252668697711319006488006227442531379298886355192241789837464665505443524880807570256720228658148823059664140995908030772014610411499297755551849117112725324765955808315055049784955154565935466158040875293036936894161683928531329906414796131826969630417761996541728081451284224533066554370480954754320387677919413479945187059214079186348120692369879198000536668691217262544298499432609886566949770324791814973489771951137169539914555904505644700644216514464584613345154952466659100038374509653745073442584357457689084292694868475912729310040379402532314391685489883824768418374942834615901894123543568980396204051003537440435320139204157583335922377871598323484357324556418847391115272022172018931368820925543021172770136014285970014023698650039227541748282720747304630819798199880299652319191840010701805121294938670838118139223362024036108151136924241578232833147183061420357180179927933075141408414553719347881855245408908675893543615732514078792930982415429885893541643507467498014302474266153671499942040725769027672450182585276834826273560074682182592600997323863957108468095280950269568339927004596049823338365668576849815199009981891794864945702990524074944552753514561033584077284956771465649626691166000999758061101384887456919521285778720463650256872830933718414297137715629240248941172440541212925116646980967960321414400056632593219946622129847480764013338779105102699940113647148678621099816504905394413833588565027560318283310648484028722162408445658420362377584615371330961270871397422880385607538331511390408201330054217466562570085458589990325745801433440049154609054197352856823604138490430795987642828393266223919441064775457936317486435240386265996138325032993891463294634837065322260075752455125527292418819386792165010968167599247848102672889644725431321564569273165586339523069308184572764920574943550904667810053354335929263635769864759128721306175536010300854131824641112630020003487127973502143661886632711431620965018310060278408662635928138018255732332482571489507793140134383255446428400170323449894945409006266825468895561045481980392070893097869522360959059592093469040104743397450639565530372252550981501440479558381934575146457185029932765746739008684350774485546080727780058352488813785020921524320148672724965962413911328806292531993751449804591972341841345831422729864821551504011688585020465548181951376625435355065099088754603431491711912597438950317204467957996149670510284849228428657701476679768879963162395241556324168668114993016412788915408260833796158757170506884702273884549783580511087351686332677301071461359502350431100950477443581181839571735684402466564549224275077339821350507222292487950278460580871043601149811520868268987564176041495209563893889213340089412309739076685023189798759468096046427436344882871634852897944773660580422312969344980368501117004979946780262631947248798112455914020481046642453787226566630688542300691568544945243818646235844238612350497446814268421525287526906599018284963640608497084946163117429080102298478319373879921109497363519996869365305147897282805305747705228130086019248987892272386892016278120293895821845250857112084192169653426286385574184007883601993552442614728935697475178334584677222426514875153933514302676807001004130619060564429740182610983436627291065309612912606654786002248738768866584141869875813336611806554441821939018344767793398883579169644493637478904569788981768623853075667942946247987032509171162495284495550745811381884338653307136088932673386477631280216161188605082666617253093870357330072647553089357235021762605666383985876614150205684024900533992514694770066901381026751043453880504853020503888655304331527375222814447124440398172457689888563351062080970281413958149495194949250908337491454267043805202727322280568577043817918583520581273798248097668340035544058176781159126331606626059304454027707166627991738647289741414337304527980869455485153610265406962086913553454847311208986170443130532059700341908367573351243097739676651492668009298347058185513271864476390011682898457959287092405091964841945510968007892710227101649843795667765676733323515468143706611926957151393106146714637909732504373990300568460930630287658213245501952110977056522565562564685556349961186435005304527750159603219330326297790283757208090288774453000858178858300491778957078142109203857630055950728651766678979469848378230183134591474071098897045616966400848381800739152248569353615404585188559330048961259511644075126592206268755756268971136533140127328784269430311279821691571504342117286402151774825748597228864629441212731158039844886691526682831453537087792195813436633324559329798362626515586120067160704484819607319307520245022706719112373469127372938711952988213421254632112307750992173988404905664452827843330361835973066294950429076217141762168997271228369207059493647690287988099373093245700361923160131872813235374310115869709088920619730093367449508395308342137475811803738666753794254870334815287861632685856739650809324670045370822655430417545985143542689823539684821572471402719137786726062930287296858072297846068306932177436152483596712295918972733684704505233354310375200367135473061720489732118589470650759159928326697855877400318582164468459708713793986562638499403008663083395485100458645175544342775161628221346596120154252840067167052447184580356690845661740940915737890081096927575255276068818196150702952683047653636091182106301592142913348741735038451134069438011390275215866696311528617943242554525858922416563808236442451945623468304026400150858928298237169673744689951672826504576721934294418526644774173242799426986496896843047867207680817824221369055205404784489024208906714224318944851643939576039635139886974537442782407306396938333854178190248884857463467181480167820780887152876479407898196378859563263149367948727046220125079613338267749330570299104200694353817760984518389223698208951592542327986521046459156420955475925419881974985739790116363498522564977262535340364592786324748200784334806569867012828441527630848305631133078381659595345963720236519381038882048426790753793862364284394558302961327559190735948462302179958004313238746984860722618282694458767837505252193356249065645423269974916010223390800991224928799067148375503021953907293274603690128991161040999810577398687945566506468385967032120610794465480649959110325518517097974206431687493217654592235284871440927438043540819640280061514331266154536024533233395383369707636544725819305802998619780995290923293699666390511457066951806549353184424076517211022052319370044701425766426076834091748034339085620152283809432866644608020565386299023956566268345850909175857448361121519099034840284434978851469313143361938890888732571139313924147969299814420069137085394009856099671517542619644687821028909742224332116961625158397463081237841097991400626609643437495662074793384164000349519397637122957401685338107514655047744006922275897537150369057319505735333460458139728672788427274121507827691628192937387319912463112793769729808391211243678807435647995226625682682204284495226426360942787621844259257852489186669829008603590938449080870298565732502653782562964598863138863412973294202617104726833807179457466738937850624870171799025404927597361664013391786533159397002099286907973523479444184484584120075194188180806920866759176644113477748433108212037443793650661553745616404392595156041860739334173681908169750292177735136157164403469482808361559508559023263710873803156276957683605346060920437138785188415925830778588341029589667128557019968937117066182960138993876645073523437567208903921786042718708110644341644370896378305701688747424766158996477971409092321486447815109667210170779973347179642030074164852365572750454661211579302070043995039258247624182316900265037881397298725208839555051938739705913429026167761603589525347625951404832635868484179897605662583299768071411109234192585947026334006889359244969119564251416157837941169261872305447451143687636957950764367631756311221606562608467566917588308807453810431276432318527913398914042559544739123322866293899602953558305818780108091454648960281857344464220500466692296728789040092130083500297235784374098739554945471013158520863088377188125034687132569404317985644493649059368289880063101971002095376650607581964397145569168854818747973393585527711721523621562730433928589362299171447826506046980305165323786381702863403435269761068482192463205849784719593259126588247657878010955163131372936467370608477654634672538028490966522040857283851852976570022371145631052517902001999722447806962980190541612361971014051090982866316963107443280540349643722418291017528460956774553426131307687727506718816699442684402667797333316952561586627256022117347349490661683693282334030383589900180669404960119462046100265959650774472539185150868347265697177078059011398576219408148265395908207672092522352325922687112904390311603368447961627083142007495612293550277475899510198230362695139868022942918638006043671439783863377970816038944453778543643618242442125255112503484569883299620886054651159876754525362873102241272006791712578972891794998908535464127502419501275943545937569315848993642689003178655374028671061236339164649908446941980472033317547846851355645587351316785505775128623407419935932175061562163643232182154398570410759731220978674406646865669878649353511473620915051072117439446489783405645739002283431205532224095492741475721372442854656852895813348633824571198639737691578720879269354298361829320778393558032059657255832898992405614731967578628932773612649220186171975677043974018716317225597358412178843458037099385236234967544195506819769518173833066012512667328115489419088640836118339258255899701595787207527121021027822547358280998625360324502773859960413318977646788188358987831650151376988342799674895475510241911003413087740471059037024844901302453791833968991191991035826292068339611882187297591301344075216664027857822510238787419851683159854482670803624211843877727608266501619350250099672758631369021210330659678836471672932623358284241466117038822974404939802095903353574333091329273432322557888182808026765469744063758464171282850857169760603313976581355380931668780293049355638371258857297395235620422863764310389236938851255400195593960670987551531957611264487040166468763162223378923567856130930717781142093433866105976079735968346114114095723275107015236041687790641364716833921364310006294163332134561741141000153934387094149313360562596362407882774677526366668676613026092060257210137662140649653165350980249182189684020007115678883415114847214841381534129326669739376571003054419398703548289262114864851565410297724819228945472595307748387611292167087126193372917535248305088411443413502321772406813394165752252778483443751250409510674514004584477237093369817114004102694073296940629510918871568956395819726317060703764205190966782308982941834336394127460641970690836771492722809603661765577895810365416565190422118429117470656960622836026944266972580921754173052579763781914130610896048778562345987817393569914219922926191957893364200070941548447121879312502963094543492888325238849977654326741784473603517989156899840951336943741688061691982491542606485476311772191479558668932424051457087671639198071673891651513248460799651798082019979218085963492138198254759683515203479721812629030030538336054562296954708079850579184112769760945885977101470081382458389749776692330152662971636362474396892139480389653653176703679545485785720880877037593175128919335938796424669741498176047497933215540566662022676737116922176333029353984562113200704022776182396822520400343039028743037079698868153356993519425551098817734338286219173545657047295893642593386051085638961665222986856027184336793561915335896377635812859441659763275126144059273154071617089403134322041896336545605680739826388450383646483216085852264903441791279763334919101321495574703272801146344562660405841942803024379949310885081374155939155524481976131671881804565174256034248605521631993877180856821511126807273692427916047787306385598534507734834689404241633424492254194811594280163422629235135974902912537771019425845647813582440020920328196458496773091618284988202009066182087290518094492404854103043329010067525742637739856025522018326390263516734014281262496900920396808150761179692144127076825724478564749616237704413423160636289421281842781436564728953894931379540472790418684196962530454386193260681240628352121137284367988475661811991496083253044118664517641550170883904650736203144638847024101118377852765029904255642391894182444003767837185117191462357331212395422668656685741300756230095518749210241672548045144238402279592395163228429107919616019358542609316726121238548185353518814015882095251559383462309982394026545771239314557164071533593296664204201831333831464457377773008520507887067925198316695249417716689111212720026049943671620150219236063023784466995287641650091462936533938048144958761164371269307985526023532031994735644887827961757755770363344818125714062963841194354742445554865917968204376448490505299159501241966336341083504208712637349525636989396432973442162099002010786336843573127370892103888878386114559555748545833513931822815429776354826590092373524202918001889789721556283184052070979054779729046548799849605996107349178315645880201672111571881469919106433193091582064292474810479695763378971521083828697198123906419982762412860337361225942463185789256324013543710715027547222421537137957801784272663262911710012400646529511558500805905277297251929853302167861738488141615297783045548018926127656995628080340605362882096108975325511083671663833290185489605299411693411694716164191820609610880150563944004120790089984879218306226079382005444802664451210150305175541771324948927730650130572575194681410781546398767514251452041388394685705715884338461136595248138967875848782604155214202483272227504373891548765454473514845763196327216889115703177873848956610485759140272616970532376973410855521596036348171055959730980248551219655158249153534211084871151074137531097723988843369256887114402971588681430582373754425067081156135588547036364386336076438445918734482624654315033063372957084973538365528952595701249518568009498654879070497735268073593772576348974573610366721981882893164096335595703949584070168493164826980079057208678331110760485715014949700820203169266003434380182184664874772084798951313454619165446801385911201250376422627997494564872229542361866256668117782876858714557867638841476437833409314864175724893201973208899135376881473593376923470375957756185721096127086664479373568021976605641047574279273805548948161143932739313146016091304865764597116363155646144769221769255149537931754588432789209181285455240016384142372844726771867902965878183716750989179485811677581635710737913460256204765355620467889526730449497277670679564075410760935761039532106422768743834316481808803884043198366215626756817694384384868018148780791292620388615485261625702494221613866764184378736445138954185985827245473216646035130259321108130780729977969539909878306577065581669411579076904889542948768969347988143864856415505630608012185674467847798265613597185159693938638056906208212231633511561238976268811502593517166576988317174363422386781445133493184298298500865019812375511063949334840588216599098852292284416441449626094378269508776765733161735194992203868804332150197022337955936520758910953783433772693562197375141443289938392630282100990770760038118610126887064546510605257187129557606706453494369933525939134263248165394193144322647125177979662681228474494138836321608062069196238443091587485797553042587206870800105967008119202152916969358376137151465788614469564901632325522847461734281884174905155283408387978691628762526816605601447559020620550645758933964845315723716089815556457465306195823384594349585105360257204835068276250937575791189276908389115027417495368431723185214388271273759624559356434357372788512316817471730000389243100142690051342975878387012975168622968562903371841091434859044372068219661104308424462670449282311744228919894237455245747089940195357680194977085420793961681209586738062830948264641932685029920727328475019840308556343003595694740214902832877646889736545788680967915970984697779577166199330299158180289720061489279160225920729363250567937789201302332395307449216446412128717657197902684966997356037942192686227529454156841793496853429586269124492163258267099338702899676666301785994105251069069011909998996542948788633344958212020053888779817121920145122692459074568457772451495411870033345570352165931618527329873222870273060997210499744350837422194962323204786241422391140787428730089512844673087617032140888858779722965815991186735067611309872836416250260813329982754216159452695142423000065985831590967616063297957621059252867847030491993864651819580941685035004907670565915747458811443141490304776737517592007043417881245292858464441826241723864092526181472852433232617134599141459616437747835390420342508262002719995437339657334153288940232559391758351255986187714905602087537792973777719116201092790202025818957243550471742719575590965634409340091150290154610046138831839046817685864078123747101609723355017839642387025239432158312414337746918752614414006235282703101671256948049636812359608197860888110274948169125970764023106142480738599665259388636241854914115946035972044949454845885425344796674954506755574520078152060350874268937128932131871304641647783071419597552161659962500944018860348678687381798978487373788923583129677210396715878074527947563047701928269211572945698574828071971131039237401969535339590243929227092005781810595622267418721279292502517619113123919857508014653273427317743194502696974014721056407854191304838556474216067802110241235643540646802044528086248414688011653361925887682666979629940834571100575377280853344508239944396058041088182633782890151551545081486095117148902860005279992347407116131145461349022531959055318631512649306965705708063100248373876619830240281766433136694561295469559678141548956050909965560191339944893810404075980441615406056950618753764801864769562949639201746905397846000347752977571007132397497203606540425973591684531350469448158949921605937528214238929217345085272545504582051430340584845638691489877460632726028200435373995799507717168343214174235309372628068120690317660430015891949239302730341387796794733803564532623964799783817737800311244807149390300852041190300186836206554129961223384631316826931527809378180705053755301696959052753459344838875891956480033686808180959622129350950927937140502137887258374057809604118458669288687617393280864808853188479703429598713603965532870208823994305011726722072565737165913243297690640919994438039555090360562174812327424415408909413018873603543643233879217165650963096288053286434822339687607761487419111443557523092506208942714184773525033649897540352661876415111848532909299951929018151111544215226102539368808133223481175690588603720195559713694209589095351592319494421308813984070227577562764998386327761658010900399898364680233795513921916658133673714763328233428977442396442507446791866052756115226112681654541541216522638535910746310739236931493813712083427148688853794562435082643861120754142333924348375897528318649804334493781651628986634920172454648902038143905210849107398434594874844353869215241782697208723753132309576611214531685453943218628536122486917474833945451823160663910201105705385688549613334252835762940246149500512306517219466805530245182093343195574734260681187048218656152409327429643203888132503171875217768530960752063369572316850263286838580170183854327678113104741951858437057633083141042117827331976966733005233196681826901753238311928734431839407510776693781474068835354356018751912930899897640396247825369109245054380539367435479261528640005342227468777797608263174401070149763129417404679276856351444966049754006491179570700034291767964298765881304963840812311057842197390303045531586627600789658054840732363167499440423633970620963302575251970173771886794494506196335317782129195864185544878640441413017673380619941487348363776153086066197910732966794899911932072384297727284801431126773076412840885929786394240753913948031166935007672057930724417674046927968607438485751621007748549405076691312976566446851383466045213436884950037296503641541259019070902575502023172400136043492997440794459058626052293224433756100541220133151550202591775096700034136587920789097991952500442946180372847285830482969244642129279999671158727371013577325678274406186875789744202220071608035213401741778312542969281354484470935107769603941216003328229639758590793271803923915731662580354067479855918084893507070753922795850513060072869298835677852558896907089620208915400431344908084547088355607112055304031797184697362024747651726482488087764543608982593288713615016323362079040791707098122804900664910611105363765319361337906986169318907462697648479479825052810459713535817422027828103876545286535902439496444195484054685146365150284421006502646102692317009618947192301928713256391768239055657966033462202884753942070824922462729425235272393888261740793781871707398886525440853521185900830165488629499671812558289653218346038023302906276196824587886829341213739335735126983003110759276818321045211040139625607031769288188874361955926282864094364123384485771709653623957928707490498547637181809052017158766185983959199196931553630148248828223821313786360050344975798543712523916214244789869152090731435014846830700413938898430830400409745479574274993011122527991868545857214053843817199714792416909206958120335870627536086797344282657851449095693762677331579064526037841074392468393085940422979541416846709996653571643472181807902633018359039705395819348159668779897662848368393476754393245564969309755691171557472091932223051767876870634063793950621572294827343376546269604533340359321753378409217859889696679926065621987249234140402447003613122672751270524755993361330588816101421591134567451405907171897319641489236552391696692643489783542643731708238302872042402452895115446290601774511185913609447405343676692353709332020311089331385341870332154699421644604039326967907273702648155385305881722741187071961460177291712846122403050848879211230740209951783745043282892572071993556762466899487500573141060491104514622492005671624975263754432393897571380592148557295170999585683906109572368021793644115999062786918394591849148476310823752025610486658789615272331864685868149444254511754310893138360208129131944258341721522875724290981584770053568342658308375050754598288175265465411368262539766929047644684708434357420564653080046683800798639164290716861552547917909211028041604938699585976942313900484170669036601552921793591484663378882020530352534270718126440103157248504425596136814728713462471444569998426275977228319364834707878585712129292884195770814620675093487991040127342882686559415291635408466955122116336985812015829827271588467835415537717001771977718587026617114739097027060386942863695203642545710367638437172503977274862388514965968329932369805602647374200050886413071048835672350435163345773859167512360411080842965972473206997801719332101599108843924658127573977526182709026060864318752259957744626467957849889741946754677918502172810984400392847854455823476077127985589499163260836194959553690803538706518102738101247840510156042548313719903470055750183084090157569346005240328501935884521303251647232836234841492299982763970544136231410156518304872417152204085537758207273141986311006557266492393694119860025237317267001497111749355925140780533892723478718895181360410863014043569212512808239022805135992283346766848280103552316399205083498080522412541413856498724266553808957385174955768047813320703278749320471296141242836227743347848455102333517589968191743896809992343990408827901706592385785303493068556278216985253265972573682030936465216607214698914460419002032535367001168561675456105701137603912954522266036345115959023244003584746083103937801992494976864281002949909157688167060261987128448358920753779654837119128428678053050410976578841245688004790591527610268192801720456122279541023475845807881137676813659447213082951699712963066671686090556987623347364943368599879220574591035317214508240604994257990634510808712906624044293017199353276944570886167471304443009461977031170539710606075771990614133592723772138903817086199622814163948510112603549014441287528316743564925767547435723997668318308534882365011839071214347297835326973761237114370182796956296525663371407533092975587012591494497519898557850744934795596645037676349449779253244110964701201893831824927865386165727521066953495719055166563496201005287382255773917589844479165928330169550628681242846136897207479816633316001784263165758308039869935571243404016033573046175889741553027911681136449865851228844297840899871317599630234950785573392079268570203706183974178839078118550757098210663137915902372901206736953874892910672080990409503560848157852872096355473965078241405406810603089330711198638489671603582964959864498491763912833642574284959600289443114674664872499072621818306566444392240547002848167837137762508562454719501472853215821000926660081217531311438670030087076232548819484807315614277136019898398951311377488021490520278633638525891566889186070789954665786159368513186054425505919649338124040334020880694340019325373947284408709098226899691771846407468691855320139062203912685304657560840294250458059538265175615839706839314672605199879338550578714905087897218713973123562965537444748481827892341867739132873720149280146766443401707512287294331989062423774360360108542912809243707228235911244831643932434315176336698317228678362709490141706766426105524053712582850310653580081441693010322588092063820209371551716774347231163038593062722900524912978000122383544326591896105842787838713130941110227817241375273517440360777706601660571374929190302053569058154668052187414299401164888433024165973003717056861614542992146199134688820357709577652565292435623388702855681481239718408559019860618619462625674527932648598431812818218624915836319047365743460337756236858881898141524027718150414199285007294649204296903706416524805667305645454562431829835284576930802226401391375331560703355522480991423634743684849508653642549768729298083067165006025965882671005489870280893618038733298754583773371285277386229749826757064428787173480337833771551413703075683050052711381925498725655037895509062723984248563655900241860645387763578149781302648310783563387260342398721133409211543011152618044584781324982765296828644083007252402450487192493227575538919389745965627511743025022891284053779990401525139656554646620320027662995989880032645979517659048463425982051624011714102167802903980946558221171803172611371680175411661357502855984056779401037146000996333723246294851934148324925825556723960324068292410748568016860014447496729186065232834367125664325926849362454592424573489879947520566000923877920726553035177253863058981199481159086289546719922945835973797187003005015565186319513645546501213800519128795214710958326679319002695623796539246533171604740584195819254025324521072719566620602778164690075128670538208350399888148251204498842188112958453420469579814153843585614007472350250501175063437323047637502277260075683080740054313698225713661627033632693164320027435603356641047698492950674340695687079332126482651593965099351906112514900844386321846988280956746049451309334650926982846276428814443718965351230976801304387364610347179592322962018128732493735018818949125078972340243554732272459419138204510602726783677515713184514370498375305343359606150036080764451410648160216081212797400660960462231425325582159827592339215380298399362466938835624254261973478274243112709547145070402143635783373699884043457334532570217667984558743224692050527523967496460556333872420806794389285828005739432413441743996201323002226166458466308781267388176424107385042059806376162456673368589530158884186317437328063709783769847790708969067506171158011487965820839556982913444451989982551682458760498692731919128103173782485023736156800287646094722278399883593127546859080659872005369183152372596599369472714823127849300633935131935126325294364106823437806488331903854375571125312620312968504130580447556323249808232335042713353806096873476943577915968098667114624980065165626426553390815334763346594536617930469148558942978634896082927228867260221389571220623209401921660295432279729887646543106222659878428191980614208539596147702020397197116204886850865018025604539980782222575885127489000152180408048861527169168965199808047446368122160285559705471244015431304330446566308763355813350279963869836663235929478627992664326662887091491222657163095184213330444287085670888106412628022318165535982326231929262575234818552976744687189211346057731907285917560913683238796721198606755372907122466129087713344190922850405707578184452287145750250113380684564371727265878907185600132072600134835089606154567486047690760610650670269899769743242905921569982443831201374624067878421421603502339138602902352579611783881179066729123081382345608705715741106802433309744098716625477736338545834835863698893640476489136362038135627196527418599192236581638890170116236245073993880553060384837759536952450945722749018717448373058409594530654763387002963277926524489700027008208691201415400964148346592435905030129759377394088319333810118606852460254484196909529396707925576906078116271769436305009003390220806087158491277525557905631871814732335123021296767641637613978507571643469106820693974109920473855284265409543952281534410840191454220664226531556982157208645123350773077408938194927761015958226384660411151190062014417705641940760644917069361074629804487254416566904482788551024893154789681680010027224018827616370702669092517219714197712843236331401642170239217499380579360146337830624628768572111974837421656081178935033008651467741034378987263472919125711104657614139888194774811479836443343326736029710226387039691654472036645355806671316940231854738275054249300573641883721627015827893616756336245061439296627763536714488809243123908856469643734428522462871176276680124566542340781259473905489479809633466020263256394090245672302421165442843383529527396930356840464791249177648200647899358987809245147583779737104448593323059679801265355065538687803503448892303157514671994978254074892273620563370116764293666446366452321645281052197055660993858108349923404027244314094347507826812958082102160422550250359194521337712114555036262045959653915846657192114217795922805762650399441945798776402637024155370714221364375014775246349915618418653018039413318168000338026382460334800989298310774257980129162049543791871146717301706093086394437495234987160828550317227978130504635932299507140901073713596316547040581221384148162933249349250562173798109921521703218085731988385805556889687756487720231583599913551833321272667572824132425167100528414467123659684107164264656078978298337572498309122177570760984675106645950887760209893084535059313091597703134407417558695273074669402872697268652792669468454456218332609046206654551731046611314024013857218384116525618239451465230014477838533686015194964366412726635738545871180746081311786633458152387221881339790935180692551193241207949201544226134062554361327367506219539358398961205110432005447410419897538533880331089537686067848022445099326981592515984390491018007978523218648447543420002428339982456810495922325905209374912062337802716399513029210180923034016469293495370937141604635068526606583093252835146270287582630344268886668244675779662775063550446410060089719391037290259222151263212866259367282988303482838580197129202738238002768389287446080503880135955658313868610945085290678260320952606724164631568908790139112020417294041054481139258791676423953563604296518874613845307785570745303045572673549233199957804854684526499937324220024338693312827840414510290274767427532187536165945602390050481907838061998271804092202416648684968427292334607230921886099548288380511302204801351896824554364097572116272310477701186260992779849776171890003938879682561692276656869237302536916503028241991797848398252200409029065312922559640844389545672651531713060663419302056279304357228004583425948059436620866335685286924865308330224879812292213802508229836229651907230845017337793643972723647366561990144706878648374447369642247805819285176765324885259843336010150549786819694860871395109335343002437145718245623813536721812047886275627601659500434202776421492023771870243781859064624969113097984843821444687446415471294569903682478019065190652943263155074766364732154479270508602693650749433303800742206150584354616487965752961917608780255566967946144766377054417240959519464894849765555257907812243933640077033511153117617854343938503711120699716342440228065323847982051531477136761026540117291564224075730597174193768872799707870213825847652700099344120418880753107605632662269083063735626974721857886255776298462830432619780503496389198264584891117513767661778338089797593152510682260169398832739985411153718519521072956488849990520655594979710384627817017856030229701784749782580878810345361928733983472468999244011450174851255774713097280811132052397305503579115979813568883392965298181025554476837033926118560374114083742900931249486992654966704348675961873743052506018475713183324011266663094889162053438142915076608516713216321601745666940673956516802295865484043108453928138227994676784147521447742612674467189287258631330531925804380225235655991506031703155449865240575585776112749627995641339188387031296997821177552521273743602716637329558163710381385065499403058685614241734644993294748275067659359692452883918759820903991727532437833795510418910290345874448447837291380376959505117163643947005657787669490955878257448419250507541918618930544892505851095887283023394547916488392094896833564986473238837670307208999476124472743195331388542637119979585589938203269221581820924596879778390329631524560977757817070524211410346710481258175214533853578467329892232512428664146669934545975982241404660081539694816428451917198467705332630522480584300190678816043081942345888287727533700129451776503094118684879874374193012026590279998749232421692490313470340586816363403293361565563533879769855934990201541370655949468097294916947158848947345148165506572519423825824038172553933814558041607974471017802632769668690191949441618468853937234112365861368509151472881085466412663124012218916791361621189531588946103689999628314444741727266269747017358246348972592489566797367176318907335187907493890311435621259020681278835350539508449416507897319646514626390135972803586017038668326135280345618226466709264087860630961976972078321410807984702405107669428938198264313590518024525255897647175267883328284928975543702810354516328076852546397146920404139367028352117284884404675285700953422816703562449757083814740964177055007995377835709924768098197948834964566009602325942157995515391009602114203550116457580887237319210450067223008994232067868466736915461769066548300918952541067744888778492858665259513963234800308505138065144239524816960860855992076981066393946273112527840263535178434673565788332458894936483670047277947633733134052334611069031855203389483941899301489047828826046887513298018026157379897178327624198241105654206769213102546258001642033672838844170150275465138120331148208390609650041051227165000011035364624249688948523247865559400498484085440986552891491465835118591296044369529543264733154975898360941812765540526171188909173356016883993889355094021855249306712700741742554285340236208544028545797867727101110487521727513150364075026141496363849307923053814869591150103610281746899494915082224257326914232548547367610199535729191426508196920067229043692004390850489394892911788516701321846023948604925311519732205338909421940265625851778391152525311226468985464435745585878027361877716103619121046534265469297893647666619532365684824377880419890628896263321474594082205704548065059272964005077524991628900251745574172730609657145254022735492083259651160851024065627968009253947359531347936542085944590353112043994616286275815044724508576454800674307947280041155801920232691820066461660342721772993688681760213062175932258067849407105554258494314471558572868093558068011372788720169053744238250529023262013082443378429032256839002985008598967360388738186998118831775525985434791850294993571330101424776747314847742193878665540561062375846822622169887778093072502954985836463797397619916632998681018191438589893910443691225758736441264224514850712144959340448539928696411901702858520129329559497183879749762813841717783557419011822516267618685701692933319205288640758900389879254980385777316592201926925694937439963230339348493354560125441574729008285596015296073557847830699192790072897308483169112186216473146583682914156803570681668826572971351324615493866626338007577759187089921959578178816240783508975842655936510824172041544539416299873864347381506268968741306552567480012847529418117492712568786134361454384265140147108644047035586479176820582573508164872195499910631023143797610426089160368195112114931588368858094815428432862329905871802874887743027921992030425913087552796327801791257753908869574574912673672123436383386227108560841375320078335306970448104222988654111732873368743238418403316399627858050205986724788017492625409113002890890304612179957489716471900506437736354234826666594837269105268641023019263459646438929953498197970694739054626760991954901526489630451749428404842143202386732933219551147421636229899520480834590574236709708900508868719009430772606493464599997378990410594555579989295662840925096162539090714824026085780307232255964397150534676461678325181607445483064002169162434913183258921311479940809290629072187143872712566358749921144227816307294818632286631175655589435609305525714683947426279203370541814591168527765741845724626763500212125074665141404815851843610863734501642869341472680131234799688246015265170292151577822905453217006469273551111482723065351076811108271816148264184968843423526460965754897491176526085209211972592205241510575452569841622649684869182308393872064731232707617859969160455089158401812172411251707660188420391084719718998729878903467340046668428881949786029377304230967491370384016860378642684290998540072382054235194564299456385484099316448376777930263309657099327471257006669116555476957922608990465292469544929525400231475172783309667373871355855680592494949209009490834721074358220704925633815143680190524320014423497789499045559794591961438133329541484340497515226625076255188878112236230113914825075587661483403810241947963483837241209308602271617187059535392058587546536001571311170388451079613660575326811987348719691946445511614234910895448830866639359153237363700579467542664022675328896307119924625672945786280529832641036033305049266894261202131013748391436634673757423103682673140196563006957504321128024098624865396354951845111369656898789928820220251475164048242405185463450346245597414790764007448121830718012907987823150544672051995788254960817626129403767296939777036851023690599183968067348216507932760164747002515444667370835399546530082081909244538560270651816171570135126778247104515600997052965707672181483193282350029392435047628056146382085451817870066257654484250523366091230264863282259486788148785636011739450155362797762864583901255269385060900077238705959949327956156473643491437319997640808934927096082768360622302305516681726369711604069545948113937972256161648265503497236902373048040852052184172685893344161219618028190054153711412528457943693235420030200589475681793885837613583854683202983691972026194981866306177820620549740422262462534517394147120041369033912077032968677309104429998586549962786368173155284841660714372096300000413665520819236022134294489699352701406577357042610941389553454491419893613777831302097094784931419036444038511698302611613925644748301914136135182543043814627247176598965502359230398380274645518833202368740994445275225934868484671380824321108234654034444369451716141503594579610582277935290369385391237770102828814528238085487272403721650709452669370205460687231467222506225924467365604662068440797678778589733758620944390476652732486909290877485247785252535834272002755248114517913378732125612376733701973062993731281038686736449434310408081190570037180423625352035728736697381777388214793985539121912216649395206095165867774082025162045730943206780468742217856639202070454722975479193862468540802274130948321975078211147186024508712046747419711285851333180233057340298074875661071031807919075606871612015674349961686315343617641537957230480710125848384922546657843743203301482949637930725228627297976430798766306732492443577417662371809070290598313803889151792810032179620373948525471252508264279849008778831935375474960571996171107284132437119269789424835950795087269471045766152207160571138209558498680044561504251813468537460638502969781631741428395794295554686686450251783482235284261343621766519974612676379461642423229512371884799070069015054296118325869648779373456924557501169514498059278557691807345678339453539609578568379330109910475378654971959307637177788248776124403311686249760713473086205338407313099059208972924710431226516260020605365370276519019720855775569684330527317520198306017542408835208970452608030589272270801508525109246490287072726836635243641632543404596054330118983606440437296959489295857609775983648464663566273614524513099966044270956431688656758522558192128553181602811990746438577767517156319714421602722285919156668820819469440928508800575887805400634067517286078428622341322245390714088791190274470056235148350671293329722957796539925337757892477404950501506152430498369616552927179206546508600406366504559354168626927356214008492301367873752904880191996387856110077421019293937969582418094508748679726104806998691004839974384527548415380543983292532378806331500535813308967667954806834420092028986973834772926727592172206771936636507896732499426456250491143891121662728631953103817863809205376183428799299703762226585273141000757865553204120995232922180936921062756172206317838399517808651779917273588540035912795735023422587124466718726717877132758348556310291384619450990873823451183472571832990905405208217038736968107937519268188903777096711165162440776047319230964957498703487446704124147275633342730739819184028629107669983570727804345162695315053079786419989611630544929620714698356064851782456515297366218346480478350760252275543781411310831483772332650012451452217497742018238130261908464634076261861054463742695469720606222051079213090404404109378486930070114760355374635858475437305773505658529333562150200172455403207127524128032838757069862241948748406541984963869953342512622981347582176236166376811906055112997255571368963267128711446424792232935566460505062331449526326381985149156805669640440130379127958488480462653190829472286775043393072936309627921754254727155569965884836323909447110277397590939762885624543438977326539677346976227429827120144783737441449356500889881147705775044271696761531814102419488599046971905871711339354536616291983967761506461797098003535727818389132188526259984986172007353567530443847962457446604826316836681844504575444154618005266193590650584145108780681693565195407536533196255069407267244823755489772855294902942843511592978899471221356635511472663149348466865155080107814939197376859509983033236100892900666128069575136759827274970235899808721364343640798390041920008274997396026259857990938314371027878415869116404680255980792719916893832653492295049436533381736636592414047930749379539113332712940292536991987750195650250936955618648448552537571430350283650277191508404067879479448345009234164011711862608645701120121057530975963658329738429428183444579722467222393882490572520385602185390438508677460626949316557899492017690779974397240752516247437154084397909962585754349768214148537396902484972090447597353092543584018062970254498469769147383319530955738361675842020357093513614641175005379288613847344805253376065001390445938421511688223194334733838731392176354591666559272984448926651870685864388370449775845665955989194778542901954720233386948447767989040462935040532537932922498868278489866765678137695829503122051498846570891927081279213242119396264791919119851257247966060511132725094678028434172374990790494608755924632318885609855539604548917659423798143175087600250972057161922285229095602427311015562376623879677965746917816100733368953668177244335091441461022096598792799638284911646549816455660563228197645719958513079056888353511246924007909058350806364074477860040596890907765451798380923767247485765680806530269327072341361887583682923083561472282313978074480337722114554599756651104486950078644779269409362538488661684871351105601100226159151287193824564094427621582904308055630568869681727459137573985190017224025590659746620931075222381291143487437228998652246561403721781130619672661096740829533116549192168319821482687578425323277124208168199610090653608125916682628543727524787486191668195393207103230031578850429002501770935181078829035485697786679965467943930425823528301809050812330806233007037057364160783141962092612703949798715047238038067141819718878105194000562434528470553830803267999989453095093985406501891707485927675900669991815839722382006481456374266634710458957303970823821412153731297466603487897271163697916982081818290889937884194593382913145852079457442893543480127914076316488327640264424419982812382625695078429312515867662742601555991989911750405494963461251259512396418259691115843868927222714967208368189541063302926170226966602289519671162768899818905723060494171772046833939692431211729614799701627502065480488628300994789410038302695561469733678477510721341986561084920956093279153643671525147664812442397267048621044978665056684216880249001162554289525951073548063480992626433565237005561682886439947111590904035851859933864505984637807249668147640884852330011600378336130081166393306400818122981105541152807802734533617917872498384823126982060142900742272823182012846970054386509087269898757651789107126373466333033195543969775197941560272434022719497569841668793128811714167458444368050659028013923436204072153290787796530223877643902499067400297099287950178344626763812735755862154963669767268699276231689235700632290581818081826078673790913467323448201967775052463408117799514193981677268396897265605221491730225262210587319220489163946673682780524726532574087190409391859516399715905512394569704635389764127504218746624485114551762786247343434988869632529172226020512352750252264066911293435635805777499033184880967222668139944467709163520767736859491302776438114613889104817875616641021596255111643972888388910487935548489711982478960241682833744565725326027401301998838643274610874524235499701130208460036940706048048753909240665351527471576952358274999349050702725018048280263911871929888490213379980544243621789391564469828351865415160181162477754205351894072830546287531699094108879076758985364849182326973492697870045027327474736602949756317015395587477224717364422336311294140382050669790147436482484788431587768707212852235454030642891478577301570833371664520816320623980476079203405741499970523008936973228549953364149206272839331527966400440732493690571425508097421671405488025335626601497460305924954537760576734862480293963654989875026237117209859003885144059249051126515990742567375530097115456106299598789161293397528070246915168698601258796757452379497139939759829238910469046190297277767205733853631283310216243539018227330989480289297996815785844893056010472015903755344211128079159138498607885021900424525895939951373220860678208694166176683777583377011014568647753416568560635359300535053337667556779256243458338881238510718410824948015018013993086989980946614843577117705133750919837161162341069248352580762349483403475191264121023744031880894671887473382365238201021504940848166852148762631376009186597588726180190702594000134284860760517734954518352349215872581536403352826391293391940841117903876107496699478156388234155218225015083825543107901874838971790080482703040186342762132158006128593710060875729298589984169837709649321965558960277113525547383841838406234503807435863988843985918989330088715523891419812822415702257193247000676194858930925642779084777855602362086728791836278493971217384848923334695137212516189653283019788113429334409135834176204502897245694888967049764082753375660574605239879935703830623185387493694115009108008520213994718031868098793942996215932230251150019178802284943605461382669774082067146718748303079584331049881089542606588729878848190498946219401892534430598828483807849258216239436492876463083552776243940791223838969142239192736077814461092319818942295239119862250079560529530971908441016884124256848264982488083429417652400811483474576563795376415062548370426030757803175491963655527155750059096153842547838775632292485357028315723667978808373100418151103136153319765663379252373148721136805504769349465037576109061161985497625872880573449126892966341211976492456839610135332337535647174306031581928101543617467834402686788313356410572986307732013034799975582088188357129776768347247537893126733404943569936129604836632897812730287024841689891182460006278022381216829587683208062832662688737560188414217603606092592381724531667385032724922103510827124130179561209257676539580161163936989107189499301819822162067889214159729628280507523035860843692363280818421116551073926641745781923202710122444601484099454707464238386840963128271542615216351873176126382374527071105876387676614669201746347725827722124482382269454639841910010858927916818437294153552569656446392606735470143089027516984556084221784238539544948888010194929668038498241108444156048533251011412495393421003505736124189727449079738081831022804604636928434517584396196884059195495091146428825917270077896908249988008400021012584789779361245053124646396789677168080673937235717843294901655051150523572782679150023307164454785207869819850147468949920573666321598706898319003754848307241026096551279250925224832267679799083252909093158741582909326938941589630602804864568684887988074253959938843092325495753008817704523859543887208631284388067685834216606280152444446433408289599314563152873540405265464365348353359226074173872149448673528322377627326845099274519406087319937209351181742239535622875263398214171735668196778452061837151595153361809088132659993190239951776386704273019654708674257677062743026357773420390172553818044553759612394927960172966346603502328063723690054914876963289912435929739009550173588723986964309480901087499917781553263593998553719842388348466308840711329296655113420251423460791674337964581847080215815141413386711894992028432698882768556454698337792147324999961204221803124537691293231237591349439635533732068586857582795223495049673612760307396545796861804066425344846396996524007973304472246723026712234964191243838345301087496155799778027912530460982403569969781527354544809974814077542297380174184850639670440142739983644642931652682184364961047379873852168613583957041508065498616564364820565619467627699931826677388571199136238579030658171705659431078840362764991405229661784648245037247285408571712489148451902666261438286627311668218673867717984522624928309539378516172557639165944785489011478217784665293327100809707704229330334546094445847282138497460235724533743109864847309086159743602196536971632524320178084260583626539654696081062431572330575128203018112234783821752613574200788325379309871344305926231532694651993926825234270153610325725745624838357906914125895580291749233227576636828602397195643857564833022968902730126064189744701917048884993837372399453006547340133367738255116842496311882984483872962163750611939071816732485142116945380366763142791241669431604305321790120360529542536415407292436154383095101256418274588797572026263164738383061230851590103619065933517908957595628571032465407778769203455461451537630458445866767206198847393724601730111415112211083775213804089668079728620029629918777359642183288352643182590933867864096928345382967088569128720170937085661458701422556601112933949383900746952646199006464972461735231109504979466916887209794378525522614195908802956737894540232608609583617982468909270309588031429428643365322155322251517167543512345505405521560862129884271168771597398328142704773409892246575602612660845288418311414946288808439319693726172510024260448451108027841865508782569152597741161327918665882692862373084871785496674587806611713502470636992310346282319601516912831092565120236299832553851135336902436561073718592336220364842158672489876063857095680762325195027059517864910341194992136052950557795696254690200114535141607795550097973088862906320061053074624007800344526423388455737104260738785175753335604972854170818017370998222685984275683196054741453075252508163311090605977500304676343391813709708393970368470631143938314432768692300525592728785175947664240818552788630459306694769927379054214809437132353490414707845244829682606178548548763589456004946158245285644377918660471576930151716183245610273891086559865366793289614605444450211748325282156174071048306658773258886378057884695134575224372753462861906361427550034645862270736132714821049354275764339870517814503566011409559632837201423170365906766710563925190247922945241543318103779191204535172544786988898882560098735971598061896809737514968776181647880285532277874692623232971755591777913214358983093410210287035214052299542239416646600776378111796493078104387538735794215330974836671666044277690401301275230734563642349639309932910568509466475970567194280547622973212153853561722531616420888056844886242358266293086795369082340084131183954767555399062628348395483473843529671655014060627851997640890440316645662175975350435808259641719244499600018325822495661136413020922605320658530861083428813454414460476022622589824662439552632262312431305168451130365009402249091287381983877378388437773794876357179765826799595557836247764922259271328412778314923386640729934685188025801816530793347495460554798828152088329360341043892025095285022817788031797254400774697884687220703441895473138017851153520103878870398061517634018487765472532698407615163037530767065065779026119676874484482055463881692340395563152552334268000956741244628576855714938300923892568194903287727540856647159068153968695914926147922863036791590513266805013448735204733677858358629193550033928172346731578506206749690950931557066980225558897276965738708049912120693601746349350621463912601171027935688489514575293694885381381048746960145635890532731778438627884895045892345134827482361883539733211323183113689619055368597466023794556337219461983152611844014357674159559256589992484502078961230174012582884501690376014387859150578181821141329328036911879044821870021524113934267631061996056565485443716516313548935561409582405116248901348556058683687233808043423430476581353075564849849162620559599104239391648442021583952103081878752385711747673369373849733540340747761983773476204217123329751512160448587047609844454096629290811046379500395547840418648640035893299568365931230770796220815161497469208980694964903839226256241941167544069225014041233893031668987817375310655407420393383238633917558991519133352914984485604832526139043193390537947662678286138082068130514303529099724338452932799524677583663004079120876078377434292151892449882010335078061479814499834332173373885633530669786715894249773692170238651721632654136954024384289230441468174786136954479781296027704597827857264871684364822457743666395085734528717339470991358500223517081984555350398939647061300022398190191384590164497362433089072571884539212768882814104895381956977286929487971422748292038780406535480318103831920757424933821813610537534797267606167367654490823736742878408105157298511642693888879827368792432048326689213954134045022756359670398789923033746457047939522214490798748785119337493603811487086212568636053945346853251400624414018134082624628923533346224303033547827864204620535009435243819573267316587725685590732159952137876647841448595085895125446108350903173988931369958407636584719425199089242759684114308906354766107132057807645852030939503777751523714818524001566173404668789734175054724128360929504485725491444946576813961400009409870165718670477714008830854548006569731048608574707219424695115002847274820677686043751597565391404148797329443448378556596187231639574188475304345820597319160484631199291751962502214034547400558633382680877408289406683385061169361248246071106340804313599628713838879195718225886199124664091584532120531819944518399072406190373805777755716979480893986283523227393560274909775602728809501584887341734576190822110405039757657064806761864941306019920995590018172442158185842683088552154928318061286683413890700635379809671020100636284425257098197815616055459578277998338848483487125657180327589548331015353976861669423147251454186736166277754208967765197659513768250353759241478396332649671213898019950984127459577145161498295867695646617264699852121237976593484413070657735666766728075422126441590658460835499125713751323051510873260291739469357953624428680176960736603456054189871049498749563625995880371415546736770827203457406070539633389588365893835773699704021949883131496832481461469306138676591021218943293069139753234998977555468105041399131003935254864726625161966347397159832134739593343915031470788909286775031787780434087458970185266483708053249289765632833080534675218243604838673581650117195643580611815650528845253076770288190639261389987597367949451952718339684668402777657864063866368608598272194028822791642110479440590134469035322369528910860751677332832708531391054782240980508393342746978890514666698940239233199874125712136448928415757885252092300511820567730335019544138715061596014484977111917460560199686743728414096719858049489917822097807500359371448471136138064836969146158593729555210126083407608013522768261357361740295684156838798500244554126652437354941504547311593312998184618930924550923774858953547972426929713115498984977880873234537824406955095940033628296127775446435339772076164374182845334730353579565784258228932057804783361408961339171193217697599752505873920052147000507611644347009467372400251779020980567496523663042887658078944205130971185668260755213582858704942721549022743288541426826541342322218838271857389697339734389339243199110231571950481045140833642402399436967982080704695655261549794024633312269626971564986233425323912028676666188317229470782362463992622837982952870768446302112791367995533348085479210082750457223657858639514763393153822209634651492844262723459649898572910727775387481331225371267498629842843422059116559073945096852905487809520430996057882800817563407031740376144067856203207354006495819671901486616111804478967905516031719287838943291842960838368980015686702632953099591181866070441238329369253744758378255625880760686307587961510783381935824322901066210447977116941250953274489330843976111990656601965425483191747087571004146496326720257600094976655518550356142413265124511669080652117026782792304627716488077686468115593825353949544519674896148658606890122749089794267850367035248286862987385680880777567647912928574004619318223765034681967940866058995208906066994764939439780961141992372679414931105631143402333998796760758494247326561530525377160734526677970533686203116339493758222555542586171498971198518995522661241310063300304418087670144386528116802443103985708243658919410278104532099109125748263103824082840599178491500349572013896742993745557482677247432589180236160339147223519975134215492820938430227932215426408606383205766661064287714739305995674761003594600571160795593740032396494703605516457312670894126245184113778213264407261711914684667500160895575839075701861158859407165724670603237835188734894717169003927965078592659246012258643479350551938339508962631881949357464347362500375465795128193601711878521272655838098229391395109032441587080646990863084812720423087545597834699259035153278610452539246483647380969154842811451546383651875842729119646124338367849428279091389851837846230307849227786438295483144956321801444644205881849119879602537025870674530176230254360277563784149455686182037973159620666736836886055895946738037757171963707390371719666087080645879407139725353901955543310355503770377132040555597157085394513326482316371741341802134056021405630715152265596591475501710344233944175818688997268599872111651096037320621159297694268849773573298259280748488886114021822240889713131273804171280754225073699475901039955591506044891550612459120074182322611816290937748752588223281084863344423725505721885223397829403203864374110395230322802784183779733605790456124100872969971653518066558614567220029204762101365294084447904318425645467798968779312970992955949804748642646258169970553667127204636002566549602390237744002591490091831776285887943888512794860612791609527244225969415913567528771246140599577095431921550729311876393494080375162918098283925648331112275655472996621129032078174360729302382759571085167484027233710346907176986784650209696834271232842928152105681987855088502553544787232340686122604968309874800658791088876947210335637946987241144133641464828104793133987995737370537208411333103043684947248716049179555672833491847368716460065457772446015384396196267441237887554119832287497217150627022810034755885160643093165745604356452878400709432680302121546659264708123708095911215902936695364576369430852278235321606676786507512905582881689413577272423308269109974713463474278133249193281045652519481187658996612116910764244575016123596478572477787441785805271582665617889791678296519281070081485011889572808219844130098577500513583068227087731311154671324526777966559469873377233881416556926341086499105089308699135591278902348343827121650769437856404046423771551563638600027464466356886921324802410179162240000058343947744925623104102516491838794438794100196442394089574417439702716978303602821346024784986456688364951437417633833567908399679271183238058287130997547632045525705896253900457183626852164608888002795365529233179029209872770788240871638732199131141339917689527080329753533525955177592757981094830727436265720475379801375124047357578573137088194776355448485043393101893691023833169999383396447180118068226779319180458278177420877155781826835972599458942029418029753169540273849901925405952310382190925253432691904519743620312137334192826869142573697825900516211482521117614892011651361504215054687671506899904173980177571323640668847092385244149635603896110856422642538695317231626544526814214018969171596963440771753447307793038009935923444947756565863802742770212136225942943092203466245629591908903083533186305641657351992495380650010746703427397944909673323325559313728407943131084128720443976378315779412024395708543711098811028424815810374545949608417902322647570071368892950647443028694771890401064674952429463306285146048838754298959705293969509235745602018046823364975182329431834484815041164120636071932864702688891040205757896360608559777097506018936013554062987799660253430226055836713196109625828806910394973073698018711604167419458730828116002543358007608126244340515914363828221761181682561861526411123371780051564348110502270507345210468874395056217503181487949527324775914508856123622097201246354315239930591255659704802956089179402333329650071818606932877016393288636658318886766479388457773410104930493812847727959582492762027298150373074648735359138249208149562388911617753004360719966411302416588688390906705466396110017484008850337588248207589245936541897932890165604900488750216524904576564047475376444303527881802853720710737584850150111239237057003674539032743102382432577529345640131984008569868656242645011146364064082472474126546004997103649217238339775053644275866925504981282640934197442999821634461108641783337701170954864418195612251237104553643612114917264630162719387748519389799012838986770106211583103833491345065524816690948945189999090655272942888628013383178893217260596161023956376805215992880277534385284497469027984729403483041215542890855133795017488517947474818654910480685320630783469508421159145505466343120104523210785223524999047273766649958959561974201635618109937733778766843003821971473511050514689343380789235742097376185553986488177701469460340857150165124417453511832914958362175022538012831528128165416861512346698468125736212417989281140226741216469869240155680772658688964404367312337738826536562434660793163612382825198616303968830130722159314785176456880157820142406664707555113539705752822891037970990166945455005725069617504873639812767369827482877453885596299415931615184024544111826855292389498199333400024221074150012980210706441075299943490260365835953290586103638533173062097998597773510569561559373748257027955245369067501590009018949097170061250766476276071130251736235251429730882928176316017377438108458687404611440047271345101421042392250831757527834295623044838968236551391560516811692890491642427699369686528952835108004734369777567511679405719090538594103236514680213452740351280239222396597992341390125428151697756728513543763404695457055287365649207626546457579254914838522728326575089917787039718304590130123690366133075816712076460115053335309949235654413070118122612421102074753559159581788202121563703828748324236966333617349567714902293700943252156199232024685698673176452815825585840696590216995339745839294901654192166896264419636491907807589099208909965993825111080589998857094845455348377766321808875259533285973818458938620786274435687820719261930729201798170451918295621608762402713248595062055332916827255031009864954575617370790163774310288037687279828306674734540513758000232873541238990496669903054445830987483938212254211966854179918601039438803033249024879050401075682183485293745862586149274321821303837988326293058386169755839333500968625027223339642566853260279776501823353338287647677075638841022370917273262219924282173258687560442309924416952586909301869579145566339698697785616744502554358103671919569755881148539475407867731385391964804568582855002588257667987843951753602722164664820842077138325469046913385716532264061613463253412382702307451157337719458615664696087090418054173100995183933845609628399217036538625611290421280656851267968403710048695887317470986878520626034790114443653628912703747524785796089494091215946142006114432574127686613303735385309760233331485698274092525775653025514953542202752300375217878457043860804349081702885162130440762795995845212232705579804160050207057403444046747152073659197029763768955257811216541783089501038222241552127614685787865645125110077805547749723598037643481163214668745805704670048451175528533111377707357066129701700798791888259524027462630147011685780661977012430342855590916616887038007454140817620705795910279938760217285405504900659411252849726764760498275746279764994378720943768018766283629869160638605084112629290164542564911929831611438438930057530480159915355536379278014534887786040112435639750125296237095863087422404984521202658190373894851327792411279620677436012983128321905750449461694815879981091686946841885580673977337821921661592920877114370619767025131679359781458069877794475635794293581761928522193996868645117778458484809830110396915220664502559938233771709112159333309002919490845699890040349143516229657893522060300447591758229675483247055307981605320801876633998270032235503621617255950006575471431006679654191974292647829001481485892746094468726912702411549502330976684928229186846364653662898797882871663657879820779770716773659630628928020809167175976944234185002081009682435429933871644871277739387107554492088742880341401697227815056072480330702493386908188690458328366868362955277899906516163931485130498426433818883799172396957825207186229497492479674522285902233099999799627299359452555002345692358010613357011720639522573779391558973284228549610490012078084017667660719558276749583098619511925705480361736722518224866056412828234845574535682481611143846560060280469686146785483404991837341297683465145524791812289170104254143057800848669327226208419756029090579353831053846017649104631181407114931983263699469250905381212471565608108675846610212328296867123089927240059624278621255474209229715715948844462313170779650553026600760185925820603245353568538858906841188746545767535409930518454617112624055166653701236194983754656666103720562817777607912430575127526124928354029168504706419214579725070439509092621694083253164091083265912400047586093495106104398503676285522762509979115288532975282299719834834077643941726318153931035453741576398420958429866560376588795929119610918455807785317259674126657375981069698202767569758679930964758752843109384058351829897276871254173332119941650800301442350878722306779824261622655845019473332895483648373273433373698903764630132268690754256896394055752911538994344107871814557182814394592074992920810485668204603148090096048592005623018555762183814123068912507219176068781015476377981089687625186728365177810237083854952364959783057499748652254351481143043583784893957405725543439258348252563846052164475908375281808978495105096348524991035979603719995815117633639130478124588822636786143057534977664121360539035780077740616351231516595332060298419864490121895009724586354564316926713088773449029319584153567429265680672951752394748778091786369446779175185793210571219504165292306431959828965328011919588953571135282742429297538465854172600606919105248947906538968374784533600569278882406544238704639139935628183916705140118852355915665038177393749698782246720424313970738628135984666505357900541572384848077722327252009842373699757691368861159653845600583519077514399246300588299234793878496114322947830041751237137987044273125978892743169840029833248660948851271229821360079212131329185553215451760918359773788056832593079755535032373416781672257867445670465648730420132094466849082399660287925496777316965271476556671421713879253779577306453514025920468287700838270995965269215761299128721232681933093935937959903621619399328847969522082219547742777918283655702845721502469841907769952709767306616141259373438624698749372333955885005867730282420239511357551639294545835727120177745843271360931360221070603301209826070321942121398521435097738511691666085973433176365921153855237355169672240587633136167311113936508838805779703995312650132033778112971765991720237305167640411460026862954030787267292665502663680643532666163473409574219665977905935804550708623106790767467915785107375060296950502989145468694625950676744309668456645459263608940692428580745960400258060934827971362203915446203414919974934243073610896857425123981728015992252530444070635273989941289957888682234228930982315242233131580944759275861980619387084974042710565516856382522156352025541743264918817452032810486480634433228509665330785251691182359490778570455005129878989363159330363613025758135621316114994221771472206925821041947686869890908834522907622489019125412552412378555093898942653473701081330452434800076209946799941560339838709682026683007744950875606114915474338407768355108706424181097767677031998395088427129369217494498500117351233009595613107305001611102215395385208797202790633053925307734440023875281946287615643259058865307329564176835809250380264020133968848589504292640819735294311969373018089498746097754023018196984993466988889646953616238994218037131259254722760008845740507121756728764040472500532734031955168294402509693908793320362897032283631436702377255564042642822454973896589692907298221202719698374743463907412667521805137534944887329989148641681359476578632021708117439560887603787005977304874445567832022165077366823571674005067829869830741561677370790617035127577114170835455664655460874756765248092269577435666076315460149533637664669935065874554015504960642268091762855432140785444557324338621545361172657665856884197450876468253671129005524156232358096237195156564461814969674148942584234795809977728155084114685425606714228941165363785387123984756309557002407282278837241808552060763375534994069142674745816800472558206933153439189142211520458515959974009220821285541668928456008206504577305778028074246033081252491226341609755147157546976622888691529750982260553855844495829219487182533838286571738584489828837340749388112686757336247279552447116708037788327000992061693246294000567674115847947983032965762034018177742050616667445131237635961315730995128111712085258993567814198930974555552807514505421364938798735880618841642823524052970939136581479008509491099935048581742376721559195143147734521915060311323399972349799633931405253415377655634687945056224863374019271964403602780039320677617483797316628959825909824491619966490980611971413715703813786269138567713294380041311572640870259086773178299705644665082958176771131115876610919462741761931179096808604301519568049086697063473822529192545293165280098382048378930679220468936529654279774539367515728182524194497706942457202716723130509826715427669902735692771126397573052491859147772623500813518288686402129686722292720109909593956889948236051668137599848279057380983570795571137200877998865411616568846594101783402192502605558079840525167583288197885726852917372618539882025908539298247019081056615559254391406831978509243277483143514232792812594021190032116590995835336604332869239861156824035106448518122648445826766068312820811007940291962069330862373493167244191126647430890796131369396605880144828187034903107418090055626997888581908928070855104133104378614604450014697058901758754260410979238817056162607670372880203760511016608079771189670666193814933432062406953026604643569098446429086903104453867131821567020377672951228084879481128749159238587436131241863282549099350206170739354583129899791741152217182465942735739577328220928086533225188883096977079155827673268807837178914025762605631346333837004561725811829915753094631120484272646735682291693294754664854613329709662629489081285570505176018125017650935220159445320815405439815728449742038155843147149857876161368137680963298739381036738814965583687456642505122992044964135934245727493650093132575791184043276452823370007261472186067920731024782266957511605427473508623894503474965826645576489546888576316720066669589667052320789639752509341131494985776733016685484744678418819419608627161233655439256154922516974651526683238290792443167632894667099899184535954773213304008393470912980063631531713843500925514974944608250700854649511156139890541848783771897794686169883341021375831147055523995997666425445672611839228312671263256601675920903469198132075002260433094245858994646724361631869760663785562262124868410038248042705838352240003110396065203801708975764935516580676555051589934485339266560289812011240646880783984559066359469910216243790523512181399958925720116472379231887777096236469345457799259332554572674289581104193741368235376778273187603032726132179546619291427678566653717824398979004338434869041263493529215657354814197465999641626401653482443298874531166923441144634191671039456059069163687596935417255286842885078114212987399203787579464435261963390652083808309503863023836970994443386631993875541342979450927876064937707307505623522711376785964398166309928694863304809239959040536389965393869631962593960208957115043946522675209753874037697852526509373425265278897819197132459097438630380614652106739643683266037723116968974872464222417933717127909877203798529842493010545192336494608161896379077199107934391495945912296958731147140652935511372790237321518746125404339678125677559806498573802217517468664896440236419634742966310735219653443272967250153729500080581601990145388604837954465197941983011454161252833269519016970671373259421775952001703465619987963196433267687698221406469509302199303824292946224258014778369570613354047732144672075423754947197225111317836686084306067712694632953184666136576975318312397769657858340339627088589187680610263966202687616398867630325299505915457489129654075702292796097763002709952972424506342824009896039189657943745709224432450650774261674144510608393615295701414030041933258001335628867185677332782154457541726331861004189004058458174987779118066577752356993895145060547419032947401177953502128207504370844443766280866748908027309219102091383538739643552455866002573341468154620708743898063043407853188633352060439895274146932701626288704413030444784521520153010009675876243478725080381050709374820204577332361082501858312201233005049981242787708184671409529256794624195975430491143906502932999630971640313803643234406920677635243454642603093107835444742385758261763553516545734124494664035851420780257615595764942612978089209609111274795681451752447083799969630153647735421038176728076191029245181098278907606747912274706854435293904476654885546866373287025385092076779756001881454765759000910381380788959522383072800198765469742239366293280838172828245048181977881500416045137238520470009238944705315472148952142776276712915553294042010232272918402119327408449305325826191757688890138458508869555261806693408740415960951303495308326104224643786728214558873587875971093387334125847066692322701802757478749759933424740632659517641752185952362029002840784923355783285105098545572490332711431756064290036137518776702423871016917315896213340808683902659747618397360736358196506524698699946121470410660049675503798886282214349372261593842576950360651283568568809365778015362119895933694917032638852809582869759950020861089798171988486639073892296385596827793891033102569074696550994174942145674404561170893885049749921803003788627099505595532174625847722853209883934717049167488358216140273935822903286987717641072552366292299045690550825027353033933911591871619801078128778680371772845518624623679269687322810588162140342487145406574332068804655011672878809181137884351260992199816125923360624500124451967003230126919865038874687599003115417238428349799970404249244047255821046498905391843006116875008715270922998593611861994272080292947939364391946630468081005109183222360718683673810525439147268702667338040676655582337475548350527549055388354403648082129360611636193255280455504221724193461218887291225008217726628636753253974593675507645594398166664756559918489218701846711531922304787387177755647605096417407052265672162753702210352250694259212092339188397220694615561822830927190179211374532078087551881182413454259264484784256229870347739802028273574623545966216686594222836257445927630207667052169966321825892316561810893828327385351820406213713966270274715961063752386718726506843191302531706108542819280730924028962799397899876693071619758616605798288520359723971190057436367786412854352880572312861734104913835058882157906500167480850645501046805504043932269299311556929054250570841835341169883577956763968019612694515225169069540860508990781023407945530867263749788649767099987426296458683892520617299981971123680612161961197515090223459741910351964049270643219830135758944208337673912521107649963053202444600989988481510296665204651618163055518045412596125552639396640588912082010039313563756539069862621005156521657161423030147299252339620417607809321438477640954731474264666861332432870994759912092874575011072750190684114841808552888145667154710346990160248918642968994307567570635156824319414373658631155840675105863459447017142114537662183398733662134497659684609359893712365040671787776790966991441783958267066391265010592817548589233919207664757414584169775932264514162789923930186778193304600226826116544378561213716732023681453519982029546212809901108462966119338752125059002755103357336448783071595820245149821727537269702391837706330867488199032092806043550405090778574087646448107746207719206924665730063188575475206195399245207596884622008248400986982749265889090313943730937803041033943931041890367100757361891464034557045473841679269016326436282854172596164151590394635311024424946913187180959992935286573137277678584295916843333773180789624879645445079301710494149007450822589508106116757671211516354626179108224185516734315025613964126012619316755236350504090894701638802033843660861021781647621178764656561783052130123275456121417305430419717111782244147918702660525184073648078524720298323658731850737813238229257505106108885339518958169949006950385089598764681259623754729202702574201472942512245719232408035319299138760849305036328246608588020739443677940827522107682990472005718859219242413158062480679345069610029770328428531904791554190129220060787956883991500467392804505000784869381964310549343006891816103332793042772800966505814421606333480809414750395705347149058824485773356065596234352826987522444418618253979107505394788693907868427956661217826844085873093813123653187697029699103720466196773072302054612258313606718203115436563343967349884070585520732650938771926468371159805005205392958100683167878398049784509191653759696498128573062649918550704622113500333405332935585016858285546343283141070027314367809690496381676838425161623781499118066702971257220059857745721480278425775993555103082628559302022139805348379199327721317754219479606014103797520898609243517690664210150980059530753606466586468691161004318334520931390702241320898453217568390385591537680230667215268643628933050169861130151913767522607242285481923082784757550976700209891736664348276835290465013591579565774002732989629349953289479338915793583117452100338833064179488504413130953246099839875321162222950089997008594044992949045528507222718636510409762066390100671462848205946880000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
81000! 1935654750107418432487864886004092320249316498605119368656924278851101746825870940363960252320486364316677074333428374704159023248330194261455873926012332019753998950103067440065445181471951297255832652389109017270617362682620675292610645170993554256553610802694864042375904677056504915439309252092570429339871227967747767927552750875153789532859265399581514209810554006093021955061176828436683618685024307225724589729661566266308799845378409672678199493601658325805054985622749474271022596409596491044308231580551563503462517436542288107472841933307976588451586618411879613565833177662233928522155093768260025241447443701380652993138884697329301022049804759697089256715290829839031143563694445862875892716917620671618975327985812364508040482887963094324035123911684531312597751562318496986660050331887489245726910853974724812956720062845334585775617873014353126828567753953459276429376742679462500041549720176105268066359020488735205523508849498433661130900439772960491900822270477150874504194172105030521961427693538212588922534281203500820262181137309866853585134851060714563476766221966000841733714916160569900946047574533294982693029042278796108094758575431108604840955234729561544658844352908739438634527903986146158923371988009788944347539335473409495471089608073811479342248421044522072853337745211147236814774749749014491108497588628604881782909389943133008265194170712004868124420665574770660164661512396905050916648930943960498705064740169845659660287328331223533065134139336764715111341024068704010464052583567873966073765473146532203970372870556818719639992050003263498785749811629713143299646464440621332793218332859031679217454179161883954487836986157089217162537815416816780830270132334897998036093797131827152245993666572741303735397483557436882532772544945953395709472905815651124722639550668290825447223088630715790870724851518190269261675220850081587811338993674340944402006172125335624342975576820069123387457912016363275067274551938368749894466504793772283186255956398092452593021180476576809876534589582364012844578087576255128908201154916861805620727421975414955690424786521370968390540239400077448160918121421589418102440216143815067573209162477986558274869784623691220362091443320247573266249037749558461315601437828333123367078208832753982753104238427176581757147372550142336645172732160641223204071855817795105815641958659630096781685420087855438741458914214541855463177808004140124327247611923221325259348358679735708849758324012277690338592912911282848012778376508681622577812267535428003266709869051154652849177340695307820627419653166676302181425325607555771122149147594805565958933917915306265605527231145088581417141465698994107786850531404170137069170164682766068764585262099562403821680671642921105638570367405989386377226382959502934248883605698979845675371229369552580280281463795133212409336662495263593171512590098567339564358408744102715130031556933957549356637937159172474147498447963127650235157745293956149732974206216890394831711056962642299457163973869655034449694522574489385424429463663114134994556184007667118942890635698992248882836998495316960593243389694470880846178438450239401717394308016780529074731785230555647387929789169042229626732243900759367950303673018932232797630165502445379224905633656515328914499874883624261106629461819838656871671602014403418164956125357210932162863955751552370110897677728303963424329678073536208886245584359052705946995674780311630114012031999034221571955902501856340017916702523472029661003783486928432529088187869118843460977886372222715302510353234110097354970553229041076488446411178154633015261668787617228223324497830008764121644139194869105250837272251425575964447330570878166679976443332285196679357880334524258772283293312699855076389356389757521135212478250103672784450255317337943866148609277789825578625113116101858407198499435051921507310154072792414994448574799132333967960406805848648299198419387222189215932110913301963934707621864613248664069730822046984692601614612694242483415385831489866282633448299465052853297091778087986058366756329704210226212184873077573637725701973595925971537077209261932643718487197908059214177797719461132447983051751191430324388939447801679802144803188082691158098187991231902671726787760952290562456857997610596544929516204036569688384366470575148603886242826668508124431254313329358610468794615119560982188056812598632104972016013866783805216738769085611262075816188031684156033943352701424982569436501619165871672880658733705998379913713965973873419023799689426092753310620654447376824007769551999973758779054049246803957454818043212178707543870553881185066009771006844787452639567469910470584777941907758976162447856669984698456791964673154321768992379708883485447562007724010261076435798658964125542035731909046977229971412823064142109846278474379614997554032826379445589590191475795413480876829902613529324951427059700972599725883804019755932743560942442386478639350531458219393137104519348363462423232761078915188021740292434633121714157485294458002093261670941437519723423318454519349087555749609148367632942599946966718957519995623567841086855269983551443861096374803088188415892345436004685223290761560697362557136394374790952269166252299756697881802060651642016899681234318994294567465533379574313249242010249683219892764636067719944626082261356353912554763776321371771503046408741717244178588683268496848311662266773673195350398339560759112109783608704749145076010795577338283920373712811336288335521742970149124175470212532566563930777618129237425185885276140983706532014145438387842341543868692954369289388742915477968395334590013715505415355185108555710374337874803242339013741210147617426873453628169791189481349927174880974781769380909411057171234139209385144435429208955977411528810509051000325934028734028329935490185595285529343608437913934577357537420438098903156475552143389573079332108957560076740635259337723467463216963950336088703791970990900596278983020352455862501072132747995820230031626048766944805550568116375297218873671927623584009235641901554771570253129949565405050866819917382787337004676903317655824741985439610023255573614302031796056876011720418989177136819219374212700537403355178178770367994832265599980387270223333059723259198894471979806788878269360302557972606695952781157799166025419416443703163606885565226862484757347645654155286013395676596627232285014526702809548317618381693953239938403738564517636883879425345969308681328933819822147531270433774296135882400746571113971289977415193944706027235030903990685425339608213202295815294943827009752620353424948563189520879585002093632553066122071331950163926386838852077293040129830238961152128255556359990712814526879667014264094685112075926868054549354017281535574049062001539916110593249934502746171566258634404955091829207341416406476817684414744602426454424412249474449802201047089483497463644578042127765408979534175105855300963819831319773753051615817092353359513285233840994117361824507642005247169105453137718416069093119323634709104289232846931536025523667093825750012987005923788314611808796506527299037805995258368530765765010051331413446438893785480320790145663756680797574824812708609512343095808123593150154740727795886576771250034528026175432400144687388239911428689629133473010763646181267359390642325976032756321838537102292206115314500047155082729376378281738529709151268579742522751440131345637164387571807183185984814268515463062646097060781316007045187678484510340219348850111827068316809382825105189354038506127469553665490092838880372487025762801792101426724772174298647829444187882962947093445104726530390254979012056410026215267703971679603689662149083265827172488847634561533636861801609462915209123769255306308008815443731979189543212153394132774493670494918545754043853332958772914753512301711583285924888071800612742275005527967796863864109256549734358061842937280539458793962551074813033055400313937755156525491043746813179084561457755147733856544591459974432221287120251991472366765143866475040429988921119338700736647608304879118315660444905223774486105435343205606472739958740283106515064558814565287163395258202520656375551301185447314291244101861776069974896001077370108025808255507665134425656381377461176097220876814353748528887835455940467172842992930458518536733113491823538025269331610796736801567318539206003149993881991076991445704994183450701069748657057573937325234491890466325890280359801537217145527671513471405021994947028551923179623310615535003662129481502253118992837372547279004833302026473264319110060562410429268129346035495737026792879550393781812943426727602790799046401151691702280911177352052140221631202292446476767623303723261669908492019643110790129106521320972144040909730572322674848812566057090046202425590458902714618070436901651815515009022017809701341393821320034973889363329677362247554195319258773949263219574382800825858138333104789250906224532707404673713209509447117693726863631230942779941467533807237928020905995644502446693509648719224625745409125447038015726235686198715782260096347098237298242941064083374355740038000705219301749240813933811810455925433239167020814004427388348563326616286818175028964155052719271786586270247962328562653546118954058507653107023506319447942368156482019324148773369708930883994962746435771073546797843663832802870160015137936190175522565540953194152174089266678369235965375789010558460608648312891536220520491535880788461877158101924668801161868488175574821141910877446810638119190990351355094212676214676523812799487248863345697782565310431471472195276032659208451192773765882425913170068035638061487179301398255700803761058699529039500136855649204393468938698793712671896471007779668518234166567074854216161617583660370561128702016549769064063138418280764838212745353808303202832193646880888246752374587863171211464179358201169310469095823362871082375447423143633995125279968739477910062844192280372588944176191863722014514194093517757479041650240612134466057531764462863723587629627480494295209016645616802050174712827684390911594919465712326404931772649889773306164203718812160914873905629672292105698774133411588574707604233981273040778153525782581077893895902168535709232057743379441938240893311821201155021742158246964684087931166643854689429597030365072524000309920758621299785031736667840840228603753074737327988395503086565020390401282641078487735366207375776347048476063062930116946982273643016046029139753724594770757964095296050294388310706271112073557835826048830465234902357477062456201306098103520141103175903327664821047659645267192731218440867680748712359429492633156724018790642132265093517890315113147144077466149209478402921981137245229710294542121294401068067425266506914399292030984224417670759149345165567762011259036699710837055489794278687561551008699170940652539334977501056897413369681023417947824209485419746882149055072235763164949721235737414839529986682464625906654205797423255121371332252005340747095878916289119421819490835610234006454634513362407646051038411868005541292945399798038972942922965042856077739290380504312668257799318754801716467364977917630239963639709402599265945118163392005092209574865098573990100487668609828026199787414721566099494227506396276539598397955477916421218578713689217894367464334332616432825851350713601054561159135492705814338986332624053227458418505059294020529667342078599676001520607803346400620104348754893951900754833461807132479912648784606291284762130522676472681505035062629666065956138382938047150230627261512667603444155227300113223914777367806754980073140666767163391894272592752454401189959217482922136654378531592944004239282103014918521037542403621266205572673114778197612876228445094949410952968054066423721288758614841891884119454615351501909160315529927288223941618995512088508907549521609923379728064478424477550048427514618665592870272563099883479030826939144628438984720209486058594494271799772732220077139539306913140520518723076407412135798785001823849723771435108196583770885402730285407146097952153072093704864622519098481913261541495071725894581417263502493279097311950258643120378899135420059724447956519725239444885123910111978330182756942827961967835487761085192222554642543142277864468467465920688115045169166246253377814304712005778031054888707812784047910639816352293114158008814353893644303658465140470713777416346028689999627860569929575924213496147961797491643830773516295914646147049876698260652237547660544260924029262478089539348003315734938592204125983165927764519944659018258962938770086197783278068928282915967230332013118638246103112446903681291200639954105165610805447602798761079849620695505616836438855467411235757732686260512419268918585401807316352257854651806691370456436744411319984497759663077039447566643658611251829682163284803994793936194285111581679439700946338490882278868519436079918641887492828546320990694511101898154439388366514112473486619951093255290414130180962866792195243294144505425978234261902764983926684932180814177245392607154992323108810330998747454040311625991560672161797245330529103852970302962884981318236696767584984075409622893798670867004627868848538494645571615639375287998854593664474422695134115707065311268580841692622888896379040279200997242529899413894677128586462836110508579795489299210284825693060096945426492270119196241692592222325230239073440906541630972756495884133936172105332183593713196088903096944934001751283564987808395257690644716140685429318273135349743965842140843948803588837106856748107656802885662169182531509458822037072065850979181290850824877941487900027595680774291000088155034003678803004673818261903602094944811238751096756235239114123129176527387010848476328282713517403320667489540813352806794218350521449310344589193811724266576674624042755591297050371149251191563231334745642674874640363283596664988207084096013458831774937362273755128382818217662899110670567716907368107269942478089572296552523885659361473186518040100194833674731935922898944431694622150523394714063556948680367638532906425038438549500936188589940396429359309625552357868019036923994584999299852080565957802673790751722116572067730038818461593410456126747323858181173799671701963481996561459693572338888806856861653091172655773779780475125952291917555494526051665698015214356665755793790373130066954652274489137050602568159326240739950511161643541302008894627775292000132057263349906855363780226224053072321907978851685885726078207215232961661670217638235355738836756207632681040184678069588420063189987867604207103414947089587517505417837997589069854196512004102211959890287401881663139981845053839640718023625567615019798640541276368265734589918067707680366769790064540367373659953908290497526776784197108373470927410224529689633782909205297755141568267636862973426646381644474953105729402642807862276729213420647215524638019527174131570975471439268380467795572601771769058084112508691502932586326143595617283161607641694026148977462920787987774426964492667642562795261017907165385695752605162934261288156281793126803918181789578729259956800108165187460774441668957586932785977506912705285872880126456178260308824036931961037866966994698997156193567001648989371345594802467604050455558185700220171433720902169594321776723431071248716879643985286096611245788591114080991892291154901889269369682991843305175655413418808586517302649436619524071454875508971757635494559874742767258480336238188351202212926921587286076175767010977842307703469532418867365323159527507777313840298534553166124459107713364430365274483899665423654500938859113692159520859316713006189924240128246770604951734660744236076605450351492398431718062615357185292559979371042723291028528487142355044719865018376549845812250039321743916938796452276102238047035679258734854462673731258428090731337552233888662605633096443039657703457994923775817196510023748391508817202652831710145658394095634811151752001520692208437137227972735084034752841729690053075793676225178089904568296654686103958641209385785026789904018509073331918871666612116706773569365765492066571671415351304682550902243215775864337498284020511481146116568300499569926781425879163177276965463470456275931854132105932141498672004322975576445058993553345476041074634581736345389379323549959400247904517414119003688914865853961307107238039765406847148101880460134438589851486613789808372631194562483694586090712214479104641479779403924591249198115751741508560296546886322854364340386281590356494211833283810636775875665331299282590265671638079831091077666161416116096281054454040639523529251307333467904902682334340334938349980343488461462229070092308199242305708195135702712420947664959617559675879727273139483854785712152334948992884892516850865852403253103862393965644190810536373659313008829485696587345817988101609022897037641336789244932803480043158341144674883796171909858977741906833728984405248471015795905410745569404667272256399340605347859051246842036835307291658580815287307248454097880426559827711836495483728985300400043786659456683579778022260947482402056286937447577983166313927447699739627041789758692370380795048912207136594378513652070284380241055242088641143228622058287161948561976529410251768006346316336677097403229804903691656639191845547237633576594379838419821974756370005958150891073725833421289949397329132444190913302237681750917269364382444054880692919775230860017398684882217218539763214918055427654824664552679558907357911902026687353249653024210087386500255755775921013381546876673473764953876227697041418200363813425638072712638319075008083046691098662064702340881337007890466887521558639930796741494467698700181435765143142367137200120133986940418340730065506734697261809440396122740242745445839660167784300704369189467106947474909928374415298018431033318379277301130904553137470170049677210398628837796673203318614710723909727662991600104267682035746014444371402246776530480971043243239056717326792825773606232931672710873367939600679124479933519391987701784641335529419953205515330755471083175567363358301639193262772208348049837295980907533272100089578463830963075362326332085476753443037238801760860493741421624357712705782011489866905989050929379502037322678462845481218694941525359883739496620880876021744827624493262157649978533388535055748494254141040033056648257534663204041760441548075013054563237450784258343269893768903356257300131529001758337657713290637299420606289672996750108412390950415732566362084035361771123822370150924857560635252139298747349621138536274976018362051270353629047943802848638142612615438833687453239498870161595007120204410473566535393906505916119531236463693179679982035269143915034325383962515144899183018652407870326961237387610548221922045980396494853647878392661849205872318454052854703609635939176745878975956334353568127309503007157369361169957357077164910641600171825340051428450724120907370693220506735450572162537384171144724471775144047422067721604521976730597924635434739110774015522826875533971754734447037028079618314907174451250447928141400742102974730879745674298984007531048377570476680275528105060489230869946862198830891555295879060291563864977668617943199813863343476553463548551740473151037475537190243604866263287480022892878562060015252173062364504456879600125161593774207710469930578708758671229537715312904032316762661377089756981985120208422422589902481705799942752237543005442671195888509099623156584187804816348766451697126240344130671740838201432608002814306785727874815408502639149697504996129284536542522261974644824514634760984453875418657680708501757814625503354747887855523629130696426789909905330805256894023684239872462152291822544268433916829951498032453604339646378883574142731283107027566682466353148062442291093468758741458081329378879118694247643816469105445680100732843355856718970308123548360041663905656693714916045293807121589271646517632960388076849367525106138800855456173724977791818600905066627764677329018741627853444129404315214116191612964470196722603939737588602442837082649579126031257485031600885377203573487840044423285218820557404030898746941940987945109729508225703807205449210779484581357127420964649063154979456366583990575945010854973310496321394944135525377968450409284023545263381609678416861012117811715061775138588371312820021315802389680708989411393742826833596922163772269737038448778501171760626926724788831122749868616700363226137382284709496130195889533031474978775044854311227422906460675609227037810736539378547591061800482657299354114154119806820184668109065172684091880805677639744301924235143022812752351535506338711302638305165054841009553870899691848558366000623151692921942362747689303391094045059024942535637301041305990188502357554348384785723467868815310159316582678890967455672683862331602100011941123070628692172142148309852833150279260414062200952638964336038604636326260903307021703941814924895814157388954371657015623368708649359843747076076285437407610253040635736714322857965555112600597734382308854666792697086809939047707028712875099683404195958520949456890139312941532603922329620449396874242918973821137555230512751414626433374063652620442455920493965592182142878739398951490709884854394680368903359795099734382198767185522582267735342772910487482050447859471944726038779517513621619373888110423361528398552084223633855242802289906047311648412090033958646016237089943455904506374702016232137212689919352209054220655175149615484063796395295110159551421014835486954658355127315141878971279101185516922156674727133525461518392298025950737460091725996890617349892273704494223889373024760445158624878778676884511703923448969003893317785772726622288138395708263082429501356240759343621373314791774673325943977046977271815630381454502880057831481635141359856314945237180301859890088960520537968516625492166034235991345122872887422826521431153625592955822157631915773868484697803934757085185700169470110414740159261950081735161384101446356815626525468133400758551274608164238830496603608247514972973322199090311515497057516007478956725844966762613224737409218054652339955222273895793566379905774575735582350164885702120782957931517386717790489410514482680342494793964689432506030023352902799639248267974334651346300299856009949315143288488613626699075458536836254488863211925063352533547253135499805232807635434136995006224972948862644528619907422065479936704677462465067238639550257861562603999811554131883133565658228552807863670907822460042365321079150243050655774304160215502405892690986890386578784918754614545828678399339209859916380240970745080330518826633535285503881794302658775043123398695344533109469617526923725707517421016920589952111340392116706336302674108393425286474840076988210295970960113537553615209374146230162589624470227151491741663526045084400905688738754100892829287077148559810396190088711575810351491811017780704367882702465293294526280017681006976626122828456515877254443666894049069152916926446985743234646156487321544620597536474561845698735972545529526368209015596607900561945740777236941020505701039256869249860088643506159277940043378585703869569743879096473742997198757880541247358988229276770370113092358045093322511518311926626007599281873790521619003596465951002143281874902290803528722703795962961947087557713422655671111419236553855395307280903589434589754855008714489965907861965222768867731311179572436728245678781686696397194815055420845355935688213681832308627638323493583240977748089422386954173595965125736904649949767813938146176411002691313329741630835821410482390095185809403408808740107524501248254158424645905991420904354390664788222062244122166913377949567962540008488633692201356876285988004709294561076374371091154118302821749555287154983720018082946591183069480927112840100425397218451656040318991874651415335082554466886301680749360342230396841020639742115554586480574558029062461952412386072967782219159059804782671479033072890594875921864540434487760348565977611747344774570493089170301304519270129774150408462254917639824019054008472495440862254068785638328045988305064203772456907970172265970446796825096372838285090424934343682487990101727909719614178844786454468786843658186543838232937857952296304810283280672372691572744746660819046649977840131160577342442262336988527754525952002906782731485284109773616156922973071124109076739033930332304336784922137650152622279225820141907961391562564351626241750084638479619447838330254903110459762922728123062140386143973352999364891721547854131910646740575687072143869447610827153727921824179437733042651597230477277401711100326449656929269474653165862268027938628924746919347660634306460792079283996192884585193860581543006099894113299894094073528333268319869227758452162352949674442620560691863193655407384136881721157106577519046263788719464859327700870600385588140599101999494461644353124997951505448414971245763063239928665505669730016267725260582432764229930132993515438850104431297098115381930218518688103172483739286367028318977049599968453369576746676871523581781252778742572274220190686607761119670327322616712856757556954798020973349568623143043864037837844413740438989232195483114951212628049723287158075357596971348285050993176398960598852331255691058475743153254807740502563001016812588897403773839404610912023044609176559383711581044935823457898565842590236306074802177522125772007591986627677903628018988083803721803117488597148973190513405450146695199225290747113168859755619970580345435187686711157214413875659809484865395694528684445797801389292186362184340238680572363270693120194509787923868134620410719259218138730424257329759263011255696625711653093228403179339079493501759836938853899222788062661377192850682636807156370132344537265640303294913947406641639531274702325074839127077862383712601922723622257362093924142656388603654301155927800453479246199381053846754558770936314502991029663980786532215704092008184590596988624711218246965101349344905900005841340370800637715278227486356637465834344987703563894817273880934858766180690721952411974607583955773693648876327354242714314893354736688735642167214294968729863022198451225044250164443643914874189123682648161496109759489697850584627695218093574449871831539003258879485985559894380149316038716664892677395201347928456265989879588240459032517074087667576576158870330510785817649190544161563614953691300936880299720458711766755065995998518660193730663125658067884215204077307710380809311788580808141411179733888142009632032616686889722133962345952741396190782577920068277480630593266354728064381767746721133657354868718464793149848973137947789998982703350295626384389617302391226979822521506107324474648619831124543261692760285836351745633109821860834417427805355604860317275197614543114304689423454572300130117193373696754348894038061465695616693765795601804381181724866207481885428208841341372076296913300283477737744759182331391336296157741426749663212908950535103449851238854674032423501908243872388796855438005232652143514976083488359057301911684389338881083770145362050358033342709296425549606688281211167356661323482381445529833627898950695006532048140916919481109594885464058061439539412298359605167684926366687788189464588584373592799738677181900674940454870229344045172093207746281946177921767350870557220717152799329468041068158513327355292312220886917159926470838225343812714235980209217043863732501819294801210737593943926279138938432800723339726395654816803364197858905551541916414624248940743048371595751512339537085759057661033728988728281659620183952444414395655334701103366310647701543958794808520687426930684621890039068704339579857435303675196165386213399260749644309040218797258935399776080055990154083785273716133837971758995550935142305480388100697416175655500278561511318576945632044183157277530038073969520377323836290563070366443160433088847537630177174650503941453474864584879144904671915689990451433520425002792260037416669799827044475725692598176280445374319946772327289138120284329833331706670496464251975968253576255642473042273582571404216874362466781213359137352007409443624314455853038702537887219145363363623826286946847253491856980507337288308309544604164713876816814648443598303706910520633043379512845472022015403933077746144014504161602286354910520572033437786298712287075345404111752184186445833847800984504361879894745279208173901021214703546186109837046127429371931788769148012836048614827568050275440806379786365968573408889684514980336429946471503153221184013612933174880183270721119707387852720208837128587004998192428455562648512729117888057431141903320676674620853329527558392520247626817241447781754605215771065182453875969496516999894746533543045057496201612711187227704199096380314978325116357008231295808436189010573277688993757586210978107342967926607567916666331666602259529287976479588050286588856928817465733737268257609906857407106735172395564195333158339548083811696381872153265551375680033181633585003270974880665319226882779087948426378942916400923554143583899267889996612423583967858309992439967418447892054931935239212549943326566180368009543300972587442033591653328014131112787762939562285479324612989267620269188277056210471337316967990606511277870833408666674017673393606754835336906699310961201891668375122009366326809920100714901247978035548695880017390190274139001101930045636700314825113934667404377599991960612311549569066752178207836380508041492707819229991669697203380429858403428219023777509911947679072163922477141505108563111004379206967084997529090498815124294960379295994855790219693921563065211963952787699239263684402182974918824485060736222517957707568842511075818098737470476045693745169214459673471689755366635352597713430204101793656536248155823956338187875095125030890519404251495304697386707778333211938990994476593401326497441352103617123551856841906321119666085819237769459299101034335006168144126053997740824720172321734867807280149614197483066255426644250797041379978099473688356374569703036121633010935198661241903676419135039940701486448661012581227257707169927088454033803964113293503534545952549174151113225641220247123870812760200223185058472415705848888508269943875873805934476521272423577596345579484945594046022023551259162949910000369229048883723629123605820420054413982807931708065716052426048538041937170662461532355009668796595584897113736565877180448465092243833410861922170076610568092702906027565512022789618727498894100212160243517172614285600541320428505587881450065827626039401259083871392222006479091545721824960317839354706307239101249597792044209757010865887375103161444700895409347521607449933398875111394152622188613611816155176755127468468366781888602184357327905947610501762724251333291725269220897679925508032939781711826114897848832460523963389221889389314519262253669724821909860038095783834632925869364659504034361375771419624619978161358960218826828223235166515622153326551292160477866301118726729234505977702061190932180558260910704132974073504738419039814695152792740709854076876902632680194792217334738540624980171558853760018433745144965117439769419008551978804366439804328396413958923994940189281627346423011455142302085949888771439998417052107388273590652159836725964402938976045452403876351252549115315809923375904831879986135425075266878014765345440832407457239813302873567996720148082736080942115602172278414714874354469196791864535901196804161859013289741027587493701579226803961666920406091399595066541183967584816331890730260552395600071541131023177007787481449270376182430212385023906455212602566182283052456912004126572999089290152733644813747726776795212094512700308837001038308297194837972986114532682185126533650928291401298538071742494434360675791063633267741356676088630622028372029514377510718062276666629537445721472757022761679539214866492438598754414057056088475603185370492555274121737691876339011622865747193095535188157194886378289091461303400825115582708698919260004435871985536193265390994770060680590120508902296733581994423421455220760373143708365328675238958489564614679362404075989851550314754781461670667871335566910158759074341560619904382347407082794222414700477872792583824764247963715001971205811320806127674443619058069670223947817208636314992988788608629135591595910965120737491777497154106876640150670523020600959369166734673546940436367237855042466901898975610040583946927207069616889912737591589098162854216366458732746233272946000946879304615870321017645214540439366576327459593320321800530075849362354632224718786192493729125079380924179153302331904372880105081005081365377166908656659311181563842520036961049368102408548634835727631290717740065892586320862125217694442999747312294634701901475589723561767399993527110275441458078551951915197211788901867541188664533981595788849189276261949265250905344947837645468873716602438736691590853683405273241601004941240008607594464080781573746210167071367821518718204083982680696109359059353887061386909575980126872975893461027793580803969575980326848858434606474703546258861294526656817947324046395816751373425107056567207255719384805611317528784726562190452886957048789414851053691155753967389857497558093614734476245798532333075329619675166213870783033763867295611239804524660110223111181810693425065832314244598415996284658936315501471559804621813916685158671309113259742783473009686346642163519260961768535032502875705246818008803290744023502680282684117231927165730684315608443397641184317854506598465027300145315452814889961531770434028956808865773766289025297010448296013976501989973371118824197139104381107317461002897097799824230806265597835837114887881483282713862507683899470154429020123331224834160938701561195613495808550231835077312591382201574691606984059460206681628698508883901863393980934838118281097908234657368521070308504205845919774129379468827428019250487393636747785785668881039866768547147883574102043055066185363485402783649264294770777995802873077544163734546324370071697227313536185218834161139803927240327718597111710417726079537215520029446719814966379231244585562462786385077130284500556598710961017861477298359341862351725237219137980335872635931460503012487942599402951860039160303179285877143210755546971505274602206775274119794314426349697496283322267487233493383461100021823069519448837945340336714604911186378612025706664422886796754528644454374248073823049660806214234503448149755863287633867988170047763046688732759153296756344182508649014236936495253461962115863347479229378707371926677348694700175602294333411833009976824569776872599746805637571478995723845706771043708920075121606226131606718104260458345703276665740224961821280058468184008251880762610099211295533773031802435411966641288402532267056387861097425285161170636897311983403541159498146137603064969583493640928667169973933398895334381991739354297999225179838514010174651559697700012887571171692002491381941187435009628996583289848579160207257485830104180586316876764045356571408501794239277529511450777772828139868311480456788314740071119636475843740709292557832626985769284518688182828442497418391037099949476498162251104129197808414626392906091540908837039035983097954220442614525013513526078436398691480438282001587630035092191088227402668645640614934379095240363704196212772250210802447060987434648628924048966780393369299296776776291076280759038807006560838672800874069447557130837250925004834968993044739341400278060664247959236125446859929097611230455740778741739660481982938243591063640267841490587776176976878713170885957247357730539356169233936779897800952840352587256857977137590312706475570127660432055209302469683680905708703922973456218100703628331165613180637646481301392679474502512729073831733117542807473445878923467663643658593822589741868441350281446543647927195654986072507242631349049941488092992605774586497066568239207975844252148644330603997124783837702311482506354349873543217648344010361246661579682225330951665599464068336586637375078365612443670915987678731392412525681788592930915740819203694051222683338340175242337726311487978001489974613922448176376535174375420463934961533515205450404790523802342986843776900908246616171822723551863713007464184761728389604395703216380680448791615328404461326957724460629215373283165197788930857931612202912902765468290180763804021421565420188338479784932635180114331744463580547527176987368242094351412158330978439093766884934336957577216714054823023478468774788820805576624610051809808330418057477183491480052844408037842787047293125670623510150919457820926998562560009462484877703066564551482541678003832618260363721033838830728417785642872657263496940250111864758337570476802127537324205251104204481602541044855944847927737940776872325306678147954027100586022873868283197151205611992062385646179145075885635106397477023630305841775768378085661772156931439485621260123879336341872685478194943499222354606534292960332363288595205789649404061693964281321962007744800656500635465431222698594942829645252836562744152116862277087323111754746571828766250869317458125551972097129252727348424102519573458372942202014046180214391500984908414765924471687774830740616301106280387645312357803638323950605904632548670301996339172993664877660964817762755321451460154465272629565166086879190741502993584590718068426732958586792398360510189681317770387759660450627302837904634571399736367029923401265841998679384800585607294313926666189508624861797926030249240387298974221876267388239452396002321135088299646477585117880272950375310806075972940455979963982407667587354432382483584024587415054116983917186022272334712230173767345738326378870333257226983284407712761539003918283971566674004989582923248985125121782656341247874639351503395348517491091613112227107923252658594554260739665956909768430339224082952790337749378761944113917089215757037315382960002764482171864582390851493840475253623984206050239878079828387617541831198630123286460791293352323828561105399327426436220630448904844711155631980045869318907732974720586252741266990989837841489933270552091159921698372183432206245671313581433789318454933586655985236281145388857048827582445522818314862236383432324888876872906569033526388974129918765349298341763190771199279403705887959762073162958428988878430232694971524726612671904212824941165345717148840667582778992838782248895491049878310663462650181419839267602574063352637292144830220537750878381806159570126076535125630574324212039537629187506888498955626576249578701033195095550715542181583836672647613544452798042874429050453845463237679617805841984396082625460268730030102125626823666138052179860630291492370247500455388634853548455749773899833794738296031265586976747411624624362129454444977491398848890729945716740451607699070183757355451949620343288569545806723506496411864032463820439868251099006214704465282756288891535589414092644660368432212623344553560753810692015934748544596525139865132044358842919334514560522007202190041279851892969430888830795659547163187369977986954382691694992824992005341704640587259207939611730667549369011536462817621368759492036732283663803247535014019160213821950814269526928594738227644968162507039644289887919826132401571184514078436755517962002191188659687041094528508593084746302201934578336793350610286385219991265362512830559838129382278146191852824670649764953753406902851086612072935263469497795938241075910281193396847485693536635227758195649397042681140817199939054637997054218617890340182563303468137706077118538945208804529528347720794522331490865732233572775950832863152280177303406650931675222526447805862392504009009052691029301915933255732475739633925081111924721588318637387244741633983032721326458701396834846387220413303656185887858706786306233603742583905254214759869667428476546828633027468987491967487571514432743336646877530834079829235775815374458967701907607261360332881978024456181969501262927835311402486260944030568824728247495358331735395836624214682663237654945215287580607478241879057271802981778746461248285735777367090852644462739108284915184308987680925003850667129454855338877708483731602542161736443231549874831976198950604480658667164287527677724877884844841162658965579107864371392124870996340632130060409222001842699783177430759666917173458500617714596289556320535878391716465235752576216787678809591895056065368825792772210365906122635097749923016378070703263408020215705767189690190201898621312323937725488078418882082127690702100368962126625511210606544982282799770200792871278465247957190646564607036009107290439601017870578639191370086939117896449532948449642957880192162211679129049658407683561102097632672265971326764466830148913195323313999835440452710387863708935217799328916991052891283279800996279860282853115452725395107711372834824156467399085637314507891194301716513325309402184067778245116011869812557798414428716054799856361582469340847238009741554361212791416949654234872383993189097189979935503417933557170283654723335149876444684109396726978759487890259729389025352318349193441158868148267682205886239465672741630749594909697274005226237082084573254288905453357255015711986827769325327550186926989346984587432883350103083784986946122038131381879552916717659331241614225599744842401947007346849402363282047255455275546699837362368512150369015814806728525534697061905554346810064747956904273448068941283521040824812232129031003483615558860030308438509857014052212297372978917796535364074544176000990993990323343166166511340363157788189287878651543097985593005883201212376932274655093510409241327438343298583131379484899346249433762210173762057018857926716220295050574427916973527038198163372362077635169248157356552545764415644923929455714012015270010575599717009972158043688923079539414174684846214008139783680084280927651622427261994983219335544629073063768048309629319033635666316851435633960160715197698756952253694442887511719955783521077805461692109775230875829230266665531182546544850314394332208832625635494851798479128471058943914278341462392601688077233499053846859672473274419235700758131828799844893278384788273219862552861246822596547856023346497753055063365736574560173869624065657437752920496568495504794882754332987316920260329959444521742504706384964212014165599839387248459091746298457982932047880479545161315693794180284586283377995103960962907111915748173156809021766992951430859217553164522240732308916327432352084962423269946561404891758903179941008428538630210756063520986925252014463316169220061889106319233631874854490695112254476000605858796525960419329520967834052876263215799683637458586718274718126506695707350977979266790125218984800522776059774054082005884937241026066110509033212504823306438651813348979266137332608593794381078960967542795751276201859932837790066777736863353647324712896037060663349267688942694431756108615728047080991016914849907259875846872048262293753751120839229703585643089039422490134806131522260030659797154101128167178261356883383800334648024880530406809468019920958856068029242135044674758066238915326032383115398581536567920270488799017796248338433724654156298879953618618750572233386064540922986636240800196546091786465803268474273301396499575180958665003507787416046178912596523555853594918791583292340694506725913631642278141703803568115003226943047612325487992791611809768631338116965641091949032276035355335934483385387961265056391352820003976634565373217943169024970218911356938375676011506533586802864979702393005683199656614859828652599998393446390484456077339871050539980717340957146871613726343553481553428737820045421041655660761379299306641260595798014036428128664451330655187382835105085396429174447710838569322450957114109990551872191722941551379434625365616298878197661615050925162875964638647402785643530980436156866575836215888367124581066775845418105857686436107477309822958484889972868052905688168898722218734847752502409362334464839967408982755806452717841765428962398369757403076912758295646041934273281971951928937272248208345682897165014329385303382755673208260892051010131356064165121016536888076613180857708825161238707236906532198614282765731720313191031552954074594166056482079614360751028377951340096338532225265510566259717210726782385246788559237956319063066041242816593213065356595183022604559282045843149313716382273637193629385021926145632372386106252906753491271046287492335640948854276940058204921482366047116079560932919843146733203171215231700353094474233120764508660788323663450596237503555286272678829092936965471720211743150113939227212882834693200810569932653410258902705486141611552502586823958445970529196134616022831584445472639827417544110073260025691417767063152060444232115689934673543013429022445628811034364518329531568422156970309389649007115325468010732504167387571480413881246245154461161336269010780802338021292519905308776305255289320621837933218441225985290394000636610382208315131145743190272339839787668207851370377624628776412549845267612587734055602542647700384747237081903150183375265412418347418076213109437471405320234607991808986080970810307353831742188462585097030512539600864893597038782279358592123235486176360289922460614151561462789657609505821798091756299111568981218396890885062854885292760204357289550057744055390060884866343174299711825027168707495954668858340350550513184131766677078775204612785169220017406700411548345479020484103512357615472429150915172481228070071424944998950909490027313987209499870322032330708296040496514672283751422453409260295886493650737117020790088175748573380443268220485662458512627386229161367059256259815088177775136262480592913838162114957294657930999181537546093695714366854730513348968386474038422823761433680041221988995259964378824102172493277061135545453724320393957335610254988620951665316920058130117739742336027101811120519998360944222458089696751692745266034107974198382690963727974162618892618297519460321207026237513265343557075786105031049805864737548408582036657511636328156044655604071786727235725980048131112630984547895775902351338285298433715280975894598234165557778649066656975363828401250291860587074013868905369054183380669355143322412043054407639450124022304295137836988184264705180505644483836977066202792110296286090467280598503186127508872764487506353432064137249817043961507962976191115427486263452135928389834634363986965241872293998618209432692987805065148173141472623534434052774300604239515720312421251309364398288863123134964455151092064716265921866409167579968355202971223926507392134044283008200473876527308121690572296737861098411865484057170975838738486929202417607878005919252378481113710697879020077445715701811739805296251128131651276680507906649100483362515936887011070293611429295570821558242091451290398168128625423769883081257789640465286951091908978358894699497610717921649981099968261725646337605789684618120042655746685281262432009854795704480624727868225501238873430566872100943266643405350854742122395654011940743753018908697987466900754837634935651426199481754006141742704702177631282995584094016471531123939014597635968188145953187868188559127529465515891315003525763040889025130391790089661856792689366066249878083276829851462160389461258766024580954613493606521750471121960749059170106541417046473911396337879807428204250352045478506351714986407171406694490235234041600921304074117984540147628768180723409661895365970821794572468142749153816538445484673583590842999590893206055798660871147127130624573020792722830387594594291252436298280690884375952472727290232011767253579895278047959099138833670915466069016819548714236556676754220034566652474415584758177191367597917485939058882357445118102748655137472868305500217167328032418845417311532157451612986036307685089762896978267683201351818687556969391603797826953346380506674252941749505731017665788847203237752592251544445269573421520587393157313268142057904286435496683165732315688151399977830530499560228765304342843798070537861301331985207811319645613154700160311771388111409329791300567204003109276473958248885416189841764062488807855930460539669882716504556087495693238458923839668666947582236512406341598575211788475092813799244624636274022685649931405815423984343210094650874897535054448825345318852316098129838659243457515713986829785163323177082393477724871836834822112646615721300233503816470455239703232838641959320860620783470817173686955489648237273322715504153728064607233872839577141141461508029524392644722456019914123738508999021310912667696387390935944166611785044238165680291511521503533704333355640330780245646669380766020195919987864499393987806818594931480144090676357595471569212622295348196555179437974728489463105273396172577771233146829259841109071954275397385333247790167296035686900079689448889801507701580582483785941238238210324003356748018476258302359773921879407600702930648547508880240032538342578981808107288848767776117255345470889928855991689340486802837722918822997068542054184927725893609609553103504255920811086230313209502596335822992767760507403749123068138220673243326629359851636835685358368267280916971305932987275319124635848542148104066452482318170385185251181864127915077498734807850909844795602513684751939720649621003211619934455083499393950667359787577572488578577292098021692182418293487856945898251749314126050367821597617253872188023198655802575903329545311316810100682585367800109294955152908315655797603158910982894779016415570375844955806874209709210112432647793853859722313491782021135573906314595461959008974661435044085847562304866015400505302453840081681027074704340985800150899616203599866841438992868981976863199557439407241209107278393953712536845941591681544171591600013372820313007413708482508172884107120744383363915702627714472298169812618232517829439481732738248379667042590856044210127416080298521983287629805581910032098941182622261531382056408674190582668892560165608072230748522524066481961737960666937184865686429331978310888885841182450722978786158485656359649365833145760990523583073350187667027003237717873094070420015321828345032381582147350138386932244288886836371003119046627102460439003616246886371744611824603729183879937344584660143923623089286195486193098847076599600848022267266120680043890442129929670045873190458628185919768981452831151757595082204808628158198974891244347909630852509059135058013680428392896877609427382981039598276434242925581120827788962371807247659394129002353550378104040030460685770082255563997240778243173204781330427477418428344278274409928895326078133733168719147645246968893157013075776069718376252935721506873060771542673407852102604810513788914322047846296530215877849108289309005615597172307453382181844178782228824952429730093896051929451249882476654473779709799697411854368852189365872787685866060997104949030276909204122505215575674045084750522702428066299026278248385457189616212838879612643028759302817223640665061819198613700025260086666186638575669320498884709293744637235227770610010634634829069668500282182676997375339160585464546441381841161520659939877949080707313396453061528944696308201624741489303641992543349191154627250712697783477667296798529324399034105054120269451207488425048938709545895480547917684329482988348003720572352211418501521463870573072861230796240212809456475507306120665273229795298812534460552324569045593846866447691368806997435430689506559415652371668404497407989397131966266388687991963846772812526758834316377358538603835237520304445004317321944677187625581891805934706241779353441155809954913311096488008304503573775044039831619547668533452630918072433045918937860527633921957041611726357579271355176025570990370724501325455662061510040997140946447974249889432097008267150152862762649734092160038761601783802982357020286627209632475209928312156630901111850002312451714147383421885078272616291382261378686557191177105994320078466410528038160332559333627832572766334080503146369194051642806225943125931332190531383991678835476402934533080711662509939563299084925646521765870674101486921934034210977822090033142051852162996467179878891657447875442770902664491202184382685393329044128077348541595519038138025819994016585993594677485889948460437391313040103383187621327121221830384075947201619403456295051644763098192333758918495810365787654863644232552042491581885367453383728236395212738477140000168229039522739537430965954397590520461284317556741800074456178465971615533697781132028199487772765034796275266291513176344992849945828792626622946425047471087625179310058928276347692781246697729903973502790105439660094569827356424728866083284044593541696317720020148153770297649988874950117805977355238683235198985832445426034442561727679949995910251119796816611992615918123084515409852189241636720870741909788080440716352110917683098090790692952596402785567140166530985253248762030544353414473789653892482439599877247135173509192251878553189914851609507044582853248940539027099972177550196746370591703545160983268156542578760763126882749271373477476923484967372255667095875677108686562506681814022801981955898310538392317355160571967699924331379818016485728116595989249033589616254945256995513228720509265044407721504108978979945804397483316981221292004889757753624583429297215026195820986223522501205175122579087381206425064638676892715053325372130905075753110658783091967462625966418070995524269067998354896768989082131259636613675661355934528845360696466292286617641826658962576587572380737148806983512310768175421342502010108967267364686395234353763063532235272808133983301497136248369681022263236356465144836503946207074931067152405253456638740651253129747088012589679768159140977645872366855851075456273618431462176008703674136579862092633331808504437764347397503412989226906497956792216069195906060787495850569991093564483638861987719437913495535797943790903126595898821058954442284632844095905190428019529919083950986611756732059016531579967256795925259395816222162264607921240417638205334969380761677142750883160249963470839012672443318801498548703742158189964031491635086603450610062351152236766103150060002323231205868538490680998441741960449132935271819252385134841898029513845182852336719813262337353907987123220874432429256627436366305179961541416946398006027560697318375761654140173495838267988158930960437893980537849755406095673013607325060424452175978307173549397136056887473682186735550639178723268496910755771610218840024281452179065850476801729860113298689474482791314637504231788136966723104279103133530317301367587280839117470397755108958977825636596685843331860410369923281972630010897630222183530336422840131223340001303403680749240294562522486875620495283080335431130798978265847313435758469865236289065038229539105549018517750966935449131805601008737700829048660710073822036177954440652444171436500720428548793591666996521280705490253461442297091496478904589651086096413066771681406405840995386345125044871457636715221194935233416407104715858701339398546348028248516025799170858588777632640328802773791743237130256263867513155789929669153464249829012151959019178350718149502623197236891986451679146003899465095772380259206580686685004634351698009289745214672815209457926298033683618177809829359271300523173726017441904978637078357331293084564323387331450803900273740633218766826276325985932005564086534543636808054208163197688026507588221684096252529995937981888888859767053473907097210501337239021889884144819111979541627841758712377146827036186918746365090759830625664971487744785404303666292128863647268317031246118061408324413420773372430615001624873666106598299192374682777136640421933754239300950696377818656959461465892136919431172416431782754005239691206936364416979869261292119096402581475916781187447945855227083287756076633919228472966955267859010805812043954543111160404720936253826165832620641853014229308642876948701738123987269718514635627033387476076292381437434312871058156594133064391211638725191026978626983068429732821947528968616375087902964892115031099186819590820407053784450920490474421469867219684096182510661139065587618161344527677864897679051052112906667617933811124004714467914520371148406344362117903305663202848515484389374214508335536477356136494452597921495924709384633823608969837209382222495530040207618382208486762615246718328727333435560753094204342258742258559405042279801570137428920267784920460930787840737093511762429917306473774465837878572788569091710055586754481373713892157983475155653071675626945985124905296654441303984335224067082697011864441670347541578472972227303130533347168672280680451590353894143786312454850491458279102686150620949601224944008570647985592503386964684097024693009049618342545616254595939572985851611152866680572908685158460127787398920911312612844264695466262409503764231457556276742196869736577321935848173213623500137429021701511693208060324944787466463966682534031297303447748978067922074707664528479252242351854175195080595287636221661877783805131383040647553960772989420676925361445527825666937410634962541714878792465070766914585177462502360949289710425028403354893484496163311891588315215192867116307542220934017908931350651184980198125439355504449019708744576817982440844527567248274489659304390635546378577267232096822137717679223774483788114170643192061288287813072527132069255181090512991694540750008790307129165753056160604513026448850613852165927900515742945216766901054310178298111710849938376670785618356067096384119908364476246109240614502632719064132206675990061549103569367020747111748208838244939602676174069778573611374625141385508070825138113748137038187255998857489902041417496860197942980035376031048831246030050951895220684478306369163167728071730141184451156718975798024438973183710018372609855272116813337841023396240044585107805205996301019103821752058023848130307691904443866602058504399304657463554042119645328706124316851006797124987845391785078658810621222671432912055845131678051618652261992731626771256145606028675925854751869936656928077831514714194965429447122460919592890460893747739910922998667488549251619429481311450136285502690568444214694620118775268129881441327603138944158840533520841229457717912035360002845717658918055417383701985708104803165724753552196532471180257788909586421285758907685226303720962802721266911155017552725525618373855587408668749316892268207214044205196103279250358775717685213210133923416595434367532239492130914293768606108372216782823696232919105585906065386484660955782986492967300827080306406979453775157151270099346582045068078288671101822486608168487371608699571137431562314858245327290059056990240157722476414298651998401472420408937776196712522512651329548032900580648069098155589844089689745263613888181718973823337902513529217761201128766365847750285857172615135481786651745869830236931466149148730625427724140862755316371557863083066950315754388672196070321299323776550534523408739435392942230228142207061297348746335396673496772994858850150410316383277870513533303189815562224436263289860374018769436948258527564273555208516527127356338052083246608324693445661047585059498150935145421792296428218241078083383461701837844897173002516092694389051655447296296679391057805880768804920811167644123742340600870895262650965890602285110615841224349463370280083457608121579878088790831139737825507745851471749518754631283943403168452935781136596168015685486792515521940922633161224168494584060479362541411968181724057515927715720834832345434044865274593975561145878949057254730628048165703499837287090240961570180680260003042069148027588461957487586853928273076910603128162377022825259321712409811003664398764956479807246227471281836318664215608376304055382474288283912207916210295805087649898949505322623564600517346134893443750076464063085570805998588819899541282908620463549597646039053059763455568315513489365120432358672605334341282462852482264309223288412535887452589832339301992568831662209301490544144573724644020199334459165809176032460067765821723952650267464242019953814539675232476962760685931899319269598676902589519741967898412421219871415099234761541540643889476270020457611181602526821778058263440971453998605925133739948256758873791436979446368633746332184571630884870243308203614398734571995462709342509056733928525752902002378319421848986628907595032053383178193792991459607065840890555275737778830230184486425653157801091325326973531654718464037278059277783387724866778870417493762997406007561316332793293529747461879734862150523095191871607262579812609536172431961932676603901757936395845884227419955052269565104128635273829277208310824128299778001443008599223369260862124940154942606396066285466568906763266505413018422909916304944203403606999264483116942334028883249042988869045105769895025937481231243566119630268732260647872240363369516931453460489878396227231048171429542233425793828701882298810741161427588801295349584419670190525344054688696438954053117031607486599755200097466689735893829168098993682459888247590717626350923236379005188166232065062708591288739183678426949946947291273659626675837105948770404021144221913032267914954894490860823963726777306448912911455597901446500020861353635035427479432822535541340768492611436640030063045775101812010042282988311218368473062122858564176791582910172984100490878691920465573374932892276409658480945491839821124081838454584930288755211768955841787875841417858014785175121535693080613926216812891501530126287652020078662380326869630934238449923726786570422447587639990771979288181328631204562048162910427220558837615072136955950929814206853916977747622702993955545541083194159080446482679980224309615852278080226786254698680354435614790523001805112209509792591099368931280150731233330525686916479145834261770677764513967507566196651317825286971297268492280460179973489431707935602156607816931898423770028226114681955668968951153768406402294079936498034697896573358982342060518849398481439963987350470376119955632809641706746059657828652821851088335819658586875275744968802861961878849388404835554046959382246884668763613471798128462037264046880985155839149785210519999701710405032740775127724017863532864514203570301703880205268064754732391342482222841873136796790483924621031960944603768731517140105275577529922327413632499594593494084915265073537246252355311838810948629175237222746168770985707569218095853282803706005437505047467556059893121237281906701371781608575845289953182464115502913042469485984644036831918296747541994953566598295154473494448670359624664867803754095727621680089586229538897305450312296798135341323986490599413723342753081411126027743416710631844833916714997476298187851852346356756090763976213912738192665538493885832791775328190829925774327492095099439879490299988098214648797569178216645649183292187153394110681782369137024839100805304785334966017304614281006516469332600576196917831380990713984309488138263436210950517407624130109219080318732351441625359877052263273100567176120144742852965490977777791001805837727767716717687982556558621454678023183652480671431717993363700127548416441873430381028405705029837520948252161496116988818232603338786606514809208997906703646788861304243140303855443063606558628935955608517759897079367724127434872286408396221404652207644031168951669574357345295266655563841248985026595489532187332724558506755666385468954212855693640593342241405522350147685038613102657952277518342163257822474729106915370817938001117852250449885339665234084419688246004752125700229498650637411977320524463480191940250793246340174790364055471075592712412399840322405229519828349515191193367951913309981909104901819123979531030671909505644551503526690368327240240684890167356159769315387535751061985430161467358432132878005589349083985630006212747395435494652632854986361058863752460510293076344913071541859575354392479519496836103287951205888861123215294587336943357346828963180884131278712556830068163892008557712182908780954746824284837624318112223874382417479880132161344614939499710750576108815477660643929826503976643205011221259415898575324300788290576559519994630100425282156784550861476695300917760156698754727776614507449157120885569966403243691688045636764255241211151320554679604037938328347491592153145484700887700292660595901348387375355527388816126081632447217725125751435721770154474710076019262250916455152713580314158815610666435718741368167674582705607490367526832981018793640992281673089170859613281630402422550204573120772718003777755259184174709529160013511072208506461288381779662765937296328367064125482707127011108580090145557338944571331485746954223204795270743327050289546289790000186499958606299562474903184220160759062814713960768815077592893517963715388650903604594738251819600981291654950964209476899026805124362073190492407267273819066668341230316543984292771342231192469206698626625703707199420105945229013415593494067446901234936926175562798365514530189576060497030653821356702349917043758465241065544631988638417616716645226891224940916857126335112741663626785112316165078140509490679750726262238953620077550885810881868914520769395346111837019012460172536005798955207431702749744142662411070157902434382188355850933255566187320442090600038042783646077380209746917903294656218118112292484148143172608321638733847427865729053330777942208606363618907228698884734528697353417177625116255734638011486274497526984755452833917678068736199510780274555050344447975631605689882918701017364999167188397422323547298798362546775403994691305719780516712925524102108435167392517338605678435938401580940940255401957353254908381554451222497840623003171273065541940744905181320942741239235421837596832772607423659075581257267169385626648963326566089677202704968197100149434092494351697955147115309258106834100341036046342223719344089989952963362495485327759422170678630950042152517195502081643751890778991105717312761319575704318401704623945410380147586983337845385798583353696756055250448608104854006289942280018551285318842552810331075835487745271978052294907398431366890339446179691379254036299292826099185798904989905965681107752897959569104709288142073595676319211680201749726938850057453667498537400952441397419331534150979193061284817252064834086248087308097401149114444291753505096910484433113092117593528049993123303530002452258488150613119257043088920359319840498448935565940807829177345302603718087543072532943537770750202800308899211641979310545511880015453073696733286007180072711557893731511648827248609635145110766610999974708331745998014782778451470263412931514462364113493503629433540476059644287617377069800387212404571137958173941198048874434427358954421922273679695733023835475172108243390819508556739515136166797877419444374468957331353465746390225996468375294034036398178563608055389178430309423801994859144973178886167133148769976838871045506930836680693210213089384093427475809560261433956016325571394118847366765496997809607745110640842260486730409295180251531877165393218988617906924034598692451905217624682359752734521710949292257530039903148681425440595490495642986824291994597550713090016627765258198326824291254814988456727784806118776875106222847637939008143262847502392334721550581215129121592589582801341821701563067639115780107741760754612013701730766611673719396776939900917463877345721619300625466482886362893601395293497157045947643390351587781501203917524765316544536698549507536127941337711752448082938387868393492305947729994794136213658442265434800170037851988184821958290993109964452208136116965222156514598935341157316352628870366555822926644490084905106114039114131044822416948377088622123342280134131075450151057216761776338204025098982621882252682080278076734473137537230019601849271061158242322754526947411011108460574131073534009297220423493182054262155059349977572117050402031401075410375910741286745650165049973906707745560836951329870237474194525049829465771013826695237350847413555713800383631725450689124396703165421605144533558659749400461633088805741364397754919669165813901467692604485450147806334512213642925936168031803324890887033530399719567815408053755039596607083337590315099183519342966370234546723267154186218940956002150801671162446960934694512396462895781826856035785189466160374888846945835925164088513790448100345535331773172339759480503367734584168929610577010485111523773558759992435655163513610013643311528546983948026913972508100867578073385266825678865440336580703755704823584596923669669524168474294214723014276668361662555704993634134837551343157387800023726575925791561967726298739432626358161247885286820232836904071224873740643241439926528064874795569835626995381321768428816514119109119889425004175300248174189391695784200453733877773320911276645831698480133781900530584085744783300414936789210909265415419711041002105979430830134710797772380295394236589998632093908650542930954344668804167340839319064042371412852371143495285785818763964964195465750172764713616465472919656620382927673432247102529823750839836531963220497331198543823084126393570314504431487670804011359534802816533845687625411531537013679317602002063308564787192656285122611514153988922109836482257043129448792459253561928949553344276366026881160098894972868197124142846862184066678174981912647619932583910789348823887885434973935825492456025224666380240577817143499219991455016614103811399099272899218572967299358518188351457198678108779879280904258771971524346181616480587382281523067521552054897066279847620663643098667929095201495408187463337389183410143323943060124216519371275243636190678831746655234828195471091883892950703599708960585547806140974737959268540411946384495124523023286038704654351836742159392615767986442267162383369547773266010790419312454440293037947854833970978238478133142715984606886541784865672639362418471160781483244762178674154769671277051384593499661417686142761566021501710727351416036424048815971989190380049155401791675776620427674504401785728702283987554429165299696039728579437299935319871805066393297893872934275988361008057306704465729173078437747436615390665577371936386683883383199554167537907094360311912378757453645268557744184500564447133864052252449237864096575400534761829533003833198550870810462164327619561864241260212274924522357333344008828945690951221312173024248010131198585644364772110433952772920877442803832317261262029745971149834494241426765639116332782523070413670391873358482947462084374210034293806602583652879257717896481995837056970935399748765598028025335088468338805401855119061063651923312193398786396657807346433364418327599851655887429049578809868057190540438154334578306356807868772875915116703583814618073738320203716882873230252144375264797501965870568415456765392191015270189306305543675637518548007361925890089120122668196637062222060034047472221287619318185087861607234709917674901995072631595933682933030730451964580527283059469787488558347491132775141662391741576452394927595914252778832902474973556582536027399893616607038754387278742723731047416680999034766623887888618143263125296387477720084810689762349525223603247229383594915740600010821077685139857502837084779327342181342441020377153222683777200066874653243373573771061269419507540775189601379629576097242553537413881056476719365422006042787693931808480678906665567059592216182215602674543563861945020227390052763980662963004366290594223368198777062262673964479901659781143885002189038092482069721723622886558623759724148566546123982390362437134435890478347053059224600910815511576748542233305350716387920814763312371632419503331462740668369420935613836494273958186798990730927040769471269498083128107894948730820021693037477203381022469777655266543009604082546967308280323406234241228749065779017227095907936117857865547377720408873500510253581443139798390233461217975492955531134608572776154297281392925051927592611145732033190198715533597436379086855706255766978983111822472865672026583101920538611347556663100321742685374538174360331112447025285841802887605148060203862460345288246847559363768449640259018344319151157926053974888702832179985730247959023259825936426581294182918150456930570920432101060465839345020509827584259734200358305756017847116976065316990354301030651195863622594955384581207023610081270195600458746746795677149621857469742836203582243631798774305181137722844908986207535512960740755912153163372534537081995717808365254965414997237477024641064725289359256347700461048316722548779264400947289107697957827176564254823025962383438585196998320480285116204136535647582792354383540142293593249568727049813462406617292957573203282177374026878243672772419781559949083306906632266813885653816348649100992327783407718820780691556884923154116957147625134504896554430570933529063593063061782236481014044407973498420954994830675981246575899018330616745077277946213813371103738209132368827158332444760462636799924982815454198177185322465388873967386455240636951959613497000158306243966988715968194243109874065375785882635968205671535874432835102752427171068113489542322456897540512710053270023317709641493426479581012468316167038360077420755599517365632811651793940539303091241689297829461790606334618465439916305184078019233033765739406204126918234609020746767362215167280151690440445444222765553037216891171851729938153378522599005738033323384222091786997203625578796570343097093055474147896734694749985695440295436450371647597974653045724364120982224952142046689744105712307489804353493794568136530047637211902174189480961888891999622996729479512909764791225147099397530478928135541340141726659799825768922945325549295108604072339876886248927807972294213626898105930213005430595969715031184343983920128508863771240457086555473902250069095268641767612628540711139086505465722823544599876678491115888487158351063105061679666493639501242050089194458225227683337975269181653579961666015971129228795153821618219639078428082177342543805186131744588506024410846890995956463542638575861055901332239885984389088257135877903987551870435694849409955519976589774755904971960767321335016821342160999445215757054402738228618200087585119380474464237991145379069804613906560464405190649518210027734125477287835546634773409944359006841570484418724233525676522114469901366729889733008259344923177461553310792299560161572505254660816892428255312870728126428748785262256423466736498370550615777109866089721727357396401698631852535614491646017096508667921435695353439246770409683845217804740205051500209024680017684060589699252434880123485187191965788414246981962245750266343873204333868079442508099309622447810811522107656156915184244538498392258858009043347952581533909462441457842940001304503997293293294884481543304748239686662068375616126447022028596390461180421341934897037065039537198943432364693665840781394263626822864131792291385702579729168284585601627429372161245757728872821740547839650828109845329581116707118324856872616538727537009362484951201780230586359327073665080891139921344196510940264907408719567932988922362196931514234496372957125918851541722153548743285307699008261568701792061103037234185100847670380053407268553342266903802281589705245493013562818123625409950111074396719598419001699674800805760580879997921932604176172030863732030876732059298477301701553305775601096770260348215613107650331790347962578597355962055651303254327554346488706884517869763189789984779032201189798188790698121496790691733950306967687622501763459917061541256186007854649289282705350345539769338730718869409136920013173043490122462550168382446116045171504909966640301763350681766158597853074391187688943347266143097484076568535436943199124302576409333114976683839224075821017483846076164783873432119616083172043968166452995256287890431186672867391136389755605324594072129076986166407685272161673157163431956050273024162702075178191659838133995666005374529525938639361044865732372775491997814864170232235407021428307362010426763369578167374245638687942968333371450076659976399449065801952415938767910703081349635260031535565326325650152384251391722987898398557048747912057814682014480909238233964982356051242489878651506801726379388856066887051770438098810199559977680570075068396206151761875210431599067843232144978617890152589996636251267852814308001898097148386867492109580425722514930068655345346557929210154629291262854841409891356607296686778401326066885599260738030462947787684101914053973347637672258757932578860953157631880544843266339387254125397744588105710788119569334303633864233054346020345452720999632294320270536704585851423998764150945968046212632877413716756017797083046972968082664135048985191091266728356346142521758207586171777872148978066577265079195623290023535734124682993504435434347119001839303144758041473234860342079134753922349862263136032767896039642836106910444978211469148030426616895397952681773867947868529796231667172890640143816109250026868387699601449110378492868172344685793521266275165566876552547558066924037018003802905218222866144934937204779621172854057135707977451165324474515569204269107772969742484711945968827898156668948206335048184409678397887248623827595049870775151092257281937519259079068972872017451062654763300521030093149164761298741957300884069367812907218620919537456253668879995722588287703229248812889668532051000640096392077972783261506081835932804540493775795308266806905478526850867398124798848755706308021457522440225485220011561629261010406854360797873914094483071183626756833408555195398751436629759309124756540843131881388911006803780411095150857763809559574316071819464737900198834125314833050396924502284705330994412928635507813211827105406422476106824157737031747515635759939783138167416568949146429923210114872692758173499460985119936019362416931539630459621204868439294807098609319243009482906907651385068622554867786702135206737434902253329670685737181507473338789331975248689601910213764134657481158538529493019187816482505343705532243772540408389754745355694173383576846026797297856351686696067571964481905113901607458369620058406244972520068711013708763494180998301334843021584720708221372915302133491286363200914838670072150584646330050786381692755110644159662080847170507727260095245112432712921024134157410645122508881259572214764298618229271302712662265538198217379693649175708464941625908162540822222377013289184968601592945976572074898179069027799065326462735727131159142088894137408846857228219338192770206510719931578962957133963289857724461412370398126433110016899694858956558000658431562754279863885913690695369376259959276628086416365467036988111108620020528771979156618826374956968052158965800036795290583428858258186204892916067000739363605335000697635196773310488472479361796983051299198761197554361157289099682003635053412938055702585017165157657357618669948295951068251974788345511903208969232860147246526021442900556707107400845630998799029353562759311921433952054133729868763790625336615468335365148520355481333510264179354615174653175353962447032604751164847909063576945843404035525319973786934986507489177051219847476601751500529644180406567576793423913385702226355164711700436273284399665195443698609022516158264248121010409087503746689517800085100351974559153457725093357410776898186390017834507334945850159900348173294021623239790350885048655352355301934602523385777375303226862700241144278089446378194114831867949444256052126142642263712240052213461097266663227306195889074826947384841946680587390727366978287107715629129793752360841250631159028507412255688109205493460372685790764186397588435909516765409827319134576178499726250155540075230267141689472840337850994934121386681804990328661524094602291723228304793565670491534105806752909685516997871387515009379847981536465928171926037485800947644289568847457862771857122534344206601295947163023504531742398884792115655772152823387018578040326620556105877626034597677780919409434425308618043725298815988085763203742522422082303226829830116782198760831160367637238581384121586903174666680959225100378486240175519898428934587427903359992856019769689376234890770412863708709424022876935554509312012447894724750453326152459108873517245296440954544750993640695016277515347085954723486930129604784071188298023666398510368428325242981414464107701043687104338227733414979031860364205447649672864750010225187768359078001117730038357227978804970179793601314873500454540615877748251914510088677100541793876126848766097676226146009559781287662403930414929172415110108124284133130979771034381881009045545921181530811382023075317506517001745046058990859328953084426174839225515090156255486970214557420219415462806976824531622364396484873789416273167522959630228158242409111034085456152524482779788273181030453572430668616346336160842322551857625467876323059598370596633513733270729128112834424319108707344470636916192761895417862174693620285326202136873464059421612497165114133730744645239007785772006217452958358075296621224838724750332311094905479872260485278849493058445363803258849639487736290749199206620505009064641764372881298126387258268033414803826931970297378891177675060461543437116285909219190873388151114062964265716980619460229865027585960416632352677575611938793736879196579908514182272484785071591322742498669565818729672136260886469190311973808105974616481018128257134382763568414149942739679446636590428999652663296329450201704760720650583140619510180418347265011720513128178526991660235138245117055647036252279764350780971943620343715940674797795703264878637715170864946082714303515393295527476583085201698953103373055468057274729146977834712904852695303136958538665911337320380304646832736192534192050702915094245804774558401678142131021796450173314645154906552119654066614137443524397452346039255606267474031832220501009269108904706122814091249538893958947333063735520540351852950655100593207759652083998890995996579249990282939136101881044164788889451969305594848102210998775584801486281544145482883968651018080869556770682486221433378656447203689548998562811555189028337957801612831125592500539344461446586611125393755709304423482549782821156468716394144541417694398260952103454080336922659562825208939417719359922803961639749479871983027291817261935191163757419919229045244583033388757389135804778371916699658404425289943640728912623071775592762956872770665939428431132314713903011392664721170414523411043783426670016232385505401454209284473216176736460221745107835818435031542663493637656295116238072549866348209940282608880591340458630306752103329330175358396047237842803507066302628624331064983315677602177747419864814297055958899972926041876615007900046573992038155293418862557954322869388779948302609384720631875484355017244478366631811156556438666700863979670343970421946354400116499478055576053331980666212744579445848104034690231609674639559691258812486178398225088728624504790129092723715558270345862198025437831289107769723968162317848618565011222842944046921250352869311881502959975992178604781846006741387757628804417629155542066091824179068789728225183368719317134108048449947500958583619508278287158048894972696187298308642858406329887183842431862525555468959918499077355295082625137367791128048489480693516284740991589898046294319428850214121114880438592669812165449268946548553260658061283588574356617255969527433401489679732248863800805245362863598286733328365908810245341701059693151199304461655307600571589123084850379984837212652684442095916588028787358369674927783512082047446500570339082837383380968660503792850210389636337241682184454637643402680481250101534094040271285948498448291253248057109733239756734832297115816112657562861488671334061285798335905870479488367760340901201848163736044310985698182542785429450304299238418146639101672790615278003065617525885399659516125086449422415577484280485350604495879589571360294760237129848212716147504690544981350985182356249467534414418313702074484468655405778788867658347802041410770011329925843516881339250722702710537305644743886830042798800643316777033749567330389414594437775090036590038231875940133711291059089458909544463952747234651349906988916652099091996042657631320193276570413545528914474703564810992735599923991092808431134445324669864766980047725634153294220013599073579931297216563238659262289054935000182383158537263575513300634282785789453655431439406520701073349957510616319138514399152543003756285635786636380394923103539907093337388454713824567500719438268101189268783293554816914370535546307820079923252768487168316609524893038238350784467327390848978899144255802259720455232268795047352869365909607093367081245455118114861270564185729260946902886520348001608251204349711208995643934752575234752464055355687859039923752496881816723991170308198128454832656360582771075087268280996774867993382576407000586040097222661545297802199186384617621880700141161884366698358850876981015706769337128611428018771644014547113786917932396979227036001119705440338139906500502102048925333614023311377154419811413313172880234572936030784712776978117361175214949107375881597148821723117263485186961823963605918629625426381773861599448114954337047216281316283174982704670327773798303125713420186795632333929215793962376043737388947139207814243689989723435832693503147979121377933880818527620246960511828816220239465813054380535282572969409889104289448311310556436367233479529144969187803722561033032442639041365995658705079572387552642171284460634877055500831281888749110397310084799524190607427781205747257512429899360162312441105651946056382847858250830055940288039962104745691450169888255600084625435507565882092459227719235416740029547252367480755332923780659787608044673713003857936984583192362066488884867564982644665800137578631909220747983498692458274148615099285860887717608212090483691992026866528023780075001351865345416012321526245051850477301573522625003768463910866704312714182991911535128418917534725179985674724969663197271648882415319865049432146138233571335051674124926319208562323456649385808787332243723292886863645254666758189652042572159713691129883624369046924309509461120837547193724515067975892874809588052451610153226717142774801960999594513299143252423686407501406645396355952133344951241710074757017235155209138979443029922118091739613094170808967242291110020317545041931162618612602653817089035549462272960694307001332936551950852367561141231889271895027585849547855932140483411876119584379393984728111431646149583507982356693282748708572258938435119368503360972880324769101412709081363250902095003896659853282909082070534147464832076336396597423290997337329191518011566308400253922788587145365582291364761551997595820337475919813726749624453572166648908088862087088785605789168656912688175539834869082063478476677866563747535587943224135489641789746569594800649067521085204472499484628377311016336231965564910101608033010195183870508208142191630892405905283286197886104114509156736486547896001971768244095564040534742635348865822261553808237636217121955265711309271448043548310143434441697162149065602783967108773306651125014626866595871377237157146115758774846938194806357521079533354335411128839362422434723262372243179005215006776192434803052708845936199689735536998571484558889999219882917388455768001700888171351826846392219880813667450729172889510843053591303922416230132121891238604584907256018601148041180916875768408718483815235629645722407022000720305618784707196019118793868776986639036744917273294017107937546969117316864314842614066642941058229067244804941133132868220925435733028991974588917238811059431335492280249081633910651770935895945088644462960823968103745210249725066468900838172059918771630788794739805611334925522206727701359045585642257885951069184110108139775091315945946450797166724835877446549394849143930879407519984965234250925023532569334079231495656024071459235953281706879113162520707913074772855813224627708409860231123820591348651726554006253422946673554071263721943796543746135983867952911854796857744585620340343978386692800486551227034760747876405733342176472951319917751184984276148161262037668295996430954196305954879703747843759325848108241907408496946963639399951312707046692990114003301698639147097361478988196232100559680094929838108840173456725710346493923147863784140378912956671549213256883126318237335735900112960539914197314130036463480195975911305716900071023951295348123615815166341125607224662674713074155019963343236281082659767686448526259863817951907971697988875122483952133594052514705875318948631222901425872888262195427433678768873013743226861697734300667507799666073514336616337155078318978524203601628596761843414052834772070311163026336181378662455301716739905560971964531267481104744722149863100825720328253244758616305454779592375992026113006823242441713692855760265949078996813510001451284351062883769694912700035264450157420781449211878008230219173457601542702245299790980748326452158168803597490615762811422648181498581518314171961872492925934441163341562758134812886083981683526601016038265053152880218851161539777022201546634190933221285520882030777221745544548596869776989681458449050188128294847431348119464443320106222767483441049361640403174180244427276608830592913690257304738215829320918037499152665690786176256355684664172857950711740133843506623605113177080818980119350807159774642929549402172161544653692644502588163385045159856692680597096741169176036492179042350789044353835722731400266156357855428436016727156333712757616432901262631678681515626118870336493278362687031578946203383430985869612718799430024249506738828594876951838400381828556153322423764065867962610778676169642469471049030050038643400975575543736954910236198941544333799871901162821666354765201656418771231644514586714033943558481179462947286982038580393400823063650433995799401681940045681545994391165973161813269837012712677245700022431736233968189241531872346985854489302879115770106570640448994814122464604944026311774882284346193982521210979147833293754543836190140483333467557544017470542339538479567215653896633710507117408807406664704158311561139918825470596159757104307549550686042627107603185629906897669739259483639504514642674768501358291254530963783501202540711355811918343412736894418085740435085711072326185674824697269388261554444122955716168155536031423454961197167540491119306574918494229857496087314748629720283978963166326552878271963160628472605149974252385044068685142377156355682232937699503193007201365986478198250250406896906457616155874804980542037368231084481134725205798083878759911688506480253952752729938296106960479931251502741032331303190226921946120455631948383298996624586886822320623505234694266665647799850070509724082925037959502616030936078409025987331082144063596808575600863550234373519323946150081431699089961781779235172054581850504970417783729326161641074419350115251496389737247544409503315296117743728846077078848859818555830780771018433446808592423829883419643004428166423266525945929303426393980794076693515575668478248236587812675044395051659392963622390879199183236354255599209932525301843834026415564714621077490192828175353221896943753759241757084527358153209960119976054670820511188302540616558496387063847633840046500150625115638408468340068030689290617346788315239403593252172977304244363476145238374052569848331412403852320394792778780574508742781454306570840759179878511530521507769032957753778153780564656847359121020060104622847627360772744695932569730332592382852764829711824480182001291919402050966697928097533681436948356116102358251218843942595274840800295967213016224520218186007616432745597466098169117669067611698361865089220531211706580600613236074485631379687271720565172290005808587597394799241166316666212380871700286186948484248946594359814570976536413781652303023209013916780842088892963770532188488974515844006639586102764922380036492639983238965700392514876645284149980796951082781512985191553060373334169730420721694681348626370270321561547756665356878787732273060240943629991220958675226935221863307866313348123954192982214003621391490537310330138070608684714630445329431778452347168506085684314878586789564761818352527660625510893310816493695764874162654136287465242214756876333517725966549938673246910683336308690300344444907177566583290305921838579880302321394519324267277383160075178474551488455379975524009291669356126640931923688772393588000652263430750126127446497500203089745360041151785609062350331243908462665842164206799280846086764248101858846837051466900799611219679343491423154410550414871296735472325934692215524549858159278542289847920698425560706296592523963684266819721252293725276374735885047574635074577702171344227458084102511618526545127301783828779854956002353635484652789635594164812325190547732506864351651093882949263886247883505678543314388324604709822243972842998096796052634905078284555880837235199719734077686649142763086760878406114755213839120356737579773872714588158757394824547776504387451108688227848728857653159770057973477342595212711742851863467199719102841550980726658749511067296329755683578482196596878372695394797528317738600329759427776517296742853324451501519919693915832952920193037521448824847970069069043293952012266868497855951093611307659793491509549157748974905533790481092387954597705221148005221592008550494310290532745408013092954271647521228392565827020903693097197301624993713947947034865295352850962791023930589012324848018071513734242200780352703771556874975809867088805058979216527936828416009946475293701832835568540853221919284945522256326868110447551935311732127805637945962201627535030034672816880239553522192987722020676412966976123587301051793841035142768926899158050436504657287169895485456420432015643514835518581509208600594814134226653247316920736057895753214486215249965049948804985046306738156205025401103205127379053116796307463753837378268558269970454099077870181542107439653477433628151201829729111104112154118510402613157130796747323651250851653562461546962344889675561008290599035109989463941932008600323652051006797460668346570170905495026965329412995691123033552396343092096270311262746372273454928622352978437546132898343884581686584568965857560274481809383409582613675033916306817675606249418023315852448736814754515664159259049243665980630205348115222316106401199762991770211430744377076038170307632965881839437067816373990330601635086015871415577515028269494138656016836696798356069279219251793320804954849180390163868417446716759874329707388273498926580989296941484034849041902327832991689761669621350710430350125397200488902853958272090482067146801864416792212529031951716898005356539742542236706345502446028130206468907296162056901781579697654717970833415247205745348901385872568800302512809188828541855891926217794178063409378759167965573385432881856212635650868103705947578067184074317588443012383216350989783465961327088215370758517839632203594275549318570074905460350167657657823750251588309857254367535695510645324111333604133183451363626569950060123786636410981373215835663453389700203989876216026112478349221570308760254081894694318704284613455553912834813054195181405757303916853563083388767912067116895207221506222104456187135208379447944159013355721560709839126436452171784046217589939644357098444355566553147507374958419343028269468865764919788992551877064580537698321796385922981204269331599243747309618622101176018250846220419411695805435847435911327971940619442708330038360838848354780039097527296888115500685267000065551345806353939129630672186027986412783762332101947377826864330570631312780066684003067054993698579550409956623363418488737277288781835746573115989616649960012270557159349293155829234914680443383249071740890736922559967101187653982180390651144583974868784483852254351239079992112680453096030835928153664470639095561491508574409363175284491656457262749121571856735633903457053572234180657082178075138512616706058336276247757269313876448459469750380724143763840100132692689834455821752203619332391279705144910055949551398815099560214901337914113213107661075602442951813808546135943602769784254441566563046698438403521681777217079903485352482790949924074170199235830573472613801032303559913997707860508196794164131336858346549001122424230956254096854031945793728149845663058942351718933860700838915615264255083768191817238436314126783088668187246420897381962619956466878998423395262501800461253307667328505011597816659867946216819894429749387591448175442334655170249041646470878018109237539899345368623686348686051598144831150848555803003896338104206483134380413558267942355567798030482100870429448778172620326724109297955312596867477073579820172722109539390396027829350677395798591722313265124785953761076122691212897120635905426069451321238187250873143244240127850995258877895241945258949362699489546705544305116271028507246295667584158032056715236021461542273244487105416676454320924465128318119936734125974937716156802339769932563564905989974052139281464613619655751350347085707499515848526599655041216292189963880163795936882981909150302113120212012701195039017386827383224312489132416366571774467150211518776069728419314165670450338412642597969496227003701874727719992806753475780813045428964382105910101755974222833692499661631745012686411105241819292696582374720176204086660770061522594675404971509471773581288607710922122024112652999794443915696253486331111303373139070593654092500128713147446990014189449994429989614561066652547653368233421026404947396044225955258774558633641188062896944958524123738446978393761499925507886918676492834698807111247349865268401098917216693625421991612964835932887076989877630494860833360716927754312159454394085509669116160371113229284099083706498346381659914898782730405405054531250638247498574264335488900644538235175072034265436634032940702362570279617913191645040704635082749805870775561918948533615880032512333890390806499447724217561237428328182030211500299057024488497124843218480563598407049881280889039305220365477099902905550600180716797968646815959131138227843871831689776470241872717083700256350055602438902117998756864363183515721474427048718241349936695043872220314372993206505310476473847626855232561435710937363607655534271375183485862678099492007010201253165176024500936897775016131829835144856433859372431629464408721845153117452097894116836189893208437249513397269583308045544224516670632692555250347102412870126205134390688215704691124545797013010983668926634574796025314179284804480803154735631005233101325180032504002365514307764243343722851919035168609148272473645226965839400918355964694591518888857114951320643424073335831889778338343285251141917256503298064960028327788306733928117867505220676947103087577227327890186968740354006549114953322338484722694539248815794249389923147529882518647305312378346528881442951804508438249739704835620324527437459708377682894986319344533335206433170641857813323593324935362186077603774128139669549349822181840115194361693867712680741130934687164411753828800293883540762602354803486694395969842236030028376446709707602714082212303242353297270964861176657115934992755084208554349651538623062761984251600435649758463431519999342254103177718466775375991158699203850915633575360827795189554363703012608229457001518142920921041554230233175259774384725235923691246692568579866086051305337457086287922834131180237930640887575080244502989193803056824246275102448117728655190220354019554532206424068612561232512026438441881182073855754306096788105429071380515207100460988710404353016519863189633448368514677152099738739853378575651871541354121474916140915186421458352705540585032790151732980873019236335297536427717756698258504773145466560924455745709690164956474801146359272394575244298550234079906350919082658043227734358977441756277718454052556640833318713888087102305260863966719410405295920790705862080838766716078166212704780180250743616647601909751464639761370331166008561754750979114352979213013859985739291104477480371466914285684429670455058494569200818683870229752614196965858156337847789007462261566531262146999908911069373500405804488213310909402333252979690819317575528536177766252490760507329350045028777452266393245620061917236410627598543118397339403233888315168342820909951234460736857559977739158831925621641598107278329712887226889267083366408170461811597992010735790212288745700120592489459594339948777176340781750101328041224684234182416138948531160725070363908757897399245046133220652277406966752448210270332432591038023769758109415205440831242082460017895116238201050273378687165794432356467235403833416874158651529851974385155185590111382908009176891530768574460484498059688678246151006925406495966793309413471836625226813168591997479642675283992028523247070069002390248917626435535850229457847905202104683277563910397364922675460907563526848898877137029688145066655868415362676512651927716014140623982515879062696655528163967315433737727129696620372153647855247965491645224462954562483500124463185119097502310626272580524927505379980354644779562002087012428631726746231445932199901990568534817161638996477750859633242779567859314923116050768546693772232915410219348870045677589910862867938337090401294258967453556737914236695581301577534870144320193605074133105948102695106911838164416858484128618055507073360294389560264853861797198957747907747919131375433238382157415312044828686618766559670478691589349364708287973009037560702426953387342909479685846131175245229743039366639115986952645762714313200446465290435630431032432430129150854215584576999829595517676386599392574369455914589984175041365560261237138978817357387399414070505043181392615224308154306444481808764873505141782685915568965932815791846830711861043904058527093485235409289043856431706710688902884035147650135213672600686110016843521767706098264242223508686780326788217049269015518859600121117221476409768459195462295439956508313372864790048818471594961339870922095886657659899199064024585710789415051372052432564014621218893026830192346671107957647964256895366176736765045337316257022403632324703020658973226985972466545356905166458956953519619867739617778262335984521444473846171843792360922947413615275568574365515323812000232511945124664448313299080310057969032616508092788249610463944295382132685970719037878935891686570860546317896663600554978023129889471512941953723023137475873824492713841819478681771490378317765718140874516680349474637440139362152874682039232407592140000011921507932455753719464672857235980598995300455962172948838377558477499885346516127669396842420168303664517349588982822189967376704050603398732321133188836657424193176096065189282929363467855085639169213470240677340745472596592362287367809070813938581709195702278926892182951026973738771923640841519697918285278152132758400207678404767108455124604902031432875966560789213627497915359285691047895551341232499813015771683657061831020181298562599695863541929964526636230243997954378191176284190102443126667169171422640957309080147866851937583292084329721128480457145610512771745783021642014833452093335810794404464641982264780633652423396871801345491846631427714510314732422638777317645003148577380205041401710480888107468007883069691738803419006955768476518035549888560043511356714770658034485585237125052081671141170193410622621589384247381095980247089825254757510116962592769977579766624990910150022407334812669085346087488779432313820451359571427513306602239458170058786058146676482969261047577395317389098550478008193633436180904415500022422865569806912256276345057869743281287199847788025368392064650055036431106617509924144030246114266560459509634371494083725340891298865432489643812503827914154770282597894637110936330691381890271046161872383340571984809928330213632992645036794927309730241518344586973008996961355311805946368252276969348051015991856213147900698459951423719913724302656976699898616310968037002951751382845177466443610579284195802760439944414826137446558251321195546299677417564506869794520906165407060566911547349086154505952091589907606417463179572448642207840790603398267727555677211148612562894201577778258109184089827793127040586557973486859428369099008978002769312166200439775397515664706098958971374328137582300640306344725137228667749369945209939737592736151760622654907742835797419512093539385296060328161211348502228316415274544930223203923603446574926472340583810962760030985497737884299622623826639507353319968754340690503953798377573187862146817309219990352671010558626952601179711881295375277590370337082299255757969104966719090108897381109545375495780112031725910577432517761831962124404444747275105180866868417558120885618863676176301355091413095102323980563950706515421673563177634263254987806826660078911729938018152787268618807943249071012020543611663778332631691241855263366825694073651005289566308524436428134696763654776137572345615385355578085406772906097825761507372007918821654033721055305409745516967667045297581550467780046546216720410203586986108411493512106626702300514794006056787993191955247220348223347725356293097677986683878265029936283283864210384816774739349783372139894825661912742035596824285840475676019656578283639005051643634296241034725563266380696822901691345162546264712185467695057620342274015568391290873796553771311083394693933348240710517228908857516596932667978736735943979005080461144508437935908500468099361844174235501219386562428940146196760748189572849043405467482648539931880560908740220799647761689334383395540196739760094706364340097876076877083653144621107515380406987431972743377131859862898725443759532997886585419153554817037052253887217350051654798649304559451138750118452447240395135093723136637490759908701315511953007923715159937347515247083493535453498657477966515206820649281821890751166937112047774154211381774562822504842336623187679001051263934224324465202754970967777777068431334376201089380216771193338905413088468391885134701455322494854391773776330874479753680974281849964655162496479123097604699716784881413324093162116435025749134393424680786783568949424561320762605561576333827550884374441991328018026991550057345965062311333661134723568846882458127333503983490048305093728644288616672688936181850326870709597659718957475827515083615209707641130252828737454535869864188810788189222542443629267212590266577387901250195062893616856925814454265159933337503948887988887866134553658287368789381778148038880309190339589224769738329399621664867622771191623326374082568519557849592786513026256429967220327938105234106670521618983324057883413364273822582098452100887537079602496241034515592732706864907116452400718658480701154246569739282188834615368884582205803355675231785880964565833690960180084026743362297285298018266715428673693874815079356528839829682495205765725959302240816331380062215871841411617297019303382000929944241187814315098652212154886416444592456765705816557623925437814869022610220083136496677680899716172500255156347866851218640693484281437116133549623316440545958390093103178798576138412752456213241529285434158081496984051935175148280638488372191105810169614383861429661910436746062901967263650910597332865529253984932860658462259462638459755417791021825852955651047358867632140631344625901229484314623715489556555230884906530822408931593245348726052318297043691710673693860447440387225734711085643405018016855243115046376874988677125196834557418335581228322342705944203664032238638580327652504563747481684842994201126818343929036276538199711384413762793737449092612173284031748891865082095647339394745803893841672852190347676222571546860557634780999878951671176293567823859727116796125445558620850250928793652917215889805837257383950555112096584912248490906292939082853102671751663433400690770017908610860965982795846726969832733863703057328104799470479303797136021808955540807234580206525869177384065024722499242118581951499880810359825753452752462079240946931958467200760609330452750558162588018790702832979166657694804638822598506384048037968557851579296016975698626708371615041526227792927868232177006600555736496678477827630777001673599787138675712113413075262105405681887334626313792037293228255030897873364472131833722862178619187811251323081917908681459988981787733882393580413041823297211441701486854051891947874745551121240122944021118157454651458813044552860806388696104383792680187549426727725616371080492876504398772784686787662675498680672991362443827424107645919335945199212159311001127196040895015648165233869805853896226756809059819116033832955008649875257688592215201539566470636990819333673019328289925975083793241196862942498861099528997763239980852289794771609202392042515851953008371789126076181359334555236947903010937594949983029921311273026090453763347334385473423612693555464755729327872542753748363690558699675244244205448110924773207152497891903728654520593206909644570304125126492830859635939793431402723302749845374826204453927308411184283688287192063844455858358639113848092155509354093338507977616476648007156016351149874433820182543455546463233964811268190386072587917109186522688060256599492372701703782218253390160573233797359687347211035275076815254181733125400592469285110538569925948198221572725233934861853801611577276386498341046157951917768886354081605656906322046853157756896457111036497797616992083231504410869583201309214192104721156540435534215730192174006369172496403404503781070266272492736964143881255080360901930084572469976155958538624770134585934947552502068491104500095167511597724456752574549397586204046150735989369499784080293821308501742918298761028803558182909204582645432850687059062121563705461832154902224583963367972439171955591572105784404007253559518595232339010323580090798468746200919792610005317138262001666981303115367028326174713656920542559914994535741426214895214516389182255461093970114136134710694203757250126178511323447819258951766903946628250737827164826785658050687528721090592658883882814566432685032459227549111578749049864474786259227767600299706488924914441302835476575284855471595614836592194218541345777550950008832560997050446807588172942839468570105195905191014363654405370216059269968516323411217120472158727810349279548354414030408307945632360936530925330074817156646013309378065968483371589394433588839790989056018570128873417885236755363301606722784231594101733718572205827461867246458275948907799605481117605834472640017344933700701601196795480912961790437547998766369834416499061365720994332647510046969057534846949725359545123825828039700078589603898262749564307259178566063335986012057219809106574741496138062867540269543213306339453272573530596988052927089469701640501859411594135799531466935575437165718791130647026331387356952633955722453880416856062890304848491813905825682216850878046342717971592911656781791742579432620303823715857970105242432297448369443371312387511870351125002982443487100787604646182905432193307888183033112909866198770031334708119096474242262234575797451374802409000520260820445895114054465649588512951068206873430588041575556351495325959540637256147378194071723919710962237435444082376401383566525410725152155707147020444513315175499056365506407185357933662859458275495422986413590656755765065088924514611084162035431143631676588892242405937366992461617793027321327949814407962343181813821083056222184525776122196348897328349428977959197528905564049586587240437826175104619564981286945322735929206451250534000375872217340564741037008256613489240607746419507655049809811859942740498954577645583550736830654753884235097628030990016633676587364691260615374391037300418689223376117716096778722122514378720501364588910577199684003440934827093466123653499763015431054065829693905098082819599594990128104761228029181092909587487673120860977083081434295615725341454860329058500993935129269525705173862050440400700403572763983897497409487573055164683048291173437417795142167226101111693148884119531538619744475096197569657255669274306898450464304875593611692654805383871017870634244267042551244297181648240651477367545219897940742348877156155551265941793474666682277483245905573736981110870852060630669174049870209073769934476196596079843060084269020241129031682118830664055741560779819717194770975053399887082711938016597847884312081607488638225915965571849921062369476801513250240416931468786201511996369660178872955481262676340374932193569128559229257269062074192654023360328828425482997974245644085753926023315552872193458390483545798894136925797019687512450468633761662428461880482368727980730560913120962154629514323208886972722377597828200634976180010853169849854409487083990759416948712762084145018257986013455286297790740930410322129564736450896069182265498671375646336282154349851829853351039810477139190857259968782824731387356129093938092812428664208043327746331294121344605733613504924928592407245087536438976581374635611431809728033619783059676160017349560775372895116955882905850171266511109797092226862666169757437385220340062292862160169326140252587908483649737073888714361086039203879939015286771060583908399178041619768433635177456642688649300721166632839724805904096400293883234472381201977935485816834302739138078476566757499076208198535044643198710628239847281290534834040092545379494332292497472592232501118572734681360680372040074649853744889564212160332340585511760586919295315934242696496686868741499582872432417485197610550314606251051490097469366684315135551970279184326741304775165898746976544331831377385751943095944016933106659389660143867165734060268509494983613856202929339385091396016458344633581666896501761298063004047136682429154091917415398647050638220629127734858728975666181681552460319226773699540622999093761420872533780872555072455118114143896093418774762363572166210261891246949043523139296612663575369916726409318828024619565776776865521896582056189967189288728740555617616701045288368259792121730957850744141864526686869714555871573742379029711750255318389157577280205258454411161636898430410658643329655957671021714662962188120175278072988010351639791822503799574851454173964903316824572173293924247491352916651754494574165735415556864493266589056478097342546821439108436943143932689177305592337910696239426978593752788647407792979995550376009080287741902951695669355673058281415464179043506880069287027285047193540286599194647776578796871118622844433010717856270564739256399918973662380244752875186441784145849137566070419262976716957426189676980340753424216591792812766272984217707672991661464868915977395046790501595996781663057899946811552442592129710622532557055968048710218550238731987597795692403304978886884142976790889512094906101278343510265304449844598805067468620297411433955079726008988343103689502811402989450575464737957412175053294456649968421546364161734532807808763802679208635511008978258134796785171715563449535919341490545876544071745118609245717209427393870843968212773549913567762808307425981542378974074199195284961991971430616568546090168747424169890825634541933524347896496357486420894231874052276653652696147406431082521602169686426265278667269646355738314463276736185459417023133352377798525551810894285856569661172772517023216096182782076279101368760641413273129066614603476992230889456168230651257145402479731227204466023867136240643185883041254228744512152141313005113508566772226807562842263440231605876432764324978614948609581053023541387706144284769717964696958946375622400272224594671034813948044394846360653945049880382872410898730005652149097825538990141225062267173187348938379138596974344117929831794681834636480831984232120674955385380410294647087844375251375672387528138453895459178276802824350970212024502122632210985857671949330029695869223678580746006702831550415887019724563269209739703427122842694642651566147378707539636187420928885126579058015435522587637427046274085271195771917033984351411841618153953238262105263318854193576938454157215100669985078413864175086709730528029589126580638561037281211075993209427475894232737836268862342527209865639092164886368855238663010912723321257783761231791044581696025472723700404761398670090819709759833682293642951909732989427609144065213054530999931397831455883001518218291525374224370175064484244065415395387379369909861095417369787205027510514186170501429783828090554173388213854460348160848162881134572455625688500264839220602112426829691179478891463566571338055949391479842506988270813126069163087093829791968751810996095093101985412846608783877442141669851603902823235662250711989503549253528713575308811830792114031296622427379001671433914368696373951155468760813502490694966414629809624806135678636986586609342978236799093742188274129770637967784159332414867852461669419247419081336718790294474276571078509558102621375763465345922279704891061526151877064014564467854903243535999568751627604211784613969434576414437115767442411877588086364877793214292179419568976802785721643771096435960839455278612461420387020986654604062889430615698786426478990136660677873096249399683232921002716089260840030043999665551309911998629704084645940625504473891818829326356109203545879799599226448901945813081152922657885614401578685470595987388097798078082563029973905861127353869004289976448241101297145690205876163045467439532071535179762860282975579854893371619211083905421281742253677036326829355112806300914064117428869941605351879652568071919604159154459190237006808021554429456880028508284748574100666588820114648886393972486262873652723564302182439576240983281982742827976336098492890511480607829556380873135262401736918453332121772401427339251151168365016371258712854139516394146408152409479700186024501751054547104631898655458554745163982108641599945520738046204299028121959079682412344244465349163591701408308058443163155379608425694206723080208877136932535436342995169518307896868236180017288270518741723463346327091005323293732002533953582467259830094210446270949198645456989679919775131279640493383793374229133496642817019582176770438049642501554372672239410493285751153827312952870724753573310881189356053208599099096668596198243149487517782712284279333755764589329894365376643219578832438863865809395884413254814996469885726391381924844942273157343921270527566998571667433732958045413374375791408010620692811058812624418198686410620213060238351404202027434102807528450690894107230573163108964769052873666642399614511685246684538339149042224075613709171308965557330052166827667724167398799060142442912137695927739163097570834554418593642915454437859151116185679642768213729902665832376015914433668492508863978382536735100707848408611766539960076843561925838634715308125924864759244088546406561634235749103786922761188776590969229682836012601402121467032535591406753456356457993197720449282077150681311616605685891322142305746403450574261590656505890460621599794950255648761390865949667911085289842735509946440607216311039170535334749719040686001720678795188056413019565764113457776020565204033222551002284088232537412742354945042783642711583496798599791515613533154028499278078887801683665749898990032247494254807591148147963980903717268594220964249835678873571952971117749138791642987409930516661920293902034923676572888802212936107371367375411072773769624789171040088476893275549037579572951159420506532726438314274240655565306241166770916865753007773916013681646645644731123821027930640166852208671552028194477495024037588211608043025552630802452451746313577582335889571663540457327486653441510616910743275311085404141245880416335481385467314499558533838260299653820996097311601750853550114264207270411978700925917939900636402324749515187577148107840732454923351922141958932598067442086923726185237180597220228348522391823901782197110222572061806896496815385404419973568880648530789008447291091239489265563360040623606404165442896818543967295054778210856251686973272941756752936776101064186741860172229508494082126400875226430535871731855122038796877363664663012445218493167498287364376280708353296663829615542051900549792710324735241589781635456909973984383146839893098639585666268008096348666621108197887229157301199234446542975547139836635841432278635000225501797140687514658852921648918280389094950047090928940847747715281093066486960901389895983639571776605696260479696569575963852836178252232188122108492869978188296175000936757115053433215916461129762800700567402597992393865489750657872689565780575738137983029902529861198746957716287573160743706270556051553726989016798853697736764291456920205488647079081620185445326458075081532449241847485033950802056505619603421777250392573259336054154599086252281576934516310284710535702037716354563283396901908057928394836397262725297869402568536446521899542674080369045303736654902641012653560648356054202981674903538247078556377923583187232156912972527367723016582043601530117469748483747182985916151459603866552144515284947531836613734890215978370662503773035716692496466777958723523013442534095475311849173140420008184144264975995572390052125984614279149905897221096384688777072573654206381729011791851419950326198446094594817437715108886048747462451630223388026202219017516088617391776496469429163130633526553470018385703086484534025972570440578190741839333337188333431470590944032763043066553185031590769000620142237229935206929490579419496506590822880589673679631265352416568483883004855673515989085461258175526368859467315421042513382909220050667980195772357117681215999130078063085695931220785528093866658230857795795380235378118530078053573275803200337038342513135277377325474290534354561971442553076966233650584058056204909190972817242748322955743602097896364585948062820673785477672954151834236967857252825837512033404642157907980756429904097415769344529679835142133061421418070698111663007570719608089161400368615440331326549405009161507829297071205403093434339101523926432922942844253792466153655982553628936819708653861827997849523747181266580886347020384598420780318991408580268704082254168033092641901327665356489428986468932436365523388457620751645735270095590208494126533329945177917521862955071480396764398332421687609590016526113837760826395330440362609097961751124837656142451773670870818917922640642937885807309498221467877351548535670849958054914014278361056675404367816517360285902857881848381141992738894570491516071671960575219781901798362179047726873972509293515082353727058057315446810516290866700781107652225832298071804790123635498783498929077829951877266506182915477315478302245360828859361018300986227260735719511974801618300340317550072902200174342770952266081745915994848542722362650778098078333478274044177214232434253294272663027243584302632929499057795875051390809677970169672668121712610583120561352787663405579210696239034538537490845162778376957738375723055629940761640434520439420949769421845087068019246854723024579808411309274377579484017589122094950827582501507961190560138644471939661575688370514452140125873460351769761967550243946700605815211110623940545980705975762415625908219900525544652355025010713594867138179870139735313532226811186515656695225355549755097976945642787279546313886919621369771796954718981201634256280225173677252937665846388275821592176354162347937729479214691001090869156153328026115864981909605848482112180711895125138829075928017225759341755945717638788443103458074070092397114797717265289668028736252560916372909833731616781303012631756047245399533491234588227131077555571533016611034773859909461544350291300496256184966855761002595303514338550653222184004391800853854702966113530193441844243652231211268610320386326597211949873235886429553652169392922528437998481763005328921293250559628799455772673142302625624855381435512589805820337160248369998338573452004928420469996633341956317891195965280807383781686036958156029390618387932473474840271433844843079687463604298009594525387057276307725077360283275620119354588910790917955138867543084046578341114000916207759420838264758049490536437697517998399618797613904119157777225728803534554242503030718020127950665934381764232655223734313713875250948705914473453253725810557595662012329737603776481687670241209044080190393754981481323199506729906643713238576249072975257451759894641354243384059998998960269185758405347229990267537474477896262351712279580865391178936093650384380217722782506021960631831339752848065936119779825898919716825938864863566098573990717621852076128209307851954310393133092085891532682878539433368437127661735013134777461042325792396483774545127520987220521167295267358027412242415426977195292568682177435980064441532175975486784872018604363111091029129234588174033091979019142253295901499715798306824171731035085654493326481923471963064156597774417344560913548143391933201593905612298022022029836418825071427317828082104583486402760262081833649865429391699580900276800852287443048794000261271399520536667617081452247438703483539002307530786452385158035116127774221524490516560990208865049743059701565411786938163361087772613111102649809681972849243622482032523784461854986344817741627811950814477048655858985586565984574537971774913320443773866251276466548678964824752663456429607725977498088896140459442816477273855760847694424860778336498606628167624945675242657678567741940734141795049636247384490845442546380861151656303925722574377809176707799556408028625767149960911461317321003555342018358914778377824402957648697020652549916527210547120503457055496505731909294675480556961873199184394544038721440909431561356163133760581204147829893213750225479729033934099619913973202177489831714401593481866937960288898809196272660904732711218181439135019133576190837524969699542333254611987536338712828969286200251464547082294969595407168434597210076396771938294093572297631405917918883555108825320569941755245646737677267139328181824087565017121219406554995998203972026609631688779609117156547564899334210569382355997848503508373492032930205851938137094121197841846165498612457535981008674699353335972287405736440487907014630180028855085763857162024703238934373848281093794607605762969861904733983894891945710949845272773217777578051405806694101846239590865417382472488706755044936077449138616334939442412460204099195060292714709178720444120856837919932956476570365069886649898868212517942587313758079485092624243967092865042645499118620099244481058108912781501374382331791542938157788108042404979465641694362436841493725906093699204777641715635269972207249843018212829539672697521841863054513252376129246819024590758783461611309901261713897574826314647484149713892761480610183774865430162776651687139872892599103638833025908438341097024519527340275271011244341054036468956657090186968550369277395093455066952271445228022278631736765860262720190929844575810756192092260251013352748950140863861801942923612419607003735779821690555077421812604452036066659338237732837881650094906390228975648325395482350988179888976133969309279337706697835444227248786560731030472591196035230961262900143202224475198861074920240903931863626363951978102326238567920874067703206197402240343200686337782258086023317032044362468716492655375748177395373746686593292411973487362235120727074906817490432997250340154127432036184286031565894087960699569596560192357932538459562264216607449019470203950584224648659498171227129872611125493365874942309945928098331343379600748198357626621162305297895184103053444451072865716540434946553644136544631459614858695453814676141755101512604316214842977561585210643064286374039055037756793497233202333354354358816036712596735627731970648419735481665320490924668617290476169125141077038990232447034506240581134543404515271753777325404748240193694494786486684156814983658343756189419737478807256895605095778069998333746094417096265593134246394064059514454410673483618678409915551521158092550139966627321419369345855802555773677575997266030474065558058979288741671084605024316949569045037969550497827048441611411388761603476352232521657049859283112132729849528569802193205449450260587036624863491252232773096312243657629249174794457819810310254647473671142348824895042785086801158659641960132418912505925484445507307235574974147171166638562466722706288841106206224558324695209331923845934001921848402715580715085244079442379869909371957812202262031085252132477852945166525880155272747885729528838494228429599083614766510130516576285479757070206991942408376356820809383868346635322022231106604030838136490154578893364813145661331296759198917612278083834439533915448828039885751816157745597218730644997839686388476584199054697393070939641292311094488034886580744449180795027322270093586333152620428348547976071904203632047508179588452110877256730062126428173465801530533384708844098607483883476473807193855659045377550313833391593859253662755108603778462621724147317823700116221642861098961165957565476947791266571779600507634714053505115260549821036959378672111339718529470278586675247664623837574435075437504073888098225171571751019327677843017753584870416809088098420495650221001679351934740676824723125054379429396492529300077074979509953867293062785813738276097187499580048755604849131145378625851138601850323929352728075777583027239091570037465412758298778678549294844625690106804192445561781278500250469778267464000500365605186719670350068869373954352795044514784487316302359263944241028041901092405861038994489819001036715138676694822026505124549308810395718684815488081718894807385034033333699776819440359541316482566817982985497608759892506780234082544109335424898801337511098184591536629687664194690777308563551296158236278830693160859870191628740863922251073009552550967970101718488060262416407774593170101099010452877562701022234788951942433983582553831337906869672110723246141102038067031252763767999630712064321467729627767180047577440216824484337890307835312605350677928718939541911520949451621095613870114738522721531239771871653094471089321607925453644702783477640146387683362138066081236043632431897790311514468025212139019494531617351612857189486937698691424819478354467476946748076350003820829742511254273941282596545997576513409294623645572773023805063765281796500235870057497264491124736143943779616149326735356227702840877448877245437695461154070696136615626471580950545112941851140412211746449326356633076821739707755024755299966045673024291013757361754508957250650465397292972359882449707743109668211769201023299228150813722300483663324532016580157263767297763059696705085161959960756578093727649673149722986874896410777687995576919391422426372886156021211147277002221699951525243136796915777149307524483268589290750160574619712316063841498398083092861957298276157939122121696545395576571251351181077351058996004336084532710692680592556991621728892147135350007504452375188149601612185270136597260458429104795375307786898369773866511995462468809831701535934761431861147733060677154235148576417184342490023054808519155583420619766330444833196992235816295533990209872766286405518085072295127421321172425444838580907194653345334127092419807156585479005084949833211425981358404715441384866790046341557583945258130097440942746766534012244283365710983668663795347182617672989060931480004298253286127395222515763279422239105729056557684682611280921249163434752124484265559001575737006178612215020071909806730226969358452869783325298674903767341183970943815246811443599044626725898241094090282130768008871444274078788030251761974677432842556477876095998741426168170912400500680789289724984643037011643136771689551276008490669951357987434780492303265038889523727662061698652170858736739945111215480850488973505195288067532517233301814454646843954720829877788255836679920211673700573336693476170681443924441180746918931798298081853236627110960565113279835354734238916365468008962144261739141760501245764880860965989607421403793044373212937203172784027320503461469879624039619484071312052807925474328258528863450038191129508303623951179962435449683798011059790614808910571555829699355397933091130616250429893043946543446526283890371400136172375836896083686878540128271602022328410024893846212111576828320344470810725363803649902537900207741223887406146147272017441721874995552381132203613127665882819396618965209843381812715421591807869085192204497782410844803679040303130792206844131973823811597370291946342370183985734666819721664269546986946000531927878977528168959046463142129420544373087798708992860359768616308091343563594455060040678952043854426376474149358074379254298754960985054937214963485073724514085095446162721432677877872488718796779604567007983836859393740629792993737893069862580430431016643063692214617726311778455223229482011140819196055477106330866528124377938524072686891780346508100220338678516632954682792048155815119286138946611608688771252825020777954626026450685582162104623002078461331522810251954608822751067813974271246952726845669951717139072374253974586510104055548433924927771285142997342968175856830109104085401785595659003959057295458605400361718985391879140920994669721473505348777945001368485459017489324488124195095825817561372788813485199479530226260417762556002864981509833358279455482763622985246375532070804280007187179537261345520534722888849871747394879953756317937679480189573002264137738573934492845491354368396437850426838628531554850999324084627330400843088856034573456703151691142591893451675169783166906790936792099865368441652647339612767059146272402985895046149914561879258474773117661264016574185652224238257631192710337365806794686593085947658683386254521601759127443731068464535557419209770838559478906235944777033155157508890945110853004329098595990595641338804483356894817349766746043883146491384502167262089607663475169225895969838546045637883739918512066969728545049327799874030105624300008891131922564857770180412144299457598842612071707646160551538825973588879439975614704738695858392298584034280418075387554836596496934353495506502438430957857203647020415744840124998136311745804997251116732777608603978126481758497110742212457653950555205869325931958535656382961801236226947170391948865392137233218449037675517823002447700058276461183493749379268393101239459027589996745573298943857823000795357171121562644412199702544595945861554025602043574672386993387988877436441740749811469803783559443213892791201913309998766341503022690404165199078700812226974099821727655829690429374398871298449380488664083687502706077179535553800454292658228443240076436069999764976927747689157130894983312274570152058206239065956533324849589603062033088660993394052452772886912486431537157150347377483131595507937654982453230675114076839670653492973714231644469826491482727786501864736259297256708455978390461106100603715271980583027656872128019347329206801808554523112520714171190214589221639549426997117917887883022007199457876122271036598786908538661842656788887548980377092240231720347676922410079330419177067258882047252053429220431107830588492655392409937564915706529225559598431513840841116145588069481889991979987401818014883934968094708847367721873515553190952556430035589788189119191796004554071706139387049256496180443621348096943465838481393022618641300990135159770797189360257027618482781035797225640681768256093770177880097568337272350470365084730765976459182458694366110314909943106445396854504363820383236675697069652919188717051808734998248929891445860125378282884549232702252780538656407362287016515319118221960123814533096046045871915711486053860985045079254594029943890922432016599674523113224687602028775946342303356127159240911993054423864232806327637551972414262698893214800930114572462890273151542492688574210694298462524294770349255834122394550964917768490279139190322495862423190207110168520329789382401559215434618975347305195779112824653212038794877700324821288831320247829497768147264371607086791964666891696805750200554801534751169106934592972502925868128647402582642271027975476224286601608123864767750539836294244987494742567675482492553223687593989667902406490061411303660801833229676168418128214956275294764858051040383539449504510951177648472610062992331471216589925753991945273833881435019151898835299533259533851429165760700906281188585272529880791793269677369013091954383766540610514736838134521361730527791323712000486798158019665141898512454023532668880716852667368406203951180810638020710281722252623156197255425551839927665609614803880155473102173687221972618351136665770869762801728647675818851195681001927793458276568389997898598817357870313040304482244436693462236139541356822061438665519050140358866345578556062725362509711673646535395994032532325371749815653471927417708799171482827874358448954263111850519981183149546573113021281308259306778054439164285632056309552737655615097770371959688087147145404800696473734348190536596874403928875591414569648971151167738829262004919372616512915934279087892863713313910156951531901691531122849271855029681922352953881788226956846537766847782840760868968626046200765159293738503023317149489126323543133654603685462882310750761426828230725406054487511375009208266390457001718675981106977291722400602868580058897825572144969585952092997335528015895749728487106940784280182388718336128858350080441950380406970611875369345576973688272109513531148617426145286469248454275651677534903032697195202060275414587354801176340517764779439017584017672340469004778866476297081855565587894441240462515595237448705263618696176437114672435662357716493409106912742526501816377388022993977991915968999168444514743275684114868305338765499501430490143186707832369792398274793602574212658731037611420600700802257779282492851783208895210180248070665204917115513308700307503643391005561870348452253993177242323882161878467812759375079715776209206821203709847183985870872120283063097535184038878883832070250628630202150594826258276071030965692833604903264842357779107403471044354931590335957296786198017368632579695677254572041518457599324176347517355015370836081627023227822158085756646748099341223499023533887073579869669159396734379315410043397807918430759026157200240629021351435574892001634071593354650785438825560964954834242293360812640317614244411717529843636733897443109453810015509700349070747947292063478216073203993800169043087963728239943135793967671361157195578875126987835989383900916221538060054176590227171308827141066759536108442863936931875298520023363437442536469240788957136998969371911030150746352405422409924989839088232984683430144835156382871599967928553472147734610714589747510321055782240659616936516407438281684591155955571590212373391951722432612880950914516000629582528572008508780001599771851988251896457719191034389604995594727522923260106251058583345402139353848865600567991999270833464822443128568240079504631112888555570773907721273076100902099766756170920911238457795252245861466629530823245115155421456965157592796713511379570050435319181068448221672242184161626545913505925010541448381017237553406936878625610028124581109301219856057092763487643073293739285138009420174604592746552779832052875352896760685326768677968999690492432100503253950610984139088493746436547736313848097641921971432177508080652220874251410779483865889706792158555354140728105128558917794259709982555793549735393921894015367564804602398024742932038692733355448517108134478454129290988723533557117223273562354378598225523183324818453492480164055739386532882502613207149581270029365248853482368181316765032750711010796810227796489838334730198207083989686974002294318380221869749992756905196905147779110630880842248495757886547782378879416498425146003093868463272933711539379444974760962632074974172906600164611525370678905498713214995404540990100094202036312721286497746978544131819413097021632139044725313756281391375244459886033422212045041588444186223999828965747809449273853147715578018222580759426509435929440661034878911727367740273602762061184349739770773906014748044994755964706373293839572840321889282216819184184120024985648737912874215527845075903721173770065692434394601946807579242034278422953691778172311117628103654744065302428454323776484801486235498133532899006238371330973748979770181203842538023475937516284430738329387933225679770948269188753124139620114044360840254484592300619067626244644349862882987027360610308644158324379813315300645466566370480829970630819045623704951547097398011484716767930321490414449509936413116862798453788899408640712514632055812225785705823734068358374026716906328596120601517731230542682547390161017859434970328110775028488380294020566000527646008360988991133767945517871243614984076799863274256025301701931647202103062459079901302815665671408592338956841707419526641378368142493804244944450908730899429196216802402142555145033743050573275068576467968765099304216860215625019277530797367613359586962889523807443661927704259597692143516771404690491084851945807554046212836680279645405660787988075286630277441134357983797971963007220725374147055624126586309883983511447659489956667063354983954830673673175694172542239107321583788850459888863019751847019465545025546584458444620874834130996853639793776262528406786860221158826498509730843585542752823147466609892899237794357244292627436252121707850241536089446255746991703238839236438003898601927327463186227008335334413365511911078398315370729994643596841852266509250214668557856238832009504755650660699748872784703585715357306483467705864951612834575988883004386307081845633178122104829267564015432936579687903869987130498349281650040434370311181928949477599424636216109938987631297508599637715153362767165867603080142480987515289246637669809867892603107327093623916578136694977516177255803947276030754794060161939542891173341560755131833895052457141239278147941541337875426283031153955032578928297434217539873032660251771346497664526799965392913792923984269544159226070184356910426199904595611700850063535046387668558719117232611825180680971860833208247696724895790900395672802683198762285944779615901217671520666361651445689607956871518148102748146940802294357180726138261792660517413221418846640722057835752526821466213156552001020606132613247603326541713153817632134820636324583750339816459741619564690728455535606538080394169358923998289612075297857150975659629338089135385135052545939355303020497411425275032482160465348343545422560533091320577280129957783479799452101219515640594159288369106399603082566464545790360438888178192569300510775866407922855011963574145300290928646701512499174547492051294945891003932633124852595998602813501619945427338886982592203922756280679360785793448868598453082884636211588443159133996663997164938330365158981307475176386383705961008717032676449894381458537735848365125517462928435040343155201918945585520578900220028765356184407630082090776746092248719053450908991906082458266626872429440673610721689955611523922850731953601129331706572500608426001324093668558377364400845824031762971984999537930074623423696021561751461534723671265056775123325757769035599494508626009853493562295732006086460951821393529061695921268028560426037600099488560879070060271736264144503019778193866193836529999043030654850451129175576110593676641602930597625770471222909534447785065732764022312513322255866196869767588293953955822046085835912865651227361232490339972902698715852470017325321581540658464887654747384325854928832609751311795673302390119423563073424240760294806180778038394744299145773590932872459433245465461088941946623865306653278923065970186582809742947027076833994155594214731850398260474707915134633593187983263709405095321800457355400252306901092603163516583718609822184091819451249921922497332539871861465779258592455865856636919161429873647450526239235781028465150178079183676829891294210603561678812721860134121961917837723300246938938383870600486570635815991936637613378784924365982862376367257657707349855146002739614987894340177747049086656570115511049604703502902655290598814684102627466401937521788587224968365659624840797714613717456383613912382720354041496016145484820055972216233746613533545076303898141043712997512817584520398549870838103202766436513810617282919274290229643418792341535347825366058876938940451454048705919405510590262627690663620481521165103059529045789924911006680462234181230013891740886691515458167191046972968156671205757053178793309352504043031078672504876658787949552174740654681834020299283597458105396274206794537798131407595291989612355560159025589479173064285344212134511020608807639264889549237039639657358357633461867115811851530144517119341354628949735224374035045000562214347683733364044808302913364718880305791731420521375281052534054090745553260803143034185630870564768252361966214905230665482655363669018265370104676447828154550104482275726185741532612573820603660825802279159982454237332847946227045242718993189483713247139881086455105628289588226629411622995306845502042744795826969580913829876178793177352564055660061535049555934880356644726742493630027824206892162010162555470851842637630362731462217296151945811325194158502149984256719025087016696081070045028516003447731759232900210696322025563597343481655580888906625717892944545583250586343770623816624784206494333159539473168068869566972653334876455360331895092301925711888801682929554663571313580841958173040397854376715879925487696677985898364490531604653068457829168460393328363355675246915416288742077220430666260814840609172366905336635032107384584869723196205127782739709888746442980875777409178378867124558223493020994306909082451778999666945328649919359604911586216484388483345921595705254695749006696023587499214400028323487852883688528450651231258550965675793149785917079722483111814515151888200575496732224433086389334972095036018064934309588702194096038197918596038478022911403358752576130756447378469803835134322761163671068444875479203242184741382797787004243858561871907194081304086651475221568182960566605283264979095649261111803428129099420059923547436315700026478525507865725008028541895686102730970698915407059337262438299827833083892238964403166137053049974679414100231334598859875998358952683727249511218223856686673491027177398646689943296360214859354702404552114044719205793849297073782287241179454416717972732619309241256235328295472029532712016937344128506887656551406186460911808079086194142733473620457645482369275227298551015888846516893413599348942825995145171193315477671923240173242888347667551173627359477102473837635809891206084848604538764951622977793533211132850637033152958505621111349222662589441193686231177223099571378961335233493011427457726318772105627014784974994397531739431775296047595927492305419871208954679627067326490545100239070140451785818590825329116995035762775015030336154369403589447874888130803997844637649535293074575747647464060522959316102661705918186561958574456214168223591742261701777221505451595020616041344707569399707327439880706490623651827745002030311609655666149394745984038514997562216007533357119569863087614329630444210526770165660911692174732694663952947753429939667708815592739046974040443694007529774056517194686664919087468925240226449605864777883088486385738695049809710912579168067041084999449420013778743898537450228042526437471093086599971098957476394920560373120126960601930248637397740756574650748117813876527923933559379301092589304823161527081836342124560959739640410428249595565023703325045386199228343883328358541666001436086968763943503303687340199490892280459042418454243403367823865969569012172889983958655985860277646064650739147580325957328120413691119236198077220962058608537732402095021888008696492074764823966509056444021202475624404700729254433054502153405702523996134843053116176631544373194116877928343210161016469137725901952506446056011761474697746739275153967759552272157849494378848824368470031453914185998786739216490767208090020295495171323939198285746038154625349201425136101351358202832176453885544460266054602701788530832409001689626071612014929704442154647044222427382853234247889316689871326852873274959486871389873738470603283254288919156115131595702262964133477880770590005108529159616896040431652071768057755525088949391250135576937772890316653784480585955425245284375587125898538248113977066978519595387445267875518838882613530610147488048570895057233444874539556798189889099949467893560919285969467051282214205565435757518409615207213568268326824948519049873176488894329718206166720884282876569902324478761402065430354458530803973612528718505921443533471207728287938148006918809548159201547511291705758308369115899592003960804574786677107885449859292892782127716031400458591968360666044134036796751323889471611371912331244154856748922975422165047578382829950893973479393379524793949960036462098341134168670299323445823857563405323642896997533822648086133156445035248750834575753866259870836921988996319079086078122768140563592886309330503213368078371328162214605155899954100790685495813647499876327458498005847531107395587129428162754021719280547325198852702928800528666916587147419719587649258607408045178075101069966507545468818105233967839254560678895385728518660074846152544758858007877252705084079161980946809848082815454340053189028049802428249522146030831221404965736983547903202446623384292048692067171191151266996772595970739210862077982636542033173165071225861414274841304713517202135333774500517954168879992638962102194150137911607640876682742911425471347905965096195883592112016813835088303667726587048474855729520422742468952030171745641530505831491313820534843923421760136945432457256422505643320897251658868455913596911170659875493896915447066074277127103820118621446726504520082531626614836773571135214867138406694503093580596021693211076435150094218702085291398478620108136197614267810362935929789159256461027544398788947479979018793464467763891211312372931224458824938660232045932467266818788843406339274966143662422725826667456649821145216822815560640058933071881363536192352557116395262307992475729342950649022944240349312852135508707526733618315248447962949451989724865874711250442892211321819445639298893532833969830191058815329105740043120770669466543393234362769603806285230366189857639841027315860139478722248411822621172049823637188873992424396568726069731273114369525241354073727003907646275689656822454457711315889516173978848793504582717771119921494561760288087543519336944939158539334119935712565745311037968315615580634081792971419953027283527236188347363893512370642155135169025168538557097328801253866664938248247401536153155193513502161856899483515191852243207029154935344903055866922136382518340571809014524255912293668272256612467144049191170191363189866371320154874281036714351116590203346456419997195146054999377276713978087921288510447924683504008761035834536958671869969280328037019556142563390422104790488883387240463417212310449227124702695967443442976435360724400812984242030448731241233857658908502343618071972547658930569653779106798815000723320346201753356531636175321970619778743271062759119065775026948600248341129380180047974830442261959463878050627883719071071149410424064022870785593647576106782287148200021720393731010246582768216846511164244788749170699356048297561096366561635218567314206457202563291645208595955299638513023217207025904903505640477536148840006260250488043960312880566292897404272250716303877345068325336946370450513654998869548246487628523240630199187084370907705109766650002177131993374622100173471953992911862713865489556235805795566415187206446078553964435230276636086757761060403795790382763609091680529916657193496421078035175711430323703939144122270715916620732625464365442532480675478718902583065518378499610070857490816462081522957318879966261331281336224643271121868351086800638816631857483743793559627849513889172603762073414444761577790028903253333519216437461634371259333706786113717247847516481082641252924110581591599256080721890333039162550546719935714081631140607624320378025988656830300002749434754819722215243459664852957825432767101433735506608870457566118388630333205462550440573981243705578008439501994500397301448437031787264993226701955593454199080851318944472510870980752700387021278612161259748681169133810109647006621730574187198752461005692140254107446781029031214645420751183710851729332529489554509729587999949880020193864799800085907778546452359828630440709132818346042620837041494351115728552544531311260384851180738804748870450062973039159227506911901837336088310333160496467957393935408366019935309308215147078855781028913420622232211077539850984256565226928923688322273305354543408064811278119504041022295209216038864115869475677947654451658606012739251231636754865251913254038741631653553923733672077359078769250106495409504570942352071444601745464540121519460670365068757674613721048566434400373170119944659985275937577523444171956234246957520526315172823687178789218133242483025810364378711149511493727145921200343340750893859620167119194495992181786701207512235609913159637337769714793295695749862314194934405074665481825460139115510900617104330000903307656352766052432878611073913832485925974960975854756355290991772040377612324386445629463474176203761703596203371178913863790699775437536361582126735628106286348010814307392779984177421209801532794280152779725680677205058937600753005958773123062987308820107117762949691395351668754044725564089039269912457468941853465376295152047965051002294932776240860426144259570794056918495974077467983656909971783942024367615672741734036691713725927772193877951540345022867506136365342023930037028581447523670712404156067843799013779805549465874296377478727275695885553259125177439510822184961511686608237917544812918832827396719192559116768532970780850379117884627375439823213377696139166496599907105038589109205582175783122484805944145115309701127496621890810373878824196401551291290890125361867630934677843242286717343800996583521342269893060597776747392642774668197830898148162781694627067084481939341760123291659509255996923597430640255247469089797742772880773242228939656991462789126003661251060059136980975278276106873483995985463141741273602522778609388643853033719274156473486685763851069576736292062459031598218687519967491332637237631904520887688168536037332725449469248819647115868497200869607818324141724007674616327533204641641093431980092232619373401139674578399403528480094245872465927287554641811958977045955655656551307846187515062527438840962134030568407906129428965043754407185302561525805221653638502702684692080213200690520767936666403420206212430316223687016222619325448854459944846359562087764152671788954723523390869628125078929761960447224450718326240292634181622799149292950689900868010425685693977584493175699574796060519366423020579166418559360352548420003997117026305882017751820378984348203250234632684604529229749004853372092311933502072751350458546073845146945799679114198228201530262551192661498529315804124161737090589685448397167354753802559165984795662942271383430133921591900000560985176936465916945434712150117429912649739560960432419909068412763999563818455370213925380469429728571386748912082379291460798377222706981297990417039242741117606352966086504635961122872694356664121195219401525326711745842855977069060701885218328134366447913031855148794618953978819467066363423259707367340575164312642479145330511787598128288852634941468723150189215628981125871627732235223966946126798513541857445054792404196352947528407405247943619577734891213072502160736812123784886414219259900590255170854440617178138782847657661457555994209490229009701639823280175639594615728143706097699747054194993706952754154909229003375435591079790165253004128816285710418841848565338328290598609111252597592177507946056478244207397383467117991849143769670316707692768246791168551003208510968849352882106935272102243438302510902463819378622648899505681225066220610795432618303051797387000869432362530860042300021922080933163531067849556598200309925665587667218528352462621926323792577950770367114543571326186620362252116327729337828471679819574779032397118116778267153586703147768349560641336762425817506309618078640192526785950518828869283390110519447021630520779640499475136633223786240341742222460806685601530278301798819017526850705993076412606449342690971739361103469323267423038746293781473201437442574319528209584571829807733715324836148919385468928822586926200810273063997721312991136845803389469999469785623016127412580810472681784170914057548929587043411929582256278069876983021303735169908106091760841403146092939152709713353580734053293641499434712813716159912673948660745715269232990275887791986882652699273336966281986979349645719087465596672710375016155384660443620331853387369786496581376699358247548041021725576143201615511871591596429831037845495475272900736145850018792114679311921207875609721788276701020027372701858826229373598755355037333351952004383497565797315265857290107190791029980367857486348649477589003052747241164465302588104170937582938256589059919882340091586737625016369660202762270595910281359910418875931076361343783600173651167859156491911513546499502375630712055373952010174148924360947324736101354909711648030339830796460273454370238381019940179453584222043224690584357010731435481283242278186666861443254752999513624818639438321042379431755040097094135195756145414831486742545200084493691964731831438154939910887526053619542925864749650636511788547441863300182979326893933615115544432018472279521648216223915272110801287058248299138948396488462560339003561537427715111152037880654338168972534635689939634545359939943288837529448309643347701510641914884213698795466752135462850423521813193342380457754895129916935718901761427901016402528177099504724958840446756490955225128107776389223109507902194573034279054574355892708115948279844455395188558063463133829489799288124134558416842882317532234952720055080780263428876902473153983165506189877591742833796155954024868422369427320879703247416564153730295412400611831175667847918841694801793106677287265470931112004320094180233378955079332336878773839248696243441746454832111027527667558784895032591710354266714805584732784468839072244048623835736308624548949737343596836770378734115375646835719792572378202328818285771195585287343272476432014844422515725760365351253647013292512625580499948351639731937706965617016301548604712487162582533683770638827737036156482571561377872265010567137115543651740538136841675126908315209319121127511695731276136775006147636253240966160865590753206056963211692265471432647594855459377941902159839619521701021933797580083086271431768287310430367016550212034335063456053062957545720970135491486940087436369234692802064850681587480622085622009715886972546066776497421878595521952104619835783767501193471313199191395280587100637307099264938428002210826676875536821648283083214691864355711947900220863858298035984435715154160628960656186806898292951222413857673904844945620903890579711248332693902162125039414233178064244027553384234028443950238159621706249157892447447443839791609761661603576551346042117996659539484920796187743963239908493162429467835473500678759396024579148190459310406226087808709298576888749085029797258332777703481203496137669815601112950076179145671942850618441120619791112975704496688582679343613566822029207883665023876213712476127638178666944002181483480429614472416425164340603144260245904811718638006498291465033988314192000930650114279138242944746415343721595606629558852874147490967174292587395726521410044192633524349381605454036572233585282567848982755104130723118679571037006255720594804603296379316587755974931441278058623858316865847360989702486359151958287622805217513586491373103731638483469174568881140478679867243526533154010412345864621622017782270384328517887381217134552795532954735619366742177988989387637619003107925949993299600631196924683431252885503552208334088255777307016558318215581164491199358571061740356535134022619160820778833730118028752163915068879342461061547508956863814431405348230463275730729271976900364743221154899751368491692267104384282782034512986719875338129002158727176456100048102147910988760717315202436027326145838779986114530539090615609933521928264278202006742670608356865370609374918132480549870430934999442065956525005954298815602167940313188947526809894643714739947801818993607104991072596412720716671664613088024520320758186716037743750190804129038741360432949952635267392927222617140443719697042077338134436771702200813190360849625423281991147854007888194243410140428642079107094321285315980097413791566359703662746034265421060163627124062919180509325445979692403337262163161037323680392790278255959332570902952102713228316376961103721748656936570205300421139133785891036232069456260939059566517810946914665508603208225177117541496535597575809966062892803827483802911263565530617933856179063447965225873323477927757672332500709637579367331793146306482071399668521747138119915804520873484274578664367122892793916914289613661006364236425301063910198318678444150621183468874035463442546073368375117926828715876065282795779297743953798358961661075535574556376019740122781504563911542278899255294311872870260619008242308297742230474916856452849115591089562667397468431012299409440866606228635739992821476159696613986738252329125849051709031244373319809911588782339751790619028601701177422093943262039456277764571245489385785102649496792384646911547497944024283800569278640709808926183563939761469370069570848882185210777243013882827522923916357823392443124508928855541652672918010024334555796996858789680677955661027067717607588055929660077248904368875823978228517838769171522369619154356484115692451128493339564893678982227535665643484826112962568662196611877134493840853212085861418754868149956983552813036287353938850325917899517361201378616360924283112429236385306371329827854319396162611869512676002727334054357794618142606089094555477200266787560678685938701365267177678250707176720693263355255284864215457830202599112518623400975789257009000644841774528508070613175810810416828638844403041648290639922035158219765681014144963556957678281402088615704177254985546396076029199346298762935631836063087134368392986693396330003770261978465835443892245335737398800144954266420201761558462373164413480604056906715785571524180898062188015004160153363250188532296249937466203085542396014727409041499092708339332100389372448615524323121130034746066352006165971546508915561116891853815276787870858000801434314261626547426331322115318931573384598377398127345462718740592729929125905174117568496017795846240050845927238313925013886285799339742865251289651385313316541942636284938771057104471804197478609114072676053345946876954317619684492625376795271057941151808009232175511257661997116835155444333891933983339814766279479104413894051864822253788466927010888983830816205210292380488907871273616937453237371680229978379481030955858880107288548338229513554206010352169742231330160831474305656555547030642736587115206965316838062760207031856973040465530488854126428456659496899116362656153892049037421037784242963397328111217038635090551299842446833695895679219177081200767618134470033853561153255271156478101612694838818651670385702703835166921017750744893618340426117788684474739628137489002392242021034722249976076017938980034020344446411888041644971923148181032689029187215330588805676334976450312430134170068101411418713862480476994893352943479324636371988129700083618282659669466042460984987756786033539782231058133720480271152355853226118669057039580627875576934405640903367697347537236790051125035873225913204015896461192008401446697513110018691847092660854169969794868603499342649494992613988714202383778048192028277399835145961585189072890873767794677073411392644526725964561576630872686418732338597448019054764812068289236971816773325972061072068158129691551368259610817874671329070481973611119792159098836070853791784684601317374898295051711366907948944962209399365855453409833408508284381035766048735625365188775030557598920782399057236592483417746231552457027714191683415508094892074501429465388643549373618531222480555031983418827655457018872319979906181708796667594413371591279529309759565827713108939453887348595563802552716361386594658189665334820440630961082132827381479040412442854857911780890870592227266655004819437181935992662434862498452705792818784529290258559239028486588133044578627428223643732013930560645536348963437791696843678011307327285020149399951311823213604085845750744246224247813946909219944510464048409829319506855449195906816673369467222526719955682058770614076501412932311732378741550383057120895428298137285482687582264826247798778479889293160248744376901069990427945978617615864550446969894873988196375720220253499241542878807696725401412039207712573173402974332646904025782265178407399064693429592743543009667950414231071113445015650223106558320944997277721501608956299828741027899739587649469157579718007571821158548666491595146815254956621490364909929115169174405372262642799840211641467754616934675449601452948465838450000852338633063000107036933582078494895157109201234902538093556312976217369391496300711122169205357924887401603496561994978374386757155747618602276310872315197312606392510882793068302484399333356578063944373073266968327624047362479478323585255275017082179012282062071592317206118882839180754158705463036258620505939721459051241906908378812902932514224709198927802947540802527620917690066210402329429827535096853571901081393983373095922939081772940200998696952105715295031829584180895472548729994992785344747812412915169107366216521677895887842298832034647728748081182620493674997866958709862766861506383824332089837907095069817993524214366721387558934084510873060451112145280988331442452872163322070761945627402719786002766561110639847758327883538838374608823498465343864418411699103669931385495405782987069803857001227939075868788516218059764121115806954045523610075799608715241740318235461402157599423035958204715784823512732102373558933478864023911551155023021985330140164191800087993140927375854037860273515684318366023387977536233786183650976959826043712441549420292097620464802501857965969959954565001460105820098569076997005294819879350162659266298389661504807961562390656297803365513228599769779667341458084505282622651021861459489579032156144761385872646519762923769054032380335566736006016796908435523819048695362934552627572017172891418448285504835793159329236042303951846117627668297348054314295714081532630035369041859869512223822233905805270129665283448322498380962890728698296443539446095182087038028378708171849791915264917916796158218106996805627993998226862478308897707524964305039338161711458338421924947606211649568915703534936619179344762913919833964553430563160982876746249418903307968797289869363864106955846919106131310995188266492750342746448876582469614187746970387903417824331824284759429967413368195279086657589617413667809311265960794536285560586634240205433861283888650547704426898338227105359996391128372436757360130976016325399766353147964481732681677728622068358325302594327492541753276262155208457812593159950495354452968727129170502562552576610344524834608368878068729136764636113676175041665795686086266462310152861433915326314492453964085151513448924787241125263069677278137161067532154419284195712690749695401795138426148189844798750942485291659788707722164775416620060390972438867947731000444387564247908401365980614648068357029927657422950474144736597406307626445795672640184075014003512219451636792191988858938053387329571383691725508900081504630886059619099473686151362394742191598555988001788410244354362948315206185072882567081984428724769453107903267135730181043834058958093231546414236032531685286092026200875753975258357434258311098380275297575911712223006974442913297329276496167806493181537907129162156696073546825594354785608335706627295254093801693459865972600459423473464754150606360917105462961776696941404609290684085800251154246972372655975526527009615064382018453367274586619553972307554155680226138308760308943346713568764952340928762386083664645283743405167376934899245276303433621789331991989980944987990884583135965211884812014336692584939650846541017916729624389755592469845563079217565484312335071401078588584433236594836126532087656243612914555499421374586465776753793345654298175663699763196982292491101533103246540171047420312835867274775522693780285441906445474459303160277787457256205377382966923967472979205903267038364039611589426881040155853300721602867700817875396341118945661674236193252954914020044241258468215775385454678082330382619582621493429987765197894261161473565028155134397369604263532086496012879836326838139745269717793977720277928346027405441771774320015441611338697134428091310731831342373776564727805255580430828506867920543282196610145792664118047542313572801082412604770845524400926782951233583031829357152746293642191776496594893640755320251485604254110480316357171774722986139808178971474416591672117071588614563578540532924350291764406926983777466718504237257436178508147735222313159869989395103473969331292010110712244538256293587460759453674998415446857539448752504787827478707847061295195891588661947042025008694421087270053245104440486837883278438119094991487854477650088458164023380981239872938363183586853257302311125353119802022982092099832968578304887028873362579904209711335249360895709982444970769088896125091429074287219230563189793759576255954383546397054694239576509325748031356174051643718644168276481770950741404518319693628468559196644466904018399598407161381319618528368978953195560711234210801400106321259239322894022794679023217192837411914219748374223261841239112703984890673543286030952412301091237405292362342135293370002516915041457812243772916946441420143833149916624442589440657649546370593001980233580771958217454732449116757751643699225688204751401383226217715203293506699928949345440043765690382739738673123513962749699710081118546725028892640861890259726874482287120453072803162102081036168545930206425466290091303826112061800557417182320349290403114829468314829428929315082812517134429496614980806032618300223847461890372128235070138678047742102408564927374864857962351224895956881558977970075306003306448950475964925865965066392219752053091421976549425661688975181196091526638114065626937371609881532420726152746094276322171628640613280927801293783874956831695706394575974580239559305469519161890348593064142096041377880399147647413692138638203202747666320071215600987840611666092307854851862038816057420756352725747529351604978798544796496710380207234890412819138290371913976501146459688238261817571132151128263223182439802165685075419623346458933186998778809701089927702515742953295412873625014615568357612384386545267387893264497823261253089502137687237600468473548726286103332887727937205904889718244170369222590557454880776831918309265378461100211389040365859349177563995686525707723647151440758022178287444654101900076579317274882672113590332158261926999855772541669226578482680501891385687983290026892857919405312333547381955714926098191971194733326120373870116591708249839665546034021032085733608695267895776949045917646477918175478046167819809770298114595646394425983206170312467272794618276854232047051751816643220178446350661964640994595988040785267781375621130163570874384518666713091985327324790036310781413011824141547831102405962272738266658387990170583254104726325876157635410800770025080180213731404353988571471223944192960917286370458942323841263776673547614430808741954167507119068128918995915637128886667356544659421069577009989174323662400382389175424945933188853896722765191442800983037366902917838845797322168124395263945467983532121076402288921847710334291935905732274295611444305138994597730797581269957701763957056080698267541978546320648052388548177005337047291791144196924813237427344764838288960985526218022264231179805689173411788305887117052638263761035609240496541279737198659937426423233773783649058609197923405754189997197424382368533744468064598742754266142060294784265993899549892347435833184154904206070098573294102404639482823772768722422810496144694318330844447719907067900327683108835691067960494388841312418690929743686292447081292138555463130473060030250028185340644546187800817761455325253682216835006449933379602301420170673893665369791696964867585133937846380590353008090060940473450930635755642459056877728893997256106994805996643258776818505595266362356259010543178574038895513526917663402198172785970050418205386243888044847012946794247072865542612588397453585561227368254886914995845357685863327922032146957245005933654144218257514948239694458729603991992037163278298671375615672168939602103431813150397269887423774191318606981825223768837192287323025080310656762064209846329828889159270537985968555513716353989070089860422073545215019190590979579468038777592623607613551513870194601364793362418241524257543654054373660182130612371817242500438008057358450785349968056301597819248128545645635056328569807151578174282025157381979685874077224424619525413000250577104161370015898234281062333432817579354331214718686552652656348283900686121534196843735086931931828416837934183298317239103704122663214124466348436058096402826141161401861239329996611687099868047684514699864682340293340427073233780673806215699874497775387852739870547822879014161550315890244106480783569372575358623704431403284039404960835532303912801014515787106187527264674015652435414451556961940622764263077603603058963890123801270677079759626762233719329286524339334427395663317123436410226241993376498285517309532468578636454339769823081710848324852407357042347366690789231209837626154114250138246057008639430636303869125027004384119436047223334401423940571127084834922488004315686130568354395568458149684647956076318422431466546290291095110126061973854160153267574171048078631513363675405519339293798174471000773687184737274609863962847636264901827837936822881754134555561457297488499519939534105912464831687751309452882852775705903600213331837197755916327074722311800868064281190090169496251969202398182926337528975791793777037628153289708304088015431901690538784920920734824985893380364355380963245227781995351026402706317175198604273998977902337676621722067505720384821937099566605436391342077319291083585292519755039045958577106002972773381122954571869051609722212788354161229307047530141030603701853365882341544831341834514492353752700496416727623732298181339097726216901149821983397268471892268909231527726632626525532518621822429599594024911180952177533465770735845926224905948217333349938859156614577168013075047311317565722690683353305038244251303407158769244138585087155761132023145565679928663432305766068935543893859791817554713040683066556905952989573184062822929421262177304709972013883205927600673801737934623932982124012182361821217711360245295591613438748282437945219429216597122829093407826314053715503158253137353683087710637162612422038482756662285224535762354683729419103149954106949053142731550245381473555658919032263416622013700901031898493995460020499253922407458332659142445826965889140923083708270444000432417946892693192004753373277553830518774012414683858561139152570496884974183895255041830866617110509433637054100395511716671568721114077891970118749597970705685845624434104878388353446022666804063350017250099877770378381775177044525331197130390408699734770972615642877737454912786409777626158471544392556982308472700318649899770541972856009734882128843817066091973966431538843949746752910061834265381056061354596990705097551914427353228196687328324633688943258605008141464975119483884738351552065571853956094801483657880989401746697699015402412970942474899522719252849217400892276735685981729147475932390138694281064978549372339877215522680268201409032488460021117633034305602607130157741271834313172583316595376761779168876604400905991246252027288916432183318903618643166629398886455625349765325984281505768600636099120494807567954844601719930693698801381235153507536874323377680434686705670019715251801555647249679876734406326900723471663935631721282419792377426347329646058603196490223404807147824604518419751102213394476018204541564871034336629982113106886621454481779299072355161651373532729945867315744286836434550959298127162508962425014596127312590903556946102517396394578800886733606137464374485212254843786054994586301537782226333135700258798685966146840795893727187659075510253138201844670552700183866848222386623010216853168430044679646113568802702837636659943532656275205130370250326859459332262327021465491446801558111342711091249576020155528276636691368902092544491859661282874758109918273834709263432852223481902231185461692039929658776190582342146003564005208176088375507282751806946883046741251073893946744831758467534519240967749051121471628037194975635759538742229017145964681437043325258911959333411050949285400817860750010407127402450560225378626204792476988601191038503664353520559441577806219247382744806839387908291896044074229841418434719903839614834653085882526782421558675909618375394433331361518495830964771094373810041821506492227399649827702215670335137043111179168930165028302426761852775742547912138039951076063766348746955901491206006361318794109071310277525453832940413003317267348784749199557440933861813271955444696394205762283485069627230760202746106912014867172858151290157764833339624019490515517909117644672506125977450057766847590225713432942902143248962449080946374294584383279036879551536039794029869815915949948217493043732531443186984071487646752264780111691125082945424106685435003148591695137197607587240299220391779264607560984894440593907635008012253454997640580282760130393229113499912724890440337518527236380142566401380441564864303632426048826009683448198768180240962183178974459032251111760804794180080600608620016244712222975876967512400129674302340209585501959752605800480109992563513990879897359132313185622543315930674144717940709831860484201415293749229891992193582689368642385252640381971932668178798131846173603193653006352895702402181419187095583047362526642127755725762619024063433322012686903523444458359600355554330798030643291487103581947767230508669456041982908406476894434799255370816820277231699966985756842302053846507058546150943871318690223755770710427262385417787386967630905675139113497089216298441846061440637839826214362319348099595165320618731567672847444907803208792678417363977791640739235554230561485114163485414950297047826916482828027445676875005237330248312319363890462714380220188511670094499574483691089958458852722253948259669485905731640419953913642588696670157407119000085380448219396923742304848343840762655801553973090283336064207703622462877040378491060327717715486024260975869272749354144547385330418774528018409181598154561497625768977505360326361574461320743277706697947255314951789608137282667750662824490020636281405721960881583847261710664413672749512336052186959261881014200415440887220892817718733227912300225069913695886910536539409124363127312268138225131270111554359979775957644123011166209419715528097803721619393203773662585858469356641741529862349156298421960527164894407909628341243459230471358752071706522110552749829372281015139380582686438379443547309439874121650686704433813265072560370168467707397296528958500714992849412760766734820707843514398632541921770856503018786011094880263838881589794278923288095008473617413114388423339359124600509678385761155488351122770293994996942322964241973573612538298601514269437050907383996179798044496379176090938449429546839864256913493931333968879664753370584442532412408939390400660854655042965471797157321740261613905614273091252359838619491806142375928831693539339968213349684302355899000510380967798647448641713514439877968871099803912240497401782220885084625317732015834808174649483206308655714443173811789024057134739213418342620416745126767957362365322336471866914923177439935401455707941874000949927334050703891085030058493673993926950899628414544540117299408397802802924221308786584325608794546797283111291591594960686056845362488514830865741046971781995493778704270121723493664054828461067979065567485482782496412219284896944263030504950309903981429175443673847999185872594715282232234923512914602714976187183240886200255681789008782756987614995993779512093885290323371586675029641178348000664113701561187470791567351140533284255838145880543418672071568826366103442730731367717505162912849576487189274437021663492394315111009602051003104386014139358694477657028531325887805131746579561254925109504845591710907023937844805430944521342327941474452971786436977920548456688164599461303103667134339905704668983353458253460078541771996770805252059905631940380449611105816301306267554745468958958873292617514865966444754364652101456753999485375430180931733334986026631075882347913195850415387505159303866538031100813121927360743226881034874409581336000767108919651104421326380589652100824682236761580384412107406994539180847812978995314929139349738955685300847753954046450834282358058804339740627047265292490021404381617387307971255350857598396485180559355318392589461240375921757491219748780509860114835958032155088585850052671666476466087010334058470480143908483510134427777639369662446714529874989048928825435648907783786400875990467134046569306036166288942762208871487741001553621310285405058231632366000958262459440813873612253933601291345259384981987531268941628145455798868202333561260309952885296061735412211177460056868038016049402396624528285962973873952713632263205289706338925403922831109799291810628663684394964803314135125266473901634691167364988043653153345941474946608024994685926609372480348461653158127834900410083648902548356433938447502857659389651480281773192476231299482233037507935452918871562980038981905383263930380413540464373974990469919685516612280419215560815845885201071282414931421735535373146465681282702561856296175518571150146070941815755207990628091759657380531574216875514887095381483230684209679055228304477806768326981476826339531565609258225138211068368279301425001187859887676352199876926726931122712976243936338292161246731413388558162262869700595636277006144642254358700952905479083054500669952471868998171177095733185678909958319511676818973258723714630709850538050192841949661903589169207969349461207360121029386227463317415506018684746443325080865201220116881897877302977559110047956473870925951675762367103645774402950119976575300316311261350662420611544530646538495118794317817279384435604315387788537277922039147127633194262454271028053335178217658934276658890441468662945593561740424653244969256963302176813881452108910391296507723533017542239867495363580350197801649488459154916409924879161598493811070194401968124102402781018245590469604296390899344828217752377906862454527063656831738616035681263415158190896906064569461531912931188154884057245295568878458020465651461322577724104676994824571667066441434849858304108765932157429613214031558215920826640634251256286720405614607642370188794102280866252557149938828309936715494443800712325472210528456151240161852215301412607032513567624625136713493596362575173552405413614486929958429698447682884118311853947963566912978753911361009775670716641888534113513079774512341120349260502740152649647302635679141614819740388355528253111797200051760840391817065048584779415457471621630857097903650329407768928024690469767403675635530804787400017649054437399101232862735536793866929612651886961453786620529747355515529506422821969877895825895276952501802298112217680426533842737672595892864705016314844926726603489982120097716322067778509648991253214336216267367817998294459846997920192116019132181426357935330661482215700993056543057265343838602301413930795425963992573044334411176888972874850644440099126222326027041661059102154391332066328720179264373063985810058926788840134297888214493846450261311417638967940572672251992343586524954764360486825997425587317068028987226980436100036351031586995978137846457163672573250713560430930387715071133598200281348867459829285374478530686320523080102031985884295457785353204099055939262142571301825655293614801079806058479479684572249398453693309122507064368197238616904112858234924486881669243792086934322295312659154428802033259591734960354399136230663096675781946833085917253691431475049804202591859039461397860779966032843592386154824199687616934076826957486611200637363209122025251124436881432462075370645999856390060395816912837274616291656596664829716953509865134678022110178630589407104709500179859974307638932763297921443632210882328672181600519533797142233072612233142657873770223762388849257028717773479786721887875465204637389812690431831300223095030270076777541153237692653951660682682307529249348010589410176440128872670802813927390384924330039436515681715017551345419733815125486723490744460794311279160121451766698731804456796735704744110437957137657551965983947680030398148979823813008767786219702922529337473300555156528357705891054810864061800385641454403538776511878502889160395990293396247625009385302109213452346498968404639923417550099464501616848362284002191225018640325793366837919471729407811675773826681031092911516791193207353852386426326858378349631597550801911984738692823326720141772494250088419666576399730768960758922333521564227746943076911855074054525663044181108360120132105604585736270505578449909351642042141307488473753415211452965596846408795548732029546439742955759801787532345369778158519922779283440990944893095276130053132817519612529703121440918290870465968860322214954154083716948719971147462614518150862287305352433590464010186402733009380671421380787523931846297476438688395934698824071083350214785429571257126348739825539694077263762604952399747512517947208041504836692506034524342597762409624625845718310379207962955587060745619299883422054383999509972826587122918340109812302770523728629551182701154158315623005611138338277472325063567761856032504541936863826197231781554080437668309351938253809105787052602231763063206417579987731518140404420125665142186202450919366107010003617800115831832963810330496101283198379911710337518237358428928831505914834312189696267431424517981207267818923060983916842042308020342512868607817033457645745483215608211253444720480634092733809656997148592516986506201025944321822569907042353355854350451419508330526855988335761800704005801475226256636214609034474246029643581122772179866603047907222646714118675132563721411135994241162232835292519855678152425146475470377570817159852408632064864294468785505427032124659265592322560998350333578754298424164991807448795722997993526725849059714448257999727533903316326389883976395725931823329101244253603770865051664081085930320182795791295998053829005157099165150940973802850095512681472069297305453362481862662420607001412199541882437909652771452845383345720729640677734717314828030380189414319187446340377872625819525197566654850969188923343320058502988194645514632868214793254616935026156522755772633635895131180296965821238622113397342295380348746352292223909436882383134607876464717037743656044385845953724219163909489789929510828341845313506532764010217361673537144557812817450416808365457897660604257937353876072940041127268192578609557096886466605808915498395280197656564419982879403795245630719640787703066955761451763675850896427179700775473953573669329385438999053749030667332372634012177778383956873362453798411571895700648869437760353648197228681204240242371761460368625910475666198577284495345972926113589414979541521042257328398412822507926107399658747718114168551798413992097848172224955516072973014274985490123922765485993731803031234635616387638179723520909942808892963606281114501084469622332377729383491866491348497212182532456986098844466221129857176318163433908514995578054939724063839570454437238432264756661270135653268470388128600311924386128659358904568399093978957074135556328079814590988441395405659074685371161308654220562979286021486879046481985220781994470213719089617214658314831065933462591270202449423306921848667554644229780937316670884288728247222023730764864099763888692886043931898174632699608494932806972681756405746590488018537970931260072801492358107557367137146821767891413215422072783053248548945766825897117841753715623525280061083482833086277401506241050378399843305339568371449773723878457673370239081349725589788531424539200973296493637543158739033128085613558943934559272884851168106026228372397129753240789585911908117354461551571448575501294899765659834194992417861432796097686260806978123033187106215839461362226628364092129831893937036903578468920373435236621948759930213314249637204121883169171210019823817401051377496451033940333864759647465498602137602482040042723916097690641769932766779574442318355777581489553270281593888832602927887869931394151926300884076102033004506255001101101221054409958415426325423381834520737921472739637542122879297617797549303537671156438229287763188954588264815196269746025863756258918059292958832332368895057123130128442157977061402371939949466429427811724781687710625408738729934107345567486820231939241191611146794007502568099003732511352716363721372590859242749048477699625388284366284722560824575314502862731268128566970915155523266681749893189169285769599644942523360241215086777406447367881285809246913701829218182378038318658108021834859972825381100380898670729331672965753628679808964034369353687359796157153547783405916197023476245397090238049294844997310516447926572894165588735457978828880183726819454716335159769176076998498571123506714894953471501298557663925124676819886812830964081110777638579273000265329539071047009031345326213620440184272361974774448209401624243556201082518552280823694231047596238749051240675272640091281350206768123746719876689110522145364187266364426198921542190729464806605271726827435010158248363542583965113972160856336674771877780889352714955526580713681724726180713549921557336803265152902813863508426465863071694324994307287761790684947036317307177004015277341737125054349749347370460104938420712045492169135768533653526655623269741819551975075901988755291987977635610295526514110014815080812459559163459135337853696267875769705185811698721172501806972117326437417737725375979759769962835901283613963058955524508170770932898386206795300141103150001006002948178017182569986846602756379320551580381485472085102178883186767140581630552277240177419523634763855122970648948645018819610639170954145753617052453736127936791469863533670766457988868667507757703994753149782528557562562586349514721936485313840268434138283486040147034032695235224671441540377767363589298154923781972234458259417723084062806250642524122223659558514866924899793443492501599585869515825526241988661485355303650293307200770432859765164295342067114068085647685487061127093432754281666139268160010376313799829941823706569088478861953977967775804748683191491595926546598221217660061948675751860493644285286662117802755979431867104270313687435580283386039162565688961621455019428783805934530211573867503222955411575040798252894407789305892904411754863986878987639505726832753110510224870872580070259346384457485909386853538012126249844692650195513939693140620106106571306375485428933610787462254038676174950253664579067548691021578608720851355153623668351726084070223554427721295425580562461709046838821239913133019498467046070736514101232959817327548347654296679173194547085139054126977852242855109440550821563390104870472599997373456882856136837407830695881739757743895856780892361404841587365872811097662763924599705304150155651427719159703647910646212903928840409432221907592029038035176081931129070148352096956078564379132979852721058523774981390600011928128609003544640481679731829790361967999083538382767605036596555870902135701182567503350592583752328225139640940209545679450506829208211104193885767786264292575754523510927869049286134844233514359626327970131648641499135767425273281968687047437700286045276288162765755537218213187901996239969007723182098541693095877802494650228998286990361381429473134453675834476314416431646189373576566117578645731434793961823933013795453562789604666435183203972240378559055379402232425947698028100902666527435016974793021751310003412411662586692983168376629033630675738138300325413921895979181149402279557209890146981440984605637157012336682427713507394410108202826412263549240380134762877417375001324926966413691251402518269468517147653747800678634277495062966009524402062994243691955862929604365896261421267641932101162065174380114821921415115803501966921895424175530841575577041233556491412234717314128125930655689241024196573640913703763142856593218744752770188204138383287597290448159026431508324186203647236949103373018651207399107256170841379600053115674753770338460108082301693159629374522917046258326828339354091768340874063634761325840072683771793104597554837989211079406144264662888902298773712931652847895941071843552106958877473631723636620913861076769404870107432790409199646105592761573305048379293099006324507974994730698442638498071891586729774578344692680687671894601112976505140881290733090571299284743255916420987158174001796350752204334425744315881532308295591001524875099687792526719960614399362244956912179215236194293064198017707113910077113855141093359873826670201317375387138601296934328361403636709217418702431176997813365743695483703568488926874046966098383320911703983346119647253874729842128981031697688228688001333369701109472872342682162314075474898960467694098100959281181372585239181052265048864735085143004596099204823177422988684076306322707929714432645180265421425915049258000943414867863967976533111295822735054158898889409354840254656783123427960126244450036576777217470961733904413783901530981957737059094740854466305625193526691536866914901499466939042380639015335495254875400974234083320935931902327712703715215211535676713764070908180915155203094442921646191518501204610703640830883715411640786091790461963096339841855932313750905874982075166124357794286541520407579262857291693646320483465611000928104229584743412725913892640844686577109049850222597184780633763126945139164256874747345554419124163216776396878234106138672356099147021275252809896224430641616364788277047346555268468850890101614598498316575827058634698102508521318647508181657594318195085177149737459500333843915721570713146439148812319578166300378652660039190586228728487325888760503595525237498868557637629214178884998779423177465331137607989909458150812674321030676990853698541547607839762545572175763138660147166830567945431229865752067771891012023986970933137653966881521498782087781555872136833637199259841744729253545066532559729456349619127747754640291126191168965585365349490535546693864571980180819599876455655357946275832413050162118303488213706230618150606056047056132432302763026190068447081885925035705109432917453501813392615641370638472132961672783455662702732552010797725519760712036881372277860479147617639428956841248482452460946270588639863419656773115988408022173303331270851795410257745858982412908398306161981126212382554434356272008265035617531643610798450998105535454975328159819812491352840801326544491687342918625791782189451985456689028408711625472864435321252046126196793216377533615988295773836826724733548297203842809162593246485109530931008674403839204012041929824189623822398313981271591411717136535356825687807253134785246713219561493905313459985375113065770538170903438393944175066538996350429658900802534433782347425364566779926923051536003082544534991438658809170858131919498524445387258005815296611646320112129638164140587494253810964518435624324744983112457179569115964499808280788058764854900840574950386663669321817829135081435338125308935380525668784080209646029606554561912912308117340431286695133169395259698709443861933611650085814775925020552760408425348542469979508291354280204121622095589401079985829432775880422479292001739901350216950432736290133345356210743005574092009388210036332216948725597946602151069486397154871447534720128060022663687004864062070628648703071748689332597617425482616186595342290610487195332919753702340418943520910122491773059616720916310267797893249293035122120853014307228861174332550267241630778192858184133218525618911518716517005076144225540379121237820150055614866892118920915889605595253399456426204067854111924680149907289974234432093612124819366963775629188099266448115617557803744993790253559126702506814012667938969616720363504704692547087823068514919030030585105712642062337255258095177887196962498904787962426891592560119560414993160817580454065414265657640489555249973615606634341810888545607234612031704002039269580841043942400309151395514533222470188660750602360789234032653422299592263529830835267644911853253661951895094627864054051892883187227727231956863974791610941946542784717440714514285760116151015292679112946764273994871835091019849301306208191819990058966443116440819492452475272184883992380752087356934223241119351475805206202199039954907984651616090421736340016518371674737364399446966097527465778883079397378719191147590626673618928988149406810352321446902425872965830708576505656009229804477553017639773729920794132950347787191159317143656311061306920040987724370693045273752836554649026605029056367465667126244629991550332435431825231518945752461159052009681832453601824947965016830658077399846864087715475862393031412772345445786580336502755408514882099948102714654044480716017543980199752187823077354868042611386981491335975284140852792192869396688904895065909945929904981942032838038202881425516116014452128966567911854676062196172818679478757124079431400837250928768239203624755460246013720673935126958899833295752154279525040986628426692558047851854804293811180014097056657140150856799065624092249685084201725116692495472496535178214172939916479841537988999525655320802286155799228263213335594373141576658980507476070222285822547777606897993949298153758297264297765419152034750506060847723893412437604106244686388361011800731892644324901978634348315361882995819949925403646664857917582367200182114938002918505914803999719095897522702864767945004121678829422081529166603560574919949449267821191336601395559687328427211216046388675038525387616848793961191488446879738091267930106231072160396839415537461270942436766856021907000175187213719026373781365924267674944502612817494524466021171113648756549393453999989774789401287942196078875276911080384788789697968037807514372947092901438260304975746356427590111565790676777407511877646923451325720061767004680732270853375664024459103018943289024709885056457757578580256545126309116222503700862073570319038616084838498627938263561757216743135634836838671117268252923189780113077290227385365182790665777540693779547746426787481572620355846987190513053730880603520395002552804497492474144658919801475897043337836491833959456725172911271809232930468550773284600878682799375258523413171798273526275574072632042687894156672343430347277032040668090684555694349213597232789481213532236980422563976524518138373629947500210442370402468888164531074129897731373816582982399896312455985509977248800897899660713181499236754158798639543194017029083015250056783428028030968518358296813017035278694678391084562171371450698952514550064348000446674097155861213986325371656969333820719522860780704864559822500592954794719416445142956684789883167359996561725959455314775693146560134025159449840715487691764207592996473481851863945969322758697259804825164077106703446577679924023519692473638252886297109127341276941279235673034593681991316952108154382397551050950854266301183614930825093637920265301736817516247887506346682739742511702735401965878727556430355539819408195177966053403104642810797915041336096323579308342648990707929120991664486958022985854632499995820495926141234832909370206063021855143845844017785291173817769798711860639561116461271959094847281997883003400163845541131370009821533130809787392564922212330601021630598109419573786763301422357356355123087200871766526654540529728432971069138820625825257679706776042701807521472150885890272906628779053555599753216635297278537931487266480295412905766250277529027169354938022015193553107364468904865875332411141732486518803456445016906357191851422102641691095636734385218633523648334997238669318311606690353752927659978139785190246452700772456483112771458223148372984990839255800233207142171422878229827013742791419557684707919932821521599249043550253405162824199064661637286607708011559610289403971287230022751950941643688586327553056344260033094859812053477672606410951053173097624800311664870501723685829888827574827713188439190554510953824288406007088682850176097756955279664877425896764058754777941222497151140689711016171633921645114602972751344632353730736655493756321542919550112151981308209720590661545443261854877524040435608605934994489965861709655896345461492436681991105137268640013066623707899386812602666203984419479874224415413684451653995911554635576912370189784469864995660113420181805469231510415853739843543391686532037759566553460224270234219341040086595597075310062832752909922558047417153050094925464759438120120788315706134137183708448902690939443529331071869930078286935671886110723338774315481186658250293432977016551424708175391647750691687740300021556688485899374096397143719319190806997426296568794471544192135399361255766162646046521295902251033142304442908198948168162978651338565718649932732939139264239339030141170897770895036406911451714037018598171810077147374017341515154055943521573782815397886009655561339510881819853560761902689873890361255210086972163184367809658821840766697513931131386606550555007669843081936603292402185995222074735043317357454165637822454994739965021311568668136724768058808529761316548458283286871565970050733796985290948767183121842361680520194210033347403643606030748127673037235039634662853894401490956710027700928538148910756561578916476869159623655646372464766024517220243315283200945859444937913193492217712603157734477275234262906497232076122294574553138244043724906340365929753960919223935283195907273159748692020748007142854538542998890533163436553664498396255089218005582123936844187029994944157628734461539225819612442356302164504800794893945332200795058554842726847464047723777907426733685733773005947042737163562619300585902280924726961910834379645742647199154891951791348066334116666233741175670664263675657174809262859915621736044337916919452020965551869578823477740149522433684352319618183811317662046933747889516938306462550592715756338409184098998233882004977734864114824675899640261752593282211185159452255135026621034353424227718301731193948585228871986107892871984911144954737826961314485601855771067259643624253327797762245663189663729249567579939352402339026770869263006780388350172501425343247060074614033725592004615243765470668053407681318039949313818496032572799661510235828334370310965430472414544173308811809335127407244709017311592179605383286481981952329308888784304268495171621128380949959867982558819914412243013884231830253434914133671222750746341200498202799849931222497303530529796086612653039421166041670589763888586690483762452695888783095850333303823409078339702068881135798358574465197114566619160725743737619478131644604841160982166991173733703800597884973547430677064472997147096238132330144944256857972595967645712615082933395210302352000765773050112589238774539756036306595239979161987484262479546701252585253216314007420268463777879707555256020792502500301673107326953027249577431478523839017466195650904306677724253387495955943271723551534495955847111676553146911332192647123430567309188902978210812741178804158067404400127079133545337669667249684673305256793169287448582346192832893564626407969323022846849681688351471937853392493277400246855358094432775242933334044951314316944868345667775819321660829143850110397894433070293303480948357006353926355905122307126869652505528285617902003288029164583461702565985238126002470602840679928949163635808559654945674272725630903744897198923862072706837316935980217899441232569122334681681573573405728809826642018554372256547548914954869967767621047204623370840722300023107099256993605162149703133281124853134491116254813526061115760435223268013560743500123304010140547834726469882731442393040511703983530922981398582029184522189456213912433455286324551809566399123164149654703865235605581800376926751818590784822698274157295785115713811081055428394725048406040382295617569940946279435848936630776182882072069503259587845562648693168368126257136120989912326663242199496934445314621649563298591290324820842841085766717035673734980159875824439807973032280517903684395246842412681046968262421070571531352184494809761234834254189579664462729248529657385425895374783658809473561650342391805940312020391655194765486981560029194491317236126309754219313016665304838952119232167431589292124365605344655251572749306237211589869151823114987071180073025505871531290891768940618610989357517739454086206123161318644940081809684371756378830330266763919261433528037498008839258690034070470425171906893779188391052400954244613265205962166958298591281673120356906867054838818612758611722364851735406489242561320993070222903589911576068527054454611654889181891245154530185404964721835602958591768758402443456160406768874106063398602438684194517435226772628196252402358617307415606627550485533766251395031293213340808209755148098654906954814000781737618617673359004100580873012471909418654260775991829969932764380726241291783932607959156813738865176217871401763412538968265534223147587268301719656705406047390620169231509065998077547713756166188178193841972816949771322992857232424831876898219446173292421302952819362589468277655595696850172901378635550826489061212441287554289813792896286564922743574761517808036860296272328766444115078750098567428590471620771413197746793722501112867906175535169205272540184772755896840436167726705078616587369579409663657234137634367552045752435815328685892318410160049291583920582939232986484572877843627471262605547715265883645829149770865599751364608687440294706997076407311303673932231416316427221237115258365752133699224437647586413260058942555226330625196693542983321288562362245911906887251875085422985796359763304539716454906776391719130913414749152307933751665905460440251471689594534216189411100477618422019148591364852025790032469518886231431035327631573330470930974821961153017862689029523281557717144238657837075574292053500589065264046686566892106322031084930254554924415182519160225694133554638955121230055253727832919209775283310315296939469657192352414142119862484437256438509612456498320303038407337540596496218489402714142011947154282953481350438339419409865622723547698206158427140119891031376060887501250831490917716174903799014381756858798124732188811033568066832849010307013894976691635713099442573829744154407777598081920121130691365898292996644247908583094377175995758370221796817840809980551078607078436406623407399650290880740637336582693803251562081721310055429313477755477012748217417078725847690801179726547687425541990878719718564528724470088203950150990880450053367584536586859909562257047343228326648994686796884971487337991463262300842069513206163943593853209089889983465733221099247678766158469365952484537099622249868755322652512797838989218615095568099667142908974984172697041281149058336523330311075141599713512041906540224486854122694708382469692133843565491255438805169839363402818689562620574819074809255199281452543108338622064624927101582933560117039851339359021932934316821558053722444997397321966771733468407249987702510293363669034119660645998066165255509690194793564719004364586149714552269250962643686606941516487452535800025832221074746767955985512826354392881574907448782477953010681169067091612347853624511683837266599219586628859485240206601615511004547605573515126265189110616264626242620267255345398342137115717747696777976487384495704682382666096452483523485644323931327955243515173289366169291767577740820377232621142871262518143457566698698245719385065336908425596139627272738737261159000417586437884532088767620256376167420181380367879247803999673186536478309892725225446896554447370266337821335605826962043368649520712944048809630728339715802483280098018606234390055662177695047050247256924041329282060657510463478324945676756039025218175924178021587976661035554969009567060238584685251604841266443125581093235440571427143203640330536313123373618259476843285608003918948452349026741353270348428422260435260733427228042656676276400253843743863284170056327382762717168835638949994668267404553849497560583581165210608410152039425663748740450947246297252601112411209019892066606983204259875935755299536195024459024321172583370526703072410786140176394664420134646606212188795768482623998724396119094915447693824187935758691374647289413174719257773067304774274635376974937281594522628660461857829624577521639552278831366963207767976615223126930622901796646646827194934576871641466697263071861103445724194616743320436849451679571586878798299850284436012448353461720883329770370685030124539203514877716247651240600308064068487739948470591465722390988320357688228020487048727636055317624530648023080198544745704017738774668778829965841171809541519966586604780505977733905300175517842306705687300344406583469463339145043302645862020423703315877264480132596207899166871025465536333973312752092147156129360572820589653639995579830243429807566921882004582114107009880555463398133336268538056146943511803749966103320497073883562684554904116622790258724012960668309433045402400892431919207473793175194895191940358618010389015086878775119598382066649609935518613130253309065566879012165857019761421681130636760713276858178255541313696609874104119971967931737764333255687965405836456288609012851236851579890727228213547480352761366501265920583662858589643898208352170590453885531626926698641427083737225984802534206642808873037900865212835747560970045775265742044678193865307486665417408528964075626162340547355787563568501923084315390907941611691307085896725240812396007466158555577605966081251826027116963093282040594422455602206837249509677334428822366604115262153383527013428449536053119700758244159694613168639503338331852255050430190823876895528785817371032647063377496709379178409982278145758220394997337977582958800618715417999934233441683000729820008537683315981258384829205496390938708232573959672344515843977333964964439383419269242449821371177464131511537597519411047614693046059909948471593245904184533324242580346561219970701481690251168366544164414411353251527775177511285512392172047161373557309705965693370873282600483863800331903610930653811573831765340525154080829273798938106036652161376160147441428322975475538839111185599869617699242774778709347679203762746384356652584689981153495622256521943529005342071532966765584830296311763329292219299138463101632718860920091904271087300659689610303748331519943543679496676870959612990404934557010915481830881198336143945811736969300299912945156086836815503583834661776624389497291691102572924091535740061715696539982493424901749961926358842945681632452330615290835367633924899116138902100931567875100863878434895053039104395385201771547731465781759970720292306004405220505855568839990944051929141227346450892302353881722173008996472394138999355927794788596780328550387906771403066221120489342229503597214678178689870871707290279751600886837678251443173477716451195237829944386313425601923386872438663153184547007402541242257627451648610960908140341818176546144755212685855602408119747140626743250296521096064036483318801771432612198057479778483522094306063598522942285047677511900445425108228341531508591568001502368726484899294712750753462499882746708550252241251389538230535481308861023110237938369362039136286197987080926980122242938267170009630311134911567795708562187150179169158436497976007914844308374255212901363639655444737276321849749372730655056762075302288107922754991563589631256639757977033684624497410740414613778756297351872341299707043831138726289509158839698633723445326899391975319689549446103697568689264973881577389984516174901457656860902184982964489826547365255576754255879418698329770935212150183739227783091372789891507424696351822122726076671287312011345439080315473608955653755813787541399637291607690075161296274290322109383503156822587067894088594248688351403247159560248781082405590528186332431665271656586538789663796644209565660523391192233903107267163667244542750003891252327279106057024259305464300622799062588473377272486939279765520396476693147476688408527373874091675049135717232394511580663306490253813730862845409552518524321416076493551673399325163605451334604896034317008694329844100733783108234916908605239083132574892902778216881650163967073694564591967849769544452634013599093419159130048952517608135494618885175054414469326050811851728320944987710007764953172179178490488525255043631691336036211823984765805185695987428128262913423117371682959211123003101891488417842206779841847136351576403969044126498482376153876998696354760805714823329787417362848313232898193250309378076723125345393202070034310692216051746239156732594561777117897234124816914167090578104724183566326088227906007174718609906799848043097727768170175655974143430892165057925934884056980787624363983431289055421166092440416190165660950071260720201188473042090183153164787386345332551996605567396321755538537830610893663171233032919948689937240994354825539687157715069203220520105966655409013029143716064555522025360164900625127272359656474721717654778141213944284374346610096691413527097805932931193127195370594046805032625736069862936650140090281095929804774795816635854050820912286391710849795663322910838122401546349318625045576148771282138127973059314232420600570941734804739505374779612326299895381181833580724578396059729194987216716355859754453826914924439611065014903406313678336060704916999694775215498936682652311577208254836898633519563032698236916131899200517018702831867046281007492496001411150995695809506272599256296890638300882421890608929482255873338629713116643755583415407063746670239472393571828867728334347837659320549863379827705904025626060255576838978942729680473454934273218434681536570180370113617031060436525514830434621247441005071545243598435626261285987411907035315562296021171399294975658397885852525740200182701720380908894786834978672890320219469618755920602245826994203776552589153243401206561641765893927926608117859122542889574858994973071298685247138994909031549342787794997825363541416081217335851332681843323302691553805814827859069284748564810744312651503872211049243864422902000402129735033584506424123254211314675363551392876420369348052860316619578603387255556161535511732805428443827312223150013728719012414448255478525742739583336462590746080182877916777669369969057202483124096304531635003048579549573984656792647434314533989437668084993487589740763438876845837330114246573124725619341519852394968090493803778978925900222198147241802699582528359971007206537570797356247006292595070804703778482119751374742978474368113364132453780674717386868550222527417911752692038997947085117624148853392574377300306574328475982586726892465418521278623827406063048047784892835133532173998956987001219822832530226629131896314271894308539629031251948378740143634005564611929464438567198332918982856833647755484426461606506657083411564048705716714525546971338849589387751825472820023995711261076386925461542660305094672141914478536220990378008525031705100657168187611211641951238187946278350462935250660475211956964656080819605885285039501843782250958905324630616835429055429860332269094199728276278833994091008273712506913568331586251869764036669828207626867432357467206055618454449906738191572299407256980891148256499461293583837114683868663578059096469046695322962321354339580289758146769080072827342703489019933660613107090818296639233273948098366934756723036853145459338272795150007633199671198801106298154019735042834959317586348127260007320471687822620966873380088657122844462578447465010813167612003208985470984289833658168247006725264394861028250055293094257343575582333035763098661397493415498406582401582762848363732106663148831833976217121646979672674564466296330039924901646399322449900873192059844483873271427823439088163371342001611836242000493571048340066758970864269665010208184783428645481380776343555975291845013278801726670657276787900889385587311403516596759151814205548260599926180912647046892542024481076419974976930190662509374998284821953087197062475188430837553557108546348290838544490239920223391513299407565793087100120958231028238980752930838972742052845869364686938744599854593671231087596683825804654119575116374038842383496911531732443894259443012810713877577636745591119778975995289567149709991183066165771602088330428702532817381133028297754782980625671232600358193734891881563807052427946648897112723989245158305475066832065786749492606110316481973794942528361102800024187758051331912909673060339982893552914654778647091968152570700067100516282406701955464961049516587097323748848638479695612802466244049112539672829405395954745069799361977356456067173940046622405200305853245441822212940169466887500015161908790480120853548254400299823888349611260872252253078827339491756071575699873673876816061969340434781646398622250436977853036604412832776243186126784451171858977813951058027024386010367135151283927177695315494490826823306855227004983304721661393581531617805518042617646444732293323791738692990578947645211680232517407409257848772287250838623709866445269393061934106585522727311710926385563715870340790021750905774993562769446391304294907993185622942019895018923991527740495063860985893826681910177423304905220112146020036053727657231265003015261514857189163162477852702939945949931721468838789886763532080688121616798193613407098970105157532401618701399649501792066082084550088118679620055112544295146746643609846002686566428498761474223939533555208189412701301776708623538344717437283791660481913143678105379081412880726334703610035112048526765084785031825183308873811422967274920291375734261676582706154561019640046235104599760727731513613065725329071216896901576346214626982635595813593875384826343634047084139399471892635917780029866964416533259652118291739035633779958629748273990007874573417012570352118518091866375726723542781043165586289441394960068737710499039036755693457327850720180280734225878330201068658586059794497631702164801775341827349106506994331083179964931206127128956746046684682691960851291606688383276799814755457417893028551915557529273581859199920182078803140087093230331912645486849088835997727707660127302475950633650175692494414210541738886672437335836037925273143252698541928172735702522443038734131136269507265386325460986997382229146822519669302036098251394157623852152487181010451841173980778827069346608556492651446530106997625759287673255405671867314152018691352403489818941124365592933609715506339738587139248010293945752773837310424494136077529670347130884204502888482638356518875868649888153632162494908840616663526382829695060634621931291846008262462303259393418784437476237472758725504476289854110431656906104172896156397013290173139815970563924139666148036428657983240303666853355577703651163340624215817750976043194642745737206156632331830957350006545199733044735702931337804743924194202233703934716619213632421579484847228673460476305380102156913902872591039167194516319998938510939029980405851593534782478649786198082232711357909224848218925622670670255191250559259106012558979719739915227455199853138775069908805381173842717205432797610880519927026161127499515765142109194253299579389323441914391179191918781437951097171330656226035051890065107100220033995717189081379913155920255950623670349566450513543331226915221367242276056195843142507792145707890644613210937688663249250801853375617303744403335701003972294288507010930511050614464118584379934368920180608107312562598596641490040204454967576641411817689452208336966509642238508116514720530922624657401497904943084694287453924252121331115483401889349053557337522460782224787123511037693688158740093164886435107224343718966944343793026905131627397494019291572017188654845875553735851647117287139855442741764565716125076295079122824562504985234038443117750903761466077412567909135967010824455631465999752832771948924072956313449293186074056068657713402103634503628335767643643647089685081563916304933035759321155898490694140309738027619502423842520771300211746121624964636659490521675761817597118746443167391510097244676000683850026703868976133779418605909433857073804655136033239664556989478763228911809144596944044673360008042351664325934993532669868069061321027332972021191785809200350794398577336236471317272436486998210912738918638585773651207062647048747246168938436504195151122225953593209121891274894494529775340454408070986360053507239844253198514006338902164726097654259224826911864129782067797848403207369751084352078302340740406601431757105525837563171803513742414531789995618832246305948483037504153850334453220602824060832515659707050852016002223454008342635970824366699133502216722251273815143840626646882655474093616410915253279261750964063172536869602795216387697009791332052969894619855845331901541302572759752629341608696878044167574108448640285724203399982439130552720490347018449629780974696323482183619403686208408352057393979883748691232975424015364457849804494272071548399257941170209406281710763381822583809834492975952782664674488757566165006658940099339255648909031646782621100307957138019452011302971889987807232451813371510891113980905372771277544249483670764243679047133444811991681237945169220790612444994279456000248266195943760096559163764277837859504149670410471311928518763171488728443294973393091327063980578577039929553977874191036298582864956557091774701900434528900176323750123138526074165555412753172132356304551770395997344237324757610620189300871815210553289612397215932444645170057590390892086798036193302035522100057821843610093837628173866293709188003131445312436396055034290124247664848278197464328641284515916370993232326059388561469018250780049114959801032589948062077857401779276597672356828261764608883501584036314855116690714574684110174880403226856550854469362749344387199224600719306820752243472572894221197936168033907659054334928306754468548408507665484686831275292142686193087659075333274802933795393720640694522249521729395599110813143557862848195279059779534808061413283472310185300749493199943072211814111140240656074655442169648857148791378856650741936211759736063125718080554935193163610676099875655441485877158301208387451388739707199864995062300821537788791805561988953020096778147465673136270827655336522590511879980629470300207868510072104112872364589773810233826624312613748321898333525979702137372589150656400812606770245349394066288392404649820357087504961631318347975813736761750488988802454639491704704541008045234323074238425740303362546112597486574084528886421966591191594122334099246573430326067735584369065348720608609577320594703514031290751784711874469960941635783184073264054233809072533840374212900836502824148789910254837139716943985868142861243772763144652564592301352214841767988578176714415632026748052804004280349988889523353346855777559003206771524149302479606866760371327499213632644174789871841424561411059576329458132786771664849323241927499843283743300287597433563917756492771495020504170107858932155863097274248314461613137532635127457488650110579092758280657375143925299439287844919911949534876788717340037854316534323313970629701400161828008496678621759703819457120330727741818066347684976024672567297760824237429095869254332503022693581362227409472027197847182704554325114151336216113884511147475560562974770784966605620491450941853228347718178776183893379931640448572464517117460401740812970386914026777179487853036949834236516658695645531177583060408179497139219315574926876781455269886831040186841203727151852312470598113156230592095418904205933734529295159808896055605589571370394463980174531584855353279417569659343579696642993854721472145564562927093663720924269837349045180039550792750828759535446932848510488796315072380328339092585553948289102632096267459829038090966923991552351865409657037732924048658168079052629663883513856254924391844454993267604171100351478188433274052698671232721130150871502248799968135869582924502834202222914021473386157079394430445602552590169160580588543905604976479477733186850641801259872463136756112809832795264509532631555151101166412649246665128267853073932541833733925702675363046290244280362375631380832130142733237910611236882747474737486203112290153855156301811384113055645346705179923506787377979462925431509542092672765026782982101875697097309529000968056601104279925208631456478071885798485436264562519544514085599519929495062075999286724683147832687818104927189930777564354084389449249961660801679339463926413174271997105568474669819950377956747749083308194742848116861082749278084776448957813269056565603324879605470052270173828951866323085533170028953951055982704731696307079629577065684515287541912154685158007668077056009567307655558558779965595452746699068865710521977134498833431929876731117841530243735139946166500754931331302829756123533288934869445043845033381106859723856497971865955448035707539053103826795001265780236084034882570844532416582295601829157129072042930723046267605242633983049670661447642871880400953994649836846482387010485625012037296417109399131083105918479256987595009353126012261708700143330020870916637545462812583565902528731804704958143423736284761979322174031738942079710458768847450775832996786907541681234551638637180183701144356920837649023489240669980351153482209433602745644775124200346359600081050750444695017411702566717259673678600743664819164822428755208238084397049019123010104643988223236447110072441103859526325470061244292420255109966369638360161883176818756268331233525935522199886560690126313957259921982631790150172576405445635774838849753015582451817408887128470688062502627860957685464797259217762649433095543895242966419230357029129423629502369573449854178361612494102200202285338665670310742037680687581354316752752603285819902548621934532697578170330632565302870752203664970319686248608526403765541583326984800148953745801520456546817696711410108562251396792631177065775760997248803735740278799599956221282741732790703747496249801497033438958963186328456557625427575884861888157367895304292494836586612944667533764839219777878417819762970919891412117926259519946925543097477529621728980666268463390103479543710736451730995766884388661394403285501023372719011712173473302018569276911567595958550933389206503613448555620878645081590951551484512703358402480473944792427678747396795605936709556507166388757729548000724178575685487177690056818075726111122423340972200331024430152683678151343596267290364569982751565016018945566363725261034497896732796418055377181125801395160527601332996412640485002662890764828865471642277595753412393462993051192700430642322585692274401737749111841765785294182830045882700060151736225716737622054020253240540715463710184777161041921295451581480574899475316968700351225568621773895652954841029368313298079399771534224041097739767242390647298913266690371110161879178431147919585278245145871630989063926565690676842290020277349518410470921556748703300471384355716862137555535549393495123009966824040170589826881219565150587149693690872544164331276937325232438267859295970880336199228249925431585387690788814028230340912384393375828274203833209483064907380210379550659853216027922467364937172023749025180024869907556421565956200660925332461340783500587950288116953172188716066506626234415304134116059002745144723182498108477322406900592601517638764484190703653451857997844291534937189893841215347242895112466723243379982744353982171803822889038294411724676503748927681175961845784606318493386869609384184545548905883330380444755455442949283101219626043983870695084645356033885689435649854735003560437160615050684432337609209277984602913125488430536689907748384412629890916177132329930291652639949122850155602397839725005160354916654609242347262642524095057701519078244808304764320948734225106636139409298276653452239211208927822816789193820730093187841015221934624062382443360612525749474372804305684838651943417618081440815000847089278890515993746571421317747019662947738877642918782459112149387099530938255036780808465959624460935450331097160887957840128232757618575579741628084054436739519049847603117447993965000272200815562218397076084798692766256735066148532586514521142571346924299512980910565572306105252202360253125194302922787856983603088575905663929461134558999730951990017253446365303693807079125326062169257838277953828479064174856937945336154484247271400996150540066822259251584445541680541349027184854276192488157955866861955590064741662488602320908646154613606100233370953682300119779794792615093707055363928073543097258097341714113434097616592938161492575810546640787069384452973664645187189179090220408663960743324554699023767362671091070926029508228557216767227909992357715582276471862704896236262535615211886314466746632046545298901956197662490587753344935968343101593237778936146766686191202370307018149574540795745323314824446489906993114402071955175997007951886096997456184111056582163264899036362854827917513624809829657537986465693298665115885580353579091628755068174559183764849914445497498481157956223540113939511198218942831425670876085157435107444180209314861751361991591255736337082685274233299029971319440125237514734044168995541297785635188572673154692627423996503546168267671660970785074506897614000079438930741197331174770787758570904666490049974709214402647979325410995916730361751032966907810709476071634018708020938646698569570969777655661696822825995938213538057473797747601949867432543092833709113224876041744087125678999884932831047789041958360567535391560931753707855544609071530965721858140645978482587405684943429687356464710454899201704529117619650242074529878548047954251717315686226781312812075529284655213753686991993188628719922582215440606615930196832505549418137322102023890324644035995751634215854680176918916023553463217641891847415832931711432454292959833617184049972975866845875319109230547515511197866786395376932855020746733251988833175558271132123978576703088908604739206214733700472775941869944422262439554526111543802131347330712798004606868329908247699186527491717813376271334433218183400511289073710268357119727473144655691033450838916588889261553435130545409870806613574414494032032727883359764125116703381972663077074902109685109792260104462922229612727650008526189685499677775266235546279979526523120190892990227180317659109382681331136529373434781550254646002709846698610054438047028420671319097177236088665499865928397780618938263620580286504269225494879571063591311989609989021831220525597613776133464136355687200508189318526162821494005731589400337815024102881901597106148855862465128754660785909419237154774339551951620101788785264528124815222923606713528221843309572071183087671941241545294115072321623598496880009653563551250122951601874728221986457598494664418606632810712962522566354976831622713703878484773751410251223260012037206719673869135503998514020368043734781097777866749754030199651873069002285200735495362135394560374740532514098506799881615376500285276653684422803926516279690084976953968135201516809855918016327381493893890911929626624141905455609897705966522345407826810051776075137640370536013677288630669079795693106958676757639239845766936097628571529462472808084769852792980297985629672640797192891074538046966536389420800380842371719827371708424593186445196435408348083448109159340646497475378850547981905200301933048076492510432878369954871714944781282871238816531045072266793575689893535525769632415249933007477958530072805544257719095075086629114875259461152847277351487548824092994469682666649945804535417660409877157312960222785645677142182321794935927138528217834632894115811067081329170588899332684653529438449235096597537081550607565941011363493239782615511773737751143166798453054062525945629781569076578372009423316223190978594417816223561217806766396704277733580137189980807258525222319465869384445015835800393822299356501247683275075373706386558608643195964012830195782393690485208765816750161713286915132352713897779995082669764349575518174893754561269820089001517785838577175494736193338586638930811195814458746778164429555719885524288379017185119780090342349768742376613210719678516935020196122770384687669967070841260426373744855818524488302258338300542054490092319019930289061446553243495921279660660553940356229637460750823466894671876767459800232405839257338239399986029993714465482876741902604292676386636512959999100804359364087511075126566350182681164276948614961578599273348686710638582726847727866784524896220627435355328649087676051610384609135556946073770978982975263896170943809014040108709003624883825144432697523616767614558082108427553760178176199465681772902175776084031959957687143218530262805885739498043268076953276287325308616529913585847789339196276804953563982779638288636492303438186818115114044514805894158664044453661088429484989691911588012205307850926202446552195148284099699681518655186582806133551538158304620922643416394680427140102023961052010249068739323123287658169116886864927471727201723590277832859063928369006112065438878281921598544507631588940497166022804896437172776465178084381127634281488594480860925775125114170787268426079627776816721279536864263596266873661521161427349386578241152633079977457900629900362055095531529193314183132291910313768489739644171958348706377035878637939387326087140376859938596466356423607064658531386389249208281976437070607586421700160565149680835637002967565487706200452553611776171283329291929914076812686814173120731213868498908312195360152923410287438108640592622066481726434066663613542612665028788703124682658885761444051713601350093074343743021456944476683013481660050350383396603850953351488326584037641655975706790828129990813952552168584469374425135340727349941982580974246353877647332243745764691152992441050141987987603549665444928552565447946846714215317965615163071984119266602210797510569290682332323298922852771614643451336749486369116927753465689464018699631353136117613747790685388212893180139187684884849882051834790613529987364751963557891536590807677857181851330290654790866277211585378326998206199890387961507067073069868658346514724994934590143445941937501218910215082900574632438090117903830175511625827868302480752417490065048030051772926780723170966379411855429939096261075578620217142676530301524024246536566380461485819424543005184296942129694343930257581650764377690191729873369130137682477574262927260342104591383700517783343761570493054877452369502895646797624700921923899699183869737623446334167917000251947782341649482688690271562956231699065633675193458833135782806908060587436684224237985592819937944141065178816232410419236720590077391735402488575206549972476039468753251967986358270809547855474263016478616568809798528286362804073117108289807552336120978345627141243459306714864970570293041209716959556753177272562139448579063510808963740716308948665761842353683742259646248813636334884847744759167855298463966269218235911409135368348410219582757151023812376090816421175401346259826846501800537021780391094332273445668423244560058758964010093158320022258717547803051466299001377491674772289871464604409892264958840140781055033866110317700039796353865512929159381441412280145493388773544574410869064958658225266406776131013649664563851722723903651154528918083583155415744567667968024957546556837892750049606174206903052981514047437855899832811607283404949218101299416673065805806772187337885064193507023777808002991061508404473399340427879484209975735170600608545479982195231497473644055236285399039263826758708547171301873036536484631301845447446316667039687107872354904056920929285440079891084458485408414816144554823571216665063769680486865813383850752749605569691018682984100365810213663845704024329013120656344034599692312962731755429999311329718655766934483600392929889830242648752051415184126104689997094492518068801354508478776728153937204621878282562342428903966487914024785338042005978564322778790648368129614619482803296040191943006424938318672824992266252964997429046328477193847677916527416098867614097118418069964176537673098696920764201252772231222474878814251100852324449003033333246262986495114424753584819939626382589022628289813385905286131157233353058244613763296453084182499807864210246576331400935094299443015537872507276979949534722471239203003533621083971631000329065801427823695144501483510313192360292296269717439057064718424067230529241115319328462084417031737119901952553660944753383469733279492164489556137134778188629779734432662387970527257138702253228976393734059857621432856226468498246482798683252237286401536229071592473209098392197322074843168526999696030329050601928759372974933693659546710669850993384499481893256062220926959673642099638949945189747884014873231959772664609150146932801492136500688956490109599266326365983659594062662411853057007956895401089518721874954710211994180006768249650845095118818880027224786458712990886360031679192575687229516801292558661184444565632325060560116421209542544296159153809370484263891012765875982032758912726135003721017983690249513559835568887111521627989353220689735963217466898316867942214852673170465933480380184108628947484438307513611195787947524526039706887482289736475620012086377778616306154977651175047123274769447038148469453501840929105753087048348215826404179574328313899447173434850109461999798941944110889404495752219371700387385138941781907518948728720526942837685682143370300524224611148725746962722520853703058774067539556009741203413650039139762835579831617118592849213014516929063121863230777098121321883132804328284508525923996825551601921621043376892857426483820835025055569727035105473552020903779249822435154810933336218227453617126502900027233576820529494028397844781640694542708193234092521589811243371312815247513900081060962305584598078945109501148185401140246699023705521521441468616347535029774853421552858932792159708924322095141839147799204757473031708056681298361103140894573197364841119707850008405351304998322767060952895055790945229792599579406783217749630874737975349143951254061410498839818989188835719429325973757831961335489212554775192607882984410388670874267942745154963078966216088791508766100889187564731323751893232609153566788568030131519747973263596697561749867607373507267088238556843459430447552232428727584314336873941879136409073716527141904826495048223537038082739963969268457083034582485846560606597220279210452677028160845490043871071658318298590127548917181301047335284171528896183137815387921728449180012212663122947156426967809573843565428930280962762438970404382562411963092108061717523989946147156701393226945553746438996984502967033804853139699058908978921959442105529921496475982233102702657130225082217946592287692533118760055260407772131994140672330493197827395827234826134305375332792805851305513072889479539399781098975167573740109598591074155514473141543171668326622764597433633364502997569383655293854979924936721036226704555625141536581416242040476274502133028028731894463771017364855201496494784377674998824965194039353667269607670294040992318968882716218240117454428415590977653787442372279407523544110100003788536654857042691364088912580386236692313444961579487121295854000741974690541175718746507166879922148998061615410389513526332585355402250111344887654753945889257014282634671480494717846370791624857091316719930021189551255757990597521538405177230295203577672285747469041822281572442550636924111133278919833424568285604045795056604697665327062907434127540377219682143109529504157920536085612828230819763805653069629660487106593064822822937913914066961483546342490022730173133967793723945722621624217755327005956953024596402972813875424821452469551863910771912333843375524363992503067694616076518472176654595617311446385980379087391252831432576423712758559624118666489842276830677026019434374156667892431347687070397195735714928069464064289897153342641776899322752548406238769674477233643809302304855060327841042350335509754192052148074566783310563588583891408951279474550495286415474310597639565756274783558318774871973097910602233267246933100704963292883305700333476248381681427893871497543786522021449232919979507543169921949331719541400584508735096116093933522157480610291494389244125809382300083790773453458483731152337224205505198794961559774728479640266821849835375949500758272770357249421807841036597157982336472244841713423889015186832795665039650189849582085743685750583296988195780653858626657813576796127984849084685429423925437445241731615956514159396497239721798159435845461543994470758517688766589536225377288678764262345278760389356651265373090897992214966885483341024865603644013542001506235457617014237107647742720377443650367864714059960938779506314904336188145252709924725538897160188450773623238305315949774430883664755657485998171120750560570838838978487679937252753446126466881046035260581555629458771577589884649841242033800716492688063158782914811157118713010808581544902679656619543353027125096323285569202317870379646379913684716793021102910122204794930754021159517336310644786462876146937155435960719919331068674877962089122610381158000772130072297938382584720204457131497335323271336873154834953125814323701805700748667787041410876565809003600029209192636797885274816636725766135395548877219468852913186853941711220137257280861950364011012009746510034271838568830526913789354092825267172226229452690045993776785872584911573570154395393660485957963880517829926026120384887241661691376735775124085660474861537309992945150332447561357814065813099640960908073911091506217376504163730893718195206999263881141155029842016485874740954228454213853473522182701421536716748481514707565945608167577026657468754395717322238969346191836352413645283339041395249343687049810778964363627965397576045261855648134657895114137626515158576862833240069314307563910364983872641090873040813037347993385182305713696101131106871714045493734014545470820804688983455529335771364792993225958161317728112562963389285061145712950367906439252245456952454932482792910927345441125252048428257555967327252931333369426383784249348704806909655035645809532876506484688856507910361487526435013863993906294949402314619255264507133085907528894413426408661001087788346840867286019925397608872499797515680699554010515107312486126688279139740892341658381347914622137129316954995479960815389355948786214164325410116273932916525151981840940537513294532590758615241289596780074366516674182844420981669799687348417127514076302804956628929376402696930297954086106822267946384751359661658498317915779322802726752565770770779741764121013414872507113389635814543326831858529148912276231423342287241319873312543939425606518561662903812876682863375861115972541985576676090490172055831969058126194807603923230367576675693274394059990387349948095481419844802485222908937359000401781559552221003251420968795822232658108377602915920039492486458454065183605361919780678020810857481412043096074895765859018271559762059392096162104969125510718266419603661704892120687324280319074451881045926895762850040596974137021681946827030990398398419666035544379334958502642154813008061667017221306114805513017748065750877698483506215445962301707021476756840909286119009840693430346351555192037599267519514667663260019707430206154650965784039788883548961905673505939444000492324662380213762937893141364256328208727639668322695163076505045679252322578337475723704002357209571323647086536736093959417627035354430487468072960426104840600671672232723189163952924841265192239370784113960592973869436756595641692030091816664191041648209133494638168213948689221167167146043135961808891445663672985386020980270128351917265234766227693313603984687763373018261571544873362128384478076861322074348255874011594474434346050145666662461775716388129229194716875325294416565100812495080788607029280436904320751678022332468160769782362243915397382396298513368071675342285877608414879764268394087275510952729111073824946443490729864312321985225294860758864609567812895069277489414684015318568983129993679494881243086370207963053659063142393643093561126787344179948772467221541103823997709868647085607523872585744021962805489338551228633782895864686238784577071651613149875221745376012177772245389251513931109707777792414184975995322933305079616395983348886077942535123818317024584548132343978602404069497365322466019028499990157031833869101414818153426847481302948778202249305916187729576058241808143660869169337050633301699895530518796986248399662082428531108483850410257159650025372724834511417361002414785746043628763577088581964331430033092665736044304744158553152508586730998711725850538695198829859871518987984060538256745141553334241764801440983152993730275473962465822033124153120471817811162999071070346439434837148994342827575758723777373881146374316856318328841604879750707170310637365367359214624512195060005857520957654123189243653130613356346286650500984392470831093151138504169252395162547580348952980381523064213018566077050183230212843919632512871299636282987658133397796041070889178471592737478962601940426713323785235238107308201875981414531757400107408569248358773430419678366035853907604022293708447655252492828238574742204999418123393656711095644583456820417564752512503433046685602091550053344833107429056968636650408075737494405011657319137756735168656467777448948932484035679469320814660470757127764328881980831782453347150935466999542571754016272066967685306485854270389670076034223246926632938971459009805829258706416283773754671193225683604467417744961575959321530656936175537213468106234432000760079914617556603558068827498511952428350449091477616509390044144025739325356592176939021852273302913730496032737547468464551775526072966845525473941922013080071032144922663963962132731716172645821635631475536699935306643766203229283151910760683387590107954912735731783335236303471431200106299562299812471081639077866123640696681248288854081349719337119155692017646571813933551492058182980407458902923823308261106154667107460326689930951995722694801041406096006059673591518391738508817418886856273506637506370514152268779516567892047769440516860203565864811391318140281484211216053427090556559385912071233436688155573993642522784926540647581812218205484583912131627917426675125655742061192038053530147483929524303412090512635762696671096560063932759677822872128543148062545115106554067743937599460397104545406338909472630981120741858499530067361497145739677997796587607308539430737140823702867592260422740863694886882338022598044536335433120228772535107281918471185223518600907824079579085786713280937240276185556448981905319847856166880122797444279994282300166768298676722397170866640861876580907883532254038432381930291406936392059985749757045682093418915184017322719195403462902815857840623560009397830474737435368850639306552414702564787201032911147653479406031704672039795931732184779721432968829627059124888082939598080563005023117154989871584466638699018062326351555183932029552081704822078914436474539312797802562893018086504029960540960869903506064208514266618317266928408229974852457386738605714203284204618741646681262437277182263295866678882644268018769137966096727058919475831509412749735956737113359384733522104724819197599143736869751596130360382113855243198803138113604340879123482679339914794166032690818944439376961596219122462500387578003940239739777392653087179396413865824683225800577548871304444287837449582657604273370063081382179665741503324129471086483452066646743546808291178286569407223562251908542869274956385465057852345020836549906787000283806181145328548178188941544232108510689176167474703418934322370706444867793093111706194091943943727120781121676103729899658894354563210589211810839740731581484945396726194205200860028301506051141587308705363583856726896400945203177643044528448738305976012932169058026156427269873525043782731237798290699397149668217842967679915233245334673362144193049084035357549006259817753611176177429988893818899927314715667846047294842441405393515261029166307697026205210186076053561508555127076905955384566205436836121966210268526720626432611238159196466564358936594092662335737026879613771292678635372886298025227320405385309601358788184007452268127540940747337978712018229976579782268397171875292406070402151516115102978213525206928612091537768178058771989810339527046652828276619902750163616734064498876694842381114254916668121602783215450052828542842153388621086828569337331899491358384066201816827351542661781212977422845269813671451316918285541747090237012304379579337826951569949012732429960365446117437040824075136590681899401008700235972740939463787088807360800025789919545042745022998659975745607637511993477462953130854399544018696273810681906998721514071451899005083440309330169896319588193937974343302849024612196838493233329687645627437665681742409156538803450438674060732586469512485408048180258540874234609561085618215827603436766955431807662707570458558840494818656338976809699632150972134480296573084976105832054329570107661550280035005280463024406859721929123562285774645112181394295244798379765233266581261713667600290683348423614920128383583089150158842217905956972403390249658454520713312503847673499031851619148092197583041538647252730638319311066243724036495046923787227317197849862091051047687978626051373596059968085175793417975034336235218129847614776714082224144045236595012945858040177511792458333287140062754225211968595647966482659891491813823284201345016608640269240866404686614463716100903567322381234148973830382647676049078401511325363148624466945380401232898211648066290540995910131616176508939422836369404858322066766388619427774991728624261047474337355044330362182707114124389149774776355054334863309689063580049299881405321363309054817007020183937906092745204681045072151147356624418916583067021043859754548524831743718063471105095790564728342663233200312888106752683178895082510693933037251325185732346545577932547613630707034364626669383694544008909418275305081923135033061191327083128998092894197010950149119614287726900865168369055769165856433155515397867945464682673946358103472798529796217782382706330595437786355255614005151884231385781525087937808440460900371703955706956204736393681209359494615904209251822878309334324485802174060919428606968652280817403309287869294601211053956510108195200675763561975894031358258976931569710740609640781120223718111047449612481196454704513396432063906349367667284349068171611884398143602291202448033306963606785794584742296573708587812070182430657660284128422610999589723498158409318293681008897383587518586759307660040693035388047824636794699820620027520781488583216811253352830841258717343372385178104504433448641527282877493619172755477561720247678549512965399396920295294627667449601001830235895077755309690539107445076584683047366252860455514803733300865858979559697848471815673367189495337999952601525983863407837108072932519605893225873258763991986444817867252975807316635132219275947222644402565868126567173000428050914966971527602010601389237515585004377119311104856960864269558185443121524116048192721824044674274280631935150951324323172324444674463790970728841047581193571316374196028714227566746904055033700080189630289085566316313969776288133123618407562528775482017514265865604018843875824066424255603854974125052283980092112189032646912835572320595106056222697129190414970225867490601933466702978412791070476560009780232109822343283121476229286143092077648555556940308213620898341611622120652628270379898728735239836803004391373390917996699203475088187283058473734970293587736852807608170293945131739061364236920709871938183748749778967327152812941355481734108428124609363040827813125815267551440982439572818311790112338982010095680818393898768381980616966769842459976848964604816703139292569707220686701330069244317863877904761274234901064480057293774021324087955539326585935253227589238040294816564211734774861808442234471018410664221294352400866757985983963737446976971356338929415830700156882261248702270607784249821089347453391404571530037407225432987983585974593530701894793752140648093828349430566692277240999586667207996808323803228259522300972801429749644537105540895058539862476081469673989561054516845571099898355311147562626604997237776642061905393667590352170208899670508403461846071670844226752560557046682453303052469468408428607853331148466425961359956970092870424310166531903015436694370032324112169382789175663679129542793414175501031078045866629131739287494405027632238546312437870036678393853008132886649406535602106821700844405697050872585763736185162215467935205582026320303446230357168236325410375704557779996482938709215083009871224171256943606465096856499025585848084143311665716692090208526924659150889285459233410191427376589382180500376157525690981770724166873494257305737462672654018553361671354101364676203716421736621033139491444188497107162004057268402722446982738210038729894660320388235479638369644788363010481774337240761188630727027455042213688672797057402760528142237348259058031759446645948626881052876285331084953073404686490007274239347231749947702343076979067363655931324217072804320428324672742960197167652062966134970267373293734472292512719009578761861736666117566779378203130186721240674087771048481751465742349951862383159775722762583329424462258221623107524531257872938113371159699070933807569629574366700783068541622748108229468376528027298510048073019878662089326135728735065321976294026636537541714347471965791851946032262577519963261060827396364100037187550742445419905993653480766088316989483305566518086203881484111976846395991199850054616289138953489007978031142301905188090060599392287809393073055860393842986048224296050316328777463710247400356943121120591287107591323107292586369033656779154442650731323870134762317581652329225170756608665708189708858582837322895071698823267252174995565726347495882614855409682516613540906153136869933998780568135616402945946375952861589990003042906274246411865207867404869514176870229239132310934028374929134493948151504518999622008701014031272210593979137702012073118327212365892541150727024011001268387838806952878361103196478350229852819908021419628062255354143227697815782137535747947785910144709165577151907009130530380879355293102591066489662598335453799720177664592530202039308585075110219588681170725387555092588261081367364452880508021388240461048479768794376398449604239766069150509649138754883621187918691132977864465134032958388850872405043199931199464411954140147187492186331521970874362443207145950032782725562422857500271876136930589592533880738676484008221867369786220731334706089341194070219251027342138911512563352823760551128121624460708965050009065429620763163064241922655463851292343840436627194011391448625233353197679774671217547900133572029381498609405072403151511536649744910319821310550445610294963441147202761479183160405982928365043657701116308269806949804837973248992697176494263740545772215651302161637337292049551065963630443566490856030213734187312410457451770786790622568355448161951374057221484787537024396308039728771378437499379218613078932917586145455073327468740609788052877553001557365159395942046655203777052562226212770769332179431383729350556216245624958312459809182741593965199549066423261049213700703513336852470256672322364629467539280741982099922345207217538222667106907295353357787859508646096243719986109177998197043359497430253188630714544227887947641025124309934732043718253452210408302937246277920028067906610922188460693378354456718989056340670464564752963828198905329116656862093787109468226508629044832270791371243509918362955540462598880129596805692117248432253437202131224181152409745815665753894472991863864600544613608954451059772850403926430840789085185327260569742103159916850867747316549512235167432777201678875215558877294572510415819983505043880879759276011059954769939267574519661037112501874229828842523052300442614696769520812643929144290611747252424121747536996382150749825118214115667207971827872061371920078197388278070285960986969842068558433565722111366008223636782378145288802103631029025276934813144764799535825030179261860087017578302678274497391570663643983272528562084937471073694680409008245987875350833739765711136160917402887411716754253966299839505426225097540518475938684912017385300302322317849943319143014475006453445939064139850526291566166830489434487506575685074619698278804440757936110898225655829298176155988008222274495296928652825629737507617900809715256535833735604148652726466700244538372082740057283359845512570697313745823254182607717586413837734248868385934187588364671002893821728917104808701102223059055586149637735978393984585404912377847902132641256434249962062923136184483587703576435808337625644644589217444620717883167905085354134537992664996966737075268449649230464198906763499070997745429670476934842304767340471388919199753924084594384595392311171013672068080271506099127832862992354205189961924157945918966279818252561242109816665989613414186296625792908296430266275538340166580923139053587536358102264395665929751884033787334906127353821765425092758642647629739300463751734728574568160674834413746331937849948175721853728427670896303009404834544705752423879573357922480090903195201642106619865454350521594123634094415088379637378820076896476785894195389369628687840754011844171762605283128924187012477811025735493188258952322727311479804566820710765648577924174333295387565823768036037629594396781027703214217440663351247789866058584468324164250967681163473056077659545595062714886249169067417159866157220041228628741754578927232052382415889611060647342462661441884591017129229221274062194431075757627659573131360438066865687062819006444713096934686368072079793227328682111478057407687536661131334256806756225162638943966171624533936314286303562288667726290978922864438222436404641638199052816697825753744332016147523036948716869758876730270640888787189848722780077858229562189166150113794066798864451153325791581623427800800806667405353393976358247522323808237584519180963027821841240225156218060926852699335958655493341730349178107211975415409231281535831189158767431441352033720026267439490887891590755471686106010776945957558774848756527241271170130331771022815492953724697061192614333000983238539734514629558083883869831982918985631176744604822624891861953601107743228697115352982310180831609800670022186174718901681715100880469553268040009829538243541549167456872892739440323193624567457192980494687866278073950112180439565211428189236602752954405133578851518483755236730967798884382906926585970201196261258765827900771890356440530852291433207172704203767837294746321913414628491616809823638098573907928537790826298575074293379353511432453510176238213644780102715956649686064890498620786890433841813896801305056891036433456405727340442505689513737199103574642546251862309262981035632871636860327778752179832110938103915952686332129244496771176405324163163714006546211273777840707672213475542229408213199470847381217590823916823363700005587369982647915615124446912198138105879342825489613652840765078185363880284986323779190777270016945380061051943846357916532943003427902319510737192217770282078359297460676587446055952585389858578852351496609439052847113514439909740891549700857391833089013670501388303108176707061148772942327645021428625255019623687155255469411122797183384153917508023290186763160316069302920313041048997657385397293967150030016719092471469422693482838850696874289506094642452053643122332237677385898378778823394874553872275106356584709363115745893375284421601787273082301885919108193125615332870013161592835101333749127933486760160630173203493118104201606445626424350368719833786117589539898321046788856021939647661250297074143187417959504993020102531681834970289015452255763928668311883651976833420756053090938896108765542854818236507782766953379841799843541339124778859451607481371099066269419547007130575884871566973496566257217665761707066199642895994387271360857077231953005330129969069173241584609751659314350599067165107117090381218651778566868576442309414429323362537667580655823005270308115294037850868373568518672065531378155199627632199964099116075190526342905214011870773595353130143451720038696545651510581103085328213467525939149911080477745821458903227204445733212809782167688604053029489925314662727825521666373924306217205203710492111735816396180328789922517252628309928382600410937877292240733857813748672996059786925081911126518768642633587536902119385872065326882057854514811152585564656441847845939340605336687081509751705774738930550883081275791704576208874340734099319231472903974864787673872510474013272855354955287931277617913817905830996676245114995839848906851746634796303842780036038223574236996267898177541159575264281123192107767234960796559796095763011707337316273918439705724075906516391150443000931394169274883613376888054119725769147395032901435125088810992859419639703742367970414246213886011695476566454864398713857531021904241102054812769752869227457249013776256710466557474538490351977341494938221683193974467251656527191393426415765543197445894699609381194364765053687660616080075812161820758407645303890580777856169485696774743953126431249430769368354611462682842024044842759863591264351085464963911279279933302914682715380792202981382760708226301616526944191366308015802138469756736801491831241121295813245467569976940919194797225902763513176451623729288507403316571719618155655897247104066299196450647389744717258926713787306046101598799583339565015165090315739674875594943772012375503487666948281138969673854357601956012137184260849408178535522080860216080003157438608191733275843185844578434081506506438968391218522706148128785479277753314116009454441867271175014803963067825168305844857018412897181123909879198017501057938448920658349208002910565622965562430835335704295009163489005056882743749041519318942078322981074823199650258701696159287128747208229508257383734147035275059591649514026874561355945172051262045847952426957273296640840101028351828688492972009167832674920711953308010524724930433445067498219241461813656732593667841366877157549679516889878673010979051666753038601382978892507559616451193493289282215818398502071093347565960191454672849356956810350693889438294961583829063125863199909859610685832550876079837833740412458401194968454574877467731739835153577695038166006477500369301981727871451556214567936129101271561531355279089424181460890075276066500865415469291712998241624706317305331900148340331084526725010111921927968325489704610422759862126378889750488682932948546989075884058953256671945116234293637541255738073895011568802861217652501306117437794391251569852685618798696717994388874255161113340432407685541570887478890890410216087675479116857347628270040954978134319908728821407173393511021236320415584258292629670506509481490510061408990827144622963685517234155695243998634486440052361072822802719473098005711380796062374841382585389344296487096171799918393767151070655309537098270362332740959663313832532358604748201906598690508797988197809648938216001651066087539983411117037579643608824882510918236087273826980376689332604141841519648395005908976579421822529329841509358503769488866747404514217247766315705001665998324357262279112526440497266587016379444948466276684170084583054141749027574269814946089253783432874808299640667778724698014954952577024160351982141001247866911025780019314216393835823270220962661969888881388927921175285208810768679541238338922823400636824685039305757373119299516561706790962117798768045722030271518324083446487555441601640776572191833724786346391931492021036316061170627023225663017223733013992590269593371795543443203025261879102901110586113961240545483286334032693359693772732724305212412594597431612241845356216041261395739150417985512846172118070265177297938412019674700783818808889116335811616455911733136439234612013880723608148229526080014173899869180782887391699007763502060167245933743899582655599273392721616038627655815295589263184042980875015884278126041239247942503039192642548061513693500807082582548151463223715389789740178802524342069058919735332065938311936412209487788478173702028813059597378364618631992331680007730122822606204827582348888453139280138827153958219052563100405287280094719544278836470817302822042221345369706830544075111118600415763815926041926802104142856418017939045112383737634233307741428316876765772829444224380096152015869002228360470883286333954307188653747239946578041757899262988407620621852963587598372186722091804101735957479845599271518986296629201787054854084193330949113112510363363381297645477442397404457905373807539418980475751696652029232934665382297925824853881230889547233885589009136858554594328305079977974462784893622488570897212373562578159483249634905298693332149800294108108057620320118854238454566985621065061204549213716972022855897096569304308529818035763864742404187656468282737407165619319387957632850831002023090703329339743731832767261538744243554985748992491452284473241269711928445620424398219481677739860616468622453642732539315883839275134217661776201939434665220806030192484971637484327817280687535224109720366234286180253336549745286582714876710542062069447557572525686359568908498138323240225341779838962805623967886972748162453292041059848921370601962572474359228390693309097873271323523253168136830002230310226622970611678348422566951075672592741534324480059041820898930565156023590425713109862728482546488353225337904212771285908028907491588462401184457559183575714487142121024331457704693966660498394622534275922452412274858452692333297948230613592496489149023248610999792487591737671322320662091202798088546546322085045603115365281726546071306528343592047028446101958481267751980592934160869752780654603479609672863749171536397378784648809696261417236045226197918629724979267784341177851672623694074209551167300214789182978755972332565265417017084767950739920867034522966866522273192088352761192051634093076735835820671438567533888374977324978239015949063964416127136747271594964113419158276146368810860320064520072571779115086083961394565951945799175435744015059193723438940267256201240697872169091207621476154430935765509697907377035120376944361496474241015852100047125036042982588981616713944451799857326198446189076904369569053651017797873011500373107339514307396348865286271216577204337763307124917554007124543842325768247690821538767344280150322032224601241252586316636070750390380554741094723660867340758115759431882625169105607716259452598209315155027170269498761850106117820207807405031380068361385519307839502320859563341315222811310067429657072557421175293074615986490400979099532841323866491570416844906517836150352345886374090638060533096001401441721965028101226868430375817525318542454140400509312406854556451277744838246464816569477698185873977860483067340730380670327457126503264523525800428871195361607208692979121102301963061895899738199227676381285873876605397282302755288946871598066308659530606624395872749399312539611621328216847309833618697460719906116921123998382725054920390608585507235912022844509896573097353436351577225362638965429961554978212976463108010736200590711605298431319121555316358274982378188178890106107332323347428107033061131356108645691444134117417032502260345360507950014381267209416894179150138700828714908796235925740676638194955661051740673369499198925453140955095938998590982060540418395772239975346897015872716234413044681855806302569483316982808765568081072201599130316626575366448707008814347812185660582328381853372138037729377172022730392009216115864205883486816676934330625999602905743062012100985831343100359105718603375940409630352363254480975687558631291630969599669623383409323067721375389919601746796045350621389243646418639729974556578213937553942526840483639361154114749815336028836742031102414682089717450890986645109543587842204135617884778095121278969518832404988038999343031755409816263986873544677310412698733651992861594635965510279475856218958593373279513795221942960283225033089982766715967725416710080751403499958359868559382191790566341831705925134745083414448740607415190725770795325954538268547133925566653921731499575533874965395626488051239421836678343726220785335213672722477650148572985985052648229842766710425472714808681310535630416976482766660800655193805687337297369688435757360852712719540253408740050820823879386088406172897053923210646289020940081340299412575481201060470567072991860364502881334875877429809934339234385019079247731905080268736016222367700830354436923611963718117185076516829927040783709124860428543085083683868680800028360543067913723967083981568010654674118563773852333465530862427868764966755323538003715598223785429857095353137653673792647223168029560767557928465334069239340049758471880861298950541373730398377868381432276646081871545792976301935732144562014954893192192594014119332868463540393254859328453101574145379865018004828445675931471536412245623837885507663733182307565610453085524378140938233612716038346749455542740788829516639993202944410893528626468292203183122270076709872233363451718768695459866544650195542692300319742325515358935803663489747059110902959082707781473180514181418928434543239744438674341971135501520020970761877224249809306980277425578220257856397673967435301966052596679513285936198849785052727662317566802341256764715404072104357120926915700542687096765672298051081494727214671356184029080599236831785791597122434301641927542510358928464268431174565543832988266752087887900813669743253500064901337309959105730241297483930474031524683709508230276943333945068693654573093785871430544513425530481094010247441747233667063770993686016208611782502652855009351468648190510784074895180746774177162022360946138266572897716267232252434421805911084416995490138835524396524969971336498461465040226811656451381779208258093931832212236505791059408094312904807735079189342597124714403114992825152185232826177563238290449951380915601982685671468017057198480008482186742739474682422599594550785718340317706799406769827895549037673820435721500829255120490254657573917737031464377272640551343002845323111774452542091087792610439428635701602987142675778009942842572150507262334236671556951347213255434354575332131597834043470336325600118353067687648741827767858116186566434059269755227690880562490620246768077939413980498751220507966678739717975010843375348168780060994483869243249122318270667810994404625310922056609765230496030350642438663765443152474199753177859171989858315269871587748399467425620524914499628503612673913291085307757442759947852302558593351358356379703166935180902259898783501825261635843622013941823655049754224979646179117649064444109849083010052890893592380029483443003663119663002784450505906196051769681470247715892086870692566786110991404706154804661075062891061358005801530244180223457729823540469016404036025214084689004391714473343725679062697490497236422838239058306586816383010113732485376423552000081320421409458382169847139919195403343444019438283197892945300548301643225855515238596211635870655563796940225255340736256074140585334655424860948338920259994303237261716177799623033076828739323562357992131601168624233871557194930103333760707947586871032354969558539019055807439644237062636120363205573101299103664795059312951426188906413579335995540624504575851588227986508224370430034885952195127952600809592402989067709842032353645419312540263064232266414635264214169883752288475890876756077882851671620610027260187227195475012062154119975109184764565817742169048151864180465851794277868763781222122332793471036808866358199365834328086332509521938352396309546597680574852529322805911093923973675996366107294831252383142166869900628439262601243241914961814907305862858315722847874529435473574717731947322342679258051352628619238021978992281148037805989489772384439874693944791304510654050597837314227125310791537903766311582072859750949626570258871864561319336832837795383398021274584469540931741539516671139652926545985880755668979219791465368110150758455475273524725080607109007703717915428235982612651406667261360470381178240869426891526260947790198294840355395903102449243912393673464220724356471526311437950690700964417547552735061995596107198148952000088662511340468036045112128429799199387058647458202564869991281336139605096633444470890767708230918855677749832858297019766492310500703556093101717404511735594243748724448046942922474520497713569223845006514747576887127402280079818591261654645006945863751870159525610012993318865192411469593956554781393590897979552584682491238011009642100183344370771096578278770583864444069019099339099876326806870054348343962278040745726391850295855861602049226358839711027812664390899085379435541913548281173141694244473799901960274302693164084137219615275886204815615615336499911154536428316915551938918532346035748722139999161963383776311033905336390799984728522863989609949656703590118189854135575134915380683499709031036762550569120912366006852207836039508072336840077082613900161436434117914896131330324639653612169848661601330132321808895665327409196881534476156123452550332204476531791948010012310416071535577968195150621630389227158939979063562506004679002210597533535423197631782755614749695532449344192415463872488922343710169347719589383568497603219214446861352133815796099003846747458902223276459765992906100690866536469659647588239132562136227816066148012834091989189392978502541010170661435735289199241792271964366459919336453080337589586929298322192738206832097051191260104334654234766534224188532854653866170472377945736628486488493019092530639698254692965554767239607817199611095933196518833734064059748682142648297587790942185880581505803761179947341608379626425457727708323383961404635139107438204336389423312171207947462254456170627870794771463348964236401740456323929239604543849593161029893932683401971672564998157972796936145635008701805878727390560020438562929883008528362201382198246182859927829928455847256128317157716427675031269380723291650693595810470214336982404943558983680257153743604830243932506141454273064399726650195991952901041052300317863873852945834075036510123452277272236751873647212958472704986790230154071874751821920421990246151479059398723406362751486682109750430698110191162563047634534426089258789507878401308281641083424144214684899108783549511681031863693411564745921066554616857314903585734479496552341899764521197810041732700424664017579047277444204195611382687006221488537415540376912127758479644489843014408692252680178864674640964380965818049889018190434324961770118695667414124764443943549936624487059671882094294956150844241538418475846559831170752226950021145274116742161139039306952929769161028001998958435584777436103794082523570194429756049205522750638375715689879739419183623877196548856149056302737035573088961445548386893239167170380827913325202174689695243547568491413190862474119218822747592263295351162982556941429836188667008704899732316010644325498025642990803137999818772498183209167692539565599990397640363486721803231828525776446564771458620436786314003600904028814027786090451674683906587918760871754581906010051895789298711415364365748345087359773446491772233031839858235252983161290892387053612172048507101001422395847908171360707424407418551493157054508248583050559502555863493965518967995554554563372234381006284514762099491203496223512441759856371130382883449854057055286543361644235495383233329126351650769150211146055461357287223044972409895275041352397010676197769807978664946062891297169279375705540652612898740297857124830563843762206874201111658148116264204435710315881280601240129923683611033743894366649700733931765767101922300664062731090562155685833578964768828538776714092254791113427641509695455200697786250400114424465369600306657498923799156632309064147980242409880225924930821776496757363756845626119113271202350077193910270478042266555679777849832503494019412603051392575071808087670509758366539970035636083178628954074870438200167264840911317725316117299194418814901635945094934754130884871775638405004574037955077336613382611955050975307350414827311854243730037742820205870408525299401121356681297524268152658027991420627826503895096548228263134976207404761327180933614752375110355840986702796226376132057183959100019422989558683084172494071926712401875430937068845724356045522078716322005992300603337939393537353199513242364372965606657801272546683336457652789036896715857968866326937585474062047495464997446367545346842684208579122140610520572475373565149316883721636622489830863774364575400945764143554775076267582087914472111097487866860442433036518616924702013876669624178298877310634746400627688144793798280942285975363486114548775672491225514355664923606611107777657457185337412001859503487140097331971602371844179203280336993920820567377072251048092668777388347914182569900742443780863172761915684717614172976593077003138510602541812254728943029191184859001821425272284996853652766486622052900426048589813520789938290264076221804477113196708136467626704663126701366096221510938436066994907989487087915260832912037818815613725467084709732849034154039069143698346777566528657812783719661993121682826049154990991995434047100474220016032364910625326683906393257861866692749205631930585140685403839260864168924950716642592794625844382784208484203966224622543030120992632846853059165685614178836991487509112864358433477717009981177976023352186890976781869991813894412535185794085735506826307086719255198883369926485322590502963360852137280772328691605583674526247186084186131598769760208923820472632778055742460799955435324210943364583412707163628784277306719757234485381117741513879756079558770063102855772573764742795652311329134937338621538054406049384262524026187069732843776067346203602343920952404024730412659773900052663400426810746025809391786948710309422395693490671627183616932288281926753132839477112972134885161848082149257703953721182551558536504516099870170170123687055951599689971369073085641912147650939144844519926584961363752646625002711886798806482418768656797886005690248694414212788346231105608775404439239093839743184366329864500736912814680679412278388509756385775579267172584730174905929603687606065666822482681409479151714833718445904079085557730890512375592180875016875468278665030401808222340603517967108923255771479661567002727792603186646918265279212609963277003971863486061408408275387124361458211100439676309070849089211511430795955680330650738752397046908037378298249957472436206437468904268120419348149302854475496976867183776072388354639979300404684624064702765267386771355452786607950984900305751865098500522174750571323490186836054891620476497819831233463802625829957713842800499097036648889355750322144043432536168163351897135055893455803754632363111391510406030660561230442089288165134163871313124696572702889812823256789218864191281761597045746902118008806297304228591796421074925802793431893664438664766763582299964726501692314813919345109840717457966522915575967323442874791070682477694156480258777071440015441816007184333577789013491039927059585406252178718261016065579255079907789502784293970581288053643818026377386542153999351291640618762303427868095361400058705024661203517727153090223130440778321627371344420470928227657677888533329570211641944076338853266629435011642821499466413421318467442229500452461295813160448050811248608413318304578081599357851233243136342764750655554332379142220286191862811608656949583383414754653816760464267232403217521998544690855482271582648983984918447752907957633433473848975175657705626682842688352346119488707999074704807805156076945287387152169074436631695680391909355817126890157853080269443585969687832048613286952348857163219259891059806982054383296423738362516575130349605285494742168296862923251124033559559640915610219968863975317901716853672913472042474705195826881919343312080681496769813928837377235293810667304603974271483161318057892898825023149133338484156771816196230891322931037394646813730527093318586588460740733530824917778359822043149443457764155842334627652759623085170242641002006253548129334348081548372619333635175744631864724959470672167168358628566825441154569547355981635595816116452058186043667491207123606836053303406496803673586493445931216075586541911036668242180695500812772357084449092862874031672540359688881836618473929354858762551342122493657430109131560361666679625716193217813720539079971879889352389561400472392172302725561699121168939634580759808303599415815744804104926712611183021704611752064552564831586015748246431759866285870889827760078393481540844833264568173818975043578801271601850058637836862159354241232025909197843444564333505351669676948541826107718419991644861179344786512219959049939681696113953479214299383584800296555174398096317722834203794307420672777131272059175787346623265856357815774051930322189731408949545795823844169852193373172884023453601120171153205893248218815928588104064441717912002941587083272744820079700981080571548174655204846704468402743816827074435677335643778193885942620587674576033411913065310943378000694908742184025073475968012501258826280045440624713587066317080350603844313433054260790077387792037028153368408172824932505337393169169729293231662416060900180630083455355994081964825754898778626195873721286464227254121547565185610778893043658756610747448954991275579115146799804382562794776548131068753982871282291207491692789340874553407986339687082898825460906304010490081706339793459453877255025877046478627341552012988315767773212439128500427679109558630141034621369430546194719026384301909472540323880480842248228456786002617030449696135610124986323307253425134907362930901682384547123478256327624708712859031485300276025450462778795216527932362123329447002672885084377966118650400758128237203002193955852384011437503566935920559631169310447201114661657027441338091963573284086966885874240612968207733209980935693515445567203719261952620446316066381099485545196297994262169275952690771661808059021765393378938600416627148754323360666429801574041031163589745269443294299763535435970930507308315349113957708636014765973268319814869869736320735376031652258052542218345869900589885039710413030228167906494555420537510554689916565131210394371562242581347163055804981848969824913233901953071150859223493938716395379651693983314685021327813919065650446327223647681388058289477733102945852546146215174637345365532752304961759526984801675242068769616867891187977444996912796856340147322383347282718751502227266331220987793356589392179394742572513342010063070821908241196073672702040938163543118671733696510412101160833840389372003775609631450919045423105983804550977478019787196870228237391362613161236773538033703348754164338221655932059504407362578394134463186876753146838809801189888852716625321689817738697085507967552117726792520830869971046404241092900577404658026525680888788752162286611022568735473111270060856347161162421848714665280403722997016400178714242948033350549184565960455289156324915666525489672014409579867759200808290008120930988859793443244315899656141906041929161030623111112963078165578418779209918835533037844123621773313785537312696412035470370592102312902768683213888764777565504502893587186009223104429728074490490200576157554770287621356358613224605679184725700513711501213503550698850984258857513351682528082072622323101283176088436506894227941698394246455970319114162595890449214666239268078769895754121498041754961397101646062088759959523793170915484124656631482084307110172587488417501473911787130574879802936926649865295705636672612066285357500819049004660521010610026775567035509628631024264488081473221386470785709689019945523834725020807748815160339767620974525031820285226530871171757103207066791600092038275640888900011331479054990270697954400073257416217893895983732728484699934866624754898020066032335320682561114442975469379989090458706023806611398589866232241679117128518860570150157587103156429295344428464443785604360584874355339961776364196592993472087878076343833066683675282171030120126495579742297790701984209926637392116956132143220523382172786211982364936859856601318033738401243969750232083311892263729513125847525461957079371640490567185442727288303987685746298667184934120949755942033935882490848421811851795757734115797096590901947312156693797364777112585408034444690315249304536268633884250441931203045474153276541373686986399874201380095032395432438967216474911576599756151408289396350391870559139816266043348028015751067446683716630073052860833959722038297908556551098962292418634489087958063121411858826048029435731634679637501033419339794277724236368054487264174568896727818545945734991261843742344829553473613046405373947021023757228749377241231816600778337907413813306860068942804072952306644104970676145781324451170019853012883405895648303793904364859340287244947915338549010962815497825479716021462645884868476210513343696135836344506141087410377770765691598933626546025856061870514309505174193878897212165603780753046923960953459516038371474812650812821426287371972414094781062102038531244427590238375312250124507301385771115745333939572341278607483789931507755537427541466075484692869901437340865873754138889281893833802357907159056417800022173140329167422020359314643965167786779730548191309941444277062768368818037457442593281793810338751732186691193959206308295648761115479937703567178185566805488037726570728453263987022858085644094729342928581448180549814549198176839935349755447980526269174476411199489956689498519736514450475764910442318031511353873505965420295356451590953071936627512027312239274060191013761786441724916093261524149493404246527574012153569185929320346079212540169652801147996429866971465405316580313915422353878033782448127743013637710789651740145344272645356350809886214348023648017970167155466916834407602928121201090446242355862952641290526434462231590830053268301423233474501138758664517052975669235083151406754894467223434027228732387111171063570772036552173060447107104223086766527330641439797220693210943578680863729634701259266608447611972271677335424968480674252882250039950466698766386012008707900027672506652649709190319805812112071735658302976521635728017025617125898952838145570264162510590532480593783700005687139056659282563636686630817900273107114449982810978660667697512870772204434315684506948512906657443306659783365136269395131430079816788741254918487231536246356690951760592538090467595849567189452256807147983039031597234783527211712090820855942216454908213072178777867359912244060396628387260758271379712390017774471148144266804863464886466856490575881656590376103909440499470950999090267560915798602099246535556917281648814805975418168804628086656862512346011927537630871428428165252562035430525069928254184310049133265949640183103841085341310387870207614413692882681754693857512515148783943822978276208682365015718188101303417204466838211005270298734784614252289879245074587951077209520673207437960149977032339785704856618266740375099719710775950771222836613524171515332594669301931163214523250486107117180894128799013021916664285830397879418202155777586326500028718121784342861320935698779866251956266262752456636894544279188760281924951102750070933988752209443848434434801608729128844630229810934708694477344844360021689340224641358557624124552935257291222473477715928784965589169421549969205799198138647700477983914645509497977430032836765327822753814061032665246142807552155494503595756637075289343478857753070036622201177571013177927850805083269339603676568117049650196542533372522352552006934326665373701912190270009879929081702291521708287020893045237085159466647324507890818037725801587745769709907892206836449145440480067117108695566944905603180444849356737117877922468024454817810302639178640893021379704646665933550545205886093022352361658111271629243370059668570075541554979910704823160164616205813951737804760305403452107966447155491485841556848674014205981378930046799869975610070494913248328366045477060009958934430128612585176218104203341566002561158008949740408908439291005055614202257970863618038922624653352990100398916106555225014378631149371693415732441848988295009691311254293993932344972496089124029118512861731524519089102978537940180627246917236129361540453692652975939927676587827196778105502661744354945777002572989235869899969849266042113080035857286885456418189601490500343162574848895518511493797755780037007287702174746958297123853459916673677893235548654822274980733719408251549813740657345353602238705752422415150159267245025597455423461419907326779656591733446052569278801751664661191013470236996701391550288045870360941558434764944951350425593434051821181114856166190060723642050558541423205283419630014406736403800891587548404804551230874717556212611085717227402145374919858149992003597754780391071523235400563265147573787789173733095231086977236767686157461023285604244389539518630656406543305576206139210540905159051380714326473939971842203232198370936630518643314404126698513358641874687849080580965746617235588762626686004974883610012542713646573592454095570063188942110154560600358739562505354480270795229181147050238547825204921771838535601461066850051309038990304990782182199460676334205283624234566618449264200246015317691971919023104999237827917965877560922458976353542368706260730010691012445807214200015552944157995281935153274294965420470246561836431908110688750872997790419265704778515113723598972815496366585440752589757353455485166675087360288272734147813349624582276026900160801091050926799237158036942175404613083754471542556782087194778416987586495982904760903764646183542024771859119347376272551630026466762244019634474156460143300048089786598116146689046395734938231281177846142759590215321000799833217807689950417672563121457829858950764479413931188010065979018665000015543189070941222180980308790400559568361748907268275166267589868462021100625870769673062488470634335570342010590464013606173698746804521655004879761251147087731454609608940234972062598375736321035316392427006610439575715840053098021179421028866215567030999639276732209906219473212061260988316094474336176054931920228348521397843209865671675530078584534079608023043579722424002744179103339693847691316911658204176445927476377761325201975841710284006250122646338117744279150019083515808991606056118891397018746781493862390327955679251072532123536923199805196949834271584244037591710517833481277720602870085575224967302673618904919079684487069392903034761431429646819900644383307774635587737040283922146203765729006066289256775646124626748366113971859451031640096570366051670102421894762692340733107023261064368972204271208008481831519680742439633910216923005017870703002711105393911357850186306586084002806776095603344287838480231611737766529059907614521684804206446168718483078419171741836141785266224382791764028099994386250229848093313584238839822636470537242147581037316506855997878125326995147223662677238671918400082497536662840647790062053539408257380833973768768363711326296617636589305797430319595378003240622202937238871049131513853730047958364567780054929846255673099904260486983495848391587253471376558929242814354724504832711516981438607320798817107711009958139328107730538307421606893000440276067837098885907002002894415749811291339998448969599711027072374129904921128378845927149753429319580257392547712267212534973754685818454181727313696114339778454408070435303387897827967282725367323076594589240829806616974605194100202393325201119421412791753596297764308149274290046123088170457374033719620674596322562053769335574338897275338380255535194044399758941689373897962626839126913503605859803867754592836215375528317287657945613450467027714999226593259001374116061051961942475655956468419362924071447004752184162033467806246869036746695185499391718037831931085769735063068830045038187462504947654022617195728905583310912743314205972719069883839565466296276856442666470734633112120492640017212979282977097181294447593122077956963874022165585579342648303521936178858143248584512990157884745375765031109295048100210672296142221136593551414520779476954359104343316752956571241318462885525174856705754773229978637885270830089877190127326373500266089265641973547548883200573358757507203117855433018569835642123376464073244229505739628172585263575635063537914302682173989257205479590495003860898813114273749311245196027505130277222217108635270056741087429211161440117773718360611428764124259773226456459529036686886360514928922476800553706231239039796341095518583884293373707491807088912499068338914685638190330600737239732828665714426139740913494723743279753456841880680802623968607045967439221942920136389455077247388474662423262612924172821401299827799225702369350797950748810974313738181458241277407891293319892192574454621280731067408398910862113980451721838607247523866069668699841582133745204564733773896435533780349062407068248720439213567472391589370974799940948101536368808638687631368989140368343858052871729434707021785608226268103747492074265226603326314951550172044460051172983928990126952500040747159804063609073961123073921619534877891039271573384629870218511449082036469366344458742466987420923234515150344502770297650681240503669642703549643599118544616030837082869062754382526838414212168364649536748109008192596654799558294022608966368467858126193439244004275588904048969138333424620624851749702624553247342659751098792416395697908131606475252891776121247896445260832818189606399071698555268277690712594140740899773144922771452737686766456819631399731241813215727286276316688853156474924759710029285304033872012359073408389646442508436308383181449582929239113809691314031044257882531848594998876902793579915737345890942729319888599504000096555763056382795406453165236047531893102103694232220789505705727634554574394772011715688520014764952170808316737251478392294058517391533244445579864046625331122860719865484705878706166146419758813293262724699888865546059634649781649422279798914769552100702113759172063677712168793598725435959636902460407271669576848209285445176666606488310820693034749502190540766738013958379027273040850618730229249942722567322365208792711877626792062736740637382643004991144571466347831884992445796801338976621659485509337097188808846514483105714462425277232390645469627137608939104386593502780690841166622132055981941973553203083903816159671556650434890165152940384828233267460743828435650182377339614481838919957332925804381264602477376184946919338302468802911648406075294630609598634651778373209343126209640751560397156259207568333322865311212273453690301500443843016595338533514685824890575597686873752593731448074310070176240734896831803421013097478489466619574585232682625939121740508390934411806425935454307626679280514935920912882560803366013403502337270495187967029732275810963598755757406674893474300710580319398835621808101598986784600820514313780891767287681849411986796810455293046805802517093050643235948362279573609298295417543933176069605780072130855098817524881242232892207834357468952657992160134309233273901809798196388287775801966166035506816435973287415450376981756904299291862352719642833208382726258682965101699554025235004672613489920325719431971537944516014356466229395013888474561506967260924457391490671273702199395383359153454127902880140362789525846408526510181648840052675091733700350896982724965729488440245563110421204686712735481759881659153090801545392249620426635513586556872495478970705768777639570298894826766285297828993153830803076244082974742236075777208290687365720215057637546691144735800576015616001998836815836591098744140200439386537730330990075485519936485265259319109324604857102522985004817819779262257913394880943882512244049410001971898985214787472003305084193451538227696388786703760910126548149888187225411962402193180468794525523212316442774507379422932565510436094020652870444939796606988880795629104968801147853431619852577927039740197151838956955084320050432551942647202856479513506844736378624771107977759069898832355369268296320546083184354097484847753709939329557902358432231373166162560146452535956458861461903200325170813262852202765390121515561553489702145623286719843358387402179370106174578646105944249329103026857975327251397414702247772790275689307849033636328620943340455027776242117388742185406518701226951180621447744825910156003580306354062401687629812115637814919396236510664383724662350690585140046126092543979542634583690402911920143673329844425667561555116801661361626021871000595297391358568156064616823427018661639871342360967937326846636870501408718680731311509230708096120608713724792148730907924983549414177664689188690187060322262085840340519708483398653510179502884218324097706229496247411363394677298741095854400949523937326105422156425513340121744061924631932459516228541467979159586634212203123438647264720917605717702301242119919869178616783944736400329530761340578676939828169102365173459416912935446314676388648460761653327577333309025584461525804527272961642694916237467769495005943973120900697296826393058637119867173224094378362459027226217023128614212882963337635468612678912949966791088002499244317541886203467809001134680314125306557252533535622140478843081015265320666116501180764654138857587649294873473941740371857613370804800712033892658488061564794145309845769171389055084337206063661216711614350236290937602355020259505771252819132373155416501300828794716010589928456017000521939424834876253672625525503997754434259200196505284373359111857228524085460298704028247092103483900030190147636927486262379363944692152533892242963431339124878573035587597581811187847544647568014084847326230615841669348504020623307084537310659051269809950871910670630127370501786467858697837838706223495395760300966651512731685214112192838635402532403630466391221831361660753699140474514673305447997484972520172259013962184918251261721927201165003993733705984099827305859372519318664721137768561319020480663818204813369113277628407467406105236735472679743594095338999243230465180780170146429347532561527884573581536182578767743885283107323868990342041191056289657154207485711929948135684034008652651327832542673033068087064907287153369821463380266731094075204087394832772760904247073647686911309078990885485083884497691315091077475485436576436856258442583516982199558319119920028401976356774351577217999815482016912381575887312600986602203694922268894582746831284442426434639010178059933882894377054508568369167938725641162887113966103783765189709661908296500938397078372665918753980539916378920870273502650743590647415286203763638773231578087898395152654055998913479130795759695874369332623430576700783426255312252092236823586091366375922580315326339845937190298892098850381365054939258684808177050451138206307679577864575329164470523318921518808574165198653020546551287753025102999251422683536344038324898530077925482810282957471839620776346151754672722511439246519035889402170994772407173880827017996366634603434179588111337028714162397921752421801032769756284839331548195937429448719630832881622608311506844923983997898510782524709681621658390382422927875531729560441932416492972014354476057345214585240291158382182259732083997554102526178198104901713576092324322434362466355276632188956837809420295939629709440470788436110101679200374515415766254154828107502610053686515878697565565461626357508649753462302492169900702250566424178815814911188943008321833731990085277231059846649240563112874225276921623522787596342684664873963772890080481896082259170462264032505442580176629020807866701425335233153917516482441951424909356427881421504110462576563894665177548655728898023858895542676661368168321614826325567340892396829787446628555013775471965957053837015639835643058125497711486330871397986294767244495024150362453887681509796663712251201854773574875420007325788784695930101055491594396704925905287579980656974278984897298412951379763784247829544789734197520009428448239882371878734838842435101505816918184618158315221237442760759387294282849158609694854035688629159568968841002580416433631920857133781822201317897964561140122448040357491477518967499911519983511945905265473278663511531186274416367978491406973933969468294137760503993697665116281459517656122260932154823318953786416188739917538713721489751647883456990615124886851087729155515505823117148579958989268580093412258742765415021196074125159310096942821963397226871701074494877196025024208667244718601268248155625220296117469351079493153804731145770148166654618856605544582571328661395788340480294850411288293803632526649935378895641093517972154885087102662984264628392183659469166804690206191486653901045881652266570125669916624867560547339558651833214899955061570017651587031294520523838984023044159433108662891414535544592405307047661104921834661324512134866276740721364286352504519636652225688747942059875579854579588743039475596709777476222858735530352120268017477101301994906600621529551860542800291212448894038223751326792964251440606146343556425263821448774091602176204756535632766610310846660944350100168587475985236434416404420088913371994233432767874022004711798208136093555961180695358054638206935596178190509072306763900057170839267020005244805942108205901639401250905519759385848692044487932224549900413976479833602928144087915204626443036248085301163281598894816991609480152772384919099333506760967720787295993593527909052064240208834788190809256472631970878547365904683309655327355001084489392622345325115266894141764727058810521228860873183053689496279404541298291989527843716366992104283907630405698680486980169950575539965364104106357304804113154507309710746068559622163069964299587454852446428368960842940081581930976292163978795447626198271729773939378784319285832721416652303560116295939185732641998562487210347152130835827785208805633151524283886449638979541158884634043114877672105794118875212639468314758646400622881181175611701506169591890572491999791716533965525425715409828063151035825928877830831644186236771523685189682113923132377120940970060519930646348836449679036608079427808941422406129629993207728401696611225031092932799848685063446711679255042220468882225846836362600443242808538691443318150743603786206434139332262663087813706846217786556309743357477066256661763702438892385636770900541007351821740512144527984199649610916747128977026083837941392834532690838298310077003981186682149330431771917745741866708776451555352789273930437743357340301232442023716885874930313159747317409035107953477620729745716576818776520433035602972127337048579305376368736011127880801878506612879988592832122200901176847411458619806090467484317690538195449425243394658027505102537317566358164792536691224792251700341588484272578656410782693422401374635511331470791619474780966430282224573940557769315047938897599027406165886402712815336332380040875591605438476521298985766107428887030288958919295986047664329543091213381362580563157631366995995615655605807127125293328787948295838229908013518757786695283185558476930466262504182008503646714665272477133013782182541019705188563303700752418057388059293614108472741139738772545867853755819649062623076257697840163296198967426308497201347672712427978821905407390720689121977396168152018990890458983247905834737623257781974492837892493059402509119530606503511375226169511091898697825384232964588286665527015052701500686505626741475948903791948662879592417624067063859952483044860969652602199303327863476680278535912708963782808838646913278302209574546874725901819209197364550334901730311893776593639805791035489341509896517274376566269789606877002505644785401106905748794032347266406824649999608688023570955584549266190289467736143003366461404852410919859300780809301702260458638802487880463495311854973467192128494175727571902812644162087022771013973724962180630551117188724597156319144688373796512118834351305784459215451873233445015288906620044518003002277738431890448113951133323019174619295379580036678625816641107747089664533321950230445416245898564975758056072150493079742347490548127183269262614590844841326620573026287182575874118042115276652919984529076006161267138797757532761093404561919139574408864666015537708716857271421937159314959939915323854629802875905761486285177543231290345565866125910864033180655008463298753167071255377108176243747167402927476684671119759204409347408773373370219449296772783761448946665054062938766958972321828046756283537823084031768719818365147683715796410472887807972365299083948710247631954723353327538981120362669207976005883005626702835141294080690835380904280865826964806289877864528922322934997538417006466765673782869458136115210976211311427112673028373439452785189887446141466595342922687787826297645260437805882123363944642340319700133204597737225610125854145198114947023329520048310594793672385580798347214680130465727275904584623335613508330063298701056111043285984995290905243468539756662178481279678359184808908944215140172640916178676109631238181240397014285463715716533378617371431222961904987499295738268676685429869632940953098993198845503198644198166206889674757293845812622253993575116721426309084893230490068916583944955320649741925122127261496703046829838295979844154211325937061346217127356728856121108540024414513684900945057411153187335989952571081647549270301328889246949209495214841469863774283347614910486077947177412331648665238549728869328445978404884032801470524860521069871259482562965887569102965033772720998088670506946824328268584729901040286867748730448674189262714015172732939265284298251486436552061654283364138480416772790511130098257381627712708971163759885768460634696926858050140095095594783282762709722752810248769575845962182289485299273290602707597407903980557431475619145365321860938950660154444688468591984369324205711753521698538537720911056282857430772220798606460546850381223106556409283844106720932285003398642688723714850796581314474920781685463486307355762330122125896658266418213101674557517348789704444531874855211569735743033595914960347456881801780260058498181878192179626200057415497386533874550571862748441773063171634571501982522109302985352068486371501352534514608459245453968613264097661603775410095399833909868247871462272075089624681593245939332467946381149065986026885633635857048616209009600865660058926995990008432707433170804300081562349790752911298738334978271025026934240812645916339224402857556634934289568277657832050236632529060248766546215549046348754816716805203527269786031416649092526009968852824130421119375154838121026142961897048730032953710585119489469743699629710838740597492609433627860877974239510706198803043489231113746400952375141805593186575901102128755041831039542244602502910584836592375388024697542506414244707992833371088066667847517173946809411634196975863794821392216179535633664238728331857582607340066073713713083009745748862855218376869571209979308748403688290574277324139619168294382750071988166108215993752693368334057994575737369513204223378255376983663082950324643003219882380043155118455582965056815467327361748310695103707759201974103531869738933404650087303427101131644112784767149152366171576316774240656550224466505717442976517902376813396697610336374669904782642893223539953861213679275391969369653511652326387342327482252435224693611510343116729559479658421914458477926933439410645688852937627543261905969254421040412076665987909252162137431968452282041134332483705580917804373133948897347151176885322939447451880173266376884576963929376078518248001582911175391301564738465271216647642449748035568617145231963042614696670855221922453074637382848946822659957368848850004509919604901197711122289647955008467579776853029056468490150130794294134498518693220574828929638790645058488134231385661128613983757097070422803188525842255052135627042608413690307838635674321591976588487443843425978333588766922765235597943039343258330750570893789648563826531619448629046689367852616534171745648743238215018210941775033249170479976580011687977338650809321962861132995607008122859266065912044842166858180045611486538141313611749810494617421638775233210308223979668862579199964335557181107973123151806070326189804945101978678163582165596611755297107189674586671590923362986602292514871616282927609615434739524609223777105613135706714903463964079714555012918359600185158024177824715367910358882088705081982258298783305459441076588496270284782370861415371528327201751204594899708811342701202063245993749539936432015451732213347265433048640199322148312323271633826306001818029483010191316459395410672918557210614332381928286213334553100869373414891212645507423827970027468057544975044454257599385303477650744542395553441398188054248052154168142938589823893338183444651001541656107784157596258064942045480926406023588527685951758842684509206276196500873135156565302819092995973554638121223724194897611153764558654754954668523777660994930499829539879338993783840922887035603029979341269338415231910596689277118442940975766121906645693722837805256907940920287976378112196467489099039539503092188310328165396096123136426671673116424546311190421709280698698405412039365568509288699012874015871313359503626112015817295538637225837130694310950677590196948848514914183102056008500984164706216951204963495532502581563552862194922672814863694130664771784981854620605415842776811112825515336878692986388693161758662025261303862078457966745847970076316170032438343652196026239518516501858241065592298231947911483062796410227999958794578156945202920521365500366299952011559954263274834535781421378486942761485169581913309223095787684088526416613925304298187137600984677156723531301353796200787831908973887539481968179551845908288838071260742231722396843027472955879540828228202689759656559893332139712197790583503220742202411613535919513075139962214617425199720808900958146341048666675783722381749454829003242327842666461503650973432634554655712930732930700776236338059645061775392666779722525433843738674797440271363750536307097336684748559977173693958294576569552167418441179595177204247170868439422290951579310044378739913537633340808540554677440612580593496665232978410233258265384740199511626293155795976510927845755708896906393297622514341839721397976297987352148449344691919902477098708848839564691183376038966610066597816767565562945600815757699481130898730353217898245496801484303735559647734120857630308231820571008291942833074751321211931980395238394270490853793623442910452864144761416985031095869696227596432053225169639714152835569174014785871191455676349277015413782320749582327412641980818107205190557131653868022508836434224746598584449687719005090247668220368429269236119251678357107106923543172426179348048393930863561633550509665647692461646853384755377818408543528284889866859942980430943619878469350984930535968821329762037581269401282638640390808470667415870954999458699547958946607316349489944950681619217184121548656227270197454978899304168884853299857459653342862737103618083086549418206472157208961548326871682864371771694617709591459116032521080060330312757212838772677949157288072414027106416854101219584861204009847778014433763818186750783242407579067532984153192510878772029004407899013892097292276396912095491328973096871906765196081703281471155858680920642227670947778468382798030554006209286280515127797410959271735640073643719003175042899484444295002729852543938311581921231887925556534464534334001734580396244453807672477060765833857424078428331311699375965390777247778434444080944018565627352078727818060092249290557474048128398315786351163321318797919652637657187162189579916790450435656593444153223660825730487371208898295875093448572887189940685759443470166818717757522506775120062941610367840945482599625961981621230671082338638419710311773767976401356532964999819336418778382867205276558794538533458705911320191166764753670909362106399164857442716807884491665770694997148828947990803791216430849426314098324284857045052667141460481189339456267170845619380766799440426678438040247802249058911086991848219137895140129766145263379090593731931215991550452555576973764204111077659210706251943989178828938891280154801842579258008494019259144067004933744126613837904604872869561690595784580813549014170381160394910812289207732483824373735764077119776098034104508236442924494707854872601500520260363612612665311980083899419466098426593683267500354210901609701770699352140642747405619838560345468336564549236164190967497766093757839647970045862757926433627269744595881894649764009985952622737760934472414326327653391498690834462271376573400828689201450582132577026076446610002043009067086304738288178631209041869608307452919549612046070431533591588204629932366251362873397302515345715224426150225589922069563757925194604048384548012595975587958352592628619698504195474401828417356346918333929105090163013228479407761202294266935322084545509578920627593814540666213431243501813089956677306423073577147946285212841217370924158183579850235182593821981978201459196325542036868337972891994016319652551236644973960717778108246049836044290870269899725620875602707473160145313431823325083582656143541485548934517939749578187008272729847492371575265230196768213788288697045601902331686257651023078450109577265974711483687886019111231623898594921951950478234862248088421176915215051205060674749490582659672262337088699979483916367900766822765819601080199120196235260669474946621101850434964677548876760955765881888692106768793796805231580158488412278066885308371389851415599697313698463393165395180496757558799373478031625510157154832210489504251719331996250756118549025677269809613645887950921377509137990031977171022598781699885904565766354308508029699331040221420086819649226342758080535851101325727683706875741089090819378248041271856572882796932404683279519162328398573857938788588290106546764171406389504288599025795828924600345581094183514796397653131450813720163818295919269014318431016489409488570853047649174036389617460103286933810312944742509641417784716446437692895402237501268354741592768181508484878505182722067036162408875920670152779870668802238752126959654447648270581615849161535333991497880388416500193065716599404592040095224177128604464140185115482266738263652140373637386475333741096670851732639534828807564409620604090234670094525786051749077517471406793152860269640467522190250325946267927227223556016493155801210972881329809646007597974131297235852472880896834875071951500489920704952787451686160720312620279857737378179571544482859960271610379482067694608774726124490529553891015868124031445975639627784501253571431248632930504766532759564170898689236468694320170061841498624415854884293029472618567383320821047426933358032657700809667952507819666391676485409341879499331071547714318709786843555466957951325844873030469795022370802329374733760398999106151205284560309267364392081739474274457197290166836728649154765815719332421225831556612569150171899059748910759161045867933669961222944898780340807480551617069026696540433239183344987098694148145670991704744556451280590120730935281252346221104816715663360887311421600543727729571817904595583302506630341714808746025897340097539665251291602056106089769794802296215645929994243813206591894563160528273111743406009235918691620814543320338720191219641406309923307315075473140852626092695182850268226159228543675161538257535289475156125332054529077633630926800382102040132026656629121858566315276720380491959860695024074578954518900627535639642417174498266754295103526671429709673140904621910183276896374038221164498006832009689814963364892264287919070906116688325697992415808247414760817936220301058597245518375295202536032194263267854307744965280335790229471130472184052943218478179887052442914803508583082827135944746503481020235449324307465537716709895362305091530760245013609125448302890449159267735861429593770192602442827916403437915988874247489606137408984936670659333638289479703578603100206117813318620027151693128938637667046193091834423662431830452668354754122696137770423750016116681482542305734736303177309112906629141262449549314372373134572494025755289709924495425771190858559892177960539927073201736575884857412660977125686327117279239793444876021760873557008105190261050224930347484307355374669425317722769710103686711254962565762775476527485379904564641807246797928968711249108165583720320068531764000542755172832498283070675319641662900344808707612568119494551470613230860456002799633264617571043209536165009933872823800211272560064516007600200753703114641352828825725174161753941083991503033563534408040783509656842619790618493162015207329676102945380500842290678253914090072678715599252767788461307275412886293247849345474161795024938378066746354300982407737523016132687970846388378140508301837239952663015717448763861913906842103076812178163308167004802781484333835047324060580540549617071794501091674882791631560726019593407482547183070015885204727909615210212021546395315527539699527800604938826166885453585047218787365580200364551873979305642404785362748847114910121715797527103832340092932037889353633251663167032217863086590733203158404878917629129284995386435310368647439820337735204627195031549133646483509162715216239916298470447751035982241103981254255263321395973058632093914892569028625548157130640819915940304368820592439696990909032562040971553741399963681898064521012545200575933840381820434588301317455318028171834717235262848721443369470327091306691436370474386993224921129388453062110375310251870918735875945087973592201251979183003314038534481598222280469981600893408404029316487736278150536192503627743550680411378123083661284118436463237694490691940874339670978595031575476270881002402267171351643050718275442171550057158134910984013443373866966898070603993254632500557611871609166628514940289190871779826709027884966157356449530173141774593988951041747488118024092704402555893582738574056531110742332667493732590403882734949133441619503237308438801607936506827388961672619583457667381260294524889876335569164800580405773684955001554989801448513496103419643049386878622740550877350547947068496289541114359349358810151703369216672607921472124320476715216848163634131013231875577272472294989220149429893284953236305810208794473749590579099865706815704630811530721077792229764523964990087946680210793949290649582875777690334824728716031562603907843451985504887929499857932746674160135017866997048965805660950462154277400168396718694500120021481610708153348281902320552495660766318209143636190140425305898296075743616787259891964381379368006281847037635377237282981612245316137927443092846359658799653541380905896873731471194424920723377510377215558098721954256868943755730958241150603536107982212956587274402693216613456951587870318003698232488058536831982541136951020994068072330778596359021906273271850047990149224603978748730779516703179322679251886922586506115443698606598511349708690829625604534782664008407065173307830104199551223914062500775209000420715009587011534241640201780737085755222007041670322753182674414084249471638110104849262135359015044636009403611492799353685251945104004226276193570501047015476902638673022044298563681516848756522847415231040836189982012691414691035925054173993493827580278738377567179701860662796976393620938696599820297492893465767710346188165093698198300640125602547918218648988536174966571232265655811173765826212159474160765830631316912046490991027115032320961706720946718211423020331468920423872687253826722742912068697692388408553251152197321181655244744960616434383276919340003785485368147348643248045771792553767232899815987941820555425982143959608892817442180062563832464388752520935496019801997859850061067468877700166033012578666213022441112709226912943877653472047597946720920926521378525320178298526302207833018216376339898736765770495144633097785999193114613992698668525445411878424189742136772847364655543487058627525045296750775369790435917303954748783688293343216443173639762800801892476107133530549956970929896041218193713436935623427903435660967956558258880424500919077300108297646434997809777263205766642078136678260680052604303806516567226043727639459663158137950282785839747666813914539151738255709423807666272819865293493651455125150053624642062914061372451788298295089068691210978613295590488544241456743321087132413293885084066577147074177207121364862257758675961092213888572594852006166213034538784210017584580787635493860688971564750987678790921303253674187895150331045613270104710746691699564798213704970298612988633002948660774079002594844199790051402501324629116028105546237016186786507654270909025512375170832369005644459618495466277609485420033719920905890403533045946108124557627881716095679444287098725888203925014406554501574571868057365641843615270077783976943833143069575239537232708144956143675526524615026267813370471776879329455254758746043014308649548927498294264425431395133577128949566436077432140053517184562187410774619054363379425571976253695597816582391440080514151665223512670912928431406266519918260292325151723664565165685973999337026378878178185157398122898600972951752406122767725935744843255351748574384909531818454286289814282626033464948355117028747272604457061716147837799699558039945735900982016440510282493698631826757794623058565719599040368670639097438736702092221393189973068350981847110950267950776642485629689327324770280787212094779043409349771479923522377911265411183905898410697239843736656340784002178594969332209334090185047469476132780203893619841284654790299295884433181991472534753388938652498910366444355226284287735031969681678274562448108923152114970011146497764752628762371525876535997513210469385129403533206847666138254458955525900678686414672744831877849170670852646345425205460377245479063861090531001862657740599665890830042732661377991652037799959144214950798168740867348476348064695997055857641551898655484181220720465862656023629732065598024318760913474626388994340506484665679616087550840777058052375859748480421184850907526267935980345272392988551609335563847936659277485612267341778159132312259573424639788059596636471821560092955596523111196093845984424501582871184552656810471284688994809172372221577688042118173442653129370361431970866393615961803446129682088444480135430663323562632624517310580058163747390530975472815629348455856504832242917507776198132740039088560215405140219761386543837106263339793299422087561801573336459732423428630760927110824935867246765014638553929311636819020053699772587742000431719110459687219893214810616624506435934833315759500262674931056118520381558912199385503551055987778635707717499188766405555984951672788661884861958176977059845140880587880071955816588892340558275068403227842580832981846017540404900688318655144028897463545256880646431887661532959549836254922652416155647772777227740548160781657789254048712731158490336721023590325983292507115604519954019543490095884935504483225751999031879518255432299440502522450618915445176364273244458916287643443976339755170559639473475032877562059683372149094065377384762486049111799622366698483191289002205241101718065455566877869496347624460887153429712129492399724373338101578856595618205814799063766976655582129344639808194757562656421979523238245095856665839369805854697871376066304071761825006263684676183602942588449004547881942205512534880076991386289710476774480075325936802270534246317004802007806625888119590057797383070778883384885318900711960190375892955509384263225199308329762719631616393043581977074419093327800776538538234688013129327797369770438732473490223327241561422982379339641285303830379696374010986472999763551852292206885119051123397839642142328252758185246506410829767097514857366364568453610731595874267504032553734242954531340365904346953042160159263938824967022677078816090778543463537293368825564007768316476411311772918218620301239406264236569963887922239120548030656414830374644834986682087668349118195968506262479086442582477273316632730234976834625657427231261934892886708657112691082888505174567542018332801093394833007565514434237450763289733519905438061820699599767494381861307456350875894788314542184228284363414978601180838916732281819129257792187600587367611176034018631179143217297639087847985411700253495179765170067591746667370975055393910151671435217705874657117005662147502620132170711218809662444328482591065912030934755549832643669368526133709072661806911482193187067499319503002538046535378975463413683639751322598420324117914158965681491361782783263076549548907321288117725761288036260696197596544242264896735691895446203510173863866692119519523592756159862994330967340462830304507254388472333604481998173876966511208172210242593647271652824340127751184846276135889877762886959003023107946533587797548057198949667791620992355266179991003371165499661120749876813888016977275088569941646490634312894860190408924246893899077121092268492371141280138809918882147774944248702565360617549814117277013113071544049089394480754163824369999483890965606630307464325038406908793224872030491502953913960559770199862042609361898275527182859378734558078596995355521217821831681179007961969335403031205541245788847555930032436576634528168779962283785565474044043248772103239245181169782353419536283854151325071454185403475004290921034476646169305404885281743246192499927832148749161562408850534635641802012326934894779717940886301711425910184113725579436626823697683332231029562333951859412311332607763383688646809206472910416951344311284641952658548492520139372423583791153557153320634345793293393601305014648534544298519055539198485159287526629689742172500032256377043963565916640256338770141670165536219361368335230531626618558358702073473523838730111061444229795050569342320250702238638172995866398511901486391626640360181739422339149642354166741564806400398932544085827639155939084297009477809547680719467820056272340472580565727193545137753410455268884410370965373194396832042442712529943800227338822199157819658133207290482316227523134978453959068918717943279053472386588841630517862849677226452041391717920859418580843703042615236712801980097727549232481535153090525928309020076978366083471330840365385185266466284736496418349769860128138481122496480384033271978612182728493338596169402670557334511906714013615723745926626036315655774315953427099586420478013253338254686165039980564213176970212695859537945416565714780352327591174205029145933082047945597041297942879375850567298562667097989848254598200389404173555388188448981493193558139526545805136854467919573774801808195748546823642355497079288417450189888653296139801279996888709759181588739493354373427438896941887298752003937160137261824262184632852698572913106173075750496568001070419602811929777101591024934300612769863525429301556545131705214233195159857356453676503792044348533101545048244274183242913662433987347996830213373796347211941276747138006717121880484089161605255538531065445612730893356912944405145199755282820561993156226483626585598829481826957607832494875905855634862195425071758418926749479647900676181642457857775766687574953779625013221443027446030893670899315172677384422356750434000600991120616084271159268152284737519845526131360169714668389577378125358596220796042916975133553994389883176585866816616282280730014648048497771167494820714000086903038775694118046173016817800243116711435900985570868334307467341792326382651325230315351306846016454072368032319070350216111730440484545211163062855413799618897075445320627441354119961609577001720333504878847493920776180795783274643816898659702891417389056065441860494249226839811325650739626214034900412455114560162964646602401837300872909392905358563078201802748125264759113400859210842841713538909005278452081716259309971466681668519764545002642747477421218256599055315641926371177154961475689512610369714788387794155828051149856296847067412141637710844048718750818022402070698246337038902673163987559917150587365225779332213678809297183377106674550185488241863264303038586084660972375881857206815446923922950019482858705352704356186844580722746739656774986247152875735167497774085435798407861421361141836870431197397866514746656794362274707421358135489648620070982443137902926364475628011237679209337465515347281495709631193570879560202183538866196528454377210765917937965304215646336163913092116789813721684806327042342759861147587371231058703143717477020556565865851136052512849735096348173444180811434698160510362367930193365600714181709116949579122935479631831895909074103419742997027505246230896144618858430849852773002013498927477474064439672074029203898341026329389597293354189503757224944573750976682871575276974338381548437292955557332016629852166381544238215556496830410130711751808652188587402089243400799543577660335189098693787075912576951568526482620171459073853347818297613872542011020911060724603198847210344840364963184990535964765841174013379794906638081139995585449141391551237641720844504552169465369874251994709304486143566991090687472772553725941878208567640198531135187141304071273909078550870914677067013584509330855688490925382332231053992511627871064724170596047134151893741704179484814628836935165937391565207876988866480896686264092045027054387108327675777327358903120325751298613357623038454532773650749331110317896824280761380578649951811386047151712927892958807528563597831335738692589115001215846615705677556415564742157580166973461114236927734933158707426238116919724933804474698951995758155903134371057402858999389935035384071969340166607766710716955784254162514162302618903358800306747467312543554533268378955746842974750694664278399563410739156309774276028886593741751095105553865859156459341185266585719690552200777535172755612140224951488426139878332564387803062746706851517625540333417807283373478645410021972701650015676825235647090177552692834938200508283636692097098647040616005456919148343045785634663176112098749801658694832035078344984170068076904169557871133028959711691284482300711548050571526422313228162250321914617788058835538944260159682463131765022933386825574367305690491187901648059084108353311011618436276883569653971307249160541847779909775194533636743175306775509822459086422263985360398583692078786835620723629862224660975528595779635745506179645524595737753798814679051262185357735395232685773624465676001252451473420236232414996151688946108495773617867425934827405574431858731500639920881641589216034117956630649540714607033798521218285798628871506018078274801692824891319773579503589068042574853654105673038368869726605380119913583511291307403450878303838677897427415040876561091284508062582389195669685035448629256857139246822183054660696997824479033327625520610109722861447651280512148906194642863882453897942868678115062651253874713802249060064979785405753262559327672167417535663738681463330729525768940525906757071342508764258339634434667246597804385495656935627594386595294551230963047779037368815025840541867058904118880049488536999179072628034710592704531411153976874063020553294253254402804573219539690650958350585895419882438539575020468137978593709397693882668405174047577176449023840353081194033481409805243224672018228406401523375062069603413092876500071539198945078593080053926577012065883283329154736273643685486364183070183555994175874866242310040399615989476619089079547999868487217568274895343146881175899651546650238837018307610501529922722484778143285057873515736206691075846072917114317197344054366073767741139335696081772187992930875123052778870656498144012793075690613198768726708898509037517093295989250495650266122040584217714928636704027764566537756038615714396647519722309611179242860609107127165479530723790278335214673119170536286257887106293168714289013056983192761692224236405301478127421469550983517245336254320800945617178239698814129011075796313150012566072678747543696476045047545613795112453576437736268527004506891667879394663456735239629692837227841483410710871603536487244061816334488167665127121924172376360422716017812514748335448185518391218851121835936656950461144695794017106424905923425282570049288972035783102743417111567457601903881810294055642856602666142707619952044446315953979244475328288463246397024373097931636176120988541874263858605043357722689408080994731867770949124735190100403259684902419700734187999804447263276305049834809435457345179192123239189905254135676581304414022810397245096496796790064378806749493683361156251209594943962467075269135232986798137288886237320067762594893836592951097205400050551813481771804220204226380881146716352343336791944768643512832231908995628948649733178064563264270994444044361629524314482808626988971550520527676388059481888524671123313730112977182731363824421872734344193503333631318045043830209273638955256033297162015209203002971670739628105936743433233691195630434364778091720805558021683139156454986737043676637581102447859346763324735378515233006925916516775275257538607877611892479390000501329461270496144465642055324053634220246733898281795944676406286340789756255902304746982168128333797031503829321760436598560267562570560521563248844817098214588791696518021110598078961502368154924974894390246997510854796964230995575118647341005835740442469815725672789247894302621416460732917357084897800530900698261605290641020230388664933955155254581712730533416826260314015882759819665076959689448526314572883189336022527959729101505070162610795411694303808973572063658012052537088573924066227658484555977778333124512110893956707130806744527689901851170605661138048959804556090119908144723887344199774626435854251616481209004085005820686590132459232432378777044857337353594576659078997450884422382804054891143101620403551503987579935848965979693070370039937094477172428715994999046855160428883135787383706541359596853594335196303211577630027763688724164914601822916262321924832501743848390460132163222167033627900134803668623979185941286191337912314033279644911827130518527882386875877007036007247731433302834779310608032624544288420927569319133177951059522345824605891260138841269237935658541076527017818562634831918972567245879804936436446717805363571537781321966796548138116749243120208640949862984327159290190058117872235751343600238104901732362841158985388994456106677598953079866145755127421415641901475148861684954863201375256298993922802209643235453405053646239437418880300431155944264051929611512664844058335362466394612019227017375473277124307255313933891993128835314694373319826830003707548744491903322741489040956273122885864196377363271267046589426542557230173913660525865980740948464062641008536452899063822135803150023216264838710081611805213578261921717427299504729648089750192195484761801053384558658199764002485390084505340229918396444770025677228085714723435973454698076698988974271703244968297428405223933505606744329909948010646780253492520060069586318807232775580561551268657591719512915427071577499180837921466711183899690102265299920708231418241014012290368686563086546376066769424368328321265149841037259033741772497537996614527448282382675118798649730381730288158331243598412671893701518551979721780530023749902680823933379891426713297187876730059413339569816279144329813031126983315477823358011357534005146706536771023088715383301663454756047363264823610298375606952275916926722289142582086739518212936569400158000244282177280155349963554920193134031847375148202830753817599227321699947252805471467281681104407468889884226722328192231539547330397406535443424186395935519346801177437421919281787519069099232174787510785209694857030764077105926081979939765974259053960193825039178981285124107733613182433537022409673799471841352150900321692101371505352091864651203738139870138210302615234753222365873230219140488398971760016473051757729840709774361195627400017335308974396537495270757483639468288830939196137982656911929469622713325308519824761585203823216525631951681502966322411471361722830594609536726768917636000115753829003067572123357931739058399921775246295036231538894944981364142553731032694647665326292624947757347718413745996537088070621838375802830231398935479602607655337053584062517304082045823301685971086751827479481176359224874605673452717429106349277330004319116094918425769358252543673258613364741876393193802286284602488219959819810638940696118350852011887696951079545711544144908264705154417315781006113831815552837031309441045618937055401287033926636180457301010793338883068380983337890246535288346553293746925889430364525510091647640461075616090590248419190377755924020459285657004898514366946518654976307629659785104102961341786497037597759683146946853236287677765324348501566807055696953997123389869354760951925635966700839385531472250972337644811017033118951202720978571309423101681330039118152636483554506156348971176681645405738992327660709997826205924395221388360053886519543769078278485856725230146001011286420465078539570997321409339169171454889239027596754972735736492700460806212459894913695533383545627939714834555081589274829843350844720127131167243194066366481844406154784445129516702009539687321934393263552552462646896671925514215288725570885759378032425436024333398479273941379437396048699088945268948325339366077675764751009028745426478301100343517502027445960870595935654206229663315665971967096528356457839215093116560603157290348190618972801533960367257873574782690388286131763623133815947013773981873825371487922541900741742723683998893769961782461928163030503896960049567449665753186892126460771227128657524809245170413096885861800534524857466096753668708424926980845025789707600233041525087335421049583560032748255331475791575348964790885779644979883024924043012603672831939141289723374110967294057758837335253239604454185660520964670760461131016515013965028576281982715515483551589336413467108625174992628394002617282687830802540202947777830642541664442250593281566369250874290079521224905429631538823626173039703434145492020073291516991773669004517723787230618862763694611262937094626490095137279104157884826444848420799904259377824624772500257506794594854177148815925896566667769464900843242643948123261028152705394684093984741583325343583331562697054573678097411380456344420595968579610108903595026427795514447864836044472018440467355721666334787617677266756719042550450744168825298691557697620581439135174371190721419766165784864462314742957978823928142558578593655452793856793364186268527536569185690106886389275312457189426373107955631284915329792230821833938766721251166875047785647537238613447265890456040917642538175097151270949820287517576702254920097487720060944927555407984950009878970093567505763746987788678870049937191737103862249818947393258057313666021735083922486644018605454997141880261061784637752188905697957273193296218656854929576446094977857084193198321162326913754791392944989153015961052989564947526106178858878800276806062586192320927199443603726242725364032883129527480802147116955452665493119022669390102846211637166338453272372026723821817126281823191272119876583421718335056505773115353733177482228121854375756488188571773603447731542712373910853556467997707153532737858312237511647090287738039538362245792564145978688282353559231670829833831924177712088501396802071569271111043525258824735445514876077576447805448809194728580871512831803989558940037156751888372677915585517057997392197980354569467017474006761597187211444851421359789699741726563815477932041524291081671693816406057520194979901305393562468419688810191913387736424353452172204533591391350264611003424712750570973090829590511925130282763568846980204013774477621242334765204084105775694351037521431298914437914604593190725499359875119632672094295156862111311834192218241997059599946148173508894453521318816771121068307325908700425989974534892537982844699254106708210249567132896079260472757739451138642793636234387281449680104360773839260937289397554744802663371838594694721403017096432376275017228720395018556686105325280536033773381096205853321832944253559978910683269057230707484701448039271251814953017065872814092284874071672588843840098448057716702761849539108438453437402910046281910689025032678089646607602706744554121920383153018827387858978321762203805177634327599020124581151923588124925673470715179859488006077554227551142251902488827737823763124247690593345809936324721645777361015057309226663295379256341550872738023524655113266947955054774603332702011551113928695186187549934675739837242803925777882520350715796394401924748460156173198451260345480786039933089451416740119389298792281462873455187874146982850638390235362808122801637915421602416304680235712406880922475339560823207158692602385770376420800141127563110680837657212158038476266429110788063466809997965268113874428395314348029976282111994824831156487917037763817211675997784827874825209576454359943274650330320749128114880321503858635859348995201266406762076943147141903861089710068852292042962661184957200667049814531206123925443004251578643598640237632494340524465527453670540522131307699265416683333602092218148964656250131081692955122682793150306711708408850497401293346929451389729350188925146198261600292103724015820656280121903906083022749731827907533987740953489358773621974895827968749182752992557226446076349365941227459929819220092857521169237487451135569664405775640191667409934603197619943841879803947181901734080304180912418182946298568376954548017539783695754217842936069703347390444143113425596234861612486338006685313467126722464671622123307551113655384728138870258749538392571367970152886820865571659334315549569499044306581572283052768033151484314783084391257633659425702314454732213475827810844017117778843912246184935533153534448660166702744335646747956756921915731042024028728932317078300956813999141325057666316698222730645663272615144998155867997713917066098981897065567588377623143285072610544587442688734214965183572999640577633424811928424094662921108880583264885834254307992220687433795960544192833606108398149709966045487854977086493599281834327133946730984258005768587884692922542696247610972066236399288670997408962555365497306913252502181888648033294797797245135131226468685553171459799215142114438066357725249912354619611102811568955620763944740485935555446594529574285141773575542363000619056036815856581725741794630886011719968603816367208105539197314006565419680614071081568926474959556975196060378555145593672846966451721651294627266619331239113128325036532451880613096455482420202790974170522785258379453444715375157810443627449680911800461245499517387549050504870155401288309644732794260037530445893731977674908440897479242131783142190255044246123915105554772171368588696278718001080060610649655721455256500109859781926135458656253528336033124677423974309371477213650391200409564656589781694827790334079724151745955155704964199848361423514520119377965885010243546695021661512002653922936126791224184947903389152988588881419548840832382001426306989912893838824373399764570293181059906234066786983811253517639103888948626132737334492215298419752117901645141229469709007986144665916641673899769328679859286009938028715824507703045458929664457947795403345331760730650180210362380117351860861950772191012669632726245518191264024620769226246228851176904915573850986293080216890714359887764040316097164277699491817832840485948194667008402623924186368259226009825964732376682922417732407244314177861379440888195341335301588671537318125095221494384327882725502807284046393930741416963290576976629945643466614773920962885933273474431214498187278247147459541942246837342054150275294012410771305669888214635685284061310806072030285041878215954561801359389162228368962500040543027756748409646679219063569478042359153758149350515158123445158354981408712343838749810758589718555641297070648173602222909246135042609233946456409848203835172616541695614266455563417946574511787858109616551354211454539844679000936918475412838657253955158620380276182180598817229882411024996646969618336290085452283651880109643940810084249934785354840618090028695079147628565769408820602205668000243311810431615650466216352174291253135539347733437333449706038649957092194332481185456711953966470279961857364667218009207062179715350078610480290496777914111381215327921736680855722915804034901824926231556540342198281700990494069277212983021394492186648114410847988869518191676490696372665551563965798384050880189846635933512526063262490848429232693943038214700318823622709124291781432428780404032149199477921605064980545170592202828311210190817561003347139559039662364598747336961394857879876548438318057777388583843514356401276024428916246169084234428880231596519150633571185427967886257793183715791616324226765986948385113031568357425419701230314243154638339192380878173533912749760167752865990758853873251165114914670841226098550267375149308636698241717555053254078243387596314933634227454809007798432704752604104270274310387468163527761158311703957674739400413199071276901137521855389038312005878481945200313346283779743089869043822546228808563344569077569583018951410858428337794900808958686660600943397785610232954418654886049671519091228612483830986500481288999308424108534352118975093867067966398143042805271402355054749017432354153997913800026598735096391515736895996230918473653627998690788986382833306340781030176851247771989752541051948620782813607064116377913609484150051851532972059476459758998489335226363649832461790012718583611906746287351010986785438180904633451245330462751471137817640326413321608505326094142492077311315120422930921159693690362054824610285434638799394223275408737025092023684262655076286784962238199938350829302516773685682420634818786141142050765680294852651747079730504652787126148449861865076668783621511718619048359506026317762287148681343030549973759581603296245041267463889662379697617784373970948259188268259204009135537951245180256483686445573587856066900012280559430551151967176632712654834073162751852149272214000447998084901557342547595695218538517002163844962962052101243101070385590809989110633806426109835866341911683705440575663112627406479739072873646185225631969986493282751651705080352241343993255872832324863541147449710225902386075302883712430536782206854419041764652363804350412428031970591134231291926750120026246324546384373237737716692112177814451694384604184985387006686032602071040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
82000! 2782125391008596900934232391117287432493025374307080585776790569308761449835181014637019246717053891560856273742148041409186463546262038138554544670583678231861605052928521231304221396143573437007175057485804549949293870996003265036514066951774123273074814830992180193830894389908378573849784248574168022245294572351864070646586342299015739103430107265311773059393846702170316094625520791360765487387866781883989842942010234275529106816920087498332319692989887274677667311075413404674787200590682091382531437428248305872489669830253261830984335896686880401515584275698766096087943698150235693542176979637850955496797184253723018351238477566576337384114641873934815314987968827033921839800319727768668551839107492491082444728220756089622854860952814736034218094295513652919186715793196960671370403438556306964588309872354326333031458194749673456293597573609130880202646172996699442156713503856466342389355270884332631923132112908945997641620893509946987020814349560448769441444591452471963025050994238682128641695588755405542241764609237694616908509693301021336094680747469383428793620425694431689425389204994654202062158891427245182545803852000103543854791649420797776090154076074534941765452371210119392656786888221351347611307410602637357035090263932131968072723651148755267584916524171833400171795129793259926520395179436846441623899730403629730084847732819102073191213996068698792892242961267192228666540892436183996521472475146769023642541558298660743256229978508631919806992067246545823640860552809279782618621305992052985403678770557187674498495698339275695167235322424242486236112479076954999628081057879884715949861284187193311914451487602199390477543057490718119931622884189002695245459784071175894889853254878352875437701449292712898586212143336598126616180477829801517796745342965002286395105717552712192563295365213180189336613669975857217541911024638355398824203758076259700124002844990130624762186548757606335637317431547677124238608994423492358704331598401806022107656084295135495274168846390331704302218902179822019541272303228973537276073769677627228854508530905167432546567663599939964584610193466030983650321432053511884806609255379665489075648138072140226187420876101561322431426827959229471910931076062383774742736204678227373292451154515929877420836637897059072834919711951484201107321152305831832794436367754801132602401106075662966637389805959310914958442988990920145685232462317020196679637541175825066852589262612758912929961121968127922382267097171289814109496358521072874759227853161615159485234745023086950432829375276811288082804890227287515997061166398361152945691556579276537027863910422763851119953430308978368024927169532245314397779264732107501723007526951034984266556360407389924127280480655699772500794916971607422655276762366599842738613090509379483203795670140750180121410535404621073115510714580762333619524401940512327773943543078366035738878878257100546873742975160591046329869911440796078469726265565074441857320661682146667083639224119506420440169360551029330596863880006345912287612972392481244036737939962014839616304103576648796888112432526977425503028923208308591452137269606381234984665209417673503682642517935342042170613147055841862587215546065488944981365070131501708887864503857965768800651900220437916147845179600303670194222001745157632658590906057883629972959454636105621524410773329285289917749728455993043528851342783832558782967793988882024318881579584298811472845880640006122226645351335809807931351194064214812721163087321356171800518897808633210431238773992954002005845796536444576745509149654773188173389433072161427678967286380478978593459902650191012820525737768081902643525552434564770768375339555067012060892060524907183558524426914865448789977431171594668668214805732904236425381885070748813050314319073677633029474747039034031500813630605868361088395108730236608635157761451066491833886115348228854359305732757795981097431252672964622254519683696503561574534122115318543064260348328297135569385544164988916869295940778097603345241004177609618038662083325944017012372221471768464452539151517944284336653805952565763648372189721606598529387433102333768496055422662595934024883489411289946392937488614996985393116588836244064518558777370163813558239605900893866382244676065795508315960927583781145593239758846374383632802875076925806573646706706865212134077259236151729189584023606004935689998485382530846142311058589694770341026206786751310430441275881558969089429494719765948931272602476149137308061241772230180295373060393201750208855752937332743740550319819262208728779493192735174913036925803232944179198718632472544580453866279283963678422824120359740328714753600263800937289578715923853759427399657117244343677073238868070677274981344677037331658193901317328007892189568642974019813179083179050179470130711851975420333218174596531437680441831155845282959424113143090137907994594967683920279703802876848795311027089161994261451800053946649266021483047737989604345568906157675535766271777348567529621765502456309917089986438069644140646498369509318370347047010428376244141422993083655618701555749587518385744263343526270491573743772456465210724550728913400008267454708813256396563500201544658376837137288389548673892233232028800751638933360735050546842352282486916865768949452051692620557590877933007282168202555976496240734136591617002961302393691439112691643699679482855508693978783038672756863712079590302756864328586413174717373394091088956426231859792707268254210939183897426861693107032082820177164606860066852382236563665277399473619403207081218133483902982643351058774444631147093175124099361777798136627364671589563698515250797793924973705614979966996258173147355249858670438965706862526550229293511876587061447649959928126783578065349689309881349154189935765784769302222283947648080641296554161469664060180012383251878024519112919009421494235945083822618337524398895241658885996425088791358274758476408308142067484704487549570775964862805554355385292099012068777124248993497950031890334182118611663048668924058489785072479747875979399745356053561346611339403780397913394342507314416883193876550345974819279060843611949542650335039709746757868187153099742152291826352751216489897060938808231201834171869424812520049141066555962909972769120373901521937017935678504521237303069974067684936330269368393836359763484544601111675807555985555213672026185179979868794119770323309647679468303228112034978554149152742865101635024762002277631766175817067108773632775033632601637277781834788426160536026626422295874750392616831517048379172551184886045416279838409178857849883351711323713087816354122642688222493911821401944900517893648748804600727157099233025039462353029243125021673056416443591290554659377439520665057016063965909661904398742590651921328752488912157190703003076544854066239388494791241722749041166103908747704576755431811505336818778667612145407587914154810438502185639344791353653931061936324792686420569718977021880162700670896253508419669482252972017218192477837339618099312535450535884499506658163067315055035390349374249580356352321412760572571947334156697064716395164591323819499309404386845217265809579187407185247986245722280496261783674403994322939985883023660437729091975178121484842190216146817361713238055144308231547733160195557510542498504907045931094812907173051018474817898442928261792454513720644549963982634328192514600735803535316195453240499397306205814561251862936665475194862031297982879142152990325638936993268409509587816757921538559175078227522136319657500675146160856576737395982652956977016785365751759324474361050125061279687425812774991078405948247097605918133489232568633065336655998774112696435010466649041639066872620168379880167033216791702305464006109707971136614508256644594698914726669922669023524999908531943386706600202364795549539272464819220259661503641545700008011403777901395320970600431045944468379664346204339295455485582056669413638917957755425032690569003678667933291778071176052554316953333654243070478181279952986924873191879931309006742065311235614522086892898566197659260692217096269897448489436176137444044793556629505743938733445966296690291285001517947898178529974709140797091697385955290099559830049272101022824880611396215161997802091427674714943881507205230686368931255572130606068637456840915448299308423284865483840166040156509361489325785588613344817215519704741428311401504970282168469694832162608292533539705887544594818713456532793575175482929594959707737131795294530213726392590380587078982079729123448636834910326378516952443955038598738933579118431984212093675598476784283359513622646337130580399719575216639113931553391003351371887847924140929959525848929587003468802397453612730031675325250462514840433976145206687846445057003811942869166314153759322409660540142223982856241793368294998083897472689084437358506599775909748020871229121700731735287512724860503954512149746957148479115552241719593430581581651498030735736674159958555014652272016272768671804626408752006082051794710561965557033272115706356307600865264147452836520071585622833297700673121511712402345877986812015322116562090757918029322357237536914364080973391769020095633002036085008076714718998612886093904845948119423011993627217061687478433628285567340085339713002594701382249089597848466418077076378701166479112948919540991000194858098195492653258291576651476661280745060427052406208433806362489466507036963548694662923028062289375923688704604256395078337022352490489339386331705783920175267734078979940927635101836844158267433471615733569037423024917399022186198189359566466891783347572989185060078504627346868356820729352370616569892498831255470422395644425304679381670363247089670607030534350078429146418309602401337480978479561830188769679496337923980573387101984874329648695126784622701044507569558656825937629661007913741903011895132815200959053508181373868394765292574044756673084339402051927072434137593967246453245554558146026667553951494297495762503321231171571147143555763425105353901503686121068467221719410662672358098457528778219998092793431948126938341192914123730948548480565901216944566377498978202052299205547518348739789581618578082386495684281395480033370482123678456332592169347440800918606933968260549738589277263671831132676133022948152956990509689239103801659167150637965072479577030884209365272719170663774326058334187349023368046409573981427017036436948494576569482955022432875282157834396617115471655327876295043953997979907736208305473651768994508723290075554403122657984862438419935654346098705995296592314485695177650425737610037277724458745942202120985757296076398266562667647250893047032462936511674700872713028385320754658426167989598860761338466387406342646318827633675116937660347954916941716618327882973217998154122693703133585091068525058965300983633024856397827687268631097265137962028556856595446273818936376924912006037571813873858068020445686888667824328642367749204935005610408362459339926009484050106184634494896165421265888117384599897174220480795802271734665635005908328220414450126919684826165152645291459388891096782113211178792094532901188234316016563829908574785390875373086628137510611299417459387709999003481921270883483747377953510435167845169376851183722309132303363617980851477964583214464801150467606715446139301731836478229982101326256996179536438571066147281095263573999539157329123584815309877217625383907084617805820985825544322807876341866894911192078127443413991169291092969935105943595262343353277299875883809315550644440274161967479002338553946453648222586933375414897967648623628634121903299079415211177505362129896848675850068818906081274988626818700152584290116367046748189046392001809197215451620064984197029342153645535070623379101576546842743749568386984387970519865276889232651585018978185200720488952118336689202662121166785885112115050808070396919300478453924929297681460390054951362625261629437405044299824160737066700497535546175563991672610978904671338640455507886418426876660014124813745657766109503466110909469814124333631649403519679627098466530204469037527087110577607904677024452775401263020125567164703182041917912373441756562130566226846625554119226825169059219333393635498306797201666546037650708795003292955677200967605395381334345474161133672360126028380930955386371961778988894424525982476808403185656667795654010096208201645484881650975623093424739389810627779377685818886913300404529891311229592620963620271446486638096353438994176985437121099728341135323941347161343354975135173953335312805572599431015618455983549532217723515502850197525027924809952867503591169697979948825889731432739943264211922851961847788666377393560342956659243999403660960964445594317435449873546796317406702375782489492811753528706072270042662106267785390540698441396991989646568370078175636924203482533202221413115368478438285626531186195478659104334035507381382518347619520779953972781161400017426352896607990271887038270056482347386766889563007907632610152875636964812663199495346980948667065453526366419864819763249880256737494018304347210431175560581975088160384609100712924927431320776484502764811290177706516903004070174417625298922957844973717088824494783643262530634888025657840873904039431669784120664480051344256800624150185478473143567724849289880624971935623468345196120158810011583132268397009287624175064375265889323245302100197365531597278421862196373095927459233016065614973054268070352122867271065063892694978297060809925702610679360391978164152240864196344184329934393981487805507667772003087785886887328842065695287065023749803271234199254715087439525467569974603336051611803415986377577844382573062169288032427481130361471819494325225654601747754151497835643169979634229656868357676036586352093202980416943567390240425196797386317858073074436362516284728128837615767065966244042312103853070857800718989145396918941916457139650558320721819459927947270715930523233566015845445434140502540900881842767241864418949649360818254966383668557347853071402517216303960958312917959186760089513652635544093549994953852361936078663141929750184924832739986072365148240288175103461719193562613742935483567309441749195462032730980426358771204361713030650145568650943837173006169557156990334681343770230259294152247835682331251925986979576452204399122261431806603993960420505527741290137026003348365625538404426609242105593381119431381381026470451074390106370996196113380999548308785640227510099495282781297123093527807100107765877213421798473736299704671602305948082853511298324793249270926336405159371246783138679151973098160058432311046182391948529439373075197010077855880782989283157736263097690025492625805174924817618702501521902097996109899244998294435034606254671625784650470104947840743137581185601417732288043099971687395012945271382214152140447990534220564714502689234785323129895470297272935113118971022068077659484411074759581128603317654524276789680491438553162783199405859649832343209685127215332669728339286420502157344513964138047800372819030258290517815894791592068311042073596652653310454710645234486757317264368073670820767489831051699688942680088562634213618071199013507470799320682250602061193385024853616512743087907201213646045844899810157056968312805934536379069807761793624897418901343235874855728850074474944215784454714043923583216690705087408238923871735370596836759043966084534740609170612888329538837180715275982212069693452651060040447081589452288011174130820230211954796434902659832688804888085621891597936719288160763071526543214502548733309698487610856965175157341027980757126520386337589803954881021028686605420068215793824415997843875506009528784515086418872026951289249028848733666810718319296575275904503727004915413821020703106584577857445272562279179332176310210823355627205004512613934380330631751595537409645228977543865988429878546312043180060366265811388787378204871973928478967635852222701301594434052824482634292175562748688638643155842520460104377929096905793854329426204677549225281379082283343629645948229627849415978165284116010441217498774208012781819560036384869845942079426524942669517796932836964698588691004700197990340581416560641233281206368535185079458019309255771308531259046246258493986068737959230103234101249424628148010912811437006365850106669158111493351150585985810019418800012575284124123991286600054883382083356388363208472220813616276514326573025051752013879403536452709183731164388263162171532718295980400768704534265369139652086595830637050506032854868989729454112991946401794930940792858367875896564408471039613982695008995260749163071511346015478181605940624897589540549670843349223152269467948096337937450379750608002815146885298162131978155667663086185012024476480243430265382496784758779649620140460686789305628855706886654487602895592058500313931697674467804827612661972753509315574327226306656213846353588402806034621890739531300647804838288552645390378525286588715584904401494507080360519104765976015760141796263250727591521398109057919049724955041306695408015494911018978073980827937307347817923905585359626382850104208020254710515643965238500280597634083218217378180816818776290623718427880541821198496822937692730419180480039683005157203701774068548047525942555892472659247310203559777889981112771035770531984618105010414348911476837715745636048128017385418345248268743418365760206357626277393453798333654719692332110676477664842969872779965257780990636574689354475912087885733280199071754029834531919618353094220773476568615948285042250677213485426542354046346803741191457582925594979155659096707494240611730610245890690404666546620731716790108283480200983776074121778589532229674803240097775270678905819975026663788912487878181894596114970133366992727410474233676055539024019941096464917254540221637025380386916280114360576690450121024708604434040048100039251424825653102182543857508845163323389033199925151895154691174979280680133631734109153143644426739847451855558292704833186483269913475961836690115307377676027548993106140033528352769397179917776883384627952561512353087896007930850370864660117992067409053752392345433583245804910048733940295259348723419420963475307428002770397298204486120663187150975522943572130066643011487883841614225540189045906178216265635587248370097975921714601989668125043617255802309698044616794347849816259565166765829001569972759734499786152720605963727373165404269362952687725106753732751514504150147903129480515154049922400023362583377472181127554517683414248199326778310472760764859863117362706690601868838600395163102161679460307413474248596315146496458488285502181335228700134275194835937382671061042967819521721171204461076578049672102118014598368513956100629319331071148197477894967723343779119488090263157879543055580390230208180470632157344600834596908816604416724111379901912467763814596802509305928995770490480114480427760018426835021453014358391778489388042562958171373436499031024164734671796478563665799941584334646484848195926310986404095025643676410055259645426159035324046761643031218930798607286020336238034480908221558327329159115687580272808096522490517831253565125640862000966625879048845923982611694469082378107853404605076667533270813584375916673102960093029754042692408139388328656260615276424541584128777547276278647925555175690455018654998401277579451813683088339778311472297210036417101804293852069425340438426145032447559679726900115248137433350071316272432364794497743921190274669055070754355779422184022631352041267358413714969991256255280639552007076036159949574455501120739570654201038651311659547941003827217554856477561338758962455143081339258431773822907455606614365642120002061385919601784464934199875522579736169706611309768577488590012618561410090450265270620963788007711444477053417793932799384507027257711737284437357869421217322695837385792135084839049168733601853265073948343103848767451112921108339039986712872459287279975867854749555725142209759579536087787819448710833167256732325288619767341915664639917431654163871129134835344683622704585238486996975585641025524107890758883260546776292497512602943999664606170612871843382849690154171905650427622324587434771211788982441042946483863906584883949379362181287165043254623009323767994453219313073671905070342752881435866382844696895888761016183143547493968002671210589566322952305897240044489745542878194447876665218513353533937803081596087742206766753987517050395008031486470721393427052458230912781198108341038456677997334495070385499110767838994383179998829881107745706037078703919787061534162613368962660704179280757446159905602903324698515375299624808102401201153196839538706321420217436813152375587537244789405789711878747910286079435685844465962500569219460496625334716735072618920209868562020772782078211115717192880074504086994930329298067516595005137621325390685542604184617851717558996288422738325212339190420038700778891631467376946904992713456667237558575298319580824982116786267189114645734986754419660064630530994027690331191597506165605874322001039961204914049134068692754483121070480657681568085415233661508004301191714919149736414959340835179007099662463909695792869561012411114555731697709130696730982063600847175810503460764647930576691284929701744737338511653956028217003314966841826247859174826018574104371876523772182716644935200469760697396771478758805097329660806604516409357508319733911509094446970893541481645077643615585129903774560030145080086468022699994997476429921271394226116855822028315462449766664526908662937208595064146412499825658935089447560045444290671474198726360568470322269423329595506697131742578175113112465936687665720975376430422151155040569245891415841484868391619115799774141963107721951277081348441273444804654139931812178860549113419159451763624951351444352805097925890972854018414704287527516599971693736293852602048979130871568956983249116607242843159369494013686596946206312112343265050246834366788388844753122026959207822031506183155537618998666769362943725019193400472368666726490335304555333943678854021372795890877678214186627896605458154110199006197068586560118656628911562120439289944998217408678068881547937923089926771595062441788762821061735470958175292642986132377934268197966684289982781660184230211748632307586693864633359084104889476729179700394265436973101227460849378814809156037430779905667118527806801371183290686610676446573169051122386993153537393919983640306472061728710756897255788456045865791404771561050640507470508097935791761114022248757243420387944053654811937967501216313073408522367964157216752759960017876557254213543887847801482639127886097349231852381703231852923848386884337967699429049494808355905843854410099851821290731289969638326367978801791036887304527793221144658936450286561997850510165872256818240202888651483108494992907129171568178199486421727901391599398559946385441349389425238563213313689303840972461955244631264223598309048160618852169228224102122824137535663175261278514323842126436457484106631831049391996466503284055699569775859034279780131701895366154355790766485363413586251381122917546791534445451768724772922139582789394689790644359050261241346086605574274062844477923218988806189882494275131523873454568171827067214676436269026848965210374890803118682481480394820116105333697224561532608590031928783496701327714035624868233095232454834221904476091305507257331347929789425177636170029984961511128914426494295009234799264127231132513484828702619933507336869604520357533587809989731103636690115220569590281988254028738388758480366876400475005395873618228486582326748587112129188368746736741433150285930270572246430513885959817419502389687420193891729200091115519598316256688124956827560356935806742885113155080568514561313561005129180220185507933337683081362122885200265702966574949255254053274277643823996052974476059950627985791352300619013055049795848600306121151000302389776097172001299967064083549763740553253289846040497261368317339339101960667634093726943367604956619461584992311996873917204670814447617369893685544556397178743784188323302230733218173692600819064945798367799166327730796244869695510967931474579310841702454964171644046808500931387334604719113299293167030372578896102787665483079584700847889293624803655085493199648540504125555020000100451506143319082062867324889486350967723243172537547870378921152660966825888188411134554570280463223090497172554981380297079572390637098345120325223137221374043751404580137169998320043467763198519178245808671874810989915587124746158320930741880323418322932658199647803277383018450709072955073513407304195081115130741098953053882384779724501154041055186339659964020173428245257694625320412367333034289166721803950587360435738515066452232544789635277917348145420259885142472882858919009041252347432893953964088462241217012335073157344325235111367472797042578878004158917308471612725737459552047807824556939248168334800931021321013033536685554988025490036403242381709777678483760767970879122280413930766102273404958549418159303399565445573423608084360371528928880810443986090277774196322589637488730789186712319322306056697783350988756598976989704960963776014468683707748881308151547608626381936266968953935263415836754440589831417654282886522141397268730408377982407433842735328848273437148546456475146834026062358304371616853878048047531279496854180293317449596484910192687441639796919281824822795055159133159030965536329816844723723891448392951618443295253513882133053340105485866679617534876693370371289086228743121695486644483675264084743499064757910828583422394529850511792304662213567966159043404432102579541341794889773354113463843706270861119607834776404955879062726013571525695239268656433164021458219713905382564649502030875268980623453931558021058005319085069720009676630685773776149274890597685647654900731510642819401215484414440006028108525393818754300730381605821303094289924775913956432704445719287576095799871330691625415819182482801033421703113390798837453186332955845855093625892624016804588938060930549525833893954952564857538102302183912059953171337815479082611404344491573696767786159858682880092297957913223589751523596705656556590144173704872486945950125667813954537706366170431976740641171100112450140660658700776821616643493467157599489362228467120526195445487327576915113542904086366198825912953924377626190361641121036608308901098372080124540346385720510120983808493691857197030293197862156342761077646084545049842994484168304645615475789139707623060722377239605435164737192980292500207825973605479201676897655569049949795163461447711154059971028903611965242887425194429640929654084305667841006535078915002585075120470908062324997635237370963068250351081024153955789898150238101048554931723275480674892454025025979791211699401066773989541308886768802748440715845246729359846238849265892898086545190544162402026320970238895670923480619652009471962594003080853505714353021624548171381102032108987542260414797707779911122667264265358807501309176434100846421023301064129364490085400660713640691780883226675786777341736366497726836863006459322878397076364450960913207727083602640218621110940796784237193014955967045917932792113295932309397822536525852592681333440580378985404174233556941763615639897886921245010534794153961396846318865958346008120024562858562187811333205091159225595145928545395027677484571165464224356735424972063835966657922726820721310313736217400110452719782615242477574723926193892636087467973762357385241098508262889172660062030956210036585360494220398459692523759475261254498410628314192255374492218832979051961821187117816532753283653091271007383395636706550113901555771112030128562624456112649053245023997200320658739857794646969566485137459155904282659131779911471915605134718380033483943948122253854698362729121325194736010419680930364788548772831836657256277976337918951695465290258573502813940036035577326610943343238594578262818544821316933989124107652778976649069890166807686695677612112095844511106442136157826549429318927872661140643565635231671804316167362409384916051614081262384156907856329033505801394655593396714390418953964414983250537067631420079672282457795012379508690416666140002253934614897825859730263822609589951476145446618418437136692033190716312012860949227397900141639305856406330777037294809476533909075950033995104761471222406804516814808109570325593756719125830197410489277653666590101197082746487712815505439650676244174046083857822176002721420572944248662035584513396717750159095432337235032272356219271610378145544819457197301962227459414386234783788901973883971373636507115318230326385635514787777684446806984405167465200057010494736373857879378619589074671381857461101199442349775462670304927189283711655443426733950078905653043753983655820474223573650730273621451219013207338616998423082285900303287379221052922513853263592317047773518489953521228628766458529237144928146682413057490430745807135278034743778202117473397945826204921384302605471544149218849265469304963320274779686725228300005496040486056235386669754978305095042749623888871128512876592864390202881841644377558340792603672917979278127352875147062019329859386362621608762845377825722234734962727005965402545791340313059467140402496932445327210722786410010798707664762750723061213092790248713948063421968533062656928107071868024919042736753562192398118492813858931629242407118722305487228432886410077694996759092627643869791082008529878501697399461579886097240341288941516383861312739419349583097968751554335464095008131099813042747919330978645531793074341256293697683129689962649865453006084539587346701748320250545712099107922809478814709143346641348128732576499400043753982461665941279809301146948267389757337536049253719044682208559726448026522402682605532467464625751569871676150673245764691652842458613026233134159314255900826741206568326685074490903890482607640555020349002756316416986965744594590872325519213240112748820768469125819914400129822025863476091552654075782978940277740837899703744593931283507566189647990382271454608624307408789843797443408030796708341520447623734517135974799573104958288055596486325272674783155591149805544660029594241431083206097484597873741575957993986060712654678652306703327394639757607074227185661840727321413470388601615931532043506868831781025837138883138195454827038071571327047216566236641875745899806826271599056189745642279906388099620296428389490235482049290480954558066164168661246606243834425846256884869505420339954555030078694539180357292313695097631979183573853338503386981918778222276979180017306327678218304264211593006842896734400037727268287983220975323537307972691311912531406370004168048804924629594406094214772659279584169617776015719581402721293210574476016888968162761514961874992190376681272351302157255030819192809165450072786679688795499094404104364128527615449491277386237744313327513599897478465307053185275792281058032844199542307779956675085806253091018329411207011100065061384167279309051824005924283465904793539157544133557649291118663581280082038567654479352543545366081522476128436128172956498930020862566319329658404776210432546355372304118212512506815889349442397832317545570103343159951936725955116569140001988608775333843005259942507050291669535055632021729818642335124266210637555373534230461061971397795596301590235615006485311348730991314087905239535136435642137356551213061028103582247740177300971645284524968880927774310476374981827082839373545643540164576127495888743600545072184631104389603321322936586137224864824837267017719465714314606363720142198745280482273021114286148643413543089434474172165799387217284323334320325194875799316427835022677788608189054447343707398842865634546071640150018712456801658980508259787913078278951043518154999143670609157867171031022118399342281264106395050035905167120125551631723378885092728785224936493281948648490203886708378346527808236842927597754722497099639622820324421964683192775159466464160401348926316896511165723746491212854855304272312413471614651013084969249188464005363549882187491290212252544022481368385574375198242791251552123849250797904402778241273911346270860411306847765288547541483537528892856655355190118171784886907266102181592164291847503051005344777428999935052698192110562483019626801683076091547730647495528637626268868096095955213787015955186712283631963853109343393999928587001128174933688531878362614252066565937960674492818433406298410195512695952623209947728475210794196697380802631222971893295728604825056523707393726393519187252176768275343674156432259672056511571161291121381669078643908405623871984033698958393051464510665845538895272759117155744478878254415393364726084320269579815089643277927493043079049973356295077393612442388683743348855048117659713316993391020799969085328537773498385878021417002131847544988158815292074002092481396393586507700166108407140703881090589410974781523932274285487788360514610955628321369613213205633352724212858958050979567561033409707521526328601132884142693241316304995135611610831980563191067005042365946079884800837501535903912105800935467789397409241391159155631153331232812878297699955939263191517395768811514838971445372648322945043989396908391500225464003178939149514803479165046059231930292103812587461031658103545299454772725394612476696384415384468025581152124661578399842944212115650694680721808514756471181551706565630111164719320352426047977857937248889585451776583238511944174513577087814191509960419533554867949441799827313995591560580545465880943039162588363239701946982125413064729109453609646070031773912465128244679937389590779157641746495036695622910358324977501944611728911995136276227708602034964652223581018362359377072643323283550690416545329112397197936896634974771013459986345761133406724003323158420241234117148801874482284951510099976801512006872052647559195612502863837783938682514853729109395450905680496638355101746791801618999114112676112398125778647491760194415373994144083703763686424166694567311741009233765943481105223093392620731309595170582167799983837304117167468589719243018894967829265761037808053468432820342460126837585433542646147035047312702356687002225096784868520866521137245220319879945441833397518164094002013141513314521141040705516289383454486492313905968466150575790648239239313783849206637126934545344286456560845205945010540560299415013122089722285614928037386718536412456530795870680484806456565095691531311613601213999907109241224064337654962739965887274641296138692812514033234438062150891662613914539554176197274169288112687093829444025850363367863153929238600402931327976666120705140418251402375565869501715324535150269970053032651843627518788896991150180910876181651936478943270822389404260393497473223383131937380839803254655884687627640453449655336238841857423941162775838353045970100381352152987684980920089098144077453126482603542049459450669376508297227606787092559833669401976938278099946074143269108258643237926572272033385085339951765773096559102727293967897136286441345102096253621558123141644449055203129781496437051327749366698108681255634151178334736420027694312737529609086856410493310291417505022517202906806926230292749572410158406226946623359429456442442506593313755641434751247013010315721533973600406990685966737649092072143880969416262580561834560246711884975865564648608904944680355341137369535379349118784043258885167597513946849448902213653218847182391914867292494128747083718823248594033325553443643332225296411271357188822303318879446587297478753964321113106156622721896537055021153351359971846365214359121416109445239711503968328419504476270571156787450082313488056583338514737786344829127497821572699605262101674880274329838945175180616905873925240308006069914201885589758211611718615778706281478627880080206503698415335971602007078498013601564036943255422433095953227640525945371277104642006687514742204480829727576896951206722395514475382369984384819512604136403142112375032467303272931591716034723672704568175098471362558746992117613155064184819893244977411658336298776389828001102583802054092050967979597964127425658269082342775658887982919863849977221078034164625883296408979069516943145691420193895895224062826170718992021256113124949340591622086345601779398363912576218483903306739413414734178083873221769855562011334537594777308340817639128732603631611465693927809678396830245177366399139665392834161337939095742444794330566083934504396611150209142104387299252433947181308913960060331254014282393457236936575755504278403114832691287615896283163155257453379126806456350985372752619579069590061581981759763942431872939397612203025988412501763665385949524992425190009284522148644083028864643072712502239826846211071958010149619296672775620565169648791931889088212415101867598909444234015350404384805027542742358064198997234526600159047389462224484439328551302157125831793470504347600689769010221095875236186503521404079163665919551908878861308523720690810726330711192194724176694390133655051747424002641895157149717470811129853642216384138027961476790963194479912893459042024285891537931619885634653801925030675150461522524047258503298292995603244057953916415880553727182026482880242624483407320489488516999270474146731645152730062617830632828177417110124601794711601196739917409034799616339796108309352930439485339521203854546842300220400738448309096381244338379975402383930535246883436192206065414475409943501271681680037023997695246317126005384965763465448369452010117343393383879933717505633993470475175288410292980139557650788719402641445266967058704138249931720538111301933996179569062749413526693884174695269875017526480430554616341722756309441143365221696746825020338147747830449106357705035888426330064104845979739913488899818448225125071418946680466350538882518182638304797711392997913572984698522157131185092045844345079626940132553123640433179420797799451476773392569329076899500858964025839968860123228792133815587841008331627232683909465522491615141505818441624756347593116441577761451821797715861881555643273433626633440732751199760687621173933330961067012825114903051982372271187578041148754090425619587158774414925820040241359739329062382630601304120677763102226626162673786090217142092147379682803944897149366989219076982598556926426683439606611941522095373404914767266957167253216471280626731936758043917998097406265453103016051588413491936091248619074109872550239573474773934852332839241665793492529295976014906183268505058269788574820054341548657973744277800926202797691229298632859514875876868861645331676830713246107184793855789191684664101061215858803577664849181694262978544973184371598120308936665127650916084567622501310675431112469583836402862262635751492286411793223945378091261390956763461080094863892916083783006225204474942483904515050315657928090927446842835982852701624801332968923416357122495895188097733233063496428346247848444587736952141653632037194042767727367546048629359608604137573272351748111623363291222348096921198540061658930758833021526452879068906258303084125025303244069994054824152570866477826974746821875546118102296947008201679041461348203977528481156573625801510760417275802587718952403754081075770180435712981292923493374742814849603971583245206268252504389993544964866718278065868489261358783117557888221351449324404619641131297450083035078048682801117890112254829003754080502494011737997244198301179675511355113106746373165860634191102502475938524604142103172148906129475018183467912141307153898903673218836793884018951055516808124110527834048020158538771515960873794888569334828401255861374642750571507092915274803266056310020875654484079692930868663134698885622310101630646138642134002053433520580011633657211214645627168123586353013306234807967218576914055312091356747007428482053860234640906832886086210125662807033360329505959970278564644049854486916422789428411394362162183840104471263403007630285884673375344435850279866085854570643070864217597202477405881212063236099208834290785156877664849083544712208125927374679490846589285902890206773766537810986853888841915327978733338331707113342423695826377443582496768169753220868532170971343080470255384131084138889508863059644891736602004992396763348037494836045831210221655169642558598363848460718281917568027188449164857440571045999103407528112886474815244813033841513348845498381858183612596454167050503229098505232748516360712602156888408006284352712584718000530609867706606671109770929129075226851934421410248616748231520888190197211725864198435957216752485681323342815044763442059655144790747255892578625264409368823145612467560266964855300021262768053239190737876458588210123039786397598240120753803975272504302772759614914066161420754950678860571769298713719663402155017338183644510702585716638899965597793644236767948931452426206344521711022538340968643112897525104811185118309604632911220069265834358891630717619157920090958955696163754890749174937972676737399425261296929814951000581968526842773057375402807763937486008163065491181666976963456104451513304810661851239531250081865005084554029958573160432381008263953945163209375197631575552310935372995881399616820602467864550943300874312685980910182670699413893939506807778586994039368771705991852668385123570644734779454074376125158737817878573781143472793653404093708338453463083234103065045586795543487326022715258476949413672953828150037484145259326164873634944936663486067455747376100074888746614747798796556744336754645478649943238105770508324645893279994232936043450158217638935592359935916666039587302669376820757135361661428578526478073271467258622350294330156432025736783524322871863130573011315971179232960410983968252735812255169533524349415137244773028499043706122387609520968870175403790266772715240295678716536660581770726821859315652137364792619475353695687809920262754012054408215185360503902161188152648068064905262754238473001056914032107630142698218075913127889861269592855429059585128956156311042872688487887111420333544762487954654496151521088370284713940326729533790071847753666656726259874745506931250660988908168307521715046551065590283635453251898890217171210324178073516794476575581392566166020111555929255067084079702137207307896927421288363973716395040046613572616363314984366065359902563246387222757588547389182312256207344032435811630432607413693989176893449166526027152476079365619047350347643682128391726988004351746577347549287930149233309144984078681110029563064622471848736447386021118514092403379296202305881604296261265363589348889707545897700695038928669127733849963356737395149678075469687163054310144284529771201532567910792921118750945340006607604455288825533465260385747561425306713276729637328718374051331586509220249626808202624139907934526890927200310364950057938429004129521160988628645224013975143009866498629313594980737167590766826687527344203330572084975937384452133434391330647282224206337368947936427392722622964934719214738353549664358201915054442724659326357425127686114819806134862726833819066777271659194009956909838770301489954335688259230446423858923720232510247890565102817137413773689961004638702192950091299533727335813579951021456994057616763571036939526864362472999619543768084116950647220555845653437980163573629104737387241583670720305756685984333042642265673190783042383128302949001598494237607835125971282562911820949388518657409149109603193207248951092847939387105994174308091440132226862884558079185962544649938646369626201207318351049917465842482447166658472845626856233810452400103162056344596798733625460459347933840068661351642852682784613595627622252156262690392197829765978085868757130747091096414186019999444839682696206304916119440422021944488027340723346949517355977563804239119289071125762031852897397033551660722661325811158627029062067835823587363787653822835295928972283824263790064497804568906526557797783839680969177795955642205488269994733467606574719693070254461565205127723371203966496642313486903687455810390020266793031096118698135830850670473402853479835959545852243015899034006157646360717154135976502988403835284618534031946361498283418385692885422123065434499539200652400446993232414931761651723409119843744499825871252895399291450585056868585701824582391156932523863129091917845917648921561012564135093279001993825074132123255519316120791981600880027712829761498794274092822919243508336083962301492545648039145506806529485805867179524039579185308361887446260960760225336999936073714154971751947542990697416738360940098826805359569678853390800839362908116426672768110524146543436388748007755421494255106779127289001106955024810244098977976271011228279028448069019199435591724271939128731368258692819912093658162938757719021509895002747658406817286479396958970974984152157074581095570844981185160422364075569885169695753024937444490667519065629996519021098566048842105641905003987333579623935264728177408734087811501783597042406269100549243179010912412701648817686873049586105781390760009502350429508855542933363153560255506542526262753881529730412855593376585683442623331071829547221301970884005260283660207186585014415023198055176274794834363839114923739604415496834646281380583621065496738827359100153216343196702267142700310951283907589192846762114506080411893078316267125010554223131134512291162602166182559868254020977961718941553704498257844708826675714434702293317575784298119581000862265147551950565725543764080105304520191516476476789824646203634564460060940900402138121573811597895173313031625790719574767818934508144333302590464453210801503761352511699154644180673049148861404149497409829994319893182238473737010213574069565039185106210404793067909133143194840218585465836648688179999976988310124442093999174777870152738569405231655476616604736885986307401079523082481279482504353905196005205032731422695768937739446548569430839642716811195678698702369967375836280118295416055383059629410945722844107993344742523320880652576623795462987673177652175041670798588626512820657534391219449371435870354031941985854427114981527674072403607525818221743172871108100282391359039433598809181086779063809617830968029865008255946504465768929368933791212362936556819897822861940914104706824605024498892578031638712764278954453317261092753044888765141942225658683146382609547988250653373929788161261163051988041863136647035902334905815411182430963481956161233690436689877428692259498354576628347559304220273050552596728834856463141909465366091058453950336466393953996042128523652202503850826604957692950707406158832478817909009571181225831029336179883713366783614240724361612249541522781503512276562509586286308774881958152101258281840967515864300033342497137936291590956600133089318402356997469241992102271310615849225492720276799020144253239755559505243288146018831610442234754525246069444975781151355947459741508521658114503572645303430097961916152337057279150818328622229182022767837273014543759815087360061247601882117529523794644360950452490470972294799023758959533309371150042983086339121388941485022568334642879364425681005246080404825950827466364451499898090526690962519571243777058752603340735067322707927276270593810627351151957406983142691786514282741499780200986201797730854005976689870317499596215152102155023634780214010080746617846619876087397058249791579816874715246422443389925648360338603098599721463631995342321343531901114058487363542463541448665809688304770436699460808474648259874638762987520655350696381412341495052565965246788125324960609904829621771429515827677475439828300136779964050578954572220994174540471007419463166526967467239593856235898985221453757124026391233257198641305883805363850886002361202416181705307518672718751778810309085489624727841642730833666515942986608603542286852668236457965453878558994045914646352066282470755967197690808292010040363274801580105415479323096636151090600221450742064570454534184174967277155105714348659349054376182816446670552251544341045365889305539955517720786866242751730998542620250876797669448364051390869927732460634394935350229323051245044883697617265326475851160723642367372434677671106879244848704707525763813293355629591309389571621969402157920512317766339528704922267621923766263467992870401048616331996503148682252613087962711699788289761825469702974108709237487370400846397477339260918495209221734099619044893786662820121269284898301441033381371377283842789294157253556246679594308471133702884837871458472446750934951031789202812883516927803534820577254377441296861742295216206788797167175963121828531263950943738578720730691244274359331624641579786888106687042811642714961655628631424904531526801012422878625582121719083034296823918960124164174569849169731931622144110859801571785454818769700949390573018245478691363157435742433279718783238488247122867288552930275832748495604232700191812479506028889258109350910853475916512429640747094746273226135635578770525551624671513132088796474872892768638196437182993891827425085818949019135931113931055179435426348412663811760327467654728124794294948541535908607136019259268893472496654341109032582818670811791792314680273465471244121657402499575786761606957233916127812207473478076760362689185465653957054460895891512808180577834660749547489703457276338723154852705697177947969050103919194048150445356973655983350023451977469195065746049657101092090628582914351034096132983321007760182877613361597771368234582902440036042625461193757017249385052913747810527446173905472082348517917234293913511055595696786851977443028787834610262863684024255367246161949840521957299992980033228875252779028577438750869436241950834536111880159841669857278336876534075875380532471127487025191363637782936644333951895864107222881376731218061100443792742008436081884957709312467187184005853046260812606627723819592986060194889448992543621893563791023782907853859120634922741851310445046727149655158221798514454502803873209855881102661961575733338058136686702286614193007678272907811358143928653834570027622284085229901831574545174655177537813241993363006046610095717092404171207404086516222895362331005367288438347973274425376754162285679043827196318086994686834517522526650568605922958408237439686799705904083950447270018994849033564400158757957446725293703930172814685467624662137275192874129390406107562265770959961876101132924490181850914516321695866412261131617052697483578988456947876009387663588479989461525294239311536172755095606606831461658113894493825708840371416412777860233886325566721980219657221142710630120660740665289497457709425758348644882733066226002972670384313303993057469593804326113016065974778595774050795049456855940767725048390358542227992663469846344504649454026730842940171020488544674035573142074424906632190101039693170011979029466955246037127848466763388714793369731878116476025424776627127648458811982035030511156761362958311967152078710993922011105781329165721036057713024978143485867360487685993684279322507741822873185553660485254079377831456333200145013407676032604707559066998554104255650517203230511823889727822730407019679793661709088769798555997436846584422420786252911050393538898896291375813289312847978488981822153862964036850327869332108069819716228998946923339742652870435820849231989684554070927572861694221174225561508522510604672767384087258269260022285941550625819219442432308042750358074527806688764284967285651595887340359113468813260890387061858282880326384318211106466917727202035429821037585582792791199095989165920676820572441362656302079277018419113085641049158598294778302559946758854460267079077262608503733992082604939619141536186232474915300509502345243171431055341305724057209548610748141037241279372846318297281545973499828177502128699980717079152909983224587823469851279890831470810577025416173603924018578757077519880676030774492090992325903088547583660844423073270978435511032645321969418942544629746007427424513321123833003406169643291191697725652272999544454503740162858778036152374512974408533837670700983620529311783453042327383603330117974414238487869675353189217579490514477674737361524061947308128804073803677700400457913035791130619608107754738374145673026334776628798310329241483235792191088991119214312799062747369732702927457582733710054942161611668827894009489120321288791924829061547546633685211433035722697565061087246503745526566708077111878670854043531967627688553768692233383898019891572305075292375827624736827704978903267161047231047975422553752625508168662550102747841098877465203949527464963683791740978131479010370302732735895882721605154774397787683745281463224355792514994253921279066139594239753932450524546733952516913113524775784441842003858617081542608117948567589465531455099668574442395694466300045187637575281570313408496381289741035306033386385999514780750779884960890606222756424731034820102825338453103098558843916637461600872984314533033788336669072459048563824629799706940552019640112044703649141885390006982517713160176075321859476593473408040476096105138617879071887056178847823705752848237514272950633455754599645114650285171038825439018930495685194421036178184748041412697152899595434892623126634554573364171773562408285160003111124451210954720644500979897532190521476196723116219541950228729835673470972443844002758738568220849741981985533943795326527014828437653785111651812799888976309147735026284381138670469395032050744874250032701515720705973155252856316690659503947415781667690851603663697956845215197825790616118970633508079337179841507261636369750474871189305954411632431950404355229881054927883178024708280214258052340317932565972563236349154442355893451857677044321769705768265336516091257691859821269444861091724887998670582910464339143244345354640994332756717538849611862431473626173810092008465732901133711233836447770971439319364173140709679054446443361071155066502748441604078744592995021561007029129169420885609188868607668058487008063146698472666174620357473934086115087682084510361927505057416942337765910645485967602893815615940189863677641533655955620878190924218612870735640674342415115550902229921834984344622409439722112177173649656981116494052785726842977336275996206165586714989172951293980566003877587875260004612394647769805374929965699003964624502185130087419836742490182590671193308010127105174888081948317110225700780494238515224451052128712164327597816401598123838935113924890076907448778424711430223708903686261599046027609913331406533870856581362694921627839670674554714518475270351455027641693592418042478677729865231098297794299334992112529146705369376731224112626560915192961764046084079599968942392947683085955079054462143412385338458511862095261520588087932026224107330744397960973717856538165235858744284830023988283796201120726955125773811890123745990987996295634290090088392145060936396554237465585337886557332501181837835347278267883409657109345810995725269293659373289901017619935329438842245905544009518959057013077646258027437833035272359049744851399255522803280738914624387853470971041952894130154192136123721404552789692855073215436488807871516640638416296933589455397103318188352389180969117827047020857143724660485834472469444174732952561929646030933685700671298384514458540448386745967861608982512299776701383039625697942789177131326510689667407135032631668064360470701909863929053412940642086215451321682225477393379464574031120491580387212465981165295036181795499417237486881973734484149550540486136440926680754269342259292004150431144252756533293853002149367497299403781015813010516281167406494426654308319322380018016610732029616081664964043317987938491205094364534763017712673592941553936740657587615794917980023263990029712352273329393196507848091731928175477872373808074903910714820141562589868507941151815653982846333233688147563936078616021701426699905334714982601786152665348827386249430852060461693733540216664421789510925224185995464689525051969193158166426918728528842109632623409409042639720837480661911634486406504154015906930909754837920020281562635695904520220682743439864219744540160667935845233083485941191071340651163957011620828251407540238615110968168240776559433865530610831740332604798690956990471508466062569498677044506805253851129342474690151638218262947326928346959095382722579896675297125223292706139489162388590425803920732351756251115733702211206210232595159663707282701171013786443325691212494245656523024457018066669712324800807520599812676600696041482618853496114525064486117120288356652893032733914462569167993485405117221796206574248595232496489136073706838772862794938256607187069236516259410781492958451938860953392929164869988893266694031780337402127772933950993635001675464277282264940927135656799520372325171447797132592908244644224472704260807738146380767279454003363318140228133090549770097549141758675359180787045130186012309451351726144710160494919085925691685543973819172575244436652578941058283716781160533545443238020883449173068771107715352304579873100569136058996437711977678490236920082476389858420939925008774288044096418620337673623527108901251139714556919787896330775049085593601079158854813341741348064458457149768856521088472421976123432855943415672017626582943297777129980403249044560747610224884829650010279547569161582802605609939992327148965117726863477160536622458722474279795684699329197752142895725161891365306297708337810112583654247280067429076696145175703447635350264749631463331985093535906728537492083835489104937916286476276382758077186459619523156925676534120354507690374722881554585248656294997198206911094643218865124125157415509942660514988837513157389181132707367919299540398146768491151876678438454235107738548511770665399674538635632800534304957605882758953610398788222958425365442918410732230788613484792210378377403414486927600996222718756111765204078899057900997165930676146344077237922205858584093573361775811007159212257056936610457627051810639114422220568819514584076234721744930666952353903094324459414011819012858713832321635226278999661246109782131798446892882971129495570722392331150163743807897999509541829843063040034338638847526112361618246762013091872875665300292227479549160724547443065983616496925189025676265615880056862154067558719796930537676387304204772629416387226623329484722425754380711741748483630742557910373422872521069446748545258224588665021649130508721910566317090568507349526172431477115554953246071203180044251187455730508368192679054489052918423254552535293692244840067199564269260561598419757443487212143706582535431760480258854400570989791640647901937751582603591167718293154669400568779133011309290461400326617016397771168893552796009059068220737235076500924172403163609736684152104020783533303223861752075588376652311006193640730731738136020442518459414364120831960901869397077524027889214782110466253335313295608962170882657026972698970346805834446889193610362037436867233766834969494989934392658371222026353406449484427834981086149825131157096850574012776794489261971628723634583707484256344989592508599572835940309946670905567213616552816072052338822918118025137740693700671087075131113040762207628361301275844929832492639550252914374225379201609588439579255681408784574327299691917032173894879338576365944961319878912356480796142997972083117282153353845063268757269139101718570149997115291763882297575723563306987363058975387634341346233354112632318429142798762299703084869388467285286044747545199772884034431576597358974596660931581576109029058503685337775009439050829478834081350633824277716750261710044503959361714801816708774781006463991072186931403421865529819660170186698545049811672493252323846075550216018777327445183419180645397339071994106501641134172184122855413227751706047354970318995169176573096784579847393340438255876770622098206037859921992255420932511946781203054378515465627531490111064432970389066343529869328940033912383968196222626958356551308995203478196330461434470174455566325148346747655221670157433236242942261374711707973312997252747014639869342488195111101471401971274937305186211462945105226547432967323972081090297855033514179736222356246947898955332105158822320195460620809136668238743847974326782681760063261600110442912115456549125194839670596322901348552251629361509827970942991260900549439223186976422673939484772881073895168556439194938020668748889152332146242612894954226043866352541358888518788111058542771972967735253541912519513162700701954673084760534507451216264100077386091764197529696583354937008193360537220210989915379141279046250743291514229588013713640638172100106256158565058184985109831308982432447678632179221061120807935036136123055537543879927002746753810101606839396442324932923740364416062141201225464609685054195301427712714451061808992541925466821349779208970464774207229472916059575742518914544783651499566476718506122198665998901706744643459876616366551983895648352235382387842909700194906982387605001072818370760700862916552024017351012611573198399363635024155977707650642571286475813187198905966210137891290575422524203175014180149753652531792628308339634915079934107965734101711708174478334050213539192609183694916182866791917555838944198975978680367279505626781171527257024320418703684471544991736374483714073396839934475467125513402620197656683594115020385795845949210009267192958757363384281690869534670377825926669942921743390584190680119939058499570994657805785819588485100655702924305052605412708704887504090261117444402039421356044173191926841821491968178123409479703503042358481662341127119976075308735207025057856309711765876619704447577582706552848826683130845275196160948513722710939097513671633089769021117898282573874797988917454030418818818881301365512899781145327572885037869434650479183243017481801986906313002482171250284366735022181884595711496613670765873131432022434713213000309008444803853201765098002045445171682209348510370850474038067246510674220087984320470432147610476651835994308999055403704871981809485160211031791503367226831701266767163443964036268680505013544263102915301300524247265277897402850921776585463636946574607387108787370844400194613031409297759133626583483523558884385868731606172923436307746902805415007637581841880507452606422457409401579006973264853491952252783461807811304536681057134566074131968783622419719660817405140122518559594970382515804246727701607378348398725530872042492584755047258005776210503351766120096239216921358418987411907156189279401807610491120244686653080053711148701163532074222228789150201638039145165882743743560946865686764367940951851142696214446008001040768608519770857686681697407512081840752513677257732649869133538566274232045295971519017506729243300188070823773537677192481512145026597208602813957313144113264787038458437475159525161642254786759003306074074082913970623194798971239184035863366678885046861426460415374404134176223579076392894882181475565407985283124901616962836058195804168123702421968841928791263867489110150838211966938696312896252094499057829041696609424347944724923191304736426683133857615934848419474152403278317830775451536808773732189705182536506828703394937919191560384447198690873234557707592260467911660571963142947510668632295128348719253681267317658187470357300114734222889509050659711485682391063403766742711389776937762720770489514515587197173139654829094935973973144380283560300061229686329828059003617206003871469529330510667862330127823401429624015006177985737707496426820773994088833133830894555604329874065631375744752302336217763896308930481064972307194867848030758062337372015906228288118215014706253293846536371239647298940247952043670964519013403750727088875114007922259408737901039889580517876990027257310337251195685080546648835978692323956636712209919562857356019893534398989388589463143683429330233242997001279540501977575565710119719610077198986494094177637815606410534839475982973446329734622340769113719819148261113853559770357720274258931359941129424148337701599678267533313702346381452635517475094756540124870405214796465547225995319687036030149035915073281698747920975908962287902742500329303594008643882745203466626700382841541589045338517447554142791214031716498399872271794877778540887328308409794790479412064005211441561761401746139715968718551651012446578795705685168901701158172884289226722435531697236581549958355480295581262764997376194377683168612412010536521205131887196599361218634183584290177915615304602241308499406423869958585493987915985985851160078162867079116500189207580628889461019649168401122514000335981932356771163211933714712356849759139321487973087242611147007674679655542355785280590572396657427098686608926819437964033500610264502246478835794083592363827150190310211405728261123759482272138044162874421575520818241117998528281367811931981097436731463669029903982408910541789297288141890517011131803363620294578081501311267743944807986521114353960166806030012723386931898533353244893607607176391436437308455699842292846611296501681889110292863813525897360099839440151102597317111457235097992877594944434845520882653688645070241043914451230781192355706518164300583156819201104140537594981190512262917798965271970442337222682557572217717974519982304537229329929494035186954744281050044443723473445344824955192481595643816061252936960833063059968540565055955519528892375338356924712160132521654386867268432057890751000658283316322549703821610267630238495141104087734845508740705303919104440534195080512554074110706758165536936360325047975027841033663765987485092185789001250788496360655260705287739653549107980642278916995474990624915570081856068529152017032068336398014750325732711478334992819555930696510173883853772228804850058842495845373372021450080882360349245270738045004847242781159373369974644551108977082155347451440633350667012872528887143938750045399759412750392283556377021342516255123839507165640530798895781115845727628055184753736978617201834844940238884125247175365319474898839172450249870889691013965907937215298722705571601809346737370468194356300274275870205302799273203248256866144126863603348905757048736363936607392251058115105261767576100087532010731582149408236080903356849423548917248844700048450495522217960772511667004007135945187439758509090396305628998189764956230162640379382983978661226008914595827503997964637441879787080665628968356498389822242979795087100771267236666495512188014129224127819777752507377705766636938410638818621730650856358377818879207957526810044402077354929878870251394884245168494611319539502702226111137217552990351444599346069209539772445494205240310499231631889255995448900656139125444150160966850070522272769800537162821545633814460304011909181889562535317599835366224294990655599443048727428916020612148207029347800160547344941761163391577385690512411921942563399788002804643448338437042375257302247721588701612186369773635366120180682437273256617781409081659900933222856820971332516952782071662444128383639689019282573281090231620892439866896840524130649111411001751901573589602876592111968609509936656803791241244235740883636366295165947492783879575817277781376352682210184605202614917341535904020690163756060364044988252279306105044197840851319605822564112078486415800159565679942562759158268785596061128190305029219091014404346601411865387647557890289079244118897086530463900728998866796615046342454808014339170570601836273009279964617880412935873226349517678441805933076367011975377598282588463429584896311562722077672691056180207074096561933518203805404947884399712412764296084864087448853148596735917916883512885304660379987346148821380130824554808181560971123307575012248695212991963351649965929889041301794974366635333083814623650265396813856381359482724162891778808471096808039944889366027644144560885747833714000538452394962190324176436602333122744919065923595315519551257661646023678542475487548149672521149683260021319167528887636950595289010811692604432250296039234962465679307087118990217795170511407389742603593628158018123124379591556351427380516723589052728139601594780593262719261567538447685600732061598822421193703896397958318653826932814583539151353766615035012420098943219650915658566248621638452310659157309663473712870270642724682456325644794086219351390280364364078653715311146796308083575336393351193658984884644193527154211046839855643643989480831675176982639370565547936444795494262654341756304112907292517504500979302198169368317798828976511547285371436159494467849448908330763050273537735468185475027144663412421223967091882716712163461474494438794106220450259243183649019851164279792020952556280978858690234281269368044247365259876083553311488213338403705765583679306247357044909545166034758565782243724159709145240138701944846600854901383921035012626467425262738898361886478105448896118948367184889627876647422659995489466794156871150352010884912732608822737894094750557496518083287433520709591751648768398544952692901283109327288928908834923521399248165570416562455354410678663328079583082348295113095430332102382738810820174724671846815504688584789486520993321248634848292818801074644799200303688411273219426012391001640229599388591142519451563079075840123568331111529366255755168132858627402137076341388304844893967302078620652008981972720852730418800200640936175601502262231936265775307779568764203019575051815259871632609489624974943201031689610659044836624899721423791188172874016144889518235141662372039164932127443058227991359206180121953771870808272838039778222854818487429303620896109542196094284915980391347889432854198827178116283199380555583084377903044797180014163072289960720467151156233091171343267569535668222155874246161750587700293308090685826603640411642306340975218980668926855864765253408395333644048595698184977681323359176953936977355929016777017945467880467394666885673583082617752463771554176744169771198050189429000402178875722666738453293677199531319640838222582572739262264134139916012771570563550059363136420519637096364452677322684432398117537496255850573633522538891431402562566280294891490384020754046757372006587099651125498656310259255191727733059331363788292278450901331052515046951912347981809711602058789099341591169862173757960546617494662759053243318440639175880427234059181959635081824856792921885738919089910921745892879849307340041407649278856516490078069998769839950730464017558877870468689413547542383686354473763189610732229093777626322140638806138951814956830024804107856638047300605087439568742606315203702512116771166890155195367325433361261744302705227283846992164373820904830064937720707763413802219980277199730070703366190657164151622712986316280536903962067814862185754204659122246412070508817116107986216881156213662001966070262990296075861276651090073697625951529242105001971234551721773417528898104425509413068356625483384953322746903122274489072237862971703871784965322755430612978178011613411468069659625423402608339100814798874047844825208220347068702380087290973785045585282827256132360951168846350332206431511339133712286214945288170031436219096591024920519743320175249945641093168389604019226385018245551076244739698888246347960304607288019906461871321028888990301404089489698710381421605607860284953326241031769169091257608898168453088832835792862463567542835188904280724852481865330858873368304445383400719324025166419752997579056162705133911277202114894889687191187586871230059725321354474083258760099673829760876865803281830476479737248480570377059199053011731071187969698025693889487239243923818633158212731303637914638526430215663106089040785950883037247504877947728682405862310282119965096006947044390570649828681656729385732667518889053221677414575718707070505884159333827621264259610455625034417567667359581272562886153120311746668215408646154494090761902582105322113735853448516520352163003466177645324445831917403974118291906378178276870109909643020832049564219640915813750024037063707548222103084154611645507696657118403552937064457683736280090536312361512773519285548492845417262456755264188772825511614881541265212671357681290422585527422500352822838532426439746407208859321020472749043917499069166019897493338623896688879934918268174907501619799563542836728118080446698412187688403201615482138692029246284642064876564062962018604156260844129262929788586280793715454083313256162832995241791314780037980525480417694196195376592643264475126615606587916910533666966902536361871123501581920883174729147016987200499716502201665594396099964003275907659962806642228568606873968215228083934626711646431611484061474355232489670555305315149346524624455620587395403975492622196364278617298419806179612310938698378455351616167702451852766874952364333765106501377252323541546709797997214784607404178955767979733310331279807552123043333333561264526998676138468756370483932904961361713544020854236021147441766104480478075367711721746559908961720721936898812218696456625852053821114994949898882619339996858866511366811024155877968531202405700996254036552538465025528907725370752752364673091068855240165654856903542478762366591221474470349606642567929314206318910559042069369799930263858742689923639209202858746614768542107955152029778946998076163383538976347247399789428275667331963576008629855820442410342839740630404038427503304033956532128402405801301746194406627996107022884169075145064670322450492323998409980574470018562369932517750483821680325421103718784259160629778496355278868479337358560008706145725831569489938801538009813878158731160069424666657435364502315790251821627474860269647048724077035333844299138190137529112310592248318858084209486833131781573957935042755900595553721031851769872330548648965953934552703732710224551670349119234241283027223267120500466161614156159598256703996896389312942447036441239898061928491709976732218250174829042172747750539514855853458922544943769913620089680720360831435383242489533056159163724715899569719338380628938509639518336512981718860412995106103269810588183189166899508368419072711615147979240883060212078256198205276428764854262306075794395050752036631618375357178294105685922905640292371605702496873529667241241037334889308744620401730064245028417640543848749569243868194099137091922067514162834355696710614573370520525070993459367221086281515350147218840234491447956662548999215613616672904046101082401122163171693480928769470750378225983882067285183847080619170515628093804091385324253221732716102856589540537362497833334126990510691346814205330148082123837116192947449357906033288193278305915736193171545362769161664468585124608426415152478970572237969779165947480353655031106327432388106021896865054035966232221443572660366828772509898326265507999949555207129715059235486029605068978079778649238009310799045495692520909166459313440239094968579356142887842845642006404919680115324878875526378249818624157528935202572084597381338975272512745817155461050268664934278352334953218662666623465024245852990177917432218896329748861480988603087047644161449899791347899436392737812820367729300362311988828055345616384328347885941499340938838778940671275441292944383264924893183558520789710060854296762936752836153272853275392848416588712039957655138016680351764524440374127323204361655457067449146077786525611233408189225181252743202284931149680528737375493318313991063778733878760844344040986759687287824216859799450042299488227417983865008393201273494586395279233738283392460786643200253000375047682931851527571970349866735294261694623973074372712959503479419154993215264535147108744293444956993093750372193147511757395627679570333854579069018046313333025285546430946146683197271408788380172877764216444752737811868744917815724792447212039501901625117431701158586202745504563119577386746809719729362098928512909005615283483965051670765568196059590860811791261725140209698515233964918558281089032148883369386521966471982670470382168827138488354458582211342258985654521517324159205280699868504040435950457362231059715796641539223271860843106775702150432310416545432178667499334245186228260341943887247263513692285869476948913633481554395833153730079682105426306035804588913810188106883593568369725469790261577640952397521582280484504509128720088588374199767397750918845585689789667051621483912179033189059931331422586330014450786302928654819876155371315456201175290866698932648850645601437183431000056641731320082494094348753105230446000860776945376129922374639439885515549987450259583574181270268284789175574560573696299027648717949592878667227544135581761499950474338780576663000012527601169288903801122853907463011162059205338655353470277840236622086298407253270112298108564836520720478692496138542546177476120291511041780419771783124590962556285499944765689232809672879912630231943212690313322362570384620459992854547644230447434191601751639741089997508794736013816646586869926671244942257198636348030002050278357736156984388377934598208177309171646953818318615247553809238808318275066425038307607111753441947677028661972168310420423386801689637179954564545010373881474459912694893647891294981360567183658303319680425941118954163503802588272541087045272827819781991129028608078663645488740310977860907849616699640919021051040601140340299276223651263376906854965116905906260105419395037695732431271365512703250861997888896383675944929387631065806375827288724333360757107461548134357280952404034314690867304432230297727000113615487966351461520352501633552647206092866530251122025543043749396938081701979335632445505693199501484567496942051779615292324972444338823548346321611534889174492409149425672820406671385352512084347006835104079944487564081501578454051066621074720034999530446514661308589605302181970779713358255538917554213761540180686793675254782054382304975028571009616940145355609250301045773502274056782775986667200073178330712549535504903418559865612735248992638327163991114564606215283003149573249684464525848260442903712016124040017888570233306156977847351456944990977501850510963379411733672553433136573100781732465232343654212752773743919959043285125021088775273406587472510342405643919307732807124184731870163395278959128458959579173159663255325559775631221787383397580377694304585309379122893154200378388013086519806193928304132663833631190067304137526961255917110993535247650817341455827743692960642257799767844144697991152515295226058910401408399404062790495425390373051906345613856647339777345017733265390826308866090986193812716370421477093513500609658270169597555203705402566682443172499392786276334197725374393201926375523108432740499842030415734473657427433160572331787182001020192059192730998709305141772962991848876627016967537219225673727023711102533648644236665392170653910384787311342238701462273907350727750034529689205963901257242039633707204060748217642487650812545394389771641900007612179756751450381801959268703321820113808584653036817488743133086395088124078711522289685246100938429444167254673781488566098486782211261252001984886689097953491186171044820180559035371119861917123151504825471179620791357981057306265568855936167076515814083331291528576132187103815064622698044718562106668322851189411918575380721427743050131850209082726655979530394037285853605787812689784636862337618676364250615290813833557719864905861244453058342760920217025226762540765327948709226417922510813490514257952965571089378165584052366205536716222824548763746023636655129341322434214523270557983761371555063699279250569275012885949397801004217776004113154540919375057080773405116555640257542118825841421003013349830329399920569132582264022939496857475437851077388933387681166104686483269312439067618062427579977498352221680470513007972617394450882767854321075022323480656663350076721920418381958560164850900285919671834596638692661932903625928885773653633154857465263863235483124262797651971234340002228371505716988393833396509757534556308481051432759445030057644891935402001689906209446006644840500940238530742600955362686276124505316333403793325143644390804380380002948604913943612258009148462596191002402982719161310000765646097419300624822142063936304200920443558528214989669451213148066639743624482808371143143929620982438721121943494691576140007333390925336562887072161846966076601806024197107698383420358995968150381894784904039728669621870521184185334573090714992413208415450945541714845271699715207879109279496794690827371692060168626510300972666529668128115931209576889472278549890486781998613946562095667922667856343055222318952349224620232646332093336779333615884359308211310938411478148817750960763448240476349822832223968831179508433550241723620677807525669162761510737842003856833115855816787908966099023954788608843907138677915988898262343885778584478998123509667358675200993830548769595223999350636623561746183471352146962964025693294829466012126908886930015132987129838953797036505586806430482362617353791831093531296611202245765910425297614792608158688240839625973844552133898700347104780528070986465747640560258776652600346717947015761440902614216346131072078798856454307241786756249043696238070774814006331121976154346021280371545074446695927783677602213545551744770608472366610475838822153911673537997470881250581540569007373753765007928740154802559404136559416354027851016397979440407431583800973942175608692756422329445428587588212982877878192059656650370272130993474494271847771252377723456257358117282844969699543461346590511447252915338323651945772150536749871930898810489705717222506599182524254335736774183371926891275824552279197695078721749354648152502483298079325968331418412052961337048766270055538363868763842221996219227251629874747448733379640111197441016438906532258177573838366492283770799163854427377143472238022853308498967750040422365448379501677487520515903694455444225665693877806967046477340581080567773841555690445502311922745869383741815526468687651705504247455313354857661627991216961308431891216399389850493599092418424903812949180932648372731146334145253239718549674909307281943037274586087559958196560373969359811029580770800386986015118472943374270915652628872136215516194232444440291373889408366565717276829237889760879593370630458604107409751048378585186483753889491361727630878424723071840992439469933818263443194041484125707302510264458731661737595441785660407368796852388778658809881422595130127139034702824777018865574159461137983088163720586429161517737800394769334288741609484026523873718352220320659507859223894577591827268576444939174097486056319320137826237526912416080387078712777939006796056194049255011170352721948713583374550076059183146172865990802651339047348739019224733891138336183055392755950169340450563920832974709015971195187544511349480833911709206018133927440711206965429622114904197519253485138862512536445894087584846089618535451514945098245145265130669468460962182021872602580528656481585194255742681949818748971604392685677196032861124715066184338961854606563559366905569619733872090078359497240615655268779191599126424301416218627108069781264802100299042118739767103728672432000904404851432453435918264247652576488747141179006257611053966176382656921685509351431198211884801342045212999431229482108747107209667579038332046385801369445702487512142127872593470748341517911721168011214117318356355791508713750301359909345830893840147342463884351047215651075929901525099788665644798706849484012341888849074997143069250091044602822821426401233511106088174781576853662337249952160130961844878435588965989095056479116898307193090969090352184146436875517572602378253313094731140470259955705131826304169312672653154837840103346239486555042541176165805739132047697070856781984405374238550692874635266508903642018134466254454711345714064887743998811298575213091142274002120950707971927721291875024493500584775790639148035474766641176052286123493292723187754569575843241818119995921538146261995313707045062956501493245325877228059363177628137187204476775415658885050992312732336972440259682851487720988483605945617143116351452463121794186286285678677169863544093343135607028686864756151148946877088414916364448151314475610132054835174495546866276335939215852740906474478578268034575984528648676569084563298667241327934778805289984751110322523175221979812281152338340404148473732724072597637027989697103738685193902809073110831699350109173373547336632503549761938816671037873249450615538413129988750838266097827721778780507905517947549770221018392074407463988103659026782598449731902849254901632522076542114857450256342898467375773029680218081880969077208771076577652637397213536745761578665145481909762910930733369732832956691657681111388422413151644890199953874173399200457459916111975673614348896899106710717169836914362525194239235160602365084278279054917178542991938617798725522327562287634518506657539203640602021091265434248177425391365046314785766470538488560098613627389229444842162418025810677443478975862068625049899454781183337607381574532924632968120921389805247862097880569092343266780778877919448698533218062456189913197370491088190054605287654753540857029519282648421283243306248126572565249222156338816522211322269612187397921822517510236552575106483769839562029228027232792535260027461101678530212323167908602733017543616182771665134556508436647715307480587625385007684784337019261608266911228960635800142518874366093249805603555057746126145627597008830217642467090736327710874694203158873734986434928030567308570599618200894570841642810414060623886329915699590546260853634025430776920978579927109234047755705713140508350474319699097170037111960914763509997718670685276647915609841577322822591099589797521223507212843940603286862856173719704140455581767132508769127004960549439992854661872939323252772900837067761917942782039677628436934548278998475969795312199338532989897391234227660900250760440320675635576466136662274732488554360416004894579163335101899795772380015873322552266659952252669341363273430574753366063434622882936202718775494368542525052644759791647506776552828690812983674889964767502372086218577349400601504482082169237958326265282510255740056425692836854216355160390827985961162323266973217112939145616063001305933432176929943361436457175458541572979716329213193223539489497636209748189470228150335339539288606331882574863669520674361772311855162037422543252730947423126674248873213978418531096650487498822318884208952150063520050089161857257022313433992697522898737047731652361958054568899541138221949299124118309836946266475158179845572347741694012298842644179511794941681045256036116545508420472404991704849820160460657996389377297951186737182084606726546327510692649895253269748536534907733400325827946476029998960738080962329655417218242010447928860402018080578581045986332265324905888307522539997520450971428748988129495927051145909577053409398133936166173100599092266186769390997505272056995689368967212285882524915754898222533367203029594590803715353587024738907404363743508184306465099683472934357448673573990082901171589255346958625784724180720761402498161026907930841476585197201458941140077804641253346222047845126173992107047940232915026383903995028819869279514017641980812240741800521227015923228288815245741042535929399452761755578500764124170464315778047647589076355285544134403449594177543119892312443133428991103723658320715587284032837355130469845181689395384472080028988861521104890803534838494016798919624276244687972662720712947865618488707163563465702194433611587512076858364833921682499490445084550326236376035394522187334350103843049536907878291150978541152755158026179156773522082123725765245866711222767204140796066046456217112508021506481505660133273553254534809787054421447767722703647588068379794676931240494489974846537729974445582671947930911963981069281296302591800090644343011180957617110090800179188482720635549283240268869886433252885596501371099950816971990358437338443010396737078786964478022723980094691933997389826005469469295379706947045534998797427294798000761557677216481112028913939622572823853439540447895974447982125725657745191816021878788781080873525584624677357711413195026866281403370397504374574125959365915304071005600747965787812610277722325277578059933713295179271137054380331035377902246110173061195041447225286340379426245047985070902843643414573104077782960894834200992624812462515516034354892943409397950102460433036323998681392615451298102076407033150556479155225699965767376251213329348547711667763854696160094867624254104539123870990036223062810621615519440767235400647670972815706895341192946375605334120701642104688224625570283014015777801465226579739946012368600942669247869558161417179720178983595183305820994734075493950215555406471978549140698654717951061392319716533498324819502210625808116743810684573212890805769572276366439309597160038115193758119927585055458303817402350891888555497113397698719152389332179417584132322441371484105930062465247340207047183588433847985495304236911832507543624076660212058411799124931585311581973560578263727851657632323119061507328905563268360981914955169809869867172664760474292376990321156141066774381422485114098230768245042405738474336784646598060909911418807669149775469197758544076558276330841267886834283401916530182550511838403100526754062859633943765303848861264263950507219264433684151929020739969715759896489557818806377147224010278605173992948966420930829011696840868087300389215659220839256880070691945230615335930444747005970150054831139307465006024312053391203893573543633980022994658790591006015285200304470458643627938163828895583200060301792176193106372975823935430012964169531567124539624965570258929325884212040017041120369308758587321829507010591599690524617633017809368120595562894345321838274912361915712641274548048447077019096104981859470769061948611975223319401718643444293568651053803345934791141881531896010196436205071693368457370187181472604444249096831311617403705188044193053626336952351138475364002893983813004554507586413528162225939541011979959049145982133190748071716820081801491517802468546679526284339811111713640146179388625584781823473959431722753825128763311597568866023023908201020346730085284208469305198828850649309227044464828384378199813796906140071323514380448394915678508225754769322899703758629030197262551619786836023089394680075564475240692820138109479806474383604769269757139063158879163964522920231286472127758075536756215169749404075211219733554654038861522181629805353627022516597763525825359446990234795547779429625736445456462887405821467910903273610944535165486324706407848827902292464293441647225805050102463303127754259591728997838144250886431766699727480848716147300410365042821794379955470914006699721925594097369714791715446619402553262924082639624830889276743367014942612304204047595398476970596433442161904604538775133468908457706477989243905887048277195261959762552224967993537695695731662278606122206601333538137167075528227955615028821900890722669181992102902172624167390083634491111051729984472402517336040771854000072501781742151664401074214430685111708384018069023484430388841650047865880400914974638544520159564097300751118451751056435208087629765961825495020431486872217505105170437406182015968247264479089607662119106353824114083768886202516898633289907359216968714728451113148774182689069793852375542603138207906577315968152061718740604699952718864622622641433122906769069613850629272477104522107277769096413974891204471332499936499693670960166084599910730651520360699625528482616920116280241763003523804627993040151742745337371354906545886019539102677140480060169001030812670972847063442165066459626982618174573359088289971796187366592491873492951691889157427584244253883872661088657893942272560303564645518211421666054613148154240377811987341599490915294665469023192370185553194199188166420574761996222458212594003639178779591361648030776919242314922453226539489510417843104437345349449904389515421615711116931449481392297058054010863683892700048625629186839269179840227040194530527269685807022510947727378761059918647875592459370748616183689089944874039070355106727569949459307588231738979708845989120850108843176199433766332674801931761769174583565867260697807691138721165683041721329766329239416576989334376418703036703579210430431092611604972036769787420086104967688919234651804129640825373871757598721598923676117294534343629190391087354548790349321891380390631813686695029977797210027269117514233738856580941388375721631868773289572332174056809461516048204204719022078665384505629492533303075678853846859911014516345946754127089303713827170207010374845101600874839499137142379481108718177276842398988858730183356239325536803021433222204522423853041427727040356293456263588025288433451328993244031654083240311848236264246294603636723805894691102886237731639919392257724187596506174640778481682042812455172493143893697481345060875665428425328782278839257815600346826130628359247501066687752137996704292751713532980847274187130122085394457843436054865974546792525534936344346581767690085195293675968885494731645774168685344797266465136129130811750907378416933258622446411293091481882669910737715768423929954368545386339464658033796470272694447312135810790509684350001220266201250959616192550757381555095806912957002701481413326955250186038320344011597145805200853168876652424969172771409013152905518816371659098798263023569739841018857621780405120247646778997547776456044168210799559440747606734802362110749303569101823789180258801763499359327147041553819954916829011057153717971529793513793510554546752083987386524340225525044613370357188180263032460250243135119155248786451471575266999602406475071291839806007340317395958731692188433787323736741638386875669387648403784950867345053191679398981343346410156387079201409925539710558200574301928255025439139697700684956310695040540998321772390582088992446416553257761305528021031625485233912169557120305158020776265904405925253952303719487186536867484603124815454081519399375051935777415456005341864197163262931233517234735176962773331141488672659881964542822409598076499012226464932268263432277877098399653452484286905766475776730642465398656951672866351700368332122595751158891311379941333876382440746412152934865089837430169770813124031886311678748625908619454451244563102213021632615633568633890720754584404142444038391729523882588633580352240777163222579614220403752974351053993364923520796487054574330953664582300506465300315534637387192858666928425532801917819657779766104676050304681676393696373866552561880157926822413237273616371590096168325644932394494027894826089244981251558709913324619913356652987289561591703357975162534241516558670358814381342097377414660670063441775621697897835221683269244168200061274073189895379541706642297957257907842784408835345655553831233981849836225625100708103838506830354554669527271246430211607911729313375763875580576163202489461576141872352940906907186072129711800408125890772596703925024666597598535864121413128603627345346145573875658798793947492008877234394221471485422205741171758117759548418495469643553210044796491490612134657448592125469246942738677158466648882075659523770229841433907900606293636018062774489475809635167482666243326068194090194981712733125277089076839243654781999323359879435712580145425879261213466166751940721821316075359766525008312820487505662332089544878470896386795381490711542116547294760355829191837604734748217085786437702569522679709953958094385099638185801016852099852695181571439293962461102041643041725093191915560031264315829419663427270792412078142692955760911141658888690320241654308905586890227186055399558048877674377040787123574293103654265340018272199357132559910880545901197508499574696070367961706194094062188554679385409546648052842629926712667506582660026228292148144036185162944974204156415824059507785835873905586565135810831788680231179619920592251095116772191230884552821640044852890832833002404103744723147003929328633672989779145482195111031650431316814349452534369742488287282100061551581203202908816630311292909538070753105806974727906071550166258923455088864071429425577324543768383814382917417904602149259445844083475134233621033652199917021770847177684661093300402687785164705532232886901583072277617597755329356339267458962187040326775403956945438561841233557358266143081367687059984450947030907303877855766233549639680423259070815718074696214344936199198873629348886050219929834758098491475900393621931239969717370942710360151201807265514263619296046847014199249067023551164511529657370943965284578527046397517201475024946478039625432867609004031010406310989114254096723173541634924432765586218649640705206998953402636303308606204387349406489778232046729537674871832664910037549276692296561189384822984557955296662175854008158992785838772113419112817153263861503963032013517727597897321404212582528610361177117936889215056184367131765926745220091156792256070791341204908940851329547578233605671285739373747834929158430761345554179253407036030050120885192948497027993717973246457565049979693994193393888747889808816615490760930661967917207120769038422852595236283132225889170360498183767831626697412204401291862824843177250994479389887609160982660599321706788966710182909117380521927308620279505767511139960879898913264715469173956635462777068386234117214349333060770134588581542843682870197239795816135159087090379511627439237751894710142284943967883560489728848335352356053765226485224113103071898872864511086390014579044052988366430609538411357773476678726301595806563357218428985409780858140790310672703350057283944101441157227819495416933860787456024540278378566785121358394595884987101143205224188171140903794097759627267035086645297705891002195989341373509477011661832365548027887768738483359651403358894930703606717256606097017779245519550669639619057422702839220581011883179634631608528354535932723749374284170976082954396677043199818787381510833390657397275770478649314073203895602112588624101538974149631587179784510629213402919405567956038406676262854679785633437880741673911611123506668475947105725734240522785742201471372806311491600067442730479762011825598008074406136982993417960335329022614057090836781902415837666322323132495716455752421238569070415169966897110862330410306470581104124106149790232440505605568309896978385805373496275581231655787759856127862475670595359184424353780459981562516656403269938107177388128748856215022931703115013562967432854328795018095533507951343909790571592769076099171416489893271516054605561605901597102716751789750702552700428493666742037887220420860923221116225742008411632725644955744618193904923560549673682805913403299781640732232356726655478750907778082714581223267022093806209122424562704156669290240300388091527505276363968304108060050444697868554445660197499455050698217687683231326796858091618195246862350338584855138050301244388919727046190307035610075503349265490446722052668766918418866212239823347113470163019078973329703896752559082617176378082080144476756774989817204234516193287856587851125710821726582203752790486293468951035912784218724144505860423723495932446019698030966657805631174795740571799984519424433002039824320116750579680813371618126408788708333793531710976303217640693512000277540398029923756803252295895004301135875294945203644888206236655191486872679379201747796412845165582159811549260966096823178060459874405568600578527202234286035880206381204477152941136100622949014721716439329473736790742422812976169419621834906789182313671987255460853885611881199049025378581531259815700140498638495027764435143757543618729980302723005179060489061971303521225317734129525468146029855348028556395285879490358565260674816749364493215884608479882427385428992659962228509826810579780578457637916461929625839368943856514168458787426372595352317583497255053489667220079836773900021624962412951645275811228458033871666878880392070016590053977798149683698525589336766374249974305915715022783042296908279850218396912430720476831253767434942914092079157068075507764384447050460278777885562152168765794151308204687366836273488562219206244124944280866481260465582211021142817829887728659595663105299222540680590327545960868592452284157986619496205517261388117400867110341896992692203037354708911591129618504313851461704323223100239984555463181050973050641347224228046990665020093625776566149640475942575107763119568427164648171103263825568321162809530017769881393289691010410143673921512347709463917595125494204549945305053079876737825715154696923627392160447331591569754586748331411988208859912863195133795519439428143794177126852429052487263608594941759398522799144944628494565293890078992462905389114698527617578381674387315160089888751878277668357564034833592399445466510456667378838382715092372816286748196623737520451515896569803842837363614208547575429845782265666842628302129525661975421874445055691886485361181696288201409546571610137986264828631464449736826228154108849933074338033110020734335997316992389805684948365632057871370843283363070457235630298828916596170163946787483647468493848202530807898618977853343120841564326442990239216034256709605738247700684037701932786830877909030668461606204422120409197566013425441772286854129780521621260502479349486884655760733951596032461811951384352650146347442797140054587567616783622534261957515597424352470186267584480802605289395278255626403922579896461492259503096625022076591952159306318397499177176180020985793217695704761185491909116663828319788918384222805507378212110782262706082866676745301668625265774976851836856049553018093659624686931938030779694605382401379498685808297034563839776637288521821808648542765223621903691342735398912508367545088937408824285768774666350583357239472603740787321192620988011348295240082065650688346643725293896365856689405056017439141269468277457383787686349556743538354481212160278484447111279809179062328882994717365248151313292193539273718488558217222725269340949381287474703669812663728673463927508992877734710571214076586474940553175860404447826940582592275995204008601905926094281225662725857979261206542923459500717637021897494024188464909053960146690158701725864073670202772881209380151180886092916979600516179340109936068908349905578072524893853539778701314225521190836770322070509195423025670229182909873745886804185131035897354424371527784895137165478811358921959024102273029344249541336966088859265200938856356870849372339103647643177305603883197690396784386676011876270475457666828267015271059442152660901704595355075107585139424784276539143532219275597687232065503809630398049193159629137971063818889716917658793043361695014990042456567533814282638938951447828147346569717890335551986190511008125461245947923824073757363418828901183613538723298071620173851105666355318760342272201003892033960506386425065524262666975051665506444374660476304626879455721397001525909687303742872696476530510554221958867689913151527698341897814528939177401786514299251354134361350911525098379018641390189813358061363860197549944351622289120176298895526048286791671473239281671791053076648421936854413915975385474579201799586680129800583027462927842853139840147440232995758073801081089871465762785972434812570171340354124856215526312286432998659745868310517649986972036491607905768318439094851289290477523697204717447463176634270861073056940288417226742899309176527309381477938428191353508930354786160180360107533986238939558393748036553613901212086289563206343944716280116893109475812368660979382696090427086271010616396661718120448496314732566289343854981150449156482927573215333215005485547149530603132713270021234601127209799152422041453963606315168996891229817524642007868774814009745909876334171984343056205660442230156894587870313493085251124328225610224798481087175035795429262934197221841556044342286396915484177395677100866794604976415563012174521374812497096853471383306003540629728408099735767930433186306353731098098061487035390360553271021002958527161532446994003769468099401974853388166288570314856192298959640248552116396833639257158867077448943629744272606743302085859871467612377391688637049973913482055999695197222928824732777808806682849784279650859678461528450859254747055084589237382959456842533193073551689156962393263519959397652026887610324598292358370576849130226500237450972178992663187352431628827365691424041276367620343381449902888935080560467794045560877476815596084496569155898699823128264343025339984003164422933817099537584220731395897331662186649036648076704168166189076728803090791983245846439022093986807674306817610413445710116146306651695574613441326911751118989214743661371965133047005978220072506832960715528622585879106471318637712214229555587266911010004384500638818768549257387699259321423230434359583566383728644892264211365511715481434893609170542133177052748359001479145470678255543050992863104331774300704083748061267908637975322154936443566069853994231205989214940042084723605281894517263315367171280255836926128071322312333082481894112323384707436417191005693538106855086709735876743337339675336620835436935837404760491333006585484475995170215666525452069937068691395917747289259193967055513957038454780761651896159751881005213276607188594322856211551057680714245363819430981690715758330900075743968800265757368550115131137307336213743492435247283033697746638225015423070759846293206906254008156888407137746822662550709733568326408602005887687012886899835239788398186968399758549097660879252137180744460045764648026732286082346275283967701053104221675962595446881073831843200070063069593223635402102095435930891461178088759979008199635886780198454620347508691791445239028584720516509636493565859837809442648692951920159233885788421696019286917418585452676414666222903386200627424248766130742493163914951445743099505492889643760020781396591704605179940569900267155886117035280055325443066063195332967958664764617464677118157475755321004587610523468045507474997581302588490091799897606523028539733797050619326096641544290977171928318922061248456710018966982852226296597943938726699190516151678129443263653135989457200900369769512506102112434168350165978816429780552584243540811540640519981417161355780948156384083785309741601081693506684742006120011868767698931188828982551128912505264912017069068238242521844333817555424408581607862286173043923907289286490202012486555899202472838974620355285833399699833168004023447188707432269071288023991939654195789258593255233050400424517076456080710906259910548738486541556327529978112437786266580465134306157001214713744035738177697165616993082611395284781978471401467298820216813947731862562314951066406420928765566159947741785173326221592802571943200043284176152167513750822198079935207711821851918285421820288202898678834098148803615333560157440999780271798780727694214335106707774447822404507185204843288622353607167858875111840848037148035171512497848925177123355483126419655642537472306966496662659839148400603316472207653372737199185097858310757224704320730816364969885000847736906543735052369507098192654179943638187566846492755543027078334234145093197467331896225204241320644161416967646831795753092825997093952281923544191610434645729271662506580885749422624467234517782499448163939067185778510856286685472406795217141542565995703077356114240968132958644002298553693895965761441242537144637471106261031100117478055602773738349000732658332015794594840894135217632405873313327983129968327515885474329590115613531687785372614686376776583644291214378350604484118857995801126457840828900317759265194895198805231939566264527998804841949868491532540885569738122751700272055173512372100681062850959864833999147888042673200710040372137662893923119615957348218131750829569199253502432160065732488734122075104688488351036346314632301153436713692379260528711270984963926956048743340575716921118730485082432038985763539380318414887878204764876311206750559259382945416268140515938644430549355805385932812679015079974125905611182557656192995130589555092509633135442059804229081239552755119079094027651561749782705195367548701315298923833401676783579150997109736118562544410992473621689309603670336825280141144837881624895302988834480519709092620043501918768275832518572643111833884137505966516460101481996889157767405382573336995272487383683751336874006191667277590790398935101389222128246517911955655938937180191867928055201055873874987180746611265381008695872062519255423231721747970152738902216628002161684227025515543436903900184629135722111121021477894909537944542521562335853147149213548181811801882442955967925885470931797928400921599480781869371298998390207556381128301277506317290582047799294373703555711282765173141400690295330618164293697517821458974620813834143914771384853125276195588530337364471788729661394543950417008874417394763722096744519115991662891648824340429227010406977527956744456405274294479289212191891986443384483522371913667766873260182961985070135974765546855261552788952660643497927679911298832355121702686713359633251351068925146820983897683778267998846681026584907742529387200441088057064638559693235759324143359675968511021998681911966390359842923266365056074374038255681869486574526521499095708361162983870104159092421767941451402812695633890650578781093460018804212872887316975178522902666613054192429201835838941320846747915991920110848878310356363770244313263593504077335101548854164270319517473466406360219311021762483866687924936186265649097866180654992304938255153889654870852119368515101029912526031584887969741356781011239253462895370426364543249733039195366012717780654339724301446148815056383652186212262072225029164638364006164458716346746411451186718682137954673957316460072192435613209091913379956813197048635661141530101608209715303706836022858287127177225736940248499253619622262849009473275995511625120641749186722496453033233411121534307202942269134352634675832222516436465081519576519860603808436606140115243158768259586899343009011164366404420979830614376584738436206668855261388199625584291656345032922024463533331567896560410702626714595437579026937035549454835883053116392237588744024641265363689596895769062939287866877750388736193040813223642615047433005406182804930189711215536115732951258717617477679844480380539546840388370739172522949234083172298192245943836558639435808581661424464401287121814107326304318090842537506930891242701820696609205570963567386068806107825387025146167899398081122386899643769852159813300504408808400361476271772453946164317944023700370621207716986714977087089788034128259732495678130514378418054804912897106618114813950762021959025952478329927831258574927936697798849494960373321327736524640649720244539333098886272173489463680812655627487022213883717210339845617719034390967077945975250577909688638125566366558152699875628567452898003051947251631125167781758122038821357851067585741921637143762985900521910662832119076067413379669515464428961718863763992172568711656923868179343407729766211349533639772878442432609899481542256381811524998676282559207622388849956897982681703389158761890843308272206442372972906780009784157455359425868076947996606785826339110126998700441181479153482216942511771898754407322380601437870738577857461068189802436873287226128739431656191035065012460797072917320987757920618424333188966520004114900087686216275690571187489091723836336033772712048655225203558833207292381780210164816542907357483823622082430908961154387077228523094198282398683927480754422045669883952489474102649416507912382347456993506229191651199227999813258964507847067596394467718180040624175985649435501265426691373495615852229655992332356961918908403990977149281864705241771395722908917042165706157136481720249771409315930306190050790780099913651989707221861178818923530676850009223242401129821715961256110373006300476956722683862231397292809618825954478536131982754654618625988354311921322441672094237881782000434918801342367735448643376400614057935483463557424826899163665873823759051885484831392671309041646702378298344004096354963611823821259678967030421537667928182486933584428497590151157558331476368146053475108023129107916601970042770714876767683019764006898688466348436144854707131967939494373037032012174916652179247005857273999063659942655230946266303830242579548068763355363543172108362656669572586762548119904566749241736961316060419559406323527034878909212753275278328084840774117605944795082582167532122717154658394118164744437943673153755776569485822156491943840030067924360394741814895936260667303295247500166771568228463129798362778037574615523775636017074815816617555685739772509041101154663555827060187338405626895387756280607375527995509043079021865611831607097231510178725478562938212224075807649096753102430511015938033200819285707143787959277131350353066570030928989381120154511616964856138030766125596812142637756816702438443385570602169699837227903447684706332561556430025346760809564757180282452983352148895822188600511864515634597018619019367872852447176642253831493155787382083154268713990892809921041190665453453864159326232116456040429866486950376831969795634711934455696673125548411131522727791090179273000229947570727363874752092088589458693064859782123010096717304673546186930195562120617706812580004081659309302623171602545325349602444830693527366317527111933073523241726427329895527705205891228498598422027454376717548998874103556774422696112271800842700181192681889347673417021411011309967069070551219784049756548601514763664544103066823940143917907448621874717663798193923401535581241984841644451299351856741477504807450001194567424221217159328574881882381884454579851083809696579983914048567900570642891966620862171005184517572335107586177272608038359103249156839866280325325229105081281785444101408452081471702504764113887617601105908474289360242268004476948962788081211806410771517810289318076070551201174629387191136875133683919391615101051763531038587479040178370153559053931805363672256475604527327921898103405396926647858808818651124880824230077083234983373652212604491944660073702275105660978645910622810992441358433029047870024202598291839735914417720944449072538510536665785656943271289104936841605708991622360449543898478078938579547825997237483925890818134792371897590981959195332951893871041714527595888068373229310937589474554588637279290288621407498226352831434944355987617661626343733316105751481966310158811589263837685085624147056427222350776804621212823208368718356800825375764081592326891167996055421853973275979572073879073145193577756128550372773089573107363115156737372373982433617481359138870123811627578798084129162443600380322830560418499645213798666622855856811354571357602192857406137063198920171502935776387089328994719252308237222035899915316051310266058611459964594041568987616992544998585219634281498434081565411020476379528709836228895164394702608311536749640207969087405067758926841538544063242686259444498132596787762315222464869729905327842974065647006157098931795161479340202211945080442716153998553767453549919262572523732143318591063215400504476805314574296083860013141151188190614924649154977184345811180209793625143629623424594721673269779517628321578733898141175759012593435608603064264367472638580485122687394048974779683371036376581252373892693702504459294995345796942696429486702240532246362121839517320965656111183768618226779849531195556433208419437903036472457468915646259153835988189537642720617964499406351521031822762014407153979522953946060467086362578845192214450319368951136366858296447642379385271393827793980261121258577857280464536288832221524769127568842180735953420791467406471552550936546436969562750890820114947872248686863221162085330673684835774231083410162798793217398461964850383116746401088338981023866034632781592542044437370340179861864936374948826984869938636235340488425019999970777439808782387400089269328265477677908528114815450460209384697113574063202012979013019634594377167028184901226086598112973707173873752799992854746543115563281519594046430926653062343705069078511856259123596239614146409953389642876443071783471225979726921463655408446063855088970532770678738135621166980403736944790462572416587724742931668075916769893434121835845580237698861613439840609815282545265981456373762134012287270102188263213546876891155070438251897974423328801677820049298826570183856598406197680904008832217663262465574840236473567390235100283335733354559498925272417182226687189500195198613249990467904545350960193296172750917385624405282343746812825980841559758999501948676963825796891253273183450767819090077253066951780663033484020243893161806781079524704006364641568870349218383900949147184903666216795288951151012252292245130509869707466088426708375147470471862932982810590996507296679646511814727128329275673605235949808814273370599412830572978425645570735037537456256616784364224530497965487944310696417868280631608253840027678811226190392091740736697618755944880617568023117181781244212811325612144863306737819132440097878910428960996860760740713836293158034112549089647949629266884388794850233734942862139216482586629627915646791339227157376366259759003633999098836037653647545798580111999212435688078104518454671313780651850348185131463655074849729459145677486454516627905129127612594169866382209972803035540973260158867861472507257393950004812027454547243437594995917194349864842849208777372735702972258201794676685181349912256286065802634348687625964362317004618793505168458291766369076698932540178135314205252128685356995317218399380911628214340029127127846241890370502740461496137604002659922335089438620982311104346602083823324671327615731002891287216904277478816612811647824749614317250849129437482703691486070583280803938812934286680352372359017186049018400876219491487747600282295876339838767696692065830361949374584531430319699518047815381745507119629271983320937463628220253894219203239507371652720306428651728431300646546955803465146028063784077607988846809942885259286689785758774550343144051651500452000806591912926142367665789774571019473576858049282811318356744016188702623929936271411391889871748645174201332381812798482630531810959568254049157947045526320182636293188005914061919092845077953365765670592724549920349316409322367908759210365012616106548336059346799684075537041507707615463391705913161227072441286199900773754330689796072034477796168232015304243967823640796362111370532841994499163198512755651242791320445097252551147022853341200754511383446814510800725151864782291827967379577436428262667070428602570260362564663065750447563370033273724911540005082754351011837823762965929182538401873574050309035063464319042121017628616179102750654780736587705509276022348491018205928822665237632724197754309762589197067670156014987398859859780492975058223585801595843817186585578192318084651561831699943447434957299860059161008053406530001128566056267289948007035988852268912331547003839135067622229547538772507142323056525383752642154980647427153414317755788078534362000278300683074656471875068780696873014923037176261744710598960500981850987353984251015392123054676322080748328024605476872739469903317334957617890832184382893596702237847806635874626834038540979404607708564544567768582109956733415798968654181154866067023676629906390371464129574830917352101459906810335716232076733656628586092408506025291950279770466692755790068713056581935528649608997691370159474617974235959675183037905491524346934361220599297555310272519878590476110234190195580529348878860359918613880428420791738418550648574641500904956290486925917109010940849153741024949441619012005887778073028652353019244878123153529625650149338330142756559000070156466798550580634132578235333846845220204701479761261448541469125389893819518286317340585788375910298211834032997554613237271025289545172188696555319160396415335486171280701084669225980392870083436972214054057470379454227887840505129683991841706993625701456757956157543812684158361861204095226437345479794408719712444923658401170732296722623628963306439344233140523268840205180345866064719599340205774923283537765487779180022724969076823655678330028432645513082152427986179149031653947080801569028270147345580765877849857528068565728910222811874065333513330602661363303739848709182211016831297460600125477947403448822090629638414941026722538464035525731618010757486814443805028414948197383299592336617761342220658154011251220657903394028856847285818266343898866419667942277442664559573854779717117598788536009058295303455220397529901611426934156634011967620442837906240578964319800922764788103161791501165743427502900583390228116335738374519298240809692124686222526574999567488647591580301596645694746383719661334060225513761930148213399783709658056628815604039920043916900626709798028508697170176939604950914095861510853561361707561828376299121965905702792492609034016498113680503779248718011137548033225762007991501378825327563434483882651718843194743935798810216346808133967942386421629488836363225799176317525194861604074703747119767928901582718649176779739265161357316946789526844276569196481074333847990517430634341115019630132323082847818708880443251812351977200938563412218832262514308127777052024286115165703780160119375495413294883483299845692518565229902583279941867386523675277719107590838210560467183570033004645340568991963533942986126994610638623167622581786187990665380508513873331059189111114201502871496473441761269847579017525328423288822396273972686921412257807283294248728857332067329702455425603889402307519979989504280693247648627244108327788004480397686002081967672831125399065621539429631104816930263506881508783142953652522891284667564582072616269637270593865472603025295079231458103480881159132481327814723015202501171562206021767219799836247636279333855172414457971064592277934463191513644226323213838133248795103141964492096121687402048987812147865574297606427712908005662481831083446414649096260908585783193572652833581060006155748249186730612612999242177454905070789634778707928826778324278761573801034142519323646279197525893845085991235191109664496553805246457768757320276181230788135654223338010026160846556781412495504214844336038818798254693894303920704621514197818872960638381676006545738806558178728545248481206582675057503323841040661657324077417164242868129804567478196067184493064986420366614776440824567810218489779583712891897491491586472030267585838707649709045490342499306803316372966865862563536788907277346693814984425823021990187102550460594231644745704645851060279363296441626413962077115667714976127239814680320785731157966291839916209236829494956670295462342673063732643429834372798214808955168030572640000608684969941397104791143102309439001863435072906088294563892446732855465828650446680347593847190885556310288748519520896658954120824855421407776499184580154793164129360823972591952479826422640691034539685519052367050840370364980092768098384303514360480741337401205219801438036750919397632058475004004201434904888528618441605764904700441805032984168325422414261434244826892123290000660675035349939694281502077239960803733023691074189975247036378775769442533276310506681496466240598347235364935977299384629632948025905502862748693803417253663487733213316605899351416462085883964107330144818306798990923240249199871136663738425894382475002013167355396730126227086406431228207863234235488173836372292447095614883703050543312881905512999177453717473813577326579566937363021765061516745953904283389390355146002306764442613326430975745144180688587360425716206414869650786002854222551462740227539522369128250715281814111997556228018215022546864178336019935022255330915645629761883346863515233868387882477834124274743582921262716536094770652328881097478061260517498292785294111530307833764903151774148706819156877202247174391062685534967924216026727815558161174855880041026287012045481526320216975723733023830288375733376083501182805092318420387943261501292063846165448762956258401434659464457263701889415398767628410724837873895591661802646447253508530633576653772745847077765320831966688910171634243870924354656304821431585491039966171977202277797787209112337944307686958794007071033316221925858675565268578708872161078687712152197079700324500593138707628395427194651611065396427014139141159496666990905834482111414945265566037484640265356542957814185472473665431516048681061856867160027771030221303419989671726367247082223881845881527196466418024345257476374617457423983688985801285167771390324432054100988177597884984473297520076819425820235928621195628862080225197053013216629934701985918166252637913969931490563116827461736824625134376044599890156396969360040087248192227255791312441010103917212221711966331936755176708660467528559506657196115089478098210490484753392603312638667583312753184250062416363805908592970448781710452366313804920795755237133122319936566969788413860658637727707236986241208770355496018567578372320621614118056957200837623960794087089263191571665264641515532338351367422335530728128679011039069890944803124095788700216234314631912937314193009533982187012956033490671373024999705196586380365237769546750609228571690859105918884285862615050932588698944853490760522171333667609297404965991483022263540587575353681148067160273619465022403996290938198719749455551852013797809568929714370774820836105037723710641358290183731913815181902279380153746156878884599854420003563897680904047134613638791928600721911630404419435886162651370480719264249513520895854001908692451876254993120772894250287729444930305245953115490680943740125567363049469821008240536659388476593030268381884982065225549213391970495224707259894509368736064397475137469470280976363295544651834041630255310850966631053500991616168691846457349387031970750364402152818312471200804253904954526861377564336634712554297771754785860581795045422145490423344298271036536552662335410066386752104825969297841190665750842864390791137036509932470281334968597267149608638385816493628760133877406575592909407395470907434765725675908041415930055871188290142207678351377057231730736332038705996285929205668437637763931277326305257626172598126631968094934796424472700261541609282027450420537816580799879738225705600473856002520814936469016930612861371995332645504583303115442069875506149343291359424785572635998787956135101492065926132563412231009837810095089280107522790315774291985886665623000555963442160538581099324959598786153349726091692345015344623430743728451356762769637734122726053156155327645790010154556258064020689667334102896588421870682322030471566734950006471721742766809378729044617567891826194255226273080632374319018693351709122887831762952569573654046172681721555433233379151587096043378636302593372169584202917751343435858159798155527603491893685658111100386394299059949849715727361022006769174535931787046729709024271071008740244960397951639079771952825581755324355369701826512516508799796577613743922433730896308381018631950316416994047689827843617251241766062901444135726658053910623631378835566145818179465273892667053005088081211761997782895089158358288337453880814518165056338611201752530042498176556992911596247714023327452350925730467573992749937876506282057525163540836876487615096334177309531742385276340545248431206461540844151656778721353893203744864558219138073543180840805539933763699988711234510345609051514857790492730070850319041035204483552623556279982550225752940554413836775561222255815396896125278208902597249709745994415456154013975626188745441548853834000510407370446325223166214561578221296287987004734753551983171620382178302900195065590163839447275936293534827123805506124878308651596021366663738928913626014541501018030284381878121043461599899818789456507904759929573268051468617013065621451487755276434295205099029838566085405154745491684302112704528797701071267779482098572607144463592682516866139953300328524309405193298587582206987203295266270483223618199176068020519101376647346588455098162236990123527219331389194324931276396699022011118550775199558798818808457197345707858870115183393597243579702925766602360885148283504356549910699018332843321986707107054459256287369066819865184705487873679834208060973713784581036535873791731754324961854007469183866977533395965900620543898158529640248641641962687091871051355428818470671114462033753099399386179872299541902683480287387926750702257311320059186446499706795469922861505863152930963579315184144719326143422434171472002142041731163397233824506175726299034853886594682656882600791960438953347994131051604093580988079218967487406547144294420384476482056132588578407621749644563326189300720814938016806616409999729283397892687860122699094040484985577238075316641231722056239911684067713334491053946802159269462106919263491053799806968259437409174433563612810776032561952119739886751717727188611788196926358483179863881577362427552829426380218834599169217512126670237828345292619836147705364853022768101651273650482806191423539032109777026289821063150661653938009034154139530214000540010825527744510025192461387661905258440574563943938991228067844734814853722348337744640280094795130579701257312227919113497047272669497877871024985611952598701118441592784461222311680357603740287718944627329945773867653524572585846810653050518411842772066288690725550466048543332765077229585582326142727294522278102999110168651654446258655526890120002763666950242730550857815233987244073786375045417747557234895853082903433001436318079926623733473764405294391608255256980124672803926195840244061874521868604601345990994140333190424515115305420199001160388414164682680077571524800599144819776932052550207764177327869946918131814758427191036773068314293474489773030615514312339197796744181753477319004904521235080355277903214200151165875025869054821930483044992115540104524656846055390480101455613045956986342426613877380177279506924352688817809677601988470068350476078932346198720996448534006451182258239794119520776797466369275385076674651286366912734103357941527701462593713485435446022889119540723666414045383488025023048991477700511742688388891504379613286364890210628546775594388254949827969243276604314588295005876073044452046104298084901152337811396846790539342662853453355360788071641189348824439868114099835190259682883789387082861994493498392229964486063424902954637332940365995202143902099267072256189558316260389247575584642404237563869161280994583381468220624361807988353165054590307736052956886061713254093227398260157907377585362264770507920316092922587028030039787010404820180565788202910428141173997448132489042663509629357484760583825641763869064178187807792638542536279422677295868403095257957294440988930558241707328974086548176936530338429386158291588953276253538018577689924508341004821190513695090201996478328814691052154533132544010167846149835622137978322583989042717671813199020367409228056025709812590623588663665796102376526591026400135673577576058891808876165515337444432265271711956001856340461834721333957381393786680395116534013384595203249448329223396804553392242266371616673221008422878837412556879610563956700198981640836695368971778990585055124581209800656220638451451939460579942433720286727275097505722493479173553924380996119084146092280663862293200951634313332233202626646409298372223523961793937383042907280014189885710534274448495541194526712554421822124720771201664739303025263366733210894142201668243713662060571090061398933009913963669155018573782356772538642805773731036117056652507685797504482971489927197007045119680910988332084783567750160078988031317635466225691566328481515401436319706716138045565775564523395232523114468997803237629758353951397430732102682232849128110190344594535503656465241788698140794084018506011381386267446856837590262766988035313533750838304681125343559503137108472097126535038562322182128532119443467626687385406646905306451761394336941792964102631555659196580417558649869479359959262857157249355405881155894758343124137273356432596344228918118430740487587110900608554536657798270496401006599515373150459726554494474477354314136291354780518270896591263787841305718580678169099329631440176734719384240468344750498814305142967576673955821532643215785039090596616925135255357832762522295748559655516269386957175547387816763685231422984567912946028597166753912556991186712548222570667235944976001211045358778972374059249272033836206171082501287934764900227080356473823150604848339063837498609515607999554196088107243697167212501403208859967422574052933437430940241652188270868223162629384998635324983217340908920919137101748583702228574530175041378103274615512880113807573036002669123619981017274125143951240905487968776890170295238489078100503354781740116445780775406857060963953875365256068714092893363023144617083797493167706543331738796190572275097862234359977198535773536147574731724578208483644587144967033746537019269708288408391596430364570940872842416636012637087114908289221721335759143699779898281921028100208630693076184657753558589211174154801146796432105205117717700270157870492083527703779903099434805025931563396306103970117504457771117736317874600679312447815807339018479569483636528605036669190300620588332634537987906136030700447277000293406202006468725122202144064266749759617795828489704358517080726490454062828418975565590384504667259598400235632370464557032151691505823075803767242827876883201394813435038209242781597452836465113755937443968053602496494038936460980125235850459070997807542934265021678829934150644062135656652266368553523519724802745544097010183871402489949963256279512397473166231609394557623320040558865268843917030191732530583216048737722012085231442172898449434204640568905691763209054283466020582591291127421679895296091407484170035644620312709165242249607667807491662760863956577848953257643511858876490006516738822903852383514232574304211137637048617720691526506927908266286703327967117871119380763330117729146249270641567158675214040501715923292800375704421574081917119111486119351753135394487281344801900286898672228822542945920960574699401118487360741088714249714002918500458288273701279300215944897919933926988323823823713282520784273699244229279833783229630785349383830224678743533242513947662677978969237077350024080074777408955540174538959635468094297529869246335914285834215131290871409610854346657120439996092762370488749217178855226891771842843366808703901390570396701143868951260140960825857353633295528119836954716442950770560119722562180637413078505294199683559949983856344842713103916908305278684351403286174451901381887292855558132282793319983635778071325243350472971747451888881810201380759823399239349111382365242221899860983976570721124132390303625054908120856489855557291167000077064582005421219075326551573589623366423113866618844877370492818553907075488837675192991018765525277438414428547893377283365993495350627516403283999206552599455000455797791691332927834359389452278783869694976206974840442812676673744872732724009440754450801187843586167456240733769975089208233694283281028492854547388697687504041741924667170574503264651565672346635939849918097694625205686702012688505286774317310467500040405422420227647980857602042415749163369152591915830341006181360040058997469895866194796084603773254527661638075432245617971766764738098572552087047351735696656994559491920346168192613186973792576529291298234533245228376373203145597259763265006099842166247693863414194271942163260571515477365013453812607523496343598298194630456136696700090576272519799556754994499978100860522636281132479031718891139100502526088177322393808511173036464589367438287041944580238586510297680668171658227465272240035518893161313198894679569265677368487892995511981946352962052015216923800205353137014457962429541028425798688492587688449223187085373973408463137262241017705767862153384341403394394994427163500248196915862971483737575275162374805546765963969026901395153119385116639050687698252411112628215460111909226746407347442444120547140790602643383512761350333135598271147838071908942880460741174625924402897831435304824711396448928650261963459629333985198618224398562173646845710641146789532656770309569868234902746004459131122318353938549172021095649115300669049198248554055005813988429484293959051314713654664587876827760651659883149580739325097144549348900785564616446121180115910619956039907389229971768019057860746817176118641574752133236981957834165454946257555794907686898896029375822518663413236326144496711765352635112146406545051776472706478300746202708266833578465801855722373038606952207334620686864765283220549810636341478101800758423937895479347709773948222395464268022837046752756416603730904780727974831132572265133750248380199757729478992195756967471667758901795748257257990236007438641029788024321557332833275077223594313637276905737859478096508800062470636551422886921842742285282514685711316190020401006886789015394298373389550410484855970977301806899464229231264896778829526973556199849670229806060612271601409075538318049093009031678627679405369325265014290303819580116652138527936185115238022952535767469010406424085253939311868974410838668714845828641614126424118461587132261188858779247313106952998298984452290517060704491785480450712025680172031230624240406695932131985882389084318776135140123234704026033587368153159768881084442930363636690975252102184200331140045885334332603313048924913541549387556766037602579777963170985035976656928181509417059016523597714899113678733935986841970960779738196787632155983076720712772073844569370121186693688689335905637628879194358935761862853045924072199646874733489317061175273665642261144549377260552659649888383032346344714373196128850334305436694854154639226513318205373570182956185672637282586301965742345612097211463193459005222317385073915395666032616191269056071346668500441122511618502256426195912187045689139538839063327201380281852685847679904427981717879949797382534912254655778258586867950376591499986028663960410202094964604248973984515556423265484346207297800414175829213557996753980091302908342808695120842325396274354922706807332683199052620668833129421613767276772412727939245368248965962176459192185578003075681025198492681578601814383895476749684502007086652240424198331481164029537767434206194917517584316503366457674935882688134572885024653935267981432192683441064030405251347311861122040047044263486580624776901113554835267164534054520464045834871943575935227888924445073458328470875970922458249518037079601118480449193610656791729889194811112234545713303994651123073197068859400955469013973076154491535468567595828677031000507163705582616605722889829211766659420895366108790304859729127361790570945541500523534339632824456413604049859833352015602928071121153483079788828797711280663121972679475085881253390490222918702907394182119828897822152506948787553133053001114539326969439078316460422920547676890665855886945102512445876164189625916639234198133045228671157481730365913102874045998807962984794614716012758438803944549603928192147552144242997532279524324022723968947332772559051767400016491064263359637727481268248808420905845337516386198132742476413009476091839929937313209969405702879716903324817302185826108634286002173988992938645067622763497070818766142884331806347746358744629408025137029573569394577302809938198817892547936752248497382924055628922964620053621617597380191783142316992583944995832948914339464949542565750805112373916531534564413355450645120433908437846618755632892183162589334816505511144805576113118404927980749203736991885266935101275865392104400332876991698558802371578246594187342235929836928330538755823946656401223470792675129900166077988331289752460866574311547043804627530633981216808483281999181901637542958325343183910467889459246985555144073386748872680326829495197765172173264747822435100027278701606070473542434242588137497352002807514458577211188579279950644187812332002311627869280724682552769783183925550674349622357506570407086972278208330091358481656439425691087870900196799698571985959243805408101994197476438477170893218935261481576769516802341867287235048753349357110875821144690397814565259418520375219345347111129750759581825608110909819697225813748165023523192636148180594085382802436001648096552968022055137443573267917765557199981826624031964310875516170257314593278242013912966700287230525718280295054723098782456212471445369809011161697158047038697989235841779705112450043017303904812457050497286212717728954631250530624566240049698929783479517678019559726794483897605689305679548708966856823920944959221227274391964013040764997962460642053414019803251575891684598984190172187648874358978877949750301605283268837226394830536734370275295659289500229653890574266192330160413682552719957118822280305934816921629229740699888621263413118915735317547335475104209887028957047745662660630914040876908678484954879445727005249894948588706101438081250292314559213897762166302814971564390602675981411751127609198796195765259245086879234894616902118388603439690557403554077347235834839680811229250805944227032072365095053032869509503995207993182198038744218737239061192178722497686577553220616687823087603508914312733731526986028577077251426414013553834918746478445701944079743417404915183346274029404438535237121061496503487957600396016824493648961837876757025179029851081016784592084309541068065808995538945227777069654281297330875880272161643194050703746694349567242181743293704861224289618353748735295387416586263635117491864489282749902515170838563110397625244980134340619595614614799869377734330805260223104785672282646474309873495675574149530653943533294847579490220351044954810711486946140495086426406898557092379957683134529902962532793975540856834681754390718345761205476907629781894971083848759838576149810935705035847866651498344929834154440859620063836808056621418149114983618240127353246586592856742265699672630682128108537670545100896594732000452614010384643860830848823896933476821636127306564114526745490741570959945753314281595227946537724284284214531743525463869938032963831662559806401635157614425989898322144684418658740924181318892331810318969427422775707929391149540735797072354267403729670235967791633709127132733876084939157696148845930923846080828601664564241132187984610928975352891662723644890961463720379810533176143008969130794886364158844041290012390665458431512277313073168390137079998923537647636468331148636304524239275791485761546718222997024869724271540323647272451436432828126665811083010266204420582675510680983796927983442507270659664235793088456728156251862399148946729456792823967305498600442214763297243632499148879140107067949687633734031824499490936643179371945242984046065809743928023136421522183964976621534768263742559504180104515310847451136763360275615695481707470530771383442734491574855482774641043450053089759656750657983271596790661133867533569260632165314997116905422147154712563991477243483229898519388481176282882107142722688660563940199907369310998975297446327413984176598867143575914461395653289172523154716255721624490605702970282688344868599587695737761043075153065637761919690477495664189668737969370740496703338524445323855096090322342764546236031937122616423633761910052675022197614894093997783594231506251700677575462511542111977146527239463516484113901326123382871425947414449943226153341005889026730385110480047721516301151232576794186826525440304326418054843981316913470069058998313424934885052341847143260046982112540813102207485714438020699702322619960857341342960261850744845081921214206562268182109502675246732740550039658946607361366443886157054531581776599537994506356135510719205852443949747558757702392156602876468444114603216158989830181711003778057399133908882653375822966501612907006790854716446141803186020546440670470329397997380046068082099626607455723570669474910911543643534196784581233536348037028198404350586588381009934938930574303872006746256599938063679233402233225932266280403667777311015697440642883032786863777315654695244649447514926368869535354372971807268373931125314650006997552235107158982953542184698482148883558375232375648319581972471646113987052087962708933241008641155037917559464577568185813528786884533882019739897308513964067838896097283234875844620782300677683788343229034341923834666729846219591473516433860235715540809491253028073986582174056244294214363506130608299146324347680890460398804977218448069956069924943100908521097664663464177027194863460158075521356217037725791711929761244670169908222225097401615999875651096199321836020918717097894402164015999146073943838450253576676953574793606744655860812260590742414995611454651942757409274043258269219731098230228978563426099418205532204796137464204845735994623629389766433648855506057952143540097825031687431825469607981963620804137314220202345444050216529890958346950292111238325323654011078604993865894205184240387238701029830281490658023453927665969616742689375713901776002979630755892449826376243635082783760915930493161966292050051610708735628599965769261923308950523061312511392920373858531828503292834089810355624470742202893520874969147223543212560567517972827529410049306376924048290425991136385789916700595857221238572143491912364869737464806725579617428660167304231306981136622400246396810095579740400043483550923867877727211280075828930124341110789217001645980798008878302095639738603053549370946880945423563662335948657909525638762011289818853721953120695437996064309776714289233165405936975977296146300940905691862475473539080270788220071093330172423684216029981949766115183876695692739289404025368123272194270380938932386210827553708142092765224728896183613347899521335840836972008798584740025448728397881931822925224501140459292745172668684913700228957292448792559099720501447955562231207628344039249864447274017081253018460982173183434237935948486864291146470817989190466189477329414009666761950166582906034522536906513731315303150134702278259633191497356799587372890408484966878072356886578856946467959894620488565531537134571359824982510977443048097996508001615477739866864349882982705228441580995339564136552234035710211273913701922744261262105421256856121841860618860981025942555523344029389852732657897086892851778222324777605034892066695201051791958609809649961650441699677023296123203608797894291330009081474282427860126865900140052522548272968998045330005846631498165697521142918750777983262707356773479722484921249673796080212198950133168661630045578338886625934584011256503015772707381003708532726821351268503835582617931384880035780348054264396112426708228709884101675888025561903042164610122683586578249535639388731667910757343068439079484585035030751238418416522461424283003026360474659035147608309630737781470223324609677678416197722521657473197740377743138249300079386982485384962338131720419090450703302206096814266031820632897078505582778399418042075126060391391115428459857424220378303743363977175762995698953871620025154507655616121305903240863631194768283344416587151239015682463470350343099426498154140561298677774861408615033930232434548602163478325097485010952355856776402290537982769052073274615937763895440122021306708788563719425215861301130118792271691473074788439504575119613519155917517846854387820658820306313613416698818095992083988543034932009519016884061754921014492637448197735105743049715623910027345715797854571018181864314898341115490164844483493067276158102074772968253100835530659364728206672947471678325573792199676137179707546814576989679862772375729613326387156940643230460975300212784244532267777035056586628579846819056942106370864064803239949440105794923205302262676007439601337382346298216704207114711334657472630907680271106826197958873838776580761863017502168537272702212735831295468254833682219032243280503229969282965414787015984246939695394825626056726998158854304677252646885059156286029735901482604978724056892637619735176619396957208247584146303770965393094952846274792122702466256898858530639472930772575664933504035352559477723104188589384027209977511470778269730676607010830960349633273123426139889357966976251282406121471701996021957384117916512878454774202691429217195663067664647713121870215080290593466991937265720992597859506598395451141804894560158876022720418839782420757069081801302785135662554891149140573216676268996257942332841218428062267888535674659773255925326875356316407342458099720100096959606725527805094195021367130337783689752424094475451850911826831292911280702654380339004200920121819908764570108503624552150275236056448569689641856060585816443133827631531773151812878564512352918700243786702967597261369689432498363130430247797498260441614622722249587956902838865873656060993974899705411496494253420674640508158693107380930634276315236273297848657181245810641225762166619642368500254656381835148302855738169489950649624449603790512898285738537513082003686827030769563385343682761582463970340954249567106451081797825269990894619744871267255595869007704069186100139983923507445949446650543941271733126226392687008057624843616797030435706274025357346225646509988565009432721165854292171857658324338042601038618599760984028696509675746623662385186338119088932380394178014568724511988032381886114771055203074980614516694813770334910184037926040915888816165036266281740297088120136950270738817665866093972703166882080592380487416127097504777020175679179222281550796753019995186221570579168571970489339289753396512030610072264282527104469723335508800815668420891196277831302369316912607181896453950742116801432129797319682800405016943821484355252697573159191102106978832284658098441659998590366939331432489040080997599723228881202672820939350855136543412477723585885413537266737551964251101533888939113890020030645745151030493176601027348038757464125754654739401915650657037239931511066958496008358532907480560248630692304977031598143902809923296356490753143712892656297663081598908174930569221483989101912822058605962836774007739828492160784261882056268511659033802605548948678537332963869553014515828682828710943973951378525021496170553843022662151923578614066013463607164086130557438571025195056920519898534612820089217850427122763200325109399380667490918464785019908173154020006565931877274749603420769199941784458714574710101462682753575349853855635159420598026619238540261941049605065723048002264282519090199044463800569810073284518756917730308164384312794566887189804174160148030643056937390708433730331519227379143605604595718046900326395282346554350914265675316675041948053973639088257985723374792919296636732041157797932485273977919484995283258948307403622522785188930222026470303318151016303097929735560078269566056501186750366920321622439080452616222375338846584019119957477172198305110620854265206008676508626852068653663952520380607902114908391273595239777295962148157999931831426138592517443387401568698263502457428762272924893613812668344770872347663592628476647903105361893951627882734756749612787468333277762599524477012648478709270529339552609797435759290655681956372493422489026731766609343750871095128511446976416518487602105164831530946476655878105726956531634901349512481233760431313689399297320078616021561653186183280356194145680855364424181080389241340249590319843299016548513054733577782253673301867431519597567056004518000477790689607148126713373664361862182123155978101736093719905051803678687017787625970662022443387003686710702335681303914751666057567389162864314769253187258730604680199669223862883280980230822643443888946127704756953366330283397987720955242314807864485953134071571438541732584367468129618080461040916518922011618467072302180976239069295852441951784998590585368879296540643299684718907040815417761864559296798193546143091855307438802409495288170776771967601383725527155719117412725500068954596433700729196654213556145699987176052525137075288506528405607920207316931554437727000063576100226462269560587111468583548983402886863307241148238843239232103095395849371021369605879493560455336490195920870626186934304338869886338209542767003518582558696121016328197862884216860687850712141538571228764978906500696538917591345634671696328646450660955535952384072822615617430032866688418216195893069614599363041254784505818416628553756176298769360620852843462071297167183278181964035114656997705210648876750282995240085271534874568878599472100352013758709299194057418474010073033255663471735787480844542997024167171558017729588174260966521098144580796969360908402994613728534242967752300234670188841910027542999841996135884016740836098468921741460666152481211794817436339155057858371659417686270738066118504135033828741306175199075649156623997739928602754781229561049451509574088353139627780592413117763159494171161978787828350934201566330908287985648461742656272312481129256126275164043613700419916914787960526979838704117383059038590302800720639509442019293550536343197231866539369702817946845823458715786294673197757306106336879851292149609721122489077774275076400144090307038464933709141003242675120700216599384493236242603715691292801371048617623959345212612538876434292980773413823845922219595941349135562586372976460764456448899203227476018889081793211194954033481605550436577724703041085248592088432740815027778599170369382621476995436295348785578041710322763567096858092083975678436235696888224066105810520388551178523703474661885662744350302861943773952277508605259029224272415613048042401215152042425028608711808412819041369073513013016385097550999722652780083720947293761171101602105460838442120854676143597371103090222480665939519994555031223725063121205269623478989307356330429501815237486593502800174573972665016011745570536974043925211860061878295859740432898663480139668228870850256799296492985131358546553822773376331186905228516922271590882708180286805036572646392675705641856800487285816296981155431704439941681980455507688113395615815489900920102819615022170701674493053974098274444790919150838190743027512216339781158861618609754361741332787679527867455666594685147923401155980991984880134538974240800640862882893014390448213985965618833765751043089109742624758965104592946813852431120222593394055671227196994576338086600568355996186193499679230877116843197823977077023021688772387586382657179646681335187433254159387608819078264719281211774449300712704494031305060644931858308084140626207283568132154128923382874770643453778653660224042622501174288347077681791694843733911068504930147417932520168195220337070308621370791267932665583847107431407749281233827628463603432511520813241512608649080143598150266424328327426128107462321460013824043766035855724361402849723380479294131117150543772321420120139406172909425544533813110474407121825539767797488982932742338400931635416967601157451754398958405678405125940784018837071055264034599021974431855929119365616545296668525490677794306094600362809606635848960821593794208467431237391713430948274344703523225065615962025876341140417539475884057297730963140406032566304094144300635292261885657264755935823575790366632335245190588728203130565495965208376495532710394632874298433397281211549570293266822587155662130527802445100793649247463792372529752336901974113444890340145689174152492399704827827039003272338546788921469005787758896075283110578881439220787321404019848926477174046838320322523214020580272446854617156372145320303872422655119605467349327828291904930764241076648132617435993571235909385100906656203438230951099439937360997218897094281193985188116960730027931203226988184842837463434964699190593310302246469213052385898492451749822699002809455270637183148734041545422322992384416359098633306024142988648350030088859328593497581081193564398627744337552020436568683522113127574309571832114843594992076837241587358947998528448206896846942049781580111625261851324096348825265212781517005530655057584541236371181120411596984692866005992580077305174327084549993025628215439788442184273715291886711997073711579920627242548551227313595969636742910699982401386394848838297107953279280759535700598326089098722249710238975829433072699398610145631816936707838539783368177071274527192198684476389153230573144417991972877581517097034613067527865079961924819653671706782129772160612601490931850425808514234851434806829081197275830898584435570684756811821780767621969066526738752004313565202597724076061886552301864804017876526775103177261772999892026772925523448971318020641506562417061808120409807205419600526678419566102885858866085352341335498530426699948124510039240492591578895164884296667289288644888301113187448205678367920496616672250873371114487666605512875765179909617161106043318082084505195357596822763428607404665661031667902324843317633523369651829414440288508489462885801163151950268646942746859084317795843458655665487620253187311303818642034861131544221694754852490142977585425623414049818862336545232232846386609450289932842136067009441866192815960038687096732502150045905016742360325743844923273457412834519794275473036936602199489810629144128279207868416827739683290634683096525206841804026860989806277349829763522018026855283152237439567842398220654366190028638464580019461973722910625223970136690512993131371528757723458238007189337734051765653939685975890543726134359463705618590227466054717731875242389584372090610563921280374741631964548660391682351198324369020664812931700608748154530712294823061170948481052207065043350111273624715960332702873631479158684368878331646774768869519931805174131450555072834405785095154551230564728085411322402549109122121532528536832012396785637571192201621052325731787688130449842826027055205798382638082977856580270190818800191185123962138430893212871668957084251238533376227115239666336246369027511469538617383165179282246591325364312051894007858202489037045600247548397126497434631034955108178047865798162929017611915475006052808823553428854796556906859786759953628646771363146646922250421829503456542719080494421453550942537861347929283244184296682589876640795947656689319060588405840798135522692085999464114201932749794360951184317202617029196770004362106046389272588689614257677349876063209374981944448966038158938130633017739985202425274111665218086144122066886057636236224232353258459598442106538136622729782830090523885842234180713034785082624406534210412365335389077610662627735288220929294805528547517838827134087478090468860325943563614566535189175406005982532314005985910369808481094946398294462342984637349319874774848795152828331248328012083689786758488834617119803599701741652143755141588477716085191340127171656915061619319159208580219001618246748958749996274592382493885953722215469079428095730497690620470632039683982281872580214389828703036187421274897181812456588299662571437731398341608792501644984751391286554404453098106315568541443769836995582331261176062632959439619106754999763164063274865118904970239211268843788314341031970762775293150553890400424853665556114245343406865950559795637073048077007110276215008592522284289676354151242577515961445953961887596014756368307348204195594368578886799043095799460735134034933784997036594024407663505137541770142857583563386990776557290237348628954060139328929330572784994726653168697519333081568717325366295077277472996246782924143407519093152867666657607534760700775793614925614915848415895784976434729624350763099503393976472771895155822159210317790060541893812954371228419076961423570835036000078386661525454867898731484164086419760017498283223563335382726154558356647847584883566765341312935703644915844139809823930627286390871410447987157893785313960615536870914714691504527574058922113817441790227184682199898936650545719289349873038563176078247770950459706901104774218565501398850282790077080154115469568258165238995202435572364627989455833084920218018006261443820689807117566983726975517154805202615342249123573411769049320576470704826043067984570686942550974362894029884864159332246407055681604634544611222387107088742694262193158172860958343716936037484519125726322038746147735347462654489853002175565920595083942790673794879221488394103418886212300371319590191917001672444475986492209963601889763246836455653847339905217423895334407973744046085230995475551228031186170424318413403690968491142821318935250496884314656501175076524421098584042337063895422516294127171677678581731708182408516714503654823060139416689427913162613670804466009008355503680106726400517252655084532051293982646838543224205149028808547852037494841165715857832750527102705851617921815353545515414598352022285698954436469587671581402456732510958638388554443426364370968857667120286457772228517873085319226549910492040588021043567830290691429101124257301924884268537747468159610165716738752430536770436931302786849906012066979574216121446696281433922306942603758998237115939701086266545044425192490965661445593471267507100858137868757620967382439514775543263023237170023011567079609407832465964577958979494387428336215663292551763812326672598588010906754064535950442051160770935159026088093804945126023068372145651946185782375791917081532910352027598452825733892966815054294659371694371120490306983951150543451445245292721230096799358140579411140892579304933581044319836252401825136263935716893837664455891737279055954746783880546040763875878060410120394093725349340701528489107094386954245952276817523833464383795558679711203763101121615416763656798081009051894830237502497709197342398298954423109298146385722444353685625842476733990047544984063081714211012492173791316787375256976087159287637873414045454849486480534375628971910330842781022418927582502127233505089417538817974717635775254576308946825064845680973638364217532582767961976300906610467450585804901906703585476093349852298224855998448718487099953042390586010388376683931140905590517925227421600517533713651745521449221161503333587569078987993798464515862492120402739067076822435049087619069488553482227118210249551245582906335748196330457378758319650589203078448673106431807798362025215217318157408335298313653638449993310210702594024589212163103925915765050960601946503093538244746935025466129519847122112162750689497759087007702956258987137955112634331529913890761889637724280764728011770506965645750635489925390768003867045285534509583396311138940421633100821341799691222110083615341202889011477261350532976840190600975598530473454275506297137897534696947925295369525539505302219795264540856298574056965962538371734835401923090304692196926706919202137252146581121299173328633609348917452616097651871299208270970879232092537756230584967409893399764619001929868904410708598580207364654484321431115477002690592353062185345211681137222452130251417881185849737506252572154538147795457583730950469024091900827759653101780124263639560408881499405878183280773533945342876148545631998683854033337832209639854144736983391618597003758620121497235896422142970669319963067568514130109163787605549909166955386827027911312053447619091656621145106445076481955720082179146044130011108891360111353982459108442145319962208062067694114208202171477542755826260357803428488834927700198133047719051814031316887814900412625733302266340209050180139141225480366015929424788059538862867008099306339711548990317214588353980596157972604422232532062863686174852823007356638828615499618823919514731456627636455552806541872269807404896418719245837048484573267609144518507120375968122992923944062821637786960070422209749924787202444577176556676265949136410381198461050630107226969285000600921407165198514932674650109387080590484158654859192328388466527862106766294656610768030091360760254863707473060878609101457717152845372103271996972984335740198560539006959515127918792592271772282473316563152572490214028428693266135935576814881517939253324959766885352839404650642235971799158750941031933355513877114188075738469996578204538883629476253804202871458497186663070327291062899125133096876128106819464885543199773188419991702618148996402623522098664602688043373112707104283116350914972204217223706639433838853962783907193883592301970527164901289632825398097614260137568979189848406700185411314627516512282597788201712256648483293658918309637398160862067923500351357438559493255041740013202504941262595761726208579120467658497168531132853991463946390147500929861353125095468813942381152786842273088729087769994641191780004305343128314929108924025819535827615707621115346092455132559105329395019440363236583305452347669365709488307295450793859592849427616912794169900365647602696426194122456377873916387177251778219237530648858642432538595978489492276387783885244216831506110202336622399319386282956141292240863679568774328009842242010879863310804686234954911562423429813367118404279796201302412398014639978442194698396994188319237401873804733736077215902815703270431141717535544564002305612069391489255094200324300382515372341362134489280283448398014728663252073148730738135226364701042641070641208275001463981586514890571362070664613012184680722008450973006555014976233889988146106491710886548883196037199883378345342499263732720686331319765155311281734197803255322443506038913799619827579372989754963576005026659642845140619932850701946295033707534946835005603726654130231375706544872839982026557190162908660608289407876790305904544168121889516861951466959112899747639829256583272696659600485107810109827853298074669755468856022585481123546388385656392228668467313970578066431092541451346253371712306047154337316308452070897957582249356984969750862105332631046548195320725618553128904463731315418530114479014893604212916111281404925635060150315600985408526302923802159438511712787685038414698546836114523836298864963279370862740643704694917761379675137910031963397861553946456470748465960518464846583956632569404698084860205563118843225195327387189467249434308209173810572497924786253976991419015181968189268094591226050968684459341819405867148460279538322142980518950757290208078931341400296191695822697992648796811189307388716231293498112601192507716308947431641470623343984079808238879634999858033739332849872448884633325274528973923223264483546848125855166288240892806305413594646064130203623628701565603118771059786819563312994707048307535780350967229080358811181606786725212431005904464821024833242540962401948786314468661616817807778590259766108737252746540711593756971627447338959085984333304415671290010799994157643244493174776829957707775173591919699555641867993359718830680436847857023818484406093202791036140831626781586324309012864647744970445095390658512837945651749328486220356193231835853829172368274803734486920231968337067240772230053512423760798549136288931503580633578890286995455814136763836779225601611870497454899229995960838079867003305666747141475616576050596110453899793112776283315233431470105679360685268678742649109038499580997685289900201921986099138354408828863614280612699923072628398333258146335321267104030450085362754757580861279481237688591980556763567349735996137869127781529649733412576039214104139465965805510135423529379518704578988881321191410114692954194725726206323843478525674394252952017756740680836691453400895580666793479132941044875478728693401324641093349545403989472687741346390251157093775120516661728376825565858377872919873009295141599538331719854939838832078784631410799423178797031570296180611923080647990157092404325532581435966428488225253139771740212081603635378945763986502483835826970805149935381207267543425763630087014745650498225728616316999643917075038578850135956292591784951960984278850964083549125346432956262454131453187353882927435426507874460845360242040096389211230972483018042071788279365971201444056805188317641530844200114358058884727356015645529408906713621354813476490804288316557613182352596462175683890433864189504140668112232096500600055877080463837612846308588193203056686075087435739582276750804357828140844928633290572064296927575306237433207330822672739256817017314524316654877073371873697914183790408252699671764342676659141929094346041325840467740035933130279699511464062257243047310077707298122604701631780046938044503183754303641269753326316425361940638628685651032996442164836332809148866681867711323982236212974211395348276158123825461944935123714563207936091234478780046115451947848273943012423519645943718301531208783959900624478286678605248188788548701348430715211686256738142065073182934385183225648935682110324309549369600829950705957671834648739363877981661776034353643474510486545995344664164728260532377948038021929692961779891647911930395021881402703802189608639352211276946659620677162099774996317603691216314248934048457074040932758223761532688146815700651095079034113971187117175340603796379423272774407792184175899396024140781195960120458928995526260025046861186735462739551969116741674657627494808624588022936970402016796259822546777800333714371397515898222733019374156473766663098811342559241374868064940775571648678975594038937636900280368297525715558373415177787058927779278262744412484957141593544762078758410510984809718504766441376670610512968713711982400280700511471113985707875421925445250103699993562399268057468846099514303941527662920959418211276658995206609162005685350330795940909748536379265333441550646420297035506760560118654138100887949640763490159823542159372210788331427737503892589351443791898203053064660327886077936124384449341263363893326554120101055194400877501877223865405012346753740753020462504696038079827956776060461272499447776728403524232110706866437892500175893923181669361237847154207403465002470019319958616340922028035897498308300143278684827333429463853779713304928093382512756598810915976091898700016044897630411999014272504152082123584403083479834473115704146351675776555179685100175406588632528942937649546115285879765693172392684783442730004713870436505678547787813940558272837553384002090827361356889597867524910199865917777004370548915386996974308671115590073704409304550205627839754739863790806378222641011539925670254033006465382507388337538625427744393257598652700398497620799588816138896499221467701182164950297045027493863327561484114296110376052668953815698992573857740191158524219118528244886102646967323252617159946441524944761774845299650831882520612487469850019499246029503711021776723729999694916184338492878887851998892627380240942194514864781745047432148199689735624631311869786322729401780962781455494619757184581672508162751163738084078958213064920363936512684566263483534931540850397054646259123949366826298336829928864510085180668272960797726370924352207976490733571347263589263554087795396858857774212252168034104820971968666548365728342058840457062658468744236899309056240029865276956582159650749300869824195170571085399312243052084647793034888401030555350921483341347221730765927723245421537644073304699992216662120737458189619895627706171800263667567819747916847245393428213454423091590454204829988999784175449298507118801096188633358507713625737470172064897788387125158074697619527501005862959716158339756983621156035499652486121555136435363784155835974381235106209184198422274576411474611030342297758866428815777575676045331642090150259066167032380911187945330977406076809463918975777663506604975339464141988033293270945658225059575006984897439289899169807326041680298066549410940774221709591092045314827800636475602245111202637577676281774404445057231734250125326757168097751726265665367147906169041279736732699801725173208053913969824677607756303990640071976687118534996619962581849227991831974681265070109091422107240790121960370063615697845306405927803210831248584550957498892679440126792226564806540077880670929284465116695207968717590287379686887947253776644336696372375759780599800988353041297322595959007729207151253387656641891801616297338388080176921523151467221354402244182372089970418077549751663362182098146745570798804478262106156739690079986811627907074129710116009203701475788804054655143709011568958799589931436732066306719615791418308184552225930928159510973645847464445722192701078954222350427894336534752379469776510559488416444982559701508207079692473918336367132632396450021255704882760566503668561415670337423787033252151304165131976305984096435820563441241218691303337882287903022997828263731882991667798560072651733792246573463669881730852529827700393280913564351658126545903762218955410152428284476208497260582187279479567019170874361111524035703760045383078982031446830176804400565959615443699564962369289455846536213985833580325241985024000108071680679457150297449649120072336955833285247361649418604837351706401420492981567429888274209699251517510651630792277043467317356592167437580663229085929908533281117755414631928553216123210519143986020671943015363058052219024034615986306812115086361044864017178323356902425449786937623795161780278610295214873406422113519644256550132564846785612301700935845228117812232193637756521616775317244060563771051025643725889677609853265678054511418059017365974473600052035330178840220878985592612184792372107536401108322758070553320515768275326984808879760799050069700120216693408417244099102127161244371158692174119257812704677689855003503288388449178563626003365374559266359133734962720420590289112482155983679637590523270424293672146410047305552997753597460365943801661608312217893213593212885000337828981493394356887427281835969839586598018169212041876203437557332105531061869933788925488251646567889502006872709936227408427208156049488955871185972290994866730082238530072120673392126011158873836993552153658431423911228875580729096230589101202027475092558853588987973854031114126073036874241073863240439867109831594011207735800826746805352856980666471687749915947100038015752600769989581613984417293405886109487841350372049465194514763823963759946006609151790098249004125251354246702151198081403814009240033702590114857529493441464364690109717444521759800190722862259930799047692368814267830774870523438782515239576354134282925047707970127422572173609756991970393265641805704339281738565528378586432527334590084485928914648017516300654418514482255957611612855273267769095413078772629357717691777714445532958499750467511790866705631150025905975489911792343223460820116825994482690621749313166250504487554950891300791356743646882686669028096342487995067631096048676240926147868200023840777637273373625435706609004367809901873202892951238931546483562969139200459660286996086575591099687868995315652679272752536384630775500066181544329094092952143662976268031267716802241163936622648932113414594909402484885057863027964134801708738733677764963200667154657359096406505346619510233724558497501211845771151521239505317258296076688584539460562235377200740529346931120874827842078042002653332267273341543885501495905949189101680616521913615665126334874448759172729440848018469608370346988169827078317553340030006465896080603425505206929778096454894955777215713986757061480806142755867247987945705403571383339598019820668975104443837848236469805403184138571382123902202227303650322576033548878464018564631937981673057506689199917351193888008535713407430357202610861140615283428044336004131544988194806123710038691420109671995020412182549519413381633130691577641216565393817744427873804029713957181176386941632181375994916964913314963845666641191926616526623584992675863484784459304742524358052974760227558306211160659531443044119570414118839481130314392722817477421449203384114893152423724547363505161795200850644915758296877757808257581609922008598731621058864048274938890228383095899002083761392448040289799630677823608551999885373884723457479240402430532168678657819227692665752103612035278894281547401484986781009393833518327569099253418001570386799371025029574381395980128978327557084486720806228914984601034035573091245229210929894368820882715788349381896889389026552984215180350036088348190163943093170010938650873634727510674645076543252249922211927379391280305610401122459532313105797107000203409894581933848379681848179923665519100825556101393668436110375683648760523404605702520216330544915210224605120088207727101851713243864544009296416998134188177096448036512403784845951461928138538157097611592245066177562814907568424281997757180228814007709850445011478877348488579803570455259230790298438164738342960215650079494005720584399765249688239590474802269249580422306317553370233974944688739184461787604301959752169832391869426285067870399227360845864121820271911002712505425678751769861123474969354661318753569629106456996990371642516410051016787921794227471944146987800582355932008233057016170191099816940341944398647685463367200037821962310801145509837105161090566319603635938613823863935473919500828322071806988434883997504624788660245464654033627525468849889923347942338348771923848689511908979958749683060080304232264677500151473165125029497829489801884467521214477519024056403320799414447559985720408777457170260298219574873756679538009451470765126349410962213221474340719884400512664284769058240454959863331700317733029850720838685352850633710299692520552501026319749005773595844952073064668853231540033374299527717231867301474173159918108968101026298834586938482421748640099114797350603193616584209131578150890125850370944594094092917238897715523938130051989367600158651583665852638308769672321208512268699101401504432093271403205316286566251569208559447986605306588020882259443348573797967322464734584822346647235878145199878644623181849401972453273358208331734293385025556959300579419719122832718809303166751693160482767465444747305992805300059233209386819606520110563658642222043428039034836563431731380982017625293175355568496151448900348720185884830761132376406895579019627461212489993048209212593842556954060084708263943460735989522638529297086122534869860617357385737145300861420469186228419199848212231118225434996257297183042961493307464149829833462624002682058175671771104970397936818367129622756079802078506379842390242863136028963176811935137181332315908420620759304520205253782464214291337967391500143422519956816382543757102993409597586057182232962917400615413613741984538854715190728853770792768935604192170581979321418990090296251647833971938682006540520424187978945976483411034739930717264752525460095267268494007624194673864576200246360381373805508453816063649228809443081286451807196263619148725622112290771496972039638485234686993234667726171885917729360074695699159017386052832536462065835870015633726951163574729876219153280334943726131832661495447042492319336966780449847155627638592427924687517417211982169079776837215739454630216606674501332981952648245909676086257108622441747966122980847486005279059713424779896406414592713715681497507641510756318866757609467684379661669678705883829829153877015586667806604193275935692697245408205803309277771080352483298444757110013408182679960212048055000594363948770352962294779575441755258590909362559647570593637248801993790354524069231719631496556571679823355853825094703439224340303119883207935624671930375235749030226767208938713865081912252685530111406556683464716390351571692829792687606969446355144352212087001618578396714702320483724749340046189383207062179258010162162149174866452998319501822002841701283663758448518270580318698561103288927666122561430728576910317924622462567626268472191467468180514288842408227779186714412897487949043484420815394124344740389125672751598139193075604975957320527677691837543658329918794443331599745423856885633280425491930128428541395689063972859736605986304994533104773027196180341659916093807614579366746006674076741254818014783717948189375455363390594774802161863561299245434520253862788612154431032490091584411739741205618355482915220784793429824571631484913249720611183909259189992920006172503879697794188059154333774786733349176984139036178899909403868516248588177466262537318502969805334335220628076204680371022828987571043753374030799493732103780214502520741568243866288303039200621415724057376197423097658083822840957887979737587170731915103885175436065787169617130470178468115477309609666494786428788036936348310940111507593306721222561671029857676494017199624404014642280419068833284770608834114016165895931360407844634499011418659585797444396708272966493732324130969517615129628333779997303665338648297239312811460034320413742448470808449957470585467608976897310988096797359239616532955840231182157032695868718351307774879766050306703979697541002484698096248380683603961724055290206019334091219637096770067441005112171143757363770063802227277909552820398170413233525366337608753485947430734315105337175953393598621258321100057062865983349551103876158009663043694601871623210360417376702978753376939934903310591838729243069743364033151854516272547629632291002047828176888772615129130093004522950302494498559433970041766522775158760684380931208720488497501135802524892934239188048619605477717523091068508894128707551533226546617679255260945126519408904316860325780856132458957018850429775144506660764244428927461912800922223969733370806426804852974475108977938296816108730987788458893444525792781716480670076361978960754438571103361610615492007724378155571318911800748687890535992021339605752631043348901767444362237505802072236802402864465795914260922183180035335647476419064246034506836084794285204848525682466503157743684562439724832204623394488718586354333975767222434235617801353376048441346027085298515653306074446681951167161784596886788569094117489051405475373791225609039532902916703625852268248221159959909041533502555871663301544895313262525756601050957419489841456768690279662541333502239403070132136106525017112310999150906777674012794645818024505654239441514342590978923939760383195648830158287518379727283159217309629044768881262264804550363648671992395920199281306425308251292991462870097120176301796582398552911208280780117122048668610935967947809738920049245743807429122757860908133596395106603849682581709118829686361381327800710877489364766957753083638140812888598407528566220415805991906653292256719015604143336450242927638780420950416328243267976371607332410294315815909708832125270020810557275396685419046919715112766795267309724203576537315149491065838782472329771440528815552899620921520958235347689400383525160847747098754233077092316013773871640156969000924696032181880838680825100103623881413987417705462793080683063101671814075596348061742967758379788650011481709687072992288763878759007376955600906017779913253419903529185805254241115869408788145415914663209916636334249600541615657891937303377603837058641035694260627768263318187448576953933442083921584467355364882382392811679194642363742857093739903113959544180136409687885883606225558512580548597200747908742983215111078827283727262444623900713749168907623694202203808988905326187125628672184235447813476701980828239837689680670432568337631904776437189343857669266287927149365545684350144833673462998721370105596247707910021488777879905956910336004906453762487084165151568356204465386607049993282210231194345285954715278342986527630879922007876798305114955702677897990266067210345001790215274113019664045515263609050201703966779843999365614902429021206087926174144519469452040328882496384066128225659268850960849711356530162390434088475173015841208030526484269422160768388871674728166710249045558409734184842371649004118727109879540466720608365543706277516273055969448575501024926931147729955451768233229084311311794577195268225259218810826864041786008540541813478232133002508671894125217974672581998760123496592201212984610077785301474616830257699225170668901002809234887153254387867072685475995438995200815911133798394488982614281364204323112393235912178148768417342015111210851446077995430788561551517559284398901196867514103785076905190641200723412998863789056994726600739973828406610069142445669142169483595487019069799392981343826598415336654337782157278627882969443978640246846165100173612963141794694156340524949838590211270857385331119353743509931507360473291815729711708965953380679638301694118096273080843285287786025673528326199227276969784142978681409838301447806092145525523860183810343429720320932084921263846592588620290502988082120534504913925287204791861945421930533816329291868689759988279728977922333668890120490024332083424296758963393267598258693884382772450017358557151899245902669105458602439653339204611297657719201923765329156093248284240941466755099341473532435735344191858947190806569556385191060480569244363727227348722947644444795098827300616690761868887589087873682036281316373178975610944898971413422971910611655874708282425433340762641643937919336442322649728279513506782766689207989216162410377331435860548196264973329300748632199998658997478898422046193887226000328872895371439972003582075189940451914005759847698577949914183377426177655041942339231174641550810705124936159945915769422665890517444233522384217723481273776139455545481580387975410626049034310759616241488494830461527575112481189729710605174607778351236659703531862320985050349436472044319253400938472136527104125517418469087862569188887224654334039003294820851639918828894674611705952181921004724571585019732079235029910001577215144551604292545609124767118234688422450004697314865958288423147877730758997689267418243458495921723025650512642242240015353978760974165529149807131720350483068085983294142314013475930795897504850459565257552423016555786090636464451424412318030690728409847148499162496685757051645802798277210710590987414740572549143013657598440228252988572587652995252429631105714424462123328062674470482515099513316631955708068271952705036487545040337776017408130939878629904609258119102801674218795121483065030783804775748633210830565017690028936662608644902519859848970497067555322693032949605543928872049530748731955473791191509411537001153633725710221976074977900422780125879033370855634127509031636639728588119828857680754613599815682628770492048571442780189972272098112538621258592174415708957395482074546393254658870514637319857537498991690862755384851721543060625554841187007105375820456346347127513973561267173889714241733215445810856173903192443609590947932375994200965394292724216110090383356575441550734210814778824383028170300662060127651821269947123479216212621630300726856375199495405963263344830856056574419723674088436474480688455888009458595553435872777801847144910576118806200043511192171521030009903823748881359458486422923496715757984607335713086169366202284511232360126635531694248271293640465290347981631229194598391956136491618341314417619335885736770755233160613995502914188170228923220649005325198598163912262128072393661153873148886885667444506270765628902726246922673529018099989092833034963049482822681523115334204109444613490083444496058221148871329436538823068731275679899632321223294996085121768512858894027496924260295037189059128014682152586777407555411530101275689137164245149957717463007833143652404920882589287938007561478060144514539455957840618701853490629798914302834865952340834800023302350756059578304828767861955503898209327422157246332803665188152429656177068505965693646650280263225903083891770544675972878969314186830532968270722272146699281234390306178367556044090317507592704233566687875264113578686704296308136513563498276879946487017458677311295566606805138733832585445356074663265670093685656815979649587453976142166662378008662044224569184988979223027608211396689745938767628716657013529609865569914459200153385988083938846728370185685200801343724214018230920062315575728934072652238794878157573888975627111297954581985353661654437350275264921240904993893484026852364935886133541060086540726370198010178787536594554390067879870810804253176208650127345543037964265426878265585828528496388522863169856592248702250442367728334647343606254208363078768663036028211791852499327628789942960695026483260198816965209401199523071683377395719335810235670393490586727924395712934514435971070040748997396343480492207543960529354233481054852669848526204575509242493345800988530948931804068971299802441891703565669098240023881374666270293179263400418408362868323176283053033701939322683795598768164548339607311152994417741331272824340717357303824018912055379153914461553846439198619849966400410382536969926135901430131532208743030955509705957401028553740436446536776640101886096966814984787886725936681077431243817303775176624964595194544242111460334902605822525743820352369779387796919204512651279293332037068330855652273624988646164024166948861937219558107126361805626461417452679415696119036071647496933303102593107774600846785925840714555786361621126086852343531015131844269217168073593548830651346801027687505412697634484870232458744231463427764809900682098121530351498682748406989389465352425580105892551072738496204330018665413591344010578577055273910382515962710936619580437862361361796043004277545925300658219987099626656579867621325194340940024481543050597046756900453656916124861181696786370236134859691473235798666081184527508971047664093160382297052910383086332364979067832482121656062663410962914340916357024267463197327506803544984443591009123991780602437387673578149869515701692212930164051347902162386820815171354378725287853286979465004618789808106395177864863369430484214956973692364595123028376266998025488693702747722380985444570578862080837176230785017349531474668153125447733910681510371126700700407760680218306651193487256478004434780185956517559510405129110877425974640076224887167207221618130793879789008262033166580583498005723219168168133273284262223309452721040698708695991283818117008211619051138516230602675973431703521434642047477411674048544211285371410942545568723547458730567485139265982425329247666747776546005553364448161617501889366770482104758383450334516963767876313934018946714216837276362175228961665273753809623045406025197126838545793098660919212088637097517060816222375232898376235667450460755534599402452865423751906348906508668152500754850521679156008713174136711227697415070947352881073407731070623001884192802381399228096524644804250329274706921889551957445538890243553879221347194544602330356554002475150590919984044433155075802480238208997904439601097033344045061005550147931911257600284676082179357106022844274982365812245408617740965546331162759089614582648747358723294028583180111384789753403290317064193897508480786925685291357388396682916243298388695873207277166314435527795991869677557676611770464324836739956819125799239582389040258879876433513544384564441022524860135265270732265805429095645174381116976178531597595077893076271477749891017243565327703519326484268091827628643021845265630757318285792595155782274944073062499330839411349437764346997746331823676880966667126939051877812848306556898384659443187230248144572608728427735029899155324788999160781557906855767446244686482077962751240821557238635574972621880090670769428203124344920579186901831511005121154885615419589701167720680545699680666192282096809722096786680307781798308326705692678095385214337923733859825534963330227563589774237845251074638725939381113556333108619301232276853741740517106509654468623414349926759351238030410452515461057333884971848833965238223008242845702233810935715925821355047607789266696528266131610273547402895096940617910297522937649920910388637695639048969221665730288094531563750545894430879398678602291314494813631493515503663855360509511914681572855023725581569404386517203235905981255556498833151824003257726099573511173612602441854039442303785682314368859813884773914150109023557524459080643301204827294494019287480027927436972618736978136863173415797731265724145768385268137327172601859921247374344778655589083790718912878993450204607382620767906242885493959537412501580790772294916863741757173545076072102325459302061331939958387879990903139148184735977719533954090111489702752414594338898051234651599825249460671618427181524587008366320874178577350156679071545957869374971879467926169196434910442627501098754066891153411742445078064952704979954839058796774039617838332522915315063099882341375304024794685316595141998642531952996266608497790118030226547264077239172166892471117238301831299298126598068099569945164451119731541989180861811895515203992931408369278423085364843416551276059533084241006918893881640076145358817973526192476709555540306976909813906657796284990407843126701432681426158786485362579987978785316833751167665266654680843649130969079190933716722112630602960286437232286506362896077926188819891861597988750046893976789629920771925715104115018206786804429375686695379319589794622703344801501868573813758858493961953835048299014017223104910299484116294385563947366904370455162093501496251835043223338461538918968493502747489353947826699481632147569838373603298578815415813750112567103563748525584642615729895226556128336432135552421775065965359297166132613344457382647041960313981352416222004711188590103716117661285426357338083345571842137711416824293234264285919718191075317668549026928525928389660655945551605403553747184998970385019398385270608644604917756474168499182925788898425005372933478877053024735510573236307658083935363943731705564450040560756673135580364338869947873689058706432610515490545633021565588556539452125545595060248036618705088174795599925632835912652023538372240190380461021910815263585665343835356394704051961184123852865918956436712544687597266689224279208599631801630491020156847304179923066684130973623612469719936782105851776730427985575804420978112186585673084206688276740590611955710640571864453183475807406782397910900907893279611517664339007569481991168427423280141076565671564310858028147825259470088329271470403194132040775202383185805430390466294235502973639672641497829438818023262966985977584714572075145233784074567006892165342056078116860289124530407136448822157666305509639255047945848960874394473651758311952858214965642690349480615822273084798205358487112750461699969173793960920559936658315905860680303928270969074279947448922092072612818473662855786262191677779727736686144558560485079663289373006961881257830737055627212425279884710889927939935708719965714308991880848219086600681990560378702906624452076473289831376782663498465652346659201992044988117389519745058982605836087439848699294747602199075949388503192666609261935936427708412168003037279134407060347305543935623493358286164470429683423634127005571678806573181825468217371754647427454343977350182301005068126938647289620670482352092725005231154236028984299779604884984816971370277199193349823334103999318665341085137729372929748876563152133178748867596660915753920414229662842929458370226860704036978811400603008475687554183143523647560932497558462674051076132672219871818869735336648617498548767759110674054973726584540392841891831691633740009914915150154575958853156141574996385252171222911636653832567970134748778848272742994491505016008997130243199545660336455157818393932475465609947192638361469628736726838594009777538391472958664584904185400585798328107008648905731789690673386986683127835845642573042073808715804446259222348269237792491182231388326808651609664899673639296473975690321989869792829482233597801621667098931479896822631657407045442649428499523681198547974518395061617582431137060372934740215443825523633147209057329069620418850528248074262434136675789641732602888013931891392185132156861462601650751675994556770737733130604136234496021920599429079782465463661370887959061413286001208559153685130867077250443597877972463955605420565350706395454211184927401601543730966852536442994162241626315688908702642729097784305345070563376682336818847276457037537714412888940607586875417341824572254476281352294217416208842714685637313024747551156404043953734008553901508158806176881554552012943770994684943871915483330011350160156128436720026917114507909496586792774878713248644444625206925835438021212704419472420541989825410673762227578109970800014309152998433718225369757265829009925182508037271011488958208834006874345306045060822112084774333505731773287359256277072581640425865108400513396996706225032597177676287845466662772119801384385811257547189925890454241672883943967764870773127794409690640808813744090659142093649028957269952430528745017499810477462706324702465903527304892871828803396375652785278386572509903128245704442351569375177152251898069565476765858672129157822902312556190347199651889234531241747307755920297523181528323396843511199699670915873476278964765530924042079324930294705288054911840045012564951582290865301701224391443678219720990369706852990878520193143704226100953263061809264507222577300852019671178627119804821684208103734120845758620090303743616554072871490761164619832229973200516787013570882995132750261877731144521714109638110764806072482667624172299300664394602466710495373386099522237690620659653812942036603475275264696449138138765538826531096924613748473779099756871890608946938534665902886187434427714898550728098016719967227506319156720382563602043556332369338571740643547753456851702222608896923173462178275904160101473657578939070603602152498068717101246541596040544740541996458391887070955746211884542958313318425430386189190493450497762029654536741130542490226660247506258348976108958620233023506880988992466263979152563519355878547902137574474944471279909733385876300170116925263981382877045078505859654709219711966618675276868467748150526922241875926298894839274295961472435986581657177093532885995609773592110759270736761694103044546090045123821469817503588175549832315033600721177491672010348867997204518244384366487675762143238904631365049262715292758273593644991005301226602292465752424020792855942517062961751192008158834249706113218140919635918809147082613405410957389271071907568570044634423839731860053162230357027184477186990782604832571144069170896932974573855858457138990567556309241351747269052864532712315143370258861495469804187957524237730814278508171270027404636397816775923343052571467958082003265180025396611195017728097399660313852032274717003371741230864058739892359019001417998235841792480731999749819722630242843307161978442168127656493636837356715035472341192934724342097388031321262500985416459698614361499587571963461270098970078926438078322489448301035793835687251906731404686726587396729877030734480380485927307517439258809905562468478440884370632384914445611679135014652386574711553196854448577685839879908610786709287835982018952169054890650444667387221089108445674039717913298027997766024878660125566889410195355947689936694093252325580961499565199875417976734487896385755338754493163129405202235405863660300351239037830061016216472260924437933597442228336170397998966888092996530069359180376427459358242661703931175275372009001650914444761148592461021682763747459069796518015704943553519488996694839477625524979560951648302720208665634558548385892802962625042405943002435985375547022826108140525149589432166651723413329066101914111414678401348707606429693157484665185477128004789077508013204576360013117907003643469819664487219634184556591704423675134845258163185670754332049356202309975322291365667446661362600772908854484658024888001405229353096687716730535400901067052184819289072921046885658985343973324019739693920950342991016420901017877724587133307291374172431125168613021202416994636642905081942412169583964553182843089776210009102776929097747129251720981554461170041892720495319665575868065058312366010844765907073545939475410614803289253258903854617401565301253606987690137470600008902562294673506144580913198889826629066264277700507555266462409122463251764028328412131195655349998815005827846202457643326602169081046872414388668893221777231328582050394361423566731360157754068074077462085497996861649471080422990722740442338137572814025768563425812891990515960562304846602978793778408029582379871623979946507117753841978330993323027142757840667546004111046059914127301922688986148887135187416329456066485770345435280511235551463852101185495996754944790923284784403901444092581039692236459460488250871831078393119965641482534991632030911695018995598906560541216117676025783869688701348259686412208457079716766268242725930538421094369292079067944839508921746784695458442478573783795777950521898512386908632002848022451876092868963040194568838737608468217640693694895417391410848301700579361270459157119322471291926656983786820450807267167441172735452198215057166693800837745306643950813676777125403552157701147722443845960089396203490790242476119344506615440166792421231987171799428207757795632093337960377876832492620311113021542015193565853719155622136421968181885344492829980936340925193450988757267023514230552107987885560127925342383818507787008648724416490864186892845350915744674568003650587829907082056498825414011162178656945382481121599931630493965956204440364215694312657484545205563214280539686221732855033244769283979088010831856718895946256116433860847112292200565601019614229682886103884231586041593265128639128833704463786940924573348187039848429828852622819764949833017325584693013269642209859654695793944140858471909188050135451379871251323756571233743364854450853454114133027994056427873412107579459976309454552671777040483353499469656628086385324202689285550058733997206055055089339307295010167890442200852790105105117798294618829789886895726474545574093766834101394010678066985568033782101008458419285220268418964638621983441817979669934195573462441593770405946617706592807350511413812474142078321127728277801530937086355489947848108272546937009555979253865821864201523279535544112425947766372645430003084248776779620474425700863117321028097551663488531470227591513674446624981344011531230894632902542963809698017139382969549059984482905274573098198222062389962363741481696424548682493592945303954403228613779321291023974465430963878646298582031903884124064611545459943047957250145783427812008049165673957175935854710867395744535433872246036299741225976388405757757659242020130565541012729463213307682184280315499863473023510945603593699487511836907543188841884545301192824831693140043177808530720604812986217838985524220329898288387574775781679197018409950153236562972387286870263199678266196817613753114376752202460484273918900624805011870661204700922214736196288803563027634076111372461808041195301568826919818928633572264005037032396130249280262619629824890757180121804936372697298738882768068409497456053996816553084244951175573241500987619836775459637797659483035753650031250402670269054857728333380523802932513783907462225392942807261407692497318852395383964288306803070905055172070348508090657171906415397368407900205924120476293791319740943386762355970219985856723527365790824011354220547030533809464040420872320090838063269587055397018130330426946320889272342106723872538449606326634519916345940941773794380462039492012365962831791707636320579302079923233115269402608476234735512888499861466398212590174912528118988344783098043879482095914425184646201806108121772859329387281717693733005726834120402281624581455118951282065439401024624777784803419307353563475973557449489188343928049455045005721534067504157341825647089965374533105501031542580393814862344904554909194894740075156312394700454185598283763826660772447078485566217395198878599766004274604880179662124838086267479766849493484473647450822091700514285025956543747685325339412334513619338480752631548186167908355694778622731513054164685509841368880266212014569529421663317689272814154800665072330922744413716697281879524219785422024274623064244924045519649968582517735193338968653390416904725988026739844242461166740277891265409107835633517535150013742291535043502480944498924395474386912882326613185920048381696618937697219896455499246617482794433288049862336331311803419757574279598972659158924185681631608359510226963515122521660069362148662718012576466246993805976438924231623202567160214453668393512652346052445072285067519864144037256705328920304272493686588548450174109359448780312429664602986585427034321844262207144566169778894716391506618846773876714068266526612406079713645456455503962080376195830455278526468687279936377901878433143064311140143944912230019295980226464225367932406850434795683269416687978942730940700097419923146287548791500180634618053186809949469309331439720930084740330316770114591170932356445889566643611332823248322504582404222127340847408738733241445405763589579152745375146446508228686189691688409937036852789869711127602230855339488647089396649223151394394595535791477741284178600298771052881481709567631276189477753872751216743788074929174013821936025056994290209968349831094536810769011210487137655714330880892067889135987498195720492102710811295595513107913816841016761477502075805913723121148812391509810474959045130463561315331000588243590232060462045464251559092803419248841698586418139950437857460412528104374701203409802218914779550978856714520118574600888944132847526529323685365654714599036192677170416889843983248205482060114882456341291904287310928993505326759213550956884971308556046947085992359276620432632407773195462711533621756899719890773427560364484900098365989845034984609737626749913097966626003127122285135263815521173959319721383977025276652450406670378449588324968149018310382844245262441079005184801183247034188881611722773914698901602941188060277072837158039053762570357764048101641270156418889833859788356330790007611300747739507195783118321172140659165034964761283761826505103940598542073429843780806372692638427889655152841455608704869555070473813181981554126274680319432679486279485487356742691116427031019107495953942804030389318302647601847570187589670951396317764466997822218817290678606934549351408641567214928887274917955574795171686443358119905718868221687210131015522380568297864576602089823414344287694390503635715897156933777867122280851301116091489835611890269101025053280121638020286684952000200658789664638494888825105294669314633122554580911606584912403840262394526148930112418910047003044442802663148133260096305996930158127312261880116150074622282135325549569416878720002158254146398635062696469677134123593747216639225591616805033521035327185172213813409676376144324637732766231723306940933413998738713259140415280613395446803616606143905569419449647527016696422093968495215292186316510169924916674550239143131842695785811433488934469402427579479744027881125937671110342080544458142314005431005762671824777442228728688010266861142043598446610845387516665960778017786622352331406291874586567213500688412657568328920114946519529195557815281930842384165662614223767758533512615833748587424324605282326772073571782521691719968160737772756826921202367763813082824070900360423722518256825989860685711625754233480335383552908473427050719178365445684949995198341641913263940460613400503305943195330704962261550758514082733687010506876806608743492708540388888013271598729263027479000355579693683426408104096396820786796497633479734469410393171308311377905168847269212596017020231985566443528004122212859981038041935037245032319460679918317039203500138105253856645612108269875061813751719361889975813559180731722831160737543354927908455430887872113860909694691021933407135383474957200082565855964644359743866360937814955669443591832773628083823302734856341786780141823140813141699167359065029377344134946792716176473399519334109268692487595702383235672004267501991271768444654593491880767979598318872597480974783916640566547311975318161140602170238581318136888192185994875248873922860341337073888371499307505755894674750956660469700093863249912097702592857805198148228435131621079482519619608516983559438398232839644977357846555456638745852527482477487183585960030272606074462861176376115800939750069969026813113763768882360170234404754400724140184557285684002633173615154948267993071170643862777577311441648171698449298211547677993287429532987097305717357949503186880926170403737519300803297546569849418641208026455246436452694959639210840787873096744937759817026083493501766289228266370084068488169520873289050831583926858862708633184471827260994542352589140013903522840248536365017636360862612969263214633539028830297132026196942712625749242148960158768721856070840475317216494740661522885060363007806236950498066397272817215028719274519841607381926261973455271403162350646890192706725383638163807102627888628825128993493005220628413687124519326930499334714957570568289275590334397700648559542148304723987794714294200626419344323083649616553587431968862385222403613654467900837048056692443063620727299810921331649169432684753941971915539735591169118418693445049955824957232616297850135201748914050268111047808047713825768519266225090532472980145544312562920046900717673662174372588205830850267494994185021308293654499653384743505053029607966069855629465459860168530645024295640033993480601456687162632553332711210228288085015764968078850233036120282650891478826864601213499947705739988849861604649416026500462199223768569544526737860592609914545439297169654139664491305848292709821020246928879755957179174860810694816374063865200338108529104667395625029422985246837227900429993236537114961792085331352355457957638591388299667461200531156496773503054504081699137996907035636972809696291747734309435344595288898487079940270246235522530316243903925076194941442329000648530722219177143405022767315197465831545597143152927182622767427749191689613943084946280690924728479268526179208372387468165288073172063953290628143827923971110754582737776466025691473908857344618161280156871498100990126839921563583913791059198699559010801593130336917099262490614862926220330078003889422123690604205670557193375263478535591327818736598377570580752938076633898120829529301494099467151458450643987255361348030506263170085160846035407754986486026419862912956583102940746372015363273563134442675892040834667382275312714849033182505682636075617052963915836383934788989374377472441469282708680999337674118062136946980571504163294312496910860220573396523667799868284645349817349833201123926538829757696646881594718902050184748347246334988534821609534709921612167329018093359570583829152443494414686735010618455417260779960337271739787436691630848662015342052759287751650284737204570100273321316972106299485547989811539858473104349448481046550407565813400192132935702055042126029080049945143354408850958771578412956733995668893252344768604677507141147346909419362958869025555939900928171507647665674471760004299381961516127849675316937694521877513994869523755786510764467352982692010644113031773368523901978086850303057402052599680328418586301573512978161998960943106503963215631642159050165615340960467371732411026687232259945595632660386127273082572039295799661583963995281769683448159774729817417633520407537944901231355111124366212994497578452969888912331546211996264755513938267895841756308435532136563982989614941185692425965661487965270138986974268853206794845009519883975130618527011541392746744574641443165104650606845389124207730622337965195197453733982408056900837859069248737752546012105597272050814147566074198720676597270262695059951945066948469159961167207428093969430263198922546185642984677019168487654385077557454401775824838350810539553685378466062726934787465382754581700752808959252908353140905719845363400483904222068157102663422322436458811121617714860130134736346978807533246061629662224090596958298304512171547064847530267062793725724427177013735084438631298033713399462556542269408854208895019903546311883847754358468573160748011045748157249104173995655144995793422108605795683919758493087765887092270937707552927384554432165721513761723092138954353870044871481361410248762163335616189079775555716180294540804538005541462619493077773151899554572528216773577606779954441108190758704185865863266447412569354940591335035611333867746281360714331418118828158749810451141232438860736912528420143134583621279893574845428029287238499454692029775428157480169666959187532922226819051151633686238943581169918532897459463654902250108700355692950919561879397912583191898068080649308748231731959713103803413446803394821570555694591205154308689971977355652910029628371020946049884372350748146594810488804517050286901031796673272740261504682332658953529924275921548157145025628462781446629932097881063981747067156735296260227399381148256881727741353862375557342542436518393399865285094566162413457306096027060092551513899265235490232345205347893029876366348760998138204844536624387234472513656216101519898428585604453247553293287850463848397491551836359975963201270275761087222890195431511933433436746749149950866674278720443821270456649812222142708778757371621626331300035840475972626142143113250746421794854605244836375363799756278172803521359834173660937976929279907457728825297186014998763685432545197659263677773285593479713653979413472382121884596539587580172694329939840926604117418963421999369554391684921219845364283030344040000855934958122897227509502937186255449863267608860875645754066080436832316665868704688333860824885025523725374584703998912386367499082359519624331615420704963794791713477947249734755375776994472970494726905653237562213887199728391011767226109793687292832821670747700936696624087154095769861481224838960256560476640146116254477580613470923105431540381717326484768480537314628296370498865200068642180672265978732298270000351644757265371632398514281065066134799341047407397607783240412063596222868677890958405813762122450922249745941968979149019644034047150186098167429615512185015827931237976807790133802100133098426008154535636114659084091415008046193586148821941361702667251420247836261502916499103526367844075800044632257221273770264280802640008722400228726470463654247145354090305683580677059027748296739553750998095556684859232935590540014678364179435195530639873978959934787468324996481431273136544855344700073205154403004846563024389613364869565226922181046252746111196644802578231188333762795631459809150131669344626636343772951646144731120337576973121927948563467874494420131353730835408045401816030279900052601915304245218998003835384166977999955965048442667931442580177305159901046726286223542418394455917456184993307514429256610546908232459652457024032508020039477257228820899582127102823751000370515166246619337545865487846049602418125968644843628795979068464203965163998790775655930608658259470506929785671583330289086105569823031983023019456236037682532712097508251268656419798470119224838005868335231120880363615905230285319005660180638000080915235310231060560785963165818559346577269714071412500009356613001245776386209857891446805421532258124834760066121805029374511760335573011292142359915896175745288481956576042888274337654424801739381321424864296556001314374436011743009262589196498468426068131427101806166555453632065941710594327349153696952215445566299620009614842789420679001249337095258945848009958369325642621078411424998429819494896295000248951607106266432412661110952711872288138111962034000224206416571454570948654060269277231675567898915812035861249975622508500474088479836597425679414561536053321691303132747337820500045146872908429930778564392878064520754979781899542584577056262632842015344968330431934713206511946347597860816953676224676711831105862008527106112119323913121342573416551762022979007277872773386809772293745547253648215312070685606780536879645817941409803906634749506282763570023949192830402573036334739453452011057234052629266197598158316427435534257864743598051665611774440224354721161935425428404796324351145301971049186795113976818907669477611020486452940640365176129389893126645226329877429690536985949395165405572902478963528651180547851590604740151720481144065699188107742955451778740929450601450494013620046281425232309030460483553253149411964566811717254529543109079205673721673688387857492107561906845854981020347393217781112188944411450463741118654014498241852966266631093715995667272261482196496796611063326399018375944717856772879362154513021763680700001691606917989713528704121879133112328720200444889487791632933527778570664578870653738208778843037648130624618374077836884005257825143005812794086575402470603031285638834796666554732901694876563112984417911656376288651347155349972688340387655382807499184698532949473911535239380158173905550855301516402146357891310999446490068756654007279554382352241285845807675598101821560104561510606659709423637026690283782943534320277582511412788010532966164162533928488973258038216713879951662454058714802157656611186545120249724668497981769926598481460518250040680313017681902937947747644020337048225717585455223836045692165334369877191594067717152654493002416196191389511654906077325771675436367261078019361190550514961952914304046868950303186581366059562044795338911555637647515887131656807485476943339059625143255221439467370836349397087912901145642262630839568207971895948677386139612717185820066245358640613391188548189472685703445232639931946157373236673917162071635453170261950723402248349143794565157921994084280027273375032811085940002231621627634954567943241790042949653126909943517390386521749773673123084141585462617685109873056928737444606150904110650572619054115767301548966797481919239214052770169798906062085353911840410043075496995694217880635177581849789830998326988761467523300514597666524727909604380035673132587578689990550514000341507849788172313460538425562205901895334856443784595321701355749024200452807147579535765854259085012905740018310250189938297962660610374006690882964478601928388878478755977248558206291244814390395850002255717111114062968829303063485840978267953749861787981920249139046739702903986788695376822420717608298962152609950842193765779792080223577826086908102515225162925454504515264321657035281585830775579626327040647287946524143054264375427946583480352856009939656710735460967905099417765547158445296711984867231592139151352261969569975667566544393082877621967557990769706327516054786894485356827611741601625316911686638906211575800409553829731230001264442016097279174910951396810986268351354796005204581433682881105462757527807462811997162912890921736499031630650880490085937093956052675377576894559003113958494646704500932166631582922589844374214758794614989040552601196653791364791536893390655821848285443224948488929896084647091250982024351147788343134122072321138919919225500672962194100817706509268259792693247833283708908652837012269564252393046902143066298151446622560769119514818215059461041241456352979130675391741521098645730955899032736273665059991679482130930052320757182774560239806322966105667752153874145145967125561598546768708777387790994540432349362446422761645672962892154836717340947902499860813717320287006617958670092072146934654477489602189651135625946233123009271915001362667048929415042215965481833344131434289974219641937518608155398597971386251680939618741724235127215256932422237661957240938596107903955484894087261414791085064880348360159389974402193987135577305244391011085524057701457398554208467755541587138287534368067828984070099776703492958348848203557577733403744147855288046041186117022338679840531168605286993793428983416119324411883100871042909847708143808815987404238420535388144589891341085969177072168084658245863487869426734826167641732886033402945764632491451979588569209157412947829095294637927548000236776543470953591476388839545568697125397677703617510874954238260232446706111821336161141082884934732332081092155766073976328592911285888152630207575368841101094279030758025702369335879689455005195749441047565075068811494677539985111910435838126508118986034848552737773756035022671066091599729490465223921319337583562454759538849889959157894632258610499047775097016150080642107991746433843009243357224396606646841473258155577499110110107613663045720081318411478260374648419031186141452741779212131573662514210283670732978144865659750774187431587418208895995445292459824486703192976469455048215577592092704714001657068806302437999552689346916564739064225413230387592309004911484777681382335721441797537948042063485512720901771355504498692135716034008494387797346182240687808996299613852156547708763322360113785547315201585196267208580807893359763933120474405574290219599189092257996982823129846733939331193105805935408955910088545099024342657460728833343143936663416667608863558937504952820335010267108861578272388434827404741355541368811111610707237641444106930721385942903170878390850779308029982892588252760437884044746084017233768311180971997322358311760346678631486625904408855091643829945769551307274636115969580516840818878363255544034973687035589394105063837621797408985689976566245999645311889820782985011792681615039617697386515982869670861725014289584562567395058600133178704775394870831667990235299540007559917659727681689415319716288323809840333344659202094079585131565100657922013021558358589617963400882999010779524144708139208040770007778150550378002537964508414017855257476945497305973791481552996709079215555960613351012932569553785428657182380011509670392602554752012739137874579006516933902515271314285840359205513278116157380031526112560153636522298708568712990745518106582068918987233862847252721486001030339184980459642413656429885868837425559458944801493062881101235186327272184964738468031910375101608762367582035889129396126818124279405073209997616095867034406632991729248356331069343026186526926634837107374856527602482859078395977137626694121403745599388854126711243412700522464240947471879297567698651261260950602675164011826274404925003814537131479942524194659933669467047009422331110765799537109527506794345349153640176944345970027684057844231723119805290520339238182828495061310972490308613842913541749700437039715477297815821001406163653113641971487419980831806800093638045154676058388609482665932514047124654211155646005388516658266371437094682614813294764717985106448677855608697375475837295411978259778628890906960990083435195686736238169380585262347192856130814156478106745436741169867607092772519614659562835873372531884922916610840040095562635770201999720540659758726966334108150904442717267247275593786214584199720624396129043497001523364328744365647870995130375077181535556558016766701111577259019171101108829577154806302077938760798877190746997820201784979031723806758135254901643200362432062499578583424302394670262246452417269300692607277952272892509762015772113744509605430587146331114777351295668730622983133084070981723853248917481537502484193780659060296121829726333964046788343472600961487269466287931652872823170060062340778482690772482567169083427838003774583098252039386982368598485597036073316346964414591085462452628879742626943340952158698670932310911894139699202095573168210252141238696823862787840448855138863995990556053691353427476993916390390300685928054180283853780229265588048691707225208968794238220762840926476511478644300724253067504560216158335651096432360555081346390973055565191117795787815800938475634760475375221920754525740019665605820248344850021336923344934452269321337370088808295148848222908332896346499096057564290772424290534101412670056091830679472304644847692958619021858312634912113198474723980229287571788899087789275500140935881255017121817625013399946227343090973846977831864218878780239355459727001520015970580803035586934229990807560549481407549998616993529095232348831161277086077281579032609692810080290805284194561894485170700732969907588758958082573573290671294349207589100805069246990006081528266921056822172912338259592575424733730341584788598170400138688733526423982342391300648329646683383824012397942550006683954663066615273920236430096739618046176261659839746523850285732551615336264294594831313080392285060335962300766070064590713377868006482327544430107118486219399277302386232128334736744756198211909708106279224852614662258674143825871159246119399152568229200149928506850637599517389056854036584608952717419712804913167031081540951792481589823852738025033478834439534972254356876131258805702318835556023334519601396458659839036662255948394631206752817415114101317516203622304213018678007848624710595451319246852769671986941322788879169164467067129024255023513767830076078428768296719032640622549467422076512041551950690523951412781402326324108587770968033303340898808315132842709711769606977253643546098285943531229222835720071861853023343489264075880363007374187456589605651247360945843103822552173892509264310408380119677993359278908988113527140752135509142103420593266938682312983222747382891615648966420061850409070963875678338215920254046400679236407865521948350874774426499903187022159256589320462809688050256073415189436538529602030712174305608142808981307047710787184948372090024593191701180949563490011184855392729307127948671098352922430457482427439044961142456499081137532411510635033002401362385552598078327444404291530546084355103105847081663352482763175498048583457270343568610985918793751251604404262841280019061913287690436240025594449001920212656137070087727157102064066568172863048058295975002208039098853459011848729794431024250700707261188168234842394998607335201796014955331894821684274021948599889214774918921414675212201485960330346002933175574039784415662524000236378036727752319128713169805203991240563455196634267020975093420639056815440623002044875092376820797914248786022574643088418056861423561430148647972586926241006501487712044321666085692466449391924742616060618659049477587360305038348887423220080045818534828469650463649208950646118397005365358795091385072593724918633694460488171541478917511490367225662736637388663601443363721318370098208110707377272215040783978252654887236566415334255693060280750537311277317644665671127661391706461590752130163496745292165303843026077447327556058155840954237552732489555022144926934851514384924099425447719543671998605170992995070098153155940655340561215385825221633472778030344939602967859815323035586510921696637405089305619979130652124368573038297611372347673580802113619568014237870080988891149607126957183533541131088157956500121713951280923689232569270117087786432823773199035555571497148813384506482893261895677678809701605970376793586165207158285583312382826224573340240964720818682326723276611901487519492474947231075572596493442508806831864742442805585469874143327422594886143830527265830160527565058268214797692636044766112071048842458666738361499428881581213509948969942017431952976887295813210588572280469656455326833635300495316878753762375965011322244765980821943055187897503071114161615690732909726887909285700247056898066808000603821515122783495511480900646238896283183287322825249636382565349955725390482841486788806920700151019831526500856155343477042603410578235393755899419520440154232636926078701046424854351129579558826182173159034073504692350857253693942608589523957593711194116739192812895999368272124260445856890640540818174768904329340923305411903661797989234439631652281360414931518185121994499430206618650405824831425231825770712250272235869154599678965747883893693394364544292507400916668634103798531525710944718004368614301131788766151935518464876573916818363512796245776609361441051026277898787449593394990909355304583346016399809606669480314635204375950389654571516849640590334725389300265471738230381267157299539913095844894143149934140124359624434142622424189487057591049392996214516812767629284755083584693692211129411660510264736793671488720750971981757678779471100744191735879375030195929728496661080488590953283427952395094074067881091881483273010630308950715285736854826327897329145958479388964129660908236308544001780928741123043868882968840767250274866009770625554366180275366440540142114777547758704595228904735705143029810214295296321697990089389022857929646927344734060165556218894979482318085000608906822898311915421479604481414230745250868775046363158346622434936934152779973212277508839054972671381427570957136333086191746578233066569541085578612322059334308098642193106118240668820647980548985668960849261053589514576432273875654692209217100943559294436455943535865983261033216239997792636996501236622176007853849883077226179421490519545857450056186402540713484866454303086212578584619576348449129160770805462787262589520887305344378406225645756001034362616215890827235229382527575963310872040040364236629926258205426247954285180492070499117020146174367850976281736063726541384784839434262155839145567249351710879668673851821403067148850269045401417082090378694967821103633190869696293200334791446223466203122827397258050469201872560741666851623026040028462950244181894520723152560412563775676565120602567088003286843344971460333794405282286376433438051805001621394297427625066266402807048901938440176541893568283622180923529939891008450298078917442997832758454654542219935659526759448575036341758768626185426195404786029604526506253621883348186854072354654602481247935817763004724151738196050730549387059025778134021559792852906661015035582549657755906860022769466870962162037620085143080558235416537977124276696974258050954348409006943780422841788444019294957211175090760801161513305099099774655268293623647930471277657091642542309869092175761377752122836150722996835825827490349897377321669635976566303883074776494407793848870796863124733903678115458234336079676988490093940975273058583642943061376280772061494732227500478083858958504158555593059274871922968525613818051865043291722700430018004358022271775159142370783358065673920613459649779970224945887434394848916537563542330509215949776801963063702308342121392085072459177844605383550081501753939235580187359028763374330931904429184908799831236205100119069853054584414109935976143213002625483626914288754535873715735794178497515990441451243184193230024677038019222808056478659698109293595572384548989363251637456896913928870694806410738492225253625116570818750569262033169737260483250621760798182053114322930039031287095407855218588021330959291221592986889713277329687329910002715535350629324216948460036202595639734234802332739597684258168540799272093882479866659422743557526819145974685754750216565149106833793934009563776224735996087173566613926945679575294512281891952432358933158281156580845524257546409375224764827905244035543955283551046636941232627677169239797787395368247488778768952134470358926771836181344275688047335086749131685281097389010113558744594120161243563421586664212914724203969939233008270412012424806464575691491735203869384936891815834347401046674020650534405603862342948553789833713431410460333173976556326515738380116962834527184475096567051552250946403399250226255934191846122787234477398116358005556313207608825518234354368708769373853479489677748453972517340600818975823074316491535070511262118096965807179118584788752114406205852688905600133035598642408253086040178860429766048494970415016841597532820167519672723323947746950863300618122946274799380582292442738859761470150032370599480396516853710719374032471181553428535124933007306709550753270103569111158255123136532671324172178263597267662030136307896073419142437548971492224542090899365480423274281733909034873143830766093256354207560312593453756373455691338140529048152027895713219745938646396836674331938333518681547249669942640368829253876650693106206042712994907362227863834932968320311788790825704395434382492332213841167581243338939008921817324913195950294557534233220828085450006136838388815116134040811801068112777255957654067915793879660715142250242696518559571813785348087044150985650539579961574441393896605092576109752177877851639110567305514895502595999569406789247580913919289783578054751400378994108246756979590895720201523238286037758880796051990217261424761400402802995034966785920532562117439888118545546516377208502880068275145472930404879823279268128736887646762156451728256182393111938919415405850340640472342640479423764417557101149895247211931036817213500215016313205888357157704661813051541053418897560665698555948709693862111883954997483178120014011335735145874927918814156664602170571143543243229444094793605157756482936586362281861054172079042266988253578391767080766105788080883224967189552743223784903089257701953860937964010033924171798467015060944830704598215191873528765688774838886564971777582216920088593471253383992084258042841785573553735254796045747285491937925882528106322297043965639401292924533127266847992895493318170240222882089410801681134181229296303345873931357886696006984682084651270232569420224255227685303896546752822482046368496839838059764504124181397487989628686192926366303988467219820847250079797651176121218708775862673116232197360671146892393791830104047542956453145042495838090563328347356362972250862537217920488679679661913831829307028363698477852686232123251044590328509895705705739145514273904994378603856854766250572467052767155276141694489534503044706330392556131170756704435960915834343366836883245393601760133200048319304741322156953403206632800908237249913712076499915885551702984652159979566144458924227322179312530412497194249812059313240074752622844507269702506498459165455916220521761490092279625574987781607674476320627669928132668721692036599941114347353380176642141926080692022010782082507076605048355480664892434850516728593469589317721603068369836704750005089054356026414004800417286841136412066759696551819516281268868604811183905841920808593105782927645982025183389980516299659258489146105739067448828972541294766570892806341354719997455031485122009350208379022802286665406693000397704182069012999972971824456842569929442890948612803863665979758705424229047302209779334334868337091165954843343478338299683386916085989998454380610102222376386459724854112099373938356273853374127948804748976532725855456517010838970850503078717293303787022926096780520488394831999564324807974036857336533025735353801612786964765866556596509162508793792198646113863145849014085847306490789610438938879744809238701297793815496210575036735103681078883528864326036619641983154425702899496453441163957336218255193720424320326138864084928854424764719402535453446636663534653667444647798502753757566525320435855441526663476992176356247983833229421026151295283045428985358063553367112926026241475353938453916550128274479710413123728170135139688807067638515667926372035721040050123074941377147764190446875909813913524748781163652509586866561221678253152870995555535657826971976133206376686327875615736361341050393869257639437146750830636753708350047359194047799287069918670344613336162343165891212253616340763270452088322358651577158556036028801792711003767256102947217539045506039242783407516809017020280537948307166592319956529010488908487928555981125894175126141603358107627925394930537881365751767750260395165058380450012229127091492068674740190821217541438391419903686782078206147233397422233327842100356020510192301607930277374347273088280874140811860889705475006553455789592959311046423102449316376143879820031071619821881429217931537947511244797452618608102742055099679892240187812967659898345532780321906571312082610249313127289034973428339169989035973130839965468650402283596558830707692212353915969879896415743808255523378564752168431107851973930830238517604842380737229875163586463465901615195673357240042851012650766161151816345083726038430419888634534907994350070176748529796074916878132660034064734623873547604844774423476061148189072579974209580794384328806659525069522515437734656040619246340098555363289488757919733509586716671139770752322835156816819561041584932155473580780219363792957043598964259150220486206557248746798795579434593750259992617697994816922958951399309656071932196216676097503071781246066679227818618102581388963370819829997001338815612025112298909154750960356789220140078685172080873419978642387415378001256874933414878832918247356889765629936784924782585151987660014639215013938695038940746954510442220917835998073869329443179544475546976967346685073753816207473375538709343176361066010123998158982081183614431770839780397084158035927775083462653635579610191667386721497981940235503722260002021467111634401515870314016335526301600469829459102848788630399370867484576789284856725413007078985962263785225182285854588220479464479851629065355929625760314581061233393770376581531681365348336900478343500717156308899763963919618468931359219097971589951179575421511436126091158764213859944435842691701873554868921568462086339780794892532622490892444873206370562762046974504057210177177710194667783447415922088995389267428521751533257603962026747545160724193971153182253645903490702702969501029410276773629368749708121601318958253069014753869054589733069132178631480057385719236722525200987793609840151713504928956120215030570252711442630585074533279585881815109358360402819580619084958662599314161854516002413158160971349708542791373821221217077643610536979865171768718405096573175950827589418290293987945993683914115600044549710953113821244156433054253175162058842758348857491424740078824288348327881166714983171703289674261840972044246982269347921015819577502564230899864799697738941255135834784180808156147215161108813459523489292364055752614744506625677486843484538742903121144143910536120865357025308206435868402414837386219509610669508444958469976853061815711878072070391028058647540167540609200845210517229174639034217652268912340539185863890052293664910440348805429664062297063053831314651369219283578989828731596145110451485322193916057344375283262950301452196905106837217898625678964613269701108786310008424570093662743821452438569838548247537501611073732013327084943052601217574001115268150737770829556971916105724324915693228491191034327800486592026770094533117550021158275398670220832045933399354861862656896964517667524810235143486541866445781907003446695748868217657680983969007809738553140316521388521904587487668229985488388550140015389132425880478932519759643747692529048049694595061802707980635429055229568011642087905061054417225542235123728544145015103582380294867829810548958259152021895694309965272296017178967661584990513682813755333033722094519517505772936269174355463350668657478029530601244914790629430491610931186524911661324392334223773840464855977718758406832926132683864530192683200363487676179066604653502036787168257196873512335694627601079948351784117256971269154288054485557227964553729704130778927012871802389415235403802636137582302820034942041479358969650351074404671482961298479149207404596488354076158568668108055411648655993539078205791915088795166760000887766242767862367224839508255628360107232593338295160774610106896813847541383327319007185944288926309486104030056633625999065993118722356904207802980640807939372828704038609642865208823739433200605344892156874176384067821166942760044679211377962986878667308514907822342374508083206182467663598988947304309475462174054027505096839269519887070091890257816463353513019406405180567991521916049618372978798458426511674221324295874848182777310742176063051404682482393856106121618466070708079961932151416872188658065439457639562620342216273373486195548761344630082017332238850876836926358832851314896405026048375571377129875024103995276858530648988793540257163575384452916559845706943512460449133363592722007530381697712240054360618883424173772270332077340542822819243667554928202498436154059421820386464863944358235421140015792048795648929001805689533343885371100940744115448843760570755106034815529871865205302552365390168362370750994303060212094779762067728117423196575093555326353742891146300972266384863505744867145218637498707200702426309600580222936680764073973101182516603808962175891180620267743767638939571064484028452044578589084490165965176444637726922236704840805624044903020490563740286646681019537963807176987743507643144574712053424532735974854863133757806178482950690069690488479191196288412906000451550100492151833627439714748118195074473783120923338486048022337540348739897577507634456010437852598226176312448005000991679179177102928771700368049273015773371112435857408860866842143973756604239443625172139517789596432752270451681155643599123740573146545995059201766964174658587433916548040418139850072320693533116851257693548772654368206712389052293274625878570230183174613722652840791235569325673135302692601300601419641854270079807359735976255714184598950654929520942374083147443807843504071016331955277265845622345798721197073993852182036843246842539757627602335538759924301866564470079673459225430118987514374100729030325601922466602364578846206291767684744432638699485689349034224979808354521584402906357777707248831349989123764308291519346682794335906608844102699380647061796842726572769434434252036805963261045380638443132614953860652893842474642036494090983920578580160248979403142186328746919145254781159159285062264504299813306766603495826234331452936106048894020554711269979749160916730198440718872747621890371824820540774939074991442788815172289168883687046739346743363711595001194849504051856655656036553121237858867020551318595417713276859681248876351227420510741085151418112320571009832962746100240371169500554613257895673399171821803558734178191534564236092803809817550887883587941371862971465327285985292678353811662608180921325746254750341473376097180375204049041490644146480028001930416772984179678704432805312131066003328901823430240073553963750501354031451909637102128134811258127497937893849527634131378345159629478396265251610190085073627931874271791504783164983700766092557392815042524947637569143879531609040478908792114544278592941170830614568570964230102422763395918121387771567405745214533691075277534814621650198807976869295020368505449804158453760690437307814219522983602268730237696114429406470264408720976506719367103039818490704889333599804212089122682408999307912898039693930691556644192790068537407938647535652378056421282262857158134899412427838734464471656674305485138081542267847362483982357455865841678183537363926171223166068933128209019930074030339093286355967560660744582217037087350410841943318753623086789196094923775863837342225707089554619952054169831127088489443821396668825637728303466251242572464285363292917481156501785368325132979337740984209818971442822602389221338145644726897195757317801569524842791080104700477511242996456707332254509600466718082988263736712644471439483819537143542989132245781190600639224475435053285774150025296943356981997340225512636209597315559036908724711431933654909506501382404229004114804956512386731224058797106974850912199413835321897231097471357770881736925002767148305518103563200080756842607575118723234539852131369492888541023842583944068755164229276544538542032674459744770289733612085289932468167513653335396760136258689872433852736187289560376733934123311528171858996474738359085471444259975752283635949072367775881175246555907963743739449548976893822497631953000067794524186956409633656253235958895108740567318183180526615491363060687914362273796563184590806331216050713997686338642286827340258791723939745826884557984784502037705463242334861808776932920297179568771255395872277528506035293630130293586849609294493915021138511017766005858705374704747702874430420438264266939829805185429567460759786848797123798745875144170525429942281475348493401435383613035741191526059854657478945192120748970447625875877023275177069971024572787085583606893017009480488594379317202424186202608505330646011436057175531420850083366002221659355492560202878076778774431931417414830756795205503171011508573060631188703753771888169409401154279192367248481022147565693668311699728876716168802281176701993718959982861841859377245138678499821961842865029759917574687432331670774826357807377642192630715977800315795507002527773374179360101019191084764389461577679880480059583194312775542430552408192067080034531297415551405527573115428578937533210307062534373417298680707098269853136640160559275893649768962232076462999104588889445324564154016426333530171598966858407668947073223761138312370016563047042435445802965509010946867279634356126619684732669868799080030948794096845231980187812640721970899740051506940944041836203398670397875262794495238979727392841613665525718152390396501061812972920972299671907607166072399154432282164245780808277560234015388083189109380262517367485588047629154006543132563380101178187033276579964810845210906529942639975132892440996929864960320761276829886199608677315167048206727619041777241351393564612029578977866262360512781937121347835209198871206625778011925315502581899734230210018445397688940556925780301622388581955056920643138489296063173161958126643009059086748905159599219669503916584117509952993080389033308783207093372466328967725996429975827151632761190039880289567344184477175020590267432311993336576034238374988775988169527216807119451032111733652901183664797363278676056625864387449306187256658171552677825655652461931589445099574776770328726558565489204221931194913668643006995714996921769314079073782780598502530047436560764776994209370754292499582555568542150874526254111728598261474675043443990034173185763736053207004365721799456618080623113837270073534595049931397446862334980134112328415559043880257304743083932968661366732888010352894355013338837919943516160413652074703381451817572045757676192318989389188893659127048729347240524583712268986060609400918484882758613939523395581996619232257823413746242117241575806657627424098650121696562387069714585527583601865161969924701055775761953503326243198168557347055183694369606707483751382721764867860027372251404416212833160129997629638369294923170832212583544098258865614992400293536197634770799281091001618880834435858090647231427147910755910234915541940225298948089532043808227047444074641932342089554910362260966393163665553845354819076083935063980546444769966486791722703100184866534744315225577049181843389965550947588706298709358019935465566488912052492748320012591511156756439935803918504729239200384777633374252448914488553118364195838149832882006277259344182334204226034373810346699050900908388621635186794291839134240194957016271124824759015431128447989676478723274238883526671745880425898339215715721550178573977278096195726221553457265441804934864638844355538254247458218918133191553671885318324124102926195190391466222962905692988619043549200411055453977412330786760538556734499033021756404631464954021293589509961143205276702480578499736193144714970570656713911100725044623344754839361018670936348285617492556925705965047712571735579316672915157365611532194776861092819291198665145863579544918067958529003136974633483296596274230522149703644247566903774177538910583730087121473141191195450898570379840588124433964848745253683082473209616012166081969187679152647206923428302310192529979210269230386655887669454253947581954963176443012339085813055710395753631115370539464112382534143564649870642185453171735959163518816711032721056495050522250731012637954550023182780270250968385097140715221178560340413996349543072563557308722993969043066361053624013660009152135888133784808851117220200870600865218918707410776119685948900931866381587349268642394198434081153600923750622715567216206135201859323907806835511135493470364035603235629616603948587755937788360004841424077621244258732853755805422737603672130045433109681590325888658468518098137770824342746516083165807659732137836713834222419634573439069604638471597565079177164232815442261154253017714849122659872054667894440202464022441211758479833037094260239287380989242833523800470283447691033178135519638476913264518366572475919114110897128928719860679776156721992601378597333690514381855637976003269848570604677528339743761258889361136658592108984740403802265724610971837445526795814883309025962767950261662866078706470841841153356913942235225114743293913752020077380862387091256519149396577695272924113690067691358128083846583780922264145730009642489261040907158878652553344780158854080399657203000970680172532956897632184461429926513386768237268921625925259540225021301624201977250884442358990108915103773979396541925612245719454861792742892395727315254279726953568617128274190508222207901722203311581951980328227884775949433788363009736783585798309573206649324539908391417350228782527513921878929885093747466024373354705555995229942942722974918478303004807054002725066498645469579523215798219224482642166663833462731955399802221133895087379628768107771793225593695906176388408601033950715454889832156762331610635578128295820745502251973035010914134329159232633499490169631648494679347639617764564427348925109411192735873202421107443727410749977781853228616468016253221356446023257229118314413223736270982857353095624388519587753255706031103329966148159857545991973679366327334800338127469171005765900619168205103105358472150080573717853836251466170374916482808965248143463455571540609699202584033935525297057556972402518133891395961178461440641764436256719842114397921401446423905602026719003837415128678945040623037727082466507575960209509323698646373218516029566392769335670147254315883764754098544728369047396705602612881327157329350404454189746375560501076774135063063339777513219023915816299044717678904067465276027381770149922040099213289234896464723581396310708566149075588427316311606674771075486412679837618350278580567707632178824743314631451330642682103979415549368908271491569114704405774506373316716345023640653439466018774918470442093609006220378269876202797831199041593456530121401729190060458501395954196738512452218480223050830994422955271637805269521936077185560601288504327720568812187812607862723238400465676417879214512068990932317813182664618220346251131651119300089518509780593488446691481120832328856667854365093186957761720827368318435405376367981507421552065839138685425718596943849657289212973308898024247905138818578924976676825237114695080363102951780396988622479626401488449896069503749689056365107231866979406130555224167169586214195502060237501677881805545298949437674552528369830305131060417398012856416050105957307981367528187492363660172400587328230588788631371259428805844461009791828720759736480665983838047304202967487132792942324971776151480068494778222950708665225818657689572842181340828821656449898637402826723291934399969259156329329011942166054612386791842238207143027818388819559603089067557637575122519575875254856920630726194803348652528429625947809174529793272709416053716390368743385430738458076309743688439318515578355510250386962153170124827379808953579041048623174647028396797941999849295213122688847360240148425173008440982728133669277258422326922995563019669334650092745591334321164700348918583090149436998358650162611177829080801895719853013879417572798148479146027584192595881354452956079522863321686884057569356698254431714079039850393114527089912008350693119074201137149063521702243271811407717899361425358999587231991561155102034679769894640257221516686199744562452345472800386869033449292438873853945494505919432710456881377171074784349174276305134168443510886061935142274455046365216797305133908215878690743531307124358297087351701491973310701736929743352646877747886115998179463300841858245632853960158337690029844316989236695422749853962494107982090129243961549539003947461357618503774599349744147834496616204643862068304994230414499422314201844768619118830320420323710163604623821560156381062022351811957791523921890876753372436213001253541467989618269460706809342920162942805644831918522115590242362191854283738210264037452656596172146870759057024808447842706196035809128875695454102517980519900007558468114255903182621445356415740079808739064457357763386154476671590866982187567957617989400176033638954773165337933247954121882924006538343929553455394269043561212801868506394720301362404573692875962685367966382924593927377679383355273865460952672647265829225882276443965805407520209017427286753456305193797698274027207580106600875756610666581000499628151094740469107253406209188379021885415605704664711710692781318429731225109329744108384170600647328839870648138450108948338576338723168031371696447828230804861164669844549503567210679088122685800862341315634895604333126048517750548060337886497472688489516706223075131933675174550299801323216995641642072207065710310845774579444569158814864720936622662282222588495996423026528556799590397788024812693648591947954916048130521296169413615467853496074592281668740683285012775260869602850827520178429624353587751574281578982632627395857350510954977386465987285531159570099474803515125211296722022362325482990203682818072877375016384690601177555294763541808707518341795459249006941861383201677781120147354353788343270058826393664730144249704912886123281502154615297609756557733607485564017042974367412419887104838708568508096662235064804369677708153803814461892301751646145278801613700320261184754019078233993359440875467372575455325257551394343805442004135745010814678198378087274523885140199825443854943697338341154507120897451699709669639636687251612422001473431342025493538270067800828236977694463262114809932113593285957294709827084782209303845780326661331121259872394997649466734248801743051945577167101776057876941680522362430443783639615910464721270221762895406527895911855581506375214018356932075850632695781137601129599075386710669040632247508878364834804709007534723415555898028362537524524946846933444384190989644408267877911355859579036099321308964801456229071475525665390090326211910911362491803317760334584345870857307532479916599736910784190643377917572631804434253597945324680025991834098322112122787427910869844454795026419867220007944445242910659067644889126293577151250386219422417626090966697857869194811626924884568579956583859681825344102835283161848100153172111421244152328890735226059929738167414422600794283320604483456924112801122111715604777045791997343850883348181187356592168461265336455216335698052450484412035399676735107368081190090397357424492661988620449995551354485217109783609848405951752141568317643906609322976944300970509502718535939653539296952472293259309134485445853810638370576127146045373171506665682909517706474298464618850638541315490895467122520437483146479062001100792325387493340023299681696308328875924238114904471756985041971107249940711810444193353925597304822916990971862703704198962430648519716601427810952465361910748353069937122702097958373293493120130241608990644707410962414926717113969259500041419070177712500950721354875870429176213742903201378795163086559875660785585562258006240385579160623839396836406328881246533368394004623767308248927464379025040697989227325981311312947817167904846405472032537333601326923424408848033865898478699748322340380876059727572037544844918461475927076523779197040048180147687011894907925025341985432597049053422549399961147264285457139286389787076515527339787838299751627178863601834625557058317831050802186871986666757200035529734744667389629806596551144081101979915858865705413661586710567447029518985995913683110648553486240402477004661626325494339255778430078751045991368154123280308445421561285371025071606741875269280298587743247480984787468559696181639799896193527408326535452718131898521728883771063049673745742818115965817740199373425539859097798017348885145307455733356116619234321506236562744653137604478668169025691565529184946708066870552511578614127869198839390879923383246969569359177623185631571039029342903875461843707322028981411625545839136003102249081935860394275971210146707811276950037235960314612660207543769187035475150367179486083727761877115662991896810427870078064823890486229463119908779061027890191707117586727337719846108938920180222284755250700484296221449962472432114992857991654838720321495684819179242938216938357073823119431824893356489026480671550714212093617504195730238844140216705849004470140897688225174063687475017894553189601720236933436993871099188921579102818199220264708797701710445914679318483295135004563880152001850890967382963930411789171656943838578395648281518060453200790781749291990134172987245220822895573564356164793269343983298433351503450777642556932951157094451383974207438843019749904836249245174148356743809487646448537081305831303693297486127323431203068470695810345178623304840679276650754560451754930118225180262188496035940309031127373544386065016400808563727954513546115235015915130340743014138214664157153802840584468327339081988476576606863290196304711251608984839895070056455885723833866209674653829910219010964540119962581122057060772085769294123158862069996727048047806110746556073584917743852638779514655613463974065366274513816692491712461993584779794560115555705722605890354722517562343151152828700814073576924937628722888682625812557282910049601027300941530894952737114716896629547412261986002457935457819306770526321701777166316550728657968627807285519016303680901197772258527982643323851293351903748003844655588679385107489139436774290159511518932588791393127341200841805398046971272314315128578919725965015727870880035295410652719465368566955165845813414343562648979051117491164194518614730553632165910664089617535689478701664417853539158940993565051718455074775043788831283470531969034844381996507200689630007671826721543578773146079659332011969997234619265845472892794347740467560601935852128328776884538846816925351743842097717662702922162454542522382339499416258126812365748018459331983333693914530700654182633232070054293956394717874281393940164498088213534702561123845368997241743434415910295704308875910714869788552253389794070436652718812361082149969890535044467186720251165540801110729123724609957764676285735270197631574803394577573872026211682078013702183034257375543369423561035650110646341716370297074456666956138572998336689193965417865223341180718532072488765828070895661079878316368369243454889216405222882577266295461628048116156700026923740494855250587178279668862664906433120993170218441891835794999974201296702656853371333213456580002226146242841748924944706684466973009964963410246721470681647202560057279613472247333518141340511318831861543703752984033266664472528887384145004655519327914973539031961025106213515886466863202874219879508221723927316944004893941553595722607537887989792290148023262535191887394834758276025728703955912444343866222927471921851034663347695133542415732446863727905568805011712301278035263950865207234917177727514432545384888530027362573210875540791655675427535849584818321818149635657770077878147335766997828715391103962187747597944291114565541963502125777751000641598842075367106658384983406941775076462725203177787599964580187757161299051632161009939686222606181139597022609683055032613226253960674956313469013371044923155632600711505304067076832022817004400114803079227358511529424394948590258472686295042179677273934768865174553624224463089058135281478167115768700349035508329319951492135846176586030226845550597570838220348144989583188761927486586395633930583217424251409180461514318567072614828919791804365981933235613057010960544895672808281154709637974457785517546858421999283864278679607524637943993366608658236053991922029879323090725043103460681907617306565615059554380647151282047634777170073190547721855294590415448899719887077371374545072570725779397389714895630849949635110407101145333154009640769402357849132114057900947584322650484921905030477321432814148018703924665917606984284262588511812628716035511604823343623534779186587597625349592865261625130188163015303483757666991489911132102619633827304967680544361971070567493280900729247363606153592472427071778722198213683870746149586877205195471067367227629519948361655168179627671328140631880890319707882639904423966278879143511182142910376983372982293885338643605907183998533424942014649718763652271754093195007890218833818730997970053773072596716532460065654169648485806877944946774374414385517070843049683495693561692363318253497080836379073487616526636861032231667902409524791672948764800632713657601078596203660858963003071710294481392344767776878287064973714181440965663477174247350800769223529449536420927895837980800319289576520040116585260457765845641222030999905455141498090784219250875246540040093427115133369796247254855767371300907772651312979062698326870175487601897875383411576204175577962345779882736432818399302884216201266596797252677518032646525457987797047442095427233452590939802749066972601416409689654868747756730762517999120604612517973506133256564463254623653841678631704343328143276702754481347543571110996871904967251546644103217385474371013222997331720624685163655225348249110924838697487560427150889495577758940919221385669897757649080464016489523822067565736163640900783566798538690796130338434198010019322554000765494206742095504307430117958233978803253719807249765503685798059967414329666067465247543558490414929927355393016235629545296988163465428094227776149145368721198678426003988275803780394232204092217207556991139420744560360599331122841067914975014461945742198658857162758146007364132976832519022469899328292803071512478281015139448118102823634186104183098038962676837727047546138696953446267970526222163450405025226951025716947332976620687340004350823415177114260435404496863651293219815799588793857241353075776209593499100730159952247387707100601381814660957744879295089372949516027727821130879952998680988331957436744112808564666109644545607420064086642028123203674615813216811067481459586741626165654098896648634055509693708937990539452321468945217241571592419448554885867938233772917357385159643983644335671433054043966041976710300669391021962398224052135230862061663472160862835925202115194592388614085187419335448467577846063971930874121386626869077573543188217695673672744718371354578968772925759168873389573980329603715842521771194102850447745479562919129350108532821093136826590750461126134451161968657265989559137435311388765146913425671696551973847912194183863285269862730633382278727486569946584267902729403988607757836688529897099682376577826286498111030466896875944317361690027585140064641651014729725510805087585148974905787220089059171747020664210524425545355498394303100650363211730145986190209705068621269247423245004598609564785070513356152323704747966614567735261452928537531982790697949093378942561506397310567451961230839909635054559610682324505567064455171009387165226365223466226650557370664365058718325314949860168126126353095554689526578489241297249007622622125029830345931436830075739854543761252038536425430966758747577427391940999024570875631476437650430948968482999892091030439641113825339230529826522711992468541662269765607843206510832173018814683418455743522571767170955820189552301824269967349466414060660253993260806573500679442693507646351386418664224663474902306582075058104398840077104655899265155928650696674590542505624200625976170310333400680593454534669862269383425192555946147238563613990499452469567680163434252972186736631705048762546253765982647927961210775663791234746377365444961609261714738608199000561507592495058637082939067303658144682635966303547955693152391400165575619563053893590217680389001410290222074267204218544130887145138010686563513408289842944731277648376601624935872624026287124725953437550728850619189527534545854020896707492082382205794653571882859314803621589143583681653446775836479610735428950050559409879866243007879074465290339905668887612156638129532304909808995007249940208673067537512075604712153210233228851527550004545042977105568181384028402093951600156265921543728269451522062382867536921302008329082274649907517252478091804849166164370178709187410359814009471065418983222201528489131934946537314702827725758678295966928790553104385555935531303241305530522272061231992873257385321706195473114374857373003341728042222986529018112101584423182593072563004123444570967958633406918603213850892778763216160157953203809786925813890719926033958249639689936481466627368890847448683777921736851337674192343123566913539815519991335342241738762882233657097431651035229157111556341817400896647499812292753446589557785185791487263722399685303576519603113263466549835429525672810575261824068430032065002135527786518380148942428039143419695846561686421334511711715666842161448873535791514407130464011565369300331831688516053762642774020580240820352701061932115132506434292915933591348019581183405557615940632166462998714924563095329460062990461237131054383983488901363229136801387879398080431798718044461178307702438494049017071210058627910389980722794982345369295771660606235666621700329289715414377048880887143611446983481676027425564987506916274587011159983411422181275050300067913140633478386092716904953706252108588913787700618430276697130268184009548564930312676192117557459005022837866129973456412107257080413371404360741638808343432201006003349573959893177042297691330050233939974899339344439585089915593663886938337508233967891499267365268703506743968227376117288333480439834224388291065561332201850411187482063598819760188176860147666039153973944405055791664364312849138998813073046979631593856348029682539198858109906345629502373335727882112977261341465506835843084363134085747507054375674205409159547741624921715001481258734468771032469222889741831036955927985843090239601331466944611805525563148298746991798665062730634577761537093540592449249253098937161492674717098550983608717509899046359639705724425872265259288276854630794331702550183548079313510984212324935523044252607205119261893725289866323975429726752443641887030586592883935373913391408851084152775381451581371332386567346453113102874736364188787457773810217966847111628373977456547549805060658940597395798410690172953904732955310030459164254110487848265776504234506803226194335694017403534736852528706302508924015595360255350014334460295166259965295983392697110852108999602125156627142975107772455713013766664918943160827637129036289529108513993651818779149518323562628561115510152672733346699578315421833225174669177672162893110451035315332186823718628748303500391058495485896515347858431779714532178537024077910185801265935675230242267496417410063827468144174231900228628863467356072324758731421105794578377949422983839502458327068860393520583929667928061582248816595522601039123876218995133316385789104841542679612629959016364623962923348559557414264834946107363759527356545170601323613193632663376499597678004016034190959263963645615500674031557191031299992492091163458870444679380329095021974431073697213166813057077165896757020074982097350889125297587793171906611478045714032565866359280352289055091669615092468122996656113740418918245529849920873081036888195787705988542704569409974465828810890057526708292292325562494599087989906353458821212963318147073846905164915376398527732901505980023298260703481373669237029705123270623765943762423623403385516922286621898252696318359039810584733010346812834369236361966602775420298258678014181869450481128980042233159274272320675799662231641253670386521122175525885103925661966660523903669467710347785333361915919419506182289051918024595258343428485970733119083550193239236943272849184733113050919533269763420556512563878756011894287489284950970712415587427944776214218397485400090598181143337100346849715731850928627817688318343765611784531257576722083160914405276389937984008939491558949606215604754086411453880292012330800352419462925622154906266387141654853288970644931796546720879145760598846983344096965172371941407806440640661738587616989984740382734993268376988147501403252521975835795132191054578311448147756807236579541115234176430595382341064753795270367832463998648533842571821374416002946086675353859383736671018887865156909206477796863044811584961598055854613125618731855811249237239314645045970293615237457694774718539551805740380238705272310947917429264781995291810217289658695140959275737562434957974507859451017228275584155350977415012087715975014203729995898508967549111542688398496492594810229234866263913666252654573011317245174813179119740190963109398144196820104207427988248151100847974871658429742596093024152595807168385411062853895985612856824214429463289236901773312132399846776803771063200461054778781754988632832482493398164367335209104880692968687776980396933177851255043958796994481970268033484097325038456080598937297312079920843398670692046721167690745737149552417585947128278035399625509542139330661323585354565758937137631144132876029412019447803792371650810460877943317201173721546698836434881698176089735004809574868632202706810988636263574049540944828468433901485097964535755662183464855498965817442269698979468120791288671929994688787220917033065028594247667246479988216932473935569219253837082990487766190717906548827530003424072787381647385549878387884839149991352214819560026534701556480460521002969656695563451210103360070446263672654160368417583532513722151816961560364652434424841419563418437207267853860325572822652504811518824754542590705885771878643228207191070931388283600593999404678073540337573863420747377214671759570273918074979968009217384374606037912366000468788342174621750977817843193989592014594903516251012068936006509742663134389883504024669250992408402865709204508572208116748212513059100924463434940055727686470956419348464570247535351084069189526245646331449389194309575530473578551868997943254927423375927669480205874935958624198848405967546533992236714560421259529115262914747216787422048870645948145881654806128362652535049772325178700870981965680689712606904788344554667017179172672550108662961018519489581388278411308881906024570014084363379927900282849575105442224504799091106454995762771366503522046728685430940997245359840583680565879105828394832121336685822749443859910559355629699575513217833034404110972066060136046636191808538569402931448172008584646280686210050724436040347326130969809764686091483691808292239692789446533220753656471075065190006715609677842459052079785471672475798523480246676313724167051825948360246643396045880522436641458453004285831204011486320160172240391280768046778729618207924346282600184709058476980758974973304561618149056670402322345001129918437964500230985565134280904489930717660512520451033823033266612334705700273387517532744032516243446332038107186674086843942073385715584885118897993717671106546794548258123754834682617081412466278552376552610850954945129293059773161993040924566009589440528736965396528928274030937173382049682306076758875281252685491698156711944168998438818556560280058079083760576225711573991250675136706087557310354964337790180875503048794092031625892730025599430691861457610383528971214125193439544824791436722879700552026559688946755589262222776509068582795341963970069364426322365450469773013291237909558178118502674964188761173554317871909155379837003122185978648236189512326777459942701526538334567505429935226811274145692537246409734558767043065168567129680146042791942117296060685377566504503978205383466810354377651102773497088754966906833678641873094971183541722244815137029762271271679508591703876128031047929802889241389263574640492598080611660204886200214361353923222662072849193288120438467404698660316035299357382665089632353928308372481153827483682343885301066025910447197310357633334975435997611107334203978564569040111460085996062979361881215530908340738993282573393113284763803642218447125500892992622971733378836655654956715253045365286160519130422901123029612608444794211486585584110396659250262964645838941966400953205116516535561887813413635780830468885585286219058645896976845013977616258931114692812790540953970509152407277452373191875364497285567030601465521884231495020532955719108413364747836741487640444198324609770860503165046538611964755767649824528068086529699365653891671411370730068823476303540901722068743061816466749582264860311858867757187874722601804621557843975259726634685060828953492350887336300437130467654294388000383440422417835548402396032801171502008211295893168037435639693722149299547705873782453800463570965086999035567601427595584491268482234651245141592425857522114992322435886399856205606704752660533432295623700929093903951507974660750209934498855410827670658892983033061729004798097324811340867978073808141393542255144046007924610332965004170052216384851506322675213574175727012960081628764351980140743398855470732895478192200538758180060728863015755705511063614272229194503735384657577218573010644669029753492217273212984866819067834284276796945157208730358681065196805641774623923057257059277616966355325641731550284449637240984344991742284064783374363731859609547616788259336164290711461351390584922658549515123016626559193736279683046791784739315181047164748352104411925280553350597125412479038865812661449111400838988643099818716583408904395244499291397689191533869926825365674688801693586089603161002194883621653878088746060700509103943376646848569939123999510612816099906347280559161490873062329996262848410497197517136187880084449538632593786151015720106200859876984219146011489839868450135239251895183781330005899563279726506137478057124390408422199926151769724973742987893455627305759526701324766091458807047584757872953789731048918548750778755028076626987552649845342328594680809055587860787735456341393483601550710038761666373453168189061065085195405809464615241379488056744336015582468781998541717381988191367937512774030596432150408830151490965394135813581508796884420881608752575374151544584251273718274697662134948266930250697558079292129229373085100223634248522123704868708980433230471034191133603955030595439509307743119453176899262508215454057472040723579289905614145042444832163352504953040899754112674027650310982808284384237288362210822409966893071097543190200443298066323843235887419859704864579901648279886821854713848037060174347368621336208163967053115374464296207455210551734543128731020913662487407287113240019843843500306195033970886089929086791943379292973609580831086579828839324590709874983303868376118745512780685461077944836460905155802387444259363560377799251607978674583628713390620440139103783000747143348059425886724620126192639257122519079483807442873099807445194252960585391144799318490863960652855414166551098793313674833361323805235418620977162812078537390720320361287030665982830655062401641161036842303162125227669469857663163961468031103877656327623627568559360186243621993200909270390210640744326566227435237606969599841709859402531655623578732905953993681751439751072498170070437207267902514390269601007814585624189474381441160787747155503708581372464533804968947921830543758843137828257434882280499284868979576018222359896759518212620904607805477842676719910753183396810042337627257753133183588670743666450231607681884595567030206514304997631735982841455731656941649947583635697223395558445719854037016979379777658795700997979049420180510495352099658573132894458794093787254206730621747365864472415909903129883677343277522169892699507743805192151126989919607648339050600768770565045706455881557680966726328846991883346968705247810016235328472391341892918335530322943223271049888738361352066711633833751603924151691462040840436827670509145929176835396991521467469827027307497552181764776962339054038259987921229229182779410050329769966810817702343486767188903896904590214792923737045769686801808658941787552559697646847140311757629328860716088597497884305435889486546434386788431529822888098109773327020225169196707691991966588298505847592647459076977990744536629011358330993374031019246965340750047523444923747600301769729549801994982674032648849606789561440428587769566883489284173830268144155838874076855686245517270669541122431259316370876655141129376493467995541320596014787756114176826844583809898199162160582403620468370268679535321642589195157377237484423675669020184667503319996632225536726316350499131586212509094539827142636571026634069631696187849852310801614221694555054155156429424006889857157685089296546445204954415114441516778846426802688933761996941834745359081087538865403089238396763441308658689100900986529727211913356144569393627888189829845851573292329894068914342148423014587254665999282033302411389139266737201203548158430286202946432728674148320222859017582815270779789581067540356899742121097381886948130376348417883441779334908912868903389465649386376757991858042467371209449160805319765515875641719417892930718547256114359792348947131065833566862093826880863174112461858103564925140086066908328397327825741760274840310598755557203076646226320896961421038930028774254036539555311428676034291191289284072907688103448297451133077377122379087046041304676708733189668066552364333359013541658565596329408413467541077502729747665055835511530986502454884473235177944038200035680866893693187344183230259660316703650647351897154208046430961986769718695756795449613976227914269631175142184494782497367662456495042816872249392336529297484634774752734057386551698025935109015306113229934236491472839578369824654052182078626722510871894470347603404589030601426836986378133960696466039753736124572781205037915889525736294544506245022129227930933043398449590843958687535735371562239580367779779149462201392966064173408551548076854424788422547922581914122555206580110710303815355338534104779853869387176332344875817574388691004291906618329517191168157207321526637011798747516806789822058888578662615479417844619828151418232262724583368505605997019152982247195085772093288629894249043680597659809767232075240828166167126250899153352616890478215318371481648265608706986029947262215256338140038142207277325510643980804476738058626949578598237746829722358507144406114650244526016759445799633889952164790594345777686080244230952524814577566418105033971607138462274430153073926890506017515829652835059268508738144562990488466755628507535370311855293675690804525868204234287128441793693701178674456192851893503101340396368519834077992309067942464988385411439641512511497841359943088300200151102661655975177071489213684022796828192599773495600885105743667737759953444865897703574486488960687618255456060994052726144231738299707859212980331111486783589890349076854489954550093614464216957315916752156934451403732105160149447110309115796953138007567637028327529229213851799115647786508432552381265852565012919042910842627608881873671731390477934293678028134571679259465187369407890838369023136195031970388392381745077081458155327285055372445624743015504165293733098956377478073695324255940916304320966885268085547048437232958723944600755758169425185070818973432035102158467208159676977807234840707388819714759980108257540111857252777209720143427725369370401419656282481719504663975790344363954078600703745953148647504606710060560807119752706907953402888923644997125536242647272648213035574430642218761947041984657690679741541659987641169867771061521987480224126471139302934602729784593704524793808566111906750881773848955559878717102730305549363841720635861308612224911270047106449440868874129078525638589604255123008892422665398686421726996964219925861284608861641670606273882810994222132860885056156000412712234266780384200257497349827337237307488860695302944387287724898751642454230975893732342465920599119687137069371503017656596016810086241229240811864560696768280016468862089467990023078047869366159690312028925609099048656221683728856758508623428987915427819809269893039837609766382907265514310918702448706921025185594942311342345243123622915541991918555751862191318774498718631479286103284734385644352728481549993694565927588448815372111615257170292977886071663064029487470012868306702343412355565078436198948458705903748303241615296875040567554805284682000595022151983188926446413262037783276443397245273680887961750009197021264513635289995230316106624623309755613935105735218489112050605265291693576960068662400693597308181811456230704845469340243180250976655078671673897266936751356931937000006622005186865158245584332309804843208955882417302602280744243290053275084535266183452423922686137024619081136375491779015363057842802833141303275196555066117361052272227059296913368633938377402738737246520222137715010651317745519141522021384697539671891300536276971236143195366048262670549633155015924062085152039063145007196203536761345504488363582665072657552725330317443527191067871897070880037972602611950644523542508538715854099648781027299985182488297714926756212940583638160119512485853403005541130526902418833704668500395523021666113233568068047240654549200371644077813941070555411853398761307863921672532502289697375072380908205605402102249565540543948278964198592554354566400421354250867794948514751781025699892866874783271162373114523751372921054480088136960051799750018789431429024140003536996669502605983099823848737514552220429145565443128812991989802408890368492730823022037477808374790358452390542878799342672354257457388203946678118727757081628190584559278194715907958608844782247495849019443152290323184720200027212302170233012268979036550665269027405055793832624475364176871517285854810477019246774793463395121003482951612331738486005923950951261252884651764388738715572030685121233812596828381026639983352615624034018902361584300709763192177475455124487234367279234023659408985604964768620063866356750447317881871904738511640399439478128324575323924549924719241767006293348008993644601948137756442765289855265571234851810862439535802530977571654873085126350936926682435388746386306403694101991844139808503030376551497812889087302248929035977700261532163934184038132233669393842503812491956488696084516357347505115280074066684020841343236176064303654821356477215246445770534487482510250301877899243855414724191156023394662687437262101505270768364465959755751741590946739363631526322512303602995034775505227235700922422669017443812657865190872971401475633750419720795860248854405009025221092804875019200412531875994508712923448322064725425456431339774196149375985895242027422257945680208759385828242672403036700219070432194378519666162651062740294345770084989932996509467456384260772218354428222540748875069226785294717931504668629730182113441305137913198098559703480865543611635174144268088750230876390354437689084824381101243988161573989453301830209845678258446481165104712042058763365297368707625932233395669487834025493835906157327117315265692893373456254810306630562187052477184553804309242772830175595303947079250872803369907121401529018985058545345073990024485428066582932007846418437665072121135790801285806748631548305394406880881216813255580462575021370954120602507627726142319576373011300614655735893140092173561811438714587420831975331491364413335678774322868241881936797686589625060892299228956741049750971541448573244600992369102849683041684824570327913585495286111665456137133870322675570739786076065115417145848455418622217808056999482902391997413944843418741529982943522148622362584492459345657384026632591175488764508691572813098720563094933183910227788594333712284142313123640363215077401056928292727975873776727255361786630591360343580176358578400294703591696691262572803384134439871482550563366555821217403838307855195655971841451819597256958973020703393300525333348308104010326299863538959238631993223658624253777172598446175485840695302569689841505245191718182841634756761572824177865217769258265383178441469416691541648121200522618926128529768891737633815640237733775252003146159441533650965536346275470003030761718209715298392591970308678551469367777784031109810310555013527914594595537605393751406615745532469197174794683592846629643057282909513884062525171930523796253592227271821039662637906507599243603442917839702613545290290633720081238440010096460419778929526417809344589217655624893054266698150489731810879025335831602279056155070700871763670967198523531012179350505331006323114682670503846531365000236475712585878163071757163716612446108010976715890403481354386241046923243892480688267800131964906523979858384366842600528660724197107124195417572041929006039606592774067767943505190670522004636185126859394853517463581889058590880730829515409682364149530493392314202983255083915365217175933564290649383796635616153034594048249934097753510609240380166623442741380630506624904179761370886294415415916631247557534527965470169664964281402390884911028695402061843387351229936596755014853069157758779397572950579226232393663221078160698501468048511362308767906271732897194745163490742685179913412901906805419953466098186128461412237955817272909295460395003119483251990276118480654229872065016801088582783823978907762299639548780429940864982754592792399931393201586415354912516136514660534542577695265883451808240357991540211078559378529933769456847422128916868761893934572830826196292132206987261027351841733645271264758446804637993102200912727186636966168843548873889839266573173529822795483343613768200563897998154964617178440087556509200097004564385196435019750010414942838548735778630263116589538207736908553045834297259046353595799461447811985860477292180859825161476139541744346610798158933674752873883433073565142208531558267903279936679909913581440296524616617643683230078219525372273403276420355304671161549413166222339860517454530326246243272110433013038508842259940939900233406927911869966915791193505412889936619927830511292634348913682035862465207312393805339213205724116817051959097417083327984692342312248687509325308516685707918901309047983279025349199114856636002400155812843492749267460216176095495902752911725460072693724241386066762631764885797422812522205301046719372267586540892477501342376875009307073902891630120773378807117128932480596766869002310113630762086979859260075167147819386983746843245410049630468309814011947388086734040404413628467380190065849934207168021599522566420061342775100254855993445062612828725898992834335960347608235971849959076144503995468749855504321659164534928813335169459929439422404554727914544952736428347056138625350520044116897634775360642991607123962191531011081175956663070872000178614019568975418647863817215431762613969291437695854696530553110995080103823427116700223701688317575427466646167722485038067409366599654873760056758311099748956310483848963117301931463767483820541176796880503154474906060816642876696637128825754378712869157162472416972528681982292798819951525660491587659851171970150271077442740254808974564081861654626373747514688171827980980033274928719094501975416861562503938241142462177208273176051047049728491453886841482105668217361238872401358164287433636050970109183263865209628366768208813589509623416559961181340921947823954238779396703726419511051856172762640728132587369337047491401908692120076518645692365099976290783247352571409311971226383722777704947471921257653713561366369388230839533822577317614621485295603358385088518237686682103080986136024895822105459396828639648724278267702511893073875019086678037872171576156136766522414221749171531665674802205159916174599873315392158994154326178499705065606473443138308147562802473641473519244495163540530215876056157626945068851712546935778608579219833908792391758124856105877469256756978287502597793052361945148032782217691832904475083527160522276731390201752198947862983235006589086051306809075975135699244973444495028960789644001349722421649171111905859485408878403964570180588783224008344490709815057652276241410362421388476808455848090446272195646316643777345701977086409524331693544882048386774012348885655342754446768866085897030357624429799464209757024285012352533990970292334196265728414554476857500321681450169590578228158044720015600911828790127585402375380488327030435973308402243525350774942903755891559262579203159132439030172451840473063288085313963693664399800221027420019771829600500619047310117587901929878765817925942885421049581538669520661765235605526282839159615177529596513721829892366849510260530398585049932255721525161866653970551165698546143381440506575451874746460528310094528244085738751525696176537523854393986409361867989103086502585233482359580423884435623153210008026804022224586746489555394643962183449570643466741731936287605343461065014566226430987004956529308184352846177265653798626290727821861773638479586558731151068154078804696507316981785355425595063634307500951542754053950658877303777173794699985500696457480403512678728238100495324944204578742712179129899627664668242021042304651530659627701508232293720290308227255762524881268509001607557412650001316341838324571647837510322282528481427915443566188719069675322083128915831981896060794682735732491994811000776648946165007541024557825796214111395765724934924718534493120739640535357074017387128172622659895125428959618739153356944410413032677630812128456860337738807899317662517761006881745460364484736024598787798284925741367930251262711431363238388039357049828357694146624171760767384250463466515925669809487949955297339838304944657348421615462957131506148986436022691362983295087653878577732412284651574337498122732594811806434766826301101281109375841121276133326746094577121978628721316542418270079075840489020977329493890026943890789905716333803171437256958593985049066576590781681033409379802501289753782541938679522502705014559222053717677290115403256823516262183986759174730289513863275186075723783407512616727007069219117785584636646651475360538200917953089364617777372929673004455071210872106452726142050427792104556765650908396362513752455480411152670739811205900555580207665323090843057944803711461970319266952803691708316279298773231658539762323910059180355302387363976622302319848963766239651907471595777645754469308145943273475688148651032672114584261715728687969764011342716399795367699997651250544577806260087091649215441272633555127820226119385741021971784695718318723106973979329397080065606447563007797850607976082426288805548365735911703008517256573111942027119431278452856806436779080279768405766242432459192290286938308662624355995232618247059547160473991037403011135332830387076447940423204967222164105699248837851399749287062229457125146531134172249376150568003105870518194565512662495110062094672479572836796741173878028344960327540571130891403195094534747831598205533496790844183681036102487854587817238141847397046737765298106803745359747502550339876222102028033715620915748412829348369003036732521163297701013268095054163538184165053802015839537072032507325794749511512072399151717124448016399277070025467372325613238557883558729062488706824429703003302369500735808704029685827908729802885330530583957645854351100251968284425391100475044157272493282374631779852908786400018269625585126541636523112504041622421803142987678129980683231997753766933354127089928237387468727431416251687632457070760166013160644805340686739941141357660605244445304646705170954149440689058690684065238014516237651567029020795273315015947695785508078833080995040857711315560969308056487097946045829093919995228910318011646072010408644072207674614475280870457168262526593888986486894731689186741973798784556698285962885597328102552016753305368233442592945663751441525873453159639127862922506909807689629509630837596567254220793823732757523659764839340659280838195678633366081482686763635220829542264579766619203449893298219106263364996143771950632265283717871046484844543550969726570825183945569812266319202325576973287196091452463401407911013309365884103862885202460609428983114897597819846531700676405772397676132139806248267212482316055744738726481955430886173431779478530526939405670809271535012087217170534597011711085386157615485917086891386632920536829815167782700850984398402370346231803515476550037486912165185141351164851330781543363187980229151774545490004695563374739947580861635530277064352246439319773505871677279151648082658306940134634348505150715630549742052245690128146496599998500268338750365614387285359263521291534729945948191244776572218698702792908891738572602094430636020661787981387571485666408426051363821037498435206375569177248053930468247537178331789583615951335000607083445440247394668341718362103749032846663252104830330475046117818121740619779185774999113418295897314763758523780030918719159903994878244717743933362583641972283964425640493812704750360975236734485233915599664147873778831770070438643990315662383625229862897729992006133167366354193601510666511560120491062600043133709096382383188046121657584636813318349843992664959578281777122630649278836158059939658123904889561069976845638336110624863764874617759806859762032377932006933589133299006628251148533246347038035120612795472367117449579452835475968709785981464508483480684638322675068524413884623278344876653845207633018858642285459914612331834732846173346276890474859699789536909507165085272160491072720218512402581300472753653566028642309180141149120995606235361376173468283353876790891536766622340425094541704226229379983644517249732165920124474512460459354178574975875579695029947806329114889678743513107925115958574168644895554026691323758867065727255466947670444610645789937378249854966534682681716633546785273370914282532040729410853242710193809132418125622325774558512614814303520455979288136666944733716792053620688464827180611238258498100704671722915315443505444358479424655151357064790304478174764078300794541301529191986565651518856595026553434014117571570888975064974097886559696638041529603686673138333746024872586854013236296464152656676457776044581388474548052397765132101541840375422428841640023043813300889382986868887364018442308519427641604643805283526857987003954628515120026602457348260087154651826214693048939484170593647685114695894626664783503896978033637789033260747531529885073358591548992210628616079773438733853144752476369141124072285350057292573880565156693263107143010290534884931632560334140582156593762081751623261557183072479968503164976924821811204275683341486597855183840629904195154639422235075052854799279220422283451826470291320977111791825608314855204053418233038271054864077681888317262789661286361988662533744814779234171817173277228646602370751476051134085352588123552334914870994796220693543783358777477199255022551440958278808813230908347934307148966634414185711867318679898284927435028078147483250115181889607190580511418183266291038223163955184909881193811718944698010135538165096446887177876759491062920442704059724433714043258932772392784420130959407357314809581618432424036550998084949855701641889732635569967670228147156027784320727187558393888924695346823401895678660543265563654074662254360860160864390824217907839380233959189666220441470618103656342879354147799711971547766822803272416748700185781198118636030611292636013769977375840733159486212872866551613552697307072611386663883132409212261500555662636077411019351550092840639839305033211528034640022792889209756979891327982953138356070926317006019423147738237595013703482890845373042190951548001072414703698397397979942607078992978006155838101841558588245914549303421581961399952963968137603789339038040110233846232572500107679095420136717890052336839830705143615269420077980775927459483308794966577524581900298281432249403894675098869966297378627337539744298489477335971772893125808005488079944027692475564599374274851082389401293188058500440251721244061564266305480377793203237226092735321944559476954553962472609999456255228873390822547693240517567652849243662656954450292279620270908926290605631019298980163516595690043635476487727508141831803790974191697220016879123809857448630075026886665859585993760047643298353261952854488005385198551156984327250217677201323932283088492419089591541729638254357586216803144381366089786979794097371580223806648143167868862024248813741041401779201821451366400731634907204529748794423405338887323570638344590884039784537636413727085174692154793587168621000071535118341064053534787875122511679539072144686840165898056190865871878500258131103777112359547417957373290752281497447440095890449092968071773464264039414935500624008512294155100660224959273994382006596038604440094822187829166164466262438092176515372804618854429329843101137763577439297182727107360887744512119996621570905332645336119506542483377911393979696570525587007054629998263675890522106844312174212629206503771643265663640458407069669786829910368338258419042019233814731853050141341664216863268023110757127945512613769922173723784493409817248598359488266252333009553731168606163636646293682841040917637171945455604129118625468196618854749356899421906179888276325583320132699316957439499121207908768536877588695241679228479054905198123650407210841470963191716762047101530668187714190603773106505399050698219898475229838606030011043809734867388698317692449053422208277756757782802828365619052314436873710086619973031162016797912119052559795148247077091684244405532878168570032286226736294053262766233311346945655976515513376501947867122139598640337450227296160795030949281420177915751482280104583949461896941196982425663874185971725068560211585956698730368472894831270438985906166583262732946264883282457585195286882393133212948798558885088953555521564963509540047594309119157945013266419497790220877009861825009272701196987878855551591193250287639105141874505769196469494098314328514052550831625300179261825274029062481749764504811163157629302759450532070560810201569693627369548277068017870749252404352443556257675044491326036529707300693094139304026798143022235763534229072811333206102170256324732065557216459107711543621823844323140143156897043459703792393584102043170744829185782098876895568519738670589213270380005659880906364265316758591556594431969499103752826009189781812591577097899002277773867146613884618598289817396140160594795711928763352155594600350688476948826751857000766037731111053730585064515529717108217369872893897612062960656564486757096846414947879725278349120163464463826171798519400769421744106967296668925155408547982685311510723300327769712441691378075601641108796259805258801175294971417344460425737119344939681366721183611084956033776912405279457252946040917949136809454980018254225401733295519805007790383007884647254011198368091138772698200297663649879285698388928234901487807959183543379531990967792358148606563183360965724384826728680082484972617894817764665865604710653375796985581941448927600908855274873854037342471242867976568676419051098251883810551917410428006518173365878436680895996676682296811122986316444392668027908089123041952504911020877226167991025391063123286753526228094682158866215765647599602937205353574594252955112291760503351092096990826889166608982489078778291123118572001248542868767604295568900267583422352329014183974275325443486697032515784381014727054856991478348139089741249506055713538483449070089993814175927750284254217841023875289373393528410207303304833344088249049796713026318078237708374515495223361901413844237138875512804409502729054102611488125508211335107241747611565771067984443904178729191787147616863172584802629817614929481705779409422624129512996315329122751378162217763093897205949808725488732241544240019446690608261466098810347624438244831971479712421130308023736202471607513251615229105487680099622648893273239898030287008080740628254809018868684296719869891389521486953896023123182174035363864188348829625403569298909266172709814441362778247517919643064082671354820937881527984069492543618569035281931067912113445077002200283502153668088220782621133172790489443112381414372352513613445354836922137871470860991103415829641930237265040541875667792084764157846945489752235143567342353505259421809791052962615775903934609208863093225167800045479795221252016442006482190084657936222747596846765543424733332830475180644861806528152649819821130342239195593151844347192799303861155274814438253347275876595472707281259906344671150467239396178986763043253712873624198185581775264797429339719794126879256989828337014288005370466595503971613278205362305753295901041028158294697279367337955171646432348695826993307395602841985845541193304812646280052469438652083601048889126687287798921814182520246667555084572325582293553207222171895977806151153563629700559224238481214001090791069042022466659560781241053936088101461906627384801303916619435211336274563250335790007154411956172058110830425902439461504250591852360531518407525743965614023775027570976643628757837097376018763534861604354075439473355078153563503709058385946590256336773640960893631886643832834172011527174314043255811065641778966411573402725053411797258724801136182532288311863247186024790689370400383288283780056548531399357912809216141921845320135456104652874846691527268150984162140840065702949470413620464665242786591619995880356675878619326678449884740136036662520228575213706124496133623887181855672136821356838047338730443785104524600283810173639468475741465158579259368721977037679772088552281333658273779511456749254269248621985860519298963922023548281931753865521880418335370453099949400382923261765554798394634058438785422088082162404465663979731038043140159135489647956237623996096516493735351143432548944589165754664885605676604977341403310708601439433075984309762345753512796249508674871148526614912594107117221023974359322932499382894836450280731162719527471397599049122439729622058967487853483863567279867653502998433607829387583433103237391026350969284130270293607119729934963303810553945608233667264509136035081376640716834351967334915029296408311352829018430705550202106030753642891960332685657259166357282744847274054517077130293834463334157628499091813364820077666052849078688118643597198547503597404200869521629052047682545278581938008476013442071110675761522151541939700264069936356118818526938832232486867452088720934196008001470149271864997444956259994587664832052640725262470497102736719101250831001401574057417235199811546764762114521341471952654789397853925406469071131332895582199003466354508750579182044687930948225796097591747272361818955440190881851924030273078656011797123958045504888489644419545615991070268912146455090635353078798365463937386791935648709792743480187999405044950040956186764267434416604781152213378290566674487899772426625275606690419210659102947372474918506490142882039369943078379982717970364205926053535728544609313471784534803614262050906162886882442077231703819546286966016613733659790516000053340119654335500265040244733758765290809378491149457956632147163944146375072611210056862071835485043185643550660998252870166933527883260248455256621358422395999929404061495795665527549838671739237018608027358922507149092009904858498428051729320983633049377461004471770795196323428721511218911827705457159017961829978819150517469604951195779689303212960113422882818312155653699064648926643002939964915789542682771151516557464027618522766586633418797306881503821520082228595285989193646964526669768320002164679749618848289573108348396169811566697706256363444758941752629608332329160498655878424818414700055028660706492174924411454041993945303179525037293737840269720281535976813113739213724936219701040483579799762237077469365410677864853921582080150007598298912738869023167030954916961440147831140778170237281071509717236681893065811955430760631644650834972792605753510927380074519443008782395656559707377093898227408763838848138322065740470353124338859765902383340020538679925338243225960385931288731214795835138669333554097879430550588170908752125871138852613291835434785963542506561446678099678409033184122117867772154841234525823083431689990855956432425498803128594459772860623398357122108360925481529571942945007988793322208599245511896370429149671889631693796998383200255557795873394891557732429706765097176151587508245578061914064951440856737449126747420551880636622346756971049666589809204036298348489714146333131759813445410342874878873892671033378190250534178152764456520393612400230345234323579013454508402960177729281583521842507522341852595089048334272182981295325928153678184740929228477459429387484136477580236561230523993962380247545412743061785808317435707652396750558738587857038084143378072051327739669997215098492895238980326103620777964795130349588356652703052017574490757843869135679722392581670837799806132555443619569058100592957428061875981869448695677822394010540300856299916655032912254142549583758529726649446408579778825001461963993984584778862813459829808754346654443251835134275210413551264560321700795026338848040034716173522834250717652497048336065445324170146134386550984860375138272444146012503084556852777695037064080882607012084499978840282492587715578441309527667398022034217528449386262166484065695836422734803870787620012838166421203795342794995562219829710968382535979103039856800198965804631747619639911952646611481653655528341676925159216760190919728671233706365766977565835358566965932648001585437379416721857340441292581592461417330925854398923349590436537161949455876016452270952782830395172522984405548406134387181939875724955470290015383857600111722037154318548889455130893952920797344226600464881842284607941129625914167105989429720269835664173457265829037759447666873631944043787770353018284397473208427686402891834677776175647623663981315012718693163927034587828290008757699680058065453348094641170535180555150816765893504827831354193151770537002703852653081332184577595027918704787667031908909819864025987172325485773404804952859123123111219734194797252960591812027913821403953515769524305275414816833113206233199567182529264697215720246590650935309790643769761915940332153404498822733214668458187480581718547721824181301445610782333292109979605839343217560051060526498091274876916921523609318624378265108632171631001756594975580269069660046862769001899485697643133560732524052901317834906914831221113179463362668203675315120027234913819738553478182789922445160984364157981667063963912874370756584125188254846823390270945565678268745281994665303584674823949966026020788040189092749675673938906358764685311329781384365436560616129835517345088237780554451522885507364795095401046227793289184064061782094736628526173339126137320493612930272850169952473870899939685998085415464598906856821681841262465039170754871588631133888263374715889578506216491370549507503384328728870262412789957960117145418718371558836251228716253815374119619383166635302199716342509331300165375298536086725878631960199837269935395569263619321479614567255764791328930409524627758524619271733209255592612839230501647908499077371891343452671522036723129103157556118127315704434096853805757026851581977399548491734188652077034668181507184559071716183715564912486209769426294784310445116373522462418333521876330107272118472982208915101533410387640327515847638365949612872883297983546244463497684008764460487569874566675946751604276127682956709239603687757555021440992509015438583434609337869692764774923306927885183164378602546270902904466630342289951733912078513103311095844434516225411558457216013757221217155919094598142231265728210387225786386411214045687012640918081770113729684979279382465458320160427843080395768507196117056096539420673492697121669291868191292342552065328732590662203532777348017225905164340894540220719238238600310276892872095080786476071239209484968669697344242057345126295079499585983380891984618670312421476493995614737199831607450666717688366826918547604043579833237470967769657831459032859766206608195704800955175774075641387111719110760251257940536383783258411478937497720124641977862936511737590839250185966768083033093847724744466217359474530860682913117391274688652708579602784612913960810164860725687714565817828243174617313950854640416026844156410429029032130465311714606700743064244287882408932732370249509871938154089586556189809965584795122097880983108835647164471129699701371528279489806845106533157949657563260852910992914734280532520590545620332143960444043680633061138090084289516253563805117823933155815246530860245993896042543025340880988928720344043731913326373150991748487027234712511243270939173563624178104032814245366460265057693120855413850665486637912920737127457269582230450290072912263587717771168608483816572389743346721111885820345652333464836823673666893329954401383646292498365273920488109149404238979866290806204134307958114147604631894371101600887236257151176556146898270102698579259379045295324019425526552597325965332407060388725048164543540966899900845148901743831475794897552638395291338873460724011612467230259693729780187551464631209626575657912835956942910732201520294400124274765666959644875463992130439085037849164445877900702844703251408430648779888510709842510371586390493607892605711271506726815075927412908109620275497779022279818872692606081248890548577661652817209401435400388506934818306536295200713632704646900646964504207054656877746557541798439675188367471042955281946489850650105685715903129330834928058649168392518876746844832937505525297514411340915948399739375732930750073984870524545793231659095292878773420997989435680900322572559663941589314060659176303300711511648458155460433913108959329632704687371138332473808118244250034447342921418027708377533442203453588706085591825506855628456438627634002081595481730827928154952445896718982029288786013145666779360055307804278313875097912299725776296522002290719819856603708156173913407103247092813208087467795173898193109051580396370457565687271955852592685649221556297957685965579843124138504803261944515377454199078659290242642122709205389652952550233825148637676220608044482403702360206290267713622971547955965442847115976438676520016960427624110331255590882887072764817109713215700158516852875171797870001092795396088746226963759832316661606410349481824708151745956863342776214611370454776777238599382562334800470464167766395636401669476082813869460685808100898581421673115385398498902107539572938133618529798150739434680517676600736712716633965965521447506589424633681870194482952124275973485511817433011357796742575747520073400117717926564456312544352164296541764100344627347364408296584390434609919050183142006245107708070694318816113224133249244013497038060412720230841445389396649904406624583405740087051441673104862269948196844659572975311692381637389617010132914007462125064117180421931577741323801793545217961688005395428511110564497231582021501638662891090805614101453685743121096755750142436832163476727783643824300179118239694911836215236351692943988471405003033299228437208041011207876759151638718809104721931449294003055781458334828927764817170544552609327351043771485965666736774652839209310260412493162435769190086206041259153842532830524768097504824743999523087645572550788336123900107156408795109517287135964811645544990321330277445078206241427762061104845728618622021522701308012680518214450213408376263167795194467692575637310583944276008713375396506042157626561606200922458341969310450782286255379799114007871729677985691439320796773426081306143250518827499575263365296569225427491044701272385922632499124990231547379739019245694436244006903469161438970993104132044053851775493137512140701042430079113686841769798835588722477780373604418331495604733998725235157546251507478424512837736911407685878318642763025187581100057502207402598256888375187527641222480890603732849831784050741171037652084813412702589293659966664816725659228859111774251552392704582830520831490142784888825891470215746199923741421333456233676442628781750802527198207389976984217705502621321247633070810807075955861481908972987469580812682496935488272449801582244754370464467420129766113244018673364268162162615269412983428573435558230206976199813887904365593785602204972141636055337127685667364563262080489364330345343625629828083535297785912775827779315404203111455524569064204605878604985446931762201385441007276215178406216980563669570231509711013499370405624991540655244649843131772279058776345467488569135970836397723715073701476350617906913773818057088504347884955580439747459950098864149625801855757107733038522901313223942338930780523466387564928993653851123203076745133660966193444718867136823941862191337422410533937186303528130151521714428303455068689500300128670799623791878416162313667282846266044571132931731652833310414494489572969967235838385715267888491976207104584405121983880323753207151831742110471613745877136799789703688564882358559739725531774907777153920019624613848948579959440609158890172509517456396061138809888634594169892741834514697095045268749895581810984103142164091041363641327565431654537734870675001786523387676162607205127639616167085551024317533835008219354647996946012620527112535174663671476627695969203224091520091988240596012073877576119485344961096488887672825263283916397907072536640748016417205160215580562457733443044099334509001929558789620271528068624272506622957005722262860896987392181650646311763037852765841289029966614323776578745935834664726032436739122680526854337782405812649457103785511538892147044148670720340813811509494451279435094053589040624375606163466744754261305454114919682729552176511725426840854610247724575610254668373642402800390583135066276177101553308971393152571343309347879426762800411166072185213996664752116973437836877631519145252670788243748489961133150274539840034988822630647685410176064991324932209520152691246711813249204681069140451914192536784265255788448502890677051173999874053686159984084781115884726234919812387362379893631128950047514876011886251340214674860621077590528490254832600662472730220825638527232800139005626719474096168742263697991303231610320077369922114234549434530387988482612925483199877932893323355072447789375750715956193006890920224686439268710539325160462269578416168594883985460126521237521446625657284098454715246887505617548139787072762617139758093122834793857372467233422877371368334456576635657546437837202795283009317896256101742390848488612514976967525859443095956704008842591268642089185671214771756315067781401252868638197325844208594094410986624098123381583850335373591421286471360447984924973548474888048792962665010154397274664860778694550550269608732885176505569410307574036034808166969311029938541335129726154937610228222146043999694962922088838385373184583796812619324788547992506635880773945539559115911612630220981195563229993197220144086797078991398552374853060776661008070093009108180027902564082479973359450309102665630377862712961348250572392944074412423506717771793299674074714076880236267330453359947462472994693208616943592748813937672972543225874856615134350877092045327784305068976261640353699516817810477736161677267349981763414182598076118067136701431967486395954077049089240611732535277220538299423026878672942288762320872919065945077286862781715581591669257037975022377673280218999705806193572173623221060491049966800566095718974669915481659025921316112012956876523543046215364265198083599728186650664186996268332123121959243194889199603065007976672630519493224008962131793260686763253506528704922288592499544480422321268236969498740578425215628863350032474526056850625429218599727849322352695539647634031410924196203161932177741665135412602566629640320582499060291620287428889452170930141802260799981680976154179533549467334390364665114726914944572352772028042374998265082788869942096820628064199066170602892214681447110930040725321403426489172882754610695163853900374402929989817020765343275753172088391733166967615386456246069818464704768354363088981114432171390754839849699661956800186584548039584199168631199722535730710486040198960399231067217394637741666812226159803823416370020649907168694080178777582164897803867455845671563625141055372675538138190214881874782657631287646604633563030777419935819795107494687314245068266682882558603508648946942951640518846160765995854533143141853650635262978337471024923480816899075587432072632730370542369337286223622010759142100901840648664470040003376936337127032734749988138868453717519119318330759971952600581214728328233153560064004426437152105253669580526507651340511293331847895618549149815445212517009544162943556585443984235741565410369108386515393452135020595058139426858389077862005540677403220582356238321953414347633840405715754065578451768508053112299709212744888059348777571555325172869057525298695243232385797108486142791863572514565234334819049628813678691328823267391520794095435651726488423971652398217507816806807602257828225918819093927184303228325089708731884542242211817762814124872399644943081957041652622821396664578336469711011645789218939007362712155284943042844579795590654059833553128785835063829917112329604193934697025886111400943637152103965508787118694402474301537743684112964842457086072537564144868215852119930264430091487990294796184095712293083484180096966190749610714454819306183585227004061084391879298155526024402119494566373876778536598556692616884979960764349501785778257594871184137985880153800711000658558824781704518389223502277576773920485420409586083666415944078261385444496456513562005468537432040535888843089550989753982122294569920244867305457710276332411186698765450362452448846024990221077295864920280615899904449858864314031068523153523962808306388339099002312055091356468103564331495646742374064684733667983762142910629506769831577130264245683370447420262844806879612823878945324574957107417686015186681269743278600377743478365144763568445972356819543023698645898129334625887774959427789701266686228389837242326562127416778336760128497920331925858883740918465113389884735990613299060281552316636277681821152640551198969308219898806958389379126797900777716498141868355194865385482584027223620360168814667978021561198257050245508186956011209099891802601537345362446721036536053729186813318492003150028944078795725419584119623525703976956004446391377159620749280161945442110232118680379319007906511379715308177375931053739421452964600280276492370424344160734295331691432941013941730364930089068379591693910830158085458031733066525133733024954200261932028771199440051442085707519883692085289609988307621274516975681664756850965089883114781138498774240424280530988468286842899557053188480748065078303824248788995402515580577396214122979086068492654558776880874607250162198744474955981376764990158837718759392867838100934257826483204787564877722147993490486385103280160456292204910727359292314586779164741254244386185791619565361008309125280491580538904497059208559072692371370433757397888371626327307110725048910814269881842472316895345753004452023698993877735399746641646729471651171783211219349059166669884175496197544885761528426854201471791432677750718492710512775426231800238190368622204128558754100926404628642789008479452567366073768269038504662340944921507394486373438044449741220381444062031230618767051524313669064741581393288707262429906605013708021280904393395486191171663040844428507003308778527746911171440511274196512683494055160760366846386888405508729934011594300910307982983826579037416715204311811948401824927340165027510929939321128791490813766627500607007538307024158018798371541252365731151745868655007512837765092437775490211086612799968384687934049889726047672473629646946777255312936227745350288476299120272268146906479868141019379360823026446495739957320636940117853791472568027486587971009861759120213929966324156082463789427785141665726285380854144882260352976603500407083058893395333514164421951824977307206716524906068304916414953061732650642367552175980358121842593769957292559926477046628864714955129931641523497142321474402849316454126483137302018949874027802626190590412593497916542638319254365261050606230245746158449402956689432002053435585953481519607579204641527305752578236872408787123445701744633819762922871800878797136575181892043429297061529567004476654589215935445336037363777411048175402342578305574434309899843763162455113642375526021494316012057772882027769432442246260416317181049559115669314797048353256875602690930771050506475068868765351626215770550918816005694017579280473256496227380209406623649092065426717361562132019661444324345283742743200049925570455238734731724609233175955525010380086513090850425543150751881171154510216317331347037121404821224015192882884605085258259529418433373610311267842206490833987642059426635019646909156442916548142763921463741620741663652947405039339884174890597546655041467050318936716806640818465408853367243206861852770379301920267678700123174254748970789166159973952573754779649125734289339503201847892849214341060201605753520269314801186184118764698659260819614583839866376589748361759020730734616364707772415405282647943632071217014211778053490730739101732514269434554916295027338784409952227792689586887906188393546471710382021451381764216959067235151092335183065951906390876914919475319623503728282415008395935246101704497333645599288694564187897959252881538624519925832321954355570784494410772517488684641225667389654786536704289653507651055391882119488955126006274254811626849793240233526556248098751715452178660879481016937248586760776094981286064580487983189700494787972371514647638345920175690266377525375616322088601948681221108273602245400665253810524261988308472255584532553334640685102766551867450746856618903296570412247327744378099367352898681276644090095644327764623062210282941756045555302073288719269530539679950886328913178883423983805145494903968135220913268202805999090790123602263640815818928333885974287206719453876008689129661261798379286939094713050664523273905843886089280626857334135408422370968838213941453310362191093085108569307839507819246563575099440669316011842901898872927718154600012806568403208286514060665252868573978455640385015584002746193793130631775994582566260790743449021383351517634477974064675402308669846363003445270260784558148862976880256007992808853533842547341730639252730219040384217253335411846838128892780288032534882129097837025280133932028757970909732274968465557801177246340375517627586044419639758560371222756915562060360520984098947805870252177993353215439405401278877984581013428645235576302019161626369724410676058851257626835577449853837537440677280827012712266745859727088720583408218012342374638690986880332593327261797407086426493536792916673435879372345168405744566447905947038411847797667721975895164470405408649778888009330813393295256138890492405830151689283484426938383943776073070090770922692899113420990926007800595239882033237216659089745722386021949518304333640217390351650200166362469893610532941596414607621988565747677176571533074451457942886494522150085510117123536135529264841470577835277148552799744797891416334122745912831990711066308612238560128265649901018836960733598692033670472032715717596963150052009749136873366772493557641706174678873907274405847242725358015498500146778020314382899707733104106079033765192604923202558059394125614308138570874481329291868771926923083371921816466969297214424876635621250942100674189022132844396999887196178716732385427047141727015677040562227387563024693763381320054014872567019840441951492031346143602960909525549020617853799465413426577091678479228877367577390727066375171044808230474058475179502273109410580239910955572795257638163776975169274338171124147063447753389045303840812042158351816715928617261630364956276827977707366798261747617841638421633107157186873371019261715798130522600574855948492937291965630755173095897585948676654789035227766206433214687499046268880554810061501430292628611446099300057497792576332139528535665295725082740460239690248248910415129790322891333994737443464163866679777647562404879945077581919980377442223836936787599563401471521516879438938031513149306509645448692572454700343717966414036344310250767550151061515530084996482189434833747742171791112142183444221531210131883842856523115810270571941943910448004167379900309821434705330977471298331004303534500360477486580946104008686135003190571614895030134771809068520154639260372130850319422597254946795373957050949971018961022740618094454126276776475612522038855534191148464170910588130648744564312994686548508174918819921039955493818827271401643861274921987647723022986375619111044906179624871770790560682312753062345486977371665902687447731385542756469152372093564267948953281565819790627125876948277131120704247565800909131934988446780212433705160796952283118428130074595012234536227362713289850907014806690906322690074271283253555731008277266761400611724368032224524829573315415583407449380754434536038995915235490068202192787551427185604598018799684160555171430192753485402429621718212141586392161161625330079553820041634934724295800746293774379351021976080655353382577786364536352076873609677184644589843945974137352706659069176908324719339825174341675779238467285677589518851437540929571776909188807985114089097024956334767972225684753863020277269698389876056048034345558731806355932882637201352056491995449949799516777657887245999924460926744093762314237129615992510054429632140106671283868824297764917667890616526470650024356956110217272715506932019276606023649927021588124314584384875383851674121888219059663016240411507012569932282372364912354886856367099438684776321415461728140917421223084222238193084722998249878267980282031387261665513672014236656189032423572785775866626227673767518271177139413973913001928768047060317990997940427097313153191943704024193795624231677519099905413162453697537046535738991839461456691261423595116955213160274393764049276926707336514449051770269832549623965637945328498062089686457983614049276871096249655052706160798603747042669293137639887461161783953897419353228155666038366828265599323176586341429884646304402015283969612041564136299721134621347606006164603594387671275183060574618169289536368193696798344504543235289396815972033250637189932908836083288854636769401993692754248724463634863066708519864807767284098499202768862970566675354545924028682555979833520322668109626623496966437426445052060591577391668708357478297785058050031883043138787168475445000742331917997219820086750039347460441863431141482219667543868454118705237061810771929618797962242590449941239658406600320557864782298938626204828177052809177236119562007502248865196286712823166683682568139099965128984820365255925566435439062851747942392931277747554416966622834531562439710086097329832682604986003827212311615485833611956902674949593755937650453761826672752184552197499117309866520050422545636466189686570785090526800627275638245572361102631146312086687637274484952754442514109760502755938290199429878838690572085360829238035244461250813895944518528421618916379896029505553457485603565140546269945161353973030405447639684314272270016924970085750448800514875598907225035149752374679163723585232347209730025298389531788436483606850298416127547672599739641213749798524232873312788387434269634955561578629052040637215229000862698306731787544994390533413064427559806970276525759100935903942777840828274250189142942437250530941731920461762565739579176238498104864827357071370791917422043187525695380699621018327478899673620378710069609877330020171961459414756652833018465394598034119896406278057316868375272591643957649376499149696520405320393776566134084073505528280718898964590350340176275681383924966055473853787920304963519483576843683252060535435391112762073880449777092381594341140922936475674568960637016075164253480587570926294519268554916311168744636906883075170446320171622351977372699289612587530652246994301674847446646114562548048252472319333378163419834123008935014759458010236333375604213264882253566187920719556077088877261908395503470646676761419225887966766429487839557434750206697785296524456694302383920870003176006144785871139095397008260559773127105241175868090148720563220133315488905471451520324050537539576601485388305502989599770477746999291444624083324450464239526234771943016867996311097190583034004099815735765248732347834439186742359237955749931761157961701912990780432116373117927874365627490485872981765702117838567814543845553720360682651724277219478607041627995002085736794931263107511752779962863077146692266767240438417312402237112101525556994071132607447028404006318352693791782136524873136417034421748650674738340159543785767306439896460977098368187935440474488890859715678896414538846219891209099522105668259316649249713705626432134014679514230361063677921218141092734840986572765228843428852888152886242083335818441485808563701988589222276753900946213752565393883942384850065482014630495873983220752973416290218914386677247915432544971226023863313096914227055191664860904821660028905460594566900057757706356695289799537166458848709656026473143320765469629298439766776189012184569593021911163148333571890220176639091897694325587022208021346753983935528402608022058852876373419374368029527178277466175863551364947865393523323476845153615898660143305391676933906464034898765760968123529259559582869548151436764868515129036205038365491347239781526617713561960677092808575810714277119732950986755164646547980789322610825489599296461690959906539384763225428846004599953054906973972928692426744385326587211548504386764034031037130481879268825486526192741337474867356510605364054231299040429877836521743591846902323605821976786576221725123526120568786256992582597253952965321127831913334138434589581630202108318890228746689027778366609302259044489891297682736312973689107064249966225781695046527792257605813892403195738950300544662762337012027903531952433376063723490616203226811719498049994154836273104361373346960478028876328760490766435059552008292050881383422318706067292725436119326233390299580157731208419447098144880303552027174178895732671618176482812971473043419768876883474381148982312381469183338575721526878432510501452909028955280432743208965461436283880699658871384001861301558688688070951928908154715868433064750101897169835518723910407698484731508144589606521525985878102741941708899691970993551593307041864050754765619246106888473459137206649929239760843509626284092651147848147174934641420965074463689925461368625787152683420652641449740167605662044217457776228248067167562067487033383470086864662900652507724866863147031719607513794947905292366910234144855378830977653880803811244704702203844443960675355562106122095889778260453323931672097843272849950364106004763112078963562102477744463914724734563243841810574959719782473801573878226354768034861350764449455657947628041296175421616171506329472137060320172040662170780111536182152734961041560066440983132688282027246154774106518435503467883551666332888307238702593772130320181424014619252215967088916073824678309493478418492308802816472150975464417924760201924599830351751558889456631273964806260755847650528022020338735815502589783176160448010443236081114331640975783466398156869842927808809601656120212480414162963917084318677545400212948570139421856901120085574394978222793194812403285248246625026527641480410828894760176555234546666235914085369941353713293394964430673381332709549560143814579275503703705810300570723589409874661774883958415422059760723853660354978878549733727067817105861292034119530222261014786054212927818501531691848176164540200625055904261052684507435711656392574997095803907774888137667308609365219167632269344024157055046195693597015125955460234349028580128252943599613905775658819222834664948643131415176296525494950012944918333055961677672297146745614206964403675021773132996692034260142259510344374070961444493962907198346744543371204440892103366938178310710794507062392640503623493816711824300120686160171293536285582473851953489128668912507004472727380282998309204901662775582044594141355443394530855689232104158720531351242228871541442501847448289614355567925044912838133381785006762835377142938303550697364189622155370691500722550529429504153130020730684133381113764833586197394873822954342563384590871156706874823398298254585521440579835118041826614214923596167069857484060500166170600761457394736737526209465380734309968022009999349189071246045668076990606789687741855333248727007339039424993574292088275901812620238122177497630760955279994676990037123274594165994221568527674656232222365885521809030634408642507585434542082037575403749455558786654241791700976052582696366533070389362526273511971007737792570014996068939422590098851216675472937452499340531822384608404603566361400415095682831050794553335356168979622717421893542849959350170115325930981240612760687198688638040237949364364264028255439186633489836327427708066371670730508946949957761802901487819326917243211986516013283027268487315363609725363699650002541089614233023413151757855914911081989696821080249998661213973158632737955080582786287129880772993272374946378067796272286344988958348487565371099917222996847435730245333801668514397100676333707592132380869644394847828758629877044864098692281333215022971756223921225747608624141079029054487089199479836182874443028379697343732392918683558700528047679850406919794585186459306700180083929432058448438289374719360814876825618185684505590095382003594200364423507799225919302658495582165075446529754851824334741649291313000345169454809892067814005153142952760649399154152789120343952197742106084466561629175782155387993103640285841075287751494253037620103147676774718617782115987985697870704191429994577268280594526733355147563883101754506738473386790350870663689627049284347587444498189155237902311758064978864918289437563620057964271238521955694228347672795748397336612720367104111737323785846265223872397084591327110313979947019489973041942679968602929571472931307440451685674129324210202798621399997974644003974952283180562728149428492511145826198421800046854777769215708230900377462553589510566736576296790476645330874913513043897319012495745051727452451365188160287432183772731915515786762083432846231826684678244651507372798699909633151145842972752951892413936979992126336829734113720117386719632619298885754272923570698875222860567812904967269312197174228307119953453844152025440236763650441134587455591584720455702077855675352935021454557715061211086337291123356790051269674110319717686660791454051539258634933288865840305738591702702890460811235156409824454710492907599785844508808124475205560585527850999393747357923154527677894873193640499429331469275239127842736498598230109004650391564249382831772229872056406482804436988376798763776047949962158427845070591191995071734325231145534333818665895398547604590943849017361604794534054222055037261692749409620255128114977784075349406447457144879415151990352016759763529594312303755967675685488028515361451706091451751016673623886741486971665569803250636077667753323338957692173250164173299367176230180687591772494970380217310486604924970129235149692596960725305839440449774852584804599209866953695336056628176303277051915477572010102049492959822305350726815740180170345860768600767240171737532944296027648314572756150734182365233030982236017963839442657990227242404462047442705224186164137276682449254926205410540106276943358927321906508410831716131717814491249782655546226950660806998969033377168053874797919233000027914894768042307181403160071035392300624809785891241877610392924169061885802639825913043591704235928944568538952427437622151603699803881391003439299331513513964779063463110169071135708310800478917759070429609250239793961648105532904014074603183992288062371980394244362955633043952448666672169850348289224700022110160991313361769947129831958358325100420529198548092571573685058779743602525726181704787149622063199902134633653165474010202100357793364171687181370803524186748724409348321058581763453229984295382051738057809495411872099714658679451005593419682664147757930910026236515686765753767257738514618117440414091332334210897549746007641855082926991117831240584314969371039479407741183583313132558413252364401558091600310693858092143651093058517050167116954144301614964414951362105897678623151870984609449340601919339801671404308536393086031570954645143667813721502140713401272556459137628183033070496947520563575502027039388829893020807192275118541596503553967284287048858005819874389273427567582805981998281321443547442547771071193307091370090878951697484459936290406331615517673275379421383837382824785136584333703512095088707986733613026018982518392081151453096457810107574174547128823493415431912635157128933130322693031046131268559985882622533276177561670752471516313679378405077029192240746998826501530937906839846976198504356531179257790907115283856672314436621903042671812910232836583518855285377192256360273421832394682456848417072205491025458303627549715105076262450719706851024257434075399363046256966356785319323959332159925007616297821411864097918341960801991842705538909745985768831699816983638090782783022085330667792342042759693050146277093543820755280489747444113090850495186656570393108598604110809454440349924882687563512193186161479104043630376860690548220788744478937574415166880532488204647775376552227911520849770527350590203675775988641637578604730210248994325733393512284395182253742114058525507475683465301332759268035298755864225152042491379829521355763891130216638766094818584753787687999345482059685943667490871609729289345115976452705215239784536167927080463435558629762934474835325189445530573161231165083967124369046015797084610622559603791851490974392938428184819412937760241552580175750573291186508771562349061680680690212504675704783601818169586774148807225308352745523581841728478860850196085127826946248404204515107339350533980568235692628905364990075234903544443171368621321115856930714448221969365802875489565264927190100933854163855808175628409805949172638387173306928642590597841506148489765884213243224539212528808583682111088116654341092718304345337780631980204867422734634789606299854093039649588759585036017764592589752494491831389343427080987545030948977038916103313440484522512752388495675964000872114937047801353437143729096666062951982448111379168258576118913720541161547806995447011408801351850856755418834074296578016923203444595975969332012038847120217256918106834327105213169820550427459282725842006939193081118055277675726350873961833709195062632924744660910890480776802415532923713048068689632371120000791622798012246969147392792222289691358977509856204881169827315934386576063576818251694779468082273910558094222439237493310747136424154809482353520341722757498385903165747489481716873654181707470010807368102081529232617296058486763715765865131774163816762465773088600128286387696589388745968633170346893141717478115518499168096176008222591462574304682864067781545784252104319393837474726751870622245789320982724838707738981015998258292717180790055049385058479975742538776614520114862612917191518339701198724142935393711851710294075289729755244974216049407819079803428844786932305576415762526030744694659763756999373258773085415806990021801036605665226721373221003469230861339487230177131896106689322520838668858309301041632726607674896544206397049094171312930310073385040526060701986334448971022146791182259781613717916002443396672036581548773759738492025824303709822048711071403145934877243524870266496855004687001362833283754395875452247522091491144971457509996804714588546866161739801170898977540434880190346867154708585188610830614132708121535040607770807999344795408305509540679981197255946432220011717809922826666220183743705121522717318002501079337604865659606270717678202952405764803152114322959712482131197917537194037212915124196739389456161190657488755171040114868694964705126028115844858826795810920642850209462995086045906109694122644337183802653825475441416610710846018876778351238505828227865128273417315065409247484374848699179943154642160664540373786787469568369526950626591622796471663610930526868066549262016322269564227152761388071767924189303448024881547374003138525103914837586643693448511520314939284160045240011855163579942878862894924438168417485026761078894258127421099983611838206369838634591045183826963218600385579281430511663648178716670949753408702498261923640987014326941795244003165428611975838039299439194303132223804818731092831544119184541572570903442722005137501427397992476843169158488832506275817105453181723016201362155667421153757772312668570081161889260175093991763266127274488067578848803515004319087597796511322671713417610201051160871502842584184591577780702813659911236588996941531627853508852201961067566164711348542765400555186814647022918125818612189676169757998727316532221333154658049928584352409346603809738905108867963741509644277184715318169016967788192651456144926250777255004517487098326677755598066591130250340257366673844766064380300091533884729710236795749658088185443334833306857147716956218418939497445409376054223841093616193225980390676520372289165273231974607657880631210709345714472734217505522048350762348402218434791803874574521216399207668579841414889074071005428495810939978132534986477880920753567601850411103931762853751126566767976410038260928684110302603517100289849681701032483338811284860985279205365665686330325864633813423533540530739230760961438186997089404211691855846273909069502251273622348470288006660310854766108579305933002785717253346195821632881749954315754580781462819603420154575374127738233136842304337410217853619345846760377918731789509909246830038372645274955368085749168242988987973665476493346124430309609529347744538770053558942622718004078867396246563351325953283504342801763052712708184557401774469944005703507342615034257712877473452457161695649740266300841323269828973451212356511232936960489781688633734808367709916804846206706500756689786599569784216112230427380858141077193015745814625667477893113911938457760062776508018281915937102745713611769816986940766037839617339306111635432339027943102420489023951070951510472308831123482098441390545614018675588774504240017741241412629191732764481350855447266664719263482843572850774413049655475452530091708172665232003192643628552959050088958704900772053004146564258122766669866273279532424258182586524317241044380447646066253097410690988646151589604202436980066548147924417866606881816040727636294092313672823991544691040514407538597309795904467788380527523672566058123852420491692174550953944021113166273492549240978618403043579269225582408861743325489801052763704722425813576951826198318848705044867548650429190537717561924073284337540352381367836217993547372052776463967241334365936043696696593792192931193060678225381338917959102356714773313257455698252132476611406369277676921632870403551825302085859549334424532741105577979632489366811647848448216134571570078965493267660824034278134727694603030813708215645133794160102539517940994614314629590993520809490872518798771930471840757924617143873037769226588752803635760610683912687501213207876035058387218115902621744806212758144750478696633581077976866754249805862733558032881077341165277490762923046004527168061052466281677843523813456971071013201231701629556375085166238832873895531782662795375155416891593889452868888095221416693039248068193066994546201196284411798913275309710050282654503539616769748917478999308646372839280399175729921075662273445463880551194862018590712190028975257517723893891961184166596174239655320210027388509717324483554034121785786067251273091929390917749264032913792072967237962504623364072924398987643069404541146105409909018053677170353217168268858580063369273995601356739520167051155916147410757689061598495567083633854835847949834090613405943094203441775858515734594833433993827320991578940412219425579614472866547191490511296044123092633259497320476821603385312880495165440476261410643731164195088884856829000751279078570203432265897234670764744144370476290567921780160667429729577068153254523080404801470690249550938501565588880362056324446409839265484394367847252689023073222420827186692123318105948038538065941649868661680854481067028753458296285148057786584812832025736462558671973102728277481942032115487973704458621705504312997866368895736987412855728290304971960073470458880509478901612507000731832445463194629388970408589309083496609694155911022364950840445046765951190316249471198198881130780943590390854332985008739346051070266609477242688682958371153502413245245048933752462361376401876709786450824100433748573618778100678687983264639999056037301494451119375273363578242178270716200895723338189275968237305347945945707431764597059795493491609739929532129408189116888504170703858926178018898810071358822949306833028029102472063853489312636555175493216754167351928536463152071957652333454494009468252573791515464144303378520121878027601424073192165189832682751414365445324147452355774698719310354527843255102216103812230028085547170480045325028985081271485907466657462687790358759352308084376118948311892158316437227989914119683837909959064435894786781838503013558749919496138442905256644116440358168715926577945852850928866529089937981298099856701212831146078610436766373947345881295453270559010044355074736276213336253197124874226866456030340589224583549804066891853704317226558087163266890293285577070769072703663353261800778938328579031547889882634421707004927132158751127863499588524788153940063981489485154687255198899903224857935595437327771657770531518023097411378458707321154745527912024446577198840697766322329161453376230238078510522395914307697183062850700571013924821612187048867304416593065868300273076852035637458239182592172413130389984088961957464888594677219255932947852533520007533340277840980429808212275855752994861867947434717428970072204219898232955909752351635247712752430758717662008616476918976992163522424011363207190252229640555455863829943683223129254956270857932807183745171443537679796308331594905348790607703779742712915009094432469359833191227494111097800509202688605624972953904064461149421600174087392621511830632048749523808010108961721824858622859991559005907493761709738374492628924182902787764653237351181007589378444034503720418919678999227015238772943879114972509560265653551165159869351893504340110625773252389727880921061847807477115971880895462934628317856137622074480647763116567517915435958807589286848720070756804735638315718089144242196530499435326877907541535833101649915342474001681093724164812721082151799692675013043914126641451412215689182351010582936252563644996589250247843970110101441847309561279132683752468488612827289541111123066649344512251701563689279232230533226050665102272100198689304047452611353940897475407805159389751483034328648307403768501408897814244900089359677812113837372152171126675758228841274111871702531894525995660736879383865902604157597612932882667578753438459594098658581416568706282229549618743186299594942950833743804577599433272986508300379604029645358068198789860862974217444611276046695887538026818349259005636930455425293765593895991301104268781966088488982236525010865672269230706350854256805779081628260481671404270703230827158174186922019672503005625301458979975757478957399989902641779899153207000922128447429733625726051668996808472781771977335475454465404570103047770025961046800828821881983215909187329795466655660740437730142594292238837357237035329591647576080475173441973400717089672877152948987613354303570179995938924051283457907066060975339860520192883316229436586370313505884027168736364281964594204393584444470240122842723603443726384650474511431566722583205808830012326859019032892469440022766832784917102137358356271924258127491421969704031098377882196309190545471307710948945542390762114071517923676108252725208690518051023965531153133028957268410722843735379601901973929210601440489042093185861950522927534024965330254854486590725461041251188071128902848312298449440848084949336056166817615068122882568867378839871556371641218502758606990132967871620283389655084109077530392673186420848017550519156009899920450266629957992296323458579104651110550550306279752076632677241411833865868230505308985308107910867793511864816548569450529140311079395545228924118729944338834627896597027933062657523189291838243197078051636135797976013964390671096740737198379299051258785392268935571118748877675405463433391971959384853945630650019965748703453049396550278631551498444151326501021307583152018356762668997552976860858270976444167127385398880796094330727926814583430622271011416694826800113149177072023157229714062326104756808152772005464860147881663323865202265543894617670446724673942841028723723522278311184314559059643493695662518553142501568847985784366983974524197767087118333850919107548669341418186850667270977789730273512961107791666694671217571577643062916153921179865542781109551620079423291866773146772568461832482641079905962133428194469945515744603681646224437694999859904376456047981311926647860840454078278310169968757456718296963294439514715605401220727868627183434973211810544674355591816872229763688441144841548425284563443450469776501902904235706764553090979097089664967195793646545220074687352909109566769483577609926872919949364984697951464646840611387735138630007038794544613744388775564178567095627008445548899572172902290080842124513916263171463693354578346525191679210725736520014596271880873938311320105176437900070276048024320513611100193631252848750430616994143718386442142897256454767708744300723274389579884728714214065765471471521150107749750831992658705401378845847555607316930109954530911263775826649331819129112336198417730527945984324444399145690873519594023530701379117949884641046277705579034240772719509116442702009615328886823465299368811374445924188548043768608475388354707254215101510579366462198669158560914793696345788210407579801407311428898888610205644264723036707392924409406083860622948667576914198101533879408707974277481958726783612977749914870194342011277397404383204201361784587793909220476192568743232091813828537835833645576090391128774244780410653556185515449870830054723984604984709095257497902407899061964838728903014360288227666212973275104219228135259369963199631445042222585101414216177675064855586758189140452486772814324350425920765489477177779576428164867974538125704882281697455556387062482023112657460492548103708911997806139728372037792508413116474582041989044965853915832284769925788745902821522338045650893926896279504313569901940445833732974975363971911663963210114454464076427596974751178614280862774345186356683009945279531347722805519050562992274344656085339405043453115057968817407750834235890566484966558902026705999209926791636253523375864993060500626060741100168384206683592152408494718103186744561722716900036527782912921748370928976352989384821841616332444503069222780860930008382637277187503029586674623940740196992878603593698213065033474701987229206101373157071356677525125978278989761794370943349449157978764847799649657461524216582976661141505516354444058758673601218401895917336105293634147632178912624348868690052965877377032610713696374663202517150648023108221884584614213151486019933228712236680401638065964011786183799908596343537781101034677419987711756870111093812700866345873885489143849024528028932591280472654061793409645854830929103223696920226219680809686893769046384568800022724743125264678250946189868660907349429537239074267233696437515817702415514760520242665426606413321891703972169031756264783575406977080776626786543718813260072936539172704965063238394776255616537589048308492666909311262866281579047998957441052055647003453077567022404561151986578264016178995880949753188640638610156301897433854453566382565786663414577987191063916187864213584968617785547194835840245288270979592761943968192920444248219151708106386996601101919040477990425350360746625505619466842069559177407341842986808254002171107566705357909557955084215552124248708677958081051151542986948441995904012850394231112586181136659866237802909441288144632362738772522533289026063221408437327384080605054631711589196477392817227254976834521781568915784538793072096114679452900761778786444977883586838700266076343398277706065370089744201902360300553910457081659065320534867006044435391397014386520686987429334598187784542398233888004063290723042179129047358658259940745057073396768553345796914613731925517026193236974516813026075675688549867363678761612014130725364538083450032108233990824296645871327739552234626487272144679654754371413452822122873243050945059079990281593817222052698912612519460995357443994021937084412762374693186691864214853372043748167746167149378697271925121295671721705903498311670734458234147639639405813274282300112695858740776347523400548541023283360903238629678804708152635359190239338687844733145846902426129597327834396714452348395354035504928494737359984157442370539699376888826856961584411767314454011822220411790319177588995696461543535431729763925889366365728418490940951906310641348641063368436558080151316656052280507255357922907037438655700878534104485084493952921957760752373651734528000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
83000! 791222558004255022274077092156841699530707083986274462093861414129543935386896237535317169460721255596947241376235626707803451476523072866578413203458399798335153384536279374292291293029488613883561321680338841077947397484881977215428611810140540152544877976781384878713745593742819425489430888900160559988277554607245049687861585973908755860373047960195191050238406790389613849766697308010222821810094957040573703420040088156534100476700301119660227939741300042205876835206970327020324583729089884114885078397994440829699666865711882749855171176957949867754294177461336889139543074818695952726966650561972320300849322023841396865174455747143580685102863905464398479886247676728055490003742042036237456728133667967417705102835064541311634206096340460979590284885265543514477258771184448460558791997772676019958714230834497353558413991197228744418035135417483661425845612007619056420832257338952874119288776731731945025789832014821330968302032003861605103273746914025859350199947757601967758712799784115221908859886191049514012986149671944496213674687430328769591555610901475744806574356245847859070539188873111357166667324392135561762067555925333342676076319133534997077433903859838364595625359340374341978291588646469869419274556408587337825509751884646886372649374977881504059723890936347580154599657928233214685917601061098350282352413288048981795208998305545470566455364123755599364651978110494731318495725138568081627715802088513427668694241099752211922467098094628194443007179966139227782696170738511155154300445040315678425517092207072574136050771919978554271405444649986980172911199526164363221439308812485043880293877108434364329489083899658039771848621413386800862645844335306838895110397148250580443687291736089120578283275358014337291940669126871403455190359948797527534499039395702869119568300425859080219284470418304008034871264970403826326379815574413525730963996121954831474834230515015604685796676186434946098394928132940978237832469293683754059714711901714545536432002429687716106262399257743722816533071340348073479209957502938459484189604724363305758137591731401011128701091088449931292613271014029203479974570915783350786534677801581353723077386887639218120858378968172009875087697720742270870241625200534843287200949573935489066710410457274238206494728966176057516006501180944957855996042421425444722218884298028757651676295697653365952409668191003500030705618205638999575117420803023491624665058060156905699953442367639058406017196124256837419734852641182516174816204332072972534880347984874573941355264476921198081275716661909658599030400776675155997680827210749848628223075366630798089495735650223293372261053165780079330537752612054485080359899658733047957636130732309266196798578955615253734271269379751700680520385436297544214989853710243384148254999156184942537199789363179854812002058237858424794424879480400465347857131315715127954058544650855688479942255313132780487789368119789623296830440174766456267250390942367421882988242302873265259776423602423132803989811197529188004432899686755450763765409113421162492338736057079002175616422178712589415711113102720686158639075607564380511841327896006805060162133085238720261991332703691433254672588961819023083611131485144695850995323150519860499599972413498548673790774310868292294141712218179661280270019516224311832116523306152859836957738942091401784157028481639825965421938662731586281261485679934332025386833560199672789286041034936123564467540018989689185895051407239375651412267265850746463688714113889811504780761791200517528560668003877610428631603899099815558270998569822561401226304919945198702752517004118633480501182125866207072863894537239295399983552102435809520321844674358028080318487292799739902026196314570609804313986990241192687699631543995951277803362826641744650949127551767886722113802503186296685597457399895841830225035049179879426953758641735695430677530909320318165283131263413697670490078540783145897198674541219524763055879903951823351652270614775666246244009330998942970032547513120682765241984786698452233595512616526780136391896252386387426081979345933445554713084728578458183814056180687337896615684796460729530838566703615093609573168620059102961665817043214126841522054864237405296646637232880012516655191907346774689829587781161679324227955099631290609035358918369336964517213169815533497453112996034653087429865577104300192581495248068489583323761471997589210724339694689630646941980667360859085531724917537883138780678737269091081209992543151420417871958061385436788262934735402443694448538684194172319807734737506282093430281978232955711562581793156432444566264697230166883692968242763279904224787248798312617607320553572197205797441142984230889394204045693114995900257516752997005933797220933802218643640863616464385149201463375650053324252891553686380798138492404415528288169555838629316788963856566722780784512661360040386669146017249296253757918027687237052339953199457957347070197454631816291341526360669386419719053736602373109511274479477329433866816449864575761349234515924728746746610014733941688990402482737718636521618772963386498088203075037015347592624634650293247500603272246374162523232942144434850677746418126913225914688796653800925670335009131646661418445136203114468846661711492255336811179402218534089951853686106549451870839633686207414444537517623673200859981731725619186814329668581333522990798915945704402803167741526836942783813914157418708507922933608335336397419479640632594984700624247928861783390787829688003983071968300466608204282478425402832266840337112338387481674668148476713710920943063375144956600216057811348364560794039336511454959226928488795544474149114932231765051411647960251914625191454947527730624202300851549132781740203697905335332871681415939126022591801734187341052981477854811386209350672898879779847446774347982152056127045174790912485973294876891926531225280330483043015339691457534288561731003709229828830923214324565621791574746571246939051447245375564964087906699063366787951576471493459426663986294862242056330675479413011277591245530019193309159942195960930242025098962898278116808084421630704370512313440273989146972596975091637091239700814064361814128214769116265756452204650006265016794041831996973938758418804367878557394433764432517568928313236566068434453143163221437831624250993836449924086538982108250380372069143625866478194108089548890938753103872705837416236731967090034714809830199812688148123040448776442444555803704154056692409213889619464836854819244374776288489903665811920531053424452699897648373192564223448332816869708136703801362509037295599938691930376579842203051874012354725323757376104040678890398234707445227185476275580296273382353706799558069409418705480446067262838088097554221167185144855529138594309610207606134552533468370925204675482880809202258457857818742607915142767831486772279595677192829279303745161766418090456327625125693507370375993638959821472023419796361650317682941891064392399770036850325179020291469116632983733223963990641859269684618452123028580348015433067872259437255966882477317378295876852562203679937107900191087253460960333976262100829583254925535984311414485278122823905984824647019773933045105245449491755815073376788909965629147996129076189194064846235503363625177021519765388795537313911117302720021008393675861480208206583146529760305073271398613538901191168883400501412860103488115934641843156796555477261558931392936750968437731524138490397996511991846829427001964922737184726453062280494154912487501565591548111277021402971329030764941233155139175155702328643333193570862334971384384192475789679484225988676400718496737929682651313068642595429768832006163257423651995515892365047242904438563849430978701338083338963930015259278674225980891405887143943201761266905377402694354304062335556176222008718005711626594376550037614923104745701656039244369227936244254109134667951319318965865242408718126548344667485112363289512078319329377509517615102287765173659215343668996103330771463283248059322072309847179728056976921339294368769441271488032525336848588765173487779343589862128098579042840769197482373691710241836717111030851558189552578350529416886234544867260218554493404043659211080097097848773399633664490252578922308102298808651942923986166250525775830182216328176466605349719302120765102832784868133069711110945548094537097695704842362009990320751165152381082117791529179362626820881923054295462666349941073020323875578452914385741146611579085688374163492419220147236301766740356479046907193698317938053591516113081262942851410554590304552700705456448600294387270305260531967136792435534669166928527406661915229436361389734396453869257397515733797797280781398414077205433388979864297201406749206292556721271546319753304800426264943254237027126574617563456907487624054017902993768371741981829191505106114309623965636245231337871588083835208614673274376391281694627185996198191394532042818917330539044301644290158630810922329837878028567025096843168212453676169017128578678343881382371835544169227164331654650274226720977136067095029594108835929589488819570453568016434462579665865947536341059470223285117027195057149413713380962323907880154910916595910367383356183099563314988381483924887244836811017868814494788462688891836000918213194177116220012395345342627075779824586157635584700267686370376738296496618713925296582804374967284591079782693287203574886343620660979204326464281909269365690751032671692979294765728731414333991429040250058865810540125194865906019136704511787100323113903437323037562687811803341503260283865849741741806138310168654975115149974507564584966843846300363066836999303148662854198416929205489390764685361804178768630836595463015033197176224505407770547948958821612527067905178997192359580316038791909909550241850761656459331150683918330932759965847754704485135165502497987307485058784534113541791584394402589023983726560692718546915297233498003188319922499316751223226419867750413057646948809493942822716441112554328188372081227595446789253310705185837508487480241454728750151010480228981031935981780457447075399469114900634506824955324650746559313349821556837891865314861922650653305455831284647683731201317870721587226333836558794256377415795369232108985492945107866648102604261022760269838804092851002851731745191916553685271603078458553312942196743833371159873937048065550728780238606436289821188325719715181006325628691411383664273601315887939904230493991003610976743107475792785764911880819793277984144951667134094090947800516733516364353074324451835904473096537719803352770852555877786676754961407956222164123755757518509217074260293463746372527830398135593035111477522416559790524766441732093219957119894945823205421918255186054945480887272764466511361119747593052551137958323151015780694080933680123211818613756098568460695264491311159740486425098209780657192838027253132526154041287692062461034505929825264378295544025799038484880560765632097655197036786752655522387223641098201820566042680199295720607404513169756661956655991670388364769974326143170324371981597603887785701577801922945144722173271292555526960843602418803923883684759784169353917479800685265298451522742391827826965163010018295834623107898942025808315729657783649576008286769730037264929467674170100728588084878628144241820923588544326671299594949617113709560083900240394826190514897239261636689329103495920195964656131959497236192417129483705565264348900666797129220086343106950509115650125403611657987124752140435011854295058737378293470987039872379356998682817937599625712110236916939316900263642501983871686349908454188905332336012905802603486158591152943409766113699609534381626757926991777859627403508613754510615420887615407325935462537667725715156594775855765503580046873137977899923798580524772043650915193804461816522403967718302090297315768224229931069834375594734610190854377312648008681095037155809897254534793176932490455404188239303586356172397758863871253586038638474038476949041499873402616348802718609623316028675812823171545917342478674059321367778513366604864050418920444234885037757818969276140182529277952184619422433525018425876145983676862542855377619828392659799434395042852124383437028182828526016763155190374430923511866001233264593727230907030461661182048402062127176787017967938974370935322878666410337794719178324455414507196643479096669985391558315874826560877695633081838461802404553243555598988748282454692754199500756782527696194680572193644031031648281916926810052392785536632406165494490124690237615716458894429057320321669677653378722149901016235618697028631484138239638102520894724574548557606343325842988640999477555231288318354425209356655715589739660350790806131524045318220856033058794735823249992699648786561572668189125935808353522012474995501067304282771617245658313706523212449328836666239275686076536682040502613493537419914708976831503840785665234990907897431466780261381605352350804481662816162463304961041004770324886749164500022468777851831636887471822653871097895153538520831855222670760433946410942808974325904615924901807728772855537204030971225850402450492702955219018471444847874544934914102730636579256579576654427958107678512046512719201936162884027640615151228952147752978160419736246674428284722099544972256395301962495710672466427031071264533014540416260203319984608705097036890745705582359225752943083683503700952948539117974356943834599970895859316254953354304657054677320537726582300941660128445268136167151494045197593099679230915489879039389164154932558884895489843421356259914486357436121233137266834174971597082477479610821415848735387205612952351493539929343898207122723854724710095778084133868814405152610328273892026048750689950032464117338845077495279960586142738054995584181296282066555540810430642634462397449856785369737774778503827393961857454641585581470816677179657097749012669639706831574621249110070886886007153060004543975307059482239158560250112484335325415248704752077331866767465970238556053592495555504005433111344608368366466645331904568210351815821369910970526480950518674677051286937879192161325226448497578867127442483962034259994505415393575414002127980037076467889550208271373486291637226366048662892595113165717618896654732351310852058461205070709303457342776550678622884733139507089555062782125135944103012302801741448657909126067188886668825621440711518639789831603317543256197117427836350571496068511954125893601307191909397506270715558028279365100889402915187294235102696612034278465470548885736212442159465191985362077542080308012450913617247038729643727555258650949219760046060109620768354576617393452360605321364634815358302630521246256986265373632511707810173055295259253656996645387419749907792896150309171980287024670213514307405098711076312327835442901009243323794630745291382815219766620558241035353830774490985261790177678113286230807702972163849413416388897274624016892118380254730396754953148467602602530502369050925133690545311424592815610494142596806386999300007499937775671770775012893960174750178336275586218064207089410723826554771407544182410418482091908795571931065129771252766230424663505443246189197497730044237367897584108043775401007575518732366164623033943228734313099687378718819800027410050748832112421005198672154774596887461406191843651094146787821768245300013417952234507152129148993649451597219377514830134738165666268607809307544855335199073131785859897618971250831154894114745717272782429604911337920759308726660400112278937480993759978021563089447826354183455821376298027660350918918516306397997928678273776605582492091853128743257207878105966475443719503085405502606480230760865563949676605756039108025262146546736165295460417506681536584910570989714471027864299363514904089578114326455070767450599556402846903847799069748085494178804731947746179487736941070847628499058194670446245181836472951767373327016701045472657571803412610237878722489934208476641336983579616684969691587086087084256854296041278684777239320847623525848551811760074263837644870193448757386032187380370016295512271648427877040274540554536508810398521401278879317607398370810861265363130136310727340419423104681702692727546629636714112860411233406555483007071994793437036172157344035673258921954716751405564011889921399020483232452211877556976883180260564770418776060570155868446667864224129819833774203026941528346175136643804061405337578030618749091148229743359382146856641823694724936394406603511327614632648447224263438952811063099792911990860612904343252085719211624279059326328316768937066308778842458167604978594836572019534681316085865266843571108862830367526320447039574927838595098871578193800724828930830043224628716078935107530161604811317264571065648492654257824040591144217672975153197141412765595828511775378735766260038664178706641818277322812099350198198678306746817862552368821336906027352287813307331842279363288503516396283098037083647593909948467602104216863197755746299029258309318580353688840491781462328017535287035873741671022797440827841355116267561410566207868966430346079818511246702251895229460183114916331825232693603983100272279175995102093375415621060163407257072568137441571248985934101892178241689701244647577708315600262153456817977450515815207925150215584014595394467869281204308156023621997293826484853123238275899654038018640995442713714483258858326104618142118587322885695659258636212881172949572662492448190166537421635026139555128557059785292907080194063462174591623328065324028556046218722135550139486678844145126392524030503261267673405601357988784076651416623843452066691861219846309098730312980149989689518296598954126644470826787842978768467644838354689532070732284427791828640898866036726241087226097617246875815527250841780856670656004308226844502090648909122768215333912917029682219255969745568814264724313442788924973429472316596813310842198018969489877177696304890030647904656461963764811522695480351468700830904954312650520296182075699020226890138406275928796422464494685091704293096351169993635445031725954860190884836290867635553572943268627048798318696121679575452730103683458549223573360074484773373571800781040123197733661277596056751124141815848932906609677049698742978093299340276391257930252957080632268385835602619020961807094575984753228579535340089532443178977603989174392930322932272564043276998375399100516480297798897827340301452511035957551059022785912835852980594911740100377946531296036775593196954393258018238050855835155603126456058405664864264133314648419742448376066853454455151153389689667670847857816443853053223425625548250717031714370744177705627275287233162971595268785276685713861231438364257490684829613662454195357541850751825589673874490291570301967314477833818519615415738735224193532784303537746664293915346719021359432875066351856781791175175121515879530708820583186437542786751565193125618572337277755829394678699312412140287552703998620116531322353353596441477630663351662863649389505420227060137569080851775982900236083607675076881251016919912144171717959579793381320199238990741505542713405702690300569060494996350944058659660964316102762624512223220666522660855827660878598846858560069280372281403644950241836454978523143353236038272366556026378144956771709544658316695180768439870904362938458802554869327667594646057441362997286607536181365596210414275065386302158588949025533949442688834024492423642781362436528160249041856340669267936105928281937710176869957115566144249195483529206901215628554499648373917628804762296565577796081580050887752563661410452449546682811329925943947349517287252482312926785995858902220114437643393332242508810698784668933896707114890046844290430460076559515909251428920016277109554749878707328433912105052078707451877911212137869694922269633225752107305306397698243986253047832269769287889433759790193453985560171797207880302173626820067777456944715571619727198998305369938836233603267632296447746657249459682073755561026138021065837256685893036835023886552009565749239193870431983200375607613045791006174411199571869561952108377870992034533975191093475680416862600144801308519463663796816503015102665356509996778015717109653605326414765463054452227148519759528382181027479875391227363520702950087780348223834969631730852761222931756731530766593825278598500594829546831444746769162198841474099995115791794543334099450741475020561284173398510822610338678355957626014658563921886105775379560322622055369765680628338782647316379062548442493030769852562255788263373557145788775713573678009116041982761869759901659038804778946007511999051530820707416477144091073469142223891656347774493666674444356856302404337726787309709602296022024058972286514360298119345423719960628934906290100078900885994100727494824029601563418384747018841019696482721615716634133332292315445541364740209245080266710936392128908186468707238796858254318830237804215833765199257797511004370385251021860833156287749796344297019072856858852999957107738493859282061500933742739504756140461957830686396898833179748213094179649371037235747679116586061757627289506331493553063933886258442394743766888257067800323169259099184825543835365590888367311798072156305808725774382157588751507782128564034249523559623369912988325611125157759678546940477391378632240574823523482328547416703035768262593943398741536990502208251072139973877313509202155290794070153913926640920315322915988956316980742541493398426777647557430185205425372563354490412873918442307007085154877910509287625250888172793158084835214019269951912073473413504274592321847509926162466006857553111767727257575222190215179955383715610342422036496876987358264408315121065709515399210504592058437690120057412728934369905863082211077233378599966505808561205725205611008786321652209454814227432491657302137955903128980192896008054779375195701309169950482402377338197282492700562467577615897887597138921131660867663699763658876278371497426598721199768274942531242097239143415682075019251230233424366400211969536900028621018776255081679596832543408122143478377503016096360543251619886851737056495530317039918665296075244188746335503990094243360533194026482705719406375994934996343367316122815919665658628877728697722298105490354074244226643578990601534233714043852904988919177778776815854521795799581562134187498400516520558643153026239741128444049671667143762951501150174449642750993747975794965323676502236391013837967692150342197458083139201263847780101078299895356636589351680396639925065467353518047876929095358375900360630313959211526473922598053518423374268102715112813482525683020112405239764083061722446667713703565311271277790207661102660047734363885029994983401376394161721241788944532472940458998134015181629575397761352788314533661961070169048509119806281049501652034496122540728786242902537796735767963240221224621520410155269472789064205639964044687040021636624854642775252209189247797862857639785594885333008420739370245715511432849416234751905855484336278981003905438257907074655619172531121526131198828533163091794057497438869279800878332814107893024023282736657223582542239873999900446259591069931406104215486108747309401799777135401446195463341969080098386228201209543114868463319327332820146951537693098183023911552151641495431598217291936971079573777951301214132482671111817408608077483786355414943025311797947283974101581228883486415921547757896541698499679644855296632031797909121021653978042811477694474129491934468376736220866979533633521502308533308868129073283976509523558222328506182072242193294210041115722355434859745256881425656741223868403193771860249254213066818008370147064434865856308429654285204202016006177333522820047364027636676380812671642090439352415914312494155781879062089970255523605480511706692833460318312636650333027112462762822987359724127106176578982297685086260232213112423018580611238438272547713465012577247108273830311999640558506645637271570548952583724175494497487623284896125241948524065295135731005019966199073271578073848447087651530433530911960811135003174397350179829889142235168251045545661237074406112839273781668602734752337218084434134728793856780060015589124383215601659552661158537142099465579523535733133632366862451685252367344278294892597590856215278366788280468923568691493064873274979856195599128354690681780541798044019739098942051434894002048215031243576264040881050865384654093632681748633336345686059269262005907897599680738468012581600771194352963698842805075333030076583501850958777614410812444514439973322123051277615236248224942588228313089729337706640623379075657917651575416210254208163176409640607012374177841863124922931987958447179113017044915480056288470813005511410345174344832571472858691657065984619171222502863206992453617989740739246757293970527442283848202311363739497630424471847185718440979108516806987546470629145593167009555436317716981790117630146554765516553142155058794135180980675313659563908361994854200919558659776807196423824602212385670462689480562679998609986437380918893920013940709359114415290220536237456311176806363013505764050441027715306297615904215211918710779193214643993082171313401063651024380795364805234325920504611978777161496328584017831038587805503220897378523070346369820513816077985631823871343581055664170956016193271611844215050671404293485587617358695138534141549246978641100451568750106597506422640148060856445316342367017249766283459829741590649653833889337618133520851361833904613143587865216629218740196444707478578657984963252906521225246264257861867263851795938498216796569558892662188180740035590712585040502253769577568819026104031251598639025725806457516212774154725318064773890960890564799425947911721464646091097988574922464495429437169598349593009711356280858721050457751906096440448886238561418324408567642386486201395625709482535248787070560469114386937484896385703359227685163971582043357855306616303685789451765468449982440157470296853515439858728241620742769408629539540806901109882675752071752920397190109432582616038886009847574504739127036739134715986855803267879001264982677722248099373390398621942149553244631978479195689367828215306519850358404172651190954358038517723822788873628791343225205321578250842383573062148024136523977391859324747723818608692898216075337563517081666644902797798771367463832731198909705747584851727857655373368538638030359765601811970586027392037827978461962293465970308978759878814628241633882098269845195436800622565851036202310134909981567936058503161076114850101320777646401577675219421506709163893852795437100934043807153395402722453753861250735604908172100942649950329450540979613772595162577523414957907590747527162608357970100477306861669992479036734503680455530361799749751810356254535068079197254277293940607379749946619516702569138920136803487732980446487760372794765583002468906594341885260527857230962489958024568075897476697092326689311354666517485898449418432293616968252244240218795998324377746761297278537497278854210647170670324336927270454987322655415711919631221429479098880368631223936423021226717333643395655236797448777097550947138350309731655647691006561175506206772492124388691634266946648023094097370501319472696337974598438484607353997254107951742861064758837761379038969316315788901737924276943602061249548425149634402216080247679719311726508897766826701832562823864859724342148660449727091115961417849561830995029813482222151937098819573286190490498944254404503997284662246881044587918181153849272174832744662537806449083112703152384640642455539158154853617975424941267149565985888179211759776764836149457686271830521317450628945811376320029663671447600874472494317405953712263957330367918793809949076084777387467830492819100553462864864510504083782361491002531662291510823681830229595725190726515662561628562548380538258944214905896991390385214189513631302670123905358510684731343257173721918306107333837003839622703691580357261372263279541194764330289672468761736910378993759827779513219067416046328307439612977773681792530296553390262930148611619907762663413616565216294724561721769270280273762856374379290566784377307189204313269086850328074331612842610168930619522183223657234616727738332016208862624959997038858800890314520746780489181417916270005155265204207029961804450336218547488652873136607846980180115377114617425749754504098697327145833427615681123564345899549821644445940847495301712274427776161867856115716150719347545663147285002501425428894935607334500245674721895962334467708168889422799270213387058220347638784117991814946249871913349553759327211321022772344820860353960070594103066316017358181068052786389191826129560639834820560562437549054870013389859575457090815528446494301094504618466306992573043510205624335381463927262345352204737640500190645068421827473432909080055904440249602068183880185087997657723575694270328079137800309078016006643199010806180331751113307550111597457397844480660036373477200527764150514960220593410531967472058979190539089442541854799744245541321314537218589731421546796163450156575142689400440108550605105303613493120133563721304348349720276780182614851523296619724353469752444041620594490768667204840196720128485119741723076866245428089594220069494995589392857809732575822516516936576900304663864261774886251547795707316805831516237777543863234119789618790714776617797070819750232744399241038926764279648821312564414715471642471172877703185989325524008153187554639149966049332277709545462328220151860231300957475446608671648870853173030263362354530104898511516008025654278711875406403356585305281046392611758085571437435217625673124304354199937862260658721109627213504920948336387444730306468670068056588873128403826726879437135991902161368567819073639945074302599951619282946389046824983629945524401317598384648197192909347956966078449011548167502181735773787182643242954800586760856323383429636831558802608084257387092600330430727582360790657174988992640715541131625545829820317421843370321008087842526617784235178287505740780501000576442628380458086211880983904833341298306434409839365950653265647085550926959630625757312809299676920322235297039426617312782030401760405733371530276055991788151139008143971246889485103882721162167919513601739513685284477174400579191516460112317278141985301418518547281523796046981780302185958199924161914957763105522845978926072565210758866030235451148323023680740448038704603550233638469604014535624034815865398160304950424926935995146476125631027406762527239447906993391074418914108800002614541875370182794899349656904744303492205816268249863805236258778585397217139566018407785644118415087104211060784025487325658987020742224157683893480341949511572772486043190133000256785141405367858804807397158343738059580856271117971508452797843369444298850810908476924983661916631685993489477159897435733104439662089880641552819418660603863434921714955076381264631345590520686979850204600743117426603331525543965393811942265787528155372805693475068568977420024213190638364930436126717374914692418608771186223095741686837831811196890953945999548697286672428076103954069702494275139413680753430528909201403482228734703598082841878762191609644864328662348986417090510401388466030772239293928409261228767841709736982335994650584273694004943922231947916380540502318451912363294179245397335415075162749676198394969458032550275481305734077141629977888657244645397182739747640443616641161181209576423062970288501108245452754603829089346832527294253041924211486731981253000502589572137200369887415369494233323427817581638854873611861626462931942581080920632575576673717703912055184405464330300208263358506538579084097895527613238522919671570561025981655386522317586457024379230062395680340369498449650335591122445129889680793153431385887284081418048435828292415541951523279264284188893172636819176376069939972286699536665489850358206127357137548628623931665379329355889023137601617023121682964252697593109752190432427197292615832682976188872667987442582357657055110587089223816549848140291130503735520673680868511397628982530404992112731990323854597824135661074496163962840180634847290804659365602347120485550543344846812850425950881973701244301170856952940605376660278798442614228312492918052359689686397636935323971932758283343532131960500035603304517796943913414893596413198649993631217098563215809153984251513980613933562617726280707559493523842644641774636649071521015530817243495480957374719181650391223163903367744577403962196281711918107623931500858547722110789357930422392654795244417373661443870760016194180647612565329018815569424904255057077451299959760397210904313591780664976520917811634061530664068805761787345029336590872113265984674840484731940260519117482715890591365446124304229092332854347730786560582838960305426019861631966643724031786997481091561386837126401691495875462398224992992440156512337680235060785168390419078609355494563456147199986000588192996431326199261136924763277164402451408960994601840555323155633486439983075110089516151603877854935890930629686673493054532773566466296624087118859934570220512818374336008564197190246618541191379179415467367168729582130361043714460631214886744374163690635024660337246414005004573759914042423972926164097764569045425143793814260658860823015610859115967749261921862240303521526429461245916650409392150991465852098362678945946982084336037687455479736070863037294694075613502181217322575743869911663556075386415209026136170841802472712201849501028226502382125546286981444284874074471746554683061508565273309702730621635810172017382375056630303173156365524573812573137989602156757390458494056387516273110396151445919838019101438765497448333036471284513134964458003546407785974982513148415550244540879998986650669556195506606437229449560408428899466672636642660692176483122368771619154684482499986058592975900035674392486403084047811156303236725364472781247698250959063255891730703667945574234440608167470495706425743143407960919258636610629833649128893534113265399405338435695844444793058773199584709220306313796512001154177053012660060693545055364005248121321430786923200586671578998672327275659438255206644235473432295809747284812275461254334019782751462470652749684557566266010252999147453808290383616571281685762473919714552343570919206359473041165289770694195498394978119764240370636180019594094375733957830166388211109161986880011035829366357569537301044564926218006203511628303745915674706585638156623830905763764245318748675528346499138076839695766233600430291698514795457117987493285529537949331879763200177184439897622081641966793369543690706945974023127433884143294291858657684170634817840791150608134821628040190208158384310244368144004461284340445173549118148582263341320117658438764444067419478267762807952637190602848120465994329550827269210309931998915268107533218823321887586233517241134149785571381496599074425714448051946141873539811487698784558883343669233000411590724401274853655584186092876937614865792740955378771518199601744756987026113685841605886205249067653815982923430599306116844934690073821456609011935644800974694029373482956602646391044372334834270314766536646969433779304844697900617111536286789572382391859499420177567517956025949338844627538914627347946859253089489351918360963124128241276594470120183316773552636896709183354677670877002166307659587845598714586686075663771244837768027223014491500636123416246041900246471888073505225048436403843393227118852386680895390012808602665980869237667252674225801248749502221238153743254845958809842530004154642362665070240293371791865997562932380096339805748965239026108892392924303751180680195398758247093291803494989991809143310845676659787643204671591638632207931050306055607150718252014713069587566902509682321846880163770347922266553809726605828282264026864038522629092897252263124754364937868148357509462343748110488235100892507985372735008873933850113374902191374628406946487131877464063930743520002274329497724947494510216935847152221145221827170879876946246933792719387098101639132403588725166287379721135683619999997817203680748527314642531061279424445062368433308833600477938518240428789067005154149902781867780290597425282876704860429616229644894659609425843949618380385617370776859606311853418264107514053213543933965483467891056888635728260049076055552911011408842780208617469418195543622388135165471541560751968467329002230617493610195251109420167154374173512907705380709027487022807874789743790452998389460114686567582504728967618261270880650622585915248601542549647663744062573953495290904359776066776376529482017589899310930441888520434601754819886357720463422725870458423964317854019597552521182936071048692521987250805581627437335297948741856989634857868033526019599138579140618763823121482588446654962083785747211248084714349955438605178779832872584562927204905655835014802684273299678203886012130372573566194175878573941099258134319202205882975749041896826155703707942391797749739694468983316741245880494680831777591311346384259124371707930349083586868458667209924418084062750075115252703118200864223590866220028388017578367372202829431793568111771463738375654116119118516664636138363781173948255824324708701315281506354470721147554216422862795417686572197394483307661807206600650163901831725030218487860855249372749258023320524687873943021011761648066841946405751212456134680333740025175564194066238003943187538452608311593936757212719287628957041464002305542363400182837921547004420630350345397146572604542025489983484808067857729512125739358195005833908419698883424247174218297996064672226444072661191423561284454825383071869689717120033737064115841723341832949818757995474009683528478035024080681654592434695298922907013535121393790909968657552419503569902177173596746488872980550009928612154471392266102981836652268872137140587198828422037545854554532224911343385964831010120695603680904430179403820078556642244844491992548721212764826533828310291858662314253763860332053283162059997680806124661383673113214872016330446974097250560101797173837625191525415763274704441771022816817486618519415401774097426011274653045526019534935892334437100123887058514673171208468864026166531963284418165229536628853158321825446394296298668248025719863861359209782768609645776157153778277473607994379664282663136529281143035366616332651683044332957589081275066747954510540956808056524953271069804805902212895725649524362572347740834310445294585768518664407189729218052405880950947926761039625154970477079999427895333686900108691565733390094806859507841777866858397458198319881197857155609779177515472803232559694258862580566091957204230419622931087836227009396867217078585050435368725579514412140565728040878013587858421425980718609813474515316943603639647506873475830026441725707264186105231935859079658216826804286510716645921267572904083538272280788134211668518072910874425246904600877222861137665402327715654029142811484385415139244810011346110794004657811676610330227278136776011623950132077776071903178020369275880664653138801197195553743206214514029653013047312515125369989626262130775768199799094823740912306007636081570142403627879554027411693486488977887902281152645650612467680692970561196111403066854983825162725040324259512872675605108764184679730213792451406255587425672105336558594289575499136057658773859359912504889586031931739337432403170445747731338638662503772218771057418978865874254944546373888215546735702250524366456067420624986307635036053752081893173608685793957757896531210830129303950890786981331219663713990331171902173443278414298391320755635316879059979765483162617305056133272081872491460103073858575679167404454466686810482989562097842640924258553099537513133157852826274082241377463453312901262668548321985641088654271429777272316053459443651551426817294965780853316822468543586768732457296586183056137184091701971452396392242541248544160917045422578466857943783559256850054245864798206492453264929341656481737707976792874197810012320135535447880081738751663559365465694905139336358586379814752524982214014909962952104799850843268941623695751948633481840686932583939747808860260968424186471031457808805231641071994111433652889771636147263840460078281826603825533645898761115094542445758851598405551321836881785010636344523211901341617997150595024208353364989151498514258849808603418213017661552418209947172137039267095410175637019267722078200602795143466131198798632938113390672478925342383824714999345838346354287300022600303230183186928057338314799104644713408937546503732631754467955946443138112341966280178386408295428143970432897630115571056824621785822393566935939937830185044224390174554163858690114450349949521536857511270728357628376242006520119407852978814999665032495775599597769205037336619861147097551798538013269799939478949436916123400410098443377504611589242567124950764813836802035206336876811148105981092086772903210649608418413939259439440243816995121457695665186373794824253574476098182071941121933636938348798652305341067673005626350359047072906151694930857639021649159104366350328738983197210218351663348953105042849037377083295887482342035768507400318339015388769655281599576807668128318728153884426659561012417525822865575272806776963887461724037029834306580315997345692821955249167539855976670665664790674902800489248256857614175133547767862257142328881477256065893990640145807243540217679515539813117908122322040638193934878319119313535486553519402093724255839024837453818963248046275208935210808182096278571870546878593293046225658247048430131549951049520498182962437687700021592685370432342512208509481844934964248853321839646050461916014741402362267185693985236881508110301257662317375487825448779135001935283192185294615548063872553299316168915713551785833631825196928591317388176041378924138920491188547735495223674641477324809495835608988880999707801301975049886661464855738758515273058344848187888045242197856326336718823667945805372168378478164184803414043989385915397770333405479590334194361532172513121171298800997846360794479382340615241411619531028483259211359859743156427199079126697033371589976991074783420712514073475369385527122888171684453701461645518202397452007337191914306222790597096182000193950305755739357197660145269660288850999977368053179329572719535833213722776470250863147744841521279733474191137317442013128737721416550370876860095413090967842716936041275155250127799853594779788532121360430471541149450701157698390114289697121922382970536639654492151349666216839638383051594857879351060202699008342106361746376485895373525601748131723205987748157771553987673374220707479528673170885539424584059745611207458531404798645456469787297179772499555427616256684624135398157135667588789875490011744099055251542618020101542299035332548327261212071366506653604872207938143554409563098998932503718150604287615402630742519328959293711711404012006427531108914926911408953736612443094685667103952189086823370557244932103054737876965801385725936356372481866938892803762788279734174673257738495612481190199382552961566568748893739465037028681791688643271341089141343872591369902576200215305206659767971476349121284798079684424005022176361344865018467784513810534190089043962703925423665268655271684476352066854348521519542466275487683745657757266569902912565553272849280585686511319330432424916307453283593705955546234903408892081477729039210412313547317854418415594813365855629415497280152287908074560852163133665118133349652380333977329111792238633611640802259079966603364050380943570131302692067297681608444019768940071243584404979291683017185186670290058417871635606109503404025988786881012507192688458860107489932047987262579791314241076507216101691099809073857576332102310830706436653507652438003603444057902181610113159916732008650318283047723284396256998083888442738119633269808299002933985162883906163374111708887983824684177717016447838495929712140159419950009326364561195010846545205071379518045028226488708999853575105677221452045541033433385805579544669818717275795061990089384970048046107836879239786704478774348181365668973604855110925264992372676999631795744871623136152088764573489290181831540873948217685629249144482544335664237496340883344886918120610919135167308942721478217567808603785019621271571295992795769980038535482497263564283627833198229542876789642101337660691119867290236818582431187206820683493931421670586463974074341286693014696559547792591331927299845038314561988958044474508088483254855302018679121733823932291346051732721051583189438731912979087950528976166634623780877105132408801925754761678826562575148269231762858423214401232931289411288126886812557563666576785052387796699331037690100959328211785441925347948359116960545448533902910102257466459836011063116495702542239410795327265387649416852201281420935746008255346438609644008156125255501451692162440698876015906183361950713081232150275428453935323571986028636715776858507367784227174655971332735525835689271016968992518408843158481101109991260728953347342777867294486865778725488767733837599238869288115201291292240443314264256924998995514166769688930706773858536250289894648634805662239989916490245602785638855380484774855374120668613535045479323963992109061233756561246837112301608066363655067476101756628848945323239901581227162180645390502211677243262206030414453926629653705366617696110590996717634285267480114011386842516945371551863740734472615951928806468828617506920558282849227212266106736892101361282260206522925683812843641327998002279158848744640147590797122693387478027476209925047166613540960295725960242420098571014960229606369952620286939193567287867572278399772488367401919425709327528775482010066047161851118041135100735226315910458920573772352607557724702809973003324820733503225736102288500853140545044825469929813854846698694737794183677274757796489143977470322480332570641813986908791164714436228551341830621788045748033512778323035729072148394285770442232160657256088234118781253415501607921374313435819579992294791114200087678498694999311123073671560097654527284103948146707029110808490299622238616127557218862014889924767599533333351941238238040045821456322209830654250458046271375563700967726121367159490552314520278331141656362679692926588263977426890122517806931273608139981975511116085640452486960506206961249980061702740395087900171275149147571343633547521230292847217548676864056280227624367162990125002297873490019208650704745325134299040428864939113410505602191574290126683137105935805855202055016437200145844398316534003845938267400738621873315615072213185935442135661722565114463455566305150214966038596707255402190129015181442580736994843482078313019030099447177436877102002792063029171509478911336547707240092907136640115871050730168759510295295495157030227463534463244376739459175000360340048525880482146210269279496360115111319679903995142778973884004824166828173837580477081653162930384413920146372081711317035370280203615888663505235293588577602749130378199332781006592448206475153361802065706047324117965817954141010940730801850411835710734122363633236868985160956771378240376561985095747427704849269874702773846859448542703831455116507366603657679759846080168793980067902838184093965335933931678314074606311213219141277622560211600155348305840806101741937656704273698461430549884967491217450229528406769692248172257903973390218650295865058888398508796607706948891028555502253871182631586662429553979909612336063590609144121292216559007402030902960966233026471384210957125624580099174178573029546062700836486722672409376955658015470167371830897018985439971907473589275184498483033256415515810678548265831511632623436516949058914613009673797840255043635915419949331091482767850859973029527648810657222942540524779923055859381861793765510164324733533515808216177263975699850821295724438342958096134369684773993600405717558287665755831928996255315822389900049817978753138231316032249258729619470840666939511000297554701616610691481573309119439177439512556212254302924251708611845227453417710938022836131341586060415653409181844440671216372449486111384934981650964454038993843082842023992957507492749435924926662360466811957311866961016354465494723165393277144663405476328980756994052495315463901865609696266630479965316428980557321415972867408457550975282099828826331876287380898903168140878902476783771937111167798367066813296548266356811164348896464974493618592457672306133790374283136693512148299865044158517022973884267663275781999424386774160627688429540662886187521654343388478077140309687422737851360211325063710729200380974275226796053587115183773733970770869246891404009348266597822339211029546174512267973669125123008019124461959564821092300421998691076947576410429272823479323553456972248373045125593910259003617590877445706164343653863054166898998089755246012009441346223492229238612610609610514061714617669676343188047433698205173096121561525616882625897823854694192243035416683248611721680242694050875732016014533979385453263369003293563411512091130043518819183430574190411331521325427727708680280759155220380837816367096767991210404195661181927119805228070586077406499261682015326007179902408809536416855454358627385636609410790383557361387621721521913687937095677354405528213902962648006211620847554967313673996164172558312400861165369279626561458416510053656883149266986421218416768422863923124298757700293075027702038565159127848933971912405484778383997305877885485813006018434833349004940445998997683981004130308230937819146900923758068517236076243012602742968677370511187881935057493288132070302170225603334683537487977071875322459852876364371665991797496201491880505325249984557121486149941706452058976943598914930601200823003392086242957729470947265301573122854225703174251517438299422598749623049805804813896606876564744833514660392690265520073999199738504909894227894390103824175562232560080980984040607101696137636021078966624420934735277513984005551979806691785316750492018904547778308812672144188688031885563008453233127946638048220346372628142921132991843423902602169804832585075116678239602841147960342747828009928309079209747512251751559057738315803768612720089502620005473282307966894011107799533832683616332176823166737743338519250318084392845866591498867122729618060228949706756563973282175275431150106485358741015717747886802028076529306714952473442719577965131076396332769648697547801223022447862461807435814144910903176878043392721594790768161353801970643109005406851988467996399371133000242428699831920608012645233962148268013260670768801188674249014068621892283828656103804854148811108980650215808586041345059803256090309073702038934909065034279911137629705011502463430668113776044002931801781163479690289249988099355856639326448426855445548218150696246877660733679080491429614169146486835576865504610293177593833759390594781773509965137106590845645147871003814577485440789274528731833979024037370854689051997147073893385760627919467930358357288780826392523963227190255819484548689986421815494487962964198112222782689954946410073200607500970430365622967864811750980695446758734522028055021297342308383505824202825402045753468202625155690307563538590183594156288046330644274448613813201178384273122384584060682143449869032561128323635030077117499915835015959463117502434104169956441784876914805158935664175313690069956896820011135260864362725719670436691207148879688247435606646462300032053341940791757640064328249612112541163217854552157603148131946958067135958897563149853565715196146382035332804335686679873890397474788868845254152885607060925900365508014557472527729865063341843140513695970184536807053482207175061266360009708592355484683718245361171908644989394874160416121122836433980078013934229742594400435602099876488301925206913288708398617157015885341450234655328376076893778053148686317922854267177743821889645800902265342881133712408271980362774427583472072002933423415995366523834345893151540593453001618472066099033531415473625308566921096835744329596082499501427975055194313138663508331623396476504116208183818298693594756268625253702930737277232638892774969397615362759585516223910541059749145259816953843346498056618362705786807552801385383412490697049768012306561207021706215493366034169549055842603512859187134704098197336261278281523038690521003188582934162868749634745044970302150384691079583036328210071225739707169434672450889375281857780687936553835910498170556002323479573997566123619933214395882063840036143436083661804164727671994416705358331033053667188894159964059945884973021041686931573618275094006674902764689542654369496461922512429125102730482393662661855554209468990530303073705821892214370102599289195619263663642317922846345843777465414719552109653127559525973245069709880625373363258819074147910733334736496972845023932813039726399651775029611088465210996345536326032599315920486626927518788687222539418663263828880543663664522408724472631383045602728694642230237802465757530557614858389496505131325316633196703321455272493343261629861738737466266231489697057499389743513635198344439012386391247578696734790792361622926406795780808586145939902452896541235699904341102239414637420572459450553017803516264140073812008054132054903305846349208198106827834347424550362626678907032902605019361009201164102980567207276292879410704263265812143779094284603884413850969329976870164483031364835218456914440585447834380549505314506043468470822540688292983407541484665421567823998865755389981456420789823177455645595574640132437106144183876125335431385166499189900263387320965852673332608119843128810758939259033361455835556140305014796851346783963794691235033451473846256866747813647496904070094636914119272235296180748457870147533285056493994611245204541171250659642796690181922125652715771774488587959210067748988784673939655739172299407344260571946654007179604330064370486826609024951505941281992156849370480953289591296799229316139032054982131774672070279998366474208136973065159469315242754965670381777976290546579459467235552086882693742475110621390195610124271895560922241055717408184855670094276000676436920630495310054378093036861411841265851808011165322735870886286085796599663202196089889836578089907763752053356227073366301938989151665142666320742183457368218027410897815082746406936399331748564553606765571342615395872136793920459776244480793162154161917235709705376149485568544779523584170274205350643622668643633589031478966347650767521378762484902516340525271068896974130506155841510390809123982132893849433307063633676743513571515645143798861409699525745029881409927473457887441135607551723779347558011599288263205879195664639197782835535747366263521927910426743232296005417336256449185303471469142001619799335045418143396902738720308253445384531547154317628634545096090625470149556349620794913000746596007771765117927237407751750520807475444786575677687363094790592254677320826176910537619851565873891683476710309647572047018462097687114263777244598893053636654924940129050481698642823573517797408611542613565779369348828973984238789435604713159387909102921557344819522582303620236203783761197875790762436264481143185702609480326778397429193187996339644987258807704301561439877210164501182086244440808999078118524782984094382223224767835747840318510605113801376813024384357912439465747146468151735632614724209174669024291309052312651004003964221964335303067887974970716480362086839616274691911409282988603259477008868433300742692664619744895861146780022676147536126316866638386357278079022492066204760581462283644425005013612296636580641659979767400263571238220311997659520233216327990292634960262219044595729652847731050197966660539344963937460263085670273762734887565859118186272827281216846784102609545410598157762717955273406313648940666770380329703191700680074602391617252774741553578907860541873341036404746916846504013475052754929748851585133018168691319719151757750379147730407447226663543345049927098559712435743412392209246103200306294698119149525156480772653023848561454741975047286288325213374768332630726188064356528211015189324791531644873438458985531415350122114323029084968164452601543475472921659967619282870520176729929147254509115721832643254642178524590988780041920008096450575177895797760999088925285384842343785330146174518619793865868810968989394933585188549180367364136506691744724908029756099419506351670876826936120914229210841662651768454051822241601614314650220387486013506229859564647543886038242610581391011348386834314113156030320793782664063181414650365923888119967579016296850861148500941560263605493268180948711898886519595763995208627260761734000775703349813003670674175393930756754026858627262600246653970404419090311679847821172990906474875496871854228253522616416645963782571324775838230245235178592542558262996156224135008423335382757759278670441081832857439537044183118752126917917632444180307299247781951364202184150034237577267705797579471475996562069873969439227558810134287446213789745280794830927998925421172395271769152835582443684172991138158858300857173260488593283522277325640231975290067130721705302960432454033999930932290851371711722542482079332236086659908837382178280141671015049463573989212836070722859162466768306054342944647788885102205710277866807549569287432171371668378857012402863667256079072810013437390785530165898121391142205962699195120978169298408141707593502481595242250111345558313955021228204396726857382850927143063880925124697382808496719846875748179037166795282015881580455425642670899000728965165529383317023222721149161418459305949861797866462006512457396864433789449300857496525484522850641836653843874982642563797193515983190132328642225245897410151079829947724184229813606076192905777612219076041787122900489449374950194751781781731679216192692118907100854333325593192401748426178283984200993473765614714198457637798748757155150158412291339218885059160304446094946986293916245321107423828554893500448720612524501680471238413680961697534244149763728629789058791132027115546779845824428262352287728584544919413299034938208146683693193793190391933726761411307608724601241775535157755736029919283027068062487513279607957756150731561115446832280199910146983525781521658257580972895042988384242961945300866031022328340077675867152526699940719885272935864446790940526282313769341972163435697826290877752357155003777594316018782561718169002273372100104421211536103719237423632233475568347112176116837707533272069386768736113944398974088852410511564896647889840295148054775971380656716914868952685753404974240097263158130915403460162269510801908317060135111039468454239357652056322395656838867193898623986569226129345354228563632830210017864117373868028496703584359161470034628412610287128359216403798138452464378028512714517476477812251345849859966833178751829658152357338822070730613140586077907729994652839099030224271141836784062135628316412773713018998009187218188346268068202900238173031941542074256541093138342430872554876189847411777401060708076652619837589648322540831840864715045404345344534929106701312388774856541884420646718340917348644196087390768680480618405439268374864719879967115709982389239302221815881328285258702140339603119960509952914638677922418961847257687219587677578717888033099504890607976658081168698013180104365377467928270645700277465148011837858355552392728663110563183405811970456173160943843741694151232772752050771089667264663609834726622984141467058335825995133737410892287867202853649645551098817015666670018780613451000374330297945083602991121683115811138988290160909997303882878404287270970326743679814940601348953950828615204443489696831569827501048490543744059267779405198224072533332253989298646153067274508568693323897137895154531015885237593991762629423638278517369970092848132759023777368358842640181701754091073681916488626532784828704224962179540836831359452578863863668302497021054681898993782666536065415819375766182898387537526560895975326571434926742102511773854470422343134265896802644178716329093122149030386840900288059368952836453762376152603750297048850031072156139046002637995539215257958832389221895807687642633953782159423451977473003702779168125709820839162212486894579800653579959332331357693154600728764840071214085807331026157392501426672774088116904115300579452157005525098459723849825825275180667801600076297691861317586324885319975010889068418104780556156713671192517459177021812182354856041954934743675454232763591400755550477961895523385936073992942055471272041716108491811157676192780792702608025173650735021458633962477920549056315327520110716754202321984583434466030564929083009935591704231790502190438491581119653026035334629755814732393018797325159283052294841756954965093426333729035032840950992753507512901239044309835139133201739574924777255916835624488452496163950217584158764267584437904346466165156545759383041166288033324300567410698870394989073533791865430685243051400145000783127787869563687043604915145821605092495976817295434649159853544812410375000224536494707311605466321930535830332733663929023686944783152651787702787431160184911606330697084458651283518435061521171874539270837378237451823562797367143194392811005828890133124373569105225953343462288101463653879903592170526533701667352680225112431837899375003745345036910104765879077772777313176920700532823940015539805449452068370856638691309883648302933811358464202048310893827812251935469919473862793481096805046530969466783515964585801751293925955608994796529155617894751084379793291773600608775821944899875406005015645571562820779861410610519793998994439004365347502142328700401574559958438852584108575424172641199798939438375564412199541022365399148169500971901429817788008848687480310534500409475744753217701128759965023095392125105212567003498821687649853174610187265514207690167069535645888730617173640798325316974061249989412876681275217364395862619158239618203880727644208005966047995893905861189627077007741390852675206980254163890035267959568028890491002207057277803148789424897789910981316769455803424147293027261009935025072675607763003551788252721451465693491657174359078180269548370887536208005403489241075481118836802139277614484838301869396948537862809255568254618026065651911324416088105728440668762535986481584640278293337987063069631747366809194631143696798135185429808955120972807852159176075925718564817821664692273345084312396904967954535530110414690678102082406636591502618997919559360069404633667456633638785262765972086799010335943789772383137237997488696204552367713222247235285098603127356340770812335164039330292728180979696305655522233937965382447170535806084048245465269934377470396334692084271918416388558415215434071383417989592810403271870277503857243628514954846152725167721713112222940592249690063600925997015595446537462516158645035329069639606603699140965613996243220393683182323149443149845803371487457232717803341458624074921295878162685099507544961669963051033437252600013789733814965807740559442433451020073319498824855745863032847319415286169736510483928205869364952497422453646091756525068941451693529240184289535025202153464674490012441878706933035499156185691970781678322440140682406925378096524218672358138724651807284148668141561069240414018591932320105509258530665619003730117151656229571761387099647432562212804714940995766762141787259112434398932507210947524220657264673461896264002898890985231213487517474301586246999991262531686147803404636588049582183003034810721803654892604076083418777240936863429218804258520734253791849790762940767734275704738892175582195807840922178026006083912849914211020354063858215630249367018022477364283465685556953532817039806284301742756260085758036697523264116914465692138272467076939018821833815841928102965188774185573841016489810805509629855595726757406224564564468641669507826834703968977040520359045989574287615302066472682341326156172105967478387408374304708897838175183195357690512265211810730435447301033106569414956782012520320697750166415206120829253286560890363556501308630547992784409572378773146519245169011055081582063591635517102549220737015201852740854211096010361091174321197068849736823418501678211163332759402136262047356862017330188711990605584281232598854252466095811624394298566840411163778489357389496998452235217193608590990599861321573252489308073614237248886547758726823964484556278722376958388868475406807610619316431322807364965603491496715286199243936543696370238121822837623520963879204296633475307425496343013042591918118211842782608773479838352549023805585749095110281821977903326629646311735239011632187937490058835398646530248964333494862274519880726837410041464919418204868855927644552778667121574081438069686545617141131965291177298440471214643926358634963288956165373189742084296160907360935378010356570841347908285614676350094483850537355770643543581605287866001854916790720423864613234763946053191126213294665793059065054588693121856290977110990437747299506117005023048701762864176734055427883916253840606792546636230293426476059702742173317295003429661234696200754640206054245562047467684419146731132800308650802376812398430334768004132370458633847941722427798948636444830249347957453460066283568598900069370855462698999721926365432934989187881297721896063506857147747130462271514631108878958315644764765723751100819438864379916985418794967861117775178530803170045730493714444492142598720381797539905391444024565813645378066589617288279247591681024490781319725356682188067949799241063466672354544877198016484047085580455186060463069757532280776172920624248604702800509859123151528171197194956192136259099136248834043445683075077241743999347344024029063677902514663278452352306232426552814076346788975137683752530094802798086958915153119906552978864970243274601750529090416690039359232852719866087051727555213831109810790812579336534130855013451806960808154777826321991775908905234209359083760982721318967820300856856048871025179569931057387680320162595707650576606248019284407319283405796108190972232365831641703721906473576954423814733738210870010480479966213470526263903007629516156222638108904541659512714675232670403619627591233375532142280465662372834727780048443197913491193736759619560174186913785455347066721825299299704843064595907705664674666910036762795041821886568926504675891629745213747285440247403558000161100443176256029859057114040610988840241526501561928354524376932723450361396786695035709825006694742601528908221733959999427982180859239653786838596065693539864506142797657434489788990783128703407981122611805934810064776031720166054467050374015744883768846478897186784273646160697333381032325768647551097071768755883404828192508023808169672224750674055518109276920129546349598563642769582696035990903077920225759531798390321258582140611780472324037399177226882563773914888735572627839029700406702471893464928840378332011510281464916239084417064154139656490168813220153095619643907135356186806758154404740918537377077250075074224623707914871333314287505710412747340359600915522105586253479894333357442097025715791862016362343208259025523892138058359384313015817208160917479951489070279117924983538452767384097186945511326054480444369025918272728207098888565106851585499939300226737369220626766253434401871161798383070555892115608125404995619868660645861647362685783263662802098591493613648286972635958012318931788047348010229309053840248227029447306920454845462297595466016706475211456551731033700384446966948240125764350127179965450745941916256318929404566974155026950631936812474066167975354453469498204452027732814785820388211229086376691094536735976887157180403385390492860408079220292318334783028627351403267402112145745111483172161315014278436712761624924278289123563034697281174494521434305228074871110902101358792437228303616885261242157162618644151783644995684018612715052169896954925523624632208988524318108809330452095010128752569198002253921073852015916393759766743194480918706832892461790293679876143834768990513468806388094619368800943664740679186218040167669421036589696587173854120936880011991438701771868932394076241416462185897324060176282992053926957249582320336887823302532379735255175848242548673727072508722589351989313171401724659354305366317672496149107472779903945069050376739560668154039978596333870471300793232717804740473719912293133463922561569337840295963153794427299382872606743864510348864799063877544270425456835784051725258228736217534796508867711730102048296181427464113368403106321494481109621016652570813374946842920595263600640848222516747318615473784216627099912402201993712143743160814274201321230686661484150560688278494441147168980709528563903830785045304572738854684177019866139919748804905523467871937465297162746102837786799884178703592574326669201210387008565184478598822701622074186445976160752151575235067365518640001706352131596967869467562745509670541942524163667016627740824477554301989980273206802105422435570669651707234961303293602311971794201199144774645929835584735065027069028558200182063057656019406568439408079708192710744043309361825679283797636734298322361492681668237379117894380240463018625744307697612261823071269436550100785830213719156191768244371551382008677811525536740950805826156507594720869319361512812443048041931937682587958495112970929630568904036676420602930431853474290739323429134785066909577841666353622858700100704902732326711134176521083691564548473199567735983395514379107351543867428357533789895750649084760448008206598363016945444782538669199100918858029155914248233388721797164427061829635426205627056999226829294122090461811208353238997272579994075386857611246099363565373199004499735803466999988512696081292070527766959388496873965844842176360088876118867849781084789496693560308145886290550353548492572018071433278027619909866891274105040887476253216689046363512640706748482343773967417627022827335960955903634709492906401899463328383883864599137582575638227298167131132657215021807009817408745889072060087287113153155854979212052665581358401810282032489765883104791329855132811239933481459730718107592334574635700718069329511354694258722440168271425135830108771586062283264031946408236341372913596933958981745099290388852831632809243295183991277583661206564605065240395870685822276064877291085771334151730989546730476048408583421297191906501050850397240386061050840535631104990099351115355679147491671290057004558300213062015706759251852197608792587960676168604908273781275391524744816369050437975776913536406765184824114315989780415812640880085658789052816995112456383474396902902616831920282973017269922116341530757665886454804008982328998179159973061503105056157492914709729834692314598324729617408922521128735418824791989669479731307791116430961741519250083110948720402556344270803038935903505490079102275746206019631757660283616969578412513488537494079776630639384627212474361019381240683869775113013687830281404685547964300737929383854034882088199661329831554090197309661832387237053181042273095569363919737967297709157593080214474467002134709879144999621690196437909978967043447110179597288191894085894493996356072753547941065972398215580554255688584777217794482849712789613432428927838454556787683222322282352882951057491452228699984189566266707497050975275539560603189734564496928915138953713203003753612113373021955482583242736868276778802668422438608754021848312148263926471983730770875549917157047737875700209043822357401178039560795767841406928471702000869742258541758984607384246478923764619012900381952994198832227439050743536833216425328657313864051363318675776214731017390369859540048419074485800886619715929282662301533552051857939463431104882114245505416754890546087508726703745968621176673949126741783261258973299584922495488162292741106481460103476888782984179880821372784929105308080658272567619911663343762076632111812764247288773331637027265466264535919547201730531497279211054974115085030221949338692433270522225092776915462831728279400870875346044322654968902250363461416123989151918715944963830810661694038886302625437977789437104559161769421028995627055333147971638603674855024590362149736330340765114839611150130667276662106411890118155620077892324403233087984362994779709430525059136691580668846162091646764068651195497174510810585886093369892499672353171436032679452771988743705321175342618376441421863806621419008383100063980139667431364182864083764803292200372773415560563952418942479653083176865935570904178074498868875199020842488238888987612047107909628392185618053227968312355723848627419853550633993164430786362713717890670105366972022467145368953410529168848419781867449544141075073442910587356534793743730716024664765027291008777571350987762715971768725899536063972652316898996097782926604788362334133607500359785796954880879007270160882678689702602217135123243052261573848587932413549642680805688394773715433328791815185934372584083545779573970762047060792909270374377756825289694362524981031634619840348069688501619203566898859250913652063521039017004874645690365713254420212130748139498937692447346851517071156850913362323602309567421967855548651745403881093974658933241679204099929755915858240582746875921380124372293937264522464711330787418213494796064884470078966556887260201261302107703893675813547781231449405166570801973288138931976935817953216889491746383982028851707337095203253897864966696553162757580386179995662590323975989388566042694364329040989288189143004638232554051250575495069988687510073997933215784809241471123203115057655281569321272632334616103712419976180951709795056281998143535923840769686367708942857048950316898628019808763470778059402668296518326343642545091164220637529079474416758933853449716181920964128756277403071528988247549552550184730028078737696335562357119536425751278688740310916803705951510348782095328384481458987748915037868731092470206695379090888341887349443258457696913279043473007785924132088787493280435409161197933538122374803007677069933536152788921482628845477412020012620299415445481992791607138241998532205725906021454607426738430150765959794177563761851221500844646552868422880111926870746106076700952427981664577236231505784378490887157400837678097690024979794541666416360280441880801341170067637546835885120845352532121909953699923111078446363570619612886347203844331061660461191979808181582348001356366166062958213122452449736745211394824895317141758529228805892801858844815823490618506744837069777736936478658429087298982541237791537403543172366806728664185309147552696969348118496601879381269970017235917390425413894457092562591280077218702716688626061882139947764455319413717037651400276601464263723348617896138204258730315311171224290417017301133722565743621165032267488538920845187381161211338020311335000391500435361362589222667683140801854222002202424638557888119426325243644594659768169863034480728124275809931401680355712470344755536344953579577207884585933420663515912243117296351862235667118477709235700966199693770003071616661820997027620208764954740720216717829398773385780346728689376712015241419804069083916826890389620911503301057291455366757980122698561664651124474195320379444891205266711925501166671388708198525532924026127975843715303106033553995287331631712039709038626947539274309572756282784267958301776602302016815479368413301542964863007642620398473644416430817892914053434702455658661848921320073813839836345898570558443419007128887198244628996197220598469276888996851450700435997784505345657865037222741570940085289176100022647503477258165845482286475007248424567823942248792600755517847560932751084309336698476585276119052822671357152667269758143079870164203398658561343504544290150358892265634039468195915784125021578612494238487969094467123548002524462951315825960878607827397739092972826471564572446415805405940774901899520105663313544493110404441842594840855008029467031237794871153461911009927442773268873025065017714206281660814147422395259031190513942703450702635244044759063041897602571219932929150953566017633770366440401851483746584571512113357280003854350418150799398703527938819066294515448408905227812825420785195177748845862228442436745331641804914246281734082170876926901689435174029273764975396279763950487560758531260494355206267084321096496599990976059815652665965137148834762338508086409323074435803900934691167804646592701139305623944301962150108606056008996313719921019025640695821219037877307490570581049115237869325475405162599973996979778908852279684196143267583070348297249199489855096111333484515365169685420666191993192909426975739170255671582500257430251932186646541823885950472025423505233686840941103358028659905674089440485736715768995915911680361684945936494742338345418463894152171311627920940542887093773093260771442436743613655144945897064477042774187778388743003362534789462541606515723804456121782309267840809959611885146332564734847959130409201242915411684544832257961627550297465356396462985295961630486031969723935015498737359104034913254924608118600073287859105441622176510666136269242645179755874503572536021407721184911998387446037188874408168544018078443417372460375146396603014909722896817507046018081321947935383763943281575722492837000936038336214939653027583010919547310382985386804751087131240142237790530378821018095467057401770407661483495734037669632849561646873164310391989863773188171431279283858764118153238901125195989222586856520984499433427529212855991744135421241414332882567491358661673519356805029627593544952453027797130577949535937010805835896612736676602420821981921237841563234138978178530849863219891722128696164609771098987023405063795030623488216852888331027005281919904665852190185750128319412809542818951175135880088677524245971841148767382482170109298401893903012955988024027336878725703895999209287656004593536838317926765746508529214317634837912029241439936704093247844954154881968960659021801117622621016933821628152725330763647387630935456331879490651027105043866654594262057481933149695778769126245521598304993353122789244825544851772052034973031890744349542562814785665312527719939485314210027959163505201184330940580175692579247089629191130670108098579789954899995823142973742873106908082771254317439984370126327364594064190857108707595359074751133604384888969318539842097526334258552310467528082707980568607552978336917600681356607903755808456336960719554887823255448222632901607499625175249909247663575936906137777952746313719529668922728947311812731738713169067680796601240122175279147397598786461498835004884437628310955494890898323393133369727967782898702446939315277993310018590682652671410124372746124174967635376600114173631889443149944347125699633330831018828045429861091240503181823781859873520755807290006724741078146014515936014019383392021200545303711503015524881760926888209312344456827048677972565898418925930822869226932628487468881699255607849333577247769580053912238917673804571017259561094834113348050575736063910173682802816223357657092792240114895585276498154394236516041321474305370524851422532775103338359324532136076269105878708691706245159962847168672513304867595223991122553025440008235942394197615790063980078350988881822168576983667819175852558869531118084952547064396388232858897671295139743423099554148881377314230112129793182687338246986104944358542696131470841289949654184602214828623799596452887363793350339375518473236855801810032748212160030258428876507754096693403819288826430658001016820676772287087754312718872746347961763386291444729105191894918018268097000319953477034163184332268474047289732105182086560438547019588165549719045944115181800141557589187797208627701878985258658351361676850080704751339575004432672172000091582025061891109945527418114812971067402912464547087851368737492057151265470004538420658543864789212174955566441676777011997324281943984692276390393819810468357648088061626960061875860307309071209650442420680594410501733678702057884043725597788103555485463609768294658320845193766019911910189971083482249823431455510066451486511983086830503388218758737454736202681230223788146387186239393271622722766688034137027519414270604991757992393605713451200522145977535858626610112286637904805474114558156099533728106092273711048189548858235521680358073626088455420970647589434730816037462025691940722663642139231047077517216267565807013517222897475948639202125254854816840660259882833310338097455338503845399452137568237481378650867725218272858121594944517284380027639031187987670661917176266034436075277989369643995798080999114840576396109146901869506957370457608600423410238131930281495872547099209009149647563096016678103475912549266238933202368983249266256717767709307883849733570585839866211721654608676577836769410064644416013208653319199524385969243789895761820990915883534596591100678463906368666801121356739807606648124750106558352550729265599128623179839047894329256111340483137995475294774996032552519901102432573644398790585607173036404260841412713086610436189546328190220725046310160467866066288601107187774088365953591140997631059124634383738691029537264245964912587858762220889508764634121055282620794382551545862762048279539688899716566561488038255955144541771775325098453686754372407636713846155055204429085675639644955349925263316042699243071715176751386855443680666594735122514658130724757114965255406265101195399662751203923984488787445491437537116771168951550712942049643324967990246662573921065851289568126673232851562262145557806696735617755001183916245529097415301484120715348456722581241201107640200189817480096053123212964874079475943692644872050111817519876472356665686347499001775781206762621204323143717083874251063136272311071456295493526121318486630410557053058357351157028437774330109840479887897518375031557577856700903095327990364280947499406472979752487220309461222058737665166486283488627735145043820250868166549872574270235910331468310033164110615604128737754093256855039622328596727589931507938358579131604150376464630273515892641853526346192861576526512269138832353200650184288839349434185714107909438152978949381863542191279601106850137059947912870054759703669233803233927176293644841412968031689857103230367051793967031876943889053585032731592137220539348978984270892432111693760422047741879788382099976791817815425901897532534335305582629506001387342168311515228798025978471941757114763723735994482172998316704609668291448301966423334096971719564714612207296762400168641079456302827580945940929113190173990314671629403309220247149386839372970335647029466833703548009719896380139728063644597100693791428156162143093438538685058239927533961546668428353644174713546024743282361005241367222420233633182238668797768673232763682026129782895683214783068899747055192124240947466652895969831440860329007320492148700721982987092911764208548664055923789185943369074641473475699582460460687302093658312329224562414244625568955299278854611477884174018775102887960693609214733440915089779269581380478350599016161800234923808509390515063980459796683311200729064990681675614902468976425603123113954086350661387601713467505819858362133529755883387705724727196460929694909154645136457978812932992588217087491239582980532961641324286541240220289098755060966155315121369446112677409133032038889040696580241508729551780291526199054501380015999150986353827497851317975163468297600721678658577599435891435746618600130194311122111046952340258774775031319335808372788192419811356256899915281668357160629972790263640418617362189031936966448863563761005613365961246353945860538515494872362779782111203749031143801278361719667398869800576581010568451819600265505272757320035206768801616099740381654394976750112591905518982944724006166410078516895630922650211130265996182374538996354972166697573243520490584654957227917538403901886479480198985181294354650420324420373114717896871153006734009423207594741389004666308371691738118489976305795086104471299744310314702036161716945847427578515381038787082804894058297108505390330569706277905479795223658888960542795805569639454932270859762341213101535444829061764522882881181205939015589841483305516601537855110037174617215661286911849562852612466670923749343804627527795600800502640753123021784399264630383461859322975950609388248667756072230831456178213213411778350670478689847065190885326811182658818731375599992250876604278817522253182497427025674146496027019576986499856179540283852136211685344190807018141839053498244138147736201181672336060206208430960284552962282170477980707423732807716056887335503539019703668217233596171948298320095728021955822748815105039414269145070963495518580145985931576243444419668216593175789317405442265713621085470866574064794130437478226561181141630560566158078149559662699089044863132465209763885004852629329414321890919505708266087322469642276555362310385262469914669878602722806467026915263798823381062549617156365538674857936547741181226323495233742603460854372108015040827244300697186612702104111466576473705971226139341747214550556532010378970749469738579832287762060675788667752893068016128486567564817614936496009507009601149673153924787015903902796041409088973688328754502620447084510120621994440584692459868775608492350443836255530680635117819380203844865115620791472901859779756569793677055377643140787081156074859188001250948436426436145445546650570635343735673050856278735886040947800781650352553243618644652283838264317010813566354499287119616026698439271546138040419996635469712847445676431335772184503437345766184197534257122343314041406744509669494826496439679271980467500427526850422361849587161209105973577144073829189455426594145562555610230444922836664325621750052191406580725856035458649073637380588384442181792729724044207406725314974428788023328161211097586230670218052969203690842542187196754099266162192817464680886532886124498808589866999216003266761519572034995712679218623999341622297074733846915283519752951458034137834579046396293682720943182738515665715273468424622304550052071982951302942840702257032625998417734950841566817214951443856785074049016088437884201304335151244375290776219725167634483322663070495245660517229512715558880842736677529977856144517192759880935764161133084946367045623724639216053897733004179106579573735787557233623163002575182426631152223140412975602038380642542555599104026203197782968687691160973920518045925405190401568185836914905684494965790503914174305548089330888171932971237445290377412409286109756188633440456052304040994939514892690503780709190679568203278171401188234360237843646042886098035825138229266897887173202149003166002232272773691396057022591903561709141447069479522081488663933725794730370907762114956020044487839907308763157640300729793838638818169927449957063913618831895937932881028135466438639144692362691191336921647727710723125384431243188954072690159041718827026570744595886450676432789622496647664463724649859124119989068389341934292462994039559954342798236773764687116645090528623667284682884051785438559794628898052523382626952652305662633533480705710283009004094092141258185306024881584719964442108741756153849583070437563695183679668241715594853023369500768104377890647092415849848918217951786959501867543386895210555206944247860514148214158192062141998684603948521797181597290505579105696736144418043431865312120132955302586140702641239301050798721930243774947030077958307625252054726883926824980238782224765619446547949810569400107181072850312563511288707466468508335598463633608492493647183432759039020739317472166574319275112881576969617396782411595939316906420361218054696955398353883287914166278070295697664535196280133220202229057320642440397830835200899762593809872661526541014859904014328788971142589154950127562109794555308130911493148703554055284750034882326964482066040739359498596824966271989658275594993722190416459488430803689179978128649809052237481728216182746869286712414370359097240685528974975283049696855390061824489074999361823729534920747737330234105051168668929789715828253447207993337832090336679727963600600124941766691484827754611308421076763740961423924880459496661216595482791836917100916559428483999181293334063640253818820996782307558448969699672884721452005076730214574627550782856249660643600823275225742587581784252444640457650589238691148888223764415682983922205008787759956813439074650656074800734390648128450086783380471943715936439249378577205350654051194178822446357784278360602793755158980483386004746752835534973354329414157643940080381663107126603334713592388890600583040987888251723368976310833042965641124183917238607599044449356968351323796129578638658672950416703913565423670347014300915959966592007505661514539082767474995609464884205933608219365590555445344181355199142465778752185749808237743038958734601476905082834594049780945190701402063955691994467400418912572122606950722319100204034117789640971519493459703713477645633383505998248072688761422403540059881599744127319501822736130059931615285054680052768338235375898452633899943738981360914064048228804837196489606592882760809739102371295072431336650278627427165474316932037621321212966302137299721021308217193113378974597165424467221796383194056189199083386170269616140799223066708812178090765500646040586023689858637393742900777261351913750224347476488588513436252102371337090131360654576083441968892167830749942480605939517291165465105058693143172774249752303161100223784662632113960743101696035540885440992701332792484762126991020948774781022982589690170806907969267675159777255960533852398256010022236045816535383405533776710735379541079151028933976284593372878295164860060571965457115597823664226547727179189642982557892384379100330940272900625053223374581116634882303779496006970425764341842988035100743231394550975765028881961601933870924830897937384151968057792618035314447683330889122998617958961445563860669339745171306903636473518176777327796336635391175901189798700121723872292042575335931722091476488453640091756495430636234127311979891577314879716895737360152989120152478227730281736666505679302848370223881819684152043459233515980610140005839744983510247468524562005510181378646979207637088814942667306376864451090589644725217287474018304560135157902975625040149997565273823392932349592901547187576333172047179275693293756243629178941790587671883769156786259967068128988689785490025490486448141515305058025891240021309987553866588163792394412951039888031826020204741408169169194158598953965953731268820047997258787671291142659440428901220373648596904686664660737730757885086760968637399579183994878544370177266398346373729699832250548132976406476072257158189213511551741800849312654918740809657337514497954384209213486000508766517583591272607158900200645268974905070022305450641260917441500966894971500538929683156680590216857343713698929158208660759882912120010639989538279075358003242547446866050352715106086273410421754045356551174855518510281044878113284474324489259948049254708683979395825737236460976528367744132288262749785138294220364438155495720294492451108947335869761461475537313576750065840556846629110703384642288288094568313579428006310457005796701780086579136371607730703478687071839206540015497485499821207568181327166100215115983433232277935420781365635977316347356488919849251120175587089276481711789590598490347241544020644909787012066578795537746326344211959815905213167809826971999707018461757794949541767868920492393769346189419009438568397502878896218588695696829197605256937090008576029890849599129372968262900660953018845807102792125503725654016015032060681928609603193207113562506862767964199776390571048044430466947778876222449927773649061928620092003649909883203914808232589394779874184128895197365913123324722210428275947875713057890536761956814211713064126814629170401211709068808085995058389446678892595797137947939871561261635243972970226647086353549358451894130426111971152529862741673618698367103116429037655691385218793787896721992160320981404034771909865543980695684034738210684883885944066451463357121677319611372596727800968738340831818725823075731392279270645360246015283202907122167952176965863798751773961093814397427088736333952523500516829152015307581182254104179913026615319223344711266794232570820735487859896644222214933844000165812350347974154153905252398276139479816540058316409218415755172547380773949786928870760499632101617739914230987570232320461851807916110535460614021335113559407329021246695922623267684992252452583649894905934387604621631464165492267280121005843428871232000982311285163114971745510037557425345255003924621882419000900981608608634723219929699435744729319219489017333570100619889933768031440802573954450241136050584912695198939101454158421299093699259882509502140672289365799121665815560571739381711283067918645483762906502055505025454732051433803863824418831921123933780265282792076420043848729660549248866789095688063625640914362671016917838908926214261543111676285862284002939784393524456606312653174692268459465275580561092542146386574204688200229351013228408933701831542010678770223173858884398841724741351408047703191042616918089412770778132378888327317099230560502187383733027604217833424352234081379112927475234944767611389544078174627604488186030904614205588320349337593710188850410813178016026639981130478005196032594406703497815819910822596120853011698106797508780514547556227679769128716936918125432769204895988835438962250832797643135569418804413861623062264075106022323937260289942047683451034574248627730476297046046315664360629348464583036746719363731177813937361342117763618719504391252418251443323451018305204469104334999544670286172256026407532789975182448423567274290357899264255096682425736270155594746636294363321822392157385512070783159721542662716778073817726687273707391546962543822504601878702802765558882500483342328392256166075512613531395288423961301128988711664204282200298226279135638534722871996912247320678686528987151042219884738585844304479453187638048827127818854482143935502670554951706659243701778899568091862289911568138033888719307603060533206892553356281523843958033782744627690929981416269493622725761443639891776304523521021580831060085860600522601397113813017765209730064187648619741421136528967457196524785068798058509515457152580887954874464677958893925487791817750147140169003057658018297325986494481936328833557099604483047807182174220521315012752737875572604565610809596235076510513152158459955635502716417102743928435413166143432915767683005589210471858754912401209612460185748878938671214801175278759929420024864011015906814141543360930872546228792717345500297529731914995624217857551050135947743637785689248938857243134045803459839947369144370906291017391474648653172641969050241796496155990500763920044136601454737632503820579988836958086943937617279169277327092416202308891847494977365599117350166920914958559003610947808122118537815240995424708844355136314538206646873034620754840596800885835766180355853569008688422911315060278649672256372266989245241851564315827365051396594708192231283779455471331723458957929080800116290383415338141298434677669789676289999156568828847951899555349540483875386384763300878350133051750037139184647652762770538484760416339898865655583881470624861686637786984282205232231971338866964666422982486579618494973709631785190905782717551777560476375644503068957490285793703646618201042337846025884723168477626448117894892209484619152733817781089281151515319414417535258454546073081422512616590839677812568098736783599896204234997287934177340467739766153265594554561804819877727851924771535321284629089073449420628556168270490921586694693701141406449758906963505954176254496643619587227710977129024738667969355271944691854531677306584701941199420200356277028898531233054983348925414460531452199816402147036034206615752165808173000389269661710690765096846503579885405552337219655986705295168066578132287786651870791775310899777252716151390140960836626224359934567384277982253390754432812547494646397404514138502955819948227852367714255094958133288720047792385955515122194278706170887899856716666451318971930577947254306374576144776617251363328140924693693822552222595305214877016583196145224809849314084300531922780509800597449200138337546394071807003076685673859753922440743611523018588340901703797022862644483772023430313486970662408341957212366481738777624209744825249142819809744719467678222708531454132871561399265974883442717891673753215222673035414218301840883127905016750963056617053479615410879056422668405700745434060140800196783591742242302159007334784576899762883995007248729539254098473454596315486582384939832633069079479930039614690688514629072542342577054501985682163162146796800875844023737933294931938717502046974330163959728045236400060918555977056668853931130882342341665191360523805547575608109414772988699418435612589850074873988543177930719096884997960510914602427543963556261602794303269313445055185485974184365731247461966232657509479664954835765493315829407855836291271239254754054671895088311584972741496996640265685155874833439496849463944362590475209087260966644947675967826760813596414336888644491151674239733492760921271604324155385340249523884259572915039168315358941920287119742160719913810545235188095042029459902232128921156478370866733418071472922871857290019752154772884787700101684446927208878535535731264495285802805803150167260805504955524374609073666235601085259612149536318602153942167796623476859426671050123690556147232847778154976125663663883072934698664821910325294353041068765779672530683389164253625766767022648887876548122587519077041862722010209675805422928481215009819172582123484774106388082661292669367770403024468399922937014913100413568032676580452155898171319912136066155826540046018311538032064928017417622675216575201283170948008816100892735865126487028992669625457466812640688702128413249636720692912091056930167666273303815323146113254813412645628463589111163248853194429451259570263785524203733839984831258254421623536437519789434568772517103244506130197178495073035495596598274922828477142943739803189766441209809974939388100029406084090837603957325853358315293935751490759922445324484852364833437984513943933779295003385022934612829069938042884679768271166861505711098830780184701241463598182471894161399058721024252465712634667532313968034413060585001291584994873644965420821111972482020466364394671526701027066724717745247274329711484323121040537431011421473028929537531914709833696414660976602585358171971625193755331279239094845798642182723883046920234817867858446183598307427767116467643609459773365097456232758710904769007681828972395986915477267194251985792074949542146885419095747811089745723490456204508954452235330397979609973776612998865092804993192206552726059300710341808157058550971982690613272808403572376085789107618522509764754515694635932656692073870513457922995337079828719912933073757646698882888836850847784120054390161819257221378710047125322231721396006333391231045745129622244082995811175726435805303662735366486276060991430602523970544870418279828569723180474419945720002920052695543375975526578482899142822734066272215930765282503241244433723039983340064800386194783749653396492309394516970278902969428839095005423791425090987418172274039590641156449785495027760071363571157541283031068440930973783506060443716908104005158810207985485288151368142490591872955379213567897805138581069790148064916983438100909587405254439578346604489895830204300585177253826855160615683216778376419160990811086536682026987654133935620021451495490248004865961911413844565900203879567905737894597965899381687488710680948436844556857120346211720118490738099413187775448603139594295856572180845453460226232521404310598884763959225039967735717215761442976186649801332190459361882456774739078070292185800256221184083984338895796718752848530683270220966591657766778093532896477634877324367274717361276388955466892916553449951047125521037723000470348787163551441781288012869563255975614907575597556490783857894907666700368938988477679134057422970656318608369063867758063083534327743887765827039914413463252738915051114514742106613514635307638640941367299953211083657725128354787111174255060163725843123720754078215584053141814424372704439440393249567930999264001001005705123842737114478891094150378955327455271309805318097100511107499631094350827578463190688621480602748794432844175087094965804773801586937633528782548040134393194462673350391499282362431500724296625045745290775078418645552099106690448502907338619726509935748007200611198153115126392077421991154680507982176639268739147732517552141283595619636398573337891163906502402435891899406886052736406153310231474348538410665395413127025355365835247039294343535272216477470606430572066875432745572413944823529421118983542362305355954600508508599585304836511327231357596873366275692534415635373271251728713119315047602836036265966657984177386329075488667106524092279072966706709958805616972877737140119496333111500860044190870004231917881754625479110794873198600393988206631059661083230272686880997954243823593428668000949412778846325102631053032761638092306127138235663326526517617565050279251634622769932024708510797301704834796285534864768657683361609990199395344765199337790195388248222960852663254036663718041002339936706586064236153770014293195968694906738246558503479568747464286739810187390528871932107997734369624509525854880121069652651484633946833602172098366802589520630344568416029454283909433901644551543544084640293818646098296946768348096360488587546923084270620351101702248504151837099250072183185425292736325006746543861081948373362356008397206142861643597568999185152542444600395276943676699204956023345490132892772702902874507224195589479477919090496717444396617914962718904970579166846464645835115345944738737194962529408672793039122273385137492128897869625111774341068100126944181458197493072151774504906884233526286687049921393125937852775963167219434211984448126784523453670433123245519722884216035655900617870576764453086826012992365731573172073587697039347486934421070602628670830545156039117871372037727925802498571670081094858903679450709633972554629863497038955311211129905548054492460492038141668540947728286423807210517025257424393109269405465103408794382896231278250836400418437040258736258127954245747189477625419174188801261452335648569445484096232944976749871683300151612425372660950582125206408487305622949834115158073359548682579624462476132833845320523999596543572773702914455933335598808588526298340600852277478933814636459079760128059963322143331584092511219978973058248361733393851677686057392947864432459817157649326943339344224006709357823031208802713444876646951373694410519162132184026386013125654496472615046160326714723229645819125211523185658711085498833002143000903212209526350064962256104360355939127202906452073539647980035808367976000834445000189225144973563065762712015329916855792191404076590348811085260967670748578358058219896379561303680143203408169180295887041107355866172394766760531026134730290263901432592596498294590566163296386088951814826848229733577003911551425829897535772401818259395802045028798858050803612492159130295915338016379565458092131292977226975116174411036910104997409615433317347312634474031348585312476197861430050578410446827437284720933562377020996107046037545658855572587427510017502480948118226755039090703830631063593974339585230170845798540640560316574277946135202625852319554904605493516921681133867344287988104348786362201841364029201825538482413139944156708084388803978499918753989106295185949756026841471587815539008379278187915939838267906279247310670952154033957126948363404449939383200585046277849134311346647071203982304387011150624870503564555333915179233111849202763124832116806374788937572565401486675336076924403256620107763039086278304973751510670030329477623246728320375312788376396112846953132234630521154688504501280801314002137222605278906570812108981938424728172128109771913550827635944174395130178742155604706434010866323066836609296437400603182249035802817191802255623796592906671766786409315292871690049882331100743949616101210139527193759388881654617718064653580352657764048805314790557828075124176527791399410249566050728923146228522779933371626719987633307044769637019473190484218690559457582018719311366747655486947493165132244809681531063962613607419437715081663753345074009676655505215050570193558225753656007756649565306867496015651136743609740960449942470701416708754310562981669660171407763813669860121653528756006694683167045340906036589364815272210141253411629871449626852100858656855003292797555000904202318468026056148398541673815485053743001247134350569647090204774539259475956333423473935193862236530345381732437280807319578834760642336491565939967628296672937995673605966520516734351217947108470389912439987865659993036952360530292522561183615627492159713437752333092145750074530102951335894261251514104916112104465684771423738388999029575676410548711536241556470297272578205249060706337101099889671557106901179391224795900176681258149747930755942673266488666247684773865491878154781511363641757526781033989388290975716877409989561129349364688144431350948817349970067480088674068690798506725056629859042049290171761401690726900989858071693725573300484413400033599880092097080234265283404568690226073224452303473974396939322134507709692144169127353003075837400565433793088060544854921635303149123196629218955334261733155415605373821262540112492287170939331254599928904178000394219351102108272849686107207593526657768724862631408641498680044210007809151839801666169914489055617803092234206324175634924317851854306910147733153627070975442845613567165295431288680223841542725490262051405024842781710157347760231299732100897220388826216873116718968213103038293887279815371667321252803635529801182103412325117256747147634193180067965157117510219784763926198205888055677278440835072870072695008875105190759417592364624117496918780960325252071397451912159006449502961342079779979550694649471901036210062939861024278762850348142668974628812425892126930521775312414912659558867103304896151676087027670755314150538429226952434768168739528682911788890187901255264111596728448640660228448670673496702680449575690834637391813254722329743739056102883335294995286909506721680625169938114331381911137378700622519751313738060463255152654118974468099205486892858534838783413329430061507568730227271998020384463977683203958710388665217218315196138898026591544521940793520729820684378626295179289940896851257830730199266969955252254335040119834914717802867077515625229749974592908633713655545014774323705668882710484329611888445796403481150583337857149977658389278542333823593295409636663279343276793570413002576029110875577498683106482185970941021293131240433151579702085934354401986954508729120419809227666198367201228270657370906804396730839607590636633593942697419164334569877794003960223203200419347739754092303580535845122634297252282639624689172416330987045271122405612262670850047272157037546095088161037614601484245171861040674514136298965950251938174856142863930266865262241233333868497435176462576376772716443005933462572857048575740583974740064416591593440187385110172538181582004750012181359969747275835761612462314261495828552486681967895817573050698180498488032435821479063071541565003099310228279146179354527226671637854418277089443558276112768696233960415945687315328937307475631017630143250484451201835748035523116635921622146697655191801566821145573999350619853823460700499976775942619182900281170452965611494904389737348099480415071841969090597514920097701335843567018784327737018004959559598848801112511786884655955983520084477262165065952378717245867296539531096521513570090059777438873409680815181575985662156530017027413183683360063840020554741408065433906292173849696562866082393452535114601756180041083013437719906691068773546545627697989659941536693011249813060256216562495699321246371597860204311997681855506305190895815639431945724051529301095360616909843397233757157992803541976207746424278381937762601822971271706289940678572505974840354803200883559049666403652589590587862919226909813380233514119948283027704283858972659656376088259180930478697171510539906517419876963156847767061239757496284239067627847399708273409586678144322630552696266814211939503457159125256884450609030816882155788049527250916971738034310281277982582040760206338467401613322461478008186309114866356768096285952325977447015569236698816634464432658437958684454382304222828103711099015510715718168904626119755144615754380446715532311598326246756170102601454902317540509061015726805100670474127139588990776638814985259905717312098319697195970411853185967287971335192648343349294213843060133970433001414647925342642812938825104464914854009425560681298197475693342345323049118148046548589225907039982274255704416286709297588701684595281838764602553767036910752688610269901094949772304183483837673766450592746324575696130146174006931927358636101285204440980070190471809882637923819168741934392460444310364560232329042193361388538950709028246328699122117425844296634257953519552298656133582914342113368458993053070373316194832856769176086429699286506435856365932809106481085238206932319236546666261535216636969589986094337868586425911501534557074934271517138816794630293300855763213583003716037894409264495525109440335135449062177008083689397932941477743852800224876654550677054137680015048086229180589737517958728880490573455529857440652853030047328278090515839088956137323779961202572793742097872301717438423928479243035570897917952609522361373567897127644089396390373004533293621400469896104116704902449875360585609269837847245199242184249578349055993368092017027297233710679133467253706368399210405820661339016358443462956005141849690469753926973071543726060571297893745168846710642757278251153280797683077858985073309360938041063826474827314147196920708179454588470605626253440315911651307326007934294294099740423224965334039735028296669614705822883545790556844294547059712056566423861888149943309842415942088965614997697071638132170685630590673706240233198277326242485424766814178816188122433583561837088317522803289305306005603793191558623991254617573673000493767954442588801845960672087983293371127077457934631537093395946962110683111636843947471118460914265570871097561457175145443869843873672141768473778349615030003636516662069417531718891722466169479177263860842514833508798657945097916414394425727268097529074896830422032508708249424263498251319991318106629596067896345437565678985023943241515140539396592047408671273345072780467895566351282391626602342330908706585281147069216376628562766944356386976980285604513727986378064855405101894773092585104098981509520091143232595228059242765210705718570581803517810457173753359648070740039178280632336133631112980946271971908432173783346315399363780797188143247096278133842692626765317472376158329969680855450063553463699850566329398394723976480441055441264324600229143877412893466235417027405626292048701050320241386549623926030841256428796636695447101090200309408446023190152766378162358651546733552577998347403140654801600663365420580701359965100740969186722753076819829352078116116774519273960277354023637028577692563241609371969723104322166645163335744604392910525881854913517458995750496569426711236023899476972438727947460449051645944401358761983630137227315504680624450087913856494735618406379360763433891651761835190854946817554620261390207203215547009480837065087414093484764866018864348866399256326924475243040404438039273180966872446624698698667811169796848512832799425043146530014153295898238641177963985992287812062829037101323257594012895562777794109454904024050787574433503533006379882453831751157730794120313008486070082390045714850254598930742272722340913675056484124250689684274442679420610094855086315256015639192514375216172203084906854259880904683996147309909764914229262140281568293389319211858434643445904833156809128636577691533367328134554813807329645177189070335337581590398119383753556682100932397099000076003964586618729985238567331523998892618441395497654635870530841067185910705393828967309523205356998967518911256822858994912186988106186477190451572374545534103071878120182863772639219756130896370267299620319261209936273320338683826214672272012264479403629530570234039900752032861202589876766863800246516955305642610292708285816592867999388467422275060115954162131607961929235481957962176042621094270099614702884980984495619936022513275266955395252451599590721954900796366139911448927154394132982754463973389042047394967941011630868834498119433460665745039259502480548148899327974564954567006802389699978418881626126887186225664735756617943070215793430957661470955803198327151088201950182333411716721052882920150164016686639717198670793967194378645745274595228316476498875719375291294375900089197690585791969748518316030373484329625079653656622501307046033026406392766678366194810757845133432417322483754242030465916183974111280998155207219854634677912682682374425141226864218964353707788372760305245485077923112892452060562333739480953441138303666916425195444037444422090661513609451748796871849276576495898207750551993125956580102480592459129728559755701875205928692329121327703238276534980170877608869542053610243928422800956412864436574043354637717655290386763813634773263016831748385129668020914311160047277988581449760054953400612649764387196506378221951149311554225353329001775695098241959968300203359745670004685951361054854864883177317645827801161537437878116677368245036141352373516811213000383847322779323399180582719470435000066437660856557824945439212195056308325355781157206482269269349474658031982135092929238278443146747829357894492781471572367693956100689868421619871752484472705221163073017814454456483199905958538839630262258441330866835828826786347077990536154681085045518633561412273853182186384448902357851648626435455053124619904333497420358705056269900540015727024092363328089837023759574095016353644675226312100690259541137617863269607863888960070709392723312678506271002852392036312655949357316870968967087594571267772931814969797070521690584959475414040785846527442690316820394387259161441347348562325695119920485184077800840089757595802101959666509783916066371580969429438275301655130005476129004323684093789232335708140655639192473713432398715960309365948148263099444149941164167656389830302728679059767451085486286341821089020759859860592533272957964580265832338036804649175415691457923580123376282941348262405704898834900845789966606553838818945476036811759925857744651594243885249446061506035275871492666649452783082053873511324473666869145536564909308750210751902173797041854343590127809252608652191781929347450086581489186093358381532156806199979622734448705554863646151555365793428456382457795505650012010911490907621528193440818690082202701785935887816951676494367554952960477864499612164530808345100664239594707312838496055985769458184048162386758584765458805407025856198579666685697922225032445967436406705046676192355874416166711247816252646816632549940348484622711027201754663850646227296503873971640929305984863931082670120510814066854296499617657434352285527305502250489335490276022669711374743945956824702283611316599711785742315134990155622494043099638177950664649762053485900492243444985924666674119011230610838976477962876381449772617159722521532625728399496298275575178956725029956663316175280634775075756663739637249383231248139411011695022614483824667303266786104853966643132468092535304816750164705846287024014848398893721877349946895281566937391245508907028923762764651879639362850948616614676449775176993033168577099981694150659213018081395132272092066276806422229936668976849256651244304112999660960753378103518029148788242625505469340961944588363617372921957132745407187615645996491744535566453952202162310843061620436378428479374943246866885438820492184683621568401859889204103023923192026194275054504724219754019816576588277865133202399106427038818104859398973544584759872700240737503026570347752937979723419524347728136366400597904455920875565102211959915354271747060105191537408728798506470580679371512264017035191311663668365138213349655740434276983212422177263600090481945036679591943750620377093627088665928538147732237820660750064421971797304049712284581133307085177501723201567815748853337389724207805173318974065206632986053751025850170053616514629105218064751202766229393073497346318648132124139777715864676737937604339294878244199569735962827308845374641139247765984836998098992166495118516065260455571277193760230127602346335460337889157155380090790825182032051857174504977123195467060719586293437433993005393132768950449973386464156987360546374214371997491285499340471201669234037517984244145031071630734233277395113662379750860875094318640661986610335106106257849860249187302934105513726195269105516974373027079564433492032569534811997637238409773431103790826696741165467268388215984901332066745017787165318469932032164361919829091608946570575969190197423422535775250895784143394723312837466525554430266815278138120058364663133876672535978465782618882791076498755581844458021044417733257850109703478942656901108290759406211609228090200259995803435716266768243458462410807388123237485265053676959951389393426483144460976451091167058245601817153727989339117157765520640965570252515418152479410747309278126617253205222788968127161644150397035910695017155964873601039047482820904885731428866614475234397081932152270078911750563198922244505802957596648197094142962376543192719226075383446378848486789238020952501012154894352851951812555371825812109520573635154689451698572573305816399559845496723579121420631417635192228841261846193347607042037817776228936580538226547971536109308948928011273037754268916104858305254126324106441130955116525547680741005149046466838339909881877881899595184762767267208160763117968162084750293336269204312174904814849320938703094850768327480043628623247412429711301383833861757044769086757454698430185630341386396983819298188340487462303757601825516989983418672306893719628536390812726635262242364041146573984060170756417208397956604843833029441290127851826638623317172546035547107144847058107458851291381099530532710762287431377453940781044878307045114948756311895298940490936719924868923615590421428017360331693133962519051950759575521015768939844975870429850086801518220836777125875636504243102040182028873582355567016674923827903611519279794824575129228239127263844116552632741149856790000154569358888880723465000256548343427594487439878630627674588830868048523806878243749142979928172617917285038636671222557505614989313918232713628786035627236000305681750639854031180745820375362181470040771883906614684639589984240520110169756738389017457288409829321112786226368437081081290335349172997392930602097626487250929759907419222083432490152582692527931954959385477724240763678839832856726720628263259638849057991529099415002126302922419547741591353295766013956304502527527394913389050799795036273370178190894587823606106631393615417614423692050359857825179726074362979684079579415886779464523488385217430803242484484728745333469605162016175195440674071198152240426347026323530366902353134857178285732428521060621509289332396788569081986378732690616797804344015898491200290652457908230285375190903590296661730217790752762513115087185623684632637634400557760653612295231468755783197688197462298800850047737834531132002511713296898487463899665756305392621062227808296524838435640786302879880233088602843725998237485294881572222023275446093981768289051883125782480838141519017142879999668180298891967976308842134097972667946104900422600292007708802499032684066592285175415470235461958065941520184292021849383567550342338735519679810745348543850861956497977444596395586467925759543465072973227536910069629516429834335947577608460760987616646492467054055476908466619323220565638852456412548242675239994631818043376905869485921669008508358777037242051525018293992726190168032032154460441072888244293921546465751940326687162297745846897428273705708067036524711530942271786975725467523262513288095434428357994641344484875637051213245337156727288861465659350351828836733338073889764400503984937284943376387489807978659129402607370757358065566324475556537536323252516024722713758110942833298191147264345641639547510329092944094292165332807123573052269576601964019320546982813631819056704133444450796684305172904987542032559065840748031389551638623201588760375138286534877536414120607573676891158848670859743001937199057542877413666529074764054974562432777428630025800707078498952494422382608462099602660909298447177513735069552145199381460091565960035066366013243638497770679119079510547741264535613180156442409537707376991227253824335985539488985244302159495328640896734249662167565757107138568372136703385702792154453572712710536354301859044771673955804689239897479832547691739150324310449999600570915605340445769441693078737684339305515053242824321818199923167337092336746914553569839925610287959553846899596540832479144602786434079216780959417898481442657297737648335547737997697252947269601610972494890196112733062770753408320682436248655526877269028451669773207569534064288544454487729700952711167341831569884751379813691654644315730479402294756421973282930518660624036945270376816444457804191326132600857668127195516690600694034266892109158713134407456451841112554923134749333157443495165482304983091178769169372649396567038967992887762948421985712675553526910488435826553557595382708466657802213963014958704167236802840417807979783472587944279517484884545687640693990519644622105184840359206501698685951148114216366554636023780014075464820081275412503436119907724532067931458569152752027905374746703465835146860875086992882054504099376454412707939305908012632917111867631045052819376541176218149759481725604400487583137955272648455542048583559390987854302140506508498727480680654895038842801136644138684604752157658319357886635156181256077265046779517431375569887801907775225646869140975832150622231521276988946438720631282555235901972055809486428397783178300523002628707547151257587323981784122988027693315306816446029527562808061375170081809463941410200541241854651526740988371388041475668713052094940016259930297329940315513092536047081833951884269116483871468394234865803543925757651108617483255050505607611593443766769124139465518312011355341238905358924883728361390075422574040520139723610107507797508290914068549316435113582219970163313297458089137774492148937217748150632277360440884934236163083225595946139063574052171312242624117127799725462196073916445249152208387591787118372535257818319819602970139714522346143797148830514307791850859065016964922696164059403810652967222022992447736789740078648362299071317288504062666405828757563171850658637356124321837250508338830622064875561394351397337704021971808515778190463392286200662682035436160957153656719858912145961620224444556104070386583539540363667903164487186696670693596376094791233552087695166830905641417271744119008976715686531561737831343808598661997907000025804556359093530348992081440034037173012555555963138941867927878705534313903837044723170474172955792355081242920285144001542850456760273654948006814093897426840943840142428759392358425914746848911973043722728996711828735646386121047815902283354228080374091159285525016128441700783899601067514477611709060803745082936647241996309277623019469570617329459012668964130996043838414476457302199068483104210054834403946080640349197363973499326025727036815154459717376522610155883720247749449398883372381299602933222268815032282169716102529677112709103602374646425005477780852681866571798093995542523603870585498713268339603362251827262307649554982183445234017751902223700627881489061606163243357413761693444092558127673817829915450520845615136570701045183827995578073214461735337969401893333252226886035446101254766617683551349634068686151373373287921694803003898059519072246826885690825087465712382909947875978071556907085818013737658279115608353414448499716126257696761934138036924769925132553519522591442269124904963590312773247881997053739765061902190622708194906716774783685170520990175842876136390281428375214377485679201726577072296391161235242763802451913967098789500945588446036086513118398751947539750765508598560926697619435782109392187894212883553736595501964045284835271528010089091501876358410906476742619807296105358609161700206081739703529255094434153346011669033965619523404211260073189258820594071321904137087335640617901281246764037753435995901347193475191691138635168985389775023693446772161743666127417985335804287535226275813266232920878560349585562616712870720965058597194587245124737587770052559512016975224934910502312399661339076429651613379431700336803134659989219055618137770754916933465853428040322859970881222354031232269309628934519534447097757147815764657180662435327376101513038630641256478315822403571668338210316610600043752886036278319134111886609822417148609149630906009380293936230732970547238482420945624860809465180702532135662166591231943976698482318687190551462768670157030573438848516256636377397583210042495776373246170934125136719086334165361722139556405117106430616382688597095507900947815359484849203383340338590814526473026046622138087563077127947483071139767440329237406065320407369097333798258642763375795571420396554310876634597141296083166400390982684390489132286041454244436943409292837086886755498585989311243599505896542269031168085237927033050350608023830528578798072618398858763875142026909970353860494394327286711948644286703089719980669091450773378090835057150143020031789087395029002842496099452834444146523103678606921923930873596108585163897733322692795980285717228411114558446229441515717785059914090091141162249021672076309765395112398974345141091539451066144055018748360628230692947154131867406444028895701321937620437103137438885694503574679603774703423717358112606300038595352112556477446687855620346048835266383975133321161911226127074663455733199275275122398727515075215513445309139011653706522918269209428907146713511835971325933141225853034654760327361004996045508748271257017424234446590694633145463471406689180595617050048187441639620826939419480284001107277733296862696861773829233399834440479322387587956213154390870311046086338634275770525513131815035718244073769036149138008922543216173246118939204319336579082951188568002989152929509198670119451659224044822365985703285614055722182583411631233896250437397575254808318347943598925094865486282999323898533075784492087474371429484660322040555799903398498291950013429560234966814602611295518682751261996995197812055611652927423919586144284931856420352855846422175088093174330580691141896849610455899105730703029546989901207226036666403260925908513691369995739423716515747172339440679878818440397396448627580665359426209456082111493052496552026135460318166179575443512213152814734396149199684868350001907955457254106836468301202888086103814858607024148715923716122339670845828669148760285466844794646460263886422898265835584107587641547394674817927240114386927554459398084538238180293796261442178754346233026693916212156999272727967604062431002183923113874156810966629129476400159901878027881012588756211278746581848060209794413078278366140987389071976105964431877538609290890453513637642011518992785724268337320335957708870194561091645488044414878138497074729452366976482167005753539156648105908443791672813527903037101386554061186159693070065242529229836869305864794025019920381121073123493007898123083206318841096841419655094673656938939879440308757094345503152171657895837961156668399480977764175352773088815675084465092185768562163038060514376624554706609428383085898272004539779628458247472836659287382053876857175022891660268829554313060856173664683621541628355137346490894895658163831648935598885225574952370549764966570162653452154911745810499764063139264684002431808780343563023784468710466563881346574700850978630212031214400541955881623609643696019679952221505774721555923978241590513296034106479036478810825256276491167663015808028547473792676449416587632436923718847036730154046080297266677988569807021476857484509930404615374915886977897709211175831555344607579572874881836467328730973584557982093556381511385911790114895659207357699498316939026564161827616472454189531026059622523535267910640081885459739950744706150280535501323502372633129602333890567512124426533203315793276272008434704537913959583673550344085181237724570599093194009040944390109211960133684684619420669048930190875057140353377553228402523075629254034584255692722247548531914517808700020670008251071217302708735200806491225626449364510536527299025317381440358557420958159378613235821572134128881541601191927330627131294487323712788692339662103841527810587273893249120021512329068336230174185532864961662478976326048847353202995039944938798158606345964577356438351414896320253730792343660285174320022041539998814025213657038887786016782724365725234962335727366442243602577009963150390728780417870646121342361637645208092050164064432158191448247896629978681774599673233901934946054230972167351095761899836814754769799429112102056891112401669847563158854069825393096572875333096058564087225735420743762394044677231711265614042963443906085829336628011229763168623670775799641262590720654150482979054168494858392434664991637237803867900701422250708837344517836480299032003194267826673526942443774776434085412392100973801393978535576291177083420010850211138484370929831021397686937486072247489961560120763748366681564142442253859094004520109478185867669731634024778930527371193396963076314084728625003344131823100027462882350876246195455518353703871115389597631774665274773363955650275040991494991829988780843751947905346450309950357263356996363209635148432927926105088212114948878232742394144596292177201435536101686393723574203345489682723117222058973321421104937601160656216077472849076082393787147871265868705875523458333264591849850845521302662736623835669552095961932478002653233018845547948822173729680385221029081185943012527619299247991454635140000489512642860135002635719295696126741753638670641071125485738703825004277740526575639365528309960415048612876704764814905730572467849760782259214188019313903024022941509389436970851745680311479051053274462567910027636070642117564388858625127638096112820107140144355631590964959646713741734327010930461128890686795241383427070465176223083003620667120282822735543802018651922882276837509195865331021045312609671253695160038799148565599531002389907812204886199759312734054434036000149459984967021125060569321843770956920620220586408867473131176933360482438194290041186335477694516443603609860012344830615336456547224719528071266543938589410506286123026993819836962726100758344952426604807190776287372778441640421780644259833999155907068512993333289911335722604811419808266566198979506244323373580925946139245121548346313459316297331638562821873571351703226546863874367207284079401504153010256844459769056836635464289922489605192536673402877514048841256709862183820275658526228288812006882124465475747587333624854613954403196684900629780264166271809126467107753521393850623017992332454126279238504234969301402455529770945189235271379184128435877058057250384055332710026403262640102746185532054098411467403319340764926546668318685793201428334412440808013714232463873256688062067005299445280607307039503710384511813201160303609813737806603978242904070539313236549400203632394301912866435111749862952915486250839156886262622691414977102795912603548898620944865814120805447654760066788794378551597008770180132074421029835040549558446573263521026547866110278754458121593616613426631549688227056928447474912299849611146308627023019732494329517479156905207090586625088672307377899662228678839892863483648496664775173081515684775383367025772521006397732237349251729078800102207640223612099673488902148234571127661239347867169581004017269896755416015643692388493727273369740474355566267567201929303061894065902257925175724153342726670508834825309369456073027946259830726072780228522736107718453380082949932210705725746535648184322465982100040767688911642079759976910254926223169615241483514398520055890726216030622332955035756981112072231565357041184419796214115996518349547910028238931528235794166286684736344304916916867611101561845684467350671477604907737131255649522874610050519281702100926862029180650124002443342464091708955699085723429290272764259279366215207155249799926249316156141412527647804979938429929623351583237922863717025130522053485101177191602444750573012720035359809016640737533049847366906810824563394413771859066029881658004736331260133307512129808024256902922514565484089162912041260339967896680052925657254799242009318156073617749106320079224142275967404056707535647081582811733270377028239551795382261338636731751414190951739616283197541149173334299176371357139443319339202004178713989208779199041030422664813211267814955160207284412135222823487108874333360450680651947141514228802853639767684912660795061305812907321043653492502748016271945534810207859788430285067760029579157163835810688898815660182080469561602998781841312598873946941352184049282306445858391538503811149324754070745385524797040467218829691537178632062796858326501581331350469433947752619086549530594427295646305352633556191622342659760867653597674783574155226956387232983852254389760776907736261803132127222921217298126125672534339646188625343402430620458619820238931589344235969909271612369528353605560697231625712214787336756958916093605166611375470186376550101954242056413114464705102503950405638668647963700001853010701501414745680952930700029597865222977660432246064600965939088601785419645217633011531467502583239919835335404064251883031120751958757953866157641816465873986718891719107668101873245622354437006593131681640882509820046930219589747452405196703582388067186101376433877961030639212671154929243585804904267185041559772210745903481248695046077790983555312355128435978348900380589628358878515895158090428249664741556429596537166331080451765078347427980137961572254596157662756205421776651022741639629402574472040070610046748603252126280913131696084260837484438459780634086560435414489790395350536490914373859663995583136712480338764428353945514322915568041098958808586561789287747851109026031881938229279540912808558405068742890683371618781280597465814692155142655142217595586406750591306642883147248930439514663969288757631063119132082413815298549363505756630215210406422879670507798916721859849459502349082881464801450353716148996138732660859588979350805485585764344778812742626533604146428572313516920716739387067742606422271828180502779197598695230840017605982439941052855511476163061002844232841287030792667806101285293218217344170488977549357629354593261408025072822419743289031841118413811148803007811575805502819872887181229215933479591610539962636949796460771036001684724776890858370295476645521093670094534152610708882278798184653461203475636421438828536928601563933526092504787271592726923061158167061468246254255123578748174899108928833612564215904208575788052871446201610645631801498609800870644156069546882185117697491880842583568789006601314755124121286077121947110008308391848362227466615843793297304976712268164449409244312901401756136218825676031525404988675860361792927726481555767469931241699325944300448961679948078395170054493583025635751387788590237049156169823213554731634754648431363521595928084910932064978256951995972367566445002273966472351156204131770172494845058003812370454448756023164312977806292750493572457297998248776332497042091305062975885949348405107131180239972799744850977559733733085383861386253710207674125899377893275042229774685123233506337770261151993713558175211387406508456088966236186053702877441753179194694151815552221734167022905013374671498362788933642190197684348028508807049415632742606296913061705031593044637319804066801221726875523748564843279878318715860565989433453904774731932741921555015395820374676511729675931941250012786532136229281925556221077805639486878328683292196806094426804579095173219301437211447424084569140408199964451760322184218188033227317352297358412071042448430494253630471226039034510850625505761047779125469471411980745660916059297156096970003938778897176890427902881563516833457923396952456726670934832422372358679114814380231243206546423925804269257633938617073146627746072578075185600126706898849279648149298768957548258242939063124082272091874548079053732014387811090782772818553703914851900146019237607348816853847951695244325189681681650792911352701721709511140718786197445142714858706378212546219576179929496058526252231524963245497816650695747759793022306783482261022554301803727392870931748599717038747216748551328740383538158275891562200500797211247996565847976372532451317973497424593874790333032245401795395212274778916124350781810132565514357789855321183126542005890175768486177937100024911025588241108849985095915207085254188405245462870781419216278137484354001776178440876880525811746826133875170996533146737937033437936814146030850253596177476659291136776740573652658161895863265909855994044789416256083184666797156082718928723975751008522841423234659269721342537114891629278236574110502538620402400987236331666722857579864830060079552372819531048966330113383169888040917402108674807670336195356293749887382291547098520602475427905494783039240727493429356938049101100426926836826838170701967335998325366650021786659991711885040626447759395766669558519419929832891823613724853858733854423546630306425498355419067560860626324054423624529259550311936927554990320548195614654873783132741313795003663190379946071756364602902485346774836966298405813336017414813629158204273093394668442877294038035672054565920480775956487596873245110128957851561153715481282500820577562031017597845933171217943800103010787617111918530354507989889321752333645065666767274427617404777320992495938889574331176463927793355779479791347051853352295407654480679443794128936954408152242521140002652396975922217274817328399294542691953217777111343842279456957550938927134265297465925698151118680442528000249778105842695853239755048174437693540828011144032247894062651534003169481181387356291489714611109172482626052083108421618439544659366774734691637623100855600085519220087289909447981354283835761747042161910094780436489580534583760151747042495595915666752087051805591619284166779408557092532457823003544110193660795855998230914196022140824288281015857338864848586259519165719099590956680521221662658941413038573376175786656997405042802717712583155709041294216110767921426361935791451140614720779898295198829793868462145372372113284226338304248824170131520372808252473264588264257420247783596327694134843566584770203137680272537950054843743476602779064079452057866422094921740904167976126735649195373595035986856234773209622853138360943627237379285989307763672714079486033482727974194513390488037686040195982503601128544975189636919553925905874158222919790607475224820567751017326907704271455823734688587957533936804866245783060893104802791434633588494072931327125061201300532498220751135284879409776404931718236530620368998182626762158821160540551413032520853711952872058504688228663564972056632890077458653573154596257298647603502022061357817406281558959856903547393863095379610664287476992706143343491400584683514842484926981999760046029131356420999091390949694321123097284317864662506079762210302990043783679927089032405464035528435887415329752522130889101017054666946604546656868139529473310887739036438134540598755060432422827540832695963500728685680579233347738151318761889523092028915149230761762359752388003217479532262986778925469424743310475220638031545660517855718478296807648127319648096717017887888688882349497292445718671676063614401031280763494239652833080253520455675024382327766319935243045763540154917904045027352550281287879151522421586299063026196633618056262230888698263254294860290642108251270356091682262981488486125510258555611928260937536950781868577640236408695361854439857971952239795885050932183872916033698782925269955424869566188073877141135168934344251436928063671952441075193552308588349404637647979683154320372329532597982223005671691762707073545269602350989688281031320120383725913653742003180499095553935354158621877289351870352925319608770146436838839014347807414123903585263152169518958661221659929801769684552741404770373268401485012094516140296960035708571854163049994578223490498911735518873090979368648430437679378059566082265026847807466060685550528973296486728637747413106776945464969006854596390781591801862402250472034216302599562602685277389296115201466014494656638142272544050661510869943631488406788335263091226809038055019271118235804862768803542514776389176118905370437233644523496782141851822159513569326443279377364176963099691988326872203149718373447496675205062251618676988201658852910142093978101621421506413453512609925743062874002822119319433491514673122932316438725183372173225599935007072370042045864710803167124570954972980997592957166722346604407036464149081845652671247769420928501810162384320291680044834680887210293747981989975784786575307738265917838981448225021643421424615637666588787779302793659239031597479327153976981269414383419638661217880818341844490603461637620088219507219142208881347936160577812624123402353500872138779032314283304731617367381464855159804376088795859101781343920112299058498877732963174640172540628768309388689197261911606479600317541622270130197500650487517637121125818360603436474477935099063455543734095459949208967823407849477344409605967165666528652215111663377691244328855093771710677650797328953270674254231617123552844324902746071027275496009386906368574801635082167906279052672959767590691436799746483340359241928906100922986081662301201684838569960224717598721728807230614573035075095004099403057163736074661169531648021126012141334968771539659670699019225424571720127890998404954255723057352422104771144053586034166908368281830959195206364405161804974648194868542715101304296802221886397066605431329068738754507473389633278991988805669219374930427436724107435070974884613248831854093560834324441848307541200402539466516794837001065449034007990863266767250394966109678270795609581090013173901719542842832547068540879493965386712859918676828493522376454196735541650743348623018192106627255043686809285338142305342538056642679192503774369404039622612078516340492008271336281585217230216395110089759768891798510709948040890301160323008776669505341273833378883103656066847797745138810820271986963967406707726537134519558660205641790900058271246089568803633196460846135077106953764972345746167124688360653570477454023826079694852383548984848436526442565190259423244218760099462027515728025130310947007504559272106018672379773615843146565151108684361051977125987991420949686042580842880672416759219957563733460693605378237048859577935281581748437193706821289915137009766052967750487260341866857394611160607816136082604968811542856755954851627355936823353925548643272904014330219600793119756100106458834272438760581627498099756562474877333676157845402173461890939138123647540521380689375608224668369302990424351603991400278979863578200972027839196622061912479866880585700100179635268548766153902209881589388156363297087333056807760679962248446546021334919069428850282549460957665817314949934550222870170462610993771848177872142582428800782811131194894521986000094832278176473947203603974158259610911219662868328187849374551439224958109386952993392714453723497655846386798817122836183892481503402617895514896688455173233481810535363883386820490546185230739763762564986129239363248958982435164311689338939972180935540160648399248353480822327334995298625433657373120958005389876717812846475781171400083116902852759267641933629889705719011075368954354311636125023999370289470777745601561502315427832455446668052208611183304317561395545070324963107824703393309107170728953971559049123419700439600321949999492372899313735378762585902339073623651794154435335540984806396928735449062964138577992614806236315056410980427636575452117918390155506668958812484607361452801142992205950442527868053228021022432465178962866075469325798383442433857522329479157583998008562720876860813855263793023729662880491411632613732834204454796566873255998735224644928006127983349145893887284222529565380375566142286492315539721023555885157812081357300694588086915947118328910953409074350213438326797408904223206976823531558560643871361649617575872735650411917463913011896049973329473588192203896351904737835962221312081633613520995324372087033189103528670792028466656351473500486898028702496075980903146135306946796725844630835688958898641062291067591123392184682976833863546956337708192342696532568511921511654345823810254353357172593850439342889774396670217327561724304512046842995560379384510694462072898318674811139975140916621956546489807744510552242650085782478211433273674423430763300806571818300912802200727814321291697398480079741019118219524411219950062473984961982885846986945880723204403055276929392136207375241246924351246139672362849071126810729484047985333457015918047685011578077758304846235040262652019635040715845769606081037556293331441357083879522223164559330811681014721489793642891256625967859186320418799093726505671263651885647814037208613892876986762913529213779158345883496410359527642630562270844632846378786519692091590625443723728153877110230657167631444935897889160668028709530652103846733380330519687259113499446955902700056047400249415119873136508735724654921187760127344451026165641432417816834604810180725585698016565004706603972096720641613159363793057775961953636421430782880145238836156389963703053119868616623694957386953743147893090043663631346736290848965847554785150157899878114280851565895709820742888785214698340356050535288976213906810049278572580836461162776212992734210199384518161850696833318423369548745830624747943870059930061050403441963250411531627837149640234638863026850627538126775874502851832408651369218854285410029784291171379998698623904601469988321552553351650882604522390116050027832875146637451752419088177486068523245998970513087978114971860828760884491031366941748321023841638100831653797911074884821432217390190616234467305944615042987887727612841111401123860017872506521315757934377535690757711147533286250331558698427724574564781873682388934636250193603557684050500841834010828253817382610081109956224711592213771510732567454482422082556622454487372716735571202551471843337873961146453396034834431190606099768418614701462118630676151241085737657120573588784809264400026691564839706962343832827119134336618555241511061931431834410955770859736604085843575241023821673545897487718129145209221110985230449831145858646879068453744110281099574702202945096031727598670258337479063768208294644765954938344260948189575525635842116292712509709388162435613315648756880910797003432050657490854922233067102979198072255930222569554598863153161759753677234184500564111824217500646346438538355068302209611040154555819052344900693505379031080907961890225194164450719984416317783833266521762506305736939637933715252329946818871275713127532097962215298559079626458454507424462912764898614962432512677445762987998030537171416889358298044513420072200665778754281160779758512123184852825564562009333677415457343449509731718737086857555070276706302287620318801028474857851447653007904326870452273087880622870195900093234313687016414844166344889922113182164192423156332948753496019963095632386734338673412772368351073526964364413573475059054766578482356018783182881676472025077368758914552138564603238503111694831990985430145122282477527712847010712040250441335597024202173600077003797172654764981750627419820802168543444772728386243071385437995920487949031137994061736369315726721896375469412510427788945459419537891134230354280895300222653736620877993137840228184669339923145403950107512895041987853803294485292138143516755684533950022209613388740191069739272669562726198204796813128288458081336427613430773325428351504136479281991212498881871468432576709301640439328015850810524843184814879712389700430088291738675839780256205618551521096608225133597620168736195751968664064889253669441752442996063352314820847707419071737646094535939638935813897965226771062608747232554591399842575035008829408143302626061922386760984319370959008630593116124287010754724396720248096862883349628221715641701965697202876333817551914041862482742870328791052218477833566985680933222565909415199921246974766364168411845346890919681357511856373482104263070498561989532271067697550481715107585084950166053255912239998718968075603439816978044512623744352927573516073055006332791223801674095936088720383313858984540612581666395918578221357808340116137472471599414787943090677018115728321171562850007238361690760625415206946868073152792179964193617730878234536533797901491808867796025865416549752505382746281697345388509549176279446519069709728856829121846638579207366564799133221152888945894470222716983643462058815965165610848593145138601676619647711268978342815160191649481732906556153620751990977238421311809380355764770960551049289235883755679071058257909360900695434446465475943760312178211179835711621900094366544924491715076181683910899112819931057154175811514190150512627731551273632612841038706465679900918719195075106649415544618876491058670498300951574554856351840036137813261723745843853779028604716334610390706711604277396817893356109185722410280272748211983607340446928847207218118930549472900973211977684622313536015148885680812126157179947169641862481420188317187977677171132699042265995189298751043392907356595080349657112313353813044053411062201067372927825534491501587296326444938427537819169007895934232140098106263560385476590658681587767289864095419543913033541906165504021496050896734974890171306526403649141227570410659752442528221192796363626095989603122112621727565193664584833718491398031872905670514919779348665663323576304219327486167690130805733700187379699404792993556047668329335197109122638809863369390891541191874007922187605641092872640666868711844450504612253149310601066468316017530714449053031445555992256743925675898624858900706892766383332163136915026437936632486735961281556572495338598900369996537443777622616557481434119114552078047156592337413182341981978045716480011828822005840612068038368291339699292180097275545959840562678760870702618783507417289279336039843428035881365349483807359451465167320499856144108662857227971932112198515618829296843380050612396501697247250102831042370939329825799215230328343493423130546453739623169308955931280011073176305411542647331892566744784374386365472547737687928953619426155454088325572040902961938063033596606144297820785824450795654233045478541779152602336934982653584571297018657850621508318566636001491759838759632121361982547412161855388371441841112728305716499322761160299370992830817883697979701296397866467562168434976121546589274817954833176273880867549245079409401537668028127159271168814525518827777589797619455271658816055072470438043989491207805016183362907547196646314779807029837929016058634091002922421006543090803342767334334162269064640621315642556610591527202796234319246685878448886239900184406945153207596470396306244582434944549851062740947366132916078319108127743663002671627737858625384873891335328282220802345762871239822909423133405091524010250373145705213667389836009739045590836896037835456509123306173347920714468041918247821932232753136545038352045366245513553122515645033202640580880748212183166559150134018927046345437220559854631763747071468856595690961370896106559723820030790861612846556664577127869924563244521975913609691397915735787115701503531588871391123700174558226424168985074512697257895321337446663528916264627133415148659505261420016248649603487859546374453757588904493786219419746144066136241282766718555509011352147787324988843940912170365037699093002647381109209334148197554424423088088382016004462174459301511282878962563146244858030722158274110663126007281253629296885570014947548307037131060623180987408593662971615858677791338638776661801782949119351687690405535356836385202951119253486476087986745777219106046810708464966907647454251389706728860149160064090744899938318085554581039883412165703394577870425788487724019587296440660706060962139339588273195961202475669293754706457306724920397781898762224023710263073161804926584052930990740373640362519825419097536842807761464330763899711981235496167928797519594920831200701121831010409449576710666160691903613091816019978748549483642820615843867646496939457767636107223504143533214269089272655479992896711756373210207443043809497244187555890209414424833204534379906675632587983876325362222370658725029711135676059041471432042887394813870795466399670834074103674788384278336875555795662548213018661124691030866251665403733298492380791442271466594330601015313563203970558296056016599877231301483645980266746077286877619530038518281210388736028547887450400150643965679583821959026673227122060119191187363208601447524060380762780858714750048586090022049392246988801979788101836603965262586377130901491662572051111561225434618579474694821842842700206011887105540733314450167915762016797064177013076509767265941921477387817227087300850079229679704757926003580835867082863023164212217464760808344447566398256912017080701132084715962973379001607075622649644167973903208701430529810550445247655060748625136512040971727320733017235527553186440447839378704529562226364240194833465265518991299254580451635435457314389210910728573608344663613332815041106272030804729777863278223811062247402704429263619317836807470267294092620806485013424400339569510617505401265638979785436940532129695818276803225936597780503777643292894964891158469220700667544795624292454433067128525164941303774557445417131102358741164983382960366571232519665803274569865159664793156447191449969212905350189567862979303756615104379057001224663031046899763601876761531173839515573801558072069466190502122228739776812538760602016947191585720660683737641142058976781705288113509738395369874229237270510616653608123341490952233118829960584865284203028453633898759038654350972413282354539217950838632434905863186626376432122645424006126956094235176823890035450425958375938973720821080081865878843030199835247231354521307212225914046289331263552094201474403315838816321265829221061642509984629496214028126939959549409985804033836864295159021200824045294183554738929989082286559247750398299594590684953555948143165915190557384280664003524413609047974888457478289514566096976392105596709145285507455789752082833977187202862610385013205029423703165893999770104728242495522980445963982349901695230460125599446006433873097425781968307236738867329471183446306328249453434151137025980423225835574037425003661534580324513251636191900396368145551794659336346779636560161351027387978428070216368245164204220878862744392176106660632895420618857062060740180271148436363538962436536590804839423223772485169531953131820616391648063069253509209127018169255298360972554612155408503667369410113171854702160960201642438896347784014135751145265678032244981668873451262100000549934562156665609225965978964602698364590364744933464000125478723952712802007337822309064079841507196482765723670466051396259077735350774243817599934515068606597842509864238820385185496668209683988784176203020341294575593546168316817699760838404459832562490909289024936568154388059096475181647444295037596958227864566334111027084779915566119367448992288266392877621769578985268734866909072746191619722161559852105487489840082998961434358578785317266631818463811602267137040986704452136106143811295463353946242415235842792585827422451112878727404673495521640593716991015977166496567890410266000016984161214929314927369084087105859797055316879960468531751116263061244471239155331616789801322313760948293523011819463130878416150611841000952301423479635369995764685353705935828625185047140129223786956418221982653557508568105148935685774092453699829066566852908796535962278443631178850807047357238511686859975452057907953626333029546208401725172577753899429208408073472386105457135613068998867656871839437061614642355262981152857469147089781894521846810822975065862524418783561974946896855377752215312633498036957449827380441894952215809283818996691261355182332279315096765900852864750536550789199445896795816741000164908572965393001780204413343606816997783752679866437077441355940673721794997157915186356632899561750183818221732881000133149978076495604181144522815642072445583956719233456577776382168763767590448016708831884043050826712316414681643563442311808291298583418927405350608285944774526245163920082223242691428197503572132581523275653072790570350298905647043540866911391630987924432772290479966456073191179503643761289001436815799501319141091399018891682753671606008627806424633064768989585592019820236593609841932696153695905901994187185450545244378482035215051190211476381494847672788478662928102202287686115773181847994909686180381699788836828643959856305867763929919101560901714747058425656006124787716319945038090845948980126792670937439347102760353024182891863018617628024783692980337070859267655687206274856526531579573933236356296511662840644969091066582645900149928725023446557782799210792772338590078751381361615034565106058153967696797439691791592162923052959662432960547374509138858380973355110868922429006679546432505876314465185227589556174074412394829241144717395341902003618499654938668605194920824504334510882053190043467211337296838711335911815161692884237537814663449282808695017193372555774611577444662027869873248322833294393585480949753984304120620987372286476397968291497870748258546455637864622551715547971990535573540976911453018159093329473741696713550524802094415049617434713010246777906737368896666369879996110282310541291790944949607001963134647789548371986416245173510166040008802436423809133939290581356865591971647135155912855874769734707016202741138759375573877573032744795539078946389569868371799265029040166572684560814297509597455824010727897440587878738330068014215733508461135924274490360786024635875135132014708949900035977709995849619763266283552426343487664342521297162264584240015903958845979174686942964784321556737828955672103099584131329904309846538786263149055737403752366990072198566854478097385740327885827865602355169191883120923305897996187323165871710409689713545449526046682536375114441167945499403541994981418988458847253962053297860388249810612991505922885184623977089044578781306168581464758516389265801732125268538710204879779686819342410314899566085935791117470736146767449435388695383818530019240217771652319759091820617547761479602352645458295481780129523692854800915034173226368588823927193193451751910227353203125411753906432565829056548476398841642723290344434600035258083436567482811561992197172621289078444567918892386436133329336201017789535509168885226669763174646610392269945690978221729017576819639755343251366800358492439365290608084351138352261990227311700877248977380654199633697503979578010510219005836294729643716911371906306325104289933764367558780366388614011628812757459434440280842164324725683558666664987281786328228958445344924859840714867498975117711605086863647615056390633108153360436564739451389074500915077815925825496149696290645972819867343375338751991032868107728407789552908989468582556353616176896989626773187491711968396867030873860441123501141748934763722115000595363585546576443881096042144049854315420969687043046690938260988803532883544513471366614958456527223526038606236939789035073302559217862167729801989480751483142601441081379292257035347509813687428801373972282418361726707841189386612050225914656827712251648673120186815912254218131841703763784504293437601611626178249913028967997136322860549078035181027370389423418168650886903581496868513500440211152669063416294054630148915124896855916373351965560573560349151053473460470146726061512609476310605893649276801175488684396489841312815217045421484396989436130522403753462987169168201371559793323865368815014925017595774083727648942490894891895275283478418282159322816253088700645928234332996647446267404103865651403668531346126562754938312768792914731766961692979801249134077688039108343834501000116665459404257138003423960075556170597223601181413984771939929665863496893545717803940986355582997723841940910581360931607878777361590224251869513991174435633073828988769753561218512523971900190232626463719691569514395646016976128391785553662083469884257175287264738701209313014400511446437434545119090718046769957946958437818312756965506200478988720661349654585199515740547684742169934899035957677300112290094235159696780214275412810201043313115381745580624885277761555567263373768867180295072782689549048200152699279294467346559266330277966497484793788226938850589201184149559490966038673192945967358528440237999559029866361374857835784193291197012012896745037239904795151602417749425384666696178743735624572784568190169037956636884359685136745455267581490900822519000662592477317076609483990751331742610609216152500349391857444928693954261907005907438595705669990729977680188324731981451925135467144316418695061070113237690577275883578993245636449553467620696711166674806468863754095187099198375019385255984469258470182864560785191050010993238498641686657742053336401115011660597788891222231519548841336446751586694248625742272198199552912078359349811481806584584815716667486083783621574702875406294316072652500413370454334402089011089212373562703601517623803945146178753866670111182178451691917917764954681386104310352216093274345416121008909575981881174884318750448460002903042993141536674318838142634885877392410603731039710917717774220470400774165673155053381873300817070834681162463365346082705862560065428792298307376514597985500019733291683617848754287689808801127807262294036159485132109764473121013354867620531898719330722330769198141449337035649748085887881779993450468244880963021818263968256507487964917099959491718576089385533951959049837708915114868665213621727996653876583500525151744885984791111902859822712138655167969853274973181629138031891096353747908255547785196810270481663778429522486968688348630487636900091288960204351391920371379419701240792737852320786689670069253846647164522606296433777572878433835241280191183405811474902908971391763945345838034481961823597670931216635623441576254772772224754622660292590458137070842969096521145582187855813859338700716562979178112684987563941732955960478323927981203356799386290395358103369275344542596120932103082762624216367578367895552850597488217990041945105143135192607833944515420976262776291065431033717567864437732421122750864510211667787081336927450369105853296177955600009326885041183116920435435475579760034447160133716105517860579546077216015258638029899817757212434345782208996878147662910767633274562842207294493133022181849390265019973471044478091726631185437671357483443375547369061472935851235940763230453302523393460647126187779105115375377989016136699419892615750323659514950777757085243290193566587134063903105590059274167404373301045060261763275922852006860098800336821712872467107858865486354436830714504607120535543519692855053590242971209543677808427643479545238747906960383427133351457917979012225959673229899404239710696918581516886021836993612249894854875255592244198740680679246848755366932107730349293406328076185518429051615037561285656100185128710616672767568095681594258370475941377876625947832344625304839249013071426536070589756578527173009945968785512476878335060179064126788706911796303462971912891697422112176096559287847133667880820875517291209256189583595231557581279720406724006801409339668202734423089682245200492799210428550049068373250633670576548319317310504417209693519502686601265391592457993866556410177443148681138668213135178091213350118675237985385611174782808225894873793194919932421991918254505043324308568465188286188645951691836339186036684506901328040157045908695117622574132067690486452137210269096497718958069053182639596757095688520923533246312365925456944556499071746669898658906885589168947468407391623427706834673686324456417345839774347308678672287718774085530455324338881056964919632679934004603456987613775279528063270604142276154555163831905216873501025591385755506944615102885925687537324781531279067320413418430308230237240194857794270537835945110478324662138532321065845621160125379950278515855863964527820455240614913652668335014484807231992674295036566885867500206536117145240163560396122999925063417285305604580476577155848347669652120336470332973407850623186991952157502146270945547033499173307060307201064153815089084217201745282787363928615320327383255391651157557881262632214077364237512659790965953871767315953676110720581862761562483991421199328362581238136889962634933357126021211463768654891675469713337120490553866981302640039216799940473194094046546213498100633513933313909650365006954754815569586106640222339659908071839967033936116700224322091133017010074211750106893575758486160826025725497365482199376337637971877835352140708742765271640808966125488147366211037963228727508162190631724784151536288130359294696592668240898202041343104491546533628761645196830703855703757540057530783098986868308841317102940142450668834211886956525327477463813421737099168317589804476851626527163421118259408254518716696734103087046837524341332049994676775809746297390261285401963532611714434592566058483146340498936118436021019790341887601071513501081077010155644566469910642129794550651245592996179198583835638396684820684560312616541770282197741839225915620095232208983799679042211038182065565299088151094837593115475980328384433605498396093308799399770649002623688698519444866632044379756479526882487417381109257444480892965404127515135054534943628863560474371564197500796575843719673409379643836470223015047932980099747433591867206944419034612740767558343260678676754296788349423946657822194429720745717315563191710565058550387833651119473929972499691159840095669403052706756534255458175608677443810608311024040324172300175746567264308622483076276150543896899263783238176468702466315936971571403924597341066814410252322755730168760268701411151093297281266073260396777831243386931307353982290623364585254317554038326836480705588626644241435231601412100232415432172176449315539602410805909274900342098266407617567103168735095284863003024800345129809800906942617440652285608371579169451473253484359511072417372165259130751439765436124422843565684031621488139638893928776962780466731042554662454093787025839879728713880529108395164868071791143582513266571386549406494901865641807440472999629561776674499582797892991094690771956280017643825785648176314375039507481644779883792540751431280817455666573998466881495746525872630898648929652871075291542078614933639367339376573595253474112262742057633448489361412967503690426222271761409320535245582177433279425787625349381687753916601432467602066996550988036841022018771474709370802104914513292192680660670547147913378865697431993417470386288149458640773032182286686226728493850921141647868508920499667201071239662231716478918984987861676673241725616845944426489583200004581006010607290532737959082414683594049546442151630038372068349617763717511690154193832663857940209286165004524528852186690815840012645770041397356290307743794130218550878399887063448348032344722521943651827274244550510417967683009215903478052552606501414373617393089739804208115914707921603526480412800074913394100618294011512871194178857809707279433183316812143475763254560625053201838028805313225004168107496003535655113251101967895767807955399402674753995069713580305551338225667679892473907911088978653167349643509809465192986328576674429533537450682755059801940289819887243572839440197811900518653370817910412139245689655522179210789352269853833834801240089786328121545587198599112444019486174419319133343358028123538401748230113627962070661872689357822348598922133373227708064436174864895428236752973423608429845931991960557865989122494284421589084015503349920350197490856352035845761170771503014451650055440998371442340252371600260568526871186954574348657342751885387134990496702747168971381645535858520181483946503203076614709715868830051149821131041051489842755278231321047941632363535659922062829254269200658389547617696587887162957309635315355204269741657489897950820697049773478617455118757546159979324253747780029912202194353978157155050533493881680743795973510052676306806006274277226483002730560384089836573280718161319196176661193993078702715887576862173085149905915363501617791001651040212293479565483942062434266671629535559842626180778032662815378257426865659294491635584023408574812904328357348073561970463381822040308985429643158627808130017742028767472982089851380327230635447010828278018345723284987800610214573230852007851298699526048772081965125474783340904249996025553007012927380316865829401583072685809808912964572035551305284850438282159442212618430214689385513411165647271683267391615418807316163135415055423803835125112549103682236455243702937643871915746150040017668987134575699310239332405302567268993359226512042661191968024454196613404754334525807264246740578235063433016285021465559159266025333413593736036752350335853524148786057018238312608699696487212015818592224887390215762599432136561890383752902561897989293497841344268978905301630558258707140175576466197163583900852297427153529694252090483788568209581244037251181592280117384097163168203935197796643572612609732982043683845497972965046539194660625108310858147648110796662056975281439389259591455623742628236397126978510765032011428149925476534301638863062042981688310237488228988829062662138792457885289578437307971685100965901439151041479586965157431425900178172127899272300123409612656495540903876135684178712129667181125604159015804859091555695733914991306668042995122036422348665235545413449323760409181621359200476909348356725031472854336633107281961676258201830809129144343735056379957533278541803122967951901830343736258336918447521842037796018670334712538446776347393680213002674227773596987214424919195197825667934595984191484450140684488055113611260310972769492902936379308698020718686860405986123322286638509707091735978034947176772865036615005893802848908900159390642731578984090825085684697443520848591300331955629733982329292453809136747311553020951668120343700935131326271099030582321016255184431602643563839567165382310396973315230925283955067147924113127522981926131009799506842518600005087308962089125932767447216593502011505113034302157535284537488673079973705258541054843008088423311826402876219898010276953362686248187168309829068903596175429873276593106584170183877598045373507131197783176614012191320750443926204391410385824579736274458552158107646809489766255849354716524861499270840680589234979213888603984018005384061561313862177642702337854266721521311824052841252303958849978732985852944764993481159507990096015729084491178301584430876650223360333936268855469441717019662458870185570682240663857902700543740883087728065824302334816047731028156499634670138303386573296212124218021252782537639373018514999090938119843848370979490428779319847036028485875544215502731638786932733979399834191381335670787016354184559005017002084202896160829800514124226279868796517600764270909566586844985913434474603491938594776428406176637611146299396741522133056547191583649979248352580622251577343115079839307120743950668982566711652484847006843143604379913313638037362648712277229605387770978778302914754690544007090155592429116723817125723629957269177500073372230304000719324902819933022987189853053083298206773841621798288082078178080895642653279020585776554669352775307039495671130498347646553542256824434495413605496250036510372954332330875269860675612198783842638019497821238867164213543903488565290821928679985528165465447008627312085415426096984297908591605802172459121441647480447389019637605635597778277710875016152170933298543148244253398414546633557728940309426140344399741150693874656653016367282209981285401177068067279444415895321521038785094693026127401379485649874579046842245862108957006859431737989316157617925903230124164084470304478998273883215853747107003305141070854028239638113089219692120652103098586307640070497533289532893434938666765584651321581172323340632321027399724081268500829018891996763610925736465127683974570952724080241825526324321697368784334202085703403586533241953595323681190331444892123569952042146124720267141888243640097571434786025682486081525187330755175734407008345622749411491886249832532869787077932840488564224242303136447575418270381857103001973209162778166312456455260805116307624310529212187057460143781889571340559428014607399948226983454296200422651357142750047554810047668525230834713013883814881469857779978497894278983937229988134722100424875424751445226307937825959481605633942298028150764147328989164002669077999666093393742855813558359815126927990588243180326021189850556722930522275280025470068483437729741790490456471641868102406393247427964884271373714472385726225313474891720051118667367303514618266669432462490556330701250112115069754577625540278870046940776479594823644587267609284819714652965624244570892016799873611625406745220965808041478707809186567518803627595238736099682689875650013819705174525602461176197674617772413852437982022675957179419582706809766350713389392655017946469060163343836393231379092684446488111132191687654035774230227068558792922673579051886179046009237901686729520973098735044268648675990889728824641614807455082535401483934974390125459405090957092662840787607739712842531675550247457176280189322067099335612835764086494653835311950037779447135433641239804958337930873735290268148715237339308628962598347268980646119944946256403195234395920512743993632157474149786750797529772938858138239813213859614224708201339179234239144570259663955724625203529052928501714939852665018684562118117367211475127610789245496537341010123227811918616772430933667260642839575419989225575095765036280364883407949980760829947740611232976963867350665223471243404520952936350566295842967144484433172865984752655181297376201545332676914099918480367803966672035969641327465353289876040659522989852196749883522932633140703145575387153858465163355418696580223417402876839212011485270683439327406015216737826611130221281953393008896299883972615946513585054737856059060840965738629602875667285069192275892069916650983177879457661412529972073120301747417614350878934135265974221322755374161811417765897188604825111000842542118399407625151537468129862989315099684636323944382363109083353297340111635464909101331014850112334579916215207066908658119804553410599571053484890817222935650838284437711004262829877153135132644312465669628168641346027732502959341081060693305622999851761480711747678631279789888792742369864394858748737115694530304774058457457093008245472252994947859915091785304096641718263975921432140782523979266594976319248441458321987469636077424665333080285570032609192463729444422952366635715596277102720893173819145583401347204925060587164901955020949109708307097567167972374108554808254935555061947735948888600004668589380102182543690971086435342641331337408757142170881128154380937912426402737707269298773300834764997105860122792068151209344251932589245883113555066919283877051967663204223218106882647371733056352035215576277920249942238160666087011500242547319806058225159295398644509120244313802516850342463482757822470293632327632627001376323029059274930524212503969231751853348666837712871018859736689304860823196356960598367306294930548102712278717476604892982759308041561768661296555286337368189886510114270657633475171899032801882671927910074253756612023379235905187334720669812448304850814778442000964993787339359096774116614234992329483796977623007560999499645444331498065920186378763676340316909753105965794430936739560920163462271613591780684916060428078894736154990181624386420224991583338783863927563326602520571768310129863564661795068335886960538910220406704422362275188267475465913420455678480083595801305840208988821930142706632047734033334301590227870619811316652803433180676664210548032136214727906385900347086616435524843433311225960851169133969385427222003841705224664106359150767774562358554229812972233942432868778419108161528198765113373638009035228683031291106697337249882227000159515194056381679156571930737498777676001531113664691665522641151958789594795683365868537855513809807292310855461946294065901188273885836026451257453957910316988775544181216914602936556130660717784829487551470573485268660886614430295842597955657692042112745040791563465534862289958016798828491575419397481380165412425633115701356083697823816829660734449228355025383957000973945946393800397152052788181833204028593239308344597916847033446100028992049680220300056539445810521679843995691760215115627191024063291926333049898133671279798921047456139815210328593942609954087172266064498859053808275952296777883071110407274991396628928936658207157646604999526159578919401032829107837528930779657140925643736237975357243772192404274848226320157618158848451574870874482477283965459119239381605582985623494023208225016618514031565803335675173320714133656359600615784848950648824238444821424710257515575319670145424092707660138063874636409090068065125948374854743681699286295807553937074242604312228033567221515337239203949288796825479610540264876269799910422140767644164531495792131896629841479006518767975983318387341934292823770943040321318141640661619660966247430631431679237236119807523524203119365135975686253101557627971004166286421750743175462907605178910175704667602264054262213073694193460428506203022635427403183239882710920353837913224376401439558769397409143405241843147920027104671551088324973925132443324114325859061689689480514196381882726793703049371790700645732681990404812802516546726153696359214520215829614635595028038985934846486907532061128061469462962546741937100435280032660250793417224350543124050010069855491184446745759151912042296052925446180081391546359971585730749189303690788261428891363804299017658343168247101625590328470610915877865146153427269573068746907074317436784578749057109273106372974777315932309650052326004786102297693686496283108704797934568077081752624409202093353804018145706328845761955450815954118719035161532299473909508733504251355993739491364483652690289604166655360414604287179616808628678260405141813163424228659279448476600018089181214417640912780097128650118501872839708008644964990087247484252953965804992369965882004769293070560461579879389541195404989515635376925901770219827278440763559742382110318498516646613588526228742585254616576679280692533729921197913979841466761921237274337816114497557728878357758215637278042242126402998771900447779067794680487586668275615768530342573721834019994821012570900268955378590265966135067603824166090073356446960076225162425333617255520099522722295213680276700607561464662337547829239387952022234656238048055872622466004754844731354379192126709655515721818664781993995132416827677280605844343989808658030580541862501982772621597025208413845375737028020451566886256521179655830906914632092152115241754258747089723058635930277905707534220485090227243769148507499919459963495205036395597901224288213108405921580378515167360049519306132767724780027054172352819059133613979569535849958927552779785795781891380964401661454691940706969168176437946098443832028617164978856411375110668462581404583830384350523894599832304613345618582004227844463311006739263525762898659749610060992114589742527501568915784270536520791559900255435065904275436987884657234113072042838570132164412739083050456715589526815709663516690696079644928216617030623628187790236245243407265582180443792778228250601568207801473203335783534584588737915532274500759975719995875180268863917556456839408569152605289659985012553221190556049050931586418000360042904545789084438322784444208355634972240997244432596194942812202276134555694013841488249512718604573276291321508658399663756341770403741580367650547942545223898240133971349858502976656691492685296977162253158570817117212032114875133980716740810246847817438027921997905172496410691849984307626548614674688773774967652918593879196215370019488583241355209350900440037291236799469667592827251791142559360819771736294875937349017731801116388351730341734707301475458695061003605413353724941870201981929900593215388436135421595864929862490895132067868872098203978065742446340776286497278688044955801245038169053582896107764505149425729205945154234216283916186113351111250707929643919379913968408603101778825996086022878459313757337030757249076338427623229015893199039005120122626360203713908964038116013767298355819166144567536311805122386144947751497850143850260252661205899630238170915656864692885368034281908599040457028326804202516342271269261837306321450426742368737336438946056920081525541709843113052287681208722327308187233098982043104336096961247327655706317968892261867306952209368719842466757581081712246956881699165609004610168039765105902329189599177957764521961763432368096410978019356332324339465757141342117109695169644116719737983127382668348083076061820629371492642890540297234070427270758609082469666094610654551220533944036424985146986258016335120476098867151010548558837139509065795528539686748147904538915409976632620212275316573418981720576551625336782190767863815571839418685987146689338543467179867854532929269300480959362770089366437848265914434668512453163156645748955520066644967736757117829574032135128355597083197467675500379119686207728150588169468679141953456612855210362606732801976912705950933323014734398696169759964363445305525090591189134183899113930264379423912533309247640641419550132525703410994412062496967725402844432871301702779886775341357762785052279521013897348416702293343739334244924096692177641392465105501129621555661808479660944368705602935697357276259680285776324665678337065534371983394606553361658242317236464706632181696528263191951466578704906159982766205354091309360305793087430130146443380495167607256572348503705646768506926441768038655870089599316399389761686334291597508206384460337746817606856761456087430023650076703318643579420051479479603749415312198199533908020142543265162889393157795572713036380857350920364469993571267201377393201554998406845826673248472151686614673282604704757271355169267534151406754529330701332807469013181748799994851210948071741702770067645667610318135656635909916738479200496784195588059289305791005245376426719207052252606039654449324428099495889402535701473755945762197228001904582219987293449288569104124154213594880660416879946660928856436594295240689552720517942256654465812705921222237829173338800092017468326151679964729750896335928154825408217335024887931657228506029438181901582615061809378334234856116234425369398913336823801630697319009212687078045859506946161384951981626369533603000874635656563159614002924132845488731609089927812139014203488494900714728837830821309769357737282618929183743974538408237015748670127397042102175746249989409248636343000918691691169608660114272947790363458035113589623837393620815974005603525301171868528951891444795256845201493418582281924724542042666420605097848451957670257506606305976681043764485585535851900498034041706666250174268817686353168083307121252527425235293753729223890471286360670003815420230715214548188876317647044202546678094241288390583214705798055487465350931145923898078268197176592847296528524899866293345773569585679791254068040637796439685672796756397355672640582189319029664458569524295425062569269468659112082963478926834855188490162957782430009906790424677963370796298226212870378393262991856717256387241253355254209765876884512394746954334552900687418879870702855011756859515222184837820929828309583633782821529680568772207524224537524218267410455554913810313096070997343471968991057768436839963479228908947779431453784191531828704700246746235161148612518659459762930654448553112558710236268849596233113808634180974734694843693758397109583415262625655349517009259207298189694913518407690674167389138483952676165513154640312935670146063167615943992679314243628839816258950469974110401371643829742412654707215309563591190911358713099042529976923402220315129750566279921576638819477901243122764107684717520421895121577945041025037897264105614684315824712753535884285018746909771406264487007234983669347239024706007112329606578406416302282906221588959401297519127085100364248455408862488336314409003197230366299219905582887820683948892764615008340556361730886097459503246931417117919955867067477857481008658891658233062691026870174349575120203183691814031026043486079229156119938993937468879134784629108406286414973830902681933557776854202636160142646310814198156396647361319931688408982185639728654809366950933275461014178251591000404201528078035118152086621784646367101966870454674795347171214551070773564032839301346558162459903980846319154409341604578493704416722445546216765215142882256758514512682728260393813198862816044549006610015828436766807067166116468391006559499682415793208841565740446960331015746624756405849496166597668897368283817642122745214290896710023803108199393457261075201935278199591694153527186776494130236059090276167146988932097769681226673110333239842598895311995394576499332302724871131207999115354747473158745711702259266534249218712806549449715583759439957082796000577855054606948716514915788837305256867915110671874820834732611909004876921121227095542298101886426983452830184045443735994598570758864582666159355624532613757628552562570724240668564914114711744866749727583740438060705703331771575964134755860886794404108024690995946159114329034590879206376146184975190383096222586661962733054479395610930450535112821638496185718906029886162903212979470900289678344121119972271615779617375487085112921130277685127431224667215782596281536404957693720305718292367419218709037645073001335556793927300620950369231051306271181868662764894155656202095109805241665361901490705570561958644598585875881592276377162400749748366581504542138396319728884276735980815313700707398648582208427958562993826696783343592234400081665140624710695747595477567690544498101350959247997239966923816286748020232896981317134601965644181601700496318526518343205065678036898641668935736641212878505188209549136308255474452626551026739362533946401137954443927237651446793480279494556386535786587368241750946982186761970957821452627289763564524363675294005243502700257969425549901389537030066845117502441390922779626132681397889799845843576410121922703737213997964768543670396839399038497101356338331469221921473352229491370294884677926524631769028668918822092276184851508670505320017560338827547326682440170208553040259804059562448998470541190310965234312270250540157341543759599843440371238915845725625388333034046361137396006665084490888534362169362416989215452558020135128733645560973429104809466028979672951613043900025537070127403039419502888447241610776081519337643045973123029613606852715448340190858956860693828518866187234963132794428026930215587168884314960840414805022084249764063182275883214979368932551026962283239660089401658559816523469029619790227151066907427151213258424832908227063583131592810264224352753892483322598056333791831173809278826685121167372286734877564577726179646415024940256936969513526228783015445402018531105573790972176380095592643782969744241838408002961419209551810165953807359700390956076128600369125476547485735310311175656328124297970484619575336137733746519604126243540128687373992112538888359879913731726567156025674577891052371017690060224940839332879111360426082748838363111394903673081314980181837105076296802311179398004422220646021668761390388333292023426218325457828956085661600562742328094542001669425981878485636163337788305347325469597203585605780575917129884908973940637508004848654815893039699216778980342202512325982756979141572389300267295653725373712512500120919876063295654082261106068235047563348548678545559308079183164938964872023387962591084695211989053441014030940857614190786162303380333072394214295106298864323956665296943028466649556379624609736043093908675974621828281174447178162605030580506853088335202118869196360672118800677385259303577789922524293564203192633964027604509561259577358953936887546437015888071083392248977430242559149838711924652079993579902365111734836505211267016565717198822836660878903027636657718264768925137886785015913081305259061630688405568420719884563893971750555058572077646278990901155511345935442640888979592835020694672401914860821667223939773148558918644951382413992984492274866339901041883389071260828949265167351265545484092057010535035481159040597157387947644174907653354511672416029539756959273145995295739882255696890290524450384100269500041750620843626474086298956895755210043637715347472187739845218509355303163644939652301057702779031510750062062239613707790416739165799091453469622475465530024491173012450620396999495888476126772255259404352468984904991137769226109811193904245115837231047970736270286395927874409967311985324701945488314515748322143507476808761560798002813065015975272283627022628266752053832123548373765580979901009961287818606114349030796045818091009621706238145094494521910068820260230950929312970606057539851920476762363330349959216363917588904114666353777068429125805395965474469336327101435680856746225626646982278646585784443385520292035270675442508540984196369717299761995029144039128324097265053899407523355989439618186918410987020611253788937250412908185467614465473691843178912714746628737293121005170762391130343159513794978296745321711054480436388505605589939282689139718538451333894557530195660196236921500437023813629203021696128498838731013742904396965977384489736571638801371778230629421727649256395708086205947255010011627165975346705507721638052553932453106393947605115650346350081855971364088200206796716372445325952794628902588810847467990309494018144488858721866504198834355345759162261693213067490881780303046571168353193453205708485745487189093710146887123751240269290104062017566887870495872740398453820238561748930777570462584354087855833467096275812591922312084405045183514111923040582057827957062728300607411538264404508621073584072034861880033801043003542809469612279193680849258766058625289113905412052658828262076205656950125537858593106256916102266665658122847531112554319936719752557174492222917782817366248615181343306142779873610938871239034986043883915676760931800235664556550132632169784047006079904758997707637154916999028606918552230519385366658233906698771214204023365295390428460951223999219677218466695587654633154779750821717924735416160223678953689977839129413862889414849918153456864442033704444442595148342957621029498867523884539505075344876669125937270520264924361015334901895269775455546745747048835833093401373445669306432167692463178646470290594316906091468884868833938742763387669327202859974130216238274339446573272790920375584256801267548267350088666723105638153643871114769649194265037304221563702547553006722762949873096580593914450470010415533334461830573754081470684275301460366171358978514558906700341362103444320882202606106806212877155239167842401619724907463585402977453495054917346183779976927183954802584189540002023108862348944287199322980948705386744499534574630903499100661308141880764310764194174251198220912419729349664079926792733985051672566217882463811419745496796636222698530658848063046148359903475161038590710719605209516056979794646882353731130221496729258880135573386608801798611028006835390196951035735969442477897419264159955200714973182833234882813050316022475364689277287776371959464906695464526542740064745871088488128739461039226526011002440140873997384386722024168889814815760195344937322351832468519837162371602588785764633604638548687739317961325918332564112667303455902983577482441087634073157442476929085535837077661329898508900471012930540746249288298349496285881939743913527648604668690882305781571494225698785260312586730497858935908708604859713071538738768447456638083503652605546418015749368171244142764987265451877573410317654322286868534644878650070201509414620566126696918886809418952072207278217062407262853318757664197750271973210965138458902120368138822053527043858921497532458254130318056413015515321222764567120166480322031051052708956948249303288197858896915362787782031868132204196662697980251454537370331919092786016750691023805826618663210402295630201234408820647044004357785538033792308176176994502959091922887440394646645645151338535974341389557854434112486136044948016139443279357325035148487260802067502876685642264791780442695375871420636403335347637395591529084740239717100226840217240778866431816705418550324515091535400495892195897286522127248816134314678315039692552832612413924711673561594186905633358404729663344678138670838361619281155080300922049935886371024504452478450762854012760246505916706027253696030768202518290837120550685532339849508880951983173893679800131782706875618885856227596939811630132434501454051976892534376974980174506501825914560726038891030777670950942137077429543253030062608575601034137690134930505062031684043711284972630454097308145957575042675707742044156674685808021385406314446890897179914998404064351919850285573126155515756158620616252047798736704232769215711266232301932657334760178028132781805341017166681929532613111743594147518709512461172460434667041381876056403954105312449733146850458308048910628549672142628690056434321830339553896212681115077996882650378215089350067558759115096625532396969574674395790227008016526872284208078186899518616447362685870279354444455028488571286699732496307930414390611846380064997092293734724227736632162936973796856993741567884341498407551284095015747714385615385913124869552691142715973073172262689200959892111056687735629526562584043293516349300380505625489792978205020659285623655793534515355508948982017647797959729210235957353216775650585265237935854032039959036898656357730492475116120018814709013104406540576476066086799752045560026014994881229057308736928490348903156937073164455465361179030730776799968690984395046184966814399798885816225342790065787747571601996977436465628028981377050920942680644116451557975122432060508048381607905375441115960529955745503580261198277299005855870502123873950820941146116088770855488039344223571689309047909088899367105397238698192252627355582143410341809531123604420881359909521220711562363085009725717201396104348635885924736301126545540380222596275207749111589927369268758866553740466628902104545660856468515101419689676614097158860193781019758968663123881281500278116442455453615250275372817558690677153300070087059434923750510410676932966629004030898553964339363134986638483087414767668608650705635641149090067810637773248515227984664750099047472671215889552891351874417906362702339654449186948961136372906420479127286324503975403373174338316021628036929637458459729258649878313504860483133168735370215758143467448773700697362427712366429141670594372374151411704888152075431676903868906644568068956980151361428689320306039961435305498727482174185543942958487090137979636335451059680914464158517054004180156936998297905103005003574386264829809716368188672695496060539552404507088528649069648949635926707208676447858571521028652001173275444874963148085728942904436889086670291750854365709817578340962785796487851593482897834447197165649935433125143000592376242489543794998882398251295797876478332160149406573411061864078443125366816488923506207897386021229259659931510641296882136750984632634037007552272537078320889539343275452143374845240137888173860293150546911060537531709849012789681961500715499322716437928611383361559329179123733081611221685047581652677356293233917711155411682773103870964528821933514910132762737993612325203327908261935001193232901532360192244358284063064812249084662265558221301057146805030310540018534960893285056978453927207687055837857331477627098021994985927622859512978272961041417356083975330453834355529894368020367258194656017823341785827414084945635983052134529961162289068173355032837448783871022229772777396106242235863014773256190718583782749948479860253386193803178896374633297414470842195149128786220813327076147394915484145333412786913531352946405319189181617755710553367538380495908753024523594974172615467422628255829734824222363857549629662218627775187902390778997298526104809825557525603260221024395352939212072591972817791313801969630642551159079624439097847372003327823627032403374481931410057665610456540604224794174584480859395117011510997769656920448517366121962556013895396706657356542224070905710859233911792324033676799421893052472832758450439988628104597042357114984810873978768264926892544348530677448508904348201502377026244568846932378020761197701211517569409816395987414798381178802930157574221620993080233665924781178167254553613025422421267508096785428118965935301678734599872446476593244944759986365257465905303057974090052629304801374164777327878576630106406784022094648690566088214206545131902262503815789857300874666265131602795275543842951939698185744472490102554358556920578926614565545258043920399757962316113200250063370226722367703805635537766570768761111362117029696418692300902233046283616488078496891958840763737481414645091539894775436832361551603788996602626261537361267770558371773462289182334392923052527269756772685502641192655446021840867529954184136027592890817804657629991051672177943474943323787013021520479254846799060068327689137351974492000872174187467655684389255039720992877274631457488296190678947641387265347375787109944238373620411985545909844691565877274413138657142616187522167004536689036549648111181452108452650176389777523521373960714436209114161707803887404932167306194116967376401623230821531134092351024963705927822419231289218025618358844495260828268736957947870573459956734038248180574358741074897205516770244128976646519908656484730299501632590607991399442313309325552888728712983412246095966751323696019355681309855960619184428984952979907231887410503363476603987371320928962325853017645570813751745700140468337484400681619534305416676284113362321302278075819018847587487401994054100427203234075524986086993714980829454571645377673064029578732175042236240823461786034980427103798746797887435570399517665495105587941460074126312741118041654294646188630344288603742919041218628588551289174059662709175320455583646433125853179953394870404056396715805381706273545460100745159578990709103968787902055714323161273666064651688960569392095554932907586158776931972785683586338492936102203976010413277299898422951828037759119674059532841492046709785618782768506406768204743757605952542196741364866945653734774336595357774974677458723246997920710236571016063996841737019430521286536216632020342978160796229191631500120880003652859632779838092193049584063822527843073423322510617747850744785730914567425308749960157594169569944237248524360137685826588196262050223356509567474420374194137049599321251127262349643990612730622083119099940936354393111040598538201032476655754161990976964419670999184179696644106972878255885872188242595169472029001301246495965251781822385714821222730011958686881015226400984103420260912421387296352997545562027860141766210042616426340492038382541076380083063021169989618388198454669272752879998882663612205669253798736393520108309889299618355427627950117701704026471324463902003456945439452587310167815479103218033502506677268493495423201224738555757914046571100392879490933835467624867249439871984972934556177401149100679277675901397036770135427277117203374769646590799734257447945656747782239298212653883667088659027027512548963328825393799456121661823769764467817014793176615633047774810441241392867829600192878230052146733634502631989611059512120705167373328473041711754456332872883698698624978486320373431877729406954881223229584491155789401728850313399550791876522426104707777152412469407101667755715542813794888524778123680821908440799786123378345489217440793907742907350404975187510520834325874020083651451677604014293159126530252954806844561288822820465984147553776535946387545244540044211072642473263497220525502991323664525573533678165277308892008739048112070177741138740438978580368281805216254770334289432831040529805355853615524202798959062911900972166124122239525717205402973177551085117445533885965732537382048962591652868024935100892897469352956597111526061029369500808263737250460680414460061325186344587355197485014039297650363038510721197225261625563292218213911218358310652427850125644049619151517030421703694815143513364037650546616403255722569367931787087675940087968565573277487757900775554552293810627021633491454200018303506068903315540587406062469531576186488729637137743596094725249938988873316760148967423480447478540528010919082175334971620158530345476865446194596509623613532733988597155018506106265915994807515903876375064657465581549723717266318226901971691718465499737118800889467530731199123862531335907651988680829821050654380134274953804348392905473191814991246807989688054244651191821365997304599743852083093366375765380500319673531696926679808782504325544687693140592789676897296343092696477482954994238551038491063794717348736968448277129404853812761662157843873702148542216699395128062612985238716398570969009727516438175422102704988461215733645163760147336050771170190769296781505009019825391483963087525906685087932565830421923752103175615346730664040638626874310663088320751388405996134769874487396283968457074472184036275623063599602646936627781011424765795610896895423029810102234058249577230272431869914203688398331570824570006926741971746962871649221829768245718004890104030819820729265021956740103564376926177230225585941629797938127481785263825250266358383779677330813653141856635947442306238189685882006156935124236042347191923995996156880819792165698196867374831004112423138362221014679921298913974116735047911613757772126933145161074467136862746670782884300685022364062567231839514002603501178274590798927600719446009492910116592957244132723157101023926686795460469694453542873164019167966921474548139066280003112194396775070508866428744000668804902717838263470893656355134506927803795544812582437716073074503613118659330383161936721924271638187379659841405082849160545644364902558116419609226942947818971691846534452543748697963738852615044308922115769757941089328329201060465236688805741536637039160778400568735868879510481987286311682725508740574679977357942127244864410229613485635435504993184189602951339833038741542108718985190656313383682731674718166876880181440574268966520477391056354733650563288389583014471879580382561118920033788110788185326186943488179065494541871855058823290391277686119931020648540698828819140177103764928095495157237787539268755377943401976499906075537618619737191915205926706623075177341777216793702354644328077134154818275754033971952539536337525558622405676433493084373430075253621965613501400050734768689784497009291477627680197301340257016788796188201537882102116944437901899495209207170157957650735280284855053621363330643372380757642332673849323896072271234204391045483935465472062042174362882484130024452108539439603843312853226021865358070269925631677329158737836154259335174901354263571550840461008076047878460165988219524886238715672551349467170589814119297101561828574509672080263251012822158499923030061272618999518715105114190012125175569174290191617667954125873411642226565214822082808084705231098357538594220193741582743756826003878511937253449115377101065150077000986681065237449640401986817352019865090813302978701468805909032701526643013328385027032668245152722609962831487570585066386761638081915791269816232362684038003595653072354713479513548467236162540847279650549245257287882012803524677324615424476259462503540068632478438648298539402821720718959575437305149232585794565706929681037376853869502210506701220078734820721030303383958186844315421757500079418318699152158006276861219408256514964301215039548921952972984252057045599422570544531145861566941511023149975334275432294620079282349975069391760396272241246224721533495526509835951928900265885770553714259388822667448597846072416598947637469758710776189682774908844782421591646828354842271874259940012137410711467592679881914888608996098727474611676227922718113711361045042100400031861282027895825606990862248424966291459991505955273818567338444062098057450819339930747020933148489181034288175674491808467764273652827146889244310307147224874578600607743444472821732899738951219766583111971156554104793400954762736500611428646650238323694651023989824044417296327002548920007940662732305640209490513427450225206097444775723581973092458049827334268427766471295039274248463815819879577754619564519971303639793829420831312573645779551125866515632205364916450214568276177754602500838488729693919083065364658585615861658343495874767375208053648362697903860981826493209830771472720760767471776471192913587902535165577436773485411067740237563856438718205040124201735029402773263157463748050335410541569983515331695824026695863803237353245721320722188786846940938600216437269784551233169249195040947953541443286723875621593741298964522743075716249560681412198537039022556163658454504440304903079742930286573902906325551197426344391622945107871015548723662377595156276159999555319043264623702884383018287869757936514448972067728560583837547403335363060670612858798815786500107884305675005037474624252477387828157008699653401728539662934435165537107735946492647464394861902866407422704118300981897780516481623375614410835211877523248584201871972112637873461472728089447479219802383926995466024459859221825020471193777534532150932604359913604884820185756364745807178354099111015888560252378997895337432903525412583648842913381477308300911321003981211753658177207286155141392589237887202440098390843630163127449118463060002223834617223923384446685926869794169858944286875679444912626614915491370652234970655636706441574552646303329694866221333484962172049319100863630445273081348370513562671965406761918824473167919807715171445378329115901070397011287055574840993573577153830879338122660200461694318575345181598723367486907782421288588787890566626182699605706354985972089826498812999324934847451474514017618138998868518601004926440563165536824537936813543887060046704331418700297659658542838530275663162228365050405388404719606302534417593405678977499872505725537672516459045836101377254969335424306619918605538863327754963307405407809420943044327289154103765170137223542659769356996266411120211730917763585407751850914839780192611570704912173934700817657093903569846103933343526494008570055650599839944761352211286221261379092273043733202937277917624614036010312050899697539533773787764929532064163151661314250029660962716211758703109048121163625634339760199912050001132452614718032692370427665940327524313492637428202131261628629575630865700401991010719452550654227157797298121933546990379710017063392193275120534103105476305424164486930292856507523893164774220685174411771213163229246871015726434327041760788616601521336847745393234313272892265026410998323241968085001007863780315506421606444061581962972283850825675390911424946380705638662419508732814849960199811330263078835261664666205456357942108491268873076466939855485846249363492661972065102318143943949325121682788233332401628278197420484366895200418836814313721730654942521472868462282802864691718327559473631914182572383909303866993490705085804891156152592160314964862176116643660617231452893138077432221185566942561597150050074046946390770051107677996371765236302579987275776230519544478037651962395778969625433842770642515905084052340645245036311431555497848033240660889738077465058087371066379760727018530874604059421224781673156159644035304665412801122148715658957155301940464616057749145435338951566919363730364852853484695046344835559459464511104145991285500638434370448524474952490521120190273410672185525201424408663571904492513566808913606698279554846684265301258021244091113581094823699479430792755554694864102486210642428136211930439534363774063263658430443767376323965465604401015759960888425801009671982425029191452791021493240682068734957575309201745889153590868370695199987031045490958300501192423734270406515984991456199692324851507107663203343362596657260684643072369585313359673543265693862622669098729716088470154362464543730865679380425100595938555205231101072667965515394567810874385520866020783050636068828576343183758463340271889322614802794372139007738491098721931465440889360649077673806308942917388825738742829589408979755157672659878022070236969912162885818301927917064089955930350907438141151384624872692628897832609131087785696076155104702547724386250072938200245252820941415494828653939443637561455025330180894558250533839285764149976635392608175471316354489262112452716996144165120366089085004118113441294325069306591868553477133689548913264854380320675074571676967638462795360232935671346275278274356021500741135845126927311122286309437818449935031292665564398820705330289481729710561468664532035121248092690674124430670662517049091322064465226926899104786811561569893454082686149164529407803859233001766891944957388169614592460700851367834395441777668912775050225202372365172275452222658486962860062088066641663202721963648527506170264156815433974058282737109935719868253683708386346060497324720527409099512815727880075145368488476908488787509256804250282671672112250349207955952523608987177411447243174576704835436272365722607735721578867820813007115412759877924703499985837706062509643372008025450761782274413359952931987097064037716012120770317325967188742617748042752796749840660124922571883929245660430015652337253406253062943508639873016001808665199736645089096184717438388263893934936259131538994749076036448351560845844325472364514050902138426188043018100387117481519955660474206099894208781429007543456831544528929587257822242684473907772356318661394587739170620305545616532560850619730834271858931707598770677897209062363604397823259109095951370076590241502108414471977673473107662671453789585546644339423265761185615487026086260530661573615650767882490015306287281228531708427243166422387856362251318962952827549802952100006192500904866329496777864684544740374417150378840671917245338199136141536360472458684224867775482988683089136507192590614704839992339202547528915410105666543810495138529466300257910861148481378564035362737259064797781125517541214483938519917046714766200228417251880456247271054810552760523290957599617789629352915617405924037600243064543760437148941779524054633457409911087362880906237030060827197493939202119678775816781386373475700710166041343355361114134642297328685183459354689330423803572267820154676140267254440598583026223760293684369322478334592528239944523388286304755535873099378219736213769087922261001944279180430903161448156826916816002263471565586626165960811793803186743186039937596312479773762002415775516014045907235995381004155523294862639421902960194793838839992393608379495519039732576563065468109866236387592898918233609793235112892812226829814817316836249122889076759871320421180194196542237192607310198176752484786139648583888220526334501180287475632922575367331800594517799468469302638798699969319358911472386847036540055270995712296488514281582097304470158968856721388594810735615618410445905051805371605065312782913317195413766868817876278222192349377310786125878170873392635868014119687146675422333617241492557267169453531754023390161351659448178747092314284298341873469414260511755394689836815138246744482624059029928246381700501614590349733823522797707059426843709484937101360231139479352253014244188938344966920901393538595140735853639846769345255818855873783104314908834081436527801390142243041558535050600494577818719383682771978096052395121747108724809975988705448293304706814620168894761932374728413601345046160062529636102077084882414469258048047888278997576257080992755792819862181859303630736538651474381319920705455693718911671476009021222111032543133762125339652515445409125922041094154396549651408317843788724098710405903384435947830638175794983346074185104662668911041129814348782359260412084051666417836185792553005790044002065359705743721275393552470845647973413290986816314275387789803151770325690635166040904524421353276520369383129529427789983562778620059573147197905521665740658756101734438294023904161576679906909812603685769538396988017608106275076962350319288347638066545861539483375223236813059213403897274430809301032329943069398156355986283162794952336151772158735362777902750769291143730272832566807933469803725359724595733787669117506765250230344595896905896129648738325981231779755840725337579975068708711476062020066460851306756784034246733934445710487397831467365636253951384063674161768225553560953473686075399150713308893799153113393732882560201757929582070082655564158008430787400022086843911703353170113870563948584792701776101729652949895005471000593619339190343142902589750317501828563403144690853930544687317579453669062172088491640570283391766346808634195856228761091138966711167207948146563709121757974996653836293155462264027138379898963661812179823561233901887768637131320239147826306755662289520353364124692152078987043002890298196462501256962992897835908426955043174370909426621750773545314122866225473673658525270948925620395364553676449816596703069955408396576248232266281544820600741504960018457593481684515644044944649349204146451543679411256956969427568714732681609823367252266041323943961739862416850881979033231755732729886176917897075788344110488500962680957535516287525557836801351445699096467369163765659196571282023622034894274022034636225006707996545342250400708789034304596991700878672091601112020697872554887877754050810381963089977577639369504950519033345870030340730170499650957230883634322049602310799616528814824726029372052423247458013103169388308597357009661008935311317098905272977986180506282367106488609481031011699962924549685933066417696300269363858646450026362133047442445507916482444829802999056640685789561520520923095228676466657705247900091694477581847912249939697127927020724081680373440516850766823508561230196216050944131046519954844812731197719005060109882629324580329993944378487005845343914335624044160079357382920515353735455941301454081974825354974572262220581109070074103611195056708531201538671091676208257137660965842972943472947367387697895176352642381220285925867325386299196546341678546687312337758136124363113036218306923544790262370875906375307135767825851041160861668075724176210920408889764413456631507657355195245523573474756897647595280345658618093911165021641073339914489949463101481105077703629000911340872240864663055405168622457476890604402005451713362222180813608971288036840554331878455597549535730281643482593339468990723148780218441999984224815354184139071384875235462324298374103943772459870677464426533317204704703811110598493911197725161695658932835036298355552368215154584322256372251312577594139913706108370316806150578660801096112241086914749513966963637646337100188712755525989849744328228793047271723014608054497419517767945684109734096561153305770337686853254385192604793036472623987070286313077676174615262420023119355753601448648103726944755762782926662419008283988326280045938931366436100523485129859724532862032756151691464164789358179303342072579964193449656804960102226388305081196126271885561856655472351185250811902546173886330722875217265335786280953859965736995267113932692135658258256016711020359205061962509530505711079955790246736318000502800173112831337826214613907492840692528466908718822218431413184730495627288512112438566950091665972360566515394992032046355504413355752506763405375215667518403864847768491126436140232763837385684891949353769977604722879132282636686054359250486871949398083319545760763961059090952229256817171140254176869836433425796936634240314948672680974518357966675118461896151891941506411144960132042666271825970352768800129119768335402323412313082163063404882027229764429835240985522803361785826598607672781760637998094320567478326366585232328205588900161159124138961488397546436791082608181017820463929948276924805286724841878297006946204145489662301917779261026553554569582823517120131099971000493953331666206797428472373043298690095165530454817160781076061106653595541459295340407214850486769938211823075022255681636455366834856861683685847692638790798219121164065595196108512985262602939054808243696373084996084698859975538746794016180548459101005582855748951922352454348515345908785257781806989589237708578484368936361698647940611479334080963017429391227703107718872929413851010385080985964382470766390154366599953324567821307732945553574992514526580675828338429951938353829681961202482307032282933998362639593547801757582686242166522124955519955307643999415594609847550095674951670812675809604397884751396705575053274758935508830679751155481929645479356835164773256662018150378759164514254176855370199714127942979298309758208019966516578055601156487607102992141135273920123059438652067131360228684314310233297244331896767554288094589699247837480659665173525038673899196940080570600258510844804598691405888640829588810273320283310413637248045211859499420614716536986164600815568594116359088689081479691296434365076387707050714133619314767384323857230338608900507815360484404117731010254101006631233492179728840852059273078597692461647155269761656451444895623544874121888360857320515664170785982573025392231204059823253069560713236928767312670543232561508996987818506837342518805116221344155461666367199605315074880303136837316016750416077054436012975286616321429824143664736366873681813281444814219131163596021519896213838110028233442516964224520460855798345583982839043788006033518980523319676179146019909694957090474563347388135614280001718742041761639297657121253714234270471252740052671044886704310090320879652907887788351457131419689100172022305662911540825504092269590442727920096246024583135317810235632871826497789008131722233293713728540312783337974596478228956816889814440831646824934682682427799113911612855328561738310751599271157917365893640430362621508904391090786817132463122374946977204307639187170606095986025835209602578856855250059495228669973102976364866166458125795666418106044796365872208778331068065193083266279450782362560409214385619913258994792645991332478196653632064608025721421502167156654900307181040526514238377862568779909990799546733572960200752296032260089045098050522497047145622926866660768914311049178179277513997794894295425998836750257258981523558422530095048687894560456243616274349653143535119864265615318007105649429675785446832428761282069290742537968735742035186973122682922035014354172620952095038151709718702138451827223074003210183908054239697716239693885562733234989793588907698184080799271684977911984730780544774970140106855734770838716982284467336797218807633905513391156629534467981778975955518385940481378567853873789308152312258614517201095760808909907355169736082118662252715901060004933219157769994879015785178391566740989778322375777201207252451128355278266441964110454362778458390805652363421496215230897891762465858863727693888314004094749745720870121638184680522713584625981576710447757731037622838809105205859045131251995862065890222330921805540790096902041589469269749285469203700075770441035954383086559643880635567881069033251326661976392690162230054699780418526422050672807616760204233931060121404738639258589766027266894442045316430162774132917032925863425428648279885977526364257877235967923659344892854646809249684730333035672071343927561804527021951014139670145548640315940678711053200670014867219885769231963826114228434220443820984294288964120364472610092537223247349132935122288731515864333665783802000024669564305027172329199689308657430538905814991452590578720650042622858155672867976574557165344698849384010878649026793179898294772972295632270448485884997781171615056853284112625884863116894346618276327652587238096744671803472648666314092468300578707473523257300861128232889353719564835656070848124390470123781435389758309294284391410334442811887155759965935745898781151868763201030813585589630473854599920831510215236790031078622153010561809421521823345719973642909672656618330949476175978900388493318717067865852952473096127219546207759027428463677497088566227273859350186043949019259665323411761270435501232066258212845849520113726930763509339135527212774288219158062001436008827991039779398671182858893279170561247579538656247051924414727949328482595184651835905460444187547844299325186369834838200255156074708119416966410697569098173514455524126211395657614573163418407642009306498773271497013929315329930243905588850312409365237257332986720217117872443545106421662251263823719230044766008839507857032149194060366490714622998041450661209508083155790407207375959208701192798644751818201797092616341895009621173225324020387307268488435481414961952562284476089769650715551695617712758782066266930062711780648630879552490058877484229782631039721292676600211857478887930531302774989304753137272610296026147091782327211267504300818124070895823370505263956196404396129674728753966334226205075437666709365667947320635071582702977831513043379956489782597258734607571120324900068945908456612746813519407184242147457852451722969696123133277844586305846590563129824770051001604201239869726100966023296080991521531371245512954851058494414933547762961366399117514876434441828552789010900551921712224987617888871989462355066969228596343686482352505345541543358700646323854035822096203208053863349954515967973831476790104853939170065904564258811202954085919677307964160843291910180756250712360170729352317182637968541263509083231231662177951579167865071782803751483719983548323216114339015809455620154777947675072560184430783942242305624950848606216252367986802322554362380410531438834129623053656797269612239734730953380777148446364741136324023318059217776042390441138610715669415186066740643747473100320012416721953208761594954705150611942213672954935820919229774759824646499057697919032302802101687915832334436809505425626956423116483785841088093106244760236213180265285243719419559161798657469989757312585862410278608621944770407021777763066706303257289139889476518047898692847589319992259384900778084494599821441570440791968205393484206579434169827388847935434391273152532412332266721125127203064816777781287414546475489390567237064470512486183273036313049530411367259388937569812520779914500803254531163891530472697326799228300596003613510659686263898056301577142919779863628622035560324520727257400881590085073301813272404515984546455618555062017572747915960330771125720725012466874798143082512354959141379482075351677411945818374731579015736117255476122144872877403690621030293504735278451563287477646275002851716304309984469652815652216281627885214799463040780175615129940416930062796077946666264320201311997430486776688384963386861239035812484789898539766884361595650179874497512193990756431072235923260157121535804459951473455658664799017290515830987013562924137653500816800274875405849993545639293709879144531203748153691009315800242057627618123883319262486973319198531349967519918700222235361798815459606270492215971595169042226281619298282233272088941098711902414304949145996522866970498831176461051277938044094479045458909610651666654515913553674508464020525032923070865669024184524022528006275927107336986264267518360909316029077695699218518474962130907961755677185970409772902170957814740265371313006429372769508239174668874211782045875891066279550260619401042323165037681818859490935500536976754686605271699625835141850000569147065508915662918925480115422159097011771879940072371249883794225531077416442494196421272315912394172407254476423293763865556986871540696832125639602370519092246268752492595015674926899789260853729365940012563591889192622788333435497015127063963651942720999304215813786045480310264902804539190721051607118479244073721411774573184517278147272831413945939209465873061085041556435475264746170512682274526133296849768103816745440924625668954431542307106519731166366552024827820441891593549324871040308159614533884879145403099114876015870156121811306817643984358148324724072451798207273068592748776073093626149760657097649825809304380005723841511313346056496632544147057286021527304527580221476787709443749054056521688019600399033909772181951732770923424869698754305740286136189993115838227796388237703208974336306041915384203733816940265314090050470982883322015872928791565713048875904518331805993307466557914692437415948404246929933939688371692230901733497306135629872244528275903602126747233068952494256934263741302742366102868467290766680362974142691537250335567630470993073288881124235485944581527915400963588883825886985617767793435208146771650557451549491762494279728510950546792759264878937852108881505368018961826294510657292039999603962327076186244609028469530338168196604831791784346754287868945130738965949836667917382673194602300050897061903634445647045942059773615798098634938760883025204846324207800361972010064780966811739679768807432452344700786538134094407679286707270798729563407369888994300596560718296645991835825654047446791889632454969416379972714628459311818292345705775573063454564403943369596473973013009223443549139706227704481511109415939475350983694258779577563871182265482262721042231092458843658463497149929577432496482797263184799884650928133497645500661566979551469758496905589478471044150742155071061631681526818425472253665243674482432880813856741984081931376183989196603167695089688920280378376565896495431387834918101433435182490956263016493843514956183102873318169703769067609396681032735039489546652407637556173788634196309519108022385576805877840068468327251001084764754974199906164358039958364734543830339384974151794302545984610604660135476640725931884126666285297981955633376622337980698370531808671455244182707732333018237457442541518049371155080367595257264039643431210062101609681565623634158495332753105930440534865540536854667713768804539769965544060922048996230808696390866436923517493935924767010346739436088651546549047290264834488762375763140726554938156679370779507289688237230242692091087073163798259807429743506761195552208090449333756460512626232656833907971577951846674470615425107745425671899224958603357240646570743845654643838248212770375636877139768473128783218388435265062088190981134062984551501966155727001641139554801374098214472697475176062688789051780038630511356629771183592959206183460183781593084601880149312325519175946791185431487826432214526230168983510375017101202901587364245136760102405256459244607797166489787917053027298140671957337063377674804971727782347764970827600765159949889759320892672527092777863745820645664008938941555219618127403373128647615154659706043737683862838048179087091364982824898159469436110861021187409624344295590014071943559087959298194812015835123356384043731257366213318072848257914673311874891330256414889161794215902058101078967993572220017782365161201019206486211085757238560211064784312915783169661535224182842981503190634100079643077821426074322185334740343289959693720922099584879767400756471170574214664848525153563579633597489338640765000227499529651564184892305031351018671958543762631556946987414607773124027510673710697972034621805847114070354838016835765414576773599735164721172625594189493308992042976243985180511590709672540060846235353679550992392774802716063658702439365355627087162533907189667153052196248957873074519118347564375247943368848499458123341002624520518113026310507182541387763401782281079079553709027356739674446295358410794756339392908663873354052095709707849559258687505373447271055412272308800141220495577278162348315350567054833296358255081812977165012147476121156609076946104010868746281439398089419606060597144646025965981712731382232178695302355765758087458119093615884706097168006427625433262359911169985214125230221187496728654277948569786766954674014256789508938168195899853047177777277638699257809058047360193455890724789991290405144479176569733549055909470752827186246848546770415998884111849797705966863622725057937852265045308418304717190213574458674426142200515705180990409723689062295993800861762065983480767780641650800085256146515684792896637483914360992211458968818416555733655844554342992453698472325492767120969893829976656297614948798376316314251985519250645226329244092871700931249693192344952282922695589954351546976673926895122415844226948027264363783593070036400676969809307976863457590088519593272680606691603662154192467518803701988396942970116923570122766233842947153238504570356022664796691437345246133068993123395359627519778203282744907238353183092389638645227557236355284612247556774561847476613002207593342296319363442946733611271911772125932056818751819502416956697521149410809844746289800607602023288526569625849454349835918105917215134025648242535333088089113284280577343273951800127617166209676646059919599346512105518240975100003747116569422703616140783091248814864478136608629880982490241472575106687441818324352343330150820815617969172200872284557600718382430668319689140281639257751546018806223423904659934339265880151853635365497711258688138080010708201508197982394226664118177070783245854654582635392650677786423397034155912894902648738495666486946206986307363796900613618237654373300936563956454740238486025967498393562216098803907097986170411795536843397482532116716793414907023134236609818588174271129732011835568112164509472212921861059297662241208431839612762023326666873487411557469155548146332088854142565653481504188288226383033939712459424043473591173557964885167686267280181172004413139126534355924386698556461153261610737616386887812095377446132001598083532299591764630523243398115585736108478650282248236751604087997718444388716831462675173006553731394932803847227360025554820447009033961438375317955581530077280812110740608188832540729397045101893619003318471889999604971363985819561606829859788336430500351282197238829205581793559663693933565197290975706064385942311300661697466504564634006658080320277488333593860693783261262363987689464818897621371649967106698867578496374717360035496687909619813184368257032700044889508930478587786230877654093193935444851626674621880871045653633170568016167949072581457033520975254823933608546833516076575465804536047844046120014325327639512122258407205706508636366530742658229327914146877064142347189324942147946080686113819329238724918389302561344997000663040467661560192858349052043248481257769150166152495208209820012562183107704775064393154718517557663480466456611168441860712634436215404165883550068239916202319545622696825034459327859050630628391452578799015299669851889000364148266331378371727205920192535281246580170417646445342197067759126985362078682539835221917412405686673416968237949164724187062519860635299774322612326485350644869342900517549717432154576514342845249256563711766952502594766657978964033701597794851661667235684006563959311133718092388071024293520931559707726352414081499856953126318521555356256938547158414239162480569872532923679062622582376050123229670865461248191654032936770097777828146014456743072874686766727458234754550669308228258349622626188692313019966826358788050941838005512075471974807225544705083589248760707478266550934254215758989805297472285450674502673596308842763844727812999287108365027311409545730413879161139674988769914096189640366306253343352253674868269194824337626170338221085540552910187377769542129168484800972141708204118063534842614787914039494774760241656028026903182562864951164598301286429135752059319121794419205425406646262541870974420728500940894284049786588145342363268369127400012998628813353632149684372760068837062915088832792471276651475700785583655499068823967616292416136268286455631310293191136247106299192513407793388564065488698031396707375735677061003837580745243613870900224670012276520453590597741781080607656965911125347088037723386195131780572899514552610055688635357422769318094554635828587521672359549792978643063613249714327172951476924245879647343187841600936966200013438012895543317886870797130037057678250729345521621010007293814615736314755019832993140416319535661880514423742289038165519692307402855755774222095963726659611641771463009504436347542041838868655114690965352831417593566280638580196835660098325237840513749782599182085118815823947688859517440471868826913854419471702390405807459795531062986401316133557978165706590905497203728922392346917798856923035747477223442172152252649218025100065226627517813561005427969590108530826688780437814153758375516006242206442512466780590354628714573269042852517977444735841928237718420391189261981423784217754675995548547308718732813710945504059671394064268311682985105282889556836471430292260845822684859018483463067923782728174681039757300215899469959202444994162684088118440397662152378794977849388103435397015208155397951571014243164018091585191739094887687086648447777546265433283349399217587230862681797548540247247425299639685405454863001266358505944600939277844837097716875984221903349181035128686912423866646935446082531142927117109382075320690552556749845776926554978400303069168949845258590100231310618993375679501829264648210331010692501127837004871499804177351428145970534954145515176892031324400200768440629819770000322948261017795460917548763247222025912386295349477950273375720334316591952046138641436436873514162678969207490067075352459103606778794923449170178203957666967200801604027160598937567415839029668006070760516397458307283216125102312134120380373826380590321880841846380665886795633227171445671575511097379173393186921225452436671787684544722324759379042694627052441589277080148350881316376852468193267132226698098140542726044677860591307817515928516946751098978943164041270096088388387800299678450109997769360289882881763734580641598947804791204794178540506406554073530795303578122260925731439197026074036628428350340751490270866694022337075932125294892878873873195641404458711127872471175263360619258246499780048438002728397110705834804120063882763577060031614287362875380256030832277786107344333423596275624321859825890405643781313182090490128791387039210984953809417408831721012764582850290623299489019470788484774415414226238681750839691170633940397663558401572160129780988015136188065930471368014423419827858343860625257198063803898194101773502476065520392365564566642375733263049432994322165990962894855594024133792853999015180175373391902717975231126493711377179323768708646481127145734620742150165566513498006215165303152817907949315641652002357268674555515996077459380164161568343578834318794578598037918663529789182829888293388523331191571195208821335775636727735349307134703632812380702271497170900271813014196085519407480601609315048121331386532324512806186264547833239738866568989043791694167381944500008022828181541157648983750669516920290326554853400049721257536851453688418266962754788422515462881216346818354599575806393461753424591578573356369641161619423458441327835727321659035258986905842823731027184539656401835471650381135909915029604030038464744973036999880086174829049925297814231281230561976505336978478461626755984597945695178200580229706024927285056144608562993118778944802778181611423569253104026698026154156617477817853683736355783838601779613172487637704585592075212270012497135607899357417566386899060208909996331590998865630245782024425065848844019646071340143087793554670136965846526605624912604150619621972170885621916345161614797956820577054602599242183291395221923965189858641342025751293191306395528183707651122833279893987538147961079316344751619349073029223660979497424738550605766861812444173820466798896567505139405751726404510077630377357995191222047951364825289086390163583217047184380407663740722506130493828485147769209533927983736386858437498021556067127061229047307702157588769031109968169041442218629636981538561691886113181819459906183573210930229806161947185247504827914872183328366487907328443695798528677193882529118364400357321625022506048841704952989228492234422644748497734863530610647546903792416338220825703890749477571563731090902363306645535831135136016596353379826894352263994096822636248252890397078159317099948569820272377394392334299693503045891524019998381514351852483196856639781533795574411040177162774695996825588521614792638352091157587749969118552004671113170455106920839981922593268301457495348655204886417195587906692679736996064617872527618531293013781159562013657357778558830401358246237689295951822314014427369392771423118562271685283836252289909112115939509761940887377308299973189915273472478989034653993840953275638246241287948098312747600451091403704583262959039417284371166498826101907359197175676766798653708615074004287446280024006904638051332638053666180820742294154429872004547628172607963020072683320355547659597489411279959145771059803332634861409845404365168777370208750872385059860748687489415130110333214403849213906281900949688590974213432359086684601759844385865577164578663869359385512097834926446000523750957909704164053211610498577082674186416859302812860649969078095164426350028082880582893501598239139293890439138899384941110606887322409038803963777825753209660506315560700542821897325632545608245851303804032294646579163949125964178737601753432344365272997827044126893360414211512251450093101667914850057975651671796366074317674182428517176457640844501773014029647199340317536767496251263390653193433701404063014917237940822486856106333248463884356682587892069167174108490391861399660236499085099102490353343952124663348437568436847147046150779669455652395058071841997108903913380420605207739589458068905236590663704911509245133930400609539213668067201782473324821453947186309835730005636738744867102467528533638330165273271052701929451600054648744409825959221066058025925562903074998105426211776897307519089431169820367119709607834538392898110499956393800494975849734571568159771814179572982945571094572702234692165811707859619862179074321767520609772366217491872594583434902732309427382457319177880052149213311978794367258830074894758059693161133937604470094604304696846101232321525295252293191709749946553527648513370139639616767694301471098920736615574530168791703140433816466720510267816322795255948451603878543390910265782243973304664653491506834134744900402101939885187120562391019995864841397086949019246225805345778365751679592436973826730588981069570735635588279827630954932480531995907749584630367371786514955241101331621529303566751958574691170650150450263779801530605800292337529275736644136942740173267083358434747904012288324905982165152951884479959327311841694977342272693011805287365748822190906043629056715246321175331941318728908252497420809269103663072585929475020250332985276536710844092468137959196238791021039126563820806837687273996884672602134447645828350720316798636215541285245539529933209863718759006614367399359891812315521232021716627585460545739001532110695151464594977504367575504672282015023535540977173318293199271499115627780735074847920027601224592729869402508351363092497093964991512999643578006758149064756697905649222439431927221494660361722406371867068210680542961060966528188199331532369038484009184613375672062013521403460792226586126500594813044340231067097730857366005272456327407659953695173169103383893553388503255406860536639168908212527119451688298037754140247392664944787978847015270734606492107112504255618647416734796000319474848404018085867241866505278382598155556476986494099418352698096056545452723865351631725518408877544470281536497141605346120608254339566520084242824867071588203929695371055192701852782558004408957160618246653164865889022484552630129253917151040371974010997866640413020875894593403662448743449332811693949248921476482982890148310689537743570574171927732706529028959302403954848145332876522988494200497057049401044981231918176149018694182096327463253231846601901279021312065799192367582452771731005886978688857915568365017398229758670869053060234845879267672292421060420235578792762806692553248929895772014851684828039219303571979510022005524470840542332619480420696136691196948978244928743021914665036467499523227313092420025516301045757047512894775335933163031117467177053156473570788107592685739860011700853467926217252239441147177128829858977004540015159776457346664449175208281913014584214088412285310601851417908685922160740846506350440692545137404190409473569007441619666032057123748544384879231448403480359554537648895622007774669381226701588115147614262096743976007272752332574353258520534840688999362460448426123031517592177149951271476434626739304848335535714879637649717109776780637708186007158140400039223185794836033583096379614879198463365471010928493208391478009139304003240557616595671876899784569333909378347685837923882554018906581271766082208895513471113605877113491745332548323304418635103809529831453849406271957238790698637366504705593510951424213524874349052076353285065256879546135014251430979909941720587152022039016554019439798546508144874054780597896816163978822307717505461101022126562065554480147295516515640173326226795020966371744254524970119792669688554737343575986975087761946138637419629290441789239972048036262563625253687440422548731287381052757103069439184283055446395931401256977283852444728044184560667673305705404505942529454324054682587085753253171635057516790370423623271591832931811131088671932287463457973879572302990687052531673733971114939897871212920000697010003077870258177521465415956111993136530918386711399391518606639784243596300640683054281714945194903334766740625452388971056472054949899542709127032364143114027661938956579764642511702561973893441575734755980848322903354819608601854309459285476809645214566007043645365085334668973642804070818212700257970113472247197203637615872856615240438522949745886012255418834381232605250834447394749973209463993216677746468832707302125916036035702543446621869336302924931382658986203448212146939916672164435770001688601755949819798730033074674332165713606885993184815590473834706642966476776130588199986251603811985542400208507216956862887088864832805438327079042530089488585608721226786698605731189356997671669052051439477797585344018322004703453708956761967921127913082799990452088531195903027847630033855843965255794323767353246759707587351728193633701226009580436448729526275525648619873913583187602456493070975309700301958671550568572037633147322978193315996224932907184226259292293009708172101394379214313209610037872123858804013282858319139048169900922957797909172384833036922963054705914011522604626968890333352795156920031900475666931578634782800737388697572450409612610585038008757623776101128585945267600341134505612225232079521512728353566877376369152104981804729735966103672739950201543136845371473123755413379089087500205829601299931799693613447690481300791061515232522028106419991593105890238157259296738421847328357657066811022797146762664265605888610780616588736460152810839008448948592943100150498776815944034176170194606037599764978157006136045122936256228436734459642054298337382090116324076346491426606641385311725484438817461981578212193854326108071949699131444091110668713124627037858950222245975864879549379067828193776967624339717632958842977575092949092724836099383917902940409764623681890912692372242428706561039273219612263177166557120346343321723994012348672197736725285974277280501591735593116744336870848689496110054232967869429595571495939238896210150487587352863433262705408415627284006630431544930494735662149731094093000278075663508365670136320892528338701364879579270955688322723070053087534904155909699519457860855419490333419246440890416239143559354381031793266356261550453360491494932210745798220011730900165555067700694201633259475788577462100191101897105828112034261536409914176555583072612133780810775607060195580241486641389509038573065782848850319470330273140469348166903327650829614707060698697738203612209513204350296468107201494388808916048765784219922087107812213514334459533246561014419550455444954410262888128776786739235716319451224376637606902651970662936706062633020512677119518182103597879546829144684926876759426281308737732542905876377663871647627858895622152335766178189069951274836187584136223876141903967747801703088892882992859652885212681778346967670125470666900535971626351602407691061007859336813363799745786457572855585429257820455612931134027117124272132008066237810639917807545418505494016296692353558201944585456071410505128528849187954202009638797043095196992365023530904975654289501019931284369061662283550344146966487891667926340422194127087241653172579023978660014602963408945450933496463696594143296285573330716641685420056376645874765316002375909953524713034980822682743799941747407540247531685495696068201397968013226978436850340583365695531629610053222356811932478904118059732796843695511552118107211337032634061343493537594608401523239388474289566994184323263645534833845294307526872922438853514888786361332929002227377897996624775965184223001068206046256510764687177531004227803969717707693513305257252448372020914160201064457064417298520448302816554973625206871640848174114434902960079163992200230093413541819373482352048698420137949608372216092861452639987933590041779339237753966419654531993064456660706427513192134459600433465215632763620395675986950409758219416253404809695516371250635773950310160068167703600157310198070741083255486125999352281465691743082028783407223001135577163876923700482146111895041164032789988711323598129302478518566466302865835048456028243924535441341274822283829227427460932511709700359786075364187400747353903738115812361113542836094535826363027793842939465068480460729507828204766142331151538253947733044419147077319112801709826227688890556422309583513266944154660442591790799604789461619831858715707251154516951860553275516080147701050899785452294008277277740877553251606492726700042584074618025741596352909083666286537140071049194591450907097059743305757287321551200870642524826856731532803090626406648079285214777109770194867123738982913368941339347195018067551077742826133500114108389245019264036658527351877625279325738941900295333643923996194098968724213577305210977477919310147679191171690682934889550261330631740324405722433217235063281168951609605649217200657512083397945612765455095053174030296457605323644861618625175144929996152603392788810822341116500352407472520242975629193757163839449755156022144273084810907993987078237739510271683908842330423391050420031597126811742542085774229867404388581529239211880644489521678664839561931944136318939704638411927923004099980645989422751612370367500795990601736175190525493119287531336584057212640226965198666929541594115137033060541247249469327707574814253187046504881374173242942549307434889135293517188657282801482933287615087021974722963260416899796409271548840170700274059605923647739347008313308780515939273497865846324678415241165638043774912472971880348510278600719954532927018144613544649400654794676993238173476384670342736222551216325921147855887038426907993774582570215785611961751583505576986931437789362519775864192674413596042175139270793569884752412855074925536758315932201691664674908141976059954142176305880695743546329179220279199210593657372789923843409842839371293681032787884003647899306202520582854417711564593653601840808984220848226789834803559891283320891008754015638082839817843701185306430964691377108697331998549763203948266463032085826073838559864517945194587014745261539133765937836290266513629414890078811102585891611265942865565149565746552762107624119978806893827911836852879944261215744639607805942832142196857626520383262449040156172151910599150153847016314354068209175049016011938626997629329675017134321393723414569761305789773947615023505827100375845930156295546328378621450697515859611762401687793282445339102702696482423561564620246855950233941595326006904164967165685430218913618770619781292337211293533787014449663090975536832595335796189813840378314904464109501271024065879659225052556995867062778283888220248246488104558327941784932810688105390063951126072223451090246323776940664294537237957703516129551580071866361827396344060193988118132147242413473360466800519680790327428923182342415795299679681571340146681422666467403915344297002182330995158764820454375739520918839024464885448409103192789815136775739220091116768949179114660189109746430204876727026530280045921194454909826698473258818250647485647128817771888875699475168578523604561646544973749628435549477099052519928193456220430529263583175997179730679507625387785414263293562167335271160839777012813676573726613564196345380692238222700374623643288236255931647847523235168985814797649126630492400258161615204612877757489696774231062499050947874540862563447234069465681189055455270114799371892539118883292035000176672457947776940002979639098965749933977203133007597714236331027357892772161278263014270262275122521636163692710533280400757348641361927223594941681130176752454077242346854408012445039469187037640246848617954193055504349880190347855932712951527835887047564282649491809590322589096394178585136900573407646216547968626483188165745838680137661764860303187252497933737438823807090491436831056390646720696201021959293375035444906877463667111032857798896145588410418354523630672036997749084258998257334411025107910686496279665436995407365764530633282987250429095437654722006932323553284797684148985206943123922418133151514529687078954338339567854621495412240135993926129606357073792217352977259864771241049785437671422793922581101136003322489555673745564494733258790518051351570848831078194954539891470112206435932828041439385366193676453212035200065856902817319686579920726553033043805134535775411950480875871855370165487644739708579609338511188609950544441770135590494644331021101822039100349445192890991794779049440671333784959328776644604176786873883374013497240699678884493667422289924114315679603461814075194915344947940970862677099392106546306506827905550368474986923806095574696656935415440712460399409426718677380067199894488014048068470313853647820008662934708280087831115358245332744755814862807554255172040692194410802571803831370648119707041854750625580515549590760729424899565670351014814504778554851946181761280744777538651388483348063508291040190965876840951092265686221172176272626236467970438518012558573554783076846362705094276962485147206681265725614504261669314857099528825982386706510543047651254553751966504826758987050896485524018671258572737397763292452646092398862959113012932097524415754097535585900445430219783133926547505649381709159199293517342272240917364681596219184790914240267159892587777110064695458172461256471367040484508277763861726661209317914203720153848653717524217634779651018775677961198052441579779977670117723536722898198213393733336542945628592975899011507059077451004031298403292944505906004514183891786762532442611520093881746007451550480855496984612668710669344618846196642546665369171734368003203900779430195986246609058386809509550930991259062076046671274619962176486437710193029391924017563972048079460146168492765786111944344856617191690026727571292917486626434689009516858445636275248088759512019720065054789363476359050141252842674246018270064596710319901882605876589962679846683816351665977130754955005824871810391936073786798293956115710338761129508620137805986702921095139101983351193934873860296878143161990371684262467550350770903827604548397568426869093824684582333366161042916750982728772476332643748553979875113384642674272404081639768282339478147559861381158061785000260718355556136631353757927076803232563098976524873187420874333927133705947429250219374550529403878024761745602644773689679587217795983353479553361657934112056311554451221973479934480936128566806159856045128011769152627720489633611932178377502303869971932548722479874471722622509923611395192831679617416841811093277503917416271430719147256167425698283936483484458597160855786016373276369497349576046847578287671029065554555734947995059633085803090147197538086048772310106232469368407601675018468402623477258054904500597884182634099311201005405384748034114007404089479308776163797835416465005877296878851993919476014032819692958194700268043590303452275163228620658755830914839246701362728295317656686679798431052719165648448982398145457133409429371270589762412193955987171991994203872324043450688521477702859484763282458919320341115903349722393944150623594655115591510218527832918093825960088427729000482369266425493480763479240195571952383855983724083258530831540453063169716290816234106391756387936663746967600617310092923903054692164284336453300901882759539512535963139396678299180839854697942888703456122216964093326366339564616552035721362678027141434430016798732737374865036712545094422441049812237713206974054019599821063854668878038195807624077558534039441427584176181207314832914291094441023828640539655655530180833404844030108420921898563528425700058736653334175974443429605451199471691923899836965058103789769641727303423663781633030733049241561167868291891333027124579212096645778191270934453677401030995987372337136694718600010914993097704563976028538579597947875235804832644534145379783082074496460345494094627999371558537403212391842973212089158667587095386017599406545013745311773974087816487141913785880039536811238923278036459774594208810250770940778047229973278512319340911456067041125101335998874829653478036301728184749514539850457298213245365978417161468264894420812673818744158847670963418203823169214799574573645610287717407091827206802032842236601652614445191576470305398327351820313862439433755868637310113162409682954686930464570163598128793376079602980668715126247615302064548901460631157416788532990580219110551169253173354681811588439734184607140276701189327881079660483124875964069552704301224908317827629036141403483295293954099907275085233620964212452941480767981605351413151731538090414094053942609119803463694485282327350326556868881670551806206284817031080646768099701899063962777198003460245886731047958737054212184741402625741689577752057455809386043769105099932475822459208839760616766766654877347946493483718101189527640356640401094764517454385091263813722369764856915653297243683600130278138287854222505329890550930188097391011913680370186048663796270197472112651132046769695386364800316216695696908810612267679921350176440964722333007046255533560516184345796502024831809055364857365319541199238665278186495824319511622286988757894132525946094271209090656002536486557399635646913667028410898659420823322284758342358080284683263106175245195225402944013048492131469928658686026491961324023799409359845591489777313271969243315807416857702282980356754269183948436713956048001826814659729653234037905368422122142473389304134661718597851177023257420212363291843554360153070818246768258105985418461553899673240647508270646572099682344745079210924958563991861927758967347364792930616178435003192509672818054982026101065662670561864506770274274248832135545938328205041741831624885452198244811922476230649929162522520581079404030074514461449852133344272294784640653127268933379552539826825321574582684482971226343222432007082314698514240045400207017400595691159584553176710054614229449722649147089004294383854742392549429664566469526664955685921836567775371769820090614344568437102021765919155028181377020600791764684182143641296160840908071605365537010310524517469471909618006004633688744262509654166747480895841733964464015372868761528772568984236479928848882072755534242627047958516222123542195305928855343433938909076188380665880044035232436044469353475680810631536126661378656070371836490337496744056253183203845660492663882379151448950280871140721712759643940620424692984710468097778505917434164040532811568194725875994334148251224748878389497649707027070672961790778713789468885115668327619762314626937299335503673741720675306857032902441909905460439405276202812933210752214617427828017119970089968165966598436824415855101524863516514924844107880479584027545036002749959152851938580022917903018834512741625376957373280595757652176019045793686454365292889183353717446262957381073509364506836577556981897200754260957624184192322071345699341876675442527561345545045557170521240629939678696848802061870725664606766470865459887286960200551103157128700553013202784796326523443520354354129393153566180070270996536460723554661548559947787127295642436485291811364008725256070627093599988655332520417668415528466811231698367920844753385282369155341300549145480427996413862447506820916113967274397736828858786336686022123512963733812225479723213760822578808264133652034526169922902003052337941830709697839554001872795081312275679621897084201375892796933744673314661320476587174139220425017767834290102825307756494658757037833639200346447305426511519039441840763087789467598825745615074142346494604417330532936271293317833897153029011719624429308632915778231494209484776165068287916894776204360764716958479786092413325195954328237751143440280848024783934859975799353367732601726152418788858547591229135175106755072809191120484350257972043649788016650920644023885505604949202678573900728572082516683935671012538368457472411354573105603742945841778980021142718144862005492361648010295721750969005073460280937335830784481210714890649771802293894118708225979607498926552680351792426976043414531924960641617463591429946094876785385406060477560785588956999615107192765973667095961168600755404693282037158819880395242051288378260712525851245390717704048793673213105143863370046511538676400294377311126466446833282493821566238240579804932331363776098487748375435021432575210055805897728086760976223057478248038347931480069332015258507702441467988738147003472401436797025364586126743137249670657009130545806432545824615055086578744269050569758636157909037259694873406913416859047823834505058883913894962866049729446451455245069761408573656478611916471085752818756587044887877343399518850235166046153232392109884306550357734261982765873163539827190427218507110311894635773273987618275872106630321408503769644614082176697301142881462504837609351346960444532161663085102972718710938833292299281258630117765465887725195916282198343847436792621465959257694488483485063669486755559411778027280445239986128716953184391753593430300438884146069272648170173914862732309681425445989363175951384504814088512022964744246954489319860122292587941511840152171891571289865783937761876479624752805703772545099098121364306866806045641256852196689197031154494180037120494614345867230845160648970873118624872916423373654487816217430455684625791753913569195274717155966845531221860661103906958843935444138682407529985763874565680633525383461467996147206071480134218234251816150208114809056305162929772884867616126113665479471459256660129236478263598293258264417815734629470007351442650508989832836056897956314253188254369704958474855935023196649044299011067094714975559866830230454305126931068500329176596740494804230993684346186353494147290426761094299716803465388584393499363207552495742286846927068303021603617089728266524048838451496567126880491705056325509325582527267157703153141580439708775540632826594945292201169111827883111462116505234158033712320341744362462457889908604750746084167767387914383628587093108185827366215071900390580488181179806728066379056143430422899044820069299174848502393953525948376849813715762417187840807305300042325097765793348636050253712045040739460009401454015675604971268838992602415111376930443984759725496509823256389006906339795701289942205084365799320805386184033225739637622762885201298102156028164574408143584068072432382155193659722490402128834209895693401532705463809400891846485685257940550740958839054828755580858421377742292078636408390095876349451433470097806738255248827119167485066970985980034892877545206571804250368461737608663206744456648876403451713683020812884282922191413375624379805297230374154253844943768774666736931284846730192534327889331489807671654376113093808921797618129626067350778195760738153647708661495694478103008106416665668989888219788091419003165861750253785381231417892387766462484122948932092353023974050898418073788968986033102281307628281618064192689884015969638535114256098460578916766696505086845966421484969154902961310711826082118261629631384676781270068605710518171222386028628889090013581882652700271145516229762414465297066629163644411657165981972700344336406644824150922059775167030491934250176640053378529515454026025488150454035021858430616993172869281899770846827408870960316781404881809165090184489674839055217272880455714234358799997446663956667611752948578146960053569418970803236404005141540138211503179579787359694098979041546108186412656469421714508700332852808859498637949477554866126545543561880374206234338070137304031436680767620287426762868009286089240616415609232263709387127433406360769938756658266805346907666305052869468513249569945844488492836523463870299243832338635755869523762594021893833805786375477541987526039213915389585092616504867747273606620695279562447966298610681845855537635346538254600501231304304781425662332346043759309056303205687571634610286434063841995443969923442689305068113557358821039681243777146444917730717108266159134785875051512460389580004309004269596875463539331391698021642688448886085398391054384939429700089987097325925734909471016757822895030347577393604697367292410452516812128079131673250497112896656104224536254020155331347253558244111717174614396404092914565733711916490213363373664372394357864672833363316081595808024689634594256881678707212919025697798610015390957390053015549594396296195501612718501717664113201037069402019697168878091900812969951687356911036111608106136098669617371413361843126064520275708952241216354712732190806582876045183664969195777764393799947409471231605027673862726605723111661678471001403034303682625043852831839349919976248685368484665399454039549484716047052534758210173953626124095191583635382520326551218385759874044512413467750011215854239158385484655092120035237398815462533245314922120635544961713965074830808232819312399198776687974073339397338008209320082555632250961983533941484729764446874984009060639786895193524045703832367784504375934715626813501604048983109287395271473976467299859766432464629098688410214552356044755451983251911100297472806200515982499368259962117961851674722686403519159478482141715308796329412765923293316435578602588148227744414166713007215500732193509212728428172844968345496905865214643622347032155001212366612645141225810021603254673332737757785910206674226298421402282472783977909696633544559455927240007774823298641654158951639838203323660956368447142271776810894325476620369062306545121534105010938681384108010528059558549455075582704083564732196057151554054431226511440983936018631833276686713640619240385789631299482624291471810479551302344209092498381654777635150555706205795621719628308859835742530002736078863831636289064738325194686350250832206098866247468960702181315384387972257810191457384845011116972626341804005331493128966994571138827190349051769658897015005458990116211804989151006217512751881995216775911271005875529350243483706231762800126873453905276517193538295886533709094282663549261663086873570060671846754335785514248476775722924267589298750670694613954447590133341544007169869709543175927602882644612396941630272384773877807034608944807421872898208344185843288768406540491078782552595041320624114926915242079730998490112776671864243898462664122627093920978880305649144120396134878136331572398283351332795264910773617217917875746558103226319118061662570358643886257058563255318405123864872103879050968856397272457580275121775963615534211362734457483176246661270823542512655475790782087234382137915828684764849395804570726813280469385662731757061081760929359490994440518141767409998525716691612604209682199065080768389985954179303466358574829843655085344878305917812657382054568462200026310034487023085229598157052380074759357790500147570267869036510838536480697069514278142085332041071684448746209420242928433916850640868746941238142949139525412059262474007370013541168693636999219401922325127057591292154434354875651450256760458859513378541061354017709948095436828793988538540624971386293371424653973301284686478454409095396840784099428883236478761301433811491749233729629079920722068513736210141545869247637780679216938548202406757984769465614547507876048858382467236217517941219791761152563347951155049616915917275639356546961052764364948493956242463628181864622242937851960994941472666883481772488757898277655876999691022922032732001917671928995818515906867985594503727899575488122497403797565709824101968369468885584092094530401339012896667480601894190370357825733345996824027414046239987430144028926307599777774082751672332308521388689392731644379967181084616123417573735573001135164311439011768294801429987785466402517808596569983616379431777697223114685465183496867504831109127384380742476599572801852415924548264009501708454282141863508471059283230174875897483264116242969462526706529686919738698139412366080688528221847998760224861268978285982298689937247923532953579798692573506471491710143181259828820989558903635108667000783828425768178767211781276523996537203490270884596637632912729782743297414590661944006096232417049996491024187108375215577237032126066793224728815401505230229833152083336840881889331498091118827439510925896451058424802767704981713144438399832109361561906318010477069129306417661729191131921681787817527955868179888757096968563590360922438566305364054356338820624955013356206944744133579018149642474538053767712069687959905843078562173892219720427862000715079014678883008397219575520279598729244027045412899361230281468909534746719543826185870815287112909045526624534233348957390690638691730558470714059077128132637350947783763983543848273587191627281675513639512697354504848017860261499826011265747459140114317391059416818838700371346305482011521104309912619229012562188824921573586565936748949223749768959042445963263220949356761281900431672471266904677183606847520737965311891761417421491735317192781213357997495018514325439775967082643112945984779234836370834502564104980821749423533441232870995931137439503782783981297116700496686395952360516294351897902357881844354051033092308361429843653462142397224615332291935628982813949109270387490386026113025304259062728282635243988865097653828484089586687556108643959901506366792136704489776772361834420120256725079899130572760895662779457762307208440387308632909316713089773486698834288779361752824944886887412792015881463619821541926169823271631543069383240762031828736976349158957974025461133032534309525665486876482577663260833632425404247492804674622035527033019972519998838042907830842194654043212668859287953224030496292358553699913427725830557693129199776751916153971340750564978467858618333171530232696183944504292242403433977148971793649338990809245248510695099529079217626978443538497768968466792576261163324467465995607606182968045786931442167340673396203837859824664009741255547558551451758456592369137468440594115093761987127783488819456210989628094579848974564625409052711099421392125901824101169329204301748384419905465984481201797672866626672425464199511160847623458107840951539103058121764359568862499428388433012425835572832757551560409616322209142653372820902486711059188667803311033428084161598784801244761175978123420634168613540837042154879276692944824567071202480036541916225905261859134242039420081184666269159952871466967631600229893692072676896328075200715756767712617166933004856113193968745352979291239451590296328773347614003896276560619749630542307494063524895175166503233344764856328043398894900591212619719496252919484779242008774746496611769650279299584324470158577492017063114829237345270710935350296476101882973290084877036156396640726470819644332709030294196675225049848245081593790279582319551710160281056476759996336735883743269917575790500631681966989625385625132909341480110670012909202665895664732313640538424310105653456787374954641891650563582929771033571598843438594795390431490073379254792295339315720314674055010158623552474355955951691464414878304222239081754069232293737754264375288427231977134144143974907199938132879330802000920116327061893795275557677581826732447459614642388072283715825768961573896417658173363022435516833647897726971668650217201397770738949698129498116993475672546814586298581900580931669362545716230020406269209608539323289857641976430890560472630779981026365797175927280582517496667153473291328511149876719305086076048716363727852235557048926425136647511311274377142669532476788856150642316325676412135702032999681662842692625176144295209081730699059777151532612733917519469654699870352120335361037954492451686073670182543474564564152664315203375863213468215952436825056299311377398149803768879285394527126242656380491241399337633191841518872459881986612424129700577301235402803353884320762182587577622209556591319236494626910716135024320073332084675392272185144729204231870947559044054444789500354029721601311774266628247194528440178567696998516933970230842333567233284545308373059832656774378780720172432383107071588050811214707080445424158837435983531724974463765048517412084188457346266714868015112475322494900000568148096120656784546884292122854219519226920981896070132644027538703561975360292014445597109622720298513101740934872010262902883957047096497109266873159238081187749726441474771185944498747682818679868420461460272057719025893882615929266937003477842991103930973658667956940721270295469996413590474504265353538404050535714126982120979060319559084274693393501102207874260682482132080417527553158456766109228698894371917156758703511130486701087752757716808678174084106646719182494530204449925390347289977213126956758206209697270747930796589196497240955726450517832501430503299826635561907890780598794582224182318401738175961044830914226396056044557242162214736703882577682728354817573685902398813095286424999782950981274601244491556881945588988714331325160082749037628971067768093030338937830730126510295072749217440519534205293525281303763167843076504528403850244185135452234952911286107157899269952776195901846997873471311988807504305710225689226672308946395051808419549063152746046598187362742737274855770247085514660031019834590758533954961753407880240712563182632318961952906940868945168734020100672574979067155897489810870989226640742060824173627419817599556400439163516063532035913262298113154637812642661757537893947789853021569894362992369309241131461044692242789013769001014557767255007596195499393230751628407576886856540024305987874650337893908862398067161009859915285381483282979764009121620824142799279150138824570356017065191909827272762618565505210903229643217502635223158603250183537331147577901008481219566661005306331018165803076524299556570419694578639367453960476115277878517835209980352435751312350656843350586069400600991776629616856559412883930744517783539410737062538274007931048160982980200353620111020708273577337938086225560075306656191795334536435288390836711712671989955102720946373699433234541582759650791386736734793984242182362109560269636683731616565936722579946786954392805053361623062655130801951688771681742042459648459018201081662326951427917524175464795135728798865839696416231027653328112966027665733661959710230510369180643944677328281493388040359368656399083313303276243054452632631942660759707829937157049109819880807494653112485352691526437901584322726548835740816972071173812495055687302048823570442637848529836434022714878808222163531970498835724360671636455854720155238116561969353497876938460710314624026417216153776878613554185128762701198969524635035129793910425928565283365232000754655972478538382358617139745304148611398434423882141405590244915307263047651102171809758504309175872235368336733432623457718182070568976508614911874141782559608232137061687101870940115260116020855458200646427455592173040100321249184843417009862937455207780629094856137017207088636145551408192111307228631981088735846740862055367812107170351732289121186292098887950655469472875575515166510027156017908276971656093814334984607968649765628340608042523801759980501763183901853860737909065228681509090214836553877779730196588684110988062223107325624783534733673517243525698172104186873264273946558835577964824485316310421657480403680514646881206348094461861105815703927570473203423002205305536375150891512653927555673151856166616969726307281100251876228408590935338811374844499690451526137994343891258664283105186870247322803120987068198744349848554328509253526997037072172148047896924569413355777101750570193247335495777962485324922934969974596074176609165068456182379393342743707800175237825342108748129169601805687556002256837992929632174224873713693012845163626872649625447821886072930650162329290358565735243838844665035059272412567070427431726962278505781619360788443537325337679043724360867797476650535522961472307851777796893165569595262744029404285395997140401988656798227022619334626867154567229796933427005719315962813354129651402384746913726019339519149307330934894361399403413755136017377684754489103908495504323273563334225649927564669418024343194142214478716373670463548389040770351353064219595502397597102832484584248882532077447630953345783417522920154790871561032208784886525362192073713053825653708516826467483806187561931798203121756604210960315673572891227856204611042068085133528396023956831682880364739714954867474598430929903653573871634004265447798595896516365522297152350943162494307472839549560462034768481399732331919581438889001170803475624608526925750734900113920858944080486949384637820547569811343789263178697302553261466643181940447282277580144241630266683990297057728774862127825977456278191191849982419295719291876626676353082852342349096129511172883976541836839163994784910933551277163105770829035642451249847099486404572452273318945728502989521434969723564742912024651815459705299704622727493715495639170642086479336161624052041303833444020058801836549692284873101879157943179971591163094832105477501518857981781482887038845895581108196399423593087926575961741796398862797669786612445778276203839675469037972295718869272892407497883386884400714216928942078790346645271550815802237974315473461318618686459381606897357892770955367716079576066930611618271699069938040944141392174643226287914722665456074125355507578826815074969340618141173985564614666745529607453539112127399746794901053337679238950613937131653449155356900344980495548385301060155044781836850715956458276115288151851127660196076906200019725861437569116484726714647134533090761092931818153847955707497204546685098027818752937749531373187833730697745916791634386714698498573218037239958548608603596278165031537423249073097228953849705448972764445114855677697194447351567449852462792402677767017972728983740824931632868264503990199513367238955606619895527848161035659011901956216747557217934794329568527123265249210385838000365559787290925931695160217637149993319842259519648235481439804492387098455944495766986726747573920716121148337999049679025533718159521748464258531342807095130185341906976258013750544281796444862500667140317410374186345184466758563356560333081080725816643154870559457836594971730617811488140844735753276207403251968686114791683732380303131306897843241893660422427034209333468352027076500176144345442599964901315646610795968815715805378451656801178782762901649803568074227489823918121079164487787208715284153826473936873481571760526315489734407959416070081779380803180086812232668773740348773159650944480157320854323013524111467805895254040051290143943203036111588949582570003872818308538327784006904025225181179210934561506222655505361591551635472035640777800653134463984210387090982093680101042659994496549576022162996614735721492030430847847720331954623386820100938372965729877002628809572332534708472699297616448664027580110666042771714780631572404434805385878694021222192023870463691999699662542749665206549155569889106647593792789636801533874104755339901802851974851594584215185660461476547950626348853225878780485194993732958553657642704845174197414660285578868131307852262194883067541429269647636885081117371518062179959233008943095941061435363155517296646121898559524983384179121368923283464491650717223162191613306963077666476025199263825388203579900396457160854696232000777802798238145311309703818547269093972989958848608216596021362925492858926379328096091694810354766805321182196928005731214371357066575353698910573966770564253491445828924250719176975306408047446592047230688513499192675318634300897846223016452154129633449401715658445087092175444791078232586144005351576470168424456726896147052530910607711369591730419480851215994375179177187190049046943776328815476021147775868178661620689822440886377921477775099565992369904637961380097978127602093275506177171636031391263022583618171365094234062018733986354053019308898437997964124455743979588529429739390290814784387880497454521086827981299561328650143072545697314622673850958412678705404766302129913131107490095812201403832072555122843312569678446438140548674577897556595650328936840602428846952666441188897945581491929407168940419028961230641677787712791204350024018835405498659770806497564101425091939183183148738777598201403140739364463846973083293408208720431366324081163551322381201759221024610359409666952813544353844375741827803560855310056269408689587202609424100396801466041911366589538794090487788638172724854813012696885421473432661634685821832393791082442985729441986631724760656409824084912894947328524639194325240067408384061373891937358032873902752815796899425258765076511358681622932072442521400374225442610431893131610040038865984003006282528514372405240297387288374200098350972683289127691800921629682038507390591669905612819448106431759748698603103404391460132870006809411574531923892668289076905014032131297085730323057580316675655546645127111782859755456615935954180197419783886349632772677583485567202702818122277872827003405389256371022451004882429969768354764442113961328432165109121440649302113421965938455467480912200915937734030874067446413360781106940498564513020309471985908254496667384558497237674874467651044873060712013188300950894248777068906184406884796119414509523688148165602587223044167545594724062926147949138497595480049384567721190319281914334199181529863327688604226595678221399539706822378250823796652640947038955672286751490018176410636098246928422091171028215325377357140540141250820772372637978591920958661835536074571740212015353215557147655011950920820611305836939298557589045540130330651945990659802345987596688553827164582583153874833390578314817014826833865011106151401175844686746487967228309717198071672408284654807961959378840808647861181315651707334857244575592132220843670246718062095072424067516689014850425727153611075293210573361523532640103705398732285385123337941752066534558091912417618727139674649620849678618567450311485693687829239764382734262205840469265131203408209765348996145273090933554141135095892790368071561475239881067401625275881594136251760491887635192096216781699069730853828690355658015578416585920360216594614873183531072590444506749935869122528127463658830855402713759670839456986230876861925600403505264981283261382226686037152774202457617078503874240380945492124367143436951138934816158756118867609074879975998919114087796627310852783058433795181696322817969956393649031991696870871484844426817943622563298057463138975370619984457911724121100348633103342485871731494886283170146650138877614954669600684729810320830662153878967200293834535933229803948571222334331493621674760098544832926779706542561482798787292832480658114825055886834849557505462828134196664644377447128842144960043711126213803181574768241212640061784810583437804614638618703358176970955413425764604635951681691932663832534613066977760509045626858836888365398506284891375968328284260550401212288194465169289872010382825465575559266106065721248963266023941128839004949451912592420855607173813439802491496065108472455989149367595278987226600186456113959903749696012048986895895925511279341865599611685149772337621565029723212230409182413455713133715095627227944353465189597158835354856276120799407865234120586502288030566915516642796979093051229201111342860419881363007293279682469617771658515526957144103395016087990765755531192096562942432421229390148482969814948486705762506428585618493814326117015492663558777756353627336027568029686104723447018333722154571725304937305583705243885302857954455546894010436324575324369896795642804433300952130769235119967974084024448408199196421054949587003460819913911398055773342953191266782803153202806901937184173468365199315363176514996434147300623445384642963820147190757906714866530511915145586589239734615125129108950758596997290980250137238891708682629988203489241229835306567531926343327944906216420199283732630555209568511086324195591166802988298832651585572587434508734084126797528269228032132214911632924442150999226444923926617812208952557562629551496069128416711271910475996303314317821248606033959037829272185647294393168290197481135341477968147384098185000356018782424672941970273955183881944759469625102862918061687929883151846097808554938566341820652954291751404262470303494824087800987692845035367059977093406202900147052377321651981551056647890308294202331063685440290180999392757453206791080357543033214885329673990386696140691099589271112772509032227455220854757747620679430637314208225464644082940370926925487607411295396068315678893424582089051609848280083901481966667525552670133041609092345719930824037493953522818138498887960933069930220093211226413229860847986520286141776792981497235204176524302567527513960992932456433449264016763124093584008726901818742349958068031438227971858941947932320319005874516482186605319069492173875088422130274670477264479937055136901162619950512309588421299609875711791605859499305681487260439154788067105375620774124038037271164086754333367849073884720684802615842731910984192818722674188138223767593880553840182720625570171630315629729160027463604163334811619024380548537296322057971496323353904143078349517027052689745447862233189803422235981190088631617513076265800410924379460614468220045851491981040777510754196098256640621491074912413844871614766411382052316432362882901274443245805825030026005458053446917282765347502960530737211746566763851054698275571813684612952234549515026682955337553044358834860014834067513690655088514877326117873458957928112467962234819622173363239850049669129280940034030023780631513059386665032445025524877775527722670664971737651088232249344514514847951476322531989809605867436537615822420483205597170154700185449037743535233734384317572028445396339478349365213877515631640156722259297272289451009572905926564300621105167139136416963920674864615384155874444012282383534627047471644259097425792229112502146056267398274341818832336683249093171745029012390522821941305716762305090014373101771067876572462732399616297201756360998133781185554376681566927745226943135559276705049723348501263379273964595167958852257026336738381481064137067852205783744224965418651034698962762091845231272564910978945626629088901236480925295322272601847537840142313906590149233919211833710890491114090011578180945010365958970634714447100358223678857743499854570555318985037956115510285497836235243848612648973573011727674124006723875857834694839456144303747469112124973186840381780954839317634648601250729236220179499199965408814021891029283542841971284968094114997721127328236157386754476979343527664834216756557551001856196203754423189130464626728179364090560872859709403858442016975940701904140444963370841359204582309929536763975490240029805738685800274135047031098139410526279199096797934956444715757721108172157247138726886444687283364054976428187489132067351544873741558319603423486727674110545537876755678685753644165163095121001246753610856843915209892913166040756607545275750907606725409464474892046744818091330156579507800066404492984545524143838959444620314139436318172368972388906993455558680705433725501007331882876347938941302857958117493955441514046685630453802228778914206394170508715027858183367463832937980153179820354559023926755524602628796052026820240688325170806525427668267808039132849033101552563064303890807759767607639069057731354515921509384766598962322065743579464535332495342939890869106105988636300882772086639150391384453043361328492167278808596998306991594677041700025195329267099171552821248730023493542065942998200024195689368672793698375562054368625620633165236176171031066969264211309529460222294020191271650944508567784518673726725523463402024460265996722980225433935872293876987673817406957464309337979339172447003883474769304494044188795429513923540628081517156559178545714020521471910218463717890015126680877067265064701891977449207027216125074768097395779183276434747329345307694769575671149864258217315135735288146805898638464829879397724143077917369650612450765395727659309994688698445830494925538704944404405975422008267704720721221460374087355432479561397722545000359241362856777577988629254692945893436007234525533393699152879011687540146840567800015615790108816450774510088568670851726103047218410717664407355633409056380658419790327691834777320138707328951256852539928055981418291347631490766114010193573799030037301002916043325690269629595918559652535798001815875677669421611218722412664148193609622032289545640699908200005219394982656341506494220441577113607042822747318265349476444160016648947746716573401054645985241403199587318244123070759387481475688757126670205790620573203066915488169686733200781571157135142614332206444924463254161095916209880409394161549364249074006678697862910200998630009079859211640747879692634311462110786116501453425566766100724696430479957153403996653006609844168239906940663202541927236321140924604734486460891356739033391476633691705946302175217233092279118592341596444696056327077751849121532540796632195154460010381527329109217135449659316905358480057736713298698474316224273908009168480185747387017229193379046612078909485749462966330367774539543733020479767593252793713472587237263853861715035384436341956635435127585996004521832400940207019747180015073168641926461631212219891078594461935118948608516069115586091700894565870977933091713434798327822084440628365911220065185351157086197257658372029242359111783704773287065523699729151171102348700515154099573426805106654518994440532752112598522117239313706822170417623431932412105160938519410335052679741647596355171006412847002161232614957266980442534566955700433952301599823746966290245210303869936851926660914518728847366484482769964610567823605535241076718065320103633277201962289457567298585858611338549291831480587792048086730649690782171450718847822943022151699382830285139314141456517572554697327435155330123429494740133898480910780097522225018409791721214616076160811783419620454447688744641238290230969905406961801207725261501215672803374362929695824123637730856977324254757437110087557540349902296169939285215612928054672456767604656527297069782959404112347404485294085210283605554703125929829573121638596948837882841256317751224897766569391394591999664427219436501178266266600815235582515037566534383963070922966607908307030134741748999672814519879517410905843736854795006668034039288475494101291667038254769689409501627323891211572732424663420387110563105864836354030053140345298475026863368070406355894515923412644895935972923503087026826503303249606513147447367376306677915713428882740781488161592439759687115913392793599371017801791499528750975647751502933612847436562873304755862743496929763410249584615892667367961573957933816684028019519130411995235395581469915473478608348230021979431412502778518855201871107960348249918414348073617717579674635818576138477999480523022870167997186948871624977115621839954336130954176393575585616410489949527438241961470767974867530748551798983590584392840455818576255077996995170635099734168075875052144739037300738947266111675464164139056675688368302368146632666302561898402401799886880693662175997717757707908303969793334040922194580507279178265406317285810784761840508016239190901867505388391079263804533744908526228937669465438496745796485100394298330932611487687719185817744152606916340571434128840909125139525894900931713999977594512147644715101083413627438988437680076511630361637971920840702942611675057272872434912168980524837990349567735502774367144289820736724975511331712157189613711917497732213863771416243638987903859182356604611996106021330230802221664949446568358766511257728527691479724110042871649204981291935024608585345497360509846044112575145954617241838310081685620206378243526208275083217548103148601809764850510443974313231293396733461948893433226003734601722462502591002811324086568485508485481992581891012140747346154808163582992179601101153801135009201010145394967200132467886472325719356272880028774901410324223803334768222754065638225482346534327515048994783972401862842616750012201998093723526013076773379282465268780942001862723628465583572265386403009327848342717445783561476287642855800593161470340713875071853000242440598345296428665825427818037035925336602500812755259566536089973786041354606148748930319706116662395865806498579236319767207657161269681693413206246105267935384571491491667392964345633348037396495004149307773108245660927834726054286174022729797423561901890680444131826651332896580274152726931118893854728250290912702435183064937807923171165144963498983375906323611985442224656864199008182976161462412384075428558233598040615375124846876396713651210180831751404335580326493566786033659506219426793449172228093570069371849403536741753718379377570418494587509081663559233568881379708762027330298816839693054642145951009990319128212494178771219297255206126540402573064327213930251474803535772231595285268426817927189893190982770659255399308731179372855693468497374277687908913524333100013807290577401188501981846516217628615369607442288326949845008634281617384508424697246764536302370079998698458507056717321992319984734665260231628379513193245651268330613588781283398865047878370314373337587126477442499264240455841704305635155740483331246547737293529019653100328338142833799527235248675462558609513921085981346684664126669747484351528094266414198259386568089193732155291273017458593371363390875252880697393581161656069857253225177220239298286309282543445493051445493179389169508719203660931379823197793944843794203891404964186711837040273181663874616081404426458683622651122593082866708567108623288656304825762678640760390623925425370857474137804765109538835030968007232715166251993898680295047812012293336205798019865065993966485002261326190107409000069404733134336793976845999130076783817004808011519659286286623715164013915838087261559680303151004723308000445267819682878190421227550581678694569669028759585979127737926363067450544392971002123218837204547505940305762015481437056993616073493039924375561461069457896749808276426751719020899508458684285146606745049057657828375578735322678183044521893799543719430121300044573982202800056799931667934468863567615621245661235822855583390545374492650188204712231669243586822090188795553549593905297935864855250477926712354629386985302141459750098097865192176961137480213963231104001193130611218111524377842183904959223947831648685202976180110099283051975926168506044131074272462967441970927693815604825095614579952404482375066501715425847405307282670597757449650392494372397688223052632726258108476414432950646668417461856003088182557870226378312271639600200309282923104793357814102947424850000757715207172887748622310867649933467151607765507808547780682286295546429939995273026526347236275513522903547462324720948916851850901559351532043180530546616288127708617981317033143902287900843377358878896224516654532195263021209084176271341886700897479216936960002592035213557029294978179420162023733058888434182281797405708559641876592155489319039567490609880413903759742006804766522550508659968543217498447693724405604391534723032201320243861854458190351487671311688248175196933037533441017628627051584607968526160477863828062563580017731564419673513971542269102746696308417972387242947345321227948627330117737793198667775713401796733094120966399590502321679491591962195713790438388655761224692686968026115915980451188870054711626972092267329707694126557508660513926789892607079996978273713351088783281631333998013425417429137893688253702129755742292138261968871416173268686618068359406856210174190721233766354410918508489123878985500263332412952982909620662557742204627745265538293487299741921194107363225212529332493724990392439527031707026149557382327670060514876654578302070459378363473895837336263770244949070427485137886392836624374448184406263633066621506630356815691027743801590328199598243501040358828405605253752196638862065919563199406568066457015905152673735106236905323183308451234405630140971804282567437154226880560561216454245930495671634839108189806577650902905680960829928194596155221813833725296756302242968049307203556342432188810813855173181569148553308441793621263423339681895540595885971224564225536394879490179690364321397929862573525927006989045080983387294812041502452555102482465267509113687747720696297744378871766574454803994996596377845561132970344592107312686449223827488062704930265537547288979760011627940114487912846082317856750771683297045644528440646697637084428981144952920703199831850631208365109605742871947954840543871053418294657564550077223366654094890656217711172813857544123473758062528251264440257899563937617608138834411869658909736250363036640608201041051238483519332629263086498750774903626532900175033971461601712550936607071166416279434510512927748082752073909568243154220620079234179118672032521922131779030542435744977664130603742334358619908305849555461231810382474435556616335976384370634628168964624969819649368899865391536006955858409221823797845331841749038688101665004464027863329154153023382275046528969085503010444020150092897450419860098723245605719565873342486994775092934914411814990380874553743580415711790327813849134139736576624138969678596878857641296180711430542206138636010669382550896246122403644200251797189699775157738538492401202028079265969563684529117352868678137518735682639395714735716620816475033524268196125098756426342626608198460360492229624184375747748648122422814704381450495212652943807635014353310997691981345111118505225227961512282600936820118176367772460037480693057249812337448140506720405419170200184666061739815823488163323435508114436609021219046141391111727790136850885433523065491673634725184841788831941785480489991486755566801142889880890176691140481280150527942697196649331636752935337338012642971668180391801579270055659852554566428610996117201970437017183836848665336215094573523877440630861897224757260564614772751261941286010892154984774314994028179647986914302927853283853543319375404826865117975205993387891734018006844666416775131554854431590612823851030939511302917108218546067766889781550560429796636716289727116881704775292508259516112493444552053706770998022727127719478643920774922850251643233134779643588642840518321980431487503187399577246657877405113704777213961741893964223908366993607818367311118688750191350890806999011942735582842104352432854109763827564272984493678835451614806263100015864243968393024125018192031397071927874021550675400827224334015001199556979722949735363757191275862775614638202274918002190783332094161314451768708697594911397751377298526140723902540644951744452346526138801458094687014335912022850592042555896422909989933810511371903572053623827535827912710785103381113287922916582579149260162892476114355709118209157313389252790740402936419397347738520420705139473906271939483823489333393767213044457110087894108723317918448828538326280491864379739482713808157192089105451622167764081783512856370262189587366310250937905871322031623830626267311912552808143111756098314151649387707050159925075002775869101005982949479296156914018326507623499035051087990239778200923919503351085832216444219773398377786432449229742177286823323143452409250966511617316585150073321385198144720249072287543677442859958007599468388565465464980511321792697111523697022994547733119445724036546066966145138994099742414683880098094270684457876066933086460020386467021286366201330913794082119328162613222014423470438358606309824520939341091096369709690034984420004400137301066013327863412208031078166227474354076956635256507341191231201707370592868984491515476800580752763987983319618644993026602664098304924265285219699423039880998809630093458502221113158222360768031954121510027748875347650089980174138488524440967441536852449526547639467235877570385682134293589450929259981456805410070135690840333968464922990775830391628223417627285135055669939379109225198440166987394361410413230033646872330330713542574719772605710352780153238373471079843940428743030879266015710142671670203276477329905847418936117993515456527319723085461181333787591944793703912149809510527142203493350793919156659677653406659515914012792226632877824245826380175182576363352766026215504094667171425778736070083638288078638091430689755017187463190486784290317266357880520757652228586331129959314408718599054538414713076062444879073010800660878964639216546175577645446379274663391711792325169727259077206099509950635849261780767203571229317158280435553328484685523920170766967236447928503639178661975123322604141651449591967195711365899448542026543020178401929695995959908993789831145160683997347693113311032702763299019409506829595248053997487562734244048702978418386540120563156683285895789554600144072338431848668937707106090714889102852838591643985946331908871938341890992380965907239760901525905982099581560158150918441854315456224263248044983170383545211580370727157781516507072303833165472765255834540023049451857957529553355939352459535121206390128725518707644041466127085327404365536944979506359700359666548839749491006614469368304759645315956126531137188931424861174261723223846333932672417994656351161284530458319847578719309422276502942922055927337899912067105424938095372917113689627135505007653257813396980121840168199485809413341662974752697333596382826402392451716413149023105806094058776118824879754948241206521357563319256454495127950664170695306238047120046465804661315087911343516129668388356366927920155198905268822122385108919525785474733561381978658313254109585962954977827704043661211494346037050603533682246735250137541621537128523629469053597626515404385622076319152962736034030548225256663266797953519029946163191382336128885028299254236804763373812898815265995672179403752103584534257254417554021530716018965343788567695206745965827549610263429731897033223953052671959679652841779937354909464949548157938354167291616262965917060629970261266820293497348737365933474995910618549071278155712879786127612309479352672084483687448109868555615657030297530571530671410153509082712206342949855109874738533884281672409845791638324906310651612135723889533144586495266994493757698211736892279814202149629148644678891107752680645094060691854489984297292829928315302777393541816523659311756946184107682780792231946093846471894359712886036368986082149541503505533152471280401171564145312191708352184927591369201631937204953583270931449239130806939558333160670964836457738985735398824320314062503718688260093302586023252991021224081133735434395898047940381535402033026754818646855393062654061160514658582550267588427627482151670175459348655664717399066864092457391220280861038896515358532147822206019680707911123306242676533152719069237588576285027373731086837299959142203331518142843848768791714760368390569733553159671742242006494292601176839833735520501708182557285776259082245999216419306761353791037154658056152737324266523019518868362085941671957960470317563729333178682914576653079217767833222049495064331465057513033971821874981297363030475839048003480023519907783514975935560295490451283192010630935886285319730759459442190311409644921473958405598761277688695161347335434218527755193634552101495430174245854139296619608599255011227709763887041424669037384524150453839037773413258028712855002891350034145962961304566867468966933836191060102751970870415618861822867343237078468668721088311080571625647154578980745441966267806426326671079536888505409935983363714593800761993883555557007950975766071154490734693577559494124610801529258291170107303304955342079099286771041446265522837890287378787087751267497065630287202371370920952968569762416034524198014970999148310543979228489060733034775992569007561463082869497321183860251809183437408666120665574550665724019317809592082752175458567003782280005351930952659500929703159574579133579747389483701873774282785138579684627403323842122795226341007464161275727913909311074784971905717645860508705506149755350594615189146255339754013469886628114702336153821934706008283605432778790064121389756065090443529461226992020659101634500126595449184599539753331537301327686084311109241999393512324727194808891861116952655762795226425723737367780055737915295554734222242131917414602335603658963529066891889601364710149238891024341435865336380011975685797288953495788914086997477923307405249146583858665046583772006518064249309806020092897841183821687103212702960898981304939674678152791116063506430033877844018617317628714299557792505317119478282195775217191025662547307177190325180122548713392624828552340495846268330275085620141837662635777283341328600187672686251202346054742559833288802844398104064613155862877445256612211240124435864303805343048167273149469690979378384527556831376350984326470316577111852195038610740907640447271812159386600217580738208295321567794643317096256141410441082038777064732127571478823815127538618996755964833953626963691550472257313205314255731258298101800694005428708028726524569471388332650811149007314859545930939415396059385104692519397452830023248848490024066322821145324044109574236558819868740354447930627167809140464413051064294383289577735417090035710017023782223355919010111578869599356261903334075272579056383959507782398882367261616657489327265424455739539347813657216661542551964162821574183214759219318270385590851697815397955947460143922189585694988661463025050918350799443628185747681463416894217348303496039566320095992299088360005002634878196990732163579103403095635930717417475590482336770681600071175253080555510459126148756659967289778795520805847196871032399292071576071406501340396912452413595139211171725702885510169673069740752079647050888305571325973147618175086101780445585668858880721942339444271136931458368117168212717604215511711941305107049146583591441387817370617035873485526266993878621973618962687042408610265259452033211318183195553413269691599534520631367494439147138303486228635344695751945141261760619129523304063772851756139297463489273054695352235459351069384691933155302377299468819077555948353603342247298760886141662006265599078503425347670163179213270155606431730943952326872189654898569083642951051107427676593204259253706077826750924673295847886440587880916131107779983688868717377469643654598973628495230245743707499328759647297253171261510755685305494202777870863220501615515856615625755858127785091814869114564996836456824626016577579329778315587341453532299330841063660589556580651459020657308406025798920597147663303170318463991459524184033113350218393215714836696425345270663885268413707861057378200699211599733817618929491442934056831889885901443327915264616671677414906005964065962921154037521963762029708770628122393683161948574916422914619795360044404185305024642555415612100325559719324576523500366581232882497398258219956007346432327025970046666047010051597003159138615819895199782556125750579563291066689161109713057591908002231698049074601033206517476177802246011803754034280523748341592840858534057736653205722359734240998324910856059373020132400454631738663121906846488178114829607879703378746457846790267259647151744032938811013411525536088405365685286512193629359830369940773809377891009972688780203263853955531002999586258557312080896853693564010685836216573511795675275558406690610806964197897530760791670570096632020999695638195747929102407646903319454815487083902782070072455007955089799806126081551079271556954531987385270283117012768195255416319513628551716326107203329283443207209924651073609758511893172203848091897034675924390115262828800188438402061648808421392024147404993291763174189903562540063128295409121101977378501156944720184405518481593757089428359972120303144023772298135097764644750245172926559012629943428954463513459543936267597385561466194736738881356635101170514004389954358793804442460149353992192936531300723464839710596451988710920655960819629657183275460411986203883055607464531737518906998824795267473535930638362514530157595235430474967995472025740358525522949935019652956314680888344060654574903715556670178324347946274968213493302924595525372598437846282267729859885951806248812165692658238649326290517969920300254402167241226758459364062696394169057662696040189112537500146072904409240523844179525082221519406384815501758766332035514219404986863256424782504557293599173492612525681927061915036723415572371913402602889898796341997520925271290727932129890201059590357135896641982642815266573207936905608020848296533277628961252046629177354619774359569767807188938415414349015482242687987777261980944942476916613265170878211045132618484947249027240448486998339312713094269924850416887876652257147436653986647444922937787169627878377643967849322878539296909587620017206209396332036866738905594542679031491228543161115431206866183336200352871195324218266545503809356439604585158575652272521214927617093804395670729499660851206914825131940905474726878296395965304288028448992566989943582883715605703237667080021854708253934370913347043322978214989086978133363215328649423277207099652948091013308321984533274503053097844174324692346737046417199171489355804519208414860648066561453886870046371546889350613794690176842929352584287021966111956005995472058546956470870109964087985148894720175931732803374990645551573190165016888599188430981701315734056726050286183366673216038679729739552354315745898483648172702763915709847029476657468381755159471067168176369712298230663528892547450294677852518309804398477059924232169984314205804414435573997341827880215879789744522644727803771591320435883228245374995754952023402495764085180036889575557449851286600008022957033266227002187410297158405380762312656741300412500919403413896562228761229351514750501268725632802852275200174131625443776281487284767599687004092100468626857248541214198084592912595357830317269129722468912025714547654233076839789992285569158138511281730987938676668507388066918105319291872343646894703446133864692247072656091860548227603914287223799877224742727852957641707401287073395861981554094858815620025743690810748896910436394502005264730582220094562499027359968373849572974120818279974025893154654762563139721004635978623500448444326259416387916258490376229189403629479643016756087289490585452061574311324325274640251229731643252581885515581161282915702033762022294599839490352866166589079719656809578379354996876622878671652209517177549240016543546427131258742172724132114442405287776769034263263790904569881778473701631560809223597304955825068047735952321591866036315420182430184910919006193480699463009023364529145464022258031250806875493337096840089179630460050956343639792052555037957848147054239971247504881493320788710980341645850738452573335170628394151485638605039479939340138710233970934609346705389817296898194395550465003670748692972160364056257433676012273338336077793472871517532873777272772271801075818255183130377641968864827651297927459653392311472147320268451788788045257754666075453264477604518664142945726132556636251159583926230480297140575532285703491570548482197068155127326375133273238809588054620982951381236731208917685881995872707302672633649307566672440358758831939793755438415241560341790558561670272356528234127965298998358104624325390178357463781500368202088502668087575945130925774731483772718372503228538522049970136881563856336104990526830378315956644147536069517699050108049377737138319952820966030041448011026517527595831370661478177339330342285721248854398347219257802136238471141423907705643647974156975879868831784470259837405665676631345425081731839036283475306451412476089647520855212808256153391086541289560408193486512004126203961034025337519604626813422732989217843147951886372649572552768329806630354690332467348808947682357274279602570034924663549064195686498992700266358043188618558664310330249422145676326522163147074900557279343353655754297919848014493894345044653869739884287723364155293943078376502383737487464715679770572716148107676611352219759648767277000354016792837223041562700062390663737176465702204548274321182431484901995418717298676805068062213840012009250690307752621006651553402753284968722930687368613754380198092269827524446160296990319248038341416422831110892864139369198842322830916263126701472512109287807351873951770741702033980560326907181350016226536654885299538897586024369801703336540449432637066863328464901211151673314085592677807109081679849771339763495537918281268688989913951928585787722349198648286684108709317580949383959276346017805083233257559345791245365086770521973228509805268911803526221078415645876817153051872552741422798236894396242892538110267896505746473631546669004387319992197256302875566039858413465686154984548966946440290698242700139445747430283311012305429593153499990495757759845047626897186410441735060070105134434909346185823997428923260321279512352487518300545649474655169199925038995157669019066254635470071623524845464461222859778050180482315355726161143090624618647081664696910439464653379963337184495739464025379626494091973469970226448162380575515661541157992973872790097642973112814502690142375162227680088118485840678960745987349017333788037854226626706391994738865191383352423207807285941960237729540366893488434177526839296098528604875376217944037505110843009517790466256793265621854368524200946496803141140152458028487790539948841429465184888559959520252017589616105583232802077732370620954949876818039781442312183938302633234412651193556070407303628015316155746948234252372341379814811790882892960401990314102554563147537408271499146521483738257014698183114836364751626486369773963868120222709517868075223501166264081323618609291077737954129220680003015887087065610622630817510897286075396646577170711163760606527213843560879105335426037740869284517583612006853314230428098339850218974849236259617456254804687940444939088874309071570688578733798927401200586442256202872749406896444596429897672469981507852091796433571811438562810107038280479643552502210336385157795297823688704870558106871771903918695786993953112821982718297720002105662139785629842771562350133118636796154701000101305248760541419968110828803810598693816724991453272179645587169280236869825392848528108611040408976646330052621085021605330674706553316522362626290007567764744959439462031961860148080345496440489424325891205553445056946975530737290700929639896084488797095842097773601464022589851617792908382247433244443168769256698147497644992415866158021894765690672916258643530286995436622388390963684263404456650591601728986596764364673118060603951902689620260858598154703744812595201519917916007760740779706055408623462442935935037550914158032940235208991007505684498903243039858687226486442198302113047260799110866715121001330668941683413447712323133274712181349979606772054915644678033146467148979398809843063739181216732739810503506160926164323234778318202394189350765044590721525088436657084140349382170438254282459012735577158402922482070738519283162002200342813925126226108811120013163854818338252938029448904435052907605869891677152331129394064030213967944289559284727361228710252955269804666751367645277524656654352422357533397762618993978247604851142911786365771595355891717983982922382616920322535918038303948962457223756998506367674110421466144195361057360416482434215323682231699029998460593698841574441561755185698233898585375435362605432164127821218664894308520742860070231653431788295984553256857994799507847774909726008743730183989792336616740435271445725227147571671501260882868909285983657512185213666947151555334095512248307773163341763950632637699335708517525591961550733713332027821132344104204351685592904624347819711634296946095282012698704135165743795490148142655571368267557997596368909535100638449872432560053667172687570572598944793850791497601148343860900121888085245785385018758645238964860516708393544216363170950120883683001744529511200715363032244964997197458273387517282617611400419381190131853012867518133661026988935803533920327825320152714364485064910993679046811044960320650823015591290247697922728797336158663133652171411309425644241691727687818721665343383403123006517081404086383709478381421928884568447072867332123694524677941352266213832297480413748256595017561827533780808153249275753271961219941813541693540395609929875515141401717258536150790559813881009424532496067412117654154523676978043769238275822353947189477935059312012297859359597728889720693816659955452119088044515622606680310327024960380991908506135866075914572165848146469678830343557900874911780749979626480777476819024051984945084212027597003908126333544988402122046683948400873035823507394553251882386341579733407358482955140758830621922307824667528685740460388329736731511220572174508674776599836134159138397657674175235608497599732076495449245505316166827700450233546178127962528366971212608234113452544021660661352780652709089888421802842431491547609962372694517289331001045251011508710408588294209014299744171975495220095926133103249223572844171464021064888718267887928842760966465067116997624224245902252642347374768522621070674512806450014837749611336373535809151931206634541595211843736576652744012987440079240742525597718516940278347808651854996238920340730579404585766009003971956836674006422874880255264905498093929070760741447350787211101871803647805120931058888629931830655220215445478299436167223759406264500146504330585652809122281678369601109832702265596404514404924664732805013066172679809977492902748893763714421030185194095431924823326277725465470249758079347095890966098327085321681216942533475035022886688135543239378800394776671446927949257686240257498805418454356560649528964625974120616894735712324467052954467068613407361809137911393819350309071785013531727086150194360917717704237351153884180240506875413793137812307539829974035630488030881051556191835666507126313377404949851383383622417804027097463956349078173646737779953908840962856015303160136088540077545714502050234578842225102831680549007186331009937401972455746894386433091080364050795596253871259824968030514086290523036542626668631478551033670953029619912774050081362631844170673524850281271474564554901156101706481227193520822379101190195064459211518462040689071512994073019971200193890662383380881113814259972906903727904831309479323920309180881575667439409489042102787712549789503171008939716396891720166292479987239088249750625103442197957049506550667172337919423983101805382233920339594429739061328513982168264910570504620426725704520990341658652444163145831222264142108654401789716503251932642878932813485892863130450277742552730136750110718013925029579129367467489750496603148117025143364269772810817700625235131177032744815476499178321712885970962541955858966218292067392781211296586829969518212138669547153452444771983929482345989424790363013872278345990589303170589055768148456449587455552651295250809984270239477893624347121319787939171489245400906702851433679448859421480017917481613328094222775658369270769113655410023398410280470471198154320011995587266579811846807402415503896991993250133467646423241392327380763356898433274627520745614035986795320164409945214346423453104777936516738846569640162842027959920126992255477572554834579532416765014562936678935493388251307074083087988320259869989631534904169413764316591906548919526752972623317606979288951956601560641585675086817710074081057066062343704820986887954105245510897291401801062529808124988641470036346313635530645172843910793237159293044716610265637739024162045239179108942606369773799884597611744883595749309392009979314525288959381412075850047661594517156191196830678229423869283781374793388886385765688193452118785390407589506955449194820320710111231143890017193530498377819676585736330405297128023127931520172224755644144470092647101304489103481835050197228120753519049959308720463999094065250325781095602312932873036934371195891120054002419285096949431397021485401668840867236100678052575433237837391677508477182986905011738263780478603693543517288202165690542783916620874704682033703161681001099187598696582090884062744000025818339259274264175366577536256276715217998708271854915303629459004715394598564530924509171292110775811303308180315331320825901897015329151390936171109530141844385639774234658216064083887095003186547900528636711097558046594778725115488810449377243199216030422942336548809610926591135098043310155690920801249180056202695691174814941755353152550573045090374126301442671543984352911182211140058115414481916328906906087483954176144342052118053512042666000073766699456957093875550736582028575331353233917091179068352115404886364839125595861454027576251166460401793995720397539286836690788835232354727340150536200471289200808756884223765284849361386023601794547647126992965443108072018779966360343637871942709412562864204105983757866534878846476732708547469153726796746034816285697721455298564814444523034041667752730118201143815516103988391225420945991201220538672409176759967444595922034015790259124042264241001711418268908213013998576009677088352102059780011697090777740217423674841497633421407354832321083033189387210822042897433462136661293769959182517891491335276947648770920783116487461422442163205834907419182076332488520346516742191640855897064205591960422454897876369696207593380255792922375917112131712966418649391421463294591172486808582515544691245210377090679538226635290284856804803549077073155938342798261849737638136165512617738889927647938450927698135098780327032679286896664466694245723186910239445990672529974394195782801724077042303768544388252553202066034182894261922149857685549183034494858824832830778097979959827527366743540590118947314805657536643957950122876907293469407047514587910290563094425258502677440638876926820043921270758435567211779459510054605812663100203501004948701905889470429747845649178580068080293152162542734313825900419473333087401806527759699100593456749067509825596819223618562585931755017416602464692096517266468551109471378297229768970490331656016751340995222589688943937006413936606268727446341566363674719140397903162425878529535404496959497573841230821164566169541282139484069873441279612323911199418231807578083352199586336926106479092894400578712266654670160725890548402105974794235363631879559026078539498557848625771258898663814933138874376572619327291379312147086505174753087490771830441129298616258133019374990962290089668452443526898078273632222661570976012583532141997473169854309656025008460467281281471510813776942475001860906751352700625752208374626391946145139564715238323666600629240949399334467723526729371117244692491519189108636433420436567631158130671681640860341160242827600089217078690101898296227758643672587879679965915505673323188084387549670128630193116928320264184514528071886319826157633577999813535746188927673323313502627372345469132824143242236191008680493360091779058452958300999246740272162282996104810349745448642019818209113886647701542576914457825391748226158532148378981477253206849184606292483544336761682780769458641374559754962323460924862513878814352119849972469945488094986775884494334871567280946932847273475096095343637528934393898742109636160382209416121286363854258407012541549913013361838623617111660316741311093604046030503138443669457170193902435896047558619777492824622307163911929347592738656166299184263986327800470883420642341100945658829949866272505397966144609989407837860100396581432418305514495178590667490762812444664992017109773847639645326283404010835910552682962042877501099180059446871214319417630099730909608463977683009212467436593345400397295659318375682490958786139918089310630834038990782755483132194774960267595695448962005827298081880871620602290095851737506089817514988133997864472794824014842146210110933132021433032902609849867029268503008524455344080852493024648669993829703534893960760028137297310239742761091281268283412119230320700008025312251100563846813327330039785055454982496466883981732005553900060380232298220960225267642912891648938229239920870850277886076553908191401027165461396958333823993792313680181688111283267428626968547613724040120925226789243717325404711200294867140283489242662648578890241735626106114520360967782639553534080424379806357499311042715654314008280157823984116162139158357991650774435153045114001066351421057741745379511537308166097356168318632765586607894307295882867373127528472306775726246033982675403918922226583011965879875199923666207659336584248715573255559725543388658009255854954189152891173434392390069659005472420551667111049582787558258491422615148063109396952370896727606992906863590946410042753117981253079067336502992600347457865743620167449778088503623292869782625887352347266561916384864881572580513100150033102184445411806331173672371149699070903419215721213025169686157545971291985066525822963121345922638294115624323225151203774996061831415521430693223063604719829644004516736781848485179923974706791984215302948208500236669348659331799246793098498794630490809009500277929152239818092004242461331297978633089641073410319253692518105933803785256288967619890427474655247647269751365871651109444602137827538852880540929942385734807715633552039105890764565897625862598325446376745760470512874635410334038405393756204160047304138351903998663499206842073709920786083567476595279535593476077971582471512204602997942610072743633363632556795491908399381148909834623016561851231936415634976342645911868198531896060936040996032646069838876980845319218871630080135961355097554929133146890905312207536669274334682264170519031024788966628546653308560139560516404596953671100259177859741271965919399333182303448802657459543621016305908125415594895619709321014890565050764868957951976095119047619640924908329794973016889007663365927325668340648921398869773854085116886219312514169912063249074148820149774616641391967846488556191589395337624143023002182435802990411130115037910063017143653758866090695519835205599154620682480709517919822279337827022078353721136763418781290329912225977421255269884591472126324377571468320425324198438439217162789026881570321343079268687534172870581232500886934140868602019210420794594688406959010507887321556771382622743945563858309477366804155123444362294559941299624618301690515997575909241383956800486384829329092087964671516603396035886639445449227560545171600731583036059092527520507440565761196977539924048434669695981049186974040069168117095195515993462966748974833539012783514321247484111658046003258100730378845995917565420508646382727488575759236179078151176733990822100742945583887464716028753778613990812568468750323514554488384829549519295663697328320518611384844088778955448477299783428462713231472508816186368109842309805096206941709715308171077389955619533511885920260072095178500039643213065459162522298915559200273641246197985501294222124967779496285083343608094069608905230268688341274177792329767959399885833462433606784442983026856253846611543668214619510427537015807463996277655663859540664936534107744971306045256742869064271127072149320897360187473400899920955069123199151930486427080744722339726878541168951930202307709539783747815497064529986889432138069520523455243854718523302835107652912591981290472503707209927267885598127193855412440032540050597673594851974412402731894308514455632626596245723170050251857218553823830531232423766236141243304588668434963611737777809571459497107984015395459299383952574046501237551307724149359901138677058892038018203544186775867944805877753867790426380434992870862875123873693209273181236386448195394083049855999803698353719025864500714894294319314107188415985806290084368345637868783411082104711671322999378871739059441474400867118493896502770913171526285089347876005645364932378444462409900861355025647297368841976575998329253101498769176139516409669657542574360941752187572293173249789557600228875240582005358206323721047118149648624391499372607501725812422215603095182942160298347920014636143131661206289610313978714862883388138543991403919331415439118666199918429408071965483759391830786368904699130599973771358725110615351253886629085102965960743355658976543385283109486315686359828213567216969728398022132201323248538676537539208429349860827460273030783222112951151190262009931134916977823557856358884473841190189008811584572015423927477115160911703545822779253797527947599987527194775872460982066253748271190399831133349512719381993394024417840992092876069586086308696510684403030591680046357491804858560359373087853267572045084792652359954404715823933523696605229877336842325804513032986482442027458071143789504666740729550167422359712375157131124007162989871805278790654971443681335914360632228689870033581200962238356744655587059682093371297580226143016869641437951520498797593730623085518762601657338217774708449785772610265681382134015513399392406938728854666601192892918220513446246857286963190186193200644837934778610391861825325648459461447003833844432088196956184146716874915407137743898118676454766223190585141185571807274269370620014084176852098786870864543729443759158053208511715970769340750267507711332028403526022082785549874111528945076472427105850987959435485248951428912172031563555964186821422456572779501765332345748526568735637425168400684321332452601517652846516528232369964368073077280053356215476445157790056479661395466284563950813443919806249780901076944385383855545809654904935880672696849958630688072733175306310703180547938731415802755447342693749894998678867155327219912956205342888077321515124417868151504066189362712627513350252287123904533099762942334226508854488206291862785382246027827360429610433243689051030975058979718377420759175475530588405264945657627538465505804353190903404169101492531174001788628232957304426284366129610681773616378424592398969414546081370281163112109374617431168401128377350057524538521008063636088614034155782850977458090284187984904148428856395350750647964361548557351364060781875328196371850588762452579473247749629857877972288412625527709153803697907992624164544792639525772296462618107336286943151879483118227888517154691985436573461200772390061756237409513729266356184565636283285520096263658287371803054496925762025254925670106281357760530952396652725663474042264122450043105859088016889681309015363372702953456956088003468477807118943795471040104785183285910778246281685581592082915858206917101975202702008197612074819989546842325785722027767274643861009005484840438047518628699577932281685730476147580797110325942157996905232068069963071972530837390673798536042080528453584925932258679220644247259071299566766054095926684078478020612468387972252479373690648862381357992004727489699654031116265540221212056896881586186575987677976388192723234259656124667137266391563529087920293052395972629083034810555527698387161374326571250938383929326686594666935066144971692927217822278147831049673921744180782746199380743704309675998236962209902525901599781999603373704180960015805015897514595210207131127097783641427420749631409688177914210484100464194305550443632488895323429968011881009851804696528543352475040594083053844198572132908245750804553101142091089005516705819648688163973082203710401100756381101462025661507776604455272597769135716688779502842894310654614892752681186870594440289892225213343427261609142993465688472031389985011034034430375782642354748238405864663107523411904290296722604196893154009570617521370749629819010916869932954669062372770175259029948414942845408141835109212202482358402322722788403691014915715725655491882050020181770287651935024362978858745279239620301977930677564515110190299998283969905882720243842981204814405950358493385295629379373684399209452839809123313348538432816896515395725168553783143010211854866020827840884866362595047719190108386600335727552992915626136315699422568184957302063294212358927783169250452432528088272971809319595895587231662164102357555541877436002335741310843900986583264333161567652685642399475929282201319284955022585382734841716169311743523550514990123741203033242468324828592007852313727863683601447784004392913170236729255836525694098764770652577025781181233526376513065955145284087850656390986326583448344680291041235163581405766721368867735332986302467669658936639687138402707479422564126083674772011056610802320128573810444381563255250432025927510880047994996480710865228811451581050745865243357534028971510854790344390500207888054773444132339448133561205204546136885680851710008576591597659063167403618619741937607694614939625370789223112483119671677762881960124310047718185441567539125124128970860504157658241011200726105470808104473902833358490209279159392151144054683037979428321411059745502109544210715396356517817153031405317335329655912205786377571447355333534511565590727772467746919464884483620654537910514428819457843938251827501912222411164511964138474579590009396106735456751766038847355710592970234783266943191064971344418497650409786169218779068036564420680040456926502112482137304768189346666323133359443742071939700481753310858455767318529421746317471839757265205366300395813605681248540856200792178848606985850581942340437446209206732372379297476180599346787911442456193628570947054784697364637970737830446786365237254379558168965265490931613159633679766535494962866980171421502115257265495349670809473278843603799227971043271456785657539873773805079293790964854878750880105917097166563833646957016925208787360521786271149256337879591292162458602302868184175432076384345017493148724848622635713307694748019474742871403934515088272137077486072385932523423010878235955308783034683590242623214325066848908308159788130662098481427883447117713902364087278372013449960342601924733420637268247438047375589797460164776075819519624533029173620309907624248195014246638962361866445452775736639781228606062117250610123824452321019364022979636195651373455431694383765522038874677677740146656555332829076959588960910373055422870775215081990135898388744378266035983142132248585988213805431313941427305625604720517354246556768598398876603446613704115208094315886881264714724239171635642373334765316532313127773266870231268288573663948472043847890232935045944074341570784547083227071975678268297063606584906616461359788590886643322596703966136151336450886377476621355617335325576823761015368430361819335143062668638335389014161277683377067745019457958776136260464266948305024450710091512554147663152736208797850273256829417783325209365851404895976218798374029677584376195636663835165503724267040336214975324186043736395224585710321649299392337589772021564958629882156454392093570148209604217454048453674920772053124136732397662720963458178184619624850236139431787790257725703901388612784442996462944693401827389022346138660872405207914154892825583870864523491901615177071556212594051169273976995082007761250581691816347004556512165689321926751335242337187052585850843962526806326905320250120717399250436961902657967559309346581681757651940000069104836854573458718313294274728677143055653917311606698427141721181123427016480642519837984427417327904965395012188519750143872313071863026041637872451187623002749549161285752833998547888894267573631947196526464037123362119467955242350955639085420904715315871989055443812044414635002286357687611557987137274949715645613609162942118339948479043842824248405356742956064720049762478031265934116002181612083745895258944330325671012163900270380120582515573645300500288252719896972954840335329452017167047528790295428814099733288515548466372289527642267041473430084479433700876065562485510916212435998004906208625996005577084692146369628373836749805805637462768738521874118407877758014292512442782836104559036215457293628324623950409682034953599372148446162813443175564494898023475541691611386357430891130106756560020659287004599572337428306363429948856683299903149245379044466419594744074921647267217000326887642687204193679347663618678517033346088288368928320208826052152611820945686796382679045804642883214150776473896085956773818266548219133440118251217195702917025315193821894170605198439419729755535015824846186212799182582436752352035900814205553732170160080509186365385754499478280608503979154377418040108281120617267065189545617661451575055460557156343230444155513166277443764237583707193110078083938209107347076475750354875492947689808644212359876968334693533046899352115604922227973591966287711754543385567566324822604699546705488424847289228727641912007122242560956623548045421937379090006395311567640459398020305422689471972874577919772744237044549027836501011988452999683735295984998731318383345683206257973372118622117140734163819672065118124179841084217110699544093931315884226063333708103517399030603504973095648203880783978358101087479760771927887420732257399009414787837212633591009155220890021871340760460689141829794958880152848018854833973342889905448505597962709098896411405213603580840446388532939076031994780832379862152928553697149492613147940456604557068773550752302367901264552453865541890266280068067718417924744416271369929148784198531110009967562360520270600600231323701412364295364991090866779305639608753066480237957687205008086792401659684069429641799549376340670424314112551649322341474380683360879646740117970366290761575756549440323810815096899206507243549623833159614935101533316095137796153478539095097747661883263580917100715064301864287728223510775551079070925304683389262306919497805541039299399578418213149609716461329421251970295778325075592582456257048310551859630511581714402248020154282140322213105353679487886444890242902599346721092422274263396231107741100321300473024212916176354785132080375491571265338121489512142938932766754833020531080390059490955800528096629644337663843200841514367869219369346938536858773671930253461465373733130793443864211280340306037901165054477958781145354644709694491668652424047417841380297310999760950261768990901781336509658884566333046442822150651556481371792140789544782109622930404275947928149239905079972169813174014422002260466862025326007640383728497220715455866438312724933254230718958115203953170712777253854086434047966600926243200413247434446085544102270039249011627903236706385478344810909832463706800076214819502952172780385349159370428232309174761968371929996652625019223171319021306269765514533505847899080112784011353602906596732869283396736224175512660921465683591513810402647270091656249428531192638930286654788832880140797013524907420624469423365986695280108190337554018171485713084684487118381633871240822394594571169411369761068283915023689155121554471530561570158763925827757573021231208020030475013220255859447820741374570536155849125875857369593924096300450770392946778964721056813627958946253353920973895297064616002946936845367701589567736942671785122901856995468932309150963115994349709725029375255123025250601299685944274185857617845101978865612730397817322578116947423882357509264482543213943763628833535311145193959367779924008325509442583958119080066487293958244917926405794325594130293745146030309867431877268376261997821061785138384358687784601126467620055670602990778002247074484415896094875577147418463048420687202448438285012546102261287705922307591352087309696785735148545408702669781598227825247433408491130535308020901373459094910748031768168717552742633771114232400890549564782779779904878764189425215205246668135071053347876092261446280370914829783609330394226901950213529106498503763835045825053719252221286338672613056251674428598831081626279248965982920363551431604807968236514705699309410964329649492026663998080648982918071814582515438662920452448363416630281353915735642855991746021696529469046671601199114353467639400582707190420035804780813115591815670328184836776665640832882555724513320056482984209067610691018935731533476644871378479526621453019725543432489000610320736408842806508523653092865265557296061819991949025983351356564309066264450380721431568441408187921046169870773097066779031260317591599704939381077942364133767254314724409460896784261600776752539484194655109327506643618655434786431652520863495503429440884338501805834894209923176360084910067759235866099296132289606060625357829614486603509407540399905317850418317897414622779557163473367535733207053589160392149415119525067607266590992453262036521238227798828655750640688751723060331187544956558189366520000571635316023360972579363222077038302721010900288408472617686922978364231569662567415117616040006469501211251377710441121672615243422703241945570099314259155733131998289885351115851557910155477488910424566245929169698076419512368868403218941760216642372489403903029049170331301820214165133589212232806194197365457626040042580311567555554382200494299325591009776493571555650358463319216198087047297521234019131641517841741707553709897460057478752992285257800360327785842935569330024684285491043000487505408188109145774725217896512991343423155109119051628863504844146132717461365568228781864406368732108018816759929268974711262339627499402262828212194689566038437419352833871689610719979773051001896272337742217528002080017310837064053283512824607665640558309082229956721954960986772250046390245960472978904405126799927935147159426523503939568484822068065049717367812982690684654014407710467062358537202634260405718318042622200580606728001070071615925093817643650819587334183999784312671569843956040141548886741777046182504250487024984382138598096413134024592709158847320839241400755804046784544779327693723618159965998307974760985258815057126318206629244013754741179920150824002920242778806857756972287608105075947923439372005311909628727709021240904151482625072307891761767647274358351736613731146893940636211831863016921460158890897783363177105462117238381781119855725717455225057727383187659599788364304523100962337519320707217312795813289674242364404390089542694407602609586450709801847316039027269966989521193730036493663756770482195933090750937064700441922549033655091073302189046037898502791011166238076724805077608652478955170362530197448304154014566042083072670901921959879511911466508659430387696996597140144129572271748969064495358137741943110966538344048045505608389918469483415859301510193769002324918914884028807301826845500818444072697402932794664796812540954260719672732178943941233008669322331781667873686479787495502741271364830276412987728035203009100833058014699332339260818668083459163741699269881955418215900923332398308483722886300428267287718799640638048729413437357025187307276811048800933079547534475995452101846160807640117592202483212078907489788148794351279748135707333321969613221413699153913419835051380895556608809303854914547137918749007533210793063895418572886073993315007488612997455033264449468989642996528594013689292723967609600740936509879923506420662879672912841881066439594493425060573086216417097063210251234605463151457785387907263509039390159778187912739048654178520811686878109452433923126134562056353642673030775389054024807481708799178897892565660672626800537193486848479273982908006385345780347470126582474129103987774292771343884020191490465789601025119837794129879347985630028152227761411689807172779008320795741350454617461784919614552108165590581458745973160494053271587370123497875348975012841846120446713262529820904066513757282758590836968695293297517261375211475952792591313255709729390312405324160270837760085730523009824419577763444469746633738579710172771496487206074713318135743457984787259876609498844055740886197491001539491979375656336414121464318117245147734104020059647449083877115273974530829510962026289828400585084216897860539664282032715164527734397683179384434181631655656383042070078148333881774468307352369434338483358340135163877893863115273910148256839689059828684177371454932941621683054572531872619988391729339259837758317012745428000215773206838708061616434325337372223385260208221503841862638421125191889889713704318181448139362527429580040618703579860988601902113989759956309951217666039830656312853479470902742704391037635462379569963238998030698419053539840202928304963276684354466008398007204484232966326801975026774467782328712524086076324597342953516561223564812455148415193597852600414570993731012038339855902283614119623316691200217772408119621875072195012642758025109264989193921310731349671818741355576254441246537549659437741695265969620747876928798157820843244261345097905383131656489224375741704517173939827205904546148517228552016723475401123154938268099744331381795349433770026802423582830224596464150503351382719909915561785185491392745982018773012444271906869066773115774229944749845862591239498272513433860889475973421717922061114101485091823618851350680596556174537023658677069239110064826475064169510912786290967114922769308560345069954781169625425209004675574339342824335314211717897498850679598178159627469610250826004430142330779884095959664654036130148900491971248813387844180222348034784047956681499901390397017672708704356863788042916673361546563837338518396405437317086734319558901381441508745175496730143243113525873484943250650077218107154913160180170814671677188443296343420802053172223412026107409761163549974241744065121907015701864491688240291460457541370870125187280550793782544683426707417664581687083352943339708485987383493062109211835187829365523513313494981416903124888838424350544599462580409038458122068916824933575578605172460897630320289757704982568174625771736283948612897727946745428310896485938937017976617218330836685532519494056515767771119406228830952293439413283411301407963295148493821088652272225654597125781319981221606609522039319082819660834027947188274319926880238721913394227592732740993115355515308005354878668493238862339479970825426523128192763519468961024434720725551003137356615607349036145770957484145226326234112221902979067120393463340642821918773954513750255066529925039976468101585619441314737321613949236977902696275246242293513750743229174237020846617309584347835497659033235690139430340561289188975461618263289923029579873335812873278633166237091979475283499334529106218746296424327813350718094073986275216022434996424390460321949363692438168860850803535592427684987509765023432767796774668243722020307615855340858084068271274188618396279227284578971867020855809776961570919638790569680939665926891475868033759146454943405404749125563354061385173395651386446829270711081709739283079964215259038609600977005886004851678652605422125776338998070233914556747035073549722892991997174451435989152111505886728203622230891912614892300543521102651249564009987013693171627197003184250218405381589113799024217641413349788196191995301105985413134214885453747125035907528345572903725392407476956520646697867311610417401759453970485224463213807376617711777632589586482999974963770054770656746274688619666685861537634129291442752473164855259359418975931522532620183251694164194062878445435684652292396072766024321691301839703247159421741399220790592151529015008600718005385391951824332239606105779630640978334880906780503598326819323431609142968236785577979902667028584574778968748278205652963583618644878758502910773070040245161070857995197379451461801462716328904137449793725629682181616807570431070307188682880329876811489001448187295913779627585616169002340283041821660229794444018820591148093450805545603978937595864908316934521242729865153689801031695804481924492137821813669215700860927265169494620761732327900496877374403561512341203253964301346351580389772917807115589645143453769106971809920230887235926170173737919100329412118758574469974382783431725319011197451870785120952836067498103840010083186061364253076442087779879603279551912165323929237202587486399889728531589066471448525389749452531110191879416122850314538333070505362543966426527813360396153684228595156282832576181776669846637662150727631916477314360807658352004313772285128434187795358449523568452172890573185249006219307089638173432477081775331606654506847387684253200832617300483834895634437048689737246737975272316570506231439440528632831497243285361092065419647066157137199629086177087106023414756731326877194370077910255003448885918365795747842491681147707182670996141104278054238440052484369308688528112854507943594622953062825179954472857448503862759607125136107999998613269093191848492520898493795140270671694680627464907937548660350756021533374047139280925474864437270927657099720519170112240990288459617875740575268097884948606599231727765682155690915251339117784929845404952646363899769962506167363566495716253297122148515245564693954557237152777623136505912645243721334164630395464015832540246285459453872997472077837782203850901008840272672572092844317077718214896073623270048202568089561719327045805754865907325005652426152548263872159255207215446529619642936873849350124816866614573554481152871834960397764423950742801410653639649892346669743737665347374477607952916322431739753688493739357057935120246183666182236154298886958942447538150705130561678738505577341951239527212254594030959248635234699161253368819616135066302405328875686844213816901756140620920094766018010611244035198890727821665339566395085739990927159079394240205606633928132508117743272567237683796149166645337757813112090468531761777275622264534180263340296557727028901534356179635137977580694966125581597614491417134861718706301773489575521164559384237840892740036739364085168283087309848328991179225070977523550813870537407037017423519613261117832396806747570174520165866356225641965618932163974441720246947247979778476605638706095221261526285096655136822430299446640870590071202832843899653189752054843790753718064599711455975342312580800398918572349719629840613694528964086161303145650248539412221319683752626824429913129071286097402695098726141437779948009623178571253417699373867054096720731994965002808693113976954894999839161945990374439574270737119022299130730616107799853065586701310892734273459251582691366671193095910397708394624331740527423437161721917755319258425172106728836498655112476848866613549071342518928612034711615409940588704252195789039383900724298771996042276220350124679718573568746635888507537005358120645959350412985088183059771173690919717863109556983704323500355664389680217728784733448948170462729669519139949078320071297926467015607637997816792873704232348490034268934282651257029377208785581629139642967059615773265638610904747158525871193184352010309346710694986507828079319369137100635054197760337829416738038569744297867245520856071030171362186537495576196897928167197750075301561061292957365308935527607078526459395360663016264495928457798801575051656410780166288139514576748534481528050499578497220983722593579120759726959485956503900315140444439084447100595497404526895907360384076298788438946820478811494805511239434453584789422198666050703977860903490384732748994723883746671978079495049475479291729962363216605595769682572650328815724994318331329037321422755853550852121659713334199787688661360961424323927330595557499984394166876823300181559947307181601010627822369352797902591911784570055308078127008589822824729814859584894547514330608330491327116993206672238232909631824453310160665091743432190525378216455593135373804901513462057418747903218710718225034802779934612313134304658749709713391559594475569558279601136601075876036466528410167869353724733561644063277483940321184205836212773356758892416172942691066644093888609792962512820360629753651218803184679894355095493316569549836593384839488694172735982959494564336352842929282925262965254008418355608671393387284260915602377236326900096762797495137315993507905331569828005533351305878783302842623672559516965970022927400850225627740946565389537881125299700747368880808521454183527239158593182884705247091806408271795610843668052636735495251907311024373334280952915112938687081934965116606904997960316115107415110537558988921577323886804778251322512418216617914275722972726338769429927070339706324916613973188880586864293089912724741841967023452105956595198090309710994170473021608918427635186090357660327553300648289908054537191854728646364991092177874187150383090628156217748036019379233751839063663409453334012058334752881996119657476785598576432151344743501479378244862300700877968269410081700219052787006066164915557086238420045169448527135609128978966483655111852192497221786353496500930296668653569991865430343407574092880869766154001228974582638339386750109610174047639969215957188303056039151479472539820846589168838633583629581930210127627080018430360258242890129250335207929872602197243857031559027002404836398732964845412848369777789428943835156050158742872909814418103320599507499238377508360404976537675826189592698923902576053360562724834885219574360788240726379385764664625927589669732270759290282232902523378361094819917713140867558749920824158887500717842334882937093772655259380953938955972853721095623528869669559315944212388587719067764452160392991443955871680066754970082274180100891618090352456609911068547317914217450347784037108579814845450336003464241226650888849280269560104000159553135936129196330831772094812561675215319892816835154261368845419886787505172005163299457758405279357707561866972229534137350278131387303048231081019994043522623680504569541670851389286528781842895766866812643143874504429623045368407701172953075567967966408804628068578131663014849443062159698887341481080339339345315456546355915684400224407727743365916772999397120234082820103204588449803491185758704317731296574407883214063565635603398766323320923258522576266501510091982287078780411525175951349518579105585939514185123428074517069006200308104992425622620925930066383850245348991495509301526649534380840194268564778421745236658962428049891668314901411467969295112974036043609915270647031752006050963307676192173255574632323510247665452940211795440518228909592387740337196893000689713337499489788774965123458768550354880759142269558627239181102502853565188936442061902233914136503173325956142194014662179717366505178097279474772662501816444643080350484578697265721066997817223539873626056181730716609593758831922755887607821325817647462803656052840932384236924816582886825824559910494011110601368832083044322719013695836175875042096119198223149310273820942726159035978426367581737447733280116227891592931229790991682771480758229043239138603940299120054049293371668433053865047172166985003372695809373937360492958826137463763767032047413305703471902810940605067982372824092620436033192643834492474247224738423478842191713066635994913035623368359563050259327307100303932248000044414348028586124277141483748036932654847911472226927306020633483631343965648736342599762130681889979020023050998614241650720563161611390828365222341882639634261064090625959843291327191999544739454247646584694814422573427543513608364652608869082312399815686775505742669539952656242631808717326339841641095830629538194185049618435268046675104656662912110031883770076250454825755454446931773447580129235033778265839866473905055839519244851866589930815864676622310946063271627439163731141776294450602847136286863499334349404292007055668292755389600076608910922967830068638602080011869610226474900404424845937380802141296346322341854106598458482145671563969674266053968646821493137247918180265712781678237014942638719780238879898405651042934811522107019324104465975327742806652727375004783335020703018512885309054109720023427005552788207953943653108452597642556152982764280287566484561397399262942250714436510110423923990972872968140785146044928582812392921379952232039737663566488233569056513441087627517210818221833709567651169583519280707683979993550456359213837341375626581248943194218075262574387015534291066201619959801745924395357191460415045029968035054110831780709246595558495956319071760445059368781986583232797554201196794150189396769741668818588406646932280674738198895668281316317852113544540837436038710318311325859157384906845278950708520508224498205836801505198361039373421826867828518514941172708728640864391142003019237820146721318425959801273544369966715626836802799431589780962439862763910313559601948302927881286592634739542858629830958721726721310740068640799511895649010970677446417344174432899367063257251767504391186358349324436880705221224067566459944632157466226414246732055990842842529947770557391281289351081099398954672428690879640515486693612495642272200320019745845077426530737119302925579502124762648975848116920233895176887317893629497402681102031082119446587956314629785840683029350243099107833246200159498829027413168053772852927539932139344816929448264002245315416945812527649577312845785347353807637040290265437317400260461060516595035864120794359739036610343785698120046004889572723971903560180848903361179359086169485599486561533033550561751343156681742827395021952386305942852706150121315085237928327043540407170283976700722580921353780207482475698418983168708467484261671557200244175111797462121045559433747077115749189880284538835599626533641981507833622303521504106427351014815884756087310413182881030749900757107012769518366485922356995392473796371350080899723995276826392717272752693017395362334744628411706565402508358444108642368042446794398048678355042773963174192244680071848046073084060719095853300476688469610178135793214044012939937520639696193308696399538289654636840465612438715861386090273753784712406359473382830626191720454331795059569201814656338869910873690942840712339307843398174569932688692941175504624271937756804571294540146291060933598641107734606227593507747642228051677300677207134864885056551092048854465766246900247487402461008759132265948860805795419491936524322699277780688083058453364931711380501822153209666315757212758471691741119103426625626560522504593212942853875859557914848797949643434800935225718612062269663851904806714184493933313611477559040704038559351517560221228942844170357239025769382102475036832920724095135988961984201272108385403152377999851000256210999847989864413519410477170081729714986953792947144387956790771963332066730012387096295063879145622956809232244358081148229550658978420399574646395754670983167195551925836879309248479176050781314742938014453542570231872458074871303625190707155864552966991196200423860405434991147121859382130680474470678905878487818075338958526685318847735419746917806417124501102250989709485209349443378575599291639303164899098869693095292521219779324468313344786910962037716639792550786267371678598342342930369820341719264964630849233256581384118856212770652581757059392481448575794922138071908050910275628796439648831640395073744170495458433014803386050735921622341060575109733687339649463325726098937958108671681088299714233465434553010715542910977569523242618501011681523411588931982175384916652750020316130603309744704574999515138021893319447306954336424873181820595770815947056738017254081601901043633546532994785887574583901421568000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
84000! 38439641881738278539670925856133834653380079570247099475851333960073991154380431943049375956755594883678689726385567856757932877638658747168291755669783334131531474982747647690446760023603341781438135097195806252612730951233235640879539556581356293667794072413412711404346976295055337912490713050431460292768549577452013262364393463800003229680163895525966248284916723734657613431484673655547989425144091386652430158225069165659948355213131219102457653575111563317155962239200927985866273942863701863589763901349643723753945362785026048829281157019049777737014367628952410243207090724599301805471402595956733994694025226562270618602460599344165831029058461045601480572363421433537016193547807252132794412016314462227064918961368906330544411624947013641061805046567536473952197664035902631720667348290689179384277279362448540548070243955999301890286564877579567694374708158500816358793574512767170953497632826562185053435262239758609520979641439431640060197755385758624085033511931545577353476036557606733621621303862053030812596201827488798369647882671805619353209535352152390230961143976993797247191475961602098906104302694375145100616354418696904168826244739841526070726002281130356106402748107699121329991995370337882873777923736483546163541705996793767633697066681451020970292809222578966546551647534130543666699025104930570484416379537170472661207600533687231613931819633231065499016875611205526232986264503606165008160420876958985137355012813888385534033445943878203245156325846754431778537648897741289142024428813338314977902704527161057816896420679965847954443453350624503019479931564662699352388801042456808080609388391348229673249902022921299848648949285109891233463533323034998931882825325087327935113882127534649718014834075090412989408715591500955522316474219689959316804798944364642465735686589555322151644353556094532741863870170826471368210334965275773882194289690155960412789157642803372823060276185354749991797130144035162309121307686221793816029405562374529101585785036470214617548708628736882206559093602869088496302038805707529975937258207413615217958043563973590644250162152249902195017551474488035566367100126868558441961651922746813231963748819465428745349210810274714029265847441952897353305219156437938433242177411238144540877015814446467564746070961179422815311765876671835500351850488735870776839388919410373143904539596043782765071280913080256346863378442885531262442911519192853378648641238738081931344794486910090669130248206392054464384617149462812639792954169334999697808243813799225115150891632313786540034011005512070087184056416236108075775772425830447845352510656971816832192951888249783245208282711771153337872877392798894634136513449076328972619041497677238595782725230701649607436341499927942860428196206222763602358525638411389842599714373042644169024171886451329821859508801416260065980483144526742565661843426759826726227455861212361364366040565494397518168279978133975116847525878757205431037385365369801864744330048498932701599262041335406935461885845542615665088539789414530739009123101241562754198168396822694340643056671727277881038092837538618268662658592365210518307128730526391691224415148822724074593976170650441265773935375968985790560836710098602414296739183639364880528858009246868926474011464073851414183154702224031925713371790410977103408179420048240084394389964319076584333139344401437579044795645647529771045938493944491482241012078573714755108873869727295646712571841557774349483627002311892428579730968150978885988741311865893808557129828256120509922576580789996364321635223147867990103233540299697129201087992020350427515142238797447069202277766406603933269880454911950642381228027486624116290720971704482013091161157175867310468482545873027171340344828971972976284760034699504276615643162150684810911836893998080563682510842506443843267251546681121175538464004251153775113284597965247473175678636611848770511863510359447803100782486430261453115576593613433782434934052999298398133050978371211641466969853574979895710966695799352259706039974858970348499578506583567259282904142363292500543028682899502107346003604073015933513699056374330770702297432108746485640621192820154183533761506004141958924776296631770311583865355088626138505075073680131955493052943349500766085503239999321573082583277264988985941416878938447739617973762072907803413589430476425526689576238083390965242583179915316207545538340804537466312489632157723764216300198555331573736645101044151612548988319841234034022510274024433360457018656009222087786521978631358149765066719660382064900098572346988302536114953441796605452197301737333854066563692921995040707163007263237607424755363241899031098339793949675803018133176570285382299295219466089443090849330022879953244590840424199649392068546972832880550255489904426786418456917280243505210379677984839992211806769065495524523326685749930635782781732932970297919095100378112838223842064612832257522888491291606664099917278342338753232207989102426325037923070849280577360983440190502217089103794528416489071557771379002080844537603584624077098189027760915636708311617918344274258513294714993440016840933888434829175545659680230352757852636427918167072429485609008823214031737048900644146590982645813815378535163479781674898077265295919428067076598198138156960836132865338207479135022253953323592224137143148167864758047284298210082676673961639245736317497212515401163391245119778738696040357628855176492674951241471291796359379629789318050379164889904242840296725899302910045124602532329757019203645439767718279675062158678156991672469657726136529531269670081419533795805756053087270009988391508183065090114893950156123437379242273779067687635813140569286375538364345304873354188492166406640760129699962739083692494641053562790753207961343318776769605163306251493461636240440702940271221250606745151647003581123180743376926574735367250521063622121399116499763369963288347921122950936527639924696729366910307095357764814167736091071075106583767294596215774143628386040569069154142465065490499601001407388205467807094188799810271771996330661548336133343390316341580912209709954347339825642189787126277892707135585981795411842021704660273318412625093372383077105997690568111104650988577375781489126781393998810624781603037717800607974270664961785091521607090977953555991326632493431625783282491082059732890377002236897458896745900882900704489298998185076127235806026119799397374623014701395436022529284188751745558377664220655521301649835889215809425280385648004710717807976539851978291059937067453156849874633144355670851667412804501258688127389982287764132312700390845411522312102688960544478646378860084964278810941650471603244700993663071288015456017497090812731844813557372173649280452335369661572722661244768043077047063370078040108860372665498048140415079472051775323916528297874367828590357346791964814272428915827601730373028372994442623209335389922981959666260038035336365697770065556537886631447851713135021213440953684410919246788863852084434776194860999669679201680023841084436042702547599781105742420850328295116462043904568219292835934340653463176278191394130003321815742375264868884884725712804385682234021846306148908455390030240727753316106528424897837280540271767650432286177785643727112008865288623980353775262629055188210811856071343305421996654913792436055095923104752269832158833917097575803528162048761877877735164874920748617164260826439782885468428889115054445546696766707609149409918756807905079936668324145497686867979897186444013382863096987183210550870080237055402548339049775025696965210127801598172183316368233590683469618892583728210440187544254053083819306076381207253548126411671927309844993486082700381959027832681036891240898760863650771607433331935042218160986947828436396148475925933138363145715916891937233653084421693223557376428415662383653498585012349329821170874958303161569223757984557985714819900279991714677662352434856853914016447579425498039651825228008150788308879829874346774442049209405261172617528583803857363648431128677411891370467697487084996035996312884818969034846477032876508156321627576411765251088758479601094282887120716620122967630406641485830951700598405989016876132632853210793956794678111410464560050457375546675633439535519871667676463360059675802065629197261621194976659045992385238888090816237784914994387054432765755123815501321261083627477046297126469258305388228975735652920998997846042597421821772027822254295031555119495514941989620910363428615141738107011714585512413518105598585648608718660146908867809135091169609876160549667406079422406926664131888105862087890155189428888288554665529838580335687201975412342412886756439551594937763675689177720013764430293970586064520261662116533434757588205681317763421662936796757093940850296704196114128877394785351344047046576832369651326200721230093446220954455034116791490052710182257835501022528306195503655885927280452026442339936222435456751856514621436318639102742303663957255618030200088693938777071827454647037895895585772198802638362955075666408687773232528505027498208403226760972246084346966398623892312503345280711505483244858640887000711157284270355146805487078072241669000612218998462438727151067575755521831106755488149860468910045920077519580291317700390324081060976886223035629935499792225027706311536029252247193013471374507959584958353412114508254446562971298764684138575593966618541648836052797302914628611862005706479471605899784197536707888290971775140713987464502750733634204814580023712018355269333220677140651340205468578249810696957512596055035241346442853072666361911496726250618416621366219593110941092583073411474572072835769445013082927179052297537158396648458150609686709418296171759608510834080560921961235322321218691307942467117370776937218105071467604724111314946927692048788978129638272968361618130372861592694171235840075419501990138162872469331294677525011510507414901146327918658521486416625921896208344740356569217134273742928246464951062461027604936268954330477873373134977701199094596982136456851702368845061956811679367995998123119250354878423654340033053015642793240154168366702779561769707219123138333869503698721205416291328318479147975273104305755972649680718363523340182982532038484889685804613323063982851082999301427745525739954746837414358492869873613135321131614714843207499550192051847583448679100926589270679074073581208256793466171635827875639102602325468726711310865013739206328197628138852450791987338161169375349680093842316874442071452809611860142462151682313493128815874888876857114074579508559029257833909676459209712404786083102274722606706409946750390668655662715101641416122712253980057005529709127748196905555742951054334919163061539038980680316029944305461085575554880354883058977152233737902485553949868529027835872775062464498303951935703433843032584161845276927055772430083667099692782112714809716996311869248180499708355980583259340017303254679097616973163614878158267607276414671680894701156439333615074480845725526698345916399899872125809633013708677528402955491295075693424475291106929248269163028169336144480450784260776259765187391428790950800679152947631696351309712731723377229658784587323188159879329343475944657817077797442770006340782708880993209869392114224376532633620128336315379184728488785015478838716228877747150466019940513052302123032023889696922260459514165583853110294998413297079287148577361785412868338199419286855735825059984820051882673395095975592772357731985463672670300135163744392977060182920834243863215586672552053682411423230882911066611276165934942817226139065315854185109275801273602742744824735735875631294852258635867933945298454749753816185177743809882433152397584994771578794249603746107035115670455219805300157707260410611525953808715868080599902023195193136986469663532575506560842401595331958905827191694185016834074329717597382993678579590321897438856702509281715171311869193799635429170095043034014212142349511298905842626964337990605796670753398550705439351127937804271734689147335347684583231258545402646001202884984744623429276876216449831999589799206558742159974988702945594686937701692207886238024545170977354199874161998888007852764349942080113584018708297279531356834637086611731469081278135776701542404741820984878754974643695152523236622561494066023253034427746200792413694819820983477345560721413895348549877574209061526397059923689647997583984087746154728352208709185376565446097610549590068072089450188712528559365767441150146312769912036288534270562969831903659196116587572265439344503312785548249451801226696298336360042745866403487424219271510827438008044644249489515602765597822127792531313920789298269302814701961614338482762910158989569505620551156711239211002287282274972277885867633604686564184909303990235105071337908816540723902894230993180499435594138970697067903429657184623234926111789536002853578982953035880796719845720430206333247383780352958152087622614385024654777278523530016153594749807824249363400605877492543469662598961071951934872797573569646449988444303599739150332693988379394953185087712516760988749645668560166379860273721254667645803364908054697508930505270900688969366008059288792760820218590817208167893704438483081713428761155070732121821858488225010869960961246168094414665080199087267269966935878593773685675692893387095933293255175301337681882373484272799892442785272057921677512063976351452112472454492504652659564138191500077159882506045620676605863493234923416196183979216266994427633560951546388839220755742366581294571608172369303381761038594419276429380910786651427722391096593386091468497154469769332116281845288311057042458486963762181096489920309026765298353948405753577684057719546932489117462136929835901125523016162480683410057515358872003776955065601903181305138303156023503897866829853672721580871320174533681021384220676556638453756355009518786360270107849824991881867423599240989191251175327013621494273683758686535939360838643322099033631262355546357681033191858650085785418231231797330859695954151212132168035850246295917928539398316570369300108841384355859903773400569531299994182966755909273109363519632878387432027265702347192322528289119476041726758246084254544878392187984745035103656669292885631327950843095093926084139872371609752225000905043249822524403717031088652064824350622765877646889746733020849046034777503081951804874903228396777348033333356499427513047457928383127306394041344998325925012386727547321824641675280134122877344532465274344152730513002333009879581729820331564792569767153140181794561714645002308269823179763833466180148100038643636654942409012890764681643379282357116303420978000176776216291963814591400100050763179378166462659224709477804980519865421358158297943227348909794264884399272193692953168161646456381401948041391640143126684633146463065863618113126931591814082785998576815721488023770440753721407330234808850192563280914027648461960390209053241746242910203498255594443783044069267867369125813667304355927954514674538926647042828268110311666305068453093269320859143568629070589012143681632743205067074222225354690321752999476914124125922964566793482408289636886058475593064567262571963337866104718688626145688275474078701437088104048416160015098506245089832877495768676014161788145867438763438071367907948086457026915923684055062006522033843260962231458352169704249940367998490780827301986427995541990125696772763870268962926416050339359917657159192451605367856599016159555949996479583129103506101075163425419900843455097150523196959047359866852290069376362142198469510563420522107180815453282077318641755849017996332604778906735639006347991990756723280025771574463708390670758148321057916000448892324460462564357582664729857468696780890955946001794447238914829461645493880251270125171749291934022310968050070176935421715789172671706283617248402716472676495931833354001918436110953987702236192824013656119665801320412366866574979744610871187863842586622523360242170711028752838023771554254115072263843818876146725035262460551301941263884219973287253394515436198597086967837647698720070982913187635887497053185978895073166646873539407364760495115537269703974113540255215061594497208867080867958890764921141528323215171281248581473135432908196292584492217024347107294639418357706049901609358482218798853093411628309115850564987639103312545558559095015219218942142643253560941154104126496331804740889987332098165498037701798515884188309798269479908204469045860939882051297538923392919625079476221805475067505854906153111142189253339629918034596341117799869652019799264964852201426869775997678920853557409485810769039984655649030177815263983015531806510320657294351847946527413125770991800711141148668648968488198461632175252674671319439491138813652046157006841719477656616904725051935991055589524752227805515309870833758778157721145111241116115346933744430504732370427558835269922561914912182427042364446636873474786561225626371658073940530593781885267271360076306620175225281521433084253112344059817850562715333788102805313944061433373232603197579714041963362627991001927264411333402815292180156811625390520481955699335937582527193818130878679531648023967196850229736829171281175055092681266334317187336727917343771390554143919501935348835670301151490885253195734363062433307715016877199373622215921616041931870565823218943338216828150728908710763421753460612093857518269759078358511905072612275249806958012145379747763189664258846172447641686784540142665177644131638327173880501113802382825225476671069398970196090595302460222151297903530838495080623210458424551128420212671996022172262078136128164681183153220042085557734333127931762116551781636081549191478318750813981851207579778754800828105110164914074672203420884905744022221114825849212831847641158420378466638451264791559253777955790240263927795847785779529775323126697058912520650082737965607483266337929773811267779728942535363838197488909657414974687411204279695039256990791142494774147802753841622207945646105171680867687300287509568689793288219171404475374131430426269037389498618938153147210528555703332255813735576442896354553674357658214225614733983586873908138425796582701850253406878055622567105931756508425727363949354164320919985416376252239511915917975823683057262475564398328185930662962861507365050141388836905896007600704933090087852891188731677883117892960880965962335908208612150931457066527393634226608283710153731677884355329572082020036583650912909840812802287794083377144277578644734823084877269295590103307587418473659939780286693314824326739605519741871917282271639006849445937423949919928062001064854438938000947574534386114146629296634260838309876387107978809901561540996312639805504808929799156833804152835342731807966176216887270016390215158079086221699528692820522268604500908367008750514521069418761455644356032881883631842552647101640847941895090766585143271793847465817318644644608389497509691636810739893822254566411372718031664240306885834286811987788913957218981219414536051363468334687102405347080433235803265204799432076958114285899714108997601813254821109155290579210528178465208108702859087453286008850107477885498069665512889352538601452298194504937531274181253451480056233479389084413564835900597669146506825144614165117217817048132536727887429654845961561094259729070229153660318737250378976588647032086683344714332242669810457797668698153692417200223899237540030077043117851575563648961258525294802063668835887737412696543010483490493141677361842281806580286215756876976801724519457841370491593777712826219628580376088389512137547068467167206658685269398228658458993026943973380604942295466451996712285289576094557833044340612389459948273588677652964274249753828397019127863087014772982178610743715777094185679819780114643713537142413084803120745558348551556299731805304868262810757588910081408277084274494380131704012587977564570438773034689196761575063878622170426463666131986779547386227157802164884208941598108578763897684589204320622180584681652220854426945978133398391203614523445807701035587344748009362589011109254502252874817421420057565529395840261414242081356882315995122093718570340033578283135186778926944562199993702304451493974845129438388049892530456086492287097729794476963611153080259386157008580753648815650998036855317462045391222261293523636803086846473553553525827969890730536675809132783401737732995562290374588611939100401421462982840507854749490096326773991495254991625390660936709346434297960012971809805566311616666172170537168227592631589805347600944267320751732559807640970055344426270146188308478863401301368204843447260062291231175219739835250941097453974984513883421057591716092816038286626311224216319936913319178860824657583012654576047596159234791016940496846037194663776161124381133441709604793750063332600577687632297203521595101126231401941150274538360411305673390710723597366791504338272864971056179484241148241642960005863317075687926850060534449343175084908731860679125973272930145544508300204829900031792573349025618385747462818315978215601117797660258886010404836024858535858548927956919242581405647162819710532627353755954316952256683588044719935823213423578375424827585401258888535724085591957390196660281031407354517398542129779425218086571931022730261555549082888457716083106064510590915775595666535209729568402609705167452819264740699248763501223248329277506946178478361041278594163865363014502583473500759124425012856969737948993154147071879985298417448825956283428281671723357062174684146476580344947033159654742763154432866296759624248566846160923386641281117651768560889629568321611783670309146857535887323642188796560150174103483048720127265497357621495588826391115353814601962377245002780769164841353271346434470083767074934701046986367247610946089133071300367364046022797068879847668414927045626605141841305043881702818018800491502431860222165354414087974217074023396927353493304021718352329186607194089965451362452353415145991170806968920084895322183907687760098405671207319829168461315822224661996492752992328962247927749904445933055389080082920796429532104894401597085269819581804560767342939899100880559671580835367428688111002127895342831363684471815481602033875450954918297369975785353867957776816798231849032201278364115802651785727695267404034332388712789476197275128038285426055499793317937709650187045251811047247209875853284280315745936330570729804419387965639298851668095831206042238347990545717799882120552341771692341514430950217855133409759058571159166135980301154853830279318611465567653333292948626447490777330557355602807283250821022281377727889927988526604178583581388431606168325223847098845261047110837583463494417401383370475166968980695657081571854870272606804133786253247923529923843317032570396693669924392060287650423712973478266945966085643076400945055472307371866607040431569667907990880017520884366114920993441158947681906572064808919857171718302103261426556539929332805135085179933028292969523525654540491251722043123098141870121530411973876239970438332977762836762197364300693763226437961285460325835892476351672687801436852862043321014161908572077247895045643523108260696437250657284409021599185443726325103227091792956676168550098422830199886631666557954803310599098774777402885942203666894994348623194591863671954229633421691558484966678659011395864520134715120014781921622354138578424757926232834764590877039865626904011323208653407682077250661334644641608461955265190175738336610104718854223300468178927087934668574600201704231801350611220926502942959453332613488446291092326674895349354068406148106510618747772667339196587853652177105375478184177463573165613863729237659815965594830959161540170080048381718742554257381513310447821107818555124968670493419096994898948404910480316478419864694853212749407932669464473959738056643660261551173537981554416002923060219457349172108624871867239753925032476343378086850137546010249053214202167519721945784745182063467347857143344110770692729114391546645806207103844517761831194651828938756157767194914132682973687574399382800411329892028033662416326625126037377117353391079295455725725209803847044313454647219442063223697932639928364301715280227680074159906137752733293889367704029439576125696999240654681317734116328452100701333495691786414758716533993892370601491176593260107387026118517415091552494634463753514703159079235783012343347515639520886477292989013074407269931643059500307841368279697324650292670804195876673111083673774322688349024205572741131343365500573208804651267404903944180614454020529878477576155808142750213813603934917248266387245335542082617475463170112861724018593430778675419335281496551958922670219723509461359197883723813739147479559027248549454336960034664286100213078880949657217213438231654011110648499555477418501367875957572561418761040275748935602917035138775513355249162593652887276430649963175609926319662063456235399768678408305095921707853320690170652175968539917790479337987210037730334001530486049672870986391629685191196527088036885594551572203891971044367205851499178090052587438094888917363839637419218909055181155180967239914106158297131883850341298579197958449115761652425880899737091972195836646525742940527563952513850094717035405574399469420252016249359073847681947268975170884603113603174426751177372299220815134163197178773464566860321127419971153873710991427572787939746223088388261980228458714293644783111458467472575331854499263737805714507852638887143540972945857134545348754073976665604520915866102973404839192928110891650607060593390804541908850134464862300776667749041980492217406936393829066399176080835969436687965553175888896857165890428126385870890976668341867932534135264603200861612947253332194467012359917913872404322182189521293503457416083386754390816580075960238703562731202314116851671456284930791996225887688292716256430882174273235243381049222755180068550923776710486561084681372724616429345943385819443130445080348529803471236797242960976627069480872633770511323040174566098599059709654234389650163942079080543526172299448989960003792166171539579889559879589233779293723349200661729976093385726622345252742464573520181159097151765881727469561359335729487947277292918769241953654759560921348080634786016395574953747477186873801537224721560454875596203500695987186112867513163190748045287158359318760059504666233489978075211545575915751084105516492496269577965627274569149570727904540444530850806188303565631529399475145092298059475811270155369558232388363009250228386151221249239448476508997220963995401660281673713406895338663022401304395986703792005660551335806270073970907765932303242294066484301746508991063078526824092339053310458988322792479511826401666727080888537831844753893377912517307797651040412743776626321601848934611566038725660140615527999893832278984832757782418617393978433859846964122515866539890288860176026533229637212789174622368107122066618783101859303237130274937067048333094727546278674154693657925093157260603671580293567804425882401265898355107590645029373560635878320594359661451048876078744600529210226169287077888002040349185617717716679724153332204412116839341697399522378280189418571082638789116030284555109383678846274057844904480834353676159681711251795168287058249497548140534985128215720148161171075205260198361916961985845420950156848584216310102046928482532700895326101384653457742408513566816307190796382942236617150367325686118851736044575473222071377068547955740083842581143119531781133749574555425723107518292898597920552738617478244449639993580808482233562594260992801228630700772597955574686335745323213751921297255112970069559673005398055885133655195886064145764844841742831435289305184353399461369085803277289066787290445484723287641813026177335580227275847572837787838170251638815432663937703802904015941740933259269173414469001362102253082220940890142093851303428662631895654702267551009948272534287127255668046509812509673695281027097207650822023847647454784610797731214783778274843380145332055304159329757072007662303763637361516453666803192798381640356662859137088356351048309857334106692443638195936301722618264713637487278259191150875992781346603958374821966164461514603393514411862146852149288918893087305074964365532733583576032547012490018780689903818605825355388459716938842635860963135117116430596270858120066353573331860934060110138666137279534917167613438843473772321096471517943868985486242713858246019015717106931533844909608698676834024619116997475295714419854528373565662434524336193535741799849893155723705135504149992822034931387815929275585047122064302482854974473587884566368812821226995645919686748505306410083926564799994161457432557123989710136967730214205822485098973000082368826613480374856597187234609032201829933703105678799820602234735463730183841024524385235905347461977049099832609926472444096631640529138119414184640351947536344550693606216796580608161782311599384139810529968127783438610153467152421843890017397248078430726050691670924277614891315401459819727876775421234343473329864506348196997916646917434775037475214815189388894313945213765360414202692442985383012607820800622005431345527377800076905386909705813282970471265260180534884066204391848119998594902561397613362730896818825364903714879015615309216895766165100746924556565435629090640067565204821514846950333631671176504510719972124140052842497201525653145539746019776865463097786674635362189662580499099486626363749278921244043711825989020726742973255032261736312130652302754592519043133351150571643499002328768210714446723823870464988817459587778988933109596117306193035938960052337749935214609261285809121611641903942835097885631305580268797739608729052467868735837275873544566713930490409581634380503797248050875064722209430374095998745167576842779512829389908272059292108734634362027858972269838941288656499497255508464096168038431456522299743509134614560385283845081676781987985090937947511027758983290297305370424678831562310898703300942598085505918470468201018609918391873713491310473883111607349226894467041437092527171144408673469510132204116459112667575971377758650382664749726348080916413042567271153232683072924874194712809473993750718603500411829500809535172817684344475033163111064889904579922680853060498265357947675084525815732202347778279612853218370269391607812888377003331375551486551893553368489224023188305371113375649852867791090591492083827401072417387026115561974945248013737964198038151113992798006447448155413519322405144236264447601716108173263981849306883879441355317457280901364114395967174803974067958659498309311002559572427173222090641662457993468211129344321988417697939832510092326208173213903627143637909192325049713995948921170880967355367422515580746147955093436775406700946637400202078426404055561869422835099975587002258269559463928168086625375684012166061295696689525862388061553852248655527260837944489714119459272854903836051130910789473971822481056540566900406504892041914786479418887344735225746630960026038310485174424411150154120924026046264451287021263378924745339234811148828336487400416271012811905386934969285492700588416281977221040243819022100554453834448452027417424290099462547686195793690897533302351042396460094197696794168388270435487639829911759327819022305100523617596998599605005432999079442437122004702144219758792341170058633511774035471942345566313659936559996274228801352302765494028639697043602882211099383999504314501133745964471824855733790455155038448031530538358603090936370609134629410151379128568422207129043514628167449032135789508124751920738194217751416817591933284149611330655570657794721155490977296802511835147965045522219717020961033025840865172499257171294783418487773145926773796314131187540649275548972039989594992914482198391465993185199855458144161487517252473295487956059461264524663649739114121467953914966743917021565329349253776511029119872487884193626297395545182566449005335344790711312595608013740121064703608924865241429903730063196243768914095348023890448728659314106023207132901192681597802994519012637829844918409381373907098878310465366698033095091639035430912618443842441851330995762431496175447607346246527609477970128548028503528259203597073084746549408347019820468038428046715717525884471469041186942972508089964560720452684847717681967470050797891989104080314709496666033059035477011652108473636757524769124532559514540216154273742595231116325358001796032995530336273048917354463029163885706286106729603579013078797884793759559581884338897476721645042811663343694671146468922270259370046846957124406059933654540353264788448799453828516705025178187470984862385279943186426912366779359220987703024257617550826710513953357874163399516358027174151698408623215200689046988496251855065781162543707146036587083092442452250991482667515144497189108877261261227277035588439054016683837624862123249568263880520437282540449919770351795522971328867491637335829309062669164069798925493604595778972682416752216377069788380450773589159023970318486740164386900352795579424927001699850470505631041700061467306764848925531828608411566687572624565932750495373167541322681289203765511643163400347184664692919687027792842157582499646781492494555872629779672983095830692510471714827955532130295409385762576158522251333405043155923301687731413697947376214997714087702904762740224766140746531419476511955330720701759412396189806701501483734322178952704137370651324399872696712879758069704751402094247045336247534516475898213039921517238754011354345656998695001433477502706086453090236542287784438896569101056758909061167968034927099869350718756099851124512105648726389499622393936366765759207286308597433252135577702559828717886258251916118056246702991266830071982995838175513164181815277956254733775339485316531403749375406857884110223110483685578185024193620159964330104502267946612504217445612252190404943908764748974550145453177830933964486091981704484230339088286546628881160605887042399620284038901439093275204712445611616532881483593813857204148725233876589515339341078726406664962284786963771649584024736072235315736707387022626000346480162107340141862506436478092211764170573694605182832668307559043528957936690042708213038511562737853766076257827809807685471823850890046441867751705517589681942545321737373529464968232151330611212658339744352479364944746668328279097174586823876913570953252481545541759190457919251116498152814530776611682831091230844633257931776359887376218727781290494415612703697520316625763598164371646712487377270453404824396803223339984878305910482337848272427148496829013478479941400450280980740604352230783843577633906039904074787105024398467381247119653943076039541897347434710581858083476457353681964856776909743841628302334234775325897317450506416885683754646663063007484229160563287306777098038413081043332258699652221050054087531400344655766159338103175803170479094180131212192219190743243224653217687197880175594358658208330596772108805321209160411693655145958375879792257716914306932340273709321169947084448572032128073192271011245846833702839015767384849895986798372044896649231475871541466005646664155948778029834815603055074965698567509244400381535937902468565527170555436493556291837979602184756103378380217904900428778245497310816990101537861680250676468100143170012470606514350404777853979759556593183485263457270675421861467105747915823943354046277318915922537185953872088897570136635070709584023498934982537534055329191469137927384208994618737597132058326479130456894042605447411105931983327476010814053788656913788320674580085350614164253659501923818380669278436688165314691533130802392066625782246257948013624580805222717820176599839786741900558610958393539391453723842801509914276586040051780694066327894262481742426498812897382504510240774694785154372045986656466912208253567282894060935296598308094987149767323481962054138121139404579782140590648169289188498582671643341700200858006403402656235584155030714571754974476565651030622453193893996025606000377496686072610493465568783070514022491313082411552254310114157553519361245384668008149352680149406606522416506910607993910693509800980191173694314131008252308515620131731670061845790784145295431846899430700475583338489426935971424361182515711504919903844432544633990738778047187915950263658136411785245558422417999516313491097976869971031973025204249740502123282126019158319412231758523401185630436945277477923604858917619663725387306279308427070404972037155664705967855600918699516116980248289492036789022114119578527470807232714094779202690451021271649129912121416086093747413058568551742477012075226186188404177157946024088038765734237748305886860763249590089475063548059958405808298616198419032284896739058844177905180181670816107346971579078323586174526041348216107617550649192541261372500338995510886170174646840976160192628101071011259067554377563068279377831007956973868390483204834139568555209400341926654947897614008748686100104576059174303298320896982011292539419808316395899835837350931295787523372002684239869705047104814790929145291694335101666828663360364935367540252867750619369426170678263327984167935812191767294390717445156696281219331988491470133678307656415197650465207440482403616800820264255985478121769898855295814500069696045324313527315337274922974442936055071089997207870930929028406463762196745197443931136173305023171450353900843127858759358424776333293237362808845452464067246600553297252918802827333983940667474511667533908752344567430278429024493500768973522462920077987285906391590296154733463559123616390295733606060375657571441582194074440412247097495834073037753564202206534797090896875294102340901386684595421795310227331885142660105468922744171145048435924553723515219589301208190082802326992435299618711655113160783756496639453146614458513151602781903412967905578641245225439983068614893887608518294860892595975712865311443858709530794712480743596202049434590215993910947640136052659476540627688516479995934084115283763688306860719582757098357555686301472233075765145347965299427698905027648576775430072141235856916904146840845217064867567696824383939149177662543590728190338001905559464575394504667512505999810201573865024550166015074811081195133739255395706485124163852720834925791171102785308272376789987862447787095209382603780723419553438319050053967349981879105612121451290221980970373014226301945666914508136197826440190805290526345291491992235149140339407337722536311523105815263655505976616043561829000864858078277528373894468030995514887785054898826611239386486609119270262831451613171492611142675673802305471124062063788903669794732864946158042349359479065715368098082965050214340508069561416494003229629516332035130649013419503139253072854886187614421228689936421548037251336904995665038216545029380413102696606555537392966940849448402509765669967292915012442439688641174635375708000633341740061213261003250078143149097534918712247354638946445695851635881231088072918639655581938050568327506428254171685487510163954235287828709592317255997417477080721019584334631010643361531175103483659394833604109777241779629537841410576689428531367890047666021855120731754989014728100752882322655269996567077033393401879589430950466768882354100457071148597277083475655239248463356111630482783080544525079540496680132774814466198322247304517967168015510484361557574095395000532856777801154973214713107336254713928046847536973270756546747099570451779105107330232256253052191793249444275132019684599049035359767490972669813790386716570074443782141997118914836501509431997459630289978728091756998958841316880376860875131683304615115587604610914945794797379532924570106556011289261479778552340142427350406534683198590274369921930870420563522376149198934068145810833154252685728389781699062247354175251912297160671096223321249975158841395723452888603831146636280160644343333979263449661875881938311447627351452577054225959347942889362665753328251422111404004982318583091804850349688210836324497307619988411959239421003081774420255307979575762182021719212557205383437147142884684663456964522193386793814522156640799539310217418167391928915621630838954399335972098342478906539525719776780531180588183908834105955853082614834923086156789474117669509982975803033989024168578999856034944325025697055029985588515051529173666682413795091100153818226790609535312850632381388907676280974055789974870729982472029271172949820584287863516037889461061637671498846453967514830857175637072196538136313320741720039751848937551424540679992712320324194613703037917850939082471796729780689015430647045868609650332720165563532705579607929943595710661032771626449704977827373985040955073664436623031072765525831282972829869523707124049584425527016201541959582580467113749141303764686601788072171311436758526497232877331765260082812627628060161903944607487487498278919252041356331684331262536651447191097434265684815084087698242280156612154355813691346713151145295841649644977684860949885809156155337074791813470222326920856321896213323409198096828259160410841282482901293026499332162035098798994763494027963755839609124792188088852490819652048731372287554201953154188583860962563097941138388291250331628172389999958754580096925790137629198089058986155110561525112370242892125931256423102649174270822855928494386724102811497719683858900231635143682597772440552623254083650565277137330944621993459398803927646846511695698800074479104364096834073051501805949933338737996404936593620980024511782699975299427915912180789397520623191043159286306541496404424275373925300775123389057881808925726098840024073000627206967214222247238238047428300276642100287094936672101500822242572857999850762546738492729698077216655394695606654010011745092598994579742083128882640829887440857555377644195265809517014257564818757499860394645880584857145259805671228422580124996159437424499973652295093290324534476797779294221595099560528392033354558440563706222292062622143265264266783198067959613786983893204954667202627056963145098766892574633912473031089456622071444486947490406135555804915240879847702593715633055855308626024160973748183443447472734811321409683631842108209379721841244727308787876753465630742868106082114048181167428571165142367023552165117091271992968704268628678639663890015229288782728470885814067071382049667630896709922014375163689099238792713127502194554866832631573554373097183673734273225853480622829793349689337916740340312092033121855782411450289521481544901276906494190024189929719973866519656144649439961352222655824143999667383095376563443454507439622001442190724407626413220470271714254797081916858684140385286233851410525428097057911198314914086635815298078228868869958492939367826562427610915213218031209471772240486458013767227158843578370671355098580504300883363138191398275313898975776289804117820596843896171972544586727613344944175337348141367098154901878944652837207217591721020994102874132704739854769404909842374393751150062631329531799193733813679266905564514722461978295824683314857904331073898388003829128822000526747586558933468748816193261686589169364581583357594056221549231096887500975318733254877655550078249727171222672137123596662786387454548223597532239046613767511561504469805295248059804331350519207652407010906299938951522721814653851503225145334085950567284436680698818516265656002646064866095500887436698391482671938979246405229582321771927217261751911119848067549714552054988494048175345745938540511882230071019454508456137607305168010645774938267203994630108528295364875184394432789618752958601155520845047435341045618632001233862197521713853077062036643369801653397732111127803779639786889262056381380817534828795236049926302781096819916963568665683372749946831723488591310290713453187363079997066484408001706019940389354069427715930409277861394737235445396283792701099679970479521912325756874349644748983150351957216239337207060153993450383915199462455342247056373736389654244545624140473256654948485303260920584920532612634263833643656659745397116866625113673962235723950984500483505122705153022911428179291294550220463124587172921645770078895550996824272801116172502442412409115851874912664287624633637708706968560443291253290870399631767131369978207998660754891010001692022564712871095672597532630695725345841545695957531728993455289931508874995704297793186224635996308353670006236034833950493008967260925810194999475806791513819169993529090506511873630781971887252466149751070965081440605618594364968473906794299586414406816518056275786408260937495145390732781287207064546265260563372048221958036927947156818546189721076281742783313721709072943954564286569179784404591872662325463405039555453312943439745370887532159454000839240484304562741259255704140983550516177865396596952009750651613276151730012687340381088326129567519268382730326879957604608311558380017312505976122841719605010659264202296097386678772430965375330501237810812566422967406938611090571841296211234295012604839074614962366803611958305136728803762283478723561628465695685137644579426564367150933864785331163277769221084051938886602919325281709940964119631067167216038108027591452844075803229152668550649028661489912431581432760948823168001699287760205033757442504176417594492915233019116519971441201245340407120946252758787418662220408800568568208968942248253264739234573474352308390205704123671868456760947218717298960215470210971010662122456664788289115921441274402731720880673542854233131614826723062053151456924792120414948587700953004056552912956458413711671575678903378353731680970842105115689491676904298166707684943389432655871673951408747657800707320044728161723646948142796477593699435928300909258848836944986270729033867963216310931110797607527207977845702770864260597714697393328232529608586281096617459285070190733247635325585982266718318849117763674749806006242633243183395744068281748575689689015084767584737013033280872334124523313800068269490520985212795777275842009624628613151220167470109793873485777495990792090945686936171516933032069387557472629626374960768833041781774770713722748951869995082402118882942849594987912064775168666566220525975347231837607538783779632198589176900376308353165712670571405008437448157289906536968516449804849995806161751688904845994766108362178041414852876610201326656004234182618821288600297573746576772774007002598463287671670023081557191972392284180043164590289976368821700848415044424782331702959015219318251576063227819700694579911051276724784053110252677851968061131781919818414236908020660022332515622152137149974101224520661239653406440284970994054262913982993605722130469251135794888184568862364125905202591745711414895408700694062579614100039742418791911597544999006758045798584152370702896969666869513149035380654784597964433861790191869896808155998490164770175921942843108194501088710833777435678521572151337732991425041343721362762703074142640267139468523083277469717912688851218097920709372060419179504805047498828004962824628332641334734239209438829494959727345947588403987524371237444760582211311141474949583158395677960064852763986631387029737589275137547336457089665799902206046391784205702468038935874320363005183643355236777735411696825201334368494116378372981224166935025303593404588783211779325274462715308058765912282471946321181492632207990758819361160326285982183457009365354112256707107136913516636819559727731290459510776256970675158044482216784664430239251755092144347897452081369666843805189904428271622473265904559623563083097623384356707078583726099558824782332372361131985661765699547172952543364963771416578542709821236622191531643510763303834946785159785794356107770834764659961198833654946933291102762001097878772270645153373580463458022457249878419505312644792032251930617611176466680677352311914229980688642888631294300407912583013948074416058136470380818927567799889235229625097194208494426038202641000271679021157390268075741729572515937081475977776328518569003519672886095536209319988525628468600302515654424428432367183646581965516363178164765763550650302812408974789622793603734068486628400939295637586452861076965680643631857796054625662132060102861029239469448471106584565290975363584050012120454415324961993824867916912487076710966500685924520067513682135003087846069161117171683534964056073748129359041411845405926814563994296533706477746356888238568817343064308008262681408267195971491589904768588267944518120257540026747286603509271176723102214079121045263254349056943323838923641260245277013116177481253995143446465557100102520608656474961302001903430794419339029839028046758073743727608591444930245200600566078066870986164580339223819276035552076859913294250337030262704249605462704808429824677793649455910760869855768814508936207297257279619358194704058951614951571026731016041862229474879404420265807501339561419199930390924281608646671933582421459958911603676305754865230591241267264301909552944688103673362492869315618028694469763961290750551024502317327156842685520274394312911245655764483231824870174718604714972003017412148754356140724077911541689363464498657258586234378186495524020212418940768111973551677812521806245388059525260544094672923980788256300472663358263638826736393119620447774231187809240153555016898325186145936994058242829959738715983218310146145334987267120804175636486306774771656269385416050529856163413214244849973213102035305544948878296544136659492453794304701295285919571795581953535571470426138381127172474321586575672281234179330024409418855705080931959735133619695984728771464564642247401651526720408048564346588071713100419839319578839814748819078219327019265142609182195921206282459219718942967770346855061887997819714702080921008611825165880372548926091061126723512520421815432521562790952749313634905270780329512805414740038342688219153205215426476108258960085650425221123320191034373908963662516250383510409217502673397984591254827542344115821659275834742774381325603067137975618342422355133819019651597866419176484558041360378410363128047729085555108821242715926532543935162749093077904401617435680035534914334697988233625393134821288431456062809433477604062679590893510013495897203537374228745261430891944832947354287989485631626203635501745324209652282406169732693639550985004145961534239095035194829573171856517533704084125954807485611161950712622012720631848791640876575778076892443542789882901882403279653659762397845146119683326503860341829175055509419607860939950416348669685621658548818897780081620100141284253418640780935559363753560057851541835886465741497817194530384117350238143781033812494960004771727760655465085123200659343254081272438206567494785546956446100355433198673011249307271323048098287371882594913694819291250652380211987635450387176245825673584951512666291871329356790468026296351243443872223933146868955040739256780431792936931989048122159343051247223907833092562268529987350876810937712985255396874274129594084579179111130082692508690139770186553903122179702649479713888303479473526838918606900844839409566386734575630606782552021697113579007244852125173065533653127103286270246925339169849973037696805502276116469535307891131612228964647226872864988661699125070505754687549876694077264040229685400681923528967567207313983254894506612915699191884735727852873255236876507877455272637636087201258845067710709219628187980104856123209571671546101676251234761317038130951975049447119741275149244197394778668900580766013065565788046494363595063409809249390823891525413400079501601207436073583656942946705975359599680177985278116597181224929382441382745503464654849096034275222579898652043226517137890464870350463179159871634189961285825480659011638549835993617934781513197116814505807486826479130858987887277414786060484110418202891611798047510274148500876496188297577186856541393085025081030996709576418327295308759008550679592681285543508580840622919013781966338613434200530300016923330919090750047883124820370105284016210556531775457518682470653399822694176401360472114567592999298578792186728270903552776658934085535468013916788124120108408568646995645039744802620257451095960926768005815295896316288040625972053119710957958502153438927677922641785507368643981267718833298726068402119437604614384975519127011776707190850288481404405066398751440113315835089070178332441531362055211206569561085862907702748068616385458154420049936899917889483082258926603390648470413162511694492381339043066442606852813832268094428204161539730268301338499238025594502039545198292456391962626770858821447768461782649865090531021366520954739574650767805488257689366786657589656714443898735664045623631304814254384248593857968007835738206690932113218123033983005761491956916708924886827846023400131505943078042921400078882163038219492715148581852560698877130967303788393551039570577635882380083990337154713242455109812912313865009706655454016774844259149352940619605765068647466871593231724956800349875942189517759821019914815079468420898204961500231120389580103531453673062096942979448150446753241284596418998630791400716075555749189333250590913200389706914113200156061803021000758409127373808142409078866993608749595321518023105835845064096056945868994111486847497875126046945068672239588746437553779251212423751013777918960614416904942107468309768895403192027010654631839766022041109893453071823761891066720353465793078443609195616988606609704439438358632337399547731421871474971172760104596236638709177164767353821016202928285882614809571867353050549073431290810124166594935848679948644783730053186124243859980024401436391506204975293693026294453126822836822766335399547459554404917707128643060276354817715732077635255421381767724192304876516185466895985964343094210274319728966339339917106275410317329332749180368249075093974429427847310346694631789621957670798333135858020508875594623716937851050293606792380967997116909438652670403963099748645717351716978283886272760659462566094455973854216598163524243216073418725289821443854414773817590174623733779346643152505731909824507129315951132865544532344088386886252591613049801117396696681880612949500845148104311531760953210362064467785635360939052410759907694055416538539125660463625595927191290142138378233834061238989035066476432374764862241995727832141909308832280445250478441425205639986681431219060380645783531546043682701760150026418160032364598049039314488256191150515518424577467837567093836401945656555106582757520966499285047281462813001568222247404193792751397585900357980614441335864008011261883419681340046661181545627060795272501327348127528652909813157307685694147248240354172270969863473370349347419384920153576518625168687324705200973066238872813414801685899309916230546408916509961595372975764574201451407157974781310833845617669001612015450679970460572669448586939817892663207371323863853609655224611697353746766148842502253457647722800233675071279049420417157551090655737102932399814372225827466372304870548487004958633781044673339739915048315817723144986790345447750252112949926405936731134380799623126641951111493438441309438157367537730203535364251394773512096684765677070243279211347851827188612800769734538237566598080895877231817183715067624374781987556575425481450416343922642677391755742915394134613028735941025773584916828958377169727250673224755559626263595618077320169438651601149045234625365989754546302529192584351236580249450902459954438357027494721963774486134027803226979021214649663084602505072775338844695197208322220367556461240943819820318488321749472877829929152294442936742672853639052460244651164166444629845296892830215341981294794270787018535872690481679520381266068474705958706910918613392450741080613778671042291652806110835788826440133966495468970926239933433131726815721283017341321738815313333255034630643165026969102893245559996587993495272193393169904024219159982922793469309544916700345326432108908645187578116371129423909138398433571819854048545442926619533798402052431687915341642672675658832253003137463975168192642984602802013685139501177740523663291779383162354261016251245489112686947930038977827331989638644056098947019116069645940162650891538865485837524976567220960509937763295712000576209927804599085903667624284538620565873300645621564670390320495889370776445926803169321076447417291146908906203378428632833028479573400135017231012044323245558437990733564715145181075099521289009714768032326606501107547699871149152773355195260486631871914057881125045334847137215660565162329630858527741464849971144359605582777093555208782878038709461894260867769739501397833696891279468574580606108393004800106994705433322171091983220576234359432576636980623161476085881770252328221802562167585095521535517885439481110508255944766125822417861184502606343088361848282834953731619704794041430783798728285240166785372203270328985417040087206365125767148232257494423210936110140737057224254625525059895994800453515831596637717387718054976553158403417853831992323044529037263654176381022573698232458384358974785130030033654466047301620464030563085686025244780770352177312392407026274304600250399117660182215668045844497847628924490510043604507339312757507608401094658425114242580413173257738687513831390321875345915047245807881624829690219765888956077419998848759954866448371021634775516635049621829841829611754407990436959413502295907320315784063659174477365234355029534815752682376881572550895146230471108504707438026005155637360539536768362845344513478928928580624758424580664223130511992960875977496344951884107838031183555225202249471154680000995932937954858472443122317194866304650717602665546560790422366642340822727517700516934582756067865247045284972274402692697858019584372118429342880400069542697857784855622359920195890938935032866057755417911150104486239907781854605344184328472007694354606404256807512850677872313506890201522221271054686989568681593843243312682069656811055292175510500740416365557181987188073538812763530232822029560611005844055291806403504787309330564755125246596768041403866062891278855321561955866945732717885649981468504599314849055022639796495651026551718909830603632729281347161809051935368835719897272806436938003310284359672360915667559273100592449913297649025690592289887699365684204121461045317884503984150513823355349181377637141628034076938721502522436116071106936617673310260265365870539840152559430736367080611853391294360190046521710983976530712710072030212957213293566261740401344769176531677574166721150242199394843167530474340589696978610509861398867576306493120378052800568825130655628923999135334922785668418761429929998145761428606699549522348060607858719720454589374477680075406715122201034923110131235396912889970805103001835693087411950378064176610092712368447076424266709033802489577392975318569555023771701135572421739003120763172609728515364602709523029132798318970069224862162943307596625457012526649993271554986482244243834101280166789683715111830065026999017558146522604447200618561372024993823012421225380037111950865917679697006359214915184693528960633804494603408532230346446100565194503737023244085993126874236014881812514892952850324037086495823493891015312310684289627843307297206786796469046366067766829529945830358733376112419521757094828685845406533530874503919544610949217641006975473852721058521256984979801902614086251467930646914615234513346250973955464256285506208575859704513591344930642619822180588571814213821432480754999749687951673953868310765878141315590742442560784061688680663642577166820996521158854329070835318525501297165501339382669962929869785890380241983847266395149437631780152663355939619647149606145441157677390189952853947629025718235756402327272400374661509692751374517274463988092911163939519362541312163770137033197519024788105066810303815590990198842024776165364050880006751483152163159460951538216545627098339778227481213092366062094274630543923679760481907484277860501324476765326367473551933651125517741423574439929082562785019871426779352146199232806656532001019419124909283933976049879629324563713513639509997459017674514921895558871734928423580588631799826032716567362429220471811741614652913063460525556744309634966102608042259655300441996546504380687691964218085085100142648041981635797683285267693296994406910182782425395752710508378660358528752743981618055708158105103783573740914134454591951071340391226636343585774631467505140085836836521019001260150452439970929562206177887602900132292525909155340590594973070402298085024814750882900827876055163165205860514211145484091687556140455727939654901530846099352690326364000024577713307917811608577918303555783599706160431640695207888638406656045545928477791511682633023254864916871450406068355753459922264502166423446591217917742858943708668797717236629813679569018300063162425871129838143927779642064769182490260455092683418117273360591840167832414252854900671701019757446911246165901581564652293788181943512173133087012336863915178328340030875010577687958708928741930288619314049301953906824807173429238366362491553818463172240131404874724276958979662770808914422429679475546206051241997494814132368571350917729212309265785064299030801568506483556685387377928876347883361559688200178226845194108834634141567939229217093791827482858757205668276162350483337054217161280193675056503641762152363614997219031097244400190206211719172253849566836314455081459241160640667953488987125304409998940424295596569965559832523566579303416032442490831677469635970856257589211381607244630913358730466265869220991459342898779412981646559796954981264120080502170442707842672835314579698144686511701369909893039028248225803175280769398201471883839286173546288641781509449075712313951447620426323708928072320802491761594045420873805838776316157416959896859146049262338513714606105717615121123633242181504994775356670178035939712633237574126960657701438735344851878578476408315142773989236657995678211517986577530984092834721230726822830213500841291606892108070310386528890209096634532076110617706968702229239837925441011678323120241561575579340540332449773077426349143110123269999190690193719918844727278247541277883850396847340294783979339628554207113300411380598652413280803986493864695500908953275773090414986307364210066886357284002815660957238052074906311832786695008259067346741141480191191946884596944784708691106903694792566823971835009163171720381126463827019065694804254592714150033866623665918997392952143922183381238249729735134753609877862484664908330722897722658426904101929281543475465370182554527719956805265117704614457381471791405333962007778521745119722482886904180691475519744221205340017220928514850683868611500035690368943360341386450699400079927846717947126552403939705766723661277112940379205332455306873498804629852055473832733159980763723283095496676323178816049111151116860435394296785603345801341307857242672718004901561718609053350355302461167130597716928157911696081995984566324202513031335621680765499935327400563594772581441807102697997758929102205396686325358916093781650986029009405324459334023560674142156218050123517387835923759212107821237901705756526547987974884200281828625904806185732860096753406746591231490352950345509975850697454316928772667897207917080771091170287472860380319903948314972372818290949050397932841643988670292689214771637183935142769132787579406415103300323685633405501102118831652929131130964128303022830953740302210136034408423118270923229673925835535297322514151580514292618088528271453101611533359486222726302275554472144234635803030995776393921005348438402430223887564602280113823608578061872309506359922273410854326297275818574213956709118682769353007252069666157716536896033241568878937795375822362285093273447945678712439373092771409126372264721866222181521630370213580009883022330598575676963683874043125294271094858889390038016306129483316068951788096821298828460638749054862926164548649033557112574374238521448027881859523257589313313152732954496899903458008601492555361693531956170596500807301547793412146700241131758341863086956974113691346565105491890251578136755750756443112578704668622281638682904084796509331057102367873597978913061702767070340968948316119695755951849385856376421307554578017966040691848004147644472390817205003362307920032446912391404795224204448051671187986908152487971977738858177962745752138506100577100905269314467118126830093641322920345306742195659015685314160354917414980838295959027624791933562103383761396737840075420229817103908670632512099587059315061078721296906327635720710909188612913261330744854878460285580406539629888104002633885369609429050232120712978157275757370377628592014573410041518161704289651417481902616785787963891966248073109228202440229774751236181942689635287493187653444511752981506771505739929506126399945458751525307816421457328084704392228346613091828908874484733094469055812663875557743148673161576379225461989839485244570584883938223116538735596725022828645715129939809974061047457480833605644266186838092810231203140419350915840787757556442764692091463730971350350093488289957151584265204708481519877731857022216292215179501719823918665497908010428770891805122860414698254243938408544047077473853044587949925477671349261811985513924860690476935214320609325797720674174804847295298338355979913998047580019019995971215431351883781017272890901877726689516436596756020703130789164441489009583450524323813009712164851557565205006192667828140130263935723769361268914463569792867368652474826045954047152893444367647864210314089299722657047722376184208191418493223260839338922531972551724911544966960585521758422186594737277013693808928442653195749316629821735518984527213010483960988424920945512851811661606016022856682273951083007734698363087090480808198310044965139835737719012330266735912141697021115437002250445833567277080821861741616721934480133238575941288536016797290370114749378571250921756879810633517644790259585031033339692471561901872124269240015155064331132815701153751823575227059997392086766098084174684423822980720417116364621075408580039952803882443949730229593615543105761027623627178655869951806698344016215548077052688935309046274011047092049717929227811277784103108325521351590914532747123919745241437187699782159618322643855201858897949405314860355385681082109494365717979499300511084795302731097598242120305002800605164734802315743442206565381661486833979602631582598572571130325020478965828646008821475118499858902539053641943332766414417511554643782958404927751216559295561591517683924379375017528892096999586332716723233536635536223903352184373932966595962867115117622310413879669816185729291186233792909211059964055738368538214998958709694018055813676859275886812935148507872136101758404875497335440186656201189579734125471029025813261517704965936234095420637500032822847212637798200922226786302537956102195466396050229929722793916243648688930145895331832787568845212830417877913267346611121671152616388135402212769079020455387892233516932881144201799240647782404172651306551917749854986272959590436649006917617191800523566683915381164961896938261711735338185768606731486067119164345919058321232237133319122116390573680412830124024162720515176810161799342622365978321713698094894203770834056774683519136305257923661646315600640677600698021920978415380437987465266005963950854276266389126179929048638652606354453609515438261495311278461627763065176537682580636785723395275244726183218853279979718454690623859025632428680209811412080557328177914343644441958413802175532852216869770484995351897172618242913761297218370626788336733437224329022250752092518815974422035643985374806401890726379621712385290782696200990643429184835182582241132651994373494407707235000654858491357437501722715296199273979495790187515574059188843343454576750051194022736011213055640233220763323664976358600078870939848165652603465644516528261190553760430499175577158010731424369307086996979042781750010325139361900478753102204992891187843614219419823313430376035095120688496531009215082298817221138761307630713603499117220449017538352632003925441932227290108516444939392084643268941535401059549702474663641826862574204438605162433336954367522688177756036240790408072424366298240427019940431333705192798316901045649641200695898384570847829755753758368869225273143351112451496315051242777279225722005995509518601500923612834942968795608632986160801408586040145211262207614482548667192605064892164284583912043373544700421512560830560886700476929142529125039938021752995026157631405275872857776831803303093704773499558671974871741383529443764461050635459630305793098396267108289503310975573070667042754069088138601168875692122486181127253152332482614224906544975312573144195930134628730315404353701706107655160890684075587920402898805653270618621537139929952651161135293236719153858441121379411296017040390676292913201893753226565229881518740597390152523570793427689927532806143317365767814291878797675738715588463677098416908150876904267703991971535082437008570225899127441255129808891516486003371789554595170007620571311515367184478247666467494075463693933931041951562491669626762249327612101260572276432010067462886462685087781140793265071641913462413214399911241959772934643497875026422081326711561623850312688649207895424713213071632340833902721423211052974158411266889882093488267266687436119302031192270566651942747596691122108994145213453756604088077840674155556181896026524191197727719381188909703891772811339268842911686517474587072390353290070273923252135165563687837333981741151204535776715709209980563833271911479162992272674700655790555469199144166666042385266551746205220226129870817219805349264188513074094926837668113385206622427340849523557528782444744460277834981563529745490233676500810840644461850397534188619190817080760982217553524522928967525482599285056034268527514530167623384716916465325739635445042232300978866250535855328773656074359651255783907373189592777715975726037725704793764418612426866831493600693382519340997954664973048590886238392738170138436575110343440723482563825871283776427612658001815660006810327568903373621816180571600031219264731130142907087479819643690210838301088080860346621190127534390757907445762632955409317435127046022026012408534390871352141951347738174268445937310156673356214029944542073327326675856986623415902792302266765814838218121219531870789659479792798397657585462747429331941165388326383756274019964610866353385606005681531278134339861296292438920169014660742538367763111436824578522942477315645525511224151758651398204197078725825342510377476474461344023121812010506576713630235193658814986208865681698358051542581813553630904933059997614293979730663466615158877982747832885871176527327649284974805332628304420615155817866390434790588057274091557243629168251654480680588145505294382076849176913222361556579711097774917528737794457678492933584237943221425113764007824221852532979716119952825731744310971555525116764778804559088067204705489753842595279030122887343498551437662667300050713906134748932529838091540904015092113806179113369891637520284742214531047056170082435353668334849092570608471333799425533973237801145984759433493940936133247160528417268651921839523463055769358401533654666987291717222252431904873106444829271368209097425086145586908751946147665206446795650974845708243287053978838404521512196503806712927251879381032469903001475898588862048748516492170535690161048993353109217180915384856333825663938130120364771037178433656199395806787200783356473624184160548719022936021594795590861179766790967763202179754081356680945705803126962370969731732319621484536653198832457865074010536565558996580985657835331460027393323050769385648009517540133144532140464586959085407538151608305150675555536784820492904676694595130660298722032504018963704796009379729948309821308877940555197308725807441810523982332643024461523695378840425391123079205041689006745347408109405339282714790933724233343389626699174550677764465301680251459619470845861938146119206932180091808052570481829884238931677795374564901918960728749118418716999747646682255474328449208412101520645978339325022491795958390366413771155417868953566699206333922289151304176729533255093934667429427478410461967953753158819048762820829850666086473015350249423744697932702116525714007302261852423973024318467555812353445115165663094120377374648508745492407852993830026309459144718042866648172056284396199226869773465997807054524917376175411662259033148840787261560932742458521974693791738943993865563266178737537569498961982182127705318625551615103621985273527779069445061192086133737762986063910647974955713524225398043575366041724697880968428980906274214423094130541521652126257216646509259535069448828976844389002275599252986525100173550854623328958287698487439282600816343049282255966235976233294695949142805526598735575831901083324162270287685256084959845039502030751850653895734809243911371204456223792156472552487191797437736538533135456315629784533410565252473394075716980563046155225252095049571580463529106292049413306924138360434061462198173894296088069655892406519431946421075365152591119917327575444618466833771781892095726666382544353478711198590981537257562885889859583247161474991164207253168676473606546781279742916149569164652654307506027860910565121520487572536675031700579979956071479231053370252661139111872632410143082112049545374310704468589381283285884787965618470495331855915935170898250300520676338564476983170898333406955776661907336830469436248996851834016312489287225543297690542786719848018355762906656649780966166308968078693205207019547372567922359532185608681930731185167270875020852053528443055276461574462522351533566098292260993272521733252303360336892198861021886849283006973384211688936365087115604574310765534959615751681507051538516408945146127431270081483590305703244635851483007279087195349409960334142436958131078034676635648296524073820055169275802406330587677242274682132468153578353631730767447503056286396075562752762329723162348480831345806948580031057178221732364754487276398557200427688199275669479962952961232741716726363266436477981848158814315606262763098486752069879182862877226229644247272072592804961367863138919214123968010012615449827165871157673691986249251395813628069884305376507237229079333351704739266904414493831009966196652602275870296986107352774407377097787397811282905880133047360840948272302636446978109470774932716648290762939031564309370278402879833768513637105018467197275646842187266386632517671222915739304627334912603776026454885370490916565280847054769740011591003971612019783932986137608993834800061241125628200891087265359876968488774469016320709178148178166565352948473514128840354162922250821119463920335033968238694167057834662588440146221296527342651684951840743812696088045419656636808342908186448643310995985633645306392866328301491311033316952367336414404762849613019221933986175299992196778343117463276186173695036436669109579468465022656243387205620122672207711271292385204144949402357612929371998575930804616954259775187041424989996475309850395138754515603612595159104113229741162022610533605314279290602715922789495632124015509031619049598717153019294686851224384103233316657498885059633627451076154258690187725791747714116619416628240889707303852642805552113929994673317759133284491174880199232838807257570821154069559969258132146634861285926243130351699072534460127934468820320226091410796811232004927755282618259327035144907581505534310789013531073042658181861797596023319988373543760030382457180213553792915343471564894441083609405200150644755100716187636032609160701959865341700973239659714370653009251863262607666468365942717346640289362327160679969221330445787711461048529365839033563991300491365194754627732481477635336044346230627448002665772823883092723469096637638181379414481518608893748103304962406994250066206624203732736887187525856053964025821679089698789580051147567627906331999007530788090085850006826263683223474640582483489171928450495732015803645162645022255230234108867458140824149842561562514265053108040615580873777597594132564998647650003373522247348719543385533295003185453522891898774225045182908831908541263057615196103657511541908626594650221853617906438423213842607922630104096485865348514041090615023238883855311206651091228924656391671923242614671737940182941469796358340755132752619127064912722193560362103346466494112881404368010093064405488336199934313527298287616531428431918141415024806217525170747266384521709478601329964315613524435071067313823616329702331206242547524867999448009532831947287393135151214747812924259036479395624388426945569914718277303911466926960136576465477781580612661512054155642358498618944341690250688545822516258092083458922278231075157136247773611928767079458963816014552001468769768810085219201844751126036995631009820764325682648099187177002948366032771295393700816796179393659928214032327658906008866614031135577261988998374687615399455505202139187598077452107340970919050087777176546933195513508335090420493584235872841300490367601127385368144938151686623156481194027253143314310421979750473628951889741631518512653038053412971933450430680171574587336630407218833604696441358849820594053545779387630039781968135753364991320910914739224519451049973458695387732094471789928028252578136451913978233452811002677156148113843958837309654337654570682019352280803190607841633585607499233205788358907086163037173533122750022880441338618410446025725455922175204990546307363088904003657827260711653954954574849752332718401173308559301099292268766295815427010053904271909630519713418205047737810430425232024828314917012531631122216302894586821255751706809653708389071795947998749529755182804828668085904188583654895112551692899610621989659707504145960039506381824725599690848469996764103995148611056149350720979613577473552761490493795585138510943527420594626675532974885965715084754567788011782133636627069778379582834823397058418552035234457739282611704318405421371866355084885861323359148022219259680134847505611430487471786374172523980195072990500994808723737918437139346253375967644469020554324222821265083439385208063181373050001849924064183299476910586239713545607733475291475329344136111661141197290220828908685441619328923826429359583540852574016399789193317520629675844717335754119596541069121598748239714217097100109970926330438940680213365870535216749146625535907890025177014355819601811801747899830928970607365183168795731635823652787590930697669073728446670804210283055416936514608268105436100424677579849874465399912648485331403535185697519815226108044028444347799012952753256848122629911556786217262833679651174909985532053445566445378263380179797681779958337943719789223584475646843593712962440496165430450898321615937652617757785520380169822940144767862336409154568302266526211406678544786413094127741778985796998256012967753983888909122880703625177689073401164571166828979935440822882730627117217133430328893649274525962956939530472012630407660866132952034633289012080200607474193255192755862598802919869864670469782910356994961535852094815039428608763260678080287757755100114712860738337253009726593938031206581886423550315794715029384968644470507298571219247299676702060438880530737604900008284740409440215519090867282990833537520096503257747468054604439217492045228124128105419386507284712993134616685896140527055231985065978227310243322908980604684543659978660024695593836024580750104853294651565010461420881979516716396210157820104761916084538183655455121505822548227136861201772114219017948879647212477834692692007614424717051856470032077921462436680495025020934199789704449236741010395528581028212457286650603972993326294516461563647134891645093434038360058247202936913531472042622055799207686615425795911931829736532244357325827435952053292351704994107199918180496103535051955625614758524971981883102477588168312840808837173506693637316756742955466019291856625613490805742817125312414529139171819164438719479599527692227769384628500146422734323653508577506525410804119310936673972974895309394184813347967849577860178181166881433649738820275406082266977493826964026442475760199802114511657345797860742178868412168626803500504777960727774449583697753479974457701095840051542561681312970878614031187318836686616402178570280612230266515675427666065862016603402082077962323202129958906153601749854830073754017507383625863415996520205528540518348778764168397334077446356305713952110369637532152949483428384113913054108114289662734564023757367765157440626676207051042082247686704176649285510369394686808957616030085562896799063932095442548435786890839230840888544378649715325319822289201950289990775239813872856854108780381929234934842012557316933567569910587830242414703455587223888935525686641163641913479927923560158576725880244131405075690538588348885452323023880882330175446290120510314098826176073750357398514932653180003481657029583528840779620361724844871564075344964889669807595301902653292939082293845700302813812198578280048724750698944356952130678661609534998954219707120269871405358967942096904962039580370205371617810114660919467252705918792545106829641086216099908787984262942258024075251751170011452329653725250181304116079648104244565168494648862337966022578209084163888689464755493479334916650460685678710294930660841890810563610519692427645061818037512698968544842446453577790747027363749080574364939977079569124795075379672362153868829814714688640595241600920762025484551694122692579457225790176530129312801460002890537407379979031799862292261472435487333529693372265617188366975300035438590327709719250122722609400623861444212922542753487084369970565697517303928985803058222540074047129217800502357792884286126407524452716680716660492791030674830454765919860926684205760307145063170709807807140723122594503789997817472843170792357946664221926856015920400734673498184348736578348186485960783480520109145855988435052827224967921783035277415123859027289060410954393445385087387604128424231244816198763230713376966240465166099000883738764475031088124430420769994016163335125837260564999133495757173938740450119192803923801382849357663187087700662611193441870025226785005776847930677038778664240667616359397872334273868888622957073003314632849368175712444957737343666802766187076826647276031148865374700196204911922587175453600691654970772725453575693555792105930040678577394383486754963332687340204317392544056310934421181754614626260442289060623752920499691526091834383233625896268507246664349621135449940263655461679865370617927762542390772385627907444042169491360252534051140054786814351153072001688345866358413763666887229640262438562359971331812472177275962855228275327504186453534106115389092136661257034825027564955768244975530090434146611400717368927511422924439369031457791241126368211334321428817752527340214892139002098570685157934572721626156350866331024038407792091743516323281573342449971775620217674742910442112117957397826428120233661946556575490518912287556298153656226766638375180127271161365484128772775974755868348127334465303309402127352877484618105618448774091087289782227931925554541419297546534147345962176610981011579254060718108511261193383556658273052080095980117980450082792973518294293030240276825451867894176583251891976646129688089270174023369014815085172833309154177250401727686204022387336779594504604801026258679589711874871762312061338229852869352527923545399210479324535427182401138626787147921021197088345324901444314480135360416532389371264005339894364527576876322905745016532353576067421069887882411596664505974496175556700817628149934843326287645252957837718914283618894120533746119697859756261912837022745100535699255162211234173666494217334851384480974665536286685255733754494394399230417753062258235173152227001675823829579036663363712438449493479252827265512432139812325151061219437685414198519572522900795578370021227786367999498188608334205550555000198131035873536347714991408877726635908632387434373568454858674698753879547984207506631946055243811088486100565865595462239867164934690679202397490673808896882676017568513293909739766126264180858129391215244463807814082473732848383409183496677971996104193707230177233848599867393250556933330922995500879294962075360168605626735342868728404234932229281747648048782050492575329826499755061382389852446220625554225682484030127529778236863983781758870802527052797438902368816852182313999070322215005853949037610964276882755496718343742775319882975467678966407469216495327378224995678036219435583239826329246632358394141756605462937591545286895757850899800960237260960683551452399715420661636234505102928057272735390058756093630312546801104242936383496600985958630449043244854011324413783352299493252219604262372854608699346003700585628954123000541841793716793475576175362560057599006015666415321338825131823187075100523910515897275927155118659168345661628244294875578593003740194622177800711273769577625017139861312475814459614651411963180274571845013949709609154969815230861388118194284967552491758947733587933063380637579763536224454365068050636542251295080030166808012598634050590854350185382150818963308483751420491969690469229778204984228736182281355150510064444179596609764394026907316112555165784396783087678005034721735548243814632295769407651079815843946364225483388400483369426238512369830912303661771864207560050015315630266475112735482889131173189985838300263264565733816570828275529566636044398062181662894481538981583113068767914985853342443136531658742976458204681979611493518376849073133301827918862668385641771360849173589406878766695022116801465768721192498510429849428669490170494177376685794632368826184889554069210672406917879396394077518240365411145024501157401335117613079937978951753109488588264735046448920455737388755124135042429576110745469833248557844551369406631531769775921951388451421506267882660305608167337991975482799715138659205366145633916987619667555992434953045117898348967231644555932655711370221759361409276046360404881074746135134658620943453782925427721409658535373963597962792757874430050704280116368214452862707801852439546532608502358114725455504780857955697513133729270605075230117360714687772182006942984476644019972942871323168807680165838084826066389604395871679572806458200062851733391072063687659980887914411540459624053173721712737298307987634766165807677606410129496421924418169196455191074430649316426768043597887342247426310485270231174684161122353259618098694432571612113359905112496830646988608315579498006163041887260300986899700880793155590251835457166808414535443930333875145246010479510941268226288291093707613503152727638724457573653801692958213980691615362792398100101676462553508172371269238933839372309930817848367645663135566382399543065336062596124010900313990266566246697646539530904115216827586753436686067332928637192399722182959731542769251216806589728467254043501598740839834311407822214411062249380731043015969433733722289146301157518356914517206120770308609480279149259195600658934217761875696293223268638889979272081108285207797168920418439330689140739284366163508315173758754611330897836387854768012554807079728285876222077142206969018649918321012923169972343492673670511150749317471590922225654872771958965141994644148869492040836973321641473441434030189707899840104682997426202274383246172666291837855314526611763437976732880122904062222445621815733071885624942854020039582373275015808548547882834120750938389389704475139274614510243434006762588790882952092203584706341519203575744712900429528327192766603322096996895785743268703308075693964899750933636062989643521854626903603758630950005573497342526851711236164836644794923672066497491754308460956880423613860085784758318972874993252423297947914600005129078368659900424791711283640316471910702004913473077410915894861915832385524471096090059303656865686517294248508295003031997110404585142122725821799432436772095552673896645529899223782259928332430022613018036673516531318364830712283381033070748451229367594835218339335161076992658133362729007183528362008425519626437068122325681189441419566614792690680078458804185228437747699881552025226841261993061735015057626245871628304342850341503300215682660605819917787995958917186881343697248356715599071842116207274614744426941245256048891080787219460527968754602644925256177512642036412814523360149646356614762108559739438672045561640119627377679243759843136116373762292058939261892647843487258296231110742699178649077662855539925566803942381625792251566853834756214927360431747422092376870236924589711178146354903134522757812743769798624993734878360725763285413900334145104728397678403810010730171233790249385640069800646078118301999854017137223568414892241464107412814333680416532461736425824132151286796592584883115756367781259069993964852629526243526651576502252726706716560765543118512674983926940073302578921099657342985148145789057662273430163744781291359867977712413858540893968196916518165383567926695245804536689088637067921053713503610795641400993386880047779023125157816711969714781725125870950180910094351166165916465981104836335575244022540152035488495532603105308053450334046756751627801559166893400396677039755694711787437167790274833543335131602113738804323654350434647280218217804527781768141690529744183732206823204826567810610292120226235523175296649739965722436691153686180953271332048655841910890678080041344371889798483718917859843548269996606208686005002398281553512290357269153453802441524672203799839573379688378014106701236587758941376832082508297134568252923703127302048235731946177778505728493587212875401445807353582688525962988826687113098751602273122007169516118102783498757811416258675492573908303069201810440984679803903359296902539517519925119032826370378090822352944952939751245544107970905629657550264762897490321906639028739405607518077069555454688178304319201595963762801310732769670567248604101070025444989497717292669412672298255457314740427563077210922527076071355568580413585271540177812587223852928205088028159113694054253158770049016075420477208834774522552042767252287025454142330045311186652287365937376244591354192148286890837763741668036230915636060062565690508467743570732970491582455740582781385493232320026754202674604498681293402333252072822805103038522735706871100645878327629852696939557426079188180281718548719110640301971649361023094593485454960911526412498995021704733980365919125882160919220594388995059326759730410719772270271250546027659493345863330871541857829632116445551464368401197224819490449215872279166002512540300765998072595508385190516471499754884668633848169437953683547534626984780942272235709466600856988668266851012027416681386247081190340039121456724071725833033495182659544013859443506811308278075391164736280605595356878592384297860836623937338717435625041179517824317247831426526504990789391313556967626457083629801476684945512547022713264536211818142456258108204875143894545102957592781283037027330149089038186306771560163143048902831657079423376968919296794017842201894942549126219593344208055621613474243206754285127754706120766864777108605107272145044636649279843838257917507560759249308170978291550889944156340267328694914879082451437089557786284831871066567224704465869512494992020177887923101981901610308517109162276206813986938833957518228327564753415348749331747483339447646987997820615288985201802283321325084356666828536173149522140135972528882678471270892754323858341121772174443014145836137864467299601898896719648943021549176403092473277518057311150640039676687969556026907697522480261429144847639196934963075305919986680035088760901187620893490064038756808398462107884146044292488880805637570518065241996188446925261682504488961201685995968573846691790857907158079595163269766269314664136345900561863936999035750119569787645241867137267773126911425681807735532690557239957715982179128489629982849264437159829494781409832981029044594044877573618484225785066277294012857106401605710999679200839953591784214145099959100267154440359662268069728208364987759671653261155025490593010418227943387321540963820865912279244861506711831994328183998221446665208500249939538766834742754556332488216623353992266119779284643270687823739412560370192553405479469993425869335064561421438199296575254011166189062366292667646606421111518983276056514372189436314150243630147633708253420133419150142475812328036861688473792674527686101141492936226072854414363638861627273750459582065299892568554673840087236651072776633094858648249204381975319103516379729942342590671274488486214992856069224182936797548309350186813964633569909705703622073207194450437113565003269466763903452194120314640976037429782151365328002260123564556291344478722327934284551827323110179991313751855602669689845193254397976255540407101757136583736813263187501743543478310000730274904913547784307557838867990014381106274431685935145990247746612641209510158485155233040261038043354965503104130683000790274432979070159125190231473062411399658909611313338735432860548039581443085080675518673227784481442819790505717001306847260543588379986591203400973548288076048325622991162959149861920297623934662177718005411553401258424129876406944855980320306832129125299119748827516416489100737419279798401904155977384105002498440343350909301796027491455096011089385592000456215162799488490019361119222893860083958171555177802225986988737769636922816610804568244882994262307677367925669344455367480612268169271038312189807527922417562579485974738253394958320741151918604525044963782469109695273176760449741832279255704038533357911408452427875324055642028423125398144419071590818156082447043928998347671359562510395422606798670183633030959127940774932179235622518004439183070618428388148784379364256888972680936198115478945709552296026278664940941954181719557974601010136511962593783260179038661287891481832593176911624033497628677837450044415686425768698971340006932036158025964014836018649218951253031673141237521480559359906721915866714109868563340527035669623101699750655501333827444582743481694746735827323531129758595406310103899592985805238981473163813056077032763595812891043730687296730006960321279586875053797018863876231531357041008346633697516330384041983114106638156106871927297119495990818063162023036717282850810121843291842489946879708177017572864660079666323854806327578517405076217980575898995788985034953221188705657253880385537938578051091936238468210483697223020177850125183409182705921491788222141060654809572577795473679584032294353356586186432529804433506566512213792137079192802211586402889020323707349782685251537068492329066485050972139083058372751768657583564484430085013194822305016435593315186521901199045757076254524626200214938804896963125855036092202297919658782577487011498513834590158219316125918948695235403180583241089919057514315776940346088105573857521195200967895148201947357085461915455520932685279180891685074463820143654984923238411858064624535012631304413001868065735858881307352309418788351211944482428367773705889408356281798349197601758258506668492930172937852218779427735604089508082539183432101466833186926122093900597069194380754346529991219786427499713119241703742628452153434069480494154355655289646976052779837251462999003961169976868556177322688284945397945852066856552154782860924648887281242650300485056802364276068617987106614211876158468063850833427158290934949191366569419349452615043600829204911893929021673717477947931206653087080231417134774245843735041464400981822207617838279655208847285486189633083949492600387139732470297664089921805948541932787868468141321567901954763519937100566937624160796601001952749673055920398943429662180262487604769747297772067920791399799406759154420399903663793851398961572014579254216852914060927708050725366020642709862148581378358372561624534889235154465172949839126775227102777933583866032875430552851660389931996121784513340501918239264891442883056926943707378464847398529355333747828601221668576903869706923088683414786643565284130558332974868756320816463478261505037196986703163348461334884181709011841467491475364147593005010878015544434198580310505583338055278750535047559579554389986366785087290044152515610636361141046395382641092005987238046028543612997985882136131259852100737861080690367030595002639282173766758667205643337672734674534721424110764957598896328104883575502944053689553470524754315363363650853767743860564477294527848164674893143389236480725085383436761305118321591511498310843046363269607828845081748308342198531555319318893635728252837971943696089056231715706728754150341847565852224387165099880179442773589764188322245646559029101291559724408480772098445804280849240094194997301539979938587678835992796543628942169232986953514234012773516965728831197062993604593018970004866226653817701880200242733693140808577403917988503335309420400745394777277764449138164884999168163352480934716052708502293023586901194044060521863973053255789554661229709537046261554378585476115855127678471219201479620695236331415705847109504148447608675128461576635172395674971070044841929753839440948603351760224101670270902646346913633509529658899109460972458174955224374514872677759831726634838448125998485118030786322673635678131426037769332174539307602108408685018014604072041321871525064679887360606479011067822283236526494664693824811199781061656162065480488458055765007346188125338789091800519143846202954777430222572657285276857699169802104769867966542734613131967343559067182996643784413334934909775009061125263293396076050165317687623382066912683380046761157026336544557689914871625505089433885714932160265144823783018658828118824423742523641472875222766368424179102047292474128441667585460284544358318831253964012544900353147916438627446869646212802302348915701303572204451711555965023789626197595157347107768647207415794476675055947781434048410006390373516343021758675393571904765446023763040996021737167995974978734438319283799676681974715068482377028576019698433774744764569509795706590984746990532516640647761352811437330621120125020268589139752636186716832323641003986985310673561548200399062163204180895045728533933057815603305712419221944376738105149419513497102980582379815265121540778511560929683859549104351075642776179964451975162257966339532206434344759315596933434801026612294890728699036849749548366052942997639189592791375033153152340757325921052211516618247023878240879660578741976714058031019472556758634805752968191112330125446806355899079013699721478294295280919457949269742826981558315534486442643050529795987339381802630178028207815244276187382174760717970612547682815913195228407888453479794850873404190447516748783417709037886245139354852389291378863600878140649892708953014177106530653835841073320774565795767752610180279214076232458635165706928635520453794407027795530970457120878038565867612059837105754273984635510979146660092229848272790925416552316597784061770434255054468756687636919000751557549897908210885469438774747453015592940562931422883353323162111344147296403359817723310597283745389541454446185112261824966877970029149342162164208352924509753289996784686495972992959428359164572048149029938661723097182159857103586315091921778479694081446460027681923769591130207126192803974816446035376626196305608066965923253414979842998419053714867789080085556973594293012163390181388669570748672865823447881113960359513764628961720180453192181923726167002498903398201936417934477265286955975937302255421492631834336056532400313060278602463623504538966549425625511629548942358986219026446364606263117276343168620457919105233404810892867605002903681150972769852105546461770149916298233613164681681517967023003970236480555164147686907362308052079898260767882698274502764453209520761262579132060673334674292139540040674474113646730006688861243084572104047704861095366477324513240058439521024143495108975925771091840019957898726979522473116047080086798268834974847214491018983816743883303339992676685156620539700180253962119031539161737159981967682336017414269643400906750719751749348489568737272393411828550731289868048576581938249259360579504851278614241142112124710458702525234568572370682772009044231950402253511516298708154818912918880325860617763401281378938159715508405871562581626357715171689018244057829561706066920090447016980576630391395825498059484535162924436501521412311229224458389226309293338413021760360552673517359940145819854774600056086205053122903242048256677180347172370258579612425919096986014039711559935838780096427591144769392989579201872461649892102752941336336781572423862788839039852052155274058422598058711806150984842082615806232878431755690580886299476731853103061646812440672125501899932400740262977490839872901424394998677163035579259309153470355075645069182677877686057095166519383364707839925929388489272696566994642614438817250687630568566481024160774331083811229669536398432302440578116942455790234532224240208801286798518989552966032684987800821067240477383191672033340024648957479516201429772614383922476907260197714872623860958860900420294952660535244815735996199823060983617078594215893937453100245690950944116001925815493599082552119378685718418979764273836552851550981400296426654931156977953417033106314873956227160831677602602195867336433532802860695385875369325187007135271089461492733445812518210168755258585050859002549905764509482033450420035344295905692788067314094009944417973048312279741654068310603111330756958307000368116959672528539017175818364873242886443254553435006345342827127968439281914521858454416017192730950330952252910888961875694073316571302777157764257199402969845429678190715930071625066885536908464484991927175838936529389359780067133393287192644314956037647106232457979686950356571802796709249090936101554431161783061967131374920484115282372503994166664422150198178215039033936729455113795878352295961458521089871926375820963599657231878801565413651056009128560070451756334112961949684223594908202233799295117817137089698994650736581901047934635354603679410554316088675326661714324946987454417706202207802868161609898736294455036412995934576606519683351451552526410889088406143824402450887478903604303873165827906643765387245227424108792139836659987335827997189129784189468076892221430500288627874108031859075820839416934557941467131018160775536432967271222059259506533431250004634746097699822061731275012471255664924776017779145128195961460731390866981361931591579764617548051619676162649140916133913027797221033474896420430377793094516388710519151502217897152575491080671571778302490143157528187630678321865864090625867533512955003231622360430019363595948199876365274085053513310269477064529301236331220982500916867278440472129994251095848215287079993779928562762533106345689157851922703207357860355510302912737268970528456887980169311447174029408520359720378785181956834802513271258319226499695706156416495327311690456487442655542096190727936507683577476581611916377702188877283183634515300311516127546423097165709946811731034157555093595109970123047246185800028922724998411448631608866337462255766547363898583573196930493147115488350349326051821786556722721393454180585602981418407517272764809743724400884448126229969795039634787063488996862046916397805053844157174265692090354013266396389743433679269239512186036079385832836601492238473385756865806589197288764690248045393109392442125940547145655109720728037672338832981464217878504098592486587156016212295581513354773985899111629350873664202647568859194630992810067695381909666106653857085224836257293283210775396971952791298032916725141077552252330285111555526949639353395351836428971906293124711764784817299013428245266171173007582646092972337900960739282214675562938755425595071419386537812055918795831216468975657385808585413899714571576954304574202000533898067348078956942744209418357930899505619293767087095213132232595710221011893724106301141158750197649497494086874586840100064553317684445323357880230168563959137575237592292151122876990984768516127078439930345349149639270004190641620247281012891466571151969849034121887928363147662758154992011937011516740374270100087004428549446543665965944812683657932321249432404334357490796163234108017992253180804369266268713513148449740057460436120863489634118285356752427942094041432448972597194558089896093238873308157517913809282528608728469320468041876477043817283925253435920148361130540634840991798799685033710421599898091856240064839621613224861624382676256971283653491431214452006104513676100442792027284495388630731473075092826601327155908798932698150464152184977272610677782834592833464743776103915026068741922108480211565853329625667766558435897604834234679899805504189196421215370945645023935007279908177941806584708958217929215439414991000954236474575377937722118811002739751693251496485924079708722278640104828121935448579345753048765539246464861492671835165808467488692244769530780809128659939939994224260330512855977300853585367294387210033542458053406356196507997250985021798192759952879484222006902127547565052264375591035504006073264988921742930721408531711840673166601979131577746070667400819443748918144566181457853982459464194196090466099708748693281965685905769182976621622969788956886921342067935506699383736801633990445644477602773786592434032955747395789089764214619298971956799314192312185881533826889768542562531638552223852347591015285311150015181135102678947194846463657370680262361027161191577199247126388226980012228792969636988782431087297004341410462972502676992803978552310449892875088433548573321965297407966976616803381959476976103177197125949028098910420951171860587722125906796482933835022303804686222794764330342482300876562383754741369894221920355463303098709113956866558010933267215127931572147461474331250841816768805284307253185525885921844848366729274356464984797279543370699930683621781501060889419850791689093258006268796478722929643674781834337642488120644125679749160177993705305048646282472479696517378681849778700435397801384700156292135380272703599197556562267496330205888714455783039361905201633781066437914639752340097612015472576593452094302202042733678873758567582257199115513874946308938135185456499848874572288903623059829039147459168846102010905575729312010863564171814550975610453665884929818381727337667652090750872281509450555301371422644793267006229980417947879861971571494073798108113452180929783068718105802095443767600626115649876988997387014234861860102735768646758121203713235665009758492275431309353320031248156609872263950409510232722123721243558610355080575753727544795940045071272924210565670810013493235783361555582879791641640210564569326582666754859529899577766496941733836811045506343960767181590927431687951657353790165389958434727334892007498646621500486667340826802744042506229271133963819975473361106665069219814845742376645077139481958423724912525964119243524031189796776250358438231489276811698750941142074756527468633785477124917957761009567287489057738702926751654859752798880649303600882141313817529293235842372823459280769429697900166713544692458850285297424121232071293967038905218359953212372366327347546300381879643504907832801235628025284217889605847402547778854376814313066382055474420176262117261236150338810160319502722776468612913912101134156549893583697810860971395985584441032805207022402298229268301069917374769711763962428572690331209877283558411704320785897911892356971215849750437964323608366356448875232656233122673337693744339758894975194373549950881011106396642806718877568990102264226354849918016610339491214444680231985773782626059408795050307915223867438071452092753359099361130548506259686998984164022031428374597299183045408550603661785400422232911350368184550838288279911478374973310971386708978719516799025047498827126698955534637926333894398785381580611656675133963852257756867380846508898782438078188358034186110078029533188382121811468350341642836080287889415300937101791333000452177348807756634714403686094819347319064663444655550878456559016624826924021346763907536857513226105656732699391437879948580131390909766027791927240623497283308312823954600479026832584099232179455741828346967562776132453497805317910229204374467282201599504602025639811695207280631993292975772339624704720104227824978385581969980781185283146847386574355812547389137784100763131438749914894002879825902989140178054822440826390819602871147530999930550053878310704513987671122980174219664902157556124392778707065864682393573160570195733138235621994058020456870858828102698648639542276154455126034290654737714406158082457260819366710985679893420292340944330315233507278931361133882589239322718750137574898439366448282518293542510542344578432686668666626110171582860097948892622241703306600759362561568452710098570991075605240757693313554094292836593285873579640011399568543667917825465555963678147458186208523805314450932983266052072346312364780092881824063366249942989641776102763929905562925832342306209497376814582197602350557808692328504851064252163925955934800327681838429101313874933223962076990859648489469231048001663657987803459237246990467775095708937356755152817061776642509470671785058648245784005734211530345708076529571310297030981538773691890176290819180025093409844976698031602187016889129773278018577501991729004081405522627980237198575213751815931161795156447500048229383402638755299255464993683748566332832388524776374479482301773020405019084811614322304857057105233203772557823510996508551925751428836462190428566712713623503623244957229854537400358188855402953518484310160251208435612491213888624524639777166708524707909748234136795052716443038661094959941625899928340548635151093680976161431673623970339893579551771487704299868778920943652718743668352098132652984968423931279156333678129706556350941411258985796599583213136361738714322256045351706690147920578802212546713288914910672352636014011844403683878013795844213070563840264002756789209837827459087956305342132997960146854153091668632218648233387323100427666980979146622519706490285385453758895562789313081032991031489050661604614366765898025664278691721252906311636446745275315017030743110022331804082299383224489851719276387653206832141896010323836497082074757373798575284497232398402916090808969933339496055026822529386574979475464759350282004865509540446062936151562158779837143961905719303713510451422957319505174380962661933782699441900563275462512448364245260375384974581217897774474993802776250395811201628728461821856995382772344377465586725705403646384538602026848408026677704149481693039110666700903179189847707921448690259064587038910688530705269135722626029210962116037129458041921850435393376571614097399844036047552807707095523594268849860945706030477818486385037725424130229031670564596535330182531457329138992343318404953008753620740867698760486810217035428853151989992105668113076962685332281873495189607788128117118405909881800898093360444888649449714301612773536388364072523151488365610657153929283185513247197752814983989236691319255776082739392984921428986655353166149878369388626170225890012557100756637412910442357627293183711855219282286822582596398417532834471587422939271246365543251402407885346922637080295128994504908382103405741737233022941058886811004860503542503431322413425101732542695050119538156654974385555574627638454591016606825775994796284802863850175461907535990545586957319499108291029886943667300610703269034791845037756579494976700031235420605700768697874399669840135925632838818287092168174315225646362840408098971962462387755107737097269248799041220146093148613748421124725640159299052400132287599239376940021630985110992892277916192587630151156426924458142457358195814847160739748978124539163108377820209239502291371299015045204387045960048430350801035775079407748188492708517984067278704835954782309994304933979464211176426609565456268457115126356635134508475188724433254358760181242367176241061991268765976591521748944591301506116718137819389321049309598920908407332531980222434440252794474042240294094710914436300357742042568196728704100265608400740625189056650053061233458075141458637154555562173732556199842552589407517179567305285025317577986535489118372424502490132547118742493710437962649882501803098689351120219965858874152884103914315123284354875411129586696938647864043452480748762363714639205238598933585883512916737752164460353000682564544550342348597098207128417196080973584371541168831663244243104919129844074445839526272167905927263389538416187751801466314112918634231332775008330438422298676473456047843076979041601372402660841819729571926896648688067727223750400658312741022222401187403786338471011044458435208082170724431728030899234584999280044033390892339931806466250800969466888279156202382042252202555867494372822715949786072615820648027358146181377685192162351507264610257225982423451115931792504693249305836321857890570710013006068550825758742766881233910495843857952387371428396464918802965108761846540522941461423652493587126256120372989870101465385774089042794691840290845504334412661365220697544446805681290799876486910064827890873601185026495190776903675194556898916472781373076178401900611712932449733577697165240945116877418277096343285815918584992438445661583029567546323443262324308807544234718086977891036722742806805191878651511949931916193250367837749591232348068112114096383649824540653826251493187265920451389656025922629667951727770746101228860382922327349890856745818579504891103713132922831447208522595732273173964075639598008028891090446071055602269554538886220928407484166517605644894434768029543122943854493399131286723683008961895687845027761118501381063939727060587384408119220318915754796341094610001372866783477149517227812908887970226143234912878235021923338465020151341802160385523207412886786476861654139396027331848273615850618010968716627527836724018183664090985446403558722600854966506983535506803398177098168466801687035589464570424913086282060791615105699609219987888727547109718224267193180778119187526376567451712976305075307259069241324090040223082639983435554488019100901060642162587107296250819602271123809781454003062077328110129139951767107499696343594137835086516757925477363177235967134421903531275084426927161842306018247413988077667559584393749715262774393354253994463267967334597601390400100042416260703744822008212597165125174173844119884954434118316008012891956714730846860357565659958509257867006757302328825108332573390770264967516531507217395402298358327318610676065653959858635205940024537566520922066362271015973329974562478345088555963987970011003484604662543889501874787015725208022485531297437646346971789708645108028058314890120735375222912928551204568513603816694413646954145641576728994835584482107410639329153904894737771268274705163640601435928483767589710602960352587889576973483057521042788508697531678771912468559426852559964213311650771281431914840794576016807461630088219848331157096710472659174906679095385791876703963139873790180536882515273116747630667040825343433539485741522544463253145861043146954664145306010799288198940137796239345903966827344012961727954108566052335061095010127129443492249983090277669740176832159584474235572108182291577620620678716859442718626286656105117771377031572320506106020230012807098957678045072804080435774630525594305029552719729451670419532853495497063358171122195954482336965333049494889808801522353228440231320206309385872225537228647073487503151442130849612903192079128507342333631660637630214815646009624819975547906001504572880099755561365103554109622917246313502727888689934797385496088135873085648360572768235313919374824260907398667776459509641164922178044019889030275421053776675771282620849417726744676388509206097744269121730299241903920604759052485012907069093782789517615508938415495859505336128201114914710189228332043097841516005298078994244096306922908179251462588422432317974502675161714372675432170379725173867028755606522853346904659123762537455052968286185030089177289625450042743090861461606186300532282861358912047616666854058605827465495852698628845435582732839780688352125918488272617626449353098067050627758654411044888229851252075346378727842366037373173785573091730537807975970985024522774096893375107316209492285516485940285996576525088029673279382315877984098691684446864529071159201232017119751387292957568805870779759216733782491308203598161428814052382214850782245389644350745453197921681822178460034001977320545433154551001834962241464093037661164261384705095327679412621269401734450458146823331215450934273480205057953741524991905455615998167131688796358457163985984102687349534060226974386796359747739506410053606184456965227420649929363020461333427253254576615415304849967137552008924344650527985810665821969617209970968687789914300555748194175811258333149129232073441451328784501662028964262521242942430350263418538917906950881704631167456709995317044460356927242864632567586149087102800304065677503405583422884414823820932662193026810672219960811247087457330585562175963873925522940987189583179139415374113530125382033736711231281892813376555565720715541407037165163389482610868730840845766284585409177069063753852633445374600956759269002286756382164342037635934938065112379643718253542656397385917440959760124723580832703919268964160635740240431679878061252121995518170746840806176922554583862009599789186351894381233953230229470660741900454257761025912734327444793293868447762353009969575684176946394200406383044743545998016363738867089807908723623747802388998009332360063220339109954378642247421335918831433465932626451282199491482203624435922850757420727252814371731376619027690669461218199608099883678779861606526107837315107955776475443001205810068907987669337904730303306649654494729156531476570673350005113327381280193090717132956154376243070539959240003085427538952093848285268025347944655248560800791860313498771959874612844830640136584598207153303908433526790707016398410119921030226343294315224515735920101426698801471341491601637091564467782641264063272737194870930675630815477781392587403460499685551799816926480798316889621841556466461639302044077482162005381302476065132930666472588846231023618184592708349235278953959707179355746831394491921698020862251431135376764008924082396007538815450574554790458176812874055670559625252704141741320336770977668253038886735608924726985954626975142089958282961249829642886107168814374384482425846017051490373109486524197593310899660831099467018530402276641089279292647656024314319339540082157867020767905740581025629818531934376539284799222125390159948965952589733518872722229138849429983341257389393416280665145344335913419184810207099424182885026200037274981949209850000371977380408795785471751769535778531546775726961297076276293534969829345603335181661798215294371178132038583593051785759871088545314439998378705143240381788620806932593471181482639762659522280196454785946813569559662653881624954398312947933782239605855390687541229220742477833454670337889086004456521528461075668087334668261833423332200357315445015421640289034870318118975620243661399403143129760226351293055797582253316551675095954480304730028028429767401137453194967316330408333056460581920765790775462846549642747040475180210794744533998257313941168839902615584806958971971844984168660619518999993380104955068410521867617428179188363404630451906489000708053105622426782822625931711730613632910383759244236184940549872577320127948099885993461949290487086480109314505912061613626269195098617733225746332858915926541783181665618114444173549863692649823320318175739856480143048942390418573736440649474064705927945264959379080822162653615192467845536101467909056522728105178483152345534362443924891988370784061880815834734219205499600704289058103866882633270964853458460378015153555941859273655976860776621661438470496468194554492927872893663465326228064321961751826363513447465457004480562336167030078856601634032440220525306898826763850325210693737447061608662770408982250415954428793865399260013457762447587909282880135891703309632849782500151090428204583230740467632399067614256739059547092121368337769529839619680706894774377415240290128545264154560365401721007798224464279717747028685805895644083512987940959458796079333850803612811534235043175531057954949237698529495880332730179276364923707350587716592084474576765733956432056759475722918726678265391596300662453068161198086746304433413862819736390773003931294947301775993835225201285568294871413493873978199479097235386664769610184055680987054248997958128037591441711657204450519768610262171732274258768982681248787267024427634189460269984361858829893699384332791790523312289847304705163776803709040928244242685831116411114132765939239214183295539264419163401124732700396859514450040824457350624271463335429934935053278540397256949376663353569161209028725053685988601791090203713596415890993421877828525093911218992655857520966935764045409718545058240576043714569989342773865761897300924419602983314455665836726488186434222185718007039535016721555808471990136631106885438174331800816358643389331885518595682912611846755041103892500848038538712386940470038494200782740830482587141399626011024418204126844969427196139922510125244914516507703095172464428123533481047488248405893378337476779859354919165615307883050808051557229189661620382463140434674757012941539058215419081746346126307530507851394849680115502804395172789228201300650734929856183582807004436844912040362869340091856733937791057093588274535307499438773852762543970778842944821032749294461422109016939274016488295823270560036621234709558341532781333349584107245170945368330554846940348029866915130568261777611590123104953477668340129908621340865677179951796709576049783792471433102544053438960306866048299535499536115258468875781969261640488617512027585740628288040286246133625020511330637458739777511516645966832244784958212748809133282239058768972157952862290900850756674707679749134089082808986499646713135738702337289792466816333822105457547689186678087479437511378524990205075242210786672059007990288450238956977077618389619619771483239412637116305404733716603481509583358208741187700777601389254094552158172560127764854083048514571731118558667586522549552871091864844696138283591859799279528866080440759564234668231965976522707746304226245687809419437276238448690788867247247067841215014947497679646587141694010336342380219277074319535248207406050081239692219878174170765983342017008629214465848020574639157746094396098878003021447306369839582636786100258526876814811068507604974668401851215782300472031186205071459079988090239374459332179696495115139992930795237285898163324996714502670718732334660514340143936351037666644292014375115200829831805444561931146144315291982000262207379711612525900147658053944241331091400236046649016915317341006237759220876027685893180952451325016095222549305489503120831329694918176854954429068496603851817457193441900337592893751844709958582012048360973179321608742702521094014633133830165983833212330758225194269555334867942800174456701142502845769474534520463207153213520492477318162844947341055602248700984865125716616030810792101462444848413523411846380300408532865012177951718048924013192381966815309925074549869365414488037574455740545453870762124016631657196313441625937951156663554769589802660603912898027777319503223113960843728933332949284639265327525624674428183224021826974937075186773384224684574179115148136132337218833640233363602865764008225261710812287379421864543747753521702834797116972845331804423472275721036507568877507105832378018802213901800379915232449986699038204751754837636967007397931342053437960292353667423040657661998673047538645740597791026005013746993984840729043515291199770330766117031157414037514169099677794333751726448945046366695915462792081415106410787018042868651339152604562991473727719731427841780614247965995881689468939458135110673112164847400368593151997207634306454517215328331413697417606726820966243145084463280505590036817464444126870979755228930635423751435257819150009038658501781518264484359470568791590553225580047618321741610918623813061090917027955905248247083689989660690860483595321885621436124100981078496497875136326920693158373169140767337435230775733817997306244627979950881922180058619424713541396150160008871510101782791524418899729516381738856916791327971233044064231058456374077826058311492497116969554117980452007749303842250710625725800751186202144358909187643436094190837547037589097450174175352321204225989169248621305060790601849189885011525784028078102689867704498012183581981010281469975812180680094053090329584665451017504977719128084619799060566132523625628810041308861136745573371068769889361578523680489227340416613027839257148205390155559570886184455499262333953289108575098543818734992219321364968025454218922807809889446457576736168073296442214894721283552466080943830417033862485935495211611911653843709739601212395673079174401900122363945347281510145829229506351896906244014609028779082340748934071114566770219809706748842629860694753629348213877192261639332998335005881522630759618113048283779225715865528890338283113141778522865501808839875418972759094240734267498778743465393990087011966949665658744474967567533391993744795139490370926619803047870497413062326648444058519531475108500071349346086581483356525955372767157005220053746323931044892954374533073557309287759961610027202819133523136864388660392473395939715604435991278660139395844023566250541239303218240750569780614232297721560751525374388044375644475797290417794295598394343275942824655584759195380588053041171298200701799764392469116828726968260885113452246346808531381224999094938699661930027590770357006677711780774454977214945615837277215005880008240108654652206502903592825984006846085233050759487670117913113954311524834467267304608964851741988409050222727095157182553665512938288969547841520880165306372364899266352468063633901297278532634570978433091029612103166248275003602863095292900473808171240653997937293506966485841026696305956573560563954313670342653492493371605984343666507330930612036469847789537237052494595483716336528106305616120149195020633966975954677156381652971991217468540429548305861833609592909008242205963550925426392983910203413041298001863211419730479121119848678172167296622015818638268843617087600754772376122674009124239778858982620909002051644791001072712293832819153120683430783611489332217995495598297469486002871825085546227758598400753895874323448928625796624600534472496310722760243250796862588731330772871456412453217348648183668738566608462624126476172474691722421211297000333362735125311323454959029622922864689450850201042230345009799099419404678881660740315943322341758181770771896905699737189682061435714445725992327607685695723173897470764819871861536814495149745602745416307220235570927677111161767163832746574428155971893044087459844038280570793151288979482152851653262720956576578148077596689303266265542141024807990476886413125332518176490464112411351023552804172130205908369560621057177883460497778136042659027957097730091940582011358218633434919362224662114319108581013704557743691777877858347226390238091835073140590671868025276424540729128789011151203918131099917469432355018791520375606961732637076412982314963937742116289223410849522379930397422561040033692907540419479381296425274015783944538958875975012808411372385091221560119240359788358436719834000004480261933526879735714641161581109717810892168749230710431947368550558342960414657432285234051689137739638723718160000901957609693157580552618627896908353250402869492700676055320549930052109514209271672014706091066721116965475004899698808646861914133582634632563144746722904049536941702920698206750233055106549816426701087905414297223153364100926871009000748111847551641750187109255850755537665823452957487977446466345930422458045815542964334671086971670749737673846123952763753265702354022355013796371287677890895606281499589209748665950616336290176736720403059180105253550810256321814241032292743617744714621564621479428386746752648685492704167573875586069031547592456020207865381215764573216929395111582566017863020594945412845888415740486718486586783780134340758544677684446279939650345659511864144428208872409931880339370009381799886854781027668814778196782653170976479188925379545612229558045708170768477002705844325884185894445248509385354845525289465802732143872330165304991979624379871757789076765179200014343440513865819819527967512347310929759428042801595672463236200588591496511972055864746663226589735114460754617084973940285160294361248883894211989762652453484319878842916322672015984557100309120081533814150415481568733992377528221164863943107995774944983560003451566770852710156186066264593850912584873748808281825875535087025303261684065305533354413005821033988344464945734678232939286099020995390476638329303810719002725133581776239619744495065067089057103539754579216735954298193864412915984527765300193761866549144848668848805173626891561603766837650090883994232737213193751505407103849357378427293001403042051536359350287371304076030833990484914198718754420726978718510086951328762916696805388277788864319199309082486236092800724648906152602538169459650824656389323573661100025104986228565545208418028037818709869127559723496372272863231910500667899586391633651692449436437903600500068853961681693363073130001591443943166490370185447333211981134602755008570977736151440994975930068470045735585268679052760057842532162614527850830582651161814728473319174372203264591779694631928094643436809883859418681994982916886001339344469968947033232378184074228041998642387958905214837333614019843461892601320150403519411159055969284330516796950761487735990612063088028071408780590854983624659277337792082144559641166323958947092416372120878875187515918530442950274422532509092694998876441138976154807974641977347346783584876310456841054847570585736250969577283541018080492936244186951961239022654158765381692686632774201094924708893541376944617848458678415482179975744591072693193112002886272275897662709874247182398759744778296758234957558330877025481636132918215867539203248398860669704913941014644550167310557954368837088235907480707019865659670560904101850877359505653284722186113207305061290878652058834147280993829029639734089189059026842945666021123636017824384289328366366449083292986574516338687325463404913546492788774075013615247954199832731146704477181893890678584519805339431309178706962289015572414274548078243483208704236605043339256376975238913290940190649472746978754604295468208099265742825353170518412926551420324572542972965685482562192266641078696852014041202646396829808597666329094637945126591728103052073284374432253972689031177291173738749611612048307602424661377328413854164634683537992084842846148296792413949243451537508894071877360656065289957277901737501545005117249508510876604526117767073242761241255041643240559627163681813985508434070240612040175775591203486469976488465122749322134900656411814183455269443205967569611284180104161207445236127706547956653706228955280465598134047287337047505380713829335199606894239788203722511139325334999848263613082563249105913156874118311970207400958690154559625626743895874878441806460786889739829711111985604528631674795299935459310272258322587402146102444391294104805674059569911334374669823427008603023027006791871360011769064280433082017505023496488821945489535334184855979728287438123817950093109948047993564822690416048106515398615243059903245776293621955570145201812973762690972088789461468257138923436517963961137993739907122129980964761387920595131574323481539522314085242888183093944714817486679136639980620038808108646321518054835239502327219977629294495458544867069031789583839396980695829905549955982040120412909964063703317890705511464936705715304828170767913957780113725951690810755566299987753633600992771229054203149781996335565130920684986499832382417959812624484843365609421986476460113049498320338962935623149563180325688673595652379062895264431726098651834961284611216191378653446785350491831981358806662050577064345034185360731382562550055728391352824205660258061929645273897504104684498907951443761757929336607606589603527402048648032715917772924579960958482842608166084954018158675829221155734924620211792318114002681882330427317278501408534344767586337786528476051423654725242184581459373595607779016765290161162456715038705663943767056974569899832501967398159481053305721371812519977592209181888078868899358077642858666187402049113232737542429104589224710529792153140867740085173601141391655590326330845469895105698145571385580889113099332503052684072647286524068867267016832081173630336973070224951289197751246052770496435070725670651661783290999001267391232485260377479399034415205769205640972147535846020133330647703502052329773448059742524723132288878802033339437943241368623477529906208673996282987630309312914671809717120981437744322272545732367628142066417484737024234488258672652436803756519237063998410799751865064581284628835960897069059550810014741317771490542586515389507653346336067804935607387527809039593167470897741836877865389949038084193677092731588338700510067712548424724504810590544416632654552316033739604974282476917193755718677353378751540218671696172057384949830532736395551960374361461554000419809944923658115050859786748143631185704078054309056440939118434717905336943745602731338578601408829880681788468350665340273788977460171415222852279776937441968099144722460403993843186860208906676803075555884106072240798667719878568247028953196593679885479472803135665177641433837188357336285995990194389794466915666986995758196440998177833111202598807013874731110379308023214260929417887238298986860929503992482235281162464057837945327197827138791533763608321400475621845662104979015175731255257042274647526199097009033500974148275301777884747274338258713751463603989358602866418408283082185719906985459333503511450436721951990217398326310531791238673448187220401864197786133335848057149188499686023995880427781999392381792958883392184939492729118713679303907580656058870258381163051655086732914263937655284548469206438769568404372379889569712909192478609628263298980279204752355691739990649889052746057509257710380982453299900533273887827318603777686882480065242605734390656657304613317593245067572632360280246013037785197682257702701003703276697874625024500135809082321278482737696792927369012820876007691526668110573823790184784660795612438437794360674161929591974824083632597355819860263680596144663444238989461976976294125726245537665575235668207001550619795798162553765075999964584798399365026280616430341324003885280047343291923447791893370467222370913545689989051255633204182408284907494714917627133244624485826098584284263210886091356236903128153309243542501520762818328253534659175429576087404734063245413483261602253309722029644589066850295994634246156725180308588814829029576825451522071207959946641545361032731654250439591319592756214361879033001196412153035509379103358281952234528110279139848381785927185477960898426832286032710093833741963437409380701457276854978096778089305659149476302735537483608800991935682297815735891521176125275535314571482270733556460457710589912293814773407837438073706773019943632050379163385604912733956553277527555290478126177155695763180141719026087842052280505319392749168520070482605611786487164007874939738585394811599425052539446593762546757562143265086476951483980384821282693518315546953397091387270880122845155508650959903274433789281894651143761154020138425860718189467997739950781764846641681302865178626750903861964334157774888393078743116773156660847099926820761151622771866593878825931019548690952076534143082107931553586473763286209102969213396916825263181265444703316400510500068087351760747681688413251974892445034880354806185026277825779334866163573284219388775223057927783886623846501805806543089421562639157146343817235084602273003519863876338796988850417247591863129176681598120365990867901261525865862275088297832926872057224182749483562225480019743690415140279608684961101323389982934806287670999838090721923710124161261285099242829725426061331653509582027226782800748929164547408532205776611618971964656046444335697117107792159615284442598246434250793164158608821830867075599666318921534249750618851910654125630414549303772857226978965930711354351048677488171939418083800590331190115117844727577621049850747800852456657807574631954597950946317486321751573377406678514920118086035839765163194143629701811084951306793824607498135815914679447560387211033370252188912793450855996325950818521078261882887839282357691381835065337335359451065095589195262283864252122666135416414424008427278867772480866189490408345206268859711903475145802034349293076036103788393150478644688506347080906557812776657666579681925240921692844056463371090102552152837027209689548890646009168099692156997672757930579275177154890713410606151211490124651649820320408409725419241204089492325027845365805510177904600517066586468834173927887812810592795392855793765813672318783073152021369809554587808436044956031155708755725185606950596000164540217831910978946858493003177264723366560313762604805143852355058165449175719705321747524273019548544375933949549010562942369989114475355856548153054936838285171137556618460779620980420980169038357217209998833891585063406251318732497286961490313725362524149947780640678231770769458693806679082080693750564857384880915830212246460558189366367945611163042460466811677389148157395365352312623586646934202054332448837251237573406989327080942228638111928147800622277581233797837298985067743966366021340873927635847258940575581290145152954893621800382911432763465262174750265481260057512925247214239740791117837560199530794296656293697002739661014933681700645684414343118418414027826222121461206631327173769400135135202039390491983274483128053209247885993297477378080980409933833400795524592269564940193070034018307350575340029006076398416487855573331855791621936641898070579213003886518235320718607717388109685148783916661746182079252413260995357167805486452800814040191205727155698049394373901500569426566206694896496036459369719705495580682514039367832538227886899402140188439159174714139637044988976201135312034486371699369356235456062944649936331946305428194732779204082039206539994655447146358842339525939904289786854360239000347524947018215339583965940728267234419893323498681187406121501018581152106421381531222952106530420252902244607333568804998058697774751226326316558232972279977251311593924439820859052758509016198118858208060107601745817109472424808256505751155468913517987921745845834847622215773186242573542637111770382987829522228966560762640069284904052114545059921297947594733453743184869539791307972410951443672655731119557682539202035427540518297433503337245991956142471123563992656884613754950751771968481287292680414338948073511520880387967516739630262639722058874567530606854898734489286623139033687061949760198718239049746800593803323175917270228192550604261260286947136291678760439646828935738902752577945669444337637158022806513585278210349080277308387597865025055615957171934565619303196896034010447791240342711772795573703405301584638065977504001226033272947031193603615753304482354606085455013319651275339001122066393219800660657190946568188621278788741119414195609670067048531271233701719243709680264909839618890804662064377028579619369329468826695479843364050034860536766851761212865680374393664863404490582354726519817842376765182541066896897197992001638771429279629668294148071247455091644331417375297389748102583350208251715698657603633748451318101805515373969012418822322941866924618032968734010306877164224759527514042169467766877105572229194224308123390730893475913154410482451802681297851631689957154290449049716044452095441206853675698620884889943339758733276901087123615645166288496860351393985817083121975294431177877939900760466312302751962824518338924693090619348525350344202316595349166713620893587258167702907614677370978280801100389795012785892072302666790244471912013353068308728806643574061434289192502711629104726520882064738488381601929687482819777750900809867752392986329500485205293887227613593032097808790860974715030167414276575130107399091867987274203347938060761131100908147762716005448174863819161453263286041996647313287122173641997397537244207118003636392909312160300903326997510248916107525631403400778354935042523638561563662027075357196404310892999136921358536072337152820191137818831053093140490199840508483746426186340862066267743749853179143573667050002934391257642989267553853063383707108226017905177943467924949296897178552532794201607907795669687876017693178452697825178010415195461160493809136943085841023554646246572026279000966721293779296178191699338798984850751831826525137016533125039819352838265580872458577574935477600691925345860748947775296974770340950093669973177501499754478686515280097057181874095255616639586879109010602823709640911317793173342571229992815508312578528184731209557634627326908340626883397133195235073770032516684522241239465091563223306917779448743191221201910032491675859374734026489391621662520212143438132295868447174919351545742262889580589447503853022081078602259009916262499783240262032027560869508874026144149610156242122567096882703417047866087258100224970576177817891848415821800421737049779712595031246611750434249253938415325496552125928629709349186333508198977791529749623145478847019089027371492122021780239344107048486865842133251359400834713807234733030465828154793689054310818045719017780719497296333802939706944564727773393939931516193772291104719947154913587270220935321606802082888444725142433778806821680791204200705938619672733087595954542006133487578788405907606858268381103697348972099063638297447314508525612744758463653678884993024839318942041964702212459966470141644622616678466913364905860937268789499692202804916661293658301601826112744890749818704162804656535220948581237470225220149766324455672675191523626572280508547914400776555314182451582063112605594163654787498049972373560104653034308894331966815880002015742407905649410921944656687650381167367212521736320187314463478391326786904218086740437146812781929460346344722689846504481878752288088207611994919870056938269566411402614149800139779537546780898760218951183467384930760965285278368456913638794019826087812311595050049981903716450003800486861016519665109040801696343035558647531603144625690556383731962515602812862810134457247859957215002405785055551502832667629676787123159379375205734758388475769456691170580638489288733616490675583339917387587488220540381679359837109785363731471021492263719037003333538892738935587383079208835809699007788066736567127097783983064446413459401528147643604414787848737444990474974282666633944950771556982678525508218580311101584771042295100842666172752296003648366288330411478744485155531827675146302337904070038924233498122859182928410826807701460158670298463172654778646185026799105056299044137137706412472944796722515667963505408901746862703669671403180173061147393625168860149407421133331018911631295632338231299009157466889898940510021869250519718210190841777625657512235968438416769266854118387392168861123955905219339192446469273458048568809640982414702185992239556885861965282990839164740402959516591219693353933143918353121201985951676648801460023163265718295921551715430392872684723877608995317241362534228719854817004520950114872435689364652063745515062569475755044733487174343135226469207310837299613044022024677536265952521269356593483382484951620779205665250486079859118349036641841869827095168454959890325559279670589462145506325408082621264674247954584728770966544644961562081534015167822021057983157659263884020801660977090775800393856969471665026474206479703769261244125015905046871946182862270003509321488463212909621490911255967822753282087952413579999184179453077566593517212116282291803372857362486670286096700557703846097384755653408748792327621004175791084555550215923960976094335382972059260734867412221082921414684119036967544070327561483528738086052900069336088433750859020540501994867274821066372584743260522781973705288982899106233014503846754026872575720052939740893345395958555082668007799231686556226310621516735567539978112995081255188953615414354292372015000280342085460354322068253348325209804539442553021802921969277641251097377160173608001980651461118106257191750783324304598669851141700440361266235993365900097851115837500041090436802429980771045017523646259057035203886191204567597238554350518145178596006419836641060239650854011770470210494543349189315637258686526287415296072896954958964221464915807852353748863760796663688784810363488623937409948758149181302134693957170266278344341826100553591636005087662775969645470454317163994424658615179887098605101609165314214090353855807664821183772152202744170672949887047093255489280882247658744052009671382747533317176167976385968349619654160679675222274399500204055373051586744293796141871037626811261086387662264878645778549001606540248298066010881767858686909815701946533640870618082724677242607295420379859375724603035807436009127511804442718689534711607533512402462279264599508736426618242067261052924376352249092089780766976682057139239527246567539639598113472406389697086039319546926644730348552152780863921838000017506814035736138657401711039024938389053780389785710413138228441696983627338406135400456679137415350549560192720721265837468801219411155632312279196353714638987903992694345852905151532980946734870994851702967592212388210575872531984655910904511334554233813032183967247051437239805823324320035122237567568182417226883129359025464974869222237826431012811128232985762864035523817213543316656976965381907838707062385154946608028709498779886818290899632739633995781581622988109825165905011207026295451176062673653189672981680524180241636526841339299089516353769847969112809900710410723696652482801004771188841887757187971527239733537302090980235203290705672241846379223372026077836417953803800880053989757283806745532367880337308393213018309356416548955099443060323200079940716296411439365706840201519731283604033959980668391137579668915536792493834471158258528265598275772117095936444555642067098602318792635522282141052696957222833224267496951487764640267382464265554527409344487098988728259536300561952454386885181869386931576621521509183331905387031414575764352408839963421154670533026492601770233024499132910244502740669084447506480076708815111504740005215170281139699070980654558442612014525059412074209870036226838592313339324542209545390985136395680916361246482682460456377018710584998844093253736737601391161450268987367341829549734753826164382224524903281371575475265431054597018259120156453275199278509489422599772345298246078518025877843229668610236477426955006574543083617194182393772627699996296038329787120410483736548466644901140167636531008533483008891597108125634717210694354031526630759394498093086975321643992370759999764866299632457113397873888097986665490432218282832074522427254497534801362772422489197880097471144313141578305602881753629591265955601959320367543976410465463533894438652613528905934950773770169481951139697100733588607382385522142074184882318430327494678905515852237165248841224943547820427614316318289035902730406477191686480579635604393719005665758831685899519214655327347933986529661202353270427530283854507284382065899000878604824575804277082898013751678819745742660436816340646394990522834860365392064651194160152951075442560348984740552101685998892536267734129434932794340479210848649756774477014291533477293502242344788129323410423938403207406665994054202365893197299377201063994732213975603300681406997220362836969938144256107306281842601362846584424220309014588015291198188529330673250181882203758029835808165302263332655655367464716458771951039149153673605232503854158294215830406456181402475526200037252694265372909959125031554456914739700786366366214519599056383276380716209782048832380869474063922935577705399227631253958651538838979359532592107980307560217343607339156414482706769213194519277528637270801811059445295623553060980018827359896029363051560156114771394384611983136390364785593388022138707752527359021265243102692759981737670864073240223342368520245297682171739294559965381012349027538351741079354501051863974741858851888541391611403569012288664520744913415023393676125154173963408193033646986296787543237609112444353534898560408157687962770312804122424786831687145225615578812161809824789690031599222092651914879982088212160278199899068247210990139291655793967264486002032608833061437155936277343818694934175235187049515852225713008018102054824724052081505978809032097140706631363948694507530794506476634150693063853244963915674590990941008268093078218622106271119558946761160467692929777356004694425183966046075594374989305154483411918284113542431349191539674592734216702719346214500173533731713236113234688062045227794372928620870319570415066376507799343554898357776756329039679428966202759942898067372528280944184553667102586132488295074664176525020920781267961464134787636611061677980011959452897101767466306554587013451981350663395736849730951917709225376478831552631647209045165766403917471172504490989452191942132273331239943634495238211634102089518748445858634275977421862279796530357174480485335993730363902972143844909851855320771597250682390392017546274850713666463593271148171122589710549620206594101913850990781272004679009502915522414380687434926442087541920090504408281936884086918687006801923775882021529778769067322354019187876519529427726117665431790122154239664259726606816794993887079442676033106382276909492223910851774306707771985238170230658289010284241078273013377893874902742642280482415530977074854412076825909368552447613620070994113023622560737773281502894659974555512500983205656058247378402684823292846798394608010028672651338016130190805749967228500362200478712386135537449609150264324317697097400875772655276686217156065111622323128682778435644336101879029573999619680095530338861407014967265415667507827962414005953246940167156222864684546476098158135850575901258492702735323605947395129706821211324959046316613498145257619598374403295179999311975426100422289431944802020769251827491840232756255036249626930231552448061520122279877482025928783143216977406065059980098958876682963918169694492487601083813970971615127479575620475216871724190326880275107742959710089649605602012081997464417749000521068935532182725302659677399583345042482530240098808557775578286745112479552720847208399733032712906210236394520105604255263771363436990700914768478582884758417812879695952544716351129512340034368258669564485237735874046194745844626315002794192176497954354688559542537219512339024465185769243500121204376841950606435430267866270169536165367022092094724724751177110977570577660230097679843071653571075774914753694193352632996067868604681840143391206549667685986621686016327367316659112118949125988702083249415630795162337034455423788077695964814254945148810423695745215958296245503431672273525341227567075959107792973822971500746397489845906721467099587956849795616646265468412345727405601449041737559519104801347507701514796821807717667297734815880172366410848100411226901323104458125997685839278397159138968537535551467803896914058719093753292935078613760718324624419613471338723953224007414080605938914303618354290352539036805272301334961029321331892898511233240608081485117442542114852787566236337138663520110479962472842141679693674344477605394329902615630403161986081028876038172032634145694205555574915673006083523241002490462801807753346169697296117445055083190788804883370346009628018581984685673292267089926809490778053115014139546655573558844952972950787756090944803639725917429884974440088708834740255947214401138704169653443692490522665784500828883929423656743088006463057960620879198116581355585843115017962421359999771483355960209765461342450211791172146202238174109871833942363324262396094581510421669697713398797320248206904882258336296151841409667871523955554731882652977296645952922728337117518701218541869134586216473640915342991559447471061152506281442220403557138213959052733469980358053015668445458799754240139448827131367264871538903371376505945832713497530315505355312809585862863879569830547610039469373003001352520353482829033053235728381546458205796623770031649134754926570855641671406061330747716011881991464312628971043710659983764981140864279112723308509484587742427844632083496734957477720716856270481340172992572299333504995161689449109958810432431074399155647126477406751497327851896215595061753057467449709547897750997050398827971802451973055394357153404987196167236019505658804292878790156114109620629372886308490828627201349172442256176608575938048380793167273822888001360926425445836126500600007878158733334045873276456612500349234442150653679535551075516250863734749531580366171637547111067354661251500381676696428895804139692476937775293150207228511881492318280565123271504048401555638615351872583523409730018293021023818389639636248476810477685313951195200690536022672198956763527424906538203760934636873262465447435630591531297853099825017887752392535054314476456337129772794731732435130015230218149943967693155634221081716411875878228158735524761402577944079526744589227612651619449976776835633355862753529593079196074308975006750821030291495714874871363538213094829423696660045773740576245650800268563024301555002352509646039553258579400539035513537935121103958090172608267109555097478756781670511011391568931299870321291916757057060880424324907683348580642623260210269103150744951067055073056069316011029716799279810747050348938944285606737356413620610528526878484534822331205348167038876059823607583449368708379786227958812240870421669437713535847359073671252221118835847323331104023117707750520067506654166218723548366166243999847976640553625680555289610773552300272077521617402410289290819134499802094822013133525792331081807133984880406251195972718662865732348801198188795729117239710096963280306470587726845852217508074879435058219678945197031242351834534776505730530450566852466898573451374990340327675516902854484862253145432373013606313951877792936004553665680518060403985983578391377859310017497722447268347081595251420381395751658686341008183738325651189104522812430703759979874656887668501584278996068812639217651641921819090219460997689489908887347783754530824374106241390228256760975137948177547156755548300343441936180597644596604687702906549341851196259449020914196283447897737838821596593362685536384522299953482872043791705361698615937426248413277292018319147895636635529624386596851412135817840558216433128888639543915764572637878804188910209026677789740318627834662372249033205166243910323692398713098927093388651200942974702031392122589079653994178544133573914669987204417686890609486196137967252550525085631030012041462376983622535744768570393491202359259077759762468807296373004040099138156835640288183928911694502784774098038373785648692393840112631984657930620124831403580368304161076373256369141325993982749141108457412675416294818001868065953859276192577112306473353785550122743287397188466538805759095870614658709564927049270745568756883815647325561175506932156703600041755665966816950779275352495268536433677672713592790270269848279161157937745877930459735411635505852114150429673035133079056431558846036941103705740933899711067135315722264793279876881051417317684567856479392539788252709863480232182886058989186790790139769776554601019310916482669954159338976568305206475961940339002568543308830269972269416334443904343984364212146136407885333069946835486873334682160307398781639213997357182185329738373126186623934764308707389096259892941650524366901837799814658385679705460260868650452706116075588547475293516785424801920166742815044038836077795265632535206606377676401462896400578544939784385826105685993307314111635382870797072635149253491161123870844102966958734304672506426975693363429109318076522367720381361979809550315078844253803904344649928154892844172608443428141439616634580036433233679941060820319715851395674208064229335746804462538531307884715045653255385762305329741154811588247104665745279663825088541549556625404572603241724915374560892365474894719173555288743364210473281865333784889940930729685153312732969902900714150617293895186930494853116132827282689023240362576054560201009588265896315723144237021817128992307814856250916442522543180115775437934299269195011303917519801466013334934855274373765411339116956800316897728896298300875568520613528649578629185684890018694409324849623159476203557122749940391381393272305761808844432169598936456096561868717869637447683579768180083710072988360415994416628057480386449265207574198433527143983901687078541574871793044880874140959309564165266084785504683850056553929379958152037261231771010762841245790507128251142406099206956535508673643865018357733211980244103051380173119430884572023041428253566365517097813503825285397756063364131202305089893080899856547784579175204854650118006441889482374457941907666176505283933839519474287178890603969242757504034601256821039610978589609760783672813213311240786967172714533764530681530595955386201315242549908252415017082276314658927719557550419784976338653277653377724228652631162294674572450069224630372390147976925465954579824078474177799100218466742420671696164275865912402383078478557426781253817699237509549799600269219831740525122402737409952686917271441687889492277059966204390046664855186483877473631885401632801715996440656813680484156152128209601668142687110831417174152889811150218317283581202158500424657520376380376972201608254947461146256379137320414973017372031567164235153957751651243592428694976305315021117648878129480600685250442869489498215986370052936642633028749197195276950365076320342901039168801874485706789959508341541524446465426052268689503544167857573561327058553777008596601274836555365243108629633040576591207793902387015349481412302483893244697512608103830234994987553443775468110978765345263868036583013149156647064769163227957021843594483124067794434010383437433256211467409110452161882941766938577757987601578105116615105597903460081967172095315527930098057662495623360366378182777785205990481117885795826322542207323343040351239548359505041643177104100272755375825033828171990336796713157892863108199865589730568197318719159245247674445866509987027100055999226274884271850495838874596695500550515480289192754865643992380466571032754939922142609379347346172386687547881957890600448134814503867948096887320914557282460385973922627908826320183927859805640735822389862203799577083382127605379921578928408769940639442443488395041914625229725628280554523071201833640375596020869728049799272237840428651801917116855048114287026045193228192142680959939496529137372409008422593576222310084053001835638935621679659902702422867386338253893499575701617217054098382926900469367841552879921448263996753099455875155752916510520913108278967735993040592595621051299329110728175986295388272631209865355658654510886134917047442978631951183769872553351340838886829977077408953461106961451537490352102304546478934182689243695583749118749504082931353285686843513072008442018566974706247265820932521969007642322587973432470453094092715576047966576275886108615183044636502958711047582215616845532490669010050884397250410100773502433271793239756925524234831074126143052018935076037511142735862210905652418633549122565926247573923619053441863282800997657375158981006854710604843993666595435456931483776862042277615502032534331485913543044757525531124552632374754472080428680946019799462691565670469093743944405673407420302504240477226323154914150554748329168322568928477938165057557339668936592770965104338363358427191261273378027549599277841950811569227384624732109415440078505793927335181833137992216059597875084777230038350751969082260159039292882097855908529622927111146335876930296824530157932516137057384258269459714365687985394191505658178483712025243210382833193555627790027613558296217291088938404054313461463843546957819319696592530089774690776980266565130773000502411011386141992188207940927598876025711086377601807078010838666322851354079863276572887001839245619919486666562639868495669275666567002745620578090239465641749845091518496825191530812913449885355258696502504246704934659914301049842836274972230540229785237611820195092920848178104837784663089028322863995146935024807074814656034412886776896521241474316610270301765418902286863518362170325175886519532301451539530587329880329688948487953408492055560354863979736230424997945087590345885711049282258275611903310559956601714926625246077079293668095108312255884306574750684737028514572559549125147412318099204458481420199582589490998757707012398478624309252376755124941287994105562596753954756838132809100124817006428190637795901844629936810869476799427261606660801947821528447918082782584828812666488396528148520696678712259428109354616823003112659671884193464776057670340954695625609487331190689103764615735309386394613461689277913897862890082337800993419958977401442832644136869489351885747939503153783642067428081493500780003959176140481834749024101564591183829985342968664515664076056577265902820767843757686847179615878943602781518317670441025900157720914122578660105906205122842415822266489886547133939001669215917390529528167893941774687270965068772123993158274351765200449768193518515382405863937356808045016035162040544498268241686982200859076844792813880504724980505439977196810025411346630566828876923485857859119207459548975625719554003445576090256748522450214353201905141395861505539583053180668727479039156492997402770392681110426394676505755188465458507759888421834452430869051147448726966371320977118041134689865526959156271077639938357740132501554762428361452572009066532485675110657769281179860684203517593335408821617978244838955767538602509233708326035531141757325507497180649073013841431899676418212161782814368799965568432497217081666074059364436232970663357750802504908820508487743007140170803130413354560643919729324036623572333911480459118351053175050830742854309906561421589807865661916221946242633864506371604461761051839620211342347035412608178963568976868627530275116912724054677391215438805374201785143714317273879231516890019358949939893860105832410842401415938114675476062059272546208965498973839097165061869149735961803368481308587469561868506317219190891161853077852105952400912602501984470491522799799571273718091841107968874309755300523201820690975824082970055760151520844353311374028300203103349624278916326600068782008301047149732019547974221575949571519920389531197545139077790139621097202450206730803124784757849471011632269230034019673556467075010199969595364659767787554561752253555653049945074074215240352718834791561587607316458577410970214016769098019403677205523553733917368183477999658525479609729891880444353692220261332979978437881986735626185714024818302413129447436109862076455805316738221244363285615544795418634910331232702957457690247816176643571130922450723534492209269475207060311660133415427790406701222947379993789802192422535508698308961623052263557272543664923203723582993669443887076262547296840851646096870116774201654408775803775404973609024852368066135740040357179612790628817324796491306784369610083731171238036259382096727315367172439758196392716460690209869018480530476044179650947221098682776623592025465127077920259348332234412129870190226621609675115336684960757434328195511564805677373012393376723562715582119433760409045894533567929913662807287460300479938540474494524518133364610307122141221186572663176780315713703624936062126376129234123570486236004411254328307206434772808221996607105370700607862014702597754596414399887737078215610586636450890538530922749810906908041091825907170637271211857054838080779164691777626259090299296040590626315951381347625672977780626182630058088740935710941944774614200094854215722678781124337494880225727761765960192502426758016801770724240055137094700948372518564148626816800114237299697486532528313926118930513316948680233870298674855349902063711871717139228028979873816184526400743106096355508555005990062950179843219268344898370827106614340675101240469413254943446422209206714560465668679807500964683563920425628638631894428111179364300895090871817100442949720492089543398215296941286814691612712355196648804410120540756949822127167182736650096936502299834104942428237505955615324235829292079207480463637030462126579955738507460670438091541971069360586127974288838728010976962634598273531580146065779481183589561953228678520040706722090281241678128988871583588114481887488044166978138252299302135552300061386274034161070074372993627812901828294283658608225845951236785075568458882868789533237151566410829122488573193987556002132068255967905448853708782293876295255236940214390060004283439047409204356619837098727897015229223038683083049166165263230836162724868656707386028897188411720778817895495822525129843731392573882883114389636905022335973178559394551574643442145392259541541386091056219991195387714266828049792562889998535309193264915435160745236632566525612733982049027250922264176064506647685566501602397155880784606742472198930776007616824739152725013508244620745808768462605875848405110095227506305199958113873867183019571753476571298442391079066435449941428448039296109933707878216615922543495275658525491445574415693266208198064032209143808689486730431588105703502330191190126327963797015819525641762075361367213076951339829644143067088331679716114126927752796027825741344523690026775769796353728310809664427513676043154761259416635391919238783936764634442021988668822346256829981818247218610226531623205180023639016809806247272506209560836357538420712018127223661450541648978932357454087967041999922224971104685093798885522536997028236242992798076938083981159268961585190694353416082050789396423569882309331606393606059654309469175973084348260683113007534363499552522113892398371313173973369036508118073931512833244407867680785250248544981019455115671840128340144450776560349272880313361038618136983780511231421137440652591848442930710804427795329509683364612683769989751541640317694676171163438671063246069576280300655376988227929314090685033872099434809856105702582896378410336108492569282241723318069464372678139291645477357158632638006244842582386927561114042869304658309181905374874663686670969240350309871077456673576179644840586279875665810799784793094409710688316114941597361702968091140326319631135301909707191780405902329433111363184593266256411694655481434045349742810085608317155729173289213147151389644009991091528380496378887753908311122686365731174386609353478469592966657414645843213257274488886800216221237011551748377313792526471685401712509306646802560964614180131671586648445662275749662961996371014103862627318149565971064181812305943807620261960578537630696147693690665997301002836530023379898385414889709290741201866964302836152609895062442147399969030350402738513559904496464600767495626136361573304503004030685318519393335448114491296608286071209587855372031519557328620039096352669639938129180576713706084909741276902415651417436859878918546755121874359091968792649736686320623232983736544872210567854694534735613937642422341920891706518767421468781047431888242603188941353746153878339528859028567548228690135924199558964401873690572890620427744951713422190269218497684167420863971929755172342479289767969457394345688764387575129849946180999951649019584394439537485978526237276815955701341422257717734943372467828684235559870226276889084629898109491469529629933281452889918305526098835617868379174140773902103572049443397940656718613583630285108122937277883942376464815194010460565865328730524577471489488072116296414341788039975042510199051216659198825275668312082191440533469132655974855791656257672000443453247843397941014714108768953180044265826680669248373426319794573160502614755642838790551754065741156933559779783255208877598093726878911326046803157692378038705271892742927466207047634652074394018933436744934466761776688052744008759755583226613539171816058806564685032034026714868779405539316948785608214386152675664478922730694984457229629334318012204394884239374487350934926196482283428279228385221340126091580235319416747594731726908805353350539852943082923997776083540308012469204687763114258305589745880852056671133070625931977822728038877093355999789868992803110947033183401683996592147006531804947097700608600408073158313792230059017892049602629004910037878983916523046939488263928053386282354104347541492329266717458459291292874058797825143840321316305380898676503501873842005142167119093293930254894903278858059583169483248256717834619435079897474164024438237532519818748895856994535707671104246193063217531530795826394995891325829465342693230024444329561736499784920346732156904139914723007373904877803691551897207903745351427574808629047085585676669403990892411433125560407483124117309653939302888238023708247287500457394222534052987011265495297753597342173742242881744310386344645426878213074502382061752938445411174849694278872705343194940037639323318721561880138431837707311737093176444240956727215560278365427005275118064404147929079912706701059809280204734164397827760088853205676099539936547795701169983682031550636997824463332517689257541432115078410568828169378326684323105460972774061243723113305196284618995089015019152132213173206309373632981027672489080940470398480103616108824167245133960170156092243914858608450092041964369893644758634007276702291648262531188807101425657763704562317351958091038644525370896834209330558092290583106410399517270009329921416975892598504815239978975172686247294294420961059953184338118973125247913449297709602697643360166308096340724800139230380789772134819116917431682208428356720321021197011503473987541023593817698099400847203096146922654110180745425209172074375296850033273567012342759538349222638952843018616057849386092180725577254187819840301222946109499515441959176835326825744131841260704823818639716817292677149090332184870452544622171816759558239501834528902612532893817536148662257102866268936086666493396876692452764975068516732330899622498720492932229900274902173397973895805881986980659941789428120046952231838114295354950561039418058537956582230821821731925037588729556009510994757785855289780004180248529748022558202752751698209142382845403387286196289920736367016035305165804560981401193847241767525875843086795374121058618964180645064553365070265994171957567736205988485454289240429221021529258524670857810261628087602361802512158217773890358213944812917523373186455064784732116230704669415980311396904950109188588156247640598073807504948665084120515624194891679631524579975783268896214058734345197469771388950934749159549741410955121910900075675839220534896455940262568619814417442303675184886962708598622210905173146861873702388175980624282425120587924631656005449570691744985638454647318120013441873753892566770829950444623198425892321080587000471059411886094407721043627586497060177738963310830893977012662824423819465666422609595894554925287559121803420848413846861827681770255038843138479097566430097929066434765109706465466817486785492178473219815334656386420156288761737013342064842180610204252234750306836370260857616175181100353222990537967139314933445124970658932536582787010794468640005628329145752332702554299068182750091563039711822088915473153209506074633486486800883103546581782037636918744079766788578915073726358647702438301285070083743975707029245579675110932232687923606865209170075483445193355773459651149839274200943821469400413015238236471252999895804222103083515091360108774926553557262042249169413325041409624140458023656379627155991771180729719502063858787217291328207411984099419069676216110392748821593559732337056137322597875367055582563433275262052898813598088589653106433178383789644191435219733874607018786846693947307069297106313107274018731317086041072266656416384082823730246512086736112952948161370324969962606208058746663586730751541594475011663801460087885406805494163329452433836186285871003014667810279829617571701405486062505684493260665625242781215523142176017349333957428064474425510545460584752782273474871293329114856812438197846986307771457321212396505333981969118360128621780147650530596034459404474124348326889387544737726252485385442575196866812926967528653317495866775751586657065608671182229013890832645719803783102521316502983592658250484071192476898388772986366641728904918000398299654324045566072838987505310475109289851057802490266627948748644728074909373152689946535830895460308108167907674243194192577583176766258927174897961765468332343860717969010108878581597877199160929470413642905284414014390482981821662178092783986914853055944064563394816271815532927030140165288753924790270957106881048175021862316917692034782479661671708060061044419326631839334381534492253568717993795995651467027985301253701614799126981628791621431842492722961102699286046771509667290991909520953464361833715838545430255473692570220862754177211849573079609749479681697892836259095615204772844489396986411234236613854282043502622993504507177697503914336993545399359538337157087360905958317892616059931788853911616461846484686305543958222288516455114584213185075570173785466528983320637041568336765869741642174625471746804006800146497382489102795635859093302092992217320878873171977642350071719583093213836611278666732630637573009477840453806017813814893816295287765088815986145851952066767234566805174406700787894682625720086580879046943173467236384682033004813837696720564878289670070142665793046395222575715849922456473246090883882065085628821591680897479074639363941951668186250087647861570051849923470094869699887905801246469670362152546502410208198519513807225753699616854927440158175803985018275967513591544003776634830869243361487883807192651735512479833144918736157733585666859178571146146274838227296392569773216001868102142142651033567233556386327873881101994746482532932881952532247981666787354918851296389945302212486302153622150236033649806302271424795977642533849623213179526568360000299725065560481230599681709821982325243946672802759925782169594737245544377481111153980510446456284109390357471115912888091304864991219363305329763793490915677401744352096739629782188675267177934671943427199873715083537547544621311211279172017586842304379681785740146750956558234793404990191813934033517369228637331819944387712435527751909339624422907879737539251596232389398864428316850706714225342452475253642651267611278228997764386289539256796541887547036023004294941818876337966220339546913628755288041087822586998411623647809551275150973503226096915422410222074819877312036848403183413849192247321247784678189326658808886232201120557607861180777907342459285497792678228048459590656410415259474005025361670067823460605622235702863497436244962440758520928860448662911822329754796315975236746587663631171203188814240856223775083820854240723273771363881015323284720010942889885321378609092581610399284617948712885753502332335164281027841415138898069899231145283668578318644963522241998948290477222147845232899535984923978731626556339834800500645491522278539747074741722437879405217910894493052276023232219097149401784992894536236679393995670536856547416786860525266262331028665863041340278161097687110712462045965269671397771077227674159866204647055682327642723301623264637677544719734360726468126819942549140689157370753422535529063343679853039691931209391127781658665869054500976310676936954817192999260903414563167430379481884167504523622159863570334454410720743529167353728042189465842828697953402702456167814605686713564159983167164345271753326070701958630661371911488991156765085782862443384311267929945763018916886222749283075235097511098520172890533828049705974764513962622395131427278454404391946925565924137071078561355869376137220669872810702475056354412915353641937612555735776773742208013192426048073855861485561609378438721051651156164867212227396156963870168448675054911533066883347082967895260235271866110092858013229774040947100301144878435265650633299473659160663361387846973332175874232386982005210153322450610625633155664612294561197293954209788725856643788807736823318472621716939595041551575076594764393647918328672762280576207036506325969846971437051478418790274073498170679627312863499539297756052729482630439878407041461829913871261065799690541034447655732573483250855755057995689441454901475227440914111143688347741637886865976480873871507233258443869808045859724744822874495924020928030384639773238503990313093081254691650868670353972515496283106801087106301622454845680697710512790718981258288983043286460660053034247624826324992500531776820421685847896585596468631243997015932232651042814922469972624135173171116265901457428286386540285351215848668307875285736079639222175702900486162460654990887635716988110464016606166405367694529346284213985879461080613065287161097947979004649845145188177257944654476464112131025216703095358972427860985899724243267689150447319529623973605517127903422721137839036779996253656328251904832543862922961459376295563552630317399968663013524570100870820698668933811348962539574686423536353613519422740330128902487729595006138070219790389885195883342333655485587873141144551243236092791177531946631413024463318431281565367333899781219353700709018229292103608445405178680628892819835339389791717124476460880455857225014511327787044784878887514650919349515107739021840486390074138642411948080606899473254522804207252871150391797794066927567895923051784255793999683819285894858777202519866213632669749820575723731743414309229339371130791713058164614693027517429880192967150417191753367417509501839941376524788232463991407521271822959045135866102592173935287928337646512097543070161095323725443333387433763158490279460905640292166894643642188937420179889712664780565945087366638435605797948812570750292322989262209353004756195969281458438785796362191298855406397592981606633981270792599129511537484800736974615015059744513018862381054879066568000050793886096008903487566519505407991596177115107688737255444615497383227057759532592350830278203649360895147104443127550748922917273223645605768335528936301264823481818417200624442444956105534877273644666974872068023744490337449312260970343748930661822334851535047650611172656779089873925110390206263703513945455838268101816562677174489397014776946844286140075653306041852210370260530116699165203496370916169618249730637719958266730483605577816918430843360049547970059358962268040252131156607469053861606507656583218162004771183694066552175790712675042861043618778410383746481374479763134643661296595680523749190252939827209076813015878014056540280533106230118207294291695753520496133522053707070273368695888307856521320949854446708229760293426013259271785590578925846426872946066328702771915371025934835566100977431429641595909902080974538184342624579977829516150237097581572256795865012832380276709556375298254163590071296774671988946126686522585224848630503575654955424600396250425026663616267452592268882998886771310126139768776121610389685771800897714130804340128601491925259476884784672486918773968024213892599666991614459382752887806915036289638644045286534648412160551627950266421085722739539443982587722593713925752639040853379339891333136468379604739337722079352728677092754135655504496973538980424370004859834127973650418752684551341770079489424909480018691070848773659999865725135059952653941240767980656971410941850326365193958959698430475726562505625093188156884055120639036407623335652940726898162612791482764394140763415780229136145686237561900284861652743461805931491805898080623605438076047209498743238888648968737699619501818580943496216719605379912035219532460531247845096303309553808921364447199329336325424470169239071411063081148753503605463853526083576851134237795894569289523924047250847388114665754221272466373991791464943709569018484697642828844689158174589735380857233476038168221520201390771754909698399635113331336649062518587627918068408400218502623406204505091687847702694420321210388585610318240140604446942572977300759355611675478111149514438351523139320080510940948318742655537375588832838379444706097020120142575074377776580082422089139018858763155856638641006370308902487537270790544165173870337826837524894300151257609240001167625773047475933784767464673701221314171909457036546221777281764397617448362575351621945817251077567007001981244902894195452793430696077487321934674604745115793737392844939480531716674281527367943984827459883425187077432590224802033374918244203773461813734064976509911720355066523557645877313561177144079459616264817498920792478195369375384109557990632623255840369017639070875969610696362294522132990073521782854793844920061957948986782798366262944307012055645997397386333261196718209201674131148363838454384559815611519205634865133540389819523463090329836148983192747413309379132195906626280823642614828338642519514456218672752079656009290898966985948442025011208293884784468413119288947727065339778226346652460139465449563383981274384443066150966827547443115386694527778248245545018616694346588328691934957210631967142184724033297756021626110666219278783122920349679574596965515940882636952524421036964445539001214487478747105229313294621119999056330153065826600969145839760806709005504646650939776005670056015275622663298052433363144430244892593095137599741062494040985703037038344274067024846524724378808125531127650088671550842235512052641994402821528208883972595853879600304615909359612775078987314865860515528308832662788228709991639135292560327107849710858875225146722959843540340318928127225623083747739127231659424626776867476590562217026293552923124706895969810258949194989271873834152009584297755040607353852210332251127840552941956926046935299329938458255379963726033790854698884943584514440011833075113702675579809788705940492940732843113433652777940488105540814871422394750572021144828174206834020205549951250832502584795136145122388543488466470479773856137280396679569267495200614553192556454488750712530745558224208678519198494926929066541993233943302486020166410324462862061936747349770970445022035581750663739143851528541532138170560926513364387261801047833220824051511677723877610272691335496517143315471701227700240033431765482414860358790142759902632904146031250023116154595304002420123427722213723308596221118281403301741487516557535135887466956200014418455365103278372529439472083082239529338781585513412130827600213640899942181164263570434329297676809112664180212652096189647990320715087798298704981692930793393884853908231472202285971876147059950014535432486544009948901810691555578100691136049250199242458157245396984428805639701648020710917132443469076014742554693711654247626347373875563760914995988209345431184548824785904041141476700123469690679715175279372081288828372679708462928264621924586228056691622553085121730847793082636331707455879265646125228214825072688258314140637460709998668392500882083706495407534615388471837623441966720969088010327089970058177181509614886061113815313035508825755620885324497101601881172040308806784667008550516267629794415953311428077352877939905633592928430526996943730746730232667327815166276286344527257230802311906261019945378381042448615346386292557401847111895140709979118120934103570086259773842341483084677965019537848190011396293469425897053702469643870066053289048692090500223000529411247362545753770355217425789093645088438878538077633408607900816717436165909586043782207798049078351415216727089752303541351602047302506198420833828249747318161244871622948216586017881167725036133390606660117767594347787076539050519218942899312299035362535972072463941595137751280054194531166268820677748426019393786486469311802863943402916339116876425677826988027507219788234305221041354775458908398228990294273229202521982325743875394561376099171020235638166476953394687014250220604374299869004182875971621798392783764888951915977490040304377327641456609479400494164033915465746992707562999016753137153987065401641578377794689773424451623354106121332506435139298526964577422241307374716455190237663150644332429230129337713526447701506656366521289615488552322272263185181132631928215761560041603073958749561538534603296582514104511287173023611392030752363917053650822182283845648271877108309230944754157083924660947270344506846443018094510608194265546822552657121153755887570215813221001010914983547039065154730964942692476627884560755992444640486978764422552634936093111043242026802455856967930032345039290161390439621344613966828328087002478010248801920072348779190511693112060147351113972867621862661238759850674740082217838643521526891969919954830460507892155554414470991783257673338887865521471251570706302818432218533328965409706893611330129182433198438404094202828871134298161090415935109488702363625655321626277680961151804916991485332048044928929846185502976291376938238877718320559445533360670504794842490855945861215361927220655801471207309307494090573315358279516034539787992964926565489182475216273754233150568319125029423354948437416878515810484872702569880901100137630613020394293439609444161595410539893620203900045028673280693008000882280348290401479646785236681921893482435839667641962832470959590823431291410328760082157988684792340437167029752825609999992916617249245016310979471649945864692157132990377533769503703156389935689048914124614471118839896757600875327756144672714219026503991418929968779545120139524109177056256810829271334641042329849030921775410726300259208709902672201953358284598593320735014700471752327234237244381421626789598065590165191146500015392116174673906928427707463147264750802491992395461171296226990906187280495977649943580588987150953256997359692005196754078423872069178990520379839141351026895136421253837049153906744823899847855902178023491360886985951866311553936181785508553837546264022394948323993579815661066166783552633490415056425231447626103097599057984058964818834507627783761810071587779295904863861947506650066404644990810718771634434720902306308040678110508288445224956486717584367425827241574963508758227335322266439706088813629371217761418970998460488585756747116365621689517314837159540557761960661802444996108779013802803625002578603522481974626512107292825850495649595653604615187760434663060338546648226389603652236535144367734854356363220725054453683633534962771020240317011730717999128598286701097322515954986223376339645300550493399942212274765806758840019117450912448612070486426883412844397993200845697533908033067927748261932323841675841492400096975901529091889276920874749015418552893068718923133031730506418203726249802586891304244365896950078412248807877064534351329277739771479509496921332235497414944709038239475983939294777897917081570590762526855336362729821542866655076721876893256285944138924399478064507074243814400904095164518318483482270827724834094056112286134847019852900453994691877831734283201253545783068321935840432225180788632248520314309055495639249905788827814938907576865130042969260474633019867306127839576874101649136870695076059511361784261419903018130350495432789157681379415814768508045422744387507960342361745477492708877866323013753130928389705741562633791322963307646353468059989847286146531182420112940482311262575762570976920819594237392773886696746369861197530130392854091249701871289543134466885587107949936391267616798268534536993827462440095306517493640006086386500464370370740469232428940482215798382012162049404572512990788235399656907633442586212354254310722007670591438215685517234347042756193367080780581857039755571365347899970465391396128489771218476319604750303272476102888698599667662245553063194053660740085226399869026976678359403089744468989067903888421802784129820197516876140076023548638824934157666917423973184107139355795735577955081900106605956775423493090959169215065250794006774466226425640682446970644909356387209688136969579289543133263769660289623739078225634683640983330439283395925431611437793461236135143470427473644919473826931084300996041485474903322271030754575567750645976719953615517070010991870847182787178964171623786634769211998080542312689764797974396078255948550039801864424547770959307997127650233013153935268323950214444104223657591754537594009345059969304605846812373671569544845855444185254465537043140985936611273849239594933495224161937775672300993670044946325171757527286170686555632642469866969724895440693611960710387235403722339032915309352742518635676014854763740796352768081308599248842635112718044477014243612001521726780582929384707724764828039061473801970175387458930740480698661961690303276550515374012725762590509326846385439196569609542024780493778101009804106592575740989250110904862745135279983562725605939002419271924758134303761663020295248122490349132532041177866562219797612485578893246937091447515873291567386444983001916967764732395521920242509374592233579258677312726032087017404259015454456447317413268814639822588271185576017610859855490489557044402888782560099559743092473406866980456588409100642989970805905070373436866107825364657471613950390851962216433538830225976159911341624429810076218791079101552996402859759259009358617636938358380502345971037783975304250438137964327949718747915914361383341257284079653564402110955830172827445900837697164668734475105477842760072792961097539544305917577813097008432200378142414737865580197782935262566087564004601633166654783282013206532718828444843659149714628727569660896747756734858007906795591250388623814607578142502039037166592594651459202246575311158990071899186789572351828056559291560467927124198480475503666665480561836780742197468925879355815012624697086974762038250945841527714942648741704633068038014648167887773146351025637148597788186529566915779439107715277389107653679591592060765673984150305481038117121000604708238705565675460613334843413438742185953841300915752188177887106989538545687678687281813245119138716601195977082984464201521616959659556624863143053680361892236649485316156642690529171773965139922560966995094124970092200237628519778380926959340925945118784390291583104260913353773215352548801565076031316940366102871545234473609250984025082397288918241262695010359771960015085064645205155214144049393572288482816757102035734653289304210987740743914106609961999429667766287064810052729376914328258892550622934731232043500447734073202853049616537371808471635496175372431821487495363514359368376286068916593136595116953145902874776198180128230091296484075081303148006489602993132503138616965591640194734704229423495364814787745986003699636164307105334479246354129275787803139691848650169917036754469810553982649188909321171226054362297069109598818606639343849890787893317436838386391775996874440249101754562222854418187395686448037159655323389646207541675520452993918583056406176511071576055483330005766392086625204478323115865725745850893053959381867633093289156925469583512953437555716871489657904424099055409322073926360767265232133571195162387294119346561567830808404677855405665418692058037671271373798216730565687672293759126898106011981298152840218009186593895155280767082397685576311619606213586889374594215155054952101303548789866903159382616282921083130621360943317521216394806718587774869036774989814270200267485189098407125060081476407715208297202456196816330493334935486989552463983902585476247383119851279289391781517935956964744074745176868247767845489654553306255627227994042921146667796348023014920267779844279235885937225029025327688983721906935844968800652080431311759095239585084528980063436704327527083170726725829580204251216807299460757372835270420660196284364971317857497984961614946841508379336092508581144430491107630238254936455337053190314857486157078499140165409188470269131177720392021883264936626278720736009892677581442296890163485729479249385846429202024512623241776786985370355311851894337743394438307653120644877853198847351841154740720555896761620678854065219626723857299812390499461761419560851261622430155334705549911056648583518827312264932496063849449537017739883286619141878794656043709679684433114257922139809627459257399438346826676779401095181053117075818230736743221975006954896963060967269462503794655310400579242805282106488077941805233813561651904845036643166278252404081152521473526753433967283400053757481858645591525570663268235394611973910898469190768675559820846174094390731412664283713093835930718301381790961482943232991652524221712146298209108879756924390759054824779988224610196701333895984662476825419991434136502083360127117214679522648534399552189171406939618283190291332144099915203634937512714416136391664029580857401242828396742394594708309954135133320219271991369187084189110574629771450168754976736247260785587798034602526928369065776189416494064305030368222854775589993665818656960171584820167638358779151335603871951696540180091064435720766340091110852583840849361527451842124227793616821232341534925115597173497429277681757102182824688897661513790295178251173577361194446863360989553715034639105056772825448561634040823382698067805663964592727179587593070572519881386510292911692116427958850041143904362220751130085411270815348799930166008040249414432295747689667424549383322259892506967845618546075451745363785851685446919401081966136920142002812828450729351776938469354178676115409885814435905311658438660943324866430298980581655505379561343635254343400914911196082571136026305942754425618910891008962758753385489572153365364885705089970998627092068863070853259649332137490829580912328474548358018091041669841931400462733206914740840932944653169713699137225060352965314260293566071436809806854669357266978064037941798202354758071298010744327994396155690318092388448244676645092157764496879819988987749458606115776263533095538473569477069759850597403410978570267895423150776666015478905841378358964681020139798502586360178032060666632797568945932003976260817196871035126830297134108929525882521468098376368998034008402022128306700371585400855197133350959017444653543206825803956575322519144187037757938218181816749241071528770355061069909892009725412796092827126406850015456434799818944215397990899921923133385847266669267492636610399474059400311972484103175904482182084343214097501514660231950166392311366094436627448571050950140825982342922215663818319598890340562756622637682094118893420491795329483563003627560987596069355580059723812432305744236504212001059924529347248381646314862943466303060519032148409360807423093691445976207029189408267162922567947605885688122581845923858627388401003847015526856593066955936742040385107776951692262099476513089644711095156651219872393993525023113752334940614430844230899131486871946460010334407975028471264545971517396001611224071365701546932996754056045228539430995158007672924966527461276496819121282033926410709038598673040709749268406688671142544662525611608900840238625226586803031402833536035104457004828898286143219654679806945346105786606546703984380212452136050157448101897630118901989301879545073808712210558066440352895227001551614717874741530113182853435002213608832929369684555283870756126281393606145897887597758539026895708461298563160278186910408524458610324364743561035202348736181023721825901094961536876483010910573594375417216108084960559577063605023873302404838768524800989343969238664616291133144125514991738804497435604310957459940886687610855607013011172204848082918153625645270444324147649381785433485042471936855131378787585082350385786294743277060729421599968992432308848789242978953560527040627052852540051852549272259858555622260440244445646753530583611776739011573459502604718290639372276385221372479168160806232516113174916655906392292790437424624401015760777172856225180882490535982856171032633399446354397701798407995707084703001396190274982359049272682497407971008910395383020188235867754410021593215206274952504012438478081139592406740222114859929582405915228669470200595312719116228933934995701751740334845394224954867923661303135430194907408343041238308176983691102124053380365360367930153868001167568243528629226337386684039930183994854238031352765338980998244318942207902635785367296674751980761747857988305748437948073583464510355891127080303382166871110336681532723570970883037324510384752030097835938500365259581294087389600556935624690961229296713352884212926146605446997669895364655160138847499668201486055726460653022199356557598158038428756493133304956157432989469921544372528568080801029638492865968448491200142603185697918589185224918300869407810038781447644719575667528857831460537487206972602723231608538409592333529592143871508619634190856848258904369098058664587028667764806226118667416190343467797230828132822222233116045468698735358058395954226486320779978076373476867666074602282045727256572306239430670437463643472369659928378122387220090313362408610617189058824856591797521517885026684144196210388838362886081884437275655803651951972445852935805656843853126696964765192876961109113939651019984626560601659808823710635737147602491025147382205948402557720696458509554092255949329984027911436465176610033992605389025287061756489422154956542691235140310227231114084990466259987256014405125773262437199101612376750840692001396505489050521625241846345970697769028984235268063551053540447766037930205347402501363707864061726905794817240930933611364205978453053350996943751377234912217320978663348292863020243126730946178795157598487972980912986691570006109713025477784216973533343244091489412353641840339183059423733556825542401096087543474556723830946779394953388940735173844738409754221414981819949445109784572304508016592527438503351349501632311033476593484527407243973460117369498585121153307939785846910275916960099490883453057663562444908284639569638489330010606659644454779562733385995001390207557527530143282018041968269525194306362162960768832262188728163714985309089136637781946320368169215732394793548437289370511999205086869811805832141275927048938029168280601086161598471201980092016980790735046984698368100563463121313729821933435117861956327218740358827409774523576944997697648155990570265874502943603970950693760809212377017719278591981733775530963768940667041931587947044205518772195831996825905638404298563447836243790446689421507715020903152730294132035696699055352950720216177456319309644802049307691632044752148977580727974687486586663464437865732598550450870297135366101459415854166383064965183431798985512769938279190441520670221622365025852713304662572930959311208996798347134910319286105411865517514933882049306151785344709036832249284554934843119747946298971934071821728697075430602010621862244785238822195062460862627048382206186791019163293525884164098773155179398123669260902621061223117524556231585181450929801891098255834091516264816323163424412821380059590606811061763418942925053541580986958589907731466774926873227420239292330127890194356252360660137564825945472097763062910026449952013216195789322605946064731692350133010498980444024037858405098852996462951948352009425037932666729636566443478903049894715108354209479920793495539225962845105837736321030310441967769022841234214044493457381778809391005182524320379536915679050821397095246593670282097336737137843645564189935826604558194129834968091922826615120028030629940658518382959565983125021162164051457575150377675691541919093940364702674436516098009612536812712783294645044905975877711711048733176647837645178886705406544205140088852352733444898820283790354389506170440602578331824712358649771813382887070271124759041954076433201847430251558152621664715308215112765636900125000749413822363748933602337011331704469886253761230873466352699595089996257445233216775465578484799869908210363253151113320972851051671494296191157735632137281568518138159766225383895577581208501562095094119588813372977730221704319168641589419310713804760957278872399139746940788039648253725402125342880291500154766620120468491516141772420614788438551212210604253065606033298675293179151375987294600310921642570407820421478350349471111876934383160961641934101878581559176791192338375238540728274366419833524795572203301454511580488736024326350927658223755728079008218947251560593361182790893958239029991926998587598625907741423748397186571834394076192437527999857831877532906107808254923221435315369037657748724076571674552388864707651138235234873274302625285930174156146813801915115113327629735181877370423936266516792199509207102812366005754819791143955172435810507021002015001800175903164360716368947432796652373732616229117160342108744806894808567606814247698834290822521485285857945643734632814493061997235410958979601074217165947125983672057355262883490788005903406067087005603302783612663083731513268263634630426133924750400918167983620284003555991430654145094577893552483755725048845793933529847189523112932118203118868953090570195540403203080795687754892936638736026478840832177658287710974802927127365278966670983391263141453057964550090637857569810442999363924802019912433960953272699926584791304025353518635776529960748548789474241879735774252536839352444350193324983871413532077929541385568088665606808637664673273116012019770342606915610029080111608393567542357163492180573584268666901029887745129282892429538813585286657650263722231144530234793541701764080620239309192840289491725893199782594959110569066868394940438855187044535396717949770977460782758128608978051003064314012339680966267774871390017863390935487351187379523112445937920342760336307295223194865469973958398647828727170906276642938661397515641663769875988664752860885263742358918812427164708930880236282687916991928924208025720336746509020805549257652132684382890410551644929184303510844754397720846231078801406999305335536201373002377504103724755163668318487307993235561395179077298051155351870762134948309482305794151927501997325258608844678756646543138360589635757526964966033820014546823489032496438948394125105968031645461962144735876166583020198237973792947890218155225017361989031868579695468910961107430437290518030084139952890060553393553145991588983928031629244635839122509642898452668219825312009852644503473865133245278005205103718345939388830555715444729631014655913431786871562381612456553282536132772043032246420231306412851537041779144710625309166779908395980846691944948495097127455408621153256546703984102347855863390167426049584611366133802097642181800938178018907221914177113772612386679625302751406067664572283184386649326734444398236042238476616810189504006750516438051343145641362256090391046285144086301649981390151977406217188681509200835442456453011118579619150843851253002879924788066437342399145479415006371894039992815849923756877104988063477275947391294401192834521987395941794718874113161294751868929549357334927455231296371775139864175525469279486400208983411607830075892818976011763596681727496202783251153950076434398630241374352350450991432122548967994439477744783523971372224113972515378767859434013447455122422216985895174139410014404476258315677053256146334308092653923707753819246535909044380128316429987534641354343612955440389384178380104821379613497978489646266389462418665634484839148568028026291280490934180472692754809530454992622396222144818063572688885801459137135663099288747629792159993408192521865211533819443360943617196403234873085187494100496390289339711738623908472400539131573628838213572113378694931753532476354255627164740030826487154641478648172772724785065140552724477789195984455132905174701775190898266194378734544696403833375371203471292701833682000055972536646093614829627795238940091647782404031798158000862178721401824688601753352299259393508029015586920999235376146065253659390593540992826417262529790336799465843311865752486189363166187031663213236945560973119172687798122400780132635127538396886166389451030421858752643646208544670344328196349423767801948775277503982054063739102082456645362124013458186920090504578455988820109122106336331117993807005762185831115886651239476659230899971287248694839379977306991485001485863359016710158488247418023242784704573151794360506413847963398197959303425564016605994923314535271850950220822053074063094163673542012555521190779982571687845983731011719923444177312333905962858889248705473565421775256211514788738016409383002995605680529932751657966508734714257819403223712410773039957875438676779859585526308958275161811485030584452866019273102218503848177745700805349205666109467687606727953899535719893841803445866489721766116843865085656303758032741033629384269600913243844485458842351821027006907616287332487046507112927011930298277189218172459136137243254211839242722539896294142841490037757541934643441448536128677441721074188083795038976932569951629346666455110914514033084774892914166541344687807242901553274469218694758511293152711454117813551829831518486815065733959893610126076858855690858613147120106680541532017034355066815260429835075097658077502707444276786376796611685405768198615133428535182387374932834491967992055447035838323250414247574142795169594546245812310850800607303308902406480635629353363991931759163771573054046398653964419003721170716439364507450846789427395654792284816168474046973817563905760896798492562453011056065070211570859275402307729684726965557632027265530664943646024034838941134896618891521212894694626209522915496538278206423219999350936800890067705129610847265459543057439119051463200557272427994644718915972268488052377587873032805420601034804077364023084403080993709439619775206152864241480447522144755467979822386673069262669654758530989522596092265531523452162940884078800036238807328822121048618283244251435568714537309679356872984002094277732862879976624520058310851296194826517118918286198879878841718292490283074472789191987183911953515407329024559146288395068252395137963351976449553346472967425882021362664258932952450600838146000202008906983983550197342756236410796311836409980599321037405007747256859386133571843012175957346634348916536419794723049460045483626038018868546843143654454858078737404967106836781964834790764348158246539515840725824224651128345912757176737090308177156712248955651797554307777298331783973781441694587547197295917729287019022604612213451673836020706019958192991226674219113549924238020190548480329778907005099785778753912847701199224115969926306020827068940609367775717834945580574325975248936423921355224759731386103040898474070765902594144285190054307912800787883546422501576532970049017372695733158115771488122499434285907252336187608224720642354577348801745198999375243340075874220439188201704772280067421034575019910896931021845814357235047069190635981382790111436058227283635550562841581861858434820643529326369131309319152166066985804703974557148176352374516840948848223844433592473713260774656057843600722437125426979776126360376986443537635021923654941454478481897136909500806073713433920523115343253244521719337560930810127964112350806487262657429888577894937220758988921775425656404737695611782794685755650796460593333809811363950174507674675466929626524986662211573276980931980267704981622587347295712024799155015428023826536646397529777965278230011067041883268852752304947174977035887580610942087297166950164058787043356624292792175147097822327126513315106061049469982563644229410458958753580791113725657746931533547627684145833479493094489062568002998564087920720939044302108268304878517058720512675197009081540999417567520102513547242953529361921333724353608375476710993376066733545920454281438546118518145050758738210917730412127530449222252583979796980361819376912087054924728429471699316589787000897415141776273092063255998495596277218573844698107348425185014948202350882999311903082382711914490112507230021083520996684992025563621441634805378642676334345968394283401766522645749434785434951280456538254256157987674517979713873056825471102356947305430751188120405971809151080803268164893773119702925713695862944319058875558548666480173353524270532149027173731909918002742769499390808941406350999497156970256120440173871882615639625850932452411051894283732361734911043700455496243796944715882197185592688566106043692542328467413818471909068539840746132246272442611265685411094388533951854298835347601273446977974863238183195925412280173504751779996085356161788018208746278732474708907294773491418314065564766240671398251342902497718697092246778633557143610312730331896314692425125017999698460249383035750277318488007901679702437293996055343536410333427742419036038804859915043459583935248942891072265524305893321516242429517889297167412299182750878245520927863548178249959312471600131323194496672300035786880301106764075112173162266429104998197552163981563398612699382088189254624020437368836097632975959272196497926042281828256636775483706921936678555763436620490364960776808110227245893308768139023694006258520961560853712158194447622763775364664108502857735502170691689299570628884007606421695516758934750349653777179096221684792907811110853694387011634839102446209097470922266119137664929830409679650354265458448941565592993332459931579933554135679409216424491482290915820353794027299549856301881473180558609925440510554461335225672600875025500262199602765247194063588550073765433567893042286423751106993973529030794561265076769367853617899750584523896931040293338289765025460180191240554277387137488188251632302091080404123495097401841206686383478396808345924785988793555537894084330870723503917153188949982716634010683939792389360091049537100158962001925393040688895448673056284656185450146555771287559994935977744950651404160782787828745282267729126061685209089689632725988017343930693015504159392106569035824581833411980609668986555179134471641699992243443882056229627858559912703775241498926240593206532836619184715315325948555260239937807208388827699585139287696669702942586541657238627387949698691702719530252150681635251966498721470941676682867584573867552613722733085702933694870296200298048661856466025643864106316909791791225801751189607370220092300085772520005817652247067056000568016236430006455510147716296365896103707869161969509976040474791646127020200462727980327484137306492798364862430422956427590520187843948341318243114923432525478490233356130246706078069734836004961738368541860009686873959279758948539202501737933781028400934967060753001391715786213177174342084787849981070781747988705306934155819671084229646176564526248997936391744784469942035863870788626505111799578360548160747225206226575469196131887420193824412684487826019085338563963952468711972181478936321819905351672326087867510356658548370857961310806513526201039495335525001840417250066591420457863654346475836988552093471844649548326896839787109742314775580041040952640706101877215468678020810854925431132074624680884163702059206006774941396080724525030215014989167517379530317269111155395067601838998315287482629068403305922195573088301456000829170580308983405007624218431227854623825296907091246934845657644371022936778208181499690541496990023902455753042225113569006652267100466670176518498203777016651155030502501948257538219345709403273646269501630375055715488157086037761475956343845502757985257715564487048620167335346230760953532866245502708929349954587962622949149659623600632684442384597172935386719914059752125901769797943450474290077823129541730685420613112738339522677213018557124007214944041803084593520522807838431828355047554757650309589591570982193529418217583042586447881294593975543462702195206457184380364959273870515610520549754909459161181663047387802398176811274722735377567981981733934762716053682659549093980684345812029342507805159423722670768755424830361239723731069056124309234556039925854135185462360080070227218709361485279803398529235613667660374796142003256100959874408152361671922347359416082448058757504932839177927461516846854658732069106602949501505758747661370101208568249445466376306176788307076650002308022456458230300925464069227070739199385856122447149313567118593693080128909972040037447484116625416889946442299032814417258890784899144229680394798403448077500813475469252392359950746855189323730355307446714301940322835501542676992240070947132734113126863980145928339639916133159647209227899457071122639210581168388277302020255920953633728404578416541243575622502305122481447301020461152168994741226793664341966784107890928284957780334694406943723981086590931558815377702271459204072655862280689251352522108976641123927818673778738422283151893469186140155720527112653445348346797534584908059441891167186973178951744370106136968578766166561929878730800724510266469020618163611876537317928807551324506820725927749716129811527093755470541443570974759311081879490554182367311459121077703881092119543798593877305146630023698651986089221760892616737879942063137606620765751596508837019689394566427336480730569089065376886944734605205322773074566871910320963290253348385256331515779242983440003222588844834870929590434354492830933904980783413690477647321762468120365975472539947409883206403522113378087861917852466722765430238394340859621033894002479031493424152313437401013362009869245818683949558307613685762366278962462434510201747609353295205081012911521752871752047280196579888237535523328084002529779748826346658787663256289119578805353620487098584205132235214469318940100875853429416740797733722615338202912868629134837840004333518242922124704185217881860989869181920223062196510096084473722223123108262651531947220914017695377815717917225419356947118758057392854721686721108417315539286701524694372450571415658184767641758510817919209000857390505789725346663142554710066516584706855580331865674341788746505703465419586258783764764278459459951360562474598320403049846941918694525437355332585912183878360173663673011840240894420563441123824114908631558608051290851233326250673884010264463258403234260915703169360387021500399177725247250963115430204467133233774530453455724828976903787605010954426238543965117493515210879486084348188184143459964458047774389564539333803368710861496203895242135277288172811748770339249927143705386960782016020096708887342923823289796152169389004973454996138541403507477891981310278146813872717652371697168885605724663964270316305164894181693901021039136555726730767444702219804702474612868979379233934865316983046827923922193658219710327994552232515788476089600927945171092251795074605147510949065091786681669029370798329927446527842292934386943997058938717586639331574384541884801293830929451826918744271453131675059867212255153241487518522101524620162950863960885451465861874089819498888160986291865472450691572455400563193810288473751116542325954885588992393321417393863981991850839335846969051710748984694406154023238615413270966290083403622034843355457879101610003418983023599912459442287538753794729784567093124409539501774326081693718971815391182299876279066394443265808354598540360236672096738369367588622499593147535868553863024816897268852737364911798490905137088179538735780255282486793592121864234687266338973629117930721983758031407020784249931183455263306732313257021720900158960949395702315841827825921024503602014898724595694685176112332718771913357217857084311401585076693956277512284271101740512631041656481680692605944638012909323766694405977080498105891853494010791303414438449173984823258704261307825267297363011608931503725520526223651963918921589064837842729868271401141670374763392049395703819560048554448899507990928952092426652401786656817716007522074779165900357080697235513637897660618948178525454122911331525644028805360729086027932300272311081337485329026029608696624227353585963611352890919052264278543449031866286156660494852764031745506371207405296308148738266858418869191548194871873026358495417331780154788357980297082940646925043502036727423067671281599537698624396014933518187890737640561545879331193425787714775810774239397061381230469492107032796768890627603645082884631935329082879829116670303664988662096338482506734977175747919513727897448579367114756273739699314183178645533726171885024045270767798991360984637071455263101390013871786184580055658797712555430819164062030618884740314057740579582136482736199058962040824358450919060259807021097463820474584312951631097481351120828776505672031702064481339644185874345723479732503958260490614011737145450787944575882841366005046909828876063298309256727903784120336801991397369116331076897107438383682193598475663316829154491460996225987962466017911265244259543738915823368280764685126138284222050647544454614644367751566341825035092839625216558929029854398831467480880635452061421467067199514327791983838494473811389575083159332246508859739951972718320364722683528142599272066676087710424556024057047909387663590810116773420106693290141350401912718516514924720189763312095859770434755174636772610624469466333681960352345427310091226678445810579849772735336799822379717884650004685976539615829559847248031871135872634448490974917710594912324312327543033254983537143338222615635247082070554784670109773393415832644194424005779287305636260703160939421874921950934672678638901136607211041130861733152647011738098997217367984578394458526534079832258576144768288180845692354994238173283259182227281178736944588337044496841813335757935408341764957946153484020605826766470267426332260768811340260496825378821668640911209961054596732282264551058993361549077603349414775313768437164741388492750895226403498062317977774283375647812751406723754234476062806130566152051685548345595771645670018529004859539631706829708530764770313261546397311610742342035561620721833670677261309424219271417852310363731073220986788510982101436737633679054955756534904736171897773624300087293374562967379768036750759147834604989992528732819294741917654678576414697115570152898229338532472549418925372555457745379768732745622185976109402610601482804583868654728038859559131232003529947381336098881206566785511175615773658218015797386672052551309345181828974720856475742743591934919731352092559362347941799155911464217723985158393773868210758786956348600796541208955579175166605437145707245644399297955167132219198964794407284246526099861363507242127699650072532904932143028239271921623096702834724479430109499221051158032556148613719146713411655425194107762984174022423572192332665372074902427085885968084892339914410016323105344455641105485079909428272262700022999354820572416159204444622856069494527665454544941267593260245194317588836304634433292113547878121800504826531718691126516270684957132672307634117080538865975574567693972776464591682822390745794028481429757758289641694981795354860579642750939802853232019659567820510662133691280803026442714724079989279711276310345536891006554462174555354222162020602100552259669620553451653148538679252189475457141049683380622567246722193915829711380519082368266813120202227917628538601086649889879322073613624915493162109638729000329416129706169142051543121783996308597001603127925115468967338462763859446192270799502255929316960229719067574925958140885845881252411244849411237641113872704363209440751153216569713392452986648938924945319215589966790042978934187803555197636535856386358831342126757399802086596504563604798178887071508281034901915061582253883429918640576784286087326055640748293553338482693393693196367559565206293460421954731882803692786522298809163100649844965256751511934096593229177282380115688100204841333781348324214839395156894475310392827732222363610748460740635880497570869732238993741246316216505274714316504641093038762128913311024623535656664262217451111452353054560541932049536853483306028613598515021237807478671749931020624324968776146564837355635543613785230637352560098597456089040246186499596750581909749273082511123871051948170146188069969138475838463489430280804312223574092735119870659508928053268583058506678120975744988692664084636295308914612100086468661533518960728468261053653274364257102386266806662789413352174198484466257207152856698520061231219470168642385977578019823010180616657995752500308394883148248611166320924016303410525119578892448845865257088107939341085846913777083601440276658113097315037380571003441508681970408328723395357924790124009097135163068505886107924258444774180554840988632673867453640711756038671918687908834644471311217616233388539008469784143946669714073042681678500929472725277709953749574062283739984749633917201567597380552340564050334403230118811934578211648816893937903229111101132691119542228608687216625646190825772733128700780840308525586340253751559425298567883100923414899847021418691042414465190311454564653642610475872123196658762097880666805066942572487400049037727345826280360769753468682720281277647495063993542259777211542522411864824655555327096318192264445322231520084394831662628129646502234776384863586910810126944246807528267722735789704273609613984264045744994292524055324876909499519627219465273242091886004314461904056506712264958144932913949016427999113535555607481920282332078892672604247738603664827357032837207997821768541194275558503373936824940898401367929059865426424427547096267618673693851969324939200726317485108222094567958168313162809040439195238347639857384001638323780636599314741258330964394301819469123824413581947875777700379226487593361014272889820220036341007184474363804741689196501965094503405865454657947193097444126412647134891808857534415963233267773679195304155373626033780533746518308529734931904775508986005967033397062295557452738478323984573552413008448473094357777619514732323433920383801385467469038630105698995932262778012808103366620753171565079392544620076525834163128171466828095889303762527604096869616953513793630924186168866678342344011206850061424073955168068265277033307878457531422545790460210995444232073871556275596068436369296109725617482758543686557282722337119658803317303861024955921437043102690629713411789767805258359321562814876540999673984275078210999865071070863126013520621699531828843824197647149037904012037025989137252974445285723102940620089025024667939124616904788828073233152710936248399799198512762987118860413122170833788680149636644292102407516344937891354145010640935623839427630283904189984072309139396708486720172322389814627318597594972094225395169551153694961426500285870849237686536912991827030588820652947294590865922746638409174096368340472979430831759807497384760616178957982844248315158857127535383910423833716562910620541908550315394319970504858275839979114748155039879375542669243050543106948793668825211315753338059904359097211703943237113458922413276620089369846535678448900461866124750817091688192201570593378117588488216253136495990624433648307283494516877318217532243262112532067497889271506182812709496454114526365842156441926419847204474156073840621131267823778380467024801642115200288390102727808058856913782940234376204536061563733983960085044624037181488843910498195493218596865920706788429269532590444922054800393350089662318127918474276540810401154773830251811648222872951633065230716401984156500453211890980244953542326667039874739077090797868873240741772676238627991592936891177887584330863876115361956662665501451464723700312220728761439115159442067266850680206452983108233470786178719136976158821549307963301141703825949277935233668451994365202320788514290403367167746498621371774285511915943321218737723157302760887572107746125814429058602716750449124929339517804515826902142818508903551542150603185727814598068565380708775893251394388922426078633839415717463561226796363397863982878861598924136634837861763547117856902585973137039763268861351695297963308349816833781834378943767379270183780161555317846136779261122284354442350480639007841234922939662527337588676764834548509500581941875977771370685754647980942375180533868794832956465103489474682445788631294642386064871065831938495341825437531432430202807657380084998560515439905355640100780018856316819734094768076038534437397314028523172623884326020345855042338952591982908442311847399368760085623486341522161924862274059388522818891841151421739246200369375287403405510338562676254273288137644871039007086329047787864794616418236481671554414378937096143943805445836550613714883257515716599991504720388626373765340195576299066084517839709017460015658680008559043975565323286445880581584321982643497754760945986179945855639296069313093815037241539586993112414535293122332319576867607777731803681623862703520715553282726364020359102988203171003879540544391025209782996272584343784041143885136224964838116355606653859763788690907097646563345150811579985069433592912638388549910999812043324551148817917146697750516979416469332462401002597489931881137604235262637669836591239544268879540891687203382386400415058543666403771642124126662291439761286777593358363399075370158593826530263488056922450901403963375383063815488081346696823119226268892857722268792440553370634900648950232337319546726024321828948921790778557710696726511432341882944800689929314813988031278278503000597107938101012709669197719621575407776946753940794152703703817890319633639877164996559826826392807437389116006248049072919548935376613432116214527979416533769470304610113906640246482078297623271444041704110031499983227543587901331609339879616626822635620656766815380446585359848961246858639628063898105147924072598085448193186203244419141655849777082250830451123507800230925017996601821189501717653077790163926638015751615887065312986105637251003993404673554665973982780114487588225366278826995125523665234738221871344672203322527200499010326073896118917976849720235023972435166534349976375230725476218146896220526250297338168607600798109160155088411739543350997982533659458215131671803689127201783462630885243543107518548707046715776207970156734883178090006196599452384025079531111096957195643534899881237273787520017059142451722550972025019387568768682075081331571042414650188349055782436065964924308260035601439931677993938328770903190516011273914019406848454145386306805050564847316538253036260203444743181605014299316124493971843115656069390234286875831438961887434615890482837582514935994056256160070631050941157293884247229423038893731205591721860411067173666568721563588899462469609589898081101783827636050881635687357625390016245643329533853370146655913475956225740654690373026229075755439184197044848823055081976564156287403667548307559805814388513024665121418183091613473484698024862639294333254341220540250497845778453392176067241476266621493406537131485647200887629628176901560086816656741907285426737153671301648504993451857306269805020812079669767429731929471222525704371254990110674146389920885578266754279177687970460897755131561848873445385502926391109699728311191078723809322608312635088361791437124325348064652118256696860044937451628786579919474817170402106358527458343202808487688359984377986724512377079468457379618421561330785199619658228909570942563390087316784258574935046250019467830354184441213342926836857601920039309147438958207882504853738045151796226512224651996941317024098951606445615599443386354594517554546348177580756219564312518643281283638095171320276517649695406340042221536862181154510247128650677102726878891219454237674555960620523574944257645534168607929522716664409344372256667331189650363475127428472290745708951335856404525255253320991769531807497837479296400442399624249846792241344196645547268620340537791716561503940138359339330918135477841437053860669551701709992280705006208413039128297501355886985489182806906826475522516166973290721879199012256259112224478785787166206275212069555953684809643862625943498934652760096270757746477739674048596063106842853638929929928019671701895687722252346873931679070133707609847514501356695153522617876492264786551605242154891018200469996739697522395576792350557866957271697695592477396433481593370744111195494181275438746778329621882305489217989351413530038625323653208270069467179037068285620478279921381859946307692579010803014505794382130034368550886161431838858288377287346409698434310288935803832460090906830362285365369869432292243773812370962894212069393491776819285153300034863109360916808409160915232071207063826622897167781623703637068226327072927110071644387640416075123824630902221410131493782476727460200789800404572638597885306106350338023919145351826490811285032324599846505905721887023675425481403121815445059165977426330485729300531190504058847959307306588841304721588525827556897076540664787017724736056793646675501961391902195764299008591662223190844690527323325985276206229994475427735205989063734116101553633754607385044894251020724639730672926929632524781411812886900126845418411414307667756651608474891526980769741146051395617476974749798943605459605696940024134615927751464364323021578639657067941534067112711027397121245677454781207084218552710508773614558578773874799976904443313355106306810834364963727103736855483732249378182873366837317756939072581019530375926581040700378846545478440507264137922913513450348199512817585754301525575459351983666304127092516141026216930711276130719232386110305874194655331046373922141641694513143112935271821424814163982975140248533319835927192851563667792783059318791416645646648396006144015143559583259139683979668830965789306285344978504130802013371303976957426383496848531629585152020616324339483952816057006785689992139558267265011993610589702856184797037087688118567797105214815366810051303642101268734909295866310560362343688635656296124497273876922330643485067342449638014080643043351604421795796453426894894302306809230831016986502650621331974617994990445003377998225170623146349816732037448150903844270518222745822650036368909052377251349904391594721018502786378101620868998793183689140708316300208967126366877303922981979826343818355173349815607997478504488073596430947518475575328603177659462974039903044418827341603202070713517803443439213916755505026835221945523190583408619283058981248265827546964594839130762584400323540087700314006710868637037870236754795897201350218778069563187903975924150284855082352922484784764524392982190761358456372939187957474655980712508156188431225610292767583024214962757539137082406035106517396452452514263440197441332371702181219505013639246372740620796055757527391399359769531518256390375284289183189328193135413037313940899863386342753528753635626279096798873787157418944863771136643041857410600721518475379691167122223578747031354388803272476797555010513477221777553418881454267748909066737753847782144626572051177892344853430603602392630445337143350046136290094145710204417701675447237132211717113376347796888269466403966739399469028421281819903018219356630658449569713804891940741934151468121027244417055573719303200833908970545047678555312999028526688683772315956314652740800200840355599774502507139210835232971716843947724128235924544409084494655327022935007649612589848533821810122943791452850093901293346362314039675552269588328048189907527672010213861904939178893350026770251215648629893202831644056924758741084445392411751092676252778378162232791948061195112978782444788932946476320951347138894942541840200320237543924892099875858411934075516224177618538251997889699336213687348002885588964961851200320112859542140204632358178103321886880257322228814640916001138897304557073756194505721796465228167794339489722531782494899239426079445043093777166479535011506474322122533448280933836767674935521426174392748848488525950747287526045960516640847277470760592662737773845864022722317513951237911123017478439589818993551454178462149788145392427091091935514268467138090555100758791654928184451331510547258810661441596868846636732913150804454387499200411099715997524185657543148253467826911221623985709934507385633496834756684556399618126735314326916503101074253561809762917611907314998269643048509346959152920557672751185942879321209611631162145097238979999588955800027680997523219174139859160106393702654238136059831292773849445532791407316602599877562419233270708054265951767393897494830222188954926189213120390004759396111063103635652341153237740735683325406317784240404621830363700563087448913766825193263808194168201974477992172395240747378146463355130221040114532906155942567016535425969603963334226490086234312358567794766690816464328333342154943365749868509352892526533851374068176261055678663747564362502312077161146265595445257537974703507340688944928892057521800998559755090052241552958680058915269105658033123803908466167873589640723111627665062443633708443245281325077246165909492041164657366340472691593528309102384928329734658081714633394797817536656493192163067274867774189341500414711547832747213421609505733945730379340765801580005851497941192202003082861100933057533150552484244603085105981866252762648492407561604748052170014262931667082202036667584316826698540071055299856110447293759425164330090125481843433320178258750173699116203602341058555418851092740171023150444685221000091884297676433359266159903346220042440576906859063666122826054773366946413929884895408354868999129701921067618330267286665531054167649568876186414787571745531156488044518938631328750271176293652154116839497696868601548183704840866072465181473963047050314886066343210573165415544218579391425871734240380276025986683305811940305262861090358515627663622770543993884649585381391185993676796255858606602010531580427958881419040145025467822859222505000657205551490365777694465216170323537781148537732085041776960504553241919708651469442267525535535311932037614170927007409096550175614663399803189400946164715286455735728043493774088724924307872087945072677708078773144238852634460153847938390109569804781046880273772094742804631926134692404506621976248659122393521842920493548097119388147076076659941746419101609067558829255653120917907504919718155290006201260330265548984843055124327608617172661019999300498680201308546363710126429765884667172884849477281485266586045646937759991438386807403255645512979959386109036920993270688913466538626561262635482945668028074119516533134033002202607527764196441635752218295046928270259683864889757120052830934805719818754122679954147344121925541337253991474096223708694000019659923092424184791186768910728493659858210434842531550332237825637158066348155847415895945618530449066935475160381500444531526561569015401922389774388992188719673441725362012648512282238986956394593080080156200138284044125451286273439842276596306995268796049329105748452086526940377863120381811231694914509200558073013651521499887411377614504427903509421077033578141268862333341431904954574676406100564007751779483591355430248791731490254518671411515298428377657292536225381205182703942972145490200065522168573802939526098605879241625492844138154525721983722687380225338104289640524678701518222069119597771228407604001976813953126039010456915376953576321306244186438409639475367944293448926292548455383009856626461877722477087794899730795089178542054081087602413583667755195007498963083645944342611785369420467440043080356199189447501578784575131689780456851617056078484986339847848297495197891277650722175286033514806733619605624085413627335012649404236532238608531500415585655475040674167814689141309416046166492304323321065566995760534816275109705414718096169417828742172718376859901358765648296105878761324531307432076821451976916275806597744714633900774798041689939563484186722717425521319534547728096849279996161284672324930039589993779765327335143195079343674074545140827605141893841442157134927563683146003789802359255794997061644481885144798292019819106382051625227905327311952170895242893763073950984065948997294548161781743915929814613494262241382206444564311927065101859283669976916680268291390412237154873953644740451790039404147624748621187426726108663159017173380161955011392988526598082205880090074973001131313640442484552810029920486341242377272139091988919057880625427571819626293182601465989705834836181055208095036341931727835869858014737516552106284987533755040298418202020225559501901091740515176169518682252029033595912587987084988356539674042619360616970761411844254360763913043280877496648877610993767338193151502960158452108898691674307343645384590170687917653750572359868138801678573256180516316043836232102259387676576393887275034167668321650173823617034838191550683080036882314902128404467780632156267675432511555800558986416699116183207659695346079559545144637917630365320354911450273443230393705858545606667625604117365927809169461431334955195245395076458377461728176764226332887421229499187707101072235390926235178781656924633366329199017626377176860321357708925080433079827932855536023373929721540961597051778141388426595083273871910893424335140025308366515966004416161450245635589841577046896759052695500893061859280052782210650643674320710562117448288891237979285425048423213221473725508701388808738710364112417710405264464464542642371438374006984448848808804779196427742715297441124532214419553952598007000544344791915103003186521676751609836038757550991076405818034309799079311990066608710155919318675076607875004341696608634491026224224289242556895552348310603568777596195127042531274430280118904437177639293599602831550032423961476115604298963734042133387381722380540239739625551556130150415310355756983908256091997145286843424573252561005383922682639364444662865348031964263479575605235641034764166825857866669234028023917773872359782138153129675426457152264837357299814578467114405673007112174788148915735527694402957793305468665070912520424738096064338063089171779845220459835128710728667802868575211413789322283146506400371134970462795274791079857117785104380139272711531112807044044750970685863214919681091217134829957669185494706502035036333583711791385787174219299375555144465682238674672687340675950447024156244825345813443754304693415421351207829851164069734826908897003947073436636583263434927288032916101299491505610197506100329688289424447164401549068803002194618953162405849792663003983501253539397204546876399767239531429714423934427580058747202174031015126282891933150491898380440223876918790384195214625864140289926314901798508178778537489933820425873859256951578045833578262438212807137706572345279415938918520910309976193213480152347382479178143180576631419779111531418991697238225319971075300660739090033577599437873548074458222302902344924535701867368022672579908875603642013746467538238674702016387875307123157475752246740097970034343697028448940213887095219925031406656466982896765952722818061863240702086104218645450459669853785402732444572990394157197614160026297533419508928643277172949012448299223496091779451408580322762949358920103902650505106899241068317732130166403468496372391233555408545135679639623033260657889035624992830997158026384926636698226166404469004856648551255244099472234938154101975328809119806487251756699839442197719455355111632139673069424176045572032076005381197557127866517580956093830327518623738638932414101527252175780573059337509212704762375621472602923439646112878285800752379435535159412134626047747481657114124904468734875629523151516748830829237163884854455942811309695259584616873638682465514589353987665338524355295762743699065503489991180676718368277394380676673458118997826611243710911470048899729594543976732864188983721440004441794126218981238392302840505107831244150811995778478888737539612902653473617659170408417047896392779163232714182280128390724193595645409480257003056141056712247051144193892384410589656457024615127250179637323828345580107915281362810271671913364785552144556401946462579806797892183138128892151761432729635720526392162147898558208476640251955837562228500008075710730078810624998741965169376488679407073679279349295865782621612545731424195013187020649403548239840194581492763089411235386284362797803209694437082734686702745632391862135850795447589918518807266027612927716641333019995694221044515472625049952388968257055808666207925833836120861251295647604808972327649113732426264317003739810859693430656734432697371491232522427537209732152813238203099627070615390643648392499786325062232670321339377641414846452104616809817506897942074589275942158864835397091169093085817254177322487796616283656733977662312601542113055457139446488830667642952908379570187049085725287016630944586593814865320406690274849870508739305160070527484843386584076163007434949981899971289337972625088883471679049617318044582933634003321974374331137335753092762210914741888155006662020710042438625169921954861837591560654520964440680990737499366574596659109663825238188234508202144801278095758969992283178381858239418346191871404641747253444562250643553210692047653361940013463119631640515462288611632931947558493553316500807331376624205713474564559960514306410237167244038365507926897830598213868166809181830097777700244379517574088421553993386284148346770983431957943304042773571772684419801827723308256024420566519105817485930236318692479304505965473242552374429915988620773886612058040590202337946518381804379452374579999274473451082362768448739528989204553963693657247358141138962535993662670825800689190766724524730140232231073923562245298593112119276574734791198444004133351612858774189885328102928051758820069348084489137445069046633123331068096472348305846779535884610787770079040863948052371600545278602974568931284265305687258452650258227790109862577889833832428260192555018099205256190406055451459897679927019426620701479318223659060192648531536560650701165066937654796138068656409505273744350600618401302194277016523596617269582601009347373184835761445436426203848870995429335173748001122671930508085249647132802559632909155138581768318765183230487786532039258092829490337429797266814349066477416338144056871980641280144496273462576193459620760354596183180331251921042356241584400112829943923215411903079354722929136618836605242102760483589955732431281503215066093794331878020839992292140079217520697495204202228638118851784305615115286223838930322890630830364926891704640005058526551268979555649629752276385188095269492258842653599729084485554231899939994692498976712733858304223598240402456329108349223822904851412359909658770945488721499678073457596821126700306178978806889603126192641646133133649711311166287896314316297921883992271878167900847316822806052527634219512777365512480430610017084283640183953922927965160687945626896269532658608090581192822939320548624326458314129940865836276305503633988690855228370410020344364027739245063561510850014609014354528742704297048891457624254144397730055982608739330189907415510716677192460195639920763395843341569731574783073560602122562668057737244072020321070065177948107657703674183626099879932922329889028140945929752218120249281184680394095548845552335916390327782402094032471578458275011455697328857629647963998871156269458983209225231480243676440313242517864487619438028773614319761373766468570905001517238363673186121804489881214903540611129653556372826350148579004902619054228657525939344603703951402243096767172306489800311951485992086876990576696802554808137643802360215647008039725713406715632227414575468389757216725082280298075238203434361787575438331537408192693444469708468999359327614902943142070482477537546866435656771550636034046968012112140618461297463429629162833158271183247700251962221972955728386211341279659339529348734341230760591410019788132060232591866631517902988799350857949592923809134928267271454325939335944074129504604605637285066177035106003356529025967901432814851769964815009514571818966520289921624682654376020787336981069809326556528755891409687965258061571227211972908996917992002598206522687022954032734539194553197786944768513628803663013684484390198512921302402370563573221976914126432005951364703893440736178979354861462975143092045234916781420060495641785924420544586185514268431142430485972693682057149859658101856041084567203264201084351297934395061961227088937785556429376988068973135521327973051338769983587620746741730627534048615689582851926119930662752803866167696553240310172047910234906939029476307608586533198199924529165252091785679186353533717343467262228370261758245049624164509904858784260056035674175838234637408057392333161955115091588179129026988275025756960240377668374165680317482677103544058213371150982046209455258090344388238196869850951970869816085044907145674923934724672575968949604824897289985811989286386617494059104361853779535419170747351154161848852525787083054390958516873684715210119816551756810337194524751799241476453528042673180325877047196170167472253422600525397020862305002312753386305692089876183711582304242057618277004320768256518446884826361810109704391453763322814472285586850173951781325205425553326645886000965567640385437075621275689758963833046887055435206570845407401352937695684836030251745359621146804422240907609692250934231392047778080233019748273592166766764260711245930788187753646009421040134450928785454315548172674648039543824234640927904208729141810795975761863216368522104039550555705982585870250649780052555230316220929816944852209796530344996612164106726176415871632519809630654080028970136755271691620625334000277914592854173838335827126309350754598708173437480422120059861794357871966816798300498308681757147780997519121327306554318694482357896508683169781596127411448329956136038739973701826172480394216834110518608890193899543508714114112500986065911740737708040965692963145591335003030761986560467232659254626829901386317573775993690793911750565283850654491896732574925267876221008228226457034193787526643871693489448254517995272320353699249768088327187493916351472999996236214852277069811505306453101402350431924519114431981946699166213562969269536443410994634030513501234847484648674327326979765361312370373743542705416968355108008233594082193435192351203530573724634284917786769375331993200603560260747094239440080125773457559849968936692509534337378582231992790294227286798353176069958214734895980991700143754542706672645627860196950876531938285754689546227573057294530366162391669866917508553190964763256796962036771069929805607743294436267915187028440282064334716329993333530070472508510927353541429650949076377357430297385959787815818642835510948892453472419581562696316331131576045100504940009386107987294618907638151317195941348761959910595942706680095227493790161775897188697820167882775302311084853744778363851467710056353875705349111557412259427964598659658586408482803487973263572032729567659285874401105009338738100747407991020225946534377628483547367089153359643502931297988960096434599051144099716969847760528412003084598082951214664145166343544398131808598706905232395154137659551232966968187210809222268866366812910720137204984378473965873090418568168603829607951804024962062143826131611155209060182526771286673977424131388012966428362417725112472591599291387901167908009059749659977291250239435946205532143357760168435504273584343486592564307994572554990811785647289205323764177834975140915262004475156783561012914983343738724643609102148488133631930086785869444248323771260710210360630876363862252191078294433928929163878462515660054640577813457605852078575921904820693931118219322209677890685509392055131036956279216781735965202466234690251647625483284961800354733595528112881597859592645687340324342089534057607019913148585578420876568298520438906273995767693861774513809295746614567349287566668873914555335044029038347285090361932656226551622619488120474660048456632673824453218595888773523213284596876312577942627395909417879596189555256335038761842505938943364175878229781071436929431167010896615589993566041526397088412945284473069972649623427182654058124566157056748671767534131839104506794222270148235202368879818180648932716803238700026575622310487715282416181792810657580028502791978817297319819145432267179228700300606261147292426264650968730626332483811068167599591448158100014566298302301920131460459552545118225354509859722674987694751401920532894564421536482918535395848531297211439061252740968572432948554154634147954725876471359025461588586680808956454887106705584743592457874680155966501293664048176162633094696470927313302403887124822686506462865374829825676828702192576535818178035282086843958332966924743198942271519538655849432385984749286890879225451583763172308999310239968801186085359660497328875225377962566460694412880919952658070877246630205535782222533867901358390295267314879793934556316573348746952802217619174870240701432578249344643381503682661618098219675164473466932539410647779817467513392466199902154239148537382404189588931122009046330827560822233494827302192269304642313700637210779720890132926933811389972448771754730802067873803347975803661304221633618799064904470108408328247010103247905343458482161373952352811887021488056988967088912288846391391580695392010068451440609831257533574053105820134408275215114156227025332969622783482254228900228860857060752419941045485919057063884584426667401910482663538383632527607880232745764689827508938097961458565345127701194202045577853392957278127659287495469116506440562102435352562590066571165342171786857858942452875409353262417652286604536768038881312210728918208829495571256014628073351488671944663147315451590657174253162737352806422808118423979634623723808167085124898610267882298183068883737458975952364930928835040032040940705019044552889849436261533491311761806098802009246652233310629523815603417304289627484129250399458760011849064983103613640491958213097771519589405630442468573093338224509860861437415167277775219047746946365339895865615126965663549622813738629865420724883569288127328909727656399752500352011509703583251852535432822077011921354307889047649786388970955958862006552281300345208973241631009702225038388870910867153971113832826412754348961435500220517651922546878087582288624371937441869300748119709975954820081513188082554050069197317807940559229471259549758719918742261912689355543529442868908623804850820415998855530746558705933196319571568009280798563622566513474572870035937511049360472838385172569258792165325858707222997797161482300494388836794765842141910773085944767018098531123930841152107531562785607423886116340537084021584728967306928995078583449990517331385021475561211293936058214912444357149923746199855887362756855733835240424157612272469310550153283692850054158966943698751971646788290244391840443639275311806259523580672432967226224982307037284086279200727850087548980467763066450861945879484055562665384157198942782183945406408221621102360890791053277036927527382809717419342928373713262688872453111993645346755787903130361409088122567493929868553491444907090036546136305329786497275165741834207041972119697358783767511762616912170289207830110219185794017196517753066076762555172995668281586378541848621902919905793281629408541705272479123362730171590310228075724685587331355455065731914033968011352389670473146395584017803312989839654611021038608667191636133024437141968148575934118263569089041893911402774147243160671215188506255163830076082855400430364303677388915790964519099727069831341740181879532697613344983601555600593117196780762540040129122183991641390928176815453990697596318990532410229293198093241883604407430322388622819944885018720019347229608872380855139761537281828619556713885982752678134200305945205255281483073963649409487817181789710466226455602830188900055938731370324931998851386147482676015801506591228861989319710512475000203067751837851343980166978642382209365358604765049673204078617955888026956707121192413356443960233212836635851733791554512391999327799775468320396127312562956601652636091851514552358462081982074932441432573285493563964121424753002162513396840288300173798382145432111677581744466068285426983322571623954970070949507172880007252563299954925545326982743594718255347099373771402536818431747161614521487558367325547082363208469808894968623122923957477398145919860209530170091295648164234390363866270323335607482453053958023709702577102812493845397726526403032870919446100518799394681622203604931100839250091987196565014835045357125319757346549046120719374382209044307299345312097012705024893687663741321284451539259491460551909549653251737497255342762009830228599584223829591566203206371644095612875250376139921102178470424343594251173517043801803360517167880403860208122378454845458729211204976057631580874430421122122603549393237968518641787526709130140246412293908719066903022029007693225644072984654364750441049976249977216902334116111400154579426218092461040206518288958846467999817154768934174375912487816465768911870784919741959102389394002484994524869800026484639490910243668022802247041455527364178625153770745567663494606635010538762649177879003309596120125058562970857086173575381254752190280400035488613086825540507386581145243835985806040838467579308861317188113339119419490402628987019624994000277860751485293883117365041553877490831167328391468036671415307206395221140677919630885755908266763704898338301931556390882801251884210517920036180812392997222486337016489369305580578249847966998343953328442999259126447424947186864602814561976363705396309439576255735900664678705343799800993781037580073021041835345244553248918409221022673518368693204902101524550172534004783508164255315660764390684712456178889084984225887413127619596870382944798517104461537646859092943262770124412816154558422914587421157534986405224006647608880803511917285275271921577154154616852613875185104825719440450383110218603996224607164945844535257960912854938846480759461980756794471742923592218829006271961130410234712561696588712431050692011131341758174082222424356228471331782667107926063479531522837190423232287566553240149028944577570552506889614330456997978593225308935619254629976875578536440519949263442947178120176165139640562947782706120446106720684813484088344179356713323978737554359097902209974480036427189862272648781519592664373310485799219763316934306093531774129208943603714318565232406313112391331629239522703560019810587484764255440225184086039605983041650527062656867096204709396044612133080880251439962982092048050752914592995368832759427903765132781547255327708285948535251044259291315319397011776635808216818194063187731292190538661154823501261959643480812090994141484906908380930549350233300478622888038066600622889117524680416782875870711139859190170647885344958114544487971667272637480270571331019202959716241532619733290433254861017387569233089817148121667128058781116576135106951432803086816875548397703680647817588133920018187510763429407457462414782794576860552491580977950333696640614284081698546359193991826039443337251661462674516276794098997602663598492818148069045427634236508219927837920918978495181729338966548208736213394166232411315176651086919062559179243284250225686442666284396255478796945788603202626090177332975485357907239776257127638469956152731375903928618912274776874103064087876103195635931756454913098432837383351440983555256882646320124379810201353161171607669913044970959606095265687578889886483015710626196236302591315340644397048370391623139382301040528660399696105761960651228577157373621653738259272747851205759710477269813452554165294323541590577347497445502959938272815009608920861476983503826861642907771512721989607928967964598313987547553586456933987353462347340821002215129421809316075720130728954973916218136652192900719502672170739102527781184188391431002832632802222763759252092581232488185204232909166202428521796784043303486994567317094065114118380073458385571437558050447333233008975938110021960273028998288036222756730260590567372109032940322666609809933810529056531112722589245981585441620116939136758685579953160581037909757192833595239783440816556331878650501593270337228551306030686881092255348467603603067417470830097330511046244709507363317822408864082512262460045096443751779692704073304988114028241822826845767087942918272667206752279827994248432472574854254490213936389197420719459638916988002509696756602722581260233587765548798948526861079179961500379078588137174288490929519619909054429598778984529184166812209686675257298109647440428638698078436898231442555240756354356758087727050109056496004679768659297807244470204752176043978988747719500391327415683967336144682050010276981410294341158255504998129069204447608866643710476212945185080644377626495837337924963365614058415073254947114849298292824467093282087981924740187722728813619724275580988757003929427099181945108975679800032739274575234938682072610242454048187410003079639533889501194334066967743009310325167645504905705601217974843187873196939282771973989801937995132621908887790002906042329879552155280221254611442776256253773935185307828609614650697221047953574473867703683322241986444825213369925652052565769853057335628466522315783357333823910582809527280841492725751985739872782234127856550456159297954425401917255223325029818719292601731043418860463418611844895273226637302215165711458056903524412869681820888920987894204485403866609310094579443142951221168975207355344477694877556085790855994056030457416049377098258360469262908408823189720001828098208202947182749963543444090362703799514476782381930822734171061777278564877907350229750564591738243250699449869502354580206909037611356057242191362188876308666498614025476247031615026505194385738038144904817982232970046265320267194309156661625038355942852994948449743176036459555145053061213260803698042922310729492187087591165203679907934375934104783597368520211258010236145890344995515095534912765881123446880711150736378538337934294956776176765818801284053474522665226746146587440210834801634423473579723270240812688740280779755248941131641896814648491159230944576153218935668706779750145797369103165737154154011475854024234021383423966506130936879341922273972359364855151510321882267328996833613525521409864645950626741950268594749886808765079014140658965251567772906915380737155985024084519353964908737468683967384919672431063659304089402075206916867140377144971787184200867950674127238351311364824513415414332349027660823159916815657200577177959361876757435793484081050975359741843906055240881887115843111723785314158444395003592015962999222269939176530085243587340733968020135204317858683140665684865851502846443592259911361285089825678151957600337216628138521443548497142228597571950456145435801987916403355389063391374865249061264265254435030195892206348350232371308564724754586205932567084124497049946283257810087122020087640777556940479828740528413233222642196615806423962170161275429322520652451783961188859429034825820782379580272586635556838184081461065322607467404789561958021600887340454761130705109986484277264025994688518261216236390422275931915948324443695084897364553210727891185173060785105966235630272010035222529458900689472409115112888686099865551398954312542818090723715700975887818868493887385474427626567380292684996632730293220241705803133536110614414384451163280377177116258058340265554031264651362653246600460710214582587384281985861456150139833048581777871136770152876462413909166728630688711740407597438195455037004444442384299722658547382754423786841467233902071627443957622016775852465698140157627878316708174425736201952730580430102330052788046062415863072696479488465236220235298697817361907958902004449180835106876943922435051470669722492098963047573917629048045761588759732293918810533035433414432671613645116656689364142038058240620391030594156152676309208041041455099463444653391090186892658212783610347748426672689215653076605518004955662430619028773795401003269702723410610545545335656290663546596142601138189906106316752680563109687879945246922448102330122607051672035935143341954460180247391860713622075356694129570557198343496227159755479127408454255292419558420704104349090030346064417418877528182137769736920536813153975222726311285945303371227413759051271870411510113740588826144581621972967290634709382619578931746462320351416082735522885741463850294293908143601429022687716612973217809945923243542958043681159094103158559151837100940359957613025994287242300658707732050900219779687761646669215631063118560475301309623512126268220608573125401219541309215564320950905935562286193997241173031255246332421097425980321587169356993416195143432391457315351916388599745949858557938473987688724956215453041938078857497925786077677940255754514382812179909641140727764692680964704116703258375600588385943763597687216983492027668086967801649882013682682351629169993611152665982612605016526846655986709207827222256575087500190291044644161721073767747070252946928593366061524008241504066718725498246285032658906812737070819356192806852163274629801061502766140287918818499447557879757618545430121399957492832101557701870593379074703835557208110867206617991347551220537236391771258680742281851953816628611966048563242858985571247562792476787255860671869807060468451764164225095476817321527643174642130808695682926890709879487579425473226560760687025824623367490926525236534204180041031970258536072306816052451912720252934136883686174446013982652883884340275755145744536282674338230315678522830320301067936484154547260997508741606516971328847333156409357097544460468243081205434322586485838426566347000350019937500696003612401749311567398149738889960676743611731818227554671545562383794158870300473983035889372317684891333322220230610278305361405438640003731726275521944919283931479810499545803260219796794442006370473372308828524974591305749192029952403444499574195824151074305154299225423177876193350818589000927512540269447342011613876758329953673344312185591697611473241687012413523260695655013729933796463044282363066042303612155393552313133144256748167390866727402735978313118925524404626554575870034762423492631673168774208199637607978641927304152831383355865418899781269197462686217597806934288860231515054670181068725925046687689402282297607259968439712833129075964796052985761233646958739669886493125005082088142795155161384415442859134024288660006218835425086287346772681404101484307253569961006973624469736486512511410949791459990606133321536942225191254895026971394472530775175458123632458522209590335842790644962414363067124952766671744610194870574158372448749162022485529528390004533732450795064991011697574441199301732693240172733605002175843918876506908248503050398596985037843511211320946466859255066022072208785896659526641841093640576930321169511422063770529045234632828170982028077649353019871819489797343109963360345318324233237840455159265668788518224563924743850369734256438203866637348863794534948668923925460555639582915073145671601799556747160858954940136998281715442103151992345125398556547574061271743107702413552639456693742376934382375453562385606375394732966745891428221616836858333820965731524798404277549175988612176693299351121348990402470559594473173658755082491689379953456618459470845239796447817787746087402991391653746983197704651606396545437830786025820287459034898853225299643568552002591637584227529038898303376957225552766865609490527192642823406122457941360609856243243068658468978217882395871816876735392656742237630971238729165495002586062830368079202652390627347370419176733186522572732362998573870446062279534880876622769427815016034886193161047391164233526611453517109851573854686413452027557276710388657275605380633635009051454546127279093656456436016674049067872360526714783397427599901363960995276399637441151105677374577496055137242046421428358030478438494828543850025967747050800050611227276565527024666270870356446866914540647988482926638419053354299245377899191383422939580397588765348150436583247432273737297366908095661983073702724046968439592065070028637602178627072079022838910839052288536727819657009272411873020865059755375742970848778691631384172292034143978190298919339658626722880515322510307692952301652917697901196424140646289623031393738436722988324530445735195493736623326053382757405499380117087837042255292083584863601672294192683806083232109566267680954476447429293587246529603306166107888695558378135946892343327531952611972317965785314345450515421816051525231372840713773232347774641509028139606333198321488405712496967614923756076010789537371238849568563456120379738320406739322207736733865711634972013512711003662205868660299046562451437491803229438144489940771786824102542564670037875087271111432457821843648043530469607311154720996061122203626202607212076921844308785873125322053717846817965740099631980694208029281958007432221220988116496280364431554361941518279162052687716664858136868895764662024860847776293549722179379302090089136467956495951645045394036635306962190003026060304876963636891785054660745692297755866255318551866955275799241457331589793358678852166999143216631066155996658406619665272272364641943950710007778676270275616811202995408832589460747922071489749114102293853455454393350142622008730009404389133931818045094330471434872670557498455384491456914837324188741727554697014573157289205590260692403045041441577681904800121442039983302375008251136171554816812728768145594966165402757818999850575335576380376768954205058431035974572795341508302423668193241091378382039066775740085906212494083665245503675290101229164899722496242869581487673823264723835140009203256540138169576683592591227367753720694898229765643994032061260065517642694635593478890647117335763470062441434635095561614289990978939608751299888537628011409275244695049404030487583527519697359765368252338475803564470109411188962047322555426823855440594239926704458492545085438425469845368121940901627833193730011249493333689949683477415826867783610403478009977560047514780462668147505824331700165283338686265577555544706015568093563986068472982408769712533753453341825445758907973978237909344265548856413700322684557995638802066435523131263446834811167955668461791155744319000022611961821325758921426555428743604505875311669267749119065521735438641646762201045722827718100729624047465208883181205918042206777013904924755579881657650870470535549936442529155811871972650622478850059060351032539873692797137069661780749294297122301975113959240336554337026247801901367006379269188946290405367594062200854228175940199735950190744411563752664980065546046337252054407875687420634615502414493439808980774746588375781748353150341207544446983583944442641540467466529950380786197352693075297987209056588708994781925978499612162125253184766483098800815422453618844335230032336525094010226274656103230074964977897425974136664739184803216030531517444406129073825590293472047327310351368383088336821314537795520040206400387188770301921582792223123765104700269000945974916440513239942520934018428657827884250871909943073354777901030543797594250209564501208435094660253707778881530451357205451336044038821196404482754952291095561460496258478980901843763853347681240122650957335763888358602708150244047580496351233910817446132206764582566594468098391482756596361328261399720863492211197427902005106448350530897297670122211574323383174900810932736662792435511908066096746368157504001700440825528830030904021449836983794518408512856553847637768756099655775410623811518387160812426718483386926336340375224772197634994224250265942808254369914756700648437519253384915637956536632161606791012838369480654971063338550210608455460367692616053389597259996211439696604261967956504402769916832151084280750295521736356255376084360592727360657585097041441531617877196340086544368501952612420107057355225850457090377277686391155608823828863491330490048958219662472027103238729115776957973839634946154761514323290122813424192634664729012264880982954235264076617650996643568085141378651785821813230242366653471041600418032213233002231993250088908838811194213941660082905462752534597677730749262927891199296446935463962117835035255083190528366524436778293262170656458524893106205615160377263827126242180065922781498329777605923034179941432455028768505247163495293442389077059234929354139870007308429686999572812259843555482988019779456244941753356899528079014497196217739821988764903247583797878796182273984039209161206185410147306370221645691137797573497181770377055650816922520473774914839434061405007841423195455416273724442931330719083314263011803736721122172222139824714339444146154922907298885913798314763522183966449481610526726754141231571047970463204185691911052727942293445746514580075140643251941030009249783179767719395347179001421545188822538004024011550485585101147015426626988323877399561982303844669874059357712024537680786258799665232045128294853566665219958075417769779023925279305122976335782342515535521611028791389470110708000852915758370183162951129199527463408150339557486938348728536645777396685157704721137347126914456743892661582313699969793040069586021025147417060385962039822387385468158370437770985627622905677100206570006947531345582076518406949254734202499649128257017374794730576365593456342889102022497155578219482955070530316356831121547612797928648574690642858568525173781209326804540796504817914091526000040451797993894484835613589502422705756685336193731550436759430963927801992212755248124670835438678340631161554779733272321324957847201750454286509232825433731114578593220976533345489679958427196382688746346825695232627838372930831342536529051902667314161445098492528327118615392946692147424041747477251533801157877113758142740550988511106267411232943541178796658671297767164591776495346373985684740488280110784206222051272291197258285511174584035272207729603443576044436190790755929166826355758255620136356265576386103567575018117665445768360625230998586696995958562468900165183621436236446208937255677731157666479618805975027664845277542019876187496380522151182765957150930570827870441470657367259262697205708230247458754481259050863401251065250696497405785319938169801417284905689074472671628522105024575131502165916675972485602666506241066211476027432318144108562557919904228513803783049534484494306310633288611714662273717595478471425352478594036505051953436018966539115298772657203648536325927064909562122317512748459725360019136000505644888170230829385574314606533601152394746433703388926307274269698647777091091383343148056681087381505421535742426979317971673589068322661636258834445274738370999521722212233805033147506403006122631485602578965827986682486430756021213611880993477618522414749242951298642168075862661436272512767375526915966994233665862233354414833626132149298562653077937977465983939882483209846999418768131750939250143530159639008556189617044990972218060936569542698101907455675646300474688435362960496899573911933509503486284591143195482231956436450212554006998980781727647406804056053080914164169106575143846278454504741765883504150657319489666086770194379583221201841140909067949624376313433795650195201836647245572332024647600084623292131182508019574079311251868572529413958100723938465127042937107552852775136060101725210474622720678773055001737864702227953362890147603023299532227450780206258833917001456806427297302129805503257930820626933625758724886113255050698631485774365232048956783434301292231131211106824196553090720563077691877644340954159750078888215310304099663285681682109836654684910550376916705878566926772884609662750562934583110664996487069908198957019009280163587660668417179626000868603116436601586707692525781306282564482756146598241634438216742909409769790786312797880827780281166756986692694049618505125265775340006467302907205153597915375265386724646376133986317282666437762101243372643103933291118658340946898223636255746948757780800091546937008948334190150641485526445832777218434184731516272242395357282350342421759867321984795423635942497378903901019394920612530860016861609897830676707591522123549708274945901528996788840452788320458646465950101028587119939261482921033582042655085675329487134739240390591725658979084899995767220358194390120137549944882761031672589530587065924147139157049656875449338531985610481950266129532949771056124861681075389133807732728179242627439194213572227056636613832494792291453570612972090935936324998168292112623423035858807607647252094184700910350825115257154221873458582353711351655621769307630362276702215711725669781685133962527111627906710825916736627709386647975777051009074072795808203545205968893516157312855190330567338026838364065350791745236337159981098468500333085947839828564163552314868406096787168384963740462203469981562403883327585342825294276219185477142190286496746356846284452575830699396560974314438307635449493917705009891950834801849377693150193996824886688059449375380854014794769184159320191029890181358812903068134750558921360525501467016823759059027413498041236716582658056520214413368918063720225930328878638029214434286878783536880624739556887526319512212111599600881203761842075499093814579477319059927506868938263589009636566390549345826366426667417253524284662150747479131623129465156647403679977048958997541886312071525233345186848045836213332141880684608043211934609351737651416102418797740779541846732245717747340959357777623730927032875323163107942376429230175362149820424465608996256573340566502317277080537203993677580592968302384180861731494604264916374058264469746818800382067104027287764451756331157372135148173955186739713706051102740116466214277565384639085491643008461778394147178247199971193179460105597253601981365054521090443106892453448572669590488278472553994271993863012757778890578884344361736506350299392414884517513905226041632912029220975904513825130479226176895975965366048743950811541372928133791600192098926600738388099293261616062316870025591531751948740708659493200677561098951184631659324300794934259317640743753695103308510561397587570228272658532414093570613269614404070214167620690294606269745400239600293075191963466636702249384138089447081383649937885587972669023430359060906324605335070420067568075033256250946379796998999561367884186870344305666776142620199745501347026078131470152329166818460208267438580916242103737309785039971112863369801960830844759398226036136063693544983889048889901886310023610326689017103203452225442133418400605075969120395939238253796206059613596635145203559073583097253016621495048637292442849639524174922367365904591173626117008626504327839636315858445969729913578190193288932717186199052527631966226570089777548453395951074314480162902607960361421723918241737584797761967122203522295711867017558614633084797923548323078191719847759932580228178997423562055131984074184176333732781187110627339359076891127037358489491110813791955185252315524381715834132444640268791222377588228811453399100860840981795518086169865861177440388091056492248565109643699187410655163462840680455563975755417065424324895764972384302331219783033828237132292176170422490320831936375099134726101091247069360272927076562518432921250464922239576483886580776034956067593014902031063193297073039230423062418577580000015950525877355669549645790635425205899868577006425443755517805754537851016067374437390784763379941347038719679296422149791703689798719831773666686765825404388791600043798446899413455547923102758123306056215061673190600643390121662038003654962147882446964895507492894149137545473436858925349383465440243781410884085990430805448294022760837572611534360211655958514231581702137778970407113342484507441946376808313467031710016805548146667911678915424240265660628944265043776682457377139583026687662324712032956801652924860587243007663367195948633967002201811080954939331003971904298557330191297088897002954894257303533924578542821330594338934510180220341142501798847649004922680556337508324943032717139917424747839592166495883793043672998372797129568356254513730805163860705575123169756455681503596614543016322382391548492895989349210536499421665925112601882354591462321603526364752690652693100204793739541421007277802739916440894504118899529767869437596175736371713063285331172534264953024676788400127475183921294997266094388807810861753324842208370711612440301769343374430286490928482059780512442393246049866770259303987847067353845960394716188294117510455452066453560801609489270935751675195756926194293427224129239761371722381284885856753377154353671285707101817703107931155293296189819028917637271233882778335294593497638140248309479663617451006394662984380113768148614977999559502692251678259228330973437767624468114503701504904290477363744073358832339403444563639831214688401263430751206094692302360369269214437876745066086526990704679726751810405526741877958851361805254488851664057702155313384699618079463982519550650875075238403856168353320472482518480313656818750963716200685479055315880218325386094384166368345790679321572545020006827242816847263722361786104898310955677215080743410970113658350245686548367297257799687181225273138145251552524324033443441714442851704281191310671070511428357218066529581958900230072349787685744262637653789766957133883499478599146338853090791547208525725023000854180418882753887253218801940157982736984490777738652936309153718448650025026630548045460507733000317798345533564094531864048230982815367702317708405732257963731348033415818156799316358753926958955785549093579478115088659460445529129792609932869428953807188737627587753779158218913779055766073391335376275637213471458262653188688817146706314110439266541462876623808716656881443232018232711642546229465009718927920524528795451430144645099574324063814809507003433252264600099751791043049946799210797234386921639138648621584453741653983863071112232310029128633302071497664171075979827996125533575018211282363985493131525493764011299211600008561250420219436515495371654025702714048634426066772790114618876061927476660512710208149999962843028763264393522699397377048679255905342574243905982135087420825910692059708662913893816692523314641537412127823443504174555698140836637991310447336309848907475348074066358085654311637645552593612624202802313512601309122665027211597548522429803733351857497598227812180037479569702022592902636635412489831743617847785224031471733133581424987459722545596550683153710535890065427279289466443995225576581916595870789897283742213863102005152556721689773120217586511193119733930091606040736229346346152101241870693355952738020561388698811851833372484371472050140957681920823329446125836984736015487434620074220349936546489523336202300468686289351232302580302603621467407454330421208321509465867900130987119297922748614939740163600091256063271261866083118107702703771013778186693000291526943545361357455574760834497587655855201984587558781552088740938593617974953431543015672957480964551149599273444489053429563147399402953969750457424214895739141885820070304473376775497545590910547263145289708230511190711476435835796218312830056023400754153398190072382413623933803501379995618491330153675770504552638535524225386779548606097778205776036250171874694269373707089396387153485388977686871255077180994704880871245143514121611531858379538353330920200738637496796092013486963053886916745140183463007702803040803600305751670314075375509936211940370523180986695649474615854045356414531860968565152454962537656249164974289838527898813069711285333007356510428387674693440226616335442118569151802632523238597226039638272268369034310338184422812261180807659531946069056905186957197428998686868658316223255167315690178722861331585039886125374269965550214873795706119639385235922119768370514163253009163280119160706259021639913818080302880734872296590777640252566979594896804300451279225658285444040875645633136647131739263748969004662284804452632098875641861813016832661564451060549490123393664835038546041725713635308786459727297903594172341631420994243941723474003870561463460850895158864389676966926631307214234015780587032234577732592084870327625621211257499215771680618027302655535215627796713978935688037166502740076481065574524002461209479260464925442994396066152760787403262229671725207557841436872564000146314071925756838633591588442401838997780667349190226993987502225170241997740997368469717815946175811011831458218411537173883781099423520571484179802118196028321947119788400988946979822628059587717398449724341131614271962291902696705037580950273111285114918399333353845015225837351937324669515371505204785183685179897684775430655100091814064583407036080192468650038167905092275937347804882720337162941392370062591369994586696696422550731280522489685049591553882775255140972521445480558974583632265207117792243866658443169747092015751066576250343795830376490885087440905868232134303866940461107450321640320198399206913812084881626060565694641866896233303605632050585069260255483473262984393334672359243192231292030150488237585065191995962633232192367760198429588301531854176101367026127846331367035790018029926331579751448104359445896503833814886766477022010342364685020117112759336100530698081978797141203972406646154363332979892093013835843736340496278352013197527440317037032947836236905234481052756499392061680737520802213194270341051341872015206207677589824271308600264237039887445606478472719349787863176565659572518892932057363049587077659835041314792335793472787442674835486759374579782973250562993129717816354224368391344817837704712566530071336983395328541082952469865369635811502138016517449364361114471492560856716453875836735613353773933463897319993444938713815214005151748296237776009676575060301216667508011678530409724251196895549364755924439445537182769195788201484746844260257540754724077983888014953392209243967351799011318041039853623141541044775499803964515333892654808569554843437964382904480465069496894728113643749184025108849084781494082778481295835704666137618331069878334793587778513267416720577735153615617080248926376939047342477355478121231611564803571320764033707215574515673669622674045291424739750898174273507834594127939990751840676861460741522014739303431987803593799610400411498984893288925707493118184414572502148829024979499088650087201347700374776387289803762417374237658475739871938907616359411714662406255676628976481068739638236286154397514220872967987014282123582173196446057387196171595542609862467384421046025148267947296253047750702935075890325311519114629780639983931042810828487557131881965640413489119629241594039275467042408309646068747466663076326269493024570213842891472504999719910612716546192599234450396772191038255344282975555898964031657584282768543593561548981005650677804221869247676786297120366780267593163950460864920928421123397007255423581935815057150257057041533059833748062523921788872281188218776979032012675661168587324261898517735203595131740167812959853232330775983149535149117403054698180445270217451732633741145313383115874318109015395538630537067058763129433661804344917865868258347279541893083443948651291952361201834916763164266300722222771667454011114821342515650210227959563710848255818164279955178733684894965810564721632317609777526526215298644877096707447597022846247367129866160381793016320379749154232759931905511862012981359358796709630927126461898141296814173051996671403836669671803960286371493417990966631372254101529344639408960984952738268811772360546788146453092062134919564818299596915180704796787133508249339696665663682111005871314704137216669022211532498979087975903480938133572703923004476918970550853559071333241426085796524763449871455295610968047268932698852542537608799424097060568729339347769671318756275663709198130287889314532210826179036344918237560480932696989357516061188537713045191723993981979657767594678168812917136218295024555235563704483906862902880624910248316106133214193472240083628576995586562733436571159082187956016860940079682052543958997850951563317889219759700808686496808672242533443104234245751570369023353994459943742923625063605030691946008065517836794928956317519394631473990396134904516175795159778322325349035563500445064149477870114909321644769213450239358675401320644196096776480709889014981938036957008926967186382992742985432049808163378736999176667744836039829212205402485179958407715035952601560072411093053548639125275145224141252626290296495319324202134046751461925249252424031195309670521928636894620230041742391957987074436756201194678007218201448765101927685189984864780779506212874559618642899329321731500281772095806979036462721847460494305202173311781096073980210583986567754144500112552737197501167288941858420391767221532040941197673537526684987422777407584071016922570347082046363270205172215606100261945195294519950718572704753670090969071324520070893747430473223139755583229965605205833997027772328088499299456988714111508344066384327020873191486160029576602654119454108629977463794198019143248947595172889731336355836870686164464357189632640470509775828514463975038842781788246872837806146441748458746286752208793466047257127552634138503378097983826512033118174794847254484900442090261072323512351379740701213619891091971428068262712581875934555540735636789522059401859052370464558252043783028821681438433888040079621622448077355185657733453443017684361026269449675260028323758751876947142221817388890716731831282545680904207895281653246799425707815403176848567420716008465566226287917577233712180100258745808479841304682563381846739327990232156181318284550750634555736838588509357195559860061617121897071129488439633231953054315400811291583483557865391029564261244125503493833930484858828457815682905930881432657855491424798822764302704182021634984521380410289934838341010383127917202798072105690251402126298899188792681599081268077033105814040478574129116588728204920554420172798925287200955874008751376919575525478886635199962774718005732512890132689255479883406160478461384953585819575180388828445184081976917933191004604730144908206559837107779467861414270977554273515960351563239717781706528900707774696667201953544892446609288630319783057718370784012345766018027814140233666164810741405138367003131764519121068037516197433654729592756325411809241187414996832451879489669686605201798096324062352858119035830138632983374029406967113479769015015051034506428132963979173043066710760031668081653233097891373921325360339591222312994442810822588384651194839103440567846692182138104361955652834136852312803847525566668032774553881240411847848072327399088611621638436620005851942230082374241054360769300417885603613026445545610382700458958197403468328318431514493175263655739582379178783504945847638863078632759315819106059126171796234050204128918355811333214924416470804157251010764147181126113672139097017983710912712322407628807192577936845956894322387289499806137368347651771871974790646295155685361880278467903964402454418044689628970629877723753654419218344502419053555715767956657760999316974336069296481248898701323653206963182247391098568828582145358645355079035546703431815287535023286326590855754162729233246349238608894661335655604045187003821298391097755995187544606748615319689772017998909549324663385585186431614689436490042976650027883034881783176400518350042840332820319823819479743786968695115674721830056281029684625417267845881595566658770107202528069248971502595337768279234084681066614300047685068940183943880454918605939452267721421222598037547016750516167069737490855607249775338217915462039061589124392994532156391895297799495006794456859101584811788399262009806945279012800654174973112489520320941965388568269083092236158816433614985872932593226465056433419163791570393869428184642898630815105989369504231546393862286151430986813311873590308224789807533937646217507866175772886600706676240456630916511503087382133277752171453669479166718063849348613371243342833265434348189140904997116386015676668167662331474634009198054345398554831907455402884991539574527948928051893817816130129862415082000929075410316544898993641584612328905688115459412549803038488869183453981380169693763592947333303448077031368308158993627126490850142969831362958430444325119630496403547311771950629546880587398997062119883353879657968198066110932067952023989456269335774981707864552695233395021825011863380761258554318430880080526745529289310914079766735121614037507578717144384600749355280762398386424891170809258292965822138346279786730144736626390449792175093438372671200603915526885778313743505901955762934126175346402126328196357900885020837228035076302309450153404491660374804083731410879498653590820041824313344802899307120201153909640682800378185932134120133536124725914233105897196126151896657838351963023416325424824861300200105561178869919896897755904332643818206009370317972384826367806727359722496891486819894395920519917870150208783170548172104795544236583241992902807231500928345996066529404126758910280031918262475157323917507731493626634486241555328916110522311946302305535233447116618733804789282716427273168087821694443563146883438843452122524097712703630650981286067599913438800026138457303175344452443216525048786680755506199089099357323310435843559948298352298103480921233442879035116512531204025861370288873499142901283772188437601173981035093634809351522317878477703203755102252088807912132016296695383858719736085061272096494203325173190622554505534843312921968091373626384651794877375328594777116360135274678880491273434628976060774044492390729267173258455593535968854854486376436156621605529397158029227431621799235242311211498036994575689562977371437582567198093426192774598902201743809620007423827916489049375204557359091230394684325275806243303588932943302915884960763017999025458656156565411014567020891429288182332112165435530094007711019407408052798142811179896236909101605488212943014285436187953005826717136037124227024533270185768396932220554405212852579205458801219605896826612407866933598633926751066601821269878753319352326180105424635371007557397207301785000610805506225403099529088068504327658766692906876189861969333791174967608807100024231420417962859021861180091715035851881429204870401186431203731563836409323632820398567546729483411965749788018267239421545845016300822625402395655745997851255170398110074212825568408735715000257322634160404647096201722513003592054017553387595675489352934401989578412557746440442705802285849094287876392425008544200797615779528299189646512609033297531701056305969874511405094673025009858870480671933144296257551512302887231568115525098181332244520590494717612850671718813909715934664757321746230441060416748231568472376747789935490943895124627288333715280265863178708934046649378713354695858696470185211253391487916590720746793845968365253109394290756646567818244443208398998333536792343507614065481042838596564843271828438390633744463132581947332472888916064923774506218640047756774936134221800195188387949488889283489655588423266890622829682470719622030460250708149831373657999589863752426395562282035878702214734212825611972830635059729910064225853967504851662658964740560560761708348127881357921359396568447094744899283683091973103314368896694129555504949295759112172493586238180217770918964027795843582913048129596925348877874539917511775420824589369376458343512699751071162312598327448217591420719744720971009964152569032759151493449656010680607775144233687660806279123261192815412620846984951751799180130491978825871320081513020928965321980280141973463140618414421210262058267030520013252762818766468699446158527864603656088589118435587321432853375982294196307888773124828786216141209343585533263611827784414467554453986781841257560686347385709337564275881925869148938146347720524721382139040427966303969650574373208438794301276461772277451437073138622679100276677365928608998658433864014317959695108903687730314282075155917558718859436940757065643302577424344593265982579698534419225399385923377592451443644291679885976753346261936494475644022186357107189621420983868081034622555152434921450802393026146077898252555939929424072127737287458348443001215163755140430087036043803006934827463386415002125512798022958024511248301148718475678142777309142997116213835578888651155332860485435856661854966004056843021339776955332648364869003654431994736467795285261573164361359234668628580551547431033759762684815533732353852249485348564257892273274155171305439512221817241337465966111475160630482783053770064043727492370351035812836971381172310393601717706608131040211748154395763463839343862222217152740865932778789489877357770856163812407056414542412672982073236909857504286800722242904412716459508637346229552982800302263519635549466798915138576033206916884914365655143302364968809283373669796384870525787890140818999045245704286539404704278888175779133108959464544108786168529531426749530501430215642085886565818270753540136387899579685308539173761081159477465862212633131766525087217905917062519290747823430259143520782989294004241258180901565247954662495115157917698522748442504154645285206614294958682456278871099456371525395984439783748555667239366248265199438414535731565578201361268473246676886173657399865553655550293945635578796915280419135411980944631613422765241476300116522173071261387306111692182646949905531669456967362943779239513342575707181607973838380305323585678879519465358895496932721537225387216013645692709117980588255378665049466723567725987024790966125764268883315029668362747935335956924322359848291266803307183215127549709220712987325257654390293053768606990730400789442863161284672135134131258867761629895220660337360511358231120386893336604589069804029155279536903256762825408111616969914382644217959908332353991493868789403070799245217993637389227294556208881241231580655740277804240970657875136825187700692504359951259666315336039661965288271345292438165001258251044498345175051187739286933328757478794279106858382592019876501046418651913953426016269636862283460435133011363675187555705199174875200389105152976651080916580557279131877983730090343691094116797515288305167219285092799870445488559500722261234981354369257635210146594728574626394656073941274735035175324889419138925973917425480836622612663343955116624703346523527977638485002620746186159966883267508063140974829560817528514848857782834565542374678995847278330583032397513744725702774818543476888506662738704029446303976965419719760894978645221635249342095913772936831387606069637371428859565529521773308164334054299105676019217313115001112558284112926910602526644843508186807823870936891181648704287005585216268559503469026183876664579715256594955257737577791296922468484085577781495779960525142955867588608464394749715291997770183547024392388591163579469583030523688913049796648523494651087555862477264834780169570592701852908579585160586860369305129830981832762163026430536911519656314314221001143101249007903204468858248201859938773547766055341367698886640286041431472068529691788348527057281613825217800031225646509780823426384864260476303815523174414073439301383074241366517870987525547170890838601396683112020315219196728210758763260845490862251223254976130257626200482825140709367529184538633727640178951540057297288479454084133220247477372080144981032145720263816597747954242780794809766904694798060797548877527873445271160799308856080179993676790578335628758068165810247434369090965136748409565599821832254629690018539573269558445914056804997010087798242298482342329702883844392547283293817306915848590170279100121457612936728588591224539369556177596316370453708058811200594360785641323442715826713033693467807374864332354596918529264638824662697916292580935578822283129916014521830959690515165014102541329003602298952208185308935296967009213888514093941699153661652424398185530195650426395014947306240495092755462799808513001981214465486300585566573115332550082110063477457290927746456841025893313595074174022525793433731289714787760984791264075012496469981025522564064714026727077968917017154302575975982833572489160335601311695691008075346267252441037968947954581698931479869178579306933284289430973293308280420558890711091374868807666991726136162842403446891141068987727595309429348071875930072891098037370297123677813261864195561591314002302455453201400608504419389971425586167187616978025286524024510745232375025549707461106008704150001659657810636212978324637746509256199173892963797223198835521552019615191036234719282740688969842905252486073618083540903862275832444695478564998407460409134666788281648131524313379214957980432340371617659068948877047734523367335717398670135681652208140685715942245457230533738154903345335436494522130448099071200004321480640479991381185557361044166397412406661627496651186439355888058628662146133276995259509097766599779472787952559227200587094221472971778046756755044034249105152757674335299387913648917502358128130383135446715630288475440209360228392864047554007388503002421720634446723044994086032432504454355661282897755744686519725524384539886298041182264406197658689169168955130959734071008118236950226646170616179831390946529790183746023234616760178539749775152170104537674347875336698875623230649871158251603948170822998180105273949807999968790655857623178351754124083424601518543502321683258855848815013913184346379837638667135667888604921516723540275799461821020499008314830553040677844489431541172595989664937044515637091795499207629216660651713825569769831662570831955047341063735930580975181517367784329261757987703836060478677665313191109594835960819196876284713407702649842030496492179828583853213663897284838579203682655829292275057639964225475325435892279741510297678512635670386962273377744446826121421605737092944673657435533254560088535392152594288528902214320070905105385492185310378408861206182379782059877848868210058997814341599564902733683342161671304111071687260476844675576511086324739985537525832855734907638707909444072535220943170266336308881554912311948667854071509707402232106970980842566662334925252650187274449961742515529593485287087185439107669421169848639750464443583379017683998081546299993955923970562087235750962794678993567424807726073559398605332624930074224907670351506247846116410444245038780447293767521171954224888269813046569671911539069198036535357591665384811800589983500347085154830883025391915263165793672177260516212788066042050830502381016567346994732146044357704341700011123272645707931511954435228824585547367471022537995756548628218021035095192523407971825334556795554478198296213614483189584421525118569207725569108264745888761837857503102953934919565319936599703275121241677452156022599777966273581224694112039551733706710546906765751621072440980864632803072256602708866618730607051845830402785849500264306657621671529928639257166513363659723987590242049467862842775010979423809379853475703296737397633680050320447998868894805452290996760424235104030683596530083220294666088417469433149979052148376559188249528758489555538432117209025559512091484661912505374031137813895733095505656410980406778171988265596098733009490456780256532351333481285298489416081789270510943408562253610772590824937208231798855366197486472707292778415818259971602138086177330191144061138181192977330222575739802825834504369424091819137870942684896455028593024594897650699826133925397724503979261408788962129129075220904069597991673088643744013608298868285538345859617218944490723754594077197047584588821432886895617572719763250484811855111851192393872840630395319910756014775067812132901130745478565205629896431588244621393191081097178295558808501994253967305238201915976361537100338082823770690858322757222741077839652005853169672161088398483845938555947790520914379616940364269585922343922501945597709503883675266220204708547784092938785654887429271860025166584801267228919604404808768426992329391188656469912662392762992459019926736778124081051799734219901395331477828177793250821502975072988998780766500122551789453304623503011054589170157074488402997166865554122198777928839143185082780119491733377668589929772592767408173950416233088065543824770103855691365432180414683021846718556390430062645468921792228563953492885377446950036788152443155047396174447867597811613485802035838074030733877960039219639371139133242757807407603470241050272176624588790027523848633887572223471454349341768475661387437127866878948484608487880901247739798733950357978890859700772816159461489970228254107746978434280257621188756681859158338320089531235541233206881848383605578234840200474962721993537385715815760823299736408788205616419454861787381668607138336281081976024223408605001822113111023849969212520654942979308242280599973691245345041575327510726576206060061159975259952340947873112201256920594502482826144619946842460000443778134244557903465415287172049559390728084792464739134215884786358289240790954488894165387156751749879295087805949927991777463657369686681351027368086091659093466029215509504456252714415500258028001369462301999428289725597349699425723420968644655903891215863688063062918731294687107994674986526746021655758642262003207246261619094239281291552699740574058475811785150600265461973855808561519890606988937952959256062877045798039904473032157126792737774046854545803352627621323976056270176808063025334431150114144690222684112330574351903817675939535042995217161925208505688351649742337119699380825833880015414278767952001008083111634368956311733022142183489372688484563904852967971807197213378350294428497688153746767607824359349410249216508170956224914014651781688860797605715488458220329933021806499133765390728609774912121313928828631131857417059938893036454233833699440403098597858723401103584613459020659008402723514191534942289536186738025221992335731626800489582103482943383965011867408179710890352979953072307108553996569868934606677918784007297123824042929376395392200657225786561345325558248766970437185150043306248263260639468956347512214052679143907578306959006753496552382923459699259151534775285666142916504724555738391566817012697014132679684317917089127639505898560697918603050366915470311630766672789398752458819106753851837947157866809522457028356619483918417507721337104028581405104295921746890435158905585664945524753357198381910386006407732513605031784236029830764895948732011072663387281791027661759754343013968092245869634406503736122218993506426166714979757990560983083454737620784007774762030912224342155928888830341563232183199699988454953620906253299646909223039904626973360913644872853837778867455687125283013679056400671649470025032892006987952275254171534513953570127472427150925369558234921375412411817344020998918655589034287098929694296689895651684779939569357072412560732716290850067637510601735666663161786830471005686464138297110602055571477466008648490033347291885138561420937820669474524886748244845241019293405676254040104250550280759271118805400143727968419001709970815167342100471003464419059938719428631897877394221482646188935148302942694909755314301716479338383515304347561043790344241449606068727327728204268227925535754881853702719892328854230090113581996222177816672687994515177586571455226071817724283107083449231912203860156663691776531903307776476506758599033267042130950230484975388356056922957217889600938715130073127088261027999698604043644367370706730726268373643958753159747447834812780637613595811239171603941447638229683451419547693330802079436378381384706288608139410457026641321333944007140623402050164749021033134491783931291521869748054867478287035662931508905373825897803344391257550273581303845346103219826786971384375723327418906919860976048793878625349855528089630320740359613935680314108207122921194219724914130805991113121176525830103583987464762402610753651214094149683638181409548845722993219223268922168641362441583992580777980316949078841268449353387063081570527814955073421931806988282916800144981790848262794301790736959974815305272849877623098314797801362375282214007111785387818414389623870928504217991280396752959567951138379246537693524620069435698364846839452103146584240066090334626884713328331760285743680474331282322537918949838251033524301662805583615828933972055381669285320051265794158682591195736203519630155848125991377607487365429563127368927461693046338982820892789077656574744247329928595704178557487611096169623162866027731430707731563409492280754400984454654405375741742899989777133555219851333128501831366613986820560443565181044297613391019969317877611414468615527166653143386718949141534853348015934262247434377134353033715556260793115842667323194126266956813472194800978599275670398190759112979413340028962139717615150958033563482408474704504851805952982270936964953103201020157694020059441628572374537939292289940333784832076626973150887670123014817352140468183444504616236645184747828078758256570505326081889574884414493950462361926530692004922941728895539047122994777209889451925009233270623110080513739253606376923224272384219126962417758415967457135384029840455163729154162967447661813294693071053762915283757077466379214185275766437015139231745572436731594455938516684406048699238946379616987342871602759690119059161764882567933080381563025489850085191285891779518666627129673394552130832957465526180865350453959659484603104725152379936238341842518775645651913980445014004883011825991606883283119999331073796867176225322242301154756801604512652482813707618592863859210448913107322430140778782111272142660357558392673220298989550584998951958822616124377209718136309796302706678965367707983783079940679304662425909883435134963592402830180702649917711668919750880950872023360048417087548034684211777469494050258104525726539101171172950430326478239603484528895970774062622268543473606646568898921782980208928244687229242093158870071785164847036472717056570068816159756536134299273323649164081673122263342968116380447638485625465130544166678361817382197252872397586132047042170447672077226083032565818229597946112119975236369874645713762694318221788202145445353900556362987140745837255182472588666014194805737796661715467748657187525178377905260318093011159546181590423792398344630796871959506702332418387927762385221595919870422393021954976977672986463609754452955656107625120334029280804653439043692927339063481264966239374919803762134283894790404706590732726837083754251855354761129585805905009346012856593853702445112166323301936463014096880718702785840476406549467515041743009774501533596510373037580723813820519870219518346146687256767110912161731451663416478717205593767599889586585536296216493976732818160061478878760488473128147801276745342155083355498745624143848368468067535273742966409336052904936274442920044366075469607689623749107931960539865615562355053001029309653235976067893509326508690836906648185889796349919264368526682930932102150340131720903830006737266072445774108901182558535236608263274699677247664693212870455574261155420500233910362621437986984949082084672047150012277604527602377198845166329883875128801737465517732999747477530552802135426191834389161242138492565973282731916487025487038972873043219547774197266549740538698528731136751062469478189275779819160624142300374604203025540202402568641361989302900360082858510328574269048053155569975841542968861873111201211332926880872763169910809301570350886613781765156185450131834376972442425777833084161647929143271456610769795044981594578018208660974222905397906488153860122164304926169195529395106798734853232680755825256594719324623835603506076965069364914429341261635845912304109806468883212005006361667140080188441351029594865810933702157421098197560772527398084924488058755255949998989609874300674505434306003337024470987995376371292870040523370898918678992959183153490760708630589642821189313519514833232190926195630449317337905198933457995297560880311988554874948704334828984312126842913751687837862847374331226812961162838215169060873076835450692665135687855080481518612428579696982831148303514606287969253787468116299585591464031478575060357503874461717926302960730743858031361173563059567169609216578279415297579740808873609808446465061132159234634748767405648640695143486503518150124869987636947627529437059071275582989115982656048285430403031470752985287841245547214318135452974216374446174108584457806914216122270313922454677330382070302960232189566212868406983801976021472948437329181827609100612707222952133078381768655283203117457939675810422911296669937684927308062461030616138930862250603435737345202788695090586030698824372751613825155179819915677637329829905254949446220131545155148712056587115570695455495760769872234851944804595835880692558009686753156346648983124822877666206129758231461215349773098362586027049341124514861681494912641055210240406174946397884817524064732566917044190012898042051395032149693115138493819069562018501273373769252450576798135697534927903775447736643323789279742159470388321562438177534751931312919452958724718069043183312104740150327387753425985921025231400290975983327982043181623020188502290607497533704298221511424682320581909218914208259260915993816926373723224354928158355733045056793236000695526152849533163681267522647915392513478505837028741970465326756696616355241549569066903181021185476481649955205890373411776994558052552687863985007465886109895615992998450219184195064166481701548342043826528905390597435816128168464266234023679669348673242564766416256652075358117675122452888776714609289655868198720085766158701544691162067847991641858925305288169704667035405040291822427321021872268668181482051605546217393576172743277929014698566436607376516786747048603567965269388725895377618924971571635253910803072197747349082579482050474422597271869359621626819263271658520863741115093493104818075863074696561833152804578046451979163405692309962094983498466001356038753993195467748586988735298615277518045132423012878608503528209984695007609687857045544464168822179770068527030551478905119151428852180624734661574724040131890529861161675088026505767726246129301235078000217001371172919432363943921079789496987623703187497913699460530290413860391884256415646096178037375590181079225372602875573810018715496918602643390556659109348107602204528812986858079191613193498599822283908700806241618741083500061715525413119047914393738388240589795725090069993329234577605610285775762949525433953247942258445990131804416278996726788561273137253916693462986438161167457486692845117096892815031059418723483868337576637636727840997277849196021514515440511570495416159950452152808884361940345008318282875557484222442865334377078664920363843569155079960317582128482838633783911632729601499825443166789688753069173024533064968251779453091537347116447443868695480920832801274455714510365937839008172458828290514412238404333376739615039956123075460482487193141981248775684134539743332439688972265241820806365560811417157861913805036904299472267987123156327381033332297015181175604269674920077637510670273822621378779181587980765026045190803228467459283281106196127692075979772714065766786676551622422163826118329969318995943022313833403116916474570669055829678825585504158275182317150572510499498062407668551326878473064479030364304419387398440984080718753922365962499743862172799369474650744894875542735637415063628574810697263639879560613792935774867635001198779283260975271404119991651413499414985617432163223688377663233959929162248558854940684371878160139475667223535154464136583722110786317311481421214889200093040678707129820682154553769793209451211479559820586626261864311254536461964004774049555027578777596888063509870340142433485697656335374681702283423264013507037863856587796226540392782615902777980361736729491773382633838390599894852719320497769681742912645449943554595327869663861356101073701872314754533313635403534402700645008338267685203589611579058689584028934376339229318360599385300124149578539410181438432728960542360163074785113118406117037740471531284964134548924210631255769182935033034821288796000184518732686396441984677107590765581449505495784267856287792511770973085709342324220712968229152005502422272271202453969823015587982603918635853884674407011063746799461132494729305310972624229228315873600571792112921545028044433175717440020098851830470652259803482337781202132466761115315414563732053832566300985989336982197073743804125442295313385295091551544584353000722547615694134474481190859826480741039364702928111536334340222228322091882554784759805350156491179037072981646595869920617770181949517474890283622009657751512983254170717199924035349197507861163420865775326645028137931868885649346226304785623506156758555642301234958811393074787742727211927750661439796272441466350063990304341454467191633280685719454061317738448562749899804267260351141872136911854244020339302236655223042048689926616592110216234961007952206964655303316109740313176130684834801756073118406510650255443742460555666801852594955732583091307087397035315501837382753046970975208712807424024512455653154994806659647880897638148291227753187001857811777053403129991674693959591510528125179177424119506830397164558532487115954076814204940025082736876826901871877040122085350619738902004333131391132776023006042655588744650458802743682097400379712439800143529231572350756650779675067155689367105881981601772060477465227498086382444240607164617171357131338960064485879306464811438194320705393755060001686960962574115737157078996047526372133387111063393956953834676120119903602157491248574985288359141065912833043154420985201894029636699293615222153440289908497353522233262667724656315785435561099031021820500603094399140584432054133932278636588879723842558236511063507883163707590727769493255368565709285366414249969051883537835234635166470283786949307771941729593292189927834731013887764034674601757185490069495129981949180308736218930144600465211643883623615735073278092235328222054729205342188419323745614494502135944396856055300553047963121760299020027100834307357723738356562319335539320995252870480895358784197518241530167337149147046298935545317909568420553013485299830208127137791162566440232775792782006877052067678356646589525845478929877829064644852970052597288049624475699223929460722493397931385959839997596905530800955749125983792807547606219475542631205469584468375706731420936097152807366092247172639013328321468872683298450484757327698190888329365221845464727519703895507573382771962071415068048909277366566914560909376052126588289198866910360839729126538585690528082719278380450156084517665382239283756541138606452991793086157600119062210386095187769017833225842603481028362388956750831404927057079465987967764631523461227464003607393706146857870665006410757244347093136507405868593381032370042125171338447573748507291373807459009631704224958596390427919306427108908958288040578618736167332041248677172647536990085117708209263253919052903012162948244971891491027020220580361275530409978335317596744749367227901450802711335736807054116713182892331577972274868614622009080897696709046952500152506774813075646406726365623454371996702205985469050329101735984336785906211906286230559204830215906032583460542232439153712537981957552844250128739137934343774228599785203425896252390658245758830898019802445198275413470922691098647762507042588295695571777858784563937801745620461638827372226912991987233437392611075976256781658891903772415630815061518072869741452053483887916473912053644236818763268664081144478305872539546747875624171331837496412965020141668063299257701798876959627265164796846075215660092425667419878435467917756857877912546090349943937088214266747670893240619245183919614608687658345601365079769938854869714345074615044079899548302631588735721013921927544268037527604995107706436123364221617579894132358491773195800875989830101846547836218364059141751966392137659907731842921807637599606751499138587291412732656662051856868040670686427725075090693398446868443240475322340115552764438054442925138371593639351292846872490205241636838473168067534434781858137719348112805629210408907391943286792932616806726636276414407538835155557507183485215133427019622434964990645184711911051215129973877903014837043265696182782022578207036443983590721515831879004282533064866664985219207843248263267090215203369931015751838240239049513642098501660090554558545345914139197520000734621710085674287303636214106994502936365516854192060296635242984779007748199057176539069783230502890500903974493860418152421899553008894915695644096921861711156619289727213762399302294063417343841592339274790038930588477166608328869765566302274056642479680761031099200426498267354526550109860372680725963089781044359985868038016834671942950641011302012508411853135780937272871556822918284559705484008299083792825881066364472171287643441860102211071622127582336374376012752970204815202334213732589437701568799309708889960402365755208793384613467621735084202570176139389637417355649812240093408365082472989847046093221199325774349207912155529692967905771970420738803924830605097191385523910724945861756097400623447287905626664432148566047362697496634099902243689789840889505626487240562978565629125233336336799636021245240234018044522304710138631515356954608355420211008647337560937504872156454919257727535508597880567284587374711363350370694596616491623958008711120335979432222548056672550842085618815201005419589437058524283515476360073568727693186899629354462485589854599088844545474188130483075861912270572926219630795068049269914803478977434031483799069954006028524336486515249046924102636447479908994657073504713349498518329582490275402022689165632263925293311402816261625716489275014806185218224767603473868305091009445774504668677631073459305080647155825976687660840007019567473147880532471326270733584654348700872632897536027212003344411483100720309713557463623124374886942786006978851230605412168957550723854360830671800919320609536777801944749305894168772341721711465572858819756648132175440867187202862223463254309752968997980997846501257228233471833137244406668982857431989949197811164175295868466860633335905182520833888053933748635842283583972271123585984441358966104775165161505702775713771388941724548860453463873088166085797992985243791241839492616308783348616134779216866490800919933910157826194173001413555464180941770993021988298047159127552049095269109405737945663193070141901482469116761415819369087584051229516797037629201422489119982087087199902740610856197703522095241038879596263083994387203294294299689032056951369335180525444624396140037960283150472571640549005127575943622151957865696234631679803001412049520840361715672291148958844450452709160921758647614513739643959432449944766272014091804626549174816331868149226759278478179391889464691634781964316743225748740190421420019628382191705458723433023083271335733017295261940673776292391327864631568392199866213894924605577327174670876606980575539120122436952686347562707970288430169117368547033828411445627176830965639750568588723918009887387034667271759802123259102877233740492767196453012697882735331526001527757178731247353627017589729493038439903640349371567723935263573096030636208775325042458685838060777831715692075715035849234928139963048946214708758349283435484867669735430087603270603567176686659774449235984790566746924294503092918934088056393224751220010533803825453872944033034482194990165538422738946779012914213206400920234281167038982500552394547021673739034372425969483176155518425550362934489965815314918870094236584068120090710574164840812532138222682351716251124865898256340382306620352026145776906672286711633495039165121035856035912819447361309463128224934795393671245527937280187124166241843510243019619179610535118771428244034355718366744971324730695479792999116800996244607691282914535129495351171213524637606756947967879883764830797867423421139681987512756523137380331967298669204481318660914635148936964122041008208921528025309693384857247884330281239007756147700588699704769423634251642647111038819088439585862000797892114361124360094977081814436166364336004521683964695160748878650281980142155635033770941728402845410671745497752689065533240257479758741096857570373140130599828716138875581361207763068663188111035917605956165064378311111145517732099476734875540849628313578199060245954631343189817567966949892132686377191221958624033089138800102354544440684657486528462172861744988626613259582216333878377503249215853970156490348567395350516482002030689728568175987501480769120076140111189325083414243770957700959741385992585705282037301967099297507150226303891880210853294074671886719765788134957078054818122187824921167153499176367726494724453710022930584376162979045075660548129985435231656335464202070901756448227979535367884878001563771624126383525831646218287012377198541076130711638868404998628706809532134242990536416989973641065988842617918252986045535621175754655470459303113420108040505589573672731023679365949080863962181609681642382198686146186533945247337592928030938394730219622206710626093485016984951420770443057627755450171238901486460190974693350173386124306483664458787105807263932127792905458685409123873389010061775043031934887483270241053191651467944843362010031614571539922467485754077710098756225417373933160815692129793052476564644516403941922306542192624663433520845191554209589606708950311564265104145422365182694322593958796544460810907075298035301674658022940695940527139306271677971760751326031358082118508395484610148033073939687632911286586330495204610124590880732408958389181985687355383615594506399805090676102875536798635348593430826708644622889181135577154186548564236529588147521487974129286768685947879949391437925624856761462803573025398533824139347923801073142221602613657362940866719621007102927421512660951945898708213536645676558229704689800322217524601869187840022218446646448593127571549521693999410286421163307943071535896652088028534051841588783876766833522957026739101136352936981024307791472604265815504114546528445031390486672829425802518039033495513382915259057896440509016572647187437566627259047662172170144018200361266522611960534753161163556953183006771809565380040254796317596845989457732709378587576805374090540409889016286624613346324624950876804084600624830991024400888383445016606252846558185985639150954991466904699153431436222127037216015319324050996516495564263585686255000271602791660984823196097766543449902535310568437040998153662013713001722912725878091757071373390644096299463191421398164791619965867851282285563388312217914422179885700786978772212385056938744764000355341215447707980414120021418501893156236905270006755048018263153103225273058798105483850029142722126244146684361248290421851242417582690442836746865679251766964506005217015035224737645304018461999153808400898383349353862179520335822145952518135482927363604424799263606433963226672808233167226705342323407968859445099971975296492945870519910975698614336081683132484009991962832609901194009525979997404428439189509683502633652179189138165371060584493633249720815653388635977824194509479135846941877926613738369379511829736956344850437707595148391414343642418019973767012141209032013831836462478393740752730620902141188282793774429860159811759160085150995121662870258896023180293120520431334107728542364793383735093146838822617954639625894464215596185482476747336648463463844696141691954980995668154054532105391391754048850821419217265562393683943593126548783059252756943779421709259934449904313036218614308116016464900191108242080816173153968840259773825573090840328872138844940268459635290732929479677618485028633630318691762697349123268494633259450181564366566077519860331202857385902799092110375671928248726258790288787563912624604453120262583661289943287407006343248165564345882898949754535381153628700317237945828352657025044093190980788418802906248815109579904976560857063326654664688111824318904349161245420872029313317923195306272356029228940459221316698843095659010413765343984331635727596810195651125045529083605564953453149061517333867645366493640797027339969915542220998340638723551348940103252627011090568182481928997574040282934632889154864229661258444735860997260419361666746299147809969206358904214095718504842976326531915859454337223159154194879812426241396195535326160765526257882805267123669797866975275683025841513789602780560423193966976279343983630509078147457732072953050732459472826226042697011808790394940923919361933418014797427094938275031446220378065269338308083960551791074532914623659244672351139279764546916692877888110203529220269413680867863699181251631672639691594845990349318776663855080469235632135103742747386083665754082474712313120405922869817712786271152815264481768607353890359838037049581055210434788852335066531616475654664152888363029283701509468117629002658720219834410566135945182415501344828133768330184866751197436382947692604442850506001151543541696785830690673542216235076788948657146024409775856583902780468936198552058222015118660785409778725607989622181291415657812761500399938679871089446421836849858853730452064616503698719674801024616623060944455666250738382230785602881613766294682360881132909926325783461874406614642492875674375817270684141829043345674028721170259863429689421010788056239528051344183072800770084803589288707359668163276309708216224920359601141651508729861766402081955717792572502005585746999905279951619822288352303688214019737898929636238496681297238557700750341715050033255734585266513250232489212955032482035202001325173272711529074461235611819724102001968093638226211007911346580149701651978579044376451252981710124463822652919258124238029142006724806438371741477519524541764496614356964904755675373680352544588099569396185818246570540784061778526049520459986205669714541051770376452053727967349299379874539469804456811535460772647694135248203179706412340357333791610744451719648963657729181021239011043077818146775637905382894741569885388277460846610668508376708525155236551945117319744653005048794223729522146315345159219322315599940322255790741744860431870025052249993085157680743180579623957956256030833588934684194488795423372972602935485245457986671545277848238829184236801017102795590592226337021892163154404415861251712387743739220996682271508977308457552377840422208294931765012762851420747113392254133167244088271731743765776480529347550408673394942347409629228603100879631612855264719856933581045102567925439566310942685902453895152638385435520856130302041255515841755549175070227065476340582992322331907788218556850646966477710881423987177931981083493857571735002593978801664025430584790996020395433852045886973102004192547513639329005400935362039762522599849938971442550240857418041756591059432969937127549359230395378686163348546137776898500389332150162345162776810875797478320862359141079573866506759612567030208150416443361745793334265832802878224792320015252507521083655432478887694662600877607143333498652391218598248865337985346963315661577156371035454355188314310650487078530241968119702845375574028978915180270667710342102594930138254677027148468371391437758483532082429179482477400671267410831666945987606868319940358630795407958502326521222807661459370671606796183771692955196841654647535281029010513685017152144661318927748417419416442833442052516223254694841443230591753210349842425622489247079642481062788400894229232553044289077383693398422674242989634034241087806618767539683287915525971394819055294957212379822155562375495216109475203360068024687178154861195731266300200801007855030141100798694927370449688646082168565199003765409785067917717902408352789445583441809933729737774192031802324322615305420787570449077058027695648209003537619425206297417000583201878810598993848918101133822867281469735695116754366410452625843683704379294551303199130336678697942897619671932848882219037526985826542108486582869558572975918631480938341055075280180033201491724436564811583309196347831435933110926214055049661909265028372308825062700055108044019295255383826797715068468536658528208403485482015584649071896961691684045472113803998855625836264747213433666020094422562074106703109437298993363462081560852750178522745002974653123067313524848606411746315192518640829946668570331315162569883560324051157248184378579841709463214203559291490287671189513601412153430409369293742924660206959796989308736726565235339259281248872741844134126190665359464763345762572105707226660513814801557362760761485546654737366996952555767210208605050678334868567576905359142209111954426317432777830686096537526798442659633287382658656689105469703732878380839726931491946460633569651097544646919604264478879422756678843287876690007975478817767706610257902401101511641450646362218125899622552050817428138870604514992355499646049580789773936867504727995129909103749565948761201068563224708998255217833429761414845654759447898467776266570872465086366373900008763485459405091859157467442394899603198692849810530542841093098170439067203523311520133041531418496765163020894104337284036354119855720500808119701274282015184172760136785803987178236386486693255460450639210889791843424347256576871478717490509163767115435862981998319784151494079435047156404100386242743415061469529125703819765715914159306224005855278221865211879806450726795166173844560291609855146812674473255865784376781199754016291888880084177620187233965711584033370656512695472880596583850519289930908483600288409979593096933619062649860622411216189170833516074030596220629913291968631391341919754764724690994812513357988741057768925724013602843062593475807369181821161978423212657981294873633377879241839905973056761979328960271969910228035870579000757724080966102528359369250695304652040050574248404866331080462082119773777294211403693822476535865369939679890723675244253916218462527161212298075912954663522475894107038070489640332815575850712687715433568997727687989903326389367958827516300430709049555627350825841051739305134288915498686293653562155112201910308583354479580928720339209258537619824412811984311229323712896054041571694750061259398918329717792752479618150527909650041972826729037271199587649608467017783582266974844546604363016593155926653690658369111714100445987354311984419670074830193479591169284394380888783703006223184928827276347787750853864495983033470742878270113426530525507359557226976901430543554471556165398110887504340807639362438225880508078381469033009026359019410560311329711579965318584457145892367021058189751441145153608511208953556592830849848914946563259494708873856606199753132942224284186229303707221507908440242885323470749971592690155414347838257141209840252144028459270989442415326558482883981764978916840315153869329040197516168117403222606561528495237934385062933897833998585598981429182551219533340168282439365786578539371761869328099722562941728922425284779315324644980125660696472750218162630403686654163917013941074546015622459083150667658551753368866512246922217727320828091548305309614085591811636734019551565545137651405739012614906983694281205578905688738595124798516491771988829329186109839024629182216334434757720019573255845469488121319279084885350078714934079586462304815925357164708012030538142588703537497864579699422032453083558089343619627350693573569271270354278693298923245277974425703288431880793440205445624063389575022786797130061339834569274859845245556646708195809625275919251564518168026867899710452529020906784560791421947348729308074389430591956417852969397335336253950667190457486010631337815053803684320358900231536213102113178261235806714131489833622345270683831714245244220689348409030360338595742222766613129270400286614932362803219602033882264369303774842408327739667482360709799467787753851706725154493441163415046571378276188255874464841664113276594458515293290106684859841714029229777684305153778922724252913221268512109161540022753591508964685221275482534660462533888035798687345082671889303381391792559966774564514749529554840293712477180205395259415569705174615855229367109323520342420273881942529959612196155815926148621357346737403123978088920662733263974141806379139679032524713153334248244453813477491291887671429102247366472965327355126324562237027898078479192942158047707034428957830288925081713966837152621511076260663614830109918372538213878336903923708461480055897174157405890179388805647813256690660633218398193888002281270248896186318164099470668727673182711325144495267668821063707167575429714612648930414355535794375338714812527999789557384674907989936166925372519295315418577978681040662425648699431424051024185302494878620027791800087801740397335735907116745858153530430617352880989756095632147934976913317760662322689221395263457118460373952529816351415874504125071367395474905856635751725794359339783630484553351495017250819210755250008987287300480417475918823215530513527563789833030039429346660045451865248394672981952040976880020187696697029444012156220717107123673161055163777465338685567025065826515828764483534117463009526278591686378593868014892988845514691512684621392323049011583824571351810179264445805809204589605904237224986964206078786433179309827657657014807213047231179683931972970932034067664671135705097542965395303070538059083062685932802431258551919936700372783517919928794708125490921435014749029974097216794085938916983363708962047220503206740673179297236529911673510516309469359473783477595154734678091606647394390027927771401090623829968796515759721177061658145505700215885004502646065633169876755643975341157188571587659737608052071236781076354572585668834046468037068083829510882990724494953492040233937221183289853536198392177567410074120246601825532478050601492757256025686955926992998655479096496766976805669722423830670074592652291190874260231653836571398439772044316063406844152411073555869169701658281751327490587626178936654608175698769470354927324638455179923407792242171697924061055357186483909064161363883560408131538822319340073146559450499635531034090474286850550997384346950698558122669982325134105312333173977262423459645343215422859376032928365625057880557304898552304498276947668292504797908240659806742815457528918930410470190016911722876017860105045110081350101633419872774867152024748472594188912235692836963803070479910553938674124094869204138179595884452485182892960474079593984691177349547980030189847033123422250542834333449861207741130397600628617016865895811929031874312902057156780279044577079768147229948491677388771024209904000463779153448786438948909451500512358789056572089444900543772133025416963127444579832560601657814402137539495120730713885736821948853928411954426185125582385724733189522362756735371829789701123696320918232047182892665906971663682808388673194004181007622855652100258146184335902201760818115937069805340568864618873967594901875758869040115315249898102622566213928437696443046865200262255643826898149830054386451874549758618672968142934510274669246025133506219665189272394628494125880979702438245962514201394456310328511028485005658522034521585608151103790003386582288529974871850138454716584816399211585430392713495031594330117608399198331531458587721899512135773543235946422415949170162233529922966822034329790908692019495680793132022785220385767314037327504105034263327275461207307010886707204334354787357990183284371506912394051795833679854210649024682398628216150044871466940526846321740683609053918635311410783469445902755170687870897010419951074829273349210845707938194226278933586999131727759637081838618095253152854720309428531724659506895080014386030937871655329883543405773585195870272447224458732157454750148702541370792718161414274230366411968013497858767145399776665463330141597103115937748090719617291427678022623690945282607008880376521856837622014526913063498699915615369140842296188078801474753126732807033123794486534962161441524658860789415916634549509171005380715446959044489330713119964170957667673147485034364543631913915540661922056542839028413680332086216011508996908253465739027921366366621304810193756536740383143624065495278100797291102062989880803831944682459641194924149966875274707512359994934525449089085451467741670972295055893471803825540985744873591219343552789933503211514149473979318319116471720858638395421255008609851103654092973320103873384102647871920738724328455927050678555344653585283123944461859472497196543986795617720985383921625843117474410718029731392150645995424373840312862728540139414700559359951178034391549682506112089867037395563546307799126049767311807933994402028579699098532584421806332030717524205754952431814504836172477320010291131514443535033706902342316877225645524500360796119843353386926068555396705548860943968358798669152936628005076640489700715262719117403828985696035858319017068688338699212520791804758535688632251175247987998921162043538462730561257551647582025631581053155678020532819485873886043450534412934074785332258669244597695040176905123540813522220017174115659673792561882966455722276064322198773173621753419508724266440986188800893605597764569583492947534573165785613363515073604322244424057159564546669194071303016818459589627487628421908626155661067141902283176380222556550722075295599459896034589918989412662792076576319276872448384412595039471512116024196837128760075115310597003485921875238775086014391267185414510306824723929879868586193985487531850499564800214338532857267212769359108847108116341487511430111928039721647101362438935062848770834093662260724576150411703156813241202788999765741557922433334546649339076609839604170730348074859141119100871449942620299536241009177732301202609315455841145946890239275966819325637586057109128211633301055859188573572146470929025530382413685561504916472578787842401954365223316249639960703370514144635697757965922071683281945799925018335338200410828159023682196439907344344470978766718704141803487230033659988489858274519134573930500839816943977236578323099035668045070673341530340775443495175825948003905313797568203401231016814110767639045515201020190492085091761573597706634666644297065629796586786696171092868849618706052008992744342333347447174304369390638321691834067018655675918254255829486947337737200540714411112145573577912331074921780449349901033357345145158394824429473750046610353398060292108432414929227312428576907449710992196948199639260041862211970420441798093730107939847781966366672296599277204444807566146467977506934180516351369404125727247040215364112595802246399819593381842627462667171379364030765039875073093921903326468570647003876357898066858860022859129164256251790938610212582075436569495476971763378426548366395346228039602068026832023759215327378024073264363539149759678029521754798396485198371469008598531682494007062844440318667536689572817634911909789920014125575716683351266480514427071947498978178975174164520916622174216353238485697450461304366672663188591069085215148314914719579768275076645979584785340399538320141400917405900259611667910234668171675763516124602224911508211810571900800736909385064564818543035465569443161300211596781135742073490644620396632865943746943774025873573385143219199567935492595567783600109138538514722938512005815911200663173205333957943164075032376317765745659201209570181000122490298656445587782773846453874616708369946978664675224550869980423240256875898124991898246084533589974803481231677345840606782231846968228618630280517985281822514691767376325269575806172553752686745252225003831820488441651197032599332772037533847184663829992141427598639194507414612203633761402870194016636492930012903730161640299473636472626766839944026473092853898741188096241055888089608652429877534055427671035689949747656152460323690058287122690707399439700326084405896066402295349579975099175947998717202526428602380122798160340540037600165184744668647291339197616306968040994729652591333776801524093109213853955698022300320219729014302292243555355543995272519544505918928671199749317065192120285130132524724509668816435995669230062230942874001754075689597536164660669088568998587283966250503518602974471835715285850062862185973813314152646043761532828749766195346240017880563517403782271189338835390572009199710646848120727195361446703204803234750515129148095335705061882712050867128971181659985996505653610048423656602606835488774969891325279133118283420425230323339163391935375294131005981266392940156392513187705669351867788361660602684861846416895699709886534624606780953741248088481247544474381883812856535773820126600856465539223170884150279737502139257829424588252038584239291829034188373911868171772789706545222475195935173421190593980129191032341628503497325274713276075613578132445593880173644737338179659476180314774504867793981151438575230461557395122863006975408356390574380847364618729435264262754547328581056408340937712193084107981336068272595691281869093568639279412938966607936013539279868213349089800018303817179094774715174490547901612878092151350210330577257611698484648468603083708612275582331796599956197847436731421242460787984172757083489623754234204327607871386897755997972858535982654314974039033190493556434836849090541870775759925794379615384991870411793410996688476917090412231397802276818576535686446167258989574184105604988445336971506968166336295683361835167797045869862793165887886085987146998298418434545947044137602352502796232983258094109268920727908781858408891638304922934971566652584009499672998036836971958042338422918208672989761845978391619063984305354386410206464654763560079432543071396276997228454494534352213245410164723848233949426755800998013249958992878695077151608951732573835896985041753917854665204784439946151541608675818029858279548392188750548882730200301385488064887649788459675590901833558598624779381275395951719644517710771466597672608495543954476683090300593126278976346211955230069004017111500072215984797067320494900305147640624393460102063273049847222503212642408149565652042564776846167301223791185546740818332567320203284817034065499938068001340055714805210007183935745076790719536847538526977631402573977281688989928485538526139831397925380934673794235564302197960433930874009081238846052132204181672984432556424731022312475193198542367475218937682341689330012791236585117785959242652285256884914728525021048342530965311967723464459916670701912223154871321646902986294732046377207095188869351372579581624971225679472154918095559338541199078093828832393332612362239463027566566526920270278318061182277123464229001036614676895611315229968874556368959220328060871660666627986341596510763588579779937060459380736466038507377657044379498986906643544178733462700147153167891500059317029919619499563607067841115482355844177189296908717252946691121990806406430394218788224289812458629430543108706940291903158454681007950488714737700652524916860493353385741025576805677568735643925085414670074217344184182296250377336952087966791897693421091466860829084629971078752450211716608519297389557501845565771880864600934765763358868476785076689199557857346678927448432551493624072426927163271904136079715451039634191811068934112714723748887416121257903202947942968347811402687550153820579399670995737292356597080173186279237220269631900198216679028849341007428492563799538812681492372371904750315326178074233774058921584305212526928206898812093147571590923507240505489516348479498807992042642670536423159052724826146520708913557991064221006219501015778852419631393027980451994363762934131180842100159076685630201453912149453648961099156689311290729999546825779128959090660292472479595439513451516130821006488741240261069749687790699057823205324202630664529855020647458050673485232083181158754492358303055517944883844031326579450643851833084941014182715695778066253680061423658068643738214342023680299634689723998873060920268000480310926330276543545918733832468695411727399275443488272576552091281153485718585207257996375558429725874456084987577306920719892584544147010766417640656154231850057077020769284640105381109315019621257488220313150036168484811860528301607166935075565138362281473059227177442139659579442614360191312961191803215998420827873387395130327579084927659450549012241865417008324057495856016522312678325088999324730794776956967999708112986946181562462213972131942389711251757538259943413137025131080363789979971204542078503390094187137779709050242000017056446164057422097209620359441594429964475090998197403026854222565007216954731975147261470933707062235533667096756208942373293409572290980418445368775244656510940184584106142982759023797546881742416042532303142117717194545006448305983448656098153433959489673811812868913059796625156501089773902422237650171314594702624385589082555888988256636520612310936885664745729441515579453564394806648590704868265060100733826141742041107980878949818888997298328870290553777797356602683880752561340628534182249142889819815359024389762764622977712104069206995998178807305853604156858627827073900222733317488916391341695148012335164315246829584951540972657713237238639570271925695762948913298630704475766911658149955370694556392752412371639424730137767343079505144618943145593775005513845377859243583181024949670637431311914951171973580589796224110194398463927872378524189743972963444635823584654419305826495094573353775037907331231902078296799392848965270033170907791595484842200867188232298467180738868029243097636799021664054939845739241676696256524753444200397860710999735789577783438958909398593743652269590895104112753754509151085593757288974055119365000026225634535899664707754681826422698814513013160998636523967162775194228674534528295055637032866720475125613727443219437092544499751259755557894392823369693943753745492726413537319501600059206197806925245694208975023287768645356084234870197475882769281775058428482565939227022438392710235869966994607552561477545594188120496716375773365464136428015300246221576682889611339804496850496603515654767607378893294534097361984712250798013580729791154849610073468526622377007576083108518459268290007435631108966076415010145499236529676080751868425921208120222431199525238205647496996331750278300776060369601738017443439300522006761721550909117051820286229617149302676960550891824828750038906628100403245908311873011368245157548544597736727251784179555029398918900589594508152754840148854232200192778532553119836956950554015435019853885872161944734570492909845253038179376318953856396826726439681014098990016197932475274481323951700764517081048563813126238311587221832032349627827124187693806046917881989487406266227886506116597914926706472945909935764383179602293447571727121257989518601975462359890561986728517146291545300608066609465802825439724356804493250661951565409689498405632414825145562235445098884175832101928915328532236609991338755480200828537895162294583890925776296457115751194527075311495434676617869924141855318015334881458451155105452349597873514523590364868367603033818306091379719488591564389465355610607218519180132916860398162736755410891633184830291532292795455028714557043218269893522250123909573262587983273648153809928196318757989109043373666063449744013416203006279120051232745042710773476234720027686820348394863667592478815648845274532846771080714158875738168990934208428698410103904105911786977840046264835085870853376358464402761535661773017734901905403574618983750108166014538299731103702709229776243064566818775233969920414885628842089615489208518410282823939988460203508909009018988148373188694282303791249288184098555109850560224306316103040187188222674785692645570776274223554176760289083457413189205514303113848130480600646858558142322702394284909077068030199380791682741917130857820889925473377009566952709584612922564047146692122682069546449851983703122359929903370851158171114532498489297358048369165151617087612450325342406830203302997299317094545395757287957595116020103721577160351301626506880967514938698005403540734655204143045059591601910712790816744811641144077947649712795779685117331747167010552673859192450017506214938434453115888172252825382934842642019737947165416123240721802737336812671009276621551871230117824022076801891005876983973736882987080583756148442177425255879107737051848690058087555739498876878126577479434473050828770321772059715110102688758591401922373782315110730962222694442390536504000837437537073424021023529187109894309376017703231386021565470058071781434264224970366222673953070798956491847921586693786484773751844251482358435198744850029817777416301518006880854017859390378157410585571343944042601075803050813126225392222051185433229900342919597230354023154772742212527526910436180590613838860066577011750619933758730657940970446967518306587950559443115604715934674929378503827587187322225165758211792453750847807199468688399598617814557994524151131021731844363571516697482623743571805973551249422060989789904025873977165776089538632978679846410661105142207324673461224185593255235413793886783354514425631326438013537766058388295631326572281599218972275881306221805354796311977538768619398331852210580936805897595226280626355815751459192251666169408099948920818231554341727872980027660811387715447766375652628501516287258988606453268232567309558608301023050122315055548701981316196319757548364241108031120649602791357404314815453170432988581288957868487767167573425542958451400541378302798941269941861765313471007660495843565997563349536392976819158088868452588608727660213543050647677618058813933425522950289365868191481063147357071244894511511003486183708949451915149461428757792397561812353314351438891973484918266441653608629808233512851358575786517960986986518564905280843151511546279965273032392058202039821735556854916913902319507779819430734030988820867888678939547686025376774170013671492425889998675584763843409713501492540270229885984892443166466696229444729771479456763103152578436484314954124962292189637520885559997831394646405927974549760085133221963199167778327275904544451672685741638894152926098183173797448979292269970672295545343774073934169402139914333375252031889048471550059914552215558864213576875880027771389457906350587618837990154057208016475254122962263055372520772295466210252733692086160932314073146819174444421569770703527404922547144119372299837392849824609681460941336488998951070336507779041470388378016445435115009809665688320115502035532161690202574584842758733749813621795887075892022910127924696537739785426082473668761850946189875193004427457565324649659197265923220847296687978471428572300869492585833932194639064895642436168905360593255981388174265691483646748675313927287581744822369343372305848298706356349473514642596956995580329389189902303424297022161135887297976715194595268006401909595976210051916641884423094442009196951323791785838615183900446348161191103097816545837744170577570914383560184025605922341359316160666917978062108985382462460677548701084439390189140268088230243430434611783824814197297333942828473088516851835613093379627984833180994817276549905286595642923721482750576352208867077455967193433560441599970499323764504276204680639508726389389901451878273802139989630806119513719876902365200925626439148892594360346458547530893735541555147950485249522513189963644702073160505825236105936196979925495717645909323369650264362964383478645449998984428073684287883786442342751099733776838148600783238876331749571988140755278608225402869978834564561010574257109112459266268188926120755513219815863392055429428325959081764161124659546921446693119295233795055501579370639035734424377168773808033909013217163863425652646870201166698686842334531376102780237368413133537975641831945507378054353721554746220087013308607689818439060863928518280213037208682191238860383102615243038127642180641590515989627136135074249370736641485767126071313515981784712426724337657730368779861086954568802035330058201726962062147544908580037776903668722471490260891064572220903218239083422196428715048938614896290021154044943614055535185779335806500030926321979480147903518488417505952465814558583350976170754883943622167263230889736691446768936589453624157092501711894498153146329539572393333771140698306795065984574390568136634572353078912729720792954096801873738497270305634846544697458649106758086435334865747602336051293589561812600141928082722369519429522323579301496369185190950711779025351726608962171583917008475127744394622691162822984999093898921155725477496804438510008044319983733066053640674920140299200293037477493101381587253834758854147936287923045744793429866346008140459594040184072150310602411022038022648009522816361262618577037464249409127392151231989432802416631805104179942629000613339029062105535712391907524296266061684190258129336374825095235607038287997376489505399168835984781362962602839762640757488842350594844280855138658904020775221684977874837325475908798910586337252105565835369979395047897779898293739234900740139846926431209068552380906548599916725081192390429297488471942387674408376582300092365784013946845632452718349714552193726346150678425054690450088112586700414522317093090366595228850258709346926174471330951950789074024056603499454761263455285374069750950534615453447899077274036270357316924787696169735828080494261773551200802594156167736634923091208634880509922056047363092924721359366971362231513607873831927195626243514626863114119405613789805043711344847644788502254757179052075663413402795931922715175029997005947468664753417020242421562165970245481538027337606384717140242584647987590420959677013786583505703401033930903355105415486331269635566974375566206661819417482941811129342382756174711983513267790269959854100189575213062761694253970598301285724923206280864271690371889835920169216157393446373355898366755558895368882036386749328722207258766780855811832443072550510092197432786495513600204138814831955423941124252422349059708085618188667666148276581892080656712294544651695479573650497769578811749886625033102994046086141586031687023538845059831969542208923619887500326218211584827004990902207599569091985247497679071889444856831358973638279550826257270967095872837345800536759979328453726882414031998171615392922584699150607765379009634854660564911799014515475774078146930718750830333943686311063414858280183945230435076059034212362989365332792942862748142556362252201948516479029311186119539494632285247833210068884346356186667786581315134884998251990823021062838701402884066048350007188733880646193653666614308344934539701919514632809156886524454729614153140355546995414417859094969636045467917660407963116641616536792146806799707272382220714353312677907579867025535694408654124998107180533470645174788575217976407580380893833357285988314342622352001998221108703079289818188238242090735195685306545881279237776015471560687722800359909794449542226498693415848020448133657878062287095561822265331170832350170729749685101763756560738329843361539942354838435228802854188850656690123278652344383589466709581367586417376074637200843534111580046513032120254428160652476095266246612321848461798422532557898451835619155035212959393206806046676780922490884875831027435449273393603494292913224359912302110878582725687737441615911168262905352812750193154054804095399070267478192142621275101999340975925491861493833846707704194147126503996082730329805034557191790654840132933438403086338854449768536475232066116688081449767983501703786269868445926648269376707585074250225451406455040034757618155734934226003018502296477410237821918486301995434894268358270069853612843918397153008368499882865411335711407281982088596789813861431905827912498273556558916793885095275990300125134426176736697677732962471584558563474946985230182729832997726681943308895534180874275690231271195601988051683798986636873504192493207303119807330590606516697779822593298052092163233639976860563964506179731780038280417017394576634019592230040432645684642811829987005951568073229666709407416464271124817459167311282809741200513957426997755925183086176609264360443499835463908767903834262749772690883675000530148058863979704308871592186105398845223817618066373125069471875735065681289875382091040946012748804899865961876065879328419814918920542984018353846489714298969672744971705455174650555355430260015093574027181471320406516829498091427884109349046560719907895213030749486707734509345576943108510241821963788400158768337738304907018734795210981541161782096287568492984193657142505710281522907803787961485127785246149367989772307630353466768026400317146632455416115913435831440007661769454509711860211514192689410817398353205969174879896713044151553704428380603180972908370478703323374063212257515547164883104398128041428812679775748479717739408325018150822071776486109204921408995056822878477425363974830540617720728472019115922840271646664183886285479931528057967250925233964978619809656903498400057267927509885726711642442359010646597732042008134504990508686356711718808419403590828802482482025565886497954313556966665070351117689550443760816610366806622129556972348790364131334549395205217800306132181787907825689370298695390275779055017083182808412197781318601467289150723417110349295619779742677012997271554119538131836811578153091743393708971547486414306634184005682590075951341752230249513692435737958656219634101718485774476071144967413385624972810756200959676193172291606663827965816828848475926516209207512459534732582234874684880833090692154946796439898257564481982475606878596698152219116142650978087191002281329320484261282106108608300241790735591016751705626890235828568323643072282700183795896685165181514933247958431254647668853319919374984339171574880524481695016343467073648023347281542024631389166131879042498971005135892881812616807156979933164317344130410823812174911642315248217452072514128452570753696991381055536823218013463462690385895704922554201804757265926401844991071150735449276049877242302970617077172856804014780960072186084675202323307772370022132514903354796985475759156136903815919104722401754765241634083658280053362762426174961559012713068453610362746029537905312713742162887109826241955039619310728529648945162356673518214279315400929182578613315738667191144270944533284067647867935326277506241976163016119070156336046122106794154271511441204636296284213857582062301543293964427870206077093939868777493743166301552323007138133175311557307643379578402260378935499933909308114449690751938075654029725967077276775670962804030912057921247731631427287917840016938923098944410691841823726930040459489223326365071327944901573678360286200096957963837641384596178032405648842281703402004314936018999457866300588268509402975644369714858578134190686828477871549097814890631070172498359449466606963890971738862867924481087383331768028960778988373147335425073274227022488967447192452734699456300226300244577844006735468118240498190670816304584133627283645182747542513546534506950548994393959163229518263810337302232364016100116585425924755533574264985136807768229220318498426265858122976661789273205750456529097873377916137313291906053791703520931454595196889209660641961431451316368226352775628248984760528777319008250501844790945845365025881479401401039351541384344864748435866710817191140349713112291301191368812127074914266663344620022435557673096057512908145641757030993209481920932343472908490515862874450142690773410317551281598862306613204716644548639079040693939460752827414481710449433198568367701915896848325594381441483010522619687877525997070760604266642676562702393753283276393034343935629519239307730308349415478051884769060450797439981828780519211971225114982685525680335927703541110930343391978599414015717658603067603633997611481823321288366046409615605739272175808473130111011334229991077213611207761084744799783698551367345352032536488608427036944859140900931484461482229771759228578157349436356475754864122059126863424164576812300333054933899240608709572733575742844642517232824429277357245143029983338521670864838485541757989265704506067066051434888001129892611309416099656240600658902063872535189882918735234905312025508277164358530946437991941990505183771751357658259875901915863031712381083838771927730133308366013647279198578877603626102122096795316017157806991198874223922049359626310616666435525126470908178473583525793451242458673172293138388052580239229396038832133325269876031334834443616456112899461205880745531556595408776452693915482888278074071630348021870888823087202959394674775268028787741368666615438366074505514237514540312641955291334283654623236939040484734166020776603709051248954591685953607078404729793345568170392349882993690718809005204779137879243196898001103257241700332470173979644002063620206853539306355666692208907299472262593604892884444219697704409889278145070239524947489537836187245075213699951832216707319231102815515703187306507290606530454783386995322552489979048341153566170642523372509813863530192811083513263236631799352582822118570672781005496985755448723572275451273196806459324276560542404749176504678142928629326099220742471253204658455359796700798356686835885245654761859747776961924292571934548725045084299765750967675657753649615718698560189397830621442156765563035323937852611463715278527277450486848909102522442688079487858458502666668928879238968408518756584608529336987383138769496939308728902143799003122186681259124513841584998194387024597528001877193529421640097100118561132665952019695743971627460140203120042909615873180219015486240739619299794953022273054988426560679475082175771326488579474436236713160537554784276066783690639850637062028725225406788553877953985338073230509725442843935129426766289172920094788231769812925514714121382679019520000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
85000! 276390913512738788166596433160766573543405416098507845484816663162533078232348976628202966572100971102954087051621980190754693215684322338278871037822235739062476230435298774029997267950853864309523550914706390166753191303351511050344675344063414443525103872776469001551600345029841313372908414106573281386223399903762178033997860320452988771196287473173316348554835809016733621987791811964700169639500464168774291896454919841205600825468976497475510306230665786660234227427983128380514127739811638700427018551834063262973759834204157927204775421464450366272146839686646510666786942302664172955017392446416917671752988550557673890865886866173195059214229778974228039964093026151828454691747697697032456771795992308073250471735349055056414407521178738516524398243430100356580505650309377850680695160171664101351143636939990181854822604872868252327479775273762484263356521457777795689038782998018152498125262889288192790409142741466004402736677603534319950636620329714579500418314015396087816750536617597521810356038209416936846910683900754733563591131514954025950688225809336571546297531024008833214868796073825654282017988843902071893725792960645026918501161799570518511121604965879557458002641240750043425874691597609954359421099837050073022489609141606716495245092389047754735856946115413709767617792772819419398177927880243691577186767029377558728047117028774610457996350464057703693903007794270866059404769417279823262519895893256773255449324867698658008373069443511873877175871200283072419270649216993544730737967713052265941390519158194756907138638334282390122305872164839840427782467944669201391529483112914055003625462749474750768911003058666525005171973040279998650651926873843574270006380207426817847535717985128639809493680340675000439717979288005778851900394998754632061114465864761438672085923663830865180627464889296978583007357274261395656597235647206665608632040956223353423946777136244801844831123162382324154044896130346141318465517217345997446515241531971278045197489532342295636958399797801089261487218340631155313869399090106538372020111194077335334488140256768656828456261702214748793071013887081386425461148979921130564328171215456639671022196402961859681927214538361739457370426937161421053984209771450560538258399378183441414349814479191675707241673672129693328020086812790948729623840493914394788943489964756561760916230745116633691727478294780996957696081325480926210196507059867651176775747629794728747724690985777905797331075326013230229743359042189863828192034919781215929057442546587367134850164058234073308539865863949477945139904335448386729261062586405100079821383312234484419776333148314810736132301209024223608251595398165853965465370917962443290646783503694575991288714942497212505613278015364612477168183398545831582180831512455316425263875403241262482443559004613205804318283020304909652532632139882973645780377901548747607588561722438871549191940848356126095372354405643821901852184931214888088221773549811285779012585106225339952359934603620344833916256644869744736516939038668438923535371103329424166358132291379305812904704964337875276956986087712208076160500968950214533655265327846274457926588636348598720463092053131392770981546727016810097678077448448394171909061608629246604982409198636445827715050915341197926647658257207228176953649265327027957619818085794665670745924075025907026311511923249340036364739680783091220987793921025598103237119598372066429741933485331692133464953065535352954150067856268211999351604226466158880827901782266355729486808452356936233684771813802244508935862761714417564882928986509935690154502952407411053569622237693775126901179674275217154483444294081380487990566667068727530087929288770348278241474049606223397330871436100095438910965006575964305491240472552018150991878207825071752677228414277104492938834276794096140918152699739244098578400341132121008026933243631668184857379058360457162926405566699509079478870132994297975996675778808862522137014246386385094299921117504424258855546589423599416573899620506795361760415872493691518854705015315921339759736385193808851421641315115898593502628831290855026213606878710903214876970224191085488810508211103694359263766497648830306354037228719644980123568640831314861682394838253851499366363733125982409313177540101537820234016951582743828355835971136135366468847043154809902200296129369992307215336769302878576167282162838181524196994395985699255363832736386746430076374595669036239305996298992730467282948300987471036747279921967670771150987946229550834364382141856078273007608992759857850522430495118292450056947041622464862846529784220573777077790462297402958725934292260267815592132342985615835965955138870040112117854421627433144562539503115271998460192449134429176606388439382480453666317295780617594391756008039138932618289770458558853013327041959067145867227034305448299866481621220150033327739314594734091756243121335143050378852541217936106517267391797947176617042232170390664299927339425120271870088841665747627575939280527131313629641363318127608119751260386189342106834871355313502303378692793589856863449537015254079078498632802777716879364023230444067432448702058840837571020767522419840697574706370790027097434167828153122460349139621161239499209495249219958393478671356471344321676941915408315684164318966613266712243422936980864336171926394118607305711541233869482189274604910087849376139579945671858308856038203475004865126010989429773990175439317724283519318831867931002063061963024077592627521720945125549700135319684228745376106499758028131608554586565813733167924323576078746610337844450879448184610198964624134502148729268184859565178539412919005226106614169601933016837087388599580759899690226426685774856349190080652352457863721034747771559279627028743598587118458527740899578248029984901942854510835512866465379842754614902548392792937855902812573313515140039632140349511106453337611223194143324388039598541817485412505667713327671372806060112471829388905441205993072713249025776961774132566822001473915175940169113241699317544221212451308447640866209468728686361585964580147229667277799710326614739907609383600252467520436477866930251005663962771168034954212124974167889190442034923828251072818537724056907208439674840584948826524612963726663210164235284637450149435630417653202363236964479464853633510279711178093515320085146512996209952346530105786025146121648478430584413317207596756876800125846390858214362920068199045552712904320406911090907539595629196023449072631986789882301239192145284293892384332813612626291973751435823528133499338526364847421120470542835162194199356932508612085687206386349984803416420220190736226299921701666698640670161518596462651063207294193443672560544823554686628013523815680135618000783839096436845250317893621756348989172179009258934982978041941160554092972474823923461443169003764434947562733585235999652491373954899290563195497921773264503448003594247944806959451115073419027899105888347862589576354972864899447369883172773168355068058876783248623513158769618309450994315640258602875384470193360780702909878531036741628221822528449387617970757529844012247325791929688029061111747578693894611772627371356925533455679082762953012410997549537472405770790221780388109956549242287292291042528330203980746716323864845964868249963183195022232820873595147000149033603716088632605951150038824619067598424380937793404272520174431055569556772107201246936573974548634063283389530233786057047895426125415823543068660060243975350906568759466981897912222663026887032823021048722220227224725231626471975884067596802849837502362010348312962823920444162073980309373609185838664083644043359761565727152751451762742939597991018751752672242088466125748618625938432309803904635056478449589388173899149021655548883924622192220545922783009137187404878216170644722898426448865217646649359072289779778940930346342697755033590656191351643840113414423205778691706587563812850728620523711161561279702065766101481715622995450119239321826263091804285158172643490153467228104125644641235739848616151945320084098567323002919459540385745561045322259551819568157746164553121053300904346170448286719795884755663506656460825355163665441594099562056571687537357882029762925016604361903838790705531269628711971952280996178988579732372320743793494469350701306011527081032136260720868439347752593097135353872302386964969880858261568635744874491377311491449654543055718680092624593328119042298138241760385495504512238410002566122661672552813664017095871679843580260741055466466238388959080957526646192984268637967713472339024483825059816307079903907791049410249989469794424975551839452927357386910632413659602864982811951998917105058038838447087889940191717361626849589706069266293850215246322132529721951630196674230265370588233058862128471981839860711820207968661796896827507737516111297913515738381794987361231308964108913634153200578745486283848237669937943022902411311696827676594625947178223363570015969809511319787101608488582203185723801480393219548440831690512108410264782694540233933300453622048629230350429417230469341972161137970257677646577379074045601419650929463623144825067458022717393860395008101561488037500995845826265564836025327761284987050996699375861980765499138507481235851638909315843492317383412880076592388471992215753472536379286681721339177906917367457478326776967816990451532473792954014177440237714190447482769239668266273721338656519411870687051254344344396733591086486567190640926659004513930117669679143195361422621029049735012999164683120224770932454134510052502224629375968077951009335782930680536419873443641714335601805077094715594029946673512843707760011302270259474436426495112713896936907864188699249355776457951583589031605327414393223506925607753103201810768307618112562977083194683520113529386372829897777954484627015937909106013054829903441631213432555366693963737781293917575647722507295071289895796574569501319603610385635632992694623594364418243228528591746614059949318659498001415466396804587238395665770547159248911996556586481580293775914234757960916630158616527768379353696705583657825878683254818314030084204156814504993538783789683395584354444673358373114056017408691755735370525983848710554805366883377201170762191975951369900650600881966280430673077602059420052828224278857908492407852481331258188275621429623127202006266270323474067664878286474995174228564627931131048071232007248022415070072417111997038616301909196332198472714693897092097005595787754015611831930082657941109158467708900373829701092627974064231565037168906312972512883948650754069971866367767003632090175679489710512129262786644524905935787865706258162851435430842770127664411932552176682878421339209560338363253952494629554893090863696851267516207869462393969689338856192483416159052549840421098374685790864738071728846871669798453130267507996151006654595955679344733763390109625068648102725614289977891279460484170100253737599698407004698517671784211163531947915129288974146641651289244202724154619952692519202493923866160162798863178662708617446597691226148339566667705346397497011537296790360019087762261909908265573550554052142496967685362671643739509696654418779404665559620951252118760329513186219532550290775819253339551382362422033050022603170711655859989123424056759423137489052897388021508875487019767728498846505084145043904634245481909122802308225379759296521662126001531853761503179234244999896689466402741677582297527043602060296695291437595978341031838470392817420284448270913789386320237279668139989526903976431775824577008802237973715607838693218914209269499491259039342388747095816064743355714519271354651080596737696987558652792343946496449934912850269268525108135311804788377437978624962260268227834370095984067272560616689301597484488972715383098455651804361525503476561091739509431343577126067428209840951556436875635122874581530856279194254947131681601553321148529192233696348977149276595778674776033841513372830557493018422110788564321537109433194321088038122642862138642863660742090844158511934054724652892632726133734894923500809285954776283653139020222245626240368802899730961148623023480629502745547297191771560434361791357957382529495027326053799857940032901205308027880834633673277549098692219199044039929456998383690800424530463762807131463162102337345987994488684118116980428838203027221482132183479972881608689507297978548902906128000366498311571046564723516201935050623561376229027384949783695354736588365634846551666834007438817323626597754225866299238572283689222956941555905394724875659855925243580311086175812619346525086745135587254135448840555486515279413618513897763482212052280788372836533020823424778820958218242613851703351512083421605685272018860967186583898305379009762106170726788156791642081992218551889452897938844819621363343301373728246809046015831437538045259414267424905227785534057614304061151136335692505183399249872205154934552775841686473743207267183645522923691679245284812820002592412972319536422865051595066112438190011818115635003153820583084991411621898848260021542009599415362024326646759403591488420650990609149840731764477402257912505887505668003773441964499936131686871111144758239872016606764193443145393847616209024535989637487872125841038552660755745100047172359255293862963363006619949237171324121396958016788382347115804897815788566391283128607901276070986627704019827570928008190479007824844718607381621950838270672431229189260553749363683753840429340310806892687346981543128640711060022524089621189623744894397585655991727797830920207958326916307572245900674859927164148910165842140590222015845321443760406976278278703915111306864426265057574665479075591204553872309309056318197875292193432224666262252474600466604027770267779550584461347671116942396663773794136013359849893478581813299698044553212511487555146199808972891944977356134863577423506097487623796297916762860085892161818199125116191141796089191422139325581544290188250251317578888336075153960503489005633025442027089456492072620399504517466019153932718588788809238148044535628957980736668798075841264044008506336629120790755766818653935985010811801312801305455926068625584186118408595327666925715322870140582294194684964795610534906704903501586016763423015749818075063799529607731115350188515190515225974500348998420703477085332729043324408619498415821174180018624090118176267651206697085706065529454856091504787727559803715136046258923550242270934182492073458319362495785700459481826579307348190438179556278360702596889365981906428500085000485848946147163429991990382669494485996480402041308793853090463998100869268824711715369728417922922737696376445694357425650367839361340569633757488554996707238654945473770285676047795141941972559384655651000603094596859879493954083867009715673779024391905107864972062018262011521592582439546600810169488649048611508402274438633060262156899195284415316483642716235026328367923101202631044426651293501789693270474992970979683734380645240471503373337534153347583530945005765617262466764019342250413500951329462817664319872825347761183182828242772881419178887521661488908494400603908721770368863551951810911964491535296979227169167061154505216992719261605725066193307811217346695334635725672438726574262377537676582004516668268124538886282452133631171263116965697800620120723449265154052895973322430469523848361092041669759957435149617739858998833724109771921069037789923391854881675031765454272777523199077124022719429014281199475600897983951490794488917146712748800281442407756485069042332643900809682413332670017854305555911937110778122077512117323254012334716402647846802154072206879310541461167645121979376817814512189247700183783397286044144917638866776039459978860103328215347275050664069568606018973062096073039429134413101705036723891943951312485608335920565092177166873534037722671489257540292937963523635915952610743534579951598499040291000733635120126709143970684597265135710799425848972743631383110390182262200841151252801545129417453874727494291425063456099345242783993211549935136882676681992915872269268072472672449337239773081892788818093925094349307711920786531212844636924508057023469340120776424767800650877948625999645180692825599858893198108340060073509140435183208470141838932226523963648364340892537871830328804953550614240205556399839865611257342188912415611149263226200324659232228556590607814934661657990746734560213851784782051798076522925355949182072023746780975248018518426695925747860891035148120765581520055661364290135139798691570635294949391451453528817806237697207320232893772718375575461292519776707876485855598457667925989637435767431917838631119527628313646562270730604252489131144727957120104910186758708184149469734975926107776316370623062521372460276821585736449321771620489925253645295105905344527137955303886839724817457427494378354192669661009824434484718968719905018061739341991827897368982827797810840560886750935449851951385247009797840537263617970932551825990687911860114922376691766836068281395410355692308570515433365601463699799224162042363375608833043060779004054040335970992598454360358483800524801824549064485694413281482116723325850060128695053674838192042171473916203782113178235471321628310049432855352397088690618129058087676316225955926841456986364122851184631940694839011956420334813652040959471214839835098933812106663727238752418138533268574404151419473000685397318435455865492775489635352200258227406270761188434610635561207357738698495546042370631845174703156416172284795237379478641514025278078295353549284612826432657056103008518560365945924436455131858158085100935614792254875033795875300982409764791134611649057163331006394767683617590338308804254843931287860274231619243295533617323144836510361038473636284690673879458489306291921954334783566435968331889550027881855074550651083404113723698465846864634101268481151194965246144562779363042749182477694722592356034013456431592000106451579995400688788036098609934262246210579912152952108583384891477928598695503709587431186448001601755304438850799426474043623539139717243974859738357019883599751606239146567940080231452591134590417662516951551140884167501980429850375024386962915442721175769925255082618786738176517300091085649264667530433978972104567980103137741680659277940470933209513926807146670139620492487412639431663063086669432815626949657171520984598112915933530452425169439020893598037214900366796437519087254119540179410301746113024265664481089532806180886742900539625649981939829485319388541604904957525966519618953144016254654743223780811311620371860051702184460536025743774585535772515339237758803581038491756624200180060939849507133448678639310315138729127891043917167550087206910725686444684907854053538529890967501642877037531673208043734613753909429357545483118639227398050800765160419649478871411363644506297120687513644965765753208250405585354811533269988505179938156050005322128813678933275171334159876961237910092265776978788430257627272599936595895131584999455782008891995906705155084154337738665546064140278380068918479479506201176874388879918621133661886052316174581440729712567615848311822235516742193158379379651353319885392468519893272189192254038789341379346254521461653244325490936564952637171620545374955183090073870342767398532572944850521311440290729062253927103787740928948848252415961797786443642147342280143161084885194753983726287490392611661437626340547400805585227864563374369440869886049526807688115162118071912051553767874663576463001889225689955330504835483392568037426875449217122367378674740094524354651225637048663612946458490499468866947011068543925634195046833678600382753616879778181896582446511093241510130766143087865530381100413363186752879372397624485197533270446055676979195397414008217215466897288680884798243511300849169979564274371816205034527383720973967552052221783902132267242405376201379471595382489113507257785070443972181320834540427202375912437891693333748145157872880877154793915943452591654334392358071578242671036367318551393966300454347630374708893965600572208625543139906711919938370216667387636455068147821208140176079334319860962313958905399861693340323739833493691297956743015648178840504127667864676393546493271556867275013570574161174090350103438072301727499971461324883918619982278732873047080454615889024669717461662186953968196238854753972149083581557714306509763243560181572756201858744268846344811415166075132211820206572957119172152664016653878555287983037106371166314850187308535386561391113544874911576057970015472656470476543884410753345655988290407204252419131454794172154618532525890086262509791136193286031785537984420397413642328507129473044712388129757119600856921467493281033103854524113345359746552378436770061456468048318122805535608240529869778281317120180867139631718001316579251359289592764820860049940974787007902007950532045653172430455513865597588660699635811184890330346058761744513517465972982787536202228658055906634153756884159928584087306598965634897698189940159582377185022341847965799951490912352614379364377452069866083644001513446833712527121614211593210615916371814081400653369231974961578816237670318159459620341073417956056895852117863569463621390349971227232508155218818830796139435610100759571507898347388690718332598800287542184673383187870206870282812827476899906177126280954746884951927378000620109313034837009627947661275846484991146183415736651674824300737931226420254302906215060911072453213619080715729202474011892091607725517061748884304523759338061703876212704427548251203523597915245569353300096915925159188245317073706428280950850983288027155652048435523500426085860140498631221116067966582303596573962687076393647689622233638759466449769284002636359727374594049796990277801175952045344660970964558398355203704007978706732162611116415279860363766062945324276798351317773712759911792301410637092713903214432770783029947648133015837510840891580633737700501374576187250310797878420315107583203840881074197589205060235945039571640543847446402456194450751007317231481172916583907703546614929444547148593519450041174644048829164108219190158364066681242603400569293872308656716138720822292304178486668003058669165680793799770186819720654353527744144397237534051286053825664915000164573874919919384508225757511537978468100388010771190576987085198101524288945676262583868054434897646236984948278010220252251428799338103641316491166393716994208903388485161195328405709123062868517496515300123518760833774500103798134709989549750152361121769785554681087021174842663437766980612173286433165715616622607913544679072694927738397600428696359684093717082799504747581557334633721118234819513749759618528773796186083767729231764409153876113754222228075715659719132402113290814408432133306761312128487061564243093140776401292595501332511974908166900713660213423774393659646125862238761559157793951499089961122218306979999958414943756182619060828500691394536647811437690787150162755775693851759145267566619223826788549550669198598579375370089990224076974563180171872058691474255141076022590475105422693028222537041545970656495299876889030525353911869409382094766264878974221675185171644493348785023055390383126603296591743351845786466188800219158407791138370561232299618928237320050067742876527532303249622985160731553190113960923815916058368775488175774644461711021750677481512043617842865284979375820415431640399275290255412101639053777713979364914875915514257123402682778006901816229128693449300084036776079247819947676776470716810985930932445738101342880848609174982011697860078050910292143378306498586766942769455126726341628481013149085580982144707319687607584748238543429421755333308207787358743649836132090724798596872115083870610241190815719761770513269669600717939010328411656256660112248470773011734556073019816323523082983288135480106767528403767196731879483725087311864656297552849074816949705146499555879061127016939882431375993826915637766374493082249279948251568459936402981220897108210634231966535026738641969658628792068324725130147118151449897985435799444980972774238695310928923928223961974123327079524620003874217720260907557634957929895405299896227500402674561419249579091257690132286484900023070594862308191298006183586564028146400087903236987640558370480384347122230743193926320875750494406880523994737991454217118242002674525802238451126905186659782019861977377017978841399425949689978308121031495817185609498238589503733539310818662431638064419904964287056287745695536200220044859849497469052854348668177383624149419448428859132852915462089028301594023185934517289343194566380992997647591406673825088454412604408133538903433557924687449409908942878516489168481995580809255136170532965693824369210560186044517910316896550520527343537061280653437706690654571389545331798762657840003452423784107235979603410353874048957150323877841162717529515368926808534020442243928789353479611723934330021513553751444610315499985730431648232737423691157919399242566136694195324985110327733640515472187956374645928661449712424010588771696085458992379988278590032683645760887621341338174592921427587222177895420622599773290762955442555773073360178640165415913356274790689038502285230430138209183516996858333180930374233948570961106870639777583057867776605176513858291398627601789690348230162207247141094540906757950976808987898378280251232892933487116211377392378597182997687437391898118818592897213258091186028368699337617040797710143550603267167581181211493433732037181797766898510839217323732934823808205869930481308091015971096580532035882461906758918894510943401641526877623863654827351506326302366056408288922397583047709461061612360348791468668915637034898605411312845659181329759353518421711179331881455291487302219206430436037306442843827773426148024097642223624053743826597397474373762541244082895280460891343126382691696165213721710442117935597288286204278574721664528423715193961878282868813188965549618044796813510990520853041365784801033272667155812553234918665579638605048286774698472626212282659666993502918479026921996268389018665421230377036675532768868661050196127940055302484336255286624780287709807753664384490010830538876819602025608843878764350253191796246789958872089845208105614096908932935829899867988489433267106824912142248418714542848898399740878972474702622235088022167389683825223456327754143770019130757786611800608286365577676722353039944218121286318570324233983654268046524440341673050510092206092588084772398219126824197108478188349482071976408692860672669688946299891471136318321099390791994989020146316952291256053067893585718732604722301862778700680598452657667181509174539946782700719471920100244770734799556675363730965418900814973780376310335076990609028055244352619599165096557793631972854046849206563907575153793980443220130653665216070429198539934570007751811257298614167742137448139494043307693474783796212214634275227939009363999538597295483889360705022634735518741060788671763087005971588923322432603393412075665969085951365639550123295437022896886225224858619666524438708109457803558636454087569310304007082974640111165253405901716277379564613965482237524705954084511649799343002113267500629764069684605476918207281407638196079909199237289562728025005536958034240620097278196858898027248458846461351403319415732067950110250894764411447248568739672646215204293769780068629248897417383330438179269238333620445189257878090625308524620602467619684729884494077761591291207225203329117575363165257777621654567181750105237063968819448880875795675873594219466882423367755550699859036490456210356675664417660100043821805178261999313297212202297900786171899527814709652645714048345872871481646194696370045305374138904410065683658026784131118120016174199587884304802856208623265528792847863086946171908462144876282705176919782653188548330690527249831107763252047993615813122487015967057606473328786773297790681305004279203883534173359201007868806553211902302818506578291996611498327820682570361385938776106711970528199908504360889268096013370861804176037799983973481400830240067077570870115283018058803515392742453886230218846155187823857986620555922524152624209235159962894303576159510392633334790823001462631196197716473443943480838584274988436894755976466665177313807057576711713511736607021499600789908658097482367598723476163510131049806831476870337455922489349732336830660152828984604054568297257159182515078560167575257224670324601882119089183079617435290009501195586490735302072987061061872049721125398200048677065639788350946901919507240120058487287041781362600769196367332148072870434982397362117314563012408554334654923893544080866909996194654820726064422812135519057232391377655033353101652965310766956160789934731612724530763222019845207629633406617601813505984721990199095490789875259881540926143049675088095855329495756417952483076077076569400482844339993326770041276728210249260303980770579132897396752295291050520202090672582879140342074508182510279980676006365400353480621631349131652520203310761658892580997707550226983758819300548884691290056592465315237246662762869563160444439325455704794662827671782900501680272213642308198187665742173897743609756452179085683160743023912400123621499325950536810695655619584566089356471622736592696089447236966708278251729149318679667404352696476259251323703422359134457993314714016488997339647632003083816211835933614091865059222341843204261884557321451921859057166201661864964652651259396324850660236152358745722101276489258374745572321315392186070328521701644944851250626409160581506032301879836274516164848874869288905333895808403491704246377414278952457222343600529045918385475359730055899884022970537607556947899064441934945016054956267277039960418820932339228458007549626181518499181136275230131290635697164902667249726815557042102651351007607182973430547937059484173229952509891353946151820688730966947696594245490083698710643453271561798305790168841916959358322548096153616262454509221808797498104370452001073365322408851528226571081757589250719148380010067603608423814188180627431320356946435545380419901376038939431396790903820445421679720186554881366661746356990109001858681182244249272733977081300269262827590364729344449128789312073682811933649242787929159140362160734942544994099037946239521471013654978952651002524074387994854326232016523439868714877392330491371236884264194059244810146663780459087121757317045445584978842963740559403964897945244680724738376903636422489424384313724176551908324460710198776680806611634961252215393079752064077211638971420914664982113618285617814411444862532707340909147235540051785923395843908610290786751472418792951308283749094089956297403973828607661482769711253649206055848521668516606557262857021671111023755779703711126644051928364869246826109302564199332275271277444927019711891767065773110462130661802883257539649553037057409227335866707621402346626601153114199197278922445416709845775704431600296171703116790368808485736423478913178275629895193193792505824733316851817738880046362646976531852970730486105293541244313948529713120462369758178034038992650718956806049733646463840512214830319610156624581011545765509090302428750850352011265485363404591962596527494082578604523462773070178612333347253934109094556837395228203209156933499261613970173350300100790152285234423284093604618099453296857146630633763334455096005303318363335382879193277272537838629593581933787173248135811814493336348972697241247982662997926829875815704440151487987205812147752398417770869139392384011661613647642501071433252207757941272976091348972280466816720185776394793649062789914348104640766360122947008095464998095454136338508569223563623121974944130272237273949617948591814024946591243057227304118441051543643980804143329624263770438831876026294170948574663017368838418801616975916958367549204417961181164165203407420735355294534789607221293453331908896188154974898325068615246870412608138721500869725324587887334688578699401805416551802563167069882030477785484572535290829231277827006466911594443649036181336104124548006160740171012556812856260970599050267334986428599703642737194775236749365861263341106212470696612580794182971825155285882057855037006249266877200608203517891656759345040439982940230858811386225449607668111529895226683749899038061866377245921108032048567459385797825745320589870981959472269298955765919813864441981835547881956668141891644182159494630920699526374474402304681064484927796400310389850588814932587350168214333411831941490348736418473899691883877932507217059826179416776900056208473577062859498578985751013184865508957684586268660137127503393243026737600770224080989153968449232634753703064951841353397265456929863905501744255188248382094110530362329527286319334030940000002593816780471259091380416566039165414340200690798395553514986006130812646436580505417855326217654835261666463603664696306679679523540401044574548080977300242497167068775409833118482499723184665516177479638240507138859872175653890187448561586494078063583038854482098567718596807733913427687240085943711080224281331507889320973625392039487902257000101107496289660125785687188948011029519595964529837749717777768109372114487668439884487786941630951760095783305565850604709357455674292635418001005299696722737874755821740339090098588941261055270736943447726183201906724167164000885774839905528834911025911969306530791511736441144809314401168368542872688835688587515336189819411375157438937344083505651539192035569864197882247762566406066341895898193932627834796818312353501801121797397719300296757557214446994028079728794182559652466160950330877294483852761414482079729611602663164066853031030274721561430301942191743812513584768123446470476025426898484338331526544630703558308686948470733058426080571729503194320541797084822322930475109682830476582154475175293884150779355850409215977844393102749517049200559856425623684093284985875059642690339976095746676939371059178776333555680382486209039187195868130276479651913958125781277062709063781433619712593592902959684852680191423724033657152746683738275997688206533923432138786811985016213125994106676124135836117332537397872064745477540738025471880388904425213136274495935790742350191944124269961576139619172537723803243490095769025148916472520968493436090749217007349206053663095059147232991335410871967481830631070463805863047720475393069150054421183292398507791709423946802240410254862722496762173347308923891778842507913557661153641700820447893506822995235723480445542916478203174524584253043469274989202195519876676890227156259303913699473684877322413419535058478958527899407543651619435053144341688238025179166736751185783267466668366175985641878312606082710332464735481758400512991242021458994472565608804318901982727903428859493174646366982377792909905084193826513980116213576382418959392275305655417395206646442104993248951075710343124193840294482238636533208826603985121125589828166944375802719650949551797178499785966064094346159032834374456582759745349744110522890374919716563676775459452895385619695362573523059853126136384784918366339693284471252815456335047055757878584417085246440615788277420355936363339024382632343971848785646451612699927653580703845499876617700712337644762717786738451707403646917472792100193604887170308282601542659548315923058810045478390251947801807203911202015163474044252211881197837775606988696775250807513034369846004263229343860815047608744195045304705963537594596955390368787654352410094216705619199755342558169870559159887081318821698142787303340505561592869306139663035296447353343044541755262377652116190461446109802866823891247901218347548188699140310217341987780072096691678983131817785532460810467715929852502357829664921953565331419930083815288922692794177474950075394580477457367428319243008539109390921332605496629567220019012038165696876596308310567675244293857117640548710768956856163937328936842112002997288223175037840440611613193915446944437886926596259214832833476779555411114279023243789781723911423532528808776302873991593930098690850786274649085729644587052994955347145632570320687309336889601201241767028869645128930553468932231172930657369178788655131360265788717614637324297074803746900704202190929195437910766150144656359443536726676257722107839886472570473229819022854923820075439965335338331614817794543035009830894604600935914264377147419767074604036570848473404373893715050446457171800973477721039876734285064168171105917117907635953484299037153991709177647360502349507377755298137884714208170229391556192850671385744926750613664046217955900387671568368456882648240619447733667478264545634027739473087231940834798230009362006889903751156357853506496478360519673306404808597044656217977016318079078038413835097329454654150358930189932867080875357618142627812025538844866925800197043902929400929855676353312341592296778543672243322724073736894922268705702496609330587319700640844032005832854880556459319456721496357855003787084814245917145277976755046406569538790202181275321562240595309331505101656887581970912776608003702516800353833829944857816766518853579185398341633155434019138513762302502792701274762889240218448410757554937570782064985841335656576145861953505565770378876437964360060419736382610676573447055542227359275332460631915209152554802366663509806064368140819916759334625235937666745089684043810295994773025509327891724939688771700416655759851931563190646731585691609448501263904462360779740011161148426268466111165937352048574611672410626897202285292258280389195847842331173156363339079584268518561373320652458160976267310607987948481876324197950161030828531867711534039490677340049511212057018455137744657951805521283565443127499769343359277312053145015371729679566747403615508301171745190717881876969807694847729755043582446139330761962666982454960793872134241862073094752941069786912371212485407090488170585187707336851914653970480682874244206712065349540635552006158857536490910877688001154294092133462191819769962412251107906058454890121515117068187140085739535311899548999909782116508532665468984878171191707924628364703918778967383523626580497567265675376809491588882097003826813199821974493157804376669645555796815164833346717086966561621249639181883962834359088500238279130361376530198423639160039608276941947059287363580301729270815338586439505694241010331480872397367900854536609430171101911459031264784700608251444723268588284849110613116389113799870788335373542218344161746132158561149112922269476320506499330576382576899918292829363136930237076232493127065700450468071657884998639214316495613733844636044669034894597501826944249244921290963492340589657676493137345156615436637970471064651918910131185815730525195605588902604925906970296500201907175087102081496885195413117128510839431736554289625110501529469569689320659616921481628819049923476288953133593678058018440228108650649686938311645994267631278123588316687864053049106326607445133578904143673829950615310989387122401471722347337761449239385094467758340664531383438849913056162500978252122928493426127426859975766825983438415173842786602665205182334773715128141954912666635245492511377902089914816958014125179229090550649452239211243929606335481910960797187344518205951297619643975059056891994209228958560414012753656083715032688334962616974120473402863541894850607137296596733793249110542605730670869479079146257266446127075775691022188992316759746949408405979614608630053299860920164570473473449004066450032132464120867715265740481744784886386154320624075564159874795973070122416713391987874056100105008359170816881838318235563083889780617678090419293143322088411785896436489176202904565439896124065673829470402103688802677923594947896430891384502591231001609027155316423672341705990857350301985068056659039832564407643780884386553633022191334305087120277415039208402349607991121042552448254701331926826530733845656434816469348676356507550820234877448813218842611515125575369019786800764259861286596054516577438898218268943107861706228099770274020302028249753106384226981528049924990391369396040074156905163552422731672088123230060716967649532791593777410060816954800937910212821692048887461969656348495763317598928930991521300184607844955876576633465656874578737235747598875103530400561410424589879807873585953579389792056677970394787538676202934441579637588036914753504028840037053238743528039170041127189521067098488893580216793425498076227427891400897732522514541539678512105428033839137931741907029928117475475640342458914022682163669649534031558343937713773923815750345383013897563683654340398442948175583250469783774220045748492607855153155970369138676995199166615658214102388166705144710356421112240442527305875634367455371288128162591255066246243406327537770593937917460826828125336594456478965026895293509734131311865904498032894875076964794136914521666125882397333961567743748803513761711407369340002522643749760827393455501996683253832187968062217096420519562454491929317658612255777068390859475898770974699926286324006166112856889373068314843969482724904678267721626612687965882985494446261004454416070811930881394802628582569151022031773213840545509140691291867435928365533937817141090677766292881199484461090506398319594262552573827497440242016373113103566598459048006097261168981697433827105626754764978439513695707367656941698276541365891402062267742058596637360840675466912806538482594941025326934727312360849171260140733060317392532140195847184729325787188669359427133659091101473325394553972051322094576856189674406191751414413789084412709669958307834845602465164058368762236480196072248604766321218662204051933072521767570951011437319336769525312821197042519116853098239782053190756196903220650061164300303223177484185413818875680889288876992695563455681895638749814077294708471618772562998666181698162118312663184366309407026202890259931119169044447756344795485388248852828150481449252648087888661089711665560730121338601136504322324586439643694229740827151818101897908621965004060629076855296404095543777772474699099073947171145907411469622052280859307043195338115725802604863039959323307449346917301954147369740753342440078256964848863705026474765544758627781268431996454395631016767527835055275620760914114300792574046271809172661443098752393807287407053673555022048328144933572918599289050329684834267450993543216367347017853138138390575555023999023125356755079574583670338575000472134543287469876718123742183958969433990728973439072534134809170897671670055673229124669159350998071065237195928369073563263501010754700760533795379227242512710649598902997793463818369992773539170922489656806776436470008742473194069124018705979684248459639924015802385307367108906781423037545441054178462942735283765883323321636334387699978835549876255318443916837555190284761451328017500276714699500352667827971078329796472685582961160412340624642912244343351030603601936663592016073333133237508409483436042419986642469735056947450193158787062941284855134091325783662982671182964384466859529570552474646558593420517603696351978001073685704935501261570005360847175721409938053344808948245093406872536848121638879202248412699146658851648014994370659383701661801555033815575929306041042061418006990297661694717287736736252002768258619130737819228012289277782077027903732434757688274570240741325184861964873699773223124345208064737158110012090918990945545086224369050081590822888721083287409438759747405394937752139079132634155911748094621982898497129483392423076181822211247882886802176404718857170671464143487305049162220300682472702300286079393482918024771401963179163258583512856986133108414806332010736354928041130587527718973612331908548434853753920478402872974214731685154724113194745167440244354648511697505954147944224249391310951525155770880466946099826957844196040487170653112487206056769857808318325568545807435594197271308235598202466300545764369587455225235032247932225912867105560623905149186844165566931113836832835863433582224614355377829131816933608771954012386274834007238931059970306614791399603683993703543046508454410623541515671883098005291538842000404672016902465683868451582284424417012509967218981788416995703146515012676132803265873807247927231843801180970124054787179649706883348606869627122765212112974563930185567248946683973821708146921688961864948317367728844769770818934856151014928512038635987493089354339192306543441592585988885292275216015935463074812010428418029191714337392913974673651109709075009608507841601979332631420275099179831926158042047109069589416475826090400140785666602662136154826139095844955265587919295183193971078543249820762575165527841798974287868952205126210641603981370127385916453078174934020301988651902141794411464924031143592657676792691326655937595063633089799512735807723161143646816961328936230129443785158643516007097485566898965603807751328900444000431174197712383439089691531597310924560681951019011430736860549372517546664959632656991437695184117260558972118306728112530169859546799521670600304291227398337253306278171397427273477996349439355747424251811891227705081828598782401317217258761840069082014733704419320067942119146750751918423832709806093840091852003532261961814323526600974275674170483648312257865006246809942219757625822916797535431411873478561951488009719115634095568329909862299635243608080796624196337980636081868251127590457518809496234087947412679562671809043108405208713919367754976850707346337458687559138034276793996061835090834230730584971452324489486009238486151220653879727587933045976529981635807958469773279297737082037733600479446452542038565287351502698564495772290215991820005617896996880835824981432468899548616506744415653141343042401990435218419331853626121204865583243151297396617265550929244420474616562390695699737406058403918300563326755281775301686461982840115339660437597529798359456027600472183738707853187422354716962011557448842239289863562123737012150056269491058861657844081094333371121106613493948708150494557353347634699497676447017565609304407488121930656923003646110684299501745502350451776433581298189519341567705943481007585355289207500944566522743247966449305994810473293218119074892563138626252543879637419284453000281476367462448250099474382747815472747987425958483415749643900226138026271833607018621497104863739189955066383414654954793017909918429438662626179174389882414886012444846515844250225903183520373877790372437805784866681870843326931812536729477742212335566807086598445267086959922576888881036472327666763539894353933218718556205454350251267894618854350483200031260856648480655878088877652107261158648719639052007583178609985593480991638733587507533763100366739708845658160452514355657746911379209930469617496658762221621438542133928674769987467973787364524013562229321371892861526462305251409665388719489965824832999364300038208354415094292888112871925707321197801980250745810013668943206914961624249738438012025538286562618160058197496340004081773266285177976355587692450882726819426513125333370553182461601663997830601910196354484884356856240707525278601632975809654988861279613696078367974102938946680980497316355601678699882246778664218429450372110004777799647342660383902027079455677537106798503934696439849162085126526069741221303766915601205841872278753394902669084949811901151627921094244100122703506654831774565241535904191344065822857183644582809963348955275821427621432826691752599965083259189737092159790455138461722740329289231880175610501859954889830823343275924112534227291738643367934010953744347408147803689357895731391524267019954282473211000465579470755717192170585087199282288381508111087508566880720259483621412670408794841062570665923077319202704256524650170375919744035563822210640356016692699866905565648022994226879828188396331995617809456405676888824170157114359890432743155128337724254893200283200027280584100478913087146858908474005664303518632561680053503446721305549676766276965564894729916891959667419361434505607561077482997082906261896995519998923723608657418253544714400800018224315225614974524866247283442496002766419201051409520358982739896844896906698014221278036112905705783753486709893474710243570556317783650267347323792427586708414322316917393116490767190708075441869538089756441903841230775496227788791672410787307406837305343885006086129966578170499680723726143085933775332500230022325363038123424554303971598129118441784740742042249976457730733035790111033283166941631255896973138501215560127937983750654155222492317116616985542192497732598342997251612998401666604918131315849209058019323017219181703156373532446648776791694209394525452979072846331096566077008670707696984670019309843585551884733775471609084935446044822752398788353226357228060928070484825824874846180818591365185213715172779850058551220681385708687329209480956212777119724818172052970786967309026678267864639556973694289891327319877500473092655241610024289627174356737013153018817093708694127850268584715260968328798836795319315515426088337420633513443065855233415324958712347972493379981618046704611447932452483283617164463162361207855478774855932558833041761273037682952091411712419138314468252091325950219087446182222651105554308375777473600489691913081708271354745117410286436584814638811271890270678298017031707914869697517719701467987363283284025005002325909239394832170818331594683881072189058953147479738517286088088231525772562453837076814330024999469251885658792015050398772082584275177188829394202254229973976956266516827905605961018295493915308906695353895351097457992805554121098253462317072378309680976513625972216733189359649680989907228768027791864111898265434366279281528739722840935590168750305274542730746986684503410124305547980177089444116529152293047853894666857475728238427096898295360991151983928425684060106408259632317967651257019964226712275105436004808777573286748491683890328979251543133792377343686421176278114259910615497656634293788737377829858619012819008928608442751323409845672816828302515878364175107120177316890554656187673419561697034368939423218463811089165004155720138815427398628279559668857709279175680964624200628620982845635069651036723273613074437159531801593570710428389720451868149993464451422261145841095395487307605560826680823329977400154833844797224517559273048533865183711997956117728785046106257806672283840608331487320650702896283026664732892532322041683373780528182876324117722787492172108553327786267195166099047347928200401719401386267817875136707633978473785606029255424855469557730776212335283238033146972158704800815924118924690568174204884402605809373284816545951922770572098474497191639602138127928659183714490759752941769903915399464995023679856536220185668377742249528868684498572554374237945416423214890020520528012219269973378268231039784682397782040420754813949197999462685782200528616824413646875616432016379666235774939321115887633906846644824794350330821326937234190894433365834439516518728134323623471698606143139575066864361927767314276209842577443665764225443971808617323194705326127434171858003823186427705410323011419284932896186936809585321888690475227428038398418274244523348898195197752602295360732581708796572893913126508571291448960269226807465809884549826559038708477529091388893428259361936472315295571036328171155726796398668087783918779459493860235312523800083842319386109230726270731841574151651342190583401039735556280968674001269657832451428730171863500856061241814128422668945106193129288084225295862697862253566055819233868954083760811027952425230912532210029126615981571457335989086221319440857301849697603522148802042113831585281673231949833933507394047309558072864477974192677982811428925007720152632018030585013920457361401085201217718990455079444948378410556839972209496935098587717778914214045375485211047844842782660395848666288695779070350962982327257212523152516492590992461529013646023739087907569221704387809483567149806055783581242716500186917775100264348189068362069243428596291085877918659313893666312306590649603407202802836175273910839611992552340019578938754049597394922801410217684594744174895093329950259363273798495680936625093820682532522463742531821114955597018886315703825213623378550322153018552760983743076725516074765639842415477559662973915587416369929791919270725250943228460211792404136414783272416086477732771146516167690453357365304649631144035084454484493415453335958087585753618569538962082019713306354852642314076470490125234756018921839094251480690392783832468030173656393182425263329395161685005532546278488333876425060290343476894946647873261200684222383866168355161608747799926659331260173759978646735026596857235714651739937747966273911010956085843582263258103897015185202107541395615837988862884252956418334588273198807088940198661455346059732045972309366438785041257579746196903281487749965765647514589428494710263831389578212208408534035291426942779205829533983043004652760010656289054389449765750414203602382724473278611280390347464177290836114498952104098127292666064600664222312016913725021232300733962501814869163166595683974292036497747073164361023661290274049270701581678020882861703309580980293993292537647662831498118259025026482185967615637361805771926117499866347572937683902967554507628023276158619142771071785951961180943202146133768794839447180561590942436284955896977922636052840494779586426812846789036912874290173243840592375473450953006872051494456762468215595630278033019579765719474501747219429009439366039264381694942988481033045627675740057450413540552342982119283958561620684684565637555363441573879488695921561267673670739585972970547346608346996274023002573841012622339110934190448188724663431644849107858920325828447185582717569029512228649348778011331713749453032215150198325494565994761390798801524058311919444029667708309026878770134456971991218963988759193789619575329897965694497288928502182921481637045368348164129045634223794168738795218130373624085923323848409359320748114355399905979959311638926242157860720174185070269555243163689768620125271007969072876630067664373488678468834226268227805102147465596995616959212549858918604117338041574468807365090175679132803111730678862604523000623897276575158636016429230398597407598179278313391927219557305879376348682817781442044526174767718601150709506003818729654710585096678354376786651243196101863681196482368996437399718558602343339368804446466591469677571892050164704784523752680287956732118525279155160641867542546640726215242325636498749764631206249623655586237002919120353137305830762163529035956050259476790428166520567798137511946900255538572600241153383403631999181013574931343682395638889194530975226737069801318950420473453653590243618476527199307683345923705990550193753819426052916390473484217382148392623235761101946138157718149675579462319019985307279137039291523685842773437257986488317486987755137179134692543752588411006049584316380791212491511291439658539830735490706676857863875159297273862505579844624805482532022472515043550447832627631404765793325268331943679780219978779781467018854671731396529162103405294653839254345087607846792609226214488118154407546850134220008677015498248096585227133208905506943678438623357344530752001404467848409447942688631919503201070442288057093761238554337775774124009964792397503897410544812364329824493793959612650332017933751395069571299179515135163906547751528323926384523578206288615125354924661421148916390354468928512658451602343571619279774540283904294010125743435867532292023298646837018959592130914252416318542009698072971310679207881903348102077884274300296162020234365159025189546322138944681080779432695143126624812848586710844634712091223466245730366110504342796094147563019958109106974772296887706154031279493064083329834854671616899868569065746222071541311904186332717056439316816705653396749503699889303323735521631210827540529707756285089669157841553774899570128234725371699748795544517309507527440317863004560378204171141157605386032947386616652402630408290712133134927470173147362888006147033450235036352750349085356642972074466591600060890276764280294660375515885318125839664453931903592090866207176866123110858046105472053508784436339212305456088014131000801150905330910538864885077231126405577687044809983885786234577355683134166995933552445693849106779483497946437005819318864159668947522518627100494492204432566472627938796941768025048641390041648861299303242010814374532639181954276020971429822976255708705179324992556947268614892242380117970872589504020455724514654000433379272563297350792662308996369382930806710028158481098296546672107989252882739353141292717645244153336767129974623623508915593043855419604078678187098603699626617649941374977356589113310488575566700562056036227584881110227698313768823960863256954764145092481814132861242217742904925191275814789707095399892114411094415078458960968056126001373382283061692878722807147104717170985545964955262675222192452895171743053445056991807009083304813714129397228178994428281568737279837005496211290504051388073323841775222622961410646637265801470446750196453470947902139307741260748015586930416056992744248694893347839043567372531506086011356048947157813602672935477370555804697684763992002351291600292623891713508954106753445691084333446630007506058511020375906460425484678132001453526997410009600244508646242590986619994682970737013010731149856640500876117479624694722221300694139787046120867141055765720355710599990257310713952933459383642545170166283211426148499792024262495992704654090704121778821868856381155225528215697813734581659587282337616841179777973640756393987012468667656608648208521337171573760375438442192441941035963150583853852646778000884197107975123073452996649916560838241011349149147617042033202925467416426299672549682191461207026149973260551071175517846771482243573024604346901016012435461628490345064416620097294948829891382873635442071838859948158333500081825744227592308252851399466897530906161982111423898025629446315588654457397528106947252937715243542479896349589929594226416623593532222949157730337109654710710363437981364542028444861820172579754153291008718595491075730891615330398548023936100992587366110505050390256722380726670893217860717746074109184902594509113981836980250315633017006916506383944789079833074983632478635218078027048395588645948568775190260953762364288105751594901585297353736244276686122520112109094507306778769588281165216188344416567657360868666211187414363155471929833364864328225218435170133193419283267408203441388700680882167584945588187541856650512565221255942506764160525407902966528384565867794067941027790392918662784301279402870550442517077139795176716008333159971412021055534127629698063202523389943459256906921049528905365914078494951946097006814542504081734732359253833265716283004687233005174683346726452417091710143541223279898487793245056533131024991288828594248227196553823928959365185312739121169483616901745545109442556659913504920851872834623031866319332348634455701879384851217599301608899051797724945832708351482043142611549045006127763765566353489783869046003786648839072815768859033456789503828792073804655936489815903950689406059306008070299213065483057696471561128139178485589568014028568334246453455957699305183872386646399977801333949876848955153039352771157453123505849221459788320737666023429418718566248958655954223565407858535656356463012430341284154389666005715966603795904077092016640682251170856717327944528468573885827995577021459197557736230394843314300761563768067447075608479072204739615835970495508899168756235681098812575534809339796111028553140210087108455376415811164134628358873371357632710037937429412790437465855367142774038146087977080996767773885801101196065148324176287819543977007071196819335809271140097108427210384281849416107282624501611382697514054948136470106402865782437375083048896395787318307857716153129154321614397176893741947250983076590471887851134500641337973812292534007007269507822655814564450005469729494672012488513048534836358223786109071263002356209602508931490312580369188234993824626585004418190471786360591780488962728165125555397476167197446116497530320223021355186096653683156401032186326226190849015834223273479686300137038924416091564188822730048782591231876926985733536861635112618704482164591586850597024057899111519786695574248318149451988167433351391485815962058853428549203654551504295111424987217829777076210055667530661333696510464794625168215002470204151817423372710098236946107350581039140034869995946323500118456782558135931957064067330586743750679170904108889899995808797053882424962912565308676333977848214268389626635656239528863956963171263466573749658828359889944919073136713189016426396566218324315470126126413638171183822507771910975171844643511994341393708005242497861623033256971015303168967770230604837889387058831213222994083955238336496065540452070515938431435981717272498201603132022907165707838896603665489830456263667215854407280621677415626883298247811531521208681203596957248335045462873611289868341216379824162951367893722611528289456399708688374228155250454281654074897764543371457411266947822973864272942257134058220722617236318181478803259835111371515873869497689390803843777568939526043121250949303878359288196020348173731804185965620969756410709932988748833223322070394963550181955966153649928231309618955898339428715565369944175508035879626966814699604114895083011676858189242740140508907749353847424290395220309784947211971868782883893394408001898183409422418241630983928203946397352258553921459016514114853942787172937323368730169223791596952228474549514453951393535305937275711972521212191912686947512659850471020875154611352195532125002588215712949016223804894249147436334317625257755562972653556653773339870886085811348537537191725898234178863442114921957091790256694353880062134674393053426400189620246387687117164142108773531924743651087182980776592174390925710689605743141050288809328460230086118675299592394717730184026949259953934395749935985193715961686427433670583437564354246463310460922697244351864698163333959202839614676558722613828691304833459367705021964868096815986041680633584449776714095507067024508649514547881092667468101740809110183976100442539703878261791655529012785778198286335876383586325286212005205830125603918486724810823237288237613109481358710119799981913233640253321957182741648891075831196356263222164145782203608683170504827684646592434279019194357221139138724359964575149985039293446493392168613829697443200939067852941148884431942804547622728523892732369325435556064221753223340440859481893727698018671418540155715634619186467847466443027472527361264988571155595551412664047826157757889684521247140288788495541051135667298316397913673608174323565562741302736373716593088041132511449787772251817618236107545988389872281195933101804555390080562978113606503120736426754919853186403176618374081216766032219119682360419941956286673153788123721807163789494508674090048682501097200326516201683500549060214812043136676555460998719770349443056976223000254924157249504246677821758489981367956492119403221962973312124433289911589446392535858764145332666566146974051208519116009914909264898670550526768466209610053073564405739330414868144714658287934352769469357289942539901717509205211762672133112800381516181739748167039118258348042963511533276055466659816622819671076380516270507861721709189864067572290605178912154461992849542348306602125359384721622283418496827453683499648681461498270831098847041836965093191342182534503821436984693290275218478328486302324467037273744918044066068599163267123844241391440070873872969287068959615540098553921337933766784644441297376256536636230245980415768402942915381521377007485185299211172260461951709099852147798717512854931547317997140610948230893332600647261063736582812571495478761538705437491377392396547712755626159581358927757436077935686857682388261892922434529996103219008325577000819215795626392561660190212996088107261469478019986506676808771680179516654296090828652261252353313676967780409480049788685949249142941187682516594351149411978801814734293766951439805121648185170199098485871159331087722498175090579790799563195849225396753230707033930314277100262552806687932169410011737247979165560055881898132158265852532450241274145066023999549858196893656727442272602288147351824369367794043115081670235304882221939253353792608148767050633581960863179667611394561859242956682279477456848333934573432669275662855712540423187312660286344485972682981539605599283722331418538795130956630604672260639838991346813888501024657169534684029688241936315253447503609122047370025011041577379071333265644659399235390890196845020795046289472060807749543853133649012902648775291717239796127068717462031779453824341837790454198053919391347059884726480201461017123891033392414863441430659019332152399498785518833790976524442751342132042020763777190137123418406098619146146157030504295804281297415465532190726791207408016271586561236955692633330977338469215126736979469831840107392745717495388006080768693800735436810381280369276006548201263112842012440316200359232620185741520025935474316275380710769913808382067207351005255718206976708069418217315314066434804962048475054355971197015496273092383390788989304984050985658660678644358487533596068431786388258335563102604714690756123970414943518353778519843191503228038536639286578685435501203652808453233774178720435643506719136384209449745974038690751129631378287586903196623548847698079743557043413786853623273527897508725984083438906327676684529423266179854267548024265525205455335312543248723832519104271043533489324399734518720732915874494478484314079958601317140547521062790552088374744909284621027920926913806981346314989560721250318652312810422237954389747383363704844039232077977275657743612481286371534517959773019284238965501823519248622541955693940101560078526059218129777216319177237747187348365784585228225301249195762116433368606454259313662478531710222139037567456391857249726091783628303075996820867403961518615335637721493858868055360566010787710643223865875515192392812040750682283243508120743155325140126642285921208652085380482925201135615672612260725337047179022439515272140259016682309008015944168458312876217196416402625733103343949987524705759412024787103500093010707931318974886203394645839742380501880495788050567244926550075278320783230254599289576407242245235496382609754795086134831868845882277028083788354856962452309896747968435637785543102856833335408190733741182012486175897826916522394332349227240449023832755854379218157535347905373326486645328716930218074940806757668838313607428959646607790780450019976072013958415971520719066378320658661604823226539045137913402590517814911443426818792652177999074016623139796471740664429046894677623024071682797578334661923616343240638871924671842716981362572865358223914966142133384433829668479457801281488135233631780128416107288400398866678514338967580351613737137723565518823471318548149212965785116443069994277514566547194560636261894204784204563585733863557538307690766038940125271595696505617723006690447372134339560384498997468399957614292486889329534713207954904831784904355555592954009134053391411560210897273123627207010862082111264308789709964580852239519268449050769021021104779592408684302925428216071192363916828221451141201633662524294961015149297016091203434479990786971384798580761582997210858578617549385507342230983157416769751089522033088463581934151684139129910886121973121794277513726225642045397186191213850384491540654001085452120918962198865261025683423067949946005529904018301617007986137889711705559219816115123172036746924681895979143537849601226388329497928966121401700154587073646372942444478181601367356166844178555919147783723488261690966100549875627092551807142794787073518833682196742639805573750778033639590021054604178346531503800721737341317773720274400403308306903146884170068331954074632011489416784819445526359375459265956912524971546266089153737816606579022977446759276919279516269222240754978895262971690792722517127355265011115753036431637219854774917292032028317475672650731110343609784387194845962223114775423626177669060546199409460152321753145566304764273469848451098541335436765665813997904732664982780033133356962992448344401870448816401713315487707820193247931575884544406513337805676261602107867031824890557899843232823911320170178086971436870506448192039399187346738145303499018919834562332351806775975650172811607964142854429871199424927691695711393662188910903589599321429614581829390528789597140976126574298472159316084227498626683648168670372689905339875536246297281715864392751135120644639970791088905955089290674346516935902724702475840516328249461176409836351044131198921027090335943816689694491553579530586142830632910413152995617813076741890766979729695860011182702892629376835444858843438026551296045533487496362589077997659583093805029273161289759144309295176248207689745978665721464630077087432704365611085621471606243067627512911266788044077349835987430478395137018889793550225108779564578455126304380260709218396014932538330137580251007786634588981176284570422121799395385376248619285914976452612330749262043338070859011647127140617133478412155282230701437790208815899533129030408420008993744180308977194872761153371997614423977557622752178266371091620334347957179507176539315951697460165714816247041884407868722411185233752885522262188856742715805736440563183257359298334970493593043254819680755267852528740899971901914244328254425683741422256288934470143509975172833524467249713340696481440729886154683965013384336357602622096463674684476412239130457347434099498291979714198083555440352174191268103295899187168663894610153852675447656526593507930090351076742535509975313622367251349113960358388978371820039401557740307402124300604580856787389165445766016656435892859033502274565346769265259576973930862647631655163152331671346486582428612528841689336417114571951131251753607371617873333766350426958408615547738876624616691447709466208379344063563738978273903074774870116402432171674503445940391515184117790463357004619807266152993716990608366578107166009085700151578667791048654736510401209206933176866194076308008444523755278056379917227298645390739441149015381259273808680493577322783448687027864591249099889956309570089614077552356757614914493164225263331493485087490252449096869820983776333605930963706055777203544085702066997087268889073618718206271485908214809441130046442054814700284989885815660936079240430483726105695092285373812261639905449286883140530332102986234399063587074494752146237835586069162177793893711521680126975039077817367355642677924014619870123434594764245201469146422318586266604791891385547052565912701101447001073018638827323757873522206162071742824705271876199022284699629276035403182576280360242975507961278400077225493966343806579673441511751467154320465296650652489882734254275806808218868183119829452263999561791489164619208706881495861386100961073152485788429340884562833888798196781216975482612286239916134239539243933411697371030988713904028285249817352201664510217309667410139331652943201320223025551642567442451707871014595647637013843340021114529955116883440112296197322264455397886464266439731523369714328684644849908786776793910184253295722447249554643654523681443456177338493046764066056801531865118900941968546971845394686372870037254575194821134553550539115291970866456908363756817829178195571573834988857682826631741036640974263026208223662622289455711251630525615952353354813328579136220709686362104657511615875390025606259843470090810329371422498516884889734030703139179986918217931529131415491338353509026712327266440940581109964336883412587124768819770216853912381591040664934773126963657393414858821058200492438730072866085884500777656395417285593123867010872540799248497692202425691641571015969981015453890371678781148633395032976876233563692444327655073126981382678307434604682748379796672555452737416286468519829974671169630558625958522642797227874629151936592520597058544404624711738162340847112264072493551186096447700155193254806580286040958439573590221531405320760616097384361411781304625860536853567203589224454608216543183819399264695492873489077182780684026406588458502337524170751368924978571560298219840827849939716051695710270849669952823858747650436564166385174108651506232608641303842586778406068553807285098911008997528231830157353951464592630398928037352373582051629858683532175979794168078035181424350553174928107673264578819889998372995341662491626632809372086010808524332810652495095972952393705528452893433888588146249608023680488490038401808578284697229843845027216224321825586930291614749709307674516247701105466891398190280359401017954895325098536629138904026985269666977178759209279436991804781068682662245187024358766660054461145964015568313893453989330348424149135123364704587350896902463739368752810291237296788194082477961541704303707479250600336094558753219816888132897498385072494539797565173946772484511607695232295633871007760396457412014304295773823946191367732085563455901570030129271211002355582908007891591123989194170769989671237189820855993369020943793632131966956303473774063875133958467062494637020270434297089646148279122461434270461832379331001574670522237240503160375062415032279743996187172235352813306840980234173233989206416884906570523460104780130242686967606235431896616874362037468857311939956028457546220512329066683249258288331302621932411836268442196018993431524877324016874623202364124271473375207790905101740862159981579350054616138733645345399572951512591046716796293335983274506326627505589637468299569314315252372463646167930152436195572239772026054481289425053309099500879279159199164066634485206646908291792271988435832334219831234958641755186342292903388328460507136104867023346933215481814443807702277009033838887057873251596674978505365083499332639936091900190189401005754453071876023538904443972407280013185813889306374925159195967667758051573950043254474760213925980928348321626197610869650147097931428446310056042292594519705780016672659307004264305185782094968390532935206710807167703566141993386992698122351259331937207806716605312862809320515650174096079248945826729003140267148700059778244741203707239178810305870645796239570664799103855188751827332461403701446413753945408962175120830313120418145944186672644622435194334404140849068383905255149018483440545874791884288804078268753286632611641392992744301735959427461196727467039679761247439731481568301612008827511605221439620970493692740039103580832174474034055317664448576554519022557781299679490169567211024846747958900506217321570785046970663584813484147216537167139743306601029105173610539516398081230232833797106476190473602098043657902753033700800475346323211709597155818829208911299714207716614267440930740936236909856855954482794272545206593180245402655698484480534114086889170814956090095869918520631283033619176987030002080286478186670639546855230724142279108936751154369843434024497879080166288087193693319404047916241498306353633399104332852767157944111429786020124561771938098679320363015769557329866109782124783257101923031795704575209142939297689947046082268354743919209420275211473355632970248416773363708952086724073205108665747088471376135737672545096838510499525272025723906950232753529213423011264637351624059966065095592615680877265235772072601948225362411289513151872779018143384233683387305246973366927863532970638449331956669838004927170366700073227994647469110357894560803171908906685947925202553888310855507506296326892988259935140620303156720962478251748003009347680599194825779395182131333337528754591264882350713834144145129850003805277578969295501869425990505503923267120086226521821108386572303554515627626489504401910020533925846911314831770187373786751134190359709645771669827058104141618816303309468822338515829819737743466052232674298634949805231236465551243254964921642385258197244317146850725404801156048429327324382948817234853354185119943543714217844379308373509991269589974767294152454505414629191207812404293924691310543097684367922057813991989193885743945643218790639192001527277666366361154114087945639869369648371401944493699227215759975733404430726692468468773387608044289259909787034165006888573920449019018400395493265173378936254892176556939743404829248062717922681359516623202395310089378778775810791740991875131717324658573461083057831713932645878901322176027063356918678085586761880349311096980146806299506742581460077644230864937942779269267230974019857537034504973258897197286887304328686831072286052939481007898600964916703430105790652682562345421932729385028485728712597266004522376220136826145948962753544181068982438614627303101625805203415644590850085662949626515045585891590080950071160203188925880329521373867845745123478964921939970263292880531745525740575462494895671939954167507769866856348829490393315838043511312866705136087884148556457853337576527089060135905562531530055845056825065233515538539111690403503393080251114957887102670742917575633496826941462581872365647251593128951334153325950070430511323786522618123569802730972713611715092749608244451656010470475095225487941437942004436899878111900559730729093579996958808847210289367434526151111949179031275989365998418933082972614874132397769137356661715999395835874494368342341368187702125353506791802804989827569554491479058309255604290050543328397164843856372097539406989248261590984642639550874121972128681731451518509680129144185688073691868288033913120041321863089238368631543812551780362241525210813478440394071251740284191145340742632990439128003879871781104299715061138437854375826900582238203950339410022753443677160772102972734282347789351086832916676734509361253305329656361150127131902397506661619822118262537412839549949490949262942675002632068864558061427498364707171298354919531630868740542508598752520862324978304262143855612556947463450568917401305626875691678994632369433158104386249165530057720095224233221969926830605798294686608814607647229210707015551294780971842107540452527191604150074225586822888179665899333887215055437287743627236095814456088400801990245899847887446953127032582325291741013084105083845046724683832169767468860337998713599802464328274453701646994556259820928750555764192614489074427780446219671403495061508740724906281928925805953042254029954454732406793328328567018435451515770017387048318605269354626319695427884828941224191495158528954928688953958583006959050185186782802650582492859417720042882115420162396205069852567632055207738581907417133331157235992106510823417087416990092054686565664559192729945069261906747069036137832334065873055513026777631953355931921788333646682368224731857197838547976103505013175415871987751133724424538259826938988653178543740326785855341815304969747806351225341072430179844227156136912900114549797093898629146857049083601728251056832007954667292436338913793137601451792872286307817574361588063372495255066081889877301017368185741487359834339440880241725462769594794098113813695080518624366472760769948903567384345304746745071967832408279835581981840626625538644073009839799394039805572401903738549534845038476428386118380456797999278162855834086188422177329854391385973631311345506104281804458536009193948175868231519306210450742849026604418855112642420480131140814819954995259121971802183654401301956191120904674587587567277971446068588651815877895974325695825275989274165048458859554486361858744797027043252902826240540451596412356415237080317000157997432221359335553955878167658702016786931688417341841286135457435570974372922302398512507196495198479257931693093894335690808387788114521010745215557555148093587858046703785518611674879971310079249372214028831434953554316677360616595081288405960441352424477440809092540661595739459865877634509402445461396770063664939270553116948063901964098632510363562595321171661417533357657377377691410816441889693270700843956715846542066313127231681919135814894570094994955276786747162644734090754464353049622894664232405953735932714402107070954772568142944102227157851868782993597255963648536705491993951057072785644285783212078000530997796324360555598382007528178866813028953922062539102119078607241972380381066443890499752888970758942964250992710218844400880132483563959180828477498654496764439994454352703560725094802430527711207058536615542769729038501845825194437860984141382149608460318947178225135583975628780826488858441295331148901604052331717700931637145471043808098183774757393039243616197583367454402141582163851771118240837809495059031796739029991214478428019052658714852688530993891550732404187095740438391305827435186711186842535173995930946596018553716351067262197481594762349549732846076855511318112601760669679070773886221295244131440620926845659599597796875450248226827607441462598633778106240430625122308250261176709093255897007874779273854769754163586611879215494959214595973983122016569789579851140688938324806994318560563350631935903128650215642896766080791578767357408645939688707806087582427118515341258223196014185086678733486680339382159162712037069080223522712221941116034739125468830158814712778855882287230709615210252970740572669566206952193648179104696638071939077908908190065674663087859928140901368805743304083610560558974374540660239377662736283114412400386387166933494717493227337551367599335182900927534908403023438172910428053189170718665210097617116608420749402771033129230935515081353626962179796128885856031031454439376971557399906277687279707276879269172074739174605871583475016230043950235857032241921788974200768473952787152543127643655044009080262309712247042559723612702652753848062808969560883452516122836970496210407948711992187159395883310682977561334970430802593984561248474755906317753189699139938033857299925048621557250402931177701415833210765269374930306931964139049214341595053533996929004469242778271611886857499619954459212461840270240260767770456716776966974559087590642529649972971421847061624356409184193254985629051998552575425920758905607468038125129714416389172668409329858302222931125581190229849759824297154358137813651248126087519802748398958856337824896678749265390004091603233159737162321686521489796621809002083471115668822016832445821607418876425894300624830389344476857289821201510587298375597110321629871772455754061686718458089980635696370026138773057380575683436865047706746458792517871726653330346160158611262464188997721514331354789125944192890643892943222162433406123495218498251068363315826218657567190121267685075611500987223155352688620540931475229398582421879061494306874300720123851727756988965880147430152589798149714566577077390913604019107742233415213355004383737211668491579436599478483563385612864305500668664673694986311361917312841383956462918582425621727495721357281847076017591047271270899928227575779499412412055246565371627161805862077541521634125316760746428597114564358016399509420961616290860082104004848303326175187742968400200451303536463583175703565674054943315285208148991026447717887223447594826766671195009664633039674453637298863582240857843919132795815021265274137729363555820430816082674308173979015920021112368326604133147750476513983966432509959137271339439380900467748315290089038570328945092689844055780189027877034466362553125962373786692348392996814005567776306724420866872986020338197982713505616079445882123579299186372084295620980631165094759591906530556227869566106413339153878261461804235102834070168707980391316370229114414020748716902699804284982397890056071326614051693133064518708588799053407365187743277127912302158556070035276489826709609625919967718916763383799841821754352634126918994083159033943877363621396534835253295702118105981304542080997040771108824667874440678549846414651384545443014817120478225012476568289870906156372497733056327024419675535664213223795162357484035995224154498031114700693985901487171658471771523218667021468493459662558967773463763993225238425262320411129201425048419268979839549213920993135328132992599608210399960976512381910999999039600313920679290816664173067691099534649341358463911414584526121846675973672069322565669413496035851730774338418449235466743185885712469005523078560757295978458812250135557542815141420445010092305544767000781115187827617627232089904961046521388376403111260286942321207844767278869077839182004126985868490583885788563765225275311948061998734359103831198979003509657554623575458655985160753858671597735769655274073338264836754645343909013674784072179482090559000588414765125910770480522887437852728700192701813299062831644329045768917582199827731478816832029382229102768490511634568827420888711674704996975375575225695390891387277816465616972229751268679139831626572753929770760168343452054128923805301322832063551069841161491158045332145969796968566659212572022882390429020607581961436847115548434251997989656416163647434475278397205712657398098728005978455023797746397729123894346118630602666855602994150719609973620295525370641283064610141525483402934953963292341838541969271268285588732819098914531552984761209503190429026594684314896429719075402121414020772695090802183015300240554435352458419426478545349271106789660972269313433621290003566155535678784476210176749066112243941621795506451368925057968419960525926414957944174878284531530797584177662071396330088967310856110808775052991551037072677988314894193477968107541886701905001416084515187793096205693883184277617410146966230037654837644218713547299940946830999442591277642281136250841844637767679341654193672387603758476300998520418044555669984405467784535761023622925934223294760169752110609174989838191151480028060886486443353868252392779973953501548445814331070434901363250440842372367789172969254098957723136077695623128233641990947161933548440758643279195827132573648487788859883243677212323987120064247813183580395471457446807955683622746114803833755334739125392444569974084198580117211119598431724489402883241972014808643359294951645593483869794795921554383332805301625667268399009440556852456795879533961437230529685337421359905551992417782145862647794381614788508527128710688240450910229819475460974184254301875183356842958205473629969517528620036614644197483738219331719045898439234080707087031940860148017743867102232292857607327489217285664281253036989858808116765140964416607040020506501529001263893895374611330927868907255811520231937555321429738229200523609059952620858940579794885548797924319997166343719494298633119772613321687578560075587772170432644675750515247168307340748202472908847414621924736395039845197690830849215728170511463613035270095627150838778519038628882922804504160209691989847695038179400390437425339221234880413772594551167389325045731807395000358018223255953616967927452475105097213659030876749800717199794160515466980499115266911216660534132362549257264320765737346476606359603068160350384627345194466171032547013851186631028920890671918230174314879558547320763855919896449389326332005158203847049991136810109648118179879380121765482305387898992135594781620066510000869985810190793351965195781125190678128914336608277964944073780750658488230163122981783445992427169165989818637857977957472932621015000982471345179766133610296438998183579062722734312274291914128292319454032223337515192449957024893189938433000545875182027580010435204227113553149105617046686568205887884628254863097443938902059371479512740721375840534352888032705541039859073010519642674932138638518826965477114910850483871727457980119774536546994574750063139989885514648405263788939718878304979202965952961566114245717763274497329956887928062156014157529519812257947309417583377119662141151455506974919366667315504366651850517879491096027986479273110642521197022486945010463424061837684866015325702882138299238336924004097538744583961377002569545063679074280375465677617961630165924940005863984776821051472629051505508750405676672271890890944502948333249855120933068082043793513275113063748269265651832581332137341940430302041955550595462155238339411024068496025241713421398670990500181815092210249828777291408792609995347495121385405142693452082474582015357372769801934235608460223609569370873698195946172416809537591312688605637740809371920990021023814099978218058274990633748045573071794123705943316505553846268963907582330346162983891145880183545492865629095695884109456588829081425021526468432312896809096553516241027531655052624664326813755431358963622338235156353275213281138178251587636480182561180716304720671963136153079432838031841403236410017910244493493284568900047420958095754375278563271547496130680865012999953191829991922959288882738341948992589399224856258559314109457249351384959510084377545351558600009232145993126207945171676769180555799729557457772851621375433682262178636759957560548743243098132486443282488290016617134439356550853670587295264051885057749683641172323343776544915938371486845524556713785522060862989518604071573367841649709063676676224995586569885612741643859212054447393200509528195525329828699389172101047161338175676117448368878781466470694627625773811133395011459387135349753232743304248046847394906322141604816608267431396596895414956946252987294955999607138589562072406801631375638326257779898901475820763624655172065973427530612963008211492809911922071304879252000477632445091658608946532145051387660725694534176810332031218020374750226292998192159393843652085293431655337461447057829699872405127098529111738204321270479206930562352266826599398197363022695188144935135346757811177259143003478131035444534556457114745308595317164994396754868857165116693731846083523346287094800035156595986899083601076588549299442825565132944454910392454754739676493453614498555549975648620039858289714811845332313550126274431021225466540086528821440440154591693230157672336213660462462585761742564706136744698836235090902580056043167526663821264285413691933128249242716046195696689757167469442804386881355853822695820902797497079315925121585808468050914240086925854584939935139250967600307388292832739434060232548170660976497057140677620475209295751979557643276476948709148481897856762605037307311505441165037657044557213952065298567085493870521824404828747676804651433102566591209403690697795573667723765662540405346810003187897685077810894759109171266514560708152781363001274554091574888807271953449098379724963601433891440924583785077824121132281311723493445034090097435139558816202269003277608327755168399733239826694771517645783564683093325739845239513508268089684667065436160309523930192222773781801940792910762760196259572308574887075906219171680602071417154350376709298750070958951046976843278403054693107758868602239618714705753313306488881534408974469063284521033805630037351804484191414256428406075989115984922313604407907515112958409615916110639757265923108987971507611640935751901484336997178327812452253702942386463781280620962190101111180133085834129317795697301512449795957422871835064747898076878197341072463990779532852903363488430521712985169224865324959659180460685744278899747589375132395018024924853645189728522875205225060162930564095086219925105223518048647464862046729632723773272356240465418418013364651054981191477407580582839373519883136733434251395928719973727065582094548616817993059869677266048609670333869627838483536920714015828439265890009794818397676012339802509008479475909127809264301380403864215324824315079458985357064000894626192122571003035312849877869788949538368889947736879123245259552577638592329474633411908415197178995177591113037115653320704851704858614240029083413350960718771937931405325491693969892356683393144018322450737600256087192908604295136626498520880610547116832855281656221766331829089859301899385294363330502848360140105604286560687530364117246014675494783841732500548585860197888631981219466904734417989222179754279795161001713218667630226868017029383061690204431328185922320479016126581626876287035656284100906022255460218597970592848611221460588647231818280810262069855931305544157111707128860036516075057231731968363767342603087823200657531939675202814599924743510872938720086294916047289846179501721309246375917596956254116582458711827156154093867503737986004066362501535384113609891264864660515517347637619130730297375488624345593067605337458233362948935941408392479072851045894193232308080834876890072311172162277882350939438238111347587942650937231997475042203582492978185584889141265585831297064043816444477874657455641981991315245623083321211050670951679798119035572776087411199558308916890897628586006717275350612041761259396310544737386260552270527385080018155209678488228182794876444245163998514067421700606049627119863495761036417133714946208307229611103593581537051265139669342415757431606852270443158217040334857413797800011851549975868816621725097875617342332516286756638649227162315562634732806811881456442338194847572891110045639675365984983791367234626643299405290667822719642483148897742003194659850082930298504977272560285719957611252836291765086896990969702325162641040121101657173363400914240285262681360665700427686394147600901436431720333158573717773193106332117416689609317492172277501416638193686904749463196898140183180186927470734078081391843609821230787827027346133306506863885586148051421179581960752410292497388136131933399995998343151808185023058444476218750804679292013001440098002688059051916155942910488067816133033886789329353217293924788310207318502806550795422386249555565659643528131730725085709576758244965692313474706825042480476191792458069882659105978651143261507490697458166050701905759217442891560419493573501518210978780458950353004969362044837098853598280771707205323593365113397287366960050105072603325840095789922862116235975223711646662235845324575015933995983812170188747133376810795850268686147619605173259553024167019384546207764098245920015701692710287108774044497139410532145126337533529741716735594460306433175386044329802641513990678907449507159373178366780933306582524445196595529543077069254258660534900868436298347330788299453816201250704213956645835280675238678512471718588564801656765929242523453943403256682775890289105389268045358085489089866991661508320757679949983799869806955883090687032332179653689102019711556933222296030175978610605905227973223495698454362382296057207955525175737781524275885815087743312992326605392628783557276027649300943654040235149919825708282530705457504613004584276650025943399712417580091954199256077250872336234842123498694142128727389870501535570237161339141150162863787339777921358771202800218566883142420426681889163401303557145125970386305418071954367213379458576436693163198171879487871047546737321101363255442808300091847807833165812530087240895611198383490547928876396051358508227700466978602259416587921972296969283245227138652729494941992320645162555376122443331789055920093815855248545990436910787720855013427258467874754288990441281788427788916810717175024070499549211542510256225591614591574806146976362863912647583171721443650901156313562313004509005750557619996431834155199022190560078191167710817051135787244137200912609297209852281454482761069320634608637774648898375402965148519586402093538117325425709776259763316979032356899322284474149391661718254770676078850506584902627242959709293346911168906099208229189952843302518079184035585004955740434593907556429491291475566667859419701211880202306573242994217899909556610314972826073838970736937441141576821811925484123653797275031053309463930936986698431428077515001280711615048438112531388976560713893513074193810923767004222669042794348299181403661211819521319712569309090431314802638568022476034922237396954551565750128527371908197658681389294731405771767566092846184514687901860843371175284146701370386068383556100215165279217406417757982946015749756659148047270135327183203441837564749541644990049382403164631792152390205571842431525945412688167109552994261608879458756266051106091962547358595782139277663843811402804143383438330293940390955010773071187619661828094450341973188080277988857881251559588626339016260424034042848950064505742399286524052201679991702676691354596199537596852560357293125673802392801408759950479932147472736441908206761218971085942964181207429523049299538132169389854483997549124865624249543870346944085002570908610353788263078154478662085712338145656666004592542820703017246675639237846109252855579872367341890694791467682062704949061858605800274588928261314108486525012698072716142510623965380926543641933339824880255438702287578047962209161558660176493212657818713014429503671417943296854876247992713410734144099010429646460870026922326773280426332067209787507621011052431814355694414248643984947221105341777919706906074410387820770848789625533376055263284193837976710853593512961431744746449871345449208507424038420332824736324521472322384283603227453212140572336199100253877083483915849619024199601568393689575871094155318213565632346274690255732328374445181012531485083593919000453476515177520154518900113987572843405180167361658113907745650891620376466086948506819185487342509581526831903898698386862630316637050986729041776763163274597311392809229138403451854145051217948676383204154373339970168947730923252501984549145975220763356079279874874642743210956929768639726322263205439832244601056527320468940127400320266302486904810720614841872348035700465941639725161825968478233130896574875925718432659183627282319656706306590134226525457497651927929795141238381239558155140223901753283223449857868294008040934780183259481827970621388910317748000886422960345551127595863486566895929306994191610146201929736032453147021228477312800240235367105132017135686489581195529629563236382493198727376535144449127167099082582420412826468593814952136759661601283969011877055974176480790283314089295057184333934750493961491007851581960662371594663259503087583801763692917369386592238044353723951666220299143249905508733610096436168732742976466856833716874572169031332960803938944476769940024357699769823948172117462518045073222027395425903352649749405884009927433412982480500385851250086773833226254192653533934676446162015695598400403401594581870071707569212875922276663099435625754137276908042100693544495394750294347824958147522505684738424951008052874132343782935892651277816469855587918656757044310148564085277193549951712400622968100595784371336971932463339621179883044080464256347265706499774176812707018362418708374863973801142958906608531728157889863203422250527062190785680348786224726598411350177573915378990339276713700833708007287554633641513983924602297324831308707707151884228192782878218003823341704684291268278294430665538478396966932768264442090467668895790021591125267185612059927800200083186999768096157761486787708614871847826431685627805323568796378569038005956203773259484502483480447826811592711440394415349840337657132693994095827713441948463078715405336410073242803552195101799250509906110940527086498306446683855379508124262309439766190965731272138394647687100814263169986765786038872470684652232841105464446614150531565270829967669374709917224365729146856074141255660091370215748084079647303417332232864588830173660505401753816206992272548225069980043585554174672003290732997236524140905781770047470766330432754144131063633679325508189470242469326199576384882102012578868219234284532767570652543409951589956496023287866470387905069844957200680140514837438256043932236609982849571262334023261974478054503132396905569601057423939587031970318071423571110302085003643128863603803021246768397742583984649808547936671249315187406859544936372700285410266799268266623249932700205825297741914430135239084556199169284940193414011703791322797664623594063129479762227613602206953947043847370829687432285218529814083447033126630217982001405181549157020901529349669572796132112514312331518033125649753833492124384129295636323892772815725635644744704201649382842610000193678471233626517061361372485146447458102996476735105391436800272782149447378811446982003088434914952162512633918108836413066925649020161559813610160860526840388964835956076612524926768176766986694935361099773632904212562565916427312969501193504115603051959299887873727023808170748060541638746913628684455144514278491915142868575287210672708672728680496098442441372226062892908537621303690622146841485249493279587357641109556784370627245720481100662037237958819351461701657296013805626143330949531333023427814482962610060627594195753414844733401495982182756781125903534302451091127119721225629562226682476262420683891374271459450343831755772191934038964672578443414551931795950879579063052925737126151496617668383881532815129985185017128215912317520296801768783150991957280872386472701200393752891896731272502870497891153536627593286718983235912734292574946035640246381584751496937295465182355731605241667631773007176587070684664675077597669493317023731621388275445809984557330959619241633593314191423307892824093426852724302273413787362990842676839336765727283846713690878038734961274154015835945547435014379536771865781219739630975170272620831944685815368959098587761929314215837963526776740582936393921505659026408756992110768071651858098585137737490105096296723064689827917802203901112967826608190397949836361113330571023226320197933569169123375148937914825374107234758461764235095440247636442980240571193745053490434802131082649889315648466438932663972259013047084178272009542955063272575422024493570386208177405734791170404260397258951085812853428080740441290767950717182617580566549925643476271588057992642872206261722687802008205362943159112379873847520756901170782692466874268022208480081802026885754521740097390786762304046756737025004935907510317572164299808475113550358074165211125205250805461968547353964702519179519478306098062459613845252771412337448432651148798500029295419230307836722765768704579102082122414762142175105337726273247076406429077733750598018037301872716440636818559721775986229476928480086669128677394825805472311120646996590445872999120495404232001065180975223995842381976230287826997613297583940860927395345732229272362040722445294771841004429580121894561919026002813377557158765045543696476549799753890288794838887544307809771637854500394047108490667531041313407585860843990708311853497648252150510382951812558253338440438029406092057311190155367850213637905982360563609128359663097152726044047813933179793780131799066221288428972287787462107241745359365452302395998952425834529623466744259837900671565925356507550691627287902852177467321837177691376969160824843425916181741057696532790742553411562340959327391131933435928919229485678096073141366642530630269423861139997472095000351517954755605547105257493863197944982188819516691569749214881841361945521961487497874779125471089034584719160209691355364125530084599287209412258402744104730016548270160395001576619081475932011783761900942592382657200026436555582536570316538876851797421483655946438680260541757747599270446740403127417348950626144646835066154834078052811804681187729834942667107264906948582773630575027814601010269611634004024223036511211368364682597312684701345781389234112715077953909244300003573278706748650540649523773117055280880460029279239810809267947388741063458534637467638078326390004750298930821431073067792196690954996323197801125850820794783622430116052257410744867014404947369056740264256906897653859399946824756518317638113550660981817811529425195943308132413407206493621142588430159292353810320745011306387223196429081520142094315062571177335798677038825309009246565875442593597401409962714788462216620712109891279204726058177007908935831911363837934886066099877892743595082603675954656748064738044599122064479333873126796648264234845336734626137238433403670984260058058726914752727173742521642402420185118132815960188809367510914140826908924015662870887450650937500664263101412425897476055515135505552466180138394921229444084922309219498642701854863638548194037997190303849781410986963738063974637250783542313162722163435765720043383202926594474385893822542051496938133421260505910092622760042975667907073655323882352666410578298395985405359252717663811797609560648194504367588450523989539885905146062932218671672749396821146594711672172647945895635312571472407614910781528484321441027567981649633688635846087805024820545446953105981993895013351174930744560375510620672140430206174233435197199647841973093684661654455154059239386731296415337701194886703607871500702058084535940031572291013991331173168741481825203949628947604437257413711802814737722745373780089415855913558828762122475187910226328400847106322701669754433829612044836243711027694916701646129275285444962363692155322065681537119828437844499101355544144450875741964577196904853460489209190355333865048031326155065317660304950433839198248835430629315205107524209208584466406609832167302703926988723957630714276294998798475732068123195002620978766246864859098947040345282834553324927587366862196628480035473111504931098572824726762377461080621235635522716239477584036472117151175502794012562008547921748377297015608591897183025948639962110807094426742288947574595006819133603364185664604292919997208217858226559735021998661812130927719001111471766652853195901730134134524869034863537300870418649864083577036465015625518187717943898486626929673140559782197559576151836426649668434129320112571368945792361097515328847503739930352911777803756529489248195542997469104596157319383369124894521112020848395476520651624251529440239808773131283730271054543621087035124783539804768798132458300021890394155701536451988898421852645869323235287040390496626775408498678892781025809391731006214736287153085268826645755783474312467984874085073233467503754786919999508873362042687913192731324869574155492582320757159711551035775123955194684164102705810153328800841984416469475170189305531136286525710280542740187383993319493293581253667547706068583434769291979507561049963874267564118971728426871245096765412138068919740908174568281418207039950890925263737356207972104050458635641683394665546397955289260320397758807560609932698766737435969985475890233575801398059831660591660369678060954822597710023474577069690447962392680338963512085442013131805839156577682330393921970407701732205467784371390779703897881607446565569436859108362674564497610938334099291287559059122493776376755002234398756600340485580492372791535567587037456326313141630452576965914660656410245896309368203914219204691853687100572730948205406687724016854397922520945630886693972302111165925123772453313682542196878030830548261561464600343558024964226651487906856338719761953932337940966467036993220003107679233372294162115304060023284065622018748125440621653927603262015674467491045603948792589551991473664247583160929598627249939168416065222420560283716011093792079795282090896535838518450246413146666806021155905200354961302906982021923216821266419971804341455860739410604532759935833133605589297481708951275034612338381691433434152889491700432450919639114265748266893169936473835812914635961499277154601830577798857391751124048289272330649814789317762312827264072201479514307754591560326345331911203288321085664092405886748081885169994905473862775715830221329911701222097646944987602745232950252653992100587676956105846188530668311384087142612278847062431423623135447391225424231321195300439012361474125811125426586063401037328007751046940928592293861310074059657649151920289603155394623158866974492536642684889391567532811351075981769307984781149649709271500573508731446236460471271507843367598589723285304095527022744862822394074937633464379417467563110356203395430038699971606781298600808037755446469989897521934721252719850529633469495097623540394017170552260681717467940504908935880751691337458289162526259867572906777910806658398603615548106395699493851437070141283203725369632175036242075580175037018895835732608350735053057884443615656885186275651265988502981667776542493430731804484326224267024074335238234242923618173550208582963807293939477303645088021841739355160735712676089745124607998507944944053307329683354956974865476885260228107226436905204150743198014958690556967665895509964666454217030067231703720920202773837234164107165578195319777722639533996835196281508166881406123131940851157353600587379033730857987579042789996027223376878096435271531738761963518411531580644633107377551993621342929167380109413181522390257900819808176137330027224424559349830964300917733696142012194584890724579633580824064395612902675966897554420705286306698776285675891669047948167364767115538350567971458382226706954739782808656185898069579613106095246497611585677996001691205972533043923012222589309031524329605696002932686363331988950399876020337873411978931843496329329730583568763126956227932928536400222857606447896790881859565052720024440231798005060800674758819077165081194066308375963947375127273201264672310511272064523217120904705322202433555752915051710456035100356381546734227116018316254438050909159561439141830377851161803131406389190351174348084777571277903612186797649433810292534570458667104959778068779948170122636130726330186624470792570607860579528843273540338604744819017586536235305936069167956225710128300811623381931459637775509905739105475122044232810092487094021857612229313628802243532262147227098338382728419158916256148577261347642284523420820911045617696956730637879340468304824755909718097795170581368431172112509737744833544310185384733961386185575324446899211340594782903811092788878222383702755714243256896061464023376962503828993792454515680451772541575010313903862222381489497002359469634835153298319345934194407672547513711310701104729795003541875911601327788458793896273294346746710035679572128759403955690435080683570832873863325356731169652216813176294226671017718396426121133664301131954987599735610121140595386290877482442350026321065134795313041856205094424795948453537266972058826538261299284168180148823284906723811058951657890051897144595001601689123314469876217572837657102459034610180870231078321829902370147441179544419150190558274053383314748648293515629404314378747261640295878994409888689545650276230269192517286728495792605026414562327022265743064094606124783527964418981793187431006941728862563624902744948355113287925386618094085785558468933205702800663585088361145485216311283885914447841680451615658217871889854633670617943569822481610437037953896819029290183209546572529021369612455412657649133481504430101244901013805289693027642548552339509597690327748660089179580024543436812403988199647229009491135357792716535928366874841319918319641772903338903433803937397756909610492783289557142705609567632853137791745954895702993430928439421293420922993788962531615517311698400470294996038592094843666572581951315301044680702394315623457873282232167456429325087235923866569374807161170640530816314752415893745683722282943648294755590246430500984032640025484281505655594893574383363005971092715742437674172338762360498247879731603402742627755917233259791551878342547868221261943739811647263157801690424667964161554775775096752722496734462831692698929294831327130204933489945575569156206856242739673073793078263651410516806572298759883241447450279562487348462110153589651519817989071101074866557085096861472900795036099264039993126903141766605855116110716242610508391162569040541368560299950698417732313532481978727527918297574697870941208471667569080330075998312986486273472736571997360779976936806275944337913010529443796448830154897925781494434384710152475818506634248279652158147555198596502337735665264224556052539047139734820151158095826205515344240156061054681711155010659387439658194706448015442927488679355774673679097010665682588443727162064085672540794841964532229492941008730896210891259394510059593586530403280318324260945392306269209289451249680796746785693560069255640876244226839451592936528810226955514791358462054972596639911945230518559034768835952058709914126044276084700750944422171428774617750208529641782276079074682602641604183581628614906801798583777088458833515325291463783871932377302159800623662975420508884490774243244203542793695780431224736948736145243838919107367424705342751268526950664954653929749588736472309770617455299801223247793332478218878908463908106489919285670061898319672703106677367813403729991653021592251692115909153763795312205495276541198755434074645685995557120487396833358110784759463752814338736347985349820075916226972688822172894145940710427809666156003549455266355245141121317597442120662926759033063374780921165911256764320546594938335645376266772348467074542121528360018992798753307191785153246722539421129642198179050566476411105525202852319414093696097534143751939874856462790212775152183904234926890840433302724010974186006529163692261586954294840760405819245916516711467208633678714907693333353134221142958357166839720353037082102374037575939241120601796965150778417791726037928114595010137396254791560500255214148515167113561572195492953987890456620369851226723894229021106484919766653546909158313390551329138863924023603213674226864736385966041203488561684462575096353087443729333671453493471685752003528000356536803727124182725003370315451365886265034981675425374619474122176430628785115570044327804030036104062263528358056314377277670560638720613001059331990191751818660273244374538255905353748677817274450199147323128042608112246241872832695190250137616930256688353552287387659645701451095552043472341213842318257508113254770567150229164761388170945069233659535459174991964917552565515957318081101469137234503285079863045305092265329540235833386686725606794049539369225624336004522436933267375703197932673932461828183624370077002970351116868885203429934997018163211001441676296505694099892401122740645965037264643759362183773595187137627238908623737799128883314353635659576316317042058172195552870721129726947132204795661038774389117156460377010756595039408126870435272144574050731346021374370121866695879494070999816805767053620901706894954529874593729231838024635392685358293958958573813564968557857585935285287163102725524143799842215932004143540452518747534245617062411338599285370404285789730351191471016651709339639266823576665245187517392759843430099381031497839095311305006117892222652543088073165821139007494073909539455188298827410327908193088990540057559319743764105936131173147813237861470285484565933765423249516839755814608385107520080348796637646786088352627873261586278844814783646821734076402130031846256174539478481769680807128689516667136959130423125547426499018894369638324407614752709029141685304977629309099879363910036362164951271500037572113698028950300686873024577964837181135684671156867126183412548270609851308247654799215918760775759956018828745125239428300476576613563832634788167760024172469131394630389138569239706272874757010246893483428063125222385012645960424162584750960796839287510513661075842409538930453209047236911080077120491626289364155853676485297274390791304055062932929056782001368467492587897769232648903887728141446844950964442144517862040629575854772180584546707258133182048334768247356192163917079341595603007552579602418267833889367697868745068416864667887888484971737073228735276199405142639022450143695295448238955874320848764593406749503331083709181773507875606360153784438680054543909149797427651999593595974396371957976408564426748117682884305970222634410797144432776370547574672736901418978197327341667442543487481921757272762166046748406770835581941275236894066701032273742185720246727336291710423245603508240875859684657051412795902536890000105205443356114068210112392659112989684752995146084879163281052502458933058577877336784418241824256818166408882771233264662650891387714316025518379267423556710003488504947778932184390309364273859420488461291444077719685571189035699719975644483177051179193135539098711842785243042266691766512182539381538755897291047127793947010081814741000409151865507179979591001600583099966593969844519519034209416652670867659097309199019805925375913530226871622856613910591531985965540787268410767886301464997269451462409538476901084300129164776824091735196462816236726681019599833446446084442076851075430844720544257269851130186268730355213222482529292252442277038995301479702024414577131185960866584224277405815825336197407805229881085835032609549539116929203043456086564696297281018741617722095861627579383715625702059520932809902692117915932807256740706868995888191340513377626555738375013501416402758035007407705061935831932976125942528363285020237657676441984625728629216885549143300612177546372494412633828788240406158279100497199992787353564158661497569029908629923004227136547243610015044092969782971739044697799393828890150901712931913565650752008471629180495083108371398208133444377513782347846461182066510507684039781401830159440021345337275063511398968353790710306254425382046016498187872871086927732441656524710992125666080835362507901929761512229424554334353305492937000257502568099140590645501637539868669221873672692745635894317456679970201095822936570703938503149921631272561337496320948305588231538367246844232896087593654215983696366965057407854205012903509940208870279159599895859428848837901902831646852672002631387068484885949211178180110248706859351165245520610946659788305487091761833072553654296790085884685247967627110529910569389541125747297288274484819986324623103334323195936709546210106933919326212130714782599158648063327385605991290550440951953908604857817345137259969737984247654847408220436077437620606738113753413440428933258400084090246544042271014285972438757513778972734504337012955113880933122455038895907855366162153327699024193416441957177158755436940240383275943696721350912678582979933107596355474829942900250759458043743298629201228766715254023885311636737685218163616920878597112643627550265875349074375383387952030739434026740502983691023990737704988305115360357314640534634985019935559831145832752294740455512874939682602768139627339110934952915952356664715282718054861402663795710186973338319774825202382910646616527461606414847402331343479943820490997542661981257153532123230880703899476199539487455320259144317751965133068453038653336236003489581267677442232682468809590823491820076305648679496430614332526731787627733978570394991287028008727573628256542912912611628046811358225693333645154252933462792456586516868859326764310504641869072293196263623497247076306707571518548618011856094175114388009887524347663425602594182133116761510996557049055186979998342362400863311418908493733136380541295843248479192001149863424947206367035001160900274514159276111139424981233791264289897564016240751672345957242563356174250220460962872609924516433774603675726153949760453088933206802415006141507617797793312174902296130744188028724324135284085839769973029707237245837202511035005500935092078714788292160285385280190473188823889823794222954834960592466887315875627118889501900587602056358094901628705098684774166075729746378347228340085616760513101118306964625195411516138898295075473652422559899454088582107076220538245866819504976987595931434783669357998943146164665473057908648643668614276311078533767790499318865675445374992546102238630763124676665605832023266867798325203040827810433861699634020838895452871172160842829156186895935558742987013427518167054860109672578683589356694061547657622976993272316885314643443917522722322929946844682283224669159273958587422488266063025707510930504766047240117622727852696753454139276023425458590513099556407738409120761549329214646473351848671714623867539504974321702239659377420125797300673755120163454900767456428009011250695866735397134753004245898980504274559694884749247063940334431895466899907153742064340930993011276039244635166439650076139050253828654708885826227620178333546731920449069199217247856442940814045845424362543553591245621752616974978553228389306709210560398299696054028612121733684048029047678645963235230441231305745528067371325510328447993065645476357390834023680734226222623834162281799040118874337057384959759203387970926307460192500597278543768528426332549534778551084001348663982709857291739474866931277239494768218301794056304910573986038604411756030871441152293967896617549162211600220185476730870669788986099795681593405819336082620224355671991515627230413276722354527910990719506939292801013615306494536552940832377856497958937228377180317953345661662584616535329539623341116647880837519628019347552094984377799678154245032924431599253620935185516263140322539527620346770228782200902588500030849376660877329245301357923564404281530923261908134710217521223327556297045408825830417909546992850376668513168128991453250619445096099687683827333075104675114261785780153052125717831537455890454274168482504368501945788068417646095738878807305819464975881247734652557002262489018877091250358472032620695000910595610788154477901477294764053387954352828091313513945876485816387451250147964111011170186990030750731065442628083339016337989813036978579500782318595198162721290773574131031822333406871425922991845131494105181555194155931562254847725503247988617673476858674880720779519249325512976973810188914899443270153513640672059686426393366744377074515387235628460425221187047520885154886068677561603149209776969054729036917864738591833931579840200907970623021637282901522322712603671938565844049722877180757563338560414394265388004579041631218172512880566648315301389572134617075787454198399314504219983474363648503039826888161033099163404751442692731702910007003494084701761262298592608213141591936950961563199319499551904349967832159932117865090867550421845230496395563860058571707392800183560531159896533024705253472942272977557113226558374473092493929388736262762474967883929406068064286565298295258747124749226367088161598323446564354979374117030139364235659957402338054205962964563982903486588454320659391875769044207121502952209125643342977935125473003536227346619108912387309020540749752042323853332950406356917586159823807551792953620229412778489051515337378824798542164225011363005503130150756738571327800012587115335543877028127459857868103661459147167390839434806830673016363395749204765479492983597190218342891821835489223825124477142758744978832289947001900286768554921387577771756781484783265545566266202130038205244195988719819746985375382273465192056352031512445943150135701121970115605833415034079029678593825621790092953168472612531165324258165733659511060571884504391770146815540943638839195196435903532228065267409066213549116109329981713000294015451464768356209665743901759149869908264480439129450685442601199089022981143138896050121097499383397906918425712752119233837698114419090811511722147810191492816273812054544277326919315903163062856552650689731305252269294999513065241906036366404412550724944756656627200837178186010754799354616533356882155407259984449909558490027188113612955893024517135349195488642044364795706024670259222266569529347002526001208579437356595542961552366793025238336199992717140587871422483991595330262746333412364606334384586784104482243962829455312320989437544993818398471789701672441977497572414563208561529141437584869412195737267291582345495212699807504214744953466428894899547236090965393407503388800446907929871159527970815918187670158158552680364430014673556318313529505369175775770764178023273057938256272570641316795785438645196442644749065615039786164413861016273473809798667855847740993062635005332288034559477969139845344020855391485018828132292592179992182955128797144670997147202137099975894101172516253003354952860833499917641040350114990782775379782329826062740841114812241041568660763176264140003683560775337750751233371835636512661171565027804257500148137437403371695997568988685151929673773005291604061121124070046840261636625318511000026549887109399640622161133208392664117097852070612026504646442057790991694497985916351008234852517740619391201008650366408435893213830559853539640585489853632686199434231484088189509403875099918526822972755757364641419539517459299245985761672005448905577104277281843535242988611197534096083534944877603877928437637256535489397931917148408390816758425636871226945632760964262116437071980214626668104115484704874209720043352854549001976453360458528601184078648335213709173692836576160537107854474181786793945448366566694712843196552173507176930748796562935982929841181667813548871423635104403336048040918230950530175701668482480781600582183043202577160798239902364486941636163861039092378670511665749288314781888640195392775833280325372250631908806640147990987473352046015088023503530766701142650309023835954001024858394904148537299073354643072763578239305037998883101359102648983355905472299885914037980709081536573778530142052144987531606347519506716751224768683631395762556886242948265233834486390975425133159970128569321887861157946495110021161149902479884471949021612290568234822767393698215872353626812772466561824289885818831668844826885353626188987544684282031852354849458678690892152922937648731920810125796513876499657196032146041848936693971864140217144982567652921305151989962768690889527923467394813039068980989087726809050575209005647958669007535231451344526698090309846087235891366779224674763046002216458838038678723052171308556140443226643361283734481082264064670548242467356345459554112206249604352138443192510525961979288570763448076420256839447937105811832380889078949902793094195121306718941440673551763561715573585619256259263163047169750907864480298679674168916263556554549126428494103534282806014765901842519102565164705565345404644044319072620316179253708298788553899860108338915861951296525803790957015445069375304586740215609252367001729550576045310711232474309205087418156906584336008687234502834834790989023803939200566095654531646358043208411534804564175322431983331113703313673076143104856047758854301306054590957823451665732789636180908115333919942894764369952277633506204669626766054463047271184818796712320450409212521967739156764108470343947325695828044455797467307189293997338118383052476112354097193919105724673684615369887805016756106426257786090489601004482036749012018421352397801802114669891409924217419392314865587133208899765315266761494147612721979337928856843174827564439133820042281197446027701681329893803844236353642528752132711330852546316394588377844015929829161018731914779898884260297556528878659384666842437246974323652103321586860786299400508007464034402946755758743140924096698004983872291721637942800995027254417465014944817804829232632519359360619137071037955147868225337061469039830424354178336056314949007000338212161603010568670809835870908055124524505177743939167521276360783563923430484181650595691514740131686058710610761448013677222468414474987431738044800530794447310605316203723404795057826933271366035948066242039632141751516578957604640569585989690043794143319257722945634890587241686713286437450843378928842012654411711196209299528231252334137301996879878861061070255803668655430721322610398872055681676407268401515414967727233281096752282943658524553764570722345952423570857292294155119592151106842519051629577154705304206808730388080887214142119813035846398594630520537094810023778020246542054173612496125607039199809560156659362656098775174004043503232022240480163239305568283816217963147399478822616225211428488423807312825930423747488205485495340046063693430833134385104402531690465160705087144605927730551847643678401056397595260515840957779329518710073040803501587249779334594833306248720904689187130301813379245343473072359311702985513484818816392713982277117169607138237155877428219679333978904372604677137193408917150868488398867076927438962819421246324303999247241829679725882794765672255032250623210677691784122423294065716792052029311867720269342416949946948821391620923439211166906368717234102547918912508311726912212789241253963354675171526075056189703050042175775167283143856094965171668313980696170552659672213126654391492928613630122936992786874460965124567185738881357788567230183657642739373244931324771949062356588340545089785618050527580267409996512025313295773432222497633424989753104173345554914271936945307470764641940271235026786119621621882152879758341113241893719872015254454251859070248268494922101497715476366775525951574970307505931320145998120727780361504714411229493749578929798243072326346047554673680337431010150235633316845990139744910420452915629918979496999442693809206143473018851753614710482705453819797283847520926126495319777299106123897309873169098403431338860681197135622122612707893408224414953773405619069464401008326879706326581208326158938338748184924529609062105540578242158206245619870628708552853026864380991282152844898245866999784353715437323108963829327097291097700973759337041278048563364629309607239055404301197580964131956778541718128585505844014529279944840517367328908002187997867975433384327969658595518202141762112134458745611988480496062448038496517547434373756906959220794788779350228991846301375204855201007791303411146688208105911745310102085432095837947341377262102073920272915988427700096207919162653390959988739534014828721434538669408053910808392173713206830702262310654573242343812315516807765491714467773113706842177765489194500175420267475567221291034181285583640338394586647808009713398845277182175131603839464763284001040007364660900398521906913851408021145664076523639930397924795196691121986477570018721284619860522561419807642974107035700019362171660713281952576293532335097195169745880091807634433342234070476339264251018139553849667234030434703128878250103801974834587093965586487389685187634474905190512895110332899545181739942399770116313726276091122844452807252066443971671987334964032109527578825942466981322698452703878227996574658112015370624189529532608254390660815276737479889950820756431946992822119219095248009261207245768777700552249690829107514623747602996740588962466630193695373620684851251309497383220307041688420582356875157549112321104600023357835448623063191598423374264295569617942979553380464495978181944869429350432157793401386255646884130243809747860550896536490667976087076523956302096423419069934310401826699964985112098126704323022778002869033772742498840817759840099019732541284245579454644241813191983464675349192929096699144472778634153232270401718336447355365679012887729672392172994842316752941009868087029217887242042489852249295953737240541726879745683972646538515864653237532254052124787143765608732392119444204486706129820027179878183014971495364362309031761238833889641236207195313839640222754057902157833915824214689876518945605855492861728546765181794673920149578116454416530539604406709642637503451270936226719353157287370921267916701544734405084815023877182744299792783106780218291406981203843966907017402589786132034354141288795480852436617087362676338650615782953750513803079280257952495366752088622569664820681248935963830985676685637532688642148878335442241827000245383552384863293798110260443800482384447437241145969254113527045715607552678254370451522634848608999498523530051694035494256640687826921611843695214410142010443515741241184318391851813277123512898155562553561881679084070968174434084926300295362626899020542719380083659826402157772227587839483281802695678013481879488529991084761578114182041702254604317331413959831684916632350796228969544354970500580273849616431818329386703437417903837933665574216279790010177957533875744305909160644823071043538858213284107410371482044637758486832297979371260608730362090367612934859570545675673320321083199317816706313198713774239090339024275204765605541480845417431883555731802337203829429700058542271934792678860245445971226721714705962306826067105950673150612627441727498410999769199935542209153704372451492869982654072085655534360757482845232691503457448174697081735448685838018746625593000695087985184266556170328332615807035758769045435460230015922365918592675246486098365361300063358401806473446607986454274429700459216745181306701278433670917684983970655219266528073041820971665311707947237673296973934873255052608560824758552961651827784668749083610830760002321833812760669153719901175055718120435639433230703881600921291027971157550346645325318032070279498927061927872239511888594091249766524815799578964070977235568181169342465820864455793516833210039243702574748130402845306312656120873385306218835007140257870593420883854821518013072787922892293101983012085026901922655608085805535761114693806508254135684625498757151162665339506373423256907010660710564990321851231775946198729916873862267773515930388969697183157467912156810548995630207135507813788552920043992738529883508394262906115945313129715782651385567217130945655607850599522524601181824931911907572289828597770719476047509755235501199093208716536504466878283524042191155616146556228500776643373859092099303669138325589785024066525835127947419138477955568299506625832032225612763259550893476829546800010128577500358217492304852705269902038514754143998877766254437266234480590074031611455924691030593920175212190455084072273947025190173480176801421034164071891477311765855014093105386594938431012376496825034878080700763642996133324573229236014659240459505675497481806583226653967047265793850094458141747196158838948899710075694886832669513878988654027109835917550228034508539982359821490820888847467968816806194139503235492161264072871898498008329915952601457034295569509342038690031003307005622727929173660567952209833747632965843792553794988662593902993502580225897096270587247334623009888241879100038041033553547460400177412490405816165449413677143303840560563599076796358542112877171170183584118422885129398939906457209586668057696789352158816330392893925604194675409229956657954651875512290891148789135648867412331008585060421135140758195202580133597265866826115830839823057607714937966039727524928333840719788403764211712091621787770285728771770702930598966693053127125649366805930788154380256652527583930053580985478057770387011114046310966301691050328501540835906429262427493855964680642444455047218758373648523905718254727632028913833600671793208673353473944312877779493887917054855784960824478509296141148822895995133154955394154917468986864958743197615927338321458723191707015442615603600804482213033208443116191677809671243553532262625628774277304957720444316091743639389076168132165930568661108546259423062219526607222597484999041602184931675433256638129623179776446640840439911865633723629500829986264606755702927063682444331213095708910423128999860053099353088174986652703891310859511189666543433419172223944810611592030554933653877524434727499379619272029104999504126239066043416839526420278781963580817833568931872109990267290760809624672510319816928317287728926223470280023896924645565758851383330595929696415729031180741493649945781580820580930256038716454990023490199516000129311672071012119249241620821400854947804073073548543934633527290313460474693038040770242514832479376924075627927268927451155390729209617855049590345568718251147159018274474314981692085149553419726087863976393609100795062398756961444538193130474286220226735168532259815780585662696291674233699567500633782304163178430532391995622691618189826264974967609666347715590537881809260559798020435438558288990842877668376898243989476962656317129388140868813306883671781422314620062235184118262058296185872304917359914514669028250004253963955347326735665491612957571503658179052071976561719768263697806473135165472929087230357045308085573059973718606752037178935843389064551665160053007267621503389826593189403258655088271175597040781362924139533070420248007004490837217704588698446808094599151711667687451886709679014724986459940971940199968634065896616373089000628031698454348533566428371620014884738091653099496041176136272823075792727060103716979614424659857571360925349281568946480783638162089928325505157397399978954857581981682480669345081416150451746760446302618633218570481562761960868378191154623789922302002716669829098175080835841190431856623087215340297743226904474282032136709597435597395866135902394594114910005853654174325587319821921613478929343083715667852401478711544987997482005298753289194396132765806147588912526355293517728009584335917469837715583577127144025396736009462055843344547547971991684887832137719530902055914414116114542277502212641662553491283307937132571403880973081824608539361262057094307209908328953194160297060583278864447965044089719732691253521478707089619666831141532283279067830154232524375435451318172204497495790134602401539131502919154450478761931678677953376559491526845896274625160716226224609079897320566015458426750132221134118595514755708900850994741185048713829726700124887083608849263029233886464726830538743851717521758161895629008186403399055707963747702289773178222031816804010995428744985790796941488719470681905219510215333091824530907117892230691763621103274849814317431107303316818236102138509833438558973552772803023044419383649656395094216310453340970616294548719655898940981703066696674816989847849842270003243617847418784331955351946879298538895369242476496909540681826839877234468157275738388580768510129506401356856138671048298403534241174711520121311624475042902993188216139177741624775202087164296060475289769962292928307687880379788010776053789223430529274574937446967256721837881773188778383112681312793220099323056246600291791444089757000203754163387033200264175741368289676746334941765208145342236462420539680596601103963537716575426506934457032929048567206885952822428650182551867221242910052255939280686929447908991223227052044320868851725533646390057553340467832799821325090787335206373661027744453331368644361260058255474761859454756757393747984196610497733317130229325089205099651040456209317043739302425391358701318824264995461981564046564700543591882251553995993390971297016843418165682491354686933981247144100620075567039525301549136518562013848529937851790073193956460219432883387878652264293964126406182203246782349990677559790121468364376324676297263886456647838282347774021716222514524605421677500467344114711368127103709928220355027125228576919656958331806613682142552210147573740936224827200379511679067674179203979139265371228999519218743525334385664325781627054164267412495800427610257692855175592059207306088876362312180434066947684046905271311791657649280346270055973067931907242927323283874981547601637520426615061378802724742883280328159466581896278290987068989873137738605563007676389998406844035401565421216743653927265741289263670009309547168871574504471186311603731466096530601872427378208165212754678696604102154868288792059116311847552394202347011186283202311964940858086426891544168387255972584992531414270471595234743920725479567974146507821610937602199029298909486064576134920472107367556564378305108277541449753981911822164957014304959756117327722494806104723574047591712262973529822654702053542303676429906042634525767520938658818809885314703566617067456665556285073809119709594741161707937209428943427365940161828148460385734000106253396583250565688018044215696830991237255800114050754140946105751376953700210266202527810861108625024155549025994015934738972869162743346746744310887805192322503643375267351630237701200308690245555945605416563092189997088150222265154350369374464034052270757798584445574865888517462161538568289841339326401644666485255005745518034076035863428073759118591599352816570765414326038818485633138801084482317901391170379882994082358804137819079330603561530577562927434123806171608352827120206584857056471576487122044958878406421766400291602708615542871771062277340742527904545061812566312533763133413355767644318742300084767433825909488531374677556817020449373668957224483065099480470457776726044087209588468199882538418524718271243992731348618988592762972427510096458210075722069043867430244314786376859844728778419880488292468560995151897246296505127873847402644749722206870796744594440712438489723706430222545759053218660769313015717655366388297620156061839366351484345713506952977602105134952290616686057913993318276292534017084721287470805040867228561214867780641883899571541389052293828498007168022080194738376901851966669392440257348299328767331512302552646055373013455406090687667006219435704355690569838649558454294150029734375321679814414939812575161557620034012163829935397719871322809726588523634730109027580976441048346125871778825042851153546487154924705877819226660272077539097827566966559638780230104588466959015944057738033873416357680043903817394027722857676029013243874456583421598157487529381722446945005099201099028270486015483818154067353839659760947066090603335335584080038357696607694391528020895566113994869867058748400898193045575624960960325461366848535553238949493234909275764995927827802368296549540501842664874400311817945996408320452042362999517323689389633768919748835165681006561386440970423758621255970090112799310603405285833445119191948700909377040790331212134876472644591122533887606338359241708878918769540198465591621475415559794222072035651437286088892300977612075393707060935932176671203136955080664654317674791189198975856002469070112900503922932426053137988935100658370957060534382957663503181968187986897562143204666140477752628186138082889575126150382306163501212531316174014497896035482018340165337760956983055230229183652185014255683911821224063647823395936494821673756522112688846990274872168497062082294642436428158991988542582860976118867793369715829575877157439565775316405771525647068057935967036291328552769194715814830438496315126801918218212778165647176394280852825705304394117786055557422010930117371826756716957606625544817460808301378590661683435029971239653983877772734400590745660008504384626583995188365306619791903947993609120433271476198619605151437985801059108951854678584664076789690145601925085041286111962879010664725986395426562249033683317114671915129392897178515326301543892015685239883102040346169957361770871635754013215271886944973834749096848887319133258405611088287166730578855841956892030032669049876588901041880213899465772631915495466129116980948840699983257901659291983428795215411652779817657552266617209689777794060599454046279989561025786710537290053073685217570043729855279920028920316369830337899259510781915419182315422065351708337695807603639696949562023341235580764253087665307446345704218934815003532548156529146170522105490928147783352395893239830830931816611235150012003541444783453120378681407416645344207181883924021790355524719890738531823305738997264797750713994995518207605653280071476112771011779511726356584619825821972892082125291424471197036955392208694156755680746089211635000802908549569847805293434525065638071561458995433148456221108984734524206465610062016153897582974228064171068701011255188011997725777213708403988952533424472425699417708629746078589572493866843923657873389541011742347575161215389948888855338843563325164813230882057032809188766824414068152513677698753109218453575722733505290457025683514089561733061614582324915463431324235999749859858695540313761635600436067869345323132157147919090342473469031036374723638554289466170869605248939175035684102083469806008213210247887237247688821319553137243770601472952808167680451090401833617943889394183062133116941312443792360975234717358454203515857855744738042403315515654257819512098677685989492116573667728184216568407994621024189973069466282066523817266229106847653264961704346661590762510847351958274402186258853186246961777694449574275224562343351023369457618081868303868089105866708354329966656097220989390365699328053032374484617394462394582230069798409332203182085783307280200838515817723526212006318203349614533488940462574174364882813405403099895704607527271811005088720824852431234930181795608647953783896857685510752773899423202649958159243050536250443493203471775657455838763513295074781097077214739869117634268702706873947750427526304255111776264784458966617779058093563318423068984159125223115295851926481184096438203183413778422173233680047464365006529550884233848720844517183801862110991295429046363994430841935275227753581403967717515856658521692658137837820051354671153954850457926757199579223517439193013410983984482239322808676673465269135152529052279158125970994444742615623867824884839854803045878969793119736081412058285631103141166633090931324999588302983722437911702365380480824482522037689658009310407588709866445329660649842119743638656261346899586301721411999967954878098251349538192118998263697585237945869410148421960452710371630860817919923119912269043263417376221698404638555581878610149222581410604782004089233162238334292310276424903093724809130650976025561414294315165000713699067757686619251384936845195398451673632948352543093003702348540062658060040369892606788056978610532332182154509244530485196291404940135215703644947729450697892650128027930374253443355705180962898595304429170602203248154687547222218002457060936950908984177420663103587014227565778443725981374115520515734370081606964629967261622143184079722295869926502668346640447973079156794115485715329006596732876466972344127604776218843950055255032198242213697352613988855360659944711979615874136835713226265846899549531588581923668579432012868473819729382690298611223325547696399630528023021090413906492824443289796614051779447805523397476633996525050901320982476354678648333605670625145431309968247095210965170537210335242780242827699130841477221336487160284995690380012286266838908017288953253209054460372198468987711857544205400954848430986016868356330745858816419639360324268791222638593172704364817249294540589254500491272970973904125106371132308633975547905535446556162345620941625978298909069063759156758026940762811957970320631722492151297243877766330699806179132460879460391349083109815130625850912335096090362750193061033047417251977133540471111100667719052883235959012520428631104452575948577543673828716067600572345345406891939032439656979726658636622726703329385096228323266855689808149734821568333708373873490818904196084172949213553569605321833369330046391429072442128015523703236906153230316331539861975405439719058312036736975259896335187956446357332180185912054137614559104189253704202064194987135289560380330522606074436879706424432420379949596296225073789253600957996904925067451910295635238310091937154906782800096930183757313689051304326378846483874036329477661459757424278440442583259266017056186546217477274459916887363984506288010736703961506120778529450818564040957695681352505147449501974976337384496871090558498213814070229957116674273097400611620572543118909321826427046614984936965532314810708980312299500966213806212393401141928613956981492663304728976065537354882042748915316132534461553343708187446621702978658579718135936275014165975653509665156433663245772435390909829559590497830874774733579339816434041656969649409443560825135927280406050153420148924931953259893616886172815517846166546602925841534405123550949379105130200798423612508533603892480546518170148105701469136430575653593608267951152204953558653770470670062823807237518954887190880775048522019316691578885248348664149069065300624214692847438264474134390673209385168587918642763994064281019167545548902728830357569990116071822496598887406566454980713858421207188342058718878377183240280526095461404512292143674473761462622184712335919578753731605600008384577572656352223229071026424597900457825487979428480363563387303525494447929804178922732023032124279000985213041622885240594645971313105301061259981823813190545438376549033440830301459246525230918422773078394895948531010722872277796211616515488093664682638676600546343856126882531219977538482481035561505003128561809433170059332215044324703695418113566640092507725786796489126240056781748815634810105319392939983838588725440144704709758449904575651993960376481721429765466915469786511479695441669679954921263820383913108814404336782359733745516674511139056690977331170711363134437810807687895756427259477540605818467063170800462649104100793302559388552237470051071491306472984464253077776206381640252704465056794408332846500694673525780927519132789655170136362819751641410523801834305908694650847929809497788603475807801719905237809563997970041566422915986992336947616429379326948781589268862236686164182889094352212425125639831536814254125698941020528520917119665619071284065575360487394259159927481746286534660056506387643493578459991195758676048817424664925873536730419232096092677467042856234155496985492664127256745116565001696129376108984198935321921618100913893935360442141542148281259424045186091364495253951236857571212295911896391188020682898851152118404455380685638870235056023966683226440779492229945910417107536807954283357746199563721056766595501844260941985964651243524201374105402905819462017967476664631834756790140861703950985587691972730523786354246318270732581331521907793000118612699819870654765394205857655962065395430305787312906205069370786737510996315043150413669604819189339024043477243522001729560075765729778274526002128302734151118994210235268111717326306250845712551366531793714503280664746308201207570746699971116836923588359924102584830893543828220916253484614223503031741527939025063565761117468311305675354229372803779384384306160170789656673835286633451346843719727450659554668751033491331049864734662251317967602407518085043609701891118906128135499566776223891726773234977579063503201807372466033603929899420552408139321455014303606431907714912318182725182988860662450377075857751311361501053882263140525039934666466410579056766626267989018983132271747825761558687709573606880832710503902981340205162846225467654443768016438530571616965657607557692956299398580367026283294758765046666053573292672888117509292259372659618112012067329702711599085323230258398695565469442771374552703641139466482121572035666881553689870205056871214227055871299334573165482809428155038251839379057847367649399713130959674777331002225325812755159247749233832731341411649214923795222972139685154284917014221465693922480758726082909161198755936861629676114492465975479292343539408606071147990031866463016981964483809157430914339952166780255240492047914043842634472835367306564231841502602371009578492017982039729532513747952806740563008145811446683019001527633330482082207448121294887019531554552700918412814911133751062882008151518592330328390380571249614736241938926038593142881484731733356713270947416152390839148024603258623824833513378978059774049324032728531252687080102997740153217623801791444325184198353241810456552639289144974652917218574097503388365227801454905015996738310228448947573900510493003235929197971338877174725443529387227323696362966911790003065512586436409741542266838042465858082631233062986616824558723782191168005053266987795202485936213700838149991884460962580433962137796132068329703176505775887464707434285759816950849489376211741072022720762261355962164737963217740410867110533176046609706253929160993530882051199397596896796053256723763521074034567532782390355191650244060393759898125838413085566748677139085511779019458789454839592393133410750949170231183280744432058149521652426091255627783113258713992173587581510794107838152817006191506780182831004810498462436311550135087800766864423317720321136609875159467200535645018208782335171488508397304076550558122229796624001723085976557614704593114288584715072737492726293689602494700958345535754674936953614183188191061373638838874704681846221576202049096623904967841323083977015530794454730675018041861564940568405873241065194794478209986137233026073685682997448290096137874801593306548943807305944734688192902941582607437643144545512230381894104848984860495618818397629175035347953563313963659415138155747297997221894461189497210451243733839327857959832962395963612911959448683031507921053279794238581223777205184960201267834867155497404880901954158508187518134756224415119706671518742949764946917661385748293415590331480748536080838694256570020794864963911859824710520188156917092982243867657640325611900502297939061060234745850975542347091655974154855379993427025284598619864192242110142340079701051071046240454462533074831115442537744764160576739864026827858821787118710170925846075322709595672974965797930679935128911445738184856099417027100232574836951280976074009664544058840781064008273490759462120175795349608227518037658801428901033656859365403251992267515461991512476556420656662193086558661563573005092198562349284374265764719964687260895857240968315754283518028664257129984693239358788970731912978319526700965830655969019068023830394517734355678369117005956557041135009279618358353884920844804827704688866565127008558289403092504388115945452359709387066609079466709494523227881738879315071638785039005352131917962077850150804369033444422830359738438425241988269027344330858280544973481254754372745898643387978370752006272267718268816412739384146047366176745562990028915814368992951945843204836758369144633828839224320355382061038564142190413677456150670550625474989379640278230413262826175429849414380385163895158835238676978042478141026328734948309550056847236587434096312453463999349954075149360722602950285620450433999336887335650821307422682815661547580975525239955460347657792177642693960496924806084529477516517963010061412206278410543728432328024440863365775042779822458010850748084469081067351790406803017331611005520652467213445122959285028271743526507645844384913595069319068593037451971954058395530233998692761299947673485999832909222283610530009550486926440596994011435529981268303727975423136556542288213174366797667876809928456784005160798244744594043221376822241686242043965702337672870910213628087838009822127245818052910370270682381769793445511168694568781677111462590346315371692163468106966895135798091625347298556122292485011029817530248984160509170795657648414404630427696275560847570976932004932209244287803999320200699823263611154953525666587599104288506676121059238246219062251149334941308386135770619768528984791811006766554177807811103401033168731628983151793246401848895251872430268951167250898709787858293090031912624767884297855538444155080810859151941345242965124887051329269520643812856095268496912675234617672722295161095814764212416589507771310322619504801911068170992477005472141661148859147643611882229849820260192053366713598417626214476758267062076100867207001862033481332648923842823135615630450479668757743411940560803308192417144089874155944113413283382217637157781020334135355237251823697703588878576787271809849999197521345927006837089931703327922447279813309245382163372958349340731121225584227299251772070385946774043754172065855054052924366510094394225594614489518793650142198688360962368845285388344102047431487717734401390561346017443364925897195892674102525713156219506034172762669509214655481305747228428570442251979523044611166640559772304419446411449725310020949997174315222330043999317120392462129645714352002905722485863641859381593627120914924809370556057947578696528663824735596167471792207329050411419654254279978575461528917089393057067753219877976068338180676819944975506896010018912059152521607086429106958141212350695595885175952279881338342135380794658217402184176230386572474049891529933523877948026293786687248646170303213587177871991975310333991502489993372353161968404174077295662023388799573655388488811431104674482556849874743708715326878729963805308844731223934395900341285589082399691115282333530129498168940042806098621173257183723786290671113634799325505038293697731210082021325910137750505798882262201078893035223830116161360163657147443905536886811761029935797729389267877441607121437562789860736632049647211950333735844939915526646211740585697740770381321476050824829888236036933163641731010869951995483704274086781117021666293193242138862948054699897551477035191660598411629486857878270691676565603620719154348355512973802905523196665138956457217768257710779363937587587068936487778796915527345651445000647793090230431323721084398768283108817894317554893865139513811536461617466743683797623479583403135496003551502976156964574369268794683427551912576404825211676685827872008598793788447371486804004517500114412280423097460576109904041411110260509043223398986461041704481983172372853313547370801110640431147011954486307745613054981274080050475082177586144437654279140446599793994971137742064525773758268623954710988139224461921311524286922801659432899483490758510741963587605721768535858279768066148759739995634071674179204056138523758849284494794751628196950211262733179503960868835749806810399459805694468258643494615248734163715249345259582405628878793070038359847616073353624714191863442052119650470307034357218457032007938508291294159816091362947796863673310339950489618188641115121824966910824864265583332132956026018123916858933072813519446248950526731418316258080859505600248695070506341693146541637217875707541195038124706293882520335866218798639660661299194756228346623680295649854104221567221696641571382649105849688431999465533853389912587131881602922967580634223306039355035181897592262962994788439633921796588922104981265409395588700658946501625448698651295805040872850866767332622197054810787053274104685036009832844898083679071302004154666193373774471183967176249589860494564341771548681131690933943101499544517067255891293785060943977288180872266155649525111743373129859133772812762268476820222707458701302149011500165704773676952048217618327299665776154975780787413091898274380732204312718918856149765296716083208702690836416381010465931370383173649288354627733293043424933411961467096313951969468953749176852502917089628637818123148347886054369867409348785268163730521706249079432373186046369036885041126680905517082726497826696544122311395029960594011036852484969795021131107246894848065631158238528612976905984984923016574243981321670129519366477641209500408118692396921041044026826151642964573709904682941762624506299537578843314832810118549314494352870238509691826499760343486585683026383966014302145327946318607364848610801897118425027262065569349930663491164019238636647445595958420174980759021726270333412546663440053956902171768599301452280411397501670021334786714527679738210642130789528350447078952677999798726135269061064904841656141822541199559905862318304872890784321345940369920099411935886678818991398303564192720343577426224107669121974784049268680136624141079719784272031424048901074774053323758298929954296973487048571406747916071656738854114999660313188130889925002349424305173876531058044264815165331569932682942074452206899756033311683560641264547275231932568206255830973877715769924168493688336889663890629705433506785202950747746018421274597636382081200958956335681005739598881754622786306033056187711511469284992958281592283984472763204176702672100880309265802406158038403836263205712194451790388427832177686629936429454579366695258037026083639879269772971827432894395864154910170782771481720469652069039884042661472276569277779949360162804037439815324000724264725702236656950575900620280991251779185795260963532830826234778024718013349787024160161362679568296591314797847030630714032122579871731847575325521972972755074737579327920624638928661132453826400459578854813136382799560097086799147834708085413461425767010701491694812940443139682337918403096375901712821893237607426864084342448662935075517956840026182477777191113523719767688739638389629944957442940712904600747897754201261616008578542164610821633628933214675894392055934844921371358383886196909692292230074797595946864617355097295670773610237769318135895843891389847823399927127563993565340660308876989719073925829514189070208603168634424174284612152176808050223328131168650523333345096009689945470759022974102558646602690196630766654410429110255614095459930617900680328393160021007176553240934093622015509743951528864460520514598833132880157350143132454755759264740990464996458338233179186494709352764606149742841939775480444023137961145322664106439959837649473743877199348815837241489462754765315757923361267972893791653305128355485821918728805010181408650748300983214706037497092314117809363572746253889717359458653018913232594661639039231956271290555150944412017124220473890243675361443449630017674977154388353972903559000408747959078370779213927854173820372071203542183953163165317049344642730573344725559097419400970723751362412348911490078399120561892028186249558044209490762631970719532594247446893910687661038760490121198157505638435876571760189101080634842209118944119914257482816398240530587036602155615365800859242867384595834964339498135396053715763648870523585894240973131642905167548305769419419752734908400879914526870019958260578851579265573846004862274985923124838679494859564868735017643082479845827677471728407066502889821224454710643240803155358710209600934376903621267877889048600455466842161754924073813583607536718629390036855292417102392288190567688210652052648420205762364316941162747715863894097222563561611663366366941037866358992350485306550662659246920160891484045559544827394124136114962487913710233869454444797356769884386407777207877745012647798270628560873007305453658629219437742649433477663002603707894868547121963763080550852289929246351712495607825002315766071335264614255283202196665504434885663409701853572500365056950858722591324397222421761240653892376086894574806139667769313318862516546142805342813198719907588996247634215980028140796243463325445027866368481851673798960300068873433513162086638642665845970985195272899528624651177259148095528208764122400304125412444078197001086368834341971342947361980471484083782631625564762340640531804820788456818076462625310546874626301015699404142744553792521985467561061898387038569328435572150649999944334077987496114244450165996846384324453288599361116214712276977981630798585628509103871149821033977977465366262500407000403387399416204802012828880956258930543795261922483715364669086896928591932850467760431502159073726369511342940450262385027043288568513558758728876384143661728211792592697772966652854804651494004015630676263798866764992012092603936208739839377446513088120133769658180136226735532757398464993024054704331314897709296226924357189399304633440855139409445175369189025910235393296526059274002967209264620470832117001018806131131017320390539287529180167409846376095266337582251981833303785319573173096157904801037673112564311662922406773309510605706206833158415162222638127779554461324728772778647228789168738344481926207270452141121443116187080765985188244310544675806168157311432323969704256749662637427604043445135915712384646777346375033331387414931817050047279240819349861272188136540152724118829133920886242316071964408190759914433734067098444162145048417533074978858699276212589973177040563702009589711991313632334410695017923882055157705786926488257899873783746126837686888858773706252682791411567878531321392872116255340791162429708954606488642210573299571318473928791027413987244190879414473255812680624574739254600495678844743684732369252838175868481600868424679596170708584737230748435560002342971023562017875358416903620176623305459322809979945120588105951926433662859726725499857572667085247469356254747859141320848547916427050435227217568057916788900022200658533629024445759773952012360100552831358883872461616412582214731816641818656746506422068868930264898840152101039544174048720883128592804832640246596427302146522939938169312325911067271063864463846807828348406009576685065625130288486362384674186214488594600949444331456646981499296364157323898123122388308040637960989028494346372898460144019142217087879544958865738775589840124425839663244567003280296213235129758633729907651239974075119225180219462596060409579030056358242494834283250826572738124782944901968288559918119224212556610754105152968975939037565673350619809112593086527761684287305940724976053237638664474935512402451474711981323526765384668689931633039713315770624020683022014611573905735056446714998045713955024942321156123357148718492606884438519236056930806524447510648812930986035582547599392469856842578793373518294382070045030447017645141562634720530254077813182544673791721457490018197219920277695801249272389819550468175860030210351032380991633486769887944768653694949831096292570238982661569046837458376873333437856369162037174950237119638647398534020722839140471844621803121027680100329031898592522205324756398071352264926393178716039094647381103724293539838523539890828908563083905982023775371018718104394815994602752142860465978672462687493530294396836126812105615625481136161619795604808287287713228777280275911871550703780639374470157043648218098854619385418793561801393751529853198371704462769651448216441615713684292265600225464470795562129386288470317295338097270612598866865537865425918457824839020570213628195884650225241892833488536718684711877846039019664744885950131605587485520130230863704327343416678986097299808657137980320184411630230564255912228323181698421276370581003420139088464301519922498945906935797951704494478421906142468595498321289318847748401392524310351221064418622572864981949688442120998922300572585508988124573519348335329217473855980552253716754486786490929007693504493700352042346378722228796876849711413197704263282081781621711579821006852149703053247785925642836569153633710587273776880829038194645169850551601881258650073434324936773860860014230893497557437810256826126262995527581751906432967846391449604807222956789774172345668970975353605464728937076762117482571698291038082638425730761554188068370703619738652573884076206084161353116466812678651925065373341255875982237259581632207232313293605262528319281700985745147147186774368297251442538696135341181366909636761873285535789828155288072927967728247563838548261907086269517027829608078984757393948065183001103834260482620415214033070014848389772369500166369251901390417097075051567271508968994908256229401373241888908694376088977889659893028398116085218128946309325344621009834385124902269918019216251761743843534518708653033446110855383248407032614442735900073270753125637586918916176646453379954232161028675867053484766180354884370594792643608719992026691753889791287651349250912726779714792616526199199470274225065269481832008572509455442425597640622782657803758541621070821115697226250829153059084020509604603482381420952300317840982154275711212574109678669571639247245641841849977655137919682065814932284875709877587165516123501693845698341471694375765487858056529860730670470553950533082594789668324825851598040607761709667921466144516570461972603706781824529619203999833431401190632148731835790125113807660573306983840282639101606129050363644915334187562239735201958487050735375006699883833443262652255038499505780444254143673757070196291621425472044531766801147753818655938199314958184886559331388400935317789723493260233068128601831631918203837424800115749620797149538754748702132677907981956910952168937910900304392633221138392109733266520401976686376381098557089990168410735991729672146081615511767907775681288990746719591973702906759210871919610734427618460616136749296457205909643962534332520687463268469919942068566942989168735116315854123904282350061708105204417230616058968365800250284056398066471150932039098966400831957849546877101886362413792145812228037017673119091980060511316772606501452631896327854433346942343838036823390946299190449334434096235680265016452538163209439990278997288237465444129346782358930092517860748193258855587065223448391025162059278828964287205076756306939563812810206099269435450760200565185594174988071046176500648832575686041131706671523362835988185784363712860047685601832941825322349804039304650685567774382224547721981555090392816887038281515260206578698306653072639262089484675448649312269275183645601669756762945677133486437563371422017528940312206216172677117161079878205561644776614621724654505374049444581966903591525527275444428884363425021859973766402262693025263347134619552068662214564252710509352123558594088362836937348395833519219801055028543271807593076465974890629240210128232274139429822406215032576205672707085168311456808101056915771567655955036030126430286061781007365808293418543626215486093653506042789152046165661700362989988661105082134830844323716579862072435439413693760630681919526061011135692936574193652861373703233598501026309702592966541655892523235402956147470719062728711066367667210195363897328229514896551631928007371787788829214251322775878351775789695051710380812482294087672493451082377091393707210539184574318980248976620741236364306530683005073210724464406607498821279157314227052086973487150107394488055917380135009624079109547582787226042802775413723428075721311108441063847334928591391540445280779609595776194410604905559536313048340829571762941932652204563548236725027690673255831305936450377261745123273722884633466063195099768867407345493892074638923454961755500929030457843773965453061765869185103937136391993035921528777275677991133030958066279140335627016081212466246604736677434665703469505072564094635073417508873016911482538164377084591681975116627700665356334105380715987278362931636764685071893485753157977494051900786850187045301069819630133634499201716598758384790334990266134717209472591761401046154950346981827850176237585337926059129598235101332257592459803890061487253719978378505886939473972186068668260312814319610819535393615094705551217443062128511713421730418575148404019217587809197642387119937448678147182756604414116172585790912698329206096574353500088486003524229970923829088993153218983791046193966336029737534038629783686334709636705262348757732937681142545236495178426788471985460193096314360263265248264527066735961554669437574100228764864118525308360376602955511259412818276184681407893424434152212277609600728464052783619047803271091594943319952201747049859819650712598680038477656269662620358092964879622664435711183063615380163831883488088959195087118668671666219150748547239126905975914171000413553905020995786073380025497347848949761003577142870570669015558177051047391974989836315025887008802039490335865113233045763771371508958152374978325455937179606002055421385426146889563854704205165073212525743267833140240637851220001758008245023765471936716972964743663554292982627445332467530608079050290529875243641029237731815618314654824692364810133730270712948985869781278949257751169972651362197908847779686285630532689142958116888591102613436034769253149093953872316651521373215515788279574892538805051728733906050634328772952180335240356060354055480761910791219047014369925875881874806404297248876271444317891118178549610128065571152801115605623602881938897281857191965155896349972619905242723736609344204533633364581121883778333574502760236514743013734421462920093340027811947230869726886683588542176953183297003406313737387433638077572350717340206068211678460877846058260403399209385547643821547707113345337364876516959994624274677821973538317977211252554640696633647367484801221800912874712837971584651142462967223082261340946692642266813961025925401337377973813155738716307630172970724255614705376820448904519224170491299701480290933729187691773239901447749951522415670857967950919041334703711616541153576890502874457954226177968344419707700682520662217631637723824448192940936958046101590632789259996615702503095846084154179490950096820987117050674088375521785924441575709211849111419593123332584668004469417656407164304843947960980517189057660298373924340083897573290662738311958427539245022742005675233778495267465712240927964506626129473296435585091525829860409425625968421810974907892644673584049369507105553696996222236303267191151479177623415972337140427168029707712617766461862607889167098865366950255016698961900772469686687667368346087934518361402003372847126392255902580010527501417829336700273793488503259592456796661610816219583303851616085011506962701840078730206625875079770610623786801755350795459081602669464977169967976446570701207259673707794662666681101447874006838555654120376833745650365956378129355234855777811600007278625504503401673346532572615906400019817677125643660357602681999512462071842832031064124762574219144260990803469378894216344680625998904063954450457175384061648318938625097001443456730485311694754628825135152532114523224705792099900418084293786562070648945789752371692534387179400173427678753833699416871601483028030815991389004478297786465857906438063979924867093330473623104236674618455720554561159690455719934780260525813525605050808792519164268407001921662113315901798290887665371138823937643638565299722821441338104777569068751619922061171950970073015678805499092300077058803139040763769426690266066216594412117001710071751773267700624131990633291141149752038318741213810385830887463305686296791063637206081510099361067300912599053186124911718714525235930919575507227828580441726992930067406517125446187224790698702731460931176252817777491272968325275358997638286958112616769418165678237498822409579483066589819754055074476425051592257767340392295923474768819138424911154996205567846668860523709295018243321313831790647204955250708783027574584349683301984219477695978526099906314932113092052612735443165104753389933996762416638227629464806199897588601723223813432688185229453306970682692353364224858295682823967679025361420428618967732887986000760500219406296978534085539261317404553285600465821413350748676797532036443541386087565085822066138261871536950777854238015846880063630272436553971364327085653808590723499898432835202035367097569582485252533408909335004285542856233796113341798957855850695079149176951815304308274154650927678436426484243703210768546957013907888270074934323304194242373835608047950235258467421472978560756889204802304656489466588861506912476040956736825439794558948071675635156521866560145521554682380402516844699730293346905826962078625803503307298174510016752470941569416350139741165488858464696100851057682801305601484625267939519332018116787048225387645539358822574119548064487643977394059923666865374816985210528767878471775661416718973178603138945830537445839469298479256526900173345956598625372450423878279513823216870856949471430720585470674429065742008785688360606552442214132424969711166528986586067638221736511180515529606281596383220225355285591563243665845700389499254019930660665578490183157543041420658323772293872571342128909741665097143739074820595371930223279632431210037538778797852986534886925129295569530033838715483138671698371693905707308261475645185182005257155846933457570542934774513532900018500184763990309008875737519784965098758264249979648228793806867981809725596152328527082737662463930808527415445128251425705051581084571004532077258851149491738415458501271101140996413764363387812172568648825671286769468546409122526634498454028788136641296488573175038945902656634972011901310769223118763835617808828512483445024920545118847834303862793419650472481794861861611240536424729389200507712418783872862972929622507106223730134788496879110163403508367488723190683911785852761205583801218653308714359974882470233757087975700038221189935431518846834544130333191102069699593911781956322533543569874272820923883557621771036906133267683940215431723649456046241459087442372239018070551082726999746893700157141703871728322416240205611693021908897760341536457902861682766991066220544600849809627537634313158215652886105263450611714028358823001240618286988228349403520293392030667457563759434944437436066833948543168760264412500756093730983375211072993353706833427548425326162196007052440071463944607719296011181463486091842386406914301370712599852399717827562908059805326122998515764122282274860212721208114418620343192860107054838733810754350196205193149614004669749202471262680426995815927801361654223779361696511771184237442296936387187558943968012994735765848228121081962433307215884883517766438567622629870096766996857218490126972380928541696288582395023520358017258510743536934836323919283485589306908468201940205303247187733020943961962249851455909931118226169419158480336127745843643206829953277174289935802904524918153908854107783756405521070336863489335083744938558147113173878663220576158059996160503369777887268883237625979006216205554663594952763125946363937044554128865449668174729802505383266980167671362082167334668622371659944130507400482195470381852475107407607784191594104334173706210041343946976205944980397796901548493698295570971206948732055047314781123880557788509736749988331391512335798946166896694325289104632822718177816612838372266037276593490433533991466884149350832599452544330946114689389228201134517664144956036469781481269039784021838350920364386829461010111830820102329032131960050454879131866693112768907039390655914247167305949889818157414670641484568856437178528336952746347320605727896626266881997573246766728286929537568615368007511197082924219574183634319162827336594577377628324791783512891868556784962325562910300704150660159709659105331271898031228148317924321771635723060611578275122730309344355748366693179602842713407311084453337823233235220384239493644052030460589580595382415142698991082678212150414490473490602701372610232478908271998979416727752621213961523541420640858115527236603221972943670020678825007693409715670735151799986378060718293971300705357940848068241572498327726223661385830620053344538565907571209569921340147756137984209654301818420689968091355093666314826629965784553106869581453274761759675958024633456880365460243610524661935634102950182041232952973569406992763003973176907624919874085554199665556200163336017425004574483937339485658956246933762149918659267214002107734527664627085263782487124714414799481149304803548427662650934931979114923210349324075408552394013257910728693290365004011860256349612849761720840459415084972188127711937601165023236863015848777021191336650388727551976531800629321480903508433606660710808231015267731232889871916477033437205249017512337109422328301038118490715598761985965027972811451450041221843901793158261122393960311823218686505634181294171856899016020140421651458817805169345900687996631344382542712591340887750754017281681086245326247230489376774103552767732523670339480969273011942530466406048458144258619466652489451498409978095602735422561710331988328707852874564515078837554304811534948295376194152845449849147804922295172739417431944016547650780293793661874551677937567967583527601876498333064121003560619784719875380283440750905942316051461518671590657242790565602062348705596173758419929891786442838216462130780375806969102279964685981846953122725075954624976373493844884154976077565998783300383173504092479591044061420729048122375367013851400907521171920235151796844930500035175836934933800822152387536377475227401025816793572046532159629832546280774816761289273251914584081002553644638420777202065124965170801318959634301544509315862407650668680849793718424526932510083073223601155407488806565303254930753285678944831250951783761403756078836879955887311761658803358541681673204468335308195235354018569166634371161868182625410301102633291777971896928500123772897308787144799238698456220060603297656221256747587063690689117408341507071845076342467119705111839162670611063631958497521374846518773503919462326380774183792016631643282954100108106921137060840235933064586116039529607933885908327147320094671604973944213201104653001300319949112725861625869789327209556205699984348067030116587644679114423217904406935887285821190784531584156777150221581020977190448723835983134451417391329624946234262404574237462917243939881870284762883182234581768799608760290165800447973826140184053109856870509755236289898032750407980806439787011100151309719344291647254284147073270872975743165718291258528236329339839344428650393597138286947191970039277738319548077439185823014236538464664894678707179957004461736393258714816457873367271858942104010922089559164916238223921495200095082412923315253143458257140059448431120966684647094955484239235496541697836798829403557627750097913480483442673796091487728325101582480891120182605036229844687049861797008367542014178597600366570497781333477759626420852974047210405320725779981832227689843096099721876426404601709174655901024550412609084161345763243278828218568576664762413674547850925905577632877146881370329168462910833044294326204441406397265219782135526722086884174930860267260019058531018418936109858523534366637898775364780451978629624065613921611688789355613621424522497100788606480140882747392472629541746726611032509427256536920062040474056252775750826653681445041277324708558709699325142127742368001051197145971382543235375351543431067229446354206807721416457385548079485361164424986589361996495023726499586866015526943961862991785722072158701220744923836488436796442373380971651493117798279388340104042692425874646945552638241240482490682031250872383660771271494254845635442779901602682334128660848406598908925246498232048198533859885790166735586942930752150980580504765475471091914993556979002797018029805791694751573543326471106060683245184252679457289065350322028747902920985934643181588912215804164504521438149481877785379963111874431528805916339040134568176574045959447641386481810994408686783724542863567126791991184235368891621844238591515034940604944350501011180369573142354861578704086433138845730416711560732269406799125511977104804411890960552734816244073317088169659592687732511298874349739121624256179762703633673418878665465900098770113515600127288172567157198733281537129281261193714019433629927859126450068038397983570152395346423497495555015558785444978956761389345991174040113579476001181735486004822845177614818746926039615956313092885093961769683810808276070912687377488424957704553024439902523505089681907811464972092097112852457319878830453902279997602333425566444517964958297954112339712866061320083576758070961609225666576831933641718253397158665642295272943750053364939335972539200021894666927184140695817591002456848717916916653423674429445756663190703057214455207200328648410383776763014269260748390101227805052375465623790074004302031907921949608547411455413300626541849553259367806511068027588239700675264795268459761366253265110105194398850933296663941121137878243317124190994192020231077518520332514496770605383240290331908241596541727051316160777206671755076789211472591520817946345145030838429071313501779163916576539905116462788904627496668833408191745496539139506254091619266161021274813070562399747062738412017558727092489432753529052152243169067774593666273389332814281000280219529146053042162980091174696830715302245744574956901725754317504398389180991964788357267932519570725147823891217092048429655467727931699901699180428031762210198082098950486644562938014080154922216058479701078995302143031960622149626876241155635580766490306427168427424125568044046509011959432218990004556921133946263555946666339494752259454719641311339939795218204806012876345625472418672578096635772611892034094690264322380002589537996505911860205575225574381162825533395839463965545332288899950054887500228676866902369972353368814676254266292025200301366536434862669363903122436044572793823751078501577371553287028966105428354498771945420742020623801286485442762436304045996099342246042773322640661257722729988425716481419095112374220212077066707677574196156151622917559853545791888721422798869029867942710454504260633268876917034838081099023207907886048258954888846213519382449370043535777301599663826237100914096750618061161957465472002231781708545279301599177174340311062234951528407535938809492510047278622089442286077650584095837944996834863006703528459464712255771928929408670198820976513763825064377755382122732269271292702583841461439821556638552040524836067339252881363101022970552128119353254660692849382082438499496065601631365212949003036760538676100374615034436008451751565962770505108789582478689251292346534109360282639008818418733176014675586073575147525321207033194718541040142232941003991182469070094219627967753310651602506768145681103539023891772978973162454805743675150109400819273432085217649515359365913770947171964751895524172279212536776639051844795066862387723136386596998011473237536524425331164588545779341756807597817593176628271256845545624926032996510228039612137133363744867462835525956181304867913610491182376809503685418938261281680636926011264074602413001358884740376584708511216652649537164989907017099870667866418991138091341205305455588312222213854744872079269119077646021114705368083265542000477044369948411116896286582701730887813262219415337880917480035218905424176002394930905415106256029118936210325312076788630598794791399804129838660519312766311267005718793226409863114934739393144205009540670498238256406168183813265686405700770884531023574896998549200099324040872486686980427931725715954664096833903213481607417900175826125943106209351246479558025960874610225657705376741078371048543778923931841356851522664779237380022827275819802472398296464719338500454812946313352613105359673987701299068389742733569842782889803151492528902556679475533281681153369881203322604685392150353236936485160601367690778281213509828693026805699149013165783069899067586584357517525522572035305178553474894447419425561907791760999276028551389794100699699722832093779767822111438217920909205598199413997359564545215072981612879881854402830665614111283994712266009584720597516913722692106971467581324330150760944471456470153906080951329061450037748427355465425126979484134582780196006296131500397429353888983728621016182901172668719740514266815734446791090442041859277157166012135953943032538130949480727556823563677005032607939457774204882733387653913390919875421448183073304391469604791771976305516254943148717428564213749071799041054811786399243106128300911492452906340051239529090438808912209422322246360121635103223531507348420162026647231030510401076791961486759119276687392091854447621431922125144725484129797240082146297870368158240803414923448768880760650220857098501129758222796928605761606365567088817622091883282806529782363231653544585557675719391005087124520850787881640488727629376927971203882075081547553540786971871787879404671940591677064903835088303875936192841948355183329837909219065075211563257906534391297078183162700093609232290916631350291155739964102985760164189354997458125435507916778463591961430436112361113569790407151314945499401932055808292588312214484973398299192808898691951385662317856331838741263235419872007061880563508861015000116551253342901954436549119836988205179270615623599150165539979712174273930546581389125490314158909057196649053400373061319422385270496063372360149891436635087823117082710863143445643811812901723904344866889500916139581191431379829083983759499696814276260068822265984564339347323117049624720728847700234700082952610162899150326176298487007636988077558645548643632902636327556110099799307044630377169757396914592545441430388817706991749165401230993267237075189624299999704635942005719581873181652329616865082202182529503427740054015202547277058004880688237181905265547374608737009487309396530057426034802467188415427122072264249158136808730041450366096172322941722256736519836224007827460766329040406594066793153339205893236614404523240426239214860666487453753045598356753310911272234425416001489912310233325479498047871263990283771022615333375874734384995156337671282699666948800489634374976525957736374233393908292395098138905894414733852945727119924692488667442532729242611463424631628539133334142230661811930637695245639053069606202055391736371781518530361900676245958998022860743742522528755743417555579678374896478626403532967193448624223939711212598991438161325713806328166053795471361229933848848259562006611138638521801413989265655817852036925321596575661202243383431671635198105707060926638511971805874702854516152075250079542047072578426025805837435851798315113569392564067812076247552273134039388563849910063005811784947776159822741994899321657779463375101091618695578933051951074613243750288193603102503871934425553069281390647627829330268743165136529902500001262754499663961785882389507040613611482172613239997850507879482987821786631449664258576044220410702530757813512962705448215342516263698450745606398205547850431965671336092705967487777556376113766021846496754272715467025526336181989363202354384823302856086048671394448970358136694730916246143579122601705094849053646540961697010961668488237221996842624090508479630248105436954792978351154893836642402500742132270879350728496551011292983954849644608616002063126581149200540275704907611628598005037707314723869024906169192967181308424781629012880153723237815581551750508860139285801210201207194152137869539866638306552614616459462752293250654687942976010953629513740826162541146390838558228564930757856536249762191045911270458786339605071537727174958514710116583491128654395929548226044121240753629448807906150269553297189857128474206788275402641974140659451950074550892071024333409846379294934088289474452460478349544714513390094188139671741000163429158315298992570878775755795103188926544813657374456106067564817265830809417449664572398977300375113259868056890622784484901645424827352187644953403661058250538255297613326911400676736628976346895941816840453946922176245645367961844170804967364432221691171723170855302723560358792891929612644541004998451119252440062214250009337264003668307906607531494505653931389700584491735302547661917827474084975023958612995248498187305046288360427741602649777420182202755160759142295064214395291515742174549422673133169236273713000377457452073393218495895727418523853632146229960734148763555489312738153572807314350270624056781520226476938816620698780945023502471822902392127445547510044906485677390608484539737859363209115095639706351487561729437329224940753304786719395662256394210432113512933811873668098216451171737046498713660473511513981727371789761549421797437762916195440886147542251253473322240356387273888989282982688715130382805596727838385556151796980255835311032187894560096025829948459214060338001611140452807189683908896986167390145602033210650683131528608108996551313960343280210923919552484582144321074555362066003514806115154034953129031671100098325451638496619406927676042512653354116698141610109536477023796816439064829437034796455105081069354517665514595034188187768924338442346396862048248781170034001430773807325078245651961582651117648792438565292437139628590481935324323937087605145461792938759981644191341589765972795866040060764972821357369233279257683716180986066056545261965121497294633622470160722077802305856895591456185354269347371718574976393801441345821920279569590256027813041383332637937904802416335544799674353941939640957400757547441158912075219111396138680206372000228264923745801830411664828441221562814233543589203072145152608323723135830182287378046567566550033025492296482719574464421332763413217259244574969008738126770947457042195561930901181692872849810122589671752938132023509381998942661283491092844436065969318705040749460790723341674012704546437859744291746278749011212512661142798204755121770640541760794104713937064455848155491408083845041693505643447821303781257856958311389040781078731123185937757526366807434913634749272188310307827315585030223438114787750128796639462612937084688200905555163195397193162532040106944249517464442595127995872732923915065527530077956738274108448147501545918049378177049665416885176793010182074624155801501662675800966027922645550687496345956258568005087509951752581232344567571223069592000595806351321594199026856976348577347316680600325066938600376036388304623202207817282891051396059311037071464635084463895532700476426363146929288667018273828108368921052151083379109550751089772290444874719183176431949121135954902712446891511183199968763829220463056365643846897046444772559644688189372237482956543454965275228573061453941046251620456505395763384866478977970819091384605818687129789335985100213113383783628248117197615207457045831660330514698651953868844281551941236493301731449775088700213669575966539769224696994474608426869486836773338219702248194194041468444612676647176270037563435674635151247187906914131463073665925328016370690948192640028862099208240052572353648983123991564313139451495487484417783338550555966780546689739058627550121463806925140550668489029632186876219540432007409258737350989876490814630483164684843453367376402449073618613493081655869174423782867756395326166566349016362988934885843859397605227630624081289035036067270345348575752643196302070152090555281109148240601615251870420645342687024222227765460039752216555915141863047201926809549587663639964894673042683290306689540845808413899405810762755899341970295258716256463697951444016719745386976285016749519372316236337347675099412571433599083699409911421746102467651979871601533361133187672373334172447573500189706889076180661795494182487664584444562669482757547987321996927366218958355188486307825537598144522842506409707308136873186966609279399824946463712944270549689215899257961249768304492096386795016087901591366760468845984701391476221234867404190672846146657859507197551928953802529480849303540940580665292226583243839942400426951795431282583202376743231689523446913925140510941696814659480620135765189531165860851380202605030698671550458193207292410083756778802396045960782860477188522278052117144882479763226213472463943192334413310642739674298341116600547654822945798577059208782070996672852277538180243895880209538562973438373982774749547521812520037684297630743090607017351170190563998881591686293980975189708175624559821807232869231641647793236125529762442538813623507270743463015345546547701410989102348513567031167472301689374630493230179431287158693621574932382928434137276413446423731986837547085546981514288632789908558140087340310251335995229119822017555705717842882989507309689723542469421936434977071400441460493634946536543965538742837882472733532211926088657259455519252880155004757125335951569616530911356502543145062829765391627062119393002303121929137301838168504356189161135745875833698365454609394173835944404093449004666697120338545467935092270822968908966232655492206507141194315087555192675699838340198510275115044649692386712512527572961386477062801479795422693867327845275447510314863669851360386797529823450612222891350727320784798995678415708289654983055618517271677795841522891533380186925444393339806464781685523063490446673532506512084058253985588172964652324456302374077526681507471328505574464210250900968772768908205961004878814188901291178752549943457852275449573328267854170128099598554643553613452423491224772680488636539855424417832080941329626950101386240422092038949373421139510947347431961351437049255675725646942560277135407115180141900902292884598109657289810135189439775572467888523563778104271698296488906322593428219423989502974151086517065831389818461387494822213129279112552864328459006193428321995272671768065547118934916690974021943796180445631479556985898275583701560289605180130098487781428823711977081937806123514375515747557209254079162391441127543270265889025270514522862761597777963500928257606929906824632004223084241545093852902968435101644489921269318522038823130937293140836051087395538369376598886236062535264319136770872556028252922636261837824809489168674791050126248121798067160468632067979647606577915588525054229281940505286320138712735814722581207106801471400167247882078097708795586729877324660352444175571615300697099871406560169483635892757912584371560906400657720121274977171197532503884205411502323461758220478591605772210694855860659445399252935161134797391332894956127660333492119099215368090781126466747440897793375398300162615316130990026251350667027409116275895078045149720816926171824399690644048950680049612312907012364687989608326919421905067841385601813838382405162618272844083851397503663588010995532315979149032318566329179303593738190328403652853642617087962525343686520331302714067388763886186487511984921910336292362635533569156488759373944831840275152133338577015562788868492681079618292278457059349309375521552940090951618784482707868419184875022700156393039113777103096091757504426141972295072388525102148941811522656139750098620459707794104903126157592188530670346639850603014174204783509782097992246384585032113744582052538063426738603068560545786519684330928068537366663482764103435354471306770794828058819794733209561496988993900093803156977544753754213482766810253136471811217793371408473089691070218282050572583804392671158111526143122125343698194906082239838251125316994151869951953994416504564645899369202087692802289102173619413697438335418961251919806917820612126282114290402439365654727977774952379905594790547847643467716415276503060577000091425681761934645323759128528047999202325662339903263042549094031293740641349157275479198285301754393277795599953602902298072980952801237990511697803984706770197561700957675166097372697674575272468288469562114937663801513641304027031009380960393568920475765021220117470806216599312722241746421624024320274677171013008993335140795441341301931207571228346095671837037576160429906156000336522279186884869492884931400024169528272583897814648450287217026584689024988534929496437237184124588486671897406207872943502921685691051665353576497903892300638706184285347953818224362419470086568834932824217592187485477197529025520869018701105407815703866573754749688948268948788248884253791205021801834123339645127661810406157700881597204164414983784525664234488563162922661206409097701368312804552669521093875146500183850927122684791753115631187164716379895511777258309840955660364882260083926106577327450895653130862170247393850577446063540196961227514959035357444201801941353702059440454656726940392078041101486560455067000969260675155435951791088809549657935426423036670607239060383049943205197679140179373654294857721562059979312216388869945733277421852986231581532490574907068871097684201774220170244114226014312786994208628921719412044639137769297830397062688844776536782502325523385080670434172217559645549218431550018442161638047503659357381975343224316855104904024230391833354623157408747232846734920259235497745538507648391865574943124975324357436401364952688469544802582242670007141818496034462644174803022914861120119850222683722506773547728686886178604098022574741842098510799328873359234101295177185040509421181463758681066846818470424283406810067149331007953696767041038077567951306596940226039862012874873892710654043056097677682951242760632256237830410669388870174010102558778501851293846553159456499395946058581294653988535630624610950526516440986492896298672665919439220151305789561052915526410195282543819488160497690494482383910240919724499381414691380665822736280178675304006084084228469843952188209351006468592295755076128582597306543084678321457403663807527637509267138604440244905988638473154504257753804108436315417702827386735593332349485573693770303889918632484716566649357174956946911754679242490032064575902657106604191421680894402214721483127575554369627583397499211732990040427802816051934844728622857540519603650703584747160279348433823590274200332053057718444948201237506424686878206537512305831306809553040406767199230538848498261536419294264857006506835776476634286430957673250344819041984093016156831100180419514318423941377355053540536586053098525825670431087802325051699937252548440974274905122316027868243872437610699115235549982563711650737984639728611358147269429494965821024034781697867238305821541302630441072645558284388776029037422902087070959085129760307027907770167379051064059836803243300678424754560540108327545688318833250143975108737384855978316562221201195976670661112918575274909949799512730963883328375299582357986900077481526382066180153208780450829463002272116535051283930181181565682093128831107947823826864927203500296414691838479806136868334889501635634236479080051347687130701605953828598241377651225037250066447359443083288460492031744876515837328615227628543967771662219045649094744674594579326692706068179037711699150935084867940855122560966426379182377112173687738194154526270685649343770713165563338393987417835576279310669628947863150432181135052466800836656715538612522080923066364078343115160650934896963686970739395054036180599929787328474222035939389945106292741335229027366090869591067190329231553863330904635940623109945632014007853721151494478673671149077668268537680515289635047673135721813170393257696644889325863908692829941644235929289168741221624448657123330021703985505594460563479984902511271180658719488861186066778158610461718006313532500159974499939054186144548380094923618007338841118541555008092214622273436243214866087734081751339727142061130426974796182383101613396429009422146222511901617517472241304434994351519790932245341746876016495226148803554184843011781369285855133224111674014553324824431470273951878383018931390884552597003425773293086186829953843440265740366785606755133130502187139431468881766160082389801493806628717380706852158684816966953181560324629180921755495596187980881944406353154508581867415177515229219928515951844682350095087272110392742745487085743379312994756805993431339714466316307591333809502934908247350552923731509089870992755706666211870553985649849047264596652631868966485045729978207777101674409313823156120970104405346686649569030396022457934248056428413897320485080595384695677102020660275048793686452130189373024947530183652458932001338603508875168748951896786418832761629418748442850289175651017832644356103447445124977492728907248471405630632904574536658445849053320793793435603274142586797299491686932249568835076818752625080613628747388683651351994612011895023799650509960301402798021335312945579051006349928951288605836469943131297500240210934944476847736594688575517559175824567295457489699128187345432863560278518522407962384328069411131927432167217034717188480964550902850267834589803111405888944534677604622111585764802607462355396304606039204133389100968551257402575155089979553170796302089624089344918437562316199480682573770379453859127879321861445794930708357327884160897374490511126904623651870493294097265267965249286675952792039767475111778411922279498874475832668152248709739430262251504613137296758451678325112145500694824999698937712161793655999838684821546724189632216425230839080793059513868623646681036942462850399729074072077103960516975443501472428251590550418456486048324619204657818734297706054242627403569697181938382334239097556926922726087014291066854315499341075772105102180487244356505616421662650477811955635569017298242790748333792982399192531683094732072460911549730625182173341138309169096266880218424546119723888153258229201420363376417669960363220529144688330778502324008171599283452175155364273974632460242688349280700025548001807556816387075439464521379698154126616519258306563419396407135439761842411657976995023917292198725892913653919803511967079500035927988998376136874451929415489196727344751150524148747790444939723862219577792323948107003187921535507351192361891700342929746034405852606793656018879705800342050666997583879222793585183380106631933473387623935811562666567163933587989650638623155266929116231288031492513347625026766289156783549657406299315777944258179009911006622543923238473679192496636652889891651825798706031941931822135743415070017588374421149772718033750031164969144258339557623334523148111648541068190021499921184707625188926189307890508785415717555845166261510824854075301349109144554236318295845399326956618302782176356722424973346231675151975689309594866795110693517949107933299487478194186316601462711515212692053508581811043012473759864305480036760320118758358496317448563729750698511159680231567692431567129877805373893429713054290088755225185881020118823261932213444685929899335139598385887179929924653554181799989124051013567111897383566885474324512885907213414717599548857283492766442387140730179637826107243607714855474611125090589012048134703173770460202926247123505310325907043079579208863500374271420132465963369122765859901305064223309373905324688096064012202951857526384575479799836927126137091205040552081363647932707307754648508764760117413287755248724603513301605994237783822199066117576975608656810344058394610657563126254013656800314482652304981705046536824543060052201181279154572060958337376981846268014898877865552640710269035386860227195873926391623043840868114043106824858273213465234428145161408048027917463381073984217165140956366181748506379942201353157052657334624958471006490261527570283576784830493283636167203545953865097476246425145335929490082347815641156774930860548336293962658827790594372837079132782163966676318273017994640332706439798775501060467819552164484165508315699261216302607750986674634789990809232726393530977775277697465578671094869780099580797084012137869637176550788181411178647115817430003105987248834407839283298895443586634254753820184893145012260213414329447768366885735427207663087408665484061017745056946805332797716381744613343721598356885515267591606589035825508254465328108947433852741000766380412707997509864718803261199925577491297881608020498426189479842698943329842716172756709748337199111696367796119519761638173998647808256378303819557463691093883924916409216481787296833637946517106390068107670937338470089270736521458338840892756281235126462492129904044452432087331447978524298436553257751632889147671885422135402292660979502745313364955740527578065569814960709846491693541084522984757811707293476117047213410823781864827802305447672663789082224075226001013634088356743434498975407914939063872375113430617458973745338938045418855709681568734107585810019699179638568829904233676207413613604978712873158504171208815430003669231397469639430921743831700139740961062549317942268356757501212421348991343374185541463215844917643981778419723834634152523610351257563968518122879316857796180910186727539159094951181999676576703357131775316414142445933165410432395794668853548014969131562260416726126938373954631829812970635336445025121630012696805026065415450317029785499878882314718161610636356055572642642789949725483854193212289337778499961647199797742733504150773123971605482391249347417871648914992546180053904687564678121603870402532464640142366612477345513967254865211177017093221783094425842261483906621683976663279793203389898864252495911061391547983951113156352881872081993030942905389457721181370422575712273216564564122315285746168552123928465188168755447306308281963397597011133695360659808501407982246093829481464226173433239139340086338108451267109964261916466807081844551342382118041775966926790774228079966712333473916153537596684485749251362578092182400013187296368448852698528050436092046781906558797781444455487921022275820814171879023214816186549850459528424198127880353913850995524313569643011068739403058264262152581952987023481537299139455769074899065544816583716985311543399760301463726811417071056632163892605886327406759979700446929924433305011363945649580885559914013699325895212976648209521560855016041791561933834778542582862094926081236095232274121171028848231919097194377649506926211720234242331561188649369554529373805717626439431140943119565486021670384960540628265250752707838417205967725331565967782393238557090560579996762328123658216166465575739321260533472851129502159795900157192095937019955389474361742172672770161826842347053798575204769240344229718021693331133152261806922440596972534742235262990175507637855521950271259157653844947136271928724514627757158387468822672415863082871540428060302411903407735386402350088500722354964725472727268615000621697450194388405751170971188726199770363379997807927023053559349523819967544063812680038810957930018921596903451629962659417575078668598495191636295376500535572471995842702699813643440191365013075657549029967718063082830751314320153452416189806594540656160342533466969224046371189699313085395193226317474652094201996077674434618152295909079482798901401555827266636255331605512265158483768367041192000871594691816015012237007496559440878237743231450089663603547950619643745261205067211250323377991272870457498205631208470245325283771231744140508462310566773642825736380965868340419292062276503093097738253095129329871933257717426330245996315143772563687070390989512941751705788697351988171888199443133322602450964217797751899545200840861137236218613294793947559321793462897952663740462897676823933682180985585613160832244961492367455570986700946598954638097844209560095866501096872041232156548673671295581025916803432262371369932178875998170860763165507833643133069092277900809605149062542202962170496401560829878376618431410898662797439507291528033388062786761799174974384525066907196497577427168303691927036143464537902724756447848828609754078981035396493206504356428915565614428813728545946790511889770084536928826060952448736928996768992023910437646730896447270201753044681187949440409103749249641288155911193412145272362565733981596523076600904948958991159343917758318744447222664296662607598910287814708321167244628658863904469834739275644985557834057212206832282015618338740816657461111492402262017868969796119288215857537692674406163061483268572183157790961327583424223376878760532257387385025415975185522079550741074110679015147634549479209509778480769735308913752723951150016593631328062922764717628833996664600491327470048146498661564831879207393847432747228764189561260966785891457872346320547988959802619993579955988229433870261350222487621426833301285268742825451460218164213280545662845807510365661312554485549107738178813462885210791955531201516141526558821465190409080922282780289399536738297666654871536967284514022844211203299954761180023583713927452961537165998765858730371693319702296141938912239012423607557456564107229988856867039742509758142610400410420774191546779264352377453011205855472822658822849855360125343565126828175949506126756854568847555627633313132329548556386540427800957134591738634057505544906411495448621841234635228530169259688867357751329154880508043391590607537886471750985411204691098634431852054652496301127632448025462086907138759948120279347501603895291879131006749534168913885682894325441293007251626480891182217433561818802314000624980404744943728072223891804341727686547365848892172053181416978406282857852935408740362961371113151075023299136384356121326286080348209081952085536765761953560083695921244526535102751985714352442742700424194840803909047611367560035817654336806233069233388065132503546536538731651896747425141137192681609951164133670214586422459151193992263040915534161669304628205715433462515158665488714193442047194152986913895738589623170696305638387075941969483404144395030828016452108972548928912157259872832302729043110563448032218161393482388079990793355772036067330267897629172256709112726542054962640109021137494129623197200381758951161294482630104772001361556977424101351284529833989828668546718498007145857038983209736415050750786337796076786006031064878997330439143556934603616775861059345186828148395785753103956667998254892059770214195137405351110309854418931799122209862520717021782906063630653217963581232159371343463981718860817386088537294997330362184972979258547132281677945113660477818742695296606435001204945897301065987277696928043725298415972454129826694645688199185424435202373260235846290662727600266734918105894294859055439647996771764839551171547681632395373751470191839206525232823286183484060724577411775729377333477001785798425499939815098392269947036985758331019306304328246875634617883979715760696764262543494232502954298454660018141881164750817786854971966389616520158266754228192160447846065239662971500848870143358250279904623315056521688448036845825792507506223673478939325757806659874594441157153753780565481840233664669245047766910024572777228737625146322005732682272546871158795310768754639421784544910993631000678639121756986916872564302016914096051945216568516443148381269258438355946672468523171315243187598735119795253615371092454175303772302196320469615198170660771010371869736672431810800965912167914874464479670035443068397116945501781622649854293635237533231400911538221997308589965406158229658928837891574110991598462247147189342805167981830349816794458232084258203608361894244077047266649632319220111432107266251936691417887078816797038730694875581154756399703754776961467612561939443155517058014657166139694523010505052261578438532189018933521242505567524663884912149720108513807171903664975137321558326456456655783140055974814319359056421175148198095904799552349241304081477298691130941146320000597396233413138539419833334489836061855988771729440250292306840089070389138292085001909963668788731882705214271217427792131724628895572497531523447036573017749303609968173390198900307336404568876781739326850480930709955992432650082916691694412245263728891422392158198875600410010665744607169875525586954326016523589790920333290999737255753220378142174335946507856763967649675505151543777604780521528755842491748436033732705651354333962831148776104371252283256123297639852953862139595531946764229783293419865060006963715086154008856079035955869284783771399932442519163659221767700822382850545787244316216797745948541923650283835558959358186091516905078937476533884314521323957441130061004410164632458608342006018689870729739102806103523425191099836251081573043152285236515343349236417279033439921579775433701942317842291344176909337930120693532105002892355006529064717935788549577044454260246067794464735529033175013866862304724225141365928028580255471767655743947068663024921393589655105712177764932582448321185631061887270017719922811523861799184365374302529382779533008853373836221448233245608148854454297297200434295616526839728821970348590856291869367647199849050906693841966209615553053306134179075417055594776314889138716931242665048010345793329702240713705602970159686222406253008650928685218207966675828554502679133094773001731744509794506081438547315697044326326390009431481162185108792954309164415270513052504356383638119536295818583133404221303785006045475229905301441597000651786504314769882169855831772229602470139947361204777461136072743366688511722666392651047772330182155295600202549994356564253518473137298532638452213800947792216919791437525026257492270933000007126910628980036740344353842966004666022366544448203396714987233062997179011533650019287181987219698661023290236571286183973905051132711783173021373922670117145173638029977905650471561692084535056443613693089877396230667477410843932164893738059095524337846525540935178754103008423614431380422836488928672492079220657562176867809070689947001569352195025267196828405428268065175022313491676158278877130431245730224678406967714052280107747327616719349381057873610721713566917277521655794299426619381704801307243698824971321140380103384355338055929764735425237949963936417106010558786667687923491791629961724450381776354988878221719505961247107188212034780940931457483141674700381741045255981059948456185913375637958719318616009070771186114177002968768331730755378594264154948692199137741450237658768718608224872736424773341714400141185035162766860689822316867429512467358879592351401102392725179017675347794449027582429414574310373430791198155209589418888788722654331147366843593138992411958608828163908693999573030576437167800359504744219012487264835191101212272980501023823970650961861354588947450562090892159366533656346194114231277589553913007923408589393387528955738109472290162787362370825164182533341071666672367322953831501428622667953649245414554437791219668862084678655065195434998457547054381780305072491999239277368570027287888569076277358087145265470882242079052889060193466831088336605805354810634642228059398383970573946048964361716170038535207804871787076724189990233170712376299156808584337541201070898619198484565652397784313964590093263455587623799867364033184023101494627847856959126879841456716165805126033412259120955353268157654949082627450395971617268442335957216112188833568431187518747886432264998076159266608877294628042579331637595010578289635662292373653229989410124184805378650764370827295472895476779753125149334797442104710612428746665690918388270481565372783910497519005237711154611184075596125570448299195000978706489783249885537359647397747517203045439272295052737012222237642652632968516567119931151079542780986730825799928841779001313150753264624541688672999393519769453155340709050328127088227144213977525687561930779134715047548839364623275286923022982458835065925618558552754888105606041973155718871154088924198997615375977881417368063726430483941735530763835631814848220935063280301751868848341684367621169885717966781615756518480110993039634151160702852352219366800501061647234085893999106554143179486240710467343293521539188820230478771686663458205474566828547500246902468914992171938678345887155234470747186250607696293937536538929179182949764741798386008641255879304905586110218812227311519473514774215871485078843475083040328735714418574777652436360881521284768360176065762556973426458567269680158932912061160374671671443351778624335526832530411130197024747139204416348362642537177981510229410010840210592447607222615871721065710563364173909079206206701561922978089970761741136305148444133990742872404588578781613659348858038274314594804659849400302920619933935240217054240702205474352128015610555829796693254685303144135132976366602469862826157074467824133742135747368956498022644303100582076593297615053369207385234431889025280282746466497365885936950716690723348368206769277406111525896372684826650390398270413213856954388260179569184054760567463223301391643390167157776466068651750928706360369940816362826799158779274723669506321815225988431332016440848726324620908632779791254944124904326965770297676510533787576919629407095006053438913697504708801507703800165096406515874664405189940733562769625854559129676706648287929295218988790147211958206977230304462549376905878548481214274278540141607392288887963945004859551648956443795030226105414382540658868406497148618766464680139919574218319981318994599287685808604576061270662139387148188809200057443305965335007957181008000319109510040382176371956225845236459700339717353544069977637725512896446674068552975829470913690892099420525208536617323685678869687664050594518997105168013619925114492390344946620603011412837581450135733061310619469090509565642018673829514422117004255713204667081118321208900433248703252197145490064892498218113693105083652221001293726933116255362844855298370191323821576565048197609961548292279287056383901766675403554309771701147249158354720844785391409202501414708777584499010348487308181848566970240239133816183912120984194197627654517737672865809932526250176518338463467574071838077875861945859554979426574043320963223842724746227865390469981252773573521844032494780577272541150460314086570901920407084047324274172581645657724775351600688121264393119218511575466486264031123637382254062897968017318142335150204722433315514131965673050427588040985943488907014503129839881122662542810682366843136329562146984867603918190667686487572995947948880946801854820232572191114597559236411820994834669060427110871290325884107463983347923685212114484485515395030167015866322455567815129816547000078674848848792227580050080810467489498924256874974900808357991485595851976525671711815964760405160139156528078277800037923001792624183275831850748184652099799874962801683073875992118312337125590525758762281055308638741392298893232948832861305216991962464161540306892890884211008575523604462668323108295552259426028560029182868132243876881749812363432387216846885368348444122880447935875150560585648033824514153495574341705767854215569334999517719953701971778954679471554206552081197636225940034056246731974175932730315072329725230943869629609909200488951119329655321303064083508935201628078531437580423568065832579793495000389844533271815741299989873782560020776820235417156186088280956648882156415457392171292739411521366842708670916274933459655553022018361665810300802820617166615707314631614713612747070677349317218958094052838710902751180183627862524173979320999363105393364077330686562714044566010101516470939209247313891139817788122914664756515229159260201253982587051778362327738989497334264506021565277229756614294774223531082914979468908814371455724793960228969105754214059799837508425384802664497641403669819565267253931890628255418198462039921245641790824067555248244493673670990098895691294116953344539726694753956740607346824753665866522998236863203950973663028076493790071508151224603896765708645978387067672295377070895413810077625073641444282356266304192380540358484973366735676467521509796210324659851724194949802317674691956563158541555806129827288396926819552996194145178658306058667559652218456031492289574209580774292153649516445149301857371244984219949905700145029078099740103838452017932717704794640399130036680917978674349847613211883821923257987688301093685366923287428774216696798764372782437941726731603216109488406550600165899925057261900723212640628739199648009915522860945581927952107431494625738436090387150175561965916667688894901603326570011827911072964451146698137046962120709654156968569670900259441751406996491287985788458189194705126351669178983991980876921633837843008961235990683176762277148548586071371180502356537054895927365222198437566248033788208830679113953900645148040243365644802880036666081558199116426616004686796769149101260520472117432544115972732364918058975064109592866540510911242223132840785123228537441535695156787165111256613754546330193888108766191408798854427493560274383696700863800394289414724906511501337702879297377247431047540178634578963236906524992181451849704666213125859187198307568336706503609071919594979317298111278486113404285250094884928270443204894169979595246170769361585563768547740422509702675871556249790507917695796769154575318226948819149431978646262576893332007211746522098647297753621705786728832549880675908459564805395216449233102416829050719117986976981456012944238393777243257614556515192059383273775539525632745281147986389651126228023714701704096886257226161267868463492500091388303676584462485437607470879210206295365000388210399632351064824027034909913210425811140121266194136678024543297199699387348599293841024225857033869686531420829094470284383129496677987788928245390017575415004459143287125948564317270378128190194912140984331123522105030319369612046216408631703228644735546434407949104428461536834472271253691685922726864363799267553704086991452989433293059990225298716284192319792681705018233920684107535757082459806773653326751008324013705815687354043116315001858137217618385098634456628191096705087438031971964243708878464367881514485899790604812417426321300132090199072975588437084951718084736601370169461977747111692464893260147801501570743455491494781346385528637521316057675800650511043153161668197139840593246876399209982481314485338322698885950348066474998513640332403476485688026643838932786245517808768047873033394817669165551683530080232601352277247642219163148594115097440902215397401003085717483872673383576129660648962728085114547975370812536060545811843612997391291992907146435736839441125986488381247733089140650995639849254831636342226035903887689161890295950176438916931078965723377396003281712977062166875618542027921858738537128275560021341196353326230911023370985658083446110869635530846610835094807701352988033168161677399545427053817215072057595088351147349127627541238565747381839045196352985128482669658702420813040280276424265074437658230194743091844409646577018734809221909396505838164096497934190802794010994592321890007591101015090170172044240334719784679810292158572707528860460335233981946185189541072976477586823956398412077939247788926693116943316127923669049225442804103000784739948757159157115537195549611664259542299503773775118409603500135861622976343479900064933589209112180072518529102181125392705355844912102413888589704074166581521656022040287627300580207584480475646413848516808029317980249780294551205923100016352459251385807622824921488879934866150378966435588933229897345907100571593871003000420606278543449595767109002437818514723851671535412523873646968082369707829286164404349917807820078517170692778788453153700162814418456690839665737336816850075769461016433992173053332818727313504801814003277020468407533056931687902079741602751447326393565878333057662830065009058650878620191243332055409584531157092852977892248556575325017323544981252326043009480448875226297548118205366779092759430254560888062483813617212863801136568802293408486717074721525670688030561818478152825892904144676441204796689308431561740994084247122394855716527558893782289788478873153108326461656819758100319685867203207801870103041775313021540584634078953758522072144898312237327092715271940553613979916630674840151571989441385306884370066845191540495366140784986372004904499400849518785490051677961604185281829794021728046486644425310235994026199953487415571399161344839303305299461660164131897659923070351680343932241737305223824091093319067315605480243367514493546141488551681136043808534225760251982159240230464767469341994179894002280767853080017775677917933262444140776284821811563365566157496844924875267533540933206251469938837230883363104841855303870421755343168998834681907521302287440537510644615187323984633513236185412614032402757206269742086941701646253146833412681715393549344145182409404399481191009386382628292443084755422183835068595102507677714809058628120458464329831777750891578344912400349466897637528065587779977869713516216503616995417129094213529435686094884574463453401619438489705568494467436259391959088895488065424591368803660895901605268727381698265332875923745252242034240235532691983220573119108830394907847608501741672235872263581715385497675822716836129049488978945171765887756711444581686608534256907099583314220675870083791922790343963804371211153782128338799400961917599245773831443954699532682106016705232361797455267809424978257723641051626452785153078765589166777858138125362350459782004320765397338749601192569894765617019985024156302851287919411396570176793094873219102665256152022829212055101314689732597126915017144910593271273545054908345857551046250198605239039162704014055510764195398628249573217128402418962808509021450850612167608292271491156216157685392689218039130584296489860292834819439879098461541012126448209226678943745982326840631891114649331600878997756843591947018426972232086227505981471302280524989709387476445263729782994953785173202068491055015261773366729444604055472815136909950573339177853237229784291162669757775851824225305476729391617143122857296373816534137950933074616580959407209449058962898302236267757590047901590049412479409640739187050097469329002038569533952312095046389626264287007208150089050941746045586197636898546733597801246260252791132342495684341295374846988299363817257754596151038238775659299870015722123836074076903191681906918226937445245940445791444981521229146476094563439027672191728059002347127197082167761083463436156525988758871157086735109832327294708904381757202701958080626585395942318956242805840205405763594111597399918439723955436017283708615161756796248033139950936500902485077969728818618326966961914322407361643244337797349503541809337930103657593591451543967667797513032022061406795733974427930983628163488522513565065852896140772742652638188718911020369286615863529074389943904508177009817791043358744967044804979869873644989156553105051099754165763751041119499733184831576213670068013836959295695435471162651801106371322119112482747719937320895842375485684705549009146820720798206680004071475954092808914475679780969454355542836152602448423655979422767945470414262743613745075630179485185224943881195942073710370541205020386581645224646168445618725838897811805618258850538700450422386945224388618581534459713594684886140021357266360229577023061375167731473493006036997691287484800312971166177573162846381034078023561224052787398691302906193443969702698290174218007515941678983442332375226817842772447057767091883809643230848217061350742919604328614223549539236533904716039314810497126437783701653055868111572150445232273838676921244223899366990690888074137517127379764522620238146064472522474156139938095117638439203877280091744717797517343573835419963446468433941634987175894491368924553446698087542343707452560951606396404099328099751708558743637518572404874480758028121574981884368679546155789335189698147458460805286088764093422153805289069989341650266971466882625175899326523037259455692322308794464365701526946226314005023520874583059180299841250575279160625337558190458029971257074603861842244407505474955597264767069226784016108683796340101411620871292342441988587568419287417458404463531750001271341503570788633058698593152872503427113828552275440544713371719379486860798199161358748465330502372359679064856367772195423514180702806409693951792484279721875556117491660004479704147024721746825280746137003622038325753159109531541886968428917629256080979249831340062672631598560428851202238063801267302584076019176805663041811255980517700323372534927319811618617288793762461885290918931444259584081491205130594606533243226801742056923229522531237339159746971828293697944947076632518522291197020386244001561264217453025095324615241203584353206264153532613510566649984923797036378252693871510718399440084659835513570990196212241064580180929435196465009549363128619720363640879548431583790685809030301560146533996799638732103057484075906166179529068922189994500226745358457299309225127083572261293489010432760041959673184230903628398616355850394466982665439982638666333828719686320907471055975120503229363983518099750696698407390026951390609163767578942306978057843825656804322371704231151015009594471118276665811154361212349074706959780702962202661336723761455593082134955452566925117798874075168964208589558209291808159902722436055112218085488725925845697839836171620780091777338157164816028126074324661246370649766896948547788916669700554211612891719939022760429175188940138108268681821591511732019241057004836662498097240947892562784677854024438647288971184075939994093670500803638348255033586557822101092591718250206424700935719938290893072073839208797459457861587006300098346751911629757491167172194423521055481491083469328629767077662859463475175822724967221573613431649948548394830368181548885394463613694712004371089976423680513871286365045834880215350626646658962293454611166001985102409883429074513917759917130375659827005061944084136436895127466759238158380772735398996289266792816492385311899455739516291573834128636662478061725155289375399099114474805498341502245008113977323390927603069799770043469939152398673559739952978596680067503919282348884337236012897986896691429180165607837168183410192706812412412051427888406940034781101581537314767913303026125118145082234659090928137979646096825709518341851035745940851356730317035805756055993254935495834670700161742690503802543411923443383966163121021801277629148913139287274410202831845269473817589065051759494358379159297390806930908839295021145187910185823258415621929483653213260691274474610812242071962136395458978705540777852188659322165123268777288450887208529422042487715894864489314643609761247725872167227109867953242483274522959788576122598270983461752668892473997923247575729152773232056280740564297156814439281469350479397057054930304443448490241369547728470386210640281315697244019827630866781657951694471757129825373651396979658153731138962590577983239209072516066766187851668441186879254391719173558292003813288052488777000536454993625592284699647612576019640637135502823273131201135985648993172520681816759191579378465616580690120413723254479197443467236453301872654010198131468290936373853887896245586348973310592728407128738131522274920791371440318413783778235115135421881879573704864456848777042477482175443655878863671546829257766691895373817340348563454029396215230980518721097668928810411970659574435769115373684990894234402109303143799023854376454273942829992276612243709267532179282776610729294454604975283304005757560531040454051134839725868241062678936344426989573498707595570424909425178778841450332812109328823305734374398965679710463091127008271543443293015604107292986239054278940982772852041239531533900762535532661991493348841287111467322508072654759668655333030891472355357150688320059569657374735246439079635032329289242746751748953773191876898183801768970116016707797413803945908200410304506105935017680559573172400699363345425921903420452663434536891882663222831069342148877832787365437311108709437855910157718216357214041669293388566486777819909120183317768069456750005840202768427615294318945881660678140137379675881445984740315246934466971944765675704023113002027296573962010569861380362732972140411834573852863390376053767589280817643209611754242514517982795000121528598262249298983380184006396899322672173121507548415618043592125906305722619236544332278158235180720513609824860095776260868136708421447441414608292972008232300952815827244026291614612421366008471534216484326433548169826223677658829824440878565638900144991439772933351449692053904279344067310987835503913797030630029214985226270633157555010754591159534712176631049105474003794613373242241322497467081614507058566968419841804121611949617276069770985961834750240096448623532568677543771108804475523217031667895872285637123093978668357315182659846684422081029585106509030660238046124570674317566148631771157033336103054206966634993270293187472387175673571953645934320637965839197197753237610193921084368395617321565223882410950652349752774360703380359019950922117011018074597503032256780649378378587181404811723666063508571333884265613219611243616034341039977697047512823044792432048623795765098876015422747383517682449236744730904135296541405168357610389874206614912175881103330940271535216429983276323885609403702134852017778775263107517076801524992874723903864084436925378682714484168455396070652663106587295104304220540229147546527683871638433075172724423277769415703687639644929974681612525685971538617090593269209110427004875015678283176838387259998537452272545414916975757993300141581793900696582163535117782785195236285857647718639270894842968146985392308021559081216729744108244580313224102441342904282936043552408678272482270036993907935808602430976241807922094186840735371973973632796584303737327368185048071903228123212745175029868544368145361945308214564252082462911943406666832574496254195621081334404746175071917674122691727660794420454352143749231496673167500412818952534721950970904068460988196873652159920514774929633789505062473802022443933341192724736945243908208173660871759081291087695478784337988016277339039753458765547013573408781910984621617146688672221997883329699059777003678597520811631038907210441796058258696544143832607734132147045881905829494470652894629031028970778261145520768481961150111706463016432374538840300840271311912295881657054812102110201332231264231609521953125676150407346065750721635170088227432887656432197861815464251127013789086852171837806732955048890010376844694178264709168026617156456431107277317913184216049169096882936541412429035080620529112758940464767586044771584298957459413229817435755486792379650585516583167892390756259602422649111224089713810809385010466601419825683599377771045681335481307974576200254717407665999710261783864372764126076536118287116908586736450170033422401414777173530394864034728762108951954775827207682743905081626685135105618330051075505738388666152529580555169534132673538176942844820129514353493020798109592617293893771982252453979848126477632052154332230787884082841417809230441432676359600458270688194693694800141725077141186719812488464545903364045492891921071881637923153183528669450609855580879421054123278466285890606779023256323224139905143797567065751310200980628682448949134329481502116107665936993237214829324642319639085547593393192237955517088454235882411656925307809333970631883294628320144677403090486883105333855741855825054900018322574726950846428194051607526089522355407075595563150489454984771515595088558884884587034909011037678353592830214155802931891730354646694637932624871916145935929969192911482082832200477648170190103943994479013410935659311255122074511601043732360308841477960995395335550526655910183446206564576029360176022332975449178119556037490352934537632582052122151234723067707124374885925525561756487354100077090024900312864140739704780219506402954795746984294064622763635229144662525240968478493276303878156379627287800376200515934527223574105061794066363842343765292012458265890695461243587359945894821106809407825906104890242833780911507994279613649626081102051052799681327522524303658639548712410332848117235953209713831368939774440562671892991095228741886150039781406751323565543317065024853725334635330375522845863613662364510238078728014807778531706127183169468384257244170087581219294459773494167158673566170867119280381204579545091711049555582262640344218135838865381893668925736951941892366946640825105014924344851167575521494353344712341688944008716807537371605816246617753673516592490484278049563160502328800171890790518759389008474144557844242172064641365753968642227823746171335239654650518252606460201896468779148056002119154661345210583635514956062484365321513091100906002302776685240890970365240761142742646532633635452190120145082657566576746605352150465562091912432893739621440788609598682057513805017372772144594378244204109790636947717995477434832573460021446584733472247513208097204381577729636482470717843742680595428224935072048026190031463848223455106877792824764821109230949543091222255346760849057148125464558068908502739724060934585324078722588886370363597402870050072968284771834679712249647077580720004474349779507366321275170395614762142577317275723866079616400088261734654443324675748137423278864172132348933147347674329345058432248666320304199292980137184047628649943580944495433586002590736228097210705284017102488352206583076861716214920601248811718068339954532945980576473241605267317431693272917171564586962603509317876792011158742389186125883212274010992104727186183842531572777954835675866404737357468590732886525617196082543279658540696734697893277528922351670180866975878610680757845772532219248544163950310225377368958917131538740581006415962359266752894894081084682174480618220774426290428780298005592961369860853323802780200164701052389434895750394176745065219215872353667887231309746552856056122624531228980445292220735959524226504503220588873666557456313298848044803273477373576561784752255064787106502685544912660895865444042138214433157971930115564357197229711737071931796416695071764797650559028487609225208997983742374928515290236243680978469144720429529399924634502441798303469366304759069134541431497906281502821112473556448825293639741018431095189292905620405761502621161356441328813919344566725681282663500816099978171588556052673688270171260097966605492404078522258060440377083787292326316444805121060925608449818561682898858398410422797480587562348181799859640866504418686931022671220593580046234879574951258523240429495822313354900025651354234319968156165829531040442444855252084477987717094802880952518537802672398452012677346001518403610913557419782194353067613566366760072917084099496699868403890585481740416776426375962248251934478065051246829850352375061059406104556981693390089091320204041024464019135906657358129741336325938064549384767362701369118468727208706071942030978852480754425019752442028160030956450253983089864591701540640364007949626661211722858190705629654054958794310310318644958421940878974315220436332161001202535928033054331577185371254502944841060103471320906249150743947098372738770414087175971846398284314524694190484468351465558062498311845154241943365234074185316055581182880365114031841139531642778950424743642071909318824399639526859509461126795527189246384073400120107297113572132978221440842895616432489569494626463671216961684038223920006138359373903538245462838020327521497836368337316159723622703176142351245697803648575903173598497032546247793215445250262315954627108996731804313599175170531959484828128986604463689582064333859984412909445041766741857586771275221221325788087955709927268425388524252751981385728832188101402643456392372455196276883613847796470258516597539583870748677884326414921435482747036955854423027602626794716561972953125633842827295254613028262404797279806131387036765188814812543904167496671998824114787416858065399056274012200416480480636266122992067929143229252518419389981330683512915047017530565892231372229273876244521147303005151578876840365362238188322663484263632718224080264663859972062728479094135221099834505780192089045236051640550617246999161276997443754554969576710920244987971637703592518491244405885149939424742368262615963139369519262547949578250244989273881052027613619572951368699768039186048808706815785641688424129801190687853796022741232849398757102642146511029530423934542903575801820355073963807172858373915590820961229764284214461368599957178653339596019156651085551484464171644789722706419425521285548188658409524887506879266092755380984842622538322868575744075204590378717061336789165985096467573597384471055430697207737970163641695186937576301307190651128587812332264010891167638080568156540883982039537049049328236242213693200938933533231301430142093651711598195972457766015549280026772559061357383407750481416385565299724338845877023006063421124082146099060753534885383719713270196898639337459680348845612711054104469582865093582521979634439398483297355673413646769986418317695782972480942234009593822126843368620518008482933481344651661124007862010600139351495959994301508591206709131119720134757473138951241813819183635480716750798166974064522592403419130411296285281463497752179674989190280860372626848546816970440471233651702040305392509376172099972351953208343885736703892385927336067457823292138201587928115692509202858928841772175647705674546398997632431393739139196647902308974462920652091871399080347254165230958827859387997315839864672245571658974843018056716772564251498178957762407377770341127439896824373313472421808080933626352745764662808298288826599289578580565230217903516511652423190496787576009838064876841128682294850864122809205474672132377416259117952613085841249262441687130952781358546833464611293960561669342388520732895913943495160162714306966870332458534341510463590607757900810468100484223015868571310555395946180802137012405477741578384526550569435661247452343230817270296599217500575886801118663137901284477927981001272536146331928675395879412219468054015433527497034201712424715127257525212874284357648511906739671240101509325196300062362529537998010023553034397164745034630247997031557578569754601734838395811830341966616878621554094678548459130369897522267614972682672524353261181855176888541807484930871254773724999226063018011179587482005519295998952904822432262456175995203700107172814804248033192303976262673709062128991835313644865789653281749710104288210768349358993716608049463853670062109073003157721802521113629238718769304312358553205307328859146195493296634416642799146366785139025006001212065018539777213953951768028142180095885370916265134553796841433255306564590900250504104478693763225881889577410246677838804390123922314286536711698526743228636979990197151013669671507248029542555909270983734733394444089611453674256730985137884558683184330414577065120879294694776693518390770723456674411640171518332657008612513253406761328420414805300155216672218054615317041093579690610454622746519254850974198044809256411885138922784082256681909837525441471024606477094064718685827716515406764439045264796473931739378972062701177706206122658427904667813097065667200507236881001091861963373939798369078940523394350349433454743191075396876460952616178837541425595018213376831516582041033039145017324687047937162389113534998717434303542116913695590817024812848004857531355053163043912127744123622819939577118603510673767343528919709024849370928338937301850949906282460080325298168938980546418005854461292573474153384458715923888831783412338789498927832911748201267614388494426622024753140433241416470870613236071477135931514919397559700416990322414990620231465219025992422611770891841020047854329633059391131646176384822215075555263461656579590086925075687537803808898286645871059779222088971278796530435958348781726080700254474731197998437275148861704365928046422358631789297619798147703978196218601486883830245856401758510509050874126457762639081531289585791647923738133453587266740297597781314604943031356609398745037854983901623711860894240087833347466680269026060401350448417788728428764789232371490022346156157289384749139825569173045375332031752960559463979822944845593868681420870797783656332719052810855819854379883176122883017090127839506841099700262008618359814558836513948376026575599839791422348019434345357522986592625057437653103941653898659975960895632902628937474720311460957922352182586153848100834202687212338975691183713357229244773356749296010958512734921104718305246402126176723927060923639900468501904974156706799937244511471885052592250662153300202347808215680932995977621338509659010685836937174438127445674070476962584023044554946767534065493182802919955021152780289677985917921925976109019887402952747434263387844271883661705590002710940667088966270177784627380887312723311271292069018343102072695714536975082493917944372572902596879696713023821881937690255020744065504132411461567604936692170491865392983952054109505695299635153469388117919290248250991498917320801122879306941681314547542202868933595454402957932256843179710358477798583561657994741465079677089341904703313350226835042641313873992184787130690703044146338246635659317532064461827311902007158287253832331998012653777691386851953928301505431375844622395627200073487535741778957717829207253853209281425894185039493624524795156916444168081498445401379040082682534818161012218268299411590637067784724471243887294220067725259289712283282995664026210951860841224923626361697618771955395119125331235526553734185188752245390990417556607553970556595289197570854823606292739156700751247828393642056682375645363612584110744104603453914376585756976242505950447903068700032456803518072752985239770311328911704510972007630808579434602329868817470610227141566043885316111980626177083903672441350190695131352938407783735016190849642417107192261762554783241136423506655822470522732136715408798710137844106097753800511376413048161244416848595503774092222527472000512484945548813286264565663631561584488149970360992187820945515434377267611505779039255982146138744625365316951350788062344904957361500527360385267687170110817973224318454209879916255020074930857378053658714255698052014449541226024153748371791481923103258433468076197597846812775358110746827020401908809496953041210243217776282914289682800318989896964926081741951378170932417199145712906800205714988708275723314007821154954845882662040554049020913142063159232501892796004876237124553907400296123278724697853301751185502316176942366957993854911198911931188189721991009801899698861055985803473452729703768857358122094783040487475712469186808908977263601525691210525278883104583603191036905166960737303262269347515729442309702989523304120817894679585717355192715524814454971008526502798146731396235879717833418714260396788980069628346833643847530745051512701909128459378835848958724814059772744088051565778674308647644603290834209852604854377546872681266740804036621197468008889139590664017665751580668556823735143364293994725445905982349384818559821072851396383772173191653254621334228441505262461202352421721047972175539232290643724612888321792070486691272667667612184222437062116448350956558270344514412931312950350202687887973207217853062231888812405742982147018747224994935815870265279148506122250566294949313627957811338215786778311552113868982734495788487709390811021422040302318728080087070189445000673689224508341088669422963409313223402836555051176402548640492833168690032928330440301909793584744638547491067513269436402225814156407768977277534689484010755752319247236561708818186837032552660751642314826255278819009330229010615796984827702237700357189673804069843700589514178278603680873248412871126335169450971708019445820016138439869494198183480623714296293298447388799428717107070768418447529036849593523032250883889338258773723260461865323180043513345578539481018669482380829878378487594334404149360178938425648466569338364399126686406314145402406816568227314673800289076375394535914290925203363839254925257986144381876239347944265319478362715355518514412800607517721751462631876576543405366404864204452434916067506400243854735183374667562674458803159739153267908670583002590757895586269668541592798911249645323199411604286177977332309528568538953147344086607427686336353057999774102597617630387233773290213224985055771552883786621477665655732396383971788553498324339552042028377578620738050715062372214239961290679396135053473358709470071864333445411894426965517654408801073615236478310679804195475725979491153772207163982697884841536940829792774175497281460651768657207907963426997444699573455738802802791130544438933383482495783170728729085204692142261238368410222931463592001777718951795743987669056039737893997482907195887474032400053325979304491814680384591191345775823499855279468408843296187229815025038337761965192996876606727632606567839395854818368887414962922306635673491402478481472440783185465773310529923077534881137170667872170103313802388449491649683196796544073364497698542424021784120318447181667401748991884470515875995150066898220740866219840729327494738416303607533961020123334154265724299400726060629770488983384794765965004494246484130374051326876784005388862445316491480931783784048444244597681131360482478176747043036998435306772138177214389389630822503356319208615196137089086164468925619857371230080833292789885796494675513532826393914922277041675710672376465703980256394261179014156632227991660363387798549171837816341237470998904063258767131905656112556442131758557984412074880258570550868050174070113689436284693125514613648384843655892268379885278591823849239514773466516422131179964637832357983790384337671592867939704411789895316487106357074983816366387063235329910729792596989002986013357365097992902404445316329129756484381974193797514178777978341131069032867291738589385858255248697068900618176258138060653827467752203117921981356436820910604604809517008599001264255049267405473058592454485608596756553911749092973781665300967038220090724496362923322841953497637138403249349390056645173633403707218739382161691679093571646291648248855796050406525942724722934600821945791367160598291657899567092944381090099307133986677044413293645672740969425079474852195745849852693608564593671493958909235349060302705849842255564558279094143561545906986331791638060072823077073935305191934143271635313986816444252692211743702518774442418084062220568646375877882876819186941313169649469189719756109007492769596287685457667088295459023046037466125672693144502337997182369575221897908498623983290585394803412967353126185015308754387883569058478290011258778862087006298320327908630266071634813686398209668115962160751175331094551168936135533690989169518761924490404398538747402439350212648668225109670720715038833083108366329222531458948148473144398766137263691647123120586820985459203652308169701527512855582381508332751773833716567423772445539838647689401198084822701846942624300953472548697930184658080610813231239684427099151491198207657717867826177415539745232025812901681684018507752559332030804733521345828026065004951205287404834035311592758684303850395927690724356889985826200589529061078650964577305280677002275689355127963430859078670354591913042232724052788971397022946186626303327449241545136339795172807454216751198214922682567274113300511519750823108980124706456569071522437227335104382128617296051859869817645579184047048737949943387310478688836405853878964503251638779109242352725936958528515236915857558594705892538509872863989838038143846631228378267762112099435858574913502075884625871997028614593295087214826486960500207780027965619431511345333149768751648460771913247493513541181783329575933683196088868873786476443874487536031554747761040390286975174206863389686663221469845303156080551605231983803188762007628017413992293921723415923022475763444331511111841464330728173640874941317210373419380640678906968283253541375059626870503458066051537432687968513469391482445454742040153409917181853296092618639570836378594016415752540998170127910919490479384163390468117422493708808163417249784559246319545100959789968295375409566631639348891977089700866120390393220006574802625154876588885383622757303570218819727003172475493223103285951724712894072329098055572900455524743302543998044223663017285383560255800777783003163109742516926919368449692068545207646739804108990636550470959420189332812314827351485049045111814421413114087803292480802940277146916880708777376079858714421115358884632204730139065131101517892855650168675017985960637514472302388109174100057900841098545672433332528247936838887547740018280565263055633530994102089155642639287036932975753948232593747373398402018929179655017123206832517035340696589707053249538084060342314034290534599006267350305949170921357594315332813561788933788007264365025907541707805782999314009172718071524164166262684044892354213423110873048455912651182599175812213630731243748234992249802832239814428560824687174303098368367134628560594202853919114893652093214248110079554997988469300132765544835801274080114699169170427517803458771301015844163007724055510047339348325121618639369755974914144981054442832266984743393035375274869882978358242698286683770788371970227925918168595149006072603347062024999643784773741960760846030684842543730146764592405710334176945195809044800256062957007162089201228406603357147046974000358721992728634461725411232054763058095216424923103562558429103360299742811476659783943082185986412876253608344356258578826023552601515807528278203378328063550948330801042871397677589186536764665520644342855819333151614070477680258017011267296790947233254531348091658270521795125067321711762146754299941287630139896189849479194123247000893659451330236652602109495869439988416565604334441891174317976640491676729108505784467484867187318185007607347858244823861911319712927594465551487030579238211004901139942096139766637335642843323919062959841525420269550244906025082103497750736366168994910819840078940642976478592171886873427402375477396629165628951280187166211560674859676822117871002316856422089116623483244169293143389836128252429771994513351789736368499649070749918954318449436289163637060024954239388184258973993638682537800320518420239251992452223579055778494781115579806437962316789507778135042916397723171375585005199463533990029569161374365910548202118806565015473260268977530466154810487051962325390063001124726970675607823077859733666752679195045585292993867887137409524001797846187524833451328294275598505363886409995589073925081266177065954634308138397868914963749185714763411797947535554558973980615884690836281741643565770319170372945988517505803710430488959498058125155478890867316036907403698255718632031800037707797221538082933544794882505280037170751016377661615687825762226763275323605951565134110009459170712029653188530878256933417144354151228737367371361189878638425492491745634969709857094226047704236028540963527754614176917070915587726843989348708415972978084148625647220182970928337170932251586501711722293304239008423209752774684654221204107010893656699850830223369728079753549165686557150594241945753468711136030695971265658980995527913811092848531085198970662511762859478604357415846489102170957103078786890820595864263993645721748213617811814268145846320190216855554723110879416714040676501117506192703257463773349894320617709172028315160043714115188584934521399366073038528370776647348275258587000505944303915341438025514708978156700143457368683901022577572035697650451019562100159704628708937845555786593817593611944774794779178135939107628527041962290662610681174356871067741808266629331525935804294015618409888379949325923802793023011473140348839673833952529004630329925831807783980201233682575634248499836874848461376982500384675557113592265265738005300784758304430487071109649578347747617332879819830570248080351853681167949679974267260802728259138370648524927529224230434258257606812216609457273957785841578419130371684877110158679939717937062588023831364279478641364147208264094119845074814733749061369870692737961432657789159307234396460666029797934386009953049387861612940562023858977810484722766491981747842115420382343293480361625957998053096900071101395548573630789568198211801153295366721340344020588869062386919695258904519936637822338468333269768601425677172451825091039674927101744563918376530755298965500447878234670497944510535664189584521711415805184295571263268137620628205411397703354564030843497908327612346103997973784289682770411514031509363226765958488567987163727327196018756289858893120941996992327107280972710970408322730076673300178793529461625054931964376899520021185370851704726450295086163431906975061577642222252008107659787913299510706011607730483372770976479862574269189437898768556696443421441083757512291576963037056389402728485288147896196801156058793435483156132969940551651736225558634163851946659376836518307784390782549447258824542116285118541803061321177665621791421713819436357390906592519239951725292935380603108943065920823824840363535153985816051610596142520753134565003744079382720406637284165039735174465675020137860210485326314219024385679602559503626328887038165987951312851988416326056433435986634710228347512162460221699235334386188789790079636510312155061201131190840107284553274382585169522709289290917422356533471801518138596310158852149703891057321494799385813096152330026632053927512067830608688886390709730421811471917508774006840741880180840330246637847986553321421823210043640491006547072480810060227932626623507292462729744032716899819177105922459267887718602204669603209984797020851493381386609620755412885455032553661652974203154314304478570272398641675263490894061914201916624552678045835070051126243005041205015474670219513514178620444521095046687461506347168381179383285620808482126334339167571772180078568873486120235420759166311327832340289929718410886029368714367290886709118130470465325037177487383889237615522469871356116812685143408574150709537088115737101548300335721707037309822958686635282580675975694817071075090059540165871678415347047647516660740277495058940478915044480861453805890833367098517284453115432101129658291262753445261232415459731687071418267699215884259063522334536652833245908178418108823489792874986845357190816721722720569533638104355706974606750500206380080762771398558068070049459395022727370420991275785137218270684273477400926213209287335947167198783801589590733303037315149563592767931346924526301808974425521897052858383348274571067479992282114342938297082340424581982268109242697937188699610078710532786518333168197505408012748715709893949748236743785894421368854483107808343275811765479454506033609243069718679369198025089810730211004701494162420854382440017046834740093438185533358990200766187475552163558621386613905189206052036705545912995447707322557544857251072544005781999293916140031131004516120462183851015319153427799370714583428828082538536440644976635063088744555173527826090334799787321023945533582544283532093259990117149282254257474263959565415174547306400482383629657964072903951030109709935409421370667737591738994899237140865590369765822332946969040345518673367843307737964624549362372251963658327629083045262459632301999587676979628171861264318278408953268799954497103082738834154206008265609765169996813711656273397676208549779022883086390303177187028343569019579097696677555702284192046548739201300159040388787321667551439443370724367716681448361587880289221060559133062564777341244929346593160175726504607215926535254307762813223244589226640653477545539560961350000367817999232071519725884226011493565067947826151404898789171953291139595026554371073852330841660237227009909989429832426912125774601335048722565664410711841145755858465404986094607998371623461034398477613286453245690629668440281764033667073048826029623627320028084270252396160832885781639878554216092503765962294915815433535923614986542656890391783735727655143083853529834517752484055084264155665495389382548232833437339273361629567910628850230108611712307519942793156130580752632677762965717437797423784541718265567940159097808631378274422020845332276789382793341474701652439367101660626486011060914268354703453221489834461962320470351558569407319982643867539065639686045934812186597649360218087845063947906198006619929314274984692402769116565690030936826297752991887862958324031621221210067789146788014917045584443636370104744234709685375838697939602215926575166501030471274571724127892677576038788753181189461278244380049925097287565218672932109321580757896655513842891222463714212144854641872592773021724216724511608322750011468019432759834206682112269268097951101166889538443972509051906056481343563701190140304753469585864091941641811110041236733594308585308459644847689355896410416128033637408277317196459416444729755312387855354420622419531381769437980327565794341089711696998591023692094759787843416466371255537166991461849638541481077295334232192367670857024144531412299217144313498351356078843154998504832446019463425378207071769450116476103891551497500846414081375380105732478108650855200040892491846156044920638985350541171027894014168722086954903476413644374901935102296259029984672021619852360869218595430279658830996449474221598381363827922007242055107403547896560993820019932042024018855737835126237890884871200743305622644619640662417415319620870225056395366418062090508188911171308448394630116526612814700579197265799249262548613706899035674071097781352823974965468656974495687327974349361073745203797892554348243952432124141346215412481943333110571642246240553104755384048212358413909317688885688798768463863174729863983821499099051008628555009334233474846294677482075678486165600105690182355300486610026932272501654809006527192675760908756299241626116568109584004904599823521723512397107393676073293242024331096666806640456730908315525041275873939971844098383580342669551874121518623541718781387777304261888706898312814582772175837926013886274837232423977434173699852437471162745018222326801674584890116170855390731317023624021491590686530683302949974395278536633749443450135630665821995527291041030975635649569265989621513668835783564639741855954460271349191186111458824449047863695715243085413696243624793667917940099891467703770956096091853699122612981990063373086093426935140897614234446989109336190851102642650749843431279793412164384116709931109255381544451546776491688003337842103965598669723897865388610853609417268198480611242382448162829520738941443500513115995778890230353416001780011563783231998677908934595809444032262844761278818885609407044704662125747173506088252562029202913061986439158694635566943101631113095216842241337049810361221635482499946567180461122256299667910423136973124988192200103650605697453157253693352150335509159831661947139170367043356439021921420883977043987910933574904283426067277586715541492689484059774895658912532226631337691925204703413073261525206923480857460391597029980375706327751538068696389302614136045793292576797714846301795431314662417058904452443287203462243873837384571461045031915986435693256412144089947571659695225927158917175733243608764934725144154540645548881857934515776953754783316303356513151072472587617315131830321839593332170577526881955208841014783746670564350069505904461811417660621495864217983944627240249685545157999972171511694829820664576079651257982272868660896476587596858576599622632807832594364209622476614758810048698748765454793600428924989319184946253711249008408873977179365096854372292964442460040377190765300810813598667505556111066761348723154125097452135711082180989628698923889859132693039844534694211612578159102448333709065842652466612887145180301821161455380083684852309739388267061429233868903386435572435861408020753484524683302305649718299326586927318231895642473164855757447754149076426394257156404906169602433265299930394202125288006863163711582968376126270755875507422739125852304198191569620451349871609460061592221202054536217786850538296555131751315183251871829389799842550751999349573106308964591184565876424631652299439725266197238124812836834246405170992715270078347481987406178494559454027879415847287857245605635537235083698441181494476086242029364490091275921370783246623862914734807425191051859841757881494797881961317183748613942956118066639724189761553473882150016938020657932211294008001446225178214168403943603096155997099222476129699727815427924139247955759772481518988667772611485576890395195312425877860846734306318711235738004094764822264726073525059387534426027537331499408433899618708554197840066864423061544761696889190309774925643645599098855301877885262960893576114343130103432451537550012161402626798758133110043348679117949411755089132569010041883901309951929788663298248523851959644552392568449203439724699206227949598467219869174180028526340877021059018280529762566987415320928693431832009384888080412318040334328258665695427383482628845104034621417965633872335737531334500301061709607548802200136092982889111834717748581663550955012163174771647204631034506893390765356595327167753205012510057420224086976126496948884145195958369922078941619266875152604011924452116625513467552575722636559372531262106133428871164096273842761190359774376673400920254566562809839094303697397534122695230857452361414824397042437954806818738842834695995941320189135470132308144642144088403541434114688250443669966502258658994285106451831801340172566049817367822440249260819731043472621293632642349061958195656620677094484622387747327636095628161302052457990170661615229644091956179247970351549633890458085175532128938802465147183973583103226824213660524644107404457812876030440939704980642433067906835926804599877721533544611858437735410846857705889645801931326018073155910822536581883061615691572808012493998801315505346254351152049915591347805361042407500503452497230983324358201752761965685068132971999712785138918987385647266351043949226822389363744969128394908621275532411491099771260914535964296195671514634854921460528804990280730889283312451078722058230185899629813856920632128181323703212132588892519324067907650915318438219353743972688983394757273280372372322847877835135420601518427793142009333895683350665052199007984454409231975123414822417196478445304847811913420348623462130375158814402801335449951057967526686031734055872990172069168144239654369993196369104529141463372613916134990689327729612574474272506494174585437693698530147669470281686840935510594175530545424071191948720298952419751505786087516639212006793205977948672791632741745034053420267572732843692851622794156702832252469008074054072377317396793166979614503882203769714225655277451102599273972187140766730961864365664064820327797221311988080243663467899647863901332786920089698435355188023593623132621724213616850450385554671633809240858805879167553343744263629799433388733807416522842432402944681031766492859299017905695813819616150698363781769221269792816271175575687261822504286779047222079040557016371017738020304851842339696070051863104845357037857266067035558381866171580654203576232186194428640249709873116293326100101414355333187305567981262316872545949800634512875814878045882995803905731800075966732771354192571344912007818961106734814276129463411758716468342359739595875998209416989850474510295437488312286158520003391846331933470621604751489389228415492263989431610037282799152238690025034444048321909756350148759314240605659941358763067590219851803452364767074109087991393179025325510427334629117996728115298194779670184454169609100403155016481711017305644461085114866643107249543087297434842160869146686841656892154015359099971986494488638950574585775893655670321034581604179499087417989001654323828515386899824663979580174456611972905536647570844051015901683224287408131353735845886708175166726364478208667299185169661180469895867174957066264355032439806744502190591972420195133096194618115157823997933723932850041956262230995926172571979887283269558176287919402510247696177802360574567512929631236425441110474870486632698400344470452286862731353146838973598418227536747134831479417954010851150504606390179411763100116338767379716034856841819584436837157334584418494477269141252121347159790033205358553636312142934804237929563264123636929894341724034256950402758897993401861280625091312705933085659491518734273559405053931058257868965318543548694688904776138482180158667843258590583853283354127935782743085074336006870676659591847639013415795127555990289145451302018318868194771496363038158214811650670754270871059599993967382685035351227908256807333408226029491447900701220354005759875740837416838222297556369617848966190830222449017640877816585713430150485742111383766693238037265607091134178285748462489439218936192272053350108410770489418245390970089964148370146025318967333004969612630670045752066757659596398656926143733904055930280584372273235861081849627360775126734581150450723536041764251756215176804719785811255559714497048449051235800127569044082896286945095197425733270845737760033176010905995441230568200441507081331365942608781458000674039212548261514833657797552653172931944582821847030730431723617460385710147584076798678024251477907089264178253509507342100325140664127152626878068487439306140753620636064549551197982001904300823713935154076509287708151038641838674488496912668148641724267297758040319380474362122998007296963996291883737324448041847813521368094819105352277639252233512459125647366467898941912143588480561172182108813447036081150491633441686939607971226250875551069557809656560336293336557842018990265157163405552988339816159168539060095763033509851987959175304409486378679366677561288252283043378180340171735559720996064056509875796331698600299991251806954202696072378291619206927763218597626015501651936808424363476893918593001960545109475810899713663534574699967892429315853698785152860193512127899664557813031802613314172719269623916766636014805023818280926405279880165893411157059676394671864328690432379826169529839911721541301374958675925582248645096076198917315875054047422556706057055763186171517852123306223744869755820316006709424894636126108736552274984957174754376657094540983381175407639826800245908962810520911238452397532849065715138881832075007121281052552676867396807647241740939728865321118182116113354530897455331656978315758748901047499490569455117546785674139840237394987602387439500502392042364942624676089574268801918451245009329686266872744691718118941458038331832290213755637464595813409481668528148408009670567629028153173913496438210365749672941785961912253132550731951258113068616689266810221961129559606109220774332448653322117671192410107685054718956029132709786781877102514676266383131129577071908397402607247315322690494011789605303620743057644866752278683489167024322947426756895804784073900043462240799524923743856872987531872078797939476388964800429952089945532940002422363392706530760795589484911751933983100592940096249283494355864400426338006132787717212555985656428013597215027081078831334906093871727381638498825869059091479659519223993361700521730126372465826295126798148296930138667358622110487536471536049208176262589300370417615916458226121345581763312683477433155021287503415126304678500903294455873550967011980747223103742640133268368169637677818254084979904812933104795692880284977300343222111386771175255357033477852332405707418738869509258977887197970689722988490661767731198643485369435859924736951687051004681911178512251190362109273270959449646382802939998377799177262527627984732288236555219291009012692362285706861822889185235756253873751939639287206354188664508854849234411077621567362472944655044479848139788687727569510024968553270062320859256754100735762304519258837978090999876417050032293101035754338552206370266402978798765690486547708949997179949412714446627446690813311355223691434645897771033570574105188425262126998276993113628322224492681320429403389018590627892308430525521039547391780326054404879978821447636511447875522098267519216163577932696991508410951031972738294823794122119569748534303162410682924091802571882340655811554609395765019314533166938879908612837830407466158150186727026611290542110249215124628045594125051975696444011238322501841918058932282559977689754628234789584397415069980918643640061960579861499471423904449820990372133599650052982155390473208540923140116469539036925135303660521384056732034146481045225954292347144045572587642859692120832023607662818417986984950654312648069302777352151693593447230789565800218362827744298864394807896180317948751422763983848522909088829793200608192442320228269212975803589717897198912217869861205093605303045745400116404730141891934892845583110411482870829732883630007052119689428086667764088289421360057053397285632346387192350479251693586752900868264542836099922971972166414232475364622540750069902374794142577061967603825895802705061932795394487452631161447748354822459426943672592818919575614780327417226721087959976512956725905803708253939175223074605460351671621247013335066029715209158886093434598811114293059685935180127342480158416700423683383435694231498267201894935418901878663716766318845509443447952329667948085440707714440810831510257995232623625685927326893899163248197326136036360925627720003396649739849651790720290110851239525298528636924124197558874801487966335227074202531019280160549716094227462056125946427762430988525896438512449789427326471974013249929114479533743349271030566782606015825471281732512524873134539163558279205071402124724280214710695629465305861956492093030910471410211060649195684232803589194612823362113780358417829649744912205176905055166814587002646757932432441387722537814880057027008606077051546743812933780726823787719156816393119703207126383838331810091836846501096396458074229589574857081567793160027519434857360903952198344929839246243589002906632390314937762369418065184310363898094847564690784752754224766713073777779028189891488324098526251166341324255003842945010591637927876111239077860955115119142896880369888479780084834591616505170774667023623744261625360867477270850642746386678314114040471239419781172901518596705110520160752968255408692813008398042707464520993592943725775860590239734925058803372621879942529851950822475466883658650101856680349852491140405320546432553572056514560121757259341822603674326530763616622821447905385116329513183494794397518359763668013443661226042738173019404547654828854691124082815000013572577319842423271976200304142783273770076754426511452866065306102329585229552703054817362277398672193522478253781006419250703539706236619008319060726170778691868900931729375648681605195685307899715368110814276569577588899298268001165752810855539757777630844070495879589094286354214512313604668318162112218341616215989574882252377014446383979329616568552752668420554193599617956849050314153752974406413746842043194704093749077443930833272802646879378394498633630621133835758743088310657469628290651225416770529802699661179485786473222721269122739000078208282661996267790888794129958821231087548600389835556264837464752428109652050491450428109977651513544946058856126107551690174991208143769149439997891743832035872384915326183745638862246016092582494779032935286881988571137591959377449474754492393022857575557630358524475238366357976566084994255648369800283711650812894622299747392983888227405875849729042785374761880131236889003915079590315830012218351078439928204002746777950786931793912717329665292636509932717862108171131164918309931313848568960057134833002864401366937153382918937076669190981153368160191760329912557493473487252148864818236745108567022980699498020443293086688911319874150360091343732013455725952101557981539958904054251205896304511615555072631816110815345855544451268928132321683572315714219609552375214371076929917216953971283867914891747447519311039270555990286249750312653804706297536500220327675050915802032172259800634233430076302728651767554621222269695220684509456920751693919346821004884649956184672657097512099041396079630469042301299581325391456111040283115517403474200535534982139067288191692465861434602428501404636299692421632130708835769666551580209488374268088201097789675890483497744016708225618152434534337705032179081322466551814628396575041217875409746965908634810741126592083195198742651756120451156761810767877913238107611187179703055681800579353996267820039237708439098426250773898837974914448081520924493718774975541767340424779578725919669567076050940921017623337979667204975436276294649352051047519096678301088305102586641632898306864838298704709368998995053619551526548649259854411907383149571419805878088204230785093894680013768043613650065428480328737381033200287267885793420608830331842368708325794227457785924277840919177300789684962589008990609482336608555450507928468772293128717491433519965691782244735310978226146446618016745837752408765228669469921896240312884358989050138331192235022990733632916655934086789664288185302524170451001241052020334577171329714877537379294191857084903108374121404741429404194157142163602242829859358980337955024312104323977620614917228725634396285735147551837222955040363300002908711128898681479969280400936304685016636268205024509624624402124333506926142112611341482960585462735752190857794158080207467621137214037313010104519735049881043263646794907969963456839440582879541657100143888342469355718315351183926844978191387435781853192341554289142427112660466733065708588464456482288198990521604334196432271110691284251570421115215790493230327368193445987857126557458985006892455246742924060154654836765009091370779097268481180779583859545672766873514013021701911228809230760432902794355953690020138846379844078037594293775029432714112372904704351095741009898370710871713383246650908188863473373327695729953882309827830027543872128625334323777249751831699876408904006106567061125198964508529573705543592054817925779470138149214783305017898813631099582904088703733554228115141535581460777484736729862420807568078633321876702573781896222729283785886649508793567937420298148686142105030492151604827673373332154814760437581135745661990863590235687829135937703909019233557078410374639667280611517307701701689738954616254860632113563339857401162814236589370527955988531117335913609591236083480667186196821993960226282649352219711315566966383518424113086360675157248813458469385259929467744231060026820121433231733626708447005558894473099678478165790691724229481989786722096624449193828507179679851154926105602932837496334270577414216136017907573317726012881715763826967560778900745555282232679228716353982122355416808828717968189817235331776794787600055778674987638570233582175155395324243411240275660963537437935621252175653550692763249137957513996115584629333402238924843978548079507954236287100501532426104745173852374255141779976239055211589990956393199636044378385877213922280557861478621651039853027654889703455565594466373249124409018195187523267905162149999669139012398399263770954563403160982449656757004398033463770433756215362918217938908650477037781008043062066832864793522343225497246928066557225763665604879676370489145069530980310768214047189968499427679213061603651323068325245417163978282347223911982140449195806742155878637322701520828640109671018175292264020767318865562347570182717648391656716144884636793287224583207231302852428863481554100583379403309067639712727298499891109001771187998687911530778045955922183533569842996703493864591902552627755164613841816356889190905197543022020581676400591967167121777593339994315180491869102042239640214524330865244300601002982728731051130433320805933026245502490591423830925554005426607411630590871830911773840634153001034400158265754585339171329928682361518546408544516106438484775584247347816778690343947635247237073912522974202394818846694985122842306675166999608146210672286880091425052683323246337120462450947853501698480391420385556008767533262951886903010379114661171066296666408812823568551153251098303267561874391044903477117765484154837709136891075917346624727136311515440295749892946684720314573125797153366819577723872428237455070307165983539620175590100477566615845121632739323169152412156887191495469284839855716764431413777577957094599072898298578116823303494827687643294896890846515636094878912370743621498939696202107171382806222327954219863136840444518121142035019618383092578371211438228109497054947375787526543101205874131790923309892019518222323703196883883203359467749511810797685028480170876740771915332319771321527475848706988344731603301281346140692684890897521940021996089784889804125272370023707386293721805145940494053931787559353889323207977299664930797822789973477437786760325928866661526910141156902969600174844242564974487733307595886436426564927200803746318697115052918760486362887601257556557388779543745312334556540708719245439595726265545625388451032044189287655132459773559699138048951046729957888641928175250673088497753931515383811709570599926749141894123096610680137719896268571614875119131725839532287159897515495675036401412434322407847642481947282061291455460958676464949361540549855640993284029897031963529811255675240512330284079042507792400949044576931841164032114988956401662973559106655396320500476407540363230659259253438903579063401897543115023294692308042722501519931644546825403453920637690982873752559282105402757090107772044231335991573973482671990454413073768905090819344990360884199727374518289343411967824505436588963102317133342688053216115164757371579368205630716292308281001770091723691738771454258768196662469775983840774168130981976374779243391576190386207830552782293885792525761646411484120614952547391228359451293307900830854163190605879919721950681697681202125515005525435694875117879470787654508522764417105670693179175927444103796202289731936908159587027876345543589136901761035712253807948502444953371657458194532471866140588308195222372278953267030009849715510294567720549021027366753822954755636020162298266409631823121642063201410424395693585450234189751930104236471502640318369200102588815832343954910547353133326126565182618951652867683404753517110260187456986602649843589776764014946296130245565622540432786654713949330536163206050997133905090120965237909948739944558690667534164733374637858094890885015575056227685164305460944533083380551306840135381416578260646096334542061098023676191953913167071270665438299497345868498134937457424368755449880594292321148687534422302198689599645867585969887357177564141780832698294507681353423914209308381569831195974310589899401470812349430643885580596939587006625445421926676785092759696364313332051342507618894973181365962908958106444013979853096243804259525355711476535709192043795532768218129145792546990967227935152095219153685213793813851682303603950163477015080397163704368221868297031261447554393045424556433473422966283585347860685615284514410364823239355718466232416346017534433262934888626854184122353015856114576057704617833579467170140287710777638176944994344857936054918569577778804873376554055975940483222874785529014076476620841253749661198887454304853917266956070105439119676160869309894473370304590749008440516576926699648405381429135232826275760379499983179294445344509713512309183179388541756322754133072460708782568357814622516977925564226632352356189051172935867506135844977683102880752697311215709215079241918355710290311216733941739697381834271055999802047187099538113115319336727004652918809015139810692208781054506674725299889579795720211312224750568254218155381106563314340640434467078677958510541686661896822221802355501110279923212877421707582890293933794501897600830063973751735668752032896526143081991420519104594077170541641529938748734652221870076738146089186258019656449716330660658798133586635297777459577097199313137726067933111548597563711345230411540271929740851455944097984162164256477118657560250108443493179704880940011445271775650059380099037256128610851330874204716306178248322051852878757751527293251283602881000872786029531675344112474158681257147526781017977532937497737532441639498877978964862857979044206867230505197786433418704895607367655726736589244834045655249371996177597853187563433827846986016482436798623891323632796849600770940733776859723861508225589738399287618891287507523158151582623770381347705676007365401730938704487692327377960773782829121601330683896470233837365144493163843240186680035858338796967393567869199661919110064527412929623379654156373873867963585152626737729336838008559387368057821434380902934741963780267477542021042020994218564791331824034792069642424175904011095338073138293651431759754094532502779337759927783984260171802365273467942185923023851843048251948518906005423711720491028764902453658643140842268959995855842270761031647270436093720069862901937414660930015951425070449154596864883635470457510851628818220850373325376797549471739657476254185118290416979902611670531528757142964149254722326646391348913591935814075199446847727494249975511574517603414159174759881525373579977630853202999450736069461014966230307977241132769993064123174705709487025038155108601673130891731613448460616093175621248731091326530266341725052258565985683852248089073801713289377725695750034485897887083230681632523266217991722623474834454965635138632202590556993488200545309745680433972518531840900632200541737607612753530425489908738624264064840497541120874272110534346163012985616314152565100852679190152287063690072416017235890334334361985436687454235707469287124974633544727286445450180386663187783171157370598987570808961973118370161887925458171191335805869935738834575613435115010777264205868029992258391695549357697070916142229012171278378718231997160666215900981811610892216528116321712116477867776663196348612705400412143004723392357695568954915783352717382350223553394879599104405493548457078190658186948661593060933012822311073813122773554693028451716063296012325289815577565175776353410936484253837629105647094533728793666626602540100731818893848746768300093707896210868143237429982714661071625441503770088652367426433435789078293885412309630523156512244306277477635094001178432361288340344715125172133793925902015787617540402531119424677017059187194646030940629891121848788307328990515364999433682374086498235058358835285555825885562773133663839988596272837588013814022518050662095751596263872090411523396180872291309305379291476776334812965857906202806266413524680251643938291944134941091695830403347905699286704137482135524590274813071809490915390808466594077121128827913210745207241036082531025917152129716543152970532962686269700796304105977840532129046380708299279293195048692717520624126022913241196672895640767792810943997567711028217960899178293323041122589173096550428535129995719650120727625713752826023360206527377479325475102106212567115147228301356712404694819971171998485842373139152056988828030541751153825984148425978790833326056980968923786623050714982112162606277881392251306522388755905130636028835210940950831767045411925077776636567499053721136240437070832581036148707910060099899540950815150725785016473742637089877938642314909951659459552910095221343283878724506610665368959097480519970572461999576757617597918287472157798646123436038061252551464265074736879976789682070363374042425310988779223112815808974231745898747866240187814811804012243785055334320918789679584638803499335344826263688818005884692810835457559447285729437228665769047760775682852815932870979936122652730025760368854205252764139786254171354319725822184078609698903104193880584727985899914399645349420175491451126416337228002265407620699407031513711825813740644566859482758603248123508778594490938593684230420039835394855106442966680336587130620959766196869335063888770242675305277314628459745894595215271364533966671416113524647364125831136592577560507740842375220866694608641784524323517610250470170786079647700309083419870109105721342154987665249972531266017914776976396162354834892270031707964876072940462934894498898207528510565683658158785460465487401678784534593963409351630165690072975873092452997191851894626142846943681128876188100600594154085851184340910564164148265509982696824280727096988379262232320068708867979344246178398117080650060872410512878241021899826963462010332002796421360593868922360034273308263800479421551723138689125734542843900360559699583305539991142185926746368109078299132497486272049805493663760539765360053148432811121117453060511023088731377176198096436636037213161132616947216672779987141458276418524106911545879033698599050682600390375959627308933126580306105606664167881577052511965122878200190353728281835974352976720824794367648465094903580061226046024601841578614339727944706955703092316716264157816192852324637871880745866113938044604032421370937747058501510905661924432578895302531898393095062158448995488270985629287329545442351079719309476317537584826030185291261488689585753501853935884980146831162924769257890411170868460726673299489104889686655832756917091822518541274111274580641757525080262087239584125415885921965100165048433335300718113772760382093052709807103321074617364773182927798500655659123256604428337667825250835572324765360922932078491330440528859764829893287788867561087377288650736242077329943739064457195616725426651973933912695487365886842625749188044253891357221795789189905191984742479905848256230179377269028672333282529402738074100144049467487373009199949874214860637721143080913237759876185579101835638996478586512655080919613133826772665895977554008840441597298310482660420979970110085200931856916835531689158066916431432496773769563280161778241824382264360088983650552899677739694062777408363626170641873871085051675172977914614828504557748293497130618959389667349263179099453654181540138787916553803745365362958206490356189367932616231812862846082238557409278389431420165728091030018646943521692312822422929199842695703471369878435962821593713972238016663982203702711482000768533925425043204676374306854000606258696946470387593812813946533118283083786536858626683773543618099958396832663345567364774089288520045120748868524086837754542995432439274230915242026188623374509938398947883106522406029313332070522250281874644664842687527956184555240839843807308192834256846391813368534299236064343674880670502373452687486471414443918875352180295046374186743460119333558470375448887723638931415726775636886834793848961426011941571949771916887583186336539934132237593102103071009879001795643087450077033291395902216469535897341463166029744402973491329381958683642868056208632893624304345611483025308517096627143704186168877885106394568291409815033808645842075546531478350858965453959897838663051030563267903690322789416281262263930184563551216220462389288130438607888255357137530387175013948217266888166592948356747667883345723265604753924891444474983316078675674396544434428562404227919370476857402896000609104938687900717365160698343471364932434897183402720279124449869545838627197320661348986858932902289266442480241428180486142659244739989608262843093483019161531942027908301000041651754857265308403878492533003589438016144344049039708090593548447183007578646229666160479591220460739416768434137761871243610932820671424064353695688564903303221774230719531732929409514615777699095127876003180887754410236740986024519485025396652984647234262936900513048338401076425931193133433713701123860968321846787178832410952900332162961436948868862744735418372601242542365461524800723208561693660696583857974578633076522278120314049759115680827814391458539581516310327551770637315309790834165938496559382785335323415484573484812127617156177582005904490073900933920477359710406910189543884728919250833501128892634708132614180775901476517187312860929780586892307317937826833850667242788555647105980611220747450614338364247012392005005620775951345269012608283432778456050872331832317270786693752173263779571531563850205790451226931151144737695779343921183668664622968834642676462031948646865968680559592184707672731607230989882467799003724155612989297948942817813944543974760855106394668889666427707171817892389593525946275489636929731806054630338742224610399833186996296076069265913101935467269275891286520857127678681344296354532086471095699485192805610857503108529280409550673174708259033900040501679856720409027173694929364304880350928270180415008438135473619699479846380184968520212523103706108963185796639095504490357770742354364417529130045768073364808028129438818937818275277055258059783167289168273724191684498137996946819505284817508698300428941253465889923972699945538530684010084149181968871373243959017643167606064734772757016486198540111128885039024024959574402866408603382396314733403447938432172170895368587761827888996377339993569411302368492792379236740962769045907951977750235864231377784266779084111775354288864824254221791173207866484733531032271359466254035641932599187210203352200150325687188319926490231874943765200969503012861951666371085834921460640656427080826905102220468599000037817292746558677823072852831246683891999061744893745698944737971178558463774925904063845349534709694181505442673633444134941125313882208564327983680145796199918805624961932531446135934132091799436301352002466767905557015964577372527671685321777478970660061799125209587884248248704586342618520248639958654493440883447178034557974669722329740973103843630768929282667163165460790395468789841562209974048078584468174805899443504521101481216240857719749516906958024859564126874544299960200374324199329366877072478285944343228045050500543250995298210183288628319334983275010671075518232376864541794642365115042649838846180533323499518841501697043090722650132677255813063429844794212848822816581902499910638594069220020641246607047225879965819846337616706671129525498078873134332533258852268386525471353158896003347207039513351275249954022444638839869339539694331160264932090835508311478707800884770886616929951231494519488183964554220249150137053074700901289724818525019429931871445191294412189458658142593474972641265587925361670747249972117103287912392766097241801285054007687581729988330142378611562578634907139099014363282434657377162396969199990913510643386465043855801698029366124893170407064444843613896008472397223070589513029396601671114190192299853806621993112155043995216748436137419359641151567621748904430424948987972099517897538650105818647360899617602144336299462577398381905537165040494900196781662771914139516640086676759273923265569748202764371822325138108705772149476875808394411165720151831214736951596433683228125309517563728548186171567543026262185618792426300625762283047500758596560015691482558307032825902978731348939258692144163952623076567081569120961353110639694147315605908397178649205457364527399168173901200540308244822200427134325243512547955669226285101241477733636452636021086461822174653659439641484880026241020119544017569071239197620043510291329179923704050250294941024211726758765261757944404078769282838851445143557911202234941814831179644212649643674070572127794793959325636105988495282706140727094884724212152070939640663916907500084839430105156919510922451397276892957524409662911417937432682070375745997732637703871890434864508914367207311524667065728124516987429869404940329344964954873727201317867129178835521269955960456698583598962441223478610008593659681174704733517329529735068318138242830413069119322002330669550278173853903657142255976900239308008365428446758399716615144844324575128689285800244954807060431474328840114836025014277672665950100870661488555035913604624822652002382065367988298316923612647832427670748811629811397355263481818314102883261030290926846742785500240813158912307030327277042864103870366916214507718432167565722743406532132364556031693077380024081439174699977877353074345465274065867572929873520163278207559835194725504188042401278565238203776096235035953269160949169944821449161248504406617840553678402229500265653017137648320580679613894983881023340668963122423323429481580784992236955018080428323474121460936551878210168982435653529489329907931723247901138981555022048215736719862757374927566978050236728418488142281936507836178679886697823491674565060803905858865311878150194247744049196817681213030611580113543133243542822476114527735975960013653585513360968964387529758830513391994554337037085188411702303926687972998074275672237696347350471475018627692691546504654676068412066805372445713486990150030804219078547698450504310841821056793378802986412904902232302613922131488643380728526799750015619883403975778923610447487715535459341377859763046730459513648655731078859358623015865601873709546875090755836443549541050078911619401393687911100195841700214487795309372693210270528240469637547505192704661879746648360909042327160196922932968530867365775667185566520836766010299556496123965199415146288079732040110642308150131706092243687669388372052310986512674369727675558472357740098557336236301444644130196433323199039543514959866097315337067291710333387276035446592052086569958758285745274688658017448411388672005885688630451528891709632499001947938135996319205773648423384269739438289038155813943295654453323634618669168070308913596760159443098389980732902178093770674414101118515417807427540894072707749327230923232741270617073089239628911161093016962558569578284650597727187526895016829785860486242573037418370314704132904011480162793238217900187053907178907402872284536218233690095465737042356379706331292900405712744461449964730991494198313287025496164746179745842497849529276704818639919518879645021622262956449563282748101150085862586210786150096659083430901422138018657228924779882357002231802147101468991537219743260932762551150456688029677539900592242034250670408971141149544936130750403162555636468907116201166954458766688678507151274368626163119314350089858632400204454166351655348278808895830031210283944782923038943191248498400286080520973833724326837202109797760213970424794068148468609998950103780016394022076900679333244158776836859053055023889582039051128204388625122061162287884168378890379814870986531394318622211002541303018341569365731265916042447592106667080119398303713915597015129181998384350980156857189240500625918716282444154528576302810982322353867818408210452703478534819046410285282974346603039454339840932131023535850515998848046938407692612335672812518490547000747073050045789503170445886275202648442650219437507268104570698871367823076631537830755281037873300221679665858031137859130493533310263569175921415632535214419229991479607209114683039332210175917296116834758430086678429988065338790251006772205554384941230105929448626621808428668496399777339756865314952191594768704905100239255182887823729498401406463330829304494757810243929471082792314491812370245810929828257352762256372463789131669489651051014834556136589037603186413475439411326755282760719128044385770713877321302573402871075911961667476633817597211154318930946963702615196822047590758953697756854719909364433418718321788044983922740881439571145255134689293715972235757328910324563506407945994266843657372705542146759307875590159630214637585692611373505837443946245336190516168739406057983693269329486168788753403509483748283975502480645444768102931616553200490914967188564715573045405590464313585122200078642710471377918104762396633585316922579575400043175962416827775807755967345863108712729719814980946403067442266791114117553712329338145422974081216624232978419999805798690714313110449253152984753407685414586186720237332246796884174536032228503339098085041777574562457801913870038207882799192166370923476434111220306747481847170465735633774765632503039821003153625801684927494678217507021513045644541230730034067763708119362840588893130366369333138170150420784761642552662478396484382959806298107023756549719171969956800680240621817479671122389112093180861138646302028027583023077493164574051870737398495835272499999249832263797470763783021795529633297255653532886449743538401827132769617931201643972857526222210030450866156244960337534201209411341132605704569788211160301664905276789202956517183044301987465483931867895873534320399714742328958163187926856383149872147520527536238994635718697713607758570433914167404562620402951678973651642190516716596920857720050428777109255246833223667469608931930342232510607288781163484006656686711074858665672795597771682022618830994532898095857088531114028096192309657544645573712030277258505957882085738774641143947781479546712615464717186861634435314200571953076004836936394882740898201359562478752140561090254621048313232704014340096800678960505432633560082009078951151705770516248488243060082208317561291048528674479770695770562207179500231008096037252691391829070146452744177772574463317737608023204745665497798047895692396486896834118574480489956860998919688052743860270376707376843577081851809205149825293989668089540829904913828618775043199161968865986368127407161230884862603629508908559037316794112175209468070596793608245426426570046538230685117157119413808164318177271057136079235680757309779030636763602191669554272736673154445593423822757803560167420958997369766891047180748590968252243265467266907128251426337409109150658154050991946175700525631324172163191717212602751754078046822256245825642975629405783293564646196788953243328253698200095897532347969293050491858263077745955964444335385680177321918053741894940954603347853507613144233891680490511843969696196729279892105101918870659560026160811519261494964690976565122994938198594581013369647905294834588638726740599720292341685879215655751861644077528816641874557407216111317409229294013091202679224388071400805082072420667519722742705309292977706814878211846700573407348907457999196772679788618884738402508165229894526686392153489718092256008714004151982719953859172297079660231263734191458731750281689482909691525409941255686131311596428266299539999105341675029454981916995586840380833622295086847803067201068389396489635049973364092175286050530710906668938643088919961936888859310321391746501155537566780897328884050947390648783411016311386520456287367033909164701200120713574767455766025625669652450717061646138730284566360273661090779463166705310129850144229383843729650356288382723559480457603654915555242764526986348338418952066815092144753916641895379846514931585259367714353123982354174318895993640396476233458841892190431303103545592453188157900514857484306025882311290712485564754114388682637965972253671979394939624493504223012908322960403089045913967519014346946764997125604036938675006944051224744925696719844804254004533626709653405610259108946547813892387413732475021805711531354265483286029627075825006364052021407014516302569648726141546892131220030602026675040673403814296172451774010793789169418940320625422428471985684271774156815457679414002424272772428610167153831195945285328361183972676500546398777462126570968546247372226911600634036787048103637509700767633585187221659255347070883524427761272671064646851222643243848922151072792260930499506198962917507589065674683161355713459614657197196749088946570453373189434169355927200857709287629299882985513454415015837033625144659908359730443355714166923829527598530679550785764374839287438880880586633638386753641092628100195571456575347852707202343275650078348341264356920470152373532543125147983361274295764258204526004031010008579435680963908523445890901628415533255898491569362415206040591918279608267714409638041400390490068944501752613617879737798685024829949492791785085483751433365680525474120788323286501842080262547892823042700716408218660395560012985498810620182465617970902626960648064864096682415675341191068743263536165608115516098427122458218261596337725946593156746381154454763906971176704063245702764476809353389989162735024563989634012933622146531545459531682737909255092063108384483426962371607312555147938312328885158185699134017031127477378782153159251067714457033923301951838106242052445176804896491995877134710332985562919058676203580937471163816555922170795485195099360631849341934171680209548967755228604443912016875217889554414947057111472901815112968598734770101278350500766425352702332023589949808742830950540168099100484345926233420977796029764482218544119550868746920086290583032154798982260618206930387044278717930064000429242707353616873742230909024606062030224718958607832907089424284644915543686510656176375778638277921552531487791804612697777664164008577840784383302427262311542218088869235857964788779684299751993622097165863923713187594873182593471451054322168071462562711857870373483453277599910116858053003021532882888298411748176792841434012584763477175739558688938862852011667548637675870104366731975367089631199706299397898200457421344491328790953133933279273431920032635208992434545934797221803468102037243552964389028683390695334947435329088094479095346998464242473499490674130450194580665114022147010687997843299612390452983976647141192558322946450104051529132916051459062482659274266207778279224007850387838129591788744292529982637608287461378846333738368397839749199791408909343637343497844730986215545940317908344651745537307733773065540997802105376736956922218460680173112220093289470773966647163451823695371443047283851346680249047322932882387965701924082382374618874461996330835183482283887905223731238393292974735743276090173614379175460856338694059912723862137347665091005164782647853814639445402906907815280352873212536768030329252658855169789197766797737482481485305385435090434825499920040179420014974529682301905889966795833804017372626372082647193270304127327437135468206027399926430292215557304504225828383664036963910167061705498258101376292301685064931338769583347479832408101715398455536654939005836556863457817192548094476997644284870889308985966091827332387594055144763749954682720348182105823910562941287578479426658203512007175460897636090445960517516984492541778865421356558013990656847848621468846955851598539931664483132906306872173076644929079230415212283548448799465287314726973076097880219605308587992934978099845086278924510475158238322734212902525662740320015406592192956251507068105128604775221405006977585536989189716158073509297016554099176358893508131421433958636104139876864034017336287668212385150256783160530951375586713628619735041962174779932964644152584085576115919871290718300400505748240601969965305628191039645676369134311709533473133862711270204510954760589377673054767278080361105938559211147208429942762033360087471699576227972666745869470976193049825213595547616706363024912344886360519818291960388428235432788137478823494260157822785444194677503108341584185242474514277535129527314578077029349101389774420673632504632958162475462958627676869300335418107693026956530569162559048164806363704099396010582793995838279450970627896965619779653525636339439753438319727070375068592896353129409944771500781534230640263528849696881650043937880947607705070962145527551659094817806047946115411483904840693540345097760952689205072272484924970876725045035440572733640222453021719011685626541353644656981517235525823156082988921792103271712041226079793774545184559823620493000037345010045517249499252765146183244202797379419477487450527422998374995597079537086427585476683331909847139018273777664126834476121981785079216897634458478365552227682082587825314648746394931588623331456500577433890551483888438858387439616315588401990067788184068299227442977990879890125375468595117995549560503450022685476004535799910178468419640053428332010295290467087448533939226380303707546345190446262809820506535769391686320253863608172931334642024468591254038035105055986064402055199970712302335619322647146256438654083455109051586441733879499466751373842990260590877759330421699788406519655049785969371638690567127295420460134599277406852062257906000171838524235199200307388478491043598462130633226610812683316485098616881236469849582300836244899878880552837633469171668844786634631079872394866117789850637829359117291620951631801165440620788999499997907279414556960417674008049249941452049659264561464780369100573603371245428097427975395463919851126448105574718059566727051278332318743775048986954681241697385540307070983916665401130109529242111796994878173962979320603498643761344936391204683856092626718782715561216833906345054734968012573893482658848584310481729462539227736239200843468799369050886112476116774722503597230568033872641122315430830586772136046634430073377723206791960464540346095453217959161588526350224681902174995872666526676620452960189450329575124460598076998988292780720275457942489453211015740506444588105386213712124759115813738543222009768470679454515834570998333174050148580864088063196573433938987396543567630991920686899036109722971547640900020795590212236759769723404238021133366566728682909119723840827690420137668920260856022602839237320428338972087304031331347675266364931843885951897315010198364594153780172589231558448357747725790539487919951882512510610500118395541787097534496213142420518583554337438412537704160150401930595657359199175586171033981307889983086648770916135565226721673374251876277283532721218922799739594851514773089398314981863149952958413388188395854255418185070217765346732549490229478569816699335354642661429902245199226197658213542522661252388609178159951085456097866932159112671305417388702279806070439235154421644872339043859410687527027561159211518785491150837111309276157025160805564517949297017994881055874634534780069468182488982137420251831288947265680939797964516118346943283873334927504884701254593198425677414391971882184836903595597999030696380164425438535108813613225282612138005866768196046900516252219890908210454548138198147448445982542534965489706768620763992070691148376793060572206767283461195325706697408357173434162582153782276622851386129276878870038711064423168031131230210021562327638043548124584574200073670688102336021329548318000510672587732471060105825330805938155445646190298482708252040447387149377499617429575062159046028041674938572029149300651751777558771911633421225501640970605073169554694259251727976295901469227119979857308564802995953265846648651224114210689740097025721160441159092487659555242476326947716034899264880647471276732148449976218352537576058873510481928565356784871491122179328378605710223030299734563298836591902317710611484584103865182640657367897700289061293484809846126103393085398527786574372768163904721181146015212235264040244751772789009211295767736369305506136079967548533037223415802687142758160620238759757170369478705546814913047513127105225941767737346372661727405313456233421711698164092220335413922104024094279936618759464041714840613327873850461753392723847397352276865549608680990025392010414571716631048020633852597427151185003071658308628417871424478191698444179909254249089398440091288728826088005433496964806454903443243560331107012199650257306899151503335415079935058763766726171907335524582175459753345193222749086350589265939882306489145174469584715123586376270537520703806446974345673159567732212365474504967660651909755129540812666208476593683314570702757940937316421834730327165407007539001662470170391560617259633446726645179159476213760539463782949027658962251390977311142137815882987958220585891055680224469752028842092241766151776749329124038573348985983199910928674253701557483646255856436129657007432164171533586883114200270934255773501735839382902134257057960975780722197968406231708037639304408781426862737827146095747708051352325729178554147175959753735427210179763653043718369116262700432937321067209926075658692346307762252612761152360478872615841918949103153741658291527774721627494122272036958863026398972855156983673524017934484449165634504039732583874771163553120364971308057882949506471830927242403756482302144007348793262179521843860988004621894744236102595876810908917164473267776292031334333979528080827516445906309117840280051578482194410360050693186309880418752209329260679664831583092785195720739275564754314214219124159377257522713703988407876984854661569168869955693750936385942028765885920468003683840749814658387173876474061456969374175272405232159684085078961842124137299122386407041939346140963595967403840028311341502945166446601771363268229931837712692917418066496462847529481989206360315007586174127912801135843592717520048815713923832517483658775040246040195778789902765250034732055901030537828413999443730462386210490031201183184357432643691453322803531864798505069571189834442083891559218693677077799440478955728148131565668803416802002683139336834326135926039250230450094695885727548070775286628145399205370674435689777118527484392337889300207865764722525405093747103258477143890814044680209319192841289084663002622006382901073731373989114401257175224736300425212462540977836225444120000929983600783158029741048270128744955779906570967215182629519645459673122571228378582247188172083562775291679509345230799761627465147941405157981662318995408256149429383374200078257944007877355776074089201543821597184598716001384723259506279920740911340776366777631242437504212979001100121501300892554708216130511087465381220961341320852394164582441930597172977787122447607866255071540018801715725654470372503995442514229689905003896999894316028575362433808067707483279781255633151119562546147802260249845146112276392702410950664461230910594676886345039707080355040723369883819575977463997831719491445274193600784774709050111362475073051792947296504162196390188380820118474783805203744278255214655592608551503884229139835043373323766368005198608295745965410930168765407689022999238890561935884995359428912444756353172786601984828443782191299615653707896614861343196095444098870708659047189416434651759165362079473079374235926495702247512120062709325912946111206622086015511000333919720783422140343848964553224091537188086084959751479426028224803273433622309208596508099555047261125174089824058435122791407677707910973581115696488541940839328672277266256424890451701969019066671161174252848344536221664163104641191949559337699902615415722675948556100270027177169530959939859574637037397150030227601265901985135064858716263911545266466693889569228460887231730266896055060423232507579362594683613645276508647279754897621198266119187622198116731301234680557477296416960173519221024199893534140301984911236044784470208806074796184911473761432140255100746884721972805667284198739779933449248614618376344671417983840743467430496329212032496442128365134672201310413224001135877555925050408529205215831626611659195448372033501417181301380464332334382843703142669138097542622991821303464130337707770447562187172833706248150822941326062934606272070307741022343825022539608001071118201356325307575132407884181670838086429346869266181084762796207490786042684136345123206438110011163747724445630161195972483385508898249946418402708136827902627439029267747704571237924862145418461518560690597207444658010016663879020130025302297508128263916557252940025615230901166999816813040323237290624116269184885863819480670415705847258612623107927423972010306240814346178120253191043621762012579958861751356447936903141397253156694613292241757508074629363339828903111081458056115582328228794307301322013956787212925342944060838118551955037891528249238419656378508234896587814062220026184676459360304077054689838853848975695790767957124902336700062561118519879622078405937176504808575266514470949612350221057864358731277038671410575949925613870629459443044102499083099161122458043365257101816871490012447797541994742848112135351516367475494108502702057069408751279916464571814155614690163919072902393846516165052087071098392893109129641744876520464848612777791191311627808721122024677544706812681895547389662388976345899884975394984655110033113762204984658005906748280822610688050824778019718577890694809971837866688005996080321577612625904164867158550293501528743803647897600097341666749728706329216016429690273563983561177116042490788131815237352483805202366735052090264754771520824990228270241357543617051416262991902441295544184682812211066743252325106757604441956555691945125172358251511742662401434503369878875001882966353546754587069363127007584406558968600202536673511836718097588609742354457958624436277212459449503252224063327616981876823124973434826215422939411722547743051552179939290221707469823673775681228226942977501716397507544198826613307864385320993959425168261640699425223086402325391380894637543143768149281812807967399314274644199311492736070517404741596001179850779025489140445073342999401397249778370593357317468316021192560606117452249618214012196197092755813334943371928946802847714111313041743331537072231667332759867993599575076720201894885900752596428736684616248767216786276340996899969555817064152496204079536539463676995106562658379429913120511413834671423401627343907126835626443593459646812374269253861289156086694199754045892332629927490305322425043534456998398285565358154496055179219909212717234963588919132589015653486121233684045994720544862424783440452598236600361004570863799439788164375992820407329472017413403967782273818699745432696322008876283946145992575864418135540587787012950393471832242660450122977436894423534020983857637584197121014147526619580465495264511044345534500165252158547169195928690860520893336794111762769474408439541671117114672944019773408765626236204517335412215504457950684978959274627131197778164094822645486509947972650566698527247889057212757825611526923742575722502622776318580654383693126549260517497370057918166453467615650844363010716874281919748511545917167074014403435585386154992634666090956284263194647792609721542740138779183914488103535036967904003579008970175770125294188049703806205531466812913500386729049279224071182926218783243046828789197508896014586342318115164938407272656119008281459658222625932791492789391894562783697600935435294536067449225628664923919372729211233903246729200204169140258626449270504283507714005635661232163620304408497349785759260487418268104098880643571749233855418629483017348555496249275590292266134575619460393203882098190663102787513054472220301047926403519247432993896427230521130623709689986168116444523735386305252048804941067958307813184822874072845186806952612043605110376744533454799926523633369197986598136976320123915148526504311641722142259374707178786487250688215213974829167733505224195848330699064109724849846167226811787710608937018023130676859919694921970752393123744162616974210049665974954283213719075390630922382095732776273422337028896521846126536912693599830992884018436233344862386180893327607673958179662265590057305176630610688109913852069966070686925162481323459238237295358131833531315199835105174907234493080299989667305191227134315579027478924689415698270232308749411571189321207889807525431358625074765657944452292125649642617584253137764252250743284711195750475105142225595941079579076471129124512054898518466553412471319493136860988631737827459926817032284682695364581173190209401851353809123262737878568555293128982141344723907183928123390666348436646000314584705454604272300421856830454061260130859379979378961107634109445234682233290611267189640122533840024895867947950701406203371312174936277418011982359987082008462275461055441075244772431432030762280441245774670061772651662794303217764645707042916321508673330549269275373636414863358783212899012041838509549004491694825895148458647315680450487061114995207081521719901819410732863006239575407099430596164810343116613650716580975108203567240657785595248731748986766476730902980029839052621824414930676693381764528244773564749438150243870422929852674672271463836273756436166060280159840230281456603177237868287930215920938220046672237466912796974785817926763078982844211283506182619450984503310352008055274128132123045672135007699663550240756185507385204185760622247670109849996347240399716603439000319561079906101180360026575997647951441031428053154692180006788964702600327186523921300685464995486202643551925226702234114693259884033523050168675857087742111541169107233336647236164475902682721261433020388697305688008559962567552059068193632086783280878144675170778003611070871416529810783088536253706352432017362209274645713597960700762121718649822458652191280594287413885188967605615246752584496194647739522654506640600390386054169718097655765566096910745466853767212084931226703862910601013966071672995437993940395786142383768619960063817598654089086691994825694402616836833426565551586786122781328029780234601912989755767544282863767876652821073843814962495863498186597967190713415407803561878964423540667406055280142413086198985814459317421187716786336993442053807529054658025930460344140526491921255801184131304575207453062096837781430869702212708954793474895789685007049003928619792371892948633370846654758750862194317293376019521858285255956958479163085730718310940826813314717115690185785740776690660335779066970562024547237737323283805151220864614434691378600085582188156872948135793923396030263402625321664269895260462868942372286931009842295861303436723520073894939997900517335385266966089963452106520577048318461754559080522415237447923916998047121505886399605069799023879582534571656997217230867777160500553177234263379138176303656679393056120714846372050328803583432776620843184177588754519082410477919429656124106145637979998540058214667259540058415874883287614190152571019665089760216684279257845776622710582803183808978381482228329764940926326785034340233640619397385189617701109819967514194733086445863839650495193974153246355979042012514378847053972627900019140688339497347848018268150452895413123910991557732232014153093380625561762910920275765925564007092821156196352894962836987897388193341567142955737323971604644049723921311350910908682315782395297526199380410905174830341198653171598472398684131520167573799414098131642437102284307513965181665136795548204782742769495670417077061256251786063159885337199430595521090280518046696590923800253861624309684131906408047916540585625174637061039770754454524446985575733576358647265701345669728822264582504445922804726882235956616427921721506279378637375667773587359699073286957440394514194763846729184114971550087505470012070354184475074654979225029741738590696908818930086916646004886926724520123223546856533668824141956698791143628957933670204448708873233797531061307756873590328342971803371904430171148217135988959558613910415325927352453841045310100488502680816883399486039611651189110160610651726538179622925358489880009774881582296112180768363934546553949204897908018958542171318288238886917526087540509436601440685082745951261208698837031014777596141246019385732673613190695511976779109024416908399290339937809887973888489422868973093638131890948125588838394598737435476250654751566208692428508259786087533938121409648188058120430334669008564733263260466616410740330521465064861736483226662332496840444610283950731875768520694693875019494382883487303739317069581477522201826683666706993822372245407825806543373015511222899807549442212805052760782651717935798719448836396596130100567917104362221755461552671305699209348096491708144667679000744252137477520714788012569604813598513586597046713308487786712020028923858590150769371432897765682973891944328326322282624005848334349203644311754869497695613773563617969657967914182842118603858099900470780832399867230364010758662639181011091553200799156683667395763816755673797972772009647794575617684431152871795251377086482983145329629717881431891644292234787088453372041012433674453780950906492497895457840557483613479850306427667375938376507903534659171888237236107015020597535581626785535258358631274736377385547952659749526021095506905219475370012349120481204579188130227498516652176373249357940896444301215388154155220834198274158011559633669445829193502531826029580714296088284080955412790644960683816022659132634504513364178600212294285912743380616461003857779396692113553772339940256045519219616462905838202644926649645805221738983476223140762508209106384276231499909735117964648503541550725629537515259249515009280110116919668465649447340296501043083667735361118919021380936123677806630313560881219830998029100364665566566041055801811136836077226520826642847799897348166942081191764408001179080676297596484148688300220191339612430508727644861642692777460153360766714428868875756675957542154014804327838787082333902970254168719083767065965024512258240992360827401374405257739186067858253880071112316085667461266184146550237783153936359576919490178367114762797156423958233723176684104455867444145636744820171302012604066849316058232921303915337541633128327394114915037102492688547210029596637872707938968979824626405911599292126291557998292469030627192503554411217663149907542699675857551556101093805223590668106522876415007833807656266158680759616293284086676671860905638209879610893091611560469514003028405717942086540945436185191891297111734691345434970801081421827420778244600686813249527989890453031572618179627215161211509868792065218479016646170308780782719232450486846765883107867158062477725415293035016599928959156910600067792774759225570443599953761954856438569508880664040634399288649645116854464019213856535385563915645563354537417204842506426917272792216373136045967612753812936835281476552617208706802703459962661918879256531969796100540891112200492444288211792554860610445009653277517278738435027745766031573408995867764511808481709561924971065214262736155888192951085766521701418595062820944400039115577907500936611620062841402496548169340341653686289446706143271061503906622535953835408663135253546255044669835577635381974659109695544273473334848226150992073577343284474837109099863694498379480152762322296176591145913070855982928064623761882229387118468350415882767385485715649406989334518860278732234244411915049489958584194764124492193161808009707991502971738825833262361654771442586870977660520495051665733421930180218236124285427806801889958681031156302618249822288148400050753008391910550301288162729858763898272990519342337307121859950954350953930082689052046663520744766477362547028183822951265839630307083687727867113668531986532182601865164169616564368180767838420647818406716447033417019494050193992975847407746012007156709213416988961038084692972899247654249745873086759922095960094235181647447881058526059050536516022358032787855760463806177818568637555370517583915908702894399066458555443143387816717121934221975939557257091951844695690848961886729447037140677010652911733107122160793536928817565452027987075239071805170898885439043531942384660252536482861616973517104489829659251648446963802514197845949779741372483031807071721319300843277366592887428208221472811610666862022302505161452800331592398250166835519458865841547526805904003560985245556268973326396259187590799777687436079526199190782768007949969617110518187028618548765858063095902354117681991588495855025821139045244691640655639591676550833749086615260789028428562884149668129024690235329500125595764232991196512898027128630786289221602667470173253175615169619424585806645762597048359487396369511774382578097560278933930134387044132982646333704797464760448826979695496376289987066232871362935597039795018966496057861132442105997038085199977999696630669064727354208597204388037068444227671044102346933495702061196372924611869576781478837666083816739724185457130583073590983464940713114415497059274294687849167310357336700660017240675186235313200923499354590371183208189835201022161648187571545269131959345782478658584205332173201777959890738793807860590691567993949516268559230383560185817964597627347012773837241034898767217587604214017448617128596855448157902922973857758420226588799037425028816966840481422423737563572495912775727746093177008308576574935389259870110781895257503063775595620779171876221908650126441379826431092573104633735314083786851108788774569770489956396737266958636156037342954997157938774471532711820636117652453999751511247590534983969800761786636025772741248469430170138143659563525651390498187386988294592360751554120483145665549426540840014561391807991939151692289288916689279504816358487670076766612912675536036085920921954358786782092433012729045950827656005161113509010432541542208849492840470229472254521125476333313434494267751827593803375124841683615709990175574935939277749433001834410456326692221150028942537427848207866827208076534925143484220957562237371796739794793172279038931950324734979777817920422025853438405270012081898636639698173776595063600465382636076860403563142775270497351937320390962735288321207617379175894502335468719455011203378021699660665893715316738551110538127910784526442108027882988901474572954858125624441154621484610379688592430857010674752085318255775344860603157037349854216869475252657487130315683572085731254369208700436340740628100699674998987576922020615040368288776378315051049891776066497422902493232615966722467371569373259842729734411991778714761870568281696520871088403277667944106111387339130262227435529425979376616018170824923903587294708957357375960588664978853058980092760358240982594729999343859329991851714937168625001473160844979755364768600240770469336401046117039561488191584586509069445057465778133824630510152381020619860285707472063744111839817464194628801503274194355936248619443060329118293706414216280383592373470903351244125699710985728123597822524168943337551005121695480646291667193127640610197464835380096044176225398869110026192782409091494071800293915967496340271252411064037295826069065409938783590560532621775552857148905632991218090400390066131691605369491457614648657700799774238759831432565096377787977867773735940947698820243246423937465389622910300619280875688475036280132582960240581359282147641133115033952171548563830271528390432392487831322963780377318851382996068415639271244397106800296559434749373268229896057890515908765707805030835115976490712218126183981845952612803494895689949153458081267196119059946003574889025759060383711119358011223208832784835616591682099994678880616611485000583600172130168616464983980491143178494416058377217470603295028350660744441787312627755557004626807957627949353942143640666296714729356897913163992562087244233289289711702725815435750095703887100007884187126968877567775263620342328759977909729776338651504559502064269907138656576397886857917712868802656422851526342441189039740970254496999808074308722020760412400447432872856667159059441515608989359988555674954121007120396862981624901214964468517168838950059706289472103050904998099765475896557557054910272525775062082489481440067557539987744498054716437355589254321863332177298107237789234295422053537462694501172791462339357108527723803803215946945883498295766387276635772088917059889252427793495423752522951046561220133352723206290175667148989086214325503549071660574099988116989818267231316371366166964903361854485286491139797061721839565760564719681523386658184960047861666685619206410875633240023034850690651557454904501765136300616106366663563823930104468956300478310514568134488949514244896424051184316654294858737816545788168642270180100031325247413692343431965915357376387156452249588491427441461624617695511628443631807802350561406069881775885554641126729618158632644274275063466299377028535352675945964671796093473757330139099124496148505751515958609339854061202860131696164058282145353196811581481231994343837135495805200649991957194657315714434281441783945074353833264957052071256635318724868863891842682663481450408817287182429398090080064237000011241250496277770852771100844004801167857124862352004845465673928525215874675148499920738157379001524835855457604962893733050726442670398987635495656036381977298563202600328070082424357031710222271018181626688020235272216810466758306809054998538661399336374219866518059941518846917372415129200353236656694191718732284722389989410206672293362665735344248229953470244111579382641860357545551711466696901341296689103809098752717165075193682554385944096513516743035546138920570670556026005927179977506571486377289968642592716061625025057433644724300633898827584460781461782189299336582853389299445486030591088465489855834179810242687720191143825698936638769770846158367618394330236849970377931929097888433199130907208111129522567890458660397230962505617548117967510006208220187322924306252793978691612046687050434291431021024845477071542632889553672254466450647632018058555940190394780584191743872153022272039537727015381226924908759218533693987843741897541673337145241649308653594200564025670338616086338134850812409445156945004174173000225268801481884044805546260613543258988631214620192059197080241282587825222925311939424908496414326105531747983986312831183875138082194012889097176307507055437514189585556688817177784960669574973927968426213107756058476121893733280497703272324031522062762976565973154362405366042107333307037331927546959174584401016011572230671655897383167793299302879587039994730043626637139474084132645979269010853971244472274839113375719671646022347036335756623056647263773312534123196636428424034515246871560603757653980962433568125574138101177298844030630392504637547034482656267444201177092762114753912571799801068843268524427085906662414330414348333494776916398221059117758013313282802788284227541792622363939044349746831549041657510775640337211809270147811857519990104516999216352103967204435792713287950714140907860088692166428775952999649405019862905438565913909214971129872458065542705338527353353354544349590450674345873742605942588853193047917433334310933582814726238435532019617243604794901140849535882493314366324591155210253369145889772361260960447027653233700732491476865987432416137685271291420959479789684345001468091153989410037480635104250022294394446350143374781408754655511510543679205589948165685408226193016830714843917009379225800060906126732098981602933544738125954578048187056370534107509879295083557737656686024115108231986887515166643326444195193136443649446133812762106085468439316401427298118540238066211186838703119607980134569447955220641629579950104855312188988699207639832300187483512937421299878350902492190453739163547329563324691967500762797705353167978236037449765538738745393224335900858046229402520819902382968944763625500992002836289882618637510098696718152190998039697559203314459163121281840114143961801111346401876397683216498186689019479112196098456781886965332324936647730228804869347137985245565618563649005054254935145378739938385314147851545318524110186643330214383258329275885596642729586735437034121891658158273412545996346029306775324395177266735267935603699403256118805664127074664144370398251506231117620598999533151110001693501730980064804066836098053101727126042931601268285054180874176422442424906463558511913603552663221193661914098427632888154273492933432881150383743916222578443271750836329596797094295580216430489249217043762360750842420732489595954087369310754128292619793744619824004606553835704703899221344249146902852498504203367346318406825704718217519796801390395526359167056416359458336823421773623395637785366677817038629970622777219658499207221895767754377760225023810318019127745637442398996638964377342184474475932035367168103250270894455586196559286162369100715520428745402599012342337809532951636223516474885463561783220278958760230890298737570552219044621718632952960292547880874259826227661776591815755915264690824951866418501968172099597589915193666945535850570762752981495677449362255123153907011615676903397492251227330751198312604056752627544848588954505228731815295736337499840437688424472738697237456829189768852822465070913900567788436417853201217914718286555978005996648016609355034853625022334119302730104673881866278203958668823116853289265232524613808483891342800108987592099434439344924646819347143837439428808967065567408476424039880940535431213040137393995914038846023836321152416346801392777137099163173932513877798011811459008591724685450672942266159005869187235744623871182422925829059904997878475392144207112042381787447780781106684074096948797898679077235001073138068152093866991719061502260512273914675359997756436054091969467481218472438243870362201228165985961141050908465584111186889933228497861801601042854142958666682251813211071049331126023021095131912166523086509838594799174493255374052376990205130404259693366916424004325209470665606113115366912331270007880688753750774890976335001887585236323701922935688921119815164751974646315534534783202451422352000527577833411292416856288306296183297777571053175264435279967656996413712406049217981169024436164501147352733460293703655503641059025796989631009057309825060908809757665575200397498392611722495360137544129959188440800520793448290037805345755748214167660886006533912057707601900238246508151518661764991208941125358202951794598903885702634034403374722852276944798297447261159531986136888985312779063837413042351198183042907411087939700403614157529547697058937352765888486190167788600637404705324013436009442111216503701675469185898387642571021893599818209017066845340874684663225605742449199978204304039087058476020710960365969164356542141570222241284051926403163237765248764689772428971037096820049185805239211153961117200824010851664001920300626088039381266169760166494486180105839277225900321730234155065501822836110050848662096225608675782417677372057843430871396345165652425545529752076388758225803565049367084520354067270611972679937045906304584722601751581958201748984990561639344912602693442805619998150092314935689110261207937470637778458143521602047129296541311050934923734551408742472277045420564643643234859852198254441601256049335823976764875982242882358551451887505168607845313721055030016074696518446609825435617934619901178958189899249484612889375732716501604629296317205259218282541919850126396690741188445029695170603291290305884085942345805932829815447934128695481432843653665157840184033559826331927184795668546340512234487445667976725927782248426719312132674956685701105604811766437425227963578366156501669688208063076684828666602289376285460924244768046027195277682712299908457351320532545731509370904642507254376338006979024264199754414273281678478776958698241586366695285497100709433190845228564156999973310944910547854501799257048076548771137533782332138683230355306671328736331881402165941023614876127157427324121629101440775736071182700692420532121752897069695430225482743760705623610024164333250269134828940518177498363894142429017891134680691046774729997068149607652060409312444902746127023371792505156744157029711223841184816348385382713075842013908609959177522953613885840067539278552522090855039482661615075845881366623516844243288938798729429089331149473108987743219531283949376662809205385744989589969255221622444996166804121020638737393305196428465545766445823227006677388236568902038750031448075919002140987464102802043364021321158860350899337360461822639282898867039832181131167016045882223363643515129520749909950315914237882011309877311169848582825303434662994666121092404894667892988489542564791849140506192731576300186276271679971449037179018221255256139682796721462288076383022181034965986493606285378000498085811439668211474162173134810533477892856045361251036993165084680157512336924367497076425963314507874596215096806277898273803429880247837329591642741395122274768432787981550118836745250403564799223296323224010733010306543762955058261094367479205066960677333142209858169326493560331861656297694263110717922535488843979773547977983232828170788537787101771659830160209817508807375277540823163633580928918308424534432572430118730792065454829606647080558983638390229779856594592836909832999435701530847810218941828169954344302092136947557928659601051726733001581384598419032691401751723485343023622500527988807014427490091483713624663176909788839666131391474192642239162962853445141684177922709603866965086295193691593799345209352211163882770937895581948930047625636134467928232127803290199912496822734274501649542132836635285291952029139676315417946950261535279119043615672461537029796163391743282086505599939659180438298194467497032221487853496416333647769343467494394383165730646826025362825715403620590397823909077158342884480077127854395633767378546434797760827553479742324598283606245800991728279047354421485221666995245007907899575063067196424657857028519265280794688807236656521289769066521547499025558232129970981645999647376484901562124283430296960996259157698431645156409923903980347176621417029564568715479103214234970834763408119449531775469933166154107495276201969919877214019345059869184426497077669130636902381581647216419174409927648532181930203760413083086914417166002494243307416974537002918900221268203513566984860776208163310307006003967673337833723648360051708115563357139187540594123299696794061367633443659540958670837526003572977899041173888343086997633913944881119725043910392436026251182977511559334375868263515108517703095275235252720595448596687253548079920783810663897755924625578379507485058876919344804834969613849523262781181320518195635978599741657165969121867049767837439533678082531852572563826260892458767234417899940951802573531389910681394664115827741193627178906146644994345043745578441070214468150975697392564165684070576579347689387665415718692207822448296640542577857847379975667094180042227931874491395258927293928559161500772334222760106249516453510460510799946075731855538968927359270420679990757863105825444411081879187306324517808594314934085528612929278977527536586102486158554263083648303898064506216977854176563241309036019146930460024512978800427985552137415430936537082913040167613888580984990343831042040431169423836061579909305202212267281813754169421195172416574810085946283020747276872734450030721120017731392215866095471494835607338696128207314804525163366866709654389851447884998170684700440211096684476674115931781140701052568496989725174741726189551291716100211743424502456039431302249323064839617864002998836285009388960559574366726244117072300386838841419420131215101395026008419804994900447067453844098458957955012421130072185468732095372252064663902397897516622897906276795861106959848634424714673002429323085007373343194904388964842311653988018607145401245435903015513548705758804484115353712139703587467992060099646741169314920167123364272528008460600690949901431954663257126000429265521451411133346686232017686755779595696580844562147400413401405159273047690389169686447531760536715465301584002915988928566799752014938492216391040610287177529024310941415915541140738527439164322255882424426465334227274888858487823815949330785471700017533991787872876229894059408009458412929602444171003289552034669362524490250053464003332389256998857844478799545237841780794487494181623509450762165079921145177783385311838684562677980200537133477654373243160210768788238031945648458525586310049991526103634470931026694051864626721743527298815034081526057492816055851862108444888646085457828239443690802854376636874183662152095068023449630891659194492968807122766627253131251337373845068151072219587865837421928345783154815413730678544253076004316149887153224031512266210540697039375814527089507876671875862327654348501015631037384963679691790588772484981384959322209386339607363087874954294887755704250947977008490342110596026318825925429388199204332563327513941018353286864881963732349362501747521814816876590918255297196373695337435446974317148363215562271997354882700922100814814697672275793579291544232185395375777180572205820761091825868299442836413913198818119964383861480893908660031056495157318558105581057730567369523603979271142835865004011287760721975688155582296391642221535126579812021541368908500719487043330685395096719366165301061043612657457993096408773846700053085629157023061620782121178165626171833304928257169380342868680933987295337765557702037496431952267242925840109161711337914966340364985091450669850095830833294083015858642966600095750139148806523341966336910871637793232705391708797629883954657295949681618003581007044584221176827020264250367940274705246245689960501764287870403283917162352139097754689944723705466076227559739706697370451699056746464031775930258546525761746317767077666914610936791377647301344843792674253990842853741601828282004079423332981597761818157658352967756974245006456609706175443211202103168845821730701126899437737253185606424383841574684580119415037861023748896462554671545053789045555383685978873493492941935184069507149809838175137730359191951164890923608851819519191047825151239717236701628709173333108084649436128046629606323535596469671465292233902489153962608879599554925209045358317235017711835663126141074565099535229389422942511347027364659687255581712113316033543895201158010157597084095572988531547830122428140370210544331535152154218721203284020172557953602454767587785829416419567062583037352586555715208758622036048710812283017435329833930917556938863350409248335947031935824813040602750463955452205318193675019197014092888054895711841878554860257176842569645916512042555939870300619773396634975136225989018413055671869013765732565761941030627945631475715811038650539718807732003351127786447169496181601273860636595614945602972035350539419368864457286609784836890881128634644216118980522016213732189781075379109434274832349621313988888162908667446243212807135991147417084867986249975446369391740239579895099801430827044837962842103570807591096538317833426468786440634325793140319785806546044545584234246797681021375878137381523523556513227807212867731215944014631361458651798764867800332795526264355957689291325944294228067521334004231423935472838479420954176586841910621712972025062703542673956804755027012601500010177065498874918633076992651177192460135028602989702432828958286097616296023918675071613605792325813271832724568700500581452601563880468783074617807712664092822099339152735216043989058872995298459172695173668429723145755038375621334750746537017950818050738369502505187540914587907685858621640120437718814314536582695372457707947485559833934504263191738426993305897468937005314081829786825202199343149269262375008499997773400514899400438540620791511204757993126963969160426344565910273821104368829372292393320356942760466437733899847230132062913656079039553196736729735445127469387110556686981598213682009629644911160016629811592668234975006035641748502430017207791100145925119744570525684113320947194025916756425884207256703215482950322682613235725848934664463697489435261581120376132310502354998740798745530679857173616785707284199766369726100257658748420886171377750189487362224151659790441133122618200077601828673826279861971123673917174024549792599827438852627474732249420812807508698952709916182380353660028632094657662620611724957907049408295616226440637063658597502107717809056412219738497188594723366215286093559816955008636915214602896518510975944413933399539092408121105072092824540415101159655306187506469554220618948856031748061280325366270479991522698312406377060061883690052186094443166499946439978452052826775284563126367621073973123515537740185671212839726951281860107260770528248741750389894280026580087114388994018575546177711687652394599727274227436615306874725234579472255822211148811574101049166345270612389852640343275208974469807100255727749735789673098480877840453199514022837314976842609207905771352426593230569818970858000990751841004156096676774907487241256426535991176301522387356616139633018685468652957576139635031007808520776862004394497119775310016341280888110373277990622921920172833017611296666654214064368282149914122983500668128103701294375046478261038422155513553941867689331757216164844316364758516554826577526288201548016106788912660428865394095229000590103051307276367733702115173266627458187790926425535950926793991820558107848865398346346060063329955458746823213768018731516811241155955351407440484230880143166213220116482346211341055085524856308373102846079038208235940220486504543609587896325237089504139990290167976259680312104575849364273853364581693245677550715924918479622224283526625148238067794330202528537641485813893971640815852561444214332684176379148060486603353179126091153785556410637146681148325635355076411785588530359883531070081917516521186286645411455503038397360911567272120744729717842758838726129235871080884115506511196142813639026159346250730248439744527945882884135480025510251417043959427053396675822674376059800990356977654780754520610280766714900984088480051410365972809938905422288736283143991004409148625936304636011800922337785758960456245031401840244799122933922327187632065503031443760526622209272441283767247568597946641895666167594513341084026468092262390172920968243848855041479378043907694964243801538399865243795532464033662265290465629425204106554557380504555786037305632301531288668451424330627958496277996860312173301481929817890184703268898190893407470760724906983128118580466933209204130150971038650185097817452197352794602513699590610659111495296800864452556874302944092347106199886023885719121350026407796085631895216791456588969826594401823582587764472926438452330651321321157349175343263838086847018805695363356603718373726319833968900014738153364477569447185653834588542425867840916050190149357191495273272268883332933100785795113587303985110948606858378413883812394574787152564572494155349399305948342964366572145657107051545941796685584428552596153418256011025267205764198080875900560821476623696838871690807688349508379143636058033838165854746453350027151415626198850605674855354171159044448845097587258786537218231840967379757040969765548219194179188768439934751199240415750424794348326703648443866122097729442043985795361430572580789076767768132874602788972138683103166595850374805755449709730752314506218499455297761144073281170546077028744211388452785055656115372768395913115803401291454557953810137862842596651932941177137269545362453999279722898495723228026787992569233259239078113733567273221526633182310918824549408462580736585160108371664551569762042289696396723861024706521904138605422485312605991253652620945931266190587589377552245788212013515923181560431464372093202410623077607759163789688183828552374350062954760954832664117614481317967912175408119525750287549306395551804618993606766081677114471825746588084765681451035113370119436769264680987554186772763896441717011733754325859599031410898803589508956165175045929511375923818504176908516705993173969344849187924862543350876124405539016002056689838765845941026725456990759984290891333943513208532916525164623708353235364600342517224493376047276412480542675118579921147824121737425801754824171299400231972088774838459487163075768220466364577029960046076438402675966326918987589175597018728118964724605229268110982803581485711847892591007315171169748994324950748193266693434425804459111248208169318002691395155348945717955002556593630052294001412804485230131918838613376650148556746974248104410025150161552138227772444529769132111435197833888222771539308297048500857006053328618562895838707438820350971890237910086523865140482846030843431687042838615688314984295101941161138580632835287807548266105635260163012625719007272979983692373531349853291283770819710784237595011486229327743486210204353143203660276559116495446174545271937188409155223285087986632710010570312208628505060102666492479781539767334804657273635877758379483641540516385685846502525055397780028015611942373396498757750026510921736880200221153069675815025099296676918508889145365187105545010123425975411440596369545241358004708750362784350607696352100695993420523664209740375138772601256770866224971685783788745685699017460223971381298172280558751676139182344746288462939628516714980583355350164116249245584341132465211561015478177800438066853255182474736288252884379488547683155549445946351534073200801411188076350911268449039774258351064680357082095860374006223812525300337331593524559972231446117778658024731726003235291218493446566409257940174622608262506917433787994302101850624089489704765462481843065564227983911387819908158694905762315522190770442033121563724594614402465916118440344792515039581047780699566954537197315721663816684348635808440638376965943787392883342860890189229716737530398074996744111321824796700325101299620280645643222722689755400364015436560009700364615551585470534837779239465575045499512788586004675326891247647063911411391342824021812506308423844357578284979047408551419876517894259563382797022144871626681615924027166506404126851184929400717971377890024616747613569268512610558089858985414398606268026123124784534932231276479923676613309134787832925622823740586042683205093287623593525122741305543087547731302396667994392060812554568891106677187971802607591048213224117786598454355176132902086779216619321382034414470660059299131592765386122887930532272227660717749926610649974023345575682569753122200274391855167012851028019924104904367331744752433660294455432884602436857502997224652809066499191567817579852166217135044752170311875058688789666405562647019319109835193885636590027807633025022752102662286133568369320346930415101221547099395983057476977416716318055117302236277891227911572869612663621331289553696107487380799384285714896957401145136431870777515468448847128224963546286240938506601665238274570939372815551135621689039826446445439203369634885364304266365025125371340067132616468524357826108409120385090845790465398309880730448526191444858450456781879137878974150331776500343275439860346768129836531816212479691281201097516406168303456594371332143396502818044802456996651481879497206751399042300183886575311220799049875059989567697789572472880377218873811942184630458638335734842128035584004936361168873128940406592484659187874331496050432423529835397461017423861939585518335919746215746045914141588818633839353036508485165237944405323928228217505707410752997726552849110390242411698797713360474348152492480679374228857079186215720181757545012586046963335390940041365192755429369102328147730026124942649873752273657442704279634841731871696298918411778823426695906851792961233400806784798345113489167633924252584033742891715227230742427549533815271092461448923247215360092545199834966312090270724759205198017889445413785707333504298088888699781614714674337508842431267567816579549731097923674676171891573251003879745018225295323267252700265119245129154300858400623188055003833343164603243286705035735143608315914104973422358713596352658863474832513859322858161752236769446199888895374116644188106417627810908277999226518893580448606994056253043742877546670919985015529735096898417889723213066966495541557059136575142716964647425635968438475839428878990137879450848576274096679150922567077778277964388174606936577501379059738905895461691290184660048935314357035279084918383264068791938240270576439710422829589054581401579720779487234546394809052931082442606497705828397879619769144282862293258923254567593351348314305265245304055334593588275257186130097121584735072176926777163721000426509701062381983969113525230262830035827321198844800946856246052090674677556564572703623194115373437024516173688463243881471641499059766795136284944874782068979012899524113748772007560481905158808974682643726732034292893100533295242823542631088619813173469187629636036816912053452663788972488608093740248131301449051587146223756409033356534508710267691570915513879907998812530752087325187911074655772417264349717019645427228084285989102340156538647700050405023110754459180160323448314953283587035380521591482977269225373580918096238838328723474664544651281634410097786471498355963879392032408692224229924558917267773671942418513775978458849106098908423838401814415563848794291555935486865677556412552802466076946336385163198845274940037335455791992820451021404524088549555891645228287685269175808072768366821827853499997146025450132622573359026071324869243495978066521582207815135212141921729706119679832575283372832046670845138911028212858064145786823901085669053533217811067213400253648049742354347695148248004849966381276766982338204638642725588309268427691661339424047350964831584865894613192076676210505760771767197297460475819483392804843547715548959122167269098530171329713546530060718099116459370298671596406144029086192675174922724148400889017103627091243273798611622019106926706419662497964501495046396143031089072899093909905428229422514886806763660824721985709471396305996876433703629347577411284278974468032415520191729364727637760894023350411151338279303762881684718326904267221140817529961910628997729924957212754662918636245761122321956928429037556955973023276664563889422053170605247311910915285241072026086417625041510931327283857592801647113229759549761806062963889020716077307958992358380407786026124988448774925271305841960818225461418219536927615130156761087413446871187665406207427630945135245186253277970099799679637770216938830950096260786371361301667932675404337060245028759286413369018605022613463401557810808520883420734279753749340714567409859237734119280593900885675077501269204687476268371987655650789731012741078509116812550554175922367229559451427704002704124775990428179852171300262664509155619187292457772727119858184926317728382745492747047591249620644735612289970246324559080675564041173809014419311285779125725676387906533268694469649277467619521099379586128638545789582798887996142964172743948738450376978960104145353579680419483579493385177307369500567635830732259058779135796885877662225713804202678537900386100292554587993090677649821202596227285721800027412864224842333990015817639559518114147786730017823556662664168284517071097919647236900630334829201588227603496548778104705668065120597136351475611018981055646406698692995706013384226745225963572225586624175510284839214752023679393964004004331140523413416055458465507145014502421995027857139421440343827575221237621553407953747593407021669523414625447971527399532925307034400384309682407718207445060032888028071636239675477688633142820684353174364117050743722317195952251865273923461067185746626879096731678253204644417491620100409362128339995675809568689588636240301545489434472587778821172100468604728274664128412897356727908373090908843491606952162876572055517366007075031418045215930333912271822180540664440400396633624218707337266694749127384023708640649744061868884861821207840358729976551625453012167826029943350681727840151890893636618765556617691626810205532366096089797366822964791761904922692773207043336357207836692988973870678014440806426656640377649443927230054476712945923416778178933280525800152038257489357953816466400319311030533965508903774916463034811336532066335271414041079127865154851108206726291887317213409291317499848422340474627679072197038895141248529184907656110300970462519553563300427691389835785127995225095983796262731981426335471284027588841831859869858982456197297044937532765678233444370880823083896258413491208354844232571904814491310485843231878533850317934047827108753353639837756963501375934208805580327745014237501075586424797141266302093470407470565574313594139327929200081731689795430800992238425639281887086381976546856928667675743356490519177499417076829277726046927297947107706287332884202947834791067004513520831579540977101528823144551677161586435431553391058467788330094275255066640065898658361771210499169185338845409709766813837699834504705827195855947511817522588389893596897539361810980340500256308751090920752365582203758903846925216036199052611937343708994209914372513031413847990522989300440777536206089168930027531917041171913959968037338768461767331217480294243178811640767453915633448858203890827430980052390858598342682554837866015618254323532752040486591927433892823380008348397360503594380432903497070525167087460416411997049915676777174455477642243901319090313719905624078266563963328383260818698774332731611700712353679726991237380394100696412983232687408893527963573919210405129539820571728520667398328039192809900369733936527255909455438440606196725499589180928879607196207602068638213929781231823727123235520253656315897741723203937833449731077894377735445169353215076145825234670513117887556592585563046889808234116319207519115604848809748968459637119648130495508631649830751549303341026581810982265727557725091323875335409497402940153952859202578586539941413754617232449890972307280121288898516348489139700449006224621169306238087128013408351099720695795056350394249948704376485834934897912117132856031520914354158236669593439496560904028789107054434797194189279931196519054276298236606875075894460602854387239156538681806460561884074325919081592406998625532308183810025767047094028238664574131826927196635091988274038137675737141915989089746424344069154183087923580074462972229574564507157225369381466451787326548177732016009459210011217639758626089059374802335674961509505630472489372183972433607827365426520093828183242565307642959129457905969543087974157612467151667539675688951174464070188848025551050871200192688296295827420453043385671638961706691591943657588763036716938198740936523621685744838613496886162623301580930494454647414243053594475810624179542270399520122224931913439198451547531105193663813155741428079275752205072412660187844953447256886529729833334683080523621921427469389723785637183126233093095319883959978628577714340620562734046954916384036257559038093492353613477638558506160392276187063539281368112613643997328261702757942289799730390369562365086093342091811493503570319899901916617570833328289389681634881708652661159450782459632506073864911638779352443033935836620596233489009904883288974270528167367427963733440911782443054681528903606078823376225895189143098771539758510506051014239051865304111395873705143781729209126898526245101561982880117368165335923514040712861341749893965533497900687540660885504401648033246813604016948542992148491747418381352954055332288662193180486119911762070607422565924642084885143485970981427753914632771133903614161895993203843800131730350229426385719271012115555374040681949660644876276793075006175327761894997047698168473189761850010550751009689290583100961051036082328318772411371511786412448076842051873849705989266789980561404362410297089419433449203399718170639927403317457795074348963359411590486146123118642905350400237425691723206203953954738450173317348726922649041254697124252709544902236989963773775219921113718055787892783243412549192679124358209952709500647286765646936736026351490256613746295515115482223135884497188934318164982228306080224333631576514854714626043299105153552832110045281849265107422768067556355029725885394963155894498974834364898816113612438766824339771217348865087172888340960635800175444970847429985246554843130296319285126560634310470077057680491042354822703582061279400040642523413632987710220534757668450505834079406416373769731052759338107607610244936920957044225331395065645239698043765166308882036333377033369485751120593009347915111899806220156045706153164516024917340109682430599995320308236277713532102591594856331833864008177096776412738367787800219231800706908231690688898773321083002009266030995477689026964019471004447216317007717696823890323820417856567937786201308436570116197632732200828255570170518464479422970680173479190355970821615456293485554923038693458741378943688613618035123061722644852118000099331697313798659553058003687089674524771524009071548675722375897147691389667671194565145468794878348410158952352340733596327835342326041068620726646200660796662375275874531132186433907440540974874711474753214365303000890301826769361397935937914200253943117800299334453246935168515323848094046157884800256691839664689907062546025301497358260989790404650525409730807487073416963716036424639559596539028896406497294481915691351222066946170604254425638671935241301334899061997631527399362401027687939351188027947902473815370490236474498716355548871363958213734523352132590150736849666943396703189619540962365358313157859668029329115945570830577202286649055203087854733705784690358718482239755917856248206125117877092497979552030854657810893143135715700114295113588126716145017344913434342927324443811148240628575006683488276038712466095977739559524374269401408190349344974187378734170206789746155699018227530306175242754305858164621720005324967503453673526642728976247941994397974002882498998703255292813242221392928351369204332981816364934477068144603942232672050291176772792486741680380976907035609244006499850405310467512045158382045015022338482383405777990008611623038682403146108310745820584848025808565926036993096811479748086861837514561021939139628369983815688470363238913983111104306022624382080541653669387168270328998690681390094437587643276803040572055899604105647864786281949956353427936224323417588563924796959751848789300672704991880908986227618893691461298886616078202127968059335704630788818203702532518682769064454745047839515384646620480427240403140799291373002914325906438927957248923853607931601751834466105376039546469211205806562377533563941546824095693539395579779372080073541605890440424166410944689566221981968141766986662589140176667592184081294938697169822037736792877209089226633175247070398552019525783488119880886828370278905509310867288839601012210744721088147861256040679478326603838092674647607071480005519212544000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
86000! 255683585455387635189806404536346424090246982855600458385919657725065356740742389638405680844574384757239700188065026701932716962432323732854374412041519902041307791517070916774427509056228450767806982639094909542524656244253375514015485510242888066180672627128354492934683570059675731146210494216290590833251810242941655109718032001190224888394688473178334358441342547123681316057990369215716082788068477328927175241504614051616203565518419385070688374596015044778252189039343978436761220587662254063334945548639294593573993911116001908101381472475339903288201612474572443194422787308591424657928600866130013489534751149559087909720698020743033924304296189354993628533446658727822081167054440486419860538062829698681814289104488744411210707977378005102994571667409164234203106426408483473966931008440319216964097842614206893694026428685618352464641356381626759321067830546813723287387828511328769466319578938895673610844099739622346010929136473604103243640852033550065975353206817190806329404680772483062815126257391596361942216470618189272042960388358090100125640058366158151369831966720526049453897336174984046606426102821557955489764951048766391656204830330372613930438470249949439542576209074254589940514356176574294429213248702872725759885405805640330624139252370065539771337112325839188894984421652267590308452228155294265563901840150591691728194512740971629594530294231107010528771030629503704928145911950269228394414509309652838057825616122328644149835460444664774641883493218157009339331374110885680441536755866163975678531700194751650530775737135855987999229970217620898763082720499970458169731125779360441012393207077640841908056101128823767750237616043180134399190350725534842169109698844202673760758204394733163068142226715144332660573094042469130025895829459133044365808566042030394009035106089055257566183122620788407519087029930889974905367560937362820838053573088491279421417290601335729843355570206677049582282636911814079663067165350065310678257640366234980578795439221724103479204416684801882537828342056987302099717779455059970649002945978988013742734984915124605332840275975718283530216864374913140007635448807705681766127267728331342464252800338506797913972677115975334602817155765989408671014656472864020032362553587149039387369593668112639145995821910221401002791958150687685858674609565281776915431811671171317041169392997570677688801241319798807631310130769794513348263782371869627661252764636255454142043669507949147613849485301427618419999060402693075073569250105415660638679900182664636105499947826570079902236846015903138806047618293826428634694931330949292243974000136045690664129741246055676763733192946042786269186065338954790297789029576071827993593507810731440316971388244168352937053575629329859436836062562329246724454660866862317158943183427851982273611566540577314816506427406440167360775068788234701284316424219188117776311440335110423366176042695553592394322664644535392434028578731195276060876985868275699082812630535116326018134394743436962480519803573656909560302243473788185444293845968458297129756819330385108074700403070556248050614704707114133420712597996989320140907217611556415313423273102080533881118392650081931048424378412062554163709911969353242514212930467830016246304918015854719559140325978077390590946115615215166770010234378857374822086964524895634177983175854338922214387953898734154687818637536335609172479723053471912396630016149154793088779559721556773228936566915375848273165043019294904577338592426723190276876069433143117447443142404695000760410600572764151923248108562203111016430406581154533298998015673437482829700430561459154584552157153297447203355111532971989476903442825852069250396346411604732694047462140036737092235458256373726854711081431953813654939297167246033437893431540509176337373319774509645710602904883609059571434947515443647951533258857955984924401950608334107183468198566700610945549082819201759743546012664304170393799669621303020337440305633168324411461575387151284146094600908793449665785142439639777286224191101289718013587254183901388556999517102078307911408521403991748955475825375976033008911116032784613928219389218893924970149241570700324206100915633948637425133509411855877344039322329755600310886260331168492685772915596975179255423394754205553224327131238701236447968139389844377623928552673942862531308214559205562151075049213851372898044493567596971200451645751098469413056383495883370643509398784926907461986236034456295857417559311569884833573429010906399692184267587874642599915575995168799306487377463567885527702665331452645677165224646176169525723039730939762816929052518789834130410089441417553400157125758981096292591322525867053187326194375358105899608119181367171258322487333992859168649508630507861732357238261294113791096469397115351318359259705057131619589210946349094393753849648802318857237009946873305089521970912531938004660014998310018626235309996171856305628583590361174234190431267585702247081539183380539315763926477673804886228499555270418940279370337670398532452047216497258106242784258003811995520752240765873160396376737747078651962813780706976555184380807836120368889518142873312635254404532470929912469628906640219002054886533088583201133402880303658497590937152531394312987270972206509585192571202548373428469426574179997531881675526512289198564794694177791538620118525306417201705957346402388674674730498586416184899611895353213580149382016205133833306547540220967333282493367580231831397965475051463704075811078347287075850771911590711955026286385367175768593224031247252280157079145627180481377983616836082748935826748981546779178701816719772696618942303698854104962589491862647264742095686924821537104284181939125026481920218631292058206971346507839453726363798691447637997699604053747152954437848871694291055995402402883135035505896984486436370993305757039820736765121452521512769581514128932552425006192063285461837792276243811658014175510175468871957841306970504079614339590746868123911538274385374520313153835402837153755645375145974974262896801382872685674801806815973857186738127820416935982427027961933415066012939186402501187494729904667772575666236868134612196132250058107063335567474721143593092560367917729427910650444324806687559229857619652868459825788439607812053127221728956574177316496090815104614849830277764768156291781683691462297953442715182412386585390874841838774591934133514860036643301021643136466541929692082908337048842124043006454488997824747039641833229659232144625868943190463098870184197717728888938189654402731435293259677014827830201259020247408264727371297300002019766592638895941058797990595434002999981101830548147144300847613328014446708092113585234892267106581003281007829983474868135794135593543000511973371477320005736933888406520876244235969847443653659169131184525761469610847192371478977307693430768109739477616469412346276096104573824619622393976640889518710637374460963602387351625556339560168102746590736566746211488833608115138877344154434225786344231862060620425661066482159174844216745029435739011297990478755339005539005461086296012630031609926100024268785572267024947937596938045376280442325454259477439735422465605230173554414982222990281175852167887218089110419000322118934675551191037015487733464723261314928271658456549539641662825345680696622101097441684415856373147420150868727213307162341798511920347617166692773490017719066326609935763746156469129174752950896841612906764398772973087236343045874103789074632416048775435242185412091224117270891250828435793121444679017308501170200088052952929901006535203036962064163963084962173060332468769332141585301213628757784386595274862747731083573580789927812204043389281738486936369099042383390425382368649394746263265980789799158254614702258586364794398902921658023624538708502361559346966036317884633758362391649285129929437790200736364049979988850687834398022789646730763300324740600125611924514002123723545680782570388894372144285826569978855720958296544266512839437604378920583653724765661673707929282986781412417962643107637995341320380135306835954028435166607861684659884540085179407120878228515862068732343590924420772356185804204461828514728914447412662456839223188937639831438464421906987962380189920302481968516289973980848398082794716112866530200526729402618861003483756928737123325365153548345368373902402949746566558338089959557954703633007074982385808130029353665323121551947538396317949807343094537310339545254125929058420498129917653641330751210011066686119862081443994288133032510384426855376369596516342098217840859510459537175288638769650633753267572472931558596138396356715888467822102090787385233068543533013363018661307029234950275012420312032393067845108866431404674982586566606694083189557460999796727808878092918178605572101973584053480509067132574297085300519374696498843140432044385032131078075778223374442881919718769834606471452573457837487539150627968266250725492878561118539729588672277985555498224863474196212085771152021663952016164409941345280209305490353276430194607387207414145202245347893379059307599486447943913852684408100289571597456681664838333320614234087811467721846628204851951879405446941534587052478931635955176753005247686723967873710462145124180618351536895793364526781501887449431373445180508081212158712749436788237195399111302441855381197195089730188081996142308257716856708387558666231561615905302356948566525231394811474466290112368887229343789716259362537752460408492870832432233118118571378922761889521898458000258139673624821153221724502297756468868857234505969319457023030364327128496207862330552267154179580178984416713317518388186137976855143620125009151108961258204728577833286488736633444724515417491954049453390506212436236126072650299052449084180951278494611118940104220704805795679698303398665217643223688445614236698290216320677461485088568350438447953634163223222571180549258424980767801881861821377124009947571885217548540787201622977668499988554218589973370282475508050493594833346166518544705942176357859882189473299633394470047344702323228601638172819233434361672333129486552700658078911819285207276440655695746308305857299330769995212200173440575669719930441793805620596331584236342435777723864518131492262949893049257452830874216596278824284484226602603724316277479017681187697126244316969310349811426684533022107315203847857164794655392668660878331643080073026495807849140634918320353918972580329080783912422781896533695424317574553101223936231515641495727591319941560535895592451797538798568912327647816192362938261744620189759745014030278552830671497722446261106849980273512043551169369633937224324114133301481368204794673912600176148230054745157924861520333840296500089356122567155354687132116568381947011315896422925710407177622422996491161856049359107275162191200225648692650107027706632788769949691939283983006410614329001729602625538183541701840653052284222941013379926786208541978025454432309326666531088108876505748171280964870252473044985533385814760153337145343090279380233294370568180867308765526852021133544049397361422899087936794620931463695328962705649980036406541947097014147151470981066415596442308877089213530996577687253689168701209111445728069064406313841406205931434299598094031022809243052131159249959316954974636267174710231584991844934456929438561257274675767333861039728916521141579482184339024182391297838586408279329436354752122835751982522481231849817797486544188696084997512992803049673536392222998180879033712264679857270299869477786836862042605482437796789605115578127072569554282433782408878432498458899859557835230912303751396633746006824793917728905354814184941453950526373125893467004733751041743348803652727345917907376434107591254678335328167196809270884107567395403613924431419687379786487299473554941265023492889515086407235442860327635455045567517269147106554972851425374460703227868445424963533504909148047469222798375057485816615439222483298214451451432162526737957741290930168610273574910037285031317020817326229121143414559402732996243352743200346583996092014261619359651959801515778215597398331601135942488183469789339002480242375356640085620452257075197204123572656566193847569925352845079443357698418371085000048831470641974341308711507992957101937651658403951203651350034605988795151674835524230892099214928288763232875657033484052506617693631632818328075211125659017013084966423909174912136776482414484808136617051072892453515502884529862013653410552459511703210948635371698980613861013372404214595793754595770423192442060377683495137928586030430247307964458055955535960209640077074211273727502056662593404693670117887065455213674640252908856054312499429633344478784335425636504593091417537489157449228522192313062539755267401459604025028597626048574305578357845307940279201240756917107732531880048663734366693764650159744348391575202614441489213268648113278509870145734373159268787863736895364388235667284691262453595502566971988914473749999904798394393223730261639165308920498452873267091520858654516442193559792332102774055778131604723475317903169896963492751257930683329684410297381726421255672455389887247971168650459208117244923977632055362194731486633919150197745110658778585697968412070354431273858513798575872500280026056548945142418091214019474936480466859682966272785788036519331236892300286956567094469129773906688861638078042444469223901957816438552968563698002273056595655387225785226127881706436973670878221858846037536883973880178662625328120219111948338131345109358708461765315709680938154295142961182530571249190774354503502518696968676434716593962843522469744593505472500713770555704525144726312600111975282842972541227925915331512411873390809911693144918854256216554692878879845071824970843799785562347013001188783630620390079378773102426900582352844472014651708782975025906312958999913109959402682789075026702096609440709099549153462876797188931765423605377060322083392384124272968087492122678203884232745054055682434710975664157881192373202136350524744970475865588074084481317895104990052688600290260666237696224174076967397111567037863907011936818369932316960307590409749043276856608077034785446728426375373475623587408638884065608296809149082450506319936694864953206009356154817938266878259413987304471587722801180526135788177869075654022213431523060866020814551571661031413517552343463033427690014710050187341440588775197806230726305144767251481322736368761163546482132229844851537681896923663084942987927832403901888107914818960407190510461299832897565932681647090166426299060410502497107018144771940690286508549728145666874278814695418701322556206792328997029892400003144639999514260816052430606126120423178271367930277930247487495427079380136805251948864498947369985500218577040045985509010247452627926188861078186164983489874654567363958068086973890824680960938584090364521469653014118397238252079326584471361619236455552068038383394377236386634250008299435460390337369485137849615215626110079357031144026313086361280746054332028540389279580937097299279747229838906988182382697616332209228457541009938506998795782156137135193221064789988481627647958954220857756497084308485938474490253307758728636455942723089323972180438551554839156500445165724900972551499558919527155774555616528642372060241843338936903136894935336927051734005643660871577220398452498933010104378665635158879285045781466776040684614489591328582244073199153976944583132172268004015952508654103342242888475934601454787163502271955746902584296960666769215365074800571884024091966595838788985444341337016276115814288420287716218443716290406034535887634157508677948114495415590825560734581042609955710761109009916325912216847304580557912582121509457392728633000743073741458351064351628668815233562285296313881431713335593066793541222660921760862370921086634016877743411625900896470900441591636977064239433097182975725188116642572256924232181680281669005615212150664976632176071011773665128562300725883297850062083466623264740190403471023413545281744973159314944784435396396326279930236247578578178715894199214169657988823517981359801144631706985988271292816040570268329812057219748716222335839958165531031758908201291335890027712205681162876876586079492511509128049756929620286821086486029993036407044475362989463488930710937146091700224792589535266359377064521469680457801479214067288187922020059744349205396325145600856400167804939154186800121084354176421439310632722258213002092600508989982090429740299987513184128429622498302505019391281353444551286043565838445585184972239359349971351941867179842788809155113573439529245845469628370688676403298592705534075075993209574596121182550462848693811521889611219678712961939436593329790107050525256277064155191151172486473160376423310733886940763723257456791082622405005013105137825625762956185936300325138245153212266632375661438803995292503359407578702157992359315607039370590761124402627119892875033983033378816255088173686894721569670905987501547392287546354648437156425960982240046494614041001756923584179851282857941267849688592071481254807249904960671649474970170275331888186608778491795544332867254200882354049670506828307973229866280330819523250889648565404906756200243239380250907949328480978346364514321763917526126202224571263431996697471525111066434110114370362399092850596071686319909442239537528485657152588033594150505568080227613877366385253707076339772443869525979318599990641984575123565255085480334152110713351184100635313715406438181278689626213907352695004917505636177939267699124698412338751228847725750430715574154408071505257417009722524606224366348649524024245067906319358478079901585454229204907269437123453621808155625541793808874860144040086462045163130682934086219706465982891632624702103906680491323644348137131307519485967382983553346590279905104304945054546079763752337448914941281337872976381412150902488918205184810550118857830375337249426291442796837913775797765912393750328219451455042140813843213362511770244690836258419461463157828046413882385763042731107372564232815551439875806248744341019592215402508926018802206461571398667418067825102201044772393835869606979245663719561661691005079386882704904974202038957958671588986188415074996393317998401542146367105298507422574144047072703046772254952638588191718325589200731650241306733252251433911218064912636922929811345807728927002051341039481992046364903518966925886859360833811642383439391414991697604587888645799666892686645153920503521365933668234469262654100547991699939229532632217696481006873094848959529682811026958062406738023665623506636363707727584273795472775643091941988951186817644360832245550298441874993286928796352809309312806829805207480556080010959817172929866168223995112003168465695613311281554641422623910503985051632832921090335683468608419174459107557373553251902564861494179237772472671920842886041179166878350770258691289806335528916350976943124977813931913877402442771252940042168770722221650538525102072944414907979640019497167747212552935120593612252145520996896534292550767764580978834834002969052820839572815538345752344486696926789162012046001184061298128560241029715999386588854177241445568934202752847024203409222007946433357509079028732046640629433316839491197728706099342485427946647034161913380154863274783261045689609558172897608678760974165536725525139975485507700437437276811008750244198758044910855915233206147837431036371996762489814043892393700411004311257675654042028140738874901475462141142458877037241896812772104409321795004293395786634006190250131560375048764906220992263328873276736990455013758875615714583460073963203592625509130388425299835170305239460155440705958237569592586025561915397007811302868718218373626463907669240159131101063929092295191826618787166553578117828538290810239056715766601109102274348478525571858597161972535179895715239416329612515106020843103197130011717995315440904574585621443235223247461858241133370436141280479026186559182508779380423193981312425004825773637143057403503630334089907187608431295050095174289473292157062039714920806952785778161899514310041142249698888745888031781637784769709207555390437762504792022386722791265582128093143611826455791312047310770259579439701330235047689952167171567864443044953224049482956969017086061697980539282873829530578043710685576693203797715041862796503430721141216795901806806529238005934917328688901408391806305071659500862056167321911801401798570327157885990528734070721113270318565679907749714462485621834251620295875123579537188147283132661768664135484323612893132709380284613908468755500192059606257041483726246629118956589101879050825675634916018251777776405713821813955181688467636336170328570320136195872083772683033790795609027982802985715255066123924009870864347782027126662566829491233867125286688536630910054023932144258517209032932330839165621089128361262192477622885013802697837163924258925424992296440300542457368111447136635696676155006349842249517662831873629728063606072162250746698927065036178649503098115209112848323389275049410602309749805932765500080584790348627990655412551791992702677257397236437605323438434523618065140527838345590136224196257195743187143936527815729678389016854469516287684761513713603538444635863848079403092571736448460850365654126342906890284506090944430934515017415476954422071328330849027462199599127171475465011297935973500642433298737434142512388581267531477959301245704422135735337012552406516743349642294904601398141242091776077514389613479292248173238304447603492129181690221230671601695591206687051102844378417677598283211980551670263228251475788060749542390551778947623893527495491479077737171217587594732352677991888009150889497951663015261778906969492367409721895907641972348394655022062128432570841244063150757472844929852709606845096852873779873766959639466170502816637933139971299237553114955934408932519837068554698162449177487333831579678211804061430447898016771580840883513461067013057655336810883651809439362137908165402667717612602442254846611390821814475033455352269259297978874949983824614964286680135774749733380427889087625573928430137985066063314496036174278650674278396839018709595024605482655605712448707264021996141024768574070023930524137894467192862133330980037535307758932469320835186361422412715352786704814182249691576584123353304664554864332698975022775616277257788579091759587086915651417692778267011347233141702668513935244686015560955238989042685077209215483261495506906042288861453369146066405906077707060340040452026642001513358894212084518603380436009131779951626439601143622572896055748714305623920367559385939968765370779455567646527147624383532336030523040303570107313632579629764355156057502176131611973786475931307252641873609371797551161489313455774461042057579364483279837041939213984330559293268593363552209652020943634686384530907758571185448528888843186150697190532144864214172033332182102992410649660738807966827780669525431503866450868346376436561707689986918849305714136978329184006508518986959921316992834148110033127573271160886899166070652621990810239230896191383154267608675194632142638431427671112761872494051489173145178655213730495543566100014501475699018576690228040270306458076533588634325479191220746947952043675965750535651356524051047521995309097083620117618962702648440274077143830895182855252907077284161123894831262039571136446432673162647303688632246713933079473099267630338458565281046925987800464682348181513507713531721574483164448452728882970834191314043028141974552536490366645117602982369731429601885258341575217120282523618671879644747809130526615166761655361309656499184251382859315044836768893446915519727037018928901076738458055426062801909883123874953385357673953471568939823003170124850239529424178606610227048638579451380357648659184500381872641405434671170385947706696893171093305450102130878065089699663993905916420210273803840830998465658148415767438162614577420159591998652816778729282707126566535118487414557841665060995037007894149671620498630991486052847222496894867298704877416169649076323385749429104642231511495145880504571106748354154925683678739364694724245670963386377182778196182168018033845868645963924198100238509597396692047724585058315562663035274527971520046887177975453007726975698285030242122261638227459693328638764258664045302701381601873309545704795933375684475453554958013301213925363196217456586739512895928266641438027875940532977525977271557457478766743923429306749026319165441610212314304147582013248700121008262383538828568812679602379016313752503121018849626433821446682003102329515287422449389742653193601610878468304001883514363180627891426330399277724079752637807877633332222506577322037217364238681197734950899925879176610599785257323215182733329415230743853711002744553036182800194265523227203077457897844817678105583702062797653038450491888625897609507104149629589275718390000715741152757709183198406658295662100544746399637174715704320998662541466980498154734279600841489899739949764220508462584003566722689668616223178265127043000609817296848306866107292695875029955583186011530294125895909988174427917019693336446731200873405647664440056036759903168092724828985154672776135392664276562089807897937375505449430518659457848203284791199920027176655911962846962063697906953163990611526082815845084820520205407500211611447599312234152727700572019887383432594346102146214145102845954450341562027904620127207280403655636920977269387744379604666687521313533576803795589915851726327125239063428937172512836540916089987969302891546389023170515850763567585523596116219007100140393916461958086867431193754012404455479539116712761700989357655013335520293553747398063458483536772858829372794926248588729803634975398112830596160634239614473534504721720313743218986103324166733938925115602727077086010255318027052088656466926443759161064904931592024838271044920308436797118898685199732149879661471973524453273735923017304321178328822696832816262239056703584809902683303223875949025628474233158295084568805758278176044363214429331055842488562054206337707785410388721103442390950682389168231107633081820830140438996464354162463338035790489927889840274289392589364141906819118210514616957362701093804513068788450777930048016489863622096641585361259450534681881371423415600217781849711637461498612941600076371806685543306503774708966285644135729625831357630541780112322486041708215593351817704971447683376850693908940092934830907905415390407823508402606053517640886998896604904991002591464073503225375888816074686172456257262196764922997135962319012766218056496259165278863720046433809658856820025944973809317267056848576777002019359071436529626030682267024055005489258685954729753655175724247821238325844809378919705126289310436847730056612921981562955597186857225492829310396376469314354322526523111494357266215850812387506532013380075938172055160052770348444849950104670438144780543486529043697797583506350860214529691618332159066109387567329216970520634910741396306046804947412517361471309572038160393378556949651458136176296727566725477796470428875365267499055137362636444827706198866668514743906290087964416536465254823113266697827378269896338628330884882755796277638506345287537799108586659864825880715964400641403742975919516483114211789050935426316769141072783898561542535227705149324137680888860473386567358313268326162682137911869419224800414496754303909605524637291665625603930735957664642838564597387150432728331862666904789167521533793193994213025960176513824093250309127768143009451344549690349742776218006910620749065628431119017432161003725938888419764441685448221318130308389906361470375336038318310543925593263113277422548335362459483366234969161673760421818052371010090388807954193527303080706844002001934638954985517363362517060646853974580640113478496656001647624466154412061422844840973150743084159998637671147800326951994825544743446033452773233120473051671762095191080460784374603722933031126174204932981583088764400717287448655322524477363346713652458388359206017853758923648572702996609690903648994560047836651634360032243235553617209828684913680585114577771032596950402095004376327146970769248930030806514325284482664244981914600912274497354535204240254696950393330225770001512852764076204179862632050318026447684890858703408431495561928989469350708549228110076972221975284182951458152690670444914635652490490428128225328256215333109787675745719320203688572991554738014106361860784987638718736841948086721571338984020612377049107792975796479002867767381397804677781643111363503057852775158108757315431944345269787609626538718516134699405821367394078177291107321076443028288207848074949494621810492713215323013669748985186987630862413252514949933708868553007663314087383986103164547939811066477992610171599779609641347649674613550656422131992805135214613180915804827106135037996486170015888061985472933897940940555784865525833293648469375922374012065065767249116239209959220695754512036633813483235557880044646841626604234373779930451670350884036091260751722546898080220362527935229738099069061215885725560719703152599242963246176791391799766740718026995075507229404991613615821455705885360706448711308404561288821123078756690271230455353162501011288845368762010956115041538834242979175165034199509865406336911740322723590392027665645955780297547066993550685635746335294623077130375136974409557290223532172935155355322973519090546947110390833333452172812675455450121577798382337957109579919992535265626278521179412336109976061629257644926872753087180176657030227188581458915636683235020295591608162104092514160494798075329318048010736590044433404813616354347546961981944246919122240200642555034730553578855598997721434815357181009734730495914275439932031612449240507822885518484053817147217239721122851654495945731194712683359027379360440235854183882393930054125070228656148795202383804498076757414527516157926740481043424977346937382507482984088227444878949604880093160987475041361718662077218837386662748236917017306528197492762426347384954947268064115581469941963055109205877673277497133490389594330472093254488100336485885651797768881971312953273950448689161569056571693090857416192326774502887793461979132019120059409107685935490329149131883432418230370377959053786404907456105461774800072635296737555515492262412259565721788828970508801252976490123451732753510452781131195466126017677632424956950260522975769913882812308097849391985913941301015410008584843881266709823709965538675276201089472771105006175947603626514513423325196796987688330132593259700409228740910731644625548437320936572979054365351583381725860748461176698872647785185908130089559148541188655596963022617824563232437107143387849446576908160400921959350570856161500279577537081267839203506097559194303063360183203102807640632044520512771420988410007852791509935453093929536663319004799725118980890040268405094792681318069542011089086883172452099108702625045914526096867070716189034466764542098280479396700390877114159308664792464797402549885790429810046226499422939577801730609878578235619445056215780177683349358491686710709084266679787031763153734049792071582250243996974911137347607111631750655312859908229659602133636619602746405277125458109943869160670756966269259699838973307386334799508707802171161394056928084724173758967208032512989637297837541535832749269474151219280184355735387244655087382195145472491990152458668187397029671554147455281010147501736570325080362280664077457876498865418466262830233743969420080250874931240346737786675547096157351563682080458528777313745974285360553291054665956968014465663564995946192851682795364899981259162058444378227453933734952773177616870376225581802550658021654836823039678015209531815721778784524794924046641763199573280973552100817474424108006774650282718576444214146785589557321962246752705031766636536365433390156013903311507529408873701013891468756252789929808425510662172493135568403092999701830340951550203277324282554128498853905743352112020509726656867992445216741622387433216830069801326967491808160574566573534870025380137530892202126463671275649218581455967017200040151351566168847310618899486254342078248348223203690544227185888955337487311668439548255095550835671492367548373182126244246240876651467716191937939364105051145233769582374423801315603646173007074612128487410597042203103857092849790134096525085419193475460133453385268371604059668748773028056650668452006274021798176380882689585280746013328984520342853101410650483818458307876878397580937556037838628649810366085568224604635851451022595591046682458977355761447108096478300565320557359986373058668743718691677371881565102037687897114130006306655983746105370881558478298381396578218448616791594031617232272846751047699792238014664060392283057641779554989089370179490064772371869754329604310761653035499135891352898895266169448866486305707703863719375933576570118931664352050114005452150088686122580934348431139503210906723470746057436711795614948587941569596235956651561845255227423533353931402118223292380657375457310067264880937407857844889023253913105696899857555129103526064800763611597492663046143735465192326429186329740793856507805105897438033852590116785271433272408811069567359214932991670505112601234896092504368259493397008782000193685409114710831035500462749770506681771885103253514670002536526234661961662188114666711645995134337600718041595077521601113962107737072192192709395362158325404161367629580037413593581888083469584206286672729559423014788856267128087071328651554185206575135954572577318874346732821815409588231596452674950029634882519109899260322110643016912466263935237458783275644753767069670168853985966488365082095620234812644969044556269850223351221401025184408389294025559265345602540557852865030547111958837932615566238847156849974036160277530169876466396921388478248012560402153621084732790646721993339225160536719264056913125995174582609997088934907002001126234201064242613933152922246254887950450666542494072186492544163933837453455341901764212279312839080471099362653337734412291187007256421501637141600181468174167827826663810678558970058931714636485508014528222012616345076457288975148293284849085417265844006792756114116843431022184668045273314166461665953853426368984107986732227188404735527280375013228073991283482754307542005895313674434638194969289696531840771701013210207267035003098582589355447555425806193287576965418616902158173188661219304455298171084365444095425277338426312617106893884917657137545555183859391734067555849776338825046727990214415479741179293978108383809049979366875957802493805894635006043292680898951484272081529160539520836678348973582322585980160855586576184436320194849042746265517329970643250818564191265246481134546347355802095629996803057013872974091877404689800146642079491623342696906721687286230305355534173358816159827848536645805265365745173419578360788727461670445635432897587198314665852161133335903943021533695771110866663570151678479463949731183154845540289958532644912943848211427785191818845752195242628485904737347695867376589291943093531167996913772821751984664341414227397004731976100747890561207340006558815585200582169141074356902070099876021147909736611907383214086018378479895307513486956673979725594807627225999936131221592713103964498123105620634842966030589379693232513550665316862076170846132642476361710186068838399031390884857723821194359083557817459927161188193570842804169981864476581570154565230968917019728784090012878860192748711443760150762265680443102619677118514378899780438209428114865975548229721437459266480296434972947263200484845514819186115725292883782062511402859503545939355525572285929390323195098086906929608929860724703480511441427444360626920855191067322166994205351509309266850983782891535641755476370714053458649203708463906068091419336188533471192980718333414937761623207135927789882171196786711940853409247685589366456898609189911054037242461375944181087410399293207013080707540282447489701247963633536830805352273911848255013720689100507582722174966187434147944942390225242157463489861817011248817752631367162402388520677199966097963054601733383666456257272877832528234263059062039363891625674449963223744000233944533677573629877634915873872779714970378550991035278692621767025160189522640667648074767314995186563233443887638475965253725241963292617813695627043188673442292526870783122271322392830632503004973719741448084339430399651761746845975073198229625487085418766781184234111022010916619157951932322062666036271362781470676323437606907060397961329966791233546810235189552526040352054023648455484115609252388482123456412682644273556325418376124386227416947447002961652258315390721764762470578077019619070755749290339468969901822183774564919882522116979511104439329104765588259824678341980400497052847234069458884888674376497735824056524226590639824252659544252985477512251400992030424705487492623090642234288491074552915246983507029809906279717173828473756179921485227917888546614242129113408882220657321592446754554192911906128033287891725389753169058454550100676306694177817181832264237818541695467705351055159531854361878098807478621670371392192067246267600534457030018889022264395396877207131634332251293172268700802979077747816506248843964257769341080680373596773827517839753973009367215979665628374415864147706545930876614336070163812256848903956744170552286639392148738413228875237482112660431775532157879695536530167729798382597103124928962983628111270400896273128150400666528027570684205868145834583327618880224888570105517278487127756804684303392306016485948371485724530043825555196263229071966895037422996495811184736316048124177987632507085681367121229519095847638933435121475287682617794395184705147955402084019536942351379833834056467586637176393155235912799572477363280262151470676096394163786805279666491692003095389810256089568619580862746662734186508905033623072596260829082130684275219402678932604379460369699914578644671774487704121437033329493274548968226984556631405458248265649733749117421969416047566222842395748489068060714654116868365583422636404997342164357502526917353066523933738180420863266364993450456936629058755414513079915708438112917000415640292216337012948460145516167823219764137879580329525883181554592058869431554790046149038877799876370993609406425407920729247990209307548433729926633979151628650112976090702274411270441200141096056916998013593426073383613020466749157081658657542695301414269389073891430600803495354129572473025984173413776756408824331322145065889740301751284443626870776982112571973783195872475022563357791027845218792173777126753035564381840463402450302762395046937134081179426703964327746632486069231674137744313058809665582308902429423895927382129898285988893919419418013874077820077776858828151789423468433298792404899440832347673363723391079926892083945958936585978317506850724122953162481062162094850160538302176281724352968951160627429783613781896686423436009821624427477960124804169948597302780587109701560208560799923199437620812958053401769889789202727837663374772528640356252374916524313014692912304904474059885913631102706662060403296153879806277767502581650371424960603280130150277709078651373887103563266751385982154298239115770632309142603827257379432879852498723610421160132880111973225680490502644568112990316262781626217276167341527658776509567150692847784508471428081047143513273489559337332560083196801099977465770093638084518808335043876614702228759074675601919857313362432193051156323129055056635942235653365361868447561159319470409612094501055114802507971792817783839264077911452762623343006293754387151806225036037212256624872399598675476835843621256937369737187470601431158910027730554274371937172842455815618842483488713239395272288603090049704141988192220108585995563138172321598844401077445362663513340680167978297830802579289600178273320848729687138923673802993073342271447895416853572797064414497401340326418480446755135658421658340750450836720508697527134257116202297241045979061255607159887482108464189362594118154548605653024929581618112684562135057477054340882414113214763696142621115706287976931842349158446138646997150827590001105568551221741576682935456549764885028444889944654553052966132878085873194738788905788366894812545237815043916018936877135650869517618501245276769860534882470194258202082757160481998112246755660795727246949940712853785370186518782218471081451441889248682011342962018426788965641126779323152896713853644703779684334660338668413769857814695939265170104453567103400051309895624180811096103170956106257846055818499675516970862952827676670791525342483833060301113246680455976658274557094661183252942526204667813459280057271092865431862660638955133114407745106626390616284000171541943450742210817167007072481965143170433775465921849060380021546067186859100042277983123625549722998242867991849395978949157087985658569166061792954053148748241385633208205978191096632828346958564923796526107406812124493560932547758107148452596636166782284552716262313831375357176697599978369398116363257289992488672293297647937226916019991407121616545523077774847574989733688130355043623127485110218886758529598051998170836643878091709118152185180110291925757005846869015932829798672890464250719177740912087853908297316708913462172355333796073462375941349967432184225017660023362167345634775237976088959895109180021504856392910549792117754406569345603565340264294018859682256707983369292162679362717333970125394431710739050413871679674370648002744412792115495751741908877098277665667980096035268349459066183602152005676333922633973141285250864710410862636506576753833501882156249602402779194980991971604503154472030514533888710404403227634689254780697855928892502214902224873358107502043420807496522438039638689649417801217649805387385340707930000795313385993104239810316967525378193557731148078165916811102116867197133465029990342794300619144974116387600203437239957101670226495420271634332364911418164308184394820292046780028885373617939133490599691897300165864880011551096921682328269148377727939016929278407062123133868499822598672639940069006168241144136588657060540251653919443910964916469271183372636859353283230320834266313968856428151972174826127019825012622069766908284970267190077166744814750663929812548940150604753349603284532543797940861079498667724803011132679529765732840458740730227900619828156079150249057939928573933488263944430856757648456945309701865446374833983523064717693649814374205708560456278097931112100241290317265175720424579959811093584384463836015582828581865269967540785844321487976796831632858795096280447063795355946398483548785046209673825714067089414731558219415152151125764539601420304289008912163817257707997415934287417210941988874124336179190800256918956351437218379072022529093539517336057938117180814245031128597378622884287597392178986514658170788650688980644214686894351378112577096772495061806132541329421664268816692963317153951719247382570471317798402009581035210814158764362463951681873601768067221678314640961781338319250224996317222729560297354354468161860826177037137640130881583928578502078047805669008764465708809945343110778649233059343621420623170843420200117989082304568092117404295664582641462529012791049834896303521300930678478203892258974722287949693725596267355307542509045461076720463883165442501393493896039066949482390237287508340572291399619110585426853563801250405528643989693522651255532401813425619820933462784763959152505301338816519211248344285095725750563725370625438382178789126505774004750316837638945098922347360131417529633752944547433251538314410532365745792699291280839873692256908801620318511474485150604891970448402936579509586547024688333159368081039065743151797749865441763732369225158920413949379548794170579628285202159346043144060271740377041151655898248802058900839934846507271668117199679639697807987424214168758494125416494258611949387064518682212130083644562432159449957002225688333834671570693329519560201340516477439371691798087180984077786583152784031430005922534329766394487577899222347891177159844370641362379234996786349389907952656800159881997837796657902916637490999645577889411415083511730207409820130433174012063073011555742437342871116001599134583704675478628364700892906863665108652080069828338122263651859658016998465961083608074871344465359463596814548312222786191306789264278247581674167752107426330248743405987348451592112442446308311646740392182968235859467706862697249941449328142586159112663239658121053845919116662346640673422600213832177740009919652896314863263984508753461838491075113653480827946514917679783235937684020315298717593001602491182615083096392010084239457591625029269043719642379920124463612023469254355110824528179524955215530063988022390602185529015214601231730376972606708030183605329635426057683696848934143735516343147717509521048987978829832091092013825344876658544458819886746548747627389471356169872661678920726307548370142296019162345854458600628388315444775552464444115728339765414003537883597745515245378341016679531029152650738335468067619074555104120485072835289357209247501657806972493680898532714053936436049468476218750123058243852708290182767476320663162016733726674915126154259710483501782352902685369871500308427494990111325665495022266005208666117117753393503116896745301599552211595477150087507557624880958282749896799886248712170168782193127723534756640734522943643318210397783201032871248594016259694190581214251807187993571346138094985832932139834472532005097528674346486301098139875975541545843045806850174922936279373379818465777358097980707742370821358253173709552670437253381101834808508486690078789422024279767899176506664871934162783840353660107974072256823477162981826096220005219298618289638600427239112862947669673271121456787944953917820668157042563647585115946111168912975075352540341765682308787847029385215791136127905250211341670156305864998287363430982165378585819740014862878160533202807921756651452945373908746720254369813008273031880903236572560489473216961560438480560599179276393550028629824017637263134495334330814500211834304870532431916033348739021854960171171023662918232428384798386403679710376431805021604658999203765095070623179982211191221767280887317968024949180035766887143641220415862458560774948191607772313398100362309797302980783700205368510855358317451043596946554658315891374207986382201118513000782858547613684684542041756626683062852993539382137952651360451536432548188406457918135322802852345470218928341490629270144446916631535557559107235934963149595672926063824301563090446260015510240157698055063604172590344190729205540730808107110816340679907348525635702361591755376592610419052373168513764383640124509963953955100519321001839071484568789951836506293379183020291797913737853807584717278986660957287435016229509624105111396744287149006036941231841952898100279969641478370906857502949224196442914664139578182245301061733188414459260546087098726129471602162542141121969320444467651728488180270034263840497080317911285690183859032617833321330237731855880238346078337862041310288129565510768996621148891597773528287529673347722322570906488113230980051377500121445200123169329232780000169366388091881959862410204039277763232436229864154483570307130855557430217208222598939897306321887158687188307019167746032318132534323319186675109007157724572312246236938912574606120895375726892244359485533120007475852817437297224924979587660301634404151944095934910539415982807739735015538625170993330970123863257862491690826323862358884726056111126045823239376544027653390351261451581287358282805919871066837788631885337243544511554642423975979739361617386890299394354724464740953235267401269120033543355755114382765733955616264257702364109148195286941859564814659899360195477383128976346501402403866614185662540241063611342810787209195429542498685645758994111620145082985543957205835898490422288768080210616476737301238437919050061359023681976715420486635625605946835920597738380256460277206783259350664657086449206815818984236551580773864475718263172565536881515008903463479084384831351212726543296052235820916330883882448934782533758764651094439640661107560937147463291182604307359391603251042802462707551053528136285257899814699509714706648870733216746508474703786651021955552969964224793717337252848690387955964206843226960923077327797061775458208967320850468452252661799437140629401532413763326592238230961011357583474558014900882474582021380278390017880161872558480326145807640413306692049518939446757892366128137917295363594875015520370357877195427970387527236674693864412030815221423457820670683512607695630476750358770720324706626595165975375236745526311506238778289424896053299461451012002677467648371049150534835331201687193342654016331725062236727827966350446483968164665805785066042776688404167919538531764416518350238538218829398707485231150214007499529028786348827539342994880108687647665490867352430150794149053963842560230954368555469992497299643809183619422502575311255804122361729330009675174222487704310895370789990222470978154610335454496708934009620274100385442927748913522052029503191222608818993055589645039946418781426917784894704107859449463059423265319146322675070256843942530061964068159493062154497527355855285181436722978654808022578512019652494936551942218178837402034622292034205903994401955716569137670996256295658047934721918835343319203411649002468926057965295541079419938608282811996657887223608762954720614073833442111730042373649313902289329663927757277107573096649715160789535231030610932910961842007090575089325849515279132602492673315715984549425485259095245228029742011573217916350154840548741464267775987406071230368831293890499076984802531314891223912435212248908247446592064123161374607300269858352036976475523809279154102583165014619766808646354343264741028216126487554924428217305207739061182185200638262611479317040572547746683407402630321186926629343589164935786207186608117891076782172454249848774948420598110636182095032229806754507942165290883850289945889894225704802031828458663989450595808851498596685163100787727312208336370931354576899956396326102629503920824828673535845338438125209796578447439374204674623992735639776505485558976050420453602968130133363789385853124796804544459685933142912227159315738660437004099111286136266794127140894065535211031393384515609108260781155817216609504341868943003532377306089157997365784064566941815647217951900269254886585933940001038848390312770395763150982384273183513870377651737170285917459794059148437012526776909016004303182624355324630922194464223833866420663877011842615975732620214761753722452001633323894594666075520663744430407614083144752444310014832686667845957106821719505871197839686605328035919392800016741204002504447355455862472287359700990808363810775332011237392472975649459879446175242563144353567630283079519642122707149990713441559396377984956371708795107170494350988742337765075252228606964063788075877433838552720700043215726934573017793066474889966265550207793236756053966182987180939262369550446316714133791143535080921751529131970004966807623485658901805737774932770589799695803821491324723174848317142641578425559136123354276835323273867719109156418101735341110765437522408489383986030838493725762353628312882758409041526170339119050288708628957344998019459289087750263443536920982183164364605766976012985344380696518302899506031741451772062919090209970494261623670969997887646977320320074076639278583695538809019006293717813657867848455607039736701133386831003715257014839688227965330982201477999662437288045449712322542194649741641196005072455434416305613470370148994192387575333309037941678253073935290693912608564698884085833117077573901252496137093044038735253219473288101980806965863055094304168943166373335033957460819048237069786258694657485996728359294323290674670308637721595533042912737658695233596740490517700249108325856263527549764401044648624470810172307503451915756256062937926834075561905516698948929193558311124699730196474252232727212985123415863748891517909810502370645430452135683021662560258294925229125315903349822776788422915898954577216128737877523835577554683491326854943925918628623449213440703283825300623323427714054130030781078120309589971610610940460735844841419590693281209610029557088781572818640406344251679257864445754469607520529232656722737213161004920959052687352907106625015361669540220909519914715237231878386424679081723438725067143514614449176189686040271247864961782597741199283341977731311952137370635933377729703279573011748451663355253820790634665680565271257506702491946059690697208360092281032442418685947023069805447058344476040536719628994095703885808719770255388626620278007848116890764748890465703208931077897717380356606997815692905911209872521136913581946117912764196029630940401719798643304532509992272492547474779012246217493056641219776227732616098894574992376906816494927302012032262523813151015596909162376217955448373949782349639323357337847185261408743967714119620647825588233859352658488537704897441349194077877088277804336060438636229427016237145362904388814034201449245030552333880865299555840984307121718748587343420405237610160450976631135385806644067359354005627670660055228624718824214402837629455629575065918337369655617306364260957713648811695844841128915173757630058712676428867277911660703359321080199042852647859476225005506378585829235437151996905744303716356809157573653212457942691294423212372570286161740893576372690938593318143593789556838427286868875945331619063285150833859011214371220827246433996491941379220508401640606096546708754843844673980788888830335366089976734803819137534053212971893391333826868832450829192330571338582787455461143662143570618371495210941677789260095944201968273439655564582136604495156243306204316614258931855476437439643944704205200683696334721634957751053028300842445976313379782227103179281081479683997210713435907670881918267910080015295214883349774029324301070932269398819699701893526879745105688710243641957954793771863994233336276286079538720098295110319200573579656413580570044894282860901671596225945077198874534841816138930389049835507285837278801556335783844073795006208822627829625293356586257430569682627016147745417182684300820125080441306737059650026391880674741993861466362444768172346997673218647911788724221542531929882102916135766786546736753869519672228555474985600299851678952556189002693254567336464547407890786287934957596461001092585427109219394906361513313102974740742291657836314532490678313617853405098529812519127620294720838245934107930243901944537662637206568751950237514458498401341123501370114741081442305613174286177008135979105444319204242403826237865368867804055671849432018028209613815518618265162216785988437073103729285113275110203323729540014647251563234259802784348429429245527033614644343043835547057503608346132694716827043121697808806501827281956951697148025476887470729589418972662168158475637290142516607283515033689362336800129137397748172517805193348668700564023466396994526547109310326647537141967331717794963892910106672603577887059534265223383678893314692515442187539844704269917747097441544655054759048501844733108616479621477590593175172347933949744433748086997087293306235258993033099818079458748761925271912448029593049721690557466831423686317083769293647379098597420500333546946379091396046670858552397927431742362710681487113885118219573186815147621825315312779433849273912653128361029373270793108327936409107890970177306882193426397712117767327751856068959212748273578052117200650523183318276439794214060173593605431235829289607296196977569333708136641680746514041962282252296645235309387174040994749356900638989563312272913243425813476408104341988606330378122484997423662058321850973140623924645002678269184492356483442108105151358283897223378816585961603185980234055147703480590044769951797250435480001311930191048529064185078159128132848449079012651230121828733779954125818576893390392640814366764264792965600011652144545865171148391931911446161819312696933160043400647898008268200467001149034754510409323374170293268365140782153569660269177464004913918602180325529314852406142512184537143258429709251229301701137949856824832399627819628280714405589183811041762875373495177612580550472891243508066935859698370664431490474202300970775285366643811617092094164997075862621359263284729393783662860505256380594894570479079362342098438607965237400167214418039951905127035892501484424730720909287806524233530622644793180286807000941280715736826981161722251887901000241749978348551139816078110828475415551395105900860135449050675962477632327912842451581477041028574138555978067140530375348630911536937019406610373753119052068641305900190493810242933440500909627564537668148012831519688511187868557800551592731877040852229859977800223425759954687315120779880174797616483468429182219663141788695761884777021571775347151631570363239415523131953500615498564167623820534131400645948714309714938235217562695268516347165142279627411588551781126899122244730161137648540544587384907372142133255278553015296152749793303413100095084578637975691663113257528771368443188993188762540477908863803755809582384619595183784279627794886524569096910922145968542042248357647397633001693072857037547968958815550536047744903658696538394314312788676404829086744022955330855129900808275836698539342912677840281543763388588709955125350420268472816774149944738838233436377508338060213884502329497352946525319649053420195333179564347103186346541767540861594895861192864044265995636740861429685946418832709160427775681513394334271248978123507696401684214395134664276365467853875138352268430778371839890457984963602958936535236784723586035372470829916961172821534067380931717781042251211683800602764978899620003919283131646186174183199442626265079472824457463975682777274359936608809402008689026504952996676435128686910730953161282621102117316333288476626774729461213217127782588610332011662633928409244670277132857981829811285842522726630479562779812006983456778763446590756178021334283969874733472050283988639845537285252414583338583275195315295794914679524516715280205453369866988193597730394680116085216939005731927332882547829161183674746207101559914790753172823598660467217504133132178680050874820203668650930158844455099230671508899367030251034547143134395925299121335047968437113169063301026081362194585887565805626975934250303438037244446135370402744769670654507498771689211269180127898386423867172074844863168613132591946134959598920319774708363160118876235911996061128352408244115616059479337367347503041690252238399743820586402836032097205564811790934890264391579597349115521654891547319134631625859818939694084003390353415128287341307656439302014978034493925123014295673933223992464144218662108500998349218976890253478163761853880599163228698716895156568201096855732888703615211737988427773446646927408014723022514626860733670014209274034246713967110144068453222626068918665581555772320852304658094592118625887270959084777966518614632694926491208826327441134873087762643354701299964880398524128925454613946369277318450824230088925679459377951002579779779723473173065851392951641750727674268614487683747263804172327798263414160714243814079520478878798662969330007003165243348085458089185080024212218326232699314356416642862796155568857992074027374569862909586929508306901256847737517841519197600405209476127001522418297551710194283204380831957050503830218458225131447819246849238676270589707778066007036616409086194043256909681409331135988529309235239626606609308935636224403360983348368024216292101848702612291886115453814940948758992830549732023076455439190908431077082796201779131388531275751875948666482566131657454363426705698577174716018902094781121491463994659910224097069370587275268045904501877986019421904346286839130362944644120514010221204051171908881100401033084344368352730822521007642674557252191128535745058132094483687613407055983702286690867828284111417605228180179684027471322545874519557510683059792533058083828599990318590126490482310828438967699610190028785557229263621811852694547459294558831916774298151107266078997990938061864385052718696395535608727443314246399897130559987083436873821290959013358095892664025500731982746360560055039355262382009389588632403941041943633036961011510248108506098875950815099179785969263745193952511111929151111778027664537898335777941744165307617058144658334882351640114647913640796847684862446522432807203746700111142107933795111002361644405367565587609439175009634564563498032032704615512236379139126026329587196439569766389764019876803117284757694680904290808639913532372533674366110022966852909318392570161628170838734242341126576662688427356426151961369685618982562378200185940733220498234336488407364326046427364916728196568449060416205719396277045879970409451934626455178985238821256962669495574637045075382059975108232454532249824573697497146797232625853293688801000345675009781140193068249668607358373945774154169736024627783324368520347290177811512777374925680713664522735209843926627575004324658704385673866383041056431151116091526290375816959223238101330943433657037435164149886027490209805240997665579391106310873788886166438313239912566993128535135537913807024553544501586758316061378295972454602703888364801745360764316357411812348420558083788994309271810180216362778196850790371567269866459377065343161300160157316206191455148683580386485460594711187359645693792370992209466626482462054521946316856414932916408479188908165560894867862357557332876031076910934329165648206101815646175159338308835778280740986900689064009853227840623806476146196730326211239972865743360429558249198293209006670355161692353018098153300713745481806219186926023936901081765940867239754232630920208228520229489058004648007431186982364626899132355762282774655457712741743321470277507988171030704322893959042308180268633169415959159736029759375259740386809893934711076522029631375648950507186643177400457347273948538305932085176737711901885377054875907933986028711383887505544624198589064354963154820344853773791405480074645583667094233078325380182224393056014391864295705738252768952828784686353183404774312202166688642773894106716038609351443765491641749710935917937883362399311645471931489909929679502176774462152879161373920583200225654330003741816803573439602981512773064278969890834618753822042396010640209790767016821377800952137423651291601760265606156542608814635601208534578674172611421715806373244098410600219380280690522670571308557414347746598291929533958102538664178208461973673088836415865800259655853804979258975293956082015127906489897659589910279389053949845105054846510036423997265506382385219487931449943806555183183643751422593359192115742599569125050178550976671048983867080742903897544419816646180794322066434928368233568056076087395876120963780591291020777271488893715562720739507815413173414550680576151935210109580033616797188721425225440165022860428068179672581403253580971462187567536640525370594301542095479612277687016028101468527975839031340017937297190928959577131454321988521327607521766987018780783775169472380516580661116179137915239256660075565864114053413326370641451494420561118891050196476302769200999287813151525906427420887445936658278202700656168417968123571376410087273105263283995469534557592153836177029459473696881055690097351121822609703665864499649269515443702771306708362506085346048186056730336282449799246298210899412014520626987587160737765282244513602494149301921186834078567401651167928419843432063525594553879951964133052741173474922650865742343676004545197957556796948713705607284360240793434049014340099192471926261894511417503631371250713854963517002395850051730578347406649288271918280089296285061100118079663115575752475407620652227748377082717031849522935358186607279861913689380344118609019497711482329660401026093472734096167227456034506531721259643402379981433184421557445807632561274653918835308461165999241295126762416115657155028200818820195814887711781509778244711505501167185243054617957291970295620239547107843875775776594226148645873420268082067929507366902047910174376292235224543260904491652048379888087938440484292603409096653266026465453324116203727732066943216611146111430325480820045400559912855310949291556269915735252285637720695355145317792148385570012900949902284191561157241825296233753719639699155449168208544326404646467285843644264123011003491277955828816118919192156237782124607939810869491844043587017205162886278780844791834817940201031232504919649184739512041500536023957136827820309538104371505267773463205638154582551543773581075464450750871756084498909521032764783878620988050383887962877326199394020391516586881003774872834891240983754094737469376140375952404790988511213217220203012775956036295354053046257044978781194984849521488341579915450167021604945662145151674598421175085007296501139954480425197640149121147161759840502128433937420353802139706779626539860614364790843476533448491478348125489733152638826501894064724424451541865352550160638240449549833755130089197988980333384616497685363213361155701417705145362221614563357647307090198995926959095016583367199285880066515245404150989331757703196969119809728616947466403763557270222402779800040642168585460204083155550971532285873666368206594739266581390409682678151502998506563106921057151528546688416334156385550906157527896218368437504704754219457783914597572144046144038658639271920624103181932234759062812859107932338206291190979639565548995323939871603071284536520362245438239047590154072354382909868403202953670865027495209010433113133863049489809346185752720260652758035575723283672930196983878757557511131684480517131780746253427760747063278742555023306099726819232808214918420071293199363987070134057734039789331852997410205917156745303464626503013910833903400703550525600215786243535421343839220456089261625629014381919415963906172594917295852095328681863917243307511013771237683425580494315433992611434874839705366932876764921117841203526789556032431937483737802118312507331704460962630554775791279199233674414828300694768545290658911675799681577611969803320511666018998418210949373122259176905958409509187924895939544191559886111166580749312212260948736630574569295772770186935214828487338271399697806617362921855754884536399414946875205201759109058761079502527597085877704515112114601714156756024893510151023249934103810762023078609863485693025658397737641725221489130567221826469165842087792052883188320888822373539433362584313364015538324802002461580649166782615790524004788331270059241208954589020245252853139411551878110254946875503969001770387561656865071019582336967716289725800421288063137064087004984870195709990907888140360592262115264055566348124372831865659000297070753432110643202330363553619212283682052659640672916212994393992086568779691520309373346966151141278052778570847820571469267755158693444905502897410188236088690088332286514257690572411928009192294506470103027278819546793846197633229646332218812138130050293396623860142646343365484347542181154329957305002017872742054069568489010709002397904641937264439104165643557069268006317646294649092270182211346697539867540789645091560111671532791842961973496684655823575495967613294337411936292173911438574227628090947888475418787215291966119007411274967890355087791095542507840993678577302401952987395799285759035973839500561443782297286130709028189841972975129177458334396305507282911624726720840764760683873688186277979170352018550437322337086026673652336295774579464016112173195055957472082035368114760311467086056883950757156516392186034894127569972418715219433279424311588193386984280079871753198415736067369407283902034228326598213824151177267748021872366417012691891443600672803666846806146613945332579533292650969970142575706346781533135118067369156585899977769128472244811627675621114750529239605387652323494255973888954583937217002604563267126244232797084186929430763733344859036925125322069581134288272411231090342589814254440379652507352599919319827883686818912011170300177965719984674291861093929765031326086258208137387761337936377888040541835011162264690961201016770522588102590562225772467783554344906848318565341268490230572071319683490081546734463978253189991818317195664360677883142174728647022929095324982031400442001085233209935745388433962100977571932714658241015451527733130173560858876219972594507279262046539945837583395472480566666739486149953295837557681801373011023262028794255782169960418862474093652213027520909600712250767020062178799446780809276637236793148460931362127292518736944749073469263570031398228082745331094263953381920158484185030735144953398810616833218963263475448383161285307273075682526078618806569883551481535618483419703406111028660092313560685705541282337992354597808837839589677238155558898991129595861447307266298916090172612695835156273823288825795028384263476710519727179039708785595309050544590793691696100978012501582584690769446201162963517414104133377836350964742508254610402575943961704738360509262871720487994821201332216791704332245028867282239386358346048893776177402357446537027749265917177068481802503625385246830049292595098333605251659674091805993906689572685125671176776742931080558730078671561655968449556554150115737589493816042248426166321856113333674064172426221568829084643835759858570392018542135079782619812353836867735668575872211246611801431426584572344114293835836176794012075380654478691755949527343615920568922223563479119947580498327056305513524960275964339202234436594229197336410659933702045484739845458898077525129981095937846316694747279937994036519099266299084451546070487575132657616897710452876634910657304211098492221575498412443077630360205387008584491335022563906435502794334009103632889150378136663414145727526890956836987801091661764594424293013423018442856509769370230434792510286244326612468009679613657035646005731602423399429578042201877140802450922795950601499347140675704332045238078263181278698996827862990131828830841976276464105874934289466798341763557018654025015392975779852740213361849991345359843557680847595974016688728237053616860395242980619675475744492950803942132494183806451967823954774086007837496380313318071217541579906596842153559798099902973880218252017042507649598639297355104461193525362862616990979217253681180346736495303934232868109391348357359777332717745711460625703453704489496564832052575309359734814864599498822420979770962803509043068820108273201829976914270710828466551356228863833070706372387215002902890702312302793664390336535749539932132485652429851155639003276585566907133034224138814366091107573297839964925359073265535924037629949217687090720230101017726956508465512209503859219104869973761835800023610988502533039428738003351879258549281901362628929847946299069223834899323229782718488321969635046500923489322093269673886086728739972835762515236817097283820340481746701919493206133624834905345355149288189468367970579240914994156774684336037055605612849416603945710644233054579398819779120241651024940389822964395405744507212738008048290933293188403460803201244150974795237501690517849660223949885817446314076404366806824734691882281685489876757980018470802548277927066207648288395321253868437836724923117432297573867956600908269679855723780766425239191464116372943481448792597667446718286427642605166257861650494638543770056114196474676799410921755441505719577314663813678108344644287654470002143951248841081830727701614197859170782245850699387423843862805218202255183124529055759141201916912126721573379147323570741979965830429383068086064064839660413922723415642280183032888069779101407358158540101765833456038849802190260328179122261118763543776764156518546790412283985845861298849093064745290409125494988296806355704021156214688097922566349556926779427112512093790305638033310482449845724887558260268914081076849838503441093728740838099718399152511331695389189299844130916371682186837726412234586340877031078746243540397255803107536962609649624153342913557791793051815929610345067730534607338779976923791209503247588145829314876533052646276310478538811847547429108458276186001165752303733287703874124083202780678095740426416291943343883060116650686059589617203748566106432296915031347386770829374269469298682420454643713538458324533004428887043142176859399316295513025148231407498731248303255043106494426332034727236143467145962246583040415947333758444165248606147691712345312955792987022518486476283925165876850058489621530895388461582180048445804839544892557589663200702479461968895135533229034324811184581070998114487749453110031549719977956273441174371951621535744442001528811666071042779334597784004354691767234365345385868332932114983862924948447980795745866484462888569138127995443352445079683314800166260991506685009205463551596816697096712337801133672396800710173641344008815881616075650509767571904017428764786505984029433601679199362010982226230154390771136841353491895931196174535078283355615755174885828853449896088590395708793135120240757298463479944961524077091013147490427294657389680793573745974162600928736074434642106636260883120869685022125090355158785637910279900874377259814836209182399360252036204710059122711964187855204629135087138762242334830452802530432315735067538166671034602060492358800693959128364202525847502544308078213220771678953483681974743231193158579000195137956519118538408899552952324919705999715706440433027030589761239077713229542708504519294356676093690031388173248296508808682948669448559840958156271748020449512707169245044893876765625401051318771501322962821086248664490256308322495279978142565227026991141717129674669736299044998425873728754344016556235929351376719515381847770319652593029397001634811902485358611428379434892699744785660972246762153434092872813135740868200594960734159800801897695044242943586307933635055639261916246267700064143529615456252105479232960039181020575633652549424176334661378281787761247003886150749109317267296490006949453120352260318294799192007145916217971808114369264060560515981874892123675179276197233968764795043072758655831588703054864278011760450994328204336497508782814685820457035157280162180176368080779802551272445083282629413301843686058557223609721699651858437293653898609176414252322422545698521412621329708947921281090019022235251958013510086495351518040570882534456332764183661392447245087502164191178244398874591118277354211232114979106337668211899658714401322388404794937095364782233881618002568817093460433134758536922115087069324604643339037566279001288311622102739397753886338162548687920879165292164099958904322911702737427685934465481347474319328781742977160592807825852689844687604119853015717902760524380804641690618841718189430947655505492123845510456146779937319604240221477087864588925664869241932110052736730874145077831775598205207116802443626764819647112284000600096469431655458298633848434506571907858225219006819673677846152396112019682604133979862556359567285293454948509778396077676614418806610402238770267633211899243778134276635878040313079056699193450848312877907375292506267514782782098985597974445436091957316207173866646912835521979449102590004040784968554681371093849725731608896343020605002068763008547700261272140776975816956766043046798129287566788370028904977442879529482176340751397216368313456109181844079494949463040057245882351953331668277254228348910217835839286438215658927158235250839575452215422742868485700595877193700094220914609696045599895514006925304273811211017831627674367399023706766352984093363325445967071623724222430171531803041738281890762078774787367114006239924263716020929271051803248180373686775933782962546637724836303344611930421533931311888236641434774744033596932891593142580130473431551830763886857857472632083241278824554607095177689281099897610127684497506310503766096621573884980522460927881755739837663526792256493339183129517642584088107544940854332978888768738738796303177728476867490905391157164138615638849196649703532457641465896410278842753948358306995859949228327049630709243966827952903680658910192687160784475660654993248705292521323320839144997170368801617674396908327179255787838845599925845619892386332572093934960654143095399363751944536141862219149858519298224214238723201021176915055114857238490435213696780401280924595734997611432270862931897198320205467214069820308690049585648337799197334887249811750541914403280700006063114326605746388443486319690978260718978281322747596236598275741275120947530616972101541999039202921744291523817980871887239121240243311594281623876168777946535381957199680443326068328797970460622747224506828104840007408716922824060588201336914553078792824459626693821850192054755112647165484067661200528186693288672336490384257866087940259176621024099399132674998637841210422471219367373084151144680827213115482939751457564992315704013910293522954263714946934144870701720094493973851125656991550153073633296274719347218425981594682026991844767406020425317899809255290586794294580845300177873235517786551940568691597227930841695504499621378153576582816544442132097858479725422108677431284368909075151832404954395552408754326681128618528863501448577523049814802292110759713328141858877197089507121817565441718775885059288918763220174844088213828540663219266103260396276544067832908480710915962370302761007980353833933449100143557200368028090956437046447117514270024282716783505496931310184537947515949024217169493047239194147811897943929050065015998923811540747296853207796351945350508543390636612171747653980067474411644405163758980243778456075667607545063219636117238647404878719991282980597340119665726608805103772439876961936099367595680050941024886223196334315581869977289713695928108456989526508203387022884753431126294427178314957104087145980998276485990260699547143531375513998596723720868903713550229108255811976538027788802122887342382447143917997153856494848214056816659054696848749499837441692466233987203153211065741970124405037785557766980565463884094676573216479441198592686787364966790113814284190889463078611254884398152920398782356050452398049962760871831753185824057005737965798194968846507505588660828685555243204756313807299514257699484401124992308934681585619651473030682051535321355957118409743725627517935537437774954177121376158615274651306896159741325311935746412870276909635950418992514272791619565307322046105709138389860502378034595959724339679877311833578745680368030832776965076772796757176365467584722397126416904775900173508465116474954046300921495913656497794600236183866961939518476799635019385762142811081417273884831449213851174781501004297616220130445775029292322423963434910904865146042740165626512602525412015628011473208072469537584003824461767371825258750338118944674824224720219910981968109174857673152100171471759591266714096623593471144824317557137778969133612236426072306492071902988448226944776680440932318105928915405201630636986524074516242411173771690782053578564489316051394022220933004279438016339030897650137824951462133272270601750272867014194495419724551603412721735783848233380752815516316178233766890252226406639813145636184472475782474901105813377542376037956788126889724139076884544856954198884190083261651448340181364461328785841052570753538536617637040482644408723443293525283740076623635838628106916927505449994466810525462323432772546386800242637790625897032235615706515104540821665302636141799263520270116353414967883339633444641279470244012414080826610485976702843824251535184459589792935754339368242618521682022246280452301970712104296435597130503658718625250148775766291839159597725533269017507690606294386550865401947655371503468736366844919456678483330568085163153325080908639655719829825309445909781416416563203169934697757373692876845012717032601197562917324115441778975252590259049803645676580963399885597058291928699704010444698428313596356864953446244840846607619022762482328237525785943279824850621889348110942829719661320705164215411107486035584753323727451202661402695449783891329853052455965903942967947112820313718304285835923157163789173312913409725246620653207953420639570886498542023429465464979602194465360462618455561995478582818341055522796370335797990525586544825545552422629539050152734032142905520483733916543313977604527445319006745912374857692887393508838468712608912869446423830282073690992386868430477765988996032426524181948494172923172033975770182087697658784911144300291689511609855515679020621154700702578599007834405648408490869865668845869439795500049459890643491107836833383206325257838048347699498869292470611603355555072983826103349470815348375517827501177756495947407340059872863439184440401839420912042245613816619604497620614456091624896928510234048245669197357216758874319354656561020719986767070746861298637879165457199402192627630760809099432127919237076307776878179627415882797812238920981495959494275165218860079066877365652455058102014434218036894373789004980162018323855142261930861214408296551384859286049285730474516324935246216503522668585862920039364523042636397673232704024833285147479111761326508045999285292390201565867755873422719074037924575784346462698924492471714115899098295981429568821219441066997514244251453403332866021287294755721218072631494057910716615847292012847943612560641172986290225548597666774485534138168013268481533253020779342544597394137673893303242587799820998780089732368573450622313276558859374276566522014187220448506524568961560119796338364785025203868678470546773844603285769338960982339669200048883988604366363577438565097449760997459458088686321767290871644833633422024370503869514996316472963793907778265813619968670749632439756842215539061581592608644604146989017606672233535864084710590423265244717007475582097250515406474917833021097915121561918926911004535680764618658084794322174340497910205889089875734045157195595662129517018252917088073818261355993314210488189272685357635960719161134094559404571328879433393503398961421933584950480988450771948549423994619117585071800765829056129166762699889072372791008434387016770063310586956911793442425612310663882768517686107101348293950765080034871581034135983052161832416947111801396942813733180311227424955003671079578133684549223546491522439049810057630173068890676245000349302062106460403348269667829603642909500891818111553483488929781074770233755398397542712926611592126650823268160578872616780401941821011029035603649753235701010980167915596584289194738382625240582222155117204324781013653053145417204540547245119719166050603412132544247362866041529715005989592305282385252171832431098856192522313056292059441312914938950061697821356880700647545772098322668657616047303962679756407586303998773834855655677546345869207278530483485374625910434909294902629891894349820697957295925519415394212350526912598669686878884304462838225872989530201970284604356179617161674709372640000546535338458745427825455188472457361147353042405881660600191273277353950761181052367977922084722634734164014920035896953143126903644127223030819747610073619063887686431251233487433449725541144742929960891797873743476507688926108151656673557093514079325470594213021656225783816121017360437087091901136855635591674046840568342154222367726829337193980531874800689876662312055886512881370439460638409181804887072797027043359214000050662579231697231520732436272409053328615512652794688905391466478684244638470832000203182897394110205067861780613438399355048447791426974179457060852518806562649312455037186336827212412953212611241375283735186621895120875529300173875598542377235559291120448665667037029576260682543904509784092401133144840952655413491552855923913720835431713562357618354261200419173403499776440714469325047812788551000578583001011566036852830768235093635359746879999175293014223703510441869941411380108981294128044862547276990797427820225446654979524859426942419033135455235395588424102015499792106023218178997985177405723305437539143009050923473672275764399138074691649704979486412757159209081469678395366002318202040458809977261915951061974142612014468605469677469721023855064944079762124106547643352882378889997178081484668831774239397667639405280957431260741621720210063503372859256788486575589579116522512335244012499340682178210684945771068437193287527889304805576566127997801360947198919426303642795740744357134495683863317348956657633380433962249000646233798001198171387946517783281023284727026131585765588471823083371284840961574763399369355463722820980328495543109921926780224622435898227785730131603913034350878210470341657086962507962555330283530604925802261747799716195357034024324493822859448299185813063102902099560515111383829524547850874871731693819168829924598573270257026854312783779029406800553650712632582024163707480581556029523360089636028722899314828655276483865797060757811074935545078942912148132044785188709581517500128029482014108708576178743477690184088048997275584267122795379755371051757585076708188475473180175102240299575033329244856696151989667253302966008358060158740892847631191376914575134401053440161549582900130333679233979615908486520213264692987462343627444545255877077425294747517337020658041536335960520906909829890314031726366434620331226941756749966494752827817396555610240085125237736039180463107419568823918734843944915819154978187338862327382687624219930894736260433868545045558873396463144786464916804221442304152881555809458871141491143303878007336287664951931319703945057385461414898786883981897494844701623464806364304897485841679657020521374880366243434665894135530123455588958902827607137523915136834281128645440637482642523597277230420122959498735623010871603971892454522651463273427976757200084370365694908107173526435601299271382920381693634271965103149930269151050478875065917082180935811392319814856649949314959934259852925634083471567932539733538502629516159607956580712504072885656310866085038304924767512442989137373051072372219899157670894499460580222548085241270852999076141139886104502064707906767405475241652421349209402871846255561368996100286191486390733340904558514900307231535991594156727665632141748202512578335297073259667687171511985562559698238837952637976892333009849066628464835468175283618079274638113205582852110480341025858055023573527195137215202339940036378323966295296392777597711545328596870320400764911140711836683498841076630555793015726491560573329261090661687162016451601838919038921281634266911750246633448502749120791083587031772243130384950987635626237900477508099206869411906135663562013925863247976611935871206276836736981435062580312588504185047639299692674052313643523165092601624045706477942605442884276221521217925175370949897798086977355908050673692973558119628897572957367781151297160822618939304660257286816825281545742457428584454636550983298766658818766273191278428208445656215086418476180235738752484195909833454834846110936693009562408318893559364617157514967071088547104624563813650892105026100206367128118862959739017955838403420762194619401992655801264763739456614819417061607691605081033443859906678762696137111683724482572292958394180105002909880168703400704036812311727636542777695164841660275461124232211195682617649109639409877116662334053217053471663210308339601807618650108655282658011842390636406881948263340315715235014652326345540746753977752186276524734351193965338202752214248077343972201566082519097396450265096696543228797538260217610499260203731171199441055647549619597753430127452998865169679171372414650871179127034621837545738077474619798788663968581307057268748000493466045726833195660033811167151865626965160660283960856032186020269797402757351646138567326801287408963158989254267056594114838063828619194064082074679955767001384191296885498253227547550046939635160393730414758637909840892232218965102160540725188593225421914960749611655298497402515983545874021198185021047741928180172545282759538827760822075740741870751253914194583813205281612822612100781244423329333736100285539749815772383845445484417113172588987390126335643446736409623205196111537262200445803238860158400866523233259499086472168661139381244993624237730443363898547187682043822058809754000491666362800674237507642655329363419995045228186169774061810868066791656837383085675017005749835615227675278713722895837757559150261923121890409683341075082071238677833645420724857503522739654665994935258500156890787775491972656212214247806604737120612614939160652936031944337240207177108682420491512441527194645468007910308051522199127735410417326155449545112364894039665161035614127233713984288138118909095062183542919230379780712489122826041908500980135112075906482479449430899707146935009272135647912055130910611240559780590854694295692160378041938023005129077525156987813383505192021587254415675869101376403412250919753285390115420574566679459941935289701568229619199916161975757163734504633625510498809295862845323385556626413696701982273480836239955433404125691662738581972804116238335946062785730869368698993569041193106020649941932151159973479671496793529865762336102246221348254619471304560826221518391668491169509217479689451788816455381225116713313508445418664289947224598386885023044356420245484219015890368740592313695423105676476706961749113706542831005888719219594975869463518346666110979247984480187734724305375680464927727735031323331529151634908197924921230173117129455685848538784643153874932062058125707701697372238829237918036914483003818591654460483488942033845889177529060825885037721954368125966223979169751991715282082752177051829047355479597852298336833226565637663444277349328721750626858807091781761578425383607728841335238265144600325753415815659827400161169099873244283685052060171048956657034764122465670097316008979737320226375285686487085440646697849498685224941402611813950032366433378379052423192924829659917224074541981903226483562329456092405557437016640095870764751133672839291574568676483548477756505299529991629097665194563800004506847738932306762446474830071423277014124152655808109953980302510053024764008929167774284285064940159624568746090246859676839259781166209215633431787355607259552660157360125924171353630257254522193149114933944423523953926372113986524577514098399456379304947894646888282531258152257371847302695920840665297326032158792911967203050614561024826405169375009781769775529987914145422325203858074769390793493152235462743275397658396819654268309837073352083182978409302502406429156653653591576200512250722390095476397169247359149976334918116749819297784697718407928906456343552618967405285612055165584206485624311667426745659837217457860892695206787737453904661598325805168730544602487746961533203576864590858213936957852735659959571613526370198703036439370594217722362860561994323161740847320477738215033210846842672340149247197752286609629856301178836145473484677295110331309815650245634389061658666235620109862396729006208618713719247887403127284390367697428852724794900225641748595222063736735643525112888731896827771980794138740190544798369612012831480296078164487490737957344282279319801603242533462487457245352668542683761382155644007669009256381242092542234306389703833270264470690651839798146145139827186413597372291505519620395731090470341705327020241049338638475473005789115927103341186027761299573896534625435109695746521719618104992173512210540890347555123869342349416839492012625526133177606152885719041102627183281116777220501985287474732629827464393741248526868115818009523093885436906724275062022689114719601907823034838766839615752017225538673301536548078817456208157600977959097028093406909694504397881922774578127391754415261215984494176104558918028208834346706868440272070040837995303351487190754896085622057839460806086506714007721974920443286522733670282534554580150541469970637198286436354094843653046692712212055886114346831048622475978155248454219670546333683242233226844756902853399886548994233937140054061868416775551855497026940095293795699796779813853009407813291680049457681668011794894306645651571675893127976033008786259674230854690156301699985774774032457192994951883100269846146991795080513895670956208922152469398975041944268511951405332878624610382020983493180155116533310641714482670095796192160524552476712031693097378732523016570741044876058342341037762987743306011730285096765000480165758175867922865747855846373398174652109080636239644790379318318896425137453625113598319863374571427104325055341613380451824901255057949756237135328397313091570072587737615595642125000360417712655493833748111131635971365066971209379665880238876726276352442598089909076923574030432959530275118782821427545885350009406371645255529932517069486957088708625499752699345268326897220352113220593847927202384788049656707994830274476019326628079411600606816627174413927748304387723193648077196615165733833308231514561221668815561195785966652389023611723776023316204736925210648238344645769126699079691055048200929157560132495009948228479545986923865558391472412727013975771550721307606501243252445742845790202995759959421634173287186180990521225175436997307796265129979746453537842241760865900332625145866370062841126845098961553356871207256641988036491324912223293006206378250004149917051202106703934052944748019808416782426775835849918563572157389128954513182083590518046489186410157156331265964787702463499806228969060961026096995272115781747391016819631292785278512600144463976913818265175896886620179094561377679616066722944164634197055421603056138417762824059090324431355892742031324362491313191697658440733840857521465134750132321402974218751407681618166467250041165760432939583045111318561548614670653278959828126831597221289156773802769795721967970771930490186558402408120278022896091650786070342901872510980785640042204623839740326582787463097336108273817455145738564971069081532381759014165601828507498636549278759205623582200905092320898877479696337364396100749884565835981442947731948204287838047467388726099736710265597217087641712597481082268022377791454101513667187064083538197484667647682568969159638380251093747175318122532596693371112680085684914811063961903127988541236170791709230903907951845515356213894220999576879831398215159385589494875646837891257006554158650489843120064262473229018311667725370619948752442210922021832729705961194831863124029744747462682218130965073164441960621223005245033988827179630575852437350832500898254131632830340224817115220565573577411635866823992442341113740356212450505512937619488111765452331569640173338563097424140725151446281808322716380194910034779676531190535988725924092411595827122364759339131248777744879909501016146660081635296091956578270410043831585929732957934530729028471149514486980312044709193104909944591836218176307895568692515562588031164780245503329223426960896214788786477520800482944120281307618543348427268318299863622538271234681701687713451503542396290840014334843017991323147259696898072880795104366906683462935125416077286046114614733157928234203101314587539211949798795033024809432732843442581554251019534274429885829189667535509975549036482162364242689213868992449169819760032745597293414249922935999506283512009880240044818794094694296573980352358103305463962559637061157063155503110275334126109731100211083818710883281206978635422849228697552867816147059935942179354729484197577049793336092061389432967971363057520034397204460476924689923236815674205641906834477683445865832892188089523898023250045030636317496702828611066998754752979620083551619608418077748707664529899424477668623122731745005454662084191136467234628164186119264782820713918933071701528688648800715745469803830847659398917136221592422332208173647714917316333606385449729382396333714611396038452972856907207972589561488717336738386358011771716909355812677706737407604301223854690566282806744320508081532443363391319357607219298183532801637151182513379736856051071801135541134558023913935696050229655931833582603186840871092626688069684919841513473294644994625381548866252966246081482429311783639481572925635838836024012323089413949670552692152170794021884431013840198637896322000504611864108405349147353478105340698214777632947097734694776936839533618916734115767004396943359090986964941941837042472477226850645040708290211114778753860190886319643581006670338408575067991692680667657522054184260571036059610694682852426451866160527151197604489991478023640367423965068964448370501987378859066060904762563255997927368355603470591165272941258663682889960179146976393892962084270953050778640797212447520055453316388954242504172345358894082260647290212170856052892035026450384194266258005389638006097179440884520440957979293064133792772590966368114053682276297114479730027046414371146875259279605962161676797295036262543200953674870718433137202396504457596997039650431093277998241700096023751336553197667628302097665159520105265915730191307493298291664760826730766349865339819362845346612266912268954105012799822603483349615751793876974149507959190755953120937069567824266574405563635714478590205005088758241026227037065447031849369750549074860011453720868493625390032637444434869143633563277805195568742821663633261869599661968026801147230066356728786973675812655642223394327084614956850202933338483684315793541302900510199118878115339857233996468095101097073799782282923095396517454648553891575423071168873266033399946371124425953578240046113666744385164841253177398609600907397391515875236981865348474894727366162524563068961255346483300454326011091973464729230687176768436283121123417855058470892688240512234600848133985172212488406939943881233814208792425711371483475175120734558317296760098151862512430117580790131431323574169957335304631119766836981769353706050536737486274004691444563192014754323662158569033474738946587544896716465299435122246023807366660021592585285285805940298091973010355983153961839083335266055543425426203243044154908795222809629866182412255861401931812927027264551305186263617506712574209789345974226826297871036204820157620293144807670788855503637742164908098633075172888788580182738900972576013964504142874213885421369068934790254476168343507962818151213265046134684337054322652068725383670282425643266555796072839787812280905843378990389174607889768050344610583102873609011460555545624064016635550925991780598087216690011144168906275445486348937797642882212676833432817309583199783253606261632148889114357498276695347510290333267308884254983171609049964219196184940580927895143445414827684037655601309776986928629776998122438370387385523858951540110434397611198611224187853177126224959743877870833418820883492134524551801269714270939930610805074964114833561208608606998587301762940040300370585794382767970776682613501967903462131781097053603151336867349235867837131491440727983137739888856739627868793362387528073949599415195520765760848251956466022443371000457249996641986319804337104244346191090630796480806875592846568343628080903949395487498325576761398766796040790461786539912321118519040467413670968793160737744870291032139846602360277316544899296283175236326838569326467604245593201339957981324779885180847124341172312285976414585379217593326544975439013154453833702386812088067214904770503974756017679298230689826752513232583996700873267326951106607610744952921089251350330945541809703395122628234212623171725636994412491433585348194184076059083903442214030768155607947223481282025094977452039418811227248055243710785690756337027306925561056441802230172785825933801454189324223982008786605703417482866255565688874684085941391787911910906910126810458652794267797678312306823063670307354122942521517613835485787889478378153162628031072881872408771992449693548410340016084141438910222583947035602041064416408514777090126240410093064476560670496926510380480735262672956024528835488127758987696071082245137066177987987106250732505439061702135172895035443009908355778974835963855654776214839979418034001387165560567139772019540655835141009391243865482568499913880038106947057083393901471697944377937968842592288661734457074174529892129904201859844472519991991145390325713268908156955768682933557570479308334294650230084060867526429158699659928583574557276251043565403330407011800147369702572534627787722080411071442532801822403975485270135474639848349840725433598897399796261828635084907321278925595805283445216174349679656478068469880100731832647684191459761115627148410505296974639989764832875834354860277339044126688469445914258969272794280997961019255057636872178597738707519445683136348850443669612801656883231871579527811922409436971749071802256241772739945534803285241526646046650799015406288603954694242285674357462088647837118121289227746875615510247641922071250346907808423944575741223796460775782933887506682112659990165487780675076565686658095958574444369474462651227031926440254431833276737901682628469818610454358333965466507398980058146548833884249817023485871807402426478521016058317779597245719575888151550665171003398255910759563061377600640850329042583729143573193302942596813448523457867137936936143921419702046258859055965770585423865018149601209443683362320852359327571163064288902793022840119883615084827715500357196793609023132324353752754540922714498216942759373200841927594182941051934961723391540076181986210394012645679626182808855761471380704976160712360766672552076188286328986046640866846421726024518915124827385797830034915936331727590464334910387630273971247633145155603195373807246428990227287375238416854805603354963357071205097840775828445214781425807740838226853510603122781441421832993185044062761651212012150886279094886612953217697600583225285610113450523885200888056422266373383378853933389236199784465523119441981635135623760779090430033239558805126988647543891102673986852221270614227315078223196622831851158270682641829543023693195318571938335731984602182264097576749076382470088642524203059385650480062136212502202985926608783533317792820941288202896412350440950495407342823544894192600323733997182723607578314946502770656143976370482853214204462060719181716551898479502623164634787290782406309841021771603537674783205121330856956075561231680899567118947296529634511174160984318888670711359643944215548347088466228617662252872803652491353096383735577665890324173637824317351534409491943632445251136570871059737075053324162043680961554880183042632847078484226456410025373727760954826804711349171518261371184334589039228833621435239428590450680079805140869565273903928663468378687012950287833568713730173351883361133005159080887031629664674930866966019393498409005673613904447400535941346968101420041880879578288477387373668798530583970551784959262741835929652837300166398102857868064875220057130141499105899409515398722767888829446440336026499456872728599904306944863112547621687684843825798497685469509296408237828981023459552258474425616778873656287344733339826348772530297881161259207413320219350763067355848095813955192161787612922399505628976515868973799400517448372090823919685521940379833414026373853294117157222130760952746315520325154659502575754471379154724030911847668893951287043560452716148524588443720568494820208274519136934198206589893024240951535919596647842221420196741933348718107571502167264422102158041768428497773381783827311048201657326795277653153033818380429327506141329260246318854840460062474636074241675991150926858384793711951142856460966689671007274301160339013773527584932763824393512741420933402677045605621801751530380366299314611241498376224908977623305555691118319008693656702381790282423645053345039976480228404193735406402705108067600411668051088744699951226010104138782484722464439139252514530189734005909992434158899558568793050527973908858069160949728616106609905492483112067431874985915506934945922424509018529437337042765496474992678791116759991297788113990297648347678698151495997150812562660801858583200865437059250570964665944323645181380374348645381096394484404923729907798552859786142278500689498923620617712636342293300081831608294903958866049332240467035576377840869467151744458992936397042086830185041956832659318690992470348515110785343314963350374885833858803850319593453416145912596905067786681385327709460652479452556483201806521596746908050186276917720530569087746064928702292563011535954574239373364473295799247084698502539731131037239683058228857331448206354683696342746195653406955794730217452946832027521626491584223450615768423374997412717561610218522369932008096708130777073175420783056064275531896489849086825252682843175091628663116883646813885308007887889573699984319586785406568887187894347548099269827797336147300273296609785762741527686393107237874307492141693831589531762420952751202784842415552831993836831033886384584681103403224842874844264068928999452028544783200008724611583183634152135381574825809298884209405627698896070134702117739941156526734318681669940205440621986206989421857087468496768562338007825809776838464660652434597906324659225987801147471806083430239247480867924547564064166428023559880700688767829983500665039935545944072558201853715094583024627667542142131629032681254176174068696930048324415239597831508978989202757112106153754080974546199119583739185001919614463552180002532411353984657408935498412253620502214756779581093884459504056135304339621689484193236676958886916750137059553612071061188320318454118519108683352678603766140951023277032478975887789585701037717482650471095464069600369527407106933071663073079753060329069196139475733487262732864527785193650758086425154215807985618212494369682420755125712657909705947771825665121589831059632713597469355854554362830388391325215246957089703258760226591983271650867173576623085399943883274563037589028724440459316960785852670674715604662087721942584818237925787553836731903022490961649357762191225297156681188795515609015481309185212568556038288364689775274251404255436246309783674410587368141765911225450777956958309392218121103917543349023485996237749728152793943363192342910286931369727854566416314854160385206808474739141201636366655246921628607719273467973338024920678347352659902548533928258067316837537924477084135489761181711317157156829948592359322594383144125039180385320458178008212969838724965744874747960883332683636252470156238875853155167642402183553661930232527373295399903597164354627131655139097543864864195176516069126371465821864608799134830721784953357770707581542491033922007238614049736088894451666200738173942631273036997961157800558326802250855469148115079358881779367648358979419939879616251730838410795423071913460164283470309891632791303006476484437334461263864748719052760248423048604199997871648029302781536321067552290417104184980929482542530056977823016604770370261273003075403206999370106998759785557827512746955717291987536368920217811367381964511748379323685582472589658555853620094720925401085758722960814788477083747729046028922334867681849750255305645506500056324264652723459755484493980754077497196930938769423311959991229154957508481408454912485164734220599454475459363995212860156340258247145855920326129650317025028147802179388395363006760990227749143791842300626575756236635997826267962575119915949107832513592174201711622800457432115844388771396384215828505248428298497865248914490456070002248867544165709857980738353745509578383660598729435732903718708255861603284889330276079832033231427766033452956729471288256993916271551620960328534545458869919152037857930495241932295491413170133057127695046015051761685712607499485259884344098452486256170623667274864987565637850019524352355210638784889357386204990081447447676353274355406998150225721196829277194967582912705337703613079824281917506066250913768629270222499549065896889374462096650444366744078487127673537596080499342789799127362547854666808666980355645461926944873564171010117923559220274983638439894717961473702650289794157591966386083266436695918866574806608417518399649770011007966496035438713189127355153735476440113815073033312130806756314748463440031209840285866402783112302880824146703903331810229616451720020456064902994093584335772769096466715000397595401121404277033262505551084004480098889677361814174030691243762334321792376496749962198351309483198053464469452964204110033413493506277366994997261515096244695864936189728533138049184708819036021330367631253081053868196881261194174086519286095914840135266866118853969389014830746808120308027806419359045734046277334601493770170161516239833652433637237248474615295851851976148262325212950477429777747690007342657660408208429307168473401870231219419579129634635459612131065631340638098165688457331667907634644984449425975675158140498501306075926189219622171113514590532911960606216729189223097947504628022097978946149629073280544080254093610901799382452902456613157308063011665145572320733765866698215369310044633109230830139240852422315517927075838509557465820008716690220883519962589521045594644409451926461264573689511313780704942056861392447540100470860746808870852631186556198599534353338628277932761292211239961660369191250121217666964857401559471687147514715176419752890033248840711379009092738119114009428117890663847544563437888215679656622607048037774691406138550035600325105718092149885873934014835949384522462367623198429729870532356244346747778348200324396311369338758352002500687940999946030067249263858502542336932851099466086896427087889712199099796093273564033869392533405402226664057208681550212559021550897537675940363031189137168304915260817874314105203194351942960405400927741471867350722041435205846702142993603704898558833433553742435935628171296744416145310606612649027059701552152709779578122372986984058960270271952411526102592324435119547217500865584785601194802944137981696259723276029904734002365525149541608022740127508394117518163704878303496188472324282409384945035018229192803679445470008077292224720107327619495228944218577172339312215156185597013136796432960731628978310879574777035661035674880819099413779610173170318299148919416972831928544800209884007084633537789240500414348266710954208064939687500585367185826339157659934354184269415458626243765136078997422509153668270160642601996567654597855963176624610307054047507833020449781483811142378553618912113792230408114263349445358025457655547363276034651456286201239603679338095935205318532948885490128539959168646525709980760628871911852961778677489378477802160415208442554576116114431948554694418817513622166612780711318741478290860205517710132596115316708341983804761089208103566897471502005591046363970570400298596297987098659848186985855548611432189436052456233020381629557129640752050203589843492037032805790395189226442494601013468658049142770080483651620616730150955462299762195438296780048052103339446261672779576291971979426612407939675459651606119848301000616339800861202516809993936491982999753460649212914304062829905380012315068381883654231535318404500747093111508130069699215817115757254528134507725344269876898864566406007944766294640667128909159924096538543916351190754743969952408782888201702258503570051263487845841854204417949980785111851786594719344367143402895641159251078500885608228649440429564964468482418297017391506914894135822911957047354260541984725994277935178847909718973999428061748351724549181981578663796534779862936588858173370604565334266833176150824979794345929942048723097390772239131614862182351909952381911746501241365969145610738396498143269530819753745725536829754330293734258488032489468033935337983455391692020284460270407274991703193829933511963661747574217060583482844406014545359329756890904271973085093604377702195411274173427991074317062369218861864666480316095209878741658015178367623756439415329778278378579100065684474290640991779386356224575362146429862038538082411474684139449001406191106626002704917750525390096642370608508052406205163261749612791255473827207369144497426715125471197409243538680145785363595197331028537595011013627716467395232575075293931130365719394865054809903797579678936783252808667066953205935703569081599669645418839518939189277230373880546413798073515918972569105513740267672342362081969413784492785890827242058590764037796188667675244491539908426315655730443206624679812409716169267130332478444388404523889184132755531790086812387889680401120818056581347730869815372334873094988400579100076523901580829098106715178124936469018356015091470555967360141955335113301715233728560665249313414684055227689213465264955159809532387402449821675221960727426813047364666128147908270706909413454555402418287922961172716062412144573737386821388498809704276701188321023638637899902837206876276843951468936237045759349629379975770776969259285624977126962332168016523626810672132991053854604926647696786070408858919401183864977123159611495320572942457559322229864936845781362998716316724991583284802449701215297800639615727978192260816530946022572978096208929987399773721110837822286965048983601594314465208291666796337092889650357394339425224851530562076743449176750895271799742477602363749549564279641198102233698443714607283837370219525871052960850583308791741981732252556581167842721833880157866200170456730638376291222905467032682036816378486473614990067784984495569798729919174548303547728815650835621217256702530114357643149996995090546889792740215291549957532807381135791422957541924596483474741030247692309785419856393915228527651417612027455380701694611438713677250117139108377727844923068717326447264895254741449036809332235092695556770252809251604881551567901366781073916436261816871740597174845367392952817879512418359574594659715389632922478037373486957615969604041519153467386281066110998282235867585346460887567767873704789876673185958393582539069504031483681670126980780824178180555924116571539991426348695061199677578330928815307515267239816372083721263502737753150222331567317264679190791603182077702854741239282401853722557498172874301180834676377952062931937462916026792432015876974660080201734935686237163565717260624982908716048648657719871717788419153046444809814586766929708763222195209838040704291101725528393755237081950437305104555654945753729135361559927672555952568137516658059891833175020834216989719490831440909756968941805732027725535569701675115875698991747376058210449821025518282964269342409580968467724433472228857569962026485005475960143774120567045083102321282047544442861982781028845477575564672555480677554122646839159901476281072000641054688346387324142758642282683970871886614330143872250237453296704478530810575590595840424739661507112781290429276523549241721747953860020207753147012715683516333016992398517863545751299473876513559858014629217172050926490909322482728133582898829129197874186043230791926849835909493631197420482985118536444939164248877704221930106301258550951051994484484085258899137344306674571847773734925009059108941845992495677602869951331511085211211485032848483858437199759250308247334162263146342028517182993652335203065726756777601336756408742759095968623477736386900754574529139738782395086299423660538308704917158605784518271382314638567229006673246002879794223107405870728103477305883014587042315725646224180540389869795039408945187235892270621722302461297817985563883746815687860497804533694971880243527633458377344695414378735945555410059219312990220338685067908794696881087689155289350218842048819806528870073588223229324024213763040092936429821961481274064590783369340877004761671297760898385513443767325722328892553846444400132747001873723810278402516847564216674908792407861901667275802558848955434571068118512861649482559260016844251622543217737160121034393943310820907193251546727464619221447573509181981014850326958588163682788201883612638711870349361099361046929786270082626811157597355348323046768061685192987568531373784987443641517152798749896074159583637697061229356802910968272818311748872806382158943817936549803398318185107985763870960979606470539929875583361550906516564258787009888648077332518430092803671887666673828218179428525901402201252787105352403594418493374116733983114679281479457662541678642719232057957937312861156716415635242510268148624320324543544389139962289633536443504527396132631407081268880698672607324106550517607362319897377142872538070578101412316215314455036605291797838732941920317371430075565896277638105269849327790388821249813307601164269145394646706715978322501217137737235973399041912184467959547925038294217545573260110530348726892034046879358751749054956818205073803316722398055564589833051907300025512946786406310561965984298139386636708486388002483242735348258016645164394918552264652842399119384772024596386446399009268141935995492044144043984131072234736164107794217220615849602787998041785388433231598180135662472949232335100786714949160648500307286941383839296434929789174413459182742396938863155644974922250038933544076897321055032365441650048710886970341552626708986513219230019574235966261565119477028631622586692524170107212672524730046175066129010406206479242808533580268303086408146766172450834609633233285944247273034744198201549144713086156873267895000347639442280641415910306327420040862444126211486028895374199942901042899977783784874241126269387397809709056328519864833791357815038366808507672516808994979509823063523831104134829338354124465204383932957545771619708052647259663059561564251845569684742393329025603614015472899848292566439238608351369119784425697347157607447560374028246830082785837324746966151269966698588071910076842745506960010494149830105884700808613398649613505242899854622681436992660920480873063580112600796514693305595265933822363659207856158727289465216666642046735865670262595007518192365111290172688090689619876300780540216155806860585817368384389523075234052629282775039060060097142150107823598345457414280036155875755052122131870828047242443089845175536640499484189453836491252986423993090295653459184964989068480319005803368360063521526499561381527267700726772726961543406304547609559503889565249213383568308642224735701870753474853858362399909440744934678674337616129862373441585410223734823289629161831038625978566395021249588506697518236911752289257068338083947490984982924327165144654795424423951083010008194960605701250533912614760867509417621261772965366508857535569175463690131858735697466988552166110815279938510068014781702624303203744876447810960670607407286072770912977377706038913153893362266948608348863810651434349379447596673752451321789630475031644344541092202673066757917434091245990151400660177721465663033665099908892992909867006898666918072130900034132544199858760910080114109986093854166189340983485394308220433515608909587681670681933550463564654691380210302134415561026691478214522291908958480617685388289205656337802094684086642951106312217575958499683734947900677506042226283557360182366452214147020108576359239271239096439612361347989474390305424043437618877294905263438814665963749198267370341432435593309798645409328500205462644931541205826819852212977759341634137427419396293440845076647196177358106486961209303922566425865680902089034049082188894540767507385819672751877464470090211149642236358454697555059060922100463944421735904581180007893094692576419808378338707709203857146917084297196289700502140396057541326155505737071151923624414387681465757900346293094092833876659387496969743073612647761163378218319609026211350195643028093239559832219556158359516621670731863052707024173671410283184019772845558290856926062848597483773059204877748812051277442166313495271495676971780307668025409345515596658177215170172370653191226965498147003650936474193863222077017042078612139417987001885373549608446364323589113430310375945877231140480422138235206618020226544510202265145562712651636405063526741694801206666367106400166258963804354646543961464362623827590323025006982227205537191789462311854789219310670855415646003881386148027062497592227724934514100716043587558362271371683293657554594244261752120730784459304021025165362633182310025356935991297651949170703254999427838933638772187865999688516403318999176646867304626067896654263339019986763269919009716582191579668611948352955689427927687923951505553235091007244093932485319065814140377714055433582413669935415844629459353331003053467644932804103089878656227828934881823525475711237331232622603389838831744091878830308471565984726240858334228484546356674122620399015606202990897573608926025477434940726762807822907964314517145085718027821889297883203659581161126643975561047995854520543121243751727793646182193799828320541284883608724759793581676035855462882851734197999638614034286774984539631615080965164772852858183111448846852900515216891315959800356551438626040736564253052498729466606286668380259009020349613748712798680834937168457148858833931932599893620635119307830270386091179384230980424143439473273102465092104843153879877209226134703217946735569267755473510880228068765483013555488589978067726841590664388342893066199142120130889865317193806338259076861182712324546733250093030852500103796097410193019980209238293071022763518975885585793754981021568121013567254660405089930734581508241085915491788178861787604738234267840410216955286514281909316203442400662815349307818214394102968337477495218553102428145629946621090939435215027114396632097153635400422481003874206158033620790323713341174567122913853114054047996578531537315261473422043101813634334578282212994201514105044404412990567106934155886322738132658187308426443373742169945712673575530221035878826511438946412704151923113129236257704225317699843668562240247678554440947697488879284199175078368275178190455120306027575626165910051850804519411795807314149378791557050060008442538040616159275109437481538235742644791577438481512619885280011850333875262949711449008818893309842554528430271996604796190361178925062655800305711860191690623334488724951380324273265270967466097419305207339074177503806911164386927158900012377237031389817949140192702658809278359152677731771180999764948833308668866557523428916959359447723852745607532117593068899176178941295814774802026714906611303675725920492559098543296112388439381806673163239959672842256533323945667545120468145941113175325704956029556166093932471400869597535034229255964216207341539574670781240765566339724631357201704447955509260638847322622560970301580706295388946406705646941141693526021770079933498512431026780868704229723950499417618550389047659521074193493196816021880300844162071155659255436052589251733677355848544784954083883563660941917617344392864513152531012044061480513204571453944262903062278604894160312289049539224968131865290718947054523659658019824351110392588990296019601067664709705303689347693486027660979704456627946348307052297878730501276396259370632943238134370304674658330979094887803025890618652807504336593294628150854302818193893674397125689821062339072451607764931249341870314100507340406567902743718387954152693780689923493717304743849373551971383986231640346881831189872726292498052701940542849075419572563226253734743262923536301022244281695198141387531749189348759306296612438892194882442101211367136261962268230012503726924387630254423355684302829548864282916852951675561220400370369449438161319567361648818624322144819275498103216262137636809214183670337031154588455326855922564925430658925479603435290713023270038169317510033125179731870618492108416319394133666389938864546376184437492998906391439091565878019895301940353166237095847772523166650147566276195752057370438494106281671920964889310098978174851757485325797644046353592580951054881670965206413195322591286526177284260944533476605961342390503501953144448853651103364714750809388151525328799123496786638027152827665787451235406909074113750774297542846638925703737356390289581725856089284174781367443899567033527990831480583413486609934820430727574352247567341759017807416590728420675712151190315782357811545727310653547053546890373999452450702474698998130644189443548094638448250585119751969404373196452956815972597215948787694871745966304947537617315763146135050237090150727694256360973417499246064939908030889604723364547851188947274578058104949617962648476723091137536945243827406728691025903140593340230576118502754991632145970562458578495335070940061383470322688450736468111187546944163012249261403781563389925722996141513747011046139920366303964348331150464135003728929761124912395498494462641483285461836916448756799736965225607306634134242213489739688324924258455131402022752338953330804396102484811445091355791707635406559618219199676211269134288315916340684450443356636755568343168196970673169050262380716675479898255457598183807841494077887412397913419084443334929886767389310408250559173266796953256131031714743001133125789268203998946272066891559895700833804944876113395709056926123383210426520166566189231523368695876300975157545537954261916196815231916161523342022916416596443677053736179316372083117197130469725776198386615564279623311933671551187086374301289232770673134920698869603162059975563224002336129742275881274953649948264195074164987326985939675857589291660181269709813017152535284426980684916971885945996787229809921244986115335498021605167429640917920031110061275963148645383979483478559645237392367182408623202040679483079461415073724136684307547161121202737600220576069939154906187310816224890078554982407458772789469888921387831084618710292319783040590369769275173291048351118621803734779752949446631322148052377723601342151208025981084216510513686143011549636281895168020976930615703019009792082621374501801649527955108871798053666214546853306646681009087995050236954131469828882421814176624024979656060148806526173043916928957395034020340897383813333240596094978177214546254608532968045692166424568198374329251141578645902913377715443411228512742977827852493346701843574160129750753758191651238892071417553902681294411367077897261249613466358130865771626818032086773483978518089252331851771755125816691166636832991818369582465556041419332760958468286861564716579174544850040774575734497127279554165625743820221451536117918569074167783670615873852219067309339390344282907018815093392035430508364813751837628267090028953518094494805388631448324815279810526457474186578793788010896047192014949230945027212555907412245711666943551832663450944675016533725674494785625361392163826824820756654389663671733791286797266110106190865962422523578571755130762921659301570278983635159551391253826456984327021166481395731647052610770715078122718380587206497399715892880493171174662712844314098878016966278957885962701877627272319758914078157834261768153772121057313445648063437647633406366176914176359524302505492471955886998846742510877831735572598954357968642254243413838002713257552110899782297046764665933678773746991304019405870478752215969645077102773189975632345413252034246826980932138209000277876464304324685293854105657118703203499998614633836532571160705581304859807994943817930569575431197745918536328046250454693932709143303611035782091637375246778167631260071221478139281176929671538834721847007169515832397847432005163081157265760168800314011589131888550346647315026211815951991910756321302318818170478642267186832878854147115640179066049499517883278115791068587915592681155941048897361409998268602463012361547921914896808151952523427397868684866154737827458060060178239400443330757039561112356854360671358778543379907032992558159426644758991801425850808813442912411145694664758698545264378639178494568180059182427877492759417890274927957272019261287569357195037732001914612517130737555508104161471273657426324609393428352246927887372100077933042089712394135089985072116255174606024740128433266264453929460161830758393409341742804583097101806594148378481401072332936075694292453518483391830569105589931792572108231292617840369177958504264314405626008871915229099922456334605532583095020109461910281706916125890034543874830224092017985724310249630286946836391182194465388071613366470507642958873009075187853074083979483096364638156556633224337644269305612794504021764399927538695674661760493537283001015692663743923807158529194699815055136911391156317044942869654119507076549368480477675295179696080361600758620892971207754377155535247352748070909175912047725841095171405077850478047124773239172456162956860709354088415918881629148564561941593395014345646975812262319015011892789607642452730431664075973149193832620654438924878789894312350936171752300443532279417887615490370288228450969297935118942743968318696597961280769633026110800789591458955178341347808316013601706827031313475208160092699538195368233201173771152735805132968166901969785832016241778159239181441270924851058256738262109769925743771883933347811779870533938104789305869122880659078900346991935041163564080217909050112298674336735117972950760910971643849384278041714659121320779803763543238879055025228674258907797952796084527119498750340074211246901237153441298511320520208398372541768380483953045402314010163027619633754878115302676040712798583971679585370335572911415804785315587494741437908680674669697992270352279251430773391369197585015007224183090764985233272468406726304709552639735327011718802839612979563501425600608544849646539196302133252430369769635521643600226011160912841653410939183169742045652364224375613726318460428096311053776841221163934886854215214880472619662542951956618476894006148568868721068703937340168813430070471804537074514541529469977338144766430266693510629834974769264477977587023642447512106116863952180747200115183770286808391064775968888685969406442979415316999357910383053004374545423271540289562851159315401123703669916902729613784665264191043643040043704338154222064154269557225439739526127370711800708760441587224763293418894858888360690790564225377084759991596528428491347511855036873602510466476896059130176484595130504562801053438892220022521507106211830486939030549976448362965942396598562450028417567564096755015542730951117153601444673558559717178793678853488939449509871263964612828999670629166773279863483820109009588367142064674973226556792133548061061199949141246230349412982059804245192725270361644297390073694431494169055603087545232836389080993257392392386097685172132520084932025908992745275276985213681546581743125473875905300726228078433238977547967707398837030640908517525510626173263428811690640440960797427477426574764954641231153444933068607131765602914071820312816758190428787965558049245964891352976343754649001341322606601349496908920069264406006612530636261381107245488090517763196408773095347548695427037313844287891245529788851864551757519536761380810508888240849349137509252415719062875856936178744115092153509276530279106359958186138357402081079415286541861861958526811651172673720136702427392575238955137430533794319565108493109590114526611152197036481722808431260939807448691037663161310513692870392596150830587428266020720854298086138819949558012921252911020365386795051040006432872157071147882317256504520030172789950540804445563533721340836572364819275444737983230052229746200935304575852206314952967851793099223423394505947144277188327215489757496191540575882268333536534720752268807723226429173604832639455732288692754160961133000176268504123713529927285401004459163928279509846443435779730024558348456356992970863354139681623793418349810570471201098129790341964063575680160506391113836886195629004754146669173146789814140065701044445418287486881976306585749682356278019775645810767153457404971917084021217786771819742961969304683084466528542577546429547297149939418285884136190103716928047010101089771454500272827787308914242578444396593726556414095733847175378882956678897183535449124117728705924833876510349721472729865461433376901450870505478129934362954325510979466133838001676453336984961406893993606195164322107340973231203301141023251557634517827731659716883635039151932875671923164740890796280232543436937364239065963662936352826148091258145347384146824638738644743285928016935574973882088667242691353197974731588139726587697376353435207801513680248848274205224425024468109513358276084759879060625232990634093149527297722065770461808539121693074719052304622637875730338503696807418874573435835013868884766106375903842639421228746652444960865064373715311909102826821299749421593017280570628787660246918736006777325014146671410542989140704168667392714747529548688119512504205108389095129526499058715195557117657046156987561380850004806864165000104295985848817477326915917327051263289204126164142581584395185294597501438214275928788496185634234926069179334778042536364868085765992044811231917153568099488602708012237600080321233531758919730850376633378666654054862478258088032476939978217488121751634702951043435385226077318682394947627151430710601204453728884429458993075564960779702326186954663434449043303333234285694465035483681716824553818839817555867749256702386685990412077230053740778703605504773786185608444436737529701158512315767816855467880158495573630209963618725200575273102418827979647062238178589744052948717348668730059149001219746712566627327051906738405247315091044745552396600696589266263690900949225543916351214826126207288710414901888798268541008156522078150519870805003076606591324598045311041392384567585000612939122178866565585086736747923907077576009797720915525727895944499591651326913211030118723890211389479427487098290071941908571376843394394899536980137657859935354990195687440615424643274660187891246122099828903627332446275672314442893479590140159093857060747803722242158938478082288385683111985917189981681983228249050979219476917667398843575248471607809906098975287010715822897532231924682647716048265979230011518630783212307175673813295028295524038719400100958618748590612035223805182790560163047644813542399348564638498816395350545883178734743265299796720850716559367593135307139885813763975481135821506101843890247438825963903563513930213543277966291135340028708049635313178669846763787040406493396695414640896487413257192616792843077172603507175848237094044364564558529960228737276698594170882506997685888285945577947824430403139204119445944199725765654122419584517230967929509709104379805374007414349818607860374800564023809238886670067199343774104177967324077297463408328767273610978913435421411399191617535860513168190271013563029899208148942246313762285718555599152036490501093569756579698621590583791881290417942559415410586552737167629697960573073734298098944244652677854762687910241687078682377019888272122365329166426171238370895899855060519070433004770446295153948008652300636163709684822280056826381917907847332837620696895884511278232578375170499169499067526971250569653115531058846258514475934437862088007301438587125747765482793701684109088174061483634981848888154085216120320703801732228635915614059476195739030541253511657749611839177665181073230959581420303131374880262977623507082685762208279395290534129160666026710099053258193994067635157559873137244714986833435792469286258075504624891534018679797364264453507184626877415585373506718016838584072681984912003209712046239092882725599752032660736245914778015366320492529165229011400332688616837083478786437642472606439861374275658872452172504666837614986010348141883100132263482478296167320860200888065394757579492672215270415777530488448153684789800750846490687961341852411557951021934615975989896796769709779995328746137267684486902330931283551551073076727722164671584691474442446857324219471465608346390086721937844629981593098542141726122025442023807882832050083555366056760518541726903643934236739125870821214359776302577047166332338399540801907261612755344688237444122289781702201446071018088105420375939528011989169557923648827356261641882916894420575839743057613511221501708274693793298853624943296475919753630641052499292891928077509092136235168249404294042728599082812039009142850888577013713760171992745336523704714096903761752516941209366079497142091146300979937160617278258293149573301383095842860651346681625551921042882478861242146962198661413958975696746106948750081886589122917225984845426189558653910255701022008749138943049445942715827962202103423441733021032532461366122014908881603141989483181335436164256655875947639816209548956882112387946221384829180261358206258524128494428451188736805585332596691912674620901108499374097500072153880746426230512153750347170088834316451238619498074405064013683966846095635832122285682044721227282977247265233471136273876157082931281760957793386738569679438264919449807965417688056302513047809768664416132031200491822215607567264810135262324014963789874661297079238385911058750011846754077962314531956682768429057830244674879013749700114065971776831216327461559777886164913316427329095073876013156516359035160737155772427217013585413612509313501864423515183742728204561910075178256032038831019255045097579184175762183831442589377050613642627991333236952851846483596927407594752735266902955593814067814539514609927910730782714107054647923651141113331571460925231830081636522175179067398433425148538275475193386734092506001690982520850536222513357846535321984498211803652078018802809581634395074419882776086926829974215278221191534275979295201340844911403484070229530793938818572861105149109238665284022088701298877548693350859252355492387267030004085721631407100305008304667127668209117763512873942122967433138933014819540009321638103157084874690772041676403825422761225866039534887405562000164770783219914757545349584689692570422705886190932044516659621271331969287271215314405799465158105494646825374778415073395533866140118301218414695101915438717917873963489467979515268684597900824852754541173142925660945179656540098315334747066718422132448472320792693193352212026450940509261000441395144484019112421970812406092554548782015960508158338908303780907294819651116469595499022578371801628308506536581273004674024814490356620924415348041441650061104988856596665636264977277448798364941060936503056741266209188810552567678198752249662147683296694933582945068594966693951163741200449437464255769874573624719097683733922840637488122998253232068720383314383271753148884937206802104543644605038810356991556678705481150225603968324441801803342180798782959004485180823346638387603398072435327126636864915013072996711077294113051770575224804494171153542986610994649053851367280776515196823389424817594413986655959402043148906679228555112057031634134315777382212357285475896489467849002833179250390583925689803713556072800627688311307630622305395512932717631612199520831385099731322822722813963203775542890766009066713368161299586178182924816650859068507482140736439783247471272919841128738083280462992234903391159840463141663923696349714075216920185848673471997837283238847569773682772290546726439775188270143914995637732435995439942607764030927339465025240954953462576108651108159798607379488401768344870969493538972922090475758247299148889660734055251242008437972479220857360393853059375490403870455359434559419167477221189103908539051145411177433723553982176746537746913571863328481154917739392100278010265198113008468074125643267859472878543664615669243311273204421435019801137522056467528486589659391770623672726471627042567747018419034114882582878965686678042959432275639508073646794194307434322133074282007735089142546200835418932705188380377689977101896777548376739541337481979415735392223674724570916684958338449216683933604344009244859851238949492872239440843702106055307849396981220810560485780295105913846899203860559176869399445761607408915460268668781298912282891057707631799739101932166362538656385939707861516347921055569307968689255205046541883464819179267445118689877459294433014521257341672872864851766056516538494350091393673257976673710928411645635461140667703838953626503353306008641363770631143586430036690102005930650221940064271623651741816202562697467690890689341866425148238697387417456655864031812935576533200676671299298031963546566676239240752091298534808791337961276161181939328700234664912984468646127551918748012477639738589725595242565644466961756287493407444091766973073971828236163895978284818431336160498101260909022213696314294078193046567919662016004101723493560765655011614599373275937652851392432066454401441514463160222714228723614799831992611138420222822581338177260307448999410469977493706443136187171956747194308225341014930087389928105022526322325289862220977183666102761843960666951807141719761328946097010992556789591533008801346547981038527693225257247078420087431254047490111049222246170849623409103827068755871961176120154941232738724100055412279753806506537281224098156879076728262901429564230123347199562097300901027280623354585969101894094720954371098786907332159027558320703498742573372974893806074916352935306922161120621456179774324898867609875669625211152946077713325074965894189408672433366374173500438035000816368884895016185019763521073652040820071649734409018204783886019612242187735087134456182630683840758246444857720502502380271123810842267715863438068569617559357219392839298862426016999775189176835853581789840726701859580837777864542790281649214493226707413939693622901214900917121197009609658369849972254164036776932890177741582535034093947865904153612505758594222496810746024404821131832895528544189946986439941906522712001586998560306085971664234957688705446607192938866569371736748737226270983408685364036286730789996952495653428317607732095923424055349620843375619454380520619283697069711605101805452044366729488206058879456963062878214603122166447023438221400708941769374263527160476381356708640786692302499728290419708001067603919365496413610447217483176418906191012509222135248502412769158326691371483450413610012625057412540830001273450300346169335223905023659964906799688801004590923609669897106922778339540735457250583969432146669729637159555742759329568629592866576103816883069361786812497084107640328590711299901770207865492721929177488693674835035160496859083198526479157056417067378621344764223519841115637211331586848708840610539888504811962449885120018069232040036611576254530752410949638293840738856994061814763615045446191018522223036690267155956763308740046477624045026017074344419966755658895319957111432786227480493747984900003179236622396664650840609707621408303839154433403585207751252964392923557191168874031801133304751743580949900981975405391876260858082174824043142016380545644388407922634049898595274167679865864041296350635544425914883156596723965981904766536353411937557229275200874193449108106350003978012178350126992315415243613996251743788856875200908664290265441066498198966118784196721952753735199496115255142947675309717515434604740164699213599805841867784240682079801889062867700739638087323655770303445797294966275949485632796570591701262918867063257684707687530294142959041601474133911592420110181955395728363152240824585210921685936680442660787908714268296457525495260730152346116044304624830484099686019735393042350247876636059595535657270628112373654710776970174786409983580016119603398112629152636703022665859819573414264373061590143705302297054989601848657773432388357366486930604637367117016632968892188909671235046144759140861424946705322337016610300385080005852862644624013825687560254152819188744471448081838329200421826575031360918959107043664802333584042903330739836218706387939831136905964525566595191245755669620589716797370998878790182796709003287523280641591377696308886951045132347290670180917037924923951751501838847280256028103087743361125302427204150585081809295321206120570154679790507108751239121434056178868127422858808047281149712921253982815525069333013173487045704059041241788896523548812037775064865853404626896875716499671938475135137237991146598329232631343693830281427628186634529758948582225620287275562532037728407490872125529814208335818172173788874736979017502064840706488914291092564768912829350840028628172750839752295430495074802541362954101265501825729321350676701639651185840224643964239269833064709329572917163089069483221017291350238747337169856560995292114623371427681749801925147316401554912748992749748147842775590694291043930535093153885181290129539495823873551200594618217727772472094305149118056003542379223324330568742169140371982741142587052207157200228488176421398905331467436848707654767921605409778984405154344919353017673554596775784935016957495788655856879095254816955011462659261324878450191996945692448179323246122934644076253614304237547324294810242784369775770913682201903505510801399893302559928020980152438580614728255445857091436094539388221316391006001929481122537756159214134460938879458508615171817263005697545458926278740470104466012791757291458708445606713154119762521587577361812260680194201679063860976498670511270702642279217094985214176569265132103149322832886095719941895499061487828321668351128514847292741842007783937805608017421277260797260831617346952843401259712796987058094183941539341360474673016194083646225245608903122478455166071065054768100728979697918841348772720245970204568092002220784507301893722876506560682093566049477200719174671729047688605196875072424319943497964273527622040335175499560782706225072035679972577975630163513291632073729523981392344054247195021888811697908728699265694407816558964300810942040526164119376294047504191090706355818487183391838339805486999130405085697258664087573368543063417332944055062543838096472981826458810357728098532845887065299564606304065348807017611146064211612026064395525066991517596447476238691639250842905677078164164215659562008262539250285498369131803933153699741964270755274881728614750802012245185868034528286194083044584156863623794803383450086828170069359437202625775524426646103253804991769816173308702372149143585150953425380619703995222194476542373256205406090050463334861543953796072218707428534367164779026460854053018780760171875551575219465347777581978221841086813056916549239336552523315717346687174423074025231641370164779146751971859399502695861407154335801800100499813755827560964732527736260933606477635343800122466253862893831227639297958619100894101593151363555447404883322417650820731775874865998748683370058470327039681396773273545021674202903178129742358467171344095073501006497290088956689656988385820900495450803442335304909337656416230565233884190282504691365465378554242372059689340556306527477555829898510041764368025799937565198670547347152004541692986598177631958204868401514430569612603977044746656005468722226173858337299198028396527014848493363822852521278109548657494710852294452340507882747634274048478580561678826712782523726886534933936647434080626030407264003951249654011831662128968797178335037214896912589885065750531461024291542035245195489652332187541921834104755953333818634488892760713135553244414414515267536849577168461826570412534136920624113678576310496362985335348904845725619323167206522851362095437536002238565253335536078783291417567292131797209394457670215822611417318370771783968927557060010309847599188648563743529729697724972582739028964030941786865494061389045754604366728721850639274471840247987527098319203457517209149738248907276991108607253045396136670675077254291403871651573190283428566920173001696893772668665094353913623000723051841493586500785025775541915763679565426662544071125229151627092703995860631483402088482682987241164206484535688139534836593857040874630100505096970035005192322042888213636951637693433400701260865345737500834363898338956880318314361613456097152327004412381760446093134196616846805791271080811861272241951150870406391060341154332868267407227052104761443958923116507144059779146643377821938625712449404758067688346943895959712545413203764680501786083318329816060214183463113165409241794085894232724126886631520895893650429031029323342208360482206825108489012214425953276932117430493282374506422732710271043709546398738396989448132695441533128908243005218160469703132855920590470144017008428474753497701708623605670174250204499705023387601237334976258803106554664748292747011665169515046032255743669706660327228572545454973463851429826663996740863508970029829868170688733795047825025477208463753107601422447270838754125805767825627387660381996097936350001001460838303813470325562205216402249412508250309630397426363974610215010136097677383478134446529379885339293552851248819137025600938471902221112654475891681219727618471247985216617880541250444452627076065595679448797912543342558236369649236017417774819747975713238064523453296842894272323736794441064138274348542694116434452469979713809021525130469267802224677835036823704241814333739964136611111114801333110220903132996416004701143318963648908352460660230864701994692134843700779432830469594105515741194716270166420437372338645899394571918678968392596393316961410603560831627670481809058703926060112967984613493140463701107046010271283188838474055495329419122920647517804707114981874959642408797947092725024175665773922993849718525255086296522204570038576604899376796073897202734905401744006717981123189905670144339960902486252613054321529324686835054983275878252937890103929015225371301909764506763850192814696130601920384466842029818270632118421209640944602222040075174403638242385871221456421913392511786682223987337877090835543369004848261392127610003361895229547728400579090310145710206485218524390112446043438872289870129298639026838613418069428632013384369291356644291214030261612871565507398802088348646285765388855126542232406853530727026716683310425213304339371909022311425634856932588277432944670600923356128538574229998248089437081035198612746744065972610184862848279014442239255643026321647286346748327718150906441496526431035879117524323185992355230333241113122413651753114931081022323893920259444067881391366817248447233804054985636184667861902425151197777444168771815610263084799923430415886371998003035978746964469803488878281783491108972175743504513007526815812125814812699298409187553995713308781068043825716821665563068295853360676162348423074038471583634532590510957791443887157213330954341464630683284213668460791207729325059182701200728729038432425692823479278644224126761827973987107928603653111461430315873131710873140270030753151980404615247619790840266690360678710452860107217137691895929844787022397806251859696156877731112890733392136669335397481684262375007179229248809578140795729943019303576426242200940206515983601703316480857609790963748075185285707285558348968512160619248553940253213783845098622394361121961212463748284311332200098001580101202617431797961606494431724063402893998450127885205926539183978151342753062016278523865983497804643740104971421664813976015168598392862576238562843056381725123276372277551659703878557931589410757309992616866301302599793550693209604390975771345329732357024174250127651307994888112909018077942647164656356906796206092119711800980066963691371129087789353385910257300769191296071240873389404173615589522194290955152981501098793170868762836819940776682474771673175009445421831336170102276685001477230204173270816008692934429451381840313632841846477086317491810593027045880530638591394495670012871274119498303705227537618530384372823140927699738083609369229312989571520925317036768323381640131430927714884600372768443472920094300627173972289768521063990523516331366555914130560541737176256023733857624810770818878181553000510000948996504918807615869535250358570736934606837264873126105254956659528562599018902307763827923583132218447576776517501049069495627323368638594867580720073615343856908269424354100972138119543690856084293595848714427256221433118454486082191382952522199285138933605493285874039217834878048699377691017034501963528644149009625801894374945170230901457471318325175478843314174767312615345952875539053887857738580267325569941079334880310096363030192873153492108899594312070979025548326588225734921840441484215352573686792969294923059520871459335306029209293454690111024479999726024106023151556853262719678781239053742092910116172433110405854614883233238443718179521591670788639238694207247048200389130330724792422675599078736041578547057231762705553200295904588724264186358991081750494411107139870722478024900978721208013591310812778887937933037640294864212242259440383201928946653929002093514685038134034518791356853923402673451848947176597553159412163599199971963668430565824529943024868303364225241673052888937517313101635179964649683893136632972975121292547828762612582773287883487349709460816352079273054187549018896471115304497624306464108317711066725996866440408856740094921961785495328001055031429221764539603648202674491433103328031152276414966645275163305882258909897563054276595108956780006694483236097054259209889353224899002633911281307027072782043277067863071614788551478905296856308457406682379732869576375781676655983159961946414705841590828561006971500263189179809667221355954567011232717543663463692410024639980100314055329021642036070749047398144697318936578546287425268365651019827570194888618422279719021467117334692784879539515925119514931115071595609029810445407079831576711529158193752442605959600082885561679561163071631072056574264973318781838708232175633445659965537215373142975831132232440303565022846373490534293441404064794319520605680282245450964262241814947075062595710056899513454251189673442948705023182468862913924436066778861752135639790171117960747016435164470247250026582961073525308345789634957474119574725955029688643247009991461252891782856806721933013040648484724737742579727007897755350828933380664657510715202390202985291282055419849896498279312201203876706286821461290752448016541703501789038250240099986246475086495800437363014217898840913435454363775689400464670305247897501892496481482130698565495437685154765002150934101691322508620083574164323961981451643986265402033811908989324374057278827932264395804437525104963912251936052949430896406306167315260940948614281208297621162175889776799524124036024181188613119036457166743273524036690561969105523524167758074128947192457857095303424658507066739823190074051595685158361251586445552512744368360341192492989284269645288412706869835518112108263832090503641853389418500634566349091062866611124320305302386599181212792525767651130756649575404340720025056510270287766416385831941067324288662117815104470214643600714345246403482795704391062746151348788488057819052834173918206809198374102230557488395580425837226787806228444540151964692832317866719320824470844319905000403887281146220827269696967554753275297171249423989499374227326815899522163607204390509478595666197419370614853434882752999978304559215270163653697581783288662400114593742247542974197359965975704724022192282068526628263018597971913527940848494348243616545586779831986028701421601806346663344505416331036228243896569387085706160815964319199970447286696800468885951580078642797794695356413021126441560067208996844191725102990413806760967911408037408513223003586849685128847160620109660093784739486776551618043098983077166628456024474291192114657319217001493794846119360924109784191758836478093686418213332412749317780461551597450077019525296692488588288836298359963294762232230048932384772934649082710564922240405553471022053810648063043136911756679311753969978111488419524286802868704145675155151685102268830853431388207828419695433927592342625224335074185946231652459962008433933403033033366868165309069796846222039490404853339378608831541343658904389824886182986982105224159322095969705970507367470877184746861216189293952346783271652192283769441679880498560081555758951084610101810607917700728297100555364306612768814316620991981699695115012470488948474553941098304060394302621031905968284082595398735962763231471358278123449651437464176829236294894910432825837788836166489233663599600126284366206128424583534571483600606377322174904938869781218558108352574507480988335954517788810509547048058014767338654410880415969926920790577976794791792795154030067115698219964197818268459863959090133006258684660056550614337611253846593189930718885808040357712594260551488551222691994128513818996397652704768389642270431527628696649115244928800266294784120181348862177286467031745837123395468656694569921817309289505366357265654519829486905430810312185343284203883199237878788708310744491597735360336329924039058341551834335253186657767664247901031895714004481482285526034815609386576560949262591785476822661343432548922063773695974958304002144787798050073670913457335165936941024753688431646418276669669166794442735409346354934953617720981027540517477132891401294985794796132895293562497600329750880522241704484007913820097576869498766718005383679609145265851497412771485041284290785054605635385266976766429869897542303511828589337775711280774427634986988483044260001215666199952704375787746115042609863378718643906268678139648649381750308378855860395251377251805636790128743238815789854172902985128296753328978330211422169389919728152287885520110292469799519651096256112109187827764359823432504203474152387330890109213573649604832516192153489681412187133115124291055908090031080209427109023692056970483529270858433463207695074607382082628923306275658979795833203072285267568158482720695719604683727882414367708007274239709717739639705047712524321056365149946527612387711166490302705236534987016270875000969717703139067793059944586207086371598248655444880750529784231296479931515772926926352155344882874043979289699212373811163710372701995864492936858600880486351011603478456024837614797809681841608217371623346132216578104067163546345749894354727874383447397057698908661629650035335660630778446075632699467343431236127064565309875041227032195837036806676431571694160270600370150450582772282775639386595792556853738253199636690936104522675236745370101163024961585946791584906679496874534830120908299468062695955587848449293942302833851258002644073606364755937252003513571476599167785874473855409757903451677179887564327617160206867760420822226510664193120289150411914328482497428457027387934354599634688569176136521682459952161847972981946303256236020952988670306598941591754712874267335401645906428580017547242525540674840773599548022730190950227837536363433041557532635888504650878568242013589073959718863851772953845639499955540140161460532790924848381527452980480243406314065634413991097231144408599859610202962534217256458495010864296967265942436108077946171546634104732658365388928722827217647246172986064669252041789995895789625608004803378849354932188418363011632115580457757287981299834418414480013336406826814869201902609621196688153831932895711780041773364631794051549372690755217285776735701131652356205802578323539124716730354873501301623813409847038072408791196399791894664174635607623125328261640077992559473445487002806224460859861602272678664840371018206117188037383072969697029366265841106457056392092340950286154569426747961947378128154645923570721916899881401832177728875251210242283234952515739714855991224226722344611248497457216076468552061636295832734188448663045744070776342038318581997623689153376871242313432818401598892988927781006836509142972805816034315195591578107390185500631011024870332116072671430198567272343796849826002381596744173545637192508915534396258572018297511487315318610346380273176032686230040149725198242635619362193233807415169542663149165516680527937375748345737479525900261911232003358663415655190300758772125537644713572473690202957146213521505635779231870063606268767573528651136686301464651736079301675715571736879072907980411566895442562375535272489117804121370777989600223697850394244742400275601784174470267239645085505617222125456175694212818457911618872783867819467462298499871290817168236257232481126773172733371406046519453880097303646479929025420909735090898069496534009842311833020141913161574454808457654566740767858258776094722583485580699980600529398526030970492450944413332241323853915579544238101357334175858723450268348831017300171499549176062606761974988352328892766666200358759664035727152412728968081095013198356899439896053381359638454484580069988980451349006766646174218201780889447725222023364745434309820552677907628898283846044168454332785652614820648251551023004491352271220882685237367392982063119023835274256596423422645461172579501854499836265737354637358206984804061469922358735804039116909638952492166001833224018541975469662040294027474154174729117827489817087619374579832991788692113421531231804740827620768549461051166570186287607722939724839723702394774385327783262085678245145943538789915252241065506108356935301628909147332005652575986207837363458473128867601945488063331654532051137192642989732774398454961498024477866117961075385821128556761495674797305685923303704509253116452594888499378561778683230039921876240795662040505302423377799774237709444305932660682290320275946980944882017908313900506802606801670742367237396309145468322819060715188085587105117395165957430678998486878284628845190566739105397597159194079963815910145858273959673364094617339437794982746453298439544268589519742717090074892903323002979898436809268101120933621909166222850151704518037329234756483110211685648060004048582742696010106226990955230871985682201325571657160178670666460510849415007213166696750516793766944526390975182476478064504469230349214949437588568066560033998600399826681250455230281439498147040558094397929499136094167413607194948835582607224696916698085616406083826486809574041751110973820063613350475622406205871087821554587889972673669502173185149656616620980784665329795268997660508717379889534829467719624264465110495134458796802793233805538538994478143494127802121860454772916488649815727315981808070022407040653409650578530991827651933937950919846595544264615496139616044694470577766340571188857108998384957950622381130350874342410800172332513129277144326787414294861971305699790995804220497628918243615869340728262520626431557205790664671218156796155142115612390430898496147220553607034376124296928617499326946854959582656058734624920030014378828836038134924856921587935974983348400288536248002989317450091174783959991968726543617428769717755030269740287002800022334792677568756515837320713198120234427624320446126468330104354320307517960981382795286023732211601457081327872590548487283916173708966209830982319558086718384126700942992930619822020335601293333232071338231378009159880143716051964674244593969149605783346869939971060999578426766435695909097579463362474267718376574289123301792321562685970424271242036947442365328883684291964013675463699058208311051315857417321049111179520984732528209660563036251481271359641878991909866855159114362761662570989678091847708580327701758284046832272201957659386598356617203201272150683807525942688332485852249396795322953053311276516186140791076453355419544491031535915621302627787563201632207212000565867036703192602293166079696698807111441620564524454078251952401250097494284786531299252167483875730075762591291728260075515693709975990357864976510964255890638959485553813865159230916566386931905138354659779719873953816018450551538595436920316871444396950023425214092326014494153799418016494660730786873929330842140144396509294887237846622898958727144664032501523096474993014148741024926927141117901051947347718523379491116835715956391025059875106690899435171466894763416544831915357807315747454659390278538148934872923247619834687632717634079814020628293555006279379735781807793927141674480428400792127617951241625095675144974230087256602878079348320683794637813695802828265187228118125881368418878611129209308335068675509526211449751353129611991358974620684177456826317527909273218528699411183992318791063086476356693722246763920465099498876560565159703901514347925281437227043104047256022786903335154244908320052622824400091983228787816439637200245527173711992497588113554233829521599280094243196134893269974827059665074817022289806458661803367703390083820845418899968254308158499866258284359833340051864402789570751945859384434164660796749567046267998098875849585077863005341628915857896694008552149931366800534612902489515794778180594489148789992076447060191633163357912647647827086220672352465464215547546426835807652048694984475204291551449127982927813417607891177227060893439069483951510559745440385671349757784990767421574874801826718002754503591411151756520438523311505499072835030710479758545507140028012806661154875588195721718058483296057259906278204976841887864668082695503006472829541825334755584917140112255292748556053698666962272342757455603954484159867840010056527999530529774933362857374038575824663678607990475610565207149541767082104963541136443275981276331091742090386388389460195538956743249094531655846953665939136718083281331365262723111884689788161551555251243124070684720391653493668475939742144550358084999456936755447718231642702098744539242018900849181190119984126842038292166952378863313447156374610365742108713276705039964062702338052736336822843995273540343312314757457588896846070735434886121830122743638688450471850528605445194107719547448037682710719775778735680113882844704759902273990820821766070336253595613104933063622981689589185986059055497551058625803081917099966664089642515383692364001017186211469817096731014580297150714322735354314713070175613092870006208676812976531062282795114320662054530682558679494627846647556043487633674993017914562050158631867224062422375456905232414245846322980369711840781125254013333898160786881439538119328432663179884077686151464304612852523485016876571293346649528314781548775482417895131409963102128435069306264127198292046925274686037161402061459293411030911518726841394259666139905164935800794402624189555355134789324189894907780468003415496834749691109281826323937796303741679348340657821112173484932775380976347371888839546190426677328453212703155209332907699950781456187141534737057300672730720050664962387797763495336668419514987983569800631490094084513452007569044901021420696396438585009605411040104062911708852414956782080928060927430919186770165410251250326139696956378756084757495187988019269344432854424418716399708331496507344779440109337231256144634135602196628205864130577397999129045215902690974777548631082442980364289413402816277217684261515282206692474315565887003841510889345978309997574893549332758873145631166895770173094881969742869497359113996087902247909253596663879091839074204805534709020771123948127337582594963803886543689720431193340343420123276770961940998813071197253919305788099400250911506190443117251907401054537406729710146270235509851770052174723512110787326569620218419490268654460605394936664294503967881647684930307401169432614331260793764180921752833009785300626703657165504835784191546767825572802869061999035050297450302390922097171370494557833952052845979895987279860245249185876329479975946277907896090651567913900987793370138574455301260821031003560575531652788956148576107216522059023073989137285659432813315777699117900903960266464007304875297264727794765480495145717885875689152699047342073457032571313283908662227366928619322821542668646814461361874790574869314168218809983331827612466238775354110621754308123211794645047226408924689939507465596345895161870351620138326520630338669185062414842116549791959065052444592395239822557717975597732844665032112958207800341770620819839029697669854661767834417390369586825660169862327516726630618413549114559307118969968142681646653132126682557193297099896407445312623544327206000670346476905376053550305295332636419714382030141030806191174478472397450203022023482099192320554695101872587000438227356858520327092427622664984765686200309542692240338271615736361247718826511923299987053478438030257005181601940609664976520960596456400056431171717797369281090296833126995197530514252836668650690068732347606759134780968808259229505044220056249774818168127638477464982891470522908457291939303690453516484942167262548014792608244905666038149033462923729859545495242398114489783434717684766944739684933312219675796826861367531112376870754490117306693592620219295056543216750561951450259317945143864461623063072916952293148311292406059581763759334972020633333299302030229315927909045321779288042544695621306926725455745574948711827357320959734621876016641856058944055959484958148147680036381368134033602664634190890795383198382391175442189413860650267476468861819684126235499304379573756964687072406769945705039122600782902121674631229204917096805263282067781245165226295556637031839756217257678628271648096651259640114030470977028703801208028787068818337495995506412109198392873783784722376837563933452511862178680768449950274487451157170293085710534599066649051319927648423927144632940596853166017055930366738054515657067122322162692599010571244334064550617170928152542747250784489665077773905420475964517853541567890011526456220476078797941747111293037618789034293406315117011867044763517513748615962126790243340228921930668223911613294596734215040098666025683035469422048711253551123256321557178834036654517243418557730985394448646682201030613262794406342147040395228313506198821516710329651811765881622862557832072966291444197998945342206377086167310907881444199606915297615531803698089999959007781822224819678245230446410154395929639660417931130072568564865519877250570012934544450731838206635009577392020378423486894553544253930198160006939450659764230638433061397306916554825488893248175868575751267852813685405414701350089604978664219182957509923195025239110889010622711165649852645644188774878451830233400528060266908126271116204328695564540391833750107860636313188691973672590064175239129856423145096779275159137468883306770498978099057402228735399995225593889965748063568434608354838311646221110491952071006896722101975676631650632850618457036390525388328443804954180857148154480723536054880507462393191198224240844687689294005880910335483141767463824574984173516362871034221072581774512057924318928430871881166535536726885272413632131204459909266821403863119899109557304697482162071935374150265502182183664289531585732759202518981349642943368556178025455719955966351486492256008274922514452391810889098587779526097936648115255050731285346581256488940234385379046014610764419101757685032856630186503898774297979565486848284288422260255238289110417957352980135909939627764537912389539353186428963038415141793516609356314385010943811905144458077594057834462485919685497731209604045455609769722882784979113985485145657688504165415750399622526873815748284007148833525460031222421490223594733881364184309267081783751327684224939856896190590585361546690239721282771035849135753754308980102226806190112184298767010433950251863828096436864611837378805244534330763102072475152087829006682368572072175879067863034380980745162763222344420238409319705655229675340853757682000676715618032644660130721331010802750120016786500506242078087907397646545226542773847461767518190765640062227591297564852863751887334659450980387043869868724115097769397586495396250496011609179708974792982187136840296648858589091103892484986330810522390451221459551647520843553527582007648580572158879168564405154770933476642884045968356987548436759654831591450122274058483859915397523590651502294200102876764316429687876067282787360249656469127992601052221928034926290802089290363369977528893036351300739780378367974923118773066352751248384763734914342019324737672135927500124427870704524571281761217482346652318708850287594509156155549183485483580587623935525678179968468413729761574401595454320828076374402038659474544339573657394392298781391658909766817157380046796736820847300653205859972733179154264516326929056266404955325114862382233146588506025300220620132404633421781824131033227679492052410305335688356879118852900762843020263052631635995608358900158453702314466009514014963465253029143606128506050065162429243920765931483546824454935422971499999576677509487101795168769778736637078484618237448221544324330394949302568319929752413595537157348444916497941466740973952420758426957201299272935473824759923907975883717687627236566425127166638103183988504458305997754408296075794118697899650431125561026477222078729509487520844775303423557118309434420077002633264698345791674403512804813949907224810316689409385902197248529422586934737526297159117554814346029546653663746902231823460111109088885572263115426706968320294772249811492371930212149180411108169996544010464528950930549050069406511154733099342790892952534111590798746052727019357289698310335615518849234114517638484361163576907137188269124042032137061070751591300595162471809923435664951789399688011266900020280381243106098637995602463301474531002215354861981106358844935625149459326355169155239778856934964739002090555924731183763260939723555024376268780817731190246860626647922012107205112088024966793941202886594066627492681230270112173656186455871219112975176665199195325055018949439880764945128589403840521218581202101484032282873679557669143858869758253553494746937351241999354114788145735387596863409546759881138330364681999204864310680268539799312247011744343224002902792566289535296392553216337385491454763764503395940122698106367407408947830279464524031267889219676841522397046732136671816705428858154596617578498514092882956505311459371005171306291986614118653720000894259263764329847191699690690047828750344679652353910746030560783340765099187375821945700505265794096228842968083270141632078097444164042209231686704468074317171882386720082145000173877707167107795118875763543252059361465484661584634788237556584627787618512688195909518889903651092811333878304780512166606427098579599346808135867350793903360921838638166931265405794068126327609784868294667577753167252749580526809719529759293514522990081109762159945836381033733295739029588015748774782827667861688085541766038100516061141792847532627542903240791936915850089451529342990616508393270397659477175326734754268466866315627603960327256205108418635456527315278730697022447765235788373791415491352287509185972213249117822286194679251578449811918468145427299700914724637627279799276152747682801523959783545872890543225294916150811831723320337938925261611812037790664701045100464496737282247329189317974086956590668096422405846067150700935793788570730031231797844654502553740488534637047695172899079262246762146626864761779294785306166378841875052677415995896552876684036833723620388775632168388879485082632858339415283389872182484259035007942686945376079180204921522481443472148291806466408845650663164699704444747652625782458345132638059736586431135107447074023590814382336797205997686064528872023468483204852041380062877281775068871777158876766915181909521063429088905832320626297552469032555784233520293263910417540894138446900694654089031574381056125464287709042860514706562682398722574997313114799454871697572336590012765925563505007583813679656396583526212431412555082610056676274608953788519382734488680475759902555238442901514883787449736494900987273885065501715484823883193180410329877265286208518619812142927600761576725917532163390145391596645378261410607757848650246311945299719273489440931096608872882483471610619019751232093356787529548659850987712749536731123846931130699415032036690333232980408184605061073170538166072760369700519363001140956586934425836142361983958103024206218955550114479625590200456517782234607533197395200389708055012221871970420991097424836848872269847073281270070047390550512573975395193653075594932445981579034129454248662681624895095846253309874278442636762791142078975666394496104782341563971735960002845301256059071354633538150127318180536129660681784275225282689741095935198113519688619006714203749013395080115017094126031575310298677508697260613401929396599406347571007048444875500278454616050080534488330686112094928427568774730279880641512564560250164390566334603752782248973274064685314808511202523611425717283434296302020383127898898647759219304059405366795878178366685451132663416460088747978091764084184832914110778652498844341538166961107453513665640133178259615667358063135695630176473157894897238955033094411833911087171524254967162959303141722806750345767181035117007318484151205736311847180967133647196708243016688079054868315924159679249464055250259820945005455713035792124375560841535716696810156697524976338337910571434851878950327690266973720373138241207592248320730204898459224564031395189484192397964509139182623288398476730090539754600150409012917228266220371082818030423400155138514456528368985434610533085221221613846183421431418684714806662685544710067145248513009346992916430490697447968608407737440779225023415007136484241380192816873278158875384945552118220268832033214756996372461904972029589835466701218952608467316955201446882281617090739509169499838916926876841934299944794080976310839908385726243104933289012887050284572593497744585432040975938741096150764740982323831512935756790145468544409636280241600787959923534335796448581828290540677625928582466380252844989180592230577116585871614637358145121659153193151649524556254083075149622178663668064480949504248627783075741303125817048641019039780491031845201902338794101130395046608021388148478784106118229308305057872105421097048052258161052871891938618924212097278898658711685894334191056383747801465890397410123519649067840260876912988096755108701468720170860550926411604975976443853834413909883944147471995395880485344697922414352198806718506218230148083808579523508387883741206368574294406499415342500386522786849946697566589607965409743464723133189788099748738760128938000389715740602431280329000731038447336358424458295789351995893623766275380112762861643803892802077881563323586385593747462999792079562905421242940035235972794527558491816787210853053256897867422057604673986613935939260927345645980319975130779682894946682399714385083399359464347264612748739848551220890449724626806486375687342598379386662970212415967916543028352350271739513224443406216677613248578323130252269195731943894754985410630471390837404422833971826249174565211168346234327883743428554981390241689337325501531231228237019053667721813125240430066532457677034154197930548352768803935393333195995725980064348912783888766936043960651758484017100041451860236033223425692751230497357445415359985194620332750986336207028058079130632003856869025396534527285696615138335705006074312658684776448379972968436179395728084011827041541862902806535952198626666226910856302788790051201287865076587264162791640219709995732469054783911795475917010137749969220972399307336373169812121341344967154392504459337756695856819201643588719430353035583650897628781166960521502902586341413300125851512310150642284419239933545459413094708019262017332111639017729244646549374498103861650060666742511384473049652300029618478034032446112678696656928629062413830293979522486578303160708374891848082472764435360338159339854232402792928258305827682155884463100434246900696130650379832021432470228927592588518380619092685240088387443486731876340975182492291973105238178721544004679800401731304485576303847153491411805095793226801428261084355914494053868589899174335915180426606066422286939589466964112406121594274869760153881131184422642215011948311259499111622664291711027178261963975226904541059084959530448124584090539299730233380221223038690260816795895284995774096932774451850474997288789751081659776953652360505916804759281528204532479782962361800791324515153340630185446300656824810020910423301655740492404546877059151279347595077697804386482209158149602823830517805559433895306155572052901022280021400594393650277413773255188284088354926659367230038820667786143991015023010922010694684672370663760840788037300320797620772434437184565089730058044992438251990656330953143728405522674229923995623371435779873737156541615135159578064891068479275174103352664852068780404844720795899652228435088157227638394079786907152739791426576851423744820427483886007711733296581941590126275297826369770332830783994310983674781127801364066472111554148284837998530424425625082874585109893774993658436539186695436521965971820200905124367794047315046025783970062487539888487264572013922531568825944905025974583115321361752601618535856432340391940419083920135676861707195315167771934639569519106023312373789567209074033222528214664755324290339713377754069900331937656401144266228329534631139187928272161677170010867896357427490431626863784921215365491410500725931059316673631798688542997334065421045645515743880095665029809441434480546205461299078968014475077325485549353555530424658926435027444971587874530283105160221058326421917915513716459663243912273259132429506232624545636554889497062789887345973343698976805387932921776461514784639553065783325924204216068624174172358205290417842290353030620255571805225253716082491162188540665776224673878900695440307540181716520546186945301368004291026032559385523557700517417384078360768643603002652380990707966900188468316599295916497118641391295652369585748466045522679288288445207567822063461986730609493931862717689180282432808233594334178747119995008044042298466797542601357064505510998887441641691673991261539026329046829046815219537768450202439711122878732529274288964846799018764981973319715579192212474026502269849024736152533310068284211729230638008746004128829644403988834373575819600910941849943071609543973601935468654265968434990537167455745624403513535512528444314450901707817831116808059612243712126148260631101038802835877601596739555304422948983872732481456173439884953915140301946046054897936836978521655829224618964186780165236579229817576626724634071850647576542465110794715286676832134693524432575510328951418156327158564073740320975306610624453327138797243335867087547257826010953395937242290873974882914738511862629298646340701331012841190060577541911214965821894733282052093939381062237382074740655613036199039622202512436842903226132712727072920115594734439686102058405938218832718885810835335186252271284650859088329096130485083033475837379514091617540088239539270780561250606050678816169757569978312898034604328532806052855681383073345806706664642486334108141861381899471874048215733596630418638442643889842363859061139897102707310901491386069306840927604854418083776099616307102358554260527140535313907707480984187097559835813182202236026538946519050359369812500965828223895432511993360670878160079291244642016662804643799582819590006120765776210263889875159655762891892502997923406889446364646518292072759660057106845226521990080189977554702019287442920473854306401560726980269275859397836955932456764281986361774044473199931880530004410899979043009981906930898648987690838874697324761234004799639094688059092858612182222830780135367080976861188006695073888973149357728298530695115996708081992088447866780629619984024394631370864564748995487929628303869251152297123444827347945071215304785458801659845786013509055181022675989683008222105156171597801793074026726469020415962227123357968325871381013808163219576687464728269610398365385793560742138523715398213699458798534236984309312712208119516704496278449668761236694644121076500358194063809650024022470518529553765129431737090976459101233109073616010387166845952384919829924392825224083498588949171460193154376890686439106554831459304795064423467046377746597546337586526113492466396059115779847680526775786547138832018769754594598565583461134167427019204438902659983422891883727139182475144048596755718460749900579582840422399170854350648498311132822512295666210847080244918224812354228789286294235727528517754674272739956604134317110597859600436202268124885310075333224542273436668360780049608547808066822860572231375860920490967356646679082766132523218175112431941755906116527450980255668358673104525981731902208047723389139717394291872869613444327726387016950034403940012683783277926857470013564729884852147717280971593556047031737631181717026739295641829073424064122614667194102580345950851026894551083234867387321092660177364318255227587439791098154914500546030805269438359968678041075551798084898362748988868174606216386234560773697321838277691745513531500498287419280572756655045904641199825419277859743739009814820154821106135441498508629609710218262416924422886968112356981458804796325130301707127697408570173630377222929254853804119264172286045970180701172511936702790307358777678310021272456991430367010600207784127093530413857482790819185492567935656785727767921439490701795500034149079006441088106866934643313842451911342966819864609524785830573539167358525593623868941212347900148955834464606476199962505471720161314910124144579595131153662352891109159332105872023032536502734008635997661056909197737451161777970304253668539413342272882077783573566671735691025965234851291175057040743618243669084646584558219046387935766220314075857978410760079534016770055252365215439845764152881172457155577495952984471155659071568610529389621275065465092873625818067765238270175243039434484145050233851941842619416200666688524605519766508461635385463675408137234351079004420142640649958260223506495350453073756025652857272843457505109692797501777702874560826117290590007482879326084394090374538892288509411468119587570087423771639885130461199987016208896203759960622343140550127487330419242819395185918806010692261977978380957335909876104903816951457076151545585800793369888811880373106873007834479611205498864253416428214279357535322244195485222265444139520067883913112101412232817610397007916153610558723748022242971974584818259579402160358653475880270573729048455644475705336295145148080922101493709922321315271300766069193606413548838235142704497017790167720468330591944301771242099464632741890258168024144881851307811839871073202245476041686253152217701432858988387497378779188748934374107882933530682314260005387528502453215611763374087347953021542355775794664826658432514527589431284479573700594189109639969030848852023653510386166603115022741964414885296584605813405296338606760125915198302351526213920385768413698942971430209101767769865126965639306521905040831358617358907434369538053953216246965686570548985830217903380111145009993833435921932722592623908033276623153814874340801453313783586518022525319377301630883847842969766975682979196834098980858810772772845306310727969383605887974654813911633276317265470214096778702642184247740377134865002760968075695095557391300350072822254791545464954391022698062181036576536467909616724819943329283720276137189729245202887694872157378591228677664689392818181466818443937061896053139427995382314911176205134696368355413748355618430207889836253150659052928512483555655898461766714341866121526774729290793053201320684099747207934798977611668086935620247085525187063591501030910574174247883093150808288514047057216363960334884853724863704442192660556572284883827831971849811411119049611059317350593070535312709682437087521443114726142598724094335141798608144243909907923770755516906683793274914684159662866282204237870916238008442793124338881409186661341475832838098822646584697590587969073309006808578400759309950930034270026313257388463779045354244362136828265613204965010962981547110083667798656432342574522157015966596451560742431599920095019745331821703201255928270063296331478823004985561038074689038032113248714838157217710549485233571228734878560132163946415868914851795763858734116448890669735987320046471672357539605083936793604184148701222848748836659101284527476206473010727976567859911406223367317854805842748858895510062973729999327562671065451743733381386161823643837112371619199068203998541963405986022235696353355457730457982049904349584956230308546277824956154315142078628930745065657212983859860695887321477260750445703687089225477281101799472377542877273627217612800231497047751354380181931503060579129282756535920889008966024109324923708208404516393397063104987025317984447355335276044582357323448940885433074247211552550272816560409051681512642011880307699569576761397990719309168360340292179932595778132055471767542714874218962964831626031311263699279715795324735888527925730124505197047731856324485950622040209894695230256681359314256917272289349658795946558999490631896880039019726248014647984306602609809059435293435101389980464410990241091616784597248481495762589267372332739994408305118900113824135368627685005118549119540681114272933108288258497499337544300836224531895922212729621719939877906233392925879827198216711343266358176485413838654156091828866925685233656921604218205739634133327348176551343367867727347114096686181329285733196215373727452184602137624211380709546517320313601158985162627471303129200245795604109655563277967542630314363638127434993808884788027128845760785569144229949841531705727146761324050516676567868168514086436579488051485466542681337718675000365794276502597152049065405668162576690064045827945692837262117715242328636740649407839984250111241213787018512457534058271481369110103493858494992952005025030895253168547556093320094062381324513647762187477211078775358244854354374921394408716849444548657410511323507064567812265286627974440645089705375432530255736588219828021777006001553094937288513985982397049086961921188691050323472234793482391154412707708593935017749240839124584091441630206337664994442926186713509578807342052061067445151461731438108164870778249497262078660018019229314309354001823199479660995885150258993678962940120628143077442081877615625315161647018217287073428787998113303348756285553452060425599730386943148170656882915411459795858050258180280109412142317158069857175311660055721726060103197462683785463361858375759724537243628377264386015087108249974553745674432750178161181695612007021221637332253950865892415262871756436712539754995962012617190194165739609060590549933737353003363121078516260836718208763769886906342023928021716840272418341680175605254143565209953013404717545709794575245253472931283183907781750246420703448691412064900076777917327070337410390899987795233221305461917557948961669821044805496867752892245789201496098867392782137730024919825057588464836642416388431604387494296987120176481333366683118989883924048572843786292668524676064265170638207631691401999772728829375348089092315210508427982651057828324516410360395656100113591254486670807220200169140006415960968953128190467879391934284155276379820444426561682511321512043408828629961955711541847111794935553618120911093947882537300194497363293511556038361364804981175033570865081694488671843936564679868025905765561590368102734127984332301301430217947337394061582082708414436094120753415223816215406127347592660537756195547613215939394761827573513429193187430450734782832005635494182324715845100355372382460977881237564403622217597513305498741056142818614276248435352459951542576703916840559082830542060701196736152503942535857823390380705607706503081574631681590124198197941512749854973377071279945613802411398963301278582918478171922327679637438652847991597491967818184177195752594369038324422381061104953008301830654574809349087974909458086611928803714630360303715195323669244865090444845029120375671159682121075521811221669306149860881114874014133729468483556507678746798055194314106889438292046928795312516064864660397062808809326363147996549826326016014625674227214269503774914307754365590313634856548210144159781897718954621461203637883020565447647466315587981359327219145437218945334732418384821860994844926876061455106921493068506564345366347251161414211554124067312598087690884013669854447704934326995598397448400233163370787822941468691204090119112003532786426178677406139785551985559331765986058191776937784849053362575014417273166692851937569339245888717546617441554719088298915216364581794418505405229846497580521156915667837494649847785577269398242820913932101700914622236132409417458278914162397136692052940735986211115753540824102363090535071905545086446066773301950531393114763111782554844061570834276315752335839300491479672397287173947543658252510416488083107099764816165476581151323596202293608188189131851427387374072219652720595583065795894689849943838230369089709690252650844723059188451860489769390943479495436690389513205952607440105178039116591876737379551147828417556846627065696008125231104450180821014806529252676966388045130096115757062554583643285191128819540862116575936629879897518566142432250034504952970929671729109399614025759427502390275411983458568145370764206878596770250770539799982737100812372300314075966592644846391124198197116697091073399640124905124383884190228214182543800441953534615914623102304055807091238626192195813445175538640375193099395497383389752242247195591647753008548862821684700660077818974096460872033595033843435070810121372366600675779626170792631693659108149272112677268533666937721120934825778387096406054722006926424245257141119313362476072013307366791511521530035470304795281953554103374709787496356179197675830939495890447347827112439356746976684701338905493276008630127577520885764969300216601152804667937904710385569225927747036552691239311853569083549598504252425206826347816496684112799531732312738249312238012042401481660315929826271916650549971817125800883068788976423246249159665705277449721043452810646243233936661434903780382853750216976009917628728059579655460059775710307340735938169976515372312926536484955999167283756172241987770377244100786714910532607848419263436037181848167261767688729702736719647067412942629210666629121660296113431969523834679397747229838301872856010438648613878106343830007597362691610314394104460504401450076009081625702149576126099115634460789741170323061665541664239542594701298752385827604187826206817524879038985063089059669335333224212364719882212386930050783523185415694548933761364038496453983424812919453528254017371168377668263187721376959382865558398003857637891431287143466513816090241240291764351672571268933087900257321177365624511185191898919757657139999759661306796489975831279247119847776417274729120212003868738139988212842006544708819103138137225141693762615712929218849454019802988081362431991842223857386206316411889756259192368776259966557395765213936792184282020679793277529624576151690271926473146862898921002656510390445492747361803060071788369323015344447712358669680099637950131056570938473268177804478127206331098450523813930110209100723799127591101678424325291337156478913070585090920730783390060131619129799932132906259881306829934126176550549927559794589770141350917806735120418326134264318893311519005336550625501387228903615084492546018532727952263647495242998051005605471341418463956172790972644171025177680773683172294988304101515703916034008593349455190961261645384085376164721319959182339415597777413297061327544903130572705638234477616216292514037213810060274046779641643767092522497785449010853969014960320610391242681014565593151253758951063631401874741860123301559417032400409233622524368844607933872551531311077752327219308162009978509532238025638361628455640904178883394409551057565326702118022955500185717899353982025802572147025434837491655142257742446077722804850199130749061040487769645910626185893585393381678528761371800073388079012769782219669064242473080581938144361410092527429252757731085913783242776611871837159610771189162847156689232751640141285711655720559022844226747202652692812027818960199317894775444228712827085566426075595846686297736620298351055408650293481508698465722604546131352884409693968167194548840116100628463320642750012055163107104992487177239036086476185721899539007902267847090495502681073795889124279240705499005446160465399680389001606472248853820316319222511855092108683961172668265334855299212527251809509678231312870356072943177182533976107540020881066386973345296418966639721950894720325199735637633597563718450221172234102001327410409675805694338156624884092754051790107619025361181277665800075817935743411334677685199906232223692881285218306231013265592155075347454679060834167027875357978991055095476598421721180630658181285349556203265544080250288523512202392582309581213904536697123080224912660458288863339123013655732685831742226988753344281547235170540709898846865316673133594548517808672737814541419851854764235624245666370062507693076155959814925047098578886530619332005637138202327938044866249858775736255698676283497431429585147165931481644198990848223879964600458106016011183656653221193778871052835990921051879518170062013335829804957182848408141006129254662179692873746552194814212423848013652309477846391023222521564994228917075435579898663394219714889123992251307534349496607797394171967635768812740347832294002217657256143480392796745654591758235678309581483910527252572510841942978889006812823040712756155533856263513818304198230448038419509704074478136150397956850974301892795194888539945916825656103820636511452147687135261343303899811062272888965947634157815102454738998816242884771156591436509955495727692300423696690145075571250627792589044625350431524850454265491645018250011245635018733219319052149850858951546383765370790589628932125677592682707430767678548663246680616366038364581305517559337233725518515273951436712400736274941812184024058844189969683062296460581185300671589796139991876529017495079808965912386201843628424328758736710445975211691914982742693313685786169849846687913954975786524625480653334514321105342252003986808307490716032888411698153430308975006976805796541924129497695839539273456631077906464350513874442430897685968698076747509173795607263874374984253251943382793226923866346589719537668698710548579328913768774992342640290827096566552056537782133704724384756572729355853674688322317418194937745543248252530108783383453770247394495543902213241061957116424462808596742135225051519282707268360117843163795964293152502533986253069162876897721061885075949807288529215522162568456984065713509152813574878289399952085715819278572376830073558070738226668772999125470408579697077824588893455584387181925244131448289159628317969970072708709270478643936907143903631903409883723198879852827707485831434608025206428165608113490129640340937306463514077110418978461931149450128639641914891993562339803401914299424037528671123383748051436893882027649440097833478468396290785110211955162967520710835112148716245508252353989184001683299833860958787513920645328067848251931040540158272838726875789777513621790942784601131537895106793504953759884912379926452545029499474323548358081102519903990076031270243395794984413975472479988140225254551150570342687805743696287819345376071864039091418241618898665407871471372623687471207779579393667667866155659107276548622147429522670019073319606358069712443850460959648334771450200379235028539701580097655241112819843115907407428982263703854405797250043788765438839965396823254432348087293828865509565093840960293677264813916535416387910085983649336899794922069049959345000588482543910139311282479069068907680298285638678408499044974991241470585923101794420425574563326648464160600992163378333043704728205241698526997497675551363455141712345134612117325734675668770092240753688393845686315432054280983999745612335989515368584519896114436148193470292805681455713668699010406688115458567848795061863152415633255357336817113179515010348960353910115684844661512807610713129497723223843711539345086612957228472211912717020935597354402189727435177187672598080981708771385138408522868095702483187448314058408561751616379666891771467995135897392533558201560662675991700673005848592656863692221620611349290290427323601262448955658285959960047562243343921729875490337428518593210927005936102277891686271168339110882441485912802154086436192572949540838319192376881737607351491120798395279733519005559866945380532535915496377052449581695266364880300630678140121110722489906837515356109813474067930962709413740294454487270712272045357272158378363444895778885655545624566609191361199067423047528646386108591115314951777710575316678790208363950418534146998502266814541424626920991871441469808730625868587596297128718814882626216257557758585539201310247355586053219386061441061731579326251306034265217367065375702331325681631582340176354462605947294810573501074487213219540723106724110788933744777514383258799128290885083086287269972988458672177937859110447436835708302806899320421213819651579671832012148648542285542060927088568552801020982645975553987390484669424158996140234298486267197714452788131633896012847666417044606287163622393688111402070652690279401857487867629023514118665381384857092553781578724451647471385017249785358674180295867607818305435409880029097168728972087058689492202449596666101869679541829744596281164554079194319736039168803509772402840519093276838198678338717685806492496141673530354612695320753208686273191640345298176443968741775285396180313580721995400129642261888698523948251092386573815412527393454114949317491806399483431068466878459069697464392373222698473866680310585513328600389748421081648699850189584724427602582499542425022471940887081161866235804811295510973295701125460751102743800028866207036415623166264738590948769739862620999033118373757827764500538019249987696664856190517210464075480937870696451757278122749408257547424225223187088676875134400086582731433455392670004546549938688916917775491285995183023302079505924236637004446736706120059977750953484762700516787118459560448802642229672800355132804333643133309577486677044414175437713417710852829484714829201612186623525811594766916291836750247855375648788502758247046760362381924323037947782456937790647151639673650146035307179173224631816678153177950386516990609056999166327212035402625250693930979883738532056886545344867422122406556895850089411043317024669145758211300208204859286945728646949879461081425748478781329943644309305228601353262917570376507206421424442426791074515778415145320572638034477302709194843343793206116019565042431393919146982375766625241057047152100091141745917953938445837415511298126666061614341605581131596321211087372822810901153030726842118472869469009670145212563443085105479662985945079337920286360517840876942790146622489932650697174188055677558677783767953040249818782166857107160258316511039023059393934097981077537905155820560280425688636495169010999817640742123015239064218789367932197111020352308534251948468190997216733289171961666180347657622584715131561839440240928861816868262445156179373542916753107215041686435131550000405760037027933344869434348272106905575800975871577177718160216796571453612940989834980037056232267237811969175185326957863494084045805036755782629757527047072601655068336417186878471371598639743446123225621693423882214572309284068896393246198964664551721076478033829987312975598626632663042942791301175428247145839420348933679041628313022710804744510560250010234529579415221535766234402997561808296740514508725861016531064871303305275914860891805592228528907505660373905425362103217865439104130084663044537629851751389029724575457503508504229540772574515096099192049419499397210105312472928429207508943270238232552472780576918292565514219738410614037834262286967254744444198032623235946430656516454286065302354727599577977709666614911453544990437564584288654114727530993407653764575510153604118597005679840610127479334860597417245452353306444859812673400294622391788367584496170719688013863118729436595153467161830957986257876865518780319714634510813649707056080632087647117629103517457228659551935854981999624129824536753285474963933028247921338010933103503960001423230276161255331822006087011742381741986858837489662738125238185853791623408989187856820412803426872704321207240690898264696550059316114797766051119431499349832016444028566617507938607735433031527990548838243254900966049499539711942194398264339319791843205460558922825704773566665514977856393684593209969729496877159908577771461469708082813826795807289504313493584767879140326049174706137375584258127906836346450617682980713190505466066884700986470735212998513251948484546347374667250919498131849428146440701616221854915812745896028994453782885378672494002919835914156301197268513884435083507491788977343432075895220228773256076968765484920719551209700330999810905929173407088703040353408743100422447329363369860691234461500877800456291489334485289540648534382283898862729960219502074045914825961424710814579212704926745072032037843545625689138627366378938228692726591683255691851856713661312416754583015366463851328273512664837963912780243821563160244373023152611470283492535347881543331356552915905322457329466212568850860429514257877639033388180713543101621678009727732119331163524864845825926492243667364245106451948846736503464185442679497363408719789515743419142997734895559944975096930539378361524361700240044545105262013223834818978875687859636712965879419055593525113687664692687696617429871840188641213243809692515390558960368327607317095847294353778739020247893598038533278816704919294623432550050886315505788931675339061675399020782857294480253272450956979251763678166623001829932421850356200684668357772134416640758617060201479934512946109932092655531519340309330708021688322200048328794692686125004238653084557033374240401024143720789656940299274146379243131852635990008221342766213987130316936212841215356711270290883852214546759555148222052902328207009892778584385288473165180697434752474147642055107483106940537075596528675297042747688486123166733553519270869264003708846870096837870184115025072207191254896048371773974010060597627266859101432944475754974973829533328990807223299865004489751934941228678730874884781947776745704348481135517837163904165687294986344987334516779922628673289184261056364792478167348417107416208180760603741189255990343249925904896752337798739865496301716246198362928040775800372212258333398246046634831977056062610144216270598170461334924309591277847166297365790320012085599112792132875821179902055906184607904521785991567437195163916426732245686526125586439083372966369629471328554767922489670615907224346206890852778798992390223186745278709700863643714369745153648922547248676152830618323236998393385219091169472118752745346656126476055174278905269360173759069701777112458344640943452826600024823296539913687102848027122587145620062807233690346032786905511708710218901429582679212412448351064820601968128967138923421157660607784836886449435469970140482769549507308727077299303258552397515571354035982104941049188441051681806537188857445096010018989900678894063925707305171635062981491872918501717533393235287259707480756548020927180937706030831376843643177050274317048455234549282274046019259900210195395891498774423552913070561376799868398649953096020218351514070821263021895882505021358177311185130096430196885374099646380318633517953701494844331815056504930039465993670247911255317858701243601540152404550477520387044797748593206362579186660874414229039804501585548324772793970835460145328846010520903740127234609875969323367247027534652888088925069461454952563602615365956935894980399356183301847336765173848242804461819004291517180932988454930014131415408524962112141892319085739642083249477841941890623488377354425906204634800795368248810145620583066025886618745524854290522700250241514785535581850119006474238492263372847988730636550926624338485791841997630883672264045936162053609803404546244187318019925566587704608522586454214572879756496517784791855883282557572696111456839589436611311802454182083234559244279114775454617947069249745541606499246774224645733440400209166275311610732573051647247202522857420444940971591622245715809100907224417350650345540760503060498712152238667144674114280482500175110643371572672123866798857460777356586352790390921109352189623556445820018550257183625515945459513564495076268275027671458135662100588774971245702503876591174690833425838409894726593791939013315490915922379446849726968449467267806315466256288924066020532493727011084427789166642303546198946909226313624034123937852645515120505264300200018574684032190200494227873423067546606380758473611676813721876147148202347595797642300140604778014061576785130911721360147297148761698226106171889749115095628088192183662515283164523985146298670971735402745556104300329006602661490988837131734363151365805697696831811606138421740457858472078678036260330335422974200784740335437989369321759298697097772499998185768823654093880365462624503513268735288589392610891345180917260593998801922291907956324180880918371792244476856597513708086448141872567320198153405727304296844073491929607728746321913258864403400142576572233241893755892891965691328182197910165282650567634559809411099351320298637770954595601125344757255928115735377129103701463480082876603481532338658663507134153350691605232389684213894493479740769392184585347143924434181051921607947671471636969472286565087804156679815090274577714147561002984111683158179992270040328613993315330290928434807075629778736324808025147343759465788536146766069126801509825190263637548179116587910852595489768733592178172537984524337092577340998899415601790092908547208343109294749743212520387616881692433646820443903757540276746065788319032780482948159746538677102656534274535472791576405908841029990273142096742101060628929831909369927445210703281442834664825484280545613886883416724725878534227760125041015500623377946369556307899349599749390328249376890165040671701633332840697178428952052541979657196618589268303075087076721356361753834805916936703199032074645161044435256130035954299181111506594254275934960114221195824352846168715943348473548774693127557495198771853524918490872681143714473414034231086672641499265059394482970621669016087409250571830523743495995015023078089405533840451157070504437629330961974968442324749476144570985305173205611738233209903077695670069634456515044093354112104435733541767876657080530085435290884196883451998353916362508937592446561585075387057149792846667246178566219822392110905059161970327076449739969958701487395415835835123566959482424717132497379456684120370563473415550667502103425629402551815299034089171922437309868017748273559728695862442724616015304079435228477602561069671893463252274334925449166092538312970959056598777883847727177434164061897590722885820718588144945945040162678149699415199370517189773472035372936788828938101009163664943967297088773723864367300380216714396340965104751681316406086504260050241036046268859422631648343881984101558798613668740859800670751704409479164355053127751084544349506860735633919378171457256635409883888926362095829075881124367749329644760410132654958855695237773405475320460777992262613488593712591941324460514004967509506331288667573805636554592370296089935717755834481288525526580103700361466968163456452779626043119487774697339098470242610292904718191199747281319919589039719050468961175950728021449142681847643963059108767185305941513041262945698271703884038013152502744305071408117281007883443918823759346572125903926564378515806147833598290237067843031382007532144818144300130700516739907165918068136472134472817275729385146795400165629475004592444685102763213019065707411344096095794513686087367457296833323001877090713964221312047682070709667008639057508849428550277373484824850008578225958239408496311484010375237664030696819074672439512435312972550980902566325714434294891006455239310026158878101384901546129199464371862553916266095822845100581257287020010507793811529200397839755796375771829865138401298598619884444938023817075736597075632443866739424562587193902565913950136641818787771644145910381377169832738215842392767166960676777854737323936423748559808637566109941401381655862607798372320265106384681146763046104068175598309697599939753229129981239653891812641266567838519494549236115312327139914349930084274757209887319762973941454732544404646441662368676059322651532198257108822226300270603050317671202863121951574939253564761315557924758917023173650464291731652384054619852387059872454425678641129072424322507204270034912011587334562234459464752486583384135071877722039483033569144042539342162013302535490074146156518155004765106436155162082644260599787425125112392630883758582636561005474036947943084488594396967640017801250661952163140480112556169088946088904537502249480635415650223851151407955838781529895278256767134287772183460344279462736292448362665098380894392690601860949613623264427868038180309705213891153277320002912366076254404270804886628076925392623474730182026270135065222041508011435505177665417164798777987308466521721902783717814030148359596331120771212845964629551679545665896671613316263475354460089655722280847232619943135582981672601396838189448694860804010558618161107187653576086866559615091049220925728432981020924370384671083214072806981406484958249826538678609133146065409763578702374526169040437561633627720552796566652995352922020867496295316806497442235618282258918113490525552253457005946413031326548641434858291572605111387967991318030990524928048409484474566633806830176521342578633823130049257620496475254896366823185048310220678792939140676497407165565115047000670087278000371334028283349921918202262009284210314775325328403175565620591937492640073333314119182781569658777256176337815225487716243972803438108995590410140289729263229235670785777587982900623679906985730171632863172828098016994267802854118798012168703308712746443402422311120441522810557349302860114220791063837995416786272869879950629920893023214635311647470105235269452162944890656948923369824239131005854283581434786747805705322934522895747477556334339831531531567598659761535492935350865726228181363512439629793266110460594673657520237765956251450585035570500893889395198678710267390861549629254030314998012325628317031053586429491698665477105397562592197446568590965683620016908302693677328017306420169407707667731379283806995732613997755672018056475272714659786521581226881325495229126554993725275540235464491123732105322677946612545070128282362641636177267452926356932811501084204819616374986800327185968358143777710762775701113421728065787981740936984886305740332450560515295320978378163794674862482330944918023706338105479366713162604978704997453503127298527302051598908856387381773235904803459767770792042499676854752562717759329231716402134364140847913811057732100777521207941340882497655307302161965005362785170327271172156195764453826460797110356877950422085517796113904903059791619091660701251050978583670563099538215597416692826614901751362839320213437967074887647770439461305068531252461283196922933059039094411390777127550817924537704377584719665021194249458474447977194040797352633143488804338850136859794455185039820234918210798476449956722560439411663310055956718113115734949880139148838462169324646897976915584382797717884909260644498820330737556898545937422608740717753497971493586882001977258581957018333769096062452305892106764861035964778737726343905723989930262615792382344859045708010787893480062920504332737969437800955130764053698468527199611895986909326960880765774973177169727455432930635147080443683015389629512831397716252892266294189589838560736542750176035295490105925902569385379955967194808431284191784341477474532801094794733797171800719997964349978062594312906014882693016032019085000640583608410461739401200715410591704560763853809075382849165571676799307107155296557116659134461317815824600702372963027733137211736544621403036539575282049616873321346210902863632992435460549829479227015691334328656051429441416194728869071451006542670774756594049261717787791907261203869428384776504907712303631153966695642899089414126263420685698332564446582914634275918106607230809127490226345595997767099804486740968814624266171464585236451698572343601741736965192563212173670781719590935319219194400035948908044621036070802291094218017265449160000409706194328030597744155266982044014310971540566772369046283144465654340366889759402514323089820505838576783807979700131752108175296109520791011136928489039844889943801994644383961528026397249903268328869315215165322479574426324862264408567862562430127751188191457124421569872470866326824270717749011517219059747731749462277406543840530726456356370000848915422656559443240975289113480666868015457439099252269088021841925001366219600939673614450176812112746976585578291210955875170600489276818325263831196128867179140329065678599380775364247004222089636034015039079034347487711130271048389411939550760604706657666363017841687933620476783605212947693976914066246989657576978151058270775875195412766832996778551119357506992848794488074864772698371368356522411478579494047091385112309809891079690555469735596206551482375819330604434183375859562396732571485787628064279767879065987147005239944022011268465338158602503249415374169473631465414866604053449592488982044742631888758449906375825842051580509849658239327620238237447623849559529573597538047452979309955286074014890515573128706366830859019837621146155753809116032462326540408323838620186605440910902467243210262684870951666028402203537616142800697253941930779357653671230465944410447792791628036619837452080304812394036296810182770173903095618243447756456620182249041909882126640607161498812108019566507405168914977410374602904475670422725698784959927927122275402682226038501659914212356857644959864393134514640178650682321304453793477898218839789391755549699763763935532667762034247476079095139356159753589346096670434499183536439559606971843292636472478746441702850716404983569725425909096067802165855981386168624703688740342333550590740696921381624362062980923328606567670598343136410124890344459180600467881396470125792118316959075250123780532005497789596824478159768041401996676039529713524846403403551697719946045899307836905586730784502312158174629096419031062186463501891114210537114251625009150902291870609360009784242574132611785115257871935805889129363645127418530232025255005141783575925426000952456636793065953197454329488276158147720840981580529559802966881147701804600412251175633429572951992947223220934666019575518884479966334459025783026798307527836790684032586746673410352075393503241050339582116026451309252147174652660568418232440918209483680150684779496859212915630497098487639700980686079995451996745753071627631828701840350668890055136320475971909153290053207880038285631645300053484331976188759966232983787568667977627840496908455070562659293523690235411056985417315026830063638052657183899272700013239457631789923016167632798727960166277045896237649615270820401663307435683625127139460791393053717536004865002348085964176949324051288399508793021480136923427184579207842067200394949664752425009884886175943256833507216616318166467803195163770293049670638919596498281638239396477456172881897635412832424762239136667418329980095614828903896120334929620289222747311915323518875576077034692928595362036890132164428938928202136407707208472150495098469286866603927049204262987822978734944700190255608299822513735581295141055520181341881533622852955515795689646227732117578379117045968132647471408671577984440550442503448079913521544357392572443662972392650126577827459536942367285930342846166804027906737971258044405186505394289560582510021518144627179365003554544790806137728214068065976729351533341472432619115276916739751731020716412045452534305197677235468653110731911323960636347602635021009414850550519492969474338639120740336107497956621881064191287838282765987978343093135048386628608050630329151691200275350457350514375166228048017414715802164072407338698607466270327323432959021318622794046637306973126441288645978269107671955292587918883128502531262938400811345246169596280490924130869907103737205331622356798113700842713083364598391756910869602215081612262674838703281405520416259333033586834461288998590898865289743582489187185737933054235154671087984352865299416069273840120190516894487167219522424326707636998040778185391411656306971713386229078092239844420158634039504784346188454996646173423108486497140042238335115860764088337948833174687136440216065155402143338665203034251844335871213418259576552531403889139273415613761899188822823807207177235001813151134322150134397072700243833171770562695564334663087889331802870979263364826979356379621622318032674256465609741423732855397002078613327030490634835771857770043810629455458202544266481702423712891848855238967092061759055322994399288467279389685347696587596599833102184221195095254570113570316485576385879707646295434968422448591533720877335452847358669635731864636309432691323009930912362133259116809999942367101110883767026178512954756203003734213088744873510033219393705355297401785808951718305619223685696586795393537299734684748966372565028502433913177015117750292473680537830399043174423723746614905227447342968248863936435929699214303979917410175267624500987435052319897455634147034257202904247066415138527598620889161040350403273012124757135267664849667388586690219911162312788131762497675564728359802644498048330746218672263145482496892310302650325354638434110466867388507365583892318379693998955884340232891305369395248686503794136196786152559964568459918250607238880689408698388654833931503741416981757605102303830679407909174618749520829063616406228780129338094991899368942871193129514494202021757078052936477745452269404776623044477390011165341876235797095850343593595558337595470990643827075141881741180398754954042642863253571369882499772429507220489126358997497299993235855700601653965359053874218241997413866863705337173199647008779295786731153805468538628669417656796210436598130771049729467412839143539041040929868581328053329756937209649655213155655331729555142219425629126632424724574683939461052471126481262941897967823389907065023564955279866670193361762453089495733460647567752752887402951529610111163910137912138931145409588855178327169503328249681330967767733627396097870570981985090357773154272064934346011304667297903586296211872494077697917653960785085013317427451974569385414457650804732091457506200711909181189407783062191586917596864093380699454930526024110154549980302633290672703253637613329049641827849484008695876378376093882524765648553250579213515706084316173087614867004427240849419453492069315238183518883427028071790595674337873119816453927095032653752294836951792653753522308639910016439594045236600800651240632253248608797449339739170846500381671278601382342357523369133404498800448122077615692496688429639009909885782209110785799292829380701036217309000712911083102058817668101500897780659100028347835807991017505991903392314474138326097692160583895653286387460789339346120411875222158678649535112104974544899472421775294658760926366501822604349164010785198410429552335972499347484984458937984944508592905040763941009849929363226798990487834762325226619926584646869035869339255469344786207659610768622738086885359312059318367664001620674677086491870960722511123764223575391096065677475522857910653246904490001199732404085771098609072186054895185955906847667497860846723355417906467522264326721532333765331542013031339669044201724854289941215734515527414910815889425930197971277954732420413717983016066727111520065274877980125207754132584530231386626557163548208639444628805808881252508791876097705412459808054866419508779622850736292724752133450429324915191189961726917290133289442862271625808896162545948432559976154541953252746264200908710936116503161431664318656506622206416341103770636870581653594127524855916598396443286270254590719173815526284542423691114681467635088530025017956637547375972722321726476247193307262970357538543121066873302286744997594790759657802058676612846173333662082492844161075074145141417373616985390002612562033103751576473762039091411481053716385026555587607092030574409928293618389765458725727464833557985265543604091110024124927336233422943491319970355441339056627414203983079489558338904431872410916785047791152347574140004789243309811182994473452548397167183971197027085582924007289392059721693963184051072412795035072355170952668158448744667212453664864165385326786615214908776670468735710771265438122846377973949076942574057964797827013697319955718269382319534914074429935344180961087778167559380608812383108422361641069636049164387713173639211896209056762496210637834458592370327520080537118171948850666440204327588478169331699083394733955058603432980136320992225516720111572840911004973763796795374501505920501644591265964852288916483652243776775282238600609094534347180749558791832422042094793838832907401831302117262780234908773996818044242077671093001418524356314984012876629260585054250051049704860214515505599481715241967431489401660285541366862722011967501127411828217313262906062709632550859472498667807104918541328123838847581821691495308901099567494150296236942430168402901581170005249276015241012569533572098164254863325565624971272665773362029365423982110509857381766807207999301976462503199810548279755339402589721945320788623197149153629198172350022414570743445453738043372234087139501713595900131725008816901152290307824183629232688875193537246154645919999184743628035626580780594651887244812333197711875586252660927093817747748082583029295102897996802645318200646813808139788342579551837933521121138033539299498399789291679278407923738782165822934937750274413616150473259173933591297640137262809238218498062340936879403072826782466155398887252038135250511140515406327311407900211651762231855084116548521820480851728022277947990522129402956553820684709693857485560249305890590176231008278775233321205912078236699511964347049993243164605042402187507288587577055662857491497078054871213625962023012284782659093452414701701342563721085783776000844331914321506395420352534545912039654682857270188870077958459045062876454386006389275842257699682902355769973965910016519518132340096074108205634380884300774953019058012573356462843797351921965584283558959627449475034443139868420587121673475963679393249310006749990623120821731711791324143333400196575409453757961518481239994840699867489617648886488421076743433418831017260655166098665285952079054597534117292301992066316530294897217318740891702147012961208526960367227320077394888141065741063329378012810368082208585536804921227315612789694702745546607180613218039442363316148561724308291363295176952332431841791113030516062240725755924599422286170042606990054662480412657093292059572175801494880634192270029523405754414644165185989402843395025160018899955429302441033281612759504486029823381212858115038084308838874179328797757660730250396744999406668543960955795706526460370838122786124990669647119900688668823274285808725037525764501361443122670095844310804889800206423349108251135140610690947056421172085172748903529526887854985657995375892019924691368759481244844636400738636107312983222557711812200743830864007630809124294095002951972677610258970330530262835461228667322287714633994528461986421260177010922302586717606255043054348109139170013824167979347863619957963653942386179091541024648031517233197702412448522793760401293561452343819617977454982688651361889152950573668466374888397788942380446504704747850889034052714907723387812152408709517596253883664899524871617064312862590669583821680312576936141232087410108493686430688433441427852038610990389593050089273056053250021836940945801949637075082163028550013195118846229764758865028608380811424010262390801584288962698154090055605792176648427631376152412534435364923237895327559867792188728553395015642434498540499344742643749217672965886813608720666077994251933564215346086660953447279715519738814216268802850832571543587506977011473770382479624267953806166639318642926185729632361246288599595860614741406446083447527178059852019113748126874993298668063814870605069637599559680866124534427757744452323805399842825585229741986381501083928900339254017477379090196187949716284311854995474781714830632257548617321513196390646495429554768648623876138235668588727785005294661875792198418649220833662610952259397200192277116934475989006654580079432228552398847443812357376200600531587850118803297692693870465420134184985865670327304795314622470370841874260684763020214482283376278365325988857289490253276196380957215075828738554162489585487536291526444812519508040465959292417507757825697442932646534203594578796619275585040218516632274090853700975977209996091645236435547234328184578755034555569603762388139244165133901706241332741226395546608255608084035869795413196374198869148236744491917015099973480921706115327802518459356615246899483276245736160613075334681128691756259960933819816028654104181530991769525959250404093208309152010323025009708117397743241721464534639057335462128214627211598845026440543202891343642313466222433352187593610812791706951066739070844840626558185098564383989870302154491998829141877606136017484485997806907206640505448287974572780275996452399327160847470359776104107096972617136605748099334927489927700703136363220965711360424747749384220474677729190472188058672754538105552952541025023667426897904946880186539263767135659196289396758787776185700315294176299865549207032114235870606804635355767479823473670550098519612125970233213761205313810618156913449970333370913581839447346593229974493697649544431114822575580384701523545312699584551071337195151223112804966762226349886876506783297917945334072679909073145077571493431382537640687525191878078509346401292476256775696193012750241467423500384553748936802776325086021776605570082670015617230618438204630232119454436656930384224308981146013016885713368247797291358063090219824727648699999795381818551695097512581214411152622748713955005232861528666399991270102263109210014742594392795408278627081290848233726292365530686075238552726396282218971024241765459642377419408572751320151988040982430745105935046545555546252643671935073664558947327637454454653819500950837080813513252514296368559963482725067014799730118829415931089663335897254658585212063611968676685317297506721121201466459642859125982967960774035959457344675976783969709492409705143819993540222322735551441467769770428698102108491314788794998792082048863429275957388358146759963719735650766822730604175851005880352175179365448511185353756478362894315422336726388251405881263225860261563816665434848455671356992942934092145005223752791536267604637378158609149033082198811356885265931457584650337652136890918513645965669240927623294680112577660070668712852807483995625772355283607339204980367451896355392677433064580210584103094230024379231783279930064496711085512872200311957316708410448091788207360314153523576473447954207295875216227593370424152697183424172635801179879551674532299581366677276453793021457119440917100831291510623586672335283055080676945786335445998141010579284327454694130657975254022253686450509006883551995585399585747269976429430681709136586274826197288947531398945733616062338774947473305529002571626776374448227115662806059561857844903791449187139912877599227687262857454716411356863413339925884308446286237289125649869468029314293848235381476736091346784482359433476398793273642813281186628809235775755074314086273079493817797923955706140066344126038572115954577485347916647221307929028088900270443072088374168996236706890297236935013312395152379957732798642654441933188113585601424146964647239836542331888258615461454100867825642929768977966444382317377660447000399960779602261191295805427705618012484793324044937268284344076039688616021798759136319941644632815325382844606917630585623780351998785515459175377200671916900778078785200011010272102812134817875820260914704690624195150923728346635282724358680873561025393090069827384458201899192844772137085687483209970586563408693618239465888751757396586649215883632648040407232425222548390744130945406171253759018165160967092042430340567224565074946986080966048343953581376101434255448615891219751671461814620520204220468523672156620189384082037262757206681293305424402573611850772396719766722096041941189031542518991278963905132238528293726984530112561335832755979269364962061897599081951532608176446066215498932709570078192383898325221503728088045001261443308886041138851567678976147136180734841170624492710631157064538661338662304152998721319127581706063081592793615637429458059155767811373732058343980211214868209922233964215101712003579025993565025407837793421717882291893166291156700446456749600652646736001791521156799554815893665302906740353378010582470197481938592651101748917341291811474267172774795734983027336862553801488053353072000688236008404625745294881161626234931748430446590097545289412944476026646706492360189099279325689010256079068748057660737689051024959562031668733166212613338167610132765328144215910991237889639339355597587657884203029190436211165095175571869880144716902429634182140074130685877776851984964069172901548498371935599962205544007982224099749201984240629773154500215995020720432903916400032596950619464835394497312885133623223519531152793046337140028469452705183400531418893176878526758034816129266731250339607761829050185000766822553029486817021242018292910429729918585242886493124603777216296168639606329887059336428705766531410507357014463191144942652505328326102842146809107462860815186274324926731292770860561782097380578570995768735635034486068947566080413816119877849353336475116839609913065643112013409401961711558144379072796480984622842620830815833849862686130019249931687602321099942229467584488193470263228436667454459504092695904049488565940252487622209420027635445053864940915663999778865765106284982801929188224292180593846783630233999216690908740030744172629366474946487551750724266596156040083664735142464556779152229864927827555649355245857538696955056995222719011389411318671816269389829739732958052278239677461675051807925416306670715393676880396424333415895234479749428083185728914514414569229954209101968563623140165723883175667267750383448456493041280926384723668478677555098815076427545110223902426219639505181123654736858302254549529520423823286770636852229348878783620656053763042784808407761751934724455965124291145110350188999690130769404914612271523102447017635789608669270455366976143127402913838466529043208418243591947871548726561304722426334431359756040713369457905739385159837437045882223757201774615221859732913470742367618679156779560027477270677086453012198947986813249264126293928801794627409376944898936377130347874159327061926179554234305183819060515350770663024916596159854673028838645886670736118367660789930848160756733604445163394786277211992344098601352109959616951623861704312572381254247385867849071465667210340685215291069272355330745266785799619186198175348944728121010286929131507528535136361470773349750366960292828319750270545589202137045034865208086522106628927959453355499214779473257166305071126440097539236175338438090707711677251545077342123503956199438946750210236130511339231166884773264965707978845653156619021306419268941486195169380965883736520115053889168272909767627908314636986156240760263321883280162668871836965181982099435284924014626352024725640266797077949376623829163967332355896976985799308871642814617682336995785853852601086836883803270392209603163305630511333427510477142921038948452704165310753002668487316656531368820044848635557514472055053420998969063102492754384956034582052375624168917200305019388369622781510973393336557690798378654454990479820528263068656468179133206105390921774224587086111099661436017157763423106921741769547932665217859670142334820182237479487709818537677979074233668273801475828525709447437473387087796942521479812441523410996073158641501098653773202954498400070376374835151650728309350740560373654565179100211089827807473994085321656687148274022712122229006407433276719608568593489006801525477076999800652420284968541299135986604273510122307918692820111645323018538203562350203754166759001385685563272653444086474208821409869078970390733727938881654537199978597809947054927354458860080097475811247958450138354931922487244151817928047891392619943924714272561889560294381446180333426112161510945747240567199089827520521621467515442134580607946534857920268321492016120731757742173789481194339102566517645545808082996947618321745032606909146783724725484347307105873310283995760419729771987201275874465765192877946390624672935020232378630613487574252127026124480234329818281034392846394480869435759666200143889124692475978998008097731371354363297355339117820233160735401682773329182598437704555129578351473363078489855702597412989163477219162238412300191360306379527101646232184265889590627369050972230178824844412036043465824565399846934715212021195591181125147164773452661790008877706041780646866404033657742284664592884419840738554940343932621032387187762375551157873157773330250459660826332795745845820047099972600050035763288994979722186028836893481526380056596354720337569013199739109980084541642525017729819558592864204728105975092549979134453026186123250488260750761119476562578860819994704025952868822063263837983381676418028610088228620498402790439250372347211594277078283095223818183154950458425955341228850962030832734632870146844210466550041473031257062261962354557649646626248890840747469549160771764712663388263781556878469107574442581763348902788999734090783352019996527118852952802597234302981019973688309235307019704931024612568090580744203150048782331903866765207637011606301225190080363124228094934468209996587242891747283125511638685310266399579232936909569035455034154271757274848751438400754461302675267696630265386428443684834068864614322178650778352330557586193342950769625496022496178093904995927214632876121590675453827873592175429625133779508433665312079800515176549597824072136396866456487335420974322992495390538545981906227981543075305401400087164625996492847813340248787336303257634882991342372042666724814479910670950381989504662760652070043253642016433321164110561321388004043438167701753791318149317809074056897162702878947616218818723601270532313704361201561138669603935159427935899562356028526311384353463512488944924787076258728345057141474308283212744671602212198805011603566047217034059267171252394270893750998881565532867470972038754114492830757969255127660389170567519897083426337333753855579112513542322574864327156879774622378734764061257427206280913123950627067079278178627136739307057542833583729167248814440158750328819063046592096145102345319361797605499484527563613503332306079432813168067723205892102882002292778732301138491097138549194743697073980698015262256017282672328903426238379393662123498154601441077595617052706963690892152479095513350697645358501667452589967053955706011566784563179666805255135171916337097734430554294262023686921695269066367844481744161648081269961397459781145729642935388092642239433162719595865515007163409696317390240220615781736280529772588234655756692615833236289782048426141222754582968458673421010557238482331211220875930987203872366671919757040599523941717634320478937622460642490544251254323132524755488988825241022972562165221331350477197274943094363369883153411855026979128079797063726685131196676682617519636951114065390765649004760437309506896569785487312184570614717595360343993501105832044625033521003537443778644084995544927168690988516866911808003417721940076581920780196826870661592422991284750344320847603608439014766974750324315736203299715981813156994769477287860690555105849130954295678871689540745476586789248280088120940793030416473483236651460301703826001487168924546467069450185112082836215425446020987607891845935702132211317211015797221203580624451927446770985751071000632093168273971524951955760863908297389249886728994625718642394062579580722596024832001997871216386434767114145737703486970175746472564263577740612800816451416321037467850839994174959972308097887895814136693437088311017190570984245587583953767666250215218590300106096064432261055991190312938389788348735430831565924228982260962764197561340385446456313189432453545235640124343665474956224358076385329170204372737360114152552570155325224335769788348415435139202268573051987126915351476890678877508099688521873103346923230521225990936894341820456850304188833387431804314029637744715937943524428416689175407954417424912585953054069053062779078277614473549862750814825834017868030558418009501893304102408914640172784070007027580881707906268580275028034994536606073942241612378242515776149527360817076770639722140524700934026944586592350773566960879100882931589449024831842137461080155327639624470786016819883415126543113389768303341323092031164901003169606239112540285744456297672693027450668169457909791571630923776365322498876445522534645300483636001070407428098250940649925878373875446994020945941918919167820484527257962226371441778487786770306115250418136721547412103718860727904836072915616464767895480939194646057676254842551321869672494865297235551196777775882978721533517480689164978606382351453922094690331843196214373191554054545833134560144836010454060555654300860117022777628371797592799822437885356131836012213553099685676402834428812080703783090200324516126038044441227754736496007094386167068726542549420494786724078312513304202754696837524752234195146733961405899082526399453482510389745872082639957691712860524830217027542375526098088778667059007455445860215322163111487820665692846212925474608849727553761898388025278002601768752411819441851959929124161182201279090808544789787903576927021049887017502374537841995033068897890999302751075439661789839158983521907712676293418910644720750168834704792802561295915963389255140131435690539420733319095351155785679141385009388459440750946470789381455124865617134952298310727433118133549792364028326515832488020662470107190152706109373954807359355789781861948108643586365888638817997303265952995281895339584026547206235340058454716318073176550240992341686979720072773323879192472556793127464711638737248675976367195098555944321132079136395503651891799956608958009752119369022858678751164646404885418933910411467958294525358425119934298888408204047627681787070720462207651237158920636006413223833077098234703360316630458045974200485731645273537702145124289055326653863395203844463895283969168213490848081007932472177749630262635722929600413736770049418097492065368924212529261669141218262932318229039071782252623143232743863987005592129878090870866031978667729847460927360887920429338736760226170786955616194152915429881665793182776729360501274820204248273284512070654865970551983931779322725663165015813006126897561210439020099083385321342382437839352430923423200527512128698168666263239427215438707876049896403525616223828255658304449673476504019350075861645396426077296310534804227711752879024386497087136176630211892104469621958088402037084070038751438023015825053397524782444298831719678312648791096798370849045010738491614936907766697356053206243068368051500907014987607685335573414365057334409275328090592354089417189178976031636517207915170666105115032656264536115979351345518813419545962439240165876469075526493746924087129939342606136838663411420122009215997777387999502091173962989683630143489153242787771590563416035506781623928257630478074352096921836608290529927847084223001469930416917163486516370714911063478142891687035270257260976246181665210898403161756429497681714994288217640207351639835809125806338173078163020806817155263175627165444834078931068367458301960231349994525630773657633042405881012594421033263328803991911760721505545189338734695196453927533303451158441101103507615442292335824150232490035263480045529140141524089557280233318495106528306517956938387395943907259894652758709112044739612018620573381372617612284134292724977895420228568625533408811674414333910624999905563955554163110250899334983290690041322365782619865679485346215759545500101476304911092730962935546704884421879570853641910446483309768600362264956508852419814194737342148765848145248934395614740176453543247245201194767222467940418073808578435458707695668836643715480738556369793048136114493976898363058882314678330828786634258019089078618169904433598257186751066666411990076799263525696326033434483313513753562918169601783582961229500420300669039847510788396847651720812031781964217016248906053125985135648019549533721718633945703982564682839788086610479229970717598436087795324371263277415655703669578614469718562550314337096831560342073232323053249290952159847576758837968708207568901280517224145223126528881681421990504855325792549982685211022150620351917017702829359416769991641388532967488636445256323071328917034631394262340235376332887332017550530104967218445958560395650446052178493613054893469914700746906408076548443538333094509970053407027253459139818981406541951683093538986662076015502221745136296322068616837702812902343114304465705274131750427756971352722040604621337239633824361400353713639861032310793219465486028539973723656703524836482647459210885586448388799893236053351201666499136147997293258737120825024782124988251398256531722489132654567798489097570925107618233152612556561705390761876328207061483081303349899430374762395833945988697966314261961183893700352398746482324108419388971019843102266625816465956830956899656050967957144832429722937377249324626642935800547971922514069050781007931678482625207804646419212184628188643081324818566567881744853020968972941460346438719240340229492997355870918102530777674667884954846574023204277748114114403116144529829957834842549046398374810614958837509195038611615338421765998955498898736805494827839715122993682630635842411770404270387224709467314813547496854672358462105635182776053970265103864803860459709245208826925471587094178284715578975526069558126156792738709071266144347147669261320577876222346512770644692481334998847876623386295654505462445986359480496269374660833406868748395984382500309446024070350332060700512049200578285314506424305894884185241639205453457308077879951465258479988754580444126245450354501358521885148005108939350669466686536914670726596781080201228404863274245578371320291119509652979089516307787540869347745981416661446149484268945088293872223683169748613869442059260574564132074048257309801685521072157857998666292982255869584124722309079240257403305505490112501525018609850265404471483189974113088267876016704424145182142807008631410870231644136690586940201039225485478630468277556505393100698801710065841372210614681618306587024644544498997251982973746219046186661746535868269583147379832932359710613803684142290208264495686897209176561207347329142788996806148469692523916884544348303474554832652040856513071970380002996476007935058368444061411007418889615583175579717094430745923269281240651996628318044762870709108223210489449563209496913053194673475550574014872573009819493305063085526938531839904211144639202230676680997860983177237037333306995215295585687427479366756250252371030146729807500466635823036057967096380229691007956461690146279952143155309726983206089892346294229486369287343298760310798304192297044136585562437079217697388441056164321168424019761646915988430888140046649542449288388154528194496938729304635307230618424567414404284117019270531554602992572112633934690050082670645403716092866512833498590942552713420374518533172807353628191705104614653490538547983339421076184626811216250512436283157778330231932953182184803998084638662885018406896745352683944883010078333178551539905818876220401261261434718916356969090915905746562917311498419956541364538332577793558484061806463600206952171116090795557506379795752032121150713165343311803534395386392880533141625864589868817136091831932596127964860702650868863859782006943332979130380243606976914725929240397437348637411033204129997034572079230432736547811102323841858056597995021871699967945519704085953268686535483201138056038004699344554643986189208495315517306169541781703297201000309004594956673263375710406427337723514884509677873882668493035781052291845970165827950223603821651972738407399045230817683402637847462988451609322010331984223352648737711051555769850672019391114778431271020709800569989572473519144593193770400498150333531468732597472475813199988241271637725296422372246214507383387139592884929108266766108635918927088800376431061347579705325193340197498380513998266713541328862006018325395367695116062684565211731728970826070463175801229363276288297266809040630681832898360678241893071058606373837848628423380410617066410191472429010031607351858591052831499990674502661318247639011863714928763880501984944335282011026362179056262130258846840181196135558113375135313750110321010659380835288869050126351647490731813189122731533690672226319728963078714686828872259530911518782921546933055481589987240982753208747338037619256137512061294650167599965044480314952372922161602211245770860256851734411214924862994734002538269460109310393862038799828112392085838575114810941916343316970157912584405370868863097312171690479208871215107941604321199212539718955772499710603051799448639655365349818213952619996145335430471617325865240372921276278678787622520343457322933492070374480845299003831154960792998125764640040534795449973420745523763121554544968359858484811149323923148142441312755543627509437961568790661294022541931704661346567328585323819450059898764864300494232654295511618714222240068224260907658932635557387135922270807458357543348606420409493903588811293836316789393587888763884255169730042874519427227567249829241719964369206478371275946971646250526232297708688828992189753692720186751555672082685638915761128531058975820367288793304533896891866707365883237601726953920848877224240651629408837359059108892102476397869000276974133085397367967826077790437629503103463418318943776909396822788463143684461976464776137301450992254640194284207244913578609337510353983944606664972268560304810882515106048790093040199589118410167082674753926524125247423860813132044778904207785094178852702763443399503423237594838428453579276591891627105204741429527511624408310053525344981282993477784344492469320273232578509760789273509725558832993603067784355149993619258743289917016227961466700289498993695448054973609637993201104566914887036027388465760818179553781590072454313218399453567603978901309948521366673017434454349484412591415325013078024059409526323997758588032407768716139117852952254788129107267179227006185432356850648991416689220248041369011407883400403859018941698881798733106374589064682152106725016774212428987286098849926750950484756205560349077135333484689576123049452908615434907481839062940463895529624122787539050723310299482129062197407569766358380200405747234263656117134254661772152296176814292321776826938280839251239905122527948887490340954748792968431511139834513149728636105818218646748894878087549945051926390015405049933713258155793797404168498098286906454158969639686036618022320533352458527820890452637098929475050128462256172051605401002029479434228379500644794408358419130988353993437446872464173791243553168866586228677871750404391394737597518000283175824004554443097201565367982832912190845117705106038897731309806150972009384347206551268952427865645982290272566748913582321242811940886652476098266648709459507986681866030136287407327298740448753563441457533583894100459348831204163328167939144307190147364112110099808929173074853637709955264916954907430107115991931660915981338805050192345842857925455912684723741161678703592639088219816958436688487280248283280157353870317235613907232938779095128073910173529760715967678601302806196115103669342054996836539615799084386607619590031294348591623085505339408412602473038148837579145932832445446674151814730842059940787907844740178209554521784436880131993864076682424952296455532046859738797057461695211000501645041985982669604114796159835844485520108714120295549016489705872460694943703479829270223998967757809857917743665375657029830502658953092687058243475209608274754844512433105473988278389190341260436243891295637749443778652140951687972264700962633359399884728368724381006748411887094841295647524045588455221474635573929938092409873042613980824126415701065304890785924486624591386165690257847369738274682199393000632000427922999419048731080227821682898660276448807991836623259894306574142231370740337358558685412908083134497857557611036806952356793169822227988414145755824044529886843637042153632200733011139711742497299728707005647944577964186476289160588796583046062401753669484366043336446693930381681539553618643608105850032089598951783128149861131160191339195150843643639745437420649953484646755421978471580833510918006732802001647171871165110137559393750096633603639074578847283737663249222528025077788923356129923048032661587477233320343199229766243073855747791715593705219883637194544700963886326785864836765238995950462636329879889621257982533443944894995076040982904434293200201766392075010498742799406941033552524677263282639532309025836767670365067777342474097406782049237348923328424044140754804486503643545368089967614902016052842453384184312106366305319278520035402299399312539900245568833271318340167074103848698853729629531202135972340898619081182980019218832846784459110800985947811007381940452978172490938470687382261997236965366688651699583295673025803181492012813343260544593741763723921586225731789678928677942661317751508578484661561530849804545929024762682858711171435803248614104178252527020209464200567705124696507181751644815805296618534893376464258222235355622659514543926764588834443070771760621906181007310821364287132826649013940718896208904481056823604813900884639697402204397621282083958967607508445635734060278907583245308430943001455750040086935574692608415826224029489372746357841808794263495127349553746874230638195477759479614855658999995027883655862074883398790334621623653355538678544904256597378743477865805377022348158486693279692693133703984491156651354974326379847649530091325591342425947469536655370432683697160872023217581049194570730821297739577088401281211356565864656822892108363954097656030112674298092623517023353298638095149369440887344171532548621029047829913187188852482699566368847802633570569655715095575321450380578769372465199409971203606456547402748540504652944678286578751220058257317732792427806040013568730185637829431344623645557586627802258293973555636367081271182048070605979298715164363249102154871644868626159314830338922046473544505634309455761384056298702010013744664237167806302248526048928764202565734822615252943739795196542280858467654446000125611596843411864300362587816024542311030032322748932703666509202199997656382408134968383111304576093149994424137549901618281339360693078634399055874441191039709991781067341923439913722970744125211074095751084971164206818028053133897152185707147492152637575000537853803965506759706591922993943672009338841611023745674453015478423616339238236479395499847374824195709391653309999993381615529291623394034456802788689259031747319729619973336609279982172325554839701079634155371133668965057534583221496073554429288748149015008337949954617584561603306117666031588933177630711010942524404007873283371381685164586700003709585967777958975116493904534237656813271875059767098248423748140604657332169728392410372672486116109264897699021601865184140886843428949550263091442835478914289764702749687754249740399630663248641753597073800607878866649599157292826015559280582341386472859363408053593461087483285716711623955267746161493435451424191287507023782576672479733001537614806001543884702658217906708200734022061031945732604714143506424783075220965821749096027433916560230912342979343600918124568770914561711038566677518109208826982036918964469844346854615431153433045660405973040642449307469296037702602842134844166467705729984802000041421733812411723795984184472718230314718786168392259362785395538117593252492950561265349990382099092076643268512628235761268748192246150413971722159062249989529972178651632261286654462622106746635805079448902505249173848775687744795403149916462494280901855031207327549877642620849343036775276502641852334850824977429701161170033611368687462634955545364671581556879620390430228918451595560267000823740349795718239685361867050616800230432379071859225187667928673094507663961970457296520386898516981773863268402937003984924465600185321162236645378834208914724014978060489640910412728771349490782464695770317870052838391045260098328135286392471379999947294047509529035157707842501308679588534794687307531915526737445416009751093133372993324638417543057949005026643005518871387623462894220840474549206567000484767850805331041170525455989180258522261556037836155514812557528472999758653802544022309820042457779547648779495770538131060556307607649254515783019158999349933086870889126541013576441075660844176929990901278075717178629879119177531340606785463485279285976866161540881577069494090423588210872281775422919541619670803752385415147732474710633677884443259669980891574502952464377671197843167686005665493736974991856330368841401147220239215206338334078264749854661881350850707532420884503609435413061685495222110533211433020430483807697987211699757650352169341422016584067494039095977677814938045453746073548818498086066785246686123952548935660925452766019340017703391938119716294174660839945962066524011280615856646239023425353806763551476407300176077497779568349915433250341140456001829816300185401964915482255305562324268646754246815373594513527490473949584951869892613856545814263454005880685773609363749224722067793732207564956908082789077177605278844735494189228530875486710403273050434506941639148801283121543683298040299047418800565496950082293337723555754714154814889089061586254197246147491047012450768100087609093470776615541465721508805629928638580119402741287965635054443215642084270185769373372980183203210763341392974797162683523480333250110390408164320445076278929739250294828576396489948643164945374879278832802056260455608918590565610152516879821702620460087383674546675314047541677213682785986021116360642469797738754886216095115076942311731027490690853864753935284278744099575587133654650651345105752030571734159564139660131462788928202200380202083024539660343790141687111612839655917883073732965416156605519008083917285952783003747097207426808243552462273455879630666347220811076678385263349804128335950588236491765885939446133651886688940992018415849348727845934864389918352770206012257366947445112929430343643955561247245699038471202659494535444835520792507936164904288731943316663704814465879194183446420452000935793818537992712958781989666222831643152587440428462711036507287565821363876525296612796519076213410007385990787653798361936948182817683657087930990417236237642017391590527623500999176743540899987259010642661308442009156691742853290393956749492164163127371607536647664572047449512271014253415960911550677870776147265721304838025576359074367252237204032899365457275422897717582962234667021649695256975404516543175374947667713343241793908920104240687922594880416888178020162980170982111414663402912820952250455412558607300278581365824499973519889996309044612227806372156070619509623252670513200030170461575050088322149710498774897238870790721777483952090710024356772572799741596983484357719097044520430250740117112337398470551004711239142158581852355068616153756130926004672105659789361950663719322920831173452720125760503056247404787814821936933493616590202807738093523978871930307599316033449001879258856254855876119510322071862608360137065749200438433620886844574119006328212397113441667582280178187393926804098099906065540952400513124325160048209199465191913255800853175859750282920188461290705407164838762400071906803551249837049645754047437651406826500519568310328361412730234017078543802564160004470904062779256515978407846878314260637328301220771170020790377811946574757003895144936556466923279746223906058342806214100227227882449413747593059021720168219637505647201428184726125600360674801871495907746736537999483815849074575295609840492803109308300989877715990932732434237096652645650292388727964185769790318188526712444419080309605643971073492414672894384627934158669083373639880075199274830129884562574506931557560026135974930568408496773602341047870294236496185736861662901129426771883654210728908290786154751936425072019866456925200171202563600191288460650260529305669593801793752420138885228622285908504181218460136411800941319926734790964222222113026916471222768249498080673192862503763000860501848104944121222303622879750455414316224511614062870941988042425035959777824131907080295752333201435706504084993557867184134650230784958332844170050108961078821754726610028002785063060757883914929060852319306728469765916189505257920279893242464509095014851420873493298672878681575730189460133900359579078908765630715517690922741212631340854366488025507165640566272765422028411038160272666037969533663578312292117752029244083724624199232648827427812276495831639988259454889068623331773166130007148275483164764168316430436198723312218442598504924153606858249590722345219608642522048093197779812670783101129505005803757650673335252372535336160971098669009027751907867645741886813255479052994039281635393054008106004979666425567502014288484502279848528993690335391104172425771301930588235920144265401857985583642170400932856135730226210614711071211284806652621929713068095382973528130517884883574485262423307743685110553156341298835567970899744574739605725158346306015928112420702818944550982875900590997672975113511403351189901445940132794808988331310244852019776888985837933409645447981783251335442425803708935227836013348864076023637139724563106827783343545508430441028417689428591796854117608944005683251263346738232494914399346844576480513485287749100706602652787069181135875069083314721612639875859662559359551967929950837405887314289215047915926415993785155001225487851494626224342593162077615731154182444555847107671807651481562809168915614291283386163907804885082679149239109492943408872319949282417758094549385824763252446515019296470419444371684802302693143369952406518072125311924832488948662701470654673173836714155642364857360429898735073386906862525322683530795453931923502754514171460307359646749843117091649109854707598807757860863956461912417006695184981874521161611224826482328190531213087518243790347147361362910273626641136327898284567198596578151623820365085476855805568999848093167647349094721666300489289968639494978768545026422316981449138429241094091649969096151360066523504351565469857133180260509385715310642596562104904733690802914525547252567738020747844229822939959364821300216529102769841654397738248845856420703150908839718929328951504021305841863409057294976565166875741572419217547217545596277632282044349910311804876620176550932576886613486435187162630810428254487124522479681811610935535230210245666857012543804892575379720490762207591811879044073171944149259984889147348996319925246236569705497925659191613633470441011153373603488221097139162016712454266212502793909659544060210108227306851129680756075228609268858528312556003142915098908556306111678375947363360048498393781597434304672551547032085061902044282104479595531580208394797918759881606454033956187824059695180790888441982606983905730334135072934170939393586582701307272395135119994647856641963522930640566086297889813639007296581546232415083707498921075721466102260417773252577993871768074380891687704745510655212678827971340772491434126996109249126659811636703084915842992067466586295531831205073853501469979094578538041902332317023323633068860194876922541048182305865529762982253071480154162572773149064788402797296066081384594303789421835589544179728602679791827543333156263903277686874472891829732515476244849771658472416354790098824168487261508295326612502629677980726685891806153206553173313887229803549943678800131408254897631354187889139555806494385045878213293599677847069400575708372041650507265871506323722052886369280852282356157462847796425280445309291176868092539636548805388083345345811956966039359595813795746512640997886949234277153877541120273300554703821789654335909767016267725085734363612312303265339236984822559704273496808006161387733909872713355957360626752215742768303777383583239217895543093090857740890856250737546468857292482537813540878907022152176979341879092315493808469868575002999820382198715991959972305721922243133089423614065963228835357956921071964973609022542462600081971226714401974992671346094976976306408352069075393341601129067300382796838712447964675201678113108090223604123324900945561190367652668663267959621544919257464845157214386037318627818613686838301559207880101632481994873248088212239073553985551465847922256177162928108601907399691119191400340576860354918145459165654245308166868250784561755883265863890314872392635729835785544823858143385278744497907132630431772784972636472749876946736714878829864153443124842677371327525296099737369464367287290045798597109305424628678734405575330825154086797605155907858344315550741124012714360911441787539702250090577392728303672936946926096701408433316510548411824461694748037570834814948129820562958087176459565850849536900109154382511830329589745207020992275366747293641769995744070478915713987437618809334690150619895413947582540091811171220145348048363368367657227103457237130699594845296222564246368928672997566448944156073427898774497871793139933925328398425099713612579340030982010801012929387246042500364985859032945677051366525764128178698776599303319729260736144548169212388642895721724166340499458050933694306004012364408748329404812296271624195075619037260874097718893846948451574734426774917826232636006059538399210333969337430295121494581465377211170939357613362037022935691098340023765993718892506254162232929599114770984658139575649724840891478048345554994299952186923498963504063097027609869901036430991610763099033223276015345622188325802096129242048587995057082030192765488854366196809631656906318763815940251039356740929922145020083298113620907211862505683103005953797423094412485977188983457065995509383981258036981995399737679516332410621154600448464111657413482588796513096929418761052472657191307671003452946836065852129144393013163328169550973196458849313369490609889751260423559602293436369268682992007736480670990357403126763493017657120415374496528326026342281676574745894851371480643016303035952854513613758003046431642663502607080594021847423866768871649935829442180516638082320864881035877767694654385926548423628848974265801791942001749419789940202058344485681773842665662644696839281414135590996895623115983309876452710406972696965786231680891784426188439482032951405928322206514817469489130908999887594041196534624045380306385642366756053789786454212111869734617962496773041746629978378220512881064120214620080977057663998371242591446610458380853604024749987864923215331852101106604028504109861759412034176928262428004114188332538401402896031721964228038378958552084550244362681126011486741285427915884078093078019783056976879513533060408581129060966379555392755229903295430792366301033806226028520560248630569497280695205071224446660228934555904182015256462886726847759172838819538567532215830368223427356997377978319473251583997578588762308278718379159241837229804232304275532123499766472762916387959430109813454279324807167205842682298753551717104223975745754643228241485141183196092327668828184334832573544892262744571664320636444975573601904301791094974250040568471251406027324160921366675685770414446882087037347433582815153109508015497685582581866676000153986754886080015273273785832823860498653730808077285339430739546886082155727588155001337150732989145238149199434368885775686503960746548820794497849974017426834194905732744294569571735334284885051519384508171165625566268646711461726549400251885038351092748603198446010358051578410314269057039769862762859825223632626480017873405389328585597531329226466381169820564786236477100804866600209669930375999882214008304926809750479999477440346085358310231945418759127204537686832211298800830482873820449624031986360799369671596190763853966407377330822978032459419504322367126565308019600405747967352890128951492430566700531817454711286258294321851577109819165192483360850780482199623138004254580997267265991850979106712916915701412669431557782435310532927838553974533317839365792171408355985575841502391280289228809564083587948949767598587549722517263811613287616606387173101040105861997334537174459142818317394590444039843710655636878816617179875777223016816454639143980116943913923767788439444745209067208276138329005206270722050059336166843388508649631332639387058310824658425642494220086660382410321284701105315533409151196489446457932144957770768336077533402107261919434401043768801602779265263964290097652600588177943589777031298234767080467727636218317137203919953284359586503626608924287949899512103565410712477317148245059587416540249385592338266376131663271120943746207266662460632144080282099493046368723480133182575951485387265743934731547630514833771764570970923762180594329668106351440905686807369876419770094721446088327279503092979705833125443992821804751913369708658296389827980518534127322211701688078279897994610356905748918701629622296889988770327509493918680910245862822167448447444698628437159424233225069630987061366221875172861363699360524775105840877687107504881224523365913219995553885633135176380421303953802277170700379518710648100922963235134280817819205753297298049980787833239084464565877041298251771678043101692127295103034249286844437402338128819801030250711770273038521578244639957893766970551701800870780653449137795697077941299187628564062760893391962281383324848717026203958401557922474221381953461866190619480586242403004462827114595784833743425295281449309777305612247235464250012189039299737715245323673533858628760925584741886704026050994959955502794774282381758359068457424972914922062089172817570368588641073009161248495273406711592799833721402312303363371466577973258787112632961913040139761109268005322881401204224122373734145340273310194003386204535888591166689700416967287745344208453591331076143977803639831507949474156938577589055111668466880247597958533249318525368716181175073968719933512732840984891524033845301315797678900608975841315353665476228942425132247720971932892651016877895472859494579227404611136506439869059965117914689891782472443943043160940565195098655413448789189432168255657748010567972012420314687118980277660684209709754222363184107706304632729325014442545375842055844526459528536132655913227514715192873190662092960664324031643074688205758904370440642634265911138646453118081116174333927164017576251106441657747113783701967822421592491609465671512162509342863084302758488770360245096776642746041716135810172435354316667080568856059708211548863162140127135560596906040298469236195666057504101511507349196009166209399970708836683595777204959105056265453451440926423902480304696647012433343450984203999177076841462160299007430846263224837319215201907151461553428585514088317824350189564471587077768768481622757869198982477178459355806069163530602535163545385224169836504279978121452270908976889451674240179521551198535516966287876865621466631860075181834915424210883381877449403649975543677242813937734532635642477585528387371092301766143329605483810966546473120163501255129140618454659249018605046481163757556669056511533093330047397004007389837353771348853862762027325568324952747149423722070039337045354070168418249463447840942226266035932697808366906974055287142487883364299804393035360524855565876183543349463345437464506315997330502416900058460276543037042516825187349223123443035617783767668851019576067372967982938352935987926074986272076213140922065094758502276094687900616806197168948075696333928984859822894028269749826419991625574616032542778168498191372860521498778448040635917278931856407298586535020883478408993520060755574531926262655476366343243389555915683209168253506717067718168425995600104603860986293530908232525788232538252879352482858547962435164503503693929867708748381429572054096673975943051598020039664607429250983657704035515375071286769244112387066538181739172203482927456911671290710383669883901365612703800103008644090005310132573159697025198663383692575941245871383998324717824849774473190928268257389300452986152344835373742749761206373849565149726401062562269999569025452898107409740247363211852152966812346316993565187149838762791601277132896848197976524572451156302437481946618887931446907372555130966174689533487230492154988542171633559304433964674051208460445272449254874012855668368355561423368672028231876540406017428415329469635008500428316671797696693084520130951981802512890340196804615738907040305621722780198461751491607916652276282410115868901658403703132807722820619177642944508338051183801900176650335806600926184297338674834421453641725905184323577695941089520843392563828746757175345945741615467972795168391906264995387316689946663610636991626249262941258785575520772085644825914874448328500641750539767319176675183995507114501175981051396180370128604320672152091675266685442040686900330765343377220730852429809210455245265381716815188264468437826144142872031581669294046424548484373229412870185905290953233679566752511025363316446071703610698472595550334837383094516792099202151595544443234568341774006454913577856817626088126547727180616947626548697618380054193766714932019433917253784525726131109141623712545748952879532163656877661440304014405808697255322700813353351680743537270162960440569791853540642837356580385072021465710407972073674452271883469139801818145919840303371023530139898671209973384686868720996548075703430719835294254030449735238155048186901150949001648800398808892994299394439106551620446349085132961282802240113444859815374297097896170167793533930786140774321029278350927627620119881266846690174824780970430858125443491675642416982018599782742109209131650119104082875350967619351789973243574343252737430103059106804741554058650160818449047836211697785403306513007942594299191174326507037206042036651483195867562913915574416732764914155424049781480973418477436942097251986867633499334918045025542705139689629747939408981966566904236137341923797332776480370422691825396877181995828225959733205110185718214195813629266405080153172981079010487380678038527085815104153971547792517161291106422824142505463209515116323654267695041939170460572797988417337896022655650803791670515781578285850780967424294416306147292986550318325364107780918192102829514708945330271981972910213877071993891960513289621990744098101690388857012470295117901898189395740846046736141880991218795163495254088187004140366325211839968939015874282055520768407375387521555684506485902778943843595032593287133284985166366870451157639413338352790926034075831243109823936248445440417938080300731725053736020326670693773783360755925111696988762046799882388101183119152752265271017254340229423064853583780452256667226128853829073268120554151386474609170288918013299468863682834731202209951895918651128894899114101663234271084085803965781491699582120752018576590410294935613703139266651102082347811004522802263134026729726664230050529033947739148297809350880554359228246151161672761932583342652413315402258145974752214833419663776582264092810687987390040012869293112089769281767907587421723509561249273526482547289892903956051197900667073045680405656629781958322102235671031021030982484016178367398636756152163582797974454529606058743153762766861314353417833492294985701280306952277370701744426300436924387701822057283342401111683805147665929549913427731554546886980771456629085366753598586603495476648312908505824682162295451799806904934420044411302681389662760119763642640509334909297445678024748693959719473294817334991465819251346445165909222585292903913068994996410957656448053650846024550386154488400424232507609236403918793205107168254394918753485730248802128399606848018892052142413037102368254689871845720735948047774787330803382919179770141250765487866795577765073651079740088004364484298960203185492693391264831989929533187380500691327588007308732020802341176613753330628709423672369873405646015712144242349093735930681660838509019423588701712953007251742976922203962160652884161314217473155379517555872120850778604881838016184539046742109822296635464551353238406928179978178271989064973169531424842596302880023140016321291837160015739280481870378577512276379982593040266327599422570103567883366741546348796520860477823312197192611873942115809681749357221184216929353793051011262881641520364424073753197061056816743665911227192067595152350031855865830013904573367701027909572814612963061172975862495108501882147859557569381408112566200868229582720680366368624174029526964613365074865310993594637036155733242830715025260500499992651225417468789006974787435405694626533974763716059038836566538545132259582428837823647400516166534154803403576646202048457155648243754268528797442276156741983148307936852368267936501835509933838327951286490360603481193264469406439029265185423807193143109514107132037532907461538280446262771543578033435995727189505378955483033021989228080834849271074416360093399364089066127134422139311040879888338419235750324186511126885327231732931381996004435343080679099411904355103169312249618500213623401533167291211371983503482053575742858545241788283423696914863552063970950867562654447638572381346210018262053779275842624808291994879955040889673911278955383091378292566408140098510550253147076075495357590468061481655656464918768845820022684112078885450991675467558511730468346329356594405551698127238051774236884466755087305524226662011617809175314995545913787457012559323177091854728526146026700987616534433069381040405900750068884976117429771335965372806438732765683971565934033480089734806536416884688942571389061487855653111090017560828540623123649473926326177002075782545664286599229367876076312325955070176603995548624238057666869161882522642046315832751858356665836251970636365444790825241708114461400901246831987174425861307454032089941679028124332866021592595103149328893229055987314737538444325681695824772258112293299360878337358974059438936666639175297410778039216092320798575723329040003476746920287982288589152614599365377504916290603298445488284771806773507506712664636291331001281486035343667620718049300845555242607036422819195734067910403143191058248560087965435207045471228004875800827595853124789125330532355208151135062161063196266300949545985355398065492968767118754283744451855762718358760348927058932702854408213911392052990016265078010287719439885855640671382910239030916255316202602267792393664946465102030495037724703908010485942766302779903447725817120341745444115245779369836698157551508737840759129325778385991886845164890304870701971651342570600410362558846000013849500604152057869113905320484606650424070151123894112074054944844328598860628703480958074963091001531634359133041379670573416385096774659287623148047224930201229121344194882689541892010445258205326225683066085592884053291772097962604083223823179916281598534594953050989038403615123997312359692227032671288406985828464103236582989911438782644289495955734500191717981107397675370816148940552839299130492117313070889802560192533798903770385638162513489470453365509928585795641081451891761468239954049093387185989625087918761076962544416510500049941000561654990969846012592543301241920010498249725740738235772272958963319466202867911606618072817879086036330325134154510410861272412906679792485382343382252580440369223737414559487625024318352293568246440523273739454588095168020151799318020146310374005834294362301879999911820676848929555991604325195717090316074733403209773797749734101027037810824323066839665658396190851172645664364847692774808943134052071247773198877679069089054785755766537338545042784520722192683645488793651984669353434029893987396593133634274884208630902261148908664487840906750659014572531597476622816655610555631044613477661768743913900061783692341374895141092607317404332160159791736279253315850674954366127731589506391122017998981873545039943796706552994488105341427942065316151389726021579918182805014772338690696807601724837302659315981159988413811215961587921220848664609745582076601406198999059489328724988457200107929521857417869007324738687868209217979414243449683636984231318657173167143127678071226171909606059340577236925194573143951865366711616330340820207614306284899239834648514576928864344910481127094904883907447711744294637618074819465075128191007205229173216573614909168152099797324405910779616303019421482403460827982856217963435684247140184649698799428924552780385058912332558088646262098055143426422401948823424834718079597729767051978443119787339944278708765888733062608129143332282320112929174273249011347315351942488886257711543274301079866289062258885551190488814014363079918125218471621709660345890825063953154967664194202297735033651381957568588773171696347437714259230609909079259600223691402602781747362908876186964065523077141517349490236501671860166842924521851024175035239569611624148954268258227701728706503540310237151336887531528108537409819328728627879272601494053508892101198367257662338449049881047652424326498145733316233295984927635878202040154902433316092990025449434995447226967855792870510133307841091599274048516674934243513074098644569294025110364679140958884437691926096323329831235561140489618883075921942344522923107456370559832421116347262155081332758603114484027279394017955331351353650614893961881373283722192064180867315130974948331810927782092034534797351978580986133412374064747646146191262416070352320139164270367962727467506210462191862258792880084724730950913357450511463098993737799017708238440467959687593254911028006651582043084584155994157102848812121322934165696116045500298439396682995617481799716236645067664399399607308035353621422073555730543201845079508035628816839590194524443277426126050538855180371092956750754632353380454308449236592104163830954162467734555538248678773075445859930079472956759453760544913248786845729001750925869470850697690659699998671000469436700982008562280923922746056748006012093119865891778672050674531019196574192681831997113960898341069200900126170675204378373619926285871334657672402583488233781817586445976272817119168770550473091318168530045217982893871973745982144291433441234293833126437486211328040573589895921227885495490434260036998286005825188962574693430670837798551300739889085336357858932764091350275577391725639905544283933935491469606290596739659445645791370546972922441425880952594968049921707288180927896007089744396237174258092268331188598854485357197927970559855807588190647428777711925140867701744342009985442257321527483383454229477369356552786897999362179873384476228348731072143281455618799060862090138808483599686919518841669917707065747746245340538286657282798262375296691085438148836097909401085012909826129184341737820849791722236495500564273353932543214260232541400451146589263381297508228985124059917053492749728400403984870598183830750008886322365335020914512155647702524100750054508763911449015837246765492791911539222985235794890510195152318119988053717036870343109111085421141449007375001662085137878352403375930382189209052405468459597524304198904972712063926511575949624510693151196118646718131963476903114628542273158542023924117581290998613345346178448370904596045182553799583068541234318149396140526324910967288488870784999074632352458134180789156058577868945436048733311532394608288663290855111188526536937324274858711266875417820218946937539667358098700618536434598381223809523763335229050820999244594642453955039268320083189583833875295929328783313322533685701946535949472535014856996542537948783304687124615989638911925228453138029663102884398912575062390747399422859723691838462753962015378970428622782656936905367730282464559853194567058725102271188297119685759531155452945349445448530135376070507448647350907206192831664658471298801166577742930517144660353759917479805559231117365653905207716326185003290305193858663602459402092036360721372288315625931269051757721312563553445911886236288125131044783511614938457978081035988321507755953714487275805280017831698391084459336952419694356697862376381425711228363448004646480825326959168891693747248103158105843723844952521870271774790514953525321414904470335757763354974028845605618733042454554827624199216757558049102371080700079687965993720525076217766436886803110582141595818159636843485345181649764898636593430098075044760476170941579975151218644121277457333998201766141144021339784045375719872059852878405027094830965636668112012315218756625463475297196011702338028009237144828382522928194165048684747903113475874098096918040014231415202535359377105548105070670909764944810368830413554775428332024961871782947867330993847671705917347554832340461913062979723801430003240129733491865590235956706962988769046010336812572748295267259536604162933667636201072451859528935261647968428399644152630603432475497802479241407718888328785441160727693847593940436563739195528075355125249706148828236842151520531283766237990912464340623953510452451088946457373464715943187145660307476545170194963494979915193673143317728599072797272174260204003420685476148127885164629902678873357678593146017921401311801994905701643577064980989153026195020253439858482201931162708292108706524241146842409224172710376421293338750109174244891128339537110583909003378873189350287741464066590283391658668564312427485170782311401083524763414698066281733292988251570121480691208348596997448418192791014286589555765336446015377362454378367801516537813082212337543031271592828631646897604318488291780769091040349272143250414956054158886299348479560642580994914266435452563706809719852660943785902278464359068579159818232843943163043226977762687986187536680129436564136923178022088319617862362801750414483104032629587541843107719829770560135411097551935440025463777355825352680183088407831167800032782259970131738627613101424990152173063689872654912353258198702875591376808977683738434604582399701663278822712869944869826592426997641235697489658383801382166181422080636975568064660123065504707190718473533325131883066935385945769469384697091259537287433945762556687795127178513117571203995109325416872147862228176781717032928618396410467510711250134789827378938812904376688760400728754568341095840146496370868112270484313127659851864060931852985468722715876389653474753005466130332732848153185710374816865317546328678468415061234050039363544043859141837963867366972971208886738039578074695945806380315347033926771294288389068217558194405138886940243037573934238307368303066288145553714269887329864235140419972937256827821095423479757848980222920819022815948721570130751988541419501556549482750615863418044934780462604067325399639401401644343397443040483591804761865393215341651908467485368882476573349838331756668932223647818681939549572791549357267511653753128726642737766965444618207454136875187133965248520658358188947571652414327115054991501180802775024423930849019841493816289210533094635939942552638443369796283124417476749210912156958513033763736973027776546499215668627400813750749309934045457430223805215524317898851781905760512559134227282448145478827633099320736056153094812641313365591725562988094483699166995969344918267425209779131334466858340124183869883538851262926668457054925656902288048243301318995499840675953527204107344818798514383656765633726630998350562186111320191586088134349826552937525972340416383629709104893061800918854688988778298035702051346836320347065118935659772624711547278829661721879585980204430041953614124316712168603515915841411317639249875772522127501945240226502631246991432959673368227811052811993077233419140158273897622921772292637312765469946449304590813068264440328962594786392955229914086871976152220710725323163594597912142642892069846673249005979725279962532033362632959508236734213458845804181035154259487012915872822026461894834922810393925065180229378156617249537252787977564828757264897126259957562205227160225814817926868943362989085567922501110112927382716953489311695172496078615455753608393217478756401854093575050270873744574501010964482953115779777637861524900773277893598578938441558535021651350852480112458461958168059719758725939597930160960585816110080460810493154024093943071037086442791399836002516548608563431328020097647807392254412713744018028606916436571010025796878650028773578890185536954289221557224082155915467492585494286399897474254154981083571061860733118317866147753980603729933817025658854429980491653788056509371024585682756396682935934251170007035586272335921374544006382304317813842329905307362222165658588293632155882610980761866218785229242127598467849372021386087043172942536673314893518751368179977266562697477469546548533696742835897576877532759591540945766656892182898746109210272948103904047664186176510326340661044058710293755982853367458245183862586234284785016369068805339085724100038942463096410305172243365707230719509469245568986857734053397151750784525208326386680676920038605793055347524811434524924120166057169336477407362776991029361525232077228106180824994803769493229647439590535125061617125576167999604179160141324639100687112656414601747612367654942686873221778047279718053578432096637198221505962729802522918262756401774703566483832700717312729031662077513756871941348586827143682362918191758748658057125165427323558128464116311281039855274979974112602881038763821836244758252821232796341776548302253300485239377322166680100489487091736319384464544961884869990020287999296368764176817783435636166953870207695761610370998757658385775044978884229023445297081292699341176868162083197466255699602373485136636094678799090336763141541439015222305140739018032659838166752183229523807272408968375100944086520014621562033644769554593728287486290159511642028553056264062427101285052644210694458012251182753106256445674506654663277217800009096704432007441599907811464754769643661865046329678379604356524275216258351377072862445250254408392301624324605381212897711185069909649551481697854557177970566123628472422943643692732770172826949305327971060355163579203466600631022002496953105255775804656328927622463074890806985004181322620404103816420601808981920104720236866257702753751224754656233693505060303050580968346334946684596759547394345615257656672332192600596585757568991722510466320701307378440270643327925562867705882947910084521523625316474088541526733059483994308816271956147656787828012307403146274639209733851189620449049814383459991729677226782330737465235400414318079898059103785505886655135134319560910750131172825716544691860275102518099616025713893925387940356272666642381171691052824376406181702907472023313935884073850580595905384250207788970815200698087512420456957061050553878717891089478472407315191491854157239895439279213715217798902381608102405886170371694167155498219984824583635058509652780029679328049768130151517949902914863800565214306539943262023809748127049125464014595551352342840755410186726250375789357709000904211840665452484896984201221370617554028413729599336118481359114710745232626494744211008323883244070392114711445645253159273944250653086528843563360934592576909834459417139645764414803474098306692082554112036336601845324459178756113320778463251138744462931129482120779600949530736002356282932350651565138846409829279608394583061175120764967245892027181377089247089826485538472705763044338333562574487286908626173362630615747794022752550192283110847945225752725246929341637306826054803290608226824365050777208536478990944626437790346689443550423291021596155803103274368976408762445090919430231966841295622632739098357343623148227362165474361933421914659152329116611732949470145269669584246757099536803928235336890050697827128983878314245606723227631612271390837950255065812404591259872855807418178048884347507133670570160616318432542662198511418407379055784575992569593265815888263426271516503922412394048781145813000410832130790259165588547933836502572840539117632641758343541211858931761896466002047944562253119210803279651958300536451099794289456387808676561988382359612462909971617852645981426048342706028781335092382673672527920826435977366132797299330629670178100541949964751125065733954421172259642024350680652173104502678980034709430152918105615515911876531288145068384507279144528260686173880563187381300601605669290233831580597626299505833425397569477264692933556649448640913584262892623183754988537537889070822295196642524423665912423474801832218555232307132649059369848672149035227653875109198042401831203264645842867156925254650141734655507438594371515455205409011501747144780967615927255132983360921676622473913960265999511722533400185853706178570688059821143912604576872455570761251812926215466421877531651026400662251710291997532950387050296629854501078038404132633226113728703883927600361208496788655329638556689834714570932304660750684491398306748401623793240146029045276144703257458819106896827308752577182276127677070564530841845100422894364859435952933519901191178276768742676970262733005323589148590259550826816492685650294028449775703938188707825195048697721311561611557182673162149588861768738617177447721221114655685756300760564708221272885364274656955475274690532875681778901380077319013878309581050854480230474541707766052249243649094538182737172148599256877892059978207653216891705333435610442867605227941054301502277224541384815017225108413116904332905269530399984284829008377305320762322254135990680402654460780590228146002731616381365619430516153884195291612970991606557212006733281291429760282057233537721521689993073545640980330193812631349325638701471581547515734417082188213481364156513783437148485143095785959893790956131733859628430056701631663508246617599331018482085592643784031464765800530312430353300811432012897190048455283050783980813187023759925298641180872924630958605975615565347246690829518838610966888121085387868305740913192730659776854755468870206352115480749782253232653711721938806507959742975382858785275577974078355203226346516052255528997747480913866776282132399607487346371842989305684267081037338812964816194819828083695192134036878886186754406297876912999477206511992666418436980099017739997555481704923414776307086032474921204853875202477702799174315044516774919093749636883245821702631162012709325142746576608496106204628988147627122653100562162741808858272156340673378696399982896732557002173913190821902947854500871181202470574946743101637081531007418582695338153141552745287054361401944264530115263380474588386775127274881596659652998195331480630818447557476005811522898106974373379586195971582810929760032385861826114464571041309122028823965640170442854825887958597948122922801761774552384058002923233908342453379237722641241827783785978123182458923791244958800707700208194078376163922840508574054215565522245535798133390987781360591096789508036242595789230269302326424179327534067295361605885884267749248257623410647422590519881848714936225550869341124647222119446304447237431864133248467728459750118865886637853813955727231058665355963753782521561959768881178961107697605192456748710685144596646313878112240770705837569763702139949354449990953286489617930709142491942020732181155448682094497410715512835209337608866352890199009648570469270194264211433893067621873360307198990948081061222258965219216606016921340350619005863962806760593844568012560124393081512096914558463377580881055764917887003559498561159651907978428052029857558310139511225169974201490242242382620066316767706381135681668792967949833170028591524369563550086180828441445918848133694181144309298296834330575497545862586486188476875558001433654552092577259784280366647097604838345681590415503349143801703716625795762625771399132403438091764256131245645918039695775600770693694808859590089103730383491679361310288215898329413494284344891784151431710946635136735769413569503343502405545364579487865067262488994124535915401653746046762150455493262601596839580702806265563368928205849380564035137004973902993801704564826713712209352057471849562992694886103797663495154751119358873713529590635164144803371521846707367460462536879934970487637203868053776251075533086436514003352406231340924156515722403539877754926617192774133722521063598825735054327704329192492651965091567929169688245876415492713090561984741575495486675426499112924140257937062295658156935088595771558634102592369570883887333563649817038134005115535950593748342430135300500190270311654855053668960502694582201859195706681251925263592019773201928013848780625176707734972143554852082709704071135112912680823057414661431029565686305747501788128948671910258207595674804029948343029493330228809413904953282638828962947140001482545941569401419648877220555136452802507366226800258610702462402340991421782363118144855644777174105211200409402381456964856993513332756179735013485915429301518525650379684941647484691561202374816434129703647865980850814027512841226572048143014956055910373360030094813815290352506893784731328234787866358531159058333062393881982273655555836673728667532489756040136803298280574669147772613475775464372787464974235228288640443159812035337374718832378259759173331536514268730072462611719778972212600082112089742370443864686595728029313496865585504947282657640630645387472137314602659256623130886785261144500459221802438032091845884349791975548758658547147009519290690266415502913111263839942781602841202923013544778065850541463544263089408931478880140117698422770881633704903659787736270760481269706732882043604415497596790509623119673162411976267264315877152166138553864443293808009190036794082397062052113174962877033213113154673540843632464813023734060044254303304301796145791301627447335304448628670415155725915605874559889980495959130298149561499526031266906317879364318301730399405762607934546192906967462263996340787167159391691529703024456465794828149578735481218746465015656005207020082908905979003211456306298170857499119879269925823069035821667441911356753135994292841884975955353213644106305731920732442645318181910172857144586720141107660180402550644191619597561256671050333463716316532038728602544827209559988126301707665063369236529086408685027276070686703395672011305695844460566985386665064909368335749814890447390460694831358397077603990715343052671658347479679588738165719420063730125638138613552812937024914273376143891557633685644085834681950199076995722517359002591670630565361846753962758813873474779535804682471272926035278081255009503797978795649797876842955602358990992934610326461130361082015638412736398195498902088013330752582986347360847442019050534212768219848468491954169020877168880264585524746526002385699580159106443236674543230317821188149311018891837683777916865248780097576944524298575031645149319660506952257251629090200163630950964126876810355397658849548446656866715988284693911571904701740440256422750871837504998372627970712758219809887623424812116389882988978995412081149584149052639002219832030450565925411316578380044053735630567615144981932103287929593472666994971201222442438958360462632343251166613230707844783648992624501833076042396777124803281967407778373679587178828861555488452770116007713393069660725413815128172144015362290906810318019152682338898435770966717214546524462146161822212041246504714049522931021307627991837725966183460243019894511102168343173713047202748854767998182436510222286402063930234086176447663917908990191694210255705801286663943967723139208304542315703643230246609523657318239971102954117870263881729746679322269938892154756862230091658739507961781543336595457515649016365266075782457817353824669105971283685871435480241603793254288466597317770795900579739153837058503805351344463186222628959897196321791801148796565949365011613034639546041241977318216534950900982304014517254005729229153684107180237915487978730757150965805301797684973152124373467743280841501774573202907004177131621407006834200870179666946895119324031687375604622538745452150169809260422391442019289390115846645952230170751897579209911859114368817094503342179572311907420388381039634985343122516668972121650655188417408280774983364061979078944759463189908925811029357779474191214155149227849685884408649812617607094214617229935327779256532984723618100961669718472874095052337098097898211470733194277245895264137162150852759065899719974406278758542931587432440734250559566883587845149358350995472470987942944891784920262607163676411265132217940389376644101184128752931341241686898655339064685373577665990795475469719553726795468711808751857182587795365973972136425775877219948148436484944686819650005783033892622281629738613631807712001519254352703062434444017464231268047397070935797760183756319713081847775626772978017488274361006993618535716448271411254761476141297253695531561606135637649883539525163338291551254895726177809323525233376358986534559202233127659541307100966531762113676001944638596412581599982584486393605206744532189793825481786948678309955648108524194433404442036207420242308141428494767443873828918677267307609113537374245034757667023252048165504665106502705047031379479770294209257741701016842170306738087486644690467825631050921070721069676030055332296353989980778983233614133224598828618989593785917997604053782467969775780270090739793415401020219653570565847807530048634676810016996985756304609971482536413633297770912048191420759453666341795279889102388467110573083338310782410931983364056540394688339437008464011462594593799815002344302867917040843097532884941488597128673526641776707743073237775852498359210175021590202418507035885776593844312489114883566379670749352903459508133113250932203062780387291454875071757212532431812412471146671518689396360420338720149458297008113939693746039134571213456362233939348433456600155091950031459866102844001729545715479760874476535690696372528411657614133077658151579811900833191105405824112793871405806834964715331673674028275991870579416528476287473250516572358693815648423900452200577853980273045656541322435047805955443536657947787653170606948791937457342537046267543889333952773593429615956937722170507320377605739256428275814032085964774836660318227070622188316858037761869234189867775558591067319009004351420267235446044166201760512360612992072083000279055482604457855286060826475173663755321746356121846553442050900921278202251441690250164739754212755964698394264032225664216054871322928829355217812655425157086179229421563149386769266415145198005308998370298406783583050769919720176787914124904064271460429208512293032692681023731651214409281533707186598536245335475164376006517020224635135336303751108695828501987130324540725351781197880270452920325425210035280240759069255500435410470327117184330894361808015890236603430389285901461853854071578957912070315457835948030064465019375188682660676228179895112808604153293879502563191865104466738970831022702666578026385448068493922441777005560028153575268006654492277215313971216565772639994559361295449008845017281929407045287265772004866960270368113807131505065302727693217351217431541964449536747674135325449619875138073011105825984640856319744596754989023546204697798522737230764685329587398194635944743864147570184248238811353978289051010457914009701534977146217373888308234399305086083030575705009523650275768654051959511049613447007763416812218200694075313153423818033006769495494678895406265451201501824292047264237676257588289322127231876130721623056140765182908064614891454641240049742589582446837564006018509759810200085268699527625769834183395217976559027477743134051923168432222461009989004601122384071394658014623430327123311110136722848879941044155160887600796941673445023804756334665254661843624881544350543317330612624056748610702086058072106805276289978663370533534336443924571181476102478452266511769382370134644848136375438821311617652159363050515583040796068525436232109254905395337395326083323172085883092022617403060695325089002726466303094728342759150698094698572744705044242107727959260247537448556766582423545292379240090838767892458719133994843887405285340187911930678027918448755605042710373230615372136569243640788589699454524098519405648735094868764469264201079250073178265966734062661211174286090383301194422623111255863329942066434900495722152533414625413520118315201822821901488791456961108056561058259724294155441723578536683952268772686124906577316875651282857804546102135243013809003372914819870909504430147461826211556062426535409497159472448546306528080096522918941199673521917020972354426024315660016262100854986592676111308665150495386403779592785222610137220310562121229388389669543587582392056152564582757081454013500202790055930946503048038796230407730116645544276434567147775523783457069498574869945919527508938349791782532586950739443897361925949175708101623100134772673517907191402692426206984109738103154755425771629720336330897416312513473518223488590129334410338711038848301018282469998141882990636903512551994267082838172412393641872565287139177124155922099716366960247753154561030290406694933197934811553742427214695014912473295337013546454681459080365395451284869584581253406788977192633028350719041232323787281886918381860922509879027068205611103716352042779931074694895058245294122970512395809446306224715028026723134318589118492875360675528892521997697079437028539090807507970242410204980866365012066797001400354386504156758101576217886649984178559569697133678020827771724755524084796786051303203391299848180443364487163565262436685916266506748815027495156131572704659425986854252745606356968575121453964140912039390062800694062777501105125025731955130453035700234051797156313350842736647133073989258889737204094843853626233313858307116691057157685934706028876603079957687296949759878366242341659955509198622689013744081886449993146520342372560063913554327074212184233232611636743808418558694948035030926356510397790818435728124044037060878440820569920981252320576884858835908277476804585477120946065228768223994534948268731604786710459593516888629842166288119792385167646427947839048674887555284831656986022213195075986268374066808946475138411346329799273515294366795508349686345706684989212603635776604204630573951651853697616327680461037063629811232190077462494708903391576796320327199331037554351390600895626664870908082399662662212433442558380353813840039777017636556606062142142609054780207820319089459539120234711617693205896887463494053816316060821586837571883453961609836819172840097994844636079427158379041941865542986644566058818060625326503137122083353825394975074980148818145885293378114097445938539105784959477352633053035522169354789354238682834904250224752159558802516653866329459719411460041579965513191848053922671169285938398185256735994793843237553480777094341264653081292850548493203478347516560178308791647230733295717063649260156751816744493539335786547895526458060149092048575760719677798562191320103260827450669345841882418177576159752173498952774912301630131969918475418833095394603849319247240878168415060290881434881404237479583669442869584002695455509105048606915173323369881254790273053872165309670106108461524526541401927109639062595088429737551864771437293405855785860596705434273896570108977748363544967267462946231105254555506238577828741790743718004222964489042270957149459622239076547491771464182744304861575535914841131509514957724519324360780077553215571282135782342809089273485437536294578591228882298503280449882356497730655991260050132507390933423811353739022484824038230097655923987146589660051162384105386951612883948077153259254532287709974989281583952097685245420580062976168639289150191499205331700248520047814423590019947946963649531324356566924483490554724396915400151785592847063450667900628093042176467102507482372569863710860874485146048913128161527873654053298836801300718840507140655675614124702323629763652623023589185872529160647207635077853052611924108637774199836499040517775696415929576983650860174810628046780901266771081518397745067379926394115563578432146858988067318927688654966619428951058099115707407773964313037144228154614070139735405834484168934592330750950902734328255524771556379622311452412435133532089271199317833237931452983809792413804917377801952119593829580141578121505912426126611890926905214251926404243736084913216750062758281201938557550238858430795557666555541352131818636081721039157124730855842077112049202883097490851446694308304605275101926937180012464889665184398431594868303481072561238551559559582304697401474864912146133868995337666002558811685849037811963147932662726225219003229879193696405646184813096331207848706091504008832745331781469945538515195070491684467652221005381789659579171806010455345566939749461634452202077103023201373354841844152231017300972167392029014517399007560312037957648989753606125550624336363855556936209416509059946157012425298142221015023680909736676230342425163581259692325742967528402530859335758017296698624226892691534208351600284603079145524321612724097179438876691063364353217345769830932426375358460908010325711894574777554224655647560063767262018462092441044729365540017791492936188339484447736008361535005616602761676106376285165299331913296630869632215262181698527790984105346155731165931458910040104144351653254915392598097069569815067048259298072542245641903420238881514045600761686771615303679599150451705697592431785245645312402677576542958995235190314692135834867364074600844441650011967992035749844254795653335038313506662440888856079623812023169821959562998770134576347341968063924935009328502545526348982552676078496372192262180196576326232748350770030672760708401953036024470770916916857825596327428578918891408435304257798355755841464208476650758963166868922003785877360086823518850037133498390376724947172601593522606517024348649067765596035637948234796130976442605155326299968777720897834150486972737670693305991611866295511766549966166512957809126071919657293208217818145834260475038456104256168014108620214957259604395111511766205910374656855172948756345007193739605273404071110749727208562649890149580614518078607852509173421554288340724718378279123649942353462524060599078548224697209979540324864137178008079091670894707841181710294559228339811700031834650088048726773863301218844413318571203272838831434641781436924196000231575106988323987005770550847110449378894852251314519016006837362513176910601136657868756655567176266719706246921625260883221976962238691873244628902703408456635068234012355325912080558589644578518430589904363232234849370583928430121364021388395943651928400958245555917208857992064745890809536627413987026219106075670467799840153804723179042398218379489263639375375154999120761916093880019709487089018627547706889299907573498753344514332566677901121897173731692761349647272580404544602662527555572878351320933590912040948746927803489462469129663082273514150624493680517936265086086294025989673949713779607636985229296243336486640903959970095584236622335216627752722545608407820014095244442638751383778694789317624834751964893231464983823525025813196293525570133401753263092505588649481005087092830852346392498809964040692191541475841005460887995202157674114748076814229480116614328398673026849446564031377151728967318856456313684392046117813591678684607996128206961679700844994295342505960549189877576488502052620466098625916065252831872916577867455030468484969312633169865168789882094069349319727835315100147158298520064029578753720226247840875367666127544255949316248889719483797368928820069885673726600876199100576156677760828682568832442706981463033081949766015847411226427399448142418562054426928819250572549170102142471519221599875167976006194497185223542434750725579700435662267966322943502271087238461077987804514446853715030879631327148983100161264454821707039568794739055955936456243428198790479901429967773415718827545716595491797973486461472520701388993987146023083217774673152740825806869206079156489945527283511590866775907978598103477241472795937150576165142065860846863637745622296839911880139325424472138102184910093778753908419393212668606828404416794517562385517753980534594525077658539507727938563207759186326739552880903192588189900095673678938704935337623008946472710786629647355392544957668135731622344041884112150528822601001391371422863622309119036315722091175309330795674236227961155947913898584128767407720496019237841668777242042345242235714287022407612573657110702059158529135775356894196718878857181163606849382245934254669345215891247184094086180234582022469445678182944908494277952541904778460450973147078034466996265916596811082896839645312370698933246724113531645021260672550117921374036222441167009687172685595401340307404232529434322104723438370071233134528871849356522595027024039296373032827983632262353858364584424836636216977024859907950968807405043870460120686423529096498438067806438797739551896012042552207633752267720060850747230580747137193845911801853117911019898426793975926210896585180294278552317091667626417570234061466171341788765280450599588652174675591115984908281412705681066054000689677058836095913650844660280943503700926880974151759171401031546460886189499850998899000051370370634075538617887868505200178380427864775422271699459491424321771674758103055273999388932599307437725254255321223151948988928744414106135620494767108142419503698190761989555843240320316004184565006983442174138684488538434033506720398562124854986578310835036572318276027749759835733507549019034109720457636489749488732000391420977312143889081010191659202607000846761576817678715857780463642029831693840592832461052769570757806586523192332283505225255634904264128948787586404143094668940483080607073686756428160667603248359010185113959106692731405529429582926873676344550678683101456868228723190244511547223406792532719827902224415902295632745369013928827938008732184093921806247265101624436764335645031387515381805513311259412642405273770251177955451287444848391685478586490047036314438524048016520941051777149659043487014988009943536989723533549547165892825650547671474758546575414602894758808505109626236794381168857927117650774957602550549949699393699291776505611303879270913953393679888692519780905598099723897148629470080467710742136186355488804396424085132323829708306443331762387605948185590161767685569719755939549312502547435335297275926439671501670898564256187965506185751872290833210551864858147003947311255378934561189085365123313390700925249986989001123261283257212817825488042882819263926860820747419391985070836760805170439255859647127820660790509015427924469017215707992387960657178573647849254727528164165002911560548653297527742079244913645359431163557101358891939966316977866221484064124926229334799409941295950075460233184437614245757158106312492580234443552114417321945095414156713750164785903555802842607340331006494693195515913537920466818508067084466073591206023755689968456684980315893992466364320830745870981006395624886042104180340074251123332195631445403846468064515617234361865867712552975064424619836533395741303306203647800764125927906741062387902202740567005460532118636958864157902347779972139711320487078771590043067634937972942143282940895343408345108411825302527971047106871145533593355085230678168103849374232472969215708093890473549810391442712051137197343730255357692902719230883143790677200158116725264413649387361030508615858997901213143706319220042955832532305654705658933034885077026559355889162950935961211923243930378570613147557907325112482534636054627499311487611482195976212179638937328564797243774289403238372031762357762261373515197492086779852080529547710104231919804717632818778156808933402859863877516363621909869541702136911423227019342300046657385274593213712136082665625526098534157969368125932813371092683078545444717065183150484624040720282668030916904091835862472116864614716043253395681278214091168943278574759784197867818275862007243639665117153998096097796366267987522883461803422621106234398053934011680818737580527176242926162028613876823628134735572200537222068031144202845248138618002431387624025087792491909296476460645717935147362310559449626276860493452680304642321055006340502038110200611636457926076892995833543518041511389950408588146852463173102419147765654845432773799970770517274032478012391566681393658397987319032592528306079109609758420715486258073397686861168163193742414155106594088048376075435977115829274313590125084196077015818707457154184534763203447968378720517815633404877877687271923867828301320257804253169750751081636083986366576380333073427428423592969814448432591543431831739487378587813566775533628159135518121262334183536753118718824433579000133432439031713022989701135488437355590913185254203496010482759748147589531662790062077213629616556165158702918293040441708719200864962830391709887135095126746426155134812715117387436474592582590259825115187556308323170789618672165627728549565641471251812951246365186929331442908516681591775308652556907588449125344419958228141212112654361254682768687187572794766009877510282805352073966067851114649681557953497595454132430180490513447890261381886539684204087773069647301453569303928336803409088244595614293268378189261044848621357740970949045006782009061473779524722027882160070248963248049574600790746663696321497933553426751795643368326930716350140351672791928233986707318651934751667251131748866026831137490500656477241128845998704538933586071041297931334861476295263350412760451840897608262724132455951184720699374153182387617520602021724795983660170672823022777657292694908239382844589093038746214324888045530783076970249982885678301684179123212464663125832774431772940797725781899455249783969064315203490971957563110773211680065932840539882218548037935063424084078133845848114557795093814283292544356886764390797160893262399552234040163153803412017607280071481279145461884996440678485347536601541969250795726602986661440345450855909312879642046300279903339007066339346881932437314851699313551672922434124560908504286621507281869856824140484341697814849776501937809247630182741147839014528439721099002221709639406652011664716472816160086332473145148798645086638129790861373659803585164806666124355654371272804822343863866261158182398321796100865774261762830894350758528092192889557243323438464189920057993585637555131059882802886013570920571926254206442888671727659114848244804662027770109379873891180712861252239869511022300206231259424513391819527877174683567757493491506402964472045275312015714933986874585222828152453377028756519982735982791198653738383953202887306705485625862223201725553425723754620773821576328330315492848491294083336933903968330192556879463923669039185049001656341047313893350359445115032436398600488100517538572255080323766192544463297382175904935040474637439391024800387290073246474860072657765680051944523421436664005014466555700365503863713231234003318014627031157057605733038514390851770341301203936235355074427683169285166037774155096253114082495719681404185481956523888616390966451833861827518406879331452668219248035937916287997694751569163511455432984570024116043722425004758066156845198740345385652980680922980758469399459719178911488557113114542536302577575117714260662560910217423957320009436254547374538293459027085866262371488780703203266528035133779252776573313965244590355800044063720419826686354054945391799373451240660717420970783670542582238374139827341619929379042462062108249020808941683931516579212550454083427298959811698575136548310460774392236732174639219986531501502213486407860122517949434963249120608363474884776766644452625684871422421535932951707477072786663726618751477300971571786684712372221143463013928747515568260727515231712105414844434121918598505462116969957857808663291192522997674027674541998954817049701165929886676308483339447232716934806739135481332457441649438907273142084869052144351074059357338011104232981944715220865713835066678156159762314438537952334287331287299585366550212222594983302329004785079681413247560774839418237009738562283371242874582799849675504073957077080390285576440706587484644702987228972968508271079664333371811100587351712210198806973401004470261984491968424614870636146524942770385283314261066173522207006000523514650870277503787404909894400565029509357410353523376572987993790293485727258785062407089493486085933694422893711313206992020492436276168799014539149190311754930592871162508623007425622485398185530176683649577939658939311424809986761856743803785888782138011524119257486745896713152697238112158205598515328870652060410752136190585820474410953959293025440350637886648648440138693700729290246073697228601702586391743219626365469038371765164335158935426506375056976708964286685320804114580103974096966514568175202616125803093604102892989655777769662238433613833205561160467709815767659250233509648205810371776532869215017054665788172343716509393052352787578810779028460566650816332308684347892006719202945737911862685752244654936915232225032263421121958317314727837057328106765647241563005886886451269707372401816994482625482402109223073334337666684932476927950821570112307901219603441204986992439977855473321411048889346667778987303768205964218158823892731313615424395941790793302157405930707175213985662568514568361991448700308747362936384266056921360465361568472715939952865658091800037026776881395873461213644270540762223718955647569146960611127695604588834716408977902420064730264561155354330423104735017319431974774762775608486829795986716354908889260546309833599585019149372495444145524537303518290568447414119951994982371465052455224859562052608897920057081042860343193725150989948325075507570081430869671535929196321999964741911945434970854795835810887658434885155725372234493189492994149725160239776769673403080924388182573316689610965778222482559691914467678886172229806359307735753417443688247908521353960830456993210333285951084663311316130048653487838112649996822281413783322110395275367507831671567123169374409217871118664198702274403501922484631496086432695647895149187626110246568302492538075668010804154844846778237527414503405950445686010660265667093273468892174544772748109190472733565710692595139521591357373866886629500295000873080394892486636578710933148732569240813978074098203841066886942728317301027864092055547183221361986841248491223347150051153742941086436841107789135256573369375197758571034522263965379289130876439941829249739711707802277729544361316007137885559032037548216522891835521993802988506579306818637905740448118434621591922363877711950270149533263850793313268897268593445249639767530113895095544878346782499482511576686692483097993126750313883900511219636282527566465909730164049592928885507595795430074226566675852166657092121945805192827197922960538209043261289839216240838799445831247625513927876439907627664486095200996848476116398570537576945469146897358966844237641900882833469390459853960545883154094455373827699249293932904795884308940432861603448610652324792199357302607209362378378990011589782387761884111723620140129603102229955135811352477151671171881726872324155083705411337442378252699960450894538112203928986245889451844127187436705544845471591726873878213419489044846292709981525601854992704223056268568386773541799934068338522962879214932390150099122386473434052564267291282243426675822473361782864175233818320776894184266712710247843521229306565347797884039306660365600035948485878903888841669592545070476954628054699065137249212565182284720550035847641777577396247551562041701002254778339757943683087390850109551641576744950567338634870743941038756086559372041978925654074397381110654565587756788524144251674298793807374395069089391238818685841438308091285874934848704186316487825585401205717766342315104728851001445937270452056089233074985518897401644335487843867922649746206408137757564689589839203629703585150719842644302162755342932097580773206048818936475802775178060720137606430604554842372369962604456812345199244414630496536658296062186546423689892532164479722028513000722943144882503161350775894634374063487806986744359694199170270565881504140194790806684042989699245834843591498442801469278550625529313683437045588793948342299540590697229320026964656313138049825095435126580296581203869523950014076516972929275401551168809724668216223486717866728372356163811839359063389501608143922086662244424583955224548468131433310988066533256010948548098172956836029211726599506982921083550894859846102004425926669886370199226271343627989421996610545064198942929215076096389805635623347700077460601359074712830197162152963121178211217895074545873444432177915150168469329222909247626510370380775433475186018528278688376513692239226546594163708719452498774343451819702191538608718770643428392826709667806325455226276012517807166157406433330583844278382162000573731079368014043242796283682771020203014044119404166178113923111642859922774216876097466979387067446954490638713900544907833361380320864524044346887243859035816296883880106626131333564009693641063063807296803935512411455214610928107280754859608540289237922868733517094910539368422835822722727763872019806511750080619701214477906379802178490514881563804295129496731026054454009375451543902709792747169518695548230680017787826502422431394416203047758726793351053672743725991527162767680795863106705598809969199857457664809623764782701299717894208506193527682843107606696070044658203204781528919564057844686074960030215729852268429785857400165177769625343236486791149748725463394534769845355495532963820937842680537687506909651387928889054879019721239641053037384235756851659300784960066443868235075186485389873129680037030913228032923737386626703369140294291166200694771662593198363906975277085659505710771855356717991659884978957726482752632868253705616725902042292835663359368713073211029992940800587277485087658901936732469380977871168381304575469163192936086220741291664034982924296901033361695808446226543004130011010543145952505732259259148436075358990092493396002235117218268548990469590402971195127529101871223923805939419455119188177262704770193567216566580547653351284064452031978707782665530754137708158670258401483996763502581006760326245914324922105698891286906946945409740111613703090098933094251644572288864896963836873972673583608767197129886464199682083751015752649301622884950055497792291978335091074411283986309602069332588445354517084020557374107966779436354188640454380865951008325586187539929569892311793205576847514013102294221395015514544310606268972491994248494310068104790848719340132607426640392789324139707557664110012643380688723841728822858102350369178626082860759218039029254768263157163369179572267337942185359135886989681759474561350108830794382281132585350774207083542662562390022433241464095351049923610634279409094213968114733749364921235642431363902236006838658477488223915998230118595294100479673978483935405993593953484300673937505887201825732230166654465349787466851839407853468356148988766974758176913257230534871635679810003061250351610320967104138506009682316500098480990169125674856462749412625599917432302787362424706762169774623719334231045608038528241683348625054000986600202149901605386877585037796051181239872376510007905712502689387855394835993977207168711473357901141063655773492066406621714516307457272644202363926673344820225671833951243932038693763581641320919798640729758210660545992877488406098221296331298666109244979204972475692664687814023737115714912554566786251293870708955875417216723701627324791743480138529616983877188278603369756571916200155986460722527409878794585044441519583871439080313758024388642116896373060982327774416627000417757890400520356256012247869944862314135364882493378904733329326994728855147751306875770749988030154663550110312024001895547330313094525352982193835823486898507400679135084236828058083945999628881474646481280823643087835586556655364489564480306108784105555586504191319408198429566245878019822361590274351942922816237389847514492454758220955806004931856518679230802270589329140731077830863333524520189167811337681845169884394596770758886786519642277754672182580209805779835691329116574946343988008313047653488062416547255519221328155995137865148627689555645500823524620949134543493066839399179768702977376324924997047261458122504164521017334461908876916431740345240698893189194431668016302575507034315899369691073812699591684706297315039034920834930913307745542203030439172037199697585942155981705889985242801045287674531397320765257378564163247255873885957747712198310154728734329822050899637631201527971595939948393114397043098114158696220088943534619833137262576830557168059901494575588953080930043308596455229288049930758845710702458984759560197184827204412292322564643395463992913798391214896172654625315411532213881747688628474448278207964858877074136665893799840603271928168318769800971948155170014615401225999741804419399238873059004905939299290345990622630685347308072149704057844135039537716083163211892225726118374760356971265204825649553297577590763983987461856892337277099680062764027414055190699719367025234848340335489227584576479697132887609682124857154890573174160965866842656789629141577100021924589562440024927813944403600988283053441285119500286347760685036416341274601644876432425647603023939112060644559100073304716269872001545259996125558360368011806740378369883990409090792951421795777565870408904281358018332241286788690316319960875817922459543095309740998180168168936708413947386329624306932173329066523016373739367050359004858743930578524289199666570156196109567991292672209061283530197088193107497638401115134810477567662767382486962309704106426781907272515401812489582535021540328089523229574605991927277439972443774947869252797934596207527979678971036908938257029003016827721755480351883097348343060331017931280546715898806994538397944926188132550673742609884311744092682011790137329968262724203143119711917170215578750103992301853218700045176601993879804085107184905707426924358239638560021800774436991327827392711488070717361840927837037076469593894896892756546764981844430851880703687880160026966264804305421378586083761893491095204804457178952904178807555075271683301452227569103914359423660216976274065206560337444086998114503514268463563623290217133041827719401417240082266540786459168847208853995121234251663614570510776936446569361885459982764055929537332501930863849092698902419014137517910218903954572124419255112376436299101013482879912931698442547981389214563661777428951555280720935615206230934473245691557551028818690471694548072120026065070567477348044928112859475604556650138003376866071396732534991812048370289217386696387695436890222420920445839958089015472166424658321574443235304943048750397367925582552043432074465078025169235348545359704344079623803913924614877633158276248377011494068075602059435715345247727935189335499012697716045098862461904082105851096360827123901807451252132997969731801311715644593912082298629032633433517877022554803492636963383075403477910660150984082720190328507892816920373726790970533284120958452628964889817129756489403413748914166682594529586115501339716701436514650050333115619523299523259180689785965014920116764922854237910570331495618368623710241460030756234529615896613822437672905769194800515658698136647946320787730804716023483489724986631601276816228058068401451031183857910198086941713728081860784262757451934393780765666831638439793204378964240251894681233314465099007383342424905999025680823478377940333648946120176134781069131555137686213271010618580851890134832432329076970176135270517305200112521266189700969784090985560071236679409232876196069016224107216093456190420724883657003553976062411708847224182395056311206223423559495114121879527207073185883168974603742707797060853350005870846152803533806730409307253678394181125268496249044095327360222184563895440860666216429909603968827300284917617479978934663038694726963556170397897941287488690433394469385182539345170807517388251174535589321251691090495065131010520700836649204523308246522249346002049535911908473338624886029406193792940915375166872291929603868920677324791494441517610938843210658387458857612873787779677445130833456227769497435259654327943758208549454297230697439632574030341248004729527762419802253311192095823352029601237911849797218027569934923252813515912705199860106770210855954757817325279568698109910797978783883979287976100408999386547928767306012736724407472283702107044828619642391724653010880756836073502662819414353170517883492329229431039821683657229325624698303015791611857660650828474518597306892066041709049669369915342609791021516087149851194595116795680178238729422333363514586974054126160036091413986764303766267971795754823658111681313228285261351311398551834449929693782336609618798263600964164334655953840113119179866377560460468423567069707491493328423159473105725277806532060737806626770649365477978836585038041775901905137439159967496917267847955599883232478792392222340352949190494745502605769471474085718576903526045455143403502420007439286898359310649523792497357786784494337834942480848106812563611161156666619019373252637981426469503271526245933173318606325825320050826144155041639180319600445221348173883889914193328055849453341044066106556608316509580646623642530872446077734615707472011506638043605284053344195149983232567689849654464741906687347445172919026707091453146693488664851392548051032676907096626489463416001187168123994269005239406432203960793697348715285467899269732740956557470266445118386610402755280967337976281875582123737347196625487202875532635772133096957287893807888436123450635850908310228478122971689589391536637825919905367632246902519616524498752299586585081577743851121861047122683010868226673752884669760988393511234158231948692865412337585862898453017176084955279461523233436002887591242767160699643850882099450727201853339909422631278734298888853777627492163521241573867058731754261989698392833472044075384144859905262357384140426746084800076840053959902585239062375242247660581977260511607412413562096973277684639887580087515859546212552348488685819902722636124047204413075226241393793227620930983944764274926301463691949973536160114006783789555682562777442592217963696168168395071463829604933470345480930573406827502684279320535233484738681991147326049559334187748208171048073624087773115469930173339724897373181922768423005932951551084546491872881985848530474856532346648072373015700206761797845548732992961287256215727060479971303584143243082946504681986787085855193221264933488922742711854931329851840826017049540790139903947401843125574666261432923387417734822843007821644993483264258573182664060853445186477914324143572239999927691363304720166231696944274966855399620251390883010879058975702039777660179786655289524768284870223820175794576869994512673742418775842178143301133299213334680624623779991922363658618953233642570722545935529387616187329055081795061329365365282318453221408938410484601125034957438159110862291582820128992212621580182518839904937498899971103257593296996787696291530631054353327748745945493681562544828475590836206968895214167422576751258961456173451460299223283489531416253342384127036768853182453011349501033660873024840188895662157537779170646324777070375342957686367757553524410969972343953920916963888216668701047679236201763991129052967527791613902300882936485946388189730691359258842545211176048944991721184393040608195670273009283688071533405912824103088420492682279326813504156569372310723114086138504702801867742063022738905650082168840934521904790163353371017255682600716574079283882419121695472169257847288407489061016042600168073703227439517295703878257928334387626508426397828315247618916750243013630392494914792690797691594875840038199612579046775177596860580738697080204070776742464576604686363249465929385147721196322366286907040780145599313013803325646458371597036256911107156346094649492733071409164756172092394956243809526203145741144097098962938210891115609764636788351123032518222209144239747480583513698201507610864478470919076095965344719416479575369429645833713606122960696066849572341068206008175833886148807581149349975834076818761616339814207453128778231496597195022461304040242487545862471409798656802645064035607682826733557665865560213174802553865380118645441683699610154683173266865735891330006721252139009578650742440965172616605970028941955314763025567027370132911618712228290468952528501928919893146887281740862264272941755184967571172687533819003501964805516720942555097352411402154637884132661124220205194609670956067621610368951397008818953067793479908142490534709461298394454525033876296364643354194193300963235555124731542489470370424696183066321116281628244755915429744127875256801055186808275786383055777263112912240531015721160922268058657170983681133050605856029927780252604682400382250018089146206089870533813243248828220269581921357865533835849739161800771676277280061838632614737962651004182759495914637406244445129200905551073003889514967200278341490517606071156643632622763401710900981115076085759602505690038023907756455028544895701233110733622661225968704222209259882979832493152255803645550343593570639549231184067223264478910007368903421368640735146558520651180836931882030330953560490254955552349015470845156351235531334728112008137752433700203142054443281039221269965318135329317628145574783274788088647730819724785895600174934632698127128066341294370398509013472228610885445483244731097261921474981469849184503527577017926394570793805283183232199511648715588112659024260387862523745726608108631873286136667586522883436851608724789171114150598340718158051907934756513784086807732143562294879744672320444931062234987118337129598560612903289260970155777536036552255440922468520458599126814128295285344863218213484079598367455379831271950565963024833406953885890033726575382659521070446323120719160168155500972236184305331167885770919559196141429612079458355015927373708685306149613554127962663053159234364770340671540250438243455360233331019418610703072771730324096289645675062787299410808808980534684112936353705540650107125017875686748632892969186790264835751080765589653173911014621759769599305804584104325282400754092551781726268461067310746252676609722985055078613389905612330334819265542995306551635399935597491870983184866935513050555139973095490255046567124281785352627769649053460954573445188375071364194951179918307312543629800838457441596196409330553539756814622824079939753970145364370938263611518000860323410369259067032033064384203174552957059886764230600834900904831071833313514411898921014430761783762921530323179180367184039206584356106086459726353687681476095954708965064575595681303222595741201235829481574632603718081925761838886832920695814432910068311330137833264108316000317316604640570664543192386294404101771636277389711630543114771855827852038237584353992875095622095936175089401374440494060242540399176533499017629116176404927313051188113940703062581919285241194221964741090976120413785242723347155851177540200366874508129447045600557747686306779634467886622215686492287530609167759998068471282709745147088305632497974500929723284657044716438322218505910055349627214681202971552259827247773885488261782421689502813294563157683805755432889789716027055716226540494144113744620708548370047017750227509898233896423533572500704900243255395080177654701825163347279473611364386188984981999222605150145824294881090892810811189539204894690666242643514527173795669862466588176786209979596588426979405453015160859181629272229733482826978857699302299215921972189349316116769291247146158633495690422326215428767134005802767686355516725353414092274744386164952324054666442114146243473041713221996019476648782262872618315497629191642582069394304914314113216454572709726663733406912146627221509271616245882658552358892317088240017250009631249184426029691306019451587218020954356454269631334926224504912467125899658143341027873714042599881061266963106180806578649062947233372666338353307841381122166920594737597603914129374267117135787266596450121910033489283598493434654474237932209482868709574255623298260720506196514928475477979414569001820871874588699841789645494796571284890675004234344059546591121660681957305638515179114266611804927820117684303818391450569862409297702306190889341893082239643421477100838149306655425799369972996787492026496742394594911385497260599410833466801496459450743086263072369544741958365591730585595579432309815306028728408025834459891264536182651674251318884282741132227008806428805775420294819808922237303021556247817445581508283493825323379359195565685486923397142834888481490161548475260764901055084300801036467639020610444248840042494653430185467134193657233087834849626951225765361890869709364848911583626033377789867378309419315383429984784135276066363626074337992338800618532208224590161499932825333170902601427351543107779161252447686206552719936575737431989136416666328804246437193218070238647024074379960162943317642964096163054470633033722489971761089330184196375623195255334633569311471630336691020742122213332444735192861621273427611750248745366226558457333844436962139384837727354811821110318593948125230266911416240730818399320992922026449096135464088021854006326138601438383326131969031300928146145090024506996270568568092485035095339133535748904539355147504200346223573525426498107923121775598800614433483602973728676921409233203136987095241732963177447798445789677327740947341611269473381261300241971915801787266356117176326187450519227861710553259316976925826538974002151505253598197753240114598929213619950543971642081779162903071314045174617175302859941834692299726186019742502435558654845359787904559492466519348431548774078896662447816210149551323021901404593038828102217745704412232559426183149127919302915862270872955170784440571690691307792433935693032267271044047610074728921202139872950357811235254111339065222765317592164564696195044232113181359544010642968316792360915741771181962545226870555920958366359115781063850644168575426231766336754050561623771440672625550970456343104008358349902939015550801954968634717821435120802094406437562174313888531958205053938282693413284959216917386519691676768002490961779757640784592437717693628646526791862212087517048750573275342499543393766696394749186210104729515314707472395603168562087351462547249121815054138137757055632251216531471864253185929236497056068147288667762203401634788568103637493695676149092323020648871836391907662264461995900901134649822983283407301448290310811610780348677828918283491650946255344967909467341439884014394943165445129257508251562769987396395898169908185986598606979960594801224625215706769075138120505985336339917349436602518628808277938336205244039459605769417408208619026121915516929106262036450013068946855737526925546098538299805809817015733155494475011197477414651764920660551928291929049459367767753191446247733496034777986854710429798945035440516365953699259927232728972303160372130992625313595946371741378789165628035192071853362072888605314068663942345785826434767745301642629595385651209894216461443841872677263318407911943145171309999671311912056096328086405442427517609433248547592818644313576190472576321874975195615279995244888729524705353521676813619186671576641873013416718062885679782273074281145344374022061537895079885484439604973479014868551229279662985115314273506891360997096144194178634268130558329608597244362895179065997163047576091113119686860480113900690199336715949828820391464699455214211414805697741811643962936981544760374283749325258071112840251872769937400604808165085022322009400294967088432057565845187936554038009481275762410221732876101520266149293710736130059399603657363329116582185767124467596467230200307907700893472509279503822985540220029833224431521811872256207405767734208056682160832233410076400713268991131834307377038881622949449687354387584699882060111838426868104200656039649138998710165410793104858723159766094595299221412999789700632673030512634657508110930092973592359789335366549750046769004701262946497157239903444948401005399379300087125623904511552857826213083740563655328053313534089156340886187344352692567859731345332415650766477567418635227896162525132239256059240148793901101400681577292834439722422248576802264911672760954701760956179698530118459533532593985835179152129973314365303170657652969996813782940446196154502029765212403977825975466797208344900854554356454193445389167309480449650597131445387438602577998078315508255068794987013400543347140755813275475293202235951447983592247419870665993561079801840668222201824690123220802228355908949271738953479431934357543271272240070389539828974581953537393141844973543698155004774315650892446711427625734636101962893994888376295419340337285195244492709640778484946222544360070153181065510322602637931598249455887984367680848981820112714988764938413042567707013953974990053828033994242666971657970019643270521751328712057881950578893956212287425152176748577740556065904397555007717275898987285168074475867922729306468629559838186454687968230118045684325003658234677380365666142166558360526117908412738234990155919539641106866971550967591314176695854647961225634745826112159840421797321139626084296160570618054891465586771649836382167636569169592031304597842190523953792418954317716962371334167227787067213067864694612749291428156719897281853079162610551915886283059453690739098369562758971719888724001677259003665339001606490317516231120567004524497196675346593513391193399220323932205394589187972554916112237008546531253413196241973865425473352847276212086206733532938659428835391913447008106239720771253671980896525925736595727273642954898644997170205515066804120620855894180210825062233770177958673262754091789359441137237330093230984745645480926697821043772524652009626121459213161340976121897825882203814794476590193497275729565699036847379411814267627812327828295135388135352556131414858748904510352657912604500755749846115643385283548044512065645501968613081380618837586416744408651280078517652421442953294932473478213384206500225809876670489300049561350643588916618016802650235777243758627376350538108138224047147004802275975283540908063578171492698202737459871583480578698342948871789414425627645024748607612761446813969210557987793819739855828902794389065579331744544213227049234536221339354741623233071870530901918959570332692273429579371085758065970807969466539819768268115325268344690552956260334464458383194223352450606804091549655272973783219631411057974219416650937910808881688500526230370610177897345904242360409111554734287936079570765090108223705548921642801030296081731357837153349857130487022282080567870257168595169049969930198327575517509786738068570884362242049020101494501025884884601920382423005276589329520643501247071539791855904758041753191688033348514833549923934427226326574604984532792655976763689167060459502388135730421923968692980781904438668874983024243663745428177710205428093856148471012807871604319728648977522049848190008535524766990037931523711505466565776931904857051937059244887380734271049699143850652419345135645052055464099183986591815552639055609391371316351251052203371174853308406102735191787176160264546607889279872646373944800779641025527538530625366280538612030883733149174322497340977629813536329361498170002631240600072668277622027655415448378644845102316238059209497874009236354701727165187601528892428524757363399937509667745252230100732653889993333560389588900596255620381743686636338283974372116881069506008622764683044611771314208783439877485558617184476810947303670704927823299590948359613529309227950784611971032918129946330644972263735111180731200194949992842545992383219340733206990608710704857556488205253073570095036146158559114495198278080566941769705352058780070948557147526578234516112943570146873604123295197682380647453769210834152610346984062069913024617534715157278213809749242941190932905927559503100425984341414898153145055778538486190845730601432860366714838672268182592867747841923630550719436280328602084085846653022451022269825800672766348708817011340948184937452738125151107295975059166611581533440667780603460392911795231043284621788554191417795530080473224062953959616947908045680089685155004375732652237084502422570220951695516307637500044967202875315035863854276618423445598265422541240852578458773297506755251403108682653203115962402718440986145087697214727047368077508751065363506231835571853569934207779221068462775508305760889822988138288580760276190068396737112655400018914863857797473139015849999848499726512305476569442202343688722010117587286262449944991386888933630403834752699932852845242755072030939926851900981911513780884175309465635386247411217135567032762471430761724748394999213403255955070708966656021965676165474700372103632888225100564604296007715454038573039649372166541639105034342028020092369316263035918818855324434877722318712283420679036272685829359393684970254499798645334873537845562668318754516195331050911978869147615018562740997817604491486601237935178260835788022023330274142649126589868118533706013812583047515003899376819378252902000234577970807632508756813463203162590308574934602074585890486849744164283828667598305086195243862136615870594676524141216062360526443873367519144281430067028333543714044068871250369823241999135271219752345067904227138702653280520700949972427942295560958774958524745802056912670031809187023185312658193667167386753078708295641036762316696952199769672177746664836916690503785999947598328849132723244590712549662727875076142383802835118948040539620332640852511007785940162869143792242732777075908802344611328930846180209384694261575833354464015434801832930306974614766795792835747057897325036314026234116598482445157339239713728323272177063978886183870488700934871394345363367591768556510802699740121229015564725534632396287109388814552944872239744981431755099938728584435316977611467595581219602389316590448711638930044248408106181371973162746592870445387022000720680382771270286099684375552341942885749040002049656228790349978831310272924499048857558226807515590483281960166047748217815220518451402592049342794038920661047074897678406271279980122643296954938244698511969659917413405667028691741413801491574597867713354857983016564336994529585798310764846092178629931809463441909807758953315999416692085724941974032585998669785482845376421953862666581860592209353314828679357648490421485178898245376125696599160059368124135256045000206278986628443435169669387015922542465457572274200758943402821837219839438502493414987383464162993344941927118025970822519395636816229316893467500897392869360252182947931976185471189580387808060413743564706552377311951064635784045228213399809997979139822250339233024612050314977694880290580918323014583015477933402128788317832277430783171673099763608236805569953793282859592526135325880323379399266990815368627667886755482389023381106750242293340391352939099380043414184339402836641713732191431708351181977642072685498136806903652651534299435102597270598305621486323684654093206015242116706698153282328727971113775659059483648549752345010511499213072320143283573841221180037996777121523359715531131306098815926129157381420932753345761869052797318240263297280463637959300785181448263162744591033255005362288449580098599739265340407104292341896297540906742103788874905693861277403579714913878510526876838860236302748186173297549581127219411682866344152710491531660787584465045260636357085011800617227997746337840273780371690493996565730862861941940171258204599587681541095153208073677238496711265982227996460899038449465390669301179155882724081205074354342727280840328748966509200251546416158572234181866399606846678737316644237465589761976537712975349393877451096737764774874345281152681469794802894191251064622504843970936994326638879109692623753120220248409138435283202838974023472932393159829298070824884268725179912975092431241390684340093240486630075398241103271469674250680482571971179928347178499913279626202674203387300538257562535865407724819917090759071635098007619763110888391941768299324669342881756033070013024011665339515664429258582528721556763498483045377173665780179735308014930598602968506507577395750752253167788857961007740903660908237331787933012604597878551364841508807974993705055896911179697279654667283810418446996273509048200182404046931542815351439720338363549180964812387621030525884650835005993429949016774028373706913679949287278593401293005084323429579206927830434850436841654466541842009301924901788866631892453286598961233467278380380451190096623949443766047569333384333175530965048684421928660583606511516317338260156598257116420085671285315911622028490854398195078485329724780438943778100914771712159951474037580173216451139452711000739455138918559300225326457735437524925440511199948244866201971856055723155674485209040228391254983906427716401283659606464522575306330410974887873459081696557397814221952904989486079256740167377876599892364795208242156876091524019693321299664055126150331714487119820798765892735486398083483862330890060864264655239108596990862238081706580109068768213992861860765241047876589763532808047933778629587788529720234282189253574429981986625232934733965861373501783882448899174782214812681364105786832510172636302451531801628236468956425829261697135763778103434754987848149707400035479554148834918139730768496203207156985670598636885793480640122621854174039708077189776692142555385978564675035645387786778207948983692772528100647486051732833686774847113380263262298079106111769679421497453151772411836775546413805225438534076703992680461139042652497674404704461054143436039938015173174390840546796286100594931455677609803603219328733382929342377960951552995011048898791288056707121249322431472188963280984479016221545109386137605120318306137288249620673935723640389924640101358214805848165301320881225105070195411541274057295330298545208279029918859465975991955851839193868677224095959160941310287429261207147293469554878900970827453990757379774135093462372638331607189362799334309513846782312449651013261658870399721469953948136396706174717634129824770432341014265534678820686574828299428523692310229722509583501840588307987308608094956067310264267575084902135186422872759616466327195670992829268489538642915672604161269139276953839091639633643098652713153787709375917751100971451730224055621701040836627511880593531522515012111024527641245159107891188337082067541798246132768099333859839847684468562925456628603865118596644669540673872763496752564279444978876612388162877502483473642025972003194230549037699176549543299032184972655203768706775172082825512145943111153031634235564680850608643953104556629043273899036538295149868037984186200974982912121901119423155880596525212767012140121829126929681665472031750841418957295144483938126173049161393505339598485138457453267768390646332064341843923274741249095410613701187726280158141215843447303261136134591336255131623919208507725827945502939812838461441282388807878530028649821240077699771822426120342427393748273378236319145213045555685228805554318708363854306402680230522547058620904253923945348248989986602754048352215918181328305402732032853992754075390497465967180791476692524539953041274367859440122984538604916400578842315910593264438695806262985598031772036441489387287155757030631051264279364460920347152342137479996210588863138526651913605319503169923498356726258845269475753913717446412187410955643879831130846666664562595364916938097654503435201515286329419479986352158427426769665385070574942611905748989301346141361543045784153605344433261852272876365914063807834596795076550781710427993326453814773112733412851725528570071939104500749105046429590886378246121103103120804474454545500389223015214620480215779919839729405145382982370877047351370189434932203660652834536928867492238557493661980282325445530118351914417067127511203143264304860408602034510590842905779183844853883004940936494992038457468618673678116142851796700407169393023659372878374074381641151092989604436452656443307304883665415419760019841622850223721826379772155606477053256548234688994495821016837462920534621975231966810117632384230327261486915522355513362997240189334507844472342567056976423664909830909897181414045612758744901236906764064327807329414343098008578452020648331726429279184125109026966400171696784496710559959310175560059015104415896912325641271327526888870779098050988950745217108715320730423786184352404178357716420765853725003392765288077020722742218494354688520399941979948065823461237578950041050028466048792238307963252116582806881352191087444430101663089383930917665975802569319396839211022058955155975174338742898133928650294269717068874407427833296463060095116399935086904763629540843077233992330448464717484258593726565517922464146323440498520081331636926792995675269552152720748918852546113781464321209652537658654594847979213280936597887017886957783306048399446452903435359229978202058516550640262212498067866019453658498677228447164917817409017138528364668679711795840895470365153586946563346115744579314396870411438338780243911028800978199468600528702543490045468762996075304684718382184877108708837909465199426221099415706003102244098671797291665599753154408361139304911065770073552160996036944986883481374052004517455245203612344365326643149066212096244699917939647768605840118432047369398527760169644129170600234638543785694045196353370842091409804855793063420925371131650646329626346063081313178818406354881689091733282509478044044811537060858444803086120643052298838966957446950449784053463197287473669145207342630746759058956445216207793105017173314487554385409895516566317231178777561375787173246633141875260492544578174733981042472608602320421005294935735532370297700768724532962833647546085852147268676126132840439923560424361833151348609089304862523116954351885167509834779650775471413191517494038872987138914475974092032344815413906685958346479645261495514920088240821816438984755498306337964708881345076059620627379686807917620045155629880744431906815446487619939270542638839658625711974671807551195155045559996374999311886530786941849451013830971600108811262157833017005196641981736743052516672488665989530945047293590279585580599028290683301616603805842366897594477113216107936046426674778187434161953872207487975263703957072010406501355900195655749605731460719194037032045119377447271428279610865552135786362707123221467122864821849907057474035282195651657925169606530192137786902077765582927002538238475502252364401664516885064240506974765864001643313451551790451451868720590191937323160663319112402737755618488904145262135675706907464713972488504415113301753265358848256820701334693866538687466243497632178822281128273367932364405630562398026816880261320415633952247961422392915403100887929905253543720135664751863918419940566670781911936294992239353808558715380467253200812160623330825972510542495849907948544195323928388909691261432151189290041538477228414719916333526443669403365656968347941752122337381452449449922580065255990310366891873413020764629568330133693168181886315574356975953795271223821497361727033110561328960604975804335248741415379533337195039825460509810334191740455522140637086710333750481739354122610527219127932750505225323303141558506083593932942996793839356733164528434160287427028067937586151068069586145725939347717529473195342398525842989565576277675487630687241740384759193301264355891050190838016237620656952908501218272185674683679952794394077567617453498717221434997542426351722786815727676575187153534273192477956254235084041368587129973592071956638619947511056734259924019731901191192809754933384269281606497974219517106382539917871706558716806091787732581900228525648119809409987432771960895327209839291930816962814091615499762434335687365540396269630570600121173865003152622517100045548958360447492172665592553275053382119393397084173206615785141553841823000341959694787399741339286438139025795203097560075464324253604193567297331849862175168413848208530662991190777667820479553149541834968176817910250291640415369652378617182907619470580501012301612466014122053619751640779920494784362053587600788830538184593880145660123998083238816294850251364441807727575495074308556840002499846332924327806261025994072511927081038226982359489300408123400196637424190805676524019192028453479288606292225295517703088407347844802573904316891699296652919219010550458934352792823291834595467295757750916114174963896149459620476875641967383808042362589895687141985481875760170166932125122808200797292655569509250190853057194399373506314482170009081369465224699207600532619828149704395160600996073374501951138050446511411242188351313782079749627831239671304846468130968434776564078930906840643981071650422668440675331680697921553030536506516762181780223806547746630764417938541358647359525145308167081070113560452387886416293900718618879522058355073879918860543247532802303427163843979539131829859462573510169519944592354211058035693536003369355650511030265825707659308221059769740415734921877165946415352275207686898298939898811479830902558903729937826203555495288292662046132935014708032205045286634228101414686941756869300277982042409329615051573963850535993658716352763605558515839652538741042207807983772713905377429166129290181716071537368324146634487144083513637790742414500669944747313290964657502609771964891039361624945781767640288252126980507535299652555067561813119630541352423962119623512859532112526649897611750588089582661417219864437451858314081599799974460234667333264868857577398095602721682794610363825605437356416346437655347499497958769657543243668673748799795723064340845515247959559788804478982416529264654602217190209164820642975066650833726077959555276061175551189843375927740637206222157560225794947926396911533424642712935363959442694977554601337893234790089650250924077226497058068092831726969515819766586380527763378805887306760025332458580010329502004112006053335489162096703023446190348521591469898446564872329842311391661397997261198268357171227325738454189821658225913087639990363976691865213307828814152102053945400266404824674337076668034996760335281997914753156288590220789943609704570201822699351994214137579287806102397424144417247442221037313734014984851156189098826901826884289241235454580208207687094930480114461561286388947701576396677889016539242602086082617140507982537876938197670807666897225928379808326948633897580577665235382209563285397194532989651244414100797083711481336216654742470734338866695515468724832397144979771437195566874098890431030853152368823622722715093441716791968204048347430939480469048183697195632037152674370499276354897953525935795295359455542577575488659524386403250501888556051660245318926973698373687226206647290643183746815726410060843716268494764487059422221195468693939966438427718998254823195282311459679425606726392508635533993411990490182939051290256782402087619865132713891156232827900821143739486852647172143274283014008656627016614792832798358519070353533535386331069798950806200796312209454829191306430840763872704955823934729063985097360868336111473898890473550416179507456978197117523716988902878401513786191700211833430457621447457232448914244742588357124078053573177956005407129072322406977811268733663465233121103377931579346316778946452893174954020851245475309871677584073159824646730667082851106751489729551852197475492027650677887436175269118593487495985082940073402948033470123018239047554306623379172245116372015048420403547178310366345692264858448624053199631360644656389732611556546517152672454004980037754149989002833077808879224439638659882599445512777764176304276218081779384648786554956665164619261014427291710898061259371571808516919648146283946936211435408777238360585134132374587544075794055135582397234297991950858933621913019020268920311248285744979423616959093644940206413431594927679891083210301111440451440348363653596888534070190521098316269893335274365573070330903580679063206417336075908448005378550947159307826728047988128145525657541360428340237950703109032727930805682563205512785919310658779751266418108565040663500058398364771536390837888855836378414567422804152495326885759283305100329010334884702053898530139723592074412177956290565784659957690952142390594296516727296601291500754253350949401473119651643445262197058645845948496723209254244162368978789156874675757797937613124343404033505527572767326334626972143688527928076361682033299800971232715638037559171719812572299551258777514033066889269470207978225124216272601124538918534632865166206647054150105041197583562113828015393418090368730409347587693555107543182642486894255480074968168607385371995844909656775695669525521485398957185896431401637850447478827687477608537951113097442163560974904257897161184303954027758412044862535022265364391047846046931350415444822384806837940087462973879373909874210781287694521474923883272427581202731130271668001583316816620798228077219851205838158773611840837849865439582609417727724004737893191221923303495939227509212836816011667310413371084569376428063891180310800446629138307400175420872229924363914500612927756201513226511291926024348262515872085716644257692756223841427004490477240860477577636191933280867797472864885530137652088384913426915319988705213823819872696939931098340034013284617268232589141234055334762060808963859808326457492539779220395073786962413556193886980977857405945456685376847413608796693147631101201843285206731254820327669325748889618428334633923755829536420297191662010643748816962179911827358550163636754426083595863616499942867487935903248549618029327261908142616769924799953038664751504550418234657826163188984126180232935970640174736534967607018538725626844425364229095359158154500809668087021727248480945138410267433219482238914909355197772563519683814341743597981395692377102667846685700462050157406552032497121571593570452801168636211130980648810674763683545659543086527207255010293618942615308488886007816329233588146186575105688006121161539039557466223070220733726835397268867428955725213346315223805824940704962908583171679910314941739631921405398122692579108439695120047317527534141574470738768942582491267758079771709990493958921383623159899803736205134123318074362479885302837092305889423144351145118565399207279794624924954269210581372099030860336198240331697221523664282475023380102942195564571734759587505367017705685271582673808747540344006961111680878199845947250656388950964775973188552293432654185002911034654195188845227171860901030848283081821258112700825517871242571772628942015642739162126656567036549045168000833087683363485436359184180282076199794318964157101096178150430800580153930257664453278343973534586739225770950513310189435878107682620091950766164706732972020981657486580018583990299933240411446311023274875026961340104299879749268991737532066693442741558730601573100291691353426179570015011800190640700931144627008839033950463718059174536268363913861524781571199761626126247240757259010802244900877626048043895592088094957809634604748562456139682337204731356597969853305818852118733966367633079531004528239122928781060666481178232036471173528459737638276031951471885846017673875119099962330728413526805362657570603018023209115198772229649970409285761661041631368835334023077811824873104591563482177559980130398458720552197756784408874428065518231463996927110985042332217106559252144294306576689221596805700101553428413168454377700470772059312276970619648363151094784895035747476852911892931018352011563674380801769878795801595394806708595560963197792989603879249476811281661827531867234215479648697131847194728062942325629128825120811659610722070920060357440632257782087450200211352356649161624837349434873642945795046494129544333877839076728525106927620379206342478572531604863606263276296312129744209824585450266168024069179618509299462714949704425644890735152877401024068671688263409428539009278173518444222643916488151374902152290545448170279601668062643419929331939411288465181643087583883792866867164139765528410559373647659252140222526420630928982613817599388147331674604594181979079998757511176447631935662508694954195362124012702286753836801126686228281838476922207048434994716021304283556626746894357762537332757926022110790116265438542180314520659374059863167923374411555142697295301218112118345045510885106788375788373662651055634603288325399433838644644451439982474823285588848252198289617812610671926291067663017865221531221549776209152165396533329868093638919782403301531135599401677018420723119040369944891315694109282646451015718883828743084960861221365003680940151922357780671697071315327432759839912844253107858584680068075198719823057957916950897561528509783058478169814950830922776468556929968769556761415573055231702319029090273788283539788464375686715061889150029829220771853993115096214103801452761270489934070914833055292152458791896447653351365699136119174100272300550426344713523975716895931507023251841790296065881164600980024936962828311124210101767468924622420183151538336868134932751396497372779316983680747110979015797755063069021988325377884506366659829603843142182959903307347784442727664450466538148105198437019641241266413573164067229431887379697730626985177392131772425109170118656817464860116817303718301694053164720415595014729306141443819890433337327060567044157188750708480805429455071807298723252301621378844563581694946077302973003103058385533000780135075823338113572383650418834059728929041020581541533835383314795503318219877708895073009378684663025078724060342283595798813080028925747516014739101036191628310132199889591642522538382013178866803175315494968504089703027554701622961913972122547773278802246331667406237089655106342120429286382910059838634429525064673013950100904444882478345058267582040243855364559564880345451539270176215512411653857976236966496736313421318544777501779652087594026393505243674822704055166696843220985237167243468087167105769452294963781219234662031920008872354158759631725491710963244661926742299197053764949965236246753963279678409955303720420658225656120532428994204462535729526516617101016336544863228079235809098738005089522857088135327031150012504434921585322199926418915224619972180611177865695393536443063666211295103842537150424688996113556271399684663831517700497138702592607859519811144883213174305475476617792868227250832282196092933382778433658542099553784619438614258620605237082217351159822172406102274306090349007922599342894891537118729814476259675809401575604387576869261018467411471119307828493950824661023237625640514518408751968356809158531281166641376329562798135967032620708592025227227580815383411488324473401380777044046612865418930052478410373295331449135389316838791048626668539054159159558112540664688048122134419239160893628537103949355674818361179287209766379612537183612758788983355680526448433019112458991346685474847061488261956397458611610416705243287796960279576175229091378219499440539790387897858026106620907288724352214916106933078327296000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
87000! 26540079129401268061018541294696858101858238487544747098168372651770773618318905313299558815175296352122496458320949882615095493888161314332322982004495203044595139312895696875241213675536520708972283048989186425237275867549531821597250041947535034501959976241205325563694946653353248150341132321681329083509183991415001854253593222180444236301941141298412525266599282554272346577559477477151981844465803658212829632298501438518978738993006127183266834808105091791627501131955795436141962013124072193397004792195031199595306961327854351194431987915082453258627193636552259933241495334695778938995980560884316709668348665618199339721548916486500406736631704516205476880781110171312498000375683719937133106951776787899447439858930708124306759871076213469017806427045689887765149242396712639642777051062170805027455388929773140809867756015183993924946357935680074079762569993364988197222390651516381915746570604584101107790575774971828784465907884383622182344079638096565032274624317767705453703987762932542941551870831192853115023767842484035153593440916465924322742277922034865118928722452021947820168157342364468944877271941473314250857977103404021633516431726568531659361011190844147699443959515747847794004458276185073612021164341474636433811484977809613895133277371434731163548064946043264134979257464642974850664152418866116308742354881296871511102067911493856860437016859160505826093145467185486540363210682986667083829796981870650786995851347013840267663367564185906416766622579207641943531756472730725893128833030826899354386290767442795905578929691482729490799325839385971645981198799509710994690835302082970623462440220372233328145079157610520987593050722044670204759646011140677937797632056871541630465832450046983814864079998542581331588335556181629410172051146423906332625209550022710886815334751106888278196061933345283589036111382607157937104504236914124415637187235971699856936704235287259630136912909698162011334672714423164508519310641560063944153880916432108359601021157606393788666500828097160409898058032318558747511332614993608580978547970040877822259523018716166757518510167465399781810974037504774722732611937947502596358524361476428967932934195685018716005605232815309888024241736646799264435906067569073014167391286666513998800655297702302474506223005306970282717156618373982148474046555191344774205817340866150082749336698404545030195112318367003771932235270338966873108901786463491808586700747236946124110307210419642681647251858548981576306710934203745534799770427677491125734732106139482472202997724029566407643170759842029434174253273494866439819111498968983875548983857611434123702966255804765183435921348854134778995401537905305708623949731747016357693673443865588416605889364425729939782358789727270493183961974349790316112207998396348086997591469398028600933103188416512549673424646854176739116778912037933524876404253203418566639928891946644120157382402937198756811367507755301244414184297534822066232263238618889582056549158771569008391168868609510459954594591345879794039549674137369530934828161480118898739755818181724806141812322339585881226675937063982304446369118909896380667512578408862311947937185902667927887102531233728992920804233676346308800780320595974665091182137512934856882318453355852474528996946256677813492896718636014229099844855551362615694541348767341376915417843202482786232737702306681939409128283231769032473657703579695742517441010508214319054049376210976615161025800524021460348068307189387980317220720671523403333327723407527220928768033719565245615032401617727087462548850496658939604334876596924043400911702257575083730058086950842797102894116940812576011021705267914084765064666470522208411717748097722807965330854742764311366311426878241363010603361472386513542839003914367199174252104035958742394160651167384173056219463144057788802862295386297949856139611034097393692826516308646677199757498595120767573318964629326143583933105219286570775554215469005090629960550154770102448285967000565899513775730309532020757446912954337705076239668460141829852585011151504506410820300012287787160448430565701190241776195170337925768496573832609842495652367777467585795768670456501056248287568733578244097086241692508168477247059471422916391622210436167021267704864566489169499204275191762747678112828583187601135949160507342090926730013881126213085926752865967293114977535531357750681476022633764299518923907646798072678418011345987374774649142794591886598019844643170267698710417746344085977935306933537705040589169036511560622632598220415257277586694382731825994699532231868001810618342935841865053817916621294937261569372367741021353574693487572668475522120567625719907580453821166997307478824112025303766269227632357910841729543198366985439517432306463851151225676940844175100697759368459705232517042547500221305122590126140441132364442055819099180448474712567957292576742311840676678725394197349899863524634963525025805078583728961355520345771982988136082234116779199567668116084777836724106372468451608178522043800528723003153295991909509400775692852017388130558367084508502705990869561863129800437160675808922849212218656713552478629607261884275231057952103049521192823255221696181055047313353766795834046318153153375080096543239301403869470835570340591390632123477680324630786021039090149788580856685883827748902847613698887385712922424783792486610012110228547993660318949521466310774649820961807226978351318315083326914470131555928277682520756218158773527057468965803106956460823529793956082918650258874258648958526703865922251495918218869978981231220802960817204515325964106931486489554422425922774215824007282257529563975181944144829644567257557391879950217462305841837845153798118086100020736943955556477788044790370068259424923112368200611385892064780432745194614856594590498637516355574182208907482054559760327979149474350967350522848224058062145056627715703174453451319659827223897966474652832446614025900475280247241173691105299272531533084155154741102267573556912999799770313023676208651988253858661337211071080482274012808895378881498731561067437026261303295995416019863690492482361595225862251744016986116902951264244033652576359822767614465961406870188900079016869840500591179366078023776250915504706155272056778213097496333838303443926981596603715268488957709652092048227224069681595234630565044370283840721836233916901883678911109482016922964280726804949904144083958190164876663700809061307733550760788624885197438042408624389348879291740840105451452162049875080226279046103217128348897288913237784885179042390910398848494790329375021982764370302646207123873303339342290415974688216167363014440312456199972378466169389652118726413543934396997634698059157839918244893201621074794523244447410120231545338850309340477655242530761598995445019735948407760740602404959208328799762714015256787741590861213923438639991335280535892311469706193233471551111213886630698229237706030368154357523312637595055253601559348766093050814292549395985436279935124654395925543459720872039669229815297443926951794739433423887006070737298960842521610639195110140311739699236272119507364700371049262290940068085561923530613366888848395617153859040891083540546163533716736370948995485593947111372891366582065069987219993573048466839861246433035748402908561587425337091038358748289191779643022816340474133159140248701656531722846722895187559833910504825012375225774761185272860795352414279988370496257766285214704042170048564465270752382154067778687074908203435092170335831256145489504139727848022368502911118574767678037194415661928259916542281294612090658736313470470000462512581221887851178975595420179242184052001018320986112498063935265757217284569728456961918342319640507673129128317711446918368911077632864312135468229794637283599205490792673202286063770674635247351136390088765666250286440539080348352895807993154577678942429563881115928411170055366536995919500782652506394953476057512998150417180026468109848384918548559614176758023428061765590763810591126118590914272733832928789207939373079931268068107781785753791643954944546086849962515147592017056816367318331787253719814799970632775183366121468739921590874711898031019088292780577316846177559728498466354233865109494788110213445736032330119258749139462200463926097599206177057976744361019100204782779075493264724869811681162362500074314740775606783143208077929909960818196394319727733942521615329844096398924964454509831080400512500865126191383189474001435056553879751211374684289105504613048018607318911016285353348474378069700274823977021515073089162660272652827135803578707118451033767021286313093091903164751057479965348846051218627345804143045033808599127374530714580454496441536132966372899564627592563660865166384374212072870126048729369694231775887879101707024471722059395978622299196272655156586630673081628041712602727426554740137898508528731470433158064549097805573754979927817150441035350306610133381741952710849381658764334504740498978742880902178585749385992710764826164869410232015865720422120738802768321864068240995906930094677369675223250874616397800853992516656666679003762467963240233655450052162127445013763997267903195027609922875860907252302526086403509851267014430761852499170942670258838210275916841115858665947041119941212078505524730734734150226067560287139867227342323568882470936553478123619665053360284647331739427228350903448402734024640682290805373018999390474915640650621317466373358745426626533635579464373429376511106465610209622346479480828084765642736555214408512503363508341354146674417723162641089151922814769222909099048956092510218098995273411085303521015717801740995591840048130676269501052012156746768285426915967183665000772992833646516505053498820381509162985157506772216498651824517381193313610900762567898692039892901591198070106429349781708107762062054306840716267548576274757585764716189731403719402915115998548743981398004327252621104051791156687068218144730079382656077403540817500865222910320332623079714362357378628105185529032120794237420928224330326756684967808720264134598571488669663877722009376208736559148893676969291702098752450205637033024372127232332351914364419873936577678598709526389863835676520717042879947591914939758843650055346540371157855946413898632503658133745709165589306384424969390967901374200896176985615488597014809766010508018064983508862623219858348988647304560436097936239396045814830531105076625070902843098782805260999288638955678970776081231780903282433575651471958720636399846582570574451199625993342818909817687368769103322223238716521126258830971214631923155084298253714705164323297197354242333502196177587163263395285670442283670781358798222720519071531693320053444220552581443822050210046840113564994649139386893924957902732776188890805334192666158363994217998041174030346427528481387705866767567712266192595647648224891790481945495082717783861779418335748593075544540205811841883685576745512961112519258897264155923664770242682146205422541400928680545283117202320735744531109532020187027365348890735297470947287843294327214967476326623883946665540638265634932518174627041181988805226912498862133410060655237509372095986392985551119628894786424284561868459620397239694662265976683047113426273989945412183367934230304311265339617228671037394578494113552894119299376507195614026906237098088825392050191104617890540359765742085696598536684848525700185436173965521092494095158448026319034999757979585317797313617151948744343526757146539744624187328443270630074441799267492598269562576678485798262473360929412842952497560835296018620467600093748367661673988574888727008871843704489100123099681559878315962230104269517665829464349960471337797937518064130184365883140186932745110436541341848842355546461282803221707278299465498784522762991012278882989092248410315477499954253038880697945552099559795786381673440279035065068596063031393098014947034556355480039444362525564329060567060150960605993105622954871028247944538300314925097233540828917146319171203479388766882336879299389984413278885034112127711409779199381584214404140306931206186057620408471306507577203750212357523300539448212432886914120396898874724512641104709949350356755172355028237220962426022355563270198680250213314177476495482472313846571593346664681393784373464130859971437830005211930567645462887387213853698326809006987491011591335890788243861952342378009953418312032875947396278577102407230206781760936391271949418316993463314297941399829199697326438181122394723652541470725986332878155619666347422743678099711340699818793304012634383308000997447647410582767656235126302131250515868876763057873332551196871234341616598901865418720908870105031752925802832505041645653355160646250257685530341984783400485562266838182373806224231578727254206369914017477705848468304600190398822830055828354128421691753765033257992799141573226537205734633371390091936864769796321362915900231906087780545065307985168212702603391886956526829696654432832070573917164282885236264897613977869364042156155497150006937212552895578829733873887876752493688908444114314230200477323624347202417754228886987289415368782452791992136292110018093928624541330908053755868150587780838400585115573559957314606011151848569874051266172803929721955198544321828374923103433735852251856022680976295509029035447803430356007424710621808537854303936686255077185738778222882034061663295320110341410445412971193442015924172376580691777922852463414794447291348613952081690388677686104241974013501847690759064897671236289697713775908112699989487887266104773953525974691632786894745269285686895307285340891561480958408749393877729729594182868874216458352377825016029904813669807300625975560004535252225727462728104274855798380748836866472948806587090073308290071768473079104750820760193938755326378356977920299121247530058508789201720253737042360642191257746854825101946711323048012022960375920253710588289597895779364431596466694427714860646596644093312416239014271671552945747919369334071350456285741001583538169198739513987596634928849298254287051460595681381975734778608940928433150815000965305275311611154057993258635982087200270078100531370690000134409068237267452305523827885282341018112443976222064306785784231884121968961897154486034142920940313360900813008815771388409167678420517554946828474091934004598284126672159873665384103712192622388085164560936327553782843575016646279968104581367872978714480981731687733345130351839142074689406391397249399959477052472838978439057952073754810814295725778955807842607753576939218283236077569381866588009076177037700898137971608244920810804828102506414550886584132854876183865551314610641314579474282789681114151739713986951501393842502490127870510654782308586658840550885803214593058283608637512388184830682741761244177899688427162594746243863180619797449285529311676146121908080699465251080897237100685816795810202839584175653580618884745703646971457203308158696129484857483681931401378849658056420211319388550199906628687791323147209132857685781156146457758223735539440979058211666711507270911559538089186343444451735597111663768667117694165002822571847965512300193951364096207708262202343301517014504930329596570811606810794907991396273200647860319824794089255332551280622841162903482856855186571572115778523622967082488820226138848312064029684281398718848441532495638502840226239520390038003103149795524754208295513206154811901265950731627878513342183362674725402558871346833387680785212414638770816756545660100299272742925490906318964594220538032258411222772306368250434475218075217638352047274511390398388977993198957716894346210579251637307501952920516156361224037888971621778550739872363969540778224127429751202133885580196334044940647483363011440944190555746727800422201793051492376648316617198544705516589237279290905405730678394602411524597445981319144396950135023943847834078248957851420963284472364160914402733305795596494744797431459882041212308489333080740629042429287309721900706302268819471986402550844572090003703798068823409327400253785371780034025234771351875889564238348023041792481007628827313016629261803911668754244904809170331492888741418182529726285661059558604258706894165670355921638667289429337239209982770630146334322882878346489787575971666142900191080926300898278143319345762946759158643841381683375066142700041651554181806986995136910043824553910484965374009092820035749012213805801950914624020544835980587759044614697869999655025372764744176198216582380904508331486970170645874249901033345408388957413882615582968938153775780753484582972119315629286782167043152190524916451260530003720518580927917390530602972310210384199409752344081001701877056936242334212023070863056386825932736393079361774534709684185145222561347024342697811196390835479309386858589452119564999961154325692518774033369809804505596234105304660958631824859213291528408003614239762592917412282001643751346201220927235409263831466559771751942251260853774591926792500183699360434284218728434034351695759456152732657081332786407742774901929572359186856235731420834349504373748938624435855785860639041717114207065855303580303638474710997489973733516749883899092481898604581279372718280235089315368492296674592947552224455155074530796695348549516684874626758954705124718222327533447406031733984922895433336009032783568011083913084954871642069553100250572559946362980888609973499285774862334515671948048474251587691446033607149858374017431059291348135307147417732039910667821856270178711097955287407352393255633680059721884418680428169938629299883729419635138229136379733252873683275549986194089644217502395387165074718605589743866372569274138249610892525529868439863322277868622782922657833535864195040282683073426224444682424215053299360083348662273315900853299701387660598956104438384310707402937724762350310762731607271658341974874031551597021561566479905598974048260756766460960849073785853545202288414064868070771205553979058677809919616570306129490333012283444547715610669453500820723573114670818307117568740422856255027392634746121320176770847841097040744239108980276474925250045704657648142140389113349172557935882136188670474631958002959532309788891475055321300990531316602550186961512569861067637868218140338601236445282002587870414961284718932802840065421501965295618346999670223532375715289277870959877833126386193904251279999930517595250978796642766629476525350231647144285643274330107041497648530350510329530859653925988467960849047269052526761798479197140888741592244700815879993884157347863245866806499499837997125566097392734289744349476006484210698682653646171988636208706643113923783098125943912774242643265917219802786300622787070017525277670579923121411246192911693887575453562740097556645627792757499987016040663543588585902095810894988004089455419250070270872893204825328438906113089163067741051505728603146296458963800857890389699573694154734937620784491058978724589195821130551822080503838965400487809040559493291633772742316927791512554194344814072080477358081798777884207039685727368965966093132563229745256502789276005897400126864323779710526620885574287931062618200600862661495706685064100608750843116568789204675294465255865910033681670269561419544102998726577567320374806894008022765475558346893324139527554644654246327251147406964097632131003736558284501979739151412973652318036999299611294407173907894533856371021455393498655028498808986959084962718725106741973199707812525246526995235687015586389730254712222101981648525472381613423858045209814900027595172756839235570572048005324490096583422359815236607400735864396530081875869545153651398197388127991510586965012102902075560599247174161813162576567343411001180204219016207764265770961166812499168186069580987173453068767626709663228201875007766090825728428638311524731023962406166442481720936285142213867163761148382198856845171126353392238144851618954494162734514159142727739166073369067986501397558766131169583999733336116909914157431757818340318423965816083768539005360456635658814976357985526113428830306119928652911725625021043647223105635238400424197637428871743996680763994927218997085358201939207797095258701620719087561861550356354807277668928541033351033414462796109117878228846328005569938696115408796357485849434195826890998786494518540104319276566304841691679507342218735378487526890618246438401369513470266622040774290577130930801317496775807843404420850521593716520766069682194054045001193373555902800307946618420942303693522366583534292660462718810919886733954876116874535358615412849067946820618241706734434383819916567022001459627748722927150327769798955341387658751999236214468017881746321048307749104015396229937536983580093840013834166256672252139681830818093219884427584580304515681541905358342256021580458714818198331856716841407449118769683773621283259302122015501065078122549586177598899485434985973859100140284021581058138414207351618566290943238942115336579993796390005208643692516566516847854176502476396620505291344332666211269147328364902522080707643586457096328296325962888298270050858962683848484007829649082722341518708022585772211549117974505479630521659061022093819921412294192388841200520025292243431268646139577511758871324631793988280177842519369059869995172895206301288568949820439151928348935374989442508163147666450205309966027505632304016652405692230099085749422572463820510031818890445903732002564883859665064976652588887400121243444412921392712143518458695977903735321797679332152660310050933675132666890993195692203192889272804635403517981033044314346873760050008138194837203774149817409203439778373766379207786205028421505242521403380767582766522312800093304264038279874997095675802264650789026008664443435138788942355687493648781375352795248722211012503351843666016492563307300774334357289282636331181405579312361069112423169975844967011302590845908317535422008280317343951616564187415959468810863692219181410179459612715773173956801428211597489317997420996081505903108798602833094862918008054502868611164491010472641070759612462262495715744099113628582872748195676589977860552208687140987704072517866571814564176417710078546469700177554819543370160250688994148241273728445892263275791568935132746233357803117450477505663719875696053778911613484964588408527114627818203479107715651403196059162354270510518314588458589464179664198704741729957974022680358999179049489852878921621804901531139837132459639379036778470780475176364410089981996267992898176236159142923362009446222911813835587129184180209509934245422749158701552326754477864053215165504669972899542196021233093610643569258549807684542048537604400677333199897413371842953693691109637711566785992591345096738426479784742904472828273114714334785908811503262570672104462696273879237703255073693669477112909321415621298632692995506201355949992422314329687468142115139766726463747717873937380304620597310083017946558355533383080064387625185495867699711852348057568907111177362943857517051938910083026181917309921552886284466875306524781892722567724903900731255600288577880529813737587899765584660283195194092566156621601659455197536089073581592960128481157194246522030024276235651593015375988871259176268927400096146329033676109344912834882087287070742549072084527733334688030955524394812620168946515259740842026921807979488085933314887441687043071894989188195385623434141785027145892731447853656509396022708088827213957029539141208906001190096390547866073959535884196889767863942871154889305142845858350473219230642506499295649664159565521484479027000425267390053081999037067953663780279025091793733544855062434171940816336876679425028955213350092183875870109091571788049103850056856857970614284445254044549170653643363280534321123582897401112480877995799954867075659898282048871462176031535611028082122934993287589191204663230749050003122078725005939571319326217083446768995810623082055890534278992504007899952208042821424972717712415111172396688541844476245162525083912210584440992662697084746387519336315997815708712331327126227676027989487342756243101111329649040140245964719183649336460104549290284690218264701080233187955622629863785136698768541711912811559000900371503176804517859031007759172651898971426472723015563785503660132789276820458440438061902567524654903944312291439033209472252546973549444128764694153586789442466191286856194397219356024690910402166309679967900561194940266912855791097392300680571453684930880190676843182488114656120749549222884695520858607139160217430789244362802793093905530911259904366789491299748093644801698208136009830573048751432680901475229579944254251700530366191572315141886393985625061330092881541277114872341797053170821851389916443666409955294274263444291417335188086468732690337250976963494765320024181487462280777289984976785475203062327632027294147634170115306083527932803144306095109282337728966982049018598184807329073318059314818427797898407875015688344089191131534572967969688259794746684772770102317785609704632458041556499480709589113144722045622889582526700032919439062240936764861078183261415297424179204600053444378445767742623239408239753764978393551648493564752167113307252852706492980684534191307053634853754221559150148011969867498421288760055537547130469308545142619788161209473888396095882412648147228155160369602149257576048581060266690465195203387035723437591515918091959030041878765679480974580909184934794115296628441591648509141007067427755372265555854365949258057038431836889586200987641180760190336070298627506648006441174810993296545446140229449125855750674774912175252669620229059101048892912247009373437993137808896713930824302631474971008312727065464130797231134100714821497892332026042782903252730709558858770485855864351962126166652617920576867283579891531757058912294093379083982630983175798908415867523910383500111843535130781334984058891187749135084557917992916759497517420118947178429804936342179315586918264588164536936171916952189192937736341943938872131427151906759291708426911090064178995051093551617183803347085128692550367601169107556762303463987968425192631027193540283075582379607094835649297708647442043951997890236324834474670108831055979210079458622373095555031509518809963645867282857382241795228248721575811576592614210479136476865264879928603159232742826317572076052038888198096507191611178270209849593976069189517514112447688956312918390614085315585277927082941347129777679907862597022738596444518282974125553862059281197765834057899720584935484688680375194752958106121940508174292502121235034371613771894818962718980610750572730671825791950926930015794369558979828437585960224105543784382077786035549890366147879344380980416728360816185268791700272253335416045449214706893116253905455356628569121349047524601544907314218109635945837501492235514850320742671934657777473922300373677157896822206112988756226603396696569721441192624179971302611800296746091634587597062544751611798166925169162760471695523185265590607994888642020703617654567531497956543887446232508074700763723387902316025364489222134794523569375170015365891544815938130439344952571845130891750091748491829668803655503191482894963595821728123729413979016853052834953075667850242004795661998979378142537045577648256786367042051685768151469860958884966664310064365604568616057255623026917230225122808698010278911607673923725914680628042980264270958303338293681645707642444754047315146260381225360025231584498438481646599198655268357901792479464294766777185292691952663773241915951920685480903576348690287658197375271195732037789574591355059870069058972813873452911210229669489190555427910630317363957967455613740696235711892893531709190828952019931145881625596793755033084151582034328196318194025570556236818464642819496513021364357248202352054387505304940338971448361221145733249401159857717811611655579107378135291698958671821019284145459760975122359432694960109590067211449690963050253206504186740084862549685807510115357507844807390096520845888926035092606190124706790709518746554069289932711884214153052438807192250649189871824038367384947072117379770195086317292346941977693309146808670712947287168993033320314816353644817628418024618509266014238728436336496162114579146083380119082294935783855681491014483048769232377143849928263289813922860067535707733445187872719457930817450510275382255969198641941975348256719260176575982067563858238701269766055097003457674613147393066577455477203388648933846847316239569836996643803693821707608865620836800683596311495381078209114946047013538844190682456918318519900685106050132929390893804339768457917243117255547476956317831986424243294899842435223223497973223651190596093843807728818385578722768113427996850074701787608721412682092458836204775132446525621708932852928005048106191523168054230416168313544043581391256911341078131347443070755732213143671566880117401823378100911914353264147482862099915264846791293978250376788616672225081386585554610465469698984254339469560677736811109934378526131656246544488257894284529665359180478926351067202484277459944168044314060748662677027148705126917600874119598040717007367415313362002800789880771956724276387063939910327644702742215846496656226587913671548772480955610881813634737805262015260801834586125662305850805094687794274605761150699977870096370858738343399894442327705979295037228695233816249092961582405178201842707636423517711768549306764649764478264887561813165122870721048211392599141081843505544140344683943613777410816527896050987089439714994744171823228751462790951665642775331322285413373515515358679820768599725279465215780559532441612032351367290185294094819148343967999340444371848648318128316457790937234583747883484129548494851992423354417438692976924562519270142423281640125305812962026369684469276802930909115587864954647575585990301403999074919884543763401104446930176859953099794086447975638221359403486803708834057949278222351836754206890679892008123566528475939770083289149845726970592885787553038330642143303258245428371232480450105674518202288482403158393536213820114138357928516839086486212450931795643080789294512979916058556187500712692855222388240222300225334044464497987318189438565354854550306468475161639033384880192194702325563483215331534453815270486696211803235048936048172146310855290436781518249142480062279409923333793685791740887390390936503107213723191491037043856049757189148191419802970044863231065609061129629883227840497678965500891069701841166770633634378851102927878861132075404277969049394769258317165596829892543799858610694526099742035843507109903232338837770131427887432807388939239015490479608617946975759969981424371795216388778026368822513303104416253632677841865839239503830903442815111211359609522836995847602611712067974698946671168189231428131523987333090633176380089179773677152059847097956707834503236518433238747172274073480824387526943815111103091773110269376680377141159219454033728393893042648026043957417334302841978271871742466892625184305737020277711482801397019439508481567398975231939353505255332936236131824726064716308907909550425784757012625941949204564338467436603303186276630377680019877047428506713669093979353072588046508136088055449901921549778700962725048614156194798777317681081145197476418858689546359673533368633691097123165793959227193225095336004153428329086610829612969072724289826803522596138108877843500122221725545977058267993290517694187454841215204144312139227556241796721871343573760203538410384164212138436525995947100855427980409468655200786680499871526919969949512993346679219146320142379088816751914393096711007357163807049702558855595999854347816118003535032850104981475829102509932520695775864491649332152287855727092808652528118124116715723204225378095631865844707775906048446402936389889957290648181232567514877362529667221711404195385166336922829134119033284059408072301600797186083071142105498814774999649033163028893608441593701997917282760920693945453437260576602337727054279881438902825844651351405979647494848371660548043814645338384287913327912571881607594245288202072871283158249349285826883637464062864361606831126129554387301985112778175324528789564977686335913127124279108700667943241321085418058511294596524856689588520982920633022498593056523546382405172217550490806839440145092492077032285556126466137287403603125662935556105785652359598330184535752429547374435192368973330606932566271487276510568615540812620589516712664336765563496741293207858208800600622854174103345415627463897788014055353344573257129991467394377807746893899477752877561382251706454015664261389045187898656610874644387954100262772180925657274366417066327257249605017064956583034557535210373844953170167939081641245136654763983146037882053811051205330165654525832512054482122235034527154796039768600366187209214979284266860875407965547826411029491868725230094743668402767103409690939328450846914243613498309682428001430940317478263768743404423398791370636196374246123802025597897335314379376102196553368371890606281731829116396924562937720435761123586731755501335761540954275383180954544953666255453857637101683580158913894000234002729564197427921977344374968149104016609951576032880814846223528512518408516273093146054894689823773942312835652786951680724281291454674200846833100928652814385382138099389963797819350763778450277268635873468206296050697340492277792704360111368179502511952034006841047980845901113505546973495961133633251728694195129950389780662743470387424483299984310270841958961120709011404553996082236782047017493988745725694300779788146174419812452567187148282956153681048279817033532219818535742073501067931238509658756147244418114216234167957446497554496386146053790061727647644906196212104204082911637493551584888665224816959866706995571084493567640955780499554942019894223830623284017387793334431750888318818298233518831934863579881622035988638087869356949413209733267904983729240999658639902077003890494760252999842497443686851210831734036722268691853431293670222676979216494846422064825708594651151395707068135530714433763270211232095065934355041717178946616998031187223355052831883936613807752481242848803526697287911179466030862322113423735458409901749575251941983815397476641503106466627575627350124264843015730213098267198836626360390964016274045947853315652724690587059634900936767926221694750174755318137214213272071872287654706407195043543778379431803683283630645374996428034399405760679571328524233729460561100805599031888575230237589063783720960466152443567805697359026265486672515614899339201494415364264651703064465196787675626722053932722277747943799420361624123586479271513191895062575457249368292770752810401941548075292504008392035975785758256051831983953089333130704708213941463347692282375234378401039075700993120657926463334311515792966032671130029090183494851724335371246617729343654704131706106726793721434803114527580143081582951155676912506245908447988734259793939537947480164136572230583544268455103243139603385867694391657248687470033167405423752013316947080244254429566842526270753359354175093189722507041871784869889480606040298687541642548851093144777425776646975612335867032844327947894468018216872525030128489972312015691051112806474209924844521888512419183430415549295875869209501834631328709015075865948131312660991351052997709733716268135451828327947315890711111547996131103721412182819640346077123362995663237412391053781132352432376639279452380781972804242150435294941919106272970751618909147300618728873185370668352521652679001217313693538510959285682133377295201780341956441789250366316312441544785564963047061912259468384277951486405226930734245392783903614347640516582568028700511490689770778450780251364211562104061151324802399439288967139084556975647538449396336084593581389128892607938036448308771496560182980901480896362980380662705830511803261502412881744480343813594528852797566419876036682718193057763519600055354487246359982925463656146973663103588469545153144885888194505874835863591249292323583358907383101123996481693629057593417784819169291302479559665631886965851008045926606155436475520123617407929818962076038045543273389285045637729356415298746767276667670899014745853603458189090545320593458489453761591501511321389649914398323181233076577613851789512867584000771660486571111987913714894727762229973328502147307020663348955976405610875544565847598852574936753465580845077009610145334676341677186010827927903396036217956072453262684784444194522460501221293760354148267254583817163583871295071496312243307453891552992316304643053533587747572585134966872731824054977085966316142255014265380122566029455542090777281908117371770625171866634722999838099545523659921201705565912934915407591031528302987540606061413557531865941419410730990592121411589780559552888169682209910712008982240484907603118891287415564384991502623644660914770036270112950754893172648271919769537242913966592907883506846937533934105668416425534857593856315934664907596008340562232408134939224057550188353361241898297406939694695534380323686704293835132870941276668954837292581320616040288264399325691345742548596278201366968377790054493216467494266484852205619119598540183594600083661750096181410516896627751938058542125571748327054115672290163860085795844014181804103294779502189400060035565417643725469992193653402678144154651261680964564576622609111377301060313822147199776014900302843955827435131515756830245238919391406945289682060574955893786297592411344807965959535978843946984331995051528009197902274005047552631155773982354061103002502437817037227368191544509002367193580924692092003198646805135304261442561422905205817491329874567922382064897623209908704659747444382220551506973183350032877699545675173492352303246690964970064217618916600824921743548373895981834043544612885156037362893870019678227746426501042615691700497975549611190470177246097359322427462308721073731104634293430564618268646614129757655518875541960436365439769285382387912300327825678531056689413637301197638148065846782283481994850798647115732430747150295024178997072546419492513122587306419492026452089539215325624904138918609599901673087826028189051118370039186188176326557644674521659578948717527038448591398033803568777326392780909454463849039531838751642261195923854897262076043055792967636709080670217330368846455348845975364733552700238763810350320184848179274804774048730973491452931810855559767826056081640185929332568387640884371992929358904612994096304955030046790955849578111261430933232155377186831628036863548056982952669435225127257964576906409461490879311427518578455071027258912317360031611103013731460028415936481492430054438096209528073336661518403655770435578429008643340717105345959877309526594471438923466361910387616688453210267273384830804668290488246649731468719841453055362341131084346724766610131264824082431762773256060851525089420044474604299187064099502388736281360589153756101556617864698682715546231154270492154051224829175414868611361658697644597605647156690486581219559546546762804493742736164949283245270914925415901193515083851887336539674092418396504204913071657332394734339993896651050985289973564317152246125409442934110675580086061208157398845888072492476633134141271150547634295089348843618314728204760152640261031427833343831128364405766347026582489559799452873783268173685789383548583564593925384070716826012529113643655508828546508427053578337638947012878000816442463923745091407901564702271915344530358717318287001680730577895507663477962422271062183225102018223955614395847940935650601118295735733892024142880415703069594215704118321012800415084291437263362658239908255057987770199438683740844193390448728407257500920172627766589851310749433864715502100686628510695134669567301831765127566390844248685790023895165295944408841658572504839569660296430986776226023194957292089101072829751265956993424535205742063625343095742170943964419380889829102351115965914261972098542291239039926205582169161314164405048343597533600835811565014867905684931658082239292280201377677239056323593945698600764164701318773438700601473473229215596669041736870013569224957195792605432806123654479790755130040278852320044360308777200047087742870852092884316014770720059937846824178905511576102440231294598294143225607438817139851499704937238858640845667992532720814578844946225661496538365392829983889503987254683931587684613180394352283419515279306150307167140937331786161870567919624622152186946674046387108277271348543559772006959967807673580011587042602294238779701198811035842621587507396600024143288088917339672757593242116621295767749813351984869016257931952508390458324100413275520205515565306237047717278669218918556943489331719305540927679809404136568132505213117832290228389386461706098698695158982381054516922666680894631223898988307719652493944775940536088441442106275211262155537506117919924583841402808191637768273497394222004777998792179360651223263137350279805495439726790082830272683342193462148932353288216247492781067625292533973488853360379858046981538204693043058174175634207694131482424709680142123354110404596674867954539989945917851913283274721160793406419944950093901850373804700305770067217725144922936039640413693972380955317029502821136263077031861423610411594867047810540835071258319256240205175528549617649040313363407762975760673476523621347578303434037367230801918790842243472273749371028404120510139284745320352203413891446143795332478016862143971624344620809200177575150010730707967045792200426463508047026375871034876247057981870267167031311811780996073261891137927209985763164029250305341415301971430777051511066414304851842692244640482796582267728864616420892179053110085568074492313551548609016167666582292789849751839126334333147585821290128682767497423192159862308124954384630096945547181707175389354646946806660415888209576292029362115486966685083328787083728465463126093216764855375853974419656786524784508549293062296237269586804745170496904819000340235307327533275090667844748553867314029768691602470031332325326374813636134629784039227421114760522615358737583644108484186117505240438075038086330133516048338340073067398464643850907601309232587723691207033197684646369341173350670337592770049260308825827624388979436719729896015148726432904303397119850847193019731941484354584821867618307469907037056973980853800057220859938915895728494717495512744752264283825839805082520649750323810647768432273775285931162186317095427357749415939818262437551799371521417598268363790706662587438810083684554399120756256166913636075577024641945681223097465857126190032840956877512819944965106045805804873765550464686229302336333111236006849399794213342748873472791269074077620638947214930033179695114829738351810399601297794299715970493136246842438250746929175042259618947000480189131737538608924329986820400788812703502488419193705684737804172126834297914465617387975077023950978603479475375163751694728950222390586699151383124404424673702809232647807431538379463497878059061642532446332001683449721089115096606603448756461027003765081522733033873114676003820206884359165753682954015450164078215764043542414596110120171693237703564578554940440727171176159445842845026309553747694994265023111146113355245229416597216880911232997064016170679457649879910620180746760236586158053289774413603100938189051004567284100477955334867069200452083573707273290008937267463012067127292467872753745694135591311685376771678269077165547979722851596798068754462802323664465717522294340382257972040951513263227483851569804876199979733345114467174445033389068021051819369858901394640300172807130340822590093769260407985440288347372907965227463394216320439505573000997886890876328951493775448310286360070659657849766648839983514672160004045264707371218545969412872121181811750243877802813971486795480559874236488538624332315370206577420254130910927897412458608825752659645002696943633590191500524036574633799227108826469348802427138919700368611645645702049341316130290350512610768774300551440871559793095891052669756572232784191238827270913565976172051788828565157233764587014466130163090783255591231266287406980284790591107966244244388014837888717134118994180306710114799897901751670003565599915275392401362458206133471600899270477159797871018052475629948514614278004916721648203152883855373475584023033100839487738149380918320930579021568425673241523703718689068282975440714753333620206579300026284646680497623540124656189186457011874442556873815800882689688546998139615229077991395030771488670349708947044820320684907804390445596519617299024179281681499016306089188808939476249604435500321853109699594209987672221807511675247375332647368230953921196128913698972921883538259782933473941511133213673911098001920521029855904619102911378818362932635892858901714340284405115087984476998004416369202770759342868112493845705721174393381316689800541009269348249095437525624771219180147143618669230032798139623028181082364928391709298985682055922018755538134669964100735687359785237567885712811373537379578790159767703050619540915358136239375529379859219975815033451728741866563546819790424040695347006064116670421467024368358354263344829496028162457395085691758264947213344885648700159475783275663497839528625068682133583746448050328795190882321759340047895573615538356711521255406375840907621539125618839682664811527411394036825466808285506492600563765658547536382499194026162666086518417137002648250686006982416115471685881651030398921053955275702921052708292368838873029371627207049022517137610691753721149019695862744188791889369640505155928293482656896217368321602005069611958236305292291869897951431358393414213892657134156005860744382945740614082629373979161270341353263095722173215135038728369718774028736790233925123755224970365702241169979361214854415820759560939339727315151471069471555278565925846645893960930829005978940095075749837416960401720012449191558601498957007119798488206486027458758370898548118886229477964479193646851457819586123701659453082229651704408796738138199360152692106023603153502041783640363915604569101824459765269185863943163999104737827948951027320458660538866227672892359384182259484363087162438508838758235627473919235035419799203044460166435602224952087737716438318368595231230279370734874733755430240285668324650407431997342822751387887169108896445352120856231979845272275837010240725983732147743495489421018457808709485850198314136250111525739230687250627589375603031049874655244042325801927514341586777844569653232440646920863438967392692743600220138235454416155091513371824008166222935658106531599827808949085382529904722456524977056716168828095574926849346472510023385430266496180053693201868368597437072362452614392138997120814073294431346918526515829652653119948270808265220730029162845787767247465281612072073420945757116478988882411097222313780805093533435208518769758449923387160460537995710046123160762823514434827010138975465183269542103702085970116075863196135912110238083171154196132625355115029746987899728190549947588793408365295415627962079322019369192035725032027239094033309178444474410706841026080212101614461374794132718247019487207690011693183558849828353067283496738338545836843717637590835555429829095208485045499143287179568414428976325597993939187666291710377241810447671230646704947266275843525989904471849544454841981475870937858623755909235289409623946802448996791045568284581336099434814691952339958913224068329100108129507923597539744890954969103475991140839014040096598730948086266212034908001954739899505895071339307002820359863281743577586241524646465127744354664399324877518772621869789681567064357154695093766621540739777003466354498384225972468568752711628301079428314749291571489915615320661388083565118721110522620847915129207805356626003894868777273049734555926368212567684188914043650978062328395515902044687572986387885693902725786209667006510790084436174264190136266970670834163041900707439669759045718206038774492304441920836503777939119516248641995621856970066861323822608505321273725152113573734466221092749454639713570481082963082726527959620347179100327343383710631936178418736813999089243548446269251379432999691295906627619577650121883305632738751129876709619472935896176633187628894679840467300992001107887678852453236475061584927844641478115139578269428636166936898895820227444958008323474334325849076349421635757824596759257494096177087044702665184154323851378538192199016195376539065825439952738735445630575005108621059179610149924179616661120678323635516636578055176451594179169140569588637027556265315422890678455834425641006505567166052484590758276040262980993521286371782901569195815764202245975037912530491109259768096208213333646647827287662932528990255945565329542506111089761768192830232761898886769511686870925622682136790164604517006546620407710013286724230566792906956559363873977226038123463542401495589782197866227756862180546529642939985248770420572769423951117788808314376157018756465145973699792287938470577977596745580891472281435707393538619761048863855974668654249930739765992770552995345585042138258578517368202289365814723936574480120566646545424178328670730542731344210949754056065738688238011627357021105629947124413795265520999990103583998238248077419282152675926941677081835112992147837401040980281537243097264082631592452882488351951064127142680859596129431973474101559404678190456182116542944041882191269414548221699233730535968258350643262480407876290997324586998074608401799553565303858559121134104245678715965805603825735925276785654197277737753590174309847679488273382240409576487687248843553714261683298591581571877547505788495603511495282340062047632376536798826169934764788647832810758613321307776466405661401981007145133081269181370486694454101362171086718233886302871573266993548125461001157973284849901653463768299405032090930862716327390651233259927646840094799116213178455168545393459992820421302117475685420449589131408243589408873336444480207575061076320828232378005464082186813546689076496957231300044437604199345521142251157937314669739243406143064926453143321315710000102578614241947256091639482780724386727588476924694549119295021167402039663525085620678108921384141500144826766933086178433980787938741039135901163409880184090874441123851904585165904833411242533515955835086267478894211106390319963126424077440544009490399320077682157206489381903767656729196265128592071114308499644083192386449948729393634877998149186675164770993322388665581850045362385181984948422463738095802475982183306784447231994295249987629821669184603433052194675396052617450796598858581617731995471293710954830440637273697010177792095665121421898725353458381323298731129361531024738479267233569293742610443412088763147298998744515284834717113962816196447852118178573620090237538906022244519274040064768247667412894350136606246122513223173678761795199723068519691183716158945640464311303342689626305821609263780166484559177671991173182673032437509645782604896431378456160155181127256438436873267922318413784111219584008084187197134575837352807497444140627822718096633045311061335386858389517569881203356367789924704344953722399725014285022372094290516197883968376370313822989386139258826508677587887633253227169763518432208584724794256231023231225589007114206872536654438682963471064665705033044017009228127123831474098160920767277312074945643043268273960584691151976528536755611859930293376101477919355073253453667458673904133330153651183251394862176083411891658670734116799964029258725783922213562065353708880125873581646345481100976503800525271656355415720974394765689579683615870775899648984270627432818967339973468928299769789310557105022738253899638877627063757213259697064173383105754399930556657443559791921425190808001773482177968520572403553995548528649698716850448873382675075853740889335944468780198123779760897423577780005986977123969547786056372179838446512022982722968953616388028727232295402564582424082742621326436625121335128815265590586856305681264368484210903016259495994868611425344342490380888686959431405815837779781612887476766029147036706328252974953388955687541194352239192417192561225811798846538710037218925852661921246222104173522499447618043073839195225000026606313762556698372351783173344710520728770623830588504279692846688115149270077177005238901085611549851872089664470260073941213630466645056960538429335890650607480977679341373764077974839697893152781182317745946561849350704904818920110642773477915320965618298675790643548765175743222177935814816220148176090297545851636650633719028530048311884366570496238652717623717754487658157450319029789849998316188129549411063234246503823616806531067023956254857539724700102996835292171320033328875140605416710296646548722410739336355009750305721574825581742412583905197707127519683927442541251200290745619963170690584388424623716075856340066933775471740916446959896428721194930833456895049183136591676344559727127090736770455648551519934317921131645549470629769698451371111233653897269846482261944437388736285723537333710920309892808020545247656115129838267506555172893297716164640075110491643735732988658292546960882270983677953217204574041117161571010848213629736997440766577513218148062436954647745234876663095412897728286772393544328144750244034667829090175996101448685949944182916172486693831745600257232379073223296810687415542710651226722574143036368496477442499512999009466184224454573622128966498090981226867947867499303824931132038370226766922969503599536078977922950145240789294343407975725504385830240564673680893091043715011669550894599615755998559338870213108671880922495179075597015068935067570797268474409093405056581922140838235321607922658734123111230815217308613311856600728062116249331066043955204505097745927360477530698417463738983118966249830370663693360744843424465273736463541015404966543271750302465339793198357778512179421821624038050546574670934105638308291284620439943359065164289374211985274974318139936829785213645607560541720603470443343271173663323769611383959021288150484156010332097456995210726032801752766650458835151277533814194380982428127967736433198983725531566338562393915172019021456967187777439118567245150326619149146384463252329692508078579912845513906257984247613857752351071572684236829896764570414112839476760377422342633012970247336554880894913861923799910637859631566373352199969176827705429809143659270463069222680055470783361083374658684107850705891272607842286112635913000123537720572008063914161354055374005807384814916560657378876979310563608963787913661739929415451114040169937454294560105234990372096237277278391473305593140607163589469317933459764577777812380233447675418278323744650399460650150842889088421770342116224600770708385782826400143506789432787467848319199475340343559421606215426158512771847905270444845040976986403731632689367357098291576779055533967129324958987216494314563031910008488557609056616015543507515119345379563364191311378803250179862497919809675205589687842923959509114075519446737326766645658229317817004805577336720703246473635225598265129896759995014281080649755114489364897876998812875830494692322864483819252700472277558837110572310022358246155788002464441210887137559478344104248210326055075865353789018620405061432162614612931647960837039141962749429258673986033593808558602954256961465928696784600681582488182923600616331789055942877792754311984814381500272009506929041861339686774097635277569744492410593230818257395527100392819253721015783550505141464235311436138005916470269639895251751974912053620817349653894803495389673575323219745736422746159030002980490020052087972865036187526366551614616275413584634081845020044477791411718953110382003556078210695428158501429328152113383797835179730026027937933879856970779903827202985175813510255727244917527419290373951042574549722493544515442825610533427065364914475878081489396188835529789094766608645980553119093044157687247739674305367361198246859188247241681609871237201849099286787146063739269571763236141398458692757656306669812992877805677156173672863181797759763627542393395474675195048749408546766613680840223869104726707914515423040667935267232297601046312478400384061805747276293599527626085655719001396575917198257991704560298706281179955140847932057335133252401949975699067663967838587114816838785390848448419283343777002346043891089884222436342350440277243749314678774002518256947410790652850087464735441434011720510846623493346771496412208435890446082550565714939263081699980785895017778278410460247849240552171373428455139711646572545560123654494462726251986184402728368874089001108283833587764210998733564797100007552357432156608151164908782640901909795730326700506131049044145689776527938571666812417592995251340617779914365158257086870854699157878027266569396753525285138580696200928263989876829829073313567886387658653915523895350659630463671887587431174617107434852954377020695052387520652475867353969430620285228512940639022415083370888732844616327528049214273408617413030622657731588813314731850635757636411577218553556324375502670261750196317911769614324974523865268030377537428037907166356432573003054659869972184117588676380738074012766024700791161487186027280220196785190660304400702265325789847589922424527697636044963338934649350917877294256249056518603434232484103788850948068166665774140930198425498760406591701989867194120300914492057300428825391245306022989102229746920091386060277428050741138705471387627269286618881458264626740639360705081096952741625078314943444701587257812119394780948155699691407021877150239034700491745694007449994714028477884825167914228438262533823499678463098728783372462285541230654229992297594510143509888205511557763082756312079487937427039320822353569495177396381791907748353615437539852786193573083717604140872055236698824399010583179261529224209913538380072841769177144351537874728652058110626454483677430068837404780364179057353955254196382069328205782359057521328614530642329284991187169397552581476691810435279662220770166859279815565864816802002091414407829708842589835881248287120747295560746005732763974794378907308775804859825321053557212262993168872048975092275145512471727746937172627651712560180971137718328285291868663212121618181540660180764255463836389248835849983356619428200945426955433175620721891109166736656778848182335476365148440908933599132790683171220129299692560465353451957731021182460173284926766424728022668897858074891743811190410204762797965445122363646909135850984465302242864107769942928543824036742525166987892132217255422249426571296656728537404033855994625490016755442406209217756857633785574820895530728198773165994588592001411367096551883156747193337974527122071547660195339379047009991675177316359823935880269906277949941654433990902779298338102154251440362722206322920020840451088054091335176775573771060947401687024415319237942926498398196711171019106124567639635154935537557644619990389262074411785759280843743220255320708708204926282675220559421434383525090481714119686473454303828207913744322826087493781470884044678442033938001025579130269680549321474316119595514728496077584041200074551678408749002445115925352156219771375105434735615986623444736051781692919299191648303519721622274513034210247814613101024413198108054836226296832438566653182095831536999200392515285252315109893856362252430349814583324631046482368760094372096428988602455316040187469598202195965162762668094882026708941174171566486972263757541880977766470958476491944552956995304701075609599796337358376980501011607910408200591434131834340306680179682544752682011267371346539213311660251456251659621290687245764909961503362435994554637521966276434504236384413903325803238265216049336579111848465216271944830767892690817515238846550264487913502850312212774547106456516982291397306096470396945820736058209885272840554847405916659117123755451342438840612913663765907193148532370328982203143393549581959213545585088964848722069307478551782582096046327174742423561219720301600058563971485346650705875949562143721201415796440402668125430685990767173084321912807602480778164839374418168164038567250193886612970090992566875384203830466685608217953658551026432964552198020102127717505678766427612031742632359932429003742357404269618150096655874220700853801472614815280223412928037287458708070722458900962042548416354789282160770034977578752283011678128214758378147883498513557139628476329125888623490323499804877757702714349666383111037838221983605504850014709425079866303076853222992061011873152729332892992862207255865142123823885374900280632136551994439836921247350304298115061332077576998197385753726769112423097095724862962664108739710494412737243666114047342009937249417341278574148442212647369297875638910585308672687151404628777906283224199602341678808427589876934904330013606365015397301612778798043985700775972838522602809852190955193640799693063183526157452862180160105262044001256664011142018077104549484898322012400612430093539584146278478576552097257385811944775395737662891887070568922039857899651305547492747523714270687201936444547204203698771218698454039538567021213605597027037682494910967814193111812851934211595560663433188505918424656002880196679004613576532027127827174513653499171303957198235136180289728800848319998354872536297800812143561815268508406153053165813402567672102921983437737106565003337797474628237943378262061007614336084213184946164471338537038904689260080995294778868814550389869306776229672360321641609695605209834102807944715067447815430712512344406253046490718293581248182406400429321946787332026100748639940100785954134674540496683361697877908784953706054462887286841870039762998993251147683758477294108978050149443182777635163002609278712103278696211442046136444312571926652467851053271011947812519054609412352454439868169592314676923423725284644808259887202826399037295093054273426688771635553733703441616158609023486211988523648018698922936388819492698386133260064995432291641172483856687931337396674164154553887766950895473739377221440187564284092189517827358040596849797053118431240575996998569948400448013341831108137713361692975053385926111393906722922007917205582555799893893249454529017707868059189914497762859534058970512615057358818597794544278426838540997522354284262291008292432036162241711448187782119639495629887294323145371290441238662042558322412939343218908225069810383902059821047065474590575351192785691194923703132972458363950417772304674788170405016409632486784773367235544992794785547916204267227160545831357280914873049306771830460057802853451808889947020493259891068779861361575970237427952726263367736525858623666363532363374124133707270158177421360562596517898324803979428030271480679144984340364104267809536131573824066434004086506996597080490320512433964962441870000814521943722966327839266541606264114417115172209393579871563967197990393134229561409906984385389492613930430368670948345786099363191779369146267487985109209671892358350898128533845109967038937169635185975992576299702936839450230581375631197990906206881431446505536634438553490353108797895673670221517951760263538689316263510264209901758113246734539667752728906072571509679288444599979152668949167718828479562708732822778731303039108868712052391365129029387206987035457526913696227097992262518890011546489347949692464543819615700986723991442185815397173707169915714589902064745743444224953844224303042512887103981585289608516773241814335603324677720229148967045054356490831785290003063383665548638893301155380572218053073101672635624134845718490272380753521400491540649650860992664292298546205150498752575781685030382896597099069349052137384823026265913694434418214363344322295158830824537307303558986827858894955856997534263844060911106926243810363964998156601038058016199969661683794051273880558993649545026619841148770733479458432140939748762247236126473902605547347212006217757326370156989967388450897006637565975821799993870562563695694358545785405153455103742787899626715266216833019646607135208751122192071335262494823277451218065780197641735848570014257670950525719942578123806975817063786697833661105385086808082460765763074849732835405354512798270363207427632614001869788745566369813551145058562530528082994566532966586744790419113326935604126184864403428030301490152417628565979209464319175006616280133439148940107036452285569794572931105302568903490647845093954023985114202701428466126227982581592469386792750696067430120171093110923748143403230117772110900791692226323369924073947889921802212669933119247459551444408989507957708041350582120845401305455764199424393172572178310914377460123886414511276145636248469384362039405250886250364492199775699794975424496837514824094672905199198953398432342668934707287723825178388914619842441857920906664874675663939381147320788787542172557495254761277499014259762701080484568216197485486579585438897282827889462983195052138720176364182941971016593472025548981737958393752941699100931582174142108865860814122349082406265782709274502183729204168948941903965870090130620884465411773140132853291985585612488073761417006817383365991883944370082687507590944056183582686477072181508048976171478955385271614001708534007488447105864360192881493092773579239665813461625821324232631156705223791020501349856435359966230052902856475713302840630813443456395426566567560342825409132277700536923626144887189220632320005100509212768800337400470285868794083157292617413412975440234420006257732278929724889169157142451745445358645171845049582488408178733254607823470571444565028677942499143605042923946165722140827379256182684405490999857921220907378912070106460174975654684057994288215752658182848551498224534405731610417928558673001072728411223047216217722079052124566277231850334111126218042776052579553145034776796545106716157777572076413128579583770108661311063233318470422236533408820218181692371056637019442234406109324672975601735244304930564488616507516210931191724461259522469608142617933787929888477466160104061806612120641835645712871779785972267449074006734992825841221772709858225263953259795687475637063639388256201963003662087576579407092741807793287650123836566524870602035288450817525985420901609083021168347209621431421463590409027454731341944445077436017887441086383178923038010020511212345867598420758352038049222061403548037895048319495077129678596045569948188212386243758706352395893216017988043233451084602091276470205959271630933862449188898240002536197182533917660097949016238271491428213914217093470927084351941002153477220936555733540582104326356485415094319652979074296709681565816269935392511325109527431462154840539483388201750746455335499954079293698895441187845144524776768308284103485810813827400887320475384678170528938303658540382335028921448262074610949792327151254950697398423056272286401408594680224898237927271845254616021879937583440874658176538363245228225458372514718696783209122708719185265724395172559003151547126748348307405072502774089162696483531432648769271430991998809609108465303040485217074701038171392464995252367684147999625872118652882598832649069711877254508258243837248790802547055628223993451926122047163194298364705971627916325538630026044400720211728728825984171165973214813077017012275900553008621498017895976381469709147199129370394453267208644871013751722125010152117285913874283443631285674422194227678215638735136021934306430450445350912792408682526146511756374083585516068620987199818047058322714462134140129970409087852629739156141550294112868903062948921593079923021474876084298925608232004601446518676668211126233396132730995441695567742853938773232127601088374713712844731846883516809614138766889152144485647006234978050423795578761484563034129429222651428567930179614897223083627499207171662418088209538097996460326813631747378436313066337990809166255937916592591390159243012299297579329407131782185641653982073955014609230804004563656449707519409235872493706085624785230505067657110198473810240487063697469920920125739555880120871180103232731736576347118478550923732449876043251343264831322912678256144768719112559940180672896108027817209019268675525821988867840696495084050818408999133864616955970033643221919670965807858766082898305763917146956700842000715386688461720277484568944024864235429138006894301203113967847176183143790032343191883503398721326640023729696893639400182608883980597523881286782802750903576103053869523897412591127085372890559113977893964581905816619252368385475384635368707934658097709482708917170700651239340028091520859254808559891935430248984494322922875752642931373444851744940369162254826890255987482256424461648723833173590669729355486345595788080013585027891727104153093678054523940680091493788471227052024913374502598242206552623616932234074226937260144497403396717527300271783804913166251678917838199484471963361503628305621344963684630988342902112129567432981031294426047968095541577898200216223141295105034242759631611655582434023248531187701626173360247029377006355145933617439130240090182143805846077659501459899484503298964299708015374688143655656572452934081988527491770802989360937518079248759363404318255821144186649055668777607504246045949693807643743476206363633090107548309357952881979481292661238177729879351466806311594203311953959065938177701707574660579501963493385053591014013738436138261597778536752180933744581304892798408360080323369809716679455360835157292410843601105472962667483497141191835201564162312980768862277547459996819408537280881560616072256310980106778120174482566684189055132762472640506064845691143905532199872437195827338257687649946413770238486914128101841958692159578497212849170913369457697969361073467979879988662333305957054001225873604139781954245900563973665200533726476194373054436700000448212984595357962685795125634289612141516679838527179765232669804403540362605797467904379837225130283977211596971356203643819500542562488669231052638030346157474958939096228510645972719657871128910181886591888256975019324621775205635665707807582662012966702484102552620876479799378200040931429178387292295538932159701921426667030547730687873773447312213684883946593809404547426118787572340394312596585020486872444289867365740715022505810279536166143873469733127588697877468518604317507843133751129672982589604000029971470180250085658542385770871606653830514186892761829047359995932395197379603831620859267994673524452143699476585396528489794647492023590587168666952609842070226368830049775197999797444133695654865150840362004145235806700683408289578290974009499509032063584263245366901999972933517252278839624301506295189423070903588872023886909675399573049077094785570643436788688054739226887611654707180804201551163239764049538409276181111716222398816858636424085260990681179392806847948581214218077354657003528066776388202018424302254056935101366087800457544403507998502368320521096612400938717089397995918236801946109474596403504337781576387564255997622264609750741881479988965378227053991293957159473601902010793096343695618497396930200544530746263381807224793599291709198733898293512200956087949852867003602179777597456173183291702323292286267472159584567354836532413408686499328201933869562864019830640715507845977999960407668997835196661101174083087035731951671932107107461558667204712665206546136391368736473430509460368792809993774471948965258819480905367381443113954978400861256350120821603610963392263689056707852992576193330322929524218165600386356114803335495256037046870281381481233876030820137492159595034278676342531716072287282878282676782993412497841276725336182393189949133301044459512860995436577042766541174270642307701914045456213403878936889512932726970371050970727254818610547819900598986443132277595919292227371994452570149671419604174778956677631542552559055714898028224958250449083300955936442867059532101967673436079173926752819722216486334868196567447102354874101076764841783589138956839305166576317000131168778954824305304627250207579444272813894202426894741487181877044999562975322394690544724719644378275591945870339717557695925933837083716316845870321671548993713762995780038230998038267268950293261323640279731529949932181360487449811714224842369855280483611455115617409775540122772508179992924105924489101180887936149575044290047282416166148688717217418152980931325899156167594801508673865199528573235046104078076852281568069317583030482453569331065699311343712262432329123818832288858704574950842377327377433322426329420890652566361747032532852505704705273178719448791998479924914006644930995017584766048453884913712720584028873612686878513418113119163942912578655764719801032611727180430544911536035909074515415125473190271515848076671983562213094163171697591705400988913946244067310455326587132024329491527642393493471173178348818749406423412478894646166399819485927336262532231816520524954745902542794866162864874879885013008681016389446250912734800932459473949005652997612663404724699649507253956882617374727878771338892449144270593673194580648694769343757389159034412130764878787808188357363154229765350002388640132923976314619031637398597037200169139173016682079248957973587893286226773243054891746564804373500529120539197952161421464755387578378540230436054221803162068110755929495082040270231962231409645544525654280875620464961896090956805828944295955553576624272325967573722740505638623694587226033111313079500289225729350664625246042481820826344906298451007593093802903083562640003353866285142531555958747313427437892238773808736833083803533032978039309282919035879690260347567207947733480168210555328541945933622037018091104371201110662991198690993160285218648352010260039602095547197346930760000769795889512447221259121868661850948875187219224898903828613116211317556452052298877950087797854162521112400858312020558157730665244450163350139423268365716343684694636146573318535035174177088863488707109099043203380991013143846498223184841507417881231720933726240454948788954349645384925103335036099118862600247209743480195405029791295472196764730458551636731848953695995651980896001461544334397966536255437010547355622041542437422133627597781346922828495035512147346982674023822135411853267787094902433004924534218856254131959570475295950890102169728906847708650260483320642494270184074662375475720893501732337234834165927655994609505988851426059095895364012648233601280710734875751545836568489418342883302392254050242774956098694932714158765999807338584112610973756565432079723812133547525585342452961303739488761925436818929988365206602564353280949760062470630668368263099948652911573843717012474460240308344130814767285396987991329080964442265547870615665308412150417905184259355179879934210731214137319518389665774117166152353855808418852938778260123938293602749263184920196735177783246932503573977025080750565755377447468652324052744034744008988108292318373292606821227352108355822031826796052266541017607395830991003955807582686569966503736619708102285248101301457740757054859537399835551501279156700537850372102553164575121172924376258009612120617802844123212220720027483121500459942686584288015936661323375656417768948736473230499440263511923668930915788963144828089149341247070528568375355988138786641615013801275843764282086277511231826213713487064792758690591699140286125715300943978445693689299919596072943644008507201404376209916884044856581503432021605847018186292187431073825450210882556155828082304457561802350019165287773912277667637270533769057767037501220039956349603600954607519305305167822518490429065215254824983446139905906727609225440188774909651761841616115976239745524876914595408491775549320951348626093680874366857441751431273943485256454943569692355247868118236918445229395187693637862414054414152273350896815820560836409038066622684666612053392717590397093203041274173174240305984867260994562400717531225076477682238647009376406337870984769901882883055579714717904900670082476387530824697719979290598178309799130163309219012372827409676838072596491121637727585319229747061513733969957001223779945874432279708016446214536339974010369406698374180109211084568530523610500302634924244009424736577015511627583923383193278922688524447169880146537107204737187128363032654308177698210189346494621925585984846344173285447815465916255299087398577734589102955446980618583336409393335885667599115431128364669315784399836019815869159600261190811888380302586246705589346801090086534026508977186607908357286760555653701065853536610440798464264915394074986867185546331912637574899765437595946521281807852892967642269134867059420618834755980586705983636601653768810909485910738446465568763892627602127658332269995500941527112071268258548778019514265949893665900252533988175546013896116527037552176969680584670525582953194808452082782499166480981158600532606647100542533965359593873909559803316176136779436731893778774718403417683212422107306383815344122188641751314419342433274271485685424398038144063780567556370517297212594676450597738163465279922425739380200914034787372597472567470395478944322565278626234863773363002025813046968410320570198024094607502481984348930291476847079752540979404362608619187102215089342711985477669026948002951721801061908660166415418076774277104952866432321994618209732939348949256174511464142352479981867771107214639038937320600294010775789199693470509118804368208102198317622564578485757519262218030113785773630776868252716058757231384090953197505282803465589050801283684169326264258353130121123286073707715178132754168734671004272519774728166675395412624230998643513341931550420183865748998968843762115434126425023430793592488936403045718618931347831020637482556183995695430867392065688608869130338286020089665462652059439196321705544219712776962954137905259739499366043851861249366250246984668075328927163260593217642268780172556703052590389364397207237220724814202345012120135857888329370001962824844833600341737874352896632431843602645920720433469031950354855646536164300176917863755216231256182841870145440086171403550451295992997345971183937071435982809714005153483915982415353121429789382490231320228156914978199432051138131716080209398131824105689771112297879788863152835545436580435779710230372187565115588340765040258396828818753672977682898711732154261127623885854319458759866640413325552725225762622864385340968054463228094268226162407033655829894839801965202211347644044096441526986530070051238291669942344603758037806828591097042910301930537966155305805132909283373109686793287090234673560767731429371220248431978449335144501917209992160608124669741948676887283469956437791170748846649401579411246007218624315884374355270888582029063813222963411475319046479820504020397807268628093647353481134153594312998672758387037001429531546694446489496140968141661740991444026495704769773206106251603606315377756880794318681831447910433614675693456164224192147235093761223145973611237747207883725622537638096809884281214030697361400019892927928418595599549602883633109210878764937221159665133083736953068431460122939648759579861138333466334832801000366573268498836171336559922022124496812898258469780538745852890578826829582850799836326735634208983404008294461786267858545242839795901270686145850568406802568584315237360914801456389179383141521366052222633091963470651075907637179502317926038357365748403517988352642748655324449579266794652419295818010597058439538744828807635152678476316855573037383614877131885509728910892803976862781360318251641652366563160303142900845929671189929255126876876146965176250356425053364417680469131760024124999578577471779603403702220889037927136159714182954956604271189841605571534313662454713768260153492958230417489520056316047221572090006818570034127528120040201453530346859534259105327559537179621438145976532761434124211628490901196885608745713478018275434988336794811818713514969667009673241823766530042686164892260161567395869551566010453800210599292726686255800803134081105666548437009334444211222762118727329478018583150537779007101512552904166812131177855721477236415174446063574413783838124541448257976595750954184797791100608471100522748490024150719122030738121408905991579732676917920752134583563323451543398900159080483608999411742972675941295413350679079607844511891298257451165226732605849404844201021459914341809106295135182814899068956768925434062663437310820521401145614916946003760875524609175730646579899598060558511157803195622363621546344462598251747824845894237229673832348825758042670456972124493578536516546872405763784701336053184328420496447578430215040737893324827511156324022419426512579774740630686950830476892795479234859848363713504327108164968660645206272844232572570178957315340331355902465311849406155190733588891979066393666403333259235130235725166771181874220317178879682571806610466467499869238148820304319668187607951754828805622881548465521690226712591133071550792656200830734806754293661939035436328008030608196408733918408693783037236659332254770921875754301567257897162726127671442966963726066083371390437312888462167398013210706523385695429816454992313355798470788434750486980036888453370668081519479712849157091273981213385217701651058387636311929953636949604021262129589425537353608051739727751556299135667552426255858149568822923026686790655685148951429042591582637988382419567842359805455108941719073195460453315453347373518262046214397403114006343866530401962333153549616558601234389703824085843079888593021380827540876732603985483329136269654257705626324333576587495253419765364971167150320137711789929781358744152466620975711357216169743758826456533933732591993184033359740583347391295123407149452594912316966602370420655075749004438787944620666411091320510270107221495034544305811184931015235817197922069238833037278831722768744961330637217616045575602373549171358201989998812321515563983318460891483886777966439837705281988544700588485053356050607184841331596679347315509619901939340138713158887874989735754889727727316757006879993724423297307371305757120159987066168854704340928331982708931898437301782161508404587739791274847719077312609869865936950312940507124892397060558713618468743197946780718540415712295154758903151636082982042388094672778396743144134712573099831123473056381265669412522800707083869777465921275474770751208716477992430701230379282033270756734739902762217614890044478721167007739570260269097223401193517940925284431799205447507034425030392009352843276579354577577418784998650324979403775503826742062276725835572108844741743035491373488295698754390735321194772193355558341222256403400291993487047040231473360598504400896984302903603830557528523669414945980587636629889784886853723683178169689870423892743318285276197625948572941047988022870645428243638783475617055398853820206840344731495742772664390366225894332726064507860459089438822860990806373638089345885591696901941780452867112679567185964644116318508897637532373781064514569670596138934680286863926971680037443114841897280682037680327023407129236308077767983655355549308715198449624615019058492425229749869226795339596681051797627383377359386396047269236441399791476057026493660983364763595861738720025979093599016582633878453280093157720847592114568871370415660120545539867342394438071881244521344471833011707016609726518663614885746540506800227921758297444270645055340441402798147437191766997724333386248056662024748871367042685176149801792254727013999874038924380279985321269391087122556897535489915188336986587870452638979720526495661658833856339084483666163776106262508963772488726472229522533519671246008605226061453632481098067441225136356093584102207574632668819575942428014620012303648654416844949541515948907151240972245907427005491895751381630445560219614773744611077533388877744631923264636886452269570649171446871312940170476807621880347571736723135573487350887355065577228773241979262128452523408406361516225386421166734868115891191075071922501445946580151222102810296447873164433278678385720085752336423755300121990041217478343369464794420469002007103369162965356205669658184569623339917942180424424779075156563857814092903501111851010819771177092619832842809194715620905980004518137618464223084306286300443960157946402804789156235724695175111156921419097951957819361984796665520137386660710583536380522324165346920968954260964048149505445027483794654930412207480552320469760009078985665421457821806466433420917995404398547755151089573141326983504849130785810631833374700848560399609153886392657674543953834628173747177916216138166604966331962815663852342715514259918421310836268324897386673192580128051438043471866318847095907857055375257405747914484509930160560479996100114554236925021188771340944606312648031281551231218443542689764587340899462095470268995797485168491308545726503530638400910570652638263939601925446225105483770493848007057512374606022365363020834221343521786787799614117101609043357149673967134125231770800082195043938859338876296674133889446559937257923927009333995466982893691699157114381055845949211828483491148985784696822674607470261155098841177461709264145184015203117740112421355450320407821530411641881897922238875970773035439032755726933222676602325510131017075015465089441100325006251700112950054374049426910827027043312117162270392005304786349569062855352160994092699360474691171450167829138497971210903825412261196015013090480470659665752163886249105199597734211194461348926539858603009425669743075278779000028712780071166979139257864978419956008568324159912033904632870538505840119208664618010225170838603058495371744984688002843263980150232534910482244885944856244357426223020308488548141180410878906864134302320056362063770834223919470283679294296243370958481608520811871365044520463246554370248172221403202151697944335141041677242004920641738312412656404091051985540215911234510510920805295052507177407757581018383248945691035147379046578129445574228906140708065983720543938394709051402783107217825497167802703381548738064385735829995386589190129552267024432711242421880541495801311599135241917261153444970685419033970545949364120987130076831369775907707576664098752004969951464054840037174736406768183612162823769631473682925696382821657969241972980322493280266545359242335195476645055053283563047927133582357736675731051863537426014014067955102051215798174411269050130483627299240511501678996451424665016705822452972858291587327542874816554504233254516461029254648778712455532570192545426630138603778235518104030326355378540027726507751842253774665806716726584335361819444454395310862805805755527459795680657650029682549839596865140858763281878767062731113162346959245453501914469331740257117553788059293753458316818971373223208085058807597990456752953467790901849085015537420455907981064405417259129128333652963573892381984679506246109939991473061184749455164671913161072891153286532297996487116966695130063361519585019459286016122499314665647985686651552791359982127415626549614140975845402649070848681261965106899008246933717206034759244704611495257223289427416575149725865395096475881392431444612477667092739388734002992064322395369758797203218317244454649948912572963475334792091477019659805050792660915408787014497848932955307214813130306745910964942417476151233558502642622480784369972086178236671233545904875271668008072246946981561730617911376890602647666955512544334701736385420333048558684353283191792941428566735077520459721474525913894835986355339950110195651818383163758140395279259930803767383046244419531318310514327183704992913805240272504688767455997089944015716006949805885752770994915361357696859782372930563686906859786804091067538841231044703702827110306378309054969623317622979230059640914716631222052206151237846944391099970333045080400548476804500977312692293250053244325045130013109965867925994468189316751770253770099878238075169687982853990302537956585090863906690040237920236555657986470043988477625852076617624133317219422842457284761165337601243132773132280837970234783601561705034823877029185805433063681886750211272576949820722266014244231996670791878100339038805155573235812073812334452663515441647997185571074965007549809807617329993939906437323939165921388247774103399612339779549368424633687782133370856576941330476306405058972373256688379826136846061987396819316161411923014431128138672182331846775730028002418185032893347341867213317348433501878760189305369871421769695403313499968207307340439161426194808396959692502764222653614523279960834363851865410895842447237928727951239283471105129507186584972980620703469527210231201484861889783332181133051275602818936183505180587589206300462235624680006914508724258347792375589206275725399198797038361744964542772965924738971639010722558333999825719067205670582316681846139549874988605188851238200462679645500216658323836927941309089950223454187159490758069366329598936285068048848155561597149976718783224530306308637569552414354102895877853291416998310078698859223440706608205291262523995866935814783272127469235054560703326570615614694180470853003755674466314851465708105813284716899863860630706224407195447201813605926109911125179395093402283815338108420795886199793510252513089353260955240145999702275735150494554870168167856314916738269231862408295719475157691525837921255534041619625193453256101706761355128298758096759805076660497348898356320797742634565525808490489453509738097960256999840633817874680515991430797724436456761977064838997965524485136508031211091362917186051455606627231336248071216001024259428118374995786874311654662646242718271027544300509197128432157101421227488765809884173236839680488527459733491701866317846768712770594284073971586079930622386043803689811547123021666814626145689820678766260704540095514537003034077535959113114087566485062939914471041413229035569430164492928348627083220944637967201535924235481493335562065660961867762506264712832745202645012321333733455346576614501361437376216939647600660497700676219048407891076498752965991614575131572563787909329653642279926257105170907160355690554847773886487296965452688463982196162573768909908040184213144087490414208363212312015303964229590255577301688439487825944258960634947766434005713579599590684480269148480003334592630554213914649283904440707002756009995628986244984867555700042808274282769777099061288695145161671732628825836965922274095368913469469986124703462937284818417230966698367141615326603643464365530712335545205604276400836634264752792703335182612988483747478640138667104682799906903058332654764231809442271394366972615510083351096444300050485641713424478180263492090872580343385173503215697346480782367098969347638029025138427321160540217064349316453939905903214395517059546674932163604776182154523542080156370598883365567459537394746734963594969463561901132360665610263661767195830171319921715123483098980822424932235307771328945045315907555802415728091813790202305417734205056565863713012054851755748930109890947405326809173382207591743118055563960299361173872219375486326207292526055884207108059117128209146375578186604746260870546336277432708918413572261168420518220449528226212654431492223398812184890402166960878026431020405012717352250670317985473864532197712993993156337606413072654145379832430413320153595979174642689034316440361429054854372479699976612263075927040942801194659820139793851539143219194945570801640979220152262287249709796567891561226469190044504077314623586223234426168582478074916443788247107179668570968028894815468300194800946510698693805241576474870227860474239745013903548702920043912014687554518192992374072771639537613296694979706982676131680693611661781248008658718597393199846898830079094355834401363339021256720236842491072516787527596496520114952494154924132031914975704191104813643557853179141718389295603493082967371232027302931998192549147886937467460221707562916383780934466139586820520204705043249183042792491966404796019274880496682672475462903799674126988337954171754457637664864230787324432866393203620106177269968730488337024667148363226855259439556529345323695352452120091639482881418804175871825350090060814741297859640371484932609858161974292067134310382876010467770791530515097882213709141591061090012439627638411556217681509084470362456619553400963314029217096629110827611491194792135806022984705992220714418795124683853411593574716283067354373156327507991799703706346243642703157486970050355491080741906469711275857283745392326431116922276712956245340757935771370023336518708816549794859683601820094904105589681206564862471516265266555494673523979283040991058596641602002413404420916690026571965960367630298013857692391386536980917533851360478402871940301374527560980686052818401077192514766227903031325998361417811472443049801374735151721742181186579700436639487432387713418967323646941775514689461531543669249808831470926090309226784582727610717963543799125106133092521044244173165720624369118465355628059785188075651869461888142982763967997439954334785552722027781011376737122245870389854685684505272951786829742349988247561452290439563030192753824411772471711509752836436235026759272368822319534540745248096680524537460231421849881790370163342764588104239621802230817164330690620130332692802468031289641579106561424452083271821438903974913305966388015588449251187397627272985489114023864893584319578002413321410811216811261510865509567157737452317496732302910676001853509808117094132957287139195876333155782189657896516527732338845830793877336597664070235672483026925045401785331012835582358539543789646787365451682752642012337970684053856313868443195030178062579482564507828489666098300666482869036870749618112328871018178568210026795100499705984244546470168376595334772041258352214454469696228161488168799354535707357314156213265370347531991014241549883198908092991631699441852467760239842278685957730247129771124204497325464458263317339646553267371680254555308488172851593106076984142895711452463601829706148795332614473736627767703933231862185863098418222487577253983743081686993626292329223516764241133605896556053025343208989966704426262499975830576593540426193661570073514217524108340814631899046109990569792771158393529294741241943763475793942810839935542804522326832155315042806039171685950627051716590949658022290962646690318849336158240651122346949815095684919422352780085618220235189537134328853918710711775639540875557163303211745204086342905606219696447159543263176196123679069705078594966880404759355097460434651546492465212761068382026489442723998224655473820029358201996529574153475027486401042610608343944275803969395852559281399693032773067830014716046412358339401706699922559621603964823673367636523693232596850766091277291640606333468314978991041583178218674889548655408406026051926302253035149321571024758920546067274751706259935787662540244472148266291246216398700645221065628335328829279585069780288952975387586960279093651386774617227353238482985984881765867886607892713393164695944976340170399942164589052161386538095173327814523681600430694226826447126712406458306059902600062817629021635103345561644691137394899726229947337776168353930923303525083301088578186061083800229567711927697774264518296730194266103252985040069533888585410130001437944355209580628061348069862765045178753754305192244921376132564977584594758691552647275434167219454597520134605792996580567490646210728087527784675603214821873515573923996077372592040018151001481446096152092252850624665853602682949204577742227682996524931512705451635512894424097681876283742740568290107185808229712582654469872692440341373392626783879854009366902953150804202208720276248386078169711552237978784841559876564672834649422090846608547214833045353377019582594550926178733549981812796736875474461253879597020721678896724131109993684503554940999137598260370968159109247802607190596017207388363150953045973559933437660601854903216745856916261947475128517244623537402950419190088020888981660878458154699226575758435511838823679162085477206910947793654637274500455611820750029812219190325378338534051349052268889263632123193644185739291365418984455110146352996388474764588639109732863209246672873114333363091638209174004685787491830144496781934175886915423249335554942443913436680264363377256376534942247211036693383983761261203676347593119961591280840766802564120509328551313385342089645199984375805418243869642194641396603665981550272774536926086353232608894895322160356716215887122148217720545579078784394319327251091441820130845303356851985400929167874961984468177365837525287609677195573594580504798968122434655521481119655462876437493366518848543461362259418411748535209000771520850681407549354603338283948461819830184783086441055694306088842727913695289288684072020416162774203296819323413126051869992213417644881136931006384065415124770389202947371559166003412511829903789903149758673133235958145207846247577870245352251432863348660332269758431183969243629235245833027160163955627489003115876306332858923743705910072251422353908612688060692499036941216937917673440607487666829721586999444848182224114545535256089567896874889609060262632186466220279009139032910778918654464578508985491708455267622639739117817818499780991849154240612570488253850242834468812933844185863132904987994453391169970539766613260845318649910210483930668491613661232390646840199432824937008710415145494595032360029295023382039450729318184372788520342840732468588239613230722128897602975995432498524383010779360169032897013906042685141644013304280271744019008629166099674602454848124352854038930677382933639332380079550081961305460325507929606363800845316798560010467981101798581145286646362031424854739583181046845021686464345304871552204436473707034184170835337548254932673683564521376722976795547271418845252556217943122198283382584477223779532863618470923424733182283702739524179481106610348847335562137143652561698700985320480552494762146044130579999325015504223598587572634696240356449097474294262034124895984387218338762181503408211017150957708554285039769112567173371284313711355454296005206837608136347355141080113506887330209388939320028261661543745564653102596939730448354227680693386826604356428978221518391591142644241324967440791737025149771359129877078482129820549512481150044266448557163114440977622962378927951646424727980639748780822900611388342367967943640361104970305325345676863570586939474879773605540774900103821009918301876098647599928053310255977726372429415307749171260495352178536543211708040219724504390548554524649363705251613671983525748734041798991587410284240170864639448932491212468294870923161626715464815713527268749107803242908484505662893367531868293423764628992475499387105606916511045545904438764471918395520946160570398347974672892129877443531163123485954065938870666490890935068719135559067787798938554461137354108946948713351767218332319701329121423981584849361944860604122357546997636537932761215546181441983550784558043551635560015860560100366427476676042529206492391103089638688546207715193843840060578127653413925957748859940595802486739363869156632921840134133043648054887090262170613710921973096313353687805213443330288940246140919690032696327295838105991289338099002773436728834895696672535676523398890649184013989830911018706305824307939738406158945851981959274608149225928262542509718456669665338032900519129101246424342264407761403634476671945310422432863090957344817142430731467698912925586932795722760344137973886295503092851580153367259886377524202287813057803095004582137206830609892791755559942249289163928833931733936716682914381185281229800184421614839181345347764433448307210578103354015894174916510111926026751525934865920933056971791784854571003753423800422519479303285219444078645873510577367743686216008959783846739975082363485089649411575144251099623149183502110604498318397304874818326476166814810400068229145941059957782847346615426092534179359772654489216593117923043376979707110021624164696347581847377168310193314389885069595765878614141144012209716504983946910489071861494810928691328534924463005768309355388570212782051917868451041330608980550936105561704495041912573380532740672492836322727911620941346077091810678957056565678866052109718046372142690418972922833206979853342961975757564766415318817259437901613186657422718858058597784900218281970599018275114405150279757762441956074647370295000784290776920599112300251538935737190067408099285800836723466878402605091079550823247713193323097472374580333938351690057653674317434525542767950894629269202158434054621517572162957932898872116679162705097752527361669739927728595477457648391840943325496311704307032403433237673894241097081925145805698769007711265363992298616629648044081111395012603444032272031860671873892115473935835301359769269852510145222955652698833695593409441231037235742781271386721302708604811572414429318604047271442898920194228338003550567557251995315988469869956019862386342548706409301144776376950829079739098069378783991765004406109469645527098845817705831315614804839199985530850349518917885435916127129407337920944701152860289422158585550354952891296134371956551412288099384031965007365195513465766096282357532011272240939790589777481195587405994741957173429915079710390270214122960746527874190810711182447865093853849241659714700933938804584316534310615721385681933147827230047139091339157277979049801180328323064420308408532837323120950395342102738140574338155767039959229160068816440624331915803099104003146681062367091150424594295880606169377918244168167588769637647386539931125103153497487113952646740836829642353092240333805089616404033293383510562360557898975294725405810042846754001050078917046425932364188314123234242763368498126355764672188856562939451752285208928981194850086438092985966716727788124948678671522037061234424047531460500415514888382446541688845877801035634500387267021859980335362967108685160874333651457118963561548694613057719794860620798076917755497738458968423700545275681186567213522780908950379084838729037197226461223841675458305454378456076401916228355424866461911838461721812466445460532245526266799088943653453633537436111086333606536094530753601985688396667894343146277880217515969405091388669955325122214081219694893010144258836563520727659780734214173638363754454380765061945830520826645278826243534776302073772607783217932148933433122896961148023031431686428583998823053174247742654486816029571204202748226646280602688843217837539858771269184959245318705959794758251420826273563236415269669888837548300747360327193204507505425455509490636093863764126226079757053390515000201745362400023440316783499611093968882909752543717005751430402637711373060158520741498553723066893233404631587001304295093576068130355974243864895924446165450514138174478678909875219667099815560557513795354909000616984489090272810510759825320676270777141544599671453380999287106703199307760992601474086655530184395534926702935401117798745901044335233089845055433557983323393741141951937358622515090834434728028466556486082457389561577091079008545988041071163688453296217822718884055726407752400301831820709774801665910685930148420151606013461591109387451242102420590147005806574044246264338391555930925821139405537130660308865918968549345324874208526448017537436929268261402170225025837096750176965414088599686750075760294042766014840271570343183061086824462710985785111988063598047117176509613939465767797983985616432183828776641130344287668938271743443222208941745561685131859679799098452616273120312531395060595384109642248383310456265181783578496423238937426358553023429656444757457171784245211794895179307424789479162233795406770169008277592209378464973977673442918374107180643009637579901255080682934904635331524768560425415006975058344318080593936684265568164867415135499851445979009810204533472446261463197005698969803766122791999947092101340555187365461067909302758709089997038289595388163536871748466917752110806045885189244777304234587845143013724249008069611303629887918651808521784763776268048395483746687753145198937988130220654453962168329092148935557606406400481013252333508640289275442438320919329803465585953951641045559542953580933437721942068183726242979080045427540837758697044967800708937531865404813741397858687366271522382126833441262230985050732143786907248844763961944838277781363540742927390000424380750489086732160300836168493761178542636432912000234141449532659922328568479803291230582273414874428345274358034823690177785369403511792027436478150683277435267233374061531120556885977405487124659515416019740330990318713371175158824961544189789892005218931378876205415312324996386742315380316554749925405996193100974386735782546294370277143281616559538639859266123816792240034829641028174169705360633181580468920790721918939717359067445712840356075709125968505288570742530720883411714356352530524312555462467146915263297039827018429095332383854571872358215831154764878077535156273062429599241160272504920901618909436267550934795242879112846444072419211538829442408918400464231082529983163491626486237096981548670415275926288286827480378849602294302715136401791125830446121202582292990301831394450093047648200044789481189180702194393468855598712087656042683852678223180167769227519299665533854030283867176025938461066140589992475849784263505266788600025812427106691348546474172214032069025255269711002830814284989337158295683238329702701324713598894560196237183117390741673709961583002961255808791180961106627202180424754107908082530570138235867791160023315375835700370390218873800072046303249080068310664209112931245685804433687576962625612311781803831905122127777182595003758151891239269998358130343051962701260902494743846828842023272040486304892902970383142508868318610294631723055359111105529314587264468802969101041926434793950965792929482645940247794215153177643793620159719719107879884091714781542231275884590655794302079411329720469092792330677069092927686928752891966651475000452497024402426580855746614795914083474555858078184766477523178607796319489330165536454759895883870644571621731003196777367649993230938380366159171892379580312654702542198636430540033218358697653300796641626450134974349254954905768539112338117152208642035953996091216292108994009985218935239092744019187015647857217474751017106540889975899020192334305391056496221977650133377181573041605108778071861565426726438400195572503062764470567260682082115989721819986636781815474433675497448904253113454167560351984027715903073050974310099473337004237674083202475344619111486595127980063106570686306388914403920059778618430714850044930683993054110653371029280531390260024035672267750105540993188637309259065747433661894995307680303052865820358424120215182981534452324556106013265877516196087832031826087265226988949989838325915418328616926592699830529160733145363864023785464114835528592460646185443999664329895768958009264381239633800879103371916820822482200902978197762020385052809917317478745720800029569067990231546181787848396208272134235253303856073339761739798300237410852687341790758600501001971043352815550282627874740780778902488931496755145862240027815205291726834256789573288285121215607451900994267570744237271732808620808642438609557185146739621959980161630011912490553280608173414397860870538936151470544262864101553724451642135966241388156451898908943718300823073534704121651265936956853662075430665580855038500391774289722884908267817962486273747780414337171487064940001911705141146999930470367383718292066677199177029024886579727016967179630839838657505884841218605416771931568453950194191607365746167774075198404994407823012316260074860451271937329633645292507745206530129345224602993425927467239130702538163413813750021525247605363381181163140569428647248273141369271989655653689342070748062141484902806665921725642445911424217560722390335519379727912194953835786788881907092556023679286494930090380566475470214094707408000181527375253240425861010742380812022491773946800848853226660057660146302186224186922866276794591046792657620199286480901326979776012206404867346048951313583418388805499664617313817233533982889241773764227970931139045797156486837448035043539826713410127349893598684850906972771101550544912706102828081363434417891668407903063393197568540939691484865735442977308320178644699372302727651656661680106279673949880565296815767880653275120394055772412957078635448372306758486953466386301977356957627909549536219355280236684555354333525513509769236433352897325552989279355014401943313255603149939686651812589341906167047321659461279218471021543227985164852015176519196182741293384333116505973431072832918867906697675546860776453250877110250112690205860088913990379181891544059534431511503158840241666416895613757105923774594487043846302655178096392232441881137871426205500408007278204061545558488909249622085754916659289452700751182759022577868640999534751655243008787094309078308320930561939743128855906792090821827947233149925036161339331248557504870570543475140647214672073831017797068180981845817253288061706117007508581174962818351976857402849744940895076998261213820632778230960877187452465990140443457231774817565026557532799616968927807232039904279273700584921179722144853858642429705194827726792542451537412348078259690051127074767341927612499571527324385670340238485577560084455677636405272852751823769778612349573692767491107118197666064593958417121622574831745289217133305673196829284209563501074897662269994877978160709654736896999072029200594733064483345133056238813309952743384265518704478948776888906072047734225174084122414447109325616696137502018817957946295881071382262948035946697158206764820831644827947355040999784900323369140980953191007750973925016649657987295447213666392262622762313216814276454752670705777699155516352614089928300268839855097955893582905962694832223485173881949635300225912253269427550865384167743524210246822149708565953807060022126868279577280768076657749458112590278645660451384666239527917097898873355578980326519040828334137026961387499581207620709085179062634969952698494108824240187760685859055834730892978607046053759774780704095951811349182098962048996643258391834188162105571186425426112048171619629014794173544893917708686838948232637853988186332523400103499388231893629058266581061323796395451772843995221643940020669952877450706853129301472626853491173066851158476638379122641502198470650170354315698991694334831932024846194912491712762412695370067086022709040731552780068176340709710367021136767269916644250056220544942434131013087325170951267121109650100971064750530206397368210477179908213363166080728191977882900338387730919115618106383425736134377877678929252455679346371288727470962301636332164102026479866535811381306444368705207331567063979476342568777379985989553670973498086856386865553630140403432400992683218244183907329353907822111427754581497926379661278066539716403494915255085434201901031483327797653671221482660069386189479091550300225751215023938199414711136925267448019144645704162357090997564116665213429175709570350504156571431337055605492700179351398309027560717185523827112707661229727185996336062960688151408456079733881224721530319551605144946913137812814464995653504637275788215697240099298660739003565549367363023434602344248627739918160501707465662482571801653910152026089757113081897470388069907695516412034804540889412811393166607457852653527669231391024038600793272489593369695798807914385857902128958489066679454806130097768146341967830480781665775543220520677352365332924271925943728867764807297326118089384088575557523713343862028217278855546032818341829299417367126545388908997711514474007437186221341544603200571853850768187164123005830531765944140210563723312696822625852113670124726542000603506838502800381394520050155358187168489300956237872589162265749865222493853919570266392794578679192994755015968339951467776985093174931294677000574011234117238062408653111123110858717277353691092717283259880389781171897602685407989989590541065060670988119737018775239799314423895613741092269664757093025908444297790079192067591162700411737826689151627144969979460944667715100086747820189708748376476588617888847564697778376509814281740256637341186106029451953253439050408686101606279576512051087340023203241637975271990718163007050905171154926875301200148559215818972337676747051309471172671948976019528375520885613741666538319163291950951480742190286638371552465092357515720940100537490246327287020838000780810155164867066775300199942302961439416163096705518994921045378750868381533996224802201954216689290975425374693392581854410713753691602309769672186273197076825247620993012878590518593777281901763920094429973499239065902837623005733031847713742438673834308806042776881465007540670257618741585207801199522763144581326295945402103767071601220494984622070463984660586185289367553418629834924585803218118081651483111909834883811777409222990428292409766311914192855613290501485292413253113708772660390898649047747346111539793689819366254484936156426887289915914229443355037067176046210858888953331090625015709112571639331693303239593416309170346383842675352368710981870516451253333616278303779674660323568841985886256936180760143030327828585202241069889142327142286381288434866440606973599012422873996992113870310059093837042584210484616823644059173757523074639683740409154476758231674447148008473066919782837849086614297539562269598796787730011878858894339599936643513591575364749953504009906493175210280734827911778651142384879748603251888505912512403649404881760255449398204446276239474559502735386603518110358242444547392008629416880881653422560583527558896772826121848446584638561999897957319167709431277911308751093291550941341165079326169042778827695083297451854063026388415513508883428499454583779710873385098203315604013737387747377798448927220645695257477789357379692261938687312333920678864402685403485455792811504017050350926255661463354191390983049198356784615215906378350272434427814353145717653734484193481468508794009407006122452734446527025127330898923482741020147202862394857530328286160250404656273562171009110450652806766690119573149809883496146771490157267348569537943432841006413522254568109725558740523020685997700147558818076611721987310764585346808052857233396135868455250903117755710898573034672863664687263668326372427400667429971392232342120121180450785414687502095866908792280712553014348381813889665217027755829902682437732105769321658397728625580039648475127291385550957992083467449728920862330846011822626410856263689646484894479692275648739242942462807079709066066350533097978155738200015957359353302772098333597192168371813991518468446959425142196956498140890226220376561041268470224486375610426034876457173149668755128219277459873826297627296620948515245277021426503977468734086900287646583825097695201939832133353889636496856522606336599924768381797673956718847154720001964106730944363856406775510816443341376215435835954577948058191559929347503696700789427459225184061661384951198069594808362626217086146150186892976068849243636274686446839098671769730801997369946920363532908744047334874262510722396195968215132055260391686685420860051553172890414735779238161227610534158676163511104268107044099096406459539721702010703700568857544692009915598790984610049529718813453054467145719815150658646131472617755952955814449555251605647910207367349768009961695634620081200735636091277907036555288390531897531920952465595233634827570339015219764427421478525865479119355884583927944443416489094085514709087442576127848577955014274205627405955266048448114964585938504764846226685573700394366477232495192615550900953905953580921732859103063037074652707208922176890012575812656340706976176656593267264041581557349810673923689161525222073881642626008319139609427944282609225954354078784151117172335701369342190823492898043368558964982216587871933997898741709492268543401455335932923412678655684392267775299630025903885134563823755065838424196958723161644615673303138671169277000995403369406810465711318316911666713046875007261774338726872369328572720482273333686166632014897567309973915512696358344802773366271614407080961596897287792829927590996358972221819725381024974763396031173336603295287513390762378119161033711185739935871154133231254733900054773957701861090972457600406471632965254649701030433434617748619566554110534382576342656758488050554722297498142067111989592601864744314716062910055361054458052200880869534071195421107629725450763843857191810734258899015048866019650882021614620885597099688432627592332507971417443370267767674874976203449889162026882235061796311200953930243762207029279899789614333361359244203267132433993540269758398535718871175532145186898123630212476097621835032398114403024901359297625453813679809395189179443629742097196156621682042953257785304277075999538835178241986721323847358427354586688241730860326294896956629508872640104833099857261885156310390272756970160125357501990581412989931248817672982494797811563706407604639478774766859479925250742772062977250468233619157280053778676171020950731980277900311712624860260098068260939238681988755726793709750955710138893950518139963501669958718770684890649754137172573457439999245412594972121958647543158704976218998695275241926362012100737526034228683144952282877559330289218217585042830196311282890657322794117720426767423173120334616203167623710337548044759423759698017295264589383600664666455261311537992018436709670144418759326158648162557746874515120711832649952301082308306863820759445758809127905885731226447857700166446009337103362796776667066450392330363501327360840799044132236108093713932294328262397023289781221134400347647595748130882679825836835329113037944334308646582210844582126346154496360882393532125648133512324281731842052965645580792672708963169264132829384623900488572742685604424229152133230735165577507824138458683076946937064496914461257128212670435601720712100097759135965490146094719602352703177325042999644597111368303437729506036771105350535908920304082159483122277214950150762059998357236946999859115107256747290335908090067179416625908169895602386654529317492167531552028962058645993648653592069774407154638855483505049669290778422002041341374781512686182234572334857732247049698663171368558851386743805743420058981967655493590396794294544167803877413655926364277772666808668199943174787764683612382224043665014992595150617017086227348774250043198472362727127158227533071601773965062824754371041751094638262252215783782512204164821473855299908742232067967578752220267902258525461709773089176594365152239376209252880613314583140202587587195234612081439157726113427463543764441174674291610893177409851784838390872446973181449269493958753883960990848115290032844093303569289988654023422655589591630037980458203349284297833983088135566690711461381385614747904594427275571844514941489946812782165401766225403338702844522918220224881675890620148648645560807021694579549139162669750839419418803233119551707669853994867993007182516126286511178941841525340375452725186172205986007532061455462184018769326648593781263886519274843524493453527682957217951621258470420728773284236111086688858350631529050353037083367639408481040858150647449252289158001089020478680544170329119899202553663397326524807800691483246408970992648811377495264694579645869613771525604055318346156307851851323180398276212904391553889440070150744976443585715473625594472579232343416465903536704314458999280679634151736422557179524057723193705133267515575288360424299128628667399772051190157286927418394177694724666202830304716652546334352149141312463588521679109600723118052178233270153580592309558510894118868415069658990086225555695066547059235687824007791629126347083842828805492709709280494749266550271837794902447220113893937901017469030700390436869105397261367922099108717984218970821658861515883790679330685276886054697333724632809753225428089671775968352324626405000042006995651706404607671446468335482477019490917955248083844645938952383384319283732454869034399018481689408068054909643495746454876256136270806265239455526124564282813330930513981494179231251399093054208406429688489923050224335016165108058602132113380520137658784953131198083654597566243498870885595660040785979157078208402231340955031657382833789667722233344740696422611493716715790306779999726023690346325258425612656456609138179400247514662217582144448429631004532957244290806241586821680989347134466067761501441693039616647455201995032837166833175087826532608007756133800084645731651872488455003648914527071479086047311899780212831503401235197208692591350973352055084162515388742893666706087291239496111067290323481774827977430499430066497611353194677750861893668227796866720274460516339582963244867822857445673729912119745555440569596906738818348382672758026541845899293194450811256789755566211947158646359868394211472713178670843680573565184010322626801426955404200252945766976527005588063835094395728620705712487059853831174186558511139244794517217925061827333736487992482742606911587172307339640141109284590973416504511282129835077112054543059794831133244625354253197590624936317648512230985894909716389038447393311017511631120724706379082845137638887453035632320534339138543189986993078828588774434046246886349827940750495919939045385656772044600199789391059359760772297925561941258656722576784605203686909106633377132485597279029827099919238519358525766026236634699360048339614549323322453135474240656501405605696942764108888688706249266425998961227137931928115410406491155847489146499056552358900987673329280200783219684752514195725717372835921157213627178385396425631813390923104214891645668874823081423920151552891752672244831031083188506993030083460516347055472614153322745747443877044616950731815685160087422192540048079444068775594027268700893500077536419160519754016728767332772255504764425187468220189526611191408200014005854650688145734083191694045779135969572556939638300174977794503907284058546739234092036528598883092072273135952794368737338115597626569134018857243338751615801152359355564997345923883751403177216136716570256270729185861167647269338521154667066136733092026235048032376748618685729303629371566352687079236974263505928351013403590945797578590281781459795436254137737963747832097614198194284143981804666219958161060025292100575094115108053298927146850166440727661621235602450473627523453188960137203148126994222327442299763139543672657876832972810717633414317103990786390784407616405922063812857358870344242723474831433774641452805316905799592336756699212575959916039954604176257423501203846034335540708690302735912458147422280261581600421493887695391967179890093549642283224857828097227266088180566180803677086331034818691469515586633628840250780199466505272921476298480055030593201112548017379689009203974367441854114146164246619023648198230991173198787343079518299672205264928403569417456861626167592512840964332596747345683054035285687920978512146766700547959242913364245237082605087134469433683273155701397818181200031991935371919659651476024556428281934617199535400454488492534762092054434383749127056388366635762637376311310282901495581671016587289917860033190829678660965972979963174866563161401269878269120473700166627885816199962917250662841227521653678323928266846681227681900810386760796613583581136164196186670192940217295863963712507048882242387549891120767897953038354266678389018683794403445301851011233534790923546726686387595823560267295068597844025705585936323844478538663326162177054198053255297314088682837426406824572760300454287307786034140842788946403189629150180533857469078082000547612072734548099346357479658835070171491615839338598947718656620095625582852907845741084817881816055808851290691264337370060892195053398903706083052156406391619463055122885315323482863494484978201898995805040735898001034977997918686683650168740690171260277025281491258115289247711983742973240139031303512983791839338996041379961739385279772161064697548996251650853599212469709794889942736066353586715029145944541889390166953017174382372162157900458228696311859897443359957014184114978041205150884133767679098342042543288172793130045665400043927010104014330209128304809993584483022478596745641718485912089528759537985031730571758702390260475609072499954936432549755588509126126138346181730126178017006468072375323723927983390427141098747270550428229041901502736148260586885900875737744097706913011351921627625276450847182718956821485521404167251969142602634366424179675259492552774348332766256539462936178647866991520508531552425580843270131425137945884555206911604206062969549013172246362231569667073177656329403956160058032585322749894700633617565548969649584119908900699783185606528625374282751167311064667648316284705265317638791361131646701867521957519152072598581054104217986884396781697256628801813117895787710876353645583463856722993275664308313154166215621438456895422110210408802848229081083940902097407899688683569465485991937489010601487127957860718080467845655060752888740340206303879027263517738903784206627594032930712658316285832091077646535195908398210035158590422206364283728843070295111270914252360827199932464736626911230416274538816729083472403366424064948776246859691964861462650195444048853792105390835199170611201565953673946681030791452312930376973999203031122986110330054781154397640828832892225869335430444372980278963238737395560766587868843184085446691740501573703183361795171220318412977712587070632699231396564239048851258734174700404257439052936347270669731234078894786729926234809430165489517499594504636129679417844002396591448713742317060790598212887247298536373474132161196448500187672134449850337087898516866772006770908180580033114119368464626449564978377034566500473513344866368993060016775307829876861995353217823348760765123176198533473248512792557705946895627025054642132670314328089255885419973483887417252391458448836261160257383508565547200379472150889027503700220059300592526410611012903353722744328345653016393058656580813788637477772027911217043958135973177695118752781203924997560791205224639318117277697595656895157747990056218314041498817119615553978021636543509046246875962573860032244403508093690912255398134994256620585659278545344189532558002483151023340763903416206343294021275448074306258843077474618394962819947781545707456527478220720735057225791140449705275413487342986034218882372108519827786919199284391299051630627808624688664296599573203356183430567485817722285177507343471679758604728023805323648871076971659044248903492750644128675987500132514476093531344516791393233951101741206126138555196811649697968305640566583966299275640653446120746775491996992837551988930170931766020405889786683913241355037895096053647959803538584263967269440360173011200402178274599534401577649101789401744780452818170948774595592589126708996463357863567439763293091262528276376815309680082201658496814198215668878449275863647079099093216653712041761991708435436849674868852331053834285861922021734426287054704480446757304094251457726269984212846238024055408491821359342187459782286714592493304155389865048649835868466675488182126197702751273432152757437840589798209503608846893633779229288053466286240731068973574217502126313681282019301246044217071389279426625520619976927295006814700087823737881159983695582113446299973228918778897214529846303868476877287888638562727023829714226669150638747978966275718811655554310036414609579293240422748706777257589148419067707716850746964800182057135560785095849590240701387947178415475056037027598587404985106238819027997435577649560861938517739993232102585472287895831673605246804547760177977189608127091803649577259677214370783633259170976260179211486094997152073995956197673115758944534039067139242533244306094541930106286899969075100343973605448183328431978977338823350716536636749517550721906625773837380045179055021816704637597743051656134204980909334970513953862411698787277291080814374039927685603512648439457753182982918632483178797111718130388140354884539998441381229675217335695164239529508363978250619530936317242767176013625445721559288383840827903395991791401792716395317468413103298333819037795422349161994108692846327428554997504829945060617203096485620979078763056859354997588529386209365886947959248677622899224980521360409735591003555246583823360682766481688693610840090869166074753699089047802689850728552129029736668363966222396840174568459935873632845741623194578418347121652915422896230870541988506880392122730193522851802772758448669110865502050675765191691741145539416232528245539779874997748234313447663901725597692958362145295650067496986776226289719187971396631417475950264204614328921617571105154629749679934265178892794340451453937961758633055659862397207974696082818505582342973155084413698567305849468089134881066932113053845155930279352428247756703094151717107823148894815866763728860699711297305010188225553807101108149971625718816758752575276150387294273168439077157615270260834726602495183572567263375980121171320441281858605837254495925469217469102590198446822110828490128725296519697387787374053712003943351106877223002809769900991942010007829301278652356980832316595376311044316224169191354083398199765030486305486914087156449124914794159160706909691215426207663203924127635346662290388405695899937153900711569196718075625268689150507366056829301776421367927082644224845737122001184609636687692834801452009137919717863108133047066051566723824395998996638506924896424481273318200927526534203096820535212365031671021567032163718108125167447252881950675978525275816185938406638847832448750457764648736549613215353586611609445244215069137864284351613672171725671222266699675998722161644516042023544432604434181837510579959868191510076945347480567390461390863705428235632712592512737372528274968301433722507865134942178164076527551679625474202897006248365343875333837857509197660244886111851715576811488468043797219524861897004786748204750832783642768042542136457886463216137346500455002330723987925985846601577847576336344269527813498865405755315420979178762169859660835570447344679597268192245405276030880429899301706329636617683867730728996318840464761738256898630076026365889192474025933212343717253213376957044048309742188896376510621040670038458642339143012166700559350634992407719428905948526287855490503454887955975727945913008653827232416635075248662627714341386310958234698306470022259961738445798150190303403681720936770475785232840695907646472063755709975634577773641624964177109000018289306580699823087773569531791958844899631623895535453871846884204522141823460907374523459671744854678899064174174581342566376209190490654435968166216973088840765986692681361077955729938673999051970212249836549434829423430599187041095799669290411197096206510246010171623843641891434106751923820733919304547126500531039032209522157781365127382850104893834292308109406098126917914658660343203637135172722128265566093812884460360999975840859042280331689777199319932860299001252887552026330469812067720679116371596095428887585990349847839353832337250177678669422424978230007368796094123578166997648757597396928016381414412769376762239179060757593810414134543284087499831854702714768555138733533873469636830213649758765191355958380478319587192979741203077598241290052016465031306080358963932556230505126021074181646860186407656970990242857868100057756854357147821610069613640257204446160298864815636377233927319030934682833789167034210121861339529322315827234372971808920363791601475147498132054025336571449803401162903575681594150218167602873745138858222934391073466880213865896229455527723095262111726920245361393736219306026665913767601112873467682243113927586138739747808845742185540613970698250187047286533126946802617661551787999820117718028529760751241098340686082103222240841673718494244937074859855140505550738509685880612208206339271085737968087142821573602757734526299405768929188756676795991648327012120706641713204799059918409955101008736226134131758978500464370763761383675018712381648948773267708739106606729376800722102614309483237868400146187195501779400681365835212835431645637280101180528390792627302435035361681499796861070026201320827616441827505936506088502992139026828667992421464647983571773814091613121476517103923240725479750029146748244367948722010272261291054557188100953963857569066757286410534789104149741873420693915630965807420527781073546114002651903683398677219135856478394711454308797369448262271397449402634360482126186309972089483745539707157020198612008149625111036439175147996634840182960351445898750146478865793948445652651820626006218887553653094166960725479141640170558660988297371961820342804703134666731036147494306957704929819532882968572553079509694594941467021194092213670876222831289662770106703453049925413153372952220432925509828264145888973146875397412160747808915335359815027027326392706232512372557615724289855858463525438229148320508705881284005074161358679101412319167614493811786392719968838724985122080412738991587928888469473130554874414602423885902905170307342624295549103191942665248268023574661938511100221299239127674474493993719273676689480851187502862207815792798104373211831690691682357053850722423813619665698358292577739000392000519043429648687818565856456806172013096556357155413983080728192251462186757220302177036481601760722744311588570984396339867901659628619122643884488200382278272315403720412606346704206740296901351873703053056394389970416084532766388760685024658569063034215665484095226618634762094492924476135746368370936329331771966066441389876190497195062949132625399174460999248808127401348055421625857701887218195592237938969913147076585428114309555954620657121415275947842368654851030634979102713265101989089732543662658888160532490963543625711914967178409546194207729391424403258802703201434223257795076940166168854918857980444399228740798344203353407477385812213062084401423083049298229800889184741862283579295493609817581201283088782642339033291102540693710889489946023753265489033317500568507276396803034494680871730626203926152901998611132346430638894920077865448097064290111378073477934957193637454970549606391988811151279607331811612254217528815388420239455057011032833673955595413033907795850498438201349422621758835369789375996205967047258053641412274378024555198707686234340128222920627348965256308680043399222092530599613088562568852761680118419329457861265168028987082955998968270022176898283997094494891566483880980407507880438258372042008178346951806425170097922648960204686503278195737344721118209093668705411589657137480641563008728662544224175108078970194509837632047441456532298083784955228802290821522315138001303730151499554038120375932684404513114634555478362336103816319420834196664560312632859086730290194028159340711999547069771698457104991797986700971389426225313980624121621729179597706510362011950214704475445655783639142329069893120916291850656266773798499211088010278793946433340271188533089100485154996825837637140337638757168837218979186869273160669757662041086086996031975393204831182800362501300387631590912938216961033173646192962033805597584611377725641961972188873494221400318426539638244632202204112367613544521004389723741823484890216351349973434900522357952758441368228628757401634851518979493441788603786755614508088423351456357532646648864112267222861390519266307435305985094626732473176132918529681271764103360995448341679524911736762098146833874222933906956883304973813044788505100365362431152771490646995362511116840989947031885505863275861467615161586933770979218342397782899254701880499245020059144832665449235993820189621638430942575303427284687032484827687680263322415373075317959634279253719797551005691060084283578664274683502069426089368394897896785704141643730550031488880415005223610799506564097524160072633107949360787073389422604923449967699812859881443599082937264351839838840052793235759260428325070285363081753706843982508998974786116696633699581512238441503347833259102212252281499373333818504316217576794805746541787424662328522509183729199806286550332884411101324572259789814500513091012588120566495720606084299386304819375352597334771406960276840631230863308294173603867536484927157845447158171987766776615625914268228615750378948025272422262435452299824869459001549222820833990792395813656667369105609322349548146814896587335724783424223702967995877343498624202937264404937147116947012358590983957448790391043440292537995126471804976483826004989216887038153122535091939667068357948333460823613431203516554799366130809390711667365846406207341127864001574239653546011230157247011287756733236680308386026934824683458807731352022438524249341670515371237663378299373027244060537601759092749690579473853065440408894343106612444322666192002688529357797105537758916211512721769388822609849667613837610083301857733561395707778685494189024863207557204447170263387549031678202839803846030222252976881167962658635232892884375866028768166022325991044839648380667274296662924924962468699045493358834442233776108683020662338592075731878135829649548249291572317282916841378010255273759643312929251933081140697305655892439306588380832092825379449279833858842894408215988956940318430465271071860377059214642852122496989536616859710262804849534173206590915951228992493623754710727684452385811643122851879301264288469658389643422280004985034020113471899375352399910373796712823302953705722099723161200291117918827173313192511191770599550501462233188304393010763207454461353589688180073590806053299178265968953927807557170767124766539474940494428372208367739645339265106852968622962945496681809511653640154556518431331917891117906414139451233728898889228344789481091045515254211362187732361627926888843277231983172508100458306746106164562188217806353587570552034426992965822863887416092743474688080610541912297364272184124764217945929489650315449822232588333899281595066533259213322151036377737458476802967292989940936113784025699706414135021635383173394089901283300347254239788086429204749231504949934764992510943632330528803249445665216305666864267582989025096747534472545998569272088691852905831208817062176954482390077491787706846492186973030363431180478680324559536044128215662922480759024181960888647640331900256252042374684669580954723905347630140217011732003787745336175642249405735781226294605288830435962565265507441860743820050138187008014837805572109187977359431995008395177246237736748192726620070894649107388579087489794592678824403539956482099552559487589748306714036057377986017319387398544598656792839114731576813645912636912112886375019069995680238323176814113858519992100305991827879192982312269288965850025294549881338223972223168617681741315400949188462321642412014636237300087678467209290312902530229874038617240250463968056934528205020603337382848009909694321322262970543469710489870429612808787468561570888066348048832838935289755151786922948886812414670115940681094320316738147508211466964661133357896833530233645054675442484063171648646837933767339480222711803929308412554591663193328876034781995760632217001055243580101125437955168225313315111103248564958780460257197152709451370489770002732642997242911064408722217019151508080961538882971108910569085860972239710824590344124033812889702009447545185326582639927961587868331970106027553639384565833753736384543136861080403950502394204123850038873559441387282559335751734943119673899240396661151038939570932673034275949700750049389770716600793445110916377398407336714778037177835289710107275312026960760645288971559107989372025642217777771002352666713341478561502173125974830727548247399632610701131661183346691716766468026566044217073835042714742171702292172681097048179299382043490275311100411827167788203590991285497790184107945981072050856164803175308250852233403026748432733322670066461202718183786841521282812659757655993988547125683369772139876249721504603620889873002471607462218849427596513757939505951648745559989234053775578201545699140232091602299909060820095792738450738563040228745251520094247712866174820583677533450766887696239707355483186306112722504484311581927163803240186021015280210074311401602878449063141340597103529279381196634693206549653608912147323968575641399325837821482278672595094855424996303124150849800218576174558270551866037239483064038061268346141535650280177669910899845959091673250073517823989743233194743409243913393324526841881932843010324692627413763176783467832697249133419383520549194136218576541999330142516061623684373555977410915419390445066656646531651079110996290261261511982187357940008618849913330236962464902796318923067867851411416481617353661523497176130550452939778309013189990827657893650649836897150048248542097112382922751536045377543020560826854707018749273422436946671683964288619454472365998205952774302502127454814919432029210826417077401179006615820983539574941710347190563824290035390044810940533620779977767388165585172561272637257866289763924595697175092251407850574904205648392824757176542801600296119309019879983423869274288562627322316470799853542006843785398411679443197755178760888868511927899548274446661485414284040702270137194998192278354297065579038057771416784026165916769347485827055472877470116124286813506409394193214116309738665488161260514113035190261981783752443740738860893080987217172769675166545696637418417830872561710457669445333056045566205343490187875975379473583087194736350807427549610359042326039367599922088397626163253463999335257122687905724570671966082605270357462179876674636273684038151273585904041624502442384863968751086833307106218586905385586064508522089500696497889451945839169518284285769103707672617419009480142449810070632844539625443387228097326381950560001894275728423466743002582678070179384304185351227683799199404572978339838849862339888657984947666191127760865754403445819130214979394746968947053160488123035945728492222800104147794792898975851552865132228519735283552205804270330200137740992892231702536795995490564465927872057600341672521063472481185571817518822864864629818297666431660542018348605612114272440580625336132659158814987772796052124342453827480573409111162620191341235773999510067401785929751124227723495778937386744069577445763891552442491455870854501988358328746056606994502135599871486906083338963042625243740723666255206904054393200039209650716831974352912450844888561784540097267994785906940051142403857038652381335062767358376402901578922948658914441678309145994931099296946209116338919446413727303279604084668097187219621471689410723566859281388286614993267574947679430571163600943707516161132489436158392227938627823660463354563411913499685761546919893094928373897763102940586988493728074544637902621618835610457113370531346090111063832188333359091621647655445147329900923437862815085423090015454064475229822717541661528938777342946161681009060216694682434933074857604580452469602297861376850805490862571876863784625223195558236473825753171278298182390881070582973919781563979387866002810456467244936114043467651152299507181338954435538925502611363930953815678958717720890134017159698885820262965079075870379769106416884185360191368899648405595521933218206036405388841821202734558107895321509096108707113263465194533630271665945248757139632651169067682970360061620451460767903557619468231721777945636141115709698142642925323682611655411554721743786167067309432042328220609049713592226649218124769525068383216138115872854255060367010878488180686222947633473738816429117846748353058973108245521935936453717316142280553873244040873756129710396625843859848051691507088342354895959191912765637707454104066649494197935954639983672311870439983952781923823638364423896666091025003784103853542468006888752270308909038029775018847931714015721864516198662490763733069034740339621134020527764333826800629072387259217045373670483235317198016259755446989042432263616627976093478338852415436423476016071873852822767534004354925718067300552416332416540999580816431719889622660545582392182439375177163140451022389150911985818926862361744248715001573638247804323001973920031308873481512922598683267929375180700322881385180333313221784380985530346921506622580361073958261050169820929682770818925029706948133285956895796553083509183457516400034539104939023676565040976633789838564801179700066150853554908315262719280188854481083908427499800545149169999426832634306870073147529721570660708828827228763956322388060171330699968886138986946796776894208416763292545686954615283963944071092249298706535631812057700185874277002669521319311579492589927876211261334021040085337866003375211313123364902915199808696793813354386551978640763789220721800006762722017500775477504754394900205682955583074752818722259420030491109690104596336875999946507577454242175916094690542263718018391916125403987351189593778024320800706490249389243923932744717192975071713982719365828339118373220596004490915819966265725640101319635089275783445810111647409631368822682877010835485528360695001337872338152078336985325154901911881642063410369347225265632256338981354237316605445932366607984950725194161519816849863630864495188421380892427279149837936098658758222973478177830088518829474184968161733281056078813315976216079984752445935611156715866093826730555209956954454435088815103823585341338492522734150469811898402575799236181656506807773166589406373459125478420027172491808366834101390762869925988164438334552613125577118067349879018613632387577952567676321438433774508832962275906965175947659557284041741563362203159675457032666460641885930804792127640598910415913010827568867638666931908362081726570918594457409060959760740118034282059339194232972184723610890624916500332153883247279319745912408868580402350179481765894809203435887509229247584903721826240238680804712453207036657677195683938084851021236232178610954322411916478773434054083709788010485679326176789357568719387439233913669700721757890097946126950389030092720425861989490723455355405759439399298006502495130390428814494517619466418517942217218534358703899682293928318707935975704108969120633332719214539460398326193337933907754483492118639984728064651129714377054812951992085758269609806475325068506365767854765320056206980417866407819055081877624166141471849576503776770742544911771348621729820431411429789553348139936925481653611392362710628815298996371571107380116573205721019746671496380923293968401745303578532695907265368330606512384542308756917473051346639123872937235246771632370074475859700298126567965634243503556337957282440079385208003266099929758033018744562742798585148827284669172495145719986157279468561115592621874430647906044009439997497709223509280643104129132906123898389325035626656481938402499555646256369988709528817543614360379435894872062437442385564014759930895349307077128534965799652145753170747806156314999458162868400078344945980080380322922968713098039576915495504789505731881004262861619054709909545864109075173435566105561509500429872480330790300191964324664035741137863214450361842956605283887479647199113912137586553718816541248089721060796300422960997681636261946814809498832222212755658710711023831050063545323431684670663133398062417796988829536669626087742872474416859092981311923187793716622200641127835120616621957965138209192039384557192832827329628859214255560107448533698271531011734415361212201306767585148946669407068837470042651282045009605112749673736802618832896362471140041584056398694020210306314051687433725167494890466215425547661922649364687727627422733117122270783826744173244903931919213692204016551885311653053040071498647934747451591802452167603200825758934086636097415435488919137159533378871771223340855181967529460213159663735296757766810842636516534642714845988192225190258071902609291303310639658604308725883852312743519402826483270173698531273461427593595203586078240259173051044716045540602894109319948235194487990170447774576139398671343529160447250283562391216390147513116261919397027186275814220339168152294603534577467986216082944978391801103563676995463399319378739725470822476143961783556077452829726161154493596381303274163656681827826156003163766598182953462397187890755825034256934582780015171768500996222915618299996493447395834041432707248122333402944577871709918166058063327163649969326438192365203976807340767784820561584114902766651866651601087052961560523799882584374233388449729519651467410255402690555806568843958716496926851212203722339701813593140208667002997344231600949820049855394543565645149618284615164136560952974276080027241297012478846766562272682241439449966073323764054558400948560032370312322084241017952111245090673294700643271134139028759520268885082187545394027667836412445143397557316069580766075611434169779255466925271346780038465278849886921129541092976238637333698368786499010638007578092103614605277044987133637368563780356703797550915357416608565192955150460829535203263134181800726578595679524360920069400168247257994538233893996175543146440776299985128266771857255333695248242384217639806435453437687054320058221837856103165061100659819444181848293139921575871027558684691370237697177254021981475479901005845296013237478156932699023403280437842109692333557029734260955902507602631965064083991438733322614797487147833905196217674071114990235697541885750948044929479972952871254440996491519971546315767547833283295746665906050569985155683234324700489686678985424150477643330645490570487629835079201228026741166812252753876288830126633700762663264761051665816922436809081405680327086004667850381326820207325203987845202221764153715701534698523706605128466164194012963491968849562050767751574243226856149436099698943609654612250175514247459353164702295373221183281732936633675004672464698906885187732745765139449316505924453647098967091325928503493949388097843121541479274121771679428555903791641852103776051526141971602257721199700807162427491013299863968344519808405965490219146536836587146586844094311274759939156962827169171486062707243585946894839212596232557581753469363485699202215822117113914766724938056438344913548495601581864853685416829249650162594219420473629558271527452331198279051525916835254569456135986115766759967965990676830661723982299134093498988390628003101115836487758047943046379135833652353986684628383698132662797163389449783495785578325545459232263361384273812223591616558966360849032840333506121648988501445332511376432622563649231427139332736114458186388223090496272968155799929075849914381498532361337248930037816507332210573950651686870277182386637977523516764161800822395280296915622534846404986282927070382356541899645488148904962437969950525145980008208869636162323934559032019083866212117277797946749817475321364718367505787469106551500820302444709421333035843365282970260586999973042626307425368996248289319020218019697734928798143009729684910147939335051153079742401794688799790581743269000297380018433397424732327242343494022945199303253269033944783590618993760025276601993495708454207376255346398765285437770825038489737823129054540416560088487575127773817702937873894379646473199690165197247245185715190637592783536262999768607810264888369996833299986125838258703348685452191462242907530479292671290828326662555699824189576049321125268927799579405833651472935217641040173554268856304856087619169856655700612463693999750194382299011064001928375305232913412952024389526379668660947638560723090959927848298082714178248780441264311528329381259948375852003338991858585850549185945765645889233472149397104119180744650471710636678556649172680260032185788009912992613662433375902360826275694942415186811878793911163764594680822098672919132038030450852090707472765230835323312760243183400881795800144145853849177124225384532192434924614817726178803755095374790117860875938520560856762971631254933817417329373485125366727293058581871371468916352193725429440979650549723315198548233804558490762363296332193092473332488827786629768605516093496231994661073558082455213574382648099037578152309239408731932110494655054939715184841189213800533412980308558060749050794741909979312920254616307570759240592581509303759679820279963148803749894965874790323713209451221772290107303409625335520486815252595247665614500871396500089666139594534530076555772816838721739214411911841036822469839389174124697026420327480755906588422659132427199784355809710006338899454371503357228720158156075488816329835474877541875089191344180182004798801531178933314568437623292822544136174873039474557884350525813217318571360395865568574246780747391707990670287684783329592611931385707999781163451953077161937040999820923916266605815213022591842145135863819729727936405790696867564492786735378398123750953990614142739611265010329866249984674385763681687900188724467632826511547767180804199319384299166802116378916258714089441125547251902031932060470082229832716590431118049148760404431379982831204467423792047877337439884946466977161203488429370763059245611239930771276109270484924080214900494988056593738724871442694916041483078985258565831334100306395168646906928708748034275536503244734670636606615700109963590096856059087301244504351784428788995420170970705353549392081384311307606544626408045522078195091403355858609318148661623953207625833800389318389897852665162492738514645200705590439761379890706828018083774024946965783446609824978140825459213403452129149229092085684989701430439743406319349591068788091395465914141268411998482055874469537392047508229869716839626105685471747618043830595647193373658307202635417830350285474992655586636050353399609714927462128717905873564626375171770270632069179457686300476519075326268553394002636995471222950325974852313238837988066841697653229389412334330573904118561935478574309308385564729472761055846102012599009085074879402007230530911828566499065878637485768215677216841975205199620046084612897203121022467125081726889271060761467891425738695279842090048592280889555540153372650903558051213109756872693259257380115958327363475427198139421220257556876838931049211541305154570325162525634695082700276856145760651021777739587157980901694404755980236816923352729571174910937646531290097105717895319282469900137831637300970076856081398136654290926486812896478057079656840078508791314658043456357279452350112137337621680253697580866858068689709215850070541919932498274233681070642586168805129875531200136669733983426128775281503849844268413947174922051858926818574452612306916507583726866868111795998873801258148079190859418141751933113572882221152186641311557959806344064261736288085064710837932728240235426494858122884447289646068922298753869495359392665730492350764801398708143577879783754616107574438405407354906072821572167589148095658910501159366666163410338671364841381686172541627427625520844560852244530550299901162164066526255323393521371988137852662175465358837592255826748507241827756381894508163816888774055600896872926877215253991611017657298520858638301433453720541115636243365723302017521541355463062072232795903492220867018650183107962972249712947905393533707638686229927409653057143221573206826149369170398648208831745544823689351413395444152229894675696188663559273249795014404684406650853826138375464523154830387873837639949715870797242227964809833029737707070206491462414032172094122898321118108474179528627618116438262020659205151505669499733465837185114176848251946946777047705465592131618653129578101716896417182833959650922115819322661543050441399206891813409242363947754794206543329820276945180561606181253881209832201738255544668342342646278783515267492994580429207844874049567155613714276034597111518441088195504219024706902188197804352940642170437855189925254378807412167562825091328313990736421061248422408206318308574469486418250501802076630448426477601821902281735385896097705902483655773660358745296209481780410104487251804911195233211556279825907707314603371479794857326662572760729764265910306751957844814026099715254626181114896731648632095659086939498615438304976157782074326393729440817655376535432470839664300529809404884064369522877792041095418573662977818337261741602824852786109501252227023290195902233851822503412170899885739328959189947686545576947630207337907267596772153875335797932362564791576143136520354217092383106102627395286824025897921349765626944493771315341169543938460170707210550157766307245670414331299986567210320231157545742916071636432445881278547372313608454875660020821031633896848480098719661479405204773486604883663691604691810332231092483461062654799041428033786537886264400544748385985520802373414881154796682549094168014129116167816188782249123207660365284437391681497176437752653293642134537081536395911382327683256764894024197972927861041000117078673053043560526712006800195989246266428058136049920100449998399336065565122896389013967207995602049584182726181461447157726167882671493115733953028130256038417964307082570174404094205573817250967614810790293509253807907088562297727700032049897435036409712897196888346210199096955855680770706210058054072719742059711505740907375491228840426835035624887010115577345788067066906185814752130623117249240188660622070367263808980345842000569854724426431541064845699565204560402083566397433126338574742981185371540852527123487447154842029450262860767239459572032143669807725646058947787464451814522666675791495900263757079575470800776938718955414065584365543325589797147952217258810261570962742941590157742311526302400510090108373108041768745937992920526462491430418316810652577153147110492015019270047089720616090692118672623890295882376946757167142387842218280424030477078752408957956383131618653134758723245728682185324486721402699881996030191563820033909043995970712705478944796305844323376546694562854189379196429938630577632067801974450875841621847878084035729923516142512615206202695236820553776452259198157537797025750450631686061672163785561328277895194526264604347330346829997329738394038550653685226366763672113912646012152254963023002594501066724906568921337823066558954194935459054503907909565214848129678022957332639141017041013671135196576151135023668283898774393646042266933966148903314681091440099057963556118062881139583046910411335641721940533874715775734439334906779280682007191829255419203660442985755218965229143806246874890816384681433098316484051928890646024792165790062187967855302944115082265635799472883461205450011096425562473795190225036176872876593175532488477948076079443167357987759939046045989388764625264927325880841459223318615094181895108048314895678430611452967091125324148306971006288214708520156102435321992814995379980455076637841470870006517922342954784628659906212764097691866386379303370044339588925494507746237012858446624915969211221231385819460936537759322919106108918980404323450062466243534391091913752063338066314157332824524119993200598177563617041898992990330986469256520875148948521309997368721737192183064230432954984432414149427635675322637455716585915867667499007560749723545222270499235202625060784157415873794414862591132331359686277266018681746246790545348881905193676353422727111868154243439769804289581310067171382908345151946389584374854991551623278666972190711668099582467932945292121834202230726590229967212612664150293842131011784108298618557331960954470231838515340332876497495383317862442984318998360642898284545377897758786867278149071647188589272515215223589896976168503987237330216917779552495333773345310595677356449417029325979868959716024497144310017785989931674758889336752242127448635793421064228789832247411310906813148024337772896868688050988922353414417767513381829128889497664950053371312838546926336821955946815210853762857837179761517048195163087693216745310609961427347381446032748993497988258890585961744126091162894815639278775892068471893946779220475509129195403902226468333676113304055429040785885406393009198729871204580540276419785186033970567518868328579526727064139708251227916777440625014111797096411442618134175385189202368419726875899350048543396847236917153632294749524451701554315784367097822114427389507322687067562358857407772409845505929088389286910661205337806462360787226585088041950460101896560821560682150923317803515957667554404502789349969053040510615932105423631858646442531825023292403014073939084250513488528050271823753940826017878126625015580181095575736937812147826909513258624834649967622951238931722866686801910324864799281366284522813817314653191521891686128057073735700059130117398338626640919582627164131043472354842979443027628906900448302640949036823101246853295916476170280042078021251188356867640100328412144169933259998420751023686012864261239189730409261723361406518064864406903853374486899800419736788355266574012032437194763087630192957134435639512176085552981250619065172422915759519462864491327743094573366563998960965706555992745175773144468592450089183218761547585476772366800348745509035244820884394477869271834544889147744190141868889748326013197177142807140017078701039328306189924984546470547349061152779571458890245850695155654100077822233685812898547821660901142701333132018826322603646913201623736411730664058771680305500358820019161575269916404582988336342588288136546427379815989968028842317718956984088593469355698364022920786294327157828103242274128865771497635414907555042735530167861004252961963494424570799317102020990464608483831783931379358182634586344143911267115293877959204523818644890593656671023194919117327633090798862652389643326820807097683713372186575325361155868321363116996100136918992729019614503901029083425206461323292715028724775205119813282282443595688642392297663013792469951940559834435015148686764351258136747772698809819146167571900557484535132858458107671198309243747884822668930519218730060679505014130074145195409329614673525151851239577679893801519523923012986612381298779552399411566377755401213484335491814604104202100573503001604393033049060124369604082309119781949681038717355045249995934387006074133488394044207004947527919526874401473852330332100026963342333610864413388931672217497820141982049320232611265917054017069793315518865689770478136893272223042986039542027740703992557601860986194989245490292333519964813169992799863038851475297576057350654907343858513680441060107814913332641376588502269224174871803612227348151457116693187708322743753259954038863222363800819928181500032752608677609278130984843266012836179384456726466281386761959330796972443128230284362266675091784881601752782666217831963759569491224850246354369368046404067161065453217506297298483869941811512814427485638950771486221462447542018389158734822120608459978875972687380407711739737071944882539398117113798618718384225960921613033966423945615502140638373236639056425378387786436519130853153032244193978186043917408910605196653579538592152724132004875818521055339804009447891875796332632566348201103071913387820892069089299753061100464173632618168901388167114966924756721976984596082008708405633048519233353590070040199128826594335579591241890834428419068742784452865074347081321354840143334399735773210176716400044500747769737888515632722511290792054688073966357622324136410340802663876696506937345911760764778760372464689124766884193474889243418798745198168943710036161594332401389510924095946713913393219825448321983574088763225899620502835548163940356608752219748009565299014264444173912483092135086678133003191674468735708946270893519432709628005173808634406060470850363042373645749665230408610221307686740357351351634179913203166325302623880751288965350417620937518059161352829850918719412732169064257225516182719909200231041606500951643315322088690179873681991790014366687280212102012862868955020622848663432006456930027887284001007434159349874039915331957214201998758835709942005277188239374083833554518167257401481233258658873329534656657038162962301714585133108119667642957739121365363280101612550378784640324573072338279645022794226543696172798160297285271707238596654176657924543435170209895627202195019697843035226245204908988382945295853836771442376415443698822759235720331957598447373270155528918656752248426892225132668366866642403012504846418521219558947117619745101076765270760831831840832601966266831943012270799704905080823367719495983307470244171493926145133256529447550134054103034078455459904596582961846495411922674908021140577279524268393430887759478219194974453757499249754720287217418473357339348447123240502788350283716986838011621964057965799649356764861925877517444569116561284521426080968632592759491716580761651366174028833753435465231226286884266664691417509282205242656573058040172564536917495702810748596570992175716282579502335120301580019541257130536980060776380872072666776569870733974822856681814949714935763604516262015001084048037266385534599984649246712436173999274078397421242136794632403648358491483154926692508791717893129999928935800513649197254357505119417488677600774062244034727658147005178236044910205087449693745884036461391462024468435990767247211803726890327115726027304129496816601888759115273886592374962928588352771924519191375150922719598142482747408699867644994284279254470202751031852568822014749487022531803234595358963240753614996764787344838067603740218836987192362885304894457755677372741212570463891739335844863846513477416311591167978510111484947566734625670526688538744239408233126243185771290842681536015017954521300714902638570527113462874419086719325809755635483371803303249513160061370403034358995850766603276087981928345139193115020134860047981161018173650306215993189030074988452403079744096282261766954562601068907604892584658053385698556386215508129018577798527216878931901317082546640189922101140968818397106707476774668871342555168208909372606010772125839437699285422654929201494547557063790509306488414903411003590532061825710501685288871538450895204999576885279345682993007933959552039460809157365494397438794209243347841657828441288761379969934895290917828645539916107502506520288948935731584027792217895251719278962489873672029201234509968482160960433072474438691835487777184986021889717409439675182389600323690515211458488424143546997672350224105089053812969429515228537592974634366696177172309151632364430760725929462363834325879891561953946008377032961645188192955344069572357083021005707937508916463073205064773301449462705256802234934855268877386999410931310088987160124716966333816207778902459358697364844503917156005767313243455988851963561595542990120485269644030410171464979250603302707131516513016019187644366384036135376145692337509571512536273364653632251822319010590556218731272210056458495160240554328614878735105217120451424279677966167431225969736844430285955285304147369245109472655774104477137055928796584238714436141962769806924746103563156810232941897797606390886522399833002056134512894278562102307231334547453727456653693528226357858978834465469580719693541941876823190058534206580015206129238298794217945910070383484328850831673839328975650050456076829611403980371828967996749069196596088503777417025314252984152867119984584815830474161780675528813096481415533279440253696832841267666716631334461878067662846493779212389608682414268313838141804110791523205039651757651004388131186205769883166739870070332869780284910646108104374479136249652093470916194441181294777351670981860958957775515031550079558731685950280165782361912280412431092614475081128476449305875055313726545623574406143548832399317116156851374950894198673327833009386816122179480817092477061063743920077349653602870349182778149521329715898611099985204439310389490678184366186349754863787197690511045864095521050230656951388409680552322837063759969856727207108430512423765708543083852623836920384197159336296459575780447373339347765575472677987166007361003162234417653162858603738162893305176127266717649395814102843219583712554286842638416861747683001428636308196694882558677225250075474442100006146088254820197365846562364162795017519090375272086795400937281834636143120995788472871797587161815129694044996896865722783111136636833265665027747343875911219913787242506184041596421629707384470962035566962622197257354863870858865338862968805685269193209098365251772548835526841708891402061512855322690559105806718776712679506295822601097566777600002479216548061737248541289363003457766260685030967063230877788041461935326172787987853355890024442972116723066746856429949464337260661776778918060086471078165618317183174717888281600745581958384897888693543542782809657859962940735911818694116799112204950945484245491719537045890149684036069088949949349734100118027038794151611410270382329777669283886126306959400728569893385524270754253044071136848773681720487413451307686860968981039288975933166489505039594719842833643725888239396310465675296473328370588123788666203501758759290879371989910874881080940592059765350068553599400003089362873560430163960667572052902614968986616272186972790195503025194131037236035191783018996679330423057481277231217764963690845137705456760258719480708877090151058019100355680580691842662936437422877892015367739141638345564820346525566375794381914357760255566034082262958604829973607637887613914490502677139805322177407166958918653013790974535118121203842229250456238995579153844885479020142386536689346843046655086360172149164484805887529617265680955299629877044251392435792571478411959480067170063245511107927869187130535416018596416702963367113100623706425066592165427512462324367461246769297686063049634179064551042551910173383546785214655682235831372141587371745283223457734203959678832172872711178128374947777268169187511854285969923504721924640497077623050127253849736441407668022236229456977901073261912694659346513135306414563947201432921330073816263004586466247777828983922651170990807745466537135993415736984542466559492153632992626404344611630035859905812546514183347257149332353656789344507137285413766059323278570713238155273966663213698455233130200992104720827260686089190730058178549201228125664435739127785307082006731456545013677353503127065272072676453941787811173771064912295726485199172005252663603678385195740167902376551388341930122039509162180202784626285630320225473093612312656883903508742123650775375191407206474242013526731917523912752665219884022868229782767315309399301226725225089210005481600243212459220182057351564811491014038896566710741393770232374249360434437777857817040923835453865846787555949613000559637894407041333185496428415359536404691597068654722419980872558879023328058635123109739285604797803301816514858942074663243616361540825117382651354341881150752294867013297997696797802057616911849673941221773994217702062907052942232569272236826171778052355651838212701936782743816117126250374396560218463948496257559372842831295370553672966231204625325434916466647918465056645723001273790919923426851119148180031135633191506362875078946727700067209383589301466360075979214613536127591233730202570084176766975986086875410395550322396842647857215052754114819675353158347065644024536677705161555820517642603362678068563415766858903024594657660512031446873109335469751084419045686305886986647043676877282657958731532547008184682650601739123065379586665397945391435173241216272650519347388662148191498907220899545643770262778643651359401175373147997446931339144282617451152755463924178464802082451796311151280112146131311670049447858233885556166843487260549366184183241845848137300957208172971846542336117951082947535582934001194253818892309693364469642780358694589519734479722158693404363096796076771648936792445306390191351961259046774217569342506164527650946583938249805042740724667374746898907031412347737974454567405184373123197847920325737902483349378435126505479764016285230640979290878884252762711032150551205036235234161129307019237519412003109896917783261311429315249984210304099530928760308445197066190961487541157367306662480160989181484742512421406725036912809892299229874981291585565460830883423074423771046278058797060222233636379567568221252827281538572859295738915808853913741973135486708900550019030097317140397430176401490379889005650703743605305934786915598050716230466715385702443100548164387410791718087889158528708752194496467969515604431110090259614559222669235052407152161510480277591161054801237054561947991476302532962846911831116282087069835860617219168903079159192989318762004393200941629248037192337914332830052138523577505449112663293831200509701389590193714933849947130869472224829012636309855385299511614281722041141385210995773458841807659861375351831270804781596161056730639215610626857498843126835886384459243234273359204094345952363188961802384032578732657152439635508436829189776516954295803123063884449015819630259561281635939006508396503848222262373290579107902160001852520030871938334867810085768196073799714919311587913889245967039704946200858403484208747455876717335276037130399408105887004886023604864118604489031383972639162685596531469831702687085545450045376702010056880899763957826269864166201945985720342539496501637560589523599116427925876240188315169543526104026839631104737418669465996963653462855227020687437654127865085935902712394103578871351263315090758290411088342245507526710747978486859985556093247882881338333114107119954220701669892777473667363938259740777549976329348550333654375936671422416015194903712040288459460586984063857943941394562610650371120630604622433224955283641441878056386457464366783939072058427939283720899223801086940606042319352433116982258815991952931039457550961141509444835316099586580163130061991524563420751204277417103741616022954058376143570424619185828750662599036732148321511568682956343875796350625313944149774548680447160383728043476017119818734906634527156003167179557684098815636038295307148238264471813104808615068676560953644277145872482895955039300150992964030214855255601407753687003357879970900923078242444443077737377050257928875545184771982478493712101227944912778121370160143771955739142067092355531262274221726466117168455122835109508240660974963671517949781080254450238104299790040994474371673008278148243872626305762542827973617751807263418435289152048460190268273815150001166276266521139569553151548596988450793139788677231107741436574364080308542236841443012665981947425068696416790051796167897580533638220935316875534697113306076046072136743672009500179981299025782591813776923034865885715453697986046788328191713660932460258443565408794049457806439585249791290536879060861898212012750011442663298766197704039776376572476707551203137965836541208051015007352631611713763693847880876733878259950804957239842942818597161356009310419656087169889156398523731774571747893243485656313786827976128817876336364922658967486500831257607287605914348741359999014611347279208722351366860686861264024338160850309737274213889405590909064850073114638820257736460076314908970713738328519700374122815089026860350743717840888696971302196337053874558143436218169084257713429652894654461925120392880913485982282497749123793099051063267421427760820603017592405777182191329500099772209983137826027854593975603850094103358917187460918384974165721928106202367054520164082893281514755902068863765176957303637685459119558478397582526996429031871812859475247554566578264474465205396708569549536939671800518174192310035270318450371908444879475447767021602807102670269812699261810808034900453289436430076752004986271577784934720424290776161148439419968811982774626072216826573123999119815440316884582789657777309648233419805032858586070865921622298066430937292140061716101236517567569720069610895684061971256198241800252972554041913409086692329093558346532201765621648786864077842432156739740019680180517472879828626919070465967542436093284235181637451036900966498059592152070013836643990444036974560481841508451033611070930021016530818337046368154668088103119585446664142895656896280135191962931069154217547377636021687632401370077126019683514528916874820005493336898869328751413817245582085221901476544996288614705205736023999642863319525334774509916380737548383840160787577220026323456963697727675539135218718442035994057545824417046575762049108688905814891868871034541577589026108825514112902207567531679630699909432058464970510042122185380308489806088209132557627653237832443505634862092751600290557199198386489899716628165711358421811947530055780907960266147434668846925010424533777255007587010054089484699719393868307038451135571796777817122122910189244885055800770131539200307980602067673033817888553150565952245814940013937970328908061668222970846261376171921292215014305582627890475633625707835360551528717100097541807349732956778241978730859127423671928211147232548048529022140567866366531093066237741076875497540258776449880314146845049260655006934411171651667504483310522562104281702983372843653523426363864902773826575406207821522799626260301378525762963345634386302924247740028971686467420969084360381362381690203890492658427149001308130579489101368449857969227852478934006195697637159300588917098631111206969608629093339100010622008901020809719864234275662815497553220784090482184909218148425956598947739961441370417595073967830732269297061909133652127970775509664563781303949653164143589587593005187672395101817793295608651336100082671772690367575840562428906166610831898779198975462827865089271049190674904445231952226625777870133121368308153674065506503398658736390292395887460468293666391199957340283276227642291949948727962054959320673335700277472273689817959883222440234385530708272808721754622977474111191779751620398874350643371058320803534443010178921637294268471096345344552624353163365195383531022114540581932448220205027707762245485300648250749219914854216298772262856106139610302544294698106108689410553036322760084445616621653791334917205246647489117591605642885852705241782625014505040071595528509654994113822625178862254711198626264582944011286908552949906701709004745211784948362014818206892456355455092616438696647301466174787584254247872570900448618971946480295938698423254001671691656135871423643492290441908368760487856435052829473222152216511127816836114635301971605263236632376249399927028559195752253897776755308855125994011649745690651230341675324862567542338639910781895987649145604488403269108758885480878014406689806186670861755406962190485972533088734329984956103361943873942361799178847603576148758122384606293578116721507926745670369367110807342484827341250806513190674907635204638836266237208138901036142726171387306775249489724884490513313579863500991078289674140484293749301326826139505432716756533072397651731068064367013697724877611476822882452224937612431623551065776159031733366310409070223373395861741440663865953842057246729555178990989226420529860499194813813807486430204375664203127115061896886425659849113417864215216351178300783548863110471548361455851548886496996014400011135906867904856635615329686936232406393773297109957406480612140136811790346237426707099034006801899464337157304752047292314273809672581449520425880741280853705739687107878465746742782957955329892364189862790259293042339288974477908114882949546924462358149638792571540290564096075010735030806978166529993438592058620838268141955932322509409866494827938044005365204658697286425705988477291765687853667149759910320510516310086322284780950975937406699883005398129541455133629219436590890927228658974902852999147024539219150818354117057164173858072909629732873416276387712629833622140082281004985383829178917347162345472255309152374508663997087456925770185352642247598800323808938868536754586434375895319925280494838494368666333034536234993831161074617875148878933141420351103738887832343582838144085653816754310883653843748223692149018330253346984688513085261417724522788967332713571554138065838524804561609871607949665386647746121676944657061551574523787428460966392664779697032580298841913392339654119158731437456019375767054289845408524909696999061486471888415793498532078052101608984934974554565826551788782814227410322188908089384643727737473631387077098946113814140752133395883217196798162774564924852622030745109468975695481421286021062807052808908847780867515518856985296152000406007516677919565248490648479646601576940802256906211795024464657511696250891655971590422146112585621712706331002668418242564600499507342219202323471943122419538779323950091514674989914243389401714461994212951883870310876632878428186817454048922071013122646765426857434410909750739521993979517087259081124684697582750758743505106716598135995271307248322108087383355680437829080538112858107700861987443236294514514855227740265403843442841478788015036603193595913263603933877112444075636816446306041012274748304828912636989144365047673504110680726510210959806283486761668419753285024858841953593956326340301748768247175234850337026721772430490977415377445813656538803218642641641155195278588979558847913210794050346302396475731605824435858308608895644958960332722773150867605430452567776069479640275091299260230897274769054371400207813019582445212702043670854661798423950502476245515529777865426254710506724864082656534469961556009748451127571589337263536274167485275361764912550349183647285724268439002428595394719266453700986349844690301003192788951113626118645190710362006653711041643608299333168539702181043279501072393121331914822797579063810944290592141232112516988559534772215196293339437418200873066937617925923124848106811443666974787327024234727993206408242996253428609631875528946827842790900114807993841041709446066104977883900308159692621382213866688905544778517681479818636590123557287686576602923921785540149719479878855728961749699889082603331293905425721789016563982309503406723850047760412747737911660760325517307978436375132549398066582477916929829212804247724306526495249579961483253240762764520767408759734617356617563413001220593060340713986440821124168284680565189518282059614807086935823860064439991405569254060577477082070415226637425979098116009343797989370307241746687927896291175814762837058551180808773356991519667619344893680156864174547972715013063423283659438254096205492341537357670254380693266747447541735669743974484125765022613555545088150488919559685722173586289683405883192019303336508221641116063846460186536748595723751694685984334081521438137311526950238313382050307976258480277686531627735778674017750523399906596434002401799510983565597779034443027832008655968096012531929801500280493135420287083286417785012078004651696754155242191245804095706545855727987260345067022538283438986163946584147105485292681357675654309533097130419213075578316534680467776628681213696454296501738925104860978283549962938912180924501389862280725668752152407867079391191228973787724600264402100199383293939649761700393628069238231439169845669876436008728898133055493630089357491884567663970597540306737595181825626703130387348239958494606679164489684982151631514824053033627830951198885159526744863445862629090285461987585001030656248905283346566572420458506256205501039981084728221146889901258230381248207250171274954409182463294433553580909078349383266773745065602866449099612399902348706148579667713993518990315974131886651940030282408645250251763922126167709006863334559369689315632072596051716311015138939287971047611888685307209261818274003268505805667808932043675981280771862328401166088619900640132506616911390352986934565883912234554603607903177041977410577197283183157132486300619729634665343589650818366588600886327702774958789678605141283543243193840608236619614398292314528310627737072567511570361873022117217644767831211210173563789575457337093938585795454723550723956553437691638232981848859134951353953550127150584054674790463104924778531265737686120014173858878816204613980931784040419001621521022402819452774520172553202217789464593149492695425807421685843686899439633187413371123978182634257787730189206718911783592172970841176480969885084305234829474369542436982483235162145755296601446578756818306405904639510096636021212903343883306433227416049980627666726642719967268646040630121757350549194107531089531332381913706996472391729076784875376405871756768353525465297584494905152594021427932588511085397007199309565738284420661954037061805873778067601541158763156038001380795663470314505290423033362172199209385111717284457699594570610357262000554679126984572724363442229417844964576601992515834703690613317221030733715721384260704612590375535125323143394608528468052523490025259190880447037814081830471490620978075320340029127070190430369229099743839766777308156633406039520603766082681517703685082689456021969674643836298535407922894647847816159623076506049668476562191968083267473964094719615592920819756852287362337406711713451319933675404355493751291379460677277604661542517030677620627882440690837852962816706628396438870360044069338736419369246427397676127860870355682733030282925496497242687420730400020861451131335989507465613513190811156589203399710247580913863220897500127800281600229763708236325377164446157330570519121742381203173924368352588125195141701806099659226502286435076783490806316444354588008073578486707498573808079279614484102487986106990007108090876129114747753248934598813070463752066457024804993709699233848321850277856260426643237602850967569603291409754980141862985726844624048649494093631865831286137902120509577149158032453727124854937112341960366689688134116867109513905232061146720104543016702258965368352002345845897999247782500658292437390400508311682046722558159266749667261188605249528485534111434433286577733086921689177574464417210603133852416501085793784847987239284432531519395038054600691259083143260131131671050748550950914650311119882953803365972876344901337793719751340128717923694384422796671099008732638933746634904446496492834141888151829949379261572823130037383711149107458891602545466253694373872140576763158129740720197725433916808577748060934253308144556628769818033122791996051987657849616294450211847638228128188422864373975198472118222623508162350816427689602599984565536159793309752651825265859661480662951983082142128293803968620477629924984859457785796284207327866951367884365517996314148999048107419485031277288279063339340167319168807782646132843379796427359117232498711316200754990744126452961924543752437692341843890152053389302647123301223907791580098554752330990312949865744405538596496706909941320911216893372419543510939442437805141339384018781025570885165979961508793961543731323385190342927148634858860209603052991450825457738273713374387301349379549064787200341943865929007911990680733623658615392287509296120054916349538437780117357046823464528483244770204826021284821673113682131190310334969158694257436587405179899658748746034708224072109871313775938116450982646009575881007326026084141208832371942833367022769104351693810744701077069638326737530761810322429681650368190502058639936500022697645141925221971118414163021185134993687561227956344816725823122063610614434353056176930895890779377344979047707006400073680295390595269169242077442466993409975649074771267808356413570761570468126450447217058594796609241374298906754093730949754249176517516737725832322579283253607773209503998477589000903738529013828677078028485497471679058271307098229275642449683111284924678136211432836266584350582815273664071780015750811549796732825742096671523408363832178896897418095106214222499838345694548027461940578615834080775344413398090333704809003045483425510734051609480669742679718088525115155539352144468913838651820712760092594027381053525956098214458372842969849334082213811783567196632418863700015319737081326946892255517138627241574655523500160428689528518216296809138470175560709968207039006232006327326505531089435131341344561870717050855446415576334453251408165443817463630798820747037464670048128570208249437334953862880439180279654847539787771759063795045320184913168841168666575501586832595881353482517264375748676077642137364118283540601351732542373270428236051907320096328207497446461694574910421289465877912887775145376941007588390508941826032274572825955889225645993419799457861019224864558795610593929645425713091111545457522194749931536998135347352435104126884557720492722186653545594945728772189115780714343115846884938801956624974933956901323025404304187600050005847945210273975812785101342247856233821741713662979226631899780612062976473786145658858405708687733695685554016382399105176793265055948548358029554481913486812789133196603752520458179711901023163619015167966063846870816799900530296821200250746127161797803703255854917367626506705059234562080315827478241138150750951981016301863321080309868100791233255649008141891427739064199691845681820884971487957305802950031598807660047836145423530573497235402959741777347431290949900964052410112727340453568871509471776301696188513710932212331488926324539469842227520179065351484629278486157062186567264629060051205340318520081784488771016854910195458945767622737081349923226771858063240528895975169934700456144117551605767209853737671364621099484002707585947819670626459311136421708341892968334133047687721020770594763617069558515496401563812298468048657075774242112361646758326737746779535975450541102275267132037903095922928848996701647214073928731719083967070767336907423824058755973121466930361176591284080875145369324258912346823778154142790392861504167172458964581902939532698591722815946071007465628036338588297604846262029525976556563084932635756754187233203094006856494536560602649813609275078943681429891588378362488397058472888361031320512855046301351201588193734766304990430154365016257511061361758581759972914783172860804012540917288674627477513049614345022540739373527134416231221733696441513323950035901591163384101993633632508912333492612425260758811009836438842405274051204690298914581227913397992109288653411629191382187964992334761235750241244776178289147731514254831307896522578855761947537523026884174197386007168650156659906748810444626806454468325542984926552731028243026117852349981295349725019742022358107887046784003605526057701307334922854368507612616497804561804925861866087833106292018944746247974388156025206069353966567613936669318030371847385109468560436501836366429898312724846272148102285746560554486977439240712826310414728421165792618349803161975144831117974047848892962798882437225972402399875580337071794925309510711286763071562567164437220077936772703492280769779128167082268054005755241298224500564882692138744424530922211139234212564166836059800098102813084477556107582106936107115530862440005136073009770546613698333562207238950009426519170013408941602018478022603764437149129874623478256901896981808712875934875820516016823058059942737129733253112644533002816046402964990335818020197741179436523949730470981318219287371387824378530048071629930818859747129194897180592507744078055643332112673763083416881617096320215179134333090982406055624432167045236679810952478033790205050618117812270960920780175013180880419559623011687647446084640417543500783624990556982644427736215577455901277871723526731854952813720759638866641454166437391246595488179445808663759098960149250665634182031166373523954173015360680465809383192950588856908805314846694350994730006655465936407586606282305168637126107341816524047389413510691709060174410143590025178776707326208320176495802620394204156515571582083598947916356179209900319340980539305229997736115572919108315176333490970468567614588023169263458050846009048777441524136082209704373304938965575452362833299914387267674216063145722467033249182629222417728665792709924373358457732393990416112412247468360882235074577936079074021684085904274366375158610090787221531763690037296760164383493812074743177585227865294347243997545119124464300809007233185078996337337047897709115934398103786991938625259360139408405797729935077085694011626960833192194236002385513468706654924758112978017209341822638905226345430878921762023429144241245514286045967815205606851396454789949774186611995689223370451762698311313563876408342355925288329496910956097504511167296791340753471779636130814330541556399729804917689379095430359597527107086423394901925746443810275451201165774622228796505919341150171418946609226961912428631727839127360957009150595845181793859701964196588504745286134369505032830706857962468581216929519356842046244629558125689160414925883256226593181455116173689684424453701753909557946445471545849339541958404471649243779487818623855073591757791542490110701974879108126415123334055707810093730564408504299647514456690434394229921740861568678345314245896152584638721241190755786837551957207465492099849479845306821842898755408638412599316570814516321095275669967375583932345766016319607001183551242475300631770103649891090683603090646894111109463554613412596302636580107567546335830292874220679730171801899941384005157048464884023422089776399044927439655856208865635694722422905330332116949302294261464127315625833818302442675810341388019152041274918413212241482858015966703237628380290990028954963287583685411456235691491903630809718159445757169224177866153567827666767053413124828782926718894695661410125256647719026502284931488869301003327827978730276030451966461987140361733968865575240146592845147468435797548160049598784532120180805548749699369304249907990234567429974652334368619683864272146805949957027131623612272637007138115680808749507747265078413820862462958028872836522055746583728511865718404793097256830835548569609257067439583274450897389232682942324463422723013962992170104978333095520329619340975370777135016067016623323840362887593557637853691999276446553671290405600374210017934715153233549646540059130624375914222472401877845706713191692451802589821614377195032455240535721417863986469540330634116271450613801839996854424952050277015004775474442812788779258496150029575840649627121709802990616521473782827787586533349083867905204466775645655221213682811012163834175718548173134008865182309969045921160875353151027106901609624979477412412070228364199026514083585414495480323712661007467554412660154187783228838789527557337708565608578524647733057836473061163886762902941728894908368758401401289677994002151021458346662473516079463198322528891647712513973373629177267858137987182361879668994963722844009409313484614593820004624228904095196699329709243711248609620031286751297822425425967287980576210500379830553134002223916264927430855592760152499435457983212176595049449701935593963697636511424327237916487728895573839647645946118766303455697560794099462704523790357721413971047202377549323721932082360296155160749634168045341913322773971713389542753909505540608641235835530113523495089694909132879764321758712709520969708493689356013413974839606708522235551617129187500501027489637127698488887778445313994717824021359138033539449912941768377917827332262119987806371273509465296268487935579738574321235333545728645233501828650017256573460480031311201013065653495158412252682859921250997463279381353080426058099012748057459318093468238292372292516291129290966389201472377201858785524232332138602501952664083078923898599657742557733962398658935374999944005981604756366048737538402717828348809536793767716850112423880022367223557879614144362902767399384330713063643438146805008827813975635541039720999099248895466310563693966731554379455157870558731551125976957157799405889229678092270410334115145235503021991697681397603930962344238133426108089834359316581470820383380717295098043330140582372020538414003271695155628146788204853116912750932713441351463188779421024323586202978511818962000348845098262987453405360110600078535269577252260081587216135534250291395864625302983650459184793771279614376820376929054501562258698827060372553105868026225847794745455510977392851480563890103629595400152381710100942350475108186151499624537030036854727832403490371603391666272927082816138461077577668352592054626711303614144661531175273816586238350798708111631734076982208234779924040184488890582847285800272003520822700291902285350531832838791724962411518335287696803531224234815053066844099935056058961319831158046401544355633917958720271762216570044652484338814125228624133278141174190594930195965141401608741723431318459160820402195034692762858192302551229181996204759379552202115505975102517747383181174876823223896259863055937799830885617024379095378615350005860790635413441695017534911993961877898698093655607013387601606508724786623567754923503799780107103516294638375891408093953241882661557640787076900013519510545783510570350781238715992780529656137394235249540226076984976449819564907063437867852769874797936719929204597993080657931752683187313544032747171563637722193042261110480540258303399188594388022469393594562893471136666190579306302153998781036080226385046230617372857282348426982854373133862255323677622792254585098588831324248469582217977617421471825558460666088755557481584665094481126952688281472114332493438498333282595244908592361222033119335414435613339963677634217505292958475701964223752992397715837920165747003205905837965162403389683895227745954979873318712307997906951446596681441161800141398333471863198732408994403115283974640172698117421465176419529236934508622491134999807542518879523020414830713593659772697748752128004477254190379026346411618814467814241563905892436253640061587582897026064978769923055292324552496019602174736912405981103789475703962206367265468871636410459897391082210608973016138605085829573117852278569726021404757099934262350922462351831815032535615699522113844030486347916897268869729534857420855186411134199970279120112135850557150678364721203666175007435505952666815132139185128285351001247219513632503335954212955276618013062078792369018382329282709379821740808884491964710677442841810104546289950192687873692608926638942880933840633637039630079216594630487506935630319850171316592624267726326564407984538962885654658926886845706030583104270614626768068374581348352431255533401849347647844874274480589711644324895363471304989761171832935041135253028918693993138980277448824688695068027624996260523005024922362183197237274848905050764969211479229066390982268658293786636601880863480844670370096130101763558899830411856590985723502564676013409266469225160530969311219319127223002754756477274651141607358801356527982677898061130870033560908502032846022902175079964448814230031836145654977496667793661421077191532683625379052580614660751982822867889885617082988042935481815046508161611517256585435646156178005847096138548007094860928072974453856598940832253516048929987277220621780618387445696481056653855731109265298720415409422511602165682414595087473450393467406617612144317245937745641616205428487549307651498709752717706350278340313005562870095069322619519478931163147028418288870743075502122905723616353793655881796644004053391835009780004911897339747456900177299303269436154270485022342688461170255151682188609952441454854548348934185994215959843535248035985433089453722452013017552904469318215713781430917523763109733230890290199714089216712750501404685445359111181046710270824165854890056333761514362419571209595124176670482426673232940882783216033315154219859877708821058575684960311622773662500559001953808210699354448062266934015674951287896588412785637680003375814582458355605806371682531949621143742685404759992666681916911205116246191340375981245472147284936186585548411482056159613074828160924864156209360614009651174114106921003529282130625994032429381804766823819024106578350162313179102000689551191785377843515490662166576697327741391408229445160846971130657390247129560055465393979100609962792699168628728018314276037853264968789314764097370402446313196717384345365117412941813463279459271154559109193517786579645482999272902944277013786094415172231123488410310629955044539773883515586530923654282041294834439804035289299565742305371255226761674581474214538427666202536071728676426926510239955344698214917566448540829845946424157572058875091089997194598321730269570857219873097343606514284494263026437348576526151575919872401365504037211456437909033231508144042059190316569874968438308794833110490540225015917882979653947774058187400709514074243125769070439185458104560204416725107879631990786433205128210213822609358660646742717639729422727695847013888970357174142007891449148091147826724390232612219929516366823246281964848089102416135079558857914917552223093502108639458765280026513338849126526251929743077434026847105245970561843063388754274746261881745840150201533480445626829859603143416217513598950305545424791962337147973954849676324379292531898854858781342394638569618031919187901734023803798834942907537708903349392455693259578815101413206925072438225989272295470660132382603730145057933195720639099752192575834360170569088272808279524954272998362991808312653500196701492182203964881406654982801050894897069554009853418103723397683820185314576071705178017088402343268130795404192896522165375533011621069878437675699697359471044176102156221568400275128050247382816699099422866321287977230465544758500698432951004408114603216746929498905166102082264237238999934592537057652538561806073078216928731755856551961649994627046106895072202765552252371369779214503030432944020111097485185522186606475414679639662593923499401729350960516688759965041165480825031018204986963886329033688412531002334464354547028277228734848291380649010533891374739616065729791531116162495424495988296397930866041147149409387637444699338776757997026236795303260493822414092436478401000516101308281191898099043915997022566033208764831603082189062259177496538275192232092052546025507158935659327588416336702943914340626883678693237728822007061985963901936196687386632506249967790678448858453170088543868250815594266733502135542991573897728557622442342297602230088917328527232420309525056637604011399120947298795200209450255979479838310502883116879746378285695121447365921771951977729115259864356787760272339118282008599965039197833225885099857885794304284568690105530744104735646918248819641046220295453227519938418438905698052827855598546959526946538026352747266386875859900982258106629589439748399919205904854457762415023920898730877722182271948766510780398207905010175426429454017472628481567243283146387577891621769347318065718176622106277756756085714572349813242188874902508344031129898671121713227695985118051212570209313949199412385919724922683985675120342591120964099456294692141183674738066417035991180411449954678367049949692958355703002667713661979179655573301206198582744270958740049705508392034776184758680266763720045824090827838130106019877059862964198174458204320993786559090536790943802900653506233578136875480017504371285464699678326089580107575557551065854533558800065666021768743624995588833043680755256233694954021399284396347992020872851066970189460563708053582165991800140408178782200831860346609005340950580747454455380750878872965385810414449682917128251276832882320820053267678513644447359964625837596005243415554134034222945730507458807354770164568623827575445093841604219381123584988896337232508095806941733105894787021479562921351498358590784936708466778256318277778255411246877688914420480835703082543015638997860212853741283554250113882203327445529588562310093856132832765718199361822135016463149888026032084022095185297776082609004058373246885604934838936208925702786588970341064024476252565564624608247278626676227376150863767811352729576477052397900602274049000376847234423965799004729539335053480787070142128699837201554691218191427748142855227842381718186502363508131473969378813483245391541237242060566485493221072345188588136186719537991225307479464933446072747888539202201974066792116729905804716726177067997265544182236175849200519165457806484556691040117363265524975353307712114587702191842086661548619190090014973983056912293626405757127474904052147602926511273975113255743113093974412199778922689350249980437081452124523796706009062059558636320807855867738413080397934434251850587098839999440878336593851529594248076323116321234076410115685583450091091762415617207505534561368871053722144199650385037907084829652452955627551957029368114595784303894095748882225634057805976232096784747041837478901037448965730416871177499863536395448053405436937228706001212570207153613452889770835266233218122051870808122767762336510193310524855309552967816707152005453724866224397010753978337642113460340359839834547075039095256426871474433786101479412844264034088609299251157152207956066485016289157798257587982304114243126382646397017768222025579005259209589904397404889519767520714031945491465549522241141400420193775286284905623211348230345870451587148767233123658015925771040663995738536645592206743957318748074805728090748897740292749339652795516534735685614209922326624291920790542113634908168802030885895476141555698630528061334171971053233924149637028151990449272022149138272825587164186367706058838506850551538110926738993443208596676923961481328913431160803961161139270517257287183017066578193296784414350408933304642217798381027890320345674406113812687299621830911900886505931872309776708568977012205984307830286633015223991214692473399389227147057334347552703547235674742974294423066094969994417588623451798621557183052917005426512560994992197053381389826174395263565467065041810300013936893557645821242670300851275266256159992027794079500518890077081272319358379436901831956034903115377978208604379821290440271565579817413596799276915132786221615988465160467456424960214112610323458461782316615350172281867608875008449360596447993917510978902755864336064875014502684733323356325828525228525347772837680426881739028127606481857653265986161842313881724043710162466408753119033932482279239066566424522583748400123386860391630604363540248106199417480629777504660207186865070756744782035905091511199366610661508122048955690403584760057322349697597701674807031638077160476915543128066867715476163703542881847299438816815272611136326705020428426276076727349627661732884626780412286015112621202477124353760868538402498009008752843880695962804684133860794414497983508797333900094176561706314268066849621047899213461036389464216898302835321024014023185382301039485463663214336146344326769576525786498690111036531638421900840904397609552511128981715445371014974644961370890468833095870433789428081542674605934327797456032272006955765019501917441728440754509751316875637618763646203708058430651842573855719082873417878362051522695012094797835612285730225558685270501095745993013456499669550457950414623094515259363043344473051441958450021566536599508231184636442982260524189994855459040033269067352655317909617006019668958361411678944878658513305865980473502785373774344345504783004448456159082646954728185238703605156217627311740083574990343155116841012808943528232214148197096941372815882076599611977246726598608138800969382589518450818802520448801186481921430611578626345488477361832189016204503092606884734574892998454627712190529916615799304438129665016549689607482715706084903057606334631794793377836469856780447007261781199335763878274260077958545793486664809643830519225271835270818367547046737102423383130748379073386924188324367051661182090631301220467453593935210518547058781402583034211023001397938005681352381399169202256285912253218138083494271663920101177827411891472906508606141733874474331765557000193154329939341728931055156662416559524997492387630829438526712129377865840561261702361422134075078181908582510528621278756251597232870156972700493097990977145350041452213281741069316938738539114119885859155937306201621642012424686330473080760439412482160485823144946689765534418161837361727039135767304652025068886443600730524149990931860806025022363733498327182193619021052377673228958550999710172868766677747642401199221836998590530880781263429622574530576968013828493009438053884407635728323270403144781552943306686429375505829289857349417895633627614915738226119746443732679358064548423931000489759747103953565546030908067646857080615955861848309886016037836741778209340122559296063097949239673060771454782528367121950656744974099032987183917734197555255725064465161627744756052577643046260086192819112748487977435147643489783833459408554089869017326671726255745396849399418847719372664462265537491221905793592108625424437836483684385536346409177666841048264341784866737670555388185919029883512613505542763370451430328107350931399405913256180198960403000276275642629275988766584696503419993126306839196117024509214858462733977233171304499527259358353557515402542269132204690662244731257260093905950115666106792991485830103940759760731948680773500821181918483300250190109216226485819946964638104308517316278466777730298761273307117170905660036058986695812894933316029585304682044588056843021930110290626695703109417327433462225043236534901998986126707471780711489580994255733781642577209671464146369480708284333365562640270226806320648909371430756338593746343628840334875355578783393873936716069034228078744373516420452406736086976479811556755674882584917414130196424270391368858029982806289864808628280221201963953084887988150070642712530537462609611556591940624491486158796051933991540260185774149628510789354827430659270785825609297616354487117888064533856990828849101929112711481944634877783671752208318439079290285901321108961734914986467700297962044415992678987302701698130668368554420319704039716728875618102961375044829798579884460504591848650533007554415861707371993198230888618285133110912278254883316590650774420069470776919459967537336494246165912180728623499829965295607812041622445688532685335684515387228199804538623597655597505290454191855286887966663471964225400476096126099238577862781704718773194754340618138601635683344935823712444432980227828511438290449867430954692581168719272902464615909795828442553141729454813137568050453072160665023907950535654828832097974912868707003886059209790487372453015000403843858535919249858196806233603140584424540230340070098185691204919132461124931237075757706752130026057848712518488287957040906477504581016210872092949015247743703596641314113089241001897412614622475227892142370252877320164835253625707944085005991644621046692044313388358212245825531301984900805674902166683010671420364738582102380310194855451032099956962891657595070506919834003705475482524330639766633380727877953486310207180936136695096047966398480566343241279000637738819790875756479298961394165044576567003917719912849374132092739378919407703659667708439382954425454299089890586266475370619906240567473332197504637935822088110300658318665094366417681243788933050688190181518803615278679010799179362750045990762880108115389384825333577899576161310454433286727915769003873305380011934840066581338434029464175147962109109645489919414444672756503862594291715570063889923206621819294852291439670548497415050201301573428908910493786291084595630258649064783191340222323540955633266390618612306537284089640545916424769171172157417084705249706047970137735065819443082760427669235718298426637149305348485450724430809619801303728333478699840179013423482472509536920587600928086097335801752462267060748840472773784913309858108045063356594362101626605301358412965034930901328418246145192240736910490981214514353929911569369752056594435999177860204628916443143920651848856175422199774701018816885526767703799124021498840427737520452381229722630620906716076979372629719651158368741125967713655477753070993073010464803624149309908772869397382025718980726866911169740077071090501134311457386572643334773285424348403961321733801464361459442603508804801915643700133359255711049499032661489597858219443262653345954182467801538359999159806770415438631635132066943263089376507925617954772889502899679383260709931072190943811106964810939602604114655757484011433201110535902299837939135200606641366794571785108766194273789882031163146314350710009244009396258647010684768223285341951102307591089233409173690057309960240087530776394809890212998297517427779342214371508926052084232975926543312560468579546314016388828790336053468813169053584185600538004249966180821892076296659587259197980050759808105746991728867543430116632552755524215916374823259314781963702362613108853108388490914195528024695967998774938458740817323676748639060944121998913640980941706008304522739761472692698348670836294912358054127642233565965295675590166384742941077694843487849353879145100433267352968100677932299965257822943271479766575652908122200373121177509161686003205014842540986606088458907202808472714119515056470347839962906039112887883272114718996569503996864863646346875502445505658357273101030166720401257627565444816051170746275375761487541949616559446672707634578306229827823569443712947734883361920071886308549658269862791916036020584254056496432315558120408114515139086788237078788509325051355498761182472797042833752414065735890948213199546698086422837686507631810625171247396364336989709985069135095790547998306142171779691305079487719904824253807943418129340142286155066467197538246760716983953074159653953398777346365995187920536857172194829145200399497602975816825850721470577404771805349268621059782901907181278559862466376669306544580693915370455979505572493152766924568426482525168086118994927435138660941875410890076813045614885546220101722324531127084551670282784240087106943439512591606737493278935433161260823568453677694304121123036879282357928583707904349222736249022789954907992077213960573370719591171714577769794087435603124277504508909834681304006434549317550148213100814436396732730651615541320095049832781854445605777575016248384625588274760731948231334153317867944185919637880367378287879676795981530395308967584748602979929070890833120510050688993249417320962537491122163737107364513852692288821618990939655548725183939268872552216378159241984812439650766710797498571633241138229145416303192417124525460139607269034627922286077199709882637750777031799476755675417945515355771489216509897764870665739107114421355482574487215216772497962469083512573574458347638368556159507554502287319403320723240438034360537528124962034210447115186451796735453386831303434796073127973158172018178858660532259862172009888818733194110200774589124240262895582014122834162262324092932979614939639345560070997427522506367090138728948558542130101409916447344598693676546918579407566576563904263551106628076287614922129514153805160351706541174155315306625442654457750364611312089386273363063291569284322039209743708999111249578704030467368029028442511816761129438412680626309947963730004152670230027213320629447745477489381152341340413267995690393405337819838290334010565933351847509692696748549756127219839956739279940307493077821021807539301845642463442798319909055600974325093181535387411962423020503834359303278473939046198759230506835291490691490940779405832243776997156584388866689217758553374989319202796190102963881502125076720774320216102973120183362933299066679735334197566302925934025570754517003160295955330782149023496389988774922318929218029451087135707336179106252009413790691522840239498074508488202125327725029781872452666057274980402229839804140469906658575701851174204697552273945666753676770624923728352317576011880251851286000411747767858264751860588445085413316419412902783506863325414320734383787116293925344751316811556245536591375017161559911039029305475689580979338605871033602835344396796453833469565667327632221902300992301806889279186435539749826874753694410008443224258253840408365627725025573826950535223368191706030391336775680166034472162986823558189154183701271509026153082712965367911580781224094562700696729598941822443286512621964579087118876712678666883911634572363474254719556012249982115007927305227236721421293602984364564443025035517433225805817224434966600834605252423606118289031068135296981598971615157292988674001913167334004562173071265795118263911373566002187917298654008418761924444665860262215556099189769871826175149521520261268400663480240287624195136126310858459023103719200339971059581980966034561120757744210654647607780478784167565861948011959413519934381351458345285911144970022761470480777794066252181568175781067518389917564426923761795938042581324196851351846337959394477572770091336119097804993877075211223992303103510489026985492629669946532902894690050498519712461355502006353669578606698109825964537157239686303812405869101412657066622651653766589090415119309177133237054771505207693672136713767187496042886380236034832956313835051933562342104062981442850240655665471276869747048697473224532843871376744354482891833800148312329775970855180850474893425324310292585352383796011605473960876898147484129761873149732187501259107348661226160255461936553959007547371105365148707973856016016838672909711848804900111371100274029401632830622297906567376999223693421698626749114887059062782838429210334758859955133391586749744726430246260306858464514693208640452136487780407414393304373257322747745526527725475117513454671031273880690300851281123428589663751093559300762044877691343141782066430320791721683448844272859491435047396711840130131720080074110128626536572824199492821012224670903620991719874368166795154629651143439877797875062718443213396713418971627896716307933493145864494458006075023728468917680655673369053203092290109252719972495838577943949892124156213922256842305736099296150604752719567831061169416909761571157594100083848431938197072244185576940372199984164568185528715178456430202847979942010389545424950671662175105624304339118317116980935613532690546702010069328142522996377193791008988042206790654743333518415580746146187702169690798420280136677573206812403254134226880878701905588653511669256543577182013959377719907099212071148610416069180780453955954864509549707702221029026072897103140816799772027445270009989485404827369168146314121009539567311805966674072225864674931180738926867163407215927952160322824486269054161588910994388459640736194052991715916508379081556205386035852511037699090142995831695102078091042208502826715274559126144463490720321608185041599199767163853873626036679329714930700256831815798332133826686211746188554124914418371539372972101495789749729186853897005314889200162735065089136990792654429572945955197261262771617044503118818438049006885464346307588564029538026152425270573652126431182538135092942231621199199810290804149790645163979951110943828180303956878049329827847961541569012630432256195521469646708476034900241827086639374667540392385007290615090230805646850456465647592493487640183061810198236889671969095699284796441515629491006883455508337595123008907162728016955383454046609462264506353872708733653828541612864252188139674939085557963690936286112003491989518635417133596283008874035596907740536370950338363145477766335239004528162557469640907073038674906668880974261217921660340335819737637445683387007976284903733906756230808992521216476823538498792496607804390988816582025575405121052657925439706607354611275746684947579818108899035968497893393441052405103040681524194101014517144345319761003715777847568630415535500006660483391539653427127677901680328548993741312760275790944098192481991632093868440322078969422072740311111193023564989615245304670961573988788209483283826100630743857369495606395132962628211454867153503839839773471063432679861025721745645499800672493788653595746457680213822520964321756828264460822447396234400725167385803824575894195394987977770820771097146241614252796499617702271889036895264221629573934455149665829704935103194134831052787858146168313553889417260314338382139437307996156136964251469974700728614633897685810939702221914039222316289633874834229397816968934534747474635473013562971849870058803268560440747309704679389779982446966740787329675780696478348146555630235022897096425944272522371265651184692063571702352420549210669737536183975649656760228649431483475380635641634111192781531884619777173659304472624527834178231151607159672816286469547674492738259385858361322299732627460572795776061342952585770331812424130320183041228744639550750011032359509727592796883973756824125293365385867526670789632733083887078073768869687973781957772188850441587070781101679019644454593635564709388670401637984930098390639998249472789391709746360928616911585840715761099671593317467785092345061028579940103513249366390400621900521645702861275986531667797312230927742191008495210180888427806681717640007706510237494120763545893575234758041451524664399328888148838235936600991443125333797890978756110929800015131777131500123803360566323456698585265117515825475271218917091100119773898048900542028030326206147260456823858854417075732015959943272169671395728094421647160144026838330429129932949014888431726550309396666619394872194679796090907987291171799914525912874819891288009919255405502466263880252739433143931371587617873337905173821443999534719091759821031907091492088568107454490693683749080440239910201544914167281418977735837340249593747973460220802306175282722063229412017270958416307939846296038399053277941610051172935574770236302565081070684770573353249884033919744768780829477046022980897897194827002965134284744633557443995981656769536612910664040243703692656270125095501880814751905474577267928325803480266656891246786236944336778731980314906415273857398749290886363692457315743962197060124165722345323891851484491596015617713943087177999058922596290777703877798855315004519408244398152755662524943785786003703860379264245080273275131421575392907763115460640001653113185086579459070131324390018012990860167452456476672733733318166369868068765233988677926361322163527322725780017283238194687432358945719131729482373908914084669896476195915649504996436803487465052135259459775075488210168857129058930292594022070402713576321878980795788099899523681416448067802131458634146560485295708668726026532772529568249703168627954087381478699151683535959784128732059868557237451844452104083285434016443495609659485162956400062099706398732586247643389551876132893637055034313864110002346269011070539959271367652211031849359908092056944516632190762017244529182104334842778852456306961121671988427704308240756294313724369241769431344280726919592304016032461082949935912211699772115634383962999294755988945459377699980301669402434265719401158697375759471958562923344757034623215275830055006252855317105150490726699838724003747655916738378286155196178645068452095389898221371221762226797273787149565629922061809273602648188285401192453789179487498610049753233541809468598451235716670335054438684815740837892309588795354534029966458259076464110498833470923540207836189610464790727230966996355040010740402101821022079384826916998398769020472544581944066051747607331646522638659701254302425262438441410295294910388073362173241022301531763019028518484845721335629475221395461716349713293233585286650263554025489828312036550520284338719476897194141847205141872721607070973489878711165364169287188409989133776014656641289199639253528568397064795089190873355151662973060765572245267088890073913917747905232652369985109638106978236125612108725495618980462995719839608508949821321941816911532849708705979474195152483388797358616687296363413643791898527251266261563395706010439581804076857551537207185442856420119239182098279398262881898674602688366410199368739953793432594966754452204198999652279891916582854378414513646374067007064124432439218127611369792088983547476061096938739629319651499064889536772747029337137245181199133692497750413507879058019914940478475307917405662112554983106533905136465790268273433302892101245820918135138741769266178819389701310686044846781496332841360718203433008469338769709190244015628749942760790175856537666438532296825600337844497376257143664394303324542926862935341086500110213194659779774438658046161886464437332192702589814684744107659332388749423153013188650559360960067292633136175370992272408820396019802330832419503247411279215507659214799848443306945431782716104997376848423872008322237058403642046273174984915061546232258520440753682498740497105510231443646722126831620576972824950335364445162971958504635954119889506294098256537580776514589947304915636790591374355772218247906821645931549947436747366722577109353006351849315491613472521752493827536791230279959172635434750663429284989188285750235491626751150889875972228479238451466440098618505781050619348191170229275649205814286975412621784851367089012427867715775689898962565605655928556158042951107172750852523614930444479616812933900056160049814908719932487525144525166505390150287522175775293262613551587591591098725219068611123910987678972690210709955918780265403580186382873348033713729634442220985455751721246308081480575796118415303250966496753710442875808075532114030484400237412384366846762714167211770894684346437493879869274118974254992474545921208089438036850226560963152407083671838820474121180235841370913994747001792793030809202167249731410787079743445433745586160773607765164062992018730491534479441975267661192140636167795971382918908781130064353893335029264182999528573018557126124199656329284638470821124887042730299482554407062100779859167480766528675468085799135103787208577979901067366104104296113758102401554220382554147923701267817387294389687708493517387294483973810453382808504803344708567997198435055469428206067729472336822652503966704213143226247550161335412099277576312447377894340329507295428455877390698179827188496147479122275192952277295168328339565247244688238015232752108269970228933114447960316149856566946540566765304758573926639256088722559027581101330871382315887808875894129237234916162067483668061360184915511732997598846684142712281105877263379562644014597071208260661098146507719512484161133298973696244809726408084935457552352988470652762917091553629983471112676427400832302046530482053280389516887461173708244934173517305223166716399350260560013451951758572110579278891239609865928129820978041635749092645267482472716758585776478255814024473303112687761702179136472417318701391560968277552938746399988183609482646988442549938182149081878282393987112021827938419888846349782030743991527908593382367824448290828778049818987905905340121465101012817172189318588465504568513652364326027698414954644809685860706558773619244773147385140580985353042351570062984113221873186794167043480505482644352677354784196085645659010344080835895863486792917737898095184275694502194169494311907428279608756454047977324113787406242761499031097284972120539364207346648788079144050720489533212286781855187321072319578552297183628544595613978124051722662922404525965751280686468922064516338758366090702681374016913770616264673130081595157058736378690301808425038234709956034262099607301228552355167264828195481664080401951506388413043811219464501260170301797418950262500078269422755426688357155435624494588639346474869019466471165685113957100077266723744515363218953938941049718657017814224856664405946235110208513281402726933831005837201909659671706107761383600877362603441357445403163767194968197251122188332068733402580661717899617354938140448295338360943095528105451348026556566090434116470666761983934215113047000124149919836337686164355762181039641046119092961925068448225514050324258466858686881038767798518026870082140247406198811085979304277376084152607105836308859034801219679553359449220794813001027819633490821773938764132499900620671904714779214425031163405992708195961756566705989596917465612648572782139783676912104521922400215360926141849243864504503790773701251624516203815139070023854821258214978604851360496910741965126074908915197530642315330309380301114652058439038032240305260231865940877145632733420428897302471115515387068609714802290399552758705717284840794104459308840014359067455802028971617848817120415713058495174595448260779857648667541437372793274763834360775033443974847623457055224682856648346084337840276517129576397992330094132283397234984325443561438393483188120587153342937555688386696627117835642578660818094896027556105208644850012290999799117591532564985827594715482139079816276429367157723520768569944046398581597158613342842903671058112122191439288511423958797379319044705000299471343650722345660822572391197040845948251487743485902997551887239643579051661538888778763792576815908926336286829009863046077992950225205267054992054840785214890378928996365602876585823042022729900230820995505377386356881231967877007180811045925749667356332821121375812179743386863977033523027668400738692361301296534061027253791396749826007695132898758958369438661397858758704710665313488183113383452763983928785223152514449436677245835052516972408377448527872110469519902146349619119026125391951439022997184257502247882690557767160303519815751418775682420604943609068898232381824735019245217282081996842019688892149783119957451267905113915831505266010330332835152420634861632318081533608353550885496005234918652438271982588954884016521246522373291637221036250150236173917925768491402439977323382941187921837027617573719752287888109798975556073276369101471092533659388983839941837295858814390111107090827717221918591233720621104618896326283636297548481852778957125175349885301846056099108038110133159776207138679135086150653024308497971091537961423581324989760421612499949785264304415701795341303205124536968329118937136794955399967761654836968188790981832808288429509246682879035062740094596636536546406343922950374314620329400275812208368942864906509908605508303445967453340900714724776510885285963398669605337960546910336383514792961832811395672738045316993403168371364185714582075958597464273253270369685088189903081817828408069213487154677706712790907249032441739405215865674394133022663429723743108234681515071070834698601923282900290156011772572497448530292202679878352864437102142796643786968082550061739411773055592751081857547716660153803234284861709851197400369968105322908743998404531639645475012562721635883443517834916960370216000321208770614630588296501002189266153108070425461307484232115192820052820908430825297503389447645221321753896021208679938008385072233429385408077369456302364986911763537272272792018479090290005955236194590190493094143792321223575555770236557152575073645847996641228082097549713325738803685149031604291519324372895769409221396957670292032198982089496305843725824814468035907924283926924254533938949650173394939218145087393155956127850000625882106365712753498034177801442482956760220254061971489883580383989152552125734991783204067875619418279381513204115757178238880908950706967522245963937681288065541566210427810343112883608241817178669989795133022196317273918214983388198446523920994157089396561431318069159783491291533432185465082573267443646757996938795354614842493372152186208156027197592353004701598431672471572296251856487386402932649805629601658923596494411682516985109164025524207547011567142909204730203500681989812031152347717591462409473292165044442007364962294775694454208098277901686625088991628178681752272626269927642866530688690454132480079805978024002458292772576554725782541878149790303561627848759423292443208486320586832011122755570471907574360122863371710098354180986643128922460504957941895000059556899983948817043308185423966933449148915925798987179705370251692951880101800163532459337591899870513208178107687428453071961944927195856478802422402545782305374172265094282439805733868407105239708687894684403085731997101241432468012356140421612476614865008208747658349377441358222819057019513756249576078040455212120117660419999227354963611523274054803505206390698494644813339230560115032523026843069837798475838511307481940653053654112489416842016885255021060238268898502824030360137437780193407888558380059164057085666074842840910450982448248898596884767948243581797882970677260158723256440864049134541423358223678601108730419385063357870073539424496918704814690522517458185969739563432019138765167243011695376268964704431074787872006899027209082219050882437858290337320657653635277492627150242566431886359330464793250732891148160249177760040346726637775436843418598467100190018685846821243104591623043789465535417895046871388882693007165036270286724766012982521995035058164957457090576264180181324877004312665498558594919021274263348234770549425789362078047403543656164359383158533617791665621845068119845069494990085953595920985029476382075276607943746358130673133581540105942731313799577099028782242449050383297542176036489487104266611920254076207802193140694362701690866702579464986551045468760292700986340940105346360215007396713752647210363847047933272466517942209145696580195071499610378059389060287686849756863978281364423949999277929112370745414874793539515084312144286502627917411850609023489760779613755453165600036846672393664084431235203524112294523316439854731254981581096560035530040186066197317927210636196895643097721761108039784276146050466976867177059008310751890154197916657318902642175526207619570881367923658917680992003542992114727297540679449213727781415415708362224037910941388584046930852055491618268817155590845836847823414789951707361920744746065484260750988896578334911219584086296185785268274691390324186831227205609516836986647751843004357514898426406605915616710559439984627445086147315558358314899416839810385808531286150734227306109726554054924376154957100404384467550504267069804820240138765083551937905582963719817050279427539360093434581621131334128418186615884091117900952869890950479653250937591377214464536905173227478878010834814609208615843281616410292572614143876766400542345013770615803925313917560484345408480908703644088710121456352768496078743926177471890381507007666148210943082966027359591518886107107256925715989087061852533404787325350852073884819581908433764582241695373794226737741390460184863151939741622152333072186396257248074257287654570852694126072189355052819253705193557088171202739279465408100075110382785530938235186039992601985087334085156044447957513704825900619082887206309787616560953425959590685810843781646243178193493406258852547935131486099040984284502806148053109167412310671296632681206315430101954702904756609100863097915867228317686874079946678536705307499345767202370138031236197732184064574365900954166476606081860311222544969919220608658938508477502977813426026300139603414467255499871253267809070041939903412802637891185587135203126298538892000234163084882377737558083764417723404291676120290091578340175240538903457363310983338100127336587434950354200557208925130212302189545194075529704113293807041524683331753085982262614030831945999146545883876838004206685819695147444879679867301696581241121059882649292896631397389775858797997007483906572471778926531776758531378196027635967232357197004595440541728024400686391272634296082912847423388517060689118106377607331907452347668824890411259800053666433712445751025604608947916189866147095441376839212339191807840655123207288518135523351213050389289624479801672894192531069526804899677495049034379120459060155778515433132582078466768260696946917781472761692643614239909991779413033031252244957022047473420366719453818402790713132177080160015428990710104926074658552262276923824376395989328793501204646754605316686541758194761773413112293503045724840965477153272211980102610691086268528222777533403285371037886026315528845853455263576920994058827935145509493412089252190680472358919458749917513971909537350947529872568548634813123796245578609624237898761271974661417550914845446315726987490426005211076226877164475990851785098719799639231681889996707662397591473380118058885884122414671636414773046302291678006959905511329687045346181744456354492878763559896335337800714012288968651501076684247044099211759331138184004571569649669705284395653479086240029013104002899540544150883207321876626895749527126508904534389043944023286982784107194510223582181450881167710658197082808688898321282380092258827084269391997007601526081627390667721464988421196217570851643337872803295243179145786357192525197519837913662434388708533554603285155315509972365011041749555209308706183218824920363448275152483616208891306062182664807336354945193147348701332455082507666586879898376223309461196585691989178547932593876651124552599631117923766539771172550028432945980206031581792724495092848701068057470876788948148809492225394647377885928142491494014389602281282359283160040492399899009384541755116450030511143691843344286494071780992955364519088850773446634817805248572279092594010415649657236675645707507895671677552087018398111579307265060182720525299640752095898533676104254702326813811979050034783379714415042355966923106817940514282773896742290691129127128965960524604831111949408958499433348982288445217798973528896039734290575889753920735750365268005321933831415112589281805518241446560640642067716530512651475382760109703358417363021314745032533711090303616370456876683112587852905150379372811946902758269714163095428383233816134467452437079700906031483386775917611260850837944353463697758637871093945821944050747625687286442570323909118469726177519910479638083006768245014611920389556271840691591020774305658459576188501582183886724833845812890549905687377864583446673082598038733520313059087058081992378022261145848647930345322767504617682119708760354651291403845287927037317314018982915194552748762737942196393408754706069910141306113513237962785493921695995127860578652781123276910069694532618214222895388216744193528211879131013350464071381439496015577234108004993938769656107785172184224868328950233341884571989421960009125134042707579437242379961164905607694857092078083201702936868137188420887024947222623826082525669686626604268947113860047556321953126910091350071814271402340555215139900794070112893847644685556425278831804028295971470504488761704473970717982593745593866544555346073848457144479766428020431713393364982292961388556394839557968931367709876060220854248800820808428172572364704365984984170916575280586658083155264002440546110487700802941659648118791481509319296059066419943027326575585303256618217207449508773078292298532633244840384359860825971829367498408360054792464538611263312815725725615108353399861295987762157667309352305801781166780065464130373828093847604670724259507976719846614608083153766009571283003141539517993843528186486936178388031597016029409665770207476658003045060237162912707031251318272767451855381061534841158596065368782292611469163639842263884633775072810051451949899492019996044892660573510076457800884006540901863258578527687502754332982294104418844217687617159275604555553881347963092874031032974375986943868007310677124604059950987826423655290714987785190255651778115270733708234099341301048722641997646545051669756907885709204866855960173201424392248958245182776949770850553193482928343517301037504074192202316663294674546697100667789675464834709673234720169166484077256950435284421721371498302096173626472600864499136480738584775998016990140990953245694333405304242802204976110026321261691901298526713368675645163091874337312237994668135707811236139619140302213182928798325596766385984753229135616582779321146708298203601581141511083233794595277515792373281647239023610914257170588375401928325640861805777634354002231003253199134692524416696791844186756306094558128503188394772989214018716462172847609403647665335065435716829671239771513338431963011382194517669589057736339184641909025165764715655974880013284633742538725224004732385144617460812501806857605999824049640816637485439440774693200038307262879621141051294757862102357542511130706199485104599471543889132011002532256097488259132859625162487991096353497816806724207109654743178360936313740773755211340460521332195655325183118037376530195603296644308618974211313071446407983373192727211581903231539080185054543637577704693034591222490969839845559473263158467720313080976926877811677764562812899757720494283309483674053745486485676067828797790691771371015923310455982965333385395232992434198583368935937214787489166559039338505229053591494354554730743893653395407449170544892226848447988586088867363764952991926178369107339179986261816346999782717838295814783096891441800815300283410483364066856345764493286433671004134549507650963997298885270949523289529334764188411019280098767441476266420810694802698394810276457489596835015987388978355553342933637931296766658662824517812153023006928698783955312431938207292812255892462651893194273928690085416288035618809457735278368525060166522559542350761063377245321232676396826825094966675839551734081152983152979148510778496490326996805264762647878838564076478714956588754345440186109102631052439517386974743163341681003222861746390158156441848379517531884005433965254372511843108195853243197193049363347813218547619539646348165264477505394858015233827589648689016638996497038469131703810009754761931389614806340110815149152154827572548816941612478225028611206263783686592981281090884739042276811125861812602791698523730511463503674468377820055140845209991575286004366844383946858874366008373159996490178313792651050976575635061571022428742093266300038254438084582955803272121579936140677608891896478996630636833142130656966565399119126930403522723558345679024125160428215860029230910332401846421562251169771984777636342681200225210301892159065588320324363956250617254521980063312680655104317225979804533127361883802898029555087308443370538328214530624720180866324954695476385861034477214645314380154235002076505227324327859055149251819751223935472718370948990119691850824763345302611195425507897980635254484084455254463005428680290172644900110167111607271897500519543176308340924589420449894747894918031304222410209811918518702165332577236938424044489114494993391960029602786555178016464820046465036728781960256379137899374387103546859104915927777214416985603349837156781124863574673225173854650108011375352662188041228355357060064729435613316637637280655546321280911517725256673408784392605485913653229598136810049251371167321122468129398888232759498294015652255184015969798473753978939016629975422827110500130443568031828019837996081774687016450033952238928216011388054071635417808977509216093014770910289596339267726025982681393362577739696599364828798473024099284350749790188987015694973907452549923153312784980626980498661833587110010928298416762381867577076936393230490344378977918941961693106009508801023901399267541133634741397812970445439022114480043385575799157191084109802836893529458058009578450584368553277384903602939224011055561642884600889387791573102602679853284256468361401349331669861800457225481050014819721225246544969272864053303599101942975869079145715692776839225320270262288599608934188397734950489001943112811671820976083081577602963581475538123212300809623214538599526941203963221414976177192590728276714523623001004875348743343639351897985862945721573290580819925174775476538837357247251588006502642018566498540162292650954274371045988715537752344009903751312456662435738812329319805300021292940478675237802228510546917132495922517649594722954747482295929976083129703153379565228120975571014095388305902226256612969385190181783655724215083759947741358372983739191791789636681098778308835552710509860506847597416165621619593814986555528433911520269240661527946532629410289114798382580889234676729372648047937940279361189332114008523093236332263551119356053026365271062333695662151201129668831423364135562842843871294812818214981536111335395848572053332111147900247519056511567379161157893957922008261014479197664517683925199669863710983315085601931456799342033504792093382840969934889012713476892213004075727903999920343038207544778293636250184825681136616542372661266081135716626648166890020368891311540420770621137385241178850098712077970420362623217285072621492970856231510560641961305554755696010775841614673502797941170254184465674854434812694539627781204114357773191974172338290797324931100954292940297311751066600550903497935368439199787022830243128830530925665135646611828757383493895637104276696712964648452294586210366407705886240436692762312095327466374346080080503570123873082093430163649405477366422172425032550251472211810008746653082110407530080558787055155542798788664882996473781693957923938478373691820470714059649671800012675292422549213565125584442605895965700603476426397558558167956433762589284649385786983473189809599450754546620068777550314347015308586349511281192653494984567361187804440187529141255372799544446191438390274788904128128771095500272476368970789133121178626311631416886200498954015784496284723128145106078028540666188711982269287079701497936235184500284465541211337847043120691515576525363456876512962041349605185006469273622097649990142582151076543068264030560703829363901255998575683563938365984198791959652224995908798095981055199775024032229730546161406890232839699749159913206448098028825309314254398528933303871325105249972435573429653470071919235087250170997759003412952008218452818963364636473756095488854802483340789342937805091992570494319772721773734204798697503135554619262988589996207200537549647822318353955250122826281662857867847548234870678711230563199226746293045171511423619275798811540870755430053116682481435076571836043682903462829281510123540695531482033594570767845703686893556671931425931309958229360342129034653354022735102181025460650768962790013037344669158513287209758254235605589206476801025622793543991132710803885944820861741346367748987811256500597672882100625624802478253590063728603252502195877319801412175348264857220243224766548479483758648537542088741453280783902327818316086208851440545317412609672232830242676998707552121578953599784957308787741680423910447091587945182190959092605917350816854671970433604517282149981591346585660689964754076359228632636003742312477114639977808278179358930874223191622430069421011867014189403950364948116029786381570068055240472014507350583914697584529547543586373912765395663575362080575654637809161568951461050816840941306312647407715477534210594028280570502406190314313882254493477062200094247857767401948406583035196377020573157888264835893918134221579290636377446462468852531567240550834748776370161757145866575209130067737554726732687762133739945896511409839070464940641945373702022512824818903448916115183223436195514636307529888779331920799356384843771171115152590414112058402770047560450437791386695574963037340012049323228513615631734946269183722263923680038304933144289805372514791854434779548934156678159844994379849742430529967533312294131847271385989796736577990489654264503409014343464365790743321816492704681558521453197994712424273950487077812663607480488094298048133639272316534408401561570200352417393321229257108268745410761872399583606332276079967896384030909481266695733186818150157795964789801025120624111664921681584219855107346464165227313907447846432277607685372632553530018965199592599650392770095719991504894570921571691197475389222250715620657030679712421387293048471002496020458137073069557909979493956378056179370709283600491593148346716956380927333522364660935750862909046534265012819407064070434660988145766766960575508961157196573601111176680831178812903866140267262358530918363524556574952375288822531591751247373937376923940065511887098861540838915109080612531872211577538004787462038001397120974152634187353673927252165400404323879566829549993737870884286781331468024195890351515338406892028870249014704572630863798554352261705344125039009304247683067622104080031867672757310931109088947656726950442114980779364209171232104303275341525501966230860685533018272113581676889194000387072682564325869041820490880319894846706073415321823783697085533717722902049334462020786594488786964420004554315337262265353478451221608743982430775722830272420379827396963551035670983454357181403406565977447392898350508105229344883192427604945930779778751515968979618107462923425075430123284326035768545218113992867028884970591449439587201560226940843948020939092913460851137877779353782594554031956039270460092323868493023778247179390500868618574038727191595815069737889759956094049793892938585396472464771541166064135554545888320890801071627153535075735203921766425150903471059169148245386825020969488890800280787288846917093667963472232183689596658655508614640885203210574518173161442137585373541934484320670283943824333027648027319821115255770250356844932821495306225082964251029050028998144890905529219103647164748265317779013473406010011486704280288618816836059228279733485387300972963365009040544331456213866901983514005005259049845145084902555579864045599125031717117798587761565958811581473747191907440970994480475949430398958011800748281763576065543105609067616576990706423578635074428326430931396690053008701161429331699082092374211776776655305881164812296149372703586804327165981144034051591290008634076239078031168601627242477784654200339896365732853682630472421186345557545187351619884529517910266929399634994758461972026664149783492979403351586450793736811653451885067739509007499038397589391641138632072311655312172903325352227509411170503702723582764905664289221874108032776899327537846876207736274174284514655308376241760162121094627849906581318961447648332009815911844669354866839840971781607388140542718035471171507210737822025200843297481891136966731823749859382298946373424326329816159520313507386693766911047918552897668551898657961996986066579199242403530556503129581317265165044933030660685222445991215288380308592234071296172453396216105239456112347426712081154227267546286031620474862640410432357355666686577542901559589449655233915835225694319929255723359430394061229157525467135226649130061595452554628508176490556310429873434777946402461767750858216221132505199053220635705705549177942386379150724401123954092673484610934626481634522255781489453604618215972845096997049796177603423775871672247647456198428023856937286206467469624542113486714371537713328678894102941562074873053716472456856914837055589409325491765443413354198426060414295634708856866349919709458649756669231664816114680114746424266529140585592610779855614834534712625727026728770839530278547292950656073200359801176737039339899843408395061149659987294982154058420356705773534841786279132074459011926134210598637668267907879293570146092958890213906332071784234534400973369305053636681314367273516464974975476908519727785234254136864456832497353893569203270502568879903696688655507149679176699502073508972394860706050242816890108632397596913949046538051687645278682764012023305696903034363381505844925837643941743983270294181210940095081511039111399432151741011114090910277061705604490901944956951547354949852334742071750515582098789308142427212180145144843738556613102699090811032990591464594774075218306406492575877810327201293293670238990029219381578736203248459867599517644765088587125036984638083725614066937114985284120056712028466029965938562217240950147488944196191862624939155460640746646783108582633735550829697853351957125393180447640466782251380713126709063690831285844276470561692139403420798265969722795078630228081925184864118186034699478627332504969164796860698930000502388184432277701897766336621226228031963417464579499440366425074403428088953229351702203953824817521518227166794957214559099761807834784266431404931332007010802866840806288779069534125447753074976311163628424238689359196330007064587646697771173991496570819343946757082872276161016026498488345195693340823346818960035431703733352673315933312046459361108109873835822652070175164199808442613504284596925016909327852543631902078153527717376952670327375451166427659536884098679864679199340629770750947756775691367240347763613427886285469672482020256789101989568232393434124695008797785832865692045219543074545487598220657409383782133535779840653464527219572918457843002306686725104249296158043249796480584219063823330517378315981016140703517108833847458106013085499767473174357533394068842052619965817823119911820435444422895573114355706020128031317934984840900874963686356711872242555715152453103008881693633466204067528019002173823662288811444110537920247011573168510109211759461493394195528507942158103145161157036040451541354999728096775884591333604983035434533585775988773672864745551127354257960825382959194039633082396801001464658973654924775099994910141515091096350563372597384953883991377861160605500606989627692372303452320388155025775877297292736802606447057386071777184063859364982622290879316771566346732158337434298555552173510553976714399345863593917539594358503474476796663638434586374521547109394485083826429723479536042254506957519305001992602167300862699547925359348928158778914826519774931736032674343652627472507818260822982051802628391287832029989148209720343658854337596685744457803647058732284042170950122129740167620678706044363689555056711981713730141392975644073603121906364549601193150151192398344681550250475283820002325133050969121811126749927506046732477308177693062214060178807050618275852378560514051255409613299966946922264146313709722406235935284422015745307799026696281702947747837318478259554955736156814673326761393341024348968044249109914955703641123581280007575616721294141376508410655733266795287072522874045085104113078921814093016935582524454185266541341243905772361056477931365565375740868816837268910047360984634745502052112155086153005226248231376471912630307737210762616127238086991723478296386149085638940638417090666210927207067138478385001140062402860521319485652679518300150924233971617730525444716616635109159322251279804224978248879851955023631227401327503553575314633771442637846977294490474726167309146328611029649187991697012908889733177626471143687292747601924731915527950227803579022736206062187912898676672290563170734299136267931282755508565325630695358319761811859600179439836985284442433086786093102975433411201325835014234996618693651140718301928947741990350839607579435443458764081836694994408314812068932475903681456410826291961319395676984758731125797331460451808950264810718360129563146211679801573930023053261200957770011824165760195167212323843460193503832174966196331311962694702531534039816006679480825815261564465579201995312801745311471222275732969759640263860356918039849256154779331058239547149120542798038405618033856518428457330015494905782641135024071015124465872484573779935318989687327225664383259455022473291382321138886267742553632000291475848560842073926517447035556694059101265643593991398199889061567780884052131404612251838344868625242653302205077211429084518297154744953435137527678082242594483250166440387130839670622190418028664551959040879385215931319104684320065364867284942372693113277614827130566142153820079062942587017707271082370002749782963796401709427920472680246594321347481801446345613697465459378549608217699292124425003800609163532731293002728831417807501179409223546354083063273233448782317368234750458365225778476911678238082008619121587409339733248368505289839611187721316721365714114759560396718105740733830943723227293479438879548000634953111273431694537799819126130986705501977134345598168523759669666453788642338326948647724249783006798975753219247503488407148557425092203048686831253503122520054659690118481325982319718556835501797857480716735080636143643761546076207156592596533906527138147910457120831935235771134796964084840495215454593780035427293960493507002536944821331283372387116572189393676506735088866063007799434013272812738983155998692590261834985572390589886627363767472407084611776244406874937806829860865031002207262018077256435536151238700095102889934401796970249305298296298911991334806153093075873436362724569217131885508752935459614088898036813079676404437103672400262488527327266717135867245415805768075586174888484573882148914953413803481420813027640521460278738123048346219222977203591151140673859964602526270164108449758713360597219600848660673737119796967739356883698166195377993706331509569314749737259189670754527668989406864113655096392499604810027723642582134045858290934443890237872900078310651862843727243156061838833218222089714217323550882172215004922217324994210939450501192865058244542786786387471748516150971456564414058146593256616869582912214814935608905680756690429957526114012040293010841430430332683897839843980326075927377857028202070628072591624815202760800657129652293961059286370454225685524626716903606644727416994587754851905555695635827211316304430953797544843580306067340836207164275678151479137090032094863231550163600278111790124309205249284321564417735766142601557741772951644879445480312987864019417278359875054227821266490955418499136426009968844272562870187382019929637835548550630336680240986096188527680774053974226352609604515836506515796264187236667084926853105252202008758791016592349007672002082762229428010261828881168709776615558810529215758816903462229433458114411087542819808312964295286975718016585530190930226725956936045901132828894021331812479405726955605239765394987163433333395076383605976753467398541150634117374535412648064984907404403893852869180030717670964239856761049478099638168965518619981775639889898882603910874483300471524895229874404200170612136751874694329820585328346306839739957959387765397674668121113666955085292044636261503934763777895482490024896559986070692822296578724046635034310704214439737897133240682721921399880617394585173141450275069983082397940378706532800545551788091776461739720531463352232878493769085156472136800721950474010160628795664976605772297854132052294983793823211516661189436518781646767596075776858823466313863408387712545911092466630025198708568460650324903272875101335459814458448725948642778633213429876747892060873277810906400307786250544882799415914387130047557670074854504722052812146527275996813237979998617374554494757016685109585475164729238913452610656717551591351921237297394304984434243176612294826514388756613887810536435530552861628746607906133413212130381963194699936720175671356119705477730260523485396394784188445216120352841207715048015030737758871206942906097140508422750346879139297543774073782028890267917338951137505607468262236427622714900955985774691430505403949570760051558836898209882604309406912899739685750432323406409866787382816185860513035331303763811599890855775221350674358970568666871284926740677636780515768362715491604230576678816342812546019564539494580391930138744195929720742552466479821611310271284526328532846619965499937767612137994173487820673347315927866753699389048307330414041595403815099004413539616029170868213086846875466680204200390128152379778850920724804180169553308558656447279144506550233783516659141504214313589546027662913056269134094965401936288266439742167769206807249332397420256302349642192613641903699502279966418204073751258608025051452040464497212871690725865711188338130004862215142222167424730053657275072330718410302838797156283914158469263141090874442594591607038848735439975170006836546451755839709942338792554805061943755860439668588062771198393632936311169407242754128384051881626330305311882387248168078537396858276702671811706266733130709208518362989227119543941788925570250671142880454452298508507563473241726609691718562091655218439800503499959920594427961927746661666920414231541277054614109694089421254003208392053182083459584044331552772160703271380879329296833193231195571581518105259163659099360411556270598028839317289598490546974783366666024486120715236435843895025787396876493612027371965898515919521990810641267040408562254815300238697065759651924461532605224328965679316012980282398674416276315862933720698771556425216982523907403190827173951080387279249613904724334571892413651088391060904884835123710296440367500748806156131574504428100142206339440753674787869203927340365019815367026706195878370983673442858167782532076563204029281429593871545576040305820901540457714347370745066907295408596248148322745413502800598824598265433370358543506145615494499767648085427764949174600876059244693336714601040335060087743375274493487281473623978744083671157042728827767337466780145773340491125836901747914345812309094084391189694048863059619701326846451839764963564417986878962919344578578147729302420193315610254127565545346644986428713142628507356872739599278079443343453425276825720340710320548430761821346897116359853170572443400689063315213061188712359977645664983328433467251720277301560758973450493515801063215015762372021087618359917761706317050777970308972173592392233281666187488679547999076791513374245645038115022222640501345806865722172493399805673890991277498060529161249659850903063657797181206279314346692410366782729651267844184394449453347774573612932487697657723458715162178366561196307577132097388495781728706536649101722433480490681807472224384593270430471264187292495208115403230915769166332580495121857566854192364203227836024497017360202146816202292202821101609045477636051387539496397578671308977759355654744795162753659667229818812682268089351856615140174677308515170085302243013481558525045120598379040032525436273984320875877049300967127466048144407646506181484851116522548458335151843374275748802330304720811911421352860650686601895769868411317136058474409973873883053747966731422698177904266402147787157575238854566046423054170418063458918111809071523009284468574244840582258223946805730742396823240159505563628254126509258188468268954447577491666171923579471797374305300444448240721297419037140914353493527734697548660664670087912306548001388885795277756509856890831616668547595745232026185879895982684494923841357859103369651655476187176764525987132749576413094462022763477174372055667597480032192308058180729957298016459466548097577006981183020125370917956593302968185284405098161983354377615132086784519347195297788892992613767458496883315547453695890739231445154257157693843589994247793073370825794947763078061971831056572199554912046626753408868506442282281895377682119616054939870259238707156941087452637830477310432283218644368245069263932456371972483739370482844135475393631325245204472395291462569704448019560168649065266002838887364640013665720312548777248584429570490745216388852911621059961981560267001217141405395923980231737780947911445032821166767759526902120815113866680586653700760226917662966238009899281994547759106366808567124955285603313256856343088203523461661732809227908351999466360839920221475350156452771284158677673529154395788650620287096046567714340325042018067352586130155365880006399517837146539745923036777779589664056525673891995751526179925149068977691139554444449071054106781801707906456822244355666430799088059630852999279210637000072036375411771844029477996961195974002146385037845987365457277831620774071025488497556603948954294249712187758725210421054827540094871095043997538195203822697625350673968479197181649839874789505906624674011251084323325647129335304397284317174336465253804647233525144424918293093952997317092471607172271495895608571602362803791372296966607629792710960545959688136578674304273604992898074300404373360772848250368278834996224053196881234343992609565360120885591416926240228582543712436034364678208143942179918459836327729768688414332216933854990364326220982002057281827259114944777852478351701453202918677780960549414542811555508254082613877247304386730747175987819039384508187542833597634677618499848967591025022743987998799444696090447777189386624139680287871191794119427476758734127335495199580451600328496402050268721131742650680643967631992740259965065442496673930598936023441312314889188342339700118079557593854097795162088288915195936196772905428231166698582689827781237684055408811035603507185256245353726135148773344887678977706664942080129350369769776781648036466588697234286034832579773093003806132379820230525799613459948430440957763128111149097188589026174810551330698269631255473179554788881174127067189242417386343196306642132142995975587924015898949436419873513822892233719711888069586147349285660246496644883998323651187120663757359559635378418719713172403500832404686002781473835444775182503400747182424498115593520649061805776118486135729669150096135136626548208723585907819522829326469468566204528999840831535257283026012299186165013898709951778917602718922078345461310037772991618144345233736848110506748947889659147175953389496878872610939516666833571556107697142439117331486542074826832177206140981645835049036654607642903154047332005737235041247900715004447573648091180585853320994484226271974917171153289541792285189434177085178615494444619673708341615876111169699197932499033823507219619857836049615018301238492253003725770795834943492093024616428422161181633569005616849364229492588376185980509924429882294049223482631354152805874539741712803016617065536252589918757056875042427046650715217118021260013456945321534305424991200436726446522504043211320286362886253536872742370312574162547428207785415001753476002745957687435363881438194593521754357944801279578369520199346645128384653711157443141515295103545952965984706915191004844973162912913883742939394404850039706731530769379332590174827758861164557573556724092237465476728792442460617975201532559092828564358728158197704228865134508513222750407741891797720326511418352714712613033345594595493106732398331943101332042306249927685360088367217550916779651320482050966812323303931736642408823074832716042758348047989172439535772610586523873047668765766024733474525606402378080208723576194300473615767419277297193050302777519586624434873335299521755857328387947975794598630675781942420044695432827662241802825516332844509274846401167521807566689909369214391569904059533097364892351534147076899895092285611724778252776587726431842144679413586106552729059735330583009370736029113455017461104380032209070631596210107048394572153674065870956649944281615804205883273331446456833281898972951405381154235638065867873309885746402389355412125455798537751668477986890918978318398406512092282742524139289040383462328898015846463111363810379374776167151992178787987919442433712853263492610906389176063870011995485529788331136235728397509899777336073593636986027872062559209367441096159362304405958155024928094610212472790230240882677442894914179424487707597472462543979282283235981286660488686331408411424405582486068765083654639172093149714841502700429420367207857671362385281177134385492334183184839265587942095046693127126144417513376124714158427935339321938204753649095687770354735418424791995216772414764280448834556697227396376779797117272448474289060965118204971657066345474485962544312241928499065715313342790737230418468511149917542779558101069521537732257758421462670957597115111755653044412932459570878972140703592675403665133889149663490127119502115367847469216459629679324940529077284461670156029118066049490662530332749098168665289758265605075458557934160561639289305055128087147433143526917054177469473151905204669955640374572246138408366630205363614991986427460115704069549833245047714157390939496167507865536285632599353314819608463821709522928275236351483415406130261425548673800581931817536918486887853288943797002803974599871283587615359390269515195174014953850329454865692363943524913476536205414551544317328300773051804841947704065774767334290681324493449603517896017781972280568448689748208833676151872061993092467918438453782154122782750115890221574142867562109520766793788338988261808293882092897687731144987516246522706989760076258071279228735762145444701461021622792899010713044117207732824047240479480031611637636417174573583384335560145692691122304833364584377120084771956597981452369346543899174110965880341247455174334234281001694656831913062049700120514508737235875287418208589120872899692792528393137068865961668704059271139516157297793344674700848957240275300292565362420287700577891083075767850173089311501807992220472451093687429857821491734832000325924702476693836930352153893768498261451497084505341586127894111926089847636482734316105931853244665244377291248515033224262427695379833662517992488619760917109677896556814129457239043153608233687912218530091217513151737999649207870915616727937999708870731136499921820956482759767676973431936041864092481503050053628540014187320476237052785451789520416918408517120922773045545183207308892595731305761858988576581141130256958435378614463987977649538384315524381753023797741797260677365948887046353347071051930357620208970707611618456830830895844331666236489361149512140460358438558447964422734215371322816126685780673364231707487877476210529853020797661151976508556971040419425508167052337384864318937195327664900299369967640973507002091513217553480003556501384961399550176178908132119171083280842759675460661738583555173587035188466167059272465789521155576235476142253457561451434279773397208802126666699290483968720862298252482439795092773448346046821769701140194333338052577377143664913097788823847850862020514491240776689561438499721775630618079734395930723483402648521917133847163802198532958795306314569250107692496646110580201411739184599512019352149792086035869017258924047684170559739885061564475092207207710593510017002698972409276767190325892990761054256628646720201745266744079860008941126980301236801677257963218664215150397287880447724856733131222944337506558547445406812737323987996816310483337244740698674583187836555089976936050852420928534493790324724998130906136105376665822945650821607749892134109676377034574328729803046111981663646227727047363061919782536789844378719012760434008729546234229768346275903145191272779507907104088953911605131953579643536313197108255682563913704092606179566613734183431036280119644896399571045204266021342058706359383925795996147947098375429918994821845336107339893571252745012551135388428617680885670115991636826326823167989791547500953813088835762197955857400464049072672633386354974234970258465351752417136750753266218115043780947266522150716989356329319881849718076355612785438696932130430172183889172954727385169817997640785996453769587953544172433635197850990698912306544858699748458647492043093955142277038008767822365445286884223504092857973157388886466447701323463109852980302715895542892494278899753795169231298390683114079622110405049373779909026604402713140399027772875998792561922808640705498597865047407772008066201355769751584801471725691121776966475196752872991404896399159296606576543664492314888950680976629534175203650352680013476230238649762237303127202771510636192031597237449697835686618783932712035097476664246651376387826786262566104490209679258411759181595610089174594946374739730847499319586464535640437960623042794477558225261365719369201556395391655827972186292138558932106560351558828782700528389186361718267724838619893823544568891852038315900776911523537992694579024330986715659729384574966520358835066732002096096198999654679442632970394743572500982958001700033182449204554179589222674943197437986276612269588150977627169849836602535371345788176473853759548488060990736419111899321038586632273193979601051569811831461042223546387678579205653774972026733465194522360761391675259586928246382450797414042119884264688623757158840911143865939276545172238919870675272245479346062669564733665447596216797429415089326740581683525351526004993040783191576418657621130406868587383631631967380737492517707171383164172412268274204552234534119092184622787448272763568313603901499525203179916787823365017249828442734346988702318892089362225670276167559859519411959077688590035952579901373681862271609263697569541598137444326261845430432968807803368642671098416060048402398806749481129963333479543538029465677929495203812674899778676028642535305940174432446639058933064379741451461453256669126983822228996378094344674422977364838576264487874015750375402534747315077511588841993749454035697368826230036814211660665152205278536636819746369185862130224088461668874107848688379888794732839655156021398460062512003700596278469764013639454080721727824180573683897013185014051291179680468364337130113442050146934599871987830377151324385737481875031046698712679159026469813121771343368355738156578029039040053708226865974008200534592838288803322140358633036959217327985953575195411160429769353086223776155536194157505588448301537453628350294182116812181031064926686574804500434104052368771101194424928944216286214450993161582518344314376036633724159713880522170153169251105671899206606764695721658606280693961529144694878265810245333258349230394162956913258090249622391565593052024733822563461113511055595148332150055917130862143789027044274659712133998069764027174871768679636677952385095751869149408037073854613743592852156352048638264727770038526122712998329571897167979129440109442918548751571586024864882734145045055846450994546609636584791565613304247607270380996446629912031464551864868497641506560183376297695002096683673751764449451088174462353696362184181725210984438846033691494713996884894321292437379925822852312137594794642377014534143166869401458601211653324031122777631831240843337120367348363542691890964568783626678654775358721352299131455010459771712586897652325898029389691596878899541499493388520141318309419725985593555988398702957970021841387046367795164236191932761376795520024392218518442854940310270827934486886431563390650421694084063587252191942112190974490282506105748853639157063034989132170318400117402505051903503037940476185522424360995756940131865734999879805414601900557898711329040089876346352076373140338590476422874854871250397392182173798689606985652033867699834252657664774274757280443076124374364542759245759203934487429044191608175187618171702008912811824424920776173354759275180737837782796497737229730540520770657210983890330655334434912021290768796839752741408189201921258174928828374593281346675744199104447860449257148154381039202051550098473806155947858872749350086933899224155197249862096849588495435204674593377920571592052933566879095309997029159008201483390385107877716446933767819178080811631106913043145273983236907081030067232108427505456639514693196857807623734349997575608826774401322917168324095312496100861593018006128354350499042569535711561368137187187442145906142258639041370873419970528976702730985993893068912209245507341085489416221969541147093708116925750295527651222984082730661628000076993851456018413070553612493168973934858302435660928463091887096344852493595684481430050422973172033428095865973933488729881052545740862468314339370521464266444686713825192211348317583713272974028957949277753593738528687934898311930150606152554076848041742375826275429346271624792472663844358904950316734958033021332061898831283077317169462658960121069920310724734525054656994670660436850878121176385225026911757382606306194621704628996714371421184907461752481732404569745601294891441793929894062910604293461346059509055283400446361015449983774162518470430026479539112793535701772971030762592544781255828880034435973660317238539422474608414571794492693466931466335740866460225568576470969806613689833545987268327252384228894641504399837804747239884636052215693415782630946003123740303828740024686862227811079644157790786748703521800585580935095406840316405940919178095309190395510513672365332125342636708811148203321447879318079290635565129107912701813318852112235631678949357154702140275029254682591840621669499927456305348292484131632468682622066810764902691233325089268392108776626567872760297050455786840297043823076530674384453616102787623966962157666729788645116475113912005526826585936747416850704065563012263934699231630451870752277115066081371178440577739441560958438178152184195992434948205037711685446847910931108842677920043595366615435951156294462830861264092731315133189233587231311886561086868392197709154740147868255840371788287694615548082612084508334174836443939014532797712289182301675629716486047067678509041765675858114232401812417620501272987104393647201153057694648415493044428771497515852077946589313071381788508129141008832934192120447858303984928505794712966253793016343108470197768403244539762954351159040859828177750868667929891154038900867058153324225732891383890416468902029603572133529739040324977501213197529408656752176094853810002427204386604099793208386336526385490497728786176758297141541813871982887612382662371868227853286410035943782141562009951724578351360407503279398773127229044327072090146677435146282588202731115377159877181198655939054112794497184722219375054923117754253208027997428800310541399052282546082174396429662285063476126119008825885880870088980159095537124237026378742770806743323617820396060309031517935888844313483588794330000591763027534927962350998831351545336576601737947068353469569512922422945637485553499258614933417676683046480336126183737295631128762140651408174662176819138646185971282749567157129703646432908934474575047448671055797895458219462123478198796218910285513907264700232171897791463334144993107202783346769786489917320309491910970349240830465878522689728408485764189213673180786635160440586653302504688363803914923187365922526122157405847757955557448679400970871283007261408183147804561496152020582764572223435332008133301459390877243729930514260986648790844767950812102538585850782952049292353760708022287349481473359898645107871603194719888185692622750421378011338031453202574884001922378037907057104231542036634691910687989094459080817102934932100342575245216606813022042027898370693455988153256923293786252941907210329974241914397148197586335637801731713780631895962320894149758224003760931306754279159539567569077139816341533452096117316173881811854026735311154084515564607094240829423888416886474940110728381589498633246411542447308404070009985975816680862129410294688218195328077135650212020154747747326064252300094098940828673531695391486800994380948687935834301175575105394070931039527425819284984098794594869450383141468355606208031142231200365877041633710571135999211735628246574499297476927678310970509475539587532519918354118167480967662714478092913894777737770981197331184454514308903632264429121500023856642407854572782340698000709899683851188761329618922693518168545782664814610734762204895934786682087352205732056767806237515283199267935628185691036751738266048156806937247720978819602763132489466431967808740562825775992034557243261623946165313533263280215125447387143336865349782985951378926013055631310731380473419209278619284631177264397282482800439751104957347147682153466246777294204684530021022480231745991157881425366724911383323614540107075233489297579479920042842964020927209359546051070835881209707891466316192592995689351122225138622708730258144345266264328284314677023153709527622794639275976725052499481290458841945143610392115961823285014022999915330508935919495513935222668415393229940646973923315568635723959550264415587903620581388138057768840350327987214426048090274929883693557194000832056206809942493477478228277282482285172094588008087197874837996695377866783370085819222354167249044836664030694353834368923027453058583178480812336801927366742865294786284317172935227366943846085363528507539124419254365028239550071261801840052045961737970221460355443948400366245677217710727525608546238372409410900827507426165251926447160928695456752366233955715230085089762408288164864380031660124184906701117106425720806350927782284118060616975627827416227517082949615494117642198485714084258745800374411625933478674389815430897262177765817113375186699398717965059943472631593670963872484827452468902037877326196582336905029156434514462160820981976682477341050861611546742889678760113640719436072728607037008272139828300262557973471216170892132842936068750914428811675716516233610168154528531941228638263962534759473856477158358610611135607328621514178967204452180372802711752799241381023722658498443383094072673603363547704552585380556884741664143398877846608785501247306884658192397797000292036326967065567685484585855886155835089704312760475348712980249952788330809642784688059583246092287932834244702902654661991118608491795365198868181489737386014053432481041648473691371749387732582982287888527136652145815404223159327206855145655841795235369755601655635689998943182638239794622246656888335550057562275020667681885188276527634882615692361610878388344414499779103319194778172421626801120422396084982581573635991472725869874618417013139114270515703292663391673308611365051192177561476398218024436061282591083921976183352374496268995495648700011504267421373624475254895371623955360445873557552406802844446000188918706868003142391491853650558821777947738572149302719859857552245168582558075709848720514071493646265090197700276744028199985607961137427567215480056962041167505487140300921651970567625820397637392252161576588729093367795251137085807368857400856761263428252545775936107974175200389924074462107789004904946946693594504132858806859664618449324711559000170813606147419745681205439874355628767309186753324984273100864551115842648170740036868004475430369204248859932957365384151139410510140473316429727204867239027514453383196406270164818497656734717195957956202073948924890892667215032331014305055718517543378469632629457750979714398797355640496352789502436563823119006680391926305104144673532118156400646434641015864686500788954735735845647027597666784017636748079547852429245757047381416782605411079074831378314525357932391113387316499153817932672702941617132573007755794437920818194001190772444492234574357881207714282233832796290320195590309575088399553981903349656881519600438336070347098559929231048868764947716774397793823106458523772717848321238960687354879077054473117063610335078706246603640119112667534706320236948281881921746799840755729854451903603438542366644911053647346253030239290669451438699179141149364251542576277152109204495470093547794335173562408793508736754671713316847141165312278509659566212826565843338195399407812196267473810023159600278449267219001892173723463335906948064285702580239923139144003866883496551737426632777363196928563880604484477893763311474655384442223929056926431441022977402915043263785303877542853422662901313342195763029409551519682301335001001870079140771709514900685985399562453169151192308146567537649473066828809279576974906496577732906170281010078670212416528498247984938400561560357310133952593302117137135723220839777335592980395185810176143267019063697545911818640486435987558031643398371175475188089658025781210159349157835299933017786898250209095191761894806982555972904921422274772047577997091864119022993988938851783339341627539708015682101168203944948410506899932859424302560545808806496307831213758700002799688025279409974263774608386335848920136139037111916772920383470285945394612670175308412287855901594158098479518717337177953329201844936817549615173951342495943163555745639936121140824479117075386094492843880937870653040709262519784852465725322524215936730793349489871351815484977319427254835469691312042165285565363599571565909443438372311379831977213843073972999650646133149438224767495415286254457933362320609343178215436017461261131428277342737293286224816480182072432018524277615402855169871771612741753680858706975658278320427906873183298918913907748581504569832841980902051890706219208585429076803016904692448574996003111972474291574352312705188888952109151501843215438186740360956958974642686961760105870571203379378169196068599409455308927239079820666169050344289276982084309042682909606116962045592434934708811629221470946690636052955518063103973022350674734789677972354462462244437850505206133579713238303604727959257386085796598146645385154046726250881217714987141727535864984647020891110208539730470745971328184945062029205817960239236644863321363241099576505522699800283651701277716146925153406549722963860308340131240003781039653422368031622096165185483418088516782016802899941051432887229396699149009352213384465409315887884148394752481226967858409038736619837291923643382451968912157532053962603890012738503301298360395996834536276766256479705135949029775701689780814825099600225821484370736575608778840304489304583514024757460778848920661431642699976491954478976905424115720366886726124289250346245741366702888218455548428857325586995356933767862499487536598571213693376072723007662378948358560671505480054828880612146812955722742502332314017431504990106014627216634887478992204370567417114632472820403001017760253075967450615422664158890170488558834134345623749209970323672058158890092575192508508353435182525113825875192820915441576899014317929959347090737910472914492547636149070311296426102130029031116124142796949455147887275089756740928219029550446188495163129674138950312512057264092343841052146756474401081239079012908752589187703577114551270846400850737005080447634306831796985280046317169291315484181943853614188602819627710185270837391769759719547195369106286911306086504383657099876915301662681096214773807752984541672144037821730090203078750162075967986672510741120619579197519172224428961994696775072830610164971030660196058274949310424607431061063942792149964955884707030745759124225970739941817311837129880014744007805557230206989201554327252045936099578124706433661288693650421682162044622910387216839359783256568251971393273697635491171396126278931931256526764683729652377472894832603480378513110008745211976992686435539365977793519583214995352333498375160727242294937506401701358401610755613419821995070473700011963526578426404078211201606530698364171933737050157604973229778948299678391072510013014460049532598469374985315823391505637475926954224036037812415948537139597179897763243653022825107306774263474597675325379535874952000164437836355177999671994245164836578800675221641468980990892579449126123577059396213626750679478128536905022775741998280662202544669432709880197462956520766933780704853944532193665338485421376765249178305592796162961993900172533549566005416662092383824163554125975718514171060065305551540668640137957499838931916100089630786587148086661207832521614886420356796745090756295281682458920133542817691668837254672289896992491062891959946177237794801971728510782755296171751384435537069906025322601403326768907958375286628232549022672506297541309427946469179288194839707842034057274817214168560038384415041233784597292132478121096493387974639591985957055562939752743357464512396824009711442301221751091156358131032006969553177736615702182300952996637047772272594986027872870897926982932947440352912301911038965766763999614971091890600292940549853696417193868942191059804781794821538723296401522341190918330911163978113392798759532436719803399521362440725171920277983571726851981278912746534204723276025073520362868112460392437184662419490850561439790086685117908545879464165176010953806004803507920665993257785069051579972560305598610917628199685637657585205234221102181297420302785976640524489919069859303859737773470084342516288277739376138527305878454562974091444882657107278103602561070584181211110753736545908594905667112475306311366444136548801144102410846376585348705308776247829127193985163579261776405229696907625752081459608575961916510927656481921600739456546056184864063926604238932407536639706240230913878679094914498750467658151764987779287511252433361546434483388928240059602932094409371771382231547386018129644737261656910276287890757954257921795291970252606398092540779946029652806900407702004521272943290971608036746450327820322593940266006977626415399929921899293939590299617005932531137472549185853054421220762731335464061398470453934762998082323028231622761631090582929105900490079909251964557668198678236122827352785300281094323149286554742276195849028419281138113527587104309929733849930973677058651740234465567580228142917160356751690210033271490530458823859923856419769202011185238142184878956684703799762209100339720223073210298543641836655873001675699470770143150403035049040089041358031546837036843123676594047730983404152651200420928838216519514631988410565529327860200323187422707497176109156955130440513556544687813201642877623585478040993215577694164809146965692861546080524930135908170193425315256095374013162311197324649439078727523277098774981424467372295782521029665980004976002636655487037427142050679986835784676450960401589626341089539238605033606152651707442209756398309460269168619213043035849583466794569460046051063788511244100714000385430270455731117097803911964907492681604522518175781981231145539751202947403341201935689213245585742099136487764312478028978934513444271549703643719187676576300611408402901725115759406931321208088989882000754340423304038159694050524031316484511346251087619522792826675646128128211518130475251167316547744426397841666949431393111965541214013994492930321264777247561084380086457584707765835430195807998742317039938804412422350780063662498888781664284962416984859706074609330880904942659813449015581462716553348922664194222180316605406517865002914030139125835714310012882827725077017133710753353266348098956086944757031460958882566002744204555390250239423934001310821245410484021943834558640823400326642014901481989150181379379225526731516233936411052048741850399750626121024421172049907858134051542628792198416929171019236077123623600219667232340031063804083259399464224971610239030775334987384035796123270247762272379210859048171638792902414275442315376352711089195820257749400849419006547009267285426986710177297625187353294913215469093992000909530475649045466768950442625868197434487173511420430316535039285150364393692283200145960925580502474540644468319355960424491064721469346103154415717801032365780796035114045661654329350790731977779144919238369009632621581022896429806412019806719191104412143078176027308077690395016972868943781295311456099816934824604985418586360275242117528919577681027436773755275504537608167365643054631168105629780679527699393453891346678357829545050375726458058247721253652178233744791976086887067190394692510048665999189418098160734861416150252815227050378899070697453982151198271215188256271872168805489351308389703451360808635352428051686036994643282214864164895881003588509172734096629095298388853188564004012948935192189078505551599646925740398837269896459300460831595892361464456706403668866497375409488207883747299343228097470682783039422729361205544900987981171044223974383970429084341232552519566592245372444801856833093845531320755206437989683776448358942235863781833693126430217098146513095645081591404599837269256571832603783357224209131915779312431408362314409143104378329767421609681109331706384168385156344561680061929591805662344125081964884122996997953941353385307950366427850884411728467411195631226293801664307143221476366545020219029576521494744730443575101818497901631009839655765041800492557782592441154170049703437728571369654513053834011460446799716842910735750528501590169084213993872020441020982573318340441458829443860295892388230167719488723545961757275938123129176687158765474732040627155375906596206021953598972094909856058388966830583226559533177436245176079349359161323403291365204389275732585008015937776458218808939754050113602073806782976624361374639253883231872120188776085016895550788985692357910691844352885362649125992201623744293450649116329240470665543952758569550905886840731646222151483585479884847795588608346985969605066581864881936098464028209150507560576025948060845253758527566022675763219805935971733310830064257614248851132213460527104123471817353335010583497529843106050246004158721885421446186197805628723524658032251749978829415458063337835121227092875956053812507489998182109799766224859925938214235501051350337287482539430822971141964878353332835412029209028462413243429661276232602943131211018105276619582345202195126877689179029538440300169095475943272275468292282485432039345994249058112303079681358786360556659530599513328115765016533964708030223679603751889547127389288247148556877676882624293062862191828561845107322390661899872232254638116751314139891010150031138361722118732560330986510464325714978891231158469172900440704106203040520769421046467987444001881132385108029409674853855496450362036575215133275954048954534400389307176087624577639462471386956446993104824983153710395962549087300658472440288752141037643238981748328074516275269717343311349721034293923889098357824685634329121914684048947516861264720014144854055089716716873201368805749230790955591982847718353561041154642911646526244797786312431165285587141251745478622411176204827488960635227496101912616746428683244415776257529816423585066004225491681249460591461235639624784471604959310457838145019835179605262071091674454129801699115751800325022245620150060022046116732759848585246836828570391431382583942470383149835949510819160571693559956061336680297869034160276997000097577353077613350854513068614204695411981101234921560954979037229897212451866407439710324578395747178255444056102933071391951257994249660997224713003108560876082206225251363533677262396317866407499588855611198163630627533909413471566717449743950245382100431259136959113590396628056345310857768420021013525168062708529485317139193987563424304834990394648258138593370917131459004176284550733239342857346120983005139301097719676210415451231885064789513000283030595705295358087053166684831551197228193276617563529510422742718262780906765832678383040760093147413777199665865452079246250289649372218063520927098550038813123012029452441443000893339287050774638728412954063679012341376226884671516014723565197996648924704162707947062371833377868019042683645223826490352713622933020328392138161109018522392027563875952383888677426272798134093502353356070742568333472292016055140120974360657242421895127715930958184878240993447238860143113077320384607775793411772445920967184696808901481487174934326462803704524230464238740502587847073767709370915203842210524964850253653215186198080783083626719640032308734746494858721918636060213735573145186796686470355108738917744890802510418483704573152385086257849065341205174117763191667994648886161904780621662226962725464285325713645814532321722424208872519454789414043648804211149832427550576579367428433868938629275376616654850251071213262533087019346267417097380101002127847336201868681806650607240920162256146336934767821592929360748102839177380624191889406385783627127692744361547972028803259115788132071511782176285209060718926453382382231475525785464518455298024660829264013955838350327337926765266574134136849357667440741222340054105857419695186275699255737559440115809474529213887708022595385720962677823295465454651297862368971574239071001467096768572758881482789695766137374624980518910702697587379121519295634456540736672523519857814278415538487963147756842180510934057498242001148972942337343978746197454707517725073715990967124639670152505426877428694841386583134054885799362007807038988066673820026172765174186720918705898054500844025215895687385406036384350961614139568074645889872457369863803210101193204330385571748251034856548013149465892082494953434421148386437023731083411543325950572530066512706648225371326510632698910568716349895741998034627894161680653153152099528979112099684531779663236571799380459326935481561279822707994230531121140236092411675845223684115042520724362956992415567735326305925607812120967993972167558601328785656478909289029598600360164230954631527981888531188624203839097344641715255306964616504032542599309287209323623571621857480264238480134610761537327816251657762169385080703853652810513127242935503306241474594295585541712897946179490575223657917326296920760448209089029047878495708098591135830762125481524068538601470181107755197527806556721190227342583879181554333191529491782214551064059195619800083676504649144932957879160249274681555540386497209063986353651974275095188598281042556917743068937314909814748915584179731227171016396422346172542330513423958988913333308388514483860749416942632770226333576046780443705830170099612938628018407394579507441286885807963598022469820825065639841809165810841419653157067129299341650123616088854242704207807942008189838540039168250417163515907823299925155588357270184055520091856561942450254108380951988998194889498561391389382931299870846897658168898630473357726266651880882199096827760066923657804309403563201425912200452218071302177649574501136679212482730817180822633272206276527202016081845413680407129278784662797012608075324192754155933107792831665384488788891513240698368017239106916316733136452504112984774943268472434032854906946982529089638798824733475113318187501851137004442453551147967535215187531645475790180997567706825989960527607970316547899230803685315211974813877493708639107270412229135697653216645422858175128309080761251973304090605365531091435693501745286696011974337430061510142597272822563799956671227858399341997370376908978007067387609869631464388713165313000857297085029571063538330497599939445727781264734294542734585318493342072003781731628402501110268529421085477308424972549366539141692694090692931569836443613507517766413005444304115142193659024696228963679541001952798725605671489127014407008392438178983309561065424670170611345896483599780120523936563542661046578471036387877105402022565709248617552300814589388245838550050532563876926782020335591684393427979564033399876221103517678093742684668460659300981264637905386708824091534095417266855278596909924768017926658344710230768079663212560062518924812417060826682945744089741596794475528443001681412573423485190088227403440209427327359588288025820851165990420448330420597136538990496615560694089357886859238803071596779801815826104061469522726231367815288352806222247111345564070837415719102221882900194927176806987679223002187198131375758634021292504483924969746364319765393561944416031998093111198890911684000182516498812127942762759930466268263475167243720624794770580175326268862135953430752885376231969957473181733601175086131100380499956915713158430973767401677999965161444618413038262014231904780651982480029514591308994526372589149073654503472485645896391591796558033050151957371452675897149072866729030861780295775848702189752201893663289766122231255054076894806079614358924328113523176517000115190965460501701788514777126102964208647823040905894823486054652127916397229300378311375863931665003918182275619526094481518574635537191375740803505532675048975475139136894836798452330261823908509069978831314052215258306124955648892895573323444183403543849102797267732618378069358237715394245640254548979811791532866454122483446872353440333506937269101652734798605809044913754925605633819301586097680242281892437091400167460490451739691172491800852738624446746327059066717508636613737051022313490389820355935940001925386074153814950025370910457969434377369476944809746354074827398074387527000673663550013191891460991417605262023508979805620441763941019365118631223136757015953905539737868076924897996164391028903988948552360464951840414328679566410247122703545258785829023059413132631924209675088691009338266381672174882365011072825025331400939409213097332381048163115125115887818303228607006677467726635596878207549364171313203558703894975128462328381324636004335851366851991693958099721885095854456523254536910165938740085240580682549170213336128963842771696908520958446057211371808694370951377326095861045924734043447654755483061072223564386767940109309738806201494401674663343274310445904919053071768424729241315077811389081211611614921465977143020663813782294748853110017029017891779515389483344903052373276708973832450626309112691677323647912790532214532971696602129323781260183513284238663676758540246588635087010903287154491549860399397798581460624037587568066210772835555502336499754266718238069919478372301120960293383126651865704589044511351778547600985051018936034493966788354902893252975981539428189355184847908371976895102041360614357147302648187461048451431106567208057199831116692099628548594135392106684227292563584312282629120492857223815749473468794223223870614240208201197418935883119914323388420954122104908531846077030948902977743840356800990135819477278429332853686880316679998807665614112435306981853044824666634246785399920947491442466992651005845717546339350881272959269347677311344218780731989540005892298381471507306546488079752878813479735636135757467772363343301483370225861723691140402394225946548168670025254893718862128018742641055823389569811425688031670679544697188955710858275745107633396166424575141803699455686727877804562430261982719010101400248926892869789664051854210052201616737975349408350726267395935251585031567228334825395653234819762500129529403517434095087684398047893812349671841942482291595249036949131008386495987218975725513663002385367211454819085180829827445499952134833666965150381263069400164753889482244581095275427965230031170458706641427519517983514785092048566983993074720044369650844462172269183681611837322062477706785807783723926213655914936435789533390549698364502033008538449908380091958803154488981177459263335031387294167644117644970564350260251380816583340053782255982073385663940780028519283644297046606045801644589476264685163335966432683080509331093811500251137464441265273479220810441589748435702664766683107373587730302329831909569466608325257296717391505822683254337974366028823552042418844011923475218009831185051185564919407633748913158271359508064500192914032756376202871539423876658127919731744095121056958095423172059603544005739614213554586493889934265360692948763658065637311592199666517137435458819073797076122823722673544802677314970803973760607115948474549325546429939835116142417647279709866474595370985621836506344605416126901917052098194920198624758289669904868078530481852741019498166782564676063335822070037739310281883745958264984188893234683468189760248114835350589020200841452495233461367281392584533894849855994888549239736678271674418299972742758004304039418084873607614060317151714933480630952950787182236039007216184436997093712758112971324777469819009219537264129823380587219761158700254264451491603101012709635946377149574591050366316058920714990432248459062068487694798316877907675409604461996015897211242471261027796985076914416887851653926468559500107734812920195577534578341395991118326212801373025866107892119680751948979413224471497440035101124512738224923191426013186105901871682616995224557954314328066798797588983468990551633025513713182774210429561141628508802114680606313545813128836812539236722343432395279346373515622718239815656571687362912745913233611996120831660712131027378846981060921689659518307669664379677541334154864734034956975582078337049597829367324583687240833127857450231455503651786696800341217321290301581971428632954411311899412948146630874463494964340210440537619893025965626645184622368344971838012578010304847797663170816188425029445336948332499467759594875907385702219886237448275543825658640953403052395930624696539420723944901453356822485916889367372178623775106070150464796764836067063089338841345454168857943185326701572656172221440959525224270450894836916727920957346191370193926354803164213345838255493134808121404772048908442046230290590526403945407389095382719761131037025542973606553099785082993210426206572438185965157233751856965589900101588436114235170167489902119100698360738396085213491167345409790524438951039626475013383936424758841263234105567892501172317954567436518974129420223395882477427157647965572914933818274800337641583085685912028189975655853745437404889881248070748092847612802035445379333689054943222995966689160520364728479532683574807392218604627574500803859139025112151113442827790134420868311006524325839573298139486710794850776947731679482878398458436400958337052664924388681717450112310486287037152992802529029768051021866203417574394971017242040718278938299478961538746728334986500909579665286687597435497787560878143441866896915964172357028520301338023069973405474446551756187566892023285080163391385889251117217898836685790476522852234399928814507092754020392546118002317593140050268537894760226591065195053087023587141770263639044025473389407576981176062025713847288837207816844031733859590907862540214904146278413361231094311721460882121945338991831078285830698985140147622732397332470154077911746624370825821464419647084407931621143846201691824557758463127003193324347955100787796817607414298130796444865800848278882115609362234816865286119150331986281727560707903228097303691071045731070832140446488522143701439625521994425193468847423020834869580681861065915899258977500780233233196914059118046044592035035131372491813208395254175116982120980767382833430282360990641168899037923970889227448328905244253750788703475211726493249135761576558902303650551949309723549241658509892442886326701121541420433263274620323569268480009774861963556118511640878997648456294471126609825357840810853324029364204160620557240257726227760229547839553163016955526054253469417991098258669621269356201550534400514367900480266214022144790584032461894967866165442722104914546612042366080753991305606393080152017286256213784317444111280961239852983063580802655367368176264759933012238860837692875904258284269391734796773164061246503557161041064723830339222182488291506726378493639533465647652105575804093398987982658679034213589419602265675527404597353905082434043328038573783283729274442846116072251229926608983548042176195084848486923338161733189091646339027328973549337305059018244768156105567243180514616755311146737729217514745489296024318138343228220516990952252795289636125557308896183237501497489565458937312824079000349551839563110165965618819482602741235008087843653794109392557191873875456497894113059006382289752600148856427150294198902215925473812680115808000458294232153358603448946514777439752189442591696687265754809151484406129912291379825380967534729110397950265224621604123484033599635570262791906860513881892977268890542432604030079030846064489547560699409040474162335361994233320632755349382159727479779911366070060723214812003889219190153845589596551313376841114738287202105416575709332225881087521478809765563301130432213335105710531461759802298779065257322164254807300941527903443564038882496939751378012474987351997393766847911494950463333337264526689094281260488793320223688032370556163673236200677961550259536669431317209264940530165762972279345942079491799196367114045934164791417040077236940512505985727061489157159915343347282087180048000423975399144566215840545429901678152788662298270816135353418752163225066338198645061159441787812310120482147866826457696549875523063974089900081516990776164397412522106266524322067526053189456767995495043900664865296765643551972277875683507068271822338202216763388050069214677543972916199401397577039607320114603999892526995518544828857360628881695388647290296005998538428412082085333885877834378593973843741768820945474696356417006929972556009599509788318878594614762539146768673325888195785225894585169278021125591782090734462474137617928372232674280368990512106573363053289607612985646878424244176773097379228390094321980171244626787304355633435077695580274052247268242652029422290167233212649773148100353521309948246585746809667444750595394842399955871256326379060247367467064455997507581942780971297000533783634715743827470908668366158987517048170236341106205504923845723117599535883183277743352552717277086038988812903141283196528038801723216763969290688772595877032463092282576661555760864515800817291759800949033522567227383364441478589173402787950858537824742126480427810392201308305834210874891426091039036117723692258032265890446379885681818162546846987215991530364027553507479818298925924811100893268602215315065013521125176270524084066034207883557827891139458095378654360088674490996877487438517986814661700608174411637549659417556919520716668395238408208253522269691802088070236386012648803316647697517888548038251812358550205569135470066529043934847782484811224878062090651571079426729869551239612914782762861240430035573661051720402507157328089817930529562670556856087428857781957100434443022088566021011495850316495953393895863961650320242596256315737529882601729563340864094096251360358583304259491105276384485147486284366536225084336237556535064299747003980060945452347297853325968454812123048431965368421996376660866954761876020363037803236886324357315058767355589531838904060196602458882671770952771952454179636041537968231489615111454538630339891884587789170185716003076592110087674445852780608153998052699368318024212268385979380135435502440521552864333667438576703426089731101743066744766117867860850374873830276328621697084443295094338291817364321535579229134464414571983389517260770503393748601303869663113945478384135832669036133571102662507165550877184212041420553998087505591617151916318300014494584151867563491866428464528346322021290884268866801057533086439900116799112969150187435849599905134421015811962830984136121774717682929541514071363302600878442314012875580736237121382843579746834594242651879016653147250251915983894271299888728324458472460829217147609902292555187533892991381844162478213304324924667181382544081112256173399457750063484215743208273645117942095527004994889307388113786960664056513369799517852363172123213587688117406769781841870045051959687575404004323482164259371949654370640317700206660664730130084354451892568994235864810636426991502336249130903298355695955415563963327283515680943305308485284888724205411804671426316651353939973482088937893789634811082221474386507974495850261689251452605819713341200917662036677998795970449894435990185513590250743358545893167956742512732163643587711679557109464649018656245550784826875179615774283465527868072176841164073256465894458671617832997207853503071107728280961742201482789166544821197122648853937774138415631153594431345102965440434810543178669108130976398362313411807191140235168663861841499609759126174505252636908888137250740161403570288189208272417740062027267742392862151121451996928824764028061241132842198610221565581347176642498583364620516721086527064454984633981248923745038914324431345238229496265600039302994817269595215870539405257637941223904622438025637495628410613051495580966374448219324241329591728209168867424844544517201245642971661417017688009645334372847229593006904194456736402347023973344023986360845607018471972666501945714428028469161030693016833559206976445351665468191521420626454791497490455758819499304223342567891285578294925864259649610255216650894944097192557430187955584381565944465667869725769823519390044969009463654781680787442328059187429399922111717240304901913354428586273518698325273226046136503769175820256900670627085736940488317071113822132565578602553690771841999009423374817370703680904442107411974411105942882100039593183612675667941258316482819817483832623222258382381186763569101354639275539467950339770182162737227345075157645498130882480571289588052011465209111993539584733404649547685152481123655174536564218946781355392324013344468704274252217247478877319586574921571541349507193181857368074360650582563000662370861286967877980236211649706730527074361013420962219305888540169366080286052384793488442783509464465890881867831193247745510008260812590409297417552685311301162023445478597180004063868808123411077133020306795419526604393510284085791246598143484563365132209454452044263286936035656225863366163000422048578855521692784450739141094325254922656988937585705695954311340870422576750395702030658775645562444562468698078611200045801265553633436973636757437560820348304003330048994786936132646435126021185584334644090709754610098845132562108474828132669634458993129698647560116359896163400062499975242707955556733220986122454362036640020787318516487516260519865702490350619142850363383640526858856483544099694975339591636547635390435572425638054315030726210491271864777306773611123708855010431117483862214076962030929167710343829092027899397759953391697730717944886020529151663426856436396901970489693175573425762222980318172164119877158158653701294995129125746836591401430507065494608759311422607575046578986217350017694553214284085719915322314785778399018042052198424335298844841095555392109483444660766246397794730123509183735416277425825954489914802371702144230863588030741652020214944261367414930395997167516764627859650732102744836730113341213948939714429320490228392983594462460618864730685250416486488587282156807906693661930391932930405724085275294086884563780077411243070259079746943334137435481182262984335551855624125665616901145113993326904497943860654744536897670037706608386115537450833121252206328043534148886882275871467118185755826971237015590478019056192585364109022707634304620021068374347334851433958338490787824791351013866237089856293452997887813024651548862352805208571511686670972259383150504925282721574280071772521048650408610056104777508974935276311775788335736081735802507082035303961649199655133505091416614162898780285234179468581824745305715948592886886485654690682108503558885028323209407529370034593036052979401238360516982548417256909269821797726236927471038509563765111013917830981448782589115183749962409452629648692715461548694565729965377438320679103672565228525794607613413071875608308287070932068680416435759356359439981523945843579404481644167834519488009019251205682854955693528384178660618251896856847886668411584247144434154410393420468249074611923373019025557515770946233429918615688922135028911576130621185251947440732199379997775613254039646260245283013005700807011372146959774542570449605378680341874292405729227261637380650045490271437028137535305603066386602507545115496216092492141649101551332149524576721518173821583215415970262813763746737839473485689187785144426125919072420556456786836244486171066414942478693433841285930813902001607524699917696919835383217676721768620005929741617193567940438571833419039566613640154377464430458895974547263571043186268743535465103775558740892928873151862767494725221773228351318251616840763909251660571428594597717731007576066744332373735089054762773344521301027132577405994269037415106087201476532738760767181201241424360443043325983412044916485265638135234731446929838259274957269971017147902128759929476178640616085737631796414120735614993455359841104587030283892147836894358547155293761486988408857370857928043279907483124773571750898145509372940494650720152189912255922151655119724538960461737199013307675269084448310311386170336671867467658023070930904831081541455596679704270768403531799635214538009925062305831000320690763612851017189787994867010445639197547370416145257313405498745799026389459369995901249120799390372275367213271038522899590033732269761951615086969198731789064945191403442863194040703989415771450115412095173504278346319524449987064169507606278667940657032703615354047044752837412504125879397712610058519518122095439173927647656222040533984907320874128616131921224298299662357480941656182331308185677523699480142575605922187129269055926661445943971941755879048366339544208973247304369544129319204732470961989343782695477768655821037892989974348473389356439557548419105726477322411187843705261704683182236564139400539216872548431947326927541212112564614065272575672829836833863132348129146187561727702590429490997182781409353517960291774630747333748416234019421239704588638359745481880159793251184456394652407568599947438347269830887408506666657374758432112375798792003939660080713965576165780564114057676665523863494842033694495622702520668689559610221786949426194451103843587658898018665462655466398420424012570007789308775186843339337780201873753945971094235486454559333701583563079533243692772142120485055847755592424262189982807380996320813755597646481078060041055519005648886271110867307807537145426342589133449122860716049170680190203892580461515614391757429497993360201578490081179932290112064939100967238924548312188408052028604578971135686511316809266254407075730330768361978218040540314090119096457782165283578387840177202254985644425519237643993807056817907098648728255138655473029283031858648272556494794700382694872452474951578074210795321016514123098170508062301433687769426725040126212666878451800544930018684673329837579064301596265971096389516841710804129686789046850058679639193405478582058406573372275063880852137092067148113248041938635329593800832152162271573149728037636902370680139435096289682437314908227783367685613700243651147175887833934647211003673931381571889002602247460558459596161299641524273745810483220269951264937083512902189606921914062704313839866934770113112135833435247506370438380001175944114957007508865475609147305432537874887678258328032627394426077827901700594886807877519855584083898486806461146411619604962388109196995617750046726080033749252812568709899602706028050199795274970023263800579740533815004590854929553678274824780990415162478562878733540282985567643630312651144482499960228873894463953946925747526126548887851649723048100165494602176064183075519515758154254902487025769021379344867244023298666702549324267430009804231850747139310213521555366806389071557439660414058133976024835293938420277510061813081633818306498076016873100784918239937763954621267043141978959633301550370041324091256719633269099879244463459344207656760731920213320964908252723873421877563388253622405707128829688828647584540614362708239489095357804749934922649218946158902999309171140245952302761687338669169453617422042220133156630713649962299676584746431372726610356471615642475924778335626367413543787931697267307263751448170906312792081978005437950773704754505166367722523035321327722860590504322880961598523524874538987929570136076091924278445589714865432175836446841203082032601178737213224547425614536891660103371289725513876133817052858461557745599318279917445867864021264896851363556246228041308290252730251054909343823612466856894727122898758693881144007510191480189880728900388521901368239944780509990386152021093203989131288013843186653569149629553717234745828822655698554778958850846838361328407202543615304288349140170079113964048445331051768989801520698171831688214755173636738188634187894161188409874441533068733638557509629795882941453800628869090883492878020036290670678783709757956941074719196358830325667752447040946475585304941661455100531177902760361807248128598440623958736112615735421668307264793820760791906299721851280192493623110654486959626220094458081421564860633948719928841905962821013907517564533360628673748125905965244848369959280195020213499913591696852475774401876653030247262479791842236314175666472496188012351371565370167164780606540333977624547026007977659746954506936826496754309570444694243739085763550600097935869745641570872094781712385464039310904476393010044326985859588408131634029725631718839202230261062288582613643706643572423015340995327063493915064504915578215268416754830466959458270410261850105173315172002594223378008915197702922350153329492896201882993571376606904304708278208102326864612484472658329465991057288965920734736626207900756623165389979305426544358741626997420705028217793299993900700285808990116512736385441382857509013738937257767355434977228911345066375829176517776488133280924360816976753612197319251866990914760901532357374839564514012404594854103907131391496509616037193620703747044464967582169356396708134951232859692523502135346919480151702682288700592640818387466860521341603693480167685186905119133970484847794432979288747622526419302399044616323277442695080154445433583542615151526174270915296731109482120090853592821966801165622117809999276347588629990614760795576022027613142284333128846296570027594720189021642966022883001516741492144150291108396290072617298166134352441670596488495048641530447870846048637632853542792025929427457852896900601713245150851904777583754324715948779196306415952057067108003906447168132784221755584570180645438285014911704859530500943112885085571869199310740125140024601301313878788753983575640107038522016155880607681954326637136842066898569937941297729601538975848219236899726791475863510863123165766768234337832196621072533341314123050972547485963972888810424223359294563806009210267685195364989922926253411692848632460732183058616727811177382561427046547714063815133094427707381276074579178516292430816581727715159745893745763005310999670510048216576897631295952610046470411689428459248095612462746198617840631115552171937815965443770830274910414509124479389020491083928866417899527114237770353061454919392785968816177876887222416012160908620479641690545132937159057506259891177590881394259635193631289098588313267942000968871009820589305081745345386363688979683634101572796943400228772519981688908373760761659668273730963866807583733462406136659433262078546349119898521332418087942285767380208016545911698360458950509578616551449578386119941223451673082451481487638835039245296978650795438793988462839150033862067041786012814692638048279926314025563726134360219492715418692327422143781570689417133136729366729420148534929429974351730399001058468963680442192308478389802398044452882506125270289773660942452083208157635323856389886940485346787493196819348384158175936873522442704194822759738687229383122048699607631446129164277558235857910930225174226588490267644458290614522376012423533656822891982448112036997348596651549020856428055013063470331854673043264078345100637951973377440469149343139131998068831989247313825057482690933689712943918515587400860286206995330709059156003149434316989552509759314530710406668072923922010878419597724861197991793168191412870295889542093459612324002275034347388276480105968801380524286893746946707982453632618600476384614841001574688988024479132053479347632407449719618038971084012558110050365653146699765890296224902880867795668943813442032703305646397270748640482941935242308634554249982736514562358304366597186451182417878540646226076660883362677760822771208244934383868391869972266889190364362238130189906868101404133267166498740195119562443505247469511973208160879284874740560365099828083494493818541888405960239231879961815023217520757970718889636123594348340563783248662414350541900366847085334631980582750539429621764615853323145998871932232895680012808756007494777612209500006512097354284297734339494057624137763183191834313583875125141575773018993067698820776369738568310234464101707994455778631613530080777592442048821849232958077004062889604258570609985689463058041340698322544338002320533230419987340159343768193420650227403783854702636943415711758281751436931235246870010272223498467721046547736286775778752113316284099005883456198243189683319561480748481405276228342269031407526972546147823062382388863258671228564462959114532647308477844850929463887274490453720644459852189921875825563646783294406466364741632467964827195953841150007856441786968835177786524204958306238471668741183326124882473061810892515725172365798684359326367584299122773495131085070243565581335779825037287067252532124203611042466700414312868389953212511271698424598661681793063341413471744739967386412760502266637376015641781932880237957444411458141837123669862325120170772716528616585571039978986800436811034373040062387520026322830744112204440175534151549691436225675039681183027662309879946260810343364283110428405017308068140965108689664986147340010748536406185121319259400765138489374020861605925898979925654816356913724259117257721738716289724919410955478398719046278131891322620473727448894828126737950737581005280799586661122072781241973477888252138289284956560191281923296538123733248856774068406554161816139574916657895861061331675589493506258770134929696833775417156884212192706721171270587266587486769687014518419839712361560739382694210004951301693836807680825996736227583119465983489254219831333640333613890756786608568024128965057364367973191898085630848390628398112582247412664201670499078762750825776694570598661205302920290074102654466879452031011253910466622808736534514200499361166964504281342472539158710906856532188070969215327195611028662402911042036919666835486607542857979799552245454066995369081398979213634106598529195978175865570812538839697423787038013890514621267314464089953519846542824345733630769781292643920454269972209621541506299412346953999188448469930529693109573800514029643560482219766935245432429289892027249211831413085352511036427285975929784587417022589304242317182028522606197328038734894705619227005638664254507851215329599883252286248845203654246057312870593758284346332425272712195695310777213960885675950762288512926413711168346246184800874558302724949936907630304710219226024826066396136794605031165177922040505040470517878995701760748641621470889409265845300731750300165866995311006176647741897813476566332078763335962942224308062989162338504421188863138743662642372558334955454624006939027591961998671655381090263209313385880441915308783666118718084557338698159277532837222625152020607389785412206038796005109979056536076645303421649300157190831212068412466190395744081212226975027764295969122071349327829691669926442618351005504508970052115192634949864805106957921658078070865528846980023843181072131851363672766748249828567898479544204286034839417567264820823850352364797311339144920393052116284480534729973511516224307770957175307582843195134529583819582094380668310163947694716895872556320741248722203828784946421372518463396165975295121731670284716971835252262590550967813399148318061485649894715533059020984294316349713767793419116180786303641266718223175946563745483453601960556452489567832073588367415714864809200538202436306188472044397829770489506253770131140351211053330799474062206217957395481018856674949711918455923454482413355109581944263660086412010348855656031928064529195537619416250041213418900129364180537864533125602438948738640655319061793036554932569166441206434124578019327240567529121683359317119933559188824483017457935307397743905421452328881898396833558182846671901311324558160989846330343923386389552809311470664068257261685532234273162548160192323634034001294454078833939312469284185259853144071364000184797955239225483557175364368187091965788150037798477128529171855467696064548906538100368292168403071770461780889887154520722322885242629363018749392082648102006632997600912989188817286606327740177989443857440814985279912939524357000717764285601165910834711872405261375448222059389893294583562454378109793583064141379309108126202663857842029671260532065765616107307485724063248863897762843875245812125485222342162948900259718597398843331786739325831285513315966178122286955470001200609138296858696243108680875940873164038538759399165092276600316653333158642930588484986182767083964412400301979665498871362989355790039307971658938329779029586419874519904075220597421754809384782793522086054689198648744190048637806797634228843470563051605137475887157159652171489325197690964193185232788476358771666798595771255649777446348314807887393829621965278100553229475469758772944606875240715477532191505545122142748463679946951327435003761335135664080327078264648158695269789428986630230000066168937830478069587772864134096100262896843911597372153445084002703858558180290552104600212340855104020330849456699592047462702839101148590287515499345099351287378063611979566275246125330214904713856039390282972373881753855509576008851381512484559220096820885770649386263683461608623386886922039648888305338480433866149281824565228275707093998860353261393003105142924143447900372490309461988831372603280490061841321673919289014180137723662139570336728039061622564866306604534593446735434443606255121922523863430509666289640852547511752289805974631296845290970081829076596905709922304953279384698898637887079721356908222192939856949095944331791274678112253333609420937598022945182406745272451668463037273070509446495084978703252141116008330728793551163795376418839843309842728424447666376865611342295733172229821524857631160235438419685030347374087018691072466145495881149747566024013451066290173938148671119766596512301632907364969747799356606893531658915196524397917500448205900730094610929274921038924585568901257719855898533690660159954261610947656368877336983885424102321811416662963739770041277639374523705845415724020034655521582861076570221387521210245481182429764512661947998122521792958081651198040804559793715251980251342227348123252472914197292474167308701801715272188898257715567192043047401804534396403961603439574368992639913546458217232777646240394124646797028596992388829274713256766387510202075508988330229562912458996073825809925994838481500417460443452975366717374384906784521241695855068183256468662289788827072649166895620615567557912304947411371026365895415612344011239657260549151981169249746731350580585835210504142173590675115578866389493210751012434823324215014820534760900724595658257120398084202547725035755269071269733069941203365956182840137308134654024095005958532266059175895383042726833402496248168235048008320496192101467646473955733957192450890827192248733460226603762653685159095605100248198350687393368255858411520970044517490908536195342693136584207535679571350515132644824773058534195831815832695376538594825119877655731493087806388802473673133319564562472932339601163165996736555490032317006490718152151997790328080106689600254681297764281743342077594698815270599257220357057241189958287848948587146279844768685749543750205399382796610011708421375429107104849154538260122563604541390054460633532245974193405060858852781426316113073569796908374807719535964510997914054840804987061244906846825334334163114474918728669748304024234436506309032095068909729805091790988470740675746361086754167368478711588300817713153663708931290526622902471981867464073551596986336947021119365921281078131917805592604777312048591811914396924888406597843954810377301271411908902578736029031842917052712770181653448478253921397973009330204472267552897101251546392314800556028853759621563598040420634322636037244430024020988984568963432182050452393409483946941748226608059543309129795764789089093961715559984792741058779607804809689996661760593036613723806911976656559994060849865686743032309033462807113177030951326548953982687682090208386304832189167296666066406577321676722365418163177285101123692017343463530886762897396800392725091529753218251895532107222865633922470869531893884350166314699954712422510773383205761043575261168550428271742580182273668094028231052927143379861310967659898228164564922281948621564985368425591843073439838493682444555865741493851554695155629628730002919128953692987468504050070381056946512325457509587704369794910411285857100914075511740745334341091779740127867330349932849960803596098774208705714653484931984006477498995356373022639557142306160337543420936993911375906308666042836537257097361851963487458381605393338142460962714354423442505949509921009620840221269328472797227045888692013204921987576093158454448940975572627802047031638030418337180826114388612312045444822294003663524540102871440372402351479055083073692832054983156719920980590269540173381622498850420984023138167945090653970032601653506322338543922440283336298144887111331704157210206044688462479240732732432606114511810981123950777732368413730440602310004964969337950242381422522535140721573628688504773736002442843888610141019008165485220009874986534761895075643931084187778385663147489048576731904750394322041448420056479362375903025790148525775439785815792286272594464669140848716706379760626503160032866294616047534220961470715892373326501386895549333987852627138739124142137893151486192247953565969721632385893729318677436463529264371645198120553478313080637527522945780959320811519757565985429349817928380969873628779946678294811145976650586859648076771714561204871902432185860481839158238899004329078071452005694139737406617694881020598394516807855037463434017075731270730383909523344464242267892436469986596699691635194615406534689265436165256712562172295267230520042922154594102608345048034640959285822014056902685940316986062162711493119286373533027155160099420175893402075770797027023896511000361230551447295947100871130260227062902306064089518163324212572166094498751715008992557514852608519442104502677519778303010964352665193170561069939209524155971096393214576779131628277101943839005928613512678003371869626368078074794965481674958671727542820485266285608726225718647967506180324659334120530616804091531075104570277772311267723446984208129382423842069155695659146877382813114256031202571420698550071398433427879071239739156483566824106117164040719027134105521112793126687871653632070933547714728835093422842232137129672880985853154096766482602861732396377565311949397130179561815188004745003837761650629466529581141280709713429387233124195069829677666339731710438795186191810886141107170350040623914810425991911955983513080826984376214482153457470194737047368885567830328413728358988103775565867714975631585500604870908571206078640514284733676762520946081507001243377602924928801910589172207962048219297708891632162567844569082564382870111668962834173603972214227241196607229670248129731979150142905471403482495357473317026714535360275506779157648951329436391889601299103865570027881297446257194561634068204509222595633733789379721445574126460198756518898013227214808227364888411314700797291251683643915125307552174010901981857425590506958193682770843924083792301762526403625818166282581836801669278914139614830038202329716855497546116720594292289355755810001669882372026256482850997901206530315261588719958902885278944037757099600843448894376899114530352494137131757716357983378992158515414207960516646023626180408156234871868336640820675957608080257807907917973969362709807039719902795870710133041655761537670621387068586593422171384739904063302476747980945172664834020261204264399474177881320811577538195451247185527305007868752413794412819008452803139757908832582682736885302511978275536065944184886374410952635256712516174431995861856686408967694119674485461872067331568476200012760445303887515823125650352383094359865152691811088734834836836037475363846822363180614322624612648362055449548308874776393751147348903808364804486239951414696584489587789330584375202108020563076488516007159984632731973038328099878116141887453330186219974751241754535998408274111226147470831856028998818829466967888478044812065459093985511251955322007620398776912704548192884306710618847958428643248039734057262814494783538891750577156676907978106197581207238695964976303165226717185867815186438795708489159256850024749186591906690156574675537734518010156476683560168498445907548662729001728738203879200016954310038787032507560237492262361416990124132827530887102825736192612537720253275523833333652612318112497275870201465823258858461207217375859260093369023016398849088799077012694464555489176445951782779213674580000768241658664861640638914708175270766924004735411140922091126985142623568356760734857083512772843411004212014659420185314336693900338789246580172326304209211961345443052657008844240955680827004220937486338066074156732618620402954361369167162409021189742949352329452035388797552449830169010726824463469458456435761749327333683324101011632607010597661226036771934512001136866006210699110717069583801171301387818972685940442560862573070518618457135114416763142857352117667571543667509894811036999868059167790059909559788696796873800516819320975153861441877211780945757510397226374855196881934980380779346767391075104991885749799723335682751852792576309699368951425215958090276049249448363577443693377114309445521907431236953470653424835686194789958794321855299706959710496708627903274472148735601093760980146250423314505271085156909104270546098166747215505184814022422065794448695576922720432337715392538257510476770160480274856403903082489063451890039313127087874369647327778811430163093366884248488395981994567831504659900187507101197930936906745146733635712431510082254039627715656114590863464478343791973769685527131008355714717328656234479940033371531705816706431410015201365481456188240273254512574755752348777312363254712048323299139916584857149415275406731664797209391325062522145099056224905432951652192506766586098438873463379440825830771775810010366515952383062255211609378226674096294046271485443659811433063914259161248078941696322820387773707107157404347701947571367365066790638360299682533657871191769090396446088959138766197820181925320665542704267665196225541737694344218185672995281150250277528732562086920436661486194514436969403163797059903857779428974919598564000498765603443586709880222789894638441711044810921041319315527102884790707423431449845493205298285201369462325501588356500666303640092872480865430590587372454074794715637252371079753809883975577706928744816159516962028975521737470929474108219222924976315823049565364697757285181319108046477329025545153014676160402422154272687487650350446281462679089225151543007799924119742304984835459823331361051747368872942603235038122530353462828733665680468702631872066266272364774296752685383270711957351131979248268926793295892533740786416317886119541798546520989295255284236722682177098170814872459104431212395966648925318965734062476749840902219485910310700747627202351207045294729683677602913554143092617147656621482512853775389317292560900896729543570737885771826754050538871594357818881359044267743367846833294186269538820716931018510188266389826060928875681162332910128502172122418225557898737450533569096794499303360834008675194660856476034171065602315009148258643597312547641599968823432668266813482776331451729938179443720353781231427847655173536368103917026011306596213426533847772987100288830306884856217085232424001239075040759723460029744792021275106785424205435807232542758512062415183709866954681511189449855097446563153027395615637233428233816596544345885595370402816592767805166811484744531921192135919062084755532305221678618020890838956307787907226441831201548958571895979156778402681892196472272971131542703508237653520066615998879751557671290726729508007704305346617813743585822442927792637932925776926251179551913729861007446128314910986499091044061272847394217797934191615634531221820887913407466594561054934689461339067762873521401657795291768967948981352347588627408300722730559015383264108680113412162740556503167027001352877720631495370356537791638824395840295436322293749279137739386675869546364545490006540682449117719321123415634631739078088498073979345573054106762098713741054560144931815477325575011923606818160553970484582951613271094056633701964850154818172997068653684676859262465120902930932774290848300852002932512318747438103031002478449988047570949109298361123550507771153355708336333545042038529620729890244658624162302849790352826112134968950006918051425159301565049027397320544819741702696176628594337521692199886169478849516389248279626998507289186974831218479748503873389649498462784394979690555815869768750543922480845497477767497797865805221849126871757114267244437229284962364386271287381922621377896366569760056946506337988418223332872675932152099125062194602407731875778459488077081817770887030368781752494038408694955248897530867180249413043109827186927155124459819208692727379321889078765260742837140513118504401235918259633994259792523407673811376411634813905063962248412509869147309475921061141665595335428209519346233953056095250081583506855829329974130293148681859133977392573673878941718166901016200780667285934546378920353493329910142612568965269658111563144097398427778700476735165362056194003771551144212160361738505584388542084767541183425778385916261961954711545751918274798963904066809225334621545066949376051419442557759680930003338345754004935113793776220704636603705762467528870940752062368898114661886208555038244350634843346054424422398011812252980996096580014486152846389750351575101968605663215962089531885240909282296976681267162947902644869682302035112188072224108733960934991585949367816426209933874734503914530638709731192058502961702534708895199912732595017198593607334563725736547771195673727596993603560025692756004987508827682707052081839771346422647238343513399814611349294298853674197990119243786482422722927028691114019282085078392091193809714726557920495303441312062608453780680074085261163282126066804928157819452818618669331109794198868840296585326257942058027801902906269133998736346971395777311179499439533125443721606013614796867847432028162781341694520815859443051979796109697651339448225157088089979694289665778005331426291654318004983517425261326961678107799668100509179255271669958503568549133460399689060996750137039005636618163365660550310836926667492040277230620818386356782795556409636775736495288978268182756267906886316219870215714368091684553726439927911158816138203393950422797971914267872370931530767895264784275564354850618548031288347409755227050885291195236720038460056802153699404033751817272571847077917487964752087125870628516505762292868466767384171511411721556356103653683491370166307009247943300759784716847681310543284614553061554754831135959019047743250909159167512292091131369653138929871378836787118323887484760165121539969791665811066655610870225432231518730917414944598400503403660071123119306354144063409447490721526075337127179258697705774744753991972493709387339918639074996500149946539749855928389764481432962249768548875212156875380001366951167382954716416073766486900234023150437590548206671741995979423350424714724796119897168134274143091262227209190853377534477293857319522640562215451782971625685819844402886276006667255603731286582561962105180975340904954077173564031858862420834213240802938563151113915542221808487714435059187867917463164936187483268891055503344871890313843638695196857908315473643760901672227041385026508895912558799461925177607510446029024953910907181565556868175358178112659504858407924091398362271048512821127840954596595099039938851064769729906109850239302147348858487427371374774634614800651354310273304185802994776622401354763733272627589615719468023380895324263169366684897512888917578755567219439100935925641922694843204594968383842160888561479692457937494278841328787564868906690203434789383170134083624484271685881607827457833056045668700840938498458562894113773922036269491045576870492403841455262905242483926751669308392682207008813756662242071754050983205925917049929391044647284308182573967173718653765658844591774141012808963647984746532090802661631530047724259898640065567889018214175624514998330430048050234468237259718886517849090181695659183821508888948540987168896941317877824817231865461594816931403078274105144070317663178062889049455600596540369215211760376518841648370312438866222290876332131591096436395292854579788144616244350365177591259952562014500353791326643665543092236680872367697322707828760288570974158989974355568241292563163469574004842813859236319907758477943890240410275863576127385913211414760838474764305866946469022029359846094245977303849510199890353954728577755840955930204134226055670071017054486305273025180145265838827264873327308072334554837814577905039269587920753120797362552570853472484766894765078855778075626280207543284815457466816799478902222064660482738648931137211663753289865554520247832898839936505820237838813695071167268905821448448564705315113305339363300671476505525456070230729473683529587594260062560406446016003076454326572233672209744183685093469452973978108473600080166961726271955701031833537864142131952033951097307656814284882250935314479379524041552860237097954933487328784275492092883615209616107386577520801286343053196787106090150451292951901767604467157036833489137151074310039185694509790785909868306895613703883285116445596326700191581735050754463940637569630480353451388392954932052870958061333958934293566379960770486101322033218165262822391304168549806454850847133589699123463533707451610262698793453319610207971392992942656497811375769602627375715636235002145757762248948402465368209270967841929182515227841272192149717598116619216027853618524778700142302712083597355401350323629324955597515243486841320203227550907356339973066393415630561600111530573719427180298493028810212444698129315505784539976927616648459531229509565855445231074948868098106948384489395182859613820735755486518262480753464471645510497609357018748955629325663993821336457437928836173064627025863093931004530834684180440507795354327536306657891256186404750849318708699018394390777342296287723748209815805329763538383226990113833820735993478660405796348847248618189033599924289171346356518120916450225162394486193895027117305880973311916022381599650077225508200775057498745430796679015593537022868253853105341855353866289778308882478991275836607034276173182623228907113973600654475457491719366410697443009054658967296324126144504875363866595657406962806133330426960359492199837162803873320080957654391187234885534127513327943470043452298807039323836045043306297190414757423908724389290566105016623698160122689018836397931052373211039647831189964417650607652362119395836981829400049174650150837132023462791108310590594714834187101060076747506394376270307803120440798961782517918777676738924606168350584875395681224123902838775030462091460475929079569413034102538840569046176928224626083838973363700283315794888308597266737723472043007374035757834634805217527537324048944640548185521423904487322590672168239455112559335451086536326853409562758227410640866495728125213926235659864775696231612685417180596503670541861707651088946958609223372136224749933700135580282979812910412794002430154554960034658257343883377129330179079199119134901461560345606747255660053419610883119478146781862520693075416168119885897818790399056611620737132974965332534232194603483589363510058686655892828526840901826061068701557851402147277673293003330145985154637836341999318150005814923079393875432727553873185417412957024381427350894399912216104132922024170514916941035755528943438478566417509931592441335953781438478711000145821601418278055233257077085343116954257169693204754409581649901871877609856034370003649791316443870011561667328421731346221947484199777623875124796673266580877523264313895068545968370172532203816226927734108439799072767629012255755202422505599906987146712074910263132009033598857182899937759408121301068637787395413449044973693377915276651341932505725311228094710819302933282245987691057630281547749628543029849934472460044818989390719904751240594505041586521498142454106198284890159754669427375564724117749633699796978155921261568515762072897439533389919262303129555680770452368777335537563670226548510152245617694585377008179975577618890246124889777057529499140698115132225283626798322906809879098743539227823354603845009285332480345231405245820005368701639283550288302439059599369270326797445417104376966570004021806917067451778563450453533864000542865420711848142797480163385629612708954825011291136662469137994798041745959225617506467159557258541719251232367976503307226568717106795712371900856307234738468763587756488516992840544689898147588101724280309007852770957187947313698893168299394249319112554354476274967896988037608816896671615995074572567460008473694552641723013552434934582949974019376279000294627617801967649347316478835794495672139078045938851557295617677899740299601654934120797870848757701234718938896252762347052218169644123231640339940577248175344138752956461533102970753997692712741555426432142471216030421710586547538821213706734129453707601325480011378069953635310913657388710435904320144436388861408403992569663428910554108132152517155501949386841489139702804577255470522282675200452221556495141028265051487779824398554557722655541161134827239486959582951216900705790994733744171958371237968799922841975654665501120643501275350811146995642240665011835956520814582805137977408388636511402369313892756992458659699571759321340334504426423635415422604455688607885919376505633432006314571599214787132103332477076349339748391678757315868611367544121596103549483546891127688840087298861478116450647977086380034213534853684280520118818937523686080170350200480827792464803648474182833929106862499093557950950269712332333836606220960993567486526274461047342021901978771912855163237179594633334826567880186408187752543522667540957224994937010906942038355145961217213023420824199151269505634841897056149412231006197442825487020400885311831406504215763315609594542973405210289395367134162833976156162520309538695631017155248323851862907888214938795925129998703414272553757316123708233195086864750333113574999275715026686648203981919071884082961264898968669551707176354339960767810141550966524419595778731335500460393462370400087708257890058590345906716366264506196101965200741546674216307247031584003219753750876192891241483256056325885900414683445007003976348676981153642929078652041945741771567776238770424363910285736976363984954890941827439370855646823131149227556968768776275887685400766375236813254619536919889196867145141296281568988372385336967163274473556814014058345414354703852540639389097013202210286986508014762525809591984937480745209188093300762366030462924198720739017958506289266879027387100753961708643002653524961868341644018018611997270828181847693885513995166801573221250775487372845986829969785533579366361055454357595901954496080344268573080556694491308517650211010938746343409735528104107416593832425064069919754240375469983801428006158920822890782067077679058300442188583249447807572713193205554789473520336063351112383570601461313379779152570801889709499917973187275534697502980675801229473470155301122732371579810453160531887659099737173592568322678458205799239621266277088610685743752848154866125380639818991490156025762800938948727481314652711731441589595845586594046869835217937277127453557530933936551868999209512750503551639994209030832576657505128630750203134843395470566957765488832038503188683302838113707731156444170557925002880134306009340242949233972834355898467507995689433328231857987004585655595632763830186796709212475228758652677261338600951217696559935835016059771294450885868781810164450806065570330906983114707744885621366908649207200714702928259702519382589243598610002009066648886868866047456496123720560659010950870556117697482217112233833052228954172184146669419673277417785411767951332297027216167215316029289331128036224525804027253150868061620174532267538541363865548070469148094967369880752268591843715606086892361081993720816852108870317455355705221086141851229208541405875051263182788710270693169795818984759948796241900364477252871447287798328219743514801180486511353476564524029311200772899666584627985123525045211251680476983651409264813215107140832629822974929972140530183873085007345893407084728502710399186579943850445691538523807989883805349247200892125868299247024826692463509956668188955114684072885876910494491699318543585628332440958870344951840173939973845130150412058118742828995208366583862112645712422019114420956785708944953060237774719060069470546520405725851264594224374876963656793588379911657897212845352972468712362192495045791861428552171758998220680267966237150039966276686560414136296226455355130729405403025794328368077626745153323799306347498430485635827320009591448732107405174100121282291716096029893436637453629980250173274914323513776989848617518831624879387965550967996924731050327505335283509886300729546546707276428286571661649096102859799656077346802547176809415432155772524399535046557423771436036247089000432832452288257181121523445245241028398460185680735343559613947801507123533874418495957195147491934919256536576186921278797717016576078666217198687824621544820480718927843924274509708192905048913298632408029724623515834822674570887231627316648616869852947420255877598216372762710510662573651825073374034440313379067081683146207410361370555713118298453653250353688606636784193609915196041295544103723677377658571383875282927149946534343256641996706359207820705884314933973820260790932386893128555958708093675579274471087323377488233197009413730521322741394138339830613154677764640517870377166795591815362724156880639632828883580613049539685552663587829129012175036751123736644807786303139486254979327471803915144358632441366379584940115178296164968297797844399510074450635346401421402768059126200515570867182550634009565769440534296785942123747378587166426545043747565254188495961255447926133396372276070810228014452694960615055772702401368541340837842845995740733949924192350663842305026611039188379241098875832666776836083809344702691841870417672062073316235443194052016473503195405763284566478632785667327576817473917696815214206562017480868012592648200086466438635514741051472448284655935181949472724446288831968461479294014699517296349784157306853634393747063252018322957899987244431092877759986664562754903010836031194096500038682534537061822571097698348562062933007990958949285375883345008738823635346991122802802354132380389455105653716277764738962000254473999893191359842861514459055942365119207602888973465731931471253550732373763729559184397272023974785724394881662086616071070531586547575131014177737252505302053708052393701045431936804284420800605386586217648039407256625657263513542746211281176956229477212697180425271776036304861238958771797597292919584615808458430993567158859838838112123321258085895025912832249670772293900965099573092652184994949426235669326928498219753234566531401128043567970012878264936069440812299305990462754004298234941204545007430552957997375720982395088823387979375017890684447429013300661238120736649932468963443567068055500702923382731190228473587227453240106366040236961763036161501178541319447873350518458376853221944900852312350583419473721188779978227786641912590882622054311910357925153826751511975258413012851763734106924118197955801395383413723396477266000290900200190807556692719533087448356933780610042804418803408103275038955210456106354189275833567189646450566379208814729525500455497363333927272138044161801961710825201458621860495645939777412172780526567975821925804823334932853531031095547940458129294744143902329297445081641182656875903365185580376150387088320251349768539438624463778476028143233827852398891142290062793956194245487306404888758159000823392364968921403427354105717368870230361156579920107311962698579195309409073833755769480978050877704577078894922719899469892999805232402974054682844606757842118873714198099597521831855336913093875179102668508439878970897403613335461267690852665824749543265866487929895371715297257051187380639034637280256351703008719816546016601953003291522495522486250706706374822626359033863324846017171700296840146656208123471153950529119185207706947539526624381146727265774093783097933723561089806822102917475624095178511094116075864163050520288901982858112477022510329022929052732985681649358293054867778483671126227148842626357013907323309175228902149925898760883823895310120090515999555259088984728301008213399863644085054508304315343578826467028941406009564565326486618832649293360785190894476611898617391933553293950433050074941218678585176406841682268095441552374876933971845164871058891577597124226516388927201972444683562757042205957927965445133234721555313204936093366199069280059573942157952899746698850185030882655270385920182037820520952403502734704862693640193659942520711242362896232086183469227451187016508787638848982841361030300682130766090535435602526085078445540971727988869231052716947759661463095524164108988673582249009083608356618817839683475323819445043219123175426501033908569015289611092449476101563499949511731019401664680728124249252861523913977202026540559688408160114137648608483903557569526732332739389021132237015324314173538598779072140453079876520742085461680523353928402993854782303133875952037444192775444808000717481604739556858798020557217613781249575931493579431320934441384240820255625142768499479417974868315313059190375870358228369103318836667283731728489885885782308488103983196376862915300100402625331287695698887087087438730536005156700662046057092128316865293211719499962346473861132834187645848278949326213287205281936389480407076749699307448300541640628505218479416219220082106719196187628726748847827244260742027291788478327046665276161958712545820971144995137938219785666678140639899104940045654474211992398535662941540982365814387088031731661366278835046252702354844458130169316270742092914250374592662414342840150720178235861978207238353938137512759809461984565438214849470541474562417631011443256741412625507466972517314558441098804889450706682565533169752908398935796520761171008000837491754707478822621538226235140591424371264703614692413738735239673646816717248237807965376138547545720747407249480015343042022237353609385520130836408989789016237066471844912760761805854322109579975512232418690673795683745627706769901953026974286594771954285446330575824029331877922233211572149943840083464270867271147852647880919252838628801093889216952190982822889415592517885116799427337981382416776743065716288456996561077222853862575857404241052251147086730896830335767004647763283461212835795365105110853841825730600564704029986273795478925711816132303411372549899635438908064491610824213604189104480818737361144531982938553660704193890505196901015747249765734110717894330588714901401293803138253744931049518178821594016477679434339891765314334522841581251195071904457284119496295792986804140431762099135037320027802702975069484723739967111084573497855065906403198559886691186926703742379533844860201639674815873260822469946088026729850655839636817761879055819370854497525279095502081659339812998844969003108254284353781275045971651690035569570681485824338833967297031693433819035755139736688470144932118781361660466648237641875057764471507292029789828658475732203493030665515044728456388360741550573102080423324587406021560098555360340964809904820627259576094777719453214408623829507683180436050674007975968430687512089706317434351112747936706430398512616950631802008777436364714094069074220738899340911694766217373054359409386491222432839993875069905502048525718684240368416396211492915916721525100432554878072489831126089038233132614977378549100684894830298762059612217143809250786907745295051589730429034182089553383268266297072974631421585099103583740243531397471507559966168369640383401769403356368803136336826852034222778170768412865554575211526675637616267477795945766271710946639173325920903876862344891458985358075278275428266213600815987907813871888646409158144674550697704867956485685076530517104403554584476401546754615584521337737537049120980070845881865113571538107479842982707147665873531545930672294481953861866761160198782008709676328259252806406881036715224976955364850748418601847223198610805358800752719349443630845229359988635044076239256797184580382950842224190878854015556802091425952159631892645258956507585850618641621138113912393549340256422619791613407579924050107097020013253304759307016937716170569743091736715946908609832486253769160874133174160632660367233389160447662754029718244188270619362473854291329331066733070955643531841052984278601264299424784953793930348272940170889576209075945275480283906547801516961441086519563476325346455284964426310450515382692235502787441321597873333761699931319780646286581391936910163685873601223496863276619083198470437191184583305405934140440197312468998425171726330168756513558540065704300744610515814163075968248421330605960971952693456767791114182191088062516064760351799183135043843767250599459923444740703013397449324920214995684773083918371628269571986165120705688704386957192766265579155409723786553960754191506124034282826503355435178925351630948017289092976025178551309805330040049630489045587665028553792412017417889450517179635364584386064271052546806777316543995448610544051298145304545915365236651540186940064026602028205726543609691731333738567521897834636069182608280186145619684453045813218927618923272134845602425598193545695016766604467220364397985888888446684405644938648567942649134620663865628589443473714892048086924272655399349718680723154500522313223473706876727564554840586210191437091448553378195874025240267934431410225709324809691094896086315821615236081594591151979048669696460046713378143133711938129327395331480567589098571987033123553330602581631885467106575709256386171958078967477849623266661260250918789197884201568217223059703328832581865758155503753299859971039191868157076014155537792777245419042892503411905681586444246766792930859441359897764156757856914863628299958333588705562430232337490290244606101652538995931585857932870534064716072944705167679692369346802537023346341928614937066954659241816340513613292196700176220428307097095584197403118265665293911430795530970655613343974954841882021259690752911044977551980733015539395005349087522409914283769904274243855270106387795629508150388564589564222622231352339219883340013967992787951292887456958845186766288572731526444308058933857005009161735594705168382079665571792060144830838283269941230173584808099304701129445462866113882869026463163893604796091985392008210073315946344343682803305806759190458293501495255293482767897447367941747833564806665705972775108778043914516564078718454113871435485501328669630776294234512272194970447433625642972939548185121674512051334903227488277615194127255729983037111505305228199591439901241589770988453848598665531074075098423573030612231836398581099167708973525101615514157634910773527362099781575688393081580009611229861608038643631511151839753311432292548834364763687089002010096409024417990946431643013853854907030312607734220109441278992043745741670300542439979386432560092586332626600663151193309810807011307684644709255815869781885551389424896001957415981866317255285240055779878977877229685226832614324879474363290498319605687232660269746237785784204063904374701029756196890036373263972551810882392658084053595501905496819552159605491461432100530529024821760179921243879127070719814815110159929575232438254750604651408602351585000467869622097911037760720144733557758797360866579101640247009338319388992152360673467648086378910215921525086446183994053816388590237562344897024138363430280360088628619041947819016689387064405222928324376587444207216952059143269963196768392525822394054116430421148544023540132512243683341532585512048183237380632995385157624414161083052022580334172325707343183711282862436120367865187163855080341156301802070410949037767552361207223691216968132885892982113042648472932142850668500919018573836132998760093392816396690550853154798479273329312656292903486098159025464632842404301006121442731803055236891285537439739258575855440394625557908267930454255376233592428464030720278315341096503376891490755145101278987208370582199517055309781094425505713235315360432645106499500039739246139989144836525239288573635102781440921898676831296209293128127780689848723740725707583513826214175438779236503924548091261431786741505185413105396621160331311904287530319515116409710973230270318866327793851463159483046189639411092644289159777714589434455759720008086244194449719228196911056070015172391440504246375038044895209334561355246508437168602229400731556981079025280076754548362193457614961032633586533512332400013794890570716385419311838112269691285667117103100891602168409586967065494888009736264981055144551466236911830362878027122355227006314408248538295018412870993276356450100013267773994158239683061663795015148481817519194159303589778849793232373148861130199671165960140233107461167502690997255043589473553072965888955492218217170912260009354438006635422344459282799150425244258435451608667321593500473782389441119456096575720531753486410599744799398749966052480744480236641943214661047289108324178199542242037306302583763667153963458774623011677993060731283567478296988398818212570472036718320074179863213326826228278974873472787920097992955791649840451008288506828253292985661284820150446044831283816923694270173603876208835624623086491372785258669745049656720635691487285652930114268121754187065076615132884259783232518833593231752830095438969732714404291187277587298059242527914330198811141124579518080047338426350568003888591867745921642516260904345620555227221003318165219215664860677588075108631492921565965242393362581247453114581220873102633109261221895403304540793687684587025779589811648739229081741845321887383233238541373322487667692788287975459221911200412457142324711890187407246971615451801824758780810845795939667814217406686441725139197225311770475836121354711203106900088146151073353576509599104105928911953394822832838685934310866389911591713918618032931493926940263654098913505412180829061375751679126806412955284677299946148869256400778304053227935388115764497045667798334510120383054426194012402236742961582827513219340104436981340151426991421665376270885800900544060045128188996944244745526722118602915606638848832338528870274350844194664992284613691257201492036612765525987575292980895495738132299435068645707898643814325725412048519230815681355643469506621029562758245920201083560074901192122574427780853321910611776396848156124369263209838566148314319617944748163233236743949446569659200264711459728345358319120256772675971154518073815659386637730589442506226017205990649050676583795229118820320645532327712972128090926667733749029463585013823341356459465043773901894889740454621163017834271400096880301076144254348905604507942316033054082773333124047287533157397973431128090990322535013257641779409531648149216243400353634340309235604141480437101113412303959218479101723335861008767450100524681239167367781108732794576967673580828269233608250585574528786393743730959363333206386776232056171253448266173446352663011841047144776564956993963385740538823438231853524372265905568769468904652863305397664532854772005830316821811496185733744216537000376365553462321860849034822892901278378613668708787835327993341097772117637081628416095967713435105899387145313931096219580623567971260991879295046926999108482851195714999370752392763127574478869093842994195929629033644051359955063527341589560661665297946621135250111901707326412175970763533433823162657180851918977300990361472686683909068939727019798463004762952704859629557475413846186640135927125553548125173782392621841807814022683623999881802773014289791963390730925438121363503260279380150656439248805435883699172526749005197484590260847423104369082132859849383067441418729366158796865103524008175939307962555855669361923571133545349421609919902173330635581911728843085096485010857774075784964222056138440256617106482461474716320585786700749350134314133858290024495808263698407685922136990202919116447927766941970408941254691549161190277504977425286803144287839276384874047618610874489307711587190006414389233052477768220018705142670500960885848522794742409863393773972460456925996111596893018870328130079137445726603224745933755560773105618733306220912967260160312732776168452087625997403589749194646119182071432326425589793829804218028960296022401100638700797068029036872031130224771151493337448241130053968541893244410156635829087480191588168722383278595720753796064079455353252370599458110703112806376391087719127608373059361888009576848332670608322650268518929264267052424011025632686680958380837615451876121989167057192121301354422250264754877050436158250872097175309840201395814864916974595859208022242202541611409523921009160578972605062517931729268906077190883363195926818224901526504027254072697248808557876521208720382530010776851680347284210677276543566542093653900313394443419955607658495052887863770539900023347435310460376574859918891013328428954738821011284849058128008996036614485535604029261214674006905425883649105556365911976411882453539012761188970858757259673314676561985975224105649561668948790629353639960270712278440960040248661937068841050422758937426761955210473897694701958503506207460477638195081897307022450958946148121287291041803383455463419295332412882058105317437955799766060231059776892507263509910860873712825265751386820166870476650011610726627876010059724702052279428003155805671807942659975650246383674056642010565650135440356483266517788138054749851784671303828344057001279452770711988693160479503203874548372413196646482242404120822359789861818512351702186679178064156966832620842883487234641900479111687615773127147400234122853904872896936520830350539114620443393202707158911174929577729521591912048912861363374237908860687493245474650294674253913812252544045006457203741003410061260545705051796997773482844697817616540717943992628010595940324999234071925240410916139107660169902630947463533939529022288883436970333501401292743174779786581613184980891351093822644883796550272115095890071049939378964417828936875568297372060878025431321130136615548459431862590122124880830439148408570405143317626533260186991292625578826747871862261866057810210784995494588045054262025911891932023814874940596858018265079063653969247783719387378893597687055164701638453359512423313409066266281704954954921822826869453891521870968748587328584540679145601142629513558007453885827239441486802359224421923818355174559661902727328350901104549898128755816920939198182288818013281828731325545937353774102173380361116932319171154500273337502913631120946414032582688101481920378966191675379607527211944782794073064739383905903558087416194932618062688705755824489264540465345360965113840300029629414426426999548197154462019455973101807934167198132394993994182525323808329619587023625989024405595482170364395113853928563574413361347460433828819510524418802396795219795683810008165740098126588242879997294694533320340939508512072195172308190139950814595794605872029775305510348520785890138622536512644826326469324933401095025170815885143766813390715326292969910453856597468495643830956626086398933503609573302160476547985337944219496359539082712365070970060575324303809544336188687904166128744147091988118737551804486130799262164409576723403567197009340956052463538279094380263881280696341989762184000216249998488958704745488670481033759885564469200505852320344919894190794271063018659059148638541919896412434787733465750344641068498647407295096273694921455373183675146600785427835314100880459723258234947448191671301188254388997675788473252867854762809443672056995142400811580837644115465841923935847111715161937881762349228481401513805498582592250530427073074521302713872940762800701934974350137549653899301480669077929680163497614360367521414118373062492068820952805008260797311014402782400476714088047586939390279817520191510666131850954109896867453464459487177802638948266682751973491666191076197291601406027991880294120725830874109744492740916960749401728738849891846820557360616265401708519965705373482008444944796279530513946650928147628601618566782811189736825036086371064717692279036449148351222119536843475036839056453122617798250905653451621456076521966786868103734415048237769322596767816991260738664011608114847883227429636035427056735894478018942085489018040452038169950410438941904218454235267405985490568436582036176178933824923145369646993425889385042295464946091129924535016558941766228117222261127055296051751607696641505323545808381310473833418461326181473222618648525350358104917973259263646120727261271627346569217447791832786287654488328632219833792032656766061235931631972669787939293351430951597742456513442496637933703880553495362807282668503699501259836470786130256269453735999346976030353629864195947694295664758290668481886120493480567201173558959170913333245825684867940233490022091083891704316967793222306930097750068375453425993188268399268840023439140872137258028558151354613048376175219790907771072474385418729379836321202718225387300962827938474898987632335207892794678906181782756668646447480647131981113881991603541248045294589513634348290964049344916073121710577079065256083313440268987388003464534854241322924252395509728223342741462967929023527809508220088013429899027801065352468088986086322247297620923244728591599205579295809069185560311270617800621784348128101825743020973675550625506958340029447577660552980228953042054590999484865284555708750151251182218510472435977747219698811966724482592578546061344006022166080371425453456707212124010350274033603408357350382287481167321827053202641753613963940591836877673564942312105184498477823396767714365536802048821096478949568130367247268926198376319684972753471198723896842576015964852769134351942159303936647083666763061608109262351927559576448053209805266333574422914970501913614348125278312715905143141399988516882220517545156100564537404987801493038118421059597280993442957655096036359412803281614570216047662087652810012313351580716072101096613383387757792999146201851898817314092958326835069895656611560789091587260431271843331160706477846381960432353130927559302090464398546172501522784242165251575085396268651809629238825766937951241128634819346646637859157717823699799452499527569444615039188987585373030795664275173969367985862025206684439698962662749564650988221188697608916805031089630341766299038722761426314163468156149088609977393871856067048784039627883368533517660147516454661667068868117311554026656183161319107580175170388251099546235863721457121067590500421179542649128519968604323569348751092178277301225822696445316299907718272129518360198893532642769037382186235641497757345493445901232596436140760405432284976217076804562685813849516232818829596738605381897819272668227669992244939605058496649593634931673620991781216665860914863738534878707636708988176803760878581835131405985954435516246001477627603786577767462083174324933949676773516022571776036328565637015530812859191769033561020023232475229224050958994170604741162913247616481612650553226119921419299038052258687865865508831044340796052344904641811956652786295792989352295128443063557082704104581200313448444272070435573586430400699416825070038124191066507122645424492394291358748852210315656251250890253299227357956334818341601986139426319777623872031409360227208948635312851143987665889308278587199630747376700149313758347378459519607958690962766176060553451429019843946995057534633927437378611054217594628358532119333162954490700476091400981113579821228328849119701713345088663552760094956287528183047884772378334158741904371974705133027917080169075552282759115987991003088510446772722281022723417300243175100621636296666092667175331031724465992351746846338077639979056704874909490284052217277285377041643181738568554329947619121714496235452799140218792282279869316925979058682576116215124324946768094481334534003699218848810771282311016326180698762612399917423331159474940091989502817378760857165889964991417435819929525439692487277641671925062821083749285353462476348547144069086305777032802002008723032479793105159990277600069910510035064178163509035035046589049668390782305846200978251376704972366883835779409394305096650886657163790541513581208380036102758985982231163188493284796647376590758852217390097920809411534360712679702464545005175874936123053300597287886171030269515358662289599931669293771100962730347779738681130021803027439279486358645099081782865181940372654307116781046535289733651435681695305617412251062431093877525374942118680428857070331146205787273355069171383374829834781794286326182110091355904866800238951015110197448135964676781579205363641337528581626722093498610058195549923636991691660713986355676954625454541638258706237378912226981451032056943335346964845602643446735413146372328232088776032678672589209367891821165493263386652922451352523932485381994636344431258560098733406640265260511566541046192816688210958388806388287426076825957397408758504386143418690773065109228778159107085613946457329142617130753681710152541386844900612792401529123839515875033739870025997174997953167737516622768613507676976073144500268704355162419050533152847739970633213449897607650514009067691725520334707495862528859782413945238003652496314306266112359405121323235330839965176233200891059645509739313090992042349577125749825346564961555474353414697692767694498863288336656241512995510199406532777653070023302354325659975680000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
88000! 270441546153808166412625767614862062442424125352428206115049834578154041720255636553619194301837498081446718752189292337874530006193240479151460429319214076968889072359270394418602706390778781286052816821949646764142219613586019357153016786144689251155331048382959818527780149555827536119930814552362407193151786372554086971484724660750771322405437952790497824556065503990101301857652951744139354593102126541918876654342308002659709263569677523489640383114507826116701025567822905849124126931638535280254941503418992420437783422445839984726291474599356413777678436081632828842895603103843150207150913033862249786287405411363021047543580269737237153382184507805683966661881182139108869677873406759586279660466996844211062046723770039456220245913637794129665062754487330480653003503461726755289858999176505074010418809152672422657623656617911281142876594622291996129060491724321370822438287610400317730900441530697417444597369811741172836776966422565281892937990090491116553737903250312063530320416199429253044503797464268381072131365662064615815859409464057151051361625262748881670349562949393029402525995135488770172453799157797417498489379194363696151395786690737576290462239197588386674008249656135462513378897646054878901177887868427205198378921443210288691833921402256147671977584295283992477310508349885523258707391335824780305881906204181416756472790363087675299535840102673335297093457550110943006628657293442636313932469438236611643184684554962318128001815848504430658934927153828964687901858433050032957147567660132523348056098852573579236532579754342368562603643689873854232830969302866595675600651274196383051210745078673848209417636091677030033017571690286722100636126131130966976313364992397198138391606477881800002823637324918881775311994074293572481885755646893273534200897778116547861848583085295646881497820694136636703282008880983878976042345631598937447450053820220789760067007332403904253282119495723063410632719532283718126144268005084093549719844836105657719290702329750542943701980504156222246905817382900639475722310115865599565242258671067705880022860003655680967763035625472925454825143812994969776362510871760792717507056427552108324266554589583541353828367221253577634857602326853787187805363819845802943805859637445709557849769347997792167767037504302591970371724617582389663498832498596896402869993676662885717748175163679417853442793108532355603092632050535178867257802485352544225735135321303765923805170283797849251530169454852913421554004121918036576265913971632693068810157027591230493530278798639935691692952044655015835858696229942021452443141464872727055571056934178404121694125929898290690318785159568901613029971178281856458361837372852794695463337832598126470954573286527874916912656793974452585721456939338995514188397871775651691908480618713366449086021212304635564475741652642106493314348341755877358147013172776278612505847841209267751623295872679878210208899017282938296308076912437553654394440974055055108103320617401317113161188141729847257481301561967513494657455142191037994916888443643809370525968813014116704829176418635592279289308171431013781899094856186475681034640790173440553636811731614447044348063799665595461357448440372467742482463658389089933484409528224933898173519142181709921124405967895036256685098072095321661139069035894978377614454392872016116354055088976265503593250260632327599833247150662658498376078316576970126401172203580137289055322220851812325454427172327291710565975017969490504626444855889928472227897871394231695945205122969776762594664549337201102773163932093607950999205953034432852343704128081410555544388439522713762077968637148229742513113990847157460538879664051804502440368137155190153152029456445743076119487421212577432275850415887057513717949210979048772083924655113811460491964992775558309291612421511221469731356554046803153753061633084351413414896990080883700923444442140277027862204208894496497496071739236378922098929503592467409593077682982002991619859096250940267029321549175171898560549918999309640228394958301979464294127396798523591878876988872711169262997647696266514378571510438264950853516282343168604932944306829634127665390677039933224688213255309316743378458664567338792049807566232572049416448133009968772166917451546665079248973776791159310682779753683715344608357512421330964216512153486513271778959615449809126966867995944710501934273801241294620207321912488651820425471224450537438133126590295281437827605582396964321172786417673179974848268318170309775365755729786517203253396062022343955884667506411355108986314660053002208412747787966294473995803166920932240892083189944880756558723438508265587401841610477277460592653231147972861060445284545789444572732834643751590530952593026999958078147089104699904678438767047269018162700493523108893165831807452023788351785011400970160801205202676321662963181396678149931549145282780956791813015464402274338476408609163896683163225178562805328349027028261180132286565068395463542192111237846672387286011111496482468705672618584283912591296866015499070276704377658483990320773462013997755158994459521792570045677940208243014211050061678470049449258663337305182403499852980024133645064660530678996055759237699056369620666321589076823974328067553516106361888063126412240407909401415008044026054931939887176062798396938311971198729643042204832903320717901663071945896748466140045014623537606649028751464872067513889615261961724164650636995027994977978643367308427658517284317995080748702891581116275496574641499213648683175505392475096960287160628046598989837974795206066893032518208267301552761480458425484279477570541744475516603436514888466924438519557756158906998473703758588393145651566698220393307080444058438982297840807213489357041798197149583367668995245366166549393769176796933442037176088692064291867936340538834330486731062243804408582592786835179031099145261751900243198550621951579967698765806721333825791107984220376463214498272714749239773571329972004158574783454350474118447920959048386962262049984227691739779413760819984674292962428877267618556332764234543282767238755069456738598156335047877563997154192695397691097270162058211906883615350246639072775557655337378459688143996892993796224929700693475461794889863550649366587014520045419329196120112667793031590606476835054795265674299014261965288599108645522830111806701272717912709399112184330822734144041636657748637236667550167133411346067661330361242002088926841259790989120689460524861364303048997356364646037463113488597896416399439366163393949867604052490480943457890851933925678086754311404594096017984580143812357390087106948748528818146240659086012894925520826569460372581557698782802380535885675376165867329220246923685814549641705470186101726599799765023201595867617569641222205005471116119723290082803675689151698256789962835448338981498428642297715643353412517429244020738017715511419437916220978793824929299161916393727796182724252931201656985220478300931325845246978193353423511748691519880312204248125026694374943091517886082752341801974315300853144829890219253479765112565896604379247127695647622374131875989935226028485462971684304592561645505548792831487547976327709606925230037188945381112551481021096207325447224354972833605485509706238334324299783662302674961933884824268795888615418900637408921514770600497320815057377922439916691789881712154201511893054944979242038913096332216734385154830893529393034558233497592999976001986581492395067438301618767841751069910825342321365595921066435532025423675341830536068849120504999610553437940820283285551301695956362718061906643081437435135874568799612509904487842778922604876703993587857641969553094475488495234410774868211156061297905514058353234950571676420873068616975949612506553676161642045179460490874323977114552488130537538665533093862535952067503182412958973105343894515204418633998276508087691354217731287680927298668853927776065702055769203521021964383202730021655587152072643679891044731582301319860474753131898899358624590822236287647307070391542506134543549508497104045152520237882699489875632356533170920548318742445953484030504318647473056411133001433137723626626363480269105810591770117346162905194816184449927678069623540490302781339729963861042107500530140508968212883511072749555617374247937867934168904192615130762631399483984265221411681659269412006231911113779540824716560923206096500211118056943811303629380859423076602984155250057241533871311274429866181201114348858898251823951069745163901107277415314528540400119060964372359568477012881076725325845891291192790021798966995215080018774506709909354082206709390816200922094493534089269378346320674036573455064773519990083929013170194726913080954136753587421421365462326984780571181388218269493368572970604738544556965596068861938764544329606990426600179955297703520654319090951881820862621916346794987799975965884996137638992835789529911776851629024855708651986282170585754700626223938969908441397800912960824647215710537678585448229701464483747480807051235294359010060251782297895024399239998146146584682115367186643965507196310646195667905090784907654158274222716446614915238502592189635631044008291204640106324987536849387280634303016836431969456099726901005885752341832655750505617176072370936823830836024933939128805552494097452895757769761762289789420756802727405789160593176662117533140366693910924244802262197288672289411889569011825158528800548233193439379473814406103272823129967220137210105378781684183265391264168236405850020544607647783279741363029878206252481120890360284586353565056224926216626395094742702609787649758268350756609668354116071112164576133860962942941837846243934046277089500193498436002711712525420624891102681215280916973373493291807480832878665109520622335764331537286582472095018466319846907057069576389634379453270923321495152045913981638600942615671672069060557196776254278141198024928624829908354217236930434678792790520662199177050729047646954533096327728659913590969337520671351138503880762941949384829679090320423197347954589371662884008065566052985486999696993091333742264888491800802774350408163887282730319031504239651883640352737369741948492439576247103020519958580170427962823233769422313567740288063143270966078083888160758658959331516070565455524536528001125885747287506608273466142530422887607124661322862646905471124095238558872673703573710109656321433353172298937584480317153120384613114170992648633837379244104506019915801696115157975231431573422385877294685899884802639223183475676613278426603232682653590159418575888530208448050602130477442761583652373105605984733718892738883758496684309234886673493334277562544216157476379888257313717106174207330045531240479339256308628696050364353235050558067757117403216029538901816177925876797219546154556104411860450009315335385235891783237747125886268593221887397295876049061471902226137429193896673670756862906714834024023873807093332963983956346172684559871626594513605602463845898374385715586792724290654411082080906244125906872244552020656383153937827162015911779728693526372620942182689187649921922651210921952436710229300260484961693103083044166287581323560422791214828710044412260983055511012728400779086404375163282157926319939299904298168627498259351882368671372459046679690777958476184170383268636778664842943429720218587162129313999661979429960745890873549814262414328626296552930814152295688427750107473635783725324180469473657323878450281000082221238832786629798517532309158278349656713569027210529455732942762786553122615514836155739312476153651800285034756173370330275778052852251538539280712216122564217808313841485060762120263482066986741175869754468485615723372390042920866368217948364676461075176342661813352036333019668933991520184034175381285380819696952641651957435918297314051361182875466036011460127308860164408026309275859682059610311607452868593063136034925515801091473350105249815938200655868752387718722894137245406130453022346421059471652999165370188908167297720706227240043853564173204948108581411548944688618152293749541353783486073544199020672404234289692275067195271435474898244580442744146899340851514533943555295658176879247678841874479107959832613756331750278546569926108167095731741318374731993656383647609541351937945724128337851408955477375792599232721829659150984972001176414000079071119827528672605368391343978230062520788316352682417711771743580419833755513394113103502001838403377540255184204839870018725400916906313964546624285268167756066329817589049626346626511269547953948874979569870986641605242960951005271158371165776675440166117808375420652507823767090608642030347511423119593358284778029663619296620456571673585897232215131669168252514632886333062488232118134851737630793150448483831639337173414350694157255912908974213072763895173636724876093301500175885698611582917105399838586623050805224379018222293244609477335017842600705806428362911264899152560993826193645714668619575814398126560489971214218139945085065622194679117456894798031459907308328004022040220854527816807786745959949952836155338380203584908896118230672067162615451043657614522671127975543817942417834295200502312323033365662027149448068861300124623744253363666339539971046550359468247055339904127298063270155000524758808253071534920526532531810621509392780579445813220247363792302186142937450691973551209284512145025802865967827350806606400167316740522630542384078827478137498001559882218645420245470389329889563230402948353607369439697036327828022417138460940077551330731719612162256146342307626796279326028601972161465940884503021474646418571682374764427672003412879039898995017308308563380799001143295197643474524566082734374222467704962924174412557594130310780279246464961570708352981455977239655628734954214280733861607193563555266949751844564961084251687411946714052663533031761591275205837287911016246214164412592099372197737533389725042417620229879326797191774495275476489899643779927517979938481388193912851114233265127660415177477910374474461688804168652626580546892856932180971237547622839784808666945232510772775880149975550745073334473090526240628440578948277073694785868187675044398926018662251400677758648485447895639639332694638855539213388195764265431408219584745717015584077154685942223207166364707565426213159873008465858583101591086430081348719731145714636333306391339834610709900743664338944293842509368076238139815235168127122723985158709459742679879212299112190525216092598733675196434948708393544489220668677029977480196084918455465948409028542699864324993587339435494956883821396472880990078314301504665305065208216040786006313508020488815485425183467774271761138424737379014913425329489943174226825612768275649737280848433313490544595132764705881998253334968150364250862911652644664174597193287343361909574832108781503821191774040907415243211743452189400850166033289417064629557039231265272496566550986037910415731872258001875909430187662492081875204436842000267310177094087229410667389635472984365300138101401883827576900311541894147453510550566373871891435827508050203094402808906073470831561206856070072436062938371220655116288771131693845333697669436323204859253129555687085060977422529316562760095615645966810484437809293436604924484879675321154343746492947242424411492272993986128046784550356890780016868533255658054656395790035897552814737752429106672978188860902374852263976501962309020265411359698281228797271545595651275140544293203160568350683197136284549294939970369754328035002058638876484242884646086836324086441292189362656936367537128721971501251599824472038385234057637202535409126183289580758585844866149263180071292736781105398817817251165051817243462575468583484749208835419169365642077501272942689677785956832607976143241143197041406093466037863962015456926850946531821333161834633006759287331870564405763018425821417509040767745379362051115720018980040451695066477053798335692459102191979481687930396977643085822307803865756830876350820735931349678483300278334246078512135889249605276908982828103409764642811343986427463777809736633264380025840649346987360074606505807787567875359662617933786016597349366206270418809563435871665877600580987410463973299373843170009409682292557986715884144216683008452692290622566912785110930831570771038178534102387562713204221364600608124360106812299325978725655700622640119097113944300461490717527207003695822148220846952022144123495583466530628185440141414271070748021380040269165573175047280558660706679318527787059658533917439698539556354408173081502135950279974046632252081297819545615360163186444077552695821230280577498210027212629377402958062603964931212131360069642508235735112174845304430383797414178912939723537664918063644076404653193949320660998376135193234542717820542315469855393681486600909410600898927374246869438365940181141432753442724627803344374688144673998822748872345369329872314711636905728463626639301746152920288728076178135684783236175142980790474044207892459168753048313314277837654068123230580620833504507988708746887210125049080363276056989202071090991680761972170401519939014547191265134522785020238305157327623697740446447550139919059835210266195334903761326829706338997780493258287284025595899675069473671392671838619298865011462078192816719557440217205263277984251554116831138090749078627502902944623898172857434063427268931284754236912224339394719536011059096227689067548734513403428226806904779039928493965935633095428055039278540234308554440804972943782858412757997383530318853767072415177684139309544882983015088954666964662485648622371931090366453466629661583023377946203216983978972054675075755943949203407916570030329967250588604698065165974310448315803464370122075341017928873587345643045317046210531709001090742684871897000906624564280916964734858305369180887681914910005729166244483478655725324738963636663051012502811493714575941201000415127526903524093412343703172453491818159002912845047304807428209075797575606790177877164271225401770925695085612703246526699753073879323521279575483718397618744812053536474486604683250884568990070705939669694216374520284083972768284737077999749289850536021479966593556141347070901090877469202466936245022940913762649232052825945581028357915265123664003714793168853531055385119907020615038864320176136180981379265867342011718087676073449143218832452883839981944055325465826008434398274750518724050539864755266225940339317971970291201921381681367320062771823794480747322740810097321376861106854528933919989783340840939508361738684296605003673207777199980887650061403726345785999197085315916695442576864495842821999618409753442348192090718262800845343706134837390389170614296962461945060437654048403931723436701001372396511662976202451813763797825107709954325170673928083168122743487998814535748115615441959479715984809122109727879837052823973791621459549359432307538800014534622666725282952570371643145088091766687163528086539281275323253833370440480336741435908001550984805366307090116510653957443643848450724104560492441228028098248774095611433087500029826933310564990034407298348849321498175418479106306225147348959254959573185215952923234794478049548289880727436845554153412871200785641699464770720994072509986777050784330379278203731019396355983792393613696152318420854739723726483590767408881585867373471877555897911914096415342785099407937280002433067598004706810280044465163896644733433245263526002266684134797026518245990858404588761202713601680892563328475753878646533397928083850387744734784466115958133401732695996287503342671645550456333281668638375147830352100818332273488975167529024890193362623016929921961480345075400000689771404557691574827204701098538286655138957891645825805877818638358823024157525578592457213954311694134153162777155185444194780880408907860065511201033016350479056756187712900330660711206363124211777596643058072794094613800161272445170048767540409746417760058584819576784720103215522132831287675595779297376642443228915881725648820347535766313461944018324141888840672683250301395554123511294067531474691332715874878100252301790587329373969872435163795106338468046279768908311269421809359614248471125945055255511044828111916839905298745371787812571330628426899290785094635935615366310827312816498999392304693019680203581420347198206829641205183488173320108120273806942870750694612547086200674084702781541790283966343437424509406923739536921746135036167058874640087001642782192157850219070811465545809089327154976590552984431764540271759500930749194242652323913593078386256113028193452543461712758646562602865745433984457484351526637632893807657904240252884938427546794628299946386811503578421008640112049484255594817250569668449897327363124571292325441494926203815107439455361106617113695603226182763597989849531464666146048988540632704992914325551971495365419338623280310927508622981532769437068180863756991976620251459841943592153821976233505383768054347590876953830377946505725314716408085848725580430147948362542018906682861403258780864032103456713504622669965254715745810174871719723884609247930729701889464310492216705956846169169410077454500038519718103185438232696090913096491816247316202165262546608780833944987189750564493487652933541965159932473639862705212716932284103893833888751218013240036187644223485070957133128034943650925348755717652514867978174376863734083713539238625757169499228629134773061228967796056831356347104117340162607584657727601303762909467011543600422671151119726958229864818762827444211408265180041903796406842796184990695690607366490181197263008855750481745474582780702149441732984006812440408043204470566822871397083176880059411150137352513829275756422859426688040617239187396631079967443822745684135456517973427345038363979563107877910580536712471016240308255698995224038618517295339794350045248741313481880992723031262806049358511621147774090982937151430153329491784639828026552617703749582407491543291150223661444588180278744667096282392785130996862248159040365598255238927252668512252803594155230553954051525787607463348578906687613649473814610107616090577778966960773304498623121148325980205004030194186995033651506832658012689353623693132949989683815245217885023457456783425893957405784833077220467699646709303068784451656031328327271420864399047925600542999199317563580435012781996446816096851974525777751794562901504992875690966795542620026160907398821318488350892820795050265674395407822544390242442604186773408452518326341160095907159033449627465874848813603128400851911956178531789902462654096385332506015837347864183418708142258990801562199660016835947372872148202873787940399498453739086985063300000015791585361931615386084259193775477331489140517147611665562617845123680952901781715873680318514254410205870224743769669059492946109207760188234749611480977358204310752533656434983827792326930081363422359437457205002578811072033273553604927144196957888535660127126147331362214525172120604311712055178127710529372421884134909104175752235255767197244738866334896525238306170971220801653633057306700278640048867420392432396375946438028645301767191157781467855785126561509964644209913208761767315857350571474753983729064645557786022992437774633441017076413629926719624915108274245707711849295861831925746118543874364885510673051746185025389892999488778853909209758912456392316433482312275829597239446129710504787279088179422052489737206693923185174697858086240052704566689667668803090336015125785871716585864845604614522417222119656584208156334125713724258703441157659846951935612545733567612228771715103070395541534861735841181917206587019649105903883367730710449768870353610927766627281906037999012699941345711028114087981283761144946568998545012149127550733368110626032197330436064222587507099211944571419055498222883170136922794624586773426728267164211415005451103650682933926170343300619523261718837684616196951989572214657011179191794112356255527805316288967054090665710974004982638317153477610783920996169785574065300523923391155847499439762880237779063052224712773665912461021472297348066512286327929055855507227342033884387325494069032364316476483206805116827942670536341314565246575435130717271710712138771782706995523465639381483282026302957826366131461890296846966844538394132036338658696576880272870796653306895200135362742889169670400752801131392691115321906451659871151091437315821690851045141601236725856847618134864799495913781872645725686134937859011190308543990909504497849204138598650521000962469148346133083463568034873935602972681452447027769844370337030179176452552749464146993413467970863040550063186145297071687048535437808286993405593428563280118137737383272299763682614896284365352387626443779364571366359980693387617182060779054392594967039771941550996167846006532989265757967645711120192874810948191652381175546038744324733917694609722720886272692334774306740898678486483541326866260080320743278895375388781325760305770915633334404239221784628219780874111367408096337392579747317034092585851934290190780066362495906086521737589829128369898811582489331982108172478449598862939105211722778695514525651861041411134594029192650968625352967262655200330877649577373797926741702751529141002248808314238375751992505882042393541565623546119813483455553651433664900424828866807294995385962838211825976189992207460039933490259624325891356192193255887636176330373989644395611363525041615286614941883037775727652783876901535058532322001835591761931222152303523381909002190335364209527421405396174018957734335733861544085516726789061638465628745323014592358248755079220058669588349109714077086433845142053016743027399499392230588273043742311367359350988503618840471058843536472525407913138361543280492464097647202370549238964759118473615072338349985567451551844940303695617600704099397148832419747365580475085157112382601696081854447135982995940989732156161294933236065305460001932842413000312179336199930165714302226315455746653888738712646592397376630891208097568764817674038224114741049525770678233931405528324576223480306318579837073892168961698046357813036563802041109544610697256062091774557128906293608796847243674086273241753511478851157206559955679213629581819046795197721787797047330475962490466986711258456672587747953490814141221450910318055389820111351856810299491802818498587957613759892592897503310794062627980106079424768685963211121867058263376958075444483692132106898986744257649070856969977111444893581965867215786379521613325959214959394696871647145568988634497816489081768819494927895513172508146351300521431960016948741097158424153128867518559080553297648396560144742518386657900558109251474207972115995196743938886508502916023453135047224416910954581291700361604320218750408405296734934155929964763235284378812774505058926019942968485922057230276374985066168797212844539879799093414800662401900185813249458359294356930166005313096340319029483912918208974942526859481245920214814852241200565857983536732391034773954729191192640371751980921723949919083369126055666467135222800699552234482621986972308725566262321843801256324743402503736763821349564400218606778786629339778923406234592931633335673980201411086145075303272523114633362305741820465804730884446880440724131191856284213678877913082912919863120439469260709769696869079107611666244311420220217812821961045654835200154400512006408361098265316987655910359607787344754354764861543105146510133915614679217973218320219497849647573189516564102997691004254626358679656315033002574664959404970454253024355044904344666006245733169218250274951060615496912696357271469068677727735411512226454318395149775878262280392298113168929242398056072827753026231104662781018198341941527713830681830636124474698192933761440852248333295553715686523413993858582854182578961124721520637201430008924315434267244177059322974469444781350467623089584487057524444031546930006973460250087393312449176245823416805688956126891638800445694043728558034521580477854427374251505919956616081137503023117961705518791539645969570376727015012761041641733584754741948121694134379256417015322058517498457041442687689504598637706590588628161015748359623722897212905167382891599456841743659799428471297820564236469062827769953395400445913864869702994806435402595251871054581859828629774496273394301710542454660485832000079517044142101775791753369634244449706961908117589109478812024159705162687467793833817356894042280520834294860688163110818047321215529739152868761656410488034210045368527276680091019268179454487259402056102119831817686309811839181704610796723459736532909090089814119608656221580897128957730077340450563911406697018651252842920242188199524152920145626620078832112643483445535145934432091404131468549755748114985285670660483901013370336645427987309348484896445603565633670429403991057362687476290410493294254163950661120780855562700519338356915374218411490392075617677710689212265050639722286370700312550824231915391738518671687023139390255592962831228873858991840441299198549532253818519825923433703985630886300503575294554029456182065972565242994280135237771231040416710100306321026627653506423080121755479903148744445330570975854021865586007681111811442578523741194522051886014639859510691973135494312520673925834712903554215605419907239885831936358602875953145554028538554769603456607700765899599656131909847093180697524829141119481781924841451793766860826507029164520698941144547980803616993698144377117873999690350826013319359302482403734043389093209798252740687385117021553857991771732936640765883189881683661019215090357127951045232921226238087798970099053578607994613783115443064434094977628054874942818428395546525759612252602147978263176596834177525656740938783983259015417585265878148679423626521971870053328934260510183378272684409540749394723548445454256196934797863404702057356894834363420064620778545675623329759638820041487564869655857675877557611743300996065881458522480363542078936046252300014310607040096050843517420976196263032753527142530000290366517195798072488673701951816873369649004730662654403731726687768463936405962057978792641964033139638047954217479637117489551448623525933101315424945517184013857076749716131016415225949787209210122751387036935910254376067086529058336142381102899311975557433566374877485557040838648904830184270989734935774392771488811909493594046351738959228825852315437642201824410959929227123680620337534983225495942902141739051057024631096956662214416831624675238670668060961698058033195049319339863130499479703873436528255356884246056933473121835383474680755364740147952235406206103147460366012397883881861695319101668147984078918048807643773190834607154364469413069696167411808402897251124938162322694344319967094319278567729970270877779511317392401560716368159724661488002264454815452037881245670235962736393161770716208906810767932710450313465293384732256749584427333942485237690316214434001636680554698079188785562963914774822327523192279812824764999462479358013106020799614716614631088939960463754050827803164643371617106158225514178364695247807217523739592061038107731262755827470205483987220446005816166050472113199340776974179567115285090124491683946308930624298969221075456160273851613708239089842671964093163029387015069904429137973711336992137850130563660459269794751762585830815174990659252827836894410078536207061051004153847439500822215953811413030757440859611783225785738301115279623559640548416748456474380228625181721131808984766323623527206539299470813307708146659687810102442494821572801187209785912571604403568744419145896560151210158909455215432358439913038649029313082241690301908761799369422013989239201464723512449087878621594502188558936590628859223533783505316223907319005837522938629986217647307945341162897622825569788314940279636680021853840533146826741858070668022938138775308659963990068567368273110346166168624360268020035181282957756414878399095368440073362105454409563293113697830485514222169950023691220263525820268343091969938374594689709167149819199655491668227131755636195388733149604557950632290993080265860733878247172325665872301256631177124146576688054359022765850635542064480067886255167364596871700730943460929178295038318868630176406151111135035775802226239613511913881115097189800920591273450651250384100834350732247648575712261532632967205934457914785223752592849393380938262561972693342684926108642861701158892824245183799791139752181203430043000705496008759460352602148882206486965798332109630429587039629757337356672964397711981630998572289259682048888468046652425038236503455423180405465507829009051904225262242331554471559143736718579804144843120572723640250597855370908656219465009872874016741192757408401312704486251519970891488733296127830330004918936619004744294577147480411317586111014287093449044305673855103204309503057395516196048538569485570168150493500534242650274427022000733534493570384813078052425127021143428177838611129608514660461090146974113311864577178403179862548407750663901203621862516643445533010329497124915124111446919037451694399666347974819346977164907499998470482022722918276896367955848873857187310790994257570137593604605579493669626674423644377705062359653452147474150114655612661399124353182860713799446289870487036175271856087678183516083399615626103995663085292526115171921583856369605472093023249711295723901350119937305764363395067569147882237918921535662208159697578555699381532126543271580821347043205762747387151330983726638616511481814600137639698715730503528732594248501587328452555833430565288784662627061143662589626656444775168972443941557339682326619869199522132251757946385321810415366781695703543417469419588911634443851571842768369346962395338543826998778619736908561289333951616392043798895747111161215263340442012238072489062518331891079693473006620936105450755066250438598332317625669441144764100810871864913307846703328831777944224444426694665463225015530227992519413095302439468829808055053225382699200887844632188546292760740115277978384109660274187866366201190645930101771201938880368480972230084696580516705267863696588828489215025275218960016564384893929019342231921708025294889655843133320432219252838092854359602773011243267581667369450875189313284177429893004987475945936395054397178868363153146446907714557052148473776214135137267951078306444027779404096314963552390041564690100660694620677051674000089406621097552333973893309570457079537845255500986591639332224429382497730644737796439909476209989920476555662297502053481473522411925521963855283166144274297306231467535903593056136181747676220277023700792230547921156417248541688206235652044744929839222658503156265816236610118673073391882822085849726378984716273453171303108582502700693342488756816631390894393290570616302473486031884186033245950941839836374005514983620606646439845783021044340084694266456338610654393524080067057035710857560826915684303038087853106889163704111209553454176805935435150578905724498257074391193285999008636303567847111229444132397106036769894499613502604080229778386900154233967944461726872313886624021703748552093368969093199667780616469363185223815336442174863122852254365894954642564405820981649014582668591892310711460136129104256502921966745845761217565889948572808704640590921417226831894391021994518826721621946009328992238680491576287392398067513639138762929008003079174833066035962418809862439356341274816906596695707619422259191469781598114696566577581178139075420885520565436525145505532216550160474683216775023959248670029421956696687376751097674320451193133733272278286307736712254599709148542996722494212015253734935024367420735179383166196782628463501655646372300664629442147651106644496604107111539629559057682807488684812888521481002384925761662412032128301959377210849026905561068716970100924097589541133007779742515812598954496108933324582650848788653133745343786731819975502345646685827030588715000366965028392416377301436352693432881016651272863200476762824450788761195805338978745992186831171713107850396167433154589402482497025432307852602347567627649961507375616554308851712748987337803895438144163283539420508378789819341364091933337820474099618761173774293862468146945236012076018953219474096046729194913625378963855374363327440307583470141703246784743966557345901205437963123074907619403851228444821793740753412306744307004591952209272552975531778591897764927670406111057436721174298653169900026749173957566503437225857420150359121150194264768384912672346339047959075286626319524993232386141031538449587204271074712431669795422955291800007109433770141206593257613748578559698000197980716433673445029820156472139396673026074341230736308075985814686905092592060358957795383412306566453759011859345659455090270412780983964125606787166257094520622412361531638129208896069417370903182115838771544260451850907250223373724810558868108680117215161859179963657093885034602583061773669013383868081770528100130583138086064541334457836381444065559619603698770277858835002916206454698298936141357057761641042993551898815830032084617718334766558748062634727957346158446276487270785034681220598187474029466661416720318152434358735170572538658418589667412125882658410298242558627988467443619722203128635687503363732490275962624428013955619926243961384172591637321842516569208082327125196248807253124082764018327012837224202315386269197052608979338465049813548145859683759958406808848001943887495297068585868193844686194478775179513995255134999682680637668312736257509507760680165532405316715038506004995050359858349341474083067793011611171713284325794392762077063017173674825971022126940469500681450404589691819601197034816967021637822564411316105597916293916286273081475055846946921490224678474344585226702677668174034630738732857581154278522952344099398739684748196798272726789171380471019465233896843272183496236043025693567459153764281803094137800491063388026868587466833097593307990299683560409228358608496403115396570439937318879891420705234450781989189348849634946235890708567141685480746193830153503366599272566661066969073997989083500867509498151782259990883125903448550799904667086452221232741534848299032363525025963119598123248874549425829977114745097163810044385587620870346505023676747248164193262807964273139501031063350076997102091036796873763803943168929334427006325557848092336179124001492318339678366918514409448652703809443919439954593734261096241241611438675000842483858009262182183583214056604214186956544865861616099335095634175167115817998784357593515881646829549925013857897353627977170503592229024586092690839931860638314008025170210172190788136707366754458270756374604469386546168332710842891880063243874533932146431190248370959485229790775366605446877335796944463853719741844285189645340374522318671147504686175024907132350219626213023572030952430366232286156729821851333258251620579095947673440872454937705368566745556728259230802198171661291830144825525769616021532754295627099519850547377393513355715280743995802918650411244976897983558309249322369828354449371946376093145798707924893769892228081007358833579235126252462476955413682237692389415731886954349888687181931439600533810522213137248847527450187781468983973695126854716320221433534695381138215312522983556282612138873010377401566995501815522370071125706340900558788636901444694750604121874119640683939349661751205824741521452602521892798091746883602703227340473659646901861393963954893397436539168308120877896138650987801687985574324714142457030405258257916795470552279867006561524253853972674164692650495016093486538816597763625521411375401530884358449517123697952152972906024576062973469231553189152927052671682291456565094515453142442339894448166069580067019272665875280756720886063222204257489229794346525423145905758897938180316021904117037799952443226913431169765159663462140167422123928299592696273184295817977624269817647692195764892324352766581948325414401129253394189188830029616141994083186644217538276769971072811934334074615848385753569184065450717087214768922028281445356494475187559092386111667526504924040626826275093139408432718171828373411753424542962844557526862801746484234915671465535447772383080445190451170215234481690839420602023104948933164263809629831443019780426701299188223217922937804923481527143850732511906786945447266097019103487068519816395900621536950200910418811049604342755354795001809915473982442685408659195663802443735385917229630980827378021033574458747060113611210269789264848453046391928270450536494611952578863786241141567956014133799291477314035316266083769746168082270652713695383565876266022831271526050043289540505033400337682927109296068440546128729881997733241581812751388673414376679302679386236628288615080869009155963965035280505957275443830231852923333278564367929266906849687528026192963916978089474706373771529250864873543572945770348309673305731585273648356730914645393410474429983783754834765098643060184654511412628765218224172819342413316596721543567558300202414051585048922263145083181915642341954348490963931396753833298399767708949349777575623970603839814679225975848570898069328480754930242833730453820195035674765859837417345249645511688122940421631459629664998350629019372242687638527963361014206122896744020910771472226767446993257163144772944556258095752744345419997856617015182149186138758921396904619870986334883193865766569650870039179885692350223419948885908812110619224101868656267361972127876945365185528242841986694552437074243808852818296959730332765782080619746348968534545101109485754012337292217274419932172347806431375355179388373260357838507558927983204058167510910669110999150217490061752709823467178090011932351564612433359455946410797811194291208395535249408113264206698034534939632232904087246167800722418173352884682069971646549857725930314064139280013365332164937732769948895357110054203170971035397797216978940819974740886350685625254753036801037759240281444448757526260972024918893561388955077035655280098757853008805503203216491358590897035021132704870312451548729150284431026284190413446185041582467117625442967386153133907539858533780121485644789011562433296385192749756543162592072056155654678451260166557567108479886523696936596570410033959331207373360841337301879891478456996300519062898590264900830986484690327883921407573879017302740892994499918453246536174166015615831107078234825402374648847777442659983001933199840814765247964749108627126644191398341141996492681694037313081219275217384768375817576712448050303089223343270134396195528193027791688944368706171715063355126909339622980765444067188586198208107827219524833530493955132367012408599037995219871487945675112980058002797230154441865369264730671797363154843688707092251094716192969607363591231423742929176300836984614912742889125808502128568353342659536365320145417048032610643753428299374807749161195293954059486864783934998007652581216126486190180738252514191101541512408081214972380056074928105118348406569836974610828792381526763303859334803522962760865083467058828166086091060000232492651132589031287121177734530693597950504643152679989905375555724468449804285474338326870377965229217768536161875454246434519175336935564432229957502175552889429310227070097326433736162120986530136025600502193440428186318591076235352295100207434392320514934215380041957162497898601646542883420997292368551844260152859705648570437621314300713457202503027798287772078436430915143028714991872126787009218527972043927092683223455466900436477955038204557519361124779144395166820769460260675711079304394252940423104051574768077499158422746451473430404783046099873446717380172892280040093794999099288568655326332537310027178070549159947695630041141153752406412162670221457766149014516080135471678215367371662742909507947809570696116453168255382622375258956491538648208380918359179485676341754556367377925025226311160589937817206803400668072951078303285846249719124519267798539939919414000551524364524114653658587913967851571405989950962817862591235460322263199944225313096229084942414017531019326002832917176481674358622795709308021923740931702183239179707240344346442501615685993103383956091977514837187305349930910162026564906487222897955641511991831652688427097466622721379083570393663707830487791158225347209455586588903347569781018008393124729083919008261302865765824923650167863199283196712336811149071152803124144713828648121386839752756801858023780975628945743988783658821092464291185251862571110504636555052428975178481905107112372222533871011012245815109525578893034836360152111453959449657875108729920147070279676660336341553195004037817408884721991517260930296318477414691668056175323482945685508346743725726775082095764604208269841710681674388513108413518745635107408281354732857136851360423155362766724490794694759844346280928318358774808264554636803703261883596803056344992520056032725434596186918296805329600976247450315178389159114652380688205734936038357793837796962581067195057753615121660486568944537589236147247231351262044275690367615308791687605205237222161364432055506416210790127375452223446261364657681058242839217675988772722605636154233370487288022850431754265805955277520516167481107374718157440208813992137822182674216096665581188981790663846542267255199142255195212565665138947414903522729635617382653690677975076914558584121253043285561914758831546531625498270788415765565585753483142662205009556058683730045885812857742572305457626215292375994677366875410242560829060509734064850571978014705607564201554059680004169138040084095463239804023400278569993230486700052311038100448231837750851343220794417789089254317337081773953872821408360109496791390016124175426589698015247505918519014128602170639945015297249335939153428375359018258723065754646526981959710613858745475955768680781286451551917473454898646230865701632327898849624163605634828255038037648110052242177359040510818683559372410215296327244555097796524772073449988762206902424620566420785362959122369239411018932021941436601892885112806873358954852228739339812873335107068551628146159179785841829182903590656296948131867353576202189017750475765267135524532694213864363857804449584446648561454263197722044312887649708387290392788015074935451649150509760244644332490207519382784318187279063586663631149948855396890852365648993617815472174994515339865703443483528375259756619073695935315201873217792047648534052878120719975190984766250226775604782170751614898415663904746945905342507818600630869659501928047919495891157982091846329459571809007492495031515308662054693073658361245961464015139565969508505446848962322342971277752580665585687112278965876768987657603629910469913032392278291199957967852457491724404954611539958463421148383609316660966663697037362335471517651478665244389019674548466915069107934161943645558436651557585596244981573996304537781412810105813123215193650928150329126516054768174739340338793588691212513048126715733675479863366563167936670681673607308393398333400180968825524681395573542127692496314442810854765246247758966416331507275527105039186423287129717411582006245716995214544963328781670305944644377934511797727336686108416636335819604492940272114759292295734796265453677627919498451417950473524044944414817946580220415578751063842555912348365112334446980709470684747617437060134326851131681717753615467062693284808908332879499912296913369538752892429909186681411613655376567226016962790409988710732546648155499376956581051005276241375520775994356626136261012490873056553288817397668597037215244960099556740704399398738017178377317885421072409513073248439331653324749652384752385890470217423990375236292266514007091059829913525247591494762761350049987299378989030294061512498166620123836086863037577048996870402926234691371411489631937042705791113596899018584152975160632091080191071921350449461979716076865735961998198122384510399868086685779095284536920824273594717494130871975626603790342384420496203339894882873335220155480098448612807403608108789309785015725893232187906040009588206243967790438138138180378505724732306369224402647327512171954756356239365717465275725547066966014216700892394394149037134789568901112612434768028018794542755434991855409138076748342214151875879063621293886590595567167273665773900333332241928034431575082518699545318923401655418583297699747139087368245650306797430470532866865237663564835985786721945732620374168094015293168235657479966361608171814366683972500445774234508182629306956926585355501021137722297282435777928288844784431329596643686028683185677898902629316571115530763660516246686810272004533243819372135669493158533671416610396545903258906919011427875338262503792093813261935375193449365124343762650512736984611463922725630701280456384344687441925860109485182269889239455087657288091419566821810524916547473381090157654477853128440085996917546853456387317607292479000259419197648354880625964662985225843821182491645884291005073888208535352332956184894512077804516649865790859051358501764047468717461956060429485592179492371082837984911038807573708742127660371787689919616331292991529642231354272316820276257347399644457014265615942851128716079312021290876298438759156685706047535314713265147790622200192694374701309760318285285261275216720943898166367517434185484918920434425856483785012124044387071551928000232524736628728769049104093531185255757096096342101681268385430704251325553446722279928707452638835169463987377134717848734142583625480058467580265100545306995000576027334943843750204859430833468545264180992688107494354958771838674614979649277645236828762402430428148402813985219572895501225917132125879854759093298859938977145851817295545202935123709293394306396759287156503348970503819463931775716092708430890567785233550018788280392692986747347207870876298514393365603545801006773015324875612881005587641321740723706105570497670706656443738296527130681153833505481074007607620188588614082841732772732073238237342069833400941794374559052675612076978858426947489902283157512290742014519196576531714174516337143344096421416836798726744860067348751756691553758801567964955376022167419617269534045517215726258592812563352876847760297894317545814626216657500511901514404040236562045429385794286011382729804369032800634821731935011330322642607280604233494811282461731861279205434456690137012636641310719299202726175607444543679387888670847786206251593874405553015890256821540134694850751431504286148851897243333579264409186876048858674966404406425301412989183430729581872908792522885378364046220252802152731823157420631649956568968157237522045513765469019020639004079178038339920224741776280033962105647913055325794873964247937633502084269505230389459056690761938538504001110100737583652754016554764074386599693971161427232355174688687040166285391249348688238887980097683417611266789706935241902327481266195059321133906764531590860166351274653927936303103877825542981126636620959341889248096897012457427161676855144155546969605545678402925434645145877454826370432816046580922457167516471333909519121699230586477172082101925862559698616966755871061405152357908457024978725325913544572623468563250651440568020158781385806261589757096286392395676402750376856037401687868852471488422947651112167397484735712053224874945050943649951539957551782985337773757909924121167143575640246195106671322306464694331788262995177738838356520570425683750999962301095234803191074996227283976656044955349739442158880482669224874325341816882612654234569607115724138812609086003838797872050599354384080460028879004075841985097537050545542608396267260685173763501832739785150924614278944164033045458447137927912588177160184837140006409021828396030627371966147998309229053462798567219646148545137321552067651734669669070812946971283397463913098905092276006337127840536307130035917102427122371070893958392993579234732279018461859684360548800177730982878782201908074814174218713999894570632352534606420097769246025933996013399795829120074237324517447801597837819914706195493038252849953312637619357296551030954510613626309499918595150138624432780836002362943988106172277727484435087160236990655541205187178985815529684749194515496646276034756387636561719997574476876859591140710507861157312501588011825908544128455658366926293663577666991174956091663322737561914413724773764496803453843747870873079553671863714355656852573276721175315629112989906171266210883930992144001806309438258402772979712650670141394177349787233773124066811123187560880022452383819108637652953474999677313295669784312835483004929575256346143454228702031139658654325646773761859801163384032947032087070747710796862366165675574295113048849743914618558265559169760154207017204680584890254741839375200301004791504171259593776151866073251755952788094979148202894180140927697995670635556437510062470748595134337599879815269334674730700847965784008475922019079705806255163874480522292688959274368600539196773722361043823384856095195322752314047613862528483111713969891835924660200005049864101414985776247294807074197429045271560221727942266921453603926586517570627254213469812021311805421522617113987415406765599261094482891211800434108200117852963728742161676914371576013510673698636992853963233997175612132618555512790653391900258507703852756150549318685771335478434730575505829851402277978220974085483040839315531357314534042129566184489617458450655940445759673903844341079328377329786210130604246117535381559249673312879051211622330955766810449362552951995375804271659776946332156388600803139939718203817382350685057348920000487682883775946930770191878303602164756997088069046279868390472757511212622485997693508320875781424177902294017503019649906087004847137907893251686608307807474922888337789521407985060189342409635930530989193086430272273523527976903827476593482559796848978132136666030933912106635646145023628285212877002096177694465094657146716783091457517338067201211839210970941041024749031860202855858814263605466067733996697687090903063029561828154786929326563790529733872234107179901611940624728189262470024642395690880907715101952342424903459216922267007645055179706485043084473199657625467245654705839607604971525311981894111274318347456937296041107919196521123148696235093946334494200268837873038089016506687933244195430040200030011389614679873630448975067185095500678723228758585627295658102554135776877229538422268370143940263959123560175363315585646138621348363465409348593305438684204394675060739635485748903157304683008042638340395344646378203406256287858207079742862211027341693736933989471729435086364389101224694356807811707124255928257901247450947923538370439049983751094051936799036216602728934885042526064258970941708595854440946674272195776620800719345562441084156714872171647165858862092271953689652089630511089357546271802393777310268561167462787666100413851484705781542032355896246355232345802255892720564565463351481861003210341206233478402623482755017883454698896133259281004994163243110665496592205870548807453603387151662274520764932963344849346359462965707616951744902527874821593190760725819312517509607244531748148068328338222463398220092399316550606121938266947502683285012598575995299016202701068902775426246666159148132603048419179936149983273553740014411984814693928627289472745493246179666781756532113333988343605946727696789983813486799734599099511406801187183578455126400178325247266378698138536603727306645273877792086751309985313221549534935278469217983384995714184173145420147145725831911389564647557107569259337145753755101213466035266560352236088381819740207080787397357329212392498357183980021330905012834007748843479942396898207298570624995263893610599405529586346590218751465293580263924939207217913127482365467055573805159665385831320536914143353394211329151874619592009850058778397821688917788249956510171119153892356567592602745429955030677989666410928294403602757609965477586213873398624396387392195149994288865778200873311169028481375897612185401295231036991222779938766940495946075511901275087716092385379378883688883923668707235759778205523214164787601455561111845822885653869260172991838389871234426883001940390925119044265309146729359327790487911474032203967620586216240973383672686469423258044728027891588788785363456955421733730321783165326118959585586416715168400820650575714493308163765584059024155495184892999090495255933582424672180765281595963350732563030884335194270957396812557484778288576998955300209359040534034523138313412722515181814516964281720418046921234820499404871672760552858369912187111826903278164085958005953712909603037462319732738814977216737765130267525477677760784225806413050938120698989495391843606421129169437071436036484691264714257198932216570206197640357282870518560918224219741758988195330668446492949941384722328064714355707119550466135686117229166260011876903316488223917459847548128971604314191507564684048991813906605889768014286008239181257300921508864317519732690851166310682160519180203436291530201419673155526324848533985182112952493124827090054671034279761353645274665200754854365098079438319196185861158723447501986384402340789619530485640688028943570717740467325717194580994173896631468919166800482205434798143110848937574305293598641183544554262319571649616394407739739202026342130175609785986093415381175448103876675151893910057298417706989584748199628739298408856342447454870054394567525328159298168664762374580146002948510110895315092540541409265284795333713119175018460593038466656724185169160970625829392541524922747312039348438636025094137480810794899178487455148756521848369266613591963706829303044339889524535915748019530949672201466177808489624962594763309407068175564376199992226326069455520176699348754614519321899850241431106797295121000714183795104114929200047352268010057971444284863000216599061377343793044872693835613680965598628474316390048094091853909773683925451828137004245847811375620229077702020589855295658150800583810230652608420259416561155673479877234095481419723260028221329302837818878485340210325807863497602652135539004113680237703477380501860120330371268809423508151626122521556827890718778163163995324389828529482846956531742622338198079055291747909566652257240998924185222234523361825577630024975763093985936541614474528359077433288809803589585783001549410946385600607718698268998710843549771830733924637727559780319213166458071933097167583863309025540584715902011618641777221899255954609844828633898690248291495008290645303114642237637781862811443107351450266604042145536718524767761909534619749416663866749336831481614474746323682885697084198694295609056593357812212037228543580044142422494892205376902024138963987845697407017292806984773930048035973284118801232337643582011866123052977558763881011392092538899041802432622917715781586427733780620377692797145487309587913271464767191576731383251726036785908152191671274423570643819601607825604316604234728309880330295792632657299505309389360403747848783618554210422191752402371727596267859192539126336091159766625003060575460998682100549360652548059920765544535557286766519719546238729708520744681094725749828666566980766968934798482256654342992231046298682870827445614090728572666458342904539033436024088348938980447020096864267856608674082875329448141040277636995339324157977357858555218548939303421686170025141393310156150202343303532403214146653543198466926190941532361203033157295454998202762416122968136101146042215160574415178691186087056170312675721466407321924867186611209340171187471129199431133638960602121700017757713120918610238918371505146612446239472447055886616562270944308163686394053702198227835914613670133472097772210674947767397014470378545822361074209464307776626463215344098852523034226886793529111630634926803801165301829209777854646333149694715890277244341992146181910798351745861749772635819370792535743068298869750639344129792881268690480303836758072512211118482742710293553952502810065986774172895304173296962782476551973917439666210053629159229744875597560084863321997719138489610990453889046505542300307594456888052370087695282454569910369036251953128882829442493488249740178728447806897211181035260009559652917856601987198139019388688483065304274556122407311417506725504878276174433819720670758014417490149978334386952540543825099127698260932380677817936049273173113450556516405541061764427759564776623293710637465783555733103298722520449436670998843604009398507973316863664790596918592336133075588586615918683636665711984539260895075731479259950415737724939941884362792956500506176630475554324851353301635587364706145356627005823585758618967806495860691519576336417584238078668045102711377331361683024467344518423707910532150843055458124095525087661841281358553343408100827701364647354661670974327486854278253065453490949039828721181279069223821798473145405023528387559570022325756751039238822256456758065710859150560970789450426824257942520681479079042244868736243756626297065171821664461819589087189020854395176826825874583652525742625952147248486855663007947015394217037658894852763458822448709718904527693458525775898319576978970825920438834366246758506008734723010201528097711361234940628265081320172118158247497052462438270883768717089489995500265836278887230721970231444121561438513788992469773281168736858998200980132162134799723085098497069360752523420990548756905694815288496126220375248730832794286582226771356136239931669481757103339809253502285998732341926712650088391626803938433990651104691490030854602368428168183698477512393265865220705507883185269043028661164502117183221465971698471307189526711979656017768690600886064521191707061846817982595230763246030815225746470631787318073782124525211110661142355871281449582576931567856620939811265396516988157254199979249266690606164140531167418154063944113282968698053173326938016036766246845182520345514513219734915778127808350093396166444965347554196423866519544242860381054958065784530371515134484919462840478748287192793548015698300085122120051952550813393041481065938316131222339788207544261549545564075297341711310308929677726376133721842455768659680666208469590691539259844619353823703545658952044659901575111750616264600413136372323029397399129419364852859943850293819516747121815591066777343274025355738955788523047622502930787282173255935305614600361978085212830810285411578003653025154430860246067897035751914397215767792865079462930654025027264375325265272652472225094166178502418894410595223301440225317565063855743816646090976595832860691656014070334163041836664235061929628419035212590660063954095058397693928966583415271353120706251804853591257268415103522494688223280817534947851561046648681727063245669367524708809090132747577151410689249367332152643331541724277889023123355895975476068786301167976739127101107343017456069108842918154870299239168992559118002009865058508366558367581583909142511054276623957212388979246420754976258788410259235256573618922307372773054789161582633507347689300291077949542753448316593471340068315094128509237103372829618476244489576162830488052257598491560294094180177919961946538183842574929106540621736801572092955764262032894386834440880006950375879222148621037301283179438355346764811041383203554719693457038260729591374012940885844071394984523104332192405443659983479235595838762381272784263897601843596923877282180381454476879598278561160280277340792930349613937045551020522218008851206633081493390824207889338872992467158076941341847897592895394799392089830373909492905951966846583338163936204972198884245326440302587918018324507938341331345775529095640359732332839918025377711156892684873317874687696443973431643677961909187486384129932996265871273781348833232344462921085622433756280248242491121112691189672017197395940966231921148528589135888201385698371918349148779697790807883418677789963693644929741308676824421545557751443245650307045909515518252635623688685551428075314395162722188589047814207100694516131578968076033284551378425037293313936208332868916065953995066788708245877406381368927432511139594074820029333838706285344491069700257765225717931528668096559818849127060954703518274067038427914215482302276698670699026138286252500307544835645726189152009705005240089701635506516876723715336099227355404695819720601417647010118118241936420658712491396995257632643125422873191770940789242447307693008258569186831728366149174548160422668229195335655991302443160886025160758304587110019038552578702512545323085330990142492547802697351854348633381635850264406020546325215984123467756333745751161040054279667970767560734171195925368323732467311411330546632621022315151804663956185885543044940424069492828330814313589960186367509173888569426650709070798186988480015984438533956470488169620431902016415752011746821866197174044257846275657024038877364520097617657475382917818936371158527817555344172807255546467347173738668900298006005171736287369001205993040746329793695332288304584372647598278859426705401900277481315944120527715631177993873371716890494501766176283157972381261914050947856056908887542347622338322807519134903448960780324523161912233590837443716358711261737581633096545055752033998952260921694383336434872873917245998544483455939711318937390849854961885709045919514943428214169590797038074496356935827935430201520474620822662077916430163562962634638431084858831926925520300282558783025514379553825788102959099354448282487701030723084195897756651871979567062465669699282472891088207909374739809087609553361171768305787567123737537590847696112484340180236600395982007311122700854119163329426956560344888125993487771374263400716982886643235248965109831347014044110186912312704714539309970328394311206240607832820603153820545618242683305318029389141569740274709104003832781765775960958096460392813205692083386189706958712504265088631617919772071088022504001063527891545066076836402064446173233707385448635973647158250975415598695074963172036343865909992039167608772828214677751317951699747309087860336345736316764366930014201055448940874304140898918720494622495020572230258421599916436065191167699552169208689429938774559942291421411413192063337855223577850187309060695659348289443269169172244043592313904349352164385342943537679010092598249716146723926456698957414678172336915833913124806584592312497535602493628897215213174482768137042008739915703610893630744983660826782500870896197957045265989231950064549266382483128232457230184930863720589809067207795111604744664592134443594180283940040591370705066178211955524080783088248715004159660327102590493441723539446208398152823639240509754089436303918695942993235212012198272132855388751683078348686787507138404737816088291987446906239719831682795261018808431458398113203688422217554410537081451071254069051209876832273011950590808763288564154794731269946634504186976446626852563525755482457235712512654440600765743478438977736221278707593243931749865161041105122700529828243473286568563841405568222834414877414073808376025683018824561221597514522611409401052432553670915051578416471191384052435465228205454117123692053110008292110734533971108324158726069417216575362039107300415432876876962336812091174643607179544319867313856488170493628547101201174700186131311294718801864909247332783281640453793814985373533282851916209013928719228024265339202214828333675315994469882285683130619415671033130607033078011386965184654788379336399748736552601019392496785293290140156374877938636459881046192261822888084849526507067858575787469269083898189617563239252238088216270906203874887228541918002294551028622019040734401460183983632641193826959199039738493038059062814152977604050528108610997580413933368558324764261923000579732260392506676579301899008627813469525331656686153110103104588092964887199933047589234982675561936577352324379015970355917113292111957122700202205595029691983445771333907718604363057259195999130230075558580702690469396823880307554782444534215068075665001187163389559956415687702937252182109218479116282467510764538914054431222370603300747221941028772345712458563999669753779324680289942527332593177323451116527703358128494519259181291300008303818152860913964415187093568627139116437900496086545153587617122281031640419595811428982232610107468912800899114091348996292199379424488142552944687704163300571530440647586388330304431368991745067122595284763508443386665450271794607295752603551309564708274900239587724298454611706924681375512260569973911947773893474974826016071451641785771166796349756526184363948759990718357582860246540376463979831053252946830044487798192778949951645047840231410068757544579848097487301582775443498981971696663667676761141987839350021023812178651608652461856557275593726918361145418608479281150858703734146557684010516044148906193335370931852415781076481842334024070403616522338457497290662149453289625307831950197387260446274849011389899752485087247334776506057502358223134517529774944845014421687101911636249934064487251107339622689757805618085593988541564689526780129595153831343912263397918215908213354623703101119710107668790011340876631514704745634634747066415813705567904594716442414161965171790434220468309352850144530246077192083182413793484579462440640865362485342354286408222387712535461019072066972340085709441669800167961980172931992290894789632749769950259876417715502892896488992398361490793548265898201535084752981454292756919421400421381672585125318281698212740467168101471655797331248296826001651282372344374658271886928724317728950117122156917534956904452445349764136360377517153129519385186725121530256707564380735845697487669406366047793561775318955858460510738343912732631139885930822099963167004110670537520939814760263983131975569601677454598239322084379918828300552254102368600191902467809740127643476743268113918392021259024118705435758102987809459419284945877872795096888359281379256110229929155550987934487088344387858172591611292811346519278120313367305368287319212460171180661606938721928853534205752990133112211285576393259152804651893768169396245468555835202956209233063688176083293196415967642878866282569025121450591404597383575632464542912196116300713922096885217406620481182191829776716260978093273197376794288302921072801589884511772942139991190030337537265581798905867148146564653965158363919355251333539762646534999528510771889264268434027718688337725752488983564566304077314966151119721108505715371861271764151436275216658228525507436298705665329618574824541959935068394886508272397474310797179269665838456581871342565032938426798437108755851390572120822953614767884801203625989665233431932958718706187344463963844217674383994322624551133937524931128113576864127369912817729005524373738029920148077884883638756600588517808685918350194352539996360112180441721128711880788593394903413580887498446838403252901386835935189132490966080374521126369251538607005334066468553895254777999202722522511980065672844189649612003373977282839858607155177693995436824962757891977278109017932475018556721906304538660098748201255659018251924676291041008679180355182297164666898071398345347583874112312335993473817845711431510458169394012515582609278273964580281408719559085007274773475340399614041233725196409300480112945271202768191613399728907060026849569714478608270518819993274176872075630432408625248808581528513991562653331810529078255889546061755444864377083490085074397962890156991617975576475118417851582679530518434371059058028913046271864628419939152646689431322846247173391231435710617328606101936816097235300011411056650824703107425575797814082445831910887584179680398159828817364631290215741569554363093934367743774243694641710908222133373870514216287331547573106289260536438637929095997006024519977883774683467805439224879403803539419926778817631888102572482503994572482825928437036002852400309199011557843411651471360557743775310995015296855324230076322171109559155937593548322756074038403479486479694668934530039812340155576056529793540563876683329586837696338255946836022373798313267020615700581187296731680742977217687513126312829709751544818472312260134723739388041707879244871987427200858296089885083966288081497142964978815834364857630310708034632576549995449021557445602617244968479456777486659322757008692070114093823486782161980707293933182757175016862025052310590385218910334715974479592922188238488175833451583336316802588124578561770551553024301413961147307778157090501721937659299868028225478859604178015247158333969483835914549494106235401333523544040497222918442329648907024121360358500873467907043673470419383641726692314309535362354643647842145373289443139101894989850210090359110393022913423925415869249603941753956862620757258593305084096737052220013931356669070759473919855665080037080508113345105682007856892778019379238059587381160737408910217524629736527712187868505296194503524999105733263713248515524142465108739713250484895243017997777232081923034746407912367525794447444534643367880495895385699613090177058570200541565584574988963019295179106360281402518859502491920567687264862218250116348604581889081507344139912555119996969347793284086568454953062730294833155093010803129902074305694785692482822057281351440805738549017876137618082666420363385104926682847895101825032602495293276506622603913963060099055656076117210051586081519104479590479472009921485735708732477881441329484294795747342715510628019772355615363902147898079689842380363827383644176092140607220405007409518915420957808957321314398103833446808688899336022771444614119974450877212445006250689399918530531834034352229763589539498286648112175722653026844606052095037935278656900701050266154239751775794407859158539827918854136268490831309189263889908342882599260897824599154626557631464912212877198286441063205372989255063262799474018577310825881605583215789221167434977520307068919261297535455605984759971309724544342990046541721176650084834550527414372715234503926444111392053239201052421171200383962058652621971034738816136079145942120379649242441439043722088176321333092486292853871850863718070820575238255991306876987892649092418616165647054542566480935885735064934909924985198262685170741526812417889430731833766910251794256558025250687199877180924561270423999063224745214077330227143411841874286210128706647162374319449469689840323562222285449040523056608529161822758541750439164067077607681515094506979920730936460202211465425267598628137755884329055902688025275015405868870961741089256635874850569426658427471309214445976921690998720194159173872621563609679602927731197716272019793058492406581177440208809673273621338318970684200203052515206989911460175481374670677925789896217599238976446350653006374259495276333187896950233560686760776563200031287757358949991667234430563585584256242647132644753158696336388067996061725955763400072304063379050811880842607948250093047532903615141712122968008982510397614785889675102809464327931997923461315277817971801232115702360680652301467041622166084908370937004318218649179515265195070138864580684529612801944647836412625414070044185266075116853663665578205889968069122841917231304566448842050640749343965319641978808570495770951984259934414313589472703757312677193746362132857681536865207775290359375578288644589440593272183693002743796388895706156244831725555804084301509524827154262218293198516332026126487218756029713931882891301275748809796163349752978132991971804557916152416609962902530743081297151849861086550285224442825417535987970868317193289722420730297583802327713813096523907916353550422295526474499311811947728771188186119708970919807270258684485384753118342010548605818904209016506447523943051357785556272845837353955808226852011842865138388199191792882961731113175067109814633575952716088786576682559052755713412742939082418872771133538849049125522444410275929204731306108775162452846039430909927353816662740215306751411267033788711197777326506118903243143865937927067995920556679981226015563926729626073865385456339912688075118110299258524059851104383199241915162642011934932434023644393940095901771061021147871967662527357994617765615194516521138540360305397920272324102445184957646231728127618058369494559129189951653906860767224385571850294281766171666714262458772423540597648762229632993483796064639074712186632969276317681491484305348557805140909608262694464095799927285582272119470506294989292060244534256150678402319583281710265091739165528404918671364694471894601084175595306793605808868761346461541428992012635426266095511632685227556600282909626613999223867159989099440161979567405628488623558077475291765380564914847107980213687273259382997857599224937112986977886404421126467610410706143031838061338686374753831514566657680525631706269786151155572062100069421756321502846213842761682764667423705841045694018830748868798876063174019837705882860519293558722021277059468047622834659030648754400330043832546075253139430875841984124625741621087782457993969809067779160005490386403626395319608502368293064205722627696196882519271984715103708178755346571899547895162275358496107624745314549948590288312068890906278055452934456885059555275667365808065405127893253053093785067973436635469296623320691269072898133524224991743026412219216074312286035771985901506227958432558131536943431033275173786473354522100655229276557809827239159601948119474014585675065840233679655297524112300243309939766381797930470566038810484089857386440316075637712952025918194605921644564827640880382507616296849825480653532127843995253967027043208705559941683413720814586854245943323609238770645727450981911132662699319785334338225153208772521344358046133353111309782800181678947246907597465742506279908960441588576536394967147791365185775452177946548190148576442829081536876270183958542235454836689312118813266498358407110225971991323718081007437120490490160488724248950419948127669859569882165513888391674547584872712712108678605022137186572773423551756957669031528524037089994672998397919963896236204145670344459864681105482556845620574926187145622497224961216112281204966000387381048493292771864584329621776126858030437668800596120543754148207207051382462912538341204262684720254000170293203392776425454837023951663799425696361812722984602162789165470880732089133192433247089284877706906617813172659436861608609596728124715663538326297433130374475382917953214178225848464286331851048209793608122421418357071172371316032336866212987094189882832350818973055901801172228879011491252398854721709885587228627915298909906594208632130440905247467972124042502107824684552979657194667982824765380518758504394600189032411312860851842616221777139597925371378046824851524032120687888542555544621857118377227573683702935386471732938179823681216365724742684784435726739179865593933279652351183799861026228119743269706661441041049022418279657622657346729126734032703711531609493428383384881640658262490739023748949158167934337122986078515015493478060973851641733323174428298578527618075500909436883304894724025636270934317140697564936010149014552593625661050093352422768398774080540634780867430420308243792838805729041545644972106396703381161013105747184724231947737692820399363321316839226309332450456377407808614953982678456284048557815806081541835665716564754874380812134403290240874785857151177124455254222115110078339032758514921058984078671658839844247926869887006666390888591918662935207662196391285494168852920076600687335043642003389192274172438218398965394125734821261616662861729025306890224986020917075482241509684600214600120592855123407541707065347585015443191537384838930266959235472150597570914748466444643559691536918722868090878611375982506777794073287964766277119042591092828166998756625820381534065214174495689941059231155858584713487677879133144671624820497814252277251878743301999939382837057310750529240670657002363368532256996875130739875315937776643882921170114066057878533791100493163407865245727269197159220081504971415046015788273074507752755977554208521990709634365924157177691827397163056013795781233258364585815820029790820990341132011042799080609313274727172335944272638161513825227173079651120655141800881021403499636570445076734737459068799681410180350372935591741169983709738447002351951012815930214412680848740025809853544673974538045472992940915188275737523836013586186564910628837159063542729336019136191617970897287202854220122159041414329208851601124948531735676470606636355120836334849053625679582020392685803839801725297276781643159741967714481200355650502048431947263060996675414992640326618681360726038021378512201165584187973682014635359541779205323873779218431498168054495433440787412712815180592676178822033642735863991128483945032783457356216662315939523168790999563832949790870908830435159109254262720597496722572658453177357882308783740730761083162922998514551810648177951445885006095614144962474452926655211451307352728940108010898811604404434545190381198394875045088960521851469018262496335957685774484437430984667574269375541512425141922610636135626685128118288985192112061327267801369492519750219458710260610613334038782334805506316468432225835992277263952225950653865587667604571346967937749932968260461918419627091999318368628998350922029001724180336876100983273523272224637975809152161523652838041407463602144193780321609744324565142304211733141214779005234526724778979100858202538418711443165806676723112670207631215176848085804160924037329645873019208635889908511627774160472481711000253836237943723751397242004221058411502289492205857672640782454311752311656260794698652646660507143873297022643113873715728087912012216271369481398475136386552191300932467353399094243034066299197432046519096500976102723505307513613156504942000774815206478976271284538009817685934295162559095688676988349053110603200732530120363920972746051746076917962529296098954831356967418345455903182464721874363560172730768298244016329275755924931903242994160752436071173262229722890312231137743843432308806275220599559376658988572886963036787906312805529832598270751261133123917155942062605659036772604234266871761598726434693022841603661308386472044157848147791638555575816336006061554131550108821777461848418828648831728438105738013347550615027861978684083980458152430208970420721866206470970053586148370489664513138081539157653092059450470157352098993530392848288041649281253574735598925934951554733696558398333647116808648050984450177675611385656499083145215554553795978564369980135940782065396352219617756958932328534891305118835749200263627378246512349720776066564265315273535145830086747333325619028944660006359797188669715516195910879583191153075336313899195704970463506059144948144819472702446333662221008840449172746414275460853134479611156119428341939932575785492465672440943390234486682479849518531557658201385870002881689848729035419569808488991564182791368150634386047513036507187331526404710781806734892168601883766476236840710442881337688982188538406334092329174392900391493708921481499395679216026501809648652866484094643161923822257861277529325662668445383104675875805114739297016990664109760362674464052027699680527380472187103308402065615295732226767990400787223055042398540291754809849602887553857301925931285605752604632548055659454181531533929133945234341182548221481335220680999668014087685026990227492087566803718969374837592859762750437647616486924030698170116613468301116597351926453565779622104451526925713049163056184547313899710051948728854616104603423433578449758940593681323659413897511634421116188781945651490369302492646202829909747303522377924621766966133146960671787722782208669194472896757583029638218580058419736233742611291935478670744374661240240163263812800230280742199767009423357647994767292703859887959680222533234392818654304027458852872320724700760551347469879163259359443836822421731535799373476539169526751561572015998206193523535357886538248979135356148632344927943914816313045243028283185276923524784469385221804312500240198414878784282552219076378149608102948387877541949767889271393240304577900578664817408778689223934031438793253200440009108673007625617267871845214022035483304305994747357273885663287269156692661669233048394806499516554230501841952252437075872947919744839839931311149678247831939365460296146772360188207535427643737090451403009331262028721626042837235408381673503782175021041866518565163196208530833666636497730738052216516698146792778098245278190162816697038360975159508686074940926052261184482383589157187568523254069606482184164698488950377793028094766439506595819264976708069231089142564317115343057003372110377146864676004893840020652714522796577774599217411335403415209184581307948287417003589314476426481381696071438242508103566961921900704683090675626178471627992066429094053096551175875441683054505721905580458187629889659653460030239979422089640700333627282092442465559385460757665475630928615981184930175086009984365745736901502825972739592693587477965805281305427266182516947007933268094092890400569693630067351665122957539349820405439908568514606964720435255746495843172427096907630999673893774945466695733049297065399321888182760497041555658511800918021329524913797983746079348940304968625187815041717066795142267776997783991247418584025022738390620507589173578284568232431709275467458858619504680233087544983327025163843655717815347544951519075180221611407330476886807494226986078582837694111890944741116913294362125012032319592254157260067699374661925232311929778813566466957664631785338656478048327766818201689139543986252734873892032545294603919742784884144001046237713049752150863216635761138532040041941070300267278660609054004997063698910751179724429786707009236396063189039599908209387010545893945747866635430621344972583186306582188926599803852283894762056220498615393447220811333307099664955390168479843074700839341899486066934267291438637423303923655031908738020103900736638756105010294953188449827668736328320375727739079109394997171050355545893951414857268147680965473218334006089646617574173196683738258840330142505137128167124533627887102268330715267507664104486111902183085557977697799269836928622321425555077891251637407351717089107636882760349208259948792409532668950575695298935539899751684130920848072216950219907690029275336852195479923084154830022997221065154087707425377985141917279994968878223514550830153658679906013251617980258340216420456443309886737617574659606240787369766681879065259293448357390644672928702063744564277394386727148228174562019222911607584051203515301924407653269118865492952062812679727297029678515449954020896415581607273711140816655866207287151051652372830215738282610975019169843108837939827927158814169224888255628335833687271207348781957586697971508125431385371542404097240112862744072621426645273285263066038311164111919960602702830001442247333225798682842538030180968465116477051406081823339132844032555768001276494982030056305829102863225202550376437959351624060114052341768578379376601190328734978291028459326307677050747305652318202085300261436695140505022444469152424385566488741372462632022025536476313044573979456649036861053014534261635722330044137815843877708737911431771797541564578332570102156825697814286006868343876415416483904547215966103828063307816282428748790732348147298088407512276484131250528352705472027401200933849069929271200514400885199606486178910355065977524545232403313300182361756761789953745552123994386512357004499656488401542198332226997949286187741921778527680933125014589800615351053512118063273222743815148441440807843000893570493088958793821475377531692464179347269204970146831546077503946026842034322356675664470851400957685798831901715403487641790658881946541425442372053624506431442785723657226773810705308425188911439757170152988257148795751879606451089162428943288086325776967783620578823985733541694706506424538042457101862811960283351710513080611478457290680790523496473817490147291558518087765585467696756195025336191698019512464578653391425553868371699109546961551023883933982523426202486431965294888988030200033853996797059397620640606238049952232925266674964157465007220148896021614329171751602136570880058355329187841230038330619232977555401907166346117777928525019252752247870310621368653555062694662324909611427650136500691009856621600308530095412665485750865411849699967663300915346427619681495542552992256846959297776287506325734313699138452288849366152219104542323463720048836166776758553783622581431903607141035201200111742510889494286871211959943529053436084771146397285208629774358437347854022759559775593280448790731580128538157856141309914157306068790580211911445595711132755076058889700773309298170628148265740638294322114929998470378779720885030226616783590625899755793478225953647665828446379554973166623400013527558215510682096203218857939523826296308396044511622161729302831279310205031807155951624964811079950554024148247410111661195555117144942512026218087149199256527647394570397039019153948646270079929443290437535550980634328416620376858234673847900485752455110838482758010976773061999837247413156115802200666593539501735380744749779760844524945693298255836241060050013779922975102823564705346984038979922740160758007710715661205496105576982459135011875892550714631493181171611610386498508962263426954937505950089158941921383887933774986600882942951992581751853433672111809317810184776907190166773065406585400000232406911131199299259437741928957375231601597190865486465983746233473175431242088529461987092794762043716696424480637629007771331711428560117389140503087575001840431270978230675869677386043324772931631939304097293438544372913511918276339348987106487906428288830715298896878136541245471471318761445220461640352481431052125305879735235605969639023357559602071597268220405755523643166516096574208084172945685291114134888534019069060914412060149317908170289576348195380277128776555975461173926769852678367499636814016651457844829112362822210396128511783986774861918414934725572987034989993660458797729924976496303254658365419630445411449998219088597186170300364023869069703822800894504916731694334059007235084226547927443220736426678246655800027684672796651567638838876578267375548838351880198362992438333363470514375384434327216071611402485058334329767221098101254003983835137381555381663545986636200629154141940458574792058861809040515101599917812427878531364512369698056755777933661947864431377919472287356855244504024021652782244964364104713016201951998087480881318217840900755201467587575523037379097698017579339274024896736424899126863786620055608076977882393803087368197098159020179284295023837624020015011841577197660519983340011214479843526891938435980753793498362827762607519764017698994484957604261806303607221141635592575795077876983284094219485765967919419255900986398469795358142062731194503464155110624092521847947866688462134266637165314232585364785832258926901986566797532120766558013667644315983045570724951741702387325837219087624212864970804299773761471587449272758218233514897593595875046995752869317540680754639658032728115263709234553735926273318295068607906561285980974110104309327485365458349099767347075573844287206521880331133510216074661916786463219128564007357488734937091393495818444099079297801419679078405083437363482982861917534337291709796779887456514263437689365356298154010553688426578251629448722640354938612988812495647218847310540729855602934027040767559025075299137662283625501665203098281512353380924101677710845542984720233279108275443126344797239161989065962011266230142851642388898704480711606080856172252442222568330848222122426367005746428362899990897472910885103128180949210691058608627377205572132428360236079296621958201107257042420212293705017207325237568052822395825630616178863535331738117774959862041659623470838946055587111420743903021850767800205270179005823237658778082828720370655803473424662216042192116461740903046478456103909022283140084689661345994246477435796635838264862049170187955497727481850926985923936599569528142357226793676478495302835620855653321486342087346879763912172986405560970602425310584478841005870985745173122484563995570272405642048946333595962744042913160452333149657778783533965901900809642761609373439090399521021876313189932702087025003583739045793421536023124989996249776582024284642685254339792622088264023501628406176054114034925891122244769921379942075304446588040187589772449221917391920143569239971299133461281557145032722258284634702207654644511809511401250334382354393536433319454568807607073919697441345696808751587406770705287674511145997795503504717816702467908878922229025584592441573825112273436394587642546640453080045904994873105408076088633579627812079363397950240880019397137047852732839230099598988181582052138172166594361848901681319594447104253661641256667747893920410197906245782433718462822593235569362108402104147643825635940511002254726325428770092811169849860957753898618262334471113013437830367651497196316156470055424998489692289996588007464706414604027559872516476447632186174193355290569131335050685622818241240495312449861816980452499152460602873945867080437678592115147788996469352577946865801222441508482712676508072899618276487577345910202568036731318053667752536776487468617831829483122656142695513321161888338318530366954553136315561904180295702939258294219404669874306627831260024621158765905356315691451497059432419109743808370206496371159534342588526123057220451537101700008115767770655426531237672453612238258325089133766551289482156590494402602633980940691697721241900491641957243164062294281970602176787265671809130070865604792203519862054134456184544911759175041522763743249341686291927591207388939716629648356309376253597814516225350802084168033943749109597302769772920198457325545872800406078497165037930992472922363248706547664712674315210811789172167097543887542281035302042638827706623674729667136349298979165651777781587532147061781172296544524761884192470508976818981793796555589310744124193722260366611630629564524397452612330602380760673714021701635410415822407901160682394927915550337818324127422799808544759549045963861849646261398480104086488756511621596803607204205909468214511965932605604615238983881930872826069726995642919730073003999268798052951420037645002778535191229054264001022843257946067614816303446445046231169677963963857023107842956345397252175895660049115328930543587497730039502162419709687816153037743486224095556346990529495158619706462482455990377099857253767584692004861634311757452466310927688248993221188952400621514195066216007686276393788795880733083342700576447323388749413892101756470020333276272742762714157933111936005897227733848913137220408635686628398879568277488419568178410112214581461480086845985066502772113190272322892093591559208734788112927892480709150300308562173175759834850302706970794367617036996219301140389585366663695394015673059101962788168486216948797683205581346388871011284950857168364274725929265979525547870580880988398842261978972002732361052266007338268088185042800597141529773235462079682367832108525494934722665374183336034210791747223047924528128207864457648503331188040720165750608882268678101444432050037261749012965885856106953641433510711653012404678362586779358325884560195133049799879605310667061157651174982275911958694700537255537701792702832847942088279431757114744638406733899121536992531549224370677575606871261639463595128429464642408487642218106127789452983826001279855816809159337907619517490893464358124461598405664578564067530805405984253930790201856937317296775710901123294125073606971939605471514486957318264237284992188258318465239305494013641307062708968696202963877792843076413899958156065691734373606992309844115188214620048459041831700323375723440009591129451712748496316370288483526101649164699105009479269447850289938593199129188405697420843230471342917432633911054451750394966792328181452277650193073576860521732316627007807948021565353386917227636124485779307346383636234954715879970260751726100352591836700391120364633440495057548729902302993203059438184810362015786207244340520554161526262715476226765758445955481985503615756449196729134675429269162726037279914250925249462803544226549071899938401536733757190096093415837141384137299163292893724057091484802548837061759799862562346513490990469102548352850418954976033251181079901898557318595553801651082645579965389192739605697486213189624450296668002825706484439965355057978404841620292082445637509253010298032732559859498724503080967477585076294474319421712288241703006866912438551670045871501904371586906641633154316289709338944869100648905475276417270246675184675573575923045266525358577944229772930597797707227424115439322395064979179243485214576833140688527334712125011585636501893306094403801406899147082033660291685134340642173376848017784283328178498280184846029023413853221317125881109632805302102154504615128145422769986011938635511693868058405100412563880422761398474621921809365405489622616409304957107520928299802502265028423164637187862317269396153048545896214668071298719399972573485972579938940502973229127236720359104928602085586463684272891358548595315137226746765887779621051346159631673517218835852788344316392645057760022158948645952040365122142589168601187481493346834575551739997133874148785196718342083583835010464187301939290716575163360728543207705222195492067594930567754997807412668065634708554797787871544424878580061554126332321624165013814337368073983867638083701943179337476997504868081789239828827927750769113795750784208159325447125627377847540513175583105479322805891148750584276742255748643726696749793377346686701183895376360166483295054092360582813959144447263736198827418841985239275873784074108854451249740555984556378417040866827943554870871740878385087006523527161951581280832699487235875291190022498950876904104849638424908223854646256310325033883952705709057981405049736561746784990174945041584019636745437903255768164300345062142294720810426505278898220840786900264918800225537280517518165888989764730369786569463937674515518977141213070163573323029779602272786069211757801029986660952599157798758570061701330429911299591289518051050325436245080950105751624156566165999382151707758186399824575401258298290323476064054455623855453762247370231704620679799648689407436840937747239097050410594807209738942072126899708808138065649548689705837422918718471631418711726616531963041329127681197952689377147100184825915725990698806623550622979254733060758938863327206238509125586146869842423275409062199657350492241873314579474851728491132309649072325122000657494346520476761631403998339034424502162979975809314063992078259179786697342653700255728738597672848477704322735860316787293309751626734296603484186628016082182897001987291158561933406682574029358092372662300026784162234507953090890747859072809641952136392699178133437065907113851019352515367356823715648467488052861235064358211137600260268470591546377534790654848203082055074641599966753739990156520888525875348960853363488131423040152009281077721841607277861269117011136836626326223149937056352872942643753382620944711532242093612483448179758247857594530909411872765215934296641786770013194837691606862936302337329129572485933305890827661478390864105796914094548771403441258016741714313247525604704473084227567016586077924715604109561536045918532547810162145960490979069063063226728434237211443266219454545092998287134318326460892005924142298720566462156822897972171409317782974134844664445824489566669864391291181803155211666755789039832759246703708138417108139815570953689910824561827466624006492210033269484538854079786654177645472314741056046784075887797148032361237531156023309419597089886503228536637109145654074484035165479112638808634972823944638063393192023131669621286019870242883648122462864729795278208714365618439795259699811558843313918734656565765479395933688713130346996366194794228951481929442669490362130300410506152856048887197071959361379880812928444777618766256436443269796950183849651676362827843912075586434046373850276182316904101804425309512884257160200967577337017818553524385057226663884381983439714927190613798941727528893355837019493258083376567036507426032614465580046028784804993747577393765685036469271433216306137743457553948269471551310780247792886710740334018570808428727739441994073025782708072700568820645844865302536688274129490513367707992916990674897971318378234373610937777457596088397243304862918273435314057240538955625970006066467782716253181406958498365158638582577420686206682364051579773797423855003869503350260456782587823161748057926082454274280005801878435555718755439056876631588235859993000406559088079231860085717125757804596532750084384455137911555583262959462296432458696342712643156675539634879148100099820960996441833821947012811459675687849413652162926291963170773636644655030210022842860512654672865630584828152734933355710518807738111514626103049507692115049235354253313823169514012821108768251272778263404788564158810239460619441422234989307474004072364937862099309408009434592490899649708533225477704291203331146653788982116304332403649869167517284067053690651799385889407601608819385869349805804286265960028105322677812791920518145326478818477968775745684429177450583005502608532576799077458512476765234363538142295360221789593039386921831695057114570696339602717409032186024715357468722241750658517703188424831584917566303681266632365722022384832115510525320407303638674271456690364540134548040310537066745418551487026936772818262906039857347042788740215032461794248217932651463363970572590751519019713856025381866144092908130582572847152287674625749606448831713778183141766621492613741579889695176375959456670518042733052000468378442248144980528887519013731296689039751892477327545515518587462591678886601213701035041891622316479702875466173475097182080925969677654104504322888600483817846951378996847892674283643564101801058336409853414754021387859917852442930077458875659048068239296670026738025984219785377414621414813700447589392149035536578703683915450644355167935707453200757637968619923866893097190021602091136938707131450481792284840269341151585530228411970429033831080064491303978939687981904787689921933381639719414788060278921759627040415979537983969684185702359101763445859972522245075593152574362633411441061162918526214120744657342377913028522664967808123673720973295512884562999530727872340069232198770689428720485023938571063444698139327704098940000383846435733552009574640069190461675693921029208432749182532145572849514996351108092442493306842239439202526841913763791785127323484676883263406459872714451798508965510614835463909894055623280691205530737862552327439280309197753278325737645488058381068869417762621338434496717012646205405516436744713678086304953102823280103721567423068613742323612215798745332623255428104413329023609968788898109381774425626932147957074681612436082608817575479906098990882478588411050468225408917221502925271801996291675116156975170079392925277119228611859161661432091818738010680261446153791992647355548022847194418002358207060303173197930045640765972326301393661085969061821729696560813486095481091182403914706769828902974506893511955199067324452981944150325739158105612119529831337241683499926231772490351848603453857903989180050850070102812662710550753198560448641400197007851954334194319754521959550456957251707892593161138328219586795811660060219508744896835870797125549112089404853969333264529843620689219400448167756859100148881226331649414957142359959061399793849652697972963606385067709460776999031104437450957276090190638803160488873188154800082486430416211352249488307469274716270235989823450195315279209314761663152660015518215767431919677832251128193455491071596884722585569881485880166016611790249398730059268616829187498838256777804418009683892997187053940071399443350956316907792562905673743368037325553362299914680385796041812331674106860868823723652667307090524586049290036363991182597883001706153226050594216829433315530258201204860595268318275981247602804454904613061714565087447971435809332759314735241046463151243155374197172564407101985605245580122782910404234173799653243711251885594474571501223715613027726936826865139051805954325585716826683110173743971813538505033904450945269578763994761461121913783357263722915609708425841969843825265925648855294807231125609539023596141152356744350153398019666369817246391130619932997493987612258483638555841724222546322421986456914295894471451611988049833573716348998925527717392641911760900169202703809278828843507719237768730635046932990438358350385274164958668507655170396812243825985996904319923822030520830545158353048277289336354892527142637509269600424656415703991514181604819856877522765728210675759076815381991985573986972399293202055385313725605022307298261335144355546415292508997227702422369096755391969404686805899349669762587242424789459567912877527689829639953551657308410552231177070261625716279650054353108193701333452142950462314444648017312876396823996070850744899167573375194134395570533503857392227379210167223901596386688479601963759643077577931564164822399893829175302625324235022008374033389188880947860480425819958682097179191949775385178243834661606376418550848707092528648547407658468417648407496444353512093502266007195818212041210849016483296011757548802477328354823672645355937984376570914070308839374671154602087975421776408939829389974421638212911355275911672457934461168334144634237816745503320555203162904687311096472130377917963046562152266985829376744310124234541530764899566545795858553503394007271983015919560785349819942878767750280346946172771349707393000474111810561031778320239398272692840529115228363328030842763617790662448051770294184452047461921736955869420232128979721041726213955399796870787694413872777260637027170515783770668534224023066778088443183926214277188626222394430243231568621742440359471155784004831363133797064915122525387149485908849740322738970158173225582724874824137617055481641686458051740720062271832344996630751722412232048676511957914162232764514828152100178902911455031357718526175886171150191785038102250453107860729882651273283866429318225154955505371166794827634837720967120400939602910962414429425836868456579564563342556237691868651442180222842841244028077652659955346179233480386432260732313770556605722887174914181839434036071644116290927686631959103771235278552451368604094726574793621663238031239051210330492459782998198190817953469944781803979088123502670677170688009462485025845477690020299457390945288730415252163594796267742881661050467367473342489578195975399673497063479247533422769635912325556682363758885139618941503683065524538048951820627310916748865112553072769782557980264395920464242672979188921138700830629105053933612518699922235236946684636338155607035150470078702548709969137871624334022376639965676834177547031450718744883827159944005935499364605625608537363221392812866094659394779960270470323479440477517005013946355114814735346524952687588679149736172508764248322964489301056123794180998755616119657887751711279683216008629686846122206443859026931411183212506008136924293622890392240394108276778330612236631269904526616660837383731215655671729011754968905205808384879447223542464172804014172702228627153315914116576330679604630228601802336665386054242100045059170120427726461306914781501538067013113830781695577071998131072511381531557263089839344297728459636630913206162347024052619866668953492040903922240060136624506099250709357379098560863459863821261001372022106558306677537336852054847776025671588863407234239450646066873524886938538614727669009609007166832836491005032147435100333479092810086618548384839003074736395180520628724242510031163797038056372357872622103415663103156623494232379513509320402051154396980051278909130830852728930246477451571596360282294258783357707312808397523318527823136541309560179810456256470438388344275344788878210780316643601016425878205753825589986199599676554516647797853697374442841292558916537441528778531230682005315950453254854231192391221892047125702284220095449438677803836551476104739540953134786471185247295121282259396816106748733357333979715413827891336879319268694356630527229084440415253504161873588968551303185330152682554901301347690078372708819598499223325310983363006328789065022790574692640297478471529936130634111094368690647096395243155173880274686344570095683230707852818530801734905347764217934734146676614509577277895875144273595391232533760794712508918129793253912423536852212765741907416263862540318531800584840314962006923977272421441172981815802181671472654675382172440702843360470649497954235203899746335746410980109027057176484203891835658082191197447118527738591860584933532631875913765070642956906149486311830406146962559453545943533026296943455801069409690644662257374645266439694793348676037588268306932895551965020468942156956930748084756875457006818305282228966540712476607638742135946275279291109496960763928885642954421183506066780073929959938745362181266105179640061333298694117694261412317300278107195163129123130740248689397765660181975459281188141549889730401769736777119595256980706289588652396346130873171429112100218868006113069724926092248643896287081570461622607567040382035103321470916816561878064740699922669006350684606395889043523878330753817925311193151423746367538628772325608349505193480239421580176011986275067208060923836676245043127402098687702430407670540202957442196972225537254795570285827882748645841690440200343403142964821197329629123666767689785000362946174514560759108251248056606623757067895931905618362873214226427262385990557230716321612156316402669033514772301805908774826963649906071977803168660201340055742002980474527700172542628815371290160966465915461528079210784562524745789412507458717705252054126250672977660211903531980642595222438919755103755738817807871877032731572621606612789243016929622708705154907579230186936530264134319016366954662767999608931524635562427367778110026638887682441785501309439668449863724450868731778814393408883273514650046310895645409993957000312276152459351133555166206302593801451617693591573445818248426536025318347589669773963790925116140223044125456896440291467141138660239522514397132719090091946961358254455271623600727485015790015763382059615335563076886604359080759919385825724211845470629899365495955302099706754570220972188157556865297839147942558058609025249264858736053256311683448855006760316980722195211631430030208199844842047128790092483016714501530300500819579101651015635289777922933355766347554894834027446297179846241085893509645580859350700840039425287258332493407978155475929362991392225116871676397924754078979369089559878905008576345626950112996212749055504401994269200139230474107653801148666139057128833946409009986898803535596066559168483270733893882321730270146210526554433889745530128557836444217153128996008137672118888285573361209683665225722473921573909156368343007878135908681327457072292017656506432891718059903527416559138925204495479166024730163565158473478247628859456759467604271754932732580025545380177614709773041677552479960852149452172032899711709537718686818445340974439816897904623218247148934547842990276233326939581121171994517503463096002008874021749398967228372499245736855023108412643049718559458735417057637759742658285571469854177180685404758705998842280701853516513906956867590164114080190585038001536090249956469799738061185131066428628502412613678766551936869946128369467892807545858436376693343381980862198089141897863053763285935280345916418386572069542054577988935576229931056404524638323190291545310476990908825820822270690760114737223460945025745152282950401248015981520854679078125473257874146807053107975323529451077688397568377269370527298429145513979033050199340993579676700550918387962797158004204991441000967549270535775007902151908759628942298691943335601942873448379067342369698402928236709501323241454352608292904855194486834311388867158920613984368192441478775700831710438612340546380246794395112052435082565416449794894198399678330634520369007867069992499193952174906503407380898106808215640304487387089350803091438169488250480983269149262755310410280957377019052518826960046458390601107461680770555397689208546937679936006518975368295969472654565601513758311471387493227863692413487068199401740912545863072877732837775780831078024819125650084764431076451238469101274814523366221272131048696482714005647770252577474721165867913201125668041826271207683772297855577366675660734229517414065390537425120415066568161501844727716367256377499740118138692368337895627305913823984002444134644090505898071582585997201113613790577644633833655736270706372841703707971661013400236718338680734969106394363285293162139603222086704394554869299215165163905850739636967121731291973547044753842049240448439283804340120691085823949867871987105683555972224624854382247752129173358440287926083621095507174198016601623402418144525933961333502556303072716128862471629213899934807704543199183305587382728570814677133894402096088623458918075688985738148919853904338753498574705318423203968220893256013255202732419424777429409082536162536836495994845900412868020054706056215262167630862145509382981715658504354093653110246032907921335430649764460049621062556376847082096255462970171672348574546933676909685867582293624203509152900990047585049545103395705754571261294577435987200133955594888007274566226002746088644869139977753665409213715718808995927026439644717401302293661545156018819967096072970645317646576474730447906985693683202642397205140727497961342409090510686174368954587835215878774897541014067440615457220707038101205656963494806011039007199162694588112655800935218807611441992306633020739894221365615683842836075729493618909375763301738104427501409326585530088002948123351468425298406215959174922272822026461246862867422445126756978118539163859029068235615916416394788724194219138750062323385625640868892031590526080892232506030158373867111548357981285147965304237616981426005384199618324901926066751502659660109147818095088962600446239053372390913269838878288830738393530421037447590451741521684845094830120581100815832039641064091142470194435004385733221638734979803167191256734228335860118503013515450590142140155038361652149538131845253385967067937623693702110873290761041059171635249290788595908958727972142139117638802138325019301738974218700759427846386675804422588373751703566107141852187312690223502603163601661256593885460489451673182862306423013064555243309424519345143029103444462967365793099113791106693835952359799193299483013574339227663441251262607628696748006756143787265052723027998648832783983050980975032494223043267525101461465764097909378853601379680991424455989794218259511100917429311572935016227672257908155554869068668092189290382797398366041370617586908425514117608208125868081362599678594301656688325104894473503995827777692016546925577366757307502861778192024918165231598037499355587147556325758475848521817462269678857328760643460138272877103676806593636498489452268896955126262240861491453823983710818970452145597876258240334057098546574503397198704204622919992714826018456274635813424610210666458048049953677410207210854359421652831526307144290480042211168723056600254031525324463847842548469747082577928231036368596015102188327234470844915914406763441186539241297872041181691790768019729002784698871674657712000487677350929707394420180642703880065509300347993995275545268038905166013323195566734463801579503199846087033968672156035657505763918583527541071326457292482688999022332919371620120540303259332786845352805954770817305895257510753655025160291155354149083574061511017001939504464286264206500402557217426607075076134499181088156288889273037954796427373336968522132110737881159330373108491900325716288214061188137191097056896786011079635460612180459827073890274717542422604161900487728448818322061172135270139620261837451217411937112114265309461083756661104019091921914965584539011965375275522048095169973782478205013241612390526706818258142128583129234046810951291666827417618975474178909263001157130631970459087383311705938735209891027084938708975195902294512539856259003554267577368375785057751703248500189771461313277332030095404899460190729890178125612586075061872919205263136532866626600343326695300971000958948707593108460641176075956459819489638773158353041427888465913681306397724956363187957214632812559702702706095645577826871453921430308177598056030135282988661976766798293412277370140549820254141112557808956966550312476743235781259449766110437536198563712546189353903372979012456706771086536854516348338060960399374100583882140395474780448050858063104328727326706794599030918857908075538433255452442861796208279009156411221553851092744968591387334225710350991868471906433447165693249045182550786055307967306904395215455754109305938683230063093650630321944724540231134090394572956568846076540151800287283096095072644819049842998137505979584616096790046631742746552893688479528175149200130394077360389926531301719745129489658323712600418079870378349643127562130954772202296157163407467329047111031352690027431900110446794373959114009514418804445749996171768840798530575038720234390217650473445370902744279242449126978049577422866651237240607236238456909141783622579381534952905457747330009636593849507441692022491285763027332591410539031987604180945879877182393162593044171425234373859595171483644258819591309410839194821667439101428958873459189855747580351301194221651949688552399767236713868035318640794189846177984569605480702304721185601352749058793858840212109858180476895774334263407355586995406854843299137389938331840649451304112148877266516351999134335942179549994589666241884633228311423494955997060855133814358182605522071216173204833613429695881131696659865495671259666299441568460667558206234949602185751063123736271267134244142979353509213139885564055053868861550363089821299771535974563856594190306566107841001698070139992908139617635802038888549489784162881963706384308091219485463362635282559377539254152072362015108495263706325847986364805847404616869715927037007384953494252172709741756956947356028301236825674894478406583561145188858771012851710948217807407778639615626318837161845610480056016479727403019699961411793059099795076124760157254716072899405052309087060456103261786195854785111841872575573786274731051437135910184921900726779668374644637839479164535262010031778947537374115855322469850690060776887100042787279240604189731262005849496120710206624613564525807730080866145331884731524941942515898772755491372304400670525238460757695809108454520352882840080550139960095485232799993446212076357160527747286762278015905629698848145641777106689390611577159222245819092420043920273467706993902513114462369794069486828720027754779183564786928942913540668681682583485172498330581489228642696276717129194559716187313046313096608731738969103806267353443656336807821885328952022280454301563680869446038719249515028462642239651949390968084911761223844566976019455285805388655856761981354144102088387524961061319443878296450286481481933895533797936520680780413513669679415933771855906691734652042307784734872683410234056516346681946885641223228533485889277175634877091563252296927336551957164680363676015839956066991029089157558885544976189959235517052425963868626341341805298846136394649435203405201638579201489607712298199186974432722128104561371486525884914022247216887927119093053931438081182523188985853863560273424071708312419218260056928511580127934200221712098445768295357731202008678315187269419026283592100283439906673233450460744893601489345062036563968259303717304412585285491884868505749373928290884537503518650312819306619379036166311763663886175286128028211299111109377706109995722964359592447963105699454048101310082493468952265618271769575066307151182877709371946394396074567812164454760275157054547295475342993911915450168615774064407384006271946545736248637368729494992890490773399008631961242838866533348462621986924543400624828073213060397742124819175622451404556970273559607735375489397547613982279639123613798898360997284955628252787776276234156199789572229017010515408169608314643024454627491976825880802864313927102577051619167891145429409318875444566087376359073559263552908901645582168199313996758960594456289121262602648882782943280175169912855854055256401765301488817825860021547910677407104151020790280365079874049778662658398778981131835881367733760266353945360584109796031587220510116053440146133237324790699889426088127642403424995374962045577717445276795172126937645296936417399140141094886135929334039676887544125117890236527404403190426544949058666368792985998028469742558363145870566933479277875835815572022393167924686636367463534969227082562148639089005516359070931136331523827810866256687727248403738403128189783225770945183498474289042954819910472177180153380484735945968507151417449344264831212665000117640856479034284496793486244736965431427670410256048745922947636247880834661075108023613574769772061630074461040927263200003598044902085968548807286915287701019907008875235312361029368641575027799500134759963915653888461163241869466637026552791318317374486468516727970351979384431162649431011793446193043484551939769404932259717837245464667749966288016382811754287162394328789975348523490597327818207487193164115061813833923770875041992033266970294771354942040351632151130124695911811047337250338658813187931683027205624000443077007313588247608848361384396412505075562969678124171948626823776740236162292205517468122639737439651046691278963244135508275570958651487812641917055428585352791133371946565199678127658315553195374198882833588145402175028838855755948919950796886612013208804641185373389863486205579410667656272512059257637854706570797011071049960871770461459889505260643356846945340813598419745406052544084470861951670023323053544480512470093110946729310201097040264700689496270425136589029907803722322534592031891660578699562928542958596348215132966220501288436280957601364072885296366937838403783338354344312823645996886048029451619586685789846871489079231666928691073261358046581400989021791303807733913443914780903209904722882685505725593813383720395550229209080046339347988633443877961132205690694801253602618368696255318577362583419326767555134646845008179943777942457616886326359759372084297841516835450259087416452215988621071950584328946184959505860546318462630433701611636218065348015929645925873685527981749202534851960108868543497469273867842916246255930081081791419288289853840538050678426060784944005758235207149611754796400208807020142459195786832194378141595582178840730394834525496937027225494550154860108142775872302539795973377977101465637500498254421844560586254589005472977620545238408793077872217285269744888433154427506013815262888031945590138644693286214075172450843471414420134383265466788227937852990638570627776048053321619863276957053753485648853539456847607280465091034586619805377384681606561910167903347999852992144140166207932986906879772581613912373340842359255591810785077861112880440864190158693068799714059371465495885427837934854503278328264770178031902730057652353856484786508244383088969813836559917120227207160957611591279478859245607796973066464071638641345543862547999557573616637865698618085259321088208500463741980995692869373258778780498224467456937144613126588411551644918947454812763642556974766324749349538864655258468708620679032608240315111384046091282708259879116254312652743407726126304007417725000681499480124312527202189715831836478383568622942881316046588412586597469135217455469025005129340490961164729718038956289645848138972828699002520373607668858987907278616795253385044133484637374498707375009049806933580845699253401902932754837820392363182101353494796810456813424014310039677154528707199297277581342667599720753288822709237908440619429125956533912767904146271959618812583178007222018536889793095619018969619693226236411743940921010316815482037595038318320915218237813067979237272651837947793043254351065705328419764194808202316603340628861432977483421692557172476856120782830764308140038615195705162308929974355340372792628426198964175302937723029885135680670199427145494274319956399095484763499969712020949003946636231183329333554254084050605398691337548336424996367197243587156228707769931752229498983028470573618324288849794279561357001619796195694511001770952580098650504786627024691862441005835812705528619210971488795838712477476239215584926989724504015297967448504426858087133205347446993334258500369376017413891433244554326106505463088916809855224327844611021627576528621345551811819283439772162226821080777123188363266111627054759216815453446480580340427312869621615358393888565741976551808597175945726193979876128738076963376210717530626905070141905938034173629955711107387169248366470877102253052857521037852637739587550322725929363587247953007806961385851377076466649605558247640667230619592311769597804269362238129279818605161216288718609598586710941426686800040536149922824628495247244277483675653871514410431093945916596275979963017215341977649314077651421095493286606618299462890515512597322106889592950775760648750287362183557089348536812641059698971728362142585196698655157154926429108782193318699347628135701519020523377441729342827376608447608830405566610070678351115919765040207686526144554149988503017253937589496997726925863192399623291054374029273046284469487213514845867830262637511276515533302593122625638403231768093919677798776026871656644331456248597894837694876681232902499056199105677959599885959806176412645141717919787002110046495825947126089422235062827511849927475503223778357784725103600096425340295075078838712219892176495039492354007847900896009546240228888727925851098034355544423628582107886541320278700056832402736704613032680865638126282562941761408211419783450702666940282955515394875114420010667056429762031727678501256283352685789301841423502912217958918376710655874637164050718189008177427593553287417492971321797422001318142921299164678455380780048265515415167941477770412963882227986196585774090565931862680949723337334664416355406380066604313477413538938158126894107062162519674545389704528459555189926732466509353117179891976703786728788361104906257773643729553037307228103987771809559665169423630019476718719933209159338098645593896654914506303535976356798229017239192989970364394595458809990577178892430695793060134070824229855107341118320111385727864936475230813296462155544346110256407887103961411717046040437859293292564401518532575589343642310428973770585613008753718764980893546208552854513456967455492745559279571770379589368147634367224467664218999738311699583707356349104320239484802018827524197345683932939237872722793484152067780392843458632403651557913505598741118046481867316163563541778205270546667678547494528599321401600625939512376698891330308032108292103898572843627137237344624162716221748617054453714876932229950632420902936585192875588603475658454170667209061573448208915915443629719991985045127336187763511309469699062933962812553620570596380142341527991773722649865454605653121252336565184784514372383723945499863269622170208101039721743483070633640441293916610995365692418115887661551088373836454379642332220484834985446300658554859995264657112541327997053495986954663682673429891681820454260332457233180572915765487710391117659218855204042188349420344073791476757995326875931547687552634537528872988386548498540055425327485526130962154974683369834868483793240241383352912897003965883588522419095463917857689074968200704123511386495101547352873413041817142486675095090013706212247301162415602419125238018366390919184395174690987503115842697836064186621942743815800524169489004334417504806334449944283475898471605720674934676579101887282536160725900987199037726249086299684419138039200773380058334358216300051480281621911915297086746281733416921956924103374902641823503471577010055281216315073018162129037722919723502575710451220620899552463016269357593268449715427220616425710995108143115896533754105568390108285198084626742742830757384238829163822822925921880285137765941061271727559446111137486210103608950470949847182881925234960112788656375017463685239590350048931075798378028423516658263958261447219266657936678181937448052905017667369110847616389971333028010512207651436740101284059586340408899002953694487327576901561024881692236919407883893292213157201982471379173375029278936524694279715377044504329351924677522134741998052356557975147113489776407238040205753537560566919918560846895749693215153419376815076596862015940531890564697737142863224907834613698096757217206446179108445236229424290877967349720372451464434283133571539730284875456443379091857066954295634436597411518534504192477205749330661274596275892949987573011761909865604216846095491285770484597590007206551786979383377424283875343697631368702078174823655833240857211136084940802347819189613473898231880478601884773103905811691441043553183284219543705124143974981173131609521508056538193502833657305540593598993581291009811043327194960136472420655445492196820386708789269852642449517092085681798738815337998928435855404411694833462098866112962633355494281677257200974061278238297547822484484187953005407447429540828760686904584840496627576210737678329281434003769879990601968963860161262197375966953882251572550284596469723502073673077425742005042221464361450955356214709517522539273399877915209425549591437340142647526497402899609345636277282496000105541139466867900544101746438762368151578727639672459327486268879319511616455269212784497929984601731234109015107362633645642386415950573708959955759615173233090892352665934043569631247210947377269723818025558622462813080504093525232259866445674689713869512247263638921134007998293790236001920609160869168792340714432614809679859279382806132598095513965956396615975205845042833404702005884272393119896791944420566078135704001419534303706003608678692411642147701429654565500237106171837478545748381767662893178768430207936122377547192677914576192338805328015652077917774609754415234823767324584688079413701738611678154968679721530141444371831629996875238219859235069497567098804380716973836170631828320246437575767495967214533470319315946913451957214278691063195874627679939456415834259355824607186350815127726321257015296973229184455802886255816699379380956931197253654149468876603592064238434375957098888825427620619426788565144410051794210453985193858842539479189357545567688713553283410248260578346577889777496592445742277051614979244596753558199527659934386004534813074841157278878323401182504728584428035901462562261614391579592743287836547349513123426778240037717634587562054984395297008574765650995101368415771507385560839137934201019696469451590166309287674060515483134085369869789587882261391034648246901099706735778184604851438878473300648208943895944096283561552747328411266852521666699325074204590062413590618616338065885309290033291724254354819398467286678058412896101743198691857474734523044311102637289320440549748512398174890326257395518875304757519431723624618094741750222319943193668564821698705509031454650720162820253372093253667584525972026464485775511106805430629141112329737846024677961242175477582619178181124073406596935587893555655713027876747296972520339000712865279384995299816964373908275451921036475624052215633033529490371143996244524683017575858148950771783743474284364601843321138058080208423062152109503527451490884114157864422721621309780022872324637970097692211002602852332219368961878765236706756606323315133769430234109027307150514742944961880257177013129714853548783839863448088161039805338924965448396939051776803910520517108010889069738667986135805066902015282028636225576602850741637653524347995154192423513897945090751811231591917157432193502599410676315351222733076088673367111383113604933491348646671117295013518148785983810270374226744215247273953118027101187202826677909729337242789229446246065697639287578640919487808395954546813898667599570584470303496839940562210531173011122504805279164709148357681541847627126195951640811353937355663051293033416313137090122335660830782318730162821464057675200646490331869757411050427257969169332091153964666501426753085224075105803281656887860268967291607326638388112049023274801893932452233316771294042273610003251388816986368961595601203891910558607502720291758772431468057438283790881940471773601498786373100903626602399850179285495879576919680370621276056145770896987305040637212210285173569603056050962217632203800055855369393063424459409892049722931101391586969522623999968537228855628936150619189797194550048892275601655592242692620622761629349232022984067323007471308000293656606239608905105500857358573707512045279362757783507470314683256375609842717154306110489428398927816986548186615441919988951216643671863022079115200804883278047385516736282624739966507585701262295574643472795729039948652322253735815920216456229950345312084217432628482259777536148115188357690412131319395326212810106853196653342852292521275722386129229472118983569392252230795691903784706721898611215197833150553024962756346029438272157323010883189761709621956896471422400552633918877029988696449271916857366764628601305073155745366789262164404126956741239354945763757129982934169638171548059524701930220528525255022809608383024026937114182877909238919374492573311328482212692084676440315394923368377610651762206837120166811560474120930794696756192985225264737376113978883899565714032824941107882586965166290383192520760253542987235815697495122336866599223357527627539668732429430091878679912357815747762600432156334890775030956305394162898431827780192099431977516929957593844754825295422009352950716870759291003544943320311193260941567131861418530660639087015955622551766225328530029690617428774125818805683046230785178767939215693740336467367636908488850343118246961959733809205340832818982472068271209802088509321644486605789133536863230567781139608964405677356620747768540601588187584469282117308747083600511519399435052309089288188586932427994450678397966674058010976033740083478917931738865853211164606862904566458040910284917907801258060606197841651320470429200959549614208125988578436934110763759441054861078744265095807611448796701019704498069368832633291162181007431404070447761145088053408020342021019496762678494093203035876769266503032700414324941480890174610194338778221377490220989591256106415910085579958119836604290395358095544150201826229039096140891222494353186279626992042668001373288229194654251288632342684346610287035566944050849194765325046947472584239153744276648230628029745390210685186788619439835709084891309795221028008202495142874452487063358875678931369291578824575341436766635363021706872204005682631613101869255353295927975840022221154576184955709441050249380570897140701534553003161591414357756895325364857626455233435896126983769076068573891449142770928184527246159579339998238986423070160361013237007439834367710045841484728496981300960585524553539721755040655051455606012635636976959376691469576486566115742251151465211143700287790312376207106898483437033209204483657657233678313779439127054791413218559318486887080631258353485894806592699115321004556151101875199547851148196959207944564465544627004892187275657070346506318783643244267461723054532953287495821181485220500371674500073662467916390093938576256076839421501668014875805212821280124373691823408381755668661007334912438249819213874919181511958516581129820590293737781958354125635104131698861952412694897183748881241637738132700296946772128486836430707497977167888169358412990619522399727308456644735496018132770922936270844163663420233959229106055339713820979938829476096897994470973527061444112526537581597639480941673891138211604243249439337525016788193063674744860405391246600729815668399122656274563716634817083820285853187545687580874799783195332954135407784848442758854284065112784772118816626806605917759166516277353980705260037553318977148345876758496023648852279815337028369363987368439186443091593195909846253509346455748675558416164049480212734411738590806583368172185100243349302456888749293682901289507123353023845417175452989675531269939170305210701957334428163719348171092069074603220638306730785027645672753452404894955438834515873903772806295263622846044758438571377410612878872813261358871093066078923342048229458175774840932880584839258653094375917621087563394883412528733870115136437391114020035595912555215275597999040049438533127206435879864513418198614161815542996385106609492498302392649209295594739687760797592184221343654070092263106722457595025729892940755237933874609507904053153995677716384079641617297363652823571444165054062242981264218679021896022427225828652167753962660426267875209205126444626668583450576126747088803879601747535921408959121472346683925144404954874140680065218282425129671517816732523268717805261560046178172115414596244309342308072403083012418121915713987935954298453808304398041546104050194080279852891807722329885260977194881811768161122434866688400282226061418001334625176521923966042504526421937911425797429361374284017520414959074905869804534421376825811737677108938654332418947392037718334781050314549509171365883564105352328135774736664997745381919968289160979160509892750262446138223924757239951973984109835783738069638937700613335207582851072334703761989108740204442392573270809844409675519992418071629857306464621095133236910396820857196090291985937255654872635967768847615633470057128966452806571318560371274313580794666242064124377613525315951203090949123936102396523779024824586021853999606909303167494011708907495920559236691206041906477938980649797219031136286902665059400546512449398071507551751967427223685075014568018778708160442138430237930072959407366277818918401603912827049475209662083804923010530083860994911548620804491365495704893071510389912912954025996664887496490397761004992254715219169343310972057557688005228313528197034810517643468508623459312977526906798604795047879054442389921527141558128139696095450903930544604277602546896157992403047019369053578574525015368046471823102452179849979895045337532637006494720870625171951390759538059670420104161618885170021891950458805101665307943489361108798951642607187151012577114252265121979702345848675261988845904948553815105630366737996725339881602947640545804275535295269594593225807946972995629488409121429795817242571401937419007075228259512046976615156883787620494053032440995213499462948843204423133418170251339084965044824356007716506489297270272226180889460339401525781666704803336721488398496028003990393162781528326972228068086939611392138898303713230707022356536374469670909665879385210753902983053305561879123729733529815091870499205892460026322401358296396968644725672518537391531011395362161208031012248814281929715249634666871356135706865120256091503360507188739818044909713205592609178982683472967470176115680615714610273073734211661473121846602813197520808704896494148417535685381474890961171032171676899769496618599940411702248747232483252418212098236618138291487074243362240251708358654450563169080832276890060455575832720274196056687772436311304866641143552344668632203108370097433099583714836916352347510151065197078834526258550994381091529793906976285335270510134710238999807811131460414383690847841804255265512613748501385016605399474287214458920490112138682595770074225121774749755669632833218799340899838708145331568340254113853032324112212444917690502140753577694144483748361752785801715761540263619406604499172757676033104885730577939953841667487998827346542853487678292189808745152829275509902310178220144288058509165237379332695001986582938899781316695308155999192814006834835030228704210267551457391912975225433093886714250386897278979550877280913127885564757291284983992164349305474475687080307773801270240859188023131783368665865909542742365035109422947283640672054252807830773109708025421106129422797102052118000019179556498644588794935329142214353476045717964523982325761662686885095721022218927592280206657834702484735812414972857324746872528838849735097119112573085251328391425914641016956702429089989573723970734609316750439149733948046596527185572330307459552294194514850501659351667867988193589709952911516897278469718977837974962149933304636121245439347240109265547711356769556481535567092005545807238485022004962542231145601166271497522856046714103354517707175125600345855714694984494880734909338826761748168564918727395621553133543492105383338846720317286272294124976573730592904227107442375254249172109610068642054875384824573598489530740939637915029976869449783892890174241646316322778844087380559034156632168154146369309904386104593192291801742865369516709015195179795559103225826977787176587375991075855432438938804135918192846988539037029750695113346630719131336943611852597297048791541104961069186396384374291666620058542034573387256306012801222221774020906645853081723138481797445167909769427151995644942654654445618694317532960588513820648883190326623905700813998550639773370770000311112480358840319097066758101645371887268972108876128977237338351285999380480712063104878973554901841992724408107865939655726458941725773000956944223797802925297404085370710219551574186642296521526515288214830744942119724648168561939020655907434774723771416879392477275759015211641814750196098268479935504193876081724858192020517909296343638731347304182582796816947824207236037632057479236120317337856491968817682028706586296410154601447299567737953583784998691108370256210399036838239179961707679223504462362249151404174728064244033531879559633216993286580212810539385111322866653612446216596484361677810919534061412385024938697732898021239195160669338897504204017621760241036834245640438686624935882253195164565869701965916671376523449908829650298359968309326724178900327974845890435542924567539177906339586663284318866900943426460345595347783286048487215409711774222491418145929089611965151774856814926103837943532757146041545848314609089226471626462373325193015365997688310128215758628398736156942307760869851196286272645549201185024810056556509801097167573959388649499355945115615993890551356200025674575563526482698271216495639954357753575071674254335358497199996759388502472622213178629496002274702404893844814582599857627748944498486671125412259836596366115062709257544875145791339794204532670458827823056800695496279814455644981652185332790842285213040200674200871204165635498475760334704873597099380452871482380666592461349760491635026787517365601535709562707285576999619122315530902907215570468299204297719587594737632134504045637684039180020749622389923692673442682217871244503164908654335612350872573575092811195895765187848331332271602231673757128376596494563038395866817657595066823167731944482432667349916322932761652738091446467605096865502175282710800640814021407362667307460830147969790001257632509397776625372770480753107094101037799062280492206532798391244272621148540223366115568895768254203068845543870327244996524476961865576985642904573677041342902005786492752428218250814257412364218785303969451734437553616567352109817293339502785210984531949183857766170028457889061214294905004448736079871869528358994411803121900331099461002727715689451649120952205954707131116089706919518885637895381728370543112203827653518334035393831916322497737868722019943582778303775939398736707925589600590146641953512720187452265370259914378424568082784957760928935144550637317648472886067662624743005540784211609220677960717061275870404984518560064724776453109050893610940785940613842631328767648595639167988930968593960395458773910045034049414368422095578295386105761138185445987030822485427990634322231184521486393468719807444780903363933918418568227178933426142432013282551590477216852674125715706070119817378497039017787231910932629768752462785639681531127828996237498274961262113685660317618432432111176813904554249864120733742901444821428390741214240410777378957792964403482427536157061999549649537759354327525279367866433432573157021947601160589948628010187633730086052011679974415178257918758620527239294957835742609760734861451667270586849244367232515202419642141693880753315514291798187296982594774371435427901487996739167131135173589407577456643321326484297061984128658960553264909179481608982364739232627219866685516941894931516762841532992511993693791627172486923937465109819889541027861951941788568920589618526937793544800224537562708956619540107937508923777720366188901403968058243158172830926029106671436672741413622974166062373151417274478532132442745690229100595597946802769303814482353563856416414603330158793235009309441049778896858701276874590421023165188908068364580051871078583451275555873257951279165591692859249675015299543319684002513652703072304696632718776582815627584662461966385313262499243771795662451991906299712014865422305266243922081847921281983734141247604976835320456893612208549545382675690523067629507173675441096470387958936192110571278759563488340533413888133905571827296924767722863042156694173001272417165422664445783430269438380857618574719837156594012648138166853374538502335065546852582894329130524536852417764265809720062615494012834343202443125654332833246538170651608643470202502098089122477364952801123697188994601279356518074873782583272358836545463152917660828080827347826333443698698269951462074077264054650642719518990649208344433338664019742956222946962518024890881177208241765637122229849978396557668541625645947737417246146373278989667123675168416160722313036339161190895266824826788978674652713607988474360788525872073480961752942318800706921590893544921255196735980612972853925700216556872985778066909124355680858805724407953904905410712400751582548456621568393397837465012170862126971240586704973296575213627971761930831141493080966955211069439163085786511950379456974423878588875754339450040742241020187724758702862999149495982043679050825348519248186662743960980165933140071698837709664983883081323710978568307085971335035901836216862853236043630467942496862181523984794277696904910249818491539002508587628365943268124108493115531951082128533016041562866449782832806810942729269271204146406545570335653758745755043513920568674769328909241263596496726297719360974961038069480008175128298127017100700538860863632462194932627763539303885261498837334594828230277583136974534569400850440821137909310278102686223724841065993373678777663400963025188627138666947310359065589843391676770152169355147572220906090306507726127014491577195277535706685148748370027557338005463727204853226670220231773332404716188798414113406698422686956564985156894103904398216409822425457184978829305452086914670743112167864585058572407070885526585794922066428293254788622130131517068456371319602019954945957384464358213667070692817678021410180437667328639938931753693838411588847835050089261298989071250867369799215331596237881281889120155318155312079341948277952538502742962504548262938987174514978274314512069751673495073297310588682144206281138811691890364574161621195825017413826011089742007887764144376528829371697395998867469009630886081046602981370172005245382407964951028205076012477957480229949174874017584733471186395071208319871436785283556817382905028764640601518423107336198562939581674627346726421324378626552470309134110448037198211228832697849148213137132995769021439541075814913184254931848259082632073214694790168185435319697573412538993205418847628462904160042236559699087196520926779427370415257932302373201637983492366463995755428305673159212592995615035203136872205935479951364537446861917444647822875722977742400375047357310608308934784285405334340139493126723108502325324314059181146951318571469316239441271741117285793120867171263032944568698099157728535035732103912766529300634490388588405326871182955620382640469714024047086695163588943499701801871121731340300839934196508136924417612500927596644030452551283573246942863952015962204732791345644729156553437030012366431233582181290302880438958185866248336025907613812897325723618620863939704203846128751316702046558969106807749264899082482192346077641992042761918665686154613641713326571603055817667792383961850107233739179978041077983721000989958352460766591004231765782371584222649986003149050265812468589884131883565599646544514241715361766381574664561764116414631124120205341728743688794139554982824718820622479440790245496279226616412487384427043755103166632472763787716416021559966880991549872291265826725247835182549033604626115866981609282031822365834547982462904917239738182582606742851220366444296616044396093388347781885183518374547978408224500685378439975286980390593019162257764829839939237852916627907560333179372500511727459005535146704398928296180226855987084573075931642491147387910687632505883812693683482895151063732284369388084004806187493102283395283111520997518279171986284492586276757863915407899338306368551895019550211475306008069615451549226861697041221051798920340509695482277222642998451154463011523581138118046121196749522704469247736750286174325545962385346644326231199387330600871652995122868761542907047148833319560511611498277639718424879983831012400968559074593496590315290860113552579567027002188157653097686576600845146307275249718818925254784174547213993620454688657879116609473881902404591294899529723443449837562506252137039339251773400541667693853775353931484319328569810978053513250599280518463126860458426952723292165982537353033776933607674965861817093623898095900056961062633515058525430457723811986953023571624867746881434906163014910210081704898565603061240071100329234103523035313858167485348916470904098124053605325484208996974034482549674451586072101325788708883679569784036654702975495613125488732529397636035074069928514841882627335726345621097432464511120726978507406730297441880608853804287810931384309790797226557282762120187164876562856231024570600548499647821144420377216877362821451871300000997152998030227744245697879340403902734462916463289524990986205870719382515760973792166975730781499505274841949966475725762802621650622114568410430844496282081568321704922149242034001846212600652009366163505399688222280524539667906547998697463626299257095482750391585339405449806040343555122858508695474267784626601049078023734412069647565028879517153627955815511553029646530831108562744568505568349431184894827126772419819750166356112232556993144428339589482761087074367547756633251805487412936493625257414719492818051113943073540512574420370715556802101579718630196993721926064866800860678152995443666764647007346675187358292869215512162987048859312094150010238251669211621917351931960532466547617338880348290297345106791168266871946271225479123416697974889785776443352229703861394028647338555320862779810518771506795836609488299888053026379300667198089664298294549872439195469876096330743446814052009879555349237243380499422844735653265398754461954857152860751641384567199757600483357776000810092061725825088349917188813995650460244580338935235684382358023705046204773300395682389249763430802860888506944265059061380955665870660501167476113133600612127964079991347498733725417755654489948395858996717001727766545771250377502937945015078238533103746394031051031653904536236119585305271273486142209986927709800629886603568785445528014779212048264763458972704236568956030563745009563245935957066210144118990751032365228033780165185045044815725011502403386860857609826808711484619951035108854352517530411303049784955458075791228286310079532255710637859029146397810943953904786530564378790609977987388001456109098410872514765969326347547238683444936209250691046677763188936961454944176439880991212886157852132589281104702712648819641498327671965642169219184915652540529374437446334635135672782261957178446403541839577060193370605741919462945971140616494833898490621341515617691321153020960409014068220852410454748013164087802602978449358203171967125958575934049525324605770237168796188560434918612883218242898910057945863735846905156766640331057411930971514191187466654589791418164733080403740321437555739129031524870748837272395958720541195440772404889747402224678818681125758024388001337145435102823306196360743027879742654236893556770703356399267653443581344968592110428250540182133988318221686948600606741307980996952988255657003677392368212072060279814519515755235095512456556287264761263962701817284618732125314314549125012990068083483636285351234110696714591212374328765610081780296107866134894634403617210946752957822550652654660879836303084814110218390390416033747407532300566079103926237038263271180087043831437411384258922253724359097322763085078384035056466748143065799427323803559107304647587426722925169297027966788798669574127443146409913120217856316504988368885381578771649113309809168629672323003330539251856786966250416170301300940114907903570352029678808374949263149693805064453525432123323352770070317211192311576935580403999760714637969710938079636925122837839794649865544670137096384028295091374493140866094707797940838174629572415850504803877437315383855409796823149812316870582934306486563486553767892428915603717081239417767554203942879151725038658124869714395897546636147148393291238459416084192395612305653911807242700015186761686466257953185219946966139848259141280274989941758734353605604802366704874549397362362430286205473994499141703592110130519713037823441577576685787040332779824607701448652051472460422303039830455295012666824830044030054076909311779628918823026915667194342051492849448434879692659811760208522957380072633910812355255414510478535162310678265950004683161287331929907703848138675566575829051610341631243003197301879259282057901604481278280011616247582522410345232274339947558975627608263117356959669652793770916616298839532312233282793638693330997937809360464466593548540696817968421517204838021551956220206564229745338582008038080165050898172915277395323052699145659738921298555552430837906166183339518208405915128683051636303256518039972572329083988364484667093571885382427534979370495457799496924627330344361123995871201823351711578725140270891935770386160232319227471800898260720775314481568698232147433028824355787346833748140209989916766897092506751813521900145311367040891389852772920223485885733166462788758140760264581865502509093156137650911396271954590608836006589404656952398077996022260960853974329942950788946868603982819501527319794656977593608710786305406397171050082189867587900440071521197127604138996571180799401244565039384580379783649136967520673533320237730244286406786331680315603361546765380062179367618263843067874778029951361144976629791684708779753896608217533648773531674436760175447681596288733395768289552937620955341665031628316306107989715512979576096564676429773733148438558735249430609130428814923226422111441302577602316998464857568224772919978716034802275773343362911169743962330298712987944248516165104929886072234006954771585099514783015586301349751443123065709850750972072425008702718703143520195446225868131568086496248710736751845167763506296712737387008759250824975650681559926493654978217457753543186283548124282507466514055440603616940046201305101504421223412357870148505958801132156504056378131115077504990658122817046457197913479448154950110900823053486412930219250935028297594285730031721910569144054970216556424179253970965443128406377860717381283460581594685149657064159844920252443935548558127652668129403856063822579434290265959563671681339710154466118949966980006752051156007993150309338711317764012055336481736885402842392962161769127259340318217714292270336517425246669454968619093004785182271417212351956940618425383780861444952440391250016380700881276100542407858300606901999219042491719303175277991883460201984501485670829934435036722676011296833188541395356203200380142070294962732330088534690816902331496674040851270808160021003047454604640217909729986740873249423344726935723131712261711487464911039002960884139929187564178061261820027187378462233588103990494445179951117159017614223530979179132823593414526008473083762928933713886013871607082673107052288610375587767000066388515660177328049915418677013495437514055398966052037430809860568602587617729003320152230568849618725696296901579907366653223828587701540818842443676184410789856666752185097843341912407404674490761098072737311855980244716200971724743459391834570986243722635540124924336722518219001342653444261416325190641001659403737200198735104698576897257633000245112324016300256066130079275455144558529992365801844627952799304469151101773840877586157422150365513616140529783481939721918871293999411123415739574630376249864121554194583003339257689770652887926700074971556566429581423024490226551938973071538465133715180108388608827059713669831464994270504695605582308046531015803579401155941428540107264560005599607434652469064599115027216244824180400145704174694693534200872156594809720924018943824531977305912065443766568402219323547077888002670410131994130132191552868470204471455780437473268831978571478498144330067877642565760312169263183317348304997456103893386836819910664655088288438890331172074154503009794443050840487842861119486098302674326869543324757760270663618248220795425805648342430485799758599582928718847909668038510690801641560189183905487367358549418328618065989042149078941334880032312423963882941985116521146314027496626657695381367581908475641818889192815474198467424255082556322941937191342502477956897002002305849071011720169543917128143421345957617291268854845241457783134450795920379749276810806346573175156326320628437629201034807605485510576430126145114917949947083353731285432910690678930534175479138820777371265699051621886933177804130828720565806017296957648387932439132686938893213851079444196037506360780267537022256803644524924813684803057353932692293402816051694368239787713577524010778004909311642402444864631011774637163421053183933809532304584954122086005496475563120812341877221768292834221629089212483515642574828285445983561448835313728071089170905833891786179069952172239535550273753195125317371073257241604047381242917659867247224540052812016728059758416643999753878395748111358883931390579337946620340933589170090312471403633575805644981119457317262063393672606793728818891225871270693143089151900154030101538951312270684559905923843537579235005511165301421447053396781812715221231496296274551197261354715933064890394207600816371155115349493298513078298539518199374204604254273368032671965842755029469251781368583923485851887863675698742179615980641143428107390190008172989521623229005432210139672128225839882421796689601474712595029575906361952223053563972859852829444661129072314092792962447105001198354261461145743876591774983776255120503589220856617015904969724337489982469964162392499461515283919401535174192596799301625343379960388796028711017989712911240267320669049619546424653477775151454658552142350973746399374506247535773530867862993337936667620072520685230465613534934473318689862708147437238487148430801943053442805321501512536726435595772760963691335838329775198349258163682165484034978953843966973856827004559490003108556344935211211888435789678941186759915726220777578525663320709214973647379484037505907910506099815409452043025716945841594140505373392359412721420348157241794982408975272158609601045677796667683948231681486729265206420494446777915671257157706343820661400982285751975258132287195824123097407830013121749373010387354850270240785738826593297595942970879287251078442547682772515725301190589600720048178240603843470667114816696855106202612088751728281947820637159659646095670592185297752690669909150274053413851037770855921021481771266370550487933605247968585466443932617759822287556520006309618845871838744367728033628966515229998166451166210585022913902965162862719519883117135918534151863124267258726018713049681704977502205690854946321346586038751517527870598649925465167684492192958589497598810657810963162839139998216159592745202394397480294524772476613578453360243674064460198305633977595864493770882452684294617985673147922331086935039743709801509036044036545997142421107027150404418671556485774004323732965682935277083403340647539234777969528690931501854862398499235157863319135824204566465255155034626824340341674492789646121204989784800708144696822452054264660934154323585969701577418475011155202412726807827115956085265059803399803545212046337483831412691624647985191453958262084109135514108021325900511852638899008111477376215495906554156670177410068814421968467822200531563113805951680711398432645678537939559113547807324829392580899432948351959820142877460545694946827177479212709195815462808715173031795522768242313800772511409506198048094598935593551816592883349961560663677637840431352063324792573381625971728355017506269073021138720506410713144597281849111546391885992927731697979802140583386856014122055462006238306847419130849226410244018392406860425911494475470106244462052862701057981958915116134506243428071754719213653232649166830686246035499025212607457986342664875726180302004344327518927867643672043068633893347288715900170976859863187616009843600194308960321321782478313843388251937541609154576056766919959654007332203432581760947228418166781939942793939939335206019039168208612775656484047020790210003125540961797574551380775352426033123310781375778152499174232596071498209480341019348354686446355186588469339844823813171416496792247692704292442040337676831455442661817838371119852805738967611830600344767626900096959162288844226093336287185419382861946129576295160487756934781823550190172678171981370042120731350215802929466894019949597439544215077084262225649482581307332870512402811486514653236910647302205022411518264027485632043510887849709416916367149479335331810957393346467723527317554715409749872427275585633535378592565474703258877298922140909748173513890964881167925379517987427436726364992093483062980004393663356265266902337118156749237392411308197904276928370605718636978583192601492179432747065767366379376668428774777035022505468663999733307366039273341096383678848406420722793673032946484893559338602780171272736870644933732694915525602444475919314408622452252442177877325354356576819951412897664967526210585231038575025943815856937794941460863983231627417592075553254353581853910797941857605489079654648490580441885884868256605807331421728832296445689502297266714687329423739356288313198892332982132013998395382769346638114051909244601118483255781830492592181073822412452144430814368019803339018291141939723028229793078532340016306726827673304481977805072151842193044315384840507946760279498695390421980627989053485957910449493530366419580780691628832721000606795864523499288534506156313764824346140174371127104892083550181734815003389232238667541450522522144685085236201518365003029501331145439450270105992581532466228690052198894603547819379329508077863476761068424128040688175230269800728603832197271068987584705692329733200924330812375234111723566368842283162313109254859945864728597834728913770151331908253727930961682533081941953305041007604427526330777692682003375827762052425716304502657312732382219744348033024136229772622703916551613602760193505805287869129332069378022393340128035512686138114100505523332624867370081953753627834494887840693407854793372560119821406983728548444456124586702965271097806321587253345270354289681405274950953909912812092336734418717049274007223846732315212928537113896012912875246854160537574796436207663776751335973159386160039123001460431408099451084572552708831078047060583386850259123309997675997181561005467769754183974881066409735510267768296077986864194409218220160146029719515799184690937224258825215723165305999254300410324005418821009510360425462915169745213670678143237355270376718993786568637337043180490189486208524405305983045400433117745155525636826453834021457777821333937812193505122618181139072827894816686796830407857420301862309309484797504685789051507051540069738796954468157814938461907277704088304448140952895465090636638032462709014283240612450928510818885145646115460644189804233355017269727580644531024557863748548141273458778009448093228551958643426998944749784254809433048326853764934908803633810624182269374199562767924334258119621233724665691633429514284844829616201095322937921471250932046176192147550492554530047538204870424585519839616296095047413138231159740070289617819511003444608349923086917499528809605265013051692040970706399836150460497196109217411124969652216687846163452369562646893140139546457875816438807583795596141609646103446912631419574960706564484889587643018850972538394790128880302954988007752174562387151252038036606928472454206825170601584925430423568556408194290604833209242909428274301200826473794088903637972163088183019773007665835414494085653374368380836670406103462177029301656132061847756997321454788493946833510475392509138004153607993430238324249865830826846045796577179045062862070660671794145462859036047027876197357843427769782408805499457670931985384167970295574295691813919173399360217972693152324894494506826059391462983594804270135444588156498501157853574212777849235911904029679689351952834664813166792961183812727674988838153049538460339426494255431251130007122500804637631489671339026814110828678701897117180436651947106756604707564024073332582955855082176387844710049582982017818327047819344098235697116959686592357671413328741088733268251646493386737984322605735536430066357730438442353088991763764025551817649761390117972742689199572718678246728993327944539028590320119706288346520914133018661786566667776917659611957853502315951469806148293698885773168636791233558187829451114597124254985086815567645587780407179454278927162395564834536857451611338461624081968370206210080887754354933045462324738829096851185459897007749426980938111261614883027685607551034839817869188458818761940198726569315020084417150231933120376797267749564564305454147976410843504601848637726783795315253497930781445191591990665754518929862944249711626729467574381215939947361501521099332733982651486120509162782982761327130586416536819148371127985640454582322376585481219085541960814749277915697516736662476474689000947576794744467137050888710648253176003207010769553906163928073141327515631772497494586850844666774061242991053532041132380977544692879329448442635427016429938308987930325727730011523975509201229832301751128828859136674804610485220562141021930103129834702646520024153695096986298335148630394870179362267427178597580868636421134317020706664033214997231743878948291784821922353584010920410934640639680219277961205935113029471985607552700551720070475965787278430591872589179184597402682332594825397705879679176150490608574232419270027992212817070989080735064534271926802169934697887241653160331734304041156803617467350882121271220306188907742251971171263366759560425356291044522124045636506223518023381876118129514378467791769920639810953755161007422384710204877460708253644879375291227234461827499053566869038713298646860455429190492726737528473714336281760434306788682735343520553279143704855911610564730679338376730288907013080251450589651239185672746252231584058938022906172918704082186616849601295939770984716039836950283747919281307243969781457782118997345556615959608119099214909972336588969298184073827285327804350840446841896785848924333552608810588996207548291036413029246121060314821063071276402406144937833562075099390999872034168713711912085981393679135365971513354230182517828898369689293996940614733437349463235527016196831796082165844566237302916067417652135945326002367235506430587930757692552290485252967429247730377796673569337614485075954764955715578976984828439164665998975444784972724543333499555061453698050200775104696845441149451839210608802024179984738293662232084891346306335231090741994604650883630637794541916853839375911804751751496152188387139819384350973952005187399993150248604542551329054670827440880139604858718899606644818031617661883645202661159814478182912817453911661754015235783202210865991477666590695249584363937451370110382008407413034832862445233551311019877614233078716666182876650900595138207235965423992472461976878009769907534452426274087460956272709712363413910267648603723406619219500068664676833626987405597724415690867011409726588207061289136910902923155071155379199236426409990622274609845396672086339683174210521463002169619803811508252689249799833216273532633426351933888255329523187850430092797222528584930231187920947789883919097261350182233105106935232883427706929441047185420776565273487338847309620875296734794940335314237899906959279351758314070198650712576569642150976078530635736264164814146203627695082383091893868415693267997461447167192284713937986562668595741688888780263449948314393626729108283589408984933132422415967275247619671658377108868110090285372463203723321618772448807526433291070717009924620799189251026020787472548114406080522029958286819498983279339557668045745008597481975894158268155339920200822204271120394833252055717786822143244107894510467063304787462810075730343109133547381511724686347303354538694601236085564375764890475189863729916507799256636727271968970896749939773821972969237304898274694818356411992375411213434727141348410304194044439219721454850688451199621960777672059238480016675575498464972955157552890402949041420384233264289500375319303043938817738119317798222974543251820785570404309230046182660265317157043218579965988082596677157303097129585890908452975369812283209098640887762217764104480055837308552186948643521346772985621450908479446930265240870864506534351590541153840364651258413529684433473568413953973727956031056642948868766824717102671041441798418859679994207884522684287660843207689917517665477228307744233114701089660879736535697341802420137289885713733962259543024925975454195204934551778337664404279464877054050570629857783974276543498211697847645309592898287378613157117272681097240279902632042773631421712783490253208689373466064330135664779672536279424557691598653022361144423213712512842069870727236395539833925866462802443842154887852342148611025834410503691876302419620690105924034489685401846620575190791101713757895458701782012781990452516139220197808424559307309372883632551118330622374857855019581822467918784728844734512680583209103348282014397260060376314047168861089396542306279291387357134034144975790034487333246050871748024486845524283955880534916735904571508226977445007272043665315587443931943905537694293186997647338418464634938703627905226802798302851748125454849177954716866157595517893444125291258424169311348512340389205815887886912564751277133141094512204667122870192189122690359361987453184859391292915603959164565725007246296698137757396236062609368777692367398226310717997957905179932930676602330585739474145239489621799293074380706601716774691105913171096261754499929761294731006990110914088099762144738847333468834725513422995591800330070734298200756253414790942556090770705308752593185234328003838448482972354568951659246053014923784149016861272234455913469554122390197118048192621147514035725820232159872928141445057879291595395885998694750430096009872613643089583152342218540866462828567516378306536949481565694918541383235637862633210647996337638667169791526763733668934202084425526017366483558739739917589479668573015095441096365319837299611306565543819704687404654596108387618769168103641171850616627386931376006738116491821654173178677848960487783592193397475343296769321836057921708558117690946089131982382308492224675047279323835559580234397344726254509798955315554043284442643415517829293257775388056728202552401721976495928985027236864303409947487136751583923637457479403827433921710614183265891599659412631730420517583107834448386505314228319252363798375379425125996192715567008433897139313205911870967252578253989885169079345180674825564289900954907017816893124840822031019532952704276648547635975874489594702525794783742359225360733400107277297367961739889798721041760223842040453453733565270233365454457488389698531498080296845603338952890103798455253775456808532766894865916549909157923722697008675544138990268165501037963802508302649178988772718020411866548161416184540700442731429127093406608403737633819724780987183590531186970845897321085058399819890904961102585609569099093823835798627133596539986383152029623703990569198813056927200110037576238106358111637931958814217746199728461780656996849294040133217884111101658826050783649770338612539413674040205012773221394799533950130981402368779156366306129417099131900965257359679135737367208969165385233951105156077367200546382396752253050257164325696539450894321414213480388868063631929878113747578083625298078288266472229135131791693240870965196419683139707998548292961534771270843401657443116541792652780692868217357680303553389313676629794757308947767802783314668610463791444501163789666777896077539506357336356032902595300851756471208896209104328630214545452149373665088569145730686966024324414225506839667878682447393020686160445259939334268055542076413038574258755427135653595369848685854313702302542078236519238878588368030905952287979260050807450945616134484724795357940387294330518205898977205393305266380672307371116628019101968741111622809374368608262261732069815809976529886775195897523781198637354329160802651663312693393582474062364482777608861430296454960088396357643149848887316382918139167471515633238456653515152995500741818034854829762744277711375503357473435847960187467542549695745395139385571729073441777591231365807147284653926324443233444959012333305287523625060448880786703226947706944244089668848087464747035170704037072385676324850559467925788702369230910918529681195492607776236618425165426231129566533432831778755765026609919742779984587250230812746248292110767916847317780387306999536357013442147637095365449395767889857437793163645345112291309395927885204549362019219454019049966978866762406786676243077693837454791256765866728439688967328367295450141986886961860075944805469710952027766823127945269779771794532512358303659438059087672926724986902647138934151287626543753936213884670517918989602131322749126281122671535090659853570827445133499386895470712448966322152670402929765163902911474854024800658334977127729135218474358165253719663242779413963887161638478363616911262454761964789165884724806052602426509961887751610461859263567388078196992395387015492292045243113012725083233985460211935932439972061443134939718488232610208267230476916682506808763240255563253275389059814118729218997853439844567399490954756807911476303746789893858814691290246743452240277834059683846560109126678810903916242088907481959044099231626985675623952497558264252705011383684438970159551152482147805079916919343222339959824991885931107598992908410510440070543463935089550885735687263867399025509214034774216160599635306694371364735120818747764468659576117224090370976462991586758833486370276435771329926066913176128391729333808645901416083270479304560096043797913275466426574393986481832680409978151787743133735338112661236012849450430216574729051774279126158414923773889747490564066966685232464639135908829975443156439774530756921317685776295245026916128381583393459122425206125821337573601824420765695299966096237215590767941109402215101474368334981497223735655457363660517197898844384461325375740749534075499411322789030355600913821006285280305836505725391299445541625570007376228413904559287726738084589003470584616099249257312386526734446881884083717114676212529246705463701212843504484786115802864507791694026496640559228963218764673058538786065470325280087713770002685744156885683835574217133447199202468377484823056470229458399008207901658208548373127431750269649157859267298675523286219015958595639825954029615156618443766660267755960229458634756457567089432528577169886211719681147421975670294433850218689936204612111599199722973984672433002859617912647246426160093209990904281596310210511304836761733115120722597445910002718270198475137031938830379125165865342963569410952703456956517017720456309664018235631943058785485009081707023191771084069086360577933520359325383685660303500226171555775789584054899030212774012412507736070775522234835543655916420983199455063165983866463261649794023921951520449634906524136079758945333826570924789258627950775705723781909206625059972948902350071750384925125060603017153917029493208411219294008463670298425891818992291234368085653846372804049309940221437309284765530866408735520708137071550799887754408522783856207890686109983369177200471820437963199064113718096159970157314384397652346985988736785305782929574690618761028184043165410554961071553857440389946232690705334078637193744918444504607943317567812773609047810019862620561064897199538397910278077724813809842704122950508914853835788048061704546843058874359740062692739190883623052194921704556235451856838364508142794268460382507510149417071723614931439632877138130716940980004834888883994132378543537967160264348587201714706793717663558907919947339732191428112245699232821678761849861585896630580466076021531326807936100010484050998416628088639365651425917018384598844771361779362587763172615916087901695848804364351808866761240251255925242362533330478937000644773384735631780864257509748931237187183506763552952150466958594105724611133212484045054680685202174947246262022877319767855466266065326191941561155277122910583826327802361631772788852512878584811388840521206771973738532728465269622417286166184171825902856380844227369511390417444109331914407245128548371996481623369369223881989420730229828388310791383133583363278150998723493219232170951258473783356739555744089601936652064769750027537207629815788945962462650753778844072714676095514413479993467815545588654827023126694049551140051530880065654945465135365127598039510341849153013327112473793163378407969774541746949573301030948053956590664986660102032617045457632375561304045097596757079394261822085421285196837180080856076300004104774553692396633632127246907924796401404569854598373067434433723003017490126490732481258353569841301447293859588616264599678896120953202222895508841731569896563789916172660277265775026596027802538201355193320278090494724644510670931874531145106558461218309816877642357699844138283385673726847464509586579811881265804600788632129578591960687552115942932574650155694122285768977465581016107924994658698200447865943237551969839571089693251496279063911137708071739381439203328108186997974253908123974106026928050224433347096084629634878842039420352948825068121681994457574850442928579249676362635895442639892527949167305611243996749382934741259545423087739840546306974501786388454306265594178425741859484438435958710741954248499292444805030998428441241575620920691550110391397137639471930247163418672334937504115973495376785824747520786496503459500580057257293141714662001750832710715891353973516262245849234483240460662766538037915824940759948409119160874850994514424873443790246357772785177759085765700499903996134984353940498603984937523567484090732925862863976220485758964293827588957487664665123747263058591650374673954854807719703667729282645435759322034683812457840057040666199421249166313640645006031076215962577219199716321941268808984595316028174918683480751051533960602782180928164693423629518484929490963645882921251807641235964298831895967386432968827776251633235898435444134108962038850305864862678666735417901967608497738495331496366522151495840844914473817383815198838345051240321397782238964833648192774043418071837134073307068589572729746687203143851781175865368964513558528640316736435141720042026243639716090249437070402659973738924901218781351042869073100163491883038771431145105339787796117921381857599537755298265369393553571335599449230988284516725434027687188833594286378692521440514952929688753689288271293991559903471065237981929486257085072571842647163015170135115902131570333006937450882361465368309339157547419103446523959234263859927132112969962405666418726013562574427455568192520568053523412217979181343088461639196717828091367444680474154505464356106219201545125031306315690623306488450491569740989409751311158850776029317651785257142496367269687507907392903453483680876000177035675227932976919253347082545518772323690828648429979215344357154271994341108530257011690435979613152127432183808438746042077907208818294861722834679302073938993528733174524511828709411338403409311572928398045626507289163949618874780688758224960846210631769802295073100716941712827922264082839415235374837454261391618310633198509526518324303535017229118981548008384359386883640793713499095096249411103990591984382269597267421631664871335676097407179679942136576928150649650043492476574234394241893739361920564692566024024421785888149024554754330807541591762589653073654232850929774764894172710056313527956396145816750868979184606022586164264933535924481238951413274950316627244511309320557038532741286989740526156499511549840534066119128160367551674912303067156436709428794853442735364731419949192957198222467127889944320019064866704059949945428117638152182040586869756441605786790381086162639887684964051573205238816717317000046926181460872412173655347698861869878249124866162828338082506256451799434856825501929764172976968010237154231054384907842810220833032789812002036224223182789564050597353667447196038516321262344869109630288093061721456314633632189674870867621491826208038265202477975403756634850463129939557297303331008188990882263574094009644598144627157125946827278443657984432578981439681653444956421348406527244517171673579184819808634498922303610072346608637808980214150836629915233742273176447764546192305086641477888678565706012957553139016383902719466749837942774824613657235305875462709081385741332392113297817785377250160018663516647909408075167095091658463461758892834983528139387643270160494693647215136286623009286905872941557545645595263657873473187997123806869352650640030680162104532984308798329605403652289585009926746009187094780116994186293835716775933578049548218242735853963411878075553349609006421343094130292780922667655316206579762841348764659606398550222178668915447718591260162025346676334223155041370499415111719465799596019495289481467967556780601580308549429412641789682860958575333336051861644098123078839986706742483534840276272162650767237492259279722015108412922755974084382491063466098256779497911068245706142746067172638353646844803384678262399605519515522989686507533240437821584775321472587619132596616395619099006701906565123911416365294999540436854924685408318586270660574809413154773107726179234566208154491522300388916099388599865290050370045371171393605443882604453095781855686554794742818290752666809063361862656803702546727268566884495800160097702473397624485868007760054035165678105745182870837366163162641860405547347482738224614023987663708111646280780509809874819593435112403970872494275576990248248665291677634529973482544620237343479065272567831475530179998311594112436210914192679743137913290031019333598467707397738621920339440876171181389980089645777482801758435320457883300855763485724885351956437282572853237857559759230268703091539386850810451589078792299624179006978963048403470572909975589254502001773257614010776213711637793695263682427968039938190519798597136918849630954043029341439691272971565750048201829457262830665079670055700204816778017144490513830327382377552400846460327723414239710493921423547983761546737607388348925175604449641134321724267926436827179677993024104133883177695991220017961529085372589470934485665905920978815563672975259344283085799374989137223378680996775191664185183849968567318622424145643819641709291371052757607040886212924479560965202031386252350610524321850894588628086223710502419029180365828952863912572357482789152337625359482997430594317969128283297068182630464616196288779696084289641630917054452882496831571848957420403874107360847776217351507996878896577918071080091337098080349091953284525897628615054373234644995530291066035440849182609319058127891512161669312744202998307685545081910295898289895235323114191634328117155955452798785359130329027349842182925522601779184570319690672711901527318047992478230412553040866216703908579899915913146673179157980214729445340998724538173623048699026810559714280196734915181563855079164110711903073931244493828855645980408364225743474800804049496199435338302329610720545583380034300441750482205224429914438717911793940018720252792211938263463186452973558101752956831744773873824793266820334010214616606087662878423618020701277581999958802005338413098962297970023729781403231370622532586315877857599854248344032408217559837919593256444293875934155986431155403753562178431157144058099804640008165460160757854835360595120473037080024081241629403178470539704431526667802228944570721791446167145310079974359305834506139235428526362821551394253752069813603804644406288220781630393736441486645796513227285278949035153829279927788770566827256298509014227807392087542086430386076228388763174811919661388094605778643285354921631057973552850802397662016962925417939286773926461924754892063847797632367763838380500441455013724267027233962654057035462646299534616031079820827922770988962366151484759297067237075616742863080356201924283029415398611904021513693026877354109159610951432942642013970243661900781271566763371480553031866203935466449126177537961297027198226309685896999935767314292048942801152559227087743833906057809625155298813833093780166316942234522147435002065096616405166335396031152547534393467844893096515314986758584504271926103038214059600359220164095411479220034183120118597357353134493690069674353815629532996670727673551209216369271113987108579057686654550283517042280499585522226495259802150978605606944250445458835911098088106831366843831338059644051403776005744521148970839220198544020438587212056210192028778184790285528014657775070105435988271813108302958441077790805734993180654257155590093328356023006452709501029008776118578543541861471965363084730063639245144036914366516780067094259986933066048637358041279152029012907328478839001542104721545486224305018182152739671600874024971628294838468102184726919804307602847623424919852593493212232674787821027636584242350693713137814704519659375513183720468950898153116195195804048265574504725925853035086745353277205839239484827280927905117737481074797338104139538559957526179274414909615002993966764404194799431172044597556173922877717590398803485343723077078454564820816788343609647265081280869061707736873841243265779074057918266788010409301204337091403540067266510923306714928784083120860630315929041464604083592301546500081182775424029583388162520772786262939578624931552550372644264093413446147740796320495875301936052987639289755908124867629491042189023697606270397002305594616563211654004700203294939945699599821944430976101045360411809462566264035140403530825388479069795771840360891391428154720211839250569804558292443216421329516874265556587905496567622712349079044950503272148187813039733413786108942070531895017705672496633225880594117844120502486309201870251402319399793142994595118534837730800498280040296587280020987106681411859995960841945300446306300635803556247385499798391186982685125428730698332685698305008099540941047777244913950829220791100425577091628712349849544751461159354815078968183267416892851992201906994335919276516920694595435772772883774535613804436280198637321830846144282882312439314076981120997999314835295439629376784061784961946649040000683319726849231595246680630924915092690621533060133963694441464133883560607116147106245621680202147456198789203703742304855157749630470614901355719660689587308512892446878693954049311347944087897755863951291637433865935116621305891643188796130296032849555547777347741036938986419436500720796740893363529897482655134812907960162346057571485865199063775385493565507959003579379455028735675393187131366454434241340203270881103101280747968237889370114752675251513811655459185251965375237135486661748576637903438184963704570137479275780735078696044582151946671354981266065300831839595575901487845985359353803529458731861017505969782850637834329543516967791476698191739389677191961121616014039481086896138906256994049474747115241316450929214583547915924161417075913461396501018145636379905020390551263400486638630107968589415560120059873172628684561013096637168558087905103037600753256104213896955811829226318125478466721437272791877109811297799814434543061008836288442601178017847087590228506206927792592214100765996724224797635577272559130298465927261345647427139738318632259683021371469094509612076526642996464901102048690787472634864511558609981946934371656712612293329861151431016364385151975952354541388896448883775125463859111975554984553961611882814933762170199446260027851732802606130743623005039612338314714330551967620821179947534236259219511053324265624404029756716270777274385449660844999449036607800868018938144184779743904190304323606918678663619639042410967205608290401459694962915511824756617337562036871961803670898566354194422470886570986263318340144876001917538505881061143298668722359058256536336076784370645443078381696207158146590744557634945689277671813227745489278667133090989691235614522944457066931975972635234919377722716548176073388851207945491954794211665668772174043930557063537226380958059602072029819149607043726411562893152924155690374809780208852443178274162568576107132757599399426263364105647911091429994592963878484362070246186508418912915698397176188098679913623565799860588532535952728893944241006110884860194070147655871994596848408737695288180682251863245349188990386335020552459892179485279605740223960511843569837139235875316602511120422720536464479210130474354884371768611116620571641542697204859479882712482624204720786841807402552696512127828763208492682466890659723365862167789562457301079633961227201422426903203086718551220218829545099938603702150681735912297073337014387792535600211882825572256198934959957292074889693473327937178900622033441533272266881593759686335103905673853232051294933690018016609533822980415581565054990965292335620549246972086057345178527524946667312915719076787807176099885298254815147507671725421736988083193908330861093904924280835018597957821190525921063826317005470201215663925109110102759904267272390022429827247162720892494420097408146995715410373554877958515798217599827716229417015330946060841107968484766565343480348942453035119902399459713432462158016765484765838369582957496923892783707587538737984978909334753577811358778697028217971445391183207553719076941900170573529580730055314924048347720247370137638846870117072665337988632078395034441883887992764159036999459584075163664801018762594295758663763163731399235102793994114500850069763189060334392261960759332187855847929952569823356821467126697952016756888824486768922946192411074829799350598228434491336282689898009718208852013734326738346076414608656781288179334640217780053650691343092694883564874868814912169519358953084107091698386025824124635356516533370853082134120117101656881800316998704973831997991760365851786224081482884307136487456240013702241699040457189280106485936646700683389291920819377973978458350129253108593577953020880658259775579941364112551610696091182525208652928201673777327467286830166796750610948851910750693598882442685996052663614252815823140927460426306695010999655014002368759575080787002394019190809228941547512562823140428151618829253988885123834413722207992767265229326490584923781572199085297110686237415281762761116091127684858553081761442909277093144730133812584823401644825904887799576489926962825335725019591884370169398256242043516054016070810523633447175762255189858191239698058295061181422145640150495957750068720041330311876856175172151807258024091279253046035254339681761479884650001286175918326935299159242131875556109496741285130613881737537024755326301074482182022175516431290517354110439829033581834464205955739664604942445600877349868760015249243621834170702258542012553536907367030179842075627815286301165784098815822657456297514901818971318607406832292856979440224363198760357870521294779938623382742259624358408099255923616177396152120777274147741916177765758146575377203710790886922090186767469610061339363865843969645571076776862029684203917383193562481815391020593044606313584944950138425793998276654220021332153946055618210071630720646437172140093491285772934324212736228656627104776831778450509871328581261661623734850270188755170401060771853842166332328704070683821507047550552508470179601242424048792037502072866357884983308857203794566790373654673881952392741622019105322161943288684619735077934699311211706709437807024880202908675763162970438990136723789211579932089475791402991559740266443023205587908292279385205542671670009742943932945447622617256299759955571312843363702316978685692446061201848387589799497349715903558195622457302602172439163081511891304629930029439583305782506840330448991382623286879961899529595412045844462238389925440990394818203374178108555699583967723056876372545760247860831348630734961132770107781360145883040541842430164244877862918320270416076862793713895713309044925557979475069842387038562873377252631930603646454961145116585413638546753188559257415907817460876439434915335468510650136864224449127271814411770101682428565908505654897142756846721380919706123489758015996629985511694727538473123630234517722435382581031247933779302767531513718736144471046171101938325954237338241969567035888085991660272024971901521548618276874666476095626710222653086852852372744334763996614559083405067043186189201370071897625283874329475136400322784637593712892779120245705622946851701284169524129741222816457839320326450793941260251733026168462307015096633791515486226376131780998945414077486058631817442715922401779572696158397516589520169946712433503850291542122149795245748269518789618948024985523153282703740421847741690143856670670466166671113508815918695777993952279545382688042673819507741981869639591250935605882771919679995612304929123535982128559140315890366682386504921984227447635181680136604253930297486482765698361029138642051744119514650741447037889260156324794519732433729527402319830193014643979113689368861080124116297163972894583150357536412844527967898906975378528441068201738855189841733189803245561177551387732070239503533805937919071540172628347128198314158587856404947186310943549940931547171075202423210478521564429593192439528669539078787526077319188671576225637349747599307023088260543372086111560153563841876547791404557648727774607003381604998531641259341228952708589594361911752445839077108087425797645518565980374603207619026759852888443189792519807175179280020453444450813832243518593007221419643137327539015720263338366022893506636869526526539692206849659386762008956569142328976305330011117465841723795241491002876317135054432842955935648805158957216378508554091369484343354542254435398690168713082891175090302003276349149299188814978663736045532319761371939190292663118182754097998385852726316156981962426312459386561743193383904690458241349273993485575109919975394221654690712332434087716106675445997235910360813362854982675935465249461229855858987930090872675375187265307217416338087653685473192116846696927359750476767591405478649158287931262236295723321420391020354701856759887200296554431834349670373247775390278558993376880953880988456216415417748287529230864471673247416385971012863432624736692208773425073018478033449475117466049596000576306682183413966545716571927475758075480902813209232864970832359980171017963218758466572771106626786946794398110640989479176774646983486455589660894307433669043484148468175550857972725801794957509332295577736538482879196155433362319176705089605410939766661709701122885035244154135525237081547894552578891332015355581710833838259757583921556237326819534676649048392472929217740347882804192860775165853894164244626921438415881275868425463699974080295328653627938470420730751537593282259455938544379441434629951171554838752044907891470990961515234957807653547782889979967406265969358726156450895746514717130766871900235144401126431617015103346254875516164027573389351023541128959851596383124713924820285973425660567582849881488687939905105231506626594711020499298413284347385067873947436466960188624089659877744459149586987553105276769100831035705165051343734731856131370814493942168589309359074129042310743469517969896256154588331203111737049712240748024842925078194551065839099232975475276766198923685211842243823047145328673670832246722120682913919466007625507425061989601817831991840608512557976699776302321943597545971848829955396124003873923840952424076294860057473884137858051992218211724136086963367291601254800630637717931884676492200488470373588404395396066860796217857323529974689685396720366121094230022603446240085388847359520360924291487326770105974894540885628021588952640770339316020606512588147408218969026892564349742566274670639783157902783768242006277559270088264356072355412412012526998820639445696080111977839115013041660292980264055698606320762178953355931278840233134284527299968576228433692110801721566136146131855289636192411135654071846891658857868562965044332585846521588546473615929295703282247848060322529187684863353162725519245218888389936751264963050791017770249945832328283132805759778961531915522500746427661892655038616299794701056507987817922315716758351317967409151649764578501798688904918978863730035568210253560159719337240491415094391296493246694180077981780452311135926393183991069407742275772579847338767637373218439917629012652896675183113310079887256214496671625152394668549335923834566734178019725506378296798468719643084626132648751275860711998738376236181274585019746228633029832552679387060816232823728626203788065290555335980776982879756685139897553124981230616539329857162487043154209674307490549839000785459379465304700008207000105188301477888216165334957019596947849627746587186388878299043059153336986307405265347495213714257889746395806225825178160475524371741765116928080159456730388475624283823692950532564832134306238244880224109675202487773663879554547587023333493715466947492019080367493040291539870409724648285345499001795509710745531620861123701744820984659103320602697837680837457480938645548770414478856337875671847127431881856475548095824647579863699331691092927034174757566945026459694934392777543480511927023425719572806739219908513679262891343824663053253509575882903544940666185329093764606731647880252319654199204013033037959803467386123079471604417151191505973386258598240163019056930909490209926112694045739924298154867578528579706060246831919967470242159326371495446671916933697467585867616431289486737242420427901517273016795238834180384091870437524558361649525514613169464703542008324444740094658030974594136594358508418214902575017197782342565891997560249208858653048069192380230248096665803912811588443715967296661050680124640978357997007502122025129989676145183920861375553877972238353929605596368093614351286220737612751124289836749683748093909839831678065956575131209804735774322341797755337803776844355116840647652329101296116363220007221027447143583957160502284802837408925478377866082961735987420192901336778100021910220727346609002911537081239068026598658280994071066822257660957827897398483439093689232780545102638266844603196025821530410830247356656722992546888674459387198607630916677569870880765880486741812259631722873375850409694275759905325600062719374822167441943740261214012237043278750956840166233850644990709364834052398647511927155282129212611649102768495451282401233469373957415053451678817630623837114244838135804796061725157046733638114811571824951934562015506149986964366074544454048128789713055056701826021702642569389185208302582758291317315577005059229207607229496686461762682409929200283959108010349470733676750708285329285395230180022416643224538799792622885525688869676580830869928481741203560498212026566669555255011644067891477025221078362164249655873926955001900898526321387114811462684082910454958188699164507888115385257405339795837192177320212808391848513359070776430330030520007370259931140372034192670397840344732918755513580638130862779590581489822759744367225634534408103275793863661647428986449118940616314137331693872114861945795677808311293064293057567326524713756833574572431163665189796715241156144086606476178613823103684696070660787340152835284104104434116467662461417543321333162746114757777819124210978202308288956702040941330174019050999243005007481740753333072449029995781087104451503798104652852512835832138066187382842859869172390615218275626053911917057382740007577419743038950557935490235965574671185699592824603621950184376129331407457068518080354910770389463168946190606260422101236200425364573346079304882941042069819086438782549829991602573915763236659059046708489780746078843858570343756577663894959626803747330262743115905387799438385564498105701928681290224023156317939906339584417863390376606626646104869418987543378976923958689924366910902303839673598072927916912763327602587854394954137938619798171874646048963040698795417345456499673235837020692523905637566172878071693342762828780253999182233712648246866746249750887720037470979922630028596871374904784350582339591272955785925141802595011388681095210862078718744853431921283034972503069581126468351576208315202474640569196589587165889117064063889181979804484572911372564992725641873537919348902297328534792290439695848186556413324197218136442995747810110103066468147787031167841662849559312491156869735027185901704055307807613140214038854158369759637427941854647955817735601355785496940527269509463828139564110836144523439242271778839844275065741273766792816390256378115342139971645692167058095371806114364419593049202035649861509705207578083658037501353135770436795567482681272990725529383418935475675247614866903252519578254930410424509213569987933292296925413841614485891443525832206751213779378851678097406757071857453353928282076159167917955860548723585720626711271498885342634211495396645388424409992871021043052054356091862694963636442807707995224454956710137260813323702595837742903206098046496418781808983916680509356474360950082066821279610201798213427354034788729243515366350912436645939648468204501647918800312282262887050906914551677666774534118411825312666002694146204460281606919944710230693646093682374615381605425448095620147998530701182260084987719818087647642140407006817214416781829328324862744498158770740628201028775114777869902417293268695249589268576788594729839424984595955414633589074145329918197172409348394637553703530978194104506613596280481604596445752169862345709303926868362613837255910338629159952601771350533190805135203353226607622672399806480132142102735017476901067733036735281314241825218803114884389345081842759220855286801257490281675079274796142541807316604021598255433444467933468023352480884485162384022354218914143394123328765414383633252509762920863792072245739730963916691592740667787704982754351270094097007871748054348028427793381730807590556324459383517051178513176899304445153320513978624954984515668665382887281091707699547578768162691750147863805451136442705710462308555623969202755721868540093670320171353309533588710886031818322725056996344827445658609905376158100211562652575610395917759788056249420888466169870229642389416277966618045984991121195702451391569770995001276864936399259530094353992168824288685463823575862393958367413829827183067657646832172391408268184946520023815298410501470411869690813329245088316436138707027016474985384073766435666898559412026710653485625452718690924145496153759356734111042697739453950288131055319632734956985785783676554713564940858442465214239490847172719635930670078895923046999348121004505455574820248025037731503903644387819965312377144659583271443830603050904707625429014303046208149295031595718480174590091903517030959588057573497930191003790022425025363322732240298414538351160074339649857940614481103421283346139145877248524036419869205604809909806440418196332487107541106442616639110013285956857112278831520354591092805402064175906867678639401337722180520432095218734591081816769737429120582111101652540462454042992484101242364934466360487250249423656015284257849410093335911809247837987911004136792664353027545775005075776329421766314676867189645960630248638812998707830659214805375088536720125189113610527478782578638756842575690846210809902131072744996945995686883120594362198691447505901930863659309471780780149199241438091813547858492618006311054127255781581053320289245610613538915108668748915253152084537248767955602566537236769930787258143922633323907103249247209975312457288866246375897459572998747987467001742223792784246331240873927180639927938847951492711883628122507397799980590971532811138672112687684050917396790671432129661690951769286677150908537129675739611300101130383958783109941228887415768760872588555217442998912042231498403886600204548339643626062519751602037605380868156015656789002265898530223694556199324495288173752060247707638660621758177462772434046494945896421920624312206991931858485721506138498478678237292290455852365792907286401961572106125066620972303966078098814015658603872648784004246665007706450507085873918427917491480738917711864003044351095143152822387402834422208188660778422260794057238290322178502800391308469039787011046999176882699032023072363414085824469119669097762538553010352334490838247721170614365014331646758612115556394969673129006492446114500644222381159780190648532841608151682390577113612023015356429185001599660239562644239218440399167694375347314623830602775353464895910321017027399887751034008911549459238658252148999867093046592314522963829977809366278331798608989769247077069973529498390717784419983446512787750721725739755128178606478775926178627469860211179390762814108074054601327220024050893419877184425692585343885557477736032697144667897967952173244223689231453824959036873149444726024714303570340958278518431752565077091692163410696155152989890301889501457469151845790535380809235601709202256952548826083905812078258154961004148461099072124948534201363667028218331476409891872638690192780381694780395086928759568163528069027533042378538654412285598778810231089165798691122927362114394972250251536221495785717089622961947074025116895383310389439899192280740850398424021277440314605704137116581061375021349752328463099870182548433824237154033457356099020299777683486203642282739487343048201569031323027882606657893940635789623200820115731545242894714771091928683317152390562027878849676528212117949978702442021937850324783211019958123373702805553496585437243840744253696068044669468716637338294711854827654733066855093588629270255342039940861505630541932437987995401711742601736864051031509190084235759932586743240547738837488944734594592579803757268612547233250196684827886043161468191578092835877877037191043882976280754075567704909953632068264184184144893508436224100766683267053056702248071257828956023939828113290445339278008963552206132608582330149674212744251861190926481546607484961300564360548513415615621457674697785364825799153256873429817741264162368972534280279784872832157820589302745617847478959788099809569222971711001522364263266858761549696826483289963996147010665565727281661614004436212832608043069241775321071526328318798795415999887071622522421964009250023291114601702355185575004276659496883424236424382254777938717104055124185662241001638978722235153308203337142581057818777019252400536262868338776707145636480954735702539194103373811515916306123426867384014188871451050833106154190935842230650551147015820473187678539837212076580875945180273880162413439816839954204682257972295919855890259922406075829128350739922320487739008041677861065251078194517867990832088746885184621269433525869879918677336653292876234045304916699607797400260492897084217858153371748530719369511968898450700536410066100332445559692462046227281882627932172902718718455477406705827626902235493668570858744844100925865161858636284813645428293705249822283463959194699345729250254157508655611732042744129644229774311476153472504962351212487987738519711639635082687923487435659358076175168710273963458952258683296805501755998881876308740355033354340176407075005803241939033812142474481897172218374001251220416998696822872923361959887933761470238748948238096322749232444806319093188425506711898686085240680462326395318649043100878001681187979072167431396167571213358866438727351490708333240068243912405547538863207111265088654536244628878436236939209068388495868374438667323671156667842121993077701213185868609244036101956251975821766079396319695646887047271451260823255172254097765996535738444829602148370618456300309181180678928916842322950354300343587183994772155932034948277468948220467083687662345581495034649491152147926322539660706758218824930928556044666606645590241072650574559179884026274743082793602773113127109817278687937171266774103031700479588278089371469415869820633647946925546815800774499710640115541262735463199634671442598431967173287074368549982028087823966114277415607699992617044574869616132824426895334293461321598302170843515769778296779010229579226071599146432201747944623120966057513552213484092458706661381313224578580557663393616247900138833252725486854820316231503949714274583961319742942597789650200151519734050153087868018998188428720892703434971077879363524906391842818290607226811527465135067216155394471287364694758503753473196149302803822351767117194343667248415089657407149775246811538933805871584654780603688187653075799528037951235419402810394106285298359691423293033595572309022242869757952025354822406436654355221806847565027908377615558032187400988032459919767128984279432103400646640899792444659163157328357627795828752556377153435610242863123747053949131424580356440542769854483560107786782059432099222817496166766344528882240475919264767552155206408994863797178753319936755817152162856488026918680418632166199411048670712888283427868775987538206164994699088604610026740482034274667738322911529545330632443019792723204875690089297772448295620310388452486549192065510155621317606014121679709921591704070889452201123036760542076774526298394669353949791013089571546632302747138719477746839958471192115165026642367731259825955156602670303502855717639051089626229829214981331939889808711857459244070291690756391900484126842453451293908578456854839853752982717874831035737349585940319162945116763068583114945974692708130437030258797076822778896818783974716079334388523153470548749135450669385067300467741547670414526115221323529445426609730657440213024404352912393679870339669340372126576095898604721988555746733905208860451508800714555600671089811589702860969103148619061459792519048393326004619268128833078890627070833027567764344954917757055552142375224478663726254913617766056802362320482984653898842360139604934414915274670455579802929047086388545202206897348129016067865107614989841533293013766940592605417665243657975381249745068883814400170040638095547865868307066255960166181072097171406267560774469279618705917225299085616736057645548529734006670073238740655920705974399938615259544137739482796206892766296757555197855324651601858762509341778012545475677801267176516804033973355572910987564501215147850561766780828844482050320330846045466182762723482344897214791352846601939382925894500838726995334218697528666012538339425402634380006731011788515931872425012981937157721035858759897095116839403590389024421928838870622851188308454481252734820305083349689421040471443860139717745884843219560714203318069121460437552725985593185007136488168859046408704718411901558402770658689984575610431127320672807298012959303455531853774551325462877881499630402661381694319403975409951584053577467962178632599770333413108570074559806559094662883517337720497307073868481850673538642390719823218536726686512241463931123055914540034442922441851370374844949592774183525904245690508073794822695032993656389200739284739146149428367843097633979111939979113556203424015762773826621351630758244096081014048513828079870971265371076243755031525875882036453731603977927238157970091269659990528951317477820395902940692705615486572201315781304081221964300381708529216318641712936173280452132452251781066979526408375828065446053916402856521377148747028166585748122172173513393560831294546594356602481814944666080967673200688504667410298134738936482941720685928453716721207861313408233315459432391307973315111273935669135107204713382229019472891073273429551563711374689299843366423226756883182977150500577183497058413546136032181406981356538444630515010937252988528370620777123864169125867766249522389167739015275414126046872723026381945698474506821218306004070481132107708817583416050039996068776211670233335232950261874888370916698278473428020141603610083651442423202642134920809201729453550745152324157605224683033108520922597527674316520728018983091704550492906677566156154386433001777784015544837578535385988432583257491858524106545381640681836386048873204723524247865945390165329902060825934385829258379398989815175154532101604132805135922370948497110797683660395807340716409198397127575837583248606918509490886480874630396255830834213520114041970855478671871132024958171874756720468133391771676771404232327595311321375388708064666777866361936473736615189414067451752755955020438756020249621846172714491765259924133996790118646071023223122745763085829664127889563461106456402482931786873558072606124498068924972532152428101216876845053071121901028940527579042741095093887805517019926506762810655619175688987316507624446538614910029943689503515744354482383372761393261054060794911558458430914978450406105355895010087637761638534310073185004240953485263338171045200396826476104556035294293143404322037512139059731479164336027696785916436314839771497822971380353569862489150872277153199580579205088837186459801468814881836239931028768429844131423838214369260459670861921616696243545078223752930642292263970492819541594102541275196021128088518966567040152054839562496264647681751690203741717107455314190477112307391109676115104538774583480226651347669006315548963446825653661763879811590406960693997236013947215427022861414973268543807478893435978205939895321967396928229916603129136161921020681665986621825016052299767352833591191713611156149217833124368512149071657110144804937879574780282316757905861843303394005152789122856850657516664923574482967251882214806257207174693451390573237460304620416890468277455211904253070187929367849694322003897001082027558003069812544381668647760573814819152356115947404199913280628918508426615613405676366133456193929552488856293528567082782872177282527522762387820905539956311400230647527679484042811676844429828877769320516098290764278420338133204710460565633669356856598978537474328598815844859992743855298174610132512306833888597430157985518764489171814235618313520794839992549153528323685730326094541467847385470810929480503350728518990399396148928039311129738837694832611628277628018365238139906013933275908421344141676285771016183890619552756134071016203767037034752452451163437003017736060037453499473264072257270706483989714589444437112531783609534204268880036869438836687321400039405088534130198842750752238956428946303180216719041771366818930015192927770856827719634232981535090898852587570654658079946768888062329409871214492989670495113859342113682076768265889342629641106027001071138499290910477942750619480003461202774910752831091385479476760499362841274449167577146257556460067960540160390135453785568300127083481639628985409324154765241475256744639233208007266930217528228896548000854926522919191191242091442420875939014511345925140331000405301011846343643073811860385888947184272600958974695369249593245670635500554246186489683358296491714330467842942011061988569911110002593055277234645962732454529130323982351095268094734297880945464762533729886925086678715739218334839062188677752473199500594337049845982691433790417929421035086992004586572768586672382373677286051541570105712890772738286609025069884757744522043163659442464732393432243964222008392376764173515602281553439907898283160937062355852419532075048050946383690787011246245866161955260254231377288316719835351049049885890498116693463901353130193567867271472527162717119826848493512769031111420920127091448396256547611217950507105709999429800586607774288868052179345269877895846941669667443083002759663288768306321159462885067489211522320490501038939333484101308583525897646057188040748906763529781367872098383766222364904892596526930499646469514895900982208295980672139135797574992291633892053966723492708488893583917984837014576714251042286377893231929227336918029425311510124428877352772605779800847517179761072954176135961304226193395413051429133778702509333823523146942720481883561128340782362721756129356196569288493005811540439229892147958203060138750647257209927806355150418798080710263307853231815800093651481254989234479240237042446780343434517711725108891272125044597634360608020145997600530523395868176203890019566902799511180575775028654032611653370215373908386631548097723590408584502643405968529900704928267809744065858759751309892521805731975732982060305634204741372066742126961572600080233780261988745408564127837127508289154247277694385696375427296373602407716786547746411445305054621767591730264052584590679355729546043866601405244319056074079086584470800099650717126601837410821040498865495734550675096113154359042805612313785289431950786333760195735551243062356180674048486216170992686667075434744594667016287965894419439025197553645893722204682959177521916043110589053561645881571503305278215734441347826491128700339143451674485998061483173764874198136356470102072349210900093818226082209361152129013652078400393462348659232397441598470857499330928798914721567003046831823565139279631947963193862827980309981836217969629695508266426239232535032909140159976005854471895756478833952887894728894925418106799027830021493493731962269943075401762024755273805253185263659177793154978579560002712319493930766756030230099365856502644228477157188990337823976225018499190878434020264887333184742357286175743979216716416532336263030579364066979491141585628319782087024464423743248478556188690227449438955333401366302527001103990524173859129138559034052596234799654882349630808768933243792582256604436168470263748810901349417142059256807609323078664407513201012854934449588439149982921014714700681523222693495868792558706269535167938290390669967976143341134086944969584642903417197143832083242303262689140705053851434443578191404805539517853692582634187220092955148895530502198575721434012296709080693167924220958041352014409455938343702806018125316788343122812849361841577541148896531211129466880835031901248484332432141526767759240894971769767592548708426993295745832247633498703137539536560937773544329334259590424786036534159664443814970379660881873381024744209035247675189889288585661638172800995356034850415890537193426520171973248123156787609297024933319292162512890982641969306890389132525901426639946988166045875494055647209554283616748239425236750965801622496101430690016145126193084807072105385760135453870010967322330686455824381527192170076216637821006299288197607288571930161261643824748022876328798427469558724282137243115574443887005148087045452334162855343318871614963953585237149525964128735931165705471851943685532411468519602759939142673414299868440485311368435509395958809060533762206824188539345192127666041175483088651669006097531741021068146915278804604980119504943565146088599393234313521193893011321129805620562728058938810658432732153664509241435887192928873696539597193247879658865269704075507284603142774338186631937084700580276813751595846573814677593780926424684122778237463999649681059815455829804542427673636322515713943883604016729987773802728031187906950460527082041889511937126651826049749323605641427576664232366233842705993964120644708306081309461605899511236024482320439742370836670776388516493672304340389230085066143551580689805343203169880602553143572021318052892747910878592279264192859286889435634942458185840713959793080505703145196539694500675908520953676650456965362190270123375639039960382302771250648814353108657385310618253409167219823121431995437467725622681850565895877588885631753767908525624750212600136733724711603078672430550467102829314769268743519388378864306898349117381480902970904144126131490464264084858149085182289482625508281353854711921342811937100142032637797201607588037107728508763660096685983648522657000541211661582070497897303106272683202990323603819341782800866738210064580242872753306425670157368840506589505081366650142488303154024201418837731271001713965739157515464654029264722601368110181986494409039620091915292077350990727305211497104364825893194351121893206977426114441014068883774750199028830772952496197774553088929689545038045724254640861547518205209295798971957922282085327996360920380347960655256969356749502779561582493799784300377044194291724060787507266512700781547910466050891346165280830610696244786175207292623459867392437958035355554470449112629910871202917783951563538500059477414425400032718868020864263405686312034105407871572770794523243501397042703160727840575861674384654695133855271899249138041476370070088827022366146359612174888541197661183503928547105933820738772116538466549476390086366970441312854240455553544018814743285309412649095388533469730187965775111555878114404430319611413367850601010321243288174908266191823164549897363948749303731658398092347561409514396921103521500074519425492214904354214982116219305707541341714186409143344904511756588382972280576209480541552204257744852770900065208875273838643192128483418110999938250541856255155094891051256145986129307389710150385566665883520362141444166183186217015773307380268224821432281627877525159734073251433421734009713538372632109015859807124082127457554976791306238493050907597304752981595329068632847993968269752119342793714327529467866301798819659747509790116549778354578921534054955849660400229129597250971173530361794093925506138524558926803447031749900818127467531277012963633276601636190680526059873273425693249499159577764562819420743280144570099301445980624068239382249882051906095456853522409344444270493419794485511153568738226135453386399570381416820499914960837844175573634285100019385164365084039498798812108709723642197276193261477934597764871956096098494109820511263801260989968009081056740307798946327310738181316331226745856718186470422866020267996530082525187309048620941218205172704902567087580429762976815967739232102066199623956116259032047714166243510062207549574961178483023942268661219132312021962147274025330900020846593960711118578631149579476266483501290336703879597870549269945523659107891576259001262073464083299745273007205921126429965267090792784899212264951551803519926221045445284864877391604191492492786851569811634082754647252034115703950740595781340906085392570641835295955044435198082075232525484085384727763567404757932484895821178416724366995106233857167498684100208377524904639907203185537402163086182279019288097887447795518561503206814737669627939764028375790930267850866232147945015017629730526104369083640959485363384171151410096487669089897281451958257765942246519484531346826927922479696638086971895159087652485503913915013341918267650925008470101425924328012429987638110322212830393205090136334812004380004757349933515564332616944000755574792089476841697716992503406807530895100953305028049629963694750441214510093985659154865574488104063703074046305772544614665099748854722664733295050207404936789669379547824930335782295729733327977482929250644442487787964047859457829952272425672931779157530328616210171099769128963499025171234099053110042888420252203948343292899826983300594096203244841704500701438933082074518398076707730016500670937663094785518180253313598754938654402601702611366306603089724689367271846975413353102441490025537145130103000078724905658547470032357152718517874559087844186422067085548807235873209673222354127251272300894296426694607626345644228728641073025180648397509626817863362954866160855368856732688562354694112387082252623820727879033769340698318879475313319331709973951481352007435745212565400121987185684206375100826264336910281874272958988966996988834438524970771303080474992627697727033865568223072239780455882046965204390948594914959068448222483560850581198390190653436333441835777644050320845199050417781297717532275436701418956667219435973382146831437652794920112404372574583166429653789060374074056608185604614895704858468066282664609740751359125628228345223632600773145918907189676667289101706470627942964669036840743819794185857765501743959664186236154939422932112864831201463317657095879544641800242761000190820838552151979643961594946943317527145343216234450224927893154641809707410499674045366029699089476816255818696665247260228258499886430216650922428253519394152721447070950048996227378615586084702240922740472682688987275696763415799864443344791167379689406635408069841914969483371658560443814287288118578109538362312054754919322760578962480845546436723629374448083138601909019405388499367243151989101138476920276468003618809488032444988993919892595979489737551108516909717092138497290822304247834481614366896954193274617024788867829232723221944504671254942459342617349906187738697423500787654330640396612335429868756809260747007359938345873333556151819593891226978237897684327396856979961997599050769630276773625446212785607934166783254581155905159637813204198055769250139893599973045460528184635736441431132634911631825200026626084444479056200642873573934335431906962119761705855722496104927273223555400533944552609818383754008116313468436054840576518103462554443417448299233518215277627023162064964156922796655945958296263476923343129884588587324446934315095740616721029547987945334887765720652743691037831596426161842155580942550138851896685144510946157928979832816530647384132029866005035969109142682798110793293715363888969359865930102076085068325868764995236427743966418833931931023282818073136920867904016484480103896884373665758494423477749595548569411211287207545546466807763294158052922035721274728247390450344353957449435897971316641448275040873959082189557960034627138867243784172381126415653049465528803689018786444136622705731689539772495064705487932832029941517902016681340751086832777031927139957645076729541170822506599908783766328170128358568047740155809238233671881361544328394038094833514077672330210234654425957544586339541951360947796555698155528416187736131476819664721168725214910280146719889480747104467185991230504611423576298548685174095167805618822298660640734513606219193569947849046128721825618933230959409668089948792085369184327821167042268018413946477764286863755737222541178969970826809928062932562952193361305159291402725918870820654859343399438184981091094897348236840838127827356799918465649413601085232203259016578235448277087736063915357963709046219532337490892408072437966695160638135578295512981376253726963667332747375662526133361063316302358095701293852197966441802879988250089630987826841164032368320502617026750685190782055773864329630053666011553072182719433057278785519493345252367013310778697818274048888298523555682543818953383083375515619791961117804645597951715151192242989247349299309650744500379699325652545896426452900867208215466038435237253679925109264345865871936475502518999323662244122455751364571976249983885745142672789723756275703377361785030492594494647662519792101986045887698117568102277959319469552104261845136316725948143344313768208661721053510533493172875856683985787962732882547632455032992206802280722486730616033010972401319402372583639381540526788185756722489703485653372263512185541957547703281973048320298276878975680289555707362173384544057065988026436806328795662658879916628754715513630957427489182009013581096033606513407663860496190792711640567459890651628087722658907470754093693963864368059202134083499176563554748803245992973199515281762699472194819259353980412716513281604072868915944195460329131089772300442988093042600120716521365661505008869781410064734087633581583403849259185290097753022058260759632799004797838165398223839715036512557714775032855025535601669687669075907102559179688526851905151973034018038418706506705131619369628521476852014181437615219511938931251168602559178102560723677832823819377906456194070939247580372362419529194580721245379503698618972736027618932488381166595191420238935417049031571328193094020616621703969105814959691423089015422933081210481428971880662922331426515412612709068930223767666712523241864489330118477905394963877970339141477998432193870748740411511139356937266593391264080877504948310520707126021956622180074509210335950948754383583055075226583655372959669352583961784840799130617453683822086962885893022602812515731297391005398339923348791427775528267020413447345772409997515443231281779879032456310213071067924676181251249571798398668901570307013726191050085168867559243546165609105395534967987377120456070462492854211854909693579546371254335650674666382705853959217245638967167311377920842093414733400737061251931805095140185594622273172145749451994333685746979092364200457406334075996595810201053677407722445142153478195434974676129070020564342949098254950290538986866984397982203796411769635929830217775446228221296533560344517212666568176591891517989620839311124955781429558399174328106381829911108320425492909036759417686234177429061023047457409472268544737855169538573159765850665450381844504625526242408450096163445105289043364953638856125873942521911129593396338114464558109166208617020037088640827830630298651993846950744031081227395862663641715584838163867875001226524467696420478562679037754527287572426357243341976059408783939764367543267461528101396835896767931636469304395126151986081481685420302292096841211585889922419806153786652418309037081824449746423898401718132831705923578798239940326896121998619224375963549631396228579787051644053096058011279479615672958160012399873008701148137490633043329700357630784319024452876694560110004819118566360621786038970973182041520994664271893072694498946615417350253171561517556881652974583549925711888660385505338758349331441144166709324220019705832119347950157223676778766661896633765563851641475179036630414715380139647093794552316505940243434481466719995191730006726114975602084558455061298336726923963208464014637726824614329808988059005493426338649676664958437694755742075773856354628866500470688474719811140990752749943205684496100214830932839512736256145302154071891540687765515992673760686174158468456921224390191269777718337370712005475312841764980011629535197285878132600358772257571393129186696310230211378910869507088900928293606031081647169632426196465788045922635459716980221198606860762930588099553667649251179644258937867095418888286106540831379342044965687042701266911243129373820327073443529335431167230549849304404840499609725651868558983518205754607075065168261630721341779553327698147959764673425269544561595025177627751552318383768253372411254230875362591955036638883314868515751577503144876681952757675516133272543122441759752755370665153310861754563042744890419079728046398145587936546202438004157841204372512165306783752687065872499593816627885263848912007333208944490959238743406408960341183324390313666930394157727618604879346421876499703690255685739257353283677959850977481181021680914930471260265748414946435078410693161884254156910890064672235865166524275785227041108398871326065481141989266766981730878358358491236496183028924191811087811745499152909133783603767771390854968379121237667073630051721183619026277195989479815057008395730158560581779588645400629685839822592177005462835710068412128736651117700783339280907876149809427345240412669710608904423639066619902861390942888080214494454884052472755774365328895321567332465296473472858500523774693647791975437038190007766436775081437445860875557736433637261373030909495252983863721603405065924129055944280795349971893972005010934069657225287984916777443096727031546003120878927492997052032656820568935537252207083866258631212766353533027685841419667856374135832531391262854737979251236946353918879821406770428863425670311498746393171588757063362409304408694440430969170730373884098055350512898206498356574413336064184489423403688037872523064674177372713973893737988866682672285764804375937114297777711738549877815202671801018602622093292486963119044614139307928442162744825468602212579809027221993586208994440709359455834803357414042199912237258641163555238752733878912110156765442005335878925552880218609569334703514699806743482578445423774628829669317608806361445224316003102827687913674868161799564769733325609904104805478076545485575681208151762071865392608174500789684725696309707647873777222092502479767674842842682694789776522568934362725137152364524269711708085487363243454731542429710820203031952687257464556775086084360895564771991346682672775772602952451631808216481079957002115466127441342606298390200304296984873920644541869356622121334254061805921156942991593550536781031679056254212403549236642339979102386735055919906550403433376660182670697464720235383538274149646925133918009804115529049245969104719875087049826355465251095270955788336363032726691406922909608874560748928212200710796309070411915427830946628124438057952828383081852715018819386543305300709149207400827835439153355417929949097583598158408946768069611741030321074387764424653246638450393933057417879645369542917719263282532877040910516727342559668043427612930140378579370206005037207515162773975838211083996609675074649687631104408738656314549204240102397747579006843723882662702800014910836197372513923453789768278146322644053930369458391503809284758200627989907647682064140086293408648175434689956537700589558819573535099290419080811110813398101540984116041447469496456622704178663523021261787698794296249394178785843534925071842669476177983532445152820013103573959446031700144941895791103318403446320880122043636532961099645982592550864586844986844228936506399519691626568592391910094261181414841591422219604585854407643267977302268774765051442220121246824410643260534255434896942409665491911702027948475149846768604615688140374827487863213680159109036920289307890041683803219450908912027525830252326245743015974593983172458900112179604502616628781648850546522571511162293756222246212635698489116372098848920758740820623095594238899065511076885042606053410528297708324973515169747756615580287383795434539654087621851937720854167348721161570546893660070288722119558026411622812578602310334099487125269007943413722970465468241122237813298302011576978852795265374138204880244823120066421422075141245460555464735859373244038438512779099142362144438787775975762172402720646496683225211091558994932182015128849680940015526931132165697030269112755487929173195377355890684141413492231150323394045233909381029929520974458456179896977589879392114961079793780857565393233296789565040925429055000631363525540663343514825857453482558331305105536439176978040748633866427642130466843452731674373516862703021502741566276460273553475366907684579030628684103563668467799448002372799499611587669194936785625894960147828407573500047021282542451843115026006351435053588171855494977091980069565057404577227017044906423859608600407503060157620300378094696084802352437590945164179127924232092844520104884900156787751055244633418946007774542527348728049866324667512927101358718092975704478759838288143252473097722035639312110907101152952140470764224594516618002721603878736317364375367668031075701773134944508609044750431194190768581396988010005644044450683199370989536817467404415875755378706922689197109625147047480342343148842709696684072930694542355881225702062959886301317717056857114721379028347125446740748985241082438598377836249327605545512019169306412901140261477844114921949134763448568390260133763143557469486220571572389836253463785058916942519940985418279260716040737935968391926193157874805846709424057687741056266043953308912474852970195056710484709165498077977994244058577656904370674367392001705251881360072165829695990125681089349959869957685669905224820737438370657443849058712600726137871271801615588710199180877695666388050380748829561453025181942473566430869603975252703536993982430948581734568632801544899415311490254929086170986465923886624618586834792360791098378065600360842021294805005516478003884642843357834630195808232769750757388959132124822283460048500709860553412250080432707598234190823348794707482699333554871180785941184975497762742446101012415956564113465777805744881345406256013294441765068539119764290063662824032964013663570871368961347194626617920658241381372956898406228751379367907006758517238367095922923042416463362283626114894442643422604358568296483629537216949001085624027161714975162666655958891765952394449565673342229295884414680132539347584438939568541185790437330407680720924730890059665976310413786157832378271300464805285576755060907340754450296599112584212997947647152396882928028866020817560741819233215217077395886887868023333269073957196958451774642820746406887358309444255155929316793496475528395574617427445329612308943006595995643669013067518600229431245490916870239037471252862623439351998889848515446140299546005506872954156048489254784372835027650083862848329929718861144756239461122052591107725519604400416944308258146547341353261884312280438838280598698528749597065868549465786051405421687721122935693412832923741231488715112988170273736576686755192531535294850029962013150276345550575659513923039026848635474555300723531329369279417604434096811276012427799698420976471948083291414048409308989133919860835985192860860724097130016734346568047641961251448680751213355305736651384657316804473126609348948150402843845948489152675310293860355165504085925361055440405936213384299150466070959355208590255714571217532915102186498500837447088754152598808976541457423623679603747209394556359203771454903491604865350437833380017498739169598292342370841838008364819267833274204733792317199314806643561101756583160177256606731512898700862810659176067830834250001115506424023268444970325542838240700937413298458628963624861086973351817200790278997556366725394582982404217047168366765970806579151417286700587129449570310818136803812407831037749037457216963520908424395952102550218634769212513562838821219098882231152474480714936965795984705695415816923516992425625538189662096546827354637598548436974337435691160719119750873191126123688891842588518955739129749700635041136673853913461283822597706823152955020419933239589332248329452924944548542807877902151501732779146732368683776619308035288930177145361056233340681186657533914661155099274264358824781703407795343416326584036380084508470301834667643923597200394109910098275573206086282708418274927177090775002769491104059301943719375831329196700772675964463168723201848924362689054923529621893860538917564285652389885848615843084380568850295134355269301263295977248607298152071276183371769187988373715024996716786341547162461583785135689558561382631558505862813622570458300788551233975292480999857363136956377670504454701329001387164005175767742946383163037799906940633792312975049149853145333008221039315260690364299839421833765878289047812667317524850831695110240502755007628687414273619903315043926917321488250870642216626164865638912202211710324394693330382072426249408813904153041592516037638970585983113438353275656095308917418499357367723794338523771854230800128276724972937614958895151296679609317218402488821725689047725602102853781673623478315296714558858344399242372593255007456041297397215916434051355948747134828517056554588671190537013752450957000228720168823694718009405612679311603692660056032435947149726827738039463271543518044248678715636579042543569341796402057747621102633131734691223494610678509609841050094917482077915208640453477933460158383534167321402305054335790221129956023796729713712347239433267717843954051842787884954159364938280907127632876164155734929176544354401027600467412482591594318047745346558518713025935955553314959931220914660446756885674790382308315774600125848944319317377352042290450986705720011600949762312531376277692960740917583203500468771227651120018029142209725029786513520248485915655794367868743130504678955236823357180042208535806563987191743595985761946304699791672989171899977025330441047973089278937343571457134923863334481459078395531515894164771010166985153094881820033933271300602736862735110532499787763107325979929320516813309224661851950608457561560503863879655861046206428861720625231823963220379123365124896445032292269445356725348114280872963581841113308428217351105503395555652402886414594301923197768289934591316972605854039382291549907824714648266840310157045675332703623416768336356918750499390494168713339643744624398827573171534518863755100408912189376071575909101086959723966698399105528885785380268899924238935096662965911176759271054743150110632497535138499229818167084311298063977720942945447201195980895633890086159364946156072994359235979661058559079607380129677995436350043810578016510879182651950108640729673786550994313860594951092171616299758418782881272261793441610688268323292826700231407170225845175989314236006583828957372776869821464831858365729691688071926789336251075994455278932938268281547680412371357141198498472299263282459348083302722657595784498733360405364748320587732792827258548007449375961091291230658651355310352133794434579158424700138509617866666059066545878291749004616016238073913743320627890093191326196424776834409389494827563661429444585311549872792633846058083501422492510833392903626589030681208294610921188153809725241937827312413450024801456796320490782663576955880064410137349368159236252454656848756615241509119951011127420686795640030239964366416219602205799153642163612782692105719261305140480687044071722462016571264339388202247356714159384204636080943097993356277193924280988078377092431285981705410246099177195472981933360919490322291357894463323731035694818617488354408087720517402711582572519378862532554143196130201889523558019712780122351296677289930682123704760955347671994433770450543070638688530307545163183240242828471783127708507180394495104076566487555092198175037997803742807618236442727172566651539741125832313230517712030555118174525635098424555468191104810928250398449187679691456769468190341726497080429145543186189246623268578505266359694218638640088165753916691964317664954932747717615463679490858330918733663980247943047218202784956753637359803106289804730222720102240216649299942019422462005143151657352899737720597796964549660625897080927799880532069114905601650228421846306681163919526176566373715426140387556093901151037236442416425140922957893326301969130825090968004828821389769733349812188542917215726793924222270459339124693165392481638998757612923945957998474334825061438747391430868278488814559639752759502303878367959163199984216915048197196183037685803974280000593602304356247263280178030439508630193867630981805767464932822198279279668685498661653605803834996751768823203331880254325860239218489335478154818074269430716768285728479752411656820486776958683209964130472008353095444616017046144824957382605304047150730468145925294797039123345503753853760926586490977811431497302706110400315952523324680919755508841746901638427981927402466039592623350268509686679122150952325798589412598355026383009171605690989991467481883582471810499867522958249688708150752595475690578761555307692311735785354647815910142893422879369240930987327355921223553686708565856666786160506861481288218975436692389124508903938087575216119800261264775013741202484729811513765164377602672583031808882146086787377063450814755875794398177768354156502305435944240992304675973756719500322884134126090492556077224602387482778753042024437652252831226016858303053192669425265942696642164043156268895123403626771530133031544131902512339521194573346178962496588863231661946738380800591198559800922587306212004047933663093508148141576521979723359729797640997939491132714690916161950625764243309753866781480382131541351022809209732906986288408648832153500673623535198004621945991603981444450135159365178183386183207532671618408714967100168402235211286969771886222649313699733435577987008220009988450136354131487229966018383700007873814929194167626300953055687536187688339057286763096053823850223617113705608767698243318064737455783738465759038496568846321042276594970193793397459991847708236410064982437247881137776608790255709519853544308209980791042260191531280589578881952856854719575783504155347212422649912323551086754624532393088056511014655578939039720064476326164213649209700710808899960231550692603521701403977438387935635481091492163579378267136407771419249436588289715429118604120276441831853053338218407989319847659621159956930119666865549204963820899987639646053510988931010036671246595445565371263558930218755802193573168948991366143411627382258779740299294420473207978935831956199584765038570086158713987288077603910052506869962818955927092380152205463409466205785051999798062454779155263343602900268697285276315401029956025526987952012396694767918223145295911668412449508865153816851502811193122180473213556302919602447309491142419186342095981990552865586167016971637024083749265175586499124974978069965160083375147584918154871753778290869670424131453529408777149906781999252901855458988745509507647854336645684879107213524304725543619782515577878258211255134731146961287465108447571598795460012915657710879324091612796325620896303613833910509111408937428452299197912472840443806865064316447048620557111134843372348272565910792715550859206028578355702122456735936223711377503482378368525590253270558725631723731366194256681176314688688641394820927138152626050868781788674294895266212790858143345439371168562670375816601398762325232751568130743903780313918387524430833795897254381079350665229258994248882394931811287129473278703424547305285768631942982115633283114278921003934110479655233553263051286501058759319212101997365144815577094359210321817182575041370692713362913028485715500760546173325168207285552184311180340235066951828527595584009806875695004131279715555354127941674563850656028956248407897970505918838399430796703006831116059893340022740155557067260325818606760766659212923656382092951539269865789446869762486935370948178372633128055833981627924764366409694893294106545902735964239230674755511218291226023118079722538436288368354357141469840832855396622444848730070994614490731073343835604201758646622482502721597662425081158253057013150428962305350033105263366738734953357327722613078372664106751925412037465957661303437094523131519770605145185623575668098336914464248629251964116192560198323735933590813942348905137031517300855433489167995522721930487911921095469743084511053114856998211332634430208386297099140694831437596875020285917597365494748002034437941410960921655300270288436873582055085478372346074130710712339289539048443262137332682981972388857429091875842343166309066173827998891630969345851810449278293160511714403722949907962298461659341385086555100650808552794196279025205227138467553533528986879404363145481702719511082954593564983782116214905894588961117522053960773180891912065979687504561640109347952844307137952130271021855323415275108355394692946097567113406488737170594970944522669187253818431993812650602131596543339705729258247126157458272673888713280612863416317623832726676132804028864622217610689933121448111626162524369818912109371992239788094536793453597960847174149293420957383115514290195113073213270771926830336178104536441688566495315154506300109891752859678247269937756964932500485551686336288899639859180094671605963718324654613357041700625009415410401411055924230516276127899342861870468972860016454685102717109811700078923240629913964283784043267031400248754268023501971122294358238571797250621615521034292064556932851967714845457827942504504904691618577670653906975585910763131434539924077289815116495606601505777417059587347047696476902784271135323950569873955069725879057358196701648080906940035632171421289012981388803495814631511670452893554380617758440528364693850868997182039349539051231594148303528250691995690902038510720921028588642622031055448036509947601505249886639319803534929215965475684950221105520774709222324808453329793891649891618662645148829500508993130890991093171616187644273892299881536132707035952646051778877246061441272121045318216741494759591828920028304014212929645751894594996854072451105968411075967357898260425849790645253195353271512368768315748140850965064526447384526062598367983225206039316859464565347586204451948265152560584135261856131938528698290320399425128421992408177467524837682184815880097547653326119828881376879385544032688480597784673783926786104031572167664868553171790686278735236064822025131513779828162988116971843948806130409854744749516260302289766582647282385246959572404634515625330809245530391234555877656528846697293355155366547405244531164802739677561236786052532865916693770900785624264028555989940824615741495741752061437811715182372166720885762764380012880620224041909931676354037030768307012593199570260690642764168425147474360925386969905875985874494622801366669233462511028610582068101541572481833989265320435007660944842124350788986692559684633976467082826094945477962927639116582294614674995359015113536256753319271064899464259077376477663101601769559075400612360616100977935800214399337585975660781412795637915704272445361507486570112510763004033406727756182273100928178884875215252364428936734085081406725526720959268972629920778964967367829246554864213846818895587244617503564087472297622094906848807187815997202701649936444961790643229550555525151392489624795378213394718614915460830020275344731706978955942894716411724911675035920986503431389039359837143870061126564159101813460129270213793600225954316658109925637086349427240789874765213251194277746129694488447681899040442650044766140158652883601000411165334579885279797811498523035899622486610111221130456071352332110512631063477824624665850587726130439504852536806369461221061175744212678173269005877752573038985128496926525552099917905298415095088379999539174783787465853575554337631871130384535641368358373503787135658957765353963812156105639298994424082752596412490876187914230365641901797369471957949487344067511640773702476787692328044194716921535389081215909638650940938781725848961065602793692116358941347434872259613626681126298731195354010268814996160623823722642281453774095158816814022174499365557803165717409047478993954553641581829021614508915160359446464362803045895112504721906567232239363122322716164216480897394045415328716136765178710964411127168709711326761186983617133524811233966771749389114701349621143552144518056074414635144616511513181808022684509906950053445488799642168896520090862498619810794181623111641356294729728494364059097292589209083774853195743013262890590532377539865592690233504785240044575656045188560588498731857852761770374502571440157088142010782001834971978605851330932341784876119069752617923727526647212897433450270319098187987961980104453799876129394981001820310509288006155529497104196943845034182171534206082759697291681345171713635538218745498624704845281307528179034878036850810923095354206790451131767004409280123786809096214930441584037565125988175283302969414601405644904812630103976901848626503505878056799227143159625019523560584989609980041275606518993675268038310031022879467182949558189582080335171954693193006664222832217544514346357720135774654298232515109267524402770487076967382089318597414678551996145802826877484436890311490574382026903539459858429729363616436725214880979417634612395838966549231600888500218003313071051909038196723879390544860021721079731356116101330827441991100968152908275885780199387113939619296257925290083479772234843696344769780154129831709533321379716188191224492751466234876193273131057459761913037968325749342554854466644456118561471826051461391201235724409627979624597691800557575093039804074263946409734262450817975693394895976105869058369583315185031742360983556789198852747613805101380592903037413748089047149904501367833011506876096522673566193135025376805619698234657736610186715409373044862240774980444281833597186164585951682074599038411563288232368108939251913269842940064597632486385034588244640387853571353129804571826553525702233285091488670253333411427554227656456131755002008761461308347271916183961024079332102259559798392843850757995352435446810090778396299346883678317844684666047939921317113794760135342878606789189253850001566785449887345879093331433347400412462123143928903816390299091117776326806458839302645825319482835996106305863682118225395108934113600062082885019597608381378159722331387012595217134902897804456349962471407964356466338608720026740190856796809653970318491622477317116770240500777149672452344985435771720204093315921416087920604769353103824576491346517757856235207692596621013020261139072537731307066386048459552899967243810281878440193221800678957551885985420736035914571004567904264189811973516199941678713620102171814370404560359951685243187127772985589938390848478140401021147604183022676189125397908142336679120575373289149206353362111868077381600641831429594947840259391056004011690701866932245827835942546549333082279354082538298587329168458767087059312293786403343820480334273546055297905080392496201503404961497791698636562077845852051827971645871857385706778478234132581709402211940481687425674336325477140416161099197199931214546075734259540630280462289753522404351630024598421241467325789771709176915815074555401492807972319589002826920206105792460192563932607578321672273417577993482066706258669294089925166394938844197988789198319765357742067819870580094468058905564185572172910368047936282589030025542110332470985879888887001802759941981599633576681343434079884313508939021440220425936546992846830009746384858324713119036996184586423741655596611261662241877011650909699075381552206057430934113669313307338549240431358184880799452111269214144098487976171549203411074479857502858460756837439539741004884746748295831279950073788950915475379208025946972343954716133878242074959716815014962904042568392331081832743982479495370259509669627759784760377723679130958205039392413681080340864710836861506959132394995771210271595993032745426268982469397762804664227150861948783701101351927715312642160295354868382964203242783814321493136484214975557322499352284856996219298316564686285115259399287269317074773352221512562597881271373088029863984707025830495764361552258397173486691179061246788616674084118342696732144083458880394021073243385054732072776544226356363084260930550526235462541888873988285400600943325067558289383948088649604246023396775393025332558008890948840148759429368162124254499344239492252990462924733570383679585143354310103549732778046210068855816084835101818479835494695276359162478163646612890299200899196360224116676970280194555958052748491098025877559258574764780955930486833753082530242359389996567016798449490898280921650515508488662379805255596933389392923382314123336179204676651447705161078371877379680527517088091918210427525172509512031435837229643167898995805856244737171697400251524780772296652144702084560883129897538227980740165471671173252659603396902474276919316722989740943353634753473971266138700725883684503925147002011755313392642944914970314209819979439332371385787342408687360161624266584643341329642984998465737049176812306580610722119098094660247899547641021926580054079975846556507823762556906167193779170528677813324877710481826460157031063197104309744399425430677276332321977970928131437192054927475980978208453265357181465363663451477036837451486533362367162505761009194162930358132209323014084563516083568430970364708941673844962872345856237356597131033149849819579492620947424761702203790098666253615442654231336902966785362012663813594292178438002328448447185664223947374423542895783983783077509220808532481448850046901477997019834719378899146432415258814583309663364651758414614994405097958501804237494815527777458350695955460647368728769333693221382017205454208695871135486792826059793674950265653020132002478293226900228680454266378031433382592583751248082137733476748818712474306202298882872623262730054863640476196245224990449393026779501579357200557658541936744451042301284511122835026718163444956376941627842117218985209819566522650210292917396137733036175316715508654609262429223510744980301950573657203112138773650917274929777788956750241878349690279918204746118536321832579819255590287070645457159375958813636975254260826497507189109238149311189916834569740592100362254554231748606065723627018559303237708293809152499969506235029331620610817137708480984006281236341801862108858482864100911132264144663125079255173342556695817662877872150196881780444258231485848749942260660104607974466054997403737366878396557434121173706199260995858083207214615871930638667540910208117719424804462434231899575892054899151917962798391029892298574520543027400366451304626358606174903268945182417129916430673082410326657963937394282507176760216278077870410697741249944887250936333892161279075005698128669527363764657169861826919497242736536011689598866779825500126535195753141058401321536907711835258328087329109517998402948484438442292701177541537780131141071388133015324633576812592797335792807204973771466539672714510586320234482165364849927931632262551320245067112310630582483732586214377877859152820832780810454673279758167361360911457197618273746222269961117036396166459238094229502024336260930259591025821863883505254797660465788616204055380334851295178618647695885369592940768327165901061675192342344396607213316455691530202151718140812592374350524818107797433114295454347612243502525436544371446439963320237671085494431153839329783424520514787541473919435879154382221486026765212928369969333079510276419386827070734244387525679777803263277493697979217335543475272824412220250664711397196307865226376758214493091690381847172552347217629963051334707483869260502385159580718938760442855965529105982277130757312510939540848961894292741170967999199769433246410196939815868686056839859190835251395787802934348230421470745602936436625211934881077162253428139914418315880314371918368623005476846767488363826731668649312640967014060735427106557769226820901647989549674237628668440737327086265240225296188825097994709864586100819782430662130545185449373745156140307175476011350875012411779732678675839529319868232962823392733690112151825692451709906807704792126814154368114509181579685788230561625493744373153849746333104934238965839744846801302019648666225852827722448999623782357806016617649607164768850002555214368743413815080286908901144709629292544969633839745052127042428081604954617812329905168819071046777700410970753405319300429984815060069541093984588481219334828153772843797409655339754032628438337744037669314268076082348334149060359582338259539436140728713478856892839125302698858271432683141597098080087178870294528251640842386648904991721422157276765589266354984602431684751164571053638210131060379103797123717954441046161897499409888326045879187478472623427606513077481323477097394665495765199564758970369943758976432914953400087549890646958051285224648460881596626938465480659319726028887508458369088012157303402241890024403479992275672768931758805620048478331673568430974319585881610515430647007692448702182666829818423957536729800610879967525512743448231372143576453059576975924039224477996864606497645810850111453693988742261735492486488429937609229019600559805359498196922715722106568868892314743444130362680411851079382466840485443157354788896988446993605486893889861675013405546505296079260754705257136398030375962485022284779854459101284632665490428073263760648668707560099793376663723792689316050406840051625597659371606927286434395923605161819472284641830638040956999528451063532091463707452243836111744375366274012393490194299811953970393505571336947199703398653074461646355600865804154437781671382906414264413767608786914013386554953593741323334072948919730750789981473925645325240169067126379063811463251537362720037479356661754236883645595217541589517129741749327693408452858293315358246652664486795540919772336317975929837654684837119360820762264369153228217394854381687045636083270139235288544801409056301405634648179202039507113656340475630921737190639403913513355566866578017259862690649799806543600349336445782023394122341926664817323092851623211534311656950895381657012170992317150200026207367497450416062479635873042206317142883050667874075263237638736074823049037832461804442402982803900711266816956867809459306898774088655600495568343402022008603371223683296427225950049954036640473723204709554541710534246858896935114884073103524029266409939152463323434963430195069782281022673301680319253040066084843759730269834139723679847116114248537702880190909668270960155879359045392167181425824742535427887073775078214592063889279461250051851080651220942575040660095261371652479770841762741592574914336628266922645505637089984837334161418181182728680852407861989361880531753165290094869015460010731578941158020637854286581030136577220292012024608850916231687778977828611299877200928230068345533925618656831057116116360932214311833530085281163858384212457206771145287534779470346883349822099660004239202644675206761497145840784847589076720138739803749698357725652372038388958439611131012848156741512680056811519864360809174819391029664628498840230773323885713637136399819805068964483189647318700456363967305658023217813793013493814409062364928627083436905780135789379943948275673092916082791539735029049508036026210048324856778553166808072693597326072231134139979562967865531778740866037021481140666158724795429701311476489056295573116308365544845059100175887376325339102468050535401724582843045683242326027035598268109132553841352048677132379873800290860880282141998769216184112526249959486947541328797011834014892392486642387538207927773128298917459614145261405004077386034329299633038686776580745292604552522981216131676461031745399415730603238918381024524043208901064574738466455153418889199940076780281458053461047144856752798780345477753086989272841502259971062256078876979017211163761510967613433766094869945410120933705808471771540256036288832144209264716734183642773823335738391836365121547332464826648443558206919525790090431879578857531475884846176402207452738791555765147537010652853123193325990174966791348330035110428152523098889290393879158625934443544868831672834772770480192037749424476596049246185796735098639710400434424331443658366574265354994093404190222515808017473071927339029528623877293616658312802955982939519705844559634483291725004540801630297718127334918486278772319764360786674987776327779481145586683826407244570136295803459365975460992763063218282611185757008834572673457479710705946178420831202676130369399369642392465076168673637664021553195586636259764774956169158327169287172028646114444906391610092144938009544132624511820633399593111638619880444941091709825921660790581473202016334244988718545737728429715153995274696045672316142741836990828272120335330826602253773607006810413773464877241179931822984097007959459889215715019504761559629908835280042548572385605490177280820492536332064328916171232790142658494086361818432674780350514614380389205971234259762185405182115036301784156572128988615845812628798759781485436503985290997709427533769912996940456351211901992855737767812922723222296383359251934289096210170650363173157174763516497075585757151618430624715068391441366051433998565495877512218545606967240742408455514975003689634532713599333648875519715518844499079173819459011821667627342776893952847966408523449374949489373300271924656443530516000629557192085356905924306484266781553148265785109711865610977957247505080417424505479224146902852111906900139646314608738087858014581426534993691856646143904426176808113980504159073006961842254554562862519505884564870459135390972950616645138273039666905803248067197154681740139975850312482225308349250317609061554565033493526383002259297909208388808361795022653104229016811421749227635184103740287094505527833665637967444419568662053114948788153411840740545338841474377091742400671283913129183543498943902201125662785932395576093173010805649779983934337475810408552975960615916759151875299056271036977847734629013804759790221276838007439630689855707003302401509548346488251190524119540677852787284526881476133390974969755685949959529949176458000138700404847446072217308854070308173198455102738023651721360868707840618534511251668722568168078438953805215213202632796579711593353584341218591236460878263287492250474222972324862407047026836413798872937479640190354612866564435760888454978243549992338204236556148511751116038689411643885679428241260623158514232518698099628474040083181673630586581241008150826079923036738946311776891595429267780120294863412155299370488403335828353240523896241281795172627722272810916899648026528962170445561353441930022676462502106867490683659835577687638693367551874352524198175388401372008408290214431061507015658849982436347521716657571122057158780078249636664458142965085975290977855941381873872844018102834903650714776000276248958140931968108817349524314764931109765740484930507010412592282532397188062480111554476410388185172183360543469637397058682766737156842373541644008795356618740088373369755804508108990250976401352266199406660478846107970749350823122265105264765838080181874971039524022115154963940920259425723005850870307384960617991701317036373369668600458810278696006144644737891229321717268094495288376235128410715015667289852655195283799750524059892745579759388510559791806423353636585478052051584082860523603354721680389982253987427340428911438718857166345088856593902520674909247944753753441705345243030049499754057381593325852103719429253233095622138050188805800935360225404059343602728254167328198989669966078445761767102709069902090762403518278959237163661417734094549959888465490410891502406687064777136573985624926638234826885046384712001691459717275191548717648927816073111625329231585146296518686454914863573104602465888259809387534028180689887403074163719510059561466163999831353713646593074813898220306333571980187326790405047169488198957539820767444565072139324773767236385705769188809766280365973728863187472089388137331959269915909018407815229306990890401046237692883698962750148247215596364143376373413603703481547678120404863865196508371049853120063868572304980362295781002613705907108610649977934069147260551281358656243201168970018647678291434923808965205224831457750013273720532703325769219538109683094285002760352961440304248313932504402860166049921927246162504790515106383188523424332010166208220298459328749973835110046040174687038700193019883119464015270637164374892998739836428192956589587575712129386649739961161814557129918359722924051520339903674100345534752500617571103858548811446341472659015607058687798313927374504940911043176519086596113248050602889498474698368618448601321529390474634240091427776572787942350425521329137320877172085805020523587998292792549306626464931057976675730214757715965048093549715420913417914284979279482607888080617479326441144566024830407767800160346780164695362718529474196795107971079329553457553300811764412056486499470229410989720561739209413269251280072897376370744866925819121801705497383209510293298437555316444519752774660519243534660040105294035941972649470532781562245803600392173327515566123173692076787966699043634116656485746100090333261191218698173092990135021893084348100618411919129207779687788828797122428824832707434524319106561631965870967417873468373553016595915222580052191335984975541585619979495872003228909173891088694893179756837637949860440837273281270189183013643205876981863208423097041239894149402435779293576297663578208179975991471484471281706858812564721702559925477312225764087398723917747787153924748084666795947054195558309184742356217269190474902660018198484294077758340511982565656341634964694551974744146928235617575138923261901270556989090264334653350601648222291344141082167710162186140144560679869930846524433694369455695281016822131957456188939593251777692520688616093293419803536917043053292922741096045240879072970478078836896745431630389527917166601008571738884934069101390449045702451193059018905810631697435580381747950425179736518237532589709139538577413406056890793429909285270260360607913176229284681419844244188761241947045557642856793859752873390006276663775530334639959694395563824626958351210000207835137463268756703200270597697563020181326554013879901040833680469634909379044181982031544160312892710260958696050123846941810006389353065192011046104491189432047521019231472461983030456029010159946904987549878357943540418896530449526698270593965975537953393947758335657103680782470040877706791070941315817750818916145389171352355467983580892444422995706651431107345529036429435916623839121624056895464248434022063995832257418711443992913241637907104251673642962208811546686978840639710500532791372698337584071103093007637813747686726897379760992943585799814104413016140315188953029348926974386494056358220989285425852690764717415088047221500710841959022766331766556381700932061009073815247945342936461824091290366915037949498690004246454087199804295098249069308770725560503649954224241388873712314429724450053926633729293225840098750092415832810064657367069273814489988125244236521693030995645855080472790524318872469930218299638905310534521637455962408201402686683594208538989645618912954292345392665899090012477547017377716640774396174757346028935536134212066240063629223629792708185417297900306852771036733475925725889964329973137498615868849598370006057318522231822704783587324288498310881221524247478807113372337708122988649927334683013047044788209906008322233048521979791886034486788614866406838219524562180514803527277017699598823551974758542284942766639500104209187566929033456686750334790699868076593976330130465687525092218254059694141742705540739328358146253000315639925939592557001330571431991788938812525539369300732559798813208931710687063508288464143591662574651236357969754058858859540506258954177748002898222633134883185967981124822261544148931469748676145249550877163318679735321143747385678900622815262601732535466300934901028639200264545970925354195253881686631236810671504470798240512070668063190198755202488923050744729456173137856380027373662530029691225515896877373099448110971555280774053848013538940196032382554047716254197721416239209283081716271191029404150879367605426893917040032998280960571159497501568664358777827092243351526120390631081010189942997790902327622860575920070152217652391827869749595817475071206882713629767438214161638564107538710439298791144622140533989286288260196457182819542397298762715279941308533443743955105855796047640185443461655861132752172885161389524159967795328963421266546922278493311676581261980884177546372606177628959418184708942081079145594381113868258031603747464443922623165176053078467728506006927883978108097696803231395534955530374986977494744944298218587875998405805466546902496465533559012221424452100884632853624476450889278815166871954127030114422091681743662566122150058959527648218188444954885277329165357692149380150147273098229366325167235781339648396304141345081611746314129801308358017050046984857846325330176361389644744752938315969197891578478955006723975947047089792626664153808917923410244901680628387853945825124428372045897855702536487168574475002976952135139459646177402084257867508848586546379630602674714035554394517858999633432939472354738349900000568124118732122566105742979014936276260381545213899169166746726496795295370694511089194023259051552795557315452724483050544008942817096974607753402665494713277573590631765005626095511133184436132178197483253462199685705620284187523768135969129521046150300707486436887073825260727747632482530099558594534944554211227082704077686617628538369338082337557960321241821586453944564499471657615751728409294874519133603144619390005145518715802650523619171562577969931034200813851489765554441845432767291563928220213332594798856077851767490752628837215831517026954196276725128074787085865829232317334542887490342118506463019629123093346877865771677781747722121470791324293688313921945738686521845875372773152905642556847433333942159645350205405157180909497201253674244826525451686605161562648441911128615582936059991141882656104462526340206619669790254406140600963479860139107843732833008512189871869240210613939208723857393641233052092284048980015063802899080717401237311725707521383330754592457361323984385001181174322718827572174117515142397995128840283209883774059569301904628411793499407381232787711461801603895566600567840130165439929130300324666102808109901765648803729994989244603937382956502916559478867994636358850111763892145451547482615501839495056689124125361327452365591306416789419738305729391725101638107647635964274849350211049058374479872471428437419254187323372034591442992491884107118119635395535382172169424967217430211395249432810734172991801083764219894089651133971494771124216679729649955457017030418707945813165268448640492963136932811146847595130496650069290821711285459433349821308941545604581061203362243055696311389937561796057311939022525558674282629158093293794921153923528985616651705610898341023986377653271216884989176148506136959096018016407636505073607407857510824434092781208835768828978604965799874685950482573839402155111476960672715168012688663355001678712097462144300035630678488613944109765751129160053833155952496623282965642577311343310021684619668890402084066253901702203280520450825460671393660604450517687580788485939830274811931374273965675417916513003416619973274048663344344807881955501553121569789964538883623180402702173419857841163960519682511490205446402631143684829578950850806574236274987341984533130539097815101582790822295856553056774550348917105629199868686306598353924139067079137520919477755133241469019560701195850808317466731933369531372415268861824175336506813981373890750179936287949075360399182619870832548012192418401705075335628464998395650221093562665414328989824333135153987868030605610869450533280481035551571117831694218550871858163281828919109245947861400873925027423887065178450210939799973634421182928817068117835731693846600407135143829999661443434068937597772022802215332138642814396796893527766779139696625276380380716221744106340344845399923068098302729366920974069174770112320059026999924027498792184898303342412986658093171200701462428426118276225943397267299122130236132820108691519646456250049560611489531844104742534701743146194210437280605056353879875856524582977165666194821515454126438983040919171891143174953524548751803125861960005538038484080614631550056300518221500943031750744470832643931022139599598968813628227200281937145281912013511873380207791067243215983083359728527704165272389565187063100393838880606558194334887514387655767313272294353748387606743799260108399600399287197142702953510742569272896172098581411502104835296120443537465386466273297098229318812637172089725803226873011085696568122095531577653549304960023826437448697853069998149495303759382002079466031917710010500018564679633032421365651413303402182812715493901749113840716085184184771468070251509040497901261714416362821453233892751890449299065107794280167196436309290103185230714783565375852614544116406827609950485808242978831514984034576283078246322630757151347467656831261268057354810719908758749305290355751803063312842046486199826428927738062793785600491402804544542678490645427920574813199523767000490198726389399584561343182847290446260599837509146380731568530302155292659820083380547439488462144176759048644232248263715944853976160617143442530668651265665620482836439875974273426229294026907743532185962538572212416281570692671297610697316820423244607556439429551306865699961652989486687791393552351605264274490186330080601343423091507818134243749328692240159427727638870876219450068648918477938707617609562135223777838611747886311185024637685155137677316956153713264954907746719286354106608544463397595872260388170053877398646222385815738742254495747044030318906939904068899789901882370691669694534444813439982822050142571909742491693132379439359180199793705499223094064712537275644369836380469242306130256099597430668223519726884998150272180930387539319843071635926088256088553527825863222865164334443177058619589343456879440667369563671101419903147391970277280765146812100555131982940918515305976826465270056883897073526272168009585533057927582541991288188783362240011020999942007533253906378537894535376561459215896617177385950056817011194085210567858060488376381874348618189007586107161274215958104180384556268108308816535313887409646777465199402679800117956272334266760015675825575036363801342346349015695978711296896868277153584544480022051395839018335835266701565908471905560698553225188231641454787517660914471364490059396228548076846444157799865147796482100521452762474187100366184859729698614465718742835531040622674313797209460914422241193596839505321306791885791536485932545280680441654535165205951746907052043342896686003053721459614653752526951345896198270612525220206691713505449393070016092229946755933896739781228473510950162954326924708273874761616985143122499774716741663620551075144905860899537804325381249733289691508737965853000689658377699109700125928915138472086036891872146546540780314197131011147094195872851332159268797833050576708814336056617631462949194984169922392052830383452032495437803804031524583414293642428974350455697287596586929514020410368461052409157403477583050239011303698491810667594786649017791874844402285345137684027024195950473795951538079873682458907240566207413811605302873227768645596560849366148121133668925298612660366506375707520610378167468040039062155835340178577105329613165497409472526772640081048245204441141276988142735258858742440242473406992192980396978537364983435045694198019468723019733263310137967235780508994094478642648621923771923808318683889053992790976014260165622168037706458156382135670123957982169174216664727865807875257152545668835317433528438225845596278884568407658410990286743933879469590564690701022279916631458751596207672074222560669376599490188865317220640552625345003741037637667958308484661458369193647619710851055827658429884269882484163532949212299476196572530123659195635858824316763859875647286359087822558442594701316520698157494292190330307833625588750102141999481449599881566262996301444965552519825170825313310705237877144162544522412464358304925651449177585825535461235787986279623837949793635870080930579174591243576251667464277760731826359384497964197309890035245512257659181099240015175128656165892250625682149933100537983071164745367036159879176072718449371185885157786335548709514623783230435509704527671373430154865137348301917120890756946918396671798061099566370256272378333449827689722033364102061774029228990966106615970029353353041978390068042169807898016689535829197859073546544835225735333939328130196867001085014644773408852870401804823682276690573739802024090695982850536323312222508433231775362638043925184314583670306265364158390222199378763604359466241876735276086238702651959671500635808703607208055359452244836463881945497708815353639589173175575559746454440724710037308848388320625103141457999454055342732565482485873962584554224053578218708839976887907410998741339893085684465552067102342771620943166983125557938465005911145144779228639329580922499577776018742244615327341570425547767239844252271390943048419755294276881216133370510858335687865829277595703107171347728817113216740133469253973084275007162988435812424235467524932027592616185168483523052620392352355025627938690233060394725597351885322162626895402142575964315123037749839074865230683349723527547983422162395403839247844761605009106838626785966789038611531008616178131045507270391542849227630555066093027405737862030664564919406228801765787660383910967986066829430169577460514413586181598290939846044440077860783676393082701710253724661670450761024415973112664292640774334577825124009390274629461933085505315689069203339083270312928175774133146345570735218982289839159389273895734173289089827629163846718966823977718645467222160155729574003038138883290375966326118506309415352548363590279308521736633943390090594665052889605135313786557795640983506255057269115381682614014529927259388719224482970692236604707931086907914073020750902506563634833909251726943218934623325592767299393194086068706999002669868434494466508102912364484592109814700709730534287543812275656169958258594861727923876577138539261774693000516574230436157418056300189336088621179698335286646442234345102185026160896914075072806282326311066561244170599764113170992800660099098793027932920501362766515737406427399202004931477599173795226413468924950124083437205216694018873125049028129055665993582228523815664945579465177460456975248165852139506620279265222039262257644469640848682338207308982970991963771429152946102157671665045238001487287765371192743682679368740292569543496690338845146839967391014806883945591928658704795328762508236274911319718025557003320933395217930647495562767372792475772981488783784132307316526550654786252496754353139353852648255598278430511786365075796644510224681471064591247971137486930933303442307398880481340130132472871859079078530621839641863321303891930103956676493377981583894172169922035679668722435630316155830708585992819122235528438379960032968824444109087537682765619859837400758624237139796072936749231267870627552080172642763395325524416904952040005040160898253728793297882466045700279559457155505620473876179723857163026994927040947216390273072469272614299257437732014009608495608995056747354773377804303618171012775115938265670484162878618206220433379901329156585277814206582016531031993222084515454942775434958833549118605462272499454055034409948979909827053073685382311846158255359299576567300851796680879305793813529541364347604317714501212177286171022534712814162547860942484688992053671786669086600505833831732099058491158732745964275093510753904205566714906455336637642824330940569665231065360023249013457661446824408944222776509775655049092739885748648502827315952225724240971754820827727592515330473224769299343671737082240563284688796283001763942234021937207850027982063306324143059027656953900676530093600011599022178667359944339176981894179499957554713543516052892851645178006240564877667465186003260210647064497379983060850934837807749530223378097141254472819896410000340768437585788433946281706617595366134755146506422383015064069945675520427950913027433576591803682689304944184156301154835447717769091348684597784569501454231257027188339607745037627871868541384471032983702813342076658393956249741527999566967980920206434472213674353339770973518659875484150699219573241061595120313276694367412987845476355518398661693117639303927156220820378051864854431848156609769264463015811346744885436559331265043163673919398324777004102899113230280056110539123181711200514754161767022761456971478845581107023450571444440825180082767498262919447016199880153494089752357776447426270301731929032643313418098801645361402122645867814034211490785855396116323269153263427186213529375979386907571267600907275871450060962117807597939834740575590088120987015329752968739901780990586947399896526702614634057013724613934310788694822979247585120643527843652340181040891344086335005489847834392815570035277661330397963747858398195532977526987712978104425045578446758383573727917227569333005023433688470333649627519563671614031377759569530331403281799581167346652279526333987294846599395633471333949965325553821043683507352244496440663678059655832073433778280098670926564455164843594707763565636951347351885092661796279915965004054084691977602099949030783697601791789652756453732506348580623892277673200557400562822283873382125173313553349528093243475708528933666769975525341487877515625136567274745356682410327804126121707812702553046083155273544750869568019650930599157926531520315817164906594653568987889265791040827055197883288290326161613293198096957342842688602001282710748022231576509408392315818098988228342674726484288847494964000659574865086597258902122832144221782214917677557327475865647183127333940403924151306537591466449788657138670650102973937672118472622892283276620186649553177029640489089004976488772239761782655173623272057678536342540758659425229034071067558764794911648516779749719761589398107709085425623055204315379279676748660097754744922513123717445347818266627508513612731844524706633331837250487737978755021204402501178385246055992738918165700547550014183820122960931340028915025649786965951851193581804920636778618485843456276796009335560120896483449529227041090902495670408317141623331283452465224515051168156477236652712627514194354031343650637864476936702704832037735311322427794341544619799976422195250437078168487640261213450506799868016326601577239082481018844421063887037640132635328217925630912535378331222099134553275585910843988131931311387965489284089633390978924582017796514974366172353989166349366856626547325084296783803086528329493157458687435853956742505728834882639043443777807161548348429284577033325931695417415146941210276681609636879016035768082817860886739048817877537965592482354097575627514305976463488821403645326938426681432259946375581313281920994231292381714552603234477204269864175106540217739430578585921250776790241208826051313831961216854730395523888921202556323994788088617502039702845031718657969016570193572639042187235786323159289278871338092427538420284662225024035089153178182369881856857824138285441381430955240604036053158704236417837655772643534266224598949491579143612984665835468665729417926078444845995275473828492442318418429743182373011774370273475388915304586293554259474445191055022088327770002753732482897597932247024165614294590640354121389142421767528528971266819040039968368951939233949403040007094569211327295884028410913519148926676894159625316729998521687253302082511282412324753895551440484003547108235790713201228287814340201946631269218408460842398482346973512085704431969060927488977435890345623396652698030827931504690720282227705835421056946487043322149800154120454230438895920812723220579539021436889544510752509414168478655976863732939192737376066951340099252141826299219496811297936442976592672528310559763395418018133195758579991469172422443135475955361742632770824751685379092272757840102442973422024506017401737037892875178116378095786090893351095295524451425571873900817100883673715977925775790690430641529499081117795378766469434197133621253381020673065066515335884527068097231410671581263638494272873412344731144131215824751837518416734754370067448238040749557107731473678141528833134363967424506342974613385841724306794271000668988841614590596026997630761377673840804632974723694999999410988453070077892729587076560681417328658379442335619686745635212893192694526075247782484877381505413723671939140099426848105450323756846679383517066563524396163887274431993662371899630788666989288473709119723487181157388715064314367531152945762292831699736595799664929302825360358352203066266025510233950593251839377224703412172391059018004277214333705321724047305402132829074240362783987497166452981691741851738073408631836636850508775172331121334665210451763797507857795099394621430547635641131290357218195756270113455751374681854377888964112183112825977487996039928723116742747382256423622810867062713158115558973618470672984872950086149355173315388156770475760532495069420193664532084511794395784907541428915783198316573121093830065373657843070103517480804395919232586251315210265250507060266560426603197448536956062929200465391053293568418129092394946387759452786668283020757204027626124432172116007412262356369271339907387017232183657901796440774636819074810953501606531665519318191793277595096999486777348235463816582855922468382010527434862270585095966766634868002415248393797647305420831851996056004657973908358617054696436453141327250568836472013729344171798921948927256525043072739965912953552869036013299605314465679635315263841234830803511450767047126650959672204969786375229880926821617437993090523789143695466609792448749609496882589453242712127344561653514024771459619478000465040144770365256527673019579315260930159369708716127844649847597667869313510750110796806971611366497373598926100578861108266445738425227717372763977346263771354139976386501466883028715394789196981391668845909788056183443966684665614180818984730342723006497116394054451975672909841736782230014825393911651168125475677965117437124725109995201193046783661591690011045884086023670074963329539014993869319302724330286648251970158033572752678161069069768773501681170261548575359929343782907005612295070684672460190211303558628750852785900983495526811757210667403942284839383307449285518703814117180655315055239266013394460925247669908522593245930480196809141457024586444612775372211904480665017046138411746766061203961543597927794756557747518804030876076222754750329455717657786141603780493746843611698444963873448238350419858043640389653628020813768512151567484575282622276586732938789878596611640443157446438731636575800712999173874258070770417368442300855299937255916609608001334012644180725658242955580054859513930937899076913646647644750414635959187849478640224060992149321187580893441835956957318260451229309958341452995691799863900560575063973097691477552896617831954446601526018787040036802382850235579024386988572509657386970502652714021676929443712097688299138059240705424264120796270308299763201586803724067525063516502237317228260100717126378198077633369888110493630525557221519656141213067654921367804104970772537264171496886800285353058817177075580751284313080102578977519828795150371855334038192161263274930823694363136547837826409864320880834772419939535541864222493377189278021701959810241880904264723435181803456108924174215829534973124291858349743559841679227616246656493417934491778327129463190446434117943078547743073045868333729623514979178195371754998141862929858028045982494286516132444740426076608494161419412995106961894383779327078877446995925574624306505725706954324932002837626412233590448638228860050527732018891083150794042905445913579881584963540872570747744299602916303988602963584382747260544433319763509444258985146889114954525965352967987882180621452950548687058366877234080649446295930182503075860300854259432653441565912611985032755635122016232424874018442150465902614120932596982665002931332681652273578386435778547678907041800490612504857175147782484354566202480840934855272034215296477286572513607323191598877480652787070406897458222569003416312359142314551373602832870466477594011411231157496017124580620742430002182986751824189367890191956070761106357600606461198691418356799623354859458263264321187017860362609404338277918876953797730505137208411875560909216996405345411784847444963406715712187411630429872781405283975072974956488740533166356981417993114823566202867744960581634844486119636915519425463709504262130472691959494718479435076057719954249913184491688866132379662774874115572967113864784056752962164910983063575332205868361798329427719898157831591877479240330296908760737003392369541210916971965433519258565252515257887867586713143318962757989266477936696100615821204352323324149240907379678277526088579490647916735007612933557468109563589570035575626745369420721719741415063205397724549906988887292373648709459084744793088062299029995751060900431137224787634870102315570295351786152461157357854378837660279769208982758673005403177290094012446093538250488979574647406350296351105073492506906290123907540437866679227044765412060008456044829438268435854399329640281024379850898839883817293897020010651223210393167931093611623626766086928233202177841775773308808981807283582164882457423504828537585738065142131602176803733904200254296474541761315042978027853510278952822873673224588783345908254877030059426571240583728166625623217370994098195073400567063624124966185960321218666774239276485204742850520105275075253840688437035903833053918953335965779515984156917141132601185775473062128724904392136924648232017649533779501607390258044270605418366192381821502177160966194084233264722056275447120374278575001176182335831111476603531443612213335454656730066392876628329830029370967999595289192096272307405309850332551255464614747015685952524415912595507959089859052071220132984195007657163517194960626367052057060937844890114220258469335477034500809358490840967286808052174327458800998492452773699268076805713683293686639940846643543531950174958723265914751852533249867358458183534223234499842324217796796218053995772919756462072736483566966951792817021677609746778212398739183599846600239794110341729332929210818116669334657413206596525582788187172047696622668299548960279936137636792249820463040114330355292009188584780757707378187263223612119396670151473452324576796281238259732434944658049767370860619900258304612939635495446752264717062814254527351443314370592724013160395347340043653357753835575833081670403497082760819693200837623907678195330089484484678838856885863787905823874393928484410426807396518982942025569328958097649559580121585246640347684326348837266934022923303289895155797122104130137462592788492769949351875244764756412108730820141721600297429519300003177957738845928961981594962324515842787947756610608079198735519219948560168863998222631452359428957148207109226719981201931514237256129959574461279616603826380309292931724667987583141425832050774814762117859065115363844917068592288412683305095963418353535210604510328098246349378923611848354532785629388089373115275654322528480200329287612530361246494911026223991963788533588599857363327617684817915500610413993046823447895727175463586168807391036012151306062915431146259170510177586218987904823747975751351261905355253806096532243326517351590704600113736272400415873889551462476125850937977633002175621797576831536374955357362992902896481042399034348318298418198235495054535515833865708772650931978399943664737887292152781351375997152317601354502260636320808311212105451323767399100449147338440441066694077765977624203082156841517036260152749086015953107346298800742738317407326095809126615925953084157579883940936734150469761718084534025267516637302509396895740737019049444923698591632846974396750005804937563634484401034621933534223227583465670513105244469908675091657917916040993220708985950363178328691925146260992138061840742612569338821011059422470712998267121928164896474563634322129468739971406765307867780526729663496111182557230839650720591474693966407862057133054646328318420518184985200979783186628556521400859781091200195202051729899006558629660405368261958683944983138339312631107844825650263759431565595795792926364113116519312614493273960303287397205559040207005635004077673250027702722241468684918336713280569688410569126135865678520675730481016076756755898310869697664735769554476792157308300713646356837375405618617318538104777227696749511213614219982760833358287579819373662142322726473693922768074260673089938645677916792433279198332802037258348874476375047810555100135190122998449137868688504390792781272809943057179903187834943438597793355388165852633568013046546593567908593280551557665819112535711803123742339427658769737700954304112733119926181159505812834784596416860427802670208285395946379171162416458373082982833693279638121889952892119318892666674401226817266820179037967148868147515238057745861022094051342292678435327906749030878187402459341317608846284671005693181554479037129660774382075885166318291059990920193379389367871626268026967973768570353381334026988679899965024688885878804323792472804333982049454761263105948479871941598155305869331143290185791269566159211806542536478107677688709405324292625402969459475540072433582859049938618989040418512855770948604367343371982893345177210007096349372708356815193799644833125315847240973089791044524958597280267139222425109841136093483317515112818425892049117019050788720411022222263697784232622849713608621997280652077700226636300589758352991487887419345738521566975027407713836695601337327251122131826288194794479726774646084450701248506877764793139841147626449978363018582801249227164614467940892899336457744134587167219521059702116251353994294059918392355227542435758839174035169713699456440487260288379508775319548793023055027401459575297773344414440332301349180091404216329084032588835309801391612072035622901256474706176678505363844439363696938529445835372963769048929838520889724102500139440570100489550537020016024045294833838101796683875394983919922418242898187919326107435408733682074301405969957694911571144563781502539635875584732521001958284524745816784794471538077933079795300429015266274982498489961497135992439773334539004153120174924136441854594793995176202199042387431614196284545818961550317310749677340776323364200390465571492016358778636411962329259469721689734183335087202652157358925393887795752026769861553946574762649355562065699810693497583609171283587700251440503306779725691556563202144527474031214421272864574873477013629617367152173049107203512567182245101157263150947814308797541475357003303137351481810751039418455166860750356734525599285430792523612061295591451858416725614221656621132146028359040166572861131006682701275615511570399264033441912848129567132254202566978347416047156212219914637484814063901934780984535966178588939192823857488595870809862541275247038003786477487281412014778436462037375653869083924794313180280314911583388944145212339972772498321146417040681838344194637299732089052722173969347211269993891861443165174623601293505347005492866937753171597199051163827626001934468551958285211792362470414763893014495384769082742813142961298294830560467245914742618355822149069138022162089801640791710759332729674999084098368413742210647040142743659067849325665821927013691875483058494475143390564738143578724946016853121544771070659422680708901049890939915028584947599348425377447479223172774057483769806305530704794497240001332503076048922859573471154014590511882359668929737631591360455682027952418527989413310340042514491663194241407323019740140082848706709878158273479846511647352072872648248018324567901686079634462228648724891014899643840203804621198664859817404175538552688163204790901929429637725877629831122807350583676670594026358219687935021068053411176936451311163767925379687320142132330167222877781153173098494419610599223273238243120515861806132404392350477645112982241350535601437962893150552131109562591800948236947382013304286390073094446900774479816934211495102184959921574245386625414995947482272679499672044456914549527568487510374211956426343941138146589741634347015836846371397841314802133414203078664818593776760098197490489542372632339498145929627872647596397259413830030397240348029390404303805019145795335631800289871445603547948349955265905694907117955734646411340637125016924339544717986609002308415802434284119039057945429565208009425420010272148423010326399548299723332253689170315567067155050870570297718263812977881892202825847035732151723393311101337458037868062726727018111838813574847902606386745325578683464995555210013693383318808025826399800286656693254549167282993663120050004051339442898683190311388317679080619740863737975214733020052960031985637369962797349214792020524120259770370007267490796422409224671463129710775731809368318034719125097072779618386651087752062953730085215535915176984589708988374015329012844996412245109020922486929788918348604109722279921163733272164730349194257092433103891825632493000221311816943725041199263011419507460301874035537989308730987319030883380660372284852262060953001522933176582794521261780666474851108820360767509374436199001024667478786570087249833726167809260842809566424934824395910009512194693312749341131802228623874855839998067283865165504819274742677162585240292903276400005255178615516927587032372405500693781451729492477654607457526649898566497480248203239398060296752338746941665635671419155137233284375530199536500228521750657800937010649414851413647125448695798060141364073267874723768368746564495329054811656538446052374044755940280432631293464205874871083011490659073160135859781844819173912231408794265652589833462015436359467368215893283710762295007767051155429833201776867308359026207703086405696472796689399615176703076162459388828768315336623353749995752322354714211217326919160453377499797212125203588150883207695454570064799312143478034318668892014479608696866466921717671542907719036809897058798384778900122781883282997434437744588098446260694516950347079830008842971652843081500643950008745752905729821255107157287296184691330482021208748814134646453452378681874400072610611307234397340203032954103212225163625434978007603388296735831022265982863566437651905063490273882332092644731482561490297641600615015787563482417325216962426665781796463109157817412505648610596823148053558893022130664189957647375877377194796611410862293664496654080599492403228154740603480577496509409690162989550202983490792091403092812599054421933651016371960187524759477718426908189385906370521876249257566799233285188306457288112277337557052212311724754901906480877044888848380237216688260833746913924324606898946118188520452685408621008325333208627118306249899945746486368744970920085370295898182189562716434638824815987992202341488631164042191643886168206602117291902581825998962826204294217185245672789398761009423815606288102308839467589600434406631011570421221638018088047632037146896248917993862955342592392328880132655769826773370330291852656490287287482159893656957124919812644639963447212275344941402081436224614553269475234713624121922775049601876135435354590838945408046487808182617711998447585989261274652363298005615295596368686568145365756954974049473837634209964016450054350509193022160717904110436058789707463053123861480289272114659482108060671480809718854797386286622032591932966506987353525589265907460865437307726646809376908669073318550694974491657685937795728715489351727731009982413500277504748049137017708525760435565772163681894870571554364605804855249068429059045715880241655278805260537912035269700700409440920615141338167909636418625825175884550325398194995534897148494358254863455131710403021199012416938550056081121217531678763219033975109092983163376677400554380152100512260725347988315684313029373185459994313467732474987288812027387704170755906709370831775133349293770696163796680551270164310131686049901461979823063473077947226129300346246300467809217735759720338744618933696517622119749963338118540252864911016086725690274222743828372396906324995874526247689552104232807523540849508914900642695733865912610957729489413357674562121280389516508006449774847890623392453092491349237982059102740022225873872422623306231656745281273708203776366110624224886443591507845933292397945429739766212332332757817241601843830650093889495856225590471311725832575769751303512756566824668195231428646706591265590633403890227722941110712359824951400459330372575255858702752237213550116461519789984125489229582843370415229820003221139210640487915957837136566408709579923447733392511293664824666864440846046020293461672577686953503831531760573076024198366726568122236542471586614306141368138216064106278159063111975309364941881894555628557687414378945269241451354454941690332865686171156892546835697542513115047877015630719300735176950786965899294370909322192982176245449103197238370556834968332329967563975024259710033557403095159861866175745844171474830574109633264921165491602281174368334122445269505050496780243443088889413049553591780487147827508366453606747278343157854834494759947713864766611166195326441659368158223619144390143719431683436301047412845544607936851949903935728280296363213199689070576340355747013362449109191713720778023102970029863451077600030765645575077758903489531623024239570121870675665329292560790711212588037530071435561898013961133198345170952708372960441514587586206895707542549405157437239524523938506733528182604165849063400316714858301256855376433268358005263302471913111076597487491250469124173177844994903855093325413384837675615348382956749281183773142226755828430982702027321930133419835065997831535371060187336924204970620920810145023779008497962977617032904178467529505198526109843923338629208615085745660864689594983554382380528872959940586908593837708880650719234434736570207429456246510906541954294435947437113814937616446373967404361006132472820310034753458803944182912142790170238657850252806676744227266342995832119555697462892459872327526387785777186252726341466627032404557263344422693169651056088937918823220755836880056976476900071979696098200487176645505272347899228083224970458987621167772849219131327863627495569165850972541472645449490998034440227446980196531868465491127392282425373081416317481774299168883174061648981121275912614501625735112011803834903704090621363673930525474327290049279931598506540477152121005283166831638180078028141344608034236302876444028660917409740593191408098665614804746031703769158751221929746179543784667703533790972410287615221780127257618339752547036247235696377330878734853420394137207343379660437222959975466324822416251007864578802496968408442691110581200410630104148932214985851669486012115985972826612283828074872292486006806900715482912213653806195507358079369993433522314483127197926635105894535375950509680055552279618428356355186420309946988375858859875729509689636438855182763186969401463530310272835411329721454265383684297487246572973664989948908634106818309808715946466984651864850373051252269004513536530232033047612304843799340655436628025890511339544485671447899124181934855340315334094582418340975026955357637415743164861989265030246859946199725135735929657669617414200816042100899905663912983191039791574024686471296266903463792404183310697087061172926001306938805836370830215982675315699465331104544109373382667123040587167776739952354957342775135973246394322476658418212604172168719768005035282590124504912173095893705108665437940290568734290773004516302296475444911103016901644463805602881127936798587409831824547376472705696338470862727198602098135762996093574035627970482478727509963558043091844594363630091891351884679693725389306012618621969177610309012149213749073491699040354543322707970352143113689310416215364611700224622782766908712427662858182313509561614969124417413737970155774419903986272951846909597079394194994320515914384563158603845834417783238744449272915216358522693486998198967032793295294454612037470238932122667586329397419309546088214204434457151938599872039016829313207004017698523117816431270897245288890064774933407052622608161566560132908190603926486190778389466283104084328538071454804940485388551691810582187107360596217075491846422343681137604406957768740532178060301509965149706707853064881613040147674723217111864011570238188796933305054169189666660881518468161324240759304757471408361392556345275974443696118110914668221853343871097949582645532625698499453165501743334310220238527660200331954460893054244634180403097384030936687850864655269073988054647124859709312278390750778463203088968495877472957558212766508300324660590600200871315112582054065454626499892727967754313493885405189471153061153473464126792165965129020015486271499345321998637963925518218026782099234561393607508110269997351763829451481157436203206938807124530336668937090771871206039865532924649582941799121936171158597709326602041062306484433840967782730732037333190375934402985492364634018405019049533829215148805787260609403017191908756035837483769363773399379117347378259593939279189369128878823839831412566722413282024129630403189904952976226962284835878747537465989712954880570117312904629506330670403026472937697959499880781453025064615637079859418683927189991297282148892890331382495411139562708656809286772191459695505808922535213603926018493366650692035400597469772835122548609646808578961059229710141008287886920649527711861306398394089417215550563498672679458171494796470188916001619237689428780262901190688380101502548288089968530453258581767898149765986734565928860441574569711551511380025903210879843475014586333839434548418712210628875136992848866646949616245707330475328011540732854457285629541360917915297833790781439680231111285258607535373725880780754089826854350562974209157830829031530183543127300639446117724201290231696331479598530798361250220353720932703572305659944062153712470126851373946788769367557731594879164291501591935091141218428054309286464779265290119846374806805874378587285796289455265251478677258695279141103025988854751377274944252020366400070468979653567554355571675486316012529195971275612240238106882180001002555841271962779652711605110888436508469941816099845003564810611444657139689131147576721377003457205282917682381785052488726018033170540100906726160306284950429840768671529176036892012139016372153269801478873180714945145074072587902087939511045915916548246135452225540614250798460075963008361668835424992376341317205135577435071930404579494841536420259212308137994180067464343956555404665341607263276042915829230014527008410688191469973909053745268782300509631270348778971699503097112532773340334937653532876224807893591459058541762906147965031799244957699483514326708813414081254564806402663281617940547936956898086345658499331456225559364176455408797223994165364778612477837201100324411464190549527402666154421421338684308860320865131923108638524061161200124155058204459416028293285077440222291437695539899381149797575299248779302571347372119015743014844498654488865733048483407193726406582272832413182107681563724317584462988522009445168400016445007305972901028638077056501122209981480121019113943806886255261576036747476238280069011718747360306352129331800687027544364256977128006761146025167694486463983592305484451960475285322441228973103892827893366970819819847610629339999256110544110737539032956347570361143524361524491250000574920375276060559476597690618232828202986533725495356039740613291079320429630340104176110859068616197851641511179953352730287750005088594113041376074616061466129162433871776573823409588501013606471068598901265507411622906928278252965356567434448435639539340596865659728046283047698464173862890955111081225894233568922682984869265780452469640795772731951657664860120880631125738387790146055242341454124456284440583156388773640409617296502721765052392434474071944250383348056442955460763108233892038358861799240513639147994299353921050864445441855829365573932787739488851759470450111444318843852130678152063245885743104430813739690061716530610686853654622275006897251192426259249348528314125831669325036871619299347887529715593878549380264932941105868636399483564024654339866359703621362298244065309372788808369135013836045093105717128620287237149479327220882517425811166853882171380424905396433955536918268393822789629480438901921672831686819665192159625624015435444521728779851907245871234438401586821503806753833101176430878439044695132279607341697480537189497511776989581211373179215330036311475043914347740166211505630715834505907932211946179886619332689832559118694412239916820653070346817134401777994479206970306320385898985530441223341560339192979553060159900786042202562506869259262378535246531794395824303578689393357250447413210932842469894654380688354110954281967275173761057325487529691061513396369982950629494576216715424821588064838796083607161655793036383256730374066350599857301706316299740385594251834856484644862197245965939399622129835414843049338998053883719099021852856942028297027481815090583235757106544755711412178591149724281998968667373735139194612657265694092291896070596709834330465064589837325639518400635677482777750315240405058887711917757818740486889582402446665187291514076869709780677565210145409466883596937761722602447713708770117925539712988010439727995469877507559063643945985018704235948931239577782339526393403108364744564263508826660450821530839492895121912529013901932706995591791291738274220048051545865892280867488371852837323866785774426530262703830193143531279876112019563106534192825029911193828664380969245924278736481924650998346531525679321648138248487711338075434548439759605186928759775301285676458293113812859663473889644100085302684036189191732842020326272647442428917072189535131692432535669544327747774462425880197406417214621635689519502319187043866066133001538145230251684748208571241543723873646078502371003165383879084194898760473649789111006891681196163550095897015498423727197069744089875616469211082019350968174818132025181680285381735831635406737349842502224348487526585260575264199244807987363586938316592294227144749813628779635341424428774452064553561970879844086251893798484979954210969724816157925030430738041474745624282437411573123233345775903651616075618131837686911457288325686113815307271535646626888659123075923233401397977148126284926422176221277857240289436778996178097987733919970524052689236601395285154151048739091454923474048108561394466949105569023989273260099940660790097374614650933862392576971448811364252472116246672118874072827248885016545135506510842439730757214464575741888349087663794089031428791716199867311064564591841916783761918861807278329072802622436638603761697976105493306380762181018462465802471374167751765681337771790513052931319752843257429528922223330748981662943297931992391014994217812175635926523553441063103366343405137426177148836915457492716305606675698766466586766857780245570011985485530784933925893562620086593876900601853296020246110294089333971058021322869945780998823792620352752027620800001986625215155100653279543087883409977934110597801314528527449552990637974831232505542473683597440238464443159186226421383712813783485067893330806653610104564859164302440110499479283755175881951371769960176265147269985643656720957123227905041982692162524140556544309963241867723533206917144065566092814756529957035985957877636433359635481344120246402990899549637688226026675984988404251947041246857145941071286731682988256322979074179577513221509220020454494468742942655184312229268201819733530498498687803386001943540180207451062580555831409253679097061876529255655908091642794114375942711292333025726451395739009187120815394887197820670029633960666071334471524232682340678964306325889144074580110898701498899230923574933967532839413799426261437308433464860541169174276156509669587087174031258336203361315850342799758971076794631682521277523716196709236030074178218404523115670373328305104441440798432998094021587844768302289079023456588178837463791995345837231795069468317402970451851214074334554495514997431031925713316864665156239974755360451617281293793602885541533649590533870393798475853752190292808821134733201419555278025725557612925441827703797438932615043714710949228495750887571876478863646963761602334185469723810878044433528903609136417471937974302950115099484910716046693213338291852322001778202428891260873975636069950481444106218877807342102769261060616971945923155815906549187741899547012766753389736217979202511396771624512743696485025526956731113598627529455655075329905304362590657260541141454734738609304603614749188154214628373325104415551280472999971450630789807009011426110416656300739403512385085275987251022534980048258444521136117557388158417379164542731532989613861059408204568936442456205974788024241699876477072085485787549006841703935118306672008431199783670248759810200718613818407552749689526592994827746035462257780916174952317828366414848865667851586462807417552695295602053188688760825423795871624356436523444844074733427900103990077563829080049749229230587235442181648491482856432231048619293796510251973964635654832543474164595374522738891168076898828416420511554428258410407080856327516108015421751661075815457629857556845786084969443007074926902855028110212076295921637115140869728343485529326504871518445509375888325344764108536151545118049607010337952185608551379830719806431311765029689565987839391860924026485432282312022995860189523842121518693845737541856753695114722712171964776346565502531670006086862757347023051144265783083295438221974056578575795921667809669397621261481272316109822932366712940545008158950767216248460122730577396067073424013241214623018896225706724352591599163771735511278671173842392212239050893947248042934776353950389170579813203020440374772926439663450290412885369596412236599541925586344909727104387922122511495791612350109122580895721855349003611470169585627187675195022345853743921542969752236869548197999595335786046496276972927721446147290237832673092530347068623988217967034533405489126436177889319715187117853200571484897549549989601375495401936912543197828333994147443011935299314106617846152106996544184609218317839983341930420511250374509440850209671234529965613602214482192341507251792049199782895874102329972578070696290197266811982320844106871428291098155437264665254003980596534814651800033169362920738536284033342876344031728199597217312439553424547412780941409579772321456323667834238611753830842970162435838652537280931647233009922514560912327660210416727771215412779575027276746928659597296154235853889505916857899499655957458058766532285801795435668604445194225179878759292460710368709032064198351571940114392664329650098901396993499905232787686538019402567477646999677485367398886978589345118681388636689003323561467329763067005465278858732963457034933196332908236395286411448313247428095683680269570697538736315638980292341827555532426251731327992426803570351641176423955425721339704514910065504816563918098277321772977335804284802755988376360444846730033883206600427167465987920788448777020737108296739267884671759864708931284977006792276496105685190081209563144834685616063082839803082136157974056541362577143140503557364260399102633529286522553273767678623648615940955972681100817856353396656762313643842874945959514778346352330573900081495307528198986392053848269097642537498787555210250575116007134767617316488435221225690612733734387184097587004719667297548967603171296747124680397900506619231594189618099380321650110058929728047120503701524426352087366616378752276490524803838013370240683676863400512653555842026381382022397904857139528953454440720437246608997197236257681075596283179945080428025133520810666475012187848466304711978142189122118098203088136843704246052053862461793627452783261589786963219183727186409369884709544167968726258023688749951380657060345967307194605730119580291609500970658987060891349543864592880273202190265149414693175061328803547264103430131987731878127165557711105314543328510652391246155422041758582633224418368486463285071982159903344602587740906441828147945341138719662281925253508779831123679468473804553808985471448514536929335280709992651048248349873796028498766080304097609277360737229460090566308087454239310979845838860580869420196750962709944393667069645659875198399723114163187092812362959874841733587692904308117279219325239200975225339480524841057531468726508196323091951485461384482419566007344534120393132016792863883487599041231221086850839844296967782806600725411085157046796880181824001598785767721533023874397909848306320322176076099500143133925979335897695078271282558942297124799898444527042742310895043553185060600919383881210717419041772611195375420916165387918826111955462506708759685427013672531284660950630750760204374050050010657152505130820189657489733150181663225761501035042438068719245933664904354668032906896181152388188191824150074703604839519539468168991000886117005520147829746965647538209463806284559143932205138077266767036634138941727069679470166880245384456486037740787200223604739456612468682336890718269195594460549627914419443680043539113263179976490105522581037304925171164657212138521589321528515056938409374015750593395410821266420826457862128021623169166903349117063806955798412395636733549603971544714567312890930029761285888202491345589198153653442640096140492744269103331447388424834163650743896584081126789212644586638998383299328655352352318967989101194002000564752003245699223597770920006839785287004632483343248809322111761052900204684107999481016368451801907399967903134513402928211091216248318411902681683861938498365559414960254481164945766560980373356533689440978056030358159850450496056898054160067302889036335974182486829817437683543949239314852072884424037846641753781444113285909878033270133764348009300182576700134901513033907677780236060457567980963261639364281337605637846088531329396774050560172684845454581115947392340506564695450588816007480396978882033692763095843266916639219811434651227446640119126358368495726144278513160153421803680024511364734612926294231280569524941835193357498276463827631584158925460339401812879334868325413177008200098029584426380241384123813572516425776541403784445167176654075431359227141139082920499015451795604271998479802253796492004935128664117125897457300363382170083339576895507366165423071724952004540382372261543998522817362706954320992105345746064839437517808009827790578977728135888620046915049594545608786942278576230873401820972344894483261031285533318063974257799330166307676540806031875384158247826588675724109319927309312545869619319881823067384114601204216339045224610493967364168597045634912467183400528494494687806624059795054773289611205005306608530280781885965863506961637490416118151260996957023933853908362766429535570111600302382352576509048328705764517482708510617319610284573791064909248281072853524989699613076608103090750780873335192579752139561542077493188165654639930070782397000580110698141285374864235995054657563461008998460578452559696118674561866507900531638743624537261165567765764075797943431357989704094697936247227194996993938200757209602738224225334483160171826147812984292297217772344088023954773983198488688718648859534466757449614941728063313835375897889361903586810992218187960344824130198506139073188908968956095136180150944777519096963849391798132512672291325770482072807203911234681921174908254372758793412116554785233358948972776842730952662079627343653712260695263275593245672783390196037259472100012742280192541179210055917012416877856326840433916578505714966615164387065613123251225626361685012735038281265574244370399474929971283665714302525421144407159617029069219814690795664922545534221272752048664224122555938851321584058160519385535086295208832419476814658540241517399202125122204587041462470628743855738236052823798156079314220344187209821615670098734211636613268682498723402365239162004440281984019572416708054668915237847464387062573207389999101264391217526091664915996792307650883382450868090371909207423194866123081980825132630007613079338334398430092717358920478585100503716315688789737381893532699617363083542318820220670201109416399995613345427734773413800140878104610557228363457576910116434959028468153879874470220826390523366342773139391793701454343483162404264077847039952726683832305401413809561465804716126573826730016095591838355324165889172701456878068721614214147446356248000605044793302745154551233969722283686286601720198440783006562924101769024794454086905944787401930014938925303765071036228550274280966620705165123901512892055132789981130590854756289759706935987166681046775271680412318185225328085992188689023790969793998167804298466930662284770558794698346181155559826800711640148128342023523442172159209293474632897345314187089150311256127740077120089961502045602605323840797846357789921647354609390180380540958584501712835056009362245666741307642251341718387933949010632115104650120143029291580870806883982887003631145827118490573565866015607244239573979285299818672316707676334348819551174936583732734640185634410585903908107415090900035444780927450382625808316851580914381858126338081770036484735371836550752864033672014438251879515125731924704115433572738479570842654398739073441847783289943880143453716154708254483571599916384817168085889149910412427573002058387622162728011228179412603387939825668874085300365215309767698416086200949032160676024824019026904544171784844191876211706177998424403680642411888743043030469328058791072849235523057809373579646418296138649004415120749193945508294954587538720469122279043413033792399064526078879635038295695985854442684196432368137955734663451542805118289384710277742387549323264766388381027178418493648971864969679460705576006692316675416434984293789758447683894437530555365417405555775258468995025884481587999281977643248343759589707453056196497151487507159907246304465826422818397408607834545523380411590609244248039694462410407035295666455269315888799941796728083441357189365042929482086005490491284202554825668609252294009931762362250062507074280594156567982960500805228042141327422060542128539160727960738384040670622176910095982103606841526557322876266268534096478406036491044784931382696898342061487473773929143636757955420277129748857965009110009616414230578514322000737382631583224278672166209102904068403167978767157799382552246570244364462179528868113527222908892420600549597021979115323883009548025045040295477836569681736736166597306877019963399055665073799726391698745995824503773318522623852728073834617036836155968029359458056002529635297229798564566886005346279428947440913472467603995090207995149866813310552263175912060742850546522444925460575911926185656372393962319178831885804513674786618415243416982941758209283148072086757258421507885014510951123358941314802152178832886345135110083993658407041974130616797368856753270068769430053307194362719107055014679612433308793041676226340011030811932055359530551486690351093845714449383393557290082824900136167158794025564105623272656588547890921632958845083608537971786839654759214802296596597510016060811846728565001013994305215662309225021074547041811409832345386639486485944853333997952737745325148292559575486894507074431404327927471605761669716786283503496442402313719087166906353710101952202021274553238122924421141853485728353536848481461565527080783683838178539885795039652474803303007019323251296272584295667135937260339259885350777812948540555658107903773926660456268790058860786066571004230175480738305371226694794312012728448405959249285957410338460838936173134628503561279677360525812923185758786508093098466768083791093840977053955777380157752106086625577809425794540035246329043845747831805931653781418705670672402846171119926385783819768060365724966240763113298380106542521785438472441777091333442968012559287844390221653123521387778551197356092530356749870032243737801756004302837385852106782523294819504001675827655912185494608033968265512138011112004129561887116421614584331559015459723077297035014123188111102099766108080726668150019001285744871645698469376959339234591958483232319548819406493573619247887749915221502072756760238902095971901950639172429335949887998603775155216862577068377933312039132999913419819608308817455239951505653003379270262184044510911368290188166894518064832308185866841427636816143741465384342540482034484271830972040076330417208708151247860714276401480333142951225278074189304135554489385961797283521481854072009303508634374832796683826828759786661602500823005003013159459143150190606400865797847469742383817434491590689421782830386503273260939664409548633713574103620101514104015863244192874559373228142595428564422465108848471225861456212757224342556606816566385254795918577774792804336917428950866342729753876061424464683726882228274212932502554595439101249217004679302196272447601756285332776642886627763042252321780177266055021727501117806545909712831560143260535495185574695439622337081820948241085976483278745732786660260404998990113153772759360404076628389981586636305142506671870609294012394118569357702235821189062675824505819699689526921105524061163598852445924186742869090424973417402509211726530612635976443721122126231470418080242581182530018030324346882257981382290961011907437680391684142908839431293992543281902871822750224810795979246590993230251139880566988961210834389832958954312656072193895767110806274163329746946458293574095639101134130300275814490309632913754412498468781869018625811697712868826798171585661119550953643111305679709928047833444303250622615136511342702853110355310818304878915976432131189191628120002717644499854612383956760502881468703450275253310470885534691940952980650689438843496397985011417243492740622180519682326012336984578428270599989581003178174244276278939839304670412149398546847790380502152573893978164033895670340896109728931570124618104013601762121617180927881718453421499485579955733244375173009989829380069228633872584948949488445490550744559543102804489823434023244457902600595989770743543638604338536417838591326702147552882740471952112186166921276370429717305217096926869952834562563633502778945796337667759293576271313446870317587625776886886939473245372028414122288257297010462590680122777411450210608831701894288708471567611051293518295060170733838431920415776595789152853370404494322497069556974801654291682506086240150124735820431606910955660743582846106839179330752873049934922533993363372525114346241008221248797299178761339040505976200607075369207363114213492917774003540676274981575095797215098615105576574021168959641865816582968881541548691205012078989055541631579350944837843330891185031110064772433696661605568810315505892770413580532554464015237489117495304464818505173434174509786166782925809321297661513675016548452150184709590232409568612830600159119330158175058437293730215885326921832346126619878217665598853042434099488225448017690524073606267993812118773624426589653411387124922435635067045123844107287632804720488838530870052217434198220507882220013274274829950091888481482006539895763785412883404135808584427281937568957161370454442924091639456572403872064998879347960056877073860810825801365396795215683633952783920381177022456419317078335676580889538498579011431804745784059030752901754575053201769230665665351982508343797534218570750388387670635404956573478232053039422196855039266872814968434412386023931133121009228887010161902872474498433123128600509670190907271661030395358173279643083294030478619669560565499811829997535785702844851779035711937042384654575209605367790262154150782869126293104311932944468226886789844781529304646306973628956368691120101347248520677489355079007574564265403308480303728129094117032024848605866339095666977142416381847496600957266752626028325995125596981721630391398956789379009198097174689365875633844078749494281063621368859952913884336545521643575447055253536172277527998936892108483349971609020335832494419572196002452058912970351740528216123255098410758957372068682664732084399519028846889363832433465213882737679495465410696596315762760095931717611119733981681957453822503339090556340081454516442352624320362191577134232501380096427666705424695946167302254495000285553640116511556191737783914137463204745550182738544745782578729617058403685134647804901305142987098488851540348389247935312010064970853761313800833891700932588782239167900905837973051911754141891265219538695895515064539996330904464401578939785243401240267590669057334820875919543100356687500756101299007365134889258206516743876143441505641259245572221438167186892771748366406094189088338120973250400381837239981876467469329925588379512247026254243882072116273884512803222997667711532987396401984611012231632610865089710379038106883701846496087988532954173005471948251458540825333201278596697838168489858607885243086866701968855614348043780079379698273434766704258154677301302010852794801557234465977817892494034085871711068840666574704620633199692546126226124163918303911597425106340538334881871757944059891861871115717944168267685029715133202699837019007811483212587206775205406676796321560888482777637859228167960916845461962824745927273602047740418590760421512319911258143730814390712001375501456806073400862838632804809004748126541422707597474209822675861389094137590705789288203207074279918760661034238633797235474846581091048773380161616130200208561767299125253794834705550189119012173013507307299448018505339048981401921741457116923170925533680801663800955062180604595745626864428233559412440889689719179227298793864029531595404660565234879884741857882311470460658196648537216229331903990540144263398124384018832561336967849071511698452628869633224297773722557567536774359899310288353565385856545909369061127269290928989769758957185681705831194458156858956924852141925799285362630063523209090198880956828934346755371007700247460797960567212725956633416139446182726921395364506654489248880321086297356137645224206407390594018736273021004872830331914350592042578308717090984221745310727141925031234662093328191826708906034464098961491466769787202941521382699940859304523842574362563658977778454825211979406307623838922161153429009747040188570362702986149346106802486926050326288079541309711083718076865725391928864135136760129552852497754276915102847627933976452041033736467320472075675613453720807910988024729742400781969771680692441076743488783824102871474578235665231781629654387846202719766700506502079789786368755085384299044957892177959417497437079826357009936266042350597620643717165069628094872355944502762000586807671635691698494652117917710421762126496257221213241637751719510386885877706043646790249838629116790555859360109522966930894154326664990126914227230255136631689878809026787996676354770349616802109143044135828719867523346121097033124413338549865737084760097487048142816924364737959166254964094115338974573365144292151064890323419854722142616608355498224993218408178383597945361590778100609683896204007934342381007903935697138966218878880576320352334572200844895747802574123573763393040994067700495085976984591156674926596329178430710131837939100100840355615292799871051275631191401700895420548758554067018360167754503133357984583246549081435645491093443647512080444864649980119334642352213088415311664721891537041108263777314035483475464474729937431918983944954825639173176235757876723316821360012049122966006893561477564796279859320249544338375581795609661184789872925930322559321752166657962043773094275597632669774026378533776557694374116261114103304383488560461295200107196237017377276144171355129420617903954458997517997292979227160616913141608795834367393656289517582635477621802019243286004830281251547041395091194689319013666483450916528759732997919341519727561012045943691080633679372089586860401581108259627139671063377726115358679214808132203736671626808767008897833780436982879806566713596290771579428943521458573463249264350584210902346469224832597993260522490123539666175501946673848665337021789141551634369008658850901608138812523390505029510396125423233201677187701436578849975850190934034561840274040539900170225633931232927403074568972274321141803120410684354431730908092156496976338364894989487333199145949873153650614943545634355863871634943225078682034776307258413248346666187751435473952613123468244319618475389616017784697733908830119262678118803428746672217819631467920143101756258430417642032798702964285211615712239019952610149187027606895594500972122736074617990125631565721770071907542240951845219067019656680697520462557581364104191669039005673014886138379058004424031420843787763242965051169235102605625685595992473859273612844776315955564791556516302553165707168938197094109260683573030656480464454559623362906987826917558673116671655131872621956234215322781066111686115869513719365130321620904127603723406585517383772412349450790357714295388521662616719232615008106304252506023823330333364768685208635243897163264509483258890523835548271544649794401309463251907050332029773187902081247775287153189676442353173538024001756688891459922337190831080491600847729105153412992599626671186893344835728350941967871764949271298929906327980602564596133614323632852204512185986099844501980541930589772639324846820143708857954218972854923100568937487611495325434873445621607857404241610734342603204622180362594968022411047468944666578784220911957635355771989483637606400402851705802305943530069695916616428002662593499500238702885757349868657859213659386278731326361593695816492552656536482976894109974026515021688643946478224452504954181018428342605479612513619512931288521304575217238196633627293364590072622166292404136922768463830361127247139384947333661557148582592363917072397608339801472362408477996876437003868184160281370036813043983386201980083314022669151445038268230344709809125848318981094577274498135589265068574552589640544327703344926663130252470868946991441801512158791978616079475833382406246960142110031735075615157102610569546492760776386212705473132469476138734666173415498467676305702972500477644220675132438049181649615972034186496097701555527027103085424808243498044141151362157370415832758552555976667366421860974712642615840087953282904259419463503705070605077963350948367530044956993823620527098780837484990543258790267701310771508110770580060430111799493039882422538835401614235777005357739130211511794096427297555076529008647152607302634814123801390460902313467114378806734231015871281424837551901876110400453727789910826642277406867110484462712221789856508214752652994437045527038639724610869905135954385874689643469164332662348695655380749085877443059585768092539357219909614395434773330886721798137649687850287998918999147036156351218569050701184249715437935451289351457940799716680389913123035263591949076215781910937895138966301485785595332082213251711922377382492980789107258227766828866474708407925980945335570872673947467827717040212913995966432790154980961257317712426725457086644140993300875009520414634396698063774126592258500821340556138773686744738586672059789294562919286567259565297086115780955612117425900607560324617466428531889629815666279016674718418100013770053792754977273443879488429001657463526860388535150577657821290925165541506915413656625726618800714580679559461172635977306958063971530709978241696918886934129606475711698619297108760053968059093692119033697574259439374527532908769455800953602816904788650787590255580007379156364772339136020426855353129444904425971470831629048415757334265063456082764675728621633827983192721142022934883615489728086454959425369999612254575370923992805079980871232861409591801883135140259195335088631292597038014627978941252892602720145548649424541999340466506415588760483069198167518494335021109378467984254618774232968961434623501399204764324896797083120158573420245569458680266440526529029649917155909877915686115932248358632112466505517530545712911658571280582877919779911575437523971442707227834222095131119304974023782082213721058094230487287389177116899403855124655670774611569827694300833183603917876948536595687438294095162851118522442068380925645780390288928333247737230385429729058603647564191898730013391605770516185307008986179614542117161198055267462747073009225581488123674385050817267815031042695186995942107003689219210910206832617970949894452801307016308542917451948620707350733371695025125629162302912143488221420545544530094147824198766595916269535432554138108296088915218890541023004322707899706827025392209707549448858675191763567682629063453827860373213846154157548966128130706954809925476510592859853368629780651424219793723999941518857072995904601243486399798759987830273085821932526012322824443981079882414832558227438339368530804716861964368919184651647053336766061446394172613899270490212243544351912413189653712802676540369047742798269650162486142972959475040275944328483888997221066522016729206735524584349086538844237858268961967197140339491365136202423416124667109174124528932684209839290428923870123450299689491113964016364584806450910077205046161182931665837192730394786669415801507193293851388488658978650004549142619185284606962230217159769933722175715241287997784771001353829786073475225127946622968680096027771110908117833685491802320107439193938626278649623310910231113166867945513365298140743691233205286831216164960866062542638197570880013536268226845700313928037576087125278381811125975521418043174107791310651976850822684376075328173131048530043261682281892641262028387322560133607945849708411300020305029911044085499671795023543201249557509711830879122530376827078391897996690399358995375816682191276810580855373858608697590078354399133968947267740467481910611535374684408604896162595345315887633655936351234007185352462673108674432203979548848597493846705123077842251197852271940152724623872935716003370249282664293514449687022801435244506159114388885251275937114637466742776590512698037217685017691476613698190545297374062384836309072187550594690019208174984895532366951671080915793937693420339273142954298160816159904093391858843928921474071710027911059155401903109671436215347538721259537881727284289055696562245363934779256075700274992045154703991815829347171924315997332351294064156514837984401141574662582342171987783563183988529615156659883994653899990630690904517687224973622617039590591718406498215562135610672115894268430373935020846653305710640137616381416024694371471888173616830077451278751815315017771987460589684059370078961770406974463179139534663868538288423232464895565811449652205926550742247871915721359814555667561441630564687572348487755873307670549432605508516599720064001447333022639619137727093325719995051672423635148992604769339476864491690485984160200598875831434525232009907209918003590456174017191199104741931839130977480208434496411526599934982002595037263829896915267038446428591016032384008011330452756712853516461758741550992082013402525472660228590660656017863844056383904533625393256434910565713012472121216074406829472806705587524647624414318104144578929330832467277132053393793203837661550750034107768331156061265113031982223201809135220380384159028039456181648829038848839332608038884118362194018193484855515943239718062951253897234441225737848376994847857509190956986647366061436576559054462621089930621460186186707249667246399381780872024016636731173697566499383754767359005013396188636039193543020816877715491343283353416164692777546057075736461678095269720350932389576952522243545948990702768706115810675541090291956886081170481522233825120779414211585001338741394134647838444188973134429247391185143711850352045558268043001084588802777866842454117484375568998488329770715188660395040582190974900962298531511386264121887093163792920585515978861459988554741136504300824033598302077529125964843355917623565312785893495282329832474590699926571494676463277322601588152921288370587997059383994350507255067216899879018379379852047983493212462356560052781166092835019362148777503688139486268386418979110916753297391892089153526535623697223207050248617250511349092566533473215991269548500164787799701312152952408507602761162271570260970284617589730347909329238903892099654800870937049319293220551659840650561774367630448173825945189995818004192057462487159388705404567638219269643439200901124091592158276588406064524001951259782268821755252065129935200694331034844971702720592278830411394083778924587977388710365364223182364740321129807017549864730139793689033617368544953175249192280947747162172690086473268042510449800985711830608354712338212053547348249052184319380472241428835037516478097050183019831443514723929444980181655301774397850485995784555666341821992185509485331409064123984364711343469219750658277796902915639980855802565067379155529154647422878807554420567523761075827613701930803442776738971818091833179744577241257006083195899673832483939395265950710850705570441183481207420788700607337513185366801263554948177352778495217409591778891669167871001286215041832648376665602651516880064436571252769444419989914795596890010433212075238126046374416426047042955799070203544633143780563919487751642280531237130531502538196677420008840548402313842729280244323454941046261405500081748779238876962032534027683398578764115849735515702224518426597773126634686675751970344558258191685980452142808538728471131387733623461845897395600680552366381769712294411432056907848751608389985543624378929480031067007371202195209437804183224523044126647577130196669625389319677194285496297651611575526343057416979330365471009936583520990890990987482504762393280276270604115254210509390943000597997198218968549290856800860999880947025827017477368045286436519527554534812530179049501340037793331977274454830746073113347212772105732158518852004023906067800545364880665839401294509298853702648030789412307489051878781979623832141674027858093261070821234079129364776729620128422614116896301106628267463781508708502628686846203874267796480559109617151753823759517285750288397404419408653976452051004348406039896000028403113212151717622707815735025112260931140005657742091603786563865029928579759269527055095792572578679251700516817668328918819213143191600130473507193752589941302063886511847797696625033623630614165781531308648200805625484677762552634014351840657771914289406957829865403529593645316854930851206684743529198664737962011883988355200697210130621031069319826827075602935851061024308236980965961582312049944403357672713578910237800256403386382334450436106591662189429955468313025034599153736885978197145762914621476265465674767239434886862630394231712497937767985257850947307749162054698430945844063088297207572860440122979819458737114606444859029334460905326595889041238543054557498451364808320432025159357097602108801857746059386282547477578116651656957390654567098984704902322854805999770325315558087721485843591123109303050242295660120329729570735976123594434250452596359430968706777989118421630717579433641482439483487335448508394449244725806510697223419633204487442368704058488431968201223827871298112991211915660533532455774354545405615720876388343640410421467875706848965906355080458118460173502652750394382039795158136829905805519370687712729187256853030997053531511255515968511672244193212444583515496487176611925968532229203065082420818348264965186155457765923327538336368282525016589464230501268938940341161228601338753870176100231472903478098736578059422945074099371472670274704041102032317124829051846943302810424561446279899383153799354121753408683888452882441635433621856587794838434672519096388045867106425324939992983924816653478697164516256655635777754097075919555003244564722423393486430665527819977893014339353404165152602237454261186271141281246156955195907301785366471647853103433987201930571969411447759359063209340445916071561090371976273210835183863634060477922914089211667450942294178411719451081758927722627834796082795796505329081627571070917820400326270605425226686205623844939522401710685188763442915230434760339877571967410385319581722228050821321705037187261385011665320817300270012180438036564542186795210500305625560389360525279297373558471212859767948899629020505712510223976528332733052276210575280179178458189983363642708427089434146548146517165631485698536381435979619725312279065831646460946420873013308476560019496149687436151417379680710272976508841030582315299748038448684750899254641694777401644884239392659649132944170032250226624407286930865963092083689395563595061459296930445941634447634969641917921157937647452214788136435722951610063718841175995476592756923658510038282526044633230159189161993453694652388929065849382586387457372570694468955450405288004658334618743398560200604969598262309793536240462609656559067809254701351062841451962633534165398460694299887978976208061910441039591673255952515378423118886117577141726709515011232682888988493769350205524551817272887689689230075077372138355092909376792651427162302726209828811679462488955272761426788834828887105009362064885215055762205281809310427436008204332506050234045112752569628442991082327243236029218947143079063773873110654618601147958179606657202327108470189248642585264809500809256619248269796199969898265921159817024786940803140889786174982674993910627883324873088456975391260780451519043605693960903657477155179376677830494820225023976941546718747882807500957997381484052365649190691057145600610462600478242078305856538036625050255741953117784009581787755227319602995565265272769023072424829377959273928640881359304160128825207517621367280230091613804435421167258830926664800187346918398863367822878854749740735657507799352636168691995818047189022730001617429730586443613223995738421753562993193505038879773644008438404122722554042148624168283214543104793532753737365164094801631968257878334354507789385878601895977019721478723038346577548904222446188408676021318097629897017794419242545338818721670489069433087362519239401669981511907865219807922112940641251375955471027671623465333764088347909552621840042077638926142830083003514918003675933523186525812416404573702890292211602529376134561691028643284462255119785749345774072118747369510452675177861429652803400740668076315806879632261968917563995770607656135564055285145819826607545846007699323263451715749801668453736549103975465051778210741896676893932638627187756049448324409312191440241209026157575156347449883777618980871889342861798885336539735959288375880495711297144266729725747513663672479493408174010767149463977286709520851047260224271371640142401519748155832081158931688833190235269537643726803868387235413563162601146750729447407791291999269427382677232011695789736371216029356437649069606657731998977369846713754530813858302906597653576068399910271339252299434345146099504927356359469116745320074875703370037598432104316439619778239670455206593102428073064345159422182791279340348329604407735163250710806380397797571911070920593553834562532518231966152632910512167801865003468039349749961945000207460536580538551069693522484918687153579808752352652566992577754363813260006935491166767132672745019454541188927440308606990995946594553052575452818858272103714055469927787732364251345170316406777384776075293632895561592876325236725206277049946411262123758875214240966319931005960593448416230103755498103547671178291124137411493596549712858200716651595767530933595252760713178460521601443604890959784346822427200018059298261399605926856930276143970803579658192623544164363777753606563089120683881737011522007242384032062613817264815897425432995845090495953005447824743982973683531174823971935040663041703670127827088777369160056423198601394835109207279093921954624380477748781420273422288345919082477072207717887527545593462674523378871263872294198077187131339927595196925936919565620023293763141341778670320127897409997909528853641529071685637509079292193197572713003012564838266078735173442728022184187841212543781410409366368775714788384330588085027657989223357151493437158085136909649738463951361768844169904979128156798162796515842880939537503442377847626318851401717678951965432296449555898410236547789501991014246139167093264667548809406439742986335421804205019905180446594869938728814384120281466074690303688311535799976457648103900969392006172736737223848226868817920282631585148969844462457447869453887967946522350582787945650159579207764254272757113335832392128822156510623255289434355761292368052805454150442071787833003214259347590309273841600961287024726102190706291885567701827274468551030010006165733873408661332522454181636238292498654674498662744057958419717133304292620691283249700770655530098701315952836900187886588564839348364077008331256012901844108042295861864580327100332699019714791454336112271417915586697265300488356379122104824510954744141368391205447829072143761847830733082124789409795227769172240730323109737475277707978163589174911646519218944608326845832176458604308236077072567708890230055479395061739566509451023175050766326425623549377565938782268282432615639636779639335148422230212734034416704226649191936769367534766997199158765645639286731238216382543629850968469147055887734279796204687823317518920262732235185622540015923996751029380136218195730047664468594056055475968871717932768431086220201887379832861447241093326310716866820802956663040882849545531282839550488242700061970762909691660597833084260158846608433275997274370556169050339879777424215256284421221674918011120398254959030717074860450777611208239303431052983698806896276425346974208074276758099867172920051811796623759967587740650917074709766158160350623902785972725294486305105043524686170390553462142935225648311354652721613924210713068215066956983969822155735911178302632075943515592701874036311800682578770027276998324132175156777571376783930391453171016299457410120176021344531233549707144856231261217176936246785413821098076482307210588464968649692312734684226256718810637829125769338112746770179329644466311580700851219257857039962524246843152325291045133633545734203915892773251289633719451622403039132718167089867564709453768121736836325622230970599428185603107681173121816231878498281668358962997198364823340166836312101874616262347402103980935304798612678752124210240827755676321642991662981867123034008740876858436157039190634952288062182023116875518227896350526231568366383644426610646954395291704795010906168641215948468924994920096267222149093334459349371058548063652146178135845115913310609345330610628647460561823900286943363342249663525760027113907578908010643585728468196161944778157716479709423687711220560794053226100060774909012484859878542093621722177607586519708987932191759099485524595447077426785734135165074679961120315801070918090405922597748959607409266798692443271086373564126851175661129004241238704557153101875996141998205625269024434635746132691145800813848582868187451582339022266586539898832083935197025184591479717473253936204001663677818332019829795283704909150288536351166434177862510739173475674183462939607504845249583123321978882514488871725254087729523025853263987073854633507887859783913476850248614129203466173163503385256069777291270065607098121221446921794930878168614951045767033578424154353606825012044568202640139094172545764293076522864350620542235410259913863285697236042542962106297787316640535313109154482210850459621566038942268626465194426270039466644005312932652065835406725221075507591059993131759287268832797904975833043944054161179151691922504341298353463597223538948162557804617846210449223480721194582160102043641199996635915863821095203784768125327371779046951060821708798656304915327170846072452671244559628056071849717488897118231775060431820731502058157034894494057432352175965435655947628125646738188864556036376816295937643755144674247376490052478920633739029509905080973840181824161155231380112544638765223289344670974484261740346634179549643266065886148925983865713556352713000021745041660239405556986119149114319090828534561918306038328829384268910747223973799748821399164093450474925759365148162360054021181234702044894160500499360192183558569124839467449356527355242839707214366818234691999730539586651510802122018467054657542280984275947027376111386980221919168402651553517777532041463301483757213724460013063540161793853565968420280854217563809515934279790690998839437912114042237908843867699439704870212349686684566992459412031885538891494628141930774317789814502175440538492496446836502035854927498844139957893547884616371416107107303174654379776164706457615744495541006609799944104366914826612535604372689396016241183170053097039003024697940310576499425002860591766539399900185422006700598079753358951992177664673761385566095959257191836717949766840935177817079099930424418706944483070515937372208504000537503969750459735817684472229029100949284417692813302695471000186675499563334876925318439305958868987466654138666813519003138487749080344892165696510241400735733833518653795758683566595160698706167317521741978356384961236728383805198411666240379778104823178456036751200135471968599133048473004291838241463133184853239872961247864092477922796891434648524828936340228142433842864774820409701880779505750949933856045063995126520612933241457370960131019335941897296993999025757676255567615710977744412366981625583853117259402072913554839519456841117159901420301575371444504282597337795481394257624896408487374853918079061516581833594183716132645421263577570146166912200933060622148403589620653573022332886937152813759446101669402506049321498948619764988473693278744178540508785959317252706593058938908943030974321823614418235963835861595248857627813376351424415886746345202697780275631328396922796186223866692708134649455217246758321830664468057975993822953687441424833058305206483036819935174698578827969422596812169632875492636572751424421647465133560905862203913648650240108190222416677087933278638205895690896611746013737092695438806593006153541726897073707830441734267626519119575625772454887983305901581290958402533942945283875238590697161658920139891003061849891974827919291162394671073467516512080994802191572799143455809818816070712256384484074813390480562409637937157348439003502775450547198712233529810211597705398892502157100562201775858631050299315414239088940173193691297975638568785904323739985130320878138072983863268468989737818455711519980790480407690110807031183868020928227030389269402946918099887291348656875672107940650209494779254250359314459148229866211469679813742247880270787277257107345090903409912635065660305629252922031429917574187674086876460161285117294421803830367639704663620728982598356898335425925179595856308978434160884977351351663519829016386494094287400850111684027036993664177565098611551606135160469160658363544287898446609907237923714613505050499704207630369990739945718454418864711918803231947485236934211828233436871833435195448852138776049613785432741655025957986955412901193885494308461769687631247083126016221722295600532931675200498587776277980394397046697405079423184323828541050623289482480309524970948307717418732073385247754850241094237132367052980189411158696067688616236218531595375564100803387799979594125237783436361020659431989530093432343252223383370437608074028923637233708556867355604743053692708890023093997197813948058330451312302479091999371830049310666707185080188417254569160082307006898208304131010970044642613283663806138935526047594823242522423688267862589098644336761975917543796839941738606300235470748854484261854448934355295460711083952214029869883758214424133675555240550324043041459786896391204269263636319354499771118773153112426166902910187845683557545790304591857882276384684908497990054812119024300170133633968824259056800464155787710613447330441281133374070184649370416377433988307620828151964977861294675994331877362417912930607435311764834403060171152548485953334099053626171309560051322898710315800626153039028129901727538165366040175751345147079648676542262130288195877498642796855598378442392249622045880872375764320653861411688582671064094039272459106291802459120304120057531116733279555018630137986076095028590187948889404027734659789860871266401521789240171856811664280481100746390833727670565250739699403280742967734884911554547188179014781834878564367196686640367622388229890690920961696734741912316852670604124298400858480924589476417699969967043881013362017325920309539661673014939439247379503649540983797079345916800194213487642076941727663794215077036439909694199898908043837219292936484439285857432484766431144268178799252239295960620015787396332685891818268925874502643995987825275499576799615401193365020429745637646908685435530284717736320448392753011604475680362021463506013348289790948300862565922590773471065652709714778176727133921439837775695242058440281605764740708971063474809604150779536260310109666832880592735146850585636532251744415680034093432369067689600600142405873824632135499672050354721061419664644465489402681579567801873245755376202348298719170098177740042920291299599182173114743964736665867067623108829104543607748388979406204001908305378672104435926916830909157828122508423841312295181216955890798184009263034943254769920711269949342669964634868522338849499735052283827013996570171863367918611872202350848722518836593454559731017548420730237121524569225915571554107303849143408452433187680925523768842954919828690033755933425916558292166510695617457865982128001277802788701839104144367496921624613814804172707388093671242625702594437384181294274351961483019526611268924087160625060686390340593734507006440369209733884753610354378330745081792510992721745402384875881106982740272435816760076816391912701023944304757395644204985963453837229268190650425580657481463023996165518331987260921528164946541930331500017585218151262175961853764423474294285516181514236800654275819714032786029321230962258809466703938043380297542685521032806109962301743066457649067587650901674012130568269427992402436548979921895525877802829146792356547492864249830538685937548775792267036991910102155849616826241362562498310296172783152766030974661870028014585952581981993413466833603027527894707150800309575428297685611567105983597905199475669506105815082446367786793411076267350265083808754898713925854560537951703655120317664886817450495314964446592398091051447892056639814112820014540408587077739150173485411645862642900694697690845656946400284550095588407990922497631979999431949291161313872858063859939931741778535017382239186987359289783565083744970381470524593977616905626690984153090947928437645054100360584573338406964298506260128095556595393882621180424436411823493878031616007821796613774796916645587669576573096496829323913158045967529649632758023630261845837407098276903606167432708426904651520465770066485751106954815322193469971418553280927365457877981136109046943269468728886641906394383196246360254800493223719316245888827639553202695210052348467592382711932571300691350300232689090435950264116091749674816195782974663622483067439674297789832865647925653262074492210729673593347841084714478058251367687941067433669156047417934270089194672513284662947630523868489136827141518497814388823930062558253868003574703816728097911606307265301184368767288932612667848945143917995194964844739828382556387263895334443149823811854309772016840870768877257800573598303570081148539421125317314583066633476063427453770650388783588578585117855907688456822289037693959710359143491805991061832961639705449189077900760817791596295620643465990902024495889221171262871661107154914077322657542564240201606581981334345862776718925133490288790974049927260464903747369326044943549818934119698757116910540627102661389107094032622622822878822797985969717689200078868021012990714323320958493105448575494402108671593442132261982955742584281767849140548458803821716078298772282169177301770688489362971052456255474845475992248760188162158980468034907572915478257684697519697208573968346259809957542271172454294860222515948259381953589928247983435285046563854775398495409613792885682300235543101155669213459229553866416499653334764106847687212064779265112694174254712514565371793615947499132986251464503988976421370413618279354459808915944113821209701244668869362725725371468337983871195721155478003232708376408043541987823856170848312946233012310649717972551012828805921200509382068083149744398997138849989849362938187767363098897920592590579047557789126347888983458652417940299603102871493713186966152784504432909367812038961002581258062834136191275053516745969611751533126705139088055319199176704865219536232076009606403227100836477857486105418398265440538377711926381255688143181415161847135021435943388978201858713025021609678361922774657951062292338923999516574830321427981628588883006351933380714397650600599071787552689809230394454835888997403227177400778829885321177639345187061512215179441647598811556731104347382426775244276214900064755430863059270444354247547362379690972487203069696953221648684818092694557919471883600141838896834683862587557097116190285448759436500868659386233558657855718238401470032680891644012551300810206514309176102188337499078819231523892563874141303539298602958522917815888631920021439476254581443344248246518525065923171655524344407210544124900502729388304283284484439684659607009956956001223553862132535175360795634281410389122749359597203441032087788876757459315675434545292834167276338308094002327428878921224747543042646769613832346734859653126438305333006972204252638967774151453877260920237038147173812287303157343147697440904657523209499423574153706650336948858188431580529976791534173974791264748511491973665636846200467751864601926976419251649645570559184533264554801277957682862446451527171630548626446196761625895544178020913498199038992672611234937655697998986953186279047558887040049374744053813979749417374722114841974882006056767736949951727935104437612506532982727888355152600464335894903084217807623102292760313843616499904778488974492709150362491344023202122051332601704809353668171471096512405243456821428557970433528983102195911139742123777189713573530040995717475702948052589423503335553363496998395671422289741517804727212368561509013614275474627033733612545538070495754468543023153206471289556525490269874686704958120584442415077061756372178612715936958782680443514613597919711760413580070775546468783121512318664127286634168398309533102448938803012010361493844148965713694513690707389988474342649104673855644390319643294787633273307924221743429665813189255425216832312162117821687021018285733043406557818306405556401836644410121568276390592360191756193793303333999922073426806562554374833300056146053880643099754474185026870899740943735820203754182774554561340829782228446840985521701272508260194875789364301306393376884443727697138295842417085474710409388542746791932689708656145244288493491310009466263733648787598165650780260321937703692600113749233724295208764625234303804117967369093405000151697428943279864468776732430652791984053246310247660020920143350567244161080155627193413886220771017443550868609295173655052517421863264217095683625353970393569540825752253893249116650849318954903059929335292554645231048694914475236467781955081637623629270211167572748089682769136465143969164807187327823074868868602866086045216369538319864043163048456914707001864317854840088842814959080919063919487609132867355914450394099310176891944189713244123678311562692745162202205991162560385529164036193589255831778868766957898345604378079268213896124659176831719592654723960600027280212625597410949168968163462465427974927040645098464531414911247951027618762193780239548560370169142155000170065807540325171284496436217654618867125970693541716678452886345936620618422634923117264574899097233753973705148888436437669224600911963217346558500843960544808696135110307266492537701050719196408750826105216779805394672214685728944793522820471180262492744076396653326839906697663190169022100722922170453033116968487097904591168288134748591679916327511506346693088727405357982339315615559365543578693217308866438034266276398895220690278460614896729490453502908238396898624148111424171417918266671234558476161592641669801689106891053317199781053295679156406686379793518900088102421346730659616114311409551589586772235425654234114936293084396805138623784433927324249552364807618625283684711916963549585200018124490349098276694614415452416682535786214835175143177441746052630721775217007158287651138596645241800099033027272511909098395769767919942894572676011326951176224229145435570767422551367743928550237064181368382183759320065507285729549366132068118689276995660948334159760094619872022002074198160928467111128665309564406658263309721196547288965289972717367976260875983549370990920676887190999797784399300118852414887061209636090878906227586233861680899149033339535175503790030837359073057783387772673965667051543260620222211592537446100501643370704428359544187367323498616470411271945050391147666435988897559726458006208689745659707506502352626505049995551374821111398628413638703905433169413658626420869787709556382533759991153532134832504030894358616719966415894149218515881158641516978615891911215107321427802225530325102404744979416748478998698198907851271296209790875301080060442554372542057396798429296709057525459202218645543950431623999724424371804353656366288470003934150749879559553573692318954541252669656340180727061078624128623646465441572554557867720710211294255063834989010214871656131099358533368984973558338174584401233458133817026302696206799447189637220849776285630078796084053944957721980187395014281776322885532582789663940927787837520648652568809435868265822375719425525508369971240083813540800025707923954011318302204725564951005394671375937750020907134633975434493726625672305432738402103047395475687053366903498274953680476548102042274721632685902386421848212080822703349558075701127069371027965195735520337953940672289822578749850678649319651920474621893219513421862358392572526656562460180041034468318550050483361450793212880421472727519787125335857043883466506010964533059230065694396370782432081228343129745714767728718070496864770685086109591319140670659247250410659357188486858929385391495840456493251394051265656597541481510758517225926174425536252780498975886982162266570217367864333529920329775336325908554742312451105300605599118412575704720310905886466278912439312589298092318740652462642821522959145820914082577744542141008527235551400639629241683833564868404371785096214129893183912763948087968454408008365663268761104824516014351757699350685056877065521525237227678855697909562653873257828716558151841509676197256290570878918996458661431774305841167760202184104007431122403816859252904539880735416225890577692398655931521077760915532844629994183620578710506927760971390285398911937111119369081137214991962109771515381725915279148332716469609331801711775229005814895090810287194976986805081575620639442664879152421215900578592593833963164269516865691033034285366240504014924787665956110720238813542962170416185681258914621167686235785158122952333677316774172019600233321290878138435781889449840584192226079131782095901618638280472029494352397294736583185864105043186809865096872389872423079988975101945040942079364423048893819515978336589171174040515100304855552369428329655000832516359934576553207166250193250309713511761884634278927422768239425693995122760632546252266244229084360520896150692419070963785618125604179340674418295450275608283983714179224193000900223657798754516449115794917181501598450992949539643270230455132881091665753026019689422619706533085449334172503090988120956394804192639142395616876224933958915959631905059871137129550757459139647203778714304522081484060563115832957486432413946949330480166812095266351522849560250432123367787298013445511124291642981197270808467161056864456811826160156695364646320398243850295791898470902209399215145025852116141585878686360283428950682230523921522503972365370733691537404115373047078074347031000083618254643380417989034582289681112043145986900124001723526479230455013987368683828512477987607756777839603883197882259891814388705094582768589419646111549500310052638127694455941106987415314055718152679085639293993122341240915212245008816141939573701955404019211007791705357476970994822790357624149994331097439762755412185949956099502347892003125563533445988956087857552011354795555709235436298973162751372248581751611065339029573633580736287038162256572432854748783742371246372359845787126316957004669970529739381764312580608202776581989274502029411957206064523709907907683764628925363025260594074808794550084080880765456826545932278415973958783977208481307747945334852929165295564349895824130838553261939288886429673221778594062231541245003647534085710525138687159633212392744652774268792624366449302746169530135570776658989044871113008366844170077679212424608740971460835875137907728916468146194137151427088412462204190969058808628233933034400509141151581090520782093441666088956543510723909496924264724962799667161830611590737638260370839466579428238495607438630775243867550177132117816678409958536140303796930811108016816942282159007799276199109050920939478028044648352117467453402471570397806664909883619919580138512166361261918682196129064533371870596315293521711897499456348701484524493476333229724577394538678993904349442810805548263430311680317324453732536217920093364087949549056972119595889264572931462068842472683712446062175638512330750906726263805216002402191259514537735837131513590290262367718085896529113138115626198702669878907929307192327445016824692501741519073576794524429861428655115156258707477154951402331242557209795936455631639832754941674720276270306079395721478875581947024381756486361530090216183170465283301412650290330249182030567567342062066751234861547432063109747559572218203020759497860058513702141502337173169958953314506805570046409700494188190136430635080300826439804506012198266811689040427976582143411869744302775352724328655697034356535495192986237221345834364993394882770595278517420310562065448501085423596599418402507430327199934559897815068143384977879733358045316209831056201324994821690661796179065799401406588922744830270175205044686951644153153741016933863528791784280719979276218764883524212778419921990564666092800509608126957254047157038286066116491283423517129076239492592908761061995389131885727199197290219339666969732083975670184445787352444780245655876588378191607740895687680238886012060989920462361873552969889920578839271571095270642423267533128045478274008635246713531293135300018223597694547882441860326711000687842670013425054340385501965483778479302678094451937511606096296729114589381627089817955114420318421903442383958680270877237218141118689623563030129548293536281466683886227716724832574980424413625183747311793396533952344719668103435862242039758902505353318416313224909839619801381012788738847643926351554852869504548757422878493895078842149890967995331575669488461079340280398566626942805817369258628029373929394524902311332318715183245705982990089436010690416397112635124972513456547301931465843461931986717054042726531177914799584693980810867990387183247992941471986102288158221050836223013810903035529795798309204194734629115851920253383433208038478398592249054652885081590084016380785136863773124143895147177992703971270563428459258165093984881107846334260137340932229198279177218737528990514529209672779856036500239989794097348559836665452868266908451131178926936547396882008506324080886077200270128196445207945300205368400296486264198226268000635606686886103015788242476780552187451817524886868994724787176446783909223776429704033809445067780239229734994754603069640403193818620111820261733499204569324568086530987408000441261143347937099636771751081677411705258576934074649355289228549350330466848769373380271384861652621778312741380838786208322257262298603045384355891460170951918584609486503402711787464366334987361088331607811511757097529813659774957281782368932877567706618955770181880827087987269199186393654730805472466020964680316785756714888882679658867472392404238483526828538970549187346511150400805227955571111596208863501346743167198958463760282809435456627783846985638885597258617322710346313401515525884621754423031975076883067995474984351669700992494398457462059500812173035235015496845762821812113592264691032836068686421062558575853120670602034431791458849457703384318420429217235459388998190481421445307378350935932799728412766928855082955059100380430728747094407952936370500662828673736245246300725081337406377933285468294942115809281690224901611200117257426498060409919518535167910255129090791008434252969788152991949617162450373593080430515572937780711988425320209674811326741345294888004181872320346546583555096375910257342613641512092014984084800112162453370094486032642527693560619101065895739581424934755844422191269567592677161533899458984704530815071924731694846981153421181902733857656996094182256086621830039534716118145151905173315819751660634665835277929343616687846231756118493295194528644321625379330744294663837298926083126437871594007292577035975252697294612295449940325011522367443766308121153284869431380055051340499736717868972778429297350074233501937550395843297564496692772319545553271097376430136937371457824996968902728422528790689050484349226689535379417439394804384477522125072596011452608529583314082489008377521231112088586532982728182533538052208661500236580643314883452144464779550707874467550023064838526659585230536985942974414199267248181043784732818049820538865978660205311814349087357463753490996058711277995263964822302573767133468961696751215880966073036542928710462038763912877167529131298405546424415779998442560792514569059784344148320205560636766707655597814379130593130116784900242591098600115894702900822764218445448471551131622724179289625496306977043521663553707768896927479857163843104564013139982464438187453985795263429317565665790311476882858847135408433410259277657688117505583352878277414689656254480945958153679146200735901313108907555999701019325234707111540508301676445381659529119963740371059587929020773864241560401947914497470897232035537878136109791665913571591596113312352233719865513041314376357987068042571611308072939695587906059108555421538318045903508097333794275929812336330972987915387945436345664876940228195203231469570175205916113093214953841244865851241008274004578105880595742983106199168021378684195369735263362024865349007790791181277564342207430425911867528782004129731434223489570007684768920674066067260700383107399148869844391554937155764608192715243550413253426139019078345039774844914493187870184543113759965595588880653179089042111122193015825176272281055372878350975394578854763816926602442617298861687528898058393238149807598682368189405040620064658266816630265277483116837828307538049636948290524804863271918786655689772217447990463413164790725123222486769250993506063042723423547564027977828243064676080136597241728669010730624424777802754427503819309756247122601342627604678286900124133002284198070641244927622727556495252459953869343659087873196129074202902829122497257926144411214219678737630054696343975453345874411917178901569187340905891302127884133898329734592692990192994756455899216889951453059369032311968818989940123225344411014982382260187531766059610907996248105490737962097851834543169200670863001246620429318102116495140768376283871593314821521424295915761394475240445882468170742108024148692385475852455244182075609473450275459561274484260844489724565330860046296796610103199931348754489145457652071648684458045165382511125787238741281908313285919779736816419488705218689568124967956922137493909312701612029854301263210432772516430966175607880928601313881466189826607893236483471324076327899543733425032554927638095738780614250928500639160140724063387062583702158523234445375269084406146242612681314952093364186716058331899810549091832068247990341442476538231347118154240615234597281929012577817575330583090123130262348624540234061748657538848587986656393199867467080934195242351348558680182724449283146480605271081680546549820028698650482223273342356015208474736857099963310891853624358577719171835501138660682204015687018569525324676799403580361826714940083476047402420297433752168025621018675230990380288525713731657241825083633647097475214799222325049085078887241074986045978322610186524139888459451643451956016592121062052363033041774381694272905722353450870239868334919537116534554810839592417080436199642413496095943822269822744693492976613846106140969086533960670969607006904539265872591364517547050774765690953407617800613683149982902496579152411868473894421436433167222681436289330186945662805712647796738441408568586227545252666383909436838251717001825129433565829185532830868595880239319460880945136231230610833112250664670857331079586116097177055240503030094458462242835906114960472892099041900186557023342588408531658692793597198194881150855649282588822638818695429669750099298551471786364155186975160205428026295453281978081018954457893774300971180346929674968626417614424039446462162394215389211625046672058508527578756279555302327229406850775927899766628824826679235400276377600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
89000! 237403628227409823372218665191418328995286984572014467425191634891813525324624776511121268672138443048396407761763705534610946104567570442950040516638254932384465682738515810622609606991275753255503043042008005085049105403121954281422621667898890167513062986728630070312013706959327461431226709687983223597757655594379317555305932473342545431351056501187002586624275483680487897683138366910964429958346262253910435472908241468930059256397880612648423327020962721715318404786744868951204666609512334689158631856402464216100422098658246950824587987980566743947856519408244461649430402657558375638440572015266661920242770503800491456880996105105040996976768521849848865547861199842890250409886855601106483391480379969730020650757562169848493960291705632354774131109932516530454791065071423899020127233967903026234428427010366989994435342702480405594565714770614329847060761904585330190284575502095748640421383936036436420562539068840091964975142353419417902751218001607700701977152654343811368057756716656802888227762404273934029541908053932902885897033552265207578008767093069762123429981255211333996272299303851775437704467849793243514003269174714519517625158895449595396812441191946122942818552677581442458076138291070099223181752764876167711700406322159179808585699272354737608330656626054487780515124113261561878886411991702417195374746966736037941895792449904356544271195595649798587458614239955750370505720176924858772776935896191816096464825630882473069145674941282014116092032598832061821200789792942679854523857160222959876959149306940407443634678690024820241190396801328710492670156184059590360141338263563259577161898979881727155758363299957428604706825731603772491314877316347722388160287690472533060658629709092042329697243093463476397871152684689233745504117157296291871815316466819199452996607497074424121261889311557785346309665300545632173285462582449394872708455938837824909312852066645630089585889685957642119403831770841132156068710923722845585373634416811141957447681589519454923258725918636473263837780252010253799932452256675835253563910352575692252976028974078303812288967779252465585677708883601062085711499860919728454670649330732586066191402721441348654765186010327683964611258897964957791713406818392606173031021241772643784370697316080664811762353907146034254252571250623124019163606688234759608752778749294418150644802802715810534047448493778093006236586121437746961456901303669106350633062683112255353268627112923576975553117885685266920579890977978307299432441080399581605980112534543924938543748355775246319852822623327212026644197879937096798301398922280273937235208577255604307808081369186484095601359754674787909233735180037164243846941547019321555485868528644924247713328444131962909463773684772034837590632087925882039026599320468754502327477258508329391695501573929338403716257545431030186825543805952382873091713820723870798796441873091583425496597157959231285085702144793170267142081139825753220340166766729196143918588828916141535008346040154481229377857845853891330038421455801145755262171809071048198246966720600676754249133914409571661108193278457761771153531630633134054941080367877849643793113499078754351577026080088330698666924729502004396635827142616570105156568355007223028929618472444707078591770896425253064282361426804607743187488542711083484205520997485172804906846254317210463220200690100298833549551868268239405089759075299732463873742818763245685120479417294768335760796515919782279136532553062195690198047897124432060405644288221901460451718471060246497365767700527530969814396827501983331669534783038215291663550571283103088706257491389004472148295105615546391795367875391552665180418533837788137209848521038800851616987970715454043116147311926028647773035524934038442292089324823568617435951507804643346953130881924974001199452608815421473397849819049710805471598947053219175594180168131786209163068856262677787058195532217625886276894513005559388859431921787063843819207980295974697580955343886463970648121817072224850428058058518766486158114465676808486618288171352724612139458865660570418597985137540058844164629607064398763783134538317103227804055588517679116293150226259526757885022460885161958833821541789666547707035944847687358459141272483161963354718944300398598132073680543480753738746725858866309256018092871459395144784363250816012754255151348774738088164319899097447115843574829986620348311049614115325710647755804973746846148940928125362036758360651933329724722587487762152408437341570996090529919012142641785868197983646136683705659499586636123480213563036034135078778249904072185010485823462969544652754038740209206511884250188122410412335769636010362378204860825010761060423224105829608648389252944337018159413298302806833325198937396613617867399973022742259099816392398928472062117192480182153511126545060131702705059280962655298066250896494755734741038831564674331407504047202005067389880341138801581386422877498991127217131036650126465484448926659020504485362241162929262422383011642837759645915359017998180028882164523408480498774517287684136137011062619548609120210989443944668772094579461170850022174590885393958759578971199538206703919078596809272203734276447012533418046394761293177162206562043146709272239344420814115698702402355501622096164588558071379279104062165523735466794427375832016120919084387958574236827907284191904997831310492700044265627613588866220334309026459624849275437926968092845590647873622418448584922918555144748593692815810994214495247867183559773652373589492501061294648848053920954523566996881819631765259807348731738882893540707561093735588291759128778671851419969995514562452058981466531156051944299704611788935899642907404898492819759245817066286003798065421537500554933324787848500813534033219808156014529101318937373954799706805707639826869013520913461160725926304427664678379395200049163918339056185946402135131393195863697330032770974926174121245868849983985356089837756520578683197964319347460180569865163694168262048608430629928939189893512666909599800885383949144605170994255469257049483985584740915426387347437384345614466528197978660885458527599638268355076739678262113042921462675927799290137420486352008798282199625969105143132059427578450632636615676999940734122540032311796372563168491247008993003953490706111509715692331872119274655945690301700299055940818591772818833644597534935466526613588905837247045081123093403292459741847036177275729561875790917459032936667289605376313293883006361875951150471099622832959009888023281269970336375372987179115902376607716225972706545360246680866224689621072519329430284832670867072092538494264609427138260817615168675379082132618059523101961353677417880348442113858724591626840112771431718771399581469989881785317621538386597676213282815738239550916502230969070673865830867064493707106430239202263205838701796356029760699937653600355831344669438513269670797730240170633488741338732966134309598944618511329840964446989549913348054458322319087312628624802221196691953817479770735508489511146497652600311870217631175913042148317421001600368181686474431210463508437617518393641599848508985139007035669174412556166599604304329753226766919531435770803056581350211431558384039140268901260386743749871874472023279077251080382797337767288743100017449176006194177762705380754715151214041112790039752437411830930359624894473192811124009341162294760646888222587428354892374345174688119031019294378422282746932497885134001325748856964450177844455109186929668759863331966845809192120634171085225350479304648291948807384365663465934745960317510483476514356080830100833398879315229963946326646586048413205509674517130554147066865988334465372296801562840923910654435576082240350167230786530472745338161685354556219930299722665541606395280353935273379745390282040385587626950480255988932294857755396830534385931442989073884641486950819879234168630032880753955432420421987658378799411475915350153310674821045081921164742397147389602419934095817105473946574843556633340835566202636314801278658907885972121922565715855335317620942280755695385427232978563325474856503934860887772208876079600178866968977205593008791993911004211045172403383182300474531605934723783350165504435245705554560061819060424767088479784409529635407509868421722934097737078038668022974113791536725685577462788652497172835369808369853440277213451429299655640812704366953955954190727649257738766229394559540935593147045815750442429281071478151826438355409952094211040490097827723579716251516144965960023782291853288379891984508719574523525221049814468911758216101817530414107923188171033397548826140961243752285955069745478222889210727494790287581942694514520981320208743164832502914917837455665376042097880233445792577863567625652707995694562209868172858779382262116683981741995458767530702748519834501586440762738057844172399731099338653279820987507025743806423469049808194268011435006504708338981889374136371136174543241728518774642731128463917863751485508966236439239338003619847387907117499641464027685518849786935461309299712450236644333112446830877492947814862743521887390416383847577208845406297866001045202674236010373203111396597896644932476280523249796374192019406522459216413154625114666578392646245617373263433700579009444606485450479742056807225424740514842638445099022064843800067767891325967321948781404771695158230778801681632979747034666508882469412591901489950005159357318743546102370607062051108386255593218830599894488543411826453436776349377273687502853668533948484443324975578612905538405474844007922892052239081187293216000637707149791180934068178562153757268924394800881987507521612614855421410552958938427785416308466729361240877845685204109752196002613956809248312936886897224568200341263031087156787393001041247759175415502962369533621621633628811285198313462994770971336099828686703010305139865488105367156008786312498070085622837355325568077932517619281381406845967159563786928218592853075261158959083966356370754813774581472480558802834523570148017202738620008045700798988994572257668003319439892226477722758062082011168834280505199111484002198069471427686082082932758360275111631866813567146295821679192393498745860100730332393140825284256167682539810001116361407075861204323934571965439701463763446158111497946869536549536437436372630511612917889780374264801316911580786127653181800758649780628845273417744348783830278119537968389465336901832400470888963150197188184131656680750037652430521395001022987364045445031626628602521760213316957712118367400100587968596086470676948974936685103767866342313900485820833530092522514662947596781811105880391065551269805758247556996617993954412262964968895891160595456412580560651820725850579655289117660823398172352441230301001133295258068659361051551487162493080079719985176620331272060014186704419710479097083268575979208144347867091450505844173583603809122721729912913788355105376326595643449240950118780149399554469398789270743582105232487243765168400625257558005006070634157998772984785503253072049401465738603009626154939566167001436530073097386817121856619415187891143850291240674158957928225921776075291314688183382145417840256943228300246966233948068886311127132309873548304988274649312541297133834006311018308454418859269031987262408736719220475461295144685450326775870464992152610664842136562572381410299091904125302073049587106855357086346328081121600596846044579071366239663058951343363195576932717714835616038937630629428949636069131033312755673041833949275041863553392282299941655882788796922710619242000230130288527780395833143993065899460734506278439592435717774609256953297543483397718990922461717876190378914520347108410792482863306705157005485611399175602924258210449919671097401747895924470744765305210238654073578684221011389822493491335979600455760190811326371609020275892553347719078740616852070734803234600715682207346623531339335211791682240273418573693070944436599595228086477370068351327631914661210918527745416872673078951275669970225994662535679164813949922384704821365651553003814785942981486096314782335813666456129104284566739905574008513636749377680309578060251328882274279972385803854186270416058275203323839631781243427790515083787973567829060142993270976135189359221711511052092542647392068161909374163025410845074206543018466221368724532083514825889566804738596928758634619552316678320695631097923172837472921010665316426419890301631559056458574617077680718669704266549750553857637965785376369727508793064652557144580063425300656842706671918753607812729557291611866022054585564571211401011172370920783685629936704737549746924339938441776087758439393754619660171528598658681900453016472987961178800312481465597473416668895530820884670003556243117296913264276542030508634302858467293564997641284387386680134122327404491286776510572867472765356329324455487021476912710362921883202511202173304846652855155328373715251329606287409116226189819647267275040846762853274699311193352116380897263869813310637097120736593262976676338416053914060456326507473700038950931003563156751611365108676957638217542541057131130481093572150723949262205081376044203560086354756848847161444952201738858699140601592900925464873979799315000636570963871287033624609778387579381405830396425093638878914710064280572339962834386808686430104621300974946830263285668283758207275075430336736386800869695938146594904616810658611915414995236664102897379826600953659782295067428350729903337491320512449604639599820217699802062401399807534940114521766931481365276815553122080354097064810657790319232829479174813385334784239890236829662257698400670398904144911369149557379885907060007521507174670180698058095521424278160022429469126807612448733708670977471124960824649802972620460234353284300633189606410308208520987598148850320749173842172205890330946426923286833605104760951387560427743351722224477951306425745370936026017041982475276099061883718968010484008543471034015694953605747303858937683995121427462665086179500618213647394361465913096173334762150212297794496706511732837629254989647303271122743779296245119518736921789049893917560103137543320457469334921865565010117023586414003219293152958601726291952181118053301099197430017417301119944253633413035947076286822025346112262282572759475658500835541472009613691177758734664346064134150514565155557766376753175336349066518233703948181001479408810227988551660790512930271350501708219885330419034608475331342095124602645569074285512657012231833199033845854746417267389250896842056589353889493708556794175904191507207513891685877283326567319081846842075553629770932542622598825382410260208429433613582963977011543249299476742450447314862089706832771202791412279148495527306736508948525453735156141817441035180152492898792486421408608057301383432470106305700087777238729747669082630420481620623081148369160371176700494737668757370215407599409125066137537179827139772960550199254887843116875839208752282514617570663875306029176937304455714413061913325926209369762742594854677857424425896924677950415894700524367012416172070752608824083031841968383636051019371248677199289607783904656584072941811538268726347868485964434178916908633073149026126751953073990583227745193931141633439206651979729279042348530081050583637090690384687170256913301737657120268673622473528230974264390456295884945979405787939591067149838761574260529571869917992155169097213476301903264314471572625804803599574409476112015607341652129538937709057113459567431096936983096332389294685142090922763170791930824410242948620230991069224654188455089384244438985435363624930660597759885983345239311762335171951662502527475226229957187689828902122958076654577879975092817053563625476989482482474025293769721941000684408484126379981841330600148956125370089754708656036859885759803478186006533206434206723689101253828923852040868548981556615804589993813550934599496417277085226252250269545888331512293536681572547623099678205983032075550160971142985437124992243162465394914311979072537526508613853555756174676777551645420186152605846833285646753678096965637578527706843033090412024518463000315967918054699444312431704769900314626231654423628105165874331379676536525566183053509011512270479296597139115702572322829010322902572555994139081213288552168208067081939666216802854886377131842189577742514295653018523134152568055289937179344922803334171536276900440842289189642198726075238910467910142401834509624127781967308699958170310692755675441104969215776095651525628700090875458521563238358908556955729792132952557293167695334755885209139655416893393209313379109106713476343176874187959389826056684592363285014784541097199511288042799518137889936116922910356403354998773100629570360339777211117841694732650601853375813747138133659012841527809633240041787226767725087316412371373425012990042685464208915438742897631114424989011014946728580265483521825961408815362576880294974319534816647738862856042085992642705618328351727562910882978016878518099032413484191670639665122917480135354261176547461075042068991501784620359254203440166567676901047753506754976832237416760249409983476010242067887423122768509312633648522890495305828871631624598218148256545322783833761048065929734441943955649105298649946297181821159602519791380533521513922642010886911843541824814703405900902724855601414455006063527289852893655245893398897851931248693508906106353616583574335173702207206299042859782115687081105506977052992651496620756494869201363829329664890498494653487732023172354462569738006770238700235066012564183477005886238460773876192827435891736085045816030681829858632474360899181369140247492297059571862643992613738738899751470258743155109465653718369072276001289367694311457691311829432281936319374838013163537618713632138337715142329461140976445450217509053788971268019176644167490909108971769857404933925656239024840799874256320804082413397368724686353932521097841038042020266058715182279798361317603406525703862029173023419385751620439621106772411655878548807370868027608650544525194652847314676335666833565468504129363065553631502956580917827575119623257833869871440668182044309533347406214621261882622089913738963020770637112561581524436602288820760613869523204148331700731709616946706875176249433500779974357833416073137199224867088596229092830753973676609221106188244012204892549380800683552180790374105719817980797570287791960653562662061541510730916508141041230686113470186978955133924827879654653950368200859533907431716312054798488335756390147171889105459256402427804000811158204963330013689448868150517300795849052357531360088466264008153514325022517389890540341370070575971674580469328772927937697762276755561750243229113775923662382765860704314708673625056804808142926497735676268772138709436696666676922089155298279898307359880642532931802926675030470295322248831388892847724265007775917356512978940810355266703123496535635013302041665010028257171394439516408997277125473644952099082873881238033636845681409642843571633993266342265229823082336166443665876215620925644785756989047308095451999765671745721376875094695072195440972796596232022583959909856832991613399954348803123995361194972485355685263481422226662074889810744613585935219600585042042469846901580188780931435873774109120426586089179788410638353504234899465751669889956168116449924738313066995317353495436098757212066026715598771985205997344071716209499254812252163008762740197705703579039433508184470974961541811102946677059914479047643375114970274666342832001877981273857775273064948771695885358469353018126339235196739185579878817371569116367519827429980858236818603790028075444945177439431475804298552364542110314926411732789048058836926289228691280631189877485437713715213439003677855107800640314226205348537702709486205778474786627797152570621114563824419400727325384094318238818305834924224252811228944717185156281060650986542073874084727300894443901365171163356861289680800130523359936618933039246859196638745461151614437722674134977509043941829232056408490540751694301124165859867159385348018202032260902256701581759232086180640279084942174484663144741227678791411755473088614316546680916114619977708335536197123546872515385473852583810576422269922579899446826193025615086988723749199904935879469974966337217461442352212574408528051521013657305478225738048661886207757669302862806943731850097201071691586153875879981989991886088889974910126804939331612035347907820348329064201785235767112723601572051752749682855475463658217996577687191220549068866268568593861855704513745072763869789029178921769877521212366489801416692155689870037918773802828030135417289292057685393866132547915025520914753906683400239962251433759762819272291168991880873839093183387163418953118582457460964235283592746108263782756937475331186840221712839031744771394270547713447960095427977169102517322174608462095743910034638668575401910880322340662421804057679504410758682930569785335559788870316543858721445830600670771580320043037054299945162684480073137192059048998305447872247652516307185896094589369973147671964043201476396505197738664861506522437401227009288363438502326268822294782961057221077347906020827718265067225919705759480270937536015051082660398480414656852498396919439617598792228359872758712685461094329625711247112721214726664738050896689853013539658735741938711332216553918822813285034688592009885562873802815084075129322529518678087570575736438558515727379442490013060928653728488441933778893301259476022029832627521043067128163594550445754290663001782852183832376450812004903304272354330933615151955381860057932080023548263669841773239958532180834250967191878203649247626833784822387653123474285369401418810145263605172642856504889926257051329385606622783258336860817054541441371328238571378202318118781614395299772670536787715840996231162112820508845617870073199502923259280683177716341925411581100606501072987329428400282087738100018304014092914050936890285110765969069058048601367651165976252779018084763015781972917328579210553827728935949093594788571301295984073829200531174506097519134409048233113950014019190364557597527801269273225211388610551100363713862975451336270356744234099177644271513954235336901037810955182767667015409386996076235469351234504520846078746768408316829030163893797256494041174756789831495944030092284285387500493429164019544646401014344802390250237353722155528500763227905302556153452643837062836682918399838715951956332317486107375354129952407856771203129069704812713595593359803162211297633892509151720733197048501153403538719727747981333178714175314520383987279683543763252678428444077829312755906549051528689219222090837535315225575937402868995571731676443541753966066320204394549357243140290071992014533107081247579669666249941980634084686769710721963132597318572500595047547612668997331890735686522615529179162635026930714131649724173316785651342768937449294952603652754407872329209122138225298779586439788457066012181438805376566473405579522761305742072469375994120783352589325790580500645544447361043573021600462460566053672837052777330377808425973913523320376107950609368468297915166483298700941142766387937514639952961168592865249803892016066014398930888495436104191796299144038866764361665197920992552276131797503315969242181613907964650510394623305970335743124751972558330742020321222872775105094112326818479198228961591243600537087987962093240009292925861850150375696934795437524136641217342940860678490538036794126423321879866781490016419409837623963443720670245409869289366732738606092592548182500182446143786973988579189460318493096302258584897972951902378073824631808691865302586198325454814816272140665466532380651818824327151637709215267908571209662335376047155725405072087290862708386064633326110795553060720626916925216936056058634356627292478844405416827133569055299431108099912579894857569080823572433296090514165580672110745519770267978967382084239431499511481047210959215664663750506248073100371926595818267396435182629859426753632260214584445649870590924541278472548974905047737636421022269844098259142674861104340729770468008899734192579482517826879511260467028297810209455322300654015625306230751429734690726792404830242169891256521945951667127228289693771855549815797565866752802156857072286006767642720391989266871911890042231519970393110004906035884847098201449169899595272373876684875261120622169205566090426872467753469720126599446418900547835504500573360360888655123505652078380777438126133365292757285327826986858164427801424960963673284186888484373296078007898005946622346491159816574366201592694225247891955427255796533545616097968052902346979565387890069770459948734843423094654322335923054385480062409802894292678669174780244381563686914890828343630624313215244644649507456281552471608422031681651514672855811323456558568549489264096874391561225236809273072200779145613980528554441978221313602519869691154678508075151784542360558682336171437547373624646676516657260872298019354668141745770213781889068161474346854921552110478242647918074404481629917067369871729363964662696016277808051514918832873721375849764234141114741928990686942922352764141849026680228156893608212485692599156872228634707125047254710305555267461270869896611684807289636402060593344755747772171896367591824995792945815515651432005074429484900765897451395172677165566304717588728845859271986897595957837737887223173744943806562486342538439286962180535502164091629107507436323316047564214610186216094713517331847604511599927205688249645302287979997688837063293997549701448762949898062656951146709663844540225175562362349494221980161379996317683156650291646285891879425176164917097443565982340217041723672242983104700724149939315350808558383727051041362483594304949188586075547700815702850884134510408434408165446531454159978945448579717967791886830792490890957453952768865572544211256015224840030119559735447029795041521632977258030295160134771267101822988405996528638529439617615560065416514494543319115920422920230852183336371613546080921075359657325063550717286135205018995988252483812329975698319581450196681952548420142963421581040537623344978661748374679394483412117739882750097191866295312822317324893137606375068265772313213322823354336808020802937513670750448540936371348853641254443064875755502016057257359138632058737144152310094891675413126239932822139150344697076172839425842967499780686787806573171041686551540407969314255558736769660992605755720625124936034655560346283877098098751079624743502517681144764232047695493296338559600805554986689538215219054132975456441050521094954699665595715142235165216150535587801728546585303229104591548895183320593332115116394571997016630721566061131216620104950922066631419359607510605153287103465352759124226013908435583398693181060355848667845498250102668215655104447201739690180633779136062218593606491172320195466922526250695509473150185450671639299636010126401797354619255160322503706862066647864753965868952368427936179219994830456573781497989842533493457912382183785150528058174150885791630658244241278674581444337437622298957714116078440610153318085841142228967492781725264805220081480139784768662870580023369481748147160603690155942318863199438605932567395919822605941408965477997481536802645892037657558097400252789404228178997920820976314455098327720013016769138274893226872950750681036318272646395478598450492006398094886791973112573284501834198534191614174281394116357520369256832383480603126762436391005542986282537622304545963347489639686865881575894080310437173760230246383906906273263693233267947574003617397829268872800178610498455584033691189182880514206218487899969146978572153782858697989407615058459312376359153676454764068284568009724090615032283591025540719657311248257650279508362682208789291983186871081719862681874868348475476856062901999842746277794953297696308290752154901675250652377091043634847681399845851565603659019858607897995155573913504203751632638698552285183811523117017718353874483705900382772024302113668749886070760112590590213272089082454710783212737358762670458115930898786478057874455126941389947053207883038727680526688620336621687773887165463620531086298897375659793784225970497021136604816925077003501122201509678815353547833148488129402173194308942003479513144487143534840250787897287597362878995412883919607346759626308621526249475256819747078990999870560745988463978863066035263195806551045178934238588138162193460620591275076513461069870036410475730738776132105883456762037181896314706763321037483703770799176602793333994615442546672225811618493116690835123191144303072950282918073477468686344067940917903534806137313845464492777452101462854059257893148337079043495612245455970214017049102434591980131541847355489492167975013932960332766036146295753641475512898909998104575030266544401752858231936378205051417095821966272064890248169766953623914419025517597172532613636955202407271534390445539176560080984057971812662675057089423728527296726637080988196732426353497007595054739204774178490263860874713018067699662206323846229492186617044810085354604821254429781220357244960245174769337318491127235955554931487006849976211884226331342938399520090033290382745413129478737867052658439878281468902105172334467975521710386125835893216745566752725639418801893245892575967433587287143260104640320975435456753935009555517758936999997884160713542251080546575373278209872061705221408189257953257692036613574205472868697122647893803952212571407345960354698036089977605560192025813305331024946494109697724678276491661493083347452996720742575781288611857818018821532471090212891193206782519413981269521211013919110147838949044196359821703089754295295556097641663715913211941381131293200895153897727209238424136606800733324899778349453436885250331423914208142176229211508767136085020336611594293441065906112893512139755940923430999783453210573790738210678352543775173403770476881155334044791029070484230665735915869089577392915329786655332976774822076576418129901505472675228353350086053399999974051442109425191192043135118860750489831143771719218082868762654742054335972754895036296757245902321227703789841336826547988558952302428452856766017992484071528921794266059099130211339871548126050053009489588966781293424826086875251420180000853285876111407630603834229652362712028883803635636988726908947085376955966672814740529179928086069209257503026799921402634037225352917082222722064544934211479562724750851229752376656278123379388543632351166398788732851097360515716619286599270636352925231046274838456253006789555835120060189600555439810477272094794310379909727192115612310748599870989108186192574748481671229610677306871440219767316027592513595469910912765263005791120955373511951897780833847042656360333064214860345518408085153661372586396211134670015138456600192758981147008747591359180561699425114585105702068578461516115137165721454932342672528743759299752815150352418189688255972522235585464190647467408023793245150459061693293413396161340532985115184977447894046109595270797204668869408131526519462333525989264632856131085146275325595719708935725430757557822933242018326085213890280956907816544082178532415491819893316898196119304177351445528913724172117039061074259610297247976302471346681995060411821953459555888574412872807476736909754040469970475565988968362114805187172294945165482459152784356713527441519467592093121775802363000797427820579000101917775345987501835331030743985239292294957741224123004750532195489313993111258340616400084703702355761592252433766278982376000931067917271899296679216880065415406704220144872029268583943678826335278762695146885170104461493707797258532731486841717638908794630337722201273805049735431232643822151821032957197721774495928319643435081426884184155371445690634294996396799852688420247903196298270965445087740241853060096792676268421697727747347119583175970289177907006878371982195863394484483373351090483284496785455344290349980641931499030998591811260296272754270116090958673123653694203012823247498767844308294925565367703472420635731104490154894117999862575911021197440382990346099393440265736006511941358931396945056190746445919176847115643967405043252576907289157399475385410626336061552868855352658624875959042550082823341457359460881460318326683498973883071215925531763929786133234525620161649191866994361393153800723263059899183556574065043707506642648513150203776975175113525300504291049278812408940389132720752565925112365801833733209469639623552671902522418773612765589728882322466373371733875696910896362386468081063522033621762673246647935346849309192893832855652351872476786505141437391810568925741043960259782187150768071001488295844269026814079103614125175211749108495308102034909809941750300087263569776087124758993714934256448789333336905327848074253660776353979236658551216435159765732924416121078331233942695335090324884250451568310005059186721907571306179548384070809026792102303037427317510828878478158383761153273983081638909154828064436991881546830998101284543680006199186591414935067786133922309975266081336514796374028391039529920647377312909916974845637979917413619659747354514362571516625761093315976703405893384171549861903662054015905461508110350616129647369183258527698236888110971636816419730046243081362071111799994406427805316164856761896200068822081755590080216965406776923777433453947205989358497461446653969234567911306103538479396582160345602153352529848945365220075903748688340879132694940989676263565905835989078055688969792025842056301802940139334019029529723683909086091394321789350631576786852819665436551168623770594695170977285039618880911544314761158936900442698304885073105926712701855531384411807717387190557715380589225239075914839404896642536164978174605343185644291411172726083536964556480939852842259200055863645973922929516487878843678619456016747877507058408538343232477015886061928713518564704473490652928829899063933463226370938959525082282221070610294945013723592436112932675436975550813556619725165873704695838075516246593523607363817811274539454888844377145195058931376481174999322930127505464722444044718376437121339759643080222292797565466578347715635092678095547632644473243598174331976419717206226529333539445987761230133909655000416194043884378561315484419771920079630428828525481971524064589942561924236567096348231986431512981730992231846864464315020186045749059596191726243177901591485825883106125673033205583545266391031152483833641114586839928057441712989135169303014453481697079407515091786478507199022045664138730175873795861749145423201002417241668938809778879290375978316671793304097710734533218554586430369781709558919582942351853348078560635795688988756419895154196840456006327473638901807534263711770946798283447594494209974424963299321319327642925658685992705271831078404332751916271617868112428864394706140455759174014502549233078876406055443994425989069667009559108552618631043799147935249097358633095229872913942359475536656477124666997670946332631620942795996742502457903832899818193148309447620421064734926512237620752691608261417471491761997863598536586627587256082999132882379543219493032126282436751184209616524154367749254045261112610507198374272450615983676255455976484970868768147344367246839598414107463738199692079474987543370430409562499486728306082799820017720924357182532104245226190239203077408472285513066827252191405207345588486117674423500765100107023220649932997791243551350215554031857150238510016017614833790404873543761936520675169836786338667794995067972574313858853563983981993849265764227959260560329044334292049394810913131836857129631363783924050070569220594138753129196199691223321307491127578833857004346203271404266350648675346547535248761062875586705359206974819017541335934892140327177622504001332956303830793918687322357950558773442583982580159637944350180626460466858323234460031244936383789376651758974364300059688919891492293112867029647133066781316057231916310975922658663899672240835298054607381049460563503472999963267711574250484197045295699539273742654983807141425709866208548993354207479081350578732699111363868499584574582725753210570195651150344428588586116243235762858781034236521564794046651295429842430729561155168525486101916665967246773997184813945714459585722136838266877648576709588189328501428469484200326759120101781267216407457563515025532233886882983293420520962763729149308293189573794865594767320467614710709948821222525677330614345676681370385759947585126630478673568784139732314469674455766048685789154964667386379202744957861786851649928909423001734111514036639676114208193728951961377981180565839269816157441964710161632386073271249663303710464544149734981695325188955611918245093725583109556193520151168704975491263201522165371844220808613820211243650052227674392816056668326979434933518461087588123592067495578665130448825454096689332144460313894651092169883268303809539191141370264639741952846144357006044145373554386425096295286548770595359834427457675667339939934868401280896142660121389353347112620805953995114345614125854936859723205741772640830783763999260520975025279146363118920162485907327516821497366852508254144309401521253246697307827486419706414332757008682352323278918905624363226782162668092260391914300395332369362174190861507995207994095554386341565442536072699992092344365288558485934084788768246579579389084577464147097271200287519263763628445403794085566507710136881373880390221521320487283906330162790192828253154541214699517042058681401628985606122959753081012286538868550539009325832519486966675129874717763076637766309903382835376837585373390492457042516406951406534720445952226626696352364180483605283198741152343888281190116012301654314147558555781738680371290689771326100387113179892757375927503383355459467145272316539690646368544297068936010008995270198529159424020723205675224172500495584296743644249468433438211176027708500874642438046165136561990546726762198005445142245514142352453566590891891821339062740827212910796535063089171846699462676878985180355114704485806844898919045943301577156181463239404881028810304951011206690989090853766583211096628580611951217231110858937985584989201130812710182278828262232640490744136704238393522296396210700968302327615966217175818462824756068768393210401085502801653636538789325839323695088938889822614087852736475633084512133920095819023146014386232531428403624929718077157358794393977046940425445440259565557023654187453413064836967354862824055142612999013300362213112887178716821254899649844794466969520935299072053986372700006601212671656621592574047047923431568989175747729935132706023186007349571900790489001633481506032553198192577332462588218825657943933231914474837758797805526330973600676271284525772643588766759449338651851523010134926004772862826768015810346814739909024925887206206904502826604842029875730646437004108825423206573039664362118645226787353579561608410844685851128441599043139786954250420588558239956567327670036458649968423006873354916028594154882552386512897105507261260533018997608030169108020688807107530555937458386522215911413957771462783319599378928642909996463734623695861784862477394632778414539485950061930569767643082149240942526190508944631653876578461041238597937905292777612504851206382537905298215214003442925638039677693285160280170924352232529901404757761669391096515404473551134722403528022753731681740706008650647656128000767353760942247420135636256872576926028596938203517614020402483264524217384804787259007598941217283563016462104220194182149784495157464209992947357135936518251980389946377969521712990856923285646050335792188462818280777130696301296960551510527034515255165588496820789727389456544992612906047701430905990390227324579632903348584702607818863284976917184197106547921883432807404649263858273084678942920670867819046156122436636154813028825282352174831429845397562933001862602413562751764405371441883475881407962537589561709923604048740727784205293042905474027163841159936479958131756417160830184411638054977101217674460313340389102303941806876918416439282949760290912907561212764533945605320655460437080120824547268881786024019555653792089055658576998133814386757331684781959176286180460792520232630817886030430906905605838789461480620088995407022684446668743307149167763296979345771399682073209896359740895401912802358270849460194362459795438144955486607430918461129795364974494828242055574395218662860131791497872984600999522201262634302741725245895161559811260337919222808359407097011726110006795772845694459873484957171101219992759117895103557406139697796963111437493095918307841139204893551266667642598236768936584255799308672765868795888114077426593370168274359824687866507347723077511122801322570501839695985449876608391970947018466432849335449296813468065527972049076873755455715608409733999643717627038991196837870927562410283037305890428619925331582975469250005397059214840069167051412000570735363164540810647518079850532856041319399716674082868176079007426607744766348633474391598446804432408112981838427606544595375241092895846825842445621771257417762181577452861825582486976715237492396772472343412478777708346670806292671947416309301246273498467167580593228632710004204442176184257566642176490803542247217189662091089157067606640958659012975235389085664559701348820633269921844749013909526413064000971431317383505674557954071556485016618624243747863142816854855349206367834108049724987857459419930406622217381367386534929900970736271305640971771702505577348225817787499908333243607896672000743119013224850291505124795927294120049612937723676818621214022279503841753463522957205451142923773816324766225129356872291357945350728076926092256155832997811171172310074430193300840652890643330634513056753078991665452506745050321495844974315421641729917048683007138036980569582090462948941163259087107824776140274036743632871917121034078440998247564517167112531534802187891911764437612145951385306891366178608776700748611984150927458983902131738663211960173452350127292882347551326700207107083294124940283183377330233831721672980729688166090696976907601600905222701671109356756985043146463628730733271808601621012621834168325411678002805571593772825163779830795040945601640082726636526252131127093712094236819571434755317904583249638182755428996350149851332030370834825661386146605782350550781236762589468690026479538686922100196021754719325316001607677684200226812534684029294130672042090620195508376246998037973813320298720389042743008952592201695683505277135886136040674829445693124397351389564543989267081487868218017636986715557392293089129531278646909976271871851773849156664074320389623974630864296402656921083726085064729636498832024581554716954438079701881228379623369438889182936447413461042509557797419640837390850678609474754710209176132609281813606901211343724458410599485339086175416037530936511976558725457694756670380694528161255706055269534068835169810545567273736220697961014743441749144670607813739309749544231875082055050339085808677957843801476627484123163788652873477641020585204991307555869037422417013145888930384759737485350026582298719980002558270284569518999557195941090879098785325217453581566417523601661082197013961708365682877027235691834162458458431738588498211612236880781820486038609253168762635549864689006816528687444808407069083985848594159602960030474029850902288713338070258131728786121456852385869133876433626585844417534644229243307459732517214177934261120118650579338154806573545014277075002430884530160711042097863990481136186321784481470541498781638805075632432350018964264021091772386840465803759527582314922032343446451795470111295437652040323257550405981714592141358193538008313457927742406216993519427758343278275510341327654347807936442281883713201837769023268694422657140941128274905985317993088288565189102413541461806676466057909150563514430780063175548019217830063837349225373374100600831264508463336610425880339187760550613921563490440246560765169927617126975650080638500370531900720855791410440210870469555200339144375209109956941537335902554503205621889019306093728241541014793776827115962053438680069687223965186941935160771086854787975476931078192942216271414162993624554557750326585626734537484087004382537899022097025634470697253641444107453455450495267324985764347310467621622004549896610063241458695901298675177526449895836669463966357862909184130402166875597857384989090624840261712570290267890992613753025478765195774130247022109226498520848148821380240691723853770947506669857896657178734088367874665476348958214767817748805654013864717620309791072844236645250092107317444500243401631781422510392855540605811128514609602237298348521070017342453583053001187232671252792246765504336829497882912071364057653287316577759822030116022513963374095200114754153436239951687985975052043424942025408573548714338882345675707803836145946372184979764331209507130456171138403774687029447820724977088752315590743742599137264407437929758935499565253673474664888362651221611499384449916229199488504257563121394528143564360971660234090235855748141191166054363219075305528424735560301310201024739665582032118404343495498825349349979942861626005492062413933415891457415061197086447841130195693120402403029390369052645068099852342255581670235009651162471888757948671454547101957067326093856818336666393547750607950790603279826458273107917198760931957414490069452042463376110530713036913218061992956057514435035409010687226501586505694204322993867247505342721524905697919373832117127063492773357048961830943352444756686862429509402575201034867083053995398145710772922073664528491019315819970439550230321784934257639948291116143560571177541581551134160361483015932862231600724588558366185355563142177074235242123225695307808038501672190348568005466386540716937168692932893092638685409870302816670144749235977914111330007204580248693903705331124761456891918976143436211585611823238352674010124053950887773503589331652080837999661715339209359276279600918647167401010501294480195759209887827510009943423618989517879643854895157584226952550330628991380625102902085202911619479537555452558374877403487248432237072659984840121147163754862075649088674699590415287942418347032709621372508959220008924112291561236027497981937262010253835016211351160471538637052825390257293237822542990054229959910365467729922931410200327438517211269403405000947997387074205405466209808989771284556437954335776241086120412421856752527774385012038116057796593158761283461921003107137993741484581411991659081914322591330132095508507119955800757818476445279849100904519059948390418724001446435740753899215139132377595669961499539635442566907299937349619996734911831215288183359929384127846535827660772137183991571200295836539260589886867029444595271066926850358544829892839800879143247474960874194515630262468487573014536727348160988247511495115237717854925941523654935205838998857139833260696095448810544308932395170132593468391331919553556486514431057463037370534061041752696216201553485645876272075518984004868853843332598137626225773408030319201098879510052060599266165894826354193432531253400436439727261782924919746805307247367566526163936935324688318359467809115546196769614830194788617936762806899708152842985624475740926769659638404808121645427838502399097968366308450557153936830026998366564425880166003820794966556455895582012202788504270477052494174032248835430819374631895599668300854448829569077250321403564442260395856308858180649665085779174566324332476790538574735097618381151482485690079062349565523773372965960721379686485158199788731974584629294002215738414109974958377820882495917850466422452899910497532947739624041531385205914752706351184974585073661159917759090903053215104713547168947566749125114120564097753413096935959117001382442365871901857683189335705047000502824077121132284131312096692743462339546487445080410476018697898651508241930772391887721070934729965187312063783638100551720039915690288956773598339527498846888656652821280892858580682960477594741294217701630441924584166639377593170142688470947305261963757289878342637191216244507134801397543785623560259375034590637345012831237462697226386742830227995022637693831132348696177632675999227457583520404393283587213262603173467550658939837188913151867390199221279035241537722247513295714435104790756061507044875601691565063922334048016568819464825235364797355980245849190759420525841779636351763835719345617925713280531564199458369063738984279089088920326224369046654258228303449131217764057494222440101813052265749614302424637059082846952553231620791971547765237292921081582416124661076568618405474790387163733132314119336007645700158944335667205729905033302074172224550222738562800086836221398898683356457992181768135575224294204890759548751077371260320954960042368313615521086469227620292260464399192642976459739521031431879005218288799135510696391772513934715991866915962833926493664908991981702867010062316314150424209242113928940072999212824400833613799274727192542096891686528488447148773265470705805720876124878027478481919091636246315096126255742262286771196928192543848005960820944633568414396957065477744923101661886074087913332160857060001888031795363783426986628048626900907056206143816900451430467601277467002243111562049294619662232373527616031507477402388327406389857917309289004690123798726043406065987528447350180318960873310418153804027522098123218938701319014723664939977510010133143545484338343859551518757555013827314133450214098257754775378939576971197664927081508358481374142600450550358347500959978179807862519867534575111618586341993052378881081944777189958402350116022875805897222491667628616102805487142110882916014489077784793057378347854728552153629652977801118342212240608805823546655528283911714426472048718679982201409839957798010463140782946935202600435588416964476383283523180448895817746450442506209069715691511599120726418863099218272541444837877201881283981598527863981228368019631606474963584431034682130529354448846990669954931542648589238659702026754766849176181751820080262205751589239776589391245279619416317358929558852140899268409980824511401540471581117677075688899126747210504783143446071409027097021860991125145148870554589913963122564176739983265228509734384905476471440315038753754178311412998426248646975168387510766177039442196535174091605258767951933629875117886678412970590153504110451330274321093403188241816664763526634402016450492193604623506361462795484039463812580530710345884987960579136430938688062644839454122702785557371895661064856432082260879017918840524403405797535376005078815452732484085179971148184896823320904526525532201763936477137274477433943569854221295429273131400097382691282657538898329188661955320057588067625287181375844733774572454387531442838989640603648811526532329618895295600528837171473823463515822553167577361125830209174259338488383505992042308414621319127270618209676385099417567589675444806403881797032615382274438906163130161248789255060656895257274830593896541178128145951392719740028311375131251363023533138010790147585159106223213793255686081291095002037486842432646782071287536102565523150745297173594619041313965439511553761157150866502786286724638857589397381826202799606331109031517378197031834737459517518384799003303108878004006035779547523441001620111475963593501405003975716737922726918651994669687686612697645089449677220559034451663010985031612273982106908506848671311520699148604195185496113622549889524543510041161847286222370401229875230272849338272146936895688795979778876010634799381646547975161591841455277313184178678049173600841038379967214134533067368719043030472938081144257520908180294272858824885078771290820312065016624571860266304323069476344928372984812119976258201156023534271843492730841354997825441491938378170785442578753393747750946498172715569156734900422613042278304164431767007326090295733601947625202379150722413816807474177708863589211800871213750521439986620203692918254406713833048261245807005922562271362073684174282573792400732492696786234516679554811422863138676410431805309435875504987106771537619981914628259515545651367152201843669962846883415268559936451859476090911948275069155183734352579032651954145582974228143290119153763636926034479399626353530965032499617062339761770705242387610675649529680308918986940681356713327619577753551514131994447675707774390344203621682654049681991904054103387685757104442410696267255710741068485878553387374480679190116220828062188471635494753600801829474678361362981009177265008295060545777292061197100291588205532719722260263192113204479250565993941095125140845139698165164046371196957178264138092600369470914218422710552445886055175033616626696061648938154051402866759457989943584072880591583865980291817778496854513541690971987363616278759854909006256453744441909070728739821531823191239861510479406032512376674986894806659996727465133211847440552278616221353538350263845393405925106847763015742606771275066998960896479693620915948872092149269979491624648753127028573458508378662540510610167648831996388367134275747005918661888325330722814762078141690291353056174824392184555103832065848972528563887158640862416842246104551509654339207899557923927727409078194976093301103631436005217745034630917656219885234292050758903123149543037526915289632994839114057029856226330927442383191992264084375037741037571243683020679500251546308857041807665431155354884048202576292788882335382605545640941458809116564662328994546611884252281540524406389877291312958968326933853571535969001314593794110611633308815001079919287215118691659741446110207703599643905084087960003945730189711582526561767793353526833046576851600753289852698719625173051513363300494358999830620955681165130451615816933054756884755718161808617518612118035046196139851663692848332428298667927852474814073764074407587213346509355418761855118177331881412203537602384390618968009447282055404902179767125375383245428411180197951685539620065014696752608938316188624278322408089749402249356740756523719858873454495535972340038147761145429280917849450261779001319133748555369640386794928291569996047173365858149495035883539916911719227125965868855338420353679652547447367447451253386527413871313456545487269147574606777189394598503498394092587532731754594444206695501485345890437674277611424693668183901375904112828813017680276061506180154660112414236126897637429123869116255001431285023378727895920171165670257797553733026640242235588636144455224960206649328205042808845797001781291266687358611293096080939619077409511143371687814569010603249801358749734718820887308357619566334944345719095134520567483559273447912215808738464429481096336015868200645602384695995565536536459462108180057996432091973976058875655308085247749902397363502277148104590021572896659333563883118791719162749940898513910080367738818932616697645093979511251309997341997583059385688742299681917986517340731535740991880115306671169217200847304043564139006839914500099658702407203826704043190212591124991298195824913670879839011552440310422974061376679784723587975509253885494420103504601072415743598958895610133949751535079784530311419283198788847922531246797077178717112541070622960423670420296178613018508448072195382178255189607746796503896386244827154553041417265031711608836762271553671830002283296768131265495797285907618707971529674121660744909860510139506841736412882257293748527722791441053905012601179987331449047693342216492373771692120048729933660407050418341777038465270858024833677126636678657132089646703280329567572480355788961815835377698567837313896540140595736359454529504447251645157658352559037674599333550543224491002742606038805894558212408640558433775219339318864841750881405221232289840762417582107701140012834304807908218990401438648104359454176174427886091932997162974460708548105830734442268230476485005372126685224699799418702289306940714167331120190468915266959151527750926800400376220849962910078541337525543301342687783275270093680287947916424489806030616393111717563908962233202817484219286027400226134299725516144270960163150789195378710922554241688766987809023547481162831179440735040196897402396273862425936399617016621532613520626747931409016056992115699070310049502953185601851628415163526814973577437077146494140470569977895723552854482692519534485291416550815795996410985989751399721826605770387806491118494144759932057080650772756085366745222439024961374304781517410736202695721666027808633465259039696961660455201263091063635461720722390255022568069490332566623723906047606251804339474025933172904765675718095640102025738578173812755135756868704358216768833396972983363035470244241550269390800086757971454222890937764899596574432101102612348514174888836810205353577319311232342551213186299175971782078737298586982262151180144353382313280354654657617105104291685719030218727538172809971726344117168693537983214417217868205593742201621486348419811349675594309420322614169606780711794427999744670819120821922287396344423710626255671817318409389671614604981636099947951841065268722426409138741094781916663371525958825656759141511853013937800147822571421226492187864774240840779532026970287971059767873844408029403408631035935289319488711421239174862777800201114725611884070120191737880770343331230765047237355447831551798376337511488685422645570134275676398734739923845609993597060172189124085514142295884556277376154591277436946862501928510550376326658309802375325078276761748308348892180595582777493349509949530053616329648076080275017527782543893862839172745771611878792864489312626547934451907667033583630420651457358726936113758361835934628721584712758143841554059102768956517887541109630423629164302075795646396167731059982260045627542559357761878540891743500078414529081374517088875368997546464831834637445036967214982274635851415206271986113244592870590121039517011957090282739234603865449228779394171371346201988853865138173227752517657273618090385379711981633505097994137915011202530518448176972079963680250296248915256547669492909909644254041334413715873572189068726125716044073391828191644291382367175881156092296524832741340025082083041055653857368290137606994707647958969336505089895195822341954062046702529775409509614464166620757416477138200949733891984471392554918775980353568005958392374396899622727982150399286253346447540393509296573036916045195692698852465123542581029417488050341280282249733306571461150134257360440984537762567472660470510306395252153970125624781799182546353636359448232288454613887306284052911879580693789596481609705718172244010081454776338176164912425006301544055588816638223445652719126440738491443105387653182332143936901967669979880503961872721498342079474027076919475477082502678935304746924063557144829650095722154504499672717051173915033853139165930296065907579873762206405674063823758989607907448312527680670893251452845339152264950959605470764923092770115800170357135882004789531878112496967473949016207812606076807200278491723261314090381954807078461197444815173271620167782849285331136769550821102066333427988601592998919799221169481201964297047552361380892359363767326038595947992819955092675119361537573889951092214509322676805082252929243529805038067786045965080163424191707812320229570089165084358188067697950428863956916088289726572877674591364135928796870653985976767686591691903448182772356359900256530359449839373813830121659370059985203072346129461603391839839687669105322849603768056529872277822646216913868435800556987661448329465045858544113304096224379087362653188665075991052106546499120562433250676381673932719827784138432919563754396260297437112409976936481396764515127552951132958301336342155625529042447201390606755913813717747217448696661938372736688450953077367209652948486465887496410931566524016939795069316283188435774474107673249255112574416116669682862213576287157033097869230006779916184411388716245766336717420887954274053342600744275383659848201095668208566088158011599326919050390834722734697821020355899563527494503877832605636081281238245598532074539797405781088610450521135082474337397850330693018109556298984859918456054411256705367094162023513879435977051284932158663276486219802273808580630493779173298685085484466213308195051096669219616579870898682902731395320995784719164929310472134249406988976764606912104045891303323626745917852572248908614112425233457205105423718030030165011774746450977185396964969196705129399127188191086181801394317740335186305051643059745465561124841550335056776780844824406034361171957405218557675308145176595826088053509520664965348841726856225732585065575304557316552923306624971425261747755218040998694953000262986356278719460975601678753916423844481771661009088078139964233937850258843991353795193712980858642748696546144139005644183639645662253134272032997549444393721132672340594532689695498256958092843481564934267758520365983841637710554698875714235331696111067543470740104022108465547947667515171430634716521748992122934504534981244245336843644466321147960424597537445247903832370791386553455377380249100170501411728902840423116351206845971320715994115695407798517504437494770852748280160355758814268631412111404174742842542927222316332033672066040532138698253648176827221372095293931553078642000052768628856993358057107828677169511184267171233500941414230770942439569307127360716440338598857413633810204106343189197058346836182441914670553048483376472466060445191881994054244267382781742899203952445644100011527300661545713418878721146451061679396079712852356091598264431137429908181747897024632094777885426387318415224311782903686743184751754302703187848930573178969480208915690592422558227938175548848458528745227572275871799909066072909070946038404103339691551030677849344677709654315577028381746362267095597792274631006155522505887369925382874614267295044439688830104519016587509610284543375891108491518935757867288912484360054528470634186151473843905545234232002999751193352796953296868195478042283162040913126306998445837638295606989577385281598732073363994063812975182816660651829876323693604166720740213567908168172530188706594825125801391628509565870517503138230452228766207146206606228284701300048143283044276797217966115786385921110440888076625586746286228629147892140530436680148348794677066107191956931896136064248319793025317799535383032849349825066663546274509462036720296587688624702505744251598963522421988747504012900950704781611115482361083012767069043423269325156269497383030971268167023705841989468878773164400571592797016227501702714513609515988456021011577341672523522983784975532551901792022239483187455942430818376102628340985187072373984214866609413274973129007883966002927880140781867286395364270277961552233746417320061959386755268930810619108713442411250555721831569667115739373458481649891011206413621225885055588151302782289241346395749718194584324215506759168450944922201862073310357938638850036302501796660279729829855235671518100361637316022412847899805917275703459914475156050669631599998150463307244429087036041104303750486752736879415896807665832928926899008607485371777497498008250165897128739808689168786009656021106518113600277949624442156371422986304043161820256078884215072844860745557944696314387384739507177458059514986211442287061557615278858296306044987683910051150138118788308118411991930364499921225048111115927903254142607918846142186442176401029929731387652453373937660388484198528262435250981613996647408050413084266349576748623907045775098722450297609589592240668662788076684771639622499723799438502743377189354294905467912974095787676346207689420467375064360725439887481204557551153148434034955801466834425299816113769980422150340599816740774531966208291471887335052389794342319598221291637344344687095925653224604993571118573087990415882151954826820306853303466152902463523940756774946454119807672392426566348687748987117504940536295871408953647872671901539227549860926640224296825566177575999645603985535383849697635542303920360554815388028590684700736525526849792248934837042934735425556745300507186522733435853086859040990866964289842369734369684243465319175405148309756116571880137800620722968797194300584893739645811064933708038493380768778442979317218759766524779476784578626840434359169058367974553794556746557468955457482113053961453732234324555086079972865715503968169738369920219748538132867230471187171803232168406680789594720308036810523848454709905712469724414979904731910420689670094697640654542940478248007914010225328777286613552422537921613081975280204606966873999055153619112081172974126595341767037851543309538407391918178857308742452764305858580384658080417882332546630662785640811330767480307945084831696724846856465261954176978953322209648305445724412191119133202005904364664339726370564903206377318184523962498946913462315920923927266995355551689797886215973329745914643285100261290470172217527140982404546756521961489523212159899321813110836189823974705288521755669635079632793063342972584198348233106394152862374643704940232443413932202119442265719137296666816841188149931656593814164353283321014721218837487918858861386017582637469757422707399543353288246304313483969864887608360072969421536058163647676037789709297004379820883578607956219901065638596739077549849540861451686823041966930334718437404105451123637260478840465400433783331149642914967441611404136215492406432414755605007598293205136655580520313947872278378067264157640236805205638633149134530798284931424479140430451807763319029664449607321368109086746312894974600126561558579269146094602078051600034529134178635051245882018763658779040565919074879352097359708129780253957340000889732218326359557202253493028286461917127896370532711090614448200949354198830871697011880398987210555955903780897686061594668809659167957772578777134216466659121152990029960288864697390740637124703841367749910552007102575091238244856206403587898130674493407965212685329180806367529983055879892236181932525609462416983048782126816649568454604737602059223605294231424413868130201039115478059016692438983908666841549421977229404127879790336826293178692637460891703255615627371996505235554706426922915783294345248688192705495647657346586703771759602535663765831280497767545316525137877404677647283849724564812773416144628322733782479996749447715503635575818995366301167030098798783155693252701951046990869241861845824539202861557056610156551759836524471837642592095292644975100005438477712625076513808625304884367467178635071410904463366719724522418953944284869475240528147530526577995356784538496577837070268143515036842020441867847596355162789791797998587870732826284646577692630044577654667757374056245243996512109625989368779297831142924586879932735227874875567543627448533218604774526147379501978176192983566998604943812237639327241337244269065533809624315226260704590965866111462168720993009135971581639247624253548744330287249042332234522659038026648682896346602829965096280181557761697050835444451803699894613406404218918643719714285852948703079160651354875203076469758006446897116548723580509333177614751068484614882947356962093314938040705473935010609761891231132277543662997689632373355103675378639127990560601865809769410356181464422890482109734918614638382746117975605770228126775155755634732520287812202075106290192873335066961113652807419420595499845858085025516304276827929708335527479932732402782838880723136731416664762748537392863144639881231073322457466100406681711007738795305909874802696655984899995302659484716729313484493937822674669954554774809633905169577484115056722972224084462473597283659285082320714607095465802462389364169757874462375029568917936477298829816161077637612838898966200246724006740541890580080592793522398817796909690865816214962025390854708704114025551514994241604628409620086992795445235569873848637819243788344460447818216595152635039100731164627858874165206685282267555065440776442163243773125534900003590208819802205901859268426071454925457085933184300878925178997111872989876357387563483184785681099876297554139549580235554885183385171434588873316124678597294003217813984770502842334070460668869304363978538110366638136285655028488449049378152206453424615807299008787265585370010814900079771300386949591651098069935469652617210860020024822702578332411164800636263534489460598152960207624310164288605293896845993632954362982281823040865732239627301270193531479734963585110863170159863712672395428358879840368512345854831542542974546895113509867199309384939447510557847176494516381026695821115140894559807317488221592992340089826087086540023352200515210599381771048331824649652987502677237053283764591379259690060214336227812458004181781812372617184107830180218892997122968879891507791085406844566883575089322020585277387084694407240262976833876305974433417002642305377247436780381492070102709714371843475104976291248540898586596523405979583862169742162092181572592834230175094351626083176943552061717957850371919953170884782808950547875836336740925337814592626702871109416345130995190235530375845021952969032439024042797873193923690894784163542699936038974241256600347962705829192323118397145328320383751192753750492467390519718912865443197711091595011892497439861077759846685989031675638478579557649731131692067408061076539931939835859291298474792636764156587362910178557997625781820358157895828949276023349185718124330941470654544045193084813729018975911536673273432714609793534357441029169255724116470790520600543615619505486295203568426691183718253378145513755670165396641374176355146383812973220826977101738074314158371427648389678295015761685751697708314939796150054336094323848613365309732749848423426517681867653877867743395788086235586768983169405939678216033720602057287391056740178489339451070601616719371787385766232823322149713153879518600537761941704733939063210471398684785068426536929175357559167439104971572318138230970708889127205658835007339408508926292133900612132603892233590556726613604596544943772842553424464316702836950577006818080555862734146351641288437002682561962253408784657726598065030376524708612412816262357735058223075628882341210023955399913615684621665545728265639802796181407371322411497281577507977065843372109298884617930230341387692482111659663588652398147361141758752075528681844092216530994923107443970241011386536079236373275378105093901910326274691365932526679533083076373036438673551086832833124525533347418796080503557157191963664518549372647610707229326006514671040230065612561888516887609591918427377881952855803479330345446106867228748905114423555653588354666136011009193593446269556870499179028535430500461350317068648494624031467817391157811029377759282459838503941359720759294316994611148118806360914176006289419706165351760838200033321580149734044958737732306523592548265966175595744739640096328663923934808369857847561049376696832055504078928984423082330215679448250275983646725318850137462409241182592158747410423984765752345279246666928207086534124902829171640876929760638275420007476817537680214958976811796378599197730637111559479820169160867197470310613483497299452599924113131831503288302122836780478570680435388919345301831083641593110699139978330665783900368806661886785749421394668887985744594467827647962937117003372382939779972837853714395783061949434440301732633189852285486396365160909551707073607209655423971409756397843999378538140154428199051308195743239793841063198056921215261044257880263075923597783071466926063154046686239914575820602287451372357707761415837661844337679439193358560427440067947861944655604757851022958574618516410770154171687103307687544449427984078058539337120288126914607329157895406582246896183853697354224193463823663904263359521086036129335113645293951305588717701780006089104222598278104995537093314915250213997796889794969920304629200251979242331830082325818374325991324818303922737074337671849896228871600818692691913553480101394183911083122121162519080179379723200847070543888036177334573278559206525373618387468058143229219196901772967897083327053178244782797013982295915514334871401380841662352939188052843420794449132749478069755693820396408260959312220261120537462732170302817112787013299292205192797128787411101665210968591128886281384884268525170339821236438230836663372252153979547120590334781894337511588009143911689678163624233774074531845747084918367244151155270515799162320953125519756562691088212816816622823897919769451239026350535747246160527357616759884470770818589926233005772904518009445007366045492559953583141251975766973502021836933520827243659746465511362351455949238714096822715804866379880619507825129670956511563748386466786361530194613877016385195848644097042112235501745803590544233695620866516967289145284561765142040720327349483007436693929779045531756648043080421608523774171823522578453643598040774395021674967661178248595676809012712276075189967561204850330974941204891707760899864543426671501239095232607693162741307393539485954273970365303475507830081152221124931253813985764095947403719253245543826876774165965086449620903189709174591805749813497082836827343351951035925004174809965831600548612912572900944295025342404664485925304432438046009338456673001675153208113371938223229065335560295567990278296861688787041300703404389656349736461850651874247942004730856075104471288105243390724021935173893687389235406366396450048805705919826923104395344061936323757890371572849956986561747101326776780377346245172445736119579474963188598455934548711391732770736926618967219083943523684524978641284813988159360713027315614550802184335427123047037666640022794611260923732685341339498047509071144709495345263903500411830531306641620464527521201826093446978599908178947082711645294287481294992784773135637835032219220455826011388264886306754512789582914071754296787842876188705642612115812275486299839173070669308926820557714290867982552777109787230364598341326159554008667998913977733168977800926964220652761791587876805173076805809985730221150716115957781239204539640036089477520235393595150564663702901535633531793308601269370937767200725968255923147266168541482661416739429584246738936389339599492873696623857014235788615456674000626291108178564446565636822675045060794057571073695122981043268730364175177016446636631839213571051713197848392973603421493776810802595322365209855071401918774363291181237893444387318279337879067629269525758088313430675833727704491480552127923510665709831576079042082811470046393152575063870445302904492951022508726794046489729509909279323235549279943269896447136282278355978918277438923780061898219621445437817596171437250808855311723786943313427295266546658802915840068105375213639539950952871750885904209032978442996889304648099015559245331191213894380968250054120572812945560404700065949038280070579617111962287786896118988010891469270127483983780159935982388606649268785545517782430308951072421630858390675849466377259452026302202182567840624874966517144429003303204943525694524827301446981536604054474105493734935700671939818817462310748266066741020332717874155493802508368698764936967803957668225310104559102889379218247765264396468509968544860194721368693457264201582836496840293357095771025438702913200120181868360827074047019822625170543165877884495574941778452110113878114273522675590058841507011389784903250630250015240330336133147944011084626590089803841394221178252030626120419228986089772953547661214828703614312135859640937000409696843348612215601557062309264704884377508965869206321573331798244915652849812747114316085222842398315385069058885939548885964155164051365505486099495647528638038287892398664435211389303315732689031863600997218599198571032117709033426121748366782183638756623070483012360415263842314686563024422711738005139952259770113321713385290023292530261247705317648219506735185511790647395038064607423401499951373209616548100363970507514349834271704380180057466012476566996921648057563957177456001092524464814274733895244762570103216115773137571175129261980404526251656303221260148340132341249709666153855824449081746469044401689607475687186286107817781928198525288115348246614617280502619193549628766501964924308214140737658714274756176008519207195597364653962746038110670557151713863399597854057201780062081414689030254058221080817623607281063417253333844432194375396361625288791330020687861782626540453046985346422588923395845733901986534082350869575032479636241229464370167966836105242512092060903820522550153044061741452680091413569383797658149584806824523130021070170831931515051776375449959896329364525901228227601683085449496514709563327101434296588113619784035467095149189047941510497085309178287447667396140302213261644213779220848055945091687656415933549787229643671911360275836047266336364073758510583929050633252117383914732734668316667321974567963851021272086260938688632839381685094351763719841548269014580994159018012805235130184466647497107732831433347962666137486545722365442351790461547673751148448340059120235856797790693525078316086104531848687100798332361017209064405766610124165427118134046723258614818119542299983048723308002569731650111359173468309678379401670266868056950420640946135591904460819503018806088553747913599310883166789540949656382331199154327092863302987083012622484234361610233472071516878629923649669880257543928037452189380457907326326405441663953984519431338434662636687959974375234152142484418443659921239961020274489033810845520336328152934422197418092412686769522371566720246649854156084802172149383424238925918224902106300436691152739652097390612328112836559767615356393905119350891451504026637032657860418390549291236806785131225494586544299827884516810631980120737056475439818261458500443068358183255973984459414100174475122322416261859672070002665590397711517234698015805282051164844140846923668049347504345342785210704716162282851217339430275357539637179798299194135101479325969653043933000856903547245233440538338394194268178114977697230609561499211425993435543231012027200265998183231868566688706996186640721535558112339748599001578976420334509381656001396867834620623511101707449958620008004257440422346808409695461221400072284481484135125845883670395010954036012493432774042985930565973434687218535859939571046573591142291727710624739153599182510260177177350103758697680271280526831159017989902986770695215123558397892661091474606819692735369967432827499728131334627323965322733407969508463081280438313597910100391033193799132030880958285043531447844258214152495136027653443864261263980305897936920839637123983069080582504328133581187100644289431621416757907965165451570389554004041210076644891961967334000303673192915521225587846098061449064628166456297492616678470051234030747670764614567299946362477733899488783962231235252842911057585757503574654981985212156521942973958754648977006013834298087856603341566087021317548965057648404648023655579182876607478994723684458495396940474582446833362417510011558436838142415739719068707831176209098555423961463849180439956017444849584496235399252002882813835824754014795905819532193472700944004198620210276481474319776505830562145397609520319424401236056482795947711090720053844989375645908029422540288304340936150570366291085597198307466727504541021145959123171475844206573965596092857154209172879476121491868832609402235666817360579476818756395379204057508070101389157690979622686399034210450074765402734940131842595214296001306440468550326753387967279250214054428065599371428404328199105427696565751805692764968808351987947032499972026947374908519691087301633335040632507452841813729881957394211676386593593234365126750120948426608404772432652409358401952689269803373147105149401008951074689419509520178136580921436297819629263435448364717640101468198111511922295501862937395770353540960531530782220524290621219280029098707585281778800683496008627533346340490592634863452659237119447110506484284321152762164051507698681511647280123157700557254078669947588703089326411294314748178400158483153414476933327002307565946203780807177441141211666640667907940400757747487924344140096094792315050722288307957214287071459250823116662819991938485440262701738511305733243711532271316783132652540425460657139081467119958432073928277727321520978123934392915803395403681035627815721206105027175889583008487775263975920065136833735958517642050489080491081225469494633946914736998359830918294752373149934009435145465470122461973757294700269222867333461603498331261145681216578477625750052646181372267186133011901371217282741451147914911188468765449788066095883710109995970059040716199609352796841098659032181815641948510560324162532350492786132354211456129648109388724618467362361945140835008160478294549151404795132157012458101730256995550367347325502946368472496642336601777458491835396832843993929225049401465494013766947180844459290072029794140037164102864887169071884185127426992615934634335270158803814242410677287764990435823689278261767332513304210686720829377625559291052183163815322615369232444186218768544637708467377132179159151223080417747378342411115788990028407027849280549563118042692450426280802060544660624795931046983631823984235696643080436775288596814375135696862006085935328818146727054783576085021205882344701998682949214348678096721777530637474549104670651395224025342239187938067898657500234321290667531258548706084109929997624793159616844125025956409652187266265068446809641373664872265839233852208522577928790528825958136532308404572200920484055227412441469973578398953049566383428013480532307939634886139728970635360106973871436628653447159983961463382396530520410317462850323522461799450868206691048815250002277571378540922610336694260266099952511468956248105927341940600471300923868431892112234880493074725671082331459294227310224094164734814719618005158243812410667958471557448547299955224636183546222874758445194924545588583118818577817541080767406638198646186033621097583090591859137536630672247279199017719783922622751031913360186319743321045691001241158600978262360632688687330856892713619389636345501822031792805461786063029980430205211546153557711749406434222374788254688890550751771634949474218775724943253974544624348982928611290664767258586285315641244783484692312097520036051220637922653055973957764095687076903088750932283522030495849893944617394525312436409478285786477731184679137726490316896654527661500321563543929395000820031758391822832567554375854726097191105383781182111845239787885504390738894073278985653222434779305978366252802604284771880265413093545184637422323707382063864339662043064151630123405030490443938780640098943712678873781906915694197686481914424081888042088359573595578895076988096162693005772480356099611256182540757699942120149955908528933439882601663384463842458342089409926743380406533126276415690256794493454567862009524942601416402877795195197747593827871682911971514353868953370227875129722538148970614982000822648032347239268095466110461215104188074549928259019643794846876228849906295033828234369808368278520839277379148739915505183015632851451072570531529773353385460802862545580301284346435171260035345963550429339200709280741418772584327070467116405956723789986135974626929708701069958181280477107555272087133541584108207560936962702870145377261167191053383343199514030321495077232197570405331757646489460043272085350971440315415001378130157427720573865855437863365502816051960655153120465329152775682722306683563096884609025870300868000475589916342123498813135148904144612396844798912265708340076672486671639518131557935046615231294453957027690622060831399410910216166423754272613726196369530024433879874111776974893932584789535775844140005222855345273039072300937916476310242548676624261993574392027795471250851080364326504851030903517458869856817702190566345799491635491937177758321308646961305770906056820927121759671362938890783218605547139247731601992625737911048606750618176333065079073792278846051928320120635156456441148745681799015652294820388488425096847104024834694086260791747826134166154265464642698085338500578593251448975613659060729205579708030258553543972652775654516278553162722198005940302708729974789988578428241067905001996685737160376492361753651514913483147123911877786798622604493607784527459308467310018253879943263815033434613665765118089583619993995428349739149143915665045224184663090739816081266688938587929035691029933253060491518939193020405255887167643768925142065048830338567151007125577603437834917158051747075961517330993538082713775770381163059414291752395420178628276291727030980942476196879841462922661116396937149733460240919670629776969143310460749859438285867627278516060922764076546246497904486116453701265447187873745806149239072556863731052979486899635821221015679833291677600100163766291320867115425568023374715193056855771030884037466080266336437623646304838559897896419581581707030486508244209531932909581218075963567439591501811084042295818636899809409687286221455620684840067754383224452525586708388192044810319559582142208942116701847746363939237117977473982442027738528931448950906201901886714329182358032674604482884002802977262015505599248241054804502568706741174357147456379614930875821160946351658772122270617078094768898333809171591617536523140509154246825984615366421853375737074942817587440042500635857371728572324417646468039167999809985952741372181613934340733251622558750451501174014078202257454655587010892258838452667978842828893316628093297004294430326080391633354171426197097703848254028720271468065853449892032882457032853968575916589766084874257108180756360191952930722436948982943664689067626379841453109720666050667054553448362356277732592974741397546743304685499059726639014869529105278996173925513233751184669493755811437180275684717141436402614147230931460928769348002701922635945236620027526941086861742531879473428884837007488327036240621548133679900895390792122852215373832180616818229402655282632285465264115993586952766621237670679418104264134231493424355036488739906656784700026414144865032332198331559947873198737046732147369796730555008035056749339854546140711326773131146593089526346122540165842895438639255724045070299130624656603983265203988363750831800939803765721409260831200324531322777083869844930428466117626443184658514072871353117525085534399431279825633962562022722604735397709749453461468765709072461633654840472221730122489944526806294391070617935316603613185191784113080987006196767536228226374186105672268434546137536792636541900024209274626677917859671797014301145790661257970104284605771621899424887454070546889666778293903402233014079681461206023117960670507974328747928460855684179982680660806919497017273245620365524996842421862860998816302604393280800007826681808078896258753859905085076568389404301205733613529927796882441066888943696191755561416704198925919473652179558003424241346794436794102367362014734886309658061553389983914499550063504214858329416206623948929518529609737404865752740286062084157129458318274337773484729207663237312195293193006161113640102529647483959643407136170759508063734038670673075814694052286592977204505353022006302375780197710801750588484775108269996766637158628630439174092857289834911474164816917790805550546451792615616246979075546053306347584100618274108767070333216141479755057732824213307670616481394863630434097181222165998189418100544570544541121657871034521491441377578359824848087022977052941465138602501213993046054853389809800892255352623875922252297084254151768177173676867391764892184971620555332748311402121326577107372056275421461863831165420234216099207807749236723140262390100705512484502116482255287776574113421194020830997874892819260306235989859359925277797322104353211613919031398105117361942347901615596112544751620198760734913041788562590920988957232834542019600555759651603956508027260737915488095285759190547960482505148234356680020434856955846658981473000735443906993440630201298980110801904992989055343880457408594763811850343985573865353224805662187888727941804729985935757692299619667014596212683208843570986129801743482946209051927359220694881983068664077806063317613835751208984938700794093993862674496872546972161047241040972310004264911614449481289386279701093616450073057740564225360745955750198567625079570392802829277531459643209795888842104931980455465452093920421496733177600380362968196840923476317048959087834993202062094102267864476162686643105767007865271394282284970169357833215405759054250287875938835672334097649805146635784232055739999738083051661843780205962945306053469666806899161566331087853251565012564204915859105915437530631127413148422874252451771086032685917759021010819831428577166588198733434745900480932492105555552640754445017680897088714877276721576289990076503890892720386396060294079259351815218537600935112021149052607827303081490435751892688740302175231509428076904098790901330543324016640082650155581211205862665527370665415178424728488936997376587597747323717872877478749574307844683973450333541924263767810548915694127447725113931493758875313752437523052708244736658399994428229951748276193432578484155886205101649981696877145748000298630230290123371044967511731698048119658784054135099090852907322889242753404524453011033115268414456644029568691490046495654662847401321335128517632945202272269335314639574183937805603294248900190260304234705565214133685235489028086006950058969820995703321792499102543211408184372589672810367811630774105944274647200150398272436058036847462208805095685466183748613369695517214574492932577949226668321975635480351427571592234026021003824679655979853008010197946314835007456080832558259407655077699656587593780558889652799258915696692183904361400270739226894715851969664466776313284157044842326854222079989852047358717032899201227606478824294809029868915345133716511928844380936371104883502336836970239264793911924053105935879719719066618704354789292054079217298299719905559807158333871430417439635519307140549605100546647690442861776427022374677977795479089147201436992750432855723355514870809402778493925929578187155330699402196043297832751951601834818676657590484879687031023339005269921563273583339740188888866270446103162130071319573148539966334853693860043351331166091142812525548219889763411401579161980825408336453499232355763611293688158539855958045680036329112432035350390766023861516205956692290366146519576761716851539998985733463509977364338996752946639437990983405681167484779991410804252493888587725994575967879784560229171841922956555004749290505955899102582300671463611222608732921832280769304772536336375377548262631652121829090881934781401877308059374910435154248239856748767473532567200499681923684426343684431718080619372368654925101891252626259586189106370192549591516275999543005259608912895550450186865341118016879722790979926420588775648354325553085283311565601810014574104842884236686959035771771049456070229639337871706701381612083990449509035666081398893800989618129827063209635093369678416052193832669077561970300757097720942409890069036303475381721887358209665410449701992635259284749339945017081297775315684363706640015385382036630299325793922709809239559810920078562407468578432765400307790356265257614194726581796943288662853914637938100298185754407071354465017179307857274417874452071634418695920493548628801064848568507795054890798355431770241603755154026621724243184571680104990689450523255501349953327076996221931804930669234276684407255783377057690675204092245447614858377862341511449532858068462219825806647340678068245757943558376348059496122202900876001484212011689312330131487104005594809171545539037695711301033866272006354072682158505475363564349860778699034358110889050274565770052896123080906334716215021731308857327810996909244929304647115780943845574510243403032839326688036670495108885190889479434585729336586689084599183108513726893367816845847646569901763617064049368824053755150749725728862505091902003451352056517829231582364737143831243360202210539330763226607968914292616508488903720726698113175441315353307054289743506988289905856453065514316424725542225050891424973280358134786909271142808246659240589641450700643989641809864343766208912881443754841836648450841132174125733769434023872067703547589583911047064224246517673501078399067364997448951210422915949029597643705312206986221873202345164491463631495008140361175338677337034101565154378353019272107257703102458824837272027777173080345986842283027743056695287514292660156893305580970215224861456639141342487955504383220574997356622129968617211577761217322122836268045996850934306478078744775057826319341985221614377658228213142287271022631065205928518852011877814254691050556902395510627431643552688498298704617015015308004048221207639847587213567340357135911148710307481785252344902000934282753895879255157646877267607380350038199805528644018652720294871640335210353196389734876158229968329281941769278931952972177568211335112910714485803027284971704540594175493372510355464568844347156831832561106977683751697141264022643608866425606632718892874777852037068207602596345575196813292937676084058788057746829772908226113329329074429383104804707905602516884857453125123917370982174590025846609651940613872838286696277494897056167238503404038478916480409890766465745788569954690498967683831583166632118628311209155560164981927746811346847387860062389342654184379011429227252431805495531670666263172128203484785427674848006612305641870947304336523683411876874631269694773818745198603892779856371003355212714705351158158372923303521963017026917366704262883770326214937282602107698879740473106497966672002664159201399218920540758025487110701163458981460262982781398012117679260692641423103099021022040850465558387080460075621535638351381302843163855927164583170574043489514198047596703307568617491991851806604088914194093403437856689644164835791902784935598562339858593409593919342988264437051905062339213616024570938004917169453484220916327337793760701351729440993110358465283283671193183780157716583574571276956866068499714496471750138364739866755629751878995944245669578960845101973318841415150145051297802122556240591684298673359080293134371391830916100495479856901998708537129134023803144722095609898826290249382337688718446035056717757427056249988642238321724222217433104262021284676423586499639197699714434051711227481330275026718367421066078119470686722302297959879917189588991411584368863443727906295374517509331518679108659430892912143221207483758682355083187770708230019030379921437643477928806072950833982882388500789004633801993509452396909687169836101959535072683910606299516062988697522288840233703326975225628080993339434358907420211293647787622590978394396222531275409345614436906552614069877794494818564381029648334569291231085016979815357112290720652510093393220433879545602321710269398603496468804546587038256176849358759259445963981671695799788042077132435938400547137799518994738314517836107924469710442774848262472932284330238055030994628817480518425774848385218110984788841048186624859103862770421300971030723246747583233448024430857729296817733218724423112874187678595288711289489811865013179761636009470304310919342384677049702839838354280695729241538051614700822690391327232430794855271085015423712459716917895087537384126148282558804265669993651574547778052887715877979389423944589886320214578884120019798652344806720763692656314499473240755099490443399124201737425664487698660470709802585480588635871994128360913416930511574348684967695840219402488122945342333429836034798602929992497052698978422011945689422628949600476232093394577688694470865657664276614599976759930477253308558170606623485383530672572120495915260947246403048244444528709229350278868390817600133659596631493280690279806330442753066856235647648733910309397058045022491581527323435904769475253939740762591711333334495673524331622127993712165207126728792755490532992957339254075539806203236138484092303726140177241583817417825311717970923395096020833067740726177676322130418710080940515886295038683484110078733847627341341177244839633497175793820067364387717196196000712489374229620912373055647795299833548549549614914614079882349226642254076150872115998984312499350940888443706039174255870874643859797464712563714170671469566050814683051678451702386364032083031961633002222609373490897759504629326277313717273902449630444098991889273473075649775300195543892966447778064465181414216306475085340665776330931393686556098851626567780784097861910063341911835892277360832143191893681476053089910377839709363874792873331712000962859312133470556367211923293345741664541400204674052225454968753896141148918914909326596452650020221973840630334275839648390624497385847659950495204083624511509405099771770776608392251623072639194448373449282342176357680534600035397269410745424142785006289454476884484539303778299945104508338088650750431339052995650217886890365461317258282494247013897154296211032465606426980123548418577907111521630757773572315337242730010384200513552453542088714941087338308033326472760419176598482318245334503266271685830472296055147631987567275326851915682729129313162105672361323309819726784539695776257526377509756676329913974094921248479630035003312418955372381030467605245393414942931290124242822391371992427524733466452698167261896894996822161566328568003479233588773338654208650860509355669391012761632178897476134965887297638462566113803438857298113142441144869123959318068302280524471225634664663968895345270320273739778401118839796991601815498321774430649016898466442002892676524097747099362301731420645036875164207567426163166576300544005491414353230019418527474753462180811548366991679039176780406349325114558184218890950263702183708613911072807033594785968366163232533890599825312127677681667946868904985916182690011550298857127651860716174832238973252864821999296141453357622411633110821720104652365925300954880743420837863319205434977809221546900540353119664790468298278228628212847355204742220454941679251054124219668872103082915183347569094462891511319240390054495896368543164000255107118137769798399866260018172376765977088807082256003487746988607355498694521089557439677984481839549248285000631480510214858234790729146961742958495778392339016260550870487120345708238629671880145289008613218294371955683032164060361782133291693880929223187965235013811184081218501545588483984489987905788575963791171574237419570897512734011135869743756196219062698517165903813874301638679125110719750383233062112511118815325197917044287309140849603416533321259404777569500042303623318098569276486073375063664814169120656125167008921628725787766542452485056275099745541465102468650295960951633405462643476937350783157092165646864147833431933544570698466640247898313992586730147581180206548230075928395914286045705540917726442522926837742159231372832448306895027136839713919450313781658228879895721202410668182055378259735203773980226459543933156487220987378097769466272865189494921349389398113789456147795503517391265745314200594984537529527955607776813517995538653452403724332729447479553059357792523789125033887216782205442107086232934791420836690982178388081824478751075825393632859436295548075963192585123001443781084985494213308211872769631751624302202903977796517442320005760001691457808363659351497451690717846248048331769532302306488401393276551328430624841794790500730397947956015375051743220181046497765420523318355800518296138123774458465585965014352270066731623858175411376731552447217117579027002539735685264576643191775701141531602527776982643235766477640140301433778282634522239127092689152285089085876341981850220746167082315608745528426069028857094801884407503192421275823154192902701870220407802045835526213728604467035175620029037610332557139738592888765886874462809256353812825792084105188120609750499275586941610527701046661753079012253222703948474567348250332392549656684677731386196121480172057592576433033900522056491582781689554512559024584568712088495146074151286033956853868337832324343058739731168312600034802397340504034086496629812249140415448266613620125039338673982175418154838447095861440112481139920116833607134143481660221044890524933524037744267162204237904779916113561257327332986399770219233060885280903308835473500654648355849914346703640955845312357686678067413476553394113431601391178934326962366481919713950756799739657756182911347044417317960757990484057119392079817292423860523414636905104999533236647610753637375624841355781799422015144150070847947467826728859612389387674134015715236223956960728853012910466024660233194988011664619448260566607509343789756455414805926055184859804272324900089421960402473414011544655341061915890806226537097064883131289982777720589992454387644166834384523501484283652036679796800569836124351768362926739011430675402996140788539638362494163522812790240526093442506842786542401095377756263834205594581819631295055864930758380440960463687681156059430339907181165950515634656491154233960676837008398516728202421731588918965459476112055727654285745079089059461745339551969773748719882839836994118923735665725926379568953245426181450731421863834190709018655602799686569278255601682759174859561213274443543792356086108232665418426954959367438326690024440976363825676357032631990883449398988179389652558547726214979660207310214578678155207055441548903324948105570593302782876579573597890939107494374236528824446217676806648190569138448003917933738336067485073158063505643913831683450299618404849719653189866521868417928612408763364271066554744735884268948830197578193377917962359603671029853565151668944240874464218157117780469570824864894972196503757430947759334350726459468378181003297143169763558157817787485685260234924127458354660947508248497355347523048480268577373044832510043319066857663863980560762974326866627440135957744347205194104788302427704017443664865109345871106001133130962485918048245990555503554422189009421197733547167159748963249491439201597016310829836066382932961557981669574252432733978278797955100990789811729832549251016336185920608527876313120486844830076990652681863756900798977463402242487940282168374155300265272953087909932615318146878209167328139428036070698353732578989875014442034572621270232117934920695644379490218063214680934003737616324638402177499035885600106815269673901419236074995102837079923060603616532634867861592979528313875436114113864155809225356812362739089186539467766000861274688179442345388004573847653739858265934242368852942599155346498085143108260984753850092123250483465044350212587484403812575791520042274323914694901504888001553461558546364529742171049290157940223452573789895554463493327702783928480333130321570339570572309451845840347042410615074945923308492995560960765290637753923540926185110988281105914652717169543734359802217417164401390655174942716660455654583151544819689118129994320404662211582009683911937602694934694401951738068741063771042698419662157511405513622590609045507015948846509162124963757497127852880205100019361121203170153119800491115538173617521478058893043293160389534899721235291858934254151126427817354684922974112614583056212925454298304275667496027830178025778347863655976464986832964703601189971113020265150599762448757614747620558768320055963105210899203270370025766639674888833231398070795439134444451408674915965056809402359074825986674360444322113580525536050533059678213704771019426693820778322202664652121684899979255621192834647763995352837970576582017346176079197822935413824764340295628550772327288522196273521229078599001138594173580712709321329541347140188756696993634890096139944033499680885976756266166382258413853693244079521701412224497987021311711687740403933274979940982638018882349948147854556056710623641680706764730226320473072669514769887307206049733217054675101432213147566466302967175024324219589124042673168533836667239082853783371063233736907033871769463157505216519379539684948658273758078245465873960140714654727979360801372179175566504748480031152084603651508880012825009332472069418757899992931015516844608482373277449483981699883350384120202909612940878721163385144211934555231544257937834145762468418361691233118004078811333592524350534456259226329843334311222075513824597291138067476194432142586451308508449661554208945696101282229448838811223668967362751768930032327742305344497833832617045223666723725578128530292416223344664405696315284430587076473453370431123636233645702015490475285624243095841287897806578249405424457212948192615718785829521046444862368820574439461408367508986838655203784013637047834660731936556926722017859094114662768824974061200034449879660634878542876356737204503783539468313620790440792534117093904655302586633053466396073488220775524487274092940050697694350496293628542416652201501258724327448780020397889786650550205053990322040877749553683504563479129848938881244822652430756145114471107818573390101832668038720155435111716423799168809732964410510913632848234416334745225222760675125808316021541167324833081152229046633340870297335143217284511783417003236889943645898513188618606451615403620063081519733353914145318902937689531826676335156082089366590062662886476954312844696670950641797511158255007891831567044896412220891963311906914578132375781633473079670725478184817018526444079486180990698920724732354181738177415958399993691087012912147389477358275394926597893981330013273292241911211005362440737123777294322316548737993913116418367041594221778829159146969749144140377682412027861120133519362027502712415004627259838579119613867737010527480447736751624515252908151357697034557831692216556609817931689331178002026594933677180595608144147414819420745398027380525888701805526750843056296246727215782705861363863874916583402826010910553880560364405114989937569632280780620249526214626609179558245158215198162998324392314535720913290242777600332975066925986127294236842850492989385805848802704380701075231583897096112236891068641255460931889673653140499781062790625815506935847870437034329240294137933062136034692346023128882983279189091898577417963169569509787011288683850196618392683693344732834486835912164205966432779019354910568587592479709325892357259323433994411984401465772129963562866778013902748793171873026704919665285754724048740596679800942977575420562783188811657788617327823332171312225329281817045765605711407276524179245175241242241373919361025746755303739030766121354338488426363336445371733388123298942240099556663821714132895547489441283698464140995050508844693355306275585075296150660968281994492763202944392581275232374576385927341423336269702346031421387704455320248472351490855729242687872126067079066580093180364780308689292136487294827531894513211920630138133593133345038162583581910528076492136082408494824246349319419718316887471571919628254196128599784857092893670716966282261584057385104310901971256107909956091925365688562963621250851266792114235492233008717227600766695386942770570466074760221437240703465056577234612041496559287160348965020239590673460389256753132661729623173907055832014897835565181982561959379668541074157057611188826729874732898547367457353269794731742940512396929214288464734948377241051928514011215002184325093320841043969867155339342776619799727748623977860305049209888278648793761784894773764290866557847467528202120260301845637915575948257457556930601175701759794309445346942126398715037183066736572038090857278283137110611528451026650206980641606373214843818643100932061486664220326477143873389541021636620446921227610369706179701588817709336656820666447732222889851408249535176201779299641448049699530066196434560614244650965919895519601442557003881616335603284506078506396138124788786508615019340415424836819553227995868442123666994144051412376182780598325361726590325296442897131223843241919078589641368236960230534895744082686070968294595021095504760418863450018709707036442886437574225462070372066529995329522849174685630822999289816768490537531764229387523976056628445521929988392047352340603632495459351018925268340431761897194027276466786478980151513790906817945276963144972659696079624347454295249002580463319880291132950952047148372162463217338813256997155804485531216534976599174605223235176768212192898521289496471644522978224451179605790220427611218218958677455395863980344707625330825126708781362298928111090523623579283475977510904667893532781286659228407811535957739675360537891082456240997276076636453018710381208185675478711575384601441744729743262277767639809646433627098441811454120016376979005945362138579965028078580394384059949903291224602651801751301525690911653293151630551430698310860896377777163950076100086357995453242105984847249581115653721874616397628622888000091831859971890826498039579158453556310480251182350035886465172443276708452159428808729377543232358693963196028623268738073316606484306529357441394769581716303984382767702206389323025261598130059808251383269933958326889338788651548812657569178379317777623590579473585520721054254427281645649187972118239546740591356143722064685018419952559570211055732980653725241805072914502920537229543072492121714790376768003521798759288334417661151009724093993043240936883312767891168341472758193080919250258316923054234463497231501128456560377092479563761717340519484639755606414106207828930918280135543288604992168454435444093407973843442840644592852156198328131959659427263749545730135283232332254774147882397330713715598686997338372922805844048514298912927402075120384036206032977858208356897428671555326073815267896133360314902033763451137527636457196992301613775752951804446047746442183157904788853074485971774598578046799749855777224110515635490239238616907592777521233116475971361187658157838010571793515172997688423371851521173015993093569830830259989762970594318745681836885278104518112436491778343072664353648243700971557170889914121975804967969636456173420540192635522914971362816304853141428360760969924800147777708681857773906016589021572893751299416803446292261771209173429687763251762939305350508443516957470315020137187948060273846845182273420986724306649216558079188468046281680809170887034060553792553236086399056623783688543310994494225119583898093270440841110078329633000461106860028561729646858104009478889228900371680992564395325432815069292764696873208404223146406755797994943331759594409951385691799030838662695732329838247648654137545057419983737762820228819055193079561596495329327111807477962571737499173961976535711061478886794463944500928214682782630339792012571979842320263818418161062504549029136615997070854729583583318213798048990462216479424463210575195662505426895024740272494208562752740056451448724396059389604466471991753645045953243996104397049486159881381876980348841907652621864231361235715580545521973710074070007098589439105315064082395861628158932532602216576536200174901234425262909598131190709128379880126007750991116042828703267475188310922487275934126189185053396638727464071576648167123333850623326446772760938613654451531085537019154822751727690973862005894272791261413369763140220062636164943247104175519792746529615784231892492646253556438463584935208452832551530141207320156658398146426673887898977491371608193209689675301048152273884863533369759026421713787503776183607193840465805169895156396543436781276465860273313453983823195891592784823377129570988823455799895116125679617946651010922781242324512282602585735183089422308430859307011705782836173733218973364518710791928883528089815641547705144643336578848436682133900100785443091150414302756246701789187922705183026938212308818331762668208243609685267021512134851096137531592875536569547211936688336601644580054353943769656222273153345370890614937642384415102028291927439449115624030501381822330516516173305824441739908192329562873686434366371532508514617788558201421758532067714152170217288264291179778478757099777848064557806218687898249268887954831881770863144526013485325116307802475703067232940083256532043312960132332348662350465857991208182049663192995804817801057164875584351531385902032810904186420948543740019813251964126695012343255595512666483220843121281818915826279779807755605494642875883711318032320446634320872885460310110524864608485080538319510438377604690544317184775570548623552961204332837375956202595193982687104886151071594054467402880635542159099012741583677663596208533002502973274534731426641217982007321486278989234375763089236932233769735539272573340050332908762550828725818704262685777354229119205274265182586063728692709951778196244663376653410576746891647813928225546293775673985097267214947699717512902131272174998724518164588880143944497328504087007586410824214782975409385197162576226111463924327616219623323359081253815178053369397012127313105820032813020131212052197717385872481069106218861363937904139762617556212034565596355169374450500341514618572311121674376133656930065965654875388883307058157049815662788428779204299102994749876940425747601847735017155889663990763500778985880489912533543813374694590710695040838742913362181899320714834143314475714512873060191073454753012414769466521469287169809085480759313220980354437686635488184383674214870924715252963899747747968114738110158792246019012982788207839992103276157574085270028034546454948895004027323204240141455678405949739449045634840366359780880312913917563694785767128909651018922945029302950665021224742595050649573264885698511187727990921068034045802954067645720753487560039806423914191783340952335272423732634433524089078656741310856427324630005716908922573034946656030600122616927922105856157741805752029047623161416070584493514384149350747000132405434883395783727686995886009823924497680718092505263761262574322228569624047311803714872499972135494329623664716319920032526125155908590012980165802713945644641087449784188272202751023534263949767120426015483858166842148608316424700978749895681517504932939587573874772272378677263517554864551817568551560207880496628444910912731083408288370292010205648119338064088596878419532392520409464061617009208740529736569576702368809708956993805422579634677814763469073213325708786268111318577994166880546817054269133191936587444767347628385146230996957436720525755551241063294980425296120014652028768770571679448452938045565471954172345744741143592875262403500028521389598570324915058876657866637047239231690704995103421430877769138575156400378619587871915740738967064482849316018291817904793939223535109906021382144269729025359929364593038939752121856069303615801525396046548631970706274034024410511481702491688861406717815952413254042302246800549592034227772908589216643308298072561653012056488243328965083480711199041255071764027831143752007076615293020420053364892056929486070787767183910988137876182031170366749569828015437882410522670603423748814252501763457054459634179820707661524200024100334189090461012225533427770860637036677978719938759397612916336779100507026151604063673699313060957932053349993170411332904651127650524919311061291051523700723351601166581215745364156758536348807284126644426961177339208744501928380899052774318446451045102057466780237879696959783539069997852254440610232951193404331522776964509868728635658598089139109105187281017135953831606671014139934651129541681485586323239694884817248235757351228115432456957642518488510062333267314116032437419106201954139353720429617040549680074492563571026259790240474876178369502182421528503596458199656305450359368259811714523292809362094235478417196514314500500322864033456480682465875329189229967163571296437297374392044701937373199817565435781063314659820168119262146344000633162400424812147682416777073662690941599481716018326652559185139116314542956198789562036794742006491751201567703594906875194621640168438809882387202675021635032751969754634022638239298570972735305280737343411022697831147405352208839263559146998037010644475726757813927671323225622559504083524208662160909156182971349741453245634226480320268179540328284162546270394964591933278213392864119373682377896052701187906603382094536136684790095970770092640713745898556523531055616229147006941556904200103902505943489624979491910278965068736657536054980690785905740459720878630178415330006768921169236452564707567447819075024671110655896772815765996226689689849717345955629507735255692954852330998585600471409190105548790915800171936511891922575691330788759045926090346520491213142282857506611179713160482175725887729638173536819780397536388813589895238542682244334073948872193000212642759126795631233879810251585496919563221176697215072586710563569297434399137138571592107110271284664372094852778179605471056875148746894443403676200982570587700430391841833238193767192449422614788076591282685072015061903166876731715225000094437235159189553244963667292928112632037592364270316365496199878265690688751397112623771979355340429288870325704501982752850482726422154468720176039394331129207251754280973044076140291808522210426549860493043933777112611714521601413293019723930042762139087772319431905274082504575172518651283198107629145824102535706059266691889624120073384099010378821557816353822891827951796294448754218536045720847563357012249055736892297265119200941646879157452602697669745079688834641312308550160458627338426424147626416272764559795144110137587162310814970507876137200351266826179970943947250803439024637917056108079582449483958209682504258248765582971225676072856937950522963917073926980038653080513389781789589146437351832651215737629348652799262050809475966089610843375094321908887472851600386902562269225972985378267538994184785680999198285741954709857361882172465774879568240601197630250711713477624182116989450213185175751473873659686149604793587099421003974686504492092640161698786574535639984468760576295034910222875074958452814804292400453837842305706519956148908012333652027635460948376083264098711904909552115594582263609888319389210654048096805861467014895259723753278307678606950775110305948156747275762570108770372093345370964290128799846473581942469027193651965520533087961874779728997414410156838885711801928721437231918883869317661153426685514204062177922848580683123434817533627535845090238194221004187149933316952761967729687708026561194597434319939119107122895437139720475445114292457230038855913572457464784110643466979209627004609356808179424047827266209212566784223002945534438999175003948174688748648084962569240660059814157454701867873219811215909598108581767181643533709872137495941143142970767595894979589564162758455156313842463322827758028507914787235234866931365873856422714284597039837738389531896048869665282459765133813008500840256832036324296893103275085881363424938205601568489085059078490065352544138444839493281434400442268932381134828910035536027112777113316561622365756456050920328764469143172087045358768637672734202365853689794086116270511718105347246245918285326266613638986903359472953458977847987124903466514163499275203773402511791096584313628111370243596644081062243648183880610223394263417193345869703830557894673400211625425833431732156032060617177823301747436940151405166087734735264021653304994548035561170213305046532717852175376913748884558573566654982993786134800632979009401265263104250423553441079364769428751971515681389990135432241177097965335774304735915328732623404696995575078494992348543849187023507475815191438056671166770637495967276190685799963209544182290034860864952316165403817979722475519314190499225141863949221739368140440909760672879230118308856742689394585944227737776070838751536469464715957429265616106607475948168411076254505916948595351425032373289961775919378760725544302612315476317928681701206750035395074162105432714828891810825901327566109101701268532400271842364458305885774826152901245149870824980688754802426026483501126559129274973672792259668248672120826200202189683740748348749456439102763235584735335232846197580448508338103319211711753628817675445892938734810661491651859985374975570878888008297580866997682908708148195644966999181577072650131816099926283034461258709969520546088863259828834513754712136927560786227639943956241458900614298614788620335756327139607747147846919631243335549406606057524773691655448505695144677327685784991896376996935996648632986776991058610957473963693956545864317006047346251749080280650655328637810556587375915638220366134351143669020999434108545719365571700692150761840371546129073263282268034590921524926420413549274481136037817237569161947232399786405039949002813274018024632586254557478929167252925037872327281299304075010201694955895048995243347964388233420268271695265661410657037816027849957658122609071492283025399193610262274812129820283270328630208225454665348591741581378778212319043461727166785775137093611714376578900817547614632748542770428587148130015305950458200343722544318814187453558799645276798276629942976446952977606446217379890141892587700938601390493299919556316622369871480544337204006118502902918688911885701470212069187731406901495973486877421575014280082479897079158702736177613798925231120052785249476790795378238364739273877268669648770809202751456177199838909787232949550830452830782376136678915696999216848579069096825980612163031295104906034529759359757567291235067764228150894031360954061211663487976581026359549219591830732911025082807779421133093058451718757992020500106235014783088201700307455911714146430631912902041035960127887040902354667085642870894192693038675857670748371971557397882671494999267988922313034231467597911816420376907188053202043509301801760837613909471197241174053017637113780549730557849818833320743982931634410113849772428164283520095744034830608307972887041967869115806532177930051196034264299959473126379141326829270097229652607694159877432314481387998324628465639031948763437911192156180414872533224577016278863236802472854578434596471590564074092158506615920739334125506004151279847773336974411303058726446931616409833552019606465861070250312310915442456246859373849254594912420595609743903844279374166701231105378315065328042867568177692419268777945574515612799421399878750158177927213803152258880506012069551017856503631331539006876292063224881515444676120451564563132897923746440552036824237202665975236641641664461240207400958816432459379588373818812768971934039294396240493956474218535908141096129450520721836464027035841470895589320964123402144868871888951150776459474519781524968742144216944932187998688430279956713002911266593457149046219632963917506965769892245779628416742016737551029779083487083502685544251954386490590725199562988697551696935540271082025343219826828450686371849762895047986491726313108812873969641448996340663432298219858282237692166322259104131336655174926713878485982215427281066016047809977867066220101204469688474659464107124274357336772165883457681670462101005080084289571387850434016029031396006846864583059316381154047691865188512239646275207498110771017200193393711531094447605250919943519084031043050681598067588762390646881875965822168378053145834483378021124600967448005121959970919244224320686472989810609666408307010755246093845040958946712114466088962662194282719463749123913156111646784749988595943325628677500496186388586255527986188376520742483093572136394790402956764227874039858553546717635083180817731082475650587516145573063647614618962466592866196485148446201224850065431641172318208841305596978091091230835756544683298872002164830252345777645523341058372958757515276695131891658068067554264923407601137203184233246508789509524718432863265593417862284866442552805374293391538775076495683084253522493499163580817378369957259073100142559386151746193198311926817395302581066451334182667093732098326359229415890332241485849081714408840791615211979924248892143059058889185172476151377938087627276579730286522893161920748555864342251939684740255798390335169180462212424063822686540532092071714971253830492175637256211398886057528951090830537620356830815255658426525606561909275959384737446495839607846105723027129415688721208555372257286866425753445845589142342148947120769201246977688477533277522002591217466007490341900586941536259976303501309235740767307733043266112970082449630207403124698769443547888373265766414521445708337716905357765208128300697660888000875353661167273341677561630368482269007347346317725882406707419224649243755526152275874797710454281141398306763880440528267351674819068091528244724416730123766037959851816463792811496335763377548990220197755106409659933853867559878945376680292745640373954687548700153717841671137128976723179774486958835806065527872619697439252356914421963170332588870038070599848250000051384657730666601009874156296778291464078443214935362174626129789689393329843278238916020307667071906737342960379886319621203553687065238425825909267908055093329617912286304953520057817139843794233473152148290856387964082654915297166546088761536779948612179898595712260592053228926872238054985123279883141555288798136148618719453117559341731033633884517143520997679356187772596096058169008290226277607268829968278032117055048947449728132411471537175805742353788926086851147786907220289466657596209517311108966464109494850214419020933644530321220072838937441892438793571001237648961619638071816566210850368287611828458598099305410953633078545743915065125585468085624548473586091160166225193613733002089025159050203829311387382856268712563575471347764847172936381087095849136009038389721700058164829330299173405541332672942494452709120001488586063581918040627754503832594634076436941386479729370933173634689880445070410652494514154640302907561699523861567902488683357471791231175334738650747160307736897191400238258773853990394452534445717285542042930778993644952613664012637357779070255328639483519014148637861543799811261062859530250122188971361695439208045251875007008078017410193773390103701223370498054251279390447324464670838909207324826296019212094804580896002670007955745905475162710769607158137187884606504623552530754637129573844743636564345913969949170833730812270660388126222346265788877511548751695116468756979715773013165500765751792568571913149609047479271537124273365082862035401904973107469038890534238261697095774262605111365257116925419227496034910904132641909352001951664525328959256467097301220481167116389045284577106842630924923893728476973825295806648702462144060601310774316162789188984052197285633655373149869237466828689970239671174773336749648693920649959905140098516809704510267762499063433137903745096156641556469410853387252439693935117215643443465399737934350511804321893483461763662576713535204451054661332833547783020333605671067205256070927455718232571763598134847190775489841425670494728099707412383208213312523725388294355338611534821814464138788954945112262618604123087776862603280422552106715567592089542839689700512211039609709302254866421889911489459139021694916458447281075454264123183687059349656373623726321294343823397977769271223303425948423433560976815700445552583967890556863769479697407777048586625082499873709363447727152719737583838312258346250871583606741455147483450818591956641261328949294703095822885150724045302325975772988827688964319227943118395208184205990639446601397392841526193552835085840971485565504657593697946999671300404761801674178368333889511011455892477718461777446819211228434516979965105896169679557632329937454622072380520375648054300723038798396110438630314504436027471886402247865294899085683958424274662411910224820629916366772273295619868549608554140035025378284980748736403904882099014504011782760913056384588275144867307139357575867550198164971702830227301494801089731334610421578689160793635851576961296626441169552592345044764707764724970583577204099621165527180447965235794252213416058726648641447934815479492264266485578150863490982382515333465337678809150523828669007245237753086168923496555049049061704919321384432109199541774975142990909949028497111256340501156578151464196823662660578353555495878654470553027752332091814598055418642752882381673256876219156620152064080050754649066784660484618840800063932816119585524409118673901974972477676683120711241884228097540771870226036071942341928990098642574933293021933041351257761806097218555640552587974302519499585206902526632776220562927818860351896222821593931405595041119888920517238933071777317331611929351608244056110507001303993425664857348371831126526200501071167919381466846281871772919463906190340652717889598364121783842739531525900356833268881948198838412773360548438771154050560284922273690171334544354551602549605825058656947990857434609397518822898903319733390661323449592633097716826566760856403727112457066640608210738868094196610491542673455347455568660896678888815318883931904737501202781411946516524976954949166873755997392021712337346661678133586208176543268275818816184189556947243705453623555214827878405519235234833992844939384596892805558784679157232513917408978080405098622983393182648756575565425549073133701952152035626185582000432631075446431067076107588596491523265186865956119536923311794455444927104388052226218925145862665210532705741656670237683662218405245692099884493594034193508413237239860943256239025576464203489741840000212252414053286800646924716321095545474974446452619403401731365938575270912593212971074692960619137048750820911055404115626980956999968423673746474892949657026886146987997627703546240247648312091007161525483941520365960927067840379364618762357585203098510071779309164625684786825969965335266157580196941852971836836561617170521229199124114864511586300838947798984261117945232878838612822926769250490373554554272699687235694821608691727077257005046657575988009632601305048115444347220152255505215420533520591276613536643904377239993841846466453989521166767796521913870156066161166027398337679420170518562960162920671087424935302578361800487601337725092839952362791655530349882509082515767933641352679282743682969252732308203041123498511231697992647072239321345316391679591153123345374852549863384549135285552616602410749021989199957380009783567649623283333532758976930300444846570303853482959128996843285489254807869580578249722773107156312239619650040487026814818298137299239279183892252875894051369509722579618589548149512617337987481287156337412007944564064510884108644750508977090737792369486901323193045571730610882627770023104643171457968756673262978413025268320916987348658414870136536928791497436870631741932602764192795412914137830380076259325437750669794398688500123866196291120735628095141111722739821296018301116876963908820869249089521836875641143198601842067050923215777803085506691143604268485757068144494305100388831878245434866572289073691909550437727063602816522246768774444372426337443595109324213668369088576356275542781846918617638151153492334374554605782338690004888358480724193054901981224227951431153219709642395354027233946977484458536314366211267391370736993055502257225573789084102633266392582207400537991686316848874375314656032309756367433411356060481031294277639249286852006485089037699099484790633077667126481733807349592857415012155574885276613807348478200929160396744309815689909644600469976428624555056094085218409809815741738152024981490365638857695440178800182267031377257394800972610759565865634070941343862092861032429032028165927564370520527889250953075796626726447918592108707991160832586889034893021541190964120221757391151302383049754603263205772372582386463512148956425070770448731354191286731470536979081564759497840192057995183656377109143533013538648192483198226905625077150329049137992085958113530771718006845453647241854993301153830787371201118546967285221033718160481093597471735480471698252941095041835318492894761831802256638316839544401826319440792330747869181965430379974321575874541071952688131125392571315515554872573218596663590321437253821019576563834441019172027968612984346098647255321852853361802358481687190992778028889708244255873866018250031084020589902598171656997178775749750574160680504491656471865920865239912128244981165167901692705446354042695241686976212675886122641858518350351870382489253385362705167690832089772079000156462719582993448451769854057745809902256165770921686668173016715412982690694654887020160692618294886268692494854182901064833511091391573159655603266514988659724023014054125744737449112303297383335760293113662940151598782664812704268298978057184087844818003405021856092964815432105072896805337965311680914093116488461128049052585674531036323970941190399507876337983965252353261833794829179219300772164520046012668990066448418378537866098235186048609268558990067064943085548275385095129646248080417706718153843532710083152999491160324370466542767251178659894686973299627796856692060315369490717820659777091329458395259353083061319490941969524070208157768080654707933802464346342924763205072918237060166825213858197700895108393179567363350388206345480354087243338837717582394098546400859625142355731684958992486596272575430247160634099692076711072030947593788548650408332008588458867618529482507702668308367086063160933562665645645136775943717333418576189117419073179013995845218953748521687423672999345528270773213643357392216913443408145927738254927824914175420633032935493074640539682211793402571307325754633130798803007446045573496495144188066828388673152391969647456195777085460275011028431521720696469726052715132343531699131714436887629272169636867302779972711558568014110396156403117701350306891121894524371076990455466426470903354119430150308163316387023684792134019066788640877393383384047605185328835055473219988136797629461913711883786812215191860441616557053683207680615931463436466997125097131389461450608702410611233999212808202517664218550055711093028700344220089471135804737921086415048582946939878204999836115493736813067337339024773344041020737921917926705285742904148357555085127931686319919864146209694759640531998537701629836503733896043006939032295341966851889622618153152756499872756318407448610148647588604368431337098575703106613218077262819250109414672017822000263090360626402263144095776217165354596828095930788149033740981174682427024139181519981927209996014197218046176914631636401189428269744914577037504239316312348827217836158578428872423686933584616052813047196896431920578789686166429102216407631797429530954309941474986051682909089517659393987103325982178680347707503501330845064629952492626567446192469246738940311689148884692729851827158220925532720059562395054286225960076763929362364097584750566650589590200371825119424428121757988945338232556382039049716561957646594262455767358366100007577712252612546838525928894108660142065855740977133164252088661971972787035813177587948162580103479883771556119052538902381217660538365977088227625376112166473123117544881468737260771519553258587039758926704267771953475952803467757318460170406406108152409788147482703065965107057154885578249486568205696595302444093482761099659518815780526239694011650383051690179441205533466770759579367603854624842570345659949064750256527186780832065591649819411954530024029193447912395999493956025826463225752123832974939103927848365676839923703085610254759931799691893223690840943875300327114647689351220779527360554606280619217350872299137201954732257653324491058978153844018881806012604680133807959841915725388831903617814761354694733037287371903253625348899051412955913563276575864776982592666909323228914554547821057248103786074148479668829681399899548259599621706164045361233281323550614652527508198830681758115509382400238026347899379191917751805768802795741952614069779248038380025515988610861555685879777607888807973774326588236208100839674133177975669411133390817281725787238895818383085282619238046266434087093118598944420080886046675050866214403654431697853372694948819566912100611488829744214865203789715714276963834466379846368090932375342443483219151479344269846140142142942934986361841689038489319819647544056735989710985650001446435995362217593785929739810752682451723607742255928475949054743560734268340865583667336023757433806688951016522640823512112901421627813619209681357108659059427175668742158941484976611522934697537861903535553645621063535783542248809207097389753573637733773458845944154884169617620111887168701634222059941210329453836508978581429206232887754319277622972570241420377511526683674810894217668557688840350556527056796062344437082330417043398456304720741347850943970628968335172321960726326853111269995230595289285641859983576080993250932735892902780120240516867475628726000396370324407336608246794402096120496688698220474040515241666089754510123190025701532262179326899996512732627091055826895130580061403750327343079865857049052567868223117982848288742153278295530805476997261647248896506971706139239527386485638096778462616243557183468310762137923752954818126242855205456651096539888631762975461671870383283786947254504766013639236241614700479099231366423425839137373738962127869816300279862422617172614453989502063490537252240371778852161963636524514078081644250540957388691096345082110533299542203810382431542897181272122035281267623675416027595940553645675378185328834605637576813041199736427669380196474762295026736382525818990896996490525486894174157702973594855719702197356398645001080094282704634301061877594501927093714045598877535518116462635082102457311633816107138892301102141482980915866964446649866006261081455749155428524148705508973579939818620453424672548020141835982547550911967930368001104187856727389064636564782206279919836605734622465435605276389971762766489054873173396759005734584172077278851016762713947023728797621930279237874331043924840665485554893572985701204722392241375585199692790347593433214559423949600470444507497608654872186737960072388798313190484323529566842132018353622184296183726702266228542592051820488488686693587613476095428508142562238704083431331868344214463345576783484727006037920874878305464015821974262207680472263843101975202549351923716783833980408049819836426407199129370309464392743673628064466926940213210443415871441691767667911518297516711333630597350316932404577315126136123852491731600542178047985650433899424719470688166988639358598511624189721044158440698636977793944207104890101979082307436491662842531603872858103825459846273746147845388665734901695567418006614495505733607483774177087459270722606415211386879679687179067764190983295278669499328413834702580270034689361049610217894541209861285702245756302102348581835495960815794772148751293106831617898739277410272749820314000528146775238629435388694554263109140246495451938906439052290035255250165919299755427019957330973805492426702009293255217544358726070370655478429700609638735540985272393713061700562079888163180813682611911890746892571757954089692592918814237068847646323725352635484746650794942716786185394998601358281329779157984557516957499656289407542863520738129867445231768020475188178597303639042960014665715236050204732827196877676302186585267509049305978632956414514648296241527799328694784809854226118324664087065062879345351383900996107631480358673886719974728542693340182676835963120622149781028632121784965576719953962748918745441688973410744351018006562711625663541842461293132827070143999015636630758052027756296267368584332614767168632803819711708985731292645628980657774290645254885152104096259608128104268506950770655875559032314516556515031210407949677907760218077933899943610775184742910465880437188251774517773056380463607576564038700367939745113737591428591396642686498316722114656501306342114655429533828672442682902560145375408232324391983156105034529663892431395900200498573979688217951067952806621555757055651373493382938838436456018198761081760198236385076108337549870841459675739651567992544034698583614653841275726173852695726535077184980198507391099242530380488259526245160036139521700430182265304035143737462521648478998550840283052495401159771721868124192073502679454172453073902029280474691286871187272630734532820263872308269685156327356305732352679541946040889385234668300178431224626319026888894497227165493931216687980053706864343547195816689515588582758193809070671746941441204081608571671134943619824873640951513409786735895354081805393866202141160887632266730916512717187790186564382868564137887634138029027863770843068496177494799608991921514514794418157844897934027972084762593101162551176291736390862006978284626984101536740469011579101190591898369863908186236143909572394854218568926009685639845739361207501937389127684034315763362803181309142402612016286878783372080244216422037187019413038153041421133400818085410783713470889069925408254901062753024995463252321625460812025150905580023538493390460532406264981757021676633772794707881223734796925290949886185438474788847715678713616631208104694755386851933932153897323429596170362098929897368355386467774169282164582573877592894090517764052251604674064186465033204413295330014150561248772484003839471539158436929842709849966683055386244721030517897968664497038352787024118722564983323696924066579217616750497517700519292566420214126402828704612687190485637924971839512961320461596654150968299619280602979968785061911880814508673369516695028418841237403556744964743278805103878128818565184960065606429111793654789411143281243829187028207559051460611354694834810571462158401252920880693001395147398881871164311192239088026880355316243761027128559144116934088986686828581577471957693402238575274851570798096020842036765907709591181335680103510792296435173919551328997999932629554049163790099756487438569498509481134063674778662586757997501094116211777060482125001938586856452162294556292555545048658993398886101563255664890434996282491697667170883629410310292517738637411831584058610762244745928561618013087364891761288623377357102693326257690231904665333780162006067726086466092167961017512725448275310968669978007863514196069920572970892776168069832033733391064459893031780257351070403270309796069922040618390317012140920214455884833691739717529212455788282795955058367573640081653611744105928813636531435169966792345177754207499409185673248969887651166285278450926641555842963511128221865683179061613983353334644515357799770193816561638224413754549889858276363086838764695715700773173071505979801615269413871778657728749027235693550819805155900632306657794937933342007132878211982269347403595346404160319935321111976598664033069137944742265863949338342097486333286897667131768180125248501453245454384190136963622957009391197030583379763771778276874999896709701197145472511145613431552561489259219193853338151681777893519076862977653379534315423016011852094038393905077900725612351538745207024803141479696656952065564342251354733244377305501201959313785207781564089436386292981795602193913345940664246119271830567294406517383461724415163187684587208350802582292566741946200052508974732541170606045525139728087875253183512601564373496636810933627846268229388152235891260203671958953316417203517782593176429745805218445577391023522274355964808397924783260785549997348360364764043970133923365545871444788161450252233893789560127101571881440208907555377692176711718627120082538429307395646830467841075674511378065671680365754612706043888325405353612772078998125532840483453344300051570540451727933908916948960861305613143221511242244563425422957882167733072765525569847800025037310762148051493553928679332717948412502069879045853453817591072670314852003050397009380134343665872471935275901336510356519628707200301130964821260641689475376667873551696722833712853430691746220143015362800861682694302616712658514175708350861790995028161998442809455239683337814786163571149140834903080331711562273465240132068565035960156794012572852691846638257754270155585211988459188404507116065173884805247030394853056043065174938692989538039381082379301902529240608058312512946405427600785419274325981774262616731901483828618660238644987548697619677319914747634167419308828325318509011429522425926954474883637662697048377010476657758367305264644168605607843217004963354639059242738623230407168875240462251385584514871882867257968607478694892837425186557015958304773236833562189162085750565911368610148613314361406894795401261810858013915366188113918018056333616594836445365007419791117237583124755034697826406079232565934845966717143336955586174173564731920183838012213897030838133593974533965985782745767053392260005759970333436686461737872152568918243890155657047318087152448506440580239048090361713332790386348362484358208419437200026316697584187088389993167987713996527414821669815775949084885908496932821463692462203224652620349655940491712072383283405772855393040158318981699154800566941959922480642103509047407675950518207194876278432401400629106999274133167131680747054953889875040107131873233703640664223443343751339259256327118487719797719101499720548096327660966835506253057265670871077021924559837638799240995757886603352046819156369287144544320399538866703378849283626935862088207815048430621344802575893725212719909112477626840296386944995640094233288731848207173847843297273655772315110497348259273183467838842795282874332594040007277056916571609348194962338541418666912191632479938469454287529326088412203035207158224336562874147474719152216819617022240436121810373447602840153417339132971137356147569792296897490360192773318761451766758009513771454177284488037142282857972467951239696862275185357877247098232005303657422980895714072750978854245853172661291454264472534589324482750965933740420947517187037865348899244840382432836121052822172880469482874404010962418436058046038851193236181200642234673612155091696918328224280048502530700445244535565468499267609257298017725894971640133189462269666186590800506640196350076341038526862929017876037621647387572289709206083319333564715002466039907799000203137964083820607093245348637707131415169871421596396134211777102943090904666239381825713887980797249615193948798059285013327036925139139707418329205060504514129964242889215457580445831687264492957254621720254341266034530116873500297417848161860069201841805604096079335519288724533897704955543429281050538381541179019112895292227525680404422862918282364165049217403074264687968587439713722431731516148052978907045522863814253588017924780866697793104358172347856494295861583004334597668034663118546420009489177415234717993015561723950635738864346776300394670182307645108526568978988889577865309062589246129136035507246183516819485785692921942994667777781512070911701719117510649066579955566943437272730673586223531253264824262960929129633850774250887129600309175030874156138579578145706858913606736361846719485664569437650536581720736514219181633713726525057966792221496134299326428761401928155830734451583638844898225838441830533455008912925742553505986396452102515394618724223751422481571553242914050130375863894200963557580018574754684805193450051667509063928532180073891625240262297295428416154077815611006662127487216930830674706082255835022356558571409470702912069921461608948812068431005523033136731043639851948590045470310476959638367969980688099998227401374175162611853218854206302801963148344332434681624397630532077512353084448660264847283157472943993543218861981683973058631918177675656468028950531434719156860906523132790945998482812784967418634018852785771144493541900899649254035828947148010418723651301997568791062195016402707717890484329428127963596336782265522831159006060449887567070335525921068473122572481148825486790230240390139939077562745556755172353173076386549827249320870674544097172619796897725926762888899720791155914098204282788437505935850617245788182748782930303994467173206780525235360949276340223807074411565229319385052783143578093556563969976211602758782055260337470743301966763846864243032036248349572605927421362562923510110338476892168883317016108920926327835278872200376548955939276457406268535255168117271810867491772820773071417397471609211215634818944941185944982021895489135612830445059018359149722555485995428458119422562284595053143422193006448025316334739313166293320230141716735257373731986767685481227061112653292503819665636720922896852824882550524694014075255272368096831837697877840069457990053172156057135925344989309882769565382963708219796659210122896761246454021640470010769656157279727738544211068272873890164032658958155298903242048659314844843158454840955764089746537675552097846621078444058633961134238180836084780374839914888809990512015169338824493512403561787825141500336524923872364568858086836177488731809422437057357690773319244286437917952893192697955044788434743548508362655110874745124211207179376493092946948232919801203096546151043879313401751132332016738734974937912066090112608199015507758001846693295169896575060034378769934697957815527869095809708908963269838831312846410720860484477109079896672290798573241792813603077185937636830892287824626747382092660019428778605473867213558779190697823354918741551701394324933968730647126002457264039118240117226407620435977411289737715061378278811215843069440682756183308985100104041024006621125475827944662996214753572336215193321966885503147650365605898208412704801815570358917062507476575602887190709712276077014707717421169021792811772220412164495096397447072445447839811280433619547375986045538954230990096637820725025866794105236769921737561260907112187669421943943863361081687648421644624385054466681547705257439647799769883304762210315566406161343197262652377749953429058641195144801312383603135824689055769844615202862393040816732700040948420530084156887149144900341736549014999442232247750010875777982904435180171943901852521618245760702313959452465441957206672128473458768888061084466536664460364780623416677612367356501147079433683164861620374638255864634914446675907816026006002249238006937293818846254575127974560015331068287818783751987177668618598623426126326874507868200593007091443263889534054128319977635746512120153512628207733306974838421983336351759077810455892359616762697547621777450649275594252140388844258321958290291310756343624369643557493813004942379426009861852206385678444648475764769683794750959096928555648993604697376966247322659890797352527124026477894714566561502172276128801506732737832998539209542839755867224093729342785245410464935663669076470874508132428065918423173924157076370220352272672099546074518887784409651107980092304880973203228694805256188737194453115113824926489478052522505809116142425329399981025653234703775672818013422670991349160098968876264658732841012788580161138332430740671111104602000874392173130722260236683252752590649621831512717642072697155383890536482573124589009476833911627115823759940163003491194286918125607646156138876373322202314865828501486190828467860805582716812748198500281375086261809666380345625683415981951793839990044697082978505276971722472053785159657255600307046905917331974919233452950950823032346456833522428587697625313648092354700942648279129265763111855615656273307189762462391901638378244470940912597390456663003661288283010223449629248949528710896991432080025809830669241836088430684135419841545730084902388842882510276180930889749188590478726293615262643249078262755210612611515594211305453475583568619093123613989094676655571136234634726003519023994099501052194541086932854854341315214291164677838014862633961755528729216249919470356778609875564920640811901532132061200582332421024209357149997763047996487022651303657884437514022701221372818409067437797334758990408229071991019496363256248644349599697837146707626338829476479743087858015816358555891272754153658878315544346233033242106172135677266361122744272060379850888298240059746497399740227602445358679958522465101531698728948547389945664144390377231253857243738282015083252432746922876404314221330005066744132295389020926546783189245298374260353632855481055954843294213125957331522150712688138276242133775699352116695913099301703423420792722270568887147141591978981062337766543354338483774800687238367456505374426000814985408790239560473206609147443183117783290492615862348062052528229708652013402503939417593153090238565122740928928477713923442083627247205746466540528758355147918512032513636239153908083204338606269460465971303120562954928869879128898294001534486074095280043959174691820278225001292146694520555212357693450041749281177437654358026559141773786758712437788365321717174864227338810889736918121894853410185701183948592317898135405775499158927023280768007993864841354539778927870657788494933189217112678891391474045625861897639309024286275146455162681185487965886628188074649956976630567292489006016853011430621065035470476948401663724742833243942036482280225494197178694340569863234682519702016638433092157805798853933847678750336426936875568893331274790808568767184410980623191090918514264919067776958121846010919910353073587763567077081402278407000177038068287519229405614443789849628538603561298725104213490592345094794177552859230993568371477145552242049701525926560825741033940578601959027009530007286139139391311032841967019044193564892741667212271578401526018336743529107488819425415793359735119636534314191848419619006532588471939112980435751821668044194480387526433460017301689188218357666691071187070893995362969229080547235940667239836502773085208033941463843915424628635348707027855012798015282471135927083377150857368026978027894415053996612995795795961274976734051880803180595726312420041810842310677644175188639402446578394164020712458123150435394458529110349103853502763845264537108524783663639468256715777244124911149720263793873426774073938641876295925680874542505144870417615513683828911806935449738687911382652165479247503730198571434672471972492255863403770033091064607848494795995328074263428685168953232608418202256741439012396266758593550916366462643930847880617351515091348653022705555458857959551084735828294746230746106399091245457153534545799911397105862837739226251986076482908469052830796471823749030008536739386046271472697152875058709611798444246775792887030740527838371496639779150755361638304549970012266688668375397672924896384810517842812936295017994421734843653807156154094191978603379534337555050880282003504513345557113354137422536760327799184720432960486131911799014533874641506727139649531396126117894948435907060854279077363543610701378269980603623768896738305715533156876422186051686220453145289268526539925716614110987069612541108482851612046866673108478999308226103854487217381428321468961450165683930190811325240471635351286313349041906084887102293662739249738090149815943821623353605613005258040184195533171879189092316479441273673927155379313709936837451428379834172579344262047465283067323826516283491976637913760021499643468761075810102962841517454954655692343778078518437583327236023855555149944567524651070894495998767681615020460193605742951018755628812021463730406633251630049939301819634061073765462427268066161536903875640806467743420705240288655732616768374965543530468516655800235737403157892394596803076733606109722298813820873912879284748307782434444677715989802125110964108528236268852264908044574883118435806506962783666544963418182430209129873213320919499928829945121318467323093908563389087039268152946998763268956005783611434200375086056318275489339904706002501500900599650789351002226521489819831854577990678023762227238788547346925411866250137279106928899515853290989866018016130959971972551525804217315067371056354116478168430725704978043018379222771480742699255662522797022366079092533223800830635942531715126395877778179926507702391556048852653390539016374364317283049189456502560395352645088756773080842801236288363234260832146582239393186277865838571680484264738734967021966244283637068242558990693856760767922299904192285677671972375751612237213915717497917840046493088790997560190642872205639567311604142961142650684734817699574092071039906532868956091278041017119120802982737271000705934376964078364364300885112771940196711317402602325883965473301855035716711503344207404017618138656409419823991628664722204727334373680215986957338424391582246972877158827730575320755880663527020253232060504210627531796378809736638813735357834667425889554411099166164960871206543249293925840709136477818676058664532294501884908307624346179243137013790701463392261032968925182222004827892045593286467787357180157972722859035737698072331533709822769360847938729879034246156070019490282894546636274019058478152071380577059926816475434098057417925871896530058003990255218521143550593663959435336152890631425277949617310158162489191352393986800847707801228393008583612568094567324496190027848087949676771351552348915238176236239014556324133441294317256913405403307196893511965731226375603852041970518411937032260158745657779762399353873154057875869483402276101406393447222804479464817812179484796816115105170586001854036474817615904068368152863402367708000874695363428469153046029407177085414957244256132388461426964003524404726684355504179407534638394743269239209501274657799357713582380638874015658000018843570598035383892336607647416208127859670061260543179778157502999274454221407114917592258683116958450054106690858109201372914439891562419143566177515952705489835227998120409888098820350582467451368988096262822061182636556568815709810680142982629528569470558795167137134307317137612358047145877524225037165827560444826419204160260738490778988435802979313566683125663141576735226771922959616738659321064290898857029870908794409643109118751138061521723873314143861997318839482040475828549529526139537343049113653871638264986248855791997015154202626616919813953234369073745974086557851914064472352208465131862534170063956602734534399913957282056966778459965406041607392996867644575647021623667615825208079938432757775325133252422844032029694201154622301788844960242395036234933546484501333847303529570415128440374688175850310955232998411643061291680950636815366647198455884264767648774076057497352135581084389126616390066388541031083254129307400753017167127069244737893144403296170831390131064413186417412573583196074756939356968026213115291647520677234086484346374813343525958548049213158001044147434937082994642791602217045606333290394736584265177991364399986748572777185589434043237156487928547018429724150725874918907019054385728800862646611957847133910162489481994624859869711250572454370419061564617265109460797762682965860073427093582720483490145143704749782570123088818194230117647441207595086889601455383898575303185038578242092996821480222106633408225234803249942030934836282392582161073686242301596915220795423106111947835711569819799487676517444501435663243583910114235251448796356315868173313566204979589024175769823860145178417350151339539382917129508135349528371101252255183562379127816889270589189908130075585034047332557427726774862781133376128096195471134094631658767127985020560006483506951993177820076431511893297701646216401897592147006142896333243311194895503250378352971225810257410183410577352396292195697761932201445392436570600422636259818226556632601505144242553300776678091993817859727526387209848817357771694769124942239850794976505399292582853870463328002881691793595030852889637175594852949328902017049519650908116567167042376146629926583419389377463440447617637270142140605960317945132653625358675150994250509490586277295908440270997464581554792719453882582512783269895430911217139069156899453858319157283756013122605559167758567269462028404589605953516481853657174286786741961372245453806659197787521644265268849252893970595592893507068714846800741074408510740952232902628031134073780117470462572314787736831144610758067747462470804949247349913827238282562095358798160847411136543371881060140517068742175788327003146270298250813680287840723309390631257096812703997381011379407666617950703571045528531922109454570474794438964841298325879519552578374191100618620277568537803725319738247675986160769107620961918613707472880055024182237422585784255808399434060027461499061022655915115113431890928690467698857054458032870289690862375090815138509443594256303413151406448563345952565379304528184448240270021320582382679785464448131352993462014538281296081717034720430186749079948140766644792127420279834683265149645216029657977640786054235199623883100172520259667449304303920784386279308602740418261745236316577698700993927181722930479288437289030053899003587875077929191047246284676321988797142880421840297061526731128995085300730577504919143610931753048024990007113460302547709427107074762329645430817171427398444718857380188331538721874342918882929409685459960552843133833032406413438482306269809899589796357083706419517708690390454447445955599735120125327445234463041767419106677629266054765337973245182482110890023099289887088998232335057422726619341416488099248324036654417405172121807299323107066835246140597290196845642113346069018141511210650280596319124967221324607906649419043092875298009242958248453185596830987863713902507878118628939881457276785613133274520730947364515762448720502932473384741890698834909633467915312498474281856487636667087769241041285334745986945013692026396391490824669022187338705582644241614557446824357841959437560240696951077639692055119889170111149998208360424546434770437020413339954660495759707179398982955809007780581642773167988340209115308956744263583066498689697589605448516969207532470569757079133823280143767455797443851894737781163309672443156483265772497877440087275146959542345860941986570729769601665114949121165364339572603584626808659761525622275507005999667407969404985253627638956396139346355959814973403980673249956573348929272018795732736176888915152066040585728901645512751786401362683610758385946448330104279404321123810034854036335340932395202439826460863060003401832787709057956001463913037580617823882759302619066913877563070449414334159546898483460705936697719103519893203777899029610743012061038530272216660389915563879040042297269591984305828134970701497353456088195044660326600798835708842504244507972162352631724644870066254732390502764948083218099354024755313701026529566760821095303208993823256756482761382384742904902692393051101710480840775455648497293640946292828756134710562051826921075357851314170965327588219235990753877584560632606827986488898643211399195671086651506476566254103986084973745222046834194611118773621198981398675582622620436993920317949210232316823270406154683427729958372328118139706561727171272003687907656004871796780033643096578123238134488045390099729709750884246727418493780106371631339092783548503423662791659620308728860672844860152795632675626064803470015581826035129163478323322956393258920636406460364562225611270882540121928096502083760833382242034635993632741074927743599147293297565641839738857604321236646129322700574287548205663947987748783666246376991400174915074096274768793317369473664430123433756796446928925724234360857952403151382757371972447762655638423533590585425583286323357164735428499346573922124362294530220805536116813017654904077160301967921289101036354775398473732661833781410886480603461435381188830510203266069050018344320684801660926664599491367087602831856192348105995092324180227968777694353030921450492109456851700652884572785449340288056867243247578241329098342129652977648891601542195874178973133583052053330311094497942717159617794238269607614685236300529553310549957305498791192094738486583987093516036867370307544352336827739817424527384387958258878981860742841600323553492749908261932795033369534525044658254907807966470152632324322236333099899955382620219991660666027482329539122124425661273315515303543330677023459981264333819738961156498625298362070761460947237214173769773638668895466814065686336374091523892520089635693086626596503672497903122033270222368551769829788104845727784626677444058661582506845186492538006985069616330667286870969225671516788215008998446591849262213719448244204865380595520852568872588820282409491246159472067923247181001723985186385468676818358584298193576029950127071759093198192711393164681725412298846505437188059082026936873544793923081203297718055224900385017503451915531866523521439210646822501088634442969533970748400499655504932662856394183598421799725728870073791016379939523333209402990911440918225837760095079973577249888210290811251584371927411220477183858511472349421381622550389003639383487494722937682115192441331491951843993230601605613127243709464237729256920471139134058154294285310646764996231049585031730079988040218012414312204126319052127984318845110674916103944606167935470950960581193125363050142012083257731893998839786151619743154745511384876163118523203279524049378216681418940985468868432915192856782962158455612985118635614432143238066582350865206943718644115732271972084092562929527224734243294894174300399870823553918789743579374944083806550656410439811814407434200851562139265055187782220054466546301762193824340993110643111012880968235176780167771539933544314402354894632100885101043272905105231476261179119885361044527606589211191335330692099330804949091361773347491310029092634492422889500222805551552903645562355832687968563437318988209680672697552965929178335778969010374927989924470410216154686713998255952440026334119509411702100185504875200631762496825687962358693164163753384174402999514623020663930396690443126396299234486648042137251675647322897864166084195987650836275272240777026257580236283964241844141283509329710042742547102972587377845549930859468973547454408623771824203421851575358586141694186597685881242273116937958957777925226570036365178385600947008507743307975404263922205028546044091075094821951208444385375225310013127456189821264874338323906050023085536714326834669507777269611228031995398194943862715961465850427610945212994766384078717140330363475545152289961570408768054285379959244806914420367855977649400732945855116926034277952117782166367966184732717814092501989327394547429508634429400672843388975975880818657416713668247042828992078117604920408340694089202114892223157710873281652003866514881539836839430159204915369446283441354805278303445928263827109838165312787915579427096091981450021425257983204732453994873969883887522811861620393126586427360456285980900333355494151126151952492541204442127865771938908974307776026776922333452425926211195266884929996403989594485479956582806619768742134499720855152670757137778842882532359678428376183549845938640426178758283252366506732083922145645961396822275690125227626623677734120279473127653684570518802589864132067346882048728419709428137970859299022882383058700838256445306435796016943207207791303070912621237715803581500977731516291724994324934075397467649971082205328984230814962929830640552749516518552184228946942141237212118730157228711119526053568623262584227324618059404711210398081451607449026939679212900734022197809694229822707623171776895037409749747789670519492708251866369725351380008559651684754277460625089307280668584007602727860775613937003858819723391548590229423487872746248850407791110489247488361889865445417425072806797348192166856855168134679751401814875900571057935026300676334694225223534408743475904243203198372244364843977003426472540716238443266039083895314174616000273269170089355824782241948360262829913409950330343904113239469995074380605162728668455344820077512848694436964574538741757576585237471580905461742032901641853328483552984384517038083028296178434751112843369174302317042453163942354587567414967753079082760270520719456495721980269301975591042747419043732193597791687088436387554750160363159352856969154494470073221927082968673299838330852313865680249671091110101460480735154272071083165123536233564834677065503823058684144501989390125500540254813764374534995086933768776193189956256683034431352726572451232441986178173701557413778394789021421447371648681420437336051357891588896235747309147614450422639263706995752354823391080988752017761529932040941960013446857565302301261435396408961684691601306174532434126088784485522316588084494121919512245048577799420409270370089172866576419708509198530830368111764281771147941539388245823042432465219616961799236049013368763337746024393744932029051252922633929605824882587379792197765754465216820994009940782012554254229982052243602278212548898764478612919401695787798049183168074695272795476902373723699224518683396017103451839803325707823165695230288000509055985410252540815210328227914774565279911576110647540215291577383981159251653164651507052480096507881236463034956859793749162473610513107728404882432155962847285495059781742984175179183283660397624290382835211526001704842469232570434154152185419343093061104398894191728729945011891409692060487301039013306239043649362249023706345546764753310434273820244337571148426807052002279397181673728624965053397694229913379804948529500367070181611908067652875200572996741044050349637321314362842463345770453493218389000404236485758087526160166743896092341371609561662939717113614684372168597449030712851475911079232658535010871612905905999761823422481407012092546580553429389740422488413455791395677459824894282995038158530136828351010239084710726209038804316213328302184872581053466536187354591121470273709098336925600631365078883877849244290300969469284887281023298109491041666783317255018328416278000664547292942805224966988922119745354624122139355459870351784146781085601659928326579958559645332893942571523477683238630753919314069895545717727698210244374854007403641239522226740363925306051230935606246506726739542996394899063608969991277971339060361645266276881232578939812768813279153269673754551629259030127087970951685073394494931705499245500982127177553020224681153223760909637002970323959392419366740024814857017175451022449114185532093070495201588266641578995764094605892621693339735654084181687032427804829793565879644719234275401682499716578907796585297137523664259894529528270978557064919049360426918205252742560275361577075413294669773769356746138629724075136403827868074639662606487454443225801733996296767509492152748971704430523013111732897317397517537966414088705993775328937727827981407135494080889837508016501115235681940928441826613142149204526428367468883638233667337151764266086716611986869432350905262340984243383399270025852841798643172531485608510731826099664780987790641735004479237373448443191094771388441756342321751347377000008783830607118701076783188166492736509216212209666871362316411977532052622367927875600661037688830660098913806596247121586946167027733466179444410553483537177134443416228623083375321748144542163277818480045676215450520905100757509979734543360450856172130249509141608227071163162978816153378368485875609981379773173651213697782923941854827190181186291874868967297820292764560513982501561776745572934142141543574794062102405689709774015509296952953623484573725778509379585833775100456566018535029778457266359660047230090891528901726140552832346785820051504573662549512475749310796838816222146324227097710782243937776658881766500701220153547451571113281805428369099306510959497537308356979175137909619399894325359891949194990463719575424555152213068643312052096278330851927336169055584598001640778822302818332004554453516529534208566429978500946405071676652610943780759122231983243008794379319826243621623572602455957069184993040081063596023618799828836949216083093698959320640290919319148393768267151735302620990783884954885814274111001302380540131250778709088346569505579160370880324403038826017331086637990453704729428748694903111472986336503205797396002361507069439346767233131521147464042472748831151744784851398863320547933389201239653964109428343070483006536684633313601004362666954755340675678947907347625873165813012988350186168598437005678170269043975778341620299987154216816013325404156178188234624071904854455472047706557934533428682275184595882204521556813575731564292455249625388114212285868320515226749139147482067960375344789761070101850975895555160481108328067636000581105264550222839372117593908805790541536035692895051212124754504206814197092853448077891595129201645229275253371691887129406371521857149887303757818194818398436416658833253039135318687070012154912487100494095355007400638056243853523950638406811708676648354859963811417606044415157661040521801977257336787914468590209203813301383337898861901821261200399181853617051915416903924379208846331164213090397151113135455900689815326320801156118747487321798168912962077394398659145755430087314809311669947685343326747758901971408285258372047453164413218449966755067317635525487755201442717708873915606692160133025317497869321755266323561809031136453416268167929208805374398268028139555382836065993337795786160334901402598407649386970999663863835606234600735236701418784722764935171004882392780143933218188026252846902218173307278370885061001165930664736011845047646336605182292882060965649448810545876153712467216285676907631045026349491859411961273845100248695201074082309248886698017041785257322307129191819253669256100622411290946521977778103474996191913930171861952654088180371789992779545548237873475662327759318375092694757302757723697382962592086543385223845093667882863619608887959392588721463057257145782408554902739439830276419780127730806531667927748448636512673583056333311602924313686671215431530573019282979200701241893797310515863830896967786006207916999304891795045825828492933721158801889554531115726975569956950510015078722274221566434963683228786231652829625456969086897581529287478747058262653710860965826253955811311591321192310796872047638530005904172626307966936457405084163046014655514086711049409161647319721679510884526805755245654414452885552093468615461014280852191820264959875145616772058808493526485889795884972850111449493841878615994171749836842725556288812560803169539817754570794447927854755304086361080987058516641181632285081075587857018438841592909310195869106760418462926907402061296970892706008848498432725683327402650460269846179105648008225619946412451115042310628316547320850052982058408622582377586653468071385690171797868826062516643769721301202244102913211702373374449816990905479867165813790222252118933277205265612036002948501840267489942466980325403308965385946991653490020800671990269272639559127929502785180506094898754934157213325829897859351389745006540060069896535033823179787759738003182768800783012627574938879415039562633721279043522680635403695861724254449893787060721995061835054771620630705553064997797822364279361614126992793204225616920355928199100108802915939073456103140217653339068627930207075051217463992934616116842540681853884130978502502836190588486532256163014749217193513825184721361883688342734405099533863292916432458569533979149595562624285697989106241623015885725255373889639106865727249339957346421427578281420349911884237396091779482342252086129635547390116245965223830576770160645517659404789458248809242638051927499986329020111863417771010867071505373205333305527376208261434100055467079580889312988405085783682167848872523979302574360716592613245013939043085099362665755992808850141503834315915469857429532365021495148006102067032950655519971478069312299364095255280816895715639526492400959748606089226375181331211986484236115574114024813869455293206712091508276224274863003828131543757983742099723490351420327189397822917626064933881390671047991275752582736005548181849172463429124209592945342344581304095349627318965012885081311453398506098473553524001776834809029003890905988356306441684601969420127151656645323685338587207838625241731656987654903525411564783243661647262388873433103096386984534437784341209786232994882798265167759582554669448225378642834548436895765847469723258245824729667995008541281035674865044325635517445170206740146865556626393015420552311421203485375662709617672134277095475145674609201997810037372428460205071732411996107181706227722624756757384839875152728553752453468879439521866939790590938633343225701986848662545175937136438526093018169867490837024751995310704840459578605415302945652090396045830718781538937962100101333708246586852137102234163339314722334216164413807949279922055377722088135548746647072500206485521842774309247651646131975145106162843916452373098141837110054205272338171041439500341168307595789637724234506506372984475024784927968065534885686321535876946553579175182859230487578876463237973335833233389221532869100507930891981249082060510011427525434144893441026312739079597420347510217251237052354801952109449683422021306916250084464978100120826514139969314261880520643655211533371443802463121282390134711179513050633115778402223487036534981962407479545412399576504524259868083647434255307876887213870538762978589644148590490802270340221509972127397380023222898359711566412921851236096680386198015635542549388155015632709446885006665837160630786332351691620502081332797977730988158707140274363952972641503853027384173571799515868004246023260198440717123805768009549305043562854946739136196094427150379392992786411165100277206840729370066208612762883277695234631470703505766410179025405215369151548116862681840042626240246886865047232832660871863686541951629689933214348123535498364923968650935476920442920969082933184287667320500732230084927023667562051639878607903788978176893179603589448662023591753342541718015401159214430230679385522228620174037865945591266440628837943358775394671702452235158532943124819835076097147705109077934593521704478850657859606538323920828607566516279041902726180463346373232214645069282582413650932137619627330440622257354462538199520788158290988315671454269737487477660944123563712564502729374353037765859227720801729099961232084704097052007366498529528350096852084475087979817903951256203093346965715377924235550483762675747606013425236196197565149811364188860774198563765178871645461394578161539865833630861394834095233221392410301488329037157784277666977968401565192841615348796225462349256302152694123331437109271661382224343012057474958666369029286345296464932412523738828302015117990032615506426068671159553614992489519411309016246841880521089224556708581487362812297365902410960823493673758585430262525256256194967789846709364831876632774120125162456507553457771501748225917892460984231840698494358005061129316381187860890927654605020499031849202477055480149598679502224608023449847055307153507188233870893744952905883348355582456192652958997558544528570215180563042753914924401308833623610726890872710626242238304248103179052044861766026116809062599325758677781073808906036041585272609298611951584322187250824659984616931408928455124689499491247302111195876161783142305522079938965892831638257919619453859013715837048198468151989054046614719325804326989402195915248335103340580770091043085775734434496116576753953952910037128542646023830579146573822354106363584677401783259663872596603955890027183610296975510771603514117232351562878165964907395300262348944935976674330330840277487387588214415784167030193822543706259208458333138364420202034702074038976385840859978063247502766306945824067313815887155973634793656335495311819930966499246379627511153959169667087115790126547890577816834045124637801491986976294811571317526109297313126277764248809902610649460107910620392036820306018220070789582613186462280795927274010353388598482164522316823247396159005887670394349870930163043164185180934284552268374270185240740230370934686560976560492729293766534930762243368056342878513851338274920953786836345211334350783198349701159500648291883394164477269306718162334882786613931798815494750583967234006575709967792489132770159357860098041943644035836055138077466182197479446433101997821972051063065997942301006111818292892556852189835053625375899475147279729877121042024006077025410912939420104425207105862623136550692299717099144592322922183108188505524621115784527197440087256897930277106113254439375483258113183829395086999873725988432221252150043838414776361446017045735699563300754489077536397601928022265093589031393054510878139721042286739574433947745117785101830396542497933628187799321086886511561211465369752195846616123592192767782571018419949255109960907385248949382228279426297639661104316787712147845837077519303012459933689298584100370424104068084724753041963714604190621907318423742365624480240049388701737478107689405589132525749453048021348389843376259157083260108034706180611543949150327223109680819521520117698119693982979227683305616555571583028606494542280262678623035134849198905670497791431072376891013546269495881027771359798951976677339444283455938923783246986908498247338690465066277527628602360478274011058042561278282717732283819676767535314704261809397748661318978039120909968896646587979324636257053469010851695879320195396900484135310964121534398747562241899461807948115248676614199449949858622970358644629270526635495048044298655663099474747730332006089608882419874398568888723742158335549262644472878928926537740855361793577476451364955363063987895116080610753503377201730566634480103467726398439631896006199637585001807432461833562389769709415718532429745148385853985657002687406387414324634183476785217102301478869068405420131090398549842773680937736112955418964340440306638193889417036218794026912519302818317670598756797151541665168851635056166846373051868350393922389622249058685547158672740293097031084458501855760327594551653822850099383222924284994638318854813607205208351600135833321625399521734393027585815496081701442553651940212470518118080386955550196987186377996196019999998460474103935987375486679860618439764840304608910174563687752343203832069810874685688991834287305823993198872230704785450750918699341010787807583560306513504013609021066651892499707365209183529099475460001628984939408126740607930500555649432940880367796872235951003239777048576417118011099378268228190160564081165894352386883909875012268249260030882680221526936182343997501592863961739735896715024294048165961710335653621931409930494295566632113219635612652981943229089375568310568753579832384114418625249918003183374614026031536144314883187639449133748453739648033659074564075093619807687478158810159496868560937582569458987846956892386314062964663477562788096025621062704035507776038386612694328417190813448946227536908566126538762134101932041440455966640148843105265998419432585090501314656620039052225856070030478975605314163379833389813238997557995825402010215993756961822369385713511385458787964011427874309263006274375866188977430972528408238963716250785226630266209632151472856254842895879547290245395722781253526823788016971446211738141666246654636357155140030750903279259803522510351187247238920666486389705775000607226795055632245849498904208034244540028687374963510604302639346714971223178416292686028560980492141051273056177112114611491895386346128783187084451530906646173347690666555683757701984758932033796985698786397996452131975869333450856647825470068439149173090657950726818640989520197786884684414706126763411148551629404567438550707653482350116074414357250388287920542629176397480359950350711346478900858721402150393540345768562670387177453469775235121841603810472880002903741278089136959021165428656042501509564813385404061402905468014370819890088499193345150914346231431633412745557117044680859500673921678342592691262657570739652587103127361269393731170318391933541241047222711708755861381814035647834356831845214045508101098464246818843233495908899519808146247273651355154295666896520791412541470230384134629301558162919060056669818606514482022520327713584290332407972220955332194679023746559620855972457788521029267620249382349852202662881526551082785119883807401229990632984472339399440636945403714100717858472899516726592295379694367718096691860691815129749642679548660219099280970432711622967386087332934280517307725567721434762950661700146843739030456687029047308134010496195314799119538863678309109862587330194829362850241340443895076116630199446031703553901031739463124778539344819776861555866233873088791492571822689854170089530836904142832629115213251655063933791796947248851550545949800909751469112254263721423568243123424302844705464104756945261756556231901739431616596803367363380450880174279918529955738245151344060000617347035771700572950792797002558725427051648129041038583933954004893756332692540432099976209591404452265069040061827117006774721242851640812829465857202246189248719518124971799909730596679720824795399827976217538489890742284815392032966504443301874441983622580692117346986898292994190570768534887304265658440301049668337329197492609894071742060584335507118129842127622466680190093068576330492450461413720126717345151462171304920005778407316210573215226370346935556027690892566289822859585940710956141296590490570412447050051816337556091662267995624418581399801411537136966786063606127978087735658142280966687617265546541885461602276826079871473939096206359793364847812002458579631801037907533051357412035823022859129641294562402914164886218406694246875748673270608954320865823880686574415534736459237307399344253306482462491460850741451061369474369681867535851457355063639103532675403737689776468489803745674013510372801360286982057879843152317020538027960433486847442165319693981250933533376080218406037331519652434967612317962984047548421789392483380897101515123568274256981314444227556678613537629768157666720645181578889132379419688978864819855337441758749694283764906694294243379718175238315784717514664670559326074861816655459657326624128180663005659890284638184034854638898016217121882108683405669925991486062580377059838768990479184057657529112825617523553927634859729504044944074134647163195196239888712758720914587511388181448150766232764173360461730189876406537232077873151284851377897426484156153489408289381293511949392299747166330122125563189299145981671407878484186408426641491276875150755382091215581119588136415527373162883081896323995639742271650981379723318309138863164418966472335421868983177566014347412594388729521189819992532594550840668487412865573923089210075021697894038063373805806307637198159847205020167739363644649976343361539322448273605652962609681351371169120053724055149667760365233450365220081268623833922929257683392551310793953536654222328528455501315819921720443131988902126876719451895060366429218234172187017970899485194283667246452997454905230204815138447520764457202016507036988052899320686286568863621325711434932529139674838442496259174534659537276407964786745547658532545571382531911036926996326573128215382490884832028824129623802964709587625142012176763031254205963826781862160752450734953322686198387772546471273085941574448088131993559005674900740883741358158574855179245023343134859945253438864952077065443703966231758024185826285151504920637170560815708219952406162139623684911715485622007695312373505535483977571362615960356201813061753544324896848060669919798196673304482460080265500347057945109777961369835751382197917978521997594476475901772996481683214009429630511049959366767463583874513894677337838349225973277401279290639313124819660083427415911896792405095485055523029535331611497393095415495937367718857853982670449045902183600198082318938942878558467803587356016406813167516762254788943161316585570294597837353578215330412124437876263075552347989193862122469439389246719556952751216242786756533855581572132713130427539146029046315828988730626443140654433060207038103217771498443455698378941905431032262026158920204383361318824214628764841275477383730175490614201002350098668036582441138929442957547389197587497419461032729631881618715955144576615433860468989729911192124617443756191853469764098183775923113166921778936188362457023682124834351567188576252250504723112928480483973036315887473715258568882697424639710974136108506116776627731166981813661415694814708911373559695962443307096631201474444622069933575912079143875886485797751964716983413756683295911675274106362349289632462008696177779947242868181890702192391703426500582978333945475734886460233077928155983353425609609390509530993735987999027532797756556080546071731672913453757012084065997800215633513102993661607333288544840226336485130340268001140404280860188896282832136734559940879594442936334308405405497319118459655390365195450917059541882333245611180521540515797824129840244194474890331683077603382436364603414791095513560447746034418037106979994638343770868414469500023836120296169651808199850611769861765888905143171937076311856666772059366428761175416442610071083289900178582818568969455727708627765132984419847095532378105468747999381319578986861671507808751599247003817130966370099620498087544094373251513622638375880435194032880694292618382256816975360254344000153685188108797926151949906592171903779754723332976574463005988335187076789581687049391720385076064609929364673649439951400494005584414684172070153597374406026592918663080958572328384043152939656696105941978925518935610569765042337783093978541817743344132139712003463740684884106822415465143834831088142295493100884770475967279190415357349540618641451609794276202545562830498459637198279021698229867941297018363707925526665380754868550371772989322817369494603125119177776894328468160290604922163521073586111843921517193618394919990370361521508260425931728876781333095305536225769874693843060293950517935076293466751163741623446459846886648700819006024403190271971472989487372380253517863726464283245674976895615576691062389246197783738060791814943586138901361759714493924295277382665132827668605130154331263199313044742568678487433201840121314802253355182973297776042097524092023165388512771210248650845129733588774370707563045883020604099893050003167701271044697456560343158188181247981609937426913678587743997424189806232422025933266826689029514951777624857034346605101532238097582650958664589503843858419311888506913407079204985899473725689943539498968993483931097181921543543665383249453064588260251765036887789815025832047468821541243748888688492258442819897450481091841248211603941809760432586091360078347589146542472258499666822369420698558610174800379111578145324194306712899967404401729914004635192986902352882149759389752594713973464594239180546967511644054235905634756865106834564741715944225206236856924582679584895930905623254278157833425364530317274922460081999932534323079521671990543400555367859399170110038081971755411151088042252016443284012853580060480787764914698431005551259311196685075692344601376342580319701262799246340580234879697245252941736685643063403188635928793805499429971920040610493778547652524905700915154522789232123438005612017918731910750816777246727448369890577205715303498471723950502236072544758430936915180983843865598322154567532111718854163386979887865364574027879725536670249277755060763747022771144942672452438410616327762313772143721160788901035079358116849755607406836370491775609111643298659284479779712790499267526729546036682867272390168758182936997462268646057687178749673924869760904934387379521392427842071687834855985259166458978138081868737002515920698464072693369863720116189115144819131124696082473481470405725437291692822531475261199582896502936902558682584588582222110820514424648130974438672397055499683476496552035771147782272856479690495953983129000728280146220293356435932359116058275193079955863286547703283884384864265615393004017178533577233381840850525274189397694502000143979391190014410215236043256283049161562896191781912869172946715878676245218282227775311867661527950221098955392804758989439334238666745477686068891856138966312645719986088520477067308029054910554693254221486639990837656906992104864681231419787368358704938801602866236226233902604160257942564969473804340392427635504326308196705076125652244916749545734422535673333222368999204659323593674449882438262621957350795123799493016217444179246826512483067030072782494971817370427521311020619602549161276122291267336177732548448366332378522569308334417440733695934371064472097267549163011911664770828182751083504076598162331513056122735366439728111992587874303670812709181920374939885497785299109461974972869089266374287774921527654417376034053090580690972172146069260566863075187524812260442042448077249678105272736703227807729026703792630810665676492359146115467434987695295197278648710675354174357370552812886955652355109642280718631127350560108092281913030037324955608523943086887118902787558059196293088203093173930723485721992829188252880632301971191206977364865953378430837060860544807975580169453802046161085505702488445114513523629608763234559038378173354995593323642345594970535871591435459567772667184150272088201489209604427436106237624825500801209765833879073856645358645492147922389508942645147352201247446533476233856520270035871457225324882717426239036699704074964529217217829827988732706865107755502877691198289593892775696636056562835015170671210686865308081587862401894607734416096499564792992546254707617399267533937904985319913044083660182938431647514121339963889548722466050860874791149786239659940680043518725556376318653973116157450289968815975630589988946790668621720032353566219130638948284368554333850753140345287276264825558369439078609056193545880238895585325029711742067485064862634316366627407714797492750649009023960519844971818473362973710301690950453727411572068015645618163408577681924417246939959542635643045181291884212264072012560244551666633363472272553539188996256384122870460473519655114496437569253446373242542929276944477630413601596457244319825135612102383549908495519651591884370301289245445799627437378116147319880353339814931233988500047985933631512061967488700913208006178661052929729026410335754950509798092855186129549949126989024269734647515868032491320531050847627296351412513711265340421721018561348878440920600506259922287886310610838929923427660861903678455807366007908574350291830716360074701245827571605938753865223607782988665359342393993529149845328558028659731676965071265584194273634002934276933382872342076431503890227835362450316190635919303542063071724086498003992611314065478557342989453872781391871597044394466760248935306166172794949243353455116538610084394495025141508910573799555494236202483352946930792312457367967860938952858044264296497349541892262411815170298431448388950368689272109186343632349056004218224936622333416311932464606531301779521979914915851540620288023913660242240579543306366848061835176656250828390547461925620715859605056399469935610082188017588070389338938751915807832153425834388681695852255466102975110546605538551771721909361283145168284241540295591867683076132750204462434986970707428152498306095497924104553378139523440170600126777659887442083423373800770706959591860380474121470463216746611874138870563620153605079604372376137713008697258108573051938583059572218547673424300088812773932146976598375146114646157971450755853300882675005401806085548693937561115024651471542130081889132602947138592333881524250892818444551199134131326687413395011563648731837752583684827824648597541983638881143970659352108935623961210262675080071306480118043952015311352999812889515578424490967554061605151163065059712717751251006872036685688050593719815169807522784087965449584804717978361544056692014489616028978321916936639865921304317261012960273246643282988657051962644775145816407087611380949502101901872094176847960889264397955219013878155658853862824345935716559384801811081125162131451967363790978442885069255381887940564405900898443088145542652409196630420143407716826898563734327473009175074460744583683639818566891348102378615029915171517172905577749675717605941272622307523158976107563557443352737620452412225526487401044652486033575990012925301156810789688364994691323596291871735586880628731168789793780600263861163326467539906895661050791013956382020469158988495540086294824200538483702661758972390819656999003879852356260214296948747913063510478543460503946870405037021970937047170837618492653645762447543065528288879655289604145489385478297022245480261396893637001464679348406864611421528301311804400431951541719737403938864022320078186680798596042144146881009998595977381093957071528294356095820811598182270423831161816664152519383983783630912950230672690825536722732882979838602578926379702940304644404007822753716707643045498286392994943317934824993536060186842925701755602413939541957193593376318026092983635731412889472421271666811197818743957913572099456643640073893263141579495412581241446040418049863555175508765993925288373151106074298864467447178169331782505434480931064643700774031296110826684264874186666965639228157041882983876092441380909541147484266323253206116810230668713803381272174584920298028395875780802158755726662974271221009978468290675569417474027259079414722895366607896081801305631817235742166469381552247714732211820937190488657569817475196905944259831828068287300734693613572030197332673675897661956781347443602594659744002968588462541722562273312727837351193131631217810927339104386200992278535244686716846303672419992346601867651515942703829294021039377066048885396150749485767764188616304901867424758915872463013708732852789042912826269223124282194681021513906750085906344241974613294273819617282842248924234624395466781349160949481372329221767842358058565605464920999346822266736650237110604480161055800533631272546279114461294728217364310629817573995063962484059560157274377240134169796402469444576502203102210072206013118321529696407433796708452750150423111725977507151557363649938477853719989968109980652722221341539157069607777002144979581268932309276320657996053973175836676319507011678128207334731841494174278177874397132081923727004018026484365836293596845625750835736388191915499332508870381008053650089655070986563779416328986615458390270052185638369126320862797419531377684493558751068444342341879256801350139123827505934715108856876265652491765688190236870101203858276596793832792059125843077830487799192465650162910417088141009925182407832055532719561518188704911578423930569600269804331969340865577778451653500424367695823843142329607806137984334905850829526052990650206991912055932691239149653968832594623140621303018317045105127928047055670993386908008911970181101125119744366048053997148712597582947288199978626625060807055678770157675656419541242945746858393669999854672832945302630244027320059005082590445391718480031370071807516984678056556736966998276146275889943453866011847798340064950109634927791182584379615903003348700889672630976596568261354242734628322894954676130474572152652589537881640229364536464125037286973731669891623180531958387753497671512582521962324557755475715817999327246671383655067946145133146653220735517193053251297028632746298012505064795203406665112077693997244232360650437925090517232132776860033163862896470147702205376497497922251444369904109057351216273681277344446356538995676431201268385851858843272654647254001226194177015677459326783260114310354195985445836843933522885098360730928422637604551042498224213044859155306701128267580335540735043187001051493937315173692843505190120039154512515295448539259491006747370619650097289540393295193668990448934510465305202117225857183630460824257900946209466746492937188804928230600574002233812264394836111716938659494866750631253144857143446416926272018857692724717204095061635828677938108646187245674491917284199511438017495417367224583400858502135102589774790294619978827996680754848246964353372103416094643513172579549316488299665140018468096198826572374892963902340880737203472998669115730873358359779957172221867753609354478996340221524497964923791442565468494268383195037251309387282899285074605664664201317809537556282463219575100001712303593808466099817834169830835340889332642912401711774343426247932984622194513390444152486866070001984260718024471313165119656540284900912917186120795938626311840733921299195955817516654121486939558518824183883182339867672455416582516072253832184066559436530486499081885172339929635251496692274705475256711914570386594567416078163862303372450821566382400288952279891039772168201127226833582081229397716624304691121818894124539356590875969765115577670040151310749670762759398790011615671843602903103366580226367119810323772356748741707563358560119292683393526331710831379746473587949532662885378308845435572323670957953670768255534063090849922657419129937666426374085320180635001832552592790049220535878027336267416382168019600928687195171414442335585885239205742698723723617277110472239012205938158260491068331394798576807662480261459130278215543215234139356803830214331133748262611151685769030442662011675028889919942062394882865045000031772694679939567473951876223093022438871493092826896296776082394669098707196777428682260241285197550412828501687097748439866646969913611361097078484989448141356531686782286976753455289481307826073748533205603235900237633229201179309733708992980704907118386193850326917211334777589301775759640245618195993436292989519973893507239276206068537990958430154098518394949595912208401809802274015280491786879616653040020952926374039792303841157627851493393953589537171415236225888384344621278751176513538739497662349612921821332322015891844020814206274374649443836041523733249150355719687089969076373636848978826819166625661979512416860375504032929231423469546931526689523562334621573900927622578788261610975334350639431864188171763999024879292891828876806843556990760350263110352957910587055455875430813417865459373015308162282013511266324979441205551402682621384859843389342237942869674570103598031817921419521035141390680950530349916876662611781842004407957506955874967740114252634046641273849436065093717591476974003771275944100093174812520917835966384863702279062237183384475442434406763645664528109663576143327874660346139329881416014577813210670518411357045371774437632639421456849496227954867258962294606879101059770854800332238746317042605089130650310414365040399537079966688121423230645309818640250847654058523497515720861781031539507034612474129567184699907836790474545664622744837002567239559072028522851602228183772869381502066805604815484615619629300830445553995972179442680926853893137799033567146024654756265030233462844991660435798855880180678301028495024797583725758846119893520603544767922106323274691489136293673924857086164395128725985492157738405082488583867378597259873835672020227225970700614086341875301210686825809275544139006702012193139318892739884557174904606997878003789416933555533576471625471905369138758750719030279224971044614701109366178089699231818940078986996191511810225931999369285692573251830262059264191868041206165351049025360625403460288640474151310157182410399250609591937858159851037721645949517614709106590363929454395027287806027936640452253488306256345363562506689375073943522573748150199440422695831593066027138339051573499043974335696135882571106061645481000205224128671589813746544569032874147888151526791088947456597988262505101114441880140286380289357807927202631947493579593182392054437261724751777734275664422510787084613794461320393244029810442858790323561717086199060131010731898056409398731179852359203288424113068890766769123299239666955142060164007168531013567937297093924701182150112312388844383833116690211931674999864185548381646849365301562203075442680014745816149848231752796881306922270822857433894056174006151724888260181417674562142979316962225535190678672813947151187800167280237065962398443439914006571704545242858382224999166825518202460868745106302600461445099563826222178199559317149679625994655468287987453779282427340002045293984758592968625241655991798195649898916835613820859648575045348260768852638214402797791872400893416378262974103002131014463126412844245617397641915465546687038321999899488801793821424402310139889627913284649644831718173257903833940804425826981023198722705424236013778524958017007137241524410857040581485503876248610848009272230586341678201459786978031967513296906484556535128774299792579685308467000825727539854882873495742638508647724646103777753007787337401028364489599357849297540903214425648020932142932020173477536559671474374184230237137938509538268798001647124797564635300198960759527909846273607660173533924494027153251117864615644861563882351313428144086237696287207095913206780553205728879565933948577344561857087740491321436130444360151594533083225653047790150707972565914385476738086247958760509676712624494656269577532015060233135426124360333365499821922555713558883170993509608888630987199748529139513974224630627602637136368523171050566854843723527373098955329620903022867510337763070739943925209663221692388794175656452605781766866378300280026190119801486059038963328077408638568079960240672454290583839697351239877998140753927240123731102793138857469245956641351624728670790717989342480033386404471285091099916607467326895089080419713838510263197225126743992884287883659275491668509138099597385310153265523400226009851848149992755602811294011607528753030700368612157413226818983778309293804793477852051195195034151709810718077445098543342527975103202249141044888118030879504420800416690723385658138286664322603554264723097064293567163793710036935261085783149706329565134387595006385300024903792639897690966772376030394773670211340616251889606725685506343581219973416448104201538588887240244788712111386893589747655415821093356322095907134554358224786913496316025405475945684318025025903848286610786260042305678954092166613605583773339628826479254580617649038960225775301292176615102595136996970228415482199778582281315084142343461728553923369859637499506898196795062474023556815243624810318536807049116527191467265296621134078821882369008069842827780791825899981551770135144993102941985179614213071210966624712655583190589124272837646399489677312323916850819505047255657348924913798437535599217353364081377466805878754577004938546529958075114931294165098747829985772227809294559584289712239261695564599727640823058268291274685701403142929344156001584386767116617133526960522498700930260972085851915054650983664495626142961862998562038063826022613754374818817231676262141407426144717470961461091305452065301225756913931753458075671058425809551013270443821345792475408483222556669572346195439445434828836872855960805246061872614027712896341647106792211948609664826912874448321175760139502854337049086630100021351891885735390206011449405689502549674053229956999648062744622285942290849499249072408409659593092647624438247774039797087961079253085492383368019857162165415846677455485433279953059432275234934025259769843618702194221041588201961487625375745508321860075206121892774816367389500055968575894983295720048091205534923056381992815241384384452034648160622179802525306231492958124411024668214977335727628327970551732975844987348030512038480516075722803812683973309449621349869238053462014793817617200149760877611836087893286029253577208207787366987812462294576683169404198949925441877604284486727982362005484705516806788320057337258942115088921384427340501558557823813189619928137379870611413121631783744196076645638273481357949479912478340944678996052022860157307505214982317742565124726709763828832510638038453324249343258492672380717626575747838777947510336760082936302969755534714602278707398086358559620069473374974366378795714807394359263912732299417626108260653118861807309249644306857988093220651434203140223216915724977541831245614196397004128212061543532369990540556889385414632099216755910196066956934047680353788809932355994631078774682493822962072806288283906087824701228882284573404690091907551695746329647195645956343431697617269046816834957557974269118105406620716129871109679376342692318455647499965786946271641890512959930030281349488082863627019955336204514063747588773346174227570122593355677415134212944352968939764435684038132169030757931779643344417250087790050786740355393543468530494382591150226173524446165034883516338590269618426784059375797229600650262773637693061033385355918635886517188911556831097144589539570713994330584616399762452736933410748263389526062356421830084368391847492915916506124700975995860985263050171455644001740396163844341743207111674564694478757435050698695868880758530083214877915117908641961011352957204606211534667745647463679351820570989578869397637028505782729825315597379264709612705704303248997580346331238267602714137382364702009642661382209500237763866556554038879850857132283696974169649841136043999501915218800893690306839417865584439290857895570932368823255451670210563457512107927247474239615864479646359125434118845047204331939313800008950919754502457114042519940663709838011045215512102296951632461962776696644675498583989176364351648274037577414322644623209182745540853149853720763900689390422640485293489695738421648036653647087056044853829357243636172506329633232663256880798269984385370012146368906468891867829645376709703795086758265306115171661798159171821165176781256251410134915125012929450738784803448744146850222726980798866402379324830575755293075176937380791107966905495195667809829151843800976636698116415684980291589886597659996355816980755682663780460965522427994244281350829098251630530298813781523998053670514771294404565911085521768474651242229365836118182709699024973486202563900198190107764533133736341248525661876621533883091741818957249896363338256513169614022736893212199141743810378365376120487728766871220620562296337709467233361077034403565306622354498722643060324022173194156507099205798693093317879754504242164361739864861510945429843994681708252969029127437138526944963606743988800217892570437064367705860257099462059943923195459787966586696841726404943775797974781854325768916958648876938672534745895555235534138240879111378865546560447609839529990926330459934036430406320916269507434476491121048045821155535049526563309921211087112550299331269467264236017286454086096908946878592648575252172891600186291084994926137986575514843920326361525142246048493712533442846192904059916476879111116979101202172617808544750731622272163303805857993709173710362388388347181485990651381284893159251848823730769309395728638954817561567493022235632006757576945729022841417056212444583680480700494288679562708136319812003717092451070819426682838121536943504187651686001016156283162144827416763914035750143500552042156532161350725622294220803617038372696595404370366352968458883530049629732718348517531190107673644163669502169738915578577453209841324602337147587967550004775040412558904628659904527772824620117889479822476261717991339526250038758217999794426054151652099903095331213266246326785634779423756689264549108545891289626385805059976199164783881881379739612444015953710847702230079528477937929832256583315566934995471585333972924006346174973867739143396527320252331144181817466967235847745611896196244892801698839678239083353525977146463485821768176636314521207531399816925088812820540227149210689122308121464665328390238555226882887312480374151925740857988933953349467782310102855880253675570446586426443876415030960254352895015818560849838904758577810687311909698838328127252447888371481163147031817357192954784339571036181888020610157730473474933961001754319013123425721497074801777480319673946594942182841633821555211867762574328567651851910208088718507440981220159828670857495670574967345725289569253621608261519443476238715942206162909870108351903925352203854627812820853144675347259212900601583738046877846195986397569903663728727269325576101170755320452317142062700929316997607349163735203713421878441981978638864475417402558203062202460637786341279354093539852089693924863771991541272297960060875932890277246044015522109298604113504542673791950040229787535358517590302511635013086589666191690326183244631717318028526802541684031776953233492681673079072656926767543871013151904297178447335059509619433257060029128119246650684498570536852940868110897236469640207308819831773617724825580439274856099457857782178002622560001097961310571345092018164377395592170193899707214512753310752515224784181472387859306283385534289977640333921743121519716794639940618913275354554155550946437512747045149635883895488783746660137816724956860153508113607600391790175823183824426377526676995709725678096126833976044598150830269408933199165504749407626001832634047676626974469398178863492445334625690978674139446760051976235729104187875093732805604630615618811644925226060481366518438242135186972423902878639875455466322332506559413092356046207966658671857400375298611771364857162249731143629399387876196866167985006677955370013605787089262569177656616157631769845656718497266000885906939174697448892279405644146535164247032480638688799071505405621052074285823413106038831685889522468225356831268168886586800041630306248069218450928708359366743864051516970616684532717577046967563412790868943842571495171661966237258051103427806723764975185891031314158163065219908692278773994779025633567969694063856872341107826708733061451062716073490085374547704509121816761568339300799045312579366178469200146624330913975505640809625540396918307625122545977195566757877753942036260718013083065896262148509699763092791549329944828866658742815111872582471555873440373650602609377843193716155336923932558565475698063231939219280744680382108271019590315490380271139348150152833796934804233071230845400531321840289673495339247206447318908946841724704463058537057977743445888674411811761175950067747797789316860729370649474582594732138771424461328232112235991056922027470252939652438839218658501653140353961889249107296648813523989969319299635221139664078057931811519180728362277460280228942758913173743166544886239517495345670729603486146536790004084625349831941772941271225180292359925740450840988870726394101415028050321059206856944304918534444092374864786206323334874473780114523162631274882493013594734802109739788617713816803645328157982995513669918656856024696057972361875655039054436256578873724996503616739390842352931989997631254895068642493078034084263041789951625301817482444720855958756971065195022854058727128554248096737373770050589993761887077891946258619709106909295397752214320081744388553527181246819742876211891831893215239272619184633573037466374557709165908676774606089492101759224316248177725486112809891043250150948742305089237478622509724683890248233421996075775249642639847620829037468634620939039302177803360255564722301318339746576911907208371658182664122593974207698187208610541576463514004806557966913240681339624621499194461921801070459297341352148324716514111225649650452820652103831655781177200522622719537954150935226267097686396302960477031371871065416130574515945672387753775816838660291448035685050879016580625392655546044399049834619413851147339622863435952525180785288814493343210480479126822941571565626910570237686020223586325021295338318390623540497303374542831522585556106248718178669019955683056817520687437210181639802131231211018807989354966224196791009386844659700139314800112689704567518183668975812478511498105274156287598157940199141925136420922825610247269535471634592006275948457548796016119374238602332060621555755744263422620736432819723908807482370111274716430104414763783753954337828332593934456145025006474355834532073552987856757360558868054856566393230775473238363138584616344019663150204575454548931817319296445119455400670463176552920266784589519153422912414730973810527594777542576540373276841626853351964038091163761771137762270967875021065743869312142736127742344098884805759795569735209689193686136980040085010046259072201653882153040926536087041518616114370501018071840570660521996911069677821906640024510001929589451868006259459455155718729255100863042927512225895451610698191539826870495415814061101001078919302878314551738212275006476479601832814009789693207628930719757872270014077794808835265500884957430111338310169589430910377972291597884017629706423049714490092870137124329159460090580810264812871420761018499317325819457290348885476172217727325180974014802492632307774169450532908137803661381324658709815356766622392457856392041030722670454442663841266255226830060792385104448380585482155943618794505762879432431847446054702434923617236846721451634410575134810996228572237056159377756542191726962844610698206801495769013278877953679985988980101335409136919577171751223666065593008435006859973351754093477844854733143424760201187200850151803426189466147868896138319568545591251057287166032075852002498561581346992802960169642842656458764614592110200914634862390137652896095951199802912951654261674246283019021828177465210692380295066660526331351123018678579028095695276253524649763198512856739149872864842250558654415216419737896833134689136016248138868343251443653588365083212067940399337352469642080423476509202920460174633548901054770074530973570070856221862929838951638882859296697818082635261434021849122635309978536736778162105238386397122099579611681638475374419988980832116059652935901957151656670251329844836465887074420094922592488646671660357393922058027885383094265990506688349712354191616835098149191391760301551853930225279093098303684566634687436683614270849642330630715245649046463279193975697313131581684006664488789125008888834827279143745878824566358177752718412652837725625658252868133937839273258779274998905220237390088878658711062017222191826111133780611672268285348775031675158150163784427316142657135183639423405294004742211494043395368606761225765185421851003818591127657293759811789062583773898463196904347714864676918716145156493045361320159893894514282993528432376092922809069426234670234479247228306574456164230924716723440622107453985443228287958709087937012058523662384902152974700352268127237926633475347459684320597757353340529799861110615729914267948400798672571256184989625560055959273179634283795011438836403251682936910594077114158297014161725043816721815940613228560414243333148685259966239316130497677111293355031057071000989854906638835511123696443963995931483765688471430531702051090322325857101673247397328747631290715452943267546931341348407745603943007973144941463822006765834026013552177224836317717768973348625552096621019762427658211502848602178459313050854557826590829996584463858668218137478732595933919990344992191576412997627877877503448725769590963365611949621737445435292585733562720924855951312559343405093604382339153745408406565528538559881348311498350937398550126139473071850452669967381860056607654725129880408670180836043159208180074910487373799020472217847082375513631784958807031068435448817646833787343569155006824352146052563695441804665791042617120030992672812661817679090423315039930307064183583658354214611872827527123574678053649471238211536067513788580853062017203857416462192685872764131704701244261522969316703675602095591357036512480264727704834389749857538621737412429752951421330879505583568650420893804851994795948779164137142962012118846325399006099579786398875991397009572969294675291520514558402358255081701102688292390562995413967636844170300243569766405548601427272947367277072138132346407883783758398301671640082659707069525431315969631483531984291649230775908220657412835656749601808564055475893881807828954797515139069798925912923043086037685258414810959253128678769176579692662337523060229830106056431587050920133138665471258944461603556404069933108419648396563037237730203766500348904454608601652932447939522333931120057710146244273757662228237069373072659832710795015822442063139786385119191820096570749667292736196357208500009869020351785577998811442460839917647673551276488877784320957069885378145148981809678938097322206803573622262410993275435798805527804587152662290557274866987759573226359980969689750126034265992286865550079530387874857399524533962058281566736221173003831135280636271615555548815840760134706299633662543631634296829245899858341858644778124292591934381165107047777175599444642417433237783276757284502867553332993749488792119074506486807974759506263870568371618943386531063652307550553939706125983207865808862386020129515468183891191798550575214092886013819226470020065624524050304718917551666789478578858208911045555404323896179335384891154703175832691410120676475260176106096110409782263118379394055591578227126764651956121931391451449362560669100689933484230757954382663227854123866980599082418373391746231796620418044207222081405150534263430971631409647129997190404524821821585800111627256901435219495363959756980940783163187886852110585240829012399170114011714988307786692490277223914220542946578669738917753923029329332989146621243168060021502264083966308988435270448241208808199468676358472084560429134027336112776622130953761443669693420189257409794735343086198122918752342745279121265507205298971433565307405941021996708862925707617992287311023880888522426632372690994598463750429622448386052784927766136628283045865243991456407922829956161225280219302688797837884937861358566663638189750284106314759204686874484564356953024597741256712732438653153080433530493794942460757967760608362248724987421726877342491280010807029830021470982676101290296182518040584876198328818191608335567161617903978806351996985095390053295800183432195535488617770476960724051808601629915142500409118810808329681609734180487995178532797923482490559907761313321739803159997881751717512954265894117632701527157894014688059233051884164473586049590429766541657961916872760791094964300134764333353939608861251773133436172252996681260476166532587106375886357322587826249207147003843565350719732132992356023747859186040926519013623187683071579316862176377050859741407640622801586209826611806851170578782575449253054384428695198825081161555745192899294817777267349006478252553544203642961002703644466383406844883629923343261227629293164064636077396812494917910095194820913057527051005849366371056050487570959728989353815332429370657696158955218649410865307319987062401039653572064239907821775649522112326355143024598168718609966688071644609116178841062948274475426313281212114238421046452735793843729124920414133000284704922892471156720113383446409910733916442544711689863986598781425385108405045238539262984969421887527600565400985976352799396804444835541493134341901877461385065111665464672393964560813009781539148931327113070794951806481080121675980356201977991546496456658378827520702004562240659680680395139300170831212157357924876700971843819149175836492724698166046499535381566643161536442583761255666361389549681846204429421025800082509971227975110866119471142091203546819702055778083444954017707445616925956608261133390539716504678100505860045153156574649806715187985111129298431234271472754688844328213156329752059585848817630065317102239665424154781014504316107484637428255995371264227780497931938733901090342801539011895319364459006583254171274933365004264199160851468028726110444851532669582209430139659582754311333957003084984107561995044691567704247717474320289242625784740617617122052239017970340747752826583314195876412788104450710002408215087371514583568813552158109956784785129018437698842440197685934331217273965765800202322214624001816232913259198537355871809335812845935857679853681668558511257365049754637744206720199176130258708980848066236799529993594154623049424113486930473908309674614973065206792938261691279875686938302578396919784894301476760438758327701435320271433317890903133155248882438780926723959049089697606358366113679602908135314233410911335515094669278786507605449614817880897056357279410123582163829553140258628938674377826458885066345050137911729667925744145646912607043306601614279028753600155676466000759990022149455876100340604532612742488146094191525636672461564739782922070364858971157420283532481085043167054167092811600597725093000808419775498645066248754268101223796886736224812868643820584278576282566246999464118930385227348646815327658152131351849301607762212356596482716520974089635783245773689678799245063727324904017911359174454840154437913178039788390384382214542735154323541984773039483865257132256763604017296687366106173417410956146693277754166745908377876947141464433349622300837740171760227930706636832679791391339619980594985075933774668004742076078126789659379901557630208154669193776447994624424726474179808535149042840926337240012440357378660058892989130148026899634309101988547772855166027905526243076201111323120630586760479178231511791727101172387921524990680562952270170320188244338398859135007357858545172999106191927698041058851092145543933098165424477960654487096955899302905235616851512762737822512138207039001598515624802575813072130509481694656530350885924120230310505168647494559785441991459565346278549800460936814443592956024399100136447653580140886974518326603400473907729460444827866061828723118087476961217741795639341381285509185951268807438095959242629764864254010968176535974039839512545371537288962194149790745498706965446361248026028832956956845208521710251825238219243358820800871204449916110657279374530890932440638173021006033524002130581995264914483369381420828780104460269534947684227707748657848593145970896881328655779367823868848595777582492445800909997975600332991605607810457815710363586186059735871176591313231163397668650605175579002277780978704264074073816688314331225868204019232400682352601277466257437794419874459754531805485297048864445811037894851350070733680499201953998088067341989973923105671256104565974154147916206019897384512134861012449944648924597834097451190495932305912878718354220299209666136015341760052021559151019221334491749099585177805733641371291579028609637051172884818085117158845970756452492650721607380137198156446051138564858783088190940847771169688451614933938700455462111343562516331762889767813108642407316428188250827548145957090581619749112136559183497521757624566717814919876635116756749543437255187548351106564345852212102739503699056484244949941626413280965761316940240425803550556727915097645855598898041131016590800806799183619487111731174605679404556409209302367813389526227509742368593109250323907378152143697653809099330399159894770472462975693765782186293149284929491248256831478195853517138946291806421682313431504118967705638367059573480975431535158108942576172586267703552999963658006675425604955238303487505132670186080741916556127265320675917729728226734319310990477280896015924149881935525136183631370401849473024248189096540550854680888380582601011888712844300937046967809920929581569308011697428415976829605560278951052771739884200346204248869013101623592391795293253944409761901615605759893199725502712008851683548237168136962019327346855014742516041600182303033381621450191383156385148541272622839608765660540748618650018623783526654774593696036700146690937918358269284182009757213423830208438924810522602245690828581534351451008875179447013759257318606463434414152081965578220664990537445273866618862397248493971480149169215182425346176536133256294587320043339201735440105567822414904185362068354803240380839558085527946623598780678538209486217480195433741989173502986623178250575260436801392718115580166756958782499107494059423310048801249825218632764732265767113850074908560971065013554417756914790416918430445430010093094410619841633259410294292743968498719168683248576800360955618994874605523226923619067662976153443484910466026390100163813751606776750945947606383455366414964115407918351265677991669836225377464114562348664838156271055494091049533485557807247505711211873821412523620838244026742846940043857877440072501759170943266812367152019412112933330567091037093188086764092694371778274325564111049806313474290451235913662677765769227248675085928642122899620480101311111607010019206823331852906900232748887866025608215163204078645155623848525082017333771946647022908087205955174279250544391621731724185032797114191239672922669563382525491707839954596407327554339766700781807048758013267800214579933434888254137788863609026089005104318569320593100960911940975011517782693334814149457685443371688343479739265048036179878754898480308257031963631539166662895219565982495232518776929035841778359373011881553774695835874678857523791552693481298812971858860749311418131800652904850961098146993299346435404126341108736496341167488842269950557965569221888732128366017589953679039231812291538970428957349902400019175874454497155655569860852228237849862860842083259748099807408090933094535410834535507599409202534118736687698155076253159703281491569067086058400730460662380173564828045526318107016153260049726790310008093982890409656456757379355348365893002748633594557801380090710127323400029870282951586714778105119064219399603378330541597782091622059893699137156748698809095975472540102451016120792232836240895626634600419592742679107543826841426934345223195331436049220715376431155048564851882850168738074924532153111570714926912237459290777484522090081085026567509303625761500096803288819703284729597792530532778393273871460465392539301795475652960537244988612888964587996852484686099211873449185154694349906005985653481891662486390486949768974932473971349393613861304790860100866522617688680080636873820459001295926368535955108025898797898758355601042099503529635040879701117987535081652569877594738573273919585231147999741831131080610056913268423992682442409344217599874220449632033060826765303719765892793227247700956100804303114514351109230467452707660848764684924687905697168646531023498345941035554703460790902114511496041950551851135193591862926201548656361547205044863135593105650000344673391958510079251953565439933568221431690214473721397563104153863151020725654362495453695851088025095069116816844026000051802843923994275695429689194862056350402159888939132184378791296554705692957188609565944494586729310837396021626333211833353312543316301099840120743398237271019606869283735451549232961603314393099293355177810518990225953319221603475672942080121207422355234615771472812744861596287169633659743787523659375544434693739676737973449560287907272941223866254887216317691444522273954460220074871547744147367903981605786144973118625163629444523707765557029992011043139886463543152203543041574507669889236907358748897593013119683691063930212509443785525510577277824121941096806693828676893340107879315929691473274138336780863074557365946760495282812169756760809558445780713725537456882465698840773106113848742907463205086860095779674659645000839934491596804689322942726198717865392665924172059223294413873281414283787925223348833056508749645649292826834527019553119311586491289674976718369536251417419863434649026046985498666678558669713824232655402985768150893770721232664304005825566285194111975184587243355096366213234590507370335633521597425792530523714613269392111517708386812853484530348646058735873409096362579569361770097296838176539336024293380260343263390149086711673899440922417935980723654131331665922684060667001681783941633482021717785931330946183541154245123049874182138761677938062586485257832703397531490758009074579721678683544598397244302836950325569530875078605182649928569936785107902191793318428145574309306426758174277521132222362784702152900189548292375302123110371040796034256467187463893533204893357202604972592647478249997112055143847428144743435131079331041622420854937375150989615463950255335847739037202812344397536385985413433327740060699234811409301935297806681297989422280154449165150260661871603213266547903090411420725093154302567018831551415205229035040753885731003213888253311606933499747722096225801222088010146347937850338157384305598858527286805465478778657708238555855179649030950678263374094580566552776246521737707886010267032498833609569271824143844785825384045119571599779402352168246939835276575649837106277175254507898186395126579321957343752865559533964234909314116348469468229745139548644367790874631132586190945562584876185513168060283643821872979734169922007540169414747167742041763424139941856911986993359999079666963493939988040697001490102084621073351670975999221960080748427333703466878578614284086052947504866196892108582789899856614394946405566004243235078365011704153260817336699757528949382795785167048059710968390576386648018236214051758478871046018581373698801453607267297513396408792522248140592089073200638537381544664037479236352823823194338744454233641742800372188779504221343468077045628260976371346775186851366053036572108871752873204597805538105420043470694145386610015781094344162248985256950219240108197990360193892176825260359553333923532744266371823231330947063322091612786945527495305368533832109494120284946899160151181269743030076111058775236743287051789472255509710569799239488506338417296057908628740239054333048362549238635170496750869004710713044472123087226698728573505163853970760885093414087781836403140873743937625078764792529951635471727351961072319414496669005957780438302863905945755702712071516720954286747008169087128094084826788547744205710995442798750273331436006325333673698328914207185047398356525201817228251558011188033956290756045580096122035715538249284152969898406529121709804304106786289330295342465351399233799238592411947099506439695918740676442518761622139613265050656995082975182607138242919499822729946690167288249188150834982614444138745719804093101817600612609878612329456677420092762356817287372229063067062214077635866447514368952497764134712808360584609870769511354759121131546722896669028364555956755560166602094810038068610378554841106691102953550875276367996783201761154270240273925630155189335235746880581001339007057516586986100122818350339761393668490257082703838478965721609198226602897386539071088154394733857649144796751898429033741319696321037389568261976943839961487159858088284032024918283502050710107306402796075238391807748173058691331961177746267843677453625414984567732325785518470428821003091652156074816586465276884100333141904314632341362244754702015947397233862657722578858738701342859482910939288686816258430714868277724312457810722694627203799616809575999462299775997434513626792125095088080860532205921966177113702999412686124568236054080746918767857798270004456513201529881378741852399677979703343752534982937263801513326557245950066350102847853198165206095689878996252282382730375289039281325944990099173610893442977370687130792744317445514999372976624526071887196153452960405880108340317907843103872656239199802966392224432928217672610514205963952765320977936856088523011461697767596994590021721222148973808923538320708104592327937565097356604870930388943286636158920919721172913352437536770329597791655792523333428443070925534552850046343734063487797777762405056905057420776135570692233414226664425651063664851254762324736665498623130406411082076134606328352622972613002065988382087655683745601116594298327434870772118079975832434797490511214660076621916795795632865449632947927311789983056495487521122258700783550965735349876301974125048132298971045264089338986986168160960414286830059535467986265502962640892020334333609881090311476535577880939676718560847094337438680880985183503342440083721264166801849873410843142846382286171982284393286090935206012219058801702592728117060457963516103946151967012941452224302502260303498975830884000748641645183734175567007776423269271209816593246328913084547805990137955806691009503986195610468690695732993799074428727532470338498138726193529375820228716266017231388748961278421520626518639695086229671678912438181069710017980438103114883978794618849083170045128188692731085815929179235896478989441277196801038974337990955003269477000496785529815406569959651299119061566920590992000402818364611733327665088411500473532983145240781191498913155781562819083302579538625234398855141653408823462014384436655964208012955726360278140782644264570977133919888730760551270462720937246350339917857241636512069036136189352424787334198610747149533141128591762833744193476974149833502242389534153527110273036972409308345360346463857851990917621153991522776733089323673488727428532280183388529038887875070108719386980836946655126526907879202883532657358507878897445033570052499644908255458184090927662312849250027623983464683275820255588535611469033398469349756006651982294181639919946950422424652052813068142366844118038982065674811090781218827594521473415822462347075927493975933318207272544346970124577863959771069459924990285035321343031812542536264623936002366498290948285024180014210524673645852383858886917521710002976483407655286508241534969685268956551989840131066650300361944235574177279719921089125417385115827185348829263806429280082993242671226012773864157938694360428327375686348704461885622569334193710049548854642302694204326536527302510462978180401229648290003642972223110403044105128925974013183812017826719822471983024093186367948934046641301906825978305234478179227575686723793256162046645555488328992507093111462689436824192083335981138131640501106666827673380780953601399443857404027037959156202823375191995452727909465653885228594029679597366073228388181875331987723197581069241124710116477523144723446176868636595449883300373739233814083616313749641117869139273936240554692120059645897114885561716785491822407578328112123487404844950243326900038875435774393293172832335277680488874965373894003624783879627613164179275823867257696538478912402543932271300725784321381763590970457936041511109592487929789404951093194299088683958924823832406238491792386613238602511373074933745718654374102130858539116860445537115849078792165808639838289331863947650345777348341266850527696389712245097892109854462198477859347839506716802793867189373410841945082406052066192387447396886412129801891157922126222304074631941290041991237495424226379341084761785185204250114229295100397604898016511586223614718210926926761031362053210295962116353189622271908199050211830624557948064897638137723961789776565812496083037085694693531063208740694481558728820650281389355730893397614857878127331135630256465256662628952034240593927348682436350888579494178683265861315731882398912291561874258163686289820265015474432708869917158554672004800540405976774349431711858265865484034746852755703387548101820956849930665434239383961778779244021097212148651022164201092476751567667661628554135835603658608888120876907612041323500874820223078385614902186450591351073987635577998709865824354939816004811728494870260701075528678445136815907640036575772270204484885852271991453286259801150359970823479914609731054659766695119017961162406182284043871549183582101060701717661634858328659213216991045463060992668687853545983945397989681964896739479776384681313070314372147277318437283182713773338141853577314226740207145145833345182925258609204547469730531401646730020052736779743837361645203975307199298918025760164980963920423910362542941696396253687609524870904261031540313350670644078261237958058766140057990235095622810785454716168697128201895924572345882452932690165413184703320924521915707321683681229069686625500869215501392751149331849427709549288094671573651491405708467251693076771896371227831131190502882398954663918132121954257808221397317132431805875974638110003874683370730569573811734151733703370492644291028787951514682409807633282497987668367872682989433178219043932907758891898831728833281279057732616405588320906336320826564013288824930214534526625564849091638074831202782230579007346499928420924864778251772016596631568406905170124175716152496142918103197114038562831213091706134225243108072264937409842671872413508453780526040497025255990718795787599267597282145826082219966572367262792521748088872943848962238575139661762337518631870140143277511968812949854155695461700454943349287949983105821638959511555633369357265618125305974517868965716869972503044155810101081270949297664744338257896748831504746889026938534377092479081553673223210290321901832647591484989034052537770413618725123540045058137730514237433811628530385086516665090096369509984754634688494899269722186685225478461645969053930155862098254446126526310170897538436234364915097452054505734320835014480033102736583233326230283532692101434920473298094333011835339530843812278464890028369695656230980270753503851478958678506669166823050019544715953960169012836244907176021849191970623297758787440406608200158250338940058794227568718685616899118057680743403991760229186254117836469911480512306942694603490871072302633858128569049757573275943607144721193921917954498242420625824348341124347848583357779990442474230215386389101516305169986246701703989607129984588111229975732877691693340588909562133019382090282417016809480486879325920683280804431694307634704092510742420814388078321535050261671371663807740013822696622016974833537820431921088790478253223153453746633761581141185025439049452129433296884919438558828943817305778648651563641099331217645902450526301102969747665765005184293191695731921456441969721911125033125632286803563805330300070784869673777909810767380053313052706030063441848071965755312236348787454067992993356011868307560228373605472809160048987142083730203352166682538749637366285326647136340740461507455753328167349628741210139953661638667702366733002053836160031888407722593254053722960404961189434726572444890925802737716184405684971274098373478351125651450685243441634974693734615226149375846725498075009244540436884646719573246301402797959549844260802506774510177448154963900487454664465952630074680250594553305054170476534890578646459482208884373083811992376623579583330742727764040927319269809760379919014106497355479401159446603854639806985574284246152900765579820084118051312121185884880888850895464446597862208415267786744019812992483756288505970557037754777899387635321135442155543747355115516785897113399722516847571021398803342602489091612918994131460845471175222661306497499055485627667587383942710186286908490334997600365472144426573296175642343496118945601060506851711767854719146795186705570128471845608663222713207543660354837439036099373491098704011680466737922643816004426635734955259497666027230251481018937072505554562533526507003253166505359055550404904557610775509546385705544690953762662180186544623340007159187445209059884011784699787432057708525557524535039364877072494002188088724245823567408045266535203136997905258240922243372672353281270530376503259652966253722427585989487468698584562451860327720729667153686559732140679619869919376292450793430503716756682600309835949063376254871200175055223795829026222158555874114917628991314218537525633109866885573289901617952822486076018731518629771105749795530794648816160061573822453830394027680105729936672780804640219141330165814652717392477417822408904809163062793574022674399832008377514627698606683461043475537359223093133898293899384861041137741140673281870798817110357503047224063345962645776073029689202468219637424088904589842253261926972086564444431444713972472950851046989883529562671648604415197566768041453792430440542992598820996811452506888192880863469323553509434709624063393935107098816582020774979270974260397993358570654253314835790441256185601792727961075927795371751870136610692387665428610115067047031234273857966667732785723266360564728855400026654522620960223870573447370591196716714572522232769341942541264048771279779208775439752487702921308908098870324699437797932416712555589803052530851582576650420108700270278048358685006273871477451316428801547619147382453254067012023124363201504774603945014061897870430332888927088107062029826669259558026027829942813491544819119872719557445273020512790327032838540377190954771084603445964968563580041655939297459097327612446900875908050344914293170909813075768501439882161449287769943302613579675727146215571027042474649530907951271886906993424921577135425373813028977249504625480121419663858432662069926266510362897996153660777298624120864850837202331874379101209930639004346770615350208901418915389559268967235282490854386519997045568887765099296134190453977450435655380198753145628232258193136155898475817833193042942796050666198356394319820139997407331265833288939319883926103296893360307611539877957011173836241718511470910099268563774950657748803889038153457744777572039668097681084691215079455641962494743572654255718266635479860206677615744196145864169276885509364888820893682237132193665166323699897913141029495006533724190789363376119060903078090157319059565064968233857250653143914557037600970147161941925146909021648570401637421798557093478868834049175098937017436741454704579976431688758631069355245923019625412415353133787775358289610922546710083291353055388022332050605832074741961419060204671654036596486583097009706684221387555840529251939634515721390287220213793849640983606317916958292244907617227690690844149775773291667506772025447772372226482481408070171892879401620721996597767376233052651667462755596131325511308988801814942084171715851552724846620004933352037179021344052412977199293661423779930259264889933633428173985011720338078234491478962669719733941252157160322869108756559197984785616145569594176541097779481487884570770279110370896192904876864872659523505813813589816353480008880308292879427900599926291018351664707532858186933951385691543616256365295863233589948758053198588156445584537991634455709046648951496363076113165518120326985255247008476855680748101625752635067898692294187756967812134339969547228592725989252172858411373647350055577736850003625029904993397179345982908737680303516622527725734014278949679111000786670197543545432256686009376270515318656359429861476458967683048877372104433109612491791320291450022814457040882303678695491523827502519246948943437112607457849015688343352326042153037598854526040878885864366536479801051898458740281408907425982340768719056034622863625839949997594007696488353525776211409904401497813539213652295772631626100010987402147235077082294375151577063412933657409296394201021109317440377104404877649698401166687376558380991727322679994083311316491637778954150123617558179906657912920331912528898693595720824346469128423073085349923136317842749740719332602150705906178843272397006902890966055141512935254198716909340880137140665767224095614895784250486830472583539985406007416270861853501113864923505713313617373591774824203049060636660240806909019841992727316877045453193567404264832856006727952366913318685442045678193113587415182251201703707796033765960217694658311226012628907585691656447532618233773480337343499184840132268399098894872571607771544724061114113536952226519399197812977781334331087505992903628986495894037708522159911230371623482912256322998227692993409764287159732014383193049100535263928719899544941291536558416564994813183629108467505491246118951692464670786192979687078101209273798525177902827718441601507097336769530993671265264493685321928378315487310282766227162397125588695944470772937219341151324161198983474557671182618247670796141075771501634163171175850023978338293031258684517377430327708477374999317056009961564396655800503582527280898296346585364106294860269701468378601651832813334845326225308772276103247914757081297710728378692786827204640452662431521171228763501076364981516457073015433905610629233325833981307076069911462927880913011197025811029608879066872288471212945903863746483591581136347795845497646350782275179959549589995553522350166440571504533558370102749204021194341845054682378730071887137485877294985254851510721501832717633868715500415887546931720854765226203501250449685578240017524202750470851905039855680362862518161026739353760262131777832475077627584888352262277470914713195365201848734668432992413827161979815748287261396840661509987580675303786006254771207350279779000062399958834493076904792421342384884546145264976012602331890375982964166065318217714408699370037689526629618096027698528405703094531333140174244636405284730536644234644997987686543389337310267291583487949721733092049908851101268028314176886233838152353210356301753427887174492419565586076188809652835753722938421390491419348456895589548147105179603417252556610702162262947551428975027625234309021956379083861354640542347028980237871996808574648580587742180467872814151828699486561619141392204357012387194788705776325931833940117556858717948147745658667141484050752913180967890178195309282542066541444841271814398143947429100304280097215006955362636823421023925879168380575099689232008458833553239415395844310637369189821939984932689447275471949615437404518669532720961843668926701484709134560920194200711495872446121515943001311112611889712639961509157323577432895575011355300231178730928391751030525152066501509554035838058280714080534120419515448572542525127238982370030472347824200992324457749987638479950691328459875818762877763480464665468196342812919298810289437920132218885442659446742147937902864016226952827413502726230437096505284083866442867629138164204455733465728010242888426665656637894151228047089548707037509305274948876351068015631798615669259022459443416414296129688644670674826914397193008721547524558846395050669273956620823123239124743550039572515215992462873366084993555673752328759605169489355382442168985932865022566959572187098967913251173533823918252218633493161197932932867730976401698492683780858864620331305909646961601188149467978730414611056327415419257367354520495296580522406147626924138071477228419091316192296981808939240250019678374827088011446478826614443675633709948421216927454945406659623926868022687815708320054554096783085547622460510227597742604863325030039755941688644915209898392754819644127160066559854349161883906375864809191328904228249029750965400075246025376239349760662193562050109220244108420704894536266649066584192430764657856503097369251009244469162178020254521679536753934403032848257398767345083632342138075188997061789236159939309592222127342088822919325976401339581206852830400999723413323371853787927350564593222792426498661448491804689348561271147246593063696068997032529062222542884087212731276941900042475115711070686202606390732559619151095526717647353914352370687829999137825283980864784678766404475967567717436030967935279755400537735561008443068831010211269978732314005767429479151279918378197682983678277164794021853338926978405779532632201174945211591409573825671105463704659375634332950858166359166634453200684061448302164316895513890011321679821748658544524996601718514927351838686577370550851128098935032002099554369777909854528192904537863620359699781691970184650449605938633066925188195383050871933979414241656730600411590365449487220848016634564185312466002075596823284122479637131899720039872200621907115406415449735948152217953708716706472694662666621689280308558785536413669621331059834006840568731851439082476710518245520539350061928422458925265236476464116797138236888317100727166066908643460549019901079556759390706582351805370324735079777035791253118570654209906434566731434298203208303877052678660962675900895460193118490180302942112620402527808558122485005574413109946824351941652299621174949308193824445076915730194226307468728291096840753835010394519063756990213142503232436915985587943048860717556608555459138112353326284674404064372984742744860826163202561581615538714568343772098981938401817484244705630750683074384309732452231123056153937733993131166389866757721436787081440947241195794578493038990031064803055766954772376808181993975245784844013761840273820736191308519162185443724649632482922127953873159687717211419508104861883747449172275914173721092487024070653383734412065014005016868585405956403165857360880135241986710927810901717191813122345475447612655565749863352537127937349497745195005856585511755469004851205800804936492553706431647792188439586170546831708931161699735892575083250146365499649573937965051592167027462999117402702954620385134481239860213602857395640954446558709298031011638418086822793545848163191390969094802487594526981347507962726463859225821559277215623429137839170985820554980016721551966741301034127990782166723838601057934681738059969631146183634457953043373605686489300689068798214668104007755764260480735220907157520941269880175888919099180458519767351463215167986264589161258325304206484395736313062705900296994508981877304892588890740537089783532991451308413027514884941701717367818554069883722381429143845836482770545533657927259978745398088326611254624921170026676135234195311826855386439803351151959040685197472939121530520456418284377239308647475654552924106256654060084439864015000290302944981869382981388389141931809859457902253713556763641475360598566860421229859811956408653150667743400076075788065826758836599036057590977762657363648393605782104990620155748169999146986277894912114314914908955570270964833376113032167670848902183121779229382553372450998203194930556279593869588871192350880115774733039569523039148208257791327165359655178088702740042627096766552452152411473479520824782685204663271705152911669833197528322758257449250767041307106558659389264944569028758635694889433973747586334493503872941931899167006333826310348928311569053226895739689860263095744786249248940066319065432899033188961521785086024388330510341702318177006090454328277911764958476161364314315185191786031373018360115802273029037802721532683901074483255861450114931157056671683034112659656855369414269947248859461375002868249315689565839419180093064336354801065266736229013451690385190482873909780733197757754537362609380789050273923411444769340013625520195246282239770896481128436523465786863175560653425999141094202715630149925187009229557566305689734718474149542883751188541135474126047643528007654370796437175035753117337458625352808012667324553200460772028434227355478345869955407937638314502740530679940248879142442906661812196470364221867969615873236877178241628946270298760532285128956415776240625739448381888466546367266817546652494872749019444960258009769646053078062944926719249432777913631781744044445501025947310991227320159641621506915510878406564527223632768043084972345410525818149456004103959993906558055614863363297530337964473840396546064615246773725331091875071077695583144609483224580603231205907885997476944324764144268097531080925195585894500013214005363655466942648098391432147437889781348932520447934398222847652543138965109053589116891060360306567798338626827261065815563373384850344135315964118404695180698507766562994850534674240871917195566857795180943263560553330797698614110019871691894298979491289650277248149496772882309552640920299584075723497058345623602343469442767717321249406106042611587183464129801498951570261617719082234365696379987124035103490908214246093475099843414180481748844947448602612767200552592719542870464700778538493672672986666431796481543253956188492242477849242846479745663766316509977796752739720534510666082679779168209616813339972327107356509387868982502150914235882516378525085799696121159475366809661255855847083941968826450424070580561236156484024996019594763899278587804154118134376465270690937358259549057695561124682023997369396744394765950770123930894843724657996833914722477666094666206716156525517006137639361733895634088281199395995170705685352503331526964474957771893807069625776194593414127117976261809263160935408552686745609843103650966443080499622247470231512353367939859775141778732308395985106270353927622996981904979947188010952134019616941971192234485251422658982565503607324309148561522631239524895030154344809036667935274814649559178158867356259008068293147514398931439622755814350372288424654979723637499535965605078439156456173750027694790681491579253971906586766917633465531449130173864867614295938869834575871708007164322458219906267713544389036440769140076040132218575841161806868077863197036477432422143869067099380031724758581215492313169050109277544863691966863749046342638843244390551100827859684956328455106623550174808817090095408641662825323174620853588763736919095545685486433422402691061299965255778535288846895145653688066321913657864784037554558194124757387602981701026875971701376146704340070609698868098818479088278561383987454020707956277401546054587714869600115925489699090486723491961433973895138802190578322133082905020015467169869294307717257882269632919225836204810772891093490411654338579865485151290348951879403628611504871711379903210826928823022519792536373744227323883231259727197450975338380323854086431451997978186943130813498919261049589386518256635167720179221183558048607303414940163007825460004645275792841051897296207008850382526836175256740920212616542927532421982542452018357495453834584239859659206391860994229954382287732838595217402022085479712269220833939282301220165853812596587041119366994248571648522095199422218073600097653683432020028165101960619699113190681898511722710944286266187415264685076701684102770437073272507322097871563986225500853662942745607855275938410305178783327645350010529369545896791973459139438030958471295881020318673593754992702141778157412774621475050889325673863076662260581309493645419408670248768673145021442891450525969345483231628389480411136153519894950978847503805248729555619228464433104535044209324730488815633178008515480648341787011401326851733996459816380152763966196983702868772569182962403693294025510822512199496081808062259775044321513413045559927838845260447653810923527568413151534923143704651429707557415532272752442061682185992926450751388242554736614855122205373939320455817583209753460569978099106448413621086833125864682080667002514634233822868799029683656513199582488699081682466714181304262865895271428030663690576381665735805455861199438365726345920764204361111364834109602509742601512625047613925471201581244571814069371272398685914581045565354457820604064088144096039719288765163312462694679105280135236156192156628171224032698822966909824479400360237562910304554814782050942108531361257635814898022009327565957452445807779310097548669108140652250383655697042324102490319933635255773429461554362407179296982633734417476312207120080928580950694649253341398378422918548494196690845205496299868056171653748825631031050560223155032334229574986583185107769430578084764457984000705264909167371292933268663974297157877616502429347535554491520891023353234205113459489648582989613213656014524341450564218206539801704834870107352096946348580315621155353777341541552796460390961159798001912482987674638617627711443389757824420629358018585133135306505686750297855682264038990774927234854254497523498758316234297221207066511194453194620489467431568515443574853288282014879771506194570241343892764396577963498105081536890177703923831961305188120965332816599942910987290571081420630393942041844219768883850534338970832280404744571988479874025397368677779748828357314637615729120137266136370133509572860864550932532471013632067325252106215520511475099793667988917853983809189699243909170739799326435948516993541413451843428995322466976951777316859482615501871331943313679438045284543059713206340394198817616808182600645407862798093459840146070123282941825041609358105944338611411335581129107505935841063278421301525233391426389212943691182184843304194823605583621044473465717030774410157593521245818837238746013463510360076009420668481028824094693627067704517081622464265343722004503768761879621017557495096140819739565206728777891171652663720460077865856902108990016566403436692264136002640312255879394330251023334655344101828216285759534985058191885840259623742110051849832580653741167355573203686690727176436642828232507139926034722876440077135480170561959637333780272498228191748522478918428855015312730058208220989462629208519320629978816260441726187305651762053979016238142547388176626047770812150119347643825937424109640355176150940226816747671763012659689289723870231843866820511264559734798308421428919983675996837625430294476853649002894697935806335419115464520362416762474155609802340729502762713951641691343129163931890804029426645524507092610065579778614151146125461809425234225520828332310672777157892628390031748743749086669915080401943820832911961797069657727287962085851018063376667169349713877153937827210321520701166839558722226182856271796228146366748524423156957946542608700928429187652116188168962591924752026369951939235363278285973898142563163638049857855748887306123796909864256584490112578654567681232235798455200298692616653419006609287728101535481163239577373457315244365941334972750755220738093783602459259012899020478050548163146726397512018331403375114709556466949438215219214125865571368086163010086673001658420092514815221829671744464951585869805063855386751011056136913521948063959559057518042345182897521923159339846134914367119965654816548860129651592955115906809852378554298068546940433374487341893407259417617877506193873776125485919441321470187867880785896996391115982499889009984013237255717202621154452243023132008854581968685058318196001461175372960977050966521788971660712141687106491894175271681217900358452343021228103755157753699153100907151376096196701833975333268896374803269325874489281482884427518238104482520712732458666587011177575198097473366879976215882275111258354249520019503903257022219300679250644844045076271565660372462668058124219035847752344156193733503413557352560480379912043884548960404070466363401707390421468651905819922920461648959647673699168883866122420710857683292978705858185838176715067534203345631395626021360946354943147734244402407544021054797254747869686176509375354583210768763492479383922320255494288504310216991001130948443124842537785230895846916117185820757868227663301273556025313137247779627705041987463559805648072590644096352190824980115975032818196047199451616299181390051854158333187713385707038991653056489700310733705986470638066784021053289670782642268538358705454051257974628126563377270910437452393774799270777776204765199918879924944263063592859167325754172497039572272969879048640581169050411387768775385745383198300166287025935029264488051566633611208062906582202872750879768452173550505058038232420530518218611529302837587866587903864019243045826966373337047925996576418860675968715906664680441387441264636217989527193175523025969925201432073901884373674158228610733189646922196279518982162113467932724045183027442959551163627789069705247580162550168162178913386724413342825120826077443980895387521558707567857940170039079143670865047856828353981959322980339348656470852465530526153269709507327079566317267816216333838477594575031183405794149273250572409552521132965297955547890615531587396465470804644437010230957176632088065516378664348523123125388411457218355056984616705331993763583400408674714146271886569476815832614071787158483382594430482255954594452164491665157973986539980779080219724447047939288116890853924186122095314715790772563229561629903789029466041101146858176992277670022815908653865862180765602413054468243197250148671268139497428493027514811225618410663101098387724441392125071094364557761210938907165387841567558470792836420805921357392548489483225195907555620406076577968283029688535309118953197946860425409336336413464175265177221315008760367793521395407682847989083797455618308588462088445538882606181347153024043741164716936379083000351280746261115974520466649701017200486342399270176077467550476195441727500345902065781187954924439708589214485720305514876472542118016923783803518236231353155695656834865219600062983138114147173843770400493474098632654089565910820907694353217380393182030767790490319957638016800113503188927605143811266819912088414134495320512417820287685324368279243871462182911471012439734334353649523884266268575678178882076845167086256288626062045061757795909617013215962193441555090439991448784611451929716203912135006759586826761444238508466013730890332064173189834746220741143511882309229267511178120674074139437375698352979301219448978889934711366783142590131033655983267937379155421451708624154831219000420677645953479485403050803172820415596320151681212230896312530140447844448326608544878850180504430430858171265336400105731368720120433463034953272331561329732295951693129861112279995057008934854611927954231919514547934114750338020530469161397799373918546574288119672248690447271783347316375225816818563396223101554994226174735533372174295927711744378201601789825913141512116703923604617671201924990579759530512261659757033025209660428371517401317795049587463011599080666820213735693355785973941580555713200396480049442072353409010802750733282499639733869089746996667739734756748411967078120194833963504088181595978568072616270652923684508519302787492008090017885267744214646573726526877826894579702320884487786657325956598830287901743853697672130762896521841874667412932177366379939095180774992347990376241733624493055199316438476216328937377761420364202039469949616660077842665444968047476207031845753546952182069264724109163257350511057571204314284260598389535962554022204970203403065547316624120493090327918398508521736533733849089002648649930245612019723310544401945062430513926939254460952657584202738786788644607053719229608293623011250238083324703521758459517823542299187503560221020047635029697556012487712614929124747711043185416746175770932740163645613098533887486263567256085919992026090342903107186540226685378372297143530907057636466977268377524553609945720205727530470561315637553972506765219166732100622903285132776505093955842606942066261476654904787093092800204335325600033772304859623894536641488541092679143939084181700879702376500089967041562058978732602558462988597708363121994344003583553410409235612332969610806230171841469322984761655267517543112084640555836946947484036702042886720487209265185616695707528495264366762033369456613954479205051635040847839356113177301642928976020565289043994423415526644290941414033893529230185888865619066446140689801543105054165490985810263946253171309899205039755974922858502303358196983032528736919727740998658911708840820239050895214512524967854335279593863541210655238162453487522439851419625051457201558772805055939372916034113076330129271073971911078019042474663030617196506953979503427424401316149166859468255132119445410005458411763413770988693097486277250744037866464989613277629761557607899538767137083210088138909971581898776350832565572664762082161784036625433604934599534468384901576197658327865553499656052468713635745169186976147257774160717699921880245991214852455654098931178342150001308516913911779903305570803606420750495475873742543647600567443240610105928645930507797395874104097836082333023042896353170689589120142178924463042246082642316136042485675011658415303287767322831698332445626351990795994799401304833945199477910390055642560320053576919810821329675132061053839897611200042343003940237995229441081986999495189943215603616293736035280974825528622649499605772098884511764742185901351453676144920711839760986265218719347970246924304447445347871168753362547879957347612691932420611516923848378669472369085674603604547568585753577958730884295258069244621715714401017871096544307308226902323162918532007051332091539849428978806440792235181927438791813424195565383667741705857659887032559406806746829605465566036067283117862821535336670088152741518063143404667372408853699346544131338069930637521331531377287647494434266826962489859861498513452523683300796221969876852233970411273618889298345143763389636829743506046993555179817884178700669727598310483923942608316330940790117977578665557634914039481998865814535732880190964303690293705891558536873878054650503841479319702215009091683060635984057253550122586889037666896223595088539018671118597999801045456581685118334075391999623661349510810585434061480885072044809553858267684049977832738122990765149672372198627706000142622434353741762383830528082283484585573729033833585762353704458240447108014227790389130252017482981829287242204064676012137322814721009805157978926885395778924606179101710896943526465615355105075028230888320660024399695277268491052657548732817982767275774409223330684163747017523118865557824975816844292966615241902529878278127321244742888829260092187815479756599930061844102853802457899689801725988129921776615055915365283134353057535057192905471146874093421593290296728543593897014919635338438671661092011495361501702016963495841894603085654021399899683342199003528484605779060477586227591607868905332075746172408374915184771564789277886407574777310708207435265708315188629816215942362213866466113211544987806106960579201627767424044435875906046233668137890935718874175527080468013275484295072893482563797669720593940616508138361472858045119321118895674336911614631122655043575628049148819061572117327836907786067343638338811353644815683402472144545837090045970938620331730236203154884508832742103152147394735710476144264384974581433288802378586601021971046104491878132497912296594107928667569477974341181958893740831581386077000902326245643169883409216389467738420276051193114780561411729060276379011058130430511029790590392694960977376549872378680720142197371791162445869683164503776739100916466997983664136157976901239178917975964686246536188899977544600948990922694883760302934541885143144044797738742439262081296348099784309082834306216815884493483625815096430433700474514055955559666945170659808300800009378120621539117573981202539063536760378486461384363570874410160298012535847890141866356529956578155071280715826330646133020193261485991167474595182285808143959745558028127773785098337943096632992199120154909880495357220115587574787856333619611857466195492034181742891526172650413941143048166429575056623862538841522000819114132719458136673347152283722106980016176932745959546547731521560298568170786291303237567022275900765825563581541630376415294739572359308049835116831900609527586929701108976411958897234498427472699382158140667523489774425636152470345056038940479223057914753574743077460617662291605440654325986718056630990457191313372018927913477496786475217029626752006951498965880784611682310333599506004389801439854493304805339735118048561931023210392499269326189409419831591744757336201775165484680723456414174063705185320036392551232760719441542451318826401736744867102352080193926421614395164538970295361238101163387243140410253539213368781903335653294231376594614514804126119398095610757569406242992761044504877157449291775668535184512943913136229693961533579475137764074526468370666866276451644383104262511953772341950594187874588568131390109198693126649366564352030586102490818717453073950809358261062424365035112348588569705000926737378216144376518359762382436924582127759923797141496281743983197482817739930973330186016996845924853197988484189115961341035522376867245048661326213889038385093259344295369780336990290895929230287171607783441211012476154129533423472186135814507952904682313328608129872490108835587671282919399827880964253777821697382130321395444717811891215337138518795856324291084925673233651202053569467931262955627621345689206971481227375470351321183300634598180698120908216657475580759414667577732954703764743372324569648979173991920562984660937740635900323308742554473465583552031955564302239450129530432157290676352047453090148487798588631255281283673868381038218454585587885614287566863600927785505316442023296571947834280992608779224665807406071237134056449070568923934873483895294467634593994192549887813780686952379254162389700441837674845191748687224601155147688418078542304147477667457043478059582217995888654316367188003770930655742560623030089542671611694071174763170675829183785760499438944172418296701450926314694983015087580037158654052838946284848337437703906357914351403426474727559956738043081418429833042829486410689507842808376775092033634424445303967926012519720246086259944245496484323282321384002050737847285275472985932285232442084917276849333315861518146132318702657624275511657898863123289831399174348160933182719594638234213569566721457693003057135001821245320794499158597422800714101278707725494925388244115784688042207734821830818083088450879737383260034209773007490799507014008203679693131180750949081904166024097286944066034924395468503546068051224235337361600008514990080455186167140888640067893382798006526273505724575435805668449923222704689274856448881366965590711477137988180290098341332314897209279279422182613900698564213981954208509350856093232766565704277267970827283254313304591503600400934982794433681420740039760333058197483356857974145941618190144149571054262103046639769274112042899459878741413481779545884104607074138290460306626011139032890047494277969118028845753142188715398923050917286854588003219351698613328054219481283097168819744942933890366879710576186826818658798813824807679107752300659610745625177178435662044907983879793112789993322994257855262992490395515663761386458848042252549216434075518110862090153021733535130242862779290763863643221136994809892789442077465058194626167166391202832823593374871547609629972055577155875181240402767739204374661445862791882364729322003161765723103497957785584245694670406311209444496635018231108266307490505545833652633162550375108865289563971768012810745480640364294844281333833658099649730105879412073370942267546049460178760121314490938251731335849178316183657223624210665627834800339310390754371122632639155272264172681889657029250297392657221768823515465608714525271428696777734411146985577508456288752628686279247613630806052778480855826929834727659410993354340829842274072744624359295086924382349110729869165719085263415427693656458681435107001673981884674078842223086243872036797584477991116883955813754955096316220889727486829729303118790405093508721425934133465564695279286747481055056440162946676173043810524948851706366783854275174346250532027191111354351035122951861758878674964422334126363040635585567229522377404104965565456986701327701025768869394758575552059619492590629984454872775754111624722633702596004890723798776511516161007284897356598305428078361015250376863820041482323679504421388140470086602441182307677334174821189419782825350431737277268875179783694654781070280150422429847389978259075804948884091081902290468511604111075517286553832233613636516919519476249179622601173182543585881168524133353829641911020782350852716117128112663941446993312367787107770773500598815169244077057296301235381523616216051654870987120244003294948957907568039100991268122736977627538053946302112365674729996435108422301859801582496509635766206290480835293535240697621745604158939668339287982295826011747152083842549991225011506623027620280041377484332501970475421463988403350611226471806962469797203683039753680910591247788840459781980115317544577438748372333921507424256745160971612883970232849812779067249226549328802918712174740085353706244479106043310498294148733743428283401102662604961165511606026231676139156822376939131842341196947289638644094490309829831714544960835142974398754962121185977965213350586592681710134253836398259490562434835033741960814053083511393418824367888472461038145877587895216229968492989389408568814675098677187268686117488732925484999224376081478885692367435389188069601800375148592685565979643894866391326913287942885550514229957547453609901769362402932952451302773959668748925353753608240299198961151784766652812701250991938268727888956331930611727775016657123731583587037222774264735256301278413147018458225055796922289976683829320683130708312929095962397952108286621773208985817809566933314190791614500413555372314989589661833381701566075345226405988124497469030084157967860867846169099587008862681768498279974494976542829495642374086380130735751877643214089637371736670099132602496505423678455927569874944066562810165789650367772740179624844590059885520877393068638802569588681056621543850163757593834910905863854542542237354422363671715642802614251555855363348525760216450105352076487429451782415607396587682047223276492612195167407208430924875349963945032744287949652530528946480245389186719908395926936436394768823694459781137119199360477550150430688509032749178071299242845017745957163499874034959355358182090744009672005237516885270083072052260774178415960142551115472770032690165419514246756738228016587452132848558283807148865200528385023634618503171323264794876879050780903646708940022943639423503848211556750643730062257444340938657269001318406288479271901572759434597451156146907702418779281317703405032950188824849389027195186890211167790940697348378468057494209346815361552313435211937166906179807166469379222765591289387075830921068072153456264489236642072070864754111166789645301830806568400524331145788478527634043335438109078258359584493196374681746827068363397864290413156369057626205297571316957813542645392660376252464056157006327321608829082000409850236103024706014356546609122265086583373909416583325346163370132796990532073715177220996702455614715089267710662997036275634142297491250516520990984572602173238872093354672250046781554839730201636973514797382487428005207810775886529413532212564979333507202351563917779490371349988710694309596518718114976584530394358050551289368212306899893349423069600363403885624697507007151216667123098194324896505665438033182294012769353871210589757666755906056069075197737146468575961660954951198131846572235594490840352466787996241200627290158602483584996090377953989711522150157596486959778044035697740077690037447888725541106131202460240749150827647280591665389778625322571686317438292054480785663375966433863461710990869740264020066138862614791325734486129328053368868982912072708617073045977540777760223925246347487721704215730272256816157768511172922545410790609756084952156079771095381478656529439006315583098151789067946447091419957659298884357353497087733452140105099292504776153586968356010286856155663183586436621099900105469233217191868281394577897181316030496956096167779776795974095339137237987878477547834788797414834542421111844083111819347836765164136659403543801352681188782143683296825785268296876793889747902883374518413308209431013435676131356858670470172995555181826396668278641756546638234176567268912700885202712181237006730488279186043701204549565436041841066401951780214804114824171155680135289248451960983170436821273485125300510513421786626529839200013963508758856741357770119459148212169012087572856949595702677555165985441864495185054637723735359070325513531580613016081139467550449812180967224225905586643368634667465616544650349463905133000635552979697633778381905063898665039541669205286876499519369996960572063719005736719518983857698263531597411254921429984305992017912721907784907554058096698983729317939847305010103829888039338359974295191837612729437436412355971086794431646015746739301418431288359533655519304241923514631979625714609338415076208916260013167318574923392998036839095181804113354806872174066100663634065096469499885904373570880065541808615844583995324307298116899758703497512132485052461225667102144834966382395402577718139602417966879016919205160343801799603513829496438972205472039738640959027699828981832758788052380296717763849390489423997680696208407458840354991254382911465077404402236743857067007777346269674937796260479859597595682439285971173632020501426105978625148273927713232581908474674765194438310620703076241698360629188512618956888990159885708079426423918680243549004574490503030641339250185401283249406264822099315296525008751378050342810814337778072859370862699220840805454885836220263379279688029882893954998397832827490554517216557226591896329709460129067186539439114976810055036237551282825321820590319573032707095508000618425607394922927162735490702005738197584476369279832600401099113350210931142183025555524179055859995309909901154118958545371847629436298202839175964584108886126207223937330066466204506089070134910118903674207228072600760866190727943532720535651142038394121692002516209730562432379588950983103124083096184552148913789763427100139578133914271400351951452131944631875914660813604768390315291067395231020629872523721878909127201295299402291817156977898023225246679076090537794634312299935513843129643546646951064573073974264653121165426596394673807369770852737931004981022726314951599613339152561610583282638871218933969374668101699349221496401657075358992242852516083081429252797719394155619009709860575070899351464570977287825998408393395306620432893998715366602122298676288472744003675660259002032239212413577232791322348543296569210362561044316708320486864674062387803283179083186367015908266924307376079919973270055579451230254176646420179497681670269572933109508221691040827315500716388547481452839034261250307185491298968501002261883979350168801314856532985189460936633175363270183359476854050633820058148650092970013253817175164606664975228475339675883870109550649739331146813564885097529626755558919842626556906099708525150488002323081030249823578132381739951446193751184398593022425277364724309011779116103349825164099083969926453987447081857040607455901736617613407540094570578111065936510511960152679260846853545021485919100442415512494528223725918265673465068480704283660851328697693953575755174401959529136806651128866927363957990574605845427351758946852763122439391203184475835842709381301591100104315668519461335496845633468665081910621066958007317903797700388522897747688690050581403436080506582766070817360741248713032398360836412640119169985750267448383621026869007770036563045304534675222345223717536802803212543990654611762342591974627446994794003662807108260817917107455430899596143126267345762940989006260118053948163173827935597957430388411663506660803190969779737212061045209132083538799054257700334019347980929172371872345461912442603606906559801200565148552322182640639504186508447865408439848445194210248514068762870171564149182631516865648805980651392670249180947852390015238785673540992189267473094337848205993113414377758986038502776544618342772640833173393028591575157868700110614099622617876923815181012327511525908255424801015619653426363638939875883593462389101045918616056099914870344041879447177187065579271907803936233916869696700475597263752898892714921215490169430596299734807238275328608932270608154433792172486945019012076050220988823039608303608617175100372598631184449602484913721706584981058147597461416643604335290419679272334416916293008735280457572745427274184742012788748244212994250546823852755660413227991514012280699270417157676213624781152576517023586033265342154239273381452615117455017371116410166767888570763183591530398993061000449186396700760190182174803186277062271309001465615817069989355656593016455166288919763000159108040331572372581180768298915320937560929897081680567125491532005126489720679186733533781136737132870244379370487841136568924830326832386702300678214890712275534946989810483155614244141440325910195909553226141593400942646415475359149769533576734387296841978834713747866980398233847399165734347681973001623915045607156711280832909594731416632683275225928302921606835575123780111670028444257453535682551845433985207158645216189893253039937551547590459872862585953318590551753574690288071042457533003419515595217532569621821408887572794073607624645845734527459106462532021624018912080130957073943904055712220535402674107055291372983523664592535791855661038479606999704674057841351068622029315299483015406485269307201770373534713393976306408354035893475133543590492219518434302431830846537416714840254758471100093947890157678762767723490208462999012928601057876748685086061999348016983573965387845450721283555884117608586499107403639130953243182423891762487968996302034004999013104563242207839176279219670861128428096243010992324673323853331344597033042906780117846978368441968569986526620275017987258632915193087242450479227804985323730165475085861682396229201945274605869493268477500980536627648904275227466238075292186984144523770047545213899913901994771246122994099065667166077202581686198993032733803525605887430697855499161922715978470463838825825374771383914155021248505226159400898175712049032242166806535967270909158316218762985045454450900536543303666003510395090512822861847807133065176313358256743770101310029442966436305656595819153315390375294621730472637115140057225992524319007248449961432339554454205769330545446716236148350127286447700664300225024301333413594129796712027839875848711024748748370089026564213282055484780685587839486815898921108201458762126962603268210951787049502198639357774097354467760172342077425894440250098464237190372414885451854004930189421875940403696810904749099064254040440709720600002385794583891110838195887370868303186161633859367316803451748347379874012614712778153498980935112039267568231496838097191749864039544404398569791371331393481580390705428619580987246643460682301224486527545718985363046966538969819524034079250896089375592934661744034209474325839978576791584449476280904390031890407592263878160353080902559417847404963571272310720636349009692563734952381395229809441071624474656156606094281012860934181125338403564960515873241119182047293523193173925348142825581423537339760447844827491854431437863635187630032232820979983228676315269144832331323055030783444576589032120701690694429496918882138975266937767257526900622042742874499060172362763514367792508958318319231036084409484440760234318368807186039463843813857650521156031791390240593094301670128655334129560505204423017221725546487755562401137971238444731380556153857881976168907743548983434468580495053055782668309069378564935386672458092863465699758549991676460946509211682195955727539519958667481995961737112289397049074061498390523284019625132394728747276137219062670204975508628583781656875994865633704524751402067229438949474644397019143151159443591596763773651924192402117259684066692230873392258804315817816361346174161115430108553128699923964697652281809947939691852491352995558846948351781728241851318253883126620855135018709683625174018228026290458177054536329697106405343765545175111890077091137863111547597382837111969846722351461494922034300786523547303940658700678125319544608866060172704388297667448818277950632859495053646014049170741076461599674490532846089755807495132042005276018920390854544216403353679164231574703286173812277901452815018488967989805021521772397476580678819039678399301951972153170209197168143391414072028423493765221347146126741069693378188969644898886477569084559871453248048386016978207302016585226012022983436259289799607613527867302614743351190248943028112992178226567732986318725644339678241484072256369654514225953653965580889355771547559901792433525704759554096627190114187000002259374295633657394552347649387085249358857343262071088323758221613009315563921240650939718744573924964697188492349087135507614504464335684492071168826905060210407147536691762997300866758177736042400497225591884789872386860823031365176915195400377835466298366182485129289154705337950685010100704004480112552530443074395728352194601412248524569489393956997806500080462504168846661184007966681206322010846809114578496667801201843327203881627253894261121468024901522147915382257962175121339861795542736237462220973323526134121456026244129051913970965060605720519401718675867175004540482966073316778912970857084005234795551803810460090475614128865336930497425410332654264743558912647812886445992728761594355083058071609093864244121243468331355927671784851018721351788609096567945398489194910835312502474107569331800699497627213874251071362760364019183753387730403369853026532628173095922316534871642196467560793995635363632332757030530361448989484965389627016730170242468259638508784575951177510107984789870900497920029245098353049619859428807827534484078389124585750227011332404425961066507323101778525262584371447049273235854952344598734406988054401447125631139974031184949859726440921968029006614940194254553344776067144234893645635642632951937271682289811577943730288615368506593388050481710220621402964417747049935856645022711379075199384072747204983899891399825434047343986727624110176925134036944522533095609645334640314888465386913003595865656139765863414657842344302550836753323245669998511224405788426522613287068934287502182195096223900151749736852341080677388795037231147303532605905327109095482475240410078012624613380684503817160423437140844315393150596106669872368315099447585172669999047828312152024333176093463249146643343138752587377482187514184967892887350165589862926439608079434357964625618322935735551470416132907189748139711946396451415000617947470553559981088046073802386184070017500720521503742735967694000453652657089110663322625132406042605390368898546564509591644723402631210178443932593021866041815183250661597401121148777463490320571493476188697424011626381001679542858316347772760980653819771115902764925789841987039278591702765192238239776399783580190079895793949080816120361213029689029730565796748938642933519992645357225293440901262418258566059700147835002268771763646650679585542603506812245344059553492644377225669501635334665652583820745560777250832418241583434441048143457760357082888456683539407041230535631244472259729554343136956665324965553863843370236394107036904653977437662192202085130384953849094209941657090957872597527363305585763409985333273889015087619478463949160326583958595116111653987917328579986763752328670828434137134563092710107624295830584826633561796953858990678544007630730010426685846492499618690018761770653535826665823979350876100786304154321809922395651411010057811858985678953010437716357110442624939187201986994012241253328265747180702381203023572620699995934274831402848651895841668732380491139505073566333421179719030350982916079029082946856156836922287165626045470952190618008809728266293837060977873118248143012676919134197748474798140147663342428886647721002973957316022331310818961808067475118600884480747511607498293341028414546769203475338385112981070362305760630009992242805455317805532728091192231816936090817815904339424438982518746563347729620553090885854135148899796785196406224155350374543889189425155795262205343946161677201894986539034336602689456878179259379452136477528088292798019984717329168103412919110914160905920503976127940813855195781726566612585670778804525440373215832491465705934905165300436331275987678771058058560046614764034379859172444988067955631774552233252800465806062407238210319230387736975903407466828448411370905574424724530676235948163162793076266114709834649781749103628033618553032383858094747379174662597905928966338509871364383734040576237148354321737075598987485158904402609833918511976411937912642444471046413977007291088593354027963414952212035642312166956775080842249828981964767517859334514876817739356012454051711527725118309863863368917990367260873519348833888268513145087029195213098004653701544288136963645720837307375900272765831144059821735264431163301721194678860297338585264237608604911469209158566393969558831051610294596238014249907743577143753272619825265040272951801932864933371157477360265225953359685707810730605921656644532438552705013623611998239747890227891478341255598754894598209734884604025721168444547688334140954375800639952462646490582729673020137011766164580720574464033985178105177463071235730872465039870966719711680901144563564348080765864753460870056738702757151574222236892898706212935223237177627331901304863685465187126826038079047482561013243118617401122630786949505562648222889891561291752173402873164809797284074736027890605155673316907166238588661580882268885436223798187997853133586812140556156061776263780451185291922173903903235337361883092320302017157125080940129232557816811929963362935184127247198723519152782981326240127514998382694242764411993351820342899964099037535867050044818122447220098447483975237942278611261855806351503364477966635149243416931868217000691483306530127106656832858033022070633997185827944626039814228389541792726373845022643639299612680236996823166572736235918624677151912350581733293204379436108411255574842565757802784965347970091801625256948038425821116662833470346731594745980241934945441925221893015735732134070427453436690953255862371897003876772016310824749027473865907038753324862640541545140845008574124779811738978995450994663908907719720270880313478434172250637112237941379483938374738174154276855987478443142859161101267682528264614086904331696195872128555625469346155392357909274138180344088532617277156375566182391068405274778647866287122392219065085778002324723593624601078633412947321099094738190793824994225555002098985301615879946869361868347143771666069599518173211721051975246968507297072063366998046140456764900055242653577379523605942687028455284324605770908945538141292207108072647237487592261508063967202353277824024170645960242807743905930843265672855606199667115586163729083208565967590417500886305937085569437858633231808170383610421247600404523673567974779847007932324727571147755340395243207850334491394248507777503949742553991079441869746498399187858338167737522625261295773772146027461366328613955954356512009351873928907301272983446275486234749643434330194832549198426653738229944656257898536210364428311154315576556823127052429537694487909948167157994751961029623088428643353108134002487625780935876464548735183245669714744559168719164686072556465632111637058215240221343218722552175850777020372917189176065316475687868125258416499816945302316979037963460273727915558799851783709595035059412783000905796380625037533969252731819712908887493142571347768963300871592276351925118122826533533481048220293041828795721566358119311109653486361135652168946841042339621416411108654177514146984717910181135503496744527163187567595913347455952672663441455921072040293458377654575603120787469571883774737948978697690694979064108555421200302462696401698498287603800751559421286948435508492327340429388550644190846784297882554614606728426010353233841380788900956590974391403263363392722375796661069268411465352442974931142593691324747436219665462643864731903160069563572857642465354175188771095619671781831004743936480486161733841810164192181619567623752566365706510766729965599508134556337646374472162099296903867501811064640822746701790232487226789770807151563086582080593589772099904204361086033831244637144532073812510252120447822662875818911969351417996709758692224208020631159404382315422584813389954354133902505319785515227863363012325773246090084673461084891698250092772771333214523521253790720229689241129236710023235696223166746664440466186128299605151931744570160708231473725799888418254302826753316644973068353710355060448724517831808107242827680061309628426564599788930129712297790307303259194554141258802389036476811888772181006741236659467243166827891846519408174517958426409183895234676392176201989358345385688623375442533984764238181050200095741794873147844189868038685316386368046000967526235562421477637228546122074768345324069349463365036786378876736947311387542929821936219794805928147119081424707712565613603191267988888243696838599113367647081044016968146214551556335770760287977605229159483110556345711767963751481384712018169473776184325293224637515249054545113853990387907034910763297814122396153328729623982085336067222525346494570273745481159446973227672186004928831706661430422616180850090774988263011552189465621952759703764758753187724364864038278809774919465488381542831672636014545583549400337063308797052090770711812070131525823521057011446905915193450396475433051063572976781327457849046655778542161269516769148086202555427068511816645315018892504528371765989440184089800226389549018351141507493736633407576862894165147505749702149837922041475377426092173662401102100759993875018163297737410573614739110458906767170717752349339039167893863484407845575305702806745718733973090178452272665090755087389155386583173177567768598996409263095509708193095377269660547640220478919269287478341416983888883650650968547455140040522286884786550554835373208102035513419166438010009656842690525616739939148973320347051829305637729456490531821879631098288774062537850766180131244341165709713592988007919265432448139571172646623979111727212830916921235007121713460495759727007040214248720699748448379551170069873848575679072625320579584024713893165554545010017779158113845137156826912825272605751465594439188461415988187216677146246853310605868580695223784794549140204880845049151357364929795460671070636798983766256308950189390417849686245388951522623729764770402937076534023685735517648739042892037173594111054376937884131157064577478855792396745001322183126429996279194020066228670092431384080011615033927518268662740211696490797879756917244648847018757871021106611018201716371211393698453286390946517461397478955292516732901094148292559015704490046833030919672179560532529194316326204125060801107583406724334223599923773697687544188060390763270052323174457371577375936900993345489445955849082759797406329591973922932753866809910292448134123479738875048806761043272888084216452992402201985585288396055830600104697673647371199224599910778003134190624907677804302563944186983868554737409449468502501263984821010024556827016765652295054453035411377731165714869999228875844605041110660473648353288542404693016898313441563348387765183997434113246159713665511095906714804601873795853934918034559159767169108704302791130681588119036557914797810882957374727742227398287512987797700249441149126390473697950059135525363873554126793182648411048616325762339429330340384199313987687456356018130812156098893602026692416758008601832236262651385056816331818221716953151362257218308285639430944727243518894564573134464486951728008562842328657029957486134534719850703899023977381786911052263804441907117858230860465324609995669277996343010215550390300937910154540861024255860064431120225547816083407797006297799864706593269553439700359127294753922817275942473515358752502327647044859725238086597297426952921225444417541469335779154550361663306680457969105633761787175151490419528338608379407322148342396363232221760895653419567402819709280000752797141226600732830054250487626803068578031648148944966690084594083536496125878638104457496916592669697089575606472601648682728516200196469825989560060481604236404599826663200219297842546021893304362092271546104611407883076904276584332801541129620922536172038830343584725513951870919345896339612248673629581656500209743901833906594729049041971751027074421014941185175719477470770483522250648429055100233510137027440208322475340005898679663962821301964199779511077140383526336953433888036493377590472418800997124908422177045300781737010069391656183789918251111403079012927811600737707481218835967259191825597269696926415309726139364491844168657334967312054791304999792338307967646659156567536054456947535005601548911878828378101323439892132108509622732870871737072302689547234851460216826618079422023760871484327059424954243327372453848247501420676580263019503856379178857648155585366609957521399092007197063179653289036797967597306155913122887252873026004897586705718654868983163950445268872908550710254028644306963676364415016262003603832500776723241366880836369791613363344092138824963904596869901563938416045178870177446330829525281736040097468251975435855718988341060211947860204840302781864425948131516432196952953694812223894058512853934498440612176603115756800822771292215125770617416690162554709926702958614575535013693892766626605447138171605829576545036998603232478669932191155440495086130642124682303721643756736722381055048184894557487456738638209466377659719761284667257228298765594637846350463109691783138179681305280055191221283236465618452050765528450957732041239352732276883309682975857571007688223171169612809283641770593808133060802698800507825681313674459579740199959092485900099841401588955724932966971445545796669054430340288386861688227016009281895784850660985550513044483562266832995227156577869062654138014960951056144308207741620916903283660186657439510291113648277067701694080339365062961680068940833696485185428582147764010456753552863946980186435096014806536551562879431677861131473448116633653955535328263706832299994836929433711198537607284020203164599976767236035931943811593492166817065942999893267571297480364779255507121610459398548002975764289051188473588441164590162168238641517412660597290247838941431491260221753085169260526549073622168998194853587804150049566698238432848147971592552362189982710206776695164048216313114229052535388163834289530910615708899625803573451104703717570141042872346067612668595599732625592109613883606673685541403974093341014977501359872396944782943709838231865013085766088053158025022777438933782622876410626786637620553388743127104886225144119550222188710673547549863942637214225488199752540487803465661962039392969297176229489395108888648333172393881953997226813033293624014629390324312367241978800013314374385175316086025042849439196039553779571066282563510241795053252330073245630469739643123419472814653988995740617202116495565094515102156441247894276059074296751297512648244887015466113771539758986906560993699201653441896657960676126025693055267953896926735849175132770526641340343597303165112791239698555718967325910603382312651639435016471385550630036238607241020027322944602564477250762651043859339121599287422238953730893622772558245798874141594704099239568335904280459512848678421079423735455264978315613108025123935345492619068556398614282511404017255126452192830641453377429342819422121700426476299977090221689516981841340726686742969785227413901222113231251151076822905691366958813508042743689123670877203389751203965779516953855229976125148682956490913975027257112655932332164782207603188843550872036007574542370683225833245177317754206467879516853907845095931501356168115488500390090196126618891274302220441807867299571818327708663325434286965715057259452812608687642342343445298527964843025817278332338543085790114451523393260430903986021404970430943559803253270976229766204617738961459437089135909775369468776372917434110098408042591232586904955447801013357843999549398536036599565956602439785448019200673434984641164823777223408807109442553279137977871299863595486705946324224635006172821724129005150116216429592584223588972160860201776595093498692420987605765299278716928788785690267226165534228460727511209707854834983489283546149617112771728085751209730438361345291923547564774121372613055109851427612888389994339371442341443642132990814689619872956758183068363830734413747636886339888029713127455153796228019108803357798029021584222025671755424627111080374347777479878332512381080027291366138548355053865982327094022912085437692108051543661846848893703108558705989863822535122952091800189846321229685776746852041095995930722744161861050110877567053861238285633115498343276287271216006743778184192596498555434243236210996202020853649605277383370458091373939121415628624452413489988572103532778479815857589551015841653925970199321465037117060696901886523781033785078749503280199397066779578366290720234151870117582951478482922110306052219807949006110794540134567673608607318076577262949446179519152562144373226084177186444450442763857373959900478078844771836290197002258670002743586243213227764504879044847314301629139983921723829656678840996949382036347637180120612025250769035437439153326008860216858335342413374244874886311682585168743792771385199270822573216367676992701113036610202681828905123119659632603224206540298324680502231168167083730958398022200401430564893193308227432430496843538693187037259013128889736360826884552597788111872219105709609556760611196071419103272463542103794507322249100219568692636577412664696825036360939246658368783753209881848567451448909555402165382177533766765276758229424358182041353640069431756419173120562146355319776509200084297759732624536140413873392003841787671938722553550172262238873851971623973225455903739199292803588724800833154993624381593836072973431695742636921914276196243535956140246469256398952979690207322155657004952963645044424702912567683074697043819328712042340040603955290389793361386876373242942981615437195089774295672830579747575930108263458422488703666424530933411089515531214056396057062210453470109095706244923562556894830210023564907281479417627597998122163015145416587065908770495233398441686050058384070048622613432999071874872927117188321044544921194801804909247199284210620481283087671331515945524311271789896502865511701435202567010688114288587986884946183709553664863357347564525681469168883820367116007563808015898419081628918036698064330018489328032213608457935114430226572225517963364090658305929654709379328794195366736374101038596009174047176446691024434204597867686662509683503739107829040776860003531881316485227779968982261460807216201754215225444154400162020796985488833519456777934250933043900293251975177026666734952592122411944676993231550242002297331129916479134419090743594576295876830716551894970576024038279419139254273680736259322127672885354197853407139101865776882913539382608613605279017685565429764974370321278431705373156136751251334083025582999383066603661376709976326344461904800437272449604562162224520224524521443250164558725367525879732312331089189160539079733874082240681579131561165514174796519391413469774489504772828814169981782794260900012619702607842163679748948604812778153715144870308858111669312456178641845215547202818741340574796408616709645353324658558614385429988227009912795864570434422255490372347857767832014943468470309084518322089068593176103888804554344993781429134861414445968779871787940635785944181228176837283200283494983120877969493885312081477883910212346621745787601693594130795177137331944954585561523761422428026871962901611444883260679950291691945452995281094265475874739641696459349617193567959421930128511823231389586761034612540301516736147552728043183788516421360661236289435138666541086541256511505437610518506917934868216080505054259063521017870094150300121449444961607601151033327777260302462809802010883577820033134114336082176759517304817464951268196211982701934255893518788674566337536567033471464388001890009512241408712575492589508989103871298719122481070700638668542885550191453012947509011355964645760571122710814637002181313443669782288266718781566453925022322674946250413170769659259433284124445447630472932336557028639751098849491736719025939388223208450336807762430083372266865693432834287351521003884290151268146517684729030954577794163857694013050365242919026366005386624887032158729710555591309366480974988877870457133592189549696888008346233183471482433899254320271289295410738033432006768033472662359986325539575170506181868598436672643503991066926444947432556179906401088060441038944528925017362099559585087947808894848493610327260547122885843106026743194959074761283648581950101705354806530888201435694031671692929617216559383001854759269563841413260261902001940581990848571586440159291790703109911065983245355589198808452712272421354917544512526507423931075096470542022259419285383895301753100877387968414270142991552960610878551451834000672485083040001594271845208721521467419352607994647187152749117368419521151075870565424494117406422683678986712173178092581156500479945838127876134446103391895955673713996075119496632001145955103048893416043556086829807492723522363791307126530884123142096741088185849996656140398311478357301749521276138303619519794873286263241232684665905942925310340970108604830870910826872624925452628400581153261875652902518378239031193517277553778032998305166047940573513776571602543520619927274594840361368404920189357409784880416773407544378684820860212250739530752903969441620635498840706457283206152878173172248058455233892169957343421025936811245540452236570044375143373929928172350751994351087501270895967455194714997991383484609782494805371061881433307024668470200943952453513345930440984852245855165503159453451057035095683125444341110995415087507811655176909769633620300500872917516745679486444154145779305295209428953651601339284659474713048349060490899313499284400120966810870070117422237316961357889367418514138064470561556167312431772310758519999941476483468761590806054519880102002319470965189007930189127297724641536829909384222947649658590477213509036957136272943032179589510373518518704504021136700773170963436853710843775129650179563563621728577390821316565469165574850216441510809216858034744414139982614776429595316803230739161998717366615831380602027311327975047896958536273499090628697031377317839283101369102547584830365610715503904224141192690138521385397815908218264633894962369135044857221200156967903989286838042840490178339556688326600079499671258460588889385629963017396313132935158699490857777545126177075192491633600907757552251992514563407763747740828996647796064455755700670888334613898924091263605311553833930784604607841077801743858134522092050245563535657019287716334375883705008537037250375950643875194973211848208812070797422939810701870485434368990493303680329932995082715550158636880802362990079276409974904527392772446773774744200828403213587020762586254956668121768347633438403834030508542622542659683398965425327103092560474520972505373491076396460191806689416782714868327792750026217926949315608977161797259736932923530783954786227485258893762496791090930369537823485551094781947712711043607423518052860134583301932270917850962229283083277846037810880392563076848283387205108035530485102086378300198302095990776363241397285196205646561589478760914399501769510571801335053345722423272691812486552032570883772284939315935623804573476358458540007490975384183030234070681708392093709922533841453809627934308193946910377144892524186882870895108255178979999908110890853660673775618127431797464973611248970239166785282673796464555739461967324064199799106728060797164410695194794128090335592863506844372737063742814287437771800735931732662316526577920881518176261403600138938055627513153259318795914592831782171291937940347532685703449630437870583204216442950395726327684442632099948664095626815410511688233174701337192463133630741311573476406029352927551977185667940162345582096600498028268388171176732309958500156486891631755394870885039710250856564331463321158507020312516307391405606790187931575517327001594386383667956425670187766753830951065651707329375848880075682712908203864633825364316773801850551896405040665846344914263889534331644864079915136646497220862600524720111443965688533402776328702483593963393594224617488649695317846892086115931496338797547067733857155258413389838002635739747495283378954544994163549051537183844619582383851374785414279811477029231050977627305560797247563890205924744143529864087121210078569835994466795025018642746226686036768570842199657964469693555160678759096516085801369777385679504352792593668106066443440244677949794243309857041189050938081449346739290841805931705037132773697238198396982743607374789565232485246159905378574299060777477806957305582433680127202643314177809593988427077371697072908640810929488486912839729874272741338246186231640872410667036736718134882769988900382213502993143477137453236440801491265661709451444053960527468713337708599452506892683665423079904415973274862346964228642754768948549557987547788485678619582394640795716723186803237839173613270874806108093820945521908366044765166989570327110354684804699235581456397741835413701840099231113543736758990016582278560832955962496371397705532887687644978057962916523652215104848097145240637865554128979162064355441475341580984702234339645802745096755786090567160732430717155632693292137565415891428728003324591680217126419497170161115644906259001721276794509669198064742628028779699311499673094163590780051234401558333168624413488948565515633696976785119343996986033539777708380302468872226476268185009735755777801937071483338080091232442292464937659072149871995201278257954573311101967672075706093266652237753120944932724950969999769084686139629956173598599789887985145306310309261911205801971291669360924656421490094741639089073856972447849338885354710130197479486102966252822828822642189770978527156396956713058465517471724956480483819419396388647338622878401865849649306651386660075903424632208672953851377888802136333909694132084476055074003250365274396646679331259678972828162046912290076365369797574738535123118784940559397452388947960183868391673391543085178155046865564349260264338436800531936691039923868841890290448045874818572801773775909575968696975778860951586803283743031240469543301935182364738010474852125355568731587788068218917585890203369536785666932248421373308474841251782150863387478678427846245406058730424192042792755203513492102342350440042301237758173649513029752689772859940851174664941717525992241017699671978020691794159591464962409345016545187019676600529979925341742635344547008287720273547522345701011979738182904728681772074017878019401745295886902455894569824674816772999964536232418279398968610235634028680204853604284820065551016923288251455591200419567805816085857129986084913711960724378620743450485082434260468296706363649295596936810232590643219815023836072631962121809949027454716547075853016710809042418670897257566006540050306496914707073092088486405933431130494973191213321077192126158974412051328982390046178757463982600752064745896062049638261714226913153431912538074000082115425461831477567468460840060456283697038504280218139027688172915032805327671750240854060493547350417475759232307459567073517633253078397795435824058854995352312265529874698012747953362187029991697378251271604449984373134661737270276611495892307269234868388174065555154084701768717658894040323906173286840008197061072430266101569790707457084528855229280658455669089830891446531694619411810862738317288357291786350457002626823351142392752989762426296828052596326382691061210613099413921760760877262106708450878758546658521032633094384147801003683221045343797372588697028940970039856788181096311024399508877363453412072406485010208993465129246056872008028020786892880938123264015054194431373876877973579285878225439446026273494628906360103891435303919349238794296710746337891817280238390939623865258257318212794821545233540112513645165519456249054684564516589103798260189018447910271807779087638914773393397373553843458483125995953288083551606469733047508883472420161485402494357823367515436652228087272957683503421078288776399174233216699522383266279545456721908526915834083332802381926776918200543918640572453283000309284883329650359851453524184847872021578746965725317177377047661844439726758203811576523457036001592649986959777339325442624659136314613691823703394988008685140353512120628555380272322819436628675132660038139301078488248168437071712065643910482268433110746947137623795420009304080170899224956864367755010135785498976902194520344716731821347560535472902656283796118876856631323982715740451473204971113847366434715266257585907491735537073834477443661641152802338078492876504382696977645083384811849548452232705943949312972153331163023429760074351429940726488327798616389614089103182795926655681311306297202937408357511112114490552514300123879904319395838401521587955330991173615099539008863633410594454845923645619224442796200340710729651661665931053865491923915650579413009268827170561538791729889984916779878584468588654950045091774005249009706155909302031759162140007314940087623004301424824803696485959662906472226294113311578277822358449503921225133429658931388736394826594868799731633819152731506937348832966223713619090953486575318380279272541150669463051450607104514179944576342814759991684909499133085945245585750158133718502970942682219714356633372299873282659789085646557019475315386289828300211687903398389676058243108804995709158798044612775500088198859240173306223611146246025481855988351052729728727970649729985549935700360779173201064588638885937147088594908918749341867973377121151292201881615785565416488441517297214483789270698675442115926855345194489703509674942517736123917855291130255020770353064137109911151581953269930450333547314996360120114183078756989980937137331525039278122164099934100666215742213395260193699355922101370477105585986695939731489880617951302034080333642259574200261793824472777834834613035204464659812835657278245253198194565296013008669293478704910488968884107744170331461390289184209792108034117203043721661572157147768429919599944245038873336878316745685273013248432544055736916140570068484744559683241024837338087069511484162721122335164197887664333873714315244967402187814621728474949967590784656843556915274453771810530603689057464678999492898629510077596966879108938996167150916755609735766383775378081534308144963124621170016643415158137463963237083855198422795442162098105658848263721114179695927833248071731803926665695784443229282712218555542304129221100097242068674550755326819821753718846483887198279894442827926046939502845010437448313946755214683789996665245489315321775762581796590206703763530674950418759926535332293358091925076115147784346377915267422633095200935760931508850292224870362350839298990310194583374487370186246855442480169080366470544490847715221959770684678893692734740181749841802291239880378889626908116257178697701035847959805769696116605130059493736003117117200055638447398453526904462740209888183993025225564042669462035555868513726790115056753640300983615911516366220950438962383696783087728250196021524285342472529796095926859799716320321610017676331525367038380746967851874808763108307410484789131513765514561633675975375794266021560751177852706799879258177373708609266407194859093615418753060286265008258003106367941432785650141165017669680700677722285063690583544174939707761745687280433919321411636165065641186855971521459894524501188631979373233420678728119308376924085831646169515796592913355230629248534074795764786210206703485022177536374684709519049232073744096232000716184702520851121845445931851088347991833427127461431329671592611822023401728616233114982522797988334933963957627679277643390896780696762951747990406559114985448617712638276964253688151751913228693036928451897831059621155187589474334260980878040234517332026442236872284430338103071770942015768473777663206780967367554885373126229898209935336169855776603665567362847756794189122888132847105735721651449979872036308266649241638210382422074591544390551431199204176757468314821726889613101613268573734221313120784621391854125344580706601005126751656443637479565594209541469557309733887293948569901225122963091117899702716163276693900286707216836919485440755886696761070020673894508098743749669533746801996465185909695265717547930419052526878120005165868758064135069772301408430152538286373718748399700391754622538547187495030320996525052951308742609184190612879213321295547510196787472287990155186419655577055022749793744838505228832564573953950482822779737701155039081903102367022960290016958383885313501515643212141370498848699486547635478267545459319815489754946595520770659167706756819703825774751468968556530128006394538742708145444979874235003480254966242455098361509501476180166811032891279782125026991460159736592655953444951969453387326373796646976613138828368985402027386718814386959894643498351365991373953384972540732206425006998285852144205737091262105268623166641709563310873852317199614427535457557512117707992289286915799258854568313381901211929629447542760545822484964936910062563519819477437760253142803636962550303421597354692590284927356425702547730982374261947989888514675761645259210383461419969371879468954553975237406285026602348217917361032289535325504796154850568268612019307000765031173049226441041680078302746621322743470001742691184100149937602117755903988350801299421488016872505220270088811926933775967938179989647019257896454192585270470985138911456699291428509935530454724040842461160270663558138906189719592034551092359820179569770783348066622626520392391816971299657843492417900529282169627698526793779042208973961524562849057208406807634234360876149920419508712640502222911996836883349599297448588733146742815629058828945214364674795024723059804737064232158304496864427161983769042013414147877474881919137715526650846391804163075506521401247279440192071998974682065265552974132738588492290223088481796955237116776675934508255986136495064054847263391727853115134572821454829654983097232121251004369552764356068611546850000919101265332120802667644437756358302495474686546972819032428733156443130505888349104192475082294882035527547575018982519585895483300380878793381668741615920040334084133415837945892775575445701511213350710161075939828565323065935355904229051660477143695787808479268943918338014673168002830456155025030904998603066958288375658730950439838279787485216258985389977930169896091567354615136470011618653790108010528410047874896448635108355957723476171131626820132650384100899528031442135278332981915962553976614107594809410398068580685663621502983229859497143926261834196439564121032474145157778695271141411951407605907611627061728988642753692519295826798592782626925648471778141624263576421161893324904432393724283155137525319957858939377918324225747788452385169400053211914125666364489736996729615405347087431383031349740375175591561004318964676268084581298712326016284626579972981123986449762284796595352424466640715597606338412692034453260329518876555854955966989937653898909530585103466745376186572727867268263553567864236063667990294536776348107353612840653965639085926491635868647074035969219098501711969216133951540837000112763490528392127540564899667791970297837639940175141261527675519238617502196550540448004064292389269175943691410150145310804582560485408291755260851549319353483410558355262425000159412643368406322505194818504070615234205713029836981814333424488774485423100030655342167622199373028630661182537433415918116281616593382798480585829945166419701563724432007544319693934663355896255112007166922758888818511054615502215982160312148953072560570096494557438116052216362544417683490932427586710346194320990841227753149942208081956448420521786807894379825755436190792282059278223081829025097689411526488872003114163411094058387462496359467017244084540695487138213185358355714813739254606337138706359760507552418954734325529107996241958580476701368613861782966383096107445793257778181698056464080528699980491450361012205374157657701317261853020487915923071311337168239956437119136303493624612463693934778036822712711905623716799490638182205075132515926927677691604866469517848163249804177225913470502058637048177356541605390893145898516388019906652587821804318416630023686890384522135942308346402684267436260373639652745363270027997149037242788304679050989592003429649013105448679671324093582452435107650357299086592124063469112292190206281159393313253477186114366473126260626521293215047248419872451282978933896218072414606143542480834999980154133338545872034930704498851921367769263661892061463791002228438441594132405451298170231059726929807228839838584169528914372092268738221858351673655593110909472849138465430226511304670669158703186432300243727765362949349853452420830930319009171115017348532656457267252405499008894650898808977318794918207082380991961706898976278939044777311153733513863701044743345108750393451789868250767422520590118628473250755351557917402865518075883461650513418443752769357450027457748912352263335337787850834255573228972149458645077075956075160672771212159625701638253751005160190407288955131188389442536451367145285457063058459303411282062691411095126748988833763182852907121488547870546849040393765021545502694069045252987295984914961392979655916085475495955189301359117612922728899029265618639341026905452865741700465630154143822318764493873019002793425748821716868339245755163431617289183356683067469723900485931796919523116860144336151898295908122993366482698807796586596712957906390982388157203462326022372147859902678983197100588055466613331753738734387249139427806508637473026222809114503221687669644964421117219252118512018823729672780214344102434290319037161885377830111291291503444548401829509035979812877939764899590482347916853645246576358059582550432122517468041648390900035147000397565643161793821463096960981492661519135809977898534630253916869664287407400895641755098971362616915256787650226794170635728268194452112988050199136996579841163196197267897403071020252477286798545757646107716459567142051664647231331548500236001125519375640258811327280827694704029006338593469944305618655548163561507784924909606521543467570468574497882192836856555605242585839065868539518832234117979642944696262772635035889122007632430935505536387339209307768573068587807957513981009228393045678274375327229094217742173494505445753494132269617207610936344028886707241169315978471403693505879397845061458889668528497903202943115425487951761183507402495109609415250792577313118761377918223479597036504554327368806753266731283341546590363182517119814467144270501918748108014987645020276081924842728230899619654359089530206669230026010084406696914781183066461559033206215201833050725303058596978245318548026079186640704110135761262086800320236160437109116022756346628827105179951459128945857415566992995674206001330746130745749790759506096980694594321617853909381164131202644855776909570554236484205124130709617394543303085216750909498525028884952347385416755502952881375234411199102779800600575881488316720261097238818652638050598490914476721367436265236220331571371467881202458467353329586262473311660158508835241749590248969325891962469674020884229201822716333811421742067661987507037234482324606544052274568828133323762766950875071020078527369259903778276285173041416716505092323709996853144552766184331198165039046892836327151299380620497452323873099166181054766120400044917165763388711298708812204481658629653860622179818400916578561505912796862480145253526073047427299619935083223093426591638214744704925197701955396513291639017843255357317516275310798886411985546278104393944624301503648123128464364931550169696168306278231196750250028217929939383411479917693081285134095883295789530185658611563300776890271190570303635932454227601490911005314811077132624519357305250411437033146662743383217026588113171426567202544804154520723847419498366128872812794577956044240924742332351105643973519390546977725144037740149730490009060628077962089370076541905902090545072551141583711809731105665419322227083393367421960716097416110498884873821333192722275729187707329881013946086159931215801925965206359643716494003373994050788324513940278820088244022912239960269097180575792435005333926341518040969021833327151942941107173878789592643434229412571765040301686727028289694080078021012605566613856805300846885819128165172635131502399943788576905948313168097976127228070188083193693302825266570523429071522798670942487421869407498147965460127365702464535149764623280020071113159089777078315553765902249333835429407209254887649645481302800139208665182312001266863720395015387256531600586158619838472430653731431049596536564742836205549028518993885536827943000872683378795445895321198048569393269683696418273728048714669982905740789220898952216789777254670156848353713772154515012047665028022781308064057493549423412652293977345408003100576430072688815075853217572226763412326141136471488188227201771008482801575196505250150943567872835868900577126917590779229516510922390823547051091909504823759491122505873842758459018381697919199280215731788915002665177307872756580677787709902718453271352364295992851009212672614060087447718606262482292984785633068972024339142283893223242176071692644024166776306338572782629222427728743478582243935444325927695473748569639068927231645468139745045537948316892546912084017992740407012848825930057296859494395834971693618014652946575226164806434126673401367007808962261497206912158855930041710447168466301633111967265332344907392680571421207636629171093599277320573873314939775503824792033571578863586481208681440175160844253767256683036242152211715458619511400297984281648821699469901862002666606012781577528375131095019642560172786758955948808585206498183761030946574004400244711805106762936846997215522817706527647423363011599987009631407044083655712937880986381131824760464924825726378893549924100559086277345003175349952331081600627157085198780566663993978515776489862118116628668588191537707164332002263711723230300322220507935151412563336592530009362401273395516419589752195226759674756202048963049415585780205867719203979482137842892971686265760231248707783289060263935700991087373642071706503968847858176602071178543876004120314221689516058220447279357211297714849408103513039488605068408007193347852746005749781286433852408461119973883315626315314954777604982886184114966481409235713531375449028936799236535605834071667853298748972058267109320395728932788356606837098049496661456919701232570874184043911890938807770576143585594311833394786375295425263601542147104257608328166191119580026299002310262567223612368565419367168787492012572395790737797436717994696110987232245267482329099350843614895407957980372488404948951276885759072132589440828254250516304792186689365173775833077044038191911192132353237315038668368228925488358587388595199750742258929216354452918694902768772293463208506765893060123082300344280452140579787896794115289752181963487939788157691545973993652427444206985222221507400421667595879015017908976942946130374267469961654631676441056958267050983011885426491555685756561727750329357965915372216104591822437029626126127130846230577368594844827388927766252143683936629458218223013795008342174896036687802793709494020551823278957857672461787070503716053906573343789014242324312711367608762886009162552489621471659651682496168303086740795693479995291675407696106436163072859551660404277405804656596612178767785433528271310084859535900557870279522086322458927361761208889249293476360496300090902461477220015357022062271588859400051986744757711299276835967131114025767806007133141363388159837701725528357365932122483965025522786924957932271721188424200980391458810620372748108147847318602536694827405244272430913433655951841089696777154212139046610258841815783233561024832300699832640790805898172877751230176927275237385277372157277672953984191219533427342482517512859116672904733740139796219472747822032609175167255210047859292046334128248706976470217308553190551294541718076298783675905810988826965072254618488453427601775026613385271551832322293068701696084107430447125256321005119805978828043498891913433400566398822789410435981669228160215906124460220324075304893567344970131295875204243748304158709754151939539618669011896053411028298188720955880796938167284256804707939055311870339829206761751887527184202086047541253775316521242092911150413318007697186692420923603670919560237146632037951902676961800229866273370684220518003580292207179598204799820752263550077146917396134426128022418691003491130130394797434147187555260970359959380160577995211169962872776444268191692273236411401000546021011454822653907735461037463284747112663877901224820530929927879635125144595668691706487057114269408852432410750552506322581421571475957217111759505328411632367676933766101548898583565469331479958623619742004285189312290509101779079509602554869547313550974637804667766568681219461526075897228020613953425633108714673376704109901601674663758334292209364123006917050396507991648084055755597076519524329281355548244120775656485322295536864515383781230115298852749436958043052832553657864741112070240383950593140863389095853016640564431097914678059144779067000975092084213146656739195054577620113299397129043315635700823469721400265460811175735027939484831965001162364137775799165499748996369856281319836353796552843253666918276880576396882145121084114321537041226398832494712234967875802416017553784546251214908454355022390059230363549335738938707328489704572240718584980915658062772838955805178057208136325800775532182291154448087483334383141472083854181684337596393800073563720901357214031072192504598444314809830949936694531023819210467759499212326400763252059666457328066372506392264103296282293964167287885065204800542167850691413137697285911318413011446612735535041678608414879124072853365493571486283298616444524678474711470364254598594951806531796929809450441555710174199191511774528895067665237079309824657888750734033945090580544009876171993316739511503076462978598194422704195533935832409329051960075246537210116746795083694750255048070930196619324490744600964450813118511002859054216900190934668279630678332484036453058386544413300364776469574020608032324357960242780028854825932050217710651553644375004778094710338331708447851180356765291673770799592028840665423055198193235027565379208559490903571388340200618685514444633793339769520314593914098726391087905488494216968988749530851272796598711355639613861700702549854265662165724925603599068020440941236638353316502117387084858210089574461452563859202859031094146196785871740004899525097382617060567174959558823868369446495062618297153454141006084876911667277008165059357021307095629803225186247019036153396806873984244530847733769020167216606273767000848749793100909184830692234340516513751187534977963003827754963752288212404418681268086261653260689627130605296955246954057513314562186046026652106663171856742800522997050431303005501242851040279869859452231063666069696642656465247372846657235990352239425292711938635841953708448118191631407579677648732504982720823627231017300057865219859273716826841985949523156703506336655826683397094842626098794827082528355603177768112171314200204797120409777874293205485080058866410067471005910020438442225894985251315269648245589491240082046485145343362596017297472695988549421525510922925086006138752856205995651713717966609613209181433926595458014610695380446535870013991297983755634337829591015243697624730638697268183182487048548481567858595875332450214679158921484250242572689648392884388774621268579893565363858814572354821218959643747775274873674219240581885740003683371420372213940803005361045486066965799220517395170970721406440209853653631175271145041739401218516034737342624515356447536527943769103789936446342109054156509550906901090475504618072999694402136109751268061558550236738099295846980459301249739005993828750558109926453031790263670513450107166953184033126448882569495874469060151314607621977105907346392918558048107546521444744821475671575444549378721517204175336547413274434150674709080536821990278467088320791655369118594296458144222654498728705220652483936422761074517902490911272881241564819778508144399876225876201371297076244017441829341139446023285995986869462140931756566066696269445450060361911592453207975008769870929677781310136169049256953546566679004090036362815296264795901788091250482133183400348244298791425705533244731950606566444958620658336039760871742550353454172074499276292307965021055140568565450377758854864303176387345689165033181712953025620298473350679995554404155580623327195305615818168045952359737025380081523575199196134451323792456749222658399269606626892734664966878110719890425165239592378725099353777683725099368785313328794610277456131564095969946017594365495026670538967765986732504873091957936687022984028784283316777808720401055245551408094324107810667136066417669115980355664945089260828340498732694801008207374742376724830832393555480593294929279198308956367216613639544576360058414595937430925473558966514453971139577538127751299072896456590704504475879751424691127691730312830660343611536049841704644696179595783430400292311262197614636102045929577803338512197353307159373216579618526539173972143086422893706660723570160387433912171743713582186317581634553541992321106672202431953778249488550235814130631754840223173899137869349354419859692368902589597950292992220923019248556193497465771518054161980021376817507871025630617618161917198039648608154620349849881557950124155511424040575033782237114218855678681802763929222766766048176689266818586942217991309870980772743886626401949343193447383898427163234911336878560496257785774258134031683436325594776265260381206605049850030581435521901865619330130015715972939650233217501920570806299848754810814587614813477828751662407479256468955542552250009354811554652822745014929935820025527341874304562968158454783033916936236216383787318402184316675676348237644409098790547130363872453472296599475115383574085829597070225160462593321599979798203508842630960867914687273450565028083367409215543135275045206178736287216586354900858402925079705408857328907995018710392880837337776273537485584741189109861856790700878375059842056456193746002808327205221933784876342040844516873329609269378032852448869607055820216760288355123220509036381251036872288546831927156699418191624495348681187745225988675447999495020269566023021275995138777654817518631099076511613247121795662884869550284969189082665318932792702064784279561891474195226042376671182444924309106765497778008748790434642626931281717660770189202409698635050063411421221549404434846707572262131490299324959836228974996839969121603178087805992597580151054405195134920628356857173294484501196159675730730619128132119036819575079528576277825346318523446717220441508711937994018449442401584398261479058684331137594340053587752081065157794614090894595970638592812052619131363202938065417704472156040480247332806782949609774763676462644766019488875142749979114576680249301929278364458722934912806395756429054191322852420545498514656564967719576004218303478013898345721170465137712613065993209581753635334905165435503218887368443271866867433195197085307616080221991193473681188897578418952135552392452893991385406400109416424919098762892081906773707008332073944214285261290035794547767088137137295068534310909452903851273862396558914719251947541593408606389052777379850173242068368920130872310032137555707421921460380981158568738195123280781091363812787320382149040610878036728025805741999841789115457828983219560573411635127752037113025580593390339792602041629734713265239614607943446917840870977526903582867673530427916583113766831006288720108730954283066343712584518100350972144385358592324379995271078219055230153645136719184988755240650669561853239733788735978104546593507812289114885717853797350511257841003270604255896446372080256153248930493479136173137620575999535973609020403118313562952703666035990914095513488373644508130032648323281822737440703163012255896647295705678924190298742767999857819710943641077319690542541137211184404172259763737077762793893616798827516411440176186142260753959897975688661930980632452454540544910005178493602191529179207278980666805614010647347830919364057449266906861035400124119375195014339809554799723915386873454902047899546078309454491264851948820188753230591454606414876898591576927049857865152997999261278983423065284703315080532941121442738070360408597359816388353894059220409159931818343845799462112535901116964764655886839073628917319714032317950438347313765280691846280570272937058393024732708756679863566117902374698836806098150852144850815019150210116116849589280177149191853721819817853378487425720710222814764901790591807813916154918811950816093207441315784825902921652902873064501412156311371385284510405063811927968649211406720132163184731023945785005210801219359686546768868056411817653443298497679389305990721854444163738282965193828759076995158809164634131143195187239765416095860135529824300440494710539889709422192747855689532289893641386593552856349699602817895336296270708822076373392253322433813438369010958203892691332504323913390927872058921839252506340787258643184051528006172340494041847368707705288543020802978488747922197897741444101424707256515003022222640453250589623515976164748144432946854605553700046640038430393491940695720519318913832485492209676229232624485571341956643550734003549503814444270217071975157904634862292101645750355377781431603834904351456746539065151793425194974390215922416613628123880868017825515059674514043366767798219001778839350576128444063993669597205446259736479561419241420990252950010621888178600808953024399389959987028848068963814655520016646957027751310428821102761980387275024922700851838769040001535296719570992899424566014122331503417284181980100827809416533999780206573733355320461224698319422826490336101654703571264144881903545415681352044882296395362446453310018491569179409784853028598789753922411255953955538499320725008973535210127543544345111718697990292162761239492565136909309906554395412808026196935812289929112433477886732155933121168400728051346417845437413532415657299636908128742639940098954646508716038072902115070761535282359777767378964617339687971829778769045656943401877649326949204036440317300560416316342040337950705658950540311073030941003081638707556698349955419188772222410585624339869614739832521389813590451889769707902650672344707421805196602608961930726086372027184156949906668853948088496072610253852876088095121997581694020804280297972970416008937008163109998232756940166337195125749882294290052673677534272462190881544910148809635010805801412648458412289321422294906671372814787447946756969766831872147272015832939232286133752913487449162988757814206607579580872198641594976082030220210826758386190465693485391432261290503771123964885720713284148001132475188238388977919697147010083199070898527339002854620952166755746922464619144238194656509055137640767807712578554745517905569440753809454854287860797939344854885469246695476605453859520174675357457247092524492575086636826763920112508213537851593580494114847454716287736560845962135993968044635252527272621379312805025111314787317546591379394183292550659921384324998860148998018342665601612924466028217310868662258218954863518554883409456802253412544521205523644895495331696917044298386529238442586852399394964513226766702700492629248336354041520781020528740487997839931470378974480121840947214569948239047025165811552187132894140272491439096792496507732796317062737044165149124148760287872724685896527531351505775190228571783937484049221892074127727347606618297072258051770914624303020466939645081114333456231081471159361705708494312893113661542031414733992870682310913173883682517578042653627940418456914723682016313424622896518930673186155539246297770286110040447403304595458868158922686444829761878505508993630451414010025770591264538037961466047882075544541074649921085638717119422064849473121439118857178676357482058182405794798546237324112520061007924080628170660867421609720141024285591603301480409015821802692642262917996372444980069395720363083376572201746560556930660323234058221412172625902433626196662014804537211776381452071848468702624714271115652014847209940530623916715658451718542622215963421710723633696132311664209899593213872955470708630497337677206343127436381074341111375987919081398275383464402149888205438045883802196100836320448344436417979533520655232143558850131300127496319219198170730399144361795896661772851137923209865100087453030593077498543039685945417445220436672318948301108624782095355226095394873832719453320037851317161698465189507126112843947816942680244711246710088230662187151301046476979298407726273816113083777433886803122721758000335250828326159715507842757397553538144457659950639892969963764784113040867719934133918268108539275582221574183915696277822547524981578118065714457490109130955726108255545690769045689487801435723850947275321554678464259530260722247570123523774689746001287523582964368569270649001869057165148903229920380909044833116098952224652399639965618905201076920936219860435690855248414011683854115352571842376725640105104965343902156358623449699923451199756163642776245967547303849930751512009651245297969349789266451632816665652828097765722125808523181810195597717060313503142790891022054228820532778367357453606764236840988011716158684437977710203785680984697965959171913127818243620237867450452225852249308583181998832419203912006120897741391032807423990414551076919628029011808770384408566910650770786131973243503322045393164078254960235164515722736438627196583072360398007728302170748547440113267529096443042485235226649765994853093552505294836960742010870076219127618177167296527195741124749190294793549335844674578237211195869689521591672135426068134597396190690706469759176773962893211041515342028056326073618219735321706711127520866294168971729112761922297305578940320820917699963038174199144210921612090490372771996804896615984286360252751074240633246742285006421819899795658443094916779617635253735297056470021918167232944963518914227507776121406390324682712741922067273601618710762361696528037982308106050691106014212974656397608113726250923841129678446016951271755594271511293372043157194147287527694115511490292191869625289452446116125831850621643273557755807820691530947889422363459210995584299797925702245188515108385952029308995895579199256905750202395565441123752732441771293205813869927870493456779346937733873047525083401835604929683580283226782059254889844652036228762260624441953037416276346252858719518085385043081615181623463481384876281270036379949579105773021761428318463348530236550292892998233551947543123788726573055710773696233460410066864364880233257651241412385860889088217535286646651341459342536060056469116917933629227465043083890337971786446425837986454354889416154441365425595075310752365920060430583350066955573457904323780345727417127670627038054402268574405669878816213244405557844719286978153871388534982102283714181895725242067402944974449841931461523185987433976896931464105802809833664956842311680339303497305796210476117272105962037022497091366791787869922001270006042028709352098229471962310254537148328591708923336663975170103594595474113460528717144871533250253766982318114011168962045345187540862260953706341044534314885219856016596383303511898867897258200608009512331498447650013922598556595508981018377701027165668756192739125660854972974984714500894491160320767155966525526215876285376595743727787817535438139988550301164276060629251757678929538264120536480925272784518085229760464735789191467122663991080923877632498676178082502666794762320489358239431747017740053148365015213221853343698888908784479732000289835418953159626200571641381373054248171879946766507005749147298107469029723411437197053032591281542980151492294657697499948141164037308790720935477814058700554660182404740747340108535866870101727475989118147986035185015511030681055332693334110363908619898334753841366979549058749950172710694739375372479377298771482854571905337327238099298161023197207702731062650647765702642830449518204620949950505725968644202852572281117068349350700582171554633639440848850025817619793224600897869983717777014115001127263834519272792254400271135833923571960855703746473302320136260033156813586062260881862018542359986216046997610983121528204409583642289839157948243342971999723347410904272760502904674006081005142289186525792680898566943480721123529074313822272883301047157737643486419686568626646416455211328160668700168253964574345903179948339193038418156952186046186466261344627376023866349553919435473605441492895464899623355025179895850321198794647977726397460659031078247474951146859133593034869954019419832894309590803842896664695090813847837186180033814844156829670007051528981572047928916643186522928802694508203387318277321437834842385913923582803054514851143253185358346987653164051753524011906808648102239203753610637178334186390693814994738047185982639901771652297509947316315350942892043371800181074293177048264143138478075847564575150574153815947946481298118514686630753875761070400683938436950160833774696751456786263938010049602492761028296868725785555324716582345362084389835120586464028691118568415453280713185189199505457654161397450449138579857930719357249453370993539348847034964576008655433027692243167107985046984382027009430324299847342640118000686798071102261644311948358408623111425756999483492794918425119542944376362251217280725241504621094077161509376268698673589262601825821516384252014541840602573260233725840883771616868718514700930017955620341253844502385815596915097002290951814395312300975201476296588172959518234006959358140367004939105081772326726761208726103487682370190568845575680028919163681969744338230968050735014627807887670950428447896073064009607193274867788821232089032172077628662448253048777465170877790027321851860308017567140569727964988215752409378590937590646646600636964418650616303338810119513297829616774287171895549326404747186608725857815370389216126322281356474126692364022399082611877852812606873235412677422828434498064733886443220140287141347457716123306077308506430169993933521180701654547932927989614636575506439221274008186064783436744755080298707416148867805465627378340659511748653702484147345931420115466389283067840811004822965549694048392540713976830465527989880474816540048944429479985084095877034762354242321517170656241861987864729413254161161884777118839180636155474574613930621132304072963453066472029041462290370833433341825364737337906049963331258592813272191034691508886979867369737444949749213336484099019356344966499572661929098222587773124147540056183825393900282659210544378356944028415780936461502701734975874280895696185923949398651744418754355337690162803552401220579103004874027358065266142736732960534702189497877290223781241199591783117489494456499973821661625704335507671878415056157199711591515286282151569754496518868429405359313255730805423676996297840615410152552827189219178327719327875022168055775978243809318330658522917584556669691872741015332584776360441903588335270648874236456266514349968301669263360811827394756625752611231635983051142760632265387898546869829059936984934633599308340775498565773372882254731128817228178714523255335249586435022431229773158761846089860222695285940376687398370641200697547339626320379723350118154343838523610720122639495204085299848545966010283945586517489105398879891094692106365134765277501285767945926165427752651492472816883361602113762186325382780009785754986182433470386283652249985272517392825213007571431647920395619362827996696816127455645886097229169958685287238850636082822475468004590098194209952506327169630628338591692108248651176480959468553591862643170696832926794584747908382401849968731721871510015723682744448378084818415652704512431431395240389862162059214387994804385230989861163362053323834296159928182810814708136281209842335087867352614793269758225225269158650885715457509134012438883148056839237957832055608689042303647909345712709812200748257404998967900128733735626748930091945918628658801652351641037293749314717304403379922348808045902702737853692295907275936855373577840691577889982879834011360880898289336802447563228550034143650415246158069151501749582870024018900324193501440784122652776963464268554603307002969902285446431795766818484048932046725288477757140163628060510202165202044852790111662175795399489988976531240061651012506743084719984531062630527666701192272575698078472033243121920340231889946923344416725659866304355203837182836417839558842079530502499955977647499391676137057070339849737318124231394477990560873291762531024799384473995895280449500637349515247143215205352501570706550783302008470269609969166507189429081710595804530218801409000639626218981900308342393873204048012611406340707486693109363175805807908679735613587794744228315674776262482880683552684109195424286053954891772435062035981693820691008037363380339502046311552719384671487902493172188658550665486681528418304572561244959793193244545151667949929988968254984630273989998238888632632254293301827125119487594678802572821430616548249481842854936395966012347337633954018060783589590910289024599373830568482533242552282854035726678450223314924584749669799773627194209846031541537843472166383856071390315799013733196777176884705822683009493379668244851570670317353673051391619028087982987996707461475706254896723280058102092419606893587566196932576512225826981985269615790155119042214962995319773825170234631786953263581333191912828817473337359373119294273989805590115363099725131121210157937359155880420779593487639553861870720631640071694385733371610717059396475398665466471492822610345105144663195440070670601886197460443690981405854301843624514205020475530298592073957127734424503709018064413298725826524279971339440833873187144288187158137215659429927406939692631050778477298766702667982466723746653079376465590313081471911734573484319604569709162814409527585885127997654557412114618983680172055974111062078793844066249722114586883088538102144179846481464008772339211071284915147282052380727573487679259639386433525792909427194787331792955487194366093540235546001426828303594353535515658214980547036715513068168251970576854222241936916265048602119547753757058196773043165797548488493573516821484765162743677487028027349712086683683324041122498976654564253480856979308136014582932274120822863734534747463979317989681548286789920941959016306662218727739492360619222335396707965475156390048413780136072651396475219595884240132477608146023168180731431743386429300722970124145227746318904304376987300058441159844197038711512562055877312506113752130126306118333577629854202029693271488059397078215101523660817618915293651108753395848405949352998593789239592907791510077912626543664327724899379843123504515156864459767651830887399555257785845921208929824159421927387704436112234921632346056662243660974745528621188454506746215593496466750099912570179925233579365351508328181981803124230515443453292782526157143913255192982019243069983951388889255383240339299810058157723057041031897529562663514558121500728216339098077695392225963781193602121215637317122994024192564820709828996630381760680876074775106000667246341646474045555520763503251498880102419411912089268682217258638913817065026816512590272736293926010517662380658281163803584174824096243922148776855817903764346314339980145477622184671262680842226127028980914280787129806411729902148232370079387740652216842258178191751621400325284422132770028869719900504004011339325275828648118934243701295189919443687286197732295151196751639077149745803594847629526684070787096844630814503086891782186892696860427952430599884407225320509342127409891128073081890002185471443205095242010107426844995754719279237991284572993718846802199532589405786221749231159920837102414697268732993257004748443292969991190203364224030862201680080038447862477597759019212182310027882304489565577964377478244200129222204503763603378678163083266597241485393935988805797754194878578867882944056073431791914649063077740352180906904937445923619456191254771845854665173630163702095065423550740417589440348243521613348323700411411536758393087028070634346234838220706947983767811866985888672212041745995070690413559436076503860362811606722457266005541297091530910199552456454362306693561396277560183440948119896391140965722251577823876429818071149220271258166913301356724516447490397052736592654252825159687815100052511805549340701439494851310770725040367090275233024608309504712136174168327782656388704063538633227428311354900782524574221679897508717551527089754397616412928840236036660951556886793326323458834563181522343923653971164388267379006431489870753146686712141418608068668814686521857721045642889300679994261250343292882116182876367397817738747384649775312954858448414803032085061719769887335290843944619717709149651281561037284018561227904698357146401205363016988513106365214892275423322962176268598379131899748648371740118001100431487489286425648655166833713399924928524935492186702350104122168605935259196388510238493615444642499572906227958595509897518658973429949781152754317399030207953991974364383402413874122659323423077648626098594921337039718015330649968169078473055867169227109622608899812046386752191350248298500925370279657791079673213287457818456467332870340732511442290079757372612352695583927345845678571991248454237885429125398310724981994314515288838373555082207123406282396992339880897895194137423741580004404781696836528018822530904505011023188809698280853397869848722886661363296701568364469881944819989641222677511191092917490977290191683732848686688521687990826999900848817423122379971953178046676160104652087602252454905700273724019864142664522552771734198088287457958963792317349984942569079558767596143329486414692888394094347171285283815499144976916602856861887346935463982797081242741539210446513610155172126583777070889089578220122825913919931951429010399033184849263269707903464854908111284144280228534800772931948649303884113692698446251906273053955941181300404330111653401998510429807260536894282586911454154378138527682573978276570925023974782337511550999471624965646226788442518369869052389851941900162980225195961772794773429353540664595955298648052778467916035468601788545750323929620411607831743092861832018552030962438469808415644718962679344474572984390310570688938803648739672850675377421202154488640084313833743539587262089770483164808581272398820775396178896844277336948097542316174083565950722246493631029793031123826069848632011673123703567815137225519232765185316823180322623970068230053396494877966890064099484379832765101229561929833057681988790643733823974054088582948847587736286309782690494515476106351975737481946982038089606246928582224064111339710053281939444598117491267068094957260474572281486744191558485535527655802630857316783029911689818963873151831304743326530741510347574997340503545581963750099578397442054911815181183231580827678219249243582638153298099497323076045335658338680744944098562520458883190998211518626421145257501518468912611634709643133402311574027857603999386361849992104937909499518924382627300494411940406125799541595854449622869421416534409187039159728781465845756491902052324946516122265570053163281889218200449149763282922844382992390645660285997417957003246361936823491184035013961873497275727479732502967298104545616396112412057193792695035796991442510570538818464622008039889232303352677196615880549273990773763079347868992769618250492923701736320997551781342950374534803915646873408831996079459287934942253648353674944079378219695568550740040693520565969477710576086797595722688758397609356134964326833596774901912530311540349008906786093385094371415502133138622591802119161214083678762749680891575127671161597578662828053163207176276764281955222366584744631727691208600539377328969927186758383690692649559505059392637418556390472245271447511840906780870523670089865768139535670991401325650853138848748723634412579002385374374625973473926770990663537375752492845123430526726247447116315320201519583763075133715529300589746189716221270655267821424460257436634560343986711798146452701459986366089797347567678112609478363043378513155701433659289924803472734700613244487367307089783392133010665828470437772908980513312812778381445341835677901705185766654037563230979567779369740994124330806682237579742280007010444166832526840253289130192233854171065176965670046245765476786423061476335120229539426582796479112355269003464908950782066856597218032840145213058247925730638344325496379960545913074273754334854979891131937846434309519843044101147806867417475979734784882477896351553237607208418146265941805057425573163788579101972729242423510470972810718237409371214210612556969265957974220367371804155957304424266559639196415299123985347611056573238262695552332119527327488165291325473740915021971646400447692940872986638755343444661895985771069130302390634238315807237534783002584655763678819268119185171303123617486382190953899136096302517467841480095949807218121953583902175661388401106525362015762719834528214505391209844668044365701826712152628377639056424624434133585952016836483261989114554455340006318331803709890793315373737771954403378138799258738112378791668751898886794592022676826832793961457550107566535964247850715505248760735797220877765464182212800220245712386544023933086453590492687863292780825572659940726163696533340723533735100303134247412917285383522764427045187564143163656051204564065704462701015485642481466876113899339056734712005402464736054877813848067308196848526899104758326901648852801563143503158272519057751210358820980379864178216777954676533557630280293009430491504347285233375242868709589492481747407734499702048461357373969577811874218393407799108963230373149994319219561782570225909349524737819346040969421163917988232559538731143687016237345521238213843105156036026398198515103606167854892348472686499521086940771264635287549605649216815100722709232432746062028894215570776342809477515477651992479573748697747180746516282440910699222576161962678760388159242489767825591516344165941063682578705396796992147890444891141071699600402811969853510943893530407984803580263906177631969149541445289931006661359185420029292363921316955560357568348511831888680572749423756936675846761350829955163545417641378885455694136369407690191171678435446194777357895245021304379993002472123298768634390901786816066769446885214489137773524857041058395148249026055459455049923633837879515518024132582954066257557659407114319675046480035487368260088651325485312618639026176602063553450556680048348884582734478429148860247378753845280777015694373199159399890380493090733674297100164951931335013398098263867001424613717039203394541961030558090080891579229112879253227699170641626620728471629324552890029474713261329135377374746713222796531580458575145256000350696398727696038896797458632165705115781252184394448995181646275531867366771337284745127232625154000729940341568691169742905863098174884283268688740245528216792656597880974152019136675334613245017001739047913855952626199501265912993521853962176506835086124880220748874075103363347760932029405727196632929796282236172226841428005113296840403960883087452847393477597183839029854141890944008509744129451946644163747835614830239263016562831116159334576302460588321714519465144248347278408032809818863423643970382038166512779458465030872475774133730281319308035150244235777581343707901020779093565290949821855253926079452811279448411503343492624584472787670565725662403437734343913299091498886604811102745939733442559502686714084186689729770452525490979436091485943795969966820886561334371555340649545497380536647307113619830694949765524261872552302754253562675225870597866899140953636033321485489998011260367309880256868008568912549515016331898863188868219514909506904506511907800921321288362762714729501917399125824296965041541726181353016510725014588441789035496903623185992340361267080968935419645487163452218627004982587301513893329537984747620004976642247893079253579570234594239604602267170725014668483926991835596208291833374721394773269515117402147467752942706717677454261735707956697552950215449463130830552480089845351404758627573435359780833471570475080615051187084590046606479059835942858688893060449634599224045109048563612892632420465196727771831291515259082866570208265294891512592736952178127741225396735280204566736316691490079672206276776979663651235216388881181036379666792626497630759509740923019359640551072843986135204625095342953654788272083251116526608284429494090577309563980685597090733612068254222630486412488469807980559406438432425724383656348649143088515285947916687001337081944308622278617813612188042848109407693768519947318133294896691768617464969767669798699159273630997295857523650002194610877388541878063491471625170819018042948401679090976586442963839138672177942893137164517246219477508290103519168675502504922609451636699584892449935815667499837485834555939677951770832132230981492676033657284178422166642084313025107580656965763958408287665357352575368211486244125781323210285389978235124470382152021663330283826608803008127867416417456520443534339131809858868849747616671373049926530061318661472588700856393464074286389758898226490592448779436295152562678812720169493603720517803896062565783894697340020378096253787932466509579153148342047758667285660439128776775073609025045755296268227493964514269468811234378246784826288126899392061178237670933955792612673472066801478945739016095901323631010529982895090078503154094097881795816277858571958488472173430701215622135358583199398674400847066690833410549359883400845717611635159203218699378171002696015299654770211739198833749579655331986134341477159039790654417449081533160972653496092603557505112255180277495698855177692618502266516949956904206972388703232818409283132403914479106634813586425832249324133634758242872779593627377420792443945308496073401535425891164230530422975408696102458630205788609163524778673796358679916504414635037812235968310743114322603588378294329943933671773199644655908877971327092817327451170643565648764338775224818177694197418700496131899431037555869626670759435955374770715639526488302425521656058748480438838560833957262016276774478851181584612811161701490224538952097058090419141757080288841179038113963598743080045486994028523198511967876186844749194400197348822843023285564708495652667412232357842032373113080127077428957986311265999586924992798443438849314152334139935514091723366567732078009701812123566682800362766597254382232301332353637029800198922347343534578645473667790071265677356491973343857116493619081775110985544815892570697958147910543771913599541586695251168042192819502776166469889866697456336936741011965449748463302127762959114343173294139699204676822492301130897442565367341193047872549688306092433890984744366794173722102296364916217856815318228232144291907262192383411065217270566709859918357985019268769039088281629320052804671747463175567002853676726899908131285824571947350429343605995570230892722810553549356294682546085355683087057134573643988401157091378607017810589309776849268045979481640466907826506401258135773082291683227923286556673162653658913316828191128208700684360536629406658231917538637863300485116308957697683154373649775084147466540217820892666910652962845297536012081260142811060113738829449613918689470564231236749861057995671880459967788926844406046690779900175721025589177693082630107804175910675943900463201233624641301114187500319407674362861365378386169920097065088221885408328565987760815411180032513669734013539135220472084076623965780422058940275512438442015005030240509550385613463531335186563592347692577631147662014115786092059872494881566546772073875192776391943960481341918002002213535307580190527732851443107608793297985152154329078734666197945316004169323358642677986506197758082830214503460868380735022213175845162993445010677867246639482392815915992796730260846151188732841583589599646082506173152619149236733191258501928993951801539120802455847133674991882970822782325089522581752871449306019871740071946195508388843036479711572430383027483471658695058448074036465696687576433982585158515255599699369027769940782460211232003112387157648742259232908439008533549018315736395259342911731721469798978741223118484164610826348928598174961474788349390927992362196686908306342800926835909042791570495251479946848343940215425326252921099055640972991738380735148802036583136094202615333684154810346333874695070055258292303944820406756708218354281599123558934741790091117749102656152020127641394879413579965818265323587042391383770573458618466508786962048570044302028429609190032266673265546573965904477665598266694298495322180534289388104543864461185011308730274617548732913886444337971151939483337864571145821129028949260852587009971833758335381976687932408812413208559971992045542072940575950287834753230150051918253881332169156461375767464444603519365288106256210799525611556812867246220169026429675863925666836939296429584524373777875364601988577266511693648194997293397551366114878412178875066757554150172845281829606454462411092962662602851587959731243963426909865634838248868380853272028891082739764558571672862377139146962653554694644175063316230767549102846089313579372444001951698924538405026688002599075644842381910049582298621391065835336332156253300400006365468944577736525155148706522287196171832366713943088321385682710463019630373392722121801833072034190799076953278805483096917683934207948256075180801941178094090102685533624987296639266482584301356932570725992077603339464203729295238557252710527014463271541562391711895803830853539193889100349997374030892181787045336642721583346745214441103995521269939836491620519501856498169435874671081805705765376817478181131417713509985651191586717205560088150008706842679891186405127466062377257693425104835962964953117404667037774586758224656598491221539719538112939977394559474421040242303122699247096309108584621512767456406520460548477326414790260158339110724385112083322882905071342175762122576288681201398599768268979478381101812627127928747151984460820191406883520993272206550463156102204382322690099737194742404349578260006551550079581292474207647590689752077986113431650157504837384852083001923460443244877305386165674783138735274757567368627939507555292854545546911034460024273768474983366033720515521842491366923539595237069849352605906351224040247066837828094121272106878957309523062537860989257905332667469001904454444716591681270138143751382751187975918674752992118133714959813427196979031339211943507869117076434313987921653938376077233016657187657002424443321341109616413630277231235766800481833086395177499011922844498718999337826784771518146290580414433464898386878553002103421940586458024287139251719727024418220958706246452339088347177554672907523020933687184468252629631796126135645364143871450442463749589925236433930185918867427244630561382800887767361248317520109962038562076015789399168709436175417140116563111658956187141873804578910059124965841878527151962514641135072222853998742996776095589671722670092243595641396969187046074850911080676845985066831927386056428169688794985532496715294089646915920823089578951427345507164633128645916913041912282746914541370813310283461534641804873961239776643902700047238548763619996766215202663334584591505585313610079927672685637954635379393797525008553405965637390772027392143432989567969921048267363114288738894254134530304221762487217196383505002836410730268999390812164179520323492429113362126146608707184404807586099212394233462740758923528515805482794833582776990911260104216076372628437989878385271426741361804951705168234660373997960553049351448408847934685627905466377984146412511900365997447660954527290290661251057336909894921420047355179366980033290502261637497302921215035454885958112769823476076347984637964432180839271813357862425688787234170150139623854793849176872368595650456662242476298342584463321288787552827902109230534308033811344155875323450372584446488945877244707572315713086691460156807085976710935614877135706477150320460997178572507374070512867873124905580257505164695932815379954825389680849636648620185520351452153634146340977228971358841911931258665487321097864497045517836599953991162384955631806728781676887576717271329621616518197661984062790317539861715421802447832592742992321283245801347947398328288279482736591891244729067987498962158957209788586488993164225345143307871057913277602204310548136901091156148572464494457906896242868636568187867416920501463698687371915876413040307788941295583093776916159719101942350959932605204325460349544922332942714762654009491255406494917165574703280839090298851352111128346647286743198236500066589901627248820001979049092490143445732270454427542306380062560662987692764661142591655002884673925011185019936761546689899775010517389579355699612934965506658924573803270542034740592836034075456726166475515379298193965858043076554783690862681444282102629493796888236514997160141683403040595429125173986667807517405462900877722863018735571873800093231217099666304250042395788318022281804490263048522581407698968746058994284320259679513448164088869810719817825895428650308893487256237099189395542857637999658019814439761069446060412497553122068245529211464443469783418492115435368639033126630015460385024352187077950097189162252161198882534300385509507694154172880049710177856999561189502256668050035060664949420735736153809388892163740148037730499487908934616101121952354555239557658026704869756159449201993768122422673618839685134367102234406181205156766638296494253849982951738039519519649697780396454280136090346344245450333720861185186945235006449237173931740673516974294407373350749122327026958391112412615764342958527807072391918468855614594139923262418358100745724158117776441758995316418245280113807707447275552749137674327983908758507171385485146745625839391090557188425301209889242679405627443817577429775836624705245537968488460615009165189898802341494611049858498891116805396257351660841225323339965780497255277935630904747758266610059845664092641042474810688969101612088718906266513830192829008713362141961995717275906559308457219000658980588058661944573270899583149217677590444372702552389672828426432936470003550483351279227071073033699108250964469517689765358768926345735755460263080103415973973314774197147297827209034829279866142544094566005243870250981205379251954767324802862565632020228734490260036183958153260836339264640517197614296853672220830258649247074937252059682471473791415583449801225432766107219925266027366284352437332941900418986848059464169232531188889406086877176717368662371221579571379091212932276476510129660671039837090246128427833479845850795278128574081845263737477806818633621186745807196633830319320853362817433428293792585963128824879035135910364276794576882677732470920500998421026844149662809879762880167751483838009248879175010062707749617947480986875254574391633844305783919556694905502856044851242748975268893089644626721349315142713160960395583773486946256565586464857844289088720407951437406701281616281591560149893244856195554366764668984301953504886808836624950359823498129134380607225465643952512043207818710212638503019612408458561327235682172398924040486272426929876647088720970991473487919243603444060432204967318923089581106168190993380641990537277800408320429741309880467316212036326089486179983323405048484200643303651683377759537360498038931985392566224232036024936334318686351425129570405604308524180970900988073462693685100684977415173712850005766557338251559649940654508399397440924357348649422432227514046781009472832452241001370025974081744624919484453470943415812072526835288174875847599563080120401706648318203672857749189126362534059169996111804643619161082561924497698541472928318610808862195029966733914775052775582964339179143092909132848205320016771257276520781017474429438533721146289490434546912908681729960167446625147951723672451224244137327745554050659485483790621511472554705619181338858884959940142928944833604650873295877298399349793291199480762950724189825845122706540901164563558385539813555052064696522795848019930817155712943426718546166299210121846008119661848736271314283164098413601061050303925068179277816818573639236761148894650179116799424547758162323955209971534072420169694616234964395510313795880258980764292844603964625364874300012752509104150290653724620487776727147707971871906701272650961640733190241100675186781577252876415954443032126982081081055144816777639649681750278777293129086201065392253535461382540935569399173498283311673595691438282850375859879021956560134567018400448691339038375220257191750479347481052538105585436245429381084659786622047600351190218762303022836856386005363159928825686412333272530103349556601859089396715263686305070959688873099772726288798823905499827721015029856306866942669629005252446683499384119397495429772772299711425154859621180342320913646157243745650663095722131436316835086978800392650687820349604941094897163133351856238120429206665562495166661189957612798999146279499122649517475643617852937235017203506635671013488558684651672567433292270558249868602184198086355989989766083336748500798871388215601857678977255411413496737410761965374042145881048096850139059870591137075830184884603240432196533227791960585214888477143511484482829845022030760311542834237367034810306210602571717108056697514144488271992713032788359882611759681685599468556415529885386206096355254974577042114896940340252075441997500854206802856148314151328409683898298695758873887214813460023388609641615804674544069567788448111707439868742364818461421938595431139374270546232319271299008123717098050778513851841116540176846676083587517545986235442758832961751927108572788851546077233181413873350884476712199530457591549533514092444312251559245287620878251210140778162937651419132281229235800055971717445406828495091002478017605932351687939062274805837867848728024087156266793925798090095420225617629791508948645431476058009736805982926365707011467089163336241522647156667422472212673775253408537864787641569681665667158003957553103932640737810078678230809345055383873245035123835057283809693827633440536821748654076840427378677311001625497477496564078953316754805486863298483031073915777116907890577643910377930379442682011890880200573628783898717742589148690261887285526293444215427407772029147366306606359151815242044084219536558955592443991765684207736320386525284889296228201270617588782235226695325422608120123742168256279344770977975043755168519911128859684445585825388131689525838740076394053769751048529479195019344530310954539527743270114667282366178738207429986263436338613215284055973418504290277184384372176065728450175311411962036928560092413971515872742421107297579277300283874132766714934624103276317531235826285270890397205122236957121692151040449037523776880531913169100668870728435882991824046445808314050240653347887226474466276132889399851436199676709497388751375021083857624503425940130565854832711669193867700322971746469601417447853347137723679575411839830618854297896233601947751263423494670988926356740936497529159065595428385809598693328335624028918437979688221815149126858261213168069322543027577568265033286922900115251095212331327420283353422618777513040024250409886687326332987001449522410015912456735506361141502999591090050513210256578209495191992478195965521716430173501689926120988948882586275981918583978035824550956366339173394236027301008090394066910610415885198968298967464539943485661358523041016013310929685837535529823636454628593710504938316325568898813539663886742329018433564972343386288218770271917614919457252157520865741073516701366484374944223322137752271261567758775590210128926316783882007673647422655611730822459240824144497790794575215589025334607320959928192303234251711392736909119531626571882410447205175896913102000173566682231455469742321540672368205751235882489810603707166459481588806967405883435710238908685377791890974677605274415659865118423820269659743246874472809506150852256428578311106613113738862065131246999672016715691776084813722838375098319052224481691871249727154773522164767263972868899813231342037769239517151809210026371756731989497596370168984859186423311109996539988371734653960088343081118607063808267198193697838181560103882478840913282103557457500867148893375410233350054900094888135344150670229247346100193511588874514422665645554005458547787079464189696263630304922201844007894899452654903316029030595475019008822698293515198296938813132964812767537557599250656506404434446696926396270109800840067719294741056216987926278672828532047631383884326035804144533465739904974224154036583777176878139060701895187217792814220363855845713673524022904307133898130931327421861064700128026580224907908794798664133890934909989342367994058751928495691893947106808693949585546649134728407328752866548717166785106488111586326370003958281691587087787047518358339892065542803445741049271861497955941381286836329942316367460041659963541681669804752061116256125622542268090752632137882414690273832079981884062236663353395672845439419579233074881495756428712818708168707085102091954649745450683899312040914581368099199601946209947576024773797297679958240358467564040567106083916100599553731915217296907375068710241524707420593092704668603924093405837340926273965691034855838299902537861370782297648402259992657773601156156648443454771527707479345673874887744693602247734047260549161953457518217013682737357818403178240274072902215052905504339886371811411570699016657006455733527886058724110077451094008464643551666433040710775014915070523049277688829877545067264056052465948226529296932725953287639157311953541812261652854778691747263851702787809335735038472290360313369759820076946541602669580364604930041203409628791376208120819408876466108684154007086952521384884203682616155787406769654805332024271694299839242110357893730529653880840973334207669296204045878495452387704416783392896052875324815193460401579909535485696999433304891396884834732671905496233433488273352412139049933576527121678213726136142090893807329124253706725093911523289139765151194588723491938607848210920711066023827729979947483983456448765590143377713033920849370050960687349623232118162437870983848754569363853437911975963029663848331262619750899415318059075468144962963997589058613799618087017525120292643581774629046026238810203367037883249086688611946341682692599146636930416796712933736904099601518531341482233513799671173482756008022451605617005838637991172927255443151090918600826881176978982607081619159027748754678568000429481869437814069600510361150706411787236004306524246089403851013432111888452841942163306391938965902016754077888416487271564111596361949253176275033276769410991104620953577925051062906868857969588343292947131962753708388168028581835657161025279765727668775832468516577764637191076482653480067820491188502173512478744945015214703151440554177736254212006634667010703143023538658348644373738947817726565477083831229093783155619160190942125918311356834504443957121753123927254661228119704403465260875649861234008966300737039256413006030483924390711541810003828984933954197269581121904861964662716560630328025325982389530943668008953006949160026416471586768838074409651727307283169379550946911369870961902402536980056603102318884624739202694345487024361647438560331964366941421783002401349785240286343032640325926616327554112288951018457941646249340564637873789458943793457019647123940552761851468166565520854842625265699803089186296731016606678189310772708528526473644869937089917972694746357835372588170850935224962589801453847006055016246791728127154097024960077640387921406943186048866896796907937952935657463300423621234957431822153254924868253188660233128941570551664843732125090481678497049396603298336242693435602723925892808613349495440063149085115028318381851828175221195928156974868699643939370786073443225763159160645008590764274764219328808854177038152918496713871699715172480432984383297141233224685236009269075193672762448461688166066419915681985067375213998469952359208387024717048388539397555750259007728363453564056803922230550119878793424609628476323366057619645322143062177498559287780382769344675123997218635223376825496634846382743242552172661620114581018340922791324278922541197958514835406355626393518455612553140082707203167435641187132848927669850416491730354744775599715938999488253136932531687452623196245862158062616197185012693770722299679577214354434255538346948231472951009629502076330685793701795860591297724533943970706424066152810218602801490476893015057804902794037542113087540908548467402450339701189032553409960807666967252249282622446732139728615035583480732942558989322435381515400998414579290984513826605477871568473258876749518358946071687660340342159191473944765039291128344217974583974049076453359372299535303247456324408259709903451242537242632677611665847293380455492700911170129818684363421020613830597811361690338328851380023146319989163694727251344469391316048097266834782999787691581021053387743098816039876739640031171554144077013072773802102469399990416676275187236195473807504152847029794097631105006986637848003286074409931436207958896605318036525258697264244691089346666880428444107791862081346604200308871306822411154244879388001567251939850662043960271019813151353780215306412614122371063755767428520714201572304970415762736083510287075634089705664891260665841206900481485613401811965945693590480389752417214852995410534012999194832696735564913570593864921676471815532201526524005608660467675711401426028550217107615382941280461261691455321121074676482919120743636528593968943871057863073213947085154451274822458632956152018247736735325977161000508507350166393244531459030451410468560040836952056761787710268843297930306115171677410998445390764132510314982857564682193808487173844173715610466347264966986873434983195891894829421138085548942061014277838390982624175478064264695275345067248726010090872322546378223709231422407764632417230525843777324916842355415635900351714239535642287263228782211320361845496294584719364099202721242647937454271246978147599453856483821036818919938015042788464710036971863814429369848919928744317404085756049866349075845102933760112110486210749319563347059064583021085385524640967814969140255596467578127082063716336596083061168288194418018541946230443019772306032661948602558942740977101992772684161021100049848716686164322988250499435101657360395619334729092237793257257920266287563751287614886802369388586623293025262851911143479134693803565855733411113458613818590209857285396299435766186265929601288546675142652504985474264164227494487674386645281817874957961999440432781400345405120582891795032507941722495789902324707263708009874963819809622682093486984884609258795705212630738907901001106717322595474185430129353468800663374001489944822273928327189375785177916917660537907190979341193991271584346579698823048162752431648421824403724056458840259351126836948270315362311514331185176074704981165776799254542298989573933895778304000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
90000! 15801191540977953714925866932842147140299157735104187236316559650991801816955015257171788712145990387575597705575059200441450360237997298907725936479075529774168083884054495080493239700067582272158346875442635741556852162839945463993347572069610211787187522292997288481075945925453827691808488685891448782191410057135862415889965958646737247852455598771996783419227936484783445788403654602869499877670018788607240462592208666695562396766363867771052864692743282484025714155140314348855879093879550351330013183177780534177209280204392802308688322563656767601558537642503356808411751253680792299697334366806750036230989492939115385527145144664671304909322280083845643809271257251237354092452133658306596472472903134774323823941939055262752919765644549943468823589658103836445189912933861337521717776895844556048843478037146079633497586651256501108098263362016408794444309122637089840688981873216015097540148610155950328782858039351420956196434251803179911081778392764572151239195134352719396121818348130712739258074042471817740374720567078685139334599186954192161431731249249364800395180733333584916039549119878164785293631578250617162439973485002980040997979787450925019083771775208990443041386581755500447392124773232858165907962118599641928431733384566468284954538575672317053417096121444245648652615043801374452852853230108029537603379933838979142636960747364610856395008784938785031407141313519953090324628637893714992514390143155468269236569608750496853900654161927508528549118130778708180130210242292382892652997228083739768759396371475570539263752424989776264831939459704973564379619660280542394004159096754407850375940500950936911609109471602909811128692798068178093289705203247650535317298508927815024627904879174397029068137970269629457371132851744852074319484202702564264505111372628640623478974590521380006874861045553484879997827938871621830215727821980908339151475196804735497051671988913871986091600103029150848335712005919546817954167456329522294927362942884170951756316519888972141236842531624069784258981169723284403820664575218723759460816122434220582604542129241996889175957550882862798663482385098930601406237945752106519531954723814083541144764075968723620216269052927623471437634358274485810852401946877561531824294308441178424203938918728972358538036302094040240538428783623331379411107402808892493491176660391984594275351448467605412129614123053594765699311989585721808318133966397751074734549443094768768043050883780812271866474482799966924844873923545745997267044189701009957713393291319401082230409917282708128111245577893201632702871617742890448107892349251775375146517228262008007626381310473107203732582189617771940184803884200791206820271992884084161685605068514727579941921356174954427784452549096806445313966003722478527770394100987249834200517570611423031312677905860082908617172021993482105771907114019395376248611803688504041574837305681641965579460290067028082604037477625665830083041291001915692726875475773085001391727854514017695808258972661345634378204086328846100736969945349572042100230602601572878300715935022953723563894283733134239285690518676478568436937842189538899726702970866987936934061709311742365286401308943240402960507306776407406825495570218925377961379425929363473872374732876853877743617322643469979215568783514961323253885915509514624890240665882200868774829069155718895088433746951441894080896813639968493179252094899898227219996222438932671771521418246725600753805246770174400151688389429138850706184124287106431707599166452252507702371041076648705169262228698880382185911383285570384687537297908148083732608342642150056130170523256196169418365052763940207885768124261257593240641803152102298327489100533340425094971454854399023665464059024780974713596507984851075316640438416653098981229147605684691882295210160582303531014305762864317371049356445839182220130451133492908347057212355615725448494606055876926921700441160855455976603167562316129168841364483763841115263033379570019345553959114370677836398700939871291474366305677977068918549122277604698692520610682002853242363860262123855518794471606254954173368293235583113921675424665532537472902152973617303189381867148329448468963891211602599559034143511809316189039169248414334039889726333899668583950879475656474808776013630110230816588861706080890564832066874544243064215972502823585185802851024118797915359739591999034193989827419703171535840849695765480516483053135266138007157467177803703526871906758155504534364148792461114242713129604168161942978398699473602571827050517807601874158822219106714476218746760011160349446561328921524198127215262260416532412953310098021855650518642992108894800828731026631238312479038283162575520006780155242161055888961800667633802254093732744502896093886642363739295316512992342336327993368967399888952330999112074874914209803713578572132661583238550833631099516241236881393113658172673290844333689099748398329061220410965683345389861286343600669899272708173911814083343363175298709338558617921650209039100754477735150673776457528680156943069006286709019398040649982826019128555235315093193931226782787441714158415009680993545108641442758085220857174201902855482025058081169414812027931987755035850282786512397142237077748765245260631161172275370712656056544119653114380085106724317059476710238832518852810795344781449885159946358862330939706963597402759399225260968805605182218235825989837620804748765033215762654967274279296591391126698677232458258830597099766801936859625437900914231126341221900617020143685135204944768818203457395651647039753356344198744049274659329155429980553353919243740021807313968398702657418994005147810794013751323432915534983945511906619010108686532611218807634154977504982643792728992429250063532981955796253200682781617324944934441813936109400092370797749158171780645019678159160805953973013297887817992106354756526167337752584675457952259245511401912503795343054441313692063159208433582497464070028947222524439834068460470094234704324528768285147900331789783844664263157148034442653569930453182529616300481223842853676003203319753978372106365381264511015486443916273074485616238702774277914497453381569458206592840114845497584034851681254554632336739688233362902133267023689028139788907118363848298320472349141991765930242445124120301042637769750411604585222231883589001918287397116634543327302338094218984075497524958837002292099851656336370806914390489693752386941610085875189670968073013971597785686192658629358912942867768538427617171166216196054324558414034200180585385805936335509000068323941258701756970300594577517567387181684054622385297593847064813346516566314394468845824414963461982938387823123159434863023814457023617506021672229218691245046790783845005779434757885332428494790012014085270551073845367446881241141992041209152597009339679903196269136331375963606333101019263185411496266683785351887817796372075264218216231995353350263869348551885244952126386710794571909388918814516994980015685939791142486220030558573310588381241062533294448529468494120925299192176411808685620194526786902370534153530217050911821808432292700062991704542758987236115376790030473616251814648784244105794341421001837346030678796793008413160242463332216215938565602452448126284584029173202128028295995202919398214218031014823270803964102460982294037963618905166682080648997176826603603251214474505736876908731884358390410669370857311785264403359102967252079747005245759661582071962908842092092288443182404918186653760096901365459686083477202655607542897200750040031773216276878006751018003145083339581919912443174097782670785920572036644810263072141518742302034406095612678858974667872894669810245196685293178365948062966662012092744855927822589047151650985795779187660086028163740544649562267986339413441558197651694248110442111566255232328622166583839428325376079838752045067371924637247185753017811158009704964923445108304813108754892443415728862934689183256533922211939487283115212389213877161646665415385700500089339143256360889187330879012976048629689394769204057275363571629573541404842270216230770036192174967832885417254057564530585013752516185732977384082763160668740210563687188744104025540552051492625644302135164638284574216027697874439677781514730247208504564274033950753620805224712617441779881945798611199687271122602508829730241351909975747471641294107256616503183171966507836339443413411133450497741435160403309808397397887074408731372110860677488068482248620365460611119930255622201622811797093894471586420070834647074847097863930130939170912680996950840817705873559244244431803201509780021889257989814378037942148241828798988613784321335429614465269621318917736117589818505303170295717858043099713776904374699509233770677044642439665994943797444382720676756026867851694482433947451075965048526151953174983028616646469097955985172222902965204747968985584474937197673144291393521504527802319061248701137704230721676749053945689489236571618940826304997542006085420573323117171456629059286664443151201723980804944876289857362448538870416547363931442160852045211037769110724845887335189263091613756261236042148528693300375236014279812293689496162834544514092648308239770497801521108249823244883041497671090081205759637748992344390757581821706734786114776025349583062559731069486448520207228956105409546390635311509477118017007774653684102644633633738058787595622021844133437759203024849874760446161615369193600164537441407462321151037892103430500172238370305989103769876096888075597321025628207668212708447308767727409770182369293340659774433764946634021699540341857554832927419889694624404754506351878535937523622590403920070006602791475159047170514110269947862324527925321667049205162813596224623662826956583767766794071511280131858930906670396310631755350390972655044850091932371868257115315646471304231683956761989131926728915976899263198590986209967854281339855343363631081384174467345388427908011105286499241842136779207396172550731392671422806757383730045934288074626074054909937767841288222063607320395500246453872090310393619962106443913086743870288013535074316831711546360930169469324275307242268547774088364575338486987384455223003595658486604784905810576441762222558269897725007469782857728826882621864651416838052479060419529724560386400899408220929669483227485409523587466544161499846177366201487353997717239575934870472983802202185265075376339948757101451626336369653701838299612691694821805097587625548647477256815270884495936186760833966114091239883478753056585014792334105588392635693487246244643647534217808687057023704030152059347734539551267049125810029169804789548050509883428602268100205858363185426448061000545212926088488457670661384274437929895915245828134010940206851174087941299038248550923091812788321525098247423033220283429093761000038232691776078540528151133008629652553453983355380870210081655350009665856977131312842578910967510687563281519299936836719004131206308877286000435695969534056669882867039890848195890038513761062707008592575328731394487383242116135089937318661225629807996384995728414195405573936930071554077889780192892893822676925007365446036257356005784161480528964007614739611254660336554623841133791178316089847130440475771008452439747410257441043643185047036876782054485099058878716554608392672318087754689488809652900409937312105215702188883486580550324291355915641201875674592923522133077084948974406906627806240690821076781424018001054262051334717636519600877924481302084849354257453389082548560883650879208015618150948695534307523587076407151045941044839409094440376504573659483219879044875660961875194267420629326472557506340908614686862199538564881294460375583168875899678443788186926877782925985873042582026093373409989514060092645608910426024964334679454874177408197551144831353297861175909544634014807957603018690961292939405537959771738925050666397155019953792621317715595716453557126996731794065890997305085907354206172085905529092262861513847234889518035015960201073507498962250925740729000238515726710673153884362968616075192773114112318179376850536236306795237826715306102070066225995797175189672450557190494624870770432119531209794682524570016613331024007638952004670459992337937402821112688844904208496058201550469886743264005652659034250546209421174440972238310533986023773439487364647168361243273974359475229445194230013259251859648519172745423849374229272870689295025092194037725844700902593495045365725467776553126044327362723179655453950564977153154203421340719106624773594493854960241011032020570709105835104593438820929234113162029866325521747835640978209567647814786653051255746626751923858050477994098256988246752649644937973201856594767573852077776883325231756566716886052547355513713043694393182378632698758299137516996874060006559714165768365221380045122874157300945416050649890905013238634408836444480596021373554888534180310263246757868694764745854756537434157537088317304107876770754670740619107421668700761645060486470448217025940671440059646433512058901696890609212045019897160754133647573750412252436753582705445656983367389516492967032068296925982338729429107137056356133028175661383804101184203492527205931928258555172137581611252366554759326168667094983672410321862034837519325451594810477783836612553091339721841015070630083453193015037729828242750079778758174707739221748284389365513767553036807119038432910477421538120139992862827486640390103254696721521817476593704419875376320501827274227258304727757360651473297222106991087204532829290060038411399044160686860035392546014604672327648828833021254777428834823343737020146007415942839368501799146861460550788317579342261981377777109580511727212397916191324726664463413649035200040143222173240585433507768622406411297757049917819210556549509753901625014564921630864523801683435409963637200613799248585216527483221928374901651380611784788343046491559283353932140599572746185756385235551680734510753377888994566609800832266105283741094535452048522592202690549166966626130356507952450519084574524377382613444186731102613942219553787912818592575565475311429280158304574858352752336149344534304733905091381087912264247446571430530301481858675940023009349181598392075953940342051180445518929891563988967278702393309667595496718963880053805631717163425394182068617393796117341599014748609143401375485256121235184378288498117289634252074943942984450411330677010773779156049136220154840757798171762405866327312196343898415568821248690055945748204598848526881360313133684389484424973356118810694036866930189530662008405325270720937264606511756417478447961870688720337051754795604606549002971759466887939154213224228516253298583491818888877595421886639616851093408633878394577800268909885590855561989426666735950330089125371902496770431644441862639236969211117658946163974818875200639540528926524651087179143414256366251840418166681637383571741887388350551769342806680715001838522203453508029170565392259576918835792492511607200253622449783138796617896131468386259560492587889881608015979283665125714904078728785306335538948690935858364299586612279312057302727330679475162497043039448301319663162694075664127490490714221942539369176922188254115503944160513358116491083671988971228273517474915811563184080190593633485076973848312943259450302281987919713128527071338217960189632402039602930986682666554831409528320284732666545277313351022100846554129633917528533602446843662791846084573910997095060381857373154651888731862265386205364052820825691819463494907646571188424583373027173584863730200858735418144508828955569998665425093154354922550530642555702717635591411840157014976569889118578569460950070114817892085896069926864478977877408891193241167935843251429657173850053676950597772092099630652864348852346484789852817529592408924890018785873181596794387056264741913071147164982243086451446559130983972315073464021550078992671239564535533180928935508006276052802746998816585475338340548138689292676051907081793568684602125530810413145578324605630601052539501451324598542923973130077564725968990410047592272937129916392230706840132234335201475891149011653045483628710712237355503161566738823358443357092905365199612164192390880687623717433213331497270139992044842167351581045002753691079627397633700171418563326535053790196660928729767083478393440626417270887589189906547851264312474617615886695932925989966562846704248485464438421943748284218066851796254050708899753217374798838528955037050663990334921946905988837433880424311443935306989798068569537062364412666313586834602602107972664921265372537745205122848259036290022177660977470848787132620926492847424072892267148211939302215486249108193162176537606651690699933507559921858419599268755472742645633004042986623546732564022528559375125886554067362660995127360498021560266334497815483792016637848446773524813190643050733443228777352565552264201894312580518645060442338167702948529692831740364194478129773904213240489284877597287829619533467510966627251741936355435785760989774777356100130883732280461061545461627054278073065256568834061778177112336820254093856910357717408637717730614610721351976008569778295774070499324585613026829325906639415194641130287208716052478632929900754740044420527534588079178115023975279340067540760091476747038166690710193031105624869690738979792215360720298176701051114585288002073236321103320644855260282303127267282381134288089900524332402220508146992402063930571071670551867528364815268007471903042549976719261019934783304385387246300320306140444792430196419584670287998117881822582079191335647066944625441176128512557852221265078319863949214244419245526090179988250503981120973791886209530748577549116338198659431948180504455072970902496789179369418520920351141214878239082539337282254147861042663285824226793000958882307356981545492342434424835547397157239145793634411353059099912685815042971727980258494266528941066527745476170514412659975910744114627365224868302969029759251699794352667016557967613470430152424356166009213391241394872112306837518108907336504335394880741564642893180393105811377308951170831007533642021856694582466282962634416331341510915951205090388318855234924685225892672966129590477691268088808633537256214563793922877581507171458113356453639210861948728634251825816391723060713748161020181807124543088872579606213787713203260895901812654244244861369471535798593995379657695064904608035153134574237919671006975169416506270146355954480148869872570560392479124257536393483327217409626240843857142479789886872335562412947687388908140551879786231863323073303262759338312168383918436929229936124702588954583229006225470359492250705715352681989330558835810808399037045278514223648541295598660330228239015944605120115869801116254789224108401357743676055812134022303393944195895831597535868349691999794766051476637350202376307382922730042010792652880074268390640627187197559419804312602784724699262182942785136460282196763251082549452443111283405527997331600885157524604729550268857017697180580970353132170659869479962689293941772521348101744571462560822513515863372512050165802988300596646096550580830845226214708090415632473890155269411652018561806713639394359632301291031175456583760166109915389404644931727408661308199135519274047308542757729712165245574610403236041179478205262564872986373568258276162631981449661730318647953607759713768856964209405347668450837619751631328637612575604691931119482051945470578084443111621818178416602733363232425452123992603608923026318775374643196045208413094400180138397151402992295887695577542749241545015798161109529243244024421660726686327207486907312514183212971171758975106037115716061732257261657425586292855608540265066394367431210552026079179170145950724482229665815546570300374703292718931212629517034837851309977506988141629453333920373045250115313061222000727835454082858435512139814279769223970725098973173139311871233220414542073211670189406895019588676682205473017798905819093121605396679149010737906652685732324876898735747124196574604412041703286601635462563828227778079191849393236808700631609921299699586010867427036063106849276860045426123736600039820273821222529116042152772651315813901458164048933666467563134825370931444221289903615295651828115617089709553914810298514499353755561525732625343310713471929997735952379910458388918004510403327604030830887289306727976221178375424175533377491452837412676022426146865114150471628848920174258097406589259221568133784057141244658551745161835166352176955110954027700543520149082548677802205406686719254950063104331205956129183162979964759437912136508482258200853435567135272426006867412062349612258245149770944201908057518946552190635540105754822989658503824569359647292839992334926915325876921100080505351822596562628909490317573196587606975881473279701288357082952808022725231465362851210035540291441478115503346900093329487557066898810011086835034651166196222163920591243866150542089904700533184937019569274520891330624894949522861147614982699886551655825495299373275229522196145679838506252226415530763510057888078948132681533266258875853378693634948297029931271388329320263069697372432371599637221322191831641760681636045234763727097127899533368634512706203463976267914573976502608703573409823137684256611845817257861434672862935256882221610456637267989120796877195545693745304909618502676334353978953208376909717952703069313766846531523152375256499663049756191395040916631563120288460669523050542894446620982016160027654740437721313253835370677591686343629093049031240024899535367095725573328143655173304227487468467584486050941111888255999941658584087684863935554518089304497807812419696702597517223591633416362250994083352252790911966884959856610034795790144054714066704345104900594270892871531509183798194986100183893617052245069054691417379406166644860774087271287034976061784510806761441291930169337459956008249613405494961201248306321350807884588470047257625187049917810071373058891395024259772045325397283464165963095180772626283182993935736272491298587246897534430331055635508839370178373226851367619521114480339720767459293185800060457322110074551157340250698001837944849160291476136383163996932645668826461979759795393378310132241144494826765652876051496361992565355151558437703714616328177638012532067425398950992767187284174431336539544290974422047931957858229598847425298052912045430157022216539614896919631463270585219711090522313598715152614765273340641891626997678545684002548327365592314752172465544198474378994983546417503224816383266897661525441338671754482760244515906929081205652968075966302077013644076683776270199899194774525854778116006908859002209828618270716324700196858848731519048706206020528388958113386450614696963790013587191078706229958002583170885175648072076611766934394649421781251471808356805182953494711789707140918358305515599547300686338482667412610086924086325764661757557726261127308287426074453051956125609494699397365558394404855939601305516526932201805413557058640999874810582073209605781026968953343185045998222839837761840377381126940018990690959136729418470697656065498651250043870874028563852958272442940658197416787834501724640275929513813856647776602556972837569797260547468898266547302344697664604348500760093218719048444601056375492085390624861501586863606521897823273563937581335178060033326890306283423062007301417694582962224809416892739802876504678926406860126143849182283324558785628823731855202403466937223292049967038879331531244301364634687475639108300379130180563003476558669357888460899882773092149101172858995989001668165243017550892213932481186084053500001494271869663517456417709883251019248277260842560811956848116260992600018667268637868608828168508135984110850949311299661724063280739895589425324362979553567636339216523030852733929403987034734545435451666633628429573537170526801252612362553259627823155447038954525577594133037343078282634463642530446261041383208904919041571573060613270156843770655144119138058563633118306144600019682853163583871607853926522785431660053212609636531760398640519530652577956589917260049165950005994881918507418654846226629927457015985895106415294289540122132139504181770198515580984997593033503117667809057601404951758376644566924241698800407965700841723204130987843037067918471663621709788811377735804553582541738705325434075428534396469322580230748808982694418022970934377793400455746980327243023497599758438507432598642702698729102014151982743456582295258047421853314834841781104586034665018979377591466935211002333910067330802677349728761444683411434898237171413914564351727133042287356193565451866148320230709149676239905252602382314811968136109079551748087318899371436590405569642187201294357118725823310683040781058496165845213052456159991400848367433918832759684385812618620355212420986076398207015857268356510883906097402926215478908992666261047024798864459978622863033901884810536956952936288173388281158983800270075666334197090775028141031343232171595185600065731793897912032235149966857925498879100893498044933710674002686157465420565733858496040053767024926533109839556630610346470442022077718039490496763875639317211178352761507560272601700486012351751730730131484256211069732004213614556177043189549745544654367210246484317955127616714139867952186028103144782741689011138035605442471974849975191629111727527828843430765186091631974113285459351164770828913654313174302659007935291720094268676898828129981788585244421748610246912680689963703619657869455627469490119552690104836645279200971776243604425388879415710620498506286870291515294978636743733305277805764426847188619429347010947115353146772429389958837715863657676889000055449953148213673219584926085682336536019483384583625344917271920267023964219090402472985148532742638732927565484083853330335622161850882807557278586781591985329549735070091947520234582774847365953352905508500959208323761410916700826021605154394733832534710974660493601589645399714537108099470616187563898527923220481239466743743170767587525173099764198950712985076358177256640236897574026091646160534545193149233824639646340451785134395688109008177027864706328793233102818204268075801942865831125047957977879352818349407789380578136053065803578074264523642708413714182275332154163947908697445022600139127251914715172655083473664171348343565630783628144618148602661700488013229361359440462033504101649997428073529638207386689164576487869735246664832879889890444322271796401430400627677197070139074593716456897253667681615524258936583346083415994276011787025498959694149394044981645170537480777926809290023412604904335164349248570469977006646553879099453029463940353711562730543719520132661925494962300559901277888662902942311252555313307210994326816318777168284773027658639629308142645543586406643721152104952390547623202058541127137862328253245373840549440858520429462893994539359473160972882835278484877287441615443705833712215213778551695942056241843150911565435641136103371879459999292206801884577849444602230686070998208246956276941049053612113034954050988461641521429075147497763346318584189402045566343934218436097267537527645465287810177201214162984642385696221255199765430338883532237269302315223088372281084118013148602105100715578729557541689031967903777006818067049239778507776951595738555710187490737170834648218545274515402196768049668959140597732381618966926554235665118311829184566039293214532226257850535235678536914571808100061417162119413427132579993388230543825852858914189591759309640086679025904429541274880249574954957435393786887359918234109218259329885044729282715551194302969155566791502070466980208873183425927216704727034582820588807005200314822737502635871576773155189674465302381406559027218495583287874612630649491799092417984833093941009525608957370227191965981272782268958194980589469601959364250054812670270253933874340487235029656981280014079807635292934724458453279220254234973009973122145719901678374321100555481983497160102559456771464125809938763914578651193657960759228791505665076053824732581184155530372474325761614921142202301200729736777096795226314333798855043420770414411737456863577280677857146353275723962615286477359274083669875771582679058987636351708429646650171203903693821471885991270850889038219291372256114144499058219193153143489653882976002426627347157669923335965042205460023995065658143251439844831430111225717811206610022231322127228483763465691476346763497627817503883179721943316010976868005293584590919739822821805916889087167672412239480166108435363583826179322122099849904924728439312547520499283764911931799879688966609719176795536297446503993307183485805128150526839764021188430660054233698873362229070712605176646209241133358378511764455178919908287829139399873279470954794976550384956280624662580900935410656374146828280172629747187855385327074831618445653373263491414018726793470885926289856147577217515977608857400217910216514611063901950084682425450230514648776936239400366278241837803940198810423609746601272316273641039594515842938391191197264342769479024494187784530721071799953858422796361222070205274842134926946112377730404386316335675131607603097472562671323638250866207375945041520417013921520622500786484924709477222939309330411364904288452559786383722172532069313264827816545947861301117039786230305614379504852988125807264254099475530365967871429385334994405490634313994710373088493890907900014244870174785623178784903511125768550329984262583126084536320202940580856657206360705621410242928705362407331936248205062300369820905209327966245721668948966097161784674643974302114275696970303288877714113977982851192866933620674046650918204617938800263020804514247798348017703451484822416351415774032205823020644413299630187490324285524115167340621085182800313383002746915004074580630793751917319591616473104355372862653341233835586801817594055974550304091849240522437971925221198748455107079063701073021809203920356564097547615843511076653269276210002380728935611689208719821737336584904152878776841904952659575712108861411004577909368667247239419243681176033227337934889146233312087824877432949753154539195559773671229403005134080171737845071123035590776634690653476170337307204335001438701962001655422437900060504584085368888254531520568254321046742195183231813954386287645172361234896952229802433771631563132041762252898044882699810038259088956286703446415384670589707178838826241812391582999840435265468810050150457540941008143900853576084962153470699069991773476605636238827387370974744284333725377550778877274502086467372197877555054638270069160616085217702124248317066101236701534463632540287453303620299508862541187745890474194631835534463862858193398233554276390299351109429044815571580146534987306171644301824612836640042170546293681549010308244184195881524919778981043463252830833396737580325456027232920667281484606528662635339300237436739485506778473740677318467789965067780288181895873047883751517210169626478937487463983316683170657294997163829542191914081276691594784084622191529318672943128741033995849739048221000984743020902590362466628316560096680573050651657795254930286883469606392250388417949840390559891759431877738464685375676987245874069198401640653518551989857175255366610530076755227378890966319528525352443415095768075497302720708433151650114590365653292618188367538300829592227591670138170709540900030161802815033142397841540085667837536084502054813320576036617324518493502479577949355308744427212698530711512387281957133012282251445751744886105339210744952220867992197331749278251875398670124398296424130027841678441403756445723967010260279112215766797577174970745551487771907815591114832800199772537840490565805208653512346701034217250901821911769095008068847349789437021121643826763037353767139705731707480912958561808305377833710210938450742974529644116246623607886400499161917740055133372206137740149530245201296752857126747933977651054895325723453237166811897978981946980208899417516566132092498661150512996905347432334092613392849002943852921804015381497073150262617767683937533026676872081281411067362122268914937285782153410588710066917948303254176768367676233970772463615213568853650331834567697038313114608180263873260244740798857744137191543293249256119776521513439133076117743121698168547374682672088929663672604074223813194589262992668836766438954644726866357111712716144444369154120752786409485483570756939654388604975110602143953067349369333035067815873833185433322278466031673719982726962000124238831337741017207128093460664910151134988573489644619631205255740590462078446440831220267538771584653129755917141510352210509547862092245485305067949488549197487065044914270909466484428838370047101643871404813400518845463768668251724290372970362890300274634092631970716387728921450227052932097716791033218658527509790011689337086346590257074446384543112192834197301850264798741667332374417084319120726006401286346740202568521859065922616671691198529211637509594914080447878558667936318274460451323658512457511294881461059328763159599597353057717182229120399896910748402078425356600614167872454310685087263220430511384167046170781717776546701429856214419629208704944254680307363587253840225054151041496813819893324845942603425208826936486300540429375341482836605330353854402011899444947411174167375197679498926602885378070338093592254229406558063255200916495671782782215834743385448297591526186938308425453905630950915760515575653340054555013951885709294825391070532303591754270178539823123068718612767530135305324119736041002304241517666656272187115630993455569552606596633054823320044634031162562532294296481673831894678163881105480132577782483816788369401449561163958859577709551568540092916375425551035026303841005469242416853361565564916759180285209657795434906974993608913720608993842955830830783994968290035622952952565148317866135035241763578382649686315140448388204867379073163721833052963194285224876385223486285800599145661244772843916625608264979267359671213295080653819011659720101862014164289033980880277737648168066357939539068407128588013676574148164945916294590049389646639418362701744289922005500702452246300228310813902510575904094981028522319737948798974234741735630058231776863280062135592203448312696322057132453068687481063864030866639551313360035052878264697915439179664724672830616587433420774856579672706794955954917120669066286191989712657337459632737297337305350458567904652944199815164348455028316725554382394653444455738500450869039982281706426259305403682507395028588291944511200322404451757947324660919427058050575449198396886825778558115952250259285329709503475158867461560788462795566613636309365552766665318165925555173701724878402239864506220152656265422391039676852265332707028507397547998574886057703510144272955573910397943929902689276509153602511564058025944543497772273866958378374586729939687666917714963625046780239612610456723848633026591223311873200227024480514431562722331462921823363223898988458189398571457744082000225225504654949238490965551133788237643301403858655700319310814451754518972712584044090865484503557561024325211626805626992907182879957547267270091348864585288582586170512830688235282268168403020694791720073910475080566767569957574515009063028502121261902093491444110042788814527177650725974589864094981077385165669320862898212305190062485535676536290130338120351032276456701778711058900690654219380695367131677375780844873059788517868181654948100498260011801283679494834491741086192624432246574975142840394246254806988022590201423199749124236594814816752501560336225263019066936973673250687685082687066582797926643637601156638881802622068432311073534588659063256994414572873804110527946974753157642618230743359769173735576101129530140522506023985661480786707051437443350415043275370022314224142256190864950270930835932920388269845007282720171749591807498635567852669134373772831667952876549607806258204089318078808103373260379748770051075372894669127775466495503224811155341783230707082725068905859635107819487425674646588496511508960531150225238247571886627898470019268541913393251452599622780698866608913005967346807081463261912678651020830743778209155562657323648911218626795471216840617151610144928745928466370639054050151175564908046341263571397616104174698509199200229567322944898323181771858649764985135119545886304137882559848617216061588303834617431139521359067872239805394309925721415960583868872601875869322390032112580889423396014795447115724577947181174507547202948768505826826818567243106537033726113069189620602496335447909031402573262312601101346774831223157907713390005605844302134659460325690864892522840336573812189044067260328497961232906291726303882747597093466283735273194201928620078357188665698870769912748638885299730750763591661587571026892351215028575010012436683300621616793928649559546622717767175727787211388696747628593811503540833768758711286968178739049812569479345476585284937725257256025374012951407621569747801770308569269928252399270013494347991633776520315318777427419452304648012757599634221731733277337428999722679895551020502764429165433699628530583627059993494847262296772469831003309614758198391597055968584960133985865980329700849862430766075627066678084543149292913645623025194597264446956199341184922739913258103784488122910113530801282985362078646419811840929092273575468952641984127615870758519030449921922340317085969569808348904696096124494376970827022072438637668780089567764363333412649965413925730665077293926658002731763278138917924011870587337958311733091895813358580311766431974630314933062028970436518018200901764954655257249461623846321956119455955496116297272497277296234035353383242131557382010428114666241004623507723377128532302507788244451501496541284447514422263245844238246902844058606146575093317623435366002778538070545532433936085650414154122521643139145965243336572109042757225633422655710050152531400318829953296055088672894626134397844223059542777376276665867639358834800120221919318434837352974173999787342023509881545789468051146944417676905674243460848194164233189241958942784461060424468972766404260373491700669213129757939359324094234206966585323792287433849414569498423275883750660044121799539810712146281196499935597523850363331453509847731470574859859287093453593135413732307073268396826305741718828635925967568315633725684804563025769972203859931813424092320477564429380765429334624687613777021182886408638664431312311083719211584632722093793360969469751065005159141096333560887797977843038194195761162293006533165328425235416772742400994269742225093611007634584455059555104906788469821618298671828899450238237638716593734979653654568104066528944894759020200547936012760856795784104520674937752793289430192379533554331786917976269165182223532262927571634963593390086804235365671674636969070085388881226058731176927385092991190023886827608687594299636431343955656664406811854463671739114434523428651063047484377682109904474958967251743026685768814466182640570174349023100880945073576774688912877965969672811460348257615120288426066746514356285981021344483847825310464544377896224356790665537664610861549567573564558686531440776391326157176232684469350537974632351487850448577076037202395205129320384838981988561086789320945857648499822021209359374982219556245725495499254741197606026974818121223400448741481732030082465440484493711871278550703744857986233615946261697738061277936664884192190238493693560714086760364713690837992508321920663819475313544789785576797075207125235128749628281540964185787989886350254601842257077667942657914182413810834398336159246457610138555623581844714349660030337904001698673597970525906965293875896140600890176058909834573411032454343545354006796069218576502437245159218304979356424268058173194774594009480985645340055908306338279716686850891836186038540803800016935852932515323640247164010372113488879643931629396551956996203284661280507913244001753909234410888919069437343827642846672947140364790048632649767388559393665232088392053174945940060010803226793270679164882827420694180235896260267122952927134134976557751395871233166772249515547306238463188596710530988805832492894833094229157334922829458597481051231211493006703171893079748261230935939655002301410803357102472521493205265482455057662912753869287335714120459405977876240443929852168733251700020210105950534425935392693098772709290240119450940023469937816024118983110745566967072398987524482989525561130208260021718049954046841602179570301616278690975185325423929331048449788180345885558429397827019819523888023293828810754003992874029869401920056347226694812425704397730401878400440311204998801834916317902275000882381781266426054075022128920094794345932733831547381539340819950714532534323268542671544289272963309556616789763241185030553653481061562073006212084395885868874102370674046575257055002309384536303235930422135451731972761738915925920468859208869239213729073051716050097500592652133313973285604007464333912180531876402440800480198221692459286732507339948501817382112023916748113034984509348375755222937078634350891816638255784759544829085162908711324036195910063397713755720162016619121229861939629697932960191829295047731524420378231211491236755636763560726702937719547550374536650476525154252523369856163262850337945885919459372959436132605106087588635748887598557041776776471106292535659261965978869904982353192870182179382924375859848493225842547726142954842005971776346981524614394495221792340090952787884718186237899108100886673979515632247749091341104447884008146500945535951580745211963262112829804588007767972003460428051879247679637652399459743161023586094748602044443932231356419428528804466608319357999290373392243433869450401858422046273172853456079789146898292966101568852596777493242343718170313533936961193760419674610026900811778331643941428855274984076254634291157472150318197053126442492266183206500031240807780651667305795363158448130331746729155808454847641894988918697574543253611678444796565896406579740701720986173905269533615340347072061852171499292368301754639888605453877556952053266308444300622291853650671533547108507677283072495254241476503637648728058602231578876394205404041307035203942068871041191982679363495000800764670910533613930071247282804426653549579361403742510129079628072850395500792311250442133367887017582891926692313374621033997590265904419022708367884992380286231353618417110342970871178432370594483382546185733099606883030598642479239184808385095481860454422859566717484508846165368023030514326489890600607025249797612491666748448801708567160475222931917051065065140156328860620921378957744294250990593290953412654858992997063675935918481444226422514086910564407696065964161538144176653784495126558923196463981944842998333304317873845930567027256475812144452634648621814088739051294651897437295555427101721145028772356383152697599191488042362984210384705385921373124265088251384188217387762373257229698958522905919530009721286510869996472771634635913967887009499913745022571861412717026164938060999368755174502299139882387604376507331516956176989516536908235701562325438545963120416413060295361997357389002462408976327648474528545284542729531186203989431142778179971461196817953570105526257406260834199077549555895694672318619954871507184529459568072393987151236206768980444309327842385098349066018291621849200948130993454340026051826806372963051078575182089709544100008601750224971933167857030793006726451772360717017840412308138842759900704921432179300022928773836210310260490561583505932616541077589787393813357391716627395948834192780926718068578113407976680103771765203053475901259765809013890460550453867831902021878437617005136187742845526090699375327817219481354582747239055664551313277343237683591394066090048399970939456833591096700331074061820950802382921597663601037749647035764025341102410949165164180323362326342085777640620000864347523784631099093406182103050709050886078284207396950817190122620204106861350656892606009907611841999418084729419694467518374624420429211315899483927316939870533186217081913219670472377729182691601583712761159956533381313539665308635430103004129288000646383698309538694248339795802459897077413736022449873900267183500219264521375214806955075474922426642845097126077836789482890391150231572090680187179232247925656494578191002324378060747423480914887104729862404775154708675869314295286898140867003012194170410991861944190507935779388000140933706709899850063059755237434443015780289332951633357940404339286289721334133804760257090782799372074168503906489971238603561394287849415609615203077098672733469344511200443806907784706981381176217106887499658698462683810787907083285949333792367609011344777930677803551307325794258714054422678430675428876907466373816175215618601218672573740005999531097810755586527573997962964561862660986099981347402584571832020484354980882096678650654344390562622367398951914564645585517835801707935430114280779303032358278622060389361418930561018639600420461226363991806663499733196922316563021672595789955863773865107060145650814392284687855760091560486078887389214959970785411991352305295713313071246212098974410419192278336259898268904991099844210199173897037677383117085449173210829490644799446239546742735819708496612045679028607475357582070370036729206098317760201948191006006631698628771724436988158031788729596166478955115290033653317803179347992701869958325316340315760431796661572515054808566673786908341157339319572837420367621943372615090834247341608498423863861222472546770829352410490752345348179159154876324709359916689018783208590541974216305705328285323895164031780814758006406776551960777664596388858503120676482523225238135564412703783471990638891087861155773654831303721940908923829562218887794470743380658658465295873795633608185163058491244809774080623386359725629609382664768953587982613391166116831144254329170722306822517889843837997822383139972591659100945538165794942803923581160414788752974498026638921556699066950832211683391822973629163675336210262393123689541642898149915488347749832148983604796453387577654196971900314997214557674182473094312495734388918734866100597054890902910641302593162380153928746702812790497306684090502463944019137735935195404836478122817323547927263896176288762720516056848545964398107404288995550404633383617825096437751614072527827071013866359899529514814215826572388795883050686366498332522656134663497987488362608412972130474477270818687287766545732077247357740583606754551517810681365420256025265190876309402416512392136943402713502252658454959078485699533934817337612177813934432673327743503186608510643703822019205155138580367314934900348901710736763800167468098214717591855466246407128573758943683153033894630592025367076235828683190206661815429223486069406512235206365975716479635368622954609604761201278940945665028886120230664144191121007610895632879300677523164485656181302065112186285666108173729487083187581875685785627151123797457188532737645985025189379732580358305861035133669066202768445105068776334568981964268569492700334175955455935560004868204551557131491833812904178645319184347430691492743075597286345983109984380027959493695831939176142154938904682004229044791122962315101764738392029600608776270580978808158490640154886729689260206545838484929500056805032358613113371140898954618774538877849664840055189476857973933706214806617458448367663490114006386581583174181370554203367476167251336315985921116575793161540223880068183874405210445827086905139060537953625933648064107693400111036671043337253718899702585777262133289481998812264264399353442041710571782430952449483205214869264976562045059073427597541308545990245930885881675031783958040915964202047967187972342365522209857520534854250220385645123538486852773984294672648532642293294635480461407782785608084598942189022190508447277446831932016796642683369665429127019855532782265778899580098161273908258570957047905962365514083629252734550075260245226317484910270089044537466604771029317162837878527600457032497711758157398642930803213780863466561297772334433460681252098704515507711013343798096156036852779205070065970410808425873086452222714857519202729627009015242961104291492882588204733935897100635936997078515222434016543045647814044904644956175484846612211903183507198759844911454974901514055293299295104984596843586693073761741049431494978230693691291270459832369363125237707562848929251068004880312814320129222352371248956779105645372947962365908476129348155756141909748917171696639845239215241878532155033630207562579783506073043093183149976612436018048748486464566956794380496902909780367724335791174856392702568585324197678060140556669075346473647249150575284503658736452056850338330855617190756111936938569718910310071005584793887729580587333986046306914774672632067043809968299165048503276830091671765208314711072611749976604140114456264674807121624116714954460848101971342958391240002570658344762517943895619213008872531558410597554783659373876860925529047295998821367351179513985074453277530949431411866326882901670710001284971343661006793797434969528064423623130277894034510733826580182382575800227471392805510823813909798263455248705832213171170036183628984624020946649891585555824473815847077598248134138499772667045968296023284679806868678612818862796317380858147805208384621292604183716805832192433488984070917914542011619960959954569675860420938560066256492656250522596132197275097545877880764174651372416741733951498375891939980398159345574693463787217947302022556909825000855048844785804304678750439161023952174050204905015057700489712388592090272954574971362205576275074057775834596970142395206923874493917129149396868505873205449019391834070780669046114265346744074521675818411432491638419547452044081122536560655767749322757032455076556087341327439525741608405504798093446390349434751254032613187941300586218223208648471980305777648952233366987462995999820067916019119829769974164444799735136441859914008824803084997725222106058931137165930484579737685089941186659173249461754202298478408108722152181692333541098949823176227832465499391476572562852873079068800104655694020761705239646185403083411028242487516788428574686396549699312047849713521686243939749548042077775672740403407505133258528672994235519420385037375094734170612861263658035982640415396582398544633059596098909836342337830177475769494624428345312418805196426222211580777263793195218558863545734958629372485531823449405570294356554163657123819165626872684463439750540169954215741684416300395269183233077615433215345863385367680592020039671363739483243555287299118144925146420043172750185296455982159213457816353279386814696971069176065550449035428019491232329491334083768345079844974406111520524690106768087447061901132997938309697735246282209750780617180747715355235421996665426141195479669706603898967128533042786925276202949689319354837553951824087194097707227552893207746479432317865843226943701725988816483313753450343640073039527446381083224939829913092578694380476866401827063147534683583117564705425133264613069608874241157044962340650389674005174814141462105885276801653467449833520910625603210819499300620682382239518692294708508884606416583875784928186345959021825942924799577374579579484545153781966817363847693655255951653492793932277766945291990889161770292955071181514494649739990481596452337196428958758508956494045857148801250058474259026576085747334865811874393940925793078416698711816395867239978996541058388635033763184209631507553241304444624567360096480131716951632717046194777106561469845244469776785208978030694147600459856592736863933030040631088738858756050487817080784866984733899645711413708141736477492530419856337486638979474863143935164415103717638102061343744761894439689537891601414449700129516942415133089665204895829871094800264489789042639682993892533200244183339850835831150317858765558719948776449987837527074787747389589055829841421025328514189493271306131806048452829942102399762410751785271436346808702228658645847262929101566651665514703662577241541682446225018958054710447260306902730304313007257023828291663445398317559677522230039824371873992582727057263029583755303818929320502754430440575110300824650975181852654765682722095337075300658580343094825112313832208594459424707862395335475641302078013245318971293813987429213116894498460734920043851224513029597416655397033618128375616767106018652370815411837116155970200718453849699565797389437760169176808700522011634062453355119643015313285605326680888945156668220263995603821355549931132663597275528829604640925743939672591138062552860039948267623216582361537179793686780795200887397871952009634157287555503459990089794059939473984665971147457713437640041138528448465567920270424979744965198265526874956719601616907460488542144988959677393796072385392592324019518508262218917413039171406338180195313821582373152933856747604359606726328825933930846404658962800341922185726762832459595100410275644012625142773681859467299222579111930106573572626812140267222263223177189950530803941425110376719018853350402285033359500596657611933349248411067386750252594497204413953294926373061409230085816622925265179762943514190953744937601921285728874310039115473544029126875327058383529390801900498763925514621502018382782127643160784621527473351586381863229512333481518853999917587660358257953876352570375267049978932981194944522813336384107608687297661486390994940271427854615578601272653816949543309636760516503506197527581024927961298502755188828531248367145978657206453656133775080265625211782533539864137173376042317983909245574642180475248947297621358409163394561761355863271299201610751427658817456122155875015321942544676754606130507782163094736295108569564336257228669181936731218478785061787666025110491629697127134080737384032399500249439861730814269065873781269522506831858889503807675792760231821157397290853518986228527306844867451515477699488582926419139913986349911381856782442519774946028383608661790355955777010951656107741293666292192465433497533311336090090562894158411591634443813433035547415277673815573952086481298501268128871798437456360636832751266048778468533903741868211021876836136858041454486493540399801095682256352582511554741907234164342969459902755997321036446462641106589700684325168940456189003918716546542670980915070114121155162632569524007895094400126173925535869389501515404983015846209837630718471319604860645252824857729202985855651787682796195239207513457878916792398065524211625331061858153761663819743839482912749814147298793562827430199886391791542726549715783814212731557780387029987916178839968806936678539040165255441587906903464185742159731994635397951442550759251136386969041189453492290754495921119975192138515556776619513642446246977553334522584516941567532657601947384084411060247140480894082744062457087455441760364634002895426293886950973873868479903190041705034291422318651168207550972728978283241870099063061096234285728692012162994008638118403506955182502241121314701035082647717862581090768905991371677614229494712339157186277227884291050725622625698701735504389813809062874596082803576979749158582804074545044667827979865027170459059643043987124691558843909407826149083024655619730389728035887019910332108235163838425514603773503751088288292552992313126955910269537240949070995802956294268864462164593667993296803519039600441200211310751668707261923264306386429410705756693328202916858004441366591929684650290972142374486344373144398805914448127252997270670674770784663148056545758448621524203594972650188373626137852734736960617731227442361630772605399177364944443382313799328348171625132063531083900807815068717323233924932842562499102323306961182188727976475825057177641225755246100406715601239659279932806410012581342400849401232447679726482142392942327415441861057259577025495248992073945943370196830381503438058512779991742397323219904309397585669047457562120841527953943142733886934424080361142958266924512878390230458597667631365659827384227267935025045480243174024278599303064469395333976646867923659697142572598773326056267753084257174046932495378909243905316194380380917621738596835647061580200170178640424460582930508746386615483689594802126152062457958154949962709282671954291765417787979680091950206097631330393712803263340478571075849655138205243180825380260656525425615494880374550610327388578246143407116042289178781364548557466125120156512916648958387359008726221743389444354582804671838354463777160954746518707736738194494960549106571906092299013567121794802716971179442097144561003145009047811586362723750437458345630425286622994576068087774688740812082227716013393921600894168270407414526439570803921988618565722003358433253825634097322045713715638768603564391971322238277359765374077140712456975844675577581903693793798329163805385466047777720038120208438307379165249578097124230269202925195478937634138779289866878328101323623335134627550044408247589609683879699222977679352134932287328746298689174375540828142010401960714160984655775309008659329616176748223314145928900535426085541464122146879399765795738938354363161590606923041292982602324395728723648381810212656818975195551702489978300524577351070764545945763173749817388355638484243528461164404761934707936941674740991250638910898553808442075235545083574186316834657098758857980191242530109077535134099695199015222200587466970519979782286735946446162807093094219557194767475535877225561957410701876896897414546510648213558321513202627286039640300066870080734080800329228836805476899047377773089582073505444680717631623515941901523687142003986584407359177970189929727911452077274115108040831478317042768011925437417358099343678278930168069970689769940909546049615587209131625409869967610113268407418462826331182866705459318440961840625447824682613116719060305448430876400473914689643795250724841167395357244173851047363421487886842480474657799319259532235083936534942755029756316498678403825656445206483239699768071171374308914955871205216294053411722931010020958597461758238700289267057622178473449700065938839391966431566601823573974192001855856478896649937161487113796826138352538963049208813626719203708765507864523340336409308092817350379383272109502177727287920832298498409372752692498304224259827768062725949793507509350334149589144467082085776308231408018615125572489452388025314398675419883369510605056126456208815684968897518233206124854934140569946558664277216945476731612054785882745439205677699189830942288160302070496287816555616607194708092677658844737706423186983326446916159668729076574323028670401531120845555586226516384988159054520090603912574791879168710711777267887708276407884621431946970443376797549188237718688473154310128371980476112650271988311625549199365518097715860505023853171861972204833324491622870919391120054003375942153588643875352631573914124999162670450257690943134339947131846702295668617136790137477404989970108009251381218941307252217063496827437619992648973267509729363874625638089922872755185621946339662282038724955194332896134893603856252580185747528907483696006237392342823974692730370549325811281280159959415303371065143049490503921895939516602493556380921504108322996387902960544857367426480562867756610924329960124683383877442241009967470491998050435264930124250422972823868182761054661381758163773322672649326082376586343086504268615535005937658843688037943574711590324929897509813795705095903405868308654673972626343958261878581223285017116771923385121162526225320211919413777574985368055638638902830696198415758355895135785212317999086636781523772411371986973130057586607009576152217749879545405805782347606515569455524149116962099876559083088401425215786602241853160314353969435159170650690325091287952109981440295891949291916168206109526274299387260006555836759400346160110045565827743889750738363146648651853098493607971673838836987970274526055289561371246371613491258184012178338338532276175659670650944214403997369023294193902971300324869315308976212197415685263578606982556610687872652266935157813697396867957463893250259183195114668561406667190051072716780474947882952762027013282706040238322453154393463235888260716969372209503745168402926352743183926221165817406551741978089806845567435127545454787923776066981790545139744572490938720958752296601434466411227478871496910109666192086698609352886241120660330852265198912113799044575029908044813024481656966597634064974786517833680818368270536532524390932310431481388951443872875477209528117113211602964237320229504175836250684425765034202354773862448336973287114902185340238774916118462305727729860519348921604603329410549294633904330767152209490809683620754275815470740014373983541288243155547239725075166609296488843354527182133717893407821880055431401464065453297922944361581535483190565388379390673909771816225968315773912842328746055816496162293809911039610031650181651757497199712341470748202797763614410103931311607927178742102135443175098140503712961927904631468637043493656025059834512429131523066527763104936783462546289524518590769988857108810313435150403628472855638716961264845027363608948627198358297748042796837060570728436862064297288956340974346698586137205287377929051384592225524954140371127302850350350590030418994525666425503451709324822993315892424626509517568754950324870115756566523025048916213583341601196949160543453358836679867963831288586178409165744999063247313746543353048340470180222200391593921949664816821069257709188304887480100839897209780784295830926162805824760133679533661039131895082700339538418371399933137637543647497755749956403490768550270015869421171059400200949090830979062103005197925234384777597137283163141981301636215472550982832977970601830883721872627034121909100083309333547175154884741485967968399622837044201338520812808903049254575497611177068294662773459357373223835853758307766785712124839102232233335768994469351056017526032680280370275428405117541864992755390861103493605690012532607974404162861422107676190144711162844939941468398058107121440214259657056181631467475667936060202820373264444343602929832418148275544599875763983752765418333504711242362344631937789170881250556329086916614095242096725112057681430136889747190467457837087940165828261727538133855757175269787339580982576384938784548423823349044741378279597886388062679862338273173044608869380820876925368051511239227545167617542164026394952662683674772690886030929949559100321433631281112038075301062063024035038304655660591318822480540897816120417037851843046582199311400703674135539651637211836479545348994721695046512608495199022897845516082393189929595611575042521716779658867737455665010970968715891365431886353156981438962772389590855527151045625831250689902865534863713697231766896631109523668516603546151007008404611979598475647445644886080670259500686607428776963443765803257547672246290545508751386809070297733974461695698552137592173688149870795086156933475211003849132504196563826601518303285770508729374669103441675156095391152557340261043620629588293455063898346667204491525293331230213284310787812696843766244469418356170272131979838694043987178216946359150503488944642354066009080818133065192479041691627126891061631109900173285476971642297638330732286512516374459174748958206279761106630596471093073945866266081161224399676458082491518277207648272012920959975331687230956354793351677310937189374047712055238344865254504225975595961321622783436977601712645027428234347039124619693999712318412753726804275017875368956012756583915070596762410887783219731513343589674853602503500020203616936397345952406587585965117603409028008546302084193477727126269169606090645036917120276136435028141909431636520574663040574580461297312383221704529019563040570614169710626046746190458815400782386323306583956298052319477893951169102406207042265896675866218842989515416578873937137854047719292516647808051505702316477016869459864903063382028252990491390043844479022279992165595407614288518717868095550925319658938309992990920116332628938115056613564836249769237828944582392239714733221401458923631373909370095205666991510568683522684322608647155826184077018407385127913256378784337725531800345798876208105464675847948657792832143324934339868011114916950800152000376818549815452932753177269338449858148321772549015315279128187692587699710692294985164781023937042070211768844683962725583691592583189440931778864438129803004602521566665774855440570952593532462922757333820105446565435011997390255726622351888902729078412162700246401207332450582843241083720905463186746791642158094713548820124062237912550983680350817828706936139432600634749479499356391658320789130627675112696136495653356880356141864143710877176841263803638113386508288900337422015141746518057191722289600258706349625367417407371833870558037708825862014820370360646001754133957950861538059985249210001215633049519971566435998600380246468429570108838536736296643700673628083026779135209360185424535106409193557133056286543857600242287658513339818800604430743101414237206207144479136636143469417516211080339061648844944844399867501542801637260473521666861254706016617427728984560537364577320640623061133773715232050400698207602372316053411646466296658659727340074488107104578964686034274691512221545979045852530913448474153461272799322106091189889840459826832210217719693525350131392614394886933803624468538377589486410524713272405666970296318225250350979004437252625872339984875593090272804824059734649574377951233213340135318104854892329897363233154287518275473054866670649631271793911489783261369201971537958742334049564656985601498841726923659573526715615737135239865373736947236193639999241374970210065372604012429732767826719004388743760838248923453023921793252606351411086529689452964894468549701019883581766813524091977430022834398718419311557540829276125243420173241819892433909540456417268626572860872970243078702283359696894491266676354472433618351008241211062929523573215645681681943710105623720732262664899445048032995038639883747736699646530369974840712952040095002038369164687484553352109203793534898426443462535551474687442367865864113533579654996383623641148993398096536644098725345092346977732099949515856503303848870826297319027829278848083673807175247126339868319666547620976777994733305081713369099411565615296195869986865424406953201669129932131418426093234987561261606489432033338017030825376608856404621934864636834666978105451780126771293768065605341887864213245747975290826614999022120152661452925248497614837478118018450107296784488013756206623875592320133248614404501051470603918534593665923190997974583783115616098421148229507184184227200911746756511258300964420928823660517198673904488377498868637294214962000104198582464361678619971595938541953862155089667007641287393996613281850132090634288587806180990098318451075720000186593420130478003551208721574501456215972878672265659080824456517705446008280107019626909890988624768504273048851878273332648337154411622936512181102572315871379414723971013391659337995487639910326576404867467229604316965249086778880569318240143698773412482819980440234104679915086537110752352530764718645370267750431710421490784041781353104473562324889884635046562299972909625871568436404566466166097731853664620979562353145492173205358441287126792017970347156658307955958687057801653893670303225169881117604279069396583015904844886440953833836633673048017819201990160741075780677381236017208841430076702973562383176016801715206661224026607552247044215247238364469236733179564014766468300419593322231364897451739805778744183788196091171335091078117110748783719557699142148984952291000591998197623290198256050962900054364569392118527132560083477044144632312071006494576214068913556483914448232616214735877360891434740661339950204126137598281342931773002939145494948148497948125662869327241395069177522163466073394788798528282033784659576885341788107527426108331633733209264113725959697682941893126910085141599223048293333095204856498296597839525626185387936668135708331442439993338145422576658271024488491936046610506538238549540248832682622337318623816580488072165802863835896862434509625312269137652731253119150195122374946080378736308837537744296501222606839331017562492890595049249340086861501259858997105131569291965741786181131779937014703063834178587793074468911192444056450031409953450608486184370593653685863999103740528404843393084621643360805575497487104107208156846809161588628066369488476914682899574335042651833323626896030111021282491362880932303837003198623471762539245148778148281784056914984692827033879837519867377683309613357809567992432805311139851730627529699137160328610586858746473736404270703037088201958486372464590815052564398847301270190486220394451885615309106630544700765328375423078044647876642334396149234594227520542104153678669492445069850403862517421180217735294173329620279319150348454161936509788943299061838928033547752572646529961590595831529414404684924298051023903419571509420544609060069334768785636982012901460884749523755022606244968312674977298387507922730588679247906273129445228939259464405393301528796689518968277783984318807454111550134370076230364776184812169950031007094345828834445090420810129613008072376258665093582673758369749285643903176996763573044693088893697895751151790692688794598117531469193363273418988853665942176028650592617403090682080586691711240890156252750407925248785277958741612997855470011830379228995455130944431596920541266847719177099535019583843275464436150598920037444911262057687915436269468723792324280408717943691344932805964582714628583620647869775484161903928873410370975581414591512864804323896324090211462217489419502813008485321670006710685948419651494141947912936214128600022105545863526683475719804912899512839937360397008598496467188144916954727205926672062709588952089515667332101833060799923815396086154937280614097252618884544956808974003824733661928195301152484263566883178876429030496191176774370071389408524652656722870126617022106714792178140645659687882828248111133761323551816978021595583231595619965766493870466795347910770897543831084271766758348381403193185949656869132569507235210285197860855351367630093334225933371683656714427727244711374912393981296713290888068121945727375186930412298629048072957956148090170081010886885726803607695751803384975490748471669749588471781319790270586304476205255661255138656794292876428804240384074829279765649672163640970800172669212280397599082542447431612790109922820475275213674640336567474607900397055873004693083681678300971503208617485947133128527057026723441867556678909653578875544411126881911505250937210192976646875420462049050041824394025087490807221669301994752483416093144701685758747828015842033040214592264021065933344586754600200904302384625047844290950048480808780398712556041769267014013471980693293607879737781637397093686306686913608616261591725688766326521442835429640970707091719480736422821395710332948269335704616091450924021799135034107912710788317178454573376872465864081709845123137925742656075011403936729603812093720046520829309600951533536738530119931687354373225666030268679778082564211293805063080607665681300403069031699504841163881387955003798009695731093575433339679985354346216459386574884825429213353833032991438532384492198345167300621428545668537152386197752275488361349302177298071289104513446514492383499899617534736896548128826643520665533745679903972096142174083229437456769180961072185692332932436777580215403894158473575697203510233884772729952271939240785059683003494465429669271561463181670850124176685316827946218996059249677554086081976085221277247043788984888312528329601495325714144292503513894174886040187592747243224842061582943791472583539626485380588111409931874975943337717038418857895239596570418706366734859116993393721264902309055730582733054557956753358463943053323732775006900466553757361771441201522849799782441469038444827166472788421829274667839631509171102472384764565003497577912768924165812982403523387374925588283285318822523531622424774209646705741514219068289337553390832614450737154622445302020413797137678001201802959629694070827152441401247474814389786066025037158071229683624368964844425317251705602535048998584912982205291376215789767981206975549618994371885859790267941174468354595022378033888403422645116568848595183434846667772319278094330759039930122052562235728083508875686800817436049793445238235808939002446737564192931155470750022736531938400300653784801391565729399598818806298290383271996273419113123297466524316736306615741489734303476513199403182435143454456719868167917769791308735433628138909717407206390615035597592842565468608256576100742494789112837890238673767865765167951227465154955635478926505236929097665279933696248348026087020459930781141805431670272420849392726938907619841333509236331391260517108300525625992927883122610979937709975139484702548848678613169261214658509993512537631357195175329609885115840351593948371865609645980416492422964195895896387702880736824432685773274469525374600969909386919675959035469531739558461017710625136607190473040685526511067016337821760157095666514616386520553376198367800798776249857115102684043933972433921754855872345411588785400977305681086502338997557468308649014267494658494117436492678460803738320588710120933361996747358154540324232799805181024885307573750424365455745244480561302975442839269590812318552464852304835669714156950620452521713269099099561966668917744101436554908675979260586157161110520284709864161109692922690437607524421992075953698045750169868509927431549167470085400810229460029667548823785686597820692739545463425744513660913214162736394538672028913998179525463488837605237837606111184588988649725674624551180900112147886496409109022258581265211293132327653514797592826516831892009605486715176835985745231334808387478780530151675452288078135143347452576017346910995655083888118446021709051557337829714949281446832650928733261567878873010407912003124079563809154099933840625970205346420319626840471160206693263353738258167986365977672110821854635711845144194443081154238038891024984441837584572880610572169259405514006541377564652152758598048687114832579389114610105470694581739347897781194105929139774471605902864684476615690880852067807937722209377931994848025685686221166498869689660092841314228805765928257780587309952155565761676088219939226207022010367664148739826644321512357489528659560770755403905092356144798711791934847781973212488249462664668412438233065108497995127336107848028812432672847029940728025639256775022424984510290422566354438917516161005420146888568561817195895720111560334726609379978929805244236089449611801724376374624240013696879945570114219549687074800683717641125227559425018883300903564862710713017004713818623360785207202728927452884086253858693059013336868245887959784334544414495788935924911012956532202242437725778256501599847982389727814552535182813149658281445189912735451970871322723831942883952909643491969430236781140678732731914639936200580332672717385845713091486763812165706369943205967754928250628302263622080851808573715339527802965768466590476658293365289573963913858275883497262446512235393681768020129374740531554650189216843386471091041128862523406880335746830555708074186496623072876090111196396312530008465509860645051979353812482053034794492443876895563191422934430289534179601673458629257771682533879142875800482202869653590537110651422775086852177996882481902371337523707262589721624013641144062651589531276797252589297707724490132343388904623244879309847705826047528151315652341475833055630414169952857335753381941418312672993275613140272402752046609314296026662691329689583675763167964908060684671172161421579358076990500758327936636306740090243256992882075640246163609772347542285628165412598113182147629048420799307133825788845501124197912234070237045702835232918325813704229524732419335950864677473232390395803816498820713316601377111332054539752050334601223417106417663670327302422895917377032243401462453796388016483801195754645691003305001851590405152166404967327835598810346235920817128924853758384750376630882637535301192674346524670153696390350568052272583626754249013841679594804029331384463620958411197728351103354653246608383337901920997907975712098466314356126943070905734171782782391044765859412352715597872331013725987776902947118418528443438280858138974365578445060958333802590848200048704188496687633064829303353689963526136430801749592855956353636420304433091857282536225845475850101471991316637470578357383614059721886998522853017576641697375615541952011314869585733040778599208458776767448088045247467462843120737244822401759117436864943818961304495224426356009754935056370953166420102619984981203839296651447587579237001114975703067448541594370734462026262092263951235726355537093416631186496637593677820190780681867293825379314201520419764265174954371466633296606634295508227301865849722616940129396087810241504892514169620432743099630093461974810906581505139628978770269684305338374712376408282960535380692908625600261804549584961526502628418246594616711464163414522552768843101544804424591265584962237298341520708442532601260647925869733211397884690997277872556161792649342351772410203614489265230530767988330833734246768436544992312962869112474053095927756298456168338893690397905123619862247906525296098565724739919723431946171424952038965450493736317296569463247839578046124122925760949407054078363790859582177021306592165837567285961401348013824987961705131699036575903963298570245134732350826623120993309714495010109310198267034358689001296181605822874208853020981786278114558639830832648147665666858134001114341159885989750637120897529640355149198182855758853992916533434070992408098786095005815811737871910749315043108780940248869024477972526504104491823368253642799350718490724133215349917484890691025169269397633458715025606887095307923852085654146914406041534538379184441633035578413344895759209784493032027962387452711988338650608338813067361462666517960029861596633974243705897156951558526331047046838326130653696564124036306586202039039824801938263244907565406328188945818720037616322347526387228557588722347872377741332887680502494821077330772797144743011032047450545863854635724536334573477011924322559386055052471170009293147027849343505046361217151069164712156633752101838270165507248266018538640730725265086695976015840702271982393255901307769606764444033765388461678879803683279533074036831880033706539307438610833751420278433596677721366165483206275031507658998485141675089592534134396490002907116248347765291023962188058060599668177192250976065784328359586116276779635643419900178521431877890598134987594231512528476732407047117019090472174400708144998553977350121190269874275038507713063460344853469520976522106135667717292348148937044876763402787759935441563969967498419510176954527439674092089745584270984604432396508491670978172946473124896899009172466600254473532817413391142595958338436075325330863471182511369180385260750293177214581811673244577181636205850128242728718738165621031785791834967724764591666971440433434252073535420774687214041452763961374315181912896932523603576316553386115602730246737642706402378761620015226783543732640893818212776040511521815301634618116011392709349252088194139714294129322223146890453489974409411247536953203083916980730885398043921198712227254132360653883099790703238349932270266535961320357184515564059303536312928869717351822302153555954087052760201919397390760173500192600724769717545138486794261820374759541105589874193061839380672859831068012590744071974393355042573590121038886216669374928591410853085934858402173010138962626293957974707422989739282234064239268929157828521804947853952957396824927129194340682629694222794529761788364853578013424188681539630917510817413017329603867388514712269820509301434988704359700356576508413314533686086871856485800601402685234303891176922366070445553780912648147496716232828795890700252530012470344053093055922547545882987375576826527752703461741953643937254082327430030539449988566833763726417895336194143213908723650676345301304585813703503263451131502774855942440173601616918055870219108469796165053283320432083099225159716108026627079591325680008120582777662118103321692066443987770644719670977347297206199210253058038097707423191349690004544577626995984831165284485458392383026947375568158807643791620271594768721216062054743730366793584681756663812006490022473027168610408359304291909906096681423383462967269582918350982123629573718405778969325433989150622629893365546158168687599402315180130989835179244875451911985032800851983449562946348796847546441375551352189525408269858033186866967894075695670146954904656754452680914277638418344534291218925972667375378740719992753456345056651739883260300201120106232594790070094387716296713108295366164238389969353513716934683314405885152470982164935044095989212123606010704434065826796672400775522242425995134987027825174431324089127665523916374247140581293516540344733198953676004423723866258837130120437224635515984157108413246336581518930094322816803659695456388574091036863601474564333842429616125731194857062446724231862114558771728040672290507997747409810097615828150445761020104003028936524995423727452008415753852175365721482809652261914212187150253704251118916997899251285386325417989943575010507243000734427442751219597422910836611900286489605952796997352691482030934790975080745422444013527478559381144722463311570558683708224483003241552352360576785267189849229724637014724765240731469742155758217328237934721372203067787632272910834697745940121341900153750773503578236598758196392353324108611117559869752297301716683305504433318991409840994983761177113716505169025606134834473986975833458786452750473817495571925338212635270073875146094778915783327468257995000488635675608885325186503085093729285043567349188562496143930037813067908845588496551850783254625267015339368550886865295967716062330418231992091222425295922825479734027115131819943677313478974039409364763305894747553763582589510230210353316698645137261871332183895646331857435310857821897171462833626965801279268351285405632770924639322054525966283264429873543031408409222225830212309746013931424647616200228782181750818048894875812337000167737458067410248353034552112823407048228030894468837951658841974338554249902671752799003937826282846800455361678603540342460131214595242050833482098688327065293871052737421248169666523162923241471748542447477699800665104764584048105654183893299069341523102610329310438641291724380286939532234429459327482564807460404778792649926245773900755013085498318435845182162080851886111478785008407337994991619737304188991237615892961561068877896784932190682586458394931262162604176446710645137768516052131993775392438214458961535267487489598832825209892897566272302056573191951984970712945078171433972703550681216713410835854656097372235995176231778340162376328726906092135096999045704611658492482743277545164461659860990930640731037950991195107053827127192529919789149481012931198137806896961558512970607530293017774833115343230511452185163756849694745752861116838343060511154402578548101663320358619497916425777661713594513046061960668362291017535844416670028595681622368605113374160036224232583441973486768398850442937423219540188472587556479404349370168482185366995143253513355087536775972387701237001395807100090246300954794648855833713197129243971984139120899146372748061263217451152266746396145409547599066547361525240293656289141637137020627056912373970049484302827805605477765994130310633071402742821459320297391151391290228447671778300221246359694092695515125865276770176803607566079872766277564968104984076083915022727872073893837007619364677010625925228483790775227008380278979719534278169379435991221128607712729117420573913961437237956391927381744150043494013868426607191654919168141544605930395734522137314551437577504458994391820023687369893545263748625827207747518027772309393968849847352131433175805996356405218450582963829258973738544563391880242831233606577375239083283348468245443382045847604739487549951864585542302637513501779017455822696806816365990901323162086148356896184413528121675189608652114319287575323229531830354388513489059939319662662997645015755781129460475599947212657258637075975614108873239244234388347981216188526772795682801268618794849093020293429367618121294890731241221541086949448697257969900412734664440203874521822850852514965205855217871202625857052298432188048163248193703091406746231570741473285288206167273647058540590040302262401771315325890330494871650992887758610627468874692916639498491331792446842504040422093857892935296526787468039754258101237436293165038703933169167952648106382142854352290027611194584662678143439165927544269768451721492794607893349838329147671943173696137912989258981581017386327954979028186038794563460010318908612720989180334409793889681697138252077261500912081133718720194247369509914660338281671085941010019754203459557370155541244206216952389306618693730151682976166461933522350066716499650833837596301010858303192554299978997440069059064763365355595398548264584871992226926771441794160245301534196835108992178120004823691189548786359347048693491955223045290241152266991511402263544351112681088314198368358369899661691501903445177902052801076543151986758195736514952925524642474315625139705292150599690818167081052576345453357639783920609793354492796248857038833583011338575078086208478272609003603087533612995650918703327387278760458230957302562793910325779519370376467908292207033625086438008168704644647445444861102801253637369037044240700626627004725513282691667174209090621218424942040014631179064125888597996771404979991154137482415537744541942698666551973397359296518327802141195223536949538000913558452218342849449387795357972808489265696104561147907574920954322474219238399068558678769101490659415126634813334877729014011393871097241962750248692902035388462298668931875389512692540750807149397100919642728426090197935319790242492604381457629856439508807458436232823263132994509053065497292983373167896986344179382745250251466024049452971629656301819541529177345970829336841125723936756608593944134772470673577735762440036460709148407179999173788779348114734069577689417556106909784718391437970501181990801963454088604287248306492786635823908101776474583471690946285429616232781932179629030780832557093932621369661854001445811034626859977390199192913232512559049970441220535577881011707224948849890688059498082625560608254719478033731612014094038099914826769806942750356944253039688807715196250062872711107636228684808398165198795984992771340496875099557576279340178734067585338122981528445831042170753844153489739954795881672508235324786378355602631312710050254222807364398571931236458782681319704587548486676443783717434833263978511569050491024689273800496534104319879290714962238837122383788047366224685200566670875243687985028154908432198584722230699058645680665616816749877006267298984395650554515998093064419179104876543830893011973306822144933979541701256891531403550375201165408142458808779190547525268420157086606519604119576224102419992286465175018086035138394149658709795084139585598529968670401915466122719702551819006721836574699433493815781263525990011416848968072297649471843081523314712045928442127774053107208875762278803205775949223927095315968940411660939890889924392648474739379818020868104620693243099862584471716833471297794315798020383395845181603722747167046566528591859458488884708246293527853132825153719054513352778705746782185609733871687965686082902754899615897409915495092054312983681357932788972175369326018977973962493539614608647663843483871726734732611649252972074913947946174600343557614051480063662951595687297366222429527239637095491544645841609318502554507173904917873190685379468391346707255494632463099286802627770428825924629320577288706280042416369137578650167158363095990822499162684636502520082678520887420283851018227130947841257588873333246015860153036226184224182387732842662536372689644590975631959637653195721023233469546352587568187661975899999712732243785073469104689513986768709151111300617978285106274745482545695362681984930591866063192013609894655972533778994556375869885202145924037399409027996618941223289154768263764771649593190482492973042578887353029966841693260550774057753434144233447404833109514821101365575202849186013924312042582744099851514222558072115838425991101972078987255142349353977739463748414595766151546089460692053602738128142126024262706230312384187567726706051862026649625264809367060965732516354929224014362204731848317276973356644692902642779695842099806908240497089960409044029591433492497018220555299234906058581055525856661663364286525795841375138184423698584937816070813660818974537220354403182470352812582980958905902738773559277158768934122090601191972854329350429403320874535299329281601553217107086638110777261134244861625450337050564176183859253893096072960441831251272653728355657710244190176252882242334568819808651085580350227419165851145082644091220142087481558312334205002553568092808128820051185431041038290180385564334755255018632871172952138627930295330966255095764567082828528704727216328119940269643872214368932487873278735969031238495759492577567076650624976829727846414317566981990886491057559421054710198332828271487442559625165977188914509053328024597762796509192893825433968212733665651329905860409596979923784556416570430136220996370678695688390552705061973475497147903063394452192351440443797078853062386944568912093713638153590488161300367443692235267516957721698640938722073534696102186470018960245920711361925138958231396542828032613593009623189722436304181901690545618838719055536996246113011833582996599892189314607932581844456103858945152654016951041321749187130612313680295403707371825985317992256214335673382687911488699719557135554276353659575599869568065490780748058589999907222169252547092980435946264367885512536095365101772378215807380368911029021359530849137331342201735734346346237207406709494012404970935750135233732540308989521524592404364511979909281182442909595882612351845018952952357259690404124256798016431730220808122083948145217962169275331898178561846072650493557480397594266721464159532059374696318591916051464223684654302319290728803969948797366006668720408047817260411639155734750704364252701043035252343807052404594992771131197626608045082349764824562873677054744218701721797019846970845610628697769085353697229925030057495127813420954844331897344669161889628150841338735153217989332178509247436263842028606022577465690020241673833406490320385132795092764228297119799346583079635053093082255449878619229166528236782442545256551093695275061429337521387693094578374057474036359643601839559523341461481011368366723890596159906586348233575843354831106830800732442678021132094618036201188460394166575103554535754399134266184720820625964924585366294621570081560789958369526101621591521086066519884040752297224468195959839256894304613726880665997800009016140338482223526254043618450687471586314175370258852083838958530006063267148456619433324168691485696348603231295533575304902117831580116310240481115465563810284215740983171066238552272808357151555345377271869195533916007476153285689519645666181233838784712480959622366722005573789032497573353831073721928089267496858950121115235284864014393072598312637884042502033882986752295918423837924418153497035783613856039920377093014124657920207659128225474347277628090619722380656664438418897512592164321413658327189717824261622261690750694559741189409825322971533791234019536387134121416048701103811325509995041261150139767024400642925154967677025079936580116994157572376085615478191323075419353695319902515727426341574125654845239548165806721708445131379605418487618167559881266162273074973840834746931729086199717920876942998361528635688373879621575562846681435495968057985797767138550030786896852127082436096360277008757069948168239975299978664715118925136020280929610559784313976019492196309799094003029084165820490287766696492823532171529888519656363290815001587055049135305268170062193071731787907518119465463131334359705026156082455337947648577598387355468410941996862770891088425821797292900763300523086677597897608535623656878737155271849043919081426156938483570400231234530120571571860047995096733879791530846529796273298781180728736607390119296093142067011714933154456371735657174790146223751563581277544834804411900848371352486443906140276012221243693461464857871726983237695203402076674840548540891596049657977499689820109371750857599922425817403674344743804847456125154962507129751648613383470752148578955849631387589750369261528004341855643651291147462357397028178155560383421856273833581511394029562125460040201397256721862208049581602549182980100672675682584679716462062958445257463047449064277401389055855648729409147097598923567757777631687138031706616719233640987937696506078721238990839453537356548428455681124595320638528010217238781341194717475065842699774195117294211096628243144856544067619908748408585435672820395066240922968766322436772818486710551108895209893142202192624622030762927138954364789529269141763121000783455917004574987662617004619284149240504302553009207313790147589536811609798829541963126788871350982708779355312227561200290202273015006062742471230644070571928893786698224130646085373207956119995140919862169248992192671075651229021526827194050584226693659671858093868627510854161656299967086794593770676560359622553141038358133425196297793369587579652440892174324808288085730077511659146173940673399008826799631884616951458061731638137759503933695370134309195079305678010590027349249088990191100093421012609216679021177701038350007188624404220326601348552293083013001924143907395648426719886174844697105640027421251867606079233355992329693836611117626463264527721644210436796187027625039490846429279701642830443825537309285865858618981540287486364114074897063604699711053926121105950494485001532258122714796276908176933260080361557786489977262512981535715113579344295364265260227756498774464487509808548388536185489445659552550614866779345288596092441380141907633591203659496964591957860529816600575120138691321732614444211949843870109542336342281124297562243666626041529006709075949090326233859139218665870570017922820550570271570704299072084396140347182017520779225169736894871760487890828641691391915306406885651676861976190763147164046433969226775832463607528441576232864786985641712199728737087927115328925754039942676559408408497187665430248391365698364453907718875352345901365206124761705214639002624457434031320186470690150378721989648894785895751852642989729613275916283010504374224361314027341860474435854811595556237056803582247632253070104737089967792416715459873188899332620474132586974603087254481713443299779429395896295294659494186313218579965380949476383867953713731240784972758913915535337103119910868634080457205915961315932534032660689160008095923062948516932528589136887520683686957124480264681869502368187711512380116721946930345763478225088689533258136860838820609605126358928404082800225091833912900255002896001735907236160628161329166850753894761484627022760996054595339186569027967883848512942663835335550078455568060460631923742209069264081771832587455524835450521332155417375934914391935999763029091916700624759617853808811450864428479796050846406199785122948099812155169388983607574768541974479619076035259138730055809816947159617970354772562357342380521940526094000841833940918623613881135832783129769720086657523736054367601021986024252356011759183794136295118426120604276102797496915512363797678537728785017981837824424272565008410213210462549671736211772640915901847975158148709288961177655262106170455720343321706993621728546551436644879614480705400697739125448962060786424346601072666038525613240379896460861750062477074999658999317329505710533222982288342197045140894852253840286994818220873402367832063618875532860784275371176399054372482082618831909329433668194285469055766160286300723086025684491310111042576771777326167821339581232960075552878893527412977177650652812274426671498444781493637669486268684473007514772763292124658741323401849173032832374631075982663044734385428674255865485807766016781553248167959653549415726730024271801187379549389592488559886564493571821205485909533018884218075069496353287630350438690556692524797213231350761628796232264271790130098673816216080007481577745789018183789449133007189893006214166399500435145795549427797591969954563868960100981151184094470514916664940249789523939838236179333626244680108304579453678270794083540559621198210989585191580687623838567078976408157320347195491197800279587782759904708654193781904906803346272770083433340581929301174229924731351992988722634260851972173226336801166857783684687157651973358018541055577425098232936171017072110388382917519314426773443065695480871725754453857457483715213426824457693227669114357790491379532459416017856183782308483919635169675112261055962298378478975018626797844366920454598064441053089731714363624645435291472140334397927051791741967122186084618296270638916122894919105437091087550562458200788220365086685101869722072192164576185424471667180933877459132625622722663422291932960550134546057578950970546062433945143083143608891654632916641192978042464574016483994144717703144935208638766675827486309358495542180786727080631451127807528945660288890014458659505270979771765995714384972537197325930950997290824765075204902887326861720995719650378143363711475086574499802199437526341597450716197745972575524709776640988071684069266708357472168709739900134981515660462237407441905547205126548694111880812641049651751242537825474629301963496879916352365585631047917157555064518792866952019161244130487841467274363792332934686508090511048361377866013766064816234337218743089157890660015101135323512469312713337683846965454519829322000033818840395628381349117856881492023172533850757175571433490862447687581715552954127963403991144271050776290295711104531795864786870040950351372041775088906574429749637800372992615101564867765547779637043910355244171348365734197107690334413037637679501454186223505542445587480013665714636557348980889790850978414379284110061280477044542832537262207649145951207774557408269100643599529394039463959533232082484823078941371242856665668232260649239413791876406177693660011619402605853420888869666746408759211294771162923423762444119211478898820451727083303874312078258962063529393542696791948517097629665527796588786078035891278777051419742184072739855421219162707531833389352897455902024827808381623416436644792035168837986150728900360470555976787529049457538840884373301606557506467503714351189780643653727205382269329643213508832797852808586616534057205427131036398422944719461990394949326737680436698992330645329228574536501039393110120396953317511285673380276153489807338393973468440730652987042552820324576398700279412329257000217796126942898680224442854376586700927156819547088492412722249743355944465695215759042445868599253462038082652356086491351538288044423448995385240463966355137921677722962525953601964806862438373795841914099273676650727080594308452321984023758338982535721437925768928444619850329360957311457354975347038923479218259271872428579643234022269419406027927684845260080904307303906279010728457786489736990509347520720044254466393095811707585731884386922902956019131649463971659896697955491526268782111190738167309118006374540034288705662644369618760071264370619286347922571531810426128356073686431681803426246977204088288647563079644364606725337008185468133661826253114771919685087447561086258676538178592733337752499456321850423029545423905845091935261389066119303914310062015833255253225344327431499936249630767133889822376801295002546521793970997239487050535938756307419044324516666097583404041549574790775896444223776390824042097557160397040893548329240677031368879471903924834526700761017742338294581205560680968077786356898850485210987021295772475238682222713842771526798437166285692794327948042324916356428383649839292722906931496946561830163526749568237624057452257673236229388062793139755947972885038168032548677282064057139576376967801820755421102386341959333633123357170319508867775075659932449946393321608758749266721075202938152860049301552996662445595352667551509358093652229604705649815662997106473941201919857939063919019895710253821304507743647638077657947501084338272500523288040374677821321742725304409460902639734271371719686053323813512200142564324255720330691985052099186430239330524738060420265915131666322709849159162912423620074654275899952922045280961551448485696202819648133762208632803945876778376861432002080721912025356281819216696585908010065947167551731286814711587671868617643945394868950857474943895490425580188287319380737578806854453549269562264603724961625605136561667222763988173553885128546409163480366575381275174085191138001764161825513957208709269479173874446130361045026654889889673842061784777601980158874912560220694095666429129270061705584019864297538954175201493877019458113959622313568249253251003641596942082160662630968702471224152322749732958120035897723775175001481844316903847565309860629293238610611185440747856794438420999590375233876218586761450974304604907792476049978950384606966405818500317259966405752216052837276379211882195532006391915862422007339249837736268511619534812510760898622712980685585646670796440208085037850831951940744247955695406049086120581818053994942806380510371164840609096756614995863943456251635253781588978115455449454280985193319293574790833096892901743293862418475695132177142804556872888457795596387352267010837331323660031726486577628972276923467438054609803593876375941655571380346739601094017962359335201203589075234899191486112728202401165757123310133835303800557491818905777680480792049964154572479273258182120307250266341321423949401374718574864582618721019053761950123707316763150094125449866203315870914666756243934359011112654087769727369676352500890773173229094247966905854049571010322720253892074899798010459460557424595948995605633800693705119958318228055588943473071079452635014337363947957190048849062230914912427928970442227974093306271243295030829658057054241364584731019865719555995528067773601031471094504623388956238506965656772168196267072235260893844364130900494764332281522956081947989606300118021716964519932694092321294516087450517900949276136018842591665653785001274536504651424537274244571020037672366245307422483134543596579440669489499749938758959628444639225210301324696541730862922218830327091290308988592254747249342350855649994997837980944553435405793515547028968162754572375202369914629838159047028716485758282652529253984644006286140866296380722286328038253098199550237156149719712745581773924002690046386482039137580782928378000666186590244979768885996328527339797571254654041927633101372822821960214409904502189053413889085417336122688035079761761982954823715599334259858042058242952358839824782469194748598438148588836258458172434246352612736781248105546302079929115653613869213423445414089762676291269538113565193068675887390657111474345464628009694089652749474334357287854241401869009444737395083680630805609212564578225593129769598548717767350680682828895121066134493730128106543420169338257805647131706434038082553602585280131880131388382459364459357054437255560178414444909774401271026610718077982521791109035342744046810532200392476324130444001563960028904534105608057382735829448928067527048705086891888859279492185052034786029476840344408278888468295507526712409936149048339608717302006666714208189501309555211134070050014169458717360069221239515455799146543090407819677530301227662770323920047019325598305775546399767346004761227871166724241159403860171291494552270045459344796114314779094093561372294632109629872032174045308112938319734754655396812711185653122524677705754372824870684769802872248171345493207268260847413789734202184139701780237755347160834600017511241225919232421284193715385078383322289552276480965461594738629173059046371668751878793705967953767484462888494100008495167693352981643065634977641652891102840450329115112043088600500641615862790353728278491998486450061882448685410278310320273811806893074907029659208203404434069300080868172998978951884480651117907060345916379407257273183747539763651738449796845586053461994069686422975563782846941141793875385967012063357644679417908787649293070820569274405896066993031312636006699378787787498789261009580935164536528826103476474431029393434821081358833461345824954080582807144067641644356016123750598792106633387097104317421039970990103719789017406889371065338455962851162447101776078058130831286104197057797109167342666277726112333743097623096382787563691989868157125922383524180007479798971972195966041780215061227879142696844923241069113701788377391122509840173098269505588953695159316253580090712847061150519824929531248815374490749815743771420362228838475775070469562217553202201521595110708709831526321523170622294042825466089112333591843298464661061654358348602569891737133185318404960185402646366501228545422197353444459540297150252565383747774347551406237266824337235448792377050307235984867825156503590084465901898530026014788343325549229533542130748022805491268853217987530697089664239627141105230867265471077739097876025332966208438350940799204300816550936625442730918951977004018452535604275820349014029117394653662019478896339144892318643621002750565283875942751553222307558768372160104226855288197589467424615950361707627961519679615430034192697036138903121209766670153267344876509451156803590446241324076025480036518329989220363217064923819406398272458352466833304085888103969364216259040131568117590079918233015160436622279181220684799009141233411544221698878856523313509800445324897915712868885936752251817096175168180298535170265655832526037453444723112154058990898132669775480251012951615103610501120280275175298634628874119650679986253227409708713352545116787651668801009509392860195225290797475601817290366554307356316181515967318453339151734754872188207383577831133426011470320910187691528301710928115843303212644110498616142697763714694418222264270382413009410573282608109116538110258257533482124566259220918179851062850926408808579598261786604804533820969699202953136788447928194648285533226745720233092916676500227063461573661783130884853662788660951842281787595867682538148257994492871892640534333337370639118836790810689523736640365638180834732323915899536984560546612629788903884010005318757357671911367814770674929906831158013879703223780692111419889936756287233040092699191766620071472183443960963097440070001307609106317875005189338048104177171193661037030491676073333211854371417847343373550726616045574100521265661226686170090319935222675856954465939216930905665702221869205046601323560827062767915938546130246616494204024433532490746244345350396985559940368553709015446474876760216976928706809001368167448388724485779075671879520235271969783307925049119965784045136840362768669424988271730317644491426820663012419177117936809011246429704097449509931747224356651350738505795138655702592660455183037179060766075112755397019929322277835271899018609244546599555846696757127396175497192960684464550225671252570993283986449578418057172863808395951199384906695826643636616296507583050468947214760171347557096642806144044050245379060243319779058135304055764444636332622574919801678016190475508902400367218491780365658106350282262220450258462972019180287353001889857067478735396222873041906084644092786606115705656343133379870844657096910647258381534721602428580130106425594576808961502763840482429703158876959337979157446765858954754750863083580944205280700456426118854918941036033130285433001458305413181257801614140687761323745467432434032682868073585329261690371518906858782817598372768344356715660928171801430744071896981890343890769841121987073693026758397637724828664579358069092468275106428230184124621127703214773812996647011564137103547544519833994021363973680366177482154964453466915310983325806866360055259394521001310819939342926082867996218791167198908382077596675162561590486830701032802368194413176355140976001960055540475723207099546359646506730821803643520303440497038787969655438583415908124821619717480763818524957739238945659177189066430828282228339682183968436006624781735230859017448989457681351254130117708317760104689725430609313297095973077375938079164778312144191080726270207652063549968171814605139296356452746124613826321873082473672324594574752348450931497714466451064574161505403488513749523486836645940582445007530975944290020837751492053977640087303439430789037449812226731142469335653605033455741764870828504606641000522303059644195234004795328727006411828756048511021382249154722806594293977303593839172889536274079680347989594277880404961880884161793333874053605687292878961122772910011172476260567183942716115558798274482918040565230874964179863384642032471431188522088327464132381443813122631556706292273733898160595705928770018364505278926741812357406942105608426341623850736349737592750049706992993850685584010448421605931743336017884109699775321481235043267357770659542912431528911556385601164636054279868636549597560082004205061833103487613327208731549728913878643099951214829084202806239511747632811486054059725527541735336722248514745137997030277881830970477269673966403560466363851431963261005293174939392795059507286394217302042280409800028122668825900585888796037518075657818022183537183984079104044943941920311727380922595747375861320524161247431987726078683579389896998164183123372754023120897327759627892976699484443222321436450884955108539081740402026551623002633525968626369477440572288647925039157353795987455624042814302096761380555922205668332770538323331321205581355644922122456272046085527825757445390684057538004314112655350240290175722139780414604417745582652056720591726268220902339675269566920711062204099797210243179879666226834944433992605395898047335513223710918556035246598807752496017303985968041855881385316717778292251767408857216292220745689156679416352436036929804341167537134365949315168196292411399863507099462644820451652158063062940797790493382999303501965981721042515344612640932773392285256191347253071340994873534942687133115097062954212207807848023146591930730642699420645780706518422031668019240404902688804342488897463819775868756881002878482020854788932908306550147581643867287587984734926270234706618325736702930956142975498834306681638267014690300794613343427182806310314264668774159491139031967386359833410774954185441358415804841969391915665894683215224605652723120830346829211899585831102825434111339419253751462265842828655355950894686839913916816687623489313440281456445814460984494029160861690023401546155732475005318633848157883756917281893852639232101430088947773061933144686096553357591417995094834629335064077274008558421009206092996084230211551160943925364198374398414804143077785465046682915089544564366034847345851299464144635428364967418259347045701359632980341589136815013366412269777127166727435181511616712467138771085654087747145852331681654725421524372410548832318344189454051599859930640453459421110997178153411525533441616142888831775552411988262048440876386814853182025053154771327303482126122700781321102932254347215839687625841138339303192228743601432248887974767883028432853484367732050238490202425071632538886916716809798056912517564553476742421184297956284846984690267030878747406211195646681672499820309117153874014376783051288655207260121611136748671573268107912461100673169224279661327052571551152956449804168208609615056467546488368251747901071750103648017590818275956488262468181344286570437869020400263097488749496373657020686529619532591456514599046085295803160980618920372961905387941261003744482728783248069205558073134387293450455482952750946245929132332297280155986646837912469470750806343969531905562836453436968537802416150903610182552629318833274851219963984639764545010500345641106599499718347241560449436472499760947897348026187917619272310423256968492483055329134943420880940547573497069307634462489104683689565460275409821046860895340980687152810192321896915201300076200127773313150428459435258997196129734609504611919514207493687247152711313222454277326684719465446996551022707213316553802730631922007791811657585334496186089127130241928360430182523320407310075569787653849746843681181408352547197937225078110774431607164803959548687713752786264064029204716455438741797293490012716824533604567296743238672899120519551200134855941569864885871965450169564527973440877250353605226313057736355150909832699614321380703344840717645335195059017302537925327600413448946648012646197632492986416030790488730734527695068503897802646601559388499576509538640193455415695295449890400603247629519683056684324538948387212961522685247722389421421147155268081617195504886010630542922034083878067876776092807874684527599735186313621102439681099298576541513319470459906223809555641542903690448605604022338646188149719774425971733530923284053218459606844956941751057528459951233434961160045971847123634277970796262479747859453882356206617711125797836210163983902835773569016307356045730031202982363703340678765769525328949770577005130418058878865870541371302281849502915668804136238827174266141098277485923856506277159394406465278560071708817025970885705652891984455219017913146164945207655494008223155588129778557180534103516544288893404127186431777577849717408621069400588418589108546462559027644256639271331924890536977191689470030606620796789668345164675253792937611991695060120278445748670494299426896134107908807683082446962187859402971458456335721465527495585649332853772271863530435942071295987891008488856103512290576672538023574064525284902524225204110733454071530682540413237987394606686132721780763413645791207458826871475665922792311473877977489111249311347367957267549041137142642506295327421492646889517813642242302256210777015598836156958934708056263549438678235367133882091734667379445522835895661148093038657693458864949537089156141905526940314673820355419283065293872289578430527975739403772520037184398256233766408403468868589773328236315579875050382183242325389211887009068924695742583352835073728683457483370819247081926780302618796408892623554169893238450598197010807673380283957604278094206720103110120886267210856240714305000702721757751050833967345142919463133267116016891327144917847657474198850377597517483654604101789482735522717224455681365977190773260664141486784741618323969285087224637818944553247309584296199052864875937398906735327904042486652444874836144233087348299279974114316479824242222826718050676063567292196964867939932461766884388164189298837593134965911017608983936032980961733010607868229986553039556713041761941348154332691697627624468127478894768197483658598028468668486549892401735811587600476594351825550922373748550517338625775528122045924249175763507225394516083431387862489949141853092460281274902194764357010426418729029207354322854911935930704526783586217177285207040190633970657385825161702324865042440937435323952642449439276489244183870416237740734383362062978513120417158650557765599109273227067961814021694952938092990907922847163280765694486697113867133988934711377678759001256150893691409433663681283306965824752672023501762684107758235572992644407150873577687948957915873527439357899170601644044550353902239852047414125349609809415171886229435509923378467762654520310407156253358956362332134049910457377940868430626048498634975960647534582049480831406392406812487029691281156787650353598943751332983165565915098041356391064230724972493805427107933029288487473018459717513076157455576891849390377031719135211186682785047701145194768327258960462603122564971933359662591244113035449830450144107498412611817058932794864906437518497855368300988345590784615618915665476977276616627988185634873854649543446325201402497847812342522747758185533412959961010206058357031850646852726495562066479873492799249244269669020913708010212628163482455977443141830711061418245886462355718801931724633614411966566122143762580218290235463239474721088928328431011184173545109612103936678628419516271736710589564286000154241982231005029939533486852354245285142206046414934520602142788133304792644522302753208465268254815344525906254103218568157891874695363548648921725308174932941622314156820423554940961594215377183640746794200282852499405554869588099471535022098154039394218854556482674706040627022507862759430608378518442633574922709907291771359020515601857668399319911975436256631864283615721873047892638513821390097804362609529348895097989049914791596006511671533866960584932739478831109746355230255719878065954927581639822790343037753556088552554707124931730200152125783605674999756390492064429522721463950700745619314498207039672350356804555035682466514160646792930752125700609066831250624031989066013743594961794586521634897718480191894581894037520512280456811450085150887871325718897649483500808081245617916596037819215859599289639037735645901359769154652204093089464415377370284896623416605777069014572341023634598043874150666627297188466308573317244602042227111328012666852184790876670362828029867131765039610702694913807822940046824909167981903232684913317547994230736857639945125618495510854451183747277594705228030340584907181489981491969797439686875282077077896091055962345247748920548620186939476471001414406629544334702318567993420497130336807244506396600148429286568806077656674861291312492643182771739617849868372955312989058581740133711886377548281199707467391037826550914923965729155175639029359547412821250980191311938433208973021775486686956085789149657371836705920902630492310086717461026632791612527380057225246380768619987358824129072598003508140422553206992706079891075944183772552570313549869727652003289882266790425982720951920236933401752678799539666632590961871476997822412826777762687820088821194439232583848691226237080404513172036940549952356419289785221469080662680120582529802314570740892692215521889602283531506117222686334747697427387721820450082867362354295933650771265944488144961951148411227311196214788993699023085668104656445611163778199063084634813093284850247428256572076030584466710289000116681912364229691315663741066869584927321331724350260733094943536768251310796436898134911953023049195762329718504629631754730148800587304140264657794894735449446076659440306562453287552636995019858135181107603609244799608145949599260381667500241980326168499080053360854107397242000004221801469846683184753107757811488741172410830057998148603507584668671767049621345062643361818761068133492088513273627072498550831211609836975694172744031164384082218293679500764856664974678378652255680913788931391792614766222968639293678299589898202449863730733992296854231685286859288696250534862966518479011725632187006219839979108655095930597881734476924947666949150556527894492320390412901545607341164918621489984832481337403940171948990997063194161656348232719777453136168503875218037706528514391240229749580318506228301625525217430010907992141373604925164823592064010843724867310719858677692737097423265560180261654757782610993288170188954381923436115278080910419972937134936580077766336481034281272241216177231420189050579113795373159771729931234352219957090873651863122817437789378101989928896699739039937711664102036022441473832120457321872576800153419426370514677622861051020362550573608366011235648366929522814809961216655714061244142279611462133131717659630963227037457261756380119903838010247686797012527234956751792012358114143740462211174193851037203033002993147724202721770308616197745012357403816309330486231781393062268220141994264612003212269245706753999271521612014046592775528192746592496517075676959905447422812926113034205482539657897164697593282280684385830244340662140295341938475750799125156702280180651563285478197289708920614322051601673825901791392700935539771005848383454310064787393554455800837400124029386280033185693500991336479179838316624495768082003757968502822553025486897824637017784162387991085606688299848420863219133681757669402348920006979658838629358185189510476987552259847989549812253663491867200902795182945391811557029909078131456807356562785149299855365617867171978141202362069292432738441586662747026034483278255055237594192406829184844443387350014534070523237690443447544610379967330334136163698126342935957775432847946173758724620086606932190961734966343045116712644237755775043901612689010037156541902693842762142170108627957913678640699617394076835874831865236397180563418196603528714550967571173711292201989895026743296023684810575999305988631956438109844708956059968681605167139037367863279450353991460359089839682858677254075211401615146474986563109821085406561833016417290271595024415169772649584028584317259746667802849678307083323517695522543774246052316969251680747840161071014406706119094499939620578298654541204506533091586295067801967689131344852034759769317773350971714767648897039870622883770518648726693143345798912167954752148254200729497219491723675772714808565123635760034604241183220922216120361273640980439861624213309346162794436655699248332745628821580482278092292967200456233383377893180953757787551343545313133809679405127119398742062345421135404582511849857020218754724732006972986692149489535525607150157562013542105269506062904969965118892797203891717622146420333882629605698378121154267151137719867898259671835956783691199272154966898084206933397065550913430614167159835954361779397174202611055462179385911105299456893819605419412507234484926927215234731930738447237275897675261394673802455811904426526744747483486046691432454658085530374267020768878032771733770319872853219977815611836122182661299132495730261369076193450987288245503963381285038914438328039641323623508701941122976954237417152707559524600523530756028297276814708065580408229146457837450638711922731542831829201216390783820456608164602051785178347772326118325145625852536454300438440256691340819976699131016389598342681707978999492018959852287314946430653622734100514267354128169011290034162094046420968493185736157926121731856967491285099328676517868865391712730045100893939266319113521635814627043532124337865258215674753646857833563646120941039845759611461007519390467617709369075806422629893844330535713141149475587945133617103115053997133219023746622103179319282373321159813335978849182007725759027779687510250006953314823997093806915883075024794394051138752108579942311037623778833783316669002195276543421857272884574873185840028495958358333859677129231778121316546561047782082214741973988653419558173203626510993537583884288815094653438690687743016421747972033900440538102650241351037940226629544259852163475231111532341229108421176637903746934834675263986992060610211006656886994516490896622304627667817608522466541211903803575787384980069169763818390466638617974470536450792988005649308760563428580301295909680430633454326478960503240815276986334934872373336502880669979749840225736110490215466008819515825274670373247314004678591557237921638501638003448742090957402860682889407334108092165166548885475474605775585780669483400613364711990606098744388058657024989574677977555913032459710808725999782826914295573439633808402792517180695242104154793902106300341387280045375380894129702551790209679613588920053739269783148285318472955990871773731860373776257707152884074855778700292353679895868345319798999390485354477693887392751673418290955166762980270755789417309399208435152203598949618708968447773447727992028418483393478502589636971987870016289205028781952895827009443977813876331197054999959691746514890323574891305550514185478148892678296165361717309893611677527519830092994749903033376229580155134855845688891884677488363999864383408074744053647388240776992362065923504212353749463783252260947400883923408351077879682243962141208409484763211120899581316204407405266695237215807935634528743118274962334022062918727815720180830161573480419339185395379157720715048457136709126910133452427798848311998263828061043606151211252242325812764764377554223903978940230414854893198016431593671091859176577283206339230658624717270482593246289282254495421325543621022501523811913953551565254881549383202048730150747728479471877554768653538800722033953683383461595450915544801213263743981368112310761272512812671742757211316198901014042146593439636120337352892355195465596340934515813114672018343629385968591562878423080263388990604989493888250048847362447013262555924280013110391031979334690429741847088844475443021699439861136069414656150874993345773936241112973924945871441686394687279554296008833939840428160181180409644467915088017739744592733060769835226046432292252354545772997003426011658094046042666282459450124887350912318907128593836500479791877692253526271496477486772786256677051074148713217711119905269189078837915743227811857781118189136343045493181590475088670025000371049858640351438852428612075735037001465157511468199147095025276134518507982631007602293429856646980147424041657011645004278606501916249406917054369870030967074382427059029873792833909052665803525970092206349002177082563124000499370865025775877248759383727788392767815659421034209114460547395708001673355499056483368184000726348148374218803270521958959104845814682115519771558247042631400654324956402579498775654980342932753415545387064980294812165729069171664137405102864892815773577059187352061999565215946815717808441949404562401313492114609859211452482563956066536866563031818017408671270789816638781247070360118185014912115903303796255752362020221978853382940446229988079819045328274630934680432776774926204092788885320774051405720348355643072285800100690432995380851014442568345033103721837365516295816432502135218531659092753606417169101728405004884015083003875046440838504211707091875349614653513847905585040856599011873610060314503842253899619968857352219830981621054476924629072932837262172908100521648438921408960676971557767076691603094286647781116197567767927135874558754496451806608454525267270679171532216819367994699490842791119265128931711062796267596693484918623034247003596195323806389861403661280050919894819008342988210335591989576973557880279075399269808783586210697772276061958734849877360068358608659322749099225952537092095042796067640669546887536024879421604601418234213907563955949538265149648848759446387892068741662147370295830319443936931803721847998167841144751440397217619011818962446453299780037714439160660734790781929630260905150237246870097366419724931889402390084831368971605748082260732450693641414334985565472882853218124156553605072306398878744777868002728865187886882020229746810900091157892830971527841534579994159298778990459899414150101570592046101008999681847997413418791871215393730554190701344192124455650286823917731448317862053583258059622396842686002320744326596381288715922115239190654784637365410323372333129165022528426523444425352821878965788003366427357485988079701351595385064968192748646574687008104995608038554213811243566007171348053897206402387959100474182007468083886103958713011875831965174432791792227397461576524368374326803122673235473938763915462045740577515340066857560501870132656031111444145087964747146225845021008110952478371073773420438852456531118168903828530479754606787010592191984621761830942246693044300633637861937171823335524391488661564426929282952784900237747155395677785441118358435852685775569786903497001407558520561238653937670887381262131915291449460865598683260593014371025389571475467302420387225024357095540818748570471152840686167719703959984719100264290160583389813944572596996718914351495937904481684578392743179397201708730564499093974167844793692997572122429541348109010223679869657171285157894396878936201958378324744749650280569885690755897797458892889525486693916193067789505577325696734844204725929955455921343035664887982548348985992408981666287236360443424947101970200864964163709176182332789690786606289266493396187215805806923928161827769583868967032948291085264258079938468115125441484369099503849414614550961945502625184864811879845307099457723381710195602126289494305074212674465985197944513522840573156825616598557541936760475482732445905432322125861133100473801328392142568028175884366972143813384857823163772200223610698578428405492799483646651907970243108438269440351659412563369005181426949979830114962028854491083787884735677668085403115611596433997931830846330417262469699608079175735809411214737391456506510897637377833864893035382085988636987198041542287205739454794120844427172652761759117783141593812857967980114174044882688198352824083728416721359407102868823622695667772716923304177645847187137516558977856523527332223488588761314752977517401775192712545146985850845690028809468272427266972417806369032431173976227387460892704952789738233591210337230149649507580610220852627001932366468691489818320090692839701058947304154994657904516317318876927094402847412708954279740992232570801030874229510717192116476564268129898696362132086634409542983966605017713380299864827748631597251966120240337455840522221974672068007776325846561046718619781386909089606020275170403366146435775143562825013524781407085628504844424244834128514849723524101710817831827562712857456337944445870760078669494638191789948844497344957487686406789781208021671581487472000110951125233626149140619947766331643628538254033424584207173578187691842580536402027247740147705385799425070727360375287338729261118620877771217179576546814326616008311367998488431020091071767569002192956985539278501194179160465100661528828713533241733096620160989084539278760587763141124248936539837682709663388863828569387808456148686550745988854351288336016236327589570214071464464527149415012979696676065950809957382542484303707985678805618654758875668393471364796800766771881302775076254970011656469644020401814836248169598248379045345781751113379962592409837491844647291603414207932838036661048464952731896480742744339609526115162123217337682147413859900740117555491697553538973991428092524603293718845105107962660317585831305701926856952722624075100783632894904912999304971162168868144216179199854330000916720717839873733096546346734805294467205671085921748688373140813289531463580430398487168798138904838789432631371564867268407170751460756741495098897724372096248065059582160296620582534256417596490333292596907359632693019356728994807112831886355728046224329754051871469972539473300621952944641685310625876247777024207280976156433983721696482464990369310917059155494796131312226087043781061949500389620333240048138541993956429825571519213958559645071721168265459022189907953887353985797611472617411044539731079441245513897562984528535178990274600891717290447083578635464090130522923610666211588818412928437150056564710149306601399681366767569342146908785830907249301956914594815137501668725396139603962711580488642613834828843344358652179441955634387470915575214583025576171930158239137809523244571435476735709115617488126518525766373344579827557784429073789864980794179727339743271416002792710454807405791434419113910951823127925451377724684890760307623663698557163266615650122902225810349785858532979588825980636030351636159333495200965824235284251980796278033228878406006646261218340867422134282438788437052452442874207371192287929780522298836042557974763751932063180181544569362105496276306600260171740841235192262319105625069091639688179111756068186225081080157396079022860764488128203851959105839817622168702668803332607590198563922413547390516357603984772379666825023312104064731969614057782357360971299502689514221178640370523486116654918298212006925690383814335719730745993872966808968451434780217552454514109226412264393487956378052356123060389587339308589103233921044097299224712624977544640154924092954272568975365907379473006999687955081310344389708685264985430095221702686911957178484735697199151873320393727490611956482042560785460349954001559459861167892035441536271165932507504155763490628197254528168134253403220754999102815463240705699361773429077887906414061293862278732724952784732237060306768892218007529702094346901874190601042423293465738791556479469340474659466988028613891743976735849137306647199710917950647520140610596707906609546770542155021258857052250409280130671944053655489302355626238507867454885911940961278719235091755719990148588384994603444203392463715883194836138306395080566773118612636687037090407721337508736479357420592988632102108806056258710017418898002579380899050935090898618496619304634887447930395598924654323460449349818402909716455212860733925860922532715963797844139399403945252330157893579788832825941913755542727068946877639231537053993961077170038504038582162216745613857835313017087631014091431589965816385166122179668231341633867551970150896678675456331390255632903625752955763451607138792873562481915141135563668040429315649077633921756999591863999678253915689730775625356725632040185339751221742789119959988956646667115852403737366988214256517927358722117940892168133189809418857577431947345187279892645632902287199027314239957952432013160285400316605638613776773218785415421001710480719007525437125179216318685969709284598522351322741976365463594992836521813915588263225675202972427424614319391187209014674659040533801496493157824476192926756435715026799424171085219213434105974593451842201186895754393490711490585900598409468310564714238923035782742398143439702037099706357171352157871559107853441566593789074044794437611457372318939425679073649887170200755167838247484864659435053443015354215070553902385027712215028892547761571792675407548131743200413534054524640740542680555645537911821225987610102387183620171495229591600695124259175788593128225205943823295984188241679836333795643623353334847303030851082308747423564384524022740269006316412757423318683687441723483983265570596089898662844327183105567690842998423379766499260793665538631245981536811850349514779256666607680697434195098303259941677876473427613539542960841685376731464034861706484630770527642205294113750969101200658431646712809669356550136963798044300973189073882220279733303369031336567209944909317908993610962478133905960022040621467157981231543361682532910564733048149571741128617753357115330017345108393168531168232408492344601793136470420185114360981696383976255735512774211813849367431012506873629064314196439637917969480857404851790076177158770382259225391148879043062230648866468193286837059764280625266358208860233367291199601528636284102074795036871486940402216591310510915392913244589854442261628967235054400341066869737559544571460352306939901950541914699998058720361228919906821572705717394356363678908105177271173185291410955416438929955737829869593228772985009361580870264474576029219367551139123455065484033609991448501469184817877693491732839145396918062319029890835464756628967033135374270819159586476425995692818267066939389310323049446574922887254865531295200982851224838687911655897868085393726404060434095992763853950057705535000433400013815040489803367673096077703681057771706199733249347944661300762248696867436701435809225967911857221042496648204537837622702175545737180220871506408205536158029782373189058071182769209466590883873735853853448728443601019453703000827409870972294519086627851433438646174171367932348765550032879604161006012141088186303809934520442922964135598554199794130881979212813932035412075637646222140776478753050370767027400739584929348236311025118614045510043710708510096538687027325538497319698852864926539620171058623380170815153342135977532537975947529840497392415249886541459108811544697041796307432676160811655713127353232628414410802310749025723980473036714472523718112064001034008636681786289791549299148290229049989508454548588801126133361312895422333128191490056392473098208661109920641984349767189942382403573222368802540011476035744395418023819445531955684282143349315694739151436556564694867160782096575222721176915852449644874950733455970331245369331134053155530145311719417595691367173730579455050257121934029187826486825023798691735330441379977529786602090113218747246482129440641471158142219356319521593139969646549937120483017859441128672387978904558914699170855267860009631708748853823694574539445847041517623514663420901655327421899040019896973576308308641167604063727101865506549965122757181275238072948744297452500732236589848456476338113443807620916077371214165146210744871708878549699600877824737964758142064140895893363927319442460420347507285916223398114031689846101989052164292929415307626058089445400251459548669100989730445932460053811327361535006191993895007240318557158708867547325223326533452004481375955187284505426061258009848682998610664097691558708726348444074051710109590264868248543353396321509413211981116923474430540091970191023565099147782235416720064467707170106350394536093292697922906868590437722475635826576757502266112101487713038177647027895997097857411458748121409618726221363672559212032124890653658616409308459887901970405240654809338343186969631197843545146291312485567545198264786635995140695791266014340135811882815334736484837190981642086719758562621506851041086032305406271009561011200736047024847064340620290623593710199513066635444113991539384976823949121716222147314829848469674081451330586954520157151642436280057036070225616619350042323030815941712968751537567173531753523091581723600888732616257805859369096113933870944159227986784446966733332160931856439097955323537879952649457026301189048484735058373737252823873441888003975075670213407574688574156478100353627684515214541721718636802234394822553814394471798023126252706546593123958295077627334268028290715352156779574875119077609915096545923642110107486850359518724290763480330092226399779296744745536550316020192772493579683189813315760519463965463516687822337123372141370020849743834917902192525205921159442284132392192209704116546533642597187985413552996638108415041599609731558968768612004533146198973286895604919706791416801295401592662119089132095141617390988548517420182600216705688262261728845363911486384038862923763050475544367963955393762048987504437473015406238451180930172311626026552579818466610390653735648430835571893140817571814927944574184637494652838067985744822399033399283229734425291914735414469871413048746682258752919933230011500101019032920781193341923919290627877160214556992871911056775770418919360818895630576057802493117750227977298441307356549178677881893397652629394922965114079087151516772529811531819702227692258518209358560711951695943288852680900158198523028079573955420180459225481406670001721369454972991752284360664719619577760696500152961718111677270363191421491997220496486367849826676077219684750486554629115910646364279622059823206587341136902366161251947267818402083370685071458488934274072513818240427730332896698244802412314476413059681598233704468443120140991091404627894964132156522525340328906506347047142316816581385340638802215704282929711164471220820697728069685347911888000615614307373777922236245069473450970682031748730389108199228389913254202966466306519785394514972887860617187105110063836943828691745544154295136570603100184361878092267275716597017321480939265608808535337716759384318456925044410781721106680842449200486880239814017051989091951776210831017254598419744132680181209989606073695221278792817262164196464201589330396243642925791575085458819467913613887051300953630437638057995417195615782504701384775422613705671856629464130003678017151570783764660241195872958891936697213729085330129265935647496435341348636723444065713206066993874395674893283839230340954509946737070220461324868284587278554016186696898726701568530891535408090923764950384138793755048131423387621255053043412588399213574872194019821421684944338379714586759641646759437215165042557893604549138281680133577820453459395847203337584261373899015688995143016954788027393291426007097231162400439747320950597904712971982602376104170411120660474451211728668933871609982862313861740346848918677370131786965698325992905383887768546825328379559952056079332921070322348960538280522316845929500882920265907772154922832374575543435267139314130727165659948000587464005869088638208630350323991119105239715539882206355705930810415304277475175792159153083696109326979714045685912924111136063377488728465881399892497281910054403681400849173299893223414937809863614919621106200224806979145742560548156479292492328236591174453446466301802402198898957533816551948716487634062966315292150724425597033386513273533912432995332397870057049780819858845117890812981800827364380182431066050795309316828575967749740903963325482984288217072345308307744179611546689941560074302599366589613129087727294439542184879118531437413739029888187855544287839829013102410217706190419896320686189142906390896180853801100072408569237398778057163011654003491259350744750988112159031826993936696425890969494807709146582799833057451605735074911584165750667196069491872131387650541214800182219825957714279893992856778054439601588722801209686308397653241710539820520859669091127661569108622989757272710482530674104226850915074546031033693197497103153455503156296382721708528519292023512060069255830459219629975697251467108414980748214108740678623574411257219878399618235841470875436454232348826880055325721393749565540200135837790319047045484077399362474680570784035945034919334036327133915598573679372101999338770278697704441292868668143857740599025525476478780823712925253464249529479258269027725389771908082520989438903921698184734073821105624073070379431684843538088722167753964801702042418478432717403313297393617652364123400357548911129569808703555003910048866408560507847395226184463982316891677530926649046416538554603769221220715324646960226648508901452355116126763567464163728405175319107615137419753426656197926959794367949219186931191165435060738651317927766552741472948047876382705196246371703163937514849638967439324041902528537393908779599309705749259821270245122166364479224286861901352971924068976028228956844811346096574230395863245748861627397072447114830145376529674148342475643833826359649701843907708827839010463091031093149430682305286733685441591776698890926557523662743319582067476372949905031074652342094091178096998260148786491590035207950773991404304022590940209373442091609063356731544246819317829340745312480986312658559267484637749017265110149936929196081599706120383784777224171476104748602895287856603845171060231114212382713025383772493552671604223610282035742453783449900307309594448871064968953131199871507388355568024064810853426893807582987356150494274845456353832380103409289402510399800562449171297490545964415906548940390061619288935471703400632140112096643167142571091487424042512370519915724214179968772446841210022224430185835202710602746902232296793259799332953308659481314204795923439856495451849638762485401938142340139697221700249701088622173572452830792161948921041461174605924452054500372810721824992246189787614652187446555980214080804101583208975372631562504098506130294816706915931691313721882856894346977703486247000322023271162329951244054962342557367672667924821687764153186504273213096521050648205619143157746352166811679234713208110474772671479842212450883766372332222319024109783912844919574552850479973695802693934233224839312258606586086067633870345278036198705257000278677873772718171224103368940882193171549542644900152237044331296708848594601208862767900311070709988963059421905523847158357596685966482986189146342175319358877802644834239431136990592643126272854734716131609792081461033226211747303915463008891618556627824357861507992105571487171849822133497771900072768642506267933572319116420826686755051524259883755091748573095878565777353712595204207696388825662755117982060134192814921729776164645624951126509815178410989668877778343570640329062135457558904483560949162302730328541314406035162990028032733169901026678499712879815636264995996524185450520889685530833887444208038604314635586036943892450221656930213563155915160713233985504773409874755072426699565719712167292302489992164948625260176391027813858622950501304866285176720593206354416261723904812996360851421775762221041897040262042179169891825569822763278835495846208792267587993714443840194063432168081892936060090403240679963745717880032463775849365856319054388723485330811569577696754345751832623791128512394215675341148568615842122394925342457320174091381551767569288624647098950563003746048815138442489264472973018530401387321749182910537430972651804124731014789221625849089970427415261733934213477767214908130837067437475803898048621187404383779768190961540313911757750229643824961947172534916950575955440433551109177986570316494907202203050616695987249766067609392955807909611885715178624657522626960109667217218850689308294475612097361911462947279922149075257660622263502060104279690850136479108906491264381768653887480183568881585213101340742599992688446401655448305589163151825334941953777552612343446193399591660716207243152889782584237133875440613961701374105911214151665440199010257183778014854709604156641787122574926875170917355984299482532983021714062692254978209357277196065601007735494645739062695108692420040786920595346806058824144080303662502521075891533107536495356749590329584610585258753758994864652784492206904355332483076855862388124022861174755403823447126927227313459350459686137839630284793146376300803236889500421422177066592059020328312366051726556601376299682964382337813592020635145635639682172215915589113449407985193170543886322428368890418577401964966653811866626584665465305811163880620030827967830049356900386930581568983721944980998530542902324061279923570872608913427346520728372927113449857515477928631635913828001628037797418151500335237982098528088330092331576320773347276734654620175158421734667928074822276926259937170998769415323702159320775007005616456382183434546235736109463442466536151915612600796102675537300431581995514775651641805352839406628907825204427957067759282484067089056911931988128544482870206572586801944478103232042467283376835419022057559277319420440278732117451711060303284504501257162782331105498948800021658882289128052777063506029417128935233470887066906446561992753884773261560659823658379894266285366884058583671843426828985731080004132301379685612677667844203038414374838100030439317469230773142129927625785739858367827800301172650930412568730402879867434146585473062393259440432469713816150297088219447831843590797490964907878503395286400653397317295601383173239157572138155813630663461798432944470598326888364398588717773395826010411211260349540493719744066960751435961420597423568909742756947822829768613155537699822248952895612640860239818171808594054313434061580962395835486961039468861947439788043960692712412567991927690692151168579914531956923231199430263220298772213807045045135123244312532877590960650208551807525547121980636061335190142797631388449736203872766473200394421581598431376658665970069286120346961507163905007652210404919947952413704042558102840201134279491568582280160321149430023832484557221444406235408262298559154475819619729260967916356772806137769507931385442477402474203065385196918103721947414885014752986318344328900562667843683985917056758391321475592747285959655804938138217737351300464065788269013742136181524748736120497376894641560457894253804069182230975409766706668671654802971624625436031257076635284306979052941541038810384535685956383748227002125015018543292614611956062332177156414968848201537540838325380319644541738388627016807926810854000424256972230310497607785061391542879605592142074698616715268063453858254747406765141226615850511064865914190901009684915883410381412917489347624240171642021015180552631191712750945376069513769186150733880354680026324172770734081217684608028374741019385913777249518946918718836334535135721222467218959189172260011471432896094784883010894719369276485475760341183087649010932839000567088321822214744545492694644184635978391389569118738074404879328823968522560022544354317691900720984723051102409386844329560868275954001459217247001652675185299690459117095126241178078470263791007848837412818210340084360213474943131438102812338432225832137185044300029956086620684664543157267798169852510486979148492770954795154854678969715790549286345721218293343217126727040433785765500558995503668726156119659290165713557935449533966470210431739325385672994483425009103740352126793700417652035314700457454186473992664940468285373193497978061348591842963155147671354157990585340336486388903697550264224805484038891695856740615453333082386756195230359955507674412730754075163218453933789429436882196776584866392988624598299708579350860490574880862569546245241702110715775333980072770844700134240308194299798359704574770665614904138456033162897362853246383833823279333601682729135814725505365873907017939350681238739601865355230029203594034353779389412315565601522047720005873229491672968804434797389514151096980185860137361261318146051950593584609700770190025256925519367173559581689448808800203011269142594700319106795655156766371858827013080249622403134728575720287356436803607774024481675997305829347637176166713576834391191536764746882772008372076908726087540499178046226160205090670168015774094941841670008305341773067105232312665112170575081388684726194321301865317547947198028327910126256427083269313411501679274666888180748890932136574429919548438178229192253888704744713319328136131148593414492915838151584963675541231571447472513282946682556453128109231625706783038484859076975689231033833977222442581222021744509432860334585999627576317018406282910438513711730248730527689449458365970891241511543344014919068948229904168719120122874688304887935782895049482657379816552655249172674521640620256005961131532321568649079173059465026803202278570649952300274456846086666117287224994966676961552666442016056637433260734238036842145471946876344700566670890327913531582014749991389060147092868337047524215346166699812719082807573361680339988799166684845414067458708130249391446631930048397329165862753714504208136889575166887732206896470703890340670864463037803504167759602435490838271864918732522897459954285667225822523449694039642244305137294368004969196709054236023599997954499336469466515026761049874918178112627781823011160211979130900529889458468989636349230461382975277017190251665683388590926672510608579365435700838491337187339812950584010942821754431447513396161006238729987358497982104570753399096930636309844292688976444808367740832255974705432014507617590006124072413574223073598932399340471014386400794467459837161217039173052709739228658801750572397229293093342802329725712009119397838885016517630955750303869844140522034290252579388899436362744522920589731454409262061859792734525533188222656926833771275320071869702361755258261765384696278655410222297943847002404521998337255540731250004888951441968433630163457931471502981378681121605988510615723929969741576038850011800497795898386051976877716287518760414154205465336731391058358708367935459428333770298438442773204229817383313952789195862739005192502087643990772522395744574941627797350507101203123423891554528128254525069373163830454080665650128432209054465773750216255025987376423760369805401752865418999732505149685585909037236465568089876401755269740218585768805309785327544041447188667685287050898703043880467071791681456006479540843866553225953995271316575964824475917234292269886968940852238875776771007418403843785859918183852739557678705759445810723534753830959691419627383780857005170547472982348345085588341447087528823192221820471773757249353344541489713272558919554202492488562756425352358165996344260974522009297976137095684622771126233809139025285283662888557316484237660074836727272431300862362619155751329303592378973411863736942460692813570858807503306957635908468680169648873296663969829486908985225654972653807147616422580813844955246804444285445269509455607868864613291077390233067344345229025652251960760622236592381884439838688882429458074341721027458592982992827688008636353690214257658526525909737610372032365839698115497243762145751676088283899821499603698019619376494295661406004031421833017439115071688494152362626828266395298427081836640031820808137536643626985520020490020581994608559762600133840780987599766709578948311516398983040262537972283487521132216160893351739937354191952666298927039686393356614268138718032380304586242894220811630461303132081983530886592878357925939039749738823343872594226714400211903469513430752630639494949953885544513856397484106378271079467163836626199891754638744154159380520178781692007964783576873266819791459326225206572423826651948382172003406741378258974496996628338843195929087853890583352589813940996577500479134605004491423924319069567413293731073408788541572622464338748715381276063142687389042331341034451097679013347262359632014606290053344285669844346919285894592668035076782709298568227099521286456569442811293165695945290511855497813720997012222857389562618138249592866816847951443863827586932729988950401352420882403871390728130489545425524499732981223696888649236455778496421295281180277971965139906283489178888526637771084717839148172618617566841371470688571447669023524048308137045428799485795782950098141884999592224049729852753438253351473826454425060245123396052581384953555904275928658163171647736443759587032080393062547321083292574794133016446320843547785178959033108295291467615637848244285368295616161087762253232554206844146026046243851449860864128463221366054804309547367473588004490302878595334723114534938224753270077470346740098712802822257130139062974264372472993569725092786188676179652818164194086575883681630207548420851574710345759440883226655050844247252954247220955532488153221807604831702256968950710900695360257127268906425391254583838389281387572278014867329947754947924104761551433304228093273823298188710571102523030681313982126386418401964635107455473587378176679468133384404327626789095199856479359362959566865331028026025439494998778803394502729396332673330310462303526875146385934729763826282872854741507841321140266173052036260628349709264623747258528689757728211971757505720572618306781059372471231747998193697797931909775886501531215379356224708649255216012262823501613609298819013957890614416538336162920523885960007577377539334668277233906009426735863394617322298534303439613512698619100217376170169211059217175610084832690642097124126851182578022503729522493939449788602935399854608581607507748651014911944260114081195444221987420261473161984921476615721705244329924798298770669906644707539645425965851314686257457772293622699367931873268163875148866181593765859494935398794554343922017846848220769216267042841593046409637592614212042801086384725027186254389640228189075405171888128941961041424945390021880526338058738496989588158866948718561334737716946075757628742871808934365310326443788905481261871599965329062934520976170657989753342597148525581253811660226686884325169892560530767495366999903181106714071643174616331811651946031657760899641995396944371244795680156127373781061169203648420594358805159960200562411228807918195100099972639534690412744118733639028846183651868653933358320363170005639999977979129039207581160634479560868879855413375943164537229856162377065730009522967238086262774988578022017358178962520355795447911760828777845056949145856077474108436548972654642890075261947239577458670984527791676044170101642639467504748070907110949861769927350500579454535799433452106779938144963307940020154728303207863974160987826289882773752130288892063392091809376983293796741580255619375952687031513152615166849137345425358872096710826570562804342791082896040292570423683224995828427165976277484593186455413590692376636798660047074254972486302152974343174216545586186175467012155427593447943675910843821191962317626326123229259831958773185118634869065734662535161430704898627743784129171195053218089623701570678634973852652535693359355524591861289565351469564537693723960491221889861303139253535451791895316418096935493692325340845798731293411371242210288745268498044665458517173650177364219802602787602104516598211854460671976757367098572912730361367288979216835191666448362174268551851148340275182591634538016250928571480300308039712782083180923657482936980113312763774434891433501015624511407408041054988807200811316291545236814140851302076308912912218813315434745056215783153982139176761358875410060668656945869314334765941890362218018363134193590635709972554709859654822037827758133066045870698381620046750003937011364026101663214463563789559234157522644484594549498435294601177015425529353626771468157536469757543145127463132333799167637424433271324594490352414420980929788884481869619087166076903523230834091906107332023368496910990529514619572331784883769541030542483197763448621641315198368226899290027760328557983136362201945274152394267982511497383178132036699249293774373543791154706070951405231556989652886972385460937288486502936453313094147564940890022146789542095636749037552007435327800804437199782045295568890910420524025601972606191087555427255704454922341955743488796031885679519456056133640196733382784936846551054700095404489784490651351530755552013015062083581226888867621531014614725093289748613548932870539706291393441892333107404068805094598461296456598635422871935192941608113892850270094346145963371109007752119658230099506626245657011135848636501866504707839464377044091223502375204220676912619076617172799418227222236101728847253671777584332583077747088561132311703805727700428726807797608964231859575671399427899797885237667201452906241878046931158114458378832982160825672369094088859807149795193803112898285937183063501347527015737983657863320194725598555895583587071138334713143710881978988537886468879873523756977444280609724387080580463867811577393239292564551939364843687621375022723111662093117480091571369104210149664029648992078291914319393056291780697361241049649351031644090553032931618830426425935204017317901222590955412807674482116390898969270897207550204824192884637858162170512611129212065959418297991744237362912674483683508938274902773197533081364782683222538213668777334391240560961665290422420928644215686564130232507521505411547094391731787518519227798841026466437453329800160590148533897220562268099003563267813629064589852439351083548781228556443950756802929745554087241668748220530651951754692527395452117515280185393688380782032632486160634321896180315081068724353345713575233172188629456034127548832251064673896956641180255251167935781118558871547972739158576490959043037391127405654208877127393124646208329206017065834264039034470722700213126700562570937497896992276290918948340374808761262209647571213860222148009772676267113631717504762205724853671207496504825945839044519644188271378760272437845952443850923207884370276394414842594853008102976622184144069205948453277707980984667967584476713649921268708191887724114971554741227094477269748461659852944650400807170707162662951516998449754425286926584770766463520994263495994259265075057542298171854947578729525936842953073628517675437819559355636583836993420764110477981953049108538268002248582566356537675635998837082197372612074169231218353490400688759163707903028567416096157019681430811776486868102831362648676888251222026127087032873589537077361490060345545219919609886007341223880812365284122846040424425565393415234323505403040009486535450681897495671365118911723385033162793334949427349247226921776630328044402286973605327957298251091673711328808594979100368718415005689773930625502407987245245997320946778782814998357479532738444903749363174494395258911250550427205731420706154121396358283986793866273280967776788896462689351234101516044774445150160535611747793888325200599570777784820321477703841151186585985936339365175866346221761749345213064311926264430961361551846128480667689780037228922566028853292014610804767197400545335253213814704187301672830693554419183840744154787917952449829766082545554057758522148139330905077375989524127243742013381009468875770809437838465764743281020523696038817895698965608956151866814064661386538399923790243672690687249577935672076157282405177103636627905478701851711049908336236339023716003987197795050554295712395072774277496555645866993513593916419076990914615724709188749301173494626071821074513836738418483335920485127948847824683416831380534093734276691687801559822498808319286830275221470246201425985322384854711411252404065182301163415980575970453114447890667915796912515846745853073465803940827243851416732792029353108489422498421455703246670172442759618915908724675736020606017123370830861752300017635976859195550682209232167340865710323709845156043323009805692867017506126117194064582239098020966130947561319169151546570697693938538878162999063437677701039467986791227365413675355005295066748945144457900997501050634738386268808450147780646677312959099986038355153448494591719087297596163926826088105327488627731062153564256290268399012682399593061241928805939356707264348112356002179507708309106876512348155682129347439164510467746485244308692916185241976391192611787394743164661662365724137550446216277241096907496054743555095300489184554054106963446898880006490662380189105774957748450975803309361074627790753441735675861800398305505848848103376563774503508876720436735223815208027721464198765398716674373414220367047817201566890170176588877837499851678870420743334351960939593430782009144336977561465856741234359461607058937347858734390069782265553990442328310835686142603815786790787373107156880188428434778302484789089810136368982123608355995770811598816451975352717790196787785309609807324479532748533449801625236548035889486549077583233385362748123526570688423045314955524019951995638821098059270992055147853130617979184797773058014194936867685464765978359062988614126294279146200408922469899210487256677355604005416340932241371262242296132819715749242710958983128476528826212729107196801349265081178798294876082285031489053173109133239296409322478478870074102064984924565285230265023782613739781240477861104621043317123772415403469358105084238495666497550138493974119813498468916704423727721709524686845150781740826248150271742135589350026973382601620784024553474114725928929037249703025229354318751319326154003376489806730727144403523491738526651644902935010944426493016057809014185533100884762700052526573765790220104922830454163268867632820812774050131617130485549707338444610089702728602025486987719362682083905799496275361516339884474951080086735007106676120784576235670325140554332546867363560883595443673918549849964345788413045087952588312087740175161500443164633802149506478556852022434995124008397258047962000022873196714071643075044623286714054440975120005697794526682675938704577604197810994819048958041624014558746289632958110584359367469047733778086893017660884507366017554405926348731247083939030342217016286472386896255737116930575388146638772914960842561744903108875081603130127817169224789034487775832139720993700868502110415272769002432536748881985127949267294153924598268972146003848246986008244310763236802418549645793071797846982703237912767588995882291632057411338420718580702667520488298781567670844881195099853025778363356248857176987944457421563067645337052873043729805021327674665669758344569366119185120983380130823472712348284227372774898430499798623682582256646881835736218003437878191713155696706977704768034664969811912418387863263828596384329964300027100293620841179792285406954855318388957835814282190883753541465667191863815789308975420693188212554214366499784072242845305553634440747309553620992050662128448907327930852151552394714321622255620393095825208585500692120830612792272913015280754227829866163631389847143538205065264817691228721788767271039886040681956729068431428383794826593118250562631825174837282528892163574549683161846799690325659297866463149020921015748407026649610380597224355110988836239158152304241399073267896663895801143752487743275604537106558867585127169756204165012262776637693209923047884938740436643283512027372197383438572952746188491907107305159972831477588492954947930789243993372206541689906355784654970993688997630532149396169591055697181042825399247660421382194196825660967217097923728925400775983148341157094791940605112048850230525943957567995021254570131473856188356603207423993775607772245209294078344975626427356272464877893253230802619722638172070328642756799987577421657792248370480305302638988817977568026751416140502587572822065560865859403164397618430100774783536266203963992015230243250733097934011906593281892032958556360578924252024096775242572299996230599397637627177437076129746020568761805923805562606810228865424444604047228446699265643936153027560856196279371105358400340111589060742250292786692030171656225073401146702536452600497804332370703718383548613684694171062395903295811348478743778700450550141947566518709924104703943621791505125676815792937112121133836696068630979313911729559737376449574683117241117211311385422550148148693250044688815413395151811358799376378781805217283233664567730958499162836308329222252601926360677783960966111982390486997893448860292186638234855406300531747217127701934976592155787257106489934150407442110287293081966246734975963869360499223038425946646455105375329633351689504725249180713230811690105095849129672771904640541610085997279916067651747164403829315373148270662163191553297636636089971501361461599886966972826845258774243300704443729811870472414266733004987390572139682159728279593061578991595943387402430766060854339590217322650987027534880533018277517201392391502814634588780313415179838829865049618233136152126897330962181760317328931282491331335336401935539344303054359948961301741490038380918805558218692151905478774207446509610002863456924936757798336285044708927968407653919433738700266144539579335666993963604989805960773302566893449585633932491326308151486322091677884612102849503004552256345580075539696090945105470038802389378867709247168953330148356601948085428603167329603420628808025346716330007025148051512413417973971379256274893161236101318910274495841709121267212910288226518193802868955558199477923496175023047651624545694964919575740017055607366973163154395272491651710333754092371590356215782569401341921281121579091346837029728137639395053163834783079908187821613884004171328651494769837547471446223969593916110198347693541108923844448526485987923526417192939987298326056976493192044517744594427076529873848906511976487230077102612604974122070396069251465605971541041764137024932260832653504129119395745380351143172112731216176525427896189778562562832682740508471767161036917761367376983911593774748412564999126920549251431912284550105157019404419248081560836793810710268125404138350305425618314760498036254008726319877045134364528253214467330738828329765308385133833540795001676326218219237015559505693396831127788077691277880343269116318758720642585091114211118829255257862464842801161078123940610167393580497659678657285491202660434306528141488022173538982198617882069338297843384258166571754304652445069485078548358753093693096354896956196462237931677947165371415257852385022809436012917093719530489452352670793737657926145346317122727087677671383319974162805421882534221623156361248439396182007831649337590744007056705109177085038219532088679945195084259813139704194629522403017104375109152258715142618498517915677213137070573037044365400071190614273313202171357682180104237290303002761428496814695334452998323351686630119858607255146130248077345785465050418676244351265808721739724553017559115273273858645432323191822162639573706651962856359714435308671867660766880685964758513933207511749378086841175239549731963039151143005449975016802362430269589273619023135237061253563637365574737813745323485348458028148092423332787251424748386414014285154764757459631973251646373569667275751511398627784692062305921800859879840224563766260905173540849900325474641766103319434438511751479611135829659058588458154085776160514672360555834894155666352522641575562341242878546431961523593418477300015974089206244515342452726062581414034877955532917567358922963013135579903793100227384424442272633199930883900264504583925104484393475726866213590329782625634220534266327987822696730743690348778664447691824425217526923548640583583311041596355693842082717134086362028174725338580275843071219670554778482877363873536109802978339773345430978598793282296207588628546251889375571107475866086180161354453837338521642772356103691977198199518544581786771992088130218430576118518375970550534375505891544999273881448403218508614313605492985500837867874147968370674616776791407002504610159019230455016872715264987731394136328250114983125445510932688384536410509304428750378876871142435580175625628641148488386412249659496947018326895086728147942624501722536964046392257363012359684277340193006186543280676485822806357635663346534622088005702377041708606367243814485526528746424962956134254853880484222230559086344948061089451083021048783871956270843933682689206439065657576363509951210770501450617821745142471082646116488816891025285009610458464646335375736726618824270715166220674436091223585911200320259279823919093192531117391693822162312967308295032150606847751994926625663846933390135255958781225700818973792928674183295607856782566462781734412100442708861014658327756921903121955958002309484040397009295659797382762029075140984947439447266411147118611042773694489988426372683493258822491273143570076093654912827550136827724508154723419625934069480770939470673738308410763043971683325059946544553943532299560918288732535978849978890395703266498957859352578476883456229184007448673941767100753793983345142042230332341576338734839861433609919085499175217562732733984490196298530628628622895124747878790040083805147179064003602849761273220360051353582696362714645348557628932150054507068552109109390498984885315712911287102829958850147651065677704766637677600136334796092023522560950556758161015429102850451009608289993209882080674880898017937764399360172409732769892112517369209417838212535242261140179138371117064138153317612900734641519060396645521518602893148066470127815338415872916033157361452137941240396144589432250530084808415611927200300519460740689295766959853288005682241022469120287236399050096360206649906233001876351541821913238632173334098715883485297326623654689008819977919042245755217852879536298016570449582936896804519882059722732909448299507648655924721224944331937812684961395688147618042714472516477105867373559380016889147122426805769246495538449619814795453621431886472424652046716122792932712565804686551280821896233913669815259045151156607805764583776290072577052935281762113468534481918383771959391599610016387748763037194160090436372192625800628931732477495807245963738749029650150468397131229513195782449832811124034235376839367058228825430190569885160426734062035499227813735503226940711820986349618514768794835245521476913933638662180261992492043536508895389402847736313679524378096092030534315011673048880703094391997980521867306502023850100802782657487899587541857741757011853588857610606577087494678898619283178271755275736136537789275432521236267956716775830433757181969647234030821345390438519732430487349132193993451635887199207942913466183370242466598954780407163357396704313774390846216336436654249388634908898395113804348329783461221260580187681146215992229342001197647286336155956849833632103495620967261464731431044125567202601561409400499345842669574460504901306173219612530073850937282571995310995337272712022141349169280295325606683137661642597008853485802765303067060184322595729780749222772134439760317529631931332126372583060856282437399044471668548929082572524145362082590117916915608690756231164461678992980624046898517828652431471216765171576342495459066890214867901828245273098996842911163177254932602465902348259126177094430325074849661634586741197955482073408137065734911710627215852521304255254937910840388125539330129517359486552552447004264494066975007097847392246781318772409538242591906192636965294237605008399832889012139792576371327354638785932003651604749395560432693482310412713687669347946815479513341803438343227756955281619714429916889098294868396700215524920694167472292889002554831028262369274796399177393486118802157494798313902151066687757245941273498414187006186127606222974169780614617146057148512667698579293657343788514337095904911854928727566342660065308141897235294324989769886760511277219022251053329978485965068572546840585269557765675053648790839039315069673230222886602676972664373129063657667037101154374871356638502088492768573000212848131162586261642451738240671134812058046846493639768547192694202653445661248495625773840731328040759625897810967858337773425044007797127875459543240027345517754217516567250268513723707337069965792284499266374292898361512286545570102410932939232244345413341519432417522882358354253562838056044165268835799554052060699265404784825709777633439613626201778719917213159348326554416549026397721990927636841428498104670551973702826126303090299368818561039414753098763914509019179561113558619971448032530873144160527659924305610835916815928315989591462556351154432926749922823795940339363328567486368258374143322299132951633318776681298692129497690894807850255668094540065930819221425499792953093347739392841357561182216711447214232458522674955009332607157378906057834752616755696259078632448512027222326313913296624957582893981251012242861555035935039513911120005017492406680601478820599980573984971477366916664458248297356603405580060154782416069065966313361912441075917120409497303640848559654218234095681889794458765186407479158184877504408734298456363792430850203142042114346317947283059632685867836134492642346815607826640283702695150099204659177619043175631428761030259417388402985548044864965063276498592587603357568803419492024626513176871334329136336286851041157281632787552200984577965502932513532209536920065672763519338469431395064268748887641813606784333579454216551495325673131129246675814726851838126676763556547871148375474234222482257574633384395163886034312674534537200658716380427812183003798690426361568723632691029300974937687308511598935341543046900035510166848250129628233623827569785253319815047797170905468859395870784292509497708422524504617889095570523700123577930811208256563337583314006657770766067855685197221656074291984503866207259509887903315136404496835124855430205125200371278394437198921779445317188568873888822382242359251525435320404316957821238903917477225931418048641144504295676814880391058836423051769773992015520115088506821074972408672157601408270116660145710866796577909497335122810659813813975566887344063242168297677296777210156791009327083380287653811360690258731788268654834116806595262839380829029195704444569386403347529774312449710923827958470490373883227301295090260877811904783719130631780833243783859458777843763250189830471187794682597350220577624304964466726185548433567545224443947966322681445312807317848595090289907732542922348684957748536537335971740212727419970893618068961257343046744964509105530482080791152780404793298219636727579686208329280881983521732312698922894271072642687245895857354130071259529877926804697135690142131744115758645108735639279803964450157210167249175657235141507607250840056913490279146988747247599553185368602835618978164925674831742650882206476187568917819448847361722752494510567523160996447661482213886434137414520116338313353334082868595777614973104717154160271923245245311589815871687425623969896265415124110533203810597857502345650534363713931795268540203256866330695020030308504675346518193108663477712638893780373820373133543238705424664182855181277563094045505831305691942245450164464715125667126843891876272458967675528353493689709980227483891929246255124750180065481629740656256771742480100010796162965903388048313185388376841670255758473217766216523914963596635652650921973686286090489414528994143409210072045474999686905882916602086275122676352772943666517468948217809986626400185092953806204937560918072373722945651888399865466621255003342929141526874771874853722622718955552390971554682848225396165076942287252836671854278520495535490493626562965044407037072745952023576367989265538482051480103855423267721164538740936810800900475184554974829179955530381836461644924148403376717551859775672681908815304920753568081483560804754543661415865190441965959553191935908450600031243438750329038090606867334661516752156946170292753620735829551403236042815103073500686159750624706117956390568939858159203655837755182355409786967842407789262856522508710937537805112535048746035479744799473443998325887980717990582048186255044536567391531177752256088024729346748353943575193430294154079196903299144592089843972472540148710005617691732877504482033983188787507896530123912486878508841262459375543930770094166665733934661580696987160065303672863733664292949767337410961787685320364092704820660534239026524705406543442941952713824272907292352434869035891486427466228721152012323933716602961565149093331628182530029734175330203818816783294558252544866400606409830827910084578911279311161606359170149944168274920714619659365950407873940510543949230388717212603504915238195659856561391869483306306693912388748986268916818372474932809018949613284960803597211857908029263226142358968038670300299287088767142683469791725688409581640564386152568624509692357156247820907622849340848942672090481359582115827097218878704555188519567956770574114811394662804368702163376097892171450979345446140909080494197930136040698896938721364958130736029111190679237520819058671552003836261411014392988434588641822634826444171667233880124536677259720654293207343840888301225017325065166760550140609863671448800609395573272299560970923357099661436900738206994333482894902156931493117450795207637676380025052972236930412148732027157744656192383456238423577004887895970418801555222410236465288242825553105642723564515745929013380267058435767599314013174055767166146049501279891579213899185746959358435233289331582968594187643520974063586285152756045525709117699595796951393811190767855126485624989384830216936271120564459488832152808301573750111943630576299290972953174244347534361795656510871734766154908761378853972209668252262885473607811108933045218352085960362120583731943808285034882677799478806492757007695653287971424997777751888444446012142130449016431763863246913323902036238288317844781166165495157223623958928208684674150273726565215910905752097689816397562452924616195666167818967608467959407643730504852058389011722895617414569925231942416650364074845760791857797605822607890702557951418337437981130987720427879575438930037084462131724609035148631518987381221425600339738634992336903245408163026593122308509246279457683820361548373326317364649075388493873231621491257076064398209405898611754418079773444315530818896016756802404923521751044715340365977827254777651219838630149647740521727071599639979626938537911266436280475722711685862209231203533776380248734608396388530553480666184732655206387165991405342121101929962718274069563801878749312698855781165809604553509819754387577336010860627870536630429696618958029012698765825272527350977391870733968507263445153123654029446301141894573067802849737556428978290322162648780682512524608681113270705465846052339914312531773856618107291016554457449829341928850464616337366105712133445422389929419482902494090586263738535653588776831784212115086639096142444192878386351976611601057123335643365636727353560966884591892828120070121410966588549711526306708099377137346310194501286068747930071253326462070187605632625131363826552854638701367451163117605318922509651190189397769335576810785739200446822017579553303931245446805087361031650123729546300671624840282069262384682844296408028608548037193411608333211989824680281095230870427570754917005412072897497628090004825406180904256959034432206693811592127186608980139350853831495742913349938528099247931854672603559092444740202207081926440457542372873321868293747744962238928393620480445387068756222795131146817395338409330888540318404906693462052879436021347566593429649470687107781996541688981749924515006780380854601162119802801377441166125570991256660803245339250774877029135435286274587260388885145347073774466819098133131322211134925407159158848412067626705991504434398771930288943180560574960838747866621107675411317034457708569266078451677780523854623277395923009283469967125031533960709857375179006619974271610455512437555104718236721301846836022992939358037831224008329220479447648076444905763931793562691109532304840446775714024461126262523978893209991089521740150307832214088375831896571466740731600302813306733134546005032789801561848512761028440718751103336581576088182174712217775995599874112045026678929969941810925686852377375983029039697089992589598313515567549050009946223108847276167814243494997554675079073312882834665295954419134818840638821600661931123034169030182770993321250537203619104850492133048727362564104798021553206886535596283083643167149130713558837215694059446931890847910390986832415237622447130023266267012639836774348322487860627690168348467623812351019191320049598484720500475203387228889723233066628025113916824702612686186500913999058728114675042979846226543973566248941891878727504244356360909478028012641524298402800991223580828006718231256238439503741500323109149456530931030700134532784796786694454541436780858061468743074955420577099043591843772042902048457500589108533203872842946502151633235773356336191516798749307627405640088691476707659014554941623222191657229164453043062834067114110209608674461552227443604458412833090603344264546848097802238994901725971245343006331748580933707601855045144766610471786898885148100506747827078958338376587739779211887822695874429797514555906384499811463826952594517502833752088703040323949567322662493903071512743308572001085672821325692751679835005781945289405370252618257558682057320805115138667406877010534565218537120031008721064712468247876731425217689156437740923428292735847811457516892999904951585172190335070798300536562847973375606431497563102319561560121705986281729331907724221745607027701500293570470048008997351787538421894043577051596276096774212131919570792954964097184576733174049815870199110081331723179165507597383560412606898932324579351766614531515512165120982817304567452650401146618181591154100309467687069418761200492767546095469818764347739787587260028701756661281171010484095221163605751172821998544925339036927066935636197257093428757635733480933360188387632952559657690480430072064280113199933446566554144246022109731757965478475476474099253049493615185973516902624823626511050363278627624348423317713772852243439858038156991156973554249352216121253300924128427890660389897324169801423002307000499636165048939649626407056335518451284165735649873638531246262003028639052556715830118448781318070392057570100532684997256815141330474243415761798573652943756321548671380617267556799744635098244203082175174942852531177149427632131065817255975164134592226802239493766293273463514353334930659652415032186297676174423670241687600623204056464236465496315512826989822091230823837344437398514870768386223302340264738126833969358619795406016284022023001212494625172721375065113740855983282499026753198434951543514560563498991103030845938609098532200615303009521204887761137510176016081386242588354173606379732426318693216524697185581876636156817313913215425809970930761843532309587874450856058205210595142003466521101184794765653407154901737957362498805529447900411745854783938850286123810701921799325850714314298120271557382228884664643228130492879075133574799997178663932602396203077375704533511954567679714990134172181259387661180640972808828130326793510722622712882666906749276397753371731425872812891809488740146250515145460496386220203977376888469164059253278182986925733145639955914606686999603444995074320960823529511716024680625251036514275833596561623833529120117197284654084898375937861478724763476778504665027355203922954425831884918013578408391495787918544678817476964188442633447669176068874860897557165815469983482994716095234536387534682819532774545130541823049249721588011533389662714584596694246757210569810384330770603246198243352116326809967030345500339371488288566964707901192726403027487768012480331872239185195744274445318891717717839130196740076300724429825666430123252615630664815976799336574901361457214811412731718059324230609789083188778050632831174510944110538310625762402743008568552890945193734928041487019678048477658174494875085330006005697231941872447364872920747493538598921755741541302365277048962053011559497201177232315571538930954580641986584723203138729998573635795514130188814627474515310529875454603606349885166107473602975220984025498166000342752558871367049412066653656679442765337943333761815343573476713623028531441206704306273360944959870745605730561446788917704184066587771228916051936935537133248771866182408575092234509395887581767063902687198211446362634488203857477403622392065639243164246890856234547770516084736727314884569096289708184616105810931624571304473407848358727059414291243690902637250067534553244457271931129542410965529689592438105748607907079081134725278386448428878132082547311560576179567739055463635859817967005600946845966513843333424371983707378263440402811291895657682763509121622158632797829706892210300061307362298077859321347021998791524432533596121839222543297422352754751525149711870548114425705286814424275935907521265004359765855191665233635106084730945309086525564497244495588851707224191764476397365726297005016564199677906478021546717444087316400894441942650267535385309869046159176424392903128931040250656132517178501770880889072213265941778636936984990945001523757695735373512687732144597730001226532912972146221856135658961088541495382002564494052879464732792472296984104897648731668708970935497105385932739723886281749516662694137900943243794759323067561830006737144706647931848485447636741832643095779150949058529384644913303854767079242239040983823819130358039091008528598061592244547969698163238720756636718100990482991902778816121505662200149279604699295945646471185159450961884682061621749753525601630159860135982536390011712842727250367103181851909117083830670053359887550951475562247269493466143728797224773577534228240041796650794041188882955032434129909970033468515965154829941290856916459466672500252031875385544441465214144348853812899221978831277185868689021539096429533625108642651397382420390216300830529892614878929813697975642261501780969564459736296505715336408460834787527110003423422469624492642825705359830811779078444630720419348970877760992884309512647024643679827657220430983522506574219256204394295915190052028223832112250546297527508863494627795711119119707401263437837503313945595229937801962005913406547087092917705706267839121101133953429450056199431029605280488409281456935459838925690569496387083792381592785059648294771914599009967040600127669535732382744843219900258583847868449665827100951208345850997385043513642626349520853357675225363128969935405437418294456280127482138777078255462746380899592379473570332244893025900036371599632994116650526376000236811063192524547780933261245255883305666422562033914926144368567259217572155116478981664412876500095559595916661491115839862772655537915051601213913638908237954076534286282170327339026557273204990422035636988011726254594217775675768444407291637604464202597723728023381370909893599355485381575083459639724884796093256369679979657180017698648582651583327071391519394313753025532369598324008329056414617320273759369644857298749016660305234477532828082798771172545369466292430268665517960915227815962440322961050290286013311720761238720769873213621417460021029344370068906764552689209129686801302796087242067552946361863343368950982028811393027913312090454210970652222073693926883838016953421320652372099107322428083270884147778356639398725204887712123513852560106094855476128568592331862778201224582005045355290540233634573462398263043066086716730184946796937954602970382584833126920120557338791688849336580112823240222328317075161335736453379997234565313609878908562730085392755043205224083793916387132306678904694419904758696402103251573411144956885959024111657810543915364515315765028448586549723001308913421587587663272185065180870099506565941761246746065663552134740144269359909308075507173628654004024390299883346998405139312087558706480119501425473877576176830401509915024327695467275092096577361144814135381167102489386256516854146455508652722451254428772143429029457921114292502427429312862529086322168146101860321744703550724875400430487825938878055676532199010408202613675945367003877759328766192784730810230312693314317034785115531789386793353141313239927365480107293658743310664893777576812037088722270733389034551642134899223348498005113850580967083823860772403424389911059719984627480141137606157988357620968366967614141454603767885279714345545100169675554775664392281067081273613309281461823540666997639878190269746566714780807121235257516724893346031011955401977566115384441379410176827371295484651354232816521313716137974216720434828187140651098706011795254069581131076719602649859959343998827079256049556004108539540703082856989885230028112533423461269605248054098622882074815857780235161335161029993311964944984714572065251998343395426519932853905925998877844748583411391213346308195098815109568386341417504918937752853950519239166085442476152432230006120543768364676304138486193803871099053212727702839975495649038270778292800299520891267000493788591068791716092889818261931520291149356843918183350193661959371791256288420279002403925497670987934476126169173354928504214403646293781738486581523411808651392138399665436713862866090460878534074277357407165146014525410560158165812262920304261859124166591209093477324031698880850316848461959109248649013511441705695188574836428177184501241121404852650466700265892190129120225214742182141736520848655249382015819865205018962421247520701318595491123987042935275469209902678201771908756472560483214075139696647519705379684195488390230624974174659038846693406623043052191648776255076294888664670458609620734620976889555769756114069024782428566599019195277941198288371634705671714133669657881587129930884182949356955502331176451568865203844801607581325977455056444353053491602444947079974333275709663872664952022855885602287815626637863481722298252118891718498574175475976909294657859911963846825131829482075982860538158294057394566369226173166433528225158160503328411333587787688908389590679729023089040273888445238510380080670683833619763567679221899727433850982365485289278091209783114602326510109340812978573273388240662237750778706772285951205526996081566708882197045190015625977626826024571529324599670463638310127793093986567690877449630902967181447469115613017142745220943887784051080645496707024974585688279400520237698219445813756781652297759268348535134325657620567993305393048708561548655722428059176573216366548802812452247966587066674914040939568003769259100134880415901598253816033499382564418070381915305238144404044503183449583975908535265770621424948671557678802067254501340860172104498246561293387086148887753930148946054590262870119719557482052462297620228477433416781043894137420110678447534470313292251340288025699758593382527545629317596717810243116905745583507690154800422965755287811181071021534262129063988475822227105748867492655150787026271167756415591340121376414228344678651189574641992102556912077917415705841502011605515023596357771574537642353303398271904663541987171476577907014279778143870472691096492772101959140759066720080356683897869919541194090530864614212682796611005253912202392420281524754621502494174805942190801892173057014799319660898881427578433410715762860682173647481572161285932695254050510935574025580189875776265728052424921583517904606181522526803722643511450184157424076059296756765516390072861911350830170864873141462017785861098798731574434545201496715173414848643356147391552798541036824577264658323080962766197696818276740512916992063536119273244838779013622227977517643061158941555885148478307628379285781923626043728584243685063489723375652768706815337483007271868256898826123317337260162271399240627097345633244299233347396741410543614012944104806621304625225541265921955404990148287521386845215032544018393174840995431320568027268208529078999647639897523036552032460645624529702254492824342882650848389451387144268740305468600721587600529407197436754097972648965575828128238863785645592617366203317157414120577120799327090911429197297242134131011982667704565111504018151895692934686048438907674380868475213601452267040535447750642516995131457987612558766725598924899657844925155939130892759236619963844096553859811477058033085807135191340459785119236177223611681286517372020767892836708308191889483678626054364776001439120816270840065358403647805792768088517689749028738559308893592536455067609792643127486362100110073262510625059478213884708092795468280039275221245593807835729649400622830908765622829630031971273829038270885610556719936119334475912205228045304983132820783745870562598151828621043434873108496483176183700620960940869604298584701984493870999427674278984503761880225558411472761447045406013958319644432440315097250738954730571653485834245973251585081164431646024903998784338590915802547481345830861760882240574258455650012530706263114056994202303449778174178095535291111528223534790221256164863390464680002002735065987937964713372694343525405221659073553457915786260704339905824502038111245408993898619545112381786738669296013255478699218980776523795587445338827423091123114892568175954208838012685785192910320617630487270743270618983756404069351389620719715194792356785709723542526726633959899142380239317986728675699111590575263339158104966841940824629155294415336161595194381209255974769279668068898873815584182090654488029234964869013580568719697496397555000283584744549713679052353069713381741026156629492620659003560718061663414568542127125015053411131883432476240889140121526896857196868488074633588531928672567919094332718228228286191469309971159949349511965300254694369071005416004690720984032728213958608150116768543314057837445393985956016567515860524672313022428690691791699632481782312002244787691258455260779780468328868542403291248602289539067333872746034046184195430137651845430889562589823901717958422484459664145194228932930535783585750045981058026446790495030540961753311188679817256317445015395981575688255881904252180535469814820131572312306973528739500990467751109056606576604723441416228039369238216589748143695360696519327321870676342212865828004510142615638760101055920681617602259444623970932498525373707742475525118261306337151190353406622185929100524347666014027442680044844918367166890672465613939803707742715812356643523816161675671955787719592654907232135209227383706158536581975800775130812338117729869294690766042827163230814408050224747371216390987344775633136978206584043036041158345520262171015498647173672567280069168245001906986671069136946991561574453398180969591454946447919231911326714616466641947149709544074485319831751378033433346405141359564481302801661595328178630975810180800794640935170357283393010407724254605177540029866602568642246737639003097079720182077555361943662278314955021114192064832330441608082184244123556709080713699548730315114682557298558946462212571792099393907226822798946650563368874152357353296168354054178537643321656736230267084676717779253937155001864102153975159281051222687691476054752123553974329314107830625919167650750814352172216406043181990303234297082872547416774406244289231079469370893119797048213839747000566282029320120137478721428294152178874698424433364632000073254313174179372639194763977794701526152486938618729349800233049042011695723661014655581608835753560699091364953291020434864289665195544372309794782656546321179451783560296792087604913695876346589837101737633558804690373396987118450057584419642102516358552456427198298876232464001576841221372811596800133286714718158861983907270107084320308194952155252389413940314758257258971724564592191883385563396787174664452664080677063798709274349378662057759646205940003090473316038600324909322494842281448933583423143531294652505786930619708775553572983792320777391822477256730533731018299559604250960717929174716239456326001348103609221671978225268783055747046311569853328882289786335385466598993497026693425916065875641811679509212984731791069372695547640586657201189486863887721930052801277207553696842301619521526884803353151572659042191892775810200742963322671186373606633548258360814525454900971069555245074297916154013303687639739426465736640189431273175959365393734569552075020385330445926585072593967121728623257439743424196889813978447087908843314408016167691172298101198534643873426171109468388688030868428022853199765101426175954051726716401194943997147543148631371942566410380413447038953418111354496387995615908557730406109506819002261347117607357823119772231797269052463077748873575472607633492685701275133305475442448407207627617921069993104417808511915379166502827623377557626552126235729128278183494246260080461174549062575272572992735029046584355510409557452791902464164575692922205314529957294786289425851375479768711246996000877161422325511445101386728921169790595429163293172253473779781876472894219295589756671041411643485392263549077140115423453605080788821958661700096734339978845972734965074818259306580740053433976853453120223547705105569551804638940820063195526434679091158671688693732169001849558865997385993019344841626226069561644645644618884451144395668409449354781925905514559768654879048548350692078377277172597226270786718557164047156228462889793059816417234052483504730600319370467704932394428121800123225904098789665390136878697740869916852422635883074797206986024009376698007188696493085463879081172435182030876986407003628433140506861782960883266474227492120761022852924614785004975461132495538725797174469420762189138933226060750719612409596021084368724366282670254127510466318524088385854721492357410454790159084896902639715547634541753218442702958690008054682116019446564240290523220767494122193071623347853371638912440867869763496838949910603451792246655984171720655613305058963229721213295137435591573493081224395246984279189998250787568471055940557893587904284924958897225281530757409398303161168213672484064019260195426870433730522335092370516753561112919447885171430069092401401783898832089218008024621966134621792504041431347656526334659519837163176427815069753537738251513649092445486596168632678745753575716898283094403204120721020292776967228804124176960850839577178585907137519984437433228821982961464325763546288263964052730412666101505222586196754047612946607593011553434463812326999723413915672619964917645043232473621575103024456861325207118606961069046219822230613264992882369086417384132203618005822382786855054505118761425297966281333301833540808127118678250156990065453842074065658872575635232544402997756030524086607030696123130699018397485067508708577173308734265929866409749820784688401867661654092216447949882389116808314989937511719460429170378073482885286995067983686040032686770242039655162693024671760186347097419183752767629070474091895815677686551940312215835663750989360412029566557428824146835058417899195245585985004438899497870218887199551058133146478280453133605254694840096638638989289495448624826065289421367864608482781560405895906124497298146532171478125724658973046712129723536848549158259494787036568224288366988733969516056483401333325221570735168316336536539469809576859139028021032332447071227503768720083729234509405559673866255526215252760423862044045938411523643704059589143161918323210382203887054883409353892667757152734847785420553143928082881196619908218035353170792630750395359812989396968116202868920958933061058358874565608463888692410605037646787485358626360909551072597846875422115984190541097204106247941528603798024090863871817979262967913414533408753076854167008345647452710191425142400114758186441579159862249508073773010251509804563205401818033119542152819522012953041373848151994909941818204926213864538861760934196020612698648481173971134712360746283051167047142788968214029886474976254482018660726473280392474178817376371157686729251398334658937020267982792973172911895901761677774249330796450717600822531218549657282011910256540486236082821643825973079358402677170967617523209356650399455688136161462799665022942268742207457426037290252333836392286707434802273683347360144330683098578679899610585698326792029271319942369851160032540099894982566595613767061195084586297377901541213876834664471818290950724768345918730911893086957489200089991819730177168533804770192103217980440820531438274030950470794697055399701970905808166493939656811193513671495124253069521811537826168099509145843569142968627480986402784749184617474575053611779019228465092000929537129631590586826183426378776270116574606418636075233475235797266105595905212536809572126088046495725557044362455139133902051171595456644801538102873958240716854146961346166338673612655268045443753545085072613220228680012484688514778432176157452399881307461456496527439786892300092301746101332140529137195287770790659163169612830252187137261426933800694207593604206427895757731297433107059449996185591392210120710155352819027504629351049533872080419956395719574902607555796333291233209575205600011430794363574418802501349189411843761442285881055749817318134937015167859598511943711279509891514969883853566561846962264977151447298646869338910218858209137255661277299662270319248003281208189520416659065366310924108209696954897348266036771903104260887856370722889938963214370656884698523774724476044012807575160831286745676372562031797640868724160528826876099540347916666030499324415485742883819075356833058850127921083928691904704595119915207020473225156855031866719223793039250609164364245554717545118393479601509674973155724629275562610608708086253947859235385803779798904812944327785417997098875958649205187303599551394732328396618683507903438334399940315474558597552970831228579747567821524593353082965095444741276591034950254344110592467924526551088300365702523790859734778347661629967430017038367188187394805597537165317399468020365833234735439360308690331701816223523725253856797766785951475228982697615225071223651800700055197182379873124836144121847833920165397351207411078500783260053500571154771130119353109351300514048399488711381541141822276176011777110572261637128556339307476236495215996087254593545811135746679288654403290726668317961361398421555552348683022635180774519871517518059642877135148173457101129918367605836372920255164947904828454978858875379639436068614152358479132598049801023859529093058467518672191312254281001285098980913619614412779658952098992622089526095025991377237938169270777241705882615331672783589179016068498599464551717231343889682976349059629879462542472757102745134642288511565518537805601235587398311879595811283818702949104366876163397433234303009201865865113047320996059523228980337717095816407577524758064376791396354535932387081428155622674251738950063494210243215142462314613172604122132549339958035382697724528072141193101876339866347653841644180889716545204896781947819132743107765188220704059229670842345560187323806671325832982474985829737958215243658706573185018031470557470277725828713514190176047240267699506778797263964865843955079277218893146114714950219914029843951625661787724513767465278741713009083542558365165208573647056287179355668424551729262027384709378186196167045912989062879191913500566378767048957798154631643602706111185700782103386902452995463330994849864636272225353405145208147991698944587330067522980905234554818447813120579048447373838719416157052700751870000837488781555298910125804648352097406948588505147464181927638249415759182274668052658241415479101236513198225985806429257217668233658581113863486656511191749076921925101083815543591974072245287667689259591876575769928694322050484738381768954977750427893296011485102572969072800494972113461706343265454742265760107706305775104838316271257091811518712468301470464693924043928105582134875040474174946538913924836178588936400333198394377636212784666652652744777088279232312395323336040156130836960841219283752379651976876864797399555916896469971565429982089361592902956527212453028284937244950262889716622880178849856186171960408640223292793432349253504769015836229082981791494308193901918091004981875106804751208338748452811089554494006616773638368899151244867961102211460415312634680101842952292156924518981262256666910990798339334540494867504076165228766580210089671852901676169889940817836346336676792417835581352813850082336250584060442567462854121289587668295697191155350946257017517400044441053518099261220608289545237237600358498614313618829551158822493322008019107206733957962249295008293535469656675742532669944189104475176810850532058512843832721545036467479682825841037292918583198427714634402596999792698426941999576209001121743932336826931072438686971276430190219707647970412618655365266959874419774605764499297346262738616840264587050941434384322284025315236215110085591909769151419882236180745592413788708590840819944357747489888365289017541493170476763733034962074242951219047119173349850962331508897460569157111600235432451234692075803599954854799435137558775793182575366443727074167295864917509661584145961354468138856166439928884229908972157095869928457810670975920615391636034867448158592832470908932502192218691357305209851069218921177154837928354693054695137443170123660165594478700857713960529340723450095297041433651487265540754799438135360923297258116973167940451629305833099222913296618858426327187630390066679953534240206034123866201195606854155919693924524340512276584621998928863307972383272464782396433657150443026217720489238201443326568363589299027345885887134403517961077810932601806890355333706221592213980137615890480438393820449997787220034375169495908713739862981162232762225224641026681313406017739453163680629361215568171677200330601940638978115966459309164897805771125832816651694119701775585155693856179473769615126273338176768743857776774787241536748006922524876102973316590545339017163547204674984349366008935061912947259929037123821963560795747536013976236892615240100233154056973513597664925860716043370270252539969422497153963904777718956657851758379346199840328775860832904792085428271779707046498839537880893728725143299536830589512857270164120728365557277973434937568740371496619454989829493415518983018419820108278033214398569397697493542437447876980999359751210878652400226258890376664511197709901312797746139325265146316908585502710802245432419811725478522425447034746898805953658794213680695844233966592156430475883451303114116744060986665677127921838036793214851341740825490007542416263754076110456333126941332186006592416867702513777857158702900232815877106824436926119758302083790756978546982696176673254011911532586989526184354939128759906573968389947071071042414445211671638367062394674979138819977763495547927050930421815213256661889235115627664244345812490003119038484354487667573269010343306517116951831394595532344712281292152893298323586063120711304564358804091522946748733917131780858522830116398445060371505841383200305634762775859954862492826679239044707476978089723016348251842181247783478553142306971492201929306785524644127722939444107119019702609175427755152117305423172385361765330680398180738347223987412112389752389426574835013735940346625053820135300468338607083348258808103500847376758741095365834998904392670811827553338839650266817935434861997489000441286032552382714145245461598387072772012056097789632151550205624297290026197289916965073922046318324286767180090623347290378336524293980524075158333360946447764581189396122107758845760332077120034781705773464472532733674810712354375813057655737471999583718170229257560752430431515607119024167127934126973813996935371007264788353348847949383835249913045485699432300734808121683700430671151270939004466225542363120665885406795774340285312242953793840544977759555071949847758455113475101429798600419904964260742395502143223848167374520150949005718092402108300486902563685766095169751469609187855242873543123276830511853628250633001664562017366917630055262925887946355567545728169364114447388044054425977952521577484933782134044911477796228524538258332650597434986119608828570762986639938864620520105594563770659241543662458817127743473103581687004382236967778763788083330826040295480357628843354268890015049196816020650585492537864426717182061437947774432395723307673146353986166341589507232070255706786328518986388525333220659907413784519756317163813355866307835243792255481886337899108731911780353698588963531944944562719177879681563604490764754840128369179612880127431995047687116237394613105068232280316789631050050715625250836853137797696412308674055752480051570486174246606821446311208082417160563641778970072079582228340571243265399079278428182930932532829543316742283454967080257994877228932835679007849816521061131678391813676076743874039717177679469824365645105223224028344705300746689896477606002282596149433456976590745683386205537412513082155780685126377147505988707502306936158095422831104545478662362940516093299110976627983633139262895107187230377612009301734275884955388387395957866608478878157380023843651162542296751773929391138023558416881804477018339695872214100785779267809350347586251043441858423962484629856251319114984491844536739147570842770360766711575020705800504016662287364965888628414560849952237425970349360504858917017719938709144111564861639615492779037079294149494049652391055428612200309676946417894463348188006284356472772955062504327568762046801060427190347855954678366785870967871178665276023904579853213233812552766648529555779005993398899263884557801947719025814264751241428087349449207038024030401337710619654113199289805989172288542634628214269047300374254058512777123256302316762061105514846954025865875001966001823147277765778639693412989346284943550756904364467681775050933129636904944742677269173933199537303730232216317233004758864718005573010929396567257138274149938744568643109756349431991758651469907752435846307399196267634226042543436984429734545740513147671667442154002758365383386452205814749159935667262317440608786742893093708931453185058916909711025457837966732698196381319174596622018561022163852130945739653658892606382561923608986902003533557070622154916832884519074418085291979410859042090386360499181823747339175223236844628158610560821666060149062792420477658252549731476366624869432927196589797901427921126089917773866508069029369124003398566014760381407595113321496828684749199492339360075443103534528918464798602378552683896258517501596493072444092223238305793733748456611958465716782129782331059241434252722336718809137857085519091597742326434034186743754613706040868918158833471412406891715171354330745169001097620002822924331702083346027401193026779932687445445486037867265698672296298479554993562073661648898544086323503754342979823761252560537661158687673535228487697045771360261024556585837356684199962018806538804283170980945774579942554797668448927263148989694985887408748621829277268944956589152012753876943835100348951602445179239933931851791343302704694401763184619819478126226840674956020688145410590726384286171105685344715232397781289283674294450000717864092217937546769398899699352444956978609297706740182281054549777981165439822316711234191147697217321207381926971911719539202251773155234732432045430447215783801216456063305518044149890644756333930055660011313126714147511229811507817222349187994246465942008432385874818626966446983022101959789809641025387434183540880014648265601759135365504480968070434521735141515428134968346592075800061504230815445926749378556507184833557195610466440761118654479234289725686884452133660946791874635645373599254480964161740125805178666578648420949449223739806370076428265054940437864580555248146628407574120683913359251010481796185244896661964677004434758969924864570270588184109884363927806576969601591831188934883063212946988270116544315312228748105374864055296175337489331295483400234054724146372014851257680735543836571891973870262268247578759687900998787953639194951611886264605168610777717326554971244383418531277701496524825708489752277455817807689515162573101335899446725570821734037169760391250949453663516407638448690236378403270238181061795464705623204426697307117865345869910761319018316056119464990068473944511160867241500204427692891180693584771653950996355976898173103024362806957781517592484014613285737615408396303809125686015243558713074709484314239872612877685733458684779660413468755396600083881305426692419168284451789551794808634969289314058091657410219161866453060614485738749370467809277860854535514901162756712652515467059326602601951102609492774961198210492809672341139379747097791798658644765254076661689890889073488896164170244493334137665151075344496314484408710977851797987652762732920562034663325803185459453047718877461554306843356543346130292343336615413207196893756291567441075613915619377347613531540214943064916924006424632191886725935548018114163668356314011457127697909515006876425456581949122808913089251205927445734406014333500467654729077433109902039354163562292417900801053061261805772146194536924130029771844386184941495969854700341988723673648135925937780123777216694565196887498353594545470721600353914746491345941451559265703833913879537729396591419656576995282699322862108826210159007952644668239733364972978969715658204155979080544776643064276232494048352081038999989773044850810669447953679071784159650081817405928177854039681845362401118741362338938662779199429233609296313539988333548604008693434782153149068531642894809618333208964229616822552206312864679763341665644899791541143955837768289981989626347093010739472278485223351980214801615777316480468653508818161820670763568355005173810533194256921666325086574847023644781892901748415693338982744316460796602709694088976646675903998466334732522674388078983662421831447857237415702233839988517238676338181693718669067468928576063746039879490160156352441566372060602026791498336780286858509532996590678295171154529830348809366464222615199021596382740439240603839515346838564151423449850206830183911715781283960170949882626730566263161223444615776930533117697642704420341349935863596711533392560939207071725366366768371672744244169622399720492435796735428463105919806202474500045801162695344313965340789562860693359631240332390102733502841345486894144407484153691282462585862740452221810904118070361044063938000758172376221119642238849585651242277142520041212970654089720054823864749017409368973660621919615029771326366410507382896464590412353077634565167585624871587096685282608954940021335196822925935859741280532618566762859290166929698027266933308789247085231613400658016166138501624219990805525621307865116302129974786818077787441505067947648029869070873082354856101316790835937591919455694044234942547844259973764052977998936558918572575796081554030786119684777992560196171705821585097271225600530411687360088975601900963142264257697111756269816193642174875807008021687407373335912776529176884982679011379182878801830890342335629252889619941246354837968715509563053934138109856550544316560089813491041331044682470011639722963098174183978316038940386879883632945872717787646548125452026426776272462976755982166692287667068704254322671807083972157617622927578877661887124253191229701899063682200864030883999822547313496267021717144096121010362617112445346363423543052375508980196100380827398166599245644081203471571431286260997425662285409889667648697904556647894412329404752211548563030550816376240406443981969205068582005433482798380465528036708495989093231719799701214323415015810387032625889146888235589857798581438011647237294095827621355296513767687767094463825502194619612892660762325975102049692938501598854241330703808112284567281580887316480197923410552553877685024699216909082758317731039125659089083496847909182168683110474549935011944339101425216870048130652744003994947409294294117616069257427279706464432265900130173456711188005680346616604103825364883660085976981727366018968746693527826290078096422116287166561984284097694650305728364173850517512880541380435827142570648825162353061132221066335690620399633528866159483999086528071327517365508758810720988172065749664577019859518656903188533863069968478543194342996446046387312901004444986116095421417662089580504579408382496479072811568111382609557386099584590863702518047196661422850229740935566006381211551614970828956135067596752929073341797874036762193952640983894218703080577413913938931244869020957074651146423780158500982792345013849762892227352369646772723957269465415073889309330476532124762762997404482915222452080174087130028845198122081970020084076393065595477943763458027451801236735149158757697269812119921601484969473356084030171895413793680465498900270626549400355888369636520530226295171079278592796477999518122014431850940887716459560389272910180293627750151296039126459226039160785864690433972019293604125412263452958642083910354845116992273689431397820773095660127945105319192825554667483742168673409092434347507031666182605747316606686588078039349499951401178293636345060913391157835406830986583681682129989116368777471666811098383935845343010573809320394648995577255248620212777228401006564868631508578488683544412063723136935364850173150932514157926412210804893313304830939551505666379309811254132812434635121592743919806908510160091783180843723510435851009014356568923837666155735233006064674972987734439484867025350926462600903741604065278372108825024026082739111046254273643260860895020502781904564077336093239887944342726120423023594282208654116277145302956718357148008915805608725875552489857083874814620472332401005535593190094347332850280235116167525777029983218627174611638354105961606176989068621071503918634786250841136243390823417182423476951447194364003191067125284285703255232019006335433760661290962811246518046686381878438038018677770904263693038386962716795119622002168449973769983975153897159292999008084114970859996059041990176845470898730659597634405726781918838527047061722116605683930868221901691393330836964917229191128353722061845464665945816989538714227741246686010056324967353787744234598545340178477936418315615714345623132755652370313457292676558190838214689759374978286120327081376396764970586194652262368095604913112253516377843029269210922228626212520759357493496680065679573479957268719244515760403146636613139118938017437090107548247978673242778940965476721790407702531476056645532681684003572189965894674612308280898590087009435340082282520940077674401323799785644075944015468218641806981717660100984974142091571631645157559282431510457415147329139887553268595648270017841997980030823391648802996903463869682259404290881101378257248254798244005160997114479599799103982896430415435608942699922178098951334684169584165712432068944654015611761246835665385358756532004464970024950101851254724563737721188585184838276402923401107600207242323998337711547957586706039538766537548197747268556727885805370529480700856394071503921672022562335403365728453226374207593461543039664014846238586515061299557864414180408059356387973486017958465390924384438856044554470635953797063237903308826365195444435077724102673834877777489874736464025682662705791157414439987932049864832380421740980511766781296002605801218304627634663054844088934492798897641739560828629445811571799683967888732452979831693804293609734107513504191521992552278129666526078086546617908180196389548676755868750927456838932106578862587747594622166349532380830098360106081156330351798584259418888644134826700414467042883584602757601691493942750943701171100632942381682887138496622613102234609691266337960674993297050082886283983769627661290322620482767185247197559159357836464474337716907889350720804441420178081280560072578124297274886792466949022331070138642847288605092132697257337194359406102734910788122640727963318829759848691911897317428885017168937418090005001288129054385298870494548231036129109763243082687946980606404998405823442970869663759350012119856454948911581479569853562273581460707408431767431329262225618040116402847865950309794079308013002657618505073873365276368874659977007728674831486783393824600502973981221891847987675853019343661385797339385135454910455442193767521887437819518362036763496203917084407651530827381457106464911426209126246935149374142601034660250905589363055042779611601005947946950831954160658221164625628468797566130046036680070275248535503406132168616379947709803435295234479320630925724233498647116230915656584782256384571875204691130436752867021530399826454697864005724408839161002071842684381364306012879809315942047973362209956234816111596862624204856687674655057255449064413366947028879280016864775239985811498139134665331972748744568951363113443254997336261902224579311814549878997236636103860515079206560190578208740880923203570548402217652096941615682427144012444271835125641399826125121694766947151842196882592374261662418889636411962733182574729752125229016057129901035246689516011326396732345068816661907916660904350823326716608643061070542245829256699826195895182371106562444575217517144854180037498276147168340671533902591205954338927278443936669891748224637848077858450853461830528770821893202523831625850627181239390479689898326873530516942312824450076667967316762241555830106405033043368258960490361378783830188715273570539831124747730762667357092100822314050932752527280105871993336458894852105920648781287938924186984346904390104709280335641909137920073301057787996294958478415145651521115893527704747800209338961629627981690784240396892810534461443461245161319381021201735744825104684980586822402975645827875169489420368828339101364447548439610088555562273289818827698449591670975997127867428112611395368016154792307705095262930464471622522412363905815385306929653614672581360279061848417857908417494267365810209959176521396349856363087496443404664731806975439657754225478042759885134410805185626675175519540187766577277520428804257683050930396616667971498542003731174880007304902044628099218917337538656563071858367152700325666709848245089822243306883991780515307955498127299567336080759920635202784458428067667167526213581678879316867686434169337585878859791868395984087329030413581346826653353077902484924839151012929285752161590799151538465512602117267729343975013967782898642923166893470618536198605117984153261967613450786455936290064204709092576809365883460747540042956719560885134667584463705856640176524695313484525233239590881598324823819355068592340533706327743994108587938626601031926620514947306382400693759647572339398021932440794249633406329193660188344264644895875957638063375045592353769601350192433067223505749378206533344476301384099643969702466888000692110411877127280037165586574998014047966680828996178175558809687378655755112413132830722895556237686325839134826480074596023871100596492629726851123278910965331328794760651963011331727194642889429321332639573182859976583974163985532209231267558657511925521152796440138190577465089324914348089224287309962008642515451468234559446849815546366246570602693227750144622090597165508837984308342774557390027773133371086472311354717466521362004875941820050499608614215889668020797970826355081384354763189810473787785564988547307407555268595215020492890502757566333852077035816650185903362237262338536585198312954030830940289281730943917408043382260003724828807356335438440882294871766491833120868749252538869960288215695181382365581618235313565013070119416324594267599984528751145684169250125890625063517682812367574662282345355762315656703920895881009269264919314739899779623281128942836115098665439349711901839132187257879274687533206498603773277968003509142735863218460339686768319199036044159046161830260959471308341447846310384391153844700568803558567587640717351057441038366116641092955426268029683240510713679174427231237995713094275093738686473943915726041481406007900390099932631069362643294967554526370729150326092119544898322522175880417952705826575733068423384002085781191288181192236981357538470533170848199568437374723117846430375499561885728313995373245457689509684592963996454966830026220858220736335023109023525177806615424600077794694717090886214889226977857125461710289962528342534085017959680737737934284221851453165079478206036174322293452299663108728134605388770911845303468275210869675503513259828666959038138070232645808205015450522508890236191154293795962322164402807223604229968173623966680349674403205643137448092765805645844412333718717216877088686966212200062940941708620668403738869771106335469925862813918495806945755153226683469726882819895712823358517578040610253062902032371350690110494566554018877006108576821122563612740953280643684192259369368892889659904050603073972271291160587741133712027740864508810423202532679212591473811203991290331421667222380049796318768669989398183604990308035475969270593154698228441954197061512983275233661458993628522300706211792091428041305323485794758199451404731815866509263815288678038786783445483025098817883245748583372657802338355279027522642432116031955816020070238849546771271821892024150981104285410182409599785819685033363291079367868777253594430775114407415799547945180785419515956994770511307425674535533033260976121543008927396306047061870118554105816927647479734586702134022367878369291123898508811748622910865736600999355573821387940830835259891943720540917051256024318797281023287135522056667905118047448933203938278633887456065340426237348935138714476589551544071189416526519953057587267178596681310671181711271532944767918584758919935702204246549238204669859909637356867890138404521461250034664115656961783236564728149749143516188197109260878220723731977335777752369411614869918503046789364613766342044211671298910109811264381027867190051083561034766159148378460575597711585765155594142875471384458057195853901803394706567735291126935814073609124363882944529708907320425165982341425486878405437002405045896117372533618366126833136622978866638240641945594109283117213535710437238500584307253616828621545213472423653957400481088320399949257159153232200291156724617623377351443891841228267059104534248304716750852113291206254995951260321518826743611403233310011708732910495474892483780329387210083532499161153940074193249224580574146516500260139165999939481263924585230282836938722950871655435982136429226728620501539927431883681017143871335411385091727549728912904417397252086761767442298974679759314517057434474265971052875017383530916281539538075158665112456306372986818087790903364653556291737465938078336787413139046718581864548773543176449355750257653575747836538989807313747881528004929896376366925597527943339501664060287249526927005656679127244564514687833256420814447587528523176246433871405762709710725823075746705870561867900300747726459922703978222523112507543546367943159797514895710848802870343198329373000617135816300725283251572198121916619091384433743834181271953272820370032068950625553347680122332437315350107545811346130654175932238877295246492546090053871926194417785334338286243271350644093241005153076387546592041133177840750632233173505256014827119449541894565540419813591085452547261131554775216150976827988904503639430619553275183234789076727214876208923274155434477739256598419380854149846436266200233357055164705365012902841010435518930845330130047708638446771931537765810430366841675071878490927019725030608706446648977300115834650080549885559287952904426148058085138263790799183967707778073638961911119294914116639293383712737616352014115848277033581491215527855335800807990890013563491395553781777638226488271368740064944223523779266747658814794435517933283384788088361639796115101946679402015899526994094824189136932405660883174778251073402463285775841758575122299607255315732180249917842167215725646189707673565977657854307872440456977551775673175010256368786756355353468326563809530224006738445025234718104017120551824655531999696179679733049405053578957392720020044880225717190032247950201892851897073129525575094229103527211508967469977376474681985404833506535039081385947849763303957105488176291760259769215786036315408473705564975088172407903784672126571856727823117626475186837927718657929830016292247034060982081328340927184671914982918777370920927745075902828073290595964290254629765595307564412945294574185398270357956836250108550091116265221990160651848037252596752753671677560008843526052987980845862599564286030289566905070802949083283466065951216759027567402619510087266263832836313343186111176038520625407720267090482061639772891669880228270684363263434723738895115254769576546269929826931799205603189808115293550110719564839811997158212955637859967458812159387960862111623060600488860950964404473064391833296077002327191460526415676771346524491885981915906885086497545836319145153339559558708857310407629378027677610160603050484620340180360413624866308040922030801445987651053006279170086193133407858574164526151051430265615174666367934432685708562513222729485330852853361237760275179690907382523977809729391888674902802678974688099665240175365252262850902464957608148948040017907239312983605215972658384985043130151300234766022840414818882881149588310588400512492508664342652473572417986044753158108888751937203161702309336279896145693818805212041660472270623162961473223438575530994449750718778733070023478160211511446076559279399735493494755746767868166568822128102821474976156456913227550053603440304340385500211383447406761318476497068019922584304612605762387529412286777966765626715337915771845744853609554663930994451175607773526229702920197886517470076887798943338798352459287587072822782308815872058060182425154934866723918313505901651734018841901066772973099635413000910147385010250438407553535091031032127138225204286518821259618884609998555081742370742654121785401161882626880083740151827155695440356149632184554992203779232227509023777521038939164722604504702088693245230299194422154560236474847389529489751144639342630074344561676992372466515357334838076561988234310624105442205701194214665557438506480317139548551955341008761183575818680797417110699849837950810726692241676033934746249451320611033229517926764527793727258298599952099038802887263766832115738543778561119674233429609332223967936779046325174081887389605104366921151555018535562053278026121527063988312000225537866301437626973222847269215706457749127187845952057816315425571207691122610584338933314842509862711823777257970605613723483273762158448240279213870201198494570357555030846581233618940186941872062962618326160635008536951302875086988994561138759144683135999442327622521079312991883192995087518228004625298369196010690434135347004190120425338163031944452056756589417081070725382207345165098620316505724774880057979139173923509953164327896102062560447419919774022241788757857736668237709150128866202083846976686051808149275881858334637243419325829736417148702228674155446797331131621998254011879233168017354896352246825018564367163480950983527543867590512082376037016297298161529165487072797212759984446067022967732236512933765099471882185650124596442789036536043609624585034681343502354467182663188418816950391569912318127242198028119254735674438913573977109680891749673212784671168312022575857632011478747088832441055063882830124532621350458328682604509678913205316294547128188047466284000763589098136846838438036808219045241306581126483384239810328185834867331783263926192768323390517097766171196679978791680993580029970834958984658077235268968477866644431800618911073325533717515727229847831385320800904630486478793673880772964610335904761287794179135615225835692920429310118110489587396332983824278255804336484136981077244212276085026652483159390951260200793780232596467335584946336980195397471330479693143060212059040685201113211098695796407740750652069125473472231226109979416389579789263805969248022025901379423247224363240129920622264485697963816673582708252291559379538370939411503303167934430858262002517130880165078881497306097580999943977373637024625399534308859702257426230135530935310190127827844055891111158095665029267038410643236400138887643090941006790684935533945584237660054365172502189604447383030217801974085910392092120850107353411807989612653247605549696129350848932280233373345313059814640729724922066804944514364600897568100319344378929255655619855261844106306610047401290565194013561519580312439544388698381872374948890938321319043010366038805638912603191670482417405029441657942694955023073551931994528067516411865233205286233153564136431714663068063139083795501312846476647717624847689339068082098850613720867634674143337998155240473319773459705342160154897036256835156506928458479884948282426262844088134690099625270526134332123751305147275550367370267344026261463727767856320982852751004718371232169370431450714084940176687838191456570428362476704976054673507617506001446716378834924488694072563204103937180858931279914513516164718733527616701751873249025450310246683350153256791267844077856317010741139592742234433007801822754645981816609614814004120361455780847884831630878292555028287988684624571292457965176493709905667609038549241951208294231453583394542680098269993964566502790106980305657755257670828085192431537898614039969647717933327604742675343028651937387853714692515396042211214923192888727878528319480244258883397363682497592184350951830060333833729913218047342056851618778434404352922281769997310584838380039196406733255318464078581168091836966278239250302225180303872902208005028603003698454049253263122094778940336523950942156385309359552920671815812534149292892589044540327767381058805610291933143192321004587286514769814503430620553315815772845569464518931650576613699090197293567030588707786035627311318643055137394208510348665739396431727367447297496562876351810173079240656844430034432554824068326961726458196220587322556344391782195098789456214187273011893744177288889625625022581386174016599698788829429942571859799869509890536716748990072652825651769951748389000930316227364240760631960188026358689872299411315980326902112846250234438531165324990844201918193669593688032096426441435591924051164145814289972283017733366605802870226518049410576900099168344291681292683815144042326020063012532114252641090908596325319864478804246615431043646516886926248610766371447366176151428554704677998332965622506526255283885660416570380448463491380924892488375895348235888982962889772204140183375295014641277850826828910356418207026358710403541784566435336828072712260188809103559260924389217771202885474370811886090452675797576257578023861033220688197695686147170642700882484982963676104442548148263637413323067507119202914870038399528915537839796949477373926863159208366669116494453909696492707354143662804136406353061040973965879833074405608287822133645163488046861838453069784151419699704833075801297491664662742218770910168662063387123853550176895144844659486996569168511807624877360217779472519865463923118301019542668436486252761022008582571611705640531467244237404537880567078980572627431333364567370578654407864762751828835821827119497929511833752124722420932076404994435665452405484717576032926528297672398376642234604020424218794754308115988454102841162603334796779556763950803466071105299735941591153695068240927286707995908746770245819268643532572660841350323852689785470259214136054065750652356222635451283590539849085154014306746662201740229576766223164964657403040656390102234257819548882263940523904666063740554614523593691537320943451010780335080266368775829955729515666146214374227896720383419700058605299093251803897755579583084622787528679903957108612455773000026753844925778173105339944196613327768405972211769916479599064803735557571864617850716415465535795442957278818925228081336557970988592638749332002383872466360076480423550175241389129581775373294396807516105289216869561085812039101054973875547770820883535744163722828719615804581407876252581659021624997113083382547903791261890661480765505763119387445551105861290009284644046823273813036601305634950935435809289524038113723918176253827122694282979483701653517236245904101976258465453200071322646318537943043522560106175587299300143998882411429373760654864553230369072075444104387831077617277371609770756217666225981165517038834501783388370309315875200977720335191240764725964222186785776025059816650480801364380181673757794083315783964896688354253439885679754063225393185272374996958365099158229185382381260594837669740543948452776236804674866728753671825185858723980699337270003369812506192169372382414327598618568705333209899229149011343351659740785950814081461885542375922504513064072300042664491201697385954220795972410715028349555041261107804063827066049302808582494495647138729318684580503722504985640486464890838651316686014238865416841258629063306036599179858227973876118065195537902982412291588576122067122745948190031177690354638031000620442833086625772979723980784562499880759947540635256463925673758492315568175957755975217296206388151630978709962951443870988711188324918969001803308894583871926524475215607846686774243732286005573605991744337163034969404328287440267443317415304397869933590744015045148621057164146230582603910264083713792178855649184687506048761312973600289897538522746676235049612631536043205477655357865789971243455757031014862555655383535599213762614124985032799489441349393302216383818466412592152064103562488937132736555974929051147522409883055172838707253724815337898051316708473053264232007807829343662724458243663323734292282434658742052830278501957212119114308748293684113290363766164803360957108787059583145240522957937563907507973542645212862812509996979654156435278017774609920686339373336427605892512100293486068504886235235099333096312263953240848143172670816616606138660302022635492436567749000212274557678145231803523634199965639375144379293922110873101253701229647878349142982145070417470057404781114414461334472688530843568821722428460471393234621968420488640258493224205597893317522278515538908949938794770880395217783733394327722083745746552288795720371549415870305621950902001237885063942677590366908589871327083780948194478506995540275192369773121893457833519361490344483513041064602425546657549660899031425820994213640929166850544080219057842996914675848762237180629387823629380411017215959213308991953009336735208566877136576183487237906748883680937267357591474174865719541411519436776852394957884012512149846486796176173318936669619522304685554622178252789731728656990600398371807125407194224066175720395734192935578133957862577466165288378519948383348524845070679735826575469967648207433175273382329732720416633429528608462274323436889884594175505814969279176529123962994069888426282829805129692412004585977157458018705730079466423033917077347718822486295483223258132729218180383132644994981738260355930337931498432873395451228270184292683776301111222119591136440155577018064075438568615891560781203881231688424359320473798825123307338329052835689680486260157081583482968270148125384954736321600312545463038886562688630105463006361468379731750463309991121807552351161083099781099345910205497937912423559695091079696810401695989880450035409572636540889875787543946988098311434811646373055819828180042281779885366853699719968108177042404801299355619932233268252078052621413940806752719296720275855292433433627937703944037452011473736789228507322319054161292669574766621988833959207159574197101775095420167551618122062679626233090197377144336602571280301854627469139255276155947126868003811139214348409953977464931289138885506964916484776281967556589403228917284730818817143652678521043739106999495213263522676176314128024660072811067652186618444637438629125268394844741511683852748810543127800848114734681990038897570550091268679883514690417133309633660911673937862794809764307671756304925973855094808488619956379823297310592214943268986469450026789193599954712271844311628734308399640180752293614435297221222489431334255056586866419096152245919083426158590854003032592538250279719485898487379172314636410841473635331072834619129305962506187621656249112836635847141564287336519622706412989799890087839787817698869529156185159517594071083296662779088339295473172931841618039093401431564606081950249695228709931420482865136639867955484536449662224172586915919768233839692169820340638696604081543303845769048563012074839479105176438803427562348851195766865418143128659889059694456001813365776067789947330217846667799278210231024509279685599931797748513371504078184539848162716285837696419589636245439383024344686883451836170202916777081743185758198072034140890152733511460526289787158652677177243697618778589978143350450179900837474612014804399095606724223719621470824391480796321177123734982439365389075806681634495849052814819723877641479705048246633429042484919907341570054213325754099199914511105650754821892434561329615708059804261045771985419081287155354288068356341787045190974342944255204178466483137524423485535298727188915550376540161310405594319884699920144728202783707857200368238491741893802969199155248211113453140387261643058784729376086125212778412545053048580847103854901198365423026975721325205747267745816041112572050860572829861864264640841858793250959917182034297158581619056358005911106930842407632334404547040030320567166523295431718335256135344924513795998704284985770541731297233253063423390383112771770479505050975818858554376027088595406620457546109346817705820985916995238508372421194602142301774096176933727581275955584504724620834216585612219485796657413775727004472844371396530400603490754417857136276416924947257792364340564047533659266305752150026723965950456018458472920827632987409043944072184140498085945056905045021923254995737094639035938811581900994149557388624654832552208340071125210876723838934487032348100651761588230390935755506661479977451100915150693070818610329360173339179491871948907824798860268360171194158337836679039257639180330612478444589005424203853622768843590962083215651878290176114064886578307044244537943454407345416747513631306437232539515603725045431447305298656251649197535578755034174560279816617770564786598662787203620679393361700551218104799848486774205523039198343950709504159802765311771502863286929462260912356043750484357178096103322410983066736560114084393594160691653540744154964824720449838514285878756888924553703892312429403999866062503705482614859795312368324317561324452394173215997173764624793695805558492880290121203179719888017224144031164565477290642004956865248447110222346049297471974172268535327605388807875041106188888038317254907711640245856492347481149978585769600338512719653429381413230975430673167699345416895769621692281621050897636874802743992006540068257143185103277512853737622017192357205126929508675229109600793451620437094069131679836769906274906095179580755217089193896955728381936137151880644631565842473049224873153960969206864293685252873477772797680901284161347110819376106606916012612860294215865784450955858068808536939015874652165489887139605010903138063570678717370382654802668278201446743180748149963454171256367982016965023680081290660651925517159366682932882687707807745502874442670904860471628585505485250647637948264208951810334926921851228544629262907639632472049418335464349628271384483955757134659069036085612628321398800741918883010444891984159940453780312653411348927145778044973566400792396144181361793738009331291563393270417093298903712179010284840367543785454064083188020025223623087931609326943626071361355218868583177067734208371087854834541278594058463527202019757255748859726736132829757559433926148475950433227930463953686821538367942486620792394091579709784080725062155148397397375479777678096153100271689934935658669274495411930223639093631222862668005624656764840041463989429204982786205623366457136575656856571284895772299435048169398714075293934883347458484593118462140381545260898822567885042315654400749688488566374651023179006192601668982530977500911065181877078567365915089735142138743155893957083443746599418374325052312365404719536077791134867469234499359018440102473773476141211921781222930708869007761165234237585992394853636077323942254047447828060609559520647400618252710692533758664345881284487894812394856509577607607059434003676274337070561072135274958508539940667397995140707814353882441321842384871119468780046768049045583230887996537980511638921901965130911579643506431016080676442306305513102891287467581721911961278382848789859901421976381765387464223159732559452504320760857920820042314148186650135034919184042203666618377145039571484322670312531575139904473266667429400701019794371241111172266552317690307659781535908060193775179131644166230822562395426829400875144158351019578455220473454376679810043896344786228007603058175378746201020655799612632275835254096931688480597304926957341643213638210272175314357019667345114409822654504404425928947556109596272519909440096467860657065149075603474890688157316506040678815377230248163338391033596307474971429091868881242224020476388961694422329072724483928109309083813996282392210986096633156923780943805923238818773435723690473584572716437723874510601830361441137341596867688859394427569384117695122652175432663888727575976129788028561602681050754101006680321583991025611860713514218334109849901312753611016575455683520914368460842974084089815398589808814586021930973872873465374347099329426964679905340577557022347464613698584167081722941769598894493616198439070444506319800707452353124722782080936544240046193464182441536466144790465924473527000732467208201142930926530247410346132964950252408678297931044989592739068509413567411832232316370848418785864295452404908543366896175857576424370876244093829198821048536417356449366307067709274881736995863962882249833641584622736182849990384203609107148504082914463900319791975496877815140327518056060115607211288697982034830821034811759752743061469764811490628498958864463047571189546746341958430208136194111261615734769450710786866824862043389877520280665085277914993079732976750817091731657649731262087992155258446806324931122065578656022427387324929487688158899056817353363370827947221086056589849839239795982494412186177106331187512524132923206499430447781483403812831525738930382890896720495728115397697904630017492128173992583166607253050960636108797699849367203245247556320417189973398062097808811383115259693463999947441834325081900035245731020992291293943887260045393296004804598056922492811180054753387197654159497513326711194072520424726309761538587373669108874799612099175987129273129966014979459538363470456249663415854548287659382155694176622014079167504675438669430121981625286291820182053090896847023131091513156913249852490979125423434166653451846231620500879417017556471391788518733184790541519407771050628895541413690803367131468832166138598771159442146707023777333929362273038649018207988573195778890738682524538197464284402458078573029159187617217770847016622380538830415251282207402877601785513359031089516685667516312365025797145974937378980415039515891018047082277027935950635496958327759176896573582807000480026941485948988249853702551917839482880906840495113130012555241926890719564792555363879731349747421280237383113563209162881988037615974576131450577265534262866613423514929654632285600511327123729438978271559637326342337101009720136979508239264031478159401217721106144982084380833723554928588074621154808321059203586127713593555459024232492829996045597551957481362600275743683127661931872042979359749994676316525552897681101048086364617764078275277301290780330101594331543617135910562086439990100887090711172368347400634236414490190995714395616783851332027261004761628307988550241354131776108771303018409373005365974600428969037093011240176475517287128828949878468513606239074651054697143246159449424174036016661814022556526019000710091312835017337852115021244492415981087165640431652718062530994912634703879641415479246522231182956920517914680141774548424056506210325911923253564704556104026585976389150194927442937040751399854409928619882925937825459036520759052703753664792765988161069484414907822957478107588995958359820785135627981868987982977402154577008377599758916655439679101336488906137996374277724814884139998381885067106766651168651186202404415235438378847427666066404667380769819077770321613812150233684844852776169864051836619749803575909475137270139071212472339199595486682022218112651430856439460822364488026271750648983010697712092147478763271209482055961805072855768182058147700780585603540476256067718455064059030215564831720833165591862828427142838989735325961628294207082158591731692053905550589831557602995294240685775939397075810178512894766980109985637047659592722943049073190322237315239710490383135100869864072934301589121266984200983324083365254272412274407300634703338467102950815146693530020215006580913280037017456593909393009128201492625028882124836613282911659961047309722488390030777005744137689028448448943425928726005496317054984047236921074723321269226963739545513819108786804827525535669159905475543785313856186368553735857913733388272784705694317512048834613113131293932730227224570312382073063519541028931375345748663925873359252301137390134908926188809744280223438667443849727542352869426264934035729952604560816158342637661520816465499967981840241400924937299218517347352679262340522901597621530451755130110797160806344496432342669209487653609576968004515388984604704707400875485171702731969978991896604839087259103311281778782826872648648467461438297231877197184726301060655059911321476076271205906294201567055062042041796773175813434778623226934678420340010392990574506982929009329854928201920667707539945706485635024997550136732430649148238457151636450928788651521553410486565182772199015934269752804037628414519035888458970060615629834987995430144818861369283271108030774286609209592820690176746961541172075344607137490849385755469199320009511789132765559150276495389439944682334523764421227556074727249526726217055028449006106649927437659214829284142185694712988061976387543316809514369306768077136778156272749203755290952728485910200797150817849022242088253680759252108738359395137231421534997040683147962965430260105765687542316647151573262621294881922229495146815508009304287630499393093702954562195414593735985418073784857769701320468338541590247510023825973218097261174230702135937832730585720558413749011829485941965240513822857822294902944821623914798283439712596285177711835682217578823207114603617413715190934049376940226495477097667424585935713628021271951275912573735629811174473499189477718377539896345430181082521277368985108769460475517649730418995254479571211872652669165214288358048875955362395472649414766430035640504057691097799262771625981862189867503175743768094166498566804700027113200418629440485486347732816111041390039467126264497924553991220311106758163085640682032271296266324603408602010473918614853080265620369333781462490545693577219524786096729151451266246922845320917864946036728014015241039175580212374082542405195110403498968396542307034836139927628699171623024536815326259606781023449413166402301987728518791705183748332588326956521946989336411677759691367561867393465706669976274404196468140431152886245343531065318636063344750426938920679311029256493983276274231439082801920773023815022708273196961711323861988174325765529975798017249262931909153699040765838501308446579538522635625182882743645087668743032374856137768017313114726772296698065886068186591283250632336716105677109604156322079212498248060214160910009017912999324621817176582143416613999786762795192064354603760181039371104438240853404243397399445437351087519690250813646982424823742297012706131959487775290860602779033591224237726004662591590061713215902565131756124500841117385925413499485628993675111090027895926602402599387839477669028497855249930585616127432850146530593456765252487011439020439950044019867035985102833688172971908992002774338517273182748848270384727485189678672859259264692657210866046059523150987011147456728681407788525034829787354806774856469261988249387870335534772381376516984233095563434735316050492529595779062745839397113892982081750794684104663359248459584433961408588453233040867191309197159539236518052720822297029485674197872099203234798859790647313215994518345576697295415890477674331973996930351079426550135190197853161683871911054418720260834082560651339450333560680127943236401337586854374107174401381649673824592709798513466486149131763581803566575285426436328266337340368837978547090728683825571688566313011184322685151196806518220027313832670995484473046544073380484981798559085418861287068763831550125595846899601089661299574468973445818376840316852815031283216276132910384480352186593782909180953559018315788007726127552224350890684573541875855625845688333064656937147545469687565328645297699840083420494431885316004346690424996917729518733782919057903833163987770134197412301547076041712244051424216166410056886319179715294875978267152830035556437131936631047380237305478733565327351552964787428368661641421586318635196189997128044298215121562926432118952178047743220841790737209014156944648818093106831944524089179730022890700958610660228773577179009636047004669146121973946741695622725140602810133191031177399620366774846375439811512686911447978671879587906488655604023589812708360813552356140020259432411206083339749727076303415920499090372426562629083880786723988716233067627980326876075683876648917241813299846185598834288014503090370366813141016657800602861036347613704625735034218537017595747211340060482518361013518220126819714864260457609481625923964259169281215453170465011597157352921374218446051167947856749544538370301476133496031303753656245575218390188041986261980259968591340918882267282961473879516930850794491222366833119919775231737186709688217778013871385116206053885155051262956744912668492511873963416712605506856503063114189558582599670111972084841584351914833155710354329627344411646327471240779154279057291016161253353947508832623317917349191302253369654791539826730904723020979030708676919975640976514464332936200834276883646264018308450805099113204017914673754000688423123066430224587333833544154825007819370728707079274379369328313530158082898298358493116931262282914403386558107243038660446016943680264227891844288816375701656360185633151637528342639633256883261555229051362789253705039859400251010708612998054194197925495060460612133147669531084004738861607523540335869747395427779784319950196286773941096203127422798859767948850238513460750488615244283853197851848839881480755197182318225413946455853110649854017003694039062623920433795404981772508582218194580277418879255128467193807392564923968156266757923769302248720300609958199448657878258827614313583866881535207612992742339083774315807580105596026254710767857477042220851777918022610453361356912181784572490949310103006012946630331778544105031447526074207031453745463471662375610715177089526386967429320094803316831559209427413671782818025221941614197089315187389750296084035281040183794601357324880636373783292747350790371317047381483130618052175529439493131486884757378499461232168365787841061580043978434637303518941208926860048654756964555973396053167801460173510552883133773930816002375646153742877450496378720972566599974741955842294841905845319764224196895314562029224899238067061683981946914078476702852086465869681846050376199428155352152578018980825876010148859020408303162226722959731059895696210638152410199725471916294418413592658444931366512396173817460109943425385426663072966344317493176045740445865439950187436077698902111965166766907370553198154447119197385311748214013335262971729632682331534171079219065236290539123096718408058483390109377892242460210398019290215361912193208157240819005195218561188801577299580476447909317523861924831650333063732029137140322901174865751441905539371067416634907050248129937391013022071638419029633321773270658208035346776056205871719144092449445623772838212677694916356875693038056236196912968112271982791947010711398574799485551240413235683306916417974662025637548168087302470177212473789016509978969728217472288467792016445218752413467831460689543150759819105896438659871757081984265100308986437084487870535624304152773118670583130286583682821202639581052961183507622208876320423901028444547041671556417134547028489906031923237521327532455871180625367130228851477315856282065230737852726345836639826813113336511594581397649076445532767688044921788837614355062404217567289502746156323463807636833330313181355971171749101232095717531996681801194732718346836742256470521404349361952642964440798698773441181838482149835336962403129250928423214085388732725920615010494859536159278803807125089329310821891990092991166964953346193047834608610759723931954494982397141124538506283366243990213244949696259236473167846460678695936597593879223544666504554239634775304872488284597983008711610880707685412212875744651165794689346667908316881063339283383249605473975065266374105929101482166478292745355649067649295116451662803640574592109882554045496844700693681626586865932162249486779285296812447959189114204212783581793389421220433309608027445002231205406425335804625482261921757048549622951316723859061667582201364967550551859026361777157812690684161748752094375899955689393153077149945418167509396053180592538201255306492718124498160697329259562311204161427728705835854987535583527726361237180353909067767534692234710292178890716512148927271739963722795961274871236760381757797730665643314083014546855727730986939259987664091006060374766328245432827998834518083452146974585216767746325550236725329872157028279633759181924837100503338827114188100422782204496984502126598406365037788000511565787033539790476739645731734203899218066225404962275195627415546392753544408193217407546170486381208140906019523615615381566936145200222122799076496093799025967294923265726262097064622654125805437157838617265519664440136696419320107315269647115239209247191916129575407688039825601083956956971836036706309122073105984237567402521498030917396552085591624294633024626959402016941627481237522855668621656430913391852639355378596456337648267527836210499916021882985962620708848445406552510591360627494591026449356149077611213452140887190099086934396385243028287585764928133792748925879343083401344110255180214345033993082435175364441128902830511965979021202713351689302286358545664408134798533516100491285035441417787146459974430420180452595250552655161554649094232777155067662159698204593749353147893059416877607339339670262875846267075143848836308955796257086269560496017177967227990882028063902754421081529314429497392132241542399614023322413865202431537702084140621461715092957359309542147909357195428233645644575321317329526024007965171958261962752729304427036983842184183826981550577286794348572607271815477209953673243784030441115113025481680064133420201827438995444849213524681009594730816067410536342611381776660703032270960141057078056894791983480896333389729133829301714473714627189041964626863616763827728623878014336122904746857673168240936256310356484690644624833154553397620459636706096250567116875875652109798417611580484488013861879208811654745050945950277692264181855669412699302815976165729580964394394688652638861986517424851483737290505080846869924445457513231706264132744792405705807417266139163945007458443535462587562678427464430239058794880196997224556002803768010154834084580731822009203245721574870733679798878752813003585622192423066022855609201779999397165598069614591144325871648829468422490451285464361467140744457279360125392450580899436054939338335882899271494710033489876171456261908283666223019041032378478269730609528037737012975261146520250769527882390415054173766600147276376649282852903046315227027299539012420612241650998753697935265211583684475703677634255703840358900443386345473685627929431344212941963809328276307240342578062814961126677470506624297989780065248356910968174584369223754073814057137322659611019744556450696970648351870300248650822189730429620868939648810640991564960946970660282549614250216500578216455498459404766434546083961166698335746056954916653173994320739408378129001322735738597093169385620210257192514578934562429338408146550871076177849021745769065462968737287382276714684488187936863085762414456019710972153802685552220920017187758444412144929961115750253850783011013113289631532835707687525252682624786567936485976079950889226805764351825665866237068703117691496357683981935737410654977756157665492676764738786197264585763703449666430687996686378565106829185874065045748984292646765320725548614899162591268014158506985405783406034540454195317672889821131932223064572270035303885133843073518433876835037270039442572665477064661140535914626213533561393129228741021099242081693754235543879951275068277100266124271824419361974224217214054644441696481707997157981784483671941893779130725829540141558043134763815767938642116205513325571650762316509482734690827905281470609393322215775437340169421992001850302728894346752476231657860560512884927956453484679085953461375801095698909729623237667063200345067872900221051501774499121663354052259306554492559485490305935317573381205528269483333347622503328519310750897736956432922230997890221140938696120096120111427439000451164187265389962947238344484965330803207100935556636974537719808101346422704448907063345153254373978668066688804300542326999831035570144385250584407067342061254314795704385094289677672748278555739528823448967914757162828260722920760757536685941745957399529238300909032360767891377233068090894712961208503241332085718644471230492860284930872145402323003133736807014819305802308242755188310138718471839346864688487209456900280719464658890119644627549041164199664511831577440262667084015527132872349364822928612607927488408065493770220661717067692103843396534463179636555522408542657635266221835230735406830824961085646605700204730023470009495866082225146725927078097698394084768897114107336820294886814287882758807795520171762064355867334144664293925266086964949247649109545213152348097891427731917659789247534107843571247190871035351831164186983298419747228950544331132663999011018057311869796446204392888290061201894716885527196184975933713969871628649998400525286373111663057652280594266912579226355994594052104181943763878546005488717658674865365349552473302117688849806278505663342951480822889050485430486258582423039223725362357403659613591337755480683618565787623889204943336403131797008004047660513982412640848083715426267121563568780636025110080780791184139383835642436468370665384483036813539294714042951182674290075019632770805619006244429994427304538449533119149282908701529974576689131966272596078356920759270626346489788685774006758786783956910824257453269247221143830570231589351282444423358333364466952839159632670080396850464032699651968878125013072174053368379773481209222600409812057168588753704293784020580826885981915908226320115135702600317360694578961735171670275478350012364990572105496039093964652733748801976680989681256420022889443890038200267675309895124269938475256949471514482162769489190947268046806676418901971509648794366793846728888981877253544243895509632059135025975779512789779972794547406390622875230930703219839767163769453269563164687368659848242225055625553367683707683959624500254311548569405409755075667337367046553857062133173802257483817655051874379346525986321550106108534029182065212555434651626812002905359582263663536529038691418291644764466304991573909019837873777589569701588868282775068413774771550398509920023730410381323709894268510411400542023036156767828881911076990368799899737695745322866826518973061755120622092493020313542175086344799473011848643048557820233729152266898910360668372134697783813857188540056122580114169990174859135882245937189878568594426551953623280033068384971955773559971607435980894434609536252639667923069327161890683948932618909426916934599603567607032652569706994424637826989977252154130626111562246677325036334671493921544062913873035753164933652595110060952408302071796873056733534877575073972278494680158410158658276595465051248459915055092406846804151811794504708190172393635560835279860518014620379403164477825729478947142275158559626374530772411215011395297942968887595525844846332336043412935615230618279749317542539736873116405893749853013554639086209603661461341434603984387185599413337512687426122438386953960727126313454522960992589319576445073777691131357862235965746258581465732998574991268817033218015391168621928827865674385397823489074022779838514539602080241051359261896146275568153305787137875435640122698402567616179076013999579175865799927862036230305453007521715566467330788936138394952122212090650992896745920253053456366160555224304063741123759382904677432397356768583349328338962832936963719784578188851629679804802642797175590898910778791265895935247427440667451777490123364748398998068533863486789698835247393716852594366003647298949044115132561052868951569173922252828781436457735613240588434762670260293690046013773895570094855894316299478612564845902822203654832112812788189782410543639856268224740674689398506935950229937437823465311097199644407357235902944005897956799277548316301465465181781553942208467509128860958358569563544284831498996386907168738328953198272520623014458528691966719784181670027942395564079062295189461530958938343227717656265475459120808148373698152721672924216864514477103693537263360440114862109755871127142304278097888874467761558772207841064437139768608242432938373380352823777282507021666036472370495790095789329310186994830824143078975405884151432953683673925770703059971502365290281014180627816489516668113654712524349494481781307830878847092469618247056529208406810477325352169193521739134119170839967244228468516278179587630002231748440389364702949103749417941017250125305034212980172591136189016976247334104589040315168233040421767828583883344819170315655917207823561323698287213284800961434923449225993370208162350600876565575857428881849505285418811784240784829356089608335770788050261326460875219264697518706459249069659362806273336276077277740907221751443161028605247298172073502419751332144320959267820303197353928842805909403495554742786312228846222382610969377641391332464301020478615142360641835095467756422852262884854706600669625766241193235420480391142191088158242942711724480030717982609558609792627819394960367878179390674035075865419979452662389332495641502457572604768637691948886481737391943593418205921196174414499460196845258088052025005114170854866996104674692411000027499906235573264256214760099784133982092801430028569584760046602701450302397280572379169170736156857723270196660519362318255243257241502731037349754869000711571326605409736440222908202575520498418186477891380452455515380933115056471011227673078985197337602192445186366243733792747882895162583823225603660434429553399251242019425668089945102351963338297263340825669390513945891046531941755044043589945885980062559615688821208764418144450231754496975481200155475013163364704710734189246026449243345164562966066091182606466117475638264470754997437866162421114195704288496240590275453691412077777622321887321085391422283064437384724415820046014295847546323113190915672680195696712765799720218891018857629917275417664799402526749974450394490207452486975587207096906759348554862172821799072900224343367848144857927094372139691149788635977792049840036692627809052458417623885957791941958870384240188488040242324560270106294893316949483277262402673447511361375015413783137743729311227659018390326603563014148566930378781935556084355871023093595480810592704228449861867743657279541526855371212368341195487244137438611108087594512824240923676372629845756656202616121969326417699549063567951929825360468230803596510841554187228736400378115848597469602448671112717785056176294403529817678493948230777360506313032322761136011575877956465794046924641912971657915523282477340385110594167582100141272420003252923878856783870855539773331081799690999060597205299719438085015067615267391573184328783253994283198976754509214288113729496924610138151335379590691475785895013707640408070978610372789741647792402901408912666468573782191135397738470277646671633464019451100234284925807143841068205679544764461864727175374662833954851351491538802155521954275499393851546432956633696357899284125653954679911770060435755833463748376985076231167350751331643412980003485519684561352529018755413044573989164713829219067176669598874903636210765879496856163871962255024603932020025426272836062619992290484860142448939211240953387718925863275265326102557054796648906038041498881542559474176342210094107851419596120949826512753392507833789945783521336941999515434169788098365559407960912100966763134230470099568974008181841963968878784576334660601889041076225912713120874603805351902077994324640050596801254051708524349614229201104148465277567965524010496620971246717878907926148877657528163419905389325574628136791549161734785922301807078099849812940779154233726754675614672902717919836329420890104326277305006976865516296678304870997814084376199202432189533455223873422817809259682201017718808613059859645646126072392591280504831528353547653695156947579744390181129345251316501975628742113795625572098287103763432964625607766860814958579033078709179781130322246683278708087447097530476625153931864387031985823258943238476369953091915269800405039189767732315841859172334127717233547359193069580194232073995813886078332995088126583272571830664062225942904611565237610714567491732454711116056687346214367870145270240414685101730117718071595151130816125513271666409005918254558392593981476830524299171411792331087111361440789694599805889277140736591359369032396728244805355871600834375114219457815339547554343351561655868956278865598530670665712946972393608397312323374550743001370042952002127921206490710190635741593112865780717590420354976816279431608160218073416300463595975023057334661190714794643820888443923663923470339436799817609982551189877350712714582863062120769015843297365706786296324018507147545923015793967275032329668371673018740136369326916048216154867443073054285225949652012706335569252710578391944645436413909181805486440314075772944385990794194580597931235569014985913598118174218799588221396310386870666135740570207434748368774163178418757931214463314003329525939540567193137863276655550652077431553303242459863862962133448624735531334283375057532505314499420515426959324993521093054560323047606568829014302741240470775819636935475536282432743012502544617694715771069688068593420510879698967849214293984663952042174900165505493010014984009372386561819570413663510740579848593484532531199105771646214884450246272802801254342671477088677297509351551459829121539676613735520025637563790631399222101437320854799513381700415971811726616271770032128881878035369147386756633458137800848386816607668851691202026449347685382049843575590016115565298844292280274416160440246355697557936170995602077063436419704120556959433601740637571628320334462035049409645779830468734526672463154256144652804235133801871653751763121557819939710413598758035448072344754599188692181285842525295892283773869004999392244360483180276168378961096963118334727104218178814585272099803057000177555888370240172737504171316900826830918914090298076188594151757531213829003279453974595491395235031618527951193901812737314507909826439626249941959016121919565442836660585941520282466587905181135312160001454318175145132472644372649085737021083644613612579189347984362270156064803165797068321368206863056435566468932193163623495440669709330847520954886016071961682443868003503251170513958096491192034557108308801626617603786372711119299518293836672741146585486451137367198085412353893076484701411489802328873359612781021766417254758543361401786109566919150174732480916657208897229227727445600209132372035645459949540668295632969814624708111340975914572011419178184829521332867769695015008891431942058937683788107621368406095669358210394846594124620589294953902292306213825521131014228440331137246985765694387216746536480346510786243778149356143908471825299454243225768144645486941686721166257681470395398907553922053683592245344247900227852373265529486877907198456942778185006400854159106998178886783886340810299401086884784054450561178919555553494010206149947741880131727227521799520041507006074125184794163801004718812415463946567270369268882517677700382978631474990917809778018145719840190323831135268331842121205007709122983838521902001712001727895585898409562251841671238349696713675249174029208227756691130306233677888969986870624870105154916014993999721081765866847243692913358497188131565037293651061893000899564356797328604484529010120061241937830740630952003146995672708037867850569929023154090802700804792661176246054049472298573666355508546435270008793198128663282914832960030303276320709452591713776687530309743457021070993752265933038124714891120177954626559916946180350756019794069269189536263251257572610139690661407003959694383649101531076779493023084194122888484585289377184616655305511292317398786359692560884028526494044768085396112091402234123619785286073685694292353320928763189776076346659154840999861366923094051496691112526021165478406151593285454588958753573410719854697773042463459817589876322701495273396684220403879648558658016529740308523363418644028318307245966237783693860085092073370482564169355249879039318054677652033396231273402293463751250703016352809232597149073462003100637300668664324950801285311600412554748614530512193550655663333790598106029666912388525009730839008207228045925740334151602637458488565440859384268776156111505352023990761641636766214356056546927332674648609766194590332294913242453580351288375227979025092533659139817741990654580593499510197910046393743234574566956963071151270880106174248444832341810668934760226035672310441047593934880218911822188910875236612168446476068211427779518099978514255708267690344256193739872722621247372579996498840148417761675814970176865158924498710644103208671806100928490485935069946255963270866739357565143705917949636998735753168502556954350809671231204701309799067322794438081246540296145924696750116547766134652243440635687095072911572731248578488828599213592918015591926682927995016554451953747293481328804173619793091706509169072727363981208772034045513180762955684540837533067805983481546201998871453886317510138292784064790259017508690997478630481651784066385278095900415710719666346129497707444501289903241791188989045599138801195790881825295975797392301001365947712474847090495445265217958799483917051917638830487938694829412979947998938695386671732925210647128029499382913759588429997950654166675946963589160321937878567069249965575702082754961131865675263135626813437311233741945626264639191371424037288919828525822401612060556736334039374764408088807223760943360851079745793467921481232074266366978032547392089000879220633715013011029949183401527848325840999072007287370914453434804587663967842580828458933662043900691957875475105396620268109311038511767115226674149232989576493061088558819893450393421732834133691616241454223060105370122953180978185796757304276357463469857365930652748066789270332303993773591969297114085246784854876469501302850690630016774926168801423536040766997376742843776070623241296444451796191593286020415376193749484773532665370845485951534393544711070167392390936538723770604099256549113091767994088326510661071521461410382173457364909704640201270173078819885788026331268570872780457072140444120738779942271723032120379958595128048771141060892652270865781814843215357576764300567381078956526425959376744362446533186121266991900086645788379754637741483569938671426314662329083859654144334053862935544833980811920399842598502940726176531539403669805102281107104378409007810435392693326760729254066327049153912624726994001661150467333356536683919047725683872475928063257486105689792230547645668229601527638111734245579197793525602471215198640207723166299107875966872062929267685691927379679321434952684166758688884899267337147226368970156168802989632947833839139275739986297560714602854605137259148482962030580861038848920315210467448653073923990355944840852969335237588562138653133630923119333292942695820895311058870977420177868817325090287506054939018114249316776657060993461163744239119347035914117216322758323891138208488368028529667434158454227151821539790782962725981879638325229419451775832802458712723840547416111117535623284775865805896279488361951435059765909982080953194996749102722035036105202129584212012027716513445153610074631646425369064759556479953754829971853226599318365946895188936573888529197211727442990598744267997132957126148987604663312667394948989481005795073653063505407228636263647171618769041669865694373809236982303712117760494462585489988554767594376944077635077965981881502662548565706241189669906004542355753251040808733586612237461617314940993192844813151253184707994868801214338574793806737314565603776018398784433414740051829487741968899951483514133942047627189162919874502453183287425217989377153368098564873064691255684631237505701831718188083731091777333629466545034092215188700694264984015233883627052580553257507092328846200933415470272494932190221015002403549986429540406625800030318538222574447787281192369438708110148388587233942915882142610341954473916054985776685525601798519050178695782660607508287668767709329466650355657386956348190596764825444913581512211114955431592544647683036003570756337056064543713969529978568017315038979450567583219653400402131245265271237925080953258456942145906994572004842985105331697710480518179579671705911738251648346524054786272749173426435797959390256171680263697614750189612676287488243507167338847650995569140538978010087208949159058432813899406186217448846747137687540689432592289313895406962344250796173781808884875903821914597080809565918325659930361021851496451350997626566479948889229169229836797737699448762001524899658478348753884505479591916081490159214131211733128550433697568100496369730957674075674184773081855298726395589878806517435005887490821805954388913040912778063051893032266687633796088653163490985263303851337470371454008930027318078217724831519843774820701666810561185706183532526905997838892336674249597048706502429900971980208538295116473899891315279058474005100796073354193483594481379562445780988338009590974200531160968212987674801045947332507213581668438488631115761619489745841737304559885406724045013083987530083152709502823428523536307701742836911669989364419814510269825440945890231258123283500061774751996655587462804838944727853011252622889825201901999359428992750234615345051370839516447464927608190933249288152568203625246794400639134850216697299985453470101340078674412732349591869024998563604114364096112502681501468796633645030902534839412835181271563647098664789948709719641381782017610896540380591702173024317436239368410099043934788504194555686706534119906481461932908297098167246479310607023319578866999755707067369010786897644954047729495705403152648877077486505199369098418551088454541331299526880237307818243855485318143281322184886305801424315062964023770450948034161688434849081881225793941720405544550376570189231542645504016772950814900884518029100501559063018142964306670358707405420240858110863890024473778943289985430815363750750646306281682878011531925068769883234977383156013079752026319770737786146859059482435058137183108166116307362208273614182407568457395588771938066062079454806740236596090753136477400909136579451195327245646993860914909053892592739527573003763714543918484300987020551550331502038714491773668170096514674596634471604429700903250567995632826428080205878072615904200691307038307700709287153458287642892175260426710256253753046303373823630238211552811312847637685362353002389612250932601572889543992713387930956843292681136935351827667956603859256822104264600659693275804923684256534490513823758030770116306965797269534121133640556792587650540075713400395309607857515811564647861333918148041468526020727458603351196472058601285139166033801657967792312451037805953799998578156077376969042330789082477185844255790631819297640754951336478438987910381539225594532047572369728197583791151960071691139166309168154698875539289570559133955153140737189812970713962194086981932005149842307907564345717497344808937675387658763539404658739259254104315554262054113845579173370591768918347681600889033888819867779722573773578918698949702433294016121431452189307953284072635487895079092809831724035975291361200817342485348981685643498380360346578902918437598727518319860819975378550267293982341267586146330750846428205241293150853770465967543361554842766973351918776973709152003994459730587707064401176167202011295381431394816633224249407247865027683683308666497227901837065090521341549687042327837237562872388132360650205374734605406277096506073040035345870350232174059591812048034123217601825290086399117795909452798026520556777682435279469909949731313696506024361630172203995649370249640700447407602674461991687820753765780078232340200122567628988027785179021157685753878125871159973014620032861758788843282586877387232680507273639967138001852592982364489478115109081429784013988470557008661459386741371801818970219345654539203714259095471829252689612990066319017539636675856980088258949868989232933251918585607510272463464645297128582501959634674417821880375332052313521744340965354287748904065176628473657045906774131689065221976565753044112838162031659258980533607755806129135175334070714910064083826560689686455824304099094758482120173528995776073709313379713855409476393647269182515355811138530171482200486609784290779262090057173050846279738932235114656793967423900665759343034393077742139896247473253076288807200801430776824175620224063526227394082577283075119812429443093392632854397697626928878452479821747844091572022697283013992505266031119232020611208179257141193318578076872004944156831443945640060076760494204542265989139382083092821011405928565606432204660939634799162927540513155007923564497126803586374931447203492370185467513070186617480271792949823514361284307447438546487224932599033058572317380761193371362007298097718281165801883131012562626044445075132878954165690906268775750669766163098971250698586946335703720133179464031023419848458197676266580689685943649504870835485273303930846561981801932338787209054684062161377587001465675899889852590477253839579073952541788623004458958272426633546532402198003751479016071067126640931971625627272802421324597851563126674712460452414895874500196374064128316021757979818328909008832785747229089092220704562112898241387380808428599406427802616632230912988078936689193457142416226299472484708925421997529733829683032508239666154811734419138168203274766636406518839605546739945715418152774334123434817828548322618968097316713526938614356550993449269555802887992620107341337613524003052207106307712912688876021191994156435493528348863326230339671124591477221654663227230449998164035798036073701714815834838394026364440965247094525488005686301453376106546061426858064399326758148684210317843537404281285038307565173014402732999886321022894674606905467404780052784914728790501358152814003644167716256739454709769264791628366249730062386047575679890630033236710301693751825003372403062624027074110872651778800646897974737745887300861312409419568547468309102791448166887337180283726860187242029504460847369560919224047305391686865227738747091566535559762471912793629087127896594434556875887600043484079798132296335731058210807312334910741535148889210909405448534874321770709395081520364724600955923176880557854239349679369515444455736521812506549341959545541383644005873637763030028881730742157852964472659337683278574381350301771692371432391228135776078299496132966997546774179898980719187360659057297262753856210466394703368218024376132558874547662762878848375064815755651246085268450102816749844846541219607122897178195516342338813845359726513218889051649701485878906254973543695971951407161100045107002488769543682464806555788177490864281792107696555838237425297321793836467077241834845164748258443510700333746407986744622091700460058931134326696634115226333972696033407157822109394785683774435101131236513765902585191078868516090622744259608991789683440679531416596416210110084670236860800501080490573384423292800015159141923245101578226143326667782272346803238186137607633598521489339209617314925406287152524827847907915030520698254592553821294884736402072631695398403275682552782620374666582337433016135703326482539121139864328497322649968430620157492877397835383263447087570213807477412856025822384172586831412103208642000916226152416387493463115139336788657841734797204082382770609493479397235295533683117656469396627858596904679997013143349380835935856762443571763600254718497636022550926623007496134084004723400810704378827694532409120120242441191627427795083920397640824199615041204621649906906698975946342525118565261258897422720933448341328630996862287651712313442192317985896355496943862429572690686340418076723261237820899582759368681684045586128815903949876304224794328796814833136635781856864912323657225522900104779367517434415844119940950221690173338727769732773642790797913912067492918898319295189497481680117282889677740372240239186854347637498873604617367017076738631661047099160783774642556617465249130234687213405057972422600586993164200647514989034635392135416550167802998675919413890961244525593181653921362956709219283751890491143834052207117760567070246878778531097154233586831220855048630542517001829934680397006604967675044212505423664150848020812723272618009378389436903991884097356122022282806660195364711696973461198986902265721037230891570854171009333585310347735991729037242349242974350084907845329482779281176507526078582663223570298206762798042542061245407381046315022436199410706176581591941697522066611811922597233667597166642381492479036369728955266672848072187718096016059827869251341140404381714473937600134701887548296631584674920247780183314471697741369762820376887902031132437602976685599526918284141849886968329818344659030942252322002268752530777251901789439486868109481184089734774875099152518399205068268564072383193119049710422287269259460421765061599215018644042883128072056490903467164906520258396433975334373436792807699844500372471868645336835561321897965336936885818584551349364112581153787169903108485240599560950687896114343953297940752043509823727134250027837960727551324950525699287688756223013832284268250113710438195846281055415546220888173907208737199281179653772724894170613006162607427427066478789108066796912521825505991672681323690654172847747064432680381372361731606571209397440317080203281210549784835895004321633747655772064529474521028108473751636162824928817778375569454581931433282626698105181617894886588443299650538894637609469675023196710569502901719807095372671551862118118571780918347707479285833491944564730335937018827259068994662236570378775864586982909535730986725992074569066884393436073436893761772212471263335892329406628712061511083057116208511685892724040297501098923599229437315383215405174565047925945338974246984090425589987167445042115416533752643121760992806263662745825772610898934841791006378473364253940983054336271316904047266703160116232010316499018879034205073191061825725514005084343464896042169304998784271310030780447878458752976880805634250398637747301228458886784181485075887952382606588276974888838295137226851972276029649460295160750239641080204914241005716572995251249209361195071283044097716681720956618984823732311205911832949211015249899847357322315424128532166156982820193719355482320432613766386228407256038100554481028094407193720706909270918317859748366948229339502890219635220065455157368888571915758220263684023567696941293665901386731478167871544486850807256248983689495748078328877236021883645207548056677374494468559646767435052629790753031026586663333653200920054665562442773882905469440932556719983228186932698953981346398107528105068879671550535944496617145476659737773667440179119323502118377271534516034001682505601361604478152123201454176686812682845405523513321823234317934693997642520200189857268862541761150690223046084722261402153489982090776402843088369758650917094900047285207313553408024661867639239513877502131622909498208236222103823881078769433372307884114710749332258516630194177373720459153104861089827859334576431011629888278794484708062313766439912510717011218066776082464583098060568604455189249221507794205242006464594367762496351737092275072917468729681269348155367474229034833104336326332704070440812146669173581342330093444455629819104978743812414608876781460765212576735227000169876531832919007083962556221767239414482661558891182908750851503034637448664731133712644838306276751724772299970155771335569853640630362032363487677723453080565383940126903992695320544954034693482372826147022320994572311442457139533031911353103521112652874682857826036763215648573339009139269529585248964152123694849020882953265666474828960217643997549359245308848563059347889698067362907518870423121032752307884178355841578343632692523609298289787546264977843339647814016315529911319165823392218308497701259600645414047989726382803668558618018076249288621697194195284091904994586895379267983658121272673382422715489758045840652408618686571988639099115591072663105690228742468724204775262201895975692817389636291935427607427035611638993726661654725913603914555556336896516664543269421480460048173277065310663380743768198326874980274820406308884032674165098061186091039297642795240044641948343493780833509101124114263926256018891967408557214457616284010586354361643325615385385035685554066680878708626789697972105198642585827882561525426973155814412310011329328795787395871981627173159492361189564794600104281848733928978454171676233255932294919991982045718024968775259762148712833564271943278296478862903139292584462708431736883158182047058772522146338174858856990236645244292752793714753472737154782829299622029244786951143098112032533719524382700617464250248051519948941194386836520668524598933412567432031757060912247739817647124805539967401151254610497606900194442781486168491926156861243008549433968933065896930954633693102621377983833522782566168206422097658598448358953753152897655414208171649121160611090554055850860631384886904525633056427954273622917930831106387453080274983644863377287253325552353746044940408397214828454067021373898192533821130423222620998408103644119233557925211081702760155700317059335509901112701539795164070136991667248147445174345095683619473056871603885449015436528566937965205995935383402553010801278036653185758140463770299001971482556935133002859855142653227248276340950754893888019523772498981685350909284874418670878750680228647465411771402378525664909051560891286010578276725035751058442634141189078299217993078110368572368295797573085278905501308741632124063042114138691491343799160693769110343080461701120030904745792742202100355852926915135215466344421251258086467354133045776428624726970120078532843221177266858206323808791560704993380704638317084450297918872030468379634330539691048975212155142532274806184599084103509473513206929565249161779967358891984360513490162870675326607995549764426802144084092921483259342827649803805920274896273190409250085126403948597030017062849477106316752603684625179558075775547669630822466207184543624474457257724317822876465998825322072842101135850814935249915074442533532036886583757386529152896346337127703626647044953346168814928129846989767002139416186703536932201853153196961148704863189931017974558147817676756103718921591887033219423181797755702669863565308812119183665070118446054676633297385458065778199156939513623787289460510164410297333826311635444395891455360852548230398977811009502866674776126991971239074534542922513761051271422153658394839411496095216603696240589114126438081224285507551966037614874351618768298215527389058672237693763839942063947566796915898114766933209391933874837898524714789335431580485766890671077649279976310575904495711663772616036139749080119336696084458905494337718337843454271951600082594664953911521174038202121574449245659461048985813200352061112502370469137952768989465964015714665882346348931938599455986752751527844510718208058700617063393746276070197396423104655627147817152841573831972359018105823507867943138081530320856082852764003284718061034073929689990265145316362787085669424071377129865170928003049491446641742531202731160086655514717747960440215089467903558988969223307060790409893006080621148856327554159362514226874621361938213071189278287838112905391227609062470150185346590262472906794337238597546082680759433519502521043771457126706830639595061129386896167758728236092908276982537694113298110833988686591483387948101868422606151154504909357497665084510643063679237700456235311444499535677359226761191044965318853032990349614273142230515160328978817655447665904129284373368185611705843537630715622518192315666678296925886653729177615618443031837571013297336026451108785917615791259445374156971913294646642908422917921004006775742475348828658686244628339872745935176830759422533708649089639983440143586553618927782026848214890768984146219871403902918826591218955036371972998987742714652079492842725909162322254763672699922501771749517845698079251625443000272583237396597130876744711188780587490793589292973862879721802092879608244559189127817667758561329126377156383208266132388425840915277225846969122227130754410774636332377875383553275147352010643496060119627652584301368816809722458347146980613903436912783093976860056263701934304604758559747832597476793850153967781844072329063640277579033889206245042805312550912623935948017945753473895886193084385233229833661088484086322935369145262174436246680124555118698021092114769896910311073634347572203642293512914636161547150454896594565982551888602288309055825911120756376850839586982430093658771669249476757640539710765169292017410196743802576597155146330320921803329103211293964704183022746914791352038073334802051374031962191029730556842641721459008423043007596734471619772107534714035827661196120755956144296276294997001281629263639273007128594153789327700172802815804352770517417852913003068356074378729718552824155248340181598874878503275255449925654200044860419780758625791627900596462825082044869519732220224789040170250769482628789232014729037559102492282857466631077882364688694130919188205550738467213745548025146818839503057227817529327164349948428485529422610786835279223474935147193019274502482045994996796053551612861356008888186162554741571927886588965420756021881044349450549687964533790989135521625339015398611587240519726997522535984296427751933406039066207189751869099946753580312601302032954134139702554479261497525698187059342579771143638858590219930512785005971907089346936165479381221632247360673614799123240551719171226653114322448253565022655754541171524478863523707170930520460428277625936189849678428329463552876487498978548406658555731738960201915824330132809111705957155684095952611016897608429777797024291459101252541561919838023759150744380150372565152229102491343858141080924329478845870786954507253384313548510827023963175457090799062324048405707683174919746712915217296079664654200273320131945596293679061618407564097940670755276023804663375715868374802649280955824464300435575303579506978759726149328549063436149433556947147346423554605649053284401046369945061516875536732752171572739734182389198785965782374014613623103412662545693711062207366814055156479200901896139022040841706343699280064026554055548865058894130783808782841193971963852810456782992826775860289322660984990773815662086184915939356784736096110480977199410145454909559856234247505838988431924141814204297414972221481566406990738895866620293846740858867806091131173890064132699668518567873044982044813699238805879667753671321903778361868552572687384969859213934663295733079433118787310331974079359208971216479560454355406795100818691318987316787675275010496774934648955209924190864191913205474153632488178635409787736536068415147816439483464581269112394438087360880277474502189282081133461815054421123338128697889806093739632189291899015094497762436430714799071570970221882114934213427824480704071418579845527414084687588357252532751939084336566770698174200443060775138298783057093031550783834754454954569368931973030598436553116490152180848881266572381148495231421961039366573415144096669715863611894361419878067551463251475108527660710546123687128383843259812558164615256912318879084684216734259794795161990159116867001842344232845248753746358362296996579520881518786660532241458538518435106633209794713169641672861002625123291530621902061454189965614912927026434656125512572962741902007603194252638738758816130412926163504211148224546526691732201839152591185260753047643143747444689555507941005533036202156013278351734020224071758263540973411821174352018233101326418105496424944505712812653743408724881809818053802224284019017747319644461051889969800003289515578671620938648763824914954384898685229238265133582743651425174728724768966685589230012256214259453554637657328769914636956180350474992361928953566653306905317529624218026146505947991195238993121893155879954736950883821364950594047493322861702429386805019422442460040039401677248061334532675250353994368679033792123820130599119993667668913083040728902779406704520170408955696124769075670304984474066898498296726132156822281496135769499968757932798372913791304656121261765240496292843107174532460898166772113030846372267721349469979966803834050651468160930080454900556420248440577603956944855601420539361577033847906942958818184219200489683005698074802913165172016410332852827736924707240494943696452640701170748380808859270364380948209487452924085301729429185217461884924571091290053865997324663678798031533982648423937325001687706913828307208197263680144261735490870008019520207133912763495717243367352928397075461044325268351773847691711368424299409055445205159259290186724695541957052058392166718154839671541067845748257458352117673717930920302995969605384761533881405446256827589032567043409160643903126318064694030962953634820181606022163214229017744089265598906706208300710612905981638344795038611361132853100754866945511030594912078841917095375904159122317626556045346142279067465864952401098987112328883662184018081518953900784976197071214967164227130998516529167997948164337580305945825025273764974279714627361243502851769783180249562920513030372624885179171074141779171553412817479211113581784078383962280648501819677458458674886408680715948849541943329465095466917377701987999021869189475649464211686741411942600405196337995974120949424308039946678220358947722555090085881791670766262503801298509659167200052286139833308317218498662731740015145889134547248179536658939854234971623473904575779257571881345848904897509737265331855913182879180512760982826633919840868273090309678249035213275587030439228035945605376001259298743627458442285516204372731990623972364772442241120764176804774705481952052266346167526132595037219118194039111217871844330162024256996544168379595114159294613897274836667757677426304670576279742679855880883204643380594869600300026871908182728291410327681291870115245432797969415160390445777110823227074523193215526998001803489817103913347816951665930943016804556810429586037772226723706476629942457285112714274031353704363470143526552944439403472560146858341922748120920915099375423190993618931288033211311999529434102977544335691096012915421881995423839394203906991780993976661948331278302885291946084600675293847332612170921970189831583413301790326039645625920594685800013402426419510193985379581244740154740433318475213786789597903904357572803393566537243352629687070519280295452982524744084234742623538248127901283163035135716466668989948443957269694119177808219565793870653113295145292777756939911854394193505286788623654299040842143848589540743302396762472440322603980254305536142157287408416425449421786259766529599716331973372323016521833131889579311648484661418467672044716273392320173027050946434477126857964480493793725254735757282920200521978645008323031467503717627947425267686373731086328301679792508625754071592323790498823576827746888177898202193757423430228519872584410146769674207188360952622218919616838193391080769355923680005993929185024905632689428634029556797053246620879787527995990944577997320204463522955529423648923619818807110039190649840124658381500592560578148079470931872576317611437736689362503117487840347991282508158228921300480212967746290256630237772850636455431728458100922990443833642674342050331758165516379960208489596926217263081120959406742047669082792584131002437719961615863446539895713220155803512526763447226248640422756753197003791422432008890625596602163634551459457762808207075066705293166394069911400960577273880849485831634920124946722369886723861563947882974206661676471644161670005212819551404206057969292427081295242463851776987696820861080275337229220751535387933992716043909319638468841040059119245052567650675226799950507137007361453656791887542367245627343648500907850336649623413494667952403102464628736135210201425715586509924333755625769498841670679861978983442875443256421430513475894727274983718031065825812481817016867367422648325717986057779255857707596309482458469970012612086042987987690187272149458057041782761583129435932541452029389250645838774327692070880182311788054417128459032528567826510275618614649269015136609177339961657398935814198956175038130360680052328931648059899945668030977921472832601856855702978030614930679938815991122751726309034926968048667527172672694009795202468259395692889473078908346087895055213171395117961592891470058716567113821080425446429078835655211848420084878987334162059209287156910257706234621675855397301125795961385914061339644012133755789273508679564366720755818022053760856763048443751689368923885912843829006639655686648226233201303302602539099827296521782772892822920620041088116604462827941468011969016221384358679554977791734929529535031705497958037955332472573348689181734029431475446146931050874059706097868109609574451369672653593533091524738898291002053843976247140780709088861577310101362693022692827862702604576120414778044317513403690726719053681410011975314182003843852081745807372778643820130167695431959741096560444006945773004707035413612748341078342156161431463772008240175330853975072769484612486710728835224071131263665076534801597607931641553763300571079613644586760820197515765015798424149276519928614575831204535434735855493180307990377387350039957412528534028787456220279276966250589148938570292196985119036099975766575432485992161959378026048344819570546638117111069033827592003575946167029053146327487852248801305886759391873772849778007544995104012711065493728643741458188153519662737420447292737095674507745079542379566552295077394129406424430670758137174466364640861702740554629264593545599182319510478764146181457867284021211490060454362183212557009064841279624866191896082849629012068827443851850872361298165479170443081063336659884334825750931215598664437863351812468181150242791641981537050568886685145343372547951798385554412117424177532521207700927409744058141829658869678710790917742314728687738081727486558429938303465001200369122631253848944761905786658110880816840890598567111269425490611380081308621105781572883970860616214825281082120006210660094671596839650499691657977371782599928515191343218439654501595431713102271979501216024714832299606402847720626332763438082122668195018153563163675338760125833665352471785818788918287563982110235402387581763800296065171706071901365424732033386189545922530074890936090272353958227901658568875883181588263116255778202881644670917708465573180870736396581022340204951944170393654685084233980604636109435881540084076109430567780909136142232008885435522807138068428684596799154490138691018555696383958637052239356392214005395294783966140898645434798386251441955760243981462659705803669644394541939109221927987479440869217041748348110851952067048733030212784558005571563974645182132697448724574096030201971518832474183148027920808631585105814143667748668552764304458733256769198497662757331890855547890757124783294911836056945187804191798274263882487424127428835092611200590122182384632791133224105935060452979882784021428612035087686158289533214360417903040730692220336206210004674731495288840799595166448065011620777926703609547469696535542622681056664545230685701386662245458915567270530611613901512962036694856846500427361115248452426549133478170751331743335336607387307183496108456690269014147533226033799797054911869297413209591414632891302980584442425820330607859453899453462283854186725743970899309289279408360498239300613250128399575538838568050348875136402741816205486879349772120686819432120545609389290652054998451174203353413061796171290487928558651903814822806452582100256599142299985882608407234523970338204144086688230289341786718633691473408489735406538513695700851797433506718205974436766180643755800989726710525330636637012725915701776772028620819791093906544879803259153017521751449686581106290011723815615070858526783585255226477947727226651362309265681771191118436002673070866961659871787703180919668443002375056911774631938365977636070276733411897220221581625416775308949291263125258627990793080272798349212596582202086654068906926348266387210852675364457271725138860580397965618034620957247051830047938805401671815226935237969388640121270947715508450617040195533109864589818973099844426800327234138435015422243736193204277664913269441235148555422075078915054908169225058608403206937990555598537646699836174032682229261204709785539515965716003002390496022558361058948078648230662261516437207708673381767892528569218047905847769814910318404422832492006576362390136593589751625370370603280322927508647663373531923342184014507866923325407620829141624171201668172078708729767713609514985742264967251058668079744983004804597560836003949652908554467818395102159764215467789756935574405184171195507445974092023076809536317551511597439845713495122634219170705962810910184769523636026320771887998548214675385670911619938842937015057252398455601812087481455769219594618025024630494425183777915128154458960329533473355757965143524853363148449089810998165651437459685774456989412873771139456915471135271528641666460886271043372384987181869921875939155943499662124660546556822653295745537512273883814638350212761163249244858426489123950317491791877453554582087946415659459064994376171704606094582059341377764630625246090412014158193730966568612459670739777759822008611536781500662766919580511561947000055138410401098252756904824106437881139484581419525866940686861332449619428670153107508031020985404766015521613974372872904972391635022603897290535540598986449726305483407054196852154601193820942714493283509400175442722442427005486218424855851698415826076662325988266580414821607928181605828406419903006596865397560007554371565722298832133702192584182584782196713446384339664611642146527927498680341275838571697827247303122506136161677864842321564647700984928414157645948416462102300913729702131771280190615051993791406386537902901964115280662436583930417982467233401363398513138913179903471381369994936684886320419666127057546352693952008027377487936974624731708461630272280236173013919011284801098635178764140015319448680263364082848322734093466802027948165237168446011632927674134491380410517682819269444620827611933457052871538904372324566460888078100426817387035822519116951739506415166206097094430904579791811407634399026807623152735683161158796294159283037748245211390369750901679902017704469988900138389735432020539731987492541807928683451178078416573314198992851309665688422776340526348392296017665113061750444430117130804265711640358726627729081725379341060451013467211876585221058805435159379214891070120502073675149236905055956944724104373226407469174010404877258201692880624336768548758792101133137383186396013784429088454906079342912056565532792982093722992053607787217837924426147954676654494706490012759590759245566365454223937146392830263602159980012455582090949016982812075949659696999241114282079661804470995234595918606206883897188879460705626234386560058291554099168309753920530581177120344502850927347973424102735087271346048510497878202748144900874313553307394943839526464854640428225666122845669954851199918989431836463514913316865245060185525240539901709864141756618970910098614842930182262870847294825793723695192779414442576296630823932409444888551054031559182898135095436297442293311657221974672741954846660405557725679472682966396646085360194596877015671072103422061799436357383183565533983127484307673208941307717027816659667243113328693435478193749113547750432245223815380523439211435477116856837633365093049063912886144015205309380406836446994345344777930874780224593867351851274542072515370799115978686639465048680341545788262279420958986823910914129330881329304677490994922567043682003345015733112216719987059486466423981561570298634420402134438230730196290799861062698802655504632956393547946972860974254156724812269836747610793355554832475089602492686519303681508293371680968515855501222455350607167894640484182909962239716217903006670937505980467660054266124995579557951953393137653452479100831835227807100177625608890548432483064943950760190559536484958321059945124737650833363723901732406401119279505733261538759133732706529949019700053116284466216645049740162380227039955437815956311430190754989862709443196708831863228311303904914322763849266620989145211628058741633948373887872999252743289243146026822705120846577664331089526273907862947276313920450364386012186863531670848854342892004948056218819135825202582199372093903956300855123493978310366890164430504800351769354168410366346897875747707350463589574877802796771154091634022944110665197972844769499137772613435561774343584531006255489934911419318921051433858791497319883029761831062262106327839584167328821423216158030589969843772231083960541655654736280392034788563705865742647231914911838027173338001794131463860158294052104145979366167927704669607978204851307957520401757766940636981714608982476291850270065253266377201563609224438094699445604218068488264723072075700545530228001963810395502473672790533326510330623677447407471758342522399870260504889020737015481317022290109054763628873110861715712791093802548407836080838777479699048398942830684582060868897305677490904621393588846002550953449695515595146246744991712025223804273424180096337199548383122140019879649809022913229684905869540105225185398873963262523419124444760744702338360761527362560524578179139452092068020275804573012442536075292984620537354567209474509105757143680743017576491377660884035665720718339047639875096434772647072147680118939090256979634730188542138166253082266942972297899597616719893894559263026068504002240941019059752172358912098251498494921632154852083806985709088641058520513479774107394946965550928673273907299977257851072523859888882020387528961847717783083695679486684536471255127970974476827081316552724881227219737416650822248181547390342946054313135818936028094050516008908238841913231983376859353342751920546882488237392890293906433870057609997327735717413744039041563720908989728957324074584149513060304165886142278061627051216931975373933754216214117040846334466964226532496373189669454461552296920576137933444409926829901834730106526293347676347628500041152089607848411709427411860133711902967885238148615967712425893681249785453087464114478812588743911648601816777334530353198739744283889802339417027366715899765820447323453275661811743419341570294281530470602457354301222540846988604436116970179567254669756978071637358451014166754237879366565436744295898865412779175204673056996153471555641952675452985318460333579071474128207019667012738503749128585937710470672358436689644327947877324913742803242672397957535096248255843974372296596379836442088860783796762233165481749426903270381306062561487048269032702932528465975399607394060191816772819401116440659231518993235554356852498007227920262161093283532037873926067510511651547943300025974804864471184845442235444109443844176865987673450116475360224731811154726450857617452499591174807052124994453062614483356384351229711343383701090687698168792460736989137775962907958120198004901432846536008780707342149453917574301838927040271029563435563795060092690010866156847771563963474205306782353663643339918164919837001341796186874720107549683676664384361446328833512737351077081379948743171949312587142544309300262696478294695971855193827486907831478224200874170890472557579832288043747834703853800837873570745952943846977640115301101873209462092452089053268237303416795024840719383077483259584782419632096926200032501992186040300964681861758173207537171600472808524045733050520873920376580774071397539193607439836718364849390447588131801176260537136246529805038003992976111635717435255094230080356437481542397887791106543974720275646399628274462097138828867164706377480487482818287788761636621426924276874452880651890968924363965562494852453195029664870296562922726258141755936096672675788602273013536080148535158825180220800997581336731878988771903799034230465677824852965063282606873624410897321354383177561080631192145962592188337306926061452142996733946939508946971169723427777937143511542480285991215894813848188731766037325162992472818810440546083094670426338670796852932078933064849510244427685133230593961959568921954898145825205298636276369464596315924414748223108374717917132294912152868286152870497668410661399581064028782406358190595497701850767108759920497091394058140836263710805315173695255672727261366483246766920730888368103596623607797053698461762802206430413318566031689160909339927556925305456079003020148071329085735297260337914846429121870936539467891828531707089523739913647723035412654469931881608748236753874249957389111331963927240274357474825279141429017307532521967494163564161046072900259838658459328177566880938632573994979545697485451338084584261252323238207451140914548304423840996039885951648505996309456131408814602976746023717501791983543381647331760085792045108003784129806735531216987986925218828896873524301939032254138346385884521992904287832463653592252181917066543328931624136747998642436534561227854966232150979208537863469415223393251656617608662753667356789860386374708986789944560583068240590673209010190371351440445153258790673294530236790860291383572440182970321608404800120908094425299579665958254542061289347869473840909421114741474340944761254232424336416953403926358921122544226005168103705623060087131080983112336980543301617209026385722056157035875278172652220341367236935065128496131069759491417636677985679040626967019451154904998858461647077706906648408428449020177466515876523161802349546054241745318352732252537421391621762823085661280621212561356729341391155007042666887542639551805239631010572154288758761069480013550778787204541429719160741454031429945589522165814951564988867120719186183768548086112586007199102048397589734777558103112590319794241599144921809074033607349382557848715156095776132397734738241791195559465642265722271731131693984318673344139033561586960468524884277010794515907147697522357155295391626092612094284601525069308096580887874347772663716080000452106691349831678631290207920577892728559808599533041579899681794098333805867051488147249165399355569323917995182124076296751122859737263790935299515062013369343328464825587315937887797337808182474869804004491695945515899448902251628744060300675661155276932383891623626974820520932021434036400162775135716297260644213026025609029104521664164324590660845283600134189490135262002309939988426085470735473743179260392331023371639781512998081058687851126663716507888497905604249128615024137344104421332864065650886610403785342802061872316063017688449578400633423451636095436610809488953848109441342979272935724514977293267437564716065772108561298122757779686695613574818734127269249145022356422363247012830709703451132517574306703996907525401450356225816798017022338040532087685240511751982438179657230829420940280463730090042826053103188361374645729362531674906048356866355479483823448007498790759486420046682318439970226581241816947270981557656968539192650776295339963920611530960063706389118518066765512259326942726710776944465548425595706976061434022316185777306136110557408350441031986743200343407023437036139224552997558482893704843847094511558456538658164768014181146321051551977985714404422554819087042545692218159541249644630221862704433428400498996194548985775349148599862578209278643540599067485267452737698550999557440822644820582915312372129937992757605463091646351250603188425780916563720034564074944841689160445720061639010667752854219495349525293030482301948055209572627229133034092690111242037307100801779438409773276640235882342502853658076906335412958048206777475802272558706747767493706991399215391957421263243401278035165644736121877807813562610749274697341552801577121295324337747973204005763901362648115546485008714687456250646169246712841579467736678772623925821176424965514269055181843975589125193527200322078331681935023788649907407168674161658733305201795530725095658831632108605722248760983566060193117806591270310874655362060527865095335415727982567159758877811120716873102029690617919465706173663939993892296881889799852596270303034918039358616446840651783398397205237713309971535935087423709219226661616241354383203623558248996017947259355246357633681314496404667099952433211553296009321460900721179722728941862835064270825993529450767089395008356000243056595562001305541348921834256415941950999200610221434726176792658128371733696032417766809409546079358163703286746364126239471759888597689340984560643717159073277297299313561793687810572173016468352281410567177702914311854454502410168037872074352753210837309628315433288446787880637082738404019059518359448804112844283614806253110094020363923796722969847640680576343382809249474302365854791399307956096985269303506399017825033530035475887490804883681529685708265499569331973797250458555954597839312844433916656967880807372464229049254312011086085233662564035459417479389265836910484565653291042078560630874831230619751095784671389635758675968083976653215468829366823303221151001846427309086232367426051771557107153631311773411437841353113150835098535821256388978700223698739605340412546027952607298149354580804743303590889989243089619717563030992951467429003532127542989614099417352656732951846991665860702259486971919768899489710257559574221554360613951159154589460538008116361761447861004630480472477475524061155128159960967495077423148749469682755925181233199851011900933554201974571604697035363860378867134644918130386315616449901911159365292521019001327947653917502138277859814600623084056139778049983056054268676928406048402516410759878706516886829213148107364013772637453045738592993194096259794346345879004263588536239609445173613363746803329915851748831838351928688325235898689775275113245735013847887716952729432513453893647491029858852158921575761341657910848428665645259210530499567092505483137387548281704570829719190508792942874001942949966783448672405455848275466689868652327574432778932890776381718146527533795591012270104640085150374786466593258327751787432921410842079109101904430348675120615432372894837788138233046238014205153752857302483619374194550054201608705882912814929704009857053590392010935351827116293133515661543230224929142895528255622039988360195400391289115325975910271003540770372722551143425365973636715405620525594839326236699399451691454468249031149106412575477011332416414482940264516905021150002955723907810004160847774814310492771346609330100348397824445434157516052061080873128180821495565354825775060071403598245821993417512139001671763715445332243545926287494370073732316404996352786661887452206224989153569749030812886785906833711073190704727910273677443774081082134340278957808489706630656817512720595201712241404370355990929914046073595875308898599650069961739908798946925245911778383166763137899268984829717547833777709810223366721134332747710256896103348592780641065256663730402485211967851504073405688772283694931966924147154101155321762634290634819963750185169975379305719841740616414008234080284549634788219795126082182168463624157480645404342934786733301239767031140893391339421959464734750163412569350779740439806308211218968377729122611825054188447552323462584114828937504869186647966836998356540441032735733853175886487776097846248641266839186889386106159090751025223911547480569801888203601098631864840999573302865800817774642664683663622907326712266477548479556090338209913263148322732459527619668216267633018745038735030115486809347268899225288097729652102022600099902008161650345899174240842486096726005356749579168730899238410858258474582954375551419412583158160812440724328976280398796608298418184403015254284968824313598211736493680065538892051677156281839945286062680521274495312139784983100537711980669059869325798049761836784007321744368329035666116378429142583151385317339173451185155037892616269104617867929918906402094042386746654707155405200303001495413411249586866677371003831802258844107093511936321746887854402660385428476336703210302096589001969151931087704278202181060340950067865630977577638666383197216500291082605281490362801853639621985035291200273790689786675626258096796349793526236834007860508141148121088115019901146306891395051807057098885135046043908799789609502651201441019950156329493472576944416316698979867668351654138966380229153516094771046897817983028339880088213652310028425166719700058326739426940770761168308181881908830254023874998571185890843993631503576032062150429070989894482220973687851556119470608897749638395650796678685297794913809613543513347880473075231257912406046605813378049064935273670669058837525508758187370708132644231927019528317554516975996383608674834861356126496112478258161426607237362280153564920326275669402129679562568958808425924782528094552401785347072478816562759146981882182668621738140587700831992786281230025867414711801946178821628093732155079277005118224904662295221760521564722811902356064007848491899859394866712711635598779175330295082568766278539982681664299955702839881464508679050715555035692714259556649543542436644075784149813647380547835438384937062886406985699676164999534433623205642958468277227275938485021741603689518385415745294457367337909687511010893199390778117265464561905704656897798972788047072210730950548408008896688275273289114863918473944248140489777527440414201118347261416666291376635177222620567004839143689162377976603246178225003003587667155598705788623281165258259145617008664102491522293597439890522917219645589232229689354529278828669099465391752530294035409620990842390377860292835806021063234038308206143185016045548926799610487421447472106160876853684995488749510877640671216951895297492485651393308181153198204671463321998802613495672802401652891934791626034106585189041102171297699942149484162592788209182441339339381751165110946790615231734956359606230150099192536139348277828578378149473324343110669101987153428798671474152167851451537775244798839601256096472169598252889064217056949339520932873285769018454245837043845318781667474769230192333689164761022979065374279052009575806337752522463111735590272705990887869813273978186121377573963298173233325272135170159359530907348840415371651843014577996104946615857565782456570378569180585236955878007430848808528964473328762665595444113647649344372587846736052644100024052497745303647912456631628010918114086444036529386082366820641684176877848297380459267187761514377803455522253388582391438815285869693688940318125249442276730405324037472732638317346280999844568423348919841532092920529974060482818559197787403239513107257801670245447929610433818756841605418615312213436704435776116426900865310359448529369648344670946333639890948055348826426112567236469788026196085844994020775852856491165832892628693167573108790710311286258228752462731462384443555364594216344318225012198959878817729109292307969337458065681271854119909790951724117011523199277759502010114136733499038544093999910400372874282960241966411218147850024329056909956435464002725770335836888386394525968862269667596695515081945583955061210316250881656227135388258748056774332194417322144307009824220698076781728829351169165247349172603875806995712068988174664304343775754739197624832843467565530512000976092486001692328214366143215021346412481058846335074950558599393530894366984548005696944750259954008970075678112690656465820696547748973358712332472245103495390836546543084206256936957649104948970634765791261211894367556404384584330262058513696699654661879601455904769972346517152120713017745813139947891355106102025313248277867008509157795140417447798802720517307951003885284474470913441817008441007853902307979549060963933735277633483957186116024475074067041589470985738248217346166973516124541524063473245790835689795950580174236909824848819781221406229167804365314891549831958803482433168511780463321805975638935797410438312956318100029687074557759241255991354879233920569769542046076302375049081687166325490537907022522641875988126637190499265791283640286486029875943486387206697827054226954218765987915576676495002201179109013877690235169942531966871194177208716298620505934262609155173271818405056189000876231543162466950094770680852119605013987897841611297252192208399540429687528665513699724144102846248972433231133468317931168674905376339164066797395544806944150333979120304443396710876625534198855637243027868185440679062143282308882953551213055794803328883784932000893531592062577668158348645361999984347362070308805818734428523669159281647341702476571490628379334244526059045322032016035582955448711182304018171382938050163110640369469292968354391433350253647187360966271193812463313332340006161979785443829995227867955867320386508329041765862498547898938100619770758015601491747290425092811655746340779709834917495392529727931324933659530102623163827654950325769824524369921199334456269826262625533034480421770786392258303499429968790637044178408130358235528568413335007981815539722739797309757607656437208808352227412061522231355232398268143108355136382542322980589828312316057773310952246152771474508554993327638313970328989821772016004400821923506404801944951637410903053822283219504611984012607336643712147420541809737016412684557585168961724513200649430738638168176040448993777546740078217009255208965060538627710324843734134703439030395147499678485128719747197472907378858470485980277116296785774033800741188332071945932610826494992621406945430605639876052390357899217713182316886071530385621872090278590724436933608646312599312770653783082211818328452375190495770689784226058422559476650776872019587435153253140862334648728670493079064190608039477627966012451549093246005496741746465393845892639844093745754032940086047115959617526725392212967748184812333669208450321562162511499154583594481052075827377720650007853098587365283465280784879164807851178921204400578644559009887047513893086482955255251668303071782627822277863018247727957139752441870293653726142784688677832689777912204067555679737823519845050695297293730206713375176680987080730626805983702554700988239107793455254199834940055168790304582369096808277833169302096752708880454891091311662415910250282653912929237753072882596938406557767313143993626209188948928789568418984019407904563533911844430236780825316350389617611865413499591445426805425038320813441879494152198369195220341098008209453041011732657086581920976102437905823388530818931386067048810424720395259056208730886707022551781636302650486041676206397763554716632134684307180390150495613021366249043989242912986618981189496553700366436335728396715850571098396502999201379001395217095757883853891077837256530302748932031590995910400498062632603611702142204771333458000468308731635126366601882779828381720065873640072897195827418406647118354867976188014585591143700582765758855960017714191638425248430881277572150513841865558687525547376439786547610191762804040255752227605755542798533965237981653013607799941669494782438665481508195090325369238953056236527570950947661266799266479511266014781425612557216476715730779999824741425110489690740850531603459124940667940411987401659619966852927989536004043612168180716257483675841633286118979267874917531315107306038950796338762182647618113187609643602922513443433796051657858006663666071019785484676404628651913159214768006145512031374194941249367789548843303153595372177814704752492749902822688424009830933810497309439440416206947814246028092472452662236088460561749573533425542410885102673100198183461430055325922416091948172036473330195948454121926524110116870335708065032247310197517766079434197662076262271722550900928760595630637300359782877837296921741841751998551953333111450481074070702069439760334616845316656289724191909710203255024847301201623951169239811254768259337176622577245192893401233321732935301737603261502063261152217810963920523893326016464022219675085094145104594403003394571530814055850260700600373837615588100748379827921720296293936685162378241915026263768685344360669502389674864177995227318427390976007002700359681458942357552062624602243187192371770395932880222799958454001670968140669699719453582401725293404565880929400466260904846328125045703678486273278890884944334826471737102792818093699683305998398719464477810311494713831802683743287384824486389891295788163736358931907951694796200791124915262799138015262025312422802901576060047725849731833931337681001647839032282748660180517987192558780779404532262271635134216309170555604642042512957360856981648107457277913794173049992515782502305869100293401824905105364378157613962681865782136085801517078115809620107176252957378863462605847172176932702216385743611348524575874283114424837140305351587032443149494080958723684201349736389141980186315986619055652259135179087405520847114683410200402940615482370197589836846945938170819576652238401042757617790059283646016029713313934466563076471993725017093082856362230793593710962102987518425832227987167244569256275244228905880532974151866154816761789926861494294045292645749058864586556510322914137598552306099477897611617847794521088626872620120512146450411338039749475585607433638696313170826716144676451161419345318838756369832932817118299724997065983745378173324587463759213182566650397294450284289311023769793098080952038878154692886757961412595878530356488327064068705662778208297443567377598265972801619230718692366720050862143626556398797121796886663057340085780660804914178700859089172906237501405187369648810574151137655099332358852970757114058425905278036148101817884012253831846456384083422107551043158355295632044791440483488783386074502791162933392556223581188555891908996247733842916139655674462237863229271280144368327062018858899428572413888395556635478098953783033803942206865155064892221993676735971375039978078455413643035004828115844542448230196965898412643209551338564989114883145406422764562302348008857026731495670068424887296320306357377273584108491369810825194169775791201107692266383030511957499256543385311777852102029116074970322828437862062539181506687892668391842059936278489840056874206536830038401878961656290465727923265383528058171636490271353729209809567071405046227886338404946117067832309470654083740461991997827179381801950049754148214521452381635102372573231062437815778606422135357275317841572104901215860679817311442942740336051706084365004248164740513589948773096412303480170292318709484840288787818083822071519605686158175322137773875087062064784291285162109103019985806029354535526972685024540428747550617874480606129325385571860614891275247212190472884674513768272323792119839967865570813729388023808292046513193508062956106975852953772261608788646373342037708571015001967498448442761703863612175037272054979550558115328264285248228646580645377980620217002875893277090419924943540809014109406283664278564074244925775909487482634210902884497824524198961729561446343006696134335496469993402114924795807372603620923681885029846262750022395913173745951868524131341086680161582852611044268390261563651938761033378172609034270045862478710787299979464623417841599049635114220913530400705611846520986206294099173961517528440305035171821737020780991983637162520042880850740422572291878669013227308051769475435304137244912587305980296247209421047974610908214533832532776731946994763847539176894488036393785579486105483103603689219201205639063433612611347256753551159436126910480179971518874851800687064785007693423325952146875843748310132785110109471065969022440293949311388378072491858525608869395099890157263565694851715377060131070913081178649236287588681198283909700018039050261135888596859806230398798619173525339496302865217461746925531004644604804103573705311224550732453120940178331420743873157910691219795765633525948555620879751942413320227356786641511613087694984538627312238024219980558097948139033314542637905233706747674102534268831097614616385509292546259954748750508344548109032076929983267835937985493942291278093019877290835007019334262050807213669943260269298703687334546123283559335193432125765997933586692299558475930633467188502369166555761059381052161954278294710274552415475636967451399741412968188211464533057194426771906494100819834042308682989697210311278689094887547236875689264225057397659665158769400717301885847829004760549549401394059316539548973907250458997054609251835695812565701529621541930797195880688838718220787321649459406025078117368273187594243258551298403949783451393699459768679980289127326876286086296287180532730966959710309788528450725972817089519649493606594875785413999218963841592899630666821422412195377433837502119058117700528896303013761898131983057241136307496731854978584866339127833721707689685933637176446875173468206034176075834315193882216548581585611842643355218450932098949599682237457848772325784414064642939561205367613399627223924200313429494645011946646384291442881169688246457142296499614496585821480183539082735759299792689251497838558544811869619696885223861006343601315280987528358848569747100406609967207207962808337910136472243147536943742284801450813095621394627062136709783455764331874025036707782135011734631887775435810959148418032406596244069633556439425710659804281714786841112491047036535753484415099458404781546913938824440698015540926082147798251369797887841963244392540252497398606930517577739847269053684526546796856951463741889293833668371076475699602326168916408958852611080646270909902391682370239730207106849119262462253851287294259208170082417082526937318073410307743774103946483345453760231931998240307711372166717499738960564686030515382803257733612284734796226187523686821471278089017589245711763307846271802111766998427032531743148272167640254354597671073180729216713362386778378530552374183518457526642185924474720364403310733550456303216113201797039289196324062038783758812373622892131068200457503784087179250489633353622998659978602400737168203890952253838721481289123750290123275492832343304212531347847765094009581468458754567632406744642520100118938834785376043077414753766167698849783601891630881875620130643001874889916119454497003986113086094468779873886182620607104325622211292879503283104433112920430440688281383890597736783250136274627491297518331822840375897544746005145366482673234592785700496538690635819382407359749554262682202832049717469316415227940455431758398553623499261585309138762215979745904144624669870101976408941585420053125381640776365458535825774413844049423440375435392493332333731140052395502997844947118681546369787330643186331719212033942810746973089925476244768901769863331589313090802036543219050430346029891390366760102584897716254206982018983979875462325752085190675379466122779369430142109248542412754089953743651401464935610737340497325386446183607124332884212554630958894998637249229032459619006139061940298716457698910780972224366371665051878576941705563621460939202758073974229808012849407331086236448897718686095316321911542813227104555072080558726369385472780751570224668402666846593768072960979023751458611336092936539637690265709517820099651565070354239075989962295864635320118557359151306609287017473175405112475016930123563767932265342354121697289848553653472575647880377131005103681257187271580400656243760806568497084204446045088838956642589577501125032004572377212898433559535176260882003531121951889333665647468635398147412274236054983066288166502281405644674344943756349762744297720748093272751666033471130609930073987473169416098717553588843086001582603743728908345107537890468991763438148759115095713478644594207556677159015395178396512927747800350353835648725418349744736404393737819087077110087575983404988826600274900935539957239311756285576135172931193165637058772570820995420024712640710501029890855927633141627480058146983701184912868883577907129232667888836056740163515205993976713877692485310188073199925943375395068230883393867575738543449760843456458470445390343654617849170929767238282134783493317931163947164490494569633767242349456753449702066714018879947791602394858742228900791151493250350442565079076508482497209045204319646514673461296516365289132879414107199137995830785754726466067558658544179634080082590924999094745020106874993055403988447147926530023128429589242342195424211961014286728755139887938860377063706559086808772375781016941048951561764022013824481266707241630093288270432815329447010678247213365130307311685848215542221958741967165370641799876727009407060867198981102601898180456801416472724687443499334306050248840835680806285407165427991017732066769420492914304033271515848114975585206617695724489720716269760664677974967351620955103749953492606420030422389159097487568519052305147897909810063817446122781820774652053659806052083239753440169909585607731651416058376365666656733001264601670009940708167741488460357868070599459355186097007777510196051286943461574564948057109297055022639257760003052432541114752488888493602702606665529627377024970380689555266514289966715184172667697950830164510434365897414455226197677602276149311734647491026500148231257511429985476926510036604090177492077366184388395539078350884876770216413030858802464530936280547740771006177766012941323627272045031942341541554453117188445572531575050922976164806856862026073802729808115093939293336531569674309464121990618854379855481110897037051381708579981348885889185646424601357759671610173020544180702541260663795745296936267479413583425062889549560034887102828525259111329081795974897214050989478504183500635257379172599591204147645311038645443046217696675457566951210803553626525992643810129789015236580699038527797891669079068434570151733877950232422308091223225956741619206686670015071680565434145805884100756004030854710256087746295339029040023778969824762340125794163439821062667847913447300711446673535612988151157687846854914274540223362511256315731007833568981329014164398165070797070117864764930192292226129748054274402250113315418795568487171365131219801071362792316251164487438938261684606956627017915615081506300688491332116968473760135155244665119106881507276778316383989823466917702895306002146442314370366582208231025528542948865624990115173366280290053533597353128070848733156403521347541213308565157651302619812395477476034800902525210565693138329387239504883083911713995997579726726415690577258806857155464766612048026265678707169133835844182642467067958808402820164496233489943829495903633700020458621631694041516873692702243666942384576801725500128282604350207376070776668316584746910496347048067966781419004817534586542025986894979443951632068157866073489757205559422128727277686880939099173997143935073580995552307496730543950851109254534130552473266230638636407439197961240843241981382312908387645308313110650507915619797859839650259255586949641756303694833894708966150669904438495281206280914975164832568389070492130468302563705944804464581275448412935319846756691711539835331750857052982371217348140265466171629528529627741704465091573427836293497213611000667846017287324078210216630189372822862853598073349866371714280770180385121538682381759538201965021268034558371843561074851778188405722372735848563633327359225151742785336310044454084832633299217957425546661011366454211479911227603389165705002875277476638147348566614653103147985114863730333934482350250637284119686081355103644660552380351873712350227160270445003064300458125877199559408266630586205833102994542352888584733216085828768830185485449540246306650603663543447540470365135023582857743178410001400269596869523807063138326679201112067639508527934627184990899321478931362143572233562364947106594409914601486749527726177062984550234367185092792965475736213802435662517052553996710656944558861277038104234285449683149997953726877574008512095524105960024655925094254267874210376648716516808814191227112596848153044303035525196228966322582388034920634668491654873504011944658191208851088665457482203990150356650715873563001491254913601964516840829456214499178735505584965305634451822097039970522460801084198311018028876906837355499742722345219681290417867275269986955149246776447302512514406792229950650699634337605146559682560346505012260348849389208018978980833294141099395227920622038949710217210288954718458216554258861473142783283332208162621322081376513579506390701749277425969499182822008106025155149123800450049023736195151210068081929952904696412918323265837636408982151967002540429359663614021491211382072603309995392433170445832696835427018095476402279280004716334701244204465496431487993492305585140121793035965688801894104810364465493883585015462327336237036163617061852727960976225136210891507335164127592080778328214751503568431758820259817366202846867917818422105606368132880053214757321991773887796781490908026753569216947939124047043337952779005527407057593851679066572633305824942871221420196441907633183307842665872706006945195361652968461138675816408541814650497184217397696246941258419127953335064458279254749470861571404530691380001749771578708995616139571829800415853531733229207466643739321539835118055185334450784208996153395926883338482518658990091540206625938703458949884245642102504035068458141660841653733408938237652975619578152782244906915025325202921466703579838761581937452132003106997505362473816073532834084206629501188312129850336008718138575567228130448974275116819051033839926747048755781281496904529710481029976020774706094987645317782867913189916860753013038170662341001567674041607243014757291385524240981326549838151264975353018689566859182290747995889163107437190215847656273474196933332527609346349112557208493428036778158176152092205545808423336322379563946265412462519649403070557905399220932407060868920962821761728688769571316036459358366576709307083725098321627086632394429357223265165545014939986749337556428103165121118042968492627116163370530019991748818168210689847499974083411067806523634049636506350843415999882088468791773092126844517073102869437810377328241534542817172274501186922141671484174496284348166531330285487100522769630574242295276262904254138788445002616968778650921817032684342822559010817277218233281318179848817760135503351355783877824125983236287416860195763212248156793748244139203895337715485609777874733195471148004526683033960201660807177040016911361742222898156538946750765108572724415822901669463899405276440699975662236813997876781031821947808560366477614372626140090695016928314785044331643755882897454889745547543156865499528002693747170365315384757338735208988585779637089832381012629223949702605518408841137368549190254711134275192545506550359579418230953747469915203113773295472541822341437550633005066367692148530574292050867631343942930810660120983939708140186631368685076656732240909893523317664433536538325917563058333637365098580329311616782614013561821196114359500755572717860784273891390508804524589161134967453002358357506160981497871528150711657514822816267375255760254873529879377915986535013836541264897671599901891640698730082592914515204924216219821388554874765244302944267260750221862245398649641236044180918771459933421414521107520267332356334831584708526695091923345623707884068520013655942203124887618351695792566504296314247005101960084822919955982061202498628337061596799963137002817561935415399179385429422220633039510921369766004342958001912299879434900561536703776782483030039370148978932595431629610157879458848802848279447219809662123570187757455210186304638864627315983064133045519221189609324449737657086957841479659995391392490659783447945392330477018389213265924666127584156870917932629398601848724663470443628094105738048224363637136055810558094625897975956078273464699425450547762022253431643969540309073795414515082684951769509437394755455017429906440574680710422302533799280509567333949598112475509854796131942569788418935144179879501245900079208802230584704604120370063620917655307844394317671582890700394440382148837240695655682964909904628435815585638985818532165640605860063633169078433190274030664275017427840440767036305340579819065450490963582052762879098015013486703914497414680687996345291749177124174468786877659610536086736466895840777313838051479674211338654564678254464002810640429563645826428579077388706953227687767307326982530873526947643933640549006786337771318350514406757298461373007379539463664949007021402412849398062334744578182940701133780295625639067885786346395173832351663575381246955535888616018042933690291767409244314441101584284940348151799837846682472682398534159764421897605455199973638536807933496108572158571161738441098497222550566638485737590154726905993435576138282826504905005538777828895405002853727138188201531641397712502337603416938931216478972086879640521055682314409779532356885926198094118463855684782845864340838877558773324682369549047106676261459615540282446175643301584268497200605565179342736057780118195011562198909782863419195270315810347103436788354001237295774156580552329878706932203625233502533986556344899745165935923810957770481417021008140549243571198628834592446987635602985563001655264384528174053432181451498690598376204579330062074324072967946685225838297744754357685433659041762346625083435140526118908468489138969508416258281644336968912899046820255843172768756943614184311360189411514662275240780350642381597975458915089671183528258266508885428708381582973862220703878620227295647947352855591126317751753567762952797220760350313949237118461318962379262378514545207276107546446137442395945949403595002193283374192273887841844238880458602416645756927936680464071381792535679387035436569331702783145451563941923833751059871609852745467514516127947094619873720220235769297135279913382870632107503738132071508730274189739379776847556401359065388230165593224834901865346061788828347865256967510099809624448126606238281726453409635217628897376380449257258333524980349944893349162596226254387749648227775756186482477563802297515848807090133757897657615391873801150210532899970619108886711100730132669356177088219586823566841628206447007715834907541876220594841065308762445342544673237758373471134982057669487844525494069871856997532521157341784387727920327788283041631205160003914586188176708648948680607361354044767422543094492503728921770932259480710171442757187035050345231399065978320555462682379598199546244027839196575834220350175709196579096061035557766320614014458852575075795894834781140746006393934514508472282686113508136613496493046495959473503504713141983356334032757723373122066939010931539442523380505998900225798786914681600644672335748721528274133655488929936671094454751616524795722527672844474445439270158049513418240877436060868362832021277935339617676482011594384032861817666533032500222559332190450431360723311855546087168045762597288139574268216771365620527741826390140627202631855909893994817141453294038295419094542906976131623467694733497792168074787643659301101054440063209902767506909159249926273267350024531003175923927451811163786382284248273451401462610522325060143614209592539859752313650627099022847855244392498405965208711645805099980731416039042730251439345536558486097096872305703113072163447576675565428464965438910667540369214113206065870113446130890103248489112403794597066570265874757822147484545497714723826658191133458912006151094731582274828462601467717742359255266454083049199035045283666959856803293694983526499683504798840950912213062936719061137484903411631799211224610600227617612187690860868551810468699658452023512418993413731028520360115124574185021848679449017601109990810553005971402076018864502413161722692470556938721969710711678634007698264925543483059195396740143530453332471322314102971390080565874153984909807858117842792730212633584138187669004595916575805714509758442323841027484507579452278861231672906169743394833394086584835420650802948854459676199324322548812459762377101062459704156014222159089048576981844201104223349781051925910788275024855635088822565912523868438697569383984473157498061393793045520570152257179012308415841419169083643723547821568915910774657178569579732555901497620344006497682471642555822888882772365243575929885012322544069245172535422440908169113446168618171292471484956673258506096094795507116589449295514110106537813593890435805408307858008623273882255494504959967883756561791524930962602783215257818098908651253934046285803801621268111899582285980333856845486273003593010847524333312130280129041841806458158254113541973751202680848161390401225312798032213341431285065051337064272487630902877007491088853989732123758410319513778243983710216730232083873447107946906481796437333973185551965907615262437828668077674137636591346048772031676243654381435516340912885939368619199631732222961430822521633414882345379719856498515219472949605377250853283367923667208707801792800898872207270550894688911078582032991898195621910534920916609899821830412128862192336017383777782775965624390961880823064812009482848721890068260432457805596939717751724519215336276483538262787557831479822257786708419925099160041451851176980327332265784088708040049485600891257188227852211145888189850576448945552186963577837239917224326899187406312266164326146791557139535078923236121728594961849170837436975653615168078904180471720185727725050157460435776159829444592699304187693462253127648422630081083459764747603401792395163239355923341710304941067634236768594193229314255446310225593702404743987979414218700200909578530631838265391236337302553774494242172105215226280245464261669409875537344784416814720235044260419446120073221679626287046933918519807342091960412080366947203934801581024609658857592763173202963468746243225838902083291907450866486546163206394760803809737821914680876470272793481109756350603119473771484637288341340332693852198141170526921420553320527190301494650027036120067890509407867474319881458029060690243810015685321035680357993377490395148045186010710558871831250086567225988884210663593021527277180743026789161233000548268587793723985535003017451928863707026537775972408555899077211986637271698353974539991472465629109266001903808410166683289045844437076511795843562332094802899861416972960435193663603949727935445541930943733192076988432305401125544033608182172305530558091949879939605921230433222300505827053790843833763538250979890324262699430361966725708546690307723421984985084230401489291856831199229173641523578711299226431929424593828288751102416441234116613684200629978207735688646480901940982396967858259889365653546995589965109917735842179851722883613281813732153711433984767962203447738186473571000229960323956318265154799506979716893367140675065076745532945897905022689898751873895824754717720803520904506741226862182500941828290795743187537193978471241764703133085138652946389329518936815874004911600057854187083434934157814433920071142839949962945284775148844395316562816741718237321283173607070837492277283066233579590520513615694906951186846347605920536472231872327440095985211075064662668302356897453635097933968792617170427217991334675322033286139024612741896706267105563118757188402044018520074637135479021319495358777184332195185103132888606800520236836108486587181314605926830574200170138297335384004364119546995959795514174861815511003447496177314774312523386758815379614113450082053246624707476504667417653575942664558744353932856189592868381910459535905425107235272815669623753229150176670751421077814961920875652044851318691415563979774992496862968534031833063710736625655271921044064507661553920428870272659231536773470779771661498450546255394178752341397284121550352938049492776702212608212374703501133059709549909678507754595547414057275087166665280547637317297125504342406552797807181577193405042405254922175922909085334297985315210137221172157571362805260568321496454366738191053286944237384105117428468978287567040066081477987346475648568126903334844116790619212985702442200834470876409556014615901951615880737576551823104870931666407957233208045949727404574334952901159205305162889308862760104975238520951288098149405091626123084192005888892582920414254178396267785406621753074553402163513662912710407760553641010986910331384744910022805449020433319863420763841421419960732448453045698677106847238502431569163606285394904991390121354454347678470010582490313358585569875809363301802955220388229866992684080225427528584268466585889653978085209840276436237581872713543859032536484711973070617370666939948517464185364861741543798291355679153322879298530346647693060875053637393805172833443809415553278800085517313830023066910047283686093471986207036321791314085547803487769917762000333870202471656153386827756433551383274482587551158615462514394768603203479326121051592141380660243528908915053663715065805874060271054872934190616243139581843158309728107979617080205526404458078065749005091429921024975920349582934070799233809534421372384526600077375481788302535987863517028997674397337915316637229961388635478734661848479032691890682982525375503829343204109506280802308159014907405752004897584126561639928889044781493834316897588596620009151828655343135266946946076592601036784838792312226929614597202268678786973926570735701699668350339989014218758688024694684315944518716819238566570374306123358139485434872418514095655617484396049617015281992987001015011880244588346099958329104359072988520939208216001806589285704666640289822670474755249867778897295101360513000530549219047952109764154383919238036598311293176230706727332518858735705925159111929539694763703236283376109294553651124523287149127677069259216884030573339892073733566596043639766637498344840689739976771190904764659924102197783112271761186894431314274617943333688161293502327416870107402143441966067538526992669731984206700091837562566016250495500071461355272116695681430857637267529930724798068677272916151150801615608403108907051163264542166375429619198206269964724420578857651392690000712032721739317534675423549089348421483890044899402980699740357051113728591605049031911558000887571379175391299664899461789717817026796138950362725411129765898627117818368412372660725400360575598371504262483253999174175859912600575102344320458659780062288327582776919270888495610872672135090278297637311175042916136904591981363155106268564602447006285396193339895624581192681929891677315765117893932851294377289276907093464449431459714195942595881665869051266696212100653674112277615171738232101216939718969925716946668676111639955998361933445442161944651420859124601238617739970938169603338881697410730848420003269672295593560664500397405200695659018944813991345451889038537941761940762426376306605521340980439798763819586353671810588954159442012752537554320502843835879938315805351529716741055638470975542748108642194210907347290850134616874964706101172008121852510858993599938166384591531275539942125835572053258777444065197379036988811494286396059664574473851234898474823506874208226290962929787878941717389072800740498914238604529824710493801129824741807627519423720762192530482823033708473991541204863269524316840307755728461438068380225755033072575827266691902037662945935924928124311345549323270665320720807184253103994742783951641678726502350908500688963200026612762295288872976727992543912606579828085654099362282106368150013014069542351525829100498795019079019858907859550670811861342939938999826291510487698512272631332673666450943912816561438367128315268057429004571004760058144416336965034454388047014785077331997483499654290130751612322233593089447143379033082023552155099047197661284222005802647887433956568350057232613127663980658014347298939095946792570459107801157928083629184089840952597418916894419678190926804427954314987824631922461591219220704867169506186499730812573943192247305235578584765876319196011804519226012903290936746197439108520097940644207979615616859445838140040748421552619724891540534608806614545291671713314168017476975714589450134258792150928747256472296437517183079493026376676033271963723214906018139359645897616992217575231767935998653811390569801547907725539271298833924819103175759918981557161786665816050386524675758481266964129684150855840340040098557770269129250232387244269534525118135927222669906349426944165830580759237118886080115331990350454370187789862050720340661003520057961902256599749594752239373680703345023866063925338450799004005919914988233924605170315805669581876495630586448729555756464123711587222208858773299114266216729778225001775709281458814246990486125843549132014423596691666705342097232648753161495817754936239445925628178482170937164389751723868792960710734672079472308394472344943281906339101213505771601716049320508018819786650459167193813287849027829942483863876592383487376471180741881198667472869264943776503023266207958607052268916363699875666734072653357433950860089379505102265417135281313044812193755648493125854727090509941303605721771080481285339774440458376864702271736530312526343948424716624908769136279537019408440517571498707757059260478119790151857851352598528590313784208068084384007274739058957969173324991226002910281028609731462555146465381664642486258162189050816957752893245111026323693983103484301411509979739017591321993784557871180370964621861051799240213502624944698804532732606520578692656537101484217048865206512542295202767346954694205331864285134091728638881365197442128694902923028081725370786035077900073184315841526500996412342714128265494646420464922584901196867818478001045104058719027311671536409943656834838030444770423184114259699310696148530338251459046568873677637120161120588302359477557399100250474488038460953005594759980233414958293687322788856107315603286767074835811052060867536732962811585364940493137776112139561076056381094696174633792009788789994776675213857191435545511807757313621174062115737825000450046754589710836564851234187089935221060054360892917297831491253521722326741445283570399217702402533643831071579995572335573741873757976857109243876216872047482451985043206220887688271078877277913737597769881288068062926615034753381385514015170757482206509881608354494813828114274468375866807833989930817345027497452047352960285908502209197822693022858510661568216018962788235825760396586588534779035804846228365481624650134530331026849145891053953297525018293046531475209915558736999151573783034584258246450296486380945664479071170199726866978868073758367921238341055681686875293683995532087298514015103479888979011043736317656925006466675558700550663857228901227112294021332854202624932440080214957191088634087829443448170794951302539568692999298816473856326736506074973074387694030560772180808556019617541789204703866472427144842406696017252640567876561407923620859389342834991582561764264633509824178385470250640000367636029459795200326065188853456629918725524884731816247349703943302282321316891817268679122277705367928987611789429545054504172032519168940540177671741982972129293647491663476390111399974793681231100399681071562733623186357656991732871899958633286314498822838735038988386234523757082141879634412609653539558608896752061221829331915527472800999189536466591527089428746960538670553770396748031566241921939910469964621738689822440680850507517091733228939029149367128625009834016075602789198721482345223007601822775139742378194181152125126186416369682921731788124151369610280700371931939548845211217848920927910396238642046792113493063363089883929610270929517511989882783816499895064226278321721962021601474186057544641258523648947005080928155367012566411212929381741327991013111343221240511647679596940676697168049652017848769286882250920521409256034330917579810242309546646637543582771023971240278754839191604990566062466353967363293408248687380111524022565733190337172528264412245971642477043955404893084261922958055991861199024608398593046128277154997782800517646457510018614393150432367952290599997752505954077041053860831529019695791261840221858753236003597687376058000352039481282326102644472283404501702974551100722053684956765173196862647844619514770279806756033853162346162091920138004262086974911348105363864147812759176112107902500732133340964091430722102949391749256750024583494684959960589299833378345809549195930423277640055293562990466182677853160407388980604130436631707386582569256623951007511749621582086355675967677963241571337008307728779757412241982075610199374732594756380910474663677393295118330444616621950436215504654940076958750851159358956752560137893745857031670835052317348725153748934212019432575293880711044268986278791172447826537496183062905730511938638107983269555468976246474359838582067284578215559831685764752968362114587217752999384323005589379505841169687860081571115399608746879862091757156751701648800346410795707344607674403136344136739756048485143524046454997300578349342319937641481091732260518287139187600170918369064498581919511423883580571261521069041348077208854977912691172459236243418885810129728253905539203873263094407675700338519755302545569110057686929911089847871322414782519813539415870029435867813842721981848356406992160299213522026322202534993758087840461928563444406718149566793228123329122624982561405250935540771557867233549171026912362998796642111811063379025257776803236226175440800992628330332303624819539323353749190640274024640871392318068110786040455746250848674140167968957964266998147687944546226658759167999470826246776179986499830670584071051554283347285817495994687868155652869912133270000045111031567671640958315863041124193232650122426406970692642559883291430031594728716329696743443736574577642277312127695011370082010379845228084937958657193203876200545094279153768444688724505534585115453316364440368058620216434443430391871440297111774929105149236970491900272330694873633189404035915369806706529975916899191475864571780034383546656222925559390892623240080054184649121070001378219193579552185608040079090581389591619919137148979654780988872091778670716180177189451457523279186726386672045339227566095126041237264236863019825677063241407248230817024807547320317272210497787988792010891683521687755716218607512207428872051348050784912801830169795675298953655614841406628767395245198470549296065447567435645556271744560681351577858333915192648442337663176465104479971804027339712086633973290160422836745847048332777531732528474115772017563305420655718475298069107822506421675745386027664444389276560836935127436930849185985418685939596430769160480917458204646828614988536579494706659106716977929629796485629652382209330000640998668919380948034408597610111539600133576929002962230915727581665711844882860495404206430486076312589578357644471134095813108429392090778168197559149641257683607573950184093729367216104112047375253698734905705247902804492358290247249007576699654149021345476240171922475795678211381358979816114467014551950099859276927210648072970679751440937562711276087084264273967148928625456225536261438498223042879713239296217906301304273884840173098883710990867417141435916740258424680716635867581136958192913630521879472983399042774187382246586740702100653693241319220625897842468059093434847625516856093545931099220132501436217916199998545475216318439331028994428928848894478529505265364424708848506565610965330793792029054202278554470528917093250131494103402486627804834529729696456608010803107079653073109235133075882812854673111055508966723008225096905087431763324910400953619446026622236240894721095873274654844498831186855473572532242108050169981791298558687229844837691233843334054071738528259389234216992298762226735582813118528460373825583942225994639122505553273666120083793958278741894665437650641614561376056227669625238006527387906988787591931228550037098618863868981624427468390634417331928872933630638234066138990952472202413954890323126715256171071184609217774152657435817574347792895018151480983383741170619163605407519887046793414467159470456721831692573365534332293308893201074035541604659471088265654027097381336563099420990047277538584915694764327257164332494562527346724795708150923453585550165040620973241326198479939786405547770155756046619946739172247291977299073130921824632153015157073382994728902691874197414623846303785510777533808387078568581237832583450686585357927085742240525188726164430181001516303247019330427434097890221375842753497374957515255124374424962379864692025365781084646637817835888605797707162516987791671553934107053647766534673826133893271025963178926248725183973958874489330798714733016095670857945427671273070502400127269723495285925984951120957987878767538790493180405059832166393106686575321995156799070483544818613190489526293242953405687025825103345781818769269765798644068206554342376088581751579148592738547841484440898576895871752289163690767172644644076484038438223705351180322673364245084025552579052175034670231642475384893281730520326598151993130491060341923702047169097002205831278507339690366285141833574894535993883268470903721809628629662936090819496346527654801548560798809063219741828064477557263434808463690451022002208503767107117983371559725645437113666518689334635785159070656126801365031540109896516849189244123545785321766988361918700862365900738209961649970403199614229744879253598471029767241276558215575878248014339668771699079286024660483603115401346637181279624842698532494129552513226223031065884496780940229661964868375147754956992393333150694233622167426375375871417197787053532292581884970689396399464100345344486828813831966068146428604596125009541957235480953746892321140238084236609895872567963733127444359315726252143359845478585720384214347008675356814503076983537745007619478255712236648918857806520083906482167000997641733888831335026242581950683876590289897813577765428616310489213794321749021358589714692512541809833990279233800745401355353649229904792573905151089802934385207476580448791479306727698021608893454544075627064721196425709231993319522119107689522526347536146519379742350823813746981641716991538983947370068243483165762769854398243716170573214323827317089926057595680783477501329916673533484924990916733698465199182120555272910072061803362639544072067545142423770683259012921952829017185099631700026668248642626719312916506334165358125852152021273411723657184852953404884203369354073666139849669856763628558795468275659574624335942330122447073264346771084325012268730702232841217390130480409010131600375343077844912497990644717989222875125338502716548522904375702173864487163913597230673356743457786223525526021682818364418606380148717005872782261262173882445142733658454609565982970563248360424600457737923783839878585976365638328226121014925755751783103993038788239537398745564095991538303404228538473839534538793492082433015327364045827260563136194191834074602980326193484170065662182222648875624447609799708814307178393921860732423590988925171198608823774291967377992837151029073444022035131473306458166280473877091901672269145667077784165844264158170438212155622147474300348890998214658425951106319578661937016205797434365065318306088272735417782053689950091423643936671093682808380092478650877711412134179206828344668692047387434499091125647128899326415297482750943129632090089943304631417381273615403371290476546142070709073857368876398688899811459409673376661521971398984817954177604711727886608792240798962075407184682944836272224267133426924909826104839584745707079274719477042410793299563319911555375673543596581185939870184401522001973666395379523032732369629331157690209674424134143330258170637508155434161097180231669599868748501616210651674763303481047639604734302879849543637056571592427530631127625358234147546281825635313856151161413870221906367364399509771876670794005970719454336684957897970841651130098094495268943407694334807801200090945171894917320815891616395115041543428303319492399607669280708978934104030686949312395825722347406421758857824945574216946113458004400794103317811773141919687044354630225477233676699656285003797289630464496827386408866157686465418354870271576499301188667138367030842122292213010545624131916691830418744758020881318060749715290044485186599421964190684536614777414343888507473900647240722088627844850669007291831858333504155145666994926549951220418094239930828583397912436428405307570186205836733228421254635590878429120808457488977447937748236875997797993237182195324006510494521478767189850169274697004370243087108831093869015896485920942832564438525048561001117875197217645284552986421964856919195537296067915559027045515923761708421750420142403862005467578182536622907245721010110157865229918816298969933025916038729146735472423376867661828848073814184905475890464506238993783114544799004343474516479548449299383083745112719999950238636592574771096179277105405334373511861944699063943382691879966914469839233269033141540807461705659988406862703963565059190215264105376846727052875745124354635936854914839142129049484644695641010841809857628763614484303495643664953339685895849606443395822150714768788006552197754784912729283917373040515597752713870796307523941691459411114517764591310363092525721411772964710700517040488112409029435118054579513255760610386269258257905785058643080905308660418972184381095163111747466816471279460965913610438328850288693389893147436470885216047906808006522247659843574368712203970290404744265448419964886173008355190206308893455797613708121912682351932396464682934691476505739004154066097080029435177803860569756372062366971893684227000549556508808624721269918984863635257494313867705158183885873685786712965073915537515856428295730016089192443643004533632771107176255452272198888895563203203308128570686095863589854599922800543234688317948256617427285017874843987249564433645627915848147733126915386472528516553200710818264623171509386322757627745243858358839150420059183991370389909446639764618653612724896484985831717234442837527122714886068603309255272951591332389523836097211936257786225074385259883466333848457160430080575241929692514846358305186907341119957035395654390669632314299340011083089710596544502181007676903770472603273432933684244493730176335864415932532673946661198697459713927272991805258655979403949237660557078353215452693538166243936547218588442329667337987497748530207143836210404920300829898167485755625007017192182355715245371700984816238870123001215010396269477792033656939980961863031090348700937086968316428728800000427220362219793524617939163364415057201955467999363804880122272865914283131648748508101982079096766420614517959846069731017324346599437346347218245340546299815516267996042970527820720617338424754388467994663956176537248182222868222937873456898490892043612131933539846858462409983635456766220584187825853222102535797916079076169289055385404609606649444461557385384170400485042942241436439036800659578838692959230950990527376322290502705203410215144942503173435250933931034687615965841158176930152100889694013467999586683519750141692123504936985859277299738506890634504858090296171013561146926645950060174535078867652290530731541946737815765522077551425691013128962111224522748778464609428366642797293861700249134111799350222296894996887711392353183332219245246275872511632536872772253557358296258705359804995775145547227065370561749075245459516723351375954581203911003100179389191306272609119024788798206912591810849323045855758175584957510282302116758412461234890046629202603714749580314691957097501087536645182704240655709577527701243418625139109139629936052427866187892969169875740912923052294553055098900936067455778722013820126976874427993395393468249192045064914660157499322379253195883178413069539759506256044429971605074645980211411363922863532841637208796675734512312737178296379848095397862173898804000318243047894969793282511835124249381193266759318567658377742312369474707335806144528807090453692099766943723412684725757007258273891121976732855571708116655279266837047363303780077571586226390601768122960050189343933061707294205530319893298290827835214361467443175660542457194721567298225355374353513477998901189486134084845336205871589635148630014169155649544066959715433967163085608748644817406178517605287060263595028202719386551223389021989879719068668430699912411720589572493335938581429159787386882601381699095184708464062413580239058016082285641451099291920173188218347952577834569779600203361328593382524481776105015117848987146792641807225276197289481321138434178962535165536051665752491681078857841583325864942540267374283113022158103556242880161353470380213975171281903590323782315704820652953237157390138455438714341179783171217680483703059403240543729382361214714799956879987345653701356850112204368209795058975450670973644654826551397333604994075344405920822988958175114940340451876953760041794035730800968302227308260293344784121210083757913922488487203740148124859851501651856347562336291863453205264111358679592989376377991588222482195741642067874233175221558763778784938728574498419126985493445628340483840602137000058389980404126265726364910129471701825778204759448078600989874911545393270152581788536214266950202763639301041189620270700675091286333893893961064861780102941288581886633141669980685124973573084929937750304219565368095595147818770270578604207317132469201521540118738913243058226656998090141817984982707293701564129576627116382351530478873383601134665542856573184416253143163482174036907185952810389568838843769778699773952701570987058853953916442530814857071233701742685460919139375346415805509060213272438885961023134718079717914027722373168697758341789122603777683044636706867076451044979635200646486456082373133802210835547435851165827330977046052895053114122249627274573045623320492511915228784162290383129563844338812365414603909575855053778078897879580792746436555204622842685271253545214991431665726007438124730799190932718262748320911410032649156811980206365135807953194013015629084774563238209275551078760858549397772148940659548133319865478649387255799654518717302463850506947313959690266486847558681872474642413177452158896959267076894818483971361200383044346080318852184800786839918509635494179002036538053273839240039550577162341015602503990152325819446892798931247417665011039636019793483565434601652110869285597706295519278814992300978761665752847895644517184164228801586968086838345932582901337366731806895099524237905824877969804737353287548098114403208123407230922844542657130948844508630746186817934499112940310763529866561066537769577275301928012427770226300307908108793421304408785074547912730750462813889656785153204689959800722892618320245064845950649848324631823701931525940516644088167826995499711486497985275838453911618594927795350427798554040274707442735367594115036686580048114843096711215857421584123139864193009294843701017203590851630811753016053337475697420810451051920573974360564201753918687461875347160328126076365530652054116740431905182282235489325666100562195930023669302801735402025508133993411012321598655103307716845626811258501952952234891319856406074451451429242972584516824198355644502873432070064023348198940519482734342422559517581794104285341332100780695737105750144470693089796122068080179547233477873056460229672531744366415985125933411284524934033998810214406756665815466266175685311686289675898415893956819244518972921213473547695094631826889876207380024061052227949705098505122239262493793204908904657211853400678408147679017502885515851544627255060800447091094341052978928697020225776651863346758280850802734142461806754130401886239472559638925589334536580986530410216553903816442365975626167886357718087591617001276314500888962538291627493165507262355081299957884356838447637945067385894703700424627464547377252533368059934316658115623984730755242380241212089972537828145792811205392208807417836912087008390558235750666850135389898247775376982732629720456964977068584163306134076327990824850553725272441700970256814079233792049373474969766618896708027693441930075523721387078578560880226870187299764079685722654406818935815476125743959787231516393332064957352454133355823073911202176371907997973576391014452675275772926284705156625888062411102058890287998528306909935023581992786010011785667829848805080182660894033077800637998621375402136307706500832006304838039135489921975767494691975019649112915288983889483832323046200370628197180230372158384356569994317618153874842846916953076409940971361725261580446980229148824697490139749913574821415023745164018329334320148898567362995483784509730563439599739606573356432408718908777963537868282927561781547933783115320090604692121341405400742471816842587741640020206219741627309367901310546546357470813220993234168890676607610333931102715293863884801019027033888689431551746777880858236330678194269785843636019503501316910558747886304307489058567138275458740112597353907384613487500453187140966877157397151515431701508492524565062667512693275106057820826161575276619252347998555843624086325426201523502865397628978646255486252628437288713574365135213044505409284342679888824419145550169280513234698818896035595866677847482251054148751528185590512986271418358102044347710324681157188644060124111494581605759151589530779256141548250266927790141419558302366192169533087232327669467865988277448215186657460508618581985029067871985625181266645961104039628330227838842872459408335349742125897511781286134550111923563310566068741179671417428812334307337427689393027532213246963775161866499898759229827265505382907196941880293649461163985134819530084365442734722490285677376911002795334292399408075570328449876377160795635190737916444577002583218551539872707751352785879713014693643956585968779269336527926330942153571088012997973334522219466283112468742558879528000625366764337667270263609420935167971385551687437303945291379962009134722871000527252533726939037047337419612636844349232100924063287027928623693750435533726712864423200164523819085241499016404662039576731407403802978248124001952214245672400313125582343685793273287901084773565081490215950416132817908427614005340355230049541891860765057832153665823554323535060509131029453622057564720325780640646723765010285263729667876602367324020063708287652088095429053147508642684889066161914537798658036121165886159614961191791250788868726929324910846233458674139394988335855509868955459389186936122879776695350919224131683236318401936419534375395592148662376199927726141106298080654372232181275398290913761139532325550426277226794102566975930602871874953425102499736331969378943497068151479951428490256107099898485662448453990911930777536485894067601570535135488254802493127225597479711237697264889878699977688820460761464829690060143653722971071632083757823851998185795341243478053533905592225457321204842203590224514666207439141894412816035886580280725818987182359554202282729047712970070540862462988187752935104769367990761531286683151211730151594218059470711692139989817826091280164282422428124056830259257936751740826614376224884906205814238506865385974485821632053003492369185896484767466598232888304150085649236740661800058140658627995623980173809050237509748473601581008854677119900761110935847777149171426958569512796521991042217052452836410670369770842047731264556661302672511431684535537939683623381171782206036742069596791548790471154223210326534756360713471691050035094296386239963985440377487002908505612065846320585255735306949618125849996983840617412017699776574829178054367329760651721796850320793402779170431164373068877934400246027013309001445603292991431314017562948771120862213536146796598698774036644301963714228586676489153315996065228925106520525350865211007216969738836445744154544206222125384482183064093372806364431581577736654088242885437761817615497806811335269928145155390253347886236230423669955358951770363108009792987813615819456318867044957034613891634301222497291713760285905236328519368173225668691773148127728988729495419996087306792733648718315208915529749774839885516188851807221550476209461656867493945922281953116413506053115916250412800065950102507756350042216899929922601329873389471631583363445434046242309735990283210183285048048130401607549031964115152350199163262547555273914891540817701628893855713502227220936535687165376220670248775549728824142695774506505636644541743891619582294218301837746714715903482906618249372640633338972576616418241685400281949064823892786333772466488240311702453383468889410449894204256220216393923285052447419520904896858199963229642387640515670724512992878974073734603679943689772064106734964719077789693834399048525752318259008022727446819888098109488947159459330555467246217948440541875556370902675980356700624118623109192590188244845831049671685693337860984242555948973636374862903875785428382091654515498265826858040498243755542177079518838047793706842771313571461654944787111256521044792446694050143694983747562261090668260039181701600052593351749760079969113782870742902543146852833193020168247066244871116033651036947463909837199091469375273102312191983503398480297099717752616799091204045072651780893664344601478331456547645074275397149187368672143815604576875898644048951791382570331004169354493940994652074101506752472897727517845974095104755363618203885194862696988605656555897594736419311117076738081867998209104987633518944499479704967372643456989308560063536869546241359722915687155816851475320505614806893875874412247700975406471361807172303646394179319363262687521024151803162561915387351588129651238828902605608148888142012347946768302211770605125287550779306357916514576907236573273091465619109813848658420482906462771255911549063497785012133408700561558711095192620564741904660679945809543195345660940436814861473870023104557925752307979653591297498721048256506840763014030414591771108103432899977017099887673821103979112190022756590772651703358216668855633749468031816823088038927679451721702437003400590286478962187412258389692870644848684646760199731572971107350232338697464488289355964557818126097852455490434913634212419924575162569363799973200754540937561976128574980927837181938275067889017441160135054105147433959040251825192295617646687051271550327692085235421260087873698831922073702540394195150304932552149256943291942352185666275206231236420997441446295777710862238525248954769925773823071736684657854389696229017213522488026550590475696310976550749836857887427135772853900917149070874352896652051706985902298760750861928150673775339185821547724296429935099802024393292974465996379300217577498060564399099851346353252607772695297005512714333872978394760248179243471893329860505434376650091639058262207689219001072864826800570874371995306289259962625465321489388864873762393260675605300873223517739989742877560295440261710363825767535861482106618870054437719123313236746817362583176939332732320825506232511195850580390376654273937017315597415310788431740085745103130339279584599077774067440574094193851324597565633603311054477352772716372320832732984329284066592700592142303375471774425306214039775768785169647689853724122238523952093394499216964600409413131703950698328177656507553040692315898087780910002650011011575753466946737635549168748801878199270345412038999427091264397889915184726904329589929319869174713474881175036400507203786890761454775262381273428115548066660866529187325632419323954883050488443309970206335575516522948298408231436037405563043973239049310322866807045205063026708243280178852503939612679813032377534216862086155257044517898247233724529322256258295991416545843769684542352287169041334284479630169056157112345177064449827941326886470217263638072507108192544676405404445032034503267357753322884888357600520365482704772859596580231567337567136867688738972902686893024378936044773155703844068577657529176120647268504706981577024662426547540339413072539717776219863662999390414395825413044355502051434407689184760292839678437936043289773277691650776017490402156615689018488970928674497392571889432404523022217529651817939156041971305458246832114691385734164171513573104744889592587896703255675460940893419654793356429364481678062620243554089454655983941842825656925720086737802121281455017341474337045360052817084273077186784903067694162901626432253060553749197895247335566795359960901644847528726872409719055446948959743680828218774092775385290328159615001551499564613995430691674272604181171504374618937700252346274778555456674594018343020126271792262506068056461903595314858700385444060113260307572916690753930257110715119688822055316897317793660324564345126539909542079074137256651946872810112850128973300646870495315323552916250172640565497311146480984316441888744245672701444283499139240554516081059716583771327044278434459925136690911946847157435919832141008631357004662104444214711102278197790290554233575579257574927781739957800817314656771795956843225207163761755772226778152034781995392045952666871351327212845706223314010409660678589055078237501738161738501214169132933169833180557809887589750196847746035218016319264559869091373226665037505918033012723843068449704899517628019734715834229499360548689018505919391581926585440035438813217353022649622004799631438324674635358773479980660977133492428478108112501606503476814751369318737279428902781445284201250117165536354709387174056922207539936748955413436381992895223854807810567082976723126546303405373686795576033134376156834628625379023481909149590843800819252048949726400555571746435963984870121317073154575760040399317081116794587135209000815958561432163623808951085965113376573917451040775365635105382384986601326490879236739979393228553563783654674547994592531725231957959930719522736520900725143122739212781499748504841302704438812634841232601767516991738558368790343214771735681942415676226413182004747869635472719779091084611346213265690368724732125944002995675436533767700024426923303628294071742510074454166710702270962956359547522722094701964287173036134638053915824458307672825569474982030547828228995099274324292000251627630291943748531681725926754221143617175914916207605306309110521612220075402327979166671568616865933738888645313971842815785727466937248572384315294006103996592230271140992505427671313491172244501305218592773695617497593105081439147819966099616438916416410671967198083111322698100602177410275067585559183216372623449070680658719344543607587852085163665950096595611077043644290047505599999343949237526356566379400266269172547314585393821427829387437538003143207822101657661709191367280175976222065554482834442156912433116134645240387725665025329583924915677385908907293863819889274375003787236846533155311968594658839350984173016268860881710219043420681122659052812739431562773497293478274357616931792500452596206025034493651653153244258677359742283114550403821484333636943126422233930666941177551080401450704989647836690564299615035309371824798944718780343726835428394029407236421892010113472524857503325661132588081571947382005068260520137522331729078005268378095888886595851953840591941118217833212570399657612286263926671651257505248954050167186080097128978499417498254297192148098538352464412812813602498176178224840740796542244138627940351676541573766845192162944252409282384862066535240260425086478492784122125013355586717738437230014927817813832184389480415668255037366850452420884509805385165750297420807803090533821416025447761363036555094890916073874288612601222568970165436054124458399287712091915393167094166703007229883095581689371173189739955947893715154886484781190961925445906227104660917263734868860130839821668672571382878593820497532235540918597119141236525894693861597986144712107218342772501769295396443545116581031913167305169447157760000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
91000! 70381586407331531707718433412486636233152834235427419279933845555384706207998763629476833754715030473577904284477147887001800000988770320709900196334752417958630331820226705705768727779932932921169017094877121385341787445246030827160556032292779411040192264101850744040778299789679430092195989416552892675378383869544880232137800863452498372583634485861379359643087640686294464351770947623465653698762529068388323082302359448935811741796810639904797563610118834991403412002770415606927018204227308379549749628508380881514109038019781297279405435430260332334160305395187235922881608995491327514356785364825259850709365208613306906525281842670764634094980904997646662739910246850930314033998804738808951884034507250365574841295021597759490870600914107336381677162504485158363641259996989341738842181466464486790103567496367533100946445842802357590807552190379076758483997032911854773305146640641733014177384652157171144106381399233992902050427750440000208439702962660669168197811239108890172396763229190270303491380930278719840302085827184718539453635436740063991824324552580741478068097493855028295793722619968463803690734644111133334272268457359482581803675861266693423635540213683694513136833567987536488688984540039292364826488577972863684074587904548377244554308817523091033761067217762281719825378638583118892479335354714296280379475303897013665095069939566294881892051104216637563991285322839390619270978495053069099523860844006302848202164537472954892587637364292699345847053775079147890796871360988849119720698819909287441613966508894663071733666080248047910759475753034784297895925284693174445584490854351681157857421917590750560284276937456513467298127160946682379270665404381524260611166008469257115113850059151503530021397980370049947118913719930732072003820552068644101900482763076718947562510712667914637538026621280522759144725443245428075007533616429783037196217022667766731493018382200900882728116020609810285975269792126952871755230046263137612606624105353969019868840589880623338453142486595461198687230312629303897004435441936857831672509132709051663095019583831049252597088466769374376203003237997066723516743938787181243142690564501113296620300430622225911692884084814847187046809582097562318211547877062091071881950681501996606175759264489775694333205125246411776345369224863286870389122531550168139921359129035721614691361372482726660178462284192012596139186944317537666945794665566336558315078481027227462737257030666285400614274974570688485984093079934805062920483965007566776053587855722360089086823632159385608732726893551059283240362602377871712389241573063675548573424729920605381801887177416074607757825351898864321817842473310928025649902782230343099445331970957645308386043052381677191203232420552251124356654899094270789440834820261179925795545268720968480936066647290003086407841820786753273438212465718323817458367221710027936510942945038764565189739554156680925764702783690219265373203319382997412870722874960926295855813159596733504606568313037987781419651260373349368014743418022753919678558182960420076014645571724349815477514144572260209811560498250118536371661062043355741703458930093335400191453512176462074184733434238603939922984211489776747579645696811863463760449102030320415680341769990593038037039488705956188148427936779081889745486904111177583547274157263551881731534480518165255787077983721210151495154938325388830152086813451801296082509762684959002296588697220455110855323789094023813659638984758960596985878386484377036894845687443137323909013082664216784423578823467824738666775672246372942214117046817588850359053679180479579666982685420568918256687582901112539622650940101995762135339629973269127274757207985197842770898407387196932396296998980053310486676750193693540628490593439913734214548021327534764165440756342106268747283629441315399391296338737747979291138351847870812007809296266893364973755504345893554558355820356699408721262351729474130840196072462350739354413010711354418099525615862071894780751922005126094881544701777495509801633266778593027196181342733958394725543763770651677599056225835904018440894095623451339474545642954196226186046451399312166133821131872001922117355557885799935300327094914979232918387308639449075340753024297764378060889576662445880217868532237980307624563130364048548050284458599913617907915642263863677294123445276348823427448492300335292720870286269681870822071908544355934326818424266959064076605914174354422731036568719638589151541226000341100639528515982929025560612227262555475575789401235165618300926931694998174859668620916918262588134847768301096008461226023130961842633184119360328513922057551775984984759662304939712894083184070451518005207835987577085306235861175869029057377793988439036627743433858994918994902919376979359816372633199702982847144401642629265383835235267624125247785984131623317393367689463335769624225458130770465975399299872000221844117222120302261108267045000999254772571929109312707702670059950713023721969233575627811277258264138081725430678708323184269738490202544839713558994929932548610144741219519023836528506814121079184459537448685542345323060475816843433262689848186322598098321742845130717149640963095570210123749518501723259867873555980052027441845516497087142480071868957521825599013214154813978993301053020716843180023859728819446051986922463595311910596156494037230724404215694482035510710433926059875540809794223056736464982291493460691833135405892842771752581049515611140659840554232866539794684180767149752646309921537469214014372678321057497709203518132953212826801363381976724326178802406851082438771980824712841731051587043964873892760104309552832558445803992226011317997024622714866139606345853819152262265169554710581284891483839775899666140550428830328958044751422235878925576310437066345296677781199013991873117273856057579202677530239176287707118474691933213501637032712035522979595275062178371802752669258819724540131723241387169513569033341699747507970421820587800397599112898626805475281319991996632657138548109318742111086926574576330279652791997502308155763079645368335618217596704614345215180070730204300121647176770245547226751384884714046628546555782936540532203329146352224903543649688037211189701521288963199408517541708090754553448033494083060274186938887352029271060280148015934963042143518892451553609477179341454576508469018107148225361433927955138389046635899040235576962750322712292298305959431566007255592814793906492066314193485087109654639674382254208754107018012792394783723393532596212130585443233401249864220794228433684752402783549487046296988248767628381054684114493597424926263116143673472930111011311094466156284843866835469395986607585470059875475802979917853993807872466127713321621892518464792924857724597244911614150846492195026680121075925288693148773918094755461236385043329654913110792224850168591351948198023419528657560735137889660379264476281486787058833493531166475247146866395081513906204203755338017706993002147227588367357330337556703721922344665620726508944064424548691945682666614887097361486452403647727166728311315973552690212398914804089684551580806322808694212267355549304872214785809555801233750704289011314709815687707139407130623585320126827577802102345331988654875332653811568563772439297572033627470772404452595518454447163661583762613997445283595856680716700461776608104721405505705698968455367705106646459804967297097561553710609246344654991218948934749478485351601290431912675004406850330121524602339131268904450101074995303258303355232784530406377956118348700415624553368246220342368636852260257139657430254660634813767642377202098738746611297758378338673317946276399451272081335646669198739655102602669460959056664089400818734917397316656543615123171846376847011437817085630240028954767963074132575232000769272296777728047998882002073851157120264687743479162212251957566286625749267568284780800114542783754022481194994367626318719422948304357908006515656672597275275191039415325906316219058770457334142701547719682146044953600750290142407084308867962494311801352502598023295662435920146225573732387257546297570872384093002813579727430050631025234155593662252356058901923505206591400213990142866644190120870658502028029092645582917436781045615890595992280542009264414906852894537640977156812542253868033292923152074717305862636185478471925658396469581304979961072089202139335538563742742317608950245522562491967313833949835387958928068117635013931067869994171621997086197952097634029655885607198978281369013581848178856568322640880686399177404723070243591038322859029446269411557510823450870324668090588203240581170249357785887486081677590731021773577884902084670725935822596202091980065075757965673225311891398368590534966904659499841146635383960754110260109947945061627913426863484535376396754765309161884233135715059543255956212857772274212170627638953259851986889612250769526291277264074452173267089230216807097306720756467149125346383747109127876666423531889688794792385081900470897828276311447798545304304861367652678558940410901514532954335847071246413446573291943425293863086054918831029046191826366976374424436723729103020021491388289084126177671242330659382922368886573785847215492086667312276127382018027312498868068007997573036967570606576642373337514828532333662188946753952011945716339929144528594645756650326922805236765850509756636300791493550691481194862400107287445623658657904538748679254119846559831335762039982652515334699098506068321990256725695039288442054381432558865302184564993625495036282397639419518877768459663671222607385385535187973504598592421078677266907076189174232450223491439133932782353564513039878557671280007228677735143961968167259361240600939331829924642526206390724328549732907695591901584935512457651931441084801543092179802176338180738463299718642310942355306762770572947154429545343620034683930643068248964575470123597497886848235088360347382773495979230460407242314692821242019440648839597725682202204203051540740824669651751028924813256106836338358696753852169425752487948518505549746715482151423848578604082809797944663790152585418706928601894766402319897296323244574157771399542758726639774891792995446737753345085218465157548368019581912608620569863177327913232444813124576727942725874434145830328399062635941780945865021416520167800752049480956987284809498745879551449923556804418564929975490701642974802078435002957381106765847122170408769242385724095778990542568776875199192947843240456774599850923023431452530592446747059149446928153580529963563418918409138858400006509265905080061155764525788957111092843064327773005487581424430150613573027354129566271663815768103609847050860052338323462257633689968452402159196580625337597006049646699032050336018998704300891600686723224311830525984499439307355506244447239091272422609953019011561679407130432275418393435847361253113450158791419589194186960943395601158903659967237605605794001520378678316628203036980873077050730030946910067958654504072492061425434070509808048912787576023921500009932115332863218326759400027509194958502234666900915659360388872119062036884325948892162966786865359283173585163506981245343820638648736452448574923947289758840469729210860868792281568974107499654254795580282771110660353699284882062630752809221588910369415600512119396257905650929165509560833975305233097984952317944110140540357876314412707377828174883029485835792933167820454579911202633404716781273044724362257624325208039451234339330722542991245402158280900053293370042117649722045109862509201975578943924864595250837458781469763481618420806275524111514549186056728005280200260753288223388468054687092163041730355849282703668253431019078738791274969072263334508963409194187540565309368010300010592738261294365598881418097222028265095768706695137047768024973434926347378783200056808769513784451519939632630398297455371376198671128974051281565945721476745072726691002214957095116078436548119250162815633868208575032812184500592503591259686156269341516818739389444129052334780518960574613744869023262539873289005502585497281438308594627841154197126799603889533327676025364533695782782427740583531026286374338963106813700036460103080982875696457284625832199907037505489719480704241688755902160462539794893345834627788364397969692992785971574895683441660120451097283040393311656682015036401434773338966890037260169892316633260348334065069230896458368888631408922996564992557749209603283881940441410127418587118180037693744136948717080109373578349047741874009548358848765820107414633173262251793492188379803364267958007659486034793875277188170645806796779507911593468036261620590788058007052113047736655836955628953708957684857574305758521835797803477844920148571479118809522671247317005503321968088840380183921772373133730263629511479247005799620982000085786961723393381647281824554988655152762143904114573879156614526749122003777352404960276060809764390864508312295936234188325876660402857471317032780013562986386234435004497962490452566651655475516333769686718392618257813687654772912147672374856976770217487194595133463822731964227988144050461807959974235325871457415904221204571385567383286055868595078328261070111165437060963312084602883390908263199846367247929957768289814022976087307574746571938160790694373426359842375374976519387656509626937337790433276072899983841507281293977527635098643468035994862601282886867003368875568575981610358622653100415871993902131015298382163197816206714336290160100933921350741707862582260996959308934505032624083632030240071940848892759887151794824819770658961994413119133919848804473079848260198067024042411868352500359663107860443588950719842296514135251909338373207184839179088720820108889804719024735971872134269076619616302345285433637801905182884882627750871996761626105075154338611539968968688336160516144657629766940457505236811674594644835361957475663985385171542919274845698112024051041611978393327787289597953191633614980993496326411029279382178459531520344517434059202172584169680821552323156265767330393999126739144682386646738322812074517171327658909753902473658995367910372694349945788378708191217840740299819479853470009629421997375643281297904704704115785104262043831212258306545714031888784474890897672665398965398342139948597827576565600980261811499306722955365705754899018599154388521913543236026561900429161707933297175073358612347769605136220161991452991033571118698257354612757549834138816764037555824633605360639280303918746229719753665836907558146418293983795133563365215560085635979054331867492175792312356448988119846307063994364591030243262634496112261449428247881290603796048559202408283496425265797700070383340606156359702947131657845215919110808089389693838013206091353749725264827198684757215311903741322733581473903489525302443741710990271392893300845304289701492549851518074027981458083717717317361602455062127089758938343989950822748058765216210414031911922892725268327483686930982254161960898711734253069832285135682264941723621767787279222023592706294033284034554734019512830681282433632855376825578390257855343833099156327476167012136029484848545465403913267206982046839184562728733326862273589584072967262228370361588064658766475311674421280406393250502568627980082571136774978851745948684216392566487273062401978119408580467219637037481663335402079642143047534488028835990473706872845259413034831897237537648432029375963197303713724286792069934704160221180305929761060472054785005937776256761369017875194667301022068186683111278118848652948631525144526575156128267398483453123643113591155085604592859465470402901192379395907051786918470289838402702739685714313132141538549855424354368724991436515894827827701128642472797077362982030287742188621970010991264071878308476265176933031934065151152073220860240147967684475861383165317151560661524569484347497337945344107646259176993630566927137064095890336336219726259664163776499672495508081969218208515225996563469614788121714415518553376289574525054053988264516168050924138138377453900522409593728361244690239601714703800647381548116587325507906715617914168657480157545940548706192533441224398564442508444006440441800889072456051887396181785304197853295898592549353688578667922105569893643690103020647737130699404112664260607903180962658322131436914022122034940788325851084054095479145841172647651853519321754004894258370185914534646714863835615847725721261723377457082450949141186149059781421148511774805977465862658667273628411250603020661883489653314946371912252226123759565706727829101706596638387042899135708540062838163721654074899081344253924927578473566490209750661684888881564426850605159855716510937454500907559461007763573031778359069974777547355829198708305905294068977951834835574266091410102114934918947847531665306573056564973878843843174240235008417466299097216758516999825794614257139714532762595650592345694177473315011483923217788309912143107053418588299339464345583927880399048068546936533523286896462129505519431999731475691835784585900947489194145636664984222450410229958609030528273804153940057676873067807658655072566953779619328810753353163994547680084702514402996853723590027304888321694965837053565095653171834744086113555227936979618864954990427081253293362468452167181129894531644012751859024621622310322418403095114601300404643533899297163640103117679987461542791018244671090361987112493702258400569965922923869475762495775667416845335823368046440878641393485952900969620016636439250400784688576129743659454532006928176919907589861581650035608506090556714696062068291868656330418585300132756917363758150791443736726648797369392829742586936386671690893514920277135860128437926751629083810876193942270445403503426543899491078849521190256757972537025686203363925789926410752386378622113662950441889578273541969160365151922654249638868271253434251729549735514839004796462509825102804703317976910108115306325564094136535593388403606960227312373201711306200742337081060034796399489737193533334356109786261228218192164772282307324722997921591119646765050639298246919037845966568599136188699831945067387206626443896620723691201784260292672838269169795374282126688654474334858241591211667608314650279652020032632511373636509606393970548008359030897600012268026471232477233126863850158351649256384820965510786285209265236118563553834489494663699729703332773766167786530125564116929029417809778322808545366372418076622697884437794400903836791838635233815621344734254104373215748821654451526302797360510925680635486409519152070488477708951663097000082845509855991783498443027306745610341614761259865223562511926120929369596959745382589114387678234046367923959188716706568209298861274006003511988056176579180766169699386188241017768905314297274753990856286224937832954592996802880180158802188335715775410220166710112223103001767105255865150536207715386681136199141738459033456867504031591788467124838557821075696306492455935150457884391243243969695554162853355140869808013819013607743642574945932154748445416445874844991004251499293404067489009964065137271177855773097931015312092312970547268183653943795288203524346153107737711700742657489273935041650658162328988506112414603026920079117312307950344257639386548937411150090140822258143875730866988554681410710066756529331994563136936692170107906335394457289621854933798087440553946638421938623302762199979373696134868758902893346232844510644004870693154336796334677642465147486849940440554127202899464177132440736491204304425104956358635120588085715514822171495754906349890141653552775450241259383871820334342151836036504280600251492601316992437450680813809191369835184962925211411721990654215943850374393496867668442883203644216390578291391426001782123094702946583045652747503083525708977477344978687810284741294732331798110245374192785341268428450740989148306062179584908410356380991207382198336604523038956540981185283968986203752087064795622740822563219554880809263258348220359635210402927477814718272872892891579110481205741442645849769441412708014187394854758272149828202208548351269980348729957376438767884013964501533279079574171717260626266992578785236950832701018764809946874239089617371432583143756620569583489870770971352767007701939322383003290135815176256139353324595193560021614150658022752116839111135661657208781204999722127061498714090512716641638625591217540949299185859319883508093820664357064605745915779054301921161526483565583334964237416944055322065746249068350391820675603291994096241284499175216539166516995092136380893509467993603601229100900846050218075657544479724836361285366959225716382896729365379716648120410461912851412487826329671379654000471424213714919093163798146582641322383389677241297717197501042411268248684278117206915631068075335069376528354776325339876227581563882649621092559645619060129101816312837169540999190047386502105204118324730185022592600439584131308535721114856525614781978986888636474490080289697035181422878002014631845522401915056874973117003513599311127934574356698568812862548345522297320178881181130349119401800774393186465846787397046342366168084901514101668834043145582861087347968644258741014219135598157883506591419374167221360118059603232474684834245885869756864017676682023076036297668582014057233937685323994201306253461490351638282973111530020954225722287053434466913232977086139434316058058732160817190165856628934427382181259685711811751009454900472930518642598874832996152649768920785070054528087813241708098621977507672050507883298790460245291013215796717186274472660082698721508246478300534802117806709159430294854791803216960541355018499780244461496087681578617765523068554628561860226404875207011890998767339633489607115736483849690255939735291827748700197440189174467165939156430426792035308493368265204739035657666533782942872101571283017575828075016665288995345156187119098286507699260950796091076404659499026807910905241568784834249409282636639157470753875434303440449339173705574676542966890751307895675704931977808991839582510550531862114506428871522325842834344702834489539487083146199243218841338714467912920860433288579991121558928534851143314572775877269506292770736730526113732205357613226636543055730223914386878824194244194629269192487575968325223745202005252081892031537052370644970763771375154403931400556340719713930579348058841479318375080323083924782573637941216766033097294251190750693426543175448528783791233641314532918309730083386993366249271596750258104310302940309809373830734336454499565346910992145988835373429465978010080606021363952327790136702201787771710610256409677501157162303976491709178402713278037906823199743992076860943180667658699180097486063037561426781335676035723359067125212994226290560245452076423570323064212082699731493026091383566926708701159983033436102118856579463231160455316795581784127371827809018320304353476012730400931618397351303665112638056544623867762937640934532521084428641436356651647435492384790284363759017277295886077312745507549405383915374638806244104608451565236986761308209807576355257638764968181801015546330146589038155878045607693385604422694935692119326740519327839077478446987043225552029236269291541212661993478138713280259029756525820930088272165545157433018892484684913295680425315142438970120884036600034172364556183694838616566606812975774701817919704141223437101232894434406748701928125330237136124514024081645310076050305722343902185814379855542343237801288540961015261279361828844366671089898824013269685568193805107502852384904374326426192887234148482174034071234723987209931748236791290832242908796752565983306340604231659562575041651915705164878656600681636764495330912148083861369392570747017551093399906030764456075952066596371932349019608978921630103242888110528552152332282237015770949151780333452210477389659425042100700696800412249111088746994594952866587136245445085639460854472314623788899233121013183460602480220455524861903866107281540169580683293294556903844736893212074396470284238934576567452822447517869420232139297953914568871245874745206917111409885423871945397551971102858985549834136513630906472147054600711397394054677578330236605084519236947452978656221669760522888919679399563456990796039481773911133746961829391368919718938472101708741831989501694881722628543631506940071945363882878787299282075680191022550016055697189882287831473613416125791612886261517423699530403246243479166774548716674436430049850976248961838552239406802632561051043376833996395927361230654323807125505653248141455591893642281300649638494758849602806794809276055895275986336791696541080759955934809088173575693100621460980750970474778291708782187301757015016003959415454602198093362753193763342906253439231808262235047367410141822394029902172720106503888855030755616520388781241339226703180359956226584763351185438052679707929012499036886546649911744849401447773225010880785670362948796950149611544643039429846642198620479990662237624097931544612345548953269724743266469001534354243413923947806733512932730206733910981659114805049925558965607402035516434726774181047929111256535558442861161876762124035991138327900232897026006663629674630587250907348128354769615949661334227189210210618223390829629986198399442715841769712249578483168976346633871552491243197154678279602570402958774882674407768880369945557302921807896332823304230956778907548634811322886232897572535290022649353166516727620939017737612389292470783745616024293470169635249923594821722819049244476066268872395103745056693591906667108513545934369763654779266777536062535012493467479185184594456515724308477465172208606959847074793739877533170499485108001106687222760179635816930172734638701610474849219494854884424083138198938099629839721723315662205187010594504563769738024922316939706518738178301356154813331316200764152986934678716788782663865617151182863381585631268676300527393801285401507637351827418680515956087781807560351269392110023774670467955518761064453125330174715675127620684302136044072386254114237310554642276063599106692904145591692775004274654488221547702150903027913823115192107316541129280721888679497490343670049712862029552561312974135515892404040061397104377489821090412218348533147599609956923927783143955614523477530962377680823089690795921837529689731127278120158449384964525288184433956517017553702301106380832176541825717956441838506444832576488878518036601719933213208284024875074794151723431399393907893859826059949720964603289962581399701078075737387170736800137649024235807693077683074508928443922958207830292310433200941512997765793241650425573220234760854580652338163591541048136527987458843358860720151661828185431733465223183636808306010693092233060066455579599249342312407541822388184702713557935215385961185348766686996221495118565009610747772437716015227730930088052382544773471316582509924521073015382965824617133921869351461672266585921731232528783688027624817320509746879492896259790913788588648143489558784920384658830932004994498427725763183049202245981794711061281578685918719102983257886939996269967004131391231270367877067967809935791491825489572346575828714498482817745341281830867596262647363894893207158887334975073465512273661676295278058365080121027256947307663430663900546363534787430774583431087411471368797761711060580916737349348785044223708291374777599866093049082352575444670674040381959690379958504365437274000843007025202268719533368970296155839712782742787266337563059048904161590800847450796024122278057290113551811888223051113402786230701243867686327281365723996919866561930851401486261283749798878345404860831852622531885176591193023991566874219055482673650581175510072655139859646542405791197798864862022685890774955228553556728660260158485523528025552527021171916640946376556379301542484039147071842094975510725843473036968610261133675801354132211552137731850974524468936060037388785315214485558089165190934475296195720505706883315603314515083287742504306282574401893688864391513283322484701297066256443936165489272485798677871603304432266641928003732673788100176537439413386614198822305151337690866318431558126143963790038817483738264035788626595813096924221903506531520700662575165165272381700647986891368258512125355933248853751467248555412333403918220600416384482204150391931733065110932191661398519619012059891460353334723397481995958045269976486192213190398673136768297672119752219677868077799943754994732685085955442837368847927579962905831187405717871313125002124155176321327807966281764995423232753294876457763535431719699887204101510954059990964506453608708294413863828401483300003490274919236257331432037920008490146635209570923504651952079240417195541413443637367490428297758301946328997637434671663009429014286527808459532878623863552133039624638706166075743468233254363234717462268962328989255516905945828484052745969882944319198835856113387889558440905689591627030072763466081195948926784488619722693885524486366391634922136179693062695684628838393297988791541654352960811427332118445330990522422819436170860921024602504589756001826205484511962753607827433801385262924733326085493982418710491116887997296698711645647571562669664669945485938883118669194589447854980899556979113076038501435997233500701180754563646533274630840498403341426014951827147318130883918901743682434465677878333065954788111254986107320220959704585188780592443034434706228477676719981067392692685369497469026326177574596329179144178134285945927120174837545886880385217539783949806523370183407237485959193475729855941374402518986022547728928388343009073200486215358614961331079285593197884038707325564278506274346780161437579304749078500997190038529689972928699019041079050785552549094132690725679081254236921366399591167618556981846897511555887587525981549114368789165873417750057583390816347904527054983466444097347562127993091078785084069938494903455027353207161423925235266335283630772081953792136414953605827363283255417327929077712721828040526837126856288093821827245227152235757338085017105859297552638927554930951554643875682423182018769108263372425044915920364673802296451049291415040383020653510147385032174680071549197888921748711195742849456612110850582297967932837028517056654979345882560086006334882669420538320308231526624284202636161904971182627515661298865164199176583022804628032243028905278008837330910404411434209655680017626987386405952760502345328432998555763215100704321194840579789282761277850242217699757964213322676070916650247913605604881011015582722985645051149271989720042682396998119550491603267015568361668681940759314942131448428187667757291328100650911657284226481567731270076373408004300481225552857397817078273346807700448467037272503035841592981959990279914120251802632551572498288127636350293056013001057408057206076014510938354171306789592547376587172919761066407607059249009589246022902534627985681643729363154157774413708868854099909535895125787150273460130162614934465696864470378083343814097899572719028698296903225550688232371283763925534359504026600831412799556007265935589123431830294223316443396088562560266256930135062642194778345363999447342951136904379394627458882269522855878677970283586833731198401392728376254833735771786519349044773885953871836703799060403890414788905967336105666998292916228158727340195822748670601481216059162834410419965050675926622404913261247132726218231668263679870353378931861559103910316009670394467808081022004110878508158349460807669768332185381764240274710400124229287089121372537553906183633634759964544883968819348613642468780779529701480925354467182027055916406536431763860659815531236456036774608959353677451779102280466106690943871005021371236177401039495480951659472713610110016011606352287152402179824008123142247407973086867930991440314006420852080769045617602105173221582668781973810807729839410427763496564718786892566972575996286846977356878714357215009219926328390690252247270212569208201853356352082087409594580949003482314569944277495490047149226493308091570932727692116754653300547431295100643338594160050037880747959060479108477377515916869854589136734366285908832612892663230169025626441282296388680011401258216272129804080529608828454921675981630698099105390430608231007100125661570234977474310959627038497095326404490348005171028703043918185789491131716118666795525027638465285173158993900984274284854675953919224905448731852472527235174058210733052554056266253743958463300941221557381148530183952634867473345675331086792155223164618147877143040390322476143209622751221478038927742314659611726808062686448706841226147987394924223269634331239254624621986825625039386952415882123117719062619537593173700767142746768968280441727073461926159895128437496802726923558070246398461930141445159191383059349850205706059114598415887785098481771899834213779343866323781294958575262341586938284195905217724527321450948116011906291054101382429953885444468597469854419848942070517368751550429167762614669272716190949378933541394407633084087484347072356935288375547477849474021269208623892005796551908237254381158907861887241020938515579075043780058783640064836384756714989814568504393101761611346299097886725615363416457756470839829610557034380000789627931431708897200228208050600913904777123026473107495892435421825147207890838562966909984396827985443376196957576168917654194686499261544240537600136764100579983169847419889993778722309125097284098669769664486087985971901712386937048803826539724756978379706653692484763971265673966122506688939193097976375841074035960336848601027660093226868435063346462166187636549156169782118202470421783459781177027699505134231551459741532333324108262481122205265257848333832715332669806486740042367931664364444180049808355663731954533593721107969228669886896960754338299130087941651899083533174439442562784717562031946811451265106073101860823457743164525507269230278907676069214713980189471862520193010970607174213776947319657878344387193655061315275149441968776747856356705623513114197516517288480033351099083318212713647620249810819362060253921386839730519653402584844701760363724048280738981714994736030767568790109848765147905568192739379874544846775207765730642455948110594790972126443208908899360362831430005889844041771291249521791124273625821178866454893830688716020052680753513467384052733605395698446167380047481215136054812066053753465439814593158659103479242922233523665037810889813919418658851280821089298218629048030708484403534543127811356912334792174105662886119436852660443162252170219339946866696131006671555702673344160162911075713079199144111090675089429469518776095692193482987331914858597672781532998241241308072921570186564607615507601374403554708534448298734948569942720824981765384138518412114137440042339648414920104537698499401476025828213454128682451406306535564887522439956832956139554999912731429320911721901917522629154329392925246579071137633128408290192059775187085898576822456550501513026659804635616910087732297768453104034409173937310136222515728631441568044222778326117411306012703626591705198403203098274419789333820296361682482924281409156231720541077741579250988737394197143411788059265258890779389711611723176989232417683281513161754709628954717291815773111507898026537972754876607006877615115436831621199471836094144822869368027796082572545518257982552523956176797633784402300378938542411407954012019302751145390345677080131182496983752264867387712080593800344693983864624790744485743452691439292204212473629995166610880901280361988215353205526256291899707320161242290462044752794586164193584160358120122924414958792658623666644176859552843832295755980013708684956626269693791723917128088506057988391086536344677627251756736078244751523118542723910163394250779791960306979850412073958088990698790135424227437510813970140980564845222521658493685189785087427144793971747341670548745764112183843838176027166422783109990014890856815974446931775085597706642223371452929185552164660108214281456756560206772595306730066230501477271475163631707238456105036814909612281713573847045316434637551080272980715517483279484053828634567189397638541368997280106634738501474898438618276010936392919130841749119054103823155506191981226847915540527504782001570478874874464350127843201510947615795833436805884097551495217697460051571059678306149424256267515381540168494353325581277405869555975968942283816536731895000541534947258806956984749915033036592787231226394420712042956668607621411000455584195276179230753445500516108554441490818641370296920547518118903707013027412362946052932131082459120995383376525667614260486732365526447213103187575670076265580360591651046085315479592932228487196632575592469675330740890304810764696417836169355256081386063961570205417520811429710113808540731031829687069987199503470237003739119134459879828831383542241674487357005745788199665515898796829055386261259612906036566166246738878232524763021581970990922742194006009361413191793040893653484524961316950217075610559935301566506033981685709287515137888696386871962961192259408080772086005056293028711701582969447830225255196046836580439500299420719698399699491343907994744011313740112616671208101828520908935164944510751393688080678896292508422490376126728211927414433411979150396434820601134805127919100291730370207045344825600172474050699921439298657814337600117926706731754028781773752262254035261071080045432481177815473281461232908488381101352699687402736178454941430918901349557612248664327683446209986564498808097584963542033169531736556544781342997806231147597462478255155965072283700726185310585882954899047660299884148089716193567834357586756680680524841356457621063762801471627258856961906802871839893830302901276422533292763364224945285978319815616709399021803536555509889212553269149598433714768883722299426394428061848924307288772337791966283970628114220869845774640899999039919076345789824124981635008361665832279923331773576737899214594942684615594321800596478373953301852362198940275033551380520081840318467175088272771335772217466419044184688252297696218268894045057998981933732758168152014942918246506172166251867224574388849469637101210547158968379509508862809739813015316039410154296273851156773571205988031763322021716921656745352809904995122371756018690079164994502795159909804271845349673058960029831325114992437545716555908208951953152871877151697262981588607502419342241579380254288166029567195358042988474909671178095926263812761749505966987692489258777553370039833200066014903091176201459810778787949302443858089888306600723861319844955565828578148986591981772799058809687490790423676495098716760209025949979877501545098998742327002840190581669008418452701411347335210214258212887947086576976584057222252118008289417995672742727847471471196179810440215207334204546167836508084735913225691283031335042562800588114968347562205403459916703286758174214814050761328129281412496085390347957210640383527940130480480518341258548890520354600962298420340324168685532915358541688420916739530043331370332416966184852224593634203681331044088249378695598810171734987416010573192412648883785646305252040581395239897138011356402958408765352185388061606747343134634634761219559403169564896997643312419179202233169015443060392588751799878139253781967790390701728463402817164679132065150350343675561220245839763425274758904184603052111405100483930562377520779839102151045899816991543231735809404682033570415587333371728322971583939055108826722437410094218448467720747485215991251051151223612571504549469665037133491520963976105734982237807120540714824413383943862455747744891658219230435528337182430810365579906809665567788176142279843392268041469083073147247049876513202724564796859851489189061680904499868922016032110908409317630750144784470389947155237115799337863103011290442581271239500016810353886156143822911397446006734100327132046833159676388311591694599880509025428052646021320892944407764289324473461008221399109220040978433175277284761810409514986782065766831590662350247455244201837381836612882806187213542346562811642327586188071114120653189882628321262169316418736726751922411954488723616454337691909359515838153885343783870997543682072981437566696506438525372898664050384065588843100514464244754664767088153947318114755946781087408427187227473061712230024576257547700924870743108016191292469884469195213780336295378514433409363312298370544201338241458465555445951985597020395956106928772041370495535105091261375726348501048275357043792614323596104309969490868238178363461573351690636918719270403277665562426664828279665438207310353517446771573847998457971615201711348612862553076335332695936263096274593978471231385274029727300871794844039446689664716297084148925658612009741494928121524180025075272200327567222730504829689279422990200347295615357596989165354183632272964369164610895694795368813435125110886021047592447156242717178755528751280473873986090592872030434963801652170523441221694791988413055397937045224064878093427913137333435467232764292165546588960561266038008464108213131732089658110710266499613736720822825370591778630820379502637929720923436643980497599826047294695451793750867235099181156028730884056161504997562088366896468876561197881975000198161793544072705296965275928196595984597469943189379675848496777855291420529673258354163294185286769813005264239623661329927772798622964614245733736246048855130801578444398386344224464449741820595768669902976487022283240328695632902392844312008535743072822616415170438654355738473469347704953660370650306128594427109434261314802737008610401455831677092806789615948237517333340067283466734802856932836274742645711417749956990857826531553341854428650051773704088258933334192244638296533699454881996001325962277639723465928866539612490808455387692423565662981819451943824016003142195582947081966570919883161620037736220257888339327384120116356190349131834855516204828043955957733559624987651871529438806517454166608890802048402979976071746100484538876363783057459771721321232530340245297124628160606003667507499525899372236603245311341220199326157788605787204408957585565346972135417741988770037330905372272749275647898305781989319222924163881384812286289140166162249204984842977235943157531223919311689257758172116416311416695210199604799367802799168545774779245455542299700124536569206413610036022214578670884776639676532952323423624694173456516417238586173835080027919148174884821758366611688835268998924301274746744367754400510685771879350680264573075681602712105369627428246405974771287338653639348358310614474668040517206022778988643411413557086874619248574047040595635056172885222445086429891256893666963291640476484174681434276126881233614467083658782728503037308324606154266687112559338819882325222226943266563167042032000451226604968059278766095745385357400183968736788204298291895183990489117345909952673393875644889682115350300215975804037379220745228171776947644646974557924616780661147830753546582648697040571216468577025577196345697247491056935919932695778111468398779591958323553318262673482153637326554288497144424056605278875488759774725104399794870616459254621265995352291525603518351266594927705645135388199961136295002268052833447236348847402489129015008598205268731454692661751215255953528790503067108528152746728931959705126348885631175615164045454540585218656527997814114297178791458511354231006481509898719242486940931737208317296014870623244005999097645760518580934254195777378154612043092009277104904678055842005571134972055737142556412038209433248996927731044572190364058348810096605281984524764505950342173667982688253803358913430353702980720245787811041740759200937070878991608335128937064813874130221719974164321861808927999036962570214049498098445868172850567807747485311346333300246008280403086650395925215238330263551904216527792005056195450083250036118635435811465900438772112048300132652292134453653637530296336502252301014340043546720834487770216346742438001181206758172030557311368977065662961142996529832266799057053719349446877436173410743039488077572379144653034235433537857050760228820335250738011415136750629906278971753735987165110306027895757511241995567108875292469010017503304333847367674958476922168899821810944597287598517779749142100436512353780801385906680904316710969898003871544503336316526123109064947062708224988732203176409448158216974783569218438595705955777822660346129277940407959693988229375149996793626611288512193646573558085586924578675754136289270354110392245181940819794751818321440365781125500241496114015691943230946737546401884667821084514044902381809295379384555112487162237205383656435799851966158842641733956157070567404363100715842269037922064573966070384340986099024769527856811028392822167761260146180843040098685146499307370177747220277987550934177423353874489580030878172176309233398417993458932592342228979831388975338077137660694129718336076484867986482292796499157056464728611612710161281677155237434587047500542571462214275875881704335883115125294688681715256732639501918526766068584809034730393169128059117207062643407069216889361662470384240838699966136812142692680902650911508252651259807202806438417835265512485839369447073215111341771020961325515273646618186549454641638999711689336575635141272076995855537268950309165838428444368241245164585001164142421203208099854671562494558644417800802574561694654950498333130405719794660457109787815330936561638615129774577670631194193332056920148732141697812368928091560035314515784575746667276134050755578978096059582809469390291139955520503288517471382547928963547846314437925557964576942926811594660952230113202559085315747485623253493915998652382322019261998520818027212874903310912839555567024422419820978113594268089132113046849244136878438654962264192214408075332542840934640514307444983865203420482265059695236683419524399522168869160267764895902238704770539469792652992855880098279828877210146858859643696313336518514901902696360062474222542451234816582387866230370343872734434272834435639578078472486078506443371724417797475463779961143309145889769522721519484545048327908327687960830758980258426015636602696156217857959052662334737722409698482935008599024429522172677917644502569893499676393033532835195789963233381785366140901046348984241148015990618775745599212169232850803352070241005039826200482791719126820880347348388747185446367058519592486860225048711333062290715149001334676244063396985799154483101019121113030822226991553150906788871670042147653609990781697951356170543354353107439877712972758444591689446458445761499015390818847244619015881376438685076017757589322729396292530351379534588407060227610512681082482087932994089161735866828584097367765448081679373355809798719784306745377135875039957096935959348646762378865646860169256660587331695728022101377305022975700313177084892345295054608579415089992038682440796255185437813719407087859573310607270305961080920877299049408322803494029576810919031626679218237489240321928063246048943270550550027477045932890552133710675311084768228448913553795971082085448620638567953388296681442893874635539634655903430904981824221011831585083284572506450423171728633674566432386983870993354520035031197450156831198331834071510836873438505699798731355422266996248957708658593182786760431597918866637288931590483759507112755338628810287970293383513789699940174569128481773221957175417525412951355485202885220855479745218010114682811697974681230130164514611240314400192229992242258524589126157431594071975514387137484735825015714701175444488070328300417401014100086276786857652151481117370570925012259710259894884113167490773367365448893695008318503627938228667322580298262865072729196675497155279740177859763278815700073658006456353285314981126762362344020643446067095842512673144683662685414641617973414793137448133477803069806606043734607363213351024527768554802229515594689033209008912884698368925271597367287836986421985926199318264560810991066765548226119986994043145130276211567552937389504260240248804063575789916200423979920127312918389040851864304525619466724040356660753894292737497093031286210689055928656058846403803885902337624257193233617972619366636882617907979980074660911582492056629591297003771866154033429819713721426029776720511127859272238369272505491215578631016275583934443843410051459026996500361270564188624541390275773818948726158288047908412465224963107556323213391209403027519154721414629787341714626675722354243680823845935434911152038501059313469709315982477114357095039073219816266877098475002482499863277070865929547749019821727600213820011194184975508831685039874598039943011431517878128621035857898274292657750905417009299938874485181505794464543651095477182044025020759793493430784285066015880733391053872855471669304693721526279689014289060650378410230177607398070132528615534891767088526761642333495815424142819571434361312403297548715391958656412895859373647691103478032334412807299786674762298573658620612722248376823408745531883385021718583553505231561687054116581164094995916014611075630180150234893089007347504623823465069919675425229292251553958995656164396584575653431608009058455346479171579894628377231654926181122053454944893758026485560987662101260274157258461390207191683216440095312918646042187838267394701832680545288264473812637538665862916766356598959125222599042832991550571269235013842904896499478301737358239508058425546328678984880741498087999360784210045015982711388171160823284019533763469515967392184675147251666933405954068169019303549480262136277975260633382236660503540553798283180074344742036662177606191834330895551739982369461561628604364143209976199519993378906191562586797921655568142181841993771315477753707375623408273776640524990922953749942099914308240345058877380861736805799582495751901328253745970553505508023783932722002742075661422833708730151950491549066794869422228390623567286251562931302924410737982750584692154559418350922750362137710641122977406267388060001969831429588681442479867716265602132518569109144661216317468011197335560672598147704443594802593899403874643515750701002450007114062598768172079250022498761825585248749784357504995623668689754870243274384058944809140694193437275403063137179814591916675064776060049183759330495096185648680336179920064411777023430515273950876071784381100550844231104208340293156350748193014876395579431594297320881148330062527351206686850022206525337994855825950568430094483627058309392974893999265292747248333747533945916713542746432398939779006893575114929273555242987001846515130071691340991065154973841811659354991658145669122526281075564395627201975374794942599754489797372306645213007239261822329897221778115045258582877146406326889012429801393691014137232846472523357881978380399292448204682610883147427074258467324876211208945389674444647768090152736769325618981678943646846414980365135627025773460858587445611111270217768483278524925447187351974259936528078768193267279152781397935736986612445137922551321038993464486798276893615768841015573642238863060884910499635664272746068474187690200796471822520783067445105397038647100960804170714495211849572450031516626974557984360822989761546120622791190762950583423172128480495275811741503037043397784552717060483554466110535679080433895630399905009943313685332763519116742146786970790312608286355178648501870469272993770915747728153220674306704716697528765181865460560512641778500431920383008133245860133681604202726184229121031424519214578445143131217692783995693044122479104975769224779846116033104664064864978391969267553941717748054786883270888115121941798270499451013732505939496076438732892565367475733488826351630932767372808136754106928002872698253070647087794934581964286950939278591266707063394563550728311309804497845241810390819930777354130063250418293069705402201687291916376605282390701376377624193284745632411639272297664889518934764712070159434635243079477000086945907556368852514843232205443263824411659460777899191099225544287108767438638744716914690753703217075622179721988545728298523908347799673244352139320595369813766644348062913126799861492908901106707203784958366535144083462019585011358216313085830832002857147289894166633146191229338784645951648903764995917974104826460281178466361423754163640725204699294373239498639133335254842168451574503679742070228337674539658381376300126059570621477377109686642736121273924163581300526486175943387458397430802996919137852885349410067984133527838909305998804411444467724863386966098311205116870276929562994449549650683732683128607882683992879330713137215127318132686146866082378032003666727015806169228992751104536167733616470762239549505760094594996953680120146500258664447499200596952091171465715419401871311202720387914533370776720288569790605803325153982567100058477432059273665375161917302591098465388590072797540699704550959540114479607911037432356440863338481366457462534909711667549434113152891153929880330539485758228881771184857292006584982525883894590129775072174298369902886895111880927107438068475981978344813010566963636906587798377617281908679597827598378841867233695921062144036524942933505340037061927596406010162790545796128203025098701096704664800689745543265091405844054392449699742931237073302718718160776496185917985131743264547709764990220137312267757170749315868886648733229640956109579452886758660550125789911419774235188921748543993986734590336788216775508322114579544489935891024907233332918741440300896389931166025395599930652658333102585677630492550191310831333240252360175209824074234225465404720135710896739148834383773041449424194023073840441459695748818010946736707804183266065185286199928397184089348723107755722525546039926356793410434175145902628873813856717673686204375273645133273524402395545357324500870837752091334996251981951852455122083708687582408108177262352478775432626032799641656851439477306306976041532526618964292607185938707644153659347282055530132034664142565508120525820426999204022255688467793130073989719185871379925472301552751455297978209637042976431018442114049517923019574279324245900403560113862867262129952890201583039418717608528299047906354914126713483825904749987161472361846646784791706629121130103430734432232106844990895228563953545587115311577479419201759698514863133623326030026578168800628237375105391090903941899909576548960998166360398349513282611693731326883215048393702869204356933556924557655017234420680449961222309073761656149621077298477157310684426870961532094184020750098274386437951266464540047922378483913631095556952639514649853041928764535675540179089492907418283922418478870711908833312657171805071573165697478371790287686550377970507887018027412323564016661476769819690819177233360593214272601553083103318977406896980147611989831255561277731809890150906839114954778383789148722238688174921290950979056804875995780932007779083100799853314256256052570808792544815814955019870457364704971392349032747131350053372096985006137745271907460683542821335015215668516949015143764294400853472106995272413276630667183830587031328075552167176831391523488975427194700645143027020138757008683018899040635265119529876363002504008216989374630602266260653820978453498112148790081760643576049707692496752272561068661831930498250876804839060011979471891617097064308351340152819843608822098266488952046421979207211748657075242608619679017595662188062721661770713081384933195764906560204323226679077404533949262878633232227785237839392580973600955042779710781208603736348078254861530938086978053123655154575016946158788231285922530056852888256976761305692624029490459464445071903070945526916728230676473575959820923528620931161827706579833599294878628427924816036802481892506625593200756864780694440679653808343319957743969906125578150760279165652228019443194468738703833305264054973170685051624983740264273135719987204280733023123666062941067911875616469282548352410103472075749543364139331658203954387083923946931587192716361963759027093879603420401068730383136916928552724908628591756375459986021402413789258081755998854589822967789580813203919225658805214744332073845817618113018942115542794057372605376269831466321815662279804301719887156777415905999283472556365700880255178782252753021611139918452414552022434820277431813804658909249499979344878249790422301426342995274594664311084800725432227651883905172856221377869302757087255698890453104979839934782646868670076914384827107838309967014276888619133276638029854392975794452370995342349436156130319422527429707126508873762987395849194619307275121806148156468125620662368689458105171984120224706914670983603889676517477242756326547599845223329812281502909352498880012272684496705779298318645319946982483755479824331108862215492946210343058203296561328458205268246506945112803058960716318269041732602072049368617375051456522260689555333157199855364661897223912799716658842422479578554307604646948601981663482974588302813935794398179937695022997327042256166436053888210311890196988966912509688468641230928231498370365482654906098994394173641199679300833509929344623906781512042911887319706951628227267791387916336933838460737187125879965975464397264176250785331495904041483396830900148376157495133887689511414752159302460665517231871356217887831685653755871438525955566392459172609801830178173469794759425809942630210768652053061678261788871572286790624262545850359547871833584013166853879133934750755403579193618339233343911882479467788203169339699522259535725238646194490545377112651032129059946671459639124288244328830632893263904717937115752597470411789343540689286827255935947849876350327803007501729739346635604329070437068427967908248627932900068994886364991110320552347899561212093568455126997610478856188687293374868075434581858249490338116970718457312901610483954030218337508978136844350897864931384793548817038563683754080134067715121651185349440765335985646553780235892416618066467058271910433547261956154800142812043974215643176235552422316048293260540224610972715228877403747250050798325285921417099475422501879797888361656318943374532986172680859976094051552173169217229889965960739701801895278144473123545169626996187926328782814668695499324593257628888478091326946127365468835494719363344851362859464386956131030008740516353332260467691535171344677885322639324805132037152367232571569127931346727444685669624896564699113656685936631529465568274043854330745347056830597146529603386074962547872170898016174964502763440322250450681966639576800538828226851488636094235422491493883292203680872825035839900856288548516762943086029618341574269109294462761310394220134282293580935836830487220580517068795655432736967831428070558126450568673190489727616765135097801657168454877269930077757796221791137641173733115753032762290346022870611266007429412311472908748367490328290928608529287061830783980384512918731894068193658489412987142005616908916919029329228409438068463207451124791397569692289593626548157717342261395941949491734994223176309503006797564870268308425340986063256418263641081345661455904591350217499362972254040530859951419684059163514001391361417547510322396446352452498534608335613864891924809068562528974325950680538652552872528336414202846642422990594010379468157779042061682548453150477919594127914565662165039599973134385392302589271198754580865748322008193831115932877481992779863361516617164296240610511581126415749820662314904377165607556734898030798648377824673727139894641645379508259474104649104058201904381342819261145225701908875786021053198027109766696439735840057544866228281353415145458505593025041046843630959890354599475387194538073971778778243776030943517408434936617586835432964324589298562240779900579434724528357111218480990507389160837127868884657775742171282614152882813011907668444284512322859914611326846478190078552183833847453939734250845195339059401602723602786500087456284105891763268952891105866168352243422212479644964303945579446578046161466556142346670425017926690836330724675588231382554731648089304179520982084184597534594450211469812452778612396559875716592519909093602951519128936182371636827055241193416241762005232221244494847501252175435702636901501086243417514422440965469916057908325684195212628065875485595895975645846490948439296246916117944755835512903308854764271493168734727642083145392440818214427426908301164746952748265687600395546807218063015776337101598652943426759605156816026302075292923885648829563200965552601286636386531732710819657987641470276895272804218742791951651254299195963652079661945157731840439843441713826731889228911338653927123756250407890794870833936395411776967754716637885819871247436236398888827223857241012672041087329652393315096184048011455086156057247216293006495591854065976301005876258387524149043632625783240842485330463099145689112630189032430821170372076358624370319305671102318941083822772112318570967533745668853767390140414351989761605023822984888682681934432953496294223141240514993919810764389397729542811842639034252117488161427340831095026757584615916502226112222503854220199709762101253752153989155877432452570379229711644728558398743285598206138505751932921985737180191036102467337321018595043167681537133535018873827216543017212261787308049992726971496545218568986200928364093857130873006316453327275496583399719820658396071987886606368802743868095853157535692863094664645255502543751537344833675435504329910694550412824332421215753781979123539186045996693926356066823264476568618188248831601665834932522164981575073427184466941941663535365891366050323871520430274753886169607659733849026479826379644578533841242129007082707240098808829696950416375765170308631995152760207167625894525747824820767483749719135120677692397987578871185979485536247143040939249810908352327409363448459577458478369372341231401439028612133714753874245334878020912689754944926274993305492768425703207050358605636180975594937196305811807521693088567626751098268700550983951335994733633905762856861228486162651451720374855046242064198625075873882060045778273663115514595857001252643195319499669006019804740103832948563167339517217988293545473182969763034638116298558400118383290360901447450665496633843481046498020566547894666563184145389774874259070286405510592143512484839413961646870277692196769541202099075335578766676447548796647269888709559948577333401420864557964207983206394669396641449313452623135151359744924264592471146354180611714777541352050299737066635471489179288096353048368009440479404111546881312005966643389688850444148730541648649758849772806573629506032814874614624066073035539652025529629199689856004259696879621197421074483676718639839300399307711176439416841412978475398061672286218695186476222904204422847728539258427678756491619881737842860273767188713321809413576306783024816974401737588680065766640669489731749902844328318138747929229086104248526531113177757059344852034830062580622502148187804611959596519766112045390616943722600109170682881265964934374997887129143730192794765091511973396523549449836954698345855329368625471103687781539617000144213382585409328969714413800124465295170036791077220630226184870311942716300524978473731129937332295181306010827767222484601830323469938206935023955640287280253683492555440885958788937242337755792579673991281363277879972665849644314114275900571295629311136962186121885530167456950232663748694279392982680586110714649109349991733908851710293364594630278794116644627198314007354109661309230204674695417311164982898733635835516210738877100575682429999140098854692666314871192528871028491045041500496878359039061725785084051247095056591684105334219772021169250776998204098314224552957493763738325414537798212241331898496943926780395756529383416812593182149994726998724100112281168537248888984984028699672273741771872368059699907332780163794018528749813163847452926772137291164305580130729144008550362276801061639701244724777081661101027121757987990582789248661909276484760600308026617596146997862614588632863116259955944834470779829587938982175226166909812340013475344910086951391248382739975134196215751646069736164670924593208776243896969043500189146867034932566341396991901017455081358371864417582906065258419368342872206152984251265976281674658756817804480587938859048463913161674776129384539250741038924935676460891156312833140295356335129773263942515937488320010359532893326366387779340703101004415481376869832335059158254761718085482501559318122873166678727861846456084175175838374002257202905686803777408817458829939425867797904644421896349884441578774160404136083551876784711199933306159088274651774523859910434700756667420936776047042999307891694327910071040523238997957631002085325633829950976562795379269391880798837703506481390138388874557990483564998930347304970885441196973930098086836046646031248587777646267768969105451668915362689591824540540614984323981371612744030828449479301499979936821760235250548080614512654751311767437896284384666698057854597399645151015883131557537844654225168667685303271748328940620818819626719985287284087780883920193169193344791403427033380263348041547356778104626948889062572726848579022745437306705812700306502733863407002533640332557935427549620230166724803824426192116665180135353536749595161156239603483272584637025507002380106033706114889213520352533427181457384162291280969835385537130025380382156036089544925538967663861143353829064243804467035024709300422173724908234365930230086664049386384075948510556124391163738782858138967046005172558252272928620895891603178044463315039071031507081787026510473109262868406291857136318911591506026711990521434883264303448707354292037256308176343129638072013459620025990953294739195622673158298205101380155022938906419805337172389132512681517743578754733049084267707463254631053064091184096759449548692941180789010361252513365818753376178639497241072613691999911395817441368806692705765998588552269440675381952467315585789909606756685389649782178902107717102672066233336372660712878884250442883537453346584635199403335193462604576227051415699241807284662916051132398995669220254552046214911808883280228389432227945480689710873966460117888760355312308021724475998373248180513146752666315129724392332270551142065870979494729621532133790489206570527923584557951584960688833311687124657522574213852017772912364151888386696251877587738858732702381073958920667003739945201392031363828536978850506167696022675970038646799163299463962292517014110538057123176840385766314731617929942115008421862721211803529952964368601559616563494836769844901744731406878354964514030389376008476563165085987199495841725258145430550064265711913774734634853212515227226782763642190085098596587583204445367391064777254339386229721386351728117949978412281566510334120339036520225099189430747596415148569920107274278688846497874869930029277192410282697341786156770508220543298508760680817448999104435466518229562606707453833150076815213142096279685686458934630349440043187303446782548505999988308524205120777306548982627382217004721096383154562600530380041780741510604599324667859223857457723740239516892349419595196400854651642097196296818356289268338813949113410598215648118072324687600320531940666783179506265678844463797426989530217899732629566144878964242295235558735238662267810078393139565406061479461174300969171742899018337240899790656761890455371154379895289088524217504601855929687050038551829667404376039173995428014464176628616803585929671889387502110672275481371535291730962983129318343743267149562207919441888497414616447304121200643834073064670884105786141790384869648179260597040089487376278161796027442155197500278584033283097712057182624470190243521566389709539810330450727355184795144855654589948822166550534945349336932412839413857819717897671506510252903792811038778235276667660255505185481073559015319679432058662810376935226124299835052989691898079061430519140925043408788197937208399326616874008254066971725341403468123296531485555262630033624794227874725698059518482978477256837514710383734367118119439714677443708207007553698120926832148267651376845283982877685673028961402601434846891473001602653336182515907797090059793356698398511362119622200718919606623193806412218766552070024815458580950339282217602258099473629797761699447545796299707956780917097541378744797985751606016712859097997247296507975737238668214178348975855914229980284160038869465979363072685977868682399988256628942541438875824411486953604045632784198066438582586329687549788522805180884743445182567384901039201157717356112483994886710634104615385978316173422735943038492473019554093068771152871800248042439222580759030283267668139638820777055752572480319881094739645806933214140813494910816149066787395826422440156866151777234749865538971892463610931048383884576597479344122944758076559366046270834423138183699651747811050545766579715017630681488969173132341149772324906157757262970537039624329397409631131406443825549074348801667603593806457155297483976320924144447371422398367428201795074906775823696192924576636046229032637131371723394391869607995314589986086199241558018911468611197438911575354390337048291380870613830032693555625273105496645446889127154123305139261765992694318799792058253573297398096178374201323449669117217121487156828094807860835644598076552754252649330203690244890284609020787257087281988845529381990115185481388659892124206733434240812828193547595530460200599314945951035974753036462353126352277291620942731114306162089322717866555463244901925135170876572409309561051793381554917968177383629488107771897470773798086151202242048322598965393596434857470865989147253282588048987766151789168079436027011756309190154509742550731443440363086872627109043395647379034632417973434455859601329355452957333460310175550621251300053162365039378512156075552194690554547869988690072213635575072515000683138715683487471300388338196120309389722818291786856182165108000199655981666924212704837859350995033859241270299761860210782148502405529401603675570600609889958442502467309544071752426346039379211979276948546887242770350226128737012188076574008923945841161684218969999118117402078990041004505145297278902229191634937987024855974679977431577043283866667317474886992755090921384851133931206615647003757315104850472202369768817095580788806338737462038922582663607492257760694234722715236230926923538457671938834410752257764388828430039293568356497051158875223109304042219850005832256416400663519599908193040385302146056314863203676275918829845953738449186955373443089155349923552545599070143668629947743077878097476072776189985516288499733630182571885988275480681730755860950456096409698696755151141426864157553551095217480389843604139885681886669800946416976304195664907808180270133007703684282731430598859750006927833999264875040285553978618145504798039330741839802428385753666207908852168963433191352835672714986035906856274943712724212731114571877803254303015448501573138689154498175469195771276124044630078403591958570547664545225689550414318630595594491617291585161204720055011970462900309316350950984286820235512815353302054296930838724386211507683359809011400475472796165279387335785866248249266956446991774245402011265177354789772534170338008298792707921974901729860010889510981066173857237617604435061037144951656360493308338078022820050144998017606078798194976104536763439446107411509264019946184997774286964142179911583391901012206998930009273632285800374457372382233151908645726092503898760063081709649101656040521133337369221142411470099592345941409267094416247515835455308453475728704578443893935023139793839229588525992817255123546159811747152727262578537889712055380382926800577362717202763564747391352615169668806917148558067453293568784371329793017953871066678833632982404976445363264993619110417061968869261251575465243932695462927864928726758175939122570500145009809895641100202525688341550636151489646870880744779357787480078865811172263246480599221036767979223946475772433303683420453377806463100181508842894374559131083813436315519399791094072614335471428696624971052607229539488135739410122140683566059057392207562043391328107242233748350722732413842601328435475980060743448267348508186844429220054959479924686191637188685033849705030012424981282520688339924402488948032904928460052913354108824670865401495514461969257458897941522001432829146155442145167104185954483101708788848118414910519866641177550798621810722336360855619088270997289632076450782601845316787343677122798405138878679294866069292910559970950935718628133139540567380420062410374733050721893112061454557469967987797417359850092824233004617879021628024779799596599168158127893853088949357603609546613131249624520433908338232380294311175545349104272811066978733724946283847922801464611443633325495803139775949508838344219216380013119140714660671709880666564081451798630798021130031991077312465049267837618563662065253208189001463735017153630270015004940145307168240438574237597839895723020854798331194794193650605571898152979135059773973661283977880649318965995689165135449488026616239399169851017178771883643116092943935211714458791096579361957361330648556309166853176728254659023065008270932892419496870333722137149177649251023422137494514003619068244040338395443798594075123074729734093257139492890165474242441035375736082081966583576773410412539551424651961586605084280961067754391839840912280741709468520313934326380372625856406732829820758039967089008832221448859304627856423742198010632699273569262231982501580627395410791653727409158340551698064030515333412659596215266900679923812760967690225140789650447685908050882006367930332178532173421394750917422341915947810792487586065126011806917781176557172839070485456206543915977184060134324651451123170870408919138597092954994235066204930791218276705388276021801650614207122997806041190741858888697207657151585990292001565728678020854353666244340728077983870715529956365951504365713911250571766548288108656884822808762572788271206947466100829871045852897262732659941884920696248466626162357773755776810788980057755911657218379348341276333740440899798031256444618781506736994479449244034032603675576433676895896239437554496377677296548215662853170725841391016253129828959851439109178707322755042628134118788465355398072925493291829347104290422344185228220560502008214045031205476115177581213794624498125258802374166913399063715121422626720826391565515091898960408492701612805778081929764818412577709281020245744050255336357121225025193690333320937909942165325315442263884132900989651511652568719068869951575611324737262397071720580643256356829881368474640266117009963408079785259621893225172574351301048548575247906739713066461023897988812985944426712366504218256822610724918757601024318194098903112772538608966188556406699391697647990601321978850930579015148214988711000261494555388857258127723383694653506623491391956118495813515262388998339935704370116410692399672759909384207826262940185284835709854822195136679732371817574631369204656498659672675493066951995908464631557347355782834204271670132430729362674458284653760248086852975571762006515780668558403130725101956301284063940470767057038614588383995600865061967167510002789104280500217325045741455810625839817638474259383673579648781843359334377012043160756566573722764170943522218133322828563200557710016838339244850278458883524781307179559067682228395853642582635592627354707855251779677415849840396328704289794373072610715098232227116567981310153623788127603214657936386092558757093532990901080666686078122818998934220040110183434539211233172068919529599701289730555542485957430198459117689672159465917972093680599843936875064031991486139347988618022751872050884215615676640477698335660172690930032022477912300090112593382483349394878525885396565586790551254102440881078606240006608742713806945024823590164176164163206817746724372669906616342648867048975858384193302645801578527764626744872169227291506847290508545145443648618998375122194242100473116389634578260665719447051584186618042431431455119790417649681022012594301199202728957093145257889475328085498759789822484183615608241953191332094733065200661630888447423456766273683779916408415766583344329335589314261162268452014706187449943632497246315538158126113236329202753993718245214806077411804491738524327094199326563939569389382810925803447110512329626908051651669280441728204920254055737536291376673059987588608419260772351704529774594574142767673456651966237183230018740649982814249366570884751936327764555594949980095539375196224203500005492686271641418841655497468212492687639463393591145124986552349961638437648975182519875057823986404842136495833587315367690078222845521244761405150797652158770554953300044225693507681490019333954661149679882351247200491344471242285196684371608114009671784474330011187039401869359751296388466259069957572440775808054344879336976048220588821435304977505974616789350658873741323135288051145508625525160877133157555543385839743965270750695055573877476791003555988917268178884408884301354282511033207379378186893450121277487253350979341908092037439618124940016541867858274312503732456955666486556246010084925197386154498987522853090919678565499033285443560244429556572049124654203842624031105258513930675461925564617655053925853203729860481398464338420478068825184786926361482177786810520733435616145751055255680831049144708089403572897424615073685093660105220999076323613252681557140048678922903996316465744247437549099823810535484927055751772599807057726839360304049962059902709287592549239360015736388954461203161822182633642356272744927254156934642137753515730600345357024052779228045723510477107146523104624733031945063063194845619124541131482799814052961488208305586344414644790408327921190040093867997805548340542895566568382682187585574666742620982658391727728939137756349267678818309691723947183748103818263390493337062805057021908807909485489922344870986853943625568054255668711438883476216352173266067606459410733859855652783131488881081690093782328958735419576758285015640006018461979910051486006106275700782590997530906120000143579144695349672588528334855381066084640989648362818668360954286817709121919274267137457033639333231145321174618028157169746857805618821660576127035354754658922857641482389535312898582823357569458585993341622862884152414122625975407712982431382309994267832458667468744287724655737422452874563474644272062197378676884614741264695136399381293296984414004019003281914979460299793642896830289861435426873649579941356051190194395255411845765962332462304630635702835485288105228932455385050337772466580514465339075359176675066396652043296959793486541650682122365798203650474725411516439566968466552976864154132911242509470961263510317602759222237494047466906864688256107610448067120303728302423847035817172181778879500568785088686745220175318076929832640146528465098269528852605764121200060199703837083415174237512508516928467016029978455765722406152349393609526383219479815432497382647133197709950627419515262856331257268077866521624754636253228642173515449389698231395298709500878524030055619351282790341575134751921684141363719054680349789996375178580808936448275429897931605837503750538931319474928681254772084742824200606844649974095785130447648873147238055088173494521310912138178059314947281593157749023709011897940511543956664139429333232851398288810810834362506282856731138359374585601088042574161249727404299499844935868907547349993927111196097930720188250301601431320522650557330083781805779460058402909208910762380681511150413904995086193171891306738783539563598215247315670250844786739899668558775211211168837254294996869965295890412732441171606271604384084472337746318161442445668615894448579503181407701829638863662598887235917622221899331939276768263522210567201897279035691510806731793779825171549894198282310316244813776553232177193876339262024509121471104661276247773239263086765827472510542252641639474776095463341145751191638369081499960022582910712530128246823135781520440338341095381880757167171062560387082379179177835280459839420843291264462047956484692909981099707309499030422936318777901408216857813290822025640895961974331077745342021464340575804613901908581829045732017635288072964091140645487146002295937883083240363637833396133581259726887429024154572360838138373620100431409126360684970228541272749523090922903471471446492869555444878392595206359992522424659530809477558540804839251955337415110028707207537787890143897362910789842146033079221598241223263414317021073751333141586245163311675883951012370747301357709435249761465574880161632864005384395701627293196545034371217477445355693949101712208926875372524463302655896610695635336052251103167482975410326273174651356358070780441071752118556934816898406628335293812014904705202719910650039986948333514751693295846025164644777067837597736911066882759133589726988203304392899098243407896249842589187333394672334827907618917408903959999232269757258904590453497235014124846457640468954023462240153317282066490921260963858998493656271841122502032521364968891410765398707471746871953027312245391576763572221259142372789848550534544889693748778780944198303739441161002052782695796513183183466131642424705444429627616451426524534644110808147047738863898436506443137075278906310953842586798389595174951236574849091008920254878595623520565098795576612726986041905841816785298323419184837611869618238050761916172583917100041800003791205807327056958306133818463426969829513612718356305413434297892359457932977849591856225920065745772239778494225947263897376539963629775905837667580249887711792141174162717555471437368290866218760223557854807401301940849429456686829883571728564736543518739977586197416003951842735243684642150325561056361163736136602264399561532898284682418094397784204039765618696753359740485602260620445360057061738316222258859557339443926627351576410768710347428436735695059789664868030922293328755311241544042995546380133463254372614956718379902803181899906776525918436845731390076756207277011462222967587931505577116641021744267868782525002813606192026617716259724089556526095046580972252721079959152981584778338197227503227233134634186894931436020192526390360333750701902338205496409677432226951565172947890959919076335897037994754479356970861194688669348216663074849487254960144195837998239056635314539636046515251999035240966743740717125585127825921923847533767470451362776319480247445085043447808691526668622063234006371307324693768746643714112167644493619094890031173164864448437776823018108884866994943771614226864603699622309105395892877452690261948878351441765979342159551031697465159174011590085465398724468292421758829708722122201085393641953568899180151917981123920016814936983707156543451516684203515569917630569419535638477340893185648966504558560782199817701747909504386799951424184864933567414944492037227852333903725043519763176257925387397986238324808609228061880437832988518452866772993686731294843879196584597946007528331445990220232339514467442447781254085625231514532071500172626652022739352002479393042000929957072190648590622507208391933922275344348967766860183793272506009539703521747944238717028686446457918260323152974209873486904780642767840849688883328975038851768008986097685362840007355711312910421199534086129442419345337958179212542461555178085219889809457231741096089824475547610693374310168775615515386457907216609571663785379228742265431678705372510045030195486212916249515396434292629623869405922966689539299796307252354592156505063490891427916469450061349980469473380788639481196229948935213513239469569550699736576813508223602102509367361929379668815631618538362755506232536462822047177543518641960392553933569668001417859214510768262053856396134979957350668459669697490161003799742753836937004003343295238486946407431912044272275264019786780609809672042871307463303887587121689937672995232176413792585305085648945947172756689223614493701662829754008329969282244413136367359020791502321146982669966784518642428114604984899990067201502956929628337641444076736441794250237469957079886990505621058578925289836823781433110526264867240335572418030085187338320507578407821879135481967478972500256657468924838193176624375531150887900095200002426187812813582091519555717047192187580439422221332534760355406556374450826689637230106957032551441515694010967773367186450757033732075098478151593908203140866655915252040390310862925729194786271135901964441545066754173691540349839892370834022715836260934702127772188408147602315396022605645238854146994714931763187299496990766356164326287394310021804481437158364232955403151183674075538843280991547350597036813936330089849373167634210814329149516200494427649084160899460770125800355027070187505914908329669872755380327908695937805770712815509683848813477691368726184991073806212748193066209137958229338242984345373593793315023429924339567312387641150889524212468651932261582957590784209624687969809660837291716910965737604514506445845322818792147292377307249395033497864773316223535485197913295027405136783006635942169566693021688443034316222326228079160488617216677998330193462725237673435856117640247365305235954962768485724583937459673541104844346001395491871649907043497575552413757088609183058310248427931414020781968965342274438568492670942237850124131453887132950296362780008087128343908155358414798496022609683959324064456777274995645986120972883258323621526881013478736013721585388512119948774336403498717714453965585500946484965637331537365473857387097323183561265090189368595316429922528451460771242749238814853981444605737346156444617317914053811887742455027525584154651137527327300515473352997506572040117069212002907605658078777041777601210073312680817173866283119946960940798812934875863673352048887153467838624182047120124467912635685941870199693760469959174582345353345715881109966503791847931656211980230518660568214414050515673317932326937730298852847558349529922250109606586770689348342635214655052828888644894661577769634820346454668906435044323317810246193488628867820119830312119483818386229476388026797076550885236262136981231144323580920553353077911360933559533805071140908789110145374782381231730560736186784685192507213065868813486328780285311466413421261647720379647871581010864340419985125972308803335277646578178876227080190808857075518754466088389534095267764738550399327267132330217881769940390812436246799594076866732342366922742860663787119156442066532573050180864580249033345453845671872998010099114539417731723298448291391746796948731061832390726192336225069791539312611772041925767363000829929459400340652950688928376088252905278566569074850199043175999701471343435540989474826538366736548559354587009551205882798558535982431700574702286791392077384626904651560917563354837986325641270704832134344328784807455045930268576225472784116266216667378120828824735193246677897817457638299753656657206855438887320911733905410681153141854743101233073874186216204394853430420597404513310039475923065727987429348046233437651358070516923814930667291446901112212641516125498551544040125783169336221329293897949032785011285159595720021097915790001178318162886009132128357139577958338672770286987223735923887164377913769842781915082210074801446178553992736101199761344617048223989209960492576493482199337722407135210723963432583211084574946575308487146735158123258862365439293764198674682961917723257257217846377389302059902094000097378099955862651809586670105249221702106935537762216012408976790764247198095015492234449515769367559157105026008366741396090248264542337611305694426422429143198478403225153301253024344186987199837965797939694571434692400526538835244429968034233421734222031675220438042762701769485162379191143740168770612145723754819604431660790696842979610948972673568902777286525869154271138606047850731037665913106670319278989065056497046549655801484828631600372582414658293041761615805167814538944656897371523058627533652018205692783170894789097948337795100438179167385106166473914893424291298249366034832827299407797989643446103473690529288983486964904258850910356531422310457788486710951631380630227920963413582888384025830056066636955264568130204255129970982152072224123619968462545971237274262453901358889526631142156736821699019513257999832597483364898293801380180358296573328400035182279802590523584711637177609368443715664128335235690610154121464678430275882873932396297538762880522932378612690604289390292274114302174682604018821171524965940869384582011065156646262289132615896900837050720907875545719585176194765375531164423540205625343019636832296524231254483678256186107483357986216720931758742911220091572449921043992862363503408311611172872467779748460565053510674057196643983069017704063026235500565797951108320626014850264145713647958956569104395702096683365008059517260816932061111318227010579382077684444536452405604798720723970608516299770000051201288833881984013918437922595073427691457503631426338257779498069405862949309241140445945978693487474070720115219964100047323586211095213719762165239918995859535054411831907240547897546153487911745131216963231319968579283705330474101012805330423485331817107002399497590737219014540512731464009467737486300551802179054746290084847085902682878692699356279514678130457555926147908955725777507117001318283635004171611416504732217660463853327597596752060245690079195736468692789563930621481943440213234011418925886822391784838182458405021247455573763914100655336174958489608220100172718693358046791573741903078360729189951591684950478748216363233517071479445969823729011017897541762368623460578160030516275789276025910488398281150389996610114773351342029633529793808319354400320259477919350660092751255735369208970532603709092293920014120756664897941414087098426954303510258955233509908758457961498942724956373239477103285496458901680809495606458982320470861181099110934454375872668711145699891391940304987071380295157191418980617566722459335243079383042145726411607829058808358747793646741619362852739129433801234861778112383657449829310693622449054820562731532884952242733444661615309252477242762015855777540676626282892130138516613640547131637518467867845321617982503890083765127191985535419671333047609880833040642267443814939392448273662458209296614508988205266718005556039839890096263969295737380173960525026059583921827699196165809377400555674599432487319897841482342453134433265486112079673326855112529450855433528621681504994382661398996410315823687155913747455465330052470166099138230017955803627427677374592641572956507173949905333582766217181331572150023154359275552261128152003076907781245583325643447987354792597777995478059797830289081907416526026509027690394026484042559943740551471712460663371487117419877158826541775149981511792824677538965090526117724857665323490946102276165512442766217618218481783508346556445630541279385542778166704535032414929097844584414605353606595366206682712304196194451849208802800897008898361524814441855157091591210679925138835517888473803762436325278274205746103052030548357434717875113803616468780200438315073872688906778175046946004265406859593076728606281052486630559555737957420614618224312934935968006036013998314534505045002427315351864665812819035534458821511136372318065308502219808159482017414248833033034178179341318749121752344738454520612665939064120116832709144689310858140701344506795685823796695155069912828114362787104190485266503954380562783116208662569281938137104789193314047528051751458512222788140819615844128433829735229169055173192356919815188187856807295830226027491410956173181253927581047393430769176075175414420906240705118892390790498595050878243562716758384968899781223680714181133788659201595845266878784184608559175253063960707991002097093713211665536494403220666316124352192126225689529720800081095745016572792995560308359920760343230578630432104752241313700984902679479329393855332224695311813050959167533801869664232947654147255314729651706622414870921957040784234182026703655460500198994030800298686436126375710634615048305930694612774501283590005872519218564011144931853032330252508130258455436572729744331652859988082046877152124430478042231267136308411175923838944492967432761995474454037615173461714017370718837246901388858075788067577676066880691250414920210873621996639206606095812860834159369143115577813032533252782810045587103314051791064458874057080144787928508164550456053316576582490237131196892485285203706046880805872403829399496212541608482695455145303268972436382725668594811441082538435286228756730272073003068941080160755255250705974126003652283092687332227749309046056227921547700454767174255729759075179966796227994773168739243948142797804662385568291019196126098722506309263758753564868434595455069880956278961718912234996361588451003692304161415116404083286981050124928593755252380238333289220963707020535238848256883468776527575776637427612992103995805052022441192573387469288477140256446765292532492644076891271759667959065517923528367945755198951514051357364297398022855674399920338966284002757976139521669326478176541658278726484628483802233300242145885956224529386745224942376454468030749197603027766063210348358444399720269462391321240174479711804086626577080116622179164870492513058739121199789997294931454104413054687502720219127273008434721753627308136372582086008724454686322702282655878600684009372649301796339570615610255163059857843839876225808358016890710913781234992951689535581108807957430435243439101242897652885214926675821814989630908634755424328130913022465897785351828176944027548127514678345623237018931153247372694590081379542947594283203633921396428771277650624791381774648357548989183652559803782966261582894897855818763127919751545310816331006933652320243718509247517366668571980261151150821182314556550273105633488469878568261343106801690835612791030337751072069466453040300826085962622471203927637993242512825182673842734311735805847754956390982983967748974637149274692761923364092452611801513905081290362348754998192846600538391460995911454152061556106433945105681561567423266130476406618610676783371493106726728670945806991639748328933715425982951756045747922316604179568083059953474780408972580771034814502492497054138844273649796285646505155781685208748837398718923418705653496632311994952111459911304120328071790536051095911495938389831280068113060075210482347971036132979964414617772643415836677414545852125326757510260040257507400686036503661177503684992717795103279361570914998623554559686537881820073661249740437249297999510634318996224024092335751187707231181131405004828485170857230720899458011160970309835167798500625297575042744349013482570115343758825016855560324793911219981339425505427647951573093889526566642903894614846800453182424137902496556362567666833610557185721159020619489609481121313235739599940890071249221176443935553534954622233241805608515202328409870180477452803275247618219691666935306972463795158246821351892333150248202743918201469391836935673989013667004333795560432634114584820314636568240360889031266864568778816071091433439297899056600548697401054813736929373559799147622778580536099565531934788479854576043830875062017111639833531774087105920847486833005165115492244397071144713787556839072987736267159696158067657781118722203877926042594396457579687429025490413071599167532167043265223225508487746106749271358040835962966494000700089438942473396324528574181482216787030950896125425490021681545357188777289345553211211568174525696445172646381674257342255374854709670615055665545460956823410242172219089656067588449583730262654900247627709334898114186748719824266551092200680591579847767159403110134465357439721074153250008017076922613874000885408093842142071322649300218999615169182531933708013110014756431601802386464896363686701285069146964096041580577084060239545995191866717977767706758203220196966265282151798518827694115582857117383870189167919756760714164282778620904114430136130439664245183214286677629687412135024054040473107780135712322644432470733908250676255346177520766040546331434936114626076011111632391001777631080528250825042397837694216635727206920311062163490961597211886916943713945985831741253774248184943965650380661506062563120093797612705271776071963273466893055855310604704733296504016221832007420380394243456954260074334188824872027700633453546251218463445804784842919211738125616134094821321933022033343631906966852390932020246238184829414991967084841047041145554548169349545651775687928785299852650770081257289251636935246766835129346191694887712849367357437347281881866610328102761449329516526292002671549351026721532130223168558495602852704153907744251765996327518230596719070340545508832371934924501599803024292841345660376194903751541913223247924633958678617634942952582392742729592789302742255364794656404465754952759668830464301364787676282730352163397214169357012235279569041860539622235618979886698755238611744147984752322403101651004477818356318792387712689895059233955887615270318068570995904752110277150012693216168895560219324097614707134729221950742631561604495750451163083372545357024446111165660654398393079575801130303204955970117226539814002027853716582364545625257867896911490499474953360015503432787424341869770174567224784584281026093659351657965260479982885395025243991749169604877831577072985151826839429313569328682711377905129507715541406704011269511669892425748943711197122701837459957041795371716941783244904776927456567760511453832035056856798518562260632467263905484058035108992339721680226714252794916876800675165891276907780667113031904457043486846164805659356469621962997808903945415949032903760016492765536308364382770036181166598580468533092629078873496130808985971843537107789037920642941742762219907410839372482516426770612649223123573111014668871108288249933755240683074402476280886100351006360189335793783995990169356466743470539388875265634489936447338536543968862128409826943942289862450604348715175014620332239823600512844769316418151915657665301032710440552675072718111762102980638698055903976539859568923711201152922224609791774738450481566911679542977890945748821806646613761507296557733952223362102080787296711223451881948283360343646445720267004146262528180181329417462639521288883570430277345287706289999307394995252238356092879152937426455489309863002764060569351017541500493372423025019949490981921145313605330839652453966290647377434235406835415311144945471766987326815120103908123220050613296837397322496423739813204940450208425931085465177168618469599742842892839820585843131755013903045638543167531289598422642864780828398899824342648782395097505175442426096553590006186718551908538062275841811575281621017227908846181219850344951327560264779445245111264846303413936770587598090209427825949231192571304978121407477886374996025234056610404461455506317740903585469348114180122043927218288429495174627528508620712436243040484139280511048087814369662654473335873752096111239075062375155551019115100640238751608081053366124248534101420258939407290659870963724336280556835294598315645019903178885767995534225674410011637584130361150969082768668305705212082475687058345540911259375732759040129287005972186754156402831259296388633217633709388508692897938189722410244857754017730549111586248885527229581420488130000683852388495061990659123652205252821411111534424297740505388645635748536017612942551597108644348049329752217094340953871733874946542795812469602253022419055275591037007014851062711731821463876388203060194286449023435384778155678241882724021270260185162505203775760803608524713679169780661353351524796848312577953640601570642339264665452071923497854513842141008926531762623840941407312569228961082437933614662951954716728206548254311753991605439230317160022807010635172431073115298416550397740337848174861085999233991060478023236670913266864295569522796777351837800759315272507473402334902623746822373162718208170064750614367953504025919701122428716799282031443959689475403936247149953490121762711163894643988412954446404148657413044886735357338011064331528368736221314270556570999417595262704906189628495010800527801652401611408326052337057401656470203597787486693050622480786811957507262273670530361921868245626608988136894648251955765915811148027692173610463034559757305817916438748512528729541134255787219289456779058209223187744693062887268431392985259065057693652769842762751474369438733792829211863743143909094899896548447372227459091563918908178255956233107979243899198086836845245490291044543656240594738701428078803040671589677869807083117522865374194719907771015780488803648461720017232049060965671415193990814942987161600404910487544908762967386600630690254970145418352054976569604065669172029396240822062152071559731470427858819477320959830622389089116715612017330407612327840134100341758032663057407367311261754549102109748876669040733655946240658607514197142905488137493793288168246023148845055476436484754634361021359663616635881144257390249975453443009892907126129595565672725788498051804608464968680549623157025010584261151601229934881772983075940311254321419223746510383377633241188053836760184441507911918880960164567027318913956390874026765165370983406009729000996475922650331417458850376499409762239698605484807704346634054285803479105947614173219874520809273970424049103401216691318726041163619317443564708122494694844911507968061151233938297183709540240420067445597764423973989075922924287437183255480172623684866153477932728879273634264516318512579607160343212744032256945069501773341610392694819028084908985442784070703722950207847971189617048794683970959285951642271028617652307586268862198923553329716987895971629374953368139934972703597948450108038415665858079776264701371669770535798544073572847040387349886209681116477142186028861981587834653720867843480558658663344610963412144371968230807291126070403051820095111980306798790532208022774415724179095245314670672210972176623905129448139925953880291595214936037410008536451629690909654674481316109143866613162881035767807640079413552802775624909532124928432673666161674996443792989256941153180693741643046630255055367989667592021556778527252566202853357641400710669924101317428835495694095627152210291064795290827866857319317356714235789719078930731413642074875275181097348553072637175981800866472759603201511489898224070507351696259875288058024735542287589174702686118039036905760707996805887303281475708994469848395643827449387319990546527737146488074880410457636483358105826357795745558982336077919148411829635851544277271729131983580946831368409395305832937952901982109480739015770706985692054754977946773084507769038129168589444503450390841863996342499911233085996224068371471349813322763162699984899568344991149541096888574416386772234383240727951160097552294565797863164603050295601963019732882913398016161393248071964955297388548470179442474557539014504214336009623718467455605059140900810225733621984129235200502845140216371074353563493332904137698129342534575589072347292121384206537434734795260742272346486680184496126253554092073263411984717040694122595658634975611634010041509499587257979923845268727452379869966437249437703031054288939195203139591784494049905798272090999791495418996724738355993848022859287489998185481466922931267449380886274702881410316394669711750620675073857305960036789685109998444700950634028833097007514681317890866540193157959763892782839541175309613660618270610405317418799076117064753481993885531906046753615130927720893496291994224093672865437260211209921558823387842378921218994896208852325393311146308555620482356695691003862778476610951778104888339838781372143693730217432277710214343693030549998628753079630428691666072152105862422387434509207795416298469105418222487545900373944401721555929560928952342099050790771573815353552666671820114868697031805563050757031605567054486691818836996025405253572997826743560888710458370191087631679353421769914869147015343264662432680643952876392284506550391620428598685997102187220556298867250151246947348756012754009847815855701505967212267449357477741415999522245372102733120409028438213931323147704776972255537525149213829673773532918039084409955986525592147875330143135519654932181350969320046672733407396158559236253316982727242880010926627357208152255047338507320867356614441337682750334332380933534238870405644124157543957362741700675770146284766830315657000807593441489017869311951839723505873396613905435457478896379236986956750990992194190384127412890320876448052500885303518418872589838508491774635265305942542283041103850499077760555015446387161594135661178869326360275776783570327269175096169640894950355919928744402655025099400387551819511787333991788036918496692985676176931133856240662417880957701890045102182616405495190842550101562858273382473835412752460519898534490729898416222564769413143679602615418902793469129537987053221992229784652247429034146797908148032492108031130721203962736451678433070575776294036093436673110945834468933893207602809481980170282218678022628056866043169694004540367468630952704303032062235818211948931567854610153175698776149747893728552297784068203465179286826364859007746415554750894879487964960032821002514392484982363145418128008500718883062508568476488121051024934676295295897848506377402162481108816485473301501126259792829015748126113964230000676822631240975570910500688193395207751338643282500210296080718469922148452556771488511292968847399656894632270429047878545330216362306781211137097467067825123101176381832796998383667557429684322578040531736603275998287476207047181020987233344384512251882678891937854715750755642210585861619906411011275253564398017749756751769260197442075632774965486017494970207872874302655739383032898000755639613648209324579474317850353163023140016264645741041094971459745594237498424094274327186354915785080876553294216987153765816323081048173885635338629262269385166856725319695500820233477039373285539243692351608356302506571308937776042734870946085192750593869236539194965610067506152763729753983157460355267767971444889536714494281542830125492857019806193346170689477177013531747233806003617543689535937947062174271902332577047341752044457186665629360696642803195630404428088544081715104981685810330244238284751438070888916068566911832216648307392105827206422096932268772233484548147337804444388500303265812053527327545488189367049662989149975968965486187081355062484062897812460840057835982716851455572838868829199573783784804965347027506071609889297961797885843633968628138862489529045793306992842177946725503089521598165990837801422609686717754819768696739102635588055623767959972829902267588757306732600182942589666725007868890543051273776261869524868545806864968903260097779305149747473567483627091580039290290956754719564528386243133275630461408281831650840169291925056063131859291132256014830195388228583366045959335316362698714471435046120310210382113709295425094977090436053761087470997679472459106141624141851108469534314483784922535778159037831004420535696109733909976228009352580270103621426558988303301550861319067519972717031536380211997457087174069863463983305203144985995968208521437684451680445347217442340159958078048693540926943624966546819180970587632879453125450536906734828112583105557242977205799723232377389601150134300638698570946550046656653775457674380915263679842343996721201076990939721270760928026835048334516229519288286670515165111183064676038114361237669454369771428693877411257251617806581240283153649773864481335535279954464574640058414880739828079354704200392100261199702428481447960609919839525230633721457165927494793784973930967335798053369754133551319846502537204979093500060138892392514726421515104684099835013327553863163604481911945025894501061333558062557551878607452250722742328216369009376586606106061613817529381736090172323227704366783107951508783088647668118814920707398651722178247970365235484564108163426121543119538851516074592523635810537992808544304394193847773318674435462208572667600847873096005135821046343576369594448956853644782426033799039068384612110929798919369098262916769691418502284689574006712137970813557561544128654552992494015629928496278749525851119181030546087968418751316965686190714768985376671268273799409848550909044965910609364875099654165683935537031332929187103043643324561670383184825564705718461097921984410494751953846227391752822014257259520823130668322509317037352824297218295852760876415813826106316223973029744033208832494475655837295317079989077806557471013530388876995513236063798174186249966237695556572010071743843782128095634636008580230118524223748319902011156322270899103817616124962930889797481775744779431763446992873307112265799573217469972136064802389124203112755979901853484701605976917986449689082960338275622041728463544531026462419237725569947672576359819803278175002575970632261565964006445761219657247594460207529152425491513407394025254490957460791496636891704210083831302347840614255402292843859378427217406706327928211225659657459816275284083072214663760575923817240418195100973624997890782361351811956357620590083920725090921376118390630512795849684205815219625859618033158250727963556435472577435962464451477380702328997355613456303139450372730855601455242441154045593489534643947835650346984986932051841365767605695368525651196677428179796450221243282547222363329603913839367716207758017048414411092163584579346858857516008244445944291664441547248426909425375331602167057139963297335983981583002657613220332617128107698754727698094630508386421489914624768490703463961068577538059094579046564827106912431273587463599661728613643636009635226100646954660088511479541692665758161206514402583713506207689091962255638522075843600346977058283868763373557529810935083835532655597682571057835829924472915007301582873098459688319043723798298397170954279845297067185867801741525367860317849778582012890811222239400136735544820802532572385156075162933359797525389298122001212633410289911567826636060136521552878370989937817670265400216252187739958509583808698133583854849732851361676369196263171626836291718312279493712581584929450984327050755954681522026577015819738456999780582571917598500020455709762401102095129906063946272261956667715940406839894223671455052987057200644506813873870242291378503352432024507066890448567765328132241788304269161630261314859486985874802689396864509018285394842574094368940995826911008607947962594269715334662779241132490284407122765847989326995077048065553537788865167622980408848777978281602159427043363715394791453220132443883279433183359971825758334681527552998553836854055224500357638615008956317598807269779772266857331235429084237183805461364071012802882418976754661100638484375713992329624035911788218602985567925574406538205462155960806063327718112375016042888462310775054208773068735208865332335233070200045608556588160705371054685027725616420035684099433788059132564841680900306225260305923663063970204404595190350121934944440082143916921714775748896022470760115415876570681307006161168473279180310882012376763518959809979338785097478515651236145823928069860653497428869225123049553453664859322369426827429046711518784368623729877375955352046202491342825035831833178059215003943148531216033998642224009856488868867374084915667268025951492828678185548666936039118683590035702973814697719006879557090319200298754563104736060033619363602996248792500071052889339238269516599915476866339134351303695290250953946013661291844148078509553404466901347290031057743275992398258458887193626775389163106883079590158728045842291457020773523362222308401361138997636286512115063419196745650757206852294268503039418462923882080783238343565616093749389554370275307534801481290289676946018358654175431483861016190260809699472035612589644502334698092623666689990775369448277639299368551535664863213334882155985934453471834690337978312167521738939855986552171575023060380768636976721870904832999995850975282846701601699573512500195647191027930911627448387721781643359475480720883839873448207257976832761648351963060134394335901946453298509997906026151117716955721236038502612306516641917551754126508873472688805356682802162961770521545865181601513969875981509672557295229792967678305809102482145469394270749980907916632771553375407262944847203766480519606238604047726294055901641882904485590532275848545602183853390878415829232167779728122920111619400033690488430060625366802998593377326751828533910437150356345130219703068712490901117453729044007886945817077360699392161855730246358162336608374403885971523923841234941579232657881940317884588209846823688792875462638006188088948093819863197771728285622810888977323974663248622247448583126192151570655632823213036877700356448545334501609887172803549608468283386513439036232734799233342794336604818425915145197349507898678112987135201428246236694093849850070930573307644771113712175171041821904974563140818166359506555204699496499708440524317720154926349736955470777586550381066579139553147107391196005970866776427162547199923173468708773919651968665623898048206934353702577799022630969465382792844074481629685205671140623240023541595579867907003699387124623247490205587575674622636742828904500001969755391043644301946862107484893118631912370219878504661563016100020026405599001908261231091042223829501809196509792725155169957385765972367542083981588123614235108169630234464246000160229910460498557055005277348981788499773134729516352334207816407072983190639804751512130856960184090373112428469088714659173295537987169876410205798090996951692853544381313100067619816359003129535183798822083821488505449268265720244730226911087828028516870368702035364787574574148787128063320543969767390151295424046769313067631849604321072179939412838876501184479787304215587235059042630395114227038103345404440690597509241831522750690024656675741703079972814466762623952370282723286874038776451261654674553042277827840556263242413172414674620107631100918118992249895424826156034267720297279520635101740685518471612652152656517465126074443065471347527418998689226111891972020688118243885012473696387476172917811340967758371597198484911364676982822279433588104949801695725420243034569740539391045994256812547611655967772330879572284089677914348684852488992939539496668360841531436922509071081231385151636012590042679716716297412932463815802352014454568056368227592890297789819316985224116261641132218367603733500961169798156841723464924194853873007409476290318453839523711849731284904331435065073900664351071720665811375265568890597979227344159807967360663272030017176665988338968534758912396309738876667142249638288904656739404796193203520283324706025706150680533866152320333807048503175353489880108316010924308635925313699064853767823086677728695954236305535359081952784305324360540833021621415318060684276912632313377559523174063492966487384981809626608851384249589816553979345689941390364969395475373826585281601553905344970367325364656066054692294742555270926283396652798751220470730883396921631688243296145646748617557563891629887957935828432364192574404825574458121008614275027794366805036635727089316502015719321559325447831168950270333636292220029863054443687656337964062024705069201166045744540675831314390405432592751457855795599445817350934224256709477021759067364357506915621713707260490100472552480424409461396225651789614056567415694524946389060874939964104020540374762862963035380879244589293614382603897635241945308304557666599475801166218861807106527228198907246166745357116193531667452972020704688654117987990006999966613865978708801939970026609015444447977874308419192142320806869968632187370848708269464664178591887242121234444035288124848670773598493476611138641746524824981330656679031711674018667528248313852577723371848230049295959214862422496877310569575980566048350504415575443402066166884426695602449709270336043301633799418746798722690550547689773343793800323590176994105280744200517833216098092193018654563994377214324848917720032553848685816075346566181602688919354207800341640232882743259537875592033484621817013586900587434493774362312944107702933100499916093503238291286117866064442226186440156197306381818030514830016691069795170056207610682115442184801386137555761753663488004701375317515141061861344840752721321914195976961151814066000431196659879604261865428098252596064556660815518331019537022548044620279478635878796256101177353852913465488593167496158442863161347025631584536220592431563290684346755047742415932901131745006119472783900938016407448014901213368373200277044214446826222806532307271814049536352310545833397056698136059826937070367667757801461710187873828059179057328555172068007413431085445712672772320693944569948851004673006630769113402828737306039835030323716618078344883445420119206359012338401997963329656796206720193683365890556755276826883637881343423588647053318105202319496204438446482246148798526908245526769717524276413595509961315720731875712149325638498225626896531890994088175933213307053107775812983162812228630277701973279393150383980761182972602949663692436891783401117905295274751198191964595477246128881206595402238347505337570690515747332821014873067034596063206447715710577862678949251852464636563240477135548500290454072634619982066115747541458247414044772490171261347789154875030429020813221868113151140234393879221383008542974999556699045873887663881451217473481032059973258486959558812550218394527009674273066008896819776942688940576696915259070094862652907749700163983831335947362133476266356096160648368537067755305686916778364304012281234658832375114580299713215827151888684098223141599146864992950499529574118791389176012856693103456397005370425684214745120819519883475866044877363950205723491308731825605970682637545808162072436310662869496022812776433393086430263726414376869270354235831238013464317077118873603029507304632250829270631565554896617833025524050711182560424850520775265168725794742548840803871831023207484498270482676752446110050712239391045450686688748743987440597079040684058099711858302749610459306598705860291667009095185180585814833356706515382074214416397029252167768701314077246227532714085306111120522599173139234925205633365613901495532079493455811418047960092503057859348225537846832112534831638474840367176938895589663524637950778546673618656886465960731777690182899268802255821626148449472763469404249445037590116364582700917976508316657658723332274232442659875703394780147500290471945620393623080254814184528161706810929052164207963693575425540369912934083105538164331318512634793485806763131352058459469842793290215674633492848141942234792832300593565544680311001845747958879737528000790703199450073898613881611326846908728920399485328001296816573335193020064490756723753152389555708920063819167212472828632065234723331524091208557333434759628004578874117531782876778804534871640962009479148910606775418960966935062474240044513671353218147251209358473685161014116759222470026262125739727813519743474629427260491339914043058047293215625343275491412306884757297660783155657468456635167641332075203733488950919267281265816398028799541919364019346994036073607517812949072841719929254042653343141826524568633967439135429254985408338511823311178274740668655408349479044739500908177797596157342507351761851392113432964708062784062908931638318754835252820553456059382295863761716006083424074344787635399005178471184844183523711329729632909703308307693268382155975827158374209776998076610944316597108323564362876106812670122805195833618097321902126219484084801009094527227829240557813781363421066925861113605596469373604167933868557741267578837011160293047879948082226319569750358888997601589059569660150077970547217822218942333056455613035262940375763523241959974549581288124270380672717858926748123571628440852984525088279652059548226836637306311319450247539589954545601302137361476274863801659995013208535434845787601607678285807694948341637620609922317862593215751731540929456345288946336721726684597296979024004365080614231971175171186076404354716517560404642073060239945468803066613781599257405431021136195974070554600639261535744174734651393679891932906243460236959928516381944519130737082276240281034917377467983324448020348119446017480633185299296065656867251523771928388644137434289204319642342988097354382183232821080506760728684325250221854582279210253680830074113258282939177075535126547053906892847797823146745407093407803279080759249714744985650264043239918074997766057508361082547312146916682476898977361246291616584304229177452641217082322169104435241801903603171328341607203178745041201946553771533783591436089802967311202310929757184619864725859405506439471198571846367741204151034562988146461183114279933078075306992369809635833502820034609317517696746945439850705347680148551423896808405643554968869660550498943069765839347352618831878339796935543649688937357223664193171029984395525460777510510175546243501498739719984883312108141131817027987781457490946236575577981865067024616812104603552303145193318259278187806823188219877047089539161885293554965319627815015611222473367343404138052339658928312623078546351629964136127372167466190446170451980347253798152380148925587400906924563942477818089739943715802443711219253821447427330509951681753706618151833504493886406772591594644884692037829328973098493715155308677759369839702326222575143088381648562532269756033421021812227893702202659699012594316611929878056193607668739686086627768623519818642851148160061188183483483786205471075475010302806426575937742271427310812524604804508313453150866286328247209339118159834549306873344685940975483981405304683341327861088048397296175167628819376988711677793238834672023036477575245425249403267932184099227211526357008466782436835194833174549203980547629777225612092828111751064672653428125020662621390110753540336273299953301392873603628820076516775430388810849131276819171753447614593853420309782952707735538479225365503902458287105185816644334398928434734542777137907109562730615637963652016585315466192721293668277275064051195994322453408584432148322340060045864589035770761259507937631415862536852631193794461572699557735637200668057875807737076156713736255492111619168435158831651951886847230290327606206165240128661696907964519381189911184896358136219361751194840624771719465596744573605910811428729310628615306213746010856167664125109887172916432144163968876899116495753443745506620204271764414522439119661996108626021403570890607342822258179738144395117936662126886100540019967818465632893415952146099791535040658677434765125523393502698272848673093332209978239229346132039645573614367335278963444143168832686675145936147507608997802376980656531210272822429271058751097780503933746818606611707183725034886265539567961180813197607414506761182775906464780193934174353551380386739408666101583582917962310592809978611001061204370709440235478189284653571862263939533279584003658446253329769906824002660075593380299601716431068693340169966700759852391828006441179547335365602652598376772724118600682923051067225567129830398375011179849645343463281649430504254874834306707935755246770189579208194136680563052643998390366268556818160205110746701436666535529431710600859874949633991902388396139198041753242239120534374662800759951507485519969330894571251071419004213135593713610169762486618407269051581009097835354115926402636004505202215151863797942617294526289312145853852453923712453656024247836852950858676197378449341898535511897709781717127716879107701684926057057473566062712163940722464331249522358400659695354754102242461619467134370007045977117515234197270267281872475506623514699604671900908710815002446073595701341859756826810899569500629781291361769502611157028502133711821461637473306151696183469401076449630140423961878614666834994523809809308821108916600107825111952743594842404228332633867325759960348994562279021178943509575405333582160117443653897770996849539613642290078999476467243687714798730324280432654774866492768294716951481114864502020026269528938803849458043989497959849834670711975775193773128226724563080656514999545802105258155942893949598742740331472910993763145290366514725138252763796022954591170696199987435871842702640136399614608199513032808912100211533899162792374568046323193492955816299003607157825501934059844600072630335701440160456230688944214051828029878486521696862487756127445341916800864597820858062198617592969882473753984582157972173484416237176236916416185095463912076623610806253765401687245208690990759640016984045861165905253495025520659584977609023075970102311413967351172198243074374219929039812734018880124198955333636508268509627208104483341222393090419916287644028244307130962733523563750296488977274979789265414915467651836272919924235510709632667419339763462372693162005991682749870808785393800715320483940650346055639451280317187526184769608881673373060223936568890425214910980796804497203044287170662728776892665319889198341209141840714746833537941721654045985801784542740282756294200023551295240550235583454029941295069056229694703652769959372023344548257657172264154181778961152541773540559933086318640155060490266446721458606191442354995611653057364687014279575855231299698479780135015047705110065325990942879448550735033542418277754463154309483387703770872909536605579983339326317704789248305637067520095981809009446560466605733089160828481709882831926427864072962230152258724542104532430709098807681773380385351722248171449149119909115978290868785791844967411993659450471074780364135311899894376230000226312338309997924802793206304053773180425371946977439615591627636462623256246694055393923680288820249759171203124913620750690567027729604410593474917656981545765115028765790435019043689422284699083167783257002695519720825181886697605008753422707131731655275661227673973438468428077488074870419441357477342060457241515491162617771193502733457858197705198244107495843756245830498025019499211294650129738272746078592718310334475950017481273522910916273598766886413004142401656283698887318186176397760168875724569270309178550371577280886381029493347616039540576804556872571998158890142204971767113206007962636035492403553767806567979807959796487949538255995248312671225272715454841360775576589988877992445612082150319802277826813209975987589649492415567665339856865884708788529191647095655023241273895413257389575714319837304513656307511191268592560560816981262483534315004219409977699854493604574890291180742970357630642659877053622328448147221891640718274200739504171139890109005755053278215863161450650768577864298617673420744846640616675577151539613212683417349556658726337292974245821200264331169371986683076682337508411697723747269876449523293623917260377815036906026218263944549544486794129311578990894730135340469177115162912050448724811428887552141831191717273998829545503694456048406853789362322606511130194135741745942517852060901408720338143378948918858249117027973983525292639292643571692190320614982153512531258640381131083794787460451592864688484809276303400689947689121051813472126254104917739175552248522813842252788217532181620870716257182757824429112447776471875576024386675877822502605729384132376863171082779066681208648668647176114220734869159094555351765247903340937963102288854602280887693446644058644964934415962496066147134683326505960978123555279769460366991711159387266209360908572028585011835607871394435255136754969731752776086454608943470114865137384640761322797239385095475680029144696161806896852997967571524584849435113277131100683523005350356700097507019217773775161314304009210941140060604488988271720060621125350091037051819008025885712591159222683920332174669994316247705413770823318804392654954167286514467895066350441396020530056311539366054500849230585506279540297280228202167691294797162419878189975266063462651032215595569317530865485190980497145844782133042499927575135969481698938690353664670292355730023464658204658436394022080102847685759166447501003643243082526618926186227214883498679535782493266225641850607999809138128940451918773396577344000920994439680798285901443080942376379598914004016056940062819743496039396743833805036337553520162294870346629905073492125594467146802818467023012761442914414361110876361500574415257158108287224080434387257550143893897640537175057534129991529005853776598672488891155804457762977852677945026763779078002815790279472221553183986372481907453398228816348501054604386587194812755497209891141129412789961487023533538973887092645393046976440789354718515276170824184042732405334586183299467411880625851620423219443761881381701282426755004303407718970377631471537319795582258190028308531953396396121536587322808313796724148617682512470350640933099977056430914142282117004119659692286041729016569940824042705577951394147350879150814193631482702595104148601764040517226710843758016375216278781055356211905312186176329994456404074320484717784420614033316491404132836989002936525807540548885676195176536254753605368828352631761272383155327611157018320813621758318999260473550372229504678422801792169252103285134508255754334635003951188747974281928222520349620384904851445165031452611796304459875113276971953580624145432242500052204773717277225586018643662524180090099007439504476064593269289430051141252821467785971232540211483079923131640619313139868457396254329209242637966044072736872219654406360877120354345216466995707291262677437163827637427408537266637583436213944666189920988623439339314904206386903516134193541461158887157741506951381149968916122465077258056343146647775743530363314286007991800813300470280295963810796345551762709372913285218525349231735639356467333162750970138874066210400499809140983821203176781589274856022982547271020898838279942832622843552054301526691608762917585045277847787569331672514037378341091220783002877036255631054689115464856556745439741513289303203301474912414032463492771028620655354688526817879250869703551720928843443000287492835688987061589408038570784861270695979449109371131274750643466080214692929006229511121976466971679263187974082534855259920954779624651853264881865671742577175668587122818226738499148850069469704039343970780571973954567009626749175140611388796308762618554732054945138383656135693501554446988063812627865441167316870701152879404393220458469214432501536410076088506517128988719713265223041044447173119308207710631943710520815905030090409473093806915199857526818846832770009981512423690041844703294618613513874973454209156297385085804855334905403647970656172769801738674207868299798972646576820436307403428342043941768763215464993562794386444703579123777587850552790969997164268067884742379600738345708132020322551457775424633254056856177301218985302174534207841077523844933355949027278749551002530687418603776637318055956398392347753634383218590490331397162978215349593314183691409336295117982511664684301945153397592793387694886786648312878064197745368758937934888481009811392644384731687139577665955171408378512127328316616603543547542847100657315217746220386563076767763355335853148299447056055923196185007275440026961239536472794140945040036012969075163913498277355773056527927216396403825973099503242783149312588032607001188263559565094873200366780634688253343608482294664822027258844123107372532370645111005521097695461072530339543092421405309741988168546224628241791833515238081046851660361360664767700327072683267244011964272961476847849813808939727556865507759354702098850424257542550452352191836795473471124078305376805949267384350121471441773904610198971465333232941986810658366115815399427608714201072703118873925966730771251213528630783293243856717394966840029307762225899805747925234400455380295467154306679956966871351764393351962656958456459270611334765907104314723800267556386207450469476861032588668846105051132875149263860922537848177188142507711525255925748915769516692126055701154512069681830012794276752173386888844407056898868792005360018899731785950777570334649333230773786786413560848832985812445619192701304612553856666640583690158707210788895634467078989642864328568683304380018248616393683589626846737526254237998899052009199390335184708337522855270424662351824671363595754410803258119834967581825745250995466552800500932993839484688522152108675917659036676057534613428504679446856984414398059234759885342157195028400357329034388665526972532486424530370178074403286908213917490512213973795067169723698653510319336010469067707562805881675495460215797515563089797593959597174584144979271494146987654206985211387873240690785801581583393942670949907895277418443853376392896079074882897062266740364135768815039783247827396406439944092445270049918811071158474585626285147063994875800353659139216548573236271193782789705542817343859512863997788793881777228815310025408173404734805794744362853350276329197325938889289665160425143994362581568152880289070899430384146855567468023502472042080111666024220279996025142612018360739903476967582521955407107146436277260449509381829614124674270937755967400200550494218334207776322843970043102768635605816516644750551118189843175900237121583358057416787276730515375106666712357221851007674470597036297153916613583406829965006939223426099774567386528986488217563862301106634866521859044656666662130471340232742479564735928773392605762625504291930037599740678554464014966087127974856054727580256545815850867931401091315315827361339218307889905925485620689458157535850082066335476198165893080175059754170384482163360456969836906128378035437116878385293732341568204169925697301359544070871375061476545358716790267520167679806097161173194026612716644468965689840168766716893966665624535175007143366074947811325002977167928668209810007281619792317957574224038187190231351865369119619252794116825179314976109856707319907795793832219023129574327753076977217739205224798556133723827924776782031777220042635234379911788700170842708886048556354239161368864154649052711933532258085161208092561921165360135147046309003698809691023987018189159720834204766220506483189333608235266943911192452553939089194146400682267706391319640064747230547294436388755656545901378809152261783386081323547754750646952314206384913378953674525740838906555752657007785614212825985793417228823435220140697929484030299972838332600873695085346065276894756486722896127552347780930021415641480281324597763772949337065306018383598348333204362702450122414693328754663831315309847602256520390606042720773746546422616632837283675808014497112311042990183910825390983113389683217234932601162865720318011361556268806380857025347820959965523243960954262460055838531981336556054438764181757135664769258614191417317662701543708357972457294271977619675405742852738894717506129884010358828369441963760187287326598113409790905673692758582685872028796387802559456711350523821373364957258336746281353951384552856231996043311474837910615841344897173452436605501885548859734944427771740225997137862007252072762006295864715074288871134869571051038125538258958417531938571917409391200392027019688626406188335245603175333315443372994433605175820916072339805505935973411151216367895392995214443812504604360814915826698022006894873848433522393744962391929884202540376231786637664851611461063153424789788210773585257549230674615919172515968893343178159935881321836955365055598564035353500226905398247525817080217877431290100696137318733576994847916708300643858065265494780496924708624175087193382110393423139175527286545584048568797284352363412307525927231061950461583361099695939114030825953566354745240651942046429203845777185002836069237879404365638843020454599843489148493147858976794437563408997187497816698602420685157648909434976143760577356432865438978393067346289170995523460721832333157921593278441250973615820442212151357115154521934786281801582598567482735580469718130552719657901173891967820194808672161441094799839579644656122990615408042359615292870590874922524724675386127556865695653410714341111536633446564474128599538592375733735948972109542220288986936955621896300474761219499022138326293624079800016987325594212123263246643689204514658538658968401814912581277362516563712547278504563320139094416771189942655483126427974952509607598611267931117141606846628389738844414705527141021781334338870505471781721758460655789458552398093114176205799818703289713369011841020456720213552662834324967024225560780382353717689238657598894880148458906402754746131096127277745164962948671881062708533737330293314592705823884662905138320112216867376599677490200398539486513771872899301243215000654419881733382731740741252071806620213452776342831325730032407257972718508910095759218422313228882364052530248920866349160021910640360569445283087194165458945380025992349401893475421685346557930381434245709035827634904263396203748964774987776162765182974753528719320182371275430761833427053259762038439890488754916781792074785265316329080115662705663461882529820145396779516124836825670152240279635696850910234913412425578704948064100680119470450026460777566378916235072724963293733655367162339376331400607140948366281667462264847165352897675867906895189571275255189249714948231553928667962470731491694501510011663013211651879340001561466711945286707402130047476906933349874069650764607382676483423284336857121461774794379490611452784835057005608527787270801983803219358384557504960277763555418620105238071208112317854886071582514843582897725768607131770997353834552424959229617891090611772797825320561746019809023305150487000763481196376620786975008651788907868549438705459783985115675470484254306661345034746032604216538994225245480195942498303639961510923791206327042854811189744568121766739511419061920918832714723865165078517931909518096716628650255050372958763268285576288930233524419189425580552237270332865576290246088988809013802413026134276921930197507964777685163081519366413543636989620904482891994108861323923855718601053181839971871299351407216068094049289669356204828034860914356500837723252478520177930602025387482015093143361132709396661396784095450915055680360360916246376986008680774698888538596444018954289321247471418240885154142823476236506771426348181294956002877819300485395091567094886114055962524449243532562871922646624846796279866123008261416144111445356676532780576739469152747359456057479247173771132772983373285833845177270249104032896894684906928656715071392655517184539749796793080730411549248367215215030923068125081437976755444213261341866044867576986425029642276042745514244067166573783028640977479328256223477357848945936940543343652185676687070558806459626408717078271986002534920251571259404029343830009632954174379569250368207707341820803313934775976611219588486333736815162222914396541120990440891223644099522895261940672745707431108801133881186873630290778674569969501013674232708196536867052328632609806401350507069340653341854175514331026593521746918473691559021759744057325766528215403820917515447898191430259024500542796900930654589076098868582882244318701590786095546022081980940707433505791326505053897769040345802506786478171734758396754428028669605163025921237763307700600804518395932233023569897954059635844357484080216880698003079521550315567759590983184133437647207318366724891995818106115771236164748323987521953429604195521457575891818851075538259920644290740429890758266378690060168291845988706244245594883815231664678210071776056662554499368845236721036563202963613298907393895346763345054382631408977380192160837601239071959862705920042874694956885595963332276745056960986397798675936635064078831703920082670815722160841192608653350500859698729093294301277220100044905397086661689936087121138664558236500213700374162668445202963375750974843041350872798014954712890518086057398009203439574737818569144358012135313496261854625151758137400375678756690368026287010706336790480541009925554460318827813855272007971481303401256619113927321169925618588139843091885812143313270643707897064171586207338008779691553730247734955025574256430373770920368312890607300979394064160544397844238679858331611158192782170524381149351299504724218535097786382097125761001719051100568432839312869570863416683961980695431163518274247700172203025666589090259697992923559480201929428680804912262514338611246792201867198253467898815492857041963375068327531034488802515301149617843025583395142120791077398322781916511245909871339543083205975336361103756740728790289321835670574919932371372074224349775814155859158700308969979659921442438865237354491755190362242331203833694214163146766034540115478623935749087042966281524020673033867544393756376840606944469300727952077002519718016584570273027913641215058625936581771329595666177661177659494738970475840499966700160802300198374963912634743931640759910847540732770878859020576396881104444629060451512752174317177222227588091915493276688471112089488838826860733947147945183886227077798689392794610397259139324913992384180226879279600883408955593649226192220425856254001984265297838151126396778710412642625062173960364708498516443730841215450549675464177291950147648142839510093717489737433515219613925838044039873277124786728645531905599506796539354095239720287076010623565257743722470817215611048263929697266436265611396025807767992340040616369024246714891218898451994212809391790366308038295792509377518496139657689616529063448380803035541529275168994751636314435975874957732906032250550421251217028513230557157230043783923788561629631372155199072517202148506653749068646944245796226329573573747070813532189271341546871633235577697063045012402524635044030410507861513009912659394535116858914931965136923772684712932132197474225421950249138241344971054438882197066137182120273126901137644817724850085339838079797602349540552188075032262392298981827336676497973562537063278384610970558184921853110734184820086121100849037658501270946196541351851167960973971097865619298101875961637387169660749779403550663244127292535538671189954369053688329381447108170583257580096988523927542650375354448637999872977069124446068714568147942860399702918806997351856954537812371051184615529636608016633432340955988164345515313832954948355759655071333245062728265234533034211290050015178907232825105511865157822188995094206246128791336267442147941411727708840524761457542383514430475788383693096172182596514276751135322875354483136102697120744222710835435508940075214764980136735761937465294466955482378590182112371794036032284829116339000366044067195801581844190455347515112154437452709715677953958915721788234423835195023113111848224883200425240726741814647328680896818116587898632994512033504068767412749816037201358902299689521734339710183492674578427183495160604050753427836943046000412046708281497498950149131056970369434637716496865791485653613775856798542653022198020729304860280937332925098323255744410100331965981803025199141360546789591680362007302980602049835265771390122261906822918370450088311216297429762434933149021929556579270864631568023129349527673095087622988532494355589553916981749908429242103788365053715457818673520696033224483170765757122019990557690631133169983314647201293167839237451634677849258524360489593369116747316425197167713288364372109901534525268975285996820858571032622823715550242129659504431061211017257053287484783512324403538346867889723730519899519072962448868414758353682750526496680488364827537586839172923181023359633870286106246496586921473303547004305500478817344647926805335721907953304267294378650613572675272661802538423692633612373371256407923505362614357427928386219933054808686914664865969470313241826296753750295974030829781159716581521772962410242059997372737488796554933612453972029491504890354984927686548940447318028052815694819896027130198509231908769522500950398599360475013178521683163245019778751321993880276250069763387487033449024915877840071000994669289308693484029981839169459111694788319197278097764187700604826697162321837745888932268521031163300866324145006162325836252054573344321119551693004049931847183241693531232163704263500839323225214356320360434828974446535121587616340117581820335304698700077387143349918035329155628878204293145491343863302963600472712731071848016177206312780791920982281581329920193624863184038992118308944033050578581718845984266520110143159325009941153473310549053373965787531681263839045238107095550462643675861148360347663929398717132760615234516647632616018445481750965084902525373652629606281246306007393287699697985040330101251174907756719657329692945432965627302751521885237355771842333272353127722892523067434870441318610285255137112170815482170742469497550956634197708295238986095527211827869316117435593243280902883150715487151697628394444887695114929226252731952318787095812541931328261617123522029725420219848413265765501717423236585156117227344246944380720564512520295729895808982898465424377330290431305317251341442751032419882010456113620326213715009760629245855018945659223590200561391947440305235200685861855410057312062871284870730407279192197811855001150290210070782497187302924510036564886591915649587429578164655184530782161489978930384211118213711185236961270898956561802935628292904394919863305624966463178551739438493740044523197386536096982069671528290196090126713207076323841820977927800518692595396394622525233388711088892402742275004170058991035169368598487906473580464668878860653895009271920684930992782022101997957788420653406878881976783818982731369723082532216631744251379329405768721810053824390758881187570898323727802934245707086972453837459411592498550832743095231114373741787050603888484693780375382096031253940248080869458735294654549831972439248695676324588936515702550402862908137462435267873838457797954865706940862566170475386906306704455712573405474942906712827311280743241821362548663719489064250507875825238632961006598816812590953564795871412605072066186150160556250371266176961042997679353433345774166560560655211357966835475662898610359098574486068324158940715653096108515000911326338083418586938241773025222418399842618823330233592803607914461455214511088404287869502352326842029313040849808748814907652050139603980357966255388229872169243431331114562482589302778277925993226350156838192896548822804497447298769908427697628720299215518541720142252422634978866867732900221932722913313217155224709614556829046689873129399105336856920002699356383006276554997842162016576848991944878476765855760973818983879177995049850740496839758663758907023014997022515153306991946922969603001578683108717980811154277400359251808913454623132774293931595631815125142207657741063675893234140312507777694977752218921717302817798238307375248448217302102030521217810782363588187751318025012414356539055406092263096032755056461677330443033173327611727596878075647862248787820325797865868312783301556194844809874663486624359586624581052143112402548751021996397839468145339966188337557104986000157202261826982230492326507004428226571095181485955285692551014757982134656663639379143152180672827747167483189644465565519712853232982535700709658695777119250880080579985881348412105672136610873817662302821364326553970846284842792294541746404572468329612135961470618579247627505509405962040359605805257309829594704316960275576054333767600960285019017644750175138611734463415682257126023422130419657371825941748453856652745819364771744303511375458141656483974693231514085132563805221395964898945788962148036738748879676869817240704510255550808623071293696006253897612689822174298121992051609812407178382110776086469189429789999997281964559288046453560739765524591272432594788717593797761773216836541469979092448348553270631574081132092461020826093364532702819968835900711939440936178597925401523685055418431905899507332207944311471303256141683177497685586297587811581264788701359649588990608701362601043370803022835991991923540939730897599234196470675108266945339343230721305488246331207415782785092771821441530198421769849328088701671170004691858834782932301885655741060563346201735170396768617216052302283390461208610546287447677371665995145946512216858970277885154330232186487991929502806884676520273889481796019175575486569015069870193045034514134936018793442575005668968289388835102720946432817510093080889584782074908171350094658635380630814623652426104601121722752034489877339985210880090644959301591105339938208716097756441843850671159572314302118104291882872109768311930726247332487532631671033420798001359922676029164020935985513078615753795901124851834711177764990089471223250825791667019245314445444303350481553511276868569983897741163511824756326046439836620040788688300534596714339152796480501497502872994276706005219855172096026917026485942861495500051550018023126353633575915869294651532095030763496153156962358491669782915380991181688944962219062611255517924226519551773274969885539414575332897557888622585455293398290017311969177725563473065377347038042954444896910596521815752860519342341709431652962895024093647878897958576036182559050373684196197364682092838223114113765414614434418097580409210169374924950257508882930492774726330881908968981841669708353427693865688124113570761451104487006444866205866214798896135729516736042095253229111432652412714545892719710900991428027219664564975029706200008050754952551293589234935809506329557093963843536207997007958514251423162802385834789718654105172165574485234366603276560226230238797207710748788213892949032329559334929773655386860769664352259203019180928545334573703260489159320920299818462032100419074010344078078727878208823106048344584888900440094431438547906679374611381943959821591120040100641534211974906718237968003448744090287587925960609788295186579131873743786524394746235779010954898598363323224160662279726000594137799248619553258137918628912260283553651465593432996702917453228316291881472712180272593847273217423961271593811846003394958577533460795117910426253679409424640820170889229452828153617687716966994117442774453966820377999306623459046723916519340920468860003585462199605444342875582551713018799437813850673934743747392631069123714868095207705191571520076099712374096692802224634611328798071279576634537200098431886265218413200466148064220024545076791495324182494911404616380114724021989844477891592667893375484580613104869529077196011560756424699452949854021827425499774346930769358046705635856623854960900125704644207801119794256263494022117493261502712209896781519240929979542699123991832513990626588431958897548964146396988326486205489675854392478811046473484388954191924735318508365045792031924481081417114995100557378917114590270865104713100797153215731177621005721961985892620903408226661254823979483470190887257675474306824115855299813007516324254786793411771476814680162617974046473152854576322096206277635319748323749084619944750801508107723147241728993187479393164496657818519448570641597182534622644480485694555752260646090892355017541724067164403143858041681517779083653707134260283890656311828069703297156639107059588425350813569748538621850141879512857030664686510673641078631950495030052865823260719750866584204190969437880984752319291738250850587357048670375083079960748534952548874609586003414088544063545828759362044911192845611749717554305605337752314391962636286565589369750131937437724292549946355660006356421650276491100886278820928663404477143448330528821759008465294162235860909456550178421621584290782839507643227385579385714795210460632140552726361206708452600360942773104151911906766870279928994051103410950358433732852113435022597022318438052150601417116142468110197592781651442816439372959131807352016787486279015474120124573072639402398636891475853538794537555269724379745961884745398275268671085057570232953151285115382780523992054434727943575364760177744610385859475908530207583277455845731538359113322786549855469018124291963051971922815877061242559143703082051435793167306065201096740410804369856024810675393434252627412431370958301715364631554835891545734433950241416775092361487494742312258197717396131060759370130939778880309291798653687398509116108469037064558624335929349948706352876253986425543821353993755894027212175263481027750636913239074130476582081099931002691712363677824729007993696012137487774460054429057031619860739083547048694496415837633685306512571224580417812199667517648592763914109063803287230691160274463809412145073190229947252218484289402207539729614034761307596255435788487408723213594855450707388543955797463084156310369472982437657966296031637781619056948366462102465508785871996127783484020589794077326888140380272444763646111533510916133987991422743661621163734076860800539476321761427245376796081649497371468559307854823567574629663420895706967708213757740236646995077047648711560239830062510813026580252830566503810914280842626120197753488665291305648216770362187265577539253427243869611350784164184563478048258782573695107889701822640426828766940321145043407254057818981537504983406412147816249647069185271574361868943678983715075565186816956345597101379983651621333384868804809488863707199179117387884197160075198019276130049508058942544255981021820425142110982485287691519116994179328344765137641466434453170489718714884335062957090659157017241715471408707857401734270833091900091444066555564770611127235745418183504809185861873026399815208732476795378907560890123980529370889357018756086980036820553285418648307620370633507524857592100031596659065633069696708297077858303884301989071445989654856527578241620249861706438086786557282163999501921242706642078918593247289597923213710818551566594701905057899651766829239304660888004815081442076347211558120882804328161230125263716511774712890271178818318240684047192993916000774556592173176889589522732051695991270927285068042188536941572049781029404301422018785096677505573469662704146817605206037378064729131123094804659793481834576516036632791582333643670031520383453196918279455563287754790470483977168587195195860267499663466418914127471544953133346324136919317329279405649955555105870216189168317360263762918526659006839855411181161257514936124060103621166892341863654060604434263904578600325113010571814106025821791598038738707582680335150012185351667905277872375390503085909238192709544807976827776458273961210015149830829792368975042011838260647436334316360244626035900237108160831242884654035970427210411065661182440968943636310693384512672722612947373101350409489637381824008571981762485171535370999836784639725438677972062620681236117908189900114984082924538062395653664152838970851191732787769513143975346132125947919840175861548542748963853256478956667219073969717656342104006258383594771459747587054736918186913856350051246996470011463464218618778538187897715991917654479941833945691895822114684472727706876675872456227658277937983667338871041845745808694642025657818907253517642573635662426587459858928017592392508033439328695990982437108019099818723194679323004573592847684464849067944215995901269814527551173015753726287758754270746814350825066407014020901351819020571311689630918838087453689434270702090819115424997009375582303483103034529718756997197258415222084594031970627252993799816945960949725571304726805966285839645986477301573235381716564984560289801511611044300609800854693661818577226986636316982706609771047680291477969120204058577150723722175926110949232848348334515875360340535252852994560071973439769233757483546565662016026553970256364902541021940025876033747001525836503262195962758514238649163558327453058751886017768891779443687373135047413588732411720296855782164426259896660898149277874395361295250479523597884258562582501490039650943911296532230884596129485444049827291234153772993606758821061175610777383087211379343422417724044208562417593086187468372296302081184420426858581750556610520798933259166798620797413292801511322708858148274189928360750737723043632840532750530319515510774136445783498902532080138421323990084726446328864029318143075573025961036645214721244487234593316516981406095501659933186362414704139283403267233547626204646563841044884829677830425157147174241212274275662980124285910466697715189573878518854770038300385928134114463428450183667969050707436217718628806396970928794076123343423116497777496455301494120682616886438945499388569850625102700099827843602283355630236189974777846833323242348926175573988150682767418223291848134487345189898303733263824453214848834482358233946917746700812638810611879484563233823258171052990961764685463918959409809286544348433892979773709184325804213051743456236895420225413709577064807569504040445258162001979312538347609623126171804199335065688218157099175790692114530315951318810206298961764633264554741395837258114015653286338153957170120621478988104656334878166580311157645187687348448259272945352956596483896915226832826496601698478670393503752623620978770109741148197416515264542118627546939744127311250085824393178311209200204014471248714010726489849521839186063253414898978256188930754050270864084979110786057730934698712188271969390097750460027430055813208420530811619848212222270337422530672398999271886503109620757164814716718715334724281472212872504737222662811281451909983392570929722936029016993022929729679413455962070237906514634093936524367209009752131158339840603590217584109906448397964266596451725619938860966444448194991660808298601100728397267404625990320173561425036179452994285386681902416828243089091404457018950125414725721920189800329355024800387899015438327078185368686263033828868642186943443221657684615465227892895441596085402095319704139690071872665423534436960347525705684204529658933729635848388816800585895046613014796279822098681314005689159184061733625768372730568129462622295385922828131541231229636536766501819853435637257253799012426834713338391807244341882256679276249831188117158604523926536008224333575833162210782647662367026678434005930063284514615327953340619459337220397198811456400886339132869631520746469476169040820758927727875552736558900259166479822527788119769513940859911181764080533858100539565716306354991400339866354965098881184743769130584748577089436989955244697781216464517889616192800015140592036383813682612162438550688591240054496564644716033470657841292203460628421386438470459786393117320300849023024012462203356095520382780399136262913443259149180030199316615864163404107245999184458781917168353371426402740412951366326979047430053324870867230261876603168536920650564054267607720659079248762467824881330652943381590444637187767474317399474722581442277609914682015398495335917586677760006930534545910376021565124202449043087316465154503410459916860626778759842052132571848278424483724262875802042378997755635309656762454877907279351201690344219638120727345025543942058267671357725328522057387843901190912644604023538110217851338044800912423484800374460691583297578496394059094235048616748457652600922026077693544512194329030841729701672247841849975328883657084820005417012926181667861897765946905027361535647397930558487758379772899123155854308417639500380076369973432562901798923427282670019498003173926718139299160890880629373536677778974081759262654485203357549138494634443634042672508268889895801248743576409528211355779673764826418360268843014644411632200299729216530854499891684612200622997258818573971301837490978257703126875969072310259794869602964872243371301440189427487513174759621960554630313634854634028080407732764046050765873776046390238069322871375277528626174092876722517172688117372342898788985675632372702509826610054213322096322915085771601522089308213693702416730186831919022664415554438799627334270329461188889387165343603877247214666903337675076766243122929604206385741403428097948714021024288561325052874232881549112519335963646411654663335932240397966663912057100221853400073210547939054935635360541835845082888006899681227523947857824827002729703962966421786217360881517594866771489385430751339574669278484521014261716398425514521292710529400519663223519707588506619464975879535150864581864330353856745495032108251974455253013098330798177681539013148984591288652884205856082045499538524495068872393884710767253299467993739747264115903739578346124045970120327656195068683797739214743020917785486190887374399487487544313028550983396250613407959830846432422084653555789726509888207914852453404645667094973870599897134263910482411439149099848687847934689616283081658807736045594367109376392408588002184169195339875044121572316413913719578262265121820340613769875963856071973891915566738723636299633317346361499550072825625105098812160326941351100730609897512729117052121690232847871645845107270647547587490635115951282816318567289602222075936395608648769033273775903740481899158571429388068152112880087867193406645925104354915957964235367132703946659927110080062578194171150783840809783584435077823273857595890950461284189156277443353601236384361891001634683875102627943883612933252488431765309911966385630774937578878829354199216205222062558416159623381871947889173009234403087124663545972179164380455471274661951931162940170476208758473065009732824280852485238680884512827659420934933280636772262592009939370969457440291844818741748484626545342924445464834057073861507072117075538360447764533539153095526915488451043186856600517004084546002403878137683666914605733223258708450853451639474022957766509010149818397287578904865384042088312300358946158925380738979010887603480591014841907000711915029416651238578638864379854377383001394918254197322101690855166200501902219184919681018451621269566746107023812251610458576963335720874759769497598257608893205844553631176551539030959285336193595202267641886288330672294638421658251791294042014048632088713565041634788100987508383882559681273666940451669962876636857492004687046812290460621190175937941440982461964552445612089718687234014135275204505328481034167587020569322357597795134504064927992449276002991291628122442984861121260735738461358429159263798717891796272108991923796258627090817549111935948252715112988609832741770774994390265414387981667318052794881335935369447316119341264995101005575251331089396881731364074759936451842103389334770036306216562781876354837574169473698360168196032280953169728711722516354526420648142831292023990132696331179993087565995792304184171985606294586733059443727807099441625192858024261492020340192252556560522254418553401894305256512594162786152237420624923739662381086369870346034762892032054961939992007604639673142882913585044749055197326863058184010924322256240810842507151579372768729205682194868757747164288356110994326226521239334390047689433904863708348972430200195404876424234610264825016498802788001574120607332481997320306435751988488018552453985514521332131580834111823411767914580062615123873360550059822876859501633988899706777179203064052353780092271328693704528303242254002291434390216975786826886010742299784295213440136061582082319429199794887750883691155259280668652955875321362179962347935493528867107812450592913610278255913502031235729625324911832247969420814151756496547813647994417508101382960980656300384776627353932952512647539395206012199314303601483335568487854182028461470184629448747960499727455625002593966242611551649932426308293050652042908051539503773526586442332560989962491783185813520343123098700244436109772070796235674780583308001697548416513387716041683481003096638210226423650284485033573237663902993852543550651290845444009720646343651298962745072654771331438765357693721846766376436424334426190019527864688996753290451485601640666497535796714438886300529743017927697017664836795236994018026617379357804921175532084180759832245419070984818799271423788276443942453396913118909224578323616161723807364377347852036587923938497378510397181884564140188737833864794150266456963873827299406309208976363965124108734294046652934752025562327205977154786222690164769047140158008272503777073930084824932156247815343778466193500470313823949918351381603518827615747725021869040476686380900827349537729939716918785206596820010293593831039800787584265050799137300769501847380709263037506247483584679428834131504802279494098743325094222088230391535449340443340492198886455718457257753963868073443822188042784047518268374001734422119585014279172030662167214830277831834423430492299935499868365233100833139958241981936554259153778572492337767774352634857433631537294395019138825980113580348894527817129654081507371398191432151693352640579949684523612415838390952489372147044241542451280196901377104837943844252624033536600572709175474479907954871638180332451019345410513646614519765017851264275060662527193559275560164778968516119687579226335752677248945787063586616792083107460667408881475144544445839652811208701418072147258876832469914535371336420931728911470381752436264862302240751126035981265657662790658566492984542357900854613110619147837796469226185775451915405410738844867872029963403090922426779371475937007628906175188058544886103942884754117994887961908750525380689605991738596995504208610320189606147223679745763580535155605506309703596330717051861757267700915773495548992793051229005527892447652495208206189545486980469676490386509318059279318958452901660317436854765483186614257027235383959211273145749505531124503649643515599619418390804749544243726785557819527200789262932306962574199468702330178730394775622674612710762501117441285366637680672777542290084520369388034604223066596118858881901634912316965760364968630046156705600803238384816965147620737561864855288802959917826786197979498947384267492797672532058296665135331320175019358238718217545022476273700828165761135442574553044416717784472127200688031990025380806199244898490741766857761243103954116329622671866356786502182751150171895826127663958280077073585828790591612699465917653593225521423738124991270640882764487235430925799544742768562010353681554978052917544664464497385036929430737994463518024819814374808476694298625710160875880231363277693876784620259369026074645092001301878931770516285695633176592307453322636159657719131926685615055867572628356662048736919942636285685923085505142799133538099131564494247101151666077025981419616111184564486789378536344902054578043242128781004752073247882392268676994469933291658050524902689101941912058438580306929572290713559773653220162255013702455124754744874158833878454797356035983218503872500405326444786944371350962810338150705055751396895514010127720229691023644504534676345283243682701438530235029142470452045388921069906474902411599117270926395264757559994539988861156509363316093720635803392019927192160860046576797839225811506182669881993007140896051396755351678278913313476166048632373521673299836421856946429313642112434144178984261079327098475037465830082054717824351660672411381730492750094307622920270643962351994881294808789010289824542036640044690848271625530798603199958101317798603676605546672376160068018888160848457190495212052882624924259870029680797324571875764551764374282843580198991472362636442216908282890245682796712063766988694689267395520014076176949220497345486197094970338441821005158409812485101897579638477245140789038036212084648534165821808292677263433152084105678011779312884295512188371080830499252277285406558792533877258860757991470612473550143184498000769327770151210305639343492594456469478827195999137397058610627580303708271474673485547220723038661228004464529607013218646134937736621250090096435429588920098030479165557447973808745904205006327954082613739492030500619980270428200091795201572931904214687636719758362803766286789338030188906527667185337703433906038514787562769852855235727509840567301393250019371446254128035613386144729479545091092031998921853929958676599865120691638218206146125331010514156930402937374553429288357814542355630971629138199630518151289835413809783667496382433548558004619124284230830866261122128784756956250464219299526632030945227612810896191478179622062694823181521934930061557604699308029161625700197208737221975597227090340572319467479349046417673815928014458633485610795979819683160312036803735720534981980481019621331314831883445924325842873339154457029491723089539801025232685709405609173355925313171087753723928489384461378587200112887109799079444679525849530006040590630491637879798812440158702932910289086243744415023884831992638599558747645739032964046900056010939585771569669386420045619655175039565783094412397340422415722466811950619054492686229961205985035892001867576344647185459672948633857114244904651129700383817071536053801893265054977664327242509675087901953580543311246740691859433224971612092830139541017132331337284122030053104428409917348899120352350806470077792958987887897956272804130546698994773309269497297485353585623159337674320294096087468495608414496258113389110658639674015596241529001692565018183078956065127467060977086975413349972526252042311026902936340315499154990764202599290095198841670847904256008350051954698753368385618357560233436840021844968612639485350865505987930496601216752513835009679015647299513213358709245539716796389564733229934183859094643603854167943723574714379525787784254038558982945991646807008626525310882289129445941341748561189558493315010595551964429674142463970872751146191659438059163388064632664922130988990891552749159507563984434242571936048724500466738390576836119232156887949020523340307333671906390056744432996124211533616868796072054804070879083798034575536891631637873219915398546622675254152475837692775347672567297574441195416235595302696937104611863985230394221824604714772984582281951311757619384502380882856230010563655179858389755249012355045035912816620984609274618510179457403541950280622925058732625783279773155759658046995014501006111240607281612125406743371444146574032305588633647210070200842960717267719877799322013366926990225316181892709752876218068337521361083031092093549341746611645852240117635151864314163493960746698171610324666281575171738936318244145069011143023599792569565687659474518573759759309794908588598859527796303941903687657557557064692075607821132567270167528060134053684105525914023621053195180364324495458839696943637657769736315091661454222808095964279267645264904514355525537109643289885331584243293752487583858094732640884040222011655114917921903552563575853908215074847083447721840327796240243441958692723662660638535543109452108890161797088264181857470397404593752468863807637542292313235321883389761826976397982511961694956740348519088260373388309605441045571997354333990789550575358790556201054935872091739309598473869742466892332718404635354984344969822550639651197846817565239789763081158941788652575289360263196530251561524447044326723681342080621373721880959361135736367680362030448889359532859886661170272373111989940091950341967733309867366477854040041975780000329422256748691701164163047085453338481690375282242730134377791335089916964140623042628074350516518242093103901505077257443529144374091601687279033974356661070352326983988829286610132583252934660573011130651853345160671198971940798414938160280870713279930979896361369332767440121147714619362032800562292833097689112953493135830787530994911637495582036754058865345308494393432567496220142471723651700794380838478057423015147275385423031342337209607167501027008004049019607696146304887419948146651788498061521622546934446697603813783680837661187253834495971734215215711142272022137834658591230860298932342848100007992647155476475071640100563578045383490564000494523211733973157933747495458297386918122651852224551591853464255973044710320566866151570706245772406257515386331407040488993430622341476343501863719415412354018060952748098405158137599580048620724183164432161307938780589494178015966128206971048165768593866711779641215002359357194938362707631888241082965897998465419697706389092244645035898450560327256970686577083814647380536540532847055836065095555074589646724072903209849686880427461132501168761501971972344385481794019415782668383501544154023476485656541017366451819168507219777212713499033979824819714639308641052634424313964099330544826053567209063306263650599711201734196984889904792711321379230225702092882022443819736150733287853901224718063235429398158001633252700693055170591337497545446531097078133824413209725090702987977880509379272648843163409612764991554366112482007717298349623807139707565852165532179339778287829683576655741095016559752423777383383791184484573485002338263044774220455024464392406732678814614234363781316397891294974607918913649571698444191050608866865543492201019807966634793340143726258354984478173120693062893601764846236816299038867473986928925583369198712230768652172561703881866053635296009086980726460351650694027062816965764763952872667864613246576070491514405546849532232110302907608128289326097964307231780938256818263578033194625806489056257668563058150480085217553269196439384021337910659572357142752745283316232864146963354969965138621311806670301077449757715581715012850546685163809698006651853245184314761843440152536262420489347549906834311821989689107310079468107233118723486128177724414800406697883718281041219012208916829763959700509514157429249177643730216544767508075007765105324914301011663462958717571219522080090316057696071639502589648650009171504840233781915874936668218342910095505371184534702768530069849818921961142579917522631980188802352321875813385144220435217190375445098381147772750102760018744888635433440196245686068442110910437638264077713748628788248534901173622023882354486834290152070306650769491272707504803942937505052166217634569945267960431681248941933302662574660136641113517987815391203229930376774517816379036203821606239766428789091602238411412044399899479077444768011967740933154364887725253388594887595548781142920308781846732712844040235835993233686553864448478627235459059503410594883517632180621115313023348991167346624842614410242249182278633556921246781646166476309844013284415038384994265399250765591561402622868539901597095754106311031186380735986561384888262829566734408005561677509360785200647401320509013614477577317528239084122923565890983852281365457811826677428723558687241712979398583056785799364950267560005447768994052126525857726309756718250736701598044034934023877299534528753921283403219922982967239437540194129036688428480523477946324037047336793950916258623208163190964263886362921500198411182590273210982081523582713804071439662311977120672231847098470867803258225595628367147576808947871238590982381082446769445200580989838155746644600222988933724450580515485592360306303803693264458112380821201939195489981598782519997891639655462562020498354636822668545070907525531239014722551884892498916146338259526870703660024221887325413270655244857900261505822155529926479614098271262504287820300415097256551567670255443918119554568057071641168662707568264145731634149715437355918172243914728135731629388414301831867938275727828680380472778584317717173711058827196261699701321159972994709113561568507932594248353590362220386190262764762375451933072951976844752131154762581278949485044265852245130768853782338603351539499944928196721155997746410496602624053700569075653586785516438823174490852966395367214493957805157961276152885042651847233055332759182507500406509252924499806237947822822722578789921051169218020875118242617838241932511980968300411786489432563683280186741744221320511218261375022656426232480308658242984072360648370587523124256433255540121394107853225314005267188382333913266126874672511889674488308228660482813129977281281134956283903133084156331241225652892990134960263055045949394972399302783229195703019911164432932887471658168508536287295018346245547806285564993717680430453222352017636302506786196044686886518018599322600083607061866064964876782129635426995516614335356072629130846055538237150334029020806207898395750711637749458639497372172774842182727483922036632429907675469808051285033441473644044970293504931346064633134726689338070441957486477755124321549779637646714909769876374167162778537786819187652859028349763366293064813539223145393115202341151028936302172544295461090990188294422813739093926033257196907923878115631292090335090926289518551284994629003474404872317961266859506913637212981010523792635487229443663854547996128199107767044870590005374327787313007868249810607428932837687236069156888531189329658004953897102926860478048400129926334562679861745691877598920287058412620752442374206520432865076915603232103498126318733654776301554769837828760817628772753145523659161903117277234942112624385890855361763569796564629121731627340906075497078078333353298716632761076866632484725226482345877049494908885386861546548274238386430766245109389089196742039036287457145156516816256635741177119100126535500902127063645733618121279787998061624386985435556291269781564321951123238549410160512116042690647637309270030305301748852345028866637319099269455527285767154191122155801208305329015976305539649063087540219611914495236617621813237350929811484087919858911495049889331202997664356910749118355177627564464858805454964745710770078154636117583727406791159361722637531208219367899647485070820826053214191236097948418641291140579605850161580614662148721087715730887646310152187207577887058073438242246565611704243894895316808368872897616329707743572043899591593668936569028875602863371633522838320271924382914005481158068357408873160387036212891386587003438322698417794904471613295517805362021800859147235319884754844461918096365828574954368378659012216903441373083059881098127431870225640020163046561555209550650715621217992485057748325441947892584070381415228293552241604740112186676273092321732636936319170076868702617519440058303535679785924503380235336030346417080459227453524460370328283550649289304975521109392078053122595611464385207177345847749203192262457694768687921003568653088315493389687041741331747706494650700215596000391033479057945799677642056100971232429601856876213663736625553110452084210126984107099887170323270650051223026066302059181604091290973143904569290949703290913968280352835733188765787260946049837050343718732484835614923587481180413661607970832734869820009184559756211645224024570254085496094464399161619921000551576170247800705825299866541491831804473558779011296638693883118169790931438162901659340900302807145407717861675483293011742350902312730995988562399668787901429752380452126544053306058479760107248520474140431983339150180967983309367259797149335794690857726428778823337337144142850520693360515171639858738943032117513536375414943279285190724669941985082575252556740044269750665013460961949841785482876774002784153570945337791203822112361503033948828886009443834282845600029300966742390774578257299151105581130824530511667797671039860053285205233521486276830210335375300234957413953686534084156728631360888450902037825734683293192065728600685417869782902241064805922128354306872807156034971244778031198192205735296412450034151246147554515435147173671711924351935159176428332659074035829434033393369128466071871532948143535567064592195416335063381788792927517321945248999247079964570384795877585938561229629363849176256105362427851722298543258678447399526610610636734090872204678225437179281324252678815650865378741592701337106115630177181107193905130271362180100228047185914174495305820138932502095614461438199300691497540020331052822895566289375548151305362764501286416730545222178809214090507296352068147364870771223739558578510878259220261777275305520806555630338919873693795101060129163443879648554583173891492209966473287576534792220767210473222254488787469860843555265427485614332841188005800702807239453867885690938242673914779084135692317780875661888894334587894276192983003292619112702303379418353237121167974818078038417802005531139427890798592594355911527698147423686909120423572882887176361671046052086612627649662727890866011456441720539713088517841252050921348038063574805446353028901414082409330190916763383256283943750478869712439238239610626370308087673394889791283308013733214121825746556680293616131154730832380592124368320568848725576850177698824566125228400947063992503782661909118315729527753732537231491096473390278527899536020911739978382509596589215092520829569159551366821851270405344546733148588216707346673526493878341168288525733145439490969247782403395033345082979050726949860994444356202609764782671266882542935597623804299749941329564695080435204651978223637394307773701293935701149910991129931570401946341735782983258900115621746391182590129756775641975586246348734270085200570408680365397942978548001128065740907311894483679910271648631362117660053537638481772651212254960079983400660514902909078024139678870416737145772230615483086332664903950600343478291166099710110954092857089542128449422370037230749172540333312095125194946765924809440233203999455154400306473172797106661827465678367376772144568985624037377499184194338988737109483639229488715782395635033509679106988014740148766790037333914589732683896550053766458051201862526489719132566483754955128048250907234733593261033672643454528425874156672957805133663859483292466579567525029917416183917145377370166497965264505140990847261331276977646002259666876814724606289296716722167473397986123474198353156496208845543551801980118951314323606935000579143508981135825095017095483527637820146887592042318729791145651432237391778071674441404644344074842611080481416826796127300059936799492832778589814005548276297261163911646622195261348895166876904347975139254193261332218437658271534189764618570700348471087415245482351922609590808368400540643170380176754211692444300123992738459015616610316750156032164436278355024557212285674537145930001805477282338412279912306038649837422502284464569885882227217742999612982763036680971038135085659450428530648042785758751585272639951033878750011602635314175975367762548789563758049659019497885052603040560665863641675733574682634434175675279357353677544550385355806446041876716754018000463321279655430575292005377766355107571871344716853722187687490019156540381014255126113345423878868386970044101590496178341353921358275447412972732688889074407085349680591806626721730193250348011008154647317563916745407320206872402847468974253658406466541462388198970746714385588333975748971610312465514254882178179250471748346335261294422642315188993392857621339990961960486100426857812949719752128754911491850349751829027563272275741924232486936219588944173313066955511567327946465991447163583012421329231514533404073492960000601732181224582530868501324484111210701098600466827638652460410897814380553892686492928953865876621568468963175720777365004947071146526552304396327234540718362793493885767546417805055808387024128500370982700610149257533959483784521849662345652917526551349846456593215845431549827455677747490894403544849099269859928629427091569621494205008411759386494312347769776404754046515512357952857646412593119241404901368964369559328861166823148704560619595788174422630870073503857376483522728847479071497338343183827801636984162235385607463952057268398364617384256564826849434114632791843439574760330710160088312766815891947266977783861823352948307665339787739068852869609474809967347140068315521409290309918326254258900499057122647399602244235069013927689046835213537443617930208434956349269610290393097472786436425348820745012737999804055444639956274595152134244622770360571517935445764369750190669505518387635368572452970540411711081188835862774014444839977077099936925776769453140039924127613067763821428512797653909786736187471394933132851746261471896899823042622747137294486026920492559873757865339672137201248823214444060716555926364298750426732668849068834291204257296536777501607094036672200277028051499960616727669186020331149934319143710558813204683078494259493001632425012771557899001764517610335214085118726787293705007348239769831561461845075016558411626882891839233739422690554706716347826653441871508198582213413053206657320534152144535342105246217547453769556759164819869836662416321759780989652889396065486461021768130396573180809893517681714787804860012975023503681742577857850043183313712920522919703700469810513421478887674087649072039634581349207968513935513717882535007708515835966758806967641937076087477504412757444380183749658460186181322812698383966702884476386459667559004904891775104841992796560996827888889863350266668545128885889059786018299875839707752219254934011228416583534565792369113270316319048870895725727925742632032040517118600003071932080151070052792236621116776510302138883087400471843391721897961698216972458618051972233255211999668895778153687290926217926404218850226602412760706675513461020943085309899009408332848263564982290665077172766093114758575061412493302361564869627235940719231952745599914456941885045354355262601132144363023322396844620946417861105432934490682170659937141795623810541056944699141304818080172478819746973567849987013657372754865760973790842975791419872288241060834686332535384821480203521065915614088488034959449993598155700109505115941526939169249632557062512513127697484014674810146466465572559025545451796914935562800220969494734936069099801658718486359765017980870940224242329720140412012016924081258315005604357935071567241650437783841246661271000121409712176722673699693060347862921996623446416042284149943393529905210053226598415745753665230834895988608873751099143469334791572567381629967462177470063723533089772351932601314056000679929763915897508011833184610793939363851419986816753223351723472267901645809244680234097068725660811952569274901296353785410577794999418556662487611845203162187506117240664444491447755167916375076681215147711429134190756929304648981146575625986700579615066253754229039082316633651027355258126930827901273867061299447744370524065494379516801048932234938304589689473821540360412659947419158783353452479458565310909444612051832428096438148480720734237801024812463344930074661456434945198970877788166093095372163200136759365290614976856540970351153347309823077367176839657852498524437146211701369254866378743484328796245851306036299240094001246937534055090526462703461555923837674552091472024908451291705173538379287813093849584087950129778852619400214624489830744717178627212670502682123751868530141088667310948378874313400968997819181963539762620190654745483560715097940147712676873299992877142318020395084360792030070873699970052218023249292331645167619373630235892359545926384087035254289823595042192351694996505737823613344529783177735492174584120254461515345107804481725941562671366223322478279970952251293013366729651711613304060515576272378807683629126034439790464406955739188626479940735421661437015457115167702672058823424297857753544535886444893355313294412363709260611743109227690063385104218462560606770008003848808992573834771089032863743478099952822989570967700913342943945983046207491456183364622968349547986673343463179040906080715081929533980976294858254022750611860043542286832690210823005749782159515993863864696037881144848146462392402358439254478297444476441745061989951300310542259325287622442374885315714457439402721415912407551455728804201043913743003999727287418726753580008111837261139205692178264445324024363951353091127163814581472983668720447556913176857563757324969238847669427306617346165457985970017658782898629478477347664246688329576452583606301435560327325813804977517271652521517213227572640446522944737452531301642243926986160646020599819143859524816485182601639797112958529182696066168760885076936494166353242285110441619949573373521581803039918927500552086477760442097308237754798257324735160901063565198972067345519780248508756917442206852302234566233304229773069747786130504900072580769433681285940967033788505977457113717490781345544069179714268866728389942434271884842178744474042644637307484652053455313628265489559964920517553523912377580164135210967562865788672229174790240590667387060120046501192568529607726393731173039229761948026869865163996970751285703065275702083380659021322103442590697546278470313882748907010732883902923183144071518173539844423862984015109622195710646742416350275730095231508578689052971546667819285856485775557621273214529265616097475966306727128183312984371290645484968772817515355008956415849437952307156815055380265990582591514019957205574659265849381497660351736244244928524486573648269831995244420573251375280687581995642942250515191724825514847185834177848808987004268981716086666253096971126491849138898530815296601416329501365406538200975722912554422203321567699822329594835162052458100386614511196211786931167066866486979099478223351722796735068472855159402300268925367088929402554819904044122592004593959000890980346154897975223298003521418925046767294353216981479287921023093516267548397812908322032983706231265335381335258653456375424497003759713639505140638977138647890116654595384745180240533916593291092517657391460569262413061016770355777436123256679820210189563408490039999182926475665777471125684795123538913812673436367740260786941591911433453367651990553716721872969600493618153171060825908990816941351527855140911929935706696398505646819371086155957187097013135699282175436038584405790564101409320787080991151855566911470910229310103011155525691863894051170161492405665148044158840716234299192038031051273166742775559057827074045287170798813704818418489194756653609459992879601783837171048012981636501259763947433613404391037927027760121611190005213689786595943767089912336858232827739076312360484529968050095364346030915322408161396047767121806392500177398100425864198210125926023597001805032963231159374284602657700060537268678766143249496957678376185609028109362394275232514261341568419121196485724916189265358977066391536125103803386533169215151384818940865988791776004161696376741189225562890033463246956276273498147272518508636754149053738255610509819692415687510626788409852972015237429169872916903738789865660072024496576137775935286947490646886207127612724511476496973899470998087557985886116041129550634453635201712027091993441681253946980925690008792230235300089081724952904646152386947305747043639039262477784462106842049324801893164236677724513958684953641178493240706697407425700924978551278569837460913540483164597230476288145970952349126558311893888551820345303773880399085655086928955320964749367799464964638223628578531930486780664949465561334460935581152269079582902235033599750394317915939990861824595149077598202027635879712225484849059500200366056738431947781060452624544494696993325153887724887736603235892201436088309672487621186236391250330286798056318275658563017954812894872588040315091580339753237430006864945066274146219256365448216871076188513949629201727034599139072557772963686289452626591205764326104114771791294907017918920711934569664157453687814216613747158805920050905120189916495122697216867491676997385113179654296644054447513713387608831926089118275641649904483890990086023925341825298593568730442857779934761265698740545403215864315473847737926774306826375301445923382603112747596572691533896124298591988806190363339475769992689790342943578939458699494116173340280862876369877371347456396702916109598019041644628251380123310663514198785679621006316228107583055473787329857530263532353012799096162007169832105404922036182220563783491927572252644467415690739173757591736557332502639318050131655456122020626516445727575961197133208555299352303260237753421522565749807764322262887399309651530055969106285376545263226545687973411128933766589681195655974349957213720696918092887690191450266857261515974408246583825259730773257861686252029548142567861495364000540850848096043459868228267491145191444135628738490416921728374376158879511290637660370742183344791198240866309245166060049105759758434758019101612798186288754800238376681883104056147046565832039013749546208413907866543327750593740781495343644941507560516936287890975160405572856590676198845838395700747256172195993456557059402388140478356256281033941786366453356824685325575519206602999136223881659659331763118454653422986914582254100881990725324626584325056295541630224501518889995984270522603936542001481951694552818907779046160309167486632542191060134870313084476329033429584716793391825825403443221589191067503770876660174977477883544969083865642682772645022204775545053022484797558273622601593813874880207424505824832657606000509772690574260185853300053925735396357388277293222829137896461663846949648331383034845385408942563102457483167807510903928263349366826727981052444909460941974901397306885665318050820717376590748737827899809392716877103082464649447547735739794482994323358350643702122572174895485853907209258160403266009218417429639107674221415364642549963674525181369417163233410186679493307538726646492602039094746946973593086843773956565618232342871704102594690523274573139002352882448350682437786117748437173527385594713536885280569333401787757679160303149038462371411945585930896907544533310246038777370094279551173618175471570853927688004912851944057637867191987143075474024669549291260628742358520758891686561015741333140528132440286165345477792141439627156212186025766609641357113871853207014864816144179331826860999354139658287375677168713909537260912054330560638428786990594582258144034691727970330154332760083808257463689190299020937847853463219754753178241242756134462598213229081167051417609446895352642849518334701127564203989542135678328700311056532516698895288224528185886022171554358354382095650301265886631091326500896365633686066212270908720967950060347773692377522255283549266962819565585590695147553914181384451500979855312668758785019357593054734715090466203832846185731233888918616675076639484811266452941323158314455132310221961508192965899269500604884600731750893719403608681826783378612072727656835228230663954184225497419046596220751507138383287992486658449659285579072825787739433434036575657918502129927060421702373942723269204604760898699971094907154788729162583073941675264814646125703591576863088820088107210149516836673035617555476338832360944520431203996897614299037369061925541097055593702924182348711273789845157179143584530704287736908000179080053168753574455272552254983159601964381093697885965989810967348685527036710287981258564963017189800324656927281173203569193653733443075096879562024880616111005113851147777488604800290665771645692066558857063280469571064081983999304287416970060597293485098886812271934548337424423697212503944388885145576054981599749093142047782571505408495701187585092069933674630766366264616230581582672452126784748505916652947196585990613264940596042936442474676287540536690221326730990574662970300294432478851309124028526470816886515503247662594704496665668888894268853775616297881150058116648264691437973194285379743484813211072478422027289096406092013261130521948570107938433909583274315266717964637370386343475999122771246283319275746197989406055224277570336281988826755680865568510929028171657333306009396025312448895153576723826664380333832024407570968745960856784924812617870192248930260791170196792281399431760491759986336485756136043086437074258348201395645416294622951221607030184242730291443230849187793393261077845984794956898571496151341753985088468392779531361233165014250497970141558798202885052302423234338598049282713873229476294635577217636598719345839803735695701534930043045129410474791229420884984611006572008567247445519884634640057537432302718538129127491331059820125710865441628442251224481882127633644245612476382262166697306531181520013595606490983363003174456539734997715887596026792913108632139183538654925275194693355657181244662646365729907460245672179809206403124560459358103092510284222042810678617912755667041566319729386325057676721914493025957454295714248892057994240740955086720769713803317349952897473633832769596695250535966741581076557355565203305843379313217226381674332357934045896763556041275651655077389964128377462918248268185832753855896469898920305194651931260435859276900653515291905095899742439102428341304379918427054406131858927126557806825117212886267420957273401649513054846818935862288030382014669577793108228395762617366545190284383535472544190228009719027157722617629476647701869921387035323547315238002869471238480658311308557208245016150425226085844702180034947974453374912409499309297458805699346267186378875295974549021980292948696271456378311350446124738531751337746895810657590790481358850983997857705489038437492247927938122598055501504161783222358927105074210959327007341161402812142274142679471432828395686832734393747707952445458399131320974306678328854577108543960651188863328713788618931999151970049735420703299697825028067980567571059804504953941287630408925219247824234600182959935181444793450290867019326845146290362456677389604124762354253582420246932088479174820113813075695240088547680402673759625145316641714469509362640069881720282849177210801449731966776974380785458856518337730381861125450783047296394910165325708032440914044269340290858262855904897247993869696746337976376345924514850763798508546516550003699417409250037010856897502837008450688537529018495105742591966296629671697567488551099068749586226365395876454643362149029523201456914675504600523270292703004213849568516905182012729387515789213863957342810919423114495688916621911913158852347847877443900845323974388894691211314152342623333398703351599317305413339924333522665089073696025925764558981967242411010990208470939180911064074173626427347444523392053754418845839025693902182759826249339167049242374267449678425665555833521570044205661510034547834248231370572083578087506784450780735818660457472470255561792461871761535023959723193289856094915321736454951814515586873948511325435003468919578712928662728045864035617655067027250333986949837576528092195937864820773410929338302141072182685302629867638634118592575892143971826537143467718306370068253927965706781350733802084478301547861451150395782924776607291309907437701871686226329492381154582336960314088444379603406901829864379836768164202745683277535578041431434149428538257855373813933041398876803978454495543173995635416045151776957961803594632102352625787141324910909938114006234857507627705334492217093787188306975782512141077868981264439120404511212646680266343215485003701271397958932112712520036205866322587091401612358401564213780250186703290212728542667133490620596417225575152638802263211412316304521077301860802589696524118188879884311780098201729590717524523152496012148416413641216469763816196923155455312048120288555932955046394443115095458610172153676042940558834396578747856176293158029930006360104665977993401872324438695355971901014892411642193192691228070727143220580062789921711712277078571321220427179710719743651176656962012798241593856841184081605138294174596430078610568994657684234922109075712227926875750329813602986977243282663792655944449812970176556290824811682500203590305301197042782852301092054550551270023208344793702086750233988117807579221869007513529392654069643492568530373504958129441480811546973659667824668629052393568766210873639564820668313523303917173259020677042388178817140570400831203414307280030684510991582296197462256452436143306066387029378509296775302648548115612579047619399988564487858589179307515140945747669249759491702432561430168195706384930587576675008156805204785621997325044103910424847657213698431796990825276270920051293414380943763998530354096894773976295263491299262703018248462881032524983044078467462248557897589271544674854912015635488372157686255042016260198275539583812028676253386229956477082636605965047303768636301474356633610884753184960344441082764135700290734854441397111708793701518068070463298024387637567871935806543244038856449710883856974825984255268275021587481557782364599756138785760908542897851683659891886114403043564530430283689885858138188385759443624204914028847094301238358262693957996622337730294033843114440617330864705039962594870080574928872096621040089652843603945002454690651251207211755153929487290695870969780351893643959250264338986931942826936503470274973862207720038910181398170233428086483150547795597618282450542875773993311960043219300328261094485727229240163447590258200458099426973471506151325520187293197445019316587047039344073185563589809412117943849007696600804826033654650165680861875070208945803973068306568145558791344465233920115147893820000523077996213877565736093772905959541788236501590937679004880391770145898789387390700300710144107353409175000230437723431962560915483818650746665029271703289954526373669005042249234509312068136573445814226022057101869894601027737031290072581570197604012393548331837677280925523757933016415138229979709458342026743404246833283803129787503539498119160296073708860286943693608423447967142774669964566209580871681958631566227874596750362574229222153590261994778852229904570286250220476069018227062431605229473438692959026373422069957730346518052123627460910865278691477265833763233112664242098578814098184161176834761920954427112807745086090021537490936584145639340779112903736132577915280952138910065014624972204102667402033624577093211498284800126145196697582046673028321143956053823674256007149230351854413719711256350822483602077970607794469289808936417551689805193905882331928630224876686951959153171083128825243620497767850544299655751223001161778484058790774589802812146678337678042461631995007985656200490039139846270223125260375615889347424082188655092982546293777439825611869402152109270101884167241999631085291842038562485592856217411701300508377624661640974444365763419698156110787384335655680209161364567898423960748402431768135212030247072019241108602367132819478561458975836739842120397975567599522363663168929323876789559636305889955814777114315779655022924054278325164133963544718100154629589503660591122213327180710065377915244742442129707464359881295293935233048705541356783258558478483799508861265916853163560248885705477025417508355478899044383341314298098191917246573086003264688776788127580752480500917567375313327142882388627548823236362749740278864787439922376696137478612988234058490190468974822468590661965386145815958982383583202481428013632632487305260220109695735613763896727977466709686091100723570700104304530126052164409302576309407786877509069545777243264622635039806281201658774883402236293654741280607082350265685273944514278224959001605264455899420035320963024743511101983023352996788019451149413029918023774208446203524308807523393817987580929339477499030241258794490119292659719290953729287162006499806133100424461121750828685196765876632235255702225205367205616076771090109440709637779984571389129717047495055438183106778606132563404681433716937858891733143549819901759305383881475319641644882071547890081286723273805446861291816643069232049517302573385782866353824902082535983566781242885304939961657066537525625971400113235553113333765881184092983272325162738981434861596882294357127956542573909499315132256033796104675061288982990803223317446311671348928162697396986996669220539333931550350917920073747715513836829999316566435026324694684254164100190639142022950272830830485737538907471645827287458704023881609795640989151841733135244963339241711082429285701728354659708741313687055606066901350989305557687777613217842547535452160104105393529887222156354714086909254534953984091427205841779345808906535148668081222864376335430142616221821373433036378329411601922115117772622386457911454908525121650143160610395582848244685018121220492925015209355109836788538713755799011251224910399574762343251782942544219960260549058219918581091758065274716606681506824686997385897534293075312859474703512507034786528153012292245612991791139422734951756936917656002755486440957855794457014023825255174713627074653968508731329276892746884469358345474287698414708727423927454117177732875556140044374990721013836643267210672762923253599221383031603388017046564312121069906568275052913765957827097667087049129789726701230797271446847506353531257605412144808825659023430804364619981738038951695643817865029350743872780437973502919512035117263429643176682340854261106182199532240426610057305688301848643276730590462161925805148174268675996647389389441069461551757624263147554259246019609547966487161415507510241652419253191176516686205306180417451688363215661565091559533975373474121096774117529815427281949519204597314125322895037022960934600804174024725724648175134070858845872196573160189111657369984745569472112948684037415807160578686996170167988497343701277530890044318508800431473771315179775765612996740532085695252078670310793620199338719273965187913521991228596130290263191500932483276734515909893737033885508526719738590394761293733381804246235107303954233941065034499803059210452906110060503281148284898061865354881566842690657932390671830939644535855904801735371729917961150637769706938510478268763940718906750635017803096201930980376137720876912912040690381219150996821673455812567127066401472277519020722046652342068550560455547544796963438785368538168582267562379614808238718520705855293522466546195840655008983586855336101095054596549301275271338887149757175642654039162590684366491971153091144129553625014267629345781605931535643384604078609503060269421582854495347109491705377341244886038149791921515693814967431114436411086394793584059630024014618023741179242165334740337642733995795610856565641262165379828974697753615584123605018081879455953266094725676219069428995189611295956025382761053103370805794232978626707640707828708457859679777706528587240201834332058439294789068353356188575935113876754068262593722639843800216516152526146813727084203992770359054523286253301040656855960521718735637168847127236570656604571835586694885987861687856165141040970894327294187548274369175758161900129900641241359641926257977627201306006322626297480530054762979559116906559330016058318299465087143817412206608866368367852355485622671255572815560812994468620262970500313814508289346634588744410778101416732631441418561105873475322350913262164986922945997158382710112886303541576063517837096118581840307601563035259948027645068073046384485603264416976593677002696730200582217098072669976690599652820472931451271135587950124222600558655199690150814506891171726113483090811240607710525953276169932101804771137405470171482104744059173254024716579759286594057881372243390585433037400114661248854720013364211247179087542463122926959548338105831222879134079662878671385829154068618250993485890766462878910453816145038066519901555825347093263816573919059350407088561406985611801267090097258075069548113236121904641685867780233595714783999503069759523959562823138370675707463936321902393460482430153071245171822920646041322709260942135624079789301349768412024953998975991811642095211616542951030268746491537190435791452890116845950846627298069128218332732058454061925766008950320838292791658920193714339401267662179102845054260628184232553401134007780903398932300153252818028000958299309032401581073839186208075945379232668825933182875538850361711217482554219102452974212074010675011335184028749196995801889157000423946495599946307369496173654967854180116315122729834398068807830441262821435672661820554427859532790595914042638752729806363502405561156090127665056556528824808950719987450060632169288501018063169644229238833209968578514852971188712439734712402046635213264033133696103525058247368560515079923000603339564355382488218351851057589859137436346494936336508377254404281464819512825842471599578263193392203955305160376596598403829119821957963483536615981849494902425566844442937746145380042150027484034650615571652730230636347610943165717708967506966427531382044858183545342336193660833284167678251140993732525994374502802863563049995071248175695716086881039429744152933656977290893359084854537002558550570799022334451907545817589754558490423844429815232220780476334610227362529480265288168903457496783376155604999731209944535416907319088789744825221137010434929232522068181396059019344158120784471880288202092199874345368694756420150518482685983358220257263325781161488380291545877911160740612201887929737850917192128015284116535491922879630866070981030008223526765729533228369506793498741100416211482112634170557790367028152993230877370857528497534163884131401388641093167961353219816856734809269797199749557633248028285957630714825568431825971561174080321742092275798495455233201945884423849942660597747526647815290173752517187257085626600213214071976504201783578783820979703019672914599990546969958635748823725962832032744281049331148971847385230227066327388200082277957460520525256085682686961049745246750425774965802015782799133334165596466296993896339455410476542437343531368532944033239792243569703075341027750735957193398583470704207339660435944477117306080964812961101500130470247238340328743212664229132258066117889488853621107086773870946934626913749831036414753268032505636601377545167915201466248563415286255470509471269148946128583425360655799305791158414379031107041834009764733342029115118707858848775669412391593823468923020599434512762453992159795588309696060828326978267036008585239877693050202327445808725290270386204275737008450176828796006034837115457192272249116727956065957667796146378962320885357139368437077146518696422897073508415555146037111778288247157265186347691789651136818802118508435146107796920105892429796392689827804172510303494382049200267334710034255149485076261923940609887920773737443720366495739436044515358803939116345162486762512786280903286993957166727170256046994413181140968706101301871145623602299868359277439257309378293192122882168220088857573037419560913017400747231848046509143145436146031322684506752650721129125837575685516155083168425092089389111287142889732909102290975755532315103546350580947054206977917603743468543187326901432786951450793932588239064177708951715344080974469437443187656767373364949306142462997166168215559034557691345032526280234638022751805805362207416745488177362313967470049339221185993583565260090125044539112682428527199153347926465493855520657113676562661872433581039739604742643463688016250797676363475793719976086942486323138282827367794656310977278893942684435624503587217123480204236947987135752527392253053814059137256903426194857797788497243492621891538492987801261557389776409747391562742700551608582921264795872546553837261444831710311138288643443703302923464055110600520772219879144013832009239047424316950807173157409257691033557569175912657437947052953616663115593289417457643182390577758926237220292827273361386249891062315819574671777913002391207599013660877224274583252325941838478662965104591491240469905921217593936903257399210287965159879724543167059250102766788485327693276760705504640941432988509854954881053203276848096168950703107464876357841766280456652953587093200954356931788992454399112662820887713638327353091049639264315355010575738685455753648073950211348649620824540693161669321321799602748778904762448887839601752500090437530567485466410073192793266914807053466588153898573168789862272012601148900582434832844300324050115797840821342632275088832239692371899424220889683725140942616477680279063206631525877075010935311474689867097452983733217840646922548626500017986418139473295066084899941130468742997713425817655759188482210597766873962981772262776147165901652138168570782960846313820556145327372212929486515167915757921567988210985376933816524150437094589847681058081436310329147433301022761108765543486001126867960497066659703862111367793656775594667322222716738530300096458873455944477178187876408866570786779520647781331792423251440987388901740727263868351561986837412206364163379758853778463923051757899378347786080044379880853092007714567159333707102816946543431156941802382233223496191425499512920526759083071170743301415967957294665099597378142156650486009890364297924980055187132555430264100745005945042798304383685116837085678547667831893875896511216589225708717228418951305000848608827768085862189439395283703587468684420528313486155691303674012149143280651359864163103217249288145002812930911298656994081312214668688839014250662450893240486751609724095952968821391641812422585547271187171985182324535268504982087733182213322357032536725220314497220908859715356045164218254177136365318874095407188212737103453769235609026478394058504802515179577944356524098789942397400506876910740536923619558738980136218595019163278605642800562341344395567500932772213715341073710511186579337859034363102437292135161484394303977775615164924418884603438983609415781199339737133944397779302023257184862225382367986615823308288596340116729847070694184898331517622703199080936182830092578135627199573971647748711201003888785444176077420443780606746560282505762719979939458354228764196265588792237974945692874629862977054999856010991678636589181303164613611937821563301116850362296336500042784105014603648717142189268932781117692156283676293664185121212021317033545683107404545211513098893222454629227953919124371949221665813618395025599343796884391971424841263655673497625376393389610306441161906808406787621882562940815951469953822483939874606281742840008113634393236594061003643372939447410981439067117989439996417942572779263836001011859546795620461437716153593114775142524361587596024837238113297753358922449013501299676391165136691004487341819416547092316222305413783533935199486892319976279375467987268073148442015393354467359103331494858852694553668669105539955814186384003743487144013903156881194592879726774090348681577283335546477823374819584242815535878434064014245569793615024424529456559879493582316124651197309573292287163982473690847957065615288942192254584474610615883512481756614499845667151725930749541501583107200967350175455404414788753377947284876996203939198398132362821770197391316344235316261951163561715597973724057116876675984835526242273012721972297740462524667804921310160311378000582275551530498647237616760131505978208718261603147186691481711030909442207716439942017743785591781098338405490877916007958184032998907965191871949975185332088545200715392461026758649986220980236622164894685755810559849515987177986854643761792977061028739470000455036893679164477700460490063501894157354766064149707252117964239204769456692154131170906853424593907933750119309095047999429412298026600873010709528052464730759557440499103307145325110981693235027031677177856996645908408256598195295180318000381209673660151749105552350357344207743098847865872707369890256192671513976295047737774587107245566414422939245728101537552407386521056622487357001097231939415662074242983162694387493417926160808844548027168049839401574490047421269273120455299105812005649999371069776481886298702253376130801919330546492155716232990865557391332470094928064579631014580549817805031735862062333792760873988928491138234246608964818086647150763000999371126877669992297367714234656063511329505366653988048837024621863829112752249611759129943980127266499024799186644030317100923722794105723201931046443851006782514756928451738202492670375608022867348788664460060889170883884657782910129965317385152278465124666963267777657406863798957016794336915628068836409396764532090584372103551916162323965587675941017283616876491495164058055199549977572141860553417250633225326391921354209331158633882561602886637253641743228946864964285808953126309730811921016308935660044806408499824941159125714099437731388143725986112065804277539085374673574516283007168719881188349933470431945084295249354550183323735961365533693517435206085183701021892203437716788161502610011089280330807923539939011386821787291799934118599936360196884227160351435128445548729771075400557850867509007682045738670542904886402886472049618906819917912470554406829592942159132935294092105866335279680040766570056281852861606810932455935511795482298725771400462009764958178735938359429478170859466732361655131448985671429444886673920656403839555324495875103086912059069136678542513257121012148734667498599923825692598585415246096904605051699767587829716196918312494527924089967613374699281350210168757920827612374104763213720957398618233612973975118236020765740957283951985456130389838332930603490173539372826463907802323630477560007273181125643442208216129565261652414489991115599602292117917974122324410695459823533185722733317385695143925174235814877601199672907986556406092020384409649908318467100733061393720835976755193520030478548910796124228011877280269743371915671155024162491857632255790602022037994878147981739546689384157092472612015369519007868499032506507494638139352616310111450667376822905386880118614027857013883799884453351693117395152506693272726988568895846896711027311641021027727175337288834721530568413692158958668559020963484274264949138847971122221921541596746496326986776928259310953023506966398091188601409407989669536726245204294962713724792157810888954649090686447371438235047497797400777101327358013262594849646842178094078563737718451690385538852171606387511991753408759802146421166293530928894424126694783377936316622261364122488744578302527149246931462096513642137423370026866325065233872679553344033963219845060190887086867379244532256008110857033095026149900495827828793443042612671717056337786541601161635599028973781325885175240961574482117147417551953980526532693222020432434702884779667135318159820537062687735035292979238134057609950468675404155664756591699906424041997606025992974373797493924166194160348455747002170001864719858102118396736544278352896685449319231239489444642572205890111881896267620989414991217834045618171417624341185283133117069426339241828365892768987201462473329692876898401296771527614331016631576871062104678044231172903757064663106602664250116428371566337740298431812503838750235184466554739078640305515597365572359111543241910841933242616946805317613921669347687369421435595475484676265557556215106219338733880286271588730218577951160506293913840795690598149476568002222094554998865640266560956293904586298018048025720271659450550610849094510220177749238776780544719793461147244150819130358943850139418268519003042511331215944945978965839056515701752271746890989934936367564615579998382824493130502619992038953895539023856988683835144201112684393096814357144382685591792138458394985365560493036881959277008204096371637492079325354093172921988995911533214283259862743787732566964796750460938998475995761552073283662041389435787310364163063620750030036893593315167457285499295671047631768557713620303844295174539394228334325880315474855839406054603176971406236417150496964370792406462186901580951809997104605666644882288054227506600967027238011951207002253694529862065768040177457962317333912267876071709371086465761338657890841125219925440455585645775394249757180294826196431274066230047599033349443773126337566191635110372728557327399532354819001025688354403699958011305830311706484326073908479567497750819096261294654353501310619466600674723097450893394874684588273308270418234959022842937753875960204915221075301194727951328354591388826326692754104548788427598261133135696910716105331950423473386552873176030478441496948242670191275829394125938442554239985568868149480848742233058604632291600104391430364149597191767746496703870565582964701059710829089727425112311906453358094607631230702324840598726912973008019447358562823148085954806824389210156427853564647438701700934124519603949466947141712539505665079776392990127121041460071902479272612697257138770925949832301632164680366886977668251734483783428916583650634386531638500429247200616811552747538778814793607988206454969826797235274968728898773041735999781325062033411084742166034018831159084848836893539133637779661855056988208051591757609765356821606778731059164562220239389064410835412522052883909248695550935395855307243112079721102867664575740248357733240621867508948456882142523195072158518502985748211440640118734512395400642582585448891741485133317681390993128785587645545162156669650329466259799050404003801339697789457021279884979775578216875561123875143578430849357113430836730606027628797820929487758634200537776883392047535291609185893458028726532002173105050362672085337738849192443141762233276544453348321332717476734217734360342333601012064017034075671283830861298134224523099492000626855346098490375790992203107150621902946683273400176385270216235736631948952811969270549291934211285078445474225213499049307169413760445486033560833499338187316233073060614988556204096273821783857480705841052611051124878983868962221961759096950033310529567219168042858995264926428779642673730219198049351593584982705492564389432367404708224952401173435383860012286909758913178059345089432551033900789102390677971808219564427519809620096014691790739955461600272207019679140814605732723585904382636174657000591624690836519061015600230816548881693180529925115546659391404501618872262199888513253643838292568254284982430117555199780585395597117791643321823640417694371993702479830038142540793844798386898920388228101087273470567809180350629325100791661040710476155997222475698628339570692826662364289892639308074949061550975513749579240683946801337511573367052337666115005759370682938895122513837040005183246184176943290174944850041816441809641131440168104641222273076889458750051981709859048808382745147160272583189098537607299372830574494533344799628479183208768047752606171731079520536067609091353517890038737786882953061076683327344189303072830396091047102223557856540864422666977618714133894275137226837016732912936005084121811248082630073316764694664666261916991862071604508100291960167548948413169276864352251833188346158592640986010228621976765964384988158626422308172104661142003370994043791909812920741614473119054333496340683971286242811791367880933070693651748830430807271776402588275732737317264753025424362545364892855871655523776200827904343167891953203850002494727875199696900295180194379309985531313502083789351794265752180865279465036376450378745907773948419797717491070853774281096298113159688068407677668637968130194527086727261236608318259180504041605921399976566090421634334025909067442309073014591309566014844278010613773113893222991293289830435249912946998293151757576058210475471837006415327132811559262147528236323373424854369397012565070086855624366336134993225325107417504281132715173527066432163435866174014008126733120707263611303994218029024779762022410577874241683813310943548962665566149753986009344520405050447887666230717899099682826065914680514577039995465818859013800762108304135782666674361109665531151725618423090441760951450996034640513682997724156351130562098422531231765685989624697401136945939754216663482164521327184700017823225493425984766069367634754399267643860763594896785805031772749361659228345922407099176224286373817798815394678917977660102379282734944118231883236935402489003624207684673624596467154200364267406014736311286268203209767327788307959807538814223757525070851604457134899896089088035536621485967155862677532902171926800048536327829977947941652156566569141401199763258667876586300061898334698689316962660324658683599765242284809749172395253167301364378702270206551554602988248683868557011657850849167129492448040799866853207999051004559064446334708695656155751767370054938726014307343602644399217930511798780860605636234389882725867469900100720939468180653117753208091976449059376827708659810708450186900699844193988290000720858394969929195688500277441048811443391062697088497285199634459520628346060935284889400742097069306703196423405322469846212396977767292105232189990929489811753060225694047146379631593885898568614066063163442590866365721533185412639326607155591723099656758194198139742692447428597107442768776831076786970995807768105679875538616200112959717399145961092810443142412191274520259706177609460173228739556382528384092967490563720640693552656276271565405883333700667407022386417848361570627043657434497271867516195875285824706622873868847465719964222797548338725045500722049776551182381707320717260406656782935738970934002456914705571214532612837399596938832424954654512695593491825915917001140972129035542022064425463275569825520072750904821234803745372950645149612600385070927658618493774866551178658641908510285932408403408774036803970123946189697537032096992741573960160697086548997211584336858611673396553428871382855709613179228587310641189030826618087191778181202188739782144374991937856663110802071724109533602960642906233603826116018249639212076193146258643940774501360726445152645687952253071171905363430946144937193566122335198840118920694225343007125587236846429996080969867092660466898783013826796360134179994618329880572515206086844858967001759612198103712254961181404396080414783617190879566059117356202714045075205331584337635382487062323242381386216834443648364019608889091630183940675659441957599418360358187703665183758589370323841119147023410498697502385387523009573090764551828487419221290820673413084364389819824469948470624945510320879390096028954087011027047757721956946264173338718984709737645431074957413827134400979219049516453831815804477649767206420452452516232648244801052940650238743875790295808208016271144475123749859509818726896017717362795881340325683860125791906523243475377329822255913042301584161315477678056580070313601518139972237563576650801888807579608876159102458006012780301373110918431802114744312842174706373608852876800675827045870661045701880221622892119880342758053068747606730075470778971562117988523764275532623769657780254810003021137237794842299077779969360355480110780871731194357137470917408588121985137577027872096730163710096623543679720344023930100987017414340773224497798921100200703358544683951957958548374437502970137491763245825693391079306385434734900974260615915265242005154516145485851946012843966368300063361683978601729875025597329167650369622902453026716657806394261073629527180581101358947243063745876648590359019822315429791598345705006858141657629262684338435385433360327320534826406181455078717750637991601788806801316517079814626699812136486492058478617241154573218084227449347504530986068838878511406597600743204048280921708434863263939479875134828753666162279771970051142602139100614247838191755917503381712870757059656840149699866139182336079745657085541218461150889812293393478842977542459061477111438504614625434839777546197139680091355091645610579039557858494502802908890162114612382865871953107248399956214744085946001505850920726477687851696280004312921966541892296983900247085816665521566495082878031030473000264154435150401862863489482513907433672579340188684685899435897382275381165298092667831299217875208075001944136252344345662582454936891238027782201216090080855164277638554983728287989106724562446670263071548959282496148630604290749670756079039503033672592776298909754663090740958753537335187498340628057676184705900169614035546695046571295762738222806559474867231923488116223850262907336341514284310996838539917955400953255232440102513120393551215120305622350027156170425050419171078251820011204071133273624502805794068838592354706542080199648805700043717026161177621872580459496596235094406182714491256799424786640616025128060837436901665920677817548547293999253816175276953195017884423230056763098876780964315670861060670139942065074825803329200007258127574066375635908316913803660456439404951122240531202014694292552131560447132208419007268646273527238400775733242327509817539227258271356729806392045498663504992791260766843106042226114395488968340321868927477974042185061647287089242160341365935893034573998507902915126545866842616441980342830267348916689714892422361616859665008457295911607689556952078018663620592224525443292941636072554842384259213934543667126962311922210919515768808492401097914737425740271785667473739812650596354413000739484064684813698594991004349256323526034064847192370131379167588716470164762631170705904000157614487106306710418300802761900338542886159134066991402403295965380697194846744354797425637373200135952115939897206029996080900650067089501661171119080613376740370725779242653697098839759804313676110767720787406077346374366048815793511455295088788795287819591890322068651481333768229638605341291970293689638297910354298192572813366252987220322781759180428071458644240908751142123822407775904836496090929744943932049606382146306390649740281795966303042983362108203269917801569108593656132937969414516292825450864755075198847304606847268836754348854466165103082760499827301650953227195611203213738049849949327669149285129993874227469908754891261803704187526844656447939202131753159194358448906754841693981277798758778881614767736414306907811281072959147452633652545348897692940606900496747655128512974354005652509208743064662748181160125307608710488477795569318765034817129932663869046019863960685865886925874585505414627922422899353551713749142903609474944396166216622593728085663276157960142600535794618274763127085516126390533557122895613608655673660971043814031542838831743478947747458636110465232914556631317619701758396709692689166953104826560447221542172305933614599038845248129900454529769179955780478695593856938777420063114895419944516900477057225388365029139818062186816050993873940958986720677903296053242137811278756195545945014699740807489198102910848805317928461028938187161480723915538039200188322889366534933951690068438198429616682439436780351037376687978692788462728325043437119813299686285125300522958218827363378720266236951541400236276763997616532817050295586876716469802746770719051294278446979879988880855081354723628907269422425804705447203264477974272215797440523719491619806980082341970051928888837041624721296532059476862193809798619312489199075707540660120961403787534725490293753183200370852797382028553239973203060059931180479815595095505148132148560662863973775827158307980210799909947867486048433091959261831407656923959847663725213472237649894583473469003783284434163340453447508480412445596935200369002051372038890711665101550306242491455269971651231628005468480651184417585061413881978880489291383166410982255099480932028296218374323426239637016259175565103872560642506795337533057689017043246256648814127608765999207281991011213315897478683406209080313966340429125588675123334346199024206227409110539548564421536008905025193032324939825437887822796249936461862839871367387758123123336089017510625384595825269809320876390718046074261390675619833995110007050181182138828457736246260223158576726256665853308962383231973591087171859717649666193914479886711215667832054262186799839361932711186771788756391456694487244693306591584841591853327715861909597736290835232522994593837654879718479136963921281083988258915396951633691111579290478679472879523097393339449257627468429014706004147721909713392422224829414343139733640396131106187471841460130987752579378157042684848441334906580217659845561494515467881947582888796165192446927764218566333009466155828504356429468596114141170758474873318799711423751950825183893402704732684109527631323102110718122956793760797790105071743819259382281657239975762482148529713380309090437807885528243240715008509446347794467826191284613149626755876136066462811997438236300931576805676572234153058180671282355332899649576514083619089173718551796391484344446789758211756368081921863965910753913545039245969139084956343112730555052725680401083762420741890635913963118440240169472890202103083313541012702881037251463385502936673898871432943642270215883950624396976583741829889949505899128875269546057578805847206475994575967133818037126355795447770213694218013079692095188765201579263509086604659756940491527378399488423347909488024153225414233051465147025656009854647479530453836425805672130423670147402669050015755517822606866734859435622608082571224822315714248925841835464772209110817351412011303799801605977970212236829837450437349054036119184881153190663266051294046278061307010723951254313722412073845073602257930057644232114318335652091813845055679516180136664780235001354684877290733958537376346699771438341440760554637983533259088403573477062676273681699644377559406785826116361258297390035538364702334332115327464453500792607413556473136909985977194219948048421727471547266529726227487739637506448099456080492003285488640029649805515794210097595884936151639676471055198310370713544688704866057952414164050784730077795110045340981782428678452273691241182326695812693070042066883429306525054472182921132859614651951301064355320593777877950164587653498716865004281313055878811086203041580810699134591960239558614253256621168732537039564415350750175557653152906630336561985629419501205497130317886675209815277926289825153377821284988859872830204757898787880789935660459693924594897358883750248343697946119234587914188963920503055724375131147417396023498982376449818076288910064301080521289163684539378727221046042475219470324234878170306748940306897540905792818456413690084315923423680481112095991844381288572674757374706377737710515428773736399495479470265949020755078114205279974450188298441238813792999795061749876691593592179284584722272073744470628138522901126760314240780118331895950900955976360630890948365226771611518574566190245277408300776204476680862466922279899124350162097136160179263812528511069864329017421130862415078583404172054045590897894088194260432680942766267789362764361291413340711379706156139415203878080911703683960674511476802550402171696839507586807452790306737932643569268912700321483417039272891331156025427131451490537393204977967850992929651335441069454868494085489044401184841476087864696058300228996585448914729321940752048025981333244190639742001646906528295124011586403472649208502452541138128763330835567521896165603709824817633721830565051149305302212258486639551954122981424471687804028683047496948687271464303400144886468161072463639789679115184323570581606557181343636810254668224429055378993817044021156475509587050228871516076803034908277372582942180851913758035849814647359037070876275954246094680930711305029319231289954539670532694884820102585223801557388905655145796591149420799727223139615262657633906383187784154730489571629206511056229848860711301457341247787867778018459854755869354045413163187793611595120770084000303850461636303223341485265636674074329561365324083166335932042400071490362862108029620382464141627415931139097469864449057834681776909456216402337430895655754039473101090233313165576803933806008361156348426221909906380109664200036765732158988023178854403936198789252900927863246018282209556265206439766067470923240980322446863576717754197295692434388424196494698606294814714538791538847413855159667614861768917870871346055892428674269228707663985912891403263652540126770642339847145986002188572768506731759755578884445605149175092795011352597365429455411552089837597300654544906029461721154091815175600737184559826279927790118017966166944893820907043277874817949910848320892405237553444283377775652072708769565690273851981202689421338373651347504136119382960474855450254223444802110077615802042160320675901220199234014707509557126437312085010701609150103500858748916588839475875659622876961198441269411142822480694688148186837909852413392211539271719264708250595970709819743207060789178820463194243946751022055395124045804065195150504368392147496753461159087606719339952464729857245368220939845006970174928015438316691858729138015993638922117396580254987016027339552275614732662977557605813509046038968606972100746800946301879313928541855568451423758850153714973845044147403094140951135891282141818393645907412966989200502994833858396755669061944963368259434079933457841725259552252785867423093499295725299272480110749632062049533259974163283722960604731018109316798659388910707354271495973097373387522251507336551128235367103888012128203989258854814819075885999685288009201498788316370305603031682874553744574236786015562567049863934552408496270915107663993700584949596976822751294407204260227025915249927090705672860000247015628594799786899242770225530144488573739990668325071824579933705250621621383304627735338874030176839897312193407392907847699777901370710278936414526009332570948620422119961927658288404314891078321058463192782257115230175428750614558424049827537877880773841823919865014465434837527253078026330879360272716449007533527261673365062125469477269840983513427557017188355714741788874466020501858883015320724845929118315366104897058438679310632541531489792942734236746762617953773980487650668644746459736493440801090783406532287137530702031587050285075737917652090281496348781427477840813990483234005476165088561542403926579051477297167265565760154164121169786733175851567506224016071683592198017188381144121834231748188784674096176170703996802797640386003218423710999963973615991632225334430555524334052510459169442256837352901910125637709538147905124150058615607724480708949903656277315289682287066223374073740291396045565582348159035028773591644061376320259321765187567965688498534966681659221371763941002038248377839396843481132304831262777510979018662441424085598867783145205592893408072044721383862136895101736042121550118291719224462095185529315994517985004263436289440448475078052556279691175453556776766377172121306076171987615452807875300784592725919731086103481807918548203965888367925996330620815543615236510713165524119643111361127571557111887400589050507807589468641732925435384166215520157885675748186362186294321960179289877124130959171204892091166578319216655595414285727052581341307522013790629869106089566363038639237829321939483298186240817055955824522829383599519320555016865759163259967529614378316072455235445128150433099799815169986907245911682346492624042230414008495418950914199011337077811984407592019527324306222564729830047437699395839532801175899767101358549606014081959793288658595052963316475249631274276665148626908297221005080455998213074799979647820447342910705214606962898996195535478809471070492620213194467373088077475454726244968851890614939270710627927741753998553644103610141091426720828785647189575084173174317444443904288794598909350942829379168466683335431413753972349119170948805951970973193124220500625147752089347973789962963250423292859540648710177015741432379579207650974781935787496765874675198586679614555370115772078560319357146729510186099179385881906289404086221424237782933334319643078992165389776521493606413748867098351966409856740343536744250214635489808098907420747166022244719381032373584591961213130275039296127968701060081158830870890314868684111969164298299365866749043585520406797614347493110081595855146053694526444003746686631621267233972197156523033312462626727975498225516759483627429948172124276975324057036607835981156733523596743050072353042612557834639696352522869425048912927896220967086568715084155837280920394497340480352609519304705585729499645789207494620165795484461732470661565412307620838537918756742490691545243316813629561182975797729738249942045235149675508002858493728262526167347938356915828231049406702079042605166555313178755890376041476541094226007796037460053825704147763611674211872951771520543693575203977524339476379076061650662322642426289746374779618446735276589955221972395955025675769845073232956555337971999466741673712410291705383806460999844187984254951652197445121772530265498970059391505108952747986776736455053817735189090724593281781416058405098113867473475408669494990038642332819464140802475267240577648931558746533741185112768610946578382980424463181248863676345558688727631595181430150999793604833238501923670396540259872013305870720064358962059865795059691757466032223788853363640277254453912652521187796482979042100352364379921796341623527380388088432521919642545284887111654924430232992621955776844818793293922662007087302881752175808572843038719218310021863369781703649995478413327225916006799831684760898607295786251109093222366098869399457882638769465236739303355546501048341575598794289614560068258717681593783922345525024916878122941477767657631058608361303211258176157607627117272079606449667817567651540357651073335559191517235153892105545893056578192996172285016380841546735246768126901511204682251878864452250197962900694952646935416491159958795249685436015391592515132369907090343176074899470238454396986954761440137819226921839922135220935655672082551127159705052399251878899175845399538086000496316999921755201692411850622905841240495428658493805257997951177231919279936478443525740186045868379908469429521025916839496647232330894486210379824444869348524987593186992802911791625329062738009696530129757082686927605092469779335206579884831767129383074866099601774993481879327449772826734790635945036846617144922091025421340132403259807162313738799348680726825798627940318035630031149309424696456169468459913335042545983187921664862028007152492911250040295913828752862108720234368175257118389407893859756106603658275459609777294950243234475592559851059384210365095594238185234179753643543641867087529290181044520542532052853143020590598491974814239775673991391395045187042544058543138411482614694112564484630388113717313421263222325738554943688743509516113612392967818338914894570887276875329847334125198271464482962791712241467452002952659490232047157103001377913094075026839729932389767261408098539294648270649698744053307432154444997571759921873541400252367725355974367447141304322989617757075495083573654691615422470373937120556703422548656394230601218550983573506695707321453662857651238923078935342335855044629909751161986018086283653213116381470823494796027228316344196943600844020263891006184377142121159501261840680774763552102853102167796980184825153868764538830143007059217048875992177988617061313647899858698335450739106094309042107803003214108976173604206848481188558523350624909729777278563203952796881505389063504386090347754454239066435571288477272897322348652922938931897402795022031090216382619144584963042058233633574603571900176446477872463934518198058950263370811424197735248671132844906441496629386141041488906469396372099623179068139765531277818563487428342812270057174697387105059300291472508557469064925470471156320340554316543636115438565673879368578709647517930484416435569014060275393655224575791402058566066006910548439598399735707319897420649405111418378570091131671411863463694320646178981997945814550435829622162068607125469614800323329106783315751071838902859189600871265350572771797444614721135405481820806034681689768244831448511872158659545648011529760121496624751972758431150062531365682555545162558679113411249288477474319964810328235586879872448105947059855000617738509404395068803599499870882382531101570901804077138367010019509809272512888534018254196198951943432070918148039736929801637102959103689708364031197061388509651490429437715372187304616330683932591404443155002817943984633641532072476036585335725455506804185527677466288429284345041855922766478325073461927279502695565927215860877121537813254250696458360235811597777944933837197064846475416934801109152545762649634174620531239467653342211409442509453981336306435775947964112914318365203342496238203825075268779764050589016890967649940611529576652420271839052430308049505527074105028919962661795848406536757858079630999087882144266455158508988016007077591088285301115372757401807649831757959698485012842389937503444187552942923039270264764432955328370723167982961402250203347648756902116628477593352629541555671003148930131385345121845344890572340963513776073085564714920097214575914926281540811287422523440932394628355937943941098848357060399914042794929294482067295465767776770008168307683197600369639283787731624666192687362070138089165116174978529871992561955324451336731548372130930310827677876767145015503129550756128765182028215184104847052125802129726926934408889344282676896034559129753637389489620158404757435964520262665158152233807872633248232014700617419461485937318759874463183926707912235577094469878339388799125123224915176355708882567627445741974203199231753489745173529992111663691423715056141160418059387847461862903151458127024394674233989501138225212351138971740594146583701892820063586587038365707427947974197652516544889011262284305786798644477362028353378932346705702104482786115139351516319769666200212904063046472329427502441447976685691218178389808028012420562118621249894618284687094210587690681213651797201955875492769521682156893750477212974747283332880329458961251401262849534311632604088248542184421593576108660299348439279196999622625777771388648576805144106508695109334643818268633836160894967251595429771227136478581713895277596213454376283817332616301267022083222110491124434429603779887220822645327675087299680833617972837396249619915617624501502580090604966988656184021819552352194182231672209418341153542707901075519710728527601444726227861248475175808625520066104443023352831593550336882011057024642912636894095885395628904891518078686245872017828563107412469465696934389431424818654342772932147824598707328025326175946210120537909235583052097379941225332911317580303304892467987063697850794471304392850505713213900707686761148670767652981534098161239420317433118109550694897062578147084758846115209510277611879666479173709172996328668503220442242423113012839363279699036195498670066125648319696623763757343779311163154450602999536361934055143268706535717555144961159939495346425765851722168708953596454600066090248694406356849463000599035972902471798253177595889521540035900061400351372554134603464155481012904056937044157969366619340668237068207917762501500769060479403397652707191707763569727761269378446196632314844064161884168926565148876601493980909122660362239563771029050292685863283987041255454773284276402124741120565951069520007763002737488185854571823377638571322754644229358463177267106069974905462134893544203480163921081624225750652765088006847469923038506986483497262422941905464374979083742223518882308929431886012994743527581628953785781441094833246305205247514708615156820138361841675961166148117599304469654741700825026929601787422350555237210284913061983377484703262541473227143250471306631919815493386110492672189492784772989476352922057349984872611567095057389745125349251056180102480919877274970791536664799647494943510267699919722523183999642237079935252819916860485321415992339779454653587361422993727239539290287797123358498777021797766512861826936338549925957988855050580056137531082173931095034213808487654795407107802130050679512928049252167960349945562047014091531864371295961061454390334245065152320173627340473220412967368124046319037885600084165888735659702834199078194470969579775943922249881751900225078511398141076372389891259478748360525104135665324377585817488436260865096587795127919984166095652434335179506470102951975731050685830866340048755083921735602046701074567447710639026617344503487088039570913637351360519475044899227072461715495704426128500230506369487222758686010142178418314272484645615186009716419983310780491880032306041652967046738764623148531669550535987770058012821079289198448295438518228792822432614562610221983192397726908354407188027130009831490734437688522154017473252605949313077613267987159704486173213071379346795916368915077202443725621008684193046485864672119907598749081245502748124291933916090710733233406072179632116596230130752249043669503031547786364710804170171414254964030846633734247676373827297453530111407200539664147527653860178069677914177399503603991292172428640510194818307621107220640279510388978512623776098571269220130385508017324471938154138857558585562697446984801934538884543611179241705595176129703998314984783804132181948108191262378634963611365281131585891433961829428769554300897385128883993566053405105601624925228298724522015125630171427554626001409612387464238440766541525702703788997686994660316230587024947504813381536389182027140720626929152878746273672899780684070337034735226654083720774052957588531855610427687053355838035268779728716789699417708339408658893424891057415120588775818388266568082236069675949230195364659383205479825980273824797694746911754923724795275917838880442682551161209163010921250397915003241299306229544249498730812604495680234730900437214589706154739941659992600121177451796320950404202395062114305246556137303599154767409868159030142643399740267176157752905175688600944213910614585703286042681208626025617715784727512529490343598406563396934594864878197057208622465555181868375408846746981682212055175259928835877358383595012806553308844696820884111686101788840866342632488392226284865060048250393229488971336214228701744447527097175911431075641005749935757934700643085979671091873705595096758340599125845094952699936151638839241874328134299617474370946190436388753374201404313325483406965954539241476752187859441051200143703429930880444820844112936371059900507200572893466361310953202250719010404967690032972316862016415110765002261828960007866502557691993715979575769470300919491905990202184707721032973260258810124422738083258246615600795264130314229503819332588239747251686528086526905431779767508413613785329876919707617041233209593997925433407304758969294528113906525510534871682182055908314751842148028045995289950016674529358840006353135387454300949375478458309478062730310495404201130726147697556253667818346700842798987730745347044342416876877507850679984391833149319728141401541715077844621192745892882692673019354321293439511343168146881809607100090680731642446509345342186225665386939402906130252368609377499172074468418243837295173861522162913737975371508387433308438914368512301260444069549265700684175105193260966562335616318913092199670087844569580972882907492028481795508831592014094861602546530366163977261071637453055436822216038258839028333242606738594799995889806215003278592850587938223532534273633256703053414561630850686666595212474619472865334615361731672247945837727127216568815549165363739590507582647014344492585207558587334917421146990811952829622852065329541521120617232045861632756197804322761598567364225803382182192686993717798875622757461693857540682874251618110743984755027799132985755973671709841014161473394254098096149348448413272342149790609806624075347542452582403910836742179806551240757555642495456036961851255273637194470006039230662184866605602698497302960980491857919084167438283817601987025830731042751111094075417952164687934951504746153549318152930521126891650388036969399372933996380704541095375327936191602670325176717255082867293540443421588259342978210489701770737508341562613833627988748656935047351615254440677023136193327055573711549738519739126072805689892079668611043743518010592172175947861715541507972897630765302948965305379475168437807617558386705015976704241868021832130203617892224817854999047046873725126130330028604130628869587323599429321552648151092881413856093986497198897313046490174810978028840502544756050108273058068788111192943013388965592046896231237394276222363104572444982238191449135288636741493157205522851525065206282225026785880853947308198632672132937217408432504972305108718350161910416765019323428580965782972172603157232450805227519664346301425379989425860739007542106030374026265040462437233647560532691732492164048817582880963927008358610008178829882086145004944273426333478971194696611695668372938455184728622353784157703262988542625892446873578638172475698283143385927949121376661070470551892449706826415928512032593934734295811226151491012106268234803415089834423454946831349711472953627538285903254787132406008007003843792270769560820996528933321242480141119783537029064335415773133791609657377509717465584644691277022681685167043984462097311274199909401681859448120799027479428211676871965186236619942690109234391174969775529221236608790987117959991433461139092827070621184220470000623945038988137173400709412687650013081356140897742794781274577474041279909444899958226834960542297870446413740951645219276595952675203493857764595708803918728272081992979778661928633303792753734089577123875108591583251408038671605830304786680687007590853856142410009031253289135948202462200154839886191748520019982943159707797264942938690437235788392340190587484025145004012556195468291082879270198006449171225908779451625827195508152210065717113262749706010884649338914385833317279690645596053507323170389252498493054683747548078407353294468799685488297731160249770491259897619675112425235644681531056064597190842833285359219790722758030883873313772164012201545053650543677899663766818577440764577731445145962213854340280319146663581194566184271812808610434447557471672176241511584398393327618399220949069531055332891144578860773990321920593494108732369448637969575898568591196039837122237179840347099878728885642030828309833113756961896896734035455888546736639132258885310718460598706181253731410055011982432206107116488827331254040055382457612137379622529374799602917506203297122613202482142212009408870727266903175782919182708881318743302311466657613278404113564050716546001623284893055581714500310568911710241007562568729517715854666202121628736206283446917979448566258557942973416059474373310159819320407806932995369082492893655215445107683723223433847074437631350081557007295948324755897358163217632537916322275928914426351296068759927596128396915932101106445518912984151792838913284328748037337461405141192149069179943998803924001227540584354773771042714513598546394454329596703519430231233433259468304001507791686346245193737621617331037651297878357203962218233015629936842217874492661854741047654490309707553840996712405885570523286472481580814293623286038085995612685677733468430918986351423951963731822087425246275748360196838548844549247934447917736124757767920232975062317940892017999527994870329982650515615608097130575779681814820232309018696504561560699569782354372794011608263714268314556810176923569215175423881247319643419106353488954872716489931582507087432306264471967846892475800458391991681141853094082531544970975218911581343216020158935525190326826992564864041986766426121774684017469364322117033452556609987941096339401993467814287456218568250429252367394333507217093311072081343003457240104061264274324071959606419217714773097412330500449634143425847722759476914400721380014277147953452570651628624594688352031123815535736134038575960716786665047650666332231503459825620491595486546639017048608218180306524710129953433036995424553787353477212940071032389422889375016642613353510791209280803860236435095503396240727223571160150765930737890131083111111049390883623209580957852978830313449601060239056981584509639328975844295353372110075948274097803215596539153982819326089270061137753218616301486753932504698705694249972165965115969010069124778639323604952292274452034623207532623044529208073638687431058149623615346450859857812648615138462202061094414446984015652150633111425637533273432967764774321217364421517574236965227997133320505165756349902560947203564025163215725380554874480164710132920939062750826514981194214581092093616778708377418477116004620263154932610698906956512835174997182101470116938764192741552912876026259173068741876904601803587346675974015490261221823465280900958345858436297615762085695733324719397948701732556861318495002772313106876305675009172416589239343071767583538060026776364855739018505383234637198598352396562795784706663712082404330431686583626803119687920241767315207846669602740711066403123360152188341505957263483858436324813697110327829356308535630134990309078376603293598252580414018662156515874638664391492024415603252913271838778357883747235873880393410466982033684353275956851368293145072319204365563730618700879496324050608054099581853696199535146017808911262870128410253592263507997421974403262937851279468684394797695094458163353263235505321063405491411206914116354769939170449426120844555709434294203038919458765016775864039186725329300965402988031964086997566449836983651061398039718003764366498014766567639156179571724096402172700882723781730474384258848544857787380383654809379991953842320254853818913380815139559448975821721637885523348289372226983197965464556982141818641505152175452050614462629515309104354007695083468820532966204592284751749750306360830992456313448778519881324807181719384766729672010590359008929950446281716011423375394501696060292770602257194117315758800538980087447714650024801938401933433887911084956438543260019935138044624478777375770477968942996712239300821507641326259808715284928194982876853764408567462960106500068894611235565908402753481261648222875790747769500072535017127863151717335849363162567112654197173770390729938060740194535865898753525616973164553761729055105238962853062739028906768346424967092150844470604745120322879110818346716036197427988034327489325519131409165326352947288325856349243104196611648246405206046964142758177350721930099771738123445827751017382122261577052324134509352624669913449925459677483409950005441588289243735686007684317021660238514455314475194441926596263899881650801578113937044822817114250006704010299783847423215282031208415323373155831959305674757266722408553810885089359831396200134328033783288301581078988420286621360088199641383041279512637598819648219110398408602664330534933612687666038121801072402792123929510520341958300683037318495744376021891107779448972967654455268815313609610326093999612854187954140388451894182824938798084596894320992276441898927277582977233578497443876653463653264255390201546910862919132579691019018362867980341710541114701143328177042131336996724295805730355552821332880553642889397787928713943675731280434891859291879960126081540431143917909066137424678319832344179271458704842113699962990202271910260592323029114783817639704542428611600085543274733060350926537906840102847157424219440374625344129538468919025314847081628011708683821343417183805295341830346739108279113125778819263579282886113358740343664551893274108912597360764191243880495391597370424798262948292901522003675335002765736934715489952416926450732078067945977311585360868429164169973781334319599788243865568554178232334798260551859673516606670283736570791098144871572941755149272400951111898342381519657474665107207090813201144243053361409221813476492399686164928748309301726525588768364827819858364284217854483284842439761756800010294305316299266832217703467518957428024426703932845514134853381321780702640747057624402316593839642022934928678431181157080694624809162845082965905471593853691078106099444628127608919141800137454211188488890510027830471160164910119639784290470652361543508162171620398137818740901688927687512931925370338148234516527337986847611937376905689739833630903785244275401952852594590393521619376017176427847262146217537726714880701180862178155835042841362011810590656094653773929021007430147873463030902673217177437616472379412613230314947724677022649131655457461569427651435789039216451287091138742289075545870141679716166498872932176276268117924372197293715322228262765085062485292658695640395745313694654366012766268509189590272137751744963917912404453988199751582887967092391860598572746831397839426002179634873576884775748490307936944342704759017220511376559542963024941111976424745832254882760453190039653149941907929325118440833909814404512934159540791356053615794729984060137802850845797918000315296978075045156781332906043579402094025647756845551983328338257824742957467030054811197150557787553575582188290272192157782869458623251376572046706171307180270361917161522034441963619342353146516729582571019487559468912055779720175393821119558113286569911670294254356960713077183079738102506488263289637869625215512891675445925101618725827772906271370867159378837609321927178163621000674403826505843995697772412642613081427890338286397482814807604333792045314533303014813352931298676208720793183191578242627953398881216910552623026308263893098965675192720569018552298036444210459118026099139317430879238526196175476090327480072898927011543643407119824321789391828131024726671994315278683805913933997217666890443229268835725179734885943686824062408651800486686332172398336980407116116947792450535266912822691753172651303197336323253345093249455954421495080559171415294456028705041955477409625104769852889095763791739954308810899038946215758235807711403551051919106506093745016784921687100387398238549027243446293091138185195869884394075050113334221583253549585869734383888088917529573980769893311785361233682461255945212448463762575007808477351154333746590732691654329242076470415694483128838114929140559123942811396700251238321889938463036404219370700440168021416321510701702873862347732662553848159395703986816109906799111668928078286295967645710027698195656566682653910694195240888299795409693997973312164877410618980305020144067646566070767726270877136463300888103101034312825953210995136349528096636698492964228351860371126521480149853651183808290698689184754350406869635209465253857670831433717840773228946089031532175834861949907795261802908241706547201607616948019997759756727223964381934875147551615260327060802714206330353547737151165807608662454914978962399281386485422904856687314223003756692530726185279832030368534427121301978330414969519819895390321276996505801380512595022861000878511243593609073696939848768216035527133157010771188686320441492622264609086563280630363573983158285808197766356187932523072003371098539732476053600905548092008366725284227835699001369745781209453981261703451925378133798264409767543909268020354595859333987740405517353326302547099009153026439489225891324237477410920294868956300411204705941003107310030409505788365099302083616589805519396684990889632166415747408624483725262308437669645707795669108950380553625466619285889282588660435917994264889219641894748381189593472424168911152702459996643983625782992340110731178840884864219083194024456189449879858902830821185888486387729320779601176534627419354135329382875730021495779373026489870045013871133439021912822627567026179174844904857054155579871505331007356038939822630973753507916614989996560045841480580186879746752693317120976897460704817329787096184879662926590016212266564158482771482800984521302347910191516554710835975989032788664089660123733430272750071112808256554635832029060035771771667245125208057210540653761323556422055861367289448155403884326343636012468236688219346162360143497713725096246063197930821193231910806952910308648424801084503445790728297086181181868821229897347417561573585349190681153545076957105230288742313638684305357040248579924056362882703947778291419371625769963228599588895931515338164282483038664964401917684234130844093411997879769609518516018300326398627812296241035553582517915665453868461080902588628432880203757945813309543027587983586256021560158001500256021074856611169294778276587272026829280197788116144073387481112172256088395426842038980858460549969098187868515097545638730283862715425192362584946773160271482663883421708416412610433774484576800143879059629702105025007335980669244340362827758089223118453539255765506945891255583527657879955235159375439393837256037696269646531390714940732083005620977120415941728815785747727086651497128043504458221558142257972871021832769232671856075939210948078251522721136196665383980299503981222905030860614096030352252031366256572848058089865715610168666879990126814436518760016055020258274118324084482765435347719456607942214137985859599045380975192665322602182007711539711355257551040222994447746088299050980737980337703562337393447671788445585640304308320375115767819809839788346047203015823431413818331166110383062480199516074107068826710220908119315866645862909282052679149105735616922414285148902169630836766970450321979288996535985922184562489919388826426238914920660411589809315900835594008346517744816285782000518866972436276977760294907737538877638271529460175312787696140986314702543645437981614996216965240444107484822696769380905218026166181889910494271356954563126229359275467854973355823577488307000449876411721862346203939081065977047950344569116555613018388884547226239187606064962510839290660394001395472394785279301689191231443382674223127431900073311258667387787764817102737207973631624592735906179567621912580895972492100983137954163266188731030475457019076446930810554792610401553760356119176056821397071101879315480941455435673373547990813052593139062288884896967472250332233478327214495952121617773025355639619263991947790917868780360823102546212853389051440740464563255793756002349534529777517519918815405484546834958317036030368582759322502053177400229472269379494929815273457262284595123695163244824914755728525919072528167573699514677318297571921805304435636789238289591809316220880714938760435573053779809236238552970237720315013129264955538502228703358798814132223813538370734813211771490475767441719120419303252289878245568072274204531757872220143753663278744296519888148125422971371067044566823233665447273206902254830251591253143958424045262619246706707301433248997116135287434603622258694608943387461169227631273247360991045210603621852188601303260149023333802838227816318967098982950298759324210929345491988378188129320002253299212253942175770114818329782713989204578179832493885416446498281589643692306658180735441176511863684125504320221079707446840162210109576240207711796068232871142144497644033425146372536942184317291248462732959451158277525346779414967418776199496077470290062840500477638677856481210266187259457140968448487784703231425325129995875553929234850907081531470752904458885887039473029049015107710578274865487805136358564386600676090150119520652811827359757876281333019326457812420084660508714164328073101901945014445700925381388541671605195938215169150944610360951717552036339254044457419320257310841368254124013515894226212010792165495183481638533294900549473243443021673291883402971258929886050329190452571774422492291817239322879317136281445669843467164399161287612927374604791986004190248718225435138553996132035760109652683306719011731636200738601466428730630533924530097784039242038151825093856243822799188383610612880200470882474735566942738632852974574282723477702428429074438528887532395875778232669368092751055914039370803229503752945467750844672958426076560048181599317046778401230809526348572459078535287245661185882316541507583563042256562015626684011385806130464381359833049950890081759054883277832590640349844522175141029040411224235586285239876447430479831412541060659353506544860240826420907882555664956283447903686993586110883551611992707300451277070856822150743087107213717742618354024603524267602911493951601667858435601990371652725588456642499778218336487196128411220294248443163837015691560514889707689543557493685218002565571051971423891994238745865302478287955265266683599624604786012802654284290591683082397217673846812024220456345114253113126958324207639221045985639344783528849278793095644029186914953093579352259211292124491980314195815073779589909369621473520841596422686814642782072181402913734408683988871270446647042415578540581867177168230445583941353823191210876408378024166370771259254119451863111578539190014937066696511685005619140042760350078969590878253700421992627068604978938910679792554072016026265416094286829086765042457576785441090552231872397931452122980074074388198282994385543368253665022394911995366283553408692301225464239889125852606976171596922048406326070368192590364657610041241022813408030947593314904458975106384633124488426699421146323329285826083071350855878414262131712453769503986865503923281100942517083436096536676103749833820055063217199408610308499318017524982690219281222258916927469497085870711348817286046256211568156063915375089783377727440969084864653905484941044549859646843379103498587702098838131228115258098585120309390042817283433639623332302812376907248398452515852030420708708597566122853764100133003333243821475906883215583536192431418646837440958697291132540581355740826042197733719520404901562003510616493787650467701382524264124614300769742135499742730137320332166578759865512371959633011584515291454065425115068906535027036942064426900884661512276579772557876064073896745553930441760028355133839848392382508737757013358034361130816597743861076729827002644955584825487158838221837574493324651146621144993749622595139986503708572888702179616478788060985213263518879954063399639521691399854649820997643004352456147959793815125324288314396881822566005291930992429891100463969179490049293100039174485203683174568034496581417438606772907052849809938530448671682519963785861887188994393121612780624080648919588357550319479085401770117635864431743661356000655358933560685527444125238152973802439385251872222074724770849881638933406239359198523299212680692315545660052105672679796435193871619309691208242195041606267222843590259784416159050153015814347777320487423218873177850366843064005133248498600433941903018109200744268181475468550130508123148980479203768947001000820274673701087189495513265328654208430562382202085334490022084862808253604249096568365078105334613489243799497364753004614764212545164154905534991856872293996685794821534617032534143253605932386030319251808347804263285371203026000515587303310102332479577119213362852698944012029533566287467981332117148217144958037946202437697500587308823800293745897127897245307155141763470152898192458488247236231504123890491685917915535022569505310853971912272718131707384941382390944590348087192434356475437715416483216287699828399786552205785352323800106512515629529173806372009303074212655916036676594307269297704531934697799359290578566171080886311875726299052698915438857725321318612817741004826184940782022663985508701140659800079634414689355648915372461844832469374135336037487662259100495472399436651193864263115920364019078137120537586159545347732532638196046857591509628259652331958849655566203176212770290001730922943527432865617661130918597705796295135316068971713902764629459871592032481901284998297548451522207132783563051254511170350708945317366936834374728160375197473490469069217893963462954392686997782347177164600118122606585008543091811727025034393112876460152931817514310038609110848547198981345657714941553667670157540167010971938633472746452164291491866640690393191958448252077966363316155214758447117608961766680863705258149593440217168354014082895421268455899931464370396963706859073187912310111477327969664213187356768779834320499930813163765221638772079181424671751616746197427883334212989199922454773707091372953979672058534753036009332730549808986790617834926063893219046281964244745322236059072988549445823319812383771102584691739710929963552861588776362344765907317523260424643779175744392562163162295674349957458686345303996431124545559185651891724965331803120598480610667612773167178986415947043630967370028682501377477201848306538009143584800180895948831425183861791353789780448593270808776492523853769633417578593965112253022545871712112185469534002598686959690714448595151893367841064869429567836579973003497108663895122674637140071643527836076610425595135745022472317853915717566645176007030625668655314833617012152653986671537167635459475610448413716746405554008993878676553596029394313345104903623213032421322296840864360583799658293784220821068309315476349758410187327329502506480363214719749063539608138094459209972492176640834138437748647794321236802191406400212897117675862079145779542852797768161302635756106497374948857650407674451350603482450315725134582540422387196725482320058808627936048368904143263230156258956623524789644812497484090557682033107609120661044866272532088598772562062523005570668438560470485438380113755525807781928882001233495705918287293350412699597327883121189094313118388438476287250606411012325807257792748573368159662417041423716471596361300519498246152536116584032983194074319791468397979746412390292516481454359958265595716912861981418375931416578083325191877172548307539493798055116133732256705652640166990549679901524827295546464693356773961388247527110095606418350302540973464957567986185155709514000729092485833466069383272909728033958077790740189794500977574954145202736009383931022322277914224412379940069312275546445531991001714445403474911338094123032787959423484969719577809546621916780458053024819543021698864262385617612285187865340065855920532975123502401763648900072629390025436928373903451779384702544865166185753989975024642493549167149205400845760210115308887683287914098005720435448809320457535679806996947534896605543578185457433761054521307655936314964664978212663880757703057027414481326524712264446322585953378082859078572531382413152182172776629940922592303177267683415877424395885372408211505900849524601185648289262033365362745849400253050952719868308280401774725914658677248777386135293355297182241978141180624928690587211859607643406351058390785977844575830635350423204252315778781421543325448178514758788969230872847387946994888015416729150027785685267914316656259733684939065928660572848213826914443046121922108639173308895431582178982986215627711147976442581036113066867269805784634931055631474630929486844337681153331201355349218860591699441293209816213007855432160965463829467490234339920034770154225277788717279502514793602613182960801892465798696039480630395503883419502275174828289194207580619611754470606519130947826571485378058079970741607441671856736468979330664576290921689902395753830671776388501881061885907057511811619942957183152067459266020742640912585741279677025411983837995058525996842697790455869607097942617789976383447635684292345221288749609474777205153433988236955685853384793798171656589995302682930650314103283966940218083168474629461349331170191538981868459358242697575858559430275811472338833206804835620911797073001403341460856527829021266367014802862686267260588843111107260056156195549922790747976546494297184103286344767679222115502012176034265778222826865635491777797466447170977161416307669254268705493723873746806583625905956237316575613553161106907168574656887574511461423358972211112862250240878446175404782672184710985729141969896863742767848717840063610998021241530048928897758207275389901369154330094965715531663926419581383668768525857301967149145140643045764613078904831604737566443094967326951508601887075056693310600887830379632602496931878339751676432950832842728002766297236153378121976491833275576597438989026418190551225714254424348927035209578084596149314006402968937770629014739281422606559956408575310582827820311961847694392249576161294177573194298375706223146901299433769441846585764297425121267518928802831567861885775492904437350061435145711586462846495538676355017663436548437039963388832231905494806260669885456884726513623927883113118434374795213134851156241075947460845205449561558192033308007688421318040144845425666508694924986411995918608023016284853049335148421032694642587966864528251676048378960836393125871606606739114914123850312812371740222683786936347331773423704297980592553289833576385028438389748806739521045398485013803174206888637111315342541903347021269731608637897773943039604186954342538610782505034163231110376698641382904506992237310673561972723003473863445234962890907946667924167315580715821603237987537339244706622966834065457168498154621761582059990539287396522235278735636290264305936060774436988205831474025331522626176186731067847611452570022957410736980583778596928135882664203502297139425695701936350125615746438516689852272434745615317556476106129797758425688891606046348077771037001600845321192711450364988254974177778090478262302033057984786573302580768584917863616253642820316856620195152597939844107884281490372013531677034993441058994056586241142902312829882143626646534534361111540505619677184483897630793622300957925145834967140022800948784168994884227136824076751660332354238717909358011726293014248230595508227743020638684654354282100410500809858184861888641581855521890266657096128644990941653639021124420708166250831595225969508992379042814037632648381085512548031605408692550746367596858041199784025826456181880927586738919647198705905342744930647682842000410174155695623244695985226492357606382429822195455207392920342529236017115712871919907236579574889935451396756867608618475551833642958897053548383544782002677069102945509051114994471837736594241614883057832084471541650445869244635391105612307756471909186512998454445473622848648948169577465437409865423691220949070365670134289506851344085938205193090158454400753370255455835926759267654163150435554030891108141589780281072174724000540856098723337458008842691796226695452796126110417856621215857965743630468952659395691351437921129284024809433205424916765514932763041304970004799938536978857107809467296061913542015406559292656105795038616498289649588625266222054469269361062444968235412747770765821492197734730573812955093703426310575222287860061492626496693068966603513751165722330432975170270858178097109124614357361433364966679957687848511014229721293208005167091237148748752337179379521958126614335061505932811652053182637733276953346023295160081223086425387040017081454480760737930435984107445417332471720338823627308459279154176003176871708158821745916720261275262004926592345147124644200865871746310036358462908634942129905564079927224030270228993437855783580043654870792864764740599430547384595836295616141842040885190187163470756399833186356950790093186515246273009218403511339093733865268825506118522305000989745748014237318963493494462217245760857264589403797243973229073746495233905494453782362337938864599826405144207741373434570777125132135259981722374846181946696095843712463928653661284860599176143977332805865838856176348535896386721515882421595891670198809888925452402401922211884451095686939089875089283344591995598547679769063223697753060247925563090922163104170738646489425156697571814078110526349630251082241027861011948404562901707225878696256358533480244139304512515666044920163312794560925628414923675179412943613484962442541883371037905245352600771895512057168047454598859516686548678091284988220175405830944757973416793912438715730125116308171261038100044000103291045413708927281699965668752871661111465817182780074180405228702660022586686052012364387762016287749881885084611972119212817006948717335953944096850269149014870567667969934281531843635324306757005065506330842251125366534981411391325434623229881335134758106243789060479118435288219023434441784204299300070016459162792088804863138213643389191822975409385696941473847681558312758322950574148205526582547357806376598756845137560487668140259419293795585734180404223968276879875368130889084717718488295842708443677619570028555648573322486971264818479266569494447097414552408577699141889072664869519315934253876331937966937605257244791473566104341962561740121973469922211218205995660062082173758282814087975364226643270743786060718718006225286733262337666745459520593330343506366897998133372340148647819312894717915656619552129142320385936349235715447639087296914065455127917922164365256088411168555714743944754614607385283728758224855169931776169101433403194429498825736182064415101431262153123138521827787487250435254934368724222826870385897694940555937622997122513888838650652308146431701752225850690290915961714712428668729332386255645170273196328025556925817091862272953466031745693692846951544625365340202600198776746694248196325947786303335087423702424745569354913880172540932662181144844281101409393837139513002907736617813937680265802052307470246530445181334784172567669175182561379552095833898119058496636635307432489874591779862364155254817527295897605826864445055406274928069689665976912185562042755737901903626358239449457991498993012462784606865958366583891664233438954182012295567366552844486402850273204253983008562293898816623803047076497726018746863303224963720053211513610103969164832748714022469062962242139115553620776622916131323367867209746308592676718605189695894846905979034381465231147539675466996304318965145200541116208325776632311016772677943207258229248754188704684886708354038200663325476719277327679831851833132073837824490461025154410520632677551215393096289725217277024972248003274181382790294931441708520902562339114605673399352186298035124456735332989990579129099533861724542534117508574404599848656275930101821753204493437098216845967774511598376305373136691363314745082557941984717543547909488768161472749097389614205408966856878537563382129881404524311251307109354664143543129132090118462380922094376711932004290604751721648069180654501186534219812725021016157062107083919421949393342042874509472234158892188555183811271054313804634657183677891222580335198112674358698028356116400389958895108470013658143966033473354402442495173083372866285371125887340739211371260311796965642485618946356517850429483849758666679176251681968147165275389188399477068141736478061704375542922064321116776379828313954438163040351873009273706011820552471899510279958296380511734510310130261524172820920818451652524534785102430122867350579642225256226976003602925247759348611490525189386985710128593030746690097312526944398863220841207185691087528351282398764235129173002282740250788262292456159276261364025480397320312545817450979726707887303278093699196514895019831269085432772414215267628238792021037019187252916773143530833158473509741319892491607818133650876006275300363480245469042579043771473195442847423837637656875145819891889255890435044046707172550497936347729050467265201123997203357699602480279149460212515164278187310510997662419287581654417015624263360536475569167833447484878446130864875506085346428577183869297364654041350812648985702517910550323021139691531492772350656843972828245452808899954176174785347244542742981641681452806249862161485270489797354620433826642082339912465101748782739200573735868568243537152170344696202380925586710125399120353604675140913662152268993901301660741243470736148172378746845173928450984022787360973814892897451358222537075980855438618241310540139405846986378216494466940036458477604489132082507366789184213859077482914973991943983241889960882526711649186541130013495172161388742877773239200854707816047177869204596608089559277447296730958283716471972943992680236873213499615357699831733971823791434733647009010831344798820381833201848854352766827419235344039426385222017073718818060045944876215561042149557055695794624889722614939494112138501692259263589768184863396606942023485397710054990608957047083264497700019090514673642393615974325882168961882470547487504795141225580987899174784975770511459623709315657564523067429040331086529483275842592958111692687945341627401128610846039192893003265659995251239956379401390162348487353528817285039073631712281892768608342428080955457430321397770398182929006658565973001476607471085868327321904661999395059830263228915755796271718253676293175586203251386646781825303173381431010452795820879866017096556045595865006421440529830375806294284978281501122245966495562725957884837572133869507498610181315241944049163775248917141510781115830261623052789117925923492677260503489687305021967051784205001922245279245897276846136459511138040313821631728690834637147679155663329805562028134109257974058232908413992796357082703410188446047523186633051389138134393712729472064840235583364860022838916240417855662458332841691404970388859589099643784194509368647281521107115414018740094246044332124070573876396864325725072074511508244742941762013742990380079975377748484494256808188961926820143924618852504432661574068999185416280956609093832216640482735164143890803638405829431058595958054855705715501811157865248520366682260843577583369834740760661037671707280225697131709381228589727864667312815919014344753371225445139977344487505856590023967131496647253777980490900859153497980337052528855934704913281187394935016402401628274050908333848948987625194183289192175979563846853238645297826870018952477818291079907402809739640397639996193597775674127927932431786603351425082215449393733872721820917803492072558624413391698430441715296377704971865154361441806450030124810364311693999006416889412083407012543602683540440228192470688613236995748115954455035755253970254387192891114716203050105179481652951106563047855629477111350171305771280783310928194661567381399735048643118698487002662750235272238186246959671074348129171222372755301011520043117337903124608577737041325705501335299128677168085730107575645062193377798028914863942188520686024771546039941146810086695135421379855939739454827866456508827242150318700724132979315732169115198044616506583882458549647200045979547121910560265697006748307366946495842873305179945466896807776207270349808280071827803577807964361747341317966753724147867087271469907565820150046263437607948036165408568884550974894021951141885255621012001752825368010640110883967876651373649988577619134374234278868837756714660891205487444938751498229010480825908759063325771721859274298831992201223300141665914213429407736472336434490843986845491088265504350145186194558783441303697166792535800174803447703576922008558124547402706353409243504943319301784122606574724085275799783668267416430550468634252841613537607831582222463527445738116326073449518228508239376487091508408774517426745663423024107687734884982408925966167754760446578906906012917993312886617901850802194137845901301151840857948637258722508244067114891179103797800912538171717785502669842235581209280373107965349794406039744216946597373746072763095672058466005238378811636278981930063228202907839368513911357687203941990196373088028782527913829433413766453610054901152263655688116167982655276968643545563644584138158210395886259134562254550653197841740126428560547405775755421023104846193876287970691888639607238513253680255225400313467430029925701677452861072137988447726201162795658852050247032151923338603572197156605396784100747821263714211988374091722072905063573453844499523586375550804324462665640065147203858227359739760485573632938083362764750515367058442503265978420115431668572587961138661005581115673078983123907736814446770773733749511450445620800442202048308991871741332682473052425058485145519340152796812447026272786297769863903380290902376270847778337366318720021635370045846387150401779931686509466412519530369545682933377070473652315310923408799773748956768088971749346461537796489303226872778384240466533315812745663244988937550273271535653473456727325431185991169534618110809121707293139174621971843969152571582017959640019266104565617537979096195767182698377581154953949342068359695112796902553575296755730838720885171552493318816549324302468624547192337765523978242915901598497567472382557795716584998484661384147058241871117305742921440096486647609901919741024210128673323824843762199618656572583702611605491067674773050765040072795019566751270733653146091050174362427493492390496533760116020168021044583701107387318387385541916281073920575533981731747584386376131768243088369351486177897374776372998909218514356092507981747500803891582511193223601842006403021380776266761064389915096989625965918033163499703680520566041359252223837980568365629808039895454093154707701174571064324316335393777988778297423441603809858649887798298832594161206464823534558203453432393132228623638367683336279562082912173691952954356051559834841290501334376877011831234317692028024294928945405219762094120353934933429175757430248864602462641662403072836217499612678477904806348589647209094127178459869620698606739650785461665078126970668336838861392144250448519798350593377405379711812238957856113068584520629645645778433745839848389188307239107134383633528944756945985320660590434418984181974988305933538964114170288215861340013308734995708094119365588358449665544735176738187726217888549773027327608500261103110369712309787707769593526187610201934274290416107989605287249954608480611047381332768712441605150129913028458885713114454684258449548075410245530530018572133201520651568597400124940507580463297347595926399464166910760431846758878453556106605085694969573255941536615242497588301610041579374118714070087330296740682076319703677415591901671217468262712095172752644825237249847991023864203266911648131971106357507584529773502107331848388195760352179023693662249799505454466727545507105781268081349371879855296947919454035528704318925377027165483339639216292689047166937680290215724795479246093314608333295846668398530788114281543223204515072447866332081613724310441546262970946741656317417465259333719769096293333528404475700014523211957794366551066216875993607386210205469620576390765507505722243433528807110436564696253636837492915425466035306998931843627942637726247752305379586349401401348017287686046942268061791515885793732409716829492610632676716308328258912607970613389850367974649193547020552960378555690487205569719989365488334301299215825528750930831189759806632233124877339902823395377224950925199583793913667928402390257072968028614504574378009563413214120827825266133724727625066674789936811419019940842827574059304502721799325448937502160901157594719005266946003744348537319406201579898107658271227551390985144675862711179119559031501707747601447161476120590096930803893220440793614803956337149330232147149725917682274701433696387234654321268977093924815841494086484473509156053443732351184249283984354246354318208046573982377349020251554269619035043020963846354527143258299347815382526768937523947902022716142418914197139528821933969499408558398654160410850766906271143035387005765593975200409810962327996504920968941710530425418404663404928541060461538897370307172035577040261973001013431543272444873861976841005145240435644251282404836156322828616373912755035947885968529882432855401802131914383008988126927267671569770536794821802049655541404469851668017202811908838818441752546863418590580847271580975350773789646933269331600239047799558982202771497804474692033303493423484516693638030222091654633108196231726864187109524145031224649959305628674756929072200413871009387493207109392354653942979013984957773872643547324283766263613654205111675160745800693913502188587338485904707028676670321533209946035689782485525728017299977968367295522159749158564562850147061797219813021015118929739636666209785957925165588718383675887785385357879926723810215349249256244544323831991808776019483704886971144523429088535838862189245014123493258104427750515424568362803971919964100669329807738919012866367547604516082106040079542941019268434693507062221725853531184445466357657374240906336059357165715467223591022652651138230394364852827928235504288557235842780439733430712999083273952864864717003898429376756359038014060786294112344059948063093640282368078505004017620829126707511198738857139164080606410608512842487387524229572746491430894314426369014621430054437419907968493863937256435535875267715128214849706818633308808400259819966604924879577626627544160515713617705911698068350650816053467565314767568406175540997645620558198796311984253932732476412544002403946100357508601866467115236719497336027160856640782948605026925229508336795855916950210509837791376096722370479980112260518866760560826205707610160971625304469809720335299791027940463676020871980767889541730422407945884631388024807202844812924179621585096635414633723079922409751876412871353364846158335209873106656923384137480152519982146903032792470285141865784053047820997753205379254289921062121634101681366943102066014140960310262834287936214190583359659956236725147456451531658875976825620317829321225068353835436071357518510750306547088924834251584749005973008204657239195453193689547987800522482208139099244947182668550020799533805601725666950318017991704299958098965041622785017914801392393959058803065396728083057778327866598267329701310101253719103676315047280896950510024003903157957054061621292607644794007633221363583076190385722120919609846131471990407585869472471567497660155194375789907165495559177629155094311983348933966040005420848749551344357509564197350520720728028490636223253172703571904324771218194058938525148930244829577350388078771305374215646352658949275405398943809920008718590239243561846602396340659373870462128613100068117970032876867972491494383477357723711224175240955594347508949970490612283424448207667928648912643815979590539703321116032058514643774302371863597910271724581030285944465937929130161524635846472659524578153540666876504734375642935008653917308495487258482781463157628127188109529367300694812724999127942361706034546525697230305270621494210138094906872656072308476227390783139207838938365842610941987611345341898473968682804815885559016822327387701121152455356577663280214475502107207008314790352173355149248942603929459423027513586114690799656814164774483647080755365620068500014507587592148862006807227993456970718256925385168126420755974743090890200049854759281888600806442466811842978471819669440260570604854319998156462840417589400006719894618887889282637614675658705572409076895100037135488368703420273313347364564873010249419072743512091335982646917644530922240877765048056456753664471611133694393467916361981209157122577300659805059610313741098348511282776115136307036815742551070892817863054077491249149919554587344578483459191555230826133136960903751799085479631946539999098655721677997640950823566718447452978663058683328993244866659184165410134288507021651139604217482256369228290249743186920941965533068856687671545042511053775825220040015319249227570539703410637147752179807708868544938627335272047740067507480887452705031487535659491382542618477513754191557694983861656713245748220618730952028475452390298149925828380007494411399050154537202842093977912517744201200057525251896157575002467696725637952900488980523339400675181194729283250868274479462501391281989901368922608421668720353471931012698284759981021042644211050114960574048710909088900441671000948411129398927069733602589482296594601230506562262991785706832749728548361564365484782199369626751213302895603443210480953592071256469223904030372113927643667007561978215069326839027332273709931895912221148908367790880319315527386904265730253300168434920938038501511667758923555763566948706844983509291587145757872216941292024375329606087191920658658958146309582877947216078023244385400875640944266736608988810662501961880046846668414151867984132052971631497227527538739896700329792433377890625697701620677685577312959793290017228637057264855603665297111838657386036745382839478455555596613257788014647310976656682742851578029164524257721697214421126698434614525818634795195240980291347139514850252319961263027506689126611174549771447673613166545443100140180802987998984921702105094671005330582036497008762067603419518644710684667559284757962121721902961476296931853812984824193181784577306525961463772589338481317299506154294659510152463382561731258333916123883663578925104256103830822966044907722563293209296785825966264166139154006171727130946552920304950379950105752073042504459884479115512613255140576376012924465532432524860608974567029089640200230132083650910284735369407919238272809109367579882721357863070389558131624417660341728247672040356451030903974005447402769771297622283475282570663567962782289003035448050646371654092607303880739024782446323708524069899201633512459034366369371718518526862319833912167034306983245195400581836583350078959034689758542480332881890409790295686892191351056482605794237911258131594631509477214435076679361510047881751281101558253858056587580754080934893435344146746866614723904200452836921027397326278451580659242062561726305493092374449956370830654227182852320239290620069737104528974589369561617011376472365433034568836009730551279540099058905579684562475439004764841679838359200400107757686673339522385101287560536578112975243949480234322642366471037557940056407099797917000452764278631245646686939941930765076194598474187773936284640963933582285729869107067982699126412377953444608685683579253874824481294577700693360491184149744612501077588493994350322829058990051988582126333122449712544390344554738236559349697928894848942062511529237379440295221460677437583824983508419408775151565120414006914954889506202909784854450147716203177600257614569398845661907232235207732335394432239491391422403675548350250544389739350625210638483043763201378520593522646235466443234556053329048075195279565938333376279437761371340068496388828969313675284034331555678020498023148018862719775386696118368804752928633905260856426858442158533528029930213924273576261718251211910952557365305205615027330549685873006325466519283059640337381871524485522764018783463208836537390955890409534963107610501131058333304028834100447213550980156580596911244620744155637952994360746909464576417339857859721221748935619586543358302004210781765791678955188895399880013692144189812722814000013578849419863220833884169322520935560968856166950916043021014770825686377262009155602560688706296896892442908446835823692196829766464550603121042338871368527314093721436037033992780900120915025498571009917071698046073907682214007452215486560736285332632821788294605021633936168461107505919935595897556840156999990861604738719133330300609991614008189362138397145827108429110596923492832344029940014251879282960910557529369188683511956721233212739572648837760449442741698867239195190071211601426422592301830200787240084033918923917181309314850594688609884504445815847275401325221848043778582749067691311683909338641969954451492179276588496820528294657828722637357653456441203773365094096198110041018512751864675139774612913899003856947529199772405111404825931590248497637222363126481546363171868891520614687876602061899144754292204658712482654468391952581128196770137327346646469343090266506553125627448395263578186400356611462167127301972286212993780922886068448690070045953966940169394563058150296308038060559809332870076615661424967383900751929877688305520057103580501206798948550644006016233668269608775456605443071526793773585741869284170543746918442133395560244971183271044422486086710168607982768492125206994348203902163290021782008413583867739855525692292326572327503616710570387547325732469486546001974835612483286757352854035614643776093261878103226523025480843688834542702892773101002427050287653466157853430085456357860279437598355696031374771995988978939645038468308818988422544647510474821809082985890261918314937523219997874666943398121844641098072766353519374399923182054615904448142774502322391231224170326146067110745127359708493710951720438211789481145402995171630392927140816652081361484091914058949152015540462224686117315735651509397843554558842955984361138562343793754472225137963095529796150523607669576715185530957569247015514301479379922444268486441253934044087870664750875410782405956912237997717425611626255756536931618595898033022807196892414742744302571706892706802972946119066804498600317907688641615052770501937769949225512639566613538974111210090362408138480875676618173081321591477282347856658355319428330584330785601667402772427533823808469200396818617047128696967438643200706116739337403876024101967822565288088957095450973535586514728235485038277331443301016768752023909556618411061183545484609610215354299434139228466217765839474956700149686099820869896974064807398587894069056712740485998839154747249271314751706166046114120177764836086136028698150894536559539012275257641825895872305296678695943825402851011354387620429388639851435171784709297659561818217310646649621579729765750705403290672862680859466805358446528005759899827939156617309249114821436672033068621716261106277080791729056397343028972071346501528900544505400497448388635108541684965436608296398936801836431741138646183710062039258173696297735862850890449831067013119530555919481213076577482134904063300611827394496480088042400578415042664948516722102319286092257695612369245118551425984221892584341039312741958114821935107973765107200267020615849192558237335142631349697958161802707149271151240873611401528867347149228377375702683016343538705593693518706782699809863296209832499358017705442032574306384105887567737311812766624023569354570790213628178197558256263101095623940598250782772211157054681210920397162983093128952245881292260557087456729086738271800571250201600865325839264538172015950193836070419886611817213216107704878349016102281973824771767426881694495550647998440947118691018362271206410551404336778719609626579934261626899032024333386212407552897834730529151425167398981342456659349025717474694529045645469613658814314930943528830016065774464910651334652197733224630784688522735518231013180414327781135233136184747760057863934055080024673720280358075149010355051859776568923416798519327192838026701450494781885279350577340659460285271430371029608241487764410954113069605007890406982992487754899448500137114201785063373681413082281661818864546144656052142411272949687723332516154689290945941236546733621404913481474023713992389570483365334886197787023042159120929293764612663529627449005813384162550372548366599450479055823335445271866448885543423055581335125405147603907203389793579332221464053754898128027745074028905947116069985335993357928145036151869627026740632956098690501749337611572604702446971638320402940461081657481875495753778598752598232883711916840981353370632166902921872190241583523529306151627894579405853147044612231903627432211693367944173049283813090740478387518828988670867228646462457921567368905625187940557471112539220954071745792375893480018076528275448798205602869368217546038338779407066450452959248663041364494134963644372712053835280215065033887612505776942882919181864998685871236586713510890254112287801839923330317464721817431441711549590633412049961581424802577034311971869254744309501689573404071215519559264508194195305508686250600280292700401051357945010850711975222943082217090884770225296195365063589837844868848773242965149511495004415884916459314179674334618000227059216926666764594274617511822734866825547988874839825935795409200623276237574482848945504447651498068939551764994096539420284005781671806802458540140823544390451877286073642487346868510517258165541691061401107394583308176168564397150819983752749969510532265193682084408045082653657836763892304660877724795704544574607290456892435830017283165286915081703746898877228139534203109496022969757909750697551333315058447441062061059551498962687476071252435960620728194471375174659127834904839243941535356310303369722494362905911562916316376898049799728649992028615540404345888564309969482934623527798716119424038387546118476097727489951728033545991398208098475490224599304987374243439175050610242414423210712458814921957264785816730305567495430223454552435313206763537661557359033201852530027018840687241332294183903619731669307670093537172437391257021788973952505715655004211277936351408914983762829265188440450682551645332557202164899301761007396160855979590531904348737066277407786213471953615093798285576662140653519427253309009806589733837651460217651675040208251206849867905659221129338498038072029533322810898938981091041125518053765063780124413785216241200567185763845190169417255493126258746330491178390461833101352555760336096407097254971393931957212863304696800291201238105158659343717859136780287235459356235196742719572416899158782036416023136747348159584117931704542687952724778911242671139302917322212550186182645154723223046639327002093182344146865618811028521487614534182824476330752135169285176808443111880650280551282434325646261044946792725617516962282176541844752239676943899659756601794758003637059569753245590485291845376309267676315050638850273525934405335754400374110032966683364260607277420144483811849534050799085832280631461329320951137974984147240902986307262635359947658877151896336649573549332910964215168678194660120627157039498370701344687128935037736181977903286023471907205732753395487562281857238405672115831623216974312423173343233167415907351666184344970757662327059299262300817794804215918704751687820676649170266965776748775019898868639139113315537460854816389857410108896668510391062388476057656738281229696065294025590782977232946979775976878874455330193772001901753215516904861434019425104632295505324011247740346600851764779418182266283641012291308158025813527775401394421575028761071452962142661410910780198814378130837101162849171915698771266419605552729702444339998659471244772886910547809071627909004601981659791917313463644911506195022958464870728597504695968644956579367766214277476142871930567025639046511899250672807447743018397829833194603434982253106346052353909079211629370457992190025266320100995331986746131101092053528010802953426629768699580542625691443910410540377410177521202603736844109585198374976859290931554333389325755373732819824741847288359013578390023415733821272226738744185893254707370556331777702153702138082654273146842708232176891644113800626409523354071358617009995011418412333740975711117560922784262852029354460156107301660615645208522604437606187376725977050499477971743459847981683821465974699144198679467068296051106555038663028224928619889813114915341697623790906030861820381914794844287324979975435391470125404434591673239550718658137343558381038067528097936021334913171122102321653712972741587765955981687645285689150506214193380879813882924994568030191786302807378883932362313918370251836202358997532292587189321662598060152580935365181952197621596002431667582991265827189886757683023049585839621762370185031701601807801790935046830379433252678687976911822352129249475256161664413049839174158858731377788257097399588082671629011306666645705691924335362458204482201145899468212155107074414433270069231183190996496620339576216459915584722932857845271149545356241240697544499839682106360247441246923456745653036597692710723161203192437062807651138898883723803517069587841286437341002562824554775667426842436097944282326956129509205609676091931190552631280096713458897022202758613090349822976638714867339858066147778792887492152191568205517520237636905195135999995842780722888535176741388171570049466106000102716716769239679302012861330304950149353210524594736950724808542195686027152198509234005923913730037877111575739550791891104469825302303284736533231615635012820737168130151289469399484715176967741197146739381598052535133840085045706845741021400968409374175465833622606385236628197687056613380995885218798086700922569505884328066972770948729009553102507772882490057041478788855697508296548374000851598574549841046682285686726976136557055737565246595997445047957250360631004416635231053508896692974048609803550266889876767325540863158185812497840735887422210386713804940658234858951856000512881388054383694911831546590868722992502219110812184783633199000459410686228994613198885660384688385310584608364194400544032310348001614205391467535990087954132503032341465366927275165249960369967550537802612520719015135149431757802810870625993562751787783158544500606526935430348645485925550883962076404042985448139425700550765825633608523793718270908961188526487832285029946308684324225851124337982852615773789821586442939745533111311335718602789722896710134232092621178966755972856562417370801600954650326245033806683424107304444737359714044287827622051793156295127533081829794353733981693461599671276018089751679505152672157376839491603868412068867280215195933622251769870066036255536562221159635876069895404518579297927318222079993373389448340933437801890616432775635238078737487925417621935263556509154267279540315206732372735010391651354593455218909821969829527390227631188529654528488196745447422399122248852863999735109942005457227943564876339954394982021432161526874675250900550355061409350266643664076067519593158023099495990668188026540668532166691472531038570018016273874731196967293136959740612145825077322322817945085685926897111904861769866507767870069931572259558026996939256458876066459810079192260399308691119484041916528266739123541021458735905584982603954842977737852970802319801562573962210272189089833542874075060396899167968300984786783933484674455025152291866280010247577935300671898069972300404386792381284562533672173134284700606895717139527547681896494592004027481090309994334128089718056450669151384403525422495670515070187368144809632351036291918051197010678684053275961085425474801708589662047393581300623266644978819972170358734765226257410250104415155294049885125335294905872674677554199907164344710067814352969770530263227618674817647061490501026157500475317169769243139321490644411953210324154918002202428499050443393572877723425574903644840160232653047605266031619259019612121277450054719673076934185262643977176724149451931028001643077920772160430031489547256035263752353322267756967023320984625660651768401083408362435572571207545248330860318984582030605166555329769258585161946152974502067289812792074059726549744417025923622655510995389659946452324871089206966492530453143952966892661779850976567788859864562499796242182771986492767562983714739128947111760860608241780594710452389072516363947682725214379162113735744747430710688967958868115741825522740306733133468606581019802387337706255952343012606394613364691804374818464189628870257882531181482399325479108013810383274355188199118498060942740511018544497271959964656209057956327413537775546652118882567270557700747527305700607743584026645497087214226246675617486823972230548361944800154825780396569845865802572550898413169628578149638706816806562136887591670345357052517426571213956042599389845996381388768962026305302578669150030987528537912643670710719103977805291366086554461240375088475679802491074622833121721862134715022207070606737427323237775035827248626352856497293409890930421315343530082381071935935483041948035225392193362419839186553037299444633902273242949311313881007857740135266461741612545427553058938490529677302001507236400170270576553087143714335689493388509238220041038207497072176549135871725985825155349668041284946630587345030254609259462731344595840807901360290775771096149661087670045631374059447854297049504986425782120005913548281558561131939036634762333453331004172736568444225353363572040276561574061194531030164527930944403461073543197435160729286712013326834215404812784414337482819663759246660576269760424525404185111063681395185744012175292456956031021292585586211073900924195231220906635486244605520574749091132851240359078392484162391959354119726888084683384656408510610042101784790668684951127948481320544426668770391321572382426051548522037365596880629036424012156953828070200566701642786004374895123925122011043667748644694934443896509096115532304077800302358405464824692790835535779340602108936674064561790475167103256701580894230197865523743243687215131902598173777846434916437627437176212623347247836748009537655368070108511067357561045878108390921216358598097849113975965512181262352161904824702910801476499701071700246540023630413817243890329561171730139691858308343140053001103315076352536645030932412109172581200802612865744486533281730701789872135191999432231819840620066138256022274208452021036130307551285888168238172485183967834249029540445868050504045500328000641342627300318668654880026469650851773247682608708409367568073557506807771815683625894813317601848951794922465195298289633224713583217365200914971337874788177183154456003509620289024993300787636670647257138935759814167390186496763834618487249793437177156530342468448428110101986406651731154088250449045857097754205431239239160854704942244977776690125622511457214834570399355448870135949143971653091725668968123596062952718006103821707691241230490764246379814620701729632754973739849939626007780027093053143115868818630663249009753023464040534790455012061221603781662088702146027300673370502437332948881333889156007023113453351570367295162563126348705030871530383393692170210113734478436450679994398169105421391164599341006939213313236528671049919330387835656915630249370749174533022031512360298807344960743408205271508579645430121414251041608341832375239604409247540269982452794168555363794489735282600500135705764474240520112870033931514478690012343765868487915029097339251056369786713836423885246095150764869332977100723395588855848814352924068240934759801595781816103900179246985175499057615567172418525312415618481891338816889769674330914529822037226466786134392746729014722250970901898880342128989638626011991467146881578400812516798504749480348426087053346856950393990243926957746305198426333890235249501387901155135006955686010308273911744938086362705938703452824329488198258851413090929006708495753150917937224197580647573951263877742882269420862730478358203971554891122850952674553644718653312190379449138185466041330144643695790863531285858214198194665264018091676414997891377846574122998644764193727961809853540846597450886084002773132339579458349853226781366492494826797286468335168967424110941678068016255947575988989778998609409010724211190711697266748418241714920367235681857420454495823732809350993372424943248019839563345998554674399797081606858939059559509849109816288034614512754796770063775412240737016755917779291681989536710489582264715976575377162074717706232930623129659607077282010561386091615097808811498338354778708964496462653276820868718035445842638505372477278385054396150113432684793184176171139718960085719748233072552742479268382956116864517769215025589442374635959456665162076019693245066660065452953353603907873462522268989171017308022794003198899477180709981172888935105932763589562279097878000127606748742072444798140044324749052335863057774594806205917672355124151267965311807449089535535531708793235689653738597438663301475483759229929454329918130712748698027974804031876082869438657140767998645951946763515734977980793768136610895099281335929254958528291610079737874931537122002557338655742868333579960833435181752160842164940952221034741489994275353740708410517091737213479539218003909187326854827935066262576870882149900743007646104807558087189428309342641388633098708324273643789846010707307096369752772772461848149026183845304489995933144943020636287084909972308617857082275003021297510787255836493063507067307159712995213284774933584281280582542293638052573280344685959206063039527177139799031952146025143179978514366615908104949553577228814794058178203097266129809649701952918064551840634782107432957480078370546980401224824648332350769107334951209780157551063414082336402098035179017454368904702857247626329384271031219429855030330832573332835968511893510009661600383398292449887867918960162914026061272460592045536325837372183319524276966856061272301164113545827821869217207291173978375057206477711376331246421591470615936100096855187924831528400596368176360302899396851612360349795468731763620714826103100415724703907807230746577620731927270037012515531120910130656252453381942104522637599643494171737164771407514413230219305963193676023434556580248158138743126111906182790941794943740355222241591085975292917688222766024914419833318817915766252202509994921073735384030474834645266387708556711412703601419992291743404540749264064065249360161347146792756338595657459025584217657921885397266421601233921629942708257779201378343413313815971341740021294670197780970393948925378917766343277222689919299048884057078864373155606891090569553696273299732352912920077214629238017542075263233447883379867038721212802652957747038257267133184685049521653782858020052311878123566277264772789124835012614471646997882075466673597340574267832516751087284573987435799390084275768761640365186690854933755058676391827846707010336149652458625354832817916438320970253842971404287088895676246955037544938426831453342847806650056328760663331484612463690877570978178595074294034473708493805307689087346874140602224013409298199831954695322154904581294294064089654774421617976328558800500338991540091581498375180446921534549085368512880973648836990571914539176828134319843097586852700438903516633815013097978101443468946015155673188280678688941702519345982780338283210322662358168455183525083681336057940544688507622739081810240996621317382196299989372872763634334831347732633264034842945730973050405623378791915109014424261042236360393806205743277237887730537267787814192206429724419044573447872688115426750007927383996696479786894124303547765427175659572686093081866350637990960680699233885707112780998381087178904286916506794910473958378272584653962645483666209712588725132185228128566323033440968991150855305641667297453298360596436072256143905407300449808414181702640680822443247243330278279450888319493755370582227813338039949353994005931425299900552917380489050651570486912479009526039976209179263010235807004785813019177179030536561257431040070256847658065267201012395175576734684318582943790695369437362092138349612618860336926074470439812301222211333063288166232194896601755154360455017466430075645060335032818255293742991495465919347224125664176148210789202088810367971685808465167434506596017625809362802327077731095324020873313619295245250820581702565388782886644232200511261384914055455257052658126041227243843626176352981003679685231307751611933125051428248734748170448387363396304883198978127410540797561304814348730798003603260129531647443081402715765943478100735745352331810667993167518337137670474668929675553521254140524448224252743525787555099911406824861625112065179707244687707900086357830546560165992259064232378043610569028862340779543197802764446512564521909816102223501939315254655211794103430549064420243454458320870044649799611228246726936418684700363015097641278524684401241902607128318031452633681991439049308055187787393755883401943531043072859769071310688542055106008757243761654072950760261630671433933447924663513778796307479898108392287996342949111340178726588573086089602211248708668151749173006935175519339019622089214800244286801249724502720981884764208364464837717945651871560456483907874636673298507963016621567901045787262293165928854470784389775160149569779148878516026470522353474017906917444825610323187127543269725617202723559141406137004193284915353836629250286324775003320609642727476384552352516994979030773340511382293428492935231333845613323204382584437944120154250550082393420406728189184549106458509062226850273607721313326903035375868342658703656073155866091549415491471462643880537894524907422781861450553193739775060409596922878658297069644752954912343307637765745655978560053468970225741786972583560746209218601491174132563583037073687198443036011413373688726719796555757082061245868449356220008543786442522215953949929657027790177545326365876902668752176232476070030673591054223658780234063630179593898728462308341755575416984878529778475432564739155873559599857302748788050768587191207970869115986214082039318423246737289205156648762917166774432650628861629800680630645009501560825058914908833556010383819715461586306121764189776252611520272818481656451104701861756085777318022948310387139689531263261319434632855417489139016983737671698346938616257334062071666430568700661369697894270865370632060846391724537330372001733948330479101389024687994187256267519839792822545093830250712526130163971193019916252233477767478210060456597615789693093637904842801370194250561379493149647648716836173484719814081120212580447820411482966381288303854515284534406602319951486406179415879192147738246574481670026862345240085682440667717661391801653638746284892598004948761777620146084180254705808329933233987747464036146842098937754427322224526516069032717940662381094731269350432006077633459011968649462377660721758070713323500562470584975170296361488726070575875752013805970272157846968263011046752986488814884215044750488008547386427488928776070319365308234881615689759164797576804483070560146825362963892648577600182539838789742919213810789170909925308059347417730811006049269775734293605859551673373279501002681130687280981312809439130698755754960021709620321466312252739899239012677267769803773253514085872821853374653640167803716753832749795064599572388479625479625158457861848147212431739518483234634834038338329673561791230422307863856350511296251050276816610737006757130566538784965541871379188412527423369844684170614914752091778498184048485108096785366830855353107298040373943727610211053188288172259865532076290147015080079998473904073941523847672606241729533300392240677311467410267098194496240771499253527302953976563694301890026199558104179965559555176038420727214559822602066091681697928156987725856066045731635681523079041319716070077761877444457054102654327736219348818223847538265455434530627105327236109667876133854061945660407675094943234942535262684619471530382643418894509242914472550278739752733058250033884666578843875719955476956932900804943628236383447112770554185601254155294747789737729368792794111472500240446189447671077302434506345840780991537857629091358020095479799233605951937987312118543150170304947845123835853688723172614165075421561505220014909660636232625441683780178539438888109404473013708884349854819915254313165598500597521524833347741221539235967783202584837065164701624104696394199988429315158765325445263068616739334050434176347967603472815757501428348736565307634629537357803432288650375071197706526023656639447685526011180307710628654078320018902137491683491648948964635383880368550534731996047471692851887437639462037988134007163479068429228741433823997940139060941065063165435614193048268664001521049931898650243044169319015251634837713811465255573623478132155746170185128721928530842308400244631449536494514451534874139609524409534332454049196867043049643837733398139044764391697348357354738651956680833216757087023094967771546854041651318560956511705950463848705868637670675583473298217713860200671058292284068539589646244975191932149374949544802167632707801400902073991190866949137932899261199525001297511876522960028691598437896259321763235563809478283901104040413051127049659658321550797620203559853016100670500114997967419266377146856326766729012931943071057329163658119338531592794619968428374872314268598454671380980825096590156641464521648452155940740746927345712529918251886513592292669745181829924333241880817232330392182466287436581750863379879471841099143900819934009876714546130856110559133021437103832732719089429368892733189004145853685213700866734423095190988009438741892580772403976880505923510309530998091930689235167481583537923497015015971070316798450398375326191412201732123603307626908139823324731981973182664858867446349388059932077957981326596321733347671308501331259127830735235798316199935439013851476632158849750740838796254357763080915031610005847312701390738384137950123246440254832637267957914396853282287154198311569420059918311640504462026477469817537583143848413554697613084569445382896185523877607193066435138682798461498101558208147659483037801293198540895495454082796027598823926651478468170395754522982085929213038188172853944593729114110856773252762587152363186632152204874202828303321382116975354677563496652600777629153526701636328119841090772298600634634104453018105789368044148340640033628041159825518359361565891754034492565875574325265972460768276049580883252173905645699015612490615948487961874224334107934935308654055421155173760787656707432695509079495526430425233959472344705343233624320136783850234733898371887944973450273665942641052830916332997385223380103111362536214995343086154578518631628870463577996625657932620312116914908746978461755097996306076589481990321025134740574773903625856212740405188282832811573803196107564505642128929338357097110066361239311841605082245643530137051588563198825633953298486129741645925934291271750842634595461234665686557599748789833985343640853676068574678551094098373389998046849911954703395538001235154201448919980352360837457125943272845461274870593988608627953825288897609044204124630698394810137350037683875926614769994417023879916654684593707941273664311263787397323727276259222848208661357977984592653819331887429841431436567972868246350880618468523470421862792997378588358919375275701231262640537652213842385111402462844005988933012985543450597565899709964767620836907268254040022684851888939722227949124062831378493660745604006749938496804752531926813709000525039500678414055954052230310483734974515184368803483784365411614962458674665272042071548620510204888506242476224797824779331810653352021081335014593238402508435434079243648063805152597987707319990880139642017870937799738051602580143093260811643362520002767162823134569169319007486080914462463209049662857661665892015200263349749301038436411203968838566147523019274205081067775423054610142443953781302283671071281804763378135712907821384628679536765690485117854567497160646721365942575496018627801645805605664571828342783545386690836562285750797936414015512120702844474703775204231985164874178110421464043300262502235503670780621122106571310408997396067700313032158660044859065662249509164912746655558953699655432146502881443678333778088829990067894508626477722122934291872517410477656032832559792913358085315445972936903457399471222378828296091570383693903268170932847421556467530327580965400054751977616736173041568626131757536561751262957954508497714866580590209849876950403417088026612174020173712518270884068680360722526174895605222351264341151033454039812184045246290604608101234472594358347643462577197823521065942285995114804364949707665287517098228759523388007322749414424942380466037581691030095660392070764602777053727729386810919886484274817863894202027668593081863679158979557537311223910655551746728689900532416706069136507880011279832392533635268639006864574606462207960449029971075030294396776353882636914657280137853021827598410754397636968886146638705377797365805658851170891681222640963383996639693805408730903951364674826614035868884800890190426163439701089859965508927481605653064421600881852859852156655599809880063453267831731460206252992248933478008210202467360432250863565365483699917745545920224553729466642029767894072844551367552691808999680272830147825380651527700286227363525224661022264459907263963131064317529883146544931680978180436320958666797395728094435977579607115062243938690442921979425943792594879399468872697035635578098361827055706045442412646954506461156630096780943348494908670815033429437564826110236581222227255491720812523342344324352719798286465263605250505395252455740938542493938760668986551713178416811300186423700250884124367844393039007902822876433873054818100505967315595612783153069137506357884175605431933735251421315316226676453182062116799932606216296318516786954357587492107143812777822104901541068030334880064303529026010447536236529588842852703625230285303454675600016769929451529323054406596065282270005212169585406187078044899362680481047169206015010401160629818316667705706075625829821051202897907312666732813842494934644016878249128492637930735516407126643309715673413767550891524877247738050779407208017378200285158667328580083939326438050002392884741101190379089861042198964697131018047258805608512562052667698722015735488903783674540652372603435192479020017314735888854424184478344782462349395414025376397731856746708853934987099428031349573926431263691295612558324936003571867730975095294563317027650104841708012042305528228446985511252873864118137910428796205728974678518348521029005234189001147853614372588130897261349835804487119008418527655449126243774723324492837214539830989776547262012667651875539247309841330323488443442156300140634538029861499651234979591734939758150761458603613528414365329367995610543829089722750388211217758757866821216322385816362027187763567802835333711682803621484323475004024511587694557308953576826040569117455679299562705636731574643923056454641431327899458395362029103407457038833428619130544956952604016981851376333133415488181374722843717214847315462822856387365171688275462212724438252648678286678323531141963946580720236752909748578330660563782929540891900060857345664357154361003960552750097850529457329866657778475089788231241977297356251645601762367909346672474516211848931662442319228064311413550865744454823703441757658782008558481672417510071169970838965944411239905076104133211739328505786564171197485537836686841600372752828501459740954387231009351661942988305197968022539876965958393508277633175832047430167891038451137348363616556592655328386306062001663377276129706303596834290523367193702071350128787781969998378598649469543428921537136597478491338450443700616682306563963277872571987303992132060917532901779325970703275225071184499744096178697849677638336756942925669417379904748854191169063564524780129167171704574361843333289568209038762075753060110162178898357262522650092523151619195864343556208334230265141454917351628859417827948146906333689366201291302850003492929717924690404793140222476331030891794131832869114232137557115087445355972674676268622963089165426408702758546630064303195865058023989030154459064699231660961905854878402385457042775199044703041217874455281477512487851141803515878813534554550998236180680030987532232218811257217754457147468450180532682465089583957422677664092693915812712260530799852355203638875075516236011897786930890770966266125660652898279597870106697227160511943761508564789899167457839661885275714658269633097148285793803279121567289305966246874762834486900092882754114300474013024983634768466221106235993904146942652834457799790221504932601104251887618634512672701711524341690696764103590983675718392013265546374551192848449233883955570173995028848741400160159765252838698606777181070646956450522314099967282898621838441150606724355508821224369022030056840098297377311837757995410922244146985540625774770826296382936315100428605957780460238200093691161485902086566813547891457651692583123744288631270127751354148231533558545095066907823042099709624542894650127811429679768015674427513429855734514984554719066114738810002431734869986602457671192334514307857448274323077036946132269801590011103075922574567427068068628462210677843888140609098645400932499059593639168192608841504242748418277087531876536387001122869250430710517634690870301034833054127471310249017775050315462882666643020533497314445688475236922045396300571353180344632744819231798974091668871978907406795181565375814273686921783549459558500204707322628334052088768441717847788905974968537994477978416562806326419001625870994140608389665828011164055539275204537539365529665107484581561486996662472468757684119518755075135806616047599978715624161623050888899769955151269779492744259282080072901710362743910902825924571271376051623672657126952213944194758562381141733366983022433335181902132271131041680881959029389160131852914569951798829414357997027890838996866056631245924349829464711219548631928551068598716814339109201830175740670360891079998505086732608375348214820547185092988777711894002375031169320664261839834636904989286057465800991748799013526037294299059931498655015691119322376972653595755419439993721352436412642155516531778920540695729779976801912045645535711962609519335704001584806712076390184835589880402226308127173359887454700364275773825641421824517952487682560971151342707381495251801538398421610216817044954650190244118389766255774568928672110564291105336886892259328870681945044029291623220204485153664357061038496432557262970308409850271537195600643217293369468513216002144799219846752176762527712043273164993701421872123900270683689032544683235795880751491161452755991099658372920114381464683780493407381894073456996208436112071960990611372888688775401321660066759364375703885396409930719991659731101868692635120941745007424766766019441626046997944144090119814985103421546684836779195656276512511313204460657758392070463609042211916230009301481272752367235503928152360192250330455372441742318782841761231934853876208568933257344689401471640723126582594315223699412139861568756838665837315806311275337444757775323973176426293374646495216001076745780790792642007720871475121326750768143602864961317115426749658673514702285699308765670473531163976292702585037406871581907621567770962797753559051472984068800485404052537219367679486159391035316350679030716065490940877478045140406514969218570602577845188380524284282641811266821051119879484317605700914387753330718086353471895592914771384145039226227530568064033735792276896918743359052682741927652076362626726709556681684490584254932244264223418040320544767368021917389828537554358738730732591120827606923389591236919598092105527533741508369170921751252499147252874933552860679527495306408346244118734482625395991519737966332103572491523698084262458035701469239692732092616792448934097977979392114659170298353384771553801042846334032133614197045777998437481659581627888347796789235893031184711799021388681709234515462028820440680010594652260432291464279503804842963970779240261279510537178147275795269894599850934570586206372826880411983987014055480765318305051256138791169377206732155461782884000344730017250851596821335791071853102422302883359749994298195089012519728239698710757857487858503150704923003892203535490020056332020913588072868146385123425040172597488077526259690217044247885063268582538450334781371757879178783185955416898418412136036563368067276749504211197436885288856495698963028852309771461913350450183498354226269555705445909036155047274507120936957114276717723503243215049056310527292095195770170938196364591001914999739255128719585934217208625353404741766006466479216013051883952846916584446677985756919236641646512473800834775832735120395917920000702655801949281437371503549362865925994265591907929098468584599724551752960151136713601519449252564937541009258544052646799483955607182046415959480374044129197600183294806778245928535621492843518746880470420644586452820804704542791627416328297585578522901775107712539290609754872353830374144947891860103690170265085086160887542141827691388290144833572326411028323908335043508839303031279119792905253495988593152267083717602868043777073218371770710787341936138163163336310421368275173336056758406951403980817074807681694487499755706354863640180478733733647993771620089840790437492964464208310148123221880320272947078328426807658384523606513755830307901014631845385739260058104679356917057140911523879762870002023424111195129189762432819417707140300972819669979328985387027045492718827355039442786715147703380841316382607540014031731319653192949389923598744583691349959208982269195357270269502336378981485048051647191053522921548670181905603163151809075792593159397343832323259009197729283905925328643382270267310038165584168480239722180909156980436539652867928259395387445350688050595610880524223196213138328240491506503548701379136948550016227459942753094159940436311772871616765149374601826560504788535649405612884355643961859910560857666340755845763126526851526866422296823864019130391038339437623256661636772498035654252543335619719117551862053013280051864187920411807605934369183356215499480792121936221133134092925424034794950178712296690952144693900698863449467339622445508603975437465563308358545870607067043311758171311400385263958179221435314773310175965895112350353293218924804013847600356931022249441252001269813150048864917456913009155335625831441478442062535819530233121453850871108710756752162333700495386319687596587195481642384985949850044960484508181379392805527219626594789123663831738362215870659322561267551590112217994974878641713690319223670669730425424783464129710991514213218079286145561663742694252189756522451447776509662837866090676311819546664400237224345347199543965837760719198566224143718958218599511193107372599234789356313501571993119358794713457460716363228698661201073620115562537602266084326905879081786320889473727878795937689089013897641544240546234372036851964574974830250561679537034217869165526972391942962631840697413356904195632018473122413309991385639571607332457818480805447371913983348457069827619344283375332249898558663146295429800674577794940228548012665525514034051350537502355216037452525464982338338378423406988380909152695313930472934816821288534244991597191324304558017842155844981694361620857447068021802780756693899080492231951250665974307907154155948814276335473016370756142470881576419737408798662979850059623085166568108800517983696414868946490044735266937873145797099696109098553342206808479423898869196483186089596110060482448552211640138336512375573797315724820940040425353687699994243188499233303806894896943525684954117921058527165507070119744760305872288592777441879669145873341621098852137554973213497218899575918009420038684874307639693623885589372461740624467868383035433843105138624889931951899854135108995832475872921731733415839254981141964429461899511970290318468459823058403924509304572175317400335798596109611572798220614627642632215716642395079840105376218524168175875915756825186468809850910023438981643722383440466913526470469844614310719688540817818871979931740600090745904843486916062091535157333795370425577011033570302422091845581832339260916286387406242505376825266208967087084753748152804077998412762174109355160987543918817826767796003396266076103796269856806662879220439430154529517686648953095684535267976874509862002388864114101274270435921619985408117525609894109459768095409479004206728913512303361276804908879777648937537549640409507821771806109061555577281491832632902077952318699794795820887480259204277792154996509208937630303666985430190492407293934389894020040566270990177510709213323309202241271214976158872867032518060863435056151486095603924550465537497815470350792666988932668396690099904151314497149202858664349919505681787488955831413025458145877219957702710771577892412451871458582328518250331139478786494354290705106377664788081341615518190635762212767440948257628226068803398233040441695096047654387810294165663459040560075867970189780403264551866288915927023351737765418130886195208367847246670705501795879338919596413068396588511775644005093437836441136304323787587500412082836004446457074730606358440429181759049963892352452068277581529315995531881005802327984553039013679674865470188083743134977687719102423225415588453665748829181202977236141763294037145919600053853680149480200853960258342756432290822674078932230749587331307172261804177608202767025179260132667251850951462229402294450922990619528294373811611348533818499490033589482130981031199314211375545839521836513019071994094451111347321048761944225746019735591879832560813682642076260695732788477004760148084084712443811311572870934044115345118212290434194938715873984444440741160043454771392609808745766000769917418828565976017132128685377134081668829028104775452958546520188970904110987241957191629594383299205999721573253539498942978551904416178329437195766179590776355125264077337238813582252751347780628288503430353550747370705117481100881670068736758027262560710320229127195079548258452890177769174388089335052485215510683429507481858264232758129219964513713933256324538583645284895450375311960633114074838976885459670823231817995117398081394679845221617411251155668258133991615033825528220821999009161949016254936091770839099600648393731134676847163507911303510577687032300526400399091091037774959926143933623912837808700995297196262519882901085044231737987035881133065263804908327182622325720412036548780082580021246186521802533656319343341117526365517070089465865076312597049139206217680833164874306245875485772460322506952346429192831640482070552268931323464801527531725838485364272959333046492393567537180877619644488635915713485102726262137699891353603389691717072464341982890325883762797220516546974274742790232672982639408235181852580447056606182951337535922226868469799360377839242360998361125223620813842447664537202534646032631708258914999339655197587306622079308469440886874511779968660561988246175474276182853396876905783380820563860293999774756993141192830575518429221410693590272693862952069309683120064983400549355415331314548555949821454487588285123307331828824937705100649253292196703787641197145742410831130620962857732855658936500294097194926948526674515433295988131557306172993048280703030992610817732764049439310758797287531935518033655256883357966636796535884170733965049441428629195052785988814877349181353487013558263532281804253798044988620872658394837146836190743014495758568750817085576803206347067768826362019568332112706396069837818258892256753074669133404545562426554337464206565599787868046837168536779408742016852268076299927168019015363757121622641440634119743418454038397270255938338163469841567003937145547028309614362546635544524701888251982033047643744362210540425319850004054130425375386265310985406112178972403268296926765910379481470975874387039998680720294358738758879856639898904584156152078692618010040919499328183313367356834745051378012469146787250518532357037672897397374134979011240668950774624156580581842553458384767562710233829236201083111194014078320907410329282938484040672171203229749689022036009167104072234788978536865390943850873072657899075092485983071482963627880503332876120504259307513757041361111902681450276349290739208521275394996736892996559469228001512480628577970586801596921095017438895331601415227409636339200988895800641589523845015380661098258568712998398485398758613314676673750546595878849091201192206069232451171205553270561650782449606352388262830988640009697957674754775680897797407744480326457293787764035008202953338424579579098302502904653807025592200161842634966318737125550813704413528117273003329947518509627398962217491625788842594258920070747768211063391336198507867870149477338321790385304985723987840404581877511235468052674763975374322502570275389242084426380559931680343852499074399371924442996480986135941546134114963637999302642083837989823496250009897305659755691695700276609211604172998311079460635441745058690115967321538965097166334447501782192411749317607962441356457977738471213171302270984631307797612532220299947973899130099132805380041488970387948685936515901352122569632434673508950941205238341369068957413711351972074407114083852854484206853532163468954126078128501475406617403801443076600819735433280513178501890659948905119105230230280741426643000237333488254352954827974324536136150664140885590424934474330336943622499094558104542865586637330119507191023276348248750027125789641256271720195103590311583536320553504200979792475208085913466107244776598600789679743382632509490981537459487449083667936840477137726260452876485969507624742495885578322415993697319947420940858506629792683349026168329034306865858175484399992944592443753180619891604423884333253765554201642939287021526608563280768582463278106436171355646366160190531515403873957463408393992032505128074977985752527602664935844947382519866393225047775232584693244569163364472188797994715651680915326364737012371290593442147998203897765891238736336468974842186382455353418851368922599091235531134651718565978914856326781890955478875878837608519631518348927249468787451867115087530838723205482956912158397664063506609062132282510050378273572942634150853595527123156924220465697307557825395288157989289362991750848124356241796828250908919342401737918737832322455692123603664839216289976360027471329217344026411401824578814347419624139171666416453735933844756838660130436626285175456426335704165276309462214293032139087665552185126543835693725253599214124803261535029772667151357819963689690546532938321585974256868582840713804459514146191363900182793903714628546591025495318624387483658633699819516301870392088908032931865093288475712258870856316824906877522529908382157650989973239429292501336179706226566566110735472369191177954539505007984279057712377076198997469390433960926845127745361725505655775133738049000055845231038040726569932124492159450212061508987641024917505449808212860098718141348231073324441813014278359639985966053867549806657877023048760820407347534889829167771831214502318970922985546247683291924120482884045241817263643336506622578801550155565836655548391898122477555330404958120161801576623945965285769636952330983257178973293163756720455189040108766252898265196739943867949763973664657071727084596291878536943970935260990576985764349722139647259456241703330181213639677631848077336908851644820822008478891101326540321234463983332349569546833618309287193450188743038356285704083338295811782368225274943629399302223051973579234671493480551535625769904518636467632944789623305796908757770423014279932786057206251280645283248675273114818272784866556992920327265594674981772357572790660495260654915437168044085413289608741436102693475395863483826116654665694081628820865750632015326703653755293038719212327387146268708803815165913654959768288358335609890292987557293966804564557653322257507099824781762488602654748097252272563959785238342668212798872322941280925331156313060277639401495837653489831295060783568369797175444537173817638689633038209683307835427177802699313714527146093893138400989564836223896020900569294103600523277062776258664451291643631554140893084153264828105582993246965861938695551459980432984700879893537151570425135719502432930648863000970513481967695689149889543891846176249536367777312053831989462320549955910301683406047563683818444403987695117989888731443637104567200940110787197184756543631354263656280886767807374178255425540929586579989588721315729164437581707245841949945020850161905041335268482345741247970090109659431310542519275115882507593712218566185754682170141042196504071216004839563054373546802185589290163705700308787339279078880475676204440903969595725742531849487696337588085203964199363559150630670865255639375513836827261761435357760395562321718334765102361648564071095581455067690566886816769474664325174194577236435941633511291933619230601635168505734702844188749406247887372969078339461639789356672019477130044042551935869033089429082413692586446073278134286918944812904265201586705244547360313890649745523505601354148282339044051079941361011882378391450159118420837888931282041889671448134289645513693677469931571939701209863861261245387271782045198661539942836549798773682115535313484892853126548811812690500072180406651426032874953714400232767585235510811400275206534415102548370296959473661750683339427698982708881220397315771623515477119507382886943679409411000973867786571211238365543705806866767596825347192134995435081248451862504140064664475129276399351610756189131407906851113894654540337972556006770900846060784559660540970269630809191563673253804942652216554125995449175282958380408959836249130112294719499145129577330765897751457268592387981730501559119587197143707408429267880906012992032239289325028509568994594102801823265734791540252964747641006126426653161545057953393122803950665476919092970575431426426285268432914142367070535335601745479170361335915261592372143141151401554257886505615220538989206336297712888709701714228129268247636641017353280643787683137155914404535461878416484164853350059579607981997351473815481337101633329116117110940247457537671994689258258211110103340156639431948555398578890099164984543329590055690060483068750549808169433009636183041372491129746518449413728936018529783935848854203722425880670332570513089935833911218964677520298766960351619444639348068817231538857931476342907636888122603636970003756241123437704485509518424272277001595531130809051527346668648367107443872534349672492216246477231353714759229547503500376920027075953490764316312791197841227081710624844741191981613644016675335705544089317165520028364397050774188658545081005477200935316094017381349973688457701163059957044122470614871913609946136206199355968308225836167911225368149003812310704223292061003935522517583206742499905200709161868972037686231640591819018757888977844768591193208422467284650971561169939084425431002872705037698002156560364944918323292387535916683885232767565261257411486950185535187214316019388426701635601151586705424565456367186506715547582782242128847290543332651601664600900323983927118009121682461049962354261032114394681066146495155577927953549820235528038664873383476697350621844110716859183604867131869582480602861704684701189797361920522539673804104675357336233725753374534659942302147218105221766249258305637023489897009851862718388596718692164444210021047100477954529670757639907023401235564964957308233778315571642650320892552582633859877862705150464825724505382490299347195237441582956318509226001874380762236516232507276981013938475449094999822010086704052690333372301080981855528031811007247927578828676453889438905932038366694773138390990152425361524227852085091391705099808374216273291635914492775620244884137738610438417930136348011926007495900742680991912272293633773506340812340412999176828098840365083081099309145819225432240183081474686699965041921614569129427740758767976792085204504772702580606876349607582706023151479454205887804553353499502276375063951657664066463180454764452847744043848928028094010513093189382675535733082206414974669132932787146810292964296763583591734212953706561879831413393763127583806873644312743996389333543363529000673302777243046369743021088215380881346274172090834657660885909649993902811560751087413906584983895839202213082130172356947416422704466507042303654793262037925197524033785048320707025039231015463646230257209081602243542300626393764390660862995090492795352400378759889395300493490669067527884086175274300234005732300716678570852909251170161912983954064444382267851483940550846036376044578908925188192088243060686202822177609684382457806103072212197506636020095403600733617860591075395587792523835718983591915304365170828225335199819217017292306686356060018195167410048980719844726136877037252504553773378161136088810184533635581654991986450561137521779384665099842531337963620156654656796736604652644356210564281328446049619911687000644930041467147374795890677006204920008820496582681149805706163844507901796800925027895405784691276035331540379898618911719823007677979555621132431229361310639429306412645511861438617112259971987211537122968132510892646660231895024526341170228148033793926431517255836919706672555905410212281929950073545726964409076125258253133780181518284534816134044521922677094414986739838868253153459300656684772451262455369408402011303057530190348126509382533863438664698756391968453077209562294815723582910618361312651086985913751404353338635114651155420469406350713965079943619461735415329343102248028611083531254475140160813165766524963204595376538335769898680960452626780143909720965800907141983227352001001818821569168773479406350376087729442970945724395645181172051139141451915499458205575669322624295667496028205924828335473476520830239255494214017666639779396153261672948622061914950178979371208527918730406251379734609739014498005437991538667045080010783905939913411899323836781593197670653916792230389194076641903849242958766585159025434216859109191759765820043967104415530433736809330539049514386461545215979793686792490027994336745601053977731855935020032180525401063806344142244203947228982250584554426061992142305846395314997211382495328494762148477662620547986111966466694627374470360842097917678239768931135586398038770865736077759950635467015440752618106722998084034430695603851393448539394704044934567970333389266420336670004969257826996044893507295305067876479266262612271598774679597287690262357276657902062950462238248926349734921454777865798302513586666839789362702904773048699132996618884330938042873968821176107556498491425326311744982817586511896345081656676222175262487876984529963173370027486287813824350529348569103219877201867907293215908702092380594448388707357491985029933928157617597565644598204419947958327276689863659466406033735100847753828355304099667397856299543025592897058481959107178518570118902922835594329770878121491059003511443210044425277317383743823960453476302263784509244506878435145249734152565144365502255431997165770310616413504471634655410979606637625387893444978219657639817298630654227806528897370608819211695004726588088891580670643363617763951127973355230716349358074492938171607210381719272208055010931973129900124731321778066416546625631600877630680555810323492876301845732578388831519035650788341064332783411564486898937870737341537488019767166342232109059163418364274709751123106463349869396605058498161429414521009802999199588108668679940657307163550550470751527750769091755417226784859500517030437271162529930077405302716490110747653629550296566088042797600558123494293148320067407843758256568518185235369610463136352557651201881697080213104679328731520170811582062900685604050511007365216599381255758160470101892430460317758324209082733661896126336119804113881176062968734289856655447147425646016001104183862920209887659775680818559080418484063437504832930298656726185152589473427014595853143983504815812681501640685139673726238522480393764985719876878353239759707305360406806414104766371074193865947842774027303762992746321276785081108546842849934093167722138224658126212795857271871257906736213892851111063329123661144182164963835640675179130945091365946776834169033482252599058831242920616315209746397405087044845290438086785545841909756063653439858391898774035118513300461048845213550706890561168037021963426133792813754643085729338287989258155836254533094805537086310480066109120801087372413911329199366179694229732937342412281001538852955438732374934303279483467939648425044052504551159575312112870663910166723222030002919701541601982829554818062723050853785988051770685787512428571111333520635198736456313468493606427643739407156425187954450177154137892693733961726902662836834769727853768080067942514920696912225342949258704102810202965930381304078351579552493101845628169205392163161033290131488063567330857964244984588831435645553714819078887337384973717787546278794148553100300650204243564613558636633526648894043307915879420728285008210486475070630755229257341123269772387038536829495834805993009588587297725459985585588716861139337576999284125487528587528585936443401449424286202782102767658339557556751831681816240564735654748743885674510954462919352967103865548211400199182000235364926778231113864276997606356188458451721808736698346064794444302087320223097237671900872476848174140392036745027546903724776638313968769121220647464206888464409841197464367679372441025188995973323738107263991507289984761852635694316467527499610908718764045368626480555341017118589508597141642745951697562737949006500595228104150582484076135260478762827596264560539617483402888403722672740012858191985385743638610966549888401703201748799976984299793678629681386161310720061381834268601543709670715056222555617953750328705884656430673708862868411810248108298006256187246459127151102556042613916632413827492141652375211735655595870940131461318458490846949299290725667041557312708628424369222119100160576352973841692199926584790615444150237548360836635505761344396621354767726559241435351532736316746991925506850149924489914754362508940351191450844273768872327927170214822158061786173093462573961754516610700585288640408401630925876276884052854781047402496109411315791776491827691808167951990250939251152337597613793996724299025023125777020881026575844123417902830165744987754838802089636721581172241983062431331643380594198017788680670865174870563456837625415328922002189312795818029536319533109574531589718421802686618019941393759982946986054063791576314840351706036132113217158774880535588610732984069554166551231893640742011495176714910682780236066130837144113779701490942272672807108943800381567125349968715158966283717243126483459281906074067115637157213971986991585921954378800635909814199436740168771309558993949261964100148125685495114158529360589485770310008814892459645644999662566116094649521659628188828843934664873525698243088437954552068918836172170584969931360680335075529858367573156226248004630369029521935959742924810012724955545774267589003600725877116954066811153418456723833637638115688660310099910788536129420922336938396932246053678506512868025695095987524059635792445321256363266758750612565278446914823859550920934488820731069365435910395352823088711113417250675668091156646137639862241767672947179780074580112844024341699577144239727271503141308256240370732428204021338453387608139318132389155941095471065726512611432290731824536564709730768086271028112792365274883455694449739015775189081827053329486306893005183382857691077256408405820522979089936712722989539359785588338560226518661469068084518005411072401627637321713678028856737258204369656701185127591522525622894420322033601253808444533171090890276642886901439430543361685835145420570581204737538399611092179090939887747574109118030342170274804812485136890078375508490633606670839050512390448570262775931912499654866933212778331893164100776087257911648636957613085768585515409078058560113070387238189628442532982462800598038266080996768901343932307473640119221320543094890786487716501425192110969699785633518934228266041621730584806828977688463908221068705123819638297064556339894171619533742791385435151399024906560432527341079515437614486761716190220387946471151516540313238518563331538172107905101254067844220104851483163498377994001711862097962956089501655884732449385133017939765148588710277754555769076879702041503622704841455662105562281952923256582832949906641234779816047121624163585483034765118089711083762853453875548031869842322925576469079395920509197269817859153063240597629573540869889246882321124381406585700039623027688221659660858427141066964260676590120224541204998273192821589721179690161457550086454584262019490872986493149224963469328286191023706448893056142990824247841516632788920364008797807125437635875592385933511455122935290433747427807061680436168232868307492023776257060792081258505326492049547962605088875863640571413643001017854167116574793692226137534956141259578766679790570643610916797000423010908457840010247074386075196795330936910891064066470926975899360937733449329359702482095467545652047659501413465244558603402876505667663011619484689219684230355363220088054278279829966056641536380202100686400262020662578368741273838345137782478404351059042179690775718156702994958185166170743332016079572374601474150179084066537310021560529826826831698306348930108867938286318976472903642378635050083322988185570566276459736162432797722703836446962571346676827615782172803912443798331863128893242101293002827113362367501879343309230745986582493045617125325594631906064166692647161855328858723170246584601940318662523717756353099668178387532268406849658426902371118360319967451085893748012776169127414686066905774435188864992235815428460803477265413072833216591056773977655744228685317626685945925101214922630901500808983340783542542158235757341331131277112886979293583244733312701341102318069806650246603363882280029170669806495589632435635098297103840323434830118307899664677110994832522231207793566163915349198776782614683181865174868242607144657120898400745032097149583288329989171363331244777511852940936075426385435786175912357731794989742686837038219481081326576313654597072116895661894463765485654031821538382334747904361673241159583927128119673867508221721050017489054075228738563716419710110325276301557245497529304720790483762004153350771859223974778225080764164699856720092562741536432132657600249003731825245765882855471007360503982960787459774281458180535325458755745700722520454271351156233169368271538518962397790614356437474067455416426185827428023868261887162639320511162319919356511268572447562982019708338309776847106787693131421910433689602108675570376233008278516343417869471315021114702313436403273182685622617044711250591734627415470597417138710400728794337508037634776012235730612808358753031116657051616000515733981731913144222297231813531145314571559224257915836403982352740420349477161787540392105970068798505960227365067377310597380616561321366558335334178435516141401763537492960995978098306287522935822762118422429102179900900642374764301055005832810386904616983015048623002128977604288652295491200951649023755663504983948764169981053430119574615564660752847942598548072193754268445235936779725871904116497330730277343363067956989644176585891404731030843635889525600209763292546635543352475669338106850324584552536979059259032190295065767994561041634149096606950838373088596326215895838115423880093565952464734764052592316367210293131838735285588129454090444896292324816730791700469348885418869680872437698481687322818558599258486234403943622884792961283294980029063669540294589357092936372280593753453300723068224000840314740664645273376515095133661771746230216722671706869760416428601508023161792637148899821250572921643910521743000085002172862473319733877613639570091492451435116202043580556929703616143143396405263081464412687182586694269773186049016842524012364299667667071628914454324539828185863047886253886134272138189236986677938455823643988059118977517214997145955124853023005525978166002733995123573499546231047123932566915147724833099633432659307328940383214922002589000369157631673199248000745192776087429408419244991689286064934922785948752539427202085300827213722601467701494546789604605777864505565192770399940800820825487136526162925015305896517546381166854974012827130328134380846802323641010587927916007028781253320642536240817262550332393189559504948776032644755718035910008631059218953899154757514186365479731529912560405197306602969500685583067891930822741971508056587285491298564354922214964762146704292081788167339041415781292481103528619209417529170366860223859902185459093333127942591461004407592103105491196860440246189599465576534397502886854040282651351903635452170825690306446090925993046933474116741310778002822992538862837361492278987758200034545109045845015569355981068320943157127804061842563823994312212954086051741650814646821447068248545526268483241289762288523737171889340892773289446913833984226281824026089674355729528202361340909930682993577566146633268951245948124939818514062545566546875210599980081004478130733318105868353495551927201536204161333696593473962196743599098354598107915187721515468683156970100106510274019062656754849493685425772951429841977627470693280659200120510432911110858859598046194354403876272673413193493566973131899146185832731262152019013342834281294935810079839612335298164201304779804133255508597149081802861389037877980688688013262474718580717086335296330024817432487399162103973512865497991724419908009431279717139814533201714452903807774173041755343212378145178077059163388704030795827834266746753121095892805921516563903735639046007768417204516151093314584637884514032815648501283857029206474719782419632033135710959559047795503489019418649075561685709228294292447092324758363946216544304456233583035948159104725973111320713557654005521813820735817210811995908870606901935066931838106469527312301722211212340494851291846724451793289568590679509303834491394179650893287840353767806606065315270948586897763822745239769161171533959098475377445975545151252195726275038549638634950936992781667801230994529591346445385561470305816161475900383527352491900633241452298195546113789840157126811099362789836629800773344598666166940337441162294522563683134834992251997057394008294808850400888821983930104934819796773430720980638754660921808677605305779761536330284445208474512771056806212963198231075239852662902996815214536776035987942682589662517397739246439687668176490348114263480492011153740687570477725714884788565509040048980030616132053634959675167820374251048236906899435023741285858244520279743654694110057170811204222008903079281706516646060329587333774283788839691927888587177057271533381532435523721622670039042090966349597723206531365225381377246540351042319941784887375683175784456646230620431615055523114361384969071838403376043815048634513200258305914720563801724163932729638505020204406196961087955159650406537617424951547787404564486466840237320349283295440241468003487810325535090487287179584729011412465217893854822135587324702871704354080566885044893315032317982212155282520529850726329792738261822447762368845550119904363276744578886258439367322407887772976889583888590575326546102634283736312545906939731618225458561450444463987041939457753833588971034027040188828751023354242366848161282607981302802350545675596879220928436107068486115556771470424734326386819573298580166657129851363154412683409376686308527432898050293561266821216941975467781476045525910922030372111016534551812762046341247657073371746824019633458724186532990852097591543088245665689103278012487627054891984392355410556068605540229074283270656143698559329157628794688561169689506766212215930993067016225601739764648420644994612224655673582126465350122497715400291974121922160745192157080067223608680246683768913745082999855739516666182280310454014077310698103513792428826775567944320168645610852968664415687643905845164738071648180296766366333605197533931314008490230138572852939882534326826086661735121790744368095398468565207660480654110597633710317686181147400928383564426201987931061273468781508946950206999920121233189174676284093559161294525269289477073093042029434720324031285005693665302587300800507675537290857052954873153565387521909923503781920991787066137847232602038544884699180757111755066339594564542954125635570281489886618994141407005798874145666061383620795660937443112003429074083348976567613329905561192519805355160209632424930895537794101151984273435152662579388968483583203276916971323721690858431736131371781034275367286323869277004523280014959511093586203042254644337213630821196666643617706203951422392802857326968327242144877203961942221721105816391098838042547089140307553845500281223171951778810034493285380736059867545649331131092525255616128263101749473063429848178318014736400132936597941947232988496300701831522065396157008752556346880230533502498445239430054611566513095845608777023394318030081435674417708387494687794896933661378622620857854292527162415536658299959321884808946627409646280726416802497380780024323136541712372966413143478888779556391557298155057293930307559984720903597460090578549409499737755233608178816411547588195620465154699905544628671919284775076628004210452234799277308176318180397117975884333530429221093886172530715827314675249320931404512031404468567594641035351703048644590658188599786104411691489171412850772933684802747874628717207026565535691690509756852377584798839664280508877606966629415845403375208279417609140391307103743702498042151975953690412046691694141151125362593059854321727107084059580481134947824877113645878859727388952552301919227859396410626205496288982927446586343747024813637348073891109566976456044076312949833444954139075158563155125082073058402116253780831059408442952441739015372116344450710564221436824677998660106884599966054507048282874969081073897192673942674402312146061416407500337222775891336149141457948296545233387212507928075153022385485166630616176128533027856700994322939496478005654951319978346788820739010847390993256495002481140222615181133447953483023271377516568216212924592199880168375680904250762592657826196391571569308102766889765931418592997682243183020265725202966672919406476868241431093398936001985959260840123377042721266081286831848254477102436547795580694887276828961422174747304470427035443192135244470372266157771719693593213689924112529195644149503940338441437046403794885759403601262693716414965486531773219566933427743138935805189738343912478695401265397667836069314684295547083772450885692701442990065245414501546430678542404233948037228032878363871420428525772656330959444787423184168673963786859032037451627335675935439183701487225867304102385275969712346862611220491649772410530631573881375861323628149424920690321259538235384618492982087900191108078882274044648287944862281735674139653199336607566883366574415078830666608777196884563113497618734607381211349265088392084068684725918815833146789628190822617463451251001222492196728867860623091369402354069431070874412675078080120294159758283333214272354768897272345053080314295772283451619475909527300573788592707183020417815593199886231331296133466341797077739265134371132429827602731906394885660881325739453526600218627564355503329595783694931106765263611441518526948767962742759887206628098786424662473042164043203738762540829567773598618412174041317820753546441006750828633878010478211742151817183499542230019314541724580806188647819762025713675036371998483982721211304460690665358183825973017781203245337281200924044091583633746484699021380810470082641110766188455542924928439168693952197417999123021855366183182756321185301842211198564155417788841716480823318048740305778991108101524655315742512437918995043148019474095188806132650369074655903037369382256414704055567281590151249661544634183261128277179313113846554816235613667418200493162740512210455785640857511448947229156505082829532100257340335304940912505999253766297070784130520397185771697264977120509024455547648667969443318942109126604577837405250866055791678269742749199981544507599030731064547341591358107768911992104702828046487177266275278625082748475796589102280026454654136574806111529249137889534632255600591479400548873352654126586268645831379727108373319265352516480139856254647285693757484556641380949892794727479826530888141690085095630126622349309619665596254943742779119524777711912527557449785506896311754677502058787736460539128778046472384351251528388336293246292210799845407837635286961396064216837472896599405048689615084399909589893975531488930801360361338192670589081015369908876132287140614188707120938009421069317494381205634862452530165046794107948414563696309504204923729660450297107298828474270655527270072890605397915189775968125608739527154544706391081463398030670773235882983757462042581848103660851320090978713002029941859083819273678881875230047226723027368575708324610700995590893473706864009354067179525336548391862197368938429126794016556049927770051214484143599068589007186931910179803992922061182674550396313932255558870780625767017719573737221381369807673266872650405488241615435017132962450597081199062835231712491299323558051542886411285564172704651610489945353386476554441348696292236239003900151620558138596863318736656414785815621470074246203880664285739457097761877985857998750768060612549744851939295802961911461286348776052141190903875626123514131558759095551545983077048744144058718141832204328776248085261922478136041081696158269794740979115766205366320006384564416229465138038364784048262257056488638999001437922165638075285174274279484265405390889094751980226625423018524522431016249345998664463489961278019913414991838504717784555241112433187322356274097739403441914109855060991445469835306361246585992192301161994947292736284489144775516288765953736883081917778923397942443222802249770871690828327578698567883104975818174994798429565449198806525164259867622241866824490926130298106040233340823560383406081278883542250603020483649438523370725312901628806395981894108586438257614872993041625777501156427419162888695998377513101848769920522070610893010092814586434804240849689754234513108967438858662940479395934689567846301594331446185513850514578225383164178316325487775685728317215863014044627716634071359356005051868518434885203062115220308493921882745909303735887967157504764276603282725427778315510939353334905598756206944222189000679523483382970033905995976066741505973687792915920184906877581154088056778303730261850365386146050347944840401456136355294319543505322901941175885796090069465632890833316251935030474261816071103252209740313019312117064343929378392827153313718788689976566136017591573509532901122660056794771081786526926644077543885165040034286821160619736598523810110308007946925825247592758714577509502154831986477248166404171991858031010525245134377341719381974741136729904005160830916750146536678767452003721977040981779906174296420878968533148397407732557991773340960704347997330467148722861548706195235716569664988164687876850221699895224377294393155022399744931183983254863442265938054957464193514377574614607330479922632729685512036359847536148204153308288717767192568786290227713229827284730347291271266704915314419777111210690142422222137219638902274724618712436814513943892074147983927582632251446974548188875941856869753158352177176961943839689224526999279592132379341892723778677426192096013196980453398613896934506218120076758596552222376558208302471997838356581196590822441504461180247917097041308603408849124528372497947433361825457349334526831971323064902555914738085770764971348355864817909715603917281808055043153092505074975897128202722828269272804572003972484515033726955967621657994710292016966965336473386511885857341326442520026760337593343868099938018708723338007640712511463633628818766960748229646493041299568568331653764607184348789267488429066888192894129155125132136395927726368666183190910866796539939179069405901572355655339843920000408414181587123112930779069556450147691944874223715863097744569766343000048619442969027812770756388428836327865984059326344311670401778928619865685184907681956777835215293152434107046924687900160306411869329822803602350584825607711854264133747229691260112956832541759235544455810488360705625599588966226277024976692510879544576079088533073189919808660028279143552886859904709189815445228241907292441242565019140195570470827963556896707609391683630157531138111521609004896447981412144242600735112605133043357451575855221520097847668839667518926357657674666319667224103121368776663672536153259472912473448028794771346625572924839360900145602335932930192877520330574963416650227171624590562137595529323959215095068721773030424302731918111132287711723675905024328881217672063894973214358940858748487232731220783946788477410226506143957576908022962472049176966592252764269713408779490775899088790631077240322000720314715018459241398522838983580308114563243703736648673979594502045474155996937948734483641835872583974572685124059935798770873771923983507756024870262845395453834194039228972130930945146471953699384312603770797977252241887232991432206165094093133301063537557119098462502875494779795704872376014634951104822931328919922214065474433619338913493094086743107785222420361080923869110653631035401017982515399583259418577940363260280734825762834579177068877507775938200330689146897428643349644324055706665221284668512788615935999796730485893455442438140516318175145321986655873616242554571180125450033501175640427407561082868142206646475513784869506691334040746685170629836994579585293943784755032909189533015882300478052516201968276677736227068737277273263746603290838683154754977359593873311723588365171636147683814812839576785317044214761593643166914809330108163963925112920089616423316686805036007675060163029740193223730854505065357048776020773164737192961759433725604856145982193862236582472371281851799636791319399760658708435600811487103356075904322748494827507687994019056728114757394240024781850186522047698270805498944154246928459497993207728095926068823303481137550791019346465268615678755205365860063523156064428300184367128216474525946694272933444308378569052344137386040796428328173024760910248649883562451210751739334336153973710021356989973649902329666776401553385703223615388095874001872233883520065227700703693061116157151646220428458235838406732662934274446922526749231058279544557737416125475285739122723165602401547246399903596399814045137352087175208798088608169148539438034612217950322710233664383363307150402997980852129379246803850393169600191312031495438943807470624130936601772530452392661058901985813327221717684656520367309455356307221011191858543352589970689840153481277746770010452542191985502345107901021418045603705862074472131659986558078153348396680585623370204694683699362230170488706385663456861106033766591060549837686780516063506711306200141383136256401591918269013986076105504950962178101927728001278541151799723348914619842412276148887807041179642765675937391644346334645414254963420509240686379174197590068899025178882325278303104397834214416278637568673307442927934627501743769794451916066463418290367031084028229174249847136636903301204171864260234265643770739452283253949032333962897184846834239428368365199231637834343966051303149642442626321998741040133084133100834125544928118146623641735106888544239241107029416277111361194307894574717707651308168093910320020226206617783985931553292166589002147696585009464212677253708748537600576676869410220048521012778673020804834798056474618307126364989607900144783839371454060182782788305049879440326564373970081211012488215473761635621105464076118521669923450213873491541242310271865215618434535275712721635749039124182056036323873104430417496786649806157218817016555110847670272921819512814616806625215463199904404549082122817406741626752374857290965827845309074089370969981536535582569117420404239744854532647506560467364483734058170689821272584843204920339454864723645114379961411651079618624150001647358111902236472531858961095842882755550940298544646401984440443902851070839366737965440084334903298486609440885436487822468016473366184418543815126435000863196637947567571542417948599097580769285594265670759914939696793049538599811253093195085515033065461351574524666925866236248061357585902176884018103268274233387844290937338463474984544663267242852732242568644760440090207881640349433031304464693466278505770435612132022072231891388472836658508921820037932715704367152175700020289691362474684656793286438999517068667863199133366771918670132600672316101732371335355107219204932955351572913441739428359593380124415757835200914073082476383234086385680084924492639997792014468869688630439979547830415609033073251583351394711894085025052419709711892987537431590077253435045843711353746361493573241276724632613223490587990711115383018913997685691765546037134464520092505797014754436299361998086205184533814754955552516200480742607636405568900382167704040057200962107222648638652737618259101830939367567924194478569424927064113601756402943962843533602407233371833025904700341485677263087938229774574409676847360495889608064725334294395849688531467435106034673785466712399506968692105966788238542006415432247921333232685228102331632092660705974314911400553642719644726195572130782494973529136449898284387402055111617226675138043884744081888762372536956934711882362741520333324975018158724836844231316335115497829680032566956009796127255361005854674785610298527280575529777283568863722973359040749167013157208458141597726202080686859171594016577896071151386298763777772548743684465000373350435103755761265773853930113258233036158100706804770129731176109083394352666647176202028580948098666797674740016749126077790503751631886177401571336919689386002391573569233528102792145426133986485674500927845474646399244201507841908237911976389714553250112429508967249607926900800338414691541728782403040807418816434675889657551601904429072514041965397526995670623143178366300333474523078296147570877576045904424284950472144456756615279470683479109948343320542752058737710296053464171442874161774458573208038401831420762432338833801682877440169014010166745400937800574834912085847246547229060789625318658847708126172610593348185278588546775756577791945651451291853965096463500338659823738981668821491006497150989043322819334373383784039152299339716040253036791191699362601401861192055934856646756804398545686486289173532994784041867973007224031600098687605973809132642129415903833748529431105471431106132759768106996755832169899633783712994310128793613234486767866786369272107394455986102572998319591474497071422399629890439022436659557749954158039828648246964692206578414055374235836343756246680854591692270261279154775583775674373902673025752867522040355240399568463007801459499022578133134659954551811913518876544989096899911874547384230270387915308028432591297524487445977999923997657500934587941988167104920798124010754817703003006918734912225877746278396192683476308376244213762170644650973655513358173072985829552186912135954395759045750614663231383444973681622825062826748995563514754696696441668737215569791556536541304409774136962982251081829731487456439223408693343661350600037365254644841672825813462255370360708078505277106935429022178312686643030971687333997382105602375023789680583608922432682641796495983423868113802821216991249287348595372524604724878923671663313194618580122089900823277545314678640662645559913969822778656767945647588592534913947231806431000100497135792548216995208584714844230129204368718376403968418725424586909650465612399724447619191067764811809465052755533714310831681344919853254358570279921739304154749570431348297568874111667114944266668631802995097698838529572259818570385020068212344571452316689875513700119334823094448127018581896548943844197143973718401807657850967988076686533807075723418940275347599800162062888072702952296095104088067326321582665757944868362219424200896869725831812575568827080572117794419842885115944958312323123053438099891673404169105034276372314405827093767461772146672040085289374281734705237724267460254139481298456630279901612531015969884254480703749549279978045910843647260858323600095617257025034791888529030290310696787927558381627513637683234089898554404992112975329777350141243846459803491144697009107341766878760674739110199255203349152966927185664309585758809043334486186106908694690512502545655941473588368271465977710105165421043225162443994544988205049089143672502824544485992487367959510705977942764124510846524678237757320971189837210948264891982242912341568224531500048170520792877929466813060681013414302122346988708683342204635513173621609521060472056021644246295180675210486136373459343291733229960285140696649623023662105191123257782271938924726921371564203787419233373008368285093024714647685757381643413202547249467846154964529241620318266848710752481240800437301572538212785094775640343779571050480895216463443733927643083828593068980305561195195246370621413698588151089845625976195414627898449995429802358975030830390732333539988036446203694916921430616177586721590008807241082210427701946773879313604388148337773760491643670099542902098473270064301229959516715148170136658403817721865911781111754851404373429327405936765245513088348884718486400827237380046990751996188035588720859575064621194250579549539276084474239633143508771436660129904943342386904039124077630195010936428509030086870220191044970016065944720531523609362896258043389498159929818228239491546753633385004755452859935336736771135686312394950744309921429841359546178468483399272619730150696967585494387025793914317613499485237412145308936953683410442090745778526766804761772516572280059451933420933157728367835927236378264059411530834756803251448216609337080048749920535194167020568381017502810071983292323213366769763615193105197010507841957973120500250283802291921885091321875461669713257643175563016160726459327995664742955048407638099006512113923666011898250123962528945507943735075990390223190458884925768010181397348194572718408462706109605355877602513639053067330839632560328474993627015516864695207272636258107230236791903372538539576798848367853243519621742668488342388234077123521670707051396642953725769125219686542782438078522457646935949796730323759848458318998454619580515157384483390275070909539411686768837305164001458669043801684826783523854217132457731822635253839618767025868611205843980298183663806857296472557362438593676106177981237721790860598661140518247853703255807494450874722110360200459023682367403952022920096240467361933134833591328669645443470944259592957412510661163588504591939022549438074041697728897709418788050715776115303863154993034364375805328370131771305973419958669821761743691401058257171299764891141723617079291473925651752334761049790988246589077552205103656020036166378114445970784910200221072414543307013397010961417335813783527113958970136266099126075020308167985249523977883994202709064772487927727878382013465983241811125098186311642759634553550132518640206251221518545254096156366017877465655048137479006662291031508179184913431323261650460201895707502294486357160653962084413666917091967639758072757468050205379774247322662519287952744662804553095621817406559878045727186386580910325604111488148459763013096104730957941342294368919071422052463833200406731349110610739526979944355030302128166366779160909425947128595760009111142991486228550882301251373931368411975889338819241451019604698054437535728195209876729991542943459561062710183510029735367418642913298585318614546836304174091645534853498737354556484793005429480538088915766673273541992009581585439388544391575362025398825324055073932222119032239497605653217614005033665770342401310104956520633687456302318451802699354890626430899099892818665382260696019851327057591746126553234055762546243779868882143993807339304015909379973399594393618415020714088511427177933253792414722869748627212614612411013102271923949129930238009870858347946410705713138229641818429131424507431752891764018172427937968974906151812658865602161024008352656693010859294738614537669474673272079340547249652881636065763661853366042025602205780369032649212534550562184958650319782585615279171206341454352859008282296068191752582161548516459198898752852907066974364163095902301518495549508783527843769548755994253241398965805593285186188129874977037039324538139257964334361087009692677273986375304770079981274820620144550740586018898754586215264976156452930562206067606261543133429231745317393038763241613734054526936846093576906309280615798433516411873443762579067263404597631552850177540749151888356721231565560630114722510421463089610205080778605024151080158842310339952230567743293308716362901075349510969624291097687405948162045516874895998546136435946035505145494514323188190694018576082480378512917558645616740753328957722154248802107145962908813490339929629367525412434402807297899802956419783709856996377710876429103884951992268236770303081491811525901154408943623667293226322350782958695220582816816029306988462693719866016361628989098688719671599612910546370023320950252738486361565451064449705878302868609034497579676458050171726765221088414472755192852325275474427837002976367520060373956968316474347780756381818485914643884546294773718516513390493118849211138499135817499175477597187865677645318657397153274043767447761989738025537332973276436582744403896502826523046313036240653862938874508931057132952867803464393464185751080040148935534478296839723269016564745828102363096408816272065845289510094877794008660753017761020333338308735348616961400216074918921664629511963684558928259158281344730327599370518862216890219623815926685346059149930855317215751120963777173832065981252386183737189215950876888945468641609035190378714725572107360266754558165303667393048642141719844612403832050914259716403723370247836073331130768934640527481609427622337795707496190758405212023037911230421126262965810638907045337559510191845837972437041385436861750540055696200568139227265668184532778257075814662556924972427814079440950677485089402214703694950583420328958319157278212803669934848213719387977972308720179129196303978904363164015889978708284612487300663865461892956226145844885971041524759408962448113982831194519999752552042268432154119380376392964163043791554345395410161276021835775822917496916036999346499531050857898949159365039789471802538718069129989728936964512585616209137792230565409012608656976011411674888642456095485282002764353037147927659010442049019992983506524074603945552485885485244339206631324945800992903998930029405462086703470056369782770175724104498945762283995247788324135530565340704025291524414593489412408155583843140643294610487153934759614724031520358134320786788762266404097132717589469113688819773322621830971599879941360896440698166868404402388756401104440720683323055565409122414835255336575917743095431556325981053246370789516299633262287757510455038353394800098867970278859611159155911925733174696408205161817832437790444173945793163481248611453832967708113457862808404662267462831070854494068008350701599492704371019314167821876346150493156132948678267991400679130160726839078775132662976189133513864667998320600322018004579830910182788033957438070615297530393519370450549705081015442461476231418437403410355371457780515384795586789449659901180641764996141412498222079822512025521586686095485281097702416288841863895161980852247090953007742715560709977025893012481827836478861423120068045798306952560876503354909229889214545383192276701485038040731431505984354918203325989809106751698823963237711631928627200795475887397594398679852969464435917100887826132820891400378102165550171757123622243537124008054209067744964795413487279972279672775927642951018403546218193551875117186178763655695040848982588773008779143443717881977789405035005458582115683550155542182928548186845426356259063774246398193342152258821042921068332948066135047122737575813573042654337023874716648479450699196801680075569915088410896007722488558931884061499859142865756562370505150570799643410088796033977642095744348148903827440786871965802251079684943612109812487309939924235631137944232227380108416598293075392759073076810887015767775620135052366665457627250764030258625771331822396770071475068278263865582372182528708807757022633070878769203613965400893595457425311082248730210755731393350384649892396855398876667353312179809489960377556232618467739597838946862824888233029254255480034551202887264136321145644519326712541118750638362313305473513817224418782019146969365343846354257910353119999214533522866608291314103307567813555659717644674650433918184723124734257633598805095578810674803257787058024273664327348235830593400532442438494430276270870419198668743303784735509873858306986831016708918728910772262807066999911670625116928231910195701106972465569831894210566442503656162459596771897319046260249392245074455816264908715032324893410031434903956010981217730988125745993576466044488491202118945141563338280191800810819747040185392998185379335862429972479955449263012450976848008245018793657011835240689975703542792566996685727063704934170452964565622818804575420955323583963541593708563706295400056730491031199541405803520641757290868003721292732257102697697247905817228019258324260795033632022468577581226325213831970861743464902668540530176405721666385300020939666274360516284200447296061453017162617295379329706063622639317040564073097421679014116989355401332979584517097227947053819119913635157839860250819116666464797542425479771415805657224526606915674547016335983700768617843841949606708317977673196826391345268889567034068240218298459516841049766922030022330372433002639885181568074141281229818258172965820735576389927755645485071918584971492828354093497817144726902301651733112169531254540203110658449807081962806543189720280020614593811828331661840721462642621652027204211602077757213284008003287622074805634717006849822607447066474748397877175657573102825408116782353957990400845726039803633937580843606251911353483139059814535355256326160793413661061164714648501499444949043534044136478212267305869408590728830471209452685379541642384364009911340503061969685380182610899549210812223540279492760003016706193215726033122766178670049715853004862267157334886424950787909004721594026592044972072955122288773768626812874359835092180028023791233968496428826109341161422639260886152626301287857321694710244525482880498954030185617799662992180021151117647286499324558490714528700308240657783716501558741534846996241174071642455316196354209203204132509260274286206940554200390882780440540475513752811777134684212503324106644354993245111552975724913225354383289639094830143103955861406422396320003763270623572978173614808190471087013716310231691318355443957498477835386086359397483331552144410626243546574635196031861886689891514264681343767968775385723624917094345462845684461481556435140002780384345457988281648375046261130791664462058260529135173968662567750090623928158452885688779818635144407779290329193978161838980178774714208063634573755404062164390628626267191623837382912996090653506177155926998298639865595858822191935510624574038832711105284633813155971605637999396930457069529274123842820015147893561814445023436414451044555452501053904917245408046729947932527965624553266938952301745905736695812110098887482325735240477624199644242515197958243443829667827801567959105172467591034561775566000151415264245390025420950393630653622120744340848395299475958103124778709582026006339361459009247984014508653052930678555483545614955503382980610087586004324585061397456538109264875666984616775250875660578116089755500043167948524709032025143853167177081503483234342113277208347278950973700537244578648316758994808249626654648051766383469684938763374637553027866696946241178620440458432275425785548874981698942184477961017928271098287674393895434195087119088623979981055919888842582107021249330996979729455536232231883475722091556802516970065263457271736883464909360442796593651527906785851623221258435196342345450484044922039455427433382092193107004761962846307069696156009684273268350157880979552739930060858162698207329164046680056192668316237334617065537861802830164027730729570896897957616573512193157807682715409958205545844239601714361267247267862147559750756482555329499217206454303915323480895617715741581918844686305206275120607667780631298975757317973559158487785018004235773872937895564215703695005745133472614344557712828345407874653300586733497685669459009487606982803353760753973831367469619976008691188388626948329750141150516165746342856761823645861558880894777637874626551295695995561162543169325338549028635429026459306676799575534135873901309468686546228202250625017711237433422230921209669164172312976789803515992296121134028058655324983992236679234973071726927148094635374563659675456772713975586184947352725034995647571324737554587797439531814284081270963167689660252931481296922307691751883665607356161362266980264216041012937201164082142124965864079874629197842119206044805908917127611149880800633126649327345759833024895543231374375514614712298927245387209860540779403064057877265902204675701256190281943374016892229463476363479273685752152523527450613886504479948071899733867270423196576576874752358655701698270608400847125506054966568872196545713449507258226014458209043268158400861951584552227987435705584533132809516275763013895628909870007588400631772123184803487956216677751329131950005869477646261713941763253135826677498409237043424173409236813716611235363093897478096979619957876612705233672703706742995601447621865863936359445789090577865138635952878309045986255498539491340624292488142011010513137946186698561324729369102524299950979172154079787826758374863673013902323315269305205500872457218644259437431236557814244850980703420565649000815833617955550655164802003704372315335926870182394809094486534123998652202994369272496704554585526429286683245147481702400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
92000! 18567991692962513784705492095405149662670806078550010124653879887229049535289976023478429782257731566181079198218588643710898253939319938906802011668822864688250950262898887353322445569443470818124165347608723407003281265510793440232569331056606236137145382884639769733633548579023189720318534170876781069465275757424224188512025879018643174920122413571178307218538215982234553956824496128482162086415910304937608294314961233696623241663424310644425671494474376606968057768697153569123699560959563958284120803353423664635136691567139901884803593033124586899091714649795165961615927284908306765767491305438720280709832928304171298526389717157904269419700709174843167995789863199059316739674820743869957664988056701089404228602504790281499906761772388270778356299831581032566715778319309886674751324583560951857901743038355959386962325714491730594558949140609238161969306492637869075909572309973466800279085269031755542785838053867392546844697866042153977653471635805411856246053681338068871686638283023190521149936420065585213578346500586265971220715838936143469775819559728515553421569000280620279155031064236573914444830698837581389636256278097202548975709145635518367741898671850418619883791315419506830400723311037576545991157395388900155650028610391967713114091130973126196477885425066433141478427621446280528230191237954770429887021813123280932023147347155835310557651862879507381183313799896545564894773066364284836540895985930428829833366898368405841220805434675641947360281010159694563321138287249929887678188933670940146537706280556961705630842108998637212126953606463253494524227503661562426758833260409740796157533406983324421926655886836882732166742025040473258698231417781294311744110949155565996035455571511089745861950767921057289630173615576992568063090052309452039931594570623136304476099057004679088400681701437831790602166790753214747339418280586117492689040486191456727034844884075894929175444034543149776164482317336830698241120627041279236595568955300056596099165256228343040393568439131942959195970912994537777698795831208974617403488245785749786153983016281784518079650079943929888217876644107519545256952876330930130912619593061991037001533300829052033672155241869928878725093042495754262415400134367607488733125380073867350313750417413370367492776854248894829938328546034339450497802364324264644280744654066324714345833732442272995287817973263583124565299839064041668898360234335422237697529057078311817611674200880775509874400253835391695827742418215654054320951589403046754581861360696372860261223211704023866112264473644321551999842023025261984574224600412497037950140520932983017016577496806075355941942920608971175077108699337231946479717919676489696339727477045025792440284182185236203281184750029453238219595876340406950157670498229422612494678743446069343250712749298839155197711291395455696682062051972593292932331945527431442851960326628970107263414185029810472670476320482961411442932693569476986140284773961172886680347785262104851815469021962744185231466218381284470304340977609557815815842688366118865378070920103875234788964875844637639232866109463503244079974829866605497323287848298252335480413926058381930253767388528848656563737682207972957430242482048354327846015686961372089525981372125400881487366219531601522411881642088518587405615175803756990775703949511962124630203975686986987791879461714421488015179507657661429027254233960430351803592061523272676204305097111896367404085953123781079970793383770044110077216280679145748244224660809949047718925550584849384594980396997370007180288265985717025246287655342220265041948979529153000894433690715285388030883377360006919960674089196085244971993385176188831612276745107764718061907400661407759212929180644125436681937913314986503407540828879244638302779403717506473260332642972456160986499246046989411243701728199992512099731224944221877667052376534498122182624411228760485152373809316869777281247953013959781839694266667507570747995099159165520145282191625842016504961581225942988303784236235158217839016124284505955848761310922260835719332756698803066523128826246529702139798141595547600248770976355576752201098195373877941174027874165972012144404684708088336212762661313773335781259609488537455563651829217345088681013917993460640562744121828547774048071606332651280535053601884483942600959448600259844035951826180671182879573467344851576061769238616136696245591317597511752970736607802053448837032695149884228933084664642505845741329127411834414049076854408702486678362221423815910222204158432476540022611297179322199716788333569701860552044094931172525890765053094925318135007620365001662638215456609363437368804436569025396035376218788955115278015192983150862632194933168376907936684153753085143739390514377192939934842666932514323140819270194447608071985933643053076445869139043266837365243334019151407891396519822119688942188012257962650267015119738593836961643054614647469179214930277039371411705221268672314461637815025195762786285680176289394303313159215715030222124544759950587894895963905113289241008545295787091192392374399297897934962541547809659987600402101099981594976564412128865433824613503606648704204125697222014562151329289170380483915095692486285034008155458045687490991144819613590771883922294163917564143877771547351116522844964004188260150179873741467043643986554512401371072900461829849909882771568711373550728096306839897736381188319813348883690417489528402676776786055696615670788757201710378572887295559286314013178273076329436354054064075027336812309770945442549451598773536009820157988999992105414256714622930276342955476077319311737045432262859361059713363822638664858518058549547352376624801802745736923912443756155462310358091065555500836433433787601400870397317133237922738635712697879684987366447295326762589647652930476564719496652054614140175002685754376491338400596539644287077560532326381307967921296300307981891884806080104382264362772474601466046968512771386386470005406877088578784018723138777228011636502433367024020178650775973604738018718756598453335631022434452589849386797817103267483520091103557400026155734480280215429129061974035208431107794302111893402307345652385911049566852373697239078779904098464287519932085774760124408036505459190671600777824655532341431625638266204262547185958274119906292285724940048378434906221001713866623646440647452420850601045281428129754929785223560532084528761352766157011455092523849550961080608491304662873182761123624732001326980408495312803353816149585846610935352241173628440448241877511515465337429742257365972340345097171185729852708087445969877870510795788309615073502845005071913319087412911746425858781444163033139295052107504188322421536714264617777423610485585029859839594336797629237494645784890931014945880679003582021254951331633884845893413039728898145755550828702928636765185927218472319597098352933676972300203375645999080328190609387270665940840071157763273820037555330147979526303628687602651259162528590827014168280476441767114790405922238788818417787377842630919997474187664810267760639796641943782977273668719848926150896179660259205963874837743488757230358462147644505294604083912805190417217442848977139752984384133386830127944789051899514212219732065148230549183024940593335934724736936613046973529318180435039570903655139163284383111389247139321740245284347990857329553194428962794213031223050586939005352836747184044888332013203046692202450499806313978921410902450603492858230163390235404767423207830340371014465602012009263438664828664007607250682991587549031489474718065407457511625971353337553520184679818478109061482652036112461497862384059148797057109608617229998996137664263832924240796452224812810714872854125812639646424828765886669346383595592249641840090353623786458913726823622332040233537272230719320196558312924045005552478996800950049387558176061209235661176232921393168781836041353826600596101314518024766369108055038596013379629401837349936012562461302706923017178744254320609307898817429310161340153158023479228384599722861438734466328523589792367643959666920157672622836475968815313421153393872049239510415856934463295396151286320951065853866547984606078511829967840463518224630961524129666939500810202478077487334189504523162681534310669847995829467347932226208375295897548062866244642855785843511655545302154494770932283593539026176720731505287767997401944575808254942226399643149732592714679507260840500158347510968213534509501297998773650624419316777231456927707330145581956398191328789450588652312587488505299048194363852366002868759809491383579439202428021675584066642098972847927673988622858759605759066131557505884450706929452680998111458131325401347918351811115383095413216192914434308505983615054692677042306097463188349906049322791675261787686487927308756809244074541119509898602519345501565700793023943523918113504722206333392546836453630817593590689796334461125003452995279947932939052774127952965435250106501780023929317564661600148489825579282394663635151172963259584423075748075363280102004215946007265759351401659646122016484752541081302016428040487962724625849525019591669271515201383199104843771092541158002723315418927492545130213751828624726733749571295443084225354171313364347089152717397376112152218520399224748514766465325368944157827068519817443490697674830595393317272886398468286210452101193396645125998706524689079234648579744327417826781031854801291333645704972778193934886150571548919139281386055660395940559463548196152482773988034677484863169287503972784551733366898211285137040871221644644696770184111296561356417341262553790773855783527753641560482695259207491798714646046392167420981887008515842238847254030712870996388473543419217372000435856770193465581563399378748065145688701069184331566206499524652268711384085033752959807073063073855280770125458761484194843698667119670382343855744845223051371195111524990170001234638011636390595812499599185787436500474855819964496517842964115357600443467588467241479589751065641566772056321977396118914990432976630226331878800976395457692289249461991901654091692794178861404597467162538430135058709256062168536243075139875144137571415213773285257855380125020878564817971556871134697109331804135778458394790394063342079772794383010742653640604590278595892582939390421675919095433586660103443711370340527425968099240402157142000388746140516732782674956790597805307414842041742573095409813133967423565864852901845247806403663447508182328843508919293087651556380865463926082917033640384945446209032631669679515512754031014722951381505410691927520183485920880425216100604652539055774812048960260144992900539509989184426079608483282372219432434135255155641817017084233089250521111031053880246412984768667120740236573159081972326742135560862438594803464813268498439859163437595009331324432527922867224123282432419630541289282351815836275497212260450886287838406297696797854744269556184645408640902061143159607951308128872588520113944215086848010515687270476165282031559144470600451225622845113950379415419222065426036976710827941194169692105861481862622035824837959820162040529670083217034007615971500014733287484974190966714236443785855914157669239914612642254631221698797311716283413386325772204623641731002168435887717239993408892930716278845643866598310025513655866391009391983377781278014106050476381677174318437497977585250991714511967588737593927833469971161735460623366669359944438640869968265909716367834478417084046835083061787411493139467677269839939428553133687863389450636125510513629947371210108258370491079121384020754589752143402866101904806235717791069083188470438470467071432268920429298398788146999450837654696750643536125079334292067349264258057315094142036464750911829093260172739026983312852675412473840467272844747771697416372948409475779134708654275226071975432055652392095741176345822826719011319372212163288834409030028721499919638255400872210606509581988312897972039472353455086228197745059526476110704818748242248344283275762777549572190512599539713244737182239125988448066357623683815330535783139905315293800377727101571965754725696725753655835317249060093635649896649546825415431372499460001274847268752443460433299129510823694882248117716515574612695643733387134126938612779988450091133101070909723876021318184897727367579269738785095628687812767765245758268043109383103957174321784429801670239463196927181501102154656065412437639890154713789243232127410948641254752309948725758486589261961832727273410819307904137750773953283185353511587877985008074201824476783207428559327091186293658703685780352175973627077756550795919951244258496255812577670492487606330541414248488889909988887836076982039581524313236232829764482753361830081933130352715260748028730088483620121034371608964258877246357374429643261192443602192184186745712827502739729103331069639737718096922553285804249886854510538668735911378800730052056158957852394852625905806812838130662536608747229762317951741602593297068283929153393094022819939987101660173426707958049002847011207505809726192997473662195285816266296971433498298497545737167314871838744157496596540854865222992377465006209240590293001802398529031985614335906258895351432456420627207574425869778378388629456769712813724195188562361562067294898068512444521743190319865454561898975116809649396895591070323880211295577984051959483259490784127756631856433029006680018012229726620462086599526246492504200096392063402145339036940265165176706978601580541836808447513980751611673519442562863244857145663704953770403401166080129560205887569213485658113862192283791102294679463645442198631694300092419140011030186941460319579757650722726159187201057059105294525467073812312657793518253299364266516898292038072723030468441544767867409289792865365950290941432990796269798317918433293817225412967380257693987216590118611604483319527335019674971829115230891050810774007428249253359618205955983468894484623485041511050345988906592821371643092321076618207786932484185491552382362385048275178759440203821749843311280339040027501461095798959723259544575614630036348610620959303240933250835253720177680392817604486661144229984043655257520870504377902776706739234256981709595961480148601659171511108641818509295988886828823763187049447718555686047488435024511473311696951592886531495512545070865798025535920644140795828144985162216290767424773185831071821365082289766971235375182835830672981686348531990202886627453955278473720555305944676321653218346746226663189977992216040242493929056428456830493888694565507875424732984991139385865113823466002087218418985244240747598439276892563310381044948679197723461697563976653011557488522161508487328232501217733958851925080133879612318141080851993688412407730543718983480577311861022012390908692236187648296219332277122346456486649710223084004694776488748484823774366182548011656362027231087864277386362597136396354540065877745868131243979290679950031612534087270625197245516600647709533244309239236647813631808646099439577101447006565200390501859587540070966105683311713169165005724015025955673493302935294045461568843526454318163807424904248219470230635793660786438640321953024469120938232587753806318309439430721755965705640704174304256246773674418736135668872476305245323407766930261185422205762234012661320439617921497476886129836561663279788874520207866905592719710647552703200011923710527993805263017273095397887081577677374906938865424444262046838135945185489976556613952916898093244127893850135271251404748080721774521006366367890175808014864907426412830404714486362188546911078246457479542549638615513169602060829396419989685186157931175925772094214076908450543929876217004040406975445251719599740561718152843551480942265625810537309642170745667038754326623087665931153821693896382572242361563396839230023472957664785330721461857406047002611452124232853675158958910377345234012510329321971346899348038022965852152477447960276846249461772867959574871306765028809290055759605410527662053768488325118423032287388872484608896080540055440273499368336470587946998646594463850418848188449635708719354314077247329557783278819954038789982578095006913472034996942236993962417693837604468463282076072116372993506822665588374316446859824929191380408351465138806143403758923518882633571337084723667377807904598876142631301727712487488368665053254000419004912521015297955256033377477905190413004746079189797890705635395772220264611266542873547721813414363933847791097332104489192856197918363448352559624651214626902574928677746127947302161511347222394394642122669054731870239349247220496944506870227706905654854708265214559276728022892362099523051938486956696539375983159821218664648948609753315664490673286289904306663105419316622045888907465941599657443679094987676462843891553206082084491187886632929434855820769235157314859224865959054164119700680301691578284842476929243742232410189692782534175875274018561867946907128452248248095195394294726942143462323618832212944726511450927814713509944889852160228882134156973040487480876547169692626918037834364918176981988701423223532472429925645198834128630702872571068887295125452128436513592493431200571642115757683135305527167513800270089236477806652034502251127637221560143655706551825923172813038096098062853079942565416911809241789679469135661797662619332654068768628400760471598591258459060521598175271426413660936770810906190731593142550227084225676714261539452013492126908740797102153906763059752425257075709037167536209109485046703926152059797185442495291322479583343955557760579483666526620067557844715601225281843020715713680865951545145954122250233453403569100276084876286042758361297838075049907471344121278924625649060829804739641520922092210244160819212066550512200693344071953224181518035823466035471770250070616438565105932776333162043508102394852725814575448360525244464524648587465533537085573300235710054731259940476166649274951298973988849660946732107122247497631509439415050178285274606184917065714729875618759800624848297318021428525000415241311517115048357623413457291938375982995768657363885439158814415336179801177252566390947293139205367085934503408301605331832625166592081633763539774871534520480976105746925932674521948481961056914450043639840104714063214936966766483601818939237334228740853357374473150213225173409808709670626660834372400604255248275392872185581886860087567409614314637714426483398312696796833205192934893135132999124201037360189849562938610480484455458600164687872373498885252134348545675583742768656361602579893385196934184099186280971148147397488728843902905433302430417621487021078356564808048270537518712306401826689167148415441498226285088097979002126021341178003500340058884561892744162885097497508365037715307407993894581208793249782582627300293687421894103245876008557970710769254779256527292441470143895412663399172229075130242057529437618286379088223560261878258477986241347284681771032065392488872010035275735154554586633544950709090222697974096623154651922907999928137794191038157086430117793803918540505693705032444600566560980285775451396579484584513125601977550395810697799209309804022956736031781109721657170575931062376062118226255197978482273082704870767174558038174151204804694517312070099649809985518515117841587787815002492493118404465023404410920545882084561942887481174424796565787652545624769518924412786925923513841114228643440188799433138205267273237942735495712000559056413713323473403545990732002328245320929516141499771114087006090463422454894709133715059640814188763442035565701964980910956507806521555028975395565969185868781631137866692033333702771342100132725791732594176782278572735286243165224490602933269249705175217593986896664941894890993453787195366931799411130105515987430704518997498873327517094361246876658441955743635106785325788119215350328243462263717603735521511220397028536281656121596004769513101537320185473953812688506733359892050385036874089694148381205721664697886962084482885442178269077457930736793020093752931247893238586665894988956793552119234363067472166604935189602498008538522755106403958525188508957175830510803304195203267942895143632004101751928548793146768338402850102026389764981284540522672902838152521949991308702487128048990370121859852091804949338551184972273841851462868904937244530043780944326418144896747342996619430326972735944498406335406814640559258857174876282878461106552810538663946835469826112549535111117611033295135502134914840497534326641208494331508141951772085904451979790265900316882832279826101261634548735760193896911069414465855624378050298129782594538285042886358194857188984633387894889627407687057737923270165701298000734010898261454583041354460857724384356696953488837643439541155091823911451958211858495641722996706092740842125363128245755193549700928527582458040165139778982772173129454598552415285806897629465061423966913528468643569328176594663404908923534348976600918776916638950054791874688707721549324960272169020893178900054884091243720888279969642600491375413087336594446738133503538262680213351678485649571926292855972422285456160096381502612302803289269729159222184486380737438428569385121727836755257811788983678672326614437661459862220313675561840404697956800416225613651758949108024543011108207076089602260286113759787041205193901428037051865256581449843077016649651655671759082488638800699402059815718912399809876875050181450115484163090073514768903896421347519834733564503688701326241735702499287043366500498448652108267120535021251047159562246275459380664011094815066915797658890882822146682778790317691869391399197673058212556024646976726169078019669566944713073603362705681101957937539910282247802265482050581485220920807312331469498928653037575150338146016840095139335656887815092893898517747019450344269811411406926301336358551534025482523350613367485417881871194039181456670745548008428297199818783418776484157907308906974435425183941537804443156325765718675942403408401171843285421190560301412270470680778913794082637975530027023361037467595053385332932369141711534574854734230563600869204826884131413645568615127076106328579760407545099930930387596810852263906730673104576821088901010379191745244928379513056406781381624621616532587785409111777614286846543762477258059331072056313300587461391570765884498030580849205338250356277440383222964147230092043047291254171494008947549268213596497613601005931623018296794502262478791359664216606636532174165515523802539308682372444162994773162019915420985525979530738500737127434603180869038895146426285062512275751028117539518880333604866966116780160413596892646509506653763854532230487964912697304988973248636539819568373195218843247022566595736573773431934284934630252100510034102501448120660947913220725605908393451862077377639133252036872541116798699263663090364601163907629060904388640963964713355065502276164533305138991486264909450461267043069569296594171335436277795698714400636027342482828016932143674692237874261787194110096687703373513103500240521606482989136686500324429303252692491953748226052930340182697780370273290668513618101174662422189763581237027204392293968960871559418699620316782632861378223707686909722537866466167324028011282681822863636790617807000535303755675423176736610238214614946549484683141467566019258402637625535329827295567697451605268104040706001161805325120992011036885060835369803762650040436036137409306727660216004130967640212641511622031256914939029462000660433713176472871287603660768315419912586688956028387416538928280614211971926079316795769508719429104447731913587083771795860722740029847780172554738780101704733583404281099127277443280105884891131333264283099560294144251798952395822034217443705051272389094292837054322779688804188570834824825138077443131878910929292968161288558109767140502754087077242105502929140921399235077099842787737574245085143471159776153600959557535952268775760680394063693498285201494752815881416467698149499913473668119351932104689560707613646602990797121159175064461580062656891236844449838332706391402649549581996418011638656533181588795518532247787995520545430773684794411570850092131753048613429411141108375933523642247027120401441177946231234339610714482027608143182447765987237035874672462277675168373749058713285500403111769193692211153666620948802036849863082485287744149088626737684790326128085959807826241746805176841411367800385960770836788938706804397617407309160508178790361226047439421750062159210948686132569453008086871882407831477053579967570239246923802782720869498803329063107149687073091092436660031735216819559351532820692602391426074929586139728285614859671218323116810460842873141670594716106014074814213425694369526640055402306105320514583977024744248184312763069594193343251322512912683705731202451033132002580537124927796181482831085041802332881860723222720105391297108234106348124520412029816544741882918672386356363870608955744734923918669821727286153040892746659104607732479185704489065052872753983853002562594031276078505000814021000276110891245528065942144519830255879695640189840354945111672316305394523358597250137732035700153189111494749789563174407040346644298127996452780725841827977726790990523722642188859274077746185496889352836908090323685642131119779626338058585986221659008539037298469035650778150741387886281437442307090943201668780240200553845978408811243211480918730609420458164730384102858224735173842304101799719968960644809795772193054152190784665271428724246467357720591926064754630265581714776489716413039952210614465525325017335648250459803821064131527350802617539519551210596306424561635598700707948781833655465749553288799944078605478768363742754741495470709282167836800662350711188294908831281813409740906052885705775480350318789049215142706145781689736822086060880530911652882201479899056964155144760836778106000010614220177806169964036078698190756901061634255110663934991008639263772883897577094560510278988487128580710031194460438320354050992082917060656393385018732283281204809035440020964237638918721272748524728093983355762858791274810972198908774049040763682236941304052164526115616122541096266921227440439534676138948828558784889172058123822485099477728335156231116075179807482877845345154191904924417609730534887785535381480532428049788446649527872112143869097979409315340523244884131689193267295167845009419089431859819631362200463052577035664782604482915271043613485935574486551859314402327299166383372233390955214737577187562426347009739687491949492217669494415164475980068043865219930284876912023315843512791874789027910346515707055909973254636662038211303710842854173669132523785355914698715769773944384468326332739940119216627696604730770676492497988311963524537298084525241696486603735594802875877509190392823693465762400004874512584460608453271964480582017657870544302430391191317434898873789027757954541090421808475602859204825494385469680216862149956221665898571538873646742177106159405703394541158705838686428983289721703648098219570949176619810857575990735519637468269066909428028358037864550818891812400317886811319385067870602934775648574433261461642179522874047878675982546706804443121238301319014964048371059179470207483427714252651162025280353530846147622379342903710156145511358601543847928515823190162448773416517700026097533879327265564365184030461449933153508216364249475595165353801675236323479748818937943668229422436651354283953099371416963235036756137154589226719457472405053735118089687085144562232619783266795043396654956724819096940459103168197101530659060099111313883631291210907170435147344864229425022010912893025212842779678174566147020347496600603171899622151183654793266469742068843651491508516573170493411229304332730366978648033111845621938827009047895257160363602758478406096731306753745290146669630452338036200113167726517363238179557624864332274477610307911725465332377189586685925906055139256551258189350926925464086451216182546611267558720226729660268564143439047242261461338688269236692343352505639956049432441963089402961047426885316826380733104666674774921245209099680389898035910747134383917401042587122113321112666475405472584658410006441016140191211078266942141331736501859444343560774768767334167451851250283609918777009098671263162887397339573187493159424986844500566502794259417306201266940447841620158218237524520353398236417250412082852253019913570961051899787612831940145614845212314712387666083129343301895841069582590231757660021872158732915620014839554857124605952097435063730537377600476827212284282708528872993792413298253569948859162354412840332918030065123745307528104675324787699309851384207664018125751493937471554436384362574540203803178549467273250237314798202450145977721383286074065081217919848396175584289939525094619252670712765160218713974678118220596949625485153228271828538574986806302885946376484330566243927546215577157698871232193449582423652005780132753063329715518655044193792602084326531813969766724874520107788908291739239512526837608270317157664885583126834594326701989835480275728205243744773038085079286265246387605048024200390056219076391702961197806677731285875698845028375453753421792441282698976038916295955929014438117459199386217564363312984258421676078942929942256655301032847711106617756954175677791137129212886093941976705867666822442287614318273169286856412685900256417049010359153324854538023291984431468974861371345827499906493409542803976800664008743036745521469759964855791795323151365135661564384057226116696727743533452668822509059331259417654387922494267203840628830988924711353136065040289313969335190186530323733467538339909334326362203936494774845097494913313435736202474783379758109067307060989241812587401228376727694791905953889824605817378184550788388406308174369139738956968345763962618131283625661693246935727061894939133764102017558132359935629048245112569713166808427096097243360933840603742610457743225960403901927076359384447509470416801200714883326882801856886775473573435227545104856720606812649952643681323741976845923548205948650530370501310888802592032215443881163672762076074987934440450607785308562585737009250713240687024075678772909183231643247281788499194805003932595951023049593059655934006101665995112434916433315506703348224262093999320146988601571706037423976964791994908441597578066617371238722715984711289169155761062530300533396785136865963896895319246834059777538853080125097784043851440938623510671815886831954823338812203558420909433816582378582948880733570356878887757654653511215896002826911140138339193519546791645669605664250470581562996039560116662150993724818976425064191441895354125854307383771932609833664382513639124568611810119639264249484346395033197354416146587357941033363328081437026704783700093789441255690240430670471642113627434913667720362470742805524426499048764206417361167897655362759355944807508427013391362823323205016758748109516246871256894548527959782094657257268917489238940700060124904141381980361150859510404629377193727100058203604863991781833347631640932360829261923305500728389788313069306339106697298752984552419481372644261618918489896290585867440849153299927089171339178417430476554833102636605080574689759058098644757740098321436617828353169010279898805267144619545394219642912598337077134662192269404200481516518608029854952793159997519140179330280282467382638742398394092420864206755276654750345482447560947990583074017221764218815906140043657226297446462558669956502332425192797435452518482236788452657534362544544920157201825943336867805314176826723500664955122611250440271676979140617092085260240140519941244692877819556132770539619558656861452216454005255757371479548559645062463061902063348042485990800580707936847932650421368966915065042295379347899886655009263278745369932412780579323359081871723386773156692226624597639561800749160767103675986773133210483851060691657703635978495609063117633320128753777171539339756806188634769555924730685784329201738996805375922256588749269523965693186364225917683682189248250215775422678934695417680030649401668162619047141138984722137466831693108519243626855632935320606301043226033175953185304135172523533565238964362809751436867448070531109973617959627357867764552645766199666350415112050423747395155974995719901884577438393199933689496333544830824497009213950238488672205828331158544459634224077503650853245719419439213080214123381474904125767237842263008623377661757862027587506234864820373473822030183675100749113340460926575845236621996678405888190410427209514519341714585763077336347166988117391196163476537349161513939498063817254576873988494250617546840433891460164956002162033440923435305440942179921213061595242329509487959800304889875666554359988177982060648286206568068481978889989921977271103916576508984243397424872520492603065730342579703226256065813613291321740003793137294323512392447683016872463204410629666812860015734655615673262313820726991328161738280478022844046579290471351402999730409152887650631509907446301436363420889558340362655274706311507435351169110176527307450269964898427430843234644189382466642418319046644286585948005601730731728052929722629636924193530517685075094639056979837753342250682781986502406638072830488513598422845163594077448889689604497341265799635932112947654763328738489942277628296551049690522322813856821556601405068161837775844371898226489908224230116673184638353579495367169707606638584286236325583893210195216261810311154250222781860045658955000339076087364071739710937395803712970078072788912622419501543103959945938949265182216411653276001672555568224772686371304107924990066066172649093396914066743338602792173991592420239836902736958452659538269706873680071207705759509184596202354550904963253954147308823559024585060993375903236179544440568382357920453163932252238979259696243783829411363750694996929194232602936593940027787380031742291708145918801373058304365963657736285359707499800820471572230049207049328354807754385273525366986628886260804018861214981303150173772487394550025143493173181440991351462561644574940696132726007937840090959642313284050628036902825428952256831222063828108389352442730175459403271939060683147231566822257530830633814272273566910191129294552553787775215303899848332020508344409942694896672365934782332978740705153375815707804086528128720019315053503050771910353690752291723770703706362254229697024387635498773272007796412030257303765702481794155115132097484899401347612752961402320494451755193644045390717913773146370330919200064687047693691604956491381818549657177929672470829302357034101558774202774237977404719972350271361950757843359891976325594892386439057566809681815067975205732141257887182496450126839868091103489817942055195461609375187890385020180623735778656114188296490262140107363712070894319523503060217738085698873960476406978932968951499879246422735360280378359274101307630728386070934218827933773738306345031964439674641592731417436667164577077011458869699784493512100407610017437352930354647688026615256000463576094264002994051083400448196279314619733910774811459799565843923520502012125406094075614378980608468792483159889365640102031955265446163878707284752517413376610806881672391158059211001520389159758390739863950418032106176937434359547896995704300359075818760005942020910265789870784038409988050725174182382806996836726271340621954558244418819514333974166386857519800371670100867008015401053203309001840116096522983460738835758920355208224977139462590912025576794762335313821616114257035959095176954855668857449170727251289854771873940152193541095076495312249238080692716082585538571635496439084165633352125950754289857246788972416330123358963672437798962505638888393091164534980923512344629557349688919445602670741475056932640604206192396243786069190608830269831465521932921339628754395976417357500627164415217924456104873750041267194562530688143180026232248085276600178210999626650862659367407245373736219785883353945720831659432720554235362531107492990908002254727112028553851370981592145873974239815779008253509020888846946617351686933340638752732916999745525295269186750582066251984850644237196318143787601202181105856072335749645431051713998562930072333279001916997818414205998106283657387424540603070969629812065804860041362807348189166664033272113618003609922870187321750776334011170241015651096919846406909746032858676112668151883230537687751075280560088632172330284182564303096403413470724743114552563450477015133612566836793076636751550549472371926713531872514127886861207808467624739595700948014997819603587239573434953725373331171645869814369569155550378216503583834502731357466986751422263002966325100400761456047743034272761787562081906243169778956397762331844652565903375281461965482115367567973502696747715442912777599923560717045044698832252355387953391455589141845428075317043745771970399755489298037691343744735143794407658154917730347016000758559557059926811282601531795778098186994226287496477677773063732496505699620727534829888482782608866885159910237390443274841936978067280094390621180957133000561657119735007967591921889570399584567735223443640273051268718146404779619673543260008780140541689964116810509019096793757061183421616434969180833399846479534349639289376348623171677759674618300784492707749253536906162851115843377182063638026387728226950386408656095585838323776407317925625549446532434304131506221232317789781725732291652244652345513413046348465724866834205772218988988378816153442635097535136021778152594499276758832786474203416441475060136149710566201751473998933598825694789914261084634568193988868057808802122578139946222163314790471173845914502699251601094765741696676290535103875432366625602736986717143669840215494364282486905763560141126449377528005712636564759190820040863213460478457116771840558705117077632567278320415926924459947133364368300945444318357258394575407673708925941996327588270811518428401870493939946504446635385297996260978783319102877174541182737713507484055092725619846553791316577804500308927205809349582814781493587765793341892910333695409206314276975235021938173300135577164060762419579459646546564467553324138542200168282564707735461337784220707731604141051166818341443552904961923345746754768868181657208807736029903714114542265699154284808719355676793367098708521797438225974793510806679433617246638777849394079051891995032336003605066669555968303662681546732931988213428983932254953805285356264929395577111329739301920284658611062778139438134498618500383245786262164076896792819449333264768074817534986798204586090259088943097987621573115694437512872974800511195981661095470418870184658412111767920288269671881200870428911057474425239438164575713415040346680487984884093924812703539399613571487063495034871457442155494997326493287249004557196667087810991485523508301411429185016194407151533808163331840771834893461190012258398806509735369284616368485063994928302862200884700893108070404465641985987746614698346677226869921572095551316527730106227794764514463362060712253290566704000299323544539423022439478293228372816158067735677634022739420187204755863686477542929200494696106997631759346562688708831012759789583600705423355306829351230059656182486057370176851408020618978349164047908782622234496795511915266117254452452092670780865339658388000955937867866607789170735322462649146127518792849870227163224346745163645835338381859043704045853600993649736418823096181318646054074710315064990396832914371468774033028438483673401516609879367601695578244132987790318559402279921381187987530871939839841985762638425928834719479376952488989694565592841786593005031198786267922976294683476305596863718536208492406738301506657672887259186575586272307736153697546216584093049138417018899925637453331464950987803681210381778241472497443195186898382610659244232296336941831804407683470490493596074475510900082481286529741561136884182224809856697140952033808109620059032929654197340355784023602836387943781981376215530239318261250626608866570739660221392578586470287934781573192024266032976358692222493442988036397325185565907275986195384507311981542715831595848082011557698135098587094408961373479391066194954653896860075210356012094805932575455408515531938149214990372049770189072262224141616081708400887637029610093263908670793186810770165939954859190200930278853437220762576139786413101600953402401445982746140937431783296569057548543341577213874855748167062892921049039652047848914255690765487248740204720660461427581528330782855494546990647222305221369391018661651482005949967779097535763179338489571360883936358401601082317337841154819144360399226287522533354627086124898531193935749620992351809126071171710881469847466642957247110801710604002644598089121516547500101260742063397187770546323170075493531164574285105343220781269926962151144399429210564087481905366463715785328565159178594741857262425128424010298724926267981826506245852161285739163948684841809047813396349060818427475892408229610645674508637816959678967160820140696565216620881398233246067842613448073491049994691493414840271524930923574884147971474604486660670732391702276704453468588686902393836479973506676253265675805882446497239358249870617174040972598252757036151710473096772574462592675801491662924999621891320473007700667875326939443398771219614703802541807053913372691229183724992772087372244218679670610508197476002011199206420196758178185387927278743751605774214514079195133302921876393786906684882871288007851979220519453055128406656559359373172638430978065632005468260869240604044117610012212714184199502739943974166948587949284519158881815940172460023256389106707399928701885400024757141398519660123437443842763953320931865779114531753913778747970378312106447853749303280922074939790015408432274003287768220976096804360097240989838943481032587827041604463735457640312619201872997583404519171033895902866381918691350544957685421116274453103517210106092451847715582653148843086676877283613471734019048427319848714317239561784373420036442155828996997296038923929838685126353857140328025963694802153402975319316339761199814867092873917753586157192533517219183749529508023395965461790708572702044386033094919107179316772398558280555981975498876162871956904316188981378219567044724521586136712211800477569346042775103512396312965283796443495106308294990798989983925956990513214628763957676474269698574125989910173724517598285262744219577717036367530447422380861909458714889989512955435883349613613773254622497079265280596541817898660326312936124227169026515887749928063169037188080810024742931452306127185395644585289358611577919697887385473225458502187024709223678943610028945454494148027700612350951623338060084974878509694073939760806495985993824941237797450583093039740778921986285244388035006280605568762743234877571146367311129304011212942177984425944587977093122005589845614416756806241512740537732081840325997143456554903226739775641815690151699698172221578493715618092192911556409689409559670663483327157253926224484923229525621608435792804078296062237161603385791700869848709812130907557089388825486655317271655294921057145674480648287811067475434142120768453674399217103513765738492600735321585840486967823759562482950893460551476534322640844725077036391254962077368885355149537473075075894926557191633628292576015532618038995786234559418739903915991673022271011449242211580226717088903835390427058561502865434041103385965811984498166509329147587444648376880260180067907227866769548436917170673696053695759113334976144109224877891957671006131064131115834583347169524400746567375638130928939804785170383253678466547722692850126258167206119893099704064835244173845513260050101028296973602742553864793871932852256318056040735506022963862305519843963871296806970222651924530237666570053919661003843343703096570211278014621182261869211715966191249725832009873679204547760870001720080857755586042899833207490734560238852445767612772608183599950435053837513201039852057997124621896361312467950008280890272231139290341536078625383028834271712982608382851953410416408256223435972517167699765129482017460323568853159333984346401728440272780364340117295024582489434892395832493814476898152782265194280279759040002693628667241696987391705132033398900723008699194180699995591830032745757041933235360025135378941610434920571934515827086404168936871779536043405346648205619643114716777278521785632220962032142215949768096004944620821721360872123332207709232135876988085129653761338768660900721511413072346413597079486186325357720738552005745307971327883983332821693156549531538779952213653443607589423206899823231069550408882473988827592467722684307966125789857379910819483102688095390393633132149753598645951628333832049873201616938425081171547290570698415760986494667974802552000082885876221627951359576657388083207823325938897526068805138307158159160380396217550077249688605912072990454308148154507638612119477408268029751060923130075281997661904768472799468053010640638118184549563989940222789748870333846495216766132963789587270794990270158858887763461888079328054566650914491793183233422930185242872855116458316818494990648043628832092845213961915528943027658175776793546172298489313787175336895066994606279120147972064625442332306764035955621595627876446006465550917440070196276393539264272252297903593769017128424412216178336947364718842450685362697141956381898530439660999578017175059349237370252154676942629274172768510518075376284970781485972300218901972327370380318288984213130675471520873755014815027465022492133704079274967013069767258905401652976716912603507989069634410551742425390085477687769115452008387662313890364443430900411166355394029092738817731814196797892171337377353294501396553637472863678553102938107988011385385123439921725894760100930690020664176848722872278103859191425018031545662782739814296564435748033841627014498261135335313044880606751730156588131329132032325284707868804575782676695617484441589530523560142964294214431805321702131246642370757248581098698450925243735995276795368751413632148417846246446549898185519175732450950014588062277598358920854947186456330598052467611628514002203484241503053444319148117468286210291529997014630427134200621314416404887829212351058413956484371204661574552296662321097062077893855464659672361373141547354778583641505251110305774820162619964060428319662741335450322451102958004056496174930940022106188118898332071470672566773055796269498543937043571278960270977189746055723088490842609231039596736782367979000717255826175449994584158391459541345258028394719715372403227846718874137511975299530780437949515164450301264617431214372889922218581852442117049521352250051635446039500563872209928629442243436577652461652237647954114649118182574558120126551930650041650775957056722524739023932637407128262214834637919668407359927673686076058939180147459197138969691029138474770457279252700473157906920409253437116499883001187739296902995450349933790062166581069045969540545910445191280953901624851496290877674169145338486523574459217765111163270288414010306168838663453283284481191851804185889924382305437171904307326208368471299390899870575972679323806373101461300823237699367709680556494816851309763566491637558898238789724745912053551603788057471859728051485783313360562488828129387000143972511308942975122739660815669200256616176238734124886319585723389946098372523531835582271570046832797476176162725577748492663760190493169804376082877258561752394875244534291375537208472483939302045039189312935694393927870212527286416753767540768750030522401066919552126393553636311655323862141840513144110805575946621748095525035451595303648102304469859340131916285257950700070733139035556364037303602095753886639674391575334430795938639883266967554383013370135918863335448043217931005997294151977382384343463789355375764675039586359425229036914407469037979023660369440925842670683150172739755473454189304438768835004035128021719422171623741981358637378414612872139974983674348544924894948289796991442636896171123824015923910174309309328254470831486229447752248755406135824876136869306828468122199610265962904096125665476858136966510864578116601023718733753800165983892566963034550694227857428606810009565310749264225796135116031693113729197986358788715205395042649734374242776611854260771050448082475463614368481355681472150853050076877694956807311189650065574272957312811939941445982975275724127243994027090144133679476176651555463891811651964544473071638580237713744211758166758945677880063211289430953395019866517364232598365877769713745376254879839336992979124576509061453249024493140219082502389993014415181088693563134223204281672999181359756151888685282546159432787825921615848125182198067150032738195550224119439998896079360589784941727487067295789799370665432471176038755439088601208080087681765876651354205137212522304050737329854758262040545117129831256326462053546002263998113526056241797535670012805547632698336926975772380334709090459046485333100957966242747511216900557134411852690194040034252125963437011475244759660160555836552793957871334303758481316072301941040261886266485704437021552561584841796662875739838420944823874195174260931476224989450704593914456557599784652453595156773319320819690539407884591867867155955669684745216738531115365161517864619489555339997241004866673760566588564655433060924731501348222746944601599470243917403954201659102129554174835233302850412393688260125786608600193836890057159685680771347260311534410732998060358415149203755658074723986275181836681803194172813820877001039039546130990355842079978258433414295423280764171522628451353120216433399912851477161249077557033462426685775245810438884935957045428460294581264709989590484779132509533274666708532568015988929095072023475616664416974007658029743815880838480973668458459258746124004982965526751522527583677808627092976808538602715093422485393617368316569999492909199948784729886595608862961204850127982786076473308663947521485280084335883397286851224545740734976931521646880604100665774456017098857339720481597909090387529665833957495698440612406562550807941736062875371696676580597301396297558112387351623762538239116275298368844648230567511055019592829081540805303895490301143527569476652530458215388850065080876640659731580484821308407783872258046940967195543139345746343964375546160138457843003417412959738116934347921839081914344345128798961426464246413308350384820976277773233682881744398841255857166121303519143205695504821259659668024773170693631804801737721321745495707799908493385290045708703277359867856471271789884438037706364481489078690980510952723763379211046924174544882957080117588433976781982580460375415818481903223560727464104663777641720677272008332868521162343145149891429041299659961925179869934041218095103721251508129417708997920346153249874464218910151451533507792106643943372779700737303982288100237202575870426779685445356742349580989199779998247581031289261063005932818819383340432880883984198442771302819043653129386886480773081619562790917529248756881115064124609913539818758791467553650913609823565150693154908339450998284021977466337688572762951353908825435994322597910601244858870820672276098837653381552126066858064791483599713260778312214931689107042444882334974057704101047199128854549512577504885083628517265500167313102468934171163464615987653770441740043824733009110334515516023865965400130387170290603754069313792962285603630604993568627830598261693116307581157223153582469692101953805674750256119137632190693896585456638986062414146401296912871839552498234440000995197648724692738664165461760349665702074858328726789116106093824988120701808137833918594421853161580407873771774692103549568289801949103279009963256875012439000296212627631120529378409500251445828239087594486996526183851027077185104567756875720499385276240161641186664399792989649644627222679500068956575863200672641180610947562818333694805990173163365164191175644180997317544780630274746411243576614520204659334401192259611938821448619322468160524261844211942012239154453553002783842801733276256503742717396534046802483541852834905113317690852596406980425898296883221490735417379202500783400705180546298788410966021616326517211410462955665083631785581878772831444585704706332928245121407139185604005357262752654889050399298235587336133982684282454443532596754338494124611105989631879848099467494854530840786340445449329493224981209721332836514625857928161422737245244792140621726885631466161320471918778889219269753778762317329889807250046460598197257371858026586467504311546270287917257502484215820165686526051892123902029855057837969199364590531851300756527788692778357669043407933193247190507130745501688546383191733583549164375878313214050778231312190595330146348389486490936745655193908563519024793806606641162906592621668827238511119399596668029295064226595898484799383035752617800923152106298920909786119848655741721656067707948595598155636927142193210554065180483773689343891867238746923213495186060406581988902047678172182717749108421186669087855321017480739356972788617139063072323310592837807932823120342636844925239195937786250747997788703494132703041405283512632544542166810941009615417762643160592185501341863966183734384965238623731916488923137397090976586801524462695243947503362901901960843318871436092710650468930135588478493797991172830336824560234061366885676780338518947913265223679680336405110534354259536842801023826839543767591529825574234918031667994049453144075502210860995130794473745513070594177147539712059983052029391311706129243245342903205786424909242537694512086560205235611160988648261492653315667773531239737958663377064623024551481635887721588248554623758169599155860018441210104248315885705397549999257398943310965883733045874493738889636713865030084835991968429467805089608318502022989198740876147957722513632551688422518209407399892269352988267185088072263597653746098996280035691281428878626604498997765456655925571197551111928040145541577368143841426076656034670765284707532360980415071949031416613858891773071302181046017102077973447727169211199610946253336074573509307016546279066974514280155198250454310033206750501429914369133151693793814195384352150637255101785854520896142287289909551037101155549403656667038063722734279807090694895386561197910594756049599245823331069197200459084435422450797734345146397459637120980453171963652818706507065165747458779238119391374942836300465091848222371779176333337591491955823009900527210955520410253826893429470390354962193983424690710306765805543402870517418524728741409537832735408265143589808708522452667142028622842807369154807362901796689956050229884815581984355285665023480831464534695490722528098796988635054009393279228946699711522225161494347871938777806877797180125278704994950192570053352130457709850427023843111127965889057397110859978237371382370436638183676793861108640632034124948555098361743498954442127015216703353510458404015179182036479550089485528969948501167765334833778197379729395870294253113148378958130129933007693501815317649504163002977122794995151395072883499137930464178344053064400506670229429012786861379982285526799151537794867510168016508881691745000697023032281803977626769589466745008994304523484277024542403734550850899403262781046789092778565344619620931651251051742914452926022096186334743721067183603042992227855369760656643112048233801684234502526350394494912802535727607602451111530748595717234400180911499034527658731811195705131203430436451789146344124531050983678620585644678404866244226949614944219090440532009730657355347907530625504343414054831375607253091850836916054766968807641856073589276304794786981856831736666842167108842971777170757709197762766894073389205749915987033606566595929290479344368323314784405714676025976844882102910292644519661769597447757084389938304946181557331111410705453426812124634925204297781383364146855930115333790009443306577088154351307080685507544189682935195471243088940972882215674397591325659743913575861739277465396779118017834425415472416556392446084557040074853072135676207872331367331329780389515037541671517760120370652579814142428583587406399229838401613066555821406519607882434909299202451527893001047557119012974991667638969947754756387314576257004090121869963809373150086876457372606791834598446267505160692816775804595973540662013473414046042052423090337363341007715946928024393672265072117473565372626800654867576274580057838920710159029024682745232204535199451891966585830687282739923712198445058212323240192506494896326990255073768214080479473750124314291435641169046366310634138306536360953141652084338703082547484016005956827170530707619368812607165476918626798937081487116145121301206140188472169220935430596152808888350622879479296058631888663180562904026539394063684468038557268908291422183324850716380080104698975107096250181425225052699243617346908730327156091188356782287941848361926119121672411844556568535556222779151064324021449817712336267431352088731698207276998221578543345652475555443435660572413122369784469259128021601725381933715448544403772210409052818277454803192813160641970526363090970230154116112096544149432079335301294585825089349720923125375349113418475158141014728107818887986539735295025669890856728928384790050051317161622809575375605086908153168579508648348733181574929237083242681466854659368357023144493547484849847955286287192945633048739897722819353723053605359839472789516658544839455411571660840656038632746711010450104432098829678812621812646836324069966491022186942501131790723750076792917474160853116874786688467227789884087419327228655809953473763806227686004562521766373230778762142827094566428865908560564361050522906250770800725486015512359440447835309325541277917117093753607610494848053850744375129315903943527442901083454266683076195720682176896978379645899711449462735356109533323042618373318964438280271169677343164974128872554934098547109719143151296518241928278543784735848061298115566380970413187172348579585623253879567392413703463244041760257004775903134100620762277780036438259581817914872574351808410869787654947204831903910328669425874605885419854157249842913964891429193713422846440539598887306675923660492880642256086150628036930696770360388427408432914103044649413418500163002105242631616668473379356992680332641478948182135723443420198940684926139498512230773457599934792127067563712521801298488473143243674823339347991481440003488305447093027594872234927443501062191996802102166543408186805763712208223526394420705879048997220650747562832448421821016371766347894553763998974615337285523268971257727787380448189472907553833331771392148137207850699290145331939977622837103384098032793179876182268449485767076574193140987347335689272402401104579888250189123744530135248360319703133676895750208367915837585391087270974439647391290865762074672444013347381962159540104691988753309028737319114045057479537874614721799264037100482115331563848792085471376400637450556697831493610514611674192371938784633963209922507667789962061096416755419165274863222627109898059469039650033973867044706998633873350812346428832882757313429681357291361019262778658089926455149454803539243310753309085472882441472786572895667575705280680513285554692162368182212442418388338897842466405789005958399575541090036688142249137217847902499762727653493210876479389144662923247254434317174207543113733571623745043954238525232746015220120166187277038997820485908652157558435216744092670452948524492847323497728184265353791001340995958982247569963701261049044803970281603506742613118306774558877412122474693413634718083521912289699346590795931490664511606088491682554263431069820073117327174621307772913620772937600247398058903524480886280106155345301347488418430961602319845348575779738826530351920388951032271905599751574776430762599316060124523252793598448958266033354202250080692506880637675405264477846950273462666093473539875615158316373695823585779670557584989901425409234503903140907277711183307214375293433539596225211520300759196997293850459675560610963795077144711310315659334341966175094712901323884720172675181238576881731820306033544099128485215481639956977894857601450139779159171023613305358877283652547687746017756719484038164965060243645313811604766295624553269629334488791543186810355354224420404099512743920428104507585681484634514176676701708704717275079581848804227751133182505979033763155947684811985276883306233699187207517760555346271447797344988669854219189288494396954884158785640996836016559060810020297186615700535099924827788357698359337518141547768164648313626261345776602003176455110357210755969766761905677794511115099750937529319532988932918507310016400114769797015448291461457024721860673001674405298816082692097975012760571592184941992996504504626459520360896931634132641538774384935377203656831835713911482809048918608585333002149076628765455473625013531438613182394439145479759744356965854333828374661727356668277607165627579414466297651762962843262411106435441449021548653733602152830794532217734465222713605443495525809317540515469521093419186136588718461948701299888992406858435324422352590577229898224361964228502592422384517970400405715307999461666176279327306591001000329970880656233787749937105860145427877152156562809797344239922406947562724174671488801774530980603954751852682430107460741786959862450918812499892383102970639653709401925313370452823790235492795429025087826132565749016957961268602062077671361591868569206500456745621307319332008825497346691074493768596829770843967075303819195006024363059534167358320880956837571754409856076238035313451279243982505572593682316698388561998191716005334892783097784903348730430526757942856522143362747222325236001187298906595435273104359413758862963258772704138407032362995449220583984852779329539422687784155240942954690357032683168541889992680561690511728168394892322181608902663601900793401121782718349267227909767452149442154927535027679667681176885540564331636266544354021075725623893449986670012775444865667881062817635334678213268915679498629443330394265775340046614874866913658139755205692156887689361500118501905676406555983802651449643540958110936509356375993192758871597317389909565483717745377877813550601403903067530254013103366032023173304195095957460910481607872332272223157965525975962136507642399667127796567744088242370004116726883959202215566924680733004622271359193356079773514610507046050313080251427261023758126358837200017687388963584348219109390047908569202712825617793217937184433358513589011473178354101804186696547815257855720504699495196174345316548737734656532913650325816186331376365373980149505952659649666721298277713826728005763067586826781945100836094725533953997197807560312835319868145702251161224850782504761763147667555842891576672263407688001715446830796373342963733317217928521241371410852702775370236402584997888156563365630938990303557405376115853997071491732043567927233951918886572148270857126620694891134474020769953133809136002004917231127460754178949724817570981359213756083692868323963282498267478813290815928789246298397578437445475709478816305526418851735200337683447467271272730512122585779839022330120902774450983804460930855755005989750201017816595355419308051338843361888822269568024835482450839503468948675470773128071423118161598912545969047255928345614262994255068148214390848356101487597275133212532022735835661878498811186165278005217154664894465865622896353221955221436881116811190366144568376448488356495018501684814233103027843445649289771549046961682490814780803335285833993142646489900498924447817511888965255913986462101602120610062348605884247092382140691173254439507316678732843353312848775690615102669006313430206619895831338083856424320999369650189957605312048292946070207535617540832114245028953914063062824150251332096467281488335555727630462713785618614791219629411635653225391667989339574414820353821913512716710593233149806080018260668703019712577254235817809048245711117501236632890188022089551554055757269934879187503232468857479896793467912876222937640685465888316192143169544208511303684749114495117960778129894168217650491634752285189930709407858549088617797874592758627201206199407239226626876079745402867795074509995094398819922815240172692426961328354552816476862106551056441146219662585314952554609338509503558158889578250606917943944426656904353869387607674603821307214506619129320588429709562651067117535487253701156469174942759679725606500523840960494055079931445268157698815620510771914668555337736264902899008709264349423311284293017535771371947284491900021677203900612537811236133473751507334001247970555334301750725317113619971512350147065237266157364601353274647010909628595211621633438199741438859539909385269584796891171569634060295327565716188468069380598219110277269103559228088645228542176233862125535696476987567914333500266383947306473667608669685640097362242324310170664407974172700494593422104785277931454825823611866177125969022067458751438502811595450293293250971355861908133638710511263936679961775897251385180671694639974216636926182481032149501283480982673497189696730743495922555536355438654588912403329798562348650458711752680086275712833373703883328129938899473434853922327320072666734085873157960986789772623858148663926070993985445382098443557161753719701316708231148521458815696124980837424341828158961681830412406124063474068204551702572450136389970468055680537876353401116238854935609508256958624821806260582338251566387991461143132872425141884216904096334151638420389331377321715438285304502362928110394624867269164283110058308585016720069552847617027992323816396446974156541692297736139062616565348369535382751158011055080285420882890098548878592735048451945588672217167589015472548665507430097614497767504262539774339372542276903892170961724984849964698731732840992391648075755503011513723218371445323310554172076032018718884902132169153177944037497076345371620058762758279495997415979934109468400046449653406202370051384830524568692208784675602412269829739112261891136296913623409378997182584521802610124239185665940314858648943903575175639933342860247101344871045182849799672805195676124999538102177177901651460712860694918966091684884082215973011309957278465454673436129317254404608906668431388705676183059399863245535385166398788226111433364987250434589746018366416654258584535223309232040363682241265974512756785979635742967464750041692289182456959748301977795369410032075708118600724148317786207039268952384450262817589345374846536210807001003496612073271300522556807166017115853236300790622620249590287297445303709974431434531597688755021479249496805373890338782361168319507370367037345990584323906358615884649743357070686748120964006960855218742940425163717156114005145092565560497494360948590306269835706238941336440472022681849320739145023868404349803746391452501252950039863716583022721211920042647523942710556381599622598802476774029638463399523903138514335610512451205959655115711693418332209451045652014853176718656731828005527840682271468714141967457130631766829885202940817026690554284400392309390565478818939699936581656643654534158962535812359671425374725200362406356541981270055893509442733139308363644564859855986755324355579010463641810971564595092470288879788954764574748760575127166987931888481965191612090145460345058550006835524278622908337399580199310475486719909922774152483421619644845341297985938761431414433852581225210327218203306614039039040867812473333186659920232049832675994736528024766590100645578625183694660225536003310907671641421752210010477242622479620862928114386163398735513904289832558133471505442163925791197792151821364340190094543757554120624701494784172621282977363821056363903984770488047084994035319025671581519021368768694502158589096183049056745596316165043183508049029122554896680857546599162387172724156647765919063038389554855548886275045250677409534084579546611323163777013558512880919649034360626774020759167695703785974858465760481541772449718661022898749051927441173427607481526193598483705190305887401754473965013164819319168291971946076443569324644036283444442376020859395249721547462462225861936304953715361549967558510613383264304022371836384357283362438975583637534317458206141929328511057607123953071252542007428891190069751836573991451681064987706082560573751735814284248509907161845111772227361321708423976083064262520254452582735447668845892042096234820053629915925118331183416448149449151506876145581185370975098278911674148221409470862990850326393575980767465691484781362048510786039068633877991568090092827760072609338233585040590166203216015392836563195865678101804990874756096798446745122857631949351914142738028206074446620721341746524501293371355394682601898400071978596703508930249276764952546990703972353266960527858924107397653149470261903708576734379863974732792498000671989885565472558196714069850670806516072764191812583919037959502543326743425170133322602162112202225738095825250797202240794635963116916040767532103340312082792893672095410491649635964777940876768845559135389021461267755435626732093583881202113086907547575559609179648230875816683101750457620883623163337143189065032783120372581472575890743598105119404894624106381854689018187859134478591137006144566450160636198107444417135518638287115701107872084762164409161960358672386100624641700946088019515954210848586296076362763042887300576024731889103889773649506008251149818657327899885098794748391535513009889331612900228800062784574920673008798926356535410203293156701070130413948826135918478534596785820674164610359761278178979185014245135933713270800577774315772356163860123144214817928833130186982942463531683801624958158588187813028440362013373357866132258271008740875054508632166852561334972257044901148481840412602152275527242792768096605456553744850713116833331329198018528113035380364009157271376176838683184101235559206634151544731554984536905733939151901606379158865511393659864058218179835252760862482000945819326665119984411761642723215256720421275216668040099209451329722228383758987252313437693991756612736967388166533847558044499075952859422642774903266603215842174228132487071990987492947389686430627961362745307195583774784108494472222558712783627601950662926080758484793993207289733164110155238937509664204587210337431176140328686557666387414853993773217711029522099967672190924346209450354160834378078955911840896978594741338434233737060333192886199195331998686240179386654625764623114510777742685627066506625366814630015866249082206404285792893955927889976971284692248495187173769963557188877093094617537572296392115036829449265300216261516531919520690757275170749511616783839735424362053536212074458693387438914478428267151547773704055441638652698926598780204384954024056593814686665499379588357904503713886245305690336860291763129334998924629061419702294390063738098024856695734638361314548413516969249889580538022825384025712642265724236361398800069107301346536414021193771839881404517104093294702255618747256976782351644425099563870153334676903588897823328677437154174005496743180179257427922129453675727130533250621070979438097543909194137710373178662702579278404854689951922616769838972328925010649799733424573780362251453873234603523228783943376788463610080442188107507417827365830677308586587799467323578722865922778030384686833663504163134649988582738941800371324388895873901671356967366620177520806525401737756952394963151105105834929918968647601941299918369177802433748398268776524251848678654831990072912403695746429293772778763422525122275630628800643133841744335172353618782160673721475842804615781340184016675859856095034276064501340699267633784119974253765451901881879231996360169601795539720182429011580807383318914069068798210482153747133849259508670364873881005488954831568008897841256772656639863617725477917594011851666868240330854491408523468203806425295697695421024352034750293653083274781571667656848138984922171031013676901503492096111858385887413131138999174924753260704843433313191990344611965649892011469923792126640399567663670989050718707672741131843979370974941471654280227553468200112230991859559810174222485177117724152483215531567080100488756117020675023304521791112803783705320942673154833895085039589931545134888478992828297175318297496459587559908680693176151969175007907936624216864241988176161560741944259172990514445809083655563327790771451368478256600114995695540325296701993283525976570902116235359825540117996420457060277816883991808353291487422300091133132006220408523190793094994455978022799806141016753948990907905656418356084175222520605958765314584443060133661549163985696494127660851365534706172873831714471706559562681790733893297143992771951368291067192020113889836713199449510411697840406894677736720854842302381036655460969373804260354383396362706351938991621771165909493241651228916418505491557397014189940090100309771620415276617479423740217973492189294802995812236692653426702073126488295139271674585756740968170722416310466441830677940069946804623559007100897046168012840624985258552476177077411293340234255563691599224767058532246014564181491101161876366203693755358595206566538138230145388886314121359493362712654910441779405619982883016599852182561884630000849813397302702380426278565763870349261790632067602880378846384719068774931103566557172237289240992432755971706417785155075726058248534689287851116941996506653818421385048216544643522453656947806323291646787721201343669213772757203168740843266684985860470978257163524654597696599900831005182936091086277549634316171715058547121908498065679342611372588407728740002852629840194639848857130644033179444409073217600460880071763557242509903321034422457800558179313559547005914880866421488934898864514410453890181117773856425075097310446103434023248149497694403008382239763355300196498004318216423751924043472588948061990847110320318713041210021753144079560384668448136403530725178471386039384494962838638142263165471605505432386569054798569427606275155731479584935130238638164084729751053790293713235944384557611829908398043061078360517102240530040697230428840642290968784687553816131320323106070612188632079455037088019885690526396789836336465009880695483902583664288455365566239293330501722746557755649850451075907843665916785730254085369451283993813511399473509510941614598530341940867557116962351588229010725225838343673453702288078002374223088960450100616451041372323275469054736427937011581461852238147893408162057147211895725434072572358410812718380580814361568180254607808119420243813370395134794656613092582776945521777554225584813639941748597431113813274579231587990541051303209120844705860301802755952700374216565435131141704106884714802775898926001875478369390543353457442495538127191853471647036684083268336394952266664518826648421804733112217129930811019065738598340562158526453272134319966015764947578490390232970045683288570956895308088463154880330643511910093510194829173158433834759272901089397910332592793256783565916704522845092292060613784506301116548536390002599770996866923017422849222471866449450725719645540917485288016661907364425567959644539642516824045965212842873482528932427071790705041400728441319467245654911401290091039687517818839823805353292316006943498046501339997666178299703717798885193398653712241750306272040598079201528852277815100761526577234433694670396384484370485991513247771698448711593700130985413399650799407244743651368288945125375512241874276842652093229119862085768103653316485120672994125997127396273233077417682783715935135831269495242966432015433607903386287524459735814551377930787452850925537252050445323002257999117517653206058488746573505751258215230027149729753413268081501766566200940078541078650514650498840832746244530658643161950971442785939732726250433853633368376344870813102904686511157831939768848050301726569042429274766214940254105154977186581588210729093526275225289732208846580624293359061521620932939907374812052628791778093588660783624416079135221517000895852645903793212577223799959730631520539867478687750698998653885148652569646706582137631778573470799819550937079766520285218959990631831230907590658648564041328358484118295942785357988148874285990212098433904555701564364115322789988240107684697991393199329860473866424748300231140832229698560377539673848431218713712559826796571250668772059415651080733087311450427089736788147084187696328321160949205596865407603380735059242612815008028437287871322490778142908747919576830057996760753830511663413254509471744684476986936756959170516119059114724120563629214396051226950988716659217723245793741134032547189617269844400193263144777835551075859656289061484170881646194382093967941446358522143741680193713600283222001454959317235068490578341154032319263985540111849697922417553893662853771869351300881455099018592997822152644646241546612806862475870993542053468818668224738232423407535689509924854524833193423305672554751769538700903856906572008811684602702092063033715913327779453541795354023904814981054238522359227800801389075693875165129554440506569710514827889728943269919427468989546922561392904561232138070577799716991834616589561749787091705469716470216518501038219651038192498284109269226512478387360189940056641181367061605666174119079036464153927255136345940548560063903178565071910294595081060892892280142817581864900824730431712769002730522126992148090974088025380602613982700404775999054102189020359105608435588235342999286384151330137682658356476468998384902450063978641272225308280282930033945984994824794249175354951092391089759227985231399035126944455245473337790654968862355906928050478543486833176363361133798140847318892123510191480306676858099519325290548795608833729175889258810777908439373351334632532017843181395120673734683996857887972441279273362625595137837324723976007161568448113176279618991859999423099142858273679244313393510727495382924263234369290650187430957360538821178657651947709438529729815030598904389120178106407347888951429459605901434553431897066549918198128027316104219268214156711018262037978669962846577294017525710559877039911641958237975972069316916695760395561946446230291300588468014287225747326646010230225887957407053410299739058256086883731361226673840449741940401624726645145253212248715508030378849231531018871529059753671541364395314135420173320743558453220999366582203783783801503012365416481968419385818907075214750353162187037815008976222492431785027426841853213853984900045819735404426252892027659148311128440898566628287384214210096684026089629226435152341699339108713272002447580202137311849490252867291589776614553322974071361199508986275004620034731625914063847482216067750694793321982061199056588767210371669584856906970138123174870986613119613577901606029981010297599866157552401676819510891004528806888284970987341431491059040058795439134016895674492513947233658406168220043431782744653504241567168823356473780645764401241121094465248037466605552860666531295804276904713123393806027463032791583230782755172836465798235192866963055591329129695318594695739681625259996296049591268098512577702165724437310969175029301656667981922309997191022585230745564506396666713346713394465592928297162410993900888476045999620969222937238748063758269734689660850649624496091737827086269761798561201673107119762173476894876777701343074307464690277502273216912255599706060591838576722905896899503650744566469460165258604874067482069240355390801561391609715888992840388035554510449085149261649793959958080132339837331184833875666210920712416326226484848850329637978175918925262101666517750288163706642838859320312308155626470254327771051564433443628033431825791826009220594548377994428012884613300202895873682866105665063538612002175861787509509205805185381693797783635192658298968848424679907057809034913007414053134598179763948911169301422733097404956328223818640549764638190431467758726140076781624840259258741407397883946994051410308613651703382982214071460959162718893278005769056982046635353701108396112157060971570699218444728631419288463110355135158330779913322434735919158868872557002198251288781331010917205222921903719273021354406049790453436389407277528937433559902199013295872668797106351729246769182791959296066840840138694988512452301719153931167682484719873099499624940980889577287026144074120613661276565952503323268242898859742349645932591040793955505636333955762014242092655796472895240254793585335344689900650687564350985692542341337563352241543777247522618300358429948549082640049841684031629086202708209285458755856334291719948009610614254214628891232337968991085215035968073748301671113969825589449201163314103527819807785474681906406647918739770184028467529720447746789698038070488600015555347192615910263015757146589750231866793247681917863850201310599346319158523201149160279571402213925055843969350765371267992069682469161125364731644960945349770317570424248852936834451698814155122103972954953089533838901140216699598821576658202207816341852190516862251526862708793776363850455313267442869086937540103114117474459806149265950603491137132227817516997208532432383864806429410999252245805315415741389891792982746290110454330836399280729556880896065562795563599683289791927113536488481368177616870507850619260800492599991134600720714704772870442822496506164362772979316636201108651422343895054647199506481422173122102978140460317374280599265618503891945188359627137187225004802854056528287394748781027811639379418766283296841396802990324870667159739578896698394452473633783982841669742725869200298091464482364679708196592747513118668901603378291693946525369304416389931128832084893584280438388814762062597784355403959183370421927447851929880668874471273538220097111897994224743700569056630523380474185940281472430014085256084490553332856825802285815799981419799011144084867597366791736954403838681992976194146576381988854775667247045355525061989381807395989252659986039089284324101955505081715720481597091352616301188171053946447630685330862826157362631058240788134509122835913144909030443898822506534077404670772716410456679165573808945549033480098337256310338599344119703699562270569069064522564431750191459929114650045659442070146353836007757538613531545054161623846101385391971786136496779839950196382012255014208006001123605833615774902694495181893938003366477374407584422177513368407049879517053125831998491516232436013913996959060784714508696111415312781508273616164703239045624281301717888250376353370194699293364345867696511106553951414188559310141587164297514258355414841367779006024015259845166338583749195104328657736459144500926426805039787654393092457100701668747595269586512737626997950299126550334390770003999499684758122940788920894347694778806563525453131918271018481337962143946809448602625881430596052562080071161514158605137924574933909724336929472995123397765343629432854225991542722923663579150970607366681016137295414689401671715353430432556387898382918562099814536719959174257981831694998274413285959709228686693711015870820842052404164150331506695598282438044481569825744110923249675184784253414035480657173334837720541082903445791322070737749392688145871696288146427617728823678414818136062893157350645934523220422399023815719103707414326144862210551103980406255019508432534260960095916603941711405003650929539740193244607333004878782706140983509991419879086328759224905125335326980436040884468769419414989500426289429435441226201682171564821457648044969704121502723478934276531943311984217141079813764699477372525215751772752996439107800153701799365993307049422223319646701598141174040893179208539753462345781316562098846078393703300062558672930918884353340717469563672801684872088379800626123287896327654183273955867700265837635988959362631077792100547001077095171858529354980214960507274799739026876705413142680044166088769840948910953832404108655242596941776833093062115772998982058847904570207698453927064388549041666277543397515866215874519847094908198762693862462617175510311137328256792209824152718036189608864777812330166578655727434307977947329329561507340456535547247951924165642706732923012144159012693216207192626985202611246264112660503762401689050986220088162091900812306403444538335434101925037506855193134668698477288627909666342437472805377074184121776886944834779876118196875089753997811025298673503852015747309921960399590172319337865094016782856464575986862476757508332749742913213381638999059258508309583113469283265159920212991173287071659763008959695029688101658052752388712384747073642593784629881069007644562869079866311959600357557121018049810988689384886393058779781962583454917617543110056777379005375547698345780728937792231322887720055814780654300861877532557997422999909461971003889400614937918757013482124693180579009892362036752936540203268321185823144236612255907938139558379583656107166705258732372720365133554831694444294553309803570596187229179551179379442484423216384263387368206008814503463714275275289107128758327011141658372808240936896547235121805389074509917758264790885680262771378055890040214526363439157957081340234501702982651197035843243408020628550741659572596968101501825645590592648491950171376205516309762567925153352421597788961351815003534087709116523725887089694453765047042229769582138966716479806423333527018719714508809728215155316276298648511080765601205975095324890258774192710447010340941701453059204274741195691318553391969790903068619122818671617107866499532428915997161094048448127395827578119555622938195276219550324739083518658219552524480102429825091792171893813238292794788097092770539297215053949334285827045060252100889754026358904210417732543571728877506427953810290610201887758804951883725609527614476526856726148702558604214876497586894080469232566233975604300531399459908881065933852000421651445712672574056846694274262399344689749025863323114128196234130001574142853141145075597914536435830740179208851180677529480489774579306516612042745108720091294085549409463997739139522599402727748649937488272345445234378846047624804589823954960473681927074299088498342375479268813237606453303334997561460711315849742036143275837345210362085301617511105440174427558344827175536736470500178473078494105528956094221253003863603402981973306070882725080235503622167881358078947883254926060389061541705024397228744002558494552705874279402761780856812002451667808791754766997862993605194809095706440477836920298514615390150188950494421604959236705609868915417332240382965792471936241990981455670719000200959668957982998371463315971400725585401301700265056945458753368461442741978247553881074039774091266995730666950210017398858854075888874516347612055952861075965743593398175607581453502891958752257133993996566976740044485622425422670083592615681373407819892923424447582656158420450691019216368148525233275767321443657026667626010586876931734801207547048902422610851505965500462049600448254129813417383510036232546341522714828610658178721573180940988084889066234442688667778023388946281299281857585014134611789922147247184941231459367140954730875798653478762799246021849033824560636050864145141805896990645460234661507969014233359403797232587366940149770390732901364670745353821037213310399166743230001220449900447447774796813132299891019400861851500755251211427494085956778817380774286578675526574539453004515182738643392187318040695963241995709565116340990153457078247510902606698052285535458589244313681264266884710136105640613405254095830453537094775725700331167263813146727820515484789941832841261330486914269615682527825278318502609350413598622080764063712575618899011377006746078839004743663515122175989875766204083188174477301847248099950156180805790170451336370419570104277532185887864234772517918032590290727822554319936802432767081423278557326978522465291630716088141684764711086895176388827068009591934078266381570539631382572455686949105582177482633254383196114285264604944770284665249447949794945190141248940092422860519849916191127173158445312964209780451012289344418239300373680789233440896023825137771210935002122454546598620472653611846647816604880830559052845910769235798630384494102075464196596947772035747809008592300799924628278471400863782482852392901657798161395413791672680609234478066958236292273322548774600202143098839661146885571614150865353248582414998849432039806042960350962031180763616569648919797441690163707389993030830834364742037698023486945853958062619051440003975530288867848850331440301442573442713499351909212401074347302048162621608505264301404923999358389923094808101787118569039470326092662278693898457184122501658893838431873176068455428249741165757329040363730977854067682406857635789665981595971934358857605446340486893455680826697059442047139237778495567438890121826094434194620832408297648437040619254321492157684383575248307947006227168737435966436048137507852152521743978489466221480795575812027687739402915868312523232075050238971658063199941353004739620285579979305542024886356714693565966351717120313827630280948924603115154342966828056114249796526458216605162573624991818956857019827737896492510509042719212364307020478079614977818229419691066882947725477027799560587369303238864469743280559552939066913227435410585975030771137062301904609783453613813541962886071413679351811878870363144401784410936570515869724104964897762293848581610485590946237043706724329482558458933171210298836386069562297154503941354422993586316996792307878590233901946401380273790622957322084657627163391078806094770133900358765201955745733660738034214158057683133157686395169106420453136440089307633130933673232533047023531708795136472782176786331012003520895131449028909842248705162576054336485941152712653265020964176977470990678895980877504020547490387720002484693534177930823440616220096399853904092755015113896253996613914229518065318203643712612237366070280046790679194011402651173656157477137392447261393812756415867807411185915049970292562954239971354723976444013535791463803252227439711092303722057848319649505395449321196329576516597792781247936424797284557080415475854626035633808637921510774330958452855119694352384227954816392588197139101658689026041209641492454972373796112215369803920389091565679583855579530845054377414260236658210076982553033119723747175875452793528622914162278234423324681589844562692202909017264470144433807613674875505995817448688179543272939353508253602794767476798148642746236367881176843478133242738930570279438587040426528838756886454077673765821317802312444085822147105642963660920058598244383338707330548091199161517965199598472090999631033345240283278667194972903964577860104399950012351599154571075922123943347058555362108820007729464723766583740993304336636734656657779445319896006438094791733008656879577040478233260342987178289706947117654227887683070794773892243015777842614567284337187620767602514617930164648671132225449590704406677351594884706713229020652406074771256338119224578568409608740886916969314444645979244481472768462895070575210193025730175238699021417333026098175489635307341692063638293942366450992797610292279135014311097027247189914670730693258072172531555000472424811934308911893039944583387586647702513061827092817588114142053116373932829933557739538384410763644513888826217328638024316700565933607529095769056869514577767185170132744567601656353118906903827787694223567110520106867828968105146363903678243991720110868635729344764147043710542595724961222273637720139203409372154167025412257693484486501231879747232442831710890418324935620267356171326790799632402481742419396939978807950315471463645440445025166499053169808746565621810466663708991086315365564801191872887144425667928321439423216033943791962508314171601359701896457495175554247919337530706703671770324279759390150545383426908933524831153792163447754158058565144842827873433581932588704189417519027500743119406585329182122150942098360011067848191612906445533336304747838689460096925192496884370176294191980249373560256185117226467765783165734094712040993176888473547507607082517473329890554664457983449118284670951935350978512691742305461622295787573493748105445616558596851928966562661014060351239576009568537486781423420703574704148371823816915459412599008301328527984744148642413752899200605131077774622569876867035736182477832246919160527676963414355088199546831922697476705727258862356482735049801836629219593337769524317125589842155424485773774337256151553351444960042368918902909441690440816993610060150937942893120073417225031399566818676599644870453651390261995233251964127073228194175815636909790443365118572349958355884493166805928507550633713293107282874200180781395568040163676277142607216491300413514146504726410943559132779162298011258725140627681006898892407089376935556047845226196639808222351267754560020899001033512900130589938310784713300777905797778168903306233052453740139194030757343101138654763290910522668755457224342941846454965507482919275842343062378387858145054656589405621810591681731008306163689248600557167550255946526660407392437307516838042841589567246873108242319804190125040142453886071289578976593525402006464186144376119518323038893535562663422116050978654410237968249463590552520741886803573695175866827343481420613730924365562657935663445451611943402275452375629472176852853662571555117366373615002303158340020853777887345348527520147483082604422489141880416616557167384448402907985169834459672095735835311757765227952160755261222009094136568090514347343957209181722156378318661364994905847724727339205415590684479711122481571361542648560028543974362340310556666839552865830707640413716044237822526816099146447472595563671846479770458737721070720495488465278201285737241884079333036390439426776186641281677828144778639452132134195279010832577262530111676565828102670919542006027176678508098024004066600203258816903901183124042325976325640820221698091013758390480623198113115946310781928239201841047300284897012590954196160772106406420624301103581395906668703914277401916716244253163066099238797638606731132605226879857122269457856521607568655484475685684740285377508056967411513219742830584515679060521735323550410602464329359987959326840148328248247837789090302426924482729308288393090097868687473371876420147264794728777830888930965524826138219734912266460309430377543262377180627212660780418312183421330731229173940986220886221424631062058093755170766153823621891608481214234267018778701213127442984237849072948910901471446272973704125000706672155643798729350791074827981806972315184918907152531311728855969825068712921083724545590112930356669725706765775636534744480593464204425627224181343553378147786456539286733272879501350986007159448384932863150244595044091922161410223848163062387646810962952658118597792449913538088237172093028232661467381461152976488302647064792949354299309786101959755584111137120637649375246038116075727400767846396066300588404064314401713859787814286471124669985739051678226245754268573139078145638859665722291702134965597710678412091386092409265576748837562501602731130827961006513744616028639866341765222703007928589013823547545310573244127163574127437162608167034825652588475529091897326633972766713386389281262217489705521946218792727914763043128251643875481475657584089119200056730702314476148877808046442660507322334747058977212938265516948764623813147655068134274914299221303962249789497234966198548929784628951117172154796365909367950811340048362340188363856483479481918880445579060369187031996795673344355041847780532490402354635633029222607735793998044929037944918006867146132026028417325038705611020729872064359490210168520345254217922207680392329481839073859668436846061708038189445529218534060573762464262321242907493542283419850363951178273340245395191146689702150351872961963229165195983990932896755954919226369194042220138556742325397539628496301375238055046218078494595214863688366362764478496097546495219235984041063284470897317695433217561261466834771970798528136867542401650920316700238850900718399544493929601678914399877326876820106068307236334942985053774657637172571414889793666600971553510747862845122020677187155867453488437802437510697211915554835387505758028804546192005823999221138634559365832052017507143118711794579766755672558019367602341587001580376360664740891723660751600932279696889487277208954579817501701043129040889295912297534947038277138991601269910449995388013338233263987608075508423880114624207261420552131529960750221647406917700431501019409507256727985367016748968753632478685781684500218448726789684094343159469943109428840529890588105903730831562276511596255952011915204560172487294947198682377320751159482185588680936025312407417964563664840212296170080066793022030152501535358945245506167442520546671823596812205810284365166970518926450438951082760995553669287373223318069430801412766497974924871326144896363617052266813226933199589978259160382999322448095136093228120861715503346485800279991419211881959982960996653619433970271102353239538421149017313013914818470958059777081624208466049152547199513158077014045690652037469054854655084680390534105636790174810646571090595039105187843560553697571276634020369547417614014817363488200640829399085701733651613391027994158294464736611605514439448633052285065541255706731232387692449695539569226605218807984934532573633079145925437068351769913584334253791937846481258003650764914760381783462758482018684371012610040452640558512774853721143853475124389467824293967190752089787711393586290313048685693052495393704025547240117767698396890647469275995432624184838294642808738047749812670115999826678943715885788566245396698165193942727102141697540927644113080399513227680462196175669743903634420950457633835168199119380471975702637140959702747360970936713172232268495898991758129695795284729550384083827671762243788092011968001320204953430147483027089205569016194782002281373007059568352280165775757568089281064071055434924587245600908932550945740341921837566948622662025857959253990794285693226709819973634331686024355502666793996973277990984966956210305009756885251985112717194053247876434910332793864460538415313989738897053243341340582399871603730548575566728861791893755691403975173166069966872887633277412130832394827215678152396144480826893717117642109535085965185443135014867028260245518632479196483538810441093955972899225973814672718412021132141187724071929777866767560373832685340349212304875150524226825119644726546962044271215560582050107583748768505134286319419629296016142275570352830068081806802919842917520604431773103162402065735763805744960001481325157726588077780535497984185197389885731579051304652896955521662932354361429706813235407097363835133191388502151443957583830022332817611771185388932014021537103919851339318405190692214771976129165503831726913658714200501657761964817360290407117197644193674797891112092792255429721967016797785255845687764008213215778259163992289203639943871700358231338731467868307157148490875732265411752291234202307495425407222028620363666965027064232533351155498719921801091944230595049701070035360200603872208596232448134877195384835206650296596625307144534063322893171077416175051937271784400373175358764476568204272159071187981522435257711630379463084693959041111442263395583408387347885329740582553225878254077220962844273403932128322943232553205421048684888337925877327070069813672847607648094642444918977332735207706554428712243106150739194542970822008940486285665912161600465899719625608979880596189262176389945954944744709772023741784758381618234019697937315299036609794466819282203022967858620296648639887389908794163385522212056894901086919859155777941894329386205086648902587186628038403732865054423989335316531764994323265498896478833456620508258135687622180852214870360634118210973366568347999215077465669053856394108139122469930697835608699183240709613875863419960911525646529194570965170274088931003508671736422164212341002458818863499974735867238822845538794920553834939107144861695298778277508611582672038885850009931713996655727461741417321686484192417633340966352897675981585976851287331710806225715820427043715732157097315818728870855599969123198457941118517181118740405541151308070254271747544895194914442676853132399145948881050537931006172493361386568641036352527110789750587443265485270168335288274633011829992582479505893588566508511923482369744653025367692614311194101366373496155696421388619053086566741060534202630770690925397569530726091013053644466384010472520564199949881257826567284621434620516630493209190534958545005260602578552121416850749385435384003086758164060512128878223596428380998964117849449692098453889195017241950747523775354890325050480021057958021070276334529030504130177628929306724388392932265488728999154071599376110275662554111409467578574366864591442151196987342266048707165642805843396286385406914767955568201776036101651974058126261709832017914982152108244456364548793797264509537573598788359222867924653214384586640430863787459945051703958595615165212935314985693791662822861034785012269726931774753160989610510691511947971191086727025198417282524642654804418126284845536033738915942051713300858227196753915465258057661281435644911697178269761749281782854231569365633971617785858784357221549765546829702105611303014117864767531907110215248334301637181773258262161546818031523410295975559725880892717846316496617014444040436482445872317901211381897799076185468468093359310042953506883730270333736338585449151956670481499382793473037703735287379491738387003269669154028863100244924953980515599139424533267861861511089294640823109653849861150552676625251748057763425963805740944433003762188830347370281349991539076911886581346300956771153204105124431346351455996728991548379650456814580379945328410696168078176925366868240880739316390613576502454828472400855595990649900736119735387528259575488087928280574479594844154982351686385432572070576127120710313656452026226772064711439806016459552157200501489333947522875809364407295139850389156160200378200068871222914321692098168953401393807543319138265791011059763788852094708636897300301796685679245659128441543743732490260530648246140723606984851968697438634997715117138412522828875246659421436557048653702344373129257161476044813916420139208398844236682682890689254526065384737333156372436736119011421977106452135564284478745803112363551628714697689481429302399426313807301822929039065226585425321573604769582356296724139522647845460325788550419909939230702369123517306405171240485142722157697475281322592469304863530983423783016163860065782219603468894201495668468948791830035018828275613241697056903144868453676675988499840858906111969099084533905839826048456122182790169974420376610771626848527580414581406516906535889417038585218294656234870892601744098108784060436060821664420670337690508110365201963797163953483174952380114293575467696508963809187233520076905348029798610160969578928674360366028325014466547686801376409874035290013528098456283420806817598793764092418377436259992293759112653174759856004322196745203215555319558374631230627452892203883152047110983943399726929204294904024639012548702970243011540008372326412155916105036288988875879721024420551130893455706493663367038490716024757059980537038582148351740629826900894849539193483600169623455929694362738891017439942206591918964979537165043688531844354682435232426280362658756643191637910297486549994442862752428495861284480513937074510351668423073001378039800065563521051330368800222572824112216128602043260362674812715691086828037470839415867103978803720309888764049064319209049540808382541578729449739890769539737957596223528532847646989142849179309239151828574156251875964761097671855853811224521447298267565416509374979119014763724455355076781139586199414303363718684406901496315978105024488490242394294677411018933870873548834052356124993710668041630786747794734558524480930911591576325896462599440558179309473491022064514053496231355143490145587086915889299322086293490729105158386260691895743039283929243719509202306605418698422103617883586197783450212696295769778830560652821937284913068172538081581152795055450879818387629168926542761156857681783034805653642070510284528872055112880852772782627320554099740392755014511742024642919235091353308761735105635148209823350490032859984205192984066713537661924139071279921141395099340879435212658565379757054999373589114596128176880809059126928470601056578940019872258516425844573679361966412608392140878600946145888567888369987700965783944534372955671584943144203521120985757890369547339724348351374314666975574842803793603272927187755772352498734043380373836411849477676752698786675199378107452840677586124887548395675615469038639608962881695795721765692699662093759923595271135998400447287556767317323283479548336809336528971945665603133668544463288803770575510900181850130039070450062017862345473613703572983033186698518772665155258121337011395545181744817175661738296439724318629039545484510207153651227013771377001945556258213126417246560167258530107308263817399650585920542289530175654053027871577590553037982621752264457908091579394454130096284349701622581492884414581538856667463094280161382359504791585169418645137821957002925282203506667297633247090384722688995082242329425397625542796750506958840591863985125421077780833261886270998513998318537741335614611775028112413054921498880615759359197676252728300273848018853575189720938536679334540450078919397035902134732175048442949025810022165213413865167044597520917910815023016908526838599168213720234911573075832616221975122785913525968412560388902981601278233326386193030019941515847710337640026197604188182949778764408753648995825157505716359211853441824067252792002139831275330571119083803651400718993268692389257552275023313738496805708816171842460418061383934087147025681789876881495986939658783371457347538398949683608504020682567078279650724191132946136676782394701051104037313379401911451155654079724179742908450498171461565096605328815914732569142125212730472999554572329090695165219786153609490411374932184518945393314585690459570900706590821049231291710628596665836246725961196081340564466882202536880923111031631941941746947880876248721400492937240680758931596615508478426458707502690401271568022017877792390290358306437514138869401957784047453631753176052515760993826071406685892243299027008383891406612108166842557829734445657680528039663538188837060732549623172315385885348222116328229703023217151019247002996293334736364790060360465717070541859857306529079690447212637337091528781627463785670533724960775507366173922135252745341608196790342117912196752766209544762184771647526744569737109364821640721147403826516278177969994571788435934043418785523357357569907511926374582951727290001708221145186491004127596672877886901836350402592297197131279816532918926633900746364630209040860768766256285480675195215151567583113078929618159737970293348792413277586931645674079773945630215588704857044105492386377152985568074901036445684413214249591181899982563648649757815602895476732547884718469589244006616495221378305461301518993585558524490461486099969910283138392326807110105629680232990746769139625664023234762216786720267340307369856469739655491400107037858548467102039477278160866402543358402298618115209315916692770305391150995589158601388538269608182293613499090889973601297072499384593499643128354161358770720088139238523500706858269483594217312065604584618096677721316476252087542408233542676552245758731702834446091601940311034523712112350705982336275777577646564399391866939174492833920589856243863190209640746305240135427570516480055171488921350264798275878734104637178794153313031540327926998618229089611224377022470173511669313270784720800014749503410789033904044355690381350017267864395967018738782035415702847646441323387658108112146237647428054821813690382457820119550280730067597604984905456577312007846218568599524185868778582848714454421141071574364385631140705763036212045454923421888900621477319977930741309962738007081002270043800683354899802211618644785164599625453298208894782385374269304292504044288839730448557832453822440664545035402219631461720202705535526605650145833010287950353507054231664419633417801335712746488440038954393014468286586309670262357275800557561214916455542880606334734235472436074538186450452668086998108889560118256751028898090752616740326883689565328002874242169145221121060592426441485049680588572209003655471184506167859614774900417367686969502125005610105472489433169219815175239183467650103607380236302548572464430281307425139303662863035972682409497967177756107977634589411983991718602622991366840169344094964249878076694212358415288106914786530612182656375957465353004810202658771833673908043009487381425243516709907603160726060282030275639457717539303602936134747462693775840808338462293866599586716328527201409531325625647120369863213100492255070896398944263128329435226120058120813696533177709172730202760176843224162948258385596390091016388500088610029647004914145038151341972614966655976453536678337843650048757937971241557503660332825408464133748174523812818601384084369011303193722926764960836106639402162235323425135823439895670344834321918507912916861338302256181486410650901696742420974088655824810788562039132538795219486851890740028692650624651493676602415872897932281947303389467310368159897056295178758333046570548517195319373812828411465444652746232222110020170393896595690842088863472345857005655389146119092239641999914046552627573450539098208183207808434538702311337419944775732555351499501704237424414858743866683454163345199954941036915849756175028453830866820571969107001478002395835922210601222074679068907862938881369101924883097487343021425241455448032408648442803354917639053977401398877358058137167929522055918176400040566592259873146853409023094353579363329470170784836379437753972368852465964651432580954907149907446579855827592580256078054765245071061293188900820175157493179101807098751605820985103525799041843206109727546334919897624725524710067220020157783036982173967130165926948415560801808750634902269668571085234581278433419955641407980932577924840283192663459153310612567312525995981775389377407208897309889036610200992478920684358909097541543818083804950964679068852140708754919362465717657414723439511344547798648667138923507385596270875223815120778570666722312077148627194329592539732891156626076294443304374679057187670304911130537939098113359843657215471992026465660129992470555607191952678349187129428028764820289348482771091510239184050984743864916883658351189448083220731488829772753125394382556107128554294965629070333475998437586457400256581947263052012377460166781463649217396800263166187012307170758658873867817728895097367652245391940368442683567067288162282940474868672028370375973906389433649190534579533329821914865574598730046228722766138467853860882090846973294551637712643191057747366447885939202761875123520281748698234531467276057552947272975193906153064771011739231516906776249278663102495885004070627587544821604234552983766390038827244089570115699852172630979699678231528697409658173597421091185407938352505026974088316300945747198593359130968026522009294297614645447657518305123592392539098462198628011463074131482804161295730588245986157659868715675527612619799148285226684219920327534517563823976923536159116629567932574377542954879919662602127859823634896218552534265850920550596725315770006683797448650051741565807473928003893580785238598827507617160578058284206998070105251859610444403260042097554406770439068817756624017384115444454099609841477021304677125827174986317938891414078715111814654204361953294803283551949446469466182880085615797089427019732775031152020236616952569877407213489278352897735925566221697988568253486966437953502718508689921527520623032658594007974592390119011440575977610783927400392970607567669458692101192053302930440119042219548378203293595493358877815948007776439373884028418253793006830859325811139475592660931552391304773530156287782363899770800423411771202237988279921532774039902083605418115284610406233469065655038139874624903476744479473564716333060473849053278098852209606019998550161390586051919189748542882415430263461557995119756555188770521083472427986618142441208913233848903943817416070120156570015279557231587848115920511758692677259359784063284393516673354570035844136299664159269417234770749525219227832932827698430396382572417914779814700245192208971796239508427670522289911068606489281963880982713242102124029904941933007163904032255204542918673444650899820252337151034389305416247266925016224345879116751414251795535362553831891939524009012913682849815700758616829289272735747263577548247755917059703448637126171322403030003040677170168237453772516052725006462975538037275514070636758668952582895757863191058852703556824563441125566668319199013136087106539831699689962098389160785459452964798671449930134975836989424200018323823660077819955897559401654448910460267118552208492171451972451315934024458850442579561860768141811155069705738603700743802569639749453163699729981260565809549693469322178982713689634083017133150676204660553337126030601573618082743985225196044264952513184545027591486524865397409373453818960056597482827950532489401336097364999941961420341778640146813591763504079359702468108684598194763621767674253804152857687514078254055150109927340305480612105654985029198270161902309586060585710494845334187904624035615033201243054346509902080898850689388385530405730684185009596827255689590540343670716416645235671002691123166392737782633384497420114024018294306257324601078084745343626345104195151106023012652274863948178544884593042134090036208247291780363796441466567726121626978515248488781010354652694896861567034241408908545493481962212061430751392981771494373586808848501133510783913131390227419387727854359182434310441322851736968740624883444082940863954274704591209992648936353269371403691300645907390128262748004589462975356010440128051641801472378872052503971472399492653729891309988081130749305705022949820192419004755050184314986066935428298752580220411409110643985152284740003136205815887617110887479735418576496588447971740189848003886609885856548671822896886517072336477402453671514200073243625149239665453984112388650443940632147719006111657683816141322695789093639029828535997130009698693295192341584589138605695828327481392429060555912321750591147019585330077829588552615506792992830739078627260655839756287792413488368861441142647985951155066083676979714059756646360804702485393834511345964953159409409937519540215400997736167928000789628402032429313150598733388353145982696103926279931503752297506393182732827845405327210568077065722654555763605420395888347447460258208632024127927925120671279454548213863972168935555833702221366048768688231224814827598613973654142327322911160288106207750567897031386162501441635661695884431427948691688087536331107479908147313126212347533880458755336628190066705729181628151939946879623734251374619362620705381193525476113488597105984678599446954293425220351003083513414672967481835030688018589129233679482336091344672491124425038972984785224025655929722618836894054413885578083802282885183647978955361275041851702375683202818004090173143918916592868087853326826754408079655855783320149786971754296366990033542406956681212258167710098059794422244966566413328871799477916216970362582343770078575669323354989376709195958975638352895368521400464083571097092293799143840418780752526552043911797734114777763298379856262628525613182139969386158825320720402204597280158151781105783344636825367997184646914046877452772797729640940242559376797363407644872912090602990970529955979544628485238053377865402891432608720654698594452017450442614463106250039302375578585697120898210355394554225182967770362405117418336755892734037583073579654499750477965085456559101374588778944116442641440530301083150039010408559262731139961620667059248777988357795158666439510277432221858224098060227797335335402453936016215830142014153946199908357026653122137814897204505072737677293927425842396576790121879672896253813278173527913355352604513197817039853843973556533483069198621928535505250771279966530779904307060582940216151872207270156762363895522005475733672431428058584886809096942909821554365365227997398807455084694543730776094812234524775367672537211220722278570174945735744224502428154053659404535799618946365079845490390013757424955141370256592578338864718564212816743070228222575398212822788534777037503659093464652427001212724729533251272701209360006418846257824489208475961107422136742872310725266870195315347878339496150429113101312589728909322476934270853660011722528437823522317708056664269857688373989216996614430027028820658893168274100063597784510566661772418594523463759721817341843022876198084052054483089885871144178740924391540428200981241158171400674964493937114377933400669117180225648330400921412192741945916569809933595105915009944074447205205855793322209595792136275090082578815596609309473488906353474313392157093456575495939363837392475247359572549118419217411643831184406146624047258697306072886621045305717845651887092320113808811359196026888155577325446989294309957068686846807430934598678837792932337900599145717302636373962723652261735489433929448055280074141074502671159388731528628682743872265772859861544300635274476576358673411542133616162669242012871875231539596453742299482723548838670730691798915654878270629129340953660768073757151411503654121331217994512959431763265817342261294786102930821974983973735334894123011330555848758873684052803240316778868958912980824344341487904464826279488485949501541094108797935694774332584178401750560267867706979644802326212395429352786829259794294190884796023748457001636885601807446130319154029072827516621668116134058540662540182191342211959753283434185991302978554982950111473985606089251971271898257204543708473947877560032871921816234173007843825402837380323603083208158633551820027751548252535601799827937518685305968080852837456918549205367110569748263643834543034265950882888764400070663799828742522712661759690297455214668542210095055240624856188446973180211700600484884430824871458582473716816332522035755860148527883976281316847565223083790273198588301047471349194453977141661030788617829003263423115607393390191626005179353717143340485509218760827527914248588445559127089617730799092000654726659850658170174858469120952566687752006175655832774693775379065262140428338000446244151567975321327144161484214285911721544458871535632802273763365981166177882745193291709771221268947855158319231672354941194017470963264135224559716535099172169123824565374479215829289151924571475387705900069227815822672236661302067014598282240116901603252430509891881408266380455975232803116607748005178464490484515417787394175833336569127581599432842993495528653921628390793105460695724351293110637205069648522864697639732845907457046607402443259199604473658419078617954689779193565931309045757691840293869706733293558172099279070035754068199950332877573761421970206083788558935821747016276265311541669586928424629900568317363566294441746452022771027591007324308650705061769550557056197591084438725828557312951629706517159657177530951567974569688637976486753153022318050442809587964700596422280750866481219876295769693101078093331452469315251502792607708583209676564996496525413497497245454122957358958838591222816551964750568150793570642098928210901508399471743250531110485428013436358507160824150053623216131597671052176086704749148252886519453421130593574540188397973729890994411860480709715368634651795082858223118344222713445394822493020012898243527586335582898762389360039483802610064476868752781242862271268637609981128278800815391395320372044878270481659085977745592262570307715429480140027614909579574142260669190182251922419280410193204374745372076452296297535406801933578912386641690088294932622322629728237945947857461455868021612266000226671231827819437336004080533385408768241387122179308918974411963722754391405817294871607885654853422121860431023973302141256984717479554738040612721450458109284557185279807718897676984197732334905738015234495827595464143505573412455910115084173476489052508038092120670105345101469515523392023430276149211380724698629939200790684366409685853110973871136970806040767843296637458924365520748154835198893976296582121557956392280370858075526176545218622136917882738255196742668483449337824587711697386816766058090932660412190815575302322692746248374826505438209098541037556652248614266797607271351969353804411264283088759956329121616815147728836648349990579526666651452368155421588969034519919803750203142066758446338552127011154374792166796810581069970075570459581363964054415029636700720211349378032718291933660371100728053949567351869126915300298532282989288238789063921668484070023206781370304920662408445562815312253951930508378467605621647475712672914730195117549706603917533555504712155066958045399678904890952882767612551085452768650430814434463925697016223126507869374137708980583311885620268502703624761210684372454576321967559850857652970680219251694722749839818917378672592860807246412782961600554865612392678633013780031414339020925841988643021236409793860074380145792474711832858939606162174309671826144962658963776439216494652484695818266025982729382160425276691212130873356255878034990879248238778681987102765564655098621131777073403574484892306794258066618276114664710192403629974682598939602413009142876355353366823697903659275349801490495069837826307976530332377631637822688393526867824821963811068872468411191978597780078431325917065939491447436185551572701678229423198036651980601611580450443094167696775753006920279879420305783559293522624892547121413994270790151325058000409203851007776963504047049944471020339447022108791689801047478603689576804929615954224637062429638661676885099546751103862914312101645753646391922822300233589439356914400673987784672733468322367367267974573398534027966871782535926206759282343808470820210354196319622928474647379608773959578399518074211588797923084801978292878273905805302054015140327024631158595091566125194858608329788009822453114612056414043112328258539798377448022977916472727059409317892261013722529222533802088983508643591166271112813003033136051854114762613859381468243415944246422586086541549054478010516977120223627357675957184113524286209753200392418620857353216128853485465981150986812617166182277561676003991941115401327528961699947727868078694335681381381682773644006619301464616730159026893947105759812080333171783987629377912237722850718871880698556480965891976995760868232950353197315849914315280741496341243669619502119371373362025407761542563592753774375184832407357970363034784559588856608756011031759723006131381998006027943112770865393354099176522935408016291428300311746479304954086437396197905263468130527112555311842752430147683899349246485483032825315043778774750525238622165468015649377043222910997460995745903671809741071952251867538635877230473683262958920158021156350889713381242634705334013736198207073002109315551238920938533414512843063454034024966212376468010392208154680911310838149955726537443371694425281846794676313697070671848470325089936687447611615715462650457256281153281879126125280408137281261724819485580365787207441702785029805287444313932417107783061994030376988145419142635937836131807236397642985520677527333758150898442081459943327993513438972185588765746720862504271802027712660268403013740918065233332090342198236039727932117773479046871881940008152208559020284100219080951311502252491682084707098001010184280106977778127735183634862441552754325979860690466829241376657214247411758335492125902812711295313431484814489113375584065940123839099778745216774856043339946046353008736785463638748593851272504510764674490391294809649575855432098262893632302430177132373531051022110255875613035693396583232597019975638935106919708105437072082285479299522409176986817460105290940188701150107540289015694416474722927490029419060264803702483715418518493228688781640138773610700679874247172244427338211258567078718337731587818446510005353947686534991542994860932492872420206335291927600791686496995255363409488178394363325655888794907230342459587074408031300200496248687749955612743962307605891570462474757494508068586426037858722818095011058724823419136758138107353888940451133993938435976782605690158685558642138075904755914800802769142883874024521991979692521461131701549936388439553050263501305359141976876783058820877000831313110376778277859396062431456722390689967985666964885793037045705718008645201587906049431585386849239994657007028349352182731405192216258402299384133908358790596817368739165623486472843298035600029538362814287935026672601633352701997658753450442338203329131926961053567949388629056744895960630040076941257902336257493488589716970293765398562449029086236363351540392709461844138562402079445588521061919542387222639017697524295422832666094038561508459153139993781396220221794528556794379676506890680116023644309583785593117074244798823457727696094016312377382171497366350413105865542898948879941062267370208189776894435283700481395070287538731218310581543177652043190804554292106959357836717435198103539993089868221578765443379605964251445953701114720582121632623591994123994641775301449209489714400877125923271483220716391216696944538812171459812235860271246559188601954089200620302224221979235403359515386014442529938478147415363132335683288432044932035757697365725283803740055021546332940244393768031730129698757628616215972475227371869458315811520461682047819440919062977248547154432341611534843065525219212028727311685074589240059356164346456205214173522733581004476361758389182354909576217410118217885104470910126465354128643449705232493993866306349857043844379502602839455202769659853604649009145115077110536309857508744481924699439104622867873531402641271608894395054105798821519976827764168347626718557548107784899934252441164550679953857927187848369431679471902054822041867222292072126685948214501523889373080621007744341716411355192739845890261600891012911217356167964692664363982334770451002613110557509479006929691991469197974804982380521741627157936518153728667753054364957057275478175293245162673163858866209161026538494112050772283630260882920490042065698917732266812118294981146791359871109464568819661057261514768867236817662571291145464943560446198449638988633986432672439302091629296171461293749868338380578044519320413056407317553835206202236568768585943484594311993724574666668757631946596941726920334390120820089025354972266100720573445802956912305946404627634412155481310277755167055857223451878256002709056648341818170256209398554161701524133648572126599721108072051971869598404701990079652266345571963811002530858841999007730585903044557046854153573041577158790561565056091833171877727015696130819779174491758289939179975620458780446341938030336704766868529877238255714189356065827566408977014120131099291606957282611721904633917823846883680837243135910442663123399879555259525737640791764358775922775685761103375230857594858713495510181809935307725026940989144106696317840044138278345467680063708450094107651077206019655525434352105232604917081924384461348012513900921453916340479944844624606280211366148400190313898159946845383223378161550227661802188882828587394729789902296618807728471880921583558267661904470079329091451818501034711629103448352345532272355025014290258510177112436056018405248191557952900891482769634683165269024434118264229235786787874275762930627430127085693250077262159151868024976182670980445267486832518521721456698226954980279302197855032460597865759496076229933546509052345414196754460066308867306988098155675409510942302196228864217960562825361068399078859578218869437541461043876511019031482596438337059452496298075191501156536122518697490077290381834091204847524535988990446340964295383851586119937178040735322215179356269756991277837815880258979353207650531841606643907677959787170804988773908423744996162209691556735775715699832894204587038857181723065365791598686054976536361687359452145863091146384811196841935792744576894909328957352515267172128266562356664984742769591480860465440886814621168588673850993141446130289652256771126326789839876595181635882218885005137840434973417762137545845364227997989689418952436344904721934083721603584325392556515104796048233594165171821586053069487050992575588197161843452161370721704107629096618372057950612168236838969118000365885458763598175271359999129260476223445747828695409176889132088592157518642074117102295133021775803320592575837934516848818214224963210571167461628595201657054149528012321631977409330773263399666822404423639400276100299557400616995282300801205713818637026876589872814775052725465342995114543759252741062918345035207952202847848407093508304157272667890083097197998368668286033871023848000014188442675000971997335662325297345545424287128968547860894839749919869253055585691272835315853191160504285627361575386768159242486721439570496923341118548230522085057948880595040502460073335720377699787909254880160643028180866495901192948780475552239161595969820653764072268241151660147290295668281092276396944349651157605135162703225191103746506652959407936714408020827965207317550360487144778416304445038782348506507923297265369118929434856297237546457006463733241174559557740303471737940697264511848499459444656710943792847403444755377226046902798308961370421887107402470531032305514696460337989681789326005701938536928301896652465046880301497185840900763816795864935267011957043536887354572470401266392530320844829371117221815963791908154875145338376277151077199070654023959979617764754922515258335187593636953423569600221042168112740397241843785877387202997666168321771728905679982756933143373733547532921977050850149834789396060708725040031632758690326064895512585695504192990915763419434511129672096175985870371600033961346538459857581421346717313868082299123748380552077080715194498882580115744065880343828852866796743820868016141009563938292062913771139603882813096512403979897503279446595001816250849124044800020265936002277811107708064987420738400747609527870775557761908372315075811847941491640391692488451587151400910945266460143961273242542580721718333902494490919441405395196876194459974761805837381430718482781405401534458683340723375197801078027950653307167262893158476498394133412267489114133786345231661277170759618619147848100673961222961701934747783724018793809667594721784797981691824692042819261954991792787727770435913175074952958366529504189465223270074922286169071453865171920601895183934745331972324165616855411284918687667033536153024590835266382609831294282971344729979260077056404255068897965775168453604926820688475637404796991013777629275058740983620361602538668011977095703858418646176627537827338555050739869787541737661036593993185909143998735834595515857782197018338349748462395499950456458530343534666058266261054394194397713677884513709081354079712710594244476844730379507257347246112333022801435865142195471734078607675550606139599014730539797449560090811122823044335264232546429357547448296141174000861854829292079300393146733001867407268489092642936620369741178124803493154904214008769527803333726204630910484905202739108261034238430211631072600399221159885022576187532799697377471412351824135553400213592242445821012879540855838281617831400237941074035345359198647397227930578337107354355939573652593983657077957385939239779785550911886638028301766890665968923071770502539998842790914957627184369283108229777420592321026611451144506333078454223170928147165908360233315188704076044351541314745559682532853509743744105649621417910018755311447276398648750981690654176505893470492261234955793886639317581474517654205615758759215499063000141671761014906116053093446397486435863469951062585320734178951625108834001344236769335663935000011095777355584419842911338723840361997272359993517546880692740485305462435911415241798126131594169668316040143700201796157668248189031481185730478320265196538447049162109107412820420830186785867269255788360161574608337585753669417636597838079311834398726658116564817350163069803001845345181537967330984754950544872393321910977199988955060960325422404468646023561308573097822594619942594192458253931666602670460415103502128861392098163545042537041591584973959146094238039242488709699345113092783445962536893876278087412012892663395781081566924998334862491764946452968710007622581169334287453744780697207763007854285770456061468758558989174318513271390474168629231142493467586789437566404724245914300459454008095364609308871116476730718376441554298911389859367720061522015641065676906587915004947664622700646924927865444089144946030597383582947788141035673881466840765825109830768935962999188214084378857116973257773368431092523166133697177130646837188408901395407678110228415008064834542899515955144775114452052616890638652367260641359251369752982227944930778152637981477326686830202602764530500934458791691868277430481027508375814322982073603153943317531188600276043788715564023898889059809013815907487547665801821905864732200477082422929988013470864841075986788065822239252127607834605507679980719097243830712292549840930282488668930671057658006596351166489096479284876308287036468951286231327196339847108362406582660556834536446479412499573850807461549708967322797712633912799520976570421729793313046709946512216097438475932543056326147738086787954956207809491050122854090421674278006595947299024317293388282657041440292099511557729458514126809946482796557149106457097193449783957512140881786872748566952026226245336733868631231150493957376222849250370270866258831038700298037521178750516411521680912411472980737950273218675824051895882981028023119436062345536065215165265075452874128919392143094167398963283718782316926818372875318715532888556127462068043652742891465377251824342069459234765869301131089944136169869990096103192469161889488738920919179617969868402994657311786994470923451414060902997662596293782630083139179174901733104314203393870846926502430706389027225852764637149490424070388774075425061923351483433161575140513998835559204005848094686906698312176974889019175951990855105915993984033910814865661721656614804826561717498963081129812117725925672958991695877401894779171148050735849880920240316769914031428592713999017869537130663238294894519205090462541510331281203676146991056890673443959112849099958257891947737956941544052756869777135894752318197963445524423969561291399854101520369001965317060418173791937098709160095343512282060237534690477555939811468883902593993575878573251199109668619128705762025770916938414258870446427142769190543186240280724211469677234863247027366251685959019357978107206726462404410867096510175229898738963059597194721270129742170150078579986513077277861951145271713961870193509092436681741286950088154385238520286217394482240254602723478931873260723965722750943664785169691161477557545618528035603869592466178819213855863780637710068461812962651690468824036320522943121504583786653329884690877208904650015917892294452439194077043573497257415009501319050466023268719524647263489287728093906449222919155306520001274891792397760619505429174253474478768107287547646354269799488966017689719486866847763600900030294302368921653238698930671892903591542104822273583363574130123111902820558661130661430301474775213562647955858425239499414492428279814640244691986647345128952111992219599218977690170284336296478332598352603580488793685539584603810659069890007176321616714920495454837101109111458742824558900698590349534429741927043299916621505095186239030649435487831571687934575160043941476157678542951997508933486712316577669363803038313426458428662145296376768356705415700446710899447929450099589143247604387518999089491039093390745542068857696938037797953680724612680013630901906051687686803887514858102192802926809788870745862944109671341430396002416941146501547538787973902848370754079683506499598107976972664226533926865954806282344681696240452896033447243805116141388283437029284846532208688039231319618884474820067728094283916204716390341939522837900576090962150154995186119341005136809491055765683165621465653199922486663243288018299004745579260482971864639821494210766831770808115947565961717188410307620754836540494175264102094903181233708075522423822663223032212134917274895961175704698804138335490248702084436918763602744991213783334473553939238549074635945403135122353059985285125966793684242138211243077849000688316678391120860528708458776193810666748336283757571454212147165293433451044445039035237547357058284771138254648355762141203693655653495056554911264036975936962833964613572049400265141269685108696638499726317853468490805261215386166906027767866645250911585156657200767684652384743434442673311853075350608403756051419066637618646167401330468217484594025159386551137330305100958491534997262417589946645814371306808646609636115712921259629792555943393417677748103878557002703273933157726227212971663890774115410615649309438582626507823553763524343147057331898470705900687652625664156427179068071756203155176060453338170092706164185477424839205740401242441820336398161441260082700091127479386637634861929597060538602348435648851990827660776341618975510520524818493238889253171010340285714293121947768467012856689980993817545298159859149202946511955060548869578492086863805858218656820147450731462870810811048137010408985488481234164371097726681645067649739439612673598991315642757774066387354989479940954740127735858509150555764515478468926624749853432883473647751238574142503062838319796212385867933287714851337488450126209018925945862089092016154168693032754661045305105925534413467110648817573821677741131348345559920489213716258890840621495492971787534408983171601392198666959646510340351222926217105499846968310318200562318328618695309873154139913996751084258493525415940127388362303728844337870390653481922098391054926549393832939901333037225400760455069804786678738451991372606218636971670734368027554209493445597735344385161490579687086749710118043956848413226191889809380190051741784309670987427590217924829487271110146794371346603732581630015833916900267173602845323098062709676393541173912824080093568051092176596006275131594166648453088042639860096640517241002582719827038986106741827696383936247591990067038840397452173588263970203480626877980673594445374404534244933681476557950291463012124399750948965965683175173632547410174972684717847967272172532468647160523018754634265913311028710483646609681586615846023022633107102722345485293777500998975521053327806470844322712989621380842029660040599678280049142347158585112404247878063139593993470898942493700932234795472909008237667435068100639356348875515695955379079301663877880918233800902533829140026482828516127798342569123478327011300373042362464772979883412996124037893650165213105771587839105194320486306457431515833107066668088483510733040544065494227890549404991062187660950571541255451373144422452047306275773473867237673959905060541463968639075735738121388376698457888463010190405565982796305857347149794358787756805101647580514675538831576656796250006941654803367023197986904724752139914454285254914250174042152519263004747762367258403462444759635922566079118382582676093985811061179288821988783857638141343509539144283183840358932637063893306134158251536168532503772173131815453584319683369911800004082681961957381347080825623753593259922608962648351250240180495182067726677172047180580017021093850762966099125468327711572017866669513784350983215241836745324228370899512825766057020122033824793394901901194539102470078015874259751311710112223520247246331933129207222428212818741388178188691354232954517290184013941960103979572079176659574802173341393393880112377168192776984083190858331948433046505798878437623979414783838300556353576334181691801345683948815121823765361814288065926099640458757437178599819661044715440407599165979209227950199589279498873755552552357517757793587782357394941279278815641987848400692396272460280377108046493024303712130903513722474802399704010436615691988854022804735647934341093563615762556606955493951096360236645565745989043500592550120488266343006045801065600670476438434086728586759193855618473550465801203318178662361576663120406762200503117567900167873053179149469736181108311783342779233755147639559035132157227000644395476174572716768137772555683397231694430122542585566808755290084281005458503280459369709973648465890747437382926266917268191579864158901813029793486683401625490642624964906940942311411574134608933364826290133812433245304940774973756685853723894436706691039314941787962368526953010281123319438741323410877598557347867341649380295377778636015371349331422084223262126237035713756082309467169665117357377474711241615076088268586283818058003704106890938157165913241908018904188231762738354060936121864069224415365699901256926144794159288927885889158606958016124005979283541781030326446797897643681864222776806674399148962591205614886504547852706766838736990309160795738034660740557039343308855541817529463798568594040414955802571263192619618021623233383619466465736857392672288965412361957263361131581786134832961073755861554564590937210726589412898286679697250784430180197471548000085551353089230771453476716625330695625042406677494300970130952827290596229997003289151146808714686020305097463414899692432413116283792819648870388244600766466597184251902983036146571496630807756547012508423788893500848818587583790557271772085272257605981368485233387869519498070908962189316254504821392994491888243235920231493899128467055465482361098064158386569833405321617949125613938459125722716798161223543171585777194075000469725235600184723902412635343304742787271225912593957605069445061252694079143621190972335526855338946955939875477903719431611107826343050626360361965557991326662636761888826352744041292968942562354163613693830438441912205772949161144477323025820003225225469266419718906781927132803891105561760796762079930137264896189293339197752207871353924613671685657335134902911605435511406417794803490023638210994217889834619346997990170246077864422336885339917374651179440916377992400924785523193809353956894143000503019331309405883518399098892629902578125292105635983367277612137412989021779463997027522154791568382090074556254840268265952985519785975363150154439786748084744627799165714117712027942633289326792518959628765058155064569687040096165394308728470446527484652827123601062230755637571464456336439788694149080030611961400870424094327589689028257196158295855912079890382865638732703453065567239317098123710004121642816234920617769925000147221520643234558732695018197412350898563302383589486693428261212031804604959405436027631075456202191473028882812676844386064260871531552190286396394903296141450298172737888919542265070852911990117291847442560627909081845416322300003565514857738504903706752336711958104381352629153900020834618922952619364549671449001027042573543213452602245020286757392374999421456144349024508741794396229495781666043050233314027636950479129525761514633780569500581641741499294653161113413512341770378700413122722021670478740811059204271826028841754173836358753544570426272492944212980582489648228672854029773198147151445575745465812313387153869846451386008611656398146413685484600241396482231920798951089513426189053784295748075487408111539768157553570431797290768458934870058540597601280351490218985854786834641193153180443830144405274023432321610748855945324166997525409182269966257456916860446146476368296116206972134825637151563633183458650550003062506948049005124136723846544089996693794812206786618275158313268494738179251850232758483917550324875924624923969516598412612011335011371773788745351475196264645078161837243540581734497545082338989418015426021005334225735350665721364177687841344352994899862523012160928009060726823501290856262991708119971018509998401244231144501268077807234813588815088241491007398600677632969293315569457149716091748822074039479356460938142863784710568590999801498197965379913503018688319601100548005064628533470811942834583560237815729973444218797949820630940077467336953160900446552709657756916432455777390624367454205096855646649930534287225242631032685595908010657988347236254157947768652495715468684223603178029744347577419667939675390350173829915331395590664066813146868593115875622494767594466339286034029841430000357696030708870192947299307728847624606763341383428569875983308233086093596997932412972401566632458407009384755021354428396456247073052334650120523653091851100541170621050857762658165784180973664978521619050799221284810379057825725516333334734087793053739170543680970495679883057383855806972522011326377587482803188837818818855452971867695668590540655618959140889867082109796401240370180824294399572860065808043389484931289274696732658597256907193552684351017196897934671301774724012164672223819559420029060868084339337868355991576512803236655904987988403258114755846001124346052084650483449533620382969657734545406610043741349046150397811083911695078086392965018711470576635228674060329207414136478721725307119968277556064380619960955939255503528547823751861146446812010187744453280503975765767489522286661026287597617678859570894564056427617754291809654100224895831495895008321185977593689402500975760882668245037238431791114170924757883878124293081194018406668021001034235458239332884582998269639839373247484908247538343964410954786479072744867986330965145172695984679430765145145977700791124688441067031819423675843708940667547431528307576399281842701324634964679415016593905012396561603479470943115937791790343946197097899895010945738963350901168395401423707921282721755485629103802130424379307243749085770448457313662126499006206094942828760554831092080393233778593898574038072806031211023389469216555542005771972716889721910167833302812424705496481694400961989724213485087175281902812070282598880417151530997094597272775808918900747362412126300937958339469054032866203747069862651784493899519867428180611721671197083781906581778046384886185944806246607513599198136274986751533436569365406556211386550497038738282866888794635045789619037221865678149816173161205037814466544869539097744370748764437028125077307339758012757882084577059482277066590362487589980144183043529962566860375447405272600359541153791492711455650258589186639331057386268528580835383627380459530990683010513911364911418232612366659108356344909400012019035291648086251725065581151276690316704879856597944228026192283727372171318805010436671652507040177106395172960378723395383986818821550426725520547056827725339515460839142246039874717324632711165029722526138397872903746089597757844395069543153226795994644716278360076498016558174780177639477792885518000459475796239846222977369865695513512698818298075188768179064261694753999354165235282636907385504466576004910760590910957836730868199569228298511016042722227530977915253060423210958759506464002546583724703260226394267549749443697222758654715771232435096659829616865460655176652319496389565864297993198657805956074489329346557633164550392845189012957141167209425994502170119734567527390295012695369278152193834551473550098351971051071485519175238822116133966321405668391592897902097593396209926894158615724044096799587094689804741245856940930312291367996766228616068047911492721051480764928977641621781481605500202418687478399769149766918434149727160347762635471481122944778602827602060352807871562659957184880717917410546921916363442076313572559270189619364819446041585596662141361417575513628365677976224531450035582198811391408254713646675648202067201357614035395394470313355346637483967373395398985194890387878541234125757699877660935058134997791452620777506329013086837014810302719636761207694689926336565034452357270862676533087205357792891714727449459511954429469580339688583026951216593729338551267999806888401952655260035598539906853097191849435440215670734597565485950785832948935128091377630814009787968539452495210387393080209918953086669907182777210155607376846893972521268299932345128657811188208982530099499476768668303253498598208094939697447938860138339243834920886756044084746284641250960123453399820282876826471865261070795203011359044571405804978907723818890385731922264961890394280194422350222870246596740504943429954156641632973641419021446629774169477972477718968719078729077916571726015873440284994858998785723269206272341752740680087181270300059421268692856768121793299545115612710658716587184972785695399370925572099262357544907299854532289237300177377341843615831216104172847057266845930803158354926730638281448350457955359494974476716595713356276824051218354195163479865627985492471608541500123215677029662529427768478838404430053798863096601684911258721406095602981486087977897857841412159284852656009794768848480078436010432406597324926031496093988451825570850972128893069356067821194621398293482600374244247185723852414658161027118833793186721058478099260762036567153440660411162461144808682627539453000053822832816613995225592592407677107302449188315540958854115350146018750833767954462900419840151194295495494396744337921077332288915859720020106877037072329110926797216672149762233261259756239924781343959985283750611683489855489485772833571571033701979781623096453267304757203977491282002251126183872135390808966654118242802209713286849823590932372437024969907420553698963846340071932757846674890451837443505789718385268059112883734662163277598918017151992672386986397859277886137332975865401814182765157210740627256794693257098766158160424533501717423954024654371605842513452342532683412858747426768602189176957064977465151244705661735357371592470536213374696263271572811010896776688760276925890960058717349825714747004968536353927612468056040450032475717078337445318272163765339321881102660933367846513673318856615219719441966128425266661399069407840014977608740806355054937401074654319203433050936125310856700742820728902376093720080251259561462806847499092128332766708266212910727735166688145542448905512980159626954018250030152058927842107677740855538199883709254531932404121681482290980426859766559153922496690495916617161158072333636686264168474390427073711242886543809665039163405865622149312915675771139638981055210864176598276977427024328849535733695444590786728124582508361071468700622073012669143971087060368130777325549285276209028367508227669032277139624426026599185002976888392250780292912996479835160701089731070657118341793042592345862237074043274150886478531580374906187404377240722080263202454926073458549334359579074784054810661902074437164557301846750480679747383552767659820117310997765725585193668412511353201850276623871468271630275402504987802596578642285037601512750992922583503539230945796757988848551187176671787061463792887119708610454219096513250914251440602403091946911940480181633836514952353281903105263869026910991281529111554875111467885295849342292148186296748783040613856602700707594020038599963965015877558883010533998273355773628832441700443037653243721181193355375403704259921312696543551049925780936938460875152281453174091710190046841988700284330889010519290102070712571025460486812762776090580076062107683085518829521113047997875624489333091738486347205060933952400993053872753650383204100369508086080183382434238555480761980279445341512041871620780854380054479232247313010823288508076739569413172389224198619004661788794448214778366418580335414506641584576568750343527838495909934973259235362491336409361588929656024486337359774584610569822610478744563542475014025621840972423768045276228104119042510805796776438961331924373430547738754669411994128156062514392361539953812040032215699554648346016197719196414548815852349338261127773860156003252452733149148617632134836522293920644052999906170205782891775317735437655317776352532961164229408059579166595741169122436278203099388064239454160362017352519177183502802156202200131837898330978650206149212775097783809497145913615789821315686291599513503604581431186761018695471635454298156201698099055745000947133948442802835393294475003114764165929644566652500505680266874074975118532118170766918591537936145082442013699271550654626477323349547353474866877021213633971510145604446260798078600984553230367542820160770992675554957577731685703224141517574853894080872873874755589979223240375712564140499190980534475415584799919801872782222754585520292884882256850565743134107332559144570640941303174520365230268603257328534851741746022833326282866915048806939981843672045762764922215528397923435785779924212252042345486717032107761840773382820204609388132838160024932036245606211985311692026956967492473178986243563892432761049638545370098063337351606546411088437525403523934587251876150533924891235073900541399557843167627355504891971801453454612397186609146443892261316583466316773036857836063535902976517145379437669634207930498695937721122027650362722268522206920399513676456879535463439437638397589077126997168059982020175051993042174746845101357536579342585365860165306861854496552360880156877934039202909943901409160967459897577703317949527428253136640110101671661927310265665881496828258918976119647138265254135262310936369710782226465907770438118050312948065390029568905098638475532577577631902263323833352946532351356341123622417203608969209241051184469399150366515310963677193605260963617904486652883435369645958996734010171653206435455774456866124673742300086599371770399103700748835623566745218713539876333470326829270002221260770709597825734819001456282044201111589356531619846896089845689505416183998927337713124688912015459233269071385624256223400558260871465287577611955103997801657492678359593705454149341255942212019345053234162991361621497342197275701073574750435572545147077890885654003980992213941993057654742046386852388598141818019825725850087506547794403419569023367462556568201787923595690594831252975444238428667343588804796757072976505661516580689479907007125600694675557644725643306641736080987347466301790111257020135420637536038392335854962734653336505752079727266146743037567102758367491678944469595821820553397975997985248832388577623801760664677636625808576991241895608805585975600487317912451276260113395507338191513844116270210194784890376078711477077926830227475730913732100736067623246096690866110104381350914351673711722094416030381249244969412381820351608550675568666733651143831957847406054207550626131729341253533655758754463366937370139331004862334577726776371824133100741723938151307312625648754401174384620907426501727422440166711282974620510054930292496786231070609102938812310650148480169726740011399022658593616517644971709777016849364558983374567331105699721678211662904331260133912962710064177440935751400706519634811079175916189515621337387499912281687251951630252650996195537752489726477664155456835851292258662905314176699126164081346860091156244825386668302514194149718881194547392952678842201815656547840722740498474589225730721161617293893169614157169709896331388126930339932250447390220137857857172746394118562800342352955085010434662615583703569036022500124687875988361930367828304908035698202011266749170314264276643813502752094354081891992086220396661308482441995554285606567599380364953002190682277245995507131380929471128241553617117063622887008008748443880310105260367530784505070243017077966944169450373987291224159472353639041589169037593334084876115529140951792941227271781201710712386917344485221467651026033859659395636826008149456965707249844149901284597364251019717943598696103423855412849043725962916684458694160664457335013441572079709224985701395604016906354918135246082182817624721461619345123524047451075705845649406445466967675087034653983119037593852716998098462193790899954569401628682351746313197203536417877308807471444139063678897959645372101890162189320442648225174872815618315895728344107946094227202180568480468751038816691187693127597914310066182064968162617527752020924987151610528117868645885967088558809523718858324137511242219353415223509943879631011557119060440885346546376321047924245834027369357817111792907519046586691964625242573355356848982345188676588509911180895836374207665543895166689325298480655048169208995634716220703578550435293024027384677819436326284930762537944768843588955829552034009955943996737750244431661365728861767814391352609478867764650973700016841306028277212112753177568125496858515617954116188778646195808263650837360475761412307579162922026525384453363791255258154790518320512159731209904750809609547080740158105975251050880219616423048965676491098281555201554263509321495090184686116642324724441545219325541706601635619832258100731429594241016720141813393459683372298431016055990336521360159570189768514533058259273747083884901840156013610996204956252550805665737917527275828679971752761125153590669167246511709136200742308367336870469245097142146792720469890123792327838534714674444511735812066727696701309287266742628593540012686194231465778013675956030982305709467704258121456114353019403828538475480418972490640429924072393336153239495167106180425517415566205944911605554462466961665611767967911625683271210285298943245192994130794268298680404176584280890972866564245013310382555626950404485837406081868268112227347556864476643445404860014491188934508539804991220960430871567199969701463839441442223842303634694221494619163011157405737669119226018226470744060153580780120567901780139345028520260616552679866117413096132298527856846172271990995238840689074860488577094836009834863841690887644006189675199453414331552331619141676280376513284858314885706601830330759014403970954486861098639391728425628260967561682206693966599964998790389882165319035203117267074514576941044173410945207137642193386950307095405887276485274357116670661206097190217592596523637037986495822664896905460438606631435529505333412960241937848318470578733744162922584136738132637290665663802550960031526025586458963767168524944841742386444356465645572741678671817712816313822406953833713541928039762264882483916735246429699151776031569251615550630809617616941414746549425573787766869018296434693658043406943336206753433929617240974329050329284970731564305172118432656164926052220655402720275010212334348201916914454721866050736412203757864280443155238504282968646353916474191522952721632733257246203649186875860810245610919842289874817546398731347781145341711720409214471768119473037717822875838178040264772789814643004053339784647553755324068560168458078936815541688967827281734117541060143142352826667238728622965059219452303221279143055316875248382900208514690823129258076019164098788854074250448342279681521313191270145678518583459381261247900005712234790744099856968366806131114191653782545635412688357553875612863460973357590836100340995941708370001107441667213239300971043998421471502632663717601683510081923688329552736129473307937109325973793910050145431694573519760263896747912581464907746131506908916491359786822918017819514176663680176158581844111224397378447119884091185904088865473506447049135364189268318152063389710117638205336163882721794147215580871455330044504650198915179045174087988634715439358319355616989664319743670028643669541104391493469162279533162960797775687116494420349225185057455374891469423398946717045242688948287801448101409844138750805363538539755537581481374954396554622818775080087392247775394971848001755196251506057181786920655603189049060986356473748290183269697654325423524611115325948261263058110994825510366541782689698028599280682718745185426222253591942163726417605471136743546466626611635927565856831092616363288438570554043698453821554350487153135181504316315182151197974254456569589764083116029393957513223291390303933955316378532903693698429745197636101462958818096342857794975164174007815595380658965054517358247431488502213232441591082351201274125634066294609488664099644829790742020805549384899662194481408967905984953083108186018094609775264510812561486689492674921850349910746635448871123800894325133481961549236410864891353749682302426420513021904897357405720702524208242274605971381173420251650065727434577680894735613175416785800176518461988045081186200072802578477564501051581405358622108077623685562211322233204046602741439533908329632972917997910656853864536561584264870809632770735596379620625089885417079596745658183680132844190771736625562227533529443964170615921910629699534517877337294212328093827771165485996082685516051775244480466045069712440231318350069457637147764153436804826561538755321453102254987118466619707439587303226430585284969204862214424089012734086720136634413215169392531268697493192107058659102281249457387299016828331802445556321946315558034519052573004742167718989354590822273024976060511808229398667897163001898461894685231319244746704736047300173160278902952772738309577608173997327549202838281482648789866871964717199237488942252808160327263744454697088605680562891857945321317843529475475242359751415872360333114314085863993502944220018419905269535666762338883616945502645016982143867616410162032116837515480316013601457531049430129446668409943142566100524554531931781124210826337648888668611451859255672227247686086522722229324271060612689151415911250385532050065934507992356556144244468183218151323401741162141942510928691405795385287536148935127164499170606520199611834876157154573972494363997167928013307885028936147217141349729171385393925563889148058327308679212927258808453591713805598117028605399517647247122832028932068710617131463254051251152332017127123118626139174645211445845015194585582310245268076301989087279774833850286792004733620368799253511757875387119439341126439557837278048786579247775852908150116474288245550986009996050556936999775821574487717907529042338137933527515789315417736946880839309644917812661763929101001816227208929851535439269405096926831136581827628698290454136009291952188790356089199992271925231069643363006718438279161918791983053923894458902433416331882073657450472884692191531004472753352552280524691898018744680422335071804640286685735076911993273681696445287842018941455968147358859836293713349634681088143890851526575876995292964069548775969565053602826286559224969633019793709279465053371715680059666989961839359420927281442520621510613589469616660315425640256457555325834615751921043742408080521238922850861018232821455549160285562779463945062664559060528313571675261389484944132587223398622625399333022712117355804982890982519776768587956413939680282791254391217307278248391041360660683383416766134276702915090429734743540254222817538231738874798314613692539629776063086355401501640767692632679856848306834494338133574534546630338322316173660208912457075869584315507058478917673177132557919618775845019018934754401816520749919889528679545475229986731934278786116402632943388337991708432612391248477075948447065546113033781636419207334211699935442058083442175729332571367439800250799295549600974176936999454900869136063690694379738369136075619713899738476058789958505429338785258548098664220940979129020796901504087519317787447178355666895962257479244052742853605588588163558909775676786486593956823204076816477935062125408319173293994553253062910649658558476146209679462940728735853201384050874587838937636487307826164344546358420388215480047047935644052487310495857790385255503454395366869317913958774273653315432182831061062576712584840517841683393109655294122323638536461748142811347698800167860592082311263848230538896290429344016660683845650162848562394196693842945777053932727371753962230193901624854692926943733718386456182748038303905772654603318276419357377775063855924854361142661310830000815958415922975150649538848396998933701121419503676856392202469677759440189721024997300931744803387735138916543520994213314296323552712304498873360249812660713536504638078054894594655512683449773492253629889945662706968663117316875228941150512185011978289727474641742247269789995781939296196517316002026404859872537687901122878903547210481853600965611639701559239066926023570949038788884715866582913790878266196467404347323006404668372278098858347255677512904522435684026206520572251685110934527206981714306788968413305149601411569545880324919628508449228572569740221646537090796422320016625449039413621016422066464084453669030423726711272119553459935121958493678636427764643266102468654119770937654361315925180249162944678903961437869295281775288582129494691230950224371186717076435247264252536114493776697764130528074466079692579334566385593958620124156323022394064774593716129360906596960867124160760381893724439254070779542305806816540067005137224010873548611981584311895225456587875066008381253718513244684458689432115927888552343891593874709731049277240124973551102857896896507455577523817088421451739614316091912834629873681047010758931536078463635287723719242270009218016384017373202045933993921457708703239591276132504996344535689543860189542527489440500539213279970544258022375064377246150303692258938060387982209717609107847116663103563633191980537359148570223219752244108733208155218135088917023516184698063616435648225593585676236056695582288023629057046841728150045544307724605974215959073077281402462075992698440284901731310459974794298032093267217590586317940994897746560020798313472355249560793174202240444516721133469850015705426817284934024423381870636659457643893213761451292948752186255256994981347605761385169873513938391410548531948739878528176331812656585039824946230067589727315086494918698522450024282324698508706152861784434314465373078767992545024101982189443875787390003168106941882427259105916531083033614712657753155330543662322833173320785900708472933291564925819867766390614033325098800663917658839300567428651669113532524976285861374620744821044052364274843484604694806776106061795715407434660337571381410219081280677853927922790759412301443845163439470316335503980283056422385521439498756656685829648631930200470507830597017834032349888391155601689497200590009870881161971568731012386023940260478214822295269077151947216335796870056251427864132636722191175714114420700753879050083755190488577702296248488609791340121880227995387929742807825041716447771286236141440707992801009773271249922671054734640032263975325611112083072346076173667421202033041328761703040041435470236710433078213479099519997466605497246641271417174053833133934884621844215754777653545436149692993964679471864911660498585327157236804382612457276221823958479778339291787990039512703578383281113108184027711726736743976594468085885355734716033672274053108526265371279390195345909309458192523354699806934318910688981886406743829121305814105000351864173832326278367257197309197398191886638735164598044138572827942313710305835567878014669190575866090631503525296605293768002762229887319399598221470525516741687546782600998606777207861285312731319388623124914004609917038344717029682158566636411747560328218627331228011741189853271627665308372566966415577659711264928053364872066566081719226297388825888109288131295289468516225369746227547034958437650110127707331315460370763864238002032484847555901772513509753013768136772322280672464326596304905731501360445634884881575281543121846706622217164003777464175587626936796428875652662083289799596833640756608772357519834751992442525665068387689309485287771160891502721876829928055396619101273025601597540946892082664215401502626992486983547646000828372738155719554427871324990288188490090774092501745817677653892843443974073092317343430491262297333880598715081930840355928709380105358708850443254063196318202307659208716111104439239064529601120432136127734731037941932422586875271351820549016747711307875599182695496295580675796642289067853615883542824312880344371243083370910586254149605695325820645679094711096795446255627365640597150367076278975854147606932039737049534911979314065134347514594081973032010216153268649803789111787138200687568301258251209440735929054098554625348957555639813100770203361295941471745260457404727302596139544453939609034755938134176254218212420607162235871492058110266702011600504447428575810630486529429087682058201916242657959061130135121197764276001482347238589297923969331225835409444053368444275095016439802744817856809379110113791238198018932575638739896992691666867982266342564054643325550748178969866263490946362784388727168212476937763294122340700896054184432769419818405783530964901262177892310129041802026152568583131781530135553650853174146080716262297250578087888495375635276564817148781950595752072440577679967128043604857743875124859067082679088044931015132989103312683411192248992431442498083966695043564711481879077197035461119813708805208668405936058858554932619804989157319058223935746097381242207458364810271080252223241829248776514199255148741783022890913848261458979291569960161006584245323817258537605745577050571031313607709059330064915106282371302056605108451824798392836718430939153750269739679052702273323879157291098128295756012052474233091886865773758991075129393874778031313530495037582759928198070639410203319803942926772460940521788669909971908721612970340365871928888238736625989444312259065994028028851383886290603271844157120592598120689887351442076501357499399130196159233696706511430172628081183771219297587505798243045321037692832344391977775783055095212707370817778876837063918244692395840694917103828423874027387562744121429743100320501501413378848578336858105170247531732597079589864271282101377992767256261075971611145815134871319855556908657783691719989904515448771458695050401108397284280424955384939930152433219485079285921223748390177793060562156489843607749893157594445201270899654305720134187214634000521556024302095591059743067020902105444774500465130779048627309469225240906245643780292828812736382405375003495949706171191068385835050363730137418771976132469874389589862482100108924123105790279599523667314731033035493508810803249075479094655668565049619207474721918976372415803318753884096307346876221821389216944024856249621180201698736831355054644057340399890151281393418440556961859026008810869097417077446200261120627692362784084798725847762529002748881587950023058349427367636571887125019992435034837913773011625263890162253643411262441726239729408119945211529858444672517358742953183827878847688458729563531859564499204181735768309960358191529562981792727668233221672001546375863661047343377168179313820738367827181964312884429411561694819377802513354469220354108041718992125915358098270530284070745493485589996958941614877392344827672775863422039195839449122956623788732349865161800625665239500797660762655211576964756277081570153544681228056414670474658672147140620647448333676993650177830072633013218327662879045147010548170011366652898819964478754152810661851543356087258049353137954124791453923733656326448332434674664666947984490736114379390306740299239459654432169242122619428374881844165239013091648738186006115960720856670884624930220402897019898473245813792944802198526553277157675472749405876862826358240663878017790073040583701679194095925182848075931959157455211642619837448825254469909748362230711905549986435053667649988182991847590432627211508667958464455935907905360933174976255081492719150784591526683598774737030972784863064459094200683372168370292928559417725734299622685516292428621688470977939184962436630153253926827960899304160033496557262425023179950456702093301290679834852449319985370385585029071633822012910659826358759771443979526483869840421119227616985768782149782389466561610719434471063764318258964532950635212870753937194124240279384550877759209154401720121218778371623401558498086877836358420588225825437226045228856960682011626152484186346967044213039825883098254096283036689992067174364595250981835757219278870861480682610051719895038589677255606836198503983801175042917470336160438740401669779050082215223855321649201161089358303644445252028499677204578695905931635996603590221549156977704066745416869143227760128733643516997156095027066647056582910296466890624929893909934817368649912980733296173739286164309035538072395450756227713735668241480010030086362558301275715145883936293111890198219139406097515366639792877551130681297585127717049370628776363013054901361183046812622576256782704027884432840592647795955338526581540627341748218620893062427319403892454504223307046044203823546425147526636077622489211104187333757246562779258847736091728437597260337881735892809715038177832005538474322848209917233402002086685176248101042188901611444641061173991071316501183974373896142235100457516191294613292511757633336781265222785630073043116440186266104716842634151715852468208870672644129090025731171664598745636644244054782019579235608895389789396454568884319355354644269480675860081603635159852833194715640194706428322837507785755530231784975942897577118833195233041323956932361588229064102628264372876042426540484717522812413549210963918758889198516691728296674341865497582350853900272540595706767963636253985488905633626004403250868573789360371140678971731299328342384234393007560083139666460866133576232552308522266604811319115877833942810857765256169673966116458493110542849590745178741657130525576826513964898278264924602004837900320353210366507641066957397013077410813133485410978876860944838802556426434358486814044774018225577315500116001079641399673281091100153738484943207430278747880757400340051917683446306054674989985918117602283949434805439354521394175865055179838487174467814551758839505110252800287444761297256332931012620992768402041255940597886145585101820386355775232994355001301426526124884927592451580886004639794406072490245299804902775422193690364569237395868111255069682472598689294079482665218938080806873331993468155120990798228514175358466675982160006771282745702327158003648296661343778601355321571705052571926541644027819953807431339744274638237079399655786598625909601654479264990095758104967265092359953410821307423759330760674851072930953856409088866416376718768605224020044659855484451436433913824244317642353681254258829597698159514830724815620459372619730729290500931237708427362356762912947772925230083655381407852547276336918032559465266844627926844566005609593930608470708517396475556700221131665081616457636869723240051550643201973427358860894579334759536516949016693328517813787337264640056641350340147208573686957561685005356482902194939414104056489876826493956118503261643030679180539599474614285131230992734073841996175497650087292504831654281395265313087668415988058529582177229493597462900529329467623583474519512379318606686927438872407465454087219449224019716592708656931516721827572165751227483295985970826012189200222368902843427692099649264454187471163560215394148195941196578815472385902961268007671063804594982080898840993829530070156800803135794994455192899538554000760127895439526126993134237076841304927916342661005104140867236063893325112872506535665405186372523047998651338280884604122741726786714272300420626725105450658840133778797415463084363003496216092163138746239790619843223584743903481152575566234749605618040755392573311351946111698875171076855989525308284156203031091306283882779369307545945168407538667130450312096443879165298015583783713200092872282073884739031376314428886697897858811550757907432927286186329549478795969651974446006735426018802541888937231449704944744295631743576611995644376625643507812578265993630378343367584530979353400494367048342023084307663246180314171092653047470577646911323861317319120480601606678350082345625203447859969070110895853116682408142116887405394436572927649078082729823316040416505336265757233686799190863203197003647482235610008918886095114911059258269008528243795892974031253508869333218488679451755776709231084304499364908554654726441505763087532137776053814194031223292946819941717884096959628254478208014662840945275017438110961280730074353192910205452714218877363362659378167474116432108443459355171104257878562196909669038617857687386096008685972058088081805579500147086578357373564941400551620079137278813928332761637353364555718426931909188456207462015287187611087087974716570304204321886881199721913084234957169894466267575942948276946344165977829798723814390196446875750327796546913175791999539141264232309037251432252130052999874231318912147820871261012779089097395346731845667224568197478694888738321171976732272622301614658980317404024105701581302234910980023227736908962602693881866250888653420678959305763098030544619131553824749116491681642458507849730074412629378395135031650129315408390191272344507018655046542857751801452986784932944804451950350316853437438118604709324936814987103301098956386521229147136158679056677696095241294608309590114943224190934020428495048814187533833066316400631713928875988798188807050336300439340839635278096308528127231068166806801622623056357658338862068520923143429864673977030566037304592175357448373215658388077892248467985231853189891526758157385949726407911598059750095259098038276991533252002640028466840347375204510873589067661915575942869784592928623822370459704224828992299915798601081226021166457423076750601769019797463087664478036066757973288237420313470913523499440172956735201885596253427123170309854267764552034514133224302738435824414807927740316735341666516792295062302484102732712301806748717894543962325777549255844366991703278513804798751920748657699484704745674866102536402387638281756273498976456067303252238574222763348212572683543632974683098949659881595623222017372208694336426213273553385433383188543340067909701032773602001534965819728580538113601524025519849958121754614017754029685852610405265786447921708917581459392321326636275718993383703535622848282876620289863378575871637217084888060177896005544834454152024229174513951049145272200483135565954667573913472466423207552722104402850486935159181014290767296688028463998602361862151997918727421940851255756559464960994707789937939806914862265381783812382183659807201971952448701483891852462698143002245071167268715259555922042670306857458127678429655120609085837188977496027511217328363452881720290374308365970420512441183038445253520325964254325303806735970204272083508809796309311549672411155317094682625151442515900477300448807640591497073222218866264204329155080049899903858773880418626208323828563963883429870818297821883658467856934424550532238421458715069930777478469819099181970381125314793616907736592099213184673967255088593111979158829062026346905473182954560332413330739467098341709318354356434959089567894533207296403263488032874995597203182198491188903555787342224463912768237170271820607530846767566375530308221587145155708933128823547208475800847207629355716185455907645224356286360884120410162563252281382411104737818955765124934090615920869575136061462168776465178014088040309434784545517788221958762133642328946806332204186452316340104827175076827560872559233730965861791863866648701205377476980592201016193697544043603021240157067776919793898153571709320831702371580259628879346335276162842763845578340042957290568802744480854198664674859634970259963791758563605121681143909479939631662319189587334440697510767196450446058080172913293049804250743910577667373056298702713303152740500001924388807691314770249818930773737586751546794939421858512301398301151186862023722341925216725157690068311324681999693579600789575940514057098179318512902276899652594253473317047783460021696760526648318927475366923803537462360756143409372286038927327887090450577765148122246801288732559283366726262682244139675890889420839646464577962513858697937148526958320810787325921829214269088672253937751225369217577757079543317392935403405695675410865729563188127905776799332566722656338534635139097829488988563794565322438207060505230630223899874463765876448739894114570383452635452531022826616534668578099836647607244237087817435977645412170107883697205814380123215030906026980334847928962791833060327857587626370015136146804294555335081727622192153298998331332275628660993011555642261701062518842931747725413586745643700860960889548323253128622412531656643055990633289047718583091801291008066264779828529447149040278577834380792836451309703471300095434080240659199515753927464425141250697583456421738404723704658026706066671655647011599585935301753480775668513779276992520147854841088709432107192342083966367369629611461307178292212488959619426108604455555215102793351764287318819540949746044569700412992044488340972622477554499808598347759545275107958269624563551994632447255057143001268495210013321850160117997110452522889174778876483562671152023542894085109798602001509488516797246936793416141331403721092021946301790722515299994696234713374932153332348808904354959904275122982941691074523156724030842268591084990013440046978334600783850610697727969712101596629043769113750948658423285355772387781862663511063931467160266823617475785114956007829315886048386355274912188663539629650039977325778616865180586091496344086047828796332716595738151965574427184383728161932347374926192497425204177696727392036410902387049694263926571645617924681819579027206337123587288273873105498727212420513708689842135180983622020213407025105039640296860722166293275238618651208172181657370891358438813979245885753591204059177436376768996939173177720268491082589336184453847741343844348480781705550240216486678244308285312330523504493621609358369705561200307039709186912911873702994963188450263543104454044267353967481224372967266388565180722921461992323402248190091796645054556851372331855485480167853127790917542544863660884701251636968594010976553439122794559763650566465636207200808774823528792650136603053061188483486574913532433694316911183702740408906296740364768406640641223550638098946958856099785386722404540923308678722710865900474412827860997643056527823564028191711225126114001499429291100606111661387235799497854634866030559666473036289403322305766052375278728746055906925790408570377402093452188753122293670303567102865180568858661178065730766666117070932286622377103665637808645134708201976274919862528452858769985428711504681047645103452901860319798677259915457756738442429028146688586469315504626206912303954253038585907327846223259331809852278870412850616841526987385902199052253591756108478066114816901434239412146530784399969146329196233970708089623370590896591007038525594199560722362881635879842358111437024538740263331051133515739622900501210177870304867420945098931037050985926089616868823201084998241625527438919980543417687971234050522080625735199160095082938212764314332610728055730732023919523843126768081210897471475997463219778006791845137916305527152575106860548123701897094001810632346116380297317738059292392775381019164941585145147891329953400427031502477165936226594091162043850289563551335879872238651058371765597143173640886752889675837600134376067087726090402369509810120222686939340154629044287140842944262064618347553453852943483607206421792217556911035341604033783352037280600104998812549772116143451922811845262149021990847491645318084184135547881298953432698931937163250315428943392923823727664971921707649272218376014747347658657781089249080036835874971421062159827615707729991057309001335044187342211186676244458305345359626297869447920673788971250981081409107031641175264552995596746971025430122819208243141668330076576373313166257350512694986556352814229804190503147979383267268280283809355298369120615238402916858579904323280406651001797984543558133194811550406372177316808361178429620698228389377128042210223825178900871685607068012850399261127774036643527078543093800531868452491906272108666931610688725969663749430577736811116475468171157069198768980170560876362480474154677739529067875846274327660329781359248660045848749553967423555764874879751650723676014472247467221460121878961053167574941627514622357343214714323082736813342372285595309276510101788709873188802468395665400778374577503230641279057004354395743000634618542562327319006147633170283229069860117861823576733535866213668126022006797828060594666236429544233636409098100532920938989335424428946217742855468504807819596822280742805897496159896500284339343339498746778419165882964399291111561250226165257146398169010314269747935149759842570915482239948324986991819430638101885351144572061122921309148305493059937601455828039759056894396024091645966262572103179069832085482488599626469289586239617855860125912238218206814937402272015664059092836248069485449130636163013594706745703738703759075365780491941406975537546383012625797539025331680722015371871195985384358648944502295847533985828069655153808299042020432272468395065967795097224071786831658528510772663695795768699738195073936275155469827602080428946727961763961961300598482471412104391498662370478987273014162757801346791631555955113478309932987243839693367978957648490572179351256378227147486958223136044016457295970849024169280607682184397041855074325172923229177796709733437773444821560271073689855127257794647005798874125529817330378595424884979093136855800963476289555673774030680357666439223367862289532027355613214175918400099916619060703404142752554018259488192040971382193043240632286787327631958886772437884858960151268187889657846944393219416916189777342072157805475244412711943896670445433205835180053627685968024418509071003953432896943306625109419077966605967324843884899271535411562494206955676678496411843503450435207607371744065614150546383923535956829786282797933721632676071158150919588500049800165711944466755721593607712347992421106778805010244101950101097169391894012998251028780287942178831349587751999676372329909848117198003481502926817844619606411464956949761467746433227443575304706071815065029788562755074957194030533065950328162955443187098128082079150278129473253511538028369646068413347481102594133778114009666010554486666845427587170275971571612012084298348711368122283770430104811727770192466291120773346297532207667471282370345219188776780852122282420684944657219076549530129883476020715297208232138946746418362233652172711437649328517976031815831168787250300659502257205997791953942735369554645530465883173148399462748516441198595756871459452753214010725601537122560748423804383977484576344007962191677318145854035780801681253615141846132667729965006488517234138632912507676792216665171348548035541179410157976317372454353154083035063221214965678308031025471397393008343601704430564997240843219563949948362582070183372273660461461049146286176039750231394864817822746882136810081889159890766996950413362262981004488493000206206648605005252561279756359049849594805526255928415650807168291945245461939103215243416182281446333342238954206682424811177791981933335179004255547798105213654947505564371680733634560210957231925512676580809069169235221141526082041118571350520071248021138580950883083083257158386059203197550760229747408946839142465041525445180987931501699445595373985297861387032323166009863629699235670359257175591949206942678845039769998038256735684610947842325057820374856092515238752364942854018687143802883316351970955581674613414838953984573006005409843149990810690852065221275104991016531908528584222430585984775200625995956035518144400224445041543725666870517818179843487072452383538252862793835003848627149675923664810770146089822005124483788711418413842336181245769525798316567673366210053848798635091294819891740141924140959158270629501237872400658218091869459229569281548444037660256183861975729988187839513858442788081662963236596525366464801617181768608062119074397031303745882472051600349788736302089561066217131571784086916771034526264778832709810050939034226952881882772174407949554254024806825712150788979237748537224019957190839772415841362086676900488765238418492934836134760935420624910367419776806608694859896201828392631119303992936164993226475523422607619651950153323279920493298504136679186224917464660540123102470958688010159973794734653425351632843931779362852748926140966826510065655481205893031747033291413008369084141068209845293253556225086327402934683824443240534222147947529326562994812185171743615773001108388448947893983753015544410779282601934869846217653548447284416745612440552183679016722290352220499046063398039170716299042576593118301263897733071128127174959660326624223364973298338140952490823566711346441293329784238868292603019743860721784762072968882656694951367783177470030371467701631214738677648394414733391715745642113687443458847898158440013319843138641384547862373611914188125609348971802977649336210126891253971819916482995925163677966871468311888647809255872198805175306551957661574319834352282016650374264386690073168077339187496531213573935077230992452392088488564874136657797264375505840234007671603414823353445649685928000642646146501221462544523945767610665191485652502420640444482400373167142694431243513724004791916549045207573746555214738041799955196244778368100011418753338608371290588390548167074639356500243173329486069100116751536500081658836619809046624059263607775493430424252313315200010091694492270914298338676636286803182069005776381518624029889255748634862499640539281377408898175002597354973159368272430109823128663934830737802820249891386697687120094301320441196767262112889519607768742634379211267093850350831461593326155038330442201075194452857164685219428072672381003846712290359584222993002013018764818329297514667662971864073120982654836602263071117474595593602528926952067510739747627733315950769719491786073601982678253589487552303494727509163956293172768300049135915817775867136644246512551147131025390025702845224274858067408232468460376401254921951059398885251719027237419540047060760367151618922646476973338803748775693870437372763019505303882888795749660214993258876563432053875884267231738711913207939189639940937976876293797886021295514275088484673042434409014404361487584787154938775286435725552248034693410819627449512782141807266122937861362800876398136954798054782499744107996045547451756972435355547928610936759444039252723700471500907753380602763451978782911164313355995650949423619835030702705006760970478335947198136688254704232950780888806356236741371542995276451622513406102472839481754042525634915943360387621591690201814394605596517791225913175231676051877071375294368900654416541445560305476270637831513635182922187237219645057485912886866842639236075454856555677782262032340745921430416045134651946472420163786057899252585446657284114782067322113867488566370546053083542904662683483697321614173272743901663159706949570824239954601587972444544602726536455294536285813434962429361317341261143233265118421940448299161741141214314153222509669328050479053247919050367289063725898785237047548526197567363079156915139701749291715372256376547894064267442859098059529375491764926650732603981801832557358212632550383506858223550108506535941161795325227803671945036986423427514971495177236538624627437693653382543859667044208796780354137696216913511051112412535984995792166261594677578760781204857833051737655216179955810776486814652590324468421939854626109639029779537065055148752443902784222752408703058350743555871471170299512896769936744189924221329207100615062924579400094316596268574044256700400335656942494302108169483833636208742150455156289719736857878282538804901642563323542989151253652213038142337774605745796640103927641717958331807633203426635336957142148408774464593481893451998897097808162843038193997848232259398079995038594717368963043892750897512577712064968911237055036779324570531966269165674394400599079805148154090964889875721046715240045086645435911952906524738609484322241528524326534032210097905862196762103904373639850898071411587968547900384287683386415499788057573485299188423262392353080453761651647022668520476826042046172795359667702320980759353193143421413346463405870606702982059593095245699169900802201546235924097822918956152879740528782918902959593127477556752953537386438581119436926100514825726285510329983385163083285608245126876268309324880314263665347481062769331252350975982359574093921479889333089394174170752943474339504650172131534914775698711876044194477261158359665298829299498119786851369722929099083747058483473489023402839072035985625936800846297720049267362138000470450995279414263399916318257635859855980186971433234008746776463766836861664683599530162601233930860475275337227161753839930145431197860260034814845258622719669636832918730392120798795895717278456103508908007363464225281576403856679409753543758598306613298032847469643093897652548373506523747972606990575106256095618990486723693469665028411246313061264684782186578115926837147527722732570903756854691331186745835324884250359964894005890466839147014304185424650639616401100210638228047213085681181420603677740153317088055580193610656258629663284912869454895162650749556112484886055861667282084582783304076073783372403364195888750328161054896502148124228156124833323117800571138318695344274897396771116694638083450057203917064026937591194960450519045695481564450536267237447648879388144260653491117797692451925657456663019341731676029184711870958984278801987850402320575853024540235359898423291005806836450671102908633772239340855452566859847395399116447255595724878154074506955712068398303548889111676169561331029487567950981698878696499152117638706352365537827560237510662157973398042581129758119147060810853483257818832692842057943019852809147122607697392480889469439445779774488374830662642996767010415022746965723886520571022576935795995664894403677763605673057265058267939834740112945819677416031542144250312090525762437361921243041416907990428365893350471652712350712725145797261646397448973998754533546394788230598293177159361000015595880580229365300885390543261853484188245751020159464739256699911196382442782622147968030445416928164871401862821394972997796794900279296207403654196217976529092927715889583034626557221002173560486225329684495669702004085943645071598112192794441919657925929744197489080329227270897020105466988680613471780206162552726867976090326634244695651970856441202884116307043812102494757477622630357661706230108083911433029780203671882283686714434111890238280466244965519186821285141098594905471372217574106209379144965159077308058612790514934242594356559687828691192581269337534435589557687973560493041589712256162378310992776600150166262463922483281204868611931161415565890159295356877255977672491576216715025031149203415623990019673453857894921211719624745096252524389609151441872506539211686979158786387562865626699255875820476972101849729083168644057909417983099459548724931348217951012542963049012404329707567823731241727513202507741718965051739250214964760661403954596878431019022228508135712737964772462151592202331197056736802634255877023506241148871874395457990320828529818445767076999430095953865690807286000327915573616915839199770830244280719357577389560697851854441853698743613711297928892756387826919692573253038404745300623820653435474160838101352355963691487365230763569430492695918928130859975664536975226322665414889838353502098870830222676909323890996562477122831579419915223196120026251638182601012286122643336632383394707691051187872501819033928778174041720920267634331404644061720339377140860719447964951533920898345351110199464561484140691116114748549043614718996184976257075974504141836951753032070392615716245181067341547185225708368335887786341062516686242515332642691299401654783336717337973062054705916776560098689360493816597612362580562200081927683534263125802092961158010294770402834882960384261897801121458080255727396436128670884081720940543832988426941747926258843642947326025545690712592901430412406220215588654474779323426088360208818792138828489217572358638902320999093628790175648506675540749316780051817459092327789230205844555618120499202066825488975905329902160361926211218455462771373763416748937126408640523725982043387937662889967679068588603173534248994423197377012245482462396265755104029883887624867222017866138627579945550517039270483602733395328809600387775794062195904970310060053385863234105529411442953955320154758348497205702683809899649629422840328031294982319080584755376277282174560553268103141854196167722877029687863253120628373521978447134349039149836492738171927209007128677408317874530707535710902920047869781925637244316909261686395032560037592944733248271663702750430347891011014340065696803934034057605796074421786250053995739954871499956829981866978515830099695439681542891377101864288654180023302049109638687484410072594726973280317227640743636315025279805828660303363746252725405142056738522447781760911733061675214893889767684113258927925037721922749296338259201928484113715769495349690230835366854955176830034108409377804942112945008607791680526816785424182401456935004370237337826992379541740611284940064634381417404235459557824879156307603999065220842933002869694348008766036072426256254415048663605962741421663491584669457715285255964900800600538742015237543590603484925669005559246622558041437555954816032677974687689495770092160580921287075076256513712849047009816639074449589876319742751887382964316207881126809761451445338601790679535238757537401596314570761169576979063773306068766428563456548166648177879245581884129050308017149027933684715864782700361282884678030902854214244171637985728078931195356451528122601930513182267094193620289720279521332906603239087697650635156927305581713587270652934675592455721506668092022236429369960781992604591760968383414389188762664577354857980764731104065165911301197197189165818647249512005070644087402031880831791540230624720426750370325428205062603397997324321497198063947408977989889586653535117338490597877873698062911296389510130996208538357964276534337221419248127306147013264332161458536090771519639544647840844232721145264822308240926225072282633876805597977324395400718883204688628067910992386929686843268520555301160616335581595223804047459495053895269228634142897186909071163445775888180638662877163858153692007624459456536745060954671717082485854316537679693159093753569878249136650580503374719697795552682975184073989945060153618932583623573748945804386289029117340321629158602538061795441564115155644863189081423722275246655383246116620416997863491880910141649257353325528953629968124483887176393352284923450409179812311545134421469244654290457064118085231754461835398772154999340682553123415761723368237238721178446674651725113051390343453083293367275663663737874285822364078824794722028612216796703957187584564250980885353612117824776418203736314823039922059994072330123037522161696442232132874435494390746982903714334231578918103746885729277723720060320735899855452590437222137823862202843912888246645158328318852763857577043269938025722599527273690308492842379618656675889071348159054466805694992884900428376531608240078167564538167554977066991601856591550779800096896598752873902620359137618724964513645187468517618141512185772799176098932222056127355143862126857057417596961370557273317510859284726530135664072530352523288440699288392630638445553262247856328596197258442636589890916818021697941247795445225691949568925454327232471226113188419096991065059455414580047013157004032795235654250611455291020333682115331662951751361525433016828068511500767096407131074713113278538823172796810616638392393766759761471652094178631385308466421155414717478816135781378061921538681993649028482754215766839121463422187161925183200433691175373727114721627423861537954491120812660871129503193240022137852847579660647079116834283805242904453381175505113789511209000281205103564467940849312327929550722202541774645651770429732510095308416616874567639041907064496921842316311860571401042998773906593178640572816695581342261928397475135870537140767883787939401906207552749950316912353766470174051593340409378761110659072700518579675205845083639027251756169622964385594337368157460219367981319330294213554730353649536063350312481715499561770742422150927689592786323238174002154387991171665410172393975574072838915999421301681386893838417549910964061903885468012333124717591560476783068599007471206498122259205612475280684709470513460785946463453795390906910546998592396832945597183124001526720550083650098332253392978111424916924378669407300543826065454536384592167192950307947822308384775405686266981271135831874460434805786056378874587827362491649170527460748639296220114727383451391026186975732238318189187952793823551158624340257933569656172271345349247066983598629730005224174043661998750751543792582636192280394099043238884976742210812765480841112044640697440837259724105291273569011304966217941893317529488290573896195048658009816152967431446625332186253277164931752746172818100668168914985559296845327826025062377374916645481700593896947366936052922050452188560332857130002180262516044102587510515571336116829651815196563394385205891745326074850768880945451293498587508095040310424914412251679992074069711623095152212008100384051931642976016813066014006859008897348011052633333071404672986342512094884323531508410742161032299167054994838252011084794345283979411588325999178814467991277846942278351069969585328078857224801459283710744422747644113049589518668213216031687247321528972342463315091434042843483814484688638420079870616954809177954637669224452768240275298851363739176108014166554565521078892899737217163313012559943735388194901611563940139509857407337814098605449577342189892662591671285173962894888238016217231870594103834475844435450550778090709940633629885608933285023155649017309064961335083379877884555947961926232626615089390592397741591444612972183748813025809040557626909143192636486240930890847127160382811436154731937680967024814861782581290568237947465430191553811157925214144547467540972183975562968464577521196719839247117810456581707416447012648674364926499187648512960763305905611139482052096140779704465708518577485172783422136873253519276490035239411538249280137157439043749065627920791587890064776455925937245577282101850511429934110785297477871440381866607819519098650832914811400586009571977796618033255293470468187123775276421193316967816745902308552315496271917435994508032310995098047171419078091027321363013707317728028677293855305075860952832192148919121734251866132148772691364058145052998466196073857547137306230500263425095418793707680078515779586013029438899255147083657068732690478845596543171410715047218173348864030319478465845477673628575674795834994370571837324541973988621840693552401144970367946838014956100282034790296349754417733468160192720993378490499844825473962867513337430942555780564409577792288880027564347160329681029967653436235807275168409299431818566048310510947238519573200348798825155775388345635929802929927598095156820762248446952657212963199626847891023054273867518029494588706772026908016792022062339347313323883400632465571836703566591936003853290734052088427918930191740900957451738474555057005907660674262563017380139369112891815784552110156981329063843844200529946479795354567169092311587259977370521478667893210723794489930993989229251227696453111583123870954873846671286614286399805313685077841938490930337793847961321584451397451861669920533153828905702342139908089959818706945510960938748499796624879087772991940877281138551455406639278690094224199449821796292256434563072757539921029289109160127736194133377832699555636813352338310010008611641461553389538445878121863371029253543929715680715862872073042737923929067353149850000031237069432334076586289666561259556879414488097997615294287539440315450617602183936133350196192406594551676595743258713532363028597979137969058680944978674212973098969468169510886838641181968629408711532290605141525371960936850857746737815634142635018889614622480038043419699750906927017408630394449927003928447004892672500309421143239200466461920323281780262405298061235365790126010671300585350417482800281680708479658217975638154803418797102796942883595502793978753880855022900084548563783287630902822526713952017775646817969430798534344955078156038674297572370357686729365564909635830052652518899664711745928660015725271942477340137168459750004606359008295872697462031153029189915577754061954114439051680327253752913306592645584305433619794601472156944919257971225535897839001904338791904000429637642721290397259937522616028237849960896699662802201368779310610437681432740326696210346284310210771033426402119163857348611810380502248461932481957142950007155077010710493393495327893934201810093403645546697723915287924844587827132889242714470096374993491295285649617626289430078290062951320565872728780169741226548127851226078370422010412177215481465976586957895878608401934066203890997291560374919864900768728743113995305371942035262956807568599828376223425672933863675762792147736588213827080853592428993003541588691034383358319992205060223575254822748465333753666790651952858542134467202643770908928280187354191834375468521745433185953922683435013055533867416649130730645190198979540458828452730858764718229206459189399097753779619545189065162536658313069488577682448119600174741821849365018131739520519675522477953457929769504810251685513062518102705218864708331896015338702075970840972389606263003648516989904708419690583517063962544417181135176751121797460944281832221811737521261976415531689757700074078853390481410712624414949167596034824834224687579202301458760770137653784484550306938656011615126182098721289890661995307131946932474831784446151485667345338187237390884517651809323215483490801924382268827278287152241626349627784423949835359602099016955358733826052215678733411088000596768059040195336448701400537685265911657779449160475635196977334723930488473048652234248568597837091981120335317555401458445767773921447899367215328247752390968862941603487626499225726782548551902687425099435881567967856638223276966139297892747044036266692820536414344711205685363865281419986716180021586165026829556906512312255767706044362448239220808067414770053119573146884257797810058568481036166549609498469627778564393864064341469142170226769713147701033044365698064338747659703077279460336382868438992896931550314248591655075739528792044348860122815934566559911546748736245962004398214620628811188359516782623578521634677201451230960941952929983698714516508288225602091593257292053025330501913124605603921803673709071276130941761917929992606847539241282544018962239692631450892756010054919030496572841707754305558491316339755644415150858176205991030130307257064516854887051456913053943164497974258820253955451427646872623977957533458452317925287195474701969628941878783472317072177351848901649209009190477755243190988740836241186391511531811794372746850711990020306245170326148893247180267118509608251140471684884805892478690327225465585354939243584855960179732871802539369151530317648999850819677065183636720894858067184755099663477974750064993706003000293466835719288359866556700726068995216147413371975624331033072896177879036074507541692414726988119391179184557374313319427108274248991828891111525692249187533906000915805003539821363970762801010807046543116292356817438409473717583729589620906514461909893833703445428696102345715713394147820146479239607058486999793266651332780269957568532132343553747337862077558221772334846228838907467804114250553836669280679430916487912496455400029380699283245342797783308057088935364669621809335963322931976031683096437208720178790386269597559138503131484450133481666150756950306339389392846063756364279412575158279104539413766072401273344436812975908848661473951624561525859024903622071593205132131018586945954203971293999425266677813844219548997235106090602825114534127868131396056578669196060811670370889286585279727747448683171962458347797049550838121596922400006692782083143288061960307490712015201334696111432509465110200416582064660420899359842596352747646693871184845496408992468813763154106495940459158881690563115338722760571900959962823617750464444476038622940275897105204012778647888138414596901131422057740168752645841461149017790522387271645223797046944948409878838995383788445400389820116670619461997146257781087385992581260967465088215664245106849503250664571347094619545465324818000269176821705568538913185309490863502980293061009106253886296921104050287225252600215761950076025805435644109514923713524581577059056414706696152101808931477199086798875944143993288520197709810759457763740481601431118222053551823891812044595281236093944905976378189533518638359659315347178386112779171203175379519744381197043959580893682436116786511088769749915203038182888864204620360264098633966909598072415724529729508419370872364952208722641196255043478379477633122103035671606924237284369139274157786308483821842678752372151799970089876767582542284066764325765327267406565525155715153864294461754545847968354340608858272493458004542802800144875507001270263481898211687430787536251825774583283955423616906928243908114515995320110656072751610567318796615690861892105560092909215497714632559283679797260154070997629522261183657056010358821385997270928376179307428164029855297678337629802361206918657812190479242201659159202849963747644005968071533096772778881059152533566050548088359531171718087948207898928609774005384584336589043821937922274287059295490314583911412294179236978672330496688458701774683223631313056458919186570026826496632688541200050336466258304921103303498405067644723944753197937433254176521069005104702750503579231545996904965596366684942404492461431232073115206556640311770792146794414814499894794168867876709715262019366237785882499511499887805711946650326011604069116144705265282934606863689790968865779474568440025594620384009411890134934442860665119042331135625417452353785298309075323537877894567177239749831822587987697071089317911962611379864926363562624430619579495312652060684846812459911892337775257032875234498802272781368024431429420449383277401151410277512955206126357205849349707999466581624314307067815580813978372159427860306002913410029764091243510186167421264144758934899347505489486959461354717220259880787418913735966662607919892715976805933725305415055966353277613720132049804926682316792029266822836158080700323369276118588536554416480591479349808655567978519020672980677772850266453569536528945510231792795261189705967338164055193396781791111172652946191891258501203582924679524357482488559261031362937782872521422883154227247750150953212927216644433261099180518173344589295470138611853966251355311939440371422174856448110561399060385830661206839402973705340129447059547895554390834227696125899967097956722525217329610931630606793964309392876302394947135612893206799049837605906590797094163872727492037505285576361237511649878733126591912760284765778907322500148257326088378288215018696464782548835698913856525050772862226080400031431160191491384886595725743755338207688005161673555869463220264669362648014479250098680373405863746518699809393629713892098962190024904864442785437977884272661489561423604953891080892054652843570613956250145069144190642065837927080636516171906465980894178690051967008387452911553522734551791687816469442582749812923765395398568357296728694224231956195686862545455759232024442112366952932568402506803715701598574379202721402587309242487789959235814473671446874681253450697140437994117676329854178011933983883671769627726746754308600419938061579129176246800544292285266552997989719778559470652514811413081114471575850235047683102744265557521707121343844851391992173151959260630759760026781883971440382675774664355205362103976397362009277183315741814417668324371671302501152463882479645843861610291072264848422006701042523359234968762569413247792520678415207939418239463493664531602405189964243455232464143533157837055645615363323860943513936316145235182563366960624221364003436238489376626696615097081473973004174703315604395960688258781007301942745553241180926699361755329865804931913132815250427143813517997231502098754114934497582696057708795356547447217629035617193659677536285765659917479127788403348430123965683452150567673516902194252737426819841256180219770184369872349441088765653942852142748405602327332742325634239156992754320813971196229190837393287833202263068493428483661480135292971214382633490141517717776468683861079288727717192601896307564732329618493734623854812044867974078669455199557460489716233582656629192112357348401314005651716840276963765030619321928949444911655345751113319783744263244078992870517039323100926368325926822354774926167662304295831371647835390576714558038899141208830571477090767223255052973380289421066704413539626683852932686448711480588795991746835049120983680675089952631584811187298222173520492630913558335518951849798150910249751811935759494769970290659182307314009121431419370500276466901375023517709810911399945753221937634675850121112782126949262380924994755503923953643631698840116478575083436167064124253976203528810844217486495761882797358948593300644438060550462505581763483994252103832195532722204983440388783730556649077470219018960461938686068435706025869928747712221866289443159631525274245134666608712723749722664512606386716234947948950157638672792334029813085672500731765290641917076094753714054666851042824903875007961506833025274274539386483866239815020152681796496135846774456072088836105499447460427849234864251412395157700601013741580431916143286501928114565618281992269221676807454226059567667056829851044488456154987292617736672652193203825973902315044724953566038330193813972322532119598740978726661334973192525787784256599903625533458748818984170702935752716310080359718079178697763214157881826925975781775309118471020288162667479361198688357238961053829741592873339267591117724700003587164301220393092452795533357588815735630521480570966378564197043688293756078950252735095543856905787894321790361597794707648777366926074212651029523366150102843677150996174715230047724541460246496997835645545255163548741873591302208806291398646906489579369042668408655212800103378491744063609503787458066804547508589960048050362588496272295398215074000989132113885732306384844787878972658742369474503069480704807660733906665337176575086301221651314369439801323695010745498976992204153797172293633734555369360084034109155224534000592952502462840209742677974385791174442443349745400209930902735202125969789048379923485341713321109945000167731559599503968517600407479520031023039191740116561746221193085061177924313009818566753840618962908830410907874765408261590332903984693947042569082345199058303216695976470795549674835360350208212191763868148636628769475605687364728825076233313191919517445793768208767640259607791082961174090440426412304640439039359417818932725253039411179026932925957271926577186195694174946950238504636412481662618737800176771897265681654475721229516070595111179707230955621758091786887992977161862827297201720676078252307403659554897755339835367838173985224788558291863695859748272579061416309777629775617192076768406486478169193357451679755315292196087728193707714741687615786033531399444626769553406464911627564812001326355824253240607725834701728972208147440801797138924043755481529854853986402945931628754071741947805426306834900460009545095929888760852125539185608418863070007294884954970752315435786925288597743340155380073899744758946950684870851386563145771504099698577810361555817188062463580882214770571178294688378733087531666842823919770137843264994908171494254839870862568652947297820282473447667757624560166682171504102500758741070525380813103599774776269518200484854057139090899977716280479829936632571317947451882590244503706224671538109577111761840055527267802333904020724980944530020401630198258207663540631399788524401443374321420869814237274339569777951622235653630142070001942733435591250555174630690673643678795662703131296127350235335611651590363623349383982941624369743942068663288582086471826716540462564394187218556096333713148668586244699973445659675967237976887980382382870773921746935715109802660590905926716229887162590409260254450111424506901921543992372544676564580379596164114295012422445030989437906388529940522324536674248914684152699854192477371251216165436072836473502745409669348492042099916693279451312705721074413019790188335620530171827336215817150060363458536797067824141749952495828749995158470734466487668548363087392084782568792732139186195453937616416900272975715153658305647477580701350850982991160207573858446178270298036333656542831490567368243706115725695490544263033411414430878657297145669644245092390635697833861849619238785488325916401295771251089848659284096402360162840320244693155130278771325327611440179600962920402296301518896688338830645986037660389215683149965693364291719569325167606393653047718086009580076903957226836257647444055958843632656136123308535294554347096258613255271561481357567514510220793560660706967727144408192451778168358375841003791066299390453691555296557503162687632821602543869549156983626120414426287868612198937580642807274096342703700449807869303555704300457390452370468987280351282004432517174855207788370521613059560053079562896110858008644581078185772947367103110800008101294388199543150779725583128538088901084977507599716815112128476175394865095151797290841522924830571840166565629772266775495846985121488460156095734714349557052773274199842555394302989516257886298599165301525751123160460737046029841385905211127313813413392936518178382495027306642011535777055966100643882888985854285284893769664945458492798222412809390003256212416532255917322076863274883666547810151336675815369934951986745097569993698269329450382199126745018689652379685764908195206584301476641716862222987056157765145644733562195427312975264876448338122872127360330114526216873420249487256933964217944465317549863280208230179468864363719809221627945805634072038292623869868410342193831169263912523213063302299200575461552480104392451246637011746518493033523005644401661585012500513733754743996547137040107980546179076762733865498150094807845896934497537380127415213023283363886060758174575443381534175633171467406583337400318674342925129097763708765740129433652470705287110546341385595738248096547935675194990908295327765443069728712867003990028515177472567889964038726195129863267569662941343577464376366924557945280217888098237247395638537465112593369540693106815774394108987757999827588334754075337407414014234156539354914928940438338421448125746212075326335801555409669095328744751578880546112673705763229106770908127921507561603683511814714954147061774405455137821226019518574770477254513235649943431342034236474707019620094850465206427969399549635334504511730325255209111475426716056850186986184132371598805401304270896948221484423930948929343078705671393715627746565050107456226256563553069752153333631922393896259956018952761042618712257882383335979959930360843804164056059042445546538813433113268839414429516521744459983031863928237667748348382151968095119164452592235142926149653235584896787912047465128682027348845444482524763550252061108013164699245425558779156446656623666745276036393911467673745071810596519805074178226301616723594353587811303634148622958127184217319659974257711597275855771534560349230974518969199695771730785610514378167491139876837299782371260206390022867491150572031128343197413697045591033514449215652932395023243443696211648535882477143550326717275772178838068243635232672422937362092046482642407916675510316190289247951661518366332376739591852946541570944117858447622138842389042011239306796370271409830884712527380517808937676781886657126400568714924023883153181695745181363143167955929505319777467752005943946624898139791197127448953717474716749081566371402217673249209519095367819561153551215668846345375113981532024839041280039204813897672930200410497287795259835608318719182004031055685077571453788411493220028464672790434803934086916038235456272884335570933742966433734266100789263735224844559327542437471760387528120441443518691820928875338986111865586243988624831875228830147338572806467885469267798749699600010272601161972123436229945955785586147127449501920115562242637308238233351784327980622425716227147810902204711351255559855641558364589361885770673029496668487454586762449537561905492272184694962171658631716726992880667171687611934941661681665015296043544124336939148937453442426074485528115141807177171431286925528763799257172005098332415017763716726715712423743849183557136188784806471755736565349955395362223530171426502002958627309376765544184710459353247485802972121299915719818518394919574889634682641380446712993915753080686516279274687387571205863180894478879232779947406566419754081668108474067182115825607661611512113795047889632521542596417521284384109905561218679365544873535689208841324221247844407251143013899867427952267616013678869723651283916685236941015680991651080249836109571434125473893318594056400716945567715236061842971831415224210850652428421371553836772046760464047282803895941043997114894461935961142118823771960938581502448242069562848332058784303478195803779099330673288348427794372227621330228932851471790882014451547795513778864594297045567898754955435774400870994066657462177982216728741872245931157763228298658025246040755934907024969598343051755705273018688163228711132775553688426338253113602488829395069882440982063377838083915588972697444173770179297766288969594309736889300065171598269246630456072767588310319086098086629587332955213400900932465112167286297434086193868662575513779365232681703068982109718321080532188544941092651166423857831167251762665590946336090553487614183788999691504378596633951141016092468887614891758351939705844941908623497872488596494166320598150323466504601715374966411958229001970101023185957454278608159566482456069800617319039086280385422101807910038477307041992208887960978355907269191093580545870260383890717181502418623321835378567554367013187327954523489957798958340754503871436701591538259083823321534306904843315513830419060601506657516128035113378867073509323750326610376339047729054962626886337181878171671175910902171292847112408990059821821007454036904362403211982401734239396475205552054144067070305893752354267948103353217732327714829061482884964836019241735526927746984862637108446104879233877547682712216858139415155259290170108563563045410320525099228996935466896077989659586800017686128607920613451156475708061319605642160558062684096002913025661587473206591380675745864109762006957769930410591944514077241398347633120548558167601665259696075303435485530973083754859215433836007910200508912877974436529708634592779119310803282820215043327648780155783402442289913220107502225730537856921399238314828423143806095472596405775269791958881392553532808614587563305560602534954998188393769209040178169837176392619551669147826241120922763331747757535433781448671920768052861198119321894482509642745240073265890055606548710557084653867793367117836457731362017243732362835060913448188551289937109653230982773409599404026980246331547349908473990955763545847410594103647583500933010439341167437249315099246996951030637985982760430617976027116871814459578893426657594035970224397502122583114483657414745914122958833594785936144738028431395064132586538976796080050518237615581422766851557236452972804909218233161931772653192847343469388213950889703247998407376051378535834154132668520318415402459318206102011911259027269635726932283071166594812052969449635244365581746855044165522171716243618835847992758435296577743036372378653462292986163736574439344166302567408016378725998088505674318690904375409842112844004979095377890207393879352362857934025292113448519787497664724345240163117132617291782731142197442384475457501938792883494826319852020054013534394691359647326267263638104963006134139720305575285153255521825864303110043056861616087465144210453274886319122260242479119601281025404381685556811960183439191555695520052224706914554442816337091605678150276684669078072292535565111333913530535657214390056508150931095334602361349439628857245081423948668885969808086486934328362105674005838330435909997541052310224303776581365611724599965891791221072639270307832039813251102542170672914360684720006071800641538672774021415422401909500145115962366724528499776501029238659723309620175918795588730637765001521070348555433229650012538477973190829283473948488347649943255321188802883841413185128823923082395846465964836921321305437204430842666428903709539814847869005564540773349036556656974387072592179295697470737579170030024872839652336966286420588789015699425501799026020804087464599434769065234533333100277862958509263805880390292865858159185272707306481274482447342277159177887271167450897201081020175172215405675326457591279346884254464154789047484841448027305370394581717629754184832744637610744015862902332258531018862466076864908854749065732378514955018990854928639037646966501417646841331211217479572265092743674646275534160939184819513115045741130944922393153560741754682453858739099096066302776965338704868481358674806923103974507027169365084865796698003849652077827491148468041928028838119118533075145701481742087698600422611879948315696411355897365170361697259260070836277090595746941776933052497793819110453657317243687516244796398620153033635628994418560098323666160838504405053647982585237583423864952521393264189051725725548893224430846502638097844401739855525233182822152805467150402896752167879079172499647385683574637883017765669157693712019673037124288120234838282681278993202299535293584460065981514973667376750738418412429921481259794503204666203603201743622497982805893633773620271361179484101131603306599298231252711606832900245978140991433124365773419762315199353023272639079101086321124533172951977069767038627579566305454270911669957517656265115047851916159122379168470977097507854011374785859999919368114261093193262386292933388509118719688737787973505599182955904707578731466971820912630233926692643412678729917198581163691333078036653655984517855581840604093131696844811493392807049771143614540226189259167776029767668710869067750294463473750049769445342730763887766106582198248404282768172355707220970279663536036911599277859527154036730326721027196560792087701228067089026938422706894196026110348970114887781880416114096206522310687102639474336835480993157735649806094656943359950642777935190376130427946886341515214153231533767440480387060354204352777381626010239172822658799650106240021610594283631996289167403964306601003339003462624295387032648441210561025789557026914293158376726198798668623637954314049439466087269052006448342362667771967179591551286758952718412357092467057736311908950107186289797320676483738706691876588112503647003305406710885024971191362389075320300396670622672627993645853120672799673266546247707735630887491153328221040543898443043840549549742451654820971101747769814422741430671551510739335082975078920173555810933550179070997681932387619539158321267122297632158510934409991599711496245460635906725823195982584619233243838713568968618406197774095826690086572370353638388308050997750092147911691031880274874871439218164207233207677660835175657720268714794929404722677465405534508225650294079233356128978890208214639435834263951596297037417817909249684528167170082963013742234642737526025317588708331545855770937311188921137535645616121904558315223860559260300948447414687121375762801627921585677939338262608646024253706975879537102580389906319363868312829602690969713738820901403801926326171752071757742427134810162622725561595601169356061708699803200123003538505880441400624952781615835113936528648212894714750443374644147170039443732958801900794297848812939167134652282918506507713464881239925481407936120360130367462023726831829059043989589582730527497640597974798225420043464248883934420339419316418875111566103122618249982268115853905096471532140296240252973250151165858675665369843002526591427736754789874814453889212134668988874108997784489593647855777016340041665798507595500765692173128673655202325809103939155565718430396506246743946544490458153886737246686984313719496803588133934478653690008286244266513780808589282272621271672954082467227180824806388854244963522920188887008541253954168815069346864350145079273981270054126743033964843349251261430387646434940366199314593814688114284931841917302810534811639899233845706093855831697571228471799694417821348488846214867398332084861812812498770071227239589844086714275158220186328303335033611729464603495101062899573790094448887072762636170462782755594968878554894136012942585369045457574211937756242216456960111528748784237722516965667158222810443302378882518603346641238089878110170186364956666322611832580605904213698198498352909683522502727064561766300971591695940036998734029884247774545785670433267690741345778410731565798569771015744467946684131661126308072945488458562370123345459864652389476735436788069736786896448129025956996832774558665518291163041325330262039203878696127803638102610906047100773589262386182270757017248189273965824194971743637630740706945066308616300916528470380857988987951266756169475030813226812054622114984682888149580007756940974612539365933927572449558957940448456494997223265968740131683989787827891813456849467326145715703861984623140448902928870615923573261829460556136335744516205879767544334997383450211292332408857043027478085404579576675648021458076154607712289462859541152672712720452132773746102007644172381022887711620064185563707283946293871062005995256646727642909091444013649591590716203839460454017018044202045059769935823740925905270262159227349108969417515101583891226599868036581043251939904027634209224367458736333750649742294676966636289138504315672061752469106420898870823924629753498539350241391959184912342418850459778837285733953612564568338983908065987248206460393288312698550342647729293077591299550637702838001297113479574669092146420757116877395735511641522503937928359875984352508658543002243594797363862552033618063998324539504317964944951191056609293469304295110897298865888653447748049371496183014186009051603196799709225291227383654398507410687697918189676561364776243836512282652546624559688346611663951197875102115405452876206560536320300500804108098606809909087024071958147564898713936429167500526574772772714145570937442772661005930599640340246273756492084974170010844511711807252622165589892005016440587101797914261870702874347120025268808699796352891989631211967423737945570643647323154649653521965069220294668856606078264609590238412279962522251107488409645163818853165471489818446139081315115049880255301415374555333984114147529152972115733679172672521008724657846407311533637337831111378044772101974610897447979284239726386144073232443711418528709863900703329620733305846153240053794172314490738513411119157888053174346498080785725633389036612635346772016883225628829167054880348499001228656688062429151526641244033379798511987687492901906681867721854417906070570856151736198561871951774323554715892812515155259175206109744305160767670005325565410192527109687319682475891938466350676598973351196033551611359591304066120566356930015655831746677557525510399001101899413467549072017886208449092276890391528519526006910169156252874291755473444786162542934420413270680888476766629580225182422668128941036845668949459442766929691845235496703669689343000853509176346939889353205075248391017466210175869394824762957897880761002775331703012541296526317303181580763917229787078140271232698477721500388090104867735487444790788084822199334669240195406853207758574765943950008801837853927710540160899348611430746580098049613830491134017028086617919670309738682182925066842033374232008418535129849797098648940076054813945703540969294651882996872666293020099871966166861299318081887168434978788929063993916867937059052428842424894411707306803722432712176436142773253676235515493540833314187557728535952427261277726654987773873726275069673161416167900190560007151709665052310271389736169196940978857723505812068626689484294832328567757060002220611829426822855658802696595399731335538421227770699550068119315969028622139051504255898901305430574450154162867988727592238194216720035842459548183338250346701924289917702024129874544516055336185372031665270589153783219906907015318798086329649589115104569395518600360732890669069159146616192806871430587786372527957223426595564125622287723664936615876235875904657172479108409954179489241738039989511162344930037938396355270279553482196979433111421547880558484086222277832181523581835151748200747813699101898331894888583662359258659239922073119235064891273724252997048073347204183811852609114588166830461091470000153920294784404303423366255011918772100563131356120758381103006635421879082977280414399192997892232830660739904232339592603487444483148020020580809539200033954721095026734970913560988789295000029844433827396050702862983428457964725088328629752343057741716750697903208931464841638402889221274497556449264069122589298480372523825324366870222198991077769357425021722705853437276770774237281622960494958639260123219867549968829166628720494397296971747684313331986487601421572989451563210024325921009154827539667108252293276129404718214076592229277488726872480486108208369889161935687797487277070524549749603806133421163668093388941967442507901715095989954693368391528669838490245573652182200865406427824874589913328705380660613219364568248592740788667511925224522623037057262780739738584848837691178112929621230864236506449615858036038589466096085987370624818453197138616555192022331906061752089214111314508382310756716507151007516890016577354992160615916997918745608174264840336579486224524644351148349679406572819306861689099369749899512856306429565901857396413918774622657566181023180370264801629530416064201421141707625461060662417630422575940644232640756419998127524738257986801723819633829423110434514139162148435739741201814191931126023535221048588791791933247627719285059359536945057927714607522780094207492106836861975448089008355672184171700451053699326471701180844787484449804765098297588269834493705112656457273479756500717308771305283678806609261112695583606738153096307505798426968065203264034835085310028185569475540288402705064268554778353979738737136157205739345284504878978221232290512108385590925956303230208457778096345571639289530217407882834879929457179127165236559382276805495899759263419496333217739372086029117204286809405995448296467875457067507735630087999415344676045779901924606051828654007716532198900011480600151270339475125774730561812056922966964338026325834610060146391910651000534232002998875020465873494776249810433902770165051380035470652829379099385716696463019819464339590958727929967281469408900683398580023051955053731261213754512949794075496368256059789931654804756857259173258720321737999680261663417559047951032564505562018265900167510408349085398724494821823804809421987264743319044623055574987176982215266421347605070543745686744004066815384922905699807452809607052991601389055062441433170107254213505303473516760051269585804907316887245677972556368899749146859763106074342608653891630806514870046044014016763415743580365770929707111637544277480304514897506925113062552347090310270907189638715781194758196501631647650699011310285444805240964098703651895572718640126531814987304658876666500264301818898079520601260443801432131758992977946383774737447583902496396174384414001167560820821248591217877394358478818103956739447605969813897738104664994892069621865758301135656392216529230247054663222054576273561759912078195875902065203305285663387520002296582264101769875003450933817614699801301046013462632540339964713767872077240628851703595417114543432645780358753726611046364808003091899459778713907747460157249585860980454640269187827899929320543342674844579131170438064522598042961807406223764636813420752843355974021782984539756100392566111039903658451650286608404236289857397778883458996581793132674374188816012550800512940369201245905904372741702030900312683876513191970244288779678279624378830818957326109978892572935297891448030369333570052253324175199658423405081820980243203985142349165587248809351604886573416403335226079819014624929516991857055663271855434428060167789367268898164283946891345100500376480306297802417751295850992584056405815334193508562931152320364122313815095036611964294181590511962117993786818879283519762276366998426722791681862989340157687362227881294650755101301766092868450691455082398513851952816436395744449037184612147707879255379066220412848198465228475135845246268828908968752317217127097677101023933501080795108626393352458425497488319818062744247524124158365587204432687465922213688810999153682554557394105844029903910711353807560430776806065149460306720748142184674995507311099819072854053382950050270008821415328894835150546663959205521368105281258336891952097692120741257196947843572997729682808108192410731032245791652655738010889123086486637617079180677328647498532051198407714945671557823659406441602193558992199579751317388731324802192178246086358379276421942823458228414653098501060206188865154002755689150010138503333717666492322793486190630643877871608485157125540547046256922484147670945961931845964757667069651916342130988197302444327768036127607790813017370522169286431732767476394594342483896781493777103439307139099033128363311804868445082915606070917106863616539295544140187404972352858565775871696973364750001761266778003013503164319736983818738245924131990045272334965717826151370903183163939134523854708183969629274959367960205066936152634465457410199331638245593014044463923334356297848099833818262299002678975938958810499722417318078556553260976972793862622821183302437440436360468523305565233440013309286337049441670111605903428925900536767644891766058214218639387189248140017213276270851530995903379225710628171037063590612223668205781053581951610237463136759142200439544319949867004287185946330008958327605826765505556422022511410038941501339672636314288229315354554565886649891773906844009791158842394462363198780886010823188380404943587830713999538924429538655151300100701198782300676096574535853148048723477379060922998141286566598329621943878674379767736704068721698320462006472842400331931901439169471734072596803618119230667457187881392351532345412866746011435268747774132511780743602964776056577832795529103629112589677990748949877048529222087108809846773508533951809029445178458819241213407715202381833577572156620766271265677181556657245248149221190229493083085698303752016686648960589898469704528973087721667824956983436535009767410746629660089560997048436237004954614671507216740576711769327248096786714160828497593545725424545716839463481634019601280676866714774244524383384689167050333280485477277481013774889555379024554213581558270427570938098840963693947045407207980203052728713437953553516543375273218404696828842344974590078323759759836524124092200123241622770514710648814875779071948867894042032175769022163260367651366778291787302001658193442575291640016140025676286665208397676875806296728440340510507979414125184365766790901182072779330445149547024636550019440355409371812044248009494823386344552133029482695915272824895691993772541841354400660544469864671892725583800706473663918151761505563647705483323055006118690046842932656479108081262089179837945881859210121545525021615114146501346832438159899613992197349248702868569675497845261754423704837316503728206940445845854189201070554575356585851416046759673132817880670200271597149290758109486920283854576267018291339699875020603120519036599162429948674483609059352189144688982241543273634932479740595022639392535796987350408618453810856982446025303773692526967384564761931900136579641573832740196396985114952583916495673879169100954908559175507299381833257857871905775239599685604094824384600122845008892339466193987487796708632842433971433096526752179022630492047938140022601917097929480577332269759626607616571062356943482858801201253473580628453026653461708796002928747891088923355612661155353275510539717833898971302130683868171049859034168405870735291915614308510147681498331366883876572678907538808831600642964452420350191750631508991113053283780171383663139838657765424908642000918794944946216888903181191967145408113084174837490003677826119882250287643271576741068034642930840588196339840507277146517856072040326022159776412907045574846270012414432658893068331168238821357721229814774216321227667355968845515868857328205770031327449761089886620536672523597409672518281866336711430205652994181328412674107900810786671123469499257668144371231372527862106200790106218212193910561589439871013114639699313628873090084995124821761455850687444131348618688746012919955483084516690040643344125351483348243759195116743919877544047044427649009781006975622598360844089704963195723302673315934360444026580886051391422584603175047760162139235750929979829100652705356040121551247251438404799118978446674602925939805294545228392542601348107311325419661211753383372701815746058140610582425909764130676977243902365131203379292315454749310010393214273192770066710352694404373441783729646333711757545890686039216032907465862448262716960264803130618930872423620827566317083896675122978573155074957488439896880081292694193950353779563150388496478749437541150942016449371471397672645392921163763141222927428014465964360930128004283017040149929219278961315895785884065225402963046319974810013881286382653496017247941558442363355451108893399571261166579020574117754758828490047472485177794717918684374976820116278483078555808723530410825713535275280790330288495619669937480566861862154013738513266460769754600839993210847691300443746965623097426908284098178466553778512745228303215395606192008759163674637921350958520569708511457065180754403902838739379376083414377903789809991459842839933502795818374548091080756027876433222378275979713357150317113423602055389241130503079168935600621273789443895142209392767018354043399288810086736494316738884945236567776121322506094736599044136301800896210025331406536973428561914006902048059357979925940382065878590161526158854582446132813987207057762426833098466697580661666477798299521657655087545160212968526935156422856072082579235519898459594564751801086363504377987385687038397017240647199090654844575448400974685594639648485271648000771285231604247757230765318665413729205452675313086612897534110274203417883519869325572822185891521565705553190195233091066786775849754545013815593609687407659827298661174463963772340405488518533458230680977424716815060291355118164225750889900068908353097921693218963517818612577654707030871218102855643666786790336651327465328871028830377814683377663781284802166032199895798623804021619711701002392463487035743411732708893924188195667893122560204953377318439267486033398450879830163403450561462471441694121695783998030566523466347630937921164089679247457033744029240915546200826383372236514468429643162487402418969746065588581878774793376572658744435507187300114271851084731000281036004423530743028707099753302475733865354820952561386644335758818809817959877613436893687508884809838969762865855707006574887867979064568870408883433932695607550699616745606461971557149506413975584978065819764139396880290496456615875879395932297704630753808262809232699045144299975637727056899854549151605832580469310815361234931352835918186714474236299175716521946619496960871939933872025564424996695361359628680921265730491895886720603222900557746014332866722988198933535170260474645721171381521044849605333907790582051754973288956608900379220941936476876058120386561127151949414254579999952013675283160003664383169881342532654344549972551542093751655542416144004076414761900157892525966486044532449936379566340226840216934665686315808694879671357587679206556626850742199669640207875311810025623071919105073902386479716835422948514592059054211708571196779136332276805208260654696193918587000788428691664534197352186619295693981428006261938235938855122854519704479302582009500719335637164228819177096004517528700672174852556371861352887861211211352080392448911821815919250434017676400362255489840456378453085643139166698410639720783544602830850374814307939400882908617766675427435633225073199485187115737683094421718509676438589699389633568529093508694042306430872780025220377553399437826886428769155759644482219011406869774456361712808354169921919745987699745390995925754802738991757334244479389145717752859164393628278843931405567022893844299928467145766696019397906254492981618136345966292223234023835363199029975710883825081754218655458482793896501615152280655510532001014556056351882114376374460572910270403698314463775447026278066031969003220606228890065312472189334450995676008730711168310224348043227323546210663417886223263246973191457796722189860352220244817489770456771399301543991175547465314406466362999314947665626724943387642131239576413210847967227445107643309043770977449865661485070656025475759541255860074454349509325098605222988143507950728963438618072150268043948195952522783082860273025722659464907500353505592691372122331280969304266310183666936208824018181259576161992584475258277085004068966487516150699752916049643348363709256744466424126646289954683458642467159974505493157163523664193374369216358389455644008947672484264881372281377714548271640511133163356139148264231603688634013048783214659150734240772772254789688947011769175442647700294201501945832541717383725588089354402894216934425332167288050083098175777695190731482378973173252946115194788679783876921210669764962018528655376597656488126922654535010558875986822826380821138649609594440334822965242308648737501547519668632736262454408776813557528801007741550044774703386812472902054582921937660902538373963597994903552756692192822131142918188129937469027408926273231083666817217294805646333809295397654598215454535657088782010961163625980345460248828476015825413722763725480427814803309348855604450692982721149614911783454986042711188932353911962128378749873565413057139748955926982147076368384711830470752290346171867321646785675637892178407288096666191875345215841900178136851607246979782165666971316643033751317555426885853599444118442374800683136278230990701798316390378696235635972256299278704556143825536329170462479643801867728309307089945730799680262491328889893483412384909011654492782446462338023778955367255919751676651756228816706446449887463147806462740001965388377896273053435830190067138885884213505155689279026118580357989658570689182757502312700826174110292128805765472643682819207784392886711966942622114781916409949607311289833879063322690079232558186234725779445138553814705805578808895724445338485759137146239077018166073401527857067202620357641187563973081778433946693980416231503112182163518360954342972308719208461793317752527464169954732651921071287976821037637400174912880446781194728949183235648381944568791446147737170802164718373099144192022638244089058971141567439996146912498511121794955890390447684661759357983105524060315038243890595428345717961552413891551055768336914412245881426997102111224460843734009258922884022834549479393428211839133945235378628915142528969791661811503007445505716951109485079727648320234374556748282560802034345309434552951791687850237700943132126465768645744080115527207413886144685191604420217381443448112001403472981916692673562752162329428188515999878899631930252334969559227932110232218349300435474432355666932302772781830496892871076206703101922184794779442602408397209944631810793055446040038842929965869688394018215650800146075404759559237265869335664813563595701959576535776699263461276036040023113059910155989560191823167004157887157065602652228081326012428814627234830433619373600713875189064151164540243728562883425285529520317462476606764443010584131214513735669622816521470215408349327947286156150370458083450891258819373423211222469813000806426652292512471371497816839508507867053102490421725558258068921593758742184120522659838127461500807998356971460603454199026471652895532058240050375670972498142918514501124642202215071971974137010321742160825356644821042735300354465192588822005972579315326394119609721515286811499598268689022410533714603419686518163279741699535109998117343686391548009746722837018288317185946775458681343849644318864740129862583929685985570727790105630576809627007428723524009061412179432321362679567837946517564250737429673998550974847908660657761076264840572947417901759001910812378020448071585509156973971209356408016908423020105004377044304533888484418945241206683254417220734455580996156679065760799255168940762705965315922023158487954329438356289713173009287742938119290508673935837619773358380308666191390931303335502331039776787304254631726629805303536787893318764247265970418992307138696419687396033988281230791006690642485129101975328148974835412060349504477045610990329831202949718330330429124198790395014931632302090097406416686259245524202059850411601452281659456505475521288931579448449633953317693961433629764581962884860446735894808764758426320053835929205920791105872448210334013162672027062771060206268997082101697401439875553103403869323219629937597449874078923364523377523120482028598904751753676577204721135583283365556841200423342743145078112172116030737824178845922422622965054215942220723386819513338267146264932408227100460067045708145547083311454155203350199311912324711666142175961898868092951328793758526714160283349522473623591552588654132866884133159265187435760932603876229722220793774222811198567387293634042775779455158033171845756143057521251963864005490310206168980848995148537660776283895577860911223310782594327542419276515358809907687306259296283576384112608889795179405057227541257630296034835471967420836044434188609651560159193354634875709429489081020240860523510468739289077372334756621597230927792109449944763762676396000635182335670309132628870205143777275878180513071911831030006822506064916876831414986102729370314425817595152400073917502271425589415957953240456758262528265513081060657798951105600845705078977944535326747882732967150672322083322660999781209732545802713461088736827188798414961534504641907339483365521235052927254246507452620516850047360004894465582992146599572524927528575333135927846366814179705724429813979831866965044258833787812372495314806912176631050270276428633458761948152701437563452153511510819633293845806939434740461229466805894052786665815419187543677342928744121524615533938269338635013459542037010990505877474926076858662216408170300591797839331433059777109812596498687348405087122432266008731082567580292489319920596367680249697958317025222426133577499795368871401202440732080079935311931495958594990119310585255112073648694533367913339654775533602957510270029011494151756521205201026389888847479536672010212158415405124868815365164545965293222776772089916059949206617537666348203819550286799842859369511902388685961609650818316140026018402582386999605309529390970187922887400797737224037189747966249149844083179307203285511698194279884450121637283183652804043249132498921804420326341754473792297039316698039136385120479277058214601280517413874708718610857959088040330060219252022480204797139910296920078850803954430557886844380623840444447914788095386407653888431464373427879928921018705729473175171893625311078299056123866965188040851937268839784559952904870856164429069620389335414500961077864520740612544871692756597033189295538774455498685327855126166725609931708068182673085957767228482859364415406600344221460585149683412489512671697443776159415719716661006720499415592766666262415592489362930001765592407324478750740124544172694882831163998069195046660032405217024473012729832601524656272077222823512125351474866057365093628590339068223384588374360887433146125809855330551647427945311234790887089055862130431677632823779263690796880593891246520311964108461631140531997060465276322748994805389053907884915727989778757360863697516226959719723839997987897850574846379846913502377684906868637446396903051302829793332722788588379746538102616219940227364057661029082804146193104003644323902496936511967038869963665263888943243675044671436890772176878810663133072172589576419468610523247877696505386947960099659163778281246420728795479739656859597188339214881954608161074282710338488592749172531984921830444900775699998303564116256124193513253035318772960735255847955011899229644404427965733862212669363788125970235132102453866308676611717100968036324914808968954470824377258215090121692312198497601859841942567513210852797342123891820542728164425598556663119997480449279053944296764585146571324679448605292882232414063752325764312232718904132152542772017422088008296273238937721265135511621903056390074631947779931661491599253531660409721758925330961951418712345169123344287438587094218650737000381938435439662234381979690575187477333862845173062381253694131847836327886517599838723666590425590870491302456925626980419646087684925941912375039776613686914880518686237747539952221978833809055428992386521494512722849233606020895165285799418607715599375918065691524207410398960931197832550181177658355339516818928812130046839824776265404081904161110286875271099193942693711971882585232846931742560261250490692001309765107997227058776313631415545144149237229992731659002132092322068919688175427682677384799941870878986095154434450877311886354708207380432416325713974657094190728453919821966512888520868616336611219540970591162878433361408141647200886113402912974633873003881844177759568527618475810082817951604588652230673628286472352100006727212032561072117771542504457672455738704658494593870602625743004118477988846324662881059857319671510157371372487920740249036658681587355798251398619416326708487792500645814485711824130473519523762472200036391798108312861075194057286566786503821671948290083335861634948499737451164209469851613679666745637324925830386119548228676526828740401144462027917266177051998975768100758671236647690061001005048902285399579764296941666276808569019201215476443134319741758293756626052663134848739332409852249690544666686706704163966795689286806710339301092335745504163834067343617457795170860922182671613166812841574353278556829199577787988112191483744548599516480179909249783380522641061690809376898420781229880615098677539576889476196791368718270433693438257895997880629411025460617866464810958910938461405008045019486523267411673286798531487761199206069077973612673906615070919955147528118915340375150563587539860657836329969633491190247924243249031114732291985423594912533491260933040162719612697774390180198146596429055296058422997997826510121784859891583761782239118460539429764118121315875640551028694039786516404710532382453597328022728850232906599824255720835872819244599497039732000559321114215612841330819388187609629598038291073803658345067938387860304560671887639542231525295857945294515058997043796006418795852521086000789343935687812042796612614339156419964454248873233624600827447541874732375580030363040352026869260479597705461588202835530734455276576631612002958216582352655895637225910540273190455597376295444246593067824631468670133330496580907110238944586479200233896021022059779158201966769645289828550436091587210249630375261352706482985204356290999267913462871021037044582675814935699340772148960927493383944312861362793920740561653503468271763279941086871719098311595557186513554985707063469883039492789731680834220204781340627222187404657735764883725614935660700620065357212086773259363956225676945189349109745879874801018387546302462081567246207866125506347033906811201532515689693930753569656215649521299196343009948782085231674782561885225823364078117892370615678828148090998645952244985440390714128598828526604518981863171690984502432793801545244449584789971982148609391380621521425617763905543368119488941837067366858961740923796983101794012880761580051668502011343036325364836288432101155823354920373404101774077323379656149608955151244094187325356801918086896922955434577713349352962457670107792537114399530893360830845194075106170213038483395586001565546972485985580386055479019857277736282204965182096596860430625966103509734786464802222942036729349571640155581145074822377651735961438800714594196831765001324607449056195197543838041723660050299436047744596649588387704591171127187822695212457454778078852020751169430888733981233462527906417477863690406537157512679613879264648728776272034938101504168616124996172563043892026703561269308962964243578448657971630586644848685208010419006551693990252443122921844358553811380937883834574118790422089089541040632561840052035639869672845371894770124934399167306629342204666309061406669635299265250813559262079920117052027512862378436496321177267449301698103153953305466135366352816255460769765310746426058978712766877545554642820327229598567420326074003892579526986476391488339942627886223523207837226133311437193534183007564841027306763116493325229002504274137361000287528992101092363408745498648611430880717398973680440715126276926846903992430761129367806273985524411960798752520989459495741386139783848374099806760387430806543894984590705532329928474127008796296380531825567367546921000424406683378642220432453707240772925434354902220064585747100962221818074900177438446759659597410302249841828606449518498390288336081893028233843583891893413892752202989293650251651168387683112802468832292255769504594321283705419505499956548576908849036426851489410805088163468624205775649185188315076216738942152216343073008856551600580584162949703896391517800606651660321742808864738936354158782967638061227667060530612420086882175487347338525689986703131885284588232941552773135409879411724905651595241537428667924524671161030734285636768400654613598154443252950682084273275117186485491362749995806691476965860600561246037955671753370377364047016026075264981584022691295647359159275036405735822106690385690837599480835759471598797911850788777000228916300034772685583411443130277096931178151921834586514772063939587707000927575253764811709405951491064237117881291594204331008443691664170523366291521497280918926492835133709298289917135495593293471846921993742398498470398468667212169191066396279012323214215937042523564391813198992565739304525975624413263020321212580933470158555571161580844640655438796834650179065847998435965253233673309641432812084435552151497572669616464273437629587097870627279641245521858407964984833107923780287935596700962489292516082225980551895550889123397581616023095196892317517028720616995847204880943566359507704230101327042400578961825658543750383169168886368868709098298540424383914281080516128523238080716481965065318415984287232758848759991484484573665675076081769107289127997710940128300576959764593241238287532613448118754091801347326244461707057354838742546398103022715354523579755883005326094408259613168951033525176462270858475024468496677744688048408851280335630769747900677984886314803847633726012623972557931144767703238485871134901121956842377026536487258032696796015102798731129214340751394730866756442776364012628579657936221842813739909455978719241502773479660780193377079713973978013365391385699950560965678889048735016373727955137462977458034529926429985690338596780776778508430257698427237328394918447164102922012110666880217317626123545085654453251082773554603404424163867813615237836651914151994639958275588965728898829043751663037913613213549074310097341078878804847676388771706052129750482418808035120966922277433365812821611579701725028208611292893229066045371995397447026372525178295369984739583018406975605951837760116526277280608751467538898048746640231095586764305346353152373990643145554822497335107597905511102562481148814672466711408027059837884107099854388271273747648119870236711713058060505452401907047206884728144885557315545261999228322548065020117184684007085374542085189914080748197765249231445774318529598545448950878895658796711403770736722585124837069818382706272317692353953485283471667312149960306977973504668880715912345252781843222909272258891116009093401640315147141360407222149807511947037294532206565637388394823065217107938764217989847169489859559827900327170767700317194300152440087100324009484970637644888399713847288881777917356762985456993840070417071551366591943883372744403261361322173924798435266343873897768722970131061677276856647908042896540525277619451655173571538056957102164453796151831458557099106635513031020460531038274350725429980954399569391091511272445050010698111521391195788163965141641314724561325554771827597045157722101448313359678083057877930383514052907153182741934339870206301402243172663731920239070839298247793219171689640385688104888232028043105945067677841744300464833480774196467105754115154752249046241616825788045878600233274349070281207639900548517897849927432156591432605921005878743577637535534150733737620009976272826266061539318499493869490161638388272312615089747194643543826752359755884189839064838804828856855356291456874193070774017474501324920637334734845149957013452930870571127232298877578164108073765831117513220016619507914170143379855831772712853856049523125510570768486224581034881731133879385623765018617136501714937472792820769393265710946584487963019868032041492740202803365758135975041059728910723884601762444146166130993052260010674140733326049185186366528658476969335387466155360660069374002687123219854954364902660034214074159338251893343117045580428323206758767670218749395742580906228692761327941164401010953047320990639819384205621398278184689718899104486278874507619494641125578152509980696589466251846689031762669166516743123732613473144163075445579322705735292641592723392114043210348572467906767429042722992465816408332522587767458787713338126327769841076311560451165520001915417309826517939125442688985242003487577214411664757876615665704307093876990036866608748785585566185658912525286002884239941907500083728607811100789144761123978982817192912510450391894728961329439605733277018347103216128847387309431046815235480801488857182556257314150509568793849780654568034064355718508172074752395769383129600501366594121807433636360199883707603518368534162490978287239108663590410371975248465058166405689746251839282061116426091951624471108122817502111900594496359249276058623488813249532381875905619795957505716665039456495699303726168711415396252985196744760609701924489092974989907077254822154552190552242130729718436984686523254666471095126935542055963788097940129806376786874612016264082561045177106067575143847365525290449640624277475727289860783293432182256645274040607121939866391853253081532449068830878872353309162681542452328988035547834479103658926025593259558358442964249698623925942264801030399348678451870556679087783947712142673009337651590896993032591811064409822070978982074230083936312119285816895890091633488043534033543060789667864748374562418140304378192644489417919210658291494974546462593621868224524146123534272552469602171079348007963832885817838322827768551893813594925116895409001603114394844040894568839674316703729454490613205265739146879119363220822979665574773077229412587520363428000822941928426637081936394312378166203408481320070678289242698946981584123334947690388198371447575903857961529183461342361955370317094857723762118177078498734692290734775173751797861895483446359592642744162616541899975678276395806185872891285315612058635527883836490020207110533081871772333593991259717892662268742538778107673355829392230755007037420235093288006015470900373930386112078078451687690799920678656730156951656785369638254168133884702228414738109940168074177499189672304313233461505813660904341778576923614771391257397294533952102175899994025013080536566489709963067991663714589748620701670825669930362485832043850745980247500430562929602112674597525778894915129661314928679403627747280492963479545839117888725856887208629665825911824003426996389666596598929106238006445072131668738202816474610589838403388386626685073844386711275901233832446984329886494761205479403379714476707805334353325514358811696832271653776858627989158220230122359174329830888355178081019713502227549438843705962641713716332815925863467453073450734824779659162671348698405266267739450665911501193658128911360158795520180014415746748545148129854173549477425239824707007949293076550587888167810213289658392710647257285169578703810813534757978589550920819953057141342032563486889386484890442951970684132828825654447893143292409428195688011641966226043876695588760948898945841592141550778662939159281924100935398638242310643386623669376517045406804900195775468837739771924810135481626840176042019990744541606793696910658282419299844440235071196646359571830302414190167857350688157355008473237835729960920626830757493037046711598553981086742247792236244213559066883904261667425203626046418574121912458778148359499534114322343880719886109074071455945578792801020490692957237837187619263279870978872466103273278350493574236517343731901322773598846926298096614311195907359510249455385345846188710722664626197987029886337107194463091905964885909838404130166146042490351275052655669611802540575352757564862203260457587822630051949675607941659154545409995492422170278180788665718772062758910611292568884066412853100638936642179382921624171220171558478342727114198223096693978185733977447872728162851640800129245749364868317255717447993057150551307863899134892609249965164751651911526505269469867285177380076382706873520933365704424407836658800355866200830744278601053176091940287554118094524981856794046492645046073227997721102043722399850813294596374903659940405192931581031925254855823866311448282553420897240172948125573795145182448462347935131634684221046720839637452420085522575481575097745524777562240177387348941514135535707962360541055225065538751705920487197771918819450381133748805947249470676830795867388483896648990159421701083459012447494473116731788754613176502868327369055465698226960393416387057853764788698857662371627616298035643261080211970683565548906745007818713596713296120343586109089121876219433443683156014786731726924672790916197420978358468472003522238435595489802787918962135688255390416256929574721448881551434791702640463444518765038333217012841777491583878606166906333922168484804186601380272450481559828769818808286440712569582139931526832977011530709597348693768491177854890495098228602021515733353534141884351763622319734272637857573104308733887830452449620092647567730598042196767599891690652437561430257926933837396389966732997752066577820729792625563801353986340676488826365924009702432408119851284108576088811861109963039873498189120856255667045458589339254139592212413593602316143681928143958955354020184975967615976671871850106533188176093117779618290882433120509892436989283483424509115544939607038363623620724416476444546330429597941100892823386516818917937077021363943053995272282166195258909851981830955308779512582397764388504973524146551647051356873008826872048872945421383217664677660265035533680110765181288783548876041922121165645772136074566155067264515224538968635972341197319578021940639636397248511174130548010921456778486266558284825462292803938061662789058708768948907492112221573846009677899041060843676705798485254948954403640209491954830635063992526514787618746000758345359146318590763286236256067907339433709640703745708966021480722837227985059044734377342351657155955375441391741296567170904791133968807122867208702172985622990748937465922959086671368632840586292356989008255879774794865270563894644361502050041583049619350131938073848234373185021680524939065897239217733493338497632928049869581101188944900063290411062335880950198332645988009714827131030232123187061540540435113956060090822434461990477562662359631179779894712176407105489572087879750153009628867137674980297234824885724500064368645617029813060907268941330786288428438767324714662211886878842971987364971920927445178218430407871257447896408842198298953731019940987911980109620723698891881188304641969370407603542464212994288572867318989504844431145744895281500217584064447928235679649214703842480300304006643081209202831930214404796361610320302669315245759661028397396159475184705572997506803311556257411066387383719123564613522560425783510987586410921871255995044010710302096887343302496208575884063349990973458360621117328056808221188417742276484078249755084135488168944026055854894663580319300726004631560226826893200466839214685565747530649840765967712227859502250594195955646549294510445502727201163095462735354980749743557933704956137919886588917788535279704454947182336070753613066634945763687830928246673278054379898845932413691450882909489202269089372816055287941742873659896178401322462738448445448828820116082210587478809444011260522228217946867043504188728906172422522409547956389205275072826461191328189545826428680056612634349891664105548428052536886375283647097233642745626999805865190569933156301216787317468266924826027101625975288978172272706914321637958736779674342467700419433874630763321244717822371143893307195779065882197853257828474478566843237803850186851624821304033123451600761192287708243911975490849008727509616423541197980821255070911077755039468385659916243530658458925827989146938269071508503018923081342535804124075164516683651619957579880642770732525252199215703534336204456286639051737902882779389969755140062931689085303344773778385055184225398656802909864083548277141980128166499113301087201082958021108353796903947135630430856642762845375218837496782498407444066064831145009862145006473823206498575687517552338718258257517445767734020635088405129061213730567791058131778989153970498586405284703715288646770370306561694413593313248104993128037889311274112515202416932536567173745869863942683989296058782926754274650994002747606436882059643522813075456111688511896385317590699339264873427719416629993366243648387665975236956705925901418784369396216822770761518876298743890677463480024768116218926575837993760825658873939995036349466624860113868235175484344421306028700423699820301537974311544481210083435997999058573242829934337921048934824654774684351316800812508414747642907013931069231325595409179335995129540648419479335246257890835322242158780156482381220765189334738677531008804470397584625621403429702089724564111289620737640821973519363724417567483191493362479234471013404159981145785122623086965897174804952481159574996857581797009929718273116725942514108702652883068714022920328743619873723894811207911352109774222326720009646913118991427362583305814146720044424091296219690381535238826440252869102639122740269633207695568232838695487672669993371352674050234415235922182740838106522610836671423614921224939010474250617771527558613491382935855205231339092899169783705341410993413589900086794544833399620685697576851563710054817450696078798612062864560129679273596770981783028391163073917198811670880765013294605977717322651195711171323376161103064390295785457380711290112619707635978307935651715809769558422842529320496677633935831861166064979098241524294541044639546506985650082886689642448779040792415422783662258907643166078360032829996729769386972773890655637810698943780665711900323974871056248071891578452282329707718375455122429462169391125030943251910515052954262247714737014718593797902111643912529744677106222728856690876819634227467728398672926323059777220849736741811060265816537888683806892024526132958426393554236724248479717028506811489341773074410105469239257493051272547724387169051275430389856762662474542414036100483593333115286786166482504738460640007886416993122808280254346823637240495952304792858284187214672724804612271729979864134523298846980311286061486384684661691129569572891268088491271787679055138823963851764721559876298087393794225180546107060288792068746707350008205366725340438180837597909545067342876443801054717997902603396018313385851110712715908887100586278627475921868376129328106144278851363096393336312175475408428359284226427436105589082374773574854191452092823720738067978822114721605689517536445092749131238751389742694173399233433501732376769836831572051410565232214561580871167789504251540211771316589553829464817878050161176427180395740494898758522822019727801001240630881745958212832096014859699909919974802873211437592707136464737800729358422372865049552714633000484864608204623997353790197825724711290459145764960622475475813057819487748996024229356609917694484526577459636557054485504267931155995495474935977081812548587140224521282930333090543864287766634776340084790537822209147752238440990408003735305210061140485395350369069446370625793521434840907612452052546121755355410774941959157280535389243210202077794145004995630747559814903316900288006570462725469476992591631223531839081851100847512726827735262574131065768463945319462094604103109417376329605859273459396534297827459945677568097655526398326308103852474969033466452557196824047352582504350720465504936013743870584555216680936932522341206155644038168821986930542761698032419325333347638509085658019108437707305165048805195587830149989900446133223050584704985018563619729262089996870392729810551865097993207158866411577940484904519712278575387034650438774568953750248921065148725251632039204042410500852884828986224799806303741688959440773838954754393868212658690497578031259201811846850795407768725549025889195570858067350181403808914341943159680532363295964303028004329290002844622710774147344948092977787653287323330735383238056002935424254679159409137439185887006144303128577462085212489736548718879103040206597801983933345650264640228072510394792683535378434918389701745548354985360773079033567952175282763274804071272221276317353434329829478500163801457382735691132525148654345618446437450167826573623486936203060573829683270407383876369593530710288141726369687732991610736615363281242379096071142085942673262379498532454407089913011917046314986112299886208064019635073966484235371113842286272571578364171254248519440003809239462594215325618762181129931427500317268587842225075926013558928684330812248371894955338690258464164030783371947154535534146836207019493436917300597016596382022068431301409631734980563597402119482571320086896592237707117627260174372341930035649357303130504837118590519594782786759629282730574830589358825118971476417407620851965024934826450464858081691205477487412244930069719002271713629284909750766523813190567101841019459538921350013758077280780416324432509545172219868869427808843776514293897971994169072082796456938425621800974423329447295646398049997457458592015640491496641012557463896029311798771118398857659015858672526275765900733649136316587352724439328789816609079670915119690888964796006161004975677657197034484162957343378989357823141537402147095928551450098135180162587372867272396770090110951990172642093952688970670072372566288833588288465685458215709254970782884256116581408690767833074978210007707136631058314672679510263789921087826151864359332700265033414373815040964891594252397240532634317885669509421466503658677563668894908045312430816831944551381643894912695391897570579803670497898393534067666013196446735371966057978033166320049499527886886163033684308758808266942761575557631828445553032027326992860975999560546653013993308052840894026965613551184517383954404673525792273533635391249243400705848443402415941003883549000601728814744096172350486489809819391163881458601002970004991893696784654448707272722766358499986709462008703729394913662052896372852325558721051396542806524006950541366144421558340362261577056820986337171999667277798555837598663983741368874324176021412665647144913259721959922305984934919389395441681289745523256489134802714182403322905314719886571331065656178514230094604852481340605915361473611047440863977087666018791118671205434040352619426050948345467275558421904309730567326042049931387729286708941126624885012910746121827803636703735677741285650794847653102440125897120112811216895389232835157203490288941028672819393293890087642915412768721702689547619517446532938694687206915460291656940604399482544282620120797925030185580188770106387454265007122474907202411319502270857481272183326669172635634848142671844375882495618756542380441621998296613355090179437375036508337373350615647962869666748486493230152352908407936295226133471950615985691480497580554517385285824732390773325421734862376069027170895442725515275545799272558749451052277451382388714851703789225775774828738873878612034431670588522741010082192817559861285085969356546686465665146201270062582039762226922828584256522607182534213277952883080031672860321935090612561890075908042865665557156105404156145084070244296835485756903170715467757388578435689179939286238306725051767973154907563463686112774559927634554460739867484759247144503475167941037952274609839822553319802909260519897903693502758779036088101235765266350633579413208738132733521868796655493204747092767369228398798947128802684726872865388710188013974694250646581994395997545073497722486593620172745111812830059176670424544161762322538267624085830606560973194879909799168358827680463935102052201882902087353235756289621437591757680381031510350764335336758272124438384807810892394424437410187203413990428975516944181966149278805736102751043345709990856682121453367180807807999810854449453487790135917292932434262439049416315212569196883123870113582266033604769926744724498310740527262405902885732299819520757210574866858798922599239251373355956535140477761286468306788152005438271808068557402502003888951451125520816335692013234654226747728072393865941779110338494878494591670601182862598318959863314980708678035617019811374546830345097949851512930494490512718006797500959251697798873147805975206171962864136904857674733139841098591350829789946466551688407612354822253118852371997931688487936010670232325468323049241626380848113343854199623277055495164779714031171198430954092798374671881042584621602797413678225937794960552321075638450866450776641447511115905392250029014209864385759814086952983590457869595466179611283455512955860704875715912605294939085971675403283037381990118929960000994165947563645304737503508985644666369802674177080615764560805738046523833046142334045720973439002105082136382035705872604563280936144985586192942887364510950418391588570360617467293787145921037042480134608336298125773295866760532892396690828199978776630153952680642791767990620506448978766006203623511662418440018989610428046418467805980916443164069544885481172772638680494040310583069984281962243800686236480717516705409391551289827592374509523157233609618832095899128449486156937099433601126454085222917333789620240145480497348061234405923017307258726942035500130141443289921541814583221648740535180947252948635686466921922645645461066289830459727819111183173877257606713426164615247077769076603476964762622350510900250036589796827717738693149043871692415769972468239248629393377146674776512871882167231031182610891503536165095493466720182335919494900003502097746177856371925499219128471560759338992725396219433313725875652685801604809968973713645092474719265884788415734116541140314729067947151218900547014963839425544900312817513072380684699476893907078859406856041116118821394476737411507605440131975968576928555135831737721268571445552777216532193342576349152522728326061533641735952864974387841331824405297695775209545128791038378627213892292674401373391858394207984184521330513138361226415199010355736204986425674177534749935247535775104297018314926284293444542181474046460641983645564681351849000146950283488782588762388316407680360691505506060094706414420033021433330406835507229658705436073810341381379010005502913100199743664129083112947595208272114466521869822416574678453380511703438951076946141020612239294027032066384929380982161989927124673580999040011220972385029878646938637937451545217880328787265604176642665025719186842532330519416288606681190049478646683857492973460293494023166502715350143104756564453932683920254136851603099749662549882720582405374906789182354098629561157765157463125941311594760392929314204529719800198962861969154517842377694445750542703687231791559165457927215740532834279300739504652098280855040804146428148637728961315088759030944981346839812547305571956043399502979174839113220725128634480998865933778301840722257291027911818931745005612901658330480886372429421731473812658785612041544898914467909034251467980194190662452230092073920199035577998345385921213608990854220475123689420900849862641426701507570208671332835325858998200269882262528260407449363318965219802185752118494323062222232472887084652592508175604483532134300312922162335964888373805033677733805148912842522804776483671386467116524234959198873122588818293429486475361804638527748054955240798553532382192247403741504239721878748831463597899921588500223031590326527190802986645775748698004521041249466839291734359399600141474840035144694185400756620455719203504913739549934733089989559061047243525314390017953089168204170799843910846208668761728941703119603739357431223757493188752702572864775144151203129022189364809856807820384446165734424214759979516690270331425170534309954640652849381939390331075408870412344845577049938489691393560749072670539292946988573395477686295943945781117434811213835936778305410271097977215036293834357339806487231196299612606123824314651952062769385743262931814933189115596362280290595843754433558412814014005579691161184546610420776859086360378881600061869403926397764838000305920708295396483567606635399239275639425067197991544250034124759768866612267490684972653181960793643578267779684482150025091316741826262232889052244265997209022820604143628508376930727290125952540099402038479810377215789580745266046231552537473704555843865568749595190953615348760028274166841468832560126028286836089046697060098141573401968217938150572308270145028360207937995059160862884626941053723736946133951703367628406316060546619554424384757789519047425705383666987121414154698366178506686963725487169840190371693797992498782806587906448963590437054277167395772117855910067248196939216419761060604757545479286013635964463835614778126941604689228719660312303738063955035253719289987485270660094367497726924794459806150110912023000801302771993001669911653720585481548184529108344970810453230015829419087226400169716684561885282343383648261435096020088295464003233503968655792538693814674944608933963064758011851979138853861429424320138577587408616421044754706210199916744781920049992512985369051108693270589157418817273911340973247971379674036121466259105772711324474912307638821822658793534043003788039673710566457640573895253055897188975380640885810657484748179072581083181777680883314300745626138780450543943926305484268123257095579223759365253599424656950198707972253187223167506814448172962978428432436088047017077607648101287122674061916223355607890523159156888586791756387339783315696118356876106218199319395371037363323432235005149850630639902134999427459196425985965968869958080344040581857448782527630198607247666365738740125008716121285998554277163214260248229411741576707514415892424878546494667218642807496027579744745791208268434590578143964014078548396683503273677534952074916781280485826858751600251291113509741766356459552784338699304409643986534242324303281080142349268007464511733723016020572738802798124071454621488683412918033914612142364545565963060469917703961463317861161752551131513659241944324625481508706111864289814508911892091240827873484096128966077827142658879797290355266419798672536618358603451977168818177165356723184216784394110327507328140259091318746329971823772748035983548370402579850220080268432211868208360246489661221340720273833913903689467199633615938682230882154988378221078107042335738132196489375333413394101727051959384144081157949971550869072680709734564887838565006556327617302151128063612908958828968765340413447299958982099253710646112973492420228360345569112776251333485294542895507380761715718330297209122392076990941941881251427711166720712385858477203301305657176202723126292486574166390194657996367152440655398046502449652287243191597146391663947605450949841283079858459925334870681957867768111788099651700165434747216986834962495511361861832088694994033336259254935481556664298942295492507938102279297004707887162188895607327739901408610652711576395469443728921435146844666839640204751037925999199010931090431223957415525962511381851509769114756176405766924506542476582161667924188734552803599063457871900460257955432648286420422996433785244287656053716866216018514615466077169873144677027415441563005338417887252527880044719452035718177625862694280435520489444546697110361258249435797284015521051132263936242602518229234296113236592458521310481109184054436105025307695027903082221545347378978790564057596126226935024320518225455742350461489418612216178204120573764562072671301406026594916729057598208926283788074860852846203144636638164279819552080069583218795082144810887642227240483339476228995624551293276047308530266794266131217523872217173566723081673668510971516320968074225155671122540726384013189077675832301478915532094244505883939363185439866130663759007928113954882671367851637733971362359805788165352224558488855478057334665980062198912184263021565544644590732254796360700186499941069868900260406795299279532538634002777491942266521330242771543821923518529287467064161885096029134470727556952438315442562900990021968107141731192326279267276807194399538637899409847434947914822542241478139317600860687046813962559383751184747219148352044777275664995897828354687466499429025885184542119555908412312748948692515190901872505793254520187272809654626687194398777314788571942601545042819538568377734963149484172333880163463065957530054685782894453230334752882860658588366291179916804641378174372798721193716175163359213965958368076399728980647875084359258844165143272131139200294575638383840107492477253390851689434514918468547708601669718148747350415656399869454570244700201341618922489162545744727707001202034893965725937400016595838218478618809413131892045602859203983529906801160984012685883098251629037578117760618441670712163312780898875060955627501651386446273170889287265642755953284078326898270358725547211985568697870964116973930126665627994548343542595114027508027412619037407254556753808139793761673447048233601695945477264702040679228625607896142742256506247508316246421945993836758399362389620530168757084434647294139727933480193250107654501361690457000735505750392757022430913847559659090202916395945374621791662633399056263820247058429758754066764967605942415290626517457245253754717898420762003244222631848553528421297084974517930390793470816240121829421510177533552274435541297682565217336964366232380150778493340659330434548934924804019374729367142696041321242105326067657661356090673102826162810798139604022228135746214846722606066938794295385341600231278456322258563508192731704238780933332088601818686500707117189437757920692800295221543486483410963515884217262081833324082808640288798609478579217524694129038267858376374444867619350098869677309591915946855665154441308380027376452299103556722793364430853795479783570132533631306944433420305203166740506178306174517698047525671850524840028749348144010649787380944170597582376075871477130619999495591625187301731128554214478169482119326013389042054115288466075014496530170684857695185761170438176916114193162024355292363344430192073776960053473309093120566145136640736244839667245587927974127928861337639812601072244198566954030424347473678360639230206705334398004007490174024133626285769684630576621128045425349344759158463671744296814425330893300416456030099294988901817069541047198794630522774932515059380119485001218184468919418023347521471248797157707794068216268219111309854964686812507170000320667665660701658399429853326860106348713418618204527863432387553945684340275144948085062448839795066416972989654475018588744905411447711004088447534448922569501243392337372456462781065496662527252177744802107959362465943879461559542011517258937295660606236640586257938656880018570413959785574723097356234541748882694452788245769178849794036880169495338618180724890520431279813567055850256527369908624146255034777037436392633607143981673032578442560529310262247823771700706889918537693932022275395602930543367398476904430812180068982256150168294030076087006638906793716776206471041334370512755889481814258923246095655342814777085353925979794940108402220300253401740730192172854162670040843267721617287128130893778053271367657123102395688724654285678545776416546457155365438665388167194443110362654182607882766218790643988762367113785755900487867302427620596853376636777345936820708855390188909983595989624288476435427188530647270571935176008264480717653415887392961512921419092021634848023482207279817755848432207438644629830750065640252231182562508055112972667360227786630592357693675629724135381486025971699990177246160400213792918351589094657169949367699508239165657514536807954869140802082799744069977987959598290241416755536212868029512504382432841570736937130606700835740023359378515056124608844333710961994564700599140876266631033725812834370506439685703609324546812598654840390288302154587371021238319774977534572693229823212027980840737173769075916341342170441593380231381121529086996496968937443077558866452950661619913981074539940081571488719310160936286216343734336283602336011950913814136762153747040248999310229314395470157314700852627758443795485105810989105200703847843124650068398873922301755937100514377331478058111984163886831779644611616232469178827180715746184830012426732503935911756628033334842618915372226971274280502898324978387159322005936407598711066990323164492622719971554214656356354959098788466022935269322710220017942484183455413754472045220482819665718944100266212706644321055976689004945973410020285324086608312298837186328839049460672128921550165034544324749584273078058173067508145398365196177373510517424777579272075103419705495836347818986606415520401297766383839780928459701581249149640608190635076559243914783182560289792147594693652239462315974239880880154454118121320402882447607806118375899471149386444698758759626136203376585169825784071973755236625860349140319038258455938312778673313030975762164789465401694438611408066492540401591936242357661854761782419731239305554120694127198006127674454246355128569036587294493751953083269121587687891366118821258622285538028101021975554894761193277803331021750949916079897639180267827784467783990972974037234725996172860473887808071151908217306070922090084489103231556551128096104237823446161972957753331045547837181378490488771849271595138826528966235392035918036596447085471452790151968192289112985181096448189400383595046081884268718369505117275607882892828635293665304174576045281942756429047514027540716015404159491170657626574788447535840099953969680650729011984567075665530556015273705835832715138898022667919137159797735330286540871892157923209836921382709948922014507183666375105692144469588778096624329932653690574240195773291589110312811096270730392617851058322565451029687798713728659951161712393428109325099920461438665945134719090864909963461965992397262240851907997177908670878405151476462197695775129556137991937653537836881923594560459852470752915246689394594840553257248135998275162902626665666353634615058322209306933490633824385812663472842005212170411781498842809746093021801742106836303243984538323307006220799176449736968618708632807552943209688962202129331926428083706788021267501323495871700603726218729039126547238679702621693139285272965751743638953039332952976171868915042201601609430380887660157251956228147725442055223824159614287471912004719633983240170601258850625505274925325814262585748026149745097369439210450107981233123704079686426680515978467180924679034873939960042475389776073287641246251993542178518680601466709921642843424306417453411317136609572147800904447496538259402483309213104306610635935649547748814224806177279059911010891579961480606395576478525617467997296397094625217254801876223102528654583723316632397821209897814572841337411662850963885238450755015391644796913881443127957523752010373991163272796802586434432385800904099415133289291073924640016109736091520361893077463346768440868149647080670028805851277105762144883064570235060282278245443011445984193025988612742316182470899581710230645089163684899481396897395512535790667569224573904302815934210592341153693364848586524701764057906686182593175204158192661889108060583273712710060091283951380946117830846615571629456831202023699327673788203434230472815327084231295669004013785226022814128297194080012593292090585281340649596299227904125114322555449318393599952992281197848571245115797451082790477248804230236345342832553012597574352728282478917293275043468654918989425632761351762382407241066182173647375278609357797333980063095999187336468852523665124786080262451112526096756911503995091989439749949659977230920447787447770112509052724631511900784882621864496957976693535200095957953244635637164097733787498618116172503894184621644982531737956146762115796698472109525067158594148820170161871834526931658286853388027005338113416465814880909690493097922095312067919681482367791506071558748186739206812591910967972344732281306276579505323127484255512774178369654746119273108271064719726104967874153516697505873575611671042489021932712040382254832429167414783712204272189536141866743002567380517259178484250904101102992076921609335271932658900168851845592806972119445070359439280326383876694578395510582783957054407673276470095715848672686145622696733563911696096845056723261419189738443498018104436874522634912178026519442391159715200930985725488565306521793793684006911816611401597662398550638444912917123482786465815914211233210119039894239253145449370378653008564809504688288349353096429552386622602002035907988680914046372632790910784556294644930448889538845903605130175098830974901227560231182623919147088582505047752025300035368915765229095975665706033288084016690091199529170923025019644610333155682463815605934704916179965583655980419252744463505205986399370074374056881940321868559525555654540543140451279574990150660232467019271249522227174624193547297718636435161843693136242762336060175416103449112259081074123025763315022713050007387764534355848130425093752548562437969960986296938106062112167299764223141052715250019101249014276496877616880468105412887694468342684868700312164292714706685837434337945401173578737333092320926580406120177803733485236777121140999156351970589097817429157681735608923930980136063963382467312778752497683436917030148654900264381606443850516318518147347445515747674302625670866820757334399535752515546363748603522563132600514368600611305254953546649332489598314277564922765548622828780510887799171494665837954438558302355740380156944228892322590370597682745778806889844557198566577055447171790246927722036758555997134326246529086863585006352111871846409787463480823368089389678749165215192562240494869341268483141701181523600602612599580277105600203491524324555147565748600127227223589200784645560627293447599592333732951317508320429920043231467633047958777905937346534148586364807609349673627198120129307745483717508881086227480187491619787778409902032423391973752705421583407753808060473609506167078866307197355052999624126004805965665832789352989732808211246476029240767064306637585145826246858483146396425575649451101981576676312971940883576172739590403110698408424139323155917642520445558782743166479637295162395549458847753735722574169295595391629614383671547668520083562890891256691244776533924308849387116946647756649965815250533719746455085627083854209985696759727482777611222008707539566407485720744438879918531226328216067246256258834769270068964943940367395616828932973088525938707817823185199951057885647527750912990208640556636583336673600799387208448757904331109049265400080006712185637034182277669674599491365111288713232552594401349009186032000141080759777263263946181719743742593328540677820411839256874213228335224718357507509031238992261103442784836220191023613115286683531443647912325984180167396522240277529874189891199613619197430204358776365435465029667360935725017668012756304909898910906552122177208257611888160593464688113874638915752583141923008026176104578260730249137856965342913419180192220394298334231076984479420709424837904600440509802237151034391889179379823839175435937609847836042506171328130678692955400329756746876225150417271443248664222978481567993908942534004715223829198202157890816655866058523598329736689587186953934688262319344814738887464470763455561583388827589940248447885854409054838118398129636168534920099288944286787286648421401381653380331243619173612844947805726603643944681688539878424546129177486166972434066981613626233181198066075235058184678723124076268943504410029955980165102200038121595657609457653007370427295764585889040818067507975647446381794698166882379798522135174854456669559787212118546342406651735973341498592302394510003514057473230402364367486820615117101338987249183719875375088249253633066531935996280753352332975324074311026381291813085831425015914696628019080261069190780269944906829921690188041462139187418101752550583126932770495776754898909070947314969533211993955558467065706489238628559456627656378398942941381488880004448971482934598088907760922550736900408643078765583710954849876465087527907523149614650147610715344494007605474902623956359803543502217803224132689088020893018743792634766769232226432831443174024553384887044823418487623941199102106649666551617725616606768067975581566885760026017385758455108554088012289148809111634742768223871520790745441527928014558556195727741715061524061752606605680168164744920310437034601422078809057270345056414072661060877030259833478901038960366601771646903281035401778755572440948265090246055648975251291804596289751974343487221202073284121722223617997487251762971728691887917351510807394903475241263698030164639776259204509149410918535321336656976478551693191250272246752789982989904635406233189210078491191363328400832158665660773041577370154677998785612871619604847645219497175740435659013942487768491756287045228483205257895329469259465973768296620870913376413742529433263699380412274799530286228092368722801645531583780263390750420513842610163607206123122709660587273587892261245565786567729007960362083098864380472764754821185983946361833286452911266089060918196464980223895256454569875294183482825438348930298395479171589822665726336763224848555723479248756175673088726937717022354336742973053069548485686314260308914746364453256826171767819906897233897605297854597377511946101355287744022578692445115162176607783241763207411550062516082195636977013295282943356061502969003578276835686248340609109015154044941075863422413205445570515597861337226559882688587554885684434522886693607631461617265599526169902135923254271237036084549330774855284188054393935587369122679483188031514993030878673765025106835433416075824290252051159505524908153080033989557318763749659805434476241215381803324947348610983122239571906269854884422629133594551827005754767251906866136719635647573389025621698097705062937066266079454183376894789346739929108035176477438393266320734838398930981176540097511032368199598814017705069537555965614002391180992816990803348587036967992613911800519796626635591069019732776573244455524540566568965945850484202310467210185822906206234968509936957294216213962052442985261108209571523760931755715817541667346249700682420690689887477956421189584407087516200426899214144054150199018953830394931107337247301033645130600978432884219722404815340785105646136245676627369353410841425583255012934878625389242419397490112962492087133088560930044695333089576994702090566330576694854260592526806849803168425271832040804648505307800065021729369590241681758353591847848419328625833389328481362096445185342281792673733417376055852760767769600466439304414374458057210664912074674263781760677590975645056309463495042689346932067271971949177251877705351559597351624109225918237366151729661571228914381720157242969032614664133261306438933216713076582118282291925734740141613172336766149683297529941279046159307957399267468030866173878122690318886718528679633189160505450892268911608538742248388327197381331594553307333043104713472123333608262669466992313644684327717566879530847616082665149604386463094776030895535366618960175270582090027320855406652920791437217698923060686420095030953881665085824278203073520268347654037647942341481573992864494717421720378676399039552183470652271120737240494567791360879729108780135570490560664618287767440064081002815110195756980862516438253188058347254924556916406424806272319392959962772391858117500451092931871790017435694923961557661400799763195965093655794795037763024227239926060678164503647726713444120048024277320483297099341952293776838209926028708859930335407128544633680487122901925957275576595368120717280977859358390052853265158835711296531496277445708792862398486936871931098325449469352586940818530183909847839328437786847207912327298320577526072701551411870436925768267465000184031967849979026878774547972628111596120952865481130407873162212137380195414945548660924755700918797278623921727398595588680026089227362149880808644922584305225573570244483872462499110173727282771806404340500793650055208261676499436125886008492861871768236684136194137794686494575912311509603638370844340166932889288219400478147369802094009582948114688617106906886653095556743219174034754637104700252056432191830477506230476480736578725571475121576815152680419440359758641022826694014981573019984645580802659039281743991723204628982077042535531920543922597037623838216919575857309459891387183318289334187437881576188143129942660305808695296126242055757231630678916569125701554507297538686315135083695075612936797920873800385636948699016722439144899193047055647046136741109556203711951919914408085267095363065511049772960567889683027705767102915456063053723535561373609881900580050408336362162890096380623187231216460786726297103898553488587287380792583650085641639447835463937934294860967913691753019399884355233385744792420551608131313973063106825790738492643357113223259371375910948941811700735619340303632409320034711547816783186253041633822036857616415104962765788138338065387224828121862166688519347720239918587612647530989339495080293359648322000509488737439731251048869200055558566000295501681561950641076613151497383466816018734640544311899768467614634457456208996148518761109957538506175668958264266821831460240752746195182968316198398993391787709462631416342066723058382249256455327653353668211498639404738936225860082840367156757172572450203509638089473290773134779858853063937260141679773573406846406846541858275464369413725284964320537360246187653975912670186339334074233547462755186017210961706400145654924825043637495401363769428795862337745419527443668958925893504925297353491610640530854921896572978700799634730027168126771639818607880255551568959527830644163952814461394059137202698138582456236261828803499560067214323098444475200030426953037836890173695195104575698778979824213378067724211166748270522222603720932203899014920852112460556791681214191324154736867263937308711087554506468470060726646994321447720346172375642301526968093177376998071094850511208146372942244612138201214586145415233430706502024017962147957569533831564801658846900797658171286388317166300580045234346651501586281468426251528364038101774788535813595880634644849269103345500918303336344963673715366147666135015882140502465046493604309820794435108542618584206927290426053135029205596305831977522551710365630857562178922292909396652247204408614615165232827116511753761519235942964878325984190899031059281421952084903070224588007059524452869152111747827293353790781045447024741007922260553115517171631376721419517114425657220130129045369959956405332353212072356668551965005234274043174827656746226709682471410468203877026472718052001102321440080101224979055790650275585285220486468345197793334033514470840935514190359153482569857211313145854358775124315116803518866582865837006277663166862706473255340754038914797716118551787099574118432774080203633812734403206809263702519422174556906771099042804475025081277892633871741684271874358183410757938324440187511567382639510031778400175221175621632475245935148475715281750856382394096786867003082200172406091609343527359377216891676871044429505450281473833260373396971308966413025071000512571895802330409113243848308517947566831675606490002695377821534973301757765253501566818997613463582769553909236500655364386200865262271198066081340256567980558568285537436583586315586716285264905823041184695447994130345865782041930498500358826701996144471990039953367722644811400833026098456499746907139433555314069606133763618037535402212748954705010826132908506177765774801321503980861970980799278299236650872223364941659836683462160068671994944601025920732558261363801934756824827808845132828009448445862034060557133716116613122653479913299284203868143916930723540981604632749869029375355306573767842454465847001103126612687409059753519576859673814241761653387508378637710776807176728829469118402614131871817954475310888245889736043487772119374804631320166264240523930454615513536543066618607824387520350734000840361169879401355439126580133868401850801553668492181186520015286566327575958067714187564321640231029808322093785168080804527563635098656220363500260098419634107746613141254358429043043756736023508090207376357333483949928053403992851649974422033464991284526771390515105851321568214786138023625292544343480914779187395200270133905673112881617293017784995270188565731533143065580506429828524970806494026425881988237119803038087813317712772900041636991755343798023156313689666920720977896867163942551582297881790380864483166997442468055751001463061420352705274934718961368189884201672120629433795880762610962607656655557284752469274900093932710464062114993256068962367279710890616993498486827054408007816290087335135407776923694999780220817389220913649579363236481444519445693498531996642544083009512756466232676544499846150199681842058541818489710855699578213372146708984449520565485159668700330091949179498730628364592769579202628637278775401438430402215423670671468329429544291089199136780767296644991055144125602486419429181026419745653802512184752536323089573284619776740297734359321710056505261929900029515425309913856627937745791171018704630384549444110262353531154657854379115489179010621670715580923030808321443530016472127174642668057438791091471079626813940822437643141020867317838743740167167943797355538508575490548410857870544430727861651023667326263556529562665950744213729940701591232284256182948911689136089059215965324814708200800038186380755345480612666821963436986391565282637949694890936847847810124272728018798053005520602468326938445972787583825254059052942247058495991687713061593226552482083379973535731941405570886876187521995101550688257827527036532869510885680921289056722341621483233764244175391197500706478531845118936351715232471999236877260404675661976059309462986444293684398640054790928440774034239402397829716016241753230167734657140021352585619138903641411481156648828700155741287928784313977972634821493357430079606568506385115813127649987686787578976148315439716828963341959252948250327465576308718976150332943058115351603067470427510834979320637076516275863488865933929428196400298513522368445283195913815164488882721605991500172919899212759623956186384786433254810266330572750900882521882473713340704851776741949985225343553419525316341261433426788709065702962007143110402863576110186049187790387526026149088496482799522245331925776129116520275189765393798950527590042956554889466257813695341492618820486492922849474694418286611591181824884531344857046550987980440665378031915460936263775393869392333330839312818116090116772245735801272002109683629327949339022127380465513575484508995413170813275321740963817139528483761020146266235970391856158376196084527164703068659772426575286185611300814198537519303730114327961643839106571546555600149155009398528498848327100248263023634873819957501270610925263400264214124189021884150914958309967137065819343485526834336419121794677316452064280799012482155379254555756822584770191730238777505584248702283878903122049947000765430616161099191157993679562272988860748913647851783133892575441666718102832480428713289186208927061928347016523890506104227999535506959684647803252919835880300840934714960412278216325446748343120605053929821921335723248790451964613511238328092772658020891530982679483624561037220627509379590389842828695110397148402431000458465827003067822876352550763098610468226362192856154835234725070343329107423718840565761936515231474687641332718471658836724752205064025869210577964047449562592507146831888178821198211541538354089706318521958182864308927203489201053652505836706605541116178599560432998461386756092263564622294204868557420008907434929614715186701036727682073315441947254235193858211936418549804376231118433679803357133513391608777043958195417350519127805791194454743968407354353369042068188574650333273245928525135128829900942706722506785370701139389340826027654849488907017766483536120876822425675961674745633771616950570395133417510456442820774447968386417169687102730805977657680612934982007215372152432743838618641233261762585340786704959529407744667471513661929179738467079633264423917032413447496256565776013679329271775910342956189224198720875299160621295273000422920131840672819983427377998571683222712708249404652970950538576436804294847908323817275649110552392249020906377846274027206613465724069961475665715123554750537645714587801065910474052192363302037989059746399053964840395832456809148035534588548784441274519334947212465783014723015593583212852226005924372201236117689401713059671381948604624558844974266968000543073800964032404501150290359019231064064735306415661597945711683583384513193070755349519155910933207500421462379126803950547477435141200493933800961194784693992025810336675895443477907199565591685016033629026426620190126391469110964329509594592928699507610020660345008225871642179653595593885887377313292635382854380614497538237313078809355679354359067602803867699342909763459729457377099690869173766489208349407452393121832139926250449546603851383149178932616526469504087909404985639503995718897307998741389053196230777790476186425715339402335950373065815103753664555421681359138268902374439178050494692605058114510405557405702447322591912490720343844413614643491413349361666140047403153894597944036055371027045784602999856793885032881562114398126262658646713459402036221479574296704730809374564022220270527531668331835696618617962165139629636181772776765181311267733746924247780358701751347149870881579778493068033018687069434781467545239665772145796893251679337404145428579241366120942240359954549109017786587877567038613408948463848256330917850195828169649978058366182185032792372529639009604014668617897195757546719182405257876837523148855352402638804144583804475281856977336655657159875835414126405360745223153778057557433149206230576733130849792843857960730238721304266455033221999801756496218827069356853610181038492389292742883576663958344160411997289532922055670392655083526241521881666552425535056897723395574735770851987414750969044536858662250911540532513324118454747371255386639240049037161629991676346149571804403912762484942791386131709912245298066228722037857292810777086713478520979477550614494634401861506820082043522458923754407237938655643902764928063747828092739475105936513277387561668717835996064136354336538848832945230148611081025712180232048769864652650889509584042329229593664273642771131608040195952410563694426872851646979905465909221612433758268287695530886926264093051364898164396549560955392456194378721153253561152283974374553328709808389891218521350101444972566758894570904021757348829979521604738508692759439792018959673814893709793441205138254913256521303103685057446138499408039571843370875408379715576852978599519147029765445368210341306837601061897084467677036353480313660033229182403694302869356408669569202102131696013700391246661200301309335762544586754518652652864439563057436941967039835774109552720968731280552543561673107707149053524149822109273858237668039763695830746732332013215009972317454753268725075584531809973069958149812866518796729661120289359530246739284517379919974094643503409072758707265179483451284476649219316854814970827927169344502338649543499499046355928716345053657461494730375633393242466061438365390452790431616801510109505254644945558346778975393950722944651266871448852360157195306319512618185245362870670828702633452157216278297838492196050819935441771112532553164785189139762614398187011036608514322995233070807489525567899508524845355013502373075637632979881578640268264820243726527274120740007609518846340186516190001719366256247118022468185864058370302197914892431840056291148775560329307260024978915769241789603815203921205308845450643137290402719612617280413006892450503965183832207338968304145670220215241043678102169780328132268265737867872516103015219887113605738033635391344100230126763719642687442439725897759443957887314310936541661282364715808315654828257886556781544422452711763563778944502272377052372784460544253602040245639481451060504771501722614602544896227728633299270413707434599819261762919664840715914979714343481041606429765428941152434563154572469190504387688987909377849379867660177628198860879575998457283082712432294833818908776064094081689668660986423957201202242297106023792983370691352381632396372295460969076006494750773406656122380817538701305738423009798083694870713241017613140496044829107594938209364045042235122547274598829727426971538373667803671142305991487067018273748447354934753875199579593414783066429523830766478694643493741416009503063158329174830559636911014312417324218041226119760053891981401916592509286133069160694595958025884193135893982931356988493562607608355179961154864393829785743673264572278488446464146040186988341509348317041511467497088429227980371240809941443351219315152844993916998634380211622022077915818577497498916055038443281769098798707765485239737561488737986248118985275358178662344196423510473677087627072707544339028476649269608053389148376276740641423896706448092484698936234121850456612955639162360596916120163278274621063577596830543698828681212377053216646438435645680530546825029996251655612929954500377113814196437641911026592815478848772063019999887091966279981250154047401489811190423799329437129369462406222829857416161566525188910900447671451103207790203737817435761336900148471222622631593405599433277151870775211887790373245708943381990326768233493249285171768575173466327309583109282390028773034423144418287295915331365972621787943288363148464011883628599109209297049648262462947707422374716802084915407883217253275734108282182767601187498658062545637370365928478744375153457521655813538997166795262777673334735736388299681002138496717842131210990133029234571021441138768328434666643801260664919422635383863319458236433282596713923418496864783436518033238537804096236217097761486111671597242437211599496371179342825940870129226209983952550820666261170839600802095265765899980954248819409523470358506978842966019292368453472859402342572374112277233061976998582372924158790369393671364440740253293720038355433916455648473384747397756134706116865614193089693945508078914880946246637753830849883502960995153557746185877322100029248199414707335879050464435635645402653482597098759098779653250115596548686588275318435073645050432688137962090811796594154773570089904272014937699401749315567769386662972624059720856594459796239754434905128417452585396855595472849638047100167791800046724090540078536717396533730589315763436550151728370764131665989962682815115107495941817468055886183872061179899476792137471891161045865173440828830646621949239036730957813675553293908507363277344640861113322658849857312015198880826509448554374135871435337897937459464462521090208631175466047390448702959793367777202466834163818012979915641385846236939476143312460551442045677129560777329860899749031138321337295673495706889952964174491347019452314591525518736916917286275114287399343894955871319235407819340391420117161314929159005306730763830817288335375278790222580656050542782942327772048173117108348475538392454602890390178728758353307717373161710025611310128843433132202886854021284328768912998872518352653794025429537678030509528263391502057133986399328971244458635586057723194190476933178504526782460739851866110718401932797663080895236950141093268160309687055283496667640722688063269468499814087597309830822209616201356887899724339323035686541768628804536827521791879428662176884402823924730799488626197512219425653385871485904371851265662156938454578447216093939987765900857704931171863185663757775913723309969710567259692271720279161430475872220195659279882492616611002522947481866053338019007941497843141134255769272247045138719473867352044155768099468843840353689547057994746456763775707000415418813308847690773037384429795538104776036114618971817844928413702192346897475959780588184364767707751627998009598842431673043517326419092642481933471219879378278179260468272403357674941836760459926312871107102868358164156979479345730993076960059526473252649139771515769560640495693066627091484637496212660833607249338087136218695759162480239183918849523637400886395900255748115967077848088657945091870692909069489235408310804412876227645992806623774923932993885747648422304558434564520615954955174859818276431509525894800858406789965317311422250335745730203008509916206484517758441195124501898458713517491708214000761663927753310754128112672539665622529209967232292150222825349961523772340103797890247222875139217047870168694348940949569883339449095855494358641058303074135356551412894173386819543758401585810336134735403858608501172533641298596313159610707551887718713119660233295624719491585811759054222999077356698449902642274130649208911737856603542275083032870166191657339050947164756335376734345423084277719021772395417661790414196681253392343388330313161777122581319307917677608746097095639840798950035920140031567098098330835162555397394772479932112780701212012923173300266046182456019825751916505662104116855059159011188060245951949489473564566101592334160517758743867650049705284780744170872349356441615775785481636182431285867026655413815722736415479766195559029763582344248269601813731777546570381463229871300950005365923623745011673207234421777268173222322617410154324342725176982865708262081198853425323551053008753053029146755975705601482797308624452996383880609822638575691780488750332127165522765371673223218400786088515061090412980377727002086427188252953022359131675854776810028341733813966615116497316185869541408522025350309023065737853172333517043098300617871813060811256438057894765726986857651647821958115991593370471466053236759860996278319159812940069448787939677299088463992800540815752225418154044861953545625503083882364811034753764449033429350724735786212280068676917880356279215772415352777551048940116101898390182806038467982787300081759276254535352081718711505311094400517954493459359983607180312304111136888904289402908630297276337840229324145075214468263965302813895809119432664233930042309288584842521097641469928496246820586077444834028848719271702058675726152778030126331797611496616297057682548679325139746254782122672647563830116810816107335259991191399259706783574625944701797095146415701872706876122895811425285903314751412291363137704386301240872525529775711089141859077837047585010106730051455088602406580832782920986125633810085136761399662579276005131433683096303734270509738939795005527788952906551162361384709113080800654574698200920071667392382361687275100532664014732879238514883780302641403164905896336784096361960025458499592893386846455807951834823838614045147455307045614658628866294809887508357700210419290526018406703895647475287248778973053696667932880612355804914213123793323995897606000885247471017914365452882592680656433499924570268880232549871719133503256806749277450924179827817210675298483237570410388159705318514036874825524784905912149092123670390063511464467696272192257956860918646104729626313090109754300683006020343965598900060210303287213689778985077084284395945659345426329261707262683041020854365161333810098480019963757881820655295048769089541774418478389788611302000149737508647322774560259354620749968247741964634279733991211176978440298267018347346875180134319563539120666225508178060606120168950991594115566332654797486070700916402777107176239217959827660667322358778582398415390410433031893442577946880373361638836096726535052644636457444078432316780333132526100607731659073334768085872007263086971465722931314683672654947253169358550322647239669672527994620102324981075600969955311718540071005466420294402561548551177827737935911358121253797276988447978815571917236008573956234339152636879385022145885978425855470836041897976973474989867042817325778449845775515557188352429656360269970776072492152541133593855614276169736612796230838972629975416413483649560858484685656139090421654355143313743185330595027396630454454312277082805503754753433002402271473083843191355505695078599150685600648192276414640209565939154756737770641768644931556558482849846855821036975151552499001160532858422554930793688832486787622783230815983690224212116995487913572276432635990448200072953110124987591753407254506522191434702864754928640145156833179060370182082457318671507762681069103602143584661461944489533148399145158779128602367989856398690063029675646465973958881177077013853746066752484633816323474289062955861333428096146215217772899291632380729507846746985276222395338913088079498075792578907360018038045292107521281660913916738465619273955593082307536016898850113623955470171870745874978286384860106784956419264880768050223116883951666163771449476276667751437914728721861437668533031014972109111070519151346664900811278072666196261888162663504576642845588852603040144236557595117121638344720644306474964046992160525015598758654260164212743677671134766968468175076339429472079796540587983907240005935957744196503567677866132122616439177838908976955378403514243925058500072941633686226264524789247803043517569293671191090530139991374412372687366536454805964721036396972067678584194824219151281933442642017537428506733766944983286977622403672201101338512891826572239471709056304155424167039381934541042260329831212651248674018569778982646417741792195937142219638213617093136980876953465265947601715764072306494695084940518596223825845410496340325491074870544641371390328563061206792278921811403387022056522413647006736493084418566733585877311392861169071660528865960299051433529057069450115023408580795667965406180379087363925551908304575114698365691950958943289519232777533305606498869839336666738687880108486026860696095199908350941112440486888106878545172965735743490433517842859763727312254736403560162368580307454375085662172728849857906689752815253857358958308176225227730009657038037538583113183018445951077151118957130450490665556576752936668041164099768314569956317807692263735280036329962889414986937751318825726211968987561075762528560136818204496179409299077436672949810345013407678433877009101523246487457462713911850804994746768558233366885286253355058575962587959841633823655172917253703378381096951949091647737821502023279816030281611636746206861207897664231259229317524516661873813103185190372342105601934249522102393794727636838039256306418564423841409468617750354002247251070867111737140673172838423392616461692861154548185109008321982164633778264211428989848255073798848510167052580936364499667570912395946334990259644626552782069045241450452782426217439800818543488099712930889949274746810127326740028113392724167943024328029618623504850496725971430434096341723979679387444018401593286822131134113367904617381851857046563825766340582561427222728244890530012140709441824078805577524387693552719675683045627701577158875596337649548562087794475821408224119150257103484340874656991569289664287010698903750312593012344449250651632197964770153243933999079543413588609530070653053247824119062673443594284399295519000707802607643102976563086577588063051782020599040944340622573255474271842036619928977631920884727652052735794748829693325114607129998161324104135983523230375062116579241997689732724032719163566889499121269150080212098565623808520628817567951706270179186885068749645215956876013713716749772826392392349280435796531389554118625137922771297779609875497703709412240323428735359420861337667985018535521065248009110166120293467650541918626995965661439207479452700466790783072270533130206121337886427153551539485850191641999944528853483147281057707094512128797279669144035502678002362757887051324695370031173650908821318471415462998797601863406623935266785645199970318918793500897506766742836221148404775102748318431947450649873520098828075973753771255538668846796332551189307900039045826819492993647018615597631897573995331961201310747104583924189727512855832578879761255889880352420232068983088410130592455798009231277444813438443091902168422526280804533024248508471229483036751488847369897976674113020144427512275337733418015123123716398193904836506961678746694087935764564891802104317603979008184207695781470704430967387605702584768084678185076166279009832099875086571456118224607501158448220802912719147068242963245193322760207566713578691432396423150588688754702716805304236934013717130816909770805793528235043820403372289882529166246575975712041743353758979060320636875594919090327848351878926584752373772651631960179430227375942774110900534614946564979851188355416810732719754871765396077313809777139926704564668031634606445360688236341897188559181579420881795904447064296239829516226844959503960761796927497560488512710045338887930448368002423280021315484609692409710633685054323560122356860788098584429056091069699239867515067225400524740114642623221891252162092389156571637226733421522129054586599162978864148770058001259077127734880561239474654021022004669976566142625661601118882434114767722647663060271739867543260903419798416982515389810971629558165575170834834858620024568652560499716522411714156107692596479263691400283598877369826158520134343496574938572032498411238668613206311274392900351830993901417023282308113920299012275990647291885475262709563704695271596074268138808147046018787034687014735096319087940507642987532884490763630926514556769182051809560545997174226054698275354614066154723241160406116778710579856620742947619280123837259578202304333302648416107969578501170624806479878811905111790083268738795561335229229354328579519992085040119936397185112590376542704676253055504458366786256605178927756507640863869305964993905258218960546167173426203551972610771909212815904868598878199813058965844801749816426007590099168227483535766802356103716953927224687233990623568959773313927355544668483510223346792513977137012626264347310409601115246492605309665305316660372934506890322795409708723850001515676521361579077321723403604580896545098674805465528797058116817987415976035687749223248529899786540207139083025315647876720064254839243563255036377444771358417646568744214018065790400112381013209200021011053426131643986067564590455685740243878827005652502359779350535930818834117802304400905476405514154986259291066221214642410632602578479852432208638593493111336710424528982553491530485113289425834158100170682921056575177382990322872138287161817535058011844006218094311236386686109711547643267984357199985164015527590428686061379627827652973728184552863956048045377438781563600185607298852626182977685693303388458314041613284054962407144512780033448769056228411831250669585954815645474814257894156027400576865786452701386800258519681761362278607888362696926113468433535386723229006616846925737364202553292446314814999071942171821156770106325802107568656020657638271115376537804877332206998644644775710495135683917342898047981245471433725781364320138011386284641440341112427043810486867002632447811331529831928234082189872675166573331741777136032796256450290805273941716381585683438129740293575188736726743130688773944937673355570250136285155940002445955021132121050577001280151038610041837988769100102578882796517905522593917465009537490535081524346195437630993383466888462653305951483459834078264522801135317841480295542519441718814226346944905002391294253679386207250357480528072121641273764400402479062621435462978792761491065635389320881369368528565023405636764040893069408641848495077800058637626139388658818779726274646179579196309590063277957375815000028126609851583897106242035454527459736975496691914805439474075607516303795732166309976365657347910159297043858226753783748469462364295059921661638069799261967188129795357296132404439918788419875947392135125336069689495217945847936580656296769112085150515735263594548152572786397619051074627756879968308806453009311963453842513887774426807417595642888187274817839225531977722292206215327745533205209253660487527119474276473812228476975340165397922358295161654086449038367313098911777494413402950211514739572556943247850908685387494953970280024000831529964095373712171619164257118649580838283716646171266742377272381104919957038340357525836067516757472604412168760790428802513227776622816148945522340591294485561863816147151736745043457501320933391784505797125262531149298711965509504062561695999309727357301937782052159311394504936040161843741107207775763262792976316207597244841441694951425259656313272901937473430411558801551676875325207366854740542738075837811900422173439519717777411952781457660455222962866040980927601884784533194301645709776547323931847021986573093054645583080843143876450780353427066047330918304011075533413019314825325360145701759985805396294650864497949998843340298696699547955197559906626832565810577145984674908308114533519799061957811475258117897684237761445895598354377080714289249490057346928748940344759613776892803392256000310491041587645482842424973695772061371910479966582687654667015297454636082406596889197238005262065291109795632073881852544621414788966844609731880881198096594591745261917145246331369069659134242352975305033002768975725467357295834279574013723383199553169678594941861732318317973519017611439257966750051694501085740305059183106421191943722765126937813000219041316664704343554135057469457803684442294573741815595902341322037955732530192191746605617888384600024170198746995615823045654188429694713976647577763078206914428649402923880295230708768054269967077023098699101711372928223557151125940612712546491061337930070155819160275805510094991884888794276522813170757726979887061770138540065191715840868096442968703855574867851156464647971892550881508658096393554759091102212197102502846953816042046278284223562407947720819391834546805027731764898531024180979833823737428083789155982156453925498216307892775366198601534010396667490212641825174272465948088059038668165123400634430874736958179886982806651269490560280117714577136471487180514299639849772547634554933568292014172656903388824053550065236511086755320966212514106153645816914821194285375407502201429735347877450433821723129622585622710232170543734073901899801240010604668117623125480251791128986891306497394256618695767861306269999572945765161393101981416243807977503809724967059812100567355147936572019914776060009820738114982864786835818125415094860885788875678888104119350904731433597750319993992384140646650636227360270250911272308703298196716990437178546167371774227486405650136317209885317215404033907712576998957336473569483066389397443000022687801520305167127516808673844605849803581733103452235714422996469581219896625135923796069823093889217685060761473836290214340865586654945299678727069000638540060823853062714072693200217555487031220749734715279465590596234934464773655375253818675924237414453318426673651028430730979068082745114603308407165951124023462607909245075946075562805543777661171364667910022027291799602270556155893757066475511790858655900305902321844901737072809116948042062781036486165809253775408762627175358498433255341105691571482914755643204661421075248764686318086668778515735283674068558653846540781127037557015035002800414316698944236947930500408401671033159675429456523635049412958742810976697105162568840202919688469463919107602885240264757196584873369160596362741765834313155500302531617264928391279734378612806839284326465185943380377916057657494231881037864527799185686994076298637925555479554588530009302146450966453620044260265305548611579895645055650163391366163936659684072654969129431841855207499908406654704510623306736471691828923925706533176900567495836084444185969451690910138449948937646153971525920684687782252671665375206325113061316946427011675464157104264005449102989213947615221411520732105858640206169681512028643286723517456387727905112494766446246127031869813656842551755665858457574329223086117985143220043661665131873009218896151683922334079290980854445651266465962347315298531917710516278034509948178610192600480851852620094196591735277963103003422184498167709656375223216488148146391688872217549782820917531366864253413116018142954605301312545001496021220938026649010216504189547144722954437650084823845605705999549703228297662480596440083430958256839443961379457325428077457865505999311240753566698952316587121723879467787406467538725019876428380643283613267422313431478971316741342720076172106696062207316034279310947518403042047428239834304474402826617104147942338481487301103936401729217985221729202341520803166264359198748919332067813448293574018625194540155976509450689981994246984954545721512216009393583247659785843728069130185112273980230151227203919552858333515146428945215243995727485071008889974461695088824787734411843167888897775948966352359554138943740782888109152647919387847834273471712512913244874352760433309423097131032711870509692323823896934721350471134530252835395982616130202267208301305335872106167818047667392714821329861605823515840449180219532795494318619503551562352970697956645958840125264767667065376362166973714820565171933086508186618812506457578366613608265579497410725178744148316115861939869746245974611651015004810653618547266045783655815361724065327012334688459193906547679535931078061418528654142521530972066824345743569751860443451251755438824848980930022567325120616517086561964727847708554650518692974935986812436900390206721590314069289353242471877949420634368971228106298254665427933377947576022611125440207453361564270562367203305808341815459967408690883796881972294821868023116414514465890292641665633544357991948233058336127550816360487672575623238178543569112459359758509253790233880432643591223000283925311548208870836817181702705556681440425026771239320941352045812540749982745368752408491469258505912394557827210811128604798679428214740456845935145833561223618030662259917861413409884665091271970519912780855747629365548507120283952961931385358164571165395608516200787964544143213380739202901245078510477932197007208852017899358557847564849225190399298074378310579987324000863464292141240671491710263274380915533934527245077065273383228320137949816909189534737168338781115277361799494268679291998584196635307220816387306008200189298090813560826210288186960154167557409438778546362408025608732280310250936478057133234346404880297687222729009372650417993248872672730080236204252104866865384491118248979325303149268169708280936531657921320162739585457426521200950390370952481952174454888462459606864893812226408908243873801462516703932002505973966892262818309527148548896907977351430245558406018886893598783030502622234675627928570650076583036269281531190878247162538222088703934361737310561590427141609458827740351767163784408063632094104264979451517449510085739015805358971403507592519769554087722105647802473617870910792561875230864376276139264050314007306754017582884774797777934223740833202337563883371079574867705102115843121509521447206683566531708836986006281443836003981850646806602826826818304273244543399485438066085126228980273557141409591867355080713514383512067380956714473232029138254332555259955703830712670339795549770429840809914693398904350852292121224124775305307789724308337802338739033814273708865189199395223223315071352836203649172886350467713848024889856698394356417880733349611934656860930303526490751704934963565709643950037341298349430183568898176772718076059109623840445602513247959895975750182579376078813917832432686173842509878632771144294579239144842100451706811885619363251984715962804360765847216245770515340170052727487182501234392624073705490919911370707670453946752638125008292491338404298937873790341740337626874937242939536205156518592583944085682140880896602504044513568086835995602105089637204401141051241196124845621758629040075852191919798047537923515224161953579635540253082157963715539030617059464327812964097974092890994428042868939780952470769248096045058522431556610221111062600542766709518900708666737583488637227019252835541693542427853854717544778597960634582315691849955622406210191958512143058222209230637511679490421004085681354894945700063652141386074425496940104268967135161267216728352746899184939132178142166125584572629673795091310639967967606943737925163937076715444195210441373504205282828127240040616258465970664350447783169818675043690922731964384732505394556768884161156903413826937308459708018720563992980066517228093447180014955034033489158412128033599395247772790138235713832857479660218138221496573600448469378688543730342288978450309411678853479717089068572373385775837663459382125388380974027455949000947875579364418171563879900338694966215674849381216221683306984611099089302245582250161270284497610226778561853700460197623773280820894434556661034614824928581656556010311255539743951812784511830210734377443505470246295761281174997580253378765574676019559384818226325445613926154376650646414162430981102630817633758751127228108392752916080628881265849106970539869080430279124976994662209961118583222177122476869527141544124430724959349191706500035915776584200635508483451612565864230281441770039016752389524451286741045185776958553395914097331880858395998209682937090847193865207562029408761578242996634614392390187738324256509574587657989779666331679338777167630895492374382604859582193864318728279410641926239188056349400598585990645092235711208708617415001493291383984753539391045323267253324172794002505664161587052398922137641445339055012381836559951219293801706130770081996989726016579629832424226437152233659779389001109212411093094363757947788307386896276352925446222717204681160218670467238086226953159696774255060433214661282612010971122542483815217767198619608048262918130921293138588792915656279125312186577331168386619963451585533831053387732091719144161559924462421417239799764275728121066719315671806844086586267506411992080031373679893165011216275937989671679505166453970310269129025549877314396131742892397666565349065916231772040903356165816932002262991815541264453911074044444893988886741903253780469350358943517057275982624454733496401177349952377445038783408016814689619448760439616236808298483292514878822898240132779490475387379605342562594896864893652837828937982470725871140103362802627868389684443299443998425937206265528304143590667743480224534845202609311979324666138857701033061798869528519380047472303271033945835081405783583371493257064517367248738255872378668532784018402123565952562980590053255620631228495362423589076590675892572027367015184221156269253264855042561608893561826048233283324177371321349077404215154421938470108812896535547472010018433482828076829732246825436233798511725856175802856901856066564067130969092025651756043569602112785402642372835003883477229839730564483599604138999935167504658918393006442324580472331812019189980674143890532096295789113656518703255614572390732042943178650429450525038882777443461027631675112683704651195197664711655771769102546303745888374396366387020400733709079558736676179067351895889886468284703532448105288757675039107539328126445574713703462513617786126720324643286019999787246368280878719513594815511797559646041631712288451360370012136498011864315585769831323273250462283812326131845588705325509989226149211081324597792300514634237037363603059993581751703724871124964115873440197166113720064926342981614144331579044699869835059377104283756805801475396112925509889959972498955529681209910485040579512189764433561160812120178043298629237110336115086779811256985657127779740985278968218143607838152604141227333672909573815592142984925171519156419665858411470261847137951525907002399134449403557965636831923820102047804651857168998490711141695413224775786637129253861801199578463641819589452524565769399376973964832385036658096454566491132425948040180748196433791694766865402907836469366424725188973070471141587975212642104140131436663806310499795707405749758095604125182518254616471959325524228248216184021594495805819528080616844606516453848028821196459459986583831771664557396267399069878558121427818765191404323511373866513042407660970008246403346474330812870391528771117284703472391389115695269434184625009984161831047111993735470099935739577238731592541848142801126454215735278289343593970191904530342484506101381908483028451607001979865605322226157186842901528549262472360493913078450350960151495939035253698602308941087624550162577646291391380173602565576278759226096154273374820788950379017098462079940463331702434779356313360030480895393103156572730007847419198445132919015893573108136624893616593879659286008999871103642692474422842385641123933700120883024180054630774167177344687282229241756098690649684458312737478087966188825908444746683264355346124161414891848562499272486105683674964125605907899185086491048041383312316029321933144256981725562740403904310359946832887744048228061992753412889450990114035947417969999140526281163135478823571709374149366531704223399440513264847290649355778351772591393223761784431945186245358604381450360319486914692416477256406916754992388969141920458103506000240985276686427116886543385428711552919358728016169230319255566737073857986592661097329553464673041312306365988162437537642380271045912778803077788663532922437809703722001068567311913290735411804649866358125682738224241039400067633194112850148192672856976103795388158292957032677577310048718220233568101426881304441247673888585389628982433274219206087020944363197227509439159077847271988655939438300815746668676347264510982343848559290121752574429605899271057508618521456947757973974630605980642031175499004398108399010272032419061636266817486087611922579957653047956246517631770039526239598453557760620425157059297581252819294287530662899369780448163805639486339768299014294745958752788064247874581851428969758307100430429753577464582641205714355971183710945133735489090959861054855071552452297200226728770488858349846961246304106295563786924475108182198549966450773812035044643500457096084151263988729905872130174688511350512904662281866240099577539405804019092038659925627792934811325863721499537158620901449435885292317887732155004367900912663008963449930690366130157512866257694629718251204130695723559425547059499621610417201880030956370533893113443127963988115304237619551401704710756196375616341777406417636802721468510645267390558671560960272415497106246103547555212565313059645003473062224935856960485430816189697090686970758047507270106710225009862259220550790630939406066681506835189824311842862206950153443447012760837197913739940913238186596130792177002941714171831196098714116640353049088271186884026639656385008250912069796520793294934279692854990947987978683746342579731718720110928915121627135766617968165852680844881380829616767607718421836754596311439690564790709595455041125004789165582234789231191126801493375194594382736760137046040787653002200906383144395583698999509841772999992533670836921641842296554414853786338462970741633778363946512488917770103472634273865779023420688513181278080203821976318216945492509879731367401096464497896991286939631901849662482041374721558374809620215619652106071276811694040674449587890005959609982083245571856940087126043990979372858506285688442351179079210409646011550197495821868496271796957031564347939150365761939593988961644295085358626149888201830374206051008633201482829979063065716089743560992221762701628773898536566177677731570543688991643623472519949849701685886349391300502705049101939698622563987193763683776336704476739558901767890816358800572717580444420628408693369685039919798048017530057361681646495128861351889927763228086096205597992433313087397479201303603877048727071694625575424322804503668050213630267558854200919507316417654301831763694108319527801096384549138715457733274077548481926974225065852030651535382392481333689540671365816042529277806404558088102083274150757092566440420332098958270200229600645213762138790955697921539614478953937558492150230097652016793534903907240159517912704839793095929964616450150108504463062231704335311623516149712964443707494206932368849346554328705139244225018800838231098202236004149173429773439331617516284907783215528370928709900349319949043921023025304143868618655692488019752950226230466450319412965809693552387898768909829948360820780069298384752684922942395583549793461523194731982710110314868693016853522981266601413009411980457130463765237962887800312108700065201838519673419266434256952856505738845845989907346177801790039168439744825272381781457339127444976611648734254184329857737600300006228510526232626561743560032540856045127309699023671581165378380356823408183078206929870357267739554601564414223224699316504905154723395893581936654043036827391218751386921222347081542150576349506713451983596418696510857109287322584467888041612129524390843062255663362740706223250634827130320858464095051900607093999136394616991782723567177069125779138451789504325451217007565873896340619676466072146749923691868593294485208724522484194846074244903088110950837062334968064598698933626278826664473307055323316947655162148809733626300272033410297386794432461607716585448835524572056839244663630802523287010603477987809467806095952513425735604070397131231895323834402405659341779067121276073411469024923943599566469731375503107769139714757406422203507563898972343762194484962620623506348334291158222088084634914162748685736082640871485638568807121274482838467301574536985601602890771539651896355034873892505266312031695946062168498413048966136141836738972909979352171427795809606854988690528248803799948330075183631523787220346926904283212895331958775543235891265722791442008650051499426360760770719134169291796275018587286657434601363152604914475181796862756727620154098206005793642292958497593861899567363168335636428298064983084620871272150060113264531015000634342293327785999280290385414299379542063471557343326555271257000931067841007391264003601575035341691134396876501049020465030977513361559587392760668073190132420788078860224823916693260415034090787750943693046956457788827010604749078290079861249356555756627680875052562366596602713425750307771478995898916722790703199841376940615531535172099382777050623383198642354375817713283041027405792127404911900685641308374388486841943812297833663965167545052403326939663385323524712318332829804355690897597667779403507579879343921481265782582050565823471214466888480983087066088432906013927698807824293417788044297029514085093275381574241717548879574160643568582422990631570515918914688671347215763137633952475674067016047797820575611801495664683431979037691854184910357912566681735749815843451733400239743364607149515109031452023841027158646847947941374382865723196355305859355530030603872804147108078317896081793650804672868322903505494703011035567624048314879996419112143540657402041122973352418037244293771922521855974765352479875166976387085020330750356833312980191203440434889975296193283983377216436617499037725993674753843326894084023798686404984350612913280451343903841328676368136793616303293919312921371825698943239517977678966766723530922964744854054378975139693356460370293829152788611521633293487568291587108986204304336653688381434663469565557178146098545588345385543681984454836087970190973120764231607377068288766619892956668629083616170000067683550890900920807343258277159828004825440477867136721115535318507408740511566514147418252751704926685513868430491037978195152856284549511877887674151682564993527045862906986949745504767097820302858225948164269683182580007976100717300457452538199451596600738075838853361601764319853841030864363972777593058766777223740306031667729226556935527863892058738637024960925757935379008298791876983654609761688972606870467498109044131506965831686106262788437517458911269008165674592182460949970854460792265343101273375355133398099186427487754458976494668220845716098328569254454608470231853392492696466381628683287323425757579981795075400070806120617224596288822996023815849938269156886948362628614334456641309106913551809710081427994145873661717353015540606698860192189911253078846324601015355756134610124641617634912850362260830026016740619365323219529688184554317062003587350598486345097837649921004622516260720891049084573844750174990939161683641948297754437476575755594935725103715857614952824084471383542616996031099677528798122159048090971925260835397178349780237256775625099738635260879582233108408253570291819568656985096936112057029620569506624994846884650472520137518062290378798924348268091746102868271453623342434953103319973212094576499055213325114860624672808094665311549362398652030571337896690380556862461163282262102929363103081406227589324883465567902446987061669047971608320398472170951232159102104527906117840771956533002061608018687828896578684895007253550130331555493920644977791242385810993813177031874100360560953951811582060547210190158878554856526211402723668689130127454248238509906482261798884405890544548894566213696210187644066262161993304936682016869519676865728794780641181999320807730503776881060148924278119246289281649801693821839136448219468231280522021451009469850893298696057001871727692642160174076523402211169290402394658417911762780661660444729110434950668711769023466105540376115475430341314010747217663539760760549121931149344461377487087372297584602521018024896191943581981019259872669466636850537354832397242062779812375162806531681388785326033820410654637425432864790546317981543511888826361507974978264397108942551411316863996882696247758378740332223773239909620973347731254923618426217270796211621927027506280627437722979135702244378804378993505285411482679028573560107396834561374636792727773590603410665830783184709811364495684731903580253155161386368475938029892085076880651624236543438549465791190237358490191879816390003670872213213180545394242125093281786023222877890426625293674665839591378217927685431471060280585199562661761851591343745079135190659021480695756236574883711073109319605698922793713475082089683254101112195344260914158662165243459007055665959395824566163562386243424254214440486958449420937408993172302368639438595022115064088159344358228329848528723071348181111040503070569326959701370467861038000102924278530482875252985681376755346637762925408824039927178612183304151012048615141255997288261800653572477676865021790621687488263707168000419038398798499762790494271061733577478193214967881537850292156395446737876436289950209240815766590956461355084512509243240189128020056336009555259928186947094649452388440807328927671264696432368761451907762817474541216216413740462141673782319141473859286654737805244582790170693217706705593142597136401078323314453862323260134187842626686087680798686423098786442128199782044349323078656739602665394514043604708820676701713913903173764848223557148369402907761394445179438800384399562909750003156348516589824651043266986662205912553327780108642014059412936702641794114554083609515524312891030247332386312720141754205373009523784254465055461988075084936169831948057484464435750465552230724228854133787843091544701339296333778217574934122017483096992268173422085838655775040648443430221845508704642115088555637551270882617109401796577964063324397677100750240156259161953985261286589545362320441987082527587386869093814069177432443444659236726254684059669302773385052424095279978974058285460538423733361880967389397416994193677941189891900732662628314994597319605166762067987445844467963991791130962548151617392490092989276753360993875725321250912788179725184162232974399103085097356103937628173191902331669585453362052127983680231501571344379395970996992090338609773151472490567874724577337521045596528960694706495050848287332680123832996151456818698931470012828354747447710664725917889763470957595416623820103184614321450557149531469022419219147346224114144219132561830422140125451101466373491008907097446117337021461006681523532454641342239352642921323883696139499504837552036197399097952668929159088347938912212564916547449542772084769544773642603338775325887686003356655331431870482363575513381068821403810130659585617285555561217422841684372431944027558211819545066255684051823174322094837689632685370941484622668640066412670692153565706048640471791428183604933841935975407581685607440019365961174939516451229515801971494571593723806778329007324074799576442474666354267523771539578612473512540008326387290728737781127387650857596837967866786269272047498891486585312566540916513699172873127790106166413442118440129904082267754159035034870021152954648659047551570467805125966604450700436471580239777309033125766707959553480261256506860291084941862256920240311598994953828676081964044363181453791316034781913598857995367316411011105900005065643615775914644838230291810965776884900006867006636777533077821488073845496240925506569682431899073509390046901723045496536625330898622953294648338156927395627391011428868446331126830801397064679835109671054224394737144440476873455443438242847302662896283102710376306216741362088373585808335547771279737363494557303944281979914934287614599148135177746191450224563583161963710235250348720069140917274752611634510918444905021107977192296912551226951472101627770875739080401401109418730418372780601902667875908034141677469844379124328555320940372264956217212919527514553521624361530091050152856683272972388863950534657829586068565727318611383825315291288830188988943830573008215121934002758690033593781464192896025279880689153194386774805947963977076805352029177518779612391121082974829470260826829705395621491351660222998819219540408275966535308588734685108567492969026881114642329266063069112294904115641755319861014195376108110529173099621223845331208078856907484698630280276970690360679169426547840294820250775463229425704593661331491458895650783214952790693096869987832063792094736574440038924442569269551729672114209946202687991951353685620753098204543069684094321406285407253277665441858438495327048968031227314845994751357123528156100879341010661632968716496142546010323259845510360408784834135723522125702946101725340821258636781967521072346477834615715247731340629480357485365688994028672233385668036867071956021544470983373462976450646558247022385827151142570058569749957269329646850383108308066614246283169093906259497320817099655701402161538691979530329110928003282497080052850936987222560653774849321602525663223249059356610746841559874352318403354854519640778509373432725347626616809374365062740408339312934835229634785317712607065931123841336634431800955063090207320593233012955865654829894192676739243118442739051257139620133541359640860488796430946905256598165150049380870741789064028807187841802010542590405269680240744627266028770952020085931237172663976643701264985291432418656654358713473907658873745626425178787081752579614901680522119000129984764752184309034751916815386255570413441959214671092643039214379353273220368892449651034308151830728038503348065069132380830577162798436396733910048932314856828362636623087488787360654243282309725558815941709305168574865893902632499107174558778412228127238335113593356210885639144458630699808602849609902537151022098158926137163718410616051635193494530736249861496674050061734827986131568189221240763272979981199748647813850414628899253211661876665649788814248958853879017092919896013500135131717019756376917434348760031193849909562681209484940402250912914278216550705879320256998423904409160516170620942886360739419778773453365988978988752713020999399016964629526000311733661084954279168825118097170722945651705655812224261602439877657666914987559999799473706213117089207462461526793807856171295788552548716051271007062208476358520744583285055244661160576478921403739632544546548305500799982407380856722704114125605439910855651065884339115456650381422430267159279193805250834875377974511941764758972486591453753258601180527655922112147188002366624085974942270058329907191128978583342609667532971392520308911864519083820573194762994843058234270732742727761391347234249961709792186761669305415084961157167876642517035922442745977389874083105121438292683706531456919735210003825185366236323919804305177934787160649687151050850271188692887034944884580655559433704747456830251138946863610343898526070302158284555956833065868071325761400654623895515378775051821089052517552900391242112909353567183890983440832841710209169367452801798351551263289746630582465858693594911577156253659459401524474230510568019152356360938492534139703403186328094446972032820010218454763729443196595784410897303799904167888156949726305627375768037295709172639465014582163355486406556731948703084847421837440413991406057758289001426306333964691224444619649647547325976307409750106336252863732338218380125151823675053224982934289998404966148950085425042484315067751628634032924960942364426666727977019318460590973014583439250043128913945062806772165779196801608277933772886443411380091553275636710049185311670799272058157853516965957227178362445950644878709666113979584945574993863380126766925157078781941631202968679368400627467901433053791767964920891205630495437715274727430907042344794667816951873125075529007683731995370016095011396406930505104134195879374017508553601464084553345261206619276632311136723931119327393399777503649706390667760883603436725051426240448366777196563255553293289580230824795876992624054999311712284939686045330042785376689156601024134909500577177206912964638483901065096627979646166736785826167525058536724682410749564473410344682782113319859574717175042958159342840327371990440821611373001537591353313848280290274643718190383940793183350830711724307009638355271937183048979391277466836031086662460775983211945542281636139904247483043546030365592103660260577402193366001465964285540600481836156884578490611815399307777292128705809798981177971565750240077515039150065820234229692503617223753974131443285260298406414225378942070274194214779320639364596629489603443804549635374333068444509225310166565018946318117500370709985739353449393542084187927229777433734638649317338203218723138074351339277038498616068731908896830387121395671827071532585479770122829245494898507451829592643607025590327357863268862056004614908273029364057038691550351312150819143594874056008100354436821298428026282797912326494595333632860272789623351155450298290865743978606439707356414167781623761379755535791744382739228059318322717932067408331358426406977775110565233722263064952235919156793727626682495589446050433776154559687074436329276254523568550102403211651647493770366157111681160015885408569445114642457230303866166593485636090543299623813147619216437364514725143397957804496223290943201508557564745992262446463145755322475664474550716465148560509969208409913363803772903787467465628155474228093362828222815308493669261532356416155394858668814247903562304090707357122380913556020811933966801336467331113893232120680914738696556994966060792499097540474076213800908698693811245010542421216154852335308540930162541189620735372676364734673710650357753240963181733206078975970855891310004212462358295980431686241446768230711945188259651780433572105092240805961927275564673345096632099480526511836355352227280388176471656131772105599824626732823624009857986650832835794442053715328600834972841039292503304542911403145193649252261765338156514629062805892906100017846317239039829989812617518491282417187324394774655749351527769246001128638888833675011132387378609121124757285687660684185009816461415501219634554057756638049726282123631356962672348522959252329800328652427274865061272187840943746314915571681910511697487483862640628954611324637950914227851548881948467054994240547363204687833435602825922516028561287203014430337283411292751602851387466622988163366399587513917376149701078153683614320305607128204714697243586874275523440109451789124156362372404606662795361462522803464901216668871061592943137367113790133666578700240223462772511754941666674505913241219915623414870061453757742078886104676222276319109332452312249212764895078843620660841554114757873921725464904955696572875007898696341059654882304751445526244703268642636643784161204667786789753899900693934319036464760343317784461129875670178703023192410174801735994668117339735117980268488076068238758109260268178991421781664465922093059303632739813514049094952085717092999315764424644518000676878696246483848801839526933631478069685922109304563385529314767145812137299109175405070911195738708871674153866307022088413935323674053240252160291981648456902815969891089928871335157703668243442987378430864440606527061901980005670878872742053768393599106281029483384618586449332119971400452669094333779838520655256088503094884913766990071499632449445859147123273933694092175857094870296881905827681816133322061742327575092056626996434487244331984256763959676934583863383945271809602156835132775356148653425533410724689677848032090304176014100615724318655016719032879364938069866003469217545395879252166376853459108950479524885146192672580074730447133327618025654674330770144762821388373305768525609977791593618314862782506306448196218041916176591311696848361178465494633185150585491677758948358042412158921125692094855225803937424825430908812491184264777451201060029671907698253976327497065031711709552629161674502497173896739324341129222662485387577619483754069499648170925584607775501619095882243365924267885841423410106335041086830298413456328981968078164973703383329231956130694232227683921044285914464442640926351881816291748054181596195160297209215733483835911058508619808214465968645153393222221983498865062015009129521174008992337678204354613896721297342604016718822329006972824733806093467330479450660474971902892104943162946471443329905775163946213808073394383997983996501740059799890513408025977703648848368754754481662546757599956227564583773095460857590833517205640198317309900563933311211291035535696626839188803925560923084964595454109050462633825417579232835383695106075198682773110681527297117347754270083959001785720863274260305880929950761180839562473442790810963279406800222664512902312337518718643322873791953178001461117384345085431862940277061764187355229644815731150187735326732915835939273008323965953710120414780511750095468126268623602923259264857036801741447838579504362124631318708371191562652711118927278178807884196053887090309857863995910213151809593858214054366117326687021419191465471312491033856910569303985840371523256346901175425682702391610453739392140463045544734506617039017857479255268199404571729293905084202823319338456039063581824518556208445579562775510635830507531873720230748155104423774156825893688679451048643173894300296263131556995296257722014842930261230520728035918559017003547366008193266334256261200989024318407707385618916592116638973013869094870647820350762265052187737752974422295274388524482814466017632220615615808929701938229976696536315785253103894783890068744281705822416335979297892679779344640766485942868563073218054619634676921228133919521488582185844145096362501684979805385205518288203407460666665127665912699464818784712709970474390220075564032303429270972450727949662926360006602914156179567531668342953960130142138026029625104479197829725218552172643699590759186523159090409735377591505388471501489474679101145724539236562951223028210543617087625924043510344803552676742587532319577756803289030533490891526379755022995733192684174929940643199193850081006920031131022424011006003156542486059524675463470129052368465746594994667961789393964077010675610127582185816229803840017002184811165647479308655979526689499205725569386865284081588153063527865081055160284127573330808587316595502605115171867439281088838538633522440891445059646394953491829031429694090862093389418973260664019229010375994242786404962506508687048737712995024573656338558065879588204490481645910616428761932823870017671487961983234908565918711903990234993875832915108284872415190419028667159774005111428461178580790973295665745381776222496015579368906481280830984805649494323900649049132215482457359655880496803221615609541359182998928799513650309913145513042706439770252140261311751172692240265548313643626291266345615181574090592197310497692283517966069534309202582132884637006025280403373799618757907317661004113494140305671729722999050965256810737712739716289303937319541005158173534003200929256366589332707760497008633370291932125754799829720405258998270470010997827942168770652642022648211720907733882157372685844119104903784166395805634634859171682406394924551192180060647999453246953413112029184266058891876023114485317975812057184864515121273823084563926816235517279766567694263263054896757678295236251996432027085474000886305445999850357608159670924147496820061071725809811266758274518176199465532753022305031522176668790227541860616279471965872213472855066787446785010073967291619200754823306013198320837688440870930024626103995228686257458348409258283646868951254567220435605278977416327761197620804970833094343784858347524645563130115750383070448137469575834729065092462491330504741275615224745512351620264845793084473453127658393936852267325394974197949811669401006463622368537264708106412912410327778152099316563422726340713839738694378003348834319815100526612982695786657654148777608164362591104347213012799509547215466430207258468343631117855672484000400848793024888296502194298222609409380385128415604635101142639173564896866581997881884134458793520669964936306660971244043725391808348871765354043633066868536309899114267118743996045762839728531423212732965627238145946381692254419171703314748008539450407265381677312498334452825998192980204346804323937515392522312672925634286143151971391631949825164473403416365337122817539500243813482568669539200036213420360691599751744287335171733540471384744485370611319074843896424536623416305668080033035079917646131996105471377519911690396871930255667211516960187470108187703143749414609157164930618914791336035580540732758487661381844181533612273615423242062747917391339881513268161751309642429634036664747901903903038410782014080211778434340263876729123395771493310992774427858016464285894219257610095186840028241256189151289765725079640780371579531909356919116114654511825271538718678921271192941460561362637736316653141472104058067365236624673472291323670038449458616486791889900020499993802432321821490360880014029773935203929940256384486552615795135361126963497335402262031538042917572526865179448548561534130892581743737128733703801780563177169761073146256657646756735512925362179562022596895206276892921310572957676595611978166967052294325034809984011309990582706820905358293932934782120383865800896532824459525726004595593569597195415264684063661346389101688793692061278599902769931906961574977943228050675039355099645336238919640721015472744135299841383055328222922445857891890962865380882762414210057329318893441527272240548568906183630353037381738060455988387742797071960671810226260526828519503732746378478107967289917622067748885779235149756020105569436033786741938545241169800267517258723366678397797935871179818741024345929535183505481610093335785106950581752961802890822239776961835917267129853852365673725262076127435674189003519955242726042611398165226654589448451419580973830640573006037735768713436633839640974788378588795235313876711540785285257195307607608095731549533410824730580686729539476015930171005841577054823397729047004380522712375824105905929493836267459018973394409738228026682253858100527593605164079888017419767123044705554699116541601785098925658589706353314880746933485775231792442838816073139962337236505977897892211552373918188623542793152312452275696175743974341029700149432557414616884482010667624415307393309536216360436173126346471537179158395057514538927864405024525731375846939263651868294299918742922171040037337257974216281148434904244935515102998135346115507810214299161094125148820111183117647832838844516042203869956783846520454228558574065686849088946447453391711232469484384084169921159807771643675806950030024778010812383554560091380408318102658070114126510249745727279117457005213117146264224326537449994258419025188048399004583059629331789780191283954643243166474066346196809980762773613096693582946432448541420703985445661158551634032611403899663003480468694539678775275027581917685978094269955263629583945471920516725443585883563604960799018471387228880170037861608514345682087110735004334221679978192193088738266852637142229652351077289400584071864385702852476836020101879112233877349513186022699260400369654143689737114942403750720103735822608176415148314849000879344560847773458156287954698493077483085117926430368894676950814912219759449830117694664497794064023600295172190574084505489361556452816396963528315714020203054993983922938687417210255889828993183556332713883603729701652695714457817788967553657264295295382050569180243526169079462123485216520154100933722457942251335146549462529775700123077188647059128245229958352054389409305337412511766506212256999080985224186087699748559467648395214705718962161459360083450600608762865002200475992312686137923738668227569211809303630102161942336163302178975717117838998994022438771619741806593438827360006026570881314524183662445407235975612412038860604496171688574726331977201551124169317251604042730125243033668937717244437312538382577326948704743173029018170960573922300752964090729714071773837204158158608401575175572988899668960308679722138953853192552552236334432274375455383901819749528617565117486088997846569435678748811206616304566936711019391028283897375424951068228184221417419185357117205187883006911724005865254599225427639747500959171546462895829933138336587212930959480968471727685129829329228678673934601609895814178467517332343827125110833581048166171397893100106147997275410344331950945054189109770252397233467140742572559582901379478503999708892192284133822501526320300195213885513254070745980069295503909025868838933158616709447072073424178704488024282533406742243210427541679380796830097409111438718014238705587361894733905836156402934386693607086421433875500154160538492597053556358447280292149157259709605535167413938979959222626250804704945174322971189879934674863729800908167661095610682266208720217163153182279415677167968812442652652174537486301840772188256596120226059882054795391178580172105100032347889740399273265512734324550098687854489363428375598020938549545084144074869201719363718625408762025026822523712956498028793044238483520020178220060484757793727686820653873114027249102737426908840940007710894112799229768560690737550395618848526213976527795483935352372786285842529923981735154661808296347351835060436193986793578743024538075230343883539883312255177423017693312557305106497797385269857485337480288016388847581547747829105277722155725641282182598372127963830460620815652521126820605516775241467918351627855582201018498809302669667904530835853804859020347235780840156293274593053225087565784315378527293942716699497825662392058957795251305710720418462428556994277543895736590791250013919646062339251318298758547389572944396814166975732290268970290576719645135601822665160869827458864053074455602068315157180275761795532150148948991168899945452482308359077740080897933256038261238378331411724526951304164321125482318732408563693299801343468065122056674438380317605782078062896503522325115968215436086725485530180791577335201816266102388392713760596298464216089057056772444431150765986350338770670725415207190388240917143966788170801073632390600911687922604650293572471876844862328816397810282675026314780151898636026383395521498661444276203164515805198660425292179108447226068538787362929485910786904966097532442483584053493116406980004752218332309922475963655685078775116358447138013985928913146541059289657946329637582281459973235038610331006101120425064090471273689488116433498791234703790279217178285503837529033839656785435447531540841124757383527329669618695267667951387283409337587352502177006678889536770536341925183921320450434861059653458866687788295975989420021337485919568389040753854953879617889364055714443659533173307069495541533532034907068879856366648133255086083280284119041198518154716407124127684928205111962394275800218282706637026666488400893691577151060560134117570925771963143406599457549276765116407196169897684457865100435926292452190911784355448580649955958273925578224327752280567322857691045460516455544328108686330288005602374146066371702534112133141784648884532881782123896391620761306777543943570107310473525743043671766441048588626109080356868598927766961540070985998541994526747926771508954400088913492087628356291879206807436399514107359587302629249669585185908869983625625367351415911284058635769724783095797204248692155535782456781740299795681874643227674533028822149468952433258795197002007004182967476733179166646447693487576757459368683956445184682901333207746426638923576737255931612509149010228916604492710330449199984585380775423006990256371342196926016346349481691991868400334013936035191078118495086955375266812448472110540572510510179654773208007645806119541136657268051181487984624179812697399538045661446585326558970740388224964901222538410727630632890242216651075797000502646775705280970888929834243272033696853029994418383645204393834043264340280303649280014300411697496292248951911031346087239315898859189850157482810774956333076331296007776588814214479231265847365167481951526679542860701988641363266389112840465862663462578371439226168817294376761550246089475756375834416049766808680290774657643530410222030569046182105933098459627939840846353573583006210764357351323634814338459905170732702684518036463862469637031127204102852456417351400313790786140724546465689621652686079561992956598461358665632249252476641075684688652243721510400009684867386307293999298031502208044721065366072855655312307152605126841557943367990767424791847497685955706640566540809286915939307250648980716047117779306839914026650633763520887812908577007202432055902209198021262287893150768151685760854513229482323117557104739678162151103864003263417216499018618085179816917284495701581776300602122401585427382028658320756652610040928203088658189188197101053163048159574213512407006632036980320463444675525069003735162425960230300533597028442857151651437864170931983407837198721050027837277188264658756251615989696172163442326035069265768259695038287386184762199090944036267286635460767806345402478948799412449631459408073392138875941436374001636071900167109967711503259431936157490778478004950730184333243959516869863156913388527640219776164543426586096875044019323377186065117071321352763528699670599620553210205007564202979093729302231508141999430111027897698359245743389111668428641707316303194798825856326609775058165342258743988701175664515091745964024769999567036523909439658945760302789030309389735661634771417569272681636391461688325600368576513787010695587896272962015134223636330425424864283096200459074947345430704858704503646366404130385567013979617176140982641756320607966341731119228645295824045565208949891011304515391628637156932113571764205372219377165251705085768669544882131745078097295923197965178173020020387920679014059556701234237331671695430174503799792834656561056572515956711696152169692621380129805967167838017429650322181162655624722336782309211305055105821424907592656630001952886506157883906650232176995647772092493068679840995754487975779427203355102097133578077402750390813387420692737475272322009357180309826521517940352308967163655621985988556184458131797753145268598824259201771871420156507581990964719394699950505424149452098709181906395077230116469244084165693060749913942963142738447870099680658714552179656195654218750336075863546528228114460079968411869627503234025893043881884186614298828871123254364456879365765892527172401515018443855631064845609331144792168812000511397028927898319231925749489333957352189206712740470298646688700449272335729167028426278747072159157724328382164798564627574624843170080069175779227004336331520645158516780354433315113466492906090427741323392194121616256904180767635585721178446970433173058537617716832608522863068868000132981860925112142894274185971565075360032727763241030863319203371796345357687222792976829959622251787497043456262530159901607003321861709818576815156606825060392269655342006974261293650810173311813125653136657435626150659916052136026792520797186222535567738470032276804285790457329851839759984539215002814713069974935547672763679333209914663282593242139281041328327020244848219846569754236643025410743670677054726654785950049923853499464512644181760878440810702837719787195643628632934026342173351282574911764103647706665472464102285724365721484558486407205433344742726283020139013461204456375061208760369929378340125022975095925945567444829450612660644208906584033508195607857932995020644705372765437956422089595467859470059050945124504301064024474363150956384331362147728370899350359310952489142356292063209002480589675543239972855351381076089867052932486308903240592645153864589235151262834220257052117743724141633440733919771369059750568245998272951277460807814477485389822181880186022248163440143116755125777708053498909478667830907759415123686295443955842371617994149791599925248861170965908592345125306604587673292457252371879003679868429565165600093106825815364076318436763488438758711809391393043533178022454092880855869184495147710568153327486850395625328547888732265534060888216494945008209354814672966234546853041757793410799736855371530084710787764384995344737896970794443531070190493099820255633688814021328028260699248183984919648043877669935578739552664669411760923949728921931789748581684599353502769582491810945382384492373658063373492135006371779833912569228169117564784140485958666842097415334787812695930131581048226503754115449230980731567440076745990111395261429552114932285567439802359700540165634829624155424978054888652044301034597577695400858856917385614535113415556812527429882337770816873475866893450072142843542623257026469229124481017456075317955483733143755892362167654660914983028960136547661277538629896413486013617920096686077117847081478135183592450724406407659639242223661204826068168986207126100350984129133076860993349894695406306643340198803885891434927622032782400463716336735361306114555009690890980703133988356302185933295286198518040177410920163834154719097786424109085173942789552403472504666372122033523196215243458338364653834667895086148438864852407314286952158010900188457993277847721931838894867932379818856122197223430046752269289726507608459696197881092038966709554417080773487955450050589972079585733704324046284817486069015031239690152667081522702322694308765427470101476883603109747019293732519186550155290902117303950595427118603237456324406754038332452545942204225520847728678259221167662813148008480499524375056662164944493062887537091686989201155430439417166544977545988709433518601555858845658632039376519697426257100215317394011070680400815419588802709469757706945373323709841627878653164476293383669409247415679100837852736409062790161490341458830822337249299547879465807478522345584292300657575021343715994212780861394456484698157622897379687471486540766100895771595912896366741505855990371903188128586511832916194429020481509549700260992424991864247331907142999376063021841969688510791256623400833298663100650034184044212662166277249297833784422048977730267059870324549071175680031218288440091505948585808403091962615581679441531895191742881538398713097544061770224381292489425066276707733905270261411720481730059094105147059133722982607777033335711810683765108213149096725190639573152604358646185261745308802512630054257926241388759311863164934326999662149650106593219372908828984248762984673545421909733373587282796644899772811180356893391807486233113035677110709704318850458051210337571745135923490781839314577908554807219507409101243965842041800068964583722032953578154143429874017622883220711803858011045339122413478424826386318925841824228026122711778265463256240680633337354930235789566570439200018891502114933209274793881025186222889739874696876026939243147519449416014838145223300349061066963286158826155907817880311220491836833690406639849993710632365026218748253788601448990332809276456244666235319797875853930939739529166121289741099274286850572653857263045435552898576157578503156481920782207161900792298907187065030398001846395333593047422373677908783034101165727273909163115731161826848658477415427945947182698538664817122306291535973193080375708802630632540326319671668471905704275062773087406120759205323454479482073168401681728828495619859030596005701507726816106783427720536994803242881261601220722089428426307500809293226062038319787576938877876521013378167538928395071134580577445247873592087279037944514122788867896438516002982974154776169914267699446853673184420184865696870214515131532691760407538469979180658211323758386836788741018294626849125156963888140582884907287484063341009159153275823853213440933351503844427674321588859560261856829312568350396016067718833504764223592585858978684007716799062348427268208981659233756937928501754299126542374488378037710638778140867305650419049994753111866090260707604321249512948759637888803985808566034074351507975486012752022792357841566888466006152083304255603249953178010553932094193120954211458181857720189558684611705132255067090876611028585778888965765741717671963072060805712925286367544596281222348583263521155304304062550314026936758468913503487881928172734295482499329232860661377433166949735727241582597764122379247784642915090727942440953633780271378673539944258398708456259721130407020474842847182588383329954071371730634668790411979884909705553683829264380374443477072761706131193003374601888069560175156111172686409454275550166312088512139402024029468227337336378515911318670537274257975993781409685708944598401209182419677332246798192456832438400211506873506392275640575275391339469566576296820113389275973939904417620371760434246439613683823972821421425658088672148698324281767145961261751583849919640781840583268912449593911833811852874822479379696717670939334685576378074635306568985842044585372504630383444930553705147043310094375819935493927251715208324192779122466518321069349062405863935129439514281537208583679644898636846013699260388655752398715214470326573154511572868320489181167846150739439594288622473976169982975131524005104238197422383679807232062553618529870404610895714012507980513796614510694549862928699432977203731739729750354129351987126878683655058911151894679344746652152167627927369066622315744099008326994460692448258845733758226453856826131604655619891570327215174992839118040704819507168794818453297934565995982350015598661910214602674343588374008068132436724650280918726078613066217694994337233052557893400584047162760746374449163739801717238032100477107382476425984585512487325923890815066903159805434700515520293646491350017302344706548002877236661596994520324227593890006680593949814464259760073120444025622997556445823549685711807645079907916783114407125163701331181037625666789348190902864169620546752978312316506100189360548311918418918814712490486978605108100903218064824102404115983322130942297603781016142646424795820915288986514054550858281099221873806242552902709158736646832426961691358552348381114801838302557266751724433922403280842030559842498115568046877900233349980235784857924284133154766445134061618283803832628926300368302541420300966160961380360628133636445951694460485969269927510412241529536119817538052635133839873060866441107178552627855143771300952583448052640391711903096725896159127979120110995692932040627461678426047581492836820160725981986437221675241837950264884916307335542023572527962138694664931769904569105432282009210850314756181165480323292058844204330246542837883984463414647085507962746100692289301345620073067017861874628172167011300804460543869981726154523710142485194064236508374853865309919378164735668103056829587606176599461438726817019901405213613598619048284562609677202811429440829091875956891835907039269408841262158859533781615855713078475115270830269447293463369019216636033831346239932475815312478458224851192293095246914315271674741592804284369133956807217314264023919901312512143019538775934989600025270862292037463791967018780212605446265004241836491331081076533430695201197455117129573089803279264195981009907289752751037364869630353763115414792227619209503245532422352716511785426870628377672134191183155840217075783471516274209733175458835187219616696708632943424292088782374357488493683435880220464944895614888942077480968239449717520015192265928564553312751194986939128577094991181062761731464188597390133100684771673891426439875551939814818169267702465737207287250824188294094894324854006322892698114450173410091907599708948162409123968278676907521350391783959301636209660888396756616677337619787543505934927759012260805783686213912828832626488960529820357083971463973348972872965919646300978198284162087284033754572303642896271782271288627629460085665278584939015389879301547320094391499748921824149911582419081130671696524205765642825826257332644512450357657787050474038545441675845005398197365966912317765525116513411621615628074997251729583338216652324671616013069925309874391969578066851931515379874448657206407846798648782758957484152460626268462074029161815215352427485636491942944420717904633838006012402628875033222195844050770203101932315373910965483528986494892303585154028429599530439101443460116751968964657844071450357193788877653224209090398053271577171356997386695756096920863579451175606800234626389944804960262148665261915715272846641597428003885656410960661175849982816542556371780857223083167545764984886909311174808942526393032328557284696613132214440113431303256664009362536277450365394733324585015960020478244806453012344704491896803202611299380980413904127711812391271252111111662803170087485077265950348761854106274413624332054766791865891876734272650487074144206353253940502334652076161026596213383689903597776905370799130773258391760850604729936251546417151295530198727867528658084435131635427936793166985023287826442799266908214620080065719980341650074077118893414561338990580507301991252310968345030710244071209387839460691596810374823766549476364714129003952881365057556428433216826068090150124063267862824059080196491977830311905049801969227655721013064866563722059987666596700495795287156070929235737273496921363691341454206627864803555159238392861977090200749966229290811656773751924034994897515084148295336070300368926772233592853085279993429301685207834254279592315668139701284660741094526933351435277061966250472623666344604019548399084521876151508842227592004919847215375228598452774076185145808676229964994511431102314278759549633263586078619755956181654062334359180158770422619988701011913257715263823181305223832796542027543779893245084588439705888476721106731199343262769778124657744290901744149531165944800694726173117885759366490866693764795318072939239029581099944844843093297189612281247165229906082062723084752590616427131329485993375914472694623462149848105256204277802282304985886187201719619610477236432578584172206008488097820262854568721496034416744826650823301886915728709404909261128140597899340919929977841342727348177539303440103912342528602782754728419329313719591157404799412211303995362182372305948165772941772431807733075193441085310024623245470730831344164357873750890487254302430741557388914004785548108154873430828625687115355447683884538474172674923857428007948187447139080348173590707149948664109624683866268655319811077956466724992923123076357661950586308641872644297831986794576134089689161553866138791640402217561566448272191083678347869883864855762334834015024314045393248148427288929011474402533519778751572536914108743574634620473604316512654320612083925852689539803130104537650516568919642584814255582554862607232659643493383414697865216212270106293795630477446786289331848575713226677857816378633555498509036858238069709119792999112880322148686769111436813532488088489211257861643216646427830855232793224544240786856911666898894624054046966319009562205718034981578364733002874639888445302526362404963860222455239120345213854995846428355637105730053600622312946595082421696496137619139375486286686519593526729500334254831412682339719539294259200804325264943366928168420670013832744679223020079552165048006452100283586518741797456508248712438554092755817947789212570105976321734949086044497112626933167337854829891750909304250952281210748603254480363002294945211890106744663507027666056174094672601786741853499104198201303092705990803665079889783384864967577033771833751744708480721978380242322518155718845393983360521477132180677104155092666373762101401466435523045506807367267526045855247642088032364465055547898729563425790230996554868196017029864419719646487895817555393944422989760584671548004546364657806365976809870106126252753745817438914255016374523249806579087918977264251034866193155890161554653075095344705426862436674156398551871920918151632800497124296725088929430173614525244422341442966090988408744606482298209197406531909798563868332499743006159434594898987045864519087568297935858339378009001772268442536472417150659989192351233662570101742350210733541813542474616899012764479285555122482026195222841039528081702190445798096019169863762770385737400048911540505623733407919117301400332261172331407795530036147497064592803550728056294962255029064540535817095785525946507187537165964646676539974966392355573126217229341989449853313024967458932075944982597290765003672539726854679190328150486582612763191569665421405883703703217456384718138491518897658276865494309650985196641626925752034338816251138866542403815579103914235207543531833970571580969288145515121547287410523762450800041105809793536302558119344131090370493714226631354634621280447188739802446480027016012598054553249169220494272807495412561590886971379278905452549280273822112834052606465356320237621626000028712536286616533821080629472375871276447354306335712627035230484559155974906772753040143439470841706591595476905532847359723087086525510894984763425485788674293400858756432049469768189529735349296640327053081236566077933156417660471623656879609046781286331613187642778046747831138526480671807063250848782478909837007140378599734839522250015248450562048029327417293577071281820282701995540291228415576580371888527635879146019810195621561486305704562264985356363242937642316358739845971862608670164462208792020808511262970356242315950317023745540069825982314050006444210163415318972860548403430030006249516879553285611563408672826186651671281659764655372457563001538939113777305828624897423887093937338230444685991405139414117245661636459213382256680171224315550209156607980832833615238372853411943749286913923184175888280760184972528917639162616892638109683878817888697707919127066808960752917895485276905334401732066236877122507728126882468187819692439349484281751455292339906555501485824849102884201897494071816088764672210556338852192391666982414050208978111483899752350560799110382621021394528181857813635579547515378348510127563872413168061504192300998579725786622236174258729496130114683094184755954768882216456294114767612296988849596783416883341530678916139675946265308111909739851597288972966725044236565541865141213157106434231898547694205059616094875779587368060892891793965099688204014284371775485890867181726688456621821060406694363295180691381930576535997714571473619510512237332526795895345984359985737030775946644304783572353014788783362465084405512439912830917515144474190005511380777599270556206464647316558235424334389728098921844660845220076361586452227541102474173441112095805540604876262669670414166420954928853006317366165617372160429904301729499579363116484425406183455972616441739406949098485402789431643200038826254884639994202376881403715160977922129941774450090660718838985552229746573425612565649949138939600777015896996488816453977930379616859050147434654288235774420218072593237680326640394711521571100382437227432868204365036474329499650257396182487649106925313611380885934967983076142846831665901607828221659915767257925214092695025601597708072877238451416821419910153737968580394351915350495228972663989870189004354758109078588140326979384061902475073171059126396703546446861658525542498665664895549388542733539607183257517358075758583138689593655097936165258679765237413789146666984083825053323520818675247369672378455868511718044607266672825030280590939844974783059453855246052194569553384091954608158522921598768410827888151552909055613223887922092611170568182785594141191833190572068708215381735630166411945734284545437764483905857383756480787297787577038353567265887495360647094210445047207396984129512157101031219375118363483924474312239328089213498110289410039132708038364743410321651431182361435042240712706221701006332241935068816007260216954028848486356899181159602578138028043722734249052246897569211069036230700890158293503209887517059868957171893749058688578956078408497034597855996416222554544860769964944885385608378687550372268566952034524095343161208251143444994652929285302818005639030897386065986232209400346195730141696236453931605496077406730952781958807873616962321014284828535946393552221394271513531024007421855586385665462480907817870903457447202248742152336064564558028127928023109513836444734821862567841457694795598095119989475825328408758325828372432491555773011960713268292856390509211571636351257558323239743031903395380467117610481427673000492935123919737372526091997448105248777066892624213130907151956519471076030084073821912418786948890083462740777911622722352916289693725786206567656940127509682917530911738337819023955641768463249775959176010053475544993295085513011121899463381850245470738800715750905653238648380999775928135680430002185835999306709717389394948363060697341101631832236658010765467225363325468983291925732453823349357498849863177889121730284236649287004964677933610308571856179395276290957658272551750954244551021545436895858343410967822470944907369112274366692117657461698924631791653489281808182202757985693848399154218056480845843878458473474742448635060521713273305078319211401089194595373984221792715319204073098688282285183128972662452021309336916268416494583437190850425035474085500268103102154000384332530179038895289691402347498819746626731868878968406008931283896320719207416175531832215851902450115174110755072242920194766724285154031901754661221074126466394369254686613286256888677625651381900908569587155804317862578829194160081776769868780637850880926006458469247264796312276567328967490730518546752295343363557688267909773217488318907002928419651347044394770347365773631843212199224264542479124662132237529753863192999422172780723021779275654543555295496352278542273871838349660532532316846444682065599844520562652490038797778618728075132844791095078282847753908044032988446158001092189307176074533835399832751312572369503344021787352732154828243174750196255495625888948830364626831413089663120684277271154308628106748819254602855027750650554806890746528092271616570018549951606217561279397360659759018676075012944068238412808087327511978777155984444720648217748396742950412759402847849392673166737248662803806080328981195309905114397792955665625983564551898943078328871060355771043061428491003556237780089827020575497434843829736349353991535852686828590974396075954516788979458837642939029878090262032426618329360947891663143433653063834868963198583858587002575302962876343351930410553692036008350086302037394242123037983065880472596600902037553927120827709311856284166374053475299251868417638748778810576329060308369334894274717613388353275996803488385627256550822601886651536366499169042181254060359358251697478794891563703241714904198552764725890124962807209858117809605228544645525316052982888925595965876174765771897255904155071892072275848551517702247279501845531473921109747471277976569333820198717805765294294746948516840819468635042840402944844162760859700520894094552536075318524883258957919245769955217987907544489174128187631642242271177867871113483901997290808789349325844198934755107749182113393176717250050036425932149587754264389588845639142995183146784022034236487180874703420718209553587684215121405312293344859583158727991026284114791579706980315106512124417393005399278266952731831162778828602973514017685500204883596671237052264037861942448539746956726433998967195399108722629149684822081665207740083861179902991749297441724078617744143023197377036520063611676595746566368415447981336313610175299715421340186814171855285208310103208879002227518575834120042520938668184855084283964610277329078006173146838851780514119528980219716920197900774923582929960235043486291797982174588199364922099387033090408491358513267127039570562499707232656672657154866234075649469107289042062039846202644072116980850334939500882649400404841303124306883500981317739007029433267301473811018751391234339032064406662521303742753335658904507652031008072224861610180213113933401168469221752730148477824799554273659931588519634527885548280357309705505287976667760873245802242634088017527287993811690916586949519603475314114560493721245264408465921533008011692970916513065358251886658589592315245124305713768278956426919782736878422770633845336754189520926346301803988455832874659881967425911924183024769454742522823557535543604493947668767618643666845237391505027850542830224071655654602251613512953079741274356653285030529572018610724108961274706741935800343630438616653243329433604423841586318300598820116057908303828298092630476050560209276109140613672797313727317174436285369112578598148073527355771757377452235387738062515990306948328622136423905632749304290596500945301855781583875555261432916623632245360944283404223381208659559437649017437949010215459319029443537748896844951032725903132040840080957201932213819660685468584209155374409840051615389088776999279213065741778191912999594962687888081668706130110428857769280101281446361345082039307357422979994039802244412179335759079043983992969756672000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
93000! 257472180582265180741460431498731464142688604281651490566399405250545869479674549347016962562982272036406811648135500607090184639796519399435086680645102434463274013291289206294154035106002048383055834985225971711058368419184890216957125568281791445266872078331299027289863675364407007267990607370532904853723404114101834672349100176879062559381075902472059511128845554560659846246066181807050610760633058895399334191434322413793079125020503341973833771752511793819583780554407578767592365038792656121000095937683013194370392169869043954367635522769094492752628119555733219203928992676159760419103714472692568585570452437858132853688783782966412078077735590089539928273241409851230444118523372029406592097726031863773596425377203951027361602857315033976787884551615615333543025279005713174217097708922168500015357853453968538769910941630389882335132594983819832883768839895713231745299007343214236681768705628693425516816996707515802326559958773158794828350327549458722296237461967920865078467605239641111011071086940881893677040152919797829679112320507540302744490942420130586907176995944146811864859005834369165350098195583551744724388376049959302256286484207890681911998429007968593083332806467229786947032048440651283982794111728571549179566043759772523377499168698379066049532605413936729469523982372131745007830384588716102461773207196012176593771902241196109768397131534599064135240923651337793036504658926591254217112208178418884073505731861228979792473774602207783449784424466349074253051701406296281859889014788645216288051254353412353881280213439069548504158093013278113654474903181741109441473997746539089809855965759118718146573127670645227369477882497634311972327272777039454771639884009413177032777941878838484476813208451617161022686662640549643983079574542237674861647261915450478770966082168957450059410199632631470095661018719586379528604214369443639258100323284737981488316542658297548208992245298847073744121614230239640287240644264468284109861640283449122292732645351268515037677104597182806037394070963285708570103386526339053479897173154897219157796454580634935438262130786433140874676055756353585320184259438821175388216992364114615729350537661291127340978480479023918146298652308118969918397815797275259088921682819026311013704073281187518874395081852519365745750648380751050153934924852192408594059453731882789158709657184804237865809704790290889766708091343757789330306417849267715991160173059043878594802274683636418746518647501701375689629400308405077545055363981711492067251909495685099576854124338702252682450374970945645275352416859673843912619203867315097384310231193693086340586737156689961477130424114184113274373283901454510744213617462757845305101111651548482572963492622756670153661646547712952439060528415170287662648279813144801131620029111229081844864795242718409059614757019529730567861673611638968130457645720007839364154462474562543262010369293168599796599547124094293082706898850989274867202429899167675535388283554101065199500389003882800752747646383638913619742080490325738048891799476878874850071427411788682439279891836960157373936278150429840254241614781204700584977766249632913134091197203307541386050775131923765759794904862120163696134452593362203105930299318804859642293869171096894191415122099604044760665614840502180957276734193504409935055116289641225837792351662689793560041541074593426478190341045187087926674747262156241436629691694532705975642845242600943847822984648179819576244898892556932855257099434169815243048994417904644264530197910924513877964164146413757797085324700311254926401175897596163845502277215456443079657873111072706509429147081041645137020405586308867332231500145947153716105486143561062745044640890212271220277212337900917210029324103431334551876986766871011722544065701403856783489788547971982277612539600900930365512032399536985371958227203455444215958065027832920015363330162234885583723825760303579339708010348018951026803748122705429851191205747755752693196726561634605478594471458703562033968577768391838709929523198460916461294414688801382571497871186844696418400328929072132469491363426006811594902021134563662571225385764343177283771903871043901780085787465669498867459990733598094748888759238036756101931480870081055942831946000999983652958549908158089992096579207554978259608141514175489451404559863107053587054740682012906013388323642437417050932983163825302631046312877205965258098832876883082961962309238353957203173647410114639177725134139787862313788959471053613709460608015270193077973018354232463177244643083945425081770563964470103447412867000411137379257634082790648032916884142504657426990768560090479689696230986706278879717250862035034873042845132541020119090597480361815366574269432835128209188208460980075138580956955069486637768928664201914719667442963417007290855293085645560829807314576431079183984841677947038398755257655135420101465392909062159394089631924135477457926330397243942005624008563250919152088920683560051568746615921342927535477896330098593019938396322070326559139511833349978962338386886556494730878076013249452088637715008579885659939923836818535614499438318413159802995777206889048682929093572836887304203288622041181725998239012974765223203145041683313385820019577677094431098449542725112520145934265333315356309683276597110017780497237140521936782099486078825310849033418105432432909050213877288923814713014899943539102161807640653626888884860954224080544054443646501682196721243467428046755964752902234079206573323928742295650650853089163726019957821517337327273548864221450696401060549995342140770209904854367853836232646754095025267531540598885261115777497963483997597414722223983843044094526220144347927068309856334557609164864002235537962770218251198133661979926254100526773018733036858505060908587039298489140984009267366287252245020589128824687811184083647414487127329853372535108073427701773194897506812326995660644607146665563316551768103994826593844297828321187829950019355499792451507498262895091323077211082559458961049331078691091143176493437437100073828458841264079850769006906380696256677841524400916629993993699007547373681346641449561332922410863422055560919145372162919922718513706105353220225250188330506769170601325511990137211295429589829657132395659058975873050150692947978623437225837374434581199005632559464928057517155593403032750684852646054648093026042498709107630310903128891681630854686486825327138683543528078068559105236081767829583853408310314941256841862969321434652094543485472509477220226123551411196250527548075060540153427836739396471923565289827770692323798416541961545237780949028786096330250810467010043480590116548898736151632818924073845815705467351998985118166130617975563382894911426309084765844397102767784313446066341319502887845598871712208194146600167603339834268302350257033867440872041919700883356635581912972287732928537640483241195685307202843084324339097964671438728756425897937511615014163977089893597426206926792903608885553509208118285749314711081953177042889748225889083839756746999364238657664745343461373445468497806419904591014401390341001731594186229509640860096665894669746680971373926065630359101001333993063571473488607643136915446063254029461917928327852184887157279477432923778929800355060778387019399213982834965866076211997515588090850867872675447708833035439800715396938630391081757318387855845298744243870967909992481139914088295260093189030354839390725033758928039695240102899793315466030003340133181890505507570520142197769447675759597540053638758269608611195513385016018727945371923385274950418042645569387542105570528418369638158325752301546755572940938880789241590388998780157637108855141589510752558875574217150471996884415110848544220014107489524545201428202546775615657482246075874081555872070438587482042964205547907496290591938186890240822271914581282718247321494981027109014967096008561046925221782042216617992764358698978715440559599647442025483666976563841098375000627438129494212247627892499400415025284214834165956718654213466462884515521176055248334182584333567355617341313224733012712990023661759805675264777314122631848415892630170793212715956482877517395272726059621835326257188716236831708428843096384089843569083720864041033812860630800897567381437041091652380705655893174355157530369160589828781305323766870839948556937509558863798376444250229881776486850663950115563136004609203286798052682616697161291756381386859017445189547474349351855182944203586169795158582679911082767652444340760594319024618532170163030369274902492463795535569442505456079867031510050456413712911724477265144440163110841031841040686245002159324576412306239174447109473158007048461182564843789613334453175507459874603465931356048994918605755457707108459410292705208842422268621743360226078179267822898978322855113232107742058282277164208220435708118805984786273400203181939504297240916734735954983905226524743672787006100150298923778906521836646591330790533788853202695113449851139312109310396191717687293569479578370964381093685258920770027019707130817200813298676496017508781119775938024932382885130592765484552570578838057220533903070061695193330500798187329137154906994112684246193362727376648460913000045170833138844719370892518421389478959892282658211281737036946836564407740345782762603177776042740439489860958910882537485439589409844310563775564334381466392412366153635669435788222770048597143961078590522296030960347761058589294400159187460738840925174787658194286922728459926558200123122643016774568825673661135938904776328046861116524338567461666592174336059004305779982943982098895956368593496633467652930954153302092096819312968147243006692430328779700085546713546158401347679128983236381187499155093240825240913807260628651789764168974224363383758028096168376594544038614925156454176212727197141725959498722783408711045875952095356965717004689838194607941207687545152147505586945138944564404065415726728648372733979481938884389926359267991428797200373881955364149154722975761608004033839679424403416292744719950528390802764458469859737238193737406429347929250953610927523557380269527978059618129375910929238574961702744725268358073395550725511176530248795128560454116115263249113319032778450672994582884943708373592788106712540505119245152021567102638109590187531699703281692793469051278192559397253092622451024221916007433100505679866024764218864244321769158872526137791105416155434116749799126475856307152076643280243298684466400767609580740381856417286906339017516521684284708318967260138393317024108337752657250521139828253947963592574823597884599559475241330652923767302534938259262031272442361498317520278876626458314719365458394526530294337360136609916684716375074856756843789275863879281007458546850367141481625539056276890764585580165537421381205395692598576394080687477873172938399820760378356279197962535572667452107997310944375756759604507896343927012455329081444924563038253962769763926132100386248560635352403316196749478261958944722882487664686501486106114019829218218873104483969602119222353788253707697803659225240598455236329691264706153518382362966368003058064742052168373493432274362489032635320515132123236740745053069337370453273763713470047484566703049922847898681876282444105759889948443150267668886875833382860791300632153814269255305298429418288400738369610305912809620707559757882394016285705169153850173104178562179244111178347376078437155378012783899181519654403383130853167018747989672727464762587965924740014376722803242845397643161084620454832252593317685708494746206097478670815881572845799321619863892355494192093965751934659467916588857033946125503298720463322070535288779140331946962384969423326113682547693688616240519013964000685248134798099603156953305853313181323621619452218189869647154812844999502797328632180006105026016852935352849584809283055810792184231328327153510045636472123222839379838824122679369147789727900768941820174373780749232976207332254691547194407597597622251428070053024178791196087961050223122459195001632608681473782754676703501885910255817158981258363777459835538905899944905841034249069458939780609397077077072558336765641512569215097974232273603894622667680671471668599941281064384727086962699591751831922058708988304730683677089609756459862854389745764909002201145836457809798017078751529098326205787383100642858489488657610024366491185758434239281073219582967552354892651383123907368722984730848563402502959358130836500482432898998573283140848422244163891927849962520815029689632944688787686245521308195994440741525834044913094883461515106539652703570523713504939729093196395020969897684993501749642273757129716489718262852610763227008752380584023440659414305096943220570067214593779856461397087565890038169649616922808481636031424142305609010890627310874771705284069262588199375860448967476541426125241630774593074770969360215866596755690627587221223006107581559912285117650718368753224003410294860848414789808078365090808985765774263215721552854306981407865431696772388470802289825026191593047252093142673736466954606407645979871682021085442521672817996725570367309715052944881439251438114673767779928756057457768712312190122888218057995187801765798639864762710555840514366946531840969360858046471619084603851017308895825662184406193521234929143958932704751117237239645092105894836787037848174926187805806783050330897304302374771049815352370979432074712071160316171487399621510996890839764476038496703047281487320170167000528487497993416058082826090386681812992090953122400662901374502340331634696611139080342581401863365100071086747822123776519697332493027703294532728185401729587144333122184839061379829845609138516194436261241673082480625504413365083048063599836133613960307091728119374148125085548073886301843015213449097957700793270288074177250465553108067537101014080334353329998041847828151968827262363496273701817695409792182541852636317528232290382694342060536469160804538379834457421721064859213265520691056028386702658098282069492730278119973775765718566510745206170170198136288871281323838179828079254402147534977822196151857492698994357960271212817142817293466594933030464361569502809340205796042838230688783884207416406637121764144408569068395861627751082522676881131303406039535511668820951317846060989584365489110170547437577678810316266851966231305142564246377696306983700741687527145854718738156118342136097941864145797397796532441789891629609323532417738608793785462042260522542666279556880183711243009227897202033164892155081998167569085716153475744802321827135654500023508126254984308559651688767164477421278965952915810010805625694165223841127061760578074840462489509300082554215116095460476029741114750247547311352400290339500217810194221631675609247921810966487589155692533832373316333118711718286709686487118115298521903860968981294086643174266096962872934076309739882842045460371900894915445332194312173320246469127427693114133333830638894971433040627896971402807963358826791439939354850129471590077275186141220749002386794105750408230954229099309105059068093355333973982797655760109819350621832693733468957600218056986341568331951581855691148292348811922765039546330272009789740931471183392189887200176953878340221837243728643443310754750568342922628007934903462441196556873191322432523447667281792431787701904205063337672795355478566818156789191498190844927256210273393289977168236858779207896343652273842576002483833139909101709520628066769975293184815083820763981365836062726707741088778284892456842604559833082717566932523770129681185921635370217687954917652886141478096780576237616237190920467335538959378552382831208287782865752174493710560862259608679816409410794080147923562903710925319276270966910243169415771800992618052541980318010829556863063157287115727074501897065456110923676919932174629184860840695019255214394715749055649737549495376784761087690470397485579419976744682365854060050747060075612491957179408053444534805205664511323065471201701479357913275847810812810146886448809328049688729132848674792442527452654426203858202944652177850835108945615618109848376046480482342020363392294147968717076619612499036510569239928801682898373307464845356798038908160079930602474929266252997188237411112190519687955122695448620107723772006014657347872123882510550684186771438028085253663090559842562611691837887481463578117966252203381042042136112107897573230731396627807955358338473955222770311707405160974485645646852021938867794831485220231848702747064984376896921554474426805155216520321981980828988866584748036462798408542427191252738942020362921914364496876289475047042278015716812541367552028545340203280181955721736973398642185785545417097815193527260563138557403431346697431427099028298194554443764249585647951105193413468610965571308719554300111684782627884155805179772533382803203054243178859698249226919670434720311147084453528172563170085417349045759541070971375983014976613735798231206349513360796176750284265254449865265082730985105112877919597572069651037021604371231315951607783754857678332035754214028615865494559721678011811163920777989268050967285000466102383557136328993254738020941937393614456961385105399428587206692090454681473046378340707856820314854497691032384993939623281366611253046793167981478464553843335164110569547413869535572975158347480450975070670415340327345189706177323152598660526796461471802516990909988476693327707258968648557822628438256359729381910202201756330136657103664361587074102065702825539009193059614498878383260108866994793401427643871071020046165124040217368134600853366342369542181028053184131849388810519603034787956271191569395022899823780652663289413853278346501481012717939528686760871719279547868857344532281182976108373643270283080681169119779833260409592335684033569794136915767419480528458749458278656103089110198439851428371989187666305040375923272517602281643036541981271921542003141831589152944215106372346674518884630339365263515586300176455416836694918831366247914599240368597543220710992901720775839103010413715833946270123293223089725951011338924128573092509580436625085678421377097660970776546095659296224729996949574611493181351396539574732556501992281769770940541852756019350264180808698205834608273639596694995861227570010139553914865805098468873217169966764150761648344592425127418412495259569998565971652594026663539514338821711918801694631258993001634098474991857262566984330706601527691909486145552331809553263918724673399035282782411940643853836247252775910983342223656483188889705534963204363249602436542384318946296920813014678898445494589948501251155532021617451587118162911129171624646468788350225079788821563677461248111815844835482216114037146856840475869810752513862140434804842383916730873548411250271685119035633490078061715484751142686756697199545387652184816928502759380231770886754965253077314800282948456778273823815827197873506363277465688573130955575509972784228476834261578845334298781153077509653030826122928991860961422722946937570228586137826656686124496360388498085906069618025182918336676539851937139724886577054448794424544579063964297666405175245791109871101662362201994771427849791945874893295051345026580194962969567829932918868950450705362642999331928442554532952180987420221663018127812187260344313568404033171985800500048888296136229955613374159146971349139758939481916221701187748404504931966784286197424682035135355331510442145903834393661347909700091436126475621254396021630171310536696488018118795049739527309238960060730158678146582476975408992726222868127127725016721212617013039845278676355023715878671784734795184400358863967235873084475763636944707123121352071988227647175838488428708314539772087538402551547564842747885351558421170126634834550782023321726087150320422829768162367659974646982686117708788621541233516846616511908220801375927364891204489058964022252944234007685165060639740981881274608689249211125233196336428944132284975355408957779785261699764824483926936945260892480918405162689566700570008491545410145343035439891724975185322648195392516481678957076571635603375594765656846913198812102410743676235398627176919340353669924035486405443687381999684734382223352670326306416044598352265115855520349034565553249270917169889483995154244614721506440385255878545568132446299266074873041367417145249159710897227480614461397948478657723575636250307690446180405483354727745439436428726345954581000705858582966688537700065914160250146938304406905953799542166510070104079847153256376854075304776683384206583724318046354017413385831802309400729102653330736751103926104391761155588295476410057226025045919967754829644166462749482119603588386885164130922164742685654946518754858442853481989022241568215066044267481461222959017163224267784567629772501912575752775219971020546186694103801982922962087530531431175640807951354465638155477895064679780702858437526595841647285909050952143493584377375597222763836002101771467798177207510985917505478207655872685430338544338452060687594439083502419424555730840264736680925086389060649456276896645256591162093204185411640787451662291325843693131926487170809524384645590109846584526054157996047943783810726646821158421660591607102523284637075081779151237527953891126822378398321118535759652278222984363251876536486424771497031033118753769198547032673491612497501699488781752047579366840515241382084016763614013101372938191396015440636337615641232603035681234165828359960827433388427418389896943920129615555181934146729745435906233760608780284617794399303943986141276099071563413602508496681545139287427768746252298525420604753461396952103044458699981723877522032142937907398860022645868751035926555645543677991377013140162233741916309581262456790361845051936030608580208848544956749792316898951565549399713084578011364558720041808015716057380957052241185128020087402995360844183938549913224767808562560131522157878943417231912497192224641128103806719215876272214330440350965932154568149512255962155958594513731064425370389004959751251864612433235352047554442620042101953686118384902889816294005118305958142628353738166233548461470862111560764527245550857661537395811958236472279258404254298944651723199401167012955082172896370085146142677742351027752520177088663145302121269785177472250785340841417028211777227972891603389829055072122653292892242711478596590278768701734506500336949121285196051035718926232994824655786622403917244283698963107995581103330794624852387184138363524230615967218773529373760745482141381851207847485669742159572576471718536809213153246171244185819315989881266629388838210634594219441448438729861987123075203750687299068482566205702952084164552637715408736610420850761279996902260102595787387472891223358218413248434555349232329274761225046392607362967170769883300876091317377351263242534177008064694961583106672208993051647973420482692937091601529522481934046337948291939534193608478387680506868866785715725142300468237546277857370252996297225771231840075888956071522417009578063505603903387341870674911740507399225378653507777621180877357667208886930142669213590998289062605207758027547731749234690513676835458186024305351672289052324892984096862476757724921189586518203695428374279697874428765800649183080754080979959540670491752313118278066040492472870056673982107690291955247348584146159194331743844143316626835521161685267615525691202027455000606144077151121904939673573860753111506772608036834700366936986430286930171459686658108141155136919869924654466668184648222908029137805343296851656496545197956211120750847957177241305855872122050166421907721875321345590331294971307879738815640850143916399165411256923897306932910571357109577907246863144515145600775393375301536129558960485858328602865491128775482224772795053569584160037601856026219743367431944442047465701236604292660013711681227777468311997100275162131216755010030205998672132691301674006228192377840754064740746453690331211953349662752501111819087051490569249727204328285346633465616870899588651901354832586246328515651100597102934198668445842990742792718789852625340042778815226581902177751535789783366736829446724883120124895858833277934827970482260899787731601479224523721014609843255346741360002343173965188872053843749538497495450899747355636075744904094429469737666737111631016523536083050809247239716105832088968229283190435695614549235240807906555238251126482500175619656964288335586314997348418861260158374689274488371076509515534241941242229958273281136148787506366102474298415476683614587789707300823430730554593317849817813312093463348274045249168093957184910934643069150445732699346933748826622105234374470899732443286070974641896096559202494735669267923065247755347115661050364129236007591209539374384190975880654576243661305765814182929567216117996685306095248623023214773601690939953969422619753850328567073177214217302050393505724517329302342603336185339218136337331460214100682598746495294241302493768247145467607419837559407280277209095108438894691263686491636330317459670196089408883004709714209691782010273618415506143141280964877699640353511541781501910348880379542520564783501026765982239378578477941535024332120432254376506576275064562281886149524203317010009043246967691586387480280716256947372592909030769385969979671632301903141887839626616896339426185307388469651089922489999743824855922419396400958439518868064378999277721792755497684806903860698684643907330635920789648468201872160349767061426950431107322827458242740573446209190590280339536982573431052815056266114824425374862317820558477729406235555298206291176167259961352920695231190524689143853223096639366445692177676005691804261150624238161597628990482936695998185395174246854741389273932916307994053425667803115906269283952297319228254196844796288538031113834368061267905897671872459434529312921562763741332987484061090147328263804155680240033326290132953398126958416060111317477055581961629691214318089414615726542256566336402564104750984891567021869106067445166245904177549360402680654667536167618709963061187738908848876779821162041209157008699833598578807931526916733359723236804469395308980660892269268214185383582262974079185057368157237725153159477170945289204246694053409341299668996500694950193002592340264577962682873112778762961323184116211341443880796835684365263639257917175234873233235242345381496121379672522514770986399368243215284332884577043201048536973155628736635238599922322952852258848661025529070012373145459714530779912283408896334247601021398413693988484872565568577969289226300522244944852258114466937309424636573264564860574597450093126337439296617595291257670742581189754141200366751543449078254305756419094134081484024255886348360351657892265125836707493045962738104184522103624544111517552258115305292158684254059508443290010173738605201764402190278878787076342671645753775118032445588413922239219914639329662785550806858893880203711071402361562453821725952768520627042394333474434460068916601670801809653293394158084817479579887828394408970923423964490521221942137128504087794858588899900411908577720123585216010312619372416163064035828429450210310334131968499947019961583247828709626295127262826497658997564483545901647739978462585793311268478680984034393824718286059514604909504146869667352576416328901873344697710937956870288937888667829184501631879940958009505206478942222730589431690403465432463392356710390817216888862274612737724269785107576599859120150631881383085165315824503482717299979937198215613449892084509908490412873390178309089952461754661477028364985332055494565639784851875308437249178600287439490292132831203288867597597431455303829627502054930888100277439992028587699738925393535575234776809561023286078950187425468553047070450221046350512383898155145376414621033514010074673256385052973730987045389887565984180866938062923620985297725658782806392019260091456058331916751587634260949165633464489156763184094422513622289967590371004931825157472688310107152430225349715904211782345858470618578785070635066594204937163648826658437685294271811621233674399628826619387845479827535701762289046151864023382261774560765321396933710498364322546332244283007181666375556046685644546379353687357230690572898027849202414874672831108257785904737162940548518017639211275508323635889029966451152653097652236875020884114844457096024870292640848708317010467828382773914582991567391150531069337044896521168739214960287660366894371572488257613882661627873858596572516022322710111169006827742424914156745183034710916275164249596504696866625377032554788735839303953370630860627102823712387956420904130636860718814638631383041514982510974216456981556574784864621432825468404364249944178948974593521355917922676684914610765339984146115955442534902280812444860653510808759254897746848247465753798784759852094692673286008164474188463132943537224011461965896379103048212703421196973415523799334272741535690935045595218371271651796981853441405400826216912780421047953939509438719766715455354566896412938637890622420720235866417770076287133519479874579567219655177356141440672067104497988555109563509362524225509778544857591586788182694255712008695683516895326449068158885985087282795877798049453585260854271375913779485676974968271782054263221279070023374896128048682034985886576658820091013635599095601374064784535445544250701606411573838616023007555680810907757096433406040877461388360217968646362479166851473071731156418303633360563029710087440638696317426755390327484848155792320535944797179151964716571795995526947710662612773626898725157903482314558627987863417266121644578268264093007721070037700675906149960691451454850480444576638299377572838384590676585691158929305120186406207700099066078725203117588219473276138839926837864113672536240416746407072562419425728981048936785741027194471246189207615098289961644852349228643414985295632465839416427514208342570243495403106975957356583249785016445522888825449917900989859612042151214670990378255106228321619754009991342807091853139680989543919247434469021903899176375434950422538256104703681943373676348320443688619587456214686439227959608743999495874149435759745991386318289277454614741593376895995222595964094413013984848249097040325968026978336230854365601501896457224089145123887012590449180510111598853655272847769908498890875286001317232320083296289716089370269942243471738180553023046028263160596992545614661404192901015727665777945284994488436220927371396342407509574175372968439681815944643500043324815460239530035822763130417062064531228081470473560637628466771794052930561900447901718980970432216125188966880128921664750595630898152198703619549429971654173592353763664779400830583669967687252366201611600875419221678790227923611842843776945719650210613086324588714739988034267385327579839857667135078642213115944857096781381946490472973890677125279086353041783469039331632703434238289021565047888157606822375323305502544608470133191952584153490907113852506302140082851387457591586672419950027139438994997536812020812139955773221170236971266764392155962041183435864855452504269349680532531766501902247166347141338141396692666707534319018772372963450983719600166879270978550069555221300266007597563550392190410982286587386591782065542715829210925022429146670267508748927078183916590308916601236154457639533774769125843919397165368887131032762483181333043667174669547707242780145257171005634514121756300686273176678532351216453570999196718134803060895986522855408285310300812313415630085194432866966834872853357359327461143017491491307297188256964475110403126523052485113737365396968998948176146150705539626977332780672341047327600296832301295398870017937781084832295455738243542340059657020758076513765278403085347255833057231749356914323556191014496806369058421954481307808987756097678864297925265332935226530221662123437430413206967960890437333122836631200431692961368639372606131843601672248964013149655121441007903451364380530106231334134782593144185852045796611067421595538664219543737471030746411145410872643830355181614932811633923009838674183918744356738924916985946303683175286766015939284600344090042952255134050768390802986322159733687506894305168419698759656574956134634276709591155556075914921597210715877770029504828012356487994672473713991301477496527836419574988557939854131038536181823839072992532200338768279592748817126411758796676160496496280908165250356773216541979188855751659395990008893589405588035948507726514856571036609846454860020129740472984658797022328795376235777200678267014463003165940206795475373128317066960658142541874574918988757717938287331332488234599542037011622510726614257086381036539038337425887935130618464922399866150384879972150662303572660873114692436426756585502862248348802297735258158743652515602404028365279126519061135942624140753889140949540100377500751673281921489782326753375483796708125079423253685048944890679142843589679879461969941021023247552468739692410494638028646884723081071725089132532302555208965964733593913414491209134220466914181145188629744282477036312731527321563795291546238605443752087617029367917024402992562559675624290119534661698394015160808231083124932616735255826762090317630114594649356449117648136256294829753634721725153822005874443681550966302131799096833839163164280510064484685245135810742077531805291115499247585260088399620122459915131335430159481347081783028442111560188733132697774424693005622901463922522766110952100352078985874405037725579928265031858498935083086813228944013374813141285127801135975841251001559732829953378183213799714231252941371896612775111451983625059499541490097814235440898472032630098651662269849249796746096998555777091206572598493241535234524788234762960829652706812415844318284481296381351283550350367028314400163012814504352742282991115808442225626824580847193939124462820610424426004935442890270022606855574094252789753058126686681750108169653868046227297971292727126898211836319590190047351504216302878680281102520968742081999656297026221964676768293070436518308778530510799837004849492801629848070529852634408134675854277058745786866774642079391661026262986354731293425250244170622762283110589366269220404189437124110986926388827418269547104413025817528644010245595688833411624215656166345112993754876602083086161000288561975011164778754500025216552862587174439277236238127621089079807414698827590851506919256146189956383244892726300634000527889960872748466555685267509660548981397266460311469151355437929860146798183179620509034137049853196739836236044193365573178957812502835242155138144253279735559671309514535049538047772093243183040828647753330763909935562960765781987073245251025550451673194298611850096795688742996820958622421657353212260625362480049827833015906537787845505020157091496923576338290467172748289590090591628694610199003134795007247635892569078833602204712540045914511333121233062712349985339201977982345682074013206048602491732979684060331600843006677615905078150565515788787797526442692524964864432479998666103935707332246872303352914744787054694467052178284324803106028877626797300916498123020296700559551784980437169825076029632804707272064913362104470397152331829609378913528584774506866376243189891668448821128874014295136799863182987605147676435283221467744053182929164439709758035431223570880359559078258265821344180809079346970861813900060291217405914552554996365891874462313724455459181612455308481447646311815050519797293873139697456963125360817700311621579098423525250654294839521306565433156266014661994111292395574819464558065150261381890194857843058544958896668254378766498195976567834248983457261464801253515930521107842659278917644722117951968093279173140594431045267938366701344650280461910227802893257695397093153887907410526660989129238945877303588817185303479882622207526682149979017300943723847609383634656126493387379569166410498873858376775472987358683602916953061332319269447207975287346497894116231351470130258346823391406250322410654150599811831016449876476957567520230988242624067871860916283873306574662006425645556786469286449842081888392485867272294336727665381251990917898031217460928197544525591367435559743490887949770629471688246924235585980052161197581497313783912524614426988506984216689583025701409734438723110472607067638727127263231765485174194058284018629883455729693865150769473821614208370403858454915780834491506852461285675508564452415245600064984091942210210566807497702961068935779173434668106464290982109692779556500922294136721279682088129172819671946486590697287104897606294118587781769382188340281390610416743768064370717506118524500840707633571855383880926713409548128348853304869768803409825166863695759475343599051751743949287866705788001540557601639378688560950677853459915649170813042090832053950733872982530634293156433097750149004695173433118313816394742523107181396923525343950482734632644001876792618440312101724016198602291322945708647707448494620151676381972822426231659912808467657723004657834257626764750933754056415088832636070458176503339665662172606049477653524779541160721612310127254496692985907044693021866987070015769138366102829625452197646116596908135043603938947053441775379447498270617689366614133182929876647762587571719829125594643689370696175848780096413457719423811329473012168648165373383330727381876554122738086860593329096638568540625686058973097767167062982552087232029965225959987264881822361434723672361070697753037881974984419963854536172705086835467623586819891339638999788221501026573727468879022229482455828880983282549729393725506322231971225070665434529134855812925352816672520383220762555212233466578993791606710373532317877148701062699489281176237549536844740836295464663163290492927707380830733796680925786932148498072292077484754742840583248678408243517862662846702281065785366254042184406251920989194868181398566157494885120439504410484389422151674085682388196225838116735275450811453309312429453580756993252527292157984096267105779100169841005649146692469505146241691968326751888144621139833545099483346378504514786898426431310304486372746940428568404299876416154447874532120902642452920278381630500280664390173520403449609177171815495047408372080185795600904109585131300330162353566722064326371346434363733669671122073758096946544022362063452434137966029742305247136847614722532056969696469564351024580599587934876514861716509883347882330853247254891405523907911987509861326636261181150683508616357363252783025991303979868053863965343409100327931922380647135050817673812287600462379557798030466443506300463158146615273424422820478796390844562008903261481503024395485277723079111249606603006707509092903317898766336157546534827442339016881406803043103009193902480970271633550038522177795139285235427187913445856191968648768329366821962873191836497313663689234279560638571257225549921168794059319328856670202116316594038761469277391015797300699207363091624850503119127952325625558255203030779871496720590697484282354547584829363044315700840320258050281354963278200661528411756424427072367561917409152515397144753205602317185177390424080964911493564603842802887414725555687365773430861582999757449248739107829277713199649127997172488379864569986373287790926107983411624596874261790927519969663883988682667075076898667892988003700872267333931205944890779070183480054426218145208133002460710615503252355582572017453488679462589089399459519813764496105805925850989319603391771197640595906981207678342413547296406932649289818317558869619629451181851693515885672755630451904397701771985295508356222139789722726515112079246600246274737359808182570749216024005420561630958710503667549419465871880890850672227737356668158529560763219137808345294646463290953777775695967959860671571607192896366740474084885058035569963630588990552524945601504124606993338550504892280377235592194762299816675365168388838820925709193041847134149781628325449731173844172514091836425958861187140961931566328634283414052234863735578148825769356557436510071370441117274721286579702825719470779036761013387321019322963885745136401524426706847365662750920620090011524783453172914691520655389502225238401193714299256692658395164580307869600897907890159549272346933452913879665592139814095550676147858303707617144476249395037297605594072743424251254349627837747141970239752732900265290137222067274107578966071853206720126155095892205137191563715093903070075864199909664611430942113106536841228536720905198068258726601505161618091020305596639894464980753725716160901811610168998414228587100778823341773579522201068604067190364758665898579476413235364534290637028436321705039020668295094332539208923380034498171853128592816854872249395479614435131286131256648474510463274467298624376403830741619007907682018895414219119015388977221516003995675842001055452707074204128057461303427436378890750697345206631029091305702523845724141663062087006521032403043633242802080901456543571246286745558153263280624116752679828824739415260330449829000148764987917926671500060879721175917282586340940958354492588650392323165670860750852211596579612708042880123127478160454532700625322855900813577981510223260280561981156970392829581648448305276919424406670928154296442599057292929679373752632626270610917357915875637112388939583588641704110864354715614385837131548368784304475593878556772519490648600061099576486418807668352103324984641778734077414886950692405207553206513842476202616709964792291499553172630043386894567955830153240614200851958691587252715291934291972913680273720423622905875072277642846924251052772893554012598856958038079203820779600903021120301492700945125897060355299594395135568887362573277311171820405449469027767647320103883657516739136322122595511152083883762370123276141436680292412964949235679752561636847594023398123521510445099451207999985778766675782564039087106089945449642763196403920162674443514071239160422512270825205599104055119819804112161665178664404089498066155072751431599613980420052706699630110222850903495445288369613186371322543843367607840471252975416483593137338892372383204457787806734458223664657920134210447365078143318210553587617533559196945789893233677172283117300918106459254864668976897487723206412834121432822274511390462136529361603354252911839318702526314729560064490565216469424800917933614522235512920732663312641901471546193602422166721862196500456104810867441166851923310576398619864502859757857803123516357692911986690475815821078507562764596864517614887875690943497098290240573260707927383962253455678526043576114481515284634423920070586390954158185879147450727412906789286306410102112037230850759290575610213958669956074672302023185731480035409305104661409026628196040535481895406213972012928981779415175668845630092488162788185951254443924896978160835146388825847039611560999588430530685605918534683259544704671284487746480320054637576990455898459409948907707098301570291459095849581005856339651500389440925948202071762418704138617873215020133447738251151933728775530754515748863949503560495727038067191028025383296063937792878231615864379706027288302401324911093422271748228896022889742027576245773785044338752733348995623178331795685818946913846513436473252378168186791672967205438171198534562109641413096977208749997334206128140010464014675817935322196439669511149227316413471840238665526024794403077464159871625107043411145072706556796621000133045995266527277730084649021774498542713219253196660276460229681186493565636030190058156470979941736904626798800718577390083558382019941663964044908283571534066641996751303624561425828199284935067859972781001365535000903829820941870952930195614964106746801166813463349224905195038036888844746619841578192651230458368242509058291482822904654761702288995931538003442313448487556005972345308647202660491472932720155653651110785476735588857661399059239087867313060514552349073608888283552107231627723358472099876009962812568623364461477589519889230655871008340006766498344200108835156416431286002372123342648839238607756398018814515946822807197324548413551953498429931793942770944918698977576166438327256395835695557754173287970087180968155335919647705498197523894965183395915217253421666892332909740673258190371921669927261017312581086929333162153535744401152879773652485499649548654585842928680470753771840451458664896338727242122607063617344879585483788814315252550133555981126884090098258430766493170378295760998594845384577978318928727743538718006754998330637605572253012955906931866413078320585241121172781814640671191893360802002851506053666240263545509055453385511063399646821035769874592333517565562089478597978535454810437260472403142193651371169992490978331342112782188185200466407442823217433627487455456474094399484223303499672420419672569594822282286702733683101231086947747214376813556221040177215487690029053997635092062497935585196185354303693609999519615955998013061655154824076581575130213815674196052211198448093106148212227164664397781597270589306663135383385842043102907328962987321676613698354996015551579196551299132780211925053436278711781564172266631820122648575779786493023664949040235356335678146736784266792684690750744596385036857453025641573862643422224304128905919239965651189470068674746377861011272304423905562648681361500453414630337675058996173802500898099933899698918475850425519604908383404131305718565913538916680780085814047818749583822705974001366253681885707002315247750968189304642860167088989510207452273702365427041890030712270871249483725168781420578098516206751558180948414023347304101566239730115933194594890292319057426675566375604371652145849383493087990391831804889634644358324657832694492396860367000915552855405421094241317285926469158377378182423495662118468583503211625432144471838855702136501437780381606430667513651210352570431407062434112836845622990287798292153368904848626144132285078881146938872402282801578681612088431381659584233111950297765965535847476896060529571831518360699936254771993668698810420782375233415650162506863737732954996661259238926477947289265955897145519403515592033895149534942618857400522914944001799212514388129086783377770020849581825556199816986987700627933395248523365782952742101331099256615497125367137705355237378839196430214930539322371926476625934536377770679337061440179290497756972676212002668482284745865029612540564838709575553215775657920665703028536490882372681923964522016662317361209943233566350999592318594996108222737591036833194364741377759043660451997858623612410827566002577527280001649122072113953658913456116251053161857779426001159823906007574382778869676292389049214679105000748709508804050482748347046022846071059712545616174418300289079299936524537822949038395375405304554796316981497606542250445482630316930788188701205348366065933970341906529845167919036803893128405304006205336615043726829341525781130641680760714270048054466120309323073010709813570272917833371099742080616943485798395724066123427444801628691558643933801539125024030215552423300408549382575766258977237689680381612872614577073485132030849632027516710009158364860575258271689186407923258972636030725655472979291542898978919497588894392595444341137035572392441659646827507842204226842866044515153741331981636911821494956721005592098382686529919098771233288044177686790528071266059915712140603952623854849673305375199662541036234941845211434928239143135792767927644461983480550615471633612605154938668900510227004476376070041788284302810801294627224030309962381466126032337974852819015343842617001613100562445790824209463034325859230882544567519547715813488372800735230763172832278346027639797475002876947955005649392415936503735425557955679642993855944563389306093777652666580577865819662359091587459413698791131616480823697874783280892466195258747890043784012284799491438624477118287042226907057498500452533003164821523880572983087979218933893813208828508329877783029585134975981216475769581926686129709460322422392782576364750584575552869197509128773087279493748472231936490180359833723225131908995063150627300005818604338443715352253469155648191757644703740447259609387202132453738935781344181188178433650914553000392771881343161491302127231663607606778741510190563556660715581079899257745611124030279170901352271281362499806171118836885047180272050974145873239533031997618368425893872553258558444710104892706065276834897915776038814896344065414137388503608222434816306379925818863930991169671195648925448763279136328616286467319218295038893609893585727526865176006102909580257851855095493755601219054914123858730291119745683204320596527532530027479682617910831630746262226088037476269256701255861681660764259149058180524610522185002307291028960775273493968383085380775825795167818519512650834025395833146520960246054205472664775897210317812793803465250066875042115047022878844062550933280665356985506324090079466479348008441764770270687460959912447117803262747684593992872987619810634878150003790749546254416772861246537882738817949955354031602540750350063364550138404623435744373889737984213755292248853186388462820174525924813007536847884721324487194032505273504365420463261118332538951442425533063885973695436963744594582591154254435714540812255899247553784913324245306438882256568195355682592550631003410498132368094402898938514904889631791770995001437900821118572930733215225086543985216689563494910006569658693428039936742411778089460596000587102313057528967958192964780477327558291102173543549734008219874283747080644596806805263228934966412781367436880531289700835626801633326969128200607756344781613051462585865337736297341911732044302017224995890714961931813924961441541603169665899904674108611085329068951725694978714656959504455535605993837585829930127527523600147588653345664192268400142129435149320612835680487999027320035620043123248690967682830892573526120801532872695531184332994916796624334013983174211948982042284533108854571630554114168003217363673080060985072998428525943875905164554817752307188634498473799926564370903779547390474601541488580619130101115982036243368077795094965496188179827298672930008573787902416805125538702040086311006064494451404435552228209149890750663565260031516272219116678986208892502857160660924897298961826731270634665793124562224104735744717955972693779677976269475088741122714528605290212225470808302606360440887578743169364059731310282051209107333651587997090739395188595616393778152832409227804849051085059133958797111124119192841418445214364516996175819972576363725546809475412565501101744509763265593235379300715448065255389255784165624481046746418439911645443100037800778130953336320675547548959844468060738159424163308281822524196730113827840788816567429609803688910530280582292963694413696618318775797845569566781024200234346337249030432791699519020611311663775611898697794451897964330828335754491078361745917239612954716828882637136826911667086305388623593316089949382906101745868998673776595798973396351490325002179241970341265236840728441969836196225025054251711823270935239039385410286672134089416188183184395832566323326380552345302682164421376366516778451931051435000294161853418716202751417016961555552286154901138142257859960198945214196382304923368390378136445451136532452232553792015943842868346868742659834832659263896914628635209208279439853632033683078085845226990424568376748026676131201913334531828440406574264324601573446126043724679794614596345119749607479955502232148860296118386467649522089784966742384188466316498736916037804099350600252679987612775491154099051501060350992327569047941712752717089904707015374477869778940961021777858983681004293564166424189259099768151464113217276443424049284297342747381952317958093470517527731660953903648083826858885367326148515283574811991055889185663465460689535920418244606084334831093538498070063129836843430493155473959752781979347003095326493602111525232034923587348361420370672108532854287083499892360875129831233345668088745571359775753398128862907748032183358491234087462541156980576295866667054226800379016410605467653663245749590871085728845248415638710697241494472337413046938585586464659933244342212355583963539308958399620908323253926626572031683105859412497486951459711717732772831792154214354073815952617457957304122564632732882681704507072984934316094929775515911924360314400646661445761558952498842140278758988207513186372499246517788963903950810939566303448565460860106031080409130755380468018837249626148494166372900839861144421305847855986924091829973969299243237906996727214776166124890399370597614712884390388104447032203949104675711259542326414945294370227642786180519467930639683209757951078960984140486314625288551721554342366246376153611933378577709572068659950241090768261774005183942568553035907424486699147750587836604119547149455039634741719332246941146724146094302688812971632306772924295089330157277144393916039884282834453022261406676594770561868325237220518171520631653589593459045764047984520253593463463922287755074894080376261024502675537681373549847506657975429434054663033344651307531921706648991089921484354339790267222076364361767987202055613080201348072650189959891642543441202275200587770137778687432522895916579814307800084791405048768702240401211388989196025587895736020707364610127895505200566151406266597030568694315265729838877028822511232109834253051819942968523231261769358442459046555447968787922717969574016277626131582446470928194816284515319142129401532520080751567050761439190452456018625368286462306275285799042893561067608167892690566125733260179953501335907959025446662998552205520460454766036582033955368827997371718291939832818263993407774009703833714607991166661985472779790991273046784838062162535696365777779990954477278484297421626545721824583994891428652120349537736495382344285731180408412258442586295023351512672645011598095287402780765642376736297680915905842096958892059489763932217210546347923235885343410078570422537808092248430149333858167668378506155302249629794533490250113394724784194762400193373336729038706340829237049215961035593110608093588240912612542246333289647020438243396046717233289620777660657548983185522972514771416576395590055502062025890557489879707418381569687682716295559944849542794374957611426144978378472056217586549525463612713392223650724514505829162345183374032537457148823635467639276030680043198728566762025133560214039083351581213619987889754354830445112754043461528873127451284349919471239334160407860211659931371314784934884254315725575263099548396195137450173821279807098582732540388561295129101664707783604838765989644364786629661603152712786733404533789023517054314444517014383690313766013654429435617402567808281488277281327262915275555058170383323288124006622520738225312384422271999088134089853541265972824921934414251670197453216430740869783341875260731065174400971863515176252977011683412346866058053324964517748127881791251704797606508456297844772524919260534143552968591594606981145911929071418779275943280660187351760919866823557117126397082369265292976121332678304804363135531006361471593127145121114131810687592380370450310219879548874968839096871102482017998029055887515650141168200652626352766280770718545755644345185046213672161089074148391356100800344251859044849796896991242523463268160130475642857492600472133004080011520307427361216289914099015026096515429430609986531733110052100366654137123749392419623218318658239019721293923997762612127512301725331958551102567132765714646082527131933463194299887280553774492403998139204263466286598804047954034603458747800482605116030826774013812384679473510622569089665267886917399900492638427104789108659396951721722438222749437589544712977837911796436770411405867115793361152204146514503174728590970717590112377425104725526235000657927215124849741723762709677855114140253953267102881217951648772768068814043085348162039678758529668656881229007533836555699569952769234729491690785494749886793989427217133620958896181952273576031910425429294022953993273047110309518413357208142709592793775057334286208453426571547124671073067286632766976950377428617167790526326478907412144729281891976763194748969002765039796358205308460012172065113861095718296255355645340465130522679660339830312646734098315447131602336274889833057243640015489540013781914727289335682603011869174506747462396274591939272748762947198775733697674704223104650615631789690485808122377823058634535159429657268614538956299289950425547748726816048782074102904185531350766101548566663982765876086749538379559489082531839776392035641247164253741641516995080075788636217562766639169633973764298931253203714516522110908015481494847610203858620667415962373539109459747440977207535058162519094750389768910894458243574146372270342512100301947222684518010499487745615783601499258602519658935129029657728043274651912470915788882110270706083098195463530355934250445710871321307226329472135562549758299538119740595429850789796105115372922784310066529072990805348288495526160410558645198631959224971051168238189296096927259520130938486604120549525337433386018225900573951356250527292445996926456264855170142323513994068387892919895445728584499971714796674394376281150330442627495311834829158544546301320046660004422401906934866406781819488820441585106239981446719077085101618225661966139013483835492601219327454593323948474279100289223515037884101057307689817317128835915666385748283413880758307805112235036131180353524413632274336933405060380935784703791490758256042739274334218860719097310339445431929495903797241984277873717111310191374340617730182303938303580876123797453537861726206311255257771091502848632756132118518748423591525280231759487380164796512736019569122577569802535680536882328110851953896596420176613108474422958089923281887984893711929518250680436844687923916078956748827196918196648259287162169149471379072885745386298506150615917551485893665013275102504494337448221624128768498276236425742394994744039859578521454710303838678187701614715098466950626697771374022014025185019210436462023577093462257506478814810891275738799435161108949698584680067150805374274045513659230556686075413082972189014606276679761756773019756734633515151535301418091740930723202043967067143215573447449885996295243066241193554013509352040882344153144986821126071454868477809441999707960578720280460253862402598988961425641192867751920054532554019636525352051478797110613010172155634523123055940647611554494976688069680838305165988289265984963755505148284433572124145087878541729070502343135891873314209598173419647246787920324922571008122836806315554584476692895257172535079119000379955462347939959195551714952022181265333336648324057246942208413588859231622595457328492815484043956825463197453731818375406865274093769691489088817613667280207817945264951434868692200529846481183176883746186897521974027379040640940577173234090652804907048284907088551095329110417849399309802777454987574799499284360583279296004901590945857931704097632649302633581730116672790088111575658677294584493742593053678600512092966085139118178176631382637934943560056371046110868930470833889649807939951337017635266670434006994443550662540992428514367838816448549997305148283022675845970249583711598339907312852910950290560036846179902807534583262242066995439782934327250182831064980806251571184240431560048571396822612581706216757454057222558838604187783916308648788708248747009733746808581203382482430735349702648657145225194596810852043482950601833901112006852468349541312912875785858403661201076547453103545978491789082203126768871725637949808968939612797437965595713696297306649777275260740198492831806123637770668547077884681061271802580202600553093041108433404750497477588246529705778616955603441628053241264905077320783991883143827274212102430431757361228087484683827342870662985218809502470222609987049783848922650987484214199260296068147401178583175735636645998799050914200391476270689828262171250192447827453855968820067295709632976217677017094706272515126087127683630747012010173720259521647366491573914481563933709089081399119581810022058240108747029203923985813103633498366097292976950532786508594653179639729556904657250101337326049616406814546040947663084765263975916184875845071427826133235786368330106852916819685528214600010661235482858273145848071155157064271060756516363031221028731749612727926676172969567642740424280568254852036712174546466961364478665669777175750762444725056950915295756955302510855295115376609661606476987753700741011968085471789672463392722847958053118446107172776250561969300321380702924256461169027246142103390184325837721093783518281579465746351963208158927065932098853806419418680333637668877801398523462420681304228241628516639617753014683245407759070541510704113786948911066238110244960686460682709277124745131847772701236921806979336457901755459755917625126327974149872202971812657352232098099181211954085091249439601969983651020922204023244764128256689525282697395535243523025816974113784527021852966945598159204416334186398305477818827062433449968333994814876518931549139097185164975556104728979493284570537114014752506127813590217919053450976166627028191663342163731047066593910608635188556580042528878970232926288585763359583216375809042686935539715864407839359736717778703882356661734614565103737191594368023468293910033100485920329150026065360578521218650361436873442615326968006579548834858556662461680207314634473002257965378572769017691770208342074112943318285475400808176352367832496774538612747242635695556872879721149905779795660822935366242712026205581703122372680440240640350653581262331601370881673439041854959066391940507849097273452690918136575263173586402774139078845234509981827095618468429677937754563392766774966463825786550460923060611358178592732912438792434041383961844218330697561926782272616802280564393885772593798649674393118768792102618876201258995844118417404367515425233307631457588832867554477070172584775606132864384480654937471551917790454337433910008108504936774928703494109400066943375920630456633676316657356919828196568332773275654980303245944070356112732407134349098663346313994434395887138167212448509456810664048388481177487903859796524261173689825621570996000246859496927601009765691112386998407893897625947287279202544304513631423351818787920230934072896474504372833928212818717092946156718962830007834086787938711691883744591600825126184589689899517808219748249662193428476186152241162251635515109583659041312462927040004826254988274505902137522450155450230038256316557301839753670532680424925314205338293946405259404126152397768608009366112036851699932638879733435102628250044625345208322430795208919148580296517419470246951879358833060406351271672783512389050973451691107447294025360963202757078533399698504466523801978559682317451493578478025550853222745590284718520661156813161022293547487478741904950759524694754798758970367976921203817561352093556180891446647702377010330528713294368441658347323007834452093040097095562346928566509104341564045229198710746753649211798138200987529281704369557747166410614104559967242718182565970003695076170731873758071902342839139727486156489442331832796400541658932037713003759198065985940788160333922411556068810912818072797868187990722734347920619796613525829489619101624628995958596738413569683590739098272498956625258013153770029068719223330396997224685047495827415813641883440739218174964840806939539599155994318993825469737873204689091932285000032558679138299295339990370887882424233332276734949195788708505633449162133101317194880891303904033578744943251982049214588015742178433635847997467532457425843528271906112055087518370882898505826738027797865164961353552961650460714321893419189338039786334886689676667998975969785221305027333771052245670762743088075640797217175426246751594540224776653258993949006830485034672328644429046610194146566520981176322549782099522898066687899586745672494661263864334845587006087172079184981382918451416758812405633806966927764436134865940800413019347801655622929627957917492646539351917987459981640278362048373388155056332248394965873350524473130984584004108564912156391822338345215034319544509636693910915727541412901772421951201821232493330337604862949006268299213593660042464304481010195988537597801288448493442013439501905483828163499208161576243113878301350462102911417121693132495758043905566619804309724172097426214524085238081463420905958233307291948909137944725132345519349745883232240583620643860955100186653232235172564403291390650326879326405777865011097864783450552272667567300168964031707399681220379300234539107716549733007659495914925104142245787406006373933562531069156368836461742650988925347646932739849640773450220916042380289698000287743440960219152192971105852126422629018681954382645945004527207922975792642830212139975022099922257944028770055091729909783611099341313993587838299875761569636431584841857954432074870797205848358386238501330802451609511711837812041684356025060262343058900797482399351752605061701160891792347176147946572188562579542090811525043312337178688921606927084825141365344225251648338547166745122864005202626266086657316985090222924005842600528887738486559939616139502588195479859628785379503156306613381692248494798131891250453038250684296532771394017140071559306769808923032990174834809763289339347394905080758517249079883741499198868594030036822781784055107820507231262051915049077373653525806235662549942217584542565682353296825835493668112046541647219748502665575161144415820797278390519353803819578302937413619859594840402245595606570980564667093546770527593058322758919041207188716805746980465255597752980220846669571772455758746387458392932599738786785168738151178834410861448753088893580572672191910930401623564421548924480773524850547592865922871936330358240265459410123379635556661921735103337136809409121093064218068816013647671354502024928534746501293332068086904342470170636318761685464863766119180986208773785096700474185029353399795409496143998295657275310328515427631227606460151558009111013624862852299522508618582477366449134240898109758764443756284478455220049325386077398072754984662015667619309277913785180994233062412666798918268772913769441500572361443456903573919458616183684540833766726569849411522002876272023525622729603850808894851869706689752787794846969412498323154566217793493971817059052841229199838846449008047111311419778443526525536828641348906354877631782103689592619134109948611651535621915334162002254272500317214433684875077954353110972355173081249107766350893085177152001986409681915881292893989444499802244993983932463213733757739570503546898604009840114850748369411188461917087270126293976526149396638692404222716636518687883920100576666521224799491832978795256419440463169817516416431298337376724855809012474736577027691902793559782608442192774298736938156621702069912022741822609346972230492454090516012666553753335402787483808307729479635074312143697347679763748619218577572848213852169389523925915526063732738631915259441751808573462346883377818985803631937886900110672287776193262421415572697276776935186902085328482848826414759621438589733394180335255397386820409239569982512069336390460569736819513514880167116878669867952967196614180647973107379905419996285515026577459501326114200016767637607991889478885263216210124330523691022372632581401409325799659226144090953643338722009971167551387648063138935121406897365944424812540796019114243987604559387906708863784670865132641567149299666423591673602603390023235072620411939748452261596840396503522778608785897229098383023770381428115602994360159659855734419145552844484937845751013592972127723781461416526412114727100966347892927074299893048210314858731439662995864947836994618583603164552662490112867975221389218370791159234862242450625777778325561501645485189727774560341936342100683200888986809253363385940556455080167768949697652838163454450365656720361109081547247603764057653715165547690988407995345174531819620355266393229818693745836319930860720426103295077941411108572813510851063232306112846685574903891421661932242468836560812085248956475336469531767019891807576112256175864632396097871682015353270855532413420761058797324090816715626589255761561553198063843936011442556280315269859416447295228318497122769789820531407316528461974959249564039102158336400880261522840889138246320238825564085953983436187004429372671249469057886840491322234466809665040968148696454290522964048498449150208988682926397470764731870890740487546385053696531102719727603728535247870157602170649643533336384151251167619479204517370204198618376963760349695256572609068395320986763528059754504442105241454919766376639855234356209541982839249640407645067996371054261534983842962587623549336212952125389103981459144118423904527588183731751045281150640592781496986636523321226939474823757267783113321937204009912439060312914199770307749446195799741132338260863196938318949732098229411799653525809966898588973520118025866383085330972830916497499258551882856284919362737662605066683897055610929529725393457305998071664182628132389338577496971905471585684194062339147387523626175771239969425068526932384428390852728114012289056944398378774316713037897181752904267880158935667942852762378866478198572517788146806636267342742286503073852741667950627824848392381799258663396603581892451716191347839138007798379997039786131254158217478236081493957899091577635122674208808519629964548728050015954823607597996744007675175788729138049310011706319799740884631913281398868153424052842975008530788140410776276331163248634904191177068039461245970488063096589698900212572504816327937695082355283574230282059306416091410997599194900701098780655570884413727846419636459234420004406130383154576566438613916033457443478048743355829614373056594725053951334814733244282418231293557668794047055401691776388583944503411627275114804689390888733641756020495493647781466277585138526900555495867645141550275167418838950376160136352089623099943914390575061006105346436148349407548418657957132297534615572646161845328690690237277954967748457307501731474299023481092222616879587326274882606296537828328164587571122674982727332467521547207279221570171165809932807607307071546215406178242507045525951400806785623942014505479373829230535240659505395415897037729359507209200901967136767145635378057095049713123607015720084471856106348082476277493860274711637774065833819126587298202353972791720598821956445270952100680553111413950434397975911549838930613774488604781149093850719457855592835464681645564341439857661413143136040627854360363028596611363775079748837221921344804432711462236362366884578947470622965718045700836570575443184461239833679657164920125046114975920602340922931379896334218288219307465031663538153041064944639907070256178877087106676832161855540986548886019470333499852655687506467350073018492747660622343317722689290915195584819777982323755033911569071791418249056942051066651738658568772836999304087165358350778498170256505726903430929539155260428184907586417472141259700144876453534357401162904466299408425703818452264321106988007847536944495317526937648830197081470247995354605661930540193192098239753406007197611263368811218611001014112142086687274354488719083585539796226096810147205001303793508540337867109057808841162780595371538506869481135817213611645963214681945785384282077691823522480073955120515188616393528821298409790537468099784024000745046209109544990885133088167386281579394373835443835472497540602256787573611814887425078187252576021654725726008797165293336709344437478056379179203193754209234226206866363853278008310408853594155621099763637333488344045695824860371381350449127348383704392160893456023221530086559107064158377143294879545208838973887188485002793669341523809463747409056521837196172848604000100350702113569372570796326266156210064073424626712229933048370685559889160124035052349084907117658993308160625927888551158244039792326204939590422264010421851351478249889553423416804338709738688632613726043821286302052719522980873165693660817287590226379597715447242759580099052038382355071042638892384610788062781527394630184125120427559056834306837568159526329693671739448182260924876144140520624770960412975432289203092990535741817304713666099600703270772568281157848688893312077182105126280263263510616636720910395757218763493594346344793353142427737663559340992948931576470134596594338463338166431615252271147739569283402121655461057738648691889516723376970329843421924854461761988857392406285818188240388236907817370637229260116785358298603612919711843562032387320331034431662471943692741315650392943641649707812329901173465427411750273359744222758816788931084200473996355586636831744851503989468508138463523898159181441387832886136065347232841857799905480188249697552188970756376646767017520082773572206940482722956974534455189982298501997717852444296165894161458908415260279689784992514463691857702801470860908343987525560466096403295640982981114835369198171711082851768932681707389087823320353591143359638556164397115114667679379907828489336823085566235864208375704034600227638472938773616633577586899147909656362812718974458477975093755521571108189340488848674161460766448648061152678615992584581900319191391071003358857576125388160457388190559187847546590150348875907177615830471168149271540048283090131417086856633416317019305886387042012969456305168076777851761397657635108571986081236282555615670536104256748926057129504574500378147149153920671411395564893965997145982482275718419537695430464173675758102902535540345448199026247546449925955272622688926825530426410782690899564870907306878578077418835379391694603596822274741807536591336399828386965037137451913097126733369882240247061445886530263683909477452224480447595490704060160227112799228641793797182901761570585783183022830475269769062640372055448621041420769977844732590695480979296673464206327964870235071428720889876490554250960949331429008978931793916693341469842174997551617615088697527051517770390602290667552001909646257542661672789435367800008941745645769988143057824228762569610388260961925348133321083866625548503730613211360790587296368333586489198812195892518567435062947400914923543222404990487979775886917908946464477802558634669271593173132939491399609640459103440165648755011991241337306247266521129092864242175750995485444599987227088871278552790767333422712139028798126686715935117115323955957007161961595746435972012754809267848792752829636336093884427404893813254304246972023052341727215041728574335019963294883814247297045098193646204596536228435652705262949471958644321761269053088390676775765607202193829577653666679310550849171719430205567446414391205082804243617187613058797559085266533113208274283033182907990673231575197428473426333480166343704455659887077478554343698739973817377798619760821406416882675412215398159408117897646682314771344879622551659445980519846572540182183250640883443453926882975736461936647963498913435823673277596666641734448530164178045856847701347505421352682388469868286171538159926531854491381599595125756314746125467091525753009148415424604596489010665111424347380225675578795723712564276373182261468852443402077311619464029903322072096091582178677870937505591798378498990884080081431023685868643684657959492031658910121214682997875513789504367546693498283688731595641704931333126422889421584870915588456129544187228196806659219834791479343919940020559255482381173276819818397830237201225380516747078197634526106280947683225543578737193344629924488501805955567725312956060733289321077302540477489497735139978406667071854475421978269104953151220063575464523608129467629344190069641404148974065021046030065883425904492172564956211362572994943105871053616113333092704362710152055841769266174552596013815102790294034140920655592834238170305114249390378415806863598457117530983653470112788731748962785696951446426455486605124701678673380115715333981105998873137599852199086730710242370580837364624049559894094650895578473059534331057907834361801003757495537374733547238619757213876778476750802149343606439835624649100351121648329350785899963115779511640299773053225025790844285574859573807318138491287021311128554229128907586145493564073002900240718280554948112521841553927342419726095318783625858733135549961514108661412229023173310012759823959181600069109298664128900008940639723410568231524678422107672637554794843113543223762458453191855074951585125461833439645316110296080721638633645905576457177137857493821386866781729647125746063497862701067613993311139399849512607972000963645563665970006345355861290615674147279217425577840552843580582939357800951688636901341064137843286728800073203527021696838764703296573257523619299390047259692115195861940540788016361922223343742300310692361962205121502085658900075590847487812708759291151914620935841594496244443579043546521068487461036112384687409282670500515508245936949318148877117788718044193370584628823586169378845301061069005673450561815757972958899084139272761745855270020818335693037981466471764100769318756441161399749817405864872057333140850317535918750518929839128205036836766669813877869145469194926843347203104161763052560715655115263609397722401275026448661368633907913861555126646682525460314392738814760569725043986459936360194332829726711457949794966859642117979178434655361213705371142058071897910966139494961428951271292183310839981241901975647108507746091855161109126546492362576477160572794509217854371460206331738300284702560954110907383415629028535098120101190511682356546601185370932302295249191486759254890514481536340106729566141265151580564500699158293606841545529580699316784246169972304138898516528882252725036945661316796142563698797141450375598697929931041755519646514240934211216129002876589849021023416765450680404241370371832892408293419328276784359698475924229869110240512464133325033574458418098256305370684583397751695801332144093959462213422111912495000105741800293475044082474840242098423725736416690140560714870729529994949298106259470919586202614285726970560747801610129274596819840011097014457227994006491286528026117518791816589239109821345112911067122960594756081755059024162859195731063378191065612177781608489003012304574088004439918311524262686500992376007921468594363070796656528614718869103529339626009395668175174245745116984784261178678459523010079242845751136961132800623962006842007974605861020361062120879271007007101427003022476856712690554241723613066507452281979216342922176686162279583995107306715490325147284763229490766716477926547765761919911934272649947358674050292604747549568783466719638087141532468699380424707338095408286938275487677114396586998323112013034946130178183471604419025228486870974483070247953361933581482715590410053196418167743522724571721794369595502118473610708286727720833872918753444255272611912858323257483645434333774388359979424644977306259414325419397221433306304698792011209873603620085472390456218773867669336662736097309139530989606377668111300238038444276436031149812378842887456364797216238031173249527637413712142299467406808178646365718966803192463161590409055975081064928695029055488720748870301797430656637045015634314492380167540190037980894173793590153347496461503953569506489890414386424561148732598355257007741593997242412405676451656282025073972088662887248164453520736366323835857608234186645296183831835573608327376160204009540161126824778898922005630125999458524401944829284840822138816324526223476179284746998942661032127120649176235802354541183026232612183156936203430480805228727554043144356206366699847862623739438032980669560623211887647755698854502079341167829795022728992533569568595572670282402302956970156746785535699313636601230041889403870497950810860800638747529763608478594728127075939181266685902785078844749463109112339405744785195133827627418658110994023253830366660525720032708911693455691701622877667677103623652272605242341959251970011565741235388734466364263331990091894090159252988029466177086582527555113010865562887637952158957372650195836250653401455651518547453569748955746312732498031821627113147323243458592973090305247013727563454970050418193150897854425409736991246940289087598431723338777327351007729994116671918473033644642012482882958777935190389311679142662835112932051134650504876676672089969629385097577387565812373163803986982775730328190469246729319306810658368783672330069879260865737067401195821447742179381783766396508330402203227962374518378280860940283263167377656909218942745504163224741262607153010207898789781541565725202576327617710562946891223817547043167750391098112272618393544530487536538333451397574491398300477744785927508370046366136968510055263126394995472512884447581253991100777980134904383394416699967785294420871333088465705820858272107884124438154010745895465756212708653140351231662221182904147166727583348799669758496008181037188479503234523598946668117592403436344379147579255525809751008042559160660305681657543939244767120459615292171827142486414847578733091072008091090552716818550361145664355607556443005231360061830661518230992468365499729617445271108973541807949479801802355329659598060175142879291393528850662012461867418076210784397436494900260391641055328684202053450950039107764230362455185730956913400393965600127570455547270651676150756872338740645961778672444057329061183880225253833569795244043997292168029224517764686152324900801494096012518252509685885139150505677521576735501944814269711886497879148130298135954940387785378918053354375275870576100834807141835795616933885944965657191668611997703639262111621386456326038111016787824988456065181369619144182246472258643872878848988551143572845658174827742923862903150849439126451444667962185278932846337255431447625008824161979374762606943088302835645854199977206604928021005053746897774841107718259406788961660896756675316436090872208387306408509276258372922026881608780004979920887716251953187302223651085287371433471448728378931713726659443451403449231142348349896636101794957602051173808761355844683440762057762569509062828087035197286452845036995754924321144182824537003689671454816930684931814187872975166071287156467008695624210499069825517193322725114310560868354165086523751935509782363685975392858707767858146891161693423194443027424470918049532357526155436262022494399411721146064642438207258008829576617012513661272629133751471334080894884024381594797000227764153209083370439551678421986525423375911932096324170098133569946851410467090857441404266461898778858367918808760065450446129127943467160018420029159846380131491348029687041066960622753800058469775695002369558234449478620507330796254333125751907648354035891862656459528543141664386135695291907048637191061060403508933271907205967364317803227131105437537893922543813387401874596953264323149174756138197237826676090032442894683252743697977903199547212117419314429224262002271563777008860969146209015306571775377175312442137511159224474801046876305384439176137882849082955163138303804558314041562261661641195470880593930304392351254643914069374088479980239393328170420597220781223432945234777000678712701431857091717385690042297261566379270040341912971691969132454843109090941384949302630796518519109966957049102005690316834943147159935434298088042493535355856036917044487474887943968526680126559352919345649439991073934888584844972497861393606672246997339769331767690196084134307543667364957905504598731934413777508820338012352176893520335326618717726136043256730882792677514260499278904342985328317005730623493571275963680970501065808893035750940096471880600149152602301525189487961864397746581612531639577326524552922737218664843547678725233522821298268299986990902810855090109496463395215425213498203911157868194618091212300259223244035717306478888995302430816775622009737964230775811166897247849813909324161243498172174001133527123383506385987480580840634694404848835602690106060005314372467168014746923596661938722967075821355245838268653807125741339472095293113335386673862650570578716648124357413273399916866575458353814656594909256044497542560263563681509809144143167103092355550057503340557907768452739878234711134369666666185534060807945644220776377935925600944238365616432853764055731789908924295951887537687847699921372679766195277111538327204155057889006684061171943617703878925687643517769761696512853226702890516164236731876882740614855218095519098477987663980324985084142809388369463505084833893997104001529733128209767222957026964288624468752611458263050700203319827881785556775432872671796153693411922687111740462691148167596061640348215716399906389317418265450011002425187991924821715358309775573453083935815799812221677496695509173056700126502600343959514466885996612262369894388090314899002064975453327951113466935543607863375722663376273443410421239141136227767757523332974819707625143996932562938050247911068416250791880097666066228182338168063761258609629465293668743562034904051157501383598090349565430649308043171678248923346128777227377766669612891913715622719254094998709231112820105774381276772758183255829377597616464736667021750337175073410998881780912003468027184973759033586664286942051712693403938355396673991899376856172133193030985933221834066143171109592967656754149196511867295787796948256247473584392911752537607037048920091567739814441471610997027936191010290232162061738379677096240834668892664321787140830098707598713705180015620712346967841953674713716456697388012604502788182874570547591788673771377328467897087405359816172411799921440178278576849474018036256307452510605000494567523735874357853929005000634091984565512645501186423765885318198491637465949264799458657562810303455392811334282286315598759312509059961493835843845842687607576318134088904968725743289518847074217295879537194156040913746702751964831194418493296198275083095973874121363915630794795139700334647487100037681964416029426325230341306753121719113293351090238708697987505860495062489855118752563452345073483799767056517641621294065009171204019076260178372545444556581974125949551137297160227190447587862978982831786953787034622236634913318716407015013537744880668213125869070187701767439329539204398971165948645949469426013425901682369667234119109511438606931131773560582263765009127601161521230271616592639775183472596774973160489331999785295821452756045967360039714227747914593024669858056346644441378391581549386999329160113249449333457713801475310449356245497914782632904064108566038026133882833936759228111170083754534283799130101704733612712929196251217920781031035796750027403218291158967779604916270490990243662328243563532715383171793467522337501545299278406253967470687267691678673066196042386775766797945608137558838991049468157275758577053815559218317325836124633484905290025224435289235360515640621312594138067235058811156094079547603411822794236256594749172588960822692451889792808374913654528498356209444279793216329210596179922009893360887977388598240946121384511842500978691639088745922507664162452180663867312638362648173629423819513944740251572254516382781281181062793382198558919845673930406699176388959817965751613635969141292069649160852741086757781892011081390290806870694872336628521327451430257347637061725215247379743294312488521692455143136195166365433719240893024498268514606871341072057013741328351932820138993780685913907139707059129009060358738738689810329520600834701368756937367575323703204545170521571212013015165097190004531162791255103479795031068027647096247932137475774004226891229336902082885526975850598257658535072121377493534136008827859185676766199189996902329907229169989524377293540524643137002262275410003854265759974457933019713594020056076501566104540397249879857405791790137089131252922805557726724105902133442112669879462912068357527264768786812809068954096846346090604899828984913805850527024886862484362985955142145147612073454406088266987982067023465806098718479776381030403194871908422993663062038913942125999612054857754748403503191046059704708608224393332394633701434705222234388747445069694251782617240254095369241078326684576451969415242791730233314638876976205289277591041516733878564821511371273742149236083697810815040111348955874297323233937902035421650994837369663026233402322317004894836924982462844412169856779869235906925237058297085514901889891532119537477678582463072872724659886935239337218021742099202762413820930865913910172523907251298002554107443558527002763331284070705832051949234759028407084427987293217049035333194397585568922910536899169265490918946832380123634927796020671906695507576311882579750489050639417893166123684372456463077546045374475893320433321188777245189251829774816945927217675606864940646238649440059145510246478849010915268779630184548319059209010351666061202330806814728339137259922041384177205673149421499487192222087444520123515541483322859738427532640202615908248139174475927366553136518879030456960883052794507120995177611688562835085939359931062139521891398454405862531667564759391051297199206453965076101455290083104183890337637752233583475839933758829887210731840379259255995127054263703247867545385424070375732723415448799304415489313838598423093671513660966404437308950785760177728964583435834520182897153001386729692883207566551631599982997952583848886946284397892006498328430598733650978213773034880010664223062858113456148832053843289635332595416289213549361903753808198514268872650999235895152557132945416252019050957164260385898276010661389989583926449094832552226817665374605891818822404637286844303512952799003361668920097300840179678653158127447459154532684371691520171298000785759614756940973403777768863103037370795768813503249116494736678601428691498796048648159109943168949577100463727996594106088103823897188997672655744311720721918785262045170771607283949201013497100133485554399578880356805918958843565797001575886571179217528060462877413834072490138653493616646422941366202765261306317453893156129604621810843851965374931154246621045835112807514334616043836041828475871641741139234860572609861704538927518920260423608477634028208104396088776732048324656869874240654237138296770662629473240017987668554844949510859654617606532335439043579880268550734295759921832349046257136491099978131407455945779950027189755589104906724417141089546867680975258473849900409026225247412729503670827503778427478335714291461087954180646179247294465074935471280618535928934021267711359942179245507654094026832338288898106441769302531718016588751384418076826656217221809445365194615428342748862893460540334191842627950177748565568619153401168212292021954220044413794961451017894501981091631528551515922590899007161246311706593247220000042564625991117131402859731975591156628168172300687887258618693671057252175815310353983584260570276929399504525456808026069928229961464865907271533906403750163751412612740856000059243552459800544466424067372645307663125110942629338844334870665900151492373740494126440134210303494071412191407503873319758764545397848659370664239132370334506701913842023289137504509991239730608308036331686026082032935528814059673763386145801423097617050337351314567219254805893452143451637507310864842663685612939958252011258423854453389539556498693932189106452574222685870976687879158329065284408092988946473331581638572503562509238936147523930121691914576292012170374600019940304829497985242448910838599194055979332092473307412785092570552846961044782733593154284004171757936381301783858483962514941808378488878663959925958605750796052685701969473687877375438857312472509946123317245258727549080607171034646651352954481410704689094923949274567334284057720341223651475618423317499117661243897578495837166138678536652506585300196589343400832881555901945205544165226615442676990667041971947553034085810662067058011041225640000410168618742738578661399945452638089224461774694606893880665867767300381475962894580680232400773339656612637971527852926201841755402738236093138716446984891152014327776755943041164111881579921442151350160726074928716157894236496668737772494546027575096817417299720139495236634271729811408877930529999244027171427835370988496514128912939826231607931983996556307727990907040754877801852683156900825348071011118744613138732851724154535698293150984790582156649693132014086273829027850173435315404329117701272599503705880063316841498565788439433076647221543232445109761035554345249437574402179683361793203948034365914148113703335857691286251341959394894636718558984879923638980331051781023291255499028712244943775693277421464224696947190677092604422449504875486782287010848817494965194533269163952508183548143470535808241654396090970841775920868522185623588690216883962448723173174212805006203456807932207766639675801690883546651395606825932511900794308687072582096608812229923465477018027433769208724775940564247228206949967861882812865174915532286060242782708625842884584863625436266922592056235954814141112723535692519836994444684646744816111550708750039439281417246701791642886100448268842079237994702528154438147369812838725209111875185734785789892691287518261367101746657154703889428708228479019398428760347577335495502036832592782291876584551948691044887424168178558012964466765571098673704930201645142807021633350368335326307299215501862261562124326027658946006897384650928809760854613825384336223361534767224577865379214702672578226822287231372305013150905897479084854958813936773858966852536965358081687167142315194671036991882580026028221413252132700207603531624420215089221894395737287867657281935749681134211189201588723340849069416744237460817586339245784871623168590826963391546380718770711218524610434307917769283449134715668415097878358251155153547571390106531819829437067896578069951785746444091551584356430766455252197711343604807049274518006823172019636631076517447202550845175658710394674846160222141960261918555212509970242277570818586808260722300066833503461378420313112595182438750950891405741134231898916763147968207242015148285135383200598910604971653212736759737664828514614423764723454860576566336547377076348408865308092606914530535142801767775576231982808565168873674567059052752730993195744834230507766934409291590483776275479745408025916780934676519809223039824550016718863511098215153284430532581172250632039826945555948358353504541377279138381431701046809717040976092349395083773391935710992399032696853154302439510347898593178610601293000827332305835532603819309194002163202518463216349477067808143815723904307730686094348762771184811593793335835296488067935076214588289445398657674929732405351680192134152669995629000541659247213517492859178981172018699598654686828261410814330354694158554580330404427424968707253078876263667209329538608044852257886819880702396629390231775218840345279860454437486776687986401506871100565894647127895992897938600430114411063664084089090259904952211105849207478390927706531025948967121486732361595211386229287530303788208001451855657687550395186897925552281490766530370380794051401328926838304173944246706843611721166432026628351276422768036229081811912279065412934725747121946020491566953015117570554190861153974954583606733869368925491784747563215312085588240497150036860980133982969534984304452103539767175999146155363427616675671942674225038031788425009546679320506515471349509112490508271320389482694219198859874729403315321832218554288049539194421677669339026236924320910190444441110652466633263130615628465542945657747741643271337110549835046986485479754728380791565759912950655111861809377769332315291991720584671867090395220848534720292876226551044378776677633418553886445777770292066593555937370806306184487101938269501863619863779308534646313211260491912019659508367774359440262941615080504675822730437097704217160228436759046839313871836434714688967232974530864887853441651618551133665888529697107222098709336041367432624953837521186802464164990682786807244843804074415300877446549185147165744318890687982281210638852533537762761981578487966688797071499624897203650513755280918403128029110985499874837171886191182737391601261343474122646398579102427551674277578734148955802487213695896280303147113613961779277031073685858256641921702358507055950401461196749032472765090455125891577466726958750212382903414940730607324757723251974826450076186673225567204831850813689949061128578066124451742460561324031818972871495519775312160922242392287142698018026253877141179069230905593556121002585161116114258065235599317192210050280770866585201836053521950238142611258298281534077061045548645678256976890662388232710164500678989686451236196917259446302822360080480704511933620035572924596286124329761444262327097791613430903874612814872557087431211261683363425621968132591817459044723680353472217984705951277594347087806920930417798355532027883175472405900537242961401387238969576094741357824492467765116958244451678275800581424811291497210505051603575165692424039096837340437266045262260323697605008375094997244246225814272300524133309540684963449403058275386438813915553340431136321675823363464073039930881616249024164902411525141719696377797374409743925614407584122687603345069932645768073559443561093844390570443216569971329542493382542262819588442286422203252223632808766684009806549867004773832029405278773148472759459027261210702900247019203476986042152067259511860998589228952945330549911312807341588479403246752309658998764356698520587812109720120997656320500372829249153694447274801430180620114918794842037169809780903201863862808977494914519301954713328613366636180249180042593292883827410972567225528641617562202868270422170670558486064619685888856313493924587625026169743763575530991017974911536833940450904921229270830299156698648770728287591478335005910030591137496593395821573891965021743485158790656304155929122003250732849734843134462033490018020436197356877571301315405304893358247602225884351065627622876596954142050353087958914813737574459284098485880668325216465446134966202120113048940093091589706907142599612156327551718137794424001511376776456031059044337247963545034863487762466689218887384101120230631177043675006181612185686620426248659646236154346440547465870512935443249767250652747896843872006622688193501120016153043892201300313178184851159130880179905287382034031843110484820206725734307037123628598652000664011714780784631463530427774601860394710639121329213215664451241808779442888559376588036759663851676799697689324324579273400434146214243630326618193408476035252396389613706680027710814185692563415134671572500554785852988379911622126201952166167100686219518757650283132101380612349082666959621055507454710213099706380060977620543493988250245396714213912137555647536556026694333262910750413647065134310430776643513086536693428254641571179094167065317027346466757820774329074582971319758429827668270235501878777858585173789993605390873961547252235082038995450878770550387983914434449064610086640065452724570891861723079922137801395231717776270026245286924087063034849589091992218855883865832704021284392278082028623729692656493696398892313138582849523104542068487924637603589745108177312833478737901836438778504349836821072041893446538101608780390959685759567403010105484783829762187521530430256213962786808527996203046036942751501537831760513477915412461734683028452404437640684230659729752563622396739626412614761256132918242975253216565120177646633826300154481053443767288739466493044181722774025744151412057465973500474019626291141835366489349497139442702407529369839531740644863504620018437201751743728585326437988676815845194529817875236250630813521240660417114451044195083400420414735050031046971714397664240403361056935387108980838518427116826665596882099175677021430369202907897884344038624957171158594138046946431921903069333798672760577383113694910064876779914467615626192044461614370055449073241660875170696481087412025969739937175287352965979113476893705249278216471616416919289264574373018852628444803701184919812950295667960001956372515113823760141903753456687938946064745488030400377931813559816707685196300278562552124710490206058820561568499629660597922648072282760886838276419874409040273449963647713842487501100185320484494358244404633015974512156333457357665634728839555429748148847992063984963704000160501972289269383860209240550067059183325961799191507627783514627853079285508698996601805281225912723581711396957345430398225405187011345977514488446292047760197925017860560339757174539025255874356082478141163131279297888085893265796988067481226260765171799846684870974929699573832123959523822776880977637946862544706832095756041700915326352259605198445293517152620165439476588323873126654759035642717075830384436272508270557207689093099603899450095575688832549291278884218314971729346295967194314105324255271381978130731328542877739800959132080961224796098904155469223591232556852602199833153546540845115800763063497088000772206817308662106351518450460867114449847541989102484548476503552403640956191148788821233744892222029483222779672971348971568403941563382582140021731061035864503488023778229143929744367358648660401602968014406340296864644946686098005952464471650546474738844668449098969945368538893857597841045136982694730971921101905491855800609736354856112490298424996086273536563913857662178035505714697779234873396014185168921584493001329657447035480421570193835242879373999927430576422656081125225852012796918879226592397902551877143584758524088615828719265743025241482056885057619546297962938452052996595983654777733125349883201198534568068047144273038771106270732449311199532033635821125901992855603197512009193631810553338929651123127632178040753989195453632930716648350922613312576257620301322209791745282608934441879639590979625360083979193349780866152530008570274122232849075007111943128452725745605011484185375066314647848502509256535227358346547738851922062418881701465142457138318247574876075322823133272251737422982319891318612840455374438668722091881874218074045785845452587739171458489749321537094749809576717363245140610215209423658443379202335280321929908483370893132153838998634614924155959700433675758876288669616622978474188828585665350800816551842691080839136224484809205223388542935478636072013574356044835223613289875155587929756332547232517387090277212685874882337815491003965054947986349939532408423629053535345728368168712722588632087755600149841080691262921684024639031490745290899819626379746885043073417470358026747857905170942003443845927558340590814926553498300963955020680941624070208182246346867433063203826240657802632355089418234564022655468112495503007255736890457199890960449008115569664087259056608973200489631710836790179106415322402229233635813314707865281764094677642085074819573649631632840601235245973924233933906793597654533454144403140680368558090356460782254091563514334696619347335371532488287846395104098983240658171900176197490975681400445782680303479045502974205028146398230814389579494424411733622972213928586186305841042888853254991648908339824813958121774367455996513550402966080838069304783429433183485843835435144528019235354400956021872910625559310536003035753564581037940030032719070608168837719388973279732239614103040327979321878944421833384056107263044357658414285899239984581090119913349013240059008510011839298592422644874989244073745610002770597866127641351936693658397180117717948934258564016325396082737615178382262822402111301925449416887549015749563648945861145396278756820096603877835523763575181719727868377522660162836322334750041257387284498143712210955971353036139316518992517449787285705098583333444196243952022818280274306942829985503503597641152522909157382819394985023311109120381109625921047725166929609233371348902486691891860998410531782143649238996706636303762972868169426843136679889246391065994083512100050281264557962511812211199752092316809978006663159695733046725508356638048914681071101683467052882547514374562670197223627956430538269635306120646636492327087327864669810546149562186357151267946544022212350468632739318626606413380705793386304983455542617965265602825190876248807750108806203755402312654651858475787128534519114923410652321577690884484230431471948697762498775290245531087694896509574961488116085206417744717829489826092039626593271093657554305614965325273779120585625588005453916246681098715363735647805701631445011650554297532234295227229862315986652002274171131837644352655059252722487636331663371516580334321029575495822814687641639716778428462672147556520830886133992148284580671656332031723160877047395929652471683919352492876212000072446226928944430420388135925674938595951434238935041462947460000381478752259726390454336509983625426867650833526891842707662065296094564194364701460563678871560803729646323789174423309404726017840419203209584789731212911585943510991513153459934498586193577557292199493281516895461926017384584734757609797862750946096116584514656103220695198582177661782765077057042570269139850021242654320703487396790351408368453303064545282086926208362858873425646018659892823664602045228819618467433717696758079704638718018045375941814121278146338939061781086989666446141906564051966831977266845748706355577322098438368889125845794746425155419454404886117412877540985398525085349234506660324173799655123925959798888419959106373434113755070533685878095524401649613060724567642391405374009518898049124228213185735602543743330146060599793579503923915602398177063668134960922826729550910363758802419450954996529353279909369772747001892873116974335622921222892991039070900448899674354880516387215740687029065672088581814870334686986715739033844171129657314986759176297434691731290917377712147825306494808079188744602197729764245471675062914374807790621527492857238381829058854779166971351573657090777544097148000370583453244290707670016067678384541724269856468007364625325261759050810818164794491154302082624396850742047567690190488689487471922580822620452397672487361472738828672951095795402299669558010078237186403238020369170159539369657582475242062647915981780202078091782388753707729335006623667811598955947095093918220900826933637241247326382149324333041303356633829827178901182221221188412525265968333967470045911252729891400662303461073532076451466762837353485836021681533715435435797827532717600693600229570301408528740154571654312316027972270459827247644703554768147656490271844226441987073765843146091970526101104070641044981775554215398008447721114781068787759423655366616763213122938601035577467282734863680933188547846933686696928383323030933601463381240820668891525466140811148741800443436246519867128584701095129392281352025566442287625221688377534821938325666687608131339815774377732157881521231738170180535813191711868838318361001592048561248137433330460666449570248336808930462399934638065836212866216941880572585066054371010168514042864779417430547788913050509154443759246311825258367829207603940551095714023606891258788973014757787858217584115258333033863005113718944150917283540531999989416633571697110394994561448090815072400610098714497968532615926515554221844112160865255754147190935202967951985056457388297008416042730050919010757016065647079455823587596579543436510028122429318251654011878570708208263363326362745297467876140055054765176815300526105288458657719300170817156985291651952591085210893016282895866992084136775512985058486906542832001189951478773681143256758185677627069145821257783169951898409066636986223762843485579547136814557069774507709132986222881849505703309470714492884282872692270915406584118671834454689318607430014512641717571804565780548860201591801148608745971627583156287853608762468231564915882218831240210002106473437189574150933717359464089292456848395749616608612288623790617669754688045800737796060752943016750940293423741943550689433828472322372518728128997541014326706425676358506494794993633039833978406095846165029536387677143797668598795654867746733731303203293767614345926754242517052142751531271689798855504260902160736707871089798673891817684945891677245255245170643143631045626234543799968075277810359794709260446114289982063065530248461834171526806627299257495750038522181515882214990697180135360893334109484417078906949745479469369548031111642723887136919876392782002012376738371123968060768372441434059148750999395114126343724605389144861718095713464288881202741014729805930881417934766785480759934129570084077276513851606911139144525620467683787514860277409458604499975500300600351740941744973953902702793870038350232100981315062550407653547011776666051109003652648314892582755701654992582695669162073875592009425812133134322638610178118498162115538767748167082413265138827311436999431260359135161809144975089585230679779105859654853544886711878886079759522148305901182860603674906528784573898304706656569089184039262708808046431600183966431474714221883107639961315398109902274475828962257662829075693219072968335983334304120064287985586158476271487635478097905684070118157184504546570378755761729835916778445615802497961814476816620177761226946777172130727721812660651257844606686654100832255261150070874963261658413856638496414443841367605378633527016322302380579287686635874195074625904032887967742844984493527693575075998066654278814546215060252489680701559055554996321841367880362140091771301905429510246269216719512242283853455501074542461454919908550398831519835886084586159039457836743783604198004889281487518101574224257116039449575342430310052163083153448843225411972910340480824146407396720693906131198745407459759151255647797956273292629583233536840394808047837756350818528973487658167677406104495765552210293511525161438627444352279447808365349753566601875969985818412413977491316336063447730761668719637219595045511876242327165030395787256190316550839133711324001805501693104219331614258663123316795925628022508575157746370782358746190074031307822677671240692767094169491391539546498244753267661028668912725122073433367908487469220107167414096204347342421823101891794387652921054604620728280937488671705595002668549181482683180214868344672748349630804858814943006712517955372195976515908203226750890265334080385129650193040897951597513254615911185511672873784383610340051081277782078024201246061981564230544724932559255262365756125607372619295016837714628174310642415903138615401498234396537180161033458512790171632614205449813634650751815242269046403190902874413282862774388935672838213343069398187403405846017626969106775831666024928943089784628971655530203217170606835336431969355670582601855953806915385624770165909558684791292753044896513139710279186917239138746979996184776006872285706261011130648689801835575013718054982374311181412196900083231138604963371992973877008839809496478287405206297010415295154290461012550766275833613983141079306228066888697320526506095389913344744402609903070093982926593904627100545031961531204407438067602352555437313708224742411943834226307338555348324770514594178530148528177881582452706045149666284250572598811720049474062374643271005094502947358978121703489734108960338062142260398208485771243255453419775997654790195180587862980478274483145526579470058284870211621487046986221882982631844254957988618631792446463183715945819202590093923814046205395418128304148943986556387612153898290028630787252337100858978858949463608208346749544775294463700721064228053365522926903937223785575830693095934594914696396708724479941393441505479710548103063908877218951806851043189997672083498806387641771215891764582370822604539618398823470820861514578930610820241148200495722822988346248643052061380071422440620847973171302906777339857437161618363906579135456788941152765928271180809108857522335553732093904635887442771503704029020745848810149278717985909368036226949360150616067024428693569082548043726758733590358568923119624493990846378623435676647862602973224860772950931025584584806491312190533781766666445458821945040580343631760204910235721871499327172037942695915828640722388685217893974044519194534779914761668587149864218761056633870924280998146879882600935122038699147752990958362182160643407919750914508226840503810326426113630571043964534538368057866192821821678195039588668274846535323836198092997786733342002738728007837426153514744754092002731127925627636829858881689004628144406095477883818145949996447535274336699157309062292283948853714483298566076101600862784989852955522629816356291313681503547110288710672878430509380189348397356139627422836845836161263052351410830862638155917495387839201673693265783982092169416663535825501953017006598268542838660815816101188082039043423850820317450144644700149913173602224789287936412360729829689472382983257467480579852257919852155012535982448636103881269849666451258283505951712223558258456700091276167321891455571767158186672561004714000370733665087267798536233067928850909354015386763932823547835689460789120442805234083249020354832757602829893232203505425091408169546923621026779020166843272439333988346566534085581562564875729735854802087924587911946938460848419418470631734873337740005781713866383869989233557619773554611152123524840009160581997561911065768019055374664720713326409511126907413711188867738089500372710753232077605212851030662722160724701849549458495180765771154634842806444640536675570390565775693536055388523140620557089829084610869902403243547046362601643258878251697186658125557087712445320832758729933385206912390488717548348667121961954946872184032608539922044316409808047562437565612906152144288595611426015829902778432866520824134990183311474939658799437737463822418925822913478389025985102582061541626627390282211674798492292239746292194985606463581535000108603434608884288751167439957125775622748330105475301428924599577069707621031778020674667245104074330587404127676163082869252719259774825694058468205761583650739284049580552573863022579902101062898829146212197121216444352942763521402182840491054715390262678020842596317053285655671703717777498232854105793998863336433370700010179471333168925841513559015968749496300544529430679308155938687972890647900228717793661423344053858637412075231333770692192609564143033000379556000699990402454400344643098250951304544094591625380568770569479959381138526218519034202187363761759874815065301642536310837196513032622501396478852251239175127370737825803887491209375374902348959961093436355093274406776209048766401540522661572767324526095858253143193722048563524380526615963250666052222526062267777164623262026070360580509889344112809632712504411889816516252045504951258959268035156231868837819459165199262152045189837126799663112006714132854946348728935681183260965523449996471619701607712687975322352728240394432526862443209556813079571722467614247056792646160293135907493094932969265976802115863317041553961078087709411022804656498355256039435217291695172154268450538328423981082368793757129119571353588578085208979742947683187431918332644731898706558840010347002578378582059512293155705228060644619542085776917335386652833015643336338421397785117470062580366445040255691047597339446143222412608073380002155097793160504046815413029051102445633161562368377996938108293652354705986112700283485986984959796677681023546216405396284578077302090853072345177077520748408173787040676568612752681440758836131115795256710258851830969926972120773036717867384051648891354663085977726855816719750312253938837918475134826450670374823155346778622469373201866195389819829671733491957226920011499476998567659318910625268356338959676061357937688030756195698281045950334597577887031464820533846505896816455944541024893056649596616361876976178348792201932303324577904890499847205968687158533461853497405717188657880413097723547998691324673183458621235862201548379235315851676956095331225384755439703480037104883710072253669167826762332708759239885693244107686574592205847326612780261169013605989343834489282190454174831785697789343544645933612960459160209417176774697191714477585639073527462221071495563562580611470599122686406506453603586849295521486775127422070694933416839664724947493689508006345030082949830959748527319138544202544697605033150591932543592730034859699513459084583535259783857569164839224287759899181039559606127584684419066423435315885630260824857194572307294647155712770723189836485248176616758700936556747053826112632876561299762869457886922105468676263176261741979283203190863878880735776541074898131840498163477608448328542205860769658791826844835939387911813886048746567310284127392172813127147226656328422012917884615001547585947063720891878673941029486134812790551828598693658572457375815419235563686137793835398450911769867768195669456910160327867316605033896962273927612768828698819240893883232844358086816274903046332221687655124134255064014676193247677063876911221296514181114187457124745319446733700652769194743355806833930109415772023162965244890677013519921352366432220561621625632198621080187361029677963558991215169145698267667775597899661755159555881374199237376307267090691583628793152234455426205020641612204464741541977657823506616665225810255883131211101123025873630861578749405172847656616525967925357217796221226275695845748022147105741785304466857992028642771189748725733385537708857820064340435476932528884206233956128399867232667155968146653451408497405233720284254158643102925144552220561464601084249386650621724240829295844843720610919256012847907303520505145019002627640043237385054654779333338267958696577389908903917734571317347453491149175729809441591083120182308162302132119425253746758616482118469660072024121170770700004597828193573350555248742242392684289538589664948789892732969252141352548588904105104133056791452202592333738954948983700970387798085298112900081428300084227388812444491536359352039457555809452872827439757612392252232748725308135900751787323067487202930896173142589280476821955051052247340634234264871844641741554934809209000288893409905069243704338130806452570851966343126647882891145946511467947668724964662113291424781038952380887505949034047350062991304788652451258513218307399400101125798720800621721795235622334548641750827741602870909922121780346216487402007096502979359882832641288803799246879274359966492000993313342495415911835115687890634206455819904028460080457191492723790300988587402811510918282682391902418930113040401579669898203726336126922657458177290828220754586735030827893877122860750743051287713513041088922296204311620592800138755377271852714024527722507043541570091630386359697668809278985401537825610964444315631244596455440652311707532891181535075599847534042192249952284065295780324892643717412081309702886424994244811514802497905229871344835442992167365499920427172683632594838694840724928511956493900522338339327887511952587031021869920249313204150187663216307899845093687928703282846683168144064267523768543905659777366786484452715287555376420696676940471127180538964750168344027781512753190370065405003625720410084686040970175518093972024226909645560851173159842661310630909180296028514299709363063044062734784792138397627529230279812971287336911147147791221400753806571184692920081986110629438896030039265729368200109252597225383979987990283637486784878798551245728678512037525896742394384568520654532367872513194848452071524379564615141228562143791796317028969251412857154995912139345629732079763668403221392333067162116973591341681850996182505088894841966924312675992741759735983147761567955867164398234828578242814529233555330460502270098670782633136955406237974163680690444143874936197958309410822859844321990913993522530133845879933266030644838998677282568712265349323987920490661819867463478269067520896928459124825596077638430367302890944978504986725932749387940375382240208901814871932682931025785676620125582513135647411157253920907646000782974317697853584154493942087822914703967341038325435494050232363237709902738977897480203962786253078301037740085303842824201110563559153400135750273779430200624732258332668577395198574316964063348506098097793277887018523656573680592570258488293465196566554928624927261403393048421461723682785684417411046061331079277179559598298643842713769300354969644625922730489691242983416135309947656063457063502935138923597081825137874437787877616937812210077620603048800684320397870279307038874238745745893853858847576810925933510663332533461826619472495364570673842346148561469299585417275550763456512814479145028826470217390356046125485695418947681085657342978164538002888339070480115794917799120765939370195081973316142823654841804265957747615039823902923127117686948082442670081669878182399431785546176086026161560582566299849478897376594856233213616492615979117824055919330866994695982463998893606487213381927912504481988164637213933353270521691579370031751493902337428307233365331853404987952869493354445748490366023408877505136146837381555552965701632704147139637226420332099976562210238766160305478851798808700128221921913168397484375591493696635226833927831428685231333432504881512160019308974163167375689889107256481225494492263371466714740913408981453465274513355702274900212867215332118808241398072454727368505120715545266815076802328043127855977949634789009951128869743547704897083148975566907682024409681076269563670785978283289785255038462961776861720395993296498378648185376482009276413859436054352568146766150938270613287877223635877932921851706814724237086630798219120913126441099404319961077683184676058308328763530848600776890855680370799191323410141003674682274421371245457048870733342911846737781572097540544000723165418791338035027767405694256426212324328847327990307691087359780046462176266121900323451015203153720500652053084765079847608291042411490414338291325574835887077489288468981902110629735930628938747043816606012418269156440226687198805134589916937940767993750281312497179105840618529016441972712529865650120588622361051706442878842539383778284995253027362134041267223692016945024641348220487678038036634468992035664841745814478928976234855183245950759946992248851210387822009248302090540641288767160515401284292118126033157911328813120979132043235876167828201165301262291224242741114429531630949500807787347117572748006927078592234414589730424334411165480433288660356559944158376441769022187437572264912914727504841380763414855624316078483071491417087534047109059431693003896001820662152093070162951674531400610656831784316718399614762741203646189460398499890841722934918804601846698133625353428594161599371062362539776492601555443456847237947653301021664761016292710509867747781340417298516036585289851222017729049976823633529819916663632064824391788084006177031783621126028630660560602595264655056969563644757733046132294675997634184165445988626742939243795450907120732108525139498964411072523868697198174293864638133903499920961368936319099921139198555592874911509027107918962962027495937026351891945030993262867051211742928776063356545148399441744952764073781305699836779656751269402694506751469886191290710545596066543225742484931161652211955839277132173025565443375865366332683792165211568487208461759130005709851373654605654429221147343363252639561565119939385222014260547423772538824060635956343486692451043351167825695517599448018960295643407502503970828991531907298853959633863598712141518831555067334472231098518141659878002367706630907708505954411439019522904730057381471893820122514420047364709937323274274807139380674207741548144019528590076393085110859294590933668487985634813014738021821002390230947243696850745070473054326589681593812188600838100065734736356132029581477715628459626538175329883616125984519270846011894540932079023918306951323341110695990457946508164953797913260560461438367379162505036894800368544221973704171341257114406539929483928300936127389237968481242467481030970542657554534271751651460898385499765909469304586407069827667572894430059223286522923575965333303475558178664781897164183163048285984474438329521881397733691927149315644314682038335568653302904881891280470055172178655942873492157282807074631121181604508833649269999821433613161568844998627214153203132557918704050214066312155403171461461749940282369627318930181340488951760780897638024421239719784828978009042508527499560880195717852306966764797045963785117934342834916483821221121001258744479727631429522889441885304686313185627675357884466706593756592388778041477204679157053188747498149572685887787575014593589262177562500539060867311699826451537093823019891280928144474965641228063658654265186005572180208233727717881734722978741614191089968982700106958808114291356647457560511643702077296278669841211544903817103193200411901023687758590800858316711074464754306916460286708862080619159613730779437061996111263155174540365101843302811338877876458893444167625850501992575122160739078426651350388961318146015964334771140880058708464295079651744094068220605992218398497247737090702039350744758433189963183467010584968294757168280770138800971737040513420163194127308914619564823766685840373144919381643630161791239884243216047160378330426622769141672955560282994379192532309949619419338202340346273465248903287347152154203250425879687875299150517997975616517317283813277204941620767589154754795142052161541476106794780512433289067803552533389503943299817165913093911854648188970490495448660064219259878730847908335312420756619860702528483724759930260213511872837270036192477590828227169931491155025909831182679659016537260638892806034256126944026491593579397174075802346033767435637940653318927883388806000011565303868592247993502529510704323070885707887408181441252426747387335729306722974016536884425184951242637135275762334430930664670118970896866000480380570212767279959557177833327434292701780943469997095329307213859843272710483349462380868903539552499976674373164659368466034670279270459979499597463396889509672839315213669685696130505952595318504682243778484033733926180368356072983700224724601524053422696457400289560230587599022168772585776228882158282713064230857068766710151649660955589304106795527086501985467900384591986281284903377884256128072671777234312205582762014548248602073541934840847541803981364202936037968006056544192585794257443032307695568964327476022199473033478280248453930324214882217834435003319826215391889356099095203662164827237610708314701294215497583402127565459332980924315389044185923568459654518142166666910362265811674024016140263574379510238025250510241216130369667421790449646674363666221611431089472281611335463155785071631031056485924506938727693559694763756487157231927351987692582988935715643683753602810908288868290859432391004409041490477911495442060657857923943229895757635342370694959684779373210264069879563730831500799733808906586009231691314539071608985303498434720756846962550159915716159766087126220947060237595410482974738281760815897852490516180458487871639993698595743096847506646370968493767110313878098527060172983893564151117096731042130917323692230801905289362416224695780644017787080282520684223927902940834147058299688236607578740971591608531132001176191988420959571632303107186674560373116241989749919833402297001375499885480441055762165331297811625571846006775625209062452629632616527320025670935390507029999203150516622149526753592526433406990153977065153081557893875983285306330815822400821032391308323200572295700772253180373174254984683111596378257665429552775586139937523655255940615301153722561465390349435891823544389606543115756510527807849159951909671290635148448484701855492235937922927941923006837676887571192891504590639089495895240285531732483753363254408322032719024715601098731820791827319484126330036757075583684119815263763298771356980294305397854854339975061475854154354900701523747934100241552874206487770095805584961551744057422056189273773311809425850200841789110035100095533467883677899678926590282877170590417402778748839926142853484410056943770607120299402758035658377525820644417071692314333171422018967236322305016070590840512477902317767155640575405366341666526336075284800286715393840399057428596772793077371540871103241640333511781352635856881871141959362331188550786617442190044901825086217889927438256080900924576403342379630267971918302849992517315021510324620580441757025998275427388021510233389966935136187772532444245638533214222914367993800767069798040567126700557616081822409220764630757116187777294243183976042920776437617280151920104175714016367592413497721180607223097923279443178525455512829776465361776514357440984681968917076973689814183019329055917592849204122766506184139008714828640198747251813097876836278303532939266375072897220653374587340478835324540543260747449165309085725358835424553477251713943878419385367813562413141025232563127664825383563576187774676508505808955350073313738101932503859799102244693937892672087996051125135946066503665199822589634322546596004575652496688825801500370592347238827754450913499449861420400171253513678709702141281009802631535538603033548678837718499301295205722498292492080366075892617135659818816940767121005684216093014155550999963203705636372648891106541444296676054080504463206965727752079835526244231155494543637001927010907379254918529177852809681754208631891620960396494717528149376854906509315950576178948123901998940943219676741143505756318097617580241413828850255271612239088450792979150916229676736564846588587072839254731841203171256816658609378800010523268094337792743610185476264731329648872980981170456602993486871104395066335329722268910278287305241450964589302069793384700347395638097579213470820982081821099263515184328664613231758849445446580789948089227314811348696319525532347678283009907701531482047157711048541810129460928532852226435664442623196123532183594078401901379946158253734217789316425427822567460015860114222056999327860208310080239727074301397439906632082514688870052695868280988041477300917786381956022451335283863107764191717880389616843980248652894016825624257698337500033441198849404039234969346523664173643416827037341140487520968041823391948298240580944796264361488206496323638710202584074638557488199290376488483867330867417764054597351187673746639782955413276856851435660190587505265772176680107411408895474352356579444730250476455724012249516433662544218689226487627252698004690629465600407347573210139563641066289008611912927404585466585822863457227389164366042654866706457151107363245125276279854557077816065115720871061759115296355866383304920806060073768972038809863713199104550022850269915210277172799733548905281421977237621463320677947839769105303706052266516929565535875645997553707152576842035884859619596491253809483373539713338128708642644446116639167697717492896794172513844499741701838906195982432932303269645245809751168617270164311584479213496144588464590368875925742281296459120929206272253681958615200209710790832244018653044351948443038221508191193031660908570331618119455218708542172875318355093581521602712581901578054702487467402886673875180850745802838721745073945318697032985449793415019714882500634361956580767079563553672099791298365740715039446220747191086662869149017055469428444578663586055660198056569436625993317906692050603136748935350067000453885787861803624026652326140113250932156673800382347376263261534478068482452887151403102030518125320725263379916241898137168939562978159088989171203995837268830735326009005694825757426216944281096738374554885595892783843765478746983526116727946521389858904525913331081944147771062857747124439048012289526485123578588608266067521047034294343880971208375269098180268897921393196528484348886554826397725242689698424541308929712809294234749346389679644764871383088285122893432585103697698621866263170738759140606423133505065815736242860905894845741647165506995802093446359846645016616751617921256861609923535583958052541068148711631628426637844791545230950740962199548488134666282783820205679329847049381928352244155118087113807991939002139525476133567707551885728487479997141302636325828819483231591759878087853988260940998543932493310575137414766133903302084257932393069951988157020702740198096019637067378360388110427638115721883550695096426164809786887378677486658653605063767928705964801488267558837727320718755981300609981697604989164372834759399137819546209354102656022211719747831887556819816627779593066951356564298955702859131541991886639948999065747236212052296007539516484710378262709731544226041320507468085524240295864365674338110306234934394416399880934198148454415676702514624468867944263809192452375329894794657513361807843050405988958336546097371316278132552867856999521138027294998550735772591705482471140668295135788190287183731478806408485452548803032391901022882135299849354507547662535026965726909881062785584588654623475798175749106022351693520516075519731266122856296957251813649336770375607490102037239586198408308860250850916451076155744797366101519167983202818181072703009634167799208941546989663175101703572357456277870140273152238248944903471481513848093985760150974997921480109448032842887176383268195106243697513592488298464034803802499389469266810556688818319807168277873867333781737967995950594676781093826808093525509858752200402095565343338568681240012773594247318246451092909197775583748918151232161291447497901285321407801207953243582593858047777276265269084961871321500353987678167678878991616783549931650124618631355470447088068744400622917849000592423173732442320211992931344818416260977925861754893471535127745280872155396277810025745586791751531428467636502891750084399898548555368792124681698947473523913428527622606409778204847694766905973430145683787339168155625443480389978390717721933895861299163454316676192574127425572406657966252176608808684198646846321088623522183888950406312822230529246150923208289523456126483540492350888215172549892776808483298631619070042361154256359338180801097199199514243382625600757376331952299518772742926972013690655340004191893792079780048932652784710162983026040189558718603606348755146501094547947271173053034043118085864171184398265161639347983907373857793481321987902180168654102101439685927030674880496712897429735861739864090698646851684281096355715449414453622989332858504565734566870834028280747345542032134011056664826055640505695267777084485542672604010047832226830699373560713635685647460602268860849135061751753292857522698761052507205587291701313407687216801920777551611684350598853891945941943462706402631598747174995173614529085920820881007939356985457991735173359019491820814371132064461348976819291735114507281264572265826571280975554377360335475326297285340169086914501222202433377110012518142973494524375876556834636041252281662114460144750984904333406304221443673506187573479250713598075796021303175074055186580082384585166632340641014065671547340339096294550496320030453512634117353794320826349620991134578133994713950326705101837778123380913845150809825983434927510628900475623629868186578488989730659548098505466784031913152137293329419798547937683437991737042020525891818034550444891881969580318971380528476364206042311485675770580873539349335584392811061332669518088648267623492671266783365209050131643339298506707451233236223219948095974233063623165419322753031698691922938131126131230594643510594827278850381451415087485637177627376866685772768752474151609286917733652131761131590822420311264361130086667138412794972283807018460011251218164597480894917185399703191869936525921742567621850306302730066516089167233592253701879988389942863888094759986043163653352178152837735415145363638781405791471181947790975481967831475912273167859628794449486314015898532102747516719127262733042729215910070843477411576155593616175215277204033087108804852480261750505666811545246939466046754762322450716592072520718973446495403207671914840914796096065468107457910003893978476612134867514266052777381800693457870568307935543801231686277786102948289467012702515301258126506707005889249293952227155012987609205974623799137117725019109520439819938407155747137146829552881689196924839606765690023335637911425444031771983668349034163755615314569587645742706614260622383473223602677262547195172742342182152522319889717451888741304647852647069610448650608102165270989278339301220370032189375417016698395388316868007428702783135301493230764718095422049858083716208950130502136669204266728432019597156459705116590836721072387186734919353397236347141235634102953259751311336674758322306084549129397509498046626542458591491796057871401359085217386506145241038922216121088636036847638470314362197278208236800219177533558664223548874107426457380976523331788351758093819544714505883561341289963884766895616753434417396620909856126518987289468898560179990208340802134011290297738426764240440057217450786156656732041840658088262585038357469971039430481559702115956479975584250706094194961003234071219260226888364319240781731656149367647341938969238857623319415273943554847283673251675800718042444999076055306133571764189814727066491330292845310495626468784027140679902950665169251686924763783181430463099828917220434714382881942192802333744769828085723313540651291223393744566122672523977919914770967115521320790605465244523535597765376402342882366899648181599310069709225494548281343935961075741145663320884824016948368135441771483684460734522806323771493910953717684306746438092878139416179945471348214863105496448716884716805942948835479605842642495487667616656125447414234400099440558218233941753733502058938283584317605673055707679296034043600204729165483877425310084495990135570454831801120681638012718218101940794754596249846283362773250086839998047860667141456597548449736278138722048384223558261591542334769535993726967073769712667705915156241973230946354881054082843008676160952425703213378155389936661800965079741641375777601372750643247237652570725158378685025880430506557306248150662957867196164983680254434896589160666383494371498906104707091143254103517380463185086914514309575074144143015483167181400384457894859593362055265182876004497457380920354683466451497628886743315979120285503123215982646169369421795614166040249984241961726726990655098160263723661300286412258349516435590083942406365400908633405163050530083607082964140441952307345636565338197184558131755293332378110905845983422926447122541654183049056217004007030551055828577327644714205584632629803164689230485086599107133806231130337954409093890205529061064457688582602379242895464785301175333762050148824623990461137514094064986754269947885025337143000275209360801851503592494380122128873047473435190519656665988365814399843202248282902295473041151472417966444931437753607053562350727068605423087715809742540181269898792607555738452673575930850517777889585031501376454227109155733786454660609472052154574019277903382651625027238639646117610937560010369234216688409487969389401095406328087842657814605646151968864705778600233667321652178749307444648598712324576756334337592866578542557061682541543061923687508385746249495470828875197569800630205094876564332759066374508097476334997717448816694834787645665072192981793564705206057152067726732019783955126964139051258170255162275876299465547219144807629326632933915271133664617852450839454664579956203640500815648124211624302314616330646677427553682321258505856863930294844646412513126618093710802843948970707411147321567408818738115093290800719002053446942667461897863827461200297261744801188145173595386004155731780619072623605119570953582006801201729314711829496542630620863437877265606156819445003276056196844932588272141848649828385216002895795452376619089647240469660198033297011441300813833744358716811037416135791201663247942807306352299209759875402424511885581517105121285794419232920686187540200747128444973073824369597635379215860245710397629648888890975507336732610151174263259230190473182674661628511806137869125864245060492748150081318187202932986205532558016563573520951986320216249516160107816722608255150890565266302259418330760788820783927343664855206746738934663963357784686796000215552324153465457150411745157782969184829676437540446466717233533361519510573854723702486978189999001318145163852040766427768745022334933266360714562084900984609616499337512089556266840774105409630900128161920542049831319389005716690881374236147478304112243085613523817307352374613884737028756356727407696618138459456935440181454055937215569541899312266321668016075528113973459740318293998184874429105712057073089059487543786699397475369195976038868815122834496421120768874057589444887861643208905777611497180613658893525192003173420176329037349949211840799653929078355922847176602159155160961613117873735564813647811360003782554775277323099481686042333103159354147018373247268147777832142702474221027953011243607750514299816374142953124905353988560463188385048784026221478524391090995644331088604526597732581658909727736298862785186920701599877941578629102499238483260107769334093145805896016154503387501366322148673439013345272722145266322061098442124872326005718645430857536042293976849328204543658099983912409337743835864059786826206602683479544426182643238584100580521817745913636913984931206887854964225072580990271498728911591769536255642318658443919567637720736962612407971612834274416075137414019589257523073286960335458926147221826903560691341070935263338646581292149102526043906145820454288188156102381873179345847543895463175809033143104579992335593380865522349318151382115155160726071724990906358435823187629458181482116611879629637191347886298074042268103529796800474658336781415592368394629102032869768135943125257597923875222423540687529393572799854683343681380566524058901435634202574811758842214408114562855358781478567027988581812681916170330617491625294634052914329599473398593559387157337844070037971453935326146830712618489490876104563876921281321507643596296663755897099869380482552538339169789973991071837710757939542374628802631131750745065797976364460090280589127469041338836118716366076100114401386851650340534982854550314493990644595519709252142846945133678830804989140409265272944205023277492274120586146593356884037931337659924489864134211633055793304442083366941013349698892470891013359708388664814320204801896754149174884450289962812245191033561996999042376827752800804667175239564630245518160062583225262868744897926468383280020223152974220539430191832427731220692458179428056910825833998675378421319032422130799524793035721474788449519895819960303928592595095511145782282335449180141129768133377294973214109891943471993805011441947063485057294379053275634287128887670328853602778832147101550561714623101553076685802033775182748757966485859247532099476339057107069936087305798694526066977055270726458917805205266599317798626727903162108032390352300377404375586900000166540194620622386965633108068022417712699681910655788899287794132887248127705048016689403493332843522291095466060198694711543126256264869655545423577850069338995399445692487127963567590971169756188002048018973948920252356827639521132675827662059086780708985394534839100779468884773072974329445042688945434457149129023428091958949674783790531087707951940953336474361848852636923344642427594161266106659859877688841576247451571994071884328369521995764692643274708320008211157676869786258234957916693254609194243557097414068053197222023556680156639554600111285687450677951686045774296000510407464409809738273789205907483091649838144090683964904506818018246378895139157342837655308323902112809800733444716861061976075110336842376139865118895885622112492100997785577049548127514909331251011624595743924031711877169320851814908587157210185558182954091562836466446145742005840223536400313925116414677917789187085481810358886060565104413681335887873353632873855030811712862748035381993758546863813824062975678326863032334060314198312586890511679312436018756038254890888098691365078137513345050502128743045048091766303939641509033492809255659307174982430897386826918337865851234343611731192889483536558508367274642730523875667135282405053142208058353158330576967592464611940811762585292950021264972866419166778800206288173134767747519644124559589567112412694435558109072410615932531441382828464765548612335549619254962764623422183477786902460694979431064679733518951939961985043829158323793481703450927396989378091281243818327943253034128304766149316450557707807336352772876916023815397276267220451970495592702501149357063837959157219037043983813901949803841207778967358006732298507120953264223678739499564782681785005205588258643703326005806759256477942783345632394460756281673143235728821871566213866003876671198648664735138480113901752994866794214665894115450073990104350272093607612674107622316414184141247426670230793363634897866717156408280122528571998151474347943010589572528704598825060722770474864988121457103634450870137863673282439244722705944925691876379870715260558787864994852793146948888394262698980367968548356510234108153812776912024673999764421013957528640094149892518636882284936149906830701847500014591007474881573123988760203194248377967692966288862423339244998167343426896545793379496201469209956269571412061638958354256524675283334577427681915075993682447768850883040755253892393008192482476504802956061920304140099089040002081819683956202519817686695963595703762952419557951575819249737478566912153585947813266833362527731235034820761297610372013676728585449225389297361870426260690340422085350739614790085984005507206122168284551558861473624645188875568254546246066106149116634605346857536160590692422105565266559616024076216659846291265867634270641814756605860074749579159401876918091036968154442283883474563562586656652825138878401719854572403426348057947994108194030484844465714978926749285258027259787957532498040381666626884449540707252328504990873917407133304676011196438240099644514681399200972562754839792635875120066681283138796332449594464444849059560472951119733508836050151764566746443587623891084355218315871330474365686556645409365310402948547608659024261579595771444604443777376760017629011902911964796758150867657046927855526509694960285874489667015311302167483657370552626993285905203708110198137101603493563279978897269732011256948472916448134549738493954182637471734051460546254417342581163992712733034121256966507717610449070412009079453194820682980679380158117600586568527959879783171294848510579690975839784572372069528885466946989588762719218543097358163489618313228021275165838978210250334290426635541252659028326140579690352740000478147356363852705133957430392661610584049463320576598830662016933862793263415547496583377199184719481748039323958607599642225289722268488115228949142585711915072179020393932694811897452132371371851348364918503781366749876563432171672500977515217953046753034144891987573217696983877211129038791836176176995344061860407353673545535330206938106000455513389861660872737799475827696640112590683365773859055525859896697828297573497945076204183642221594300369195207802963874151481764015965144990980516481311949521616906387399748138112690832524185259420245435996708926399322154040092399570918000713332085968427999298672694315970606066616689245741833141612342891353960369462824678059065621169335121767011038805036680607655517911155493095654951321356287301602927152054356009292341310276508402597030407399157237313795604859621508308325570648462582107474355956909270996192857047476027277449920936428265249040403232898256992608635707556742640957502003498129853810282748560691731175938461550190018719160050710818820952420291983633323298587819021354899068135949625533976182384605588255017848289412617126600108304482880754539303729423585611366443063255919810208643369303117772625490849590451163818848565368771484961762487334769696856458298317993549632183896364350212244516562082677287427565557764231976505710505585731831803828958521748194548142732657741038105389583461979775374242519364834798915370472810275874348540921748419200038894560083927315899061949544006898560228694051946765318915566243897817692593406093754896570942763396966703330852465327835434194087850268834922627395014314770929792870027610979830030043119859686023066246255035706080246425315782243883345664034060260627366211191125159609076069121640835619748006821342519714076118078760356633595492021339275919699196636599144873699644749583054882808745702255180942955186201088702773720720078352445869042079849600474632416812294594080803315186199559209645540283135487217621122767960361107360419406826308986631624724246727937260708754862180715871086911743288673631045049991447073806175298939228453642200621553379216226434922420988320672835491918345066213392700997247893777544042445274305211468433929040177716535436238370310034601613977737974808371020800794420358166628245192195308445837087420787116766182708520779296509983303000741067717478988452811357480797325161174184159286745998583228912742624129615914505022863205284292661174669399645004643816923835148072584486794504473514672124886001787507158364422424135280481213036779320068672111269589127534322216613568956876040497763446046462139744665640740923122685577892102944249820596534468182647933963635360188717393398015136773400427672027831989876786488275364029686773244147956710421320438048137803229178034032963231187623567183553153226381614273412803943934647362234012785136494410569380859097597933469164252704604707509216353013563598743355582521755376413934268918160761370314062722619916089740405578241126048092479606204300926097504322448738530022681344198258983681662750013218540663486030618412117620110330861361320341506490743176171302592408221525307180828846550337176942993822232914376368921739298000039914608620663492601603094328651077780923937193867621713266098023529579597320405603298485440200436328186851355457375395480243579767723872309870513139269978023371171167620826519967470165315655410016037111075588698298298486210512359775566459052479126569648869585297601447252276386331105878147759039775713576583522513651652870495281725172046980119769838646111566519495737098051128079745370191183293382688546089717219711970924062798724197379054630712312759842375590266277280729326800406590788967248671611361197543363182930816769902888395326174647629210342430965020543109730245406577328810957846898783228554000241251745366261557974875256433947585283251845119387122946623727628156174247490762413270781971167556624519361621017388311838514869025819840643658807188264081556933739470434560888758997790047535868310461982886173285133396793093890042307966075015186300922775289468543227475584969405330197959685057635874606433030424040287796072081944053317479386420914108534064712301652493750853065037122041549335590935821595745859921777102146832845338333859859498833134029162733193644505708316363888429730678177400109188526380487110953340101694142441841116479952223940461575678084357200215229186243055747745083494931559671733972183107213157682388234702487214234502261670037302065890544182646671197734081408651117819091809877681999060148678325112183189870247468343944918245547134268115270376764969843619414597334111115240724664071928486232626622031660224321246288689506894186313808539366906541729543213060207821204125999396316192944608891955405099973920217540433834207248250314067037913465504584507797729206757314938209396877606585563235967279497220702023272535881455279063136709835034731692435170061065507777691385746877636660123834188191341779803727379850366865085392219167365160945480204266997289957221029280467344083289402692652437268486315968810761497766103854790419719093344696021155509517508148060640035377899248919000789711976223208151230657088044893379825009148723528041138305915858925384424710059057987251894345695267172597968392996622302581303733877777649352220798412844154990886361575030405521449767760869444156664672623231119167625133762338950811507534422878229065948172218536652720113042357462784250201423522318673611659424154630940574112881521622915286026684055171733189506017264382082196813009867712711297817813776560404145108355785020000227943857357532813295061052812725917764475340473547243490485229807778303650602141089454477365724306413761276802321806541922888346115084384627327266095367052039306398266510088101363781952331825650243709938630592849758729751396372239971996958312142535376688099366993859290397719574194023169588738883367883106794608050733572470393155493353936813663043226555293442202375850371886383986942439362419809614927518773113311666707668492435863173217280956648313540467764539381080858810447833112976486622788181560190896601374971193748414557282948650496905945217096130019574026101147805886764020296433545290051061286127591661470458775801334818066326459398486121976220554455546259459970945029293451416593043382824262124290248440374141845002294293516853053703162436719967869362790580181656692751629836628353369693882734692842946938018111432069605514352448781505425170289752585055782519363666237127498368901698181721986491441477493037126179875884192863706220588016013087997291096046637770450843459068955296320695815537308236057885388315640025467897605796633095366896823834339792919798634952378408276783775939167111348429235136124500903721169511329037971870007305551934135057926158091185847308025438793238018230331398425769586438597913215930961608189598236412692245927180341744263349371012906763439019194019328452331057861518648143281160477847870033464327378558448859707926108861272521583298294686651840859987577850091958460716135226744276083591782582721915183610537874396242112447555710606053202789575171268117556960390184440021893821079631536898863946683079701897473295281271143037927986338357900685445340176486156317319436707781804992883546981264310897153516436825496892974300952015359776086627957674326036175901846774994314054038614704002122857331709726213594392271492773196217721604717337566569966528915416746735352160292758257354448740926357003013592530252884122110157713837199070307757280354647123772718839906067441098739736928358832798407907457104531842389955433488408901022835503178016441809997129371761975476976619526452130527572295390387785944004806247992101475597974448644704335040839410805434389334502715256660699770447577459490920447170920063691361000230497878527597627643360837393220112165442977468093566466259533954318765905761822814299915241486569814800430422917609438571631543350884577281973119044227316191971718230958416775017869195732040955951916258159531468615111917053879272853554806687535359497703360920709755810334828736675140655331391252519233969089128027157598364822121430660897326220487440703087318776776254405257425309983323563867720262149642009263281384968356526621289517365660799838637372770323870603855452940463695906291452380438632026891752492487566811306357638864627105021173920457280551438189989097394186445432103169934208401600470218942073821611821186235805363512753647051155191513230575823102634843344855914060164332541889057571092127871051108496949227506124777500963515621322600391354324056462231704396419406919857450277936925054886645581079807322325025866691864005897294748877030784478230286500137719652741669772819247636243847287916479057472046121401687461316747278288975343135299926231605906947047555214473940065600209289018167680331905872813259077614028719631041299688246343475843315346647489850482848190824726345905886291062236058933974016769719349638873807566780132005719722817543072722067180356703595254998074882689699150011327608695785939937863441895042596060938740591695203245520654112901395630577155703974731293290345468759908704689606085330597885914047411456437075392333129491592586001012047787142351721102783864753603248612789136957657147535499205261691188780350753449329971639333006413302046247597582723712009698753285494043562786355101620540354105455890569079005246942334376107778991436463003873762672122971170342186234375857662118415236644858968479312462459748843840646490253147538347704889564871693681075460417490611990832081621038623944386824503432933336169984807948682787863313731959944085997864574283715685762016222664930392521706907287784765585858441489860680541751231747296067165022992542378165535772446023574832375326175216240027545272548566033131054712174138302730657727144700552768184149083332838613968779819850310280254982562704823186031990953553315931127946967728813933933778504208285768519955645819732399087290651874618944278404960347405466221874901479121523011333971028642567514171563944696965505550835409498596681681358394515051120921540670658912456789094605470885410141717395222495115277008784863047050564321187528858836849063590477121671935708943668707589106046670558007781119039019170829496191056670216942851755740096844600589432993438184493582406675874957980895321502513736271293857514704637409921685069847460826865063650977614671094488870549306508093631658211484593190658185965590934126698581071208645528616892644109016205127633087816420157132080249781187774331518378170238382648507671400556976531014545678253092952885719286493186861319525930561530133150399047841379238095289285382969243281446436698064396740123254674780932880358236977313985910277405328015431421969131590777495771876827281256934138879345435655798195805731218325736496737010769545052771608589871397681041113603063087029761997073869458114083963215349067651188229745136916586496831397927556651105005900441282810127688705824254442428617639001341162593658412360236861947531429653276821931403025487710120362114889249020935575457117875743592820197491578195614088319798614287360753071059455162942177748008950071329651487321606884645966708688749412327608486736198627968304433237748668972029773051891790819315327204692797993980933836573223062523219508213971021841828699403536319837508353042427542198285467955003171602696518343237461640253034665706718737855350206544002810780069657963212890690295876421263599953880550076919435668186028170898807673269235630497337924275788073398655798317594423268105947960820759546801835706860298314179164425358546582570076493474484421015168746769716951634210817025745949149143951416934398355955529030246402251865333332433800039036039195080787833353290845575523097057817007104874536021567505065466098894589590930960031968591222496602893493110919195834021476860086060042582290511069739245206987665272345174709123844744106008310746048575437849595561638310576048413114887192712353029704650993749693464799517886721853566450177900474332609210902163835117291755834761592069218804369401328597767723668123406719669740117258449209196169608123788084329776673099846109146739038096755143513068958863175054368075286717821963694261577227064114815583019372182386743943748147870279298507402934393999823622403394317235317616109049897334223097720510020957259649488931089880410930251694274004276879286943397500902616287312673036528465032496224231979322424352416579627891961164822052683294791815108625988198552930567617985860970101420376875148990030254115477363417724496237721855710500099881687771852469397033753573984063064893888811806537808892482593957301900834636528315699641173607807723679370899774688438083613847839542272747184143467045170206508110936545753455501139060520011299360176267328896962799826647981225658344984468384519523146784057132728385774081784143549958305696247445663705672824007668374726634492147653841953990558812241054898605334371936850020654390939981067688838315726423720880949910290329759892333909583580198062045987641069837559087330526549468901040030323898658458352698664974787263431136026421099992917914601925913873011969429006258403457768473260226657194720822642191033719162654580869234160195426775801063218699433052186609244777402118607988964284927139555328215493367982225125815322707383062913744121409978474154780510961505384595616032385955232333093761429070264285683950443907953425238553736794730221417895267537174104881514191360562025278982768540574392735717687991843617515210072344906371018377361942996119197678088401962935503286331134918769983731414382773709305239901731884153748598335495325876720357532536940840457138776320440088124168687887362629564926129166674037286342596549080886866661702545961575126637221835073163172580059512437321196503419017068114541890880771736063830777047499151176913381192122204847609744093518700513947574829735300661607478039828297351567788576510569073110377959597580443251596138464394651307894655292482366335496602847864183537613650899083205838783472849995418939702608384962306387438049374650368555038372499826524926425422221973136469728418123759616561732316580161180198456191791894719344193007564884233346431019665071621748386163822318115231308098610928149538527213587620070671650933867929782132211922909862501493822389319672789085831958801472230695485962919191991521230275967525691711315369674846676877303245776490062427219582520947987712827821064642109937243292676603852912548123598914931749025375670073013319333265744449653419229632386234303232404050204639462821477095412265112465081271141966672173449766881423151237296476288155221647409799613033402601000840327036980030234070611913669906917143737771627846779150557011371627410300308657133191456889723057039865275382036493734215854687956334897512368978673901143941005407988860279757006346110883632312644429598790284329405449235577595603443646539050905754137588745497061585076981028386657074708363607022377530669984710564114030881072141709187440453213706781878307488191630830833348272791523719712798663702420440709112383368374899253012657568782060272962871379870458337879153048799583192835165256430290721952178706393715433012261384556728035610183341718022896159033888181394880024272524631452386012243985678731279707025965399710206949276541153114028828400257114870362195724052496351238170317844705554659899086920408864094289933136378471925448174832832686830421346031185257874290101188610067522930438956828817405332225301340687462397130925222413356339624945367987705534938866804389956581062303740460204306544723646182213855561673784412578320784614673825788927271233306445022567399654372318262935927682232725353179079234793369509642377993919323615840804476062622062815758705798430107405202564739628780638223093793270460137577308678243313907503621897513717356892904491091536459023510715754309871229085209017052417185576531887204538686140049165179862615583521794007512117216500234448415843613699381839818341062674459222508131419095516401625648372787176411225297368255958229579218456223457112831863045343088105744405663491397416855334603417355263075464040787876587892152206386334226315232249429944859051750868926061617027272303128394181502663201116171894398513508107445682026058890647754928642667565264610352698343903480139523853960887307285025615583457522165748346389238226947422784561709398462814933887539081247195147794489209764836042895992101114741747913417547930941287893025356651386448689819884100375646006454737802867507366814529514934832857737450771340472877985309332173405669688718035511691915112136565477172401144462073421332859773012455876221156080297306652673087525948185529586558474951042531412289215394156114029146649384556059421498606166982877021131919774455848031220966426003479209835241418788557787469691663326829491004642595764925534104445595596144157876069589156185630756596874864015542746682305294976745357888670739396868793720302791743170599572587761618530577805378794580761238452132470526960662905692141680497115421615806995861124180051675395773847974597626828134200737236961494587625592410078322506302350875614375456706830212864089260317654280913846512853958168526918572121175229865244547401513637175267200992517241448580855247337463389895998464426836094324392931636849828395780308284280791990874226754848346993928478149738702482020263483292611073729087881784072417508205797163844767915331301173485068099013665501514505544836833572490314320845127419176702014204532786392128770324418950941933790019456565465915156594296040318754342602101460354627275466060650323843961338521512080767926467761107982054540000966661343115890807243016358071806014345754087509420368989347225539524604822789180992721760866344444857628242206820997169702890965341889589838581097459384908167734646828152315808111308838169520993768954764920540659485046670246277651022200335225643536100409400366271423104818010745368914443908971847438864578200002350601256272822244176153051698104461706904952789388221372132003186744672930114319396965148403312106658652726952903904490826240105436757750074539716932191672334387234898507412687827434435827666849635866831430918967606420024564423789831112644524132783105872621089203733952416286163444371832592990457549387372277399437426138112766709765310795280141534850963415088630777519216356362350712360556103220787521889875142016335979615172280002858661733996777669048598792416555615339444661687862022645557054384203898033957410600089592520681743684558481335530360372338348285262748350435791253028742075076788462993694083776456423663045357495556776167849825588814041097821503935512421453897906132513899604316304978945233062255795299637042414303065753478587904106158990745803407228073142800684318839249770717074883071176727946666130884775473438848819745452604302490467013195416935596498084421464009559315484132132181124229168090527205854465899166236986011681084621873756223470559829420193290762066420668752127360459364904581994822868300553247678590381665259416824858078978262172979859100236078578640303411631385514249109607568909227556910000856945749031954395486958422523798037466392960662163789010842669394819977187100102232075677806189519694876454656432675562119630954591088532036371281245884947181042845809989853607933583268269133704655383991647768864619300570112864671620542349083870877527442879154093299672188275488122949792997149818074742246992960319630809118427324360432988018922537798901759138972864285604547812307459039362705193835015933540721656853475619501353628963255542927173166571785039213045032517567599161614709228336423120471527734495241883058136817399331996876314843303801863879137920707692737294638004515501531836695546314650413302612883156168050258342580805792363780795502426866339928402594876384137205839399771133333688344865212933168518295245953813389332277932836985881498369877527014846658646421879264280326726561708171553440314583111809867866221550141573427260755885405226637491770697934990176197471957816171586194510231006184142380384654004852908819449232224916419582359994922333258969170517690753591262191233308265688217819738495452548204410096277992239897968528357752002585757365009402452510430293722246924562174821124920424379738814133247338475363625632323439387432425825934362507093270913264181310560680166506873207208170171784796315017243891496888258344832841812612402337218646991734268711407993130502064364440020840968890032559402721138068321095967619709024800351151895449727354975605729742180096263984579649916088269018008221725301244515585782887592022410884572659043382541559892882352588196812765361963725322398309266134377904782930803546298220775142968943935943049995867130224656615996947486056794082177545656672094956386476924223064209332495098046211951826630268706575179124120643075646959007918805057585361135538304102814191799968507539419721976999217583304318751210937185234071880836642376142557127965623481121692933051349578059672070728571493238396166898587200782343017360095157906077569251537565578149916468170320120482296150153924454602375950272001989918749620594836736984589132799719392472967798654887114943345064848624853090948732660503215728419208238154089735405461976748458209026686469927823784171190272913760338928319898197574046902172272795765519357117884273450112865133970709896749206711634807662497291010304978604140421111325749169457082157810035114597747046013058207994714315689337604072829893086210826466019289302217310716260821844997513067806772006172715091503491743899171050266361014681484384800876011912877038882966553277002582871136346429957802424161361778636763674915352648407269443476334982709596064615851668209890695766121738285468413948208624119467569335093865943856615768125962136430572161107871542262947555963598037743644715942716669243774543749827960638824109990436246832712441978283894434551846867954823079744471873693427268112662878212529634062654147742044478042860412668557359412352105598346091967530634593501311751062226437889913373605702955912533939959071442537452682527691897291490598801952168612612780806138054647211243287590755805890761428174396962375488206214415072532284701379024570389475091261580122495121409739156101026165414092609683712704905710402494137223087716401602003047427393698593632180267776152724693408969290743400547470935431134592285168123072924458962691558761860492875513908275339142921938768799165559043231535632828478198599041726251791290299586608106195604480576868119645889770443904595310021147229885147322245796682892341020568055527901675578783280017774635756434481409412817688636712788686712626687223939317277532690111407280689505416715273325164009296185076454673044886029741732282953577362458295601030490802694362756005777323443422374911466071879791186579369009905685496942630342293342902972334641969392772089603349576015493006754916411801048647879803563753160410427468688842817203281865294618012207803107024906515172998478872237463139403495947511859469828499580188576191087770470002264049124912661439516165948657069144801783814870786676588643537122925966527090150429341210956976080764379089807428966126729160711476065320273620449614786699870172089612570872741433703402266608564885026655403316147574164340372411848170567243976756374447837640409888349592921979966994293169316711175306468658297675113502275740611500948664265580192477402198775576810008186614796771128921888139862929340255929326829125034920196451543423517963294536424737733987679130019393299356467688605888976182787484462044240239327958956880392727237596143971474249439790098483913500790412015624310024047088287631205647734747690295086552893259953706446617200005567900763756112812198660830931759659762102615852024457168081422839421373710691640772950965509103163391719972663486780276887248182425187977253905509227208631809960783572693395432133972384831231680314985826200009740441371539921672121978078703534348367640336611233618290675599840774298811104358749246105190374943241171257485763400542988785051740105223573637343524918935359930686766513273320204113709259658417581405768400743762836566236761267366202631133929270231016762728595853093193899495528612186879224570531977757403906911400731774995379430056726666542420910127285306868169015887750939732376476061255474911020401899957589744388806029975201827404239065761569633251225794059153481611916185386984369000638272690407134210269541140644209921557664734516064749521399458120145085472775347294038074546547167390970563289463381700956716809142936002213833309723683245097672810997185955091641527447434186815153628437298413683860899611903246429839393327944904677560742829633673807460671984120739091085263763184771468633249506561026840401560131415458268980603496058103783061105706450965670923359514003639323264720757913025554758888667864838880869988085019689604007350267094835004127785485460356514386410602495460906032658860182560564997124884995545283819748956260192007910933735309087939981766859142105693732564184619352247038759734107843150800408695418342554472861971107556967497255657664160965465363658222596603182035687758694137916201284608359541389241749015337504698116553977546075405229416128518462808074045232996552845032018094333442881849881452613873642120601850792895808858487669500420369373086207111147328889863838736345082179661277524084289333380319359875156932581803972704416422137011224690738068372086463014607817811246075583972782049624747580263704707687495139705279234841795470796606979995060491771524559178714296555942117853279858971626582748196177423672066078967803261656454725573969306041036337041742794033465645358803844400296764316265442061041676222890531349078082417200255314770807112939849171207064994958583811427279581133399348819477414713875438745464088267293510988103703030056543306258663685120235366711457315386794388589090013808694095904681094371109781981124890519759886097871508506551897555358629917389053016826733575523365502077188503843690863059689644470785190175569040880208173469283201138164552473993041124149173962165398071603241850255824775095758642178925333559912048869067266191184723967610221114570794565931375878430562387014693023855255890422037537762635711319661460552920886102410026424915900235807107909816225963433158836880830612155504738469644995532343960533308965974335870448239953603725989412639899072495870747772479288008778534073984234257893662199020776826484158516910763539201710614698697211762852451941113886370353220070210223503322987557009631066240867101842400282273208825131332883524230598674278152838785773379418657831134715791381287238548134701399211716466042430652953736011038731523926201816574847295339191027873650795042945366901810544871638085483048886399962245069242560810302020021945874143169611431817264650155991257835521628197750461282268374038517939211647796224915533973533242976694227057836811923700075228293686108876705689279043593240391907020043260108903967002731498410528876264072762919815354499925734599881823533571785748759206637312483715294480891918719377643853985251467171297034531307597261234978066158934113676506371769870579077718021661795064885033273159580351797064566202035929573364725714648674851374978126899595837429836121696290057678868359425229727155272808721094615418285875172969275082885385945600775471898007128986567444388730000829105204089908349135941180415094487319012703343443012516743929758148393359709916692145880543820397653822833881242197911847835122652932000540148478493025644641326779164971912704354140571173363445796483817777847734165425154145414604913543465977307274794382608493805889820105414870827628745118634061139706596503091735963842248274947695015025390236425204139676291073894876398744107656457564691748139865336876430235270892958568333949086075771359297968701916874045709044440723070994200793706410472892508133022897628483916941222796800600735227445501481160195945136961637958917461950807822181010768530940018538620483892782712352371147902002552718183826843889300711162123559232834108535012603024668764120598173998153858541558819523986582685280088321283606024184407359333234435193252562351623015817499145973353941481070589891684720179285503357129743566958265865572870955278241294975272650689647506327213807515433769303993805340371777990294911128406437361563749985901904004673886812810764113401862882849605481932982876350741154743866342409982536231979928340463971818770049416087287871133083997302675610879384595182652311234093108091563659557681392623525824913257314070379281321089754201304194578507733371030538825892498099720632179968079124367092413733936260536727759553298161508957455091206894416901987804904990865963891016908326240212735858833086573721627649417726062668610298208796367736077901519608616786082289569536665145260236957406970629932180261216791648883189322355038904909545101227627896662741434953872972387420574579360375184528409740922973949054187716486483038479285959176288767379183167486234058578991298956739314523750433172359388851132199231000832488092190331778919734969260919888174549244614902065889450921095516566870158914755957719257115489652354337779267709471999988392672924991958025178725491159581233614425177010939749747113271627154790828138063423999361765771341612846635634020679744258211123584743602249799281088809887862550651831581481810867652937601346619451609379799392739783812514235003878926013107919557151952820716719810716405210933050242442920479236786846480824008263617145916877257866760023051037616443883203680862745902764453382743448672040983880646959709022984017030581593067970545317816975169763894926903085231333983989395627274514463786114379430069413175835633336874774682555177059500196576824966588511317237562172156657365485121961892315891665784121767148374668986149550676027503575036368379870445582974362311823695227965537803096844740607652859958759847869704428467451757974953346176427963281255468362566448981524813082559979601885701869085316330353692002141913416085735517295447829501603822857850263719207653802574931047935957759724565019124246958148056062267950270319295341696819104664884564524345033903833235435090727032821541063108668856859500377336863343509062588858113797976046122951670027518663722881366627743765099115092872288657916007746695621961266347851218583723302595186643946578592209384200155170319250532774404847729632433720810284271804389164366390027151760190970715883575853485636931692094986137491079477135079505692825037516475434451218077949658771501915634709465469907475553903921237417485718402872638107917339483743289965623246982323872601568578429062567115941293611021835997388820737759472298876665747662273329568154807428877645083439954274936754580872460852157404185874805947923541227619379212797766499026915185963031940270665008675208116235110635872393937730418849112537253649518745900317845993714932428881124993117267157128133801724650282808517895569263699455418653398609720732497162703856752078551869709986897007135178696547717791872870276421015801500880058717279085812795279812032000506968663366382751224358363441921547203208062309527514384404268728612562295803716131766157428837315895820119768462041914247115865667361329390884085358856658522507153930926347530673339310300877573495045986109983818651005967799235229333110639190456855352373675864098380002149240668053483893298412322200608755457579170138534553994709604702380169988866044895241654638879902702709505094837217689166782790105238479179945815271011892645942234099126437110058123850995255462858577397023398535468542266508061778975155737588404506264596714267148449365722057942619683225972999297633848898431249783286098262219092239004442037576170636230741565985602801294775332593630108328530333158806573360943663709764484741444863476853070508027143957813974825048461655193442109370203846030766543456396710469397978729592125163652996433655908057196544871689003351258605974928647354732653373302470110127047913445740088166631890562332929775690892772289087826090697074974161754626273429802788079536295269966312516004938380441122790080921769068597886192648522345907644352355049428969862024787051016338983790448055923315743652435796416245424566581907119073094711436751314967670971000506466826695110027396300660151341370076278333944082097373517125198913218966295406787873646081813822323487631727246129512586361594659715543184243659431458987901554644383312148177222053719701106679077690187694535203316529464538867773990125468635050248471561035894650749601312482286910533804949750390679861031791464578864463524031980003904798565638668119882909272050746254128174011002713886163521043455055167555955225338253956074755729303310791888407191671560828587636388497111995191395105871404023834094587737185694532355813232724002642822615160036195528831559484215361931355449057412643553815800509701418772781420619692597569850700168822682091783674841017698004036680258897783039734448190221804236995523769682613050070898678875883378128219117640526156149777778035206661210992558864732345284939726497854427566854418962034662786093765482624479745020100089285859532529518348535794481563787161524670596205421338518343908203537138361194016095538967248947050894942639117076803165565187258992740660926843399949548794652622402774021336102835938972647449229337302981925779189474800122396642036026515772947249283284631726468987976402041616123998165284159433656593390422658778600134655560908498984466718371322996815041925346738604026985941247814132075674503216753761402583520043629986702237360281772527032898886577167331369519241464165414834782003578057648510743312161846062751015830533453967324350501209430998068860958312663954545961042068607138256238875762571599258770574642394328528955366897380521833813749668599221381975987816681955161798548342475705509876204736206006517193510823098045101386584916079100718853128086939953668567329177444846668652862422449738669327202344716337020843381036868079312715174455988711056865892174625903739088351036299981860448772102618533299262385093263632106095093443693486750762100178889469037983753714827607444220510060952516693182929329385862533695466710685490034318845307219924305065775970009743560968392927037048496587779238966152822148879601061956142702338321833272607926338044942261612607200589050615427481775475694664328389991342822590643101086006723375949939085590799304462068729599880487986585421414979403959656698705913770860488421618536156380679461008088983664298500298230207993600811639798159176689267192198500018115475706666198724737385224976075300516183683972422852339177717126623580841870062338292550204889383672133201964526692093510805709555393757457865033997752753934327080772870468851357027818131910906106318974937824017353922376186525494962928751119387873150692404821012975769537594223077366718986556519468516617494892836475721228170556476381741547532683210467855839972222394916884461487397767768404431706496560235557602469726811611554077388288219823828024528272901489802747294628184138854829768736344711972517821941816260433649153426884126597946117753333517563995959170453362129523696841157423248930315642746337797889174947152048018442412236133135981356802433165114576595615385085184881825305793474372556108332514765982798019581314551803639952668056406060296070066360711949075196972815500462989419441650039095422504795773230748203930801193173283678269427960815710672206986473613022046472162136149698974690219641678403639247399596505553296305748893958428427765294571285923668753900181912091239105627462816232613625392511282143160616076273770171969186661268698472062718714883207228046886463382611489160979216421756834768686434992971084432594844087833212686952387618869801385116896673211911712252135317796157861367846133992361863495632618146256506889757516636522863615455305694096109615206393528334511687033931844247058970385961850300779675142103160670770607800335840426965409312918484514724990041781627838590803846336639092519545346761634081024494520804110174204893576862957489350454927021782878882386910387467794706028542530581306395058035338578803173818366384847108023025390863923458308873958895208962696704152167394591304521347556901860618792750196926370176371434204048978745305769684763550602972145406299382122225224279707384033813275259146696428753093909260721458149929493187997338169271997259866889661726420077101536205423756809137327430211937104158933242530558432397375175208700881241195401986356453195534417127892382680465184868870698586849273636082328018088456869028866022888081906477425271636782165334555927614965965735722810153168248396587134638118573718464501979768913806805346092714391873223572844149852525864336529787132140388971818516403923433326954015089787814988292100527636698233564203601242843108410862718930812711714979389588743049909192006015081363028114620002924061647170541645001804956490559933011504109277873063733080636361189012550966429175515049783814487943538585594985268804999524088124449199742009637694612484969896777881071715578765491044012795307675071315929362995639258397133306896915153020177000263641082273987318104065186391442333287809430888582562648343100888230319188888064902193722639085094599349993829453894226274767451545373928083186245441261570066348291077560866298001730990005050290372624794910851501315792229563348309564525678980789568578321742755467596044524395969423847109281746822509142079691841917992081415073842676163182984652414383327334301404360588220974288182454823232690850716898664128208629648357364191955414954402246066251087991468619354992206323556399869662405694116033778166307596898949391018293283552072708509072619661225243368038019949063715975808762368587503598346776371279432962007399300438099493481067828034562688737046492634230121453117688358959742269680076421716809135435848536272251207013328223827789522628971995781440037871665088117069408144678329960440525567085028490277713698637269150216999364665941699876811953032604651140085158893504845878671024025556025208978303977316338598763908926020051605846702148974028905628286432323442054158863637361561975524431019978106445798392476789492927346294461226158654004983551661515942828480401713993941143192017613940477457991877024562609037864679448721192289943809356940173308547249145659070654751602936876753227757834651042911068280328248659514302938452565925217227985367344900309814879239364027783880162118428632221454230643750864037177667328273087403734008249909628433646888263006444482355959788541878616110565391064396739970966093002437557124141970753621369689062310246527411290681503363404402164299603751191787665680978446144587437581803659239976429621229545745764446906088024789318270880240636290477951298780038441395655756487388499149594837150434320959050108070028518025062507601961931333403280035209897326520690345522833414764316014360791278868336666853604589413833474767956272884880378251252336301714679074712277727686039451286212256052247705772157981699491627630281755924487212114748497274132862536988337617406796430620636502493750782617852919940833646175129543451984615282913667941696184507270916966859090012603247379749176478707877994368638307550879060563712529321819697644136097224955284429006269376518831402880612920007218862357462073751461369483400707353903499646478863187821918035558446564540137220398759138247246273574712690738414957733688671692005587247232816334726991324064617765584325293694893642530706594234835035527902449295699328002540835513422236269034099488565982535645186659041579190641502706152060473275609651014801650520038451230926773673400054234159410115974638663120091759955401759475176260702897584081722561800541226696642670652579922496270633951356569212472079205517814085217323276919019948857886422611851384673283088787992973120964207449186171677248056843008689129959635792662888368233331177865451543460952910887792880997909288869191330081954854846486420275620637162126091317205955952317763436576179212780006634956041511230938947214881292985732846314905579576449881490006920745989346774481592940082187506757652469369053156662399744223631769480661991829060463514639738698713197714315711768504840222841685848375780555093413875982727651868550640816903538302264475135316014350584306032289570568376734891223044482778399391643936145224903139559094392186358462082776822978083610209901227012526056064267822542410879820540398706549160282294492892695755803468324769523729990252488022681208232769188722779657509125339827882160964521597048938815183959126939181167885139909744819688466940755111370826696064927477240298129177179368825468315751072178776762859257691896756775767396258007288463374722019649521262857973504689017965850020352826459601906557787332743011645715402087906088487554515602749754479632839912603032242813869971753837731122155796629557586388057969578363650980258704914369139536081876127823897339774611483247739013986962676987887007661947456674477987997174375604399028340214562331393639010304352739559351655591348619109546404984297244610678862614589063958455459267447330343902610266110789696806456938993144506093023930216669984616783013807230527578987216206906782456681548455011683506115010710960759104408479590844920151773308348959260321268583175973690659596210750523896690651600690218533076023846995243165432363702066683776077935715714809033757382711411691520920808637629333262477199010133022248490996569389414541341080574937904756701541779690338895904726648260007472469213745860157522115865545401882166019253062781452697593422509120819645996411618352045578188059489700788319788080877355690630050011668986827249187153534425902686553167814520962218384808717528242253488609704446682788517775355090448766771161819516094963907261953352857667868268606608977044806287630544445152361787268820808188786017621294476454293300584666445227075700097035324126327370183191466961777139504347211318263978614240217119729154736172339183143233938297250494038778526222419515620807211081234200562611890170229604930767413642059946341499722401103303976250559354292588823712178843566584932470507368369005837450412411478705060648175508754697261312526524167938387159424905038289721565521986711086032533846274656360721613378056130341391397980719035839398403631568555709135044010546242298154582158400698258771572896531102729895076146508701213445509586912138503960825349580487855864360702266430519337305493312933869234310537773534815310207317002565344044430799295818351858740961656036011842789836707071284408178454919905441066807207329549207931846710586727494654285086181279500815765580439874700699900707875914423298682714109941473333832938477005496149700631848645046935999228867347207468723566029870525171368034977606589597073590926242946893493279179944435265487019278362468001905462075107121605435021877813896933001882093318691452863822095427132073839388404604700000436653507032540056300930559485046538409390112476394185530460279093227246759833539556443962219108503907067941154222059426308044992662803627927202730465358546287987486226221255895576366312509695414766945251728168177165234282328727450638854300337977738777808368636410617695893294756174635080387136559210126732656343550504783327098512500104040125099848364243862990840006159378887269823055618799611419311492209437558016110167785027483215835449360419310917719039755964790643472861328871638056238534478551874956074084386957162089038984076377686509899490847729131854296236845604173861260871403880863905079886719068852039397397206814098164910746011788666708203909744533569322250610967169498473977178504928902901497842106692022617451407466220653403045155333881572900470344859784505654777819583671071974060335954740887990678596561497126994709856690045506157647179794675838088853540643804568487241366649469236605780464470220197909579147591828283773679875380648265096858328985769354466312370329324853933988547975947479888009407687343949059538698050231492942272585374914507620150911102616534107180612486893225966293931873376444164669523923141124954706658775312237757829356610515314979642024405988471131934068177585376240187569052044121890974139633053171601750085720085883291670418789010530755621164995537870255750106273729797305169656306291151789494040205436063605711270490045478909094872828595746612017337796806906242765991703933079960862374865209748520328143562409520145768340171818894995336225055834217075374390742238158811613578933658707879830310854081848725985219489974585911569932732047538137623666757921844941170179996667911199004374144768432445945180780951321716587969695566779887538711288110531230876487590256464815756065246258331093916664120267034603110367282347330191978940747666042700051303350923320756625293507124103609479144400300023437507599761987495686135308459084567169482884792204558800119751518901020422037988294765844719785717009743403995523923552676157070149312010984917349791178958629504375477528835580930862341893211898298604494454217502657552629608261202664447716421431389601520352477093571536017080111558438611545019277651596326930025508149716400756986262019771971410978350692882440399441335624109818273885465115303165389833560952796982893501139199801571346359412083946487442466816129318193898589434427117823145364098049445978482858367770610744933960983795955552791678715914680723381699930347324145153287879772935321806970117278578805190860766603376620562337329828429790442185683286046414721511543082888874170507408359439428420968675699856616003151272368869735510881007684651812645257270862216896474906939918771839143229798846461011086930938841881419226630871449845737591395212282627595694490419919862359261269034832819219537352179856747536043157635840360068511123956113212033247815621745387162445504357099882378368900583461220489889470683722611698012970857837122361889360170910727002640078117924986697070264718988622491200925867336981849921056785588576471992214226394525217799906679856224621076756129197252735908688917736397006899624396711270666110615283597841009389703368267133537734743091636049421492717366755167733599148840763526061637475770119783610915301931786310236088322563918939562003056838547339055183247713765683185556096392886219380189557004705044287806659014122768417913826328319091062376525878109671815965535331235679771173105534222689100241530540314444044948325027582167046136530509718599980976636947277087318800281633297853285652496276089088244207422919005444028125162091384037846294135235443598543463721562969245088377710005313417439679433839008058360768371948668543580904369472045668473092349743393097558166691931888603336365444771479531408855026876215338027304520602255696808424300433158627096815594647688352038280640637482243224625291582544890611464680202587116613784552043001647698428329110283656525838847977246199982037286349584074574447183214629673278937345136090333283991273381360505926057426358059993491561094391111198033947657921570471492430693707458883668701863957526823838810668444455994613156015162812963616415078287953940272035576526048022826750880256965266432914750715885075441854497219137511439705672964669501000553132467534058580352345177765730973364237114186563285883784948748569101471487690806835736272659301811472149220268821732554263213833898716890600139313349512958602829193070819630003201903777848001134466977937740855756177272005760201026983640489558218234665855352443119712992715020017859982794988915364690190166571836344781410090734362399884942310263422516915972506285185401129928537283442931586064450771380940505159879272029021041994988364242355124947921791508999203283626281824632105423298901187006917368215073951189544246123191247900692683456143419855501589118818490539512071432622632119092108286270405509657899853144695652642410711291051243776204686616141699350970117737665754685475195708615272772201482046600702310692894567286440415437238873846292844631433184233711214290159882926170451336877100201380016040345315265019866750198904085885271862401527827416734463276178568425098654385520236144754839156370657144337975520836816421461659884886653080711025342682685559584645445556269534165865992586428106270221856286720317644433180549287862346148556783633331811945962612043056910060290463710176627952742497055034991327131588029733830082248730163154316879433406869761927820230950638506019305269517679299868772687060558633486724106856813947307014655541328482533018771006248383428947700927327373133688587005705091809737588614558186618764682360109194886112680770626137232737252337217233516322987704727744576764704211384968054731021009439540954807599989007054730473243066556720608395018094203558521612046478556253314052104863903472365062641655037182770794104409344382320634322219246631720574935335077677916631268490383563688905271363945564076983334876484942718067411738817958773158925729333675705837085511809210736644130548627185039218370482500849696809558329445083785673929604270452951692589890213901123438245532074143292010754680385375612381526478793393268488816112635412789404377200934834842203288945440742248132986507030834370839585077615375285787603689826788948005523284953582322116581664361634884598559969171523175835278977170480477500473500944080812091569590758935608394931326201814228670115827439031498603196196978304312846630843357060907712806708317474883606301925000755608788428051064417135756841369851074086157725350718004566538455533054083565168092775308856829172395101929181790915915774743194772107755264676196550945968589959469524422839399828529765976502463183000823930986081893669458459405216128465180411705251567741853706848678754567323308124860930850661780083656930047404531267589334208575978709497748173445771170264186703644945472149987623996081313539154684847413394752171336975287590246553135688670991852488031936689211821240578106433420589767419419246022996987412024049269017008524150194266401592366155127638828997204997409476634981114744802739764674141622519462089714591116118228107796396482379421106382982014864541802599492724563779728591876428501320585529929791097726321289601675517329954776274576173478688755628345907361039585099739546271889133335547014193633504889205694587121607751427309733704773794937144220548225252190598499737797901931178005234654519615786390035387653265184808445077965701855157908995717385551975718833122922521936950327194648321108903612219153089039719235633520172164954884459525402043122109930278174498313838248788493679333526514723657264477104120192880280942804867358966666921470158741744494658286829535343901845609366383367702544591335666410820003212749998172714789476861126921383175759482008905575698916648368960639576481911081662654182391581811690157545956569107668083456131128170663192972437040052309782692606476961713499290961835478214711905335963888180366307082822668533254497321275210033852637976557429048756428081742059445260577931413243835404040966226611705162831484306963700991501774357920903406856938694134575874371274622462253290345837911492245703501315072938202062290891172836814731038653745811647789468522493262114922705275797086039115601031593706010979810577806977405593375299952782741901430711519420091940757376088735463665302407519105584871485848889284098261613891360711353320935411449576634529261425009326523387585974391064018567267522791912168577464105665235378218103689742927120460545457144604242578758162167575680989194743387040946452301489211202469725332781061603356693375244663901255273672916243441309339505070139613266307511770971401146822550168619116325333443636193069087335693620533285972674063445595144325809129808432685966814553783640389929036219242909530229301713990325912670066895193555034195973420580633217744824324482774582139448046191740740375442711373928519200764184643037595485143239618098073890192949934970802541890597804305091722487466932265190993382477397372897361310809828421931306628166199401165696110992794270698232748721417736958300094695610449184788276767764705933108897005224604328344903424841187187374880258658250740003217515443309665911170232420610497802620282307789164185048967981999069109614717943769796863101762983583618956501249294012050012106222396719892852382268941516605422133019159943605212912007053396802127526494407978811502696382729926822880183959678754214536398275970237257410030015725135681140660157862720673222388516660316348800443148485463971549649532947543441309488062354764349039790707285968680402079620857342585698656266899122646228974649544434243779047959812214280047710360491772534485253411602730879933264605324512689938091213035717217061437613731891434244259458656523812936234143129732288414058493911401810517972815999625318168575533418722258572058108077502613500614378210869907857454221597954821584722691187716368043676577258695975531116035731403296562516489538657938160963603131228992863969428757869682194768141713889818217342023967607098344113927882756449311817721035253449988441090583768641605467436082205673161214904411558947221325571956011576023210138738797714368200178646898342070812460783150529926172240446314438072373841956674123058139271222010923339794087704758885162683509163427475564406962942927094016203697678276209998682464269609952255205370410890489849056829986776335131285598245565678340926053274599621990347681846636144666894366881472959249699164155426168117008905628023198218983361374445198444125648714511028542710905227707288335557146944455933952267281536263614902886359698355086667624472846919545689080163992813945958065760367048431730461353131798196412340945483482500140449505637884303974634653262625457206146476924572166877651730125254391512698021791001320266420282577902434471716753592187993015387264420284459448151195592782040940979230915343372451274923340254143165608865162872353271313611478578456571649538591661181843136187764297209576587534726972744288790748776385054375321469028522566983355997943864182372205305249804992790877766946763564802510469352649509347341605857562328697152244074959875469307470096231887866904074622817290005925511012904643692275408508604297909701003781726995922516305451614543603797925579709580532327229036137489632065617444323878186299094816696835243257592063195350768271567546283755034935686070353915932619836705171440481316834585216709264360468063248232035016209296703983748933608780173305018650285139088311033959141991601932183132249797387412135644812313885892772668814085666834800265464391906749890594724504739254892016549512879495296166854946030536625611760468231881892861828683083987177659039066572767784082118947980349864795178791842245041198652976660708295798048684715449055662058914587887391197448699569005338969884620938981730227944328871552608939097835358088560790441176417879125175745090374921989740615216521690279440607714361734740533555108167674425714943484073960170813766084459216131820083408649285870547145196915209569735630597721819642284061386954003144903898292560315621464115867897993286469741688809345280799204406520457377839986978596694220495653996343421064748907741386876074854976983159806809663296085952173253465988225706133090572280162573654100721097347968103434346133243712018125116333601610375514920678008272282450592663566530519336925220403661861833285175406951187197874890695509280146567433789775696062309775029931758818994020467542231386795397612233347811679169831710202841810200523973480458178577550870004391545490601999408644484322995492523000664942535605190010364946418973166478086609276017286156351568396100160486418863056806626750829464391938344486479590852544363632351321479431541710283678647198415472826812717758965963590686861317672341456693311412934325629916626252280603103747245291833194266355402154203902143307991239069467827010579869429258069072553664657525697663323192945169347357011295506509970957201529098925103545574269661657902700162595794041041152281292814004168295945269584988216424350548514126084182233072616750662924103645509548863835871220645007070282486940200686733115843655052561620138824432095633971476370611234610087633791583319523419979528677878203185763951553603611576043842809834714073805335385791846380518487827141919825831822493546374104872476011292831004307555054667062116104327133747321085282690059759860405846611287482371680490308637704977181227427968022161313868862934697461121312099653869415787017229619819399548784795411829895057484298545585529219598694970537369500507831117934672852569758074659918475207703429963566217035855861548984775020066116231568924541512146523445840785426925059208826218057745450640120250054817868435016086859863366438233378301987193503118932208214202547329705072239239948616402125698839059488835308179916398840236076358466945720387788294964805467034046390728531517259510841824120781240527765789244682064785338953499076114934833878786606150993775335849830448886896223372864456951265637824299065752825588762730862878444086572525270844654991914060647073962861174914494242748229424108467101485320046672868258569456893244312073559834088113619771090571531952164934006142840209539191346034010340978617878395829283717600293139701647929739668164245237645667230737603768820614663160839674579311546255087431222197470330819256207703677185362827303545019150136534175518051488955506599077053780973647736754688854337330713868684202991507902493007121340936827540618920152603981757789804268539659380084611431462109715770396028389629016298912071806311391833864966192525060977651308508667745438144998984209351157911967256543597502531533430961985594268999910768280515228196461934112154932021955843108564579931293315003500704622178673001849663280616181043953267924396024841892987068716160843774929504212416879995613512614203407107365634277696927124437571081316629157013990471497768079715119687958210995348677760940391832612261696881333652616478746625007494742892906210511442182565906948050802270123833227613020622050329228514016169530035910359948485998226403522645782560244618294319366138313483172500079598379115736094934829025104157702801629397095962918647559022461800389316689728907815880379105670855518373582426334149491164724078847047305287737461755163909884099924097702695735246920105878532740574307612481440265463052294653916063080267089442596422572394495174888180173519443263287090069830034761461385611251190216891811902877079226779508000640020942632484035888909695916161025506457063435468611110994029337523661056974126982160222424608099289662634556755076817528170745190286501728860362920382220242270455340545026123939499700359143844063957662785028322828855157973044097049954338109007819909606905585992538231033256813439019489827672346713098749578286201706847131073783000396484359758597056080245613682964002192998132592910038279417779654214524821350779795425231366298658995065694840714899275672390850576373256055249093350062716091037349025850670805667189142340088984171172615945076470749016860744761651639738052295774240611170447528632677018655190877814337030808014822529762926829313762945427571447496060788711891037035994102100540439442113425065297883040052307128495892079791388800368786657715919563626016731019168099076533409100361138661653907165687053222141624196497428774465849290572383365316100453132620595874784122006672438614340910725454456699573195354947986579690902025948192346525997842128947913095923440386095276037992229088546941954137912419405152944473908888526908460093311358060990825320133562101915347934551344229128210297498767980439611775364314832909140657219770866799603994153830399048808843895534558520610887201578850507504123587671353601732602834473050511310209253699656042024064853293425063678373889139873627629508260190629835211168309679191030073538286046529811195428329785170094851429549036065999761610702383919935766894822684102861899308576600103394319974631469300178897235514613733001272178705163561117819940306988030288275219622244983370761152010686170921776659301301328502425125991420292881710671900972986132589137774048303627637039916332117947522059073998050300347332708943160145631442765111740664081985566831678307908565340467212311146116058634231501036486882251187997786177071053031670100984892115477464378599457179283659162399748355956023618524163326065824960762614717086021796451768304273995186463978878113016193628657481368845019150479562023581916051687608339848620236716777612036627124999734659912559049974548139804707887085897409629620429430663028085217547321299883268895499512314570257886740013222628952905741685407368230958893417439253912863467715184051193968835231766593382802504451948607250373573951122900230381622694986339740856883690224142985591175067062209366338461462735143804661049486971215345385327954882414043312271538915705074075416148581080745600578755793307451864875206756398826540118565569448235450749898529000706407937858646964600605467143434842106649267671896776907892717606965747874209976877000124899809059944504739682528278861939916680003864820970869174328166584050678671925285705105111381635783009888199317669538394510292195782597025659132042940675790694290468942590687956707636654242893207197665506901756212071371612061493143897181993404398846035007691306593803707551544764065262002631120454350640418158595597236063367304108520619816498230922905936547904651131933342618914629995350693933420176229968840650890265498054729370857003419041463278953136876058381287365739071204115384562128449537424378463262291933138525296903050726252265268893422860892871421156848225546023240999491607467974532756358167702689782969982945399461790557298356095597152090433049484996692248260047894108183369140401686632665304867264891642163857190393098724056406038909466358200661347677782028046011758870590115665584694884315498779364690882803973271818173203528564727507069083678896792832571988978146344629690562970234500816948337059015590777838604180173647246330008241589091859792803632731347746039294364795605311162698267773382980300955833194551505378374588184244538304478335257109428797234637491569248182361104067303566803353898593416844204943592658165056323585608176516560473219826663154344123302634125113123378330404188838613156191767996620511337982860988338916342698433462068436865479264216798380503124014534694056081363462243810774010839218842123949634492699267415396670090640783310669300466275550180722552960403741714628307130098162005758705099969415618493735515176073582392601952717051919185895700589486004363176914140707667960276049911656166227438350568785337285891310676790261056753962020760079220414673784724430752660033629086544317864627261726309669109953613102775500081845244925981906994855178214301482595932739051130312392209130905294790651155326079704759510928681732608427698936784100707946409787456643420531052743976535685270871789967539792268731986844441946865869313542846172740441858877546395971378097721931034775277408233633067108976634809464169094767404749409394324148069340323862222004777664256955974232915104550662419782657333545025789953265558825938285565310236671067131135999027638123742442457650736619804917583013295620484832111448861268006098442804252242506964624900777962448633380460907527455619271512294893367789903879799918331145519375694075416581116384869827875143020201228473811344353619737266587385373084083534505212272588267774008381895880334635563476935671930996238201623017692559031182111101587885013452312844964858092311027665973157711828860792947936060827592560102919083972638830024737755658426266897609436842393214227474909527517053486978411845179655846570669383244693110975769144037686900874491262365445372344357840326245023238571454775400255469030579698091999513304061310523981865022594908901422969496534374628333545863812796393022863485830562061065415797925333417970027125288012566514232820687504040935526567701394526590346764396427193573180747381266277785676116322731972086279111628086178421075410361151555679855426764997987688217663472396845856858233324591856780140475613807174057827146971637643283505769346569330709811083773612384902632465031651050304081616217871333229137122427449665712865050550113343956834040121965967752006802044231742616542344338869618573126102605979409793350809746116089075635264006827392827031497248848656835808429085459314215920946029843797739029295440865981769075524591370654893141218946251362064416423699740510689481971678089545625778850688878495450893208188711511690442541001240503993434471393120122525457487744986177876632664777947878739869554868227074838267010608283010799737724159223380326074955350026430467979376277037464884534756435230658528405190486330934471128243540525209242598365544760816510597370624489418206144851285452169101953014015775254380390863416148082861112959485816614684085537918682237543130874277399145257835091186427944126523149301896749469752912983897691760761796385952731832421744708446776806407254605615992475388863202169968276217802249543888948108224009626386910516936964984426967272396200634811108285728078404434528161183827407467364127374750988478013019248416801484536411771691451395770108176086045641144438608335363867482779648542046697090714861246714648131433731792009938349582369606267438475091934572561231530822925912305961773469558348398316586099718368010877609449089707060725973666046738022789165386389060234187742789069367288242204613517609843082419566080399066218565784130249660594729404311143269065963516950083162020249624972691097677517993337489638466719917854622222172240591608147696122435536593310545627589420899847576498256465622048409992737961108646115317828925434873711501574489134634511436909887808515110162692327573796595617911970391914947272826085846212968324190354627391802815394006227847470842851788243976371220944926748650220649704492986835091704875476386141955142820677196245609930478546439978077670807966361891209902070044141430881556956587746524562199131299424040246285115876536447129165394693137626861096087424102858266112646212800179240176901381858899424018382190305955731768995508899611524574717930517701848723211749442898594323106443216422069426694635624325409260685546310501353029398516101490920946765348018827539958183866833855562833929631643965532549735404613769468298928271618580010380042586372196232814064159629562021021465604102278898871190186895140168231049982283156809351237779038028947575991329940369124744388221939834253219528529564308179713680385103428661605175436104852908827752229599416199793742252853188497756949381409673407490688816596354048231150498933121411486628561903971007670287194775223329439252224376321987437553142699689990537543999406183607441653533255595273391147701190075984674629242175405877769700097122610123147547469455780825614067982295046959168925025792757400786707363185369370508398671327255974451137095654278132863845058036208941988401837717299225187345909347578218280273092544360177374798298265931343326776273507982815571988697259701676516380241888656110854892089341448592853070431650011988454164465810955605337719775939096600502695001493920000433912598485186155518560933452431206439527724738368354260302379594435831316121350888017093628277963610056232787687277153690891831906240009460715237837005097064176348809594072628189491640805456559154313630718852639482908188793821914112977555359178947071623894199386397250408701943776898142217315218562307361223906955631502453493104386269879282993128524393310721027087516175297100010068401709744272852435580339542720271606243467581439706788091778636147967165633225204629300574316639226389479282935490630518631750517207302567257949102381439644470168659956751130327519224901848003673439999358651053539677951785497992407866266582173299437692874741823414102562730378056193612619553584187727927299846019857905475027427778883473880121773630667419963026930253778526671137925416875669665973093197022879816511690520551526845903965845725026591404840616157953186643228281176128518497820232535214493795289660626183209368027582735878075614480261340902540566874941396933245619977562466068062112267481336395453618478045058803789567239106081867992607149723713596464206631714007447392394660098104244554470808636774879228796291044133715187531158659219764876564348278362458186270662004228125016867004418482381407249918003092208254087945525092827905792278160256209147511161828519232079557049313455059120282402549325899368575035488415663149133551251290289552275812376807576421946282018314339118891335779191844716959472025384875083488933530208316373122314452616884644094984193583482166469616195242687378955931123413805552843241908674449566066366042095345188554439760934747305796548288841480312052526471495630119692188477156143458232010371750778183356655235913437344010115589724302222576413695601008150654586740796613462846919082905741585958445361291359881790665506414221049324416205955345781193022414901762160186444881116859388880401423565873981531823955350242795806060736491894994560872309332982652923901715842664022504496481946178164375693187792070599543134940431064904013627624706841495203536764125708925883574303974844260574031174255688494764505555047987177591846594722949057363425251042376382721604268095189842090654283957265693576239361161914819105485790385335928741930787423055235382663010105001510617284189665705956395383026338433999329718660182487646088105536388277392164090494281935467627086705027878535549769671751433389798595347189952728686566619471037269702647659479436848025228594617682940829558647271707107771779835875293892410909233113990457416766240457295106406447788732044979194057086446288476802366759332168891573879764986853129370125948170388062105078481116517231131265632189418115838677860069443506261640773043263016577887203723271649261904686069083485407210802882990024778683479880559372722436339737494922970519169542973956939157533784455543914653561114481651317412422922932368159549505057765031080947146417679599863552258244005122715034665447437961522959684536552493969148802548123141611147886910518070867820797333423145594148459048034535948957937502910309969736997642347493078158384922544651352038509317213793137233696411344368023338196285744916073718822603406570132619261106775062367732050804768051113678910475519199455012445883388137252917577860208590473452264427379858751053943560284679907758101779864935001096582230741560716375409984622954129339630499722595885875612370442264908653416286551024208076454136325392769629719245627584836522580797950203620215760727329831759296577523106180041011664425346948525742767056627996223013193599021597275510474122372218042512509109204180095602256989096336660829787348523014977611565323823941692458323838215055073807700833568714745694946423545257017782961419042632953593322396489263570722509372260784198842213462361252922290786371756114165581592728324761150357900260670641936822489827718784457332152028602885658756321743551395915550549965738466027523461228288252348120477251225678959920273854714504962799991947010362882557010303116033927417409280404876633837517875420729961389160982221761335633624691520029808894282059700247120756058463633061296532357007824561122889467266551371367482652908470064018274737883716019383159556993816827943102023402233741131734159703113348710091780397557773339838518552723321443779241724822754767070450776773467552212915106269363336006791742785907987140867290818324003286177643567121643520682550311078657506973138767939412602429468280953502988393001527961847677357348795600363396861198847120923337638609846956913502045617306452366807266894782625901607284799236001678986308994085997917332327224715851009823006626419096060431699545167103291435276980380041602901658400645846745203935017887615914468978143698961226973144086234554902394423649293804977722570032608515359688547852729547722630965428479834454872397267498220424341483876750899549866696503205466985363955491258582766930890241053578313910290087362052908064056445272920357276684071387117159415958650640677267572447659036937424109589347520288787623986913116201495487758786956028884975016235421796883308627727534906777547434801428799605154547348554833594765986015620023983097665494929401133198913693692752723939352871680762903597243708775976255086951147561545887933399698107075664594386279459657154458199590421174382694125310676127274366857184904598988494481664731241495598301426924037732213361284845788322548627286877941359061763637318271448417884799779866947098745919127204489011287027818447290686119290284366225563703620515534263236055331571891232781171882620298716100724734086158084003749113564448631002008825023228642244889647467431766650464862763002250903068738556340982183927428759875028657512383366579355510539359492715915864568969531728057534294289709281675431353720090401809794732302005850843856945665359705165347767127226217380205021863180167446829066469405388395020870516824318588947151252253021503297608807413598286715844118960399536233592339179076672212491893693689839472375465778363961449994298524334554316084685265939736421475360362612950556429280579955819978148572661941286001365171581729960233789439631652373460961471303640120156761920316384972488034036945693777961077420578317870189505272710188890713806266068935382040122749547669706755408269237204281390417842972283042017318589358789803731711018988152919484424398844789628781473274572626564487282604318101781547801838987708923919268138155201089231701438763234078205846885460480796999711657963582980086131953202031907790150258860997965419702661419428964532948199364889470773827234491878483229840260261740459267255146860399932142258678499154123694983315655363953780779101951489073594263552773555726581151567462116279835288584374194284869884723419478413266351272594320063761186352928619608834968265662359333255679076573086452363012740887521284506737248417528480415445382223893874338852683449670486634508878870066756844364489023640215780251159247115257796514343261655496713017099156084974877498251007020897424913693200965190528081356198119293919920567050647848942023352119446805457093998470908830580735136250826836816419819753864837828950062404040383568615145549056246200287520002189266758439612223754071969571930301732025727354788060912313016975957551944507211500945059793475082369365502080381702272672229093644444236515199296346783369916964507094461843921940408455375834423544839573834047671490636074770251490298452105184174510978691811271304720210892554839069970537098198941851705325539616045305695821716546744734471812929313150610302205006021218200476087219749364203542419390712020061835475660356474340313259787920760163885593929288636826275149351928085040627292384596166133971646167895079202288593723195827860180055682050553556754875801307925380867798519179406051889804174238518721106744336502104233976707220527587139290521342959919657374153063187215631347901386331895797472205875681858672778849287022133383852859203094363374798004176618581858140144434276442716591760888841951578095230959589584899048776152219383833518757673179587453839950238976694997159956405545970805006011264178511843875136381902880780044611444701671594747921272344108211925520544987112836565526769760731112238086795900444144486578763738212807721810633459394971433234886481984371528722927736529309276784515154564879375402181754725775427462924849896786328429588809106146854464229220381226376127192484410781495916992603150691086399736724833378339571669234340494599226624617057762466438262232795577273632755579692939400532647370950265390048569287964942163459104869244165066067079293540608240763130794061527364754088451034943867068106970732638895417604785314043675573634285902379442792721564970926503228179038476344113609021930450692369999418267861169646577790939939482588105243079249793611505224475292352828638757185188878459198089594671715997547812256258609243073011877798347706008484343689692867784195203737860766549995629561962715463556624006394375189783293783667040695826305971825261307628155101261189774536663747298367191169379354144000453434210913198161208119166190632723894891542224939774961854314128980423458606260597060611886082583053310964207357916210530602615596514191331982537023920519741493569422236206936374449666843410904911441945623085312594279218371531230446849830917184186990101486009422235120251151704328567901145690341994466335226567030152394859799810130196324634572754882997774569813723224634645599004907610891860218688146802136126847742226343394674303990604868847940904161723426136380037242346971665544284983435405025647524323378896685498378061367881477663642647526291284904704765874087541030972469568107804978119838861985280536341593690121265040325429347871760291786200290330002391731132397313135214288093192722530967971493962473477590005834679814088664730890456706404526593502475998233762997791862624280889351716319502532816906648841844195695911088076099290026166491328855951485285409418272052435843464080582957134481702787808017344702260620000784197023052971843612854852222920065973311658594379470703167003164269451529278326354249274251872640013536023401089099623851072584383149605464698632888496910787510974467465725100340663054882569761069122187562843270945260108206916871398609531062503102265757682161543368929070903945534379199392541895976635300553451408564513873156299381140068502811325185767223065044964522637964110463139469429011930329161401593124583737463216501418418194969422581634927032440082539061799896973531516011340399111281126070430469261597418111060179030701169384157226461506243574844814755641514441041163336095460218544334272543893747495253859627230669011306135099841248164833734829881678201077465373101885187679411371963744750259621700846136697577539085832666430894951387037670649607564465897783510714113779752052287640017626397342616260734958490553629905934326188766001914718035232964073383904930373494839940005485921188251584648223795786191514011721729470814178222439620045665980076863283813857958287658874750258443693410620804753118509426382917668812659650944541675626936135018477856045065981173292305495418316673526601428530206844017013362321028388510117487596831030582221256780225918412586247154048833376927746956792501183780011559633313514345400757060736589315399145745685773753274163052059305893118811869505088342599017707480403033447420759008153667972658805715009231865235919007576278464393257231080035784118061086116891880312552614433689714786376118494434272885116286219686677505168823104119923703133973296292044242819512140975183452768408848057170227146709608231759800739986974938885872010486442201769825717304142668815725071960874456591641401888667507423519238509762547363098840916378428669196157700564535711328326955701248842726766052527112830348929110955141946530803122131693150788609234123481663314378847486955075960215172585961101769582476908184771822930872345848762849640419865934180700625613358227594775670870299162433488052113871704071901790641876630575187200186727149044399251972613143054917662056753233282070851786416651357997683357158389142490478554179774054140670928473138195700768730002821914787810959200302874541111881160807515556605883323455038738814663518456257713403981022585076328511826311191771173633105036311429547758075438627751513317120728859986854002875239452881592706508280975641555066156431280220154119351706223151131975205462191809205436371333772767085360661095995113539850887457187186788952829427100239614997748787777865642465802901595717025574944205701529715834735980437674778257054952708201693967408854848191801161354733794039778888553440067123681706735411789590106271594458204827806586706510498893075157275742585705379413305977660037396424311289064755691358987001087067088192508402664146685951284933690889293595833020487437892241104395424031324245477647208156138231070525546794600215963398268992532648490949673080699092515405683709866464948620249400236222579647595173883845938508058496306593635988238202607068064494801894526225097067204831467949633036707247139866137365037473051827725021389551207060724776708282763478306206035215262133008428481735602427804057797091617285767649766988830825709937242705333462611356528580765729509870762062425933163910226018493201655891883769120462013459691648024085248987703791370116368761854460189517357540377455501328779631681934797908024043822248262592134581594713379076801410568899943668592290829127002501452618259613713362524592275268994383991669837533794001325779137663073718106685340423441089062092758898404978684149346804436963350262234578611076339932668547818628814615266943944114037366728491103731069841161727078162947976209590290403598528359566787466365267984499309782247565320205204245078785054208834935234626225645848169439310258901640223692576418363068616473844012250816809454247103255004256032603474015480593779827145899087129539695853102677544525560371291283240379974060823449530483144143488087811302778185314582620106734420545180908521947067127990044660495303559208745487482710600861737693424834998873306538125462745883340827454319884667095835382813051225966392870904166653358038864134576861815200700711046217703838547765901972829468624834647780605838917664992519747654352477878649219551139053598171577877614846563463494134937869740598652677999188962991922447033621815485756728815258590640496329861707499346308595690767047408602323863430589945330305084502760682179489233132626646196231337934615126892401507406721732780409354655382502999999200230948630381126234311559506616975581759127725398171417040776337077861830206868023781811514177945056951123308722823672592754066395665168131600045126821257319684508418097556549403823039252576403468065073138602340524129324586655671788735134885436960587797925136093807173970864829571522607020867736915207229100131866179235499265874645823102919215623232271093444191879431692599399532036939861020566629724308251855507844976948430439050745234675562969381265359143113595252930666378359670368497243303522573298172031796286015546106598061542795587249467952448099991725691353019657123640742941687289027266888072497892287016449952118278421429762908874222861329776965173568760113245850327940325513196556446996630927380178020987632698689494581206252167712111466466543944452731402839648228715730551932063414552728631714280402641040457364133216422762218270508983443978247167849536173950131620876951191243797932951307401557031652766588614511081658640143976645654273847068307446476333670494357344237116378145714626889479746365467209412084757447775936716181456345627458392060095257603849919220221002279738254524874436055674857250174762955792415239420286299704392013011036521876796741244929113805532651346008517135131776570882627712376746516164367156778860094928878348342522478894779718103079439036414408529320382866719728411817806387754795571652743078459795967633362278783054356867798087063965931021564112902173329313960052536934975451043763323354629371889174135654122910441584322899187200605041384581429822278498172539774057516627096087255935049341973599016264935487200781955312368733246325044010939672047420787335688105710726735512818900102295370878503817391745505649695155380862567580397993564438598262136613272959248151729927047673720113568084487191312599409238524060057155663997711771125487530115372911450060221114969848175114502468858365854530974569659199222964027298727553381525689557467817591337916962976851364641584686774753932403661725853951957103133737305145047110780572287889357066967968108040826681871758588871784347352094122400686719563779483739444410985236499663204685699268492086143254303307131639442115617577104692485216754913348034286377500328872971742783706529780858421051895159214582497356538723345021718179509657254382104139875030266021096085556462306828036771198604602557905297875607069946342275819067206185371216112985664376525416485513281324948926163730242472711832325525698686912658893220442204330255969323452293885173736351759064650726087533463013949590108738863672962328599606997226984949751052039099584897145896487966557606925204315767155271956468645493546354750438358008089171523759381869938731998946721854294249848070751128537955395055645808118225403601311129500641443646170426452563194908708641338243521468127476917754230339758014630919332346188906946741172800199991919209778231112973484029853357152610506810514876733212789057799259120427518139236273371534400220749875288133887657680077978789661598777017842739129470095837781349831530663764869168405008011552849827204067894363183224586626766007196973881295523090640802941726230387178471292371696476900221986171559241044090616414960788921832371757884895139888598067076874848501109248357270660209527151886219093866000040410023813114204919611767092346374292893297430003817387227034272808118846266370145592434280577697451123064537050320033252228022995380508280116074667523257933224879200406629493036277857741451875231845664889320667345217769355903586823846924113077231655756433153819914275420819236302717728841681134059298210456801597201937036154768911528880112649694993307443122934515629607731012699060897754554321596352559599823911474160412792621431505946758802395957483766909372816545141873277528333406213380836886818610884022480717969082435175868848499088749605030828546065083940730922626425692206808846787809820834179273282659123173846784117705154122334674342568309268781660977553053072793172184080321513215877740328707528792017930313704098492813530741483314567355616201589603631260624432129620273106889880906255963187110837408188482482868215108387918154892246532646682669955897453030220398193436755066564068988368019997042074925766271070591879412975115539230866664521994548905432181492641051877360842075528737528655442072119306566714090575054851309516582221298202775929353078893380188477063598316580826024732537175510635707350629193223241566477483869845499774046254790514766579654387875960608537727195928981252060331011861638401134413256398226369666092716767590233215108635873251872229343598044369022262506079471808500435147702661796462730443341312632382109067019557844134648370274503361209373894154731011891745275482163540797278114382912139515390617497467770119274085205724383344715147402873968516139237012233331981333747929982053929152271996299986849198915757114394420452535192452352586393098149766249726340647937412509335253939082858658015507210702170484396827536888902229794546242593778200441638463850079878840597196774336454586077091753129981181703734499379600237936321113389834589730944667782399199876834899731946918266533845320294570159187320033500698483440374098399305710237342930694151238437379394786791745038680357554858144804536208862671708170499422007254332223797604367910076764300388474074051668584759025485526650054199181998218956958450270085014963286418024200232848161347249048568703382290384798449100421490873093049597671793891575738739999458913804066356920583616521620208076870590146913000263739174958558811156894043453525471423935978438142920279228918999303933915238098793098338476611862037834464340919553739903982868999108227070269508732141951715803947966679230841184285541778869568081162242046336974771487861247485754576011844404358838038760212624813578621656581659803434399066953898433535561511339077768806751168993768378765442716515387268568387929116563019548562135603971533066127338654021693565100695835194984167991476833898115821506302358339190091344683228263071068434482455376447093463829342766870659635477144120590404991550948924660791903299514285299319585946367751223196852544752174628715110452352863540740275472589468642152864369603271281515203854453192544425592638031170283518357679806752501056772704291376803971407540878172714322864445564308570504553557994108113116947144025545513995601272301299247472616359105368754232305637624696900721864308348532800214792124124955959557447867722058542174225167283541620726945504320950498736514390060869330811694388167263386203775237034301312592751652504882647065006210734365738918948465813214436690267777861937427539290864595241840741130805798104798362158128246537673781727080301198584427111775253350225796352356138772897306020998382212360455238055687363102118448644710746399742400456334164464937303377967846136026949922439958038276794268791346042603659733644904658358100021103671917255025184285471011387612055722174442358103279209389155809913302333778274100429838795698132781166392252934823444795776485791400352906984510805885724704154824638409181816015732886929857284083806569369918654348938733515040290586300335265264171524643851912453920576137463962274432482925815177037018100728175233844830317078135103839374673957797141540442324909535006986995349536864415351046331507934233805118066296399173931607824748582026774394754318433479952195905540955832344503838515618507752549344775720453947463793956122863499064368641246875978198529775589568386056555413270318292829433672396167375723039450245823208719038558033197259422044858407165349346876436385078062597243564643906348125466616243950258313428004808907723570363283421855007125895833182648160543755342710374845042734084994994455829875778517107479416275770783015155723083483748473734928961868956177372103236755243082961095405490226220833432307773402664406239150711967347501902214416041849430173294731138871412219114947690902655647682502774486463023595107358064862266288781355138978665134409291238929962608835827497051957535397389382441603603045558800782200653577664306047240790516377141994566148342714181507625950398795003886377104438127540168830937395961443143692861435989744616647463549559441315175566011950839228006546918436120909462943783476593239136320715869653208974589492982889084228371450604325804721742543491132633219097882648226397555737346407111761683963328758099387714951176811691245339052357546741575314704661466381629342578185552814965025328508090783808162712274976164162889457019350354761566771694171255127794080093649623390784527771149341265442277840089972819752450755488001555541123876150147565137985697579869096600505640121365508541263591063011621080460156626934555287717699234828564323863407537260214783930477261673905529205508929212656535534857273234526145020846914028104668127165809211269853505425905997234647858750329046434430514131944424570967459303493921132993616841339931851015563342398041155886012241452515055892968252891691475563756177869384176106388916384439448403561317124311869086538444107621832171330948715407200027740164805114112499574498184921785856779950799969905197591672947616760081115257880610344058047327015068333517304851378751551191261910674741426522189977677075959494337633130204867669488541518521768338014524847545696617460432205711595162068187111113648867240768735742811063089158638758650621680504747140558942870817479570714288338782780806184128742503769878821474746227502108780869678054534672248505970945799015082684254197817399680775069017864567875320976854700669915951215081993846303085812286562582899488260001611770330025354407620687205911827091218916878268773923803427791348852666834151970741056969716716005476438632783883603527487837126054620317315708042782734925747430079927671066478239428128316791396751669137648635272805840161096697673655802747873114257770278845592941555836469979805320213228084782946076342203897885982534247161774331125480141989698286509062522501628181770471469765684842969303897241065580707676833518286908878811978305055477535316957385944601286418670194935291062496086388225894205051864679258976625006518962326711926699498855389765272677305981517188165011429332282157116088853455659222704363148493732676446060822317330059622029483150652189357438651132675253792028315784714206080624015717180751332088696904704399816288953750947544243499009418036883159604677603471554205518825231583584514714420869348333547636845456662040103979565520515054265557748020144910525390055752198456006659520790386982957237407018394113978165893169275452902697939981863544888606575377564069408899826858532344284603427403107651239199455484753847390925301102798979556197334495214770978309675400996284262267738087164790510194221960470794994407312548117230060914609743104194141216360169301823849901039742490822991934655774620216866683850067832373156694322093455866393385332960405099093606597978731250463712404310315671301734363762643903788047273131512764804361993142165839207500896569761168240075459024350753438298296983947531819772835918189814240656219269100166084339688499090203413434232536596485848603654924973778643647347084237506921351058893621475965175150090593949221645507228515665882686463077065324695340733694413585659301947103563574291801447173109932700884796948789609679691029210356736131052594939488189876016889070134870841853664147065188197794480007086093926823708318121540413146853358330075588804540301776563506012420178210733560374082950844930235661775523781311504470053777775745869486380363869649340726062237610371003960578374490684475618242454206600959988691900152072305159705850537847102447924587710270377365722275166968662313433186979049040647795283508883517540825484698956805319981209070900978103609831949469942721478389029346961846433126247882667802274469953945666180595821069518994484110887658481210687444003985901906147765890787642903512231467378960101554511186889582309242647222162604396253578769157813673921769096123235217258163219443129047734744217454139978045273126259477653298526913926974817386574955237828039529005959887316918401734819655496194305600409415049658589201295892223786290505401861199525601033945910126089193780570287239112951367187087419250237908622961537249444496693250371552918091340254384242469024388469442969731656333196925590757633986494731129174553663093774060982767737559149138047862207324914169548169164155927005491195266340564396007078038601723116833963413157253764276652144353313032122120864102287563505332556068383427017085370920946462289717528341439778616499510921587085282609862703299336283033344527157457007455612680000187458596935481763842077973650546655265277995722989285101331617878589773179517034621767298185820334428008609856126981877413342038181092489303850777093661958806962119169780550185798162595182752795420186677786701024980790848351057288505599252613095331558999640444886020016224396503091722229266864456947077773235922538258382260256425002827336998234991253891778213752967262417674707857171319263809133361074236665831229829212435572682665647548932841540436820025677954443027770108112601180572098472159281791767209946967959724432555636212155256161225930073242800214494916657549841881969971657145666440015000322546025385113354889306646708365654746956343298551526009549470472884538382286426673435550535413450619693360454784195667336841562293269109338229226089439386517954010339123845758846174874797274524227164837537382741458838925059685762275446795105367852326055725963937647338353164486581773783966587995463994606786389949293304617241719831004966651714681433066794822403365553213610962135315740867333785278519502023114275761702488975881272738927897203791483075577065842427332180068497847571640486094586057560319569761388117295462467820181390357310473283463639016047092598317259772034309125285234194192493145896974491671310552193181032604257235822211787083771045061985711965663356446895405285937597154295298441650974693875551761357875039650946475839524389856376415282327134473080365199418987716488212779943800204562985768214918296251224930975681712061299595959909674026886235575229416785007014461403760501401342008375637282529736415550531397477381042199450480782054582249291088180863004679828453508158456119058809200599876382579625205740968843936297538149724366115252929546666864138100110040217639822175128101271518275850879708215576577395140905031111450122576245817165760815258534033918505097702800765597039825692208626608178287525264236828759696878065247178826094543419196142235191684232951287617945241210822717298831242763235961632489839082245247921225805534179792429070068126668848365312156395865295070359089921494689844238590941926566017023162178523416305147675725592621542992061650153905965733486087343937054729523962217800499130685553915523783740506539300505294437998316480526462743847024535620045870079544851764597739170820402760871484998725512828232259288586210450802965055546069398990912139878887283686585955508620886033910911557940516424414918620598467670125744956100679413000902984583601084540366463623434371039907985818665299957692839998294213821537593560134464017407714064501864719845943990795806964920987311747536543136636069556850995122915266383058868791107083785874092915019643517545712495946978019523792957839605080291437842964948604372381890231723227623164176478299172742715439768902926396248477595245147589003553155658031838853309758317139488057211538444153405614581389066281118356664815322814626256099756454320962542565772893208213929911394726102062946565175853073500318407615243798751650674218036223652186039509408562220125028983236425868098882251155835634962561629427365239236503895009859070897731825100503666448089110566003470799641393112946915049150785857439551826358738171722380691362917773232825398617661285005138340381996882109366174951558467858519713133154835261699364039902538957862179492933305218077720778486062437734281592867778582257569818685410593337631068394030051549065955884232979117479656116865710000300291460349956737008832686431859689890780438659543973092090557212811638971458745812724218326987237387591318515445408301687551293836034956898261181650600131317009047442985349947752766991576968750134254069818530146617920880055497165528346420639513195005751801982482056687370418194296160726337812894052842707007832488859268882947684185322742509950003059485385011994217458846013512497124051100255089041188757669567059916169254715168679668323588131366427445946484436722721162685023976179162449628207058805137101198731581837294081134835591266071633450873058415210540398381664036675695626740001790180036462322982950961480033934330278423988944459019702812394665614063446750973692493970761897285625628912428520790169183591995578364719255355648591616617612050872875035239936576571228318615227786417120304938014609544599769819558864305755128409367573857143624303150007114527463251822496174104238600403685833518523435427252427002819490534734852139475163994748961683399213908246131042359838278319931616441680481951281423200151574801002928655541282359076162965066512311508367220738239177168164301587323546337154238386078227937387085516390285990060721235584074364552902426707214306607418949641776739736492218764686392716804348000750782836491381501890114073521655955468336845739379219905779049346860501258300569577232162201490905849790177882187079011318983638906953225366055524245965859863535333436256841213835914327698627553893465578856154377300323812645000575973335444216167318407369054045422518786492428784854286689644296678482737999503425817992951627476651601932240197854189585151319742744755804483359202334735408841565951948027442156275504961513830959193159524380062848438611985746468965228932066867234849589192514763546007593219818743109110354451378019670387766001766342612558384583042103053752068659975465111939275287711483382412117728803190406681682800420754663126618640166931215374342628661217120268705711577403025689697004150496915293551075786867314340861663575345701059455050219852829964293906389976688895538578976834251986245742027884493487233440541960276314412470497056091745552542843800570259112381208758667396354258058575478855905075964397112323460235242910625997924101873561114082198405092582414386095446593876322221815660611572486688970162777759444438953416577299534937340097721334351882000403505813537182524620944152220937702092504946297697450301621741720475467714118758583159636282581751833334049726956395609656776419236546192464296081185346284277783212811890458111863486798864263682119499391057738157782293706538747567048537524799250442207620731906331297984816197109391067532425617553845490458853687348891651515190678423659427532384054674478090885144913760911533354716919412587288000604744356743319576751085421834892256352230993388558470334237877093575003227538272856231858476977233371118488881469089945577884529504538937129321452302933548195041281540974206063654382290086756205729089787853979288858210425365814802965523400634143902005043367041823425041609563408401394335198381428479773122542895645574216361549370260611139195344773906474031863781938608062944425020059270318880685383063307430502404229682231079068233375608982463319373781684504460463446936361019379325222854891123309725359727812735978912661995542121484025283788445131721901430426813767070317583388541866027122727195234774866919709052788336876910153389742892481560155311913143244309015956137994688578793620893728968535299725485759342763031606334237488997093122980739298822392911497878256008219797825603958709864623402677588163649202873796589271438584628617779738568236230972345888557369197413274610686169809993141339964402363504311544343078206772998661969867389019192770143016098163183210653682356083725226242847963035620047850490401808188704628744709406913672787240874998842721873179984756008496430633272495799225111960160944429047335007227076838929447539661559185610763803343779941994460514933422592997887203384465243500058305757007994946797080552580837315690619784228505122490433580927518126176681598291986493590390929376109518775605063072147197739693214338386376377795704987670407527668207372077094256385743455770041187022775958026297009773693707045221581637233380903050958474002661252644714510069468699105746246685823597804922680265233671147821098711459786910508614064543279429677753046199132309235426736963311928314166138244642802499766594743847364163333922354237055555440407791767006130635113469921949430505095753261898411130303845853652540629343483663321416742482978272265003354853830289336582787406511371529410793112933938986976356510574940746954425580259469855903765894934455393338875091687235591459542869433304294558289960324884666209933352020584177820259545146489711612140875658245540407578629025273607006117264735413149713253144387008841832373686299829350801217012256235050212213087849467718246988932350127124527725648857996725361822086306921329654108338953711891643354071900387418706923914474775567995527015094985417752071694295317617423610647069884190494472710546855069320500005514414900730300771263396483418061132701377853518049239566614672270494796326184185182542515345506775479208524458929752599883964878014071753820958446158294419269490089951630051114023619600246751337892835323364540272332906042049789827575707826860086161092819326012207074773807085171701479326720845149064853178870514669892136752966143511632730894723524954966518057886219536784531989751111090300320693533876732271790817988520474487584133683127251880720814877332604444936781186129906862650331385507488258743025682904299221864871639651535800896772392059828487094042940218457123381391810459067361717021802964194607990084682072342434951061295028141491029618682411759553093302319499720723134498198666699151427891985849461136734899413440073707348000775620796681174816376724432215279439780289262774652546637838068467022242194737036342449796881746254237078492495631528128941216355083715977742616155344357350453161029464340187205504990083747807828452210292707745714666303641832119111327823956596929368700739114156231147070858010115195969108257128138007079472384977057073569767821099844636253741286071876730016899516514717165200376754694601124998110345236244918721140538408501035513588024903159277704827548254785705780025220985605688652317260136948332164138755609957394946945459702860336079887898956202468877691957612790416558295551696564977479255933044433448007416315214334725510136368053113914868475135240514058918916166856464377347154092567978017401919332839152751661353472374879727145170153008379798508139018938585647132561773094194834242879235029674204824454507414533227976797951437529169092610286686444136341223994382666208113701133055281589578051664396744536968547670890758705207368399867466746963557551757319406222768832817910706730765075444025154979726575155150389048860581793003096037920882309309401184582206888289720582244405425089137116851397487413904807771391087474720984256366062608772417750103734306527496402302844369578936501601301215115603556714341013155415732890192763489505469170755018648969884609808322531095916415684725199477587107529967162453243978502542973435843263862346852824853355986723918926881589727593777085150394687091828006029802284151106754157812770416051807169332541853196874530228871613990691400310965400383294184938849883026445931641897889090030776009632408042148977077392829438269358493945427822421464886627235883246314354669322083761473022107947416169071591799179922430469380846600767333184889655593458186467946732219234068502908772273174689916914346533314799362461146190382323735653914338703756884072603236611178247195410717763915973645067210286340341376208285200816634488036514170608379642296658567843516872833993153549440555826799631767947723046860805469176772003059602694046249874099460137208194355075702222745106921472442268926334838944834333589454636068500176411542255431210636371964517351152350308166057323128354159932530554908974944449170697966567436223054845114275566664867385902531381781555431389456986736286653524521435850994656166861973518602119884126807823138835272323523337148330502933904819737321670373988238337783035418485628069069769734548112281274065856519618175840833122611484741608364859673240866333501635189588276747608320975086632820600981193739278230861139155867327919991588175766239539363575848641684699848836163164477307332878105785437506944264394646335142206366363851503881374466040868781903272837188333258599982342670429861916930533685757946870387667306560559844594501741372673916684784548759470166312844344532008419553313979984891801632047427143502012945821995143527250310984874834551816026187204496187428234265989460026867963029249927022213518992162674571178598273483613988715236483280925333404178697737834199226364860936567273433831498198089397576334566746126234610311213731158071193438674027056172339080919636766376907338244641031995864745020124717338646174700736876824305026290569663637193935875894468055691177343533203036084012155591319471778029325702868158714979679876866977132940545348238793296847442226005609082643268201936552461418002438352090618756614819949163530619531740494458345148339295595477769149351794308609836223709298694258319293646338947187780983706414741537065552576311872704215974631641118238709753333854306647647883502572749272674470342809175358086058165250716502354320781196015065196385264140202519953962628600336162114124005865659016233400893887396626258620037943921056733402296089731645183406368328035642321098281990011413722447905824097756815694904239573694722266308359785387178866276674895998549441484334666616340658720135670086885281486560057363451635862437290320723844140113520768102630597284712229964853927916206455160910392312831664892272980820991337391968845445912188859057007130466735851645924502376208758449939319130918289920267447730161529567027714298697185632102491686270323312849314637362736611422070051530054732269141468866495306709278501745178561669902517213625224356566267046831986007066204279318431127849405692847865571125821127720510129150967915786430808407840790319231425133826082893297534327583070069132710374481537665017494528819894372708104684293059486568765616192728293792975181386133205693637811598083833514887693705747344215572669270648912066173076739496715474620394695361237913899613097664369649052245128529325480181523438247504209772459226925057676166548177343293098517181481447733239223037728627274556827545454528294022182223203548812764846021259369458113967489047696301726346024760062381395452365857565235147444738564829845200384233776045244505409089933569689454373238422327108384577163730623814297928097865483919452820901738219751787003931899096018195149374211645970282277645874481196135094538966796600313658661079285567513763704603914512512016073734548817609491592258171824424597099076502697102932732278904616679965236979659974267800501672793006942144473852005635747870884452343937475970350907562941336418823227079735111202555201162126725521188199397026878583321072237354914244057324188408362277367671250786644102671387173359468072297163122098919342349234546143134674913767191064117736754367072797772941084548909269103674066997923914420219845085751257625030556033557621549742757859171297184377686896043971737568973818296872977772623291291341463048577368292243522492891677293152913255186990652610173717148263490583405607948576414306171361663971625744729645141840676046315691253679363077466723656934561007511941627111883963052963939718518673708108025682573537252166559192656288087543280388232879309800607037658901958084169986070513800641791451190929634273546871409796369046629885074396398649104292895811462725207298283698945146865411835761955730775222311253414032534808620097994066687718968401469605114395536375564400578195742922074976541523682708091945326063693367189314971628449746904719557555547560605447757352070874040984288804259829488099728731160577665622718957153631023090700894446008825452008220812409892080100877843200149027953303015399684087488709746071147558176500968141597722176803315315100524785929487182192311021784888451314789393082055582783111604520978309900113385892796105381957959250837065779876469508938545450305847001888294449619221939361047060341814192825253680141891036758780027530069413321223304553294086767182282770267561806714661724778200019439363014073870794490924166173881802876337820752907876819084331257591745158913112164387502604474624264011478815968573370246702045726643525023923415974094082652902910698096534924975566063331105975173235840314335813273827668729407571706130183200876022613207559472336419209443377358922429632507457666027109916108542646769368819053806085082048923041857233094861550867771047745855574450682200138779940736875382290953621516151917316583750495102073518616020260328178998740987767027783340024436396820715695923453317240208884993959593687172377228794934977769163695308939312706183314048626798422198507117967275024433723710944897176676762787579691834585776397288621216324166116708961114419613541573271361285025012235804946811110750881051149712365105106043377389702786210388873783108523291152827400964006762278858504589712775192959389072078978243911289444200660861743748994768734256964224360347471543957535466502903702066242128387172515561537111767532625900810655039073366213429971772382066643571132845957824239828229992704861710056813478773970352621757015077474925466779424115534224653220752387232613503416706289389646422324951770503132752379413230841932088414688025675269859000615304803345436231815823781661039510367286189060026918317580105936401032147240540393447049611830648838907010388650183870859836309738791043607450344496476292371180804579981223343949585784249230199600487247642894153653291057430377979036671766701863506155628175979193848036258329696532908923397903366482569922668613222512971612417209585159686384386546712007320763803474598789546338152297574795537873768142857690242158891741036279491294012525929752475411842317340928252828919162811054576990551123014404764321351899443319265213324688704858832105559044895977266194159765361236431392483609165843645180632158573886996363240813774926614952179303315125746049982268661407296917069418536669483291816782669049249517452010614661536921144067331693747828360996664823731571691691579446446320686034380220385660403597241451795469382000678481429965664574488591380569301013261894959153273162418797408793974493853286102942502533219508232736572938887656995069524410954983560250167947755423025197857255419922796849328519034612042831285421884592169128188347516745590524560829079062859498130742184725525496170427505008630773268214557037464633318908842656940891870525331292442275134119935717095302466991222026393827897439174836554992756678957413557657092049598405581958291834237092087438423315603427187562897940468899002020057750908517246819790333037572908826441777351761599448769489729857381707360463286718332855487880504046787264994955460061319221428300906728809023005231846742617739079443191123748456686584202538938632796897860261544264287731762646754458467331828086405432050476971285390333942903958514147911587463333816339570114032364007678834168420200721909559179720487669886959149836603487732476501948134900250404522662971606296725754668786534241612792827895367576444751567894100819963975910964281309404746149069444826887775053112410966632914850795204056568940709226717291010589729968346831345855321343616668121748526540962443956827284708448726368017132275044433032799247652344818675739337455660987284209376971236663864784855006592295525383823915484176815417866022628135466120931404529357226516360568188750778948784953906392756247437877646718044223748926426831254852202710519220410150481762906091949374970695509532153035462258509914586388966168025719347469701305702510242095925103187320292602084125929319567666751472908302961681342605517626955253446742031433355720368686324125287094156140853275060580873329232666613088145469998357241621826624984496899545324615829356815432584178018707066879828248293054759567682819629679437806845458024726581204476002608201275384773826704009526648749008144774093938875869499423335043366497550775157123278814623726801928623376800880097413846992032707317881139994640927590143555848503259473291896086093834658154103682492222143502189034497403715695619045107458812383651021107213267517088345659993591691792334184464852663540492740700815681259886863943927269190359035516321164439663605033768332943318763151868343076472901120569830315111161092457428768667370131771662083365065291860142791999356301763606054135477535786957084008740446562059492240056455502446125601562305111373163496751749967976301496172020087686019950804690159401684017803104651877955204617966395386060330833877204568004363492172040461016874522514165140380033178907818271267233599745282018992109499509122123474310168151421381740707604677545544906708861202450460697435792954588273092222069462990594906263032225256833106598630333051029807815185580779983267887949635892992865705642370067230994242003412586227091353262051309977691369474946953252073047965761427729521469276315912248941740203806183009030690984424526277098897138215908847249914059354099870006012053383991623051920339953990989243738921483794594827588598231731260093147827272592590364779675100887606603521253729791371777570370656404811194909781436187484825629147949009792537144142499236155900727739890115057779591306227708501200573999442886056438812824204563102187801884256388111913181780750071789159941428333234193375817733601220103442280064312407505433725200532633371110238583636425560149685772947700364421696936297247301040810766968675688487614883551976556417121975038085883716653050644937649190502918335706095376132996159664258404101330658968821831571719374068520500942249897264975828915511752476054387572363576554561893179573529365424122810968788765979967630012948544958973506298205565311918708963433152406840090946971188431910571760202513933426368719189988734613459049511389306245437370491691624339799693010492657805187315441939794200470007329070067425916068313052642021647788806263354193877285893374263254294186079558270787226266503463017375984464965563294803624905208129763009631800778184121093315714820064540805822007657546762741918904638955978075894811145157732349987379565201951793570774418154723837514669129574083835160329839206868695060992812802201583242053577211057648667801377514991795932814973615020195721952250739933270517203512355851388449378917084060658104055963330658093056869542502767757194431625192901804061897600143778398772158864064780202704353026732424452275534555975029961175246350364824094670502914456938934965559862506602277872708285551436296474001357249927927661989009993884692536396898241929002562947458337977040888236713600082711038789608805261700083211101700945197112315456170978447957302955490746884703602882058401547417562623095240306067785456946927376499312723854078090168606838806954598196600979732376633697081362311601193455135379186992086580772688565297339305160324364557604679521596589617546707235813672760536429732772543960315871883465546348590408567513076328861994317064405047058084126601616108708304828453413078413895101860935321406996131759693312337864997931583618097839293700984544983722671596607463992365573335185212245107005878683879444305132091987659938240036552369289193188999086487116800444357335410011985588892907664700959299012869871572507537662825881601501269254863983971763364794957085484658504553976392921875593871886300371346332743494869637578670949660366530690736061615141111268839770476964183513864245443544130185957974451945745645345532776086157778889711571331153436928982757558494678488358256510960606645910605108582104924810254794255115161926313823961120385649583842972464588824701215211283040514159546920995175729916539870548387182941116080545601606982291947457046377428086158290232884390651304165786192325202428163854213286333031232575407959492901543161421287186497273473275408051913101527668212326710620733665753071299251273601637663633567655429575662986151234682289954990511017444458090901254119054807280635063447693362702690912046621759356843256546663251702391619893025621052939439158349248199298619275907015642775074793033886472700533443284864616431986585148371639894048665210291724036217844913801935145546592771470610917222206825844188807246299378596030646471095808921805372940069788886235264169508596492422577191962569522498390747837513221557795124571745273751305210833858524943949534040883786596798931828414618251934483076187524084700107473933392180387452434379264187556120413273874000443112167462542679358481034438273978576020958543824265879591606952349351834605965395844954637610536331940146191507483091525044957459623544866343048344179553206700540859213586977539777814448083154907520387768790966996339029896162888632780110561390049817927301765860693155178603645219862287577665474034415992247846953901842184292317902697600169914822037564870063823608392805985752560415080096516753850712711257892225815429958790703359986587376223045595057571667056880721958214460585923953962577884806005525733770153886108142639756106328173356985800487463176382873698483389420676498088892214922547484705065144579810910781149226222922112058674500247448011803509954429200623379581320883370021639140507266738584496862550317293821403842618896737197112515313543446012432557881350704799151629808127394329880503090050121045646206751052719466623898386315431530544994222582437948605568171566606859991880831614024453280666700888109296453951211928033549682238119207653327519760001624617377974566564840082029840893642447689235499457340685417940844747262791129861295274620494103627671008902481683475714887210974578382545074796217501753457489513119794493038482451297061227992250370693978015284441964616213619944681499015363391396977498056969952766587895205286389124738243084522882255065032446609326659185276070843211869371235949842426427655804727749792480487833088749072528755703215664005620484083165123082357415711430465243004334599856516687616579159039848223811759156459095778987632314746775820515648473441016854184204401648041684897609439110524163023855602667092004340771431150643272659720276741866817757461226578892221290340682840842791941020795311831929926306532673594895226372859976395409912455527861440688927636400398030736511423297814560260430355113010001832365298624056470880087863488060608961616547744222315493225940046280901959024512058686758148845794481588084326930724491370526763029496533235082960516251903945437513541964007644779912878001708430301378885833555354795145395247322906084788333615343541339494402766163411076596716452423132776202370288598431983185405411181056952606539453936630154415215491535549770332410981529264865574080066746522066653337435620809590853850585063524226373090518636893469955123538130339540884850553506675972993733937937693170968482686044561010244366667139204455808429010331636752980218958648843063973765998538799321949132614938218293970848871940511291353752471241374845986348105652833179544107633929740006794963600317845854333443482454106097817826726234422677226208267774801930318975273615801778186020552943771203205847946195337024766215601969981927297822661322587791434312285698953735979522966479707775949395016735374011466703590831423085025431163710651623892718664831188991921906218791037100812339483918084244370530332951807756450313298502936989638272161739517547421060193420847422162220909250136384946404544106059299503435525127908534349682551991799638542633668172559938753928287947077373466407461721279740757570664069582534728362486622616777098795943755702369677583300118181132475027269710361331379253534157318774294817275481835190353116306713570077874215050302129522920974989157751834810781353012491566555551725553224832989873256347689847501278526260175134243994249874023057364431735042497727325066629412617340499205034703511963173819758332544951191973168885403409305011995356845176969082208938468909824298502802290943622277762434302814202845695776979240617001251893278628765199789045990156688010730055973486908285481628691158527510926349194285793447300399190969300148308285366937444079059891862056656928239869402255737571786878363232371714907275035209767407053570476386031397888937853150167333470679323455050648919505014509627670161342821470802457094018009724703243644776498274900972599124907761901027589447762989444326905426342325255910295702878985897017631084152798715448498154617864413964114624154118882030704034503268598788982822230769561143015523682682065502514967941141973112823843184486532784478469334621838470022901469910477742973609062798236879632068909443027252036070849741516417891931642732603740926427910097082568398894454055662854050763183179510510055787011389863287382650467878680388969012539624117755868690330341387899580246709740924003190326382478916854516698251130960131970482899086507576543118529690635658163870969456543193173478511772717711139148391926018406128911572233511764944774155523853439789975850747470040684528645947448776342963948966098442220375814566207161965071468019572774417457515188172732680961496485453717845288275461258880425288620622252679185317077300957978937717454807311569494764598671993775614537039400496737007656290114781723737485103232937484292995923894502154636721008448128566574523937968754192329822515897371830630292254388293878070682016032994132237122731714536837334468599786701862754840549462355924555894363807233199444657027346995266949651684595310092165517030117348903300718406435057727055757585420318987796970923270961522362808796174795366514985442376610392568930297525454787190304652898445814420788343509642867599805515605323993828613469878048197293583366786551196575762834225190276475243092271127392757403197816160759073858238476679140316382803206225678623928304504142418306747580418777128000032926172481753168992623643145515909277982542031884154228898015579604709608559526346634154627653508209298410196398296400198318051996137744889614795591373550007740922844909069450547618709837063541981093066039135734309306716786244654853953653326025212489656400513527363704725227149642988560526472418801438308790728960334122276067308881834726333658379365334020832288558628561576968190430145656571616825665575056061254432204133733584593637854962822441147212233214639691828872264936063175762649460399728107071159482010182302353291273858926121086984142867909068837664009155752396391027056656324977545884962969217702210585311840555144911771868627415671642371879979946477586699421812927275389209893011944877837697236624534792090402837438639590726651409798887891800609755017407961716685776056949742677036791458059037610703443677901322222904437770230239809530304556696189964907477631022340264221918900209113956388469133399671456761640468164464346889742321499022502954182844142592273115542190040993220474349909527381467749580183825685476264327621465252303367132963021165316845218461358261596252660458945916418911356116388056987015359988112863163286889412842825526065109216080806115090367968530695450477425177901612508527902066123986232053375350683832704071849417046442532115644484853246922111745829058547436825765887097037707743014091421951900788537607311246442546661230248655659951114102718778338753202215787401400103166286626115430664617715824996309938841431103228565767769886052910942925812915675741997065355103304415414719428015665857106587839574631835035249275783662620494926343820074315754638227901791629497763784649078552691114469903247861039955765866026627448319379083578452259967649536765790066860535100028694454726993925343035314338299914845573085053149794902456207797127872518076897864348427170915424985721550350276041202503098315847148980523863808118031787535101997520839688465253565180123498663039402933924266677054980770982397082725116260585017419920136676268067578697233380791395166439030646737988881410181149602459632551509485235881436038471999006474783425476049283848161204065774721141616402825111440102694721308053371742454813312305842323226241329636953756550129121289138399105131412939533495362400348243697458697708129349287167235738494644924239074953782611380038713695080858011456540059566645233410754859183505268407055806194691132186903988608114218145785017248220110608724208541326156189761506992339685380677556127861957943776902748277935579284718318543736576304400133852203659401035715569179400459633591626072749870730850698673965437794889800522783088189033932116283483852754587597182314118111914779987331772853602422127653489869716169313779142424195629106019077472439177202268768605573407189263917633539641044249418456081229211247675076355445652391805774322171703398860246177915717121014081072714194410334434395053810049502934828961254703700428912059987503693227061610274177890242114057998293754186589532833818534151829978359006372827463123519237596799024835583246903515016006825554480744383107809185757430577654519832821823915873866963885948057520309589925122706759091207614911376697361667903019314177709032364271410510845473068715277639539309075931878323346155040838313929506050116114152386694704651084133204862774156209548926763921375703221343371994857513232466731030512161606843568266426848864448282025683510431167627789303367636022072193426211610642255768397152034139600494331786803833430886772835453199726004945987464647590002850651907908155861294456850059718312925468085223841652250603434050156182310682755958880244508892866714671584913039996000063441237986723047413992711177350556692780111447443825304137190844371711440118641551242340626346419547177423777212016649759056466770842408537300252251668793725229031314055011450641429465804321395662948470870703266124539234385644564342926158612578555476564189447696507021290482697146939459552755023630559474867792999929538109320078152161637457604173628017356049997219873904753375552796569055499631103341999471443525337551351238298138480442688151261587376939282553904845165222263618553398908172455294489015216007297269135089962580378441291715053922622363044588218838277145988284379038960063200198325633683125912070790863950515233837671785446597995101652607998781731512543823196538881769238557506828238030845505570059640380751792315520791734831397858227340705434310208972595211473522165364593983355572720605336099423630844843678127040409317118467506629511457864975737247680213416175815611031976944177810741527681966750586878323074052131847631080860733789494521954966102479921248314734157547739435254245992531903845712296269146042687523868544766453355282420954046306560383722658312381758965026581611988678318955385263087417587176969584971116539728295245946992299681380370796081834360776001732504385966804954787217645348412863028618349088044542965583728622169341889393903015906803355044149356775623029624999268896416308801106671218129196955283485688248713807294732057130982309645416518438147018289132358971387068424002813371835655400998191085548174285691208070675373942878167997403813078457677147382919201975163534248384829090057180319075389872323330858681313362292648236891022735301498705760073272676922520236832360180224666135362855764221082854921357883713723615017784660715694079025419117037491488553028914525466951904438518749332816290419924413428472852834957807089218093036312247954576127724105522228983626234877256702595737731171849946844582921762614901836598317110575964425962334378858882734284255122649347666147913788031575103356200647734423153946914645855102480999789752755304314835628757163532297439439747284027063995361220315379238331509071178350181728734308309854007236078436910245643897442521316266536462804495931743773228062190190412970193647029290544144581077065118750483001914986037817537324708524206470223504055255065193046400506526578277498594932671800811524929422160455405136626794330108911007238637919581222391541823464529178388573048372770689927535405198997095362301620484979995155680900123373973294372376676733027440359331959400932383708623113353964187913606366874521133269487392436522491731949420477459119230041708713921662523035516168908418415597817215664080704396641461224756728960061644330767930379696909612651855646134673818474397713442526372123698155890282761968838202121161219667702327354190325318397739301421545541130740337684770012794397991659554055226350636816853152333219622392317536536906078537903733787715250763053762519152228297187699860571996584448561757392581871694956044929006737149441878620694027134392792675845936177321139964420770187918606716168401020161925501213441069336723756534275474452347246897221101116457894123833028734861539926099993685713121810758622706075876791198541839018583350427474170523318895099329443255684103733293189454674392553756903184450348268959206325475906567233853956628264594475566420193329874115976746914019861234980574049059498711813530662941698638870865027616248558530908494853079469557512029037566553431248599519192333650668941897636609595974189110666849472953714158728241058853874808495928715255329442477473238592440856283588831296343211860506304082024922325586484622252930992845366336446274829827895218840699387655773803961558622646938690986153556675668041812734802863086467150324564728955438061864978286729794518822509768408364250638634917422244182857379262994054352027394820305265403909491327025020725357216501600440710056629936616049752932927460194653202615380621819831758379906142877688893655704058311487244557621963862194079767783166384812326450499055457318340640281932989835692858010591709756295767365125602666570723909883244450566376556349893857297374645770591299927857204015445917294550869216003726539857044934236954164013433803344185910221789630190967493886390109382541368258343887853866723556898547013092002815404675927004435227822126250868068764815719961592355510604523022277614417125401682949715213787316157872178718934609306346619124244797327094281464675948529515208553823787678526468200900242303428635584994372443794392414175549766523542410591421448759317113117546351717342090156919124877831245033359193529458756279565041019178755759046803380339936410549498174096224969315651463142953613091450861905011571987317466042535979841559370167353074192268169986820183565595805478322268218635391769768504792396367630120742595105632580690872114526433341993716619846337477042710750709245965407621472295060956633018503013641776740487450559521166365199699338865776183252323740498595920830355888141206389041892141459492512525252699352753963782259575677235848410729631109334603384919506564831883581796696559207989050426327853038731512516881172693520471598709580182788021068645316348702869266232994544242850962414725098445650763359055745691528943993918572659869408649929160911915695738001954082220199288081293898551401071711052576155902908342833533530458998659894812694226624432335847458254266448425794950883634635817261919108405871327250306616937505008503015671397086426526200709344135153106026355707516383703964229929292041190943923886293903703976230395549794308774249424176030738563821156177168401845153464751352895000521989794178978700113263701470488533649803504812471681860601959344374363402975052342465876364856026692092771254465997051371462349006623080830337644921089822793353147796026101652388784085283974220416670580722694708468802540560221601431046192641671153967497032290964340031792532002985467465489663123402365132706466871872589271684663084365241268806506854039240975809191793205067457264198825307484762256898186115747116091226243376898374900632813533633581265779904613459114192435575771946650411635094831176224090232145294389378589992863601127178108308662466717103496407370954610730292553756473434083444314728473299451746643133855148395086431942306092563553785690005005444177916744589195458748018959446014624936689221819569551960875470484044336707046794009160534179740295287205176355974855523732708924238313924731231556634798369786307921614484650968921136794429365455779219597986646374229076495872793033913830116741521003960760570866478021804066151722302224315770885958582481752612290069562995934100126394131355332102662440808226328914841697037256726008017574873613300272890317152452361826856003323442727512088104061842932677884634234970208792616183924299324090783818317599650870096670970472061057633318012623691919277319262311029722132629786672825682204117180889347149249534621783277963786435223785886835328385054460376057708760343318933195698776808597141380442705186077375899842848173093357507427851284955963226560366040884762039927673989970659247502567537050688409393347528773628615766167458316401082796832308028025189829259414551319100371346849524365078219045635716884544222921540502324481968980744145980403756218883693548554145240226504153287783194769844848537738839672267576225544452794418878456368907327295220045170702339316002434558236127635621767196220916811751558597945867093721580116636168624464050807779060672635413624475698730322092968750478062894407947482811350207890577267845049151270028280199749186946048113152785886869363486063979068792489507698623867967413913076687388164799539107837599252546345280571597568943861640984083535566518756285169873510291261999917810098828955861334670114677901621250479995734869375667936061007373712625151106753721623932964254648481402551685342242629888400260719951965966207272204862247452370740605355281914863893424682674304853946547467361735886883472054342676555857808988859691711703801487538488776979536696939079642408501657573990765656190616093307986970727136684976858706992693280213198601128116693086980094017017626393604621661292387887281987725381454345833160795732743267515671120735473272452557904592615720050436691632040295918635806369965964882394637532046326851600390661835254401135899876196793427098103163396712773280985091165456900176062836411463868516595916714184598676567329422814831628251187274040561681168597758586799769514487547537043256674894265876267487273603811083678486205550277424753000301124428159446468376259914918633801816742639675855531568331219641767815549280499069329459644575906114472539106892903026201435355264351200930281432470865317986788348383001780285131524687085127895480269296310060908240289065222971332457779532909192627450009022568299332393091382611412145179659262638958578706494273053823658895201125106472867910512732178957955573400848014555655629468697448250319635078703582319567106577882573589442598468563323393861369010762117034029449293543597575168990098362983141942769691833786170044548012155212407524108168939019377608386873778324468587981822440378344616950990021541934843899199358701584942949880323064513187952528848076919480005606423715832961096807945758529697275500104651547349568345204501191612526527859510685376672426207865224816079064094123320413835972690410791877281140917807001044492846820108048618174008912781789067684378393649417798969750192042334200334659880763606925301929541695435463401774082025260835024779340344328499865458410485108946864155824118941962484950842594818049872832900334459106032313610221935412398965202083205726153671913362047871807808130355179299291186087353672802227961643747814182313033564498934400458564084690074918880582927969413033323353015414453962154505377070656436517374052173585978450763055011892109244996136074133876414315041456174330694286925484461246909049034077391487842432717206236529157264907898123986878934028430725551698808554665932745947918435031571229588737186595989429513119100404654673976466890715355342664105986716799031226498584013845022016806603545853415797065921288629819872759413975788111070491150615857684755255156352649205949572626556644958559733095639646564759694378959635384097829811259208834770058158535223974391976712583595506692685421780758956534849709388597115467527483505014228871489553453122753209577537524745582114872067319284520459046299854808459445111064864494607828061202453324895674777502125495779153103341360838321870766687493613511103793246581351519027557203903446463707036604533035581187660908698877777207314701299863486858491455165377137633661659588106452945958734821071345466713999844756422635742445840279264337346305308481242576835527802631900659349071701051534914457069281109823284320942557847430051481774456364054529996504103316556596024123418863720345764467790299334590418291186674403487260210205106144125292230319720690187216980757576289385817811678404786682008319209661656257887977214464665494738853531541405689552422614793985920979383494022667922734410837772448628406980078046955305402046631400063263421885207020111816096718267625540770520438384680396458218403780723248682111863044480307847822326410503943505454040102224706918245858912923971150569217950302993778087271461897965802331161280983884759259444990138490661668353377403193033814085147496929211859371303728776490523924965194349706221362297189202577000405099463820723463763479410226675059261118273802073058108540076371240106723400212753585901314408874064586496994279113764453939708334572854704583803685191850803452817963665879108853940056478055280059846932644552388921874449859003734280712448088732849719297098370740142597634511242793865712201020066363344354814297109784783951891999467249774209375964712165653889754352491694546645271603562814161438218210453742345026708260449621795635707380879840462096897576813916727352524864093007959498622562165648375388137196734118438959990815814594651289636536978070307582834783539045725157018467932304685445053049485060934069264066408048309608730344140984474161269512576827599611094516963001659019501253563872788784097102348581475518384769372722462246857895837897370105205687177046512332008741163866794700515765351032679117247276069149122381074873628648935348046418981536142604828036838508159918965229477992482650830207574777183696940768841456544516855977553597603289542897617477251529971135187298772893382489709847679546107161729805805839911293904597479751983630301064457050435681650691100681011544625500656221106882372418193159719861893697139208622231010923843180507148259167276960832857278144423624831873952472786011259466690962665960629298653078410244729115327095814176973749877973623148219080132389115540482273614389872227088044365222149970200036891481133228407108821734479142271258129063728602501926120339020177374303040234078515681590998269741977884827814643147636910337023482174926048652609477293969785548644620582984355517641294191866995039718271130369170322682861572410896771374274334533197078446185285045604438136018243662974868408226139062939409471953136241573011254300861490681345360926950382249716271222019440737900608547287734070947466252598142858807269903476390604295320586816690830458964067157608855106598509080612374743619657461038450985994138462683104183195398557206757029858282031508404570456809098193273209683098156059506257695010630457912241285651950474022244812991613581385803940662454180891760071126392041730663619246494874679311676205220441452482613232748264787453872500525326653969079213605777024841984715059970986700984431432581901767949563416563942574193987567855215820655301656811233499359209110591906562268028873708314844096367539722793202604502927159720645751980805013517739569051193249569839700373811123914683327346470645676786896376434873102983112812052360137323022389045682954034656219694809335768072269902508267976901318588145139052583776023614825223120077585244404590572528841622311633862885457782889223630247862856430927625838094094329220730513922152873154491886393252956055435807762386109263736761155106432549184470005015820887753870785578638636364419722277266479122304558818415986981134751886737400365568120935497520541809708146387903142716513543029037036361693775500735243121326738998305056049032270886943641210116264361731796079692778917352679129589872936935325426675870106334753077734927297578588721668856415625941969153000890611329224658222771425636530931985122495318105994554267082428580314441736545324181391863086379521610169078623905565639459094747128524854494174561251253395528500710382333419181052958664175538679869041439726723990474458238588313243810080585992921566365479549509923070989034182808318528992187291363671855844945704945397713286650135604222784233117523822843651950928172356396924396204234816721790000071668721785793953067373029152525577765665316544476974775275643671129111341274608116972679991901005142089273797282079338981654346435507448197247216199613016781756241030560701352221679196965813441602765123430194178240915088065140650746325703241121563034876650409936373788835195434288501896106792241243295346772496513493149415185337563436712720545169634433003745598610692906565414265785844633128431041286906760619605633508488898422083660485689117059689477638126490750276874226502145262561937015856488259981408901304917537079767155635356891889917195387968250178204138051218040305617438223344671955156550160200079940126718450764685885085842397401155040326557945044410097882418096100411603834466148535380848335505787311071463380679691520988709564634531817462320717553364845957116921844267291233123858431044641773839516364309084527461885742943233567645431697780412901941457681071009624526487544743370970151801185802256171658901003513052591858904658818254117230010563344185588917649587308690128017292367103511363513913265701004659218104187707963315428343616732658970542854177043426536446942800691912236532365901755832751526834813519214363266388022085103840765733416295494860662982269363058494584008525385934301809241503466200757230108105794129045067031199726885776826731063674496261841070520294409062515119655915192533785638517532226180289289416510196397216252113429832414038711142540238434818839958246385894757941504401529349967124099083930821685163533114932608973614985106276850925783321967125625385297176713997115684681537875296266696899519920120270853480669559956063443612552100552171604958548386276392754935866625063737044819354746003113575712759023565634482249529852766301785544243826602111520978064475995154659039626979368522631102779633662223801040797129478462891135013578306518090271530768553188147897141207175984672755986369890874086018810009893140804282689664509696476834432466616201846746361159838043715986115225384794780006946302419993550112519617341712485242429827165568339215760839707371423470436035007669233910394159366775866618566515533467978961905103767573718781495298501503099407756040860930985998913026396454991703506533728722678156673704303126627860008790775775253845382994301312045971880908611571628660283364755670531669398073497209081040715195482127215674409528950973417192580000937873847448981257630134148992551731314548845075892424944767953177952954754094334960952205363844723840686945773274869381522998113030856469034521996627752386854043335530966663438047423749323434568586161233957102162404128532923805407246014848662354812484560377001493597245167434082080358732487940220901457480388109342667051513026385280236235625492505310543413734038873296663330491710550815157222082298083035091080655662357252443431275507474785236988548829824558255916266834849569318344052711440347442385963029099377386119789730814853451874520290200877813738829451805010231427479618012609283263815170151837341784111395229337881684439438557145553210618987311450622341231588607042163606957554136944226066326471747990998626311100463738283043946709595061461395107925381415553315903750254992411631171541707861936726660302892554417568439635726488853310687690789709950448146879775439746277381504155740643648876744847462871525923663630541659178114161318937719590791194067741356890486446281751338920051751881316760084340199241169692789563284076347372952290788913932412249045027388296026955592550557108696086054211724305793727086604242603675610679782975012948118997199081690470945160105117459705438793775492623098827584563294087977582460443431151889233384356054983382479890791367587265568646291159129049515804421263193687781899115405458023402033891352653414086249728504644517485716006290004380432298298976461038385199360975871086758757875714127405984617841259044840502580401166797189599138255351196912547785222564487871550136216607772530154220847942980674807853063032729495607934825599157341561056743726179681310506354473546836012313577545074279281989773300680967135616794049588676537118602868363582905724738861380385743466291344590048105283043441383028574468671661610530252072375691214283503984723123534481447417751582165684718984930482569508376488517683665657060829496349437519723337418731490718289166218698785273664798997456585012731564526509223046541291307453081292032096568921626269063474524498587247364981531941519053098103645487873292974349331292143017772542977840129345680454838763276464645323147235239101969649341578033308966428483087494678648572257582793814618617535643172728152059741086730479155443886660174205071714285534650123550888713320422291270021322818700574891061936907379099136038748979288795901001359575657231307903183106968002177195346535898792104055696171108881755203329310307931284685698339577235901898535808641647873167243531747999792661322490940057271977799768535122704732122617474028035718199875246175803153438921663107775565689015342636940092377426097798509711241750901542586965544731967951832611218783655369707436046687030845823820361605329759338198341927600547079867756341016716092282626200718966369263922755176807905171378980029590774537388760854855575539371567743663742783315465565243488476069900699287442835872263828006937182482230217905478521852867674916826356981665929525724172752281710712747172615479668841072143495395660570048787541764259934229724070543011713956053543747513703582494343456215985364429059299213298682725287867811512444167977957038089795680916760467061515905345241044697288468811033488095889890602267538751527876831597744462015434702081987990356848469240921485323798698703428957115626344535921558219979330737759864145759004387207485155232341005084663846096448968622722361044267656569953072659787076718630950905632691019707809277039660538917352422169053066513258574461761513669798603687933483085896895077302964311357606081588941862222944653427593643396448124591347731266083987634302475862682732880448737095708205561784798802799794134445470087752353071268139403205676691924049786925312321363772753210429586593202240278497704917085336763877804301372487297434639399477223275436204330720574753774065115819864532246631393451045832010951495804518042969691289794111356566943989152936628979833285782698474188315761344421400630122557815001913010244935255252440815928350837130233663712333381715713179162629949878716933354529881283373495881119005659450161994917863609433897060498296946292001112140617998503219131740821714369899050510979553204409468632639362677444744496456817461595606269155580989963594200203419094895259245478632601108075061305582082793202572658395707672901071193782349818660636173282361867305190694309467196074610415509732502123147479554936250085642700333188204050007520794383289518780334575664713816907617702923238630198690019252113084434982816318488602129918326159217498419336105353553728274697805865110846244118629738024136572778942866558212736277980557344756673631980223902328622748089854425508506921888483682165339800778518234009008848212754726745413234946469278327819300932394694673366022814553440990006852943071387629272626022563984304489864466074536941150541133637241158043449568015352153613122500677105237630973918469676110148876899941416787621083034753661393407448344215831445480104251679619939288636054545487429841288209644654462222094108410975896495098488534140475026330742700346325816878837446212682910066239564629917021285850991959841993260157630560589516390109990292498183477156079505855042659401976656399243261061019221364666167401599993100723008643772833636312372971762634820762647587478095810752535143970053381617774723716535729809012200250213622869763284681405398836526665849898854242441321616500919051054975103718825267296243498050142614477411527069574826791856318324635512652408183784969118273925158124401118993784998409551868035464046680480446794479707564078941893561548592490245684183506123378389344331454000140163762826206998043257410014602738427420242917856103062979414260681749800326919122437422768759911103642853402018990540312026470722231457638017546770651444126077324811058836420517201153959010651440720032748000496963619474245335362712181439705366459790507660601496396036477454912844407042565612036379609619595097468995274107470737883597960530176123001861994202422793662329211183320515064591895785290977177334071329750259832242875934861260563860570274807693407852214199734070858176124683743799964203495817341691571413146770084370556928703824872813643270335721577654016947434700978152943475995642916698750774776038499904436436415572569128524325821294597008245253448182157010325593774853764118624225254371867553458711319784327612825222774634381608474454317804136212230661368489469984329423787485768618610271610071395828180678659536120227204166289648363706034059369595424999342514350305029296703468613054506989223371250078372071027703724525839968379894188217046042121872120544898687877503813670843747884458059007718424241255384972649650496434486110550110696689096732000539062362700360066548910562059046793961991534256993632982823809660710914387056264342781379912862374223646330157789939018475723457148619007420491004426287788185776966048667313543316238753014699005525485873003185590651108066216042241082299839885144404119019339724133675933108847815859945585702364131673662861654528367555821359906065747944344832703671096284199413100226666464953687408492280627449135916967648653157131282831964446527275572923023013298312298033604356066731587243625341403031533331377700849480544039911347450394541023955637081903838680111098731945589334470490433036688462460190981877348684164119938244441229856090498522565090664539693894662321977653645614881644707302705217121960840198836846890653803898942732889715948630295155205922103634653942542975236457120335847615535173582466022926127993697360429713216265995458099899192613196321479699606444993434943022512209970011057574552244124408872232399164558760046708684393750009253885087286103791318897928785961532970815295291024763528287576291615982302653457167728747053707684698577419584515141128750745130755345440855001958504314923857926318882884193138688450203382870960924398008835654543712747550406161809909025703307498870168639579616225851421364945531541009541926588963471132560379051564287617048495725238540522743134611126204407058036291257733091764347932210076988141851391057329579754535479543888474203679537901156156664156368317275010725498804131791479020356990689642544884695275380045517096395160628439756895836227580898876139138120250021924766593248722958639781440365622632174511894765503093458929563004617970573781779442034273136147081670572654679589085246625600988964285192768486556304414655579234984636593406772304586707411294063981529547806129271657940190942392286629340658468522795411248507161435860671675565803409591486250620232555726064409571298070459717748417451966081011179087478764005177266142342442382757996082994801497530641108065006213687957806958274045629870393248771600045904285716573559888428660991254121308473083926962493462707972439073992708610446931508713007341481019591465748029866525914881142070170529314718336162174275562068351097521873925765190655376209808072909071749875602603456702843739276534134303330180961904727720012942741751328719044636389810476802675015379332610280201121539885331048527338952059584336749991959302450212060128799986561192159679487865098483155880223364255549425703670119111365842110725494979162641518518214943946979179160931218307523699840816048953905367721600683255543206814280992833502152975866080374272981896391046742212724315861093934580635295496919049608875874070957065705444992508091302270887818798366099459178894716784567151964480212004439335820240322339228631781207823687168944737617940635156072951422859912856450412882380625213902508587585908969305928225127922215188916905089468440004949869371133647444941245927180273038832093806045929171989483150732874546542465704959713017761561503038700052092992825390555639263661213413152268530635958623122846993076291882972248887613515970198568998736885741678791715635186022071403600437855914087549147439608827588456629517168694311453378675742671283511877869046070795573232673842578322234152493100883531213049842102427288381088650746927472440475808256611456289890331188023412774848432160406870552070378731005209990781809137031190732467671374980918609728872005012038090249709076640912893209130321045768260930496615351643304241413835339658242866906807216835393087164223641501018974183217866752045933646121106621335756259724405235368597246297160296138854126014175648220032699032825721803393466976109823022029827729492136602950883822862718574307465455588702754821127995308065022696173416848651776160398071065229980041810650920421795743636447340969167382668564549518294096128091199174594727786068547633217672457946072884643913692025122160152586131059972556514666121609708726981867096881735038569311111416977737467192192988019596015870167563517531635747055268495619551060019420381745540506599875501820240042190157453603098499022622137731392529927061374381364382331700232673781652322600004346744659104177882877264862111984952296148060816803613718010880455041266130146335860894340978773928904687987927503487024009285611362943557229848948374981650458854115696803105283964884377910466141973409610350318327358843528085407573994299312414206359774701674880114457286832850128177639922716123668102644901609054629733832391692615783720571676949740334487080212712782035101325064485838186604875336575687188369253859417632249140747022283108265251388063038045154442776481188946161683589316885410594673243249627456678708343469500196279337273596150165281633371711949999724215944048194973789866586426500747262327977790560342341425675560232370583416880825981838858635448464273336245963139032533374602216810051514024451228009438942331809539542413514519180387893576887614117820113806566915798078137872055591119632112033458343783593044790451198736766020580568360889608675377235860299271736946371547787896404240561912110914844387514086705815392449097044036891184883607436224860555360042997558211228071629801641644587988304050756364577490254599800330321887760788399839181695148415005577471416704037621070941095168302756495290030979695523013510882543158604244587950005594376833660492540154751221336217962024728485999671897409318284432067250101722066224477630980235054253946209937799720474975974183694716704129738277127498686226646684344559071615605271295757519576588504848408197392146204443526440940853042122733801203724766760405633355239896614248377239872066713056032121829178698956805037817321711491046770271152346281438830158779551654902520880262880582150796828874219709626487181662402801683258509155531991404355287950656458555361622789371217506284562793817493271481093947631883821217170225435673520690768534627470076031729601544791126619850932283417296907081956836974473739846919189498452432338575926183400202942135067543285499799194513484058463802642176140364178736136188959692395098609987946104610976937196537543958795063013808434731936676146941832884911885666145429874677461964361175191925838085434873274984477944140259346478538942336999320463774250157050240256141344930141276753044621244806262384146366256707203298734520996473189221581812448681408949016293815735958918142512146095996325358466293390478402076892111399051834097113303521930224461565221920171138763835901270075482834874737359299831389050386970962490753098412336970180032262021791462653510174530370737220759669675849838686251468422725499252529198248995434733379440164225699986129031964851454794642906204258476524239518160928616391104144380715322208941915249920571660401586258382917321266720506562989430720215338946490406776377579284979232536786291395643272218619885393092918829079186112660128842241637213588887068913048638965583455498617483417588675323490903952014414643565141389421162459808045265790277230267244840966614126037028710585666926005375867281342205089284288095633356646176366538553405536493643883824888826788992196436826479048132249974028297307589933728868520324889338508138515658343011442598715170082965464537545356619935028849342248151994615165631927397180787067727338408215181483090080348562758444496993204658907494624624412171816655923810778575091083392168189104648754796362504486242789616456201471430321254876669347801875626971113960785404640571115529614722001681084346664448897201871993583245523703217834543623493482180601872867774428184045943505275369018165324577161218406209965047359152505735787803604857016708018926024537460480852786250885455237331133491609574754376917625146589977107544023009168049889650930466188667432279112016972212697388486644334264151688385842479480403359875241698713307205829254499201212750052581802497701458056114625132674570954568174688545857263733833398922017163543407393516788284716524133929256708898854447586079646390647656597815341912929702073409071064724659265212777618383617711319195605527354240547884558712630663509125152928477106829344355549301745127945723794738690695207713843508198595412298032059494817132574036712858981076373337802062245969560000675932401962368259930735999351186869117016863972412680163484692899257492845849896558984574918485494955761278300458024507481666158968130748370885369415832088891460718741362724011879978097523414324956256380475090133444382931219014588622712956856672899345240792612361174285704255652886132930950103868616785715420554505889786807911978599612190443960360735610755271958610477468312193149294236112773662135136623617727315945171584989270147712825601580898753358741552882970457205684992903137439464862399603799948973803599011044440488641035876354624664905129916843769266615326179175199880799385414593485184184774311576314340036367105073158507175762106298638867449571551265066301006369570481801118917455874479328335693399805860951835760949906235053306953029110673053300561408047101993745944943697341087471282980769033247226994040915913938414075858298387179486908633189646411732211030939747704249610348087272494824415417032012659310548645853932632324358035661615437827427536311370752745292710115586960466338918610345733084524169009507561212827691761401977411983986974060269191605408904653312579154579711113344478040498833172427327471827780492224218208790904220739820894740560420973694656146535129129831448958762915607840673643198430321244059613367130237649239391416399258917751245056221761949834215631712921704532357000082726509408835770274170002976370909189922253912863742744663073767173101661424475970256700702384581852955799529496734252010586362796873989707925004025034161880879697955192884720432186497739060778019559598513663474509591293429362347483534844459256407015725950243795142574995861766565852303699275454687419526798598477490801375251485503047188694602009101681300053912639019525553663129590560087166803178713512206154748687043840479282581860506882449066918110185255430494142524100105766015299580449793744721247773439321849471232210006732766733418614861350964615662974545585330980602012324284795513260251037865474150248229722586008526509625784059598225009569026924459753028959430528168524669392955557768499926896476031187094034738940677296692008054907759674223205026575072783010350103905806057434018173810620877701001964097624493638316172288640435503267795390124068651034226940214308714636727690510352159026506555385301739620503705960577162212625422639870543447249253722738917276289428737069260148049799242830544925351621141967513737449709175750629844578381921832646160780093947689202207632013632776100967844104315001277544787168746113713878988789870852827906302824037122779978315690082487517608839231045279840838005913401431673937926701403042762838360479670660310933614943403893047748173259884354595936691424829904152157241392444377050164135853235644243027056166565908220467784418127908550796371831108983913491926602566462755169834440074620045498724436120682811642084841305243012443734075866489916876439685786453908425155184499456626064699351904755212552377644767467791110419585441377563613028892548519545693850530545813778559370210826654941443326768181471923494157472631019512390549753133597747683383209316228370380175530908073301379094402399995560469887418353958297747745852206300496237533262501630035575040312046916341121721575697105236209673193884388335507342058202247673886033420873972681074746806445037863299591759023210582472970310849556203329051372268334684516627222634191563783757779849254920243948434340554996836353625651888319854156863422812211780427654793142004733097784394122433817534053142327127363090383418616548164813515396487967194527275459131497352366877481841393630594705931306099337595151500017310343097192574456088327257833898047245171197931060975874467857843441594661079866736382515666089858723530782619990110136298503141230460459455506251522884423632335852606996890698175889981857567990357180160792122708303236825321509484810572730236603274105900794249807292074432646767162573527117774702615694684717171052828132859275171276024859991033824868186322053829589526252693632024948717854839613957318273246208632015487988310982431780350950817732574910269736087382897493581763714890929022639127285199070446863265347468363083611616772510993426490689989389180779898060515353218139387255683070586718468015224797540952476424662918573006535926523772409078420026326924168762315757048799763668072448955428012118371779629926817927791142931895565637325587004223029542173150166298500405689056055457600595882863174148860491149265734641546675157745344758705248966002135079414744629383449495669503277247664402950926398579683292020948150880797068581261184912844442274047082637202601571199992669162506902324249441285297587624757939144446295346697522953051844001984190893038684504706176027667150294450407860945412556804106841158142957583646640776229669114312000199270967384932336857079808381906262868533475140565990744328355149447443144403655814861587974839557736502437473468196099185909919792428753194018762508613514235253803833181974953346579619922369322337603234599700707987574312035967234541762826593129043532773302309839608166003146484073089026356059489776562636040505681931375163307444794796177933291743637876623762414747298371667492139983499349367570658675494614440239618685401048506315652412725289225437808940274708101766693186175969313217364029313187303480532819551310627351744411214872615367045610916530816167231453331851000037355547326283927627348300514118952958937288509539920326140362602016557945892248966268304715677267321108132890284466484944447625463241769290447807824716333126641229374966077432888549577953440640717329628927440370557873123988032765131264581496665707205818088785697564687613767957508344095194963978801557996728111623442491679071191790559182160609711708222587547916248139193093207503428072927138171466739492320019062125070480727638063570388889290005286794159142784124533047717498199132996963361745698361973006805024920630207935254246097535358089924764482460845055992195770820327979163592118057756135232732255634586365679650850386090658070657404950055536391151647875901563100895721971605835622984645265869305259051563608692164546891419874822536263470164034642353055013535370817989215824788769886972432894310910105913781525559418088804915756804592565312489852719601173776898635108806725457482720642563278549699969310078768028256076906818726827906718288879880479865650386818670479855430505593676542991709020424570465060393556069466508070178892706254417968399770315059626476599903507996449800109060714258340934979059344189198355044382157576722384390717887075896231442908421293722415860741396696618615936583890829033279725588652807180166572893611280530292123011338563455658631360900874223468971032225072787973117222936391119021684742036573181971947145080711535258362059681164588553658202286096899451034185144189335139064099249004417867856297231304834684932049147866042205627284064580557087101131150501361106217865314985113020850162383261537581090366404786826534769852048723181779972400344857206939726154292595192948565083381617454328105563636114068141688113904770846640646159409704148570778027677678896548054714205435341597209198565144690961197094720492064728301586462531672364563255335786266247482166577085861939669459804407549861085132752538345886416027586591652828777636087373262660306426172928920004443252022104293562881314071409953725598138744579500026878051254582021708150949175725915075032246391172571883385535249448042772792975175102376064527371862939213950038726968489546842910327864087447613254088649413546455290705399556258784092617946351615710827095786146013961465632783612564199318796403682000390304282979567083391640925159849862801670484302077354149855567831614469619723540082861852595301782391589303694429674351873860821701553374828392544523258412283761555107814330116885212298358924948266066149634978966827834008222074934170034723173643322252516899020895930071911233243915602449428979276525083902516161752638545771365099657296170053479203514908216214985950695432370182114709911953656697846266854595403509277047394340319115945728613924275259359638422041461396550595958296246642130740984240795058921855010939118672561802100786225741071530655434448445226616233791125546230828962652728847759055824508375953141622377905369838110333600599642318857130161380080120467442456566451302564691859303980976176785873341747982642785786859775647880534598529090925660253861834467519097212628773233228744282648650743977222621463373700148858197860938363681454938853939220718198911064615847559425761227409826733351297653547913888587318580230702379774401953236854497434173226345233621996569006109983952462452298339068334799669840291111956067345945191600723354869193978715055850632137374681789825655474148768134628396304705375506903387450360039252892665540605966109037885209064863831534516508829539374898436376775528054562366024738131668783652252238156591189028876469781800464606117028121650829790053905350847217084934289303279959374840757631267685671834989571780211475640156272453139833361847016681663252191014910656015958518789729645234522311253189113398138737059078661167941606244154016752261112284802514871294878513324862982967187900514177141831808807970406485136525042787328390811742099068873583336161435738436755588872789741933084062433126220702599130512398935638456694024274497733392444558120412895097943401324515311944506578484190512271348700136576460450940799429941992159654305755234398930154905967016978945598253168647454707444055840806247107115384603944944191277636149209882009812384185203183677066466894410139371682280981097826168585265877663066309519649434726805360048219186593316881899934234397861956005042794915905803015676230282624779673248020549738458771789765284712812564643628944270144443772337474500436946473211353694084630468340645491335133547378570546832715711234706609460609753408758709672175344808766253627516657160724896512251816425764064184766960479441120521861244526825590557808831463643780316192269881048845583736839935474221820345681088923422740762400174151289994528253413174760099016220334843222307883662257624297279386361821896882776678461192489626988414915523669480868001921000227705011428553775292351817530850640722967792673115753948116915032599120052344222500356241400779105561945544801146518839346665849639317419568668197584472381782248210944717194166877088058305625280518666169681336830579579007548332326807975499191151306893018745144891490644361730063654339041013023294574686745988504276901855205088086173138738678831538702288353338981162321125250777075477929354264894063814988738418790287807037634754350939523743513250416190153245611300481751674419742341396353388526339720305088971165144544102565946107987467900661922934537908302702696467561189387403990660561484916297238179338332236319230219678378173214521923868097887921605240939181678922429417249943511561191509308635973341303026387222684578613169284634087159913291836091660986701232152201604156427983749933989768688919987253526830757510706568956778415458226393183745119368502027122394795486220083527232638236380202161175542113991474251112336713766871098449165476094992681703089098679373227766021820639115010188979746225350750855867208630291772344311493824630101339960880419744833817806360458162785164017813377802598037179102754120560286317431293318221634403299795945916257716249170492583343336627233945490197767283766644630763024895390945732764666475222257490960957274258293453053216254152850093444837715657676588693130763613723485338946020459152719358364187597909788473428561117079565726243529788712843199881666631363492441421440244818999759273237758123170449137791164622465428274818722896713776471962034301024474491883533154398322272734737457719137508046217858236825161220458914898152792896606663846008786068166896736141675076896442447365973469638800922131789159812759387868245283575600672575926134213473074108232281628661624320805278939198513317287337772908667972390609725771804591144389184085668571444128568035069475181869022425679147561600359397473373882407535628908875985009098801170048505926184279447824018614341621318227458662606939083831788907898857141488454557152935668642441851258583986924940578723420223675279850086463044155138974463033060001608808879731151701925362028165417279314020317776076694389043434456885388202198871522739559218415469201500102785583321904547453335541652166792593706275483104776949282240177806740467183057124373673287797216863455120504764979406946022660326076787049768012568177511160160153167006831406374327262941587585213065916875788444401311256684658468596929170838650743383574005338477111866283691376345827389553453823734539294882924470211959944506392320272768037039755850318216049424697236015544621088039099445212586743942076670609373473240366676433310540578038303362096072342076692046135077808102414646163156407745443611865033655433002332525837394531860704075048699422562326990665189455021433168291727002418876833726664070615145189436082044599319418096470467246343666588972384846129440357332363071239600928226864580176703515215224278856625077496473398308828894442769387568256640281270626930610135521211751021943578976078969278202069705776140141388055288414669130098722816831800724453522733762327042955549608369843842290937575648722432079569541341221753225088223621078371892776190517863779354534698652679060862363117080501509784099447794449158262518435546581239344381404360008968441021216418983263222282890317188630258965197758361153184686760901984236458737172490932352281962315105349883472095717539307410441671296549618074993249732531117790865260211821344621534333322358415837869554948787697188913547457885428102824331537129092769517952696063339833052236916017155441065446606325099695654038313656065765496810712824768734360181364921495953871728074111806028476760834618473287491376894926123038280921948496371466855055875339950444952571746973987909395963054983894788135535293577138014657635606911377621328910822638315367902977651403597027165034840856448394642336415687445525202683398240917566340572974565103731715937817446850261837049851710151171723279534789242896727229980394590744283306557073523386617474618326295123731236264197118563283912762967648801439965297486156987825073930442307377483237040648786763133622197096336356114125465437031993762173971197438689593890668648001698052829267177868268481396092678048458855310536004614463212948216615643653826735901454719988595306469169094628758575115501092162582372682640329236069426351174017098394010930619397992209776862854401319096678800761998805710172411185722824710302122316135992012341217397781152617401893936329732364105911255541465282038115838969912785422031780928083992239511029173597438843263173660254123214712584162953209028789394691959772204725557291007038568468071616006824486121650791672149367245749770842073197222076811333326582360619848119591110167600566798149197254769419763278164421539998546145622010872383217163817418409888615124873481958496161415032995406380746423378078085908239153657071995270287033155174286487168591729132331025721030667050083788664792913484561847394365306434395544597386293629047808718738983354878008007955553827175892959821428552670652202526887076210746676281056017319392941940191247697294586660312482476654029112435942304549379412799254700276257092919512200923498935903644099671880800904218791774004572253511697219689643139694560254310142503557915333738067758057817731611557658885494460861357118149195761673444811812618342510341852767378398888944883785999397248453015239715220165055769566005387301352000378141665007443024374285609527344689784146765399000637148063642438548754074929542330155930923658711873954761844883512447137150220879566188845962499867720000110472362325420544174973349262727594228742722229411286093666087492527685268936814056214836962482451038103707909210770437744367534980269345283355190047064132414030961490281092310830437879667567696343621366241596295585659611372336322962494412849350555956630713826454683286764475366017520655334937678462899667494944694874641649256749527107389197919872419908944929462486464187060180474156329148822455194710215315676935684976533561182534004641101159539667563249244322792239102379025598396358361637013692275392262995281537777071373710797065000804830781232686717851713405434611153095881135651547957271702565032130748243825092191951704016128998825085862193000606014960571424868226396015900965146840328761828555217118969739911695051185984269969931763127708743887001563788626857653156492976721113296412936271606983751231714014932508951496598295326218456184840194774245830114659770973392173213398319150420658671062178731625918201628949702164496255492439280652813792486888696995354836367979807276738523218478293293351505982537484399862823054594431807239311166133785974616712893150662223438966977822024694888995920522471947851520935515729336143750070914822987074489626868316807744365546741915927831534024301460877875029662570837738968426897896989341494704792576143194105910584802301302451634078949289638946669680536972552356576220880214182603051506719936045283732450981335722727278231796466359921241911875957943877660215877619129975051642982666945946277960044575185554918556523753373818586146736335032720601039469131246243589649147520193170685467432144224412745644947490364760450275923774375010731942127914442452084491177273569803506807824183880802697600603861890118948404633947811747796538757273684267100030709580229528715326790934954759824971645382103038603133201249791242247770159154903545707867643732627788070679800798379865848089115745337684906353208047456759868551459276018861873317205536972426405854332675950491432887945554682794252278942529859074328555109949621601928562240495736950610430857675124938069295150704993704763057744505533744361405341221769269665549590548530679857728639965197639008867693317580918550706711835864249069474765886648939287450549342590527925378086258675286835280123441837031905537954728563620684285835240018805345979103330014414431207211853980412526019411864680035821131471644058015359180484257843043644459169897006346261600995658221955907300266773256873048818865407999178347836858079737895654726509067906270918407399884917291387399273524813654384458843136727244215796884477793106603213073229610637167834122960336364070402353517745584639615230709146493131589503569530293189095483246459073352409902562507382887009474851598809659851210965888625126065013906046148233566745865816696790444012126040308581729777944336781224355035563427200660529238008950823059434330604978827773815042356061780536765474939073081910822816252427496104768832189840653310383950162117259616656778977690019641486250682028894624484579498115247330217054439267712826519181495634724456119349545510917852324685069490418977259763763212876572372928175675158247865301262262849934992738992777864280193811567913605130395242645799659817249049616551815045181641249486246882160016359994218072275873499835350534416873464641649390500935473633708606563384595429435721954131826086212005745245802290905015873435045751410224875381433719262355018803499931529224020565079302291321468275209986881578870144520072222746922525309490495495499430812469375150444191018684480959644922722222056138820026476029703557079722659074983843799716566711645112031539053332130904981391951645083710675428376467142684254786565003565330145792623997607865294884007506707288146286152625864450710435717359033035105358136745984121423421414323616461306439525588857950861484163769056757366646051940349420496645950612000235500075801291659842543195582017440707767780005478427152092772678183204933078559444651282206236293308950050270728526266659760179719287501873172255611896522582091228392359620797135518741037091394740448804912912336551126165717098580513835163030621334480253947572127059586682272038137400974526679697037956968533245464561790396840996210081947309395456161428031214999645267576815680630763894687638524459335394774866733242131396546310451511474511759298929237298074096258307001769073187182390255087251285915541152556117037210520038748315387072943265067018168045327073780425839554018239124010330552561182964381935215041104688969007529393189826412619833130275955672907203376548759707962667445155742337687064765916592390075356728069634632441283537546121907689902414689425507920068697711113690886925818201476272831798011239246166658766862831782106228047471920313247793729736858419524082809635154991843526994350440917029849030611606402071550961982502328836875555579362602055428816827905939448905265047632013700518725417109567922521097759282513427833350934653470859682592184027802423543026509630117330247432339150340543816143307197458342371263551821801946075009567540833619153501222409800972558550132575233654520851277972178145969898791633113592856961714360735771195769762970530820443640501273937754649070143386082744402768328020392475427928731103210680533544331260346079406890883399626969906635561616495775156366813975538320845772313582022558816354548902255117891098037920437784171821620627477007108605256620560895961307329638004332912214661747830009680304722693503126098889240367751935502640667400039687484620882825209508446493673202545663074200879542782037952612139956357378245753064650876487646971575143461386242507153793057890308284320491498410936651172428713412448638636740870796560697239059914105420041513392701626170896394679913675982367843991729677158394954782103206461835625985395646207865493673984301228355210062136534664041365095472726383909241794362029381733153884731053008835289308142141105819562215258240141252771873801383411805576225626401518053474068771527985323125338857594952661182236791164228299275694441898010227397141653307250100434747404276648177275690711191977901698681984294045720660331130949557405650855451876603709830315320134967271970291084840467052127547766413568454533557523461387191354661406404702454535415151998607071106004899791685385276652678024862032628107337199610595388741881079824953324256379545086653041489380988349063598935038347820231396670682185308233571092882844801833061584625746214057536700353787791765338696000047147117989255415204068685870206584208099791012424405307405086092375691572933248059800748926704290118552554446962924611833381958267508214862083340304411253489057662526363598815374064826570740217838717722289849098749819202958589297772799055113727511552563316731937130976631631587384392759466758791404537885827853165577915668946217988999145957998296351990342137643862419321259557118405144982772504455149159326248913338664281947583610498330473462211374381919767013579541782243154845161196830335954489041355956995067253745134426061217583518697157451934598225071752426490383906561824717450030520128530135223862477084982825545261200019745024670457806530218191493569882600690315549200494999050867526711772294929447194825953141819962804469907156938374729003425928710507536750307441339844047914336384732064016192586905607856224903340571165608575453446260444303532845376224235283705238803668377698487628319954439712399722480930052348780652885738041423908054855788690921390706300215633266863651243256265527378713518844831424598325641865943076177311550032223246828471475034076200098573453129754083219993432568879894151013256775191422498135816894016556363819731109544518448646321331261719548957056610587596646333527906502822807393915222156057407058041311469180426153932212219244882127074415427141010436137030223337339041565653037789286734771582596171348689711140079436522440872394960962088465808279515182358558959671170635149442684253932839824185992663588208135050241012422401594817245620529240082298146469798049851114200281062859568096353409422960889359086857917067134205598117784276827638860599749321999972343950064187085158301108926151062082306500410619913200498351487295649893696163310253384427035555806789957364308304395756352858395834851925330829174871104926899552900166379594788214608520024145541439717817578267259930814677497696627096766933564552872596375568623373037042945509270860485230717956997078018291121090967160866355441710835626923707336432611269656101446106158188722355822677820830003119328322934840315714592896151895176521204322284845099166905304307347849640294754800487879657709735172168331540063353532465042832502494333741842756341788102482396478205084182770015702328250929974419631507582608448189451808014636931534185947905967750484188372240385833629599294623400487352203109173936561875990995411994635505659639505893156226429983404699594391296767244184810128162810667810210310607026127550457462847974267721294543377538705621575304760299022452048184923782117465381786302473861767607758411442519665399761744005097470830414986275012663978923306875734770274562778014326215422808066270978882125396536683816795876475494451975490593386277755975584354984614151817286604505012742209967710839320705598288334352929454683399536439646060163216181148903015808681726947305132242425355518646521280063463593560833880391271351790835480777889547817537169629302994613476847080249506848341225150343763048914582960669211622586463169532014092163515143494482110096216277585231898553022505257281432122043785546654013395019755478854688071496239954219844233763917839029418644019749222828218549394523467810935591125478765901547591300189890214156702048250010015058975878451380403198339193099794394841601848203268913766044262433250372106654424931806363692535869368078430984720591354922160930894837063298115041349309697690049883688041787739070573435012897099768934914923695150809542242782114504224928587061098646064710000280555299249788667220434745014628551643273899364233167857519957160705210506662906726142289676204556466243861444119538948945334274855806092292361819018010249114740358819396708952736590680724053269848617572198661235379744732702292397891613337229260076429593988917728193712489408004311225390620579276963302298824136903985954063876058681380958967690952429631843235586758895796756689328432787292196955650416243476676605239506342397472469954783125073847579818038269705487084432275838646745187179631350662337812717470634102940058999357883694837307183474348736273021411663651511904202125642683332153997692944334847895182143249378978402120549431457540482762157945362502237365051929561592475978836238218153114256788508719558189444480951002166882329415097885519483015732552928003946414705087189277622936386024765422792674211888702100018588598204670159275519603018730962655623835915190173986765200809920372446765136692897121494433997688372053868010542894771810449545910431631392640080403735662147212682460912025852785522433260086225848311190612255047000603839550134626334731346597135269333980703147166341939031107341018952874394428376197330430618014986321687307595169069790664279524227140122000598294898324770557294650663056123716493654560328966635908811980403350344057344745791451581751350459436356528303430826554804437914155565049033311441954203669939451087320864544572780467359967242754933282700421666463063119409919936045426670892259121097228105476728213761990507398899905179531270234073633452692404116645877208414796919950058286563874520841578408430116877526771958569992786628987323526204155255113970585634760692078751901860375953065329218913213658969791591652108590649102889832871690908087356164005000335381419749688847752967593760126408947851721214477887758021312714542842478700321974819887353410921091082698084166001976755509024243037528067816852608199890013727652404265450996930978729896161074406809245423789268371899190544093575060113181690809686552560759413909504120899989189748505988410062008771948630198531522943381153119331554042806941712603770312802646098109024555608365685483527317978497753614145866046801325475659386051035800630592156397851118740637972146226835107815434274462503792719996700526168949226235582308963775318854629689886604070489863177096009989559572976387208551699274968449551426518781196225124914912282771321861550433952114414629338507641618743324891253226385732080418868138474887136765297926469701094667536038166004206971285963252226125223725188567061784138490935310900233998151756393325772967212431136984625265720888194041185596332765463073189093587099302400236468904881580544751143868375968461771659561751041780279608642054826575871194580910865189056459258286393300595178900786886336110627251615205620856392585244698888907116484954773751410902481935684922206487716149016584406354763033181888512842860632710360851380384750343302166268206164292220278141087360737928079848071698193173981385856610549516040854833720618644965262017785685086317469090380473385399980505801539786207732840417388255236645925487188014844747155691421161550654609882484049639486894648041561016959034626426560969328018850853048373034340429661035280766565093369788073618603688549440574674628371986886486704673477381043584479951527370333888134534818771280769729796997392294371816198024513537364235660102249564227404445565059776845921398926394579745187962159554090802672367853478116560236500503266168157368607319461807717769655849231276593468744803067706759293841552679171645252904133773984648006036672138851141755450855586077410509735134270594643692571561141524168006942273523605700891257084012859462397951690075388313742758955445339335514529698167971656312625187804528869897205941860789970323358368652185523908896834797384571727758872272334145368410056773667397683467807184501876386826088015441754741451092166958541396532384562418598757630064334732834782630700870016591894134730645147968964475043894752422760390124919974950018057703900860706449324749345635764660619204518848934371167624999604101461751888891937972689654601898960440284663505464367408374102874827930952913760387797159580519307032620343510827937208520451757958427375344037346517633895654456975530434155821107393640588894811572663918213057117551646401215555248277727035886957283914316293518473134615176672617620526121685513605371473928520003092273409011209927704925799651494479184749700289464138866340971185020107184912507249415907855949348007932492685864856905405149576395681956178626802336011261805009466554749166307288992530363785781078185217359466845465931546818876874414297764763747487519166818456562568995260583509997610568484304948126859086587121854469692688973290847720758841162807191957459343799025399638285820400049287314155956369840667043605572195152326174251315928915048299438547343996155965687868419826675506668547749182492913487404906095060646890516903275833054260863773561335271578861577653052711775554742184748237465773819261461056412637617465693406768294555016016147984543379759860592309240722903901432435726176454210652367395387004204855846473314753384064646789446431254521758450101445325733278206716139329596427716840518900579044423380431208089616306667256465996216656974361233547320069533933597098373708498682031308156928163842619193721894336835766339069484228029015222366788362160523612584425776840003294956930773856947779363728825113041788589053013140516839037974410976554439321818893791498631546770445807074072800454515808883780818404925809735962603863705613350621930251063493799571304111646244273014860642131553587673241001690367996267763437404177563735118806172696411941176297181762011987129496747359713650203747852921073135480401976158391637536162928107808990040412875644671831851732914893974369350947666821220403052127488058392207238452725712834995567208858070879089323323837841250387066082705179979301058554993002586775544710359374019136206571360888916058502545966790501301454463050727141878613804501931228096237550558033861970449654281367472254251895821039084893353902261583613655812693957900499002119028712969340700058159660207627606259422489752292854619264293822352736149313400821412819093597513948230877622551986176778709003483370066703408639323502707004849690596776446342263056315911859235845978340873956280328909595784837297617378445382847260687017442882299696793393506525602939466007712471218763789302626462014275834434576784344505744514492012835610750290282254683786681116604213511275419481821375824853162427785386112599051957689438256838632110769226826144083901959265356996212768500824495608130761424946300229203124796316929696822258853515200781541429711191501764936136747039434596767055918940016116811317736361554144295463907298951078661965674993069962828208331006165089248452565753879448323800886428114426584677067717468535619269690254451052252587750949863475786907416486956684027599652732589575920647891442582913094231404023462953626493961893808726527789389277553666680237166750805453087012563428252814956432411518984336329781864722184758250168411329753445403172738343586990858539595496338307418468182942873740586546220414222580840845818902983828586244697259867075029562174846980399178634571218240075187630741883067010841372664242656544884616117728275125235266892012601254349207255720289178267588294884215655030518662971068445964564096631867533966046091874341779365133007653141942185341287903455706397218286257245330133829433883703447067825832532982608587809387890418719335601884798601077467947244455863884639099570680610974710862278624236580706769282574159708920613624469451457262318301485418238696199706323743098507335715711104750372566336294425311720816663183273117006361111650081971222269683304166116430942752397202223408184400521419451831822178777877453033957367267923217160995763383119408555982011089405420023341090360210195052629805371469697932929764753858303409960942888019619215529649650437198825393095196715805622952066429622480595615274863753418444593428147339666563884348898703121447020472889274643584519938946954657560763240693880110902935962031536353001755266791095386943761936710721231391644332118856892991130940713918730002827666743655714693784060379209307748612114325223317966825590492335231328802804936159941725978155614068269097168321811744070901196419004931379612680272579707061600928651838282011252353641578006231806800823960299095760104732844055983581333230407753862671594162982575248107456574166423787875293791794992392974086492571023621321261649994394459025743199564899909851261920533038937172626950021622033238181691509923864688176885066456572558214274764042414832205855750624120293903787558081722022943487400520037225956207124397860918728793596262109859455262241877032510742570222407836668999989774705875883329219834785499953099229146618523326011621638857931085666220252183257503017077383896907839934133822799868587200218545543133856410308753850608470592824561917696880790911629806678630761683166321690341109979185114919220415627645591991158585654230748552513859427015201330871888916090751898673275589824213655791814059329102569647192669054177766816115062460660697026459243434602632416801919529912401365847786179912885572839548042533518908632876396787711246082609097975271303630781807649936574551615648772807297625153411168732603486393022459409417069370333221482937418378488223228302235433065837190433817789963746130095854263697097854285609984654040143601537916516219312882423343105562163802198549853350622635043196350901505614876364083753931864758706359535361549540904088784221240210073633479737090262714409099833926654872362135623336899839952278462213459664000816932044040096075736833588558043933850736773069571170731489730944203506524692437690500074785508386997742635631545284407963965248605656423722764650892898306963777974157109910383625727675508291386705378996695521345656547665814771479845166654953914769655547984200672053070645563030099508407771723066637801207420371516615502506854617045667887249961445225030693783985830470258554511901602972883925007341979637226951905509090829134992167673934548083971005146186284515745392301761723029203435796676769213256599213176132190680744097262204519490742873406129118973875826163905164123480845095343709191577223348312858429830658883199844287530527271350386566219000008598453213679624312513773420748943519107195968206202532490098122676064079913022373090321024715581152531278889067735050606934685010410730304724491687305993347604139577580029832379568614606203056329706447915081763002910986212487734148284799819484235030300332007181988450210495715043585030627552932789207687517702715062212563193231795467734530609745209004155568878146726087833459429892085639320995638336553701320100994806518605907225675332725725293135143702193715686884681655599814968912172069938321638132416237211567491349027081647816764299735249242496533996232440344429484058628076918677610705367453791988449320098527470006709362738280595186227687868245236411305569960090692711393028992439679550956007672548661743312491176956488019954643295798928161891837025350991183621570641788209784961906066622820574297420984878735796008589576720999410178227059750195509129329224919365117114727691837522286130705056092828423033830575739015887389248200398210565668669698662895313681654501695325449260139903897814500160092533895669342408276620544566662967585079177509980490930529993857484886583538603280488441087766666092157881519278852971709347231301870462480712119478958727284595876750813609906703193442738194896119384262873132532844250614369331550966703964994268493876114266392648426497121559684007044586361067565605226186455624819187063663678499006622408115246632518688581331459451273672401015862912571846593800660561606887254252733903921104883691166251099208317163000104306109951733593405264001321153619479541148785575056036150351357309581996688307585862439579418304923520362199025347010404792974734690285732652296490162311126009794242036478231995586235624451205780190461296092556237273803347708788806859196949347901200160570933962968880360339634310010762914758270889557105229357054500635537993970051102932247960188590129409853498289870139382732580530285722406094743420589893877309033698423234037615176658784467630214821080198356567120573308562709571736971122779674947341004510173462580089964943299633351403651652756657419352250430741828312693885823469516234940703910239474495309357119898484435820058426252118687657469962046427109840873422410150003520965642726645568169858329152468830606149388581309323730141536150802540987857051479097721716159039268100416076839540037335744099730399964129297297442466422634004200366671464526882197239320522801331590310515382244712277569313553293431619658551727284013761254354005098545127842474628255563103283931647413404239614797889918137575691560700381855780428545704864901446002949631921868690247480528761150518121189301004510758719311690369094555267790743310919984579580307389341000984757629820076244724846686740554577355238120275973373137637802332897537729236871180519069743684345894229857124817539815048608951875026024381293567532926388104536547105746968076806991779103085265775109639286196671931307487517560496568592704772716128844822774098178740588039893833365469303114742458054677801784595033222583159164761772675545700984015353157307586627012626001405021092253307574948903032817878358996069711187135020113923896911730682095083278903131577814000814431522669053798821695577064618215461631052094335117056750330317919456100868338715779578829259772477578499695171921784847830762963702810602093196458632254085962600043848383341489230597172574821246476162132969637697496780920011843946750704335050203701715293808221095115661886611246423593235335962049900617391657988683960748908522044781791314620300107573625449476048370113950450475420230152047800677520010527251252800413632341776588510679507857812380944396522781664509840857824565571605718052518626832331546897143145013288263293652136058755806825460257604928319393072831497108697756803983374746700359063974275464319346927173667807805275278657125959199766900320132774487184976999178019412888748920063721239170402692530644609233249279662079137670527525196657223878330979098723728445732979658587664050621364588732300341025215379573953961567978733743150885824073897587643293499782374035232047914278295136761573222613465979017525145336470015709871034484177207913617143062810755888197378061293314714249112871717006777408654416869475443920092527315872245061021937593564751824236471793081468909297329233390333525124426798091272834034797465229552825369059904986851840944384627226580631150460063902997969512680129917692022550498549581495236894952631205390312206645394917894976982890201262532563717852456494669347916022610997514797497977041187609910880428281922270513080873393708386352155394993243089374631595814547100821960567111649367522404090091527756896284435364052657979213588310772347576183620226373060156786470752233079998098173081877552538098064548641981097872033019719149391175756029708020475814176810272576017380751643437247267736958259034936579043424144873658180339685955707134370632950516456402648355232747188594849535628469178652939307844332187381925030205571195733611591442850607116282051583270188765786720672489700502719846437195376954676802035310334111404270374998493462172387320391374188921344425648765281545762994949796070387816773796672630998130363304489253108223362631664883176743406312802495165575147359674742195206521115940184584858243064965233275753191289995643512676134445474627612969281905515816190620783614567701184456240274256971217559783794097269313063136191803273339920553407597335196931804856916794924763283697537119785485560930115767960968521420537876508669109308873824301458778467792485352310786245595245151067364875050802234447112012796734419045642672199231814764863514993151220243932594725823519379559296690474026858647271154523455635701480264613070643651589159730247702449839555416824483336370011249243829733559129185652378518571477909166946879556449384014865846397470968751223199233793757956903816495892300070862859076949222119197989305309554297813711146461801669619564400955210573732708347470238704789757765366912868503666757449829504823994342026431158118424588737053151405770407803598875754852208223178311722828498416863412828461641788592708327982017419903843328612195872230571756622166910758996821393115189409377424449032507812514086027797228854997151513771276598649295878695099537529675883382831321514727795583227391628600376738063585051234608912016023872143226260863669757885380585421295882113223495996100484089934474256453688998043857000871335383030499231916690051272766461299376550612032050939207676262506476082452817654161907790746971183152013208932461708203485851720496142962762297953577162744714090573140778751913899791009348935944078040324856217022912118794296929896718369206170733313314848635956162373543950787892581734619832112326653920144797692158957710785835210109615473483192822931727249384739650790866013143468813428043711089669700081068912831325512712821363168228628032970590111135143779155542816272641064728221945505213004561570300061007604260705000063344026041492399472992973609117182096364997816722823871234913268203124337685995922222270066765389995834818054712364703962124464221059226722311206000215626343677922294110846542128324666674747068934194714215175654078831032332565632393771972729197410440047252560149108526858203254881352325332361383337692438733273213636241412217130920721953531999057457674119843757223468919157516670584376601310966225854239440678337533454082633795480727450506168898130107889405938542652838214148962915879972436908958219723933261940811166947931106389764905452237457481383102596695131773415263275601814121325942284271279379816817216922178931717386274393890651729645897307704604597976343312603438325653643273109673753341975450924077241008616363133094780941099541281280914431704391603869992137760818847050781280115706631442824474629142269123115139635338442251717163121021965162808973110270891146256121846487456123400692137340993246098627692157165832616180771368934114528066944840219485976347778202377438350220860241291285936776503625155860390211256802272378249690155554817390292129110824046246645461793098283595192372060490287837017360822365730398172485892180945941386128241557521545502251684135125321944739595814846506024288223449199380863820995499247035962071328185519002220947595213671368154115135240151523793862880326930391456540468985200848245477529243481924552071143943263596471382935581487984793843134221630477568927162957455078830666369973394600528446315701565750019263323437828179043113350680059775140975220467440461819900399921269557598665466045541651831296872972772953079344824626804571193669599194909222908376762473105010226671997036513800397878187527894712983684363410218183456096205369850751965711326455371418057583115441853106551928640941116747943290185538068005398907841585071427807288676512893914666608062384136852253279920855624106941236936808272412973474203961047123797053109231175742803558471932680800226264953871850829276263444361127364222845166109160815504387736850802590711159896504775226898692682381896364607324991997737155782280346207739807710375329414495864987194416210566642462639877711686171643917448415514358931478970827629620187488892358326238500704783274078259983803702779192473868154144549389800945751743239008790698628138490730128950765684723736839236551670696882742151582721902850171453025410418609845615883943082052753147818082562943075770764268491017357859086002868058439880843810936663271450459115134018754846334765088639523491343902432718704090958260544274708537109031693424927940630296449773272167084123738870036072518375138272477512704258448457618373596715524187705605765615052644526173271549189384364509960269094981170879367927153205100892715842190178222116212597226914139543600361530995124032636412814048562842755965818022007292578559991855278567993848662343370551549489410685850330959701583697684863610145938425054624601345715561084396534564053243345686687853923048214339657141842184058029794840752170281218038578049048793991475942711037649307698853405991988797677691639106478706326379714224042582305168470773024619178771855158975800072463117177879699109629633590710656341250390802649917139629935722908011879814111793870343779568932882638949781146963132932294389084174799326109661784962194341758462587706414600155257894378298387744217616892856229708216943750778940746670550733531859227351202379966071935545676488521058252355852497692783292729434879147141282984509733312103406850231472413985630713493751840806927750180159591600581732814146469047699164480747412822008915418616634690319592921737527960845505612303505134112025453666873026541261035789746168842846842790941660523476124706115771729834663109739562444268908147925406500404524290647055811570679946977745622014281326843004082115492638529061742570753293594604269682290269437848792416601314541450944241725985726859061829941138247962668284700469908986079044612531404279579585478712712838639204941063620112463174135881118880283975334620849236659505075882067691571955160000560221340051609646547734734396571391351882508814376520684016868292587330391708266509393722945441188919059173396963495885107558203655729133156575029366213217683024240609409796388941587598811928426728505474032946521459395289977574933740001429710332222112077953534236768441529628483775748411052125396240685674563630046152766938458673653748267668973738705386248573174881217428837813054810680144507982065387585197520936970491150169930202117293372597880957778719438636403299916832047776817716965965736884081818452696524626908066139453326876300504453704194788185706271339501113203509587030671975210190958512110079593966227168834473042528272788443756041416016044454947540191201620507695363863667729360967205736913646576125689082037078336999281469075390777035535468986766630343230645223063715834984452326517280508404020816327580725879247255411631753222404577049733055637823337093160813876144291367849733484782387066012245251012989387680716629404216987776410076906532064165143433015407692933224371618036479097964631556429137667212594145521335029490408749998342729347896080901055923913688821203129796182943148047861814963772877220780869376722824855614885439258541456984979747217231281999005388980265199168118644554285680179452628803442179191624294307130692492716073633489071194099955403983416373853534937869673241027033252730542797344515377490869955282520331685829382480620484066642028492194232907835221728862888841328249192954339186825750674800215540027079289902830763219504940567728336156168707125672483849785484655717295195828803542962126489419610980547181712303824673435129890724968528918208104926840342411909178392307213339264313893460004102188185870769246816782576749081077303556751664342901021508327175557727976321053631630612392689446355769164840892261086936601427791452386384474299669559436100397305645088099148268259489111044029795397136270027542731899086909544868347288605498000656284522778960418984708901128868911964715254260153868114632417454372810611792642670015830392477138728447039918620718115062670410035594187366400365377819725164996769111478927685824043210743340501507285762772778098463116211850740633688153058267513854816555548317105406490485142539576521055580578816973035870070317686063901421263321013391982814770463368407395759935316227548078691474075034526158037538102634288234416620765001934485545074395158461390802045407320369064833571168475961963347807636576419162206512571845952934963142299679776504781506284706733083232139881116000974505591763764758282118636578476509869974344230126495455024849996678335174935223899718342155430284508880818088358663368704556615198824694793786497321518341717811365529747876902992575183185518687962682594084604826669527532651277729815942248277712157175658928308961780141191195679077184111079437171577801057705509424403071580117900999907449848264762292014229452280410970243677679328614007761155049578927797811907824796914069928831256405905652712348245758244629748307992597803441393656209244236098657489859638676922420352556902982122545308346583559737927725186319241560358026783733281782233056314037867773056189913530851384869704029487484709293592397598272576791549467850912387336387865799067682927146981985629309938318818121294163013370886410266215810358451944923813842640534596935855337862315925013144364762097157887270016601126766938270304041846835719777782495587479124396356504851646564097910098973770254255585732250292514208917845778590807436380442582467737910966506561444689439226233739044408618997382039303036892958378866561699472177070257616318344030697844030864533278592043143186130232695378875085288960372773206435480798365942098966378598945294341827814120114913414215642098089567636767532954426304622796194025431166665397059354004754692543527755003513779095810664358995886273011947453830771742528381978696090468229374262555164981292061086803525659648075733269518145012655105180102559579301202513708542576013612007806710331592111796380433764118587444639321600434411246268932833038346231782154885529838473485489771772815425159357375150557209180300585450966232696318065959119818244114590821819474395970343274315463869493001657525169764028184218235286236408257266245184985265800873884022479281943157814495383142134100031378387166516117036758562543268638727073819700203256233366698651273371752488082240286708963406601930751382873433603573549520464470956452144786795182201700198521681316971965338178911225406220035398584219153821949999883629339723920809612809440244492487638675097809284343799663704908413281040322267197157247664573224877309622797210158768280340252546327820689640216810253901545509435837644551192109759804778947726969379136972875349373831346845924816123700645902212881393490062042885734902544667081586389494771807932721404709627381625866793717037656340967139250225877634866096316364089257629906750478794516711283185812540784480553215759146961305623036180992370582981077728594453134311872396418150196530931771885628099198590546458019108944286958739457240455400200212129699170057649619395974878606982065663140456350839885126653072054773235698768254346096393024166184386822185231563117655886588890954951555699387989114176113113683952777684302020941507489371720042217044370469074678248128789893874469207267494793455838664726739840594613514438406377040321174829438531966441940028440839244739568973713747714345709481368164074314498868027975894018218585042767154503586347035344317663875358483526967392828139165789484047918501323298314051305401067147696838163305135934691522338156698373154228317240294033437000968301344039219266892743141484113877330375152903659132107407219895304477374243975778293384918311242068608826221089618405633728405429360746807955059128330851701208890382778793801355822093393835329251555058688422120125578840253085338283291301089167544457793702599633763126075958784064847189631226245396775562485296728019534593012636381104523644979610070818494952021142892623756675522850292500194046119173175375778840136767979106961633019305584444300397554453424457423740159759999713865445071156807063333971980811252463381903665345146594311208817138404983958946828526909707820755217748837217410835115535051180203347497920253113727079856516673707240272404132609132861690787874241553829404972894968959988390862013181724734986724205994415431520307111144202136326880732316509106216457891750130220185776341177274895086563783812659155395784910513656194258898780044639277711243149253560195744938076840866719930907975920160394788060599684822737801204372334465754302296367885861850044103743488206492684364097143978872745332600479801912224809632152696292903332563267923882505619331491490785800504987182229730628456331397017886924819695222855720580398178459426677330052454206482463672956581526283439919009350233408756136038040489573880392069445801018120844807115837985006205713078964665346891686586595841123493890693419753671676134798178319211717337447474211830090066799902962568688092284798130422765711368365601457444885799819109889090193885516042783187659115941648790715915545723204467790751200914056279002033793998995803191000459509008063193230756688470342254194870419076698060920209124016374551984548224926751402308281317567401630641886374681208911729347577001967447448465637555163000550467788875118210543345136974585131107233949082898306498978451895816491249897150868286929908896014906283635969710173251695867622060440217289061243544482022998888546577504929674132817383117492115006102438945895442512574893655789954331121176456342059031488073525615051013150435183380498649704793949770739460847869396453490652084262512460582704810079427135219404880531788480767881504622265867264564426097462256399038258709535699736026526086031474102256964564173325288025016230188040451216577904739148975791922618802059076643003818150092776674817760699962622158156037589997963983189690125854435906107764632055763957483474015199561509152025570349935301267682004777574066101539258203234740025076063148589653851991441721399742336817036688578866422661424405052123447060614935775135154879034033361314807606227765976687041983173634453729442673448319483686266739371340841603150332126017996326975734353606659785782622548284666467383946500165381476332651521945585982846547699814486335799106952681892214188226919500384422388981938899362324679913693442821432781330327695877332544445503275928171100115375121876189257541766229297069781144641788203595744057417755276924234784780122426416727644626615784131854128118507409200944440448231569547431532292218198947192114183283016420681959185456260423848585906702636478272760054206048303032169047823949985074251388789075484190219731314373506631061016999260425757320910592925768376480776185309423972233415151565902706113694450904957176310650240424023855715485810207702804868077761586017176962164171968754111770030864871120557777331058572726327471513430332366419784132169947011541160150444139763372047481811208243089480819901162199937511185273604185890883492805510531681281983754026817106714433233442144708830243610955017524068250775401322521017403724652540484341295341989702119408001195235356861020112387410965616163583013854749778882321993647889788479472632359461039417233877863441936119645983609961535754341005491391996714912985036804330138167914514834635762436332858181339588835266020608548443583993978926748588212565038098624813801235150286449671412246816107746765740785428888236199319085239500225761065603191468826485237856980703403656864783666334359278550047390476111762755427418487610091897144880987448945653827780954710236951261475440829312656061623398053181913272234759054197861021221417863561284155237138198783391357201194609803324412853776135779745041410228725422715640818909602899168480783708196320361232375255015531077617348062227480771312502976304326214866464093618434994886584020293488773139943134082267044611035255042605726938023487886097807382697320205656459215709170204078653693863103361645727446075900276596313858931594784995498394427653747220549272745172251609509783601196477904873852591488360364534486428533640865702729870747663028888458243695080231914104721449446632617964851076988226876549595951037205509995090246172687023245467505473246023173661765760491629111198524700494740065880660869691358022017528859851170809943343019630853970886060020857743255062577302696763098418723810164669685446100653301479828178590264053100269078895687277122849232199531018371170283958398180115215513686654982013881808746282725091723151756873066110316221152189856555043347699025655855454623793785566196294656079618861756208702710173042865995742703909604452201308597953691846657742810496020882702906095473897749156373952574167779493191506590286684160653472496126023161757175117612805081938707170727472805305281791891611536863116832733172706487044795032340836529802249251584360439130626223080135953844142439160663220005655536829759129743870483348241451774126023701511568782707471098985533110683136655267102993373439430406669380747769465291074554509275780653633035972617451336108186486729883630258270990886853304294658325239169253124659267067744459113669371241632988052973800473216586414906440638992221361344268163756343893084383359764525627184946827786173729345720599303928129507683656749550650708603508359984435603082302500577319955524325202905659749563114559694490456148578868875437738302278531286099724210159732051361232567531075630918789663314134203908385874414248094255793556136101153144745849612574066756103902622170488210827215032578971856157367683148008494799922642120756764966279707282353896971486627413184964222534522358645641152633256077848247715146901036022482283170671051524826659611722130415409862861354349031809461399857014531771326913571940614569916098116950481196798795115607213190257381984970982605951661659208810859691936768579110893387415013530457635142400429008202987650290886830315040084693326166000169858511045672635273362201350238027283124701126067899677719073892421994259403267984856169019106279069119767281756879890017932330077179744571103044385224224602202149752343934220524706837639851928810621357947943089353376512813699323314373847761823270765882260168483505446930162797603209768244224869701400168480358620921035636653772288087448902413675348591485102105842621350560684970054854259274884885784265340170916768119321033473945242354601605106679108363812830365891698732249531496800946646699209551590724055440289868639878259859445915972804095027503522804489210984370234846951727755059115062611489571600228346755508882246283540887693331603115832053352539750152172201589595031218252451892733342199754375258826031946451415850421101055062611258011011728720547330256285232926361456330538310750014101201896793705647136492991192486104402782281264566350531054143666225563734042693375896550700998231212734345172004301247890690244120371082753751585273194050739033808069973006433219626875197151021665073197435931597742340636761575497994901228810047758896158009989286913881047302151356183298831610157877750540144941716357738015669500046374650646626751053301897480078370601147826455571386067638543737042936191438682110224723483700876565292550960210185940744369651672369809467210909523037356422048223767643327712823050797537631452275733714076478423399339770832189379843982367919300802484016171769360541457822585396854701298484745913348995295930023137515733924899429678616933174994571941409217904271036625557315227036832796509993384121067629742688780056521305192112903661136355836779279783436994604732224608823977026993253327711489652705796340307053121991848535315564563030027732801593218500961367976562740752311559155104260580241316323866278513893328842539580516900759170975017219325909525103406383369700025688645970360119538988957938688358345688642230701003290514054605983521723301788951474670929372765492791589790226755856793856265991024545268019958626078880455307312427848138415502169153771311880108436165439351592427983751413416506324686680688623205758777277658738116874752053253331206862266364461567808482352991382449265825336204880193128123470085744062077148763264907676513554980279020985101413377971607390100796904907843257081706583039153213374049636534973843929093367218216666586981506311833091105935927383238310276829476479271041434402857224064307559305881373371904301274892352148969436569553570186850571245652356119699457077977063342902392572201939173175071982378702152935248110864973090909306792261872131367036107528356325088630476526221494371040989656966445750902669443827020824668573612039384488454435603083011612057108797700026952155918906747354801513408010158468906087321775777921252999995218703826300442316355101553742615488625125664833834963004688043919239565014194642997522546184865183901223835977380914568731728774513612368407700676874280871282438266032251379314511743468386569097111699743842375668372772134893640773769047858183435099631134754934331427968376209182696242908869287118278224381535631074406803093951342482560023716795734991304244268275747009461925603073510892620695787946295620784985628778937926325684518751719984553426829343870347585842564523240031074613080542678634850698200064799995347612912059236943870363683256032091613710318045885911636028411565915463256420651968734094629828135218951765144146825441481153124297252038967575102337264945607540798104714527722592189661392602751151600308453714692115374076309539729851913894903317783101852448538196039225671254025350599202497732074883118620624284180001109596069803273363545176020364271574219050058453409979949518235958683993288426243107333872273530134518187803607241720280719606079549646428090400471386376002567849791357723963967938600943438865085234087964530834848255733578136216525159756811723583007293654532588617564134450490654964177293340204468995271642121279310624086566154318822961131062454175328018770269765395191243263053233575122421256312857537904155905934578337466056668425826536707079728187723483773537229861454827229664263121851594305462635041232070547791937157024385625102901434040997711673914116173857158944306086009334965629265869981148704340455047385246106464204081570928290383056669380663177529022756732033741886255117619387842359264559446086206340828826225919452435654201995892888634700378768515339388021237451046018589172863574698434170332322624956568276873249348633769430793788408960365575923660500679722874988617355399695047026491909016828235987869323988974059956669360659563827455583770365476646753807387961297939161860769465595240448558749530235457219499793649604476412137102718282057271538264302523868417489442685853618427509896254245562079276101824190911798656199370303403601648874480390385212978472894072621096335769916664985179812567802541607856513609480273538178770302118102805947325750571988626570834482116874095365072420709424816441043235104788973787305194277742066717313772161968902903992982310531537636098190869859498841241998141525705913805447944492014928283562652227134093457857268904505813340294651206003063016734434947959559969932451904344515693468073794100897589259047942271600284242888132185732910009665967088340881242635484225740154265618313219137441582814718117646901184401742656575532791476469620517508293579109178919132014400578116260488176627186222649843704272867509371996246245539460678096644316013674848089940805776247147510346276684573353740301642773313257360486548947438557996186390066086699477523211047123493753912146806226977433730512668238427321132312794674470508329875184387427018802014330653788701773773831992045102171071626895154596554720435388413219579968720456087927623463847507399064682553944752722856353421693861156782259417680867856474907243623254592442877176984133531090898156935960298592337028425680981549390945159047431080644095973635052133482103620471670937698157511734109819318890453738681288688470735913353974898148655267454108141017844343790065801466912109732080049823550186447238177381797975066324064682266525358532559222768880210407647822921234391201424164155492742061870597122251581132783446988340962037982983828653529891961208315908222562989004729517616700657384746747349277267073461245308979145506589419701392057555761823393066584743727810867474409927266104995744110719925141581335280165221625609833265698591706621393555810460950329233143254200814217816032896982067374218181662997959360581111514825961988343863432884923635843400598771581839928280711494348381209080218056382334660386243169437715380010877338477799511437351291438152300973250265184983647777619870227374940635757260102651386998087749438910129027943638555161555181194812070713067738917395630262421754680782487775455328570410155714968132837109341510295783137138602843177991988246378316384299022386031272935666536305264942298601783954194256567355128666873052660855019255481982350324599765240495075601548859954842930121278090928270580642061644209951560781752678751900801961779231615273957492433067458884509482781999320000438685782889307415965447336437271207057581225486399221119925500070103365959415005988274278599837594984163806554222792850998308153638622986394053016598339433194827059566617388357130593497977041114579214818062243036532190465017919685286170884287817085046122911244767777844957003830260424072923967805845390080991747482676936797913695134744400320992537168836539546384902907409145116404828535860219515643190763379310508971852831781363567908781149686975550653016301644623896564350670353989876736776418066179848082939237923361390139020303602956733504633730055112513597597496958184671574462416262216774530198114740688732089497540470717810979225644446545785372911783489518591558023094643918389634064334850950838076835660971468226743364009108297885950394105986511213571180918886210551517670176989640983225216857038864418152607308086085340255751860458793072607206942830758193636251753657690241896260461465926457556699441890045815853141681887673406724130343920864257990289794476914395704679763851610983736219707797745156196402074532565612863424907451483476907372943696312361606683806421679195358252623603424955438310389051392197942596834747920961764749800014327292273638680802375883104080855519046950057476066011089786428303875796324066930080848792142148283283508564773945389672847444765239478401849970713781594588822422388956839879043039938429539795792762609274066659524800879601775004353225493212439503819578209326133445288990033028767925432417969632305845699386916914266612492952618096707894781561020373670049930139788892262006167240320701226679086514335236467631610328288587737889506244442374646219404850556085075977031793303691728526011256113325333194650512909358557519693580858570906809253725456601778436241738042451579254589989446206182517490791761651426930761833423432305828373090027577429760273894483124801735702269670394845216329836337981590927536606647265950974413113554790477306892892285532674634369222227657691512322498853658929871789898182930839988523938050899548611406012850978381711235233404495187886957701130103571702368115487756895209357451054886815369896821318654080708895523241747118427358626785899813235726097341177059698428254285946604655157096301254519219152774562561819394429087242207519547459457164820532883902874512278807294020240083607065353552374071007289552936990436774691918199154716055538459634412763699521239455790878237096940728925490368297653192196320820842916491678519506691235177795521503808234901182489074468889369375230413239572236066068415571959869519161059185669878919146750922765445133342748908505341973774241213733938304172549165450529088008196948080794093159625851931882305605966093317326488966747879176219799324367785020768247853082303092575157543696480525156905585340617436694116718821150976534946277624551433105287120496185029443454300007754546580814094783786186797368909552529711686385250239185101275521329115022524249701494082020732596315314337765946070252664400791124870690487663945733980092571436340881409666365505327013183208324599644890192701424501376611217054834739760481983761962636402976435354553698098394346947614686744992657277685671485714752768874208755292460456975777459760512435818570474690032057880043179082117798847586213709533166429935842617501693040844816144874492838236874216531147331885096458831124260335963261746572503800720940485489485438911087542596545384462667973763931711036826974565511955531012445839950633441270203029581743944256588884950067987371229047130289151990922373436809117198650388107772805101695476572367713729627434564198831413575459153595088051454548560497341766102758804803297934920510954167999609996189723963887130837287006545557174036855027351166084914163892472732835777209341579015214477289186457826728014160473237399111238898136961372289541516491505204999931978269127851924245167971734569024790284786998343282265407081121945087643415807990631631649709367010886662609908814683770292178315142207091016425650021894215433834690501276357358929774007572110856609473363080015713842268484266264959844853831002156302210702156770613658274299435149404383640698738717577909251808035933055333341207414283810516701402528614652834512290250412755399249069418708061885779463411882952796872239503575113951934446906806527660188750510682319707325320673036303507198917622660499876832557424033299519718162947110883173335388140374913668710466328126663576745031884177900143931340916238111069685843549525427346756334133344737384103930252932623358138599655697799381753841079707545362255125309980676457140635235212458793177283880951022130316697675195932735633086588384154920385501692606640837597174654743566794996920358457240305449233068032783887472752324365234692683406191222793486554805129111463244328017111260712472823696474852515529275836475774031820566065987020348088769944917055597004356272129765017453158448338656534531886547920288236232327186943712579503301443812454417193207304982386019587261913255339029736186428953114109141352195796061827073165072525565248998354738641784342270576817193929973192706494489434402650715317735624274156835831202712674238654235604026750354502710729667502957155066056474878925871875555649620599842208981963452244967578238039182921978128179579528544031901503306473331531920698298554608971039850908766064202899197522216767138132648136097229664056868620660115384295188261995945897065851687173847453849687871289104623422084905158389454132865339999846023905487820517672107562341923648654758362463704760875486331656217980025193943865169883686448625282034330360223964063336498506949063929423040487481455276886317969627470693014788096590375994578835954287199076325054490440765309992166240223683555138260152410342892925511972378511525596218492734617537257256120699657988550454940733867105115205878942290616096607400657845333021318297000779644267992967261836624608632509479390215311769449680919425140760519322212350183495546109047989956470232738157346803171292269739373730310676553133052239198575041799110292045830620869538245624940996110303464088893953436676011360249277172762315941701620934371251851717166649240949989606039143980707689541277893549148244162002074100170368823075173496943960584452050010563479564171535314996908854698497303398585368035177539381692683784634290493204035744705741873900758076514875662814074186961306795696480494149906963893080302114632442344371935221737201488349577149186374515527944172652253009446666831302274086438670470396831244559419231838452391866021804358389024404073406869204198778186296128402763027787219715684359525511933224382339230199837264913724196965188073179935389312088171576135871029860687381907466144565324004669274800971769060132559530995920000253018473896283168490410795969530987828735082155964583398678799811327632323226068791069753556729297860655891878352059485190501788819184968062260650067938004503243924349509839763752756246236858576352354438691706835706149078889533558122027287973794430486674755931340035006369552651341041487305974388965554026081658595248443403271996880766627660103504048331327021465900370094986548204751730139669428986027695663203514006665822806201594570413808617428581667808548196506357985092143951029907703180852700418716190588928588233619075490505275472787655829475257800646312142139334844414388489272444039931550220464407583679294530568023187328177423116013659147257563325651273689640835390702032116283319467989248287989522195489005181407790040838199953737453121035416327132075361430134710563858401545144953741327146113999100511164464560574127624517011781773605235407112427898615186576060679995226404900975076766534274177123772941417343594317837590986596617201244596876706403019424803694273005052171082911105123730053475361817362701641851864484993464713181635409917950730347703167012271897554615723832430774761833244975847562451105398953978258656543322643250813898461117623168296752373435907909843587428014965827793372590852998514902708999283953449406409550873351214900008434994287789271301473185546257376870892706037168469087415875916041228138432195635209543879788384385737599808144930172293638037289219615409437563667309409698660366401611207033922316547146825125736921897711944667841295982154315520279055187022444702219857808227607960500216861999344417848404841078348194430188679124283272690612790832110347793836535287357959110571152284682860810802029324203884996194247350350948537257553483921954757653437746403240979390621230722885246363642075775129059723444801852007354613268535238562882630858578208104989390464259816606251743216758020497228454298759592843471792901629770295370440515455886633816586935479967218275158034222198369479333962466486501820021420510448768239912961219014471442353080677612276308627463671117411616164331967549520939760869302704762531004592830764637653815255731967265237429490101421017789445290907162245535735619129381409582044202298255965563468477693791824209182628383754465810046949031488989398788151082769359983581757122038926900949208685679403275448097446151132299376332040197576977187188734102318753620259485262530692051277009120371712529224228380502729781531892343742989595894038299690029128332933074797505601591916144679962560650752263478945644223989092394687098969894044931358345860879181113015666688245064847926915392085754260840506503492919356469613411886683435954607702934602082903196174368527589154342065337469826452786166542787866761569556904925938598021027927447822455419589106877201996187155196543445683567776020078424021643893713269934782567986962960965390964588987985116601569870935391172935791381689749170785318385384238156332041168994655369548595607587276656720347331845738757047631989988005668430420357390221282262440554177616707683892912583884897023013535371823926889885918320740861677408898381277007789925362296079342716172761878885308937993264813664057279625611677098928402229942392997432532315706186917468615853360119758705629297967847315176495902060624182798556018274914586053397661888716300707324360148205276475107625992202880762286702489246200736474860117516044997350442506775209618772441366317133899234197037674213360032415672421877602504046726073262286870412253430135640217607923230621720042642362989236064860208189783798863428060495945016532036536853365664390352577466055227242850391622810385987787951534472205565822331867212193389052588282643388313284917836257510776273049635056708385855690733913805558417811183275461364507135397176459125937557603307858357710584693560741265704704785645587933737913662759589513288643752265893270813025154182736638475090885685967044377862037478827770412258189849014307600298397619452436553782002568686513547344591777914226071367004005769780708479642121139326002181598245365278567964997430796555161499405741719888870126684097457454281378808497685788353708191590785935319889123569504684998594161679249349227102675250537947162347844058579564799014838495396050240567479179249656319690247872364643554144794607260025347983693101013968319779981936405679743856784168273014848128569814826575802473402632778358184485247242832245181633001893306088340883904609954850157626230999337272519368071070321139653094566352645231183659456150796515451775439995756979243988125447753395330889319445092697026254987191608836619640262301172341160426749555571053278627032482214636923329543796934422456890717272458405678426895851588034853235582409555093584815983001237180821454040243708234716641115061402713349281465403748573552536019477177472017253599369198241256436302535491206257983842320855420917409867737938044204317570636479152755572263168038591020510934575317237824320031754620495317475858434474305364849436340642773744511255647215878383016631315917719189813731586537692485060086482488824850013712742493061894022982060401055340904406223233416767358338736171584000657610775010256560953844590736447079250440907379372481018123408648873382946771940265306491301160376306845477914130196840599136949780368701101777710992280473301699597621146394068861615831800767955458111278271504353151724465576826489457657357701197126493873259206637355899833712799288085276065088041142399363786145782011060296560118705935547120224584848037076908966673344051756550930543410513384717179245215942958264523696423944510681321979726867221393902825638354533824529298202345156669340144182539455569915804945595481807286348238318252808347513571568133257487851455658469694925026331881327313787242337645629224579643397242427487459622782510079976576647421721889897298841159771849157456877511398267710512043150118218447940746967987881138931639167895839606727698719717111372475843429974510245857814407718466478886266623987456605623335015522701558050090976116363364648169009178344962372756084794272450070993686873627379646211752894957094497558484492884822845575369315200105462816113078752250227478240724817066865607846205614771183506183926107803930483460521786313361864602046915500322648869790430824717146460737375453566063023798946365638559353081371067065737705248095612560179531800800623453493093343670830566149283268222302413009410404104155157359147191005588731278784447137683113936961006705086048283514787561645318677859536610740274129000433118336353542534968918985057542491247007669017400308497159703018370505190693465349732260417861643930118038903802067125091524095402665385810218686391531651650922894859423936927184343154764058785549417755375448966675322339435155536271501389792059786658685621510330855562033202997752113040402210419220020708166297576690355998965054465884347732686772006321470812874107397722771182991624194555530715916023114116721919158066430087850314289621315865290421704163396263986957049373054332999938398585320618239693945362246871110830856825844662256614318645334718671900634062604025993106916150666781331537609625425992014915424520996928020065668904857785041488267754039549309758314501975201938897805411454036784042021111244412488274578812471180327587483065712157642698600214610124796888182582239166339568283594916814030563208885786268351092592593863526032667423336831616138875352388373820934029331738505533265484745248369911354575450508924156882751520879172878747067461363163029802912598626500829116796776988651784851690712665112793747624405509906565594641194971969326929068207283519155925687515066607235595060677276402495177063677981312202482975243935704513717620724550540518088291315034579455172580117931617538980707866766169575226066365698988231702480620546702524794708051135465035046678088854314344991498821308183514302334672811196940356396183463933004831956267855028346337453575483753203428818082043208908134342060115531512851712379642125515875274224822178466043835690720096440139105735734239573387142112278599745802994339389617081633682892013860780201430831466629000263143929242204245078753250644492015273467935077739253705194496391878663574749005397910303199624678065218920126454153041327079170047961700466341193975788084146539761117327763820804076649156173586614783464464071285910758300481738073876809507153285158571706209297429565168009266480096599824251501460242000888452358165856471680580414143371040829532557574309480337274432594705769930758070068656834535806579597717260265387680235961311420990312327425402795302729506613022294764910192503990842474861601439796540088920532758244343428797752787593054297476540418978986398365042841859729211822878736468934949326877384802880605059447977088257543816350185289573524057838280882944241135345544519204783079779471512167197827146364723040333904478115761136747336720669942519544266397201602342353139912514825339548477584468152516938098744787522302872914769994274989068521082102714268913894119769794360328651954560858565106440176598750326995781493334442809962509798583086575572884912687080427316026350790432814897123524946813087226798779565964199454074836944690856331039172715689978622376676600228122164308591211676361190474023880757585692852257521185470123798932117892864184123405702787272174670223773584896208880352537379719451010914247564103034747646026961029781793828867139417478583670719903468949948755107400734474061695367455633499468918173919315627048884673793000007990473027023108532531597799951757090344460803684402508703813503176094626349830243525037648803694262741675012564521693480837571437525486891002875319519132334433847111660470819770365331122838699208267267075485115569180619361497942584622005869304948372464285513381651422414973439003164834721812673492727587797390637054689174971785579038086707328747925999509516575112116361992754896514158363711296289187470945297032224006163267288815512947657642875686410441478109724921250910077442744104707043526428929340280586107376131278887476175520724255859893933082639464318636386625528931823920602282387413411157423494127025542729967813909600691443250483497888629546963654541494560005211211585257851436760283504903108874536887086377909497548631448532355497099632786930947483464330373708740842172410966994483895040298760595817726946066548510876015430564324289813611977414381161346478065175143325964916555587715064685168919614660987186666905213118798332576233923286216577497523026953138743723513882102021498293352424026249617091331932448177412288290383380120041091416530941834182683718102332755446202179313653412365871399894396656607993778548474485396468398585379359983143603739031749822215087516174022406200116867829791530327771000973752288718121584738207808580722633860578254362466414757865720929134713353821643713921986585078825551280526788478474439087099082392880255173208068212189948163860890225139979261779720620068187271459603571038328640398289442218990552146732864646995840395813801448011402922083931910803619713980341225228685566211595683125770748836556980676208710363752301583774196784526968855524019639050848080422740442519945765855177777961460444811571335919059335339342409733484290196695401207123645396112231575421152105155379411190506136313401787790841713045750042533047639597362393591137910646969200447815995046735621531073209564181059654877659004738964299589090946655969081787594236594976973857566747639308841633765330877829253070564212102990667730057161706925852274443822975659428673805443652335287659338688425329717817792558815508271735244665440950028823115076816513635015207590606605068937578141040547025074612131044966069149373914791990053348171714797418025584651107219211640814893558020268244277117281035046157195833975751363070232253209657009948906090310696470390498213910049763736201251275035858880243101923336030665350268696739445873555843843385872498357981690852223062147391968936250035394519145173034811851669169242426122139952715033922739640603420831291952949880359010454903431583105260957558760484324133894802129795810533562841017971440017957441019477326400759214277327799542143061375585862646224843371148960564704196201808379917419232425321909757122174855306208626211397308736996748118302949694640724067562376893454919707221824782101928149848892672235085016852118705381841136197178587528707350714057996801614118911719636532359257184884820134424388553164761628747163059002354065581783579546193637290122437260214954468093031611752209940799653374625480039191911643346473552749382677354892885970281899393581181824812179900667975230174667801284271708941041240793113829686323775863833111092638218218552389195711751481733923184936391155412339120340287427301553883681401384009019739467701200772548045176223617111947056613540836886644251604632317585236520879395961029486416557165178615299237779940274206948647296540885470224150434224916234461065609435311342920907379328153379192155912521621984072964449504150245481839061316746680189644327263020612484187212268054538573816373439242381779551840189962889252638806122625190745583173423210047472991920218086753654189357251785266817285762601154299776944617059561788770574668476059857416260144605161672316121788877017139285675781871975583664772934311712105036662782315511890834242313068417550428536037903388946434390990277573120878709771777019159108627780663168059143851363185840852311894110588047538995555956065499263982379289973240826807513030434967901058132805738377679682938557686543840214714283928822264810526807776054780105322041457827344694125012672865267486950426692734466734811985394785320637187700769089901054331540868816695002753702750803383190776544518145961873727051352292531488048273705579028230676082871932083281205106220802186504477743412603698124744091628962155388257001399922622184299341510135641744700352459710882726597245822909123808477010928078196757642595320599537624131482516579828772707515483734381821096927671891991188518507231583764278015763821329929540772667140404039555025454429909128802653516392276746040603760631400975654883216674874761083099540702260974866277608246558744062319556945849981401499804781029935033557244890127075916638196598395721929494097035403872972454336974381447334107844286338972562588381611848414451570626895078005880769153275735616146893872054724671092586608453623889913660959941306468913719315665852977580532259105714231539848792833110411717316308352575246698983975664805019632413408080615667996633879262914821475494778888472936342034893987966026264016587809574329136874413411360383848584645696734918392037156776451550437967381138750575401870355867964268596222755488334681336747683347428949384263578480993585384730307480219576671902160951292827334935528322462003347495257013909181352103286165551552471997995954119119253981973960669009518765271630241429260858553312837325317361342243044881009253600935340683849475966731108472635601079823525191944055087284305598751102601050591348901738295279557204019179129587147584818498809583472727521205821654142074713896703019958804538361083885692554838896776326589738148907400963009829632226163898477229491337258749506219387859499798309360613200447399629618178908054999565083680135627464918338458135344861845597350225652584933670630246842754472498996814199365849674089378145727423375463846954192942214127277665981418385542075303400860859182707615792859100094754121360571310107139682049121291040972215178765526306665888236585522293435612637171117147211712425103195513925537401140783080665256397629960847215797492469837045075236896234070269802586093602750253874039074065583047062563907241649482837347962046240578126660220791129153047993926001182536446442505600924698662171632411315916704651026154722197998780318634006752748474187133338797256412734412508602599243401174730307032734383662489752930847711353492658833445820350344689450959964013701998396696723469514871998987396604788382178797791232842342154330591065037135847369631879951782292401749595626981958166676246812559960491504391222878538004793211214328450348947274750394754952704413511169116758382463345003262318823266705403707478930375000578475550469228993571019602451410983337670625763176665766781976674662315937178354881323440875866815710441463325075839667927937882948452277980865772136368555216752695488680681112768039094432086144011927573016834607790368335166926578392684391206883803966043236712825912838753017117667002435518874164600049972981088883383145882702272272748323780704294225227348793815884261528179107468084516938144088930876757599812267307384044362591508500799361816269212037377200737216108867115562318476302938269570417199355778278769723066102308587894120123671534069010296435163276245829768278434960494944676975313779907382014842827059061268569352946514735519776462216548956825305036573095837136279400000970565824414766814177167914360622572280403976519685739588655597850231556944287463046275296937170376870738713162162555152385772450511033076672437752432326103756765948538270333070482340378618705032391688622030893877728108141663623852204452517607905652510958817039198686711681863695300040722216330852373951541931598454595506136894662639331863409674919966034752294199275641521769293427037416933140847321010574201211347613685697021932719492134799038731718101702976809794089541437459808766416860098485384660500437930985354344609037392897150854039672885003216867898430408180141762570777071719354295820071640016486923900388913150174698300724227831273302179798557855664592529194193867277471311793653953410721822160757497456555791824150260921762362496802969511227523288082608411572162772473416035142963103268689138686960731847339712869273084625948554877597361375096978439390254314601884161532346350180818975590769046732522289525829686711099258855584881495146026187572528784142077058161056992775186672793403812382023908711015062470530329126696246255510784647437341979000143004721891380100381632163469592116610676348499598189274758517039251802457076158044626472531549430599390680757397116368627627856467801421993131576268287393435854424022085047925887006152624816912732657987065776463414900502835731814538006322869676267336788407692265029395003342748747342167253657893946120530329988857602667284890299958517267080270010910433435486847088246991936876720442337531250884272725110550666585205497432699814970728316119266701149307901731006361757022331885971004032797846477342266474095498616141526050327194966881952556956977183803684124512597811082766775117292181998827303062133221740171410824338183131589467243880599993279339793876893069254784274036722000749044925360602466790253424725327657664236551733386583312924814826950274219352244820373136720188693595184925813661330387224431984499020947856810618147447101861818525181941781010621369147718144209993679812242238009268376508627295347510972412855979405966745113198087785880406724598129630371681077772686571820343433335990910249320094404050040868364141162104673507402440575727192259563007932400716841580461480960842694347255478621196177941628540588385788161163528647495667632581933598907865303286128263548957829688068849264994503512451436293898649442461507777603657375098335998595907707443030061425393612150502869118128339123601311385599410928368046142910787685045242641296328095246962823239337237700210780818079296557954152578178414850875489643046810089680452825847584165106022707141619848856358175212394152445082636498803714439057489086726377519894039233121274417815880749656064784692008798679070882689931355480405554211493946343058914106007761387498664898676708798586648172151199361351953609145888664678759193391281570766013327970460623239348662297048865780249071133109957619813249329221632472392200217828331846975112454789388296737863397128163051038601465802548970259714330823092643576260739251064389787700037645327401952305027661144456886796277817715810531873165072457711200482938231761362156884843320019233663200038733654278981104228281315787339670066809933329108969679779168653175703758632523286142888362575261130449618369262542222190802860653890132653416804572592893194371129155252705771908387788439806819547651999804620085614753747800977469246021026371955400621649085906280734608688639357141712306648487627333227610428483000064309570877756048886407481415461590078230336345139612937280338239561551037637599270941034596951522979592235176619242436208661648810188422361203284360844890756909088586040565732250353013544661849669535094500599581705416035938963425930835829524854985851870701460244864960508032395300514705654502705634346114609056883290399771734933412619587663296876889874266455977862342962602908997348032524278636599303969322107160763175846326822895449612020008217434455832301080138081754117974362241439136256962094453390949909062859204147373312141233644944013552648217291173592134448381658032658616109032313227061816461441399871317914093416920236168635579531397509626514712119226008326549910226084760542813397608005931244931297673050255181522037127388086733668064143060639679516048705411472008465835163441506159711716745582166496145779012040905844924295841414115575452864694247310250063512732490583126124372121722991931783782800057986875745243399131945263005362616530675667493851823102034777786646924132777469587766796074215386161749980659837772292704245002789480352205959335519993711098664889109393005305928963959058427776243450307149654368465439012022521421540682061010337511426182719800074723980666633529643559962709217785144646952646170604396468660700382766073021698190934650855863920397665907360741165794590030519561020901739227865228898521567691088419107863388810429940891991775193794460740026484951819625996134556496543287581718290866779692483454990712795981845918312756628497153604628721117815626361229565533705060305825840730662766114328489840671433953907782777202891358690111600522220035848777675568540786068467456067920273648729548765788899449121460568335668213432188229676025979461689000231235548450386718005083908915841832414601637844592861088893667932233130707241498820276272303506274852264527313923620213580669969945331941574002300455084895811673980227261617630579238186918433295665674531461253015892350688605978235943732973633648955868644150097755582654989924229439474763281263014737368436137657934626673437574450966339743784545628652600809199893801978609927692727468085058494575555859289327452840776044208449580992150716846039846512844898499672242895053482842921046072658911234728453933286511207338052990157489847927462252322100966188339829216389134301911063669739345766927185532302321165327384100937982563693210143753655734568643174180979093421773030536712510625121405905395677949718210733590921403366137099162843221031489044028649302803167685458873994743800885471404524381974589602498968689847395744504547085900355166401191075740995510786149343158681445026074772129030275683177675333652918100950065063575936444157023867530159140375778645558764962784611044563364354767813295439654463217213802067991552565361613080603841104747886717416323180681326022866215818362588385741050385536869150327465678122970256176370726871405039468046234487959487526245484133766896145139003708229525144924931827331667788248235819337280318877249812305929110662184775131801887457400641471311354219466399874850332594579251269831199214045855009155459292074289959274111511832478045098942186209386179867094269991170642905872188802240189550819273415118675837708751565136748705820657144851293858936157956386787801779862451302960231632493218910721654329024492461372717211641356363859314597163582857862985111453071893852606082085753705296560082789656984052235492856446392619421744628089522845241635182950776490873432890165799274557996194160896015672276720080245133077084755149661979707738262965107558539561250017415782888594602659980620508607331923510331638138563712105312505543154486684243558494945711900437193977465263591766855971452424750252215436868924070131495393747279008048910594718642097504228905158008502594275020539997775820692833672900999188828986416370023900727217580712686611293565106308044173626347032740869672063407686809785257076964628460493481526986469948694623548639485181350359434669048948968812318905633727514598084807254405523682470282883998526868879580607055559800314515608009644229465066201577044857704800184773275355232853679813508384507998449120151357061352794161041166719703687558652376956999777174875044927966083782733271554500901639521779938176317934073150100018744284633104495775590651773444272569149399559077810203615839437852206504997433356601569927138401867769264128137276307110108941602970581341665703123078770605081390571990112797058817531587526246502549581669083395986271752112890284451405866718536271007324961544202179412331499787130187065084637677759251548981771771330581490618127448987144263567692113564906205172777387060240764977900914668484900061581392440313088146420068863129054987906944821706967353988538714635922550484579447966341779645250584743814748920855586662610927800262719609164499573428623009866179515219196952921152894356670055823456233909542597558937790821348803845914973295661909196086474842554549436409770266631518899434468115070175845140947790838404528118872985898958003769715491992419921290130796195700054362827393752081514792778942015288189704002338121210048231595904125166689137722038315542163068810674768216122180896230687241705206717507935554484917043180915053016499196892572829189041131986726117257664676420988082194110742375351839771224032233601779085886261355365866008112917650267106182010130065979473332277117358331777614446387103204328706396359557304689121054350606082718926909347144311775896646726355187504668745486421585500740977076942725376272655444630501310211878686385715524712267288798721992762916686655683564256761308769210143257019944834916230731129522555719874230721616286855814739951339979450092065344367574213891010434041188916646747083004615705863375851705563679325764395772060878267299565636363745201374612444431343285176801057087605454412004022207390372853570098495303332685930815180755580050772821418905583770233613952211292884907260039536626757911596930325619841520719636676382373342169862045773303836451856934384354346238221121684310932718104623288159306562439645474767654332099727622760992276169707285791363541354429508880108404943282016351992098595234742021294538129373790749394810477710385499346871053132230886700271079174335297976057927674323836731161524095755467101834888350790222796900001194254177467129341098598373808667038011513120976042808727852097755751212281799709014408200116000104142913825857970653121986959395476389820300936419431287521614731790219224753900547839811796096829256702061463649650262157664235757096083106169396821072066830151514161234526637296166214426715833565682408245388620809701711901929798009099856810693734960131228296280824846301698876934304948495396058291299385404484845304956053897730982997267945690311688506826632627692609914867729948267041349093572635225839259020038537405875517752104576482246718619051404978947609540576195946403911354164790295137828919244246290597544685179731167921827470067683701332343960199345875237565210645231333155823108152253460664719431865446913251352517946569598944222690383903137115334056917143116647471049554430675693938943397750321226354307802189055618343154344969470242219011022700067766986362400205553587801837391855136675868582817516698483073476918636138649981508175608676294819405721211710248007614376989952017484658225421639539781012403532593299136542563597592693484567573410516637487194778047692599920775096003627045508434201890982760416458461589523978088962631164976292972349475754473832706398307216484946154479733876129036730249806344172236476625802133937659109261918429438058699255312654685461229853066429731589453943509644932348282420972024849547302201385841069352032029151483694533950046208000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
94000! 166952801883574876531730485768368219537376329913392798947025437916165672041136408611273516254376269211329724557315172182568572633641509395228956903372582106588603514482186134472056532644493704894302740111970829761507291113018411758338429820039431087416751447858563788083090923733688723418882432480034215466288107946515314654254533854243862212936462089801102200208541313225743711313763519815467065422779295063288757177403505705860640067505588004274717206172953644667337567357663488676776950578190665316031603135228573553852590530902581340758370623513286221384392650433405075254862051960416619394623797059737508938506590423841566112804780039937342874171720736245607531028602680001024412366820665597250688114739033814098706249159529500658712954878611970242715427482477134492648195930571077930421453396617616891914428123641904568802413227074532784515177339395423832273425310419861752621259080215002965599844989063393869518398558641343860086846290593000236663040351752757487346139526142664111768990594942431693217270809295894428199668821258847570818624314710157333984089627412156711684246641573288950919087372954913120286242665455332834166753194646952476260546416200792435053805798110063591581657672878542511054945652099867634694472108951412673849576997920780861203179928387323952882777103000620599198618883058116711851231787385142244828313517760341335768504545234685712312459817880369232771468307688926602161237001562958319389513838970429566064894862754611870683423107229955861145318752679268080052397155837904607430508129436890725921924552464872343281275221702137137929973841321963300770867430806327693933765157983656004725699127846270889326046574992127597978972641385764949657524429645664755368014564043494059675981141575914800002289761900166019935423836453257818309862552877537225678607342071418285309419956810763211918735990891443774989794225646068418744375418792770691473603882312931046855744858870780880127855007110517022785439086418056203984717504307578627715197686534617188921567765646095024929688303185501438386160861270528037393823690500427633599579146309283853171554566970987529726891911215457660054773715294305137458011630179304270919676050848951160927082828881214868854002015663889403369407871508730996812674597841738785690560850840079931301439883413499891609116807942183996204925339036988999218266670555690739669371637496368764277422348390409238742619210399032514027055350569590413672565681448557543366465288050875070066699630857122288977455826027686039571754578333920697973876406301276779668369455714223165840923947696341341576108724324770275825683033099207664257206734936541745739952360847650178099110917201607690339120110776565716840478774048890216444285090683383396519886241141499043295331979521317578799519902612918318628408510399848220117742107860313737746833689329244997747102428194747394286909389216936303463795101802982597741886448703309876119993837218148290014206411786264087767547849103477018262583593311589969944404050539023193202278227439624340269882198307728742653663701800820409306437124743706858931121428292198552863153900086173954166239617760883208210661576405867848798576955647815148070679612490294903023875673117292986945713052271809136627916567575774692917410453600699673554426285133653061751257374827941396661997226522071946881977043908527758846375201342287504825209876699889741835914950751566863317854707152297870167115083594524230267538360026175314227240102852001244057848428051375835688560863802627363955719752232566824952188733253759717678520946687093410661302118022301109321140071327330800957173443997964583206944469821702383957174023130591663988890827057483077863463983997739742086065821821887419709314362230091428450974375209763034908658392202413213537795734686152870798302712092025200771444746014559612016153205781623964606655597931051773215820826208869464211005414131135498610025683482019888053437161273010144514413679618364446681033446181616113258827452251451771465984815021925496512816161792351377523762410292147420634380491518560275621800510600319522940638680457373704428457304727257544406395800775076706227505646527359144383318601794358141641450093582988219056937211224644690712760193631964230436599190839274055596494590402597153069325394861028510098323902071596993981873899679267791853756811116055783847038885864950360787254541060201830118630671522669904453023678503107008987872771978866729906119332473405650745022874464122324280292278136870499473292887871363514652227561601504409520145371615199029395633855882660795883209350744760118901076391589003637772046660762338648203938743525553109223998922140790587871955695529494815789568239744989453481554333532791278185688385029972136768916459827304864819524450114256366648797427736478043974097178455817714301380223611699797835223327784972915653624856815880797688325646933119082803538018151959284336750864670817204354396105521594527367046323321769037808324475367203923868453967198895478390631765961369357827211761234718353792458996391822869666148317959735273395215340418485899608044082450873392050920765826560770064603204235748443325411688989886770256677875407195818314081639378575364272747877086093807261700401822713209547620287124042385391691037509498675906683807475128373232912054957536498587131788098627471776185318100649187359931548106367256414230806198556320299147069549535291207649602470458408646100000428629245770246624087896991387157012563769849312230413107071542695535495702183373120724212177639636910691404548587072244786996162870761491717551902366344824225248285382832181003477805588537754284043938757518409502423646735147998867615376415807501360660517091394756077565281482030144480213925339837908112156515918904909792888070227479734232635877376893330561440163719726198221454221508717533711669703773419227686237959616231854780402510220014174546634519738935089438845701433416774776741423513564299920905526721072284317204563457171414344649774077014797266134448542646487768596470989988604643483929927716354103509589821332504219844267624387518799505990231805572067698389666087212537433096512326279114962664350271513817134804079630983938635698014327516873058785605552645322960168316936766895183276680446985015197383593368827819673510754118098114547122681715677048358982420588549892070970830954294770535695475419922428281017228221701788486064299816973107988780580713882690593095679814117344056711224356766024212404693727671919886086187229945383178911672925909281964717701205024107895273026102308561577029259993152849478672688041288968877269992561113615896098771020878827934538811232422977553056865018909928637777381067323855302253010156506743058698263006777046842344361610485063196091091923537644647287596708269049129830148036381430286261962851115537535364840807387285898822846035658302794918339493781906708996582588429650194130108645992871377037233865560388852345129149387629216550889026799604203752642006481225659484254243088568853030018680080910271169310464573946032875180768143393610948718443501922549488954838672718972421547939767021078709281104653152990540158731220729469932996376749424822470494389233600964939786673502126941520707933904288954806233205918789539654499417553591125684940469142750419775914869143536029466285519244041078088466196930024819564455148663949923077980124186443456575630261125477328536660494594760305043291360568856771627264904647532401622189155740970861764994416005774928983474731806736404251212642004027621600557016013014243976945280354719579006209577169530416957020035317652696121431238367519338101671103354725447300590702922269538911299836213421239334412765243658146394299827732692558180476938798519517748425950612432732384114845906187776734072871536766446602046545122076276952522192761027361573203954816365665621557945705819506595781091305917765997475820032680064919953294941271610909096219892535127877058800147507315737774010953019887565763300714144335356634876268550964684028306261103154913370099083891411499725564600538963676575150319818283544909675949348423463467212845771527211541047182889575786011091627453112363631500554996227423474978785285820022075508016470892322993178024107763955233146314233553296553341904755892455478958948791550157265407356370310315415439459919783576912739699558337784742787102913630578477794383745408962279709717647673185610685347837007787325695684303108923067636525227855843380084322970784157552746458616656701508494951459349714200388325150636875272249312365127068299364014736750001319687422382488648067168801982273369246416255880431423164090725738668445862418877870503410866429171008402707065633164236108236637764452358284174371857854954113001560990813004447431281913189300116584927352562987483890803962166642187750322648413530110310676233421294158246943220272210952180623847408834387233867894904224171238205328826800797061622851495873632467055529835612164793943706391074857392550788962084389390548617413916399801316785402161566620070194719404671902481224741868411680457050678939462003407905935621517978636016104993746620985271201988192591308749508258184614346856686712672516994517355510271805046516319256983515954353756133246533336902248776263195617364315082168102457870015905118973931900033967389429027252197043885912535229166830949916431281171749061746164196716092740753899518444110173549115401641769238871633084200110604092927121428439132456883600620182949004519654157031779726643567143508191036628820940617603610898822787686959395410285862927200085914157356136722043377005278816088264146914750029376867791162704968388852404401544221689511418525723601079240273529144588417309653399101233803439179968377198023126381873705506663376569746295391448642061415937808921589084550381677412031821899768020935451039572434978518573447256528347129358877928859283888947443371736047347494799351459183322655955647999110953334713680960102168171029508845480515220890335943110322894255404256831699312817265386603491255622640358682613769437826165186641956482693730745229724851680586437689588392151630296581689201045513416153113189223342948646263510883452051524146892970216654569015784049090265622406980572974582402489905498353380006499556883032751385431364382052465900432174944476709372868326130672963866635464250609128655513730757411984915559258285780706353770124320684567693234929469153973566444341400076177645465388817531648860721633446656704313736735011618804493990713689902166938782254937360400921695259255255308079437040669376490363750848480620516621249116367837811459574503698373209825275985336893444102287268545837947941292711634135413186291678625831648057520985487207188647059355994702698890616546193365777274307642245930084155435296255260630113529723618410597537830108226036575902555817956503962960184200350840893929781797362256860128111354182774532348885986981056288576573881896443472904273833298947390211912524139351008213011247248980870478461223037765970917793060898362081234219936118446828553998772855458440809392907778141070725421815197807070234364529522208825966449659274751115795280815019887223228882296488885044512415553341008412066615617850270043203773029368918759134937906470730237224459221426416032620368410154231555913523713961990035750727858415006764670626844274312049819837504791243210396714514418113401862831879356155638988962387504037401388996070581928658644802893980946710148672092023348998859279573406185523094634116503501937297565446015539784546447189878353265396615876306003674513000250972216437589695596005491434282396849318898667875053463530581712174539711889380488662628446750137135543823227059129949642943373288652319106743911127546448728721252248391466735656173945676545059129859983844141805001494476692866091998803443544915663736295834266885803050036782343528084993654246758671506796931700805038366163818263888344842757723445988787978708742069202824983238087529849655786423158380311624424803321200354078886844067861634396858819680156300403815471326093078155346130690147009452096561120702659008076959996463115995085846907388641919471705131945910825794137150017219603115819197404795827123679243105051070800497550695211391392553768109486034905800602506128468842892527733861785277642443495790562022985967626725362433706525113349423124578704213809190512406061745803548476989850516329645319565899708235509237465433977470163095852569015482885542596570477776904902181403301280757096062117470067251476520074487638132869988892131066871026290480692918913136000589853978640496287146714396523368013882458271280928250246380125427283671430720280472082564316009039329006362860643681967704142108559461354199122698789961393771729492115047400082967817996410898090903783985217371139454124252046941438824211429040264091716941111881357391457287467575554213477199462581458823010961619899459845005827082903776010713219467405014461583613393431653429953585875788988276865658424844208797388063072945909129357381494692471084763563114084146173572203460483973407615662348859768780414599787754072571542778293933637309385339869979735547879437857421938114580322324881060953139042121843368706420801463500054551692985510356330202106027642881489678005855768112815372843699344828514697738755528923962645496120955858068877332926592734914337455293869488018532145612269992310701629434702514684742478783904230022504677339425817183243764521952257391972903454026770448328886898030698936876707626098125344823252051981620228047440193543554478265926119805541219447497561292302828122136858815462447657736423321960959683810592627267920602819936223380311663014498661172933157110321533716844383287192131148266879530259543040866956773539436585165543233243213797808334595088550024363111977060365567714141637744514613558668312269524909622145182088244186923500338480880281491969334891436683788995712661691519232035163159644425489057696282218587796738256063379515243705078905483360575777144624133279079531804127768561057708576974193461988453587176921747789550895319457806319723276666044243419452538068993657796529288246633248905736936850025488965138993828840758878065964305149435836601572906109877970315857476384771241975016485811020495059933913861191614083562665066744960344100530916548945494868600447369108035109715122284839317802845764112118982237882529029070020830757634539020723220418819639872911170333277655294660790304060059872626958131043186536601253312398054720580580696152622952579623098670666616871301101005706011106566904958390029520826904551736248048565150734914323735415698290767876909705499427966405009350341271684038836964999642324492278174074439175541788431795586639790927939608827895191801332350889141642017912633032527572286859271512226699658291465024042628712106345042999559718624001596626170929255159339549586939658959867862188102949230728006032058022035109657659819144671562953726408569177940892869345403376764646121573448518400936845416554747353573953353904488987837866708438837214542283783656529259417421027479144351490433602146595244983080578998478467023950225396994269114004615889086499080698667948272100260521733996829034282281697679194459307059608537705799462783339629562436499630179666727314638559693745622724435238936934435380978392616613821331296827662612006295199886511146503183899923759669926762032860517837504811063818072004422966546863638342277107418382411330295271440848296400814674148054701459714220078628912675068864230282534485659740167661116110778881382410850497979826086218226435092894903172625170605304751269516516532864266179720144784257496656714801908100691745056097200699077212679366536339919153248016297302084540110777828705233400952740621671687314644940276292468303252364231389295992670479130745399370994925876486673990337290703786541856057725166064793942730184062282901690826290686403503844436932974350351272891395385381968388729909526067591840183469673747942899338399233599498506481580398058119035349255688761402088807421394408628064101783977576171970959275154544391647006748742513286566238872827299389532321386338276781310622814932708867075831828078752921601407806757756254985764384587439475423384830652490082678898223747790714481208894923361308649179027340924809506857391919429076197981081386771868036204550260439294111691487493244874145745587636110480675706063428706816077843357599060799194937584730255633393280363568327140845254142003299869311824411493185993325287838166531085235651908916621187684798456815297868458893232937537407190675085476160192258959248092349449304858563205115878633554267736043565206667008566398080906306642975263517859467409557846852820262929702629102800249361739561937325191428526157730298593290958586376982988495856202311190471668629813170232487685201058715235878236905125796180003622915668688929348349145589773272590507906852112967522378646884530950314056572686772869398388751151080221772587614539713609986780544802968779461451789943806723234271923443563952349667853735078874777473444956657583645137668155814206607286807042662170698841017009549789329173550867891347516157264938261291421952201066442303484997627645703559895911690904710960469590604151503705133049878456040502849774461250169629772339808978547440733988058320790685247283123653737805560106558266220759870695969063737879181175967719197109463349514091361607460898426395488736477291097132878791841760996763989538796212659723697212821040205800951172054481787252702927519553603227321406576898738302879380763735415391756377192106455205403962417462180485519392003277422279720375106770951780528846812330773414871032376250002967442151515818832047868346790913668922810922548018778020882686819130645046753684874791458394190030486095253486197143650095843638336295155766759777022755011940079608496839003593937330326832787314873095992891100268316711834690696093432915607110867940050645658072146697138413715800702492684356686468628395989164225876209023802589598224703438289415086769888141242502728135051700592694840122703376549041988669739212139114081078954634348633727192472959152327909841810974789598281503999907839400554596655396276015375982825453456004302765064631322092724478007347665972182943020779168883043591362568567302202846243113311412191010887421119655857402659219679322835952229997636378082508096205453606359906381633957839632369085472736833507224344144894707306028974643390218023277450238216748959158956545428058782694477995002224512097731538202901624659624204593992225962342791921154450940057452236947473539106850896847963043689930416536442404420734564613754306068604429847769596305425151031019068931704487058480503120937552234268811425310852382621144563164000779693850437280672399659280566888637302988765875284026910113518906180001302797594920188207024458556692442149528943509752097409831006247003000707672899069775666591858272397469516955802217434579041831227115182409864804794812776697276246633723307129628219200130085393494284024613258795101544466103438989141994061067862125167221309314497929992914300682151936129856814666719177670503058230062552179726674190183931291635966617555046605678606884491610658302101333055507065901326106618536199287289005957581252235636139876657289366693917595658901219860203295714297926536944028572155837869841313291453265606557214021593957566987337799979364275338504780201603957787153905590759439866376408330237112960383939334178582341239844940596092601783651340858682106542249565383083425344580500145986881796085019678347729750015020454054981757424336837874875806696375077694405826663583840140802362889640831247347409489933165983111474247472935754065868040741100522082701019901683217254418328444185093546142518650369261533300215457554209772224161934832156682286325672522304638835426767310359439658550868296818010635262574530625904682158700053660358366219281582304924727249155101059908539746998747254522061654120703110488969031452699752578835146613609811774034283123579504564627421300879322967955612539688052880518717825190532863843255005769999881910025607831174640795225992903069629812447414107084466614423358611834706179566346151181152301395530297498422531242113648000177473043826537062920153285956663364555389062121683490233982392031339918289357365794483862601876745099888390712548664353253931207886175472035922508782504968077993002173480443638527893642063690519050324047038430349885385892537518928214039293917212415140102425551824828828968460129977792197678580768617241151285990162479750045733535823225723335563913669560010040671422386822784230817584321213626232409057693854871741204009476077207987265795819139748336025277895005889062575085407420818196272860073224207246221235878852205815771914865522611023698460493081138909354101346853570552443666718673666570368639388173274813138687818308075908610429021514281640524906828390881446260343670775228820783713795468580087957236525991640198756661057619098881025217709033865379654248544126552128838079016602003672817723999397549283827009010403622523184026609583322404863776355613653975916097712752919797968530155493916367092144181056437050529124895464838422029469809138689497018751491918865704823318055214021167571744711321118531596038707907334001856050191966781189061440554228559187655165075740258601364476632598247141965446330675261227939333239889340036234686046059659794556819352987762665840243719844276048369084378491747430405017491491218584940715203329677418156497848119832631915054695561644415321918796731730721210711499780439176753965730907100076973835584575964163532969486502493263527812246214073057435665097024805061078941803090619394809376036551084450777875712604577489106065173818031120889768989128362814918342361441108372715153593334469978146191322194459223978262040005192630055889720052275971707486965436696994710980336118878787217018598572153607524692218360234215436106235364905530473175782478089853975616035551285538384175069037965199410500497436550065543435901201925847399945478110634137429945428472913166430592439958889603953183440813464149087911607207237012668897479493611666497625798111269180439564166988524572438687838912110467696947782447228611907686621294833499401704469475350434434257112363047677109896768754718582073093405732790913690778953207407668874907656427956272622388679898164993118007580252868364592192032604042781737557233487698269221574603960094119181521844384332426070928795308349505967355553668245195816866757822915761772611801898012756766203266526688435119934596472620554225017196946636888940324050838259132595885135319519132761528931114572506726759685801722897046909577092779327613290265029399760114664850264986379944265167643773572100103830344620376473649179910705672056931519627198151592632657960988412749485239458818783889246911647694493429910225568613747591273428551553398154312528517273430930055668595192787524784113741377976718758145567575892006826570998350260084592784315975007407281189250887431088801326689049826689269772561620866023867103889350680156097665825316134998566518614493136129477789667527214814044535214340548799746415338531756972645898644082744669639948261253291186446687062074995814754441284551464353028663977434799118337057722723300605925946655468774405604495590645320027970514197328063247201213818630595747755970469800094211661934907165833715992108002267657859605849578435634462049365561934609615592722004105517286182126031761655697246781912401486148786693555363169321288735645935351240593800808199561867692938022790289210376925656229358282457457810856367461596338920069013793989333498883951680803425431218882121673451109185070133111965207434654716968656426161037207842657969899116730618259595821274878640509446219994249439283945009334456572400276264301096537481118196170109634672713713041998712755892429564322420488528923943558480656752379165011148856458405922364812352513205828226110722487606648438438148353793051807789068986393591588121025712223586468527425274711791822360741377863949716351577850969296074560643657677219810211859909898198960182584081880404401291747400121597762221290357596673457534847847342549457172130522215332526714388045714802361991198977817186473718963279395504484394876742859845953778749068111971502214227564392434669566304307872116942020195642332586762889926218600510724533278748446189868433292280020225794027079893310820268846945921005038897964151611175676742572763210835997162457191990073135372411429188546885154097950356443688582208686067566915678803750968581908795452045675968249079382024488128892038111324877900206634884430908965678860049513251837016956936886424482929194297142287512959086256707424612998991085494095424553095501289503003663618150640428001971232354416958186282698262640772849656827696799310751797850385211727018509981831077053361122456837074497674557269837554011107712264201639321906574758210144459255131715474053026177497102912001443602007549215538367000732172679422251856926938935915143535594207209582189031721981188402166697275905744536126564947264780130798720960572946979563585084030537201418074089001495673796779479516649992649153010595197198621955474289729233546200666122600013582646228202257035688421529098444309036062803849899206668788096657192735377647563511619345053084908827084447780289866785048220846447432718806255706485205648469709337631453414217112509842768195876030965883833035313983816767004750488509754729572763903568932304498460751086278785059367427514651570174457890019757876103597991448294249013211974466567080938038326663088589741477429911837683859460200118054299806003231496820452753201475619901385234157652943693523193191722582753862095986123692456837465655180572235839833317883117460717123964559269891009820429585928378335564655839254131702758695837416231564514731293389087081289686994661897767760816389613930420720511182622974893759915597588215805545757259365175542305717872241433572555262222916875632875538631865883984320351666478763581942326549626664463864742240826579010590892147791396435167347508643450420158195503509093675611009214997611733082600606798228456578153990264978055625559547359792866592232500994905263916639943350712458974074517279866469979680656040135419431140233103702168078295029301661226022961899131410528246431775562426806682893566602849148536220891923078310496505622409320816305424380982438938464185507730383177867309875257654816472589252467103942254431841213711647001816263119214862443767802035184581904768327964747551167385061846233649547938670262676874587538422508327578445370747173756276611406694177510523337091363893560671082702100368949598029357476414044404322968142482525758741721502662446435749686336654549518434752534221517516383148564314203853220306015719009499814077360327015805445862079233025627637100830748216427053700292336376230786485193369021005477831488960417886721264392137039357035084935723927579968234053193433063496273018531310251844278092682804251675842523653617458613085261909658582436050550179040556958730970064278024519393500234858974776898982678680527100360364658564984784989154632312729877528858478711259000156608503820862482475272196479699184524513056373035469144289574331491781855889202662758803346778007496286827258838048414386620842613128755442042678790543214408531704982650412315883384546497165465803020054724114372006230753161449998712927696086736072579453814755378812139678417694032281174331488740610557837071586881362647442710146815732625040205917416728625947582321454216084897611707245936922240492412699504278343914234826467674854884035199727891015838995525344049202850123261787958773827062393821810202049812302343755708301891789769686989503381325666318343400936201486045454871164423434058042514883822748629067798470702510241742160815393876581248897339364532525617404403696435337591246247156523531958352870483443692074867536773356724088951178366027641443413805758256440582465806483023840227138377228780178938212476999364194884078917846344206079137733668137587601127348735555554419833668011978900008039137416976972054254249932648182766291165397666155448955159425654972266938292973728873146499055688919168606269463974969371274402397121645569894726334313611723249825120119676437005176654490302896517113291044115375196216998726044679199087373512976688518353391536778117211687193623086188616937655839931712841975210295345240119392228183785685642058324575243985376418878584196842092891399650561136767059201986173857538244167404650761652546017557304308926726718941301990415541040757073297261864729159934368318407567501505298565557085996800736308759866583886828351899355328346805259782132645282183357361439027426435948879838476216144417664171503899731799069522768802438778628805170310069178794527284685977061571524410731424750589566078141957787691457747682120877946233688573118542122995286412461652291912182781700691420566586083458767155480238697220847893260524407126171404092830242675056062427683074259301544722427945890785279328281541609818279746845245909996127345751418094419632906488757388207569153015700814608174021649281115234283748981997112656783405689676436088389563794014670718299154206590808964412540798304277233411116276193214619180737760398424260174838266786567559985129313899758296204663276652423415503908328725313261356052396007042729372759040695595947181443101734907876335023794960586564427516850534384764370490398852311105238512796578104596965839831479375968420862822195272703608935314153980176681754786081749834422103150239785026610901657569777727900874729808802093782165979655221871991733061427737489659381847374474880942141139350911538400833274698136200430020207892717743506144192430946066230270616053643062828712444143370149563413735077519202553779136610954511267521976247111170228898453892186452118033759744272380867535140587057123860199703111571089065514560592639895244161314946462594568921554285914046151091703241980627318497787503426893381368930412579471652669773776606121725834564277395177138676009053171871656320034770155290829015487839475048703217704620745011155926516683292657648639482333313101452271068205772112252844994712020265978314353663194619345318713200199870732984499581679946535073172361236752263477357534793929352604515670299361104275105896517554034467734773811426227331300053697022583290364675678822927122601470235683284235521791114606909906899515736968825006672019899507007769092204033751858115078330137922621534395430406944302232128386336037831764262594814114865237983808291754005994634691035321136870230988058380738610207680161229448790662940829824160428462396033294756868390508696917725317282941290101376714600876673087595791520444468861995154859082125264527986121435061836494367915212930176393948705151772002545542090354564043112095298704039915333358190632376214167734889586813801479348774955710503849279864455110079925571754062331736027817954985409180233809218484188598426279308582440074090654784476761433840416958990201521209544417539869362993150046083361199122811412887457642189093992198027588972684293885920797243713018015276576324747806687232499831156812879806645290944169177407808686344429968299449637400080779726506729113806178784937911135150002512003348642971521896851036552070621995873696982702911141160611252170454103393097890447322657925715031079423789954318526645067771150978653882695055500055850919137594227774997281104797928281294242611507745191699280418207031475084819225329798135960470242335401627661041745096107086394928684342186148518210643171002891519163291924642023310019826523127486399591944236804917774326996043327600114512162249291945619649036085676833067182091167724503732532481442049153631825680120518848553279814943492091316053520342686133210972599977710877146570220816845959804304286603344357542122484465807661803159885593436164991065706696666217236718850693960756770347164974168842472083403899518813979134804974759375315771915467663405079681109320800894483518598091211194555751363801950716447030163813224598610630143056698148375677936476996514222250767103970919593571819062553876841642478630989236504516683942536830099322388337913701790602331492710258879080997383504881945574158136999276743931894276500007848352228211652122841990071266054055841957804264601937609744971279761520786186274570919610235312360422247200841962517635808587257234897298953534851514870557375114813438022400702495028824859204531415130407443147595429410758600281507389913703349936238969777111432444107057597198356855905460642526694269255518777486908919102463132617267867903013559776843908011981904926424204266549504210866255712920700148932253520101933934322829070876407963083856159062767618441454096478309562831401676096766397572026531687301494958496566784466974359359000155242661011600859083869483949599996614205327264671988280013119907073743431061656702637585768205683690356300000235462898684795992367196330727067099962582765880416026390985182510268858499050314587225310772187230223952045459252472169195288945800010915668628768194004319123441765796686755791167670875779565980393136127014880083291970889762511314824061861761067852281838315944689556318361079562566767763993301730286372564234229800684792746727174508460044589806032434770137986828317606566965681430911138925411735461797346284130780708802113119056439447348021390050526091907634046772193028039372005639895333508287929765732982263627997134386086359120773694128248504068677788818849212727962876677929588323965249943428878191349808468097398180658722048752602192603379037599708807434873381370073561619530177258381462779444355056337833013834381263015207439065255169547236487987063320037189900884930436841569545476268914781009187218025468285525425233512578568280283751760711382189439920586632229497540160778000769851043700266555400292451422918009055319525403979054097108648372605455516187568116227827037499925562725105822445060207510069442682700499200141078476557330629338863464905445948988174908725645735742433427148526363825572822142363663618116158305799262508016579459816246816937841350324438695323978837076720163633728017004367150187369687117182896755248445448572581213705432516206383051482709740619620365554008944533048931461526345183741478952243791123868462406673494218644789811809711565296691620524295750489408409355185909042025980046681425575142988908105181601781968407235287871623570458265731101245798324878178580869434521837629690952259769113586576338845429276845492768931452958149991425021967718711756509364391236678401164581126716231514875133752863852737932281855424663264924335510884330382722411272186242049122764518455728047991992536088470574739031113749780804277725023982384010096708074376857098115475107573304896715262310120057676983942883957643158958843498582088090062502230049326848739175770721992741066542718859979627127672543131837609959055474717500651953911439553097561288754697506101663273580268313879228176093060960685102391464512745800602235211332877619764590606167076567615367237731153300714080376892537069322198546717977276309496905741297074065260917255478064612692876209605211707826833273347504676739836189733446126696981551959143448427388032512790018748192037811380859360449024299558989747991395731300673968351969120444807667209679807544842604716669492410812208451911888906051220522759457777823734296074634007526083731301212600454649474850904009065625584834680379943956268481300929415599447589507142574906105783848456322480011287735012478468904153681483604244810704942370755101297137136811820343537993784445687842129920414798723070301901469185870274292571861223395885463832899390617039901882617963087492348784399999305169751521606814526517313498168651470935018189002507858362186452202414853350302186748601456484767573073187063567243437721448822881322564874060431960129881634867784465573380168553573857126113038107968667742287143774869214903695056837748287350335034124253788047357379849769790606913887737666183877690946725882346941502491157931967608274780671069698937496106196524394966909149690847267266835128988946293031401123003939285438551609634571635660413113552814652398333372426978232003969933582460638318497256315142603905770694870393359460059776749802265678984665762395085022448927842823603016871514363010894757146610615286204088630811299037808932749978734790379479438925416777874154208637976289281050644726059759895006859028213063850719790929435049842069522438626490196051816921280177014877176140210678051103310275377894666936871794310642353249323875145257823666189678238766114861007617291552454646645647981211556355478952953063442633864576559535050888129340156819830084264791577217739105536035209951006824553312240578909956525215743378047653668330005134305732922526997064771269319180496499734965092072078688282809479077560227228857094766422399390176375703864780100627688362685401930581964370906798734954759492075231496614334896600854796493106390740851279934276210893799071623405170534432766069264967159494009964924464501022745996885717098133743997438004147366828698710528749873728070410420737918426333978622742008877446924731345621827822628979684916943860140552368717707269056759480970635876663859089532021036332834123888278433076688631107551210579923642511172576449248566822528057100055527649620698738393276940465898965431197663797269543902131653305459765141459461901943865953502898132372166945267405527790085659280157282753409458567882907391152050252726082325424030818125341539370832509040739179372135054775566625911864559877042060108708878918465998246580125181404578901321599285622328167522490183312088242426757409909973829117346268014443712945673041908292158403492261824862295419519906688267025818608917985589166616843611249107987626128261050219518649043886396491007947166104667189568940473724092793516263045792871191676403679031840097628478924691212400149889658803870864620088688526618651679321025105323528983315750059234371600723559187622173324904894244028024397180915625290875160376043981974673916781509539933712008550613862514497364421828049582948268383363868862220652098288880130848860056027869963775136592073738926910770705124368067677050365373378675936629082677353882328588553392684555416751701070799498556316845321474068253526153060897524516684704099286664471206535299473326278168589307305744158834971925689563505432674284970351467494748195388558151019270234138341568934984610597193237312339310531605313282543080335691562343623113015981585723976847102665372030162409434236613670395226865457513496686887288023863821815207975963181948743922159833577485454565567239488049462307434460000453330449599687102550048810627200288850824108991248339822596566189122069552867177398210479645972382998524612697755550881466233010801686665096374516137277437128471670708537796953227062309659155404490017551820212725595098969863168847303657031107225516158714978129379345380569173816130450838223661427260472204253849593830548254636817395789925907536063685278766398809345608000953270020354334679534047460114434778112462785866337317326410178830444693739523038350400038461756304073745991933613286165592753769895988289196213273623144880280205857702998187641057125728907256809619093164463163810961463604942457393612512930629645091725317330979026696193265756391385463904050758138531126536375420689405700372278728096846500539976765317650461600989642691204051821181769638015307416338787385417948456613782532316280745264538886572710075879790331800339950504823088138814264915972679667492750126815205587753723661473007002213972321167426351327419715402666147254423757176324249783284679180285507931227399849487388558935649779642175672550337975592795703780631326086263313099326339805383694124740818829390112081758955944055767673371685642639344603584248266882583058249263186740914267307517412731582328912166133904488661254028128093416275885229886028770493872956415417386242127996483356210534116168647617872950436042601341488785691679000005597126309401959258019135756866564774630286563255103045182060390460339378416783041064539275573779517102061831210573618471026723126729087697666917372635851565717504132202040362864253953952094159577823207610727814259550513462608518462657069331237190862089301194202054439173539928447693609917301385185364107546937737272078435029262912713716466736398477164922340371536365156208863338099325062789548175621136339300455735921100271172449380747887159983437146262817598984928406141741451506091061610793993922047091460854807651333032033942646796413926400399028462103229562585468398218088703956538609567900102011979246075583477984838349120768286457763965018070416787736158576595356754577500327694655249165496104717219835304585646993837879003482591626144651703645304473987457231773761652404578316678436391258568942082302775298745288225422641666208166818195765848613545326995988723499478857713445171011116226415678416367236375571696693741325680047393779714209394881254433939289497066594743035625892211341881777660140614927467377837151764417315513376490859419534307009658347417594901139902420583597078887418661662997506744546515501812259321442796798373340201886683829661522032438040236797905616411511043860407732846059800548669220438000380537004735237747220280914623375243447290322550499535482811634516306824660619536754717727574192786095629254352095236625090728926307042181530285746853107041902185592974110514872796743115328630037212507688892536486119802990138894363355203751449035497077372808279528695102134947087853093478708794414691529734598059739284865681936151268299681569540816023632716441303620299324833019232508453197312674131508226515355364910627769429118531448758987702524734573722252325495952934203662129075312405343450565137729829340326355691491927024749296878228141291878826274148780790038927471040171557588863683667596574422130742887487943070676410100462495521731897558836888943011557231299472555511692023042303386268180042842480274656217630551035950750858563057289117409780730448838898163281121296175513741424073531552019879335562481397648880810871136035350478484624652527046214730310637135243626846921381070819117255523939794648588831224014732279046522476311808146450358974168032535393322433368382157302188337124053909029521459938795915817618426686938121375154618980826244692471206412460683985646541905483020819781003666499934997699311616534038214685892903326793037541183364944281146941431574596674467221982761958065946907267569356029494156423978828101463147012136824388986515217218045735459978432605988121871981101146560523909387032471539804941553845584165349809425611872882173097705488406237054086514465943521841527534442452761405080545681181812189180018394911441967764761471182624955015493504924329047745391548166066646195016132222026402905711098342200466243535411000092351761580279884715032996563352339687310517635327875237385316916645399614611110092503524241291481363317174059036667997525952881829975545342578965306155896938883544301404408454055800529494281805822489966050150393238745131236254960662398537078644703041645170522745706435893637265565962911225180451939472817743300085367802048269601057382601279288049809622137091788080005838367089196785335442287785504675390235053945554050310002520692173603344199213167038072204237220612719156341970751680403462761705804618234894297577607867240395131687839749806765660806706650297068938937510060296630333471503101713838145707273561648146204297663731993621311086198573733116362540739507506519503945165749581493621505298548165531296460117874408534854300222668218619001141030254692221169745891376304566539617277046970624986354344426930816185356456728667527813736875232080852039653455190286224974870082944653855235273835307447740763480468759179096156526976911828295782954535825742570840340474110464308251539051920293192914024536077994216186682564835685179192828350593770027886780912381822209179151700033597320728606823321765107140081861637380811621257379574458392044347819217684252822850254845257228115584165037907941798491063023993120159119222913096569667312408840969671498679643687287214404363792422407499295279646963706844446374897869787832782396923571813024783112225154261337896692045608797686529330251846851502962595459797809030220359967438281594714438932600879489623394962375017003473269056674744762045349546989404342032643140357856196759875165612146724336450912865930837973171993094712441910527700460178629598488982919625363392260804305012040493977569801881133163060365058107187964927217224643179735675238127483571427363188072276119242807875564826408423678029198100326650976170522403660122382683946606396014315059695683150253540724413232609091965639037206381633192418694007609949335726653011594749736611521299093591431622639882392238141182788443662658734098613171405559408498034222932787731591812703037680871217810431592783859625610090040706834517973961561333275556173646889862256515699275167441206684432231995256176930001809725905830681984093662362643351704053869695387659634029486752760317376276294380222026879855878451515555872226923320753649101184368311450657672968447165440138486666979127136403425266361821189632282197829741392130418187094912059367201122961935932663964127746181528560200029317586550336767642588481799793794055540086433533404489452926264665755557509206642756132407050437252454061909603415985473974188726704974593555255005401354875068588432709802010392813740478302285388261868289570100563961129205051307783275699500857020245652100492916650707363444385529246187296735531968509745993664641543972830686370265712933105426413403532993519361902843312962070270895955360255607608314171807694029632685528010287400366568662729869415159627083295473633202297956529469504330018362424851939903554689800408549375795089296198927644693085438862683447173783296335511009712506994572597413611260872408086802461687946076763697898679430896375626542495366486878845140214169215838697689836026622007835890360301811047352662270475995441787296493430847464755982990818943756594216834484790183177327069727915311782690333526040612465371207205720147902173686964138878599654224363982087999112010149838964024276213437261631362418612457176269188895127257633546321391425850129922114114882276310626089876041127757702036769347293804512448911432763137194808495852343964250771713407886017292878583762331075206661283221316996195222456276605326491625003508266007753636950705345336832248689744654518199338783504059307321377952661400239275626032280623568479792439057149940285068099487830765154969492063067346487819851316324248482313696386363376680853613854672101395796998281817041750923015429353013887168275327668662660682727691011102766217971069023087356456314934793862560390382873243609293335863633213239613848260730026638449988033005049645905177825397486165406288233626240330272639923876553836846691688184514446586719763677656988466143773936588971341856210620752980876329069396478554405700014376067450663980214714033975811805316200147881307109924589948212041638886150274025854775291733668810716445259004456336768713041526654497420957273271763308159848680613778197394341888930952356331220988549006141132896974965901684502589030383696099014114363808505470665169726428101460762577011445147646536824729874655801487136024595687315833857090994522143372188386881246848646145840292417627685238948862225247373654865091573865805409074802359477637647602013621792803323855269481929230892608254291073388701339235749632056519765241767965763175470220885766553041770132083332455095414135147248495016546388673358666330597951449902040080616073117408253405421273556677774073278258648669475927580653980970756142801553459636726512912868656521308061288222523786499022445519473670353478566158283391453496415889301027990929065209783774439245441294397140049108854568583564419866490678630926120183696878073920106933966619551397223199064206889764879458264362069308189756317610299190769937552506884203284271695089024733826352694511223751113419346396270897214553520086821181777242336190635962064524360279685868620718667413514331601990120302729672131293071884713655220309436540699058666610207129997976776931756746340488104093006246017890174988762434757303296741896760781478147773729423415354750430699541005747574865303997797034058193382264192642192533130414079360108170764339467975720663462478441230641226391729696950802396282741050595571002422713821617971482360355573378249204638575784567714947784885315284482458808039229506484705144531355412709005438991858151266909918867610541105588808686388341551602625643909196780732690603201338550875641095277493499915153436488055627969906340584054102957972581384326768210441056410624908205297828895208397974705081275692916556623791702421296189527013370629127620307802258417271322919613881110230139589280091818185470576486002774016854029064291811098786631647294823855162580802608683166970953193623215586443473224029881383248664968701168220598829058991743943388716544316206481118973224242853349804773587237621589893651999553874145907917554073928982555434797591219288350335987658419741722849093477262349854891332923539250994898400303493441168155672364631967308560796126284969517345414085573358935182633397071216042935656962475105593410738418593500272680376797562093882356754771697551133084103484562231093646027369651960906924174807545611254563718864240828004462804892306560498546842136883073664923844492090704258087199709377903291774557595392746661059456853418379662932872823241404162125250317181644925044099017035210328556693619250790770807598925837270132144872433344666471036025418496140250226511131587761193720567519727130067017745012840535675296047162832598771776326200963595256823660165335733087708249380383137510271489237925514528029723416549801458696357337714280388157370899135008275132662430290784103971984185522950164834118750655245347947070780438040131932834619993811009094176403440245788502303793535899267316907382224835654896882207583493005111020811269305044752923368131852124319950237924673514441650448287549379089747930235774934583941944691646289524113310288340874631910065526126278325848179437961421927614358608812457155478287567617458421069743269658395999714568642103538670994390363976419863577376478282922395410302832907291254515934830444600706926280780518344724931404818493574890136770040548720166308657389441259743735331361548541311155748021864315622546745627603909460950737610228061715014498407081734434154071256729880425777615912709798193503918009929198940336909592790390442187061231616642475784770977983859745446400243772097230127832957714563832323849413292072712408015098434440224147833422091809402222515004824204742969054752742208661625159939431775512936158531258405408065674875348440396715072610592793358421986376658475231876557742798115887372033655296637082826390386640214397332407282549859931927605054896541446834277358625913598984721447685757695767560270341727122806356493803122398725519647655768871554007605052842349872919415975213523305095844404441657031855913306494486202997256166214688865459369116217525143391175142177917379683145927925570619861658512084236698648924733737153933449687691104343074651017168355525971233101753853664648387945008791924382474695592055326825509565579066308076689120093585800722960593998725385726269352027872717195074827914300726048892843986589845428992518413961078654930314314061721862228742711892432493536702408749783292351355923924546129017359944562267440264552599916227264719939118537545660994730215688875359764824411221142402380519603202423741905438623485118151333092403303101738517261050434511775083840115474497114379244925563490216954001020244573950438379372716029005123934534233485244896473329565930752126610912071650724833005943262824891859416789810491139679673475147483367364190008166997066339885807047845026793800018893128776195675773910971380500266909688671334393196147000488697621834089440932888502967560886893631511189573711309581290435788221752102324753900880361233852184802304370699225324995526174529060288874504646867158795058143397325483444361516267091734987158527502361183019143999762289407175251858040159735377618962652792651168544190916551469966455406997707600213952692170866988975647714176652219089683565416299489876095761975679175100799220394995729909252380990380432056822478918151673842400369970141988671622238469474135162826581233598757941416414520505754015654440620509352048594941313180045326815018876845135011385930838341264676024692043734090878661548075798231230849390499226197355073016496507911997567163862487022511070497878071889043634971779369059914774204852323181366118715365466735986215896849623661241590290855126325568501135791170013624143241172250697360349348731423125846648010603959758824507780315673303045302806822652228337700433034873588857657641838528933962714549516076120084189312111671066210569799575696208887655729056388462152282575254644118659904101750702025725926786546064879989737075895910175890570986245774418913238303736596966843528215788693618570174928507341362349469914721747824962505409049000145490037166009142614715150690202791334434080968741226449178607166700718381478029772546345919402785144185264649513718014698298151320089506373322252794627930582617483183729410420070232870677056575594638752611131380760117774486680929487289076846377840653376687392061056814312799753461055669003737099023918664538227907598077643068713607969438247587145797991213773309590709656260931859347501018047149445870347931455525398503377162748904497613135360369199344126501656441672865480739172790106851954986178630188049692027396830343837537842921935050413898808132936296974191986833843242556053582563098923278853067744132327943268454802135593477639111529557449597179234634715056279263755139470075053861215746642122175401034434504486791089208593291377065501686047449865421246320580219863919123205016800784537754827446654732513003788563594497294440124886657711484495894568845851715756832337988122947146164473782765329837279503882098700877569302134979228434959343304464949174903541868330441993489593027733262959521141352399203869500936671234856584003390889504474253643802894572106372734607327663589598769792895851023227979984409557740772409978153382062484551324320940265218596978840790348231303906345773212128432635823874179601455513593165707652802090982745954420628340889854265694394954903226821997774113596929828072509715011356168659438114800598927002160850644996972769760097497754535000213411928040203467445092472931020044335812802762161226897848029875898769984819550630496254966806425467688750955079458395950726318181050713300972285370197904286530969754101401731702628096697900642697276820632111328748296253150405191943778283261113193276197934888743528423988166889848390961717663569000330473722259711538270407254611867281683114561475911938583500748112628133909207543226894166729737658147536954071599671336215634168101375461425383161393917940076879161683109268014845860708241853167485509807189432094738167822283234701857894151205810270076069917921106276838083500840973762051787172301463066254911472466030381462593783744755736807653458904963936876077894055011191807164241198974273623675971229168582838548504811345412439273527976586081121331241597744307184139376472026069713207038201687067643372475601533636942723038179072092371959146133370480167161439633043343402656675905016883300238071325253321480406911188524899663531718349939968424012815598979316028830777280896127655418343785170075457808467458653649095071185522181152846115550028585642049479624463847186813653060783545612599221162716215892827028836637062263854720617842077317595077573538280384259694662058329318972671538695913443192036942697307872638008820064985552563924028830299756546579347298392876381919088821758565504929934963465193712864328128632573002863233928745302380952860651385357935489146412303207453844708281557834026479280717289888371271895908181965674422950200085551065611393738093006331818646895211134546490522291846541777741051791808325445107824802228734158596836600889363272327017060301167820793829494700454033368128337396876901537575117514701223799684411465105929538976834962570962524806365780833648401906333916516607872157582568491362700900916024974996409495487034937758625474796639484280385622462493488357319747231687633253242980884682688871674166188114175249384170568387950339517601655001447881423774775242292535457084983211583760458402826542294488130758472849821757128854135284466423679380571798448435778811481862656883058108070335584103495280492751908642501450927293639949104440478446486071099401067400537767743187429950776821135185195772019198760517609421008804092081107102337823701797793315425496322251334817185078238171543131727623476399412565575261470986694316253100752288809046582878162285220321979477593790519170790494914056724135693915605331244167051526466451662104768863643782557926601875915189025065750820275959157095485359973583560852777548433139545240400533019082301553896756368714227163354270690863261657077861841367768541350953653503581801031633191223895076512288402784894016123160159493975865060767760304422524928682038929999683327549696669590690085876360655453001854766855385780113474546158804433819157698054430949838002048107931294591349588427931179629163487505279767274625596837262374294802259127276564606125159792685991434752148862357071246828611902443073713626056941665413510088788905798864339803308893599601975834366179947204325581690133598816586744223728953513667091342426450442914343392966502682138314435917538122617962301328120211210697131168311829811535184445100953203428553525095984193297069270581907578420713714663328074279538277326394627212455590640510713027389040909137004189541909783484972970483337895583146870009495683976852014369077397497349897294036400679476474451162479915792659099644397210476297812988426389918605832574402962830967684045554068783506754877311592221077080219232404507924909193915483022773219521805027583275102446561135446262515545062942240814937569999871205058395625658706675355272794707764403684046822744508494769532101007244470512625063262448959156451319758201859660523197721461716624804085003095629922913567551060901770290435507125510786628559920768994518958641798246039001952928727835174735489442703753257498973938700938714669556841177272508827744817703335623377292624791228324204249862640365020146173148396426732134587960419898139255237022012569918659437625205269196019410742157733059056773753798109642218492576810665803357047822205167237270064753446804263709200694570346760321711091954160831636165130421383246682806256982659713305874582738823017470509783191969207997564849815329515583889295545497614949963662071247847602133568242682079473678178484039421357978495391974745012621941501747929888163004913936734329270189984488378820717665652777445492649025554465939063820189287828247825526273064596535341596789691801259764915079721368727027374574138028196950166454265147235108151868898247345391298162951437257214779849483598984831573527339511483956727712070259101941547453393379151522136844370301967954400916608203084908239241157117639309482689147084637070162394359484511514322709653541382131020378291688618834460181851581078867239025748620645070131486646140733169718381500826371052465369641370613310337538890514330839711901294340131259208511071806907592873181732518527296862269331499522099678817146024645859250856320399392836546455225891454471098575370787030759642290809862325100694073806516278438325785812510684840646590678658022821049601981008827771530250950045674860695227355809633566483199528648402818397011706042047319852327606891992639583438223590626276679924984460131681939269354182685011780131755513037153270643148423365612394561033317598553163432232651689813850877439256289198323276709392804027651982741721785806343075235304497173169407840932205997912142773727931994710758681828179836621588873043358305201386345082508088397392578283147349216325286285652248063788815651717864406461650313991146589833887341015610480354911921203964551217941159311395291564038854191070216444430675701008471968812039807935796340073679745364135782846168655863021766562029642179857406578573456990015463520578542606955342130339153087015155129308293421134017520008196001533896070847479149862174112576282816863149103590486991316190879592723568151449835438841197711589842128403413066750537299335716571542460437619226233223143408097233305273865432190362682387651331282717814486923712141398351970381876165430364552749964537072492191920685297319049980934446461900491315596931431763187970878719027579153810624265261584168306717684853042670207409729928056480806904532023174134912135338733103386115433215584558810169003503874138827042844201583043081448880460090042524504975537083290121143897152041749314320029997550650430748962387638668935779391470896905738330015642073350477432882162964285194160507159144029328430785797731746240410644328481522675096936206003788051325547963766489343934428210510556290751476395417964145491938810269655274758589801006439977159664512114189577997003959813039165609411090223318697155604220083446567141058662882391373449594815055236056231022935940652748742008598330192924027213041573096789322212263223810162255885281945050263518874886115757687009461583711836313928771760545365573037345680537815981622453777812323982000769052309384006202800951305833005166108859642285941221148238655985785447833270155700067313097942538180239038770033211681669633696058334083398486476743017917899836896475214596929436408706873754874763522912716567991710857485065662708738836596160096549710098420671345578347760870320242400556664987753992206121818059412402560109535224818432628749167551243105390827460212562271226718461963256887815686883692305276032772777108529210260636954653140766029793976103875602858992346365633776011232276024090940389339233411285271983300631205459737774619697689015540045940702337054079326233386312671464102918426686245176655617821088482869362613935599576723137723173100254750546940807604240801587308722519898056926021826181003222318182934786076747432438057677313266094373175902921532291946266297366145236062761406218030853621638595995298466784799122870224609181565613289658951323697049992857718648570266510216652503780131435373124718798199699230705834505990616276562159366766782209627543082831040031320937430038045685377470433499639238852276940651134459764359283866458241024116947966576628598204969801783684038626646031821129352508946302825894756882199722384990003943625737248217805958885474765266316987353961319847122723807356206269646027115989156217457501440405930746476746442581227201963827610848250705992931847225422282686144618858210776966936689180962104474835117009805476033499065868379631652870449663915918186773022606859773225950860161548823262314517141967842557067159744279804498588753204105420500931384808507832402659038031215293170988122714153130763237692861582300908657028718311549467231496499654511568687341697494918591339815723873279545218364389548818828180910071963587951735385018697031290089018718762804421745323622442002206527813403290566673973318493511817916226843361705195162053870451414754717575524364947807179564705879249137780633853189709648487226508444915145490248706376638383100560413433505486563646091215389414869710705315760118093730745934499193366209142174484386021995122138796961035621331572505113247663482090304187373755427647407649949839169178512642243809420531609222837302248517231179750263331663447273500251935759769042762444324435652399398508025303096000351985848893129812220322417305870578736312459076422234941095508355626977944874142806555500455234678376185398266545117412021912457684936774378161763086764658471913833409050037954671405722345288323678625997823876075295865244641927697910036688353783613374197466474809697138090309671330415828512130774568113175956330425478561280358802555724093719087539343468829631085339950925539385022422855004954852563321519215378120352868732253950753548345927269133507037700273374113634730588254537441040116677276836352403683424705756694624732800111644265405210525843428089392049313169924467831084971502955011948135024984502957997934731791915284535232560017312798674702035057540536303089175538309696635839748083632325963328523281860101560869496854686043714857733991565596429617872905801439349331513554866502917623331431430840973978585459089057242757778167594091735884189178914577808073761834075120711225683908730627140565085275176102127636765204576192767069296055885985602743761155971652778270247738121530010493132611409985219133620160214634303335779417348420538778921324721605103744678515804899828428393825205203598041214362820319179235514643258608300479415385283984924060400983082218265799919596572577587350153884810126904309640736505323470199630844836450905039091249567044435376226477517797095012093302209216530012125568351961765425090561302446726037689770946702778767081608677602524548169557176548238758165170624979075807548475076835239653331241657314004114660226744976149306734384312200557202728797243491337870466670521190422252268668554290087291144627440010214298888632095510178886889521492829540857384885891604487293304367869050884676981763236643579754310019848232253070379270434524067739218035760212123880018669315740673432147593260468830392887502850222463258220958750054840405334355774810367594835580435265442058224343763659344714183645867930109762984913284218263240534864408184874923442017682082473367309163581299657024262739865090805431899996610436807857693221977896546692746058477985359810619238780686943684161849480531514035048789270768507182023925305613398121884234791543108106694082713767960001953049663102599418722938330541029109541962576005045523726134318553567617664912611897307980675089359926995237018157468029860278902830542333850354612082203240267055593148223581193379340411786341872361653070252067676764343290106780506994064869781085846463605729748899486575954935473891884756023631833291185786973673326431445086469720665710223830893628308635422581691951041369236530477670211424576303979527140299855388891005848616763002650711548713229968188537053062817176440249153183349414294230440334942508884595006190260218386497751632416421049114144413088170519565867048397072051885933253086910221678598543604449547873402966256835688792133519078006735060826599584197828926680519621834891832634205510086712544300330215485018192000487036987730906618919374308998019536895085028913619236914589360410543521613026079664564645438949728513400290438495626852206661014994380252997239010374109031769661497592043410736128549741365393151513136463922887626992382550489888101113598221833287818238652184680969408425122596019093615816439790488396612656207678012572852975246179419210236403548014907518871764113736321790685684082932776420416397650647601881045569128702925036767529617119209819063503605986038853955675231281052163381605216737190401677375104533525674533781576325502803055915800462403994363466916588050383333544287290679124504489329344576784783402889633521087525325636515288937001536057347872662047399175598112562845775956899410035518906410393746806093231751683160653805407595443427455378831997561960785797342309558893968302344961638931966355111096006732447524078757812802237071729036245851921564513984012513032555889925419641752926380201152435811654131648189148590613234608076500053932427803736175555813185327524585788974840926479069945313147271658287306298978050863843519851312234585945902332216433105058828667222494540087572297711740826592918080123706792418280314976553694830041201027340559093849395449077541460757893029965914392233127414792976984046436481814455714612006730206683364828510761344104915468853786629179447541570626205148399018612045724157195684752764749783231506152993594950538502062781413802351152790055957150260719711489641256390525320284132883006272930189718372889835561845026749108217081455830909520548538213994527463825723068674153598677597317673032800886408569860509556993827792956114684397628546535444692969492902061574706944380479614380775587463631715537389387183558334487801731697069238831629450958123947470519150611968212022436573588464588803394534374315372611624351432426901882708240884934428374007932791006179575529439370811114254793981408410969631369309151743263031917954446596747119537888658935428968136292165960456627583574384220783787814831816131226486118418673796542144059741227195129254929405823765448268411309198651387051627209215493983612989901594354681503550835717752049495144380625169741741602055359616403806692617349263014884066294682063291012342168130743041909226774955097214863554366587584898917791141386450783698515369674044713115669754440286454567644521915741410541717566221127158320670213256242908314942679825226216343680851660903548600244199945293163505314427522585096334192519445207342502321634620653083467341273273100551423757284984690831020764297548271171243493201780242776892298556757661267961837714783549925813995016868612344906584660168183598299310366631847560495123454040760061982946548762892902181562640063447796082287377161247310581807463745576346249838328181611228652910142802213756541103794683868283776179105277547715355303686308684250967728521650223721839932074405485637660612556208240336828542625459258745394212493539904924509606674258400870873646328479166771349915633000674706123233842554841270736395861634035398980591557228441372316102809807446535263145020582512249911504391916416097983302692139966511007213106078222151995322315350282153445927888913272407547337696867647063806771195017100263389037814545405932154035707224515603142219580651656055814125296916336536879193161252364583436096142943998502426869854487574570861069864284927103495310199867158304841281847955405176898584484024603295513319253023835691780759731288072823362104750556025223991543669194890510856244037084487551769183015115386331129614037982810903825053979552759149795626110646064811140562744940150500070419223826048379910473106662240249123352491908510325889114313146779620270345753988132312090002270855302698910468961495832566629207496014984695486043038713195916063348185615798754896455775518825824777504403182987593663311761805901737882797216364096058118429867527344469518337102757215365883307850924318043308501653515441842504043354955628626920309068242719545567642039747644988717882174050261305790130931172192316238816172787671882922905286454513528846890328249052633554284179062490352651001053458685893893300209652225708707496084003736918411124347398811644495128911496411201002727115030006021203497135825853377710043962244700467651056837580616475909261814440816600486211676518480145806913411864907713893920086467586677666860780098999426043100698925909053088795011914191892755883553599832498641357046753031539076587998340976963431063831930828774468339132520106276722073915763241730788116453998625169399979608678505018196304751914712031102491188296983003808082274141119699273570179427365277457021741509468866747285216858900078243775664593906978917692087224966827877896305782572437588687258068104143213810227220799138484303619760369066750191312790721026365591956441210195342938792322879898681059867920679704598336443774702023964962851371572700739333017106831962555509829634805910376096383263122118373329146421373280796013283271101894060959971677201144305090249691941461383956600410338864494173471261127853951972227092906223264989265998680589461844164690078303115260750137986764556155421674731692336172611544374703409752322390350610257544201290345074283433439413057510688691687196079935178992616761081840062923605545012622116602158700896273859396628781663280898275702559436192183111458648872340669980337688680329622737126298570877672906816580551760437542137876315464156321121873801319241517328002474098461813724292522786998187224724618228845613858855100218230236495320416975694954583400216313502647465212871676072952093975390712488133334074991040966853048972794827784305141666987636360311406088207183504131216297942455899983444017302356331061305198160552949441254837165248889597912520943703273650057334359862167114603963737587057645316811561204633959030141193600255021883200802635343511049389877882292699208179159652857902456739399534825919513394621922300384717324158452804819424827549206345245070428614076794134391870843259429433359937225020441036142894101207161723424756665973097233893524765648737460017465517534767649880090184059882046649387284537299373818008842015283482741463652709859921271122866524824828239873783012612190704605460318593847911844218509025999271539177115580279203371847101849123566065905131249007595733166733412662584768355224135006705154161524663588206101323987552959795124470256938342669057229987834261508807213105030000917403211635579363619809265020960501103160327723862110834867141484482822911116563990632982556992763843524133316504685181776376663595675088486943693184788769746742912450989166357934949528299782496138208594461189849431705992233414894545302265714750701890760550224489149936387922147191815667435569899418961563187111618629369871872993900551874996932984471226630721603260386246138101894926936389697746011988091448035888743152108276585187540630550233850870586175488938425457985536725348976009283671703942260470089154393212164352686413010915976997790042844728398068974229282289825692142291163539931247275969437255919112535932420547550374202533861867345770372590737124854983191594120717348313208015672923188404453771377825337635684396291091726510484779135481430276085294838246450530041044555200111419110001871211849958126027809010886146699745134085120575146940235487174908727951018007430758605762208903590258039672294522531778000050993497638329322486660097659425480563873301702560827098547927477818824960475001767987337011685583373205919816468409387659853221371152561700842790903724515230071230204580815849526900938346345735181460885380731824394165446424280706020398590401553268038044362446859698738645793635446280769565697146443003498681876386439747439915202008747173904048444089616538894119742264569515939153273242097268564702020900776907262753342909889017617706702663630317489964096622082306150411642123093855930277188087381711873331402000635197522295600252854552559144984252369739212498177123671827223646706364234057937200570666740290751461233617067086643860498832972442360561463631041155500635094842607957321516309729718504531678145197546962572444448573808443093544171694046579015892066870136576641429189649998264784136066439386897870830493735805883592563044115369214858310072312952355382950967417152138311108111356162333135521795086116028507028381216008313791987117243151478979792869800102782493779088328383920767704702938473368606093561473252412440970412006808042232530555720283430760571864003939087815395974585752775867518655702521915055360817823253202301235819492703890437987176805621286645867404793203379868059883830913630880291020879756680703293370523741563932163511245841353530373521332680563669446136713007994438259058155411588557144725202006995936013709520522805063941499235242147188268494037594279570765980848682063301667631753996277551513478344140130443516127102223230609088252866600827108521337013044887287799541407867182501884714780883351431736804347315171955008959675411767452207326823334143765319199439532714005737246918901340117556348208571128534614458172981263928597274344697025232450268023698329371240429829447817433574665607242324140130582939093200508684187165332370507870223539850907331635000724775332723401893916227288693856035908991697231196292182581074549840392820095126540595151165856604366457001974873668304859298264305349783327479831402542555454468339431845257949586168891989625919667097822964165375984902498342062202442322218787719656227536109441744556443022456512857028868496047443500477741288659566064747586108543129420444715842629038020251235305445742485053872396601772686902341769891103045737376343137368664039063555577529032739409481582784849840165553237198268034631742429567235062903345441958082135252604182384502396263454501602652097216412284696213648948215828239357496630677737142179389988341308252516633755157976234154008071542106024656195527329563853979054530091136562193671048766322605441517160428462995364427683613742659829314833651420014632124121783550239178125804744270148450319358555898301305708476343912768261688137340975621210331183165216357839004353334132412148474734779911686673516237907868639806309067405884331572327006664016642386499646674078122498086436502874298661961187410716180842557432658467135008865309354584003867782103289607772501282292886983550690321306402327458637458251021422712336008685617870958001239019682128051972713605558862951332902523732732825354550756086123406314937274788812695457592174630165318017070368965891351768531345029770376166308621246994943054312053860325056851116590962325132603009258594389187243519853259876410329869623962076376898969886804538749138810358092363586875028763511473340798038901979207991517257258276427926763711325572329317004726577694628202123305463208371980785231691523569663324186515774142992622174857863971127083314024922829519073461059394006534636155960286575128442593615247305209783936449964253900587549092007474966817405510853251973542695420047277544715700697629122672768972665759999175529284179844767525030743066262823094421736200842649459579236230876729666705934915526620403243625289025997245367674010778997462821745634756761926570850238999421110534948242397409850093863577306532180771484675883642342985787098471716508136289162351684847992296965211605324632098127424243109113730175064878235206027500819105325434979479589276314349387405244610471816797738788291457417428201616023464009363072698288092625928599869811044617834585375694633778372561431155685365401204457032660595588298026375033202438686164500388159126671100364036814267610188971979930154245380170021994227696945846425530929409655540757321877007660180010515537840410091718385296224769429303620120239878578992472109499132637810599073792133768701251960786425272585142600556640285366960954283280568434548361408281859560877015925300667238096609965366535462191684720783451366510791901756181301610616013964367568317942650237655806386639601292455565759751326802517555988135489003753002455600793898509459999326505794265923027668176713945969660299295761579166654212396200868592644303752129528826921767337802902616131194849987809431774885399820840617375821121489455010850226168072856644114780279788625283948933137526767534079711662937225110712333287736912110744322666606673957466275216124797003837753068323532229239548522209374249575662374269395596191768125047724994597424819178745463842295872105215843359548525858084452536351916347565565888438328981777821294191528572300707584594480502014312276251478421405606164467394629533400168277696640424564814559321556637016701330417968772945325336732990197993193822244538499554819264983317619891005376968488699218980554896853964365312207290094877559569041570674297534452157290475588517885901678106036030063009298185673359785762525997970317139017616234655837973829384085906617239178600677159206808466776425564513469178730134280308716237329266260099248693309014350482830877118589451929945068691748856472616723078975023676020421841667356965221193860916176175356064187620143000587121801887070319116099737000667430636057053438665857756083992125754061394528022770823329321669647333648848248018081705957819386841174393034501392095330186552011805190420161658685652797679184323324933700263000930216753031428605481094063711738859576899052613565840336969261326620823281663867993225086402124019382418843526177545031607664438038937700142492545217871945825607252435454726652621708816281276793583699318104381323866318860836184799374056579213076171730731400302886345897793402161886255841635341494919993671129890870061123338487485941464072495605467089059868171174294951378960331988121754025705212484267876552491133243662551234591591343487495211571935537689363605996176324979167523268376262451084529748008828247366520803067307316780007419027110237739716512426642667552308939037711077354608364597637233079624486853490085905382023426575174900573466355008948614117711431473009709294286087329415045359491516185782779876210715194768899046790635719001566690269990230323763410274373721008524900389663333568828557104080929668938235978257446774014763637599316027143421760331026611900916866270752560800884079038432191753890709535798340320547199309623888595100970804103035005074731586242887946690577433594920702686601377663507599792784371672502580026479344929222933042399657295630473381350762336503585857151170672725725325544859276530751430650475909067448586810644501599916187529339626509582635195447666246746352228645714347866696687250044595047994785568754778090250415075187988687531789520247021720235382613247830605429791924494355746915417618961855370583594562491508113421219345498609064506274770341439690827217410013011640970633807318767156126523870566418553693617092905809008817898596889128367944183125608982012706573349457009669634919907399763100256683788933424804128562777452303752987477171732364974670199464461693443330677153760128347883211714145452713759614994205271392464871706235032099055904987831704835743075534964702969622309635083095672376042942311255304452205563698238637594203254221953866829276662479019330893277659506955785878670289713032237307962676015977441374855367597440276466308206028323598186452509090639073384629591444425874000237670174191194902954846662500775691463093530042414832282142177970085829099125018824992455560384946764856458720151463831885589645392457791853969684834707905389548767792699632202616722435438207202472079627631775748699049183652143045110547809224102013855456118141721250076063530933467993621815942971644845973994975898029524769381575875152451786487715898363641299957194154189359894428357621621030946398295587779039463828531162033833298720352673182922214792718341631604811855835334166926225076869455149782770423544312467803449009175768938528639499607816982034482497488087421425903188267017833315472896903456627106498122249127717444221443318873345044057081995416864429546688868339278692341434545920868283269340921646442301869023019687191431778039751780730133666332468557264587721793712950905576983121912425668363517585824206879811496699916171472426660717914405200683103845473976734262084721024128572720128421054028087094159953036940388313799139785419818322062109764551746068529677867885944475245985799141393633301556595053482306259338518084261284732127895221092691729681353952205035973687366389532210438214289824829625559421211040594752594923781297528201582343634112585539627955469977110899616885957671268242455162646473640031476996622043700065860540858877960323667117991079018722255536386903859632801004194424802610454259322555235005645878163895858503156184214863156802025351615511311324347546523788347162527770462769415962803241503770251143291540115311639665242601020301777410787065855175992684680474790108293932741289354805078976732319487207644789739719053718323389011057470990185270919534856248714702562968217762565202035148623778607430808232854757735973314738447865030538846962776235203857151968139846201025290411909296904380548885422416652715289864441365759965846864686674328255191260152398467923171580848365977356715684213174242254247110882856736312917663736873182523564853672726252863271907691243526777003980319662600631825895325665033090939559816077216306383708354764113564376588511202053046284010455757122095205359456897904068902808941231799347339685960745021037584845950175268274260935214655027525703358319666623780480776921063300890039879907102894900224156880597163208118963843408672536668079702552505444873040551946588719285649105747129316625755869750502955451255535050158886866656214372016848197516329261379701247110737926474371667778397641617884966384571234325081105400686807525032045119698287866897516488773036730015604754527307291705516170106913474588252410063113638718691355215786267385314454025052310760587801214744492059525761549795254773342988644369916471809052177342061257216745901913120174708094321319016136222673812970100716368646649383988026586466340165541417592671150638969095691091868617476978274459543902837823621886811451867495674451693012256860127040241971193382867748233267573096886881338844086444410203434842480803213119181713728574682662895522431239661513536162790144835697814644994239306814812704640379125611616583210570287772711933429095928473853641951861358284289913453486698538225728949528008991425388576823596322720798923255888720553899629332678597205092175560650735177709985230155572085773224244003870357846826799573962109373807407130725014921428354021793179833880239671244452080617190225363888010381142240132432347607263345639108093720952550231941156622669714499999416947541961992626064423922606976060967669727635144893915475602658498629970090286058042314591781946042487466091125335726318453335944676292075615119113517277237665116460975524064374517545908170905303851094141898117129793623833541811311019864577005361393386092873442438246481404210218342432752051831000142365623184495326606792800455726917622000501271141441833903487666929657602943745620058467804107994101778400952978844739515975624512526878516056562421343198198582597246150568982219252360036614732356539740933169128299066292141303681275971588541130314817138607072532697231954018924898175747480727743442330876690286205185179573486618524727355978321621372957331972532457662383194551062946455814114136967286686206444321594592520764424710665483832110775359606473153380209784115822828486535540166221870765798153078233657243751546843231122197443317455702379649693938013865301904103272535155117530189818834537496326880025973518990621916732986677810126499521317921391910319258138061977058728207057758309150623449663858708732904709784701915577374163791023567267493801489141580021408937681647311708685618429874752377247624547065851857611411085277768519232383108948776999502896707174798620678616295008961618620234390216520427238417323130487912496200237578632742775093013540291119565677750098166292751343149481898847183834299638228800140083559662969947249791054916744864695398559802498310135427005601115460721030696967189642707313508690144340724538119016794310538744133334290362977212265995973750874146780768043335429016282343787630752929447719938235368765974650032969484055942272134475535051518881972625852762237190126713552208620983846400397372668740085655316171585126583899494937060427311936823734865194326974957342610195103444608025792952684173944816998496424504651225027738688548442470215101895049425752587999404249792500105110308416635178786018230453475391638311902073002224321067205380670213870701849012171417201899248128322873642098815258620834035108407590511827053999267452893021403824482575101031557035108927515562301614170484026876107246558183174538931825449099530540450855723844531093837361511614166725068157472851670935607815028598615316003439558568019481895807077371227438587945008779941450459708822983252142027318374319563035931812677012317107460520415361218476597954351394798755531060528359720059146053835707137721143451004962339462402443452647018665452435375769548448834078165378695369843951203902096236148045545837418412967537063898763738461036350596225103409791420881083851415488226496238315080888673068815110621922041468907453085031801863601240528003513540565920409888930827844868337806357552044401012974679343174295500480133750167745227964322675834974089936202339432856607512611309943362673970966364543414972099562501128650478481973578230801697674748637300664040886218872067371127644456223677502846194626960175317470221026381084130579457153265121966223461891999355203895741018104880400629291419351680949497768727270721003437080205667884806256501469317270243187268186142909319950278269245293736701105933215613130642083860563475857133293515114628655914973752129620208243718032798562836143404095432574661853371391435376009076876732630203187734259426118255260443922738963517171201770291106946569363443256235720351654326954472031868392715588622765315844742683330404182833800410824521016085881539274841821003120439228531692942541717313826665246209893250050016029870752651968942297153039771530132549805857927220563538366594001989483086743920236017844063341919406062732760885100716373753126828502958580943479248314234997582432372819692787254425020166729263553820510418756187819918707813312774579807701766782348665030106926551722860700847112596640552442900682580557624452465486803726867247533508793912662168155840921117829872513383944802148429110847119300355846260204304337060582127463588638407180995805437797448408123841368436370827361409519114547973019651883227990623443876464638251518017117391406089499646831538119177605895150357959434182558956544935941423659383553517938649737911415805355726804898890717824339295257832874543671372999058161299182910888333854392235065970210253520088076824847093137849933111672361447628811218533221074578890399809892336839299058610317025942180939834724384212580520548336958146304710542475366699803705016794942156287340268325800452668555657926335100369109389155853283353973138334258763496677525307002027685365799935916049605167738592682987263442732210824567236263265498059749851767898111618410086325478190562821427809015095653345639370282088286120365779714414100443338467090452315920165059306995345543984856599209556336018467456577133061331775479053618316031744804407725736332049354687577838690136180683989111106786170376534026346309666823352003677698119679640112201524098133857330468190251268967229836222573844925344296328092071203626887077631744090407774326788758290064458890488210224855183452877413130302252554707363059380798060543287608292737491525761586440097388323476600893447475572388454580463825789258334955035097276135538835970493378557392995411743917628606789781955707134335931907160298015612188667654091338555241442464338597217154302656896933879490767141025740747228881840155698522510967838300423434103622379225501671208494452607254486779364328992374825398063993834293073567258306974377685667650362934874204914955767761201113700371898105814425452072678269267662881320954373881302601345656737144367406852322028426875445010165888149549825874433404960803001373035847617885657406835202039872322010319430796053528460446629266426486803131605158186254584227349841316417631179458052221275395880360525635365180162936071973617224306821634220812378889877529728208626607597742514354282148952546488783212763507663095463841660987797200402232313273865629161600271786612924863958749006266189029309726647000081549463594625253419957843632668445163800979733818198587049335047208056306721742063981828402041766107969005405484092717499874573004124781814424511514168134220036521349669528433936829227241150807112341285297310236183529741262137911796643838470396945049960775114592154422005185488310591076191473319493060243362032393654790695734779969997863093535869332705386519995866159618063899307645866396785119694780246277273504681216415512563480900784407077718333836066496608103009613609451933274827202477270809111871712530285376833725087558626889198692719473551101562533132689416634112807182702460424909273793077023531001850765379703447393513973442262643295110023017880047897936924335818348619718632503085920625943103009326311378991166622755694956801504868066501170764786634244110559154226448682004058994616107222469446806731531688267230282414048811086201577308585040359718495829686297205109167406528360593220648673365168545454246687285134384321565631882064826000045119128844469057774405977922915103568023797440025060876476052979006502961985598115186012563426740555103983654614137629626154113853079275008552216579040887934661898954390135518368993765120678591017082727110483429052547193575455333648171990064160276654343402615087714725748615264795035628740802613592259937054033665672227337731513321664151948182061909552040089184152732912160765864373303001285425981955866548494540262365975268185816796607228570771813096254688927806870268833284760668555395188293513744865606808569401976936523640680630912144067136986229903573663781385402481641130485572060783130328428970764612179110531549940531684759031272784042551438372336778123659669043424304703877312524716871046308342244153775311235649992810612977788196977968150670088574906029269056038146289341768278733015915319352916535538014501156223924822774937336481638114847378352869089266307460087625785552908386169648724306377399412965699385414375536803624781641077478952040122066481903542910003464376787564018325609482884955422780936801575826899709321472206921434808454657971844167222628057861274118574369926133163728233449332956478173645316700775661379141335638948294498205105708479966977899424399813113140633590180444133191243443186633687144796668044907943725007961287481302031325685392947024861681912392032047362599170961866506957738909280913671594977422372930640880754051288128650052643160809066013933569533297311638287558927853030921699438420614708639669372895249832366050762695220615455964787616620657384086672482869040405580535524264238671743285743019012604502492668619695022588121999851446201286460447896270796833501082058598215334421830794880105067266514878865046574849111491486197943619882125456708705083275147193267083046544586283978215630253655868924819133395861980460784364205350039419308899950463678171719343973477260197342228897416558769825156065637683425180746035386480182085284127751242389536296339053964445425184313618903665320007856900462074695887602864964458674042494047533616046739507167420658835186179032064230582690874982702842718190649742849791335082137868669772000666013912186931957532146379773731738904407189431121106723052198356621925110273752003481148909490901478697118927923758034080479362409719212759682745508314324158466212566695111413350771104469188194296467301387630875170654962334021634493235577995549620194861082005931481595935708543986143354731800422280098825959311531281467553256518865129064442326682561967339984920233832173801030936918220675762032816774881618565803879107016333275540964231574330555239748495259682259706459457595192575389233217989223494746896280163184869701834356311121073085669515177413621909668874327789388073789458198788295775032480767702718703983603723742212229866188071131663065056180164721441238620643114342706000408427695607173159020440470874598192097434666032046612715122021839516428727706372853800516707411763127154552404375776477331843943168219549708580646326739941517342225504364164075426942312841131238282967622287711271547460997759021607855569557152705466520144294931850668429098564910832796842412902869569658701182130099565408608063516849454104026588094600743740217698218302770666640954630419314326069120681718350525779226607810120264413596366574926856712965598192509744156390134654230584162960936006052200900848408027559907277950965112144332711704246264818211622854158726362194843611993149485643575244935738236551622522801254039679308600294441793297708039931460330993205945132978597566131262110441693483289186085842436301242774741540224813544491097220728725483222360991128125600896371919991749934426833236342655571865134206210263451896766026728129175855169567612200078030624526938583604436773538830516666363875794764969677110653152596065363670535629836505963335221541106033957751538915036247710393964098272850065923048186342778208410671689264226351648333561508464405725796622223599491811946259814919958056953283029436018160294541423207342448387498918059983638845657782889955880802810505775478552293801707198984018296678854522697128771221175642452949332598909789772169823999947121078022476323863883316901999359951161268911862947298840864995625119511833302941084109388052026964729083853498742696159638650361585719130598846082228735754715293361683327229700075181822398473015449084074224649150726850444190296337563356307095575637318234016715171503624988593382510061623387705450222326906445770774518370382679727951122501813577572121566285244189747216745926624437694115131562507448544869854644193114976015872069590515371900776459423509307147808886562344744578529999222681921483403969736708415867359702396159628610735881288989332129286939420921004864816134154809343316451842714010139749909990701291142748880253897752984656768028495715340429213594558662250387561077942867180089660771196682555792343543888065975594133476677939975985010057563259628239733811003561448633341032696018835666630456339893766277243315258101742277081092487224833538430813838359481551927242716070655597928875726667362643194668840671921140034501672362804820976319783279073550752108014579449043016169853978073444745221933891959086809450605966769296564553534340529358246981575741516358155672344131144955914477645374002244280536193014519170652346101776442016723367371347551292175649477240569174068095119135951652182511004056565154382668400613118155117877038258908410023002776547234108457611951552627538427279456344944663472783051386355301750070065845420367973220539502837517172191413361664116526827488123834762976559625715610936068538303520209321975412148901535247734288855893957943288685209599075625019972597972712304325920824209085550816443517356056572165737663361424877519963344668966114700025869105677321218679630983275003747894624334453688961340367790950135169695147544884792703579961394812384883938141762548658941479907726359798427638068554012809203301782179773558483682865096248665426947167674102420579384375186777494799115721768226277804522068635391527275343683097610279940510393744003273858116266318762913494659162210682438310052235481934406473071762553049343639043703960099809253893651899913694043234850822183850855723938291348402420056878216870804783243933039222287414608505738661254752327970864219914662113015924295335598311040482503487859977708028812755091114657892421023788546543573794552446055301767977420978000637099310413106544260601586129615810799323771002870066748397170872934278151289278776895440373079916659335021230908650213201980216539790567081912489695868160841982851740512897236498923888104272705436698871002186823321514131978295788059031250152404397584162791350764173909300305479007293239689765709775392028632487086739792575698055498937846559217239611366147285936383845486429917076134656147249659800753293491971876812299576083252696747903910695926691589559701076448796320236014303696440915720366990537884500349971123215702777702766788170916623626410434759959879102859813859270673257223011758762600481757454636069290278488950400186611626770147978069832331769948317600106419054892637137167999400623299608618138375704462297863574736096354276024399346509849302282063822051632932213711664953901790888730873869852448492256119622558438898247254014163772178315843875320079814015089879848983104738031237491161733412448107393663168804916130231136483197280509036547950877842923103166204009692117198992504444411445266143278034945146555132111032477144646471093212281486180071432936686678893527856153137374838334758302761956754226925328597913790357414127266310648120838917331349413777110006791482276720044628210517461492645960426606302038131720541968264714785393568009979225406764019265740195170505680062859168266666681500407516924756337100911502637933933300232950960242752947564098919443148524290419681020889972977429331949878825260584686575954447053321443097261580847447712717606877165244219013792184876176108669554675122239198686175903807693055067733113968816041440044619007317116257342793467633100874225750808507128221805810099771192093327126617326903138286317975019000405270814188103981205975431567815202278369251188458456602544450803034608995832604649808528611511093036607278159751940492615470615772814956342226171709871220864258515435189038289960936611903669650670861620238500511974790456706709990525741252297429044557570792757943886669026807621122597611793087047539238443919117636241821588977319638723902113938008402463803383541511084755879168104325113402985144519494852389089978037390256906184284278371150927591983264311587135259414034541246059439981208240974629617172296071631212715165446252361220984715349313025988047320612574210477842267403641080889617654461209027782877677876983327135162150838043861786647606084454226663282870226780981043288569602809335892782902751089573652501847999176983663742247367473021152769658996172844438166280023055494552676190397484359931272169284985223944175594832775572424515703760899152294929131577228428177327305388070459177407604574997288531585427562675238510229251389114464956478507851086692949767123793198228888011851061377825911574640218873734292632599103366656090849698823194036904044633380857298059726232882799148319914413554898966804908971692203006483494602366329918636806491098320306867463968697343073990886960080194460206371111511534912977026332311545088593806372930173517043109997044425154914406433807845266319386286215186074788137167265988481675233049517484124266866023875720171241605402877046552603372744362011971823087021794449873583506271607043536363265582985154618316891527508730287340704882760170629058778796874547620984360026358528733509065281951479401270438684498105550880262293598829456314673622489109636554468406531287015739181775260766817725956623897820846805128534972316860138845733487654638105522685852153307065200429733440988288198111971734291578971945569166691216226074616363770710516149180444982849839622451336693436435396554607528871004528030637809734513486355376817324290424575789290893828306446272016601304693402288679102537107819280153051873173009142540313024538783385363680317205124788447045250155555150256663505259203086785748029628722192711475346871172240380791831535631306842863787945771401027297517004078790895251653448546536555350151955442037512373169797184405336192239900203698702894598076933666151429386085558647466273788698154197609397453750185978156842943613817387162772074125566666766710928598953488688361422883202859322445473146321181067329645008738668953285810291467442079757241046156356418801126113701070037397698754065344683159147849976837086208242314087605071195843981282140206008100245399442787943610748110397158460080281830967439300198147512171307220296657459780192275925675306736414946012971657510037876167356212976319295188977188555382149072332322261828515045512544414412253842065288251374673095375604604873829819098908439264889933003867377876307254098955133064965391834395074003896237977199108562341082055637066837884516873724925028745331452499052709492156813651561936368916171248008756306201506504130575335046839853671932006149418410475713569642380756257976301650219696311629673331100764852112187687349854458154524257721054258673387612756258245186499415146612937983505907078534659927517442654576536587572929461833516143559033455731794300243322610364353460324281306057770519642238829671302964246883823163199647793325827931007474366119467356431479980798056680134061657932665280971422187570126395851270349382539566238300338141718543984627005858892931870277648312950728245303661755879674049491132465541657476779989083206777043917107885616466376701998334744615522307809392494922752202461576229094862372780852778366994014615795622252261762336107451926410853516654910856099263274319830486130940487890710036791532253863601954276050755053944878080509458304705056191399858092920358646298645372064909131328820177850699558269613216073310105148116102436322151057126586456948040518655532885036758519760050829359945167770808335291740938980489658331231581945824811441395931008343852547543721173515184453398125317863691536182355701220688748111314824896117226555635117823773280109938751042465098872335363891286716352598746907525863389970435374660027818080085648170530468933897525335233156785264018370567490682777828973871284496951950694494490232401842093797352023305626300434429541117343996842762339335465970496034939055684079709404446191355208522289589866946014538723515610394079924440383537163137213239442513446870836034797305232165658017327880645533381394807290721950859916209907608611860680556215467271649633264398531131264066676018183750231150796001711083860880265826324991178479446342160632188312878476673028265460445792626627605023413255001588445950602839846511956469103122986797437727480254842400820428422091203319124950770630356850618450971671104547847157078185867406769952574842907471010031639992883731399941147269159618414821658198189364445696910158965200322254376609045689448249132569288105794297706093278689180616576985678227439112797673267117472673960963711295647853143189329303649047185569250989631428643439676760952540649787423877855332273337424828913647295292213247277994707495599183596020644929990880210019225449425472907116741996650271551442044789580659772097257763833330130420849646056425457384869278063190289177533696988213709064964485799409537459571671875900680017292965747870479753834719448752182143433008854808587734511275760499775138946755171849901273712255024496955791730032703352094691514942869130091871218728115911028531632927716820572625927112224106310557955157667603252452479494871087630446303644154009837176894197196972253842214528480233630318236656822709985229335382970865175529541617141917488291798052277804676900066993639844824312130640414017036483634723024095075062290521462939585128354285702418071052138549896647621883115466972477641201295219857647222882832983422861352640360476747936498160444025985403672865040809996186510618935764754972073493378199400693843445566202118852562014967163950162674903541801242331129044178268003037026518136720707602430991034018463258021701764152553297191451110570092603009747473093748823989419690235320318639109094526771398349628835226467257490428854295010460649455059232513417845447622365387974024360399009455905615952150602512345365791235574983267205667700085902760680148963683871071131503483886224553760380273661609432353875615296856273293697392513006151695245263016739013337184364073262809694512793093397982532703464273333048428799482563900951194234427093825099172781166034449492958986414679770136436514209428969567781797357448732984581339268926554783580821724360704923055961673310657090066601250422971614078754821380387485782328243176386311982229888708338788900031791476587093921742581387412410587675060440199695621329866344980549592540512515026006858019516015775349400150768185995812601966361446377446598590964077343486398289793903901114340589973988461609451311769260768361099715500767105898946682035535132802080510592950059989054579421287757901140653068522234822201299202038223529138398725357665827925843981129811478185937383497213580413715660223306461227582954841057599237135598631716764937760522262003629285071729191520564410963010054848635439594927786615139235291063610594923380020034071540122619094187316525214185510140386342689016082752439667098884705971458107179895464231217242131974399317998221054274028834429525905286949844001024298632575624443566834828156318678904456372859349506223909391538303060021559754112488511387201664870881313457625281752021445196135441661098085380173069361872097402359787861768021954655106899833516272374039924043273658424806561097758467664471587074360163459146336457629041758230771003236909843610917337973928643976533618788891422667750018533066975241836843660712306826698266067242608311001446101343116873793310701867781572419471410022972004877438884653747888174280779985048171697933185412274892231255505631154240099547711110311388122653605562873125644811103452469672544445091732170879634643670291501428844316767102324540378258848423891594949250012186876490116575932816771846347176911623213208340931876302631482339554120850664658715187514905715676704093298564184526793072553907012298262822348250949472571869849994148125164998660150670576171573800697393951382788546186192630892957828257636438559812827472159970816590686730412833099967773546799499054814411110482525449419759238762432753444640456957614386714351059434072180361173453987213188219925907075506821100653116791441197595747267660169944303934039939535633302036209111562558786249862162986989341109973276888039237419389536969698672741803933301319856922623898878339335322988717896428204639131424193511948239262539199986122860258449111418504359155623045410799788754796791721844717519533876841209680499682422598820116512301037345664152782938536789284004611422282578970687993105150746202110790379780229284867401540459459373256683935642372947872019984296566296026910831125814568485724580497844714423124937853436536004406876027278155556793584383067796127245667407610239122250631124724457177370140750107230596493274503537914701733082076622791761915802001972914825580465199462420413697476384443424375492083313649941473726404133684212696451050776186163066191038845016603228455438117742062211165456119374761837215795498473667321336005826085919521293439500011817053342630078147914706206452282906408674176431586711163935170471493814952333092661615334426539950876969871267011460480977219106719240880552469126665628306675249163234797529143531332261298240384946368999800259676612426491889522641665521905239990648057254581298046936806665792496849339187445651715839595149976089600599877463357949332396430350579151663899877099599995571535540488548753339296274878008806048602229282703907000545021165846214207664691634443164056399151226332009553516432823854219021685307886251849957028641676424192620657631756805204708303036463262295490180731452133802982183682831674939028483236961253029000196110024156877203146676190379750801909694489826046688556584453521854868978384881751294029470706283135327494847093613319978507205338292054200588000773561093965527780524183525448650316979188414657652392589456573913990560305931341277542343224970122764117801048114687199802507660449308060997681235975633889319330457501939590798607445035049916816321704732251717067210600103064649373663545491657108705939347989976981627782378685823184393993215890360244803813630041785030877205330299001599394546262628513752829762108298497227120628805357277240561264143035303523196700811094057503736726919852701144179084098939090080078934126883278018280310990317333543216007881063759364811448269712826023128973152241080037011286651635835845395240016886118713392676308845837611440944741080009857334902153460135426939219874112248462165452100733298848021444050564698780383333345166849654817589525438644656788797579801383438313058249847986457974047064418468936094863723134908214058448211062685695702124391846035011052469344986476219349184266844939560506931993948622423181224542158942443767894173067689732545267083669460265822136636520003056910530961745145619525774283751319744328609370538716585661494107732794658771214394622739580694792778993203932270807904979740811101765522994330975304260704236950979639974803460317015894069820526273426713368473550015135439775893670353539589260242106966667637395163118958768942460577444550028067155692222445947246842592190337636608308350963654483372059905419547176025263608479169773669503677546901749995590634657796304370181724781706076333323433093446628719031918979708480919382606141180312969583316785174194411221907989125257127517044837203299420997164099358710713166831298538952037796521505897315296252654763202600960512772537048091002741133979125873413380089839255150708769034762138671614056023586822095026624543087133162804774777298907234512752580926899718438277543407219252639204039034111046930143127815009056243540551110328903480843128109326142023057042313569090444583756401607083056545719576145720051967826752941354399709155309390245753154340506714259987346177896537796161371321124518890317881789780776724973595688614139080899316280976417795666586147814390901150017211371195003989629333799821879325930380201509050174622501762489124847420124966437759965626569689946434817267153055014183339089133357743786206193578696941409734456369251637864058706784989829681982221575577638927938269426559720634410456707439119950391856180604106280064335019219562780893051934751319760437090694021024990145726172922478171909917010485226186142740321687757402009048873969192530495080149514592875765398415656926882216081509759241745323901809295273884220535761189831427399738955005890935331516455206953785288119944461892932607838650189444224730198563721289650974651708481518032692604203125179743720646978374044299304976341939701780721486023023101739986275869647683883148506375588146987657311196247761588634210060002109633566290890083640213853397907044729374472809974448674181198553306914478502818922241039109800671336654829351464513422412071140602128263800298779727567221649670325257179645302732301736203500086513685944429071308606583523048426572495979408494970327603154409432766795738808758018998651812083224529089361667591980760056658779391244841686836116113195424175638494822797272988473931454967410252079859298942225994075785213694153188081404277595186421965997843461803599691093189746686173080194086855936578687604621524855970180019185715857508213957863102004292699301577572510121296970183364900707219072394904431316908660615348281766612870076314203544873394698721626272379783036632606575971751867520762352812208049647551994180990783214089222409959569006976244057108502035752150564771438865151188228022639211665704155087499190388250063061923282413374280271002715706261537128517990294911768638818578223025426056876147325990127664067674430612707984852492796756126329906305857665629857829678651330686653262852506720933393643732304352610467637786310346407775408820370699514347136031421690613894377122800919481829105078342822186747561191903964370803069098001717753571345385530997412177858725436635612075143619675413399280703107037871794431176723189374294920833778439389865452595023057550326748635216572482741835696997716263179108593868551886041804224326487909568042401066898742934799974074486733584477155032866473672569509928476752256032480519930904838086251960926268334464262015178313928753583614864938063454625014101736143273406369131430812068360783467931766800239070361194598241921952284477175977455280238254684235986229348853147467357996441150693552458262493091158332247209181573169108123820076364283423064821609818199472305765891313388812310857625536431193801743205467861408810625134893020301577981823192532980780873891657314161841960948370601166219426554634950054854795413268217723603749673288685187383761006120468077580437439929948999698736306182192668160195266184394257357342892883778649041888515586107313389892408237421186122518005477916898837819286735389386109765503315311552741967859105704210925582791071858274244374929906270571257231321069681642309128400290658471265372899908749591224268344158143624276504664657084693634352267965666763203680020504303618810671534381787539571373979076372040958033466335518121896252662226839102986590403473388842731596309801081177420384054893452612672992292220393366513083072836618323253888352865063087475734355969776902393390806506447897588771848275565070657577617298839644838693170237811178021050881000976853094994840967871337045388335793996002684868063532167580019288359081194505138625721409453060903393807548051240061816624240970641338533798797592454564613203388204487015170994931111705807519743274217026926220994658923023893946410470804619734814136667362182873836263541785584655158033278541836419743382884841842248815891717082351650736656908735139679776430707997861392185781597282242036183581277207201184751086983216434817689734016735879813403257216574835144836898694918922336644808862271265783093789021249039214909963436060816639581753076136763752189165650799825326042066847374610032323573372748080634511461352748486414673290154540584694675861295358439903782973220035708190731385364163814635250238836161085772132752120641290873008221432330461538372536485294355936042574343669646938930008286621247648694418264337530879123892729600132237982252039589819438382548148460166555676252100082489420379920538031194255754494195469654846514965639896923571125526325126857198082796172364266076289517903580590875056261831073918588563277508238340812744862346276813978860832874013004578643394004827353370528641812754365606308883652413235799064534294020098817178283710991991770576058866448622657792913595850632178939656139712186604339183937053685825790766100726602738648044168249755481439433810715589653435790858886902847181764873382427623800334855991644030317202557902585051325592224998141862662306424640887624926012765585936945498657739486523159881309026974328899580851589462547397818690544169565697640123823789190360478478126880741868784711706815025410472727443028201278407920937519105523071308815381108058326838011115912776394314700625013335509715274025311307946983203459005726715001135960420293116459546514751899303713366982576119689965861425088117604251294118616551376074865431474476455850803118995858041368837252711949101808688763080817013916809238772001320664230482481067144333465821941154841609200014721406901055716275729793251909593520308401560738762760454958502557062791348820336028506392903751384962374129746398980619776655758606008204458599267427297057432951069287986137357268309096309359972167022712789498355975578909928569474860059720893906838301391005874448568845693847915969846946190482960391737515257977354662103353063260550418719945494500995273388301421731573465989435408130363552038645400510641155383545308418542654711361828074468761742382784396162389510956972596585172687718358516128020788289098894590209488392624411532154334706944604954498302972329068829853474436696648591346039441144887698465988929379327872407074016840079232392833819436850902420812306557200851154069467458513712443048513522403028018004714071085389150358027899396322267136659550682421018934873720965421215610732834301882734535863323864247146600974546814568549743612867898342091105966459888007976659465783086312538338041871440534091517886518674518368851497355596571183325359994518315980554426017120116538062989526507097483904319698917341730006346434303884092499799663960311601007622556154533184128164746183772183586181817197003177364637418920111161700819357332925351864292229199124747065871788583172025229663804228558484313975354423194370370544636818629092793216114546033982058357139361032440154995576817366046901670319213462610997797644194100032951504539427037507419206211059681334102329635530740579188172084125938681086142952787088995405307418605563068408908290875691767943171712288913317546665915020219352369386173788645152302645810925807946533043725500819302796541675176343999561170608866988813311332148144022489623583965474174944274496436722760103504000523822089502131496710707686976590517354721636867260762161298788662415669727500658979630430657368193967222821533930000351998817418555374484785156076822835774509066159351895515237561293025318653294703759861633966576461391630490985271282226438565044801966063088156298314499013993047221801092877529635991410049337341498676294445761486425893329957123735850765693333950012597693141288374782417348461611003792193422030387725501903158995003812797800970370719890029347693885077121293748414383092244928313245546169521594969187041697493886427355321360624670766637916880955361092351918345378198736600225676501450042893884467511137827812938531590617220343603630121991236823061844614513066504171532304039540373915758152819065860912549690538964778298047449491776843207145364359220366486978029973302907571012442608489940731735732735493760589915481130879917951644466540629757095066436394471132697595247072528433833289538481536982292991377761319782678645538671212800854989511616792345340415441060639931832808648085551148989131035505883414467037735303896342179326326108077464529336899161157758378983598819379704652708153712284170464235645421850131387901161281197497131532125658323773060310333301410180525145119925873563895432809042258581753363553241712135073271709191127429413499459509852569205118852709709319767422446685641588087174618668368796012297131004180698820082237301874607031349462617128582534155650090239666743165372750604188705825806302115116470994861080602748122378766924156687995151510596540015945282118447590983880431009720567882434263636265746905411726812664733227611796778845566953611557207879727311604556083459933776184454351373845453397512162080309671664873407281228614400130357900688182828011081118376378679644283924420691719055012117457350713307367936677759563905788630662742438908513961475692391232652460775877617670038192358050381410072906445960353863110063747611685400195086119299329730952709219772855218700711106533144767691614574844407665876514183620239217156436315043798178471870073587808763361338110913939473266182003622812947697915777300146326648357073369134355150520797843872485006602772276705654147266511223314645597439172351654685413723244580972498961822692585058261498720519430364052748168804487228010211280707462637596900188336382919614782410470726123081458864385829542920979880843811178751654182607137844187732747418787943948642134322588449515190685444476952163325967602786884188244806738108509764432493121634794613338995885581842281994946138390591961090541503649541012486890219664987791862395545487778481151926553339032780535650304621520137377220374292543258060112337235847916838544415500935614748309151623610964693571194195896433510131342562026569373790426441104002995019306411851518483986584204177358804463069849886856242565883460295121247038695654835419001438658564322687111287425715054444633651684122632378175572779334525799155326552081371998188113526197839657877221146572683024802580608108491399142900962064924291158875548744003798653065276011101129851565119686129167985300905712579989655887488157350221247159482855775634692323607419694588747928959541227570561437859377032294744169045518272405763451024001840541085163488021986949614793353468306027082777538024589585703205052729815570078575063376157998246610046488002755862027008382214659008192467304650582505175262615096296460654258427456945046986433508967047622985024650516260316970161824880631283975006061526698017145080952542513499583030448922375657837835568960311105668230659423838674345360600991552563995953115350469382080621221956895597353927280019058568823039763430148506768841962470909082514606064623091961049149150212658841911995771270829745075830712826565770437323239431714792256463080058126836911255218130312315956124175893238306044501436100616669911914423669680323066090433440752954262628162055915118750615116203575046379326190565871592609698449859710977096376703755436910935447056128317126982684381444826369070802768350431624422138717465690010367341658425510460298858598822768210625936068702424365306298385526409634609798955888018961645985263826669646004831999044029848148154403416142241139129702410305634346448686813887604640703060720164081726537023667443365501876080251874615434729324555614775551721845495261816174666240280002274474087784540345145934814174976190532039499638086889393428170400170614423210258343626512175083751443658151457435047221853079078904260281275094112102712787738011138333684393974864111839658744587944691454116916215635443266854111438090991001974944244467694502587720752751112291623043713390694178941926261887252647634473996958517585387028293304936166429307455363375920095564369325108554606431434149431217587886870330316108443814583847631248205144993656942670913356346240197453265029691215983205334109498922701209984575522136835499611097722952249373054528144377062577904089307995367165035264723255472153459771472409576754685858001642768659662055005812844312831938569993643310859184334103452544201620023203543480769142089110105199136293681265186718201615686400889570135508075852269665322172080531738304385994923614119037105228844125654940001426574383836979924652131844525593422026378042890100349467178016011292226639330137919257563506382273908227240048407357206663573500544152448634624416524767079749211699835488190719657761371784467344152245460516688588970582027681435156196062296155434120667492928992362588385263630623167588444581101499644858281784399685128411113664090053673416151766462345309134263181414636696408276086085905023059056443152853403600322359858019028727044794749319088996002204567460681666219933786620316420127723741075878334938363952262394709379286426383817606161234602782386607843505964941801167217489495079099273677371186735063636665045385619153840732403578755026935992711036427804524779739683699567818530409290769668924411808208731583047820454852027172107723418765194196960915091087505576252904842689297603507839648984726494990351228123687984361913562984614020189626917367043860230845582986422530625660974724730411453764541252085354907146080094924838683604262718118722525903393374098918994448509095706097144119774911140077125596142870990369111822002256361576433994667501737657983733657235650132847137878911060384473835138488798887061327659138886288271541702265487387456010243171904991597282698717468087651445976303566120833713108447161570913593905618434107439334801371745113197994017327096261014635146664147042821928764778874144640268605065846617714459411201786554803241917288911232091650894933654607478343570223005461347332627090997308726062695871946154389045547051657218537174498699188694586579761179442968709628247682224672330450176758083714590367308358989522684663316732031846658391073427663753184310626826365782785604119710146890365684587306197124461898846811579076309525564297684217268286612587618961520901161975007825541005444494097989389796029054596817810023154206433881686457731390940720172208208980170475966683398544445504243519778798217675164959329552974380964273482377453681843648884548704369871316456228631697127846442921467225565019165207579382721138220377877968554177249770218946075072789526897266302690345669026878395247171203411710020252087196637096780802732081851670515188522485686779847053174651057277013983687605098909402714283668846310422466549985530375273084943249496312060420696262471019271836999065173859711937558725921397169181380503771835362077937919144708039354070935236872569382499035996765817895636636072090377751850696926662513557186709846651826427383616343514783810597595731475709127351060170786591440651307981191569308511399654362169441361554379867268192609131919099032529770749792695389367196809199112358276250540776977693754401478175347837536249115648355598729840991346736367279596394272072742391710680527134453330885464168488718915736068575227322820676405085061768845199845239091598915740855873769759376976676630197709381377318273723273246263926737154566293375004679889129027662432599614894083875022760069713919066976219883434316033768308380067495983524240781149067572468882196132602647082978147600131115638659052780751992619794204034548154453636432849084750389502079002262779667225152108739729655708830532145883092854340142698447586904164062734001347107253154232060456260035022268852545024942285010738419104622108237106846263479742754409360382881263008105800429883205289177166790501056014018534259487583627215095965783442229751433795830286704796097220066388290680454543481219988288673025377680540069013153162542414865808748674655813993762445792870398279260033895405245864799852562453317645334004408604246795118376035996109018891627033360474383457782280163036526680974801368469956685528472472539678617364497766959837218190658397099716969195536742638878329859078376000973461941691853443921328857195072429784094476139035867149061169161729308198693321141497215974862002980724108104837373058360200297272822098064807361986850324681544641585764082886365389474805847925375572792310880897102426783617456511481399635425035219361428370295448828210476801427055010748007081133368952501279968992385083279155865763428385350644821335131154228628264134035461005769405198996908568137604973490244319301124775529129458620548081675433253810078555360918746144167935255177252657838013096883955299588574556053306719356465182682181055474738983551203980543504300492940287369488916828370343522109662718574755610413213213994813190265520494578314899548016053053953205194047397199600710544861239471652628284390695112572267659636549074028293425192829849324977934912808643502517771028839017880707060375715516696360643265298653408771126020023524678495641527524220143583974680612093671718385255977956362851067543071691698887151507785366214786041812682791486368849803455307104356512629913869145225786595166321009712824403490950575531379090698936274349173997119402060290133282133562481021769745926187810933444259332045620046607304693550529596335709127257272388787574111975889674693129489073134017302098144113598261972604058376251802907072568646098829342716438702323391725902315262999800967387272283531124239243426703251424698462151260443962604345986547925710714554636966160502890440858731620837460309121468859734949715816927055584022421407593543453401694931378689604719303163769247745881137232760188175921094126073729190827514109174433607266714894275553255306482413637777391361704900027183137143080777776329783692360990532711969410164150105546808921572733097161590366313823371912428406679037011986306243354325822838862618111394676824939760621479558120442234864140326568835953469319926295017590815504222245653777102026939279660303631609379103873233644656743115979963608651293555983235559474762885987502656002631121816999199171995383647262588363040065497360001220994468372065558551342090573177162687402686295813365057779969670590700155837925393104627101330856960899462862729521460346500669404355519021303037613026264300788943022771072200689323181245576946098484951866210106481557627115724408806719184619177522483466375366945635212568422103240811225245478163612665555756590725654571476545338772825732834082236371633014627671499769625721788858524247579364286688222293434613342003538193083034287523889251747647206674435656363667606963622766629581364879069073463788320837767616237869039291529462470159612252805252355360322713394694231161730434301606150357700726770798273734483851429624767279971585619797826732344228940542748933062954169163963770985912047214974925183138154878970635161237816776068397351480914606943024612579091269857333158045363085810474528822098766980410867425888140432981840980193586876467527931600985876849361567624086325959887531872071238470086235418598247029654092579769743539911592509972424999346319340084264494105772959258531711957683324797252041725282793314690825081717860995578834168973791506186779714592548158679486713819076580820968914205662845731854713521747928357426811326383958996220128995905919799754179275556006767577678832210971458794389842778751981771318634114443224328039385240767961135334936859762592336574744138028848662883716181530994141033307524556937408033473911145359388790056091071346841044264068135652962796005972065323314975058021275665386269518251272182339910002302716894795740358718866460880874633475750774113433778517369442792334548845603116656542865190566328099675326529713777591312598898148575377548938219374924003654512999591184141167810567173108914447551659637154274142329419829570220601483114574471373090327250175228037987822790906709285547103435404382352455866979808176916627577296803650774328253815534601857639248019534152243751114775536941794286681626924276273120515338494281747683063870092900219117435828329012845087749367511377097276434809040886211962283763431446122424355115766118844656001015854770267619754868335027742819531689999218188196721667631635967409648493371641091204706514282984738974134898996277355084688811088463388448749482833359141459584199141771206591005525213207332336960916631323758612782390421661703278225576454922953482212406781067294680650321195826932697774719552377521738674020254845745362166823366034720261362725459684244764491119636287274498141555136556982198192429637560850977530430733530296552264627197670258521672572487353876422471885757416812119591218552043346888907084018481494929057218690955987199881572696803685168600231444521180943279626431032247221835731126344305347038379275531840932591677250355046672035335602644443736489712743461620201068500515953779669803302144883564999678054310217653865019806619010880252404202486584291718221839580995449943292608660008084895041675391038255327201285730602751059982524582968877382765980417801897001133789244818171964305021223946087914921923567841440164094595843287758822471746826106963980062484995665619755816303948389086547267308818893815045639923432974133102594629914661334362798324267345458200667527617783164080213077362151728813726160812316690460845258967661017726452465524578705876809413814000577350981991190387491730728044243699310894247763612110143968518726719786445636231831263059981376181938755369574038736280142070922502139744003386515591887564033993634646242932021050054825489554104834268155929474931239277968157404655355633696082754779056862897816398779457397042676872120955812001503056003241230946925287052358024057812911719039867647708725781906985078415390582304961884906947589853492941725268161662110318636175566089788562344164618181168676477704846081209831572631153619478048334247125144053736507114392157799895573884454775204186744236115817736383842724593991538249032483045325062202772230853961696012104674778749984091167623219480805137075901196565566818027571179145445635667694136315608773335499548898963992485567494770000479452952454617518283203573437222785193879268158031839058454449168558535745035669637505882489878827641638841319458345625069415956344463751798937742786149095654764290336800172218342645117943564475103323714801469680514968887128371965767386987602868664494492777956553563999528973657949241142242661559481307848793417667615898053778572172318883958990707302366442762255340209934467562564498120399235195269485107055209799832813727254608292403049939096116995599097653459071968134538472247202061994477002634126470292409138066586828933413868101151914858954515938771613049986191500629426094689137085601335420707985010893001604941060042390852335258225837603836614059824980282944162821695731547747560643662217657925370705198068613577432302956930898642980809875994568003814705791790102906633146891087604675731650105794712884675884490371354105452415484656299417025150931391772390969569773997598033781461503460187621995352114796210973894676642488416022391149936149968523201007557357899058067378351502336884398820911736777195812861553646748284492542452817366661840367607104533349982753097806209533414379028063678946315172732616384604393818373754655473678981697692988313963774097018985716658496246976354611951908905637623975773840747527930932321915713539272551567032032633863744677958394827057606289592842069775566010099318157588211813733827907457403042853858765493003661628867330725277873502249804279278960463122025186113219654630309397045780103674923758851938730026752944103162056311645890167379356591229582835816525328800346616374054973668874298502660857474545902277261381117336809038638463993108249233108671410154094454125484490075828974841347969704527613596068079191296372774444942932312496665362571274367886235794188784669068003766563485071663424299564634480411406619752183476544617294110215687218624806191014519946969723927311882694730619575660176889306139170598384854463020207492174070710190561714828127570428058744290953266158644200834750350987231932634703318970714516699842153858668569298383480938360063713415371325832870402684841837871418620935008889015341187302075167269801980523658632532465071386128579440872129058819123519644145790091182322812087012675913243952529887422005132910537911442622983469589693874450264570356344244212168925568590101216401031629343084137194048383765898322923026868205531560635347791676145429981452884301895217838492957256936908871721803775471368885434613844652374840330417557212436103327664599039867893900986955707186124921742140451188579623763723480205203100011195289483933080839561761959398014930898857494039557062302827600005780751537315878133665569582522378464630171959375684078093684288706585710413815769786435028022667732905399602270149763461870197991147176137092595788172167364113127572854923272594786497059810468496023521517037746449673490338403563128752365785039920331915821489287346407579625292227094484191386185367564874967063533006057569780413958162934105019904629034715899010828902786714973479177054911786814076588062442895458926381614330583509609670567989260960449537199010985589853869950287903561400402757824701863981440708762882007206336610205466360882353287580574655439368394731582529721036354457138225614385193606121016217719043083894603370516096018821758306735965282101749766016660345377707078480064695842739156381145546169504122740808364644223853474406523173705203163773613404680952450331682475191405245183376602108520205243585558167782386135480771282170604603964533352471929114499552291275894805966410534929461221369897215890814187446791863958443667652558387190889077794212063334906050475384812861798275261747764044839996530435832187742846842251414939062005296152472241325141485080068240276163276990016094441425601744789868573737531249428351756281070553908394490811121414965249224448585329802505096192561919843500733066472809766269675425839668938543094723784167055921374872109017291890547266064499084045091886767585756796922553496932708231166155685448240475049430067258111846736430481963975404443244243436679026887143993070867439738639833953386235283901356733337744551403906544598579802688712731004643371130712174623500370136991099127471596856202266845115994057591209127305800204527066117123648041940199867207887421456834571811498652973347800807395005739860326742623666567782003336577736307758994398285079648348764863293237729379712450706296757002249606948065723379912516442973361398728823469507283655640217579079186398332646804142213706039522345408533636893878888086695817433165180060608434274437305781396325370419258886459230884447402318431191086323233863769305671162602962391099305134131154316794061233452877347630382613306830346097844658354642180825333278890699334948972145965369670719501944553817107364111806908205862299000530462072560316206259839445499577793262957557030379841636008773929079722769100418942040569011809423744365819820017828710094753347500274915088156773235481659331182117461750056979576394383222368164209678174384976641303987200963433090657088976122629114917845625872984472803772388268886866095414849929098426855481680649007999012122937658194310196283546203977250038758241782216492462372470732359660481077824260663289069833598396781416597751192423396024898806450576531789239567205814398501592203847503792707242157754462392179798202357815754971103432158085358025120539024010962336757288780270123391536732444500045876707281007541687195324729750444022154473962920165269420073746220848389449634574926453385776731269386518976648073551729906417181963016196642971280419083569769488524245840815092994463607384209283374538952084321492882206608211828489109981487786522419610984042914477581340245804142432780544534714059047757147853054198192064475967797726276510394939696366922996177368303315250621343415887426815423687232294968523213215372636872828545283800408733178479999943534779384023166705842158092963538171113698868382621432872723684391315329136698226756193292127734508080088451173547671303828506239214815929624496286536250363522987532829740995551141172662939286973054576458172201633039578002547808928760900298725167180487684167646533053770145230522291446944287680407008923076837043954968976738640934553565027407830389965566741400952145939212513860160483013927178826578126635778884723373925608818388654975419561039460456035005493807164478400002022672096997347637501072641893776824992187538072153799054864478341529311104081501284137247539477782866897772887782055513013363854301035025186501442470959082099900123476012579375414730865124999845997278157062407556128248186745526002317684884562323410564217951820012939858843251416005900014842948310831286925157106966900947489555253099510370569619170444382310083603984367685886798564228385324870915022798600976299799324768588726742377267839448007420937017418683158706215739803824681422498852867160839817283840844525199325247910059091440239499653503562307920472313995092270185351051359382415507407713190345828977812894377465773502196713258557770652236354770451115204359511138055737107678593393094631776013248380652563800772222699448783612238771469944215949750905129530945537316551992636609724844972975832968960772785034912991670797434407057161047675606591886113265348503444093774191757885307686976641575105096388824256119874805977661986884561850474420970285161701261769082607861527744287721996356369719803747815553323195891148697321330809920478236266241295292578069259064540050042711749604051135673718645703301676013219416894786055279074541655102274244602066730552548594499298410070513610033291926984268426666920293087289153723183543245363102052537617088705642592529519044093873512038100970782123117534666489995592533639880932451006545683283640564819560669179437492810744124123110444603934723417680289373994572506288546080977366742411718562667456037745794675682734299412421316518942652197016796176637849920323154323769367760260596608084650242303411988506060477570934475736382690653081262358594754439430803576684283201141181356666979400995604544148582212119733473740825877326372519535793649550276692293234908611120300886595155051357060633514916785071063134771045302895423260333865092330260113592873767577523673699975808659063385999085024908836878208722592438108567290422737377000711792676102794150301786818807533140068747125801285696051831885507540036201851311398722488281030129013267458194301886001622963465954869399902902644882148351663702974997758590368961327520238763161711927642362996454866390533781288115524149558770145536170428957948237414172528467436483140066999679610922042571984920830039488964735837200589568573699035524956228287922627731578752757308905384433340528376123427455799706507659254492825090576211002081259282435345836593522914268368556713681297892311142082932283109649681913268287838725576344789211702396663478847554181106521893579887910737763238903616751885832284226766511825271077738240593209397571333563902155215277495494944721783950541527879556249856456736422498443759212146406356570891960744719673393985913521643090428878726525971252099252864919674337387567588788660187411609041602674422950193799441788289587965322144007760842032531274582720052144105345104753359369151747917725279146942132667271464319445743037848428857608472756179223176999949936759431971454222109283137720323204384301095690507008275146493565780319858724463097317260384939115570553782649915209183645182969630657734573846338465273367662223567219476590069889234231876067011488457797007640230872347865351977162060426520404047317906319907235279262290126168824883801408331730112995148907077361867146425169997026396687706014967418219089016200112194836947182648447757551694472748513863157939995809737271770668144451342613204791129036243922916421083888164113868952804125433414125964243314307391253422980424615391015088079407971004929799691386192782668941220915166254010050715922028323821089864639037055302727554727171969757655236650247142179603520938407856072667485406710079953078412102771177540465759379610968245723440601597629403577021875253351733560939815444027571933883860345626379946249337353687674908241895671829594986668993559120849925483544519533924169475555167003994277821365085820237961113336511192650284047780886157522676857219900031843804800411624500922784425772911225447151505392161001932840326149562457877701459867068076133974736164559149725525185748509744566338365346332897341898533204884616899426742866990266756656465388604708276042545953925149266309855676518377510078648953410129966927445564570425452026722043034458850781221253408428227572376991146273408296384518674569835559803983494902384321325692603285308225591226072878929596787387412025184012599305703231196956379069225979018184905211115542896885177357767861135519674183991027039284140898417662698559678703298796994342710895556879096997865384842450406752029982471600105552773859922832106897448905963270242856319891032082307917348870686243824858968938403678194697714323907192153542986477615710631384663928381632304436636855617531820915531527515141779146717192033657275316160678923883850743209416787824420643021499871341285638818475510826026834119423105537316902588492702022563782226922272235225930213798229839435801831392602636430016626391866460719623615819722054135825358800142443663925699413613497424738933634377885333928345185838977006940695962168464106608270567493533115418332815223838764526308124733739513319384267052111844616359026621398141605289788591555189246348619538194695312510602763574279375850335326861896743695648233094608586069219958091391476516442407700214167556719114643805153892283512991628773237059396392046031270438431840761082826948179416608305117573502176743976417076219876784141042570618259473257755994773896008528286734114508413465118772646629272355731866507985564380997466322406895462587975184032193455861989741519820603852272518585756207611481051087330770204452650113543098571481177883773942439256490599395119760536380715306250576354461563852955526550773616401863834549465793007831669434923381796392938662840403807444174839160607819668580552049264138385578437413294136709074283788725753458554253918698118184030903857842996361733654187543503679629997658516950705186981658734306253648572575028802077805206169329499816112006807108961197633563424087421567267992742634670202781997415896386665759047841385248371535119669557931921516056404768761329595569279329456811459792133398613212804085549621661660305191727885487369202028866413437670079240040337033853607404858928858121953838404097751264837287839577499725568961715361205795380765692019903577456730827249236235027835920226996644328704152785233112444544851246589674732377169089662376844053530089963680495455134621848526736025319013772173194922325060249891650748132380665775229573460071865586574567779757903781211200221315514967869907208225439591317734538782625752435356358597935146602307362982394204958009640097589434316709199662360987893577910056357982313051093311483733232668411784271782169871287746042171298653273762496484838925404579549669748102302680313805872615199611634871297852258508166736407213148278420103858675123213420028751649821255902045008394186828007818021199326864963357511141865341341710275856483016119585644900637534220364438391400533296117685921898147297838725166255396163485420053678056478930054361140716953107296129642093064685539363523140401674353632406639109576913950288828452409114881365236292495664701439537332222952670438728284056266785711416499940520450251077777889098217654417850311877695092736130532764983268058874011103022762210570497647969298056028776204980581308665144265805088253215445062458128004224291979391339850797132692380197644411003959954739557243632496461015456016967875234056033266116328304781902090359153244170173249981041537068780728361913848542777147884946152096427358739446998388529458952946630629671778259515521742799228191627380468659471345352402714016830098393662490864353068700539923115641171841345606675774556476559530048641477697847485323849037430728171163114031124155776457693356272698202111809018013952558749184764985658632050825563629540236767149432741308547445418748276579060731098644956865700295396576893256272050650774408116826264932926346297895914927315938959199437071991456426747891535302333294824320884493553320242746639919511757051217746881043302674083590813957022045624226910035426067959486679628258088430619568285365961986103690001948154473363997274594616416241192521733679543577804827311358479924079069580271881934203351905973645459951709469230242739970026886162726307646568681960670424258003333196834027592173108968258829605509657142043849303246962058846278875424738163942011828390668459240969593417541161480182403317969428306290003402820911001905263945736342706444962164769325500714370517161673387476636540229721805450953728849016524918875338567827581687075527558857920522188123500312376335387656827583876906410962431145910819703395952982125486679598226179988569386652120030018069099854761634561153969843423493547284110730917503155584267344236966498896721079262206453558496492519640670885761481907812661153132465041368695441995281096641606548244939250450429822401461424292727098548104716604241828601511599477391222250014374957343546004626221023039679772300855805380099449863411689468128661860238039820842269655261671730818395187721336005361461495340881710731361333114319782918114898129130298842632037443584362039518240714775826572580993202287076924023324113021762725428793154055783035560349224379474343396497432332568367578004349969315918823194040972777472954625536128203322899964475216286788285522237994840414764636873219755642988733514339997034388867537961984568944094705074891133880651978598823865861004238524013076772237191595511759513752434180070286896882714493573344668275105545298092149058985423665477786673265454533001947964021325220685127929572192531099493785954065489324236099701326207119970279078370997279089079757036326247835679458686468976132072242984349549569651428554916470739418596675214757232334918079388503930095233776040295170295923695086647013163576515969576077136441503652327483414071986376708288732738221632976855786145506390965512624408749248928458064065674445390986527133155054963008097941559500911144852144084554234403233164852933166967415206361849272205923626580586308680004919651776858208384469966036190003977421835285297111693298365296349511071309596041479787638641472910577015679565564817329554776006253857112361483681616984299986123860490682244129905872739408739749100533094054253691109073889191382019618345102332070168109045869730416528519293764471781371333623068093914311805574593454762423163983235653716527757321939143129374945507912670774749666910033085550451457520865829530082060282160739060591305381764182598534369665485108118921282852410970028922842200773618970614775652078713479902402286847180174712569187116359000263370125112866990717066181828797269473601492705669764879118300516124684397884648466566662446560488484826059941970001120289169799557109396096469103307368251062124603825744929796686918715251239165893115362582133301208770566622784957588440447274250895572043485589239465266563011368022592011546187219560122282887554261500991304308647468471794595097975499060289553794644693259165079322468699347559059461955754487105766845051782806861684784434391773369490734105535027735071945497886573645454332874452037484066267319960114945334531590582201100375211534790462990908869820012675060373844614946079096687334043609526342942658038020756290572974974659379445836634930902515839759538135856000235765112634816229694778726777783642353260026782247979945538270678840668041379223057428300524108986974483554885377202705937935722123390929460905107468568142918201911566596394114486429819356324993797359936329373472344640864283697264751647107200451717432086918688289143943908887244976899142952521842841007601338603598640669717211238026098039694571847649795293459137447316466962062964512261742331079447123182010700119039406654282938798395960867522855913571981374254122149938388050019553943214350035638073408438518764494275101051706278108999269822278845518083203290112725349479130102766039220007208467742588299327888204807613029406792522679757864669154743001870770772343841019226601473816932241121820562232054383384509518886378937196992611661958490428775038352328841809370941486244797000230250765675993455355079046071670153382396724126096461626858899932972457722822132612413775584565813538907023916217323744049729655734746624859912375333638363179855880410489035347208814945363055993287394789693557188192771844036769586757681537581858169240465124440041619462632280701081943316401093066039879724411152260956050238620715427925484209170531018793164610940773306915761832506130487727024609575051275547937038473904204790994506572953032112595748125030134704868283499380146855469892855491700928059482324374157158771116646668617266344533748807487915720241802997836913566656918379367852940064076697511517943672730094813788016832099583294712151046717017791160805728903591082503658254923894112804953830682271017598370903978569973437530190710134322829459136707200040266935658130732019884845528608132567222443341631794952704230757451195037687520462958402245985069058847545692894301633878355802892707111146918827533325617452823815189391967715695621134564321016152222109729707482659931728232342570718486341358192472715795336385565716816077698684804200691163944244575890165863082766272685815424327359898624509679261148939910702251303752511945028240292806355235980096204560296488701017438205170278179175658235028281229568468702926886786306283037577049434425786208491801433414457475805463606701477853788993206903797028568902175169687478899911711297747526844024329291237098351952998541495425910869539446219790610252298700705344292287461822891372049643391584551662722441728769943993110689407351565915435268415541845905418198032493635525600503099243250308872912584185613087694734691173397295011369032094164981561429672295104964511503102677339446386197363258114826983772629973080655809495766204549111908449374640121903608533754052357648287338257238476399363449005782123406020140402588940675321862098671796829865804407217399540223175618752976672994415994401200151442927381726526328884496518098055916555094397173769300624058437768408459239738059870278697539889913796893330976786260257360495411525673898426145974696233753050306584799577953669533691554541561051778706722074077857832185823810310149754754489652169035901446542207911910758949914585031999975460947110858732519800931302909721732890220403937574908035161801315316419149306939633213097673370881311535756610067165084953416008755279128478697688518291229196164610083972571098680783328732556181473598795793410533635100234172892128764015745164455305356963674414126153755498344158435907431016138237086282919176425280198763722278993608220592024772725356699100882068176014858202639087894638888799541884592213870449269073162378562467929808035685899880578327062271068851240563320388356892238296289168904270027472571808894525146130797066733638107661464431370577235519393360037803721131235380173040899106929152661667226329864146902360335563877990318417329853033079579985563269840211812457093977388569235218305961660370991908606399818556736803727323091560817292844435190041836271290551703869101580596937233529411929218357412312870344541570237923417801816438001091117666827784406113438180556148777761428074185151267188405004589622874251941363836996711410773794366486068415408912434239403980434150215648440712582260698894128885091980639157005511434423379446673198442992583681568141502661450975649159223234466383831929360178036015091224708565087227361801791241671201844797304402919248291176575343316454597925818169163518821070109398698793852246028790485067492356181567766767897757767607919368874643876343743377540369488304612095101953762095365958767752741840333185751312770568198121466890229652206122306703584564816148327943653703660302435586434797052751244385624612375757329202246948751494481352727190228926939038141713999864002921059030312520259263784567929870319708242528798424953429059942126641437704571407334461262980870557509986494237364274267539740290376480391415899482997145972192614222947680326517241813993892274334001819364577832541213042794505184962195914201465828783435419540404740763329379444498114414062073086022331288170569812518891702855164922707496399182701836571039639222990516504143380149268571897697028777813869086038276428822786533341955414581425896112936138653951803905178170402832494113292457920946906701569772914508301338930137150195963265471506982553542705537006149486625542499136558959381009588751714264888966524146551547140529815712381724430628441265918956950796916760048750154592153654277327303440684952527911371726968605113758981306244514086947743868994273919584685619215271506770537813317397928546147893902097096491732420418673524771941214662766452594515770401360516940664620456143067375931603097953365057832020436396723934562024128526668211727527917996487488036370748014517271058394222361086331957173927396394057744979511227686821995440370897028081194053184961908375550115157027734812607783750469861235143225514591510617742078154714213880940892715690079512670864806420945124386680158049505452152035263571259573853500595189293887198070791737159168355329247054694112834210080624809966235562331887667638709823623639815819428013178402911767030609179305356531862669860824880941004216111058365718036004927032351874164295072877062068454545926402483758549177100482840198916409478839227379104234765243249827107004135019426005679114619499236538531045163572255063545667346827358985098335397539013817954798394929461058483159646568893302289468557463703881949951137224605506117148318023907404572226634737626817623129239273851897294766921737235521001414138307267854507761282206078781189740414596497016998684645229038916133534124837150498573201250525617912201963793852833547549715238904892731181579186509302835122551984222845421268635337867685517386354258088987933715192701999821958906403064835740848599326133815430973678826679405285077676214582218421950329179698177896808578162565546908733774504903019094964086008052304866996873403305502639622631625288261227482778071956323855051994666033847900758770349836012718724851605273430853109476735680527689540340719954983503982311728140383474257377078642674470887489505224891072043274316204369374085710569264117736562430028796222636869449439759861087481192881241707548664844278146362511590946859403535790758698111013304174563884193176689798509910478707083658832886290965718845975863667855663974731723733818502752822443601757156612587364550356446692576453350815122886417896795225068960926485005755339994597784134543198505407265386707661172885920785160269694810820578912445557789867860951477001084215648669519239815797166712349617126987901571201984816736127875136818667558813132681735413112187302699066107978127769859058881703997431603593848637677596492838784467424114731918970118482456502776130379229086755519093139577087324951224091832425226504168244196021230493204826159650703246124538307629361881699492477231700968633828025457771296208342269405469931938950379605596230584302735303647761613703318372156461730996032172657033426037390677717076129124520202829463543421474014109603199158688541351151125211696940349426723547500568005601187393003831530065249104788380586144772352523248842478841431512479534381959601561804386945548707961819167590786262704518245471182510288794608053654555139695337775688709058320691057890822390173171271177611880449525484417197367973351374067808644918074777027063028505457165666916537977897079998883176723411406006254856412376816621268388166932016312830902201418619876443934757804671925083797555036235807733033603265003314617234304856297002626223340067084196625051235586404418489380537692920663745983554435740937361910722152867025822571673975165321025894996825567842189463414535923139749661949705710475861407354046057211571776602308303487015001743942125054022436132084102594018352544862934459218875132198580264965290060884413832214472981836005121646898370702115792366143927383256252604657701493713511702804898898790053921752499140797644107640384519336676912591513530038883797079219335518737993009308364937470025793206478402477048069425507958378536526526500416426657048583459137703708023111905565867649835595394108052304869605071300236622647688106532591549285976034060936429280021053372769483236717023050138244041658104415665948775061985305072785622985430239442306565708576219721517043063855152555089012207663723976901276459760730741620986871008294577215769485659466605623056754022860009017407831221871465157177621164513495577405743811487987515452202324760840321387560611427537327559928951714166868787147651995911509953867014148023610490877549294528119575520580475596351604270344645250567265026578024237656844309922543934053787191411389129875341837286704122593132713962791958495556402899379293534439449043849526554137723320968674379080468906997685614712247377052033315156378432762374901415341911016663556581017207719117901382542319970723658597662998826641927348828065222770369263414575408961926940716008273892058330396573021996593266368249035677218213832964420970173890147550102121934643396936279596058475324817447262107228797049116518382056146198000553584454639059140133225838244072978163340959207838016477040771700879407473714990632247154069282870314790659382089935809317483966943062574593507349119852092834818052254548160397366501564575202718984277699976098454866040328622699646532649951211345505530410917211963395558989127966265369256981947060008575082851528551317336394364778519753530219889178461679760252255077121475272036830111660073383756412432598800211514295870914691511967975388759728985373273128793933308430720884809872258914401341404668903678920574602864960400957636291289687722995296236766981974861277215219025532850847835718162919689749173318014414270340916685976217198208477633845454715991862174280698467734277815522707904936194246680124458132429188913824476890783810397228631793447807916061649623040693175781270365772441716405981690587623005277231724441311207999129407198480289251883894470495575464071206838311365701071920485774550460360296607286864042677726088090143445189033285062008349081228252645749941493971095025343250075774699269172503552757512384281722931681093160567148396371019821904811807050063959195894045006296522230672916277723178720434686022024663613410639755393897931277129021038142194095479065574502272379657303690140360074476923423632107627240648096996333749979081649054149872172770433477419100903165630786705729668493610546002900334672388317524756292560743620531351765753335436329822213356920854242812526209935649701613066200276877706261861993387904603279199703660082114966188610186617672200549641265255378272382019480960582897973032184599944294319980258599159194334368754733342427578839657160733345301091732595304607322124905441942521453486607154942686202671433536750485406077606285735495963262739661050640789250262469488473095040584006781341230408463182883083707181053083401163287230470578065959857584682929656401159226254200812879609921469465830386584076901109117691510656441503873025292576034108651000300575193552560596967734414957152409368127462542669970513616464244711522824446559441880815195059985888127195057652200260821654462750171918114354549190842836742845694777957115877950468422258690603560741630691643084735699192846255812554591052741849350960068854632323857430622951051399823227688407904983055646902971623787377864472030919953923793722985857310544915739860267269160952972320612905277177241926591167258443058484430970802965445922220084283039485010474817365545861111301978927656143460581705376896237667022551716273366982095746405352147559237651240341126813894919873240980664882718169264069969631067506759740788122089323865022200922755237956828239072290828368449782306528525733661486703582850258982207526148594887034484228427885743937703349859527634484067275333367316065790280003783062639839677485954470603995200511420231851929976443535445545563986586024158216666658328738160281196972709986737282320070095670340798617511742006070450592144798996810181056125333185633235591492997983909640354771416737100251326504985139594929824348372016780795915057799507435475710191819931126590161790356511842909762615674546709226366536241325670461250022055108551681171471977890438797388508586828468469834981413965881661036285208903986303652834805697469903394241574521205208237865538381259585526529259322324529666234536663170048042592788454831328827083377966045718411102911232959287162565361634268952913621550199482866088965143278990008217145163189734507329860307243274051881427185002390316244994993414930341940980936595405665624763439856099637317093260762606177198736145480624286616748824601086546596351697875578428666754785747035027351021877486044021809354328805824801617092805867870501657155270726551699828811591677852995216076438053560876673046489668604108078623946650779904116508588188579945229280132525618779953873225375147260798031289174064112625751269878220986852344127050762358215151714255070098529177345067633916396628694951547511425530489981683767228473465639993947740840612295239008364611900551643491197554909852412692407158932850423022400025613657071226107094715176068716285163596216699983144250468044846766510711375034015981947638174412625402061636593479619274817105313689774639998834043374065064401508199004806067369609761640010314070139252948782898294396928056162006926005614202679492068819628023832667266304527324351700287714575555286172133883516533920254095827126186910525337767802628373410741591542019073272995556885615489981468765197550563795146658621669753500656731342303837034000418347952438044227280133000751878894126562446054502124208775084708764193044543373114680004892463148350537752889263833784507452549043260008593287734598221887143446249422284960316155975777783238303999392804264754014752193600388718393889349498965363553720208884712898880955786767703923505664134138901668073795314738522976430733672851257610037369838427115455936240006317463499732216435144021136118568595614453378652275687274192225156146423685028239149227823709224520307949299049728378225184709200547618337402519866248034673070360502200595244510811860355956390465980560409258336659082478285869450881129784331507497089521464082783337594357850834193948873177265284653129734570594650342660175469253619620982127788220394780132314426267179085290496644171415073432888981876643173695220605613477214182517828488196935964885293355036512057051348754632739550641179584914709855100401773603260529315923713932480629749470851315427433486228308340106071436061910616893660690480943176349026207768224018823899392101068781591715965382145844308323098837809685137634298439519937806651897920799528939849416986863432551107859960733733930341676326288819809581849899127508335380713938886767896772579435837543883851142241867911793126500385481269620695760988412494129924666896120223853995376961505720285094121199366187903866751154831487871380861473581002641864986665435480266752376264413552004956251419241553561180219234800391414563297522721805766138310962387889615641596227683457415546864517087927645224428269406882158734722955690345042480196391609189916738592226560484703660797728161797404191103834788311918406847147984089021521732730010838232228340595364422036641712266517456987587786320514779157597771749075357704451126589927626374422908008236613622211016738287246431655467870129435422206430815333956473279429204052545961514737744917343558941368801768667732004399671416542057032893072000634391568389665650758397421217165987464120568752762714623151920167817369393941357336464031248783639968087462717079349146400057230865720923130466174757956366424587918348525472364430024610758960776527770709680585247615330961865548516892222286874281317583783711789736894962409103498297312659129864764121588943560279696573215372406805959784591355507742101609397670426706546838339099370833940873022061978550086581925767409879114127794371078575365948856208158174971432593284940154902963006336764241022750808030130705243802682039469786740001437375703071650843421310079747483711480718581450931642210378589700037795499635265691665361161936979820058665780478173052270441801218816811194324088265618598393718026170800755462422322096904479240973192603348294132089524165278873939027356937963827508803115005668858225594083413834571789923020908981492740907327045519667461927445689888543277392173303253732233750388353242018451996432192937008498050757441915389870767553224175700770139309893396155404436598342157690819784179867435975230480107960650411021282035218883293311833690157423542091828480387613757308637933666011021746089598438945960224907369558164436508103587642842457789129872391938290827449357371316100557158011202259874917682652542245408461559577424766571110384957238938690476744107975439923435219228203748340837046574534017570251407553092263911409951896943954520756655625902896651892820479997390983377295353366994689692667290783877566849357299442036650774057565111140206548352060903684431632963996343200481874010558638161368702616143808842585876977321888180416239768210788613884933111048574387679718296025874450145239248863222068487965857339393885615918535703242457341003748588424160119115011716818732960326149256006781179355305380209474822494822477952390807074693294109016173861801514054670189588553376067698361609927268172292731407915117220733439118539870282536218704213942077339848554385396312982084750767547110695488359470014551790975079298606998288073978086518383148894106083306183958739667163758416347957356438495311528022924763901419798473974512135881949206363370595461733858494091791028438940022436419957838279672167841565072442456481809038559119249024600150948440110778517160134270783883082857017646991610220726291003337762237330414892424761421630331675396730544354766340087049705136506858604313972564351174768884291857947540060482560583971953344823895969933456236859486409817686903371049595061558655072848141069713312555577574344665714038796612276204789168566319804012533376147335727642519508236139005888209154687294571730895829773554275914342957480815716608152112671097412142512613311268090503915957996820520047641623655322956452691585889600335048658951745921883932990001395359589801073612581067007651894781223565629531712968238662201551141609222126684239915348403488998184506293270086537168146282270857134472641098408746136821399409219388110975130867715428299495045555221453763329091286056600422971837408441412714851452267078880789421255203471715673067076849607567471630949829796852417657095253963703576195208942259407440626441277999641397525095556216489048855374847520519696595800251652043421217035857255250406142037185738533289266046858205256334107076652345459827175751917127371826634148733783413177408087915998798893530852863304305404413816073570107244387059856311153775218591978748422254404104701366945270440010460410938652898989730764757528703300912375763654137119259512413960208480925219398313514741076745541771305252832835397542889639896199747655442733196903907048087130262360879923895026554845395184269231225387805869824233255111603743465038364482202808209403480899491273358602300577185536406422465649713490306098464116316720413409779359205214910178609366248790574389531822318689457158526399747698179980722557387368538371967071675715786044472654955041135347583393908961046053095583997543361623263773267230400073779914347486954058362670540597929390785730150573324285683599929272236417638185516603619472420016602953816049603284673755865729172131220504809809742829190267250064825242306460715805647137965037805061069200127773582135901077867783573298929170958024646424719144634845937590880056308411022753764802534386555388942909433898134800202288043919027819460399953850186091198952542853226180470590008529854055189920772610257832981927622841099371747820566138920832305022128172159459790030915909571266891951564197349515326132836324612875512642284535474791160583831049820867408164594886593314979955239425227339226132830394671038994000216796281418863091576932475303564596954026394730449597099976172765917506475883126808356783953121144514166441395722529804931162245159726542884699608778616045057447174399739680414392546511036772818502405302048673992791974864238121322788214308197011784537301519586757062445288590776012395746459783843811630214333828624175145425195160391061495726951285711201263936534458606770630426804550238275516564859984872174704865027848521188031065563167189144628577449568549323515687931438379268669321301049657664657796075937507458814278172001778953417528372820409196145823301385154806661473964942304981732655531083097283552147088785641615977987368454532473583437497270994658784531825637052827755822732228222396409374981853979429981758952193530544782439504624758571794714600146773293013839091284998320241817071750647627736187387525463027535834883991641729820562690835592183565635615197909428237441250086033037914408723625603224235805388597291158185804787853735014555795436802908812413269447306566029850637991000419546996147425313321906284213616460584029660593881715282016919192029650899671704599097902994240480832978383702671708095736801521215346312663808192834849604340124006898725084054229235663946318381996261500263536966268321489398949250692001525853076201256528829899493154650745005307038930237490918644553909215328207634439341073035045282922330928023912166692027268407407786645853477208333524462013643243867935797677089154661684827830018792439959865422410940809002877038707778434518098931984519558706575910413178530979143953463652971244847833493565769322972773504017264793630682857302590311575624335698699550659041699667988425266372191687967374673909263746117491227142004725341457473538803247796413331412989815861353206644965869015556767208184618042509312712798085355713969088968201961355575376332726919540548533251802071492205432853747712391971135517159761965381005778012927357860662997701224722345613718237601820397921684344989146930295017039466652020204280563978353865657811354975604691753337743688517291432753122602162602971570959208527056143414553020518417513228885699662300140256443014402819147248892465781463332130459588950479530990043249611926863773040049376876014321149288236843042109281201701059920251034424294269333678029854597049583559770306407519398889419110899544834012131505783795302368163266658428191367661577751439007096642097141558633568011479482316933351910927111095026933513459321646219275246616991707106678239892835849887302433207851702313212252657273633215981754092563173038078493193985105943351465586660339139238898036065494307360644421772092436596740927809973130193111884124354791179898002405639726154850248103899716555711456601118951865847535098899301559511718517659183276959839259836194027498192217961590763284990867230628985586513322450413272870266612759243743201045516277495557032674975515092013749779654662254264126323454317297424190614358387730607586521661435082969900002262245042746623435098634334899513230326037277465447294049917190825874171517715153328085490553834289545986953435109727174948941209184172223012857441726738328042625061018016560745744283873502071946915338610594207884033898754155652480100707167733528671615418029069907974057490005824513864321494939768267103052674342388235541578766414818415081228974044623938507894534414153103320833624365220625603913554692276103151162850286423021268000580553265073055656959972940227006395070955390047850726934991555750316715541067189140176772445034739491691574767466860838608767488735827638278199914214574912877745590346483968897669116618151003193688700876444535922308331700328840197022495788333788401972289365591800940724607744125061607095531829019578707172483077898599972727893239017887515645481213196340669207936983993870382039755474526222398913463871707180815978797620528291096958332094178197629798465028488764442927454026130373830147357061910316911389310404943963153088635490613101513455165251683336506551953016510195206173174524173034124240624949242787733235049619443091813890734456953887135410679107360113590308651715493304776283379969599449640600954982183917516158076571239060314777221362630076730234023570215021135808324911941162847454979792200652297091298581200771613385505449790155474581370099515472227080819486630537349146804804970544286315659370406248356857809461315841008749778565214753876872950955350549419664071983999156504141454092597800577719562210708308228630654746450165225063639317399838984475202054282630459057198188347782922998424921759358082566195810129758126564686704260982332701452631423773908634139969268571099624404097002718054298601586568273300435289667072135363636606491310194590592327941023289158268126609624015130377289272819119718631932139729349779207932066142363804842946537721634396656615974759429858749152936255639978563503222715651310675674005307992179012933146743491462339899793836877335961685187486900918929276823530793510032631829619276878812931539328072128187168847796799464347279543919715816292361446610184374657613757218283858877064214090037004476699427031353053155101059519691845443982630279652793511505978367738946145080187873627999090048509671508044245295556276318401423873484482373984150585581671905418387180660547915812816158072967885717167490440091413688334509064223025493027031891227279670188953836826207233306522893137834626686815307587094053110255832802622012939958783256651773548622182750480606104330209837851321840458629736891770584522171770802032958068343137564040261589171688413572208167291456229141915726725137911686411865237457976379308081020268611263701586312601400568120512150890967722913650220839354009828457575563553554232877554838026044330243143088993758353491646449026359392935052429358848771827109970719972308479666512229164075857184440877700482318783546331214116056488581747335149181665384861387044365516696919015981066193181820897569514883443429413306001684779582645771323907837868670876519869916117791739695573905878278798141887746740718889945562045582828813792868529580582813402128042928208669247792022933562156105809710022234220266805983442212621729987677301853273828550002090582322209585497641889160129339726562842400222555695144564031833712420403717577793261756295700773267467844385458766321974218566622645412681903496819604263823935367274462771429975109764383166210382064471203431825816786908701846902087861414857767202102222410806105892538729198053765133696281760004267876210456277328531497873004225561725728878076383347569578098663555039951955483274507960325244005691632122605906114200676541748341066902349907693920959811470361004915784349616822889314059286438774648111203686973417303751036206089294855977623944625742470907883654318000872132014013516943206049993253432339284379510540585781652126249955486842802870442458367869985895933933603395537135355841804257793191963447345731751013974026939852870447539654390206255738274603739217965304704445062447284285639528852034955482765473209671467193578277467906071190139650537954348702544757119850153096564420389506267982066200413960584006994684806478500849457136416851760683931393940828994147444574328969878330141579109524263595251933829723012002215732988699379142301687303153311316857660418811535218419232058906734047263103836155709065322188692272620037971272656646746659359245562775440150873592015969272242963917067800722520655234935048062975481738138437534872638682571480996972143417094630579713973453559249969734394208525490037215684836088123779545040655787972021357905638120521140562038665872568515578873075352379862402953803316004809908803168021094295456031594299032959169470019912380855833107609183787466635450670665260723326674992459089630807102079487317219776370046070513931009556584118043766609063816629809211773049455775362494832018622933985435840174158033815033515699854361925888866463690416207226994498340355303302072029979111709714171038770186176075209309059949788230638002915665169267459664375091100675355064116403209305897763647576163209468538073086163473945223820559945273746263849793168002404257289828390487197662781616829196559522126835055708886466669491689065351412637615618589576362984879005808005013058078785751885410565812556972734023756941100311012361051698809744561523860611995873741846285103350407951747414612154597711283537546391142176895968558409289966686634460616552083245084472341265171289883289660089763911990674628483269684743107536983815432625942453148862595898092304993556060658217687070569704780151729206301051290076112360594921024170632482510827968224687178866563237262718712427370622337177650042291496423404293987395543139200730053553256621730013510325831665448852787862426904893685677614253531567062129340996268694079979907475815463660078510852432147870758801595182740005405066593368195447972463318666254409001160987866874947083175650556666243462706651581944273567460916974929575436829519107759975945779067120989420512516864583575943563576270249733971051612305816029256545939360497954514518074109751701002939986431170749845596781593412547475415790736490740174279870932353268009607727847344948908537788715158804481228816024537224209987536555904172615973448613234411232605397371087682275055758225975672979690983574696596376984651150671619434401994997629395712834515251549971221048308034785856082572090746735742409514499530572166993173376730447002272022385007989448978216236757620081966380115167479430199841035128222316259867059847573216364232489551489225503165852967900474022586993950642920341713715710373035464599459488087232601253704433845548511389715036154383711095580749888676681500667488463523789784845232591973876759118040203671507084788073083767302593253706450623637588045426267447434196358765847503689896445919547672439837503794705074378809706664180317337357812779985412859188538504601610820324104304681784442624189934748492502302503174980721771828146822947803317268658787586991698779634830248913667233580099798891828555022440998036767161443907377684221812397993289586718288599675052854222719143609530517490748071969782839558257753245643604207293732859041338836516516674296963302784697573156872243836690016891214178456935178635799704195283680799261358233779407363442038365180086516589397360589990082688792810926204198863774791542746119862818584246406686165721741596528782545044564935739570206968740646497293646802178613639892851875304971805739806023889557683129971442316419999316238633908397428812856846310577149376768227459359185795291670944209160991449037137084220091538234053839667338819056987306337035456289662803821038021872091144828024245243875925576116557896847444930267384556170785920553113032003079603300052267388450154287462766926091669756831383510775068827899593122144129459067652735191162927415348850379298138198395527361649044684550866598140298761467702174960587302625535331638448571028294114163969473837201867202198182333509607695514638233048879495818483226790287457316918985790444810242518721807783513629652619594913958516137911649487777303876074221777777970223103564874601604418497748181742987119658539808983354873634122722551335292832006778008380623314832327578868577961738368853379073214197977302512723415704975562343741427103214132764858489684155437959487887848026469936661031089842033516261279835936325823248108362503350118523709062666997508253869351027811451587238883782105296712617527567943993221311591338189347939815690707824725018336361108317281542156765656807755686949887326303829482139579287236882681364328085069107193581258545370131391458431161903735063651679911569903869833182232227681954953170716856977827421222616860051992378005038297659397159566876077301897076314680194623046169005476022246968445516808373392553196973134047171950432483302925151471502877524702532393248413923644692986911442494162207534639557506115684622684015706911356841403306829490058041895484759271458803471338968022674894042024761819449068784248963817199713995016535536396378758775336011863551136172581711060390956038980383010419792658263666919615573191724050861859873545036998497936256192254045801014256933193552761426134452125893149269726793444780342154177911081199624365792465255603313451070625074630949378024587917987320783679904196896100669069568114363842539157318062375165075839268070827234338703999117146548523393547373715402166992911356626200654025693592875167474462393997898998617683032326753791082520697469878211749974162138496103027772790628042609299465830263498104884633482607934882030117968293814874524446008946558942717030836252595688200217748709584475646423274499821284685641442085854357792563356464568361574926370138310197787966188715518874294318861606731130179283408165594805390958865933673830004348208072431971946413948366227781496423159497552032300991914300053368588239345130467952152659549818413070719107945634280853766066723151972976895365666192403739676465338713571972240595971877728572683524126348519787201546722255142633068800764084853116332534823614693199899673609763185806900000616869135582733101316521777663052540383442068324323053385668057159063215495713794906776874746823458609650541876600254106628240589163641101792354609878930451567900678560730909375592446182042721768925628794116628423289531956048032585555736611574070256179649953644812981743805814018055519251101299571962486837183509030758216582393311692403787817001125492504490281778706062709601111829698338467482543493166897400661744169962380495051016321475509604638536493830442074517378099835320803245092862608045535869082032088713249296249437894013388254369597292668666297806722131555877363170651725833433405521594463066813251628089069500848481636288191841495732460435195256398002434542230076973773689423586489502792861192198653109606129596362479740306479380828155358204394529197381246411008592946917592944728959077970993660044882354498588042031643791241538822544205278555031025769964956800855345748228238543892989442449109652104459513772427698470423734220366970617383916887842163161189121426624563931406315195145015581594477377457042251498623530398536070355115344481089733959235925655321451583377987942238435308689139379918651728542600601679887083513035124409378692211336255159889421293881477002668219693942626615150957273248536976354056875246599306883832927921819662525062963744661630143286698241061032232698673035139814178827419431910968052197693830661954606135279664946216998272145310015228670197256686915071745135709100820085600356388611643838937226216049451996187571928447170371099008285269235968505674743572376617547064805593861168734009323624654161422679061940042815565372125690999168099192572422342999478869358603803916473315855199260046035066073905104398861776065798988899428412963640527173286471217914661717103538454098145067717002211059073310295988269777295404338692198560398930135257834441801438575856780164324690263473007024092898459982848645687822589863282255495730240066725394311734502414767680441751853424901011992972088159505666140875357872504959022772137216580110399695116054149575817750930763859337197829412241373665692758711781513346261396565006104825508824383602765678213128897482463345153008777075732861988421806504674577437975741747901288121210556459325367039502208073804173822724626834537028501058422103392063316196285527992564010424479879106828595489679645005942880508994282472771809097809302228153803672510989693619156398294687099724113637588460547428972274653003065411440000202555951916578990707736816362991619806143219852629235012634595163642216863556236798809380610185170771252523511873228530736871277080345331828413317399240320360790476073648591728433479863168679698295385800725223823327238526806441377799106352435278401947060676569261521799218053608235741658340328766040881541854588871277893291428642897612708646765558342664495361492633170468037923505725810093836284564088197559018123469637228282244240357098768824751846350749763694847611269379521983961801524445347206387627597089599413720434949583193007521539202981722244355022828762515813237591818531844434321848890457440979277324576931968193868849615419778979029167795998996619750950468795797592677496277851382849135276106534573260444841366707479527228923947538561107592548933998996260787577796010510886693800332997540297234369818345024397854019996213008482570130622761963285838105207668587678507719140465906127259698983969189518645252075512979535444712605042077767677966401860532480957069954947527939630725244472545729006093789223136039882596778144362389499907918522346206474055531043884300055387953808622431916350908291259160426639877526666070846792031049047466027206992206663895294505500898504034480416427940191632772170459664914611401152899074991620579929578274843797773001725598698588688186243810304297964395362445585162230611350420350212671647856249100661638883063132913226328472499504084010879537227470784509368376039445369400270552546909209943978824922920832981021861916258630037326670130123547112177954012835645158247240342146607146338545469368830158446835747409058475251179088229389191734814461607366386265061942158560538726037711917135580458491980450916293631034002448048672045853019712440664821299798740405224841747119937591436441330513906431174419935981833848207571206932267595911964276466584442829556145706897312079462043792588172472181615241494373660319567037603341802345708254290388255219365836981627717889522184161946373410743296543930056387075503923298435164030074893885082104620614451791867618252771165562702095233667655419262766344681504077714786747557058409118405308299407779198866279104444272520222863105823896734805994483766758039867590218561315024726520367419175544528270477121176166068289180321837824393785142579821321587524153538074693367031033124407187460683993270906855751585126691627104381246709979322937232662068493133903426978216741279661937769883784028903162409072816909407803075208881809157583549023861122974371403596503189697656924257824321209681719061854219986903484613759613863110479719527286372843982510072332960454941416537213948441726868049804862238136577196608615316962431064580445822653623024194865199940304743160388277394740697317750054818101134350071724419275372583632583945525000037675162387131504463635610388675563243664303425126754570526345958792711649084449910868597581081597255348210798059864991310087347728120731643698166805469507633668877147342459171837694361490903479461116203614511730135531783182544513488405558277324795190929457937824996184303679697620540439430438188815829353690982409651980413156944830821496992437629951626959381036593925901853180723816651707945168302101147793404810665875425799612524049822545641888440178954402035875772071905687694455195163832916290473498405778288744931972549875472917936399536658940924749271462955730764430522733280682474868250035830972187410313948764309979758772923651448484701536346936901782286015663956753649373353272107080963501669796719164667427112132551998370163133454995503245872580027946799566100725453683874514596270401637673227387448874743122298853790286024719404352587859070470172787646531913855183010426810676312214509293140986895321584698561885554728008970716280055696537594537320701530567690036562510015248252373775747953220817129754702617348235928945061897955980538550943675216139443107161237489729320050690674747037280409590630762677622972859677106329796873923808943156177697213225881203879773572179828667833803068600523643387159721976814837310943562557898390032155688407866306777440256848324922436312633482666029497763551218329106845976527069700346065563355517392090819109268209821372658826527859744091320138433002796735211579129008398826279834749327272798781215442096578100511312966680066016904628271154243866710821747777702253525832617025508106720992967642342110034886281429347706463704201858499540708673830950405515830521676205146498973939387989890776222032343289922453366160217892220137114272130398522049748552482522973330065699876219183739483120992897395345072306538206577966721472791121412396071140807143283250087173125285259112730706571078877247996413249888096544722587342943841074438577824949123232437082203233707057104272768670375187976278174276790398084697350684319284520819612670922645054708829654407249498522614446056190630665327996916731001009988606614212130560593824491779180289817819372957476542012819333542498100185863682739704009887919272470724903304725373246525733421589641058925683603933984802575970153825812369646218025610732281734436175668065129833350716528703543930465178012892675824202123033774149466454975047696115379182805535948683015976855231611970090198869893167535641893859270094325001892265744015991418820139443585226082408415507230061855219053709246605332112184019790332398839669920872173234103874479511627771410830836033366461584335101839144535372657355037252584168653661928902907969031622763401370401885727902120380945168993174628823374463158185124618207726296350862919493284184436669548929139298417646386474523924258724000266749402042304884627011295623782054550676649123336290666848609015889191316188795041891404693557579311899350372029697140571644841099311267830037497409631174708089023110538520113794852158659227366706180907172754890704839244736662478721940329935643617536681608869787377812950339453277529795407265682114587939601369272841585924702074233291928976178737024263869892810086253737008478788218883143445315310551569479262157700996248846075493282042629101594137562541184943028944844866395857684810828059334810250099707667213924997712651461746742814234516520934890376854424700997096509981749407959228942598734349243975621239402714842505893624987140474944617264851683273466371087198723687348434692458554789724515960106443701623595332750622131197161995390678039584162660902383517348444937393249589554246104381131429174267728531008858140689817630897299919978265823073254258741054686685151817204929959956818868720700566658738770591334253186026179549738253223405460619502305109532255876292411038476179596935950017765204809115734272060450332399410105037192724232207237866038574107973700300371739642102076824136197857988065801098009311682542334488489173694954843978883942801084905942828095414062627966925526670011948898372392971450191169931273919304639053393837690003368065954065919530897738304401062130498414053099830844543367372138102918032710587493321951558607709832055337411041388693990153667217008145087508729246838173191008147639160354077962456014286050677345102566724180551865808098636884046611953844594823838446681089241711138987898524558365033900137597006318150981633457844688281487040930893379286340674280252417273564127249105732709192526081614811605982122588062320569424797303949682582089143318573810786580801582077341002913182208709590076453815609292159518931925493348590758749297620470182993699272771174930228992291466614956054477686130417481256038616837239704259191974276956887553008806478945998254184551468828364834612933809627056852528786855294916258124690031690066512598069228829992180202549992210647329046565026700594259190632839912696007206918559494274571443102172839520637215994627529387789989959200798132657367217692940546275529451451093457037438853914790132579445107961565736990132019087356366894497760773414884903784506158064203202129018570687474992393115421439020179405106013611743639221816558994917544389938237985572643400248516147315394038542252586367670094933754738990197587102350056178014648062720157277617651539339089606585099248533205500750184953078166302795217054466146892074055679752636750576966505085419214381099146290844568414734976817895729968286941760165893309243256037862863070200017879969787599957524696874821157125023927223414281368842288918374730080043980145292288506549088386119694617076784108589167492154628850377644783560079083718150360580504719119272059433073789125961421353262686069981540866702450244363449176465321954761581501482721631767923330137505881555426955913021623067081150098570459186690017408306550610879424161827866459649459642452199824858868763756703864337980938994278859027247418909978039070331039851610357875712999328910132798060306449124803521280781628256408771249703660322516332889687711878724391098206977983392385926307040643883190809564009524606132441062657503474240432318258862515687232758600935130830197625783087074022825426563690440872191107584272236682462553726392441034906225113251898129121023838556195485070575668882813335997512814509331231800989616004060453497328106277418515840497336754345706683106029301874539882275506143040236751662896341475294101971613231714179995920414102134888407236599873168728287078339692736104015928711870922738903312724388312556632676718077628613503110079827503322959677272593422563352788139115076447038917785244613771433285447368010567938751228411445025361591069349849162916973749694679424009514714782776380794311969551884982175657201105199136242782120951741988093726891171472992125178416871656347288510738914542848178921229790041239338584215438159469442219073552290148772024132328286090110692320223214113826005740802998790113676983380853961083609948469030425007329192982971316972380788950114344752380111656717083292551871577812350972792278341410000538752048641473196803060567668223308000367039742700607508611681562127174136290568958140997838899829648726414113446928748941369187878603461719430358068276505797405098490578030299826660862768899993201429407082762338865509352413338752233638019630998352163199001206780783042889511568140025354272308477799834239840791334893131076846332321156845043857573433709789877192995040661566652418886385892656174553438549715286871432377414417170316857399242141188298938084236088436671185174541877199520564665549635781236612388386566888860902628153321812253347401437021216243506510897982222731181045113706979674102898601387853010140938003447209591184201497970517210664678011850850134340783330941860223284041888230920656719727689707878830458687949025019267674778782915923443201231361576551604547827213894913896973728852518650704399532872937104127216618931730940789988585237376207551821413538772356203604893743786763581502390108635602261962043055031787099080382186595754639558637610618814257912980065203901496298641749647333598297856585744332401548772943109645192657840711578373094882494691824773407062458665469039060244358665482088786195873523053735306659622853791174829632450403648798907679439817505241953043837363904445255102860081830796256867542011364838148797649250629984058562019401658860858383042048404389208887400100602026594371093837308206401934645437958712133161288411614931521981867782948646123516649719381941617866478040021940334332501795178511824747065270922043595272615868845174283996714963020167273970222412325772082285897287610310799222534654953177738836322266477670382512926642995795476988831265900650701645962360847059582027353670161929970760216536916087415345941833135009792165443566154222104481448417406359832212340849481178539169407657140475806518753107540694459717709845443983817672759149996280551569679048014304612636015158724431659163697667035042156655510708080751716447182200976701204965886033533208787115844008769525261491493921721091163742163064251641410514066063181890539486585542685861545376585676447887642692239922131166253098460322725395246595391161949857184535129962078635797343734485293141226923375715384910013705321804001436237003034647186864479242242126325470843640102943736257775967327355010522390855922299216481448858622409290000165192586363140162947097861855251875628434119266330730022196429147497244985221510098729311396479336695138608407987839960982178962459823349339002444531330773305764358266821434720516844043654952617660070030728294131744597523308321037939302890346703471135152680482149501549071435922229282981324108489761056358163955811922682685672335491656924344607046001089322050414163492845716385436988371086296126742703972671121373975925926420267488122963525838645064685546326356212537220779373386128841637509860180426978744185617593765774141347650075025368228920358900854894388219379204367448044577050546191262393375563623589018849745546048231555283986661259465169693086590070570399137110688721141094342482676014125577486897977640928696181952233270114014372427872533191543851459148379178649871472411769973691637287949133926546661191726666835450301121631861159179120918939487712157997674071752505587835034637768177022432974942973314345183728635294310930245257380697624913088236758429549991731344149727775910059514929227299256875359567211432904252580015778043250426775821513707842230533992365882565573948170624537264409445791088502269584458294001112348997987334753509171296622007883698896771817301701298453020199000330272093097389495705009109575597509266243399472207278179853702770591970534787231118902227292560523003763934968890968507291269293533127529956382282236136029832516836706987874411500745276133163728352558400615049823952398357118727068807277244243874717648445886327140383249051814908413417590008174361264020334655118077465556712997212724336633281534274889180303419151944430283487916032437353387427732593589480303019100258983114361674979158179704954308141718493798393476806547071029813426646667200167364116230988513609805124661761765567187302434811863713897274856766798433468284059769288559274805031753694662318889644120205591275237241777289247467983237402829962468527764630906435229407097198911745460519303636199205514711942070661361717013986056123456472069009412904442048122637780680822887269444877875719121480512730906473133310363535243536889069881069924052677954146587765069828996885878119789951728956473379077517269541792515612663464485206815775438866560275866181476159373816447518425459452660710405365153863190245719703918824990709016898084340756650373360450616213720010451498913784521193071085269240673914377263315618969192109495679065538763308617423662489955678118280493007387879544898023376876864442868616404625799352948101027237156094417122532517107662086231790322290120931963992252859849313401961573488130000725872166133882322954899899585362475627280901902237257804769291618573148654337837102312998841169992669904763381309175200437033024271645321857568387454695881202063544257010556381044841177111198962656785455245444062070790077590730933397169623980618549349291849912406370320501395880786923667440957397532858115584261541756999352388176464609554144982599131674889289295133837553809945864767563893438058010214752389383695246062657950410441984079494519532275498661308447865816981783362468472611107137511621077894212383375793940752943873466868891628886754075494724701210431510954766575832899886843277001514594873190303113175903457139041541350182574530208336365711041580395398809850084911116102064982507477568761712781484216071814046019899148602823485967926396689916045714589992490806244424476212650628819335710797051413538117202207004659361567869378258601436632643360608476777671067300266118830845076038014726038690098050085536951392275050875218351782482834415662786303133913522940966917320031820251000867989270885258808174045256362554069823478000053669586194482923991149282260781017165603105066193289962290487416557786344336455021910960393725279170887377819745704846635482229563010740715906221023407720652645819932279034066566126468083996507321367763180235688373960954145937019549454806076849259867998441642899927311239191473771778719179165508093629573724573677447604926073480364416165859663144264354579876579763553468874013812292827433353659133474166170413714596164512651910727433250130462646730133369898474540177358391710175366251150932834247357183159507536271044047549308498580652898616388488401464048559072009387352526898642180839732269593690038842931815965619480968621570148507194822840835665750220799063284836058524791170907394193374571208089525851254550766369017742047911127830288056268190111207285578058286687557669436758048013650856416104223758897142639615346700970209662387524831331196981097955838743837726579727639507031869389897017641251646527037711575852827512837132263000411374084586924249368809476430451534185179964644103907244033337906676664126887527152613377209726980144256210620800533250786600175516659241918628001481009416188078202094285317815604630961714034061235598804549218716180108174460673505389889124941096481728397724355468138574841449426844163425549735721352048491184782725700132433331588063008378405056046968476687390563577375996719231236128886858848089491621117807382440246257895972423513528259766887733535676076506689751154870312474847548677211596922291821598536814231008212861950068848578688462306841598237843838204997876503973335469179519769797015190763836616759233875059247325965365283185469687850111904967375704603648016637148857567922604108000919108799396373203995183846972046769274559744298663119579733201553945948218397657060027691027328056942334674313053174478824358667795975641416740268900707672922892128038614479778503169343460226988498029992152811004060023990433426711724868263500236310064392106806894503253479521096811220296231533812065281643095089139551843587021386923290868072679091318607190846505704960243659277465834155184519349265217501442393217748103852718291893246623084939341515442852034933198455356099499681434411940822553052650088421535909698394750978453442513995624510410961380286937654633907898754659686428902754895645931349017172100336490150747157618322711016757163876152214445617477642369716476797564528247628163841582692797950782901796094023853159360670016851596182509481130559599183174583904741791260727854639261426341767724229141322993464268066991843172926705293422443158501016460208154364492966715921810016569328065788511026475252440464498221848703666495716570997179969864633335379656078232922966694000662755846908716521384929107060670663006502488227974095270430263821809000872438015448196007240612827250378778057263752487741434337784231927212113995529138123461645318685029871555542658731239690873785941070499843560527081801816614656524082867964125669395591314141953888252030818147948017744227450066381370174797005782720918030633420780041652455027317455099740112136659232491321430417556278549746703090952624349842456584505117713945777849818435747587992562079012549400617667239853248477901032940502565723687866445954761673304670466458735514745042220811005031157384035459232675375083712393516728388280151891408968131402366304194424282526567801251181401130137791033693923771323410126716044712204977499525061041897686234243449325100580862871933419290610875186721487989370800732293611042463880324351597921294544762208297882673553716399147771607251287994528553412808191128384267250920434318537302208419458075118388917496542626314099089757017519179008988950981650281423011636111520203513588184382457246243867547741444350953768566013765275084667591394693107787217734898866174388246814211514335572457779109059496965617321045562422532810348444881575814418598693302600668822648160707659404067196077586198715070922376839512121216105444964159593338635229453304968936619829759825864315747827597590671895529224994381766709143316807008615631011481896093648339896214134426733377973835139740802219995300248050371943879264110375282831643312186144822446821083521503635538610284081277277401417478527883438972506510747537909621852220915261620079136926837491113938841810399172367237734455699201439268038177091239232966525725782823943747115568497093615136576584099492173416711208622829422041863335595504624943441881019933207077454680552059822469376481459820088841834297596204701927950988988139532443968327951142624223066838962017120802717068255053178396806506621607623320763840234283241244594368068350661797361896991300630605346476202114792188930078437651347856065094919891489051113636665663297417995289101830920444436050103382222805365737083575536528001076544598523145652880159632090599989422872975887342151608139860865686039232822827721659767435115298081026148467773719396312215562403074922614744115400910027357955006818273226593292262207783972668193110771261980876370107728823237718484532068373386716132796702194115580397040396614765791414503559351920224954128158671295033033285097081053651980210305111274657338821407828470923137787338515252844338171633144137045120967387513641088499773596086737958741984806416725535630595577573457728274059424664085949843748509082309805895000099011906763724406427278928457042084858381320810560329774834942821229471689277584258760545364983457082048808038841067366783210817344401722374783196518168652855422685124374228927806723291919113464371732309155054435860672216925453674154490109297873083361980521076416462922038796090474058399843609713911712598878936743417565052116461106057777131894944803851625368949347913400494512775418935640758599529034874782525552628006538560846471492065293638591523761425544629112154817173171930047536966342719900583320091492468145800213515268938983075161275794940739729509208609271537938162032218146113391228863722083356638744394821168277654354753551233453255441887649894330878554931584071780095572702917907651168646926267808842982446418697062682613847874674310024190951020142253570143888815946109272520225056259213099940637747296841577910702694711639977357830380414299814557127501132222742223012274405923667032902209438595807830571096305553050267312547646839839846894256878767260381287066395418319767991116946760518959121737919793442773990037240709679917419329065442223244851799452963584397534513475239783562121258913078292672009440815146096755781135360976887954012705026762036455578004165352840458569232017736777923906486219780400455738450451207514449793684602448733138969500694522030702096067987841121841754043798392187205568727894079046473309457038043232048756573597238991033426796432576068392885479686600794990683891697455337599748557334018536282197593905517490655547885801111741355840327491207888919228502456451894681190079932332756416490995918912254169411989979899648572301025430139905595840127283323695489810879991711023176153515246976180674675408024144183464727158412582041721972290909655086256469793424242455147979684353986643624608647924148259940855595867894057237175806738483215973550429358195671333026015683744299346799909985591628733902318990103529324619320332201852346335082468385744174804111028803313858937767587843564143039161360034759056609224642618260606130162692245878259882956515343885023614843809958871717595229459721296192347600816048257233821742406655011358062047949202236738884710028094054221661879119479316626193770164327830586938372061982405877343053137948345357961742300954311339292703741880305152558053240730894021421485239707381673369094221409059423531207316789367086730108924086202319596922436589614266196699976802873749671821014300266548676480954628608403415991370420092543128677218522011446696718553955199583620525919223994564858336066158402924028735816713562268446107548419405498611011904524225661900113979777966896968533336430968203762016988151584840753301605797529847423915573022487534762719579514208677068323372339581659317742452975671871333961597600333026508957693300216207500311184535660001018715728441207892035430961247635511756038510278314071111173594714586546209960833235733612735540815094126678048998711518261345851634349574309499388048704113972327687715845332190975979990369196265154059286051690313455507024585423715083931891099540236239890821050353825609845192637227023911919177013429663851225160823828673742883939566715063767706787703920667924151542642329295191941643639009189590475518367557673458004539058893197339568814034318965346932999387224636946082974075989269415823289581421250854005584640734127376110136404543467454878742258914863910437324057539612110920950032915851650267309278554171846491118633538718290913902758457367473430272353431391941325169105337513975838132790284734407149438973300924336764569654185867263068948644054631070432390697695214210158026545879539463076758971920676647151725636145373121379229290475318889993925657193620225259510350800350932190929334740053255409988272229765212112731231610453453491668717112517946858558654313896714021251200344016991757895617420119332532274341140389372077763149279331971614583662059521965341630036555574684995278903699285272818269776158088958571672561724629069164508973481679711556360313666100211788374860836763819533243424252449632009837763457770854694200006136194895925171603656054231393485611379614032942936494982937877891938291877162591432182735189301484841389972546474066892775017649233336859548156747161591708177215746591419484714656028489647055303242399782131362984871529537205343094162090583846897080940131840267028612807281194041157905342003456837680822070583430283905261468980207189873248379096934942866442226421303302056185096715125483076865653532197242615989245323466955349525818363961219583343314166825023091733020964809424995143586046021033517482083325087914555527151925669626591584078881365037838294205329727925121977710494568500882423449447400394102848441638138676203822370636160119001333550805260769494700023947517695030940331330895134254418901513691346190774884245990784213961239465262266211192752132041227117902656901609101345305263446509547682690184127726906116619170607120221756756637073315821015419234187644100240424537915476514598894469185080718627392859067151359217137902639402096740830240723090453032512827505579688211535506189860394180448396412189067934749633828029061032580295379853091103518325280840656052479949433055418482114296147943684704210217303949951218236116534563992260117977281465402719865012489495224189301992802106750601014908592045192123445482905917050041464528371923509109358940936622859807320862546974420733214786161441481033247273246367895426642935134893209002439487208457833758390592457716456733673177398531629549343076121252504575339532614244523918521110228143541537523776824090195751213093903596932069623322780021836185582302495350023905536089110064750515575218575816138652792875138942477905384209496503828844172594412480675755660315676811561451620813124191978459608741107336734739500820508751523489228665841829558159840688647374804922708621937647244510080630849617648757522152507631655002926747752745269261307379412863899935656421620382770398630812428426083857373409086791276076115699947622924797060622628389125108908356620814476229627483391589941460557470609333431998528566536162262146199845389976238701713081475791058072533916443350828015307832332193240084374063151508065344772641254056326654057560879614592815061455721482769445627765386669925131104385768295873668751001654774970653753770499234941001329467002821321235536760756336471456568910733402290361940664030227612994284482619734639748916262004318671168539195042805390559734262239513362218287920006479032349446818454665277520951354603762745567283516388987933721131067146500370721187872570247447120423976593241781906135851136525062231415300031006843039255279332718243228908055077509510553109249943183978146013216797038156007053748399818598952705364376316473778900792788554600469016489329773919770902976768327368456170319210172025196253759758069463996839145176430635707940462448352093170838034849761602745204327322072244272265881992559931282793556179714001248656826483891504588096615474582615168650218397668087529877279332932780930826682226021641351676197829455343581847995955216620359913616858727848782838655822169463317357073188272325561096003672504912659465192423146069029612653199226250311422051455651756743005500107050834326417741122921886789495507493504952176659168444071636619138389668737054893038177877303607591449438173365458625268608487852182773982544393395734960953556175000961356206925916684373252356991372519761897140437565769772767135990913375805801633708086570048394275445299280555199447639152070350350544263728659084047117916648868840051414259265560742704960274188248035158719022045654426813192282632713953948201615951721321083946268628732937220051179415026697803768663326163344296137760528379805485064563037559272436589241080598240136948631433448449373670122971142795753204055355849435778124897465873297738654476902637420406490770675593162695464336190443072771707521957044686136709325436305257706052474575971157630210636986011074324884747275159047571777273328506961043834765318432790320385520382613477890730588327705638350095282141363302637487122281004278818962154067657202083670498280412351720701619724508584923772372659301984867394310225226179648717096747221636046096522747963932077303543762117181006761324467665695952642194735433172036808312240700232295094803255043183580060696697686580809897047427957105049705996624434372894668420867859225254333638536200575844174927829302372816123835350606993363079142899022500169422126333349936622136254955589034819984512656325222643125912920828204428773045875968658514967401503647775847721652933075987938700621893383195056283720131879010883496749883371034883855824782697050577605662829083459490910576676153817141247917685028418638055350043926590682831137535696854311312845679760851774058628302417419424195600937143300353287425155589204614173173870423622181044127390370736812172410107964942404564810776641327014749650328060648790266090175121610590399424782385150624502481700308546452912282450266118178248028706468544990543462673329909440775649808827678442919228288053745019465977867280139629856410056566200989518188873742856702447537402834309792942856435171750262140790276125917565413558793750448767661010975936272227661509844052321208933293536740803018305182178210239007184257866096645301153869880447724407595781167472982630066654368566677099930666561993362435803238505242554972094782434762785336169526175376601737512542422674715121300925146985907242159790169729406002936162936544102480589100217801621069378492139745557985605898941711500875144050325989358362579596188836979291913510045038888795210422584992849640491894488989608337205004812915373108841559734875598364063614063084942934088843283754999802534742358079831459172944739192378247350097713246025365726590233995161162293852363709845828159252696885194560564106472215125404528312259293484667669990532953695284235213637101661714245415135497859477261575884355691862784180409087613260368343295433355110940015710865321787529013169011219411713525843636611984999057268997646339929711661173058686944947413740529542830812403175965818689330582909275446176105803187727506345285702855289333628141484530787984272917986349937015996265521653422225639447842587267439764278539289845880262095226160450021472172868212186608202117775447736529582999855356393698055296859239234167016679631570063869774264921231276235459028719921693609627864091251156651465454974979450276366663313021783678074467061232929672227901439415595601823883065143501471104587794304371521626638827842248351934934747439765561834792452609776315110109580231622883874279609174629828620677781780035451602035428534729919740641368412126926155382378468668541860824993724118767863035021238445438279155659340001645801130405656422526787169808184568536945341569460126663734669054694989295955473980543420706564895589450968027906705862208275222983369581477665894538625412397894326611198739202500822346536968624580316384072292344315034298810256510711875304451359493816283203522808710598593558162053530990481139399599515923243384419822378394958091870743164708486552416104091320579521821523336049035048454161654028789705711978747674034380423451218336363296931154778291963676420014310130167806770142067478129546907735715734653638399393723741757655756687615602861614997360335970615484768574002679391010045881363262414260946245198699606037319358955706478781813312176304576797205240145303811681983425340481730484130942092642338269631533483794155438694918816531060406437728448810280226713850594664032557245157320842296919923494398178421005858460108134037914017410843461679731459137291850707427549376138879275263114911948800131046762180152903714477155976460814962989057891204191102196105855717476334112755784784217833960341821650697818151738983363592729497366786242216465305400893347787448229105986412282095259997595481090098137745842551888813333624036202968546481015854201240038110073352060021343660514020941960125268456037870669214973175391441691141724001095085019726754524577480714680406742674094822921568824959417277018442552928371835049977783797046113156193056912035687414884344863819651040847640676684680012173896522112091348435430466085905765848033144112289269978716961957757624050191231044455517534887633221739553686965026194198928163959758461765582570755726178748063126972038121920983608226272672598080779813634639634278795729456103258958352653553155103241817641243350568773343593351565578346563817762314917343867336785017261554363274648612922396120706865413334025433951374214335102485100407579492624590431458092369955557244412708927673128410194965457148334602454023964283275728452971226188444021968759052293163444520620337695119541778728368988455363705370038203639815728420740554478646499444670808438726578772396174154609897156987697889051815477606150561372890284930494656505550378124722845260682572201478583582539391777957294608484140830957149168050844453798399291032530641802450979955304205885565712046517773937131977323441760200055219890435453094610251643432924280179003774415002055759211505963999880053088331777951619643868687547354966349580904247470567906134304857949595915770864875754973249275617791756922614369147598257545665454773974750041915461071756272637093984904238577209557203404286788919462839109840388615973208857224469708354569946661945463880652898550831224295420276540362614746999351566580478342903298477095766954843197788062248690610939806952051082470721692495409401532024742545678964717163651790962981421252940815648089153248152779325559347451915527153374054364870088879034597780190870674929458890968292501955857712809707624555998076381154070354179217824586150820849822601434486889793295612651129595420151385052701937971090660415945994704532367569868828559183401851201201960280762220315311034149687365324208214387021279050244025670221532176648925614061420053774151151082230196583269253698142260648486094822616838039091635041226154258369917705147145045788471041831471083004349480181278584298158089298995054098238887567339811694866289557283734416540709746043950948048833925137122080809062313944998468224847249447711131274170174432235144243768498536041765015228297321538696431089668330289510880465354977222815146408716573224819289510853699287895720243935925036366444973401891337261041551930171806745810989327769964085231939484519550294716683638216789974374335486527387735345705549050346037711656677245975251726219267626966047781398519490780987558709294422773554722628957121053072567928920169754007948287933257346765156208651658759658440179016232173303809144334012879763356773728711771742834803535006886918028181871360237010208976852864291734382233600002888870793288493560770929696876387553160157448418859686540583754637048063331607035877751932382312448123017196840579646084403769538710129842933815541014765523756585817666173338956419918168696499680412118255327159603806615850944027765244022132921180614599697432027959704496465924539141820875430211540744500056020904426580576216373789259049364512464388217965013560531033062253239148170664000335872580213190430188139588042222218388369152176470501711472092442035728414346604414165819796949620445573995781573602299767063827393394375905556159856709186887945177791055186494782240305599268949887359285013643967586085371847552968366483507020772332139152241980043788106618266983082119779964124113348982665270195566362960470694578497326281524102436757147606757522808708440151670594092899909990071410089145803263787760809606118220033447543393612946635506128993060886759575594886920987237724973234002832688097772075659604147759492387157075591003422069525284858763532500452537309927243944966863091076790321853175286653217368697930783821260560734710496097822399405247798859404141596096807812126095261161570874821723464946783949418322021793221635649476117624243016153221662575155044099963344011910485767889351292688599137772574556345519159984074863174308727894881308743860439889786341723231925052398377853982112756219221601500694714812102265912143972478326906928425360384753234897817479104193703386861605832462812477701661651262986489059515727301118100900467751134840999965205078870840810334709977608488509533693025464659287436674955037453547468260395160768573762793846394111115363303476161012125044645648279444645463035392584488137893540747685639627569557271087559437048280242286322619336892179186642849438584993498054067497003038122238955414306897933698292621788997883721383309112791070824920166758261201557006507495072187307251018362991540691871290586243824892027536386807110803190507469402475952504585850457263859069696729128032302400006820078175678278991103663002994333734592269957379089071253805419681865774442799054399553021279147846102162131196510260079350157528160476656615335750919788035865881574179351785676169125226053910909717321550966869752594515980726451554193263575580485794308808684481248496853661672130379879305237521922645834056458543375259243573848753484786695204948065181879672879711230428268016265527049128245849216903093740954429546682975805500288066077749239015362564846536487471260932103220577349272844593298723970558984200318797324108941934167624828181237757958641315124585232069639191840245601589894998255513628843850258169160142098563715633156317396212287774685305661818168513438055835130258955573622398112218041344900870969375037857830110521977017105226977252196006672001340226919637794903111295797218408266013440859360241856008482667304826539294478498881060782629717717472086886137859827576708712635343808754975660492245855772658992126667218268641719488196751323035283614419874490675534464953633567479239873807861961018561305122680624469887414749440804577470626957975439706481035760271722890325617375849500877724529533752186045044063513096908516032694779320906769572625601425270835648951454168534228438746568656987172317260229328032750512429202689650118443541788773220217920278276555135498695701625738766133766561770584674864332992295627365728740292818525993092918129734891307681567768989839306964448691333310437730776493076373892821868047383748978627638859638096995298590934486349882364524459221189470695951093442203171150359302532609691143747259770844740564162050262546986444140243816646966758298125979984978825699142879790422236169051449440729836012973960703070429300876003485067411224125114732548328314124188916595849938386654456412320006383549275584160855426306159132766287826031068552242648394877123374795829562252426060787970726590264268985177270287594382480720211641474357889795681663070152572606953766363569138413052373015317099361640429134978636085233363724068449148345432844888294852861247572233486264261255531182012995625664994837351411712146516561491565825668556362804114881313011567292087772244133991351507672190698328929735198077373862190720379573075268434509305415265226092150241020681174145770972465844352775437612639268365871070879393304279921610974248863453618133907623225860070103602403241905192580372864584890607822327035560670245907417928147291715638079019810419840412730846638905448678889581938858776327873498356751798055021937730346407160090435106150196691710736035989817363540881834054747171634771597222591162360681829428000093707521881445834355041603111327989002128891515077811588101433401876626268547384421743258586648489193756967502841938496971572463215249193914785706892870571608025553613368548132922568528413041318796870417707306700530793394338865210840710988495823803497842419114893889425493197765291396633211678113750003863472922398978651008373792346579304608769632585832724031252359777243567669125861537923015885262882020553237694277853526226809111111758926706640172994786026496106606333081920423908311240722948839945610254174726097611492133154924812800257848582421450005186603900865127568318827536202255079932474832644088729283984111205973374163480851210691837574047908165270554651241547177683804427412919793444084378222724257948297909267726799014765003022712142583777625673465040205762734197070666022078306980454453584946185359052232409439877794083609821536003875916105960496649152209762599575913281578467837703585610320291853018135662133160122833151199299834551485425392492505174470313244940922022881901295464179206875852169917613689675123501022657855544664499853283835370705188485161962699562439726788436460588040796675596722798592294415473437964296580702901864037586165309998132493322411724134660906135295244547133080555417825068012868620600057640662942226270971425979186006089971262144225609382053641491937740354670189592461556551149260344613037513404565384563148870298191163720354972539949826458699815525705094970410232948683905477410708421460879482510264554253894020253358679447939156351814105387287825114874470549489378187029940848625837676197155624699320541015298653710537287168453121031628217310829500521887692850984838001650566202519777308729803379395314204196338422967224291313602647408580428644738766860232377826847611635811986340309790329513345043632157830669660749522622619605415904142958683521211109602552026405312024672608540772600282271485488367440004319926154902691828187519893405727683389532250774001133626163781493229442604874333830407611132617901417253543157600373042255626438142161888596425162843852837839354633176233891711469857154734107811668029828799688880798624852139703709369112041901086852449518754093353929311069788508751865141643555808952066355355047015352035737950312295851373022451856792474744783117317645124448405510922810441937609658903084967802256662867748141064670737540457056639108310855766751468232710748489072340031652771144956472093639866178812596452612802035615866271069518725846441140312327747763254387165424482727546585040031777575735937444684354644491757447182230786006168558428674884718293758662037176039949328533368115618239840570727960111718499740556127374535825641932799965352747989222236834775699966635116381598408741413302231703587549527846540557662790139579755885607639949721463447012587066251984860458228377885305165648618604756386911753290655579065983522442121234926500353531769463449098509339585147683101912466512891449299189030101757338935936511151627438525734531483223332505123479354931399549848509368147441658900099003732527097322692071827209428659173346427008269371794758209453755656848023383780601966654742711773412712676561194161272636895635512501513031111063583252406605018753733595670835337550771328958033386908191511705764092944662728715461006035793691257257365674288290497262321432809161211901444129561169466398398840012840648054802959326444164066868397491137003229488419670243987597648352323797817747772990290197835917973065024385283235917464001209985749896715550286455295184042025860755028085336961601113338917042324370658504741116671345299338918827987741681289305478386569011070283848752281713718742928925314321944012396654796551314252528574837576235505041203025503720390870812588476895386587882452000387464890991510175183218074462666158465153084473615155387506320981213176977021409266196397042714002641344780348384553602349857235434166759024111876291525864841778430457913352534886356305218422628073712240726688030972065951102932280704375812439967912158526772104963664672890124183761619002033425554128717932325499019967905423378261926268113984848010365584486722219987928589476539237495646438082525459351456735344630762821350773491933145476156812918654155852729130034624669508931050762352097733046444045361436443032070939666830240768276782060882666476271068633533504611311689153916905441425071600915250801413390528699896480762397654238807119237673691154457079681616694895024409401821957494252576836047465865445648751507553674217451411094035189886246037382565183341633143760884084807440904780647664813155957848263416184344140899625811820431989887911771412144895468103645043540767608290342755490013774284649194494680831412535259145396522744483574426209035277980681952182906410058368283173626867083080751743950969375412398639804857307113532217359275316412753223626625401463939372597339662070970459580816018113232887219589798158065481396689027976782572200130134569448892976758211311699482322342994036272386395011171854824499309436095382550757115190773748760014724153529469307490514220406568421868360519007143910822308302017277526267314530526156162651367351081654289947259233717539759897379909173624332763022265016931877971972288783812876666859018904527440290212133922282200421463455671876017999289877338670464037261892230626700417345245189044711286385891353175382358250928568750117336221022907365618790827047355334025203938506403954616213163254552391469980257527793260171230652343335338833475247761220482353257752785562863712709560637675688613980647675071223370517746621610476092001811295652861193647691624607784037608671878733485737955503731431439801784655280720403032735226836331415198489537489722870809892907075783197283240059327540360018034750827665089107427720570466235469318194721620182753889294929517552033209356086220643225340697451296588541708150311748993418514185258518422219710635674375741357256462659685186986647109977225511843803976307651370014963391683480104969852349803796393218665562852932778820373838383976560258824780153531545843293339877073706694635981195867705865484170310059346711720391479780455126000997994200903342465786985018556331148114993724283720624079194955535759553576269596993164174844419198280098324984096886970615854319845016843098886666832375424022769545117789420972948619367502849205189630823782581286875490334410042136513863282912049018122299602383680045315456788525825608367520219009106950879640512469500496593794425229595231445705437322571647707855290696017484218520861719715926134181381002352521258865173693905201470172867256045611137375991501237066692291270074090662381975073277549949002038163581423228252359883414898851848300525056981949009319629600542209348919544179883296909734199612479396746705725705565582662009634133217259206281400567941859912297211233269071135058637426430776268878337795000383526131700020582050398652576034655017962069529463142545470064299983454755251328202656256379543691640608170251818141397300385563053862152845989517789853323061981364268860249543020889539982128072684318107374010895102971175736793436267100272194752180919030944941763615383859826917302092394256461882048049928636921089687236382749590664082786686565103443396939146299572752178567927590739751219088499308275037498169193631712532766392060522210301900869628647191797968113785426887329075207057942135173406205058279077617459399398682301792051695647164786418238357400032100988461780394656778832872647616381049396944876292316614573199772132967858558421293127202643176365389229536506017967582536987851162287885517051311371688484274039794385860164332762629485201945515280315324590979168161265700113082183843783792637888565264218073597837076051534039219300267243623876402058295811321662845366175267669255687228009446287865869442556602097795129260852234262496668389249963091004240654968087718808947805156014632732737217026686673159395449143840673341986704254903567006976254676526267440298460495425451629042952049356313813692696785522548279620681505754077230088513548494387178828799472983074427948174292345470503791194413309082253536895546372193729945723367407524660160988135085130170095151421949001125854513381415605846511157457143186575006890401576802104860823199339921901369459214146726318206011356626619638548516652932814024290222735607523051753710283035366691140244856397168229568517635353843578519564122818619481281694255091904818084017718468971426516394223151046239369512402060134302309076096870372078018156896189445699018321763808273774371341225226249617018064124138323718057170590921111854777050645886041220219930665982820997131023480265285327620846959241333447262943025013237578297688323234204195189827330276592283556337152764486854723233452446928059862250525671676471302896847128718760737055228508888696578401979659822942292920028361095765267178195866768477856674211553548094480489663696479864941283104994624957988501818876723467728631075024777188461021565787291577326312565616521827577569713288455290073603706417367909587824322552753286169944444826392504533281307530951781821030590470107115260066901103419936316567012131803977625117000375758712633716466478060008187130706645435738293925587511111249539930483920888396880319387340907455578634397484905539354567902420994394090517355638563765276763708891260536693657930127840411730631611477844847334190029622392324972445102175291431131010074628197416538112675866032116327215566652092590914701668042967915218872430904308507502629768964825067505892487482739231123822919349181187544533019179829649029331910407189123296679945887924143378760118202061659539437377134805345586876795782060443118297104350147876630304106965627322003181732818145999325923149728213606469649963219487058267765306608861899792151200651766520477202260162199227481001736553198730566561816555155855142062225321071915527998007289288353728145362943753195217221766119007990019230478196398906076573842526314153808495480063857766531477523756350607302609165292378029088609554088127194375450806623593048298765017471797262090263069499398218867282282812847584617452518266933627523317512271672450748813162382949107706101244717644970084732175375413836956078365159754079317009461311927993406008762113760738396728225036679899945024753543020211820417128297955928652639820080275767465097370640905329811106933105941306838607693516613422986141570122648052305579202178468777325557999875593207249228473687199509115575493949109290611331207970005337330940406194704682844505642810650242456302576391960108567958971307865540592954405317882276339752782075210172567527778044027364550662091699119071537084300815517008088347747850127020927329840763981936371984074121529003435874075153121284782128717719826809150691724502460429915525273174072474821555947404748327776494071417924916909691441052035288132033493090436602762849560807202555675791196177391566948876834133607679789884459476818341996802381848706804923367094862892981720278988723832794974969965884258113502432907694179273972298575403699454953519018484999987800446004732209871889360804262041717551111003995980761046066775371925723489971661673647257769423583695699753185598245880420365706486395868574946574271985131527786292298808885483776579911052861600442975378352130240979713112140982029671823300044163613848402539454359130995759244358932247088189991488892378298330612900252612361482381598839979220683819684037269380867526747976071418050278292043754604110756310930101880675619754960037685847800516748596791084841174853208300989902625102244655213604331787462177078059735868298656324800324048779531615705146478785835513249703886514261081101959090698772018369528203621596819334564847696186056072208278797049472666317670560787782849333985962363924931317228310627688595199604920994812056280096354589223635711443552777312439863942568511305025666374262737920179567305583325097698590267101578022765108033964670219068003261599737587421241483240530030436021590060415323140736162405790722104295283563219947725439581882788147481748973289984908389408663635188646700424395083679477650541986307034102850676254626627920578206895847634311773945515279091927300290120636746751083086842741186680658406566490962732127240456704919633240642461727704104386588721381770135975808929043028152531869130728896272293395945618480852226912379284955875129355942927093914892750730808055565449500709312426415742922764560891881357755608963334858870623491806520830230358333608502130349610068008602792685119177984100068740682805652663278016724720207027258588505638108035131534199211074386135348784681448436410118271122055546847973653978420376927545869144489834658007684867021832654470330474811869719970803570170351241912560905626817158087078443578026066745679516156962720043433345975013540200867268870021454685677303797707214965102588936768664931181659064709481676401500081601861567537589396183104703139004809017808484289789813835322572805759155780705189077870836783685205379022316527056288412394266037452857038253725080962670584112608899884733193897284131925018422486261595421726544469662196154174403577877623972961913824868821218781218810165417552158969991792811263779682003505915835951421343722373666147240557137221631271369089838063583089319907827739478932950247512967562507534466501953978634960603902713457203386234561264206044209774399950439817239698509930660189159799018413367276315587530111591993594917884598748565298791925911109799313661409340016578841013415039273844559610157476140991162238352745684669917901356864884257350446484243131798631065490727226035573111473377117622757719968505099552767477025102696799000638696182831291026026325704467713964391245546139023955902942125419914020878904430524125693159057472889302300908563681926238225343551033767695158557875146085462203374470673267342699382166103766870022333410729661382190284118148203247467512025920422478892798342046160595203871438024231453475300833397604631046308361946149865389924124702417935780387866432568292720163172277539817379341847806251545921985154677258510784342891112275609801962185859962617874141764102138699289836618600868859772712606090272210883688374334754607808681411867248164370370793719494769199558828175993881228435816731716004536401668091681583293697837344012419547210544005696749570488605935389335530777024309424669616162203853930199800423655150555662435637868197133822688833187754940911289981851766549551109575942302398553974907004012037697260667205407964566493301747493402982752294573065346652453326576998242784484091652073424153556270832464309495675487835192298597023429564547375565772904573077174951665847341173113344595556535495711388819612972249628182981255040581019490700285069715377990767293273533724101551540022574547193596222861883942347500062684765707535295028467145012075902665787598059732398929551270526631402150208400954587403132613771117549507819723607218116422673081416594625341982195522324380367411924871915501518855864851568555910213521212180931766492815347491362958924062285729646272879242197752453460756771560055633338900836236787014936212009729097230172603490184673742599701939273311274441069734490550545613741271233053677828712557421690661534759042810274507979370327204578197731336845363615715669994915988248740260551415059949461485045979404396705403800107505447928194634481083699933106660020663440330638632552204175203733282990852453107156503673500254712171870152735937692051051723780445848703406621387167823154368684490339186320782255535248689386274449954691484438860577360661604166696503155055144999010874140907593800485198558782576870964007884296859055081901268566078958143519509697476859009894216622556954467999732413668384711330743275094990915549590026344757859284256466096319288901805359525146695380634247794086370812862367222369117310510960778485047347745835455133850862889951021196806279782560391051932287958266958317184138877295013697169208402834157649888108790110342590277699583373074197018513977832857120042174707838351677889789280840020752883330464469564922024690009496705684432377103072273473391134511322058705917251867579903947195218426345666629008791632763013582835392462084875874971820613019082951894848658600556803124500173306676799152953274450457019394762230659068820718580380708841224068347331443192656337946058909018382292205259985088559584816258378711352291936094328762515469140022918811557634431093717494897840925269430669194767394253499604286299158843391438331646606054355001265351655766129433071358526048167679089495141879686473274074374484143049909611843882516069000101904367132257336270216104736649498923212865802121630201653697886950884141119750211989687678509529511135517450053468232671551274484402017451035764768976518105203625666543802422932351710614921290782733340120734084832197985606444230395245071737148256006272331514728225585102896698692385142243076587384386103110644328181072484341028984587172219652723374221501374430649668745234858874162123595161858018727336464576861050848097684665157440186432689947495216117055446220561429199188555869601765327902422223364219735339933895215483260115222639841136477760676677410700934328197121445871821071679125799664436582242030006515465762243297345889497554197407997835077020532101470664684723027725540590408943172447745282991355305286197997731473753038798047143295479451305773243552681857263673001332034181207843467088193352151143533127661359135318022433345155734491433464451940296827514492400428784674049250401578096237925854722477190355163262679895227259532245810878696435877505898061719988389964085827674041706269834774041818308695481564203732921390286036887027346581749785254267405933199239915650485152878872940650529578743307058339294700562999340330895335201380037550118555031010796268828995975150783211069352309150424466128939756008257733782070839602064155068228181962380877758316523725250097700875698049135473045989108545750862325252211649091360329415489608348336287970103726808133875761058666791144395222594326430465022893667896917075641021036272803468119052337301878548180957241919895141131849143712156631881402515378551845989232580488761188551308779486349982064185922494301949497298947362570485628545424582064646404773857272774484255834887658115219762993596715793473601147999535808611666155244380977894864981319425191381593905633172941908819699209892481313782029222434936699680092249023829988429609198670391105553131877762128373259642758162685442621342423687765109149080487584885231955109157673781304785709612534861438626538491066417718540341591208594435084545447517946632818249429658119509206029210509352442217798446222575648132727062365331202780836218143719032180666061471073867249393817656655760990896176815712746037913387545538206862954753135961657105744623764311298726259442574740734492786539763459008439458025672085874913244007975299784039721980040388339931046435165158402819930876611987586680032328338178025557278844778382464721874526195005192566129617796648894759886310401554742608838092537804228432499964471477515273124553698808246753102298819610220618093385026763626529658528186271913350837610250851168565571387283738475854604821514505688369441030204751695695598705978854872395727053129061501887434408092529896598440455711302775653335498707343828848686350523012930220554994629588631446337792195904214507699017325055152207365119566817353013200884030162406359163728195114991260710135605512135453626853601209836422110993848163840344675124066911283937747460204913789008766243549710053707933305434350723681901721725446754255956703553303177918022431054412371593983276352801416848117881101490119658379903774682271756260915376400420685516272342022430175170322662024953885898040383182105871638466618582871796248157196461138031150187838577839533362388274221212416815134678136093957811927467262200650721810148835566177391918784729589479594741596636291985278992914754922205491352662631455305698649940758001089486112652776396769008132678457483925989021529777834143174963238575157576604275088761021459706420189292694977312124802525245797310385225026649623939179546525667363551279929741450311761745805684639321840169222921754799409746128565646401286019774741283934514388218038059436778541801551973712915469342917887212363793656525417281503333453546022982853322900309489917618209772757616529349485410201787836806502459991564464826964064230246274120070950581867390025736248856572099424051103641279498679032339060183466901089915283789367217155586553860884711475502466511483107063105526375507263009073698307215119319290859012988776203383079222491214361030778645913777387089986161518768475719475946500730349909126220268187206384985529236991567362288406918103370288751393767767038448717700288098530073772453508575853694303680148915066960517204453475348455897617992152745397995224150230625166703188041068781134618489058514668523977379048506878623734137847267822700240783798816475016963331511426361827900145204933735324720529091336698893520453077600693779832210028126334378521752237823953333898858754125863004509550926682618303855558987666325354267230601337661204277517088236030081605828389158494547531480860559622932011561781163243560507726285893614514292424234856440855226259389538474416423078246630271298069787459556618282175470607154842305635392226123798617277237881896691040076078037157836291701668437628707644332479289019238074473380587815452083981732145334297106176267627773022744599475370324702794144436651632445648135363230086514313849241268654435079779982356476621200551197098269634922501279247498520066226384127133905498687723115735961122769165540217209563429558140452062842286105583677558088991373825624083947577784855663239673372954210974339889189448439006140728047921080662738520630281159353791492679995446897635332320036430137732387444315305877693864023133878008717675793327993540852017126741227104517415811495268312535579472008353590884015969280862387530302266842095711685340104370141027740167433781020009023744462345673006167769237953363598537682241752748693039268414071058163488288998712956898150804591749117443233225319119351675496797546900487738877196099484592914177808649191492084233774890010847840218102717164472016601249421023649166339209728313257927069189084731515779484783180265454283226494886420111807523729974377636313928864514175447360484051760010745967187434792691056255293140843833985030515777042390279381392733414827658869728295758297636002275635445167463772264507875098729468382662372020441092052493479351403077232280775590967739984875418753731277844384581808652225544169305456598645314437420209240600291862750026677475620005849020059457088214487440405972188118420582375340473613352773115985137843009512334548694869519784641602774980751656379978655658396508936394476142574226234238083588707069877414173910924829813715365436546361723903722496768242638532840706259912690995375367574880532328584393699818438686459683725137816459057771257847799970797690288056910990620340858545368899130941596811622627170088724347484643549584389316818221106870784640566891809308950270720634604046032848997926843246206513656669583216528788721658577043472750571813315009519510711797099892062434337454923027264865188271991890950061873875847741800133447621921185175873701767333661282407675049839368413207924793360629567369560804328407860749529986210592842973468335477744045994264469092685746500215039756939313393470746152703134227399381231162073155680785680886994435678810548071182472444260338235285351454039243109736818853329629533542218051910265680827877051055850533927479733613595842233714437297387242920254369785577677859722758336228894804499743105934729300456723039144081466290286499780138450786884101692265012891914761100895650291507205933187201494588249073410526461700230528206701977402109026194394969940995860706748833786933625822677734932207985090169496241964804133496565185969133012059409314489115780394434925223321886809422637737465159018147877828741845554865396904875663246971065922215513603735934199568952112088202441581653350547016583598396737750137701345809220344383869354412766821999073494098920155315206338802517224398151990036473326822158487708789850673114764957173844855630066735256833896025341842370436069021426171647417408640792366760152080426697497475824083674359141146872197135286705177503912786492175332323930446508694172960842765383784983172058490168024690588963918717371911974194768215766019159248496969326640583233327183549375805770383910725222792175602116922314184686078240696680971971741482874554556925648361999674043616607317029762737562907958166212518056588168866074550266335893398070608679024276346860318935424448378588167184511447511941186765853397466591898337004111662145256805397384982909477534300317167297728554653529526815380534953335335867710223606492631187153205021818556957785355628837950088902272834309182869658864273748966182199714328509549152245593339147993960099907603195504038809668300408377333029394471005059943882348040507444297218888998459785515415904191467462101665904463277344048371235005307150240064085060652959664401588651762268894632987291637034821237369743885753702376152642018408921583780953970574571320168074886279489591670017020229260331168569538552411505164466831944825973150842552953066341877456957459078098601979506571012110618367070421301217968242998729346451750418337223171853626198083580821829385966889525391700163119150025620692313563697205056617205541323188087865262751582008338195537806033885920422611550218324935537074577997889794303316956117201984403912064972213468875591862310632808506518305832912771848834351441296634281665154416811387957096389204784664032361975918352341182400271786823739944751878011622407261618678656576644298681358897034131982152451672909649249769303074444481685905144277832185862839379720230505819025187103339981125864663875747125460477581858146648712407466652533656000119622298571589446736334689888543788170130318396669627517968546952211546488220194696112306033030321771444042183820950454009051029671720164839434516961835897310500447185570630289001929853148746916838213377227602010549626854928214585477364000162595821978452391206752200628515041128209487701112565491320008728476424174336862079818660192506779248141016438327864434786238356324569214043285750147956006511784918061067827079545477771725970924190518715182882811767928483909798413220836278945640518774993397564799252612148800948544750495271552348519426802888482435358881541169560482594542697003900983097099292807703771428262137642404416610837835378368098621303454127756373164476268160925017034029731029744934186876555590828445956721053075686544610565675742917616960120043745708847601352415614933733816279473349599882370265901107957623305216968064310685367481365475818016367497431245458470885594677050790967271107293752438593724030789442425545703031610781186200058528816430518264847489313222458553238093122926156504119602450963661580358916361714896395198399784529744219090735888083464515752504965428399930428125723800512273616516794233287885913151051050934787054905499174245663500549242406199766641138394439173823673308738124550694475838565992468220902157748111537253116319713779062471237468247563496614246668291011922945218622179477099720535489568539527448678558491511271714126749410846041696587179792954884771275254733357783055360229563597204603889099635869321697532294758406031044087136686855642005140494808038464345049053355812387586974013696856918250110129424507265118855437287743294313756513393623990059260163956489476125575031104360848944650185594482158129096239441776405223353107965565157720065307725620183153385480512286892592318451801471141910070388190913501707517510547429652417533350054924431577973481181676801303269265951850292883383348263156748173309321648545311592235222143003381091243891132881011080177061637747158111345499174894954051913040404952655458161986910871450800780604150904312404414342032810010296429457212187437536151014098102721185009623006471342102123699494959983494625300049189420639394837014129313960639612475474722637508180406445724614687173171946327711557468457232712249889339909231305382908306646970466521450663661857981676964659715974169010804893512072017596774277099585074289344092943830045757045450600955983509578362625401483884713358223838514622056963617834202266654300398737304242541406722188120021512656674234571948933614438034465568545161281410681283226869181070197639357973162713608755654096117947591797903098046705703623961404661450099453107795039915633906856173296063331396910121527243719471929910583798731003249701711879083860711414464625073447890738990240607493366760059998992093811463340328376845866950279352709938823637499764352464302545168043141762204038989185282695897095303048646998631284851382686604818556685473251254951292298470573977614043060044331161326412944915714426723706448418989696172187147166605127099970305684065234663668066449610898420980160012894036075001201203316167582857482434581322687979260541097901340320966560027622080179837937090497796186758374364030391217740987710960488859546109925667157741714602063957180577504561419835286593715505832959831126749789001272254351318565173122885649637564240185483745333480715990802949775152082707217898715970383227411173162776184319941584117328492819220465558741564241648886214171746184986418370643286338258726607690575868628653656995241231272626826842272989766328189895315448060973070237281108991202498096462406078922483509384629591848175999745076825960676220092542515588510500593210159106420303582271340505962880818225291711615240626420397677966526237294713665420693278287045517396535552495892034523127055319862593110123879882779646583608498557413909292860897577245358941920689199118217957764175547408364068446095767578380995179009137561079622929727967418004014275021664279459236671708063565222191327233010530712393667139186490700945214880081779038612500392439959032632290788885302967128967010650705263015937675636176481077856622429184220419406800815502877556161023203045404623410191151864356822805686174080583355062689770990890201261448522435537310578621001117413551670203271813985832778185339916356143293033091507210965898498228659753288122500583941730519718182485337266548760845744209265982110301766466079972478710526911800903762399656540982713307106662296959452272387787517428188593755742008124885126336013037593441935421154484943520917670407437449958978952697671596871170370618098931546134720004025789942352167284752531259754711574075646066889870506757882695391339612766271756501531133759389554150836061037475025442730627259955395483021416151387679439256581767039395838910676655904305245266432239442735490822416915770903478619188081709118092994020713479457232628293093176815553634645064295383968603329754538828338034242686577976058313681580505778077820468845075384861318945090054212977617643355339851564509454596623268047055553456150419912741163204191559585570500486895555091190253712512090530531282169058355269055270765024281887476126766339496726468351313080294888062354718488632730779097736558512908680942796018196849579639282565735890104906535804523172139741136500872284985872615645721312650327811284349191363224727478088506520606706001821658214350709619228764244458774889395620827385975112728400409864463063053297260142990367130484697988168950394966390551203937068317786548462081012137292042673363395931818437557046657858908803572659635368851185577473697293484896771747948572574459624944506727685800764960729357762268472082552639746577242177395959317135354854623621206375006322351687968756028850563243281936244399292171058098038925490555488496290124312737927658814647699934805917231939564387585685221702299555185975084124511384725923247996860517565641859651309279236103652137220163127480542001486009613498182005759058544736396871564367611571823994401513193712694180084669864544232738757594115862226416780635138476004375912608749638617562785411039727894869533346654406629090937157610313943297084828457343977285092824022806777951290471155986843340960911677685298438434094943948039821345858748625248792192079746133854749280959228285418594422609682408656206638973416717305732193829050695654615137715645717076980872070075304261067062853618060132819685558361511755043399239477659493016581846859294391266150008765322745173078422677562619783148325242905559279414063472468355601842694902141429164879228123479687556818436281060190412939267976144267013544253475296873991093729631759064301316022605367418609821775778828082717834012768668243094712032893619371307310003694189961552609551941849456213475780916026390359769969970673695010457303362150806522627816698265590300651140088337447974306827338214357799432075158650371098497944439094572165966711714491672240014204526810362913464245140569576445716308206233060029346340010565878663391671869136760923976936229271601735693614026521276790516403229090921060229872901045438935576778047225610026742002397611511337672340261049041734383561936285433666675063690532680363096102667043659800703407562966699797224645002022114337668992980316045346974479269820273369631572187635178082997940264452289759369783570250048888392412192805029324095056202246841860618377139131637732309928155711115603588498339024482600946603897034475570540752107359053882729393378293505168192372748412585315127310206240380919019166571189997634653000960702147575107340495123378941913895102244273205958886894789236074568859018020274766147422995468952661796059024012024675498749816183611211131485004239077204311074706067920972867273871879624225975702110695684834637973999411415477290759319582416431630909986034397073230410926073231998124898738504105965605496390933404285082720676611105521634721724927374755016738796714020758273195742435763359658827198419328201992713369133102840010759346553689633808302607938621670415628524896369405340527539749533749390533975749863616329293553325607597555725323186963250833572782536761883101910426732342097234724773908609426946375961937035262681193938616693016639770208349584719400130722585377084160042826165359579319197154806540006212651242918821715904649364359578650966095689865226430646257897604907847605705624535548890527749083007877276802364722339909713575121655942694245326557506008525669183473490379615764506956362564584473263582104927441226962324004183471663525684993123835808103925142145205501164017246844321075291360006810802790498016272919332519587429123325646614459397260578661574271786780748970017706025929842352241739804123128774382333627349307356384763239303717007597657309681932977360338957267168963234228767778386526657679170322725539097392407858373269014817948447718446027870194181794944179196231078374327093227443427169991473343778345372849342297845757676274495571498137455997792680414490830017044910061875054383980263628607135232853991384498103915514735417503066668679949681155997551098911846712502641000532016361641834455007896057354314729731340438628150540875210582067184294285430880039761263140846985289856746583384546574563410645457172292125353812793550140240316489358097516112509186037868651260395508341669316890012413215022771077165867338050415918480836078315449415649832268397746953555636914615336405836290688247609008647753204880565061363470998792352410510106606760054399555858386323452831527462339827128145479750719068737709708122363955400091582904029355578311811454938161373454169082341231097211569902088761733415077030163088896436852769493499448189984757076466827891565586291176997932210827021151828362737371530915455900784629076784690173598923531726466671976822269404006357805908278198897514075334404221102336283653719959779634890624465336724005101589565050582497214366499899457637474787089929421430088382197988375528257457822344377706985482893185382437277996276858683754294847191430639998324598443281084619907156524523732489522730918241148838913219747506093407442290921474019312879819553241363492028884336290531356225552400740463854952485387525813761288601981603972794968391048659171199744678153749258212878779506671608411748671833286939519328853174894464537745279741723929418332674494643917680532258129034588519547420936760484295425271061007344612972393004796124475550535449680276542067171341757509150088299454019167667222184662758926735478108954771741567406304463495295152103404049364963870133092215983022671806501887470528850387439469266048229973048250339488033930782368655601212616377338928959104531977455711695773573682656845471277118839449103491666198840772194589816039811546658873121182123078688376004169270872899888645651579421114104286253354108779338426933267467151390539145163032136681090976009720153223195108485853633307812965908115707607983005820825708695440635941550144866298712805689903931041488038423593864572967467872779954226785958675144590699380259119736530870917532089154531305948459517443091090750601402537494367907470375421412337585061318173304810968759359776033671714252508567494684144166639602237838992480925047202892608038391004924976394018871387049215557651483929489493837399386690409618320846656981196146626798430598438417318461800535483313531651605708682649047588196982387828674869643782223821304132964555016316968951342366234060340051109085848942436022941244043159289270378903204683094800974905375895870173571768204995004199959352880761824435098339617221495661037856840311131588972330762525187737129340538406078632341980403916731402171972285870131460377384163654237857649675402899022823588074453987287305058329751656034429341150591528691015439724970577189455548640947690044040360290228328287572862453960194567920989734671074928312081548690591118531074215447333294252528563987510942085833953528861669187688216212155707362243212035399873995521991884492878751574152955281275342155495838951863281257766068818162022898643174817681674431314939103768394277760376868709378705333869490288793439969565147788056697462236673579141278935689498638113419190522087627438829055257057242090022899319847908381186649775885207691347346505766775541726677988494054300669375881862770720680644162177196174329066739428246349709189191909493493920504883742149280098951945159316386662050562535690921360585662714439395068813719259247109884028341281764574348490569792235350462171714061650865606876886187866893828916924630893794374025424848732520361607042029926554173646030940972921693591334667969275794731807985563534473569359970357554336804245346450363146334595945759210474801550598434129048747560380004245469251975787695389556150139526446762413810951758990573889914532428895905319580234584825679888108217219134703546849611647618505875575328915802542539740641732840404937357604814479311524442650102917833873708445842767377880189086596810707844978047389050664791442776043207337546606970448908687504133011817734039284866824182913679535991124898726963417049111918545539089787796263850303554982068446132592400514795750305092140043081679051397781222163300896941158770108867813448751908181674717932494026266942219714554887062855247929445868210888222969776659819326895833381464223555783599794288064421254992085524407695354087437394925555995344301241824077795704514162934953823171098127766288738313004813843238947935944339613169315929558539296414581924497203325921631467073870858193426106297848569559039361083918265495671175569136083033077349326694822205336441802020295057814491596630504732803974973851409527307329641168552234878746499249583085740435532030845520764467987791749961543546721934397366031518267601253782432764877245811641672999239646102493601213263018280316793180715588283358449078984636775060907134600086711342955721765671948689500321456033147677423290525057131624105568589036967796536253712183481335267373211151627229939701609797014291515814799322814227903277155511274167695328074181092199985606138803108107635330020537898823544393305048212408121604188456710670264995482110968025692578695050483866665949680407395234853281147887283422889074081191119526348426577979410921657541861964460237916524674745443517358589619238751071743546061775168128955280533560421490848773442220045652213890822028786239651980721616145774667745763568477282948487666648270664444871892262729537772046572093476386231434710559571473942627330688107937004400979841912296111112125582141627421842722192422758896236861573608223885851144803952637055032981953744631724435153121384894886617267151248952920505817358862548795552319093720550609099697518034829020869783099652643628111219064673355138627546017967217300801440226159517361517299589088562849594639017830061614818029601896589716342318822069117643734090743035469529550396972635093908321057470335444453231934280243410512193900427009528790081463095829242989672824669924071068022313014901219380805200939880713509941006899184076856965441726246107842677884488255001094414650841128276402031653475634331837711125224616731325440032522947742129872813657879000218842480505374688045985645405919457519143153513586870884653840709038103126847793864643189817829387935257806648442360868137156199489816080951290603812992231747018443014272290389747838570882154577021853598295505871855772284579858443809876111697044227819210546102691486971934520466845069856802681371165500353370640367569419737192090233900960980016970084459778936658533430900092485141742078652967753436670980410069482312428628327343679480867438554968661938626987045463675673271605689261172765055228440140281366768770242672394213311549172708745737172395125078597642619270734839359425200444479575682090024572388380439523369294490315322235945679437932227360443252106635083674419060254297314037006276031498799906830725225046932885889162723901464236876277925928501798461148677108158631550682989464101147047448317862967783817086274231464445269758477496579361151639560409818879470518070842888222237924151751984287974948433535073552940919207713827920316875042609867390184796282977748496545618921600318561580839063736058875149867290147119346813582051050582054203874667641699397530340847846995455254900692583244277217224796108684152197768513138927650519984700835752580098315615793171610324935414248473563482179732153629052726935349760437254185152395206343199910908868024022802899344966920194820526281383915028175772185165952044675810098452353744988650713466899140410048750148141404726034663896510748698123857594464293518595049444578424634387721601077197379950925170686610064709048616342936424335778477282301845667374787417315523793003674855912108026569787777735740428535540286501225115821392476241338800296969358894540908584401213379055426856118155211764541271072191961561037833010071804016284722339034735218380054667175641471906936836775161317793742144635912069187167708139992124331884568671774044405924366852125030255991292795683941551356579314771720188440530518675172411424126875436634733422365402542572474588859436498569358125001024675330470558036453686652905024066663548065421780555117767580876861279668764475199100757900869415434499770612774677987742258349701280057474140918936107969042330699582530566791801756790447590761327392086210141607971499595082680100207559669626185448221000085129119902411993616750207255286518005566616861732637174750045258357103697833650916671529508076170341365375223892798577373887673542342219315672420752221647194231527887067641509750512409675477540671392104227536747785110854125790036757927948991941118919266445624619832656697419262739632804466680259153152248519852004979969214262415990129111944943031213976531953141765448644172234148087339627117158213412193437867778946199137409914984752038029983240517629277404112129793534468182424363107632386313151892409496415974526262332878975204887075760563348596792680353119131132019881376937728058502388344841063481741329462534361287746507097189676558037416095512232124330088093183374085802081052122840557759278711618299604402934719244464566384473430583310924870493064083882513110176105712927935576892473909873234389123078963599758568049936402740230721028970592854583537504839531290801562418734446971736825828224515482568778156545373895714356326452830978731382487343961155616836917304410883169828440459114369496292528329639793710451325898737048933372633148368873467106856233909512969705898922930866738290292650160856719390509817035113154030182063907870114568887218920159654403238318862642296458871841417755789509246113231939504475905241655297540360523647703500465359532964549574142882061807928864024230719786047924451167807505774546255495010804616567470421836503369179815200543397110270187549747602857236958976103535821863369560538513647931618086914164656499545680692004434720404151830660820270373662377516548647634593603155888376055991202314814920740410072258975185687799903470822673236023863499809907986955552118011033818247301072384385442966244835902827148640204535270698017772409472606980327989216599998855720388659110549503699795925230365396675224803981849244254624035186545671870273581552341308127703878209621316372718510951317279675709920372565860156446336497077240486017144668257660964158018841944776778259181628056378083233049703530103814275283240414177188964349969141002881675937294777014437397443188157389165299925204951746854714853737031215627354987036010389786511172698377833779070799642005722959042780240061206921383014415110657737995971002006998976065756246510521462750042757056773379785897983829893801593643422375214041112449980675702115239662029222351857132462311003517305912820646196983784815297950647491321457703187654202965190260134123489652597971905720422418273830033664068619233038574512498283817013205843514967613151364023142593436871280838023794157149745351772442250295427960196366497947126739481614081257161000726174458348107061986506399841323288497322548909920885753340577922319817128975250935810387022632961213900040201701468500249459484392284577314077333716937476925669413662155233330870406199159442010152535599376331878532142042507918168261987386615011474037470059223216939304758127813799673380983956075027766081028046011468169841886824109651453161324806180854212070424661188010694685949146667503596510391765209910980177725392437158976906792441032169815518255903572578234317432871591245954170579713499328591326043420388353833869922295706310768953545372166126582295464729861117198820624101226756692399076868295473954296785607536028066010695763810758971603045552133197588400353343297310729563476237689869621908681640078057857152876176043676513925135564393592709901151480541305239131373357129285889487721955660281695906360670669425350160864177444848692714741630021784016440948583789707711192780569872864304033921484204022056828100622434250688720081224213476891172851274093747197966399807188236156602388238694773469443450753404631361145368951027944911566634632172080444801353686126402904899238193879387197465582056208888841825266518857151936534808517649364091052465278207618159329123790748410845982215974155705678732312697029450459994925779862004546657570879823531272790397252603289447663811392054249625629971674251216636769681851475544181352429877122773808240300286225182615793847796548475913914994629952388088845059373357885969692977983333825068168613749441814489881226868210559072420203109147407315738879501776513931728956898998060427231494676745815382807711261399692811918627872382268409268203812813707377630329954437803224106689380526965936907980603397223828741930474409061768870640875613916701255564498160900658049998694417113972500020428967993871439211924947222697015375628053157922163409311513798465647371538473750618384052739183695168478373358023025028884199990705369313143362434172907235530999389178584933066334904680840773063835867925807729868118790281504760329538491768346359484552376488999909977679910732076131229633381375476345717453544064785093927597168746861747465185097743453616402856713772442954370097804832236138611298637977914702485591080494122760518242570912755169558776081585600513583405877019607929513514978943865038512758269116395284939966102084277171888582843652544728611390606643851268227640990293391899974718182790550767517714353693610880420100265241386424433153529749483942376511044847418036091745747702724139221004019911251838137506083595880575417907843871010859119600892500946540263001158965332704703770546231866484348651147941832495797228463244751569505548562752957129135015142165142005165248534566493267265786467863286614917535196842399705270252001837154576478479822807666409392626211001416087963736976645935700977690798748320167007219180790945144669241857949503014805523519991032047897043221139629770191657519071037632335650957740589162087272127459416097665396422927738704904869386547031317171522387661916506802936185250893684465120467400637956949995062837635630783336507050736130700737260476394116406495925069425736406890337344517505811876192066938230063571455828336009899825193238000797861170898362005075729348334817149876348538934194957184719193601578331492813799625974612203772778282538032556798847889197228444718388797415306387980717717306167861125190840302748555919968104020149042868276896322115818975219042219931173918669945574383203177270378362954046361329652234565008773800376724410656148863824139623405489099257477999041264254549006390468023821547532338577415217223104059820885169449776088037519101170556422684332842127274934937387703293104671526314649815914247570723447104884799110206370995231451810169130972500327099162069472213368197332127852378093720808356887387975907614099389394484227547189655936224238662768311642456776287321268883615464923454911266626450944236003879556525123389590764671877940735733787513084917660428267736094704441553161241410387941148805722304371828496090336556245768940229773458856367732394457357378876123128496343354004832034390645982174917836093308654084804606866888856320339494890805605010341409919728279457300606816099310197337271589430497771917289988817375002654836762838675740909186973172250279637174876652202316477679890058315157907313868159826394979073571205908213781689033287414681658867235422326678004114854514509299043837083813692305500988569357464911731938584276601331694549074510857293159479564680829216390282440582133483076282395250550190274144963529716352347015969381268996146091879415452450174996777943282808056010204554629717180772515546345209076339576070480713321961269738702941882247183235401203697715613283811592935205153831281654315223606960140069847803718292043240394394926779292880386386653995524569360493772660491448718981898749044766785439877922697760882040481008906780596084456526168535850579605185284010909338259631824767773542310033392312653970828596275496778037480484055994876197829216188308447901904634186475516521437529365766772534141016083162143256703782070744964724881965666032635776523962862021359838134808539819799789309945159734004332526198686685357803765521995635652163162791001589910128776932383545226311811110579816169649958211524715600422801526542366915063057525735127825633024541687333450699745599906236585174340908154440306121724615098008905943903934170015331615474051322989773540488358488174957530118534685667287753793816434507031689886675582519286397823049316203127246508617979491624638952770700832571432708626610692489906837840479470043053859322590706803892546416751260510395785470129500166276381714965675711646745351072494782456796280738554077790574088285704651576161413399086529793666157976206919500340927925284162786280133354868984568661614095560857407410931185524247180323292199064595461130431167279676382632142149794727130038056047370496437035532694851948411933701850128712424059719315175114829791562512724543925762460712112017019421516992742417078071538833861455041866359360520276720052424578894244373477254416946529910211711907985645765374573767822001654834254986790700869041953697186657216554590059506495152706651750377750819477561265391934656770664235537702651963588524212112632223081060767217446158037245599320194255604375894272580385917848685325397847888030487216970070040010269641609729288964625218789554433966692290749257372946444157593592480061084280037637950589688918928124807632961551348513404240155759123229860609859857029823768541656133197279043941021582815306127654542020226755383846572475008172866060235457103949980627896804142329762143378898511837204236757199034969099394198729145024704549669929620635214373001248424536753080796730644443531539567666020402871668566965534974246535338413974511352909595876718508735407005890528604980431101382633300530756029120307835912248472925385300010237412735824691727782574016063010050035326624457920320173875999735678153341461504675713434164493845712733733266125508197846709425772621862437012943628568056818572762073151610088318325251532701163281195383411696356701245486741269073878943137610568213858306391674443120326786108001060814789030086232604578445176823501108214277496474395059232005535080682993619663242043987379088027331228344733006442087164521035669050796662818341842331019985677516688654339045678269491831607723276390675839282754375102240677511804375548148009577676109828029032633905932148870086221239539217735699024361928593112399276042551507167946738628397278416314264979242835961046291559845980555260892557025676172858889617389048463390442276916218956592453223455991262599039873757378416106547318375837842913307970989740196379303055760770265385713829976544322256670069537928438824957230430069056891255144994282282245046798588268752790736079239456424960842720205701736868281848172350464215228320334692644593318074272475326285924934345272568681585007690691207242845695569682313080399666276344253887306897163352342009532539859782435595398116761927145773754269353567897970727709855163424712204546812059947815428992336097031275724282607146286610329837092678564053045517300820282624648443145016763145746268533063499524216213647652931482705326907673196829748698557101635235150955375230817133057609646038463865635217343124118963409354478865232432236561549569761651762426990438016007418913326553124550202702357057771781035817580599195966896491758969696269678697346291563549972262159435722196724159099300820000370502827208172105995556627180947458755905303307001999644483821901662621217158096618694381048890349624634557712947398811186171428889781985931257137783475568029984506252418571729322286940469286006052460082228562499893434749006140980699129979642294817005651055160149726910024859875902290890290360631170754772184195664690135942598407694927248060474572120281812483844688315907532355848743040412999261713580876453209752327950969068226343414275433856144096277299173369483789594405677603207536668093005303544068247985829276039180149160165156873891214856197925405603264834122469377403542380473830365855083914723450370987696409780123423962208890099477447160611297676798948892976604215221885202768295311864704530659025479371171097449112498394247475612340982037537226417518725946617543953404493179029960736710481691740455726130105859247619867486492321352458596026903462911538714367812521782603869039301252249124583580821009301824580508465230722636522764223561698422073748853416125207020713599354451795724582808753103188568745693863129265637999411818388720463090026569074239467374379623227687256884579857051919077277477723768209779060018198202088905561506771810244031532873710428999557815408851364211610412824536742063990806516491367627324673834413223395216517945749351879376478183408660321090803207399436456602827625023589299071852295579943440897208507280651683741253337036850824855860093361986849064181671109422452058139241753694493190575300628631243463204896261140294651356915145355199124635179187265979692735297830738923696891490151466138221507285897952071371987507740775971416304246357287256200507285900606798563811111404829657489914408781428876319960441093795131555920512115087145298973708629462040185406275540975469582999946262275629182688475339550585458353018747118997611170721667747044591954411903541561879553845803079636226173976177813699420452362658124301139742375640374742603802372693727854923965525294918299264107547372535959622356801108049660194133625463457804200615094731638912674833722285882576655814947151034205324150883626752509400641729312168291407577007829042454342120725666861958537659223179258859140087323939550178900341204369785678549181645543591458995389188170288285277297331138475867144555778309522561431816252292133145452418923450068177021694773781468533025263186572570330088320005240109955392580087170122859761441127522850547619888673746965275860395712071572759303787624063433077242897107596621241656500994620043262045788738410183331786722065608316551845142074744071182450321312055822258815626290577511328368917891365070082754999983067327378207643972879037800619793732402963670724340921790464375613095257528234047047651135424382172285064415701351593517016498855034872605847652800420376403651194005899441276404890953708503368179151490005837153774436150208109528964985336213630816797193795845262360044422323517311167399442361628673782163830605651526781717359367600144759954110783444566475782658538339931415142706287516854475110225907715328829242616155706266510928128773849535314403504350160582519477007188428060691767889154951065258665827046815864225778124280964105084565189029719613985001241455027685204028641757662624819229987247124038574785060382239708251164978867804232343346045419258738279378232335123782314765293795325308586144799497896429865630188433671442976083661310156032226321652785662776325362727851269000925544767423975991669211166386451226539809636744249177368901331474660686134446375479614171880419224054354546992999273065019574010211145585504478422569448247732331479232813359783904900670131322497278251028722930639678974808232385152116382153251031214543358404529837992227940940045220663233008428881403362842013882112885625647839452412853751213213046837323778168978044912010528386607729023243986986144290656758566591895068657730920328240788760169821875646653866134561023719508277428565269648183007936236208731214088516402874773842334295975872476964853024080022266830148383565223398444461832405662704515467554270542857642420933518997596587581197746085102358562676446419212839503779260731348903439514157458076661830403938775088066166776976643763106595422653857477036374256822936707972676679964068498749770956693089753596752992611296408218231112354106307872283770231322872644091238584953332800821078934022435404932399472234155123080504258327865275903532115674727297826097312741681091045447116173559857215416881244509273733318998949720570739093813126130844240879510906031444977050380498901319483155541040766709442023670052039154594975901633876072588802212934563165247581783021753100228854612409965901581267979467201532767658289737799777292015984973990264190252833894867844731836960064015002952073707863092071932311701390168525797186077848863763338509226297385584738140265246816840926616819955617318014175860174793708050150583920671242436918989270394952595928771026508991154787125970181552043188609238177568980547022631520008059295318501154824017255685194182030626513707600519904244115633111443080784922152503201603619747524728527769167544294209568357410684154651915910214741246487197653637089419306011473462961506421176737859933037478223562966744728450799818441759201020269717206066616209223255658247622716791713170432005873214551102194397882465013945952200423320587706892373857111153447455186298245100937218918101691696066404719928040427132406662110940349242432911117244700674590914995352794935427377590558837757213758333153675499523181995622618254577047161416561713322794346637974175234949772964463584431463130323268610810123024336442215322908912748795741647717621295417591540715468309747966503605330484525896026651095420649127345096705490353732485356210500907748108907862845362553640493424634686183294280398789745295940971221616009395460482283052734514059017634945741766850230906666196462179362528629677734013173428605609244639871074647851075545111517856107493892694756877678880491479469592622303248363836331401934696081139920733555621485062629166117724220969924897725653753103856457303799029292193635837943434443701206539766746587783341253823450922268811211378142627450174479370195335262805349778863784285480454603056742591585920961582688525389109201821796755725101094733732834618022636153856107602777766341230288903661988318038499858865000876289828170185195064053414455313619181239160941792723805525272402509065877803280351100820137348328831190590935171020797679832011626828579092110228979473582878532128630829318213626531080847711238545101123332733145725353200142551879803839884058851439362524779171079047082713344163322164065160564958599449175670387939377278592899202010187284569953514720507358565830675116134559716571801593948285256320547069337885525591222639546282793411171148450185978122437109576840756418210996012302146844467396626683765031617333638456981436061513918155542357153116654989740335574537477823862899718647189381333282193029498389178105694611266345680142978642706210383628854341541620151173392185594540644577603562721023237939758906642859388068604396638379706639003682608733649409705231827981487024275555620531562501859702757831033627315929776354060585239826661960792627713917986497592381485351994794287912970282085544927026100606735800958109891899487896455911188856186311427608788128516902337939878423560066146907229942822694058658843571784480086720429908925091274369588518100897230503542325876331371893564175470283287165334839375606678553175404229505941697426612617328215681751158558622559912961620754999628682419844553439736702966256894423670225826788200021471190517910786728568117812236680261893740840932849319322169253753915207480403775733836078346417751551402624203554677973839070258961280754969701056230173507982035164224265803424678676324411226045623288898996318999277057155738079810462487835264648803793894512945774854134968920308127529053108872744913040660010243443813032782327196088127220610646589068058672086994740350970424267627022090174022648010296867637944169336981411735539290732301511214841001083757663420229572946091435279169681133744235074788259070255910663221874314356758940225767611559098769291903388773485739984893444997303464235954416914849282512940474959475449703733182629672531714144648825485861074401289196230974172294702441187510150335961834792502672995092476971782586908954076728000515410923872729635261944730381099626865676722717854200983834479507452732171473984228363850552612237672946950444667128472966515866079918173215876968631144897399159453069986405215398469143837398979429641403595008731820568479711397757387492570574045245612713758494177672954574341166633922173532872897619338239067818678827663209502056053721689621056230289720027673527834789279904080024563215770961741491823183653620671581366540447485087222703154974297263061893215078167913248270241872600075293293383860975543842718268895440641305615138654847332472140296348600937869536750954298496971419311294505470511550296123987365383014532919507300472465222280483545630393327550799271581668576413375774970077317958932999365119293418662447449377384832925127276787549528344760148865017062579915556376099440475377207043952446795065205751692218307125710663450050140638015285487761745578114160165457310675282954415525829896628576624623095534240230967828999496643008451096327479086108207965404986955285980284865331842864329408406791908693040323605674698200774967624137371032341274646529309730463595509445872119537049575331513235478445989354332366297489937354008226763389461688884214747945855737071399539553248285662142578500517790109720294425858748886153184297150854192714736998651701086939676530115296956041859256054447090122410103891483412409615537154464263460659280918604367402437172161944223936958908257304029062752726722566638297155484948792314746753325874848557824207913748093434408626923916001835741465827586374032071968864074746406150070575403797313641068124479117922231469333894225325568186742216533013365164754193480321444821100444403640233086913055825366963469389553926419722426464630155397068849707298116436379763814881162882653936392839997479144649001503103196252191397688739653503781374359023374573501747513030240574368741935354684782851186000579915826504925261583032064772419284688086870716950704382057028380680944166526979793930012710003676804563138486782172233392400873279235208062020986920121181112915781793473257408025794864768897164815258851488076206955636231309043412043857379786079437142735979024193844475998113041847148510326999581603833642046484925209713285121914660979287562977598633440924890628089925759345206409530369334981632820709455428783121920055550610073350383214847084703727572753213762530472661262145804646995011660466449691301902200301507710175168957671355123612470115973735756543797021622423426247954025770042426377580713183649880078036780113506906140378032114599656243021110489334096061279543952125091286458444429225959393943120540032488136350372591926448965198418971972428081637381025191005863274160269884512446233886130826648924493068544468484652069731118674491116054125159797412597227901035479127529309913164465119910221441186541754458934621751063506281969871735684167025515613751007195413364348506848719999165199908732867970470100145574951475741963517922168309019462152697336870361147171074536662031577287772414467034816562883842443045782473890000271017858748125788317210742018257084972062082763615595281249875200312675275547085950593794144287380379604322903479438170887872689226580205873747950753370148344227977810832187125533362240514745637244283375970384767719977123887714823760950525575367632198759785693235695027142039352958710406622577189958291092952912460065533747169399344249000993502787496936234050116941006336088744124581335163556309582654619946707524428520767702065563258070559718130010272196869463142261522118673460454817423226387502666838548880851953101336037348483324435969170572193851218402651080161907963824668443981238136733152727967017851477303842696486727302015780804194237731040122322532597210582055379541015630559514445390560987354646848651637124263624085335157708942049026785866843069055373502609201429146335579899836036683000205130229675574230790428772622893084556166685419675010986572724992426614762684928438362876580251929609828945148397618029387657703835622935366662701145815210320310344813193850022536219297292138665192655561497119909887018294031708309830044380385294405143999324155564342842610085342715292456128541725329891811077960438425825424263201216925451830200540243618676444827863739970489497880461120126469016770415116953912541840849819769559929646077649945241416395744416080116524906550611346852561891395881138123249030224029450431988474303461545306480466666276085181702856250993105596241375650959844078410437104363572424936484678309528658031860699442685779641818488122032521399212084846064092835074737848225200825165105064783257566384972969477701300196177716158029893131557093094796760634913797752942994400906082730589253949793146261144060307967219931465584162481944347572844060637874392469151889875613522463944428163535223205538509332964018465400856742245356396130144231975826331685630988511912707529628341204083034788093259495517604457059183678088426166110209128207461550946683664091687381114515492358904902239315597082330318322830933840546325057570484199003690328593333758006864009958721292021307565067741982557141534597612248429117767874340617111834620782108028653290165598627131252488202534909711899850847002532690543754966748867082468559732702505491485664271117221375584716983259298921538686721750321338752904179099015620946558466331422411730008329568718387536398380830194551778358780240918870024795532237332531750959430089880262626434117526657205461733775777266649305688422411772804164930989686707237000631551723593372814081873149849206568955151073853284760963874246578343643049107273120581611608201275654687592616493121957172815140055453249993817775338001485195324095679673533205989604741122881216149743833226132989619192021969553120717761277514676038702256471288459965128405977540485940769656766133407299051539629133521018935351103603078247707097281632799035598457169363937542416159468870210248391764295603402484958262228930497349613062165443297061049614727289759578863494661006583315820610344254294462256633774124611631009576497740986522731892332603526787325207863727125720424269604788557725897105607196199543022355013888084600993316909165479942077427762994242107419666924389527526714220240550168404468521890924033198713362242734308056312894883221214279520675816281092033498709905640082369552201324353871314657655817984390303466268152485571308598517165447476829620233852575103576472942361904017856691186377822525688237832718247151254680987209003214157637976099130441461791112764067381882066383118367635497592370120087576552362972373943570749604739932174218308877491140230527769508677598661282075711578239552077644072311371646272654538212889171218254178301497874155179052687747720604634034084245155747786036625770063568854254311132527780611100952301406889772495320173604592529764730131199519584665262853818002339768809571470992730696267860777951771815437141335602221784885671116441129739526133136259631466091531423505812798115414938501164170603385820037344159199934271627888575952631907199685125483839185357921524724597516940548181903432586137662823484431081174531241746183396796926789610973401231639715873579915032011667076349482318841914665163301156926168937718738181093911835405161901184188949346069105682016383300548015489888371977704242153417324910815333539303161045912355156129422450633738675924603563621723224684815886664156702570269158787892837252891148161311743417788391045231608837424445132715469839238294835820671574696221673367360610920879602329458895076112352371378836095489775496018289499719654367211851210912654448036550863622494542347591953751893244977411809484263792391919448312871827590999014130827510926127133015810737833895042491889844693754947178356710247016340461855625584950998120258876570769073770378731315746116728375430434725080064438932422764928904831457813782236927003873793241854166183926475690762767983117170308768814147335310304962113192515078919003486003793128155311768897754806233188063844559368974656731428908043166643077102033328789207367630498599069447253391217103707107147330473712553182613525186541973842549341676528878069790841653807547276063798934690522213090569145097912938571067334586106254314056107148761743657571052161152514806063563871409425075977136851251878806576287397633705210394979873721213922375731938481751227346770674743801438386048177431634841219597723773474516627301483548008842098920255307229493652681907935760082879063582911543379304777787991688718240916262548990646271518711808076485847814498795683876152104193272993933088335836279910736558092001414831689007137271563611995947421604490178647626459538601125872472775069267819302923963927400896241992824844634371412618878035977917679146523767347141174557781174103027826214710077324164950994762221612348369629662572216267322690463858960808851710056007531183619799593278871734467953355617525530466233519076187167728494985219355689223415559577223474886516881883258276515361089206241771657167577440650770715622190779303688583491226880766391700253910561071181349648220930692189433741710607378229215700588815029242824069870451905812201224355860511109140594577539668984011113815322244924959032290563666872120167768760055905293046848751067957370563767834581819413620192784989534581006924493416255157638697102285238868026907905133915486326938231900313038748582130633608991812989338533657328653070007878249887718802222251799338451162393106187146771959198779061624918497514468189797692513151446789597115970499658169733743570795626693574777816240171292661654191445599346774777359646623034625861302172018437194708791977519912837215987029416213197513383442505074196818515661604079591590503147552098861934647879972000638143643156883539753477262002926290510792286121019139117951460924483887637661630095092620782821633881829569255879170272757912064222736503887588833268048488400775508145277677466831629571366754577411150450858812940609288890506556479901609259999007398794569785072215085397402283887006462904677486967678996329096564841078338427191933702440027004776084737258288715004854073784228586130737286190467001022284519464615213363076742555204577457542282268990264958136574005093606913961510699570858906746903291634606812929855613470854777444691988937895907623774461248676662034051833143219985858438135789091465039484727436259467887456183827304664476233277734688520439706621201813343052810456253193483662297009659706019349922849177036109589345695677294644777795298706549009844135548127748056819929758006962971149611368581767459627939916429820092492130289695832764675233502586499288749398954048747437886749944525036968848550733599790614652725086680889848680204204265519336737959466654277547864759148045595096335163385987975633772784189657506279254675679650320352799551362170015345343000297624339029919629280727497273625993648555423883085649059058976294421369315527955880376253982515333564293338400308443976875181033410066570363389923309150264262133672349863034166066419050547060957021779722236067143201815726552081702016316506066172747889552033367282190974549804994551922979352470741671790889748422242910558878534871958658184570569972239914061495087060132206655774436208466760073874508941991867668930647376976009201332809577423474933278460089208949134944525247437601541255990722274230572164003798574354293096055829876062842334238765577491648487017482798650732625444673226731384320031899370169376028007670338865236105341890363227064170377301105890862746146934347189700499994121493946295754038905485320632126869288852292736520697209258082009195413483307487880729701666545931913768888842022901027336058577045549218572815712489025306617589863166880605895337394552154744442488015525077645199052484648648790084923788980891364781535358206672875011505174240742684272621981076022490783805712349751809635867407046781502158629797459294484729760750759806991034732714053846999679727492564963730078520409366293041544845277502634485569066162283687205419158371052305683741077411397880393282266544263334855974128653230310163823461600886098798510487881488997453180155063242106162794733797847883496725190239142874001136599222615664124960144345942279950189442632421099047560516726626018065145748051975466303478014735595310265180768039331856742016284390502252278048747724864821258135796616768190285976330456922347574960262326817526780355692206147432549419555692177670399136193831260766809114396725069926623335920132885965274016943834864212639712571947278689363397643568829496091552664187925237708342762246520443388820481207200545655296042248291725761916077331233577619739663299219843042905849830354151235217927997878081653875338043608788436484164845371075180844890619510426240377546380159612020498504129119580156585658222790832848298927237915145568525227021344852665625835762638506887294244504277078331916858558247241535785854683565431502694522841045411886668309341439622952851062000668492795019480933242193983167513501040551070754116917309123267185066974315274348445352845550216000198204283347905938628911729078617994715230944736280284901790122080728190029823436020718859273580998358138314599331596769259138534968642153587631443321625451609128076940700465452072386782233058814199824636111249435449800567160905130222992543431216284532332604541560825632646111871935676137437554723329088393014266291631882042321498326660507997975179832775359171217264211766580136606563435417159520587563429229290710065693695130833162226067117671616440834640745932878789824150176568857151423916103601364949988849622906686648665541284593087796149024243121428727202739062038253102154627868917084077419839779863154766892562816465822892122424217658438611880998470207799151024255301487605169995191818530152583477406697363796320378376743408634781155485560746862650307565301848671081341421527462357217075532553002262916892106399843454565151103510490361406613760167686044350448330214722296171845857436051072285836816759641349064594584975029844146798471064277053533160810246613753601512873765975906489613120207165314752047098098903672803350839883296170988066787356765998142467150836886439484046301658511830978272710455205194220038070875935991431947180978769629650801220199262686142839175717985531270427241253233066798551611207196855909134366320271398140312235289901119371953183240883338830237502256184082707934772260891948513899360644232852373431269072611840395991433602019965714925851576170511677802541247384993383080914408713645794032912310533660525604710817508475631140559845455943108747412524803419332944667129238609550153452529222368953830246309250343218254488101245736594933911033513115504472931223719888469851764262887304875293127738440080448121915629042602823028545703189177904392868575776173082804763804534442065134046688295045472983275720995929359934660781456173692618078823158407120638476827039052710241806518676123145248465972906927891012044833920241085033096570143630063147280655092809006756512511013962100660318839448943127921526288671711108165721648201715201236493200957300877338818041731440591290279512960305068765164771063546103817831353181478768680088268971297120883505670567999765413262069106403988643601624644248051547502752677702304608494986793554524591580292437141503917487778103774386143954649144288234216936112460253228758245906909127075926612554698847580081557945925851695369193888642928846793663429982344060833260331792130592735272020501062758586289123606842727137921355920207800649990543644522038763934845314907811370014443276834210374019291223966946898960058641881040319060708018375686886980741839348017961224425065036099651512760581826302666481505524581469524385654862169622345686204065108755091677527724685888775594767883310199345757712038950758330571333895752718294408806233550394975991989350512622609354391296570873650845940635516789912252297969328563975529030013070799636375403542556348155566282770113628377799411487836325589658410842342417959167916236604430299358311514112614018871262371340206396492106351682782257293639991257369821620918519470255764119756430074250684477007664879617812766312027541802904289417115967352065650589276883556376020150180037199148948155867979157030837278916119036367751732340747543471677616741403652680655021397953015512079583634089818925105180337764524600362749867592754739284391089439299815648899744447757410112926154894604211119334558387430100203376460442732089006962980192753062049601510468710014063551358475064081479158987856873016130766480216220550083496850119139649300762816065495371704436456121832757617099721897150886529072270505187132768010712044050852535001472905404110223887852854225781687668429759740211858238673731585465266091540405008392631607009469484729221790364473055488885274169440636395910708247790817283553016890194299437922129069065680932804844301418126279930888251706312774173174868300619599151125849120976385525403992788308657113486895764565674624074825376734781657965398198729100521069150766591560949332065245736346836127740865994759179467830909068132017689342605856429773509931782315581232957153425373260678177957299217501141375117860252844804192237721868173157106179986795690234821269776726046513707252116907428433563363360241210292238840582403031383200655767235134930098999422475380916725018092974353548217068701824580234395733742491683410848185878771906942761709841826551192976525297233344519143622744521743264531148030313024494056308715060552154371953916429388697284314605591351831704953062017726519686037537738682147248726166393047239229750818938173239654975222240816836381327438000565423026323872740260716323161311872703760879220282831359537128808284412345566024048302845529898978138156497175190463845531066211378491760582420334827810908780510946167689391440266404867585688349398827359740021000731744546273694251458329817380495265043338427337377756300759616383255182710813184894063050103688718101541504909202419373467370195514653271994806400649252218399110380109946330463864891854524484315753488342141772589236044319703417725763339034777983813470107824221450712476604895648374966376272153752672080977345632679937228913284530448799061016457684163187252635992810218075479501765937968308226425136451698025309363784888251363968351140010638115626397057433412360105169020226472740002804236357133545603376006255817133322620774376516788376300038866537660622129388100416577469467166703642733638271755074946659363444408393225802613618585987498459669766850921994722463813595104174877006058468135941203527773432531349050199868975033610816826948774225749684426235568674282887414798044732144726139628207741083544884672186306395145923632094853037732389769187669230163077834516620831161892330625006139186536744852619847682482932771510703120420614810676745753363779157113647264374977307300759429806414617331816379398288336213492690559267857715763214137632883917189352259428063277508107469781623254259830937318529705826239482343882364039728041655559633364528902794952108120498617124640595807430959502979752450164670570374089440760319910332131311622973952606968682079059812793792370619755706147420941151227971077095674911475629952564014404101870656255371092516987567266160284517437339021633903403376231061857110163475940197120957039912811274829042892796005499241077108914619103298977937120999882251122819407633156838061786013021768940255033975526636175733208803114944337027792437016620316620045940744962522526669559611218285109338362550899822663056770360471072020126783098113588278537825149094629589206338467730012473269666972895848427617120661109208765339630135475020705281624345315935224757748368056454677988697470775321176490678606016186370563775391141153687320087978033103873660438821728062685858149390365938597640948278352090622442721433872301791659685995484985295513519695075643968254661172533106748796811784411892690776634278997995267446228222230737731746175951834706577873015819191674321444530736983830368511126021131039006519326161774251628629952515665146265110269369563951627025486632806150246550489453518077846238554362281453824649219954636117819328774095429060600918393474561794472745766456102725938094518446616701158522068422869377477876337536041685729257469185768289954586004105599314683504258297668571122367596943056451406435426994415044250739351790707923729874103841019944783584532944279769748926521164806817345412108489076417777026165807225959766090073499200511591238336572068201494627849472872216690410459950401662645759281741438541708148464082645690130304384012909615764722401345581151293145696233168077399283585534718713504807191628194298529379170748775725508050445777723427879970049553394399362990236628026458175834622310191547452681583921164304264375530007854563782770255543929081199730045547944771967912819009356755563674595081424256574640436825793851216914616061999108947444543437244319471866655646348054463299395055394241277061053755010187223727648720689034058331387321185072576344923091807725860554601734247104310779616629694452774819284963385345945321594342954790952697533536191493211624616639321127052157428904467905994024061966735521695659567722599500363902920739651283400630821621010474777910554140947658308726902458783911139055923907695992828824684686708356550162943409984289551800420018448939057436944087902492054244410712231867316183300878855453610066290497269794774499847027413148648062681970745772371226207629308129620114883297850822224010570621529371341723574448678090322186131882348094776007979980997070323652615273544915159626175425862715687066327119985552562107581734070050803071122687672866128878999973801385333976764536938705479204093446366216001886611715358124973086860483375704732561285433411152579096751816359940485125666087381172215464923717683134193631451787722596946639837840653578702291592077903207465085244408739657365741165750006355061260933682766608858348721970314181421881176090813412453563973601661612487627564161627381202048429538379347366126752091440693296492505567307207647317945903055742894954442540788599386788401069006190891061187121493760604572482552208003980319488404617950213179395458594531709272373096969246451909420776326559100208959778564173356004107578992585451231376484605761997950576606783787604384741470331128064024302353999988358114837879112777812069710994348760910373075228077080283150648389909640211238392266189570760867743909714490033986728819212692167117821372714535100648424928103320098615762554590138822156253958841740453701024617992152564458904111739741089577881942485225941498931101892904445518816024997468494563108319076293820617951348242219699950860141647537344274240034719800763453405430131944309921543190112525230011754511982832174900178551180537050165289898890121756595621025433271984460154823105657883693063029123989948909243575282179148744484114889011314255230040610587818695200839051834422806858899353840230400384760949856522937089063285266645443411000681692463076995588213270068231596702228023450989898972879606582539510071008057071616797411987533815341744997152819560401702392467355394966947998537338026965955702479832858221354324825396031866644416336803557488898816001442126403648796176552247154672807096515583003313788315144318711769458831727235668532502825897279088441189568515784225712089551506060367656485744105009300492138658607506688923406813733586490984319997390103923036346673440488995881652351914496623279948030680021950017393703940559662791353367204192047069988487637867792101124511963186770761148149544626700574710717749952338919478151292540563221013497688472954522220060756293365150675127877795259898145073023951096617102396477540594827527887416870295956051624810359547450360213433154959709060678089456907845470235603162264284538449606526829977538478314606783479208188241158571728041291896899388750060442958398439642243325204426340592429898014450382377456314706237906046492696679041005738041491213042145976427619294064961046484999332000074167770922615261951607381940636437092989883514601790060964227763633098697395400668031425628310566122141680019823453703913070296603636283218295516874465003738509595399296501926692457272580596383018936188588142902129721006059542823672798441062310051084559491609480783955333429749275443064568083472458103542407127550883517540475262268739618798765685132531469987575118814845218548973442575710595556712571148793019283089504405166962052921703647999920352441004423022482453138666488199076479023643391327590625579900958003118814088940456717371458436456386593562562020999730656951189227239645660032439687324522396070834284676381540222002113293438698398957794275928132245504480552778933042859845015254749753168391848878746740972639365126192264610957890861249101496418206372867192856447688796871366029549013430458658017033102629659527818083175123621298828866322471610827549983885768732821278375254429731179310065020046279745442239843778594273249522346925537934834820409131018533807682137676081994162542275063352413541395403989818264042751912943811937388315946031468342001947523482227324069250409973435598122757218556989838875776856947015660832681404361746300435273918472675323621061076323324717021848493332990533225523258953823206751575652164338093189382485044130456545159151597564158091753540268616214222310386150112723703274070913713527071594634644246974041473730086435783850419233667235426681162651550318978325928892270296304389956030209456369737536595730467366642251356110904882041524048262532534281801692637220246490999542450415704139035757598743105264907999904655275289512624927599993331653003080260735598768960624353608057199008847195030217888810585225118582017328314755526714792594454294105540847361244657010204275404386693230188952642268634844621077642935060529903723529819990579272134654710461705964436925467421053302524188405158851120993610936105570215959363867535070548874171512226483739508404670265509141038630871666736047511774133342547557142420647734264211229790036988512975166452921129356219004083823058348490890157098366959130604124039777984566926695748734440309348390271037859477562960982551982234105825697276306122743539541458409309427413009691033981594577242764844565531309985702177873774893719499768657909990277953279433321017237270726206226129751508462261192297808947583330949516793756540063550232469864514319305543887625626353602760379676815851784421955523146619112716754099037094721290132809698706318180254119226850919652286805185665759413184213130031439622745441713922506973998519219746976096705513832932870257456008410155037967279675120915440996721106730067512900790722475414134561941751699011661562828336458980653744000604896833018475650925272111450859236229361767191511577710585909781005601751163212021669043439030233154230552459826805371330876235769308098362598878110105892523724934148269977475525973825741180702012201309485112865228142463689237061217080527611992053720946944890372492017439232272348930055149257895966814173495328911624877533984558681497324999759624313652671098770615197217844569836191591322823993042259157629709294938824880296795950120194889607434389469794835266131989547115265812685761504468841221872059043401521817132712243648257194227366861432935881465988880800853505376710117627795495644405566583186604151072425858813699567342408329132995687765096003541321901237245745804592724983600186098253049394584361707360940398521817327545177050054608823503009293560145072350511357151307685306670133866697462392815322967029784254486705423927093455684330528752070414962697697085121001422266150979272789781065832773170503878691472440510585577562284547163915293850529312428330432402712846726017404334630078605416251743435207542434414116944386278911542522415107403138332703008241139660555046280094562138529100355249556537187247193883760886385651238336172795634043756804712937773680326361832902775684428654682225268434388078113053646124984445697141149789460431960841797514084709834188953787180741824393588599647438258028329849539325002319345243117571080558341695476120515769522846595947256940277155680126821201410868735089757237009097245181795973173483161591041312090832827216033437325083399207805669492509713737278323265278043810783494220794763544648542001794122037570906901229262665651756721894495782121590142599853337725388577790056891224937144382131358919062432326217237864897619649152222042671661632953924175675094232622392948573688261273293953013587704301946071083436848675307170654333791138035899615304058703162219747832287915008713878896082719973547691233024551489117406701671211501512133153436226065793591458157119809861188943994617311443210230584454829981884648136113616377833722370301300906930958290352274053121675302587054250789482621838960784617723656925627089415501350382985435862217366789205340547570307222651017584123853431929510088089493623562301479888643140609945493055100611669009753330467198692217698360394229956393255223679406162473070627946207966079196395679834982172879154595250240952977699880448668375500730395574507380624808027069936062997191349250336920743583228849251842973118598036018594365189719019311950857439520587126860088033571221436189363011560867128484515671796846583808870903965484687448799528055244518106695762283908377407387478905912023832868291055499855650309616169686432197278628670438591878212037698882492348055159235079033523082715923463524309380422246678578687519353361917538281197966510878741585392504912399097269246205573610646259995811968074640667181750778944024107688911402818443007408398413940897411221939298312851757199111945543233637136139925361919433717596040969283491731422755526477983892249779320487540578296360018844445065988004250872817928427047495108086996638044740617909550869930661652073539352781981242492795809524978168971940103602622889007953692693690465625528674447343981047182137386905806644378343406058955132055703722965233744932771251548173783222940011486127046447395003422452210079379118977410610455146300039188632267954881506276753343161735761565626147615743884422954111308011093733052494629762289149238344708618775170827856316665476969913846663591784069674827177784594339644271034402804919409812825715734426865954412459945322194014068497444504811021202745133011104977025764998497234255298297786602868489551746697061312734743398600250938375229184974560425520403457182538334862596224408789450931080902543757117247108272252795661941444349213950985804574353690622066741237939461839280060073565634756813901993268920597409273815819672893558626630518361516700378385521337175770119334562775549981832434641608927266604167447582835758158421467264412426249208648776489141136296407417365315627074153829437385216713616763430277738571144901891213342871147650346181455444702594025946947898640804578064609605129257282405411241721533374127934626278536474110485183264263151189578002367910664628601858526661071825678046143136975396106529530000920683422386639431432543332636729431112885580451183817666524236081313068325234396139297909693651187788846259669080076570327469017756028414894104754518068456974263158525082422248707312963354720757821356676708254355848590345885526701886986465326116048685509701008070733342931489530888353579927471905114640360328129660629774700639222101101660098938202549779499563936205669300242043552323824889087735657886995889406433443120432697695208091004720416567675273655720274238163493585497201460427639795650119783633931088105120778614538332003019983891957901598553664442975660477281131563187191183643830009198252474783393509970100116268976378790525685739412946469438514896327597148051650355025016903729308222288239449953473595725440339300686364848478531324525876792729939709581025877202182182465111101115641287713413403953835174533633540985749340709546383918137749637984019850842223909185680377497929736917489828675308761645063763093140391042748640230002637492508886921419066627289062289147739461935440350003445502216156597192772939667345983849754344854119367272614236734300258751187434379776475132095222129555598755537460866799237235499132070273512892565584191466258220663958934765329342822416093521121108767325067515126086334613106065224623665217346041218808399163779730847407177358478618886249275402696679265420164348569437002997418609982198575866131231979115076142355609861708615469653342810128892667601144339160413926972262139756303522732193567185556414047843418200156288503204528678079429447637502106238925491583617935606260182736766456357441584615792364657361916381964869721781398485965900008124741230159292137517801899950318577838556281350432927283437187198890266665313944215105122567704027882207497873084916156189073077874015391116519826853704178183751240858286067394472084878512098900240470471654825993359744632879881867917517439347510412161369841785856639645766077560201083672827807471115643276188318089430492255673835375589640238947050531091631921703539280559531628919453876395957546033981310196866543847383450924911998068889723843727306327039186983445202433486537637076828633406751658131769797753133602646796605012675933829040303353975872360209573796817643806980014895441300321851175552862822827031507103343705141974512582084361251321392461501317351951135042011747845499746756263306905185423995621072772263352475254298001469962322949449476762993753644194875439801772075320498438271002236733589796977788251775814123500680385785612779781391045512294012526298304538164584188491031216809801675988819051659708072407150127155494977121170333845134399423099349319802343264627760582821549161852578307126675957423724559265984881073532096704664933100853471749338951732801557317998240030045926237204172652703496179635172041148804900941175998004682261161920950160829424507113297555116280414135179680916404073074820863504750663483140143845221972165742634280222692418131425082211178272549554956004762369537636811806206765623975628803490547343943207090719420951954915984820040507744515733984909305132218209940017863144627468735073912579421888368514109870006677921671811441557859185780964553846590594143626504166058279656262513456814759077011437357489708419510009516403851262615615718613165146799958294122376894286087703130094787693968937480049695202343207973688377497969505460966508818991097043729223493092030442962359003968958100904949900958356149725836576781185554344612646028320797983324706169301462183958892669142067359883979048230018534675453551729236159252254255096923716058067657058738832339893231357746191084678330596536068030412864193340999228524464794043180514824649988572717831846362584334973183790536189090818277252630309753385083862439230303940874966842739005116056526558181948293828143380006191336490236906975844002901841117085311685771168909961566154771624808991573755154341954249210561529506247896093974550594516639180861562452413209663427895563938856250251063517040265176410938839937446586524827758526196074743903495618780613108636377377068297860519697075351386925129746533756214079559667286996909237274223351716766464168654605086302548334963264106122023804316542997089589429889792743291365107626310977992977682906735505810536025172061840600024303056968282595334526164274825068226246002929968712369159768050135523044130381740099692379983970691063017635460353933876056681369476982320210196923311835805670640857071361246216078009406657922561527504231563671046186851589380967396573138826390123866843610284477017752133352998822743519999659653849327232800854885507564630459989288804468839741130429388247729644464954892030195945544132029395630345509790364810911643294303809236039373105166755475891994994018342281436856995327187195014610106366100070946918290315760369304329775878853707465946276759787790395528576984206735789876317558158988273417695949183129042402188750672792007245534940084459770541758886388241045208928334212848608954712585443271461439077860503204447065532003248954305364764891717652983171937422977732821118041855095744243991188936112584452724237478760169080136469911000947094142489170335187527580473580446503713820297844356122822618313107647413576565662112917542476075719640211596718601881080715296989551443030930650411208278416850337145356176762248057105272654243960100505327437101477441175084099672701343333761570877264558495068965162414064212054707981743261816121808473793294542208020124822498188113616031137149140898083197289011844464572937198328095340573098833589824247538069296392547202206929489542037328094890004774133305509709206210136415869178357277851511641405492849753721799978073128097046914076567717550874211021832498073069049659381808662694274426154544548937748572548947835912819075233877041301551938745751110663413158890097881635168851221348693227673907209404038023044840548122981380237286701931455662123019493065875760895620779445359988630310672904030666024845628075588313007675596693757996680815206451235604437043923526919501308489741437623514869207947232953438117424540976448175063082895231598484226705631899741022046645289088338754857438903340407257115580721864203528647701954130400598860049261708035424337543539220783448751202396263532202410406913110836859307825797210832463183776189523695340165669878232750187024369521449493078823770106593386836571538636787094865500456583337373428995637388460534530608539891849338633376508694512715049542875912777207271876565119700377614063370998233466870046421360444304983660875599257541849927918471279184950907081756406608025099174816312410446488690673753039889161353444027251238546860266757986920531950236425886850482450829884749304790127517904334772432389221590727420156059258594677900450887391576585115443352345650667506649014891796256745317033399011742369565970600996056352892200233784829221271048923293625946271139417946601833325290249925735403332389080909602098328039609371238362439463456128524652790039641742674079324314826735032451922879346600474860962312786838154721472732811539601187525501845210752142973518240906582043311842463586458406814851912430729449132747671031001327844704715096576134171342907521947188829776785878914598946629850059735460730867028589539336974652552184142924193561149205364849872903071249184736756508950807003596527400433624910851646662718008886858894960935386564413755083894577566517897715813596645178660640909516223311731439951287484444630203834995936293718317928919401488813199935277823364703857805958905884528003371081722508310062297033305467224800340549292180686419120359741599168604362669135398685232123798093733902225512965528677471983634756529071614904667390289314688923690706917911630878469176681976426878573259258203317826842959239118353347090345715942449055404947343410801747625826595183074866532509304904716952147948114994759335060570092151824952598981180575438087202164119328154086221728590517656213605418350773400695117549265111385748936463481944881590964407230506043760582007057993750951909787382340007496233617360358455088298730251426650231925255246833377817110250258336910156183596614882197058014569601576144134273766587746089711437211739668262521043878307088461782772063607585923280477106560782412609675433056008286170203512710210677826729919092971486681451431049069606890236523993339578290809338846908732019994688604508226384948782465819274240890413380020029562903988410505627349947153129678232351947372745660336553477748932176444332730374337404860397408811136774328619773264005307180668713071345254002845866040751847300352752421559807780132370586385190056683850074796322771732341847446984360956076425893000912778891452942473568468603161955215329785585042666866077565977497844349160681807591880267934932446369061090039067010914344392007096510339826894762678619978375075551527788507651570349723715926126798273926574876811555794158524245154865387471837470222942651677765809523758583365258574873128803410215265163830295193431802277062180471831663747308584409714493917038119401080372514253471213729349038023657176242723192265631160954172159713850171903764392492591861115430417016971971730169318908470777448289358281704405454866588435996512235195024663537678966569678487893819486673699895902368239275570330641336460557958740158572148469634578466857743633600846792573432645723560679150303772020070515918159821344861112023873828095058397025213862770079117210486137451596573147924549573203071779948359004434711137508501321912775100217750124617846715080729195916797289895301390030549611169789730426031476825514144017543527210023900242405935719212642474626372636516760453932219414169360422399366436381071814909962650716655339154826226974726107613124398453882738938708887505916830237964782441555885217422439265204709822977332691786735522677864583535244582862891353133082615246021543398615959876705529279150097056966208668167733986739232093640519209188378412139759862291400049834495651418793087435905716032813300652429072646088788019935585632231877406574266099342385555413950669027299200748637574611184999987369100951228017042583364616715528655976697245420015044083215828637954371188468276651405110249099130663272563420824571853215844645408099025915466582324573948508031827708213595907432461457438964849688412099622701043826200501889295170912819935688737676691218355415510243624209489528023703241357307481948997703114812095397226435253275128256505297235688693115729353258410600850787588980881042910149432721932984486898438250342134830934573273507224478730204052139501423984436101754098694380505315653478930103056125080414283632713546330870881233070765143306591876512912286314207342673856637114676037242233902033250600524356437445706242650769422697169440225929411565950019363681219525713643912844487664566598863006730699964714686018951625902970009790931064960838418518306465516824504289301373182511083335029744280201157798054922288770849305658490456929880520394210418727167466789373009099850780582328207689481097180530536061920445118712492532104924746703957032656349051776090351931772272819645493696303729143240824654708167664031024484728609254732448897371869839352872769361355065784946901234839623266513784882826204894172800036662027075318695681684616725103912676324889887456345077485328559502559414836428170302544221468349762585969588437098735815360552372461551536048365164323678084641644192638157874678721873905873453998057157848573280855009279039395497411452537107385640350892900100695472653646567734707050035462080041037814336826992791679300749650633807687666702733570866609815127387855251556752648606233227685583425125002541111651289496239357483944445691643176038459010652242138609117319534386645375387284314256750787177509395752894402769087882883690151188821893953567686714401823704211946257930819307151727309771488791696716002565881718805822061548527886012138313588056721710269303840649828893344066881047256550387587735786256975321982370015064947404487304205412542534585903890356551598607873485878694039531533094156960138902941748925242699860527708259805796162306614878065757697989356071866128257121011071912556029495258544730145962970493630807601945692677262370639060191144820483555672354606856400226698476540264241462983742354543431263755707848305449162086876604042820291140937318702194875033568750169226481156011711397741232670693165119874827954377701070109195163378382031114369793769602693558148302074445772336743508979680921446700847398338317583413835373311999765989218555788906050530529252467115241370303909409549382192250684763728383367323083391116436021619874351287278791023302769712503911430027500438531266480205199252882900788254638291523561552717879765959636753629315133434046055792838716626254872687956729057146143592839964642944798190714382876938689829267114741863431025974793850707078956335491418306782469749283500842389920571740804189598692587618565469361571626381981184438043768889176710975236227650373105637202436073326577749651594275839926641855970307334067467463498167791684512216864477089162543865040172849135021503100560050107212407237521077458679337745998837517431884423372902223162795521022548220701556085754417068703886098489007491433478590473911593056133432633160724516530564183105727158194725312911880254998886775389470393443729949790548432468678445936529731267694833537350615561375262250749110024822640735812397117467763616179525593460162459125306727453789670581262643497566294137530899746409717045500109727193963639207500946290050381206148607954901377359594137869348873379666842992662855075396976117574808612090647447772815361362208427092408339025078214469172730082730825107758008000627177003510705856960982546459231743248692733186402902064676245293829885667721040516909388353790515809871192136095990533803488561730674622109863902925161890272323560846681156272791853187082842391154576251163022878088151116285921379464495351463055719834962196035795418373769937786471464325013686854423604259705540563464836866900796696061362635485375242136453337089860975745108678188827682174994482612396986323962668344497270934525103749466641345613611377068811923962356107915859581186652189486043344093372567580622255096747664449765005859782074579541447278022478609965712825363897273902107310284473581855439016658977173941939387657245364555579086084944780528765545738565026193610753292567136003586871463486038426857936919879640127655776794305064049808223477483022359224499111500561134841421331265308044109738928503662846294396061380672435635672241420771984362376533202783112985049102744978444805419027808235560804593547749936849619317638794057986604661686339718599296288658442135098360508970322714208505439742348788330787314440353484272752051643756005691515425760921894343700162581215898539704107926551862934473440647887908579306091735686647779032105860797068854605962627514373751572784850273729315054765035495129228571662912829489183643875100903826577236504370974476255280463399293541516926730702337939897663263105002981005310187296840408503838422796423012606027705821968236035994566828489992816400102203319276630754939307505806165473147031471429098427466704748976399162616763987636181193070929915223361888836242808388128382179278164857985123131489707070876417579315865469984528676293160393859605842135095822903857033138434286366530763858742499714921427067754355343014393756428205292011748158016991534887565505189578443164995454199755982237289984778549763769349161625036475587950968559530239865443150018920198204885666866751961836935872890966461473329352439240933572672427551569784562504022586397413692638828693431319621764985841484469706988241629904836864100846741932577008105978480058393378897078381812881040170580790727503615930928444835164307987789787680967590917970692079772584828553475130893604981088520687575903055293724401396481124620500200630658220817756776953950430304962490969190529033673391879136112407723267084892632434332168250251145538312176657312599409264474811777886117051053720277811460450830373724782963878775418843326478420839305326219875955345537287793590828204558845763429166800184783621524057363860565807040501880335167701894430505509090818882998851318989723820324581457315656020658308946997858784684554604724360919426105801278209664261941969881536162325223691124002253528138082163396997414924094012749488458598904684679925319936425964341965364899179912526124933633432923115307730366813212049263458539105700425195632246709734763272133016737063185522965585854561446827875277332488846913257248328918574991250995706683614974852874678736804582699224383204339175189916910009057398678247359014948353739471716146828574627006729013052941550357371501923053252334203573820469167525845300018264269404489468973386184053868759522230025922147172401747946453733447102108861872740844864777075124928855538073684623057645881699362976917895939196690256429079498170978789989336692271872772234477371552409374251803428960569238459422607848617834539575991757974277503376877772749906243009799109411391029686140001840886973557412846492386828330925871915032348640260308760993409889084218478353130240009181805712231889621374412234175232362513930098187346829417284304096486718267215624301703623726319141606598001270102275914850513806294946871129122059813395238112918214720115485182343322641519276343683889309002428274674652228522121476294606712946998246215074478746906249597755069651373402023267245356294061151193056592788869493585427666232805730950990920684231123621313581618093074519204771710447396771798947545298067327124765833954561132712881284969748534646758613529959702530885679061605737525874153856457671710541266671636552009443514313227480160490204258368163931231679253763473716416201447178275876943464278780512083813616461509132537019808503143315520994985400819437045120070708830159384972665788589239396596221452103797374990537168301666459366622996889587986302739378675734300099984821148293218595773110019846744231052430196046639318819450190624975064886980671712494455290955303484298361588538305316289585990226466486036044419956442776855615619643168222635629811830480551909878248974897419776035749803002605405304711188590860788756649134173344329576286706086422755368569701725467574996267124084645711917107396369400343390273892291387059491523966718868161091647187185526675961485618358800679315864898308295262708899655386315276680223046716849657614878637590345099583870267485328212175777000462761797994218421350580667169420713641753785306763519542949338567842450838954599427795854609305010922853238617708425759672238409358328395683221263700348219977075013778059153441699391851452781849846014746398268310458433964902669878723784013318922781514369539411993096203592930113218392421688783412329380677756989945601308269832525298898831461615292202047033694569875152893024774171727388463533557672104913060438970090456559909035104495630738037550758655822963047795361767008132288737915194205008388383405286814996969764356481838908533697537705770029290044027074379412730043842197207782650548012206974513694721266427015193699461093095290043344614122685739781188988041508345926198015990592447673748140924628309007436448771174576174478659962655002655764266535187669861707108730025042600800737530952117471323119132818431085336944042298296748877540443033266158407021371683311597060438975391368553401635254425240879500014304246155189501238370622709925031958334685716382637763264999572492898065353184821938724916945690621526329990125512698874140702662503238177583801842983542091833917000367611155097454454660572594903916813886111303413949213815114476751444638478618528177898974982190030756749491871643963695293366134533338800925440620421280187052294369825673998429666492339923945719634085019026548764033405668056339924200527648350737793851839346174448757206234761149741279264979003431180036456271561992804894320607912146574084578289856006402989738466319278516507406213663168278644810904990494887921076835997529624591322183637448515160635845109101101927823451805214965681524998754030451959210292236196099731319461622616879873282431745145800955138379426901789097648214923912726399245387311956429922184236660082889749013512005764360397464586842009438546644281309721314580496082894280346890140716091168398257721245530100337963550012550472106792591290432816977938403257461602759544751954123024965053696414841003673999589170623630027718978063944140792752518733768765544140916670489202664575451398599631805834809585072627344104954873873719131036397648712765302523572126332853702145879637998461123220263689607955752576493794216165997207829972432195143078669708593493031117557559833519954243815187270424859230326656441302038895132473362711285731675495423491294177084534913083983085686544792750482343304370036697706788505503490667300683226343104042487807807953652625484692401229183650054001373806775248892682488742833980643397225575378306278319532568679695783690449698677592373904441504910861378460367193459709877270045177829519042353678674900677596715881502410384107516409075497590509722471576849721099728994589577943251423982032916179343928989511815017264563109019237280409695803805205487464883903061048081532364924545376907811817936628596341031194806519365286153777031153173486693909927325454341441350433778227690065056011127492919243229100067229087230866855488394464627708333242194077105677589001855165233454908172036128704730577536024110815580248834322420411563033842953900411382865873738402820004346647877814451025292716664403060368948924766240551861814282096281892715510232740018241096851099322931248942626005822756503008760369081225464935422615887062379664576411756022112933993063078910979321483811176527937579442342106485622211327229730617490311437766866289436493463702167140034677348802446491163179055479617263394641663383623464019856388252470478103476935373170481470483552764147633304142693672999704625574847439450089306778502524613940240242120559736570999128659851805017721217499506748925685026420236379863582154305886561686054363305363131350139017183122342553319235677826481066132400491489770505571225324173909810734434960285701132390118471639638363029182467447654567899634788862462365859340035581866931571846651493563843358785072403789136244343796858492213108377685687739642378186287007896620277696646934581241727790333112157155452402327621383893535472988204765641678246274089566177828162047454447563363943031879563278105931139202533268345491997530954780400014138001056652211822526842757393805608073296345009054398016642943290189686039147222745962508950964174511108894238117031890237136423093693866101392220669940790658251847316081146342876627787554426595519980325688688927416133241819196408135038310390925601077591962519916261720383434912939035087509530675545675668791586405035398054344891232653754705805129413613133609709221364262238915549619112534987185477343953768026661730216618383095364204392135744926522740389940046967485513863468535558651707906088003605622867249284073518074328248072633171488191474967656488583952826369014183257173342800185097039866072808410574365407372410071060338088949226966877243430644734277155254368454306080480611800781300827672273851523940817319884290960379270118973315633667225900804285442441620127835613956149120697272421289175398339911528485106008272478149000499942791154160394793952488795190443694239462177407911812894582578369029786689989327557124050915389665702047557338784990834515150170249378045600928349983377974001786356259710695771666674423404652249875222925407143016531454839054511198151623145051334757124334745978633357242216301233582364277643173866720801091321401871836324627197180199993534484100510673982817014766386122084491977108699522804050390466461407468835220024337575275288541537835592574448266166036630930722624094868798909421575849330380041871682286594454327550380202268979033051421126322867026361667915989728876404702732806366044377226918926231614575919202148231024962414735996618280315433322411301265762690593834495180038364102139408701743658725079238831084296633968790323978047656758555511817246189938365463593057615115400941674460068476064722636515952282987978370504328800119878979599380003698200018320705897364196315409817465912840526062054028241566494113999884598030630442029103374166257012742037378635091006000051956804544793727311347433445233919989055287435316834935423901670572296204199385930668194514838050342114944810966409292886472567415357126281916467247467367268293396159886723464599059667028439890978596096034522930100084047553942054616713694561605594962152007854618470209928779190676190712062042703115124770897703938124772988505760084413226507778462185204879615116245879678828485792948413863947587814031540673328981551179758435647332718342530415279657542882241979340871561926031232544678925437009240898149587971013575589003189115933671838449098216426916216251576258069116451872684003109355633924290098063093322355860040724432774757187783858418796827815292474796766883678333221388740248711343201940842246793230486046984603990237331589159684588612479821203531507519492462167347242939066267799765846494077406333524595882457899997128641420928679665114014416677496881355550013860521472920545651051096925483915062570184990232534747111252415581759410776129418879679511998867605292720161314871881518107617102570563067376271362128728768765371985470672037455984387635093789428441454384510458632695539076873914985642819731413329903399837640981836398009194316488430712338435908741046948779227867681895868020783517498168960063617383622665360275337364002621055593539161339119609963425100320784420519945345248483313774288874233704670592106791188384365867551889681030911259588304342217177073726649800173577932872107251134451576833292081013743604956788332771546002753063248529232769428941877708453478116446170106431460548151851549408402824679651594491749736123430078341202169709742905418504711876854539307109869104737329336735870015654497828480700811738539988482112453004764040945058977989423160758048802362435308280781508540571921247488666867569272766917536458850350468822148375794335810925622599280982125427140220529123782122254835846421622944365243631075729048013890413932459063449088094691697849062559159956332207220625691954376992719573318252115927968818507789011240815661548914473628621817956607012699918936682809400030217183099149486671383590284237212564078503366377187921009439941680811089573142019500119762711787473902305506631797740622601034466275170585753687054180179976198193046905490510900942505040868835136254411789191318833085555266936147302468381819002776786750971782816089516165221096069397185127138954150440841233671920992413459686869690652342750847122549907749273916435386968267875715677624884218210985338138911891952237016053110364340959231893882775499923972786662543190363293726805035053774068860215528939906021093279242946168482642487162887597812381296083385015005845896081569018158169870519758706216313531474999015083576943107840537710239817264067811521726097423885986121233397698623406722939502846354093544570830249056040925405420095116167777013940520277084543139054150747017599771033231604779597155310482760030899391777365731816608164905404781662816795906516790477167541971533902558747769938738127027524082075210379374337079251627973874992943106635502075811427020351993467328427029502636107382176835532537618748063936341816675096732997729547053780749143785322884145757886673123542849176133442399148869288147930086015220223636836952101487499510335957924284587352991899005718163330441896200119520358831436401416884500911062626673228291097588400229589558468265925030225157786472181549640029011912242023150284480852972720168424718355514698305301153221271364207140266108950616301651582012089654562129513885013051563688695830505685352603533585487133896292372435999935334163517741610252119856040373206106860796847890382926049332458190761625942695179147411916857243444853169688764543114265798951884857646977751381619745330746499333711201156988735891615692956246945646730786601568933379757949844839036072714501740911069855844188614722800629999730265281290882778921396254793020860780090750839796097627959081379149423071318751782094140667343420431933395784193470511220660118772314466493400122580486423169333443195661811804754889137584030937924092326907566860728890733039824296035628064008871401720379926291396623842647909884697251771627873455213657550322266979059888073747442332079934289807556326695309298541611797715530747501941163525677302683518409684825796521995749484725813732371309629731094337375662530811507003406976819952890171749913679259334102014537327824228025657040256974753362977931556420543620231312315163994311802404811729489849338845346809823830421478372351056234114615400580796362352523502701994390155744926043203120021364272653741896280589491283183920513137860099288806100168129128561707167802106828317300917697321313592382072033369955168610127315416609620440049212389492038951653163819437156606377726356752143736564044150058196420571010847101988228303497218096750545214542507777839211724489547833495176472011041141058282450235748173735036094502588423919355486457184226625697107672364951476272214925418834508524325433089599730502911708015766188412295348125675626227537874046805055209343385653982856369699319360818092343615915408335016248752391979296388250945512554161506025341820269086534302537068981130709744908601038745976985161838928477120688498909778756103617618120339821915719234662021841652076101786219022695873335268712158323854243784666244594319706081753584900148789057045876575029530391741419190506035382506779676616278238504748138265830175611252255044346284006592658915361759553374977526599549208278568367668999040221746475902728830387435060212377740440614876146607694991100532847604020213484690847559382338022032480426565514586255849217311999719737769797261931140388314610659673027404337156358154244582974607649071916015209241505508968697147401068448075707263345103691945726045159663941710537643103303583517202112742344831615385011466541145485077230075343663957304470156344687751266279283505934813213033127936772581202180637632727851313305640968377207359274286801393471356407251495131637322635531314643519869156315147731420490873151423608945952687741084756636822817744891790561058054897347883418488872210140145103186826134914865284077700198240287009281481288396287016209406221883442853480952224968522512227153783623480190681870009943208442537560780884751883635230520965620063880241897080183288918289697199686676050470931735349299284679443368341677618407897352003602250413505720454288666784958075658559746503188217205498436454382280571455037187889021934994798280328135270760076804595787668671212923241405212419159662797400653346205791882791941494789990757250560030003642625794555700564483726423829728067239478454771950672417213553758233855730674493425534245091150036529028858467793276371715516883148561509307994113650922132776257576167120036573750564831116403380927742773172044372303369049523158660565590107520384392034826013600395567210891719671717759841554544629550058928156391399247275958376413182514697860531909547511104836659692417663249956307085351849491257368736294535512373733744280150184339304376246792601589106184329375527401499728475393781714730341503911585395901569397312195485929262026801808307338099076203669530781368221584824999845669436611407942999854613212522411316701275234460602725349352559794872331687022194891740165131073105966850702550542282362002599904108920095827027966358379392834230595929483820088341813208048040529806653450851676130317860042077390962755550511096222470114496901828740635506477264622913661191158036943200644996949151311068622904882935493755700545597049563078097363245971119642736069860677534674889844415872773829616500873096031952419266539816406429583735616994023500729709028569820867485640182467941048696300420584289197694902653180827925248289262434489934142408311080277113891844910955385066299216242339822883894107916687858657537292123981929498230624644770800739946358223579626793000134685091689972205585482320830442401449273865621192478845027768281595120350068626970484970402391585731696086015662462585776358473330162092720345686579846492193582799452587199645751570935562445113754275331056733936098595967355815748934530915715142423357705984669924397621982840978581233407582380974115296985065990044359690362722022859346898482578532918576690739086460678249488981696345519510986060252670981110193250721181025337815201073727792795570843319653180709176504140190297058967314509642601152895845653405462298143157297713359138489017896362876576006291076106377602837272267433224319949849044895937496380620480548223458393778789383187383550792710631180336616541099164192935895151604323034860261835068810863876076106070884292784206622307167407338573935259614922832616029041419501252057739587368859021950634772171225712179638388097825920116866739734776176070467670168395454032686157916027383651690811358567716459724876026371317591594707656322698306365200395031200420910110454097719622535576613938820844108146314090001880054362834613831181031273325325987833917414594692240095448867464233497175679789221835934135155593491583984057821956621249743197240696214971357602295277779792402457888583099352133436199123028086254774070644525410433408617350868917586486409514049680304107374964023903962662600834877807227116501820240405745920586595715647140959077759880481276565764246158597210410909620865357263060773957514670179917533825088926719075793855167105201824488110887714146651449770832386049943757599994988589610042164832912977195290426849624700225705987096549144479479677334895977279466683870145414890354127744990565890866956680007202016110999804241596516656427634303216565955478358019852293774595263090813009436651090512613547596856773526682239501455587855656679039514590639069051411346653586819355958651220018822386521146869374015230491558340472387436327605167750131775775977920286570132108933913390292145202174609825275658040930467364174492384827702729228501360046739632497839008887535317205573963312286556703650381469927854203274484131475184116864228238285549487320323792404714883882191842055879674687901795505243936574764195140551598822931691781415172758636561667331433723487214500710448746259315845861597238253431039916975461109853918798332458547995840690058538609700470098919258720546350300973945547239871029101158375360354537757363331930519171462839485731504990716485586662734429728940087519235624388586304161028936125638889108756787376614387049555417066150336036219274708949268253943260723744041893493412858003050993508008901782832938241776621540144920240684310897418281721283240806434748414308582663993854841416401969429943272138769152718573008236944407368005663971934962509832184391552669110773050149365988580552021938371297712885273598893202543240705575952505219292882263619470097439071895383881194341315882645988981417660633141001163318453988009757118151777965231577094668396743567505364869277685539302507317875422457594078260500093782067330149008948245079499507539678710492818759906261925561733527548659766074818745835371305230708308747135198512244122708969366744336034021085202910644980319145040550830544547034910513845991391820806055522404054316229330194864614701330336061320011206368345239940164704515493550947011488759728362378363095026440365749583231651490261295546065913642304744913736166814530996539297240511267835133235953444321594418788973013028244292151237209495054798462033628776241413440666780059231014952107565599008944099079705435792111858481242530526342271020474617319642115103147097561598966336456564278264307438258569028581974703849079272405562916872388758789240903362660620232308937296166712695846075678235884209636926074182103491909083772362013889831095436502502695707404911573432866048094887509455508675924822953016772715225189072892133449468662526100989777457078431190660971372028667091336364131301046886638998479146607800678056639314391530422289257896931964509595137705695575223128850216887088792241619051337609917161800047206020801432554467168665300578395434457737730214790562948839603369757045724544424266603074894523584617092301349315293812434214525746734383824937211133671345085130303152663959003542810399749977875589868656276182886423521911700036693968905103860519225242458371290122715539715133424342663735122781803577825697641254784654375240774328771537495449921434960981080407362417728814493693231089728842336317902352324160581261066312592190560166858187453027565800938007052870077169503667425993959172951923032353984590562626031225199793433544285840644147723306229787980800893816080957786725883602906242477570481525234686962709340419324530968223096044768911027332120890739674506631844686413500062695211393522221933726245431029562486658540143017418497427920942928643027359341444022436678335646710492590048310187450171046529683157422088232627436511269508863526778520962636000659601118962038190314142132721189167525063403532393748915709863126193161443782760007919645566550520511033937853917182267862566656760243897745804313405262076332290767336775290586627433200179241556532589231402919106387812573427519221789933973008133120643959121424199352677130716216383388352608424778640628252258444202200986897355509247389599934700281580704669924689260653949312907285816130940056593840390947324352571180545499654516525514420662453671511414342229280488270113097814073581291861370373769354379044014711636294589843000706026732245967392484171744368618585898036912131452731387892973007528902109987489269658314415445911158629125556243389192548046724151552322679124367054859063403527932498588953926550244481031994532445872480422863936411091213997478282245059826027663206831637434591726858906581394494644889691743338974187539408861393757222016712351092764869039934779642629028381468990052494262829751618384394353108091308778018908218100731552040559718884958577812738941240907320074432093408574354333934683592129738437100075298285235478805229574069736595655588990500599721666143257021513557154839907585520342218321802026462202330861353404488508580140959454557010452123727152754308234997267420565936228519150049213491496425294720152269859248516778851558182376613224791898783955267034119798975594528986327355692754472958985599017621825804735503243295041442133679604277984982199278659248575016525595222693538604729676580689306835989981667531456188337846083190745605413698106283583144821481187336757478545779019584563170507546791405044508347786770644581866788071804996243635762535549205594563116972405141891092840701687284080776124284993401390381621639155698046079031364815343719052169216991507535033660069609722772173901696265488432826146763835770662499298545798009376569311907342435901368688917559497335723519324045339817419426548959618538745786594602096107188990901247667981051873183421583416236311891780731775132197024463518709232528062102756369103252236281592738271095936573930432358215264486025021608948779682277819566453443841660242209427940322800943897817854175014646558715297026545459147741564822216740978704926005384902975366216607880993256060134917742260295304407713173777091145007817181379597155081601431010955618518830462431767717104648577105444330117035151681090974808648303193670977064605237629149846980109807978776244344955225864438577038082703679624091292463265395958759783132772625519256510230784895961115269280516578524616827534673333674178527466158369104716402406415055257306275178290662302278741861562557907923693923908486101518007600379896397810105550479500197422597526659202928113295733607229683427912923083428152458019672644815774893276976062295281897611153654859630273031077749880659818906271818372072811243397431234794757342200737551842347313791745024616168030395334229011858435759146853825351541689749284416465881603170288389656013412510484540323054734730976082653461004704069583964743270607271700874075493573318186114740293060403387563504279717449369605709199447504326179655800132572671477631000685440916214586170707736775662329691659047617431668192172766444189714975227497728817708609558462132230068437664545464689507094611935464487558727114003096437449296500388308441178717093492772030443055001009833390809860234971272156316015251985068341122394743889959967866607313858176344725884409088942202686634131076165304487259116592294602837812805920399325546384556857176890346995005137856997903863955834621014876736462853032660731239022531867035798572600678464945083881391436536608884723016933263490316558308007635539661753811041835163364117988048919383684438296383625868595111164281629418337684928464119785421535915192706600925450593727589550602669149331310459498329422516433060033929188354919221065803215575568091445412693891664109917783185150757145013302670885904806956038431249360192032759372661817019203852727535007958915761983146954079398889342882628823867366496793323872839412593011519468764682318159325997605018957713103098500062740531727857510850723384266641964463370378883946220835237301179692000464739237044256772897400762641924679076268116195101354909073221080023332222165542106197618056573293153195498176854646776235693473244218651464522695225813165444688371172105229410847226295346051101723247484516118548746539209814907341650192715918313862668535441869359890407759886076865830724722401211185842306860313233488822405493484885407124960413314091175445484612247898377518611765633544586197104742322875521817863166898523333214633517814206817948950377829588386887511574391352369604754407852898419845752655659060733331278096633650426479040572028566958347348873688674075851850890924247605217281336309695135510796247322411675413950062743626519094127687867407998641231066245093834143079654820390527460520852893860748922337632866012039361568009522118065930103138208512231879483860967447089791261038244410492643945605340177495083250250772926767031007679832436633586137677613257148017091129500031721719626342822126140182068237074798373492550321024753006968077694678215534629069058287863291479559022481085256975641715263441342333017636353686258601033879919407924842578567759715880439074971804151326754917110952340296884055829179406312296301505233406030404317896190163137477214469621142749381315877179787812105030551335764251393716318946143251077089284303664588529397670921364811566942747222768411753711522536424191248371294322058794247290789759851491528742858511754542255969251658321056324949519931342287718612180478366172315845168660131171186077415684832342108138154783255924760271419848893194688512917591458577091271992298455525676793023766961196276660340466920872349300423341774746244763491592080844202668183641625527885096892175846413752683899568409887725304448034722582359539707243075685240366755012858500739777383025942055690630575493119584443408771772688280741146382852870336878659977961471237401164679414272621354949050152268725794596283138248501549287150617040304242869902633306836797082520400536562857353499668190456237474386879838399703777507208648394228452190725006609245515270772935476820799847025508545688868879569467280028943787357223021631311155005537809555360968244928956178508259169335520452019486944959749888100240027707707993945380993763043172635078654108989368033135465589704117353140047584962166569298683569271682045653941788384631206749898348471255056231122695643637540591275864390117370933019800661657725510406750109227506035010114853117890959583524466703938377664326063806168167380533055342407590143233309917038977004106285795829236983445472737242183963087481107498550717778351699960771442640915665494412685111571499143605973792015881108637916315840645233853455825724760387152983910462549888971906825732462409740908182230323013542100804254780099065967838386442727059525378631032721390860386030673124857750706104384066461690170180567831473295511114419266486144055609245180902159372433557240831436882414172215217445332296397323424304692906812172589893522397511808555374924461036598666700250533051414010122054260231612583993189027166397646366725625926722208840666210443077222469382281216295394130364261087817267520183380500843510628736512204047932911670538146974778599214975479994239956979088409611845470746907047267662014952368057905755803583097181667615385178548718840171263057939596113442207330450064752296789347450160428067276922610080070959186252738730486743100824542390931070199519070195607446920408678559971435393740922250552363679769004558479525864315448206889374710604900739004341526029307459334996681089076640401770540790969380596448645435451559117626179189354371071807729960023197883448063317824120705590346703295408839392996101114289325211092635548956426473348847895056352937831035878216951547966586080312994317119547825315956465991450654314496879369015765641185769426970213070003283586677332124839288209804511470543579262880239355195439773786030826749425020921691110734781403608047013552900694872289898855042716290933078785798103249315449430863492521036673790947178551992313690015110142282491352376359670776321455584505093206379045404531256587078548493138232824037689714870134569461934341801597355582327801825012998624051890319739565925249109606430260926184224333552572996432584796238987513949409660218652957544771758617420834914716198492588062770019102994790243732459381727459746295883508914368057766805354984159652801305211677087658215887322717289489417873392733020688803083058041877715966928118031176860295609008483480795598479712504986205057423674368089083466287581293365989105245573631996273472147006114044587465703439638864706477009633594731836742340835641912766168115949302106694922716254936681478524097502546680717973291955784776011332010937280555737541485983953854842685010634964403007523589163047883544547060949058202609224591119834775506618990914210664693706697853575027943849858650196197319286255362704677333758075438472879599776835987858887275568254211138113633629167602391451865295730712480670574886469486742645900387451442970917633647072194095247304437925341019932401847357904106508967508193583463338838850646799143602295322614569296151222420656075230376368229462027157645034888832883640959029382260980324899270712091662188774916479861603747949710111763096613853556994551572357500931008798397007619808085589357581398952997224763780846499371227729057970526855394337480793955145279427027376240464177425000012267350325297821566533248782973378815443640503423778417547426415681646452344162545469239190079688025143872416673969675998689418726644633004983109842279423709938470204033296588493888713627150517273356320878700217148718800815118210938920912701478563550475261900289260476871278281082020976864698644595247110302955026362176957376722785272215992234690876369915064405607809050051142172006871192575877948707220521309115315304248587873195320526427268912547639898802883874918130816566948645274329895571269337236454421044193344701787033134501535219478129735972042762471494121039537409181830948649246712182479794779792874497415155390350682865683414179466871875353573941315142549362920351144626333929604237726270844640484572084780731923388901471975198256144535686578699195006586694698094029444056918959022087719367085335211297092902737255525218430293689802796319886974306567517157479876364885080559936761882097043414491195453970815908160315988108740144146974239298531915217228957104788312047825184234933997845533899966168326964755891212909755163947779639399750504744704333869047052020721096866334033643109607170758533082743056347356398803590281631856707418267152725863345945632998554398089527549028728021720418616498222750758493182083177873502933032797415605738230567072555652132394540392765437642148198191043647768083742058198281908687733156998472231401554385889296696933268212055878462239444608347363950690542883583062153193862271016076004010513642942019585421367976885009204726349548239804210642365939201132580038949031847652616708250663032847547725920453333659561928197155741316785558700404899254054512603925530623988084118337144332770232491232493929393780823535215756279682255017219465555449088139710576959855835215068840394330360651908202282228832621037614629876061433388372643809398935095189558002023153700022676232702371576166133334428752164330622096411045094953232594517708537623933599456288106082590480180643092497042607179272072388933797643828625641457376446721064952529334840592329453776054728720469662238443726278333851349033197737938467646791415578456726032401517170354058563424549799246141125170556151888236225150322027196215566666717776499907424129219891852681465203346992400431737681355486245644963073589424280385712210652144449955265326982876697266612821221491541310217258564610615356108576408427311335258441040652030126010348756004530578264215055330516195650930675685057335436008706165489661418790428644504673443346066310881629156189229789365959473359222782059999287962684827622581699509750301244024683414930223306410475739577075487163510014925141547824952482484500159554441380221341898032130273013376538307753867470375790860649980086619081751641121237837192524475875101188920884660836933382350995044964972764625479904838469162848018513541462307409144164082560805331435552377599257131667741713906604663629939270514580303440666506917084879016106980998640654093611526642028138196161923625881456383113658693471772994801883367138868481541734949819049615566616639068960941451763703112425128731024052430809990695488791517480951189727703453070954666435910474379789445921302914146399408636687874340296985011913460203936632015558165339241475740573520094207778019247295122278147394947554283689928300968348650516873741839799410455388626569449941977640587394247092786130860789865951810462840706746521017736249913846034145155769969072654982273226965642637754556098812752694391793993038098776445294701787138829120810417885115965466724425878825919688480120098087131442528965018689497608513923363400472995342713609185163687910760140550202360009355220205647524473208421265391999262460875800046294357462964738277206080200506787864337762370979835045003200879485242053756430096937912737725674513019507668769284876333622567196367364643933073152635413709540554830141839767354899822216819559720731467731228378075410148720100004393834528933877279620891164781447991794647152949908874168612389970079221650914840640726255524989439400978296934858766727419904528636849308791062105487515871882389920226411473560363371928322422442438721826718346126866033405124306180879301918728708967454736047084238732807608915704198618725588322991184713863238357867956878314278032019577922963219852397474473363714603963919668896255975949685607609180357686204890483601348119657078578877648998169112853085721131230042398707479480745301683662267846886006518118143516260294925266085564668947806394775656552364934345293347923104813746285026301337372809972431620612319699088279658659726292376198233934597864521468484574394257845110801094908722300203599357247253810498522942464432081733221612386237554343123825608992970451500186536321241713749427478749183822497875995591646953887804987879187829539402409135532473836884734850617294518391550938481158078973527422228105343454930421064791131232313911443077897904993533499840188317347172428534948400583735342363352906055677552827629752757905959455867923883536358923114906538077182547440589888942088568844522926964031499232922772683262185952359725561139665555555426235682232692498618892417684324199209078360178659043133539815014051363152800180652166855755698553916447883040613541348904090226150664013309382126349574570996070741552284993679813471594555353775924651991667327234155698439675527717223845196881831856559161640852516160798297510465417981979138665568649373220442802832696145475249120554283111242550310026885006656845668337881467477698001493109666103018254468169081996222871594091239608345924019425879485207621803102062547223507044681831436590608008539054847556535065254833971606182739808708824246419600287137008808482308293886909097428661939420692268908110120422293418983073515538433286488465110636711467064997372170018051194966777857573016341866680037941674898965023023064576614585174757079702440297595897251059285886812893172670957402411615325478419098810735446089531435521538638646773360676173573350437265423752508145527105528071723562949862126138926887954643832500691708709039731234737749802588534239306787673263963736817846010333465363656479736872315656634984835057616500165050976860766086508562915529315971997614940212514861637354741964041951133760917134887251037756558873443375839801357789236516634548036062035938471289077352096994100915633567735178029289423107783540169155325635993509478808207812882038585311987352834096719015365339734886953615364772181199130767474060413897765987766847895415118091106158506560673786695666405819558736057057070125828758808191914202035264287010933340885517179973987938462065808894168183504099563076717062724951919877634745431526766114800443470834292325445049559217017396102521697905090963068729596438729031305946215232105166071915846943707372005670640220382188175087939207755582222553493521600188395036168697248287863346556303878270721874358737670695952377928970962053498590186773209242783786084548064441946186072157670833380603012159769299955778390376286733561068230738420248838714082036770994292868878074789781031021176658411832514228340328881993015319490103519130988400471468291532078473953315786097341071336766251684733340669535647209162123676698226884062916129381216032929111784413156926654709683167321246830213758468263415428207907466747636577145790586095063748507641365739408740498198020993038065787503015680869338039483099614252587164204298702685258453736753715630749379799212104587110809426602449148184637657682561155321592133062174114659043511363011987137857327624244657122843030430187520431953877727737859121571739632239624554414247183464766392757060022078170892294363220426088689204168768140694013167852104122668358650990493300139254172802513040740711723303496105142781433836831241240198013496493166223613078141872112972397046561996968748420759149218791882542239294766213705059742756018223051539832025988962564266983808186753840047791665101021301403068402901737702442139685236809502674446873646433642020155906963120696679119133403441985445997587786875940926217942230854613791980795461021800513223566966540307599520523398923231729139091369219310135658821350528581345678219323214871061820223439184853566836567541569677987550028893658926668153503546919054728394979371057271920360809413073110398448477460126572935398498452854262564586596029335393065108937334714227335027035723685552341480917843771838020585594448755378549035916072125435197509320754493749627477744446251937431256734634201469569967976835212266532117662795876934688200781434139970393258247185246320695053666842577815935150936913456273760255242024727690266562406300993385873059862047553853266578870434822898422447510782679236427329741064468453457683388533307950894016554782318250706150279698316156213445835237940391192635762755261693089720898037146181523533209983231419241448355525505646655354466178577359024965317566656815078167809759647977929779397378444144226630469438694265726928034310693498732203054098942800163375803493378065542117723416778121508333541261887236010801101505515574413103413141008525082716450044890099815207419888182805241318432161798170180414427842554692284906590907786638802962097844065313596509773767607726761839043770204812939373421993712029265280360288328032931490582274331848294702220810453363801194689917694202543918984673875232457237019193733188530906891789654979897813258381288939600734518613248209686642246475335865211157408716525055847582829483134472093941565495072425046152475535161342800576993387010976645256428078556170933884091512376137254307804673747727673845309249326805130253549292563081522019351930160910300221342143938461381877285818793630390995957888441913796932284369714295369104671389669772327521990381011601934976801856460507392454470411676620530918305378734486525023662126500149936696512829830626251295632496021410507710695497693424678548510917951306537327045100116185465575334779997770527320685075726488143620835106590906946398676331256250446113309300106469384570370711485637330222940476009563988428375409222599406377425881917684213446664990618289753767203153988095170909970437525571311197715049535085167938733731735605208863033236753250263994983426921019329794155447845659967023490243519810408893081452545016550831928832208325755815576476108196583406056143714290327771812613299788281412281031232141703030285099815889403671651352846849525476815367222666379191316606033815575911209919976922428263997804826981477633847619662132942633067143155472797506477411491384513744987612360746547740305491089293446070549467311727380267300732279546093729424089917721198029126668018824749493284392005658257841604737249102649281496351234898589864108185353758320549483894476148770527808091459568245824158407791105374846093693707905796442460016307025525272570101997114213146451414955756615037299283002262946215632852886709142107125365980292593503930353773991623528512805503858453483846549647678959303712142852001367128689020150781660530292303734673346939971017820367071804124084477481954435904502323112870899101548631183958044256692450618943180797367441268929285486981937694755097248660711113491311491202168406170350701386325928478618729201125472268667444824848254291647993825803340008047592879387427647696898853144940648591722810403485410722930946116036241009804284458532030110503098753453776843465952743925333612157791004635988665310570044948290962261167909332754624530305300299386158285380963170809069604819603442840754556360802327042284164579596434766898049949587834597030848128092146465740423619170020466765252572207663704770424681446270576455169719940507742530624516341843580464887258848415357839820380555030222632798453358531289974855970102798083343947015728721725093578391158931070657302330349222221976716218206723063604859306812431250930226486417257473754729911995933590085648746164070074700229446401274684133614252287342624584923645503287156469144619316844425986283296206778136928537235671243957772608013461034838310361006923473375050367307570394357341541645213322492718609930682652832984780788962278702482849325738225951843480209664375134108146059519763605409089532028734591133294216484702885122141501719499780451078687026975209637512037907446001636562234621570544572595324683343966483810705063857981751081882783742583603145452276495860878916933942582941895248702365122499424908282693388216604424663486496672368075519286137037397029166472898303207320924701580610199083691310713962956887326423625078280408690025206873368428001296449208285519864349834998370784430064538446618990286532665304930415041798150785987971443693349047514139115341814338784919955444827660056425404899068286917509641214348881896657866714876523453212559608763755566212178389395826628560856003525733638329047423823315307825488946633341700685764009568056680300663003245561956034214571137196543594910867803317060481155404907981520182473701690414426595088243393320751110736633885190900228350973997119006886484324597194146487213941886724094024165686420060639297251517396933714028793918721870470749059016562355544848553161219623988216100163494511724534704757308751355063702863378230839827442082678529057876239156065953680784416618778765693836826633407938145300468128498666173543058263595660157710413963043139958174987601205364942819322365155864949989513426448033081188717949099231857812115903078235786835122588921328868908311981004460850808430691440853250804635948538345608426474648807504043226758202527906840530678225811959662357683776286955004619950710024434367685441902119094820196309451658150715329083199022312446246320788869294625448249415165130225745904744855915797709841497704684745264655270594731510935876975353259242052015540870568259991339472977755188245606120471221609442268699247435392397947060919062237906675143556888601781465849076502843265288193554813400502729981107217484262061767348349453381689173549508906266036290417402902571410802343734784142849601343370378296681703699376732897719281918121866209213426703838217370794895992392311434477550759952291125309093901143319941037488720841788290275264676857023479810630579218849097566804158800708628862214302882844866312194548040786318696136679814327147982271031273269722799823139710227765681109550686693584525136227942612662100426069813707979721666499795210738239963801769900626130659990893540172577374720150675888119626909246869515930340195492217001231168111028409919360700118736902517471818740227940257762646728507980900117524469351030847220596034915656105849260262707189369794752269896819867074941730991459634792219951409682452995804031532787021043305260176880855157072202922939526492015371647805794701112050324969444622335417122994662242929879078837369425406639053918716568883064828779124147753165897392608804690030673860940043746999660833463095606086065614639718066448590998581195490455703689815614429061339920263341361869218620625380179498381533061140294394558794328385268390161464520262054400452037456105559563091903297204206920454651817085675479924520475447748859642901908934430336631670009540731287416075897796118111972559033079070003642217444985867193964559849479785419109591378538570491032962343012417678622713209303519619623277487873753471022350904168609570039248473205497131924978011985585164834831883707664234973556612149567607560246884454633616010281486209628832088401839862868499209840650765971328231659478099605323322407951155852391274650355915374585897119441278213511420275644579046834761936504676928868937648923876237893663620361046130900049055419552581860617450679907470839842798652613722450138053068009594067711301464457751591768919166458001970030201329070884679214163001957932482942175062284550728607717270297482626036109525628986374276192438583629259537142530481524784234070004295451682830259388332890325204752430819878438720298970062854434697084469244090344211196365386613724058425313876594388711689181832714097993595477787182452834257176083271227044628329739433224308929941110765964052259016058699044846223630228191665778379689783915863221599115931781430133142182753444216828784747767120295870434116863116342288373085754337442803014117103311259175916971584040278843427418992335682348278956126422389274538986758923991570193054679792011285597451236980824505302272112863963242282003874924406745951605788451656960825202321193096565579461768908896389171423913257304896513703184419777917536045716914224227475410089808448145893195446312464822535146779457713306620966667476811433151711450179764689132172811214663455668128561729784416384664837818786754292167068129653152027944770790495634079715831229838816498840766074548467029181517915656132098450228869768973689856693532294673253394539449502969386998013005629264046990839952144083152581227925221537374031842714797230493163572584958811614510893138816872583909032300238816511657615308878456958175724298688727193242007051096290315315390735086357773783520395037998615431371949076687142681614327264787059931997578217086009377451957983893759065358382930749665898135490091644032108089739080014186094508444012382108442304486528709356240140875987329800361759593011319136561723191481462392543793540893048911940148614906097068879821049184196505432124939365963354463175024116560516232463437114891708194093567961778558909983491922788731431794496692321411406951365045458758941869832695170673583476577729674311476661031609447981919925794179882850922130183377568746818720930373288595831025886652696146918532922803980967934278215529508835917484122441906401451957067684851904875305324418461101196375600616870459335939239719834963356384218350368226246137314048495958801047780980864766899221961567728084091783192830846996874355631228930031287116671490912266043048081584998124116552315974739528608152004911673460454640363052355931485550427655241924531001695994604174331085307362830899068424002226652410578044909197728637072648198788961659559021224551870634567464925353941194929645982378638569321079948340807249698615453445560684499480731647763373387089228794507404616631950025161985228280573247363777280687160386075099813249175432903699347949593970098554480553450985894988042684340975274465641909421245868897868562866710567034125116924743154248266705644959697319931819007707605578183479505434075672083993531014816366330981025132311541896937586985495132419025988806529752021358297936906526997121284911413323875238604036185499541212727381359570069807890922500810828923217283034276488894811703257351214100653434561923968945780689815395326302017975985324860967258320557558219512840235598379731441473471618945751345169800501777129455328862316437722087357093955716506478704687074768208890421017480972439274288222496789827852842915699191751650281499504753177230765159101913352829685628767500613866976421446312263836478895568773612401106623450202186375968231481686389967078647602111063198024121794076046166775811812332845433804138230055168295016269535819531291923999497647293619705325110086483456092773968992904820088580548675866449688542271176830749469034388253709058483865941492698364874883945318349748920430849255100152079144574683858659783586065396632130116060340652743974347483197857030182578795606375578615530688966849760588584575107975343866526928748215685189127285059937634965186893381256199623494940132681760246446190145138131526010040255021626970490068694677177488375834467748555731897424731144869285238818367239108167768953790511331903007501298847331874556110294168664570361202966623385173091909228288786030597090515921861129546372891900206893259081555920687579707001645979506885195473099248641380560735885399749991641737582891159598252348462042067165541503609482347776203004515533593812007707712221355156303226172768177386394872802382051532681381273536597965781392989073658324964359416473065109370352352676717404860562570955013317135811837035446226087994904661719112832934905911159444155084992484821533104390212430409006262479325144848156572744068806913047451872754936201269610341017856426028723234711749025762051492185898320767282277007855741123387687846302006282352520090347827088704134717266338068570083967656786443067712011644809091321231345159247379436773130172831456792229325967455595235807654432051997477509126032792535125696450531058583782794650997405848980458976946192800650500629264793320692163409669451719619432100413621089202551841405590807890099607199163342470341869851862408211790832019668661619054794315620725481781215601432433245984267202234166625229071290177209733765887416653989866976911054073797671100797507919202545978629201327400323415430168779298012449520506549101842687146064702628468180204991985695595441063171156474848818918632257808425748745312649123335875382131784022417066449247985402704814218531796210776813412690369595565114613074545722930849100021881253374151914993985758173082350213219743281265521715956150233004835082193290462455296568351493379454168678579307171832360721998944262040580037186103291344858267411944118093986185589279056253961512343578571182741256411448093405777043075191753445716526547715426255746758798203528713262174406652186568160480310221038397344822357784038360102731434672249050892857331100245517725939900531584908511907036584251868016839757173528434671084397959694927006425429098057417980287668764169672408074542112357747210474262457832000383107619863713311335776646266802083914149762132288050332024342387748775112558284177492679276172354232452814819800260635471989084705445181028073943794210759194503152879531396247614899434747211231730434181200350211333760722773316003993968951793572950223531592215980228218936762002949619796522954322306792600810936409441614292869838194927019204972032030885230950435454635083758552736341734890411271916866136979807397151057971616850229149616350875407006780606569663802509974056631195560848676447710728618149386379114183144122007233316174345129575619308157230916685527804200096761683383449695286476228274703259818653276393349666072729704630748129780763998754967530989148813790307208394401671486399818350363510933479235467551732843574069284465929006881390617925189946908952372395125296055978068619955380444350486470537821948018986299932845602850996053643250456752998704823619590119813408374888863901733579084434868627135507285685424816923077137543122910903666469548954408383760822572612770041884888726424439310843870329992723247268386058740548424712724406184287273883411971025688511350127068193639948855759773878954572026496741899284823999763956246001408043397321833134138149477872035403756657967967409248285885813760012017361847406481100290392862731200126673362351085097287061025687737003416659452279305167282133719412333841542821034074088105599277196797015213572871610108801897858407322683358389877549033118086510765481889224359112777038558687007497012453321145519283911955946744580089195514819700515713310850708762085025906507485108416181372927789553074309115932133533115317392450821313605979523294735194693045390849838674379807792830465795075846604056357879881777236524087844162312024511393200610290130104051508191338398810668324971051263793522394447100533616531539130039076150108771342417963089557973874763387817045373897682984999147134757090868834996833969279753400237928091944228560078461869072287836787532058587414725027886901662065131334732762339935931147125903976337277158675852380604695152715786523263832792239841504062876978076739416360409938680551785597212502173862887315374608133094547906768696363641873241252336032663538204164607641299797342429641236227439920134539068087873410639119896245034370125029510197580645891498556434318879340618850820564065079053825182253460947782912488828640308619895767322197220579051795258564040950202646387994795357461181894400767065989954144673592485544440642555454118871474492068458815309261231482347713051692794761512364606987455192984754898417688908364032197758584197775766894073815894268746746534821608343759292010233748455492145844307664464737249553247265882458003925451794917130842717032668799112527806953771340875273733846258313083520130453228064060978854882529032258943546560538682330814748901191050195981038162756995469653596032946407565623369701556221499224948273695166816006199189923863084803426117287876677940529276011693374349656640501276619408428236940531810577968196590284734335200651099112017324885617886373301275319217607718638629987414126355736188889215020754877849966077275889160695953569447808028161625661340073066036933730256984114733650456596755022549030332429998746595115772398667399066112734541833013778551544266929386506243107215978524751973411112900655551862748856527742755058545521295786908253860353708197783176054449813737258060365290498640331465009966571108700007901570341208183877884570144224665839260843106862828482303672410262535174332911903356464013794641266780525221531747265217904355018314883494337699246625379470510431411212030138600029446117481935665504370635256240399874855617823963960269565962236411147694198352663598622031615400979999942508306986345338893650926507519271285771147079543442399861185255881229373836405252980348570778563425798124773399652109312813213221290977203124325268928776373319258937687584609457874954767223245581369211964877685982245477008752385761937990450813182301134167020563491260582757004835158118615696456503228241303245318744508925924588313909781612348301138067434832448807086653971970436476334363125944220269860229357318505593721565847817703568916338812774563195927647734498664103964699660875472286610467235602156727566729829525704534663810423303690785510847346356489500951290288017452430675161611203988137190598628950136141744398976923317796676350024739906285377362921797361899498967731638266561370275584080858146772112449844157966031066669216409544616547080877150950163624732489130136304540026237838669114570734649720096880479844456391738603883170980095060160302717736467192793336256617892362595055564732378603873307572543603116463519761331433421669499151619877814532201425286624733150668290343542723643773869526245257982534586395988224815917558370293151997951325658669115126713543087226887138116119591222543702523827069589194511625089543263339900487516053313081234907096627119365072084035353660319227285038148670800276392683336912536814683759714239172354369472213368906381491969303181821704145716326559262028708047950706079260924542318687252337510421593313760682192282722016749923711121174434248733929327588445851430061431386984879903065181187673228392154710535165748244750194076645394335428549312730804170688341715318941320269702892271166778098841602655294037517450541887797379186772436077240069822057977119989939714543180619653665867985072649463242170385199538861358404481776124956161411854573284849336194755112347898030786746112315806173174189019218064128850458236860002683803708810943255231444306553260326207491876237506402363566428262226657848421850328661015487934394719312997415366404431364039899338545232672488613112871931810876603331471814599711698965613897560775102681568177237855822741014178477675220277735287542705952318215569091074525269751836289201134768128380435795427011257522728223557822243547497645072968991019071660378736509421564679166055102273857386468707323313397704999053394571330092692899092785525761210011183055595350612571095932070831187938071651354648183105230261734881028993853509542174824581909459787639038608968880864978912623015386373164038419122118557562152658910301503063012661179346593785722374830012492035802687210537594836886338833321892421718479737361775666110021834494245539753994615708967617921998931046818382395150903298409582554319974682261508779478128586871104296481878676705474559756733174046755361532374360961667066003479393715999970166382852222522404347678635019272012157147038870286210649950052925441836981190209714438200495390221973054906975417799131347045445336010244732838991666326938353589740147495406431637824136593037258013572718728819349271576645037310318292369442764894398930798750340068356433550451985511869324313873597706783239437353210360279509828734017782357404929729066470929944004856842472469936061324690835684581114891199190100299854635289734962690831388161319211696221212784221246618698769714365612855723787661637557040456716921807383894088243725644472663966557637815098272299365152737680670140959692021794096476579730240672107369393063052912092327576896909739353562926692505294612506179989437784400629062260816607627852254904342384146657061768540580714432289593737591761988235453998514407257376534031828494478448995070247229025214474552646640075141496170958864610960821097430197073251852201946392051409452134407984671098881884915441662773489622527325530806852262284009501209853034562287779603125049309555737874300543413383170997552921087136549160359706603291445097748267860788854803597964236319857013572970784587599307045164997580324533810458964142175117611937115979035424349026520989979535426556401358309138392895623164896335076202786336447737053372809527104830434953327782336968642362855944754726372911446296315711869304760623555380103479381232044762636709648654546628621410227944000098211130811794779940786763264116681169409120127545798669393069319555631967464207542924797867545729039704646265838308182656042212236554732769115377613767958017303439109613364244813224159796445876387272998748356464414916846730257609522660631060653100211973893541172079313567965406202705625216067791825167034781888319757210236950593275830439602119329298624719393928928555205732541605037901516606931165011705946567211972604566739192929534040288599751152179875168993955797493648242225982842212410568126092897857860076356267717981134895095267785532831361351073850734428134785214837843886784293655144443320455019916178242805414938209907540143035245156394830369396667078118965055229305361324230146504828273746318990557815490955952951579391791569670268176300988872913566061631285973268786510994641229352341093455153511863346390729681262887582914897887184610460947093411558908984322611113615193780286751820204276858841854693177326085397439404112182304770427485026751559887468753508237144851680137672734408840119146911770985029521669776747357073267454784253508482626591667380377717810790258914849211195330501868129691066638433266333383906323230394761711136433050432607518224725386336907284773714171559511998828410529103901968924005125091261464095222957914450571830676497758999136635341159363951867560327529783394325466360321506769264427809234330497295725058607963705637064243522945753976881334593711898036190045185831172129363248684285386129793326868042880784076632317375936179995632685535287196040575549351422304084954535073932559088660083791124930326722955539454412519413644341161508288655352931616300729563281419330609664774074055943671227767275309299834029024244093083411253766889634266106046966180330916366837028324654287454762301871152422735154303270233114011488582946815859229458123642137540157389107425931076169064668717812608110019793520541972906615292986721561800681477668818425274608401036958151211295762280922674429128872133689290276912776585776468197653060859427593668496109202011992905789664271302228892529945633549944925968752507470236902315874271925762842048135894203963956117884507383582623922560744838855359651075833715948246457337269748785510202723943175281768209319999565079312033133575036541393557839754711764637958521677706678759302480263875845411577420327923622877584123864510398644540292721183228796070321090702198388905265368280365336588436400887435800545678095194535898700373329362594860893010456245220684311618715768098592886814403631755980713122939352902619672201294335255232041937186206171510369832957647074008108870130575922371239673763871436927957505759589428311156410549552647587805467835740895293776095334458381308077829974173189067123016768105127249004027776794871552333749170362769200832165803757300289195877464471035544561199705949800209152179435059685667752699419812797155650090466818688435098639240366267314588379427178477744771445282784064896443472963136031909912431337731110444721219070111169732422200282999858389937455933768268187820103718057429355935717389303909297712916944620534172939675007021169978577937941180620099747372026365406206152164300234726457392833275930225122386458651437611617785268846530439998308453559740232007535273783924990253108977316152515039545867623489123009160622125596200319533322939787724383251618994602710343151036643171369526800220089862673455191733224077718839719171891194124966438300626662794151202767743348069476391529098357540696242809926242834352922468361023690566750169804333411784426573647526071666017789159533517201706840489268238890995718809665697083430803223386391423593686980788367380119277422001553318746839217187276653082352138795344839257989338725682556866416820026006698986650538968853174147882247889325289640572637089499444864085624302080123767498126043097041208646323084884772363419135312445164381423133963532476338303799756295524652697762816623425173475660767098732699200094724696537366431187079083889196990991428078420901528867475586200829555024407632894874052799122712154707108017275545093811615747741842531342097094517910842327866484523223954760003590274796146952872724936511662239707928171614960455013023428647972089609301352179800464925553726225726316794453236571583771352381274280593973392230364367760376352095468757949276069025333200068488082170859045405717406304934222142846536759778254021178370832895227878583299229397472903301555659778447691653151662319600084588474717601663527397035372127042481186677894719370351928231972872162478414048208306004656734846981007299050574644194607860033116955045929823073773688610461359846622723061575966438146121159394755242685561856143807815928181142588798802515349615727444740043811944727561966064082400177227832074186967749750005122122660664893679496772564021086934439646312598976314557257836525085394044736518135322535274137843658391811357412330858363538224506996253321338728142556151238044535777049455793518657131306321231558735490850749712599635877438636616789287984783384319324750596504504259271578317378163987600450453904837847480243566249567821750582916228486301573668517256404295157723108688896713776439785847265145490497993064252676851776899052369245646133880933079159584630556557456171032906751817383023376931519826140734762101683437311056328473931750951818652137424132412731997310777287378399911991037022742902675164819129325171727178875503156758821821803673698251290491692487794707904010232251512156556202592783830294136831284079153649945855453133562227959657899916401362574788747361593797791136623956956545063897975030674795245074113951217673448000869122540140107349096548341923222705959072856214726538050967319484852061049403536626750966279131900880495169706766001775898015945507598354509525100570139298080943165182021393831350559293426790988573343467364251475468789465911827800352862573723928379816400010494851437515190965188475176009482851579470515584736505516716299218990400850631874716210626267112981309741033223497691896888537712624007150081886604117827271949911489426753348346148982671316083991818015476091203781168625924526617124301473182738024827297735698174515008713545110983192216832649986082219091546966710987602503321021371326381312588951700223006382788593904202219860319822752885780857324114393190510836781524923048797858417927469890638032247547800647036150095460372155482028325042439577049189922385562753609303723479809445774225631953044260130073584172010402971962831867378362416110293965272729665882593352388068612291771790979566353058410522039653604964190167274223191854726385721224481426980202926084089601245278505077271603418812452192058733985310623897446240936662150562189684639796363863190405348824116330169897630430685243172903681496752440206720330929306526134424198256927367655451132903858576516014136430695030981558131495152911277843145765586398075040083700581413526366199236090755658060155309565906427604676315704990732011417818696327414417542328108422891301070756439618889651594064093707134578042444489421849537877226838855935882888532242093614740312779201858469345487747720744581718480861731429585721716777159822584621148680268948090321250045064522694549402592495592500820740391911596098836408493746517857220606608675829192296237237267920057955100903192187602866590808895933682641871629679070427163416580844056946368834766745763519125059002320870202996499146221766654998961913492925031820764683204416126925517413687527640045312487891231735494986012255218132122007199461560910657619565613030105334405149916270817233624332473016389502994491215742062615388574196995964444107121617469694496666822192676322077783952528395855011322855518543695470207589284905105023147512772388765546644825154057082404687796555616948532340266573833545613853377750811704051644928672687041939510279582445591399516525298597252781752902151712747584621162078978693484691072908144519648830961415912947956560407341324810917313548457829802376221937544793172506763552376351766466188592650946297387208201265048993492329602554215357203752781211469921631397182310490085281472390195510670674522558254310999485531922485280342335599960984801512498193780799321601226754433882023457820653751648315502738654966624166896189531557945328835531516976250368014619422007487426582896389189462430476832224595408062386366336997930390321237660188820383843359608980933709314450670970621268921205985601637725879762176022290887645651829348654248894361401760238776945902887594567994845439644334668272354620349745934641425321989425706111271784316148689091805396448080888081977430182635793386576774568235414330686221041485337531863450148466943112754178026040202795738878940762148301839370912731471301584830446947499988006794159867793813887656833085534337116397268274235298161522857551471137410273926237809500087990566830966237886687786643768217568798750981994796166419246081941444229970409930504607163496784684217506562507591043834003980756493275673543468851238395682325221453010232924220587652997339512212723976905864517267003895466034123007612405733576245061155457589469975154112090570217467217943471833662753270038450367764845584913889982480893149701904908775676476796078815298828181826231341762239305844028676139224407061074879893806245627950003362318175556336649968349646896090715902885460294784172697560699926054482019975682694509869094010196987696296263540882434363375487616332987399663039084962888470118830952256282450402490642583020721569805031097986843643789869055277959741576002147570055933441478526825569544703851595332244443552039254988140390878600193289852616227150830722980040661691740972330985130213464592823911185436096206346471055292720597641939775325241327555650605292509397677498588969739834553561789136329569826330704767583813990981044967516198737127402223502630975489880587796527868863850591751043770202655050835891813947667344752392466599498753728979689979492554588499796787914759807277737762041236229014427986972139073783097823975152313468511396173711651014093974376185718271267834473708835925258566686527104626215382657253068675225323262118659109978385072587260859577415794407277959327555893204399440609705406363223863485399092194843618797501418237427136026076542415199952545417678057255261723623393446064508075917460730124516680194310790042337305875119153896535001156374447713160041334187506138799592166592124992731234873215159660475403623074256914242074437944352292751499131955400213412627083376689236212579266417310424731415795315985105773795284391427379517812330301985571333573318045649809879830296466478052293400630140742735090980125600919766712678216971727843070246645051271322327419774377388946660510019792039140534196094576559386636809798776323101507000385450347971794233185371078833486175827118686920798311884628551196541274048498482809025217168850293655013322687829168135494517776774910065310289926331893255532415233033746022006619310000185242330079168373672533724577756321995821257961491692245503757375455965578298263620948135513297744987153371922688192237485474420773946579296588807226038870620569024087014337320818240664655318768365292005458290661874391921909575026537814415996133530973891944198663461544592022629530169855560844292896193855588760577976524380438419273818025145802236257090161329008033089779381890104198297593339826302464927820964152286511403037890008876812336459280824756868381835905338614194075692532259240783504889736196666343177433867923200544440114384089228018412540267939725139957761118120917046323499061399243440626209046218792294957235001796733569813295122468225758144204404508945028084721612217410040604014501863276098891102116799959826432615109205794724643638278495576645354865601518451999187977740448453206269872484935355129676209795168555660106811655975114487797830423371876838926421381975262724842688886943774957062060120055292818924534520024006598197302052099601746954071641405488065394509926947615381785269269523929900433329585359115436146825727704599787929051398161455151728126833766475435818148304971953482911649537603917244564409662430419825096578787243900924551507765070921041597225326271689954363955417906673980827328671158626854902582928143194826285332015866566362713594104975949131442182275003134904436392086249268338888180729120471678785543485572783353369221784621787642827606539989433522962974201569379369695465228338633877991330560841166754541966822629843585610933761537593100880423674891928938965809719079344767888533482894101977739842605424010226803444172596444665668903148291493495265953486725307281170470202396965432139400535582660020739363640331177970317747582112193307358459174601907877533876113539201270698863062717386539746207281863137061385916902750072281542118011999401044465877759682823964231441777287182986888048783558077413835091077235576323847088737636796971694857020238224551292846270741567204413176634497573010159100317134482829301373093814207957989276528206313036666570123412216710848146716842798032781533798662339802330725634450317078724923513160995242891814946561183557045374582498775820865336009449796954365759023293795362197471811950461210577142753582827979244487132631157764107625593891714590216981410127887048772031134575070211039973251039732974914838868392101390737655127537658425991195928685598899819762895556670545536457805994326763666393393204812463477816905622299705745770640392276117364144235306604735081036454466597636754614892194446862571151015751020384070763673302417963862399383750281848558306453248361702674597171841447569477732897162292600666273876193950291557645028481629760774213664201176848055424743723300752444324701497692839149172614712426441487345908520017369629815268947185571952845218300364966960169352097587535192725832861052553709470655840726757028439119111947656916804075868273438671555288761799929208407297558273832481336871488160079225959000470087683949743525915053239359343393790996101601863017279797878725308240090253306493065795286895552762843929270908200438843816796538737624116712660703545259264012439277531228654140842012328839947495888001157272328263502469907973446792624691573688220446100650201684113121644580243676819465941023507592776173525286101128883037627103753117997057697480264269034298415712708889319172794393008414465799979746525263735558383043189562195865452815689015156441540601898186790658133593248873854744056628299542786330956542554992675922689664824633131349662894528210864435517485016211649122664867014984805044115179238395154984171473342060624575322934043035861804041154153630088231876475740841044809583369274759450579490503662823418736745238587102425675039073503511957364444933042530546634580039752140101378945176132341186903917271634536946372914456302203801264558504759351419233741846843007791474891008621583672938655334025352982468568250585000056934938767988127333631337485606813981836680421173833900487721462192689033106171532022163964802294982485998540393910235319713952594069189448098694379228105440139965854829341455352621728152676321702850630208979196608796792116229680388615892712868520513924424348527033040537187896423007936346930643173351466378461368549376000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
95000! 4515166287210628156639674468341904852781731684802949864155946155205050359299058574560193026216413609136630231209158845380683117295930739463139251763130488432478376420177973922292539549869535581176651477022454319376434605479429194956133944230669071246453560888736076944782210584509177494929792379812509426177790775680684277694346833534843706595219340127296599189183088846934815299707963921436789898304516404814507375050427671381066928393187388276296112183007185425399067728326962060603090798361705783051622001069951031851612408079041072416438661183507676576375241046219222850574075853635915907335625325935734285692321031796010225909599358532874180972367848238156653317823430044320758120979798431101169537438347004789446141741684640503448155072654518662572874707648307889513669199568340022353469475340676274712856171524537262260806796663354392866302311539239667125879352872077980145146518927854302531371659674250872408803833284501083006825274659880530559856957553454793860497274322427728317303222502924471612837320630578683336588278757671967291018171912247501034512950070142425422539425375867813940047149161885209140769945434604176256768540601556440986761944428608112509895476970456180716976754243459157603008010733090230246383119282290540859855335193520724582328607746154794513613168288966635736031110488908312298354900701685189810804020521663916288806828631015968970591114956205025031145496559035731102822859142324040496491759054947232545524192450037748703006724221839911154198454441191537313020596962715658462426739416537266301087840007467251566891312397255377103196621115606118524037081404343804162478698028489017236477247918053348510330688965331131534005469561624454100835075862881296043273368247789409227776034454944146075950743699069372081523238507715231136831520288146090792463764435006841278549397431880563111124977943598880932899031714054573809148432494501316449006439820225789979108020867607621540055241069081476417898362048889658767989750695320662343093138601269659038885678531553339060096408473177091728249931084615013635044467716319027587301426972448993347705575178685462058230108149164361692165631875094681071924767710241930064630235527426576784935686074686850512202015603065663561921822578000176659973376513007596095949895717544293507059871341087775673576975946316160607420363669611673556132824780067626174747794901358629906303822842740310118008033088857465421572268830596770272178576549761384209530183639745618172757976943505273927108992378664279715778617974668315159552104765249648430903914819647212948895092272075247405108541006658573749437251058174623898863552571062438582612207207490594790302019657320481827047822192303827818754026912663154423454123126728832775351922385186589209536418458470636668829422875284696180568053505353739808909891344040309285769682939066394556341220970566984883864752508000419674959586287349173975183571235490514802678429759902317984953351268078411046350211838858673542895297605837704230429406286364111314050103303855436382096110905725567183516857508445916558390721126921729164540214090220158767755906206070294868509873504455716963852933418226970582825367700751690521963917143953522641239399080309700173262523094431381469077319501877170333729247861963983708502339895983141549643700397449762101203077331597625370331706527631352609652504256679638554111122668735864538734698081158581839824018280936151643964654442822137677785575059039743058657181889587296444719999593687507819909827325060774817287256231257281770899577570335561298013742962893753027211568616480851033309639161964410906533184675400753800565946499305707050513277442788419227598409093566747184711291856341724870488787313911534229709137879657465452222576737035524483763180061961863818876671461037417354636002728724549710768651022384644764800129779358796783042236229534362195767639241433336364853835460683142864887516276008830101532079330515989960898087864220615880624430898462232169247139871701082532976828010082143454902233523648694395417738752339491759274650605166298136620078346659563213289568265087262158990829737071302624928383299357628113950188419164921696014296360286055206817207291211367040822280955934546627966077953083986332565405845077780231643217456901077042332206986912106251324278326348741661759128583945310966136284155786290286925230843896177485264160086179856331223827385216176522291844895310580475961898616391883930548312211364771572855503224178940912155973450565185232197795124627131111083697883856434658343122051772682958985140558589861945714127676621959800546492981171973965487807274249994671807447564362620495232914148940228564610054774663762921210674016397717241868349760660877703703459547582407501157987646121214626925753344292980713957426551972864970148759676961052207758563843945160324650494403682031854723645317553833185869173011680198018044489164530035520324588420013884619327869089644304480877994918663880831178607904762227790932007240375482734745090302008579948727492599085721750857413487051656239302725915301716313691237731735431747217313127773573006501102309313572080853797654446938391430409039601163623968213256677741480924524153168652180742577774346731230520722445209078941612111040970211906482614653175016820048232867727102660211894228309117982863807962696857709683643595093757837469285352542186480979994160853761240931763250792324192412731215951917503807026375330498428980581037514918712495162096086580586297615927259887072647371361259608388473712294145053498080827745906473955191149200983753090737276162705621146248918118900782972320671195438631036088784641975250032963788005884616826619996253575248283384578413840528720477911440091388237468140909950788123493141021281120315454823718452528025907750821093667672394867311809907161846984117207171879172830679442779394886926667884317821268864064454289136119024971515248471697904713392266274114618907087022048478182863903367283964002364490158482058023478280905822580424261883267949954283745604599022142805443420199749203604753276578926006171724128460803103703162502447897395637805529442108701308256387861279998354703849583735543973459676788805632412587888641746609357915017321096112787013821661536595725127595823995695061514967009750439588791587381886167540498010697529528004504802569324105065704587273897682817417898652152548324109623600805873111934044210579178755330002277664758570961501054065549501042999579044848894232768912640907119512678873736054063426924507940997160460869440011202677504226603333553723807999734286283003340867763954354495063436960163369701565278448087119977321538236666569079974632822487729348660064109848221066990974666443163510135511917076786071356480860208808257986641089669330352730670002826551953252352365016808867109297871420760576767563605577536453166948081816498129796041783425272029709683778287924570442789253706989722182190904256608011203581835525139136946590031873535029856340791312673607567703349300813205211445188743464309306125596131477678343417493822929712837823052142174437441581068841548440124354987721685940778348648390779324044236777329329666429896098669534844269565845809475830080387773360955449569677704461413358716863678233372876693774493081749328420719844918307625888110734485826249770018310372948085832800319076360645354508142065148750124089248624196322201831734329546833491197209559937405284652781967492595213607398760619651252944580828686981977686858378492462605817509619714715419245096407531566317345731109843448158965066543211968272196604060240048819669000884798366356902645601193770057162135150450863079429677709198353097548853058289481137920845511873862298130985717340373081105551760966910262143039813187579239992480343734829296779361203827379936154481734452853690681998973993684255727830942105532218215653803755496675134943460912218131144323673226078735535764671776342939250327892081372547420185636712027551443945314522494281642554596485193089532158331565123803908656602999078246770429512522001629153021743607864777038068971511099669201089769948631882883495447005680157594132854030242913529705007669737069761995778342950822589785486165723476717535427918706380766802985834320005081948358211496723661541258953319625076120518571377266704525379795251842755687851842469268764734913487094361300157086526863547294098089223445297496708823565294983711836189222409075590343600241351413310379836717550736803604994774015017829051715865328367744096068228417834631311772934132190456049211634974621961047362857075770904131962670877676358856618174511061718321383210002528447217935843982574027696731813989252227023776942786699130963393776817119237453709232729392582725407230385030384310971084921371521509060479727397128160022974058369530212507440562734887156337167283852241881490107569798579622720942465512914464755333724006067994426705966233668303908627198482550033088089028037195820147279326249988279692961372930020570636383260903968036180553977062340050696881025334006523871336579133107339905347901164094543872554847463053971945202659485749391687473990777933815312131352108509262764563026500876296298613360107460267306031115463942902131664427428535953639348281965211998142268693944076034878399123328542414618816964704626488143786863397944856035154634045653785646559577104383953997401240813840143138570668583148022146707320807681620051870964988496027424315800649343412060558381854165555640983995450261601016301792108127531838130467933405337242239130199813401804963281341734948051992398061021169975387235001379082355544345521451065332289149131692833392483577417772770242316998604690827633443464826985613751243803532213900967218606466047916726366878618086575896906870037736631941529452629818956523935410353226086827560465336786090818789433320429354044023604194218426199732845353388364567191279672405007351372740272916160881877737756673326189431808827918675099490497058542673612570733001786544365706124120665327118268509955835664224548123301664931649239395040720789963130780517863583954393393852024854947941855694500951887025587185035459191112232381465239638945278422502615203164707130982527681813127692836259121802189944685286435511784304698130023191521805712938910093053352381768011820787750751609979015530716440447113526530096043673473489206439261319229373198535391310077338197174094388193779684273770497778805154586200703107311936179805122183336588366685832723805124567167990752763820732838243780247288582295998290429698070493500526531959275702653586544391620801792078285104195734674317740607516830229574779056097377875810016780391907073817991211962930867015454200319606884487676761209870199725262569449697468835918246307940007230053495236536803004200333848008149183793319609117266525836940478214730045919860588274310368246519769823655759156845153855828208289638611838640906388845228659535830144416464681879786903296638672030520969813934032760195337942845077551862019034121146331683933360707876730850043505908478628298333039988501617441325323753639582584485864764555092104738154200519625369712437481926973067034428603132776400899880273723777360990279526761455644603003877020097607646120127408972081755341942041281956377362578318470415707881293691115687095079938324035188106815840127793093634799950527478841393086986420602252113793344076732785867642378370564220445016153850063608548438085879190556929299111982822197914289049980627407825149873707647551303925753207604551292503668372826296881837704376720834643532314153927984466939784060050108669168605940455534708242813772355351106119118264999930701627629920864864706274155113948940821846347511452965176482465938975684415485838468770269185879050468248422303980515322726550049093640985317913809895731542073434223481385109673062811828579838811003275751956604342175381071093070080324265525482774671486077866153792252080164164730284259952639309015796543960547200091962753018908420546790431866384028295954093817113964628451619611010001252187272959249637057913658206149743005535734567494082446393098330412101973377590630165009273893422547361078686417753571575189880617154204877753780190775098698575302426561403334960570193614362726618110230018240766959559299228153900384193236597459718311933140759483193091343835704699107029141367078328931747372471615463724208263507408687304040215780424704385979747068426492760115792117842553180827052011159998936826534356358285759672750912622396773102850951390176777179693007883951505697724144641914951461923436885448521991819643443762558049447555132434990392473032279649218511835577950664891493191878332667544644781950976879164851339962268078075894800450252305440698908847107871226047029180767600584362856540396090666896631880832201480474025951220436461163618459026374971520483841852323392114609326738978612924341071846163919475640491049313006723774489213465089754798068023813871626831686261203395181713417543869456913680930755900034102027351631407797974799311217874164702865853264788567280397487977170787980069566975616820296425674795840456635168424039876902928382278334160291640963750324991828841207406555387542392635020335162887089938584346064690996553258079520753498688935910798934235811317351761088063427932118411814651432034785096494755813455281585080865063856626053318458997067889962807882517934518059062250430918350804154400286930231012554999607382908976260786402628152254939510252765004339617594182136983015634812988597095556784104151862195889412499860028067253806796139892250762390600143881736429246931148896039904238748876714029848214130224390635147709610493251365104793285572474803017460788810687846501936063747335239539310766983342260690550942582660111002048144402814724821343475410676389271138265143454197661575660528652201061312925155013677861345303081753778041432487012200888420552355159471575900927566052194521282842223337160571015401025577186731250334536086880906342873320424251296155007263846233827768427638486078268866720265357213412263963594982462173547416432383829202479663658259056591194887728034081561298171263337279363840101968822010294121943401218439824673657021467964181467085651249298810010702698495480985981854784313516167986134959301616828713463543791728854686562604934454165040887126165888882990630815911129370281097641561930871951017991489268034889039102140728866173962079263695233496351710089541921491721009759985336447571028127584157156260141064198190583370482983970600321565506808921765782714326228238806124659112704422380459737718631412318753090688705164713100216982567040931829602175377908419621382956122200673183298991497403738936026878282275257665885186487181006789754236106651083733148961308040173824360921327127531813908776972730044967334875335905837865044609958935223585775821579966365845221714581183653379477987562847952362149238879186224672326225042356310614626155058562172101394529644207998961262917735066372525832133068940759641402581268447413373893539416984021205816994604746040271849042591996531312229931672410921398141988176242113098921909193175545756480454695975870358234439066227805439592208925230568935587555606587547446138342207269626757069352568998485389313030688170286178524717142472217971725749599004223384400550352128392164333936587189265208598144424964232898257216773548132873557141187225840787046716575952456705380791632627193326698276924119344991146089255934845205147138183358729900975104086675517365683432357807236337656019652999878552047150816685484266916190136178801619681053222029528266733804323907705094087196541201647896337013202390100296970094535622845346986332555888836263779615555950177601198229199950141206608956852027596610265360912489424228083428177722259212776629788617901775034371074969452128200043353450358933215827962239017573791382604748533391081863406681590490177183717047261151521924578388239458717133414935018615829742865289250707951360263484355615528414338415947413937346481324113697571197814597549886046269219620835867814550411040377732599482851467167812909892842508321550717387739360967816296968007195958856310563013211476942639740381507597773326440900527122888191644000695312452815737664942449762575608581041277992098811027230439356926905804287883929539893188948121109876496988819714944204260155111515627654028698312485516254957496960151140493939734047774132880344660308365831140750885253012614678498038496310140902949518211787092184274925130322391335109548891145426377612710512835235449777324437468486855713338949814637787677825972271040872275702048282075600751552676742894895308396477081981323591984712134822012778783169058250074849188434517337277586472088648666173521424281852083667084048954838850104874348611115383599990730918960221783677981132858931366684476274090770468255292272206980482438270939695473374007704999764101148966059122443192752365887869248310840027483676179502356138887910794410346523376843300811935291106411406277873760624765546869144939962536872903121077243735708094276886982199710135015738038239887596970973875387878440309327929553351295742504556631152399920768427391204402724377091410213710807905545486910859450027163355562696405632379720787964298154191945107515210724547966312038944232558410738345140178750858938614280006265768197746889166186823127813921748878505536264571241388979043178914057490495382767791788225188549428984125934466585025419744458761669685073439116286516383025609329049462701113548177199792550945374111611869961394374777834237753651545315484141932869745784360517355112755900998958768778105850711947176942425741282755302932388419548848249463843710964735458951287633676952516364158892846753379198257547909850186541740850473530536177946842003400050929055054107636211836933715023609759322215711412459212184767269664270542839159335214607330533375425792871356409716287610140134487742835343020997522234741149076255680533879854573023081636001522040989566803963321427957120099504708797500941981973980036683475652536992578824083930283604553185097135394340741616239797525856115413880527478990757781198348058379346397792766862516041038396344425241333823780006607678001911031588961257581670042967995348171007963795988362377676314355979375932779335411388360683080536290918418500806251103462936994481129398302661462136468059927694649815220551109045073305326722445152448445814466192896774828714719560432866375516236376483280632236528971900776929779671500380892046491359237008259532724719894326735780611482024534920180805611694295335936374370213520201602810362708990678893608631221461344452546851802725379671055351196866560145256010311310553187584813679339401780285518022685034428261884797385847400533800147112538532541667055778087079024971256225488947905894184194902786998995806131891623909760490578543008090065481903423231199233672299344039438314301719244047995654048427869078352826700632593879309768306778379728180750258398779415845146085473231537657570800958705166629232265442937706588501192204550621188697261510498882314729315424328559991024787858720635572719427410093413907814023897079186446988631569372570764446256894671547194567965885012449931017481820970216396288952483164712231901197973784937148619295363026290122246557099632215680333088504763981611361509591521920474258893939839376873595732966011137689484862620569490625394243925357316433740860805157211430424820525269169243138379023842063906038533593846497238674103997076248337495604273304632587274537888666583164326981050314742157723683644377210994803156560275954204421967608650200359134315566838543609975590684748794406614475924476597881599652293498227349821764642324581131154649768960392670198498436730699503336307326572102666882464785369240801389271972548444463236924517651379628571173516059196652333735184474920362950835048104857982006105234181803422987358490409499636015180542883787541994005863223315884800075401294572978394094708567704905558299152074188240041544222064009084296582230512823167488320796214047537182388013833524708953522800392813357507411719057001662735096477645007024940706977671666028126377547424571101759793276726324967319932095473631736377982694547238371349704441342020688119742645335274473173536153404426386103296486106617021834850807333986784783463676359064004031239881765030199990063248757544541796738542022801190177942177146067157003233758407265871660983953225064483741735913505192485179855352292475292169949997129120865985100809658667332792315957859000421281006513715476234798124560214981658754073131047193270122494234274386501582942683144250858992632902369772796986230148736966618097120330270481538765637990311026045189566173348372045969014443211307326549311504854926348952503536194902613637793325869869426968172551562088788726694855242387870973958004572671396046237958621802240578021929094419710455661261286800075336123286180673081005959533068491594782694449755645614200069217449114577507639699747633534455688917387022826804636985050495471783633155324408930255933201519457560897631698409760822801706447257157615504457996957777252647833047003774967611917475947241129584171121785429224965331530766253667744062803163184591723274815475421428955497663726224040247654393162526816846584411983346669384978737777857939087119970004349288243012515577402816926549404137621621924795975853276570283163794526562276161171015291377263980223564057803693341899903034797011541504899864955502021330200629009945074247551889333709958648885828011751974565988096830618747593507653116924175901866523650176658992904740379658697467085314688374443965439397079958575108640075466281203760717846748532333339375200635138225828322237176097177960098983313459381851675866513020357466480016923135714398506603204328553335863278173484975912738201559770828016848859967397965885976488552286688691431049515480820965346666234948835635667648764379064535748844719760045478867763822461544163303508346237053953576314338779129407680842827044682197355631280429873279220947688482622265558357809531439647665219811867871233480955565769505903041381459338354731168957883899788937382978951600354424144755047568607229243303710486591877763124869750579865803398972140622878986680853024024320780991736963007630484897177862972885389050991821141404635586151400146364965764684067364530852823435230754314439166371080649483869748801364104320881811069398507789815240042322978483096518739357966365977915390319059591905840415594259034711304482067306287499221397521479681266501057738135574547234443296052496324779412039653906865910406220545570943377569464690591526821523146513392938787505285482451584667410457341520965940235102307034085498424310318916514842263527345565678884122684524610556368439421833922117595117549090098636021540104598958755153881357962083183165427885296109740557992267670918568662017325173594312596675238095098080878072120232326355806771827459261820050218118219953696484859715477476937847620213083131640130243643252465871439737275719544373866401791619165993077346519015893767651193538248226786120999275353226001901375007614770011093185638302539928362382962137792351868178964619417425183768928766465614870238218916516365986036795182240947742473637051207074596024457240736147137115734947306711232060369708771132039495256000477027415740053646423527090587051203350174363609736196342348719677607582066877237049279081796887642429190128948737255597902317390693890209713655434381825499093412576692960638299111897879936992302119836815701233016791836332672069539623604217539476477650486243933486490915276381526541788695211489237984370841723489160625813168786436846158395377206259675580140166232038525508023254103365746143630370698314566891643865234987938979169945592035257336285336586960208046932320588269314605436470372426607761356986041769685123407972086892620260196423300087959509511735896855520619253770165446609745525122198660290381160161563139935596860466203669771700258326093681951200109231033406438736861392816300856324784221184229283548795458546225880129175802372105671477980341538060907040604492057036663631014958316800832650292593284958859947099613688816532737734547787328632613093176384070168969303639497526310114611020082152292224933750023681020690764289181615317058515682961621762340604461384472479684055246802325861233669723485426672631098493650524462185313186845349890099781794554834097622098359383125801364922464435377793229266297051523975087783407484722712987788768457208701200665831656238008226954414576610047200084300986776662063032072154194276207681870221059563223842565351000194931512810169703240562291791350768910766240458923916673787959356277191439740718621412667921135890617366267770342812541204912897731716033331093577650630017684981832404864080816580289867011596424531431678758044458547167783037220188679014233015270955898157036267732426490744015419527167606900110997302941302222397113960452890939672063849005854677414016636655252854927905105216856004271517998325557916629238815446388106368519054035357969892465491388789211200457981516010410601858598700312285316894486975543613323734276699342868953275145788455012049103083437068953557760185537844678144680850503280795263562982184329674256777115462968400050214882447919553277062530579167924691253615589199316099559379341758916740861311252033180155390746635575534049037926161487269588986170805684099081681577482241637465894739681230491573378458790703347428542826466798745918727564415364063976808439115493441717319999730100807526482517722493852077474907187575326936310484904720812489574984000597514302503054995819292573376330972659563818682020687300537985818953746413281175538250578010225727754358092024742633175400706207895021399549526801481812215117967172017159664996057157190118071317131466388942606291260248403687180464881703136457394132311744642551772945667201699377224529669884402470228157430943397895222180676204408084926940563991524157244050332220109676753493180403253204582170330169471494117290170719910415360216628058916333821659211032903915438111059999392206593140624120439624599823240797703172279561890835774230275065424844737004593900834701947304896696205181527853189742171676885954214571418587702121111392345236985740607749523755591243658324024196055073677277564643598358466907622282392234715197091419154215880140818633153746024960482290199047242065989316890439131098134258008107072376657574870906181871409783097451047965657156749359872502870348929317047379513593337918108724129085987743758345080850588536815878870741671177404079761454013478853181661853043673386510281049143403903549195336836066490964491025532507318541941319794841892516175877020167983307674255852069789789575145641495595429320105738907828439361730810746052242732853552622898233066590175194814075757145166971487096731072613571552532578706796178469594163072717073270181929226292856179578148071699249550286547887837590532976481582986320083593455055948497369650723177502395927817440454326933208671532525257472534895910007333690489301766232075560728962286751000117022694926189559718072904375349162613337000340030441549457243119760414858181219122202870433829643543971513060739998820257772863820738821082481520340937872583404386376550735922406822675369686990302293633153227595587857345767177143094303961388361035318671068070052483271906988258677516218600123644182916639958205011351747065556675056688442747056431721048177123448115421133660039664039658172619719235717705749064961142200582886737651212264964808160072497364307784908534407744448113457199457302058266881295308746816855179595830483846790517527785561424964095758130752515664990307981221596194705313793770485457718678584946309638796731027840700858427348456474115909303719010354423461598152881913848047638368787169323783974064121699503994688154466541562689628178172177723988631219635897390938998067383142532870948414376037625324114655226704200735577948727585656744964262136976980849533252852618957185154954816124184568290751787896485111614335132542928705303833139170777345754668890691885902380649565244043300766349802116050055453888816071050342315126146120652072003625765179117844792202739553141446325748615621724017894645055688587360231857371078176802270981853363515484677221099250453598603301622286286242848631751149800803223666418367441013143771702204466894616466891878767896564095686570052532728706388970682370225353317575572899641068980666762923678355121814533451176122028063687905306506309597062206922413069636730418356704266767514220918422882100056878654170856159209546900592083241973993628927994361676037459079722641032337570636379006781502174196598669126599872244325936226276877957637523727138870014599466412141722319387371501263843144649735385488232897689437352880286043966142109145434591363249237295472603152615078171518122961086034920751328691333198634365288076432892994750335039936928299468447197749128402488874367339414503963272399267205493201546454875455150721668079240387771618127855710567529687659893874946805788960160639232907176340282495115543137580734553881983182417060683253410355900035596499631035043854556580080996172078060193312923712212068134909790359971806337276755816424528099641784358072990436733390570739148594981942635122643972153931057356281830615952588635810079869552219366769081194905427036371045251389479000715450515267898296813083749594204176570771579670891302158742576484227053856667705314402080460597636568066253310357371267894294301982005337568647771814365400660055320415979026648852647412657854358729605311997946277220264208047860301985160599205744943296544983788923322170195000152821171684470400597589058568154606220145707583393279363804563098982220362207644599678155021371451674668084898705986380244123197739461681406117728487394354376836264116186961698481079192277209583824534317384250186394931131021990183807032653621715533619158258818167747183013707020334279367704771001508036268067088046553615885780633866076035721412584945666099149608523049300063317297346997403836655643960176029934829348424805410425309028104863846943276737154674473562147579132597398882627147399285805166792614571851600696709610887335926081679703119174185709554646392328376717318606108288640330151346017289810558428429417432059224493917364704574828098784049916661902288525502169476789170758407099975455857252233822676328734381238267403474050812302698026034468705696481634561410857729465369088573887938758941706080572213498284661908659412463362360664359202321449585391483546335262789737930873711405642195117867224755193798636703993227103190797649829993530928354792109919839189039777617727188938060286447822897963798163400616613621995970875991834212949515735364935940623578815152269442608848811431913948206708784837486743022173156751442154860855859731701938445248301569507517814846856473081538395314926790798377164980115206853562824126655471580054781178927035524231036863697358194631219494024082064521018038824468725571693042491817600867149562308285257891044782106078522019612998475994235837532768750805340646830679200734974277702210219254628399620469883648284712771990155004339077365289914912613097257626754123281061342454428976956051057720715399161805004532539950281446311029217451573145131434355696484113015610720102326931516126112912072074345769201747991335281478288128695396117845748230324671461295260710156047766332353325575746902423486834688933460657136654249563496901433916772383506195215154109303740154668583185815662857342164379326147671852100030735374781167813889804791771394188762136738262275654190056369545139419174855660998447445630584611227133561092202716836386734483739755950320488166910452801037860444009555088372712287079885919748926104876457847739650909643466809571378332953833233423734732837172255729432783848088255267634377734012014578727721293112334935993250460721016950361695800758041275852619773608455257614161925606371246057333512702791668850596717075033398979802947975595694405195451098962112885812919874243230402089932591247956121185823582948069623647963810351941946305557309530573393934692182751002985207678692588546287973139671888269738342217990511002276660027577209743475575226641299683134358562581040587132164130567213499712450363168327614020465502784115406104202174515293996361344507097578260522129474508372736522801706570858530397601034866281360795969635099474964131672092485828355983152112357062333660685532665866820884136707533855126846930468337928516054442387418783349304393677902535528594248807032899084046470538303647468128533431232892781442869459618248601050772517548822523055568307991385962492429543331837792410045371043080320822342343851784723888757516170207166073054515531041938549222804583889921628172524897902348354784361377733147120347919413845318121022360357285860632441367182522735702230535344953506222164032518270172075763953212928695799792834307458623949744565491922880296930955077403323096804571462569552967319290741653564338476912732340660205138986302448334728416476337623685610696782567189450224444406955903244963118243309537789447096509383752058301285163112388357816839003269393622931085569036712540428050560732408401753475248644980899946013746594006068527460831337484339239446876720082132261726471480347484002501563817398170342001506762616354722909139999781722851600597575984971281736537047111781599289025347526013226939583598986081414964939176348653763786322928018509989723595067826009526870836855064020520831583301499859919082697728255914121890351193319352319384788338509762399371242192791716250288705176193336023637754488216354655384515986777029315235313777209656069917132962044570271938340449328646020078934712860498826722860885616861304315859466872957363967644703249064744077270115632629204403859730626221520692910292825435858401888925844011074392317295668350016829776724733973747508992916907671971059205887447472246282921083651480253470235395731225531014692922025766034924630559148608219597104735739548595104131832461760972849863481287309766477772177285126097004814617986917148206995735837059720443536692140039958690695701937595539394122844463255730093757958189691170955018474675642354073451590757357150540962958804274648042995419206556518164651165720747511685015534031248724098177732104962200221165831301089767337801905113445366240326260284251718653716070790625729504585313241112092929267278249633119765463624668372851860032885706114772868025384432265800551045617997532955926971503824611248199170057138099854487157220695620611405055170681483534232796255793656164537543511044964041464060947714911435806193504988024740201179651824656529703662316837717930795050161012086979766531139022840068061639021816667353958964942934327154166632858703902323601358320717443738010776964903110014826737203727574454843890891572506775095920873551450727542853701943913059538898844816681185662635923163771083665416852238539028269322865267349857466984226555343781411292324090425127200444921661333023788448935564334026696439836077208417022129342916402102921045952876980277600733243423564360141453703568494112208209595089489858073236879122720260139496527010719384805177924169750495650301563518110116912963827997208067078544429408753900431998522061951136044671817942736049757429487151502954349520326487113060752100826258601596582498891369365043522750085890101966918486145475775504283504199796641672570329280067838225562647281823307706667507870194161288899409125724856414430984955761100789578695261669162948824934042545171702071204151496114240095310821675622819977033787603518401360942760147156923556496711901098292724834744484393592422828617189403427728901273840900032103781817907741640957895288061884135182124118834293895448419660662271981304721326440812573323154545159395175749908481564262037596499483772837032245319359865768547312344476600668761399746707818981967300220861169355242702762930610600904634986901896702540233290863532015152959931248912030811591884740501662840976546476027545690901159301497885935968106562160963847418413698201224095099104305049702512671528327705253220936993201496198538664693266867499636622625451556624720299482707398728364451204323025703447990151762044418906438603360317829631424326442547445705852285059566126770228145027987629539358212008029000627242927777756751650251514843787257973158971747946047619886638374072684985493461349572067646947911561457629503860758922795713968955571215998143757937688968741326877338644360175813377115781004421817864138736416304670550213008992366133055285684590973193898618377603792423155576771059168013480236023204401400048811735989940075828460295312785833737800940403126145554600274531060820345151741242526866351983463047556408716344723103774909469222053815663265452023666300501227369196851366785902552404855886376319519195075280360000648871002288897485663980580108217341961173816976607677734100574641364336041020489394572173567089220706681708648483282447959995903316361522317690109210371440938227974362755376922824748028298324201949616522674873697301701440660572574746828808379176332684416731756443527772400009270898923144667926567834212282660319322241463621032196356158135754213616720885893747146595463031982684292669291119454728519878101782042932948771268419677712441586278066775973028383828466302638183111333483694036248666246945696491814414381587568997794328836950146368122563038416224548496481557372046138142579625918766191193996858104346945191100750158285246195608063650962066485717448931958355272751007985093987011559876104669787590858615172416668835096673410664695956510801159194869701415204539689281806293619105404124037967154294057347680258022309043531135710466803265482781217496067593021157039972596513789440127472715188684578769290850900284010103012238655625196332031484279303129961047526802293483318079474037267292063092558268189542683428112091788803143631754627898209133945285438249051505885907857732479052863137043964620839019940431766152249129747556129557972221214352993338300441420668008017989959373423970446030544047333401291830415785913411391359501062937415186468200161448376193258547305504161232063266221719058301043191645157317577272049130373334678471016972004807265209206432602646538686528024439404790188994314654123678811944457969263116309853196632705925735545318571235448038071652757617972996994681040668929960003159871968978348337791636171293773924597400414321898811330935663664189476352203740766266057798058573346647056245638601813388052240711748177282159574573918454809921403423902640232217969251041880991989523134792628889916097432863396876987935247839000583756723758548524664066158414955311554939220717000094566992758981629387188230361515047215504618781947419636858422803080027711259120699612533490937189063930899127622148061147271616274179366027306961608487232214756368636330737950874492341079126550346042105982966955023826669109936462366684784992179332950446025053510861699623913210729539287673510751416882358109036795705227277605046399500443542442600600048387541481616821095109800513844829035128601045575050697527352936612616101191138341187287537515706673042899315230024486637166530486016437992069957328273542486525990537021375617859331480767484060166152239623655170000805246180558087467342357815455570629394565674801857249811644923439853165236499084633239730885476024626589980375160766731909900771932633977391121993729555464949495709787727109971538339284729185090184562081869646029698954209008815376190238655732083460341387020840023838840882503160458135200631242254917467540807148388868751672687856948071633803696203403360853098416533425668875975043621858814098804602005087610911976533054036659175236025124675191567824022337531914191726770843341719800457618346333457060500385681659456411994583339772142645797641095345878007224100402749155592297233009383739167575116506848749534871018719015892087986943743287706362176352775598008661074415498065616916744877057079718296160824984177392572621305884438246799162596416444262214077505323441423412245761442899544730391607752086233466682721479560991671284126958404619243136505329158641902225362509793213969153054114826927770901975612182033717835580347915128933632839587395123975440775389331360643120355855646097022474210530537620439952836832349456172149203561740658397151802445044713311354718783020693065531792657382287404713020649518707325565220316966416414386323938181392646100623088260123076661348210566610770045564345977392903860955545082119766788981252804983930291602780037855089993048886770830612109157830398359462118404256342843473252486229025666001095272704826091111421592413453040638393880190986070334567842115774774557789038288208201568769180669865461936302078474993289928545927614325899682141810651427193879317124752668260349508572072850353822294364211509826918222414428702033567465970165144583756225773011608434563872646691986381748355509499427198025183776998295003137891489905652437736998858575618640610481736739733111047317321845368838431145807965795812203735251361951279358905615866254687983849037982677207794407829976283519112542103878966831437379662243436809875110511435195064228604015472267755758222499155829450206411889819073630261221025949843961905630649649460076055784479620770993670695653781470355549503275437246174498104411816264666922995918482805631401292080667505275140352762970636044948250743644475889201543584157177419124835574899140395079003439287978923641172349992089922679847681379704678706608972709829723304155051254039888002380499249823325942586928798573191390260718900985506372483316688493870200554657022635472838109341292259216481833405105409962044354629702446975805052643312349152586843497976636744335310375525265867648356929529469400873637334413012524129085725821816592049524918866355626291501290855347203884320368672161806928667246331549940179516981604739687075064941549864586984630555095172558182836971712895151808075207057583956600541696912908790618033215048304864291009190465587200155377853478890116253301191038886167165491506396024471114220534639730560571169600971591702188611003609386528864358624208229829842661174312115496157555251754163149837528539329295452303819125831355008715518894919556125736449173531260600174247215153437190299771862320791669068354097227857266254314108316843524296673883499757493840973609558904180305643780888404119644981076091834763519075229206872218845913167288668968379655852547325640828590500466026700048452938257751124369302445837735074306836023862193430688085991657880816205370805456704223237418471460445825249996248173808545772646544386920397371194547661803316321510130432582834786239139077446352474092786865883846737219706997910398430266376909283696003322380074738207035778019886324643363083277356787657852824161074322384999559086452830212062526658976578716439838329024586392010483717614835306688427360877332043061502922965407453388484369687552760450927812127697346168557441292236672377186451975752437727891029215202740334553287020851143565277349256604508959447757283592338269081884348570476701465152853923202890377213173561764819790129572399264849120492635782439443732910977644657407609129686207586629321254006084156918629664206001182327802229629969119793508285700673681405692201936791644579163540357698378331444115814235990547880234007041849028162711587592827962459653728430992879921096398342113050108331081549409916202155785021209472554013882614209906872612368395755596404644759748290901557694898871428811011212327436166993848397099302338447412248353683870864981145404211696961413954948848866603850717495641554052084209894490205577253550148001668023536812902402803214395900421640161476469526364472841452280644422864491489220534240387725491552879553838218863547609283062801235112275262956957085165963297313430413816460417491013306139792200639908895611059402541857731198403018104927269485468342339852454807417275042419615754820593889349719150061591063500242650519817453160074260027963264922800809984509994469805072383478313488848002262278748308145479279355648246272101580493826446994505831587772758931985053653306975972822215040330931286645720001887364009630588088470895013908794235721611658041848822457130951065013175485171858272032994277444963706454283946564926223639917970126992218983772872100680970995560947037657321732547353997768024549090042730349890965471757158070128738500735556639035609266395466754224362795882787130681923672889037619283839513651380004641809983409960020265845296948036890434378214096911346289889515905459825188919157795059033818797554374128958084701213480490403187926323132297654223497462411141255849405839432771335055625920629439408777102109944792662562911317307269375009623568294838951471615313514155001530086092971529199648397953132549841463056492498167717244842238765015408057967872434752783017280609983077673812179052206970542446616295128090515458628055419941117785407029493625818465843113598613733222979717755193602099799324576885401226576617404415555624866973095364728641229417549195462051596457206221937935583148949599412740006683201403030854589143186471843737391529695898149104121003106979458808385043232517325529912721438113498657054822917598628978035133487690943057170792686504051173259999943823288391220654684316753005674150255429943158371533293945638514246079134643245287417040856098468456790420688335624698967927564538355843929094046082117139607728429894842801892116233515431333047185697902212946788402597864732438419510840559421393263100931551433333396301978098594548307107827820279428722040252491007999162660541828956936051594139664490517390669251585275487350109157993849429178789755379894738792202903393885239597906170396437442117499865897347238198895892714752482696388944063956979150196574232208673373311592901869141094442603478373366910893918346880216590324492965952550423637907187874631621465334096735438764139970536803569260964763317342717222167642218325345921827319337281190074011985226596766769563360471970425921350499828176643088402781820499946513247775846279686296463805348231035176326123225087086334589815731832970765859734332221512312629327229674217790849324631606385669368285676348916094194089156582696153312890305202313520534584954085188346016517364253491169336863833323956742001729041149281962997529744867855246276749515083607496978561373495236498734099323262750639983364947720063223625216691329678985939089941312160500837500931479083436995871481903777969223913417274961790859125523751489770731442848894288171425237097089889308971182168980207924378436859776055281485194529606933073074578375249407014580990913712736862806954746007527360278161575910486809619018828418837606651262807649357207710477897901790629504181622768934204860788630996355642692784182053200533347144043839319097557328681277324728185616777097456876955268786900335169005660358836615474014053337248077285729288817921375086829733046928305480892262733155358693126615084293998734996238149270191849339960214373803865177025464626979110329207596957093336527158495945119246635271078295825751252034793829361506189918498206185240200014607597317144437919455353018841041250027949149461456659620225944142983442935259489623478773563321370113159488050655849346620983526297002662595985484187102443471881215652905716167093450005965250991517418832612088662417155356986030991495889265626806902218241501983692442732263220603527546328044958206325662475406711577266017657824318818163305934056432788050491402572425966271836165048462390414055152517521843342488323051634613820827963702355994962103226168092947575256910028759921136973505849455925122120894094137818732654745220842999211045424999283482030197225228616329739273819410835094439147830727575612441687880583794583615007961499263133943534007478166140872792212840065597250370369782703248722373219050126037874603887792540368509348439940671144400928393093763395828068196604261257094615865062827315702676266204460897553627722927373732473362683298522122651921553633751049465691141789969765189942964029985937422061147912864352363212985587338372089962162310117098884259539354081989542416327538999959893822200855003753756410052486746043451653758510030462936627385869963179295626276183696444647057650446532566216912108161262809422809834712986379954593138296954787677152769192153409758646600714231464714150865427774955425215862277087549053878040091765216797847874951320110621672157043188911389496687691568576255961056286585452821837686670842965303624325392929703001525034527857961693779439785765518396181174958964469095177192299670277381607378812460422077859232887446477601685966685233739489056687904895423274252394631985519432787769738713833357163446018622325683092536904346372676200395012409951465338110542211241096077201432920794691531849085928759629152504648694045570106959380689417760711515700873700381305053961402730438718251269507049955266997924391582059369163554072047434598197743243279712182167640292670899491278075725646136307707332323800272815286914324241061780665804634366161199159499923373836223572728366557579242894118628314776972571478217955287976885456990967974782211187560965211684362053187998693660063641023353664168945781412107042842104353257281206707569016052176222590895725193198384062020171307070091485012665643117956084457435257801687291953546909202986020317635112834776514637186239529944422464464188883409135949222148884550312309071394337370381138921058265947044039928438660680854025047586308452849135337047168776234222188876368063216507039308034996993758513852812714329310352182448584749770951480248225676837960664709149124203793212694076530159041504180553401056339799831159102904864574695995315787429914118810704297297370112275221393220173675002642979575846896870217005937861323994736542536556946241673498413788181310741861370847035851382078475187925571137377062601661682124276621105598045796901468085654628608611443323140394646075050735894749181176183535566446287497410067299582318450485522400497110588228278821678164580718149122512868858357962941181761152711518055921113804351127428769185955622193616875965956100887140947215102902541072084950160118183807649651466024560764295613967046716354218648770771674265234187056942395027953482728456475165844478824636180446292478907604031485884365247575734399989397820352383318831042708973373760107272899748433454261441006125888660755891324150244899328169001435837608277461096924217572546504992357919888977920620314010904545958597600752839952073869065044619427383764392927829631458356082700283563938092761293560651642552717542785400671934923418218398802945786288994152143369313738575098653941682224796138079355668855654617740233270117997923586486369019178547235516340379552870589642955353567955164907272045998029574637364616452955231571620063974580526643024866046555527301336832599743353890914094021949748966115952966423238664466394841158016366259996201634999976397892995771699173917703887327905604803529820266784267223034449468219228067559462993304448306097386098612640307861262954545727330396278899075596445455350136469798595207359622855159618253407398691198465337427955814937371475565105949908889680658765142933977227963013544667149450659150510063143365023562361216246391868004687194620559600674156360035830291800478717956756999828593308709008186283934647110314339946944751623186913823097655891551894390459270092267669927752330117567540757012502544379074343579491763743507962850002301249086352296670549321695640597042067284137232549926252086256136456475045680151026238469829059451085183920349923442639560079165969262194867578062750013334798178257735627236301742508449170427832731908347089695686053472805431568789608795191100463427918122028890341380480749329597966518296676301413385893122425985430285168487189761590125138639086388910345892348562491092271972797125421682412454387730468455023699348689178434706022547900414244373919836823170028160713838627713452767253389406400906294214809549493983997647680692288536381772025084925328468358019317859732101627797493763921047234975803258496960929739240725314138332871713033932635310031682524179187831764520006397525741251546561981575783875852216218215693589598444085373386442021997435117017964379255810448799250982494853129327666782425008455289691561089662639526857954412708983927227849610282296167819587158855868714935591237454391117399572471491033062098213088214308933485288648017437112132923462315329466209573253579329895360190413750058492262889748920234377741508863641527350061201870852736102111424531352702366835231173337017050623115150026000209819057987083010570356994786090503875315154908197644231491089999546430112364480977830678358332591634535304017652093967110175651413609064750646220317052891505946216124171136040948308727406956533540629688422257471182777325551949109284489482711318706689988109199349279126936901300689049847552967207230562692167052053850029864474173150577957104154845084518211553965559030140618643752302381930157720599952629527694554974264347121045738772635267023285938609779375632540565910088200569934555353785345011293651184113934965898753981033609305657639264324314376582871578726940426927961215149232216582799995838100086710443195517128645338317499515235414944297881423802418572527219219114684076815039820995818619825580641620926443299536888366879149824775797564322802621444818226815904488544440912681794408704461513506022643513771280606262392606784082033886326154490682251935436350416047057551825691919038886110974512051711353540752801558342653115454593067042255527611713644078602641283795820937196323451673208974895535973839495970072818725529560110994877509373680436015311139504063238692076598399220440474979125225625325957094137487650919557625179768122334632343237157828413682843266423930456861518868492645861362607549943056761345166242228991510261678274497503218933941633420891151583283251947793913283835278591814176002451352585977811220038061136150869471383432851867611806110827023096005441731776480187051223309854891972546426710200784702802175562057257900024209443743004253660247326958163312965235907513839216024301487327682791624399269707711367190387408288004239557793521711509353522500401171965838694424191810924459662161486060954796465928600783158164980661855006227205451187791678177029479604736123405540266408819308033629154635811974988053607816094136598313299874726087311374031105978897323689639776050346816563601089529545003831089822069489736272707052473086317284207808908387600887920770380640636592743240649974273798589283044473732408912321121892271833938402736453027260717476017889203171383901207246730198314305092339102485929739819039289950198032750410438308040436208817799760641570411778317393948737673286156984852990572280812075517232751930935028491669186495884850633254408386251836697692456704942159408584772274546992117789989223066454939995497757648416811980751735925696567075071673540458573163391383887743455401961881995077208353023026113466305113427582481816382412672385428448275271089635510167438842169108482174113950493499795157275416043459637641735342672308230120519547740398691259599212297725281069326076788985081629233492229134840518192737733590452766507446891740967586565793747170636346489978388000204738887743598780283096121181583662604891584996495820210260260019718517300756491984403642086820573456320897857613464688462591684198744487963760615996876104615508921662956106042364613227302462208801094247247440393028326036370086000274458683808474114049680195745931917560495406128033250258524449803834983248599378479042086735451332698751574905986861600191646418719183189914027051597242071488090903713606927940942229960149405275604587914341469361469479453799752420441839151365152441583017344911069128683550589532725436235497302678323826735963697992362999991319608196781487193987691767918598503201107032298950935846204516982707616109822314540940119315465674520325592579615535398916880591438256722928894471841217801130383717332149106820986224262794610875743668067773156903891312031359676954642259296075674979357494661951319370726773694156034469907526139989258065482931851389797396789142276542936458189392525927559785506450086818467826830076638328985114977113590488978987625218374512820379187653027017266251033530911306424862923001854971451366551209093514145407875740653374621412376448355865595064393875793888144453944064338041988170594510878827763745613579812043977164062319110423986561934710081994749715558717827010739383710444487847105161704020906794168010684010171294467218995372003760652572785009308681761712385736175714794710194800189841219057160486824591898579130126613732512207360023432337363123673359148688937552659762999335937623587043670413383414077403335667241740789897810266389699129544433246415125620386137201159809860649862598608830765580739780956604775283304564394900685468149514911567805292987405104640651242893536675445003206004375319012259548554785918950998601951797357456878198460025511085112024601023239989651389410313957888665749503813823045889815813224030335273169512233711393459578629466295143427796617099553019253794350265042398902862377845776438892271035726193237624117096353554170863698236773648945307473021254404288192711150236830190807489969161106657852343647646205363962720639612013469150204048209714584768815628085189830790659872001544864670908720277791705200302384651078215435163198635092316589811370831968772079310026888719718184873372853904430485916108692551048839523209509977270539868968199847698189611694240569856561406354715612132865080470582763730554318270234986605717041487463248235908325378676175649682021284568131777426918965077618237252590903276520444710137707441721431034298104783058166181019853971253731614319365476034448573215650314650980974807773265300239070950849544749839434862528198804280533128839037119139497287942292276877677264336996619545151623549154393841879500970264257034305692868097516806606958550468326077300068315049436969296732107012403445136316261784531318048575031587552938227672473902210285766359974184638956952219516870189799872229525781856398472124189375196769204173600006893377835621863943575219566229945377873986033590994406375547610767253522349277438061135418832626433028669745658954814434576890841277079409451125874068505367968345908847295720421851371760560033253325751915321907708101626154187944701815656293647841877776361214067831990480325653301549651538663970145522759693263966550391758017071745548438985617497898379510751417121997045851786867993072252666129978727028359538936777587344737257071836081192406408509326292873287900147612997541042458804148731268541754961512583737397483445467321200687353496786815410422540407240546106630721240850059593803009296384703028384174290758928303678576862237991379583254641999101856047383923925976292456885358290146173114270031709753772661072471398853045407298518631661327897467113341384386372823897322845977341926230008440408224873858521213998992244015969860606541602621236855961028723854433756266635014537277695574865988775922540837912468713551911409744661331453571270691594001086330207744846627539555217759708015791635521160411369681165838219524864347591545373042897188078734726595232091924030769972522223559178574928591978760531086519791727680863442590689048289257227322201397370233994037331160230664211934110157224154324280574694787587079128502150050462691566599544557682616810845146221029911594192631051789974526832574348841815433574735373533578702688840873640648148076639709070110941219187370208878749397562346458075308859222914467556430664570862336031748142850030592856220633626966497590813708447198036812767392409197301243549251877561003992977392261886933578081357664199621074195065892905013555504696442489930117035516400338451081748494659399790316259501498511442751432052779900267419592671143330356434502988597958261812085458667254138214833341979777863467678483527622266534880538508145549436744438891691262282236933501369376030969555423123549831488581893342156722498409998261831344591888583037067656128799687396853519819828047647802161529475802740731191971075436115344463254758715548655960456602435451735853251127569518054838581974635868290796032250667713652268685897021990625881904855460127181835422958726067491151293869517713162738433162566927883817656363802030314192408523140876312157532470085743733183635026071855763355934700088358634541244283206599600246816851478137655747171844492082095388439410146426486504838187937456477551517449106420740548145213899374321860346998374448004082289914565207025874924494259886924393317781388547362477949969815143371759561157788009639407414241574839052564218823534864577156259189129233862225621254366986267461036229964293939487780959279908009690238992037055073500960549371755257784996006781545788095904782259583391144979823752159232163738808004130491695304467315087062236728664738426834544133580808267967733238255434317861470497846530455583520207516173174146592757408926839885488537075989912890083698635754668449921980588182974622656857662945404027012970631646854961019886312696319577872207017275785116049888584548665351671531800848104222398967203004744784492043798126087830782674528706088593626443193623745017057655879817736520380770191947719900088202795915013771089178516665762231424603390155843217760504651585634120869647881260808508457155673851756284268135807216689132326853655113551001784756125550809311122496953819768104764034416142212326320941205889037431053356927899543147589414661488433845340320800681876308823957638308838260785273868469207730635071172266495914573063797429500977204041940108628117072506303892422644969470780291085040313422389751799599355795196447073065728509745772733083001901010688066116993030029163544383335608813102528491364339448944035132268705040411836901171831742617682669008633635001577288915322124944870492099242777176114417077089116251948693215569284348323672194747952277606715762174991700573097727471293290980595402887101304215141333492406323610615616363216507773486270917496760496195544136038109547967926110773162088563262702357899448979040612860587980203788257027474501249190890314292424446995229524924973373408476355694818252716605334118873865742632885015981957573247666352550844988372159329498179112310873496879322910740166551424572065665142939528447595787743864326140084288997495734673516448018300321248127136690867128760946334472721880233821610574783036755307473127212515989083577698728243604490324094947526277416021587192001958448794262387743526694720375369800643283294248843546924267161134587993160796387146519503779335493396094225294902173352331774500783620080844373850504227128867143445069419487459251362189049720266439094242189231945664364132027885547586387985656847202282535864934532907307883114102510924744598536563847276084952957739843283297626444620027832114225054155178167154015412243868804943231527007479664611832898061981452729135658667789276017717011106109690640464567327777280893968996716973763134001593360641586155340551080631441430668922785620992597016735302945030326554277047173726738424257446806214089565552865034559024598238104493289181694587667048561689006972261454295284718564241365337141661671913855085601633439508884988099212728802614213249587549709426565201500799127080139171908783579251285699047016985002970992649510121022918989310479216308258275411963819787491644141140548709718030242279397722888692308469888113458577658117906988582334166388802215988397676494706769500946598479568071389475494726424514878479261697382986019946227088808839105813756655754136886989236412611065419752153087443212855184511096969609988677315354535877812760203835060047908697903848462231690724526991430963149319696795706313593765840216556641880030199078410660037791153229239779844091744752753512438250656738807114510250685197878181169067154762746029562782581850764633806428441353704698173191499687614743804493028634652910074754859640903896042155376456939191371366010661885479510243644917599732229723701755154773947415006243903020482897305112699307292636766713438087663893196547274383534117200535949626939877095324414142855174857727393811792740225798181906781658163433891383590600262115250426313129718140984623579664158459331475088100059953686234987461597153266710986857638498896295676766615781449555787590531913032879252825091438715005776636969671364185990263972637896845359928794164026527429514488355366728367887811765170351757510455548567819456230320887125752400013793526275234679641589479669631731261933569846372511504727055037971401187028711895713374472179857918266020406137737201359355001767406932937209917105662752848536363626179923979402414945188010363614435286413229416693326734874290978234877465841096012573799875960505608193232054670884433135362596123277067464405024694815746596007753687148474706445479208490394694406843174340380946464584612043772286736581030159548631014909566532443448709809010527501983896743781022614966109106457996078785199600324456459108618370113742797502493729107829045506206187454999170406399301640477608118690710744810166276417773165383434002037090154316582456779307580546012352443535759662237420655126239399497004482710934434282563406236491254695683582936829909644254835543601871464390491086212937517590811563249232879495574110778742758329599897396788189341678551222743668174270363401669134186341274612090811710441950884796050914839033796886042759451739691912369054329444575254447682041466477164610619299216966681640037576079171964672878080557956700287879334940873238544728237388702960444319665779167321822238945986166777197896504993199755522678579697723517199039490054780764166812026539926975034007153034246602604874822434302048147389891839017952495446381708592162068914284662981371270398082534867459183563908554037817508649752389215194632972884048231861543848214934590018408821606260694091061781239913823537005753994332769168791539479440256432555425607230034984509150679977809953156950011764956065750766029400017679484034695952404632085757432300350218067745875966151038268439154752221962610209233926635313166972219501269828411899064130842240180086182306547756425376065553450054518027281213639141276276934082067530682089718743538670822904843510615803721992817651337432304702407080278266643601348606677346167291694668755930153551488362384094511506940491510062896278533419206496402563698886187971380912544559220145641057491574414226176479482370131503132322688840780097667547367828337258153898359492412739610259271684249107622683206052097530064705415513519049250753379593844843878571214933632533451645308847336600826320395643222856767201762717734665550730981330035835043750214254436103236958102521469514339054604837535943723782719439689673875713332742247389174568535887153737893575144604287574350009618412532468949706551592654719661694855172425977092413149323171941734508637889584700795201815854335578159309767660456581799364047703663699648640772891643823199106302329027454672895194900971099031284711381049584666780630955751175887595134855853386171159801827838325215661356317823230359529832384787553562540661107449773068971701351639503810478869452408044902246022232791989653672075671335407540996888519367642453710062194742624844611267802706460728159971011229566645488963075174761165781047921440951831868841761199007096549696762748822893361137939477202780955934269032241756412442925416579392229026682229341506272392518286403889179094335990988399692803519346838270089170460667445641505891158521960145411871586287270348387929487636331302453778392588706604720794655576518607383136306607343556799268142292412512520495925027980256125229413397359202578338853367591466807352295199173383131979505160321813063069077665319202823972319276146363211864227366210581147793431700680330349687956048432504290158738847654788595292208028492775197343216168426019833411308561419478647716569394146252875761568477670781102857763358297021636462238118167900575380504516969812311751732853497024950247754673512032598209723747729703028825541572731496064743481356825486124024788999808836165427300587511245727862042545412932383952313478858958495254542212824643980957543663477998444366170458726573617785528427872245695071145664614388997401382728015263707055217356187484532406912354377306937908335494237645731099591884845776130548241465917139997252549872147153945821223524892583894322055747825501753733648160191762810974478202511374402236723467806326327840100725913877316053104121482347654600664837211555876610520828229445690297793250380133655988516209971686182458083637151123731580006859057160980613340723226807358099388668092363076586440330820201247338202365900819992212336747489191137244396204058237797946666731561678395318729593504168929155101430430834752373864384947372163477041245167653254055002703122778715052208231134208024440907549852962478340951613993973015311453640036194253420952932069531102989440372594771194747666070178841326606691798477788969639733831831694289816740020241790854823076877533822857520766569555993783165190390495909672775999264762586137809967219014458057975141653562182077612945870312797436293602957526998245479393948252852669293693648645602879267728869742884868782400926656330071792677914622750305825460067677020225659129642703497468999718365023822345947897262469878448867544497917297666771693976598356852120338757757964736417739374200544350396069771511488342273796963028329082425307109822590021601437488997820318174525560770414082468203049984047116619967927984475777774902603980012113029495758174893562453545814046553712918790474298327567398715731362454939542376020792420695947900643512015758540599669070327438742101253899745316213700545530176442807648683644279367672131895994528685647149423330053669839361106548556625644455917184148578009571368734825807453168110157923213066000440678562406141914761003735842915544557577915370730290456462321973225078511053526817034314690262351457897978035500418234662242853870692739839400134893075155163016214398286354278946244230361656792836064129416782272349631692895495486345768513446437337778687905351701216344962549205759425483097402903685958146307748469167925848093382069901375306177688655012329746678228024935408761090895321428013253038033941383996136841103673643643241623603232854007656174757557973922605123245248689440577881727965604893003584647548707870167909679138062610552528103774968276929739064148049523503516555868665172367772554016106189930006760842770902717027124827902114260346795346903727790762689456084178158370326381119325923959338818807256102586462763798720801799406016582334933799975681948962819058452972643200676978708381550886714311565800881661370176923899541612642032449321231993231835924426080669702368816479230716692625772211225407235496430652343219915311086087917863386958076438118368421988381997020499803981618109774426328020986428874778426359167751026563157779635969953073753973314978004502506976645311432300851492721500825345147180536651310069797603778965343763143690986353445667215163969845210189049598972280844592153382558897688922083709056895174792155172390282509974170753399816126143222698534298796530998496402946478421706530462518674881976495530247149309312669327453118230912476781343566517232729637527055781930420066859810790014846385178553937291498673901633402535988393694660198167272842188056302321583247867423559966951675256774451437948528971455615636410503463540475164174906655363486131818533328576843356768998093363958859918446613908761608533894713040725900386162120508246239400911429333574562698959805134120246825200251591616322488655158017668623808841696313959375818461842750718729380610381845059181860664358353293947079993527717689013875575763122323014166111898644002663252344336702686476293525380164722280076475331187015470642149843612034731287900365723705751565054541780877632197687488975686235262237431494975736509486618436989969516378901417210263512530009879324413816088392052138129728685374243382097713857592316719933266017273807730687879491423672381231314465707478810939545381039281878630515513670401254428621294470081278417175972299262522343898541603431476002794754674596136745638524394490744214622954608521335998314552484067077546856391015457764686275335009424082322884434309185674042238462043554891668597319818865560662516522605411917339687336619018680812716178450502841316806156423778434894428769539628965444770825206405673253714895926423549289326096898035169669105626774931443154779133621481174186215348469927853976270964112221548864195829389181919377856284806665691827852581983191092056120636580370854088715140141000150829290162225963839163396181954761857265847200950645083596660091432949815288952816376465944062612890941556058125585924657224154320041532376227492539725322693295809052965364366228963453585011670564106998153271877830644787955845790839741360738352881183881167421452935100860151689381840896722793855884281285385332548647048132431951349932504480078831898617408627257474062337358685028046009048497827906814784235963242633978491760526058024721221208050698676612810314192022640345212582800654075290312588007614161907100883851298989760077980890795144322307323341558081958891934633585488636241054556004271252793827565768769750057633432433494932134572185103648705132741443018548844325793219440170542073919725994703473739961104283240726725313705092903985206628535459782785814869750569339224036682751073002295605176550365150274721741784594365453955814129784383926610046018989045764958092125356788037429904258989215866844354844205153556157780386258139517935356778764446170754831231521933490565573557183035666686221776872282485362729317052659170621290907848198916585831607050804266631812998545763820470274076173124809105657726542515621182670559848791416879393916298521105352861699319047402361537418360701817463413825779410600115953934570867128101949187626256682175345269474083818687483673817256444805226879840767788483789556460449594837488516026973964689100892127511464570631917463453633932756627463871917988977862758934562954284566575553761626078226886572860211382387533059918683319312553917696359848316317626471534528646738473696270210280244804188647639721852834199694536892131151508188235474879552707061153930815528304583726583602260386628779658138171339078711264783813354011438623236516015852991208840829541415128296070649674317179366682372391278717306988671412820902517857304975424997288092698072608322996460472252735079883765541789206942032159350463203686225525049299153927746530158403324253087113672661466675730346645043595149922880890589475472316899926357624249181584952614439337157235906747524662921782473749661537365097772759674163990993622157282403579335839621478669940392816380870144097398612997724588779123491011919031638194818757195890598681101979096072382384315904359202407827544920640556034536559431826087763297061491659082667824497628750281750633019781253767437403726316439928574095472762382970141133843664520758684048714732865421518293621372092650536616563711818773387190693608159160195653725534711648418757915033086961882497604909872085188670444680655102783440307895575973060290190653497984132554014154319075682358873537190576026537218958178434924432543879244695197818402499861490082866791191996269284667493757502474246684919170116235733623648885231426451003845203066487736130175639482843942412941156129248412013133183401497422897176122098391511716470961369906353592852072538506832770964987859639673427398062765716679255436386242122174228782262097206356546176182354081457472876746625568076251174132800148833120929666056290857729307615654854048794847949120351199902641737808464600784669624021868148755985353785146689392659119343865363679834461537565464682655719103275795398826520774277886802172574685107620019940581066538591276221911730245067410100427708915116432768809274274057628698550406864215948647307669262413525109755431536636740648567936638514401113487391270658035629279777113282438050772109304942401803911397701464598205951699997682711875669463021955192444600588466959417378463232959898847930865441223944664344325428932777074874872974908850152256337636737145536692055140608192287613493434395207587616186579183923498664802953459663833797956018987380248907516763688849662603319252178500010459702642025479207252562678317701504527842676663536907600729542399145936545432930828546295600276340546754442714396562837142147366234889640346860962820827340677298493379142455815519999273300668459204670731362929896855025706021975101371520110973653276396396506262356857640904390003057659709577217971211005975238752830123458075705680390854170433302682602343491742344674520779393519256042104872704826761637671463842287081070930432991327403380864566830013772395953173473761317770906686675794500034024836106821973822727312397380396408080185371524496347654806050272763793391074661388153545224659441361284606052712638741956476098804313527802893738253715529929684240902976322727861412722496285875926773539188317402565036137416000475144979247749058179618060660733810776992224976126249935990869831119884787903526132781213657580764562750905967506857874601528907813755051278047451566947780614773097965722504865077837270013242922496923204146562734822705401602298111407319252308284636391851974344648405385113722499705518193582059567672331738614158417287662429729485446013868079826214321965511486837538809735284305824553675605785888085795321358527375317672377959737866592556561167662329731876259022774594500878133831976237015032075650044059262562153823180292141977661428690866543782785162337793752165743196566603931134309988678746938533839832027071352739016488374735516647377632553716849446244824772028944500744161515194357510804444675745250619913239058686915738950443661734125258898945066240456839719660870507345171128350793720407258400543269391109390610451937201695962776976556822355353134001901846748100723958310003597206849976424785087573891113915058355987877522936909018706890369953953276522724046485132438101231440637137601698191735941771984598020015655727739955154555939258931091044078751852478959367307663049786912007045297400989872667365529221398092174972596681680389338148253757958688537005329201363940704027695767780323248994139531901331846701382366578325265816787923646830442075493011631646809842699709694152826181849021842246812803620817281549102494714168592854316135985778677404574778783303504538080019335580729796747312485705526780603499189769494720916536105448850861770458866775335374234567597219941093066274349518937202530911630980891156875534428179224975531344309559206277071155775409338179650610932071776431236600827266393417968908530144700966155687869281295867801879889595142622703461973239555165121765057822337413363007026270858397530382162834552316812243866174428600993902194111690732897117631843907866623756867544796446689704179986516650821974586288149551405091994944643801744917442437998032099422318033567456037685524778589506465803531803381362879284128672843661686291036524054972532228138508239995479630940395319687813391161442038267469894782513170074140566320695772386435141895709600820467312661852510969625653032139417468848076189293283121495778501258876717859619501652410725029369713773960932074802302343100907197795795058283234374391573482337316054143403705333105825885964515652083981415408545045189495647902035374722198689830565880565062800792368847553164252230768957724906416432080628908799241305160059911439540574292983548290467290628548988825041187295276476831628365142162911707937196545335058989827088060630370711150293536384056800406504061962219463398916408323729461398747901819685942996674341071681655791389170985512135209905197374245058707878203264465099978366914604475204083460974144730317696721201114355550863250931274286816710146667026675813782116063111134486223265947750746569681886221168328644169010150865675802113453848845438396009020566072833791838492463969315646886206565794263279462070594163145297168104836275728382662947169237092144201269345667623832447502959634928230775128460453220726180439593526318523517646615904945451795000779963345399623170368108855692752789580706879149942729610406597989325288923956062690478193639307008959091331145454246057722463406610426222640064836667289339543399795908578179914326134213422910900263016758159926615411681886459402923520328745530442671497766884855005867522973111232901672801478852912995153355215960312201613607131300941851972885163535967018798835117367344201698365119876439669366829511932674452916121514137840221570428720229948818349325937345446055906659799840223577958398674882774715180998754526478688927416998617505340816204957379347089415219284041712687931449687577484973966934115304981117063825767317852842083736224582410921593270066960470320608178996965777095793263486796565899594376563840597691382992276224092523830272161797932489758602146346135432471585058590445011127144086233604151229752572262599067022808819853727333097024355710593188258548456515776933343709128791626685603964816507531426320190593406232363597469436874784595474762306369719157222188105101808607431957859146371600285307249250221274365317294853246904193289877569692988488114045468469087838258104185377274014374365247151529350863447369215964128119319207614614137362733776150572202548700448918689659999151151403739398449098799467848136257296671753603915493023149904485369186649647955498907866540902458604443593044924192296019754351973818956347646719326076027094326101995316845171945828571897188602742631283099167821780423694233696331556412040129019521104469718087346549916842371674099959807303342323044891636949037607242156455475676569396745007731771038766019745669693885982431224682206092880410808294641782565536697107622013021725673715151174635957891110768129103253769304660425884186888298120052810039649903743162663557524461000854586002287283399762072615501055443915186347517669728283070811908714357433404946930483571251255350968760221527122640239116907320605071377762665120831404220260217744197636697873698413023252467537993395082176732755766998318440559218776399151559173169291401668024877103379239733295433236616964077573336568368973998434359513161023183054170326171235430811010038182535953845321795502175723416291164319994585657482431821143381553847986170155881050874887008232565206127118322980589337541604181321184623122703081919246728391095933415771199381281741104871255014044052184287543518635254286910619382871015431832617809733487720629802352340684454712170585510456382687013796080737035176703544683914241384210687671956625240467518704452828194651707322591525446297043641105624327345082857450823137718296342919862790971701329375958142697812743354120239265194971564555923253251932880299682799261952582782719593933213598159342426422096406797002680880842553764743043070482552294286567348502029899949829306312348783655705936021027354163475810608087564670455267280629642212726997548781659838684669420616570871905004905831327965305168386750326579025320510304873290272990020503819954994983685284387754652016283201846865338791795398522754216841766007128877238032471976358614595929032454805164893685573237411655030819953546820532420579948955871623631173681594728348871299686955417151763546702848089629569993432385934058928244413046657531538760660112489740994315564388699453718990607281669899870206806433177454836627251398762711080704790616561873889259313742045011584159151246409435972648616547959059202980933333024133947037528956142747395483307665015361143054693546606523292000527415126705970831695196583356321028694801596903524890938232065099003743908646891372478559830805535187559106278453391597730505373207490057698742680580956773196217205999304768040726851698599826911289009980829269828740927077136127765791656977622325371005495503433670545830961684786556512449285710242408473736634618020257596394712948358785188878816189225052410691115096982283258751932368495335999004572496321178018168452321774948560256370004367725311209732971582366874701367285611684632358195395068746823571984317804228727310969143389204430903328454755302980554410797876571027659841200788507209599400927117417934311314384295871270576988619158444905687597878031632374431514964044952489020132563821913611854602494739016045281246577726835176318048136288748228763726770410561300161698590287097491661727856116205936888000725928151416866242997674937474317790056576553183121844245379180763022712508898382427672687572750888596159888195881258062435953514841744771079022268370660226474534827904610120817055105914536115994118233835328264301120763003046784371070655248467388789797809049178492938544634297444752311490425766875739254922764406507447132987184422289428446167698363460633800021990886209531307300933264142919693773823578103004150692631490703335062633107312146541471719638286068843501975318738860421906603614102485921869017973406275768967856330681471055386538649798131401066621675680187437303763988472734904420010845789099853442973739876329359703124636064822451883738653882408171456792713596125734038059010595357682615448838104687118269639413646937723429277934846742559258693226039434814566757009413199120888899224439799591145817774765422070062905992866144116358131895621820872233336020464634093181170216240789754494769371771832421810639490805480464662329553577045998313581643029282235245131742232733722277752206543204022614409987914917368397255925264715659247080551769698788668041703309858820260364794333557100917176613095047482386461722470845192677381540345065528702787163139805523325356505918210063550702789503836298843060323060100540892274083503303889175682362556971400057827654623845320390532303853694291833943292640192233306237198663463681772169893690336165925913236376361377675255877424127514074367768143939598655868563546596639520051919304714943549407397883398200401835328152988735405749939658246658328344111636289185462006327028208674358989694717626572600152821872609813905035848359044886067420509238888337979462587648474568285919817436225850166747180763286812061383796748573301172213485830425754590642068249097415651399576612515735839178199717595524533096556302367542241194596829520838715782566047789479896834292471734885709381744862336400263225039600862326379193214236210871387713841377030941443901305902462011636620105603996056219741668839214665220215483734690707669294823149961942713923236719900127073035825066117614081544247753223134889648795792137748395481751121710347110111396728338381725880433781733441956170063729768782466774732114933521212002458678203903128304503237912063256311156607369818989677132105058435239922814594629872504444766567851564873237500311517299516941653256189174803469958925455339038789356127058974436769099754534953777769399106462613096808179782137081850533015928404035747927539715420252543506685135312635771148281100360181637441696065175108239981774485872511523794052084162527433464300381230072203872355043514615859666789497660384023305620825410604018946417455263390386232715270620052051058864318531504570152891643582657582207423298308109761467341455298456767875860899545958453138863753800314669607670324599163660007097169688957500574510854761593026988116902564111097036313959830231925416478336107705649772142056667471022625844940326721374046894554038653936846522380912506074763210794481436626549903231231821880004396610425042243933463870781493628136441546970809080973893627811585690000735257852816717262118377234930211405907788002249905457573777841021156016101695186888729288062207265072268388945124835504510703061943989120209593405114940708427337515886575093694224619884384286133187521372607405262909886135582104067458350059648072148803674012944940528914518758532730611156400850479066498867246299141012028810967483680008909218172147192138725635526637636305267607472024570203955828795682832877876016753843470417088846993633608576644083229833754827497042362484784185132785659004080839536444059670395918241261516569451892555777326697064113290771129443677738104490934939151544117653873147212913564880025116305951349743417982455213053291433779611700387321461938606649241469002410554620885135827819940782186632472692098616793578519026978119278055212146672274811571214116860314832534329982575465816238057386831119836236785163143006810549733275812796051292737007831230213952565481477129425311945226277704135077954185575872926157565170510703360093641145734426947506389683627150709301071989447099565723410933129510834640566097782386823137519241887440209943652506069816929440803963537279481952094781542899727680631309584279091313200907335273479046862907040136421052635406864114418948789026026591420616606543313331445456119062892864401547947988868694708047537696500028107014095078675110694661730764943073558920168108159069522935788984084528365136474705092714123057173858867804031669750295581180796344931735051344470224938549314137585832759436294969618638606028829597348243969132157410178410214086568167931021091179677819866035792946848942958539153697464564005756038406920300013476013979469329310611532763352234788099269788714893094674237236020916320851170883222999599324418038993858377128214806785855030562850546122032640123538048139933919454562577291521940803799714621716899235601633175430397854583966627660568632093339272129454411327853226633170509088132149352011874540268670807078075450135580542407911850680049411288753436531878546393073335775597174237017243109312929285350208897710608024378676320531189605786931582812776949991221600254354068132539388668134718027075530871941295383679981863480260121184451819836803759738893106559163468059975541223376835968544784468522164679027354938272468634605754390396148359563569680386011627426179144261095315415028380206222914774285920781337370072379130829350554665162413880475846782668162193540792732646934767316540314515565865334271859414500100194408720138455685246071988252526775800139917057774152289766846874394779584101973946613435361635975095272771522200610597407111805160057446223303792940969441637721967918768217208872481237739590317535485402352723599617283646444836031189280603549790338292193527632126189566929184701299196605267702449882740960390222383378663875250774414955406163566784972464152178585368625447870947727942752031138479508539147153444824540562371864375628036467793698089416737926252541313007998723832595384454315760550740502503804486034217299527932028842021907616393952053397628534177427840446116884786576529595830237958237586743670937547369711629719968830113160179279896351218734942708843343233057120884915626989969702022395227240937535684154043266197084752097990189181783372388836772011993661406704902303008193736706267344107804799063528063861055408671703408108777541428850594765835703475100650209765160894011366845839976632254862970347909795966440284608150865865998863998166282649584725188569168785267179959021655802385071714612022980648041465877815740032424047195150112041492892696440422410077336111518841664164218077440956631684575444972740081597358954121676545835714379349650733122165888942279690525870231306398132035375334907751635550014705361044851354813958425911711236276653161406350720985924117656501202112932433117809969498473860856930851652103595658698815102884025732693488863975943987480866395527988092195416385097444907229945108619591638942188501380170496482117793676203882630920047752567689400138774683239968919180416297881584016883027942462978277304976893417419866910920537178031849096579232909085803895614592765296658305644207794805363641235350622656658092453889709192051188226800539949954834241196336601717079663289619851212269469629830347456374349747495781129934568439367691863125676234869871692241939837128356061967147434222745013470559631947553221785681283404930134021993777369831039699010947342636512523534747203933255333314139705327688866935111500443457779626193886640346036354931389841314648359566167615500160971239612365506600734677456178236157817805068456693629577025409459547433458258870397921712052356939934425207461413162575196578197215422712888703591261385235423408266715232250029627312398797943260189140218851521972884283141428407829556932617528738201912518144100461009703953227502551782679100008314143980844964468549212857766510595600903686707536798861414228888400878584873842464306300239829832758618615239242382716994747684121509514819944900836581193146304926502093512413679473808401423802862990776642597157461775115664848959524919150360195290318038120333753262627915855774934158128856036767223126270580924859674746845995301180303199926861524957456284747751290440062245046307126446684514867725381365145206689985366520398681786756302284732656205793087290032334957270452631188745159725500545488608802781285308138552252590194650721519758946434157118872190805572126672918105981198127529423723555917549881012671446371669623268184602002953346617234485008457713103110686855805681551304365142733588987682137358930500005933948481160649826611642026520073468182421067078294976399933951648940924697662947105982879339772204430658822645353533078882135760085253559156724510378392616980215081257830752280377311522915733071225225145803201424301618201455011109795760099511439466830723056761047103739738162846701719231826730009679081715427067098935406836872038201788283396422317522321791764540584486908504609947953250325943395439342983278957084046258140380006498792320534183970265040742791058276679958718110861010899407566123360501715532192574772254035150346789357122039118531305675104581944756334046899225796719546594665327976842318920342111575224885635934036691557430607393010992413555079024226497144738843200281078618745620582585544037778244982147271767417662951134005411565644067096698449549959320800173844328773990721544040693699509696862560408248218421942211077966273107789044993398351451664603242175900633675335998925403687707872892655080369560847184643460007659359349913392790914200072795300235617925992211602485693654529497189282884549112807690852889076422429623210861713605343030834072004183446218280836278915930332658977734824422758258206579649844754212287053481737844106995533512290430407568212184896810565934334972889504529146704096685268775671826075791830479999200125010944522164743762438781837363514158219677405990881972681359565592043379668220107661987192247474954049381850681248559603664554149568579355397230900627090111281200627402938459208366887974137315067644603581514342160369896712279483794587973776746175301733998080595270444839212152990789932080354054956323882548226905531719704788342186491558581741914175443428153624125773551151099324865979758367188244947653652400736603147292276106436771136981263666355953784562395212530590297131644908935427579937262144998443629607191878752923284530165948426653364324961263100075117781576655752678802048796720141185078698548881581076028302872029335355738379392926202640735447883219047891907204402308741522745984357439328760213094783174625448311208640441017608097064509622141912590152715161323921028864636424932835356298635442063345918257461883381082273242271233744797813209999293202326283368416711095911899302598982682146885655060445681062799629287503577554197586017049601630877303333921007402159377961766850182678737450873444538659775333340823408939200939006465806233969848759252144618748528806732376263270092488112827316112172749149853791366910136673077014766177351616056098494413431176952733190062827262091584045342520294527296063673217321173139355236329636960479935307592175663667989627236714038176639934746292636983867509637430925786300813248599234904964123137917528624535696200578184333121059752588517357141795326804538099967071384826266764750980830500762009210136895891413829611789658463437098285369574728068099442363807431705231872993666965644007013423234906302413906432609681300196790997891748693080431573338486915093116380524270603489200920384174994007099386637934909254666377933246660837908165880539954549824732331227827742352504929643585247002360437080131777348227010274242452128513897051796721986934207178159587705885602847880747982018301510765654885487024423526576154223473127113404356645114279348986295182622485908708871927683336613150112879944098724822691163012020455502833645660107653789100277056862317152501460403899250077752610575435424774023724794386865288134105970287183194642391927198888101014891551244119733441910181530191644317257841553153408816170198745341564021832637557444047770932903463980481385839363427757049398498203979176157585845167356911306700679885524899533171118899486575295365299928134245211982621530193089041039650490734472811960186448277493612836823096920858161899262822022082510678145553180504760318071824257997956780111543084919946123830379861157921283851324789367999361501969473387155795094424261496824498978371559755329782440587402333644962302770954354951859250011836940509395163577683114737453329118243061159365375948607299879279548092629774561168479155101456528857202202160847807870418038514203175985111335977922907600011057685628490685102843584116705579028049226592382265639722156341137971282928682727158705586269315692806505181845643850903110388624177387449919273794223941825171526882113368062911659582753636025473711552668177402333781623952145607028023564974802373463956687949196271593456605320884448942564167316241211959187649747807535860683787948579284897907917871680346454798737625770857643382323993191377792136649437705379114792166164183434277778577658277280979724840634092106470720286562479527977485349188546551798778020466153248647705891749534014510364969633905305522353093568228138863273060067306566368948907222752377451815295459745915425279118028078271203612740819769568959322660581752516869793878289487469873030641241026489407916257236496182236795428610123510390456838419237972675781906168697289001644601597059180888530725242983390966202341258279741870504457967600984261794562714071128515016641159029076206824180271131856320229298410352047000534286572272953815961724451751349417731047225747569215996792643673297433534769820445297898687238275130348642098001069890464719605875419131223343696093765409003642938770566209182664351394715257351859640589498384088259103781713798861534909777627933113628793345476803436470745646445874961435422250949000749824406656113456489569416028830196611588106984921663239201621028362369166034020173407500147497323150486716728891988928779984752182038559633690063113437924924689374550220580576599842840626653913954309979453163276615815920401735447513427196399368300289867615479662710179119252903671267307297987238263519126722205011358665134648872004940072412130306147123937096034250179105433917751266100605016299439727163991094125963772770778566480963560065180715302119361494124972428174699019105711321280374283413813516139795490975856976653679831008758920434950587662139758584453199553655873064076302139343435904996607046056358454943039596101057469213502360778360775279524891886638232494047489909989318366590427341384002216495098340637423078738410312578225006367983748224977388759126328524309094683140318454187910799988314657942877876733336935669749936068335461778081242156673761393176448863408375609365322331874903785498080055802712597591010598569576065752033260334323738501601856504103384273617285738454161248605559966892652974707353294957268290656637285321456895332387702123892428775965397274606621750378983968324699803946843604747416455025611695545222188330227359858282234146708370671017637524684593454711184270963879638628039889766461744595119034412931749901815558387784552815242663256760861901603634057062913944800270700319686995446427761445666539365876734176362496466154254163997841932208420928002444476701105596437950968457665500514480661831740376413635019251340250520526731020249996639490527089885766068224843003957103747615022379678030975151117601559160191757578886938313645508903098844969596512785314666460094620332250388671512466340031249443893145884277100907949968743113100625181700024382021499081673964401172212486729799402986091299034273915456491308910971549119971856356322049337941923625833318261709841196330702612979970892234519833164534111009082118862688588347964292257812654712229549512203397860970251432762712712023138565590087539005234323919212108843088183737763338175175293214656603461975362138008601478076631342122767900513700894043268438767404535432412888689761574838711254274766690886206780747636253561904542404565293387871490322916415325148698717877774601257635516327911157761596368008843380530167857855391010565827949220324062543610552490701769780368548188819815196497056847684919981439902030319490113196728602543241365311588277438051064692562152435471906832180956157531012919798537027820366319246192372178504991399518604935237925895325772492552073935355286030451789378580104339869051282991409830900108044611980813915701388406368551899905481138870831902650190474731204530125074817361748149669322907308419042470366822210540283294496884017490818309806874281605367609964561262340476292277373936472828024439482995572722523263502628462228395676128163193844098679318839404689282050361026458850336291271068979675263858187814203211537423126600606694211692373866737364697643387614991702146368586867270291185011927689296671630884183939741985360952574039776103551330076842175597432000007074114186479830615773025431146944571844132396682879144636561451652070895070162631809694730122071328758025335659092578950336595534999329900572121079527500161589583245613333435802838302138596043973766775271527955240156619905783960880312276052093288636656326906476161623201257086511329612895920332615357105413413023360942276793895219072541470785651779199133708535612010490414073318752621487210660289022692070510674411385138883588245709617045511153987787530939600875812053827660232590423751252894681234681269618849401892964625582560088523827514904647874329293018249949119554786929060380454313194525094150729404044700788615882516346318524581027898858397486210505286327955903159616089634120393060346191073542690451993637425249846483166610040393325241052930205947226839285371128588719024288454266136146970728096637200854878041759193729276699002632722024987234142879723257693303839710042632719598131796760662727525213965103081823162357077052241987500488358443382458080419433846813302487743405498195580417090149440702106666383460891445527162565738408386112622467995480168141801104269484174896969895722342948578774912309560745505581096167311712791555665173568739698144021296332262443113293779883945666221804801921719650061436130981218908751263430031178667230504885310145658793202248284231664756700796502089257706159614607231422925653277801640077212870298643594442068151618530195437354399581874297574061845375006110712304611440050486742401817267274413508223379895656683214529301312980280318013992539286329488181933108583759047788645831145717019276804997395536200934838783191630329552017353317555279306787425194284271911479149421810354925837147625251749914566543880170806994263259866754079281786947839772644411280814130147586222633355629185650159410383845182923167998589872022580930147974247813259561462190506437773563131119183315365001498251013915568552269001539376073652568978883180543070331417621455265379565406712432320826882972912375062972597677570578248467375267133078553012263788486926279399797716783151766924153511926940743904380835953503772263533976832145930748819436030710823724656572400003754693592870522435582409490467580243094338713385749502923031022985652524733780326693368765059357179343011426844448526610113546101517146686096147297205313549835772778271169667000515120402201370019163200925157043180625170342821406371941776817476557507917948044350511266064868987472958057047445269311412858626371489044213285097080145775769110352768142407243511966608877914556926374971261686136355717325119797019338668834194552365172500262726919237275114414027831972613553336812891945055535753678535395716168201027991675025368969001429786776671675320505401711205445184478008618775459193724988819630310480085412367489610317978148679370687166546375878835786906417794953996493614928895068512908140797004434309942293224539382849453016924138997530617207482876271339586325130367392810551125337453911277788248736850831259638754247881430012566018538248619427752010213247228098071654124981348986183805837516573987993391984993473580899403037459164052243398559699141079082049729345835112743220192298801008513399257964006187176034126355038398289278741842020535864710056188217229531255256194327533883625402847932161566550673135029858711351797784229580587501636626482687373129383011792506487448307788033637960568931013246077467598616150654165294895356316623420145592889018965038445315249183267676219326046172126627918276149328552243848062579763720946076664985537515343101061514172125144722362874823138911934039288559601794386878179386471808169481106711265623936378019702736624160651771901885747285999515450204569398839626636208767919525648134553166765681016510297784719201278254247762599934800776347297510128249070942066114883630228666109310131017108746988341581516849602812667710170059567228250130120638980204703240940242759172266156997144641480334302730922533237438551446641897439997108402316513238533802048892880047636780889232223403852907796875450392948623507382097533249306804996634846215945727620468133803712747165141114352656713338840920576772158134590430507656701120660052161767304150669376462124743266875366526550211881590447473750041813887348866613832051313130482423887295414187217644113303009445991479099726655569738636270885710550549176118895280692246234005763193135430200645558533943501632274428072146714730602670553403851124338692574451108032031706797794083636863251438881788746720952992215300943382827656250995585629347063724353074021329261589633119215214001314192221673185833487376272707721683484823092914045594867454227844057460080514274445320877314494184797376349581671616086539760773274798475192899627246547017483057886127990921895773137926581805279569736393797452074466329625704680191321904732356252008909632264521744760053473446089692922166366685213617848879580969600514850324003411800877353088597379187358802950801977393965407881647108124762808581702205540326126262681451148638355274421004719648048632948263461629781887909954446289710801529779656683708344206399091612243309804149680523450755236886848438426145239103496874410040561913068515799879144726936386904842082388306856379029728196963276362160398213629009855958973256898948829853457813605624201006429345368464959623097926643129791771396757792735187755092934987883426875992453649826377846161410077533852988321160702165238840464092902009271172447101886199829185216130747797527861479356521896189967583907123440539864203135028113125838876274479233515975467172019460024623042089628547911336793696713810114374997079643449422932857766422533594491230204131090732943438504126192371740164766954071752713993605485431028078055126250666926783131747595240450079767944074444579568342942569307892844030807440388301544358872331128140696008332220288468650615477812774844094553313269054048970181584767838719886222847559878698637617448796892931340836642997845162087290778862609184712673439191075077611720131164681336379845344229560762122167149664600612337323161113042003487750641180286273156782425688627077572050994512887576055204668650888056995953476172193912836030754200244491577639131315142294490680632412484853193906787761714612581466186655702248949163598620580729512387455573965931129410620707685654979305049390670614268946224752077366168964723458796651011105799742144008390350092687075000445644027555078415737480312528793551443385225333743736784342024966263613779222823574847394842935333681564412448703935096467472682565774136528203201200655764363077998596697627021538310029061910396630223317774851025261910246301951142396249310137582902567175819849314289712609960836108777713136664620256082339678914733669055667916375451957932647919532566351491834598469789217268751516506309797063685754879551587258346095394438395788560290600579991415899062184243523964903397718488212736535860487916234400919748521442133185326227632136635824992691491257262198128275480032600475497299400811475258101079395611618303789122737796171981753635029055020108786966290921705448563566202099834181699641961937653123774257366218650737336578771809249431462067258808189097498014370311141715038629653901290305971414900492319481415215426849834283022558348316804936676950763560146334005391442101158255314251427395690292140291035774448018892250981377058199340320242086507597974398732880860106111417187688715366150786334171269385067317072121476931319342496664875844914393349060850132792160342997789697510774593401883307912543166243669643093000598284558037600500308362875630674188764664812627969939799144239937734290775971579301646621217348028424937064852988268237429845087597350317635571238896807190951854098001140959488897516559247720593560005185657391008267492777689139215204005264998444160280384728207202051832903804440251778495449825220245462827620834743334717016927762388323187331630033706029822302699748017127943616626811253759231896242076500037624138977185168553524494505925402845975845475489334760210339266970848377079038294683664408153766869087800676154331821493606869501577797650499376777025528291606457219120057760608228239211632152738365477873419223594401256917909443790397685669094561019212512106143073954899862644028157425683240948159199005728814708885902503903768035315650663382893239323668050366154536036102734178928699112611522141630418486903755317975628024097861891636473329457009810428731142049708650678363000908737998368093541481015262221339736165086297105692697556210005428218945645082670782963158674201153936349029177897244830302612794340810475368239624409122915957473763171683188488927598954875605286447624142131092053705006993674569885331682309979139799297588854200454275442475068452761392801800873990146637769457188192285962158492876334684885652636328011469305231796062696482288706805451051790653208094484279211799703777820158453361815554571093605915784691257594255916541017971631050091103001819058100859211516033578441614318359637259971451229786316036765158655103352470729321775667457280354422349388452838394086213206253662693351212374492692162547604331557533350893969996551998526346536203580101957661808716361775778892894226247628955287857570652621091880700633790374841246114886263015279245524642650345438171447170814188530260736412408628671638819969315522555281255789129909055251487194790346493387106264222970418032973655967660049445040537712375639249734793873813667599098870137291247443142288526612105083345388053243241489911920404148801546850154900816186438261426850091886536561903790016805052330206789002674788546209435451682502055625643946249548614625472007208758140161191605768341567694101997756147310820945169023113322284047861637330088345425466315371296305742651458387586369966980000309451738161922872526080383526585673146361665288712574473542117897699852957728835118110846812351518293054857490951757531700013972867795350245118290297532521885039937765004095704871543624365835115307497587207904974333149844173401644701791961862905807956172374153042461797899070726288659222606223028891136772440156399283366881556572868546476240906618411345234511395031744927965912468494176197442893918503633307609831290101008289527171189165472644935528977970309100743992609982404854368666044402208986585637464818748745123800109101513829189684873525798463138732106090895749677005427956356306572270364085637937289642120086157744420248866745595105949225962397010392679278807975837907915211193041421995590546323942457818516673437550483195278507498810918746815722453641148146028031610612943881685095594769868630223408998291235428657440644042353119047073223231649583031331195940223600062078677898171603815723537897762083613430997225189116372579263700127147732467086261613610964846244337695150963493211804335056128438044692957865945820155820135939474867656988132128930421181954777971296967154719430283802045029668305534869763892071905549570352105415939305933675361067153810547891242537781725184248208876990790826013878341794081941272714534286804501503510558683520107618167659278107597256610990359062299196346232350449010692597232956031137883087580561542117063664372307678698246028208790177641640447102527399466234458805168864755260937125482575122298061131282108118327906401811923850774275612701066919033575295911727993906270072490141361753743729627431317346670095320433461860828342846564277530617333853800627208597495031210034841062862321493651790483703343923258069690871581223951768531283736744995607145285414681786001824705604343524440428026208849715084015396535963672814104036723781533337262467550311890915868738131597682220156705618009686621723775105360291363434639300741584667726005283147821415526334935750396319915569054430580857261083094386154643273742657821918175716968303546220399473837907358308705534579800779064633150719967969447580114392333914573986942960794858372910525182831854252789278029294012228794206003289210662105886132606549097749819444902774061673435759388694674047251915485205086272161947685467971230814148016535210632601898269695830064266688283302761598116233026067036641996762665045155101948313901242055997483947717823339405920637773366538675119070882384410276405421930040069977685143245759447849427851098177364434559623399172731903869157797948577445633817408593594453853213586613664330436291333498901866668650083029667461493062326812418402049989550793624720007614533623285895577704620179112739024406428193483825911841598878546902859886306212561455108456669684354511349274009759067021570340522376461025660780517206426129283921057643730357912816108165515978077000194336008088896803431277804041557993379121143120808855281383185904547546133845133045959164227546154113601703004868328466781480482947095832027413383044185913965473472347716859883303027399788593034008600329643764840166505849564688309469694370953883662589964651511979320766390889589728303479736280944426248824835905270768260051973234292587654444824974974952937564077119667198753559257252419745551517159725540482573171872026696096918118715821696299866413506345931037058099138734780033079280976757600047717664790220037961518490818626023297228814501718684522442190351189941490312085360351722249351394561154020147685348473755019332625957044718788818598190798652185513605321593126703634888568519854410407741932326433933424473253910006206420342806258127033010612741230510333972940271889548461633640397011449937809454958009071495926604894629675730625034052848565432552358492573970415350686829087993576885513358025301639062628283820106426170944791856367489556526440819179748616633032285160859733371220775146927962829629610584422407381711528228384559540693393894019794133645272103808286674412991308456703916596671373670924530354441704510101532395503683561787105537119345789904439308613275882758264187480055967498656301488890045824778432242462631339581458503797879063335321456405308528372422977653664220170028131884476591381890960144276343372419660555171297752857582718738041506404948225701856013167002818170023785086149919239643431241643737906420413704786014879749989307611190785289050155704939511259020746446708623629290247728765707470574390307207243011634127085333074554480843530050506699492593156814461092988330748987489039840892871247238322487440008800434875461239108575547669215386682332131411015086788970762454921161181526169683989540109036083536150325753916272862013923349928819693362011991837673325528812033906597488427619959389323586082432398631641453128217557917032858870339963755095888973221446247132869326550422552975279410476935957430644378193253107222310988391486099312635356633296793897152671354312330471781606303974202542267800206926213971072874723558881199405611868252604003875742180478192595989572043967880540185676410705139292196966475802764910859028622887135173962299886656154127918933360563783102427711964569996235788016838620680148306090260149499827234053697145520334673707207409276549236394969254807792493809267955688943440106999895545329664676630485267500700961878117037549333898494404474903274370816252254426889990084919650235173696550408638821631190021137953167161012852396856309968969888182562748522159484140450330654587726554330385069026870838818713117598513077483026249496167258628246617650999634610404369736546045350444830228722705945178653554156681392243751346244173934896988308157595398321792717581196812997020759459141137997738567096953725111130097217444310985454835520251708972446710149890639036524574342793197151547538089597386274673893602289373610271117294741180259925515646523400240999212601841056734983637748244666620776669252946923236947242420738058194504941113139917661274059079717099982108721266780158565783265805127422658302181556851332621400798252382985366171831390396030842843224802644248899847245307707906639521347973933562479245544403932516290346783133882455679209490592883183460083882860961424148391552112313189277102411184624272755159845742807366466082797214074630624799516694272059925386928387721851731127732560189125676501051997298240525215952353987745928197641326448801722286203534809328084645363089901929212348159940024092201320794047677608087580671317674370531119217486878911912163168777703999452736108776370550755375377588799767140852070283906834134423614416403442481168100864877862746086091719731819815836544373685896875619824296850498108055841872042486208741907087195293379061293374150881263120480051057960990244529240577135361024160892955122620085914878364100051934860633265614566754429725009592204778195528654793144327311144916181201483713508453355537075618662287170065889530720134910828234914434834585599607727191185594761374264494783509907450459146955585307488808164469033750380266766073042859958811251429855021115665164373365126391594655983241436244100769705017693665574246562576700532054781255576774632706040089775032094665910313253558045795497839049268385152570149301307628768943868880857516602331975120568388796820484602501021657269199961990437935980409170608697251004220457939792409559925961592754437613197665928198976165432118110861815282107710040703757249645607657157445866716061106256914862489985126089419881122201394482255810437162968009505423823742307814093799452914783186364516330498787139724263151860006184552140301495046155139741383665998369746574696636307078117523975331436627723946010214231637117162306879006881901029151778358128522328631025749745366217294999438727748804994695194706749885368657269347069287752248148055016970180339239566544507319637600545608520771778428563409212192797709154962085122280757195586027466221318730209477448317749486389098738734905733257986687625356667951808817688447981926989546956523446815195809037365786206855326750803550849227267670919586625657271171393330501525398627738306883752087742372700840280818080165080915408983210962127747295079803628533695405965095663652973609127817229514427308236344719960783783580843505962949981387402996224909235767415353548051125017586025574066265549471027165872213152299934977039795604507650247546514005565318938002667418281179657459252469553342572968256750899148247946829546308284262559316844082767483691132402303036394559202070271607745933182041625698008608708717069577482835710350920401312280666011887239116577468436472264955796939369823618134005176308188986026534916711993490508254324525767357195416395851997763210840144684579946735756490970778735333338360428338129616571838626871994907309246382114916451566163772567265893064200498415515879928677400462147913473435441767523401001172415066142143596906936495444861745187838113606780469069386301679525546460120529295200990050955915425321429188342513513359939686304146189719851502069502562722915249492174623708645825527555472039208915321772745097597184248326885615422367162136090306649324477433004230984534360746080251222068894733079981583902417802878312437774440799408146229747127413339122964761382514386610007672208128609444401946056743281927880973387800693162460719171458037909921122410812159718695358285806784506136041253779704395468145675667678192865657984775068970429290598618626271383435836490896295281115140342795803620335101002522991372824817510224224314027420749997053976801013210068676656866060883774787885386333234986863958251960139532177850083476303979489869300637350905952361627004018951769230725894512949711815900843712947898418346399496945012360674522334187647205864692715909599676641396489552578772897558405660761265203225796504134756621148952261967085571338140473053827692252356600244305587077204932704772157809617954280458729113191442799426873276009936335213512024277994827341983552404178984516711792212004564602537539737305645215621585961578758314843839118538179992777298851976160655214138307857169004785010073697990486897981883068289016291488958648672057194013115708593095013822787352727826839005124949563990386167022468073982765813703908766779370242290927654896351646553277397401491244230273161118598234404894505529114810263356551446284231639529198422694170343569903039460036783674349661892254138882255747367539772390540223334084208438600141202226540424573388958448813300297506112166735056207730249705842458295851162025773347702187222188668860871047369153403172077728036499199079127933324208247514173342211367748316428382744556672389615464737884907828257145504305001045380490615800617582556693528236812775504344946550388254119356499495528725865640582020141632019250065834597953854913707591176610948709514712041759349572236965304514080176509692988388194557424484041633931259730075073866871311677588121941647443175268506477150577674322907949742676120058948098462783384307063929968067148950387426422506056434042001553299205722536416034525207706424302592833813300468061548563053443784764524469411753701383610836928208504237350857118049662477897898536701289639849595898610491345789955764504828351858098721939247459903153733998905014499742685554365819887499707528222643437120756452345256882194519842343695988996757374557256033188723796239626469204954539945928680842893874450259518325821130994705890128664674268285014020728389996236620521667312173771061442740462511488808170978257834244775733031048706138421733190553174568399059642418101422576689650390412408598511934721090757524497550952842617972331421088151678927068198315535313866046268524978547213804666595123389714950117085496119988684231489170668139101071836570585328222385525675774378563215383073636478024775618270205455964483286154244700547581364319991004657917286695544217816954425314757829068408408766418685950695865808011672324157020247197980410010054884513771351256728373893384322810787503209696190376024574493270026708245864632495528962079687753317063080906554077803991472015078379844941151830727667609158655215867559464452023653373386897360419967782554205285293385557171047144348364825826177033458604542493412533224609380047366379548398759588312468001864309292265390636884742708594230947399097949831538962409997694987429888327314110863088678301312863113606527161094381119755834016486561735466995374698685688247762003670299949067853712850063837154794400606493125968755236566145696323794237746912221724435253140381056076976719622516608895278135969070146184670474260412069035595219189886897859685768971103525348153972004423818849771383377061011701293560040586503484559997402810610272057104120376625421250071492671483648171398157863443376622969642119688973800172768156386737331648985905105875147660267124870917895889823344596623605554410345218961205902398386264575992758555086564850480246631920734498898737413460616551651004867423796744634917318929979198640684052962147579910764949089040706989755584805701999805708131714624911500627683866157203943874762945912789265666217591401146636725356325181833269208284610689662136682524277453027428277483672704344457956119027748232383276260900979756548416876579171551649557872063735155081518230936179820771592301908326779151065081993627715391654094156176116380777016472876820791773433704107279516192224341289388883293444866776439464589898670340483058938943354980344678528240352197354805086301358349281600727385492665784076304064646199141595458582731001901024273069696175152111319260512759817326214777671978036197571045950865468878628238572218725826956547522535496302504588258381892420914245814905825175085037585072763590232062078597331396595959474709254638226965815239597416898690057510559603850986522430552852599861484738185161305794955470790473618040535809986091236058255967656181243491498190378720058239881724937495504775381379881662003385591683822054837433196808804215190000753725753871585586998227794579552594520483109408277345865441530378226730672868954922986532121033334580123033673683311564289562055290356699943497842301798592743571681012520569447300667551943631721917201677602067913943357431808022146900581966637539847510872243321334832562642132195922573065195835254553846164124449877912950141670499413584723504233684481372256891805122319990058396042115070503105915317572414386028829701430023499664585080437042023523228098681425785359368045274799096677891456258011560765236246869302924568336995600970987395805665948036051096692730999425763658857687372057310636524922195302546755506598962054507575262661518793318692013199193991516331918505471890879607031330655221017208365510556328854740869868642112016012687081844471426720612428708372047461389990831566203252367913877289403238707648983908715628166389833652462152817446805783168454943366417286857391808480084959715672258247524011301412137795326381472159034746447729304285551333192634062038114777301309081301059596204470641724340616800639477747972262362847998681750653119055418318280881756958159241684400672557772631101144850895062283104892700511565424008770995225899046625156041936061065617376396019647007164767763513254420740446483854116399064549449946275680207644527165056994768952095279415873598757582919129697568014175057887702440581801831593087064439749040773093887172378253563080134350788394002388221231944116053842563438472180882586809699435550483450927702489377634461048134093243058465891346023969271012994974053913892914889539967426501664732389720615668533399561838497240110315783107481293783766620279845912446253146421824450266280118088552132467635212160452153713994302820451778860962120979884985495022888824441850424855644188976969741419197466967953406596341082665095069253949590360876736177877460822782773814515861878594199945818322650408425233577873286333037534421680511607657104114132800223226540945421839569260678612893296744614999634739114700237988559522627013467889826696833336200135877105565314945780702793026990176330505497860096856951632005967704561185759305462473691598065194571003261535239427242544868038465210535551584359050140726928870718061091141988499539359855769094238673699794574194750980424559347117410955832022060878882841495797247159931071144909171595982306742086408316619738473244427829813337816666215193057062060813951168280815288626621493258022578227799695068235450766234128925893340855727379451098203836128537989578933136632727978395112092186139467810182754859039491303203443844825605459705468353499148299521513320941256873801155926541719902639739270069572167524077990296554941470325095807451521627374755446183355632541246266755294539113808499287613228695777055993157108436447724609650980786498394226896567044799675580333878973444889354851711527087760276379492721910750604104632392619703399638419329717218125217049439351004703920937399810554307447511897663403288491424032892420411209537944867787080336482267052278435269297264403604550920895843276655396182488966197740850858504834414155115924658594885416945004155703751647418130497976781938314171644847144083374290342982765012471050216156413916222380438118560949363109221847423741433866494912804541986271069112406531164260473025098168617141675848165983540629050056464505071638678082328953203126760064877771124883197903848533157602513667289582250130257223955235455041437607610020398165090297488876813032635205221087677461369591417484103192363845273387550004446666423470633879316500685073032164911622168757498151366762338521682091829008219313982770226884121200734404103975966745130848988639470789102738727255203355971329642257719489255867053295263098916201930289258194097763887611139674321090342299687170034166299162828957173199687669075206955250079152996277092142480960842639032222231211705245225529395794744934243974394745117054061923356477519566204326053673712342003013253983667917555944211603881269477837008323731648893657257746525631117085577089410833264598714146882212221046222120285230859906498790111741160709632242070983846288013100554549806028738534707779306023522943721350969152340366314537810962994668817532227184013469902284801542797118892636356334650629784098392399768161550529747599251804571898508632544386389852075424547610290273188404312840356853566768601711227705346663521550387759068282277741573455217464608882691160912158120550975920019090567666976096457848526417392187193780961543121776735267790517454113022724990055744560954210959514860542556600245634182026013017135816569826726268864562857402089587549315057753414265435689044790461279748064839617583674847590082124753274670190722847671673774622320466690009315805729584858243179143579851731671378888897599451866198028008292463672109962477979514694021103604283641752811106461255553877303498036596630278593720192256435741363831505093853640844977599351647153259024397018923194777525314405004516074781004948307365401143017425858343554024059975949726838155473489844554065112295871213145620514570679740423726221092543517534596874971760207961709773673966966112231634325658204480757623310182407594300527503545883826359599272735387395623620548258820898214007507950474546939584226207127423226266217404451606142036390599416552814087741625903129442204170544759690726150003155441463190236253906904241159871179159173171244443439959410412406767775786964791851346027682107198511521774826980322280281414722245400368351107509117242036720435934445373640702542281446608685508124317974015560760956190276385372470439684607205102213924923124895096126287852551618122105591301238582082597676047864695111793064551584296794754513402726688536392764645677380143838923179415746989778185909190383272285433085379680733029510909417885279733988657120590316368078412567341108290343973875804073991747063957491338783127076898072816724390299236262219181421613603333490443184438436430451608577969099006130323009972790409362840461335177990182737759547326266282677600699668242062756273100184051914885457857996958614113248499940757672452807732394130555504182370929047781111017006680801077326393653422219427250848109367304867660629350724513292995237344306139426635780829915807740464816314553652341296321953594161915354692182396864521671317844454131496124363262608238571590849815371462723750355403621564140688788925831212446822336180373604799371072978768649163918265550380248011821897072573929735346932498473970063770890942859910364017566719949773063110328926709940821630138254513048947529680486532564536155623643393855194467361756918673532030127223649144776311816840111206055314232057604656757130892250622593671809445044374596655611936294327246228321974976849136245859185482148522411625997662904955533369615707041538586696224867835826488392537123197137460098597036908906894091781257064841777969109554897819143827036755831761692836023222841532208610180435726299184618352022517187264004464233586399511138034884341936630297084042024371432959579235879215724128099773814882859701886313369182059590143909097087049027036390423955442896899105714589414264044852212866882296632851723626379724518984551677497386103334435728051309568512540014730812902893858632153351188473379870209116449769672259307267103544774648526748430358825487886897133117877044673011123947670813892415310467014703692219713881654694034935914382595800164619616164135726815128374674118952486935073778661396715110964969065876101207796361989916285882894775854372692804235413781672540435970735088267305521129090429918090090408148984515037765770934034460903096981006474472074807495906947519522975694489614406135156962438532040737875889778979675289116839614988889883017300145049979693654037701603485774382872539885604075252494095735561604561756188889769569218306719499659636885530305856021146322399588795028274810892216556456316317825566835422592628976713621380740737662745721463495395589620568090871648837243150015333925855233104038194579919025409517007957430941769272989480582176936317614316651967991570573145179452416576139650911834881807719280866734117888744413920936834136998198677561162877761454740873165383912517796307413921686021586681658187046464073742021905500589530607179569891755491947556576782992892992589108824579115625537575844225406548500210549853351019270021319133391285610255780781266781270095842803269308388928647272213581077762982894285965815339989507145550411503981129313372895094260043153382808588998569819423581418986768844936896317473824882013336615192104642675889719063807243080984065915013807846140596045302135199092194814677988060412858490141284596412116406802787977061021097547580838788137825751956277017664227745840161171477733576230282887723693773124702336583298035594904918318255590976496289255453668991449704238144430295575144854361518817904001143903646225727044197090520541958951448396281553568326645119292009794137948692307295927193788148277935011503583078996110267702611314910797368814788576688865925814369063841927783855672386044501379727820119389640870992834449619083193831309503735649732671024458184050056835208468006279127785170096160892918237993272224416754952701839737686648807177735250043139559455020183153005190450329899225827869873118134500266643577925422024597135678179145593677220665281723253843211464272035861337293560756883437079143088686735974085564883326318272029579333643165058874345325414403428122152464052842220714467088858642948069078577014054030544345334177891047092547723918925861863449201079549335600033332561442922831706728818213844337251897177028371707813704687794511224385787006949151459859555770334436539297040159213676607074179218578602745339778001608807234239919507178021254643499798239792441347687235122533092114744245564087193801874366083108976772143976887895994925329685681272008879949756601962119228858535070403186253594712638130968787266288368208101615545402772804900143400224253642974368427318864404797226529235204867141270919607829748134548231994817821965226269596494862269216271326971020425599156059521531409443038267959579488864493165430960851437311741671448181661709851023735435467696782834109196351195327597051915657899594203985899324387028016901641500944515351142597562523024232340819220823042135168290889037075377475445274369190484938217236347024584404452026401010550934025274797434536511411880199674009846016958941007012125154666301170945393999737010744231792775576978565864827719361149379400394213451701429010130409615196706398224013986116604790835506772475314956553937005912605372470886886127108668866429893082471251333190621636337467390331107153485769640991547059908468227350963020540142353677726807765342136026974372973762769645946188778991055689552696819356755300222621170493553630832174191990904158268945544327404768331067651817921161750947924716988927889997352800938124537554895611587647231481517192828011102313734865075068888166514504192057129417330927172059358552893213671380735603884271146231505409214764660721820160514193736201613590628581232661529000042821374790755015095884858338047349025067295644917078782181857872589869565805013647544653230177848087046739729628469474395603222090602814066114578627323368941357737365702181443018863074126952715183442477487114291638264173405619141127844318632045147630229718405655056867796021872375885155416860884457121854893434324458834000602585716350351827036940131282896408425187299053945509149857999033118536077103519842313282529309136200728512081119621653540423271726116152526064881491322615179520640306235968003989633516687121370367690625709955088076951614318148105037306122927699627320771001607789221987237240344252020805622081979053766400759213443882233476852786986020305596499167288213068245043021414864604027083681875874351353779980304342888039836315476516450389514318628356169503514464008527317479566350160015187182958192739678634191483440202225353364024624181703282024938620888774576861464574974312920588328995187095602783209143388505059086101230292519158980569743025592457487023525467639337239737068434790228629324467864084083736490903122381682766587124673174794077146422196420176209904872601597581018824429577079066080312018159662620872449334773939767088835369583171932053415880569297650300216139491714611703867314337692140030331636965006195346016606664634873098217774558283491302353009373503434965284350081984197563573054118145711254550864971185355494634828943946017393386931297016149329958272058556693311684858833015715436310328039527969705899314852369232270172311679510388603359603531798945192184811765155979680010221447375190388755026257906743390550830433391072090679230986747783287044081829551250687753457541653204838768704520813542598334958069409702590446585277177511102728380606679898144332868973780148630273636300286859678643698473915111141387266613760356597253040555737218914694661768065913756758179746946177266606476347499393409890783685229203700869444853043636137709858665734416158095280692159984428530627021731616371136460487609245586213772213328030446239197734985344686689016644831504509335748079684684610930643114436009526594535758471703948761637478241935681098635472505593448242701226212793441000737941304031389295442452288739930679493095456382910518184567073603543289801333894732073088429183436186907795737627989531618466736371088700434838940799114855582888839768195188006265501784645019279547274870175639257477823994379411658866302253257259966692468898176841396326575553485346575463896028110550354560885673028117928626895350264990464080739233393193552679158410829251610669978239151842497652590397127032695040910096685933191766489723222466086389266184058156781461827989381958679855610831775376879323232979951339262467449395507271123445544769097486085192224947320843059891697026069223106364761414949372838363793373930448113112773041334836301827197549601387805733213163418943415379738793983355640115279464467617761384463858254488957009120844991060710844843579690196871629629462853241761860958749351253203653104021738702700378911313659998803067587437658067202046695289089432754426889908418678917311701762257029805071112003954408066354948875556672669181198112915696501598791804371517850664825118290350146528215967030211789739554154762043365812614533245322670860884737837961964786988211913946419020084373779802996586307960493412658175252231464160823683977553399862798240370766944906046152032001713523078495803581933152969684663448725746421990380844254208978133803292407020758956577486594181119402191782237666334229803149355766873749309713856713421462841430006522186870657986457530557692261211358828870585580094942606472037664110738157773340868524648210728954806472951710366451216969389529902409379949682185161002506041807158145226547887439002734944829804623138024219390057338018262048448966084727009326058064532112391744195581582097858291575173457299534807715487692373413482083709228819430780881330943638356133497144808142145942451579059405149192498230048097380581059503280804142612884370156637583640447270030222764084774411453683644328879672200330647561802883403696486788486279586365905447128624581258379746180548232905267690121647314716879153215837596644665545163299100877633756232228582373321209807377341425449843403689895833719631619714617640340935302881218363178124327136313202705547274345781721710247854000662626691758132123178483158744542739975717647624946101565317266274517353799219811629691972252305360587774707936804002535631435977473378608495087279524534003011961957603461441024562104935840310898110613023462395792207461122885472291062999794464876767878008300262951569061573402536144291862027780249863144009583537626155656622435691728190374137902784273077924210096302182422781038676211294743707995538097024152503704193737000314833920833217876855484928604862070942120898233748806189554776661393851920366059868512582668001487750954547252965025612660456188260831528419413490442894868065166278883396423058363133958930657054471769285698293518228242483104925151278375868786817859278591963304618652780368210222102950135543564874511058964830875374031981826480759051822253289281971900755082593164825740406803561869804330960561439190375087556697392855260884592680060242471482805007731796886797558542026681191525970984562962228280348471712610113373485741765305420906835278370377142243981326057311237317142854428581788913773510496719699831147563527049521241568080665727429778416875922392504680742000693479306840242502339178095935141986220922089371259134877749088040146172012967700506422471950767142319574435739582199095988784050974773199954171293667216761124004804528959737358440516292994751186026704318583344997529009070563799666476652316293739052395547899510905235032637782300264881906951944367436776746526743103001462083159002128170533489652724210506881790605291051575640578808666447906591163264364291594709763282460060906352761622334470382643418675197893691631046100583718989174753585920875379121681272775924935851345432273244928521504783829100342179894273909425288482284136568682700325773143619575258206214696312480864505157655990376391597530184838632018907861166767586531941317213299589084693126790101628369947867830810173620396724792606400412634668585715661488605849190414286491767733491213067317947141178046187278303138562822115406131050098445066186157015078192244077723515935614738057757559067156753358024901607895874091195999102247910248344646973448003766504300844808459837496486533531562716921824423745498909444101066517302164116336586829091851887290211809955405229617219385813101058025547893061073861090165160396997030864037811779366085638619451057924548063596108418619148142948517477817283141026137086628856686349962130193320079343880996509652602261603359446979836991691777547563010765022879199477674474440464959208057512477429079221690018830689791027632091646665282615261627818491074507852818865894714131338932384825136403783959117498537099247943052336337910420063951771047280791752828562325319228918057922267556966132337022936422438288816501672192256149192662832683852679833193527183752950841530019159473894566856107471738919974655167113808093282199602411713610791603265440992231006365209576966851825640499179200167562273314007028040347988088668635308135612551107503972347050991363496123403708985188524781106369295000863804607648192821971222708518966847637581511705178423331058266804213271968405581320703223881225439947905594328171002646780357444365543876096014457359862662151052016538104474057660730484843866544820712075365373527941584657215113439252028668141214877928308200420966871654711286517907142663051353061054105030045603850756748700158368006783389745797082729895292906619388320796759188833480084883580327798147243098648495975587409633408049509735971379135704287850278641958661920765053963310914793859002315790131895537559527171127369853520091795279923778852172492917968229358126896920193097359465371840264172811542239386849981658873812074320161525914410134334870911081162491335424502402572487808638904216440396990833506336102888653030593386144752377635011640627559045484710292740114753087440617290957239072094322465175001571348320047095844720163086438949490702731929835940878995079037209212670913358893683588626006849455430251845665920531916589735616937866968968045109791854239138804621196231327206949749962393905958417846724859700557505611910922934273212693648716896316567272675386313298588180584872058950445583738969862893453709281152527330338374519312356093399192806661303975752977550261260939064036756573815513919191115563113244134059251653267585690056378627135982732831201431681651005648418657140874816671154775082369782198100119063187558471140824907893999007195038879206504610169354929560458405708498217820004342055719145121025581231515365652050170621080630231446757949838824688092793792763466758975418173927804950888123094832822249307099921577862274014061318111954342674540859042301843981345475008490773618529836836219253696825843320245012686886420843315529617266173840090071655538321573713438299902140629839203110250110837774632410578732506879034779314134486484545748369707796985850176637253101051699953454616185719229202873836793172301384390698232888407642958855057111471238771036241873197939485646510065179969933412346608800840206405285783309050313193220198505829597099932096521793447344670755235611351672047643664484495461887953679094749933867565785627917904118988627137342606245611134665911648213223830829126910565916186678769710224521009142579106721948531766542754219629391737386080181997434036457287440596555471250567152394879942296909630793737880103173494436769699400164343082700250347488974240463037837807597681163949037251146619067716912853447839826622814382321840807918497583189115333258441683198170298670837691570271917938602793078970393537208358476714462841708567956570579693348099259300267159389806081570414497559604237030070861303936265398639200541069938167155893189016278164732948792460768029543312376246063986205008214573275779156066465029007446493836689110383193531244293772222755530496489808471398001242695728281470510022246654964960518884873603030673494540253736530444859080869477177169710860479258315270725758021980780599326139928109743367330212365666034001245663236317196833214233795086802496599848210813930868527120788762142839597672414712902278264159238580115574653966991833807500129280434823756066147394740535757763408617694249012985719551103122542925193152994830588238355027186104200166989870734435439227144435830219968576564965276779932159980359467598207381973212063406703418541934570849262211850998492928040110119934942517364909662809948156599925160178193789183236797896269404038395307729757879700170397604456489848349378304872707031690614923433035589480454736846133563192996864884611469935142095859393639384902857167297098628663997096780560338444927695248656504266971935280773211341876125710189314732514482539886598961210375655856749708663573326880657427813885404668368228072530059290773853610844504417836072489292592100843928365738466048679828395399643297531665097069492958651555321280870101383551029473508838716683825099000915987814772740874922932256979426180617965587740714401917890311037824536560385615336674194034111030809468523206880857580350219534193441238270381848738669193726555761313400475050724434321895059860991310138401227435279320966122419707474115318331749552462578108772332770164910474705832998814620854796969493503370083174642425884325618900243448813908990667917262963775941000077258563975730060074828666666139594992501403163692030350591241792452286653568291269345866980890580341753241071378472726613221393455263362974506300881497773062305087197599103427649576096179449176923103240371836479556874721800880786711757656563838851870804427809756857238566667242150978323289703279928158682287565812406306985797425119577998267737676196731912004984218838876541555824039497662967451471105350649989709226749992503847296082322403315542462837431583248360521256049618509715346682124373242270097473267592577641610748816112784941114891112377690992469234653802830310834906623201333449751938209039884911918330927118169844383894158946026228151889978137126578277457252458444386310079176439317015000632742488423213281193306504145911294758836184162821520681589014182248129867772640833107251542799759809679940650996574391047946345507611422879870352269866707954401370829276471541491488882575157993721643949762539998906204463840231040298295236909876502659433640077803284157164552515400397206574128814085563971654683392941764537776492678089618646404231310486448188746833082551847228086220002117915393571833389259930626281780112187710181368296368886268338279413389391984263157666176375850141175656727042989978568318364035007729397622381350927960141430204273635991858131050120700835074448957406541189262191846269517603751089090336716724259663458219578017482146780187881419607867768008058262577550921780350803095251736688152077327169821898205401227675492365051259652931629698253077886878158930203427823395683169902092609581925584771678371153248283844529709296047067645567188328326743231069903802271533188375384068613568280651146509708992594355550527392858111019680135317580263984973038686872131629455959757055184153948212230221836228842984862936602859620452951724117491535933593925528845395259111687833191216054893261620098207505833004155698828293852431424167783082775183307584871073872991402706731144775692507603888174321161381162494160349575159026106353426736383115153712040645316940083052985257630906009136671948851862230315971361869984077507933459419486231546401878949985477946094972440913566082150377300364837909417288499763001535820685194287344290898853247321179089732109642995960461090786317789954515199550518478734479099791868594597660408649867821961966255579280930788908911398531641027855840617809757001482775543073269467195659546870415307597060365643429396311888695872870257435324991613265092318253624275731713705768717155927395056488778424530201276875199215436400892994556863193979991566596638140848011814540014065868439053128969944792163162838293557729291183781991197201531012332267491728192573488736077233468458055891845645240717354999323507459170237628337028220080797959369517722526249985050685077606736565624300884560031296486114813938627148391994861626033753721113570147696044681973180985011868807739495022128125577870246184729716300647124146537550337384269110132439587408514780303722439800480794605102475438105785746342825725980268312089751646464308937777429426108760699596433813547720374379257012816603804365020719923590082669360636613005969521471077829505475420262624722410169122024738018210909946806151235946627116866283986508608399907475589104728415367617110466530254854477532227292368201188652080634509276294246225109727422920382361498174564480141327016602007429834497545275890765267348559212534848566609327933874337793010728940175159691104712146027570531063700637110314685766181405421279651598584059521004212302603237441339142808585869923734327229815531903302106823023938945715229503035331407319697010890051128100459673606804079134032143336468274167093657552539963572026213322297545553944878054778320661491469128439598790047302183600192291445054233095731080260726695956961177114589914930783141604514717904599507807790694373966515610651701416289637258039669334957021696624995640376932428231111029120863040010427160100948913959575899663429637670786944598905210947178359640538348708969000755038997164045360768148340973664621264436604228972646145237092173696935300904713168041991723215869873535901574121593772172476288621939352102320889315733931819672041861750695241257788639330690102167031625059385951203825929538959819335095526600366659401399961032700419923910018208054436522260959165801993997317106970813321447154210514221513970207374405598023439413103109571031708620936218777600909864565141647902670260766848373892030795300860460902018065702062549332563510023470649106578284696784606257844157032526886145457892080614112443327498888087295494646408503704374882328030078757908171246027851271542505059964629183732901942284686677239907715990150021941005514490003086825968356926469980935050693785663050593748402731567876817801537883383460371957833318853197901430906355783267851656316955184791229031397143302244118033000156436045319336576372855946488817580570095383233754169895642480145413758063168219078238294416149710040991047538722701957220314783562486984242750958143977840072945033838190767337424880930801464433787606296917186616191706218138847634767928866778250164436402678866754426342859922632140255862699521341167810377541926175139742160847467723282797529885538708200844282773694872049474401172823457938045362743324688191687195956085221807374811252707372383758139173029489131518507678914463354025313121117607630426736736757693534247607668156809435321129714456462198821653868066901451616030083187308300416632830066605807014182537423937889933954333516428916559333367176832249180263119249002049687290537319040371334162729357133933966793335580541973182195086568118882687209356961332006549388363944312497882435943461074829799259587316573293777108109794721381205165117866783554677606351003086301226723958786303493991665090163243062750200386250639907361612449605907261560696063196281544189636270803921702199385187313859067397066498180814208130608619639502229236496058584789016729737009982045618458652897706240142900881351091296943784847940896831767105390484871301768901797607361603268762236217681410166206152790185765989655771002613006162247797222269025393719537404918231787574591555945534140181731777556218497613951874118878424214086275798169135026525397678710329376098948467682145730872571616136276777841723980101288719984666892458521423332207272338344619188183509417964789512263916386197668837522572920592527046020148366246632741278972026898387384990499148587551058391302144336675982070935173163027986250598175171633874106580054081323387986762603490446328502601490127430331355897961731177665952804150149368324918740323443895412451216832438143894985315336889865930245545633036276149996863808349831625057980661616120203687780600316565955835901863363641557385543215814422811703806262087442921793989636220519541871090586802488497396782918576861802376368648644620216822994995952721480665837964900672578211198607663648856867425016385024462973746564194222861934886729438401404199702422827282006626273658606052655488562297494052493133920764611588268957702472334728932813844699474428169078660650755765814551442630252723298859433870498521113351114787879824498302145998849456668931596668588171889393898693840226886922518653534802636049926174588826208629319994121334677019630827513554569538146805355252706745151623467339380853890955347241465618265130521409307805735550998910224889668991811127032938015439276395922077316721188421873917129694243091863265216978517080897347717696738732807174775629075368694269697350664539256651291880730586106529263132699204298462814684643810616599805822157346829978475291058845429000106323543194582259830450900864612372558173908353195633379079204101985456304695472212495373122845928833273963859904120464796159532246619093075203169039273320572794597933806782412681445416877634469244468852733340236320004245175027247281681911605608588785187954901195543673735258560211898524336652143453035627687299745556476441066706943312679891822196992354748627043766428163579911267977003553594046979465099218096901585565176351366324043259849359560676587116841333236690209514026117194506103423886372240015331397781703198697772543393265555615460558738413708706142346964175921561964828723086591131258515624125248413567220351738742305369689311659550751276317719226822834848526393290089313396333171517772888497954207613886456642045190968948502071102154257106040570648132615318616545687149881675402747912524708832605461731008275454592886218318467470231072558988188644609431438172047210811515047712498995607776615688804100382553186558848243412430586599361592341300599089899205290833566713264050569480248996341846328578196998872032734430174918205737204522844542598025487919979442348650212298214666120830356963918767313744107010600133576078857735081251229055310922603991398681979924234501741512368011788412047024013407839228965102891164344386490349961048145178299626794095651291733322987636521582237860278259013640796898579263971667699095124606994753544378711085677917491465116851870104109006376813266667732666501282789522926707324914997802348479536719523983063029036278346437027650688837459558361730926326573622299813646530910626070637461336607579240104087985979216707986068820173413790841516293692133277695094034590646949072315216429568040849330350226924109683585617927645880796686990185141931451018746345667655701453541727949267490878344277986913024817083661739949720067263768912878397055271161787992832373996195517669321857709473616143761827749105515713534239535564666027268949079775651959256419121536861531683119897052981783859157135793894337684583982722487953890929598497413367656328997451267779208736975156909860691925793052000950168389356254223175326830465568342061245859220823680487287195562433589309825424130640249035665090238627028280800509656217741331305437198671758918972063694584386202557270853587697333283045983166318393814591577320065551731420237069622589524867813213204084966936900374018767722636180588630890817782731961386981002212323462260929124893166421274280410737374742428209218586898046382317263630261034442444436992355961517428575719888747332538591157516175216745805166867773058933705143436269787094345723734366741898773628825878836977169289885543191742011399914859111837532134066006475072759970756342121322569910472868373314757112470218911884524682341429088962230860341500276562659468615136609819201856010961839082780241041578715159778435022548816398984708285534634637263363556764859851815626359552290494137016519137249732812846755347526333826927245182143693727163984333176155813345661754937284664054641831952306806441738245500364520491561666426947645966940772911201282197348271716724520126248654504943349254076821834629277069860999117886442516952638151442407562754933222391556894908391577137163948572276679505289359111820681640533302913907395295620987744959359637557788318306686494141053764351312348240718321641027504762062694326324334740559828799282791844415004957457013439751174138156515391134628454489837375075160016476134341369591450771205222754828603845171921550632363547006656236747215692054663445894705737161108753967679755333257892232332818823421257514750087594552350910843200838650723588396717667573250756623822508823408331241801618357426782968120434159990023278903317557859866597367758796554330927422315426235017021912822857968302263186897611440194461513220603387591468544818864798675521529216117366810228490460466920098747860528363189509405841933617081711402520861316507182498682818726663996646713330459796938426503883838135606550139815739911506137930556999134775359992831598772618919463980289185654102917911810282317095502965967582717282970453930084766671764521048874781180639719426834730403500199566754852510024495133145230898412359148574560957347831343586919142945553014761487040437232706518219839022508091434057018906586938598054367864172802545351934518113797531426515838034550350396099137210895225910550681341403515274039706845348598777354481114362812783652311102711497584247375214217641473272129084717310824490653665563293672207224215339817159089882658024801533280629987048232851763442297464167040140351088190217411074686858061988762330806693002374859401033388430370842231567741826507460336702425978212231750049688980583557519004939691512532993571301503674937006796749441129491450864565023616939444454273542716254877538923223349179285745020806839098995187951002838289089487158760539525077112927318483544822769565164418570587631451063550667629850200563658157692932002007672979670951739218374350360122435414035942479779185474144728553074131576880684380157671557774443037199376348172029854446928953815994950338185955061181764673371897217235382489228544276652840493316549870001288033710749217796110002755172133181983106071862971377547866197039303520585236553339399345363902222866203759498455625036746415679169105195926789589483113386404985205745028176892139554259720536961326603838672919340973096313254869635135388542866374617397568044342244730584108080737126560493513196023007861584032217792115136416513359021228715979851118556864144853140547998191059050860434652680060737855226237867366465538307049589383010278614549021638983408685945646505401723733484811007531302147756066129700177918420178040440122737109385316760466992496762172332054853381036313899468078704023298050619941598255180621457375270467858476369172078617794212960991585597850068476834195402038751717187690547379414257354091123885447718956950234553516073467962280565008397576505766447596928783791411148512792930568488603900947617115743643271396140999370751577846839876093112344544009190045939416712221863933549721654398370829705929080688722885448531782911392168232353058061661457453169450821561015818883925410467267773912953094874469096356134704590386313394793972546722751935190383868416527743621906103157615727267497510018326264042271828773383843195686321899386659717229518363351636618326295623286172076991141412074287435906370568143730897652489240927249534038263146280203043246799011139806983556121607913943468086948120110957369393302093647832222690779337330719159610678032485665959914044019210674723735878356771049398322927561460017331796088790785233285759610961438462588517102815163180577119400603363832674872077769232209035459671595616436096840257592883109802517925042275737168116276773209142563763658361085110268532874950066573002428567686593971365850879388063334996715381502173838895511706851122331230369868187268316133723092105145425615410724682866725368216042494639766982775570792046094671177270690885025281709910751064167639642811475880101769895963852292025033084104438813707082770235668998841831648052858287939303738917942768990542277966196385120434561667537973686480131276488942675579012862158259159598863416398506654704866025496527965565561651085915924902654574325452419653993499645458421812891442181691026457561544011362189466250877148858500194490027686109000465565309051072757886664284377184711447655004105182458447117915304481191780284110317580122337897765428973993074348048210322705904014981242182485221202680299615478630195046683961538363987009048555236577172366363674867360775060355641253656726165104068852430792275381212262002480528192018585744174640020934453953084145516657123325264278646621166577035981630809056011769860179582276596390168554001318098350549180791763822818392535222836863905205234108586143051770830846177366558023683336290225469122137105777393083506124706596673783464477391531997925031211133418786056011874508970999241602889050522651029959434430100778834074156826035121907801853473988118553515578339659931482636679176471788554872016090083056733848310150885245947794202578063377841298396225178035473718609920405554729725020401544938816530142046988732389701498907892648035718519030662454044707151724143389340031062948556767439712302954462711501545235095745813641065086512640516964584701365619225989797395231784812865893678463955940526264456154883845565260436016582717913905414512564811452963546050714871846343514027100941831665842536691981464492794811685676604672139662196102922375154817210672252862200960035513227660916275588380742031010836603613831994887325976677851704162384406330687170132354179864917142781398405530108006838695646874316356810293294806699864186723535499164705643526768716561635488539381796959576955947048526997986509440230024693371270782818092488563047074380378076010992351130473631869999488015572274385787089488159417246456624419024000669588779376129875309219381081994927999529955140840204866136868683135311621771861395262771673587066275277105399568101844598274463825605392312050216586059235777234419964943213127543766663680802127724346908911766950294822652833266568609578034586024739668605656765352549616996801475619409449002081025397792919306493283612580698681194577829161780892380152914673948481504957423818311276534165914086172460335290359971818921574836885794146119477638053781158161358359826827127348901342948955053736488989422680426535313207544441838006990803771171238324288374658036271906569366528099204362100814715337426939705626672180374004811054836718641835534129882586630103666604782913982089787372314935305350293464723068984610027040065668061076784447930039546735784982999713996962324468662797020943530179526880817782108237437145559765428116200323713158583121157328018063033143107869226425802543217634679153269843111254966507193263621871312685624961359770899409387873788349153237391220588725271004224598093801320933182639732880206271766709002961435586024507328146745269896823337123587087644682484202537470009042120840333131412999123513095418019314275598765150714556003023201814706779197341832809278957827260077385038622320115491793149201767525714732236760007311373222287424939141614734064716480402627856215989059311861772317436807233580306973189557550660924307536053053917279726568840786469131201372582544688115235006100952899043359628962900699181168417026257399695960969995818478811545476763250873146848964457235096434983481911532242771976146619543705019428523796663285181038999855811487335389604288404380765680301017094829213527422641528398159273175477106345819198784761660347627560669914504738677444322564630014560765579724871406935062331699129468545311827801449680061343106786370382452559512551507393103714337056062149304256599198488462432043755422887421833034503717745161681581717052244102044430610070064223605402289538572625563568189008581910518537735599307099727166745070360246105360852270510442193531933395336471881478360587796522917048384306956131838612427843212399013163637581570310079215786324813477118756696529126449528217119498671440402868569679153048192456507372170662984382828641582079350650079391457277688235384386920119581963970355532615744150522757917585923591922060795448713138290046917742966729499293607093453717669467867107717058345920367012352820633452702695203134267899721865504250194562271777933460689678836610327710404930843173564699433661494250488078229197170399547690424043089037328390230534534635736566967333152488877055611555967046093849561155037432946762225077570950693854145671538823682233768819084103998379548039508368200330682144799624808803458309729688190698668716985475769691812802150388612788496215630445909190388284369524814174361284143206813436315470343417948935508617305095206220190249025858327532817660815738434155483896348964575659976556868621787586423878578612560538901713923224197577123544349453560487335790371790414587153240065890857781137556688619293329436437301384376363423298190308342041089806287047570968154235134067663615321145439003515096309821900381290085319287927573301417412542105185910103258231054562239362641574075744276585756117874816154218342612806212391422273580741504501419465666576062918832464456080444444950453778977442794620648067313519047357554758332472154587686385017529094573210908274055128227475907078805865425450673560570866136066486598895996201715118069699187287735698257555633476473974154386613151246735627511604407406099664816376041449437630624329306395338389629132543896594439177904243501860936636271560919957970418432170281976353919086303911556413282501682115388879809580321819286963930688998373322691747752407607512079990771116821371784328337763599760999544744282506596176919286715640412247506210966875614619041586746832869961408379379409682925673954822386490776265519205902894283789396757312249394255952666737532976211803761066030779084880566597549457853067490085024044721839675292449012920710176652012032505507889167647546532741325995153837163629731752783343108517890531739761328727121904647767227893319615229518773628904091984986767158845291239916922782825545699142833322577919727548974640679275434684937730368997520568605920140497638267345642478411367688093813669239594854626319422805072977598665673584065362137383512115701798036221058335588572848913375925257653019643886695338895017611174563241118824676016809242163829413070779267046671460029549475844134215681189522968628844868561386702471086179589051780745904934282003585598402926524984840927692757465977865149246149209692929845293154099183386050684117507291976269311896943545008096492204761101028927301633030120121935325484990011376758843351830977293606398170959175599591198559825692086791154034316143873348085258846754812634634679370119266803084775365274181657592208559031258277984437393177571841871001587797342439803505035405549862345128420484970713241172003937141869528425205143347449548844140919581670196504713721441475200970201008572680105624513903787195576343044331061135161506747524861373067551539668277397563937076159672996999178492557645256241168519584071936505593290892693209445424633157747560387294676403007010118240214659336649997377522795158973480740571879230788785346424647613392559515860307694974108311255570541377497729756100083220971045479484632872258545255018438072806631238498491759056019816875152396780657680952294958025686419671640526099849735500377264225647427953743390136485765562025221415793972071454394921791623742163104790783773381491068144970262151647892220657626495181886497942148091584097013982298929261226444901119242769029931383501158744130042408890109905231993902621848778762950899451121152476703073806908866745940310583506676156128610035944147290983354254207962231068737928334427159830559456315942010743279016475962249449943628307728685708646452293855392346528585902335242147103523668947686475704858545731203104855389009934460340931928665065155437488483599577011907565092076249456397282650353168285928795184388216043974279649349864520510856358122089500286872676736245102461617063978271094774091392619897662072956611841732716670280618354952491449244580491447430989918031644324487410370665494343455086949739703715446930385295201996474381762972761124344051716412476083982100162907531203507967616672054834344529076080329644227578964104443274940458651775145040130884714454756124108718272187709227675904056624633369720560105993595592641219750048392870977978141358250957632448162475560235177024311113391036044910704796109505738043808331733351688792071361246941452360705152092256980774706394137067192139583556615702577789991476771829635242314479089622543814369450712711894203920688771641837724996240877354267995972671206851995720832304799856716762953762161356287956016746448997766071427488819216424116182057668509932137695742818697808314429282645458085723866187087049750338848911167142886263351243783133020198907783436541367619612355234873022898067389876650903611098272112931935222853839437304836367860308454679031780032278986047067073821747038434828242389498922363744307819549266350316298660866099756877586755199983050949233433791603914840690973362344278342062272556320906143512953130479279125374099376524361122608483129025793226726009013143444076897489129569981443016718747150659829599878593499182200197950739736992447426593536944738847886687007139034224913849679250097871724014147565065540424330940749590298728457842075982359027395364376707684410422426550787514550233111235773580584223564853977248585998772733921166225761291661654376605454606251029486151278492949770879332518147230554143732512998207764436619337394745915226763313123930956338839341467401919940862541167333796608779294443336314867296028735423499547209639701945751518124089312270668124993023589587074085480255022726092715791053436717577003056741517225659200834926588378409865465461984591897784205014055037176762756644794296940100748601838829757965387548260918770275622641557312525689925172910280469650984177227456926450352714036123396501128235484538210847133830964664725842728613314066208728620988551911430503799298339809091151848937732585238167556160538660839602525132512705661735435874487360504983822172138736876017551279935070176717809093994623272858937690990056160228865089808270393033276695869102730072170151260403025937795319795793979590697661950754304418517258860769820388147974059786923270645064619143180196187760763717423938225804762946968916253902854198984221776784658949872698857625978023524953571170067367791277495259913481566403838238584552038725523751779033283697940112947448252188025700989111634837974442934978050678869810454616814787926710362545918703422690111386448177538804050984746116480322970669128615301526675917967112144591693499193075465155713934313192047761062021832948735064467930297902397874987518879068112186641271297766542302856317297755982344635433502594248139623862398971371778429537125711114817560516842957011852021010962115437618301854583933366954607866813925196304605357665134989811399541035430994716620133636901580448643329683698171461655805901811923666642723507752359422549097480517456251565527895449117042269060739199702766258748532332368477029139258017358933183387279857627648641378752524874887606861029424617421402199460340623368657507942508493354581684030288628432413214176283910712593414370465893047284066293258813048614118621656340622853578436781572850154681749747944880990888456511951388857979594062878381778941156557819396205270464076587913583320930455166926775155216428148792620238964538953420320366279480484146676861037202253599949046579626745461825147231432544685529914738307161450584861366774147633180256044984415399893694103019377094101369861709671287465736230879875105449973460168623224691127015144744935529014569137009996307584737190575522044494547603542236805183642586074781708142158163649955490212922253940516393683226165603107781967828925705656912992063564536400266930485886224614100672237339251894108663429984634596175844140338490076180025815781904749713139539621358242451090618576450341470630386185473043997501021134533120892984348685901046019916576544913708499676492194010094923077212496987457499408299724041513128473469630846652853118148876905743325215665163077234733548199499895730413301959778563505156175933487958233666847253061183384380899507213079396386155007354246362103544764038757048984670576543944395686481180948248963992302286759903481695442380380111184640694211012996847542523557168953557128073515208780323579925857921768039857939296569173519560425658479805874786980313900991291520387866936640953803996594133123586413928262079881481462973812377735404949423898822274053041152894077949653486597832486168462826316149845711178206115097692225045287998027624953918386481037809754981028298039686744848260677132598682503102954481434254697108998065497252780675805537053159211807294237525932388911600103182369591741654788838939878888731399488377146637936604602854547162792307703567533512784669412497127336787287937999902713874397076684227741022298407529328068935153063852302410664577621865483350344533168016655566953904571795032433134585882124529503759617885189099755794788228114989421037733534135847467114201675088290043260323731399978617771841134788943364002158340141389274020012057111444275736014833821044921830711923090037226892099836552033494861026016779271996704643768523686495584814768142446434947452957004111263328632631286983846011329271775933856362307888922521906346129570197832374992926542374141574768669630602553342470189960806642926249192477442178344235105938533990158762727547543669366104254760646010288931813825307550605505301551359676297562237961469958518088195250298939197496580076664875691737633332007037633229250964293590381761333699231129750926971806704652281599266065409154521069530404307937180622512859252574405733856492065493862674693773696676618619474155148615611711882173877044314348772361239652670475649735950758950823843287156988773816430330091555874687773232581076208959699581730601745324964597671140795386379887809281302045452647497083150731962939552113005253827394964385331692324336833655357301320868022656846159462630609873259582720974311647493927326003463979377314198975505191426076311613799856089076589572494576756092297385184050983681311469885883751767370059656026543291140211210523220883145676361841081585498113289924264691860354840469616632958576671296158579383828723615721929449693926725507145466107208445057529076772781679903659660920027529046742798275097787936371443761108488460086142023584832474044344551276044330822359494503169049689772478086866445293398551192535739763897528302886915402545734498103048292935465539457029117358097672003840981661591962573886765570238255496017484934875962409788935360418838500395951181613093172017779357632769311600620053345609789405584375306292698075088789703228317228128983779719646868366124996231898411879085383380894296678803749097111557273949724142176248194001281746341487259160448186491542131806340301458942436956563398528932861148331971225405996271354494329535883553179279244780515498307350895050425474142803664328571951089928121176668934254688128908545893122022185302549569869124129600941281343487356099003761751044536157761090804962474959063432829666706929881212086558246776812343962127119274027449282927475058301232855615637425304861735422293802805465762073162059183553425404948614324822092983678308015041220700750345616262256918204229070918906595219774840613662442138939899923908387919341836343318676294992143715114990714834315694004857167595700704846683706012539114123178687451599141905949094202036228638370947870939490522171388698602614340063363809803817513641265276488423385533792649107552674065818230890505493029244688734762388712841487662583906297888172881818106837077311259618510798858010399628930929025127115005875657820887750300829491611751343266335010407164112677270695305739034105646313242502938682039685151478343384710788887226763823898983264520965071320383110440942850176468070300712933928562539785469026188920853229753185585121867648316541966694114179753257251893705520817873186126996810520769082734572824667463275814623883763853294444923930486468906176802155651656858628575524440773239916894070237353007724066218729642526102384005498840305024782892559690994541439916419064661474875286894349164079608225855908383443142666789639763551577029078645919333207729111245423516986245270657919896483100433015189305127850125514830039242238184060287346022232469662236255545318210324110979247071023645616160958342856057839741270914969694968840964991883419709197432802235040023835048172137356941894084873492343860332281049188584910751407796865324950470285070501390838535110217168319569898442809876316006910060798489264547551105414583038856592350442868139112204957285012895802254444263627889028977780911550535383233426518915142446555599774403826070227493779121938628512802781835312146509913399715620416663870554056941395146181121758940836514520048846175147499633036430326785610782560849619225005149655686097649578963998501286585348948186849607998143189109005650600159019140462924760700953932101263940854631936743761519770562054726637186924572784050757261824359979782991497496486048609978220933763591471705065031332179626529268075641688989885671166928737016967211588451322528732389170685394025387252994651765516131210331047974739896637590347351050454954298363452328569526262375241360471586941575389480230357829171574948122284564686260415117486817130744080153301133713227599226912105174284804807128610290655606383560887952198776561331447237126817788216942749949811732635842496997145500954143995100402961654891876904826736659593727212005918461734542019347941436750701166642826249206550824998920834675464052308939482468157794316219895675385577269654054472670343864025092727474502773358162033015168363368108522638413711753835110603736259874231861548219581002109311071471886141333337285303536034342885772211452970582385493766446214345566623506534497920861656173118348274981439305345404222358071752841637241479522173210476699165241013771019101688342058060846161358748138401605510049317312389725105842802802419769226812084296367135738044748197450205945199012612352505494302176555915009535720861847906003471582353739367472271877677021050655170403614477551676855824187115854423648709648482837037491719640859801283865115846902839494978357565340550439161159014070328776994257173729022902895892317614132773048164092392806949610006267300297434056829473011996533278132516213251468728945781079704419075829176758878897058849931448669306543760109963108545756745044100504028731269463293530012746795103569454373100210018640203423588706432046147195638435950519264966166639119658055663871187416143892279934439966024479982768574706868939354276493705703106185328297578047667713118457560962643597042822045365547786497673600328196775723914093166127869282459541590432264551938981080612742594533046816445769861488634209675048320062006871533964013970791068230648208195246979265454049503022070843287539363293490306310336971052725718075172681238358558436579486533422741366249810586416338122083278963866116738975316939367178096019275961916181445654486460191448223680582486519809219475593877032863956254793255804313700634529137527639705541012339353519673963198270372539176070496546760797285546328670497536052857209663694015538329533136891579173060103734318435563557231975645038766184237424879925061830698151880745989916434285939785602468816238186560106261878712859898492246750815392033522516317281280565420984058468710277417145507780765212248569176757495284781721451239938799777696551991667788010934261109539232393175315809201870092498096596681279093609065455487785669415284567430816228729229101578789723984303366984918896490421499753455939593500886253089449268781607709906941840704507338156552399061442359475639418415697822808317575473671960802250592373814428394882442017565943085297192165018091514205841849276628405641048460223741186386862630767058007615000436074687313201995990906840677740239210400039059047958800768302573974399741745334873997843616277919673102751290468508878432124484631612128703940859159399771695539545318723179233959123808127069353297101894763006886403336160838135226950399324154843629745644574127309294150440825616201994625681158454107816323824825878662292517872848937564708094489012456428751196187521980473393710314758863684303303700161392346938153034218588722856628794803088512578195051006408952326738171655508096217905283069755716185771663414039802293369566924144284951656672137556187106924409698342625143571718134928864216579594945477894565721612433466338366850949011698224337551522167867251767520220968453177078756473801553355199873261289462709555668445631155353020937668764484866323429195711504444423425844934566352817947510125567835435709042524032587991571902728057052197295831582665616734681560494416936342445024474069508398480026657471893939911372376446949669793241395291776549475824599516937952305599859209754906244557446104788447779482376371443360334530290898054105907905010124429995116714516649635236147046866141426289444521786958387038470550120437418779861604317452481536797962639623315392661784876947507401863479122903190679726051847965010803151654920378005669114884862988458217640897769494560073262135844805619204902190238879500625021818285543660598077995021627337949658025496560916384711969976640766813382385092630793843117673057097367905792802527478122535929646209778400460424632359844850227223386633612444972362729115101690139339208166043179469652238021670349659075582486492750800217750430517091816182653948049665689277021687251722225444009045523302601005351282597789315461189208895072168194660715363608471513529854875225179675120807547794035353449159164191166042534655994012399250557157003142519148659434097671942605374734292841870901795161680654966559084550988781471669165236138087111193882766109484578635673682880708059393779831970980137610806087741254722144470800293460295961046155788587601975170878244169624329088672264699447443538818803276985565961116732429706250862123319245188027727411192028620302692972802601506609333667445855425370405459185370305162380400079829829164460948503698254039723101544654952866489260550082605480389925016205566771756214832687896321302813850269823022759332978866691284898526679354635996986452295988035804214519092777446541783628158485428385542902742846171241843877715969831934165370991542258266650986044662408002472536816981291748138532820692144930329438719170216671021052553420023863505483035503706595787710629017951226470207401525535244057656060585597198194742332532707843864270755947515182941338316719754864972747773747718803516757057121898937220761888174515430443789031995919971320889034025226047438960241000000997875146044490203956807679000575470027371179396158098362620783999948888812664609406884425244767713738071227550780265406519293479486722179294307287562087078933917040200579427419880670495616844803180647813030941254859181292134976979867965577196740212287763674382499971063537152220090726863020378763311904936545234889795514309604065699119263602603471782035636728732952352805556373061264797876057614666449616298311681656825467079827467101677381143960019266232945625857091162160772717682348570827988806653005719776517527519915963411022657712896434102052945737879419938969293269064598902182136155738923037720742561525778922270986094136192366830428806931806249285798986479839556912172275618058407823643698645765261314002188668194185469779646785017037350598333259253659121051943163653734483285148961188997249619110370602772744992641478276271458078652582385236391815133535588919461853762929158313581204001163328556285392152210154836870289017708794813600792387285076552597392015733461460258266644454822152928734171382507425768258266807531973342161564480446120642208033897740668879172866187267142123218793898026985435307835448915921891769150876301029991756489906599286388623915767047563232049121472436451680023904454587771778100008401035527292287966488903073913715780047752594876632005451390430989758734842615689201139043894681914816984940855327835452828065875673834003449777363538175116220194332324650593521569761051451416275556305810004995646994772207588548982432093147423225412318959101125474902088467451746495884407377481168013720755323921786627252101907770504234518915907522522047174121113221968841692878198052540552525563959734148186758220568793884265183597494001854219513045082046227958713213666781957041586769026398401529416135907460332035301723764524865813176258675972799877778448302707483944992706823552295169242593684075458892217893290362233920036021589114862059226821226595527445489207964799435951296457722691185813235716598610623842329033255149356643818659432691573647870679885259053307991515549994329220287736315676624009915477045380530609369815667287853636057566033420175993168762878604409339540127680667909434696588357559880780348276608574134965348629092359179142726553732222286074513418526260616780738311905090349822213616400560283169798699685323787272688174238631940731848764163370792980300721008013808777455450901229109638326061420343438692168419315469484141034918200491112142147072130955338445947486766460790361046511689698129164859826506951596761611972669526384096994168310473265351740597161973563431491859877967003871504618125001690294571183474960436404316800024019573278164983339844034182832726835107686657424728053529294240088553015346293190707824930953924647269762257886858835210932428849238366919877788280245861265921085502713485562750351052196142865566322419092336283559432456001194968534821831962668120261054674791294422441878886598505586177796900192591976137392451313633462061560116914087956149236209507709514013775343964671697401426711662892091279441487960461198443309338451619872334504465221445206305071853394153148186270366724535883202904285087125820704497852875648527581381375236958087137838978961627439372302801095147251277953372521072033345218845343748839714560667369437013625891028404891754170337175254041990194763866385757073968095915132143503925818891088395521542000224051001411322424883104091286728361974575094252849985463188356105328925518782385157231082540754839395206169496021117585025756456875817762164839878530251072606665296129171100149685494216017032463641610028070759153788965438026914194453164322696778065984789254929891793469211648158418918464074243989089435734031744269205587833749072661284652703234339130010778189476799662092272004324716068641729093141558007061721284492862136111853029659642829877810909495345600800069113617507428451094897451213180377257086008655384194628431376297749818827881099909906295415240427948607726471623054177456941638923998734990364528177740377074484938020177949574220700991172634686763998220558732764290766853835853140692159291244074255924983721098737615614532011306170858322073154522922690652705140754734290589901429935649203188293372690837606423854710841636518824354780445270113055475898195197631301388390583459492730254221290118261971159689561665026526420273521110913445672804951368616819309469689938172678101662932841353129943338517215138203619618597404096574745503111635379596422291517118428713454989299703095241037399515339011114810442897732350581034144625354084289790821245013309538253117790910396940853899652936431147857911036332885139976753269535061656963754647025592049890964868776011779463661210857160619930230491306498953609145351536984016173547659156971406263040327558941706533959722681828319320465120552693365586278359710646860483151399057105717567300270662742723770264671578018853599582353293145396100828918916220988323307951491381476476490352577158253112496763706211304712933661387326970639210635705044325683189323579162961352398148561766821680154701411899574072588282960101838805219743045361132927815735923386814762343219037828158749601720593378526433853437285653019872697253315007169423905933151586779312509101194592200474437543741272822373560543980728716844203576555110000137676397699682707026935634392110267771110538984011512536749284270999367879112666012966415468132923315934466998545824443108702016539200920159997597116002426624485659764505924483620229154740432570340703467972590450912644078292196261710345977258387439783543800338006697937939332744830241902490240871962883284807755841324146024911553767140469685767463633107659177272354284673817286339315209586898312209466674045895715442125926689646444126351747061758043327069785346331967345120602711970586449377136208743954864889652295241569962836756866861207824573580811901129765757140866543433666041875429108133749349076686043625107863327496600470219350607626475408012624833859542376931647802163009494721855634602655471754614695234364524855237787844600251143994575982036550899195154725937446507742474138739547722389737317366577312139802807738135431360509016463177267466300831857618374254110012922182996469006388476076690591448862336826697223153060547109060925979056768565016838444277228254123788723251804648742466364324248440539612097320902704381212676327589615838308860816807293394712985778631608628078861135759905189080481435393367879545801841740108223911224063623929289532151136449894181965052018527012121948968780420400600960463150406169842340964181208408989320490251796179239590949920176982172596962049250955022699167310608433622902905837191512554834900049413173221331704475592793491781592683626108661496063114368279356162502175915047957344107075075115634068162337999023535481496996110718329324225265261600090017524524411285871682107795884749951560641197705941753362659322273287347324190081523722517938031292372826486340116742614550569759441919332170407368775697478557833905459375887688781476111423581558114688282737264358292557216624694353633375672686981901400379939421021923759484010706304369011943798616812078827068476836905156633319860220591264620932593251729833909533104878067229462986693751170140084660216470786934249118246551585829370658277353413998317040979058461456095082484100819658674907511386835176529519510421418205879403696709833775493501542002873941636681529218429099303169359075248381346804187863152476436595263737236780731152479998894139742524799791393144961993090386214326835936718019732443499246522774201461481357764835939155437207011540129238519488388239824136572039645519151038691848565431049290700459804185512235253239542637323974390771877748555428806637515026704909790549206920675805896582309921164055375105892539232060854758965590045454869658691821815023228265441254716337280589345703658198743074150211865221804875511224503042193615033689283000303481745430228651446518625120067162036019149081083744143104933475001317220329382587172821659359538044522062375673441250578340763481502116969922440021392603580845007977238348271776554694122439511193382361527400900773598488797882351537539781515186213149299389033354698348209671466858259945154009470484693559303581792740233077675268065494455323813340292239695380033860020668220658080494905334080184516609222008103106075793995804334431725057641783545389374503333109176556545561039139855949663314300352381381527672154051407200938565200491498416339819931778063088825797479926784497887191673042189318807422726520898127317601904723624308675460048522084234857610575423342326453748679696450883068288287554388877357337004717033886486783543327273630705573720327576237932791176860875213846719568639426422136539884511649489562595134078053133157641493693691036435703667161104662890978895889884634838744897587467316380004349648558770951804493240273275260018964986814139617972291409340691847260160424868872583260092070919882466424178375305271998813728792990978987539033703214249677942914696371406023195176109547073898025129836494555953497910041374749488903679906743653540494425529514497355256938173614869873116082196590293668598274271820411952898963015155353127468257177593793030056183762225996134813775284664747418270016009702223438821809389382801951628058697477384818137284742461339631164648406114035590286296688959394815320248411417272165685203123187116975578476786722892194373889728152626036912383682068927140366261571741054834590318188039249589322839058239682185036148097591385791680017587992530301498928024980938278361504942762661255908756903145119979351956655028181002988605290027078867806132204725730598412534259947857465842113156514928291165272993284887857748861942883543108909920512327415021822493323457077640858915850532325182918385611493287698173165116949433924056919708184574777554625128296281707693508094117401717009277906435045329455886997274446335510537376304638028709833852978019728250934427503115790195999498815493031030899069575995847023687311220116187559803711780205751122515456634347573613361528475849194208122681633808588257443336832347494203618227265826904421020769973904651971731751445762993776509481318558714864455038097575512579433866112154535862386495939381560284808727283570512985029966592585518162861600309827382918502195071267050666982912884316853157507493733380319446142504082346593896294224236160110509113367472116104740999128698215098076507423310156865512741613962393992971893479296400076268956197961106429864644514917749795461558625411657578159376840320659533915982495613827111974256232649593328911270366039142889237470953422786562733592762322200908108348177943910615573607970089391002680244615719962727118913878430885704792313017181853965035958113154138451377571458929525595837931280646346949506559251887388429589106884484376772900983287182523399856435493151426878586566139326444375934298503080004687806947786015192763288471298840085341667009141441888265236936140803592573137071153575864666882025166395561550632451298520250687303334507696392732413838147865366103675629281716492901684213728016780645473911269571713695920723190219206072355586723708061734291224355205973342748013747093003579441655135989968051738818021723694692244495568548361082618574765271454654632556177100107334184271640709246512054931166155763878569645904519473287131131681665065052465496684620107924603198127466303345050915074875396779982892377692294028598105915278690281355229474918375358647103181942489648011547358604977764732460984046717411629096699860930825334081058216998873134680199969119866562721470221873956766146408862797161761140428696524493857231630183500175606515414006715208515294983578774237735033330412057467993327750330952620630824156662020667307718405453520646056377598125032123916506855780778091622403143344333822340500963922088955984604209727180361475572269867441229751152160376194756248883100998483558790571197979013013519841934520544122982994376314664854144188770549517651272358349231419371096067450535399628792212201508194595204842148815766114327544236567841460865934216168397549650852028523065734237261625323631896616542300460335681057922984547742987879934265558752683636682869667067122987177122643499259995548320569446424430207161173992172173546658430313598063806033810304877128166164303144422401404347657314892595647665590606332997900700423075107273778717241156938177445925829021506809963937969400694588797520475916487149358189529348805329115841804340210754235056842399200607542970880253286477597810821618825671252533771296398080216185041908087714841991141546845749065356022721115473168398211309792729619836736732258168250453268422224880555466007009984475049454834758454262353012563613267463596266575860841984145072490870350911365687654362956352352869175359702116770970655313769260694402836757151137711709560523893807622104349931844286103400889131818333948206874750837630013904838828923709475656962241498139036224785214898487236903642390530269062064925372864406423630300903001268804604886972000156724250337031163429765070281147126826861825973982477806919559621374365538381830377362704102633086177795199001405175591545603268715970131610863783151132195422729282910067732727788967421594560083667975712990560661807643263190614662398833959046879662347275191958697261884756549908124946682004759693767214801125048770087793974987078757881192715170218703011266085687279478567991917843459956466004886457277248757075878817768310447848853496630525840719578944199440470955749979108707450359852324493665517171403634837920379619093956994793899244144344863764338170208433636093547175807756374154598018958394561471811820152532887107308824596001772806711706368788088872292986061149715582216572034668207376647889969161549164948740950066633965545186350646931476941311762314248229750423341887955321840372510062178084227175000096464347617580134771945034403065553204582764483212645247725983851336868686557260556049047399719300462190736045796224507929053175658453013777632277768821173099348828459453886512953920441526864497210852211894135234157910447362268467541154956910035819261243324095425148108666548596947449262357201822291356754584002028903972520280599667971180009477025651614475256377199090102936688673122337601009330899819849765220873208848634628482390156421787130130018786421533585850242228305656741644875024478835099563292570356018399230314360445190872087505895579713833779638363044358686331779486803418626665602908219229823360737957012403387996909584973395517373648821967896862527075851582686539392337450494354137699218912192362402675323969202666487623580253739384103976461284573154480452540920789832612840800141018916939479495585249965431962865913717286174383225808531434570955166264662204687989859592754616856601852328729242190951666379237588178908974495206943621528046420612126591645626751589108979048501154227327140910459297054091188568161924763845928989537997166721211807825579546092575752064644226874890008686127679219159998759447296580369188597560067321005861458977418338269393569081769167130407025459922018827615313970000943547235298947269391194639905033227026307357147452066896331269733170889529878686904944335738283332334898943432621882869510782061038628467976346340659597983168204808017342772957425818215736424161860967343636742133713153022277887290062473124147496160793026244962397147899821530646922160063208324560407039489659569057048707208357551862584234363819022100228937546223749291432602197305765291529959523782906071830519536742562583472898197077229429958159129689161939715204947539077580478572947664276409122375744237852887506228598908331425735785961547357706946890520517258624966358947969347028511266427173480241908781171950510567221388433100316822203833994976561078381575249388798686377564786355824408100820904226953610723115904274209685056328726363093349139860486610619347613801669465918583118306766064521552422084884816155088687068942976423405421667880992096981002808036184636777052253171924468720778272639062369026945083161348512853074381250464263973667536994146518868374556412805551091624273571741853334821417530479544449253590940370811354791910193461123917335073645041646912339605294510373668171506089450256914979000238871723401822916778398640571056845855304268071088113885364435103875166644764967512823179895893113680956765637378030857861271727630195374041753781398191784919567022370584122103557459410621362372832939132427969167424244014969037215542324197173085189053579332612024919230639332192679915653378212242463763660988525932912645963874169928645134653465218905207436682050161526245258452566519596969357511300524644655232460260317603107350340144806884011601534278787790245354679708883105013861610961117432891180498053434272730314871795143396959000920984756096463475533827995900269741357681866785287486145123805579818574831451132983005977572762689007019338726961534034513350853242703456779704320773954077085972877636541552692475531181404317520864925210845530226709781182575435104129192997280656882792893766781670300806779558961622263402799824201457113883589491105002612508887011035281262491669915977777673629096044425364156132324083819943379471409784698613379529418516680284285926711313407515858106498676129075406790359285294618117685247527905333221154672486286030868423162354428422873322860655572116998462429526389603140603055190725963352665908758869419731604012679730941093832933338729523944713975042656848604082307637481393371602994530804404255641676236439203097101437277557153867917427077626780134038330527023669030442459941509611590158116264298818531094312361197209478174296816816313736283395336237949067163558729331724364954617989102424319796110683196433436542823533181224391125223381267254371187707983903411864223526666454642619813836271819053348002707541022284282388058681858960140603970590899378406435970969605608111703302743072770014122308230545242656133167228807514025017754023205215811599409896522951122720049469207188003094123248130423007417097891518859946125000580718656206964584651513587241107756040879894645029188332690761656392643634282545452892382006650200735931981200262875528676909020440865679482694277286119851998636785703570340328796078408742337580343547212153800481824437755490071141108464202301182020220305581441288810933236111804269575913245707971047265656664938647450727197037806125063714577976774229641757206607342268888845832478793147662058571229586474487409642893715137439027328091418796037029786456943708098144232642780563557587952078769696773912365003373883708113474981630177285880392453821766723177660690063630095519358752303051472687899693866185430191062800812875735033867604690304718559195024454584783978087877867889034604074903506414996895756592859459995145738682341379866975167787276089837086031374726412827446098639638966879270088927067458733620367348825078942110427264970644628112442106217018760553796867294927082324748074187288757767849930800345164894458171740844834083405559886361224903358705577226689047505792264437070518102224129679627200669108776609739808344859311049772063148824746165646884128875216186227862861534599323886966637539151644824757055291741486502863995001593090342014166042967689056298869296632558171993892576186713047400959655763877394638301662218675410301599838985070250419802621606607317790385348490458487856728454274373485193823021247613080852964826291299765322656391135947348676102317185459274473086606372080349822409786311851930910901002472651981498649418799964373383253258517168229640684780660259346653837809987297442246888601157962013085232072309004469909867469560353551602741691571081454443215986469514305566650656474357342669525763049377700625325766057972211274029686981624907197326444431630204572204108668208192518177781786476633502801966932095599101552173646166898554039981386054365475647920078323373575640536727403425062334914103864964019609859797628661277187007634296027851010247816538027290379349099013569796151547307664103641167203295066361361388924999711951275034857635978772079114581845463699801810000340305906568481705351753737529419023478400714454028852199641736466525787874533652493548575193581305949883399113508428260952935067245103924028463927720912731014535727261859154326444294138749032632350743543830989397074558922963647059875188901408242737548342927075640992976661710619572702245251181453081608905162351525313130728768782887665154157629464914342098763056424472297924647388302549603814500995625087792874707472670650337730217235950015680060246453119728833686733028352592053119543186335123697763367923549059220979898267193959331405019821074802784682832595429128309377571231658864681316084862487817749748535301769163821507239524689941715591154657332503735572119037675514878584365643971038004393588248004931348734636004697433142928991353724653672357154627079065422774338264385504629930581351109059244011257160928735090010890797960527052979473970454642649664096373745305389404686413056770851249680499692329298108003145867106652242021091085391597699673649046471484295716606465564300408516119907729374047712587309541180344835708582069274649316276133404840199290403786992562631314925281699349014320682392230425367223745113901812900743305908689784135525649566889077986146912985895834352994709984233175813597535691967046318536226786832834976917866046905714089711873930998196155558421958951883481096304269099278678451925979984745085085277345000141917335682542916426019777763076421941415114199404915669898490319893305379709657022527130139747586892421941418185544855850815320693585232737518980956098704992231113416761469608625799575574808548732661795957532102743424220433582695079414755498138451415684352381124597786338207631434380370570652847611106633641437219636004992556840664256876809587126982576660761657216637019505351710866520812990762295717579331729860654477823514081311852847814203564574490050215945823688856744025436154263954838585777464207187143215190677970465021765021696654023032607409614205227587241764036664225490429912313106459825344596180899543380153269598564226709738014340459871494516583524042902053756586215235006398543043565393499740587013315553928176476715448508102551163256601356346482372989448630150720697007657091209688317842692056727317488059465514477954463879963364152987308278362261418991023835474842258037055393994789845106285552726658547306807765781284050651368288374358678296028656130384011201876450532632048091285813316004849660574082380928493659406852007225706839568238736271300682557940749223570964339039983910732732155581914211107200907726190505381797745757400697756230293102604819819950079264999615971737078850670818236001457335140214421768539369851783845200972287305998516149281968083465791949791168014612621359506521058588584440394404518206167160271505368866746041075107200304305153986917416900967362178870174874127463906522339884106901171045295769981067542790113842036615555375893492553923402389494952897242698310474606709512825931854569626690092604300052821852981724795294281597979972971602610609710799327301849209174127082634477665583947212754404857088327026037116230010733202990978132780594038833032598939116799231768794736192857513934730387822550398682584429406231871231271944618323144225290568432776855041235405002986290284998168174546641529569932917388436159381219599565954776646652222408910612425905715481227871176309978318659917842743311593132952787169621772581055796652337022469091165706061104348244903275898500569656372427806317501763647145688400030919720762758959391798396272268783633034327467617711088005307006008423633742447706839949881551597689353386391706138695374358806596355072541229213043166110245924955340467702440474014857298937211789605180480804101537084893253889106223598773343903595409370928164959480311654554592910407132123229861659310382279988328980745357511132295312002138033534609906407485612595059691142876675843693371032849452408134825588640615908964664142456681258907642015303819990854711871899958282163561645596163870090762293305476589670238292413211563053126444063613193559658999210285502262473299372917628766592774295436044940225415680532528126631969894504454667841833344154823205087570384201324325063563510008394489053735398791079575399301361098870406015597743849834406082637690258168456063925308595706160911670639134144504219423886216729563692180488575250829331128671771779082904493548940164249556633630412583520946382530404666600552907430745431388082803077390328375321445078878719227607636053431649815297017661545013027098572583614846099326183267922778239160736899965895807763185516748151156934953208813962569122155572044550198535714136091933069382022051403210441519505579300616405602594238240669385897136471653010312949245125327773357246292757987954567789827487223606917539081906958086665698408954676910878762750268685189067474771364007752702675338174317868332783062778889520496699048118428166317385337178959147604311971636212360129170777426214647735087192493136193547751456582079427134494615986583272186576588314271487853752798654743221190069027902775635464837877042797752720361346814697695361062339374020589642034440666646793329793471709237316270645017594173647347157036461138550341468907204265658364452116087919795444530607201757235753578735478193589023013241957319996417020811766536432448265748195570047676676341065982970687528895608027847410870187611021110336818242734016711251351734653496118430591863089599730667600161811770375872709765458919565227326989494736828399260251514624351468784896044150772630941634920127760220143208359573651316362697385811326309034854454587265489739552791103118797946766663545225757029477819719866357607871400112361266741748503287192634590733857878191485848609063030554285525922512895326481415300015899047776527215123148925014632748789735838717391406340473232016059049104777712318445079984213229068403367121864616748295387209300581808308178406552141147744542881005442680074514322218310547104693968012332356368965555226167481520294738480003226601422526546314078936832383474064676347260705903371644815253979376876900362544760321438361243663797293095823651438161149289716443492155869029273429131627046782001117937011876925936358693657357663185440039746972238161644532633989397065386339185186044456125476016861758581841666298333642439528592185959175988190717293927107620985802317612110862674860971615991661481856166726233356204398936812569356991599893992689324560298905040718944670865242636835922469040059953279934216374018279931331806904222198272149890401353826622300083887885346074913551508611667866702142237378713101033798118480492719507756399357242845685384130373625260458640903536050264395573384578315591065177864844580136666336031902513867746724783963343187997592871568967980006365706868375244657799513959769670142846815402348242357726702467077086634068518807291118263336754519797412920032950593997144262509298003276216854644135999160519997555763938209550377739887696647712164463060876052241664499583261532578376548216522545737959506142792467629078753920160914755858760850989466189400381674284557714867164042696546254611979088892709845677207500153867308258328661108017467259086931968512158299583114750063715047634239096043888082891120141844266337157481169471449779869757025309842380774023883155147483923043554738576986900859859999245456358412689591626861291716132295873661585281260650355350203783468249682181821324030977882741415792174217426648632211551295474362264242251749585234938748893326917056026663442186302113932186565967986281901233862982225484917775091984324819833908234122345985908317677818481621981431123331080202392072369702692143295729026296062533263653237577522323132800733648180993586593358221853317724113493931088889012549140076577720036451507785629947714682006501451323226275823267242622458542701421028349420789450216388816743933544551368062393873760501889969730798111910518344889307261685584860881341986503222748665183873655477464923825363020905049932076702936603300594787695576484931024180616701368346018876289911038707584401069057364044704036458593961169402296956005286818336702355864044160634834032636865661968844191256472052938845502503278169606595042913547807393236286682100223971561172185827119985631652786109252098332164041014941006247253175584219533179222224204006379985460949155001105619567266092642946128216897348294474685776616419302895454285789001683012846974104928926591772841360095572187556239106248562411922416452446880646946581149108655609650314385193068949233894682816210614278217109147342492109250082722918873072271879640168598290272636519973069828310081422226780553715058049606673529458085492889193644870337939216995439014143469659716500919033405975494630341881023074258889168240494347630014947489021814494819805553196994147788275577073123384351205960738975598900377733939844355655595133862223611829649398032066454227300678484294897576662243060992412568504392764910077577059531636220487561317659926080406309363618454273407955531973699363556395332766412800066764812387858888801622024031840529527342585520726929422506743295319992111003361296502640360293621910705101982759368978158323492748742190303018459056182749128791463490954774486822499975415268602327990901579775077849821001404110931175308115984698023895200441211038447355881771973334143602916371851624523303854318906610308092317598354528001057965801500727412700635909471349093741990348762485905081646130574884572059209855721093541418326051627372290359550327797833020917301706159518581795245602097532809166901092097118197911543045730039473514359722110791551523056460181372269499738106969022608485772097728220063062946330447612598574639117674654972120843903612496996322173161889361919118290614586822794195915459100078076420016851815955304750987205448123391851179528645672881408821858563691022658495638961235387987485888131463461576205032852900990169532569541150352937961185411380631636387574579608308130789951804788052753199962657844398069358169099646011780038622386364829048087094582533302108023144235889223122337689171718561244138044312209166376525021606019722847517340655188014266757845988677220274333461637514194713285421938724288004666091228810363273565047981715415965100663763580278808275022963240345770074869406171635701676240086078253758230585897028750721568168825450534960248515892225228312690092997355769570420297943512265648212496697830840432019861178395062313393362087709637274068016492680583749585230989681445608772521880444604305104055906765807304531850199905892416198322634475518525450940870328242937764363196134599440308039987832233937741649873885288604640667046308229295354970890883118576633575976459634188618331258696145367665717903415913019637393258844019831027684752816082157017066964092017113852975786371900680734485897669808512952254534320533137259555249692869426103594954167921580392780345663716211318249255602364717557104950775705280071601576405548668982887696010051041885766867302901439186677804098467604255995569671273832901288427741603060622694812361475346447721932280080193446991341834800756909428323504702623656934946638760129162681634649667228025662425094038162328880194263885686310719781612553992495585203099200001495234540732830365656984122402935156771488811576461487988355919111535402853589996253012868867928856268777653062192516945790792190603629879081441446558641015113303498598078907543227675352400891680732684575590899799673639238486397056221750071226950350904030451221297854465116383660925865594643787248512457817522610673693018007920194146595644736191497631335845802188114017683293792483655952613001353507434974572821577653454336729868034078162407129601704365174671620134270815467258761470240432007456634614692712815375078832561896546594586812004853870424461087679644067732926454862971245473578782367009795676587654948264938659945830783414551629037019660852345616970922757521410356477231843866818693544142446199269562433284622380961267379096617551785161706959293547172590987509619889624843232985015575405140826789352095487692790257429770013192438558776941201567996238204807740613317669313817472691752477060532145139836509670414023524236248600504465579909054235171353675130622438560326226571814617026174548305781097964957600734004737017304939117558086470121325911443142663295757818766314018765600175377362451171563778949740499723789533162369894124034052183355580160007472371258741504997199671393242723682383458891492647930558563473904772452059735670086466574077800627196803233281271938564360908622631452431667640014956919432626797900089997516220995710306069041888392397449599157585702201147830206857565188494699390468593139449413292167576404760581003771934165193199048790631073534121304902250018554133247342782837419348124489223873932845730570865300248648109024592096089177261245073168395343591090901875295331233906740264308570342770136158035984342993201904524622790845025850519685948121089907020496534169985380295222276725970221061148153152301739919818947673731265995531993571329752497639368664665055314189114699511527236477812289281007102658621713633736635183229195341853319932497197196751118703739469293998484926026631095301707456590757916918597945641417239681747085410809957841454882577162291885703018263939636529240526181633212862148718253888542983119676195752687346642082526538534783135851804262519178780999606544967375633765134762764922715640399077331381592103010004131605832418874150625082351989905891828165097895539603954429934492480898209714969868771408901519153384412496193121243604117245503824212266846351648283647996874059517622818099914960075878799528798181266777392071396086892257710766555167955939453671754970925356740057291511682339128091522241857707611759863437552905742733697738511123952800865185259676339784934636921033669244725157858667837773680994174940450101663902282962256978000146098051408357523669056523036232058464117488494143539319108749630159761245790496609828997695853225796090394662120063829650944982392586446104193312403196564320842624031127881873260165534952320013744181249822474504798752313637418574192395002896378133285836397161176229286864063898414665728500326383194053252470363927116201260925960308679115861264546433831657693112417224958624659842093805269190644927576601272260775461723645675441409212031444195306037125685907251219792873801708987495335393334701230885004190122256190696461275030544423654156849829671151899550988357453512537323842861285559300556962040216593096521899223940954326636033770713252972650492835959281415261805770357119585296438229717201850230736703680808916821236211035705205184066246363546105323338837994099513295352983843255381763713137999645004783384078560553675663013970507893784425963046341615392967722159470765730211137085704366328714388967322652602432051655740034151255028714259804610591952947100803897893865964255841477591067689680685802708023779781990532796554666870412726049924215266505074621315458166555921140158404091257073396512476196821786738555045283471691408257292990593718890463646921629248162400144508581749713372435658661755047218793298030915330516384210622306794804433169285918494479775557298012316739956491324035551335290199294415325387418988645699152961873744427473932221451604091678253709585860927881581387798139631641415312345126202268285546607859516766927653416924006065271775093676254014445304448059179681127168908554110377494791485034604133021682985795120396318351829290373393978758292584563920540075252815113134786696745005185347621615204011627721113410866354942001125910677556792187651979270554198920885811054918954399022467042091922667793960583157789653193864838925084289093491628675716981499555493977336955895182858963394376509655276061326591860221055261042532165327833315015063579284172368412544653012867335202505194147505660415677252512069099258638174513082459467741547332019996162929489134904020930329541657620654869752823312894043966390844976220641712159588636434912644931750511870666417586938342907791870557692338699788481016490726064926008596346469437559083861114155372987279152909907280343305259978250659951744118870893225364889356912240083125903745758588503886914939190201401779800870081123311515370418861541461994840151816347533669512995086488451974704391340867891766778963827815426104026634362474957346546613205426860644484999168022785459154341285583363248161224681267118246552324114014259420527557705403908870791819084944143469527313237834712652430090965779047893026637933522149830348022423883740996175439698171133155254622859735973281632455301619054471190743908801139582767032073674663559028912726238133716945218818448163935064827629993750213011591283764397684263465458290735353501519292384110844357320497500283201820240923682216324482129518631112674238632903480035002507210917644215207575489867108533193609414347320497600919720846981557568160338846403644303233070080738964760954946088340472178054073759344966989544107434050961115546800348814478812291693487170229075228659334143335621299140302336302649769016618836880137973344376033388559723369559645614851401156127945242892928600527241732132148125439874026797351787311636909872403287674965068861056008521986399303333723395409871258152331605841415688734914844975033792090515186085501023828526091894323713900632144182616176957121842530782832012073285480523352916560368583311934732916157210499994883289237476246090983414927828406249762029055253434519402417268174530879932495757194788525270862640274598170222015879070358277819072770257062901169424657306302396184726752559139974924952871594070554932713669916159767057303035349706875019796489091660291406055388682656874281996379673048546537628581269011572690749594703657019780367339939410336312796620163421430345645936058804880095832972526103021143191848298656292899639213811719538587146869738677564618513792007129531111775334372849054333375175380446700868907717344463246794989394325995825252971115084946376716136799230199763339037834697707672570697892468013194799862742426518240108452865477470743292042868094852525885393228405198704041875085929261034911306301193893471698070874209151157942045974611795796519537048186279255558867366802495012879761688349237214123270296664084897861671273705306597208570297892130224581305760252089766284922733805516124534440638590988952803117524262667187435178829526228531043224398535332800963106874656683054182886364105240856235563597968266629372951689356153961991558330314898669991628580300572749073519529650769322636995263839727766874925912924035886148136366075695902363950631568231178581936031009722284767867392546387568066554073260497276899749316372066278057630855703228478408942315732558340664098915970815313386242295791249122952757230181877636763367936623592260805841860984232375837921578193023695963445603986399063620252608701904973489147396974615404532799556306858227813611899501496490356519261726494942597286221752710827227721917558496208009239325245629567926999939935794534452777976704132724169014332901358718066429357543448228052496209871352189060725590884535390627894568701884774039914428114999662308436052618418990787515643833872954026147699030148504241689937337925725635651363985359511959048480394788702554195600280927314757461544754730240168873335908426104792658618057855554207132963823064519155936232804845118689541856877423553627953900484733841720386872088523761316070017652952627409397117366534210600368647206387258420288805579416012837747236171670828271464932131888339568211667369157794526902241227136898061464833717886417202660860721595630413185341266001257350356197431010116058570058005611071924507374142115222324601476437900470866074633415252761657295415411301832616149998913399489502763904918054482039667440243081693310274865381093512818223307941581494261566552748636875186876762384053380011672468696834158656396136115317026181320643418793488495189332651229983853966803206262125201466280136867791845116759569306520594779108078875216517952631404673402895929062487158812556146713863762452478688784042382635573364197335458935162718164514647559098817683541807839945962061569622740666764346352044939479103544107721723338090760877580000220509154952000805003837347083443463256511940484719816481387639263294505939591542696443394055115770800966299113197607169652792886076365725628848858473322250399542092123693545997852553158130312323570648895578580064914416596525121697343810682413570322298183129258745562033072787467688798403133171679479830180691979094301635410203452210947795779053136814192122549822070923655519134653642014815560499979296462229904083301212042519359282813601004198080140363448153529208384893168260704272008147211019135560726635091809509141457810151949489648762858088537171571603141712012080137032010090603193234985036407784572382156428551895602496940268936486493751385870349950508308367366017928658781261377515634715296239559496295148659953865908673377535986627337654579448424406753142037891419053370011003406613118378391511872353933049132232135750574744270129565423556445271421044036561512942610733277568510982273711872655668272896613196606398842400671217569226517937465849257812670598694589763675831649856341229713661870783757770977211271166483694896952831108745865498682181631880885961662959039387110414330176879047293277432789212773085454226017386575812310919772623926763524366131541444294399089678606168830698217657840946019088346096761714357269411017860936568787913558830572997625503003789978252571129497621279468408312040169120744227543899141352009259160857002517133564866949848080728344807683665872466836672384959154476403600873374269011777385342426658586160704591872623849818073177736763680203381310081708815542717286706400236807871030068721855936965685649382131155583856882783880100588615246570322984603845108553636030896189369924909334397418416575146344072896892894667030311649750621570962417598934030075104939163123441316416447417865622472253504091630470956323022393713522263350099706324728618785892326039277286695336465719552357761409848455609774506832223765588398115573810936919165765295300854261689836357296645833962843137847479999156902040104566572718287116451893739598071821360240608143107501185418854848709124862413152845912174913787084294637693656531804138304539147865340066033004065965066432835233364571178091822928160608641748622438594823999993997084024335042123967016945907663698838508598116889180557771896417576037643923209999768874166233734301578424816652013278773119953472150863295417439127065020303692955262719138176663446605804755615218688906461411903585274755510064980362509575473556462321606228002193553915716211483571670156724993208454037640728111106806628932029900223304973568223752699642166403273324889773217690766336679549544427235943491984860607262052558842342108870130220718213114461276345477684767027324403944085384374224287017881194054142023521541928270825461045987871411584460659226306716437794584667193003791535562023053112789224990414600015810449324893922243969894866371298772921390802933136837567127294024616607862555342903927087102119558729999306505406065974018855682030079175381751190469798595710206781642566867219243800067615811346284443940341873696846112598634874058377966220992449200586576535128727080879215144828747410553403668004247042985563594630808601522087767994805154339133932114484301135717580857333029837531259698054515051689619017080674279854587217409913643868540523605219628775856810475802168347191576586487096970371066570079624443247207174475116816693287909176521050678639202735456500405458449040733629875276634556784316923515151348762933319369562486220612164807157830644796635688905849942222623436802771772739544133764749767479898282917406337548093391555137326526689486576520786281283871828525895510486113463545051335479885346413847885356289291990423491975186472616538723819213380460279084670473521443933773745583019282784076169665973262472231992057170463390955322089990644037593362393119854041595862768096795406881367575501390298826315091394369409199544789325250105113855440533928780519051591801135056135263411479955266238262584508899253269761297891506733113259669387865420930627339698401679429168346837613589416093990993486458894247563234917259601330429852633779153589680762627941781776913668449672230767102010964919084258691770244971736035788688144502507491780835337434196796438196827918993065892774044027297438820176016892689747663454815963086506889657952510065805267532640972970418998166180682959054213665471303918519062853383472775615095868520101026231676068920717102511536682459647429363294145594915933306700849637637392196784107691936777970257661038661146490747292614724610740779330290391248811993202192896759698375368757830268646204792965012394503243400425933413765704108083507851863458638970655963327155250979920255753192880286459952552637392635137866914918746048713398040907316677684575413881595896147936678638479347696843585208498761022140323580551162383238905817426418400599579260780770487875533985666196843199478980275778442774528504650274549817298222131123878371944787993219225596713531698571214244024271096700458595770521033625965385600737820983044664380204623346845858119844741148279529563945221766236900606015730541585024850346903489739888913242216509300918461530816850605808393479930403924501588700383150711344888614254700517752050943259855405698715143977782221760002651194183080581341653260412852844940505468076843814016481936872971289629977120816970408505763483504013148809345403184794486074144428943586472436730714701770340193194679398557623242130632637448453719905711831570852794897783516907156558126580887573329703610728393387038304562508774521741255175247987316725600233985333406471255850080789802654468857996676369012102800486797966331143089801498775145487444036396196912337281194403924296524330200220806897101632873866631064494845661536392189294451645076545967790948341184004350842595969039920135105374938815171803854951841625730741150203162000022234421391446887530831303225271790627043386765996438271476787158167876624695228291357391599512207536560951957608903228486629676688949318347504894978199314716941317304602330224150947930945720385065682906004227553739880651903069690255184326765001336352141308969810321949898746876244442169352857495915606091273222703789320188499485201141569533062978871433340089036242570962295500227141073935625976009894311928690153960775733263670929698958478155846519462549075308687983540937509119466775791946270546698456311084103048510103696361782863588391563814572700696048343389830276541259178669532972200842161429515100979359864574707807163365221130113295936505626862595571216346343775668951737172125578523528058794913929544213420544306348264957159714442280063161511731819497436981693274352834775524855680398653031777868307402231503908009645943082016172554728844743733778560413683282685570176698158169702266161965940580741985429539858646024257368155190889379903976034673684170273556384256838392617057654426818691179947515191321102298968514811365717420279521347922799444686431313447758041315455024233813444949023710452531076979722983812563231057713327454845519990879951801282884580834327924591333470571879099852606833876251467628992641268914335403512557072545214761401530491885089170933745635276731963758084106702584015012827141377819192997423144130453525737122547285357677896445598563054157664823804029184463254371410345784382688649844209952267725741227135450378855770829554499643344231452195630392354966821867714500495414752951670190278586561303434851682158115606554640623060090941148972879334729433845012255315607202068171302107147951907795091890618410326650433122960961636279370424541757867866115616490377433163169165178272985168672178893358664801064592610959139296081718836735779864826149659507969024425238554616728473348884555961632909850392753008643970499612225631439514324034788801274902238139843451122664674519985608341358005315994617900185643139879359406778229045281830048932583864017331266182369414514532924444185932453837739411292387938651102468582475641571434636735464906406073002826826786990600866140400913673522908357012230652437519496910497266943201387703166987769947439629020000376016624604149648930604961717188423841537047533586703098047779078836228949777494702058664495388451535532709214517230851395595168637636877773728480629747354173010957052284529509097697746906343340718751023649552946692621708749848408857755673131525732205843193564453356547709026594419857204859421399715681468725087665869562544099359310859950404041106184230510425834788583480631531512864597106909754890515790672903748724256654426581390003315294449951033512470848151802884264476264281667632840252165238412024536833739415979829529040135141019201287998965799743606555602273041579155365845928044704871029552082209040770591983217894833236863254332989066539403943643436943901168461199103849287620173890738907565425183528163306255250954715651212657796872743751634456545330586926767110510774740998891931512564503327365080864202241589260182646673011217245226575719423908984835215249994466111397041838513346187288046331229808939721917436959585612782593128220381095092398830968312315773294193905104355718672248672892694558732262810592670457067539977161407250573410301007934449923185401572034468201961725752656997768552679163341843720957272472232225113485291743276309659862025809341248669804690644712321494561119944361792046813733300218590826450319212008920359527500265017061352805092154054975183569268244032238893702070205707715251369652538808164444693546507599713757941699236927003250756697697131480621761915039474469467331775108110063161277632044797010207239566100246074335741784639455144936424666580778308287114109900427706763081734684490284693462905842032850022844808210414120806067162945701762743401408316374354647376602229747950621714880547384507230131355534286417334009733411863468843446670975763779023557564704502962114794553438372408367597332176216301967394867595388045935715194598616191378131182307081966080278590499726576944935220121384856985489794833290169324606690244839371111276733367827952740176572499914078488391797298162549431153940653204216819692706238775629241966647070987239352474019202378797802205559600395769285209475665183374235614330367780548085640777607514755745076085489875506121995850159871458135965391699692914046398011587898314403662742576871000914353595411805382463687233004611444577909136770581380106255875098899377376999279095135057561790823675855792222446969726809620482567144179958039241662608031905786662868529701246724538773422268042407383094767656341107482814430968396438903659678202128432372755239406353395583899729444979091576105171231850856081303212640824806463114896457705063407152777082697813469202290234367041216410594354469266100507472159225048007392501196470596074158250276756897681616370485360481113582704422716574749598469229363249762233869690927773794222309593574881035038491633957149289317307683076412811671294904545420239470791391114797358947762908752990601084820085268232898756898435781832683658494763231473360595469149153234092928034014749058454482000343383629630825490991741031458205337768232275325884720236674252318619546992203618678362825526351337770619540255582977174451818660742609417738825586877212970713135651606540074597694232852040771818339619746686885505843299099162762775568759232270754828063983708454647718903143891831631950026681040116798794097158412959165456607445686515483486023768329656795284153887208025658993652718241099840794094784859094042203888603355724716064552847475303987647508925842027405933616515787523587626723949985585723337897993301738009070439490802689726590497830322167368140798662312754635943691147178523602896194342335963228267651690284184662166439321705772258861444205167194180938313912492344770757648374863598943306928669757108907070530365201829138013713810807952530150182597865506945526764752843048664175099376723232509214588133728646447941585851109971955333290305550000917769121120144055663449647066241307223916835562369904878638415995830485520900757901920163840773618942088475181495134651828918374730174712953749876480018192665764491427912273960381246012394434261660263778982882392373637918401847529729370598709767699523677224795807662062831774209574025220233172811264142712841482661170687352408223367761102352213843101290849343404477874263546120288314455617244636457478033535809617732267525931059543140783145461308845267163302206647169371630661973372592812431391556212285213502299887128887587809066755642222904858117320495477008466320356658063638063556171627954571328331526473822099479893955857487412904734276735085998707645269373544933197778828573687039481642691869100407694548340414463147084157303505099726711818678410886571519648329605708773633235896840979591896621875791991355158053628805522171969164481622058189321089438565040117356943704021791350053839869763274866233847379930385262356997011146769820506880542395499579905617353774028555878153194751968374017788049662600446439432993253462927490567791756590916997629557370298383204612343107488728782020870376320027435768019511179532862344066901427873302386226273128917416537302772710438958137848601350960226383311400589188030666048163616877020365952749265395065462497516396829336409531949945394178766458444583667492854874398400004704749494971662960754313291746717212167774960374363628127490743081444200812093887432637617105597005101454404858022621553991781220957875851542962181018725337555025973524861537352026990141038278465496195288661062203908286905478205639767774375460066587864592407195256842084398151374986123574474566049433673143573970102994585637106787027354779365709242907077748695378025740411718344796088221918191604217789385829094650966498455406821277520377677959067950424814482527389820911879844552748760266906311602543001022598708905904633934034817334443308802857366905624994523159259839202369537475148145293811476660148802703452092413200248801700474045044561709917083179321416657287012731932801629609243567421301625498221581408025337666742388978660149319774716287569148366707851897424370338881357138948882743255304528658677645916597944243205737602893188265251425522278469147617395111458717136977470013989667075347470700053389884244341342429255672597979299076487477439501406890724825732802532616078932931435524265945197245798959956496765721140238911394525950167135237786328895075141176944892263107688918060121003616527154848466844370029922615650840168556451704532824364949923054098536559375218127389023279551323820508209141235857322860331505453661752709256049884289274119195584291561879951424797101217152917799769045127285293652601241679540582102055221737506827955377075256418905640205776451873740803994003031030430486955278168491231375010372321527633423673720654942358735475383338690065489326449897260774734080373003367582784199276572385195736413081935752846030632460911259406466850131582944584439652170849688428411382585931160751374526243684315243065072790383041135705574564878652871411113884131894788856854842764398632065074169233491634381846019029055236414377401291772168849738943544597670754238051881097964320781871848812209684891674291053021439376735779269288646789131103894174496298757049918065544026447646273768979147304659242479828752009617662528628196212132683399907630653322041803714031305440539114725080258618268619397051412066967679479781418720068251908629109550852747984516325099846382014547805393326759511926093629620319290983666341727594048910478450850279329972564424131495802947127118553136875673963064474401605674360211751042631616737707243778159834498308006778983422180334936503183811682632705818858185164211408087350858804226610543351656322069767795051285116179450574997949713546710175983644591420549716601209093597487347251648868568935099432814694596972398832052148616459521451196170206079658825912399609676359968413384973915625348882207304830493365009291087621480928383624489999668460446280071250078557508975095382885532154650098100786661079025797705026935893719242487273529218228123482065240865086456021723725863636060577170316178322655528700805262839851844649187709811311773172368903795182070253432266132960493050151205670724726382079954298615336414850254307967839951049274966876848951028907154785008312497393664907290294669121524041953812796249737206464757678199047044986900675662460014798221052239693277416590944298926636266096367941025831259925233577054445378957077557403501446434357179174184306315349743520258381168731070857382921481624745541352118575638757245040579101569749624553927850350030167399663147625096190826589149541095677827623145957418648447525758594648843490736999047401860549966997542637187848688240493620574821272780519835186428230503004236473285860957492254529257842074984662973538557013618981934200019114379739132377654247008909006012668397393822786613182130900085002053458031296636962917915039367558916972756066288737126309360530153747277206102204039910461644389879011136106517548021404581802928292083138095155579212538039540328220045486543917630265780414406178259953756679539351769332168385654095325368015400136426733701893995761961066852596732690440262350004531156606780485907897450293581992455775503685126110765575327523840384240205642665206324862179379175017596894216036182478396624019935689296669568724678762838099680692626171041259647413733207902942040129862822065462785060543722707950011981563032879072401120050616617283512760015494741694732954026778586463738532643029282822532984448916083134105405776174834008099678178140326705970402428622753276998421216636687219950054845967486086873513829978578041221953055067001141500416456517264003162605011692683051662830007508738726929409286863146739766514856634275035962086493963988802246737781832913011261599088986364975497564002892568241109663356264678423017701123135908808095051476486705604481922619279992435633566555121054584388344654127488779385833067559382086883183867724938142959175492416672074538603183031456925172303843903121082199201316439733383624763287476806137343835520921640009231105717109985627949226980214222856249476366494477602734917507846793710247543800365802272866212370277325722119493871379769700981728389491050282338076386754808209280747714543042262238701847722763322890805428480653872666560881695288406897448035311125308819482977092040344401336580416208368350974014244273284520134831718520566619317301555066430599021284011229735177027696602032404055407989446064840155564858908605273555721209873133075170880199896862463503396321745156548204720872374669496909334391565912566867423868425828571945870372132622472211414037575091526417598734381047241260257011646961014137831454982800504504581875943527641944983259144696153458601776809122108854750549374800083375772449038333765106206358266413831272288986140352453999840539617043578697723986240193647002305108376481051597479754281479677511719917590025455524527735528871565687706984240610426673174613818581941559277240049393224608710038728238012543230681675442360242704324452888942214929238199969698955573310910110469599948833045131440229097832106619781318646084667134470969532862631241798926509064928809513871614794969505171049353499956151054959117695234322542494618110501400991652881696206034680080518813753341681458978396928646563734427779113681748761535654315725908180193769235210438449972159818845514445480258434737907973684369109446302532743741519968014062275208057891612142252650054098143595093513780851727910065187734087190586622012073897899881000880943844456886063630728543616087360181793625774781158804202920913910179649765693467348702282491122976744286770534648674963423768227702280681532596472037334691489762464199757884964836993409836212921616884268658650103382419440576275711582775852324143417196672650783470228105924554128925169768077178989984671946087565324211045202718012107746041877377329680580704217815234543193382591201445553004422692616165113097492383404320214301126658819485431501119446979128341540599423222621290352570395928754147056446286337489090242545960491506142882796100241690087688422607959804762886415977525859055103757563968895310889425711053649104692445517033690600533726946774090033864598521002287746770121950543733703867903692787362309626286585534809233969807984772934422749704665190045146844633053351084958153140708517889914509794438200333618522765432151092557339678742008823096516738153799425881346468850210789924333053205526542472746560432018810546941445254393472965917143970476740085469240978482371081386042319211145647354301784840947816047084016882486022328424803341264956300404280336941219344719425162753949748901471814278396132198336681077633573946765941051382239721799844774241159291645952472263122602064341378795346423405405256437755414564577609574687339877441460801995531883780950807313327144115166467037159752012575981627414181871448463636452965251371765536031926568325738996830112528473631079921765133946602387278604278574193047986855196745482775449256892020737456603932745997972726144872000128571007838855383445883661359505974712339872916963850972122693488006133733913752133425127236183777759365018409205497843579766610069336725381863153643192009072965831493026601458953599546382017765764738493040999857336603678062161704969027064483355264079188773582397977431042186016397793283129744310895018722568746848094778156440097483849997946963172198608691631112560146742326760234734036085382398200614765540015345273114821193460375133696304749665002558066213709311824658075043455311868574865481979166999911694891164555514975352020224049760525254999075227817464908413521888813282020425635860460770028928020478883522659588062479791845535422138845804778604254214160652546714705306407801518984678304754428455724461912339043154266400575284537466965954415683021751599385959820334309246198002477706729741255423342918116058103488879632554799453220562581683791527592952523905877339637499445036485194198990743760207415705946987443254560371919437641630602125027455588066061874949408039620967980770175118297561195660978961248675747300836983764294176295353242560205012035094861492324293006447482270164770058504931845245163064717795931770692852715723143906976592431373674810294688001417237220256159248996236482037287578343939997085911892939623658485066696153839035116544752525246886324737368301477935359596013625248890834586727889086578718905527668725646545712575007917022243798727514355067190556534972469637973493455285713333995990213525256750796861249703113326522356049502494188118150067369461369648535156594563395624821008899650616063916507303033485495774098188584571841473910646368676456554514971087815103116420932851001300097722408819230855756889812039107097213172360591236888663278257606898279897643829609999283537989431694327660221312631625820820234606576471551864674765335169757621445198117370893120799052088169081677588089536232515279018213306802411023063431034008058100852360553171546100419998322282525221965445908517199236206450314533187524461579427122256351295303801739011594456570416685449216008236651467654986045495490739718673973843142343494060134158618605032629480377564911957170901709658604268855318425676577797016473396614365676045830888114690665146107369933894780486917479932931968361161992452932368593210420770862825025985662595109124617582874532131248917813664904246696852816376307118281696084277668786421366652403342731354157451599205094395664600808121230893814252953704652230289135006579797313873068488669821887327086861254880689812920008938520143247647952039369940254392638215432574171595961997282829597340937037974554982144138442871846051814459829657873967459041945441481342342112683191029739521235660154320523778657098162586779416264391142906701658093016300128129531311849578857861709403219027738425761201447288593963726569313320519125695737300812400105521519053031120165300154092813528744996568620187025317247167772907584540556049676573533455456112288935113302409248546268033922169333008340237124504727824445302457347515378587703751766782232730184054170394515296245009489008956553885157180635221955799913282652847636994744723463621922680735042546813001155403983039779672978957266289195876791587957218846932551802993593582865177200474533600448130143433658562973889189550382334861059284298100161109504572747381927433060214025853225510356728912005663543246782628919507887230516856640646978790545821137769225303724230194288241400818593186384694247951886238345110847994226512427434765244937498997000583990393951399036174669686202472593087373290900208859054157483408109665302118333791515436550128639407441263875538613348595006350548728680663828215952788426169208294941969215439346849585287143481539673252403742198343639279878651086530607945273493880373260489482769324965723961989879633848333439242571342346831426761002351497827517183033245935058549500493229379562635181231653594292829724448760894371231871959775992248369941312492703999744458654210172503623305006537793143202526454570598434537625429777607679541782649475113033271011526300587483267695317484975825969841805218282771142137444623785938373628556382997693108741293984240836245862022089932237783040294282270472940034764489243429594822708463683311578295160019649385263641275406516306596655881697974515022340388707903817162533763406303476237472600904540820990864328706135673882104834440814250171222875757191321641006285379939901169374812129678642447397587056434330491888094616561270042690321329050019938263415021101241749579776171816706729856008373165833414493055634059304782716331381104571417537836436381806606369584979386238723848823022775324214271543504097851349582097788948870421466894632785613915559513936483689411105278547604951781690728093127469052863464583754403473326715656874690344285133674779145690256757140794500031585952867589844203858875628855303643469784504069106954593763827689946960504460011332864739540768597434089739870567742734827219878409779754454751842722762706494147208378879777431170870384295793435285114138424094562977824246401527187252353155732893860554666597713252998996501042511639358970918918704075963287775978893092782409126499376653938774122600555438073061264589917198771661963764722861146069924730265173905520816072389467365635646492100141050973683923830420425306201893541041906251727421909781798246718129332289950984417200230057852919030503056324066083163867438836610390224969099830647029587508496235824591588572673552321555818034015752717677834101162824008021456773681286471499557277955611133303231008042901334176720524517124846479462908444834361772560364373221576399713180805515053361590602218873106674599674202315736361282792391564558798084200165564731546517657005205007201782584703538057720806583159567516317582005303722858775071898087089735715083268580345006123913352081372546322255422021477561699748761729072317210550554978817553526877528431286855587553554800277806331240960499011608242271273858041100340708142713215660785508949282183042477426251486152488207090642037223669671281574664264322683435678084219670363749304546600147252556465306511246698824511498864355775873060239242560309871090368962318827775760957005514781304719906703285081893281259415701613837985558561826637204331589812317759034068927766710287108886422429115693218772035916360371187153300461424566523304326027380529596648596754383455072073963902950736128452094847436895118743286322184178139995550046377872036228211069963448392569310376467887049127179193465521478376111403454544556184915400061767974936557530022392175617409641124958874595982860136862911656342975198563366064887495825089554094223511286349580311152207443368684868309985238968255741988519128911448278569298213227558470802908248854892164700714407140488059399681101979527972799379864644823048074610542270625025379514846160207088070215151913075062837841948627367669134358892291520810770008540058194642441452542584728370221989794981910004254570033553794749362394958288757920611692773558360278774118470598092865152756107017266799609284918330811058367853101396179766957240808561934830107626697372208404034845250885716807322485019553557747067859669204753970155177581952877106889217497994882788223267256604238824065800393317018476590663763337771277362058264685792652114182325539493536121305300215394938681001905577691327595667603882199628652087362265009407083485529113171706532732315475176879185378197337716621089856723075604971961464558105332456542233949582529839728870948588292956050946982996411860290911945371302367000635777260562723015879275796490477316726209000444091032006725574052050869711973489741166129788850399742320151698778045913265408938566536713369483213449241042596963140689359310454554529653483283783340962907898458974363482600438702096266662827956636073822871367113881961616984049813757463309467967050445180426828336562907349978286271450082174703198270738285382514259153976835883823071420920809324013868928150117178893472186673230146307997559263946825229158295168034474188063053094171534669472415267840067906336166422540515216711248601652690012756176871982693995506189063453595191277805758285429677632132742601823324232944918579184165203660263439597188408015840823137536313417891030862203858842645764920991732453634884395958943843384373971767945888125718464013701254881809244862950072892113500339004207882997240666816700153026906222727609696052232532272067988076138604903698001195987159276373495109555750789340994258111173298312511938909848874809689895699924558268793713578063885115803986191694728273711488083244901237889242138152672636005646339118988905057373222728567593650391245197100205533046628924726596166740989867269199460473789161571204310558025138026302292924454185465346409367326433524662328586772296058541137201913172962010467087378335083529528647554774348306638138167092308876079729026398121835922857387461650397924750504240912159781469399458650955821007235220448455669342769902626342704873611887957528774269906201285910265593579535661196672146083225838563870591390585029580550054121684941179077390176197193068242469125655690638597894109976383189531340988246787981277280693322967711700376405261974377851551426773619366444898830054337224921467215037164370406173077944561384451636110383411314865109844694046046572892538075456377093007742334481120849729019402052785226132762251101817372405740277177655784963214696530143649931660137776435591506210146058634077632498723757966114665161072466525922755092424294506007066423528345978190963670355189314056979242827313770350010994580189226662389782119009505102968472380891729093122415687295169272438060184622891038564897418515446845343831249589409104628356325584226393178727550119543669710891469756507094275754190658464353554215440282114070963124208929726840166032419263070323286721961067496764104265814707562293745838600495783184344512531331813860732578511103575903163150394182337086644603126786019011321324983500995982804000300192932068014187190624854645913768270220090007774379678140291910959601216260411142237286869066025690705316182688467385764817365704972528054388081469578391345154455992168164531430359149954486481494351560571453907247450200807587350289993168897375830534745772170250334818590437088850599414437079316539725633747935099277633320684274935690800911320108858077884236381929286442561569514117465947608043405687550653867606209024420354843952352255092910188073541267006961331384821567613528514918768533389501709025744917670991915253129090245540914070826007085216904128390284315123215981746870600883425041780764841262602875309336847933167837382019301141378407057242658609478083934250308165376575211209561752061754544758595831823337232859889972442202636159987577135904822790639228479240427903651728069781144699790779510072809921697142625661754748792791760069688840188281981655320346773722479488570986052186043553470936892473918811159171807012154919983444845835046398046797704539043219728030054934434944851397664004478115467360841592069139057362598444052242350652303211004458583870001154759964966006415492929167481322292630695609387556049668217453719789010274744161882042236830024736157380621389667584190526330540849007564828810225744929760432359119627484060520932225192364751597862722039695447049982416230419257397028600802485592972718108635574481837171877221353531973342468622116585882176752918357289944415818047052362104009906742328035575187331168000109762605537019945896210777311250293648511743319429085100920511828059065928835074338801657433996276730651291517050794424877285736144082608102530286045431191809579516899247004178828155038822709620406531914220784140751882732847448645504606838235193761109018611571703008636776914144295198516344330952710542878551548275170867754434931537283428309867199975815894186853901177932191593983151156738242533773664188728078603734435605200722553291595856886915027159510159869532651330249843650921505870655181908542711461606861726859040690364042554759389549500581968475182374350828918690919372309762416950308176748228330836884426253878159409365366693115872612293591371159259269494778876184999759303772224254006218918597104559917676702913512944706234393596185270518096237156927160275480850058024781249079454894529270549076070090840703547410468158655828714161561777762198007516314920668176875853184523432318842028889860299938373791150438622258848460212070984133027852327988085050351867758567594289847633326987892507822860875812064015797951637757116896315517093313509413606962310780836569830586931294073592546823597673411229476716448060966356397513191021117289282354574744084840600607854147792055949372764931248652777153389795841592118540294887743461798315782105965721179036703896502919610879110923724729850971846837117307954314118115683132440181395851935069362109790490179015236939372004716220867121028451877976800269344786915832672630077163859939671529883997675379379395254679051842828441407062166357860604611654825121738644541067007289652223987474794799299529324615257618969867681239255813379874643099689456506636453392171236360188458936164399057068356688972724991010725992432157369259655323173710719826670297127074385682193949925909871854990825339491880751457267863364521521686305396202642370147744646360829182978948814658538050901499259624856641407332894358248892456034966992991312000608735912291484974025726176987294402235945221356985129932973353101562598473490527254018028145265713549985108501239973331894739732487665721631212667002835045056400660836725820361237296326903096043432502983337303631711337891158344338980126949390324511405544337468178122198251938578321245169179287050008928883957242624815060436894996657548900474277433666611126669729411038221895587531372676519147221259693756600462068131441315536607532800454777400525241949833812095173933750967117468907183813806607300434824506020115027806933655436063147151953737697030588309076411984971274204108214480737358465983846826861392216048017039003665770836769094069637186772830640030861292839831088409748290096539204258558485636779762462254359742893786053929587821959089934301442872285744351725539369679422387671642902767102911009940760489486800758770348554282488683669857600470009909725268228284602380873455448019799768943023954232341061597525383967721295896239285628789541105996825684930131489604210461343075583627208793440565195799658690728851220830553829833136883499318214374542063141971965159679539434398405680897255495013947326452621405061320102852765167147459922444551852988574066994063946557075237056953000779275126184700411658236694667153314108092704006005182564770531693009275395989282576023831370904779905982844361110053797716827664154565407157529107852480508604458127858825745704757253100873674245343708288602801772222693024232086611305412133970346045665012913756306467282526958539942943089853123640272068961969357863021930768074363152536085004215139874938243808667446337371956889475270985359536801184623300540013099763997841451143836379709934221934330763178662681173004566824755463622298594078964082179562668022830171991931239292465856321863763329418555982741317094504591134354512165196517223330059970660537185929091660212295367933018091717440770458020497875918292309180225748418269619283931876107489972685524957730418356538304092245591276750407130276303412647428883473244510292927309834916496839638529473872656276944939835920587630387185661823970024001284856110146909033147318299048426415735496014598720612443963544715763128859446826401209092977831595561610552972353490490052929553079476956507189902478275417269388343241599257772457073791751581339633229350828070383756999777877261185807498045527944515934469267660307811292475217138186353566393269967664481009224306376295916467299041866919380566625686869014292748645706006904308093836910375975848321502836341689918546406629385041221543657939873979202741366516535305862646192589790435616948845340815052837848416402315510432122563390818573577084856721145398465699680332346596363311489087423431817101129125142745552722768588302729019421041336668390045442444048592857970136857811494795705664745541939470623466020318230683250937050330358387597284639665719510837554393794432950514421325653236645188116053061436275402593822768467272977816701272599209428418180777127166163314229145845348036187723672304881041441024533827766832573961571416727093940151224611183106805737617431131544949911153215862956629150249031396291465010103225663740887966769241869814664196009145724166763942024827375710564870931458271887728463881837861931687177809549639504393354793553103512764661861216805045670222747915545266980319281336104060566076866812492504966173957517672352072823890250313173982612196406935232384367282369586532203538636048771111884854298173456264785842823154222459176589793246537966104928310360307032026094432187762683101094919397421021143112240092138645899189352138955045960231826218923122299230326864889595777659496191042155005041422161844942843870410586326700419023330473976914607793608780075659344135037723415707303970689709719292167343337199018041735641826844608139154279215018837660574419475343040306838302642675945695289491990768058309539809098360794989829487865585928871727288574693456806989449489809398753397685144164997123092704177677287731554699093892265491939297506981564915522932729490724528512151089283399614002200447113206549448308649023848298828137867448528015375514976685429309409555249249480541368641215079833327170125672467849977660451568524892399645373114271746443620144028431033277122077209558281746219302008721949737908987694026592826957032140954109692999411068158269901309187360691218916032035316794504567279475327639863355799717015243068976579211520910777644183017996640829674664102218424110498754401470167080978149354501310675106374082834302229125803082763156936623413449788588663123319226919550950299036724224848218532475633504480853874226435422541627592113221751297605487956488294573818128604158930838859206521593683174052439129942572475348299850894608805080790858125129755371029410802607686372963826475743016560075281183135492057343897969417599394602173677279501191304135560474173184464368675111926384123353806014121337614289760946139641951268444167284623734926650829874288633440913113107905630257339469361401479639995789530616118213509335563993017483072666906624875305459520835198695097653027518308568307093591807284584457731096691705920359520436851284406671969620263638650365516438275391899383529690208642584815464273323512191289059206300635111528721913739107398715268817250358830064149520943502499772080866710353702559739966788214002332472602328373477003037227777694133495000475075156251370479456388321816720680398089638817098481714646947221533687471458433226516673455525396696936703927529252880415266051283913074275565235926293425029559164190048082757111044078804680857213416239537095311176988450426321274219869049117437504281402947854491009566262493474306325857582114098787860505392403936974163702195381124513183158176884035436378018594240140047933339886761523346520255341331421787390680692154320490126741597344001981448256626284075017140067437226836432196009088407043930967946194100719886558634051727406509690819418108079220276596795727565574011109025122165668623435207628311703887592792259486758869119311216519733090911771522248245800506928530622171160236053863949145779620508700593614977118400398831300743263696041079530899795383371706414049243475736549760767018287481536843598697383147518747360679026041060832162323521087834851710537415380428092074671988675585551389690793734983868408369352074601403803210289899261347273831478763325045898653267086062051992697915189014614604614091121447988490030868590923972784819289339314012489701096210411047803128633143581827917750726785434402746089744223526029115211031640339600444492990787994591598836476103600262346024899005600150104070644652509378949513966299446995975300951923629024482486871405281457697043082083793812861038315281574016179051766124238645768037206419371881975699302852401769534036859970380585096131113062039459920997372743629647757200805131879478928585811898863190219084613841745068407248870258611470940209482494417533714631827671845548158322793837642824312493867993014874692070390454002601545420647323399312678952178913432215952394129527192333649896772704265631675631117089796751001671200534213678615054037567920627602697892986703940079348340208284685002486628073003658168969273639757153115222898276230086410819252900486031026634443150239396802168283539997258237207673679631696938343470698022293369184893717960979487762019888486409340305424349252493880256986676264968557288454473466491520920084395258207262855464529915987914005227092668296401311784941827250841738763687816364115567566048024507257265986552730612415524167726209042712810238804988459686955455219515484582111755716924984609880169552617984651064735539123857246593777007945662829964657940762301625678286451186591474683558067713628436931676863186259919977533864833222122356641556685106813679259391014751627991852753878071997192083850189763728910366086467081076597711827220632041423951685793546246510714268467243352724380778820339841546180082848348668756470679052108886896051980565613492117998745741604859570308449433295367864571498704826667739780898405695832844477577486000926758470277782113899709159216475885133356793212268893201325999723459990927153813561194324064010281037513045762621790600442329139680918899274364271334696481370669826034981317923203426092198193562445497345385276672800301573752082100265536156559119423301289007381408003010698796229876781806399318805551540752578967499011321000980652828514685125527865581049173366802072575349282631721237214002146278840265923083594956722088342051716536602254304595273632830383226847654421770524217968942902753946760609410604086870733134505075550014172210441945891617082036629141132570922093580625343486916582020248046237786653472597018217541093824582468571261375759938047131184250026999831818765440431582431856009441600792386333386043798905953160519913992555888431055169171816070482482523311578632230269729688246430944825018336639161326934231694203962351818422023006942801746439783068229115441232652225774873394298128015873680275095515919747120877667790170795192881412211782921295882518945809563755107823166716276264718712124912717319240115155090407683779742498220868120617542381909903993925282014593218919292217706304344959949630298554147706046766951467444434711047251468062962521294598187398481557718446104586912496858839978855250330688778451642547508458720731396826452601038204036961755974466531424921607517979294545646286873625507776445418797510232568655589075129309706855964461627521749918030891413554153311096296115044484594389086657189265161050709714279874347068842219973501490116157224207437236813426932398029638833924532475975361794726716683898658077303801980576296163213578482902298783109832220408482221591833043711864026141315046314964080533339951892752586414943167698477570521332785939302879597358813224961312119020664954641571282099867388031588197917674261075799294084898859638845111846908707466262480683211054929079671074618854055171582490870634447874616758993565264065601204521615466322255019526743787178440512621177198537956874468536361426648002304721282780797646140079807744880977859266724944994066689602633620357034501728807120392674475393263674605278680134317522914897053848417166596347820679493810867658210914825864779070777819429282966040219459073537051480444383697967547218726368485133535330111813585297194755541597692844370680789402364436209803792604076778142027799277782096754658596922175382820220610599428159220401462403911311068935676688276311025798331810385730566324871171164355710446134105416650542522504823009788260153658865446883629805032870560861038639424347978515348732694538014854927808156139424954231419131547376478382774644702789870690213883525884055925200282781749707269783008231577628775889939299997783058991439911283307287951730815192626527163117986311579549499751333560834667981210468397308653652374565404752861566752192569035905397883041508287491820349691455733696476715880802961382753401053252550261083652772429128357591311111973151356470400553504802974158684174613495262446078686447190757756300233299491304587092289530279357700331224101734546614457384430853473421770686025748686643344433946299073142840695182157793648078295613561835162520172532792122444463868404484657942781669006720132602934204849572599662629984947944121518655697677256339938891115435930378172971049490183125384615993135881243676315004377304451580751806475728509689323710625984852648778851480652241083875380134725122341313235337441978152182412683272334808812942331120544971349404317429859996387760185232825230086734084808308456076450044636566134164367431860011643540733492567999891307385816809035910115275578249511546362018055603967490213374282743264947504565522499383495426193072425445564519093730998667799951770520452985373323268663340246513754915695326616664950785435010267394029985741644146838389446103603733090602090221131612856192055229069725859539483050448178136883135447668442628706089529857525371845264478161112730052239052101122792959098878383517944735655228374162616671193075755307600457314381189213233881574363196982220780094291613248906910155816395492576384345596121433844263719433784796126223973056914942060230593569610453854989010567374879583446005273177037805923614581361084790273808565204434199970884614117782663467309302979656141328749852112599852083809033743448440867594474636482846192663193245989290371957088626834674788734069256085814513214069709850673541302479078042213608797248645003995591370156292551058049323903473641274040811003013706844352528683300470560350922641888652944656606771030640379396191186403995735814418076442050994230383998272202025374912555595205908254114479817807699561344572911761733932091857501717898991671851805911149990466721372527893202319846170976835799138427869401536513454417506187211440075628573094142724897022160150057297661659387162455463322551572549606334448178096767099894579340361027111479410663847523308953273445385558383179213058192024506508045227748590890148933640973643746467576665488604337531946558423426466827556818026305349897783678189210412077097663135729754028844913968936348000657009767100185310719583102851295700702498852171674386956856367534224807665647131882647973991793172199230057152546545657185178193507148530934039765459987021602911343271298710095564813826556315339961105210110754557099503842859273355775388014890785957443917182864118971636034617100149817470537322047962591391811547284388712574121148000921650597964068774839243185504056571995403106160927427666092597902732054250580645527356485871401068680803225454835448161139440355670391263568390133146187058685980199891239260815975162481140861113063002438011325289262795443600520499991968893002305294994555226797766575027432605855811697905691390125853791520412645528033216479971299344197061301484869023544175833835775534261516694519874311587813127778079208076907577915510923498933451462278700264621806780494567018710673505409431576405680796546739408919472121924278337988778191198214863876403663264099270873657727920614056700242153872923223769553194618744618489809602221046209865966407412457933209315689597870600409823862371149645948563757149525102474240149452577334590177256826690059662954693633288044229507818905021086730009318426683774823396344883958336262329348581189599462372252604256853418990583040924797793738230920732858078939868920363484289275992378109953940829285381590585912654250691604488312605620885056594693847268543018544779601105801719516036526964479831772719661687141867205584863886397615102984118371759299095277377483583371837118797651538063923679888632306532010512433477529647211878885197127295272139943032958907450813490307287896995781219625366690194604756654870210803760918611410562319843247761835420301462971715261422441722527409069303808685332012675836085597376873358283492577472491404715394450066701033582010490430510360906386566371720183481553845527734670744327579103284110304487796889934376487690383944016953828028825278226757349921374922735356310212699672266717446027029751785655905092128319553352208482966334719061674901753700603322428914044813333659468473696890970591608811207822915642089019663807279276454688923404732814872900296241161141000279437067915914658383036708330614998432325755902000923071725667396938237713610371077469661064981609478366598896892509864823817504197703414910619925673139920473273883663265979242953488359174015161478745662416819408538770081588281099539296583296087681197359530964910449680371265239990466839769364171929084138874338642013352965261858637077774677742424757087054950920825616969844399296732417608930623938089240122992598578807444147327511627209492881828545631452897362459989879651625298229069476767892565787755646991231624608766139373736033248189042298686185945200406983140981514615688263657614994346738912576016240808900686130915889352360014941961231700135049826938032176314681712563779985159527266031171266187879425467080257319661941887145199878667414829357706239071619428122084787262243646278035013669237282928486305523221998141428176646414795847165093807626726620137664038254673819371165112986568912845274261487947241411083817947520674915013546290550341869469051569877806736046908606234216005077309425858647868308426574737592531445428162574200482520583528130755053143804779932566482277896812976392004069731765256652927751313675443949372106594464981960752605159146277180429044792018442965461484830924854111903901580281772962501352389633906553410706238090292447047611965937681230190869715128306407629269244499878811526974211381945330839605071550654724569071220858594640099741862454325162888167337922901022297828102579644542978079082301399568906346505525995588539701257065164935874469966623734767518854957504927583234312284490806255358996197277147888256096771539473103413579614176432745294885585956980039228315743727952690185023151879406933220112066231202797184084642789133176863912673123848580280880162998375402706252038310967507275440745300546103167037664545782653413702464923470521459417516652131058836267447722914159963847166861497229026287404884639837490190628591512084417716570449445570386765512688278773106974199169868368348114619852094893500131127714721491477781309108714058295117673528595482164414375629638633824154227473203692943345891099150147198678793695290503204492630238175798215072963036948723782407673376283628947160820948477608854326391683991062380914214254803895798655456327915214846065598261505153880578929113037329684428620946207362852557380047752761674001449603093725483215476857347246019311783266074965398411079636182132466153880228674692653507329579292154655801362811218318949441258209316720084304026200322759089209006158254677712787878041725538769916945304034504730717924346246702055429201746467199889917530984691957484620730295332957449748304639921785689128852832219471499601816257844652816172881530540171498516504067317475106681396609254403978409042844288636982798261971487523775754308832651711995025069944475137670450191918328558150593593866567465837132155003891197873063705681500583685095757659850972717129990435152615604447728774017791076240658781678325257485583699801263896781937030948803849504156983672044946893559347800496434958155046816794899933700026849360351718610230995051859655728404712508313660215180762523895331628313604763772768732155900180954070742943506652761243470876467679575499493063334120365098189036414884400881732190585327520824541137157358632617795899875407168115160626835807377696572286118681735275533161966357027082957845373487851076084671296039874779547614148405820756315939934089490477808779802969828126837807048114921378626636757456221880285270174978245535798206125046506562612029425208384415267376628948912849040916723435236214563676365194322559347662829639596317322367178111091070571311606870515551375203500521396686819239775636645227641412499805831629960035668234808295680785262785919014759029644330472521633436049930505849538690945607085633122415588155228077017697775749078334663147591077549544567088638995439859667531175798140117098598237845187556268712563414106438990884777509491036811120620410322160983886808792066296686400839618684356847875808695576305595457370045492685485937936811901324073056157277660159692616554641344127402511898480982398708906507779561783169610490218916130455611102510947291462822324607585171198756202664195431050602476497125116352693065432184856333982034644565480084429375925473328270975354741632719282819224627881985942689753639903874768647261390366882944126162672464405634614297856699558678467813054102441739679410336601283482338091944963174187733236787302359139239311955981892025248599284145410731728638748780059529651132171553666431412710778731996943881518075693556165011061401269390570877507044795659153509917400167429217297252968950889424867153594319598665707159671392674443238152020025918470369242934658527232485132323398435673921245149129493940113873751781262432590139020716992567960893560275283394332380038753882885456581455297903477149027850420097272165116241896723577110935491766272372086831735940470209766606071988614288383368197231532834537279147354661199962501768482337940465523678260533837074281758157318885364301287831802525875269729271510883951231215062193459035981791947251735802306169955947267472204093739729647567709684078639289357698181566318324588680095554438919419296631947248382353502562373476383912170970858233409396705889271663905840215047140155123998457435276853709840177615120481909285739015061359772379046608419313262099229509760862163578022856236600789411045783988930506787022851620111114661543923502137698697919301297851912094395596225410844389525064675087764740854056149855921730736075010109702807447049723094622894835639016658273458959414840041327149111109248449630152266048491717520631953293019300067478970280293369503693189959466032575421700023238432155619154132188868786377651141983590967242551314998723327008549753400925843279268285787332824722624532257057748054656006343310885806581566478121459499997804085379140862588373320308709871251816089775302486311130886066439245431201962120610578099196699294025574211029103957708089194424051908323378460056833714865701920780180287887828206875143395241546822162422399092196093150512260397589054212574936779805858226054196010112081852600802387246809479946034425201530397473314417988590813172083361121607314649431586358389822927688964205080211803035475505407837286995633514568294404202918100418576181573083877322076524315614124979664214692331671212423721834913465399688555537939919584059970105953331422262018788567192488706047779723218265162183805836764847673649724651527121902662352368418719088012748161790107383426418779334920758620171819334413543433039416776271304726472519835418892976852938930224821905078714801026648611122124889720954065323666364515464331332910321855085724625808516227307249093903488667182529513858056268117689407047621676096586165320804626003739087876087530327313800103298403948502295201360618616617046216222407631700429624876323963811052557488254445553196496902429775993015569583711394189757044371719849591820666237131826021346526812856020116834415232867275966355781849649314646134523433503757314439870640596093648647459783388924492804600060832629590291565582748561389293720963438864393000625440437126916057304886327218188353495730448323380947973407426984508582304962364162492891474881955335367973621899510019494865361700311320528041598063473883142742251210226531675390977086305138523272695286134368868796464172947588331156098643857462075996623867149809577709546068995909949062694266128986257018658380116312454871775450937657609742840410818132705410290996057288528851558881577553167210806828116172354319288184847616641329612649050186339762058075215795130175835556330441666823934079940780397913962514983970828915229518443016356480080132635710642908676776106444269595854068956884058067668089722262914158501229722891905911836355057212621118225330345260108770332903629879529297204640126227161370646697114836780827383643318381927283933790189613705022168245355556413875994586878558582385415242647204978321320795320063134120241116562149543096626465032098975932489157848255088444185486080515433812958788119353020538120198801135647996414590317455455674463478679329059299261675935251548767255920930235455873022676051438505924288720089360354668781478545870956264621842186926771121374234945684090581044795550455420207159328501021790381128645708898283376251900506371197739807287070886132811448462964873201192065977757478583942333304014131381992448455480116037622531481569026814625259062006285487161257980303613142030758312658521914709216943454960721331820582690276895957334188315669594188302953825869517929599748243886394118375679146648629469117935595401809822859948736159706528793186897973254343430084991877751641018594188375446722522921199296989838156706527177673748396810798957667536572648180940778026217526849260017140212194601297415357339822814479410283128335325688453869544448228954389151489532534618252350132789688435154571941113025129640166827721986150600617329344198720895260331409214906507221998286727483603190245618185553528404064130310896189338875056675458951415292636288685968065457457233479354266226293713796074509906455128698853785962936457395451749238337180266647953149581443352198502434669581965182882622817597701330061705358304214911000721013672666963841216997870722718311807318312904585419191351330163927994540747809264071038671277659116158167381715866522719230641353087656716695840290389226812966481778278805097183558521941023909775188988536888980259122643873924868878375984727063307042832719615643015336841083636004631072460215890770586623029663203916712485716559788130929550062993869270037560751362835643416354676618904842953570832918079454856621502954200019994810274762579505754113698563789604124504612395075910890120974785800860382818106342855810176889356045579020538267414348761063594391003472445269930799924363986481838322696137897654785746137839991747616019266995285965471183842356843582602964798289277974401444164131888922258726003443790494998583491368020500227735393795266429796927658437637221431784380143339966472188034500848721745777692487782706842744305297792611925764845688198154527136166336720236311297244665230837235933389197381808367070105616889857625943481970670281025926196302380214003360822026150303716511549426784082913680082067028804965614274779726716199952390513966213725426577819285937848475859998788850353727983438736538532007941889523055869149518430939333439795929204940700522602719180881848315755116500062707195692701746952838830985760671103316103258366695926043240331513934288372859111066663636753024760770486901316343789821894332270008253534220477380296951066654444957265724750789546023981147441696624241949549434139459865631178956568663167571080494671915982900570672956986922198580009066352157675790194082426851278458725309434741697847998422110622648055367239401953386950861627700222193706452565015689457922376068656338066537820093216469548749542324491634576033724260849080853598075432003752927062723145108074276561636156837480148102895013134968593638833915079266862216524480757273010251557537384817416048496842111314822016652737441605900913571377407347903484951054534832686632168802936954624474875337806045507697341818823788382047658469166600152415478930650310636189216639289064083993818622849824052282696961771448506343279772960942616672266468123292336900861983469820788337993407809049790489047439430167940108946213648171019388449170387588701937130067230679517447791026642960293759324346696436863478370623727503514915816948721361803280672055418640932584312080212201658369374113964948388473366253750879464037277408227137915948700078455845080530475475807651260979530250446189421701581289193015450425841917990064098531009827364450917203145233294215879817520114563657048939910490996744355996572571112864517331350563981663208724864447885091279515786168321032681765575927961749630365529711993602597169835011889116392702743193692870643967302428323486333983307469750985021156054644421894899970673368104799608438695848149940101588850688336009503331197384734591993723933533176708205046693911971157831826160106176684543471690356372003125688473493167927888446642825877304204401672599237937983508427147027953865551404614693813522233406996957262661095498737128698072469092109146794089340120534875397154294600910503848925551262920231626867120078994156696548273201444654715107373939882208246996681818101103848143101913366751034953906562453418150566202291315015180390132902532093410108806775005078354053746263406170079419834748564358739797778071571019170528269732564230250957537736366016193078213392554002649167802710574300734579076611939970028980876810721473874093217228155433846696295019396326255267450005252417453171023633281500658958328740407414207218929540664133090456358898799683577533859302568311315336142488204405414179445052775706090307211114917445116032631949889829475275731164611515458819679611383024027380430736699119727708054900759878354962237996544742192246277047429693569303170383585937254798942842582725258160541579453735880100700635183141809951877185423399350402963500530816122981689901906717327572070164779015475300308733690708190257033671805590276709506009529110898430019543493025721082659151062968169658038890092920739696144007146033519455679069231885772524089295659900753553252848965135665051278728579819966465985512248713607876174455643412302168819858720768757983243723099197897412515205391346703878333922259671046728927596826737713252901779899316012625064699941125706775750196113794676674136300071823576175151260608369325650518947316241366706143384661722081683514929254981358734163764545010908292828254647501652605575428212944814777445910076346846495370613910304994739393366484590834726807742046392128053506521031941867531045233635115216259049421467558554596560939695485243948816373445421067315190592319578970624880102884050386129176270567892819248155310433935687346851274528501410614328034714449474933157376482350036434350690999103586265578809723847231388819624129476016546638497893575776204125192614329587566164841489022710273849379430056161453533151786279748477524795273172654767743666472393813200962889354999136108572320677392617091241133022688476348129109108313046912417080354435562854191646790627518358451811554665394587100883196797721235828542407569656902886565902852825411432034454236764652462383510202943225436266277649497157141452437610460892392930025123146070924908036995778535756975193607505001135737622435673371896649225930919309092865343928872699501358558353712031665528228033286527271964709428852283580447087691852271719020163685293631386211000097356589001991636544240922753049168244209209343220416495548529488487818373807396268882428318801988731368393452641891294208530988760078953396028779845269420020862335588055227295012025157905883093431907333678418106362332820953690362648224475920472551226066416577668310729025130186736441157383552088828629098964638230047000903245606490672472947592556059603366057918587713989992862713383816904254426728015629714778038835486803690878850468377364045147285496535132909382222372691816636206492372159178174468445648670251044027014249704207347836665118087707037129293052024269979537861146402324855653815277946516629006391078577909472919171047484913301636639199277311481647344077719770945698349926482128054571302883147467854676581038047893399625339162314699252886052679063994774186001915543198492111769856617372925854878515531259964314368056291200613523145044766801243657885940386356801648152022928162021680310303655502463683413231126585045381666059620041961225520559841008813108875969679600437957916507856697052368220810734772117867357875722405199290570738208702918804484771585525313169836181203461243001172730788211929050485623519921688027349388606744078552524441272988432124823244586755924695171001566590994124237610702283554023581306409515492483176511505617986670144706722043104021799102555170897304696443898977424516216949437599614616850344335322323704888608057465402783935383126105515268291598472975307002826691823564714597185342762209259630848063596316860076256776384026719264365176287877994527278771821511760574485246035071269377151376353753371825453664342106881888397755673257731112950956297504919795624451242389357809498826112031428026575944406486019003493112097315777056440055771310319133478997990980353435437423319708674431470346274342361119889428804936742367691821888123441042054900093858304647695792917487165559509944780715733134312743799275642301575079849940879893754059454355425378537487941762416246507510777344852557919017237359038066704485551450742276346896690531007436378312523006963029952742610102034207904924745464261934160194420724644989395422714028530758124535524131116120364153440251767024465190285793468939184744993670531097291282991032539869577224548031136830280738918930263144303967413185171214734234407937061085020039960718364722900544853477836314435111695110878901629377496550062655205515736468117121875511335128666683870792221282736569928549378635040833089267743541140644831674861740376620922202616210084563361515687128886147128064875068799329552959595727620549053179564921868492696250031505837377379494119016149711033026111697976894518617142579623340565511564338718068504059376007959642268191844485823891661724421020056841087292746530937223849263349009050750109372853981248489304722958714184308075444588665323791269620866144630777771224974924824602333048445311859351518068859315377912021258179920069893741431338262203815135851323661293054731445238333597227215076382033997701782708869267386698618404209290111789181565567663331603815352185229975053409184867269797027758224439839432967475990685461229188058002862104112650323181620924176870574590779982003104302743456082457201774798283647819418645474505418772953715588722342348893235495076035399167524479136442400998223441389060409826335067070867989467430606899275214787708189530791338536643523287305504988607716068217415448639412190882435916889398865730524957624494365456421331452566005484042084756894684393995630268694769085965200876631687796260937132078858249602121118383664521030033709170778484044224794263976573381631738934422836963724707405799901716741265702054992975428408296424634062643176349567857884109753628546934417774573488544781658054974066329936655702417626381635076395119908167421433236624587901619723220685653724228470537426198414712966892000854654094802599653386451590398227032633956287884002171460950717762598279300140839583843689272597239289960190431804478742407586377206793595335498608877317398668816773492142786409000888733213911222990699924383253488984921459850594525166896973655492469842524244729337711380270207294249452568043125800313662647668743815795533050156782086805961888532252169948014370348279471094326618847991639323425376853805497692349414694202639599985354645014738087249084229555053408197733317805498255159289508141179877852086390854375095759749801399091905546154349538362338748512172608721425024547757603994251348331517057871461522489245517474826538843645293647596498438863981388159090653604471681978281098331254373842657163978922428995660906320187042813332565380022527958725617133082595888097582286826288845119624398190328681750069758107908300911883089691452325273385057608539580584575224433134610325514725868897433274757878631201226966531006020496633010401773778859983337491671514450427548219041313627360985304274505994292572050983061346816773926488536630027979555575055828392879276590100405410051148385070108576836447127989114113876789955518858282890338237554043941554380170074933700011151431632804993218905780610962407732379324428184952190767956306907636257677573213592915029012167002095978225735968128121763588476337130856867583754402160759816889612871092527181598713225951315732554856668910961181503954929484559754329666365005331591850481574912797983693638750203496432719200626719659906614684335131966943012666453150229549871744385244558319546209823231099571286835167773398724055379767721950053171727092416323851263989444936596404420835937539188875726500992847181740527278733409314054920560720014592899142863049911559360493430826684302672070337210774770328107529041854960859279215788501692687443633272347374684166315781168604985883542149809531398453117051579855110598999857499617405540439480376590690317518726922704777482167475681445278440166401364941723560590035395511615023730661980285050350698666659277589817419042333775705697854780090076659736983968068963219735506913753213902982983208171073130105625490790701776278955978388532165095380631313423930736919707583710398681125155423766350299087184515871459541487503093624244358898133703751850427584605681322428335035679636111998304982995865516793745118291778416945225829556686899886713451999532311279587880243378242073168129604137879232261628085465877383885167786106910031547263719581477017105543082635047053345686935754885643215362837887782132260987286765745166264500634828688721869492811597443747023580899753066721981357558768413768820224491910679497379453066429797953463611005195537902240453370579470460676032424235046651837863896045629723415793143758444208057683347340241838545925853028477313510637258547280793835725448364191708635120318632643903488951309327964995205108571820774540640359103432977432129563933871869513183415471297404134128719401871805521632533761071268984044484399944530405544026301532478173242442964366385398060091099525382779927251363009883849270735692825862251249444351351532434261081460230685929706064983008291845506598161807406277328351928042760764786993241401812754207952636787555470028797622002234125034376808082091616973819143474103979482878830353853926762052075016810792914074752888264377993333570446419630222819608950867117511245981134083958001500867607977103613666543669248340128608255729942864191339645281512115300934064580332543245025038752197700096072417808085142448715810821726327803273098181938850396132060853021835670357317406502328710342797748332201888928303049162967966803306250951961610220722458955456348723766919840580753937493542884174173770164539907708435587671028310111769036299113536803823974669090300218920246288335264165337628096202902973969705413922765093024776035353021608615185023585902266686835585867471893601685514356507130223963043666402008357267493076894818418841996951374919882702402204803260469613165870842060562693959017817916842755510468823105841922869137177876567455965835287834597399999605875481641870902063760605735536979165024632448488744667602005081946203828330620311766176214725929494705044433444194561027596944431394777607611840120237884863307640914280044330040338318573780788333432772511849572786878574881521010087540958918321053565879521867707090942617718176618087106633504814606449911217931009073271849098508397683624904689411746017549343733474890517363861681589349536072192815345782849866444942247197397673894168124971695897999278035704931215581680785144974524042450844250988560889809488156546791639925333652616502777540240387213569754481905844935760553652495778928228484012942259693691611411480012003666169777178547935473001303139034805282215383834496582416382772240536107679901235121773485618741674626971210532930796563583004557479857896308280473501650976480113907975471253276317745962616353632839694807443771300925539451893316520813094639454417834560307418878670938854504673006295291568722142822192435520053044072770467537002737414665410509360059493597049984609662633186976684307847111193045048253566127964957606585993276218917338554710092328920725945171098464604963572843507919191307132611246425026783656642620122362321828102581888102108554955435243421450556004528973760155008663918123940137940984789362772947775703127042801643990751117955938443542591570413716989081323271414840654889832832481828615274443080450868829245174258470291055672274074984872147604369546519556410648985275139580935642630018980948621679362552034275740441162501372990956234220001612264444348236211922921820431996319301150553321821577314875179307627755572675759961204899625865148857370625870653254253713545518074877620559408340078309955633342256483782238069767358821819504210718888874798619856631170262605545712171909446657622826347360630087779947753961968385307806868477360595212399071797428263266714779906003225204229902356055776742643447067137304454462743745142521760203707880710653362402503711568580600677120922966097185846267880421052518314949764338050984993942291850875479893308549588299457635457414636671198649450248117208410807976357036952758473873049828441021160653124381866074668369659523114320153078872896204656011678419035086021262455063080101820535727487147534734249440714055668764483679014515663379853457243142543482747038842381649729809544724021947840791122805670345191848210561411279465703648222055090327765170374130148480496774630317723141204277277652382073283201442232174884549366207972827599377508682709194975947268064595375850835153992889171408509979178749996675139897922204573243470675666147318230111334239056850128077700827008027069554452091996024095391632177683440190697243532792700690766528882409944168062988561625040118610414188670043172184366531105243542431100936431899152931861562206172492259774136012399594428702440331057362770361451621608674333718205049643319805310799470245414756017904304485138634265616070792463416766690187359556684871825182282742322588165324821900972473172376770828350277640109892558954319233642903622174207917550051011463687803041363771003855055178646527686829041509029608458609044901492691625407597779444274840887453174772025476075219727427625160905695590956151639756159847423969058263040846123410898987501955228362348366029096334424801610933052545786595780460069448375115793630668809269023816219365930206619794394594435661701185276704796437037891692243145745060603539013565586815292363172117679426577586160940347654388121706201226215412356418814137244186557161078050405652429700582086520271796725162126381804367144912460647102052752275682038580057319414937673291718390568372812113942491013656036782658267023441249635239716495805894858811662862196308013629486167580513125357560135241187924592188326004025985512337327648846551577617111261367616703440690144881955824781485113457811897983130319396289145205870924194004876921005590257980825401688218794663054167827252769476141713643674444312518164128164546568877635092200081330345525127216267081206046126624555965966693468806713407774945941445942795266381634926577480982161452820294395640122635876768935851598201248542258057006293888405340987133403500408521445527858974946894703915930558152889198864734414338974782868614026184239011133729845284217109190091064405538852717368359962026534641073053091537439051043731521435213286624121672790828930951571336526282517341579570017078205192322208109822921467678811242912967018406072691378059450592294344294140845396747643778441697726637575116309070475586904729369484157228437070516079780843400616672029517900064681609002957480773566954589211504306642062214556015172123917708501494424625853157794222473482300547937734945680894390832056378120813039623131036461828185062498616996413688091682275625491202268416544416379177587956193146522589074508527998394266618059243236603276923934105093131543856989741950965959861936333031282960822105707685289392993525601119276133341759929140476968546313129592870401769714944301859348287962415657823163626851129131883311173815604601579147663409711648490351345698642290080037702514796445651266061301284965039553812457616092825971068084201538044519143604691987276682876721102998037907008342618941778672979922249302877972492670623174807461044986999285037853211948983928864926163298565709940765683231392925351210936386450055022950373207392410697986141883778461420146654173609391500498952490176873626848164687588233971327767381827644783851330106343649123678015250262600049889851883117279613349880065695847682845405223833501204111736626861053043963725427740748839885069628918214941390039739920800596924625380686562368935193267838634438818666578356041785991756061800569781749632507845544695645362791345974348444977382588356056961409210294447439338100035494664872752788098485055676399144003913807597613574406481509849561812668166271473384932288540985421325832611949840681875383274150816693532349487805332553069124010026296660834839998512702838171258221461638000487361817801212844825139665496567438690834155584344234986428878597752767402901922438590424937482673159082423214992229471469229303482074703735057156949917250167994545280466581580802947874184609762499218408872932113775931313919995508474171691475209701690957971064036265345230190319740796397478767035561296234225299232224053294447063649261007866071477042502951739665445795459052394832334877577747228210292695009931046785441339018080285941175743711048018124671341067731921629529350181145526296973506523221486744891262374476619948428492297805120152547734620190382871812112393429631143112717830868392139363863317479789256723363493854552777783559913813746332519782809498142459143621779064261170822003829018643572459837213615182264254197328031991461740927934643309979158861105620625342255514204555695381946428332416550449650626827050010338371450920204183784415352506268102524139453007646261290705435436536178823185063163452701501467932898104791636464251476309115425588009100385987426039556430319868112438335070387366497402079078281492707609729090124741425614941815684720926631934510826326610920177799087273980430078238542825964025983603548502509855339405405086550414727859953423964998682180123168294428670434237303058332915441091363988629993783935909196782751940416291427235737632817254922840243542109900535056676059035646080962371628381509352644240624868917203841582341911219525096305527040461510788210268063495875304059869087834889845401593939893216726617937969180057372035262553150112951961906626855313757995369818919862022730933800030294404135885982928771402646918706556090881243701215470589486313969838199346113062116884181781573667927943301116900422806371240558767847497238623417856332672072611502620486112987297310195009764708857930055505332577908180858807516730939305884963345039923665387837669020574147018136518647905941154704215931573741449419253937831977908725056333981871794519036305088374185086619968751315649986670326427972330642860865177441786200391371959495584700043334077785543853346447548121729082055832089161293152570932666709223099252261039525276461969247247172713936713374685762512457784843751102294990421618233897028676853758866681477562218875491132202299723377932905470328686503574428637976984310403723803880927438396295311534195122895368880370668282306257039276913053955597354565792755171271274493756491313165355161984023920742080623239705218010224798575708617165519350281245640879673455537848726639403029587330568767154062386042888329593751876034797645938150077824337971496847369067432803162864475911342628532085875844816868347995321329900375384748846069445799168031669146299278811684512822499712599193021619888684527602464080755033833420981925098207991215239644427943538572266049202378236899614392068720632119215408488342762726018185185381043788460963117305322208981981805723343832080635079232268198137510770587070532840165522267913991296001427805385448687397587482545374957381008734466937922638974502060545869239187684452103424978246748792314792662695062052060457863384694201960014533762145630338689343934833593996548539925032048817570505899461530214949300915236937612572005102308540893848403383551617207615356140383578492581937407038789809753371758902760645200044860512139120812466244070368751799735497769549886200425115980075385325350742227763911037245848347201709054473233931376170569969886135380550410031901126780473468963037911997309484136167525374416896169788090443505245349842744847975778459014568604905852416037934312911039149880059223699616954644575933187167077542987426371081566090472878074180846602021161163691043421025349281064288107056509600584294013367785553557177469798716924302609770492059579786119196780551859141305759683906227739944711811048051634305602057951170076444799478454162597329888708516172832423105413665915143292227147788356166956780833660208012686299213529458545877097231020375741076131568622656743160788673426222680384960375001032596353425042592612938372930656551675164229593523161605989689354001509280077481584247517657585607667054108297028297100072398423910688617646257861716410095732534123458790647468696395783204629828153599089986308799796003145413304797408292267135278118824735491335759337964817803331446483251793786197760239611599377357680686181843096373775623806274838141333168861386306700326369419591832511926984747577300478977605006296415186335074414810625979923050615546462122806500090521068094040043776483546334426043719480767942116071758303576895308509933300607247286554949530087599179178312947444069153532704491383787376562627395512917615908027982407292812435388112651681626721301530524484021859898665355529015542430299316162807654259254821125780198977293990823919393319736056142411619988836590925370412548160556784486912277642772303628183667652070693222094057617770487220964299512399619733047800743648907709856585727767629220550569827252350251017912634383805504937775801090337414731912253907108417950014945066146930051842843187958016121403375079050006033130832801638701670800766270115135738794570970194968543569508215122096598532438599937806070086634292871313287566701453354500234996156118507905804245526303636767204394138624044059557548614728282425189129598901823106703760300054511621694807500702902710920406914015157026457977819847985994965837558924763490837701839480261549075298664326288809214775817142273438177433216177005548140738047029195220931663485228106307688736653302357706225055990398325741195750212258354517826049424599435591657268642843077593301726741672143149398545535445634903954218573324415824490214856460062162975699491006604704137180388233608957642867285856493865163698520169029554132266648033766034157309400274607764099548182671138362853981869745739263893272672148025921428999847560919430110293486582878446421900040751827114564995814512674489198873364224392287567817578635244856705284670823271294993384121232373153300736611826544727031195226453508477862574188591064417154355062343841750082507169530507736259364935285051964581126775173059647211219939121634833946270199766449010703162962446844127679122437043706791149047694581235836522824512688886234221287458423669842942502628405914249518290077396420739263909102201551476683833598978969537383026775143760938639959980559936987729722673378019531457366771010162804728458808200592374498169280655199880907665037582161710654976466515531886343015235718427739222826503920364036236806742831624008379110312028246912634244197725740659116676036993069105438369962818055450374761972969233977174685409171809569652630260302982240817413815849832319262149704290579407502797699987016124997769632636229537691275621937224658289117297538852177553593446409665514631671467307228283756380139187988474880718847952780895275849024206674410002089867394268453331572249764987857124397499007979976283743558582718029447801478436088733120968396245243975833730612969225527685244801203772883743697285069507653343135181887992094792761927304791727803958836631402548280469333287852860577936626258829313902660847627244316380216508070119379138427378029036566730980670083528877252982151876197212171798079574599297588182484410393240603589102452480677823541958597630472555638473270349714084956954840453246895622616256360211909894667079602117548036428717875661198199708097255472281941550277362538097811003032003783896542052154764176214785456604520048545728449872881742182658812489183125343968737016537040594049735138149532204440563370697272614071229452359997388037453002262462884599239707510313758083785059815291220179400310705374214956623187304519785239512953727783249224617448985074394665727318478464131417397570393286090532783844792079330580224321628089815767591537477892628423873418938945106333599019742580335961964908300100339865803420585485616108640926206866472122658955870179844255401126720873130136009352948589080452670233254490798223427088633012698923671648261799311061080475074142188963684068129662489962222962324816546013579160246470999635350246374575872799749679592365333445038066371028383001848354082821602690136143584385721528126912904123075820220687918858493548404717432596883969337586164245817620452001420484184846078411588735559726832100852551657676776594316814886080636439428800544971304508122835775872069752113349280074456983442565895766554626684832923343140378074414261186240326517757418678548795378070058738551311963069769633784394553387537444343996296055527715197100605692324754258827797400003564312283947527517529583545003172663998854691397824622764250371662510725570997909826869243700106493660856500639007613624360813457481537320366604691847466973401232822537502513660290949224660568094697277947100070854656457143273451784969179945746837480129909835185155276896567659592703472495166026098148740387134644824504919578850405415958372643871325299774396241546764362537904406735754333088160220052041155540381792515769331543251214098851929340234906919375743840899523891871569453008671515292342157207935443320267317719083053294284226948005923640386943191760126995642591516377726167344768322913785695348491311547407523092789643028032875462146376600194692473112347050143797062020905935233593238655584817830833898851328887628580631921234357981192339850153914364473274630330638543096229329633646133547531374348910599113378459826219302300443733508953449987257908310984077527501830594737090906631199158451433114125276481952424222382236324178271686406585228101390901267338810340315806718546046943730002179813898782334553521232759500604176257083384135114788942413668992340638185306760107718161814330680014043061978515829264666957149692326917852665477977365741778699103405353733571497870567675268805759421137681090470875541027738990959509245026188028580068935118528479864899513990754118067496827678108229125123392511440823017669892805613434030757427033036993469753323034737056332178915785504559336373186551463599232101972171475704990188728288123693385107298395605090162694466606731326619084078047830834022415231111859380721241412815014712923023845880570670815345079013134170915551339938431727001142624526298783156760111614702480150627020870554927356417295265067102512172051508435874189016914601681785525144280806078759586635329433800763908386005083508167372737954375712671182315867428602546455498650005626942136289546180644054384533629042377766264025389166669850096673418427283219883949199491035283682609254484480044293753620885308832610092821495256143910618017519109686335208199492315226451563012665211242878734339838428814232813694469548808109101015789243259116714769734533821026230325663156745038537284578654918238868518355675143742071345433419650933936359859017522030185637698162512314227276857057826966017908837062192541354422576118006739427604572846657251911563803275669535918087220536396514531661877620578647149769164673390946792354645307728235774273589993297977087004335835636393363974128801735104399188133038312608436950955053272689061446791985112154864608218953939015801597836096900858757513667776524076424032159467815419283761653541962058534552662877315988516386479030171922436500898516010796226733124737966821437559587573861342269869965147810789257269091917450775808243151679069762053735467799964036908659077066917062102006308121020912349963346745171151710580390920971764435210030703016228791277761109984958511661472217078924754662132141955583215712553846474694582069444667822060243845786636320054797181943109937875975848311538717642697921310553667481879184569188999299219445267651313998600859749404373992782329415074783803363295123601853419789417311660666984656090469187675443119651768807115950156225334184964887687836982061970167029252612053243322983303843194772836187607206409770303684851012848097411301596955698480028334638861738790301421535169510936719098370705531315316372212953303638151559578440299604546906552073584655952880480957331059219683561405867949991438396110883681664228601311891290417233594510770006308537148603345493558287973064288042289596592026943018512277063016472546635188200996171625040685538985470127433759095512352054361214824113525813977989232788146083609910253473725149118395709148457448439864646452300567638566680341880497567287344100268473241344030075419806563077453008605920672119208569586510544146428131309641761482981750793758349285497492098591750709284383376254018476869667439868409883686261760327903435281314592845907385046676245227478385253068140900960348330672508069446768727486433944053412734834981367205440657523410590537447600494401302245657210257038273426194681468257095776066359425089994662977640900257408195107609301855942487752557862930756887033985865348623252090117314270659474383318187839755386440285723563085431265667477529797812558214208642215677796176415297776228540090928997445304683375110538085522987229437388794940141217875662562101930702267081590409363145425235920200298156408297476533182566361383471134788939268377422298834535779140829185976970771045425835650471714136878760469879849590035623691027740416123460765739427871594469614221277186934217864930229587542730085247909815997521838280413515737950168203595141950057822021289743030349145156224449752556183998157443784643294175890012496671679262073266848975996073006683610018303395111280452816907529806607051124875357383677000428501322081945220230248380397045646027027994095122843551887956416595755344252610741720934557037191892031727365282121099154011076481044058930153036499451160370898114128777152169759201808323401157833107951197259312732381770351876248476247529440175140437029667503686933217540125449229152958754292936788102339385538376749195848140044639248408579808270109674226024271080292766323511225469685010908937411745266903899588484992960085294361108256469333424952879598361606267241047469757119414447361505863185321406690687913433054042434121755486334359899781519770851497281075925246459325887720064204847817625441106055200745417042526188377887914055168226076556024175425896193945696514048192050620710267244924204978010809887922126277905136015889512394391271230729827821317554969259237857490340393025032168955126467711836615872370182582944723154429582553906717529182710149617379679625878325794357212522256249244232791636164620886219674563765432047454444078085270724460174661026973382160188821155555923600106627953542046621875803370128821744347891975817226535106561940065703173814810035467433739246877543325470099080883726247511591542941661020486448341148102508593586360578411885051604520389543644950077164038790293220530390568061523384005261743238915550818334950781747003475445514567162282424909703599599696340171072858368114333032980515147591888416899670898887969468331308734550958554307005408589400628934890002652351298447267712301942826820855369252347914065578284200055477620276323607669695001570428909917154227408942088450275030960270392527826001851885928190964758367875381760950888944073209712650733945889676661362683061472256289138009090864574885610124373715601839597636069449636635193434422517024459446194679795158408759966355896109481445642526427143602596946948516989655465722904961552928311983712122566661002427774293434259104077612527090075758599569597223930496346239916753216054047682669645939050142930496849371446019070037040579494604717429931280438773981577386630377608203990735425453695990156513802475343762272776035906144448345388764908830009493645215172692602356691095530569943085843084239970582493368479992947364778434407881159690008290272223286387547495172259920058936606258946315309073020253009947126879883825879029743842863661048757563193596145645636276610989927516267653044935827276410574470407660090219480241503684586792508463187172866406093303579040491137582068150320160223745307579890763465823209563904154046126156476119502928330305655651645806796427231815097521481420333937846553915467310110898228486355672638142582934637559658782547518584534257733793275304361084275993122008042947295007117035808642104555488812740310991484506777827485174168136575214779345574897948164084494478469437174990687567143611729138159091897314278740179301176745763038241500467576653065855480062125383799975385194521288046733349329911607796527176184935477087606688766026199314242398834959695499152303890867917372141106343522866918398550384912759506786290456362900373023509155793378059377249200154038792284807407008157208945337508001143855102846523857230616675871087206838456751324012535568567937432167588111323453825573015879964274407584874246496835350215608590202223204087806888949541480097952687750891927037908694105244744463292158151169048156161174222899529949701602796290247549623741286383176002673741821602870935522048133882144003565350507521659301274693891825470199051574660598437752800263665453308067887071783511104845833913028259241417725945481146766251951983516783402788353047830523961398225051195681251669500930672363781338482466100258294645672886155642480719704658186774239852865954514446202832913575239179236762663625231595317939711736613673152389016308756472717484643793893613973307015961845726829242490214473357855895429154989181785947113443577768966148885931607543919139713620543110720514290350014663955619220413479634046947030990949701325905163921721649974923495780869240321766364580701374259536687324738308313864291753868818693490714267096679087325737238952292959847771418136925362365680713060039434447681736215550697433531491490633816889606316494706746406903310569538050480993949607396348657746622782682349601804267441991825068160413251212730391078710877286933771296586397200162157350661177859793230337954758519027642591312794585120637274578254904158040452243432541977154549264210097595504054126214626236919133146189344686186291680569498470540281320321895302866001288886416024394356039810176062884026891953245818034989035151309493747016600214922607657149110741748554602664779882237168587677948192944884115498271233695192416832525207011701302266413312507425138394773433031481221759299292122486161393723116636517784583210155415239315266717885683364656250193546483975748517187600012024221567098651903792599728854921267492898740890972268082606527848861653793482142381962331258748863297373568480460728591638018914087362010988694208512501683762996231431482079934921082482664134289644335489704366197163957472833446970359844839910632055037166877538702015262337551694028788012971678618951870108078761930480479672382131789135268181403114421388887297001823734026595091706328153565756901527531389993920949176708267126986696670657844711709516393226106599822470674442014999696632374781106774549261971454304096178394807044781618308968597834484592940333184968265817009574236737738639953440131478686528720664669422419433717708370209244483969537687962494828891877666742547487367872140460622889277043426962257086776860927872289238812320734599303281480964619658724961578365418397500117426678663725833312228940308649667082691883316085369095318113603053074535734448822132347608825254625644584122738672463310764268310064963296773962823683898967350841908630289238194689082154742217622789116406277359982095020994928986244947976662987374909869501383672432172615886637570357147430910624264305867994936708305057022672367911309898636153309138782515364608971851450019411311820735982788281363331217204951505956217609241097398000748279767026875518201469335945000434001052021303258926938017696840983934058799256018890677895086242283118844899364154604032267539502223237379560629484984255765607315685270658641197682968734728870442781794807699128482997695897819236140163980383767949931556553326866055897206060059255226238063535406077403603314737883255987013688904023084472687268350264872742315754906650767987022165225286435298148285944099663376549878178754231571859431589345386244451591093408092180104863653220906129027567240190532226409151024935057327629111208520039064377762880709451570352572803591969785106077566125702364714458099867839204639744312388456494543185726002372646222731172685585490090483683839414911887336151291538318793791590195249241085092789997933015437105115006514848170002092782666729847564021891181924435629227368205288148907946057482410048893091616365138038281448549921198752335822550329105295504222167870909559809094350801909755046044495301636955244224115296357918924266444836698284937125265249136852205963479224467433560481902609133869698699054530372370917313935033050746777567681751113242312592352655851350493837892338912082838181462228104817230209714869022518299256686448781903414038184719375771696096449728555268287689735169213665686839230941449497895159549978183762800000703435900492488449789668159975701913535186458547532725726611169006533786037874025020116922254944536784251996969094713293706861601582555449435391337725967551723014245998109122277031721915358256535823108561962468976649492586751881862615228658079965930899284883126246835793541764348123407319016493352452300306210383171237529509407742116796613184091481138699439300695571645795203221902813925780117082973514998226221160300989238843540627123441901142057145459704639570250491504570392272937581147925873929311013998078479742723528813780209628167835127678184154445946037874772944518443769576140837869448953563310032305118726862319511228124128666344078406248584606188579372284355878260808255442164168690351899088838632795205744840808067706837491182053082537420601350404523559069554523096105387986914841763972360058584137285249084462363067076316491686216893051079374075154898771749621258239724559700325266596237076305967215195076077798016208293180654352266458905368983989163560895755446290547112996944311118056421106683528501270056268366454499265934228138627503888035394737927083047005309051942042090044867431500485460941651545766062764185884129257359527073122117257212036927222170045164584069623154944653244709731577030961101226538860010577324363419675619536610728336447392675115461324149650647735742000516523611180174681920397728172930959215246278875050129217669486145740729566745203310470363277201677777353367838585112933942676418568529979957504033157670417989520606240795406757444570181143912059823799552055859134095240158089274872355199517062186345548828365875362205897456713220485127287276303531480058486374745744408561989368259300088498402829826895125594405735940395503223356178517066951751363350122740339278294467947635896819681467810318138584963147030837176979742399859225329770680038929213357529620318569517445336051484659319363661143936849960995761893442330663326849587560257229166392687574490477106934385919053146408133608439265089314430674201269564241648480935349810928417034630264243843855175938288055055697930839542997329998710294017937059307271834173700933339894519899640652487422761062173144123920193446593382554039553008795906001673124980040933001808481332330256364534632483317455957921911990082090959804080205368151068482783545858774748404986109466267900258362461173176073155490560342700160460861275349282279309680195943711694248794778951196381184426381985005308073924008305884276157702695691479278032222800473878101233609854474038203836031358207785595542532938550871094833972816341439329221498362443177846798001549135718351987799052350797359733666510842600964797993957693043348378412439790085713904642482084461236002920957575918631727455454962932695835519309754395721497537183824579321978548084223932703140615480291505571846209708237135819082152668376503094238692725814528008997426323307850589147546675550362902882154679850706684668637183883613983954434662233468343575143775441550910588135616959957827940088619076691586139450288622925201964216444645322781552824322360105766376144593506066900345179509217134072872809084394797428165843465858441122434660325461251204434725192553134324434887878721352864952119202688269894113947716388378166609243070265519287725830194189616266010156405240777741986505115803711269712669180735446627304181635516830075340469534226472098404286361550549105214150814779315495306995445240809031169556210140802139538144458122670863045249099036212997068937698355805736447188690816217333193086317672166531544707162863737290803364443592914526187628735458416074777100320161381295393714251256484872924176503257069402770015819606204103448656955401744168442431155952550437940992151637154932867268191324121842704176693377400030739069921956701049238238608674748034156380923764504488570332366734992064569911799335622983375273316356630911087468366840078493939076364671142514863424593233699484325829022092814582518555414527101206743076815685464407948085968712801894714024127991901852098012060966413081037281345315919865157529188361730631551327872791085830186788200183968518804137069484117989265017936120360171899240660832331177782156873065522108612751627301381869582106935762586943413886804626904285572239555644070353541497159167225469030452407723031190941201754803061344251300000235728430577212886688580602744555479327635158501261603868700081737926366400511189141510146410115163378352983870426458712318720007600765127755122825939893808624514728257947648716428838195305824246793428602121838642316863214264220687935383361751930875439543274648475154456782843625913368825258006169751676284384529445058436967688952261171479589846851555100278064781795608867920028947959855027743850529799629775732318560936525879134575553688777138666990649065075721267023285427973870962487240667591239791407316452303019964865315760385960331296431153783504002287815661552523551261396362883573815729467934923862736403044187582224338927284865362381126711563042230720178578975171525975162990523857628892431035492773160225198908827862935010286300819443425279742266515534131180815870062026279222483530941844075444357249496898317585156099586714943003045656906398468836708792742178582153905594110881119864722881774220716560291854335600486840805084256149735107478203339861943556047789103265312383418186695166624202068539390354731087689749555965821427792910002444301981530751440742156805520722833637375945495184680895280290510049336768468454524632198203012072885708819403706790987658392275005278882391958279606583780872095087899995454872563157029217293005279910507366491151475069891561612196468347665609646171355403825252487456007496374752836214496307898449870474394712781465212465310580929956961045455778643942022326913330092660796509226593179219183419424186597331315364074215846577210510573912242525754609579847310725484671584295494031193717840559840152139899748588098867136245285779359778918893823099562831823709162964400181903901247304395642947404497633172393232347032844058504256359613150767145759262347087341603027919547846362948391832634712540258485687908593748986912147557098519705648725048464160800143368922243952773142194778181728810108882120512906084329500053456024372784571725084893713627600137916284581566163859806432327181862432130893705935627593720201507383686791487488786346088167116631494400340305731612095884841559186213500144691280842385204617741219344385295983666475085079936709645165528590614205746601327489464635052109827372831030529412359328681240650032224105354880867891607594464757209166406941098593527699547074915591133245161103469791927670121529814295590277826490672506055129533822286252138039080839864818536750229274871060138693251138069816716272428179558021367662255480226263109027468347150291097582758547530156527532656994377238050442517543666959919283821814953576429470523249993765344837793886384650702616387584769602590299212115783961139940157103029058391776148999140200204916926562106958661406489492443574523059425829663885355074396724579800873625020155286160321346237099108606755052345636517178973856572698157102824948541345280714967149967524864011752290643521841956216522339010810792192787256905922926077395375898566227516128445431230611081515024694425411829816492414838020909800648185113330470747982205996842380803288802606579417537569723219812896776281540404618296603958559806936687245840312790660171598217445216874865301422406211066828196946780824909127169227369927423970162216425070756153718811258112759042134920850150430373527275545653425878982787716176551925553041467306173683778546934196388100502252393595767825649263476751717050158271843376215046567880126257580296930625354260529756849980407657438565455617020784267911874692897570702629356866069966091862396941605840070009951719671401541581860269922962160507951018823179021022515627449966966092818283306191624487259076758913522647864854608285536589788078268612425664460551506891161629421515575549659447474339591040647567357789616553374985368611571593326042287263681629212192953736167532956694275036387039907648670453161179066049215544755228053353864871700076092169882595651798992276956573303523471435657362545057812649327164932602748792064492486214595380800046051837491599623576864219570243993113886396811471952080245944109632055626132320589923128566867126934937286367063199216217890517570503637264893480241570110663385503758844681360989964776243086731568401742771130394594965667345840086074387737464467587507217173525949959944726854840682094422392343388105122192888180439407696305433847902637679492194768405618502442412045422089219567925588894277527692492314414870658613772457363507019769388803274038742420141009787751024202645419930465604777146572169230448166109792045944642520439593741009954149221952075328238997026604066457246578177282064206500248188365694739361099998646891639998407307119362312815882707513837247157541804847239893426837009256507090223289385911550287026764374428281057661226623341212350337231433568667901714265314658320503692427450131176859993927764195064771494569208430292713192075339560856401872635628657700973386668350736953814128781494122073597733157616876875232908473005132972679598502087868994839692707067824775456468494405904281365842577240584746092124299659088527792040145043805421197342345423092262940919717794621363213763280446225578504784790068325200799701876545563580030995512619848566237228322220832788951000044348391425221894759046546849579853756109338337601074742641158239100504451155147298860932479295279234125809361833295565225215924527108992819055271231902904198252565670606987835511629775974637697992310224509311556543179117403022150241302373292111997418260218767956389507300501958256958449858814365657597041121553620972244299873601834163340251358133645052921789457294539285977315396321931117657881044720556440177618080128892776760247737095779258982703858417140315837934249682117454324617345691504590048394448451779004554862805118674936028314007418924290015797302063882186944612106254284099758988601623679722180135430980609402811974078135933783312054272053096675292753040733823070612119238051333468130304801925021111145822752831873461844557764376160154176371769010057332761599879252162211435675954069956916754698695481551370709214312819041172273475559733194300872164276567460352188203559925715262572955828835346490537930642619111423319310550755127941681284185686017519755933430876575500576056877653492738738759997371795074209295124248441978555543843034628544750717528080348187474982599992300458109047342388870788735280652292600779425003764123741533658872428931731695356224000127716601407879233094517745036608656603593633646858648563901516814313839639190404559942826100296708275614627895320262293855379097083797443607434664872255367942925993985963286813524613201622850856000882406691281249172490356670355035739746694762858692224134484860741798484718403558182416310994952368908233209312320028136257804458670426728843994319832229061562210318509574638216613195003164101482746554568836596623555444266350901486862620171866300862668222626958698872101594792057731577441428279886737614691687599391814608321084910497764207488614434099756638933534465472369525165214722411700546032438439791769556164706533392149602344365981992469560871360157395608376099702315142115470145490389468147903384277740006616251500229646026343189329523272838686406828167979157812895668711505402684256178110189490214920377832935110296494174691909964696971780392170432765451161429821463761688483011406653300342064211309540480471075655369862614519965973366250197168679623924712923570678150939786311425225171412489978048543545081789559291075756234116965216139388533695983433552852844118209843460422990703382178651468208837364082641530507607208349148482251466016943297511328742127797577431023283971949472126095427271798194954182784312181985115056213448629058379923885353242216422448496774163134622713390952912487567683410052622900683810115838580753745081320046170374047559612138481771889450154613600343169914026663032806940739640625066156129850924914984158361952019020227606449799067264661786101226170476389421161833820206541728622116012382303060376470299764440344382202775931607321983484333122860460040712176068518131773781722275736779169338510772063689724205447587060236283930006926913485398465553675490183448956236757827327072848542912841915392350156393617083970108896203661045897861505496412007825467841651138529028783065883340115773419451218138202148124676081991025617120008904677015274319322531052872614257660862345274452864176059391400971346977600347214714323382600468465390528525076682559712125456530946750142660715451837003812840740824587818054229026598475598039356362515936073036708951164349612173208339352896274676509290649067596817562177680070568116930549518425621134233976902142674277858724885366256541523618641193566416026684005490551591512465633117897461101421802822102661605404441107149422672385025859390919913421441208492681463228796855327605606742899073870615955231828884546952657817326247352413942923351476178873560545891396492983878045066039399174484633638480506753198571546440781059584016652465257722489999347027170756423562077866888432781149488150428400488209648993628198596003437203589258777802155873174728315394958440211333472589484298441624259562989846481269734130916509388103491681406646165868616410317685740150485200108963873111338452429473413467473856925232181213817782628441987555274998526508466287578519786645043703654899453027409414288194070707726883374512777237469116302095232733798717984238475964971383389855831310599741806543388879975720803434532221925350722877895291275667866609958583864377724115149086588781750732674388073542736434772788482097182584239199620778840150741541815501968380100051645992905539174312799659711309056097314768502490738214156566301917102804283423654921541261098379463272294376244962693163809312514349541049397876133377001511435466457075227598161248133572656719671811361911508505930989181017274658548965743953966135994959660388112762187640323009523960123483319609734631106988913022347842121440301920391406192751897913437707024906567743908476509027863330887968472429214651098696805724649863460897547968304526846593515725055637423549650801521329496703071959219198078898630966096909218035515163286477504215518177899147522534430418904141228204550129586036950064389505751083135068452996715403916543162987858915769224463291555343274200919274109075886621574512560556838750028649649708200516843695343528407553428124080138850868834935935487732009191135369548653543837545812286308058129730128834399322393543279260170776779269769012169427240818445685207130795475552385193017236122642544381866961435810968209955645805684255338363284307651721716261982615031674556528984128302498824618688195587729204732237529795397537384810539921227179312454811845014471636558292656854094312246721865611712127908986509724659309303070707219866191544046352493402238805844495099865038837866645791285132948881906044187497914853006227783312613975823594163794175124118507008353094798421629380669593944662015930695259928018673635863128766095540859594272140234951181593224969744969713475315431205434671708708987748597131189063518098378640205154126262965178471738263616532600736123173002266315354871554676010869823419165071669516498163351848990683555327517820294104604436341699525845333782016913856398678229287349566211630141748365228681510533532823434952337483204681686077621822665212036058758144741959655264790478631383204661542461165909785792390811356668213545708411397778086746842953942054048709207034471018276296363177744206198122113171016023620094924427004012612899186311625321985983882862164155067751132960819167696163714221731806239684646081356124853751932489515347314185117748110463104276481086684998710418313360895160287404481248514926704812562963576496695780384587508471066286127066623822382714852059150203478029930512976150424017522115623736745389798141492182794433293623312882733230735790526838224261331937615849248591459286808660706964991442021204326500455014617260924834275327065365650977984207975960749075986887748944104409031669329432595327396551129377210409871421948163455298020830539593868594271252434723257063407695431336623550142494057500179908433814774059651378194355443842582599249607257970661333748821759046751655495994991506232131312653363588730654050770718771345002291356719270736121355814971626727020527102198583890908527156583571302846017020908299737898408301650870536976448283413452831737139667963103732331245258191184123166724262211066588798028041823694261085285364334151916873752335647471939949782703506596911178806456884130757385340138213382212786800328017747058123864962326193817776312124527486684260628501452965087116779499432503677015546087612777887982874315664521243853558325536644115784270413221146930611568123777807704666801773755537591475965178974667005946072652224235829364477246499986554820903534975450631625376341115710630400893185490597380488144364758410052745848032981660807062007226217705992724294720048179920481336326620898121380430920439899574105879089386149659155210541131566156801341977018939826333907253942232385919021041735832356084781572116957806277666379920682051726900102210329716956450517920547807402475347450279445620446881737670831217389531678170150586206237792476688167335943866773614295182993973428221617386465141623545707816918306391242493457596176768874375105087836983875669987095163621405206410502323625296425617441756144491742995816032903239918259721630411590476509556881563081827507442451969261771458161194252953307354358604222729103204457028852499214893045792098996042028082535938979826843444556211201658504909327208661075936465710319144387889077324774827704351702576947395757211959471722421313521342307759243126265617915533411110693481287219348620490558767590269073081677341582281301096236248908180791585920989598621942521812791497083374360817026850393525257856691958641296724534702974581017401524004408493710131861680510236089824158924510665711168674768655088460449123254560724056232364845059939678175604703462751261062227547543438514547118305414123267214285645310510921827070481429314176965915912363703292814948900096059136888747874134532124514987873140565575758467413467395673805432815657078313050572974229503178043708694414532289360940889983442354567527383450748964479713308896583436447815338379014336511514626395738834764589112731494691434882407833032428016768082107596985064840725581451929617315824716666947792239813912025934044203718705291580530006735403652015941725597247610694050550373591942018032749362714425841120967156054305907152153135550001860654733700884566218236356432266190568361606951859741757238668238996019529841827180911022651127862052795164205367636149396433187014872881083165476399918824823894503661707830066997821222562841545904041647019940809822403118257078135183999741317828384803702218071797370271999734337840021093897445751938331811529480385890926423799087115887850624025707772360950002256655168367129877062774438634713132238076768674506386760029089712006683312590160217713460194712253705203868474784516153363862046623655621721616590102664709401892159130624154287019657054513336210546794911601072222777870254863838752800326520923162307297032347554808116678532567431822035983443948437843089944576901778745185883823943254297936543570554926542974674502421865456899172052382853368199301037940962621593007065809587871158205131272594385417972656186420263692448223289455848299268788759881006023413181204464561221751446355677214200546397747476299084109888502914389725660521281603820876130995357236226299465178331445291678592627105966874338267948768922413551455986944903668921826658492129218661785905740764355359198325535763594086030359608891231926417765097985596271459993709028396809273477724140264868922910978033957622674477176433689924929462844043517790190630071327414090884191225807636097619357161531708514693908686965332677952792778910297664767373867733642247523469249113763761680075005701271140870332151880386606392477979904774940874446995121022874332548625874698078567005532889298798812541722411631442033998259423661958662830982560844384085584701802864042847090732874298681831590142227141798515340869327724147329874900476759560990672394827128729236133383283863413510835442518017946380428837711674015080822016355055799888238576533929416983318633678269051455625983567425680322802183903579972665241535739575057618705400496868966366188868838275497400873806535885244124832269026783120268782366632571141854739693422717785647015563857471532674400419977666114834992031432399825912438544442129581801322312300366547583827158247475055407744760743678884029450380189798327655834476688620602476127012669917306665494525276684172451399755753275550892545823064778293961750883741968187817797460038428900205811389345683052124341230608438013417126108316005512404236595258093428166442861920432258731230314100959741480342282078043774580584320816944797220793099197778754221101179647249053783825850354698660721091217941434899754274852092541326276924338819736683143580615331280352770440857057644785357810267679308759540972106301928820039851108530995284107153413568721862883309166329552105326841171870643154239377660158179745751210950185647719115596887636323528614506813095963644580841375757504435575266447223920174983385371866131069411099365156417774004693340391243994476269495554257729631164116562642302437974814855310853391330616131543303577789404296849989165340871301622602169299894830818448444540593504384027840208574751828427616842103566484888127279755005805804852542207021841655198043104253920206705762233937968458649233049473170917308898923886857643434614786187723903510259382502872047351881819792178666319555064291123006653631889379184252281737128381736155294513834437086284137589263552068390316261592223133195843674826493314338955964931422561179308286753108840711325333025693691514162284068831880321043209900184516728782894801802528599958103952087510095151974323534489284476950590616624179323633980524899095120973301416723342858643799022096493203803918123644189232508783874120728450823369029486464417229720907306324287880504947512699070276305084079346828863782674170779094420583086247997063394135489991053986260183967898380454241676901114434828273098906687302042211564277036629234768941718997051975012319549656377043528346158135797131215972693351239773970337188807957892179147928761780940803702118718844297920991929110519001290906317431747462145724071160937333283747943902147826642029663105954782303059724784782258559294544158872818969638699886156675977119695791253218344528330006413545280645587454889459290933106987630558505469459248120134286433713169275518935475992393315942434811896403274432392592733351520556641102377851282238710299185365639714162867437756317628612777476449058099190965793224619754246670591628884433194100120697117954060541250490313865121555097739634306226778822004073165650527200681202878179774938641415428925168706580215429531159917481496425105352637189287477628334788766380672840726403315689522407218341227472539857011500767646898939510656335898690662645467233756786609511933269186752621336174794254233866349404807955398169274078361273484832705738299462016391820601552201938462064494972181692069722254357395593168309733282133784545252354141585193755235048438693676451836356497756191508085933229468455238927203841363339850675371779212779977483961902431723589325347719092884663214849365575960242870540923103037934299905611149789990297893570170239232336322133745418711519715696620213101219750735025358791884333813569490886337692966697761355356192615470987004660501690436054866806508559984541829869452135672386654340602417426416866769803060008336231979636736777207396361922800705233175032681942990334192414238385094543708657604721533954804674089529963371009609995712010282507844915801397415716351095824013499595861427983032254735929412451799780720685679514838266677563894327886251040471714972436353798621816504293722003026305757294767837344030653684315401825493727876777380827463542514435497306232779868253619287734281407330270349487227043928179143559254203371632838791882723783374961929967257085784985385289969252520573542179338933926376304431133398087414840314768767131334018510361844566277005097822964009125764237329090640790825065455403287158883098647698857926062368198318791803808949034462519679710556964198986936176285229206382953247548355070504775365791036693682616056030993934101696262972420992926329635008215346224013665849844095489805430204881578996284464318880011030212378572815350971163303055540775526852553641146481843471623172864360039971468007699292511130089664537373958344644677158624423579558578941132575076516977189837314948396982054095616300642093161592052829522274019975337170692469288883244247545291453335652609610506095226462677697293684389497258480326935909355117249744657466539440964670025235503132115243660129057780547590515032836834446150718020713401392746472999920045629394601576269307454601955994338770319322529709811854304292018676604676639651558682971309174567242014737722761190181772690297159075623816381880381565252820692840154331451213863477066173518160147612902212940747254331359149664134668507153390817551018523326931533539050473311013010754713084209991303114645516501804047534296512664347108494553017452059906249967887998909179688317887011205570285267395036494874354532167561123639243503080920692977635430053914420271529007812116818282473417491107863911272866642343572740355098644863506700997389996615961971188329579686308854204482031323576847751525392006429709727286817949104878612487978352115621160660205654680698682102281489915424830909413062867974445057760538459463317602241989938017547008240259005742197503731439474565926849004990005766626000630048037822637570806441525929956693466344513588049181392569932758215465855072636441506703551707463688451260890992574790460458333963432745767335051375188040572271347774650693289694094390004214499591008435757552229076286789754246921240985282994819494896637620456890747788365427984585499494038238966907257464843352430676596847133643831865291107838689852923007924592169671877320299697645476563719522989271913687490304457811136836170059035370161681927503146925134070474224128734639059983677376874570963056507455910407664392840260690098933727281392931305050407354583221142836938326119829719142196249241412208355754935777941961037638235163501376089824036818998280022626792864665499991465536012659081736149584401149466087600377599130224685978368483564444945496703325998633901813452565990373726768098850477090982014653774021818823191927737726406067618473445013027162552899703065364783734249675357987806293910512815146022111340239906681216597197695152489922440362897324630029103281549932763823334921693457400205487555679612975939973521590038199251138282339723938415813538626193915711736100501775941605224928662662991488173138631097028169117224200609448695664347540823046328201270973383225113328374397163290990585408165377254167842602517023266236065133720726268758388394557717169168125122790384203538162988393702411477298576379459514872987539540173787092144822299150043872831669033349936603365839410095492155823774919901219821184961619682135981972834433232211634703058837946343326619386740383305336440346398672177274395476610736168989378523051228471335077290573079724379307485648265071600151963425546433575742154201366229722414952797568589514106107637308278429704967742081456621610918433585937698687842140113272360278556324975616938367905844988888180645266592059052962591296526831953074750939799343446056082645669690963836155156502569763131287847507745832209950120568658631903804897185521761095024074363147221178884230395424232081332595135825663676538410438351195278129225515453703185907947614880786716618045810803151062880212701080336012843814512745638747481329948829407936599824171107783009029268852170247869801461564516232350662418719783897226147577296439692036796702811526778582153219324542811572097963955977793746803431651888988089046600209912892396168020566315155147805755088839945323999624891232214060284418250470025315073827057133345346623944120933076933895869417309089329469863229455124814641183740989016353960481713896165276168127858423756721987117776859400397538790178023044365238929520580056234849691230479147103821655894650989575673553997036812759150705947116818924531451460342838451303465092253952868174521576906697829097924584186602161076947705110148769628350656125782221344182463286225930255459571208002457841152722819811359128281367274225219699790544733667263405113531402431044957677115325584583438176144730291475746899083772088327722759588205044775842299235352650593629958765368771715964344936401675576596615256003361720940987707715435608028567955597940065731071082698510437896505883912015703071260171225856204158849333289669270138449295743908360218974289783130827273691441867583088965089698131342570716077877071298190437320260838599808614510195887453870255803055156438810506297710267925988792592901107554019370611386859731875605272178798894369638503273671819539221666220078116490232939450159675510837180157442710040186503893202897459543022432965556144635660235874001989544564454357848347851170112790220087867249591089768068746807963876521858993664156132684661989214613473731780857951701255982391799656643074000299561429464836691577508392805725945559717779340785786100487534200204614148235086832216866606547564103919449685656097727080076597541266232294409464315198394510315659724737402807308490672028000675413873238869333016938802819945419599261353910985174185706037154460682527550645443327836471555708276343457487851059452565387503129119256543025197560418288445605046854577401141311399825551075982974611032054238338688390267777909551041539960024631071082331356894693396948738314491043314137678910034869362236784065233865764382518814656381133381343099698089087693995264876433012584694653825773372533120521492570333699027659605910145308187659154112122550938485858870429030974862661143441995188397807506295850539531308916764080326219127424629007185959775387686482062277450166455616655443246151326202431124984491241654564807259524407371639992281200047272531403094332428987127557778613297735145793194566550615250564463335983091889270379856708698133942023975816308546835669407338473238511488165736113581420951805081610291640370819816292100888021604254615336733780275097145705816552110584640158129701871838117938329252613842178688431848925731233733779136526249545573078043905595356452084212150516265083869692240173817179757072292114960610212023363858385122675097381495378798006945664683227977083505173449322790944241657087005333972931332574177677743687321677300137798349226373485666147979719008633169844250742703275285582481154778139679014888361583562335978344027217348017622788898188777661148248021114739447871846777733498785842392923986857004446462097784468492015433458070764978228826838687347888367957278733897116174329197808913925273902200308652474505466987071692664090538418831445170740808043739286621134147416493476088429915167198569853650445429270066901847420901459862737986939850314568695361467956343228408940155334615602865714866613434027432330205108934957486123070281188271640616146010701560794696457736147562497915646984546860574139472535868843556710651709424876107802547293933238794317944996110795446277904233177731684914856083386559896126486174461074297138876786616762857040436628996880400297156803454065688289942056587632113576071773260286241375698981035848503825150983068924760239549910330056111308503612195997351341804744113585331611422658184801808798787777948523272015623186539915708200886423212903655763897380199506654949420175356150091623014775031792408219396801332514214912914138512528595242273281363141711788452033657706037753306563527961986300819231914628054759800231328790871802047820785522074022603794540570714546239354364954743418642660904450856039238258554807116934304220501481566859277896019087201917084324776913163150895605993185329931682329026542166819154014017856134277647562558573118024539830988993929825734360682284812901723735493230761289601269254981559410150066411246522917695231060624408444596201816381598878824606245702881364298154707971655660703535865471141517819272846034347291475350072976245323409527038847500188467569951602850285159255734931332853998038490787738415528282492229813179880584606368072292416857739165782333569184571151054638548059949660948081366323886155500644789961107818517779799064492487480583723584212925495098583635550702219232883016486108039235748318947451205399523049667064603938760343712808812893015969922848767695479605190146109292113296167963856756168334832266341332147124102182761164183701922276972782947401185613379032209765233231809802392004822728841971275595011030447448231867444018107618566207663160553744132452060418348130682822521466922632102887016884937093159320971236712346892742889240299055319551273000105689967496818084992924069479191688749784031249056041454438070076930666905812957065677372094695382051357434797997016012541988404574859569824314899941245291595521743462274350329938007263323064213745042860057492659309553250950462651298124856487377780409133399648712956533787452962508172736213522401801041308510209760745572451995967058779669595555016627834108864322392107738168534993830886471074401892372982367160803950715953737550701371122749679311826473020038084489641703727941541311404716124358531009907465955266114120192157674762172195054911843969339630116747746300647746833226607416764618134925725785152090751525854140946925742801754660950310034061852650670876162919677176531730179810526904406817989830828529293261519680766415188553715596962877738332304693946415744295458233511790124529799598163147239740484937676173908240334436673847677983236092254794319658425799234610490117450503406434434570611695527140217949281308051635091700235877185575535170634423206009669092403141944920543723831936313169221744802567772955844671906779406350133666648453269598828864360418244035197494255749054795308114069434612206068415189148131420196822550144464826434428493061913563269517055259367176954722101851863235067960772565148103063172644216116821297439632859430927796135310993240559421809107841574393559423109305243998590594909769376409952183810316456455241370754528743998956561734058395810640940895290064506473505342201948467978742315547090493192286524290206238516361394064509275211819141198834326806637388457303268512160928928123596162857180363502801279072592034306948348809621262094440102766474437418549233575677910436169319076133080148198359947046270274830153640402187873809994394000956941656891159973255967245082972164334748598809912498926081823144316717745588879617604011552143780004107283973225589802210238741873623970659226304573981640390416318916538408562968415774039495314503903307142032161928123068179188206456259021324473583200273631581424625909158836769405237996697980281367671543445094818190606909506622228974630927169742046007107727629418343574136413499594601594053759598189527734115313122353956216628263333686345940444185585254038638289054800472541725143793804096652943257351620563124003938367297923516668537357821891473317229143067501297426802034499143040311434709401800701219683122604385695007450458709750687838820073312736735138998535654795343901751320080509874923841116121278841630913617499405918341068951976444894398487193526455791987805240324325202089186713942014946275157762799253786214828511062226685490084147710436392530181594567613309219034674623748359183870149440020911741537016496710862082555882266977029175007779430542575078800321642408692236179282865618174584209179950598983181650185424959063463053997865793867384343739799341081195792135268788161355477432072906186432803308379898868503852783474252947999553174762106733159527332342916021142008270002532489907563883303228982967249617201936308547321324797444444041671832240435866636276085573940868812705998371075600418177102301667305236145210488239925453073330442259016796634440661095914526183013534239103616202982511973634536459181318024183175712709182963773483437107531620869302642581656758335845615003927875124456777129299463294609269373547766010087380399294697009813868150535120095523094453718591320780330112935331749150009945588380299663686941268699600111853704880991842816223970176244011649213580977585582017997578093244078599799302698396538649790672474185700604399199108239884024709856776565599835931640850523420262061130530201647865582602205763502527632788849604779816353762715865481423634325448507894379129139984418184329480188566092020215634160701640017710612979602937649625025105808452601269264680434711111219104054804367046851849319249277642191362967912112020197529167416629883074498066847352744306637238765306485149503939972661841651914307472740438218011084694475213077739395771307466805128103145101991384694042152476138685170636136832060130308737222258779652740859556040557090874500057879260098359139408965082890135102297283593766505100321433268308952817667862573797611321180236145603029480928189783145195147883694309233404887010613081870929886864436795388432961951863470432569103546639228403342272770986073950647236966128739512214488285565756361995615347297074977311778392217652992541416150268623999396522003892885287096874172974545208596762598785705855526751020998910914245419295159893019950621830446859977746508957558683181078182058991241052442229345501529731573026517980247429164623827402241123242543267612978984366693012356473887939562173754796641632301338912886463117433058124723414652455552869781650513785049087001571935650812853772937879487667893071214289121789705490011831207128730497493991870284968840909567516111334803431995056786676146976517912049045714636840065412422992304475676359244491885421031575340968801300616984484448860696626811780959626254172766925655324306242269669989978782987419956074252633897289537026553834757868823401873861027142815687521706081691605695350348426381935264824199986294923011476518910931807300963489874309627340430343930334117017075547960704582284000294340757645890106098596398575104084373502296206632386937993582544315876131706208751200475496153176893342519014374021482078401033981367974304907825662014573857719619473965433774288093654813603967194222122517074764516543637139600090413804014495694710698732000726186263435416111554441835708494799704774238494371372256199872434928444416177432062964316055582412062196438712027121273830375162250715167426148147415653455219046116809356783635176972541973057299127978438631149922866781081275891895470216996711909843770379967269451768220854131890768599363937083847811868366910656126367312611243628625217898384980063440830039081753887325362003118851072980461350493190225551352795902561953007390241881301375209544405099751106724460199736968832788524699558697016962440278055784491011388272960587832092341749219053386137169905596710589383568728108418334866203086272895859237193933036176856679504458953641737552224856826481337288037448203494975853651271449973970241913594476761704685027014196364661070241833195674909692357623550536466672663057755421590392378639990591733000083523696036553013579377208373924647158978449018698258273828431293481233230013831336676359584098609226102132711927435012437915292714291034955713099297350795926121067990110606164870287351964284100741597973593159328937225469026334318584718452179215371436061190302633870361502673107515030862483929242256742286883589554844324102328933451195913352065920064918308539382553677694135080322803362164867023581015185169648157487165808695418672438013728784651958467109963410290962332197211775332203418578186240088335461096173780177535025931124073216808386207746855244023086004458674401734589228281789893039547980337957572549608910667740784311192359824671773876944112549067703897362882375310307909920622047822314957115243458299168738246771576866784130114915562590501156218221379730448107120975300018802423886014474596600187044714506526900883926534795370097695865653015503155933349788303559825302616710782217813364421542052336079465763570133168383000365260378215774388065388459299298691736028109494874424510057920043679207871631735642234973259437806564391274321738035958186025699116529356431245202949787502156908465628154291693412077622141997343939227146167747268487574012384653543051354248138075938676996741186944102453407053112701086838174176170428010226435798612653947729396760824622006335037151955647749517653660152021609217133690442573638240752015683630270635809756213263875594835149703895332000504434198790223803963940948341911784744328799306545379508884722861648198016929577977599497073023729043070575954912066503757265269902603013509905567177380793242440981408151890460929026042845603865560299447332136940884251367514122827761054799113676061627475817589615227545550119314171303910231483509466585364042742984931266975919311462693659107442816861562330708779897947345911023260651525891838666580791353503151042269392964122529865035644333192829512963287773106576002301278726277492561588030965649519897466328898322929682279933813780453779247826602613392514882938455592154555918099005410543640788918170366713230613753368547983265293626095561225145915215402010911168818373972746717531790904139825151228199988343812467888027055471463889993160268328020809632694422721672345322541881080072392810763176366905377033968886908108261149334115071439522167946311996088034233010832647586407092175547506311217460618955513186926908192120931492810195228814562438795449247608089936962585892937526741048984874598861374694700116865041471390667035790674220593652458788725917484365026884905267864141990998528718030922343887343355823430966403988934351934083780320525306075018504928471598160019967482038626497292787608275887799101945736265850982926462658379883144987119291050245059993565827630509067611016745001356060562001838294222834745001965260450181704387430531197377975932979035180752074520179697322653923476537851602536853827048310362257113051781808042007308636958187095286124599721959149895784775876924159070614282276508836340726584500897963053895992619291566795668560708939021477341033895955223991874912230064940043078104619546442775075588895276387884255886029426693141048753050730224301339215357136829893878874433343029759692587866883786816658014106784761071559685231040508174527464772630992206018455869791202717560314979509930543655544041426047040949267538063819819540047281018201961103791251021309011012256041730848650879628107185009707337190119662811990150116289934247867133975988712810883326999945883256345501172786421545722925516205551644083090623819897438926036334358678429905761855063491574988819120405190582585764735159888489152273469343115261199372311883061679960127197641334302031655569651207990445452425593178117681465696764181088828935770016898953371371926767911610372022345233678789854159210547241919687828305719715962163159302577218536196764382314577009287013745444415423029252281684521869040043927762953575567331562358715205365973528201627174831740024875068418033675703179494301620137844999973365248880793805474812898650456208421181947378749862680847803181323698781699816171662519062598653296277956089400958690456883690634248190109706312009174658091515146930388165952168832185247700399626874822584267959462970567068480491077064189459798093512665854351861474024317712420717163498548600317447553345035346264329185880810733426702740304592010830637835127479636647704604960587914644733760818558928912103733377080269999094447723608117417417550092056788750320127261949048546222730639630109732737747358550497016730326185959456655177839551183450924671443983946600717734061461066711332474070381004151242991587992088752834955151632704707883283686032957668967141936671839776450970308715303685174918784994032535361181377639684738092129994388280524607752306073772778302585134076596385273122022056723577324862631152235954631814731887489137238466242924928365505175954208247071193936998233492749533573891131265472998405820227448023013720499905117153526435298238132602977985008221077514485450832784257235799915783246789750173872357956099713344544257708097006101724849600103824713404272193395188904006851420720068113102629656032023694558478508385440114401651670305289049807592202610133777373282848342769344142380756031542041183436855124031683569257461996002887933706581170564551802034728103086461730612732092647361028621783648742138405643078465074762538532051230669849718346987630005177580624482471148721554746203103910869491397306460846169654492026150133328314101006970050260711957166675024889494198300457404079025438956484133187068750388456995892585356433178146253944742751109522184296701665597733465488282823216399258366632154594451667979342317925315798472436840604487429134577244893737734716680130957277262513339716903528871906294755006233727017980956799390369162416889090566668828977868038974300634296454904576979486690709550394114546523972655469382941881851097740844574421800234939259282982634045560585826902924065362091357057157222529023700397127477955076358665357631662733758958277831298935731606491710293660645299275722404786663051980947371566727875892697298661302561728825934081168026656873615584945564188536762589455858363693536366844580602927373777982581055580510803519436290419297547391957202948568497626840784655556361014226101732347388360110573702060733349913418489514160563322294112752287201951237349885123999344923793922530750682331391494488270839325118799694138203180879793481465892828365503717148025313283299960773491221540032127003374544851620166931456997011378468143699904016033776943669668503511091499049278310475204874426612769943261504611001480958392816082589341790661185314268887031143992345287245013764250050611282195927100163582125991243501814861092816812488411563262804311114714245320834572881651830662989227993155361761877155390374768842479875539929357589549884207974152798351997078380011207404731383051391124967885640813176418222210470024280551380448328115080404779529661222201066128095988862110926168096063296107973152986410322752060384112003969540533529927204788183856826307023995888650167434580228232551301674975054379743536224583486192115405093773342582345006543754873404916590590400843656238887972156319725945400415772604498452302429771957201043957589131122003825992084380802890840663748528931778219975618449026472402281836652563009465519297373008351920914686815570582904058400752776647786031529926041321426760505183556533384962736310291905483398800551836645805495889177962948801119916688667264644409996827812935248052354473095493905328996399190943489922908473207053299726175294647842395805102484738546352128527814182194397787247734328398287801955141360688425396140765540609274439977436189042670491576496852342436011302273355084074286868233229843692219264303058809583852333734340633643772578289160340114808782544231189823928457604222300354007441796667690599628752599567697822355521097839085719238185197476215594083809955242386444611087902759635480959947307849814696434540686882999770988035774898086823773695619861504763092302760483083427420733030810208619389459851659954213042963394106367610512856216628255617484378989803411568615169370027992166686233057368590331404707540403843842897398477588792271729638994182751918209604616057261318846064775986750532082874224775175101893059275717466436527083372861500359840087747215188731041455159605512180160765100678181841173898109937567066780120644465105753023235061575890930896278609886119343831165749980594644180656092382398335683364667295196855068576801057642445670816660300823109191792283665522955998490964506656234263231429357532862535738166318739112282252243685401335240067314455500146259289023645720335576996858950353725559220132707734511447097108758646092507201344748601911580270427291710075359509496733689377848570193055675858146191343628784205502288959699228782759583816724824376743420413516278468596995060159158768834979074009204674513370075115435023639563141747479508159486060151690855604164461052239323659010196853535965156022736393240535453527499241272033362196838052437403485375110981671869531955362018189286072064781207030464154059409810351722551538396905749196479555913907101258219029306313673052388437158371315897690047766802784491359950038990419506069073428267145971670832913288276807287195953591765979888205285489536482181978931971318590897808265498189131052035327735352539335032768841770753620686945920868232818819872921879414815276770525795260580864566637018293200275307656073951875948592703980016903976817031673709481402589415018739312340055446538589846961203307055484900091626802520383745362881323298087122273910093186470030309164609779646857959234215309654041016741713299243005372050596979701894831870587802164903197132297147817361435685828804408637060986412960230252206253386626983197948983078232818083537935352293653943651786762470739329392459931727223886201100342982427395558725417969647495963464321433677997293821984025602860884880906822965498568347477081466845405178278507687118681079962190364704468222250877322169947988147310846967426709461352718584902246834890601265899699623094302829558355904645122614957080880153705275563131104044829911062019030346034479359253724858499963122748254098395347263258578776008818866911824133017780039718132187250501241001090144432437126406229446160580797164567938126269646451574025822914889835460726449400362850167213444850422597732755799239633619550538347436936142774663242412142472625701409510668733383292642105078226320431377901987929870542660826060790006389534137225740897372168636686288855217970755316207477111024515137969869787589551928720796674280234217192983613727963182369851252287090685045518659687731057044602811167366529851057500129358966889754727603900164442740646810702770709329439709891431820558583415143970363485020177770355309206475931796417474635850359260363161100725905208935785913245868273928806215112717071607072511552183411442510793203635591004821174935704800775426597289371117877412816931820202151094412230438195747319725237527907731954621259971929542941303496354277404118987424680615423842520453565141921601821652198149589908710324362571854278494818311044540816715650786722776539007593475726932512893813412246362353346810573159497731620873689086398912132826666972136967969819338583225357394942268700275300622646977743915294418044634513618575107326249780116832298322661180416844377861581400052261326788142038658327879312909926334738765010199872070214409156606898146456808146780376502505231994427812576313307887820674462969076492160757540266419595664874330899013104068993090449294589037248456208859353685905834427492006001011355165666145141500789567391079464532040403780366865154735642606195539674503980013526879739378055616403509967228755038289758717294328129867186716508148961180042891865116248553947683057008406040302260071004728975939387985265062835242604460463762652938792455234882241264469827952070521190597749963230240892939348185503628355674551098497589320079442353740789457644465697312045946545811762617508468927795750083385018992885624887270484960891115696311554708712476803519899786075016520979754236795878038468760863144912666031782459945135074056694753742870103027666385882638528887997988592154213918657887223796805303186747591137092349892116388253151321297652489081422251917015968563565796847618020025000657628512788379655407632880611350287842771451997339439723914029850508099899610171404634954083197013618356647159566534537650122486461044351154424422201694938680972697571864145454061473022927989888070283267746661256579876970670812226119119658822614487374003898809398564385424995849288089025270248957568840073336882349212724191033828902717199063388061525049429390838753528781158937926817093704686351665465236523313094773218507922608225856116607923739933779006214498673490808424097467501344129626434599025849737011499937370836993508772127951027806942515068181406780844537297980507493341447110722433373139134504929420128456207027389757620420373726224824743032798497833279757144253425461877707609246882983533491202239513257154364601549799393239199167047605720155855096387136438004089325286196808357440947331450991299702970757056169870522534871109381209370283002211888692697653317565615967950212931833533410278809964729739890256172331781156759416377236222375201289987446088095179654802653347194541869936526499990233180568302744402608066428514077245770249870423762081211506483585768557837270398251989140772893282493643316642639112318609038909036012375970950103851980099854340738548547102272069320643519856770868195545893322793534103666867561031790671946872401105935317853037818389219555904401509278516937876749275779891523041988117793390626866535969053119377985957633027646476013070612196871103789768853650312469064425161278043525600060910224412309588836078379704885540945575041143161502111999919799327300897992076198944718208166709658777929109725398114609687910707920917849773324479956659228488796011041798016478861007753791323297751386470690779690232506156574430085127366620848053733703598829650943926234536796451339872673433050573812282920948718125756012751804108104527466527578200872987500999857699217095416561515129807031723670132235398992325185488222542573941505888172167275444695060371201878955773791721128617282764467071768935569311333313525928707530526445434023979080061182433472926551473641968912504110160188766319387966429439697734103216096041243465434070653547080788068697929971408628915497393307569234851378075339156536198828175784684102502591003931830817687487126313808956592876116472848161737370099535106525177729538828140262995725639849566629434868330925615818267939562816820943204385859501937875493184319508545405498342868343036956419035352427302159464457922866609833261705235357191834595750368312356778191449372448138789750042781756908166749168435520630796947197811042583154284116655880317876621869160590208760077772794114341413819967125351580928426757918647484156460874732620527139757854022139257824456511995108498194612802275989733370101850463992196878106071483528879008146393576697255173987554633176868404159439457020341816362041338068956215023039432089309586797531156689444836899178410315037258641806252513054571803289152536363270577904956826851216786942965546056338864318793013936364827839394293382827684676797438273630802751833869172491578851433721758932423335120654648138164236346334115675886987600356961472148152563272755824229237769274143683931857489581881419388461143852295084654559057427404492883899469561025353802871724564782901308358305022765404900664337854789994869531889541659950535928315947319539932744117512684014080549878408111204287076071846643476240286678416790740914093365748351901797733285129546929722513895931250839178058615396951408658216670877549535484488307608224151694943146122772725792086967956207001670109950158889379362161692776124328757671051470554663511782329092755409681915343874877312986456885228440001951299747918871573472251983896252758715122315689660423374360109691687682967954009298229252302636020606965813353227029204737818752103595536412844030180105450840801123992584567880237824550364769802565358155768874000928808273507224987165662799732421348824958016917131835245940985079958827220036282419645902956944832333786387769332436615312428397754996672483277464562809384858092907859264246127041356337313728025016169373623786370971390073565375870584060089903057630376494331715983102958309608120986626004103055463469769282647237859759179564922276371831179511578612163592280381021713662846409914856984514770825010719258904941121167835093747641874748518420971072855641396372691389190564413426690053961388934101232912089126695647259616144534229378310957378148857125922971031699066821284677400179260536575238958075498729056857855662915385094548797239274830754810517293414649604327225858185295017233929270141116037706284512512385644035243445951694179808231128793720167650463517561351299867936195022330667866122595343256765371491999483542562588266230387745543769720757210928997951122566241005519271028031293558191824304087239590914684629811282791633127797484370559778802224570777124678407141241234042216014308167087836842710723510418583367021002330209414653129694708275173040009099501270567469934703523693978801513702112494852731426465067171874143615911606704146895279831958330411589300518097011603994053338499117157267603654290148969553367990267087840621871323902285459521805497661161894729734956799489907362343808338275028630275098954446041538302686962105426007787579137030971238810039117032883768524703112338246907925619123584144029261627925059517075070333486450395607561516777899987112322197016404451769586409798539144228587248668457562538795731441263471027525994222580856593363063463779395198800363237521372353456780760882792659619611381106244699171601386752566580078808522402000499643260256305024480066323047430104847563951256948144526377276855734464345653416472830565342360726457643811408952353461792122283302096295673619026961390413446196430229046861583886405087346042462600507084851733495601986465523167771656147784516511307716603061958525474784374108546898945056269079489227181786583129699248057017223078161015742749063312400221930376627180279622672760068565429345093007127916251167793085076799973233821865617260272825067490021712290568315177256861695685587304558152498236869822407363274939768147972228667376993921509256269132480110785866229911336080764645308111059046400073140342701491451342309964714266295547137542450922725286052371249215372174869474046004604997774219074894539870368739948219048031694729540702679895774803284181800516846685531640876717778636498672072855211616051096327151039482264328108659462427123713592174597137031970881663035719786777849352189999872863141855075057248115981423808108439129087462546032469450997246946978613520710962927094569474865452618816120704963504019898608074857324620092873293508074138229065829987444909655001737460500459910176108030439545023937610024948987821301344743697683301938539236994155456913048529653461259585074536775844854027761521094219586968490796787757198699060921939428256942164015757556360706688645923956673779129364576394799059314001131424309492014363657128414988291917943692246543201982005608870272578951680741444563869792022639184058075488756200908101336585003221604519647714506286637444422686760470658880346009783078489761769583655720525941473176857645600237059488232569654311876658631869714084582958078588467034739481034983109693041261508740679544481713278499782100807774653782254766835598858991649256781389351769237190822572639374995424714030098252922137245032378306420004930520650368634558857541591668132109972696600631588200202905068955256977904320446651665222342646192395875916887746275626411752092495249437636873146014435729858595278584675444227184002777834556375154947479319590404342958958896311473197800654058530404862762102182195978388499543880660648360596634232455883151886964391526250572314177183280906748147767281795512200392519684286026505876984892844374750143827611714779353601448912901384669558430442976649761251924891521870986726471635458353736382367753459566959434696453804205640447233258382416980295168414579449753791080942197440360161539300537593813469703187393105427972978204827303350541955297657964982815660620513116674372938954457122506769341447032536249163497810418146206816676155002971747075822761315023853384889033140772481732281338620306033510691668892254426556810721850753840727243353469587678164952827837306182109313480901810762351557024287732000869876654931091723425098986049448370317868330493200838087841340018561978128768083602999984388977725239919786140928179177010048070370834506908076018245560242690085763807145228069485831052334410076863556121062899437919850985165319553110176844715354290182508742212238089385054346115729887385244232242510307704676509022016949439293719234243030118433546359513445035404213381001568557977184047316900006708217454825242636589523572483024204503344450761777468471206218761374952597698708483198204083391641346925816659812612822578631749040315763555320571295350434551954647543503079258957741949756353588260428054061210702833972026586946250366873212936435150384329050222335970959442055050938109884392309628305073202762954541836857514859570798989284181883264500775332937204944665996399263568238221865301786254495355885885778445971987160311507409871338842161482133351208416673688539571551152180602209752621820206155169396163775259921908965823220342408343134719836454356358863346623625327088541410571270486112209259952087286302034106737605402830893738871095037979506229348812455654993677175445686684067010173678080378497110665771328227285199349643664922821284527167879851697866105846165414597779713607897548929460336021059309895839207376229900346973903173170694456519180179420242228198584776102526106638453507905847696404937491795159328090402623905631960911246139979744002612766692472111693002228260054654468357703576282329846937160875662857423284924665851546576439565561425874134418312946235146160466117431515298120722599958125980200422145608404211028151750754045298085976121584997142498698070989143880055476932126134710116447817432574410030651953825867993288962392969646176053284209229069216992914107690653510999661109051604894843521612132345685209504182707155328373978777741831621032433019932257232403851401607634331400322304439576621520518048212454355902632765783778455439994789816843587675744455482880989808384932574402134676769918109802937444230171806294333276537478085054795944033467866835443098031461121987255735865997567723048912184343087055330332084151520635318645687966016138384296574836213486893790064220129302428725256788833039952650745771420580694014934218065694279806564972820196165578526022611206649981997239765452374848731025382451186920242313731951779738480664003814462574049622532030968242066144734298640212040352239556894471211092933651419580605956564069162229368184210807044284490189557913453258977018071011015376568224158226345299793602700327611211177146341722391890959822315586740369797074863722698289163850168114079868465628201010869085432898548057189992594804672744808617929130563432275486950353861047951048839305761585660819952933537741130486604589599291766838081991007867509427015246997179874115701708621462321361086770472771471969408418226938215635708251828873786402983382231308319716687663925740956026243747472955366032739284649219933916940295892434908859147566270225854587083878005550118600786274756999839555697322286348704948066263232377045000447804332635640837555503767533314055878716002726108460248650837511309445067966676225496499820014579354991428825544306870727601745397206701288025078330586954769692997354287575064410574437615096194080870215998074699201068331377853747178261957438402562201692221204539149018166554421364942885648928331040163206455100653517889082099003022107204403636598752975953004421105920285167222443444243437254537988074876959104134327631326779897402074212739557848082599091282931769734154617140534576506039582916418405660452455921540866153014398091026088570124469062970366321892107572025309767031536164416971942797174686029564131255036935009906142404862675425633650684419448177103234707664575489171422269860632168537690604180392692994080230261212399311455616978865949240038073097543903012257973507041513658077172105800123114868648514056411909207522986001922851721981818835871940715889493417881508076139820606781389400116449826964098743667622797557951545639075029024022600142700349593583615391064710789830287358057783408915053831512535040373250269515588685408598347681171266858599920018577694489995504745462986980893598220072189082628533430739279794583433250886951350387527655964988199751585812255865589833040494686676464975465773684211294523518649374169863584057521230293673150861629350741411326763592161021041799793933358503756880308284856011057468895700513692144972967359984775056891776707525554928764256876314719983099271799040244444510978872730874228881013343904268571114780505043265069566801530383898925002218701390587286747309327280640940894078397439805507259053091131814994208204321028296159669010714299126350197595787545338895418895951082025010643765639816958960859966365426147127508867362859886002015142572631441360486407430086084670042662653007033868083552717895666238161864163791418207988886878125214846518808394900602522030234392684529897257519187447934650507800233065133494402836370969467266715985442886408681160618055590345986966264639747327719453937735894450430684507589911248449844005831037621455198535923518902335782577293874067830749914542083073071649816083092808900259991153432955335654265741049514964852037664204916648343258386425102303118508109629842920415637861478718427495787996410272068568677936338567281516672610100394464732582328642627893076399203290373754954470431966634989238479283797370420341205409313082920541226071719406742662278739289419615090307171064550429513448823269000656930990653781255152284868384588971819965566222753702913012312449835850796702261385568246405901631485440410524967768850152114800997939847258870205421477337702384520108876885953854078315908153755857882873508790975847592428908224390067048016824206185275532060796289978694481118237376828575514024583131130443772308257154653931313851170139731539400449555086973260208941116287570643455011660945274310388767720845860297919607075877985494660708960243858021365590528611884131571929705633495133220531480355463591463095670175783787016643151879877408159461611891146331674039027238346793623617800600635182832655053838707200528223109468823310436016190333006521658028355408038173815548170201215765172017070375841829532499480109425815564587170948973929921754605853337892389251837273307874386006831473377440419077871756619600552478768655550850651000349246594961672793287890864708848656944729585732871381130750456238976115992821380225287230833647192473474269318783965452906781231932590473259798987267896363216245685338973880020713911563151192577281262648202779103339482685246784495732419852718803012325243096741461291546372889984445116254429513195496379000905659496011537265274697681900695899609508420950224858956467906373845305360169343250039857856416894867388390907288155317993732429829405499092725538889996347834557395669242422994141472457982446083347138263923091861330077051609522296235997000030275188827078533054507964115403951967360833560480780709089084752155260351812837917617856663361608791575091557282823650516715244007686684232808783965448764361465704955606875167722842148075073071807458390211826488364124985655321496236806759569557885149059285697555356554008709733299141805176498449668287080623497531312915110383352195966586423114127533668424387167455544162566149404927617842210812624053967636969522843365737298662826374104098892460730132393379461522881228750847810506418082205406619231669192202043368411828399515403960148711256138546263535430287046832098032847470570160582099449630675944236240652928752127101777827792888892836281285566635254590212563114186947209895294276592078963842727622097640939902388069366497681619540629557300388423133225832874135484655216098156510617296166735799111981066307957500157276272673920858562802076855784825261188345739705204099711408743997548979549756090318261501763947637673697702372849845779132070375848195652398029080826697174961206804733688545884489053266657796758552226016920048463174568371845610262240534319004841892675793386428053026357313154315347123387479000112216259643604060300115975145120326672578094075589697740307928573041772040603721170345520110776974554092958774022298966704904422634020463665438417049072586281084894310028899497054936972163136213582652205912558495795001645412899489947943281136384801317714688104544376389895463493561724393765577102876252989044315394573337553248636765554045411140032188654492324320471798846839117685990272268375650187402071642837678178129772457095083793554654735326162455562520048977247998834255595430267372493039264976320906318134919576851361083442130327292174469912461053409421051442773068794906790059536141901004008885949823966619092873514689998480580111501484659028685050491718803393949720528115789506150415892526186824052917479737833492696603313061758161762812113784094231527485970772491212797167491104936316649118239067887334971892451545970069781850437514910956986809823050647308496373860558626719213319089960694554893781101580858674448282345308353058313536457633832599177664299519073567211522763937517531010706010330400858349047024128960394789998766948689071512002411204322907755380719123493475320365046679478694235889657086833777724361178528179790885378648901980691249648196704683131844648114606457494767394500271457832528852499597222935975244048888864976085927012386986415944927464337818016466436653022193373943616795370611970880671523906787698599281658371508284494684670948518082236827975231400766630159463888829557029787873710516749947144345764267996598813874942517496278564306274930778194064592144107805985388673770103943803155351302375716485492712040646517860034720037354750849547700514677557072148134415444929566896533190720870977225243367042629690482823284734626265774363427676245054434065654954130727218671376039400675503248525716952689655198511311117776466394239430559664826911846825260387007224593666582223951910569758440863545677554900864270516259266513238425379406460865693451054009145786661190987576497196152494454893648726381070021050932792278984979513328655665528399318813475349417157934898795461223070981659855627128553791222195478059115326762972079146900927822081453726160040315495859637246084943199727970140503869326434464053692379168255040191835689238206473088618878149018507161594680039527670120879084790432744223738984804461264773589741058067603361413252374922728487922703711893248276740430247888128680595646173216479751552444499573757106764454224815260901534174197707613590065915033287201701434524048692831832074739743865510134339851796754140672849459390526120566083962256475490608798120973697867940858645299801152635155637366835842612299981237419716941455048042076689008576265846433524942515302313044115577619219500700425249458499747374660498763674637039786613791340420940503413987398580942055313410579728007682062800992089863675252760516628687227206413335788022171087975169829573626737308431299029009358163182210483292169379972515414250861320914190426151073639354083351481743342817108632643859708581522228858725684316322435627485318230403848589454184195696973768125532040916255972591582430194816732334526288012968190733761972047004029270687816038978661031644716854611202791884044324298056930858852664877915631360400474002823227824841248689804296044107074457086840399657100496961923795973622962229764093626341874906196579339792249402879013740978687422219660460627328739919007103826213623665884662278000151354492158338513177374112829483747016601163949801549304185157218378684269847648157878241103635633493694238513321023744088924525812750849844909639657836848021467186510574155864493541045796681657438566257180726737501654378687547371141047599472704551209788749582677441068101316616918176853231218797086817681045114072043477677555708446669612389389535369757313616416712669825911613393488653289261102100272142706959089855049418860238923478028941456065350409464103348601972930721655607190964945866466328793879973986373313640862037166916958977814064807425524165776834989763966428598180858644303236995522129927112561695686270334169273795317950605574317414602299027544854398022175387378852011610902698507426881445778965944476868077857420020738228048959851556684736692827277255568643862951241472091814907881018104358756360557395477018208407765839524441066224733384614367581506264002242334066772897591984246866856821422136505983049416371830259216500534565331535316373077649666266471438269783135821834013925564221000402733581802710890355158629595272054434783888283720961591680882617996889765140865341199883270836774363763617785545586941333267885126863747918013789633763592853093115663659739845687228948195523879099023377933601644863177546635837315116377009257324335720487941107440431397407111543335029608055074634403156505961529650239156371842873803879513198692522532622605907883506992402292137682441382318355818583420701128708061542334800302932764005271200227511547221844240326440142573658995565040207998342548223020503035622493008061642796062381605427570779795047406186131577446131701140659931428311326739539810473416467883297035062133377247392794518373011763035838307182687522844068917821641673986298602734020967634114273971838805570075046782498719208755894074507774095025090272520457843155780221206067676732020673261248568429185812220889387620254970448839843579986660781149428811400766385328503976629760680269903560338960081501711673983552680073659884428163473053299297687856690994449490904502151825489831870938233180109134780953678691519588959671811605660726786907293018860886329584901953421412648191490115473285086466567767507378217730239951154858848777394817509853147993646629886076804034323955300141588741272508449884511914281470347136383592859470971995194608204101633440404556679146274823616486696150974018542402827368080367186733996136427491833203755731198511216208708448044918796828153409774255368683519848905707225186609575558946821267671191587150871089353355448525586680448423743632900993223262393967937039285736886146821553687895881381529538410114687521393927521125605719179517780901509404559179289237268681968451933234480243504863408344784507890430423107550166185235288771337618810614274027884056813758314080003361393092309400302062953229246508997255892398089294606742896238661803781368355446674305933125204419344471303776485281903475924122493956404870232074148956467970091055179921532266282450784789694007208883686742034839036846484768231979680826388092190473254872720778487641937931799144654358443654844395160406316136972635577243545372065366760091393662926672297509548828413656190651938359443140929385913091913199438961437098922426780806929310552663161641105085423747493420137945562696936878719351234044603227766115119844110995466332978457558235041486272398871170143241784803240610590031223855820185894748067400845874776875213119297402439253398958818736960639153629078806487443877708100194544979229622491416723963434314382106610015618573805977268415413117211429161125762588704091111866942013239984327544430043671819839731585676665889372243905383073034559638035190720119856879363096441251521114137538395343554379659789673475495103172243631332191727291821946190815959152458657368550606880620644114653323510959574269498282980745794882102745020216106740277719221914056293260028823552616619205320913800903116134415305930200356320581362767999436923961323606829330780601403328819981766498756771729746704969595898499202746197458696731471084965944254719212979348900185975625726561256049913057280373459758344824057281925341352292119273286234184959067464734305164733109945009851633450745502323733184187106432157017952751686033826515820041671452999784851364736538138471380885909663942173983296556638961311079093617129718781648449470844406177715524354602363356198235826536878988484489777010755986269035906848701349228017925492570380374132906261120309166138469101371735086710704181949140574194021705586006509344586356745523272039020288946766238240194767575206754230213591384615374426827441038085733331091554217280079708041032548038884894691754804775040693809946293332124233286819852765462552907003633164851194220170547090829014939967134751121938929565448345145922436239630236411831741796170627927641462879034120832962512109116165409881667564515193129973699696091752531357429470122659542979097720675232864994990141200667690547361392154090089367773367988508099438516028797322365087580115050992676529809245129350792228022273214288793839341681450235606108775125148244208584586918019210784074705758774309385775993216700570513797537753238800312358632026856652860882336369678697901094637653011648991105832125740978584590539378260752703778348401779936724570428955908254655914901895070140453963373502594056100627455709658635458534662918869769275655333317015080421118472259487392495175421254997220061248121580283446444611009422929360507301656287961993279107908406148255982033965438358861664204706192827196896812072354762043636027156162794159076303845820005185995621858679696616753624865694171924534765483753719785287138444076529779905401501932541444549099186629857508204641567020041088365501376833229432746991876268048005484544842387486309502682782632455184886121038456122235068817759008456802875940156145238993579853130921567780991656381350268951808160274372306911099494897032498848891698393560198235442010219121000753390180496170381029322883076021020701143834416717158457490045910675182127517724433176153989774346463351982602075713287865211453518117329015063348055015773382896299007516805469667968507161392562378264277377525219675518933953730321584746709995791652818627966190636580873523134577093255390824568421001033218560899236164802567643876252726448178848512289347210303461268755404284620662318006108150408136008280007482190451642831363532681128403229274008741679437440374136307366758060828894820151553083160396105406965773038113966927013037818057809721698566769260261620434883067054779232248541597494967673464944537382926227167725242532425959764356452949677858082707228139114114516353208982694341481477793459678223539093266825165838558164586748820531484100672701810475608918508500828741071806203195301680249794838982030872934765905346701542296954998817250754466260071013470263281610728320580092165053288308264521564888030710718083674245456423280767639741447828597175656993777313720329389379000035483378689607540779808654597594820191734237025113457698076601370419305669069816534844121935149845728964246936820335672707070693362702869557134339430108010998102328524804767687444062983711357937896248311522234779555542273488036020199723393700351519259695168857720023919967000154651025448774792982501690815515164153973361188053163900750442787763111628037621262093235753202172024145056459140648611406276803837143708647631584784444306300811712908322533750636868402460897108714676572042145732624641913889987060218460241056691117004144975723242449426973336336753591573165336631107474810287123948527553236498567209425562006889559733056295108075195509039864771045083349255752993238766765604004214860631161812995337752093217112544870207478607508607719242974123748269062682775058064504363892082475886925143355899296008740976217638349332514871093313606503618658771187712975323930393335441768403409037621122567781327450501359672771254579747859822028653141541871022569174186252508179568571484257323710826545000893079661048482322637405327575153813698198626872984024119900668756420448391133462857877703784158158800642549917392849294988719117582948693047827549757562013675525879774180737123644343225515742383269895162842093461993937314988226192522426361926666245614727465729969948462648435728522640924987752199010258300216231516926045653031357508766542836782689246323299528590476195966247725143254307461551042260960242178373841936289980772377832477859332300992527752460544835504022586741232474272455596847712315797588136433621918023413243850599527888171243799135012181845905090288433546646349266503579975995457334988787371048692454801655349718704725204880533423157140041914888849244559991845814668849407858151784054973632883333184153616822996547013861600335449287764012398739675841131022462525501581503333137425464056420772567199836320254277156465088814766387387519669770564572360542066035946169444896403419682515785677055447664756811687635241648466081067396555333850553379686894159291460363137875679743549671330514544663376334053730972765726426498903413004293330375785733585440945740808237459028384362129310003039051827938341385156503747003966557971938675638393900141343230998511527720965441062418485696616998121484950689741667581018095953895114716442813832067018957242276127839933289078525934160723402463908901929766790629095268874333833017542738751998034460415394894264074115299176533976012549115495072484054654991952905540137858441188654028736758959654651070405233750447844312011963911276590075503185534207674993627268821479236620589208161922541062404386207863366981391425183589244401528407697663032462422726828320087911697304797507973997347603863205813811323577891266660191003199767604945550699561543758831007252585716436903698011938311550385510395326405677252134402723265594500384452604465293403857730456393337388760209659027356668493466229996533564070837892171936752650613715205869975504215120205415138555643016493751368055231406146421115511701049011607013843280891555042076479244944998228704809976942171428227979789002398961477720653870955960945272367116619251837492886932742994284557464374319300975022096659209229911816333851816579287849292557907888136377301669750792810944070673967770017748981250611788039258287919879846635407076899564519586783708369525687221167676202920937370894337845477056613311893172297933141772578519841082128366642932906347781245701576237777741829788755007948813361575622427322258601712485028889742679603504413739990831219397845670411887323738552426528631864086865037756756959557706586321437704514303276732109123858960544820277545358300659285295592109385438086569344307296743914947687447436283823883522097405848587237732229397825060934124451905250242671358973832878472561211099032573765929092241529297498745658936094855231164938798193323100806898200859573942056624721162552814392592784125599961865228709044391508011289211761887714754590886981078492118908641324403200147822201607299882858783312217687131616020574681237956883808112366520865967544727923820870231926220330888083793736454901091061130419700235605744034981495450347860520320031476330276378918265792569451131144640107218241011351642770925172864872569446262928010433845132958919074786437732587550134319444446368915373111120146866102067625928666045894678165319348121462467718793241396653853591279884273207008444974040133291060000651514610380854037900145774477025662111032413917032971153776587489766955589532673852274313927819862607333558782854556353067583303596580688815613238122125826318868155081833070835114952921466783733976664161368516250276025268313991990463955102671472458779559697893041261021189020843942416657033318913236103459970293060381250487497325056742317998826002488800833137987969728220859039021947402865456969880307308641829601616145630289443964389613421661698449336206340488146993083311581929905993430902124274350947671577391038224267455574553010285421904855795887661590839053718423623005128073956530782543107412839303331683022295160239137532801822749332563815508730002642535918207677771261049695449564709375677637830145206991513863165947784670365066517466180921072078411595797384114355081506669675596073550627134215459192573676453652428871978100582716691500015277671916795379355668908455604547461973276224898688999775588736980771910358344957850718658931893615736671309226996764154897179154427340077525830685599444871239906491282643079787288458408960254674876931091615521092700444119548551104289655316194417570516138341568164671142223761650174132025411413480515739581728724183294815744926841063162626295818804737837621108153459700181415713374551796930690350651016949683241940775804653520117886360070231898538017214650353258750686658335450930064659917990126527782882398203844493734650989923408956960193493701952503460315986813518112543113974439026672192305843448526736527876815594715918532529377633241536299691597832736281174052973251272361367220041745739131392620811829484273773980501762300598570509648508876514041010393237469058765892052101203844465556686602879679795927251851300156243867068011137277698925031248923566143199062843940660641303789882762469774463953512235593632620333380408195385444077922037158502484109980720743589137066779644919504371587947415672915764784612839997567530214812866476105055727820598090232956191461390876202542964587695486560834414482174285751508760728043372235204197501713092923092646622165297755900334471418272948562227398715992513301897885612962841022420797876290424759739080079453490763020808156879433991834538833791223291882403274856257652033475767228674118660163755321926709037526443416738473677165312145146339156606272713689981909439432850846636011487758150035319101738849260964037054988249591969877038926698391203687128810341564662964720487781951747781426656428641081905272628865163605951852373690687900892108882958337873646695298097897432243188708398239539675762267847770320840783521861807410033739773812446721607380693617666124022258291273870925831175561381529391619522666049366022882792402632905583278854271079024204186645586058319741952724723993977879721503056091758203107348571001500022667522306020817098072781401689203603917779219647357469791676664978115202330480840931502887882216727120218136009949810028947487813137555706501531224367295327782730338012101668778287434518946774597529382878672587283047462038168872125064980433658976452361615065501802757307689512733258771854448275079817459357749377196892733419036382541322885439180766633555002503998308517476615877255910320865711374443852443071251606935477083206714998231546699954407697859502767339611478763176415652637889449331728031824506557501387319348153028354955898947535608221351236448539122471887365541574366896529553118244548413618090308756631196393759757232116204929014223292502039671786042436132422965740664862239031160875533783465831658445872909883492355271855713998492979226484171653501587296064758501108246514123551830607637710939869602795538227111018516879064705804120625575259485283862002054205687769059349905254981684258514172243269012988754591943853210553986078255133960042998321833833211406916522712345679658483396709988019153466570760990808582990005367339977411850160212824394688210517584298638875480033723996365815209999434385329622302675829485638031591253479486833567810193555530630601664956381346589585820019700001940367968699944524753256232944577088322028993544598118575056291600833153573607970713391890359580757598247678002630722008392228841466568119402756317153345496005108344746880079890786220118808237480933601665187866434925037413379505454076674790635374224581325015702845239602047819907267233599766856689807761506232482859735834383230111575165649669399947629568752045119627271799006136431603742045969274351093313911483556562693175647041280806523701459133080760289907146176915712189502465250753546600142652154723158892792073661875497774141337190041955758121909179546150412106924831675127030471519480465594366984096044316770477131708249501172231814865480135441578877032136589713767124921979349249757657239571172709051749191005800295438737474829043110562814276776684036844289037864222963031403646629071711024364191458634077547901425024164457998628024587139757961208898095698597625409440367948830947298582785113286600892396003090490687136309251525284685872118597046546367750421613915775364423790383683650045973686779304904586190220059073890306690243427875318515352751709386577483508199664571437966534805371861799523193730816451624458095592695742590238958222886824417129332462157471814230170516611457622989200808845975774190241123082443795905701534325351311963225412808573585706283484787587844901058801453127526734243850015692950728111225203653358092461739076457770560786268980552022515690145799893041617981056497520385807608148457835886355518011325891171333471091365478652849575165974427978322205551272142855837782135082519187707613495823728344289032562448502272686266455449659279762165341648596173776374306973799839913755111624150177289486689333953653788867460403382134631108409784064773961328067055643159090788277423373406325360051933487025489947013367350773909456457698298035242064910964963196970335759969751930336556592375741701479362973354298229323808703800096764888618295674750811920220688519417108320115621216831037761735995601098399790605412841759607717371955537589532980925569171114880092097610725692209509450856797912717378711857869000248996417315827824476231024126390395687296873729455051130748655628321970853199514862281397307551709236241469823754948387634430169661832116185280309547739923020199050070649560318446854397629389194825299017934620373057462482334666208306231449137346564599784738384526388827298633069190651170349247451287803387076417049729293852302191708644408780683145779351901733418811875645190687904004797613863459523175795968955831899864732133259861735961825430918736963558543797063559567803344515364502500528016328821969907591509842234747453717441049610931354401933914001703419616063030242583770196681181209690043565397506349535499392705606672059754086619311485950959625800970201351261443653553669657998992503133316720877066577169378980157141957954825612397369088715140060086835467412544044656090429974554994006171234431716590952447988537181903426833383658458282094410199648490164789253968043918274717099153158796048682142443263659294744124091083895901854596961982849757264725006477146883095498581002590652724255389701486055946139584301279535929794451359286769008530394478085962763143463228464497896566976386156760465483696441055443643471924230791929958448283944081703006453981564524638773842214135450376769965402891952243094892641829648088317182745091811321859188277764621755802924393383521979241457182912211755531445120634569254001206842799380313317643518858350008961134550021184353772292258453000642295949210883021948383984522372427240700706203067111551952436500258564868279260322149364104063848070448733082069106538768542230258205097696834697692590320528127756882688420214308465534566853445924455432984819747746477120831620862876033732562973909187632899538027667084291810680222715834559583606743010239313636327662904247478379597168666354310212316210323381474087332839468218837270492623175413569850630678736672510852008312985563836561751773514974658112364644691612119331633025574624751109703889767235329380614290890181622486531851287820922911462443581650598929969687080198538374100995598076628096580081256121746494723420484688536211348739733301148618154219299761701518226759944645749882465443502390647281822947400518593595721314323062014769091021159901870219543161739047723842928994060250698388362143178109364663296264995919197316991915455360283445840431599442179164768887963282102278558838293955306926468018685103292969407006087531285816573587542248670245553588305618380058224609198321707852187694294337182505247664080945484613312751477737153932119277997899653938906097434142874743906157910894632453640678046414584287306669136051724854273298763656957422229441582661682817232983448502762070396233578126433593039860027778176735483699352354681264386273690843830658880924402576962967105079333284602736705694052034263750579960367272404828663648820221401675698841824608306048110218220023044864742258107631755627963259923112537476068729055258478907162677037133275692217132875315545535098667073640097129997937704726306497370269046801370522656967791290211535641391319489688647532332810126750287281215251902130573021272766300420952281270707024576736698707253292074848937428608157383912708484693118531633704784035799243683433881603888943681841528427534172281313476104236976944709608035799293785015347110641666999319600988854140689165348393134205940702413444147440370243225857981350280869561615923367555073507036469336519318755533015769738479795393247592165249152073870835929627500849112413005326176131333353565930334602886757946521781547941725149221089423356431560499226177383778077097426500133061779877988776284887618715970263186975064327488188137449378950219004864474058424583250905298002718236822156269857380959290834531774863107284321220993030215740743268930744429541555510441926314958722410816221682923883100451351856452779020052775082787804996811283348879669157678383048923717387820069717471882526764941587504863819631463873762756348282019360871195890290208600435659989276759218434112260830128276610264706464206711198891541036495970807615633448158192490953673375441432129795907134117910787766882693810266477957514202608856164508343471378051778348125886925768037931333436297526810517294052270123084931352028450127563261752094477066472768783227865158487475107575594073745569579307234913033879962297757544698413816264635078634972023087607721418444636946635007447227391472052530727510388088551799029145776930792739372772158647811656291652216009718019385239790813962631216393308250761844490240000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
96000! 4553391726330882195876509212541423593019612099051282935236650981861712738430703364260044198374337826561496353290540934913645629943909148972280837538701210192996386734596898553828276410167114806850124398863315200995876167300558314522061808322585090711895126868928897359940140722660613591500157542113055869438395227829733558321836763382414517408034019137916706478245535812444525194365659284478854615898826465772146984484299150438959556026407563542345798308024641564490437814341875172990401423688064445859224459880305413652745336491194522542725600399773334556576285763437825641276307124682665101778062525102215624723841190077951316043767653796572372761616347479056559361127985293311159801089242568079510187498960984781199967652037656337460738159227562142311984206609052522701448870191623928091922805720920018856481748004670798353982037067563582524731993421128586787905670614611152879668015207725200358390737019903562086116107171513211268938453052745826601111715947339703817385114385749261198698034193673189355941474619694693988383126968016258359637199094784238962516149290858026988291252755934512871212307604820524436203631680151740299145652391540675415237109484383130333968570659246300561211270135328538313514167459808272824652825240415429720831343554210311160412542689021373933924350197062348155012017985943337783070404099934373198515608980608184900195251159084619108626272425818769520649506288189783693818209568434123735044240677554376815358289191954901239574891294470814716279360346964734251149404239742752750902387341319368821799341573694989828530397800872983115127423372533897994739241737665498959414202124674922856586888908372380532130212554882325871397197946373617416333987804950867637779181023686635816805544664567468174370468462961216532288534952714970934242414903130944092817621897285701991513767741108263412486871917457063156437184578487941493225669765396291385400250830074618558186137986777518774239833871391046621659351176584560421850282115559816774427730742735444229407598068349557338793111491759177325939419682121933870768434366950707562916439699274843734660047872880066492388188997547628745235445124179592722965583152273590999772738799336560285243611916865126020717833952681476265631626324882438891490107184768202249246279509221568141350548770124498117044699911126806860376053611222661791644442315907703684219429133990953674293805070049531654413182719274743471811603579406354938699615609564780683482344111476891965355343420093389290029685140052568136758645730328203554261475488718826194730892300110401860060736618165799267410746603043685729156553617953048172014691390520800656031211801312468170723772060460207547482148755194114498295066798840968236857466086393861658274873044187258955423896393372808801583645767584703458556431370111342325625179958832992171465507877328857800793653711890117148956988591565926660924146009405715361955655815446205794502472232979324349846024254027555359977503249837020804736449657032757832279482686247301369572904758036161057946737321422062929131262872703940308417221056814517088227884214337960564937896184923241551755659970173120125446196417265961150313025668908441182133251776183172352622514615277960602127293936322935458209444013224150801439360140468502375681370144932449843410387338616058683095512063975969556656502328548781739526308688474900015117628604367187590725131904509816928397062380483574063102401413821243037161846928959061831088091730899277718117898043191024885882092989391300060935020372989132110699523394043722255792724216411672006342000306259534058883633046170068986316545110906835398969880794059123306089659455556184395550871158295230441443930885156101196713766873444044358838962419225226708957110117161554469522455653597771871362790646072410889167721694918060448264823613714352365656305758811117264904189635344083830608196396803385765239309693828765477450622611952515168284333013696101981465984698972655746992222398255310339620304870994704274108325434914446293834717450319168767839156526918789430581653326312740772179603770537167071946674593919253030843620465368368744788331089804733042330483872035990254221213398376978163036456042829531948919676910657730801867322628904371594598443921800279568522786667099396315296295031433604754354552604159578484310300012019837914464273571132311119633265915564743033832426876061502133314832917217209003960082929938775864173367267018922660261432325637023610222326040341071070996376587847138932314355689928848546830162573957858053090752720425269775625382495841404440864353920216876090025438162783673774394045961466558624798453412829110353146178949063682774869492511025800638292613709233812751853236061669217974855239963365382334636965270981645753444556286127891646076879249347327251780349110950245212396840390004646232456041459713563848219326802934983778050360887607809989409157979829066171054758181676600338594985612471706995794075473467125954157732172644160414724406193813437239818626981899472097882809653248711991757938498566904786308591767313976145351329676316826751638811320502035344662419390512125606669636607287795606646513619176000879138116452071218929540130814590097033383571025608549806708434561775563180733472624400078714576467149512498700002417528001200666876044189276375355336071226971129012769767581363173664533575449420595354377610206139828282064690037530435757723632489740064723033716716707963003668980203165593486861357979717722679178680772114837000921393807664725709436545278410603879972243947130095140356298214315706828362684629309234317127745474745822021159896519938582398985059039466873804155037432531433609346175780394250620343151654544394180387123206942368396096523045934374038451994948859957135192703052015603590212823349436690976681628907934428026088546938080441047516551021799196386885058992676568031327106658880952408168502321955245585564343654183247229471685079243366303523522881323974797765633341961527427835111250394109031434664307397500886805217904848251818696069332779192220072959785476270887665676724777283845295145706136544434797471638922822411223396296881013088166750805447793829935487862071859837611519753982050131173981700771291682937166418099774295349653033334316908251476044736470206696565751204095296563154462629890185466959454659926612868291938463582544569214859649495605204320055563238086810660839689878915440632756309821443389408247586790807260760310962071159836169904168055996841674855125862521351195969390059817959761519571432229903415684778228207902097487079786622405987870932034331979414384887981405498563812784408401546721085604441780106428318387971175872885703384855498401763492507115226518493185867190020551593538935930915024022499504494854813521888537383600259844629524099718362595104229197989500209964025939795517014805208172277519036854580488756301122424216603360107232141615948391341932073808230656004466401965105634244216953545830489665220105627140649335832738100039054479270507166104789706556189959987413439641405331697613358809592771971648848681890319203055123550687066948587203674273377324119161238001924751814172852520484482190435245707787530260100423754977061417240393561978394975516051606037735270822735064256177862104714920232730961070285540822719270776798946719745053428991266547147171211471048831949326163908833269224848099755501835192632572360530664672336550764620423523193381793658476144257770685784618253017053928378967235805020234743989118268653025193264501799756332628001598784108138030943542752770050172854271481417930142902203458644006419054187091420782658078634044177466579447981638716695235923187055217538373246702202144253725384588362685697871989714003269491224829112458399693777715389453518028002801189440528064802653559511403106939458922080808123257039921998697758902684405033095525101599822881204362809478919144779093387424884995019640214032200209617371926575612291308246143744103989034468315914245336555356640491739047441785811710833983599353783635082293519271655454251607893239200051508193025254018343968718440447450040660079478660054998462413966064077586887722734707631254237476919457004041029873648115739852375178432134224044871959351715502720451694804760712391884860371405013421822290324975839872213651864801782542373716575288953926531110884765802322107339387758766879562453385683826576039004020930221015987869050477293898772361498158651666714769727701259830034904396517764166085004914769932091870960750018754776037088687693665775945758981708831668940054765969835806603421757601898224797176247331693444435963780148207812915990581490453723861201959883441157821075203512393373434160711181323611268113994103117428648525816175825801316850338588446609571689252841527147086902684369470436379898119075190550425080497841530223939006261498475885130227068054815430475109118011216581429067179133585840757682443764602320880432539570223779615965430409967824287376923219945405459558399183066553058753798819345100915415416268920162585202484336304405815365036952476129780835787595118958493649811735634210531978230584502117766342012961236654140377639706308427485501500782909795627004206075719890506096143567411462361269895529347047314749704187655916337185031266205389846123922298515491924515026489932678875313232374422342392079728612514374352281130174993148881384282431020687630238897148491772065588538477250549117296760178831232816069880356216625888417759154826167611838597310330037705669726460761336833575450141672279832127289876813695438495571212895512090569741823071364589916266808590968776208940075226599138242921981453478185032076678824381788133909171509601265585834514757667602719414619794681812304923860292092590308037583049443758344566782300812064724139854046460806142282341103289136054884191924247288065705770034538303341184466041598207957108179740767540196296990950363740257250677281140836072358297131097373853199512093409262917724335431887964817894782425039017261373920558364249098624975668184221819519645860518423136499674811607406342473153229011367599481533988055745582016425953099592152898534112606724942080886514956213476264795832808069139021058756688268383209320488262729985721999806405763764012775054011316057861853713866332634222351310236001485032795168088463758708471802468898670804978786820301224673624251202073274813513491283852061006978729850410393461503431735704632663240576064650887836618059618047371161385837254400324585912100436639520348255827787683276461149336016631590133674043069803124201054012823941740553799296056811394944241359704410766519561909411901251328415941717651837026341200229411537232873281055024604737272884503232358126069947718714689255518184354011191040955361793675628605838994024341800216305940196165548472271838776611135291623207822009445917590861817838657530647361880119159330336269608512641517377231437214856239971411260438192155047777307702445119717270686609563718281983867352365106921929311487905894368373610938492053696332521104280582704726673064846242701652449258669007776302653248163291034417890115323613986492105012029806895948028674858816747351742945347827232662299836469191888304218829019296394716824887575849436617673898210393160064488692020924525988876618980613089191376740725107740382041471080625595674843205299194772071579128088394802613689817412920461021405230608666990789422066050177213387957418201743484495364213802944023076094294519778043719503868092453220957818321122442048603788047762185138895032588513136928867183815945851973006211588212440137577289296612750170116825568954229354643648887704649332937161044250591798997731621131335554113585236384119778540343441334785108913037976153644740159951217471759682471627470976804070804932326044342186598604470373669378973027462387166887342548457019274923536818231966839628940241289790893437425533914192767480825084919923877901927965947600356114717268490544635162617238869203773730582749395973634096841910953495421338883245825513960523119355001519886429661366768440632372215008680991908805731865567228633777461526151748707016576323579834306808502735885170379237532460069547446432996766279979161937787994983323327860584970309048419768365026117830534295338401119503945745263859431912141664197083967683348338245170482755683896405364832855577231161743989137270677744056277992643559238239890890973829959033430274546913363895363663885374871783458959978356231140510426706407201363518448073316530798279630545875391331469750136316051036350994059257408661739958324962423543954650406606994615999143227135242156446744613838332258142797828317817770219577372768422027065257713510188358837913841657703264828168918317808529117363366370105111584958163743459541918379477557572252321738958324218519955923577418696468692344218380333258612604740215090263048898757455701428305437233932661528601990325147214767147180613370349390032622584591708507122906112448309781953779954909028721811358038387936065714029474280097710273309168783140384217149354715977095523870206101322335479854398301367775753415554601536379124663801970433128947861998136461182414450006850003052820540133418732262329952129235227859177009618926697677122126177638915438232924863022511705274524435935038841826019074042273978780624616687498322344326222996315512361330511217404707661820942635750315891906352986062190147956565992269894440145206856679543063219069461913674730107942657927165663678227946611182235561327648625981914279459689172848460798747891996017889824231587647387198306870276185532434790839715185999744314490339664459524165300720274781485479498680462644576034675305388944963578716381175072437564457781563509304843762586534266988413035270062226921599307561362999209590877306887113905876628026332055897306758861736839220460898179468720274194025505574772041684958093945317630560835782224296087212311864761566992595077483439562181248140128192652270933857893441802365903659395981670023193280803021247240999180087907515164213979757266757219513195420375080091690149240802001024715740123918687133224219031180387448484236101020754036982512690697404577737360409878598836196120295069675106184033227538077039474198977043729787845187878796285400981148221059172320089963347778300693148762618698182603687094481876516135547433487678633993789544070954421915903188757114464998307865506676155780473188880321436294745265226767929865138748954845146954645955533214407741022689642391456929793029578903434889447902139000950811781084508009466823271539553772613935034337190221850968532345945039591403456370353774008742088922653248616916643838841434229233120728497127464177433626184193772795896959249358172510129268765810099529038693157384179430414795118340643687781000427249751017410355688251134181327394638992005021045679862024166546828446973431251056522537635251497378232811522311052082847039846862568997540938378600485561123381548732018021291036189110600094723277978501371961772623743766415779367071916449505165501582801127036604024564994990471084910974166247806419483369425625306618024084537469975960094358292103440245142277159589049556986870922898288093882332607282682955371976663863781436409515029991894057482182457093898369695340356120145001705255494428075129891559475856181526781447366856864678246627801609461808766536250708204125680412452934878240215574710678962249871029806420281095731361576580322653280378181267262252136120417324309257148618275701607496316741795867238249029103545577113050422965780968120139358741842737855491130889869148190254829258920151722474923118627330434974492177646228031908887978605693814081142868195534550596445866120375352340284957991883870267274680663046293551017224858479242505416372584494211243039336175899338864230164889805819708358671918666116062125737670592780851061588661923429061247889376944810635739816351791869329745274215546582124532095575881397657657381064890564754969061736068072319220655866985792955303809333826544748333453924960834770915585544289698317967306679040861919612561547871595818804112318733240312149778890646778413770431536264577010254441239414442475590811536600705892974632929101471043904254485458946989957121996090618892831039918641681290817652484053593603959494306503670898029023984614634423693889617620183321746120319016931631219775129081857784783652095866527868173716356971916665939504240416171426843397596566640277307575753977631099583307263427731135603235006608555882518233017896860073912430307674995901519145982237115460708624012181814279657387699025551939902047338455316320364643208395021899044357976981763435625829721876065069230912303156380786611131396607696532610128595568905731805219246587145497944529214812481985047464002826764743612363985748259721564731295429739165533039340429611031032033558681777587714346788557821593065843127845472721513437674969811073125204154289542206409518910831994974507101489236422410945999913625846576154752894110249413053193496048209487877838581054988423138576258840667918832101378672761000534265479783192222604188122767960281855504022730149247640383997601153222002093249655205484290848940528140512845380459603068982935170468008042961663269980869882333868357646205346797132450079646212754791079798434441528545091832389384288661289904805601303056470272775492399593772100216992263539755940976733195323119819846580655621688716399536468493852737557837804188266640138890141886511501428021964405808924863784061350620791481411762118492218489689999808374917918310901712712968935669758104465487019462361550862686189621984899377635978604570820981261165939153010870166319306645740902654031566727817764346593898569493357390299617994176195885620682943377009582925027021094027497514844532099194730223449283547823751748773431658645077036523265030737842049337498162675244544805848250191387182242160279116007394537954092049927080412533181701889277536450750923017651199590037366990619420187864197731821390638218209613506435655112061903658605213722362784535381554480966873975794798926883112907036102778783554834379330226511690951089285997667798555938915882091688323806875823236323067481750648145453667655917057187738687011389194533080837395326692948780629814847241236669576202104310983236558707092584265703702415533380070267533757403455387127066445240692484051602699373757280854969098883510443057717031729244238450379442688666500044494162251617470993430085832271253281920471875235406891889118454186394366571106326348843045411618584283834694966683444259442830627591847785768704485382278070955373515197296213634451725792899796444618987584481425991390430882440209986396376766313765644119662262866234596370733756704768985564160365862435768922930459902120313077395145324604851921848737340940751487358175490993138080258139013145892975138575934222066145753035507295277100847867571752904778557869626189541238756646672049870902512312666994250408109773930854815483573894546807323924458521311066681570415414634672290362282188021988974358845446952395401155570262815207333282781560694243884381266524712993248111142212664606510788460135092078698037897659657690441349451083155920918186070049355358771287922036392710347981015185854516752736720674012761088635700199704648068200837573754306875202150630747833784351534202649940473089360386613496377766996269986153525130877152616084311710700662428228311235467670535589672485520255922079125848781103560005601311036514139524651140548871944054830530055001224243813608312550055826001691379819897065065527424007872551828214602790543616596928788013363180114752997932992306530911826924716702740972398072332939544036246189952534778877669274032983299179907774457176502789687404394037042711165980581673142540066458421205395481519976455912140349499585128201888338357521046878760111310749731500521468327773578757791247874302327336391771796249950462951432337002988143748554990118370336861534459237308590387056200720007567556942097103154096711482917978396135637352148821692141804004272672302482657028767626629277920426108399892676213330000853482463153031084125317683149675170030172940660049502803229375772882247711612310155168231497504324049870670719590516519891038708760489425991197162105715347327005491128004145586938294791562324381397573043180473340954839562469378739968947697320373817823763868610563602784319836238931576316180197804825404352225112215777322487021150077940690023014337873472768932382649018334013823020962678395490244280459910898086390445909926860602152174216724820298749357687279106802592331928552815558312676271425170269261040900594628922300537032711953207353495953017623244829450992721087706909819763702132438714864099098289406533475692480076491015437420145044554315494716035720378604853544966616660130426011852252618781699915366151637940616873044341388314370920706726187004461688356223088295927750263281211769043554311036556513684356875183307840229196711610959593981245601063421288629110553457752262067769894987513396610012154951098912919783293297095061600705882357350344823192683398188381335099379574885518292829681144071068507953080574714374416021044544466371620799731676954011932330600488822437711513855879670205173843098664436906141087816828494280280119778064619413707461250896990524073735774387765076891633820976229963519120491247931074624523960916876178517107261832297699828063199708890649935229870350519613372781725239847407687822708167459747544774186015433539837342471691250337967808521095888858218600980208022157963984885175206903015504970988998848003697332411300110952592485421014358146837425100024432895263503168028550110127421189090860708282210955974511289758750772472546212227954284924222733098193562902105524974715496385635176832505802151709492760121440200091788008465021134865577070283168262956010168081086751965806974371109635333704836763353453707021797951976154857397751724618662996254253341771387116663471511183589000213350110283533099230851930903548070435259747524861966569776702216387182812274431535187047356121062542190132951276280022647500876466348602375964191260114582527106376572423108729164900833205371122951916471984813422902997829724808740610524230766512155473120829604772040949559369336185990534071741617277468478490031221425591913979740878301860903350102876528819817977236998856056021256376417929838147840624112115357836472042617710655816095763619948919028054918233410263759358663754969252140061820216831048846335048030135932071036320969509939790125915227949627903582748320637997991206947111063176649525046120559027449607251390231731786348678710085988738911131948917142459535556393883918806101368141445053491973100867013926367015915159819529212777146949028510592057625498045803650547750795613308441841938181751609788476702329977293706005361454079428061727340822582500106618715382352611821435933178930076682954157602945465807379152976017993702498782475358912670878252856800556716919877530471200179082730655474166435980102436963350425395887156089144963204242667581156146621869907100391997950279899137441289493803763712064246582458844371860147683228780977602030467042038467046296975096858814381080749769347200455008020037228581809895178676596526952090745854455681892496096964496443289338666209157552336159707335972000542740890679089288741725896747536933592403326232482327944235719607189851176036340248710469589646226733778898120398700223790854037303334268906556044031357919981177469237202404714634338326736096740636592376832670058615348206625415483006511434366715199131268861440284298084557307818521200941573531857641012760335809489478236083491030334032402166739953842598221326208649044533687378695865432884285483760183957497618259987553467739117651965032573124936274121544201543982744899767133409481332925158727725639913204651097897712034176983745454237909781402168942269734158965929297878298421089695321873831897935452074013658745901197198527947889083603009048360470044063387602652168744898914068532094471995712275209719263855350338626742938889757571447848704014332717560342032127558845167449431825028397904445038309977199350765560731869435223230839891061700311912868245119237486474627030835078199805473641328072964989932488734501722995359279416103810448696844691165369234818555107393448648688792294887031679506504811324725054761901880294008771443237400105355108503952460330547329946659415014716941622188583886965395594837395180116291380831611357430591143328316675210857501564331742985363875446472081234024152580190664462993796677213068492231171560659498753565343736151152362774245086325567930202591537090963223689856481558978677121289200699364194913313380585100580023563679716308256711279759899464151764348831746841137409732650941882707735818096436374054635983172023905562742480171230437321392517380460783387504831619901594703721670014705479049639513211484065381849109077021657360513449783101923131922177594329538922539027331802158561720013344908697343458239880473728719863296770614995297225883433809055769596097914452385804870946761257794671445737124527133545341790217411690702129426447752179755250279794562162560995872785190542307916487472967717009282791500022169789136446531380379012751720402834886349586362023261467692518813865814718687441210348341410413138205710698945365687309689049779495900935417285299206656220686499258138839839751197160134170331138363798109443052436160282298647004727688610762675679153386659590792360247759234780084803719079567247183424622206039501456736396062975486414596574214280492309178460419218465686671112133071308429485757886786524649610356336625100519764899675831347834543023765809436220025403487027150041312526593874582985925547633230250877813740854602905710909130319286108410477077949045982348671049634706009029631792696461129335669134573252469385531087057971949740477816783516120347253168934225858169459477001650808517241420226816279140229184612799872819066652720697828787279604417889747876107367894366052197851191269394952111310205002125233085493663535324063854802073631700239535035292931493325268176783080112128411908596586099507493638996727709978795549410261932313366568607350204126227894221304089015110624082317604666313743965276020869007950304156795835086294446073711493798318612069952785582221628328979585697403884283239636076126758599361170563439300911704198613084082534793444854876107264183828240546251204330799042910604592119893938229260660003477422779631499292923698717685658674266864635980069291700911228104229324054077620963445158877307843590215462640631806353810991672144467759573189168466563411556955428967834359094844833095353379518017279449125343806158333649993118809221271655220289966992949656712779021626560261263575991079421076645018948812583476227161418367458760512268374781025180164669533227989953351231759486977777873425117469642736934161677466700990521921106783828559123738228122390778209947913916907628302635029708241457092134155665869631652988192850805346864952122187665396659702329435596330380937870047503819096938701688180558971820271561918719106163052177972342013490362265425884599662169163241088468158020860311511134008511065929084768252656113287178988248461339327065318241484530625573639084915413157965367744824165714188455043921367462731149350123356908733637518449373060266460574656913014818468603199994106878766658696812469976466646896616495413896799806986803886491772939187217977394072273689467314659366237049399524595963191889500621514350394887157378497442778146456816404402811186111466000561659896319758092453618940859613052443807752441546489035435169997458086577101076606005148445672070277050664901606372223100194904037745817253452715509329962500806198109839826894838403464153251536817542524754814628072823520882541228006205165428076337614619311430951606636307580010727397705681916554978774649022442282619221639299325382232215570487409583198088134970732955123736403021018122408633422731867678327717355865613672741091862768527177773093075425963365721012967875638284924406078315714635672804116281533187741200961724677357592345659706170476681399287153176634210906439860530678913200275764752601422212777774163327913505179153968469364840781816109294991790471963943570850007314692711202565169565909698213647374518055558382903240910561658765311000238866092358915497843386800510750034759619697151700271065074342410857176921905011841496625254035281683193043028963955228264149465865891470692236148673876368584438831875156508065393244787068479472428927268816017785778471272418120434966755173686447370783386089664176878506483617727167563489121203549027573925141962618912657464735083757988776771843731884417721311286965631497809809129777915305081492812168369403174326926529163036463564758189685463343454803988052460770134055466426817049148836418183158045258195694732807001542220300931246736739965423347129637437067305104023824469869756970316514646798379604128782074706036767377710508096765071806740454275458555069224277577128641715956930043457691945500563612868409925552504523167376374148174767245859788615496833177337189444038222478376151125414942494666242256322157628565495549040505729419770252003802941128545258780794661669330900418623079228188067829202257490103860863187727134878239908449670157645182015657827459303300095078999797841569106735806258260209840176276995816717984517960711650016693369839559809622232576670956758490536073328970689715579990209033713329068563785416884504556628069763626191997682636114548778547618140880043289734462507749854157911445017669833478279275097139346890918319583900814318546415430746901728690244778269586817188324394207347280280404589422622603251036169593696408892261566682847354746664754743948982428696572282597115582888406742715647987542011040711153984947787600046866417363206874419814593198644711014503966267489730185098174124112171411683746743307703663491438328784105855129665993580425011840814644387462788100093501165882236457785219484112131807364666081406782569039195441883924631431090750828306365074498077177824707798036629816332731070291097264418620718139258596379678049657229345437921982550595629286094643292818080154694275443249239648572113831648886025128611853984701433682009379098209862148995698492960657401673653372961202716855063876168239516357605668751837369103629943517386381001759496820129722193764646466850216409454095554567884031347565647753339102189957745811396116206483282639127963136773673721519084372048504737395967632658512819273091954583518735947187552797989536818257709056063684216830451172452765019892916048969145049396610304468854944606293742178447888674307484326552035394598116077906201060078140584377898870897908784138659881172836847407674157063411970291944400221053096009056703297631893144760026942218255909539933078860410148693282994555518803511458142908572438224081322022027863950151607953180023451882686329239958575325533628416357032978960635104053231343161076097516750568227031610485906746703853608775746364488520152662833528764573517378883876155300625212136985317371706188090253567755413002060003302312426317827531061621079839049173708082105296688462413853130968581538518466612264729561655762716653209890946226056522911141687796545798178352553085943568570541672694274999848759128009443436821546209057528682624314923690516345681146663525507292808552681277145601266752927130283166232085160532054343987414987960428096118885286797819985699442130134441557343875731352530956161996147172016411142552726344585443764991268496282215882174739352716821910142825096949110682822267064722116116395848347447224066226350327905301121058776477544564851277082456328227302364765705786230930281338656443613016371538733834337281163171747516853800914576014178639710991503133759443735855119778006469880370573261799740661037710483307516042314496237683184838139528916638807479534992875321608149690959444887303267456297966395416679772000495829575348532007168648761083350872582652645607989476152724932442925892361287905649764158854237660664119830791276363853988232333188943957123405019087411587808740654307025347932958642659540405636497203594226533541451197259712599095597361820757328326142756912133796782619575270175579486248897161330043183009171933721047208059465351379709765752139276506845669076029127292515703137422079864978844687422762151872343590829898388871069997424402473000996436028206230154060913614662833570794025538710135246865061673788494491423012178792789234142380115894556691389568373636121687056200913043230981548734037037659560553468868749450604957743076010846484396157010205629522867291971724341617458271851995839155430444179344150358499708615911294849494971790197644850727601431344144032185256651390793193486682752343623146285784950847116012142340163977104942134739616511609761076095068711557409781439282570890703523362892894582631879027740306387849822757671508484003035138527891069607217092754261518041541833838125998671293956183193038337162089348297487013852454270826207688212975894691480343563353743584820698938937530425940618749764265787973949565765701916431263966474739645423495338262002590176467733564321624778165582327946995441728173684608530776531073299096547624358074220366551897178011490881053576073909642272179653386021896699768973795041991640957436959483368342652759396755875604963285713384521413565023137369829406623441935876643550199413204205254603568562592481539079980721868293011601407923330653984338861755879791093425176141797355470743090367261110350309825617577853847158501087467270034213979563375966930667967748568921078848969846577860827573916505146155541386543764737210869353244164412280082171988040925699101384717435807718054798265955574081111288818434472574414547496698796312146062038930508597349272762101086211686501425127172775267170260120225570398649424411338641039078102122781556696583695024902497372793289981341978334139235704775161126863268643768099052495476135434315371700241670908462133797030273833371393722911491177638056262434084468324322808037395582187396288018950712806704881954780208395813075954290186292423303586699453696541341383854789341357033155063085288825396615864661043709641375683104658306876805424273134732693159548568923732894832048987145434365302121871506329677517115565147068458551547135595436096519186731298058039074907620953080771007997824489118264362601276164898918194712353578486227526136435192048594356601005363107290420469204631764256008957692050837358627221988881077640033940599317377079756467775320851077728510405052809694037005104409332815107434664555607620547823604560316599997900380057297558769199528337946519011934050366874042002311531157152307689058026120493871580703700295325752069269154879280640235477456265009244318613628845656073885651088350218972413631713554982714769902003288424029243112308462828211511598021749566848518754114273109570702163615198816840072840520874380240681870194548275010312410631807624673659660273899161135633159411296220483829543717054134345107723788862309514177222283950606795639633916578974040630499295924268705788942007189743840396704642414886773585339722326147268570499659411131806166727059751464413997390591006363019454244054306719209754505438848107268452545393997696499250928045099818348626201368141371777423922433094592539574295581510871242914408946307611327937357151184793010574926758230048413065059843394700729083398429543831544482329200544014887938899288931523433306750422724381398053301958661431138849534196009695533882698566207554402630978977933542765976279218180672338355907616371014838739047670589726550441840578842246041826595007329237310131780487947772666636492434110441369000258428492829900917034282219744546986892848398154530699364895109828188460557242251313231105441803169037217983232799455895213510208848555783835500345101182855061256398697046920131004363713080849984562086946072027638205428903155763246563379877116974052711312665765841596039167858646103729202049828150257233156141858575321402511749970860202063094586369192420922376777693843522348449946106884918402302431572053648105862770988272925289684379033606161597305964046507087322957645263555728621887955720758239534189654377966672396766316605224888095495029559437593861322456130692359355780299655395269555452497849957730933282424801239534825779188850416911776246220799510887712428041319670838416515161137729625235117223029976952060438572435817042702999927173619569191037425009006402378277610284956897347073316158901868300824535852825304153870411168737318609928652223874094010996358327326329900184587964464757111193235549941884074865266837775493729425027125283312948021001664569288553165127552578774266873388756410241283951275335411180249141800274492749619928869180411268055918121499596558139082709575383855544361098899318559603702491818930918719233458687471173581212768341081314597808066234551982063019673522288925549973611687314363755405369754039504982444630897375137135203475555556241323487677520859078856287329054017083229262148714244088814191228671033754063597795700669233348049774005198716526351823945657067142728869384908249271747875206027797361031821663700197907333758749617043396192047718025840337550112069713215106412802103127212737819620463311046420272668580832336766605645128090793489451833904229849711256644946756036814141667513021179337447554607371947244506301793151273895271829618894558044698500757121333596910792038279617934423100530395562527780147892411067412220502640248356717269456087718381082640025478015560795223158092269613917847788355453233954692350806154792598277503740802269064460885448673615607592399593037438616681677662753312610809221425991408195218628029656981961351488130310951926386769357426709052373999071777331734982826880548671077679312555659321907028132717060543280310875766883405403149849454671712328695972081525199601367296116052513381236334152644185256298567011260210255244854012663511201918917836264922757477285571427747037755026780759194617526631397638484644158555340936119336578030522390748684824604404754964168314559944235186972895583247259096954679466968352346907608941723961137911833004103950338025570437528088988339096729488382197799013978217640377245797008851410569400057762912448350824219817907530130436428830352235803880127281655713361127131458576064199197861968527609041633624169085216883355944928019783388246715880465441818008192790165563736977401534852325768672641852401132356904714248385803162543841111130107396183679389814499264434919007749830121743366197779146900509233361877334904254264413161763013659178899567640292995079089053499805637163793547088655559970854458528229770271789808483009090756758878785535851438136517348804060031417842265847496944421935205019249171761002126011562767527174372707709888635799117033077136040716471675008201856659021368657402059395180455766098564632344004710456410033752196693495623745950831614955663542025380575476883328684515493496514612834940409038245991859857097104658243049324523955247089923014742649180990203349289866345843942620165794028849194358510624930515034517930144622954005471935792096564761566983600345534879992820376032029252275354860565809395535227912405389512616824068223948216323851096988456940748560471983550815845090785990575530433404779528549207902099971621448772001021429651788380414141774215593595396166484613713305731695654628274134992938865399546406049131958513667966980041981362326331619435184966574309836609290750712787152936368731432512255983388259606668966428873598009984633016525075289585064976866328145478318734001554843239780881703442229443532971309216802508384122412830018372466935874715510083519643174286820568416552398115607715853360742107683294754624618895476188831881024170474179026523700316287367354147886532061838523734222145551742497342967882665414961466548737644932118177573178241793385243793003898233121339029672772019144925494265845069808378989931400051065113720916349424488216459787186230731010092884176846615679657796625676105023637901395619849890935877195967713837591103439565714478403428007937651509346758055190458585880706127994405615568261141127559973851581777862918502813567539609679519464863270833333561412593150624231869328481831185360952900108370647989742063321859565234912936412615305956115063421730151732917768925227397581480838877074519022816228558694811469011358402099321888202561247170450318480163863018523512982383516709291095670086938778770078669434813487887700522940929557242535937625210888920006064420887064252128479717106919514455192801140097057745685280911904156143463077762494329795145861416073717031796133966363884946297973535207192599473169807625983382342940947859652086896707615470851328356346767780581032374324879404324826130742540267437145054356409807021010483932672434804140293387521346489838317622387053771174661304682734600992415568575174649640863142983988137558813598683618762897500548156438790445122977037314261475088346957682034303541564368264165556590999783924116461016259499941851561781996567817794771551997725743455164485052625365206679091231529441457601991404228471029034668208214097281322547367545084357322755841145704419942878282106331768477777222711671812725678119658865438810772097857772475720567722302001141553998289311873032139541644045007564168270146386553449352239702739221652129098509341196452253162488787756477527361616520375716370986786620090896657698842624268727649179382457797100333717380651408590822910340207731838131934485959009140773188474383297837992912100005594936910088092726120056240043496066300987053315819381905260849681315218172351236146962917072176952037209153874392343745070432830558421288822508895976766960254608482685918546282833332833882579163162110734189964303847394375430553015123802649625090050606188547765062798327097461907132483718549529703356438705267858513327846984621498258075962722068913547283586069775773060422751177369809508404975982344739523653037984945027276512244314081000523454444484647650575741163432124522551193244240605197857954528010267193422813435603787999871511945081748477240819160429352470464030025980661336773961405502946249900437771581154272728397172412692571194201665100606111154540305802351440382769825296343968215750780562211262377157638904419994593463344298537361743086485473897076011347878972891142019089478884595806547941079789846415523020953263007503066923962609389212383269144123633369996632380708263688543093732939516736668265448169707894761289807335602910646877827325300430925223578981324509030057201428467908400684084313497175918600382766136260669678322721446932808418180774462955789031142031259377660500356724001648988783736889513866028215635664768999412239055452157861579777255394525649887851375898165512567946896101627469451965638839983101794816373497379920153480150059263474931768752843467292013604255991421737887155346617793192116865289022411336479060426979205893410343055401785628944675834381760788447373927495514827692290957698196293069599435645229708569519540074416633291169865574516095182654778679185268582180433256272928693783349676180667390499306990990891534383533806871129321986166002329869305472186397163897923347301511594410279914692969817794414630329810027836320008572698808999602218087604117966667428189858716137696316409556557971460327867582142856017755799830756038344915544512235335370011959292793615765288444945310733315182763799876370870879158681972709922053432686744911955280676549936556741014993878525651658205241148787880764857721434380583322176831357216043798178686162638134309456581020021038922375167493079111467631559387473733299969983277109364593507343093588991258966256986124995629724817713833703458985977483142862592574576435522783349941678769864901980156003791432367165101085817385546471226762704396524114586969543142681706221280599879104419498855070211873958336504936434719787568974828907061929166541042892542542822801249448781138687190859864517178680936911543358790375971901701003716348325132961699675822952821002247460052849853509977557337451402865434838829012156948344425898744005779108026091310823632438607430230895515912840394839096894168137306134571606477117597531813152476273865448727581818110599053357698100142692977231719272010060600035335241547857553831387627016318396728800952929091491777162477040053752202460417694657007701333025175973982569032427730570681656187234384779441208014102747542773115554492562519203578599355608522579567754958872948948830850804581902778484094752852041434194456807997137604305790608077622240341204421844150886064013851056142142235494474890667960183884328838121059226716753242040742649504246813036558234048122379511827918739730951608602649335540809534521230755423956844731367899132596434636396301903182237922250937160508914061909467609774543206115072420365384875724845370213717005835966724233534367347030342105952021827596232416529753903222415583791503986843585504023362172532400285307064929407760742181316508767284793538189030609076632784663613790297077967883575449749944547252131694693398061970562536032645224681698568095718006408524228219373314249419271268657969649021039454482261855494211272885873783617277722559583980483634981456726694555497965964882895718262081099640010527771976003779460355524921222488990829116738775804094294698057679445684387315793267577991021727590238496752321636913874167789215529866040366653343750601365074955331646560636570961692260662512231121346559196865303713564445705475877234607558435188451047256276854594822628860122036662175890247975286663550136641055824542650948279810380770134917328835169776059529523088127419010905933402722993533263629925160461508033868658121071246027443851998804966073156507838832957492539500204264483452612394508499612754185795577870406847141989654607283778785018631420847098570540825111167826358497334263896249619120457964196642180122884012246168160606521211191924633578161553971560399450768301194937747569718025918348557091470732097768154037151891303919764161839972145774433861332931580632674392660980672234119506138426205854750570179095562546879259071185784428381492235836588784714462298008137785723163678906567090200202980637026413138253342937312930198976758178794047666698819160188058640519614105378596670174587506273808330570183142787113392589494528062318289012556521429618220525410945332696488936404841096391517776367780731672097615860559737029756924261881823361570765099682512323647198209709628892586660154853234099730746995007551805820035216432513382974357402464621586358797837821842027719360014037688985656396094768025053252371149539244840266173452504608376223993668556501838880480578453781280996951830328050603038423163720463182087285488682457461246784089231346771459695483053447957192956427211938770869566568478510600781574567748822393320377988519901949762054393799195526575788081754918730040969354555160587470281398544759370653067495217392211957262016172696279872532550480556296233500416152573857459308692622268578367147002763721287212639498237259570331282565596083589849108494949983978369114937625884231114853335601744405248511878189711587676604266493341044638406409407381079854901242866389008367689621429261952407339424143009527619795367188442650830585048135112731487303442479836967901399032278974479615441027179388776559916186945788392420238483920658363873582030912739872278812116760180665662785403986976149059566521084595655821094340366786133393659556144947654308163374442843117685927778505767145340819844335666250069554746155646682797541401704329301420060792635852420240376171192664413913847657937741866138076057617974517939601830154365618580707921139910863525609527215412550289829620504943978991435247597090145998405040596998674394307337241723940530200312931583638108544617656796980237820794290842245618834666594759658756778494416952206319502424780340670369634914865575347407766359425298405823619698404195404253879417933280460107123570418060262286898286227301463017833723461318174219873172598571075818857394998464226620942063186553585814792017307994051363855165636603102743855722714830390309116178107851717766500276964974399711556633507490978667099290285524472997307695899876030122220027982944472018847379390068938974414422939046315530172814792248716097091633432845051486799301666691034824627948264223458629387075864377324466663043578965776592876464755975831503626983385158009801902842625125968276000600380449632897736673952457273077312984189581084495721076869079583928908548010322437561282251671737090726862203241763123759974963835539283237038061546286429781773961198854907834066230272545806051227745900533618595141019667386129055094614424023948781751379827776667365369632220157729488452018092089716178658317425766244486486819373455632794808290456653856344933261647078079938459324603800650821510235927412725115843791439035447924489342969688022403861885888823705763512042993425979142295102106290889726094179854071672338804465333635571869462039540601336847062202427512093497472089996405578746756284312695373053540100833851064156383279287891129676872538776751114100267327747699095984808601976110374998820653400861809055165214521116537939251288673220714902077622950960892950565076898529137543625975307952320568657965810052047137127885840304123255972847154972395029607319947622556975646147156804494320737717347996881789179090924734655946273600687293962572564320105692038416720041552033078989256281420426522981940211627077440300163965355040107360168911058620564694304847381397887272071682104938482475087678660841382276612605160342237690426546571539838880322484415426379678895055136529286486654225041910595888613240201614373547577339536054935881985901541872329575666487009246663681262358954034880650976137368471385378392394437548263483677609402685030215528781637744464594334708240276945965974788349063602767605599647526842893198036785962684863047391810409172207523113478094505178386965691588584685395334336309723604154012258001492442470771820330956617672982700322102554028427868242119833002577398013559799791915427461222627043798795446908464796543632922044378900786241997595773770907219954070840177343504948887503236331128678443310869665350440302728469883938471539173685747638337960265038164754996541946751649108984719008292759066064757172363598821116297653101027921836115455570330933514878240529366566531502014545843763259160745041815677927929907967395131133760640757693343363350070963266023953944882327796500008738440289035821348798880400032469962768275531514145868013600734618901648448354537720142391180075618086123560177522337317364197712620973947601990619029071567502847823069043589346069395833818222289123351149193777266580909212798155544533763062447131298587369767683812214106221608979939507965956983479151756188240739903148185830359736868670604698865063944223274139589712780070488308723489126698120166333761677494876760020056917637737163225043504034654189109157009763992709097153079050309723310414549101263605385210225933405741705889977279924644074263071251899122481986948257825544696835708551146514468987221654682843224690538748233164599751855639455131105943982616698186605573244541746394170523845119846828541440499742913734676757572252658766171957055730068269134073859462142742532500725313453424636636006024866950656820767118412708037148228703883701501516312561526858659086628324784147741433219286430918923468307902831827618867309683868141703417522467417900310663403778307105769396926991782573423847703440627086587717617537143795906565826595573274259502646537299671639482981576724606758400273381943726208142753746081006356617373858042044481332089685445638744964560303505582502877810526096454088460536685816317163517473589886369899137527965861875283938604323574238297897289304509747386226206690044669780758487792551403603606637142918027754307718460063259308915938641548309060995899865785636670804323000820423879556779625895760092860830066261689298913495455333962993481973271027838382905319334181140297236628384791100260565362276812764598497008407494928607090969879009362394575366368348431407387003971023716222635918857578915902503480648116517139658127568792528310216434885795361047848158473784035213659173249768651859112805584693470662736886954753762760332272682092655209817959160732536595491074700086131139408356766635084489814549964042174924829283248171042590517870439509836203909288204989549270069648513036486091956091478717662933946110100493314882022296187462040008456122340225265209181185068823823378389075428073969060138631358403244196109863922663352908809380423955243907863014864745905949605522786461347405869796080536310910082421469054739190592470993759712611577349309674596359761403387958961751938610259835378294308128202256434758529645916975733554239048697688171969950468800754638883259373220240737076358658136280154375614337887373388028065166472630623442124698856799430097641993447318722592363872461531439602449742894104399373503593051365864029276249633993791975352704591920756145215377438490393707798079813971498856903214935719167469096342819720783284011239053388619852726372125561022012257439646857380159404615073969701128653225239132451382270868112104933637706736928023947695928077814777522389206871109077212609423948986626580954280696382692274294061571243742105659673851685376351929293957502688520124872909759979423165968502597305953065602614959524161523992969087706603767889587801542449238067661868061731480857250981923690837873563975176731315955272078154512457617303376214087940418126415480466599124004572926138595080806142023485403871903531191907893689805919150662854480586036288648324814076104114402625643518174927554694417231737469853010053075827363206163893905990513455479403002227069218547008216880211937790044974315222851390198121366564809070758679886462260384250098705537806557425287974143355721500902416661686124352476512926440271135180888404732332372441340951811905984592679322114523634909336988988155354957130991803642786331889983968866937496305117410199643584179598382660521619029669871207210193819831297701038208399610919843105657862147779254619951036521759317589104665473868093535991875721725225115360497206183144249252087527829776935486922918512378771192478784000491502595773092095712738093838713213910348244093377207801908867568514147295731611328969774457410791258163411155371752168740556073682675348843120203002849803465673070609206345000486190276962223157119392781256340812676630770729920028238618778207286192830354948903817459519855700402083314009301866784850829941864612621049018501074157350086840796757205723345252736493146169743275785589511720248579838401945677272563290815189820526263534673910569730433037769858092429200712292590240490525602437983617597383143445028004471666599063426006103301954701259437866114663875577791460970800308967868915258813144863050569907055875401045890503156444294690805601658762362237298328027929877122727891894305567683738340340886281220087648853666583022642938733500933495569640504557389214759337080197508594085679713963418266373742886401608231129423168875317712822599707085527380158828995818363123170465824314631735274383748486239643546058564081211772107189587656433639199821657070193076680381814075598048855617517626051932849318347611899633148317712856648638641914159306364076674079787920606585669562823403622129106767740660975118480695959004868572824161895889387916774962453712809565242037491876615721139286877325053001665099935076010952781273086097532241752415696052245579442155536524705629943128299322758343986316374337775131709775472512176061917533489858556941151993855134715158036345022640584411443003310909836789855914314222611754225786689928540914849254915426576101849325613669861367152019218203687449246842614109625101625308141334108273167147994290196055575876610166962438774772613736017603260939565923323125040408576577473810772372722042572423617961051214199502181559397899374470629762154165625524550455911032904492638814905615617799500363816744158805329528665590747834117996877060393897564914458105332546654515592024329647451393110686528358661837722987185982643743170558393066711468347534387489600458376165892472664907770279743869052029471233794546875579411402861927067018852682706480522750589286423573486760660184089179494715168482103861584300609892886529379646963800566705812360868041406831278757566158404174262552358312241442446164638488574321552856101150328953149322237294445348354838891880776677325367481011264955379047945032963409587938245733866145994633608488592128925069341454459579576625418278745056465182690558870198183253622651991300348172844798178742949727902570917573521031163500226103861461320120821684373725582730049511540126390011791961510096272759043890045839928187570821033268177462207306603710611984703710578682759994986947665030589077909576819038625572282695389430571758962897632712218939753130827475853134750118311704627982657640045175469028015974381646558477115644156393920367107627728961070882859836722753447817597593141296788869065474046782845388912473757828856750967787333012877154955989119436416724644779232220699408116579998204759804276662334024872856811706023323975268173886079824595765272718637187683803395642295596280631380214964855744290427883939916365245470902307319576459770912118863811861956269742050767611568597413967287815974231907827195647640600922768224566987540736400246592466132569155362152804916129760043139079146179626996139564325738949699616826472229347229710421820743020130003657857238327974456147301621238770425022054901282683393977698083745372484212513019961393218588269801643003036576558218186217214218704705105956149483337100556903206217990501708168788056142004188025866874427609379710575959892864693760468416986826037596108127870961738569943809605728953755226991986636774652815692267546590090686781265755571837008878034582442037907007510219551396966590844745072084988329766524509254983214580643030170945591201025648240915367246807761075695393381391241526093586793960343483102285175706886478500415176041622406647088064121117963531841874253372529226105355651132099123240928442844028680013774014656210626486983240341169789914992444790535858305048457720565732520897287951306241662089907797801460445845329614440379930439013318198225838784809608672502028448564895321562283447199810100258662667443176479075729754673109946617023438619579095404754275849453942976114534990717074009522141783316294038474560826517747076970251725143261478457109657964291410300471660385081660953287723206160071463759401261816038981111846419868613769149540330851513227537131685258875828700508134651264483829251653962585358319914310590734026788067913186864835221231925682470627240371677449644494519800702070149556663511731605947387157396384183093162407002662586222144450463599333870933095694707994353982029240686056530109666802220740127915725711925430215872799664661894182813449575568923639480751565699999089644678377429588930455720627659234374914876601379955593497748040831184832789153789382932067715245429343786212058319764218972974700749091798850431094555810317584787632938584231305337924360735036977962038470569094410022263467588145924997930441220136150670058283481080742151999395927742097743101675395010952359317831830011190978765015876209172771599750423737766607830539694938189458370784225035331898434568576155216203793887962571131491977838565506621537654110299923326701680927322065197919343965614512321383082337677475950506899160177863773703502154799281578073581391611486916195606673705559123326661936582120364985495679675649696184074731597516793520593827069311926537659086686356689443991774545806790627278832538573775575711822026848945997905806614374033309580448171054435885889528172440497671785363823569297181637247342184341918396058283571834568117460689412241503754170797596304268498821350626530987196942690677086705234458124542388459198041800868941636938085948772698288897039843587428067365178313624780095607765334405485756992346484588339464954209802841218338657433969939504206870031767159373369054005749577711259603192096361803086986465314877984190909955177173936086049048875448820110378777263475832394348257036683481921670650666761974169114493784147412862289695984766438535317463457487563843979231084181343191088637551309977454895077915969975765077997105038471401423955046532714463325662030842049316921129554344484140883428466404581486654282224544951502793235414030911907985731608879157598329261776524279303840341187725483464618741491501906669126451867833072306111594424115070457000540196671712209955130147235192363398808436843378368916511839577356000251906827503798166237300749721874021906203378141639151115780658813355725909262341446002157422575051989099704997808005225251236612970368348579890839958435166825075619220054263019782600473087477107080666500442393028576828513793960615461838122480509570236633486167295962319204225511874490900753482244963480519645990977265716608924602643530386135971363693593233067485753975993028149172441083110660782543061129812962563731965876865701093015972459207843167214355380583214555764867479339273306046567696711472926080779451332916869415530530208411702973977944669465511102604684036032011680383448313228030039238634412485210449130241704967431782014775753686762519391324622997456072676296850459163860007437737886550370763744619815528012740971311304273301160786658749990154828641014082443479099882846647614303434237234236154091879807766362092618171351451150110966810525482758775029534770365424703311355052341077236856108172584066625107003710401636766292299841009483554544066842570695253323800913446306716027101111462372641891271088532660657526565815067212196156280530685450144400630855810590102875382302722689554128174845168467992049069787627263729947461696789928073956404261974304587218005665870050527937731620383253448179047405623228427498816814572769940360279788720420701163854701872299959068223596139080108365837017627956898588395619310438023925994164541045234068657833345429337871940555425709948017555232240841307254224308728793358800479582080980289827078116693219363441190675657160707434876422846257010726783965337758325127311808529699153589951422674376549242575249698519961602345023742745545482510261585016313919908198397169581650424874898269073989465383340917291290651894045180119219453426702589842851865647231705733971856415622317471698970637681763101534668253827693637375494266025529049143619250682264777917314626747846483165738909268188231671204036760997124392002028968215938062539085485954678543905209424652997588010951454464633128397555975310952746260942970417554512504668129951120856069495274705179915581554805096139916549358632300996900132858170372744059768893412567568838390504431810050065142522413769607152970209358527918523276664043600469449305934579062634130072739236924786690332218342652061181099622884554707516350894968662740005957540090524246223183527497480243064664476303992393718743993251436184513222845441716127846602455955323807973840011531599390161959858069976432136450849239495408562776616089364750702968463101826218069257569190777937998058251540623767943249290167962732541540095392250812832759422343165723955285116669740057238405870188821941144029768653212279827221974881223941962352486065985686755825787211084492649405022331960523570970319545298202939962166842350146620732250320001478444343077190508328360741498524735659185916810867348251730945306484144191928460762853246975016499610808190344398664646279159909550568301948668537500472030315309729510216826957510572080240745196205118684982664987919569999412363481026076896463881588379292349006417799988659850870944517334399949454078586497669872867927267754556497646912494516122963210608903214231824435583796430974942622567485025210732964048845833515499640970971474614698426372239426645945836410287202163939033853090495196226896461922791614408392046213384327337447661411597609216429261112899473560074615060291061379378737693521049257468216158878067869344671916222024821097985509862922777158550138300486974137295286659772460678584954817226538861612931077612837455850399685091657104008318273125962939494645199716931517791525897180736359441267986689968482784247031552005264526595275553159368395805171660849716683199660397252765408287374629829135019077710727165319292352846141830204166568579431629013256527330974574235902651597012864330087638115616562349385058906075420615081626563686484571533095963047987961912272190521736710860480188372637920399840498692633971504172280396724899330116148549967417793013758871044392714003703950879717616512994762052158481813372908172836416003909447895887142981390535512560944084547978418883712306335935501649545661363456852191580548583884710916205706960053740461199522285397040417328204035663467889193298945080125248516910652452883912664257397053036770875818738429880963660341888863117855345859834277504730595900808908332732902492970178577257969965877674664949792760195402779250615225148621942200353119346012401851912665097095994123280833479215531190256507268377106074725107391849961121633702466866590567757959224231023736680562569144847149413291597502156673625980626568536365602823203197000691776739337740458834183047704986608861583874215241626740053730114430617225743331622377489408754774600187353725154848498466396486807595217598577986865569216014683294423718153750965077250203167008955363255154275920497354482069793823182712126607222219318061451711619007166109187155548052184408185755638418579338727099403934092149726482904074397916821369820391191352373468283692957881599294145574386816928184490342044179871364363159151402282648675820691908722629199053471633984051549782713733351708381890725783631589499169055994414208241561364451498740978437317371264816367422629904919081685043445941423725256384688916446562533890482974182077096159626625271357830870650291187803460947864697612397485315110064044085975484455186979860351888330107180755585838687668504293828999837706298306178034100338889188519059224726041812312062151635307352669803027683717813133421099580605410797444476054464095155785293372574550756534183406861527038426088645904407333273297539127227066034265575122431384380001406240084510447079173745417626283994557763125150255179365802516853518729789220284718255759749398899327307819355259769327073521485171272607579549436772694340886740613094803761709232217596361824168132433537773854903726898407030203845364081958084770307088223446257749927040989881468806417275262751516272279880604280756082714030129851327515675719665856140275840394174771414558188468989135810706228180567219830249876763814242635602047695843428694568132961464440548208504443957737469766765260896862523586784000342682873763770259748722891220844951926864413932264547875090629574821410259613955832575182046283486917595679065332670680850342955471199499099832921809635130853475237372730704066358874337924532895149125821327627082055713985694245264317154863297454533529319809929161544149023090488948403266617789356588226285729164056081112280270239342980243269087809645455904086736053304341683658846752988675985527439971460575903809705607421311731681112295452215826487552961887513249928745131334431025084623676605843439974965970797124284126601285723757488163728986024318396287457847537719837821646564898100145875943709858044614774288491846082977079676783070998317660498593565161724901751233418040761696627233384030949477390506053600510822958626664566003060798310572074896503715795358200495403375647762085945058273187096301126897222830634233577457992286299465858241295740479133964055274806340230915156220800480009806033665864557513073133070897348915252325428116774536198370803217167891736025062585736716869099666802304656865223300180422864483168556071719827561049368765635492115650847602678839885286283304508662508404703886859635859295176792578669461753737096594660243008067249630679229147001784612416745226406717626469456406469367063897179314757830766542380482472369512753208812938145034686592869788609765634871822937816811598558779170492432104163597272604930800733097728779372960322098135158166647001747914491131411835691708325051476037721995509884801187754857675946388595686946983615308155276337280367153239910681777394586656286121818488466487183623629827987824414184751258441604918696067176027438397825448999914823724452641995624482671045020634525514358289284664164061577568283145827637928319575791758609016357192247570217545947701975784574439923484402548962723745750781083653023363577150983665857262849687119499110945843724604983496351881906673683730713043307233006778391551353080794094743749250311397734721260391566421583743151002527055898660944770360957824733737858337291372588715007468135497115228269087964726687848484936204616015231853420353249178057549680064937531597892350094097405163681912446715443809745760316467716859865804789013250032659519854616228581191790470688652086193653856123234814304980532804053292833046827483739226916836817820598565758716255306514546754506034337208728818042978107987409861477811562730097955504139595769543561673991881223912971093139879527895038012746124404417359215286469860242909062674572874361775670499925619292572819920332124933618299607342220228975680416264269693202193820915062338851555452282810058420134918296152695205855179651024903254477777209181135624306426961715726286915604104494048324083765058604849785110816615927983883423466582936585654566560342403738595863422178468965061637393626450364080808978972869898652654305406272012174327758506567565993546973606942782351012937208142773532099070678592964135171028059143891955211428224301767070303635974549111188988092319187671972691282387227279076838172099267406283454356631344221224654667382448573071917813138810931118631929599370140258759349121539856484842850993006456153480509781313853069369232113213439101904941761579133086464043709289765066594570356358264209389956856699161337576405961057163570057979318559551956708990218704058928344257289735940501341921784106610360846440224966086142689068388938494002586973993259933659140646402970119094321215192872680456264575485337160787173413200255747961342296285773206417031712796301004733881226564888012632913542085469981955825534204538221507789822274611457283061098253823742118427281886768833166125542067398464887572792991311407921104145962456011648281691167193927315923403719035960484850999545960690704084348693047482804409063231099306539944081468745429719787331743407310008084118831264102273651177730105032608842668034628264299411137867513976296126042211658173211946323026074386882921338225642158451384957732764954039332743515822468006451914397927212293017173016518770124548262452981972417373785036504967295089260776733274096480755749628810576848170887036169200255078364101084476087429069709493464246224966326526259677594256318672142698896671626566781323944759711920999991309625078882322589664749672494542167531893204071529353688715579088947074905749475612229666823127307959238725791256519239866600645569937091666585157296127229887676574034789820087480182926278414073481791722944590523329509133280727790162957645458592956652204028906378578876068388393879178658059972382766383101585303302809492810430465637006403921850908543385306877853735055934061743731665229152125680677454324448345351875539555126804803470208089742256189610900228683306008840557564685538462140674058488460338797428937230637457495941649617240569690963803450507754578741869380674748501812224251272371768046333251398998712627309061317948171818561192431799601665785574875098437757696390748991728653436343013693510724712013709340125343459806518597595056248905795224045560712571910095335320389434410865286775387408249456088902698211517520267901792806205350430967119858059002635624655114611712969402665950650853793621138808927359496811867925349357042135386532764491022163223400778887904041365523563537128865287918994871931357315272354576729582148831196944520741923890052641423825259047085734162179505353079384198381403418222478612254821050514437079931384890951873184081695477479747902638691152753460902340156727077727876333249113123843668860234308444935855791804513491770436974196957779776648020231231483092793828856424050964260613674921596712509060915115131304968619030615332107475380285484327552505892255777312217943139671903364574894503634749813782782081659459669793460649410190444726200167123098317906834399418289063943247833110313541520733918032511168144778614300427978120191816019669052251555101753201065305729605984627437550636839576394920354599958910682880902975931229135209379088353542775570326595429201165889656287557966833502223024126367396504259719347113559813653488226984353799531860052297948023950022750442674763554547096130618725041774626822441015060723231573433195013492091994154825113572692566639646982323211798244855509164776226343199255226537266328014874169443690513082680201005202193678398997653771080055616052095976962416351738827183422036762060643620672378692796349280481655175584673499382169026767844633681153106291577576813078655147374803492239243871321382850724802164132904974646264193060866654450540503770455474920266574963390612127259896843960703849307374426338450952071304816503847488421843230281992879436025650230538135377070062546064334653068818754888626502102688590090729321302046178834008209442000893717765757935046877523322342122947747432365452222140347431765296620351636700312591598112664712693062802356667198350544988513844746313032860099544688642847927189455319518547446359261863543185891063024559852632582888128772760246204138724732127431906416575112404800040077083154824837405501935188029643432168027975491390901437876658845088991102532369422409288455733240536499698554222342432801961889166939876277554302799343362651873700623632756161077162674574487408314004827700112091951284265576515780909258045377300095796806237788695020384534726897047029530404720142706635098034736097602776876903519310924559276723100140777156243948314668214240794964387540890023061354824057884682815767691003577021821994984399769192241340103021746700953457385618516545885081829621151951504633885243947756458226054858063357744939209571541955053812287242198753140929812080088282129270071555442326473833546012152973861304635558785456731946432499440559346996784515801046979009363335606405624017974408888392099175164056451863015929148127340007903127552651475574394958466663315686892263009061274885221262831042311330970585246581154288237431873648882770194773093726267807033678530580002121930575792350380240159684177256584271201016546814776197950138030567839947519706862539460674286884072399353283176839785029790058273409835722611556982778288326368440302744022323062630758113654172514532616794218872968870295146477883590091347586670457041910840434507740978954632268681486158762586226881791239797229940016533672089751284044291816455282813113068834126742699884705259725434378432179329340661071053113741615814809721034327538948135835447282629078532125219659723373865844973839596847412733614224389053944011961338123119382463876540478922019749567405768177498589233078131198782854490582284661903714927164274161051499502127915692943759204119490876775522261171535326135553033857097047790050225616781501203020336930227104611780943268599145182067447154797966765178435695896981154158005581045227961021104101840127267850575729601322483671914455944013372603952615229686641424607384722149687368158790800230850138698365722123292092403453293867593704104512800774687643153115406165081772934517866035951075005690087132174525376598894326696082795783124925112619001442915032948490096436552358253306914427557585047453104366805409454716445139752971448365125970738085222461221628041314281804584530649832574422360672186605428471198468229645876411187442080269772802734209132708646050914311157604772268416730736272984052986150300609017564901303678106923364480508874586134402985376193333978697691251469617678417757758946597449509530201527221345604006828686871687130145698455527186072130658846459253365681791295162046656341926949954171762212933852948281506267260574923348904934679204589707940024194950489586428012664296554534796992500542734309686603966224831365211299538812189261540019135628754664471937615507075130900486450797401312729052949982172719917782960298787603195361825414905365665539778565146275893338409890921701724443567084963371262866049458751066699595440240563607863764044171016100867271502022758949663252182808644072880084053319377396199301433090960833559604362872506990389804489094225710501590345240135777100460816475412983780109869892128167012421641648001529472250858974263747486346139279240623895103897936883751241482993090601388633254731715951053392681154283568572516063590518747328437300253223309590873514249532792559459507098981456860815152378133976987420692133558263036886381525916196294313337475383233349030060471457688641964958471606967235151135518308346572244083950046202393098344367619730133927158337901338363379177800164237096751018759983578216695848380662534404530938948631112260527908622798836658574124953840253685181036344836402764613354785210327654713485013055591817457170032115676199012504791647446995594882066205084214550131992295532439375467991955749287395333506569451922725171446212799858787508910024267770144498977033431970134249702617760553097852425173728689844281485642308434265248892858655924210940803245741548977026740175973625507776791171363890867316910183335687115554900756992599507421211792591484995603993099616113679304588118407439198205163596946589372111468213138206536882241551624707204225889903718472249755147031763727659145520138724760682531964194528162873026545881834149140264620796256245687580579156609137080406215532879078377414083820520433316561368633582490904208407343678259711381487530755814706175196226672840985586648782881925865559322030278059539751001538636849416019283714316867815563504335072160007435315877172644048267856915522720893414077425246034183447054762118827832324413771376025571257641993231869913429210134872485862610985652746503419548215254444589512623408330068684919497430342922447959964655329931320944216517212326463348459322076119870325539603562184332088786774978616584062324687015631560330477894193091167871707115741540202482342939214952687044330502499724198301809417080250130927443511419237609700558361707133114422655369706668450324852275658952963745301002411101939298263573425285065842171578559538237503653821351446021022173144317629097567061726210979713412164950321880375792665453443301456362381632984602149648105704462762855128890270951780425154485788331022076292777826412456627641386750620949845721008162918516309672545981225505145818004152920359177099875631531739599677771293136455666615858116681464577380338705952111835604514682953292799164063173138135751925425316060895690785262899235105484010109056497315798950958805315467549101319166649310435704673964914307671130348540566549528460548242563684545616622757398077944176227553624413422975855930365296210269025049718285025388763060945218134992904346045146720734651368055999787501033767029118186122354220608931985880120444077970102712416332255921462438265236195489899371129231859059334055414881875132652172219126839021079283690732002293412589538158719876232290707691288759866359676508620304845881836992942646923829214254095572910740773424732567278465083517093473846003661446186227007424681839900379088965808743381052512813126192846286974729615996038257907319312621853289987158706041314711894342491512918907825235464719755968412222558607353973620117566111217075526096547125897028175409206376088549135841444802164461618699659979262553693516496790380956932118765933165490709082339200024547902387108114101326584422454000236846280975288302142945235327683744404391369081048583720176288413023946018129126716664956109324233090956612636655733085137437240972651454816276273147583190280885275998517503915886320481894698446748606510147949010142281894106616304309560454688852048649461219112277123340870553404448411236524744433357529683380316886159007061951626204343647631543371728359091181968635887359149376877773143928326680381423514794893196856081957400919035817331270775412175493531520787641032811750822295216811059878392932709249318351852752432629847646911561040964236451481268321385001529372497452863713784522406212205493227581288634442742752523964507177735551770950522410273043846500670293722822462715710122784999973330286016556215955619439494182688210272456075099956794974316406057986190194969774497983097412645918886651294575723381548369250927885456457706931781798217246871462645377219556562606359550390235281794234956426399162502977439493998917259501953991836280880071641022637749019539563413967074325315204627289870907786035129504500683682249644696953606890975420568251965522072212545397712277922001973821390447743852096149204782276808423704374360886201194977492794044855695287980678405209995950983554473648803074220606611581246372425067834613925292783786706195876711810112023090167782803181005386774621025049951077438506117522573308464735244471443360439966902907865405565382771603288234758787948339708739696590773213108686290628037149143301983964767350069326585494129000833771821589323209836192368255952914436527720770681219017277548639009440072895423057122628684788502245897319604714609167356182390566156533293429516549971909857183498785589908153090626971604908222224899249831350650231656090055908387678646634673320462385557375966363618456506364605052443701187430959569963045655615416279720080923594520214687639493357360843261944865901012083466932540950730546760084122184335593989354327175395784051520461891583325621299325751574275204845925363618090992306653012688193210759808169678784602281507900116558759156973301561777175685474688572906336809011640364838852628762905646856613852240276493779038919569167744794557430171931079627971001165985992868738801933819428501735523562937540434532713895325150608067774591027237934399160324251769983153859493383266260904002506257588044516157913304417461137575057179579249314448480932613134396796644300503697972350725850430639301014438742260613762422717827071451188153440925770557324516221035977482871251449803347655247302030501091431201865208642680332364463359600158511688228509805608483618564935644285231449027919312812905343206076130466634361215907260965354571095932368357346012277642330844046190197016811802595235278773403447531060306742621200107383683486637786397950138672873679329921006478588069597399609082979635677285596389072287965174523401063680874393861142464486376522117882251220771227245409100451412125858455202983038883322221167755751615757503648028007467007753517171277275971449803329034061876198490045030974780805374159505089129699129520926176742884757736053056664250190094567253304342633226037497269041835928563512893226643449936958363704371560782068339602936715100528360371624493054704430062516976516228889702182570840394622802097533760077501428618212160640654771683555836004380177359515134678690104726928194667151274123133644514841502182071469574918121583415445593715932521898877834923711785196202697805618397465939425350280110320561946337328859597108624729206048941960286056551856087399669178991882983955492266198679157122257484507352978056425744167682491886122606167210053721100241869155999815397555333000490423772615663715983450312560731370970285767309761786336620418919999395778974676029775657049180705871697324389592956217858235940306719879587929824740070047246311133861866449174244649929871102139053731080180439208458373544333142189377293881231393873711313044303992850302377446415034876186393928309396603816498512289342677836423958508786145172307950384746900675207314612785400375846312520781659815328178605460185158252175598772045132694637311170084608399590241014413822939203768849214562025492984679632127605472412721695490630706274885423527314817622418605795339076453405345639284824341676842272160030575184499997080999346202287002467461678706426474320144239406877761836519014467312655102783292493601449654687947394490607180301340109103233439985638304314510138644502348960220243903128978173425473690317724502377166092802875359447964906589444179085619354251765790643796427953600862957967899332041849015918114719041883227650287958256322232525588257866923462616521432203977564071874246490549340206917756291183367376732443889425585693730356188247096854242672643841235477817758374389583250170520181011722154133277007224214674381226634484692933568864348020136640865634388243197542629663673405211775488563511940385422801087172357032463191208155842099752262092763588725743025579741529774741627056797603098879471257784187854734794028521933734280407979865624115052900687862842332060955403778620927835517338931061624179740928869708927781827539861406476583600623243769186769223623031151071727049757608695204609371459152449014132899201941926422800172424289189860653021241459040449382117916121692596904167849485487086846300223029808391327025062338819364190036376762284674414018554484258245856034624471038194734097122079176615990591332281221211042639258204645488835041253718299076397796349717941405982443659878717658289233954515124265638919114618153163570735621322065444539134530012493931888260991676702626509638053098929511829365767892978452670540696153525561704478740274765188245103526827353995131036155890326037045274441763731664063928758681788854338435822589911766046123574953908979787488268743126036312826782400411809852279419510591793337625860371483424943916740961753469121048888643211076592814096421101127793676062370851420003859884272124245909728782677397723476856174847443918049067491939088170514696876568653860667629788172819955109137715629002664152546529681584979608484992913400408493508695573290603363452642871333543787414043912344909912351778174408635294133500596068351990703332858353274290323225576970523337045796373362072603182920866695176010192830113005513814402980494973504709462634975242055386665088695261807822480453815564672296603353016838201020789119042610526942355718447407416290748629290962076942304012616044240940790675425272231545541495054406159846004556900488175242542761444954330641462527034849353487832007894031856817887456661279116560700363666604035681595752032528519784257305583265374306663294829878232490519221338882630638873642317209404066190120921862274453679238585997479732054483228323282205506183907629404397863392198745651354128977508427843481347693865626516069431705228474036235884474948802533918991323011865601532738222539348783028300315928107530764675239226561677412686660944739036027381843635840565935382664321562508894715419288830120285018459514287594850282125065216265572090062660757829262890244759012044278315177912039461732733552679676601743001626277113958544354825436497562513191349928199095286775286790829152754777069690908639820471647338724316364379057680933636274500719673838826287235849872818078461054143435597344976544981804131625818973978352213583141420320428879652948674579994227978193606252467249909295048229270970211612193268251617344149600236891776720241970239722418922349427716053509394353677951395300516619504800551982997189521361649204436285843512361254980824768948375269932550068108005416665777782288867198767988497275736077708200824059063461168792099347175750060531930822507081980634815528868453936416076006754175035376191150594608370002163263996004799277620606410386617568001605803171555354156998492668353986704258377305358095580466357732066578149899378021418685825537100231325177988238343794361741026576056466047465521605620006287115602353142796460070822444271184565467568224102517354944566834267744967694865394820480690105332281932711953848235860975080023244459052201624661463895700006464376278580169743269212563456146086094412186677535330313632033955645069950509977728435420363200052304279990497784686406868080471276499093048263876727199262563310316027570669898863996366693110082108143922214499383474465851059827959508354611203028688524697074844018916121107371069307527265190620760905106472440447740025047466009535610265483447863706948080962809880064807411040038757210690257095493739176268748718939529945706418096772481507029201896582822395994407648861110916546708883069848320685139593983344444665420821136908784177094129055828878464571705903424703390031996888387134143362150155223870354644511118334668013451276800078992042299712510241356018425516300598899418866952439932832321096658227208897176163863660269289169253300730384244268932856883641200664551808438367503941897469267525790089740745412705048862253985142557252550447303961803470292077861363299204089312896847480176085950101162160271452242802876627485224075265159882189505849547388483232651149824575253103127020211672832085255091248500159193839954695186274285882789769286665630338599217226966793190939993895701921914426855057385212867581634267983680751602877600613691096413061295792186060263410535150285936035433711731587449818175768975281213987402636205819308770055750935456186958158441639065894642049196891276552603533387224079378859482001428845071649427321739365744602627041985366858583124741002305909341898043393035666571582677057985028440635334823078202682096404343557791689183055752324434340298204389997607692154953268288547515302800300075174281522512349256542531898574847274194392048372590301466017560269128041300340315199598435058878945077006986100329541865860362694236008786666023199810971539890144833643577922071962085653350657539503121844943851775676915176761331466477340971401480258450762489644470018041164038828166631824591242488570995503237107000627852778842908774082744828124165447679307137388638625651086429855800557178177161496316542937059985921038465329203246857393977862959379905716611430328090540048718963935968248476351953320592608479241624784610166658627901972123997742360141586995626873043576461731857381791233988737244935013542941918958464294408633514437872061745740672237499600594578114162860432436138801093677767919738900874070650311587480943747228285437645656343457158183342545860014430004430221808353117673395798266641346480366253376672134188655224982703463711470249351305304544466526947008522455756985863297865780256942989633757055882571806989573482488018121630014011917236311646534944456995460992143047331225380806986429493798366109952423858501746812972379296378514716778590500427913369202658918832368798604009280552544236856219451599855311579969627798716047554928741844228925228287094450397921334595373511564257258083353700788342863360841897511483369397160550001612066168397473551637959197388724131877450770213521224581192242328608841574883333547960649729507463064855520274297302609642692584088598821417560269375884438062300057999286952235221809646864531890280217169322116563262016381830863736580781845706271468767710628932505731318060151283158729536151108446342346989369552890032532282931818138539114979258076685147888657750749037146571334314187277922149396690551922670889019180778691503811140939144981585350038942051743467990739024330551427734172372447378707170813693521127799042647823692285619741008742771680456723150690363084326952480252780748389767286869528191923358666385381055365680445393913517419350230493066713892459077550327945593270929488854685447260634903032411164382768409508890079068451409098872929676712363077118117395847737611535897915253191151253388399201204923766639993376588967530727776401662305757267306161271576236639609025379749397697464678410088024539627169175434418295992802486556182788384151428817608953937713571601349284214109897966107678574147714665569272195195224085228903339367147593756787425358201230615993586025413754647733358261848477497378794538960992534624776852722186709358279657652038358223475709482955282221002717543601336624943960408457650574054391595694073451654636480114281010732581266287230025577180933068191707405413023702222270680765240292498948664562908207673869246348926508687709678981654227055377427405854318403139257050622245554866752825708763600728792368262794534739903412296849375969475406767570784110282120020254524652187271341358701425558431284835177890642337303847937026378896795193085725053375788717698813891502584952392564877486027769073906561786342306074655036398611893195438750382849572235999234580891337037977045449800587966245502937805285482722363093054041905126537234199010954288600067436639371895044832164850037952994387650514128676130604533573686404047707598493124359041861192632405095729342445802356157556202717275760923773696344317452012000716514067110971565665248781323033242491525904376812508241203830051028477360581704126527643995678320525948977231305307809968300549762068669769371898728117956633370097116658521548944347075436292282497033243564534041252846095440295092597305651406674648568318527133351770433268825887940344298690911941596735768074700593035339588348736085548924100887459630181029924224806324934313311559128205454237627415323096752574415625118688481477098872034166441843695256626173330106171274549399576123932900183968119810078503452104553249728805275356189310671651552087919404385828092999903490278407510287288990339973000146105087558433792379987860337545928810797400088616918478702943489414087463455691563501625432409384601887909342719884360032496909167860119926822957257254811170241057146175999976029470291316924045782224418393324889481088237110999522985948872057570525500646867313184223126211864118831878688433161952430863868344730653736401521044274239018992645680851712345735994797998425744471796101684842857311003124401980121302425497131127924471494138866643597093134621022696890017167423013788648995976006840486164084844248523588927618854500683564568858094026462033769121932689765380583721353993628170148428089613754077331138790331322715478884748597576433638014644241581630749490147185836878219986815545958525364265951038408683412701972794359157216062006335321570263463575109093855707136810881402879880157477193385358207003444098834401212284420105276415349087567749487005401944883074787854267773686432164076213016896221949968409396532769763496896225181750030217537373809344541642568917107352688972216295787701955700357062847099552192237404322386905587148022855678181071588710925440745476878915946764069502869787325478908926094208926089107545413101448064112070907617436726626680112989403887154406171811717827122514916901105760220331408202708495883469199690622992474549175720750089080960016406465327320185102816512304097239524016905210302493598191440702424594280354477105079373344348234657920300452439111578449144649489482991568933505970000398080358954203385867665751545456146306081516871189514912644866526930936793296871821892785425230689914253892241254554805772957490618862939137898237514400215974432755187045944922086479661898459397447297679503895511138025864535649692666685890095705903180647766267760693896178170735008052927058260425078556306442589463907539325478618988051938999360456883968134033890469765446957455209167758311570806095383410019270606717115700076851013462873375663324342431902319039653896476719380982184353349303750086427464879311595964237160714659720739899770526867086014679639785449946844047885368475393992246071149326041187437267971715876916916128436766294722491408576427994095886293484501089317107710666130790319206727399604835043345223091091611410749484497875269597472268334333210742919581705723716528318807438255482779158401832091071652311487215463611834921903135652342916501785287667236640258872190000671808495550533592538890652999225453902527548211222031229846485121064144059451025371618601360913294907997357917211908424928503196975472598628200490662672973410237518927918375054363070497609318792656372216524338017135840669394768106828265233198922716009089544754444268933468629948075233993299724048498404554678809508436232491046241238353786738026856690101278089546085775855765190695992139729950507378368757956272669232103178453378067744951682903760195804713528825510754689969539195672913042738006824163369928813088889607879844723432289406862077427090173322262983824542417520298202261918180654007160618187580258828989888174879054742846234679254765139993657674676711799570283888858437837292211403911995544749460188000078562002836754417144909008311351222436465402041850222640885973345189217549851473786043500613554909767653629065957357238352406707455488709001073118515112934523195600980447479320567266237673018334634089057228575850405560044208411101432821071897335026109646687577901187623750043454624629024497164118572850753112700781217516160015571758746425328948892322693014042296204929349465020932349281006098408090588025992361680964973668536740863657871749624497959953449809044035302850462473040853062090582371615061503568164744024162562111787316954425789636073501773795462541214220321773480391282590610578243057871936028686346750017623634499063702394682945851474266674079202424074975525001401946361879162058410005093389821473705367708116429662668146561108113261152718109356724130180414547660231177446591216150824222753164700718485391268834994028515276464824967643959116674742533532723139763729028701596567582385005393214309791849601689929623884054657484353307867149406961300438563708280010888107348384002836343911721178749697050083290587634904531492786344842637290911215753668706470645473710253385167203171614199506867407138636225413591874290879104737313903372640047717551650561366607940240703978535223652815438355616935029106412775810791483565040968826529923795236613927765307672497449234930412014990858773748544807990222494750153616886832728250849519240178786858504539279657264077390595920987898266270124072845512271345311367483611088860549669706860098035805367728199094456611624364657930531678902034026954007730080825156581120045857577266672017689362078230084002336774468519691509293581153348489675654179637826369177632992675323757040394102449311391558774898680360618596254863165444388218964772077353280676066292231588198909035760664936289224329237890504192775146707901666435228940226027317943846282010401955521157653259657155847437821791325502968450897024930122313275501659818635328608386430120514329276590501676530258941626266896016686530227137645641567270676211197586752342965160927737313361306601591332609697715908480551159962709258841264771307151057863859204164025333330867271477649139764873600211685840184351334235447119862293737189362516711022140560115495501739333911027831568855714687482434130756367097337193845779868224326906772723466691434744211790489747644882283475563553958245435945255706241093033837950748467923622025284176595796981021700161885560651548741801277127202346595564161889352635885454984347444990081472016536282263196450037820260191683958950731673175658030320177645410662900286625013223812564397159646204736244856005478339596196282542452112988172099017767973825512935492883966607178115155879722905135605992103369409149585423143806348466762568814469388792087576655021442657447808366666407839808966352155822017712740630505255115618698796817505856392680215736478267183988482046744475194122342343523735971067362426427499578382093072542162131573820353437701643545946064510075684012854235310315774201767733230994769793622739131350156278973106525393798144063015974789584366534776478514542484667588993798317305617338389314468746443753844296792807181932974322274063771810201629631925371192991453761919863823316786581012065689672506986988482504064720955177367159438503659719403929157670266178984092485231704665265661663582361263696484524470555567514038094157793093427062946376937266919454341552674824896745640247101785094552032228587060992781051837258901052604630096919217072983160709617185735291808912618748667843255838035420594002208151255100259301633983211001580453962437865567537999530436516197298852635327997911590089336080912516120677435414190667747419914578832092299184678886495627318027356419698755035048071344823588291752047641186233031289927979376440443904608521165694482682104840302796992738304636272495259535368554216005437981047326265148401622320340238406357454786307309410260361481124228828709677099994378718607567691417356244702790041573344090444266470194967264935492436879024071605925774411418484767032692651131694916983099572611305374087281929981264077519345416232228507890264263187515588876380048112203770315677415717973025347432062157176811516387767227361965915472820066635971474978493369766377573292339706394812703239507862286948418759256567683695801067378480120991217657822794294732402109294487490400657035269926173181426929847669694813852034913459509866230937529044575488215321398932901848892248979141325089382512572537869988057332191136121436396661542489944403519146536246283911290159008230566991214396686786232906423411954726424857759040498054673703110880886021369160208006740904433672483203202088279842352541764721855050061580643911692690858836683762450378899418111008637666883142658716666608600192997357850382448617910880334810264138714495980674832479290660053175389363448761806720116740462641315110996428547635613191673209161561827486066631408023027264928660263066020455752553740755889308791123254897430902841438574456171283974012642661976578301401048078499705749518749240452400799529975575158678258554582629064666795637261773368078791011655457353464359155011469071710792544030588436933853879132024368709922524388607765688935230330001664106608279868802410240502535143936753139177207600242456442445473172616231012323174332420167941413447901662809054255624436310409093406633971609674712077732480289506873168794488409070181864436151378067380426223587688370504674785189524701815181647929241634311931145473547809751715097709865534516788152706276299043058796047804387395346702857928474413780964828382002218776731248938686395584826703111034494157236182573806315950230667676428840439446619688064459571034813837604749067879992929778555440619712400488417261473974976881730796599201104219227769923385403806825018984931688752265971847203135387650631402526375859785272275805442009635094079276923867476799417724220742231834706434521462535092482992213777693407688853136191491284421880641651782933252776387613392606045258807141015488015610528333833084957345125546593882990319519296917982600741960680280250799069507701831494927761664031761245797226204165883379341622631134088179718655084302206323341495997444205518292492976663694119623251889594675280927133942704577140062618727601691719354744121213465763728184950339888089225026271561180718235941044143826078230736933569331515303094236424986626944791816884715768947327081682638130837239209807544878486788910408467774567724720342198540569352085421750940600145801011014881224027324803243353999080887605042037443914050805528322613214642747414623223776860376867993633370550188340730815113870080446534344156315060448732719925221236755120743109997790895868115060783773881393273971638989514712625892354945265462810232362804415632733001432149478488324028877206066890991401066076107914054980790140814100085449862929861226098487227789788376549196935743348493151431543757558857828295773705618120714327867488851309802260549846747482856923223652036593605184304559069111932706512530374090964591528300546479883691124988265577376022741271149925925110752745099383080110055902732458378898894793362542946789675453605466966256925477902253024340442459109914024028527732778375675477127392175046046885247300858731986288181813138009207942135843339497044459561008565994704374040610451884595850453660721404578996534311339039842192313552943493021838430943825180711419039281656257360719643899046089871560555299421843984910464843015015120379435416065989411973774216882806918647206432008659757485620769675727335743946088464872571294000602911869528163581938596126695947073841030764498158726869380377470171623789721925524466222432569831101197201833483704184992154701274981721247552749821878008300711949969192679530219602868133251077385029786891897067023175158873096797038340439049973181689521624698875655949757107201637249963446899792977302839832523304812238116615906619589452284628518453940094992744011685486706002007803031797516834128038735972778422362010304080924621778865318444221706917346758513425027344020242448365798206125593836525236189674024319463525581820513162500587743403450707045833274408252807776924315736297528641367418600769436400402633910279503718410049352191471804823070937958124964258167555968724083949662949835948640305840306971079356950199769211093601382646200124374961817649060330838820944962365514607724564110822147573321562691161880356094317876244872617528819010414955103251675003049423369963430787659252155761235629316743712659201456577368306448118378770130921667746383714704890869826546765213883764436509036381106654073894372180316251642106432754327783911142026654004674659723806354642444924696801750056946127434920165042105326964041086058039662443265695780449886577099658136885473452698429716700663963612562485525806694393205914746815308884143294094190589701163789803983170357628459129584358016387330172135091124598733428232535836053188499141413957013590263968417287817766478386950118332554927427233092640417647977059885586971482526893839788612357493774156162472876344415835051269913682192956510754906730969797049806979266607062983889110074880775865857133743123414762392457562868927080276976562192177929511120496175926241224644022226365474720397155707675923129000285694012078064914618942874145152251258472482390981284077229098971206032686967383833444128351039745022622461092314350265614142985786939973359957991687854662110467928102488809854711563865133230650063591095207606505273150933784889515723378299649976863334886604483256181142998037717018475767965180871462962933493850119606612784046128681698470505462829326189669549079823066037927089726891408076059875027401904686794542002369029258048914584164559116968831315081135643131952166988845298883757541800030601714616574319556117505506036102453642083501863688511161343986153535611475143331575180153248417306328353475394663893114443311899143726301511535420447847489537161326836870759626675046170681979169004169604507074627703009737816477830730721113314147161051847720187684070901726697391252117637460490744200880541862825797413857293197320250880088350419114080504255476579054751925711733641363774913203689408295936606089453435569379048217691613327578240969695816521813688424117249195341141168310794511325277004533649817417915724505439263479461264150731037970321387291093108824244118878918387076674216872910078315740991761839186162342609519173425461551551618744224461468590071950264166029743634569720118173793374711761859377380859278545933154148236853524187650163985200792618750525746590952791423133887219106903192957172805494878650747754813841507425628850076253355493903655213746670782899801028057378748285038614623587891158701597457126466136499572953511295617309347832882181946505638586709753393503045840163831531467050864656700682632432039942253832537572970760866786979754277800892755931351631824992465017127268228812040480300358177476121354676576827172431395623984333327663984577794055682336047073026622596768293686050712339106781630592421821603179582056000545223641506908564161863808919347688670522726110094366610006659819713830900252871543539867012710333673560433152367089416512626721688937994437722778801156594840911075034653058720507074141378175076209346986370308984396684133526777470329594853719247380072800510707773624525829967732778785779461546169304955700532320310473463255230242155460424561548072515643886771011776905751473194759509231508314799989590990463225396741730086415592295654202623348675235869770156595422695718490405994230372162709507000229594129787755232308773722529618227906080975504061633536794834743288309423817180566486069824344525254513063699869045756234990543163175722819030655037193240950850382244895658735778740135893517769551960931745694579261934359794528544732332505053840136420538994096517577480719252799341211725956986202507197234082361933627836319852748224621156827179268099699015783535080626463693863607995424610078253903605392548129993230792605267259738977841990909726628333790591355263390874844140035673189650328655241838237697343794120060863119549779017345263318628000842687453068376152332232902832789306105852472236951011134045230948102596226740504572828580908040582633416068249794228249144238088232675003809128593934590398687561145616459516204243993785466181123722691796903146415500838907014917581719092449060809631866043364454576643860643927219819353965554689379658712364283273233033919782161328224391219685404373881744560597848274802326494796991892057873661567064943379115385330846139362581080950184349119871621541309327257799723777035998911137212154364260426677867998646102790213550192963988124262766846112102294596672541695752769276561466623926709260983686486029710985952523031547883781187004349767754364690815014740757048929020065678793207813202036682558037896643224783734199528119213591500365850922259230210397387025325997965454986933548275639881467249835846001093964574371352058953960365914047624026214635325830437160802598597306818524429207619137398231822438532444323423505090799633902590267659266104085637585407670100138667280883368712191475883194465743528083641417778897308790122030354406022481484454350703453533681126300692559286124214158189082740743075910756837322294684144700768597142989940532816483907155355300784429891155538998657245145518324938965998171229137541382638081540999888084869163050750606323287645676084736098991236708593754203310603013257831856803742736955569752521637672406959488385159891971581338882717725514732483647784053682823694079467800884500089062173945219783255850264443405174802316744316804759770853608289841458216698192442492287079229000730113132587338679928735356963932590736645923162446185634225163723914330474163314259553910321701530229210200753763859651830821553656415940329919943025364384364644029015504790281918865461682830978203481465010669353548160743867106050164440405164033785321314370721519207024233726066343703188068624371260903542902990064428016560429095464621370926966701204081464338365123092847500385072769970336547030545495408903592022880093992728483109070150125236686700331732693961721578447437148201046305659498718684629560390799571769546230137904293738304660615096197458350923421653502921966559270688644514664512409275686847202833117324198246861120828817247443404072789695710554929190926165333646230453586127004644154851091061748398237941919480090775383153993841199736956179479549475337571841706207049971761527676224437455771521476830034183052074193069618508961285908681044713535448961173794764624878596208402352838320113992704000034648596331121473631810211121831922113087409601988798050351866848346558813500099958392426175846475142743829162176762228176893700586982466309741754731126806044708864162597465336880124165574994521871325211184575460372904014284061949665358040538243865685574230940392004717701262492043973520217480952518927341538811863497015781835105731246232289664694458527737810116135821214772053833494955237619129317319600954571488281991345367694089493305004708883083324897268068359319675636366914313874000777759510248035219058245985113673667150967367937416300764357690296052000144978639659683618376686612569555969833003839712580877593870858456879817828658760816111514590087137903683730836517636878558372136687216898763237470113466074321853094077121839573357791858547078323621009123729473262959582424190770656574833566747516157199909646993334485810288512583670681988325521719132119335333356737511765590246009227448773405492948773562226962242741532479629997115695300010539748432477690744832833591851256553957145393596381618406819968931858130911669878642534536617889787379293648604269235629036998755322734254544074713016076477660693174413769731361098142934882643471517477532408684940966639466736811735031969377464625796345525919045593373224391214850973578143046027552406116733183990024160953344424130945957883597190793545520487737307364434992077203671347047964846903383645031840927964281177056220939361203606877283517246564776137627961258023349795855735359756536689244404850994296077737151534209672776748536101740490946961494891073621098693830256959984510158380476053353268927265980353913247853639647378326522195319740947371759715135058208305594067892418870660243643002994572247319306354748367575820071549401307088879266818225611425832940593124551230216595794517203263635393169053333695263051059634435468001253241971757841008528100200035931115513692105631289992268840857901434187510698635758676734129435045510594989363796089764327449843477172209702288674350823033734140080318196643621059689123389734597274158276681524435661168865857202669229959397655368903623381414952812274074523657883682291342639305725832760156952053211124693276427744260376678305779092245173362624544165681928717755525109105894569960485433277688174693020001548034583833470020337201938998224588369304489163512387831687534874034149481788577391317274999063413240788199256720229676475422449442448570303281527047229696842887846616252049927314601561240073757426578117622396160014178036297100336164608647993093018913219595670921363557469754664166385144787316323478463779108624588640110930341494710874147204992588120192846063098601295534112806941046033220973335194156548167693298228568259451496016044793875529319352186422952451010202108839236725101175336146536148005390542585241879641003313857420889104421367698722309925533156477194787718301181933873246174170114606113796622667515136019461286480309333988365444550253176650064965081825235793812774408705853397459579977643194795164126649524306148466819718420283240779534013251720971613598820692162317675093788404533835041206641118927838006236798677086332031628957758783322261482232110750845670451306518991636348778738664201967690900353563655912434932465020056957391578908849148201699658343295131657990861377269056106727676763635744330824870672881407261682158762850626594839942506638983117241868449171976382086413104348619815996972952965283798996576667661243903811329418259129957503644852411371949711981773893004593392638657974251363560180157357622017942221219025479930386105346818018797195887693517758486859831326286174611341088568977557108855554558669699723055761520465655958798554977398832761702141283982991448474834683847494989701182223611178149825888649470215236999563661412303338332732796646712247760086073887843256273144885837849991363699746882439827470927057070428564397495366219796235275523811794855764438858664915736535690903898694690598264523855551595407750158497192076099300602224150764203785683373723947209772595470243854655434517981448994913358013130018092458297518404900037264577379379308676281075880549782983263317805599354060041191580908117041032822024988640884137881100001341911321017900599111632220939373764244541868760391976521464343264312819419907715279429065894316460332604461881785139522435244689408696153265425723242999424167169359055037373151408806284580464565094133613925274202575539379205579956049057813941780028744401377086744570173558934457966693535718857793657417713626516550968317930409781150644957179603029377281066189451501560528597621111679016044937908749950157573069867366932792496446105516829093857733838608069696967575098704056529518289723916103372059894487682884539799961848307663674390077048181505112423956447837762029145912516229273645191285100137317781191000426411020867070383932526271933767272763801457994238988197425063349098927983950803668903241441731792786717183906070978710837807693519253208259825027678491050875314359853354502308188284618358919743514610971907972787462651100519250639001576833420749773344932843572834977573497548067788758932743789793157263765819344717901361781848875812819293248312048176962294730636454200608968459833271318795923713071468650590305064272905745237195776139242655821388211787919463850258541691458661869802025258532021890679468999057059475184256255882772621290932164493705408410722579620742974013332158949982908396343019489436067219949705695116043644800118081723364376798287041171553976151852307329820261043274610104704666970440258613158190503853310851385353555882472844657285551269198276802450906375913948921465207500822596992929363048045864884279835509294082260752113090642603559785054657857722938033506605797705384789059911108718095356038959114998691871883704977695734162635614206928824433299328278127355696098722563006013628392346163237562763220759741147716303574023049794726955094522696164883670299525386268535596227311422691640587335451422355563429921720150500819582292305168618513172837177801362901653876038609438958648897093076350932119065803408616339234458292578096488664989694324402060481221385939895565272752489956628041017814475115434157922257823412443432353843659580734314807362165048521759184941265838552542374512453931574068332767564787233136779095977206169492847930954278906786152948703451814828677096208105718970460029899163835030380668083187996418849057304500812582784907660192774515646397891811771542828048657589341239802958424309706410522095306011487575945752175039935600966920450040396503513545175348224584817889149391822684455375762532433016801608739443800167440633555045902250578618630673998162022180134862068983056873898881401742544709853493271465226268469139484042162584084902295401643316045818600637254522407830950909071014049775138326011167975556917057487787676683898713324993260840684869547759667134475236437769375694147652214753491487358014439960811932151342820807454927264496694292442805495019913684376077126255041516950229452253166439857618612675966752296825557990258915310283060576049129607731502206031718661411479442289294121488161846967388258850942059851447186864435787567660237871358550541974972025690148836636125404597873948118746661567137114435723431030069985144445025882233835207000323725722619608144915991210096965509379518511409426743174528697624502906063366955181081951916360001033235580439783938172018022859588393615336865181009297827093460339500094802275100289335902891404130104974393258613869220582325193395649468415227555624597537882534403834184381910047668783556838475953461279310487678431058996887661085380925203658236737516996269283013531919894583874165667638440096370469308545626439125513344812446327574958753561343992065204415304838341463889723504161700671160236343998622895539463952301837281708622947428010538384234464021669587203596651381108809180178860134120935122616946574748749412924121246749273848249108513324468608873002474471989376237228478733308197587760657356052527041168755724524162749742350448353875284642915741174222935455242593431852597367189565288786196631746745512679085818056840818192050094763759353022758407373152961854213074455744382547670029828884778876977651767650533490947264933606609427969921444632855707452545544702391745337060271310723362443314239291465963716684824388377242150551568383389038616180702479887610551436568497095193521647498106070896978076691210667732480933709706850861660758359708301022981048640357065627882358634285044935465085519021368772221035817811781580136859772420014546422895652219624322023603931571076071984515599813885202516212626669624571227677802654167290199491594203306398761141434629593876015958882237220369998848349711974611609220560402914817891698264705572036550775471700972795834714050545094867034117657693876447140688550279143243022076203577379076578278390589351361734010553479438307997147208350230677140561071394582385567590694439037322518258603548957500775160327289111336069309077234677707519591148278771066442844072724386674781234904995033157740776277415251466087597270083703124634114385928678107336404012377724501013434459999149810570645294483655898189296031181300756112661871190528723800815769369051496962363354677486483938642503640784208054022779383526404841829177731415381523611834921552193258208841949545003819120755306336295701622450736066260500582883202580548783061349445178218352350041641562133667905481755625020310078098486915248292081530894455748927855122621166718810086958953570252748586169695891869894195473262619379259059180258611741863724563972542730445918668160898730817319585611457117074547296921035053379575008724670238747415069540201706542895276773069435652466710866332461102282784798148744438085368991939293812560789255367430575727573447499087587953561088809533679136757463927739925815381914605543064129014059811427951439189749089816547481928532226456245256793447292996824405237960707835693994141823770300966666612197664707150771757040658816760591517272285824952213953213908945025783310568863460180188141312667638193589172807845926837397078411190610706105657730077684436170181584338443120651936039879254361609544340153099463966011579055494710561424897971083238219942677271531166062373122756338605224738971582591693210585658519423156356476715368154870557653699109133875712318492995331977589074812541069068589017992764255084439085968490605538494969636076593253941114049786922466803112711347521161917982875359979574102785588337427112323397879552338324432593585132222526471936669429050034126173278961547209380071765436523740668632234496273523307602637947082685278707428251906008361953455117693558127170461363505095380421368761544278169136183327146738710699667214167028155208398390731991502525138951728626000383279672743756157212923112279946723757248129580477792237236718232255596407493138504584103838754366901612249596975484560099155761495679437833623738692710487508350633648025916922225003692385507837984530615109183425849037698161212315808630825669001313262366147919723468438279418422283770903213720716024349652306577444938604642263947515011775055445057800603505182169557290407913869318759199856262103544590781869424631753802789383809630842410412435289786260716015740345983073279424838485194417837418512020377402400459370624070948341432464310596440391248748767597053949918972282153109191340435299259893588601290101591526580140246487326775810797183963731683610892862783828491649060642839133622378814648884503374207078091414658375614063587996995213356010604014599678288921829456939957897328403233945596040043615708877923887337180601464088246163452849376871549173710110073209108326095279256111616796204693599512593127144723247864846296646633919658514098995086299337530115361960371302178797461197718653509165901990336908610088269608854995478178056089938830090929549471533455202027289109389128003500988621566287664944388184459659606674597989741917096847298604597590368945374403769059963705810450224783834166634353284261927871645635115422889525138021934219063160566357706988009759468299106831328399592431845173686849224193357728987283722936967465402886485886466899397697783181410659426390271323196732545440659274028552575420753566614479866026669760307570625675690628106931523117987788199108396240132709333388195879660448767988728711341883849238134373052827898990690250510769856975573601991973108765449035627326898611417675652976294621390543873397020950796550911549551392859311450228662587362741879304624144537481448691564492492542042203297719044607490939283400885624095953609368082680944648795264251946275505568287432306334236386018262000782107439455145221038959820569625018795940622937377265977970236199101052947084070714377555331403073149026772282415897056260711601740394600263628621740519088095239526002689499408482166200567456320915774739736464975461340526642072427027298308998125185978199184351763290638566789386419533161612544682279406680361845776290013618713948515423059022797786047381646501464897586715084647650334936328018247800417792796518445123579394268609686119793007839723880557772743192419601513861003973951620000226979293426525908582841599355152964204519687516654706032174362688549212476974381434995393388001280116304020955699435309857326726118632302299662201742538942378306314987563908119955544865187059412220655980910807571341012003802270521719361811157515297937020177611853984423195859762235032421173416554335928504937746210768099630044264318327134506810420438156656312963835142141247238901833381527852742379464398374342215945299201287904810797809134064797848055322832791778903714216619773401738857421368538296362421029763574389461314981267256138794729670501784159107429903392015371589337281312154136594410752539081848248161267191300562075507226775341534568812377603970388498845955261416592372045056362624478190223573891520986136729998906581002333693608429749133119157547747124504066305030775331281974464902092308273832846911126733809606027144983904847086819703808424249068335595741058957880481764805520855367440107982411952330947776916146505777050073580840038910550282547354272967377602195882381699499843161336060960019027350106949269221904504815247614880022171717919502416447664656182154169083081982665528143621710814910209400426183920184772297179310879933609832082357722645288424937929148581547484573555821276553107904289999691340501417204797510827288508377241339223544352475394072017410449124544925713748825287187546734855843608755219545943743684556756158191015833610836755768804890278973464716972335471845838405506438723782503286229401342321302003072021031110119203150115439568058139263119724924497564438491817687853037639573961368210259049051200711861491472312524457714159670418824654635963535702793308747117720526986456495973054088027188551808362829168616031821589154167900920619615979579476657166063535606706624749343171209318596243379981551281194349234227072405231220581492440068485294320728182090010415742548500720522232300953590536002983809432052189127511092807466198922429706282708163188864599337071769075427961446063112606084762327261078013471407929399028089405328085746082325883636043761429491003835919826488264007610034147294806193109020506140651885974814722261947955966909874158467021709732888794221295974015362345151408971573047373285186378208947995712803052671537927833985005983458936427777306373710622452645299843272854379149317547504506833159670299696037131883185770661497282152629064081282254723774041700419792589532508594137545918418008430859230788997716340169505117512661614528159289094220344887624759084766619690512793944269585609190577057763678333564257880073338879408715053222674006748315592128108448951883152975253562219919347935396759299272505672669376660223153262452397123104085819405913327044331160657121724547907665393205096982554105524766805015389912941923057511646933111233111320602407454100076623235502194937913411020945329673019671683971150872573398645201082605875234378307244524659507744443349911756927116198702612315065718935502636441587967175142023462066861943076250578811706937649054926647540817358401108578258558582785400116625491873857109793064817041440058048033285417183460902241408339846850066427799610126478897594265704506254124131124925846036588316209930761585155264478945890441997532376391990755824228236247229228359570770464742539751233544229956945447860983710174141327068225313646982428002623488517644465987340530582833422896644997293536679860097796072478470466492899100777957131345297618700674749050436107756349280039861552402114215115034184716788209151851166990432779053281465452434541667327855447853107678932841107247417733126846957509230763337155245550237460763414377602540854073107041401449993836734957184532333985347695799198726727847753976693830359345953451164618517577683694815454680551770177850126463935713302553322058766452666077797214184971384727593985076727441365076552796371679759519933548342086697248315110761735130359516961733039945287927753471810119072307292602659956213654155368581715969113931947058132827090514492777907917651131254049814729891706995165656482612352905075764416927979839561900606176808476676704774896803717784806156333506417732328152487339162764896683993008120675923162454498264516367950238008937126600850601143914255149109894400288524947038280854183369820612159072566771031791697762075194045676914768368185894777581822807621364586499128594022281853612256999792586573232681985090560165735387179709667673781306545545301326842301237303218140336410163950136347259885777247749814121045239841832306792204953702157274560337482338520808222748870721154108219739402163407675302515696355506691455225826590970391828738022191267800795034067236751742074678370261037254553918554931710020706822790459723087029606696363280131552070123662072686940387779258689210215461036543385421320725112407104045879329078869651656047682149746534906374921629723614366010268020300067174528083597094386906736065439893456356738941018694038355484670548991035523852024958889530531758383206656488421998517764997565716233082961787656642025722178238486312124779296937918711779882023116466587595952551938044676821358047147201577248699624286882400169627353933016699680482844682590108060847570946934638283997205405499471626769807614380203347149199055482458475506060328396121106661317694812651252014031945788701487405026751331800358746380285586408004554186269787576687331173565658538148021038855657123332339316901744566000622056541224266627756073291251951065342498520965438781052108017042954869864197412890516056358727240502393763451458621086986696949162116992422508138150859210020415191144723790215940116838117271491282171786509372811492346304462057739469491008147640540985700156589205690498293394768492325861320758620804923140924892754616500467656481963477228129962945719085677713368187365306903234254349831437350520705157482360824211778100456803467771960787448116558299939188206382727064364076295239420655613025181346719875384798542532888657183441009995606872968833150430105016614121470342854416807356068056149637024990464566340206601253358629401403258341612905683799307236146172188473638437941526544252381564753784473342104881322465642018720231566975702780361460076296967127370113163054723870187972157764470078922415806192627884913331184737412439080471607153047433651937195967133317534971522610223367753269044592200868304865983689844091018720611239257717265332808118795694103395186327470901299754213814703050131577992507814153980139357791653689396507023042090248053203284261694347656201305782069861271163718671767721774502404885113376472608413570953715098147319801125224008797142873073906844700412613054365036209979262963083698543731911815247961172311178308661182172701678427616573578369261255768626035951959825409450375363815165394180394583380501254232375123330115369555105935653662634265708523322171573975002082697108114231134639814758166851712420657508134671100534999739950200563558819041339607148676015084150513384515597894763375369612586033889144466822919886984517890246749678694564051530592562531695140171865322152208561658799881404520525031015068732036686126424180490096621004374395839722150973904308637735516318681746124500987086067591915008908109250116095658382454378934840674229025247399557856679911120470692361018580853393005068038412411469255369655433864939763766617236633949352319550702836375234262723477826281863240408828706668785502752151820606558316667726841757726317404745488912946577983192548306499953130046337481344125456035829773903658801385076632037518644564236175439012842239652622019241593408679311392258186804469770463675363338678116694526826793595030695611611778665452235908961017266577698876125644476848157650517710041910135203957898155937949835321211430637410890414689607246344582068801333132678568079137419187425729046976921738445069897076303964826415558488758510544238418129760859846948666257268584709809796227790786959327017006018066253005118507910475698946307633052014965694204767467008965828729987936788920878858381659973964751412372196856174310142242860499121779747219014987114910587275609074709683642620901103413928672445985080482641587758829870763746261493932117983683693015707989852241074007710620193151540813929523948618144363609111019648360252397205744399667665627942062440181581744280983064319432411025772857467780309346950364452417146238133933972815807517256281874653763244744937582296261385478599718469493339769292791558479313783023550163824219719269864259740533061391181032417031666238851467241800299825666528956908463590984371728940866353274304244512573188516798621255639477576882415084378169035386607006010558647451738267895993482124790599842987799212770522674840871115302863142056408862938940194584534851159826891151296456590362385614143847824510755357857284112595759246472796109140649702589099058712693173895688174579741364591727497955658223384318764827894352199385176975347809083095804171614961988551287484168817943863898198275635822404643953911568361490708265523100006821528677068372793022580636524299991863191203534357317891974685311674482580031056819420140983154227077638972535633217364897912039031361655115594917529866557016026848161976496246426634257251908573348307849030999689026301116980230201049378648847345276970522588757773406613215745311623625862299531598418163727073479504849812680545432642631196223887438174159606255363425819208381799986056408742038454826230703768505147430091886901848345987508071623849510740781106247369025366177013204566635098975634853385405805113901250280915095559832242502664566707065510592768165374711429005500389342573119101231286286749963776021412951350720627920930405697643703161034423207221878104288811289915389535830113016192417084370047383082273810462373522327109501613910522356003628805518254584055643980959631644421370481091430099694072900358734099357614866617483723929421778268836808760981552100708623182487880441714351461081694476635267889594679414414855006875725539070975715021280714933026672134822764086306444169140166622741256854845501196876484427513104353100234685665123313953499673630069651027630920874085657541473446341041910075003839776146473595673273654720517271462216249505442830300471280717807733500646124164078981607187048198031471148722679106125576907168911749228121851516277239286544664701769233869367858198625291786684897488419579801393127900987412880396444273129989037187581398723283967357031070051251005260828794868212979165959313335060558306401685888737662129793470108631179278916990546446044471063398495492411980795482288935762403530828296305488093005409474372095259822912292338306605786621532597683848008666051237201571450928017206116500204805265455960592664575314420112670393888724659281103971466058913533914454612943872794094860433578934566848134703617620901532801317703537174230761560240433757177501737963783154933185256178958384902621995917953760743180923073080781386961626312394672331071835471486150179800940228399168004736873941320013233891058857886867887250149011496942347407248622980056540010177295130282780263189924822483610148409127218671434227970044487638936785334024129045406762707450191223389568288411512093685281185892950399337585434607195597489581609386586791197994405303078903450709495462551975313907759116886464095742211296212859472105037810820517610223208099547217126052461105063543159017473729103230924605819660950220024620506930014761843187464200259648309665958000892555675281425093342035721574047604794502491803034409841814322953135911478894905311078083287896995807792120675039775623369449982078443728225608649024209967126609053979862352928800823067769773122106935443166723696879182495721124866411648108419227595641589624828029055355844192264323487838641867297963219132619469849443127783662358443069942570260570435573617237705056949652588441423193118104966404900684585245443972128331191752320287873434213435630716900678398884284518162223692708135833697989318057388767421352581834019268662551076359005205151245833553466653571612534931356752076241889941152971377498658713065792871384449636543856321808470623952266402768835651359891412737443716460070749238994573602854357951507135072899742784880076549129452491614422674916713305741862016405255699914348028962456222827224689938769832252434511585783562445235593133878432977979505904227052732586009001238710973836058903219294279695014934406066400750306465028970530434722129318398231241406693232240961180274762743155036018284897093018634590440383331623087084410931174294856545717628964061466125597571383443446331072889098574306013665923782739368319811467326799775121726893293379089743014988589630015167096824183844315564617298774224259614775232887975524858758261562527585560617822433778954566333203816501404914888747214010922602084091931478358155818401130420510863098905362838280894384619851941379905404060107929378570478887448047069854536859845798271915590347763307165021290258529919959627473445108392033650117072164784152734455414335456114427712062796535590833160816624333833047165392911477675766785667828132765763514327741676817756415477071969186772911262850887207179361690675988415675069733991291040182855845994646419554174100575426559238834293859082566584710398722733323827590171235158189968392450138793922167930006444982790608148339183378374343509315998110891325344556889801846636904985521532461818769695918254331621511380120294734902002238027650112764646145945923625501221044564011124831225563170588136862053084765627830547535579538751044496641241394348242749018996459162626575514006774892424579219919705075790593684734792886371745605114966882392601606012896216299458983024023744601441278922159187349195811985319576240493236532658540281180039203800930868314405494184732385341449717740028204127302064102387845651586922936495189367876740683196633413540714411249025744090238444560244637459899774670660204534011076137936335394165556057985444584280961186047499247474587748995081060395629845369362197889832254345937980871133253052274239012633846236208114683600232893959264474144906102189169857463482698198134704908794378146332255038312493424289754877470132443357812465551254660654331209922289168435339772730810994606690185521136430260169437773873767510939022989547497452171803344576029900016846223934940795623570552985350001932514312587356285643947866967808581732327777337865901645020621500260582734453628402918757320641649323499096343896084297134083135927500643641990423038017122431392794961852835524629908857789878294708705856422987689104036910205992103534467011355535072826689747973883757922672862645473783835997073118949799806592360088599080413678817644370170375917329803611728963646870993060973056572958363642155035033779590032026692474563988150403562889240541106537941170379355304386230440737130732344577769129193186108593347546270326328020475822312788919844205187798127741231065726950114362323486588421655716192350797904393433747522964301899236645938160784386275811147335091299837444054283646751746502856411340213134944693778991644439820831219898201360358452449244442206051298817572851062553652728802355761669034774554092360394655603181650244697330359430670026110090503469860057107408592334164541226799544943197378462134003118558707553194016893481389817057553037538046527858163402940091649353316931184680717463811485829988754552251663566754272808183314965960661412860098948575743825385988444012619409302326147260999194517507913153742472534525117593948718181567388472643699216635149062407603864700614086997519527100873065434107685842653264657524783819161856104835555752671424370474795547936708097333908992322635978127829912768731748810839494245749706344531315919290358325926272631620613722187988870663930022031422989485965840781706124665393584418650583200095897045578258402296412141655417693662533185940173490895327576491828987498556625269479375455587939811074440304659973283248715718430808286393043080502852789156857280514765565198750628901069258386219706007516304396239109993675728113748897984860294730281803059462933879057023640827617590558002712211672874048715840050180462300430546290343275938217852074308125527933532308708558277931004709590842793966846451255693300686697437295296610152186123889283917295098458201251176700144808633383626617862247612410934269223289134907766271635754340488061247122486449907963468482565806919235219937721017401206349717093667192260662496980370778229727010810197881300997645894036288014014805151074707895652169861312350007691673796887233546829717772306741377469232277862227454012983356414311508529929960076598836835590136174821999038415829521697881270915351874350093520713658221062365760276013131957804445652268438475979550306566184889640405983671918649781150172474068290000069616276570272890330877145774195016445191788590737025791805871169115090011888827623035048852035441505012945325996850871389873910424982874829720715379898802404835877780684942982143033960408322563138375383090941414899887142325475266320919580754495642802485018275689530639795882184728733606523784760910696410736046137257925350869822505805124748829298626653850917189652849598281120571389846740926053131878454549629370320134487306927867039466005819516004005333936554200399649838039718088654087006826818851859283465610763547727309793267359717276759174829949452004468995968073742587246785059568682845995387558847130217965834763509032081387611124617357545145087939477877097882245134059272971399653601261267447548398229506792568834610846577363746851823285360619036181403386225617951642080200163346598510989248821212057363590556944475361120528393707301058340222643856842687551524439457381470226982588996910811736353555370050677196991617934999863168511661061129621003257402723520584189284313132891907217213278170679894814854029174384162043311388365644628089706647225071151528392518988169831031795655662417798877107786389531401605982140562592905833601958053879896367297692724908537616952073874491426030400238648854167137924854046403389243185181483557756426015413785234193245101071323231170233147625045476854597541392128511222249136003601955211463462125957445542768189093992673272977272279626955820056981237500349368553013547182684911145417924083712300664156640218450951485377785755432833047931109128583735765205921058544584204216627166890416130287520654204280950674959274988980368372231137228852699234433860725471536582430986990932786584098095201514341990839077760004281184074575234184609883046891602278232184836216116220072514278337695048680703924956880432872117526958060577641560098439053518477526068509014413741723693138000050050524566820160375590517948115602382760599416686437709051351513120520883378900754536570136182745947959430434356133108748492243608486284929862419535317889029082709527755010136775017114647404139259346903168891960231967247244084655111552181302154424689858220577420119710291757147181535921520003609747302759304019850012682870802782053897252767094091598546057395790296168917431992804360004094462066724755537935493216046026491975475823471502881882945508213305620089079883899380229954278160811074070244022773065356099846203873255160030875903012670914790251840181646155023451999143224386595121420551499822008000235585110369117571398589857940627955024524622848767220664953296103378615778697101060119842917066785424744119954075331736186165993858954801115803814016769374419470388937432532336709198961090987354119854534182851634892345600350384339369853929380851176146305352372588583425733628500719782113919807853626119402623206400629295056131323095116070589842832113771352717610537525542238263030664160198828992602890606187499579965237112691219896475922344975667693126656002328233666807137306391681180466006940263592429979151966543597807253860353875925707252746391381634297969019572259792501760784725727238214139796830874424768538041812806291840518342665752297855948994284339347879830139701634119062629380639567358747357726306547852772391591037587871318342187488331105384563642596327250724052321469968467993903832955506616967277687203004311167568462029568090938752816242986984218018805277669596428402423262214501201320338436412445495249313257652357281293240735851078294997350191977074110747649604300485069098084337198556751296653642741058651495813219301624690029049036100298822330308943149390351349856152157905405367222831475680306882872021471763929260372204385529449651525309660313558914888472386837136657112115671234521398696865520045164069574816834306559391336316974562337451396690740941439375285964339121587183315645529564908067786954911380526810789951900296288802811791772545557035513016223377663268744950326899854921907196907842499790064757796024821927982506437973987566871324751703702484123178893757907122783374479135341372280226677249670616035596263486956534505215216168556011089433594443395565899584029051778772741033673073990691133352376956495422960398638350272234419925400828269861828559922794749354987004832961409660162897674675332992399759244790549178512422611413860343366455604804677478437972777260193602291340763975423299377545854736169225713320617340293323605791431232494634078217377678284929124957928038922029544731011713955525620490578732824667533678593011455701607727372227324851618928325917287963542767792670094925259138726186471137299060156723789600719234852062322062952050911628750422685508347751046278033393919604512484008271229237634317260728648618288364711465986458385410608119035781370205488609985234852873084923442857564164798914734061962680134910547176311382914328132088436045779468603906876027420790508092540520129469876931833224793361275782405987547721107345768677041060118278143527580792153968981732879848384999385555429806298441515434271124976525853915259307491847281245346436066081579893179607455437202266335453789439357046676319707923038254725814773780972547189240758435487957434122675006049520407477768721449312103537993409760616039384989724893399255654435390666254881046313381919080546670359083801607660261946677522858213792090080168765859764176061852339530492229827813070298789542236894512021278309077075207898368239036855982658700586360741814323218555427325067859753878591933140369744748867874623456770797673276657524038411908087306182945878803144485203429902339507353316346964281059994933473874058602565112837692617899145611956456162687126313717953949015536790545224367797800947614427689329082630788885540510073410459866608744257240575223237256326729464094835427146001433051237213727958835526920488945540545019078092007662621056765477487815935647842960908274228570738432274434669476438465644600421417462954801223548506812803373386726632334196107858180692073815839065143125537629894328103410719789790909448582591209384630439020467114866328825662531231231936297860679226478787621622608391833770323751595478084709309330188217817978641887480651621162046400540017834646618611468842512408469681097173027400825760940063098986386835652184046137308094598428810528999760928736347549410124725926791219963955118280846712749178804702223999877181122680347615493771943670911806245052125385565089754308852685412704232346253064565667416813298652815401739406141228665685007500388470662552892754685285116557699456403499209583110974011663592112373572531154794740160788610171719834580119807022149434157931769975620085169296642963775247584492884216567129122012554960082169323421983244369062892257063424868481616974647304988002013545868731581686744594172860133647343529145221429183296813978439790093143685353990241052064958584084902330069866082640554144356936937207839560368204397636414938920642743814358990403796759259941191986163962341121089109288198338924162198455277538260126775999970712003414765485250742578564254271569915556026188977075257223552956393915586446145324891535810139938805675602446093826927844029505659374072528490279207746830707755117806357052160430858796728844456177044335360916013621836560842881819572285380053985122507969528579527852521247295863550012625224969207246694013296229490868178037368708296931734243389169960573992924686821336134494639609621447592155023028275694045982603958963507510841888432248351833031846573702217465470682850864044901066111453098489899677510563559200881461024646274674372134574463813350588271272496847697479412259765189961148310204023995804233535953234145337735434555370378244867491569591387063837337836801770727943155282240034106367373487857635014488634786885773114834965927423467211303564626577165337974343068746339593974460379775004747425228118338483549962996169302013007663824261819906012084061984998434603316072153399342950192933672359826418870471793417994774514484157041892310379768451935265971108745735121443313788339113019080942003267242350910077643525429569914397320340159636354139170792758356555502540596289153140721618193090273565649194989738838287553461282199228076197212443583145354609988631205282600940591319693255884389552644170881543329549348329079602374800387256624744222856699632614252466939347522872600761180884399196877442378905915883736991912228837872182238078079748260354378401266808172943144315676795246779920377786980301220054487529187177850921603212688910183271492628907984946183407766650035391009512413782490470156936934394053922217266696315425723948759019950120735997556313224175224830273679592306687073023390988326959489315652029183473344953030562649338282708011571453460732459066466369994341702755347971568854153914082111483480443937227226036936044114857791241512088251993867879719031983675196505217134809439590317030184915637281077329980891718316196946962518031625101579061230246098662663820955808696280308005757631674666739755203204321572442163912011740579148794752560338793585440019737638123730337459475760095612337485376029386028637028958241690628278803304545283881091550913147741247513821204202792496902319723141927237615976640251216130304975916200000981182014247367136190785529283853830804989212449347523328023793108920565844312439684726413806021446260055168886172358378736100707851647177280891883208047502050144006124866792505969105136746657242814251168055809018781391452110737588635837228848829215706735291775822675169346309443559011199902196888013364668189713371762710151845350312892766563631384729071723492527376204515327072738724256251390939538994232159519691529950301566118108172828873745041509192965797418851797695532861686848560718337467140048428316062662246297090366905607154016356493600160297352698029548496007769910295424981322409042474491361845405620079840137593872213582482564656783382899923182408123983751563613375708266363741958887201347473927978575276634606340378641414297722269108558806323390886810897307601757804743877946508669019736702036978938719171099613749023205958321809861742993878224578448891236458567174451487459191178857045294539823789158693234739614223667835143516295276754276985464633165873189875821122429660126243420196553981356192420231619488727355806513074978590835269130851316022991009625206439540848591220009232595896330170077149173379038173801782166506457110198795182429160886694117850701218019973359736529115159718022526958027573857103133931801707683858890111527815103368055442099065066137728478733262012639524736017057307829063204727641145140169283186888253527398654794293224514813449496073726559861964308160775435531251186990589546341098879122057256649501860644413039391368471734469467711040342201577702340598753765660624230846335655997192438987783217144420715832068334605556919447836122892656761211612033235648330068413943217043250994491200086456871325175838665277368850078831270032866405947268514800754618037489054012431614767347822232967492938368608186323027855535522270560861248238027452253679476315113382467605608543683637794819517477331716008126306218491567548631102043434115177837043000428633560840379262566185385201886340939918498641601490096634900113571383679226141735880666373069101362806791583512191087049436526790346284510269734320143386657509718545713214344148584784575989074653188690813039717894580067347272687965602130199989952222355748535025285849617777242076922257892353915735737677431776436746863291344369295416746037832109607715973564490715792043245772674348625890244168756113000059654435648384239893012104517740011122546903569838968171380640544688346593819935288871697668650153703825104344066551585831406338242433884295418997139867011663643160186591806357562022861881952731425435047084827111837891125381166978311946290491842516635779980517272506274408870494492531026898625634383532458613971885488228383669392032544951266712637285258394338815601211818497210049973567976859450626036278345898520897913340187848792494562632386382842620852462656131722361091182800372061115044498061934799049282250603143196244428083630275324562809846986871969838818971665259835385588769979411650930831618866477116522744648551083739929159343811448219838167105056091856324177010611854326530998513867907378271748462009565088824558641869467302148634585396039153258471833407639805271704478818826095946287364762665219856184676840775461574466207703422858275219396906171112794637206770979198585587180900723752959132880413292378056824886486338064815586722233707870184468986008688796891648050039748539744432053756184558127748689518212152673543195215025506783867831332172878094986885811639049666926487838976964289166114833960254100552973118550990880245986226762501513921328806208386116204983233199417021627244369014543838827373468465231618257273510920017816204172848382471769338762340603233096556607175538311993489127173094368603187961055062297093376364057777406910961587215618040765349021873038281101010452015809037349897792714667441900299648077116138057849002899063026649310082205497070800760522768806005146333499631711900249000413037663149951811594898614603721251457376511523887598898025510560434733207493591380982024260931924063356710478946388059076964389774001197348782628638000793846953085566705014600011318009318453366245210334121606528148301044498243360411063375326870507607859970455928136942526848388252292159901048658648560442708115521723772079309121756732420046822625719527501755578804850954697065216511523318037181654197759869564410904054328729393338355455401428277852111355982115483009659735156533249843530979254774650938136203561731505796041031341324487936781724177781049314324007975870850160881603995099824605240692884369382554020197503257699518454627545166497266845808439241311549398886355375662222259124670162985018846788519365759471092940828947700213443388796005827649005062971871232651757220338344773898255796083118348431695107812719532297662015382360674131214959154869038452617856178418096899919615755078328007612345360207842281188054314227577155758374302294663344996225884259029708815980196816856294225371563612574590506263684584231560876669735712443867948150933142378118330026955387874102660066952590185438726489085722363287688117365806008398206256472240774217907152414122322583373101512722191088778927291252718927098041051071040773598721342442809286038716173904073835233259786496345951937211808519749524722243376846390794050542576441264777932373175998226935256487427995591104670820623049316026818930710800613633825842711550078004393982016402303770324509196033453466438666085904688658280299443730723653227169549544727468200620598312521757358542025526562211104935880634619094082101988241353110229809382379527512788446838671051544092226093392774081128720828027933460426422225464509820328691016939650387943164985040681539385464620212050643764110679287008544485485298008875119405831083437025707203069972603111621956590924070240719133790424053625474402373583780908866082273035810502800323185543254679540845307209710379858663386760189232793077939445410374704206661840271043058740770226864386942715805236447293555365760049593555676699373476670753193917500616228819389481266682423701997128660154762123814865248455340901023940507776154526433301441188484526484627142553616544648866635959928950739520657218413701455264361395315160566609734032108757098292026191591419054325680468996212661653593765849084927793675011691633450891240392067608071495744610463007025753957325797969131578420742395469585832588373621103564674857892656691041020120447004806979769327573487581981495889276154247834110098969100316452515496288004461406090585879527422259440258997433078727330105436288847933590778097885260790999585667715432156186097141812560353607739460045844064300361608261782121995242893515811666120584610221965334538479483796269638953841501083309011693148406227101338395005480690266403826292298380057539476673839503569782041946107677054956341782177637445685150209848729679792171079934307933880858664261042583381458653645886270637843575471786381973631046821929183899850548753363069909083675436765452302834885438409555192770632574135336808507000744676130367680437096909568814367580703612798421282993665309976819413060622615871536658218693605929731554921642371699685130019420531981789260334055469642827697051814384843884805726927317617418561029665626373722693077408230758867993572033465751467369982470309160506502489153496943987443764093251053435940884187273000982643852594413352435574544190317603567703030872109970348631852993042549273749768786779430799516723054725560728862824086823810707799636229706548927262522110203702326089322619955368148957704664938097336770513423390604762399166875650993636819545243407232281623151651227403585218477881135177689171690238941755494118949738944659002466664197303533559150104461849740208079535796769383553104506207919694565045574645743878685540500639830889136330141160075444747649789126482143629479771388956832458642599525176360617220830586263136270695241132205795806982428687284186684858845302946341937926952375881324746761394711765055769189205337827600576298423914668386796527850522475981202971678502375197110173352031071154779604960153173209075061008634817015409541502723300900975900338055061861393858205769209837426062737942255607013585424520780014543678456071771014988125368712760810470723770783893736464729214103781728644158431685385295655941871892286836899180988108967185168827596163836272816031794688503026876570997177493793410331611296488236287581333092387650457614846117337629837902112496297688185574097199136431569061119175840185951452844107118092827323341541986779078228905032811019708117902936872646935417219986362267006286074665075211679158436968390929219249551253853811036730892034587846548198721432378385132672190862529042245566117533254315120519488925363403740673946711735183011705415425432939541797349348723872341851358382957374919630572099298221217427034292896239111286091839164053020200351042356688714270620198899426561679647245808175164581985014973202365653961730968626263936052402479952265704026504643004210930981425759128291163686898261027123016800409723786011405924354230524406671397497551067918423404019738775495513202948964579308455578101019485192662604902421646078321058954244383499626482291800324232265761432029715902937631299953198003996370885353335402337534427831989323541416053955381761017031528196217388070727506194701305629044750415662835572922739259332524741215589124923953093933369574130840856100543093817908822031670246358803474859411830276014021895361668080949865078228203229723122072807956401485129787035705243566892971430590488822824065468776864353802658614125457136411088139785486728753564723581298627652331531248140885937048164247997012675968379047313556415886361922826897114163538044381555539565646770611856043288938485959227158155200169028804389036648662079375583043807566538983704548035760368346581595669432113280303666127655385330429130941761031147948563670769810861282522763949783777710076207504225147607337784494199370351115720879474103184892142602523146677562106304575356992005507192656532761506447053298699566144443585324349235016898206142283064897163478592989263951179137464749098105079052562873700950437370445161408701461489326088660501399939918011086548899711173091304149203180232528531638128820078282048452058581339502662051799581717219619905086370919058371194543625251421516872633064856446528050905166612828974047467540769840000337025514270749595466498701941645336630383781278448325561618274158035605298113280054084339277764361683434792425544764934377111124878429579527707789468123801471968060666473103018303486840479823934702998283471496396812801479528094719491765086800417901919749858523101025664552816930585113288345167142851921567899360920617270304685925579470927186238117226995678724547526986274288351039834918434700525121304434259871314240459541605845936989178166509534266971634902730325350508064522379537896352238724812605192085133524665228561625448479731799440720241737110948361415799181278509602347348850328005453954146993965178047149305048680764382311244477920833602940221090522516795512434671095822852495722017139467881538871161512918055935045629015816614533848519941525773742851256839891849366671050971730552174606997194417209669361135560834373078413770146676131346327788136408191471325159439885920146822336171653097500302841166936459116999663084872206048787038618019781105556997311327628748732078131860328031141735733119382847507173947936389847137035554308820223073191923530922653310629542779406767966325579838152350900518626917520424010427501445313826077229046716575074056184933690584200654888500478384979675552792806412222877324314306810635963608244281587623384246777354762910578688593196126763223327020980749142433062448286361452529323875485083733714524595118663041724646432931903156379843290769271429401704017870510984248833664941781515242445137104166398538523398487718304038617353673905506201997840440512446048606321805013384436192559964607902084067587042342700263824584897882645077412744614607727093848596641544169141881764049319312333085367852612439268103713894666825286583784078140417049883510532771256390733288642499531351132889175820687101285668994704768293307193910509864477738408691644207870425472806906400007751327595652031540106420102891461459085147502127882748566073377753890112642675190730514690082489408800299666160375427982347104904950061761062527052523143890109919287295739368187197621603928597265027135950052774957450974384979605304665966805412008166889052030083527288746661506433762095538494877968517069678504778578732890997518522002727868080962360202042672378290601390221248089197771412035341551314285471732203188643404178439071135385216543405516670213672992238250163883557807588600739709873973168136475422721878546527790914769312611779740726033285353033041157686878733613534948671915812324168638940465744758346897344845818146190981508275896191407141274146998300890151151679358052184405046290633406992094929760249349137270716307356930343535819539217317779500796608949354968913759965941114851502641439775307258719872221299810964850211759653471607757843088556625935756278639321465213629124113866959187998208829280107902746436007720237882187520833068860673834547781286165028603798237268324031708366408358219297020919456250750559362725958816080651727292654585278915856764564021574511382836246330768297126190563881922229829698228213805176900168973276234449746420394776928809381740579088430057728814349653430650547833012877253004857579735425737651146906222591045854647593062366730170735275554464110614194052671220997657428872425514598434637671570332458720229396955970680577839950763737628643694805618570560145731372757055014615902302156727061875593794045503011643831700467196731720790685171159981494450307151146582920080895408340535022423016001825676808115970724812340337127331493946981059356236836637051283544598180719554895755844190260471256854036165275584040699263049764477306633534367372371628695125892320637763000384761992586230119734887867033103850844104820525517169252449547883225356721079951097446445318632914020039266084345380112545971931923422546235305571782939227752206624824737153242414702982704797030141587572636425098645650496095117843881267533015731452222436434913454008430124216866489877179633403584254907944985589337016447967224042630291859167657079751688403136412321391794213158243516778384450905440124049899856915957685807913843657643548615662148534246860930748777892488606437652729658547136264881448347965045730523170045944542973875949366289477783319168801087431029026105125394677827786153407607798207052111944158122323544950868159081221131211552799065432661946193887458041013509717986540156664847332748916594169266521907198030940317309332110132156440773070666144743783647764175887208175486067412233380967148004609766080472398150540043417433893172904158190081379155324365201470044398656367470108712162603383106086085448957447347675611954428984648390147188769969378663486232381273567539183322154694447309591508842008145761976169256515331264380185650166946484167398796075882802306446620285733126501475066323330258321535878371997774059407501060451931701978950484050020182734043601458228172865459093449650737089370642671866606252440274070848383394618689636606217058418535138151438485662924107005061506061293823047901934501605158470052048564215873611812619084339598532926132596355265409920836316937617012225371697465970034932611275669990102618375353962757488242146851852236989973416751170531466019210583117802840867851256924333894490735028536045809359260650481338320877149345510288212561454963175719527476554545964245773996303287010519080046221052913454748180024540253402110379032211255991102216945022917560109244195026713467513831536197714747138677415612673069939290989554161599440274860148779664743727714560178992391075497485754904292113758542230365360152057586841800677097567021079393497282226247429269338210252590120825497620036394399956149182782217609446326661870381396693679903390834192925619016689566932080067939258266929388311014175833991645237706087099438009807026752443547219590381919520844960579878230596892304808148360952532292668831708813626508587572937970964416068563179801513632769260498868002471060459465197016381288906472091200041561795702087783016935515514140965957749789835365388789951759015891375659308845971982639038161576757264479315446447981109685036973313252025795672842211089646328099495009882399797650220625613215835761329539457037606667547361668932887832383489855426351026979465943428757288299634308844685912564181416733466487907701708422763111493579958628993251733025946362014325969650888294368669710404282531853295656670984583501478937698356347200755379144217053520242653752209022059482573288008821917989997602653730581902654561442276751868197185298919397103487464531022409470575801733202088774537402506175798779859093607807320132319538936364852025366247105513033349097889004821440852770014279371848546459501338461089649532646633377759657147298715494505921547915975750869110121647260008761137364651862150827178100767635556256907984187054022759258518045855472744808582555413830408368377339054280578428775633179412538173701619319579164737308130372357969595322551439741872388045312230282508050653069609088700399254913344231405669429577378688680256276905671921968848933838242542537258137562018435531313253067429709415061917249689946178842499920736165290354668358508827663906697347835838533232028492355966174961507666466233296061999076790476773720824017638096464376481723303520383853632100263359284091839921439613332960454775320117188288372278177370201242361736503699573815366041813632134423455172520998215147499259511916038727581045998244572042782901745682373669155753901878503041457688173172788253584926572050166055412354240298777449879043139822931006854940680943230427927702908415870642550795557301124082371807457004447308054702431320939229096427269642220573447930554567170071636441867837177509088290856609369770032295557858161571411068280725769088586064518716109101107196586775905949749833755120498041709791925455892865652839096093361333415497464274184591343234136663283053743185893541636456216741941282671518968493017585974203091523558635855527378675389119651432913443001613809324500940974570062430528893735352711344834648408775036515461599315621639613954028532391199454235848249125389236253672289259078686633163883903192645640839569871597591033136424475283069256320703342059084573573851835600393004189951146147766061023977005893952852694000079859490948514880601091448307219571958883356426015263088777484976460969894343715376635008693143770120303447191551565066818005737493880708922869876098070054237544703840154410080803546468783686882879942669844589930856009961579388116128101352396383045440253774814074521125709836095851375245328244199992529316630527653429135747851123856982050589921938605596567905267348370323610970564630295097677714292317748337457858476793384109606224645903942247434352728434971845712464700386201444413552655546519583264217905263996062930053068237890919222184949373509892047806699934124142640080359502325716591033930852112736142506964662793132627636819635849355145508842885743597386092850854919198977784845982201174830900640816753658824377531278205577798699725828914442652411946510712526956706417099689510153310467513269905550593110107672039809001939760954466621331677543120164956972531903079075338939294952243746045105856425328916742920313262790410538571963520601890034863155603227813729997808517292355468613242720182015165085727605431198496641812516446857054206290879406184773320619147223974627720653424038072138763076708174796860771988759651708120577837540004916907133781142758846181990522819314328686394774584448239534313755883731203786875623278051121238309045074177804137603121825015633077651410189938241515545445447272983870579499941602214783773570337760052650849313850049050936539180781187948977182805362243711207220306233795517853651042360557231652050875463264072608285271128321522655126240556097210986029054153219425663946978340837770876743682922137086774432858071265209395702282395712025871869474509416108607438837257887111627443529340449004479643401517153946719366464170035468670553167190758427625992104615118935746959359313739018201927644688426605509204751327149904468501532369065840090058971053304826977560611677196660045879158286024972994489117481568849374004277403915068954466798106136840970020432602986019720029098047440007402643036798000205621709851344117864997877302849460350260507937348103279558271731638650181731653639608421362679656523634101344824722948392069921283382533963343107877644305093884728582462529883815047980201100810351150334351044458641879190348490784508750399433309604570559528974214646964294600897676958497136419003450612764666358101757075384214384432931860509827208116295796477086577097932357387997922825296527853704813643916096561093537285581019906457983724617065893381851545957893340649934780929869707623144394246673440133197315290310427931161912621842322235030852945576498010409040649533284754943414324756440260889520215450510748767092390967137898002983339349962855805855126809196711931684070749503783307386108199226085221474494460289115635774889109452560409084859661397524693728409535943608805920197871237792346134348588180654038735436022387600313509752475618060421621120585798478772156772293309279886652974571684142633368137319147971816310583294348949009795475126263698963890521303202832656864568307806268823086138783025973263404619328946915415030376610683582640426388369280047629461813223285033907831758072633228392045846576366730568607622381655572542672420479507788498949717022585063333804696573673528942641517686917976303800234026053437911746699389523360098789343435455201428278285888858273986265550742416267395268220036193647361614457589492381497050582751630009404405206215330433034627072729903946325994987240422295597445020398671280413014214059913467876375823236590709144103386820432086361453490174497816779282126659591352085579389208504627916147440582917920401517860550324370110422125805499934144756118970377698080856531564061452264096906135807423037627111622874516229260715411383900645337185700020239482967292581412612178324268489273791808607405882083228818411483821154320998820912424869605952825035181704692651981182768325437798564443132904719812574319348016809267189648658300384140111941298116263673251147391644208084310580289003490212842720469404975369894289336246601182491232002613731463082117785907656500409863614757981695598210878150678645477738482196507980745511284964783622902852970131765367222646100126938699636128700958508956734781382147261642131170117793846601453036891528834287027450634880765120523752461484161798801787284202497017796744983736617041354882743342434962394186504940936226825628612420880507914855139407925360617354706781747467623167382696636777443554519190307474123252478420572342498702996374855579327220302055204871325537159645406381394595657910924753312691235612124912065522630980147312510471369263230625615597834254978619059884767297843747968360274245762370126354095657182440392612399029993489803498423536183318760523830053181467264625434595570432177060558446136875506956654231358413801160772341322459360183507510619623113333877627446957826360571724113192741812618433510357713940494120969003301073564878060051022723762726802366339945939631607806173479234710105389253183984344247919303923253636422869498733938469363750509595845275230270149138368936594995326101417309859844978475012884595267965797356174810708012714203224461684619097583198324542737810396531126878593114199619527458890667009388360399907510787991833562674413139293882079150587375413587062438166835632540338031720147878392709185004537952594306700407910976098801530650441803703560329873512031929097802992665656852786195708226038898566227736892749774436985843542179050242979499643020407785799032947242571279393228156313664498123701240899355693450486291481855892878243853392235491296272319459002282887368216634112646175289865922437134530119436182631559089741104268066942174582407805107114059782676475281410727827405598215008238885667404631136171949261198079492519252183318883082463622706174146262904282683865730519907532734084330566716196064970524722064018593997377412819648185505467238814735138469851971580274539522310077558247753241105373667267595048957163950993644950362849224868494838216317760827175171970993660278065083584082158761007129443836525883011130871024219124331358730119036654542445943802732335433318803483909881481602209963544049014663591745844326094265075860799701263079939591940989941419382186255828170724081883987929693884675846570256878627987280508697059340348060466571785673003915609959508045447124968410374452138038613485679435448558244211377036063435962166687147075824223060378751543853838084672824146360413815798966098061891327346121339870522700104943274498582325553201641158045813519630517329545460079273899486920514150233158461404358016309390571675140885205565294448133322053229713073355530436053001582355877892520099695030935907011664818475235684123791727807622768013796319253857264883257807488918723768165548417161530924850788492239850075012999998029184720746009371245586897065702670115392958443517662671683894190627067530893108903844087114447154751947186294950396756007928855522742736169826282848918108356326851480814575800454300575574369391317183800693987415830904274710245066998307111836823236024777130468646275556064025187519176941249744386844433186078108628979339741504958924117018383265906799997327561669335115912526081634058600529117234955823329597921097259069505131770474321717543173785217586515271309582266572035436143636306832134893278383455397616981846661704177430357260378934349186897066548172416712411324859189466347159862339639620112412629060454554924151597693631578523443163095455357090414047258950023504945571525210860437641289512002074176515067074623822658320794600429163340972186227569734122917496245898645634634400191662690384109033186113626265878540947060058448178447404940893465433168355784430638321728704328805184368477103325683976354287404178934376426640835700412508963736177094984745196927429120157201583000771061339687702690016161192210543234763066386067928254191829564833614045033988849955221866859728297880061186046682277768824332068290498683870395019983525322717344797870776758845697196393550728733866253174883348315161008204152057580451404931657699032410799835027754465770125546387310009523364936190095087560339003779977158678105989993725759294932376863067003868985239810631824687054219725425661930219253751469577433843429522804759092868029649341834001123122951691300699794903753526856454708567411129729335608891372653646139671553683163528812264720084217740481637029506793289743416748105811111501612980111716815566624403013943746664555850993899355661985565497290566435577566022186519231181544204195989975945059335315149707084877059038092434354772496502651190086950682741999151498582263796864795535558852832464536506430164181877731861543593424822095875849477242650346597412304509016253134372578289271384629317344530282135362720198334396256780733010381019854512585637750923738452072012018768978166526088167556153681365963970955973559964549814570048456363783457825079183436112290912775830990567915102023327033315858448892068336184148907785214539635582765523936213728961637053593020884968852660559292612214038264829486987102370889044719632771987094145549011641372669755796291363604511258218181117896992853186036851025948589065760401616933412268703855647340724939268941981725961235610506103403850432375576063720346224765084258728689119547734138734194658774715411092121539351038720628650389784934981844599203652101319364662757286901501851385799445728935471819674029657788999526872606084792097921671286900696749007487595818300571515540822363975732745867407895516132367099536502309295814844815283896409451709107713696322600882656617546812742788701861700848259146246833692052287102892479584716601374608248041756430015350789051847664592823642471278204723302859760387983718986956844826253453163472406302274328112153189848176552209508774729145026337118753765045627957175005132063721551579599065240982456238023532128357849883567041942418196546326489553320615552265908079609337435944334503736505449272397435058804964285730085758293548346393218451946580896814466721400593765397993580297597228435447343118558146378623610671522555412783902559254349663604039941302326339617553070270074920241226169194488425793331934936823659514349367015861782103827767363299994568464162904073651809248719062790088635684206848397162815996798817257613190599598163720955275949111241329384539104569517306307719750954821504461521095253786771584019032456704832027142716095024844474049789115816251237734070860539161034226237560361856732262629346362390540411871764079421072279235120828373582519297104059038472799242854482175577266627036458018163483242022086000539930610213796709194199050740710232103010783562308009775801257578421151776583827493929604265266706734573216742528778289235608218252892378577135998148217965722655791933046240470184435487248955684148150516457011380049446214795661112171111815286681321674184969877724227960595017045502504568696396778997309329265337668074188502773034743221288175757964790295385178185976124268476598561218426689989221511692037742256339601915852527094904448790837877010241620470840940078890608653161069042527945768593692809960220712065136779353714909042583134769240051410367472244457232509424541326752971247282516076248078241709714154198379662685469711025968770011711004354345770099640655739129770051306589383932370777721722895356377972325526733949313889329675188752114370711023303367474889273025157546480827256292639214430476373931694358101664685095188970857237596394135274742193642379712549363728935649776652245950415342730553591224585686261129972410215211954494015498577032535561002961714277305349254754312201254330586036195125609902047520912874321327588775740199226592723352856244095101671544269373090084391082195325917740596028632367230009182602301843586378802090443045161400754105640680024203696800498472344591749081534220435755955359779837661527058583188679027557084430749102519322293985234772472168329531449631504438352382810577492624626185300262910751180963799124633925182580084684354014387187166750756919669151816173017256612582082431357828780094079663995452625406491059955020316242465212815226396806714115993562576236490861988210266041742514802420640987771328516424961500745238114882982830333174261381380184412601295497450802375051209846325652992257856687165008387388774030261287941505964167037743043679618036341272612365127233030092104952598559617422172004134538912821981457134335656608913592758394039690459255879157580033737083667025528118632001610637815714949128191594262720192784743132173281943037978782460042986782220306395926113516457412718856724972664635398171228386882789741269703180896109947704914525423981284736007647322279321928462449287265736959973267027465453244114643346000588317554996445463800960157220154655779462891603004340635559228816040135090390871869454969639629917083853767436007677946762219360267026697986192283681602029632510013234997101748651149224054024329947566346692681292648289129001020720316022446976150976919856084696087761282843810114702232375423194796353848172511309084661914142947090600755483650990450388322962984727241726529371071289904781255725596509314942161652561983789340241043542258956711857227104823651493332840332272890094082744862707921145431507294899740463875203963338709133208593146317111920556935784083450338782467336893547633560725875546154903483926807638378590886245004151976698362641378802882457407030106762222431188886664168104881795635326279278470501582691248651766784926822503080612464396520711958101720554206782952825874330571785940854416271730536392095991181154769988331766595659026898008260544520605257130773033934926835801173900462511614528858754132680794776111102094662354956546041289359188803633994116940066165140832818064657897132176577146279331817322393408717735937058500563545170765852805122066324278381527187196168141420997404769068208394689703480822818599916821035254548128701942494543898480128862863034823142158580478408566847206221434561006055353599064149883375956114588434936471510180871599730483339044054534381789175669358024046135656389412491926833776324239855735861053045870049084607987269366787552013266262988439437598613614083894421409231923909007861397351801696365203440915790081914042327539500230929257879004026296900535067555918613757695681991598964888771802375855862323674800611524417015220627480358626936275992133677176508526841795251356521263234840693590855712171947607410240712216485161026338195521896811963391203902886286794168536804269726235009213016421285616975319639603564867140526454901900054985525696746347283200638739881137582439322496998457864651170898891783523588596865444989306653537785930498702563971315444191976530923582504045030706449465709657071958373837734209381472086393057984647589088545847944420968603972636425095619016154993280849472431737764238479292242092520669369851035007900252348542877125214524157690950674305977884412987175562476285652562526248247897952969655589644539832521918899897553753037772703132468630693092524408221353968484181859520913065608673657919076701956708143261034271926748936465937951792256746559838612909430920972256126880995092139987126662450610201998712677721398037669970931221139729515453074612577908309994383162122540337518673370221190108227173827570650156880945869441105037493501464847899106857846629559818214618838855680024026440714199346345366876963129384915994377339085917215422059852474728182302929127261617345087717376595727642547680837728816362586848949055703667939744343084168031521606231258127637285751146852502366803932607990801576478744341560539998987530071248940930368822657099378312078081815279049594408711184133644132033913719701689924243732980931844520537067010921190799263917252044812675940967690607858493737397112767543783483988600180503002617361563916006339050279522609386453915916585818832468640930322837703573169138311233280325545718972589092579892308451571165895419507805262986836955790527238197948380310008717918899146580880931280797121763521740174721773625939853152550809256197106555732715428616445351719098121511827052155013935605346955207976767603069410858793345867303106095731365011077111716747370837735080473870457271055270108336474089648425359226468153519909805149076149813528366094321759796284527299031349064205191183080634373330226231544639837760716020517053529464215672217951302600771991425088488568726626184481170505713386544156206267686449446091922922435683853085346979328059705100611802974608415712653440245299060577493318032949017710373171966712650448851541904211666623020606300805136924083910070173809651773882851606242831058559484697635948826540045217502918023231303665859688589724194003563959699014941050612016174851614993731276676987422537885079397031500781143853289080152311448700810147252549976494585088136044015767529061129009001937963313160599226414457350153126913147601043147024601792526785134711275072402731222510658947660271340185597471464199184168289839189446056574029158234029915231686268312034780592886086151490660895504960565559415624535730328943925776312885535573973737437450869067777136229487325331877568814983693657529995167005227102748890028017799760455410404501677629313529311897838149155520123190277600118737556306447043909943857254205271675105878215887029514403985372937974871466390457643056676342282539963257353402742847775126731060284717730585006389060039520136482982742698356967511891434855585062196354864027098157060828264765656665138328883670756065093681575789135183680505170190972666985861533494087290700275657197184373444529385741310388998440289520177606665540869290367535560357203609736212490188768503685911452061414214102265447680228939979759181587056886707632785939228931481531192003917049775159358514417423654293146201365675507224404865293215783835161885393006734112846544594290115611552667742730075320298387992436969611791068264617266164317742420206547725268826238339802117663445005357452259136631703674978120710662198619742417079766657483451403042571685945826298322856445384749552866590933588630496837029308365160300855074609582852895202176390848962258670451382726644549453174154071121397756745966438104467916534067016123922116133928952358325247247687261838605329004190270243263698275835600050303667372767387851562485511331332449637442752921166047128034300157052178232007776587904376326411637972404657612031033975642079174381839626733396793699226859987294557365815494565951963611089762398782085665302375688398327640211664183812774805033164260514529436880354479529060823598895087410560936008204912687976280634894903263130190380854974988614798375586769745570120512990196603964277909097388284931028754287678274368333148596221173505189176869405431431285280504013663756495895385589120384680735077271914606330564721348199255233750314296352626789302979419899651971435106985197177874428700624165614858528853784790641494563983192011940964962873797574194348828415920012022627874207471747205546075327012684514549191380765882499492801341019535358833677782711335409880970542047408971741223913532369867547580452455367770893603427655819653825632207913216958818858407731148611187832702470662254363515926877793785743474209389354379131717345747724298222138774723551520818543865519552705439968499809680904941898244318961939648707421359397842120847669982702249597105925538955344013167516211259063722750071101719752692690913615548504888293974815957641172656831394941363739729063752801543296325028459209992641506146988662021845112445346929646341073772685984857978817210208991167740192980267958800189075450540529618530627199337995519697572755919367029531539888832187145949764593631518130254703478831951093706130766911843484430983602331317230302483118354409350762189345558112162507526172558731859592263575412091240537011080720563433596253095615295632014600372291630821090940096867316809288595900120904387762524665111051107639619258943061554448781217683828182272623421336812739360220343357231000951594094949812655857217702717722450660371344004227578438792962387166686266237631328975223311376650832573335607219935386594973089224483243307089102385903343314446191869741216657775924129182857986514186382978203331864095191847511748739421423385343756026631052029216597398227714366434751175153143737789870020068575420045346441805491087966223323970686329671332110878568487120866668841512783552994315553202451542075735975902689440750618068501420170237498133414909401355517878482737733595890574979249353429638068534961517965646204856994066227587169611702404348474531492959882364677552084662847720641667332116126035603656183616000235145147818182648731387143402016720513676346305091707448974838793791424162612502401471174380180440734416168327297888936086499367670293289732501719787377694393674956743451748642927907083571838703194045417741789356820816913058569915458486687667394275559692208190345357328670932392675174431590701060862610379605976241463374434363713729627428078037111120762049083863671187833682669918112009235569892829031314930708939801903751567752213677346102852861111935049027843694897909730233566736246288084557955448859262798727467163553885652552141623809197907188911942342232524108957771186967204759132478357384442941392723245769447179632302248629735323397459735409348975140652555409742165838999164004241622740363781740449793572539125012936894277845679899513083721622813561055547610852319692826595256640002516754686966950302928911068446429852550738636787224666200397277638825207992887382027388811304240635568175196454547270447282891265375618224418678544419508555242977266163615367182697293878844080509145634478587717733610750834617540848670481463466890167965532213649658367595720187755815005573677909925867671705878698298862991160603091961299003381207060653160714310386900798294981123403521397339999381413768515114772408071721932605365907758731587547311347576391823644584999059174235417737478924223191587555706777633801715519849479922856327574228222570459572125079654675745163819212171640137441482927704680819846864660076478769374482275066819704043440273265472505176792273056261043670694929113285808069963796449502186397605947181294701599173155481533476957757319784104649254639207798718682865325353557525023103131227069795078397525474381598120771810683966921793215620649584373609989343030427016928153992991962242383477250231378136554524324517680919329424279247186086322327264917650798567504210483960810985863978097332665930494733434851988622473520588432605285318896308071997287334619198914232488277459018660438274101172625016115322309444272751698380487555409913405537342839624471836186835213356114796919616145228046798323252797042521633087596808147096307403670101311478385994514787638711696130590218689379644971530115141189070598443792565036735650635902947783599628752374971635872228264110090318239884968861755171314054419078584281590240573218795463915315905154740143151574830228709366208497060996526342182962162114167444351721242699544041256982265728274375550073694096709524081685869327790391781497791900480886153309377073749954963488064796425475595736785350167469352359350533355954257354125154070481655073304819563810416741184665890511016280212746095359803036742261118641079183924469529793207428444660287596114897779701306811525109155002168236745565211044025446847585524386938383844443848941917811530002403736094556342588165122194094376343300274667204493131897550624395802459613485637932699356531022987750788067269211659511961944617477887896762300682697974244299010491045696368392659543707445760985554868525735154857124967872277256203634829605523379799782361444218391834783368553783675763087372009421585332805578507892512505732701845556019472947198170620980945774215986259654394703100442481987112766544422581537771927965379002676976649424179547349899422445463483079204221800919161199359383994771730523976300666930630727780595039425610991357592452466728602031540422475911228027874125545678005586104831166332342516957639103749292425345937291315195848335042956387157146401022169035577868674940523781135974655786404254791330198417331918015866607368367092720370785546100527290510255504891386508468305241573216296220148840089144801024897326985785258170485784470084217265693599044884975809601279192413597856666291529142616268706072918285199087520486160187753980738649485695215418294439207848353838378707640672349182409323675817823860404565004854639048914994244021802982531332575314236540877393554879257067185400557261061525956599253812482926977841418736413974759488699064010546123510882630417802931063223974068595938086957618959451887383085377640554434006534356079227025138904878967098037454042376435295924368671586329422777356132616912891670953723881531396500761701367514826614267219223356191622991558111042663345937980395857569863446879458180184882995275291002353481066866476609165516871744355044898050470143139615760172338330855656200202689563939507567055994248493281616919622337579469743410947220731584000890170332905146742507733196676712210103818592545762266517211649748382174720613196380439288844818743738562584868140701344210759673267118947005605056967617266710412255974142047001764158622654396820040487700994823530573033762502044489582112205759584679891741389138064917950072587131369661205244355366716492598509775923384783469175247696599195320234582295230488515368130482410105885906174535011635556458290010485735252342235767367192346609912089515476224288563166316706505958882284897215234840413194827278087546735864265881604783973040856768014223024438353691283559599326505433355071848416700201168388889318045472654441270789569040095628508737931437180559419956197719223996214806947293200690968196425323862771515708223281812505064139893778018044171704914961551868922182536955914268881977647950505410140849303773376961351109987636311124403127052898238284880466142181982760836293021331057623546778721160771467602693155227051796280089598838279377096107185056305132243239231349808348591086389636462168254810936898466169678654995108008608612557615523074895303313720339323157015475341862167342930761351641994976211548494263523197641856713981670887413914681035360264096737028821925805792669411899117486076499539234598664995887241666549673655890665939322442990026966969327017528921324664450591987255241244242139815234544859103372857672113257870081915992333945602525881701358856170655927120505344539287182042196012041002243491520205485371167207669693585958013557886773669261339386031140047891900162650308305080393674463442461002495984731176935759278915119477135353659556289542246607042326040285134348491219994558937611920877404391448615406310979659637211773274043317542696670225200498005670466714420416103653859510730643523746739202889424285244367935662660748195844428980218592778682784440122905988763850701977603229683712622982351381018447849697649980787301940195010061625350502409667015537529732478695978115340098336650343814471819770354250386102877712664650279334019748623881491790510002882642219131985518877767790397140232465827106455673677364797316233233473192809407240342351971949331376555394081225546460168667589084937112440932980822414387736319732421859890518234794578429240356151356399591404292628140891323957066196464784895545339455632445390471350776237884101510092335727443208425578292434310342603461298202553492307762215726067317408697060545217170555620011810274789279675862821478275455478184273713180075788022786799173796096581308955538435275325101444932294583104263995714934134305806926650683462595551854924012415642618395634875569199692808796511859143580595908676966542965006133248550547474704484630887083873213485113377378960574269246801324315017933271172769061522439844267937782545452439547806249759562743417145368598632323491336914814729828915253390930645827237131347183778806985962159290092047392926503430453081070971399730096256297237820795270994978257273805355504245976853640711262994172136000723435444327341205588866528018507809465874162704131809234868396009506190699162568110998999306782558159745787572350124957625172835308599338605724154077201477930886907432817213330276134873590944405755700120378857979872936969935585940984394899470705516085219341839188150641321901473400280862444244090643419067976281139562721288823505287382827571600984771697470286595611670009316981892859950281266881842129665443474009895395285067759803933298636963961040110062703662331446834118219488481468979660780054323195536206074870703749835526552730999494858247716336812335149807770736673986684800356539933561152143258378853554251123306778047901534297051350295259175834721851874830015608022343900410013589357031090469327446143782329953717405870980863089920329401689632213014870921380221173914684943313164552463940005923927780764736258027472858963939762420687772255532296484209635429653457282510741263426671850340550350229827466250131814484117439437020883913977694257470547454742365577114262560898061883242910753396453947687748680198634371700365012878335005687106343957253102695877095646640921231109787812063499676159736303728838852359277011055302737773629272335512141445866594564281214623296444890909575319345254073878002128280803981758907845529862483278644556946145887331528986304116770988127328585233459040180724734709164325538597166834611477126971719808358350672908001733106998821319762041483136804094262220619242586719937203298141949571584766262340497586029612135826645764589700244247763670162557310058605232863370920164839613361527868376943153248045608326389115938771947803817899955430909483108033891261202144220557628101420666171525602784886539767260105784268576930665739567583736101109815556467797835338264441094775547402327514329275286975906534427236537046295840680117524627762622307632052222595586571457576718247860375678211360961222305206777456182340210170433783429829995388568671173284972440438477564820208909893370525006789521269842076709127548261673982678296591163743726852414667212988309966464810667322344834683014518465694548297669039797336579734594524107688566705482575856939596343837986113304646196163199034782484808779079765916883169842202943895320982864610984193742075933671261195682972457222628146802237597331154953046571047630970849489797143071942030115342635126843444132602142427061260255075443979573652960128989275217636265491227927385934337038905025838050044740475799882515659457482783495370694784095242089935543323291704509083576061598569751565664222549211518284135090251217464583838252559220731341277855106001356976665447492786758280681644614664864493475057085422448633621246372278012895629497573143859566869148271355195530108726293507429779693672590338439513577823620664024171425310244499472241254263792830432850767850717432212332224432692910526939684008484256254569198536112829975470627547208872584488896592684237471205793760536243158891672633508465230599881404338228140155414893334344236715563055139774056806109008242638329251646876864253085743208358467300697793759134505522710422579362697123308116429861211764079282854587064749436353942312111007577789115866951311868936034409220055380721338505367721902289356929431045630671773437661009053712124345804758347676276409089970065954578608508236593155231843803175381874433264838037218936991293754785026314491396033152666573496619516586216672111815865454454192228662967755065570649696725357656596469145152160453185810477950723650448139989064598048309992667810884736852136868251691270127106341373843590097334854478788192566216732214004321259195613324512476756069037892365775112262813884872993007411148763873494327706551840450712773867052667618585723106249371485550408548922204364829076323335857321716509039058304460171560187287502365655518928435126454970917207107394987182447243657236505203068385999143159417644104591353073964013130752809200595449580670960102165202317930326445267583061149725047967795580689811979430810670750496120982953459810111715478358486057870171980862263423057254425417879859667272111206841441512148997334617056466087771767906825420909249127916047750729628521150674243628808880041871739432977307918512309192704919029588190357845356989198455999449289055643314883923843022491986926023521856441978899143138215883047299204057571127950876865881521131412528509261234730482398031531766574001515864910208923923480260233883747545188629603832834178399387972178673372211047190500183509001999307671313559416116508511123433795010605230263901908866705563962577478581640802951073668245751402248125926505313514548209659946018484683252392047497456182540377232507242442642837778224974045299369707957704349933650787237150793786142128118450678045258592899102052543399578952343908131051231799641722363534280248981535994438290907789624999317180097691476180144912174285239504691534752782207759763183987344011934230799342592430705640682421725578125257576258966416060144120981157012419288092328506354233631870024009124202774176820337757621935405225328366214885991257444508267758459126718737994125375802973546123838103658364005389997030910103113455024652465806739437408534957886267453300368766401707804693813759835838827224683116298450364677902006709091021745793493527891681797374266298620978894114582124562014601457124205810190908061626798471096191619094473740566002661668176831296157525516751863315549750469559949318508892301853474081551537292340449674658328028663291118625512531682164492812811255072193899212198083265500078307891987089454350011933129402299768748109856412403513618492292530276439206715206961486542501208831749015356154219151805580194770409160901888448991838686238395422076862603428231415782045322946244741408253745355887395451835204129859252271154808293707339822749505883197388301267471640349261995938944579308561910532878634489081247670637380639018839189486766990947332187940888916947816637923165547709590744827370846860671296471626913956451684744282283872900853853780227480255446305091980250749844664891014219915195551234263581803331691136660750852177795045484119994071467754905745272326822801051099795179753960277786769575292805945302576917682467461968846121372162403019034037705913099969341713077724345997106334556783367108279257016037980502143037652435648639820893962961051592841644282287399341037816526510502050250110912206872898731688593228411020274584340853621080300656777757573563567108695650082961325057113646007137077393270974193526550523342490405494748371177273993060747562502608071716834900179751340520054664985264037935366133604002828429386193839060163477941292451384254494867620134892170867031554488425661123028301235966702803762550241601078267948124058145574791120209939987772522000036624166955003831318232519112977799755351546743833657478748726329101359038042361493023606417694194568422780399634289446427751163264495384480106229389099828090136922053243949444239344124060360547610326697803236517061848043809148749008675897928513850005052254270658877567438091348554943824785576434070065528212276878793718685912922611434981477465204708482853496522966359614205490564144133774765117472196682460491418304202658243831467286773629416828395383774327210021578597099632905111836236835350164281691845424151872218427633516307769715040687982911492484788945092557454211284331245042142185680699124863098299530475161461950681353022149812259310460543890005130379194067774042080076958065397441143037787518987629310514518402455199235038752392656644399710004487730467116294133048767208973883405910621906683374252298744887344923961076319211440019332281775604543083755504485838942195929414232818587624647769709794559466332913165709718973232338524187088832004806036097171534632491411496018693393608154072323511284167100759724016651123257014912488205939631451245204460269143182640860509779193355191558428020638675686183509397354344495501817974235710618109590361649236338966185980026139255221375439142865986558838953558412669396091151758062475949339312957947943682218075845648994731715510641033199016583574954328781128661403832047920354469040676122272031684496967210809639512122249950412022589988214017549446113748734608046981797714703392464448835984467120555803187720291805058062013818770412371127427437010497054177716237350796218828005954353224765419053901133942993545849293030818287600667677539739758801663608924591052543275946607571462828887881972754541519722310174211689224755381815797476537388081850295069059460076849291963442097158291040675794580596583113611399937694280159001772172907516990242191700303985782960697944999212803016937905286994341354170096135526144234679716622028281860993003013366727651980737356626324189786969452974644059981182193422890494201545503854425632654956025831502799075972355850647420984557686762366722758517200980353397589601156123704737279345456038518706734491185868085772815982878036631633014511719331519049207370707438648852983600441920806110118373186461645421358383744033072959361911694119255504543019060561921601599913577640218964125597327323625819475361497889276863073153547856255269451741651240133923534401622830721125082722196429461846804793682605124793033275525184643433110820502061587108349472603365933834945854092172833720890933117662724499424828095743817573620458118725372315954702530934885612465730724062219780840108423500241639059776563161209000770421796450497622962886310018842366430444910933642017258489873878805700051630041523433400268319111621658389581698514628275427483774219351521737927451434621163605157362614883236954133303978623101364914431190899384614872617037760640326205736546151133577224337464335270795642329803159922197103885454790709122663484070766926469318835854823536960658555944557414058100166239556818859666627761626080664023665523199858938122815681697128152294981667757503741359356612724887670290528112346908257828659094405066652319222436099123402111320201291319105483673532140157142596358270924687187333964642718202349343327329498901767664219923210054189798238661630268867483337155561464377581145455931296456009383868709167190241169776886659492028552577378232553135691598363576451201748354549684010648984688995181592857999329290553295817453328406025202573951277880502046767882886489104177988854975856532851879237344303282792842632523993794700676512979178732989266795200574514721623217410994405779854885265751611940948111980203950509090609097117073422417746301939254887210002960317315317080491744255444068929075305807949671911877763170289564702721652461620805265069668227711059195186335557606461424695083437558230424861989148082935618861604834345622923583631779209790208415365077210708135822500313781496268411223745035683789343042346555598179508541530527521834951877476326208842144661231705797333067747668799379943241025111128680027968178867160028120611595193357778565885796980325692982740869842508533051245587618858658959448494539942818180370878043283685255133175714427097780490395911064316970019550564252492349365653118998596176493432729660583204450014828797851872521601547062093267863157149261003781772551611469175770236986708097600527250846383141156767290449417641706313767499832480000857838559089924516234655146191502333917200135866419053832050547924471161701659192867615484288004856066053294975009856773392894792680641232083564286099997504718715731094831479217949540935918887633769266959909412588107004352214242076308460649617712146036119300721750616601533810993091669302777298214940578465974498255694474671394414826400227460153953926137965292589893272423317151192727426736721270609925546895645193661655942535897174912681127335082953621085805098595136549875018489765050599163524507675389497423574920217232305295417661129002782648740141864418858995356737734727604788618234720744285058980581204416278957003243052796084137776449317462267652894627089369224235206958599958446129055602878342515769913749972471657085725413839488071900970416864956244885162878437800824502803380239073754050370292101611900250340446395690637078449312787102497072480704677683808912722952294902338945217024673056010721436679364915869221138827405661898315070836143218731068953141121134327342587677040931032259465848290117303739951014025565945369853160598968791428325373014191838498498449493827724738336978478357160315794521259413156971540614767027559138962668849866958948277140346850566515272262404323670367274532652926028437305008012601957397917522102604255314180180965959960698237532415881621791705683478630850775187038839299466066488679439496733565870432305271808713838765582172731334167968353122133371985162915601602793333231989815360765296786813506908896364425787279005448968982368807294005683136056747255260399974520860492666034222393675353094331893435936168942964975210109533587959448283005430655970000147323399294174313832250716945186789627535600622359373025735450250397222521723763337514599796322099509933998034060896874690672914733746002684168849576474093483975886824428698954155218115379618456278386992501454336261202621804951607989390607898346993218060821875372103123101663251594866543091279272056142838318853192443719519352812709320121705615154448487234057281136419227257018403950951300685114343242382561945883941071643868739414327441460010111114621104592079787609000462084117856518244014931658536279034698763177978892361728612938852958118593022894360152028289055173661361195428186116134388273600489347113397773928859873556125777096111706616893312366089115203170653181990215848243350928828428601659467197613366389024685712678469382788218932189772715362185052641886137450520202423659114787578954272987098533329655186661642189285100196654277764895939130634093935006390871097781553176432782930445447175279622260197404483779175159118389802930389969906336399990707674430960341008778593542178451668687760570381825278799237891434064557453494833846667717059081981734496741463058395866437289334217958276437290924982145106633092914994188579746454248253678255315034818582595493404652176507093647338352348200950783602828326868441498318660503433968873548579239672353519603521005803943610207625831514123669555266074475275126735986295309751068293216829552655262940700308626043952650263142848282723026896510500901292451573077204316995778385270162922515769757120799555228395444735725546159691047973443120199809845354930581337001869166169030445545367859270080419247929255353038597783580530170132290725451106320943647759414127184350142383214948310158398276222240862072837692258400608783726549918977337323522692429773903715898976978653541666197257326826108072669548592788140276648362393326967282897478996811012341109308009171447317687509421671151266952067040251138968836153425087022484951350625910969989153007368317884009614942368370813659301519969122540083989993197805068925732861201845544284319285068454768295971376387230641656668516709721566864155408879887704530796418174538655027875203826457949021957308450600024384224718364127193433524823138309703636294495603257485710489684510895497512877650317975480351920519644701003884144494779836785038614345817622040795045660556692046838601265181805199807004534514445997079444228433453311932952936447716141913732248319943221519681363955437098977868749408727712045303342078634718674889451206715606788238006497193229618540596954571244399622225514550737514760573458715476809007945986547577193796691541824514489571738286566825246687337096822657885725428536433538939770387860698110070730441650912041784179981028842352511001405999909074519647932667447569528003631705860321673260521479898193240007678779209522791123947476847531562177442722973226235552728837964646222834524935737041690091848041578181921091445379184443616574556491747698628927718308489082267931490446894272098903188376677064576318494915100269565706226705577501878528325976037062124268258953175146934089306192248857539961305727368646881905690218542014576679410294491556732208780446219481707261462146984035277035649947731346023164545022157242770320064758327960071615656381565347051059071518107637618210216803552346460399620608384986785653382544385937081202929689159673017813169414447404934001268076640814143621556479477972452338617892517323299826505638865693541616323920655858453931363238990911392748645161298571958120120004814854401338826215255238148756301225116242577127508426156925055069532743716538297765019521338755790448083526898236255305059426819325855888937035595311516774011054483110829773573231294513748964738153434135280843339946220754285367165743147248383195532242236574663411053572586662137240099471465632787717518372841077057790367790579584536166074600040424158296335795137212607774993466136109547408451065248321969899072752677922422786390808591334430421159419107373011413900091240685687216978625671813366634533051442541572673562953673525615013944679105107095485858207092043810636775941013370982937723371819105596906083496511190408163325993176132296315234757608185097148309523962155386313172947293027634753577819576861544553642301079998003201484735512956493362982328955366329719034633928687827653169975408735560961776998001522304011887801829034415377763365994432589785081721369187943381111370268769892838961042792497029553178950145750355714438539208602385686075043058072267493862869773870583953937767798133792958368532252973150496831837113578830305854716225483290199139197269221165188249192546830288626634050437110620084331836471135243261264416752589105731190031550658677025821774330950519570549363400279454776238902903541345235778570083240484314933379286949133792071070936039045017176828501460172824486207710376372130450872773705286555196558945877778927354178778356454936366363863153857450094650634320541820038178680970642574660983407769377684832605544062320103116393429522737302693806041508608266596766485039354449621610477235524188340152620859434945655162311735354493087395043379426408000691172156835976991269265250980642948310840419305438948611535392872933155956538913137602432576126684012992961959456564278426311506106408984741574170769344118034856861305257271231009903873082540822211915597818119819541490866860825047409238690879585146476492205616803279340313439490863766931843670680601063436361438129674554897563842454155530656407600064840501309223729640922814456024599345962334025871463805144121417153361984603688835281302493494187546361013366546156095928546256971832504862117755751232643813952269192689225634850632227926764010019436434248133928214625251261125010801321392969558203523321798691648897917569275112425155185693499755106917702089360562137113592761031011332541272059261409309107131497991973012560459038895026061952249300026741525358251114818020103297823743292402763959298750791043288402534938213135642549105123948749918370438117569749616527691930145192699670180753250823589642029990515725154361556518831592806518079835009894010962518692705474841463152995491505823640605842092391804009983761772418734463984189009328421755460092940549964621156418301110716771037253924737471938007751011142831975321008546739871834420460463495100611061744019495396796150039888336808839443544248950712460102669295729096070043121976322624832878791393857052123101973462869788421984241794926056860680155455165374826530668619093953146175552432305932993541235403344262701255190572832732137256510900447972602717297288500554646385929843914356807508659776643819946882619508794152088878156180985961754005921790457207364837381275420010897424025333551753465407957036242180931765874828729294628942098944713791167953466503448540776002371590529831406815251508808452190749542341311403252380345866401257681605608693973542748950578327323035235442610254442310595049719161868084443534818596666788983869234017710118942519637898308068989945276366367432313627888008689262014860854485793925187032620489615098546666841159326694341197286295853760244004294424738063221439661462874504306830792833938613423502428822666897495913454497561896434758311825917259195027662108910282210389638658917354668796991223398540437605524215413912702668046703553210693197580984633578219560711460411351411454268016892657231001142379066419832177850563011181600897707803799122277133286804384845296869795393587172811049660874324100945326370161194471848000706590333262165117462579565389524457729662940553268517824503054099497086760529211424243884783809322821783881391001421704904334683871551732550066536205764892627914609440145350594194524076886418872785853334242512161662736067311008322763783280745009172855455986838265600213052281751610037041652534120744754608923799343648874881230503207101180630360012389497784692812461977669261612908190062517494882232508099237105652672183632184061059140154321105480089251957801103323750377874308053096020953609895545751078780193175723397523096952929319726674536671072749201732079469025871070547295375522047914602119659061788427060196273531154303853708471233234202716080679605143413769643666042325623941996751849041297984424888658128909465178080460864349925571966808810869198969045946594623775579114546231786360560973522858409327981240416314685014896478727413880907125100849405855756169622169511046590184241010947512280173329109367036991799372908789156978935877730773401855031810799507586191302773430959015684072250813580067526605598839930517538975189381910030266606110506764559408900919867419675958013514696026346446414125619248522598430358820696120514670588158341651734065640488440489889723880743822537556160097729618009093176583762889469662375054765806259970999218536513784562123784132488438516813562332966110297356644059733775076335830645946949253029237673345333225028165926666039992334137784131232153261481486711035076038693770038623578011844345162134939833447902269619336612691336809216400221025671541541019924570506606783147036732787996505938429333040464880277978327314994592356405122877864126172755425124174262030928019537716041317112609599413529031171192273083417897733354678973653764243773973491059704358991936377462240666233610116471973204326939983210087410903426638127797838946401281318859648864262323512947417033536652500850737564832414452871638989005526420575977827318113360485066205407750612350372401820689603389673433926909804701968990389372335052200178088057304199780646209774135725315820290371473093406135007570004362959370982891871157274680099886989236698791518715340673378780149574218920334728496496612243542113494335532342129082530246409658105159156413405145448835298435880290950669154805833284886371016703253093271981691661596919878513546872087012810308967425386253511432870756055136052600273569484761871797738301825963581816892169205509897139704205123923926727495445734525216561738144008185308402372910200264976099425145397349952352900568131471450423090238011791480645568593446866950824169771819111398056084893818842247571612813980998447155049868407026437304734100909716754292697261369720751980103998179617892569498499440266060654722515605368717392123491265603532027044445261240505293886311641918274872508145182280130810136317346583314425368074479121244038224931900008856183499157930967403526216155952664680227390756979542369939547006697121433668450367855481847505848087564544390232742703303947955971011260022436880965316843359471581860248866620253522353160647416948328453340697230422611439320157966941158158705656395872586197712241865243819873803616430084648148619078831909035799347210404538257806443596434419120937051866014894619131924039911028970966121497164537463501234265515224072060834255838307837344227133636061639689090773234132683306860167697846950820524763735507853644502673779489726289885557333249760570586462904672646242858322795948495851138252012257560485328664878244157826802466475778614242170401028143957694313707841833285106416386528856892775528882582983493746713644483886401666405902090062822721625549497396868270565072986766179123748737769160614897906995163423721093684922714941366314193516477651232679231644869264724225471563721567631710699996797615682882955794073170331556794156237473456086988358479826482716845227388826707974267383565107749580874773797860709415814108305075988043571857986110556328875009290576099286046985018636811697124932963810999293768424670245541289398590011661875431563042404605011175488031843563748173511583080257314674753635265891522176914543237732081464367939310064363516231947875773384260750755858384425928699129620996860177306751595887533176599642571140461983006198741143356856780739344185751399466005211197570829332195475490817437535304321528847999802088845200074074239043795985505964041963416688486048270655456164652763696199961497019644171972384211341498542182026779789519170236606175863076199699383830861960095897418005352421880348277858135513157642377894386304337188907593007877298843583923063216491785608636869711860366838821990951169754785937347619592061291019228429762604371945997461935191125209783949463958898874915057518942261298936859606849377120135473634691513333408191580173077193846792023894980621922022321295502795005946564595876216020410125718414697427325512899684734303272485044902787790016876908730156659844005260710060150105541834970905681139631898086847084461003038469329823835724130195594054868829803596660867426087769291970815217928133919337878642104639600522421587544678550866690194595338998036652459409861729945537638938263789408688030392267249795512167052600881149661759998645441662163653717138738168663340203315052586998149548288819711948505254373710566009695738140736539997937752037717654981880640312160123801545519815836169659763500358347981795069700428557579452872121724014987244258198675832050720696356397059831203608860945007854939660682503817760757507998711642350511645553250282573612685333539290710276029970355430842011262744419712585380898556806274098682770581529317456929329342717931669154250209233883052155812370309149340766512316787492771399362822747456862821608099917012880305615971382440171271405459105429496344315684547951827677463304912133527265660822597814723324661387878020650137813320313702915471567444177444186672911565317312717818543574109187026787306389010730522838846364873415478129528913552654592969215006964319383450523668767342368505075164986058128597904608371722048870427274053446132825469343085233065204910409161691873337629211719696169566250065492789711343496452901210185310762699194408527262080261157929269722661413754309146219214877312257927191697056784591406556394554300092399704566833039922734149787614860699429090488294856971625581953790700137382868594158632945447864132558435311688903841212722295799479375797346981946306062808578819681446562747224510849494421137069315957666642282723466799139814003848241371343648348501761530570008909925890381473264459166830804387907703358007934816153690750520995546763810362882362468774152363945735365256225298808413963329149915057023339705519752556537749227576376542612115345586748333739005163046611148464586016689854569554504961253118349391457939655499063521452700366038187129029929549812533160575162696763934953259708555524849709538435278110218721907331969524834752636435080661229541099265093978311523807319382802916638015922172944906204305200582413483770466898779593416355185610098814379788941690692706628853836140174855702636960777972077053108989815708440871225586540907709264523959699634672767697685876813305943226668647646615442564756297136463641486430728246975401381556619898868301233964455592761613183605588414979022580287974346131666931957996168248267707415201692945881943083181851001892732792870636615081101988151981894293819885323729862770046613814400212042504072573781057549205704297632073765587114424483814752369650781942556851969973228673995919394863378240124626998885916013625549158694500890247340502274073040116646893217769293145396344960050616490127786853487960815456821561855232091518069084889752005522121882687893745868886004088612519575387238820278870533173212850289661901901705579197883936624667061381572697072476866540580606557924623597919407363970671632858968736919025769607704887641914992864405776006252498899457791251630574446361250469490708950784534583344242144723573123656158126412215254065008612569880332132675607643953044464817308522898180040961100067239762808926225109116718219976850602962915397216773499427368992680260792942140170646026491540054462753303233580508214083385534787578629936646562113362664863684418538031772321750951592821130973335315207225937270841452231392544331976417871292630422936748019504205663198779614032898766600576165246428357108207663246429760526499082031332954165469203500327544470484751825173724856218856758635924756782274260727169196263117599833071378386510500448164969515176957548626556009643041030128697979661727512210407086831173686749277884481347412113075084033821431048315783699953031947708468132716596117046365319617059013510212099944023906006612468614699033569145661686615534317666861966250326327115145782000913328970703461267381832566914845662836008712565974341986052770512877208961059480505496218929226951414071756377819943211132447473729399261703817008392437211418524561693069949376556861384667675273728358534068349719394538485799443418627466857804725879165875763436836709480846473650949568458762539871288191310067315709885695631316168696763041760050757026239322098792988051567188870255707016910403171408830455373915148710908440001570594773343558789456905057848964802938056936089877815298213536909981620389080012982821162908832824373480148686944831064544529992427414560178119567047695552297382978072457071974580701065296129098823175810908506034784190435831409411642921228031935303241743379997554919485673922973195801361192970289848237745499832249436609720721356461127111191781193850468533116146187744966290634682467304976122158209864728242701075144109622541256936811434056609600826383499745946113755110280217118040807812595390010861673059943077194317020235404424980916493602545857382812380287849249887969724106954080957216577775136835888776407282850443487573141658762708161010981111899598460080966033702792459300018066654935289903570302531445725767970854507898134070554716651642743959339422778942659418032669765107238834713501522798655828715203193457887555102812041037402393717965761470060629019798515560369887200464935550951060471482347512345637014976309632922616085886267837897603899698950043724002129972916929904202637403400867851534509288160572951283612779273390002341436418275547411094945408295874541385580318367893293039297033534820613399697915241483229245732823048327514415804963314510787606515106564151388934163216688921970823989675179212802004745244872004364705994207416543253382768514378054798112293205923032076767754163627906894762701547497490647434347902063808439071831025835484616499428300810216357147595102436220730393966043464841488064834193165732443917418142886818155698166647048376673287794115318575375340411875318814384984022810814535933031110222607331810930924358409361856850289454180371770712166805382837692328890406606819593710547792136433645239209572005608419610167255213953625480120581534892172724568930679115587683571363091247510886499379229381786656790239531534277492405067774739108190890861839990168703192266114524434077432449508017288574064656377462654351427882801669567903768857379359967314581449137965056968889955390991088278271432615048996162817313636380253328228451449380542414637657682814725445036688877205417225758049945764711742242541617465204131800721465078883171306283064463754988951025843470140952623026913903836652063430388169451107747324715450362555600954245765621284646800157882476767002183503573513918503700109138131597135421907413406104315883557766471791447147903850881397257911246394370381415451782236968669015791768314966513656006897267797319584467484450638017030307702243299757865007667378199069126092817509481370667320674421510087198737870642645342660948990475493705305846791585634960221507219746101318168459976678869154507020806047125243638371922168608809505442195709147523608884253427722987950329179302048352000026176215257061484689805379293803319728427965742691193574811732744401332385194556960212471676219817274020294822760696791117360219159319282813639254791787524241310860641524221656004814942739412549421510960346830076752238632277438995065511698076693550508048099362063222654134125098327809487866722961336533153057919458691486761508641840391119281929391442255497552021473358830840884114551596544129567624977458209659671902170474867179996981392137556278267232564032769532181854789647736185884443987943675641236562332332848786769517048811673301852773509720970223596684265563445780544049557578003448653295083287408948860128350880613818074801943147601342590310092830424894006276119614610976444311734037398050093216412533704139680365004985420465807083531176872159394153476051220181244909024867217779054114021294427510946498073240012108438971366608197247521450478369204425203234086467216176887214776378700218964194093130698893815373625901750970451532822278640054421392437093498151010386694907291074912418174974188959348925726850176912307589805493043131598370090526803180129574723902412525712823675440549066445764333545496532365424453217030661615816766663311448123393717573705634919606569000108457575863399133004364327915482029435090759645521077650877705677162810764192846716681213065877737134179245254623754633501916995265669520074665719561259215681344411862941163725967156347132048851049693967557665353111572325912171650547346533160997819827571701040098215625144042601942519143064012753539397640114238759639511427625987253237860529467903633289894224464462002033153962817731916225142022434449424707328524497835430757948092290090648201864601225382793473488102583670631014881986921563995917268422059835995786365051799448389307158783925902065017599630494845100665144018937334916422081992860287253147367786371825835535118480933706117351515596443901107342191218877123473453382294250138146213970656873177473579561708505456463626694682389459602719828302243604415356136348628246023407416312335161858280492492524620731851368949144810247774926344209374689782878211948668894881644700275227658281459910714987034965784567284351927400516911127426221483110618111449344145414037595160696808022226391997831587635188622481112969557353713702560090707822477271595017416266517270509103699691599392384112067889565255662514150311898224681966891625619192098538827327864838127597556754278940479727460922788364168355526922950451150789237697113399243837056944428926555413142122593256093436949592628229072962675468602070263871281069486499335095964903269719882061606612505025495642349496330584056503133317966638941375933130911969492811829217950539249450631838914338604944063292922269601375086930652715071595989955015700551120570703963001128012740586081831315754041490637024725841862876484764018571633813343665484177206190864276293535288674229760612456460167043015410882617540146049417660734479850758243808616872175429240930496259182754515935199229169309241425067652394415400381003937948474494954245612700847790351137263315385524046852406076035265474033812116333220315743632062583435381465353449952182503756857902298300542140365722619407580347896509607505850712567770201029563237171083471672254799970104417681546700200721469812642929327168883826896886498112959855828241130096687256128817645692212318032733354058896469240866346195556816494036928968025770534123897097497910883556952535342356306527963771730644308037087588673667904583396273314759639347882195032001727586138727193447761654827919327213866204973903505904774582751831090402709176266611395884961269096413647722082560143303224142140836327086454723016632319218783238594036425992095719535654261482401380896511558288139635302916764107892338934646534992002125156788623551908240167084983731153062061637517148182981297914049816389272402571940771313430736811283078551792643055037247767764686489183271738479008977036036753866663867414784916293268725642444893048952795295745239540829991899213353608880519298024519096456423349535603385289885686810913961013239071685389772619655288247494475045460324409304431241449712502486671117268645626140460010127203445185134378046325630418658497251820955524904630673475877757579174930869826404509318232957031491551623788760162808691303938669749197740296540742155017208992303648897135440499616969697181373831227917935337401074197805282960976192772344947881256600074306995635225978438926456547524080163540529161440275721555410110105270028699641840981879782506386739165218596980707005869463207898625295724429931167137839213455801975919280282435029248178562957006056509196346778666516680270825691033863092855636325317435460976448838795986126013040814825595733875152954727990281938205989861544958407263689968703444805532583348809394209159861082132092109491993926856765901993406923699459786947687566593673510869854663045112992261237343212094774659421274564560507173787683605951363455594864318757681982514221260354024150539647253326512912307274431780510178342734704368424820568969673707436856934550236631423148778861598403638636637442420686767437737367956307410327554350963400839296005074747814492760023959559833546132285847537137645038638067779974661464151102713882026933584931644106765723289104078765188839496470262976641163780118292606141329888151802184567516727184172660505972850025484217770435123030799902545635310629420703336213879217692299502944703326721476502733212855375236002513950423057739430242172988804310531913599325189470234325035387005726840249256056693175003108988245175278159887670388475755714454425218663745432293639660254360507696640187904588410643837454247304135824158658072390636917956101596394480029628953409675238508707910540821640361457850440447548061877286048698949256251720770526581760286653929270627631696836734147058667377632318425294996510687310825691691912710583559228945967127303757155515326093617125770485268978056080974678601307381590346177326184161159669258548539026992276167818566699872852320271200291088015500029635490269981840551748576067322525157254551149543287787946285267153579433692747958718757804595887518282513930950382038706516758705636456298525421190677638988169168555647299200535983362658674839743842740903377684580446755454978425356423718743236015331081865495128359433906561310257147972449469159516092606823612952050633219592962446093955817668606220366795391112331774924967611803758831550176209476291221081342152362663420189554996732027340968053898789306723376094509508980526497160252436870253560920219285033702324523606193101125867303295448914520441198004254904429574368665764895159016799976984042297920944280445963299133495495841528141953155854148801946722899400780995949254261715838478604898260289467011238654826395119400072201852227611509919937542834831753816552887782388912374052903545764192312583897319590707952411306030351130323233929158076249829947328562310828482417362524354836476790560376596162725677493317291173191036572048157222442162010619621121374619933932031247775924879042355689140094160942765600790697017667558282166497058397215247785848891881585313782203898396008528651167329238273721073695222662953437618115991572960285830039736922614817237426931554924407641461644317743686439050721839090768979299122273518175363983785373597934192211670578625521711481330058092630585530107045126710337870741558136003527025169626986062939961712793813098587843094432250305437785861509666098196991594310975747517167386317335850364607233854245656791229212461625060964580318727174863452804656191602176476948472015415092068418015058426660997594632955393924840464465209125685191306360848584654849434882081447688977336196004089220919820445843301348628858315954457262948393711421804810476981427801452661364160131128704527426727805728766447186864866870312674277509813050635598433702316975594233049859693706973331497075952389012246701644580598619218454591168443021975247223575214129226429927441736664483951765081931406065130941916166450539651149383037957708136244725727148702747893144660631164723847558496631147527447703867408770416811072124700801218792655243154624067151016517120003501937881909817998235121786286143070089592064427018075506155086338993584849759832656845103475570429376692107363947301935676155467851759219406313116737071409937481167403497103587539951655753149795474524945020698536502303913780349729703674829002126565315197607524072495006860343235421308394690946934757333817591273769552552836722696325270423097020474068543252543157109684477926516570187707532405552755345578742982655875631738709575109967191628910014629443830973985879206704084074216320294762145371055024011521323829969333636110094077765954912508942086393367987864903098284800368779843914968099424222843755676969758585912102184671167943904852396241347933701747094034980963156336364825361750240541049717481659192643489869145354731242847375675641094686940003346143900611575997920176832355446443008423362778671231365321704030952459221012798966467980678751418337814576913073066630835207167023967307278571073264784394625575739497892734925908255564957564791378516232535080461934028912573930629424218102846576128637777006011477880292024433466022460677066829038064296516580584583134334328081628213285704512410046166795250948182174122390708887193662912227559545201088674646392927505892783774112114104263262457385104038932499409494012999470575877867656949152151064990376575747881555368832186470565995160697441726474582526946415853848845369336333523414592749479788462163541586415295957390337196077583653316050652206861594751257249021153480667213169395092770023594901874072887374631733557367029936547628969450591381269860108658484566868597909933127550791816502580362266237684974876423978350476477189009913926379333769467369932341628382146507633888387184856896522149898515067593425439195114774703077325794673461437526669710509100979144511727035857041145396477581286149475536470154022956565201104108239355882526894703486947646196741270655678660019204553059275272899797055051038627423487434856325494998161948573600754633421487169516224370486377898261550344980312773855416120327434103631543484887551721692388687702037046778304387173992927562838782292986370466076731595219278460283646895864108380291246039641730534450965167242686402595179107928168917750739570423960837359771989774665664393505856876472218299846098872162748598445823354489720935387908403963431789734702897514976185386509716446149857116149763717835982788583632604485612205227153150224355972955691748503949099608986880278724783033399778498247798809953193918115059898507670704854904907276158807931613700973390939999515169648034482924425717245803799006748418499544690510961348735210932944394423420040542808362966262876902194494009585697426055346310599310886402715396349631246051613880221826611815205132314699330603538967392119725734488012301659953269360219027568734329874748772378084729611864627875881043214878171006009534391381534521424608115080978897894001295780230250761504666904264086059695353434222292046582937025893879665942236245075890845219565931478031144313425412321396117036962495828245326574383050922668158811525963335166816868081470098001070734648382728066625015090935754354818933524898102332643311451269692441083922451781188992935318934973025081427496590718415295621696698577001569715879904587354405439105656647143808690636219186904108009109450433285901452278754485065771087206530485412760234061244634314532222417591281502802396865864297048828115141580517927193655870146902177209897596036172251282833239592541947118753267259426502420071880447158705069922019265402666558091996152911804646946354459616084932396630591869358953144649731029898911741113012326808000288598378986548249030940684098074121119498143642709302575330771281097625380214665709586189954548465585373494874590389823852389934187683977440627456562894048309642209834493924754784431754337801485054743555846907810440794110229830351136385034963957872237694223882059965696451050105712874328668299697126248208824284746052155899107275477775949299979826635560663340235760513880762939021602737411115938008314164265462405039575154035784826215212035924966660600819328712782974376356393056125736978668400146311956987359387736112459195306000720031224505383655968917609951549098639140272457503889561292371757819355370346481564889972280180927263235141251484221321679323937572408660203418827191705693295333892105024440647375378506183105841277792158929753498218415754609761670272866597423870474650956205644935557204999996005544782061876916094511623502755819662263303039809666584923905787913475487095945309588711849583964875771040238311199226709075029173036783832636221843647111100430653171068821135751105788660081836642720569515246559165375049231532058422942921554324952976552394537328350469521540556449591123992235836566519710016931290144287081806456290087110306885791888605574044305817326583513598016731679804585283167514170603693717776163853944341334177406383568574224193672469598139863355743978387109210258186265575598426898323913235329543518185832885466580494746605027467378347307072631103152669409085128176828247200080327090360166312644101496830277807141757535083264551002745140484210362723646106386052361731279597274990429239523538499806534432377625887943728153402403992383115229126933500043319561572008971395479910143641177376225181538104382803509509904970691874798069535592445019636767206660081552881342009678766422579586399342175215378672486766826068718125888900956358364276304695617928207514460886439270832162735546168432822686633793282739241873895139532381429055674563743199427093615091435857613823211036610280264489668961231302724005544974088678550618572223059796937831885109473125710511993865494986854458619110614150413139198928736199458936853028175391783012771335622411928851579138410061646735962647920234942010777918729940835376165598172007192156487130078387723424995669091811244045308727050621016370541423497211402688836845377014529511729548019304655097380880899687030446921109780244740662422288573648862820641037518755163688127683921123670518305045557192811617281608994256659525701573810103297350430122167015910752340689716664319645797930201065657431335419797490303033697668520342415286870141903830292895078395978628774048832437727448599650279765767943442832732062072601415990219867470470994944947917291781028705243537163036931571493867013631332067492408113606947164779233614393555350753237789536368914542796954526686041271304001612073050499258623826673306318175750711378067113485640163197314751324516525674610623379482368215091342628766639827311637491110951730920079859894257444828123611514453072812175694593867567525117931796662691598582460081126520920702718538664683285575876171920128344913980056151117908184764145049519690778425584184072926548433092857362021453291390995581706676901492785111010040489922792113819418952548730675834381870379479587318269853480952739299341282775685649611617445576883534439199012246189094511012129449350473606634326520577471891792540242621611182157126812957660685468421791057104924784176050673696303703643255979678482989301229853417717181136603867959687711090227950193660383004883422002161671759162563685802909154328314044625229580962419878024464617414215432370993306693232252941682205061441038878782897279230580364070914546217953146987629801237809219556935690625569306388370880409669765068358423009422260383711561653325897230976194208571582137536667059598494264659884880346541810664753303435341752226606970304773741242453404891105535717550665789438416137591494437479385146483602815529076327484578319700098507036984901989735127254485759042737032130956888619005677273448291597892608442138138217597132703292348458688051119519873163884498153471529288729248779890600202492655130420897795778913835593225594778359577253264600544345956034868964572477355398580704704232088827399992163560174066811350067422491300699463951285331968544221916880679671089850580045705703796301698090109513805526450055943834748899834619423334146081027610096705110317401256737570555566280125663926370708388572603592135125654638291996939364403367484129048561119881463436781383247368812543197224728472939698567640856788839020863576740916354493965189626373710921129226747436810654829822543662522028119953759086744478582322109270197826912448531000863529873551426404392692713290680037153231511085540836585311960092212559144442285060917015589774535599339436136664041665168883611750265131928740115079382065131107732831534564122134776928920711202426554041426481174857080755547339697473097241811466017997360642119761734567953236809415744188555518985383117463831191008408425986630180710552968955777483137469778623204465426255850954581936104496619493028083101315569323802473557191139316724783141376486344637585815621057524673829545889232655525950133492993985248000816870260361990733616267908937669738992904389591358876229898776011785541009523761245492683848348769862331650138523486284161056581649425352265318499138526816710846160434341438572666190624351272869077369932858632982350686359226850880875097064800706903002845957559469631289673593418617015541259586619532289130053713039580697580895517806556418374034397702397431178701599976593747953907715093616823838751535082484117339119329503568122535900781553741278767310418122810936519537412253989785839983569882985643180407972210540294386255072536532274768039032356509370192353159355699482604865833617628726284050810442849634030598624753586401025461072074048743684796985868100456657236673606598809600599108308892129328384536262593517078577369501461386689000709394585365578711731196331889212445703158011891369564133337533514114749797908450599265416322441380175336069260030658704294670967376581851253140722347636281939606259908803139131966322292004964086712072820448207779698001103386358602693073018087072021977070343079703933510753038742248879715569387961640024145012474696806473532441247199044445433286228161236858252541413772117026017256595698393652565291497764034624617354574902478188084075605192622644558900859068910305577851446455006137178721062136028359570968483229059234481165576847667519892959585101972500289152062432645175746815015577008775991483433979761611468830718137741918259529121103983831985446834953694165590059454394475815373761646538574357429790636836457550773542592031972249758319672435430647050523062262902519404432382311580214975663343841428755447877710385111887329887275692602213903865697771315645381914876587692615983794668885860145885769585158876262246623875764079922161632745026031172344733871530662496981171859219882013212251319284714581567527342163194861893816126424003206440863689246362023370460633665781039719988400404352057481562801162854355916389160750272050867044066677013502546581385463833983466825200875786444656153015817971311650576753116336333626641056124832233312462321363050469064059859243846758743522448331157109136260356723827266585886813734680880897713803628354533999731016002527665926075642819251650715233834421418812201063633401154507460446849534606950372909474181829794190242705091935813725515998953694963588352209298164244668488623054145401718737168744749927929506119154594576691905676891218862343023610392667779775062032818944523032502743687739828849104404721317108153244664748441440636875353179896869378090246165944786254296822166419394203968410595097794462127733026625804807968815767807497132759541791201037218673816826398704550829110110683986234618882024702993813371740577421762244047582953836934120313431265635809345793992669059508415948134738588141088655743873563586570053537552965264721385669146690141416212281727005030961184251678076257286830556000273858824056871662316598351252273464553507989712633012958361772733111551565829519484104869668182795858162856467272619265687835980229467918958728815559751104418811797477814883151468575250268393687776032604840683163701251542508980350118957442265130607258992687341098861574929170789171390969581790094614241449750788379318410689888106040504401478805032618686603772887262823545374132739858658238159673647847689652339235138601759221741079254930541879302555611647777397040560862685047515349744427438710888778816879205063692032956911730257110055107671831233521561998325890173325203182297019337833434266914793635199133095407390873882751808632018039933317548073244474940895619573222436417385823988394579469353238450651718851675287356706487997076544645228607109041254490974925233810187585247058234204790196273000926072482231888787516626016709161125172974529300889446024362824193864494163053755043683998154149038634672108284801966166841573884266771277808014895445440392642459675621030980842527936623222211218494187353791095907587481652656449655575528478901138964753494255390604812732479161209440843555281853838799550997365695729983511104368068547038325094324217440873327154635167267503781855327322756570917611460214277117059147030767676832750955808745771668669422394022179629266861161550748616261033102188343688917213133615970351407734167178113440343284981597013249099549745829545408002894195364714933137859793180264047907363744832753207040130254804957978363873280477417298188021349721668871460920102902717305995130015629280514605189560000513636977362066513810164487767472330048149278182727007284565955990887495209919803575007632480938499542066342066766036329814595783539783755815821326627389346008545069332024101106101535510314686239750321142980962453871589754590927823467869699034727649862837493953478807886172611442127413711564154523787611985871550179652578058801786343332018299460999252194103676170957838058251111171048574921148262168732858189635400477093532697809663016955848461793164352968596717060776050778360589954037550581587788263753530518339180307290611996620859934484254794066787165201024123792871983084920877977205173740052264477951814122294747380233365821824056607181626398557798182830240376446117717767148923148743295992721371060096408458654702594419711666410386708006392935348696813364624854737722577941742253671588305127596888883231128887666600832061727451548359317404032901173709231873705092873794734346769343227636463824093119522838008517623375214476441525316790818895749134086582670473318721532866483567207806158662219940637270156859847381433866084273313878119530502758263855082738896773983429615022769272888803902904272810536001331444322277357621626190829691058911661393943326290821570296582662609927204151783839577202827107898718057979409228244777076978369615899228411279699947640516348182392811993303897366012210845846032809894042144969429690467597372521476857419649459111782645218323252466788092431875346169909257929217525005682748631331640911652719384411353830575884402656073271250829170595604956818713407678148402099487312183019321241363121703828843644306566251278111368296488984702889477499703500209399246058762043006081508290114187628649494447272654000165451070044598825398234137870407618003914635948596371147916961569287125891406979850109507667229850465302768761918255700543151797011241916284076420421594410890162912730551825405023887956326975149462542118983705996849418304910754233445942877540855023588267991369232014387117166006941063533372458179047003429141870302463419861894162590536450497510070576641072560689234500537967602254279113812744866216910499073378136683289728908765574038204601108166607678116178555367221649012918698664644864775592467812752558519138791445138560324523727430651968818703255531064221317544724593060193010263739710496441280074510791359843655910128651579906194867520295630352093253061613150543835757695318453773538223206119852690081760935549161231799154502055135985068788216178958585136598847138278213827800931624828960909374388583511975767159401464987769554942181260852769136050716000743066294230700624378720649123026422944026143096931726198348111092613060685562437969166577453395240989938760496666360106727249351457443213291474982532339830851560228333744306789742249102794787387582342292624841705588424337083045354108439701047293781516760209940828872742696262897996527361168941557940503139124325207019941077279981718198677256782148076829401517468994191158712936018337994686537005065914094738081614646723097680371849482862081580876747660147301161958145164170100679399680591722446742247533838362087129739833472513899839420833125609221027501818246979292865239928202012162263512252856822787563742956811746541396854217948897346427621643987149794460388202530640666465894226268480547890167653978580427363927883236796133281300627173522752418976224027088563317492381228310997055878350202953525124599494749022773013924897373335108976116390717931935212309006560925396874940920961776820059907845807569503190186956303586190433347388400651178168712523625751845227196811717981350330353027575198829113368595775168175991900800618899175147765201782068330029687331416108541724327316166149846375111253098089789603816551611170780765873244765970397605286290531739559058208395991779638570839234695174469945829954937365262018145996859182505420928890766562470873775918139491301458842632672863970413282708336240083232511898628771780498567801391513348043438642896055674896438490828054667591562250847736723665321621962074516355499009614388518984425648621171870752651487298250352399655172295079630018588481177373648159238979666955039588385765280367735536113130894394890588941150973926410481006408180118128201620299730740263160171704451473648416222714949516679657112542245628384102260547314835107479109403562468613577553507241202625549771755508700219679587211578492688401749702041443770045530189628611156995026789328560671236791757397591113263093048674759828839132183972054261571175316285509504899448055894305531294597736876441504674673736806307726063948094574549870456955765309280007867250771249840015461663037823407539107176002572361463915598111391258381212810164663282244173659681294301194029113069134119629907857360659620354541588030578559719689420754572464574990119011518461962043010619415978185544007704610361220876675792354937397817761102122797884702061624273005537260356368565899667216047419488087238361405083015305028018209673824756462919116570616804895386429094439153377164152229046411422443324452121635360604391858098810091513475978054265065330113645999587966916992210022442208708518206942929524917440726454164458397259969871191650767355653335197331615082294980745243057591714247000649913850635299847155554706549645890156405886426622011634726509574407793461980166289833091974327892432215777823804638253644324654591851023047998015292627002209267557837609198401052433992575231898605806888683145241704970893496740655642435527035856289787833399680027312164651926065151622145869980544347392908684664525144964029179510797532116659868474939354837794640327783143847797624911877824653492313581617374659630826134644759094361447586250848661328747256079158135573833260700900160006561093107410110976856449579889675769927205498168789599848966640612456697916569908992795038874812978058341590576211608968872174580828643429312732578389838347757982834325379923087892385601207351520425791254979969515481171739840069222713139811409124601928176413387765749381950892727386280783671591547080548185681617945569715580609582930096222856511239609421893379903719575661000907948272884784739613657879123560188719055038284905903937278118133870412200169769965586881663964410191136477247534459392648686735050946110294583224620193889460676967770638678827583560296179391053842109729857011755973506972669775902914067200845577745450242988469952806435495682772550816541853536082842749587543754244437319651100993840296489720954637946109760167372127999165992457372743490790765595933571440670576668470957701946098598294816458677849866526054252337100148283225353150592169752693761570170037955275416785649174768542932365648269436949599721028218928993701158045935238568722270513281761714001688841185609957069051036047213981631030347797993321292960327468365068689888849626595386675447492446902602879514595054114961966123718954926521840185919990438216032327763842275322911403268069986932316551493652971185870191645897352072535361533661796747455133031324708072537614398112046096005997960044828589396981716663866972057650277087497502831167133505080218549130315955921360789952375887683045948080934921476507200681717017935640493242744014485386759703008534117879858073132457705310238586523920437308873699539648299489736398747697095935824548933355971094111984387673916910219704566245528583571589893787833016322756765749187891533124523511276126991301107351348302378222014910534689817642010724841443305432749464219462340831170145637948371025384475677459182378942608920298128993646164491457009394596211263814478550890707024469493867697222866101473514006008575941797878820315579765860508150627540273227256242817745898001766758260368832297571166383741373018071831260999289352255643631293930924288242523587475248495265917224756199608374637501259179001438207331475302780451400889591921077899253031779675004581498922963871697631569704736281503061010393324600076831728894060351334984804111783561417797646379036721190375524051580513064659168459759928833722703745648445205024097222770305613513095946233054084237881489444259234649864117732185245928740141894296769478485553572578404275828902780000723403231848738403633264106768097817174437140166490433966357306195037426311975468021005417744824764736466345440352882087437339879005837093738746328624607061334312230904788839860513708775816313714309612422197959996246408541431596751036340158690543281382579661463702180445230796951057774075893393498841843907806741041256012924029976461865975520150554308462363200432258171495495330067002335242685526299420999877848723100139773792403343198714002696074276567000216407256891412556673889240502879984755268109146720031107823835558782881067093583129591746718414299915384417903021975485796809502123345090973147916998467558751756485192982987918555442962908329749210506829727517569149746466098096240696419689151118141038000671239933761899592427517194683332672481024873664983601795036707171254126000274512810891518384285163623307148692685103379774425864540484116837505128169810577044105178571811111184096986463939412240308885989242383378976854764520619502900722839000379977387895285517156650728901353708439025115691519402200236110483351980945934145697339841221617605972009019698736401224268038185587595139381570432104425988108438972123722311042215625108347012339045699242542862271397564186232294931280137324243826392949435929847091048666190174112931084851213661500002423131358430129600215796671330208394577342124051802569582368109941390480140274558936213187723307399269902710814066988550461970147564942660853029999481365377253800673206481684173869565638529645460878199161829044152344627305038046184299277127096723943514422054785790128075350388704161490614753360369754077716027762524864600842428249231042399675054299635182731333575476068363815829359754051710367690804355411417318007387041886822916873590412889682750043989698081778291121350419426294327526893816498023122413464292415732526738848426602947425819745866030690085955570314219273041846402129872418553432270353374289978883265639937173296840367417206143291310720629764937103044334305500625398107066828243274909440970607837740391634075804907560466938621356431162961690621477035792233001306358216462706688092743107483674783167852827844837440707348110258532680980811985324677513804975484524265784293952459401668575102977764735160296603365391944873833497151664469970621680784196381918531439911550186384671775220671178381004135871452944262670623831406743147736660653756466681812662141800326013811227166260919526227169739856669363340637170834959447614450246418287075862780748490184393783888788054690357879606389006267087426361691174531299290901534300690521468799447161553371042320091415684607673080630661986867698077959380250896740551811075540518418937281283647821588348332079481765556393167484602969902267215849225599646279944626135294487428670263166977270745473812954772040510590398050178515016230324002627096777631647795354849694221789261001841643291451040398565624146296226953705748941748677818984691377911625772347414384869083027525397035211400253586630243618149577912153643648588114835356137091752339215258941554574378117492029281679073652306766928739971559444928552677982331530474496248355596582892446315824702490053499761321122404804221041703221836244395015874778457543803992156409090120639455356787117591154185149903408567322265399573478771673974122786261615198579840230057723365579835039311620933452561916192899999643840573911654438682661060802964130437530486016757400233617896081906301894691526268468434144945324680727451066936685418967408695456259580857559582107174427738485442678329671330409857216507545681762819539891297371003101730947164014837037319819493445788912647518733062712925539608242467747150455146101349031219617723998417036771560835832567748792600341882732549787965361930391713764032103208555166479525706819419684964726122147677587803295262369999321224931665116501478034782238762912974355827867686772194277267417289452196100712386390798346998692143929079944268890175093221959672322192391832842912225076899852161218743292082261009774189696849511811287546852723083805229812249127160984525089189671018122375569075736568167847642755558581202179030375688578049105984855802440942473689178169214589815530076922413398656527379509040466629330019617438084427919380150570685291126538890992579558170777324073631565697591486306275344774255591952203862706799714072593801630670360374793704435972818383666315630306237257622297486810102891133903964497001443278947559506710686654873744858437438760852050524959940916308315467497997549801381645106371787305273517881529430431364642431765953066218131771315109947072650597498904903727132180639313458660218210443670120283163952080112989112561907886702830228012954902142579652299340101913369684887737551427023490111612862417774583792880713100532537146357013153861860757280458988495352657504087231916775092725984441836838929095228448472366410869769420051131862436948728278808443589668494144275981043410272733145602916804863550485560111992633806217198743412501875507292644066279315429888742441330151881141003809290837567705220601095987414402029947387547934544660412896792356199737456052863505088500095580496716231757151164852970190646274107400043114539976090608373053847041036975330753625807447327034102398427919803759854481837988860386005853499153208175229456328150011668157742887803228256721721202271521394827307323825842348973416454588955472991382366366394624114650894836704017124578118039318383649985580031709053247126176048007686598707450998132588028441406537698857488839868919633902581508870315498882518305639035957815368770122270873498380269456876369175866425169775188621106316645632814362506309741486542150158360822071139508952493475131014178205093263147448093376206293504426565436372505881786131061428672204258254747717235130366170890620884860987021188108400064427928096201775762936629982923898271316943613024287613304320471569600390407353791462093820955651358424144214431879802415619801438047788471038586748901298050260127764326083723817530601376581700255816108163902823191622961808796769515815122011416729896311368319717309185450339097401048564784132870336871305701846647974926005935960234380006010887734796768233337153027776267022772644090459104029225255826623166921116559914410643682880302048751514346039186023030420616659252683727743222280532857637049381846755965179383073354839271908994427904234359701923672155699799073578803920801306614350595167825422831855972101042523685244657767997161003802249154916295554119743385326570704913955129297238361240634772726305562311536637296778528502311578986101500609684027189826702622008039902275080766961013095393633029999267252219458463415869416903336278875106143216259416466987059618073545941241703965950701980569054694528303453090786951685093159647858865314009356820687465196966948619478089281751252214807717470658556721134235167113863288682120414100302531074916195079889932816782245275752878740522349694423743101758806629815082249364317087017722311654828646387494562662262220133053817636235301178082156345163885029361821737772884744195376130368398108432002672617875212668044347094392389703927627523681863825002215692277220530124563265162269890701430926568604602194240819856113779196588616068811097161469942093228662571661300964638804723610482526489766081554735808127899620084295494426540361516198084030418749570930368340198118810168719786809042406823709868276865704377437203993934609202352159223804403302268488697307285554822472694592697884029666168271220998787137909929978718233902351582289082194128497840467894349090775930455252714007514230032508493783839133690736901637217913798071521677818307556030717778068866261530106121818502584772994969778572634073004537492805116960504218540260462723657341133328361906270876672147025813784431270253514654597726388989802221226880690951160752981970000568134633737125889469385769474253167351283920289983001708100836644757203600468107952567726717913063959738431658756874637296570031669943209205136936813995530487261062022552780246711661195933432049642226515939316362077681780430457483440663804642877855987025937184284279069086576307286544079183807989673323713545560189977928889383746490495907691301139715068932982301312271757584993913786106743478543367868302079191292876085640365507605198390746411607493999650780703337623334622359101868010221327187944609057957393701549913906002714387160737770415496276667811770873044032662312500141026031856412148210105584439350327181192122657543039319773249799343183448473605305094119470081600341071261717255257610029798584304395879739517014855577411074150368354253038360981331095141974264773122423274611215578671985171152914406906283410607177100805529144162725753458062146980217977409120860072249168065208858689925985391044856453994486035614319598182944892200683185996913760019250257462749902695522254124790310054579932978519306090638459109927182740529198656644610176185292182887718929183082219963829901796187871069731387398960064010775270498797606341748401542210789790118587099389094340802206563682907574023145685422527911372582854446881174109498936940090874650783584401782489377918487280822005798909691926609333075514708701770395674374477690199444095786006949550205335518741917929435562186164537868542873527398920034426186073395546054026342382139216637275394753574627049349365253080389177935531853489129085536560386564507895629636047122538834030156286317242361607582635352629078230012707732861984106868787391589387266812187940588834254352169643623328560900739931969534220061029689063499374913400514774937284892746156248484037899121165619347340560052943760669552252232531397417606785631819257912059592984335561021752166359196347656761613858759269230972116511745879029310898583724855722680568588060920783392581542918334186189271823770437717185078607462128476020942811873304054149418881525832200524624664835733954023615331094396552793868684232431572816166519234549077269971368006395653108083153166909548417378333806950071842859552866601573021804962827021692834071031479751656568732457588008483903524632088388939477921365975443638249282501776569709977709121416059870072290091850409670922801726269509577340890186798503480839487579140539327567847959248678372939584672167263832914577525947473151014558494247849951335593454198113949832019510968669461566483727309084322572689375247767461235841945158746452193940661107479162755964668658872504654091918634422632392430501538984454631012470200676276223027144679965243242554739137366881572411300776486863202582483478829439828527488590604849596110393764504739976115593885180596054769466471022865691799165763495635888921076401990897446706912141556663622567379587708931875681009858304893489808395484366674177277810796544997067667385166205572788718859925629004315241682448372919936909578509482940956690363203990513412254846888351570345813159802426082143091718370681229420280940918070911415552416232237449579751866266059241916048546036925144389441871712947091714903273660164908298845646285298261123799584934224610626384244296231953317898784646313727398494655272868358760598808695226103651418613525694422167475102271582266797839472202312484488848279276492880487518753214079874112485702463774411817471330795300539114659853717734906233078538675729601771287605146689493717695124444720750833680401394266758554085902163132176619710994078280597997031310874987318270675383302424858926409314797632286747391882390651042505028053315656236792143081237572090265112870140323282895051181018779466809145895690723866442171737063588352127631433434762575255681327600224271988028079641189942277791738707934861663814662666457889166304500217383981519106816533242867035098053908793741465091618743837396343301605686926570953190461348891648740663909733393587673598656235505489797410371491313543887714127569205757539287746562595567139149696065614558016109978015685258566644681360632758085969319467258036443638626320510624493452192253389733884902599674164972541716657537211575060612188415621577320035774398152448649108669086247568505960780502629749708279874612689139379546230732884129016421640330563583962710149196404028504918932832606580140546240578716316873940341364029592698311077363125382712832390222747483133761308648640253477796623413358962732546066809051899263661340563064231594015181668371295977754148046895757170412806624038297631423652770818232606585148639537581304649197216896740545025329827165534007567708487816760253478043601472548969077039423163050691366558810746943665603164824228385216215960710361354809665907481381334069178282355292233767972005077451370061624302661884262687793183834462693489598458850492454740134672702521192907883003854891629635528344429910963345884709366217470549173927397111334512002800533203642575675378507869386583656747930051773032186799384803418181595928627375466730184345801075862679480607491187363270003933305357959666172425555340586251313324298889080468313378809772633256297846111273314750164221703592379316513640099180223450155157019297822074923357229989228851880651975053226924790019649106213841474231916721941361640949864601805377103183713438946355204619343251521738414147258143202507802989496120471512077003770735026535472792207141246868134392906547674334677645395280962919146645058590701695738591050264506657496262691121783176610533085251126335858598485377137905470617310778245868247654143927039789346002796791948304932938091128912885404670583552945815067075687973596234702512467974218195734172598582188658855516409838191423393978178289694557695666473032817650755932590808907640354582413716925090702173364429966152405296685057885483947871655518400996228642382869943550302757372318572544747145787358468732172116198759998677221445111781685650806251494672369527676344274444189662216461738884466446105189105043212961349925158127899609769620002439327508685327916864952649964368365446168046805991808440012253200544504545233403904852457700919554056692647933189477532932179581300721556981776008853186955753971946923402009046968671969354862165730802756941674252334775513881783575371421543749071042916323768300932024378658093956807897512033343715718086911886342804853908838896546831058134563457949730905144318083821830085589893597731555634976876428976701404815968189414301838400044801407353551090017563917639786980001874274206352476151500066108342854673275624159489970700870567784796253356454745335767089119363989999300881938324155048819371812671146019073065567649467796891670712710298999396424124084497630393237695078738556931224079487782470958382084054905664703888529178045252379974499839939353479538766582796004319690746764892236875605259030337029377415463249899718335498486920835912718426531254851451941336341552205258046796527662461821459749985330638898845477541242218621108011937746864203882358458054238854749347964457775508469133606135523705230595430319647629002171688262770096214283299669665520348781097548594335192524607025520402590820173039167812418480912302256905464883164643575931038764775370370892479540806015334224691610449340610701987196007655105709396844362077899892232016495541093403852177228061924000046587389369649673718015626517463013255780500666300417280673892735437980962018919215432454382049082836168590560261253508516317077243941382721699678762308520114213862057201893945137525848574331714443890774252801294183726792521282534750950773201892310186022077132586320158357435420633910747647346705786916625264310716721317935458541533278438136138511208010300640371588467681535038743693619478517589996923105199056495820000932084068297780957613973481485456622038519478893634613174761770312729828946845366578716057906076734910984067890306919798084405344628565731918636894391346601193200573357310746539214580513324390132188738580767822920253972123689578919961920307630176241298580818582508800532012053148584787145221165371537229073776114224098762013151401325092291655342794105292484548158098782104860636011295386187067557505314981730063934628037881812620600781373504694889665017582210645945165478257966218141431150089364223573255097680112221647220856579544247105275919055368141106190635436112962471009191554871301724053881700120988259089138687747141853332688281022128179253095620792756560855456118172240500569956919882357086412916917837065152806131014105312898493388368556050597673509098169956811585620663235776103401908403238421119444162979748947945487235734446782961993464422865536850223395525734693873369786911628494044384212991617064560795647324457151548175929591531280870838443438633941341376151280393094442833395044096555168359761445663393446909500336518898042969169850121539176595152983440866243452853450916709075448868415199208161415147353725497151499882286333305620047811067042365724322978012180589630905818139788563434534348856817068956252631559402198756985357291915567488434136551358227159184607702864785779533595252518296597298315820639972703960552478859667691124880481647632410932811175314165717575496817505136100621536255247644594973871716309498424706404709836894430776739472658459613175148555330780467515703226502348533121664379385920787416900839282900940312104489535677263045010242650606124199145702966432471886841432262727667821056617163606263142470776041171413510855819877010859529989374103126536975918845051086993074816589458886363406266829482281035027735809845483850531890788774163143272033334702158738436583044650731365910182187172607841988706141894617456288991714786518712377931167086515486827300981845109782573942954965998795666932626836194027759747016869497397051600260919688544459548338255675050058313926680924488610786829559815711059007506894756283371711006881428802193851126671380566157311008379151787786347611371782387935905837554377705320285468663564688976566519319033454946443455497003172973038396888268132850602494242709697078736143893985494880885894836418418382223372331669849530156994247453858050161031261068059073962095336326266279584412142230131773966580905220166680201311125187316374498806104948550716308017092866086167935478686968538240205811662508253524486018637727770384639608612124054111972812482623563154294410683791423131763095154494644755348332581088423095322768503867215365735824233034626748525347278322493857174155080602237585444677943716374757921782704663159067169321665902411157682861063902109879169796966695174363854915342734556807580522245089564895244126565885818236299273010913041915475760363161108275870963849406607178278796891693205646059334731800650366689675868589112134593434701065697250495936717692742620398954966100841074403349499330986927895667199015644089572719069445706971668998771330045800729351555318393386025458069024398689684596301653688570295632387723943897818149270797658266909633499603992742821484363252297319876081690728274022470337817845382571300372604379211437708706497929479287276571448170468624288128764601210761042269281657576547947307456234195781190866455897356459242522478092421914035380978037376220773555149074553633601198860443236872568883914569920734281682789558594391041290602612676970531272450749995368679354039046335917344057487948216888526253303734670850085276589622291590458719727019059816155223360700735783958384695301935210188495948151300664028195073595774872299366179475526201659857408929171729979475139848053806888411432284216763175242319418776676803604134795136069129520984550597116339714764774309306458679521521522170946944938168081648062133760707092026242194808769992558265412477559192079440006223713086265675335012544571232030741366573051608316322753739828632150928487833460158893802170983649102684750017754257097664956682593087148692425003098898213111025517492733192921666167407906010820211170995780149094346365269565819156895894808085682149204691648852226232328357904896773799764014168437638241865041632787211630692973349789346998377429268771691449141788963359737119670165098990662018034842288588984117663073788234411265144309526539226278826706992587466352629311956046026347999296077914552664833569829539820068781718077707910816697634820677157765853669839425476765617680653425205348164324060297816176954255983963961341226828956432052121257130211492678296216674675055112501524984361012657222988100659685358898773040314331266932238203864641591975273067512955482241750876112564015608183348816484023312384153609205643960586519671106666561404076797813933701799062440877362643235589527330722132899465521373883811373595109376716198962404800846909285371896027969364338229462308534229909171887335395324739298895147530536596663141562885150391228937972380668352153817730976016811341592740157520641551181716371776537025046384830085236060762259967640837362270828254563753113952843915268353943829454546629865567500732371525752662743999078758124280191850611124434932100001088561326045485894676783414536797294006338378867779126982330003249640838993383323213789480635229642518639474329781821838625844430506329814487675028636879465965976451941102953425638802502323514306569638258219369019995187792368658680727138743195607157928278888428370996373115851282704692651558729286451121840626104189145195084361028323992025549458628972721285981694446114945634319688848915614021859121381413883100376186470731421908703098805492483043677487131573575225773586552685417772276226927592012124299465285968706913843968606011917932463472073790386473720255005226849108344818376829690297054258948006139369521723237651258408705979579993341998405432834681417648819220146182274717784733860874344456353785449920877427490762343809082731039658719751451709927404556764725191847537037296141366074131495146513765752468425354675413770550522787986609530588317348684745453489575076367627740358593363560750438478038460572766632356987381499919226900531809513198058980931326016294129650124737435441105267119335639483237296306492940794793715435643769819220191273527842498138049658017438456249947807731548863028618488009396066021196332738941922777056743608023224917455022944136769188518228718035857886856023399221397185893887598194677471200901276907481335776225492963183408334622174095065748832750792968745113807642334654710074433245464160829621762034873707442438770794668056822804480661652376418132236030439733627746781047169391693403832000816566172488791802154955495180412968931043535033989610611813316269708158538840106069963930646556652994588476391451773180079188726266402250686660158552272395777061955466563245483023012252114126431678342306209921798082681854306476552017224466808815684388335414750125954364045499194347859232531559170816956908085403014172002962316609589479281564935434674671512029170161505696666698363898899672889762871158884904178042514371590623085254309282304488459265828216213981564495168840577788068531176789567075016382755944548940230997991654342105067744906968001605019822558015662140874490193987716902622614857323007833663722121358207260319609907662987066733193063918179814643460961743895389642665496934091187887841945238117745066646515058873752101273427208873532463083629096602779793101484642736518143893119746029465050352878832199193429104188134763092152152984295889773517947747159454176837085189866181938756243607192766980577497852480639660736209302883088530289596933468332854580809216032725689500596778853143861113137833179815715707145922912701577005237798225880515431304901257052564988955526371483769198718633082877250645644529347140654996219462923791711414289067253606362410180118360699104149415107257474171006344773104350569467495008246929811861699621710848420823865886530157293193267968424843347253306259425558683438874467028032943068488793385444649055793139293138309030001021651628770288244269184846220622195091795165850950703371124060955191308823538193978617522006645069821045524802131714787099071972743730972877760193659875261041889335123701638961317572861154345006682592083950264036623627989526586228665027968469419719750717799103997616285432656098012245170278880591811766126446546183083548422011008601729389129753317223266489491935236874884627006788699825900301348791690981962642178383001956324108764926954137553510138021737151619145683833166988079550418786679363568518811834066084934027376071898081994726280147450156579303878804697927964977751249421656977455261244961697458637562091042562681821869064896072213261034225556140295662732788650122421933948149061289208557031737902718480288319130779366809054434257401908789636218173778267176891986405031103581376204432363958467389753251659737549839972373504101164016491743810484540779712301790469033305392626348939630455340484691955842937294805131718227083403138973608215587075054816539728925473322171309759125701397118619361275063885439870621042002734258442498742347010682350874997036890487135488370066773805055737686168986007299951104364212758958645195147748557728956572873043938482350868124380222946601814246040729170628832527231307131185729764026153356660598699521323414869869401213194277097477625713187744277749297114018000777244038877103986073586129717791520624189233527074276108884836567484481228785161898507999157951595059665809315447498105755798023159858422682837807952634501658755190142459804383167789226698673913776049611222858545581454607545853106640550313904586298291941938212148324749103613014745038747057034812199137257894070142666812002367161031520188314499597867929582112340122650055481745835507998820840780308304778853151526663604162535710275530979917077359692498060706123251456054261761072481836321432435864794705586912723651447898361417984910693555028300788523831110083042505923019543116262211304520243830922643100207580188611521675406151503831903113706004438250110471724455498431900690428914711928811190676689502517634188141204351761805331722754477332768802981526480560315204555456212003016902666869928308564169533871394801282781305879315837544965404419818268095286352849115729591808126543447709856409269835456714576569861918573384331348835194735872225118023967415099923736759352674036826530512437462293531462014594002120648137816638150277287306872256897625039173153230128444926404992436096102977221741439075634102022410072129015584653752962136348984325654133726485025973672817129480453536003642005454875827140293812707978512460798737787988701852323363060669067328374024729412905342982196056130689781532161672329787749582194318415751880558702060316549512496407331009433653554541349467857028981065698850590255188580218571746113002940103152761906412304013001014168478541653717725276281529704026932304163495441367790903092772897445972628973523404777787474190147597836242883762513635551731396816784380095827444915348203509481243702536694527369794143942005155817422444777227077137528168311803281668769804738404067708473624179428517553151744534864508152583445485962507897822823511693640747483431312320063702316094776189701684836187568659244496972966637854343617740955630499377068351624066902223393739691724183195674923092027459080528705840788902733739084682895225555089247294654295834716951907974256179656506639250882349820734416526428149735980421018303036418400636894690084115013683504019802413027532388745863751999049306419282491706491982605184517062507545868915040743445980203144181032531737527242039721355708059551866332641428803606848723830224985503121149890197327630584029997685496788079537361491411467497779567974439850657132617023261331930734920943387587323454187332585527768304964278668897099313637805604063739214972940571992086539456857770525738720250422731890167196202765772091778481015379755985348849514772991197121693114573252443062491388699194384512438261860968922927715880025135262723086950832457101315010962916885591421611789440407102228702478261876529307650366891377924929715455735072887802956952047835176437037216684035942520591196466038826773847976880238026773281107312961983549938090613035353131040474497501083481393378748655281651334183013925025527696948816235390987932023019380985502627506993364411283884067125526047324959960966654996210416632000377678242237801484372905691632465149500076811371185348557409465298583790340244057423912121633015195937930228727338779264089324803346331974817421235507985818029873627789920412027712756838924540420720801342893588226186745840928556547279262243837821059266084578948620304096822930536123048701163045831302510700289514694091863273462890023189925701667764738810943328239848548530163988477926423956672034071975678603677417464077949727131540604248478942402010322868386277227693047360818643100032424826378350234893783679866121349774091384010195341246128218453770495267043499358349702048459818059753838087120065213784908014478463853898333087742544043080278259339713505715056390907382565339848291658965644604418288389092378585720001513056078007201023289553135325825272537659110803442319363525584655196951672448576453325366296183888360211146711010353660903510282967537935943872612314652548345589097771340986167041208486722377156673701995909942098070249014858208315807224176874916276232724239971392932457153791961669294995477707848413648990186231546271206112529858908375606375713708897018839898498725040175417692256031002790294282990853803262398280628168500597146168286273404765995719567090524848384679495071819106271418353440174603678417122021470087989813097595470973520741160117474754647900781535653293082669982845883109711437910501612130716213855226452912193225798143836619971895644565212440963775600784012045384612684660803756711758278436259164019836560064308589366320059038884956349388444524642846435992948709186868307821531615755052721838313668050953533272050206593885364282208916845565058593766022753731089364061672325042978744581900251979439412891264143254736798796401411625761890858296071788053427314374977969490399016250551910004461032104543316953239963813194780592469916788086552196536741962770340600211030255474010513867584309674791000547877212957036581043220832392052835973263556606212029037564080456674824283246509967297699320817370828338604946992805684007941711821047392463826383955422161424305404401993677208555272984810535165937190003595957909485103273123906304340144945781378813688081054456757216054766748586804527514512270788112073251447142977282650041325290517658291590420383743364385823105242156558181921692983468901113505562304771204119897181602196256782091826572022156017877404736557624887968688448325959553282901133818894733683646765625422545368564293132579541194881511111581025653094260247944220669236374703853463012652974610189180769504381143165134077187154377704940557071577902888545684888554511560373817016631644149256568189400361027330513371563530007138233228553078654861777750875242738549381112968246245668208990126882677190156756381057876011760520835172772391549166000768776158625206941458501619060408817696819497212128496505868383920275978540737260311004973437784153721155873772419479497271684360346678115371696250664530869225637311530995073318378958956566240459632698321264772587951164795537123952720179456180978445251960319302151755491824867444671243878246969090189560086618242262847391635482554348152124938654305768590862827938118346202377877314879929166574899226968266142156885393424438766158678213435859434174385034765787527488323471522159977045714412492663068978341614565709714328666074830908143974344410883847352881438831455393627426445620221358310277221046456355672917709584373636702301911321489275401832952830036701028049715936294817196291605461605862019618288015667678865336352085310412518990013164059394348139721927915037732349370055613532674961941453785890884973839176552026629514860793311238822183863848336468830602184556037934966710219718766760272907451879994237852713027882865875243397887863614677406003140591734664745645951170990251872387504154343550466666572376962626282709771012057937492802105780809597981618425301965940169675124314251396144784309794623373525671672464595161498721582151451535115298321480495752048970875575719297211825214511585346453385206330210255478148664685718362949373924045805439230684158857740031421964768028792474460310216843965211944052766703288280622153642680814352483013279994861031967592479886430624397559773312085001931558476733503556224984289567747662761521654625303512016163422672335582543912583226062479958915072161530979991942461365724942388485695819253423257575482288233837575768939917485830577252821102297169145900887869892628692648118060753866920277228736895553447838900198285895488892957877713872024946605804358973603702245816572551765084659079303612906940234413628548413026774174302187980312784639991710377111320486316803952893173448598036303422706090519833085905045504947994651290947379161261958181280012461809905879664216885696653331004729906900749479767898240833341209413207563470227551155439341650920965012445151070039601250980674103019643546714389141331299729139534875027470040909328341618299635236069861803367756165734078852605100549549577770828059575346026038222907666769751194594922803475140257028444551314255065703559630929787706447926669446541829399378070502666704078236382201003506206248340612743962913081617728567443076411859583791597269167165114064735020280968303664121726273089683543668719501004366710048562116538851613672438270151844529824086236104870683168304828905295214698450887325407492830017687289067729209026360530359672208757596035057191517277787782353986817864060895304863924793585597748740126114574242686248123321850547478993960252189069961285550928042124958411514929035229014179264503135995402964253514497252071326591247343814915971767496893630702026876347646827917110655969910846377649200323958055339004215845782603322657344980886427388232623659914115732489901479993252060520940335200592879095287334794005276574257738510630349835907139948457236839900061007237153987950367684827698946984281967186529490721088367797523396643673552364692214073384358250213349007508958591961443114002941060642353308650261517768784075026515122515581307419144507561506368038079666582805753497413971915524108906410728922109641503941058195670369611012357990586026780534474769383928107115584352482648424973536013858097274658422564190595659297328112275683983299126966236158005506548496555902766950588485532439138865944009671564937027349536115630498284522166037229331176290305553610490356869586903163645616440722691502319400952329891422763930987774199320220984276853832194625239203070698736284791960768077195552889561619732303619158850165858738224679279981827303018705562595296447098368414954092445099433668472115726952826961701905410531235942164435021304762570968914230418255983988819607014484422824722474826158878311943506949873753509779667544132564668135442236384338235784177240363709633904295730515676112587132041408056822526274528437153821917670428969672064714740476209252885318757548576185260662511596085757835560350876735484329942638462515995781635838777362516324935343605423599546134357137779650484255533150692848255455101677295324981965691847417777468002979295242328830875611484750253549949930182897093816594784774682747820761919096475144109565302785919748117104426272957276299718390930590010986725821097064989938574419215572022203420009043121516251974878536517906547093354882862678331513390711401758499478652238942150780031364823132910527880160025488731332071485054531877047565042953157722890454140678128680981204536326331140111945897238381005067532328769316337573663957820640138882506742289066867080721367468473834297446159534616708549819744090488250830145317139768888772555022009201482995863175983669333060809633570446622678047653230469777049438296268470236612512630608802661659994845258231621520067373906850492521444644047565772949834054803035498880071901196704450606073935683547061323925795319803092917386323878968720156678433226980452314545892294352086033950324782098474689417573691723244697177529329736382150008306699413577748087078684114389085661602964872354399202356273212395835709845265300369304881067866810837643941261087956630818788977612976534843245927962437106643837314663199889111524675910820750200112555144321101802391421843832486457383507321883156177181587314646746323456445698145497110879833811472960829321989170293580260699395556965322881769070760307144238499433119133788361591631101397166906398523196723074419062181482195043698190589629004276461074644226328320730393899165003383803397528185976730535023026471185131281408995972562100632292145524510378131875763840276213074601793362740100394062765764119547787841101525226753965540665857809464949142978626708437145817985008132703949945848762337931495358874070877292813179184031402758055379357696330420755206195755365041056491292510732054828725184053393028493074727079192788826560075450354462273184868329198568107663833505089184786457305992401490637006503504295248548484624657240735130325356794603593062392748558082327759749866690119845499010070121029336319298361064348141398529957562548356713802584238221562146071702205328987218116532313431258518440033149139182225102851499430629065491031186527984638394038785724100484298230990374056018115507696424450664649375918103645520894175553635615910301176225585372152159562099927913367203263115149970262869655058682256708478330528073829741488195533848296941315380152001152949893001177510047565655242963596259184814235824956475883934447473233523686945384994907189934059546161216233108501836925667712800965812672747181741265073642632475149635645962533079029663321452766736360781214364966863687836849630022078932175892951902667606810061425273897261778296487055337558894021699196608816020681989605770041081934204850889666348998900266291224634295792327701006067710854014659709340216799415511345959453439105109814761365491876876062410805259846795013349459787670541351914039869519410227534491435195283305827466497354422587923146738138616813516088201295485833551297731260502176280158172671433112802760691529235961084344830614011317474066597108688190538488167798737357192324326169660511178357661861772014294939366410358477982003877439529167638708620418388531358887340693897967521892432647106659584357307376594913863828539807522636917648490470198256453037563893335447229574141035412898283962246803202774351914426688079587215855513450872554306432475373422366450834138093617577151562911099838831105760329349429776536925256449813815686639210377491336630901196219839652357635818031250311524379545488273875232381311254012418623110833824089595528477421103255767704591784481921752170662752379221387211741216315376587040992667876444160091683603095295602757001917480814879093301665761830951545602534677609942495233781216799493152956988145886807040329819159861005834872492037586727641840126102656116376732537957544377529796953814480003435558964583513253468108440673594449146605878896063331084506966221928534732069500147823668987618713585061226683106050166856325974522004153750043243581871779330989028287928612275665400047863146178261109565400755736331918729136863344525489258292973476311031304357270506525826296360787942264950221144243114025929836518268951515294757533884983523851097173659095261076979291042792952651523008038523796388565419710361244597775478752655851359928926486886734600728686148161537238654226162943391744927101887683002965257932640847582100940786510970173058249289190520152978166985982180841316505517027027511164431866436324835341191132525083290580690512374006392499448434417003666150424785668775142944252599500252649919256644516384173846379921409510906194671825699688049127622863741380407712743955452912518707484706148674421680144315937463683101408757560467049692145044719726586948894572022633116164255989696581589094912506166511543773947187886123814847105280273209700467597320056208020827760288128389334288421802870218555888235417049677980409436628022201983543489550100220265438684693680118674442561465728003515941388708486455796616150193603639458122496889234445462421071046847125666301908861962566303195714947082571999010137217116402488015284450742937957261863098199405393776721221796822142309471676479483526515276704680907892315314099155256279606878246371671918778046040832086705267217811459598326879241510234316788378294556851393099259507770726546714629854340281774032758640702951258168690731900592192429293737889110858364418769528256662504782822871158700507150329665932377766601699712439348169263490558277962342682519884476348823860569062841877885259438388882799573247202964180444349859859066894336214005841405581715268326112313438199986235961530008334325855380381535572296962779077403269736292247978484927491013712213866153340355337502629380495909314915956074213406689409701250601196354539196244085887747378410417687707860797899271238723325599459579033556667341096903373322538105005448018026406025630477822327353559021756795527082114082552674516777013551265365533599783573850510990850783862740626401951470559830947080981131246077424705437513871957638047834315159671645615140727787041420433486080793327000939569474543781637510919031923458932071837192305841760019158583989155796568386626332693036151940798402831852867061381243050836077873747171003257620410681746490445334007097258468567110374732899548522767109367091392272896119547531516039468454400892549791545816644335520983658183154549556461016858203373024687902664391510762527845402879132187714538409385875075042379369033227634871067367701354972225737461927697620614908089416837439293105022625674743589887850994108508703123162938494543740700397164915335763095394543890265215043629064129880464312312569171526700445761028815581477507616748391596671574456804667676381179847539388364495232427595747083026313980768753928637245712622288323987516930523703162136318331484926524773290740230356367255204257379865679216117717062773400722989824230843848375245068177969815969967807374614008787112266669401845275911071313426331742771411403350718734330676175516460640029754718913750302172180192547980578734641280640569909976966604008905518092177728199849659216716874694801690733102679206457424025262444683513967339957651453010537590341564326930906489228394052650614241751029792944587335877279793423424466626745189788766643603659146757765687639467017508370994548837237321548915011760156876245109394940189494012874704678283892940994687425572524775508189088873815749066224916463024789335718270450129062710988735974406828737147842269642602417091669631482313759334740381891563289160166511858300036162277689924583629465104091279442305976599694757649074032489840663981397997598711295928999704659107826093859735001692757671999114373260634167157145471284502929723852497332098080310877309764636650311674453231238338023503972102794226250927190307837261919805559047514944098009783175556386517058995985382513715235638921450637381698178948490806287405037981421147176821671355682144007938793978417064753998234281980602259294227608315611399888799788366615533650399960785023218351004723877287756304996675907232748460629764803931024907389669648884629731865876509882943212977012153849986981168641420140598060759424442878166419995286501474397502751586266658137661101919516591088768264485364174909043398376224616547413043008053863149003611434064573649426796367534594309327440802894776681459898788237962584354893859362280613952008662692988763245012189260606246518190806350956299266310085426867756422313772834130202475081611747437415094456860337851377233729501416008617832172414019776941807725838614728267595403578328867021860730370680767688813947737429740506859310511073380153150844908045360701873590666991785830476880313061038728575683799655580509742824048399268035643295591865671832779214063674918069573554536866702528614262214060054050036152744645952269551759253133745578395248343979244988427619713708443081958638918914630696603933032609089661929911576467827450182920383121014300630584877706436142114200538803684620131472759877823690720211826886529840940485468775019832752135547233659192638989123740389016167649213739411526048921558448249759020876779324975022980669563825120704928955172706103743853044028105827995577297104356751790980666904219532164057615251959299576301777751398860851244344970329656316492462241425886756260655932037014233645560457364779459078338471239752713277784210182170376590865723365187712105849661948016986761370769240327798963665514179154833878547592084723162403069257485359846843364754282080577538274421176621069696011158196711144965197222742647874777746621316221256328465393358147371008342520117967329717389361166919307539988265399615967308487285806604414136089619801308787924109152737489849331252157032064471762995755945702053730087374377383828372817959438084938278696677266006675804552069681633564367696081673332527213262465689621354527887755060630706675498294508495635376750962722437380070569836659248663307386076240625109282320791173269804659716309542498872133659656673271388112383261343517907047790831252833274306615307372195999328505145121765110759016174139635217340351688983727615882136529736147826011007048676025874261511375531911397068326031073622760802444293060338417475561339252616542822437555265728109886791573066287578245767580991134363872385198117234648298709718747007910651228323790780329081670141354400204247167389803108650478191934166950772953625504673328833023929845226961129471652120622549438050413358961886106455345900457673548120557326588257198730093936033111184574659141394694267351567242185608906424504496087989053164200109768561538905350909255844641011324033007266939061214273460102148241361995645027026057254995201711129299789419771968837549746605377484336959224083392171773145657408324148024075038676962076516340208933480462470091818906079244196185761724735274060719128462060160583329799933766242934074058755179925972264727059024486500415586673212844033936559094206911215497579206680305848657044046594254448013426459913577435555451976925403396301174626764706222267644518338920575552941384905861485979106398919192320519109260015156724959417539010515840711789026474460214733206322880457928270248744984473131797202920138316266088025601696019869952730342181367285524104899274239990489093977627751107104367177222249554870591445390816741433616955073838263106254108213695504750911050150661092705529653059786824703294565231857556793090992834503428829630043148118399281492070939978793051783057044393189803020702325541804330882781915297753236490486129779124892999525988125936100922734665741027861197432072233771356226692996862832466411589325148017878903787118293139008823487329551976471788652961104168383284696386189274271890454501179175579553093040358768799006241374297871210985429546415280792009749408065317231505317956513722191867869184297519756446934551095369282835263219966673797646820499133276935966887072519590142064854350260476442133440172572328800194957795024788612407577688597211713527487537768536069058150375635180748016261097304666349385384847821329545357366425606684655016025952644312652063016825897138293674497780798919324761738303783077180601462827226202471512909555776330474608239333832286527908964602258337986967891681568928886748473149692048109398502608989826150876666071840721842964165700195516771788562762103957847639119028283917602507503379937630092395079262954885636209515319956258133425684302231816133365716498892889128092485468845127941399755594714300912497155811639966882071440910534726110247297410068323154903988917302578207306209217556443270328042958004132637381488388019855102760399592750185480874101452563270632232250138391406747916406626490942182971890925348908412600184693232001885380214725238329854342315490992478836676392263669661716327576937248063392863084481609595118083640502577284056874642047087618537377504048889948481519601130931985737643938161463564075231755209722070369632924687996027827677521433930771802543121306221041889441033026397805852651276219587478052180731509655241002285298696752580378113844658909862498025171734747232843265424488576275809930084866363216496838984664402958976045421739759279791851354471593123090460881205707726076774617712045710461375061921041164732585166587795553537195931484235512061063662659792630115352621425354047568221345278338438513487228762665950716221892623332204339018959010989325281021912239202840106922249020071882266573492201659833385783392602082521229864879515570797314796902586168978330909612609136508210149669136502850080529275261416558687529842825561812857378295002882244208343068133161947742131713867212550421915261005859283559593014958527824265593840605849557139610623585679054229781375082710373420278138203004830664277271527205818239711923345710115848734885846627747287303183958194759565297562788902109063301521918129931285121131240029791467268868612478113067170771692159833426382218847005578803075028130122325677571773549007603055963905820291513185388004898715121404969117146436104412473349419521066648286629642431278512250188265377047979253808947223411167456997330778080065451869304333414794413779906278592622577616221198639690725807608941167657013144792702585260234110386465030386239499380451107344275607081304756924918317316595218829349511449845837609208845835296623102835163005408540611159720422269358923819215684536241777565945571731973023854647562089682452251115232805099439617363098390212269217621226963338444620671052512897808783877438309952439984733495708739199262635230826281548459957305149584644028112282581245109828553660682830418673902231644729257799824484956642775837911107989980438677671532453639750932246198804802948843322671034300707580142330759778361222051959284025708408492185781654309509125743012773322337299689742190759179884335072919912722053223383511784548724134756600712354491075095058883721597721162913274587272294809586098006103204743952226432479233054517663485673259552422526150093288252500659179035694727182149590179257430441630383652384047822944251715893757796423498146519512613098989367337533874448208859161017189318839775842100147725725713994759931995285713913730338741632308983748438730397959392522224346835636308028729988450116991369133608738453795526718079096707814392126251438292060655102570651504480405449286571153210883656583465196777039740689738901264389274173558088019827349171197193060060104535634069240267849202552311178103103095352272561431885129989360750423737124173960157408905681086876569754636039805089176889513705466955032468901945739791295428673607261223141296718780404644085228650092308841239604789497685583245491017578852248332464237854762791113323575417434415624048580883137384906864793896019178390606770970639519396988860065589691596373047016113105512034748810620770283774251288126702931110794660596366944739999274153462019152751264939749100286719686672062156229499790871346568108094510735103432866880728612330800774221952824757788733120146596935755239912186031743937432376093673332662718531115104360935441686615789197689396453199576054538253409034248876981064717435637593169350194415150861671533727029312939665299539165887287025638659718751376231198712403032685851287919659995318170593270238661848129992462525115736913115765415802581735350928523014679126844335074459385155933071463512855248222095178731399053288791084075984052422322377946339183557295087781668198269568308216743223526921060927931722303449401187599802225216054770372300955699853733858970027551874280189332857200078958235089790624195421812284122112672505182519866402811627243842565153796509613330039209704251753817355635093544626307993605619232789072995618610284604602652417315293265910351216362405851010546276191141326515740172299470133911446613335671845749285399036587705079199246047038734178375191047269830978224979268157209864365072657786128980570238825123725409332210249572060658051973322991396759670758256591579536456455865833242577120183891387697924763071288170807768320518996919220233961961158754132264079817221262114611900927222582329985786530564496952366949852870872585629414768101763988240182531694238232459428373200030723089464157403471846255558511369646031992940328732730802174604935884977772104178915381987449747321728374711219032751202650503462872287065763561016634726245115893226721628735138978996806373191692348091655060106884819944279707323851187552660524120055558874673722072211478709112599568123451855092184692878081941153252086710041422989604493266691830212319421172108076086112132618620286861495661404142214524840224957945409766394133755883582593381384019796984407543802146322381212289836861836203528654802751312664512001055308178476549299624511679045420532105482590283559930665148523072835447106935465855519249746103101602289072312419983249405975082595212334376377264149502373990998358166466135075799602217442725996831437101688664641496173470132522275767372228397045851042122123657659309133871712033875719501535191877076202709814399586728793487102031833803804568169663406580424275004945324063491806890832809665215155684867583685039291776572780528811748571635742872825133901063346982010347164055800788208217908065206945938417019856272294622471994930234292778346947342104274135494320126671828791921905734391711129103309277462265382773024569674321279339458738131193173924818042131211241435814905102900776720668165031429080739300194771654503857656438861356237789478304610073985731920130173149331218743863193805536078915218925271073229265005746091088353704456034856914213176721789566951043739144510246374326514929482458785293148421670783404786260132754020041671670824455251756500236828068673491405992782677360073065814396955497383940847085387213117041337240807872204621415042070598311699275159223718168574847631315299150739687149792005463987786268728675381438114265299567806052491819620425718002712060310117067840069773436688300912590984784544063361741867028158426516507496625000038098914717843242389242555410818176948082378992693049274925540342219628871944386686292750672109665389286120886662256476905705559559591648753572709211378362843590925375509452550799282247227474375666882575116650839435750223307873726871291448973575252626802034653801513708296241254096927154924685537266183914008823162460553572036481561928375441868490689023827936007049220320752839263590859079403916506261050457100285367247578140920235003520784802900141052798286191283997356282796900939495620950284440157491723081877420864825641265149608843652749660735975529348055673297593139700093300538404374452159667180916533710768294251027142012320898532636474931573827010646742022616221085396141765099006398484533767172560733710979669625044450346175315834567758395918822068367994914494448848542557965546965501166531268077063780827270716034013204957091711968562534012308606705555905621303387968434215805989884023933936994988134242184899641419002522486759977846448961052973802351203961150763868816802554204241264912303351460543225297956373769454371456139419894409264267047601105680662779963017456524915707564404209695591525875258644240485825978992745486756864847166878847934689307099295986671320588233956388731555632281447140416174078233016608148472930829542046303355288722661369206586677149559830857114696374265632336338715758424952871348107708188727298624154258597403515447586077593482659925272163431675310296144549174326851987652727303399115011184330691859258992253844270282363076241172426333487040991719541083817642634131060747030853060285652317670068946208982051753649201084092603394474589216358768973509618486471455227036789831861663551951171202131294718804067773209531156861639287911765958797609784081381809849426951294252509252289800778106773754238774630504913438092263298191582942937178537373528718584661068445522170901032345401776027945994108175944187404115594568157690048130291988663254194293750176352444509547753816084997869899939034198364504538745902348369964033910406994927867982966808206858485914156968286036599726546653050536882084706271424460863070201414042991051895435943485589338849895158556642051017078420018298994058795611701134469195264279299119674062129880779784946331261142402780905805793516435605223206979328263789249727155720657040897846222129402109398224155948750042308001890486272692742776307431329829329514958776789849999615771649858231528736253726809178398999476750000751231561406101674994658085828161842727789210631895351301678112255442401296671282302033316436881366145970353507666694626200273050650826739615918357163650064226660654162387101025396947982184733931416735838454822501982273956367642760001034243701730517785155979459931192221257602151722441632254737179862405329746220473421790754297581154727137305870674297073142718817885857198165173945905026013736754344655105177245887629916218187118434384633667600574708865331817035336855907516848997791803569186984079528514633954956438570645360841310831992650386018996690072017977087876749425681799048608109792783242756652261107085720630498880436201178519150667434884809105292322653355281203876448924174335175543004543537152472851828454498174472685955745430521031721203028468224353121030015320901183694250614029910103143981296242677381020936634498422431840330783668660344603628559556945946013960927485267003067697945678673386403032066263005704110423413462441345531807859400217686025075290706121061029439174893932260514076392531748163946539465087010112206561358552611487706644295886371128475260347376719961675845304218574678347705555413972743006805887722519515033430852181057268107344626966572167229846917194365204309417504014712058292302837200448360763720291857405330754587765488681977417320584717106842033456246763088643233504444808476020297197138991157958134475874857766975824152186294456944472137804733889744710118109150539019501306893038488552718234189202945353717553589673826454047650950608538387830777931540457374792515769644475014643624489495234491747648596879718855559371069016085975632246077687918499007140707705921884085923673275205787623324596321178988982634905694089397638905486649221390896744439471484927425782602296118618823964676315638413117369550360978184450677673804943128671878996639158659119066820791448055713433835522949606810208544844013582023662992277241253250887462067493404233476830414922719658776605391017150435454473561847040903613051851540913458164634091668814418342805532464995626790689512327288699772974657228268420128993406970751164196900155717969125045515645474028981266797132615704673154929612444844226083653767685977040715222150118133844135584140122085863449737486578884252403682487319745092038377063658420941444845739509038064369964409652445195171316948541203834539104802126361177947219163197292832340428048023774986563132452557989200084131732361833336670244255225885462174347742993614153339239248248818646006312002748463598678288715262399416557868478983808199443825130971295495247602211810964658281378777114328182070210657485792955915604509284676299591935727953900786276805583950514548040688877011386391843541410941188876404064163390180111609989486345697972331733291223232474985165976500883869089486604064825465265713145654880824774692195089249250495447923881204841957558315993633287107706723890428324753573417786138938949976456174468897751695176916350947908755065037180068164625337743868543311142328480144619354330658809001688507900496469501969503453908444026726242622019690075533066086600414755090821636870894559594515981508074915635283920337631043082719727540187517930032082395566274421735593066708174117566783716600263561267115974478900623435338923086375927855323621707570601356824194393203523264402567339462559299453312905610172699864181683693686578126856881892777038482565907409963594874268852318752733982141380276750630504472892654069669968776901149222854284203267037011953118863397987782109504348912794883081389105613677950067257671890150184597675947060338890684210059388710761203736676569377397959865167607384558023786497272107278428633292733457655078653371812869143687816145006905462376065908012954894161686066709271670527008732182835312091938160150815162272957444218178641675658945735198093595220471724579031113298095289304223082404464622373499946514121308494731234542202260682074421049796468783421608056471605122679985480867678330385703157188718703991168481267197227323382838712953622751167595001586218371805078436305234118653432082846570796546710100387676221857629954049446679562906280312680848134538912717379971382302625263895279803676851845499525701384686991394244283761101731992523749784222210564362516945981253882797885445915262041787461710196171458014037203954445268474203691052197797255006151296565452465613347564527578715332517392593843696044372247588262065706700072980663661878009767355330469270803321406204226570498621181359816934130854115322431750792405022809346536189317914910877691698827010128871240943595776757540846390594133947320679089330462727259335120412195219213727516528879662263232069865256317596194920694046565327199804377854934533718163032476148625562494982949782240253680845635366535590813230073946621984104315476158497877589347292738179944170361443137236517981172102214902829527661551457758937249340280329198022583502625171199226764095472126393688653723167632313484103244277633371326696544548123313805836094027896474924862621839693577013258693702845690947735438364731379294680994119594497209199221135895501182538325554081452045638807410796039848326559120648568584583608484340297683245250339288642443223023113675844404472283452531564312999959334821298162334685875620275635332092368506956248790618183294351375261253960894530877156073210085954070411741592005679990499823494892565421774690528350039706981577597871392369825557184979738127818549772370194342453425300664559076902126056460956721571676575613076716979471474216213338660459604574932815801396638749729642194518461332515216014985769746883004176651202344859973768388649939479893591891379752889090906595000106551281776103698400709464665032416056100298742105287402647027893808633247537989901175475399639035710657762351487391625803767002897953899600557063596930906300789674198234175494349793322708335948634693535335275707356676449647810183123762709418453092951305277978575785670824789624604431847959737377593976672385728801240263543427177657697271843668708626990675361697017731843030990683316061044378616567890715885583483702859477877597884554776187181080890031238444830097561438149571084561075305746085950325260163480043467404460984380274033010857368599061759550416801450109671179831824259018948898419790521643540966209855036153656842258233480753159364322890219307843449219724022211035847987805277820498397868008626374656761825263390816613336110193623469856202037586760261772453673356031019779239222298070560303147838027508286680614136128223047279574434145887461067369140720667268941235265531622750903290567413589805095748233118631687118323913925904489525121767639671198770277790864363036072384643379083351928373976945596616410165985445624458191781012273342619008351758869380982713133495049142230211919338720812326158039067290972129068658373745885702972991420249525478746505033774996965167458344744318510087287818834194650587552286715680337629009628314378783728583648073064744148687023301147329746203357899777901606908857561574900288673559001515258258790656680288866102244427266430616767171975470658998319046003143809265563914609178006007242773158127240492945914687848503930236437634659023365291404917484051259290476668422308606867874682050217086120877573749567509069826744808830972139841838418145942094770201429812066178618517131158249879300164944533804169766967745907384913069409069128866664738856668351109781027802477557841220380070747117938559037219380020108890730399298239242705894459697902086296524524325301349367821586445591922168024264643200761763383856435328699272123051566990411470853453092635480213147955962438027999310312447442411308067277630887260882100281572743170851613104627866019985278082999637828399472788736760064442738273868326756115382662947886292926667147742502013367068487247029196738888312109514127897689934352643454539683089213302372909868838648305107750097377203373035293236497146307598342924036921471260838994104699478277665337065972343590837653870606300418976382512005916421263027738636787376083282873092325197203081049983339233274522166402216853811636800068359885727379896477277141476953595776087214483278402281735665979043822037230192032822517436519296168413027204150692778192330559722848350718179891441794198881406665534021890581693061785932749800858788618191482968559203866516630221663562783512543580859295445135026577757748865418734140217591572603549185057220649977208480267338967255256361031049128406374557610145021691531718709314192151787726628653992546992654618182561275477637962732309489750569504751544531646162308738704521665676926343035896326830437890521038547394909691784555355615795291841379336452990522496585350527568020611549597913232656224025424812876360143654307798759709131705709283373757784031396079072305532758102170861604382967820064516614792370807301767426596549533990865861900810952636502097958927596257356177647287286211741049535025655102298571934425591938827509446828768377772822922338748812819674512587545772065181888812928321091030586100260436488762050631725367937484482607474123505549398517478589929420908572516405690955693928118014105313501197621214956747020746371326936437882997832652350428658018157087921138945259443511414373273174765656133034260124609321465166921793910299583704832427869995728253680585429864278113311679330268430805041117115835909227767279825942888945410718766378084258972459930455445302255309064221237586389922321522797153484065022395018666688035221686502872441152502241788333566846567829279973845654845295581778750711132958680249296594139402361943800237828935170439971642668960051093761392476479024431896348193196979497748481692356595774838017947711998145725281405422777794021573038954416782013368804932397842888588437323463572980821369244003200277128710483856744110085684746296243323153626103565545913441180791114031920122437098101869565672274928940958681441888306954573356380873588225558641100289536991574283610300446520085026608311275475828614361556833053808952657583130301314657663140435519949602419306211099316717451265910159715753522117923124765882200814212998603313090799672362631336637980581109105801468304660729785621722787243490622271532524687490515395924739896112142634655868525489726381091786710543345837930825571289338927055465371431174712593599745514519697835325902453896715605083656639859826523865563520420820457015328324878856597442367018698144806821989579683964991273671995495175116686701981701420105338027352723395657820248659722111904513509164814039401670191826551722376168726483235168699798155095357422775506401498512099591912488871630220262920293494431032120357825614369680574060624043612178723127181732705076558056397178450562603139698227653667934306292831455072021830039352697771253151681991165822382695577325044310297536759631237087469450221986885229636582364288933559431321003581799050171890104316043061472997452269472353708063860674414383824651183425856948771727951454862530906676393201715973025489478035682720435298873533709885969589194256594970825171481330300812238018992026287293486739316193129689785316250132774081806777988418342724980705635809784247110799166355474430862145495974009494011678892985232646562731568612143071821766096609807152153853552122082438619046755303608842333249232061801407898949814286057378866725890185121379713754203955653191585454404048726284644918835298665515298703729470655509432306222858131766109499030497005560053261889983612661986880725866284823147901769485955297344496990279905179664339388028450664241748358235305227606446762258379700254143314941147657348926554072034039260845060829598622477683819040546889568376389851136895889557549992259905302972304341508403374694766276910880318669915159247816546981496651912684437420259856658997914893992022754236509026804157128215284441663173334989476472911695252356025746736549661550013734374080484842307356488057473991091170990495483060772906764235161619707060323840575854581868863758124440096575980104285092892380385557918642334615152885095026400567670491299578757353785003030630044436794250232425215175225237658402756527931988527475479341641048568980698433796560080666611793550461255596668057534136697735039560042766910561521396769774648157643044428166513482927554638875950181462476519591131981022056480717667187043006712609826029284607520753237832928311482354114197786211065742584809177194868744672846259145822728407574388563282118834493612842009439711884139795874143565939250365092855891180821140038511057340936090864326474163833205448081587232941400348620852400714478460553760663993624731007470233071780938005883916871914281636386553994118912582090354940719734745602571793099470165633087686566544973422635994100758775505282129864165442872761358619493604155603884096720571188876924836236185175516187256259623959997635275843936470276741406595072598669201895393931493708878188109915925439807219950409416709061272715458225123969906325907418095036796281981385551297265505597797325149202569538418753807757161462136831094723103824803447080437521274700220559976652576349935730213880964292898958627391186564082326127598127545949693790513010949842733660507253044022504756037131711628087889576165814624477231628851612462015357707957391381986811912994639400193553637799397376621928888995218347057861875424951159022354266620985347638754825502792788208496105601866330367085265981269402688351853744820816147524056744184754185994807717047575876747987778913742869460294301037685777154967919315430034721423914889746780401659726124610010193983874909486002970809214234922408014157945312893274691729981829438618738823996115966675505771763729797566852107264928731062522788279626622921299693284552483474565073506945594194140519952060107815639644172370322880477031167681644942038511097597992359086656095435750121865899173885960246979607504720929747867237827306392790808593131773116535163152372844440136023965581106641978085601474603446955677210196536386066228526813236580702001723119842371872614706778185813735333429544595154533412724986970409306487947101762998164398287067500615801821109391256526980121592397379643442831800012190190723821344841995241747974128290792072814454777283689350785579845731982188670980029802359668509143653555190187806712701394026404920165570408298932605707234941708844623360221351894397827669422821728020831193407215380903621197774787085150573508336190624739488505079881446912372096047744971763318762700595690545340791346520980977741676999062750461071099438094337587562379956049083530932557019327050809368089936672945871553168556669127163499178665413606260424364159045757589884578438582891034369597713177207167819526727789197231849665407671581174718279521065140735012970872167109532677835562455138289257274627334426006245522725018657473619101360738804817705639566674195283331699719928106392374484226372840942084375754156813962078328172615714407278058011108133501871841704273673225510383731211725152686388820202591309122736208149940174093565542807994044526242768880209064383651858716295811877740611663831056558368896218999091818310807263397716627394273322096652418539586646671335724914891684786859847852355475459657331958081521092465465575281758346939419759242046705950711224544397889751546728433518769985927460297367947091847315471378597457150511344877039229416766742961953130582579190018450263976988291068937129347065523045093183747020353289542141615829957349543488119523931499981354726828143739245698267563684494225937013562735964021888468873957974876326825702580928262728700467427886448528454379839316771079280713858777538842680529365993689025680070188820268051544114286797119529335839264020056716463135229365698505724777729958867316134713022830118825617025181481015360308773505188593883593905710505807280604270612020179027096694888013826567823759885177762019640679419441125776394419121855340072806746028452405204181223612697731557465785560046548475193292317042181304319955409517171385314789632826589230275028663784333096450610251029518643274006630181782798700342462615789100705392864579750731224039273235231670849565167461151401986781310404183017731900096846232918327553372481645894217491235429046517897738829537436368045821574317969110434773133705669471235163315108588846971649539681451523853092991492991829733797342316086981781195068835274646612095509353490296550205565182325456182484412118682823696063373759838676721247698777491498887468679439533875133354138368681302682155665978036905689110720659119168610101401692851181524426631196449369020995131860895622444882068827994920729104357014257112931774062019522211251773353128647011233013250076749316380884083052109192265482065980681983420648992778760836792844484309772671606902260782762329585897103357752967022424741295514144655020282520272812285204167268731091822509969186659385029843346589651900933120529048291167672309499686511459561174608113532619144919576029325687641246715178281595929424479060964656500672857418808584125355963398235994221246695990110520619799736058962751980125748766482877569911910632028516505981363184188925935823213046184561343943179833936511500319768003536344979170374895606939071125981779033837096904783635649246000394894810524591196081420700429480309623147310326781362932497733445858947326059393911205783374303014677949724986961228656627226699205684672108153880444857298003038883414903012219027562172094095523044502477266441830641898608363433063143641969997989777133571636586747184406279571168695519861605204801022362459186805762371929036564438544156719179361679843182175086580660583426403842451777257284947688676841255559251794290891651253093857510446999066198461985857942393775852684598382634818870416489526745184911645541582514464367179716380944281374877171496101937702449967007640639624146833673252751082845971161315844178414781243669736289531651030448875036677618704941977714305092590210782940817844627117281733460922966278498885114388518777061070947342286867787912222907998476545688538355889767244868283701030133961948040276016078524038465953585163934729993274304115421185476780232338637021652287131016250609227056574819501020285829888470839283305325376479459935802268495395746979834925422408216337610766925221610027607076716605196599815547293196089688977132934120580279035807700916842997953539712688354980372268428754687997786397542693254780125647298231763561669898736101107841327290863868695484360756186673321016346532074490980980691598041043934552224729138832675773993812035517455247885929876881334286414844961613129512582337498024883519007121450884105734610232307556629754225294993916460030771972179742021339777352262198841520082612801926716129259418295518637081230271568616195190878030239044563493416495473392638929634539830860324653215423197723303417653379687798361930293006700483203051005350363948402183169915554759709753735951190562990927273778201306969345855227796997794729175978069867879700412369646778885428397430153628198795663403102738324262467552686839415698335384550276479142092111287742747965359421712297411015072686134211338913712613346933288290156455701150931439879307925161739905625321868687055447203689639911843765218264736283996266023469585575520264850900591756059136700192172975852382457967120154793103701525834269910231332183846164846055703446024241411008466597293504834312340957510779678353597787907206018916398935197348558531895964794518975418023200728478071153117783582355522856479968840058158633735420142025835120234038200656700010570474721942531191813060366435684207399462538205553648719121270823538773160745560405498517692104902282041107734589435745305538573650001791024598851296966579639473564726761955701182910610214185122757452443630889930378146197807759843874831694447846248892586811741646006635908276751328745111821740977272232633337051254964284416563374820013371766157878096758757260568630060893470855471704745914811290177971235062872288628168812247230486912345417911088557648197914669520355511052615393087159942782439584592570911341037467646097118097433623071469220903999492646093315553514493452151824074012021320231542459752198812558868031418968696384451456190697030372301519967015870682388644450674366837257711170589813708160136148511195412504552588214718555501633869285390392059155640357925665519690813564414274335983232335198608046619255318220589007158428630353527846772181883252276686544347108415240445750344913145319030668962595135675590747202511242121200836327506702494273759080538606513512955370301915878139805030632336744951242718239935817172253071445800474794335951467888790967395570601091266004250632961526883678489331707751362656584582612829054335411900615657982481102988297457794632179424749942418302424807158404498568414635792774068664110817287303592316102693540985812863583372013049868608758421324605786388030365828305265330351303100472318409145877692481750222875568342054954789355303876839748398396016277956751171560317172801695600928272437278324093497985629462841525736811363202859196537016134483763213113205561366689078558619952578463443261931899301554587894584200191175326897644586002173849440198259150077320977510158140458477612217132506580661941348435924334353605957604401548192691255018550481390654300148540985540663051586705929506753348126334066061699763034728238645272628505042162861830880248444864226150541417899008975590768818572593942140333871137445783331021668540977741436694691267693567322039850711098382837799626844165675670301875006799124408306975137192524504961142062305231121698435587926283101743255038383197109121249673478850616298662128213996779097803419244675746740423208622972903802522015776574192587450230104528384854673876737193416284582172346531594092683610291246248899158323224201044445088855134046409396965904259165110646641031616821326890807257743135789569614033497719843923504666277548129020005798348800034442314550003905343483809872117744445025644631765642886683227979343068975785841975257691815019623047802460904387461715437367228568136255570297254447724544709218558946053502374209388123186879832914867426608847400843886125293950556114396239651723462376103761635228954601685940051341853731673036274024551043544060451674613683135804467861318017657021781949858270478707747425589131546603937217258992941876635278799985478670064726216217221611807355646511805349816387916113457666737888964683866854302420181859689724138032786533482558994927166019695681344712205184687469660329224869655160174752384055869529778167881627094102592127400121589073466745714570089576666063603744197127835011206078501826832048228497705062210461197785478630164283786694564683433269581082284290475112691882142241661137623421615518989646381443221261784941369858017805598058944203064893352004948110461838355722852297741538538500082933556300955892918448577656056217204164377401456081404789703445210401466851494841067980538716114954871517624744289343691699244296970145984542880726753128156349841349714092691881546408975313338758887924411961101428346926417324890075848849984521617204741549500926433685096913064354968704838594091895440991309701429977272515705150601525668872221584181127206352315667696141596250139208958210729325451871884616327238649895331411212504087554346393963242938040212917156447736779615331108185496418195552860737528496159204804846263029047869260026831233923477247546448488057146371977366119513854342172905562076479915814292033168104061162047476817757276679876864692888620855930735111584245350877726230720274589574743791356905837775401856266768258823078426966237101748498609414410861213872063121627835383243300478861156326549908377292979226123368938004719487844393826577749684497335713095608985273207192640146840975101061840727937138042004330836350618770380686601118176799809936319246126376282712498444019263827694899143217394994068767914554904531870890223682286248244547558265347412981624895773098776017640406009413037357006551764580415550094598328300660391671212071784969467451886396348569964597321220256340503938767064954886420994674607588724234131585290047491112503339437038310800149578825305174014704951074855695193799717463583950828007913064386866371284780165813272628576453264163551457446696746196940231109469211954236336933012573498246808724777336570572401566309018820876413345495274685453515222017629509241009432325382495728180053823293016483692815332800231257843781994259030866094096658033246564269222580838278735883688192364949717077012781533040938421997850033721236016742989312624187400786078625188097638259300348071968695432754841704282941263035717968712654494035448090174316093913812052409000853747461976375998228384813117794535163261977668890326284927681601069891964825237845440500399947789176877723556867298618540995755098069552017682184708905078726684776237464339222650148846971903854723294684640922906158264498433689559721851558216297665871274891422874654037603615060951016121827974281023674358329309456110979743263542471175796367710178173088359913374053360831052332470018730646191852044237190833096113449341941619238015549208273860324559659647464765882523227998500013725835885895777273557506474348213980204624425997718110983342520340382678619960069970969492878823471510719036749244517994286190119938878609107948244010931011288825998381611882818688695624466631547753557182633634145624076490177128124968575341364896671005695666164258103603446370634777542125300520582118640992607333381751009768869168905174751560236705515378372723618922248299169695994396909682184004531093072712269214108410277306696380501827384071835970199305263252821428265439355172147846162450647540585013669386728739776583138425468854703118308176371354089302259925531730587092336255501903173450666927500430572590347994057851534100962147767460383644805106845203739501674446405215613199581387196412598737822268067553996411563361862919023270035740758649885214858502174523958142920478422575348743490622165653005487241830548724528337024937607929023584569875388751598691074347797221937099818438817822658860629444849728539527417215611987228671407712063636003790016644995095252302807765423013426451950008318789266544455764795684864888786538732536381512870430132124707746011458718702588674266242767384669133547854540419238948697428396183055965236667202992886524777321148428450339791822244667545863201769877035354155436796718420484765729266779536913569429029435291582885718657654257843364973104164615009180951428683416448480613051750088378512306257803996553988601642553461084640107820483578829335917177793653447812314278846433675001173217247029899140124630930518788141047730758874685357111903387797977417362056870849389373009589655255107029056978305535445320380735290577347998767848753637612618773740055797372397522768599465155487901334038682160610012043394073689242915716080790378822885599087132714683314105784182351447662558766030730574089601443968623396767356400606192451461855656930458366606892193244287924547441114123240816635152897871229297817710364523463581723079015710704619012483316855875746676332414293003838015153734127143825074749835806528989081930674223835243967306077969895551048594624315708812797838926293313478874351632024421205506833800317786805959712380337446227497996170829051802483862258675332946700584614646259808969181356512509579556508566754467966663686713025677356990103872026633656173356390546158701789233227233351425125542967185936609295945747520308206052584999568886772797951914332589925971890424755185207364172765727755442348573295865341882608804020353539059861646130128353869911480124347456619186305205731352878357342438413562050433681914859892593921501456294859932758188936998985158044959865957014071407631345980133070858433364914411413841443604132183195465960632972916721906111004582212635814539590851219244667156772805209185143601469818351089860893318804768565967964245117365463357967657676128462135599055804770430881288194304758094281506528358548956899985261210173127260460459198008338312430452259385470804524451398932119028821096739458400901696921169325315768029119648875728021265838112878959135353048974053050574616461098285644273957757754405616163610557349124001004682045332506500068226817864937686825870835083201273525282195733996401938432031870672117907603596682162451786365987064980801283410075100149380942593758286780469173600448431651102789256356253629692376691270717422021307443419134036402466777858150022992430864255631972529294614977637372006670872770126599028697809283225666426124903916546598040000711645595461145527906222842402206784753056182488268681390289287526633518715531458135571831971183033056254701971733601741731007572867255908505381022770807665798259864676351585720415697051622427406582307348918585396955142616101434449248666330036190677654283149472822252812341784151007213997119134298319173128906862553610117088704895938077997965899361413119604846954918640839643097574180263078545674728535720669726678541870233030803163749732265312853991387080693435412999925819771867445708862699054699376653586679033099961248478966408285345687084532329945534652464298554639541742661374926730541906483450182802284835889557204602453475915723435543100705882156972427077385049652153876885861822569667482186988139655662715829358683505767371085560286553321776973463426202492417121491855587930085668868789110665263799285982454296451046884820694660389773265918781433052650161165854521769524307848618201241099961882164697037068023225783341642777331104768024390519664017591925534094763283738763447298502787872518888865906008531339638258676883188342377717286348532022256586722295547864489896646809989401887457390076431813943676210281733545783015132815371621222985677303882666593534282876088506834864551865037285840875874219699292155255687965016303744650909769739097504600078602802376435771962801814908561271333839483732310212636679512357004149736469840772926934328948891739611560107936439364011229634386933771629393185833943342378114785389325680203401214923323231800864897151571745633682740402627620792215365238867327765359958605447726147603481555963718496394837028402232384150198731713432431516293793860554692013815321053054378183787719044743809555976984086029105586300429485938711364441223761632318127225607138984232999674300039704548249919998418050934264455086531299182752455064870198000871755818953519260250154410784479788580907973379951845400493521385864697780596984305747186894090267733183256649438178872079513999241332266480669698892435771680348606009824648966131054449247270171996754240360873635789812995059423723061702241529544324713336199164017431924023067499415683669162672772849477333238545740213043427980070748409594530639361577047067741807617273834579420972086509631887248751202390144742246314322128193312135340424458774544628916027042526502114139783635817542545703072005826790253294390396313690284373991556106962259785293724485033576540594652283458869041688893040947651278019406048052772818839125100371051609708973929697071231304870044635854302460031437734223818972534349407585668025331195553805462596481871128568189679798570266121800939601676967605037436784544602227355758528926805179537370924006954596842579156974210954654327923571086504236946414380624295100848807971987362401257521029962110728620931056878063483045849167123569794994252853709616478930079466297785849200859424329574313522753210221031968006458780780597074752634475137169226003965423958440835772320258983496357972579595474665553517668235745467514039790305865491460405937658821334559697071332238791251437698864148376358581092495631062565563132579605675096137906879164583191891435043556139021530748654998053597562927271861418803231971124759598084567727462314784949792806637066588767691293932463379652993507789812616087263656621623995551398700374547701636377237562516043428406060401863483989727857732232326339487153043138471989071072716487321147980234648499326228659592262882527721968956754884267433084763951275963463336316508470247440865495380902318655633339741625494700561486119926677778909250872432982874192221535225126313106958512201879049676035742933041933939164615188218747313500035000822259823661881466214428120337288891542687728008020122237768887317022759438021867005081812686275983909976781037835821645912071505718380581284150643134416326809105915205048181959199211027709231325653512249980273397506459677339253435197376228654859273675144205656349306440584705464349150756360779309970047812635959598147634629092439646437597622307543603179823018128883712342354538063241614228697338443593643001499417948656250893752693811925364802947255430149561635423235712295473121545522356612014784094004950502921306129310042954604042873646831972089660390327313020006896307956852854043596941611497732356279220628925057481535774491636488022833713018805816492468175687580819842064907284497871043726227643471477272550267582343205819205469153090001073435010575831260501842421191317980696045668070649137483497264071420370125192384127374588347334666743705816301865977285256107961952782558050795967990582195817472381354431260778439569321746845065386283498806965137369960341189405384199467402205421940369301065740445253031949340800691829771469405719491380078374120348541878679876629422970980953031825785281119306550753676524714996278124100508449687551930187814557291389421763991943037245314781911139437237528719923326822483747737091934666665080450657431887419625083259380964794536131087787322616934405006286174435951117578324300594190146939984425907971467195778120950804187616289685539983997367343027502542483416562060210263894896757961549735814163340589505181416867977805555282233730098975353093288840742029254798866582451331516382944859842505223848011718636045476570132311779078808445939490455325196418881755060952600334558870669188647823155890200883081008188284593435511649557262049493325307172080549363213780570338980243885285220372107648026566187967003954110873909159236969500977526796428034395162877158134958023273448525479413340479005368523373936400745522899261078976583635314464100272545588382236564312755439382858862090724471775028043354143825265573672714225015331273390654043277212329438690177382070512932867788506495199163020334257113675989048608861233420785666753483861708912308297051210720851882448082255509441058292266775805245374142067839819823604904113166081884780891282538355668721463970946848340171719502792674281122639860374309780892504777958405135322816314257421581902330362237412198134641624741860995533057845838863409927945214854475442098431173411439571418318239402534492886321633673613106346796154719714766483557699742431636221950645407375740797639911737515030669188964345258987516089403779271656934245953954321061726843078030868254724699468886339196283734732615358770383108536035044339867483240321289129980110396730200074880368328887794089582722870215702569144977577553792726845110651807955884108077515030777064400838380686519749113981033409355282218620582699729384836674778132249043987480979756868544004266706217031303588298695295098929420451904747468114790707596128249722905084202257817265522516793310876826686295601834824272560986126670560471368702916124262800002594822157767733145130842589224050921478618681279106218485267107899734273058879475218644391966356417190503388819107910553679331929063702640345887424442378397447825925661949564092527679795680260172760216661114551429093612772638917513026323628599401934904923281891844809694974879339573028384520027297489189934546265524604249357615963610491574644426353950280168265583561651520436895757295010883165721418437439156505542832340531261976856649084217828653180862391089810111383404725378618156879800032399372061849221694573501631253376996246738541970042308431547280589857440040069213532354283414864801540016224598471163942651762538264937908566108187679710062651120087853180767182761971972098017198157331824141724153596046700453566066082181014587982064274094872947989462587916763432658821238931326683236549570143827405681083993484644578939847589864699278706657764909776332364403124473557808089854247742794872544548916653954146441441415753698925820857488541201947894522185983995533757516014350432685876636696823900392094150274102115454580425017840231585611112980769007036056817082313347700521217700798298528935317358863372362160227625289435545854560272008360972070737310048617050390776966408318386183590839114735365411714442614583942052358806793818743729945525188469296540719506422136211550148899938845675816180485866800528267176525822240847232551831809622328931943707247107686389242508093168184484151702299984548954112223416226242019072696056325723328202352860930617751563625630328762529133743835756577281324822568349433965777892377898526432729506736165260520755069559214885285653944170955432837751396214979489774273898264977239867556490975312445386104991548723765351520998883831616663127036832117384901478634496850449572462002533439976564210034126496993920527396827302039837297152386983309555383756312592304822280429565510040021488179454732081581828757064947462965916300814292950419151617136352908260390259910761212254427760640487917720305802536206999365817242215807180613615644008036699823478046003273643136264925271688871477739453933114176318663784804088898615008350251718287545392924781980542342149936239765937997239910586649476272758723809124884223052041832288825796694792106778715800765818125862130182306117590837994720339948059491666540000288051747042031661464331383368072629139728154864783748214355220853719658003247438511389884327182287329623792020156516008417730596092935701390337696806833212726322492537677172947281500662770187325439575055890268444277119741180995352559459611853129904921750402378744377410240049691900261028215293913373804539789597751297777295736702227425322448617644395016945631332596729061774912155622962035976576690109218928897157189298804737464631136128986593469748015527424014294747491883362858144342338824676070848830064509496561957060130038164607713440257272368790095219410502272968022963973001405445670054833933444845822707607795141686260755092608626748505746552603487446493813803238348525765945952964982347877951560813749418381343566561893698272977569974048938837828777307700112424799559714200115171112388157648684294115222960325506972939579307767594390534644313914477445170233959842430350845837692553263556820969122765498461949494463158555134373048271192445921736941909632690005715937107194662079863925138442137976593073388241690325684006320619645473335735628046218743497597151329301954056529427425035328174326956984804940984649790508899275309598543451574578055243059211190348208561320557363612892201329945641411984242751358124158201025703249210321698062566012403758858163013065315235953944936160793645040272725564629702465800035853383713898028412651430438827860824984444468330855193414211493826872752245461078092894941522462715436003441345854945052378036425843150104174421531100008772823895558689775410329809589471976923543470648284259027766609877921070328414917186777997339813555133075604579765248568568976740307806179930907687384567836244958455537931642142440757531302648311878491023163660511940681513404467947663771123375614038419862281939787222456112354499249332257132791595957388331361305300883714850025362833332507880672969251286017446496039742241715538335997895365034404620897909618611394603447035013140494214699130217239622623786622915115211001884788557588740765883501520083088547068304048710157778203749946626761296017090549897106471529171321442725974474973492937057569440469353883525922726845456926061818284787845483678180487835324827677624092172016516594189847152367518583497555207322983075398753018224403449981463146750564446448972730611540555260620193644497823964920706261054265884787254579234406037229535826687620777233571901406164253687595838055504087454711012448374143544285085062793224641851678102869485461182523560143798231151812361898983013256981416521501584623575985397791047014713823500965607484167252903466918152888675022063595307812068593073729057378631664577545076580055421490533863115566216561945421949437747740631930117259472917720181696284502172936362013313761533780493624832602014313165624242523849749263076430904309827844185723131835972278463642900652259030918736344187005823383636750696632151149743000730306687888044571000081043735070118449452336050367529830891481207649068159513575471380330592311386272195943295000632101487069252802683656695499499943764880892399550121288730746679158530292031249343034353254619512314459971565742051385744098903813155390594741655562074712624651385821797553004376087314333439307353281798883328664489920544539136085947396566207547820004352548359465474104456632687248590447976722903562347476864694066343105811022213386003911896545262328949210030600862835193289784542066609426520934415000859282371086914715155112626130869018175133092089174859452223604017395644497584430531645158357504936111471190581532684336361790493363627741248740713523500162498526713603425067757005066315258769941771926147672996289933900086393078840203823067866716221261701499307392492123518008468295583376173439761600655336474513176109952301948008310712650822705018050414205901434867448468921892452383110328041248389913354925914106075237937141477410412853037998093200318294059335740793360181069232713346796556761468276753165639728098655639007362024963225662424651967272286569715657770987384377840540197664087778489016499601378303974301731741626225805228258995045826141277211041813823294666233645102800863034633148804030812183760506887007137658311473045775298427527278963895833506891994316739506493843400540862594222896664374760955784533807734213775393707331876570421743088199426226076721014573237966131218728957453588337287808085654426010425857848080149895589458148990475807544621145813054573110938641205899750718944919832731355374176123162688004550919040059249976095186301784636950540578388602066581228888427463062191689039757889469712367803378300386559622291851122971573397536884637291837793507102692501591257160878539307918705096600465892479391886799327177441793991164494221213977551439446037169886466629455585830765991852343331436420549832900022274326585786988848066921738975615938581810168147557396008060460088662539021241269375637142755264513186469555367096741713464696678756259139940154403680979950727818195575331718270549052579950786564592567296056291818648606904795880034108076326602057953509337189435263494627469044038538884539871329741249285472783293586358812221596087572341586468076051777303166131067753207660422880797794288312482848654096686654023402461790025290472214994727080996256077792827613097668889419739790427098376844866559276283693280515633976474355645631477659598220270067213699333632602274340348593848607730167718588065552164059964750154386876913258152158094309084218886736534631746683679352046916819794532757041935450136648846651675392282491106631932852928175575215189414475165524604165932880057355934640649591778305726748994795379227413691581062115201896863638919454127715280395409299662397875288012144005532775922110594168851668107523769670048612629035356461175325545148485945836262878869627090797643436578927296860634807819447209509260483251786377056137980206928370679626575802789137026958327760794256267890438547492906671831975378627537690298697654919309124457547095966602132695299670042707237250844494223446386529105823121980086406189721121422841475185851795542008295258163379465323187846618198231702697532317473422864845212433339437178193633600129719497513812898853959595003963581527836318833206897433961119136979717125662520851879870877769094564315124606905863425738980190795794801752543876558629234983359044455229135292237293420592407683882197606178969338133901609264117280404377377128323499662248578164059722163877521267469280756486340925700216133400415722715100698877223051794238537455181337673468628183524053836090799070126540203708959529956308874903759110936914461049930230146691729318037642695127434497951468736495976262697270886412638453075092673336224044074197198906710988284689813571991419457638522024236253840740404213957976209315954770762480581893291258204328635830553097516839888226279272207607018005203441951196195093408967367288720013282577689221147216238762965873631417421685967062688179295096898853029048508695113743645899767424411684063283723635977627054277674369097639493415189311477017397690158404969439403092265516552334780539695698503579632143979680161950683088680108765669175555775532349429292109027801570546514344599312290445611753125680803156491971641472572548583943756905912619147713438368662748246572706150336309555759493968940556864614990562597939911444304992093834635298240532570752064265850104452327791865896242035607712632839678524603249725787764749435760521566662002241318001270952689973387076137386126447831164619057509121540349388448258517897791790575591744161780694576419533553134049084454193223207343572405738164313622716919978314164522936171927707026286541051324130725594534015243970055246594301597887433359565036844315179172238899185719799440751451357604054693112294369800717861036226913566422207913112300375155774585768636906164415871957262089878252445901795310188038147702908034703219219838401824379028955399991437399912367678576803936387338769891719522350068756752843043403249426253095063339178741181570969719665020143569063663135885766791339252377217642879021293106890751270715727776766388150764082907497951241345211396406271281600513276831891057295379199100444311781625215344291013047595874742315252461544427989056155639908459840296004344207914837648181857983089313954119059876160817683922980248387860975910808493331665603849077036121754834929837710324998726946972103274251134265882183286032788192460294394820816648655043944194187273852920871064144112133349810049543482150828185514934017900473472331213728854557037357029127624459356288773210966135342748026530332684757889741246052302654275189350873625162609731402636351601088539838361848565408218381899636398518238718436413443511506178908368825075611845336784027330205230113592110912993322466893162221704797033162499539421963912666882908375620966931720072783773510583988325197653489073727821041134534321526561832974153017136808647517468872424076848501043348497414393405361810811887026594964003618390839039984590846781511483562867412883421666827100580895524337882215753313406267492900956531219046015432886100093450370472506927532352377584884718266503300224502656204285074719990433128189916483922733959838327640183578977226771650036959735672552225388253482351258251089425060933254779780736550964132435376286121217781608108030111640844290892499449979811712143226874469719633110148562764939460940296737964110044420019800605387587213179241558625917770753160257580593335982640695364261236879290313979273029751223111612655673398284699209773993313060450162296401567172805685363428039575202567508834116387057714745712925081859930048135003683114411637330615234039077089017265324656221566878173869645204107307788491743404570838864107473599961759746938802966102390646548584202701937664957665589104227139062764601834607100586806566424381207065711070316001045123542876577055451969485026366576736801693944214496063156072514329012476119639685741241174984313596296131643677046273590319733718287542182310616505203203659686245619064876587043212698919288369824469105822051460879353668413311595136841621695447870349318843087016711751576466598558260797361351316804255260180741818624485918711259129232416658660140536135808988158192807155856644557779142850687643969480664425465148812251922299503397379110160760025475129007225644282996409053853127282140723625211465291379298994350019590420438072201093603787910859758815106858770511425108571558174797306066313854428214470913363858384886848309716296767365688432008491075436283265467839434068214551542088398078354983871852629374822800299392680301590228720235547184376350789556159784609355481136164316058739002560296120016426881104571433587423554467473603612607990597476451255843565512896550959936595238807065012645472351522353134773443531111804772321517672629451690356461991945114462339821021617415054838629429088663673017405060419135730326392252013814762103074829148107961916170857980805088359657159377262340115328012899494047958350795123085644468305217116091297526201686955736330527999321897531109659003753807860487519048878268019162496434156742891259611835577413719851352021559263939671315274439275511093247280615503533836595659565822488073186677622843475152880316709837914836863771422871413059540541883773108368377793942417597213983851399257171608064673936920116681687910217933842507026474044716438702316297827085951557911190114202518225811147505157822383498600295483377767864283243931816382590431129004492460811703304447477967860944698357105198382884227904932079385178353137244774531774468563621577370404458714156597366794751965751564814171699155104183584954278717646663296478624991643332702860573869772567791516956127827091312352236650522527268959600880185079947003083689940300670245917592165087618301260479365893720613248991633419117442346739188213929610797572598222316531100014035279995394520547652029291460730218176904936987506748841793695303025527103596246774696254048556614192440893848962011109118208295865446329548838986146789472592998870008970640461123417434546836227857074842632990282247262120529676841529220010147084747802918164718540211785617148480820127220360716370499207602101814669369504319809480011751435438006577075257770075205291104630669157054680495133315976078824447608659645298686149038706376033144442917339846951533891874005734359807354097012630950147271239600103787368830216050057358566317373078155014969905469087671432314279646593266180227407335539591536209708797654456083459495977142021652742616446629951933575856957536650516739347482434260963537679637160398950398454815360500266000874393270055141795498449182742416023704173165631520000335765908389511186745736480276777868409971209876686162108655704408303220584819666679534546284367274892135041564483238110110058264611043343041940053987704375428438421527333697930429118573151245469957719999629824945098586813079639906752795743157305417909833710416701985987171601435126021621642005684168193964160135630387802834790132661690593601884982558862668764599584068150938011789051414612493435249605453901649059196610935876987788737915573837600995831692898619644779266601589490086068555553816226558689940865669031059160729080608996762984791756676096962986391356198337919078432475931494012703405291414892811332956367038483974790796924642095515113927160864938679972882887523914747219613114001959167214107119582647036174037382548409726875152704668810529604532964590284245409513249049743677113742665368678844678559004833438995253321793803079951450498481411354994456740821451478396338547896913671197365349387003565339111387744080907430172133871493845383609054372300553212821550365823167814354135606381620683189950074045092624461444727903026638322593083471742020410537141283657919977299306984743066972298530792388641148120702690997349568292409167295295769939603366834967881913960425745498221678312824981657332433861053809462614855473151068088564622324591008195217951429570984946417476731880709054012689612538091643850240495135055987230552080153905368231357929288400493879566174553660195796747476379125661628987141921789045651302069515432137474960622314736373318559625352004874713405056236306056159330093239978083815295253759081765817887214659933514006162845235271536574698125330030074897609568049941023215303294975296335802597823785368062320290938415808008923084225898574193042313498573773805288474082760772951222116277973493412036286515909644117758054078645967757936913541028436899270566411647709680732591304682043258354785173292702374590761880736255577040946164379131604515395949788392200244555490443209228731564235491604220832006332194231941432641833158523960035476652269074234466982975193935621436204044679345121063162334010834688671346014532252154270537379876047245936501846676294643291002294713380478729315811926375867897635537977935340788903526648609113019850686186186780738173681498632322802562593230429288117706989333105843387698632960747163761731529156571176441690268406811332570056894756643636096596604201614700237814836597694725073511152530968350685896052236642452058078655321058098640919436179733821194961952050792002671150952006103609491934297678022660739841818708483587547436588738873938934881300885857245381554378159656223276754894424120431503500769848964980190988394894538246613354467497402169398819983714259921377269081425873107883299286489951318682141663393050737421417663467424407372571101549796542184756206271508061270552369368638107710827118126707192075565692411396122919599302515579424950759283068153325042253130466305442173226965574819535227778431943650609098065489631737158674402393024944589212102435183025615619963155983887836789606903415101823006848427041885105301936325164554642941452945116272928089416746540190401403649704510577715310462759115618924070210686493146065717606005265782737704511738915794924290074240008069520084414823297628925031256269956204821424217488608450159974600315571557142341508210869114386762798802323863443902964229181476547415536025311429126598991390023890225620771244745965963334307415302213863471401533501409572471103724954838643008325828874255864906052883731722140471334668126494615033440787994731524705495600784628436549852028081016053841595687658643568045616949281368638577539893527278962367105812712023757001568641576842569357765801363734645346345603767025420547140052882331109714530449012244382748378918011647472922645586485626250376713947535255388897390747349448120772729066361292408091416227844318818557226202449599120171211612240520350618511874129797209024177581559702026807656870495481754030732203339557180410531088624439829960186882370948275138919410137425401336186535170124330363287128090443896497463030270194729459863574449224399077257309095958480731024648395395658405826385146795899901790707461562708888508683499284255818201179744588902891904218217276184585326528586226787827153803725400189847433668928845761305137297206533991547732252779831000235625730053444570568457154110918261729642127049950834655025392217103636943280395907254084375158459710364910086434112919446709662708146193052351115823909554351494591014055646747740809361676821128244371394418671577808159037908986221986100186188554566006569684368132620181567672934557521790724999123937227532721011779067529049718303696182429692835877721153550570604623222826618777624571399330457463331890565883650378044066140850907720721578965292524248686615481401234971176872566449335991973043458433628527141658022163927961112575533711963452009108101698276485589988158553849789993281908457814452634363397290138470424243765817734684228522946021708050943699772555663412278032076579152437847560375466390733926984860637312559869987231861670396694034020155378861219571560227639332296562016352682692780955799172331545360322290638464479111991111793881157907829711593317201710498902927738883149633922501912017438933546000463572180567857469988950200388633451722666877406795963607574878208144051736403910730924073597929908837040299687618225021525773787301843776682899302932215227210086941030292479099763156757450107427535852523868544041581769008742605492805823233435507345816265035473819062601093051442118357988799209024590311803508049586890713902374484283172487508717730095166940834631014903661544616635743479780338414092766549012529979340995536172933198764191613599470643691141231294815868455218512315181722852901319213193906452544070758348019389747798242430476047072803072674796804899814958917664748413063751003624282293692502104226728944287813481813455770711976683097940038374088132604438382995606970796604596622461865498851467774757400539868640485232765099874847991882677015070169742797403046822509478864988956965818177442804801234374701665156799307350309802534456867668157211075052342858518886154114527396998134559156181999462836966957814319035749901704697927845812436272028610452921671085409327894907465637283931077556400636371978612475674938104184898366506928170036075105512398898915111688158880376787488925789365061590856616140596448019808304141595279616578179207771095695539338601448576159661864940463182885927708027133232232520799653183925495517704815154961375794899486632917983156390016094338994306702874498950366049712679576906529184872526243599035656253544689289747188396640402427529018664540169475809771865162146847839969191320925524657366136396395035416065196108553144714775486068322074799479454128741095698261153025937260922112223873170115116379568723855673376860135640825930609611175294051037241487713236257883889181188238288519882700639941577450741227626957220034779690195083240287474232748707695467634302046415632966726399340973624233992594888709340500359877252025962241823186923501756158830226829372372851849072034594803511961517101395238357640921091309526974439606856110824029283489509335580512753947923342734807531354970971742491439914491452874244785854276792946817619944697692455242961655867387734924666165541505876574425751470345795684614034667256193117593400309436665394645567213687925869302983485697108806529010973504399843546184511726203621730987990285206959133318077929190814310548486761856729989630125655799257879770999421098325935207353752233869424912712977018395693730685749786188768160990919721154025461015578151041417498758726333319202227189363557184129249250218724987140617390612499356874668472654897065905633202862483150110214118553680261969543795556451392511698909252846105442147882981262712243046994853837188723806345055870794708901741990379498550520945477311146697204632677234708438250085659623483532084293477411282689135720654450010832841012710250384606343618063223161637463814951966599105820993826344570186316228930569329874243278146819929362583244337711899717565694661518238902921105297157888615331346817116179233678326512220921678306321934256098475491291524460928072909492925278928071132367265665675784757978538670995037749991942730764690673440491774571142661972837901328940040295454795331275282208690845535593718283216353292958269358819819036745238799147935375270530829108079527926472062757770494562355074758444960081693367821898324412590786204105904739587532573825378686318131676260934331141577224374449422591523089195513172786990661764445638291090638716035341990147011654442916869535598529305944734636618639401976059973957404887769364873771055457309038739188760250325488854099680569248126632253805360484188869635604720412005063659523503890129837088414294425693921392017821515293088793282648556495454407128205982435540337077439884907278898509117584834862224224010642331332059120610966630223534477260211088314935223678416831519567462849554777723407440246041008157949875276249703193553257514610014507372388902007578250839495074855872564278896799918611820952262706516428773312989228622404931042486449959918111892065320528614898790507408634435696020356016476271738196099882062746613702927251137512937090803945230442142473287467419883234797085735797515857215053486361328104499403895271574021079568839102999820037864138624794599991525420723498631020679780636082512172969247443552022223191181045376887859706567372135676587193363913480135249685988508683167801760912610715029114808324759413068638859391334918565260396474268622904181569515421279905787609142528559347918684495003872748476643671375042596224323372915825433710189869779092800113637433549709920815697851023900086842385996515088517920207006295232738775733677088949394532093893699192747800078105094925789218283837236654430278635572892046846056214572326404089513979134581036338028043977733689928889444467124579695709141538202508635119621091323455479143071151627252691328790758892085396228805368833643098577696901877806238666249213970641551901133374588657978382346070066646134604599045904635592428455077379220372929215077630166872642375770059242592733750287166427972909994128738865295987498886306552354178566520858321030901890143019168497864079669987191246143049401919348553662947420691262729834556068685231573222539626154142402973560234036958596789837563047461727484681244647586066727542855923013500856498733327346029684133424320804055471808626699652067020467672387230836188756677560654696978348234385235541103483942213186538671126478021636994451170363797352951621934742932573125938230546713582741418143493183353239322742325515115583687126995597755467342808078966983946414059625602398451951435091640537541708343943026951330841148763717056454127947636241056722410807801769504170614565648723900639291008020989908321813938710106486789089178911500726139550596882201704779009894068331125364165266759922294961527653231764658704568398961359259068899049916339478712624545752976714910322946248250044178550976430767243504693298833109397667909341953161518862406573190143258577403047273900390725868685279639530182478196573770774340835510147297480842663122246497881011595414919148375560261293874297114896197374055448109663772133185664245321260900515684474522260064357746900693262098824379640551502367217447039451939449330001067182282419539496671444105342277333696492333937594860882104140692545448544607753667392871600667927909256786794964415578394247559268525728454256270185925032787273743312270469481670336136014089185181427737806355247157886925718061981158207702510856700350586909393973709438535672821786455468158756576598226475660105579220987402518630002084070460024582139632209340341661747128137226947424566957399396823080791255965472274208158481940490399412517150979029966520558872403386069632386960873334576461397438456700226210749799513914535174633213352114398860280285662054408043247074602367434747860228256354450399457293212010800845514057250452685338322737817236269521970756127661143640625710795978909981742468375354299390064634774185366790347134358432454717288335069898604069748665379868058379971071889440599169871700319938192117394038085514556225832371171893433896203493857919057874007094314957549099425697025657295733610210836650717959080955726887761984788212989061919615201258512605438215586582500197276041400131374753747177823922426132618256427328590545235202995036074572993343594484059967158678556561676865040280744337709928901870580640016717724635976729145584002494351918262130456001488220092430045622534710554440359657686007143544036175641628760697296580728397398734710742635459750392358676176922936886705377803790187692126696800734012341835878949451318085143167766476677270916456606602660124369186833060964138849488555974756418762351169068777267962550817386391997154258357298101393336050136230571657188208615780046842324567098748298583025085877618486087093992766342327745756505278734569695572491024669146679964823786275765359021185913056555455768847826409519824866624132948089422591325159516600627207119296190036776035029753700033480495284109372437380269150271153362468222460676355072132286841678538239830864442888838870069097883371702627105913419328527472096891243364796993933222097999724175066946492430970652246666451409613292454355305106980593291332206002122297575062412043497871497538948208652067574038116768988092180527671846993720374780270664597961071059912482112924483208105901563036959083867310877232126127802805323685356095628510052162950280105077826298111060335495047598554146018242917694682564203836225017888899106067207834962908596948385331734689823517106114611351167647226752188328338659288556627901327887751524395625365543384056412967574338797169027207266601541237337457318762243554401611157186209027093695754598697847955053575829412829798880810036902665090109887058880898411241285103961488198687526524596765885271887920277222379419840524782526395495940212266069338379850045461536565303723242855225138244900295271372946670965717171817417413232071543609805596275351675857546375800655909558257227783351331862962431679470116013092180272163196674716304441985129848209213718529522794834132902199571406341350035533724244467973569874209587988377876912353863414602438137193689085038435782511109754214062810386237050726752834102610759055249574907887733498936096707765723287886241396117772605235159469194521015432549713590748867351742977764928595479715646237865344532600391427556566494303496553642511314413955637660496701923056810875090537053786020983331275831770239227196636018223076839327114073722678618721614453934304734636097137682420224766697297812886157078981420281454620801843764248624551887527739431264394282275332233270781047477967195862981567232286055855852420179019664034965986466461994707057514103567906619605755134018778856601326771181678258591931033890293952606910021096192480968942236345893939647491480002268218254557576455053149707789552520215297309166781222128864119266326568962270699382071452532428891042905482481159016371260994135667950176115779543334117527326244412546033036764666534458943024607551600385544224884224159398868122921350266106286707364693826261388158384076293720942323039978890911170349040006915949092334923292369579718612057575881083245577990780198172441838110574366949631793199228044891521332704142933338236349716805654794749067984879858888248132923933852835190142108937227695141492842552127665195161913045422900734957681617103741554034761029307905323667431868940432590578684628063794282105562112510800205830242916668239060480865218902287505264683589481003397359572162219375423843161158316669509192526238222164208116527776529982573060136523941967492185134085139613740102039311186182540279738162108792621690989685856482381387707292102409262030894623973082953031834920615868108276536617802571092457607403456378930105586804874104084261066333690339459497161791110139146846306256818043843067426915845690507821620529995214540530601813853739625806326712196485904914572318781289775451611774336903153308188735733635249576420891198912710704357127429232799394650022162977589073420258363308159460808328073778553823500365186579556512254645639848524335232341581998207308998894420359855817623379919036025222956301324037600042288704591389369117752411484063022386217330133812161800850545994183996610700654583984945960880467955605178789610792966030059102970371380466966922755032921969851671913203240396163120240852991508852556044613130348303501705142953052502739971325303275216135106439290433240014300620412600496601731721244450186832686628460951132606535228199922894602375090924617584678832876556137772865073396174062450908589170484944367843169204810501206302533182202222581891027079350149422004094746976507700769035829614790350001704025635229651379795827649231759279873515101183550725972557082101761975125598819367102714049376796746099026031804969644892735173665122836934351724219015953175617450453977358749937167443146739163100962854578332773669893393679677336383631547168306032729957146370541339809666938034266707409625096543341484624360898254903962366564067075682790878849351222327876280302730477199054548876498672387218167232372730387206402653203336002401481975672807697942402107780527820434625116821127974412587032212905724722160692873291736810625240046285685491170875302710647566337640991596829101939887691778246165117180671302098081536572821925292510361514463793519723816180690934844793035510484011966286359773506234035862496748069908377911012498159132353784911582438428251004066602919002359232789033210118915177513754204610701524911803857654658803255250140095060590841270447400589111647638559007575357444169634237260492791650376108003496492152259896125971465168595494590251944981912408181093820231632528620863986185289390001775297608223079113397532559320655419409447710100481953773067588670639888157357843024299459282786031783411280132032853737613088378654323479440931182841596538268168587605007781624592755636738606141369449210685633761528738635948651352138661962364186845449940963966134920575778150259520486734966341642302721618865545496980693317980264523678273089627964497070929933766881309867307269087750014422646858038162251898568848048712260347470805879907593894651551650469193204645301961249548777176329765655061257344217019101169962843800200475970408156185540778315927174250977905546114198380650129362450960818632116839675161671522860207029329057766878038150269386014292248914943183044272427846125025348337314177326863514474696190693062289118422082867190663622018569358889054856982717909309899348716767781155531665889347327301909473320945404834037684185071603555011308762888769889320098763633160439201479146372569475869213797415077148081603208602307834671062256929466087842992423719167733762598416451424207461388515243789993962482600564574164770217819143422304586087213009287115328675574878044532218876209368142533518703732081342548402434581760824808910954152894796095966479525187224117825897795857873239634673424406531724012548665431812683677915286440495611029803324605948970626041638495584385338648571333499623186789948849461181272807476134474718113932867658461618102147759648179907837992509633287917438648530744267319414888344310663904241610454405851626580083047962964954108716674445129196939668535155841804336683941266207668210573079202967833291834433776377995010918830504952502521632558495649940789551936276095135239194410480862238355037075011885951052768021503923188109944611637072674370618550519886019888252552726590501188057620394825967457405418733944287531663152808743726705856527154254788320745634186486001225709522705440011543425552122312174872389408439763992660877488562163677512535832403988128944413640975010871972839360860254447520220104187064579990507103869937027367264807977289963413770806731235771212726381008153887806366168843804444317395474984070678223488685056382357450384882189567036783298636068487350212205380144575894427558340842206927906921973579353859619492132320871996866232893915047194952664121511351238888272731068042339442214217106714188706432381478550142317399342155638573420799190690939455908404717168430938581567089750309282583077650637562701759089027347913746737945597503540948027394929686019656301620322549071735694884733169444658431306078363317272924915295978598524351547603269784608056753209090473911638488593825148258590542857630469729968022052054527615645509022465212587643801816157931255462349619559075565324807583561078626454000806581763685939207843952832328812191550133444671519226234742828098195900707381198137708714404526336440042604548881146808787972348001062772872156321657157574654329794112882195060297463159675393321498156286340231837912324770361644690980510133757447371690578519966813846387625350117095084905031280451887315160514167539750100271666382264119152869639431947186883302782600928422142535887629982585031074639262937860227553315640154512057068850353551057076654182298155360341839434977699615383179130776874794537645048352482326309329642626996564931326674517705012695001961475128246640501403847596292559747020500775463695850074987238982214284325133224784768592991775368587267990760427962895158476168466367049249452071740276020595669234248561198333720529322146025607647912404627938063248679193360919172149170696504148611271052162263122362401665621126397541137440003684602307626134728078237131224326357478340976349451989880443046099996221574502830038965968992570293891338123551491137655074752035797817821555842629519103100011632526789938993451885489624341629266688671415567670760078989441719276450880997830692822434514731175072776733600718532216814998031863744471321977288696103301433572985030669810217293939044066959303983735310002594181414407597399739019250891715297028981441931549047081029141718461433339906513872456741038133790446489869306862472239606718030913938892428896808235093799806143241249249000299107769918715945125913509670616261155956909554874860490779548747457360551754927476701802731969376710775927859829397203559002832386805656956618756707943489808234907711867422052497769967962290613704078826766051306006105324254698463869236975597909875203932678286727957208993775117111389856372774116826951696536205381875673783952465405307027475331661759931023396796349178690863852646436587508739875642820783816508516323007630899425574332852070954387719920881913117158881807108050239208487014617370306000307955610408505237328666262054068395135750560362545688698805683132773647019136049301859028551216216353643342219373991059426799474038639176176433440136086119209514962100135162699935665117301533571078635795818169409212243169015545064641211529699530138329224182135257524786542111435914795271583770023641469167397123739435122039960050060496347878109724220849257780670729801150379970768104700217190029368444879244671823331013108780440448965951514699619561393738555480614096391988028886646427343072111115829348689953701420780518279909187469240047561113190376980116601992752042294434712808976017252766543295302710564206674037205198816364740525936984047972251023863050657661885719171497917998619917537247704042275609104075491903696661152895289385193065265381313446134768119439423696563472337987714747396118696258146513506511345674306088343081364509805326941181265180911280875211253889338510202601745210073188119587309710756382547871885057069780360842704361653959219755919212224456700135541949019768833279155453896012326930538381851569638977688579402591608574678393448715417080210125103978279949427730943492965466114948872266440760426549373530313066256575456019150206499998200023123409522532711171286605703136001390647467417365630723576002752241457711447799180205720070293587071658976721253927871217661810851605177296958450164337088372318102308344597528108908578940177993385440595543191770740275042348040760543593141908743182231025684842920657848552188703334611764461349572470467079071880995481076455600750412148712835913937132913351177566516248514814617098915500187269531451317657042329136920192866496973675457592879236463964473628224280784881817756552222380737598445316068424705110334142922291805800273550375748740533433007458042694022133882221348093303389822752233252197407677766156344344229797116421456839361770242663372931149077765450957497553552927907778589425571994343418186976422369310480221877749990161815350746604096942449733960843975651454001835462158193238331958465488267216124444432499205728997304460241179414408003485891225763473322630670875730504281918891388339836219367471656256658757891863478279765004597241274494372938676742991482127096729677284425997602140276585878316173992733000624752530770132049672178734044791545685781872306564032468067922625652596937295548045121146286369815972357364069538158154365752522939916036484097385009931626961573873354393750197190036828168789972157637486926351597146844618423721627542872616213635809216755620832584556410509142701654027659167933726700205348055846316238499587238617669819099266054300469570350027988863770847011232088080297249530267483979398849975240918743469836332426366594229166407769453370694866039130651764852608695199748495380393538446946552933038687268597909832033857651960776140791513185078956833566122288939940724976158129763003038590021448057046879269040861730993469360871155106070806782277066193827905195530856472778641526285661658528255961938532011754861889833954804502407859147319171652168700918068945698657685093103254033699153350242375600257682158018454973031560364633106993236589447605836173893812621857679484691664982524583366854271098362449796197480396246933350416036201186369462825303246197205799796182979084422299272945219725917514733240499809557434017706375125154280562528524457056838356164627743182956870797740845560168054385317187242198740658133390270193226162001304313610270244520665934387797580518341548877197713263292337485232573696390087732471970572560552050968286148821370144250196911278540667369170465401707566454426589586344547428712004588579747350825734433255293457310890868914719895690615791200051393850019793255393370846777061760513360399008564308182370791158616623990738621605897040162147888269730281965222621237443767741253172970904333589288016884670137559151170110164426656249995142171206841628471013135458332855467437209855872768767263445207209053124878293076960355078190453890926077621647759447876024914543610260644118960472082731943727297641307296385339820882023915941381487115757656364586342288821334267390010404980277456678266198563045613382742974065889232407302545396055357365502656311040248586974268691702710562145795309031744402696082212644396536578267653233572258929287209337174618394976338725526441873659070447387234041465247387354304679012454118794017012564759444148236536354128694223733277982519041307124392677545002350963419054592437502309915569341801118096399231138599620193979195692389511445482554507927010738211596900979018123506428137303927622207345229123993747235366982083494525301472484548615568767494105940639377972785043006230445868218057531200948659070506943228354040720063636923736813883554843653509112968302181525986336257540809817643611051502511829297787975080343836239959026877915345545054466643741741574611289683206191831852969678214433472989622288574184790041386477388102044090848042422377544905148038407032727087311297264763072412785017478961338931645772706188268248875941509181745193675043254787943022520935297941045766061529507160670980707627414842616803227150768567084139955607559669810528335546206278818090786721709694894847606657372728449203489230081723858520266613349238456550235070893968892542168509790505703651369034720221134174049494206585553919613814440388612111788110664685246025013939742535238419017224106092295142933460689178637145271153370708486186915292648292553594742206805760084289268697085008363655320053454111425434197910847852024434480725272465781370967061490803100809914369670724508945782498528951455050155247256362792359273403563836934227483624000059654794372143549354020460209429755082110016474883486953271713516985739937824855338868765069120856988474076545565694655951500552317967212576620886449449108965407700304349785806762233764060207478116552085935562442783256840904699458013228744853237455538865640309721909977624905899465658998203872256512043350373215872916594715063286578159064646319494245549796283907165569038898084506744326692865926201904059231220812399307102151044558285024547235300224195919286248485709512745427887289404528951631187917184607781238216346809460961792197607305851993447753470697252567932491528274800392252398134294669588855513415794779131732267368737136950117209181362814181365011638267223824777993323838310315501062153701444590871890019995281657745960558312718247702439402267393322981610894639068494806273173955825146677485628443435902990752348248144695123663895405856564518886167766960176622159876625893317127591332547766154766634776885249417472854517875014304510908502580495172936898108421185059525699059158768468067339302554211656512289906780350103669273429382133973589492552164579639685070858126003325974538789519032244502418549412381009840487952999315708345216810089199357068534824061068309016371920533523754863205452303510208405859953830052723218522377511232879333040529783238021989538501476210023923541444416159697174478032786345668073466026337562730428693089653835071105565594825212401210831896717569338013169714066376811965263763709546863601970807327612411942797269625563972033514616855503637830924776444219973159071554152430608995091681780681434655483493562359917282524658850503661077459813944206694549000480521941427500547985633711917296499012176116989632257108139344275422813820275438581924099513221432964686623466739771392611114779102488838235191414812839629807704681912328240607823659047171008275290244957329700722341879025806275947312902317070030313176890582260751367275431345597186251550443883896130956259980759816679620964170830280940063009094159788975162813543923824022532870387452157578978764877971227298396858449559193280932358940750770383294196942414408282252767279897131811343146128198247053151414304905696006769705452202666381134487705281556432163674356666815446988099636905425833627990466615444145604302890334245642729312808368320081094316850588464952297279597567663312803837127096603476849149962533926794916436465627001605427833823619035384470150261517905112385660812994768275976078031620154590347935331401441395130441591602555434814768686342091542443351003761729984612535668931522363160672345180482720407153092834796581546431166469638090578112238448154755249437900028089651702032717730849715915278190338910782492631827122952619186877373213261418053905697597763322720798562111616531739460010664359519745091596994733643505570764686467426147656521631644198881586221610162971711740756573302412993197087412960308003181501429072653457055511277250902589991857031948992716690045112389113177198225422354999088275468486375350758381791575086063938614409781067874205930621945692535733145457494337398526800814180521147355760191817616532842787485384070395556482071042069512893812867588673288848710792441894657227047549927865244157262245200828536324743296748860697959930921318648656304429823649067119716098879107054986650697546455138389722025061327707197870655991790049558225548384955255070235460851590074795432306067358510020734239743134701313001335761412714031161766864904078187593354615103325245503749988941969389207596008911457342680822303060613890396999162013392567796911923727866705035507580578329941307987849094813336358148494900685028292867776407143580448131309399231623395058831599983481965898711116521501963423674934966782797805684374858943035200151119512932450415135623137509322791065549688456905807398735102848573142614699933107065758871528445094874051386567563975272381660372102819426035872170271914640102723305972457158737638042181871429599075504274876255123124178161262210673663401938379799249023385230038598680171296552762931159376399554752509303494017711913652256398223037927398559420119238738301192130855345560933070357418730760719717172708404192797065080159879781262193060526797144674475890849423769755046575525713928461764168399800105279431401107750152316869347604357578403910901459178691597199296671060378071710418765233391741180972170128259377090086045261573529390553135920256566228972964324100085032420558703323736892162175818204524780933057716152454613085683474605076506684068842378152668069752780610499699198745913701773654218716105147601574470844415165582619944488056950945477795601286214567085848911617179865954840194339267702954551012368098259639445422176551272018857552619935502837183808058807047248083981090559988293167400061976741307809370400501450092179812569870854085711568188230581466204686896932277134727261141646723214992568306553868468460066845848823761177181303290400066096619975429920768012510968205377936337437881732890322094740545587951967534456023714257527347194664485957211275170437696598229708353047036978384818446729378780240544778065437948558255479598487420498798824606277022489818938005575368745858558009476722571766296810762316597598494404590514924892767298433841123903632846274005207017833776395024539295531012748749587238948887588279008319421211320529777593615090040827956346327495834021936376199721311337428256069466073331346779522587728999820133289960012934545531121627034603406262119133902670917929046664354359450234061305404684600145606238688721726132337081945287865229147371926689915930166038875539218291869887550340819937118969602918961563152396065835181134431658018543013650190261622014374257163492055950331327144348993092427310213576385881676340459680189243778255024176002696233312108324159850150729646064595640415155427149398475389279339133728807856033190620226050223180873099675474016843199416425133265694204678157177554493931392641877185758440101260755363552023675381990966510457603301855192290911407969501661014767405122496010699072932674267725307930967935417946592188423557407497802322615558729148190285681641560621657837156736723553325113687953017538931253308146598273641412900274730411436301095660999127879897676749010319013114512700675601135008079599471795516869736397972946983668207767146865621161233899694943094689029413174240799760850449825439269196459423614539095973702173973858727752492198877173380735352684870428808625863041944026799441523783735768572262188885948042599601283936710820131786028642502519548637688331276214068767385339926962866133310256523266865117748846919809215000151180190867702168603259756299748566102185816632058392039696483826149956514034353111852050952271113355640604743342954044153929322748100535113902270468504721138097604493562093723698368370918301726824893407601274875265705179084170801991680801115947552550789690638461989682846650543079893078770415273572777293647183718682714445913224246186863328796596848378305495930253202726092221407120241665355201838597071098639614698201943227237824776359204216067362757712813725450129645437282693864046481168378337744896684270495698026334256388265156971678749375071769342753795169413194009375567365983539359480658407289354402641786038685531540353148444648381207991275250178974820958194955162935321576651406837141103616315270705524600023714175080247597187902273446134874036508027403528221399522148032176626120957597896636498374535110375073590270530892906319663490991999847310729856856971706213120505584604516703289318021764349031054651372922361936032635148985528538582001701282867212685259018372380932944843371167631145623413512892734476052765262793014368665941760648383419065199045961606298796795676772663985228977279907484525748448544032216573073405291222665893391291406016098525884336969444114531347997042337108659491156434364139008097671997550077424082553749439646464102311729540689506438472799512176463785721386472070606193761343105403581049851817921059142013569720487426494540073060342283862498746239759242337202587183567535125052629995240148180381244474450247318679610862165826924570257078967505835425756865349360765353797447088175969280040459745853945537844205798060027893070576830754497359402314336536156643650620081116627647690322292902984428067321945444965026003098195788017817724462728281924017138870884109346654804207948289265960411060943885824208015013698456455724346130694053504239182614243994365631173485790961597025811479359611776051011469267666381146219131030912672609501696756282154503148584075427301872677826452617372179623002187274289647933318253645491638554334933272977877183982486982444424972289351062216255794304161190493089795508111147551073267207528793310647238748798394131250351333518246287504929285708179210383250407759847504332186646148530324452800336358127182217362751909745170218843309124618372527158196272037384078554279663598725005679614568368018577531677927193280799997797714795915857956340236156638709389280217465058084481142434324706929523339154540931429758858384268213277227014106381168243239150611815457206379980579998376086125189191083376928884710831232753724792381140722407208444742423621121428230673269574642082131172368863027175434156489321135021799784499647284766944130297545775957376533805094696237245799996183219798263138605033384809370873291595538530438972965651967065167196329197520635691513402162650164108299219065475175122854295756071284316215380279689830161292678868768435364107742262113536254885996286984406598997812722680502143885299754655162705651262393747643017906105729205932989531820161938962600802531125478348720678751877752313450167996463635136382905529130044325205575864919387596755248911057893865052669387912309004687292182904616836084990373846526702744188840481883657937570313090073558912228035795184931138580366492355572111924147727841269149285586091482964209812389432872835142695332885913830498058844542759877665841563019237301940537365317460719912935182125582960330239347559668474523176702843429138540072474420322499790758771466253604497988581220507756473654528287900169423808832494196976535501603298253694364230997746557088288274206677558799494508738555786595339401731094182306638123108702678618323776734909040523725786248679996704241056840176719789005690385155698113082148141091873999553746610784296885053581534849742274382228327195913487745492512677830279382163175575516276252229499155653464952567963309725350455833720963705102603043437668693756318000626767298091821701954680941153784326779644046424494318142384801840553829682437524084420890003525081062005257048970342959437629630785775492890284773899144545976721199397627239268736807998612953397566388663667649166540308176578969239380252272124489910537991783157961461859193693432144434526143519657726103295103594134663505009777752530415955953444861113777536511743605898584849689823206233879068888385613575531326116768772281389881847273994348102732844711212330803962139143074252135060023618298207706050781062117738529378787860328165484538620434475259836214082267365925654142108389845236342013788409094406839056597592648761149721178150987232651501090774857415110722716076247810741307855765280104201495046561157902230764795109093991820157446336756013986827447912338643735789358097563666477808736215300664380297808997015319834387153807120005052179570588164638510771515422256209762558948819709970375592821863036802222787464513304091935258919315396819410762378492003380892357291834882211747071347498646730030720269164043404785154254104662039340991641363587454156349572919105610626746430395305374580660835023588872901168879581784825990406882782021525401611401661722316745747988551334799875788988228617156985711909359652064493800732719676259923330380986778360577970066633183067886092589110895979493394571526887581311943972132540857782886815559784891160391210687994299977012613263108645950215071234036911913625395760674242988201292438638032260463771527414008334027455454248015197508708841027383383379678000946601950128930081324510104043038249048219489248387959289751063537035542348018206981275235135821252695670592351087790271193475229300563385362830094583853039645428119853045952524578629018855499392623593171123514835039170292048906744576686450555594279325789855604352008635126910926142293265773806834598278518350186265343946262760817948377258004707450901678286633332564909313023577428907842525525578459155150926091541897277130977058140538080613264211621542160831568308590482492328072610090120012753843841570490499457255415679677853493321623510357812624249172720108673946234293124469640471134177654829660913511378546334040209371791625965489873391886461067166536093778334601495427369811139967545864149643719681079191390044108402766057877557962084350648519361566690758469079519985847020793813775168184792728579427366940969344178273671968965667409017469479235099680103917452711632387465847907053711867954690602351020966327284130670859464247471004308249811832644971479960491126419648216492928595367589286810240282544714885425652714631502809399770059780222947588354543124953223718410704783938090156743415341723196647683388904907262976504932735030055869124236843231949277151091482284027149341187235421743441645013339269849068676059625104819102314157186203812414160785154138504872470560646182223940623318384501157626554431852560646220635758542553871881287567680240419329964315924146005254160834362720361930763740528991203355268528067179667997719147572840828352466195925479413586928089301030629565004394816534788763353802283459567554207050160698686782999958730308889073581960381816415511691086560817321207753105171013885158986441240605866509394087315857648373786033998500071499745996294266701233863021354646058910737081604113642012514504719961985798394725349497854877298195554174377158928268615192747891964350329875630431829619415272641712666555046695225620334299719052074102031610422066402805666115125717476054324168121968893841375487657249240528064574460009667214285179588949366807675412461066010484724963551108296115596735161640404229913719592332009662137036785808135429067785444107943514742068737085005488822392909967496346092341157897262523063090656630797814487650751442350585717559233354229457165745193561948870351406412118708118130002850112601557288314800299430273141542248042804405179612256245341405902533113520072151730388291538982734920252699553120668370540312291320099395183194915240034844686945906773986932154096362063472100416135473278556557072893807940613598287845323068313342003666332550824946995628696908383957869943482793310062248918722348793915619780710426899404021300862235523247097936377810673356314552009921862278551357010738442723695227783554051718778266929855735566072216428656872797287810157646364961489773838297238398033415479313454039626386539379913747694042104484412176741264132933167256430132948804391057546245575792045376613169573384936867213364762769411869952923971630191970119389957447550412332547565588284720723201108072398177950109243992429829038353259102881844400144473352471073702484034906334569704814014034968834283541920625239632017877523834999291495779919998304101625385421770411766976303036791258229434143380844238788271224868151475931086368931391896655601488871273540717748756285521437173493729756378904583546542516198595490819546096085743807851539401173886689255574078248706655989216823046251907445832372925368600807846902182488020094314120653913670066533833216217594410831514386875762108511842313451225052780683217386074833471559550715261233130743297859830607703070192514959370134265905462233177936233910852347573825010689120932193634634952399738735276834069562081486188906020339145284081207008770023194195139171189235116278924712058913130665265781621213205419592920233203071214209676487245514989983085034231351101459394823929804863992809264923957729596825865410332676537845404812571610862792953668257003160631061739309449861528010063535311153145528204374646436963968380750821180669370534450697224488403853911177341126053008623509088037476585233075860214040538320024644487940498574355265093018944944791020932023859359157340811538114329027135071396104352978949280335727853558737697171578416925101826517632264617222232491737587442933528168581991213016334125015963415590303644768435577298852828970663381219434827215498725425538690828508614304497700970257163143241912535307492628883630411928716074243822011604092475795317531420329769398856255068327605068371571132132731247668358903631366210983996571893270679528986268561855669454604197637073475201480667412774076619071872734900334849029690934053349234489971929603448224345673685544306213875055552596621106589743577759466195365372346439984949429463043480693293528693288830697866553666692838439923086952322943467088240637533834869515291942395419850190706130878596386711134130295429186697664489259168259805688718280159496787553446046477144432731937821722964722318686055275492242112917549153930610171678030533892516876358676245358106845549116325293112993192188634548204670426051011440248883371129775859188412880504412250263938964858009088347590065143889072889768505547802895965627794313191183810395212626300401434219372903296839482451931565202412901316172154766777129396536275762026180550046825271403020692767912136845502640990465795834008431662673950382635602686388992525419841297535592838400577879190047443596981311626202120863123325235973186040206470609735955266279983406403199616966359716795033302131712861129607135450728530912288285783226566548308454708740695260943262475043624536892838935993233234671040409383188459916113618064121677806021006411693656332435969546906300598937062665741340672830419781468623912617798085779109654877037484672562923645119704079800190490163792635596720175642116632998466884638218052735255316176990448204258010613380739622724503730469496453515935198575334683731404903573569373097009199316662749992369127659969159599371122762932824215479190095183528476443355546297431648888481017883226187480904545467035530244161598335089268651076762747094010329778286748929368988675449575571214355547133249599427840732802429757247725374363458865129048959282779722468041748485412631006622748801520151014139039715445286470987952817495512224581624280564891756137345871117434753215525262604423361830905016840865146045287481917762457989748171213054378423924535331823203167307556629108604490811662145911834925406076572405623728646701510698802431405247531009325037758985182098306034490074484723909166473429016897125572371528872023914019434366213005656706841171961088135504530067626489617230253178640883444665999645787846804823416818448716685156976732088682907597785523273749510161559724752135524259706967414941907396024438159132836917192245549137272528579870282369246084428285525573825747811285582081370081705923091133501007123941528595828252310458822600183786721567301115115631242417988608968619827781599875934000476388353958378577602373875021548309076328550218858981411301876178127950484390125593033997995795944502767285583403096440001358510697710218377537979833904251567942683458982681029120456088170355295634999628360439908636104237262081037124572136560493527651046581758165444163552418985360523903404725466134126664785348851241614351629150277701381498661017770329852138361626947355327883985589331200391912497806696320206026383124859944212878953045874915795316709278707555720230954960196605496808532150930465628576533600607550287442849219319502733914372782589676045960217091023513179762983393585675645654445771734981808818166414023206062531696112342581105127971041965191189431571080596337033728744116678357063223631607870366321114327626625381246367541315904671126860950883215155866802731707831257329495147989936942520486734849283587367067642670446494394835821435227310582052809449615253309473593482765920748405184611849482281102435970680295210096092323503494173242859672360196500652373826532191141751390366688351264764197041468490599780145532733167544383600733463567658624221588492508617044459903648227805980476899660330878919313927375431636246955775964687393910110093405262036266995636450584151423227990774816842618937893984787724812944301604066329251650054838170729013094053218887560391394368077658040764222341433536211020727379339375717270937049804049464171962623652482473017288946752914217853853491841404565101863390865263282097762089756037959501458348560367756594175627570884365747962166496914199519200494398908865676995615598133684165096719511877749941957531346858319203122932417194374309526565938553390975452666307977182573078861679886467100150240599050732827236609233502706712870894190461344648580694861969282264825204969269765051027180013016155250404271534763354910929219043908228904613195350242524187170502266783162555118653879464398674350379195024689503277104184557285814399327833327424878146108637693104074534920859629950995818324825797875925261457046791044018542941554543742166753785963372708919738878168646606732029074243718670855416019241868395177117658483977887805968532091436068850480705019077701253081994239745459808913845558540818590160720601938284496537925878339848145623573899587866566901810900469934294224653651201656330899921668702834888510367294669232719228187212844944615108139784772335393029535143973675116981737155397301513261312513650630694974416640341134738578254676448447003812683784986178116517093883638921868149190855272395181695694697887836490042409260183648920391742663718009360861446633342885635699614007146266230973638591147246144531832311492367806410035642391242048823051879532786921380922257091481029773356221836125065074863788904445126313231321274185518394478483402731748196356134558237764451168745363542854014923225475575309908643424032624044871825941277615399470461674272818164939456204994768411697105487570539604621114500127265915957699710608623879606498175629215003632414295069350221225770114890035978149702097130745649120134604382719997330956715144586212732657282613706060590462173937276923822460234541932736914883004729569328693437910491135385727374960946858533362535209705968001103883790030058687213970053355659109449940826638599392559353808784686711507508226614290450903530355658946199354898619932710695547170661077730112215415780302608937443452247081270776638950362572226857416984436388270928351320208451684085875998409408300555806707471163244763969360927718276946372644869132341939571608655172245620349145767671293850286474886694512327314732549169657461698056113283487833476709223474242069210166042365179935298571456875751507298817759916660030034933008037953014682336469584568394339246612173413089479158496581583913366425629400211395210633794892894887259508654203068187885405590232594341070559417002139161027006444444175169663366277240788177586580402251533184356902502987711578488773965581716577201681973856360082388966200758556516048459836401258748047100257798468509121246966593707443957419355472118986141572690733285292345077976976203432870038555668068372355420773394045178864090549828786050676559022706908010482459196498782214397855497981354755005178709828371698195354563469520405081069726289785827204838433304553909535149657036534489657090636049764711392542916556402001730070615441039540707855096880925963745017531878471836858440684360854889360429432203588685475442054111927914403790968609280159226606365926508001835918463990448800598078755096358579159572949964501900330462674221673685836580843142230811498432781332452259791336909825437376297288797539128039579287356324613610390381451337860643725109497609494563037104751871607303530845757090418387476143177344513893055015059260441626834704490166661969488709553314563457585814826452280717626004996717012849783221919295884930905763014100383617448287665639219860779281982572955383779576396886009562164976419854187574363467513702283164036125532704654738059571369455798930822784018766395044649826196910570479960254375853383501045533049963099156267908689353183954873641992941367205519703822722313595147482925062970397700015997276962370566625361472844476117330064214339149289727409079682798227299180331014856777397794057792803382696085955017505281361304226958845674925204888712742616834069634976635894949683411047391092378854193331332859700563197131879514581037822436497698933852823342353472532954376680920248918683455290340069956547871943522016606126602152552277267290369037737445352266355989649776635919332347740396641500681834287283527945317101644585824127846698465604275761644311682915379737342205521085277787645229018968218431767501429421874008052622814232348840480483859054085035061277236047517914853571767267422765474598547320557306713637330063739965008046523160202808325664590521434345782523220893429201698224306561215592509819463072466550543049815000321338574865541254630193650409171275578241512019848070524226195718250486050953748805731652028106743205246990629212519830656269840637929957545646261127969824750354398241902918239124219366397969977517940306552825529051025168158225422870307243149924412755024416438924208794666906449064393516344744559146664855579147842694509413968906362556134774581328267848431069764965899377943145733457177507101332774391872711876310505155706589152259259275452974092785624725081139850806294171583717760431041926415076940183867988244010069076967227333190255702410823274453027909601000786108092831772806951630340110769707105838979695042592685329845604595587190796354209540260785486637069061718989830235403090455765889282250528314791018719145374619468106099531467559838539886670250005139162722022262566783622179417728727166728206280541551018186471794559631720866772634758928625551871683527585062872206892586948734237318597658037050366135415852710648071476586962619007434916718341633388465931274483890932297582347016973263129132245062725067165729076874930396250776453796886955987782651600367623082019961687895120446796808634375869312483718822107323473035189370184433597772995732739152242383909737300182956970850575589215192766802335885444719362935016240092867262049665770294448859481332039607023568317057442076736003878851871137064658520845088334343799982448113867622816741047872648328097193314034033488399683169407312100797272966875182635823338012435771695144704527554012511604480962639526692780639614306483815834004964254655903803115824954172935921625196259953669420524242479026645600271442675787803029070399160529409053034755882208213907551748281507108283506697187210930504836844415331930182608728359103490098240851635421083066736741617869690840174984165115932106598147773696944670137751991973027630197943175955117312438598302949860115737840662841179291458259184639930923959461697755918131610529508938523872070496421264656172432074971605624968279549431919717858464311864339044622434604965363268865330490299979959064403061210920424119453424079129410877946172680006619315821492867076985523351062782469716747681475140315485886424924023440568592392328764509771619786295424134578777794731102580478950848282576305722851223868425278452570364066829323986215686870338349837849195317614001281295456631177491122004098292281560155215651207411366215207531042873320022526043439498236363581828816521074152929648224390048312528941982609907738875442506532677870916325542914474146762174862504580741932423459520741316016172481308267304384047729098013323425427066915166220449755560086953110237235347968191643750876364024789745432738907050272606630869619386395627081823280533096533309180676213024410667095752886944530692757309173232383603692883632174007650903551389142132378241415258775222444572015218785843473491606117499894412276179176244296283224378563863175980641305016609404758308317950690167815928330723866037261224321093399005448075958209445636189601890687702104857461127447994549006986670363344392267724663615342822929526362739022053111033167733025947619929954254585905366646684900052600290341293875110616510528264258381397286827244768566992082674294503531346619916504781842761291062643159322517683565033004224979242498424880708309069022287560922317369467131049833919275779877653559457792649757485475486398477497977827290990875934331708260353233711868342166341285806653550518082393302633775807166372778695924965506523376079523292030079375771752236875384960547627811869813877013730389507596794334283604263365061951643149934209511155802273442992188592490270999152793504269579738350086580983938269877637546598426989675361294001370042778072829970764429015343766693505380569368136063174772446123816215316135020210796629010483319191506790375104275830494841513162348042414164348757882479823423134816860868983705727055180540626135284726711225750780925680927793042555699489797409021041097009058817458348797809478769759008625011316921500090488866783818273255447274356435566065733333237851055895740755749853646801186033084312027808418676020051630344211340978368531598667986842924734552550667459953668746919663827505817914854065827148309455864464493480415791875222787077958549353723557384765478219532264669334937238101215965732982801138694205753328751108057333013999117908052736842188562969945871055145372027892605363179416430512062081200974775057249519354529076664884682164195325449520656012200504997837359356587296256090296690829830891002699027943419257593075467134604477262854715886213835915483951452075420079756389923906403732057100242450459707520056795544700761893043596672853376035087434977204448925641579655976343636288995738103861495087686139700358443113988709502971614859679663480937257787267579131769704496323564885647571936023267976572246549325149805639439144159636916779000038688540641465261130902456248149919641859051809162311446011131824561623944514923842069138487009615144157907769098240000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
97000! 153445933903296236891060132624905757236666325898624193857311702092325488131797058507549925086956890910251635008804928519304871852867995235710241872715637373884737061279727223094251542290636866974139460260040272214894927365904080690039755594305696972309189700403335785521937049979418560094307706211083541067817705384964431406462589284756060374266841140145352934309174714239162225910864297003180354586827809900351820117482488748076766337595765570801077419398775092799914072993803870726617769239060679613657903792122335588356029740806731143146205303066039685462225170170232375080363504682228757353580293790909302232660189385491315003979861114887375355120487067054125761239556447796181226903947444471400911766609610621748723200417866381317685559087489655559683041058007311323051969594829674189988554186073313026888488888050230187554414435136524923161014715009100593146384406919117366604843436005300209571319001683143273074214752362189329545334285145083145193024699385906960644205880445713810286291842302002344043621789655190972651664609861436236653950832365557161463211320113606430301916014249800179438292355265037835792166278771806527116757380924331722834735418677689865627142643673261571348068614825647773093464579197243773133941870691949777817257245233165022486510304140512183692259899935459419937436956690906145179972842287281886123603775281171835490476958169799822179011757046751889947787758472750273569856104804981959443307709565984242284029094403209035737512379792881174427581560897522819385072805071526869933600631344396852884453474789609937268158226661688788941196880987959653238588607049526344713670213621447488911879371629740582048187052145680483075249209152977345741903757515523197593828364818102474260105908243618610166419128695181920899108566506342858343775529229899649775761636924211178815867436699316485793407742835514204436767659450228166648242966270658579823400410982970841137736551151413577459690748604599775410418513649480705052709484036739535754081752391025004824897068896536587911118057866204953863870880085122830719597250661208477299979530234908160170725357073296520064866236494450097678590797901749136477208238154913459617403974537963075624089873384159142580207661281929746801018242146635252614428307703416727853796976663907675288536585035481229743972794090782767279080301445428686568979977500919073189510993518625012257833900038772982009758239903217780674864075143953077429513265724880263989618941000809504347163586452947212874637016125203024175798086286782710348957469546065120967868672115483963644832085168313554379332395894227002239957755315061518574204528200812461241669592531904306829118069972380949310388087841145291340526057115931130185401008515957230399055587989502985510256430729079558474948925235133492055066728070642030489803498763710062423158438773513291298431735531842200119296086901009416167631779075591981515742628690524289593096108583286402194963375049491584824995600850726008957717542470707171678985755222050581067022253229015347230137990623614544643675495625148044667998477411583044350598019705045570042228389373212713139923548776849564000572948061304555989389803553836323808269535636332888708987873654276195970554528792651821103162902797101631824539999090363985006135253668746731683645637807914670403011144416978005482391188615684758714614820265648088915478061044950094461764834664583848145603166369249810001688424492001469573727288923773471671766272824484313174576767278707090399546642064403562737442682414304358389989204076406463687706796161547754015262301816698762028978779203141017856155486851161224615866303248124207231195301118108616456161211375121702654402673060587639235173172081165820022732127327338220783849853068918665544397967284677154157057293276904743713450326256202007697483478571906923492236363761612018570643933296341340725324865449720209269707123439603041404681631551822817111753444247521637854901228348258360221678034028983535404239623865027886080966965637856724589745755369408209104266359984379611092001463090501917625790753626098613855683313883289023576799773594849342469749030939619477172331576210604093337002471012948959840388101484295284458390679513251689374485699244499146932529615091686032606178537876218626025727277124684187562109546067806059470415497933603520954762739816267570790653667216324456667749144515006134760688742246504450417905436815373750629298771967637700268577211253809415094509275733884560719856153913930470262039844157816377365798176825491583353655703887652128473756809373295679189500119869445826816311343844007255192304679308848902423085907158689241220177104494172028036752083669084706460452593646432583125004966751225412980917250175851713344860487887680942874319419757120959594938034395652564204310854096845904381218469160961196454413917502915817379841366929091092727318738230666505724129594482896293492174953368003280368469685216077725387265959214904524277732386550964247803204132668836025907782503615281845873415250759820568652028756727921387614680458613599391350201577340641606414734791528489449368318305431916650099293273646818420457061142314578960418699144083891757155054435297240671847850482618623507771961917610758572479305919396610337420967154272516029583975340594397972018918036247089909731714962515667691412868925319501215649284765154452621521864828276870000421487807981284248894032430257992778354998869634767215485158505754916909665564092902707112678481381821737601121846088379353280051597045701388969708702401538709394020964646524071573494682826047071236297239909050959379281683470271497143807303708489158769100553432088086854904880725796310553550014653878294966561002162548147803093657747682133682186697715948471271424626037628188205920080486211352475741646030577547316001773417768491267619238302319512543421925996318453441731900440256513437137059469273497675797814649648141013592630932795611830933753850956620073126647870205337644425178573369041089087358894536423388327155808551679542510809312869351187449808720533628358337977957819446571839951076661198949952052865202889720808668526170181891453016470135381897865360435878043930083958974999091135344147213049420832008987157095571104800998520245299573070551762238610020928084619929636564550056261787795908737043796125074248091152480708586006632277484866846329944837245414676725446535443082659628605773749203396477165356398818932460808698952996541487263174257283653418318535218159359999330839213558969190645835969839592205036124810643267406009317665889449342857035431044766625208107264823383724259904809387354110913218068018275124094348383780883003977612135774105519188436464980849332134960538410345577818643298766383942739166129791100667742709165579455217905734342468698810910965032005047098205828891066307556680708995085125029310166637521336213563113722948575391583556604051921910347972677342727703470630081662440431116522962471595765438833951163623579345565980474475891649513960292036807696537302494831812184844596629022856898712881985549511723175742284739756350678616459135901845620280588421404903932768936577180277217543179413564891987436998366273350949819535632548978183286247871436536283892210025871871076337452306766200446457728659287326435412320528183645430642558344550711760723084484694208596804126266074550319256869844347472497782891729421674961465352263242606841296579578850129853394477999580123671082789788473161986073572322076430266324144886678971754958414327941160561465988554234906731430228353536193251982263986615831188600850544075189192386309385226897304323095641613586091489500874226509523634710564522638957038194504211548325743929184477027580783570198656988776754558232535835232980005159740658735066041302938505685601190985218492388542949487256042031962652079476773338286039749384677629530508481780245559973963099845120548097288509608533428167541778624350661271700581501571159625382669182175935513538434546977554687506960581130343189036234917768221400233739325787376728544800314457947987087338334979537487194273170410804507284070544400836281036906056284682799420570229287881230845780238113434425520945848569735641400541160391726431995789271827407679600164324015318597149527286952137889634263043522303937087908662251245003557106866771090105804352538158647499506356001671291113176376671031748999335622911448827792418570658964973734578351511593057074997940450771703197985352454444714777314934667507568764574310060162835857390736390300010948560172547261633441586118177638867336338426242237133650580212734478741868808737804314936430055280530789262055912076901524637309971044506966244060983322154695342702098499126732727241870628449001784796618545910625985042751016075423216126110159854833626771679642022352275502601357321327974155355090862300197919628845783263206415939987107562303082679573734902273214239473597652188206888035502859470574754687550539172465748122204264809427408360364947688438377701612132840125919389519997593033338193719168003277581687465258542806034935471482798460038069039140458362453397298341398675446858127004567196738342560515588350191701176481600707211977233095360655066622994103952616781173070982932948734106085228274542039903225598590052990540768642502164806033727231786664936754343677201069344964279227829932882523310539140664934949997109470326610044414934072162249988619128434239366144183292526371346143996159794317383497585043126196066415702725617134324833337268071616650982686008159775007359278294287074786253569806858141570065424019110488791430831066227084945034658602460423402411882565129895459417523599466410748684388429389827829597509082399156267418194124179577653856303403411802739856294842473541112784244491213279093991412239364432751836858074194043892721968669120719768971563233659922481647540226736369291576386316760731283447720083260112332074952223930662780021627053033294763243861488585320757202863256921831812301802230120258137833956228257956607455836145957016493619840468140872241121434245097273408637363602163997705948208620202254752757493395311900962844383420114048522063058804859183635278244152373851969401990017576021602677098795830873484264894159252142534229370058497061701541438826366203362283501484778726575192944457812298647217138433944518982270761397302175613125184750257480724671707288356336173108640964662367571125851812662757601002303055164663131992110731868686890618074536927067141493189990078753341544758863510453337169690259718037653284554980690221913706198728950641476719370845978535535300913487827075360709593868955709556534468408260968255825694111751161940927310962096767210614173259379225252921994001662635235981068010217000479028583235535942971333714320078179382737724346768268285281748175676381038839617418010746841735508797038427306245639270151039392834621294165005689002426469534673248010680209058114348301297433188716652536587924176938910792027557671685302740193856843564631346922309256071715560664505572545371917221815837011345796151301666898096775250679126492488703460351532497388485590498277681305454213366885274642399896647433507483768800584014431384051844040832606943451821542299404484091872603929145024379526732734130852984275817995816896592973177676500249014985613356451755247507248674219646058765029418000264879084137286151178053875519176919721786476746274489429866324653154784248850627540817968450787667185609640746050694468821625640555744209064281361955323058897646038011075153137110928600275633477987811301084560338690433953502718111835114449041075139859379734171444508680324097497381391480912748154212562114621332801044823878473165704036862723336936094833800850113598762487150651026216955846353603593527107907929434000959328963498467674172891242337167541943122736299487578057773336558316064007418800701101225824129022672180519219046828359337577784256692231465607205019587607174539304205617296504262838604701213223877661814442840259236869739173487100005297689696583095698048438503388238013551134973783894463870991668612392967857751383318784438259787933207145378781713377763497807351910482819975810739515888362992665614486164845172856990869608341120301973506934842257240795050015979737048164481927052416022959993124036435954504745706500324146951480747638911876199320461391497549776407483699849570464035262258395897459030278287112655845956537973766209805606691645568925961458270735766224437731704505040340009230990812187188279558751409848141996416948791887924141526318625360449641593190869114581752705037465310909894697152791140264731433482121944029532048843449364669290930687843251651187602699645141137364853799643813452153937678017593815499901877580539629695708699610792464816572424145487474831002538635398325170163036439764635927263900402289909932992779381171781281932092342465763965707716835649893537506800169723315985768183386017168765095669289230835660028320262121929230203307974615190897726848513561630110463437149563947670487102904597245457318730773839924633726985566618067655061790714782358064650250365689021981337683811259544764794246915375820619973688571977352788914081963492442123158725557399939997350083773772734053901851960958474184178013319146107909218430930639354808013392168944266065809257618661184153113613980381632856754911071415809869708885053536576984802044195448524587522110815261095284303213729854254257586521898198341257102207608113783733188841289877577759805310516740791138942697369913727185515654303462117295924120565819206095524279817058162302939978326448136167987187910715664765402832308091018815366330383287130534344013054360117718177392393357425296351860012502679801915078156184282221254930722870846615219548647830197981784747331940308316162794375179464502025458453949742849198870268606637697313773063099963864086448234112476069188815117755349553823050507212862304208456144107024755365136317105765627900333048072727336257193154093403491829798301977980207715241593177041588576229102980083991491850262822945403120246366334864421747995984752839187481169917377556959658873963183997391107981534966705792169758743578064312959791188351597224123676992111712892007988145696029192656070703332562005591539763276729032491339715615317337608150639183589535846774761622381513273569844860770631322631851963394626121686398635813935444363944338696501724626620256254342136270346150384319171668994482295194446036794870954027109463364305382065797567987921438758939242936745396361112636924101706821453654576129164078777843645038387854026076552594228251850449651149384900132511650004580198625730238584392869635598101046993947705844045878955072619133596493466427568863878498185507748875293141244626279023252876973655286311803966921838326333909139739403790408028409763411109767426847751174868871985709205534581657354968056080097203648133956088061328443800753277409165108245294286715318031263510680734790848322315048952436539031730332545017185596468669117116734576985386166556953266331764245487380605957222293235420810319783918634123021621238214732196859676318411340293390506661742897700852520456496918298908724039951266729926898234663801545118464776644064774645946857477783891685880427472125572998447749236232653503608827413560905959827688365926925643650518263468243923968349995172300067822876042950119522686243679707793977236667069953424854856876826754540512077505488057545235815784958636822039894264047292102182455972204895618907043300443377706346738897160616250210745111056765494391368073915009751961040671569317566145493006148540659337895017711992395279973457853820891504242789083657248197224767769284702024575907695841458167922684376570958076724062690987994112201605124672426931436837030262081547198604258470562774922726243251294342247240450877363861638247327245416237214422122830247717237231022765299046126221512183427526114339537204282499767773592143851001156702019840247772976768713504900199880238489268400098246102603958799185472250004741949657757065074149510882461663716855014611856981474050304199821300984117222592225374660222770040166095455571763975421493879487910317924497305534263202288644569775218904635329052182344961593975096950469174955737802917146907902555798895687770122493134098449569703560379253791939453069473881176670170332578836378815147438506457673131299055318415158285856522439772861723566721634821484255865344081785549740433551961184484604543434170751187002731594371962557147637237996682712343872113953022707678104494430882731401689232646660035712346743748168900453008638109232182898567003223402064730182843608224471551804543516588579035849453696497453244402925516705692434662004799207663953806355707719981878738265988733493666035592092207153805585985641087885678654345894040598824820681707030483653294436878885657026110227585840516576942312049446350831546531992213167898938459520400377707986602706270114173388390411473840891104820010856154332030266375662455119612875771072048382866968203481440171157221651958972843224932357510502310401586219042739845861834105709255551422472528590553233749700318602765971323833553361444603497083897190598956199291038984136891675219577497940760058919326760486490600003737431386357931012406255942984125829507072432549869456670883608678735937183756986584409731700214717799120173107195741394362309632857323783251986762695742195615039239228536281984538496978217061692839591273731200465746017336140211945366471157807834962252789480816220623471168682360571208542514000680214897222789963233427184193289730252706709734019730378192385836688872501147688610240597798526364304857386384601866326303868964736238771088433651316948006804886498351390981411135251951329674809918112727056089747033020972393071781822442070614198542058314755526548982767575884670025308488709325911215508085266149014181530551822607599275823240658958160462004746845601037904878519642233995102921173106740580444896811560324722251037014502286269545725332343458070702757763229391015975438859335291595676591031026144428565715591313350205703286763514900920159839930987299328077334080105851428449202614731347370584857685705491901886676937080866770680408935192762933802978485234996730561354389821723263099993286705054225135095752380083209625660959264817561063448439799075330863407222543541870362447767851889722170170531998043330097628814094782567237704064641937366461904849775475915564413770205665906962249713969273782584842926410651614111403724155276961639879648966326041369143235386786724379175107632359333901191996053841306604568900835854215368692913839103539060471038466416992776006027960264200270553486495871042754829257069998590702885382200407339292003725586364347465457611083588268314496646392999739091996601380252414587748050668131335900164607884803782915359955909371956720826549448770819455552424098944244952661995093707265719174071756367399219333729192521668573017965054804093948505967590105498822215515507144519854454810943941024920269472828865042516536335748326067629155375098391187844861810620328433777401083426131534387037342149408730960267112436271228288508641237572731055192998685966052117298962168826752968587706112926859290876816325523553536944786052567980925500002533563478614107496641376614347659811468914789149990957515041074308266621908736577787583049980344668134172645460842782305728449174303900287771006312639409198909978996843733975602671623299731065483058634812327390352247549079342648196882531278419968732627389053060107119711322580465087584322670553106091791845481333978433240142096799114870758542846936516916117483369718231758595848305568563147082070564848050854392041218773530689163643041496275411811688134148189121096805947264140122660949799407057711333421958759033880173091915348649541420070168328834328231953249540118602182748051089487947296636661276403515685071883060407732978766789791576948734743768964125949108678644619953278573939818104828179239701170613325551710918863894237348293656185953092337866328716301916219583913399741098493257731158564195362685629400246801881035103204871793178309923775809383240711994943903012481991381121305198632304134230886368429091631453816923187720709452916262824830671537143673011861000296181993374547033644918501259835069125124687671520270491282294713339249936115495696627604571763920853647514383695921997957981050615423772808459675779956337192418871391000976982563904193506764053826652699645893541125401868471267876000310084644603368814887566784656803538006319398747962115299106619061914404981481784439715667453444805639287486083441613751231231962274726760534109270786363871945137976977152675470287341179628045350821914875531483733050490493145512876266728929263173180669677754462310800755813473010960149273662860818583737922741393024394732661077605374147954787686955112252102795437651130888862315384062415808784522216736063940427119143520127397482312403029173768681895006234913906526904048970251611672172053051093568306212125713613399470425219107588380344631472966386751410245323050394205624172256124364870677293929648396915754326122440014456523074798105412065826193204531785306775484283742723543397403142904553648129756632658429768838238647479607102006030827872362399535024975837808357828010887411498697438523029800127559697077721846443040853262653677384134848651485510639255476711002023178917945128741113533478863703441872436040242492706619735406600770639667538431758625724471822075720235211086182906502014264535843464646182678799048940161475670721152948809525818116164992067459731037193196774779806642437692146954558028049321399071149764742529692207741391507390309024016555083274546365415443654081657654073938655371215011803649529074456734853974876069860720697865006075439432423341311046467319492748850344756165856082117537715223990868541005429864019763469207418937427985486951706538269890630413976969647781230477646787457438350781784811144988057829192236474160254680184086904857287290729327525081469931897330622397340505047360803813329880170757938707744116441711564275645076944560810951108206643299444900491472131107855580286779307742099180501387443202545976527196441861025192388309989430662911452511484058430156519416527640090681546400870830902451761349144834937275586531778502613830586424975073033725496679183037611364198833547375314007784312061973000484312110010896195579510103279179337327650358248294730559368639975163036249456819643843469139290687313554000928291310500450227565404794284263573411060830980431865733488957360385426435986185286516326414573304915837059010888363733535707867778741582945986569870929915934307435615590508371733840189429201555728417353075566976254846873315760817535096618783282522301894388031836186830963609439997373775071151074444955540045537550409436612481508625857140498539408449972583553409220972386454331151772889580042854752521893620391870936510233301152872401223241707012802752530054174606986945513147185448375220101007060227366927277270591998704265237639346893306703044186222578953415190245198454303712066069719203423727656463654007691714052461046261365258004520095798818318025291015224235647219127689917568941662461682535338204224414666841787741471492619198619100311150038322210764568050262238397394725412259494063346272654024913048238055358160759790152979380944396911939541897414387363509068757997389770051438008025075971144709611129806222073193855423013623779396270787580203555151399225780806140033431289785298297632104210114823131515635074702075004415400216795527369293739204228226592873922014166755997705850217185421902365394751527888709118553221032579800224964632742965414108716703559952155664949374013753929677795320933183070317576935755397821020487280185870462132876939067681487630811063953544328773087527523869507781119062410419152042808305866651769650807854450260425642725998915924162878210752183175175028779032264382411594234346411838285544614952835950873050538985509977808684258339329163755071585802964814101491295848013883244181253415562329302628239466410583174737571445659633446182026839490262460048319141810794194158867132351909206179825049971878786481918927394716916082925437223402849383262522209300309968302533032481129507066923135664948739476358712258504422961296941018101317780875807504281653696268738031243852860344985609857636748073287410389706818287153249999277735426578938348910712040337353485496763625605236594260194409489667504978965057987718671844038723486811620032702198164831790968218329269301607015647246254041987436584942598886576355094067935899676179171668503655625758339205670217835480348903776441545703198915702210593552450570067529486146497641881259767373924191462593559118317865442235098642250237183407406811468034654075496328166081529276268653064371520954606693483905783165525745667413648687278603058947015377753479423299377328366662858584318018509669454772165987510893119192541660482217253407680370081354755588338371647988537527851626980610215584877691068127646563070082455960448517730515923604062165160037501478429622805061609428094735174831101837475313291058492190711968944690882263302484325974161553396020237141864869422316294662602167932606966852249490668806296881239526564875256734969701599328846395625090390585734324575794844365925903034638515564279701140933338734972105868160166756247295020878096512849362232866913697691834994981516942881632515225622928365514972453141820604534941179832484874080280801379170860198123322078860284860998855548639258158691351475433683551875968873386684638421176139314889620029340467638133799674435048095054756660934230396881425135128377021561815404220044392529812818218345937771749802686488978148884173331247986127185455481222913431464721983312938762350770036937968412008428505793684823602458138573994521591352694484193406733798352292906688298066086039704338833604509110547456772135367151096051199308853876464702910428409193141977733673279242432345454692526974451041267096337384083818075027585466512515758189662725704200847878456743155365215294563444434128405695065979742564206374929775464600355036130262480658325290984461828787206313499777068814054424328048061305563133593342191999797293230412213452423961059725628368092823201136532324639605522533308975793078619233255290469863495458753876499429121022210297602142317124734235154781329821315769764714055558909598656439301566276999456465752858856264297480438638512596575130773356591501944778982661511974225949425289989848166197226545493145633424793417428397258683799006788116948112233567746324428133259106158703582655536951474715853986551496771790330015728424723749522517391253922416007233016776391655917749220971871162229575061664737517962616415233839166357573973202487319072361319824794918600188201529990555103200100465606895006215395630070193899521460989536840994630302686484027617302301928594626112097274241927668849478192985970284262442250978729039923865348923659900923391861101941711648307968818627199389714038734642230509219238577130055351897640188534439523494122578350596547032803364788642388214984871880915848079049605445922210684424906741785769901381735741437636048042711284488789754522838579822126635572740605509213246837326679917455024817816250240726517496217102112394006903734841875361675458218687743775346556748198678381787180045903286802160575751529695123203164240873630416254826537611024274119108308723456937042250197521892376893634552216671603928209091520384252217797108760774958815023652661002089469101032531816722329145339472390789903602928827169812398783380502371001082653929411167116521582302829366100121215713678408904742581726864157583794056259445491309579579674819839617303911231298199972993670679112688846022805347735725253222062137169093669903149582259006107922892896518433913521487216805088379322013945642007976830632095713881707024007809530085722988852145107211925780310403728842714777161226432779446651951231751283879031927603980597316515157445479157215277211453050223084023718708621817415008800454104180210456440214344095026813883777591576430029837059136292710138224848045485317305486046771774450018351983911899803503188762067008472661129471043857787377255233453626918032506480005945839808678439548682993020404092287649125180629806814607975201464216765973593008917975338187894891610262227150449530688353678386087383555101113407875715087916542850486803263250802341071070964984285097199233348343421338648715853527773932390804291862817118823876557747505310002926184484301527373833174565329419177519157139407829442338549543871542442121059146965059815679455630128518151398025145261894603621691667475105762442520100962541222620976589170601886605716183922491448500599319635965288649821655955214253217497049878694677907616729016328656038440911624133632270705562828382083894974687405420915984879215522291726647073188906986244220708163766924135344873934617449736907089125165820825387166721718542216863227992803813860836543656192805520378851844672705035999672813948184619529774468386344108201985893699834090924786170311037204168953373067043358273243679861917162736764144651422103323725261446425133656185593661936338983682034746206518964342389842577441602623402885458129065240811420429294587453516646214791542397250004938585931073964830906526756782565824493707859559121560031583948277462542336864389379725029599778612540166764910369279450171469721959348227049027042387272475244041131294867621843237790879073853127516491339533730439975424068162000588574625704010243496681218425946870502755763793924221974575894027140217728929765623942363780018136598563937539337746236878746939553175395739127531070738238719029864868138442798307581450584583225603809078361991021007427854453185860303299673274896976309449566508257910076695873240954098214173524559018547010231416853883288942334133829340740460787828128079277478546362182308120463399925019040792648708003775161468090842249353489370704146214811696922386236541371169113239398343870019856689948587665415814661450804818508523061878601989630483202706587808367098933201934482383498315189928594620444272073827334394524542875908135118355954495359806445771115520293421064260215118168302681419285713030107264669979746062285039927887866691204034892573092056571935368765939787381677700967571050084645079187961256773857900464594053044130909487874945923486735172214439787574313116466720451056396347844751608279143910338868318535307774374824156180370776289393056820835253309664832917252548607434813068530416492110610664383800972901643819177172633212271865983198639517319022950390211278707286133114390342261560193669865081123195184964990178884076429117374717369862886931224277553389089340068229703063926194531202382440724804490427922147074137403716692964750701989752128156459155964341258134930735073792163708953964894972190466951194468275397604622311706411960023533541291262189259514272335649883613209254263408456770296359623797362467003135559489876561273719082816896046143259238515172242304215776960444163995818276972972840283216878919568867843361412164470319994477049566143738377660019594082100390162438696377284914089678961177589544425172693345880988853777187883351047348128996267407496872819999506630518066503299579258105733256760018282383109240278828228446920090434614275389910730648622739923421833431623655617612022350199858763705052508379419337624345174219239559506165272878190980923628274923073669323378710715931605544137925382233016077437925396317010527713972923306515289944336292308737624127012286452903455951496944077284199277958641811279916192794128953268024235070495734060197989745660479699352870675294558552085912132016486864941152120383553567689251242311036956211460782067914202110984671403458537434001328755509329219505391150380808001590683105713587204242495905722304296994105322184127080063613235502218283146305285012441793627249889210593292539021405478493844946389884916082823093286768079461323326598150583204525172740803551549406165229486716161320927440854928661489022321488504807299206493998744066058901782487992388065913352459654561773458760159657291984729992456785152006992079775246892617580428519648909868268660225020177341646466573722780517973341727425460135049597963731780558275861641934706110917547114637176171248632312727526993692157864594052895753474345752538475059280236575414002853631115692526467918154630388907861596899456976104929977583304628237098526966798969225533830526834884268241467065951216837415327205153285661768539123977808862988029056145315933828782049764009793742733400181199401589646909506017270406236144512205870596286417441835872518394631965065283431637231375391398503299639163120037639250982968334504812676259848788658533500261723373433993472032466424680353721528638434425679952943749549808180444761347249121457250877926486917509268063355884367746563035568356087809331522163069117185152133163249524991897231111067260293571104061300488467147497623972089511440784682390260797435245704009964887987355657771303195008971191160942416402652919898310177167090555993592050712037787885452227425498762300855930698125305559020895530395419038571396741103165912468864978506541159644477210547896312404071250060138568956149981335632181937533225137415490521048749048370304182543951574497732975554919026332165220821087963783191559155556553292639245541356921569728768221352203713240080850073733566035666571657636324166688256800837751107699518022615571789831962741972046805506973442043889174018648610307722302014000611568981976900833111790713871348834119883642738130152019875901212934053005464789976622341742206169424087626533686833889344612197394816399196288076763209148444360073172441908919008012939757266145612649597631593186851267165819334368681651338122354935848575222299509181036995508467021322660971719721638991738691121614104507586028081149026142230498283514903465310430031598595612131219758976264589583866644059655743901429680364529867636455758139122374640976070328151016762504863501272309122040157387732583754744481550090552123175893444066232295950891328779662481399455944477953238476237855611302251339247231473229345924984113003586005778546279605129035190959273093279877035344773286448629267037054446025157313395049181080448949650963686536905437379064335993991266152509152498046377624806703148749944934083602341060428812281084777065152753746683695612924723848711447418912640871119952030356566586704136419941836187113096101942170056847773452878580988659906519966861156389423979473785767582139391891581006320606637331793538767427522711489577807253479088891263921722135229249261190629402960305560331862674455743193572851840072887271080030759737546862993488149339030842864975983403681764413404407195090649418939778076883164273923554360212284269978681499800776161320725346178159896279727346944855690003161560353143651092664681781402918477846935465215705711875059803657806718157956713599572736019060544930197630795052624566138575064650636589152270495877457516425243799218070530163452733270994512776133608632288710280424991857761318303008149901537445006848661720140486267097967114304752243815342130710337116660109305550189072378118465666081152904013355111428454851503308968671475747366315552016489718571300196507997688591529536182700741053501230926528679975566605747039838253832919170380393797141718292414172641686345898358536965909292017911370991641598951602626514127255166666758804903885569942810388336416211266468333025103867902008383254540491579340321398073864400470315772687694963894301993091964658517500783978783562847559228332590774271026424778983603528185456460605897810113735875486070164649109674921926942576053690601353579458113868643415580049049304296554776034757426985634042320450418427507252343773023920895234088808647294753664490225511014566491218704689697240273949285310921652562775430844791777652180318224578377844542079520659432458302452027984483960796361839595419024842299943326891066200638532937323326447185872103405014430061083375640479584974163434123286312548070022804677788720490665463629446848239808759404010260166930411540591876567472857006609112233237838981900653436040345179968720107229692712022261986899748183187173960602863525688956836859545892232438309063354245875881013855246233861588423905109773950422175144457515118335718579066864998133773822100777127112363825380143160583672772008760033856788943245714110986153646963622997064721828447290593323243941726574666050976754041160779306571242065529399019024752013517457918510980761179057830423667301060417608287078800996544584604324683960847933075767109461940928286996615748080250956464020756346017365313558819129605227915073505744059247690523972391452626457620047552864570043708964645437772393774035160856476226788359337059653480051023615454279116291532166004158552842921680086660600143370688122283534116513443073225798214614761147473594201978751305361750054140514159711872560436100912592838820615555908274376279732439892056077455701730063466537881951921296572936352841388921359996586998047934253058235750035462192454604626636860000829368136860575080537182938656614421204271519788393406114907855069401201666436745395353068614616714000788257812746216950899794047081811880269590726139912072997607752513692959715737677702575896728809257071740471155221321191468849161692267372154759713039850595164408287300226221411767976265520900120725265538388195988551260287348458018924592921750917915217686830472336780121359007902622765544314337613961994754548202659970446375000898073605495943679503074923293452520673898281880878701988817267338706183520896181721547137449234218771869227616564217130605628905900123467804852526922348871840362620004220939162945025360703633517651232403427411569812811074428735819855102727621679165770913759274563017276957781244836752087215227613784728351336861767009740490357787134994134876454952813712741435639420692767149620271829890827885969205365152248578858178081934205941553620144688693606612228821739635070232102426695752870830452412885810138956725790397900665570456830776477543703243883860532588053572335597184023077918928471091169928350070636634797948386610335796517810089822747229617484524989083245421531573875079974380493451814624439768782121533337933073624526151053048610478846928507774760044139559557618233067280929741339603510125121500478702223231923516282088906326921913444120175578492036164837178856571709781332783420830500223992044184183572924992646526538062307965760246036332496316651591791732916130839773606799878915463423040346869488460607317526036051973613986886963447496401768935186293423939518449926923461907546524742247522403893887241153255880384201107062350619978324493026234299810202614273156709279647871582910936467271737669149103058811405233846067057553681451374233825790170786301393838495826643405549181213212353585468963029866468332516567237714280256808964764782769771212995575521577829676366416192036242858261289569856098619860295802885422131996748928392124683679715517223403160039514261216246209170719964114684832422086691756540861333023004918408750954308318825897844786673344552629271823253552546872129165858949606160534175688279627236952939666984047625309999153316477744940242587237776076686723903459208448757621708441406720587807791972086974419329802177166321475922693221468625107006108052864491090613684053940233795105992824489645056243559913620560642045950921700378707147929489735515609012882562875504160159673470689367151569456688777506716514573272793993019437604281230561272852364725165677639032669758286399019581410012812517416750534644997299427428398790832888939014050709608215738680768643467827509196395687327870948417758927889963936062586623573579160384686139527369588070542286241541767041918046551004210653020471388997205422047544464764223287058134582544041848553788386614061580384944762410626646104901598419627285424704565876993257270612070533691538069042292370414914380050018936145373549934100855276903277706324700495555420308137009362586086568697744855526453555742472196020161041757776100534124498865271600483941519916350268283120421911051975154271170606028344136424856711788166482138431154732383606211109187340029164871909388325649015173847452089415195551004321087426478277465459488174662018295925351172619825632309831320818153520957525743169882160666557741181453221387020865371693124045393390452966682050079670860297332752128334205727813205166505780615851113559202554783093170947083108190012023161679861774668644551733286264164155285675073144688179234459243572126876577935365112879147847241065370857712163398621959261627946343499207298329518204863560262762647737986135667076335401470746980332816946064591838923451645284180933736144672191582407917433791498588984310087613288707961105711937539302085833007853255103963696393165403505973711570062401490149655380317435981766411227684184203888263041659154650373821889576148928326889151570175187125120459567904291302829189072527958737543772389426371205618617249500520704901305709793052043100890862375439025386395008260689602812988925859194172315402767826632379770754142126061162967538999919170447554029823791100066045179587896763998708382528291650705594346025255207112831122325936584216428886270022026631613511238555598910606226766843687036059665398530238722224369475371525330791391657919821649563300261917928836451179462065582810833360969322989938777784488278617617584965159453597639715674807982412438956620135471367212909548032858028857295366692497685534845619069950467630650471129355673270628772994999340473188747527732334096002489339070825525621852249241470920195074391408355384077248468144299824810813855417130688647475768115399363895171851678219371093629482138003629878345275987256595545786991000792136053690303402106933038759557316482400039381622007592886111333575399825592300255539438611423041278268154177745998102115772663150732156323044421140639861147242221191562337521163531863504856598958592125154901343513867709113081426745902132832355090437082165292690483277465110109874236736303220817222400195793132750982889847176826901578361182298428092540546569824239889741242672904615190624501764567951924794823835661620093980422392895209200273912820912610654745914942408579426109001834657241218645087850538110882184654414795370059049306448333328383125538104454125959175707935073373177414274942115969761034125774699283308886719814106493797208863027229038316691399955391878962039625906733502732543475652179999600922313843188628342869331308587175292797623804686663953933495625765281805440395812377683781130194875594494845508451277255436692917216426959992869162283257045191849916227588139663131272602216685632946650056712481074719119717073799060651491967305004824102765244835755137802690849770233508699573318969401407092133966195713552741607677177255566318029261899614373892166537026809720607192768108861692094271377233938526969773409185268606035160916464948013790573047166168902048691166745809892351752528295035885724408076783164161888651807976742654233671665015560134183057677813908235641537791783301120510492896039520060408565431289007311842254245373876301912481279381340416780542591525805209406076116751899367793727188263951383990601266525452672866592544910951869448986928432699763976335179674471815977794226897327184542117287445928256490493478593987241593570886878592975354224167869960151930999410727630989363207700547598527896698700686869089862249194091011378635403504974579061050289702204858401440675471630516275705272148322927279850760926866135767696765667568692784457192252329447062882867266184568239458488430592929419971239786046861885497344463951908912316848395847308625167413618247094595099391700384937411141247043382305625312023586380076551547984308529411053237280340246474952212577788208109986855027159399312426738067006137128072879006170035606113313003357427103218794570737192129460203011634106372604703896976773567972085906286393391854241578734733614378378817001260174288696377642521983640945806249867495093913716641714534332049162452940277196212846686823027469835173411800143043562527657142638916663981883157536669252442741921015570760727341410647856876617959575044915700092616547261294555397689888254280576985882166954330178021999304657966041981905056634293350228465374401267800635954354369311539122783895711660777874706860047117975950312254908732214776538686598085701346776548137264533394325233688265832090676468304807464916643220693844647656923800453033275460481550981222120478492036090723059010505085125531593940825467896875103291084464353362577270707516381730160949336610655270691031261711555285490597061010538252926931824953311354888192532002870284249393387302818177112002137370869152870540508530795420969217920659693086933341264455408989742359396551908612108573325798811104515122227200549220585801782608869236667899727700313050185458454987011197730182622525570830390537659782290022271483794500878647861649733007106550222804312406658794754551921925957459914985835811409942586727014147839189225354212793687080592207462295793517702149143449884231811072532548218083865915315434519438337194142950661348840362552754786774990729210280638589844924971937264510401025148964547278055224201629856590147133326919207257512732030382103109791066120933918405302622575711950139178560630706070365990877553109685257394554556359777432314367624448459456330439669914674919015059471336641249348986764400065462779085834867268871140356905036089088513752980948142693308874902952993711943960246379046274989841385257174118947032456429572131098303311360683288936891743551547712678442701204686710464303232273776480126890720205631405631164005696876297158977999456962617952159005353890073249204493857580299895465934973582084854203086408751705860702765286252839020909328881334014495845225277731682440024096809853684469681722465347447920177861408226744496916863929139421621628821088409634566391292090259377334932887362383180491659352460258531501131230305058148698636098405616637206832295429578533656309576202580230339300026276858640098995989096624030786267332024671150973377486526120871134306260898597956069809997044447199644744621848144118901069615569497945145170228721884520932412724111418019093204565242957479652157971471981029929935267543781868161630640776260975367950667040606780300951858792117212654988096868269219429264470925530874140438038839062564220769296438749515301029847670513790498378797031736965978190864741270609723651921945149361632139127512123098375819224237061169680408376585930066798049776475259337708611826424966956297281391695024573465775667326964752751403068516693288953919404818674921928151828782809265242135053661403453300624714991169325934434668975479328809093845875536750538367248366728867689319179016670695566174538869518306427001922056360643524582981708613881164365762491141331466447038758077987060298271398473799973671400830975114845238461655714339248964744055846770067117450185842501524910502021917401603659839165003487836179355226660821322595361491658611811757025691010399127667628426123150990926258260642152102777776403836560903343358264662124927757540399244250510020677788762921896514577762224706905686350147499573563020623715409323387719940199833114488966604261699165159645295440436660578601698025410766571575756543389813157272701174872003581056901403704778183755723318622632370076428391161262738560811587900489272373529507366697185284981084416231981871874227602719701755358157627200705943332639446427619825190271878274863275824509748284042716318766774824438252468834850832458162397824455852317578698434185229759729656463371759501148740618703774102143470035943136962503470075589514173754656903463568431746205482398037966567363268631174772902567862460364495303813523233982847203800044151696045124172591264018515896629141522735199907131966784580894655725574505703514656553446560089862715076801562103596671457326492901894155991899217685312683882083321080717480735726861142200083018481665494047928170714682270993728265407376068418724629567491269140219500398746105755276882244723724133766115472320285723056520208748798364363936742667077633193543565554483590956125456183665057696054639669358490944292087001576903932045334231426792887612331149259698137059196098859257527803715320053617816197878740662024046065064512571862227002700892549986281118269977117839893352141408269067389142403200631073952772595369879261182199029398262437698816248831336462760258816753697502570559907699167756518913160626117262138585364754935577448486068192413414340477282386518238353426438189956160919160775193602561637607293972763153873850164343218684852209896696728947284936430143815953250585334817500714418932345298540189881762612532225959175232989792243403647217799496698801482887325358614457083713544057368483105014248475043951475377670410032830561694992712737325712561442670864894415392154757259332822039920658668271305783484268784622727053245093335270592936259011488322826174809671943529988244049136890771250981660260254119452842195085241404840466786296011993756929857654352060845690605516703889394642872174396462863177856258180071137083060310446706747917357966314309046361390422039839909766707731687867275626840490664604462423118036733379785640672766056582204835751453706781934376070460724412010490835105450950629630038251680880993134820558914375377372625584171850402915251440323330129422528615050312771462939544186871420679645558208257376756650742758167433139691122550751637476555793946190469990763033850165482224797048030706457069431384927802508195444656512907562802035339072811008820420497096095820665204151575217999019419678855920152443162654768634107880717416786999872758174811934382183066291622867673932924730763204399805430254001831716036130042394716384527198986050058818207270929285124626403008939015590382254250173101448874637201331669222371644464540474897031165661238617925210365390105398200051488559624136652702861942891922697474386086784786208751277565999639434147312426825481409436208330965511051638917125566533301100927909474542567635100866076552815605261631501737480542165120519984815953777502787172107737472247225866102272148516604422742561432877525421972628701373452155363539306702880718409003938799399555206259840609900650087825543110198663082866621330951133508912415244629524885476846572378476772769064696840696590089383836782094776826079229011926049656037721252370829137838989947396756576962181566710804452070160770731199494916094480079114216915958227230889134179393726019025502826595445624802554664398604415013350832475378394503475836800728545781548496200786707023294266633185878308240279156065278337581070539723002777091890164150768406137119476300266670265292459074225769397500114596504265904914282866351055689346788196960515886222930107638822790453539030923925047917374621476405307898147666400491070339258692114884761617831916269746074537621274091910224552746915428649712345256674166133341118631342632004418925092089187420355650128899255134107627177646688033133529208072467139192738040889953848477111626101466632795251591729833307719143694356383524754735291565013112726707864450460323408741705204979630315200886630899456612892236319977406278683154758468924090619230308172360495490254896635266149254328317848509394806456822305338388683504151509872036225070411125371046822079192307134811734126737128639325992431391411810236383209508884998512488996311706851417536269155790186789492476193833272082855590007530084240999308719071096435882775984735914487091378808788268012241758218927666626404634703958528244458697826732467962371615654406539984488440223084830989216486058594414341009163854577119586243550781897859528042909051901044803840058137552854246363066030699725357179543820475089724997964956979913476323367081896485334846080544154381388871216524593330399106881638878389172591669039932642644999155378642697805909236879969668576028892087088171804753575863396749403334620527417897282673598765016457483330066393865689734372670523152377875342411426948525122162773353342285215840294068228087430308944332610750770117244884601851572895657090277309037212517462865002350748562592994116885160992490117933079116319399763990953063725971497350400633477692517974519757132179062153735806361220958063093420764699147044268148607930706412057230743311213739583000487932380284063653679764535770973803587177385325110860697453440277076394080968284382566070670224149693304143761832195605672506998452412799454469170091687366365987099586271962887450279386172515340814620087218287070552203209187665146677649912805652925979981183645511067875752717605494761552244060877379804113502986102580721166704705896338955366604705708889650605564127538689289702615847881919213891952085014795193241203122848852107542411406353922007738399015258199277110508522724873216124269682951829416441292076886684588938375546813421364291282119515109944532890692934911183835712724472510841979772176018058556030046517252417258913683886489979743783102743763941432654269959223390327686631627502286105845929744104157664698827313489867698775275560151067164887609040712525945579317872748567452875012650828316161710220534807648301019970467617879815317372231531635420786225403098091846747373214337575137087924967320652813934582954173297924472706150087808986893810061607667363543602857837332211447681022564325899934008112906203546390599150797166101951886588572011802541904686281616487138744558931466981535540989998630971529863189628220776000932185980623217922982369499737788416569505378018385707335476232474697591974369413395251296775357332909704780761398600316064157752093923754980383450996810065768484861849260255514935945919074623519776071401255010863448892083956023450758688184937731181894784594119668686057802518974093056435302579816658306862243716320521535555539298236760116479503946586535644010275899345306394679535676758507250659163875165032508312672446846119619980419835507743859841989339380523023482599328347426722203327535800696282647078542556438459359150623267648286831924179154681981299602526365841944096753503335140978798846835475384332034223881142888055176957467019973052289560082349571333683758123427582265864136909094641287763628655458087554979688381116942247277568898680725026411691812844385085948206475267093188098523640522390085437934514429630579271407786778722212957634778652906426412143463193076836930467252620537511963907552755563717741686121830149989053693577814004231804745025107919864620288414792666714579150887419107240539037682453908277255383885746227721136506966574709661201735088488622683166429677527067773944105889257577624838442442903026972621334417594646657211320418588738376237364491548332374120150332670830976744875583863825742798951974458964918233995232181579335494301847712932978293925411854327272667882400131786612441825705690767010396114227959914336542961725143110375249709699199718253246199263947873369110814850404900056869344725382079601889723075218150365251937768719894605345374398338441271494841543442273923403012194029982590419520390166417089455381026485283453563458633961959437544350922237259935033352219023421592103983870414908055651542726372184163505827665273078065049838692696064743226631629996008016720000813028965227811497327371814787259481012799679310364519261693668469901603633432037832852540540885076393664799341126187668689360143328871473974465850939923815549353640494653871815811589780151752445503883158672991929246299614474446619656596785740109103859246296052533146624425618237178247856203993271179128854272404289948194169996177556128555065228761927762879871733740471555245614017401083849924750909021507968583007185426575966445333838760722841380301789290415423586318002051839757847874151549426407413752282266890244174405467019078235109666783468686976723464721891314423947732073791600445413925673712138812451870857048844479024477196427179715808080526531208351850128011499657982495841487127390578196294021507240441598828203538607010721911483440368121637687587252999246326335417599044682674196693069956671067897150143074532971299778726446234554678063748331895710470474163904402282102017287843166522081380748734971378105928923857308157364859642839330546073207132975368797566428531019185808427819126053029473891955161279083456590893457110720366355852057931223439736188085331606584563933096086271775522223399513416077633715896940338549365703808538675139536941391131794315176739728175281396834835119779045825403478057853485688216571251341600605176252962358993405896550587522923989188141640665544247639333164696666638708565786679316201050133243557800456463493445243288385574010610525915589472458720115935498370388669782412484996103758371299948483292115947698610953424739712356308429173823835440985214044154772670655616083600627663265649291010576494059374616858163762810506450994199217140921763009013137184572625701447646375761852319738873425048072718601049684900494986160094594905745204659272941556145147799733764013130480612763447521078501312280047137178493801748802327656862232775799073646213102818011375598541675413997042940351466472916906719496803015986515380334113662120063300439035443091963753446105202978626245604476423840669805739336865885353921442558124433797914506126084501544095828000926856202292444284012436653078457235658895308690812086432172723917536260070953299757010888499758620048648261594150253858814728601496224429599737010281002884972015480638193404614597021788217116743202772182489402449606018675880090503227369855839744707314186636930289680976680012941103808030068879679200287568033709956168133076886722697529735781270430506287264927340721997568048712090603910003445384132192585598492339166537194533246382016620689172348580429993833348689401756596973971283399581263565440910368846562177352827314473128812411885425748951949287112887497282435012762102562455181458617492438307292501777393727177703379353726922723260524397106852839794776659567916201086827258927313020781644537021095870558541105830264179548403901196793582195916891690743889464577912928767868996446990578266068260878733204847125602589446581590099804640529556213995601349636363253892955978696327446228286861665239245433846750246951240431929250757702549809975776898729704896484573915250906235833457428065212741461779125934237254984335926538424979991070463518040056111680254936001166964605564638595880032869955624879747965233771742389641357456144403452291827972644869245075461360531382955878381107189089532149839008495010203810009845827102454673367209261647417107554571656187403257210070997460577924618796328712590526771280248443489753821389507503437371446161546828191237271005552329728544473935471321381399735047392674653557033125058145354157646572972663009874706721172527634135786389144361676362159270716959005904045291716029133812662364377795902292163622849125375044387987757532552043237606348299692606039547425184306910592809615841724911221541958741967749720487949954051238367920364058265408843148496117877628533553828578472194257023378371750797207683512663105367506185030849781539325721518480839670631578925753808536444300445078928086623659919709497861495034355624726564456649696687623071955591296887859842808512984873993648550419126658436478960535098421671044725982096506103479379513408508752926950368437201788466333285070993897583427653960602057382675784748688228989244246032405586725489684984440819166329330935691810052592833770855409386162782649935272987219984325173162958705390491267342478627316458521911301503034347948897869654309602863859144381829353734304125830761640922326764279126816687913566995721350429244151654950136273828904271648736710888974273160948072583965525301435180140057817137939148293162226579665063103603667242778826000179692641799391210108516698113418468610830879535304093819560502241328384105409594758676231284939035464383549329611587874738904134196889806246426793294975787354800963350135072944873988136577068697157992756773041268553224205079864357794585938870269638481400761218268206584820542009186964600430920728740236128037943986720768425019487500373438655252529435123479519684924380478911207691472421223489108984138332201096259834996120135609324364578178918474279788512950685381104398505080627194288890128722127828213137268591324808971860521184999025132662223937083772450220924286809565312669699978026208290793469938269927030004297235754388075011576947075616911544674237046642594898295970657422853600864061618413244563361687373528550978200857882153247423980433233477587545360796991315850702743776567489605542358751366544733368153882450000823872600531278343547720019910879471716345390055959916277490845483619039501086676876042705251104384877588830124307648662918071822518816319023807754932914029841806694214107212024205491295952852189306921635471951231132455190686547383297673973339855162697615741156390511480675830809162347260419931737260462735463722124807176969742059980622432448196848824232495909586121741816945118390619338107698702686173350506081088591700034814878265319137502884147708950467169580045972653431292608489106560748411660678564037280240366695617148219789978431687355316010844290577886171023245735513698982285963994484911689962983235080878039552357630061903581970335637748057553356828956488064648181821808440866063452155162247873820238514684940318020533846666040062920652971580116081257873933865519589346283517566368425788921758075710781992689647223517858277899191194901625432717573938806494881904343312389597655852472201124294611847795509878353525208428421757750521222595615828998877800993074097197750091695641625947564893986040369354927243670248545500510413437094862559326753807354538759783339922724500035596105357024886560120985611696915744623215922216147705376673664302130342400141931262095082484397728695928103351175763049396937400955599527637625147382727585028486798127906369051336181000383267749461602382389402964348722479553775864730711590128871909980053020041868317921313760822425827148185586377093078871145793293443364189634488733849096522784378558168256977753763279048723719843788215933379324516795454089400772491732744405230717766628962916952552575906382772256051366420211061715886702119596286472285530436242394169834591836385693142786636600320554194311129684867819393615232111398460039358692659669891322223473991765497933319617332773738608254649956447345276645018633303556097688453674675575105775187175267408201822237248736139815509740280608300417338934521194339928952269653758345994830806703473645605118782328570852413340256167186645883805870593886114767995834515585688172556230685786720047424319288465701017446107569171485168626609919352384351864593625535978320556929860808555192539028128146428279930537546231688295047301815644259469895816751753389365648391122296556432905225791962379895123019257891300478726800908224958316109973604018856269524013946745896635958289768510890278707684584769567984438351996694724649078606867340254626321621078393479419075210275435336672337984918544386161714216343278216545915455473398057182535227604719236313564539192889991197295296759502583981240837387684290661007424713992861084525056757640248175868379201975439905013345242959979491441428050148009023542124036136000060200102560310161399755196036538543881417204570656752550154650928887270765808945295425641851331797509727579402145431968879810127135426821651915893281805296597018701561381810846195242019237701468051091047030667189587613436763109833451226429942497567478086252871725373981920386569925115821284958498333981111786185570589216216272148277181272398521586976964622340564162342418465065763046701024818879024417031672493559996551724504255762709577912979737391086899297292036382197550970259046465967753108793973541225312529314522453301035440425087502998589050189095487936891079112956593993652216734599356320977383649950104828205852525574488573777721479297412156944631510670434094399237259858126170362340020073771313600915345926550427607249638221963804393013579718945447943023881913814441517953815963915711268845010980441864962004939561325804595237802462568436578666174110327197148666678192618538571211208348523480924542772952683986644234681360425117415717130116181200800105355199220974882762854636702102505998149584660679538399675110069912630061353309283273371323084944310520491707602667953108354969677933854997091479909814116868668438679387932900825109611148919632713028279773533639758701261845900535408169291877367254917753518374383948596193245003431978779081033001284979484327793494041284872075906343014210753008365018723396998940655781353676694852701421695653132145481006881614915724688581265179621052732924557013269085978533830622945980002986951442004583856429333777735417773519545278901963157819108609945642327178340052893169879176558093940244774390608777178532302668341013220457773343919990407043268067235638360363806945607695203505882924468731335374418202861128623870627618237440602372881901139743533346014926228718175028045479987609018078272519441680935067304751249782277665457066362812477392912114169388266981267765272151087647921376754021648187753761929170761873366067624510179950561121953662800044168094386963314284852783487380482123898058905074414339638584281390098806055942059120376670626963821966252828411916362687817940082558690237031308618631776662006936003511017731540554830530319199966256185232142870809854147044325137267725344034010109147928357937565773891241007904680091040178685608430772945214359351385066529346357462040955470786725729702423229563926777674728112330156535349212741321810664640635335153172589912973785151562574179292038424347787108142645892010709552524462927138187520563795713907452970195294370977166980094594164738898476957402822918665120744836835085961143044757183713380577298695405026600746941845164262558793366878368682575712878368334677208730931084351942808037012439157867251115820380880386273958922035821098210882670926659488404680680898107039590280439015088373378755075567552931035538789546578091943202592560308646710386754317431565112033415871153743467912175279388475059666829175529602557322099350990345218518444863589016662505629629383350286621701048536162023231619611841460891926107411632442649427290392485802933291839404363551928014961037102143775635948048377868067715342214622489707270126120657215202621385112971076157446992647754192827760979259491603619081264728095514626153000279752680800087023239136414168547028670146612344681434837875290543498519556062966599505658534541573699389242746666529146911307431772338406549133148708413327622964406508315691164926467977579577099091928576217062585547588960657011500140089558488864433728223626380815568153981121275486888807663653249889740698967902616603859227807181549342232713421323737938358945220380496436458498658990411382080594074326504945847706279601216863018447403870931263355739294187294379354649471309610997799143253617088645630848611948661857805211325265838497582402107322840134893903301360295591761777413033298191107652052074847121289232946985765622844974668136472043425011888406336915613789418711841496640734600786458434193206408144586300287130705087530819006403849913670407112666383491407686989019478712702318870088380938936975082638058969468400352870965012332500810988947024203545758062980902659219875774111430274055708217257529369139878398532485984968271980830935098323417455086451243575991291449327509751211129205323339628800081836118369038256574964367314655927197227815080255085214294343715334358546379211482814870496288827073785544645242257076955734215964151712534802783786704842567945931397307359297668464316650063985906422377467945150160843602795702517420221392311531350401131164555307564545535890793389405580317488851757386152719884718074302615295334647559632186349152427750456454739861218648118723478183489594702758374058038253155847948362268357120430487794107984701074401285701670112744408230526406457964774845044645880326882415691760620193325412697643275679006889222089753238402846422871266088662209594028210811739127119756340653596499437932671772769675700519389105699162099111419642862879082329161368982154171325082733867375739344666694909835173754049605871924151416897820007639950097560714200562548726902428714485885436017206123009874092449061722624890800098473082264159447959658163701977537315350788117037947482247632607091686310269420935411100260938693942262971436573232391840621363809939432740116210244161355260144089488344741530950410368640573409994214304052394223679836549049693170332578039432493226433633249547586673437897216874259923357126599201812430709120657180528918408202118446218072667244577145941012850322882416521338973998463503956747616401789141556849662120816548287102364973488756826025449559826344537774425579038074668011788543125376811999155239546721657862352992956015579112269623011655406211638329416378098518380590923203062334335910666621937258245085198438477998282721011343824372483325456358722934751541225738612081478910199810940751198197235460628745880679314661455019387240985352949670483086545934105116642180592805215145202951166184102357149906113931280160390853429324098563159843780636111079516397610985054241850266079579468267401079206432915531715451375291582966907575518603086493007504621051296158599980111852996838068855002480015566272569399959220090955836185702737967011475788075496723864848502756364409026397628599322353210809486029102643087782007319435652850607837963033614825159600339982522992358591731312664354293181294100195836439134783953154679290959704416951824791582289600173361517080188871935084777561285310001583038178521591548138314600831785254296259188938975055294764107608212583520036779495737865290822839533758404294856272485766332888204015573886939215056627479844379919271120922108340997471789284545419080612862431073867150980236969394836161504966735737634820136542320052239545445162058348783823169124774453524955434778941755671673913515877262086480453246082342999013527472918613021186395035274000883055740728472726379461154686075967233756060999539197284332996322971131474082647523295142823929540701285832419576261476087546010252113675537016013475007968449099767211296292148667148113064568080012983717294569653961145911283824194448120563133053395003383274547161784108832126263573466960117907633174264321815820042378508124884377507814263230459802163124131526029275996146248692020196707184828203003495336201523283068626917595900074584589294753332333674564165287129816745443394982831843103172857600844032079268437845372460460944829207993549980000636897898185369875964847805668984109452257193841363029117227693972918289517062643652720932521138763614776230568966850464502916895951606305626825487122723926310130383171463754011036182545277419002084758666320626527079945019401519819109228870538350748562367289161966791404644387991678959347993451906896180752686740482257814712326251742464782891253993858957577586442732061722915752780237417505641818863674241669786006760352004059456494614071599478279211616871009523183651710730816648638713832172924241477651286461924854752579003963760026890832264080781816163412094156328631496785000948452423547197015441533784472940933114717803918802993823002944157244266662717831879277689276307139778238011662724625869132193629380179396344823431890547523527131932267508998895403561107099320853951717827660464794934875802268690784704636337571005947504221206288886017554137012250126762069476572071737286631477182936140646289341893242299069995867171252045422945746752874924015757377460906506646903491257814828599285300985907524895805816391838912580296310661565227974346695369564071506645479152484649430909699361994699165520984861289862332487600753844960347173203746724338343010984516977390516863670123612061926125397539358007059203302737593304405591571267347602595743188621857239080364992659324022212897409688752455027864989896260855775865651663013783195897071697938013595903945286233663267971061437018785230697791628481800441164234061384064943007009935541012360774329874882846640565784076591514100284995057532498688566950918215129015136350929887221816094183859949882860769112445889177277602901933790687994100813563974291782136129831018794282357145099009290288352076931631224073994125243413117928851504698584893398124925575116328397269249404430112567806149388722389186873521942678562166838767500938601166455245373898713314635826782150219681975669071151719909533787917445490622642556410553604935230151538253804420996045742671439992978143578144962288218082086329320866308762929091945437342566975062193171968007827432752906086183635750107159536777500445419207025466102346417521579564062802015087564712943129029997741750911580298512429336345253042276801719491950338464081073252207010206110732093843480257168532954907633905616025484403009322892759054017559916101870910425865840816766726674139047310504307611383591891784426517576325641194974275209955087966402137745367183799192740432788661099981157407064830262750362661373207939101603065039618430221838593756347325978545113911046864542779077100137274674835648240191504659326769392638716981995834461195361316337925529321207818765277546530333352077902723706372796600184786997434868252154815251484730359143024404907112007317129917323291784331078304243440784748743034700390510733748462447697631227614996490485344641021941038268578417648551077909533252085311124649127989504268719268861557242263340274952407080345393050956986430885246713437731110043915036155411369364013288777386409290489838903620932284302165118699365480507348718467150869243438382370193506864498672461634046855002791889931331045401327122439000747452689034619796290097822497660811669821130260618754633105118001065057010816093309567332053526128796942614915483111219907131298132302419103526976933277940750999501244421091729457613609819977015766652787254975648226629280452673489108745851548394302244164852446785423559241694985653037693730630895303243823906555688623326640992294035736304975300063163296276399169468228357498690659210873082388830960782486014162227147658705119230414837024048195441259512036185431844169034590227189982300401593452536034246584134735786382955790637509938963016710485299943256296275932826821109363166832288750287604480491866351981930920036305056811865957301376926003949137023660330487508126265933742939394316641874031748452579673630581422034425100156569156015247107235161343120436484130160587050516013240344246891851790263304939935632743978924991229125453477313298720245105332223139702249555286340100854527461012318392920904917336454205662947786688464316314040104154701393462529982265013210919553374514141144831539690920505362486453718906630234426033694253593041773297118494472119397922904502856524268853831299177086659807590505389027430042837344706439864962145969793365879664545263678755258751200202434132176141591037702601273862565521719131675078580213242756191427733130629134983064345356011937720174097078321148182894420193769778491390407317654131871470571589508456814103252425705077570578447549552127745845056126590656417442367212866815183997088160620421437575651498017381385591237920076168025875706714075736207830805330455537385914205480224525781639053236794863378442066307552483814079916132446713054046015595032356686792541370352434877915220986050955736407969136109195727274693443222856029719556231355188447774374617047892045376026515168689843374134682006689456049385733908047619225290419418503521352354678797981020837455537193292224217935713530596660616458518091020808905875609555170567535065474013009521706144689803569685596710229302140231452381901618595116255514124479009684526306831817230194346663193960438245198184273803127888533554118031374600454573912725125405952597705169976227875920021983200660809531370287665445972546012601319183820843829577539444915982555415076051936040081764283591759811911971516056709517079270167947002084390747358925112831876606414873453512188961837376036659907009669332592004981593756508498654750109741802701365970486537076057513318613888308499562628254710258730762439021293068905591401993400634958723753229842203979543534517561460468450768736845168134867565177654755371541285479731123381432947230615362462232304907470764542950787372762472150015569608590428326322624542163455583429457183929237293175394441087437549315618696052548036605670800094030943448392278932286176578739074735986833194834732277843573143469816403341794934679245212366669330354420012315977972538224930590698083606164939013105319530923419959461918302345467263413136608934819620168845093981780209887478922553932361152109521604147143729564105300557381572101279785380490290243375106201101434216872648809485454334105359686789469614837755187624827750406893509592946983513604744950865229626465929857507302742504924116713865174911337445639659556070906906321069694347656909454809257382929513367710801186187370402356275689137912727866092791383774344078272589193092768632025784526523802027071352214079540401150567673736101006439589559693697206791589534348503893812391818082670678538962428346922015304051316115739175146115858175654596789733422948597642170224506028460960626960849799126447642272816432298611472719813924549310411530495466184342117751457993941236409664998506379435036191088381784705532645933459346993579506153571565442433560625211699727640602795465981681836650415195745463982564052300893686338780102591381667060654172611315059230213070248277361318532375683303684965179071891480526927453301041709361187450047858172560080057734562822203768515356231333733029519421691438714430819655500187104637801881534078431951613450991799281117517365326472173617345746512589984203878352551171242916428526017770359063589820696178948797428387066369732336854684754640441134631491291304793684302578782778744384751878303324972100468026514720160521058277340199471493384881381144285593741538125601452281978417535448209355269520528413929096170053323454871162870408636395708347992229903576880020684594803120525026995806243542881821870248587137524067567429650897732996701905106317682503093922494245512661044673142287768490539466169330834258716978669926236970500848490451007261467247347512543600799033028029700973221204752790057376369721037808169016281686495294416409284206468384412115658813230127208163894878919713983381105265080125228264661724517262061773499171394940392446875157022354360532280547229981415049611550624314027235634266158372101062511291903768424696033271727521046817622506041748520192590064120719201285504313506541249171225301578189732127652407229798761415748683953248275044658702774170083563733699850389646489213559310464508361090302531199594773800049095248346631067946203785952289639003169102288636693537964140932538633336356519254433097272153770997768100874626444548171585779010886951160489997628973988925453937855573414790740714917301212664695713338155692152464159583600590919448734141332622182846645837932792565836591829968969132115422406453583754963710369124621242337467706884525259568163460143928829239409261564520980746883049013319783545531716457110016424338565493858061079021786067660551925357667090126124859196276606480045983727394579634668806005841713362453288183753503185700434572427825709961482707901834905548365273738425885455309039524713675299038989430664304312123222296230105815918711585040811434918686321796308734000742483983193788028783823896221294379856238302519930870729407853469932205108435406475227973392520109192285147387829855253675420080321615092235435901515328576018835566644739464022472518940798102514998185842420921513129289948606575877658982600867738911612092862726800614971543563022654494933625918684000934513238045477483850791251696854193389002489243901942747356689190205922573269831347235342072551340716422620998449394287095471453368004612306064169838168570633495285311235984053304762070248814123090354777865284234417563842156960285762834306989979550369683246779810758702211630245348765915257568823426876216979799387194258298200428848901644287256745437945278163352868179051090682475232661639929036320460197577062865786236683777252302444388449699942446845468789734237237617300381606366274815449102992706541857837675178522518765067981194277630877923780361114390257180806945408733132618280899537166535636162835457771564742647525952214625085622022314805961015069422359792785967240201668448757673439383116523392946048111622039805446007747616774702028217797805407625820436813164686163698870762529296841971889331348148189785266207434718403096920714562929694472361481922789507376346450640106190500157795274213877510905377653046354097170345091624292495335005993541719928376817668548562303127691517445329983449357562841779071108042550717995560986173628080722580882291782184332010982272442837618533397665770656738275757076039645981972864885675550109899407420892227745379882624872085285855122719370040588656359765493883589929210337362118843675777665210687492269888183465096804177986739280386658756770648427845105739889015306972394939341786459842317792029449475220492827488880995692660737948502810064050128049398868860115703779929097328885138179671785251382799534414764161820974598778759256214229259162376594731141655636247036294782077466299478713460720201178747840939943191582265184281897867076280516651320540602136470901769987751967269959897955655741330016209058109692349076227192443131675140191659943855758893839443129813677755158832677612806570327940086788199312515045796839706486786842700995969884236607692503121827494000305050783012535614581774376517369180705163489207610426329555035129417657133569691130690234166582795492888132452663751412985123908172397171001194186227870426196784468735806237846829294668644032269143505600037120959546785594817674537368069329061301931888102767656682556513207791471861180376039292230883677024584513734332204216137461873857079707772703517056270815796238315290207219552756896607134047916472686448673708110149686586639764653099231217561536837991583339073160404871971816952514465452112811148109026965827592470492945456139402021391714247205883137814563667029966349149867933892852693327716158420347005162629807566998670007530507518194767255031530461807862110123085005149426210308465872228941875705301276535643982875097809539321900627763427430358896803641028790835435595835162356862178961105806639504667721001226397676185143912754297584159061019506708562993766195136155434141246484360828171829273328917582522576954661639805318297739299511688280563564980700240914312697345682277390826143923507507757978136843034337827688800271705850380726352859759409647804752417007476013321071999150246357839837078756317410917536904434184618993760780392246129795281434088906950943780040316724434361961025407204186681033583211706778975270003542853749183420336569016352579732269263685420860287215962923111993009526507280332081573315386655416948485458371653875779338901306700044250164720942674438987680836998123700503419058859261023724350434642142754967690290018057252607756418270209980494730948849279206734958039175071726541734351450521300800038047787488196570075010246438474498700211350607794704826064269695375967563098068391885213809207302914696167288843635606737805983620554022087012466429278132737595475645044153313866773444083093298322184849307009277909658272380841312618353386782544705963266336372866811962287392097092618462054223439080052334211855953403850914493536878925176058813239658153430893312813963705244454042915141953458393919084791367611318567841287888259831372868587602500088106158288555908782930714058622247848796486578185819694438825314941268135976049124811546092567097051094180583070431825034962668072223906866737930807787374295259875348647525638711979359398737311851559860517311320939963538701185956442154861814838411202766810426996246682189407694264108864542383884979111257596189805885090148178001851339575144519129210515621823019072061214915462018121724717162520828284675042747910258489504469339578755563736617102037500686835474621000264487930719586784125799794534016606399531316133872642683165014905288575343324213633104314811157543171015465865798943792125026443271664539091108375174217276351465925536390632223885887827636115252389203023237040094014961101756896201159986287017583758608840259704104405309592236457498113607185293348045703962425208652167691457860658285128553888730473472992060871490153895909646170193246229791352732158098472557949282599268584071997271463759166855280943223656492303956330288464973326524572383699875364533170097795773388135267749048419761518956098977523491943175704503477833778761152103228378201857503783134448612434951591332204451023988991622669559975606283499851955689823026479016546742100081298437457478866472255692283257902421563311484650215842570486879433127794301257230194148051034186166406976564932323105470146764609993924337694893011276130625425353801132842065048553825933771952406243841369520295140456524634422642045226885031763708538844392920985156452191744777554725280386424148694034026131439529308369165848720459539208967522996130683036416748199315454515352629300327199284247969984741559382159403238871117764441732215658445726562802541001143801381156229908715667035948865335572052269044054489939713914753401149709820798343020761088981117035007209955969137828827735606146161376280792442669571753016516253395621848520660342999959630287877707054634086707972828982541432879658166949356628233357447306457766898533621701965987187173002610109902688385692194088952746542273669939081951001003631031298473388687557957137275416117896316406669554545001783766728434664384197198631942380388648480355751923195268607926986742300783870550400695744339158680945742742229654336807888684670689231230846451620415745474068507847707675812113693907579954546249824106374266365204982529585091055977354573990867114961304957852669340975304888868262530537798347930317766957371207326997574460669054902726124755697273703477649510669056916600760277333829444468692526533842155423737874171165663358380988668958327387012529039720370833039454886590356926485719454849045378693168841507459284721237203134668116065815846861938517812369743080264078745555258661650823329150313016681321896465162388049205003465215343340946825044813545745894570024575266230155022912808913982173165690474277710582569538473988274064430635932378573920944100280061244961014000265803116084845917514088317685682663007854654118192887019703902956531294140562772405572291233865128484408998475782066256652830798366861858800082808204793571689778287911619082229401310882675463140272727490674603705760763501805730515532046777414973229146226319447766271188050092523009389205939221214823757806295411157315207650255430971470926623028027452688696662381511732304605389740444542799750921815181974981282111720672311829938516235577984680152567182926230892912341097274057517300213967632978831460805168216510876246471123458738431937649636493243710684229526176949644611613051225225482353741411595525845374434608391783463018737109508927009692286672240226398966749057476834287679044269224197196306949051946590247211535942167905869009817890261093780421760809810377484862588812482834757662702424304493767618639530743030106102426282634722720690658145025407742622587606998719150143257303536135195742380902957377166651885353394212216558028749795829992432495291132491368884959465576867191593627515940741591605078649304688958927962610798620869392366765297379700730989034370436382084279566819439219446918022804561357080946377541881335526797841749741169570532593497352433778397992218234206033301787333846045300530055150223958177303384338364594772972536855276536011789543000192588951043361480813299980193372916315998525572985215147844208737552151612461203495799629048260845102695520102713997442170950113240986553850975848104600769326086732761743736574273808193090989713015175749138646621952673490522510018049647873567722921452929956323103164856901598026226186502781503119547583001036650237750144778762041574012682144239209948114837160432262578019383833120470955816593606780455215386783486374784501603805670248356338329293626046504033946601061062217188811345402561830826746511392461101669417989799803788824451834627670149796633384231205087206447729291654947759045586696256556458945642617348044989106300431502884344521045438453332977530628793811940604101377552858045623454825990601338616118539839614265065121576525754346845712323381086005375516361830284334141699405514743376600461578059336160125549840673232571396950798423771431958150750883512301649357188284545859915703095964263595289480555085289667812191068927817180319350569902829947803880669061331901254184969506176984442040775296414427255490001584631201135702314881207701984925090484500021335607869777515082652460654366404578647539370947402238601361338161053852974549530135911184916141194273360428002759340677349000108518436255599210213969275344178853367583592624023269019580411834023805445892374284785351663085888541034229931411030800199741220291760749689575709792859667764922084532541336008304600688845532406218144158934051078979934000146750258795523396722253816799128300989221315934220783232631811611878273931186300199549805204483074861934783648076146339218665185592278845833414732702890226398845040065374973546619533528117463806079464908249829785547889546109854331436561810711917174182888101240038574462590667558247868026633462243247373549323697080084961852931493218055146845850002964488397183330437287725571761852632039142896344220809850587908472503516766390202891927806945405148242253763962886689799686294308369225071421216105985237311219808543820993576502688064398450891199820668071395189162353705719876455255166241674500303412592961308158076932994586282992637015627153347753351018915879318333361109031103909062727989762510212773234152346544177225978711227367478249700203777383036461639655495788586981385698104857102766615460536677259552109368118982660724775087223087988894968470774404300167143918432644145624449331386039216441065836817164698157764414449945771452635690231508824811902931764131170887912870081700420897653260968160644474852435933287418351326427957062785846816784333883998306111057652779198313334894361850611922540187932016703208008556705584649618585940764411712486884990867621155567000985360726100699264109239815801312361843488000495786012230523257360914129629901142359946098687790269246834344998630408957031193742433322184818632919304337396981463951072810429104924951733593424371040383832086761311155971076057011936274734924320157624398148722162728051372360631060642657177230415793140791769756934674676395666855437118133333098793095141505294338602979841963345660650706862213181750143214371837711955413754951482783165828389548372091623175015770815629157182622955806175358318727672295663111975408070329354046958216285552299917466470098217472238724562143254642207957786951311483156480983467256478273610755191514658491299693073226028660506168918083940170092116124069687729271015042376257375729241259972206695326538320403030828793177055738249376255457119890845518185687301594809554238386701969655884806488283695186529240495997166467450731252714082717090573265118398154234719846706522292058749503285977107030080173292482493258538052960247884908214857125423340577032162301674958637790230949493381002894077950379075895022232869197859549542602806127590030041444635562378926202871157680428410112776599661462598298241260354284376384174651905117598513196509469042569707961439152729049878591808083774686932759761303495978400217740370875161140850109518741282674283807738047949466622249294886321706191850342366784712929245149002235427129378826081073236393018624378725101599304759242788927331169354902789709774416818324432949137002219515184120511871747061289471322871858735288795424426979036258621931120700395105154798376317402553310637146522949449472170514883106443036273077056914254754179333843060478242138370605487668062763706403788866107037657944321887903802283615952672241119440984568094047366647107684093810923428237306809795661286378871578192462103299485513656652848678580210600181219492735465198316535240551341402006623893115503133455643334732168602633687651289198792117767606826274900961496574256840933275059214645897004528434124294345310577374539199794617203987225740722566808680033532537166827640870461561362244264670497834429174615842244179889961784736887924527798432112803950046732830288612304849750540351229132949376512814462528349859534612596926852200842943412494673973010506846248130563814146652081867648793863573581835529820286177862318521018830833158119798681860536737288024348416936569482030779731065636989481391727848103290166922837298709967793400386351702273637087006304223313337703445468251279882220607159580701723252173650018051708689730091288170882096417196276571304156192938714621240808316979898149066056984213902362147335115781228434260929944421117425611259580674372322918960584122147647221837648401628345324153287656275267285582202893592923525211542775324498499182923375536174565649946323894868762649500500526500039908464041045535744630004990466001649508643597611307823098085984908315560521156740091571992950173986440267458495108643797235002947421623236904716397359037813781614066034249115685906168278163364978026691954473774369063601134698093940302808797360712513842574208164068360002068617114663078506971420579697484806981424899941162628238264435621497752017430368096754270542280026960859758355940439872306725479902253571049165574856218654002666079653956590680961492094622124497022267102264380655288055184421545690092536115335372719052813293099433333160846463571771013882317622364110711062772755890216264244262006286623864891784943594024473603400232905656576323524247114298993430968809639226046137722920708192002031173597290713199403233269027527199529987393050676578700278171541645775695874921413805330999292514633968725562141537863154098206959369487866783713128860640336952467633154906725429908788774919497390879906075673457444701229692680662413822824701038307674381265350189080348117336813431909340502235170896107355632774796200534118957038152099620049882486058036690591084549889671660543997049893796193459996533711139281622511596995437965225289872963251109581924344802660116916898234863042313861845804697017676171935531541026822144901134662277417846718187312494335402697608661127530866849578262929876260199484142062186697396673548381397233563170157703592321931026033591466463668815143182463465262295850812429880265297592125370401170536949248518258417970258232575956626741228835817627861642403050699326990854214502319632827927274970177540820448864970142969866605375278509064372983079658678101201101423247461860729593258810033384755023913503322799891784017449950621223089305454922252947928400002617357132150742119468965451311272893808952510531165592645958349837671292518612454706807228441522937199875029319391476342537117001461141926483264837303863540872569409294493966081614455290026044887259095032386921632669832894383564762149792950128068121147237393220608460749737508456852568514784638603920081762458988518935974860557467189195957055403606857179859415929852425256627107404546681608828484374058751213920513087396148658557657511257372246134296895359203834656704037820010943472612613645543678905468833399446625271413485302108476465435710925395044582299964893389693533457404135204003227029861382882972651753629523921877657790450983647483207572941058524153324077677042931400957688223879944919012509316538210205395693466624023925352177894000990545078673601251437705831741154131201970589827640011103213985958218789656214599009144938006832330199773893311802390308307662107148228232819000379192809949286772572247734151278605782313179028541567930911126464406756048465175707102818415158379469326518625084176490427315460898272501536971139886181849546551663699337360070800723894921171290678455376433898218977980885875889227104745332049368488345734549609278749475560178642646605792847039385960320832354291015030273175902663673050691287664150970077626082037485027257722046901446637370107661139344279212847778854489403253035521969219480649558688236840349825925310966143328654743615597868559357003015540790650532677651371838112766702701675934328384784264947418404220470716239918889910417484884421934728874596083928739805554677221057243759331473551379768680093999520661658530092943662755214918131459843002107867561810105541913152341704385943991871783928439816478810612793170718526308794287117271173028546525810787489451708766506803485151109476235455876631531179286500589265997514213361436653212471338985171083626604027919770508138311604812165349204695597827669443746504469893892506626001985111090546809791701362631405081347353451690989534645565986321934266005169423367102793956396458599158612790131274440160262608453718199086631609915669942545539243045399595739225891856435326331456885164727467590543901631274774484881982342012701630856422962626457692584831011816967572699922312552864810889767803962997915588597898763978701425753130894676617835178379619518853542631844976827045475758275775784722094041662410168477906594284695071932563844204342013949651449860894600887003955666384254751471868931588203104388224638785363335671438299874110660118937895514397339787768233887080793208077164898349249357737092805433330313987743706578411300310662038779377061699155205426424267702359251853527929608792430825075559998043334015435710422754296617844050251945803939195267829161172268102057753274562804478387115512974875900816287393230611369006071412561527642590051482797354261338571316303674057580190981807218991184614281291759605615718962050344345032388516686860286831692189352113191130313214406962926164716627853777089687645240883623437168565268601887635752946906210387123856316938116314992671848116843935467207254216348804802572207436937591008818947790985181301576316610635160116738388685730230530494792310156985201584233190718602971763946196508830560095523545118462787602492710151238184511202811194165619147556051623293551482803214123716726786453393280622647648791704687062253498195731718106273618912612306914381792685232076313141211167746607608714106766511305954519042234766087226295626997349413052618850623767905913811784886412083650337753237955530808362551178380076898794463742288444715259211106971706954788028841467544137726971574130733071363232175204449334581873714693409119598734126732814819653496678805808602130939827704152102721431013509615597059389235211815631096574005011889697897796836436935383371657788849029809309929249052857010981550268134117596050047924046969332600579876018006975803118274020927731385286689549145365416536961514422548831875599657907920792119889243549961495957883862069290610426124321456718709701874704668832437631535580079385098184251601419771679650415923452493507289448659643483157196051128328232068391246471588632874625195454231260681947872531155770889560047978064192934891562597510432577009482358113302654131518564205866920002451631842283553694786412395799880297180738133667955285965419338084119006031197452125287911172424668217241662993326912194887958951859379260809728402897363869135818033964063378960939199562815885948035480030435974441100467979641736839502925857962363213060423717526399219484914764250980614435099279093987124534640052056463891300809478752519623938656782861394235462645905953827915750564412285899200716924118567032667466321697432330268618360260622263913640260842437567326294767663767902359464458260707101829353630938091379281358257294703276969147951288306690195847777055205204398641111007053725839085521414642680486779594980757225714594309621702864259458021617521629118533688163994341050616876228153926974660926066505215594517229307230160008283134011918700901471222198882605850117701640857296903572701861245469394702132583810613553644738642942372173775981582388129964239623895183249952097464394606841720218344183576519273370456191625118651390444689679043149501584460456699714149777442260588638549765533395836236843658035395810916582908529615230881150522689531914995234955702215629222511327250095962627150332105482227364368763935111907202089200366308524242237135438394599513672867917885570764731246596444891175971755214006357716773493993224822254924688775429887351871339692649591699587600813920812007081801788094933123751451149321554475660956565691929893772426498336617839050137147224740159880718043711266125776160775204709973779297635521786324133342569123069841639202501057092029732934972007610561575911678843396268316771200329134921169242050551633215445135948899324467798891579300645075593281720387414714610098568295748967814334049788577642363090053532419236509153299810531117236543206764336727211628667310525791273937253928974141205704457864001992602249561309311378703306048975084594786630430936864056821282442092886809724274157405212188095749890736917059705928398978740971326223277515541902799078565209898594682932209412253317817296418405020495082983980120633099500279381594531412491261917325741317582187005203766583915684550771362351668011941390695869601003549884209582949435405014848324404233579657149299077220692942934180400882396173968047996469603906457388350032868165708512363505662648411868122977363310727781726671903669437913268160960310802223329576840878724413661106400636989202804845358506257208502487494042988918116941475076467625262073132938158930847422695914186140390598123660942229804513073445513116341654490710580774819839636498383217156426840522046530403228637431926968118873701330999065037866092196960665420265098949772699149772051785697911476661754331707703256207279490786149924875039462508243480560193037400927455883640990816759576345529736860221370828380462687616039863377552765360638119677266329875360612346338135824016898395056249459996474439808121263441669162044781133124672622248999767225342646472480935708864120175601500168753474363161582272576251573656545563481622057597922664724832814265516845282799767346078719721844142697259816567195975197650953314843819910756600275526333918737595650717595504662227975372130100227448844872483581620193606967392613768971413634171676207707661531414974124959154109979633753134509511594781797044345713543990094581185299731515593756589642497459169791725589689597508276777963958802397560149885240665598609031079524331401816480954830109820413032627952362267497585964267523457053758810361540461085942298962813907604811744009973131754863285136483239380246698271960220554105854431293343409547371921597471130220753411464622968208924754085606774852472317358797389725497644120139470325695110086152991390406031389955388919170670883892180534526176380066842918842388921513949179509570928153191839788155471835671322303456673603269826024992849684835564541526717714856098799145128750959923902925607860473869744844668479244602686069861278950978039540315031076292636060974401948701835881066474288590298723259316913662482433210621919701272053143478652355473549722324737439613855485085861935485209160457014395038206227416038566845274666354870342055539140280053611393774486101708027813109413497010393120180505420140016353709646361999512004593337457850770948334686374367261677918585809373725538362891267881247632734369073753140018594845362377314779971475774305162900054708976194765643548368933548235762452287851660012710292618327627933981049529039424914104455129378586485595390988393048254886931692949835599086559791078467578318163809218914600212969888206808922312031702313955521438101785940273554690769743722552805422054019179068673746018257799801168256694319912558477721518133118880010703851729195417021312871161994662520775783626364724068875550306166983933698369473887171510112186460584040247809793028851679730075024834050646631182214765987115270714035623257288950657838100402114881893905267223311568532025174236141888040798626855639394911584368935196961453895058539520152145013373718088748306235573580422932927028970269920542596793621483941157834915835024010457888973326261872345081145182329435229893209836039237547678682515270534355658858711236810283057496693752148627133507654266241777845592678597174045637426711725684291868734706692295913138525532952359630809993853027393609596552568617766690186119156389307804882109520532190010465942846990905675277429705496820216729203741890712001173035447975835891490582055201942008954207996798270454908568937050961566452372425867053868692176990356267439787452218355551289262097717328236586307043405385459699778032061632519497691426071074444128330231780815584018136152438941914846064098338852019341660556021186186349581733526389974517533808987969500376904010699049828889732039220357311415370782543119095183533342230104702459200843390702215348685108400616101628735114012611036663204100195220097350716531268151647323443136633539197787025472778369513695125174089826677000539616042935042016165934021835702065406291372270456533124978936828834582610756023492702836467906392479816286006067997577494648955697943707601746286902390493428950675135382218586085886255990908747054101144205309199147997068141115467574086420892007050201872503191302138246242637243011370739304283173724952655693699467337282358154052387138640117864132528107091927573679934287471823533227006450999540534929852242943374434114937771422968851904190096516184388129363177474315772646747014625854602343913747388861811611092269761319407578218888344165264896890479084817538033118061284838464174424829160104226132132628162897921107845703705710264721246605965829945337231836599654251083305649675685937370746126434210597540492684837860288550102042379261318752814783817028520714203669139615071552101244529117739812733601481004658438457487027508965894266798809224916085199238603210125226110894091914714554675615703420573998568983765472799413743544646837367026182001015351569198246105188391981621828323926649982981242398675612442967194894043931506887205142405551758190839961725627765979471179623283364506289705426296566202019895271320005236829845226464927069690709964648252798276223814563977405949095835690779596378513051467362796974396082074781916597339656292122909937232987460761206327538303156274411714041467540622946609018474206457512395844879196677256120355870214106584232570158837905437868048271121141448751907498104946668073129680614317066419893217300974243393905997718886566768250355853969521395255212322920685549103838426632802478462185718972867554779432880018202807089042327589063491823547386217932508283399840331854898938492271712049191412068336334738023552875704675864474522141870937083881942639173130153170579830541063044040537399929545686795347875883252481454838659991302274916195762162212589065795691433483352659691167547678952381079171345861688502238043756093088807039202648623828458170319461834572283387084215942124021488853956243211842653310749668870987190281047748109613505441629461924585044834351647195226603863601220059338067435297012822571957716443668559768379439663822619255559235167720758743181398936258638037513565311232744886680749187794573384866217574363938168636864262766817884051912653482382208885309137439334934572557659584798610439359141556906137802091642862902935051059193811847435622478704650767758435810996867972379725371476862584837665264984983445215947400313075396386238286071507211695216706354867516162303029227550570234241532755737946718723912586689131889539630293445361423556361006716169143447477506777434553578859602504361835105923641740273718655462374396661460474809476670498866864440256075776408401963058106128052360492159498191867720136632476431737829629900602263872113802797137886662311829667481764798851386199942094675214720392056166649591436968023211721704816132599484270952336472645630840747424999502786437745775395602950867202631913760510494975400936843559243226572267571174560817480346591607180542296854619761376738174573629508569885739368102697837635248661973132502228258781285286007062787356496041637455807509458406255682438340179153777174398909024806612873266062592460183669967365979964864898006315316210222571939805293874475921474980588496111961810396384199073672756929036871013870192534500668886848689770579789581347122391638685031046803845819299468013306595468996694429545952460119227809261895042624264823683791589418958914468189505308462704224113857199507624027223771825800983735636204746190868154406368644356809746862376025818058710438680950973856047913748589832050082417509546930121321383795302278652499127841038610720405781770903588329227927166420628389482032774245820235590295307908827448772736032497029868965330993972299121718139280229788191052474495872237291280487351784394877382188965334911039601254472690766009896368183721444068272133406016655715650964804122817173377699239200533371365057854209805523735307878820382429888157076367890057145963761232942603251120085634682854573365279257712940038267901496888387039098348447582684163931452962394772564644474870445778309341206505686389425152598490246145506375526968943898921693759791428438038869741618563105914680053551882039612275619941952449755218548832805433224225752856829698222197564756523656339621032339699933059792417514914062037053728411212105499918977805330494765289751732041746286329548616512600996082734317081400468005305101043693735337381545445998502887722972580554137905673466070388622499323367770466666849933816590742644694785657201673756205768495692925368802985266682783222766693791771370564579422814816934788162858162600552632290679083202412396978941436750234393501791105288081057295949244770757655395959216313064161265566032325517368440651585126044987859228450451586058526796163771826351168464362857917551291022057848807201919919993807494989971553835578600009256810564805501801620929152259777193628587321431989666233904315913832034015467773453787830846465713231863671863639666538694444244321762931475429453857556775894253876586755175811343201338433695512705924949752762468625285692479738972226132593547335302767653363035952817532686639390498502521992349179771409363173697636169515494951991097093816199371991587908649137119180474196666524624419874665114001642667143423613729104602102186763282137659375496630800274588877918962450883468369240806805716494189484723807248432038585114876311164405532581559176566525653237342384292438953412635933517130610525714225069698653483015451032419431934409322747898481438293092068474807001185518959862983597526449398069662141932768713680718226574881498076260374156100697960063581715517155282839313204215487888058871279612458305699946081532176381928902754534945025447297333452561625919265592860048419066677164590359381959200710826277083708495485967356564781069973869127236105057055375214067275689625132250972257665231418555585538044641006162666619394578040635475379840039080235284570779682799909392700563294512745503437204502021924552251372025568050635182358924895541981235802733189700094343038466318288661379173345926543413031364439263028949312438314992628663559136355341917669592308494465164055117801533541951855381102176781150280424297304174431169553822940765518965932401314066901621294678319920743535502906825969358189448261324232123159912808038510386864932773799368490267367278829284699508665243743781881028894799233591838324392222262988473771415419306823946759784646830053183970190421215551298635933480417391537534621570899947896881725200754595587554747586978460534818473283547309363436298114155200227391728417328045764468388892736532185909054219878296014255245705049662366096642208378045205092102788258803251634746808052573281409060953917204148701809289974903648192614889887875956895694634402847903188574976234585519745104130309993349266323949457169862338337670928890018070603842093615919093286038813212486368177523774742313354651332822964077995843743759353549079789359791549721342132005164195681099293822104027461270267883221300689856157170811930236620300706463821264921027789502840486171869812558619019856320862562428491743988453738862824095715250353984021076205435562979158515097703537383988212137305292509347181339806265768292124878273925498049498674540334823281705222991012917068298600456480096774444210481377051226892176391136287574644157109134463547989158792472078778784591768661284934949779789594852079033716113185133657932414533003071048430296594242817841749441407352912014517973730494469403708051945212839147474596412487982400010969295914165514087245164802776747171393633410940193203110922665065849753457567543843709247820363487588868377159784166934425339970949403949737205121389471409537933441130053030236160497557908933694716839404578749782275666211343913588343784356147451471766190752193908053657873437949354435143166843524312904127495080052843111187513446308192321529333300892865579320629742492017567628187845510116318538271729601179256927493065158053628953534079249532565058862300419040766732490037877585627484998644425068562758516755475261862454090676870519681794450368494149782699753485600493071939154069872577959805688705718603735234113800897758740083808760581907160898572963347559523495631940989388553881750899339200019172480051452792172134550251965105160074965377651383631233672976815638581019804806614103533943429021042821771173452161884750933739595571553021933930390869567242418521485424363085315372276587201602394397946639106941570192939478212341194890108317234996278194060888711910819811056848077864150688737663524235154233358458345560823095698449912070542633639119441078315650832077022253896367924620636511554375268177154374265466454363434376895977237108591301683888139879915722833429638940712449975838835339959254614458038069742930275669436930128245771032530234483349593145827832074519359922502497854406761551703433868044006387657215733910995690899416203123998742061279128049830799974180503979903133925912746677341988385977636497947181038779749970651436487385056120436094070830871370653067226988539270114338192869477223231470097395242729335480008177874833287781158213643762578810945337986711278902344816115539151647316224194420845306845946191877456336033662527850546720185413914246494626784578405929874152704652741580507972325470066228745436862923871044161193782701592149891289121490692914125252779434304468900826843746035647264528584197054886432139828527413361579593151858320612406487905857597685672159021921463748732399952096531944743710234489754228632231490282966038478241784630031844901755610346862836514779640176949300812702407364728450869209625355242454255203499432626932948616890414304008860169282405846067575767517643798416108308932543831765322200864486387515649042701890179397913882779241828882807889060804755333188464478291705332493798177510043455663140250507429450328489503951834410886936282901096040047849276533388885473428844905522160863626129414661265534381058237720304323971782050288142933021326110423133495703392107562482863904385490940825815680814859386411810867856919982164492636372469781440391860297595431914063462009557080762685144275275799794064382073969677008703548619353991183467154732322236409149537524900366668428919410402251698698770658945695585830037588684051094095004940103715922796736038098734570663338816849023075736082915199230058058802754025660374501659346961743661870562088589083234328402120363149162765139522753453059039345449901546114813740939993836801648777420793801147294594701395640942557034073308696978584914211333688071997951277126860887973434483303638894772609802240858393850632497969687251929274212209966484933694572025033797653592111605014218787783989322342971913591216422322970023879523877557621873644047706056588101903730975878582427431863401038386206349780541048882740503244056308077322445265130101527162504874875101425319403677369747242381226092089620126150933747700738805700126397921743280459613035355049140062715038889310890518319987645895796461721184737107442867104695740056409403306122457099356756328254311497577558017813889321947384407464911255297691733922505663779998874017835009288347217371783489931625676348524946633113634900100263179565974225373370821095266493444651100715956413887463164470400854914000784340328642559210814058369000317495660639498138037087252253537903056695371518295404272731827210523646374811619559274411433920013721955521895104617556440753403778742273550834943690654929408295540778556791889675097790744226583118384085684657116281386469880071713203026280745990994924309534668575774214155208639501044743964499703494935530658368530508121588069288351699829891581243291567814817890838327831278534224314855120788379871612833304325867986949434848586573971046815830301388332020142118986491892767809497971317550650517151109646353558691858605358381708700718533364785809969688147881937278573656847604572029429134257206144580624709510145754094299157905290960365908512524638267772636507400234139709457791402397771183628823031850881934141002315654046167215207365397011358403954363015362538904731164709410751593477382788752877531653930308242443859229257751742755266857272768073121645000743719868840145207286531801063447030025677928185855043025310369632590067204467632022218760624063910966713810962781345860971332625427505642545381155566589644560168645855479198111575963708268660542066161204353085524110735556628696902195877369532989720876172758198443808322825013317477503101261805649579289487353900530535569114828832719954989590891014705156812205212243876232704074601292612978057854193696257984974332825452331874039774427592149026071753256382922587219994700721790447731794548211279564941711895170403376618755164095599383569021459048997425501277141902515959921897216989252853473914197303319443821455302849029346779730866770930843595231471100483750655850218569893833469558740106737945773436074975025337945627331771239511360041398046710951803855472122833724352707070414658543522011292923789356878876351313495587175377495926077127060232587153035745014514943226376795581878723583081943879451844976845316492110395441395286040967471485520154241948859622074473920606661974784808872547358837893324518394282336395410539143621876671030906851927973916773776347222261564516749196251384200671175636808789328601576189213767419614752763007739514327287776240472463002143067899749634053048986186270189326066148725625001112265581564242360391764219399004853269414372361862934945411248564311144911273608771667276899248626845429726834601100318839029805671928560794912019312190620733142230059439607214470871398846805937588934861544971489169601044448674438430457512156640995463487701173137517501586683491367404643694315881497748345262845964927223903005513730654629882313708596238006597992789277438165984301828010379235828858213805367683158096220233604522664058667443266776044465949320738882013211882798922195646180915024362011970023246047220719393701359022939384866533561875138700253312312536171815877984721607825094620930179658531090135994234262948734027901717212637810164082556869422189287962559544786504142852499283602249137359523937536037401632360620896991782836560801656183931264604391098871992383336931264914519478986899760573591770601957136235801195740859563967066109165058141516210805576537583139815577483914378417013976945632498370168997931938087272432426395321150118593247304738475576949167835700074671953233863138101543911775213308919365201703308543486059770960382831826983230278514140415534560965581972995674085302793171242323279456893838703965338851152863348201114836018538138809947499012883369305048507934204052225551856581616458737289719141572496001858522314365946543543031641424632527314088653260449727863182457097850995946428927307412470235242603794582901033134854731366654728195351078520654247909746234162994136759942295526408146403788193588851838449841388220427767786969082743289183713477683217784485441412277969613763607102442527496776349653003209324775486838470967441247808762612525387465053393042852269359019781584863514698873098653685657649528344179785926521378483015140609242260882644837959290792425782530032867472001445117279552372650449239813806153508356996873078507293080627113489769233546144408678814832758389113123362405840781255197033143776620493565184756214185616101593884774193157890106126036125205487828492206745976669094921765887558691525477851549041735754397375057450397482442507953413318166640479908150443902555783654142967954760027082366008885374311625705257405323679042033701155074842529890359399575343115958880954338526158798613295422031423994925357556020367744859688212443777026767951176852932225285166853516422930447990650553154199497054779854051153367827270519065396264674541546685266089601286097576384200704213787298068326591286898563412075415429403508082828838482507472385767037605523905953627220224236744568291267175169651624646310584167181122808918255801286083521973129628763537233944061522262264118555237010405596095653037424176029895911856002577390976009672382493609594887616205309213635665288936882961373813195029085957676288749429633582612001161683087849445351878838418367585593100805242623080926243434998333134182512661728204982332393137750455991827880820572568037449909587622491576726256062794347416967285294451905423755565008005510404447612636211826735538814035494159809843969596913987546233535001819851729584614544716787841916694555215396729515379702176082828723784223257774906417411112019446952740877285057009649326320583513691480284254193097627161696556225852834303408469000947046291345082778716751972132784249757765699236937104863243822575427087373484763417286717563110066188373115287822630935653743649716182104652852353162622666412840363739938677770180855534953505946854347532520895191177986489629253734940811071766132052763768980796483118897646077502619720652282614068594113577887235361583516832137000167565367304541454806354521948531204888559277287465306368791437174301240882053185209055720954647273965537765524052958565190265881818101833506842759136473214348408678461261561320135477562348984520076734945557978168488258618952937821524984539430075826230282180284805957830817782863061102015932438331989252637520092650577319826611977155693699424548785419740565976276583999048126273488430406639684674744172472100692641556700288524804532047479551902914177797441088658637924693897051836759459283702801455709289961912148919522472709709180293050231293537579819532518819729215832129229909394553144335935392151204073429683477767471587182712570078207438263940025634600991439395231384524158574873863435055752687011904071297320932662258405315815445307728003126932957541338694240910520640476493661600115692074681283872530423772566113289233732355666555084414133176023952203863232509642524483615188818478465919809584795797689693997578976184823181264753903209321826733739781219223136129653624931269347151876304965596806527697563442856946663202574059133263685987067593235296277750260085182569416840609527010805933738618120246088182078098482396613530809382632898836583674410097908196581204904446305673518972336144494806967660768070435326149871708653173362401302138250462113201560542300551168513832145343629937290911418503831019107760410694926667366393550476654827581229862261093813117816892526784834587733604858520423189243842472072189575880272380353450544224410870699402375804338692888545605893120590343062322020235699179293303717913030474469748887108671130389375982189421694272803751930211849661884920162697350904835981784942869490949671816957596266419243953904143135600735160791130351314352022588334443403754671189776877061167968390944667275365203692527049534143315506939861161414015454954557316216066220976937050540365948512221766007900511521301145363100570905477981487930822979402350014468318810405502189719862228785697322158181538794940708564841511505783853598744501087957554214403694215807948967641507773508942452465259815876246681010088440387259982682703427657841581001172439484636206032411648363137280147385131133255615155445461007618733439349704269026274712023851833985542679807068162764579030411432374061003352605842591930141485963399596277368053473098506415448830346208509412795244968667896331155734591916705383645073710526183633729075177522132071000933070408932692216381774476172216602402058550086253177923472673468824548463977469128760137453837769621429438181936562329102153139684018803762625158881225158079389445259529273031500133378664419898558217473027074256082670367895945440134736173890696947950816337829862631840564391141806830051500533221039068856354729362744419826048272996575951662666418618567807787591878228448477381304611107648567949256508541125097467394269495625359969092459334346609836797136629047836837246287598926871091236920649904217971757421708972449936154124639894942558614169381282059793881347585823645768568692205585186929726042515646465633229757599957233175563793162488039102759490805985672443082498849284726980347589915253461880956314715800572938591107095910541234043951367146213674540128019534502937829890214608057234885775898037522051539374620462420869939805517747507782378815056845168051758129054034030168806944691578608754680114339160956700101143262558234407815480710772027793759229702661063748297244549080439315520753451653465382859794429685001535519493126758125695169289943511233550746499951154388118675256028831736692102263606999348850760268263494680431876841210288892379952036738390145669081574432886755312277494761109375745586396864882547513133618978348725260305410587823174267037307744464391347295350089568349121650151493545237531067045207795421825489157519180511089216041224941303395613906260930260352136379752470107153203936605565150128510843238192648311944865295854336693974330118847983537177684637144036122676850385911057768948188623008636709827513581031529158644619249169912037528275368144358061501307814867328417111593048718070988407726766741772042453235872530150237441226300530126370208928648087440210313493582391310677564737187740905908170369935605665487597895501581021476639232129223863629947114128287846758830227007148646165107767447876711198719350412704574181545938475190594539196692502316837357151836110509877118340873127621003965592615950386437933181238819777890897820316783726400931778954114088157876373182616770375356877247707367796201540799846808621482985528104444601098146865564910031260182404888423737739434350793825925368777218446385541567173223271234864809151607085708665150135725226757282966954277092170786808261972799572094694218854973642686247269460529162082684187672267439462522174277118160098809945405714299365086487478845725592422370973320343944118165149926590321382252063846477068248905545673628257641852556043275544900203367913499211573870231276083297736730177790304222710918960012729144110349742589889520093609243916847145580547992730428629815824318795255878558459220709411871915910850087080449510466328708017285620390771999606554345852184578038698362478889125725825327223072392279135960068744058769035156804218794473421287109285043653935156873700274837641877293502601066463388347713901781938869821908749596597771363040273066292383763623764728646747871155912307119443336845659505996055425458547409089954311609955069558156587802042066672874328471506836346932978542359728940430215298207169765825645156165535698489457412344854993084224524029707355669918015479271718034665223856088251181282885031907592425054802336725773119285792930236169288746634349062670236054379763572318093365769760405000828169990813661828697670497021888319748897569468308803553184190900391067887750204169792386054963296575192824162091384297385532051244611540951101232183143883197559373044979198594356946748701012731419601767131399107946038221268619543160475979877860143323321521456951269949308523459101979160594375984801534207052510409898549203245990298873491922414928580464540383538848466536260948486357527811428670344853158699583388838983487929197553156574299325684000999534193051698523340010726993828409847220154820414510652053110950464716898003439528571219745784505651250775862909315575274587737937022352781453723413974702213956978931959563063672623247954156232973870890243128444646753859029962266167284172627320081677312657093920168006244230943952768747669719938014536444641848062455295349154075042205795899899981277504745404762510875745795746750470752596377751829577954169046707528595962170450382630614322129847368239941508749136212450033661543938039476760158158908188054827441687017908831043657817082053379060147211693683236341290699024769264907800300116375449727553998260950214932307599864462871765310023320654562928482417230276227547561166976463092861840878425890969586282984591767988758151440529634678455509683540094656977240161582755118680145566641818425288080077270228240886752455975350304854538315922115749880893438342505033904320647164874236066643671443048337143796022895366550784064997364204950610889546622509204133039957489291727125293379774381463754676088019423307962587623507420056434542016960500249721985469681901226347263764712390976127074763957773495254005065594538411922357163544191067472034030344705528217785050640523701517111275868878767494384690487905658678423240975778568098368104654840931674110620240896059482068169767738763828909544767148497136464083230411157164712585538142050898679122707110373331225265682137768633485924463174938104904413130185065644502248052147364741502378751302587333032184219056345623839835510169671603878454737490585091052770256057003005657405155185726477888564682597555526401911801533857783107529825907084280293445666392186768961194478476595208666293067539303996845258280174179873276438231571970666685430036747289411946068993393210547169776284350767150936714989134201323473479135125737607901730934219352400198530561089502316911735410266923427373685982673014984220819567795189721848313546006357041977877784071209934256827963245747373978658361947290202169301869493755447579791173874863283808716936568487147682786128296039935646692647145103451031377829542257218010012757656561571870832230576333000189275438319295153825182210769874670094162918604855448255951312481177090479600313790058209258699888517111380613049295874601304126776926719682300074914660265963764950833920708836725163325058189578505902301943117700801217415862186314668391338079358805018009252218157790258971921034530882578045901381763800101882515605079286241624563044583517167247160439570288228863258054409945920167423623078676500308966473405249747760180941751960697006233411973674069822815995033357118997386380542872791290067547814219892140762563775106609251614700749695127369845766380007799338311550304544752174801191982612680311279695037552422971468696231213044119962124181058876549085103469832106511778245177985825991820218957721938531138205675696364602842137200080710747158012797106566335136701982015328544719811183081310156632893452406835737709698733562556396961729376919801669971608206590491397888131558139331783895227785257667208785086973853337270776920101372323979971476951918998365521794688530173211275871398722744029950207351308056482004090150644034190036021772413852083319948034979887493795006578266095151579884980920140373743119300663894639877018700362841797826782594883215382964214021307312112372847623747279278329491227247397018539420855383300214275825408980693011597085321247562086771711668410671037868850539425273855239100039559947890880054283576629350868308667034400568398218491996529300358464336014665229249939695078794338736750880895145990496201330025565134572347686286453999733511908151155711157853699878730927008002980225503618928666389494964822353261331384207481578211402107624836307023045252262572646638452829340881602154023294343102727199293778329883111818212666157306819522605461151097085282993457897529984859112232856531653429993377297815560155511499110761667535407428254356659999731928786455257198719801886110050995029244679279732089182423939562530378313410691170363702258774780579057308475665593694062143333673474733615873260506282231210764357961374668308163658605537124566308838748285909878379947582353853332864140705509467693277668640571274632733542738510397899102236258364337452165412722002362817949434226569255699516825245731215961509464757833937078588872754040676518508760825928636667868443891459741448109666005859152171431565140730785817608983159643408408045535101875897516689974930651196553091674704526889647120395982026872023563756897531919599522657496912948852450881575737182706156986168492001488067024747867434017818896460978873287250311165683168062764307444083253873903719448330054576597523792898503662660432716913085046745572038412478806128400117685317225057358786193290350109803794353286237722218423054361214865774393405543395098644867915285054574248001714525911667941671288055842547680454267414523788565425034418440823785328751908129015756803701288758255886769878898323462093273950861545470439889831889461490128007889552070536896217066516916230085284204311648574600341470471954407471573712300875812260681001315872116900830525480768068823451434150379139243996224116785808423835427712904975126748630039015543180752593715038676315938124859393288274246398592514346691031838818032688634368814687046181472401249251428105318011744985082170620724466393616998160490629739777407826380690831272121765617658252141745535118001650410912090990594845377435125248689304279290176163321528053263689939104167082106824499723647688304698045978771823841205402387732047791545962276371454114217926809297243526850356597338816361897053557893377895604840247834471934857418802663361395585856419025617208909105143271179352602824940076610503279066155913941436506806492608449742796410759074044792754140259987528847967512781573348099111677798482444865401136644531753750505804714289403865747006365442254391599089854829537956493071037653225545635057280646594396670678325300526824419252856037209154966256235134745513853776865349580454045355832757515123542938544964401955000762218646981798724962553017324121999903849195394580118047247102796422648538846553453579041250267617910177065439407391895532513889290994150215502902229761253326795689785949339084275991108321725034704380721274627322835590347494423211180463412288924676131306332569706919342558680583407338569424119082166981178129046104126202608373600700769299465449467961035598668120598802048471428784772699833980394683956608874056794847511304038012670115848633258656485173688870879209953491325760265174087139561746457847506188054213098379381236885334647692803023447081113077017821591924613843252342686143448659827253848868369576994341317919994742838465015155035657411993263511506884667197976885464540535424987704452419425609195690437140901773210146339817824422030418118964135009918095228716792568924511951655208040573114679342358037947165575914559830184779954894300783762207834330018986542120508813227976236623545074185964100565531652939681613294625416690937164073107173713872975206175947181885339592271096088425920775480679802131869813011795782076423051724056175722455690114857153309860679391857527804391103851348870606788636852889362432424411177111753389652715769385300334959756756291150628929414450166210603445438563035515050396753519655686870858093883984822992514299703918508237867328547333957880759312827777493273654929829017593782942362747863170265905418305152906619454090922746833143153384162059651838784592501346157021523713815456036379064554354225879378142750328022607359461164118231305404171336718018418894131172015818780721984101743843057742849172463034244166045080025060788019964436768205488994501043639048762947559646245661110254714734307838573515454346988147644190893310690595517930937672861316518329220050745648805312466314962066684089250846798332985370988774701112202077413741085587745550798812383977264585348137289148575919944162565358470990827973919225472658520396951838063664875160637471353829391299614315414372667050339892605537110372932495303119948644701609383797885684751514838610473215084673987690153559468858480626034271643892957185923596772695740655044177528094478124343791292284023716520032380680198669524052384852657617878068344843957419406146757555389938953097600894459693043162273592289420070121218715481181257577731650940427352032200366008086236401177593889285244888645352307804157419373048706943877766907900783099708804152783546925340029082544947345336674054929074801591620114936072003870528345495890318823242831847357299561051511697205575302762378775837215455809694484352242738308775712641608703624574963193132744612647091076305687186967174846137372232971265024297685126978469636046664352299816025829516940578312761820257219875881797511882452695518758245339996322874234941263879039378413362959671772424474801144555920108871456473198250090296478817067621115066945811106875693266018327925201184151838942464994251394957372992718946362912983763203665948190933537468407261939930813693210777871489777216792591973143122093012977520496931239517514194936572881709020120965139056988523968699345277141260155144434728318951224531070111056726543187452051651546686912522820435410714511144738822706538537346812343873366487155815560661973333758608083533343308853448922119502200200648157937128432774833704085310050902978386597756423316649858713589714985321218375259400752413442564200863222232853613818296827502946341823605526232998475463778328444072069117776447479175930825040275361211779270280749439796105705173656280369935682610237416909465368091642383622635728642796098190296118138320787578444578361600294078974564623923699613432844824975865537785250780078056157041718722185573888805596868486877887870231520583457691371449891337152918110440631094789594590795195065549086853947905547490118584317362082829151359967448415818799322819266361742369150091724688524303496832449564807098504635429653127625427311442374381796435614356600906424639177516621026727029311298821368773290690127099640388782778298269590616957881627230623629408530400231186490110929356272442010046039769721271947585962898957421217380421994223234488522509029515729131976673483615989591573761744928710150679464563800619199960671126772553531569513697509940560628366072990418526596580553376721062197789119185929195737379066387333995649461562367643726191044922707944791249527725985310552026873719383084174664095639078961849725588156515055356031819842521307113759885345718958966971247135741960607255306103136009178388101732451687683136845654140871936522332351992080132438250057593280852177855519719751759799428954139501502510602926455190482016106609409845389095772142353831874589024868999868782256349610052237596861325737628156142229508881235789363251912233858785648524097158322633609297419174788355824509152435097790120121612122989877808694965219530851712618227985775194461215325500523681196986856580209943108452992007769048330391681115806871934676626486490078355021697456464215842340413674227856932085054925861708028889400537010167202993895175744690702032618255119114799002801463889272006790732529081291397446874879589995342721879400252770864698485474317241387964086796718506881448348858183028189311815348416045421806757394334421479768185700369234110594537567515907824173676541567969527168290599929022425256532150645126254457580190230336151322260396539418236750178770612183491808036702824055718073349400002725594417467803839149890811083267646791701664097112204308886916622529751712176538058976613832755128510262425902450534426416499183162279073458939784442151916110208250288964745905376225874218363080589258821123802310374325914139639385854702199307526688178690255224091260480027581909737152798537695982030687040984810137137070145494111133191171697986503066359703882165809423935244035506163057190537459253114977621027567027015097683202977062296691998500665717274782413144004516341831468027716803477537902192788691855263853728780706129808162672439830207865501852649126710173004963839802687820018929045009848650735491961582394649722191803957972709266433102682976481078470053695477709015861266652373599006874204075221986753838548261885643800368106991410600630904281180177466628862238892928762009766924513082435319534831234475160324981955570229366713681213855491804728605354348707735811598343059682962954803443659012824478548280131942667440727027091948729288052659125622316071905555333008337309848863914296179231247180794409668311178124796698797572656905063189565646141575422406467549135651625586716826228298036196166719614072437487125837367658571725090429631078163486093340712708242520373266895246582501614137821904296646391253643357127068873213022307624820299167918249803166943774266359496402959120699344317785912050677038171263216476062771024756754089883027839560781042948271367880360940379786989324979385828810974576993699208843174855689353661307507809246365697965036189061018863247199801998590285188312604447343141236607326744571796408739120302667996888900993689825319965921341856549113141896987501366180726365279146647317555677051939465307684143052713783259178985948712397681576427606609077972664141864382415664368183580633782856175282052503427050250436097416875480009808829462503996135343205767671359946875585818367450045993901320793627709282025361264821932459073968127376019508417930788305387901170337181020670827246068804259556066849734579367054998913986769891915399722527011465455925044754663811402531691767137014863640361660902724792137736663195654663843232787175557435746779888223898111913660384752033822541349881750599210877783963031539787886554671865501517739702332385105815487052599078021193161756132393534902696543772116935928089744458328784693888841504602746363450789940199575407872513683055363218588693898196418441384469660246752900022266106105073519059586545688456612871518124444547628378743055075036157590529517845543318625011477554946930102227686488272889548572538996198580797029159758306767152620493861060701141411092561869786973357719581492894787837724125084357275747347945806996488935171517958256414585543086256162423653208336046232520896154317825436042591675790767751129732938278509307559502140507274658706165430059198937928059188564091433534274323187591666316922559875685008567316235148194834410095859843248943991464492067602712624887075134195548483236417620673242955216040523772184402413232003840475607997727987931596891577412029468442998506127678831113558629181063193598385624103710166023658903190036384825030113549510214245563238282836040253664268120215417271014790909260018049958245123280119960696922140527043082641829497855928031216289410912636109469480718925301430067984345585492538505009360353285896429872196532307448465601232180836453324586781690261183734822074446077202660327277246566386858549232554361890299019369382014336313303578611414835979177988967964089394394731658298255932813432060763522897938034670332020822880937470557651955813874771054167204895007908564416096526869255615535247421175434198678244352754252785694740304453150870252999144493101089371287116583630711001879250176021501349773488991054407006555700447983678784195871237765027977801008937518550472626278272913679140442077668598038499610539462266267385316995023284265987634358976522643360229917315848557873744057527978830368955854955928870611999316433789289330545489699787658783954826260788045718296484046840780323410308935004080954722504788886392392999023621845414392670037656818216299901481036130205230616693850014965324715680721239739269756542987600204035421778680387399741329759813561269757994643841941623777036222997711313497556304445130663321295228940865859230881993497442460290956804693902738240161295743679782546220941902811459707336429467800585102593519269666704816344572692094080635224977330862843979872190970641385576099674071328702639744338118266260312274256743335860235279431181497954669146226035050932253511551453996555962645195624772159142940125493896628829723506602442246472146707440953996614343730339457954274402639173042473017872656813529688429532859887845561936551692282021926022697191553344684501293975113275268164794111100768779730583880088440038609732588224113503425836848961788241314859949971319789131307789450962405627469324217112721102709603203970559463672291711457574616230216726894142098103590802789337630318281143705892765080522943315278709930834225332981798986831910073796991500058472251398599691053302148044598625913017363284173088810251440032844557328273638051655247754814908773053829327432445852255873244862649289883824360871680954591456200388300896463777599406621228221818297052344255794648193431321444309034896290442963304309078074489575952618452468045786811293834510502031339179778090820450264396175444465636963119519327129630849169375812787506574057851618769433253649433531575315241295768329780751298644346370911117906590129864645977600529262559534697176513458129758545134608225938272322308770484575647213317807967084045375289458092995513839993549264234394226318820080444362211336250313746230377567231346797901692859012878193682900562261552253889643845856864857906170125938450234129784966958438743398906564385395660204272121630588073890894321228048749166089225879534712512441951701281007760332311836443899163136370951157733201220468691775355515350473295723450422699329113423759475269606743178791984800736948406321436525535249590827173420997615852727828521985639119251558489095696593788477148908203310876261290416152229519514350819286368532001510858538063786297594856630455588377196215730821668513703162300969375648999447463782167794762772480491517416446012916402232911824879700410279816866429806408242570092040137280990363509096050474053363400788773944734252194600407360945903498721233222758736713575629404323359667082405058723010433790991287474870018333381933993436604222517920786999786484298650039760446684757076847451957693115428421054872735483691085580066619291875568333311392281233868847021459865035962665480556159803162228951187596890933061494835026159275794099494022907093150756939314365706338083771197573204284414276351446340399607484912699849152474394993176347887549956805492195909366799773378192210928233009678042652266720481337947071117601813618524950341186412988304030009745977786890911853919075954425050912387050853890839218982955662073219626440752241819185146007795559622535856813765061664266777440996011797659325385557762815558930322723290022509324106577768760644667856653376582427629102156110211711655077058968545160657594734718596468196725211370973798912081404140914927408150336598672296784178242798228366826809535432779038062733203365651769874905081993585971590556938088041244645925458665757687755991510215994099231561034105133054723165066978616954002665024112171489537487779390250142678321777574744162573200978127743257201603501608524643636452952684732247778651714441072422307014818111692880249124129250387351998791596501891246317900495297749154696751585374560806126043258764532570160157415647979279045495580485847072274853170341110894503065717390222373695058922323209286747094538673057512677890860109712947203252281733116239940962234249216848735094462729442760660036157516524297351095394620455500727593769485375832908693464110329293297840107042654400128728600971317633660578419083174778273120637335493165979977285129333676357327938299698905506869980247301751230511829412462937272897701554188398844688769903712486293339252496281326760957917531924854031977671445208872285134526194993402181039765586872950447898563813888713562546084981561613087595161638292796056208790926100629299347766539563791764777035239872867192320323713863837588962097469342526008734372882002712136505703076650708139816826119557627785956931560335022603935599840269902015985402230763196008156301038493332915914804461994065357870203851505101005297023410029807419025028711935788620734937318585754221687874091168085244363508529726155905056311906059224234832343703071855366877525047180518332051932794414018751540672335584475690489749746160429776543711628467249742272945333967283520125394875936515017090875332227185565822183809016369603940365822714482075227721988561932824126799368910379175548847287428236656475685892116681481285821226788019206729744523901898117801197524605932371047531596376940656779234273798669728527105557649663380869612075644929861089294879956430883318021014671184337985916605598466620649604190249672694553329472375803274470643362207766586955344265629931477717460804889828145211144484584091345780001750358123980359180820562780823525001939571979483107631906841809909732079008159714271836334612535982080557831031141363606162698490088224739639036745954363714051888846992392122760953651332762937420839761595408975996846920001641629444579014280004728638059468813182749651897317310122181445740382037200512974607444774938418101129550374279905110033009965909060743471362236273688111133020148945242295673794837275059120396630205508425875243890890141800014510178820216334634981404258922150647077738468588435604894756253464509246166411797095068642938845532382589434988647366503667481239590179007079392439158374317251419678780083107057355603329419782541064407906858132173263229109993410190791698052359601431243527891842176847559861128213682559913398582277657333943596930024489184050375295774247620683216800017823415870923093766638365229424417027405695032298971460572704969053480367396991666806312943062347034972028424719409691227144890775270277596700018128959277561556977839228595023639752738086710935285714851529943067105589924342445219064283565149575782599473504668537031955320812164815746503737823681695885503853493512725516672261586494807096351498518692467670547760026538591007940660198056921924655282228940336878045126112699860092695730278408958652210539941994107196118844401502192988400137445643368872764025067013568080333570037442423943830791882704417154517388747914602198370935224841664502113048471302852138926066751624997935600336056854099343684291382624923863398096452075555384749808120841699903421283448235762624016154362666238006337386332707803802821607589019432707823415317165228328606523048823659795343602635355679745253965826453890417995595739525845264847028764981022740411236563772869445901539655699242038203537669250309017782766604459845593869024053673409832596513130968013690653753508545864821228029843764070628416792720918903492047018599475006335211623937564987390773698404282475303844185064916818093465769712176525938128751391614481688079030415896203441658740775763904489104344160823076278882955459616850027095460183288914227239110195327555005816998357322327123740089779915355687669306195229638866150353347761816574269941735223605691294434330068907662901853307099230624905480062285377260627511335280955248985712744072834887941095350805392841074867052974214556008352022403447691505398580287965229395868821618995603949748956431272123834844297780778563594548222024113964272178152818301111630367914263918352014019277878815421938561563074440106347079903614143466036877905925566250437011116955273286242982079007987396732393118076437701532478088385837691136473564223701659964325816849009894640590692332117142017414260691035725321297005465842939133689339973015951475551012050647933697884146010502777641317789353589317635419445394086169268388663231175631628841601879015057853355366022506151303032818056879522895378306077597565147385748397553217570769061743234205269415960328249170818002044172425367690605099409349256374618490318385957537943757134765131375320172749001799454210773437767768086574589890021200260968770869546611228457719219483348959301005346404388076062843019059636416105670849458885573558616421745335461755041672677450666593319292950426042103647517882554459209871561682876707226096345760318192862982075755129985350564132122834429506312825305967080145528053393519336868223649449914919211114606729276540188751446446952622511192498315474325623902948599504826798803303133186670439750848944506396658507677219652063468338246777353073203428096145838553195661177955204115876802938733733646364897632554816525168192628160339315493496417015351009273014505315098256459774909312351906174879326371059666910980560042126343614113058310989673668353276808593458477094578992480074090455209868283040675247213581915430864882196109143966984690181201853007637410863128692852602744184133139704767829761221137153593421624584934025213827029543271927000289302277344731912408095537278566396053015434658472277103557018545770099767001584669740710702336431400327593678446469780174618543855989282665800753435370052435285568241560070231620016543754058326855496624426753336041789812793478852605640456525711714151526554622906581305275834028446579690015921138940021493073626905634501214214290109012282606491942741201346663726349881450587237532825782391471728870294043184679349679936099808453672437147373967089934817852251959594237324347714413229888599447869182674339574118386196925192246372907253293886886136404097124788484747920052533972202859244144183702026333802807456249034635719562094098342946547909374614351641558088090425035981698593434883062607516202562854557369266760714708029490984090134796372041739490313173863407091313498933410781034177135021779839683557547715335547121340374481005195201514060148867621255948762514122665107346281691125159375639024716244422522704882552512441607184663156427264431875611845847791070545257013548948277171017757056232489354638842546695705664421457959072123629274115992127147902212114577772215354470843995618092143430235460080783376500553111876726649500264800627937700916525862325909678499856967040649774862539860757198051096957975410542907267536466535448164945685258486114682969610683370431715059308983156399438562299144211174565018971195761664900233126511262885027065798909128220670057372901424876711092502698366083732395328341485105815192799305782723028478992483778031116265706499608303016697567917136742064959351330624883232061775130791441216601046521803439664087011528282444023240539490069888073842872914139002266678016170822088425604693426479075351640304988899784493788621711410596399296439695388374970880616251576983583667559760598166685093163884908599061556507714033938578813111486441333534126584214249164276374634647063717409938952963387701845521561797374315076122040506660876818149064991747064095037154357800597242815795379321198794293789914618329200700567199814056249333342281204186095266517179802838293342021852874286347634317410409893779000723687995812823709757098423814966874393948827789281768412090676692435527884276381758403627324917840708716929323535156002214989847586301330745716975277272632688253137156747979388766854507436399160765032455599544754759279775730172563707354292695211253971109758640497097339056101996121856513797655751226640762048112142871007104367143191887874512351679663018274311208964066648165114006301324999145240155700153321241660412007744842626027059615940131446899303201314432349496987928056385653169481462509645204609517641310258917616199336117942639164630619457287113178039313003288184990561253653846107770984155076788473990270611137393560730871491980106961157935891726768249754731404275926827557982335434459193308564279288700820101530442112569897070101541524635335311798134379428023328790282774803554171193763173561110837656427250493211062057653557646109412728278297779685267083476410623093081206996683467828825292625498786718193408231273321413918853023655319192642543634370866683539328316718834273248684044251820584410244016464649017409452719341353644239663479129897448663682735178717258781860482715330133873715181433084140904352245964858690851966631656745521454891806742997473042626566685801269167625477454777286699194956393648714788312951888068168949699368224358785239783242227710536941850725058759961286777928771441059967984732175103487208849498836416409370376522034696986421694521419700324156658516757444066128269574924090189802966079508573795421841001713895223783071074378577769795026535536574363686893857638718581217264986026397448315439370890215707483482396910392605137495265455393899066441596988659381872700324989712654512634002210771968315886348658728278360732922724150739094345472646898961798439763720832377033671881903468524004633221625828895231328661841246145077683825076157246625595555597781563436138550939176273265985982905182087124673292404486012413623541479435846649206363713442286527017213978078345667286977715074892643037918232601309559204500100424903593693501305012234896573822546751625706622810190138962748105461578059133780795000351907108180238578811757142744971796233264830133566365980994493581806326218081394098971339987517708196566190197079753432253769232060382668487576757039034578035902879449166380527796224779909225719944772746516663859605877396366742131130806520441051434534678210736296956057217818265549392227357411334224949668854596466447855300765092906654269595908348390508537556103747543738471273986453830106702001381576104419971549339676033400300741946065834273414554292065354292035989001270237124356955209398423158030810437618998755997144783182858357290300183713324597303833148019515548033960595662385972103559948999652054518059996405532221634978930956830603927928178842412269720660117044698411429946785663095925808401406735493465112410841692904564355672109481839055905084732842715200131622923950802020385214824677241501336235611207744525493363434444523575664209779644071847951095737308574701940587509038776156754299553817005331110582174970789592070430099408950098890608191387727625511897422685060342026619777313647989044929217685273565346432228201101681654750662652499358591051594331573527729885909059814131831040826901816511262557013972287874082115692554843849204701838254709905749002286743647956492144844512816299757778410059007245742738299507310209962805509824590895832917830941890281747975381290154316813314624994662999604476260904660154580199495578700783810900662655382978136210012749039358249249673893812355448163070593059259806099903424725827156081439587562564611958121989142694865254662816122839186057607066911640013106759794745705189788218188360764054970314636243301624575246743304586939030462167107464276706581677326900213223783181583548846973065674641061420065005634738935492363333832750285116800594844078834940039173201193914970780207703981604358683879395181468116406168109643579770469829412364685602767881093255464124366263992881925640695014797434798408344953080619631430348882625617664493155539588938680629152574907925680646870052070940151353713311643677663866024328806858165334791912323614593740911293788421135009325041376008640548427069911763309700086384893617235747229477765694910095102601511067011672552319155304773632941090033896866948526616882535684461845233678184110495143124005815266864150976516402222432704964914711856323310788102531287158126044285870339967620659547567008465577915471135801890435236819621736465876984417833033785499185398560759992741182984978645279354850874143276702311865099993833303158723861961951435820559289039533236990947418739845188259888127136692722734748934124569156303830617292674108897385127842507236709193644326961687641122513183420123252904555066984245067922359838184029814128358377356755925657996406100563297368775674732475239445849388250878507338112292346557420177521357051855585482119652891567714791286533010149460915294585548922561311651582081280243157625067465934849257534700902202507463399550228750214322529554215673988007127876407782440903507734157413607566865872649802358997341818347012400710827717828189053344721498417180332116280287487711279015889837111647269184934849320841329328024706627858070391048449150415574241830584554352208036210302991563504357421981506854999559355152784646271933951899835733702759832722272597473934431275983668796452127415346509978857223474794362043562622698460329164313118667633645914332420651516181502414965083142770511321283985082786634758623292554239957827217077068292126409754331471250867876132758703882064571869148103063699862982343963774293626836116006324718408811464140112479735403011816170893039819258935801246595211912557172279017101092667454736291073094020748533954778387105862350401835503981533596715104198052682304006225801188548689144792115631141249699046188977330724248158965532488583516528447186728952738318491081066591495217172323542707380867102490052086007381815968750336175976473404595857564304017954112790205995594495185378848136959716724469878549791663341051477481300155143125182545031736382848624493076721265152466669536639503367236711037292261517420872572496435937922740714871225523883963552864227862578696683308940828521341308860162404039690202876402041142805279440689153474947515479289304494912043201422387406918261330393934041046966799695207651384718723889556686643169397076796950827094119472884468694130584181088202541987301568111540348905806917783964072186567672347718422057700262764210590467628140182750307134149863554080085083073146344492991317846508045275489245886854603579188744665572718876219682000180929012537084888167106015388421063150954015893117473116699277554287262614445168353091799734930867100240698305821131400340527875122737202983357350163947491036987755692917537141594045689607711539186343018044089035479671051073638982417700037503764216509920719377470398404099672268134341801355319694033438391383976157145480628295062959589546333290380060707132849046049750165528534275051653252328493041530940659056040457425366143984964693690064724850701772113579963193121007491741746085972726853968808144467122717462815039797010133367846334170582855504034281552540653466457753135799216898704643929327244990648055322795594430050023552523846969340983432606681573649985626358893777269985862954170811894165817719915571336340261258926063086786522258851016453332248306511300558791091977480555352069249482919801895586527521799515903030379528292723975543867500143060479580903427487282527796768313672322465323635947448978152157420279947421704777978815943160695439526015748530958219188644741497087491204738116680423105541816789013473530606786842831291508417402772890605382645486951252963825387690627364846827685396919719040659416953768425712296612752039567905244876703556988270162935497840016067032848228773464236782200512437057154044145264794303483285807749005881287706948263713175413798003151633287665747664892399138016929031932214489729687691641756442845068018296093296823846324013064133122541659862728539611531903819693386280926022871076520862391074697125398284658643612334450065508035622643866723070305578519205693995310168110989080528774172041649228953989382711521629783562901624935260249316517514410050953932994316137018312918459240937271519168027535569652237159925432274823793174940524507144205747005262782283213680567738970254735802720230054186914950938989544829290832351422428412520967518617645327697819076509046491648550593892135804447814249044839031013343876330915836222281409568334163166969691905598912961891772204519165383778650475873938577818205911962382769879216412071389256311156189718050046533889466449793173608992341155953846649255698520885048927785295322051809384130037568411491297729287418401994888302877534059518513296096934243261809110863529151282245125062814628699661653977359451464733814793322715403984438796206958905565463889598599124348769773445816232749821649848423606686484813014935547335828558586848478466625675115907775093717980691671361268489429288739832775777859940056375535846955443120895033138725049549719197195940759884010952107742911977204910737089784958781227648230768223487859501489416166601285747257053942558578793731363424767395377629791754448171329945248265158841865150349122649956426105063323582254800959835310890353320853197656502728242940538358827578867451333616818088215442930800096515003185902319686772454413414425481697792602593971328073144982728026536065396960975924595285409221928086791449935984279092869443189442737321263993817688047898684570621858265453617715588035552586585113348282669467286366460042687437634680785208174445373887513620432843968378143622035526958367624416307280161930470365830129149309812067181632267633076916411479464505768108489658360574549331023300172382690026624717749788826300004129599723107456028803561298156181998337666339393426588232013917586235573356469216085837741047809165745942462130269625424933200749439557181487357818199684022718011321820769941167139009659492364274703184973273425614369516691351053188570655348761230852675363352604815401990473468312083992086871321567893437951650334458512135592852111254962909381182115887266679729978836200493464854487644108888069714649849976592768301236965356461167041554403024753158526741929017825007365649999180312364099295082182027215095409580356813763364163613049978894847340398410546547690399391596010889619187647311213082356420196600734267566109851740636779328144229899432032126028019887388693779109929412003755941442956620560758503572902603347916169547471600731769086369398565068673264206661699717787640897266826295846542677901541710961261543533303863482694784681906690006344420773269112465994481185211207311883166214041567224659156861586522605217122345690578677653556540101215319052935031268207154723152455001298132872621870177520065509351302964007409953975370614078029463084624640043856733256637878935244351326954547545176269155683202553648781540016274268947326012717691668920084867540085188769164141628056977860852929360838593835767600541996915676570745652115243180689379495681350011356345562767418176699583898991461565872909708413596614072586075848107411719758503690059912350745072983863278961581327012229335773587485243413504055354377655560003472955339299078413401860179991921405645575715687633538973125939469181614676566662420647967907361101831231014395439407714464733037725043855803181875738792666490730124365772585418404882570198894041540939383084695085922309916466943954795494126529114165893361944508717484310716478364782936802219608451854626539569600400966440820060972674540469189717349997273708641248209432579647437592877477358584841242220247286205499008578978018741104749154442067013978994960971125208234055158163814917836936851428157286213070804544940088356340919605979602181960243427890086216314756895366482683336078541786953785579963915436231226857998934279742054039036420418683948565879138426270308022613475386318144248478176735263363843206725849760075900916653133016214899590143768357291114013101450063694472968414598299230525725617744007940940084698640397575261650817222543419054770815092873991817960775313968833209977002269335738374509175232446014654180958594824852319849046697612665732865579755394519478115725303660640471431354921982967433774495846099119982901223768925565040564358619517335248984402414615590229278328135173048742239378226268665522127487695283348555697857362395716340101378840922934517156974073339900963536231657282856541484018731050781968427897257401528302354827521138719546209828406039798170569908432322767751026954634375552067063903059938122156727926296588390250601587577415163767476340031665967793979042472996317928899586429359766246976121978636820361538595967920674916113555784070117806396045422164685364093094292053434956855684789130043005485080390177669869201222208177987910466754340030947052173714410943123685559305814905435679540899753062273217666822255403575656716707004041422555550951612483537493135463647300756258615293091201786800966425201419246585830115417591361866225253425234875334101110442381150554098242773156739354023709381790766225122230698069564425438446565596195828825504897120068295949320350509252275282914254572851948822556459080116585460759197468456189528393446929663982971206898586963196870002129584592629319200924012151307709809875636984239583094016992611040755037987984440922568378925326279892485881604832778238276294021007531027725018552500147089287141901027193963320993892541950008409247898566036309825924509122217249756236025253288143341207583658747538072852545362456249428925255038255556710003084871738895471606174910871691644488341042323906922552570388880822759649310865631974730919731140098973159875072441150765232394669460195081599995882051733932264510098471058034355456750823975397135592707092834971981320735427471414568216780880448999535018832792904823560606324589597577126004725388363857830269344477886762081697653686365591682396322248185680266389738421006062940368731444433953755451782892767919679592821918561028591721519301488313074934480254851644264574896601194667891436372428690740984320851817557187130272238482972049934698825481523919166737539125619609684441566572143940255920648790831787325770650703897572255727409866367825798829227551811652813190773720279018493247446303591040280346044426144311448322505522008627876854619467568129018349686710611205722739157579672274240996215119394415495966689230021740858141706138785794973058557559017619618582993079326680708454627193864242287833492857263453393081777664022899760705100774577155102555166757239670404621019566966849348679187201551094600495879784756595323850443636527113593442192009030074719516095464386908992455019168712576195531097049733325405828763088215175482423943338871168268921138674718274477410649929781158296305625953951893289771764918851635054445531307820515321292633486898589981857191833561326337830993674725814617213871895212917694402829367462326611289410404672457674845678847891791573439591190046588406367252761140394626318206786928808603118938920072912136981949882658186486736861172319132660204308950918064058432916763813145368178041473893518572023600726813333200490975667475996148803504165769235988062014242323115377470868396123255362522104183028838395466371702092302487798395173007703452302748860290419751783297797405836536563477319623176609454518709794813208304792414859823981209031078367900527302607231623955097115166580716249274975927611677199031850246403398117916459924621963461984915714691941336063763109048738917728111476291523802475081489571873443362317447767248475129670990256015194366667089093037369158038652809549336826636041670469083938122089592966547470206023590350529982260953817063391815891624780344689378433431515114966216777239573528472105465284082459913297734534977227153912230965021503264112355362681693699861139905958567743961429173041879928492825855807451254148011470569311544211060989829681245212771301090841478570266723934495069357758529096158954043643049037861170351913023064473633207645622963556212206370193716452516393263117529290090353655192467162083863517408641040204774464527770519257361020090868672106228249262336352118612461153826801066797778197366435573686520493775476352784163284687062769808216349140072316237364301965500592098712303479741884030076420626841198302927440782999335355123675282336274622228992272248250771639826130220351336941017381269826949729259311676931997597611726508218673961490023733372278740762308799415652874927321891032528350425801132381510669031040453595305513782802776031071372983051581866565529160586081819318416899685134890641017604715095032203579697799872635255866491765918518661571833407154633177730122145112864989292930575605708894213980996481806314124395205419710332500251089168483437358639333039737318859581525749909168890975615306385151438297318374612185467135783981626489386016449575067534261107022822528068381256538080946149001294307292684143186916155764521367614308725194410340047407083889306758554364297090223854122174621989586226536198686900082736850184747428016065319330043085205742667947490715071412276049400025796539354421185594319230660824262737670763516217895454665231727756158672870702959636225042352165677599500676185036417571789735036533473134914615673416406607248138542021260495130160293038941088268359979957642838018735921046679794445886085041215562556975117225359184673808955206675856214737067581359640765787723745240150723491779046133437559714330718343880373252638330914865528914139304117446192344401886836005080060053073181109261353870419094014367439599383132452465749182729684770201344684884671671452026030993619379028781359442438177651220399003922302840831541262139761328929033277946888348290697687643098174328985062566430842026307730534632107884887019364342449890253425053745556151200233449136717960166987560923282529510102116789937761061217196691350308140698794982976960595113161522636865930022392143621500847194730473412077837457029160014143795789907287822545556398764142229823887712640275225601443532630761086851864427816802585310518604782634008947409140708898150923600848866099430292396792629029503188686162938276428873488705680941553143015809065198613170140570805410398701192664751787995926148052031739731465454877603483667090757268454058701914328955451979115689204015685468567350072957043992290036326810029736599752818265143386635014251744438640724022033664185797126569741538759457799770163512718826323912736114952599621691762957418101931449169966115873687382521977309558246799570004524121268649666441823980132430805161233081822299991635878258432931428722383220562723072278009433150143503668776727902325730788658706591438697884997422592982506524431754392628832075615592261933042419372292535689285957453505359407892982468777647970910727648718201212035590752509607597751475358564628468374468596711791136036379035964985090397280857016737676334224955978038895105772949043161868212983817773048021427246877734745911356871902178721092825102611127269612871198434934550012982346067245070851006278880464749332469607735034095774682810014767575929968143894401337491132415801259146202316865263761682961860755431123899532867763367449169276503804493832859504721641570826962055819379232334254021504888392858013975807011074234359745262079373740848864753311987577982443030083261306664309660126056583925816453919883747676457443468169679161543453419035832924599401267790758497632836891220064352285020506150989063575041962461792541603006272240454265343284382101431506363230603214590888361921446958640308411683032119127605138556069893511202168719180094805904785548967839628573107476808970653133744634323585859493760563089566890118846743469821316890311689502196404652310093486624911115161418935356966431859386253369010702042274983192139931956479982583893717720594220203764711115320948471383839701893236256663077487831492803555589868840460279582776769405435967467583950442325089854522667803845801819215823641038714838962634302316972178070054421010832430839572300543193055916959758928638238365103121591140252092734372166915408139910180948594967444211900983545926937349032141501742683562704117616793028400435379623293094659994172449638047508250281214888749760947130713115826934251312695966603970637109117562256411561067640271690885128226508382541716997723901985267597218926066012673061292789095429770824275900905394790057151182329717145524369887445850166472131568928548156310407898502864524103605207260467843212616550021060792659292551917962252471802454319248867696659750705069867954922460520209857676737010428274161431722753278175314663784966022245525438247214675332715622718433373157215390075755810434563184277666222391054277710761195220857902753613800232830581723288373863849106073998760804904671304023203104708384650402814141238961023453185031172563147886026287346507644271789353010043004386945455910582912675269995902989254332217179919230534195299895025055166334619158622121021752125403156313498422174513694074821179299671646388921811038231152468237640258889477222348673116096527245906135489498884997667494713539823569984727194948675374113852171127483467465102068474555504940777933327286025680566273720430192940049251925621356676018491085787856394434375603679543222280503193123557621648736849730478267569213766102861194887867352087025181693546018098708285705361963187249035575778079153411949298737020178513872295724449236890664287125380245224444809908829375001291647637171302130039816241413657590107599360182004140623581292259822806682248472783669749512237014988879611917609297386681367763617341988883325709536780803292613232179395588499093183041070844595420616075151369841561669068683998226561187516980466855725921343993970113565443585201542477418831813109174212211305874762210838230695046981687398893326285770045136639838379216791899053515132567334254577344475248634896196402778028430681905075799291044783128871609034259896036265608895857150272208064248634761687429116970879131902807078964370685264924696180669720740716546179136892665955285418567756835060565988537377593464060332169293970967297052958983664676772526106039951860911316964665347554505861883220265549042479543863084283885569724269149572647589629773951808786843220078580631765302120356522341883823839699554339674498837670398360766702795484172503206887471044608505153010361482657961331698233898999626068677540961513870846017953177402634822109208080094619125384228390357719648411942877543310373779050855061315719706303176363328709916673780277728513747275926196799037384757795815336245278264814041996306736332612294453803983334083814740370265354320176752439121012349767028341370466350445023264355977501345297452510293187381596888553312845058371359284160087917078487257359739453244884376742149787857765070110975059686622680364893453391597233486095631997877360609807071969929162359561432895978685932189570014600281761446376232873071275936954605070258780231332060372991491322406346243858086307817368717797969968192663214003957077525505744175972404583932123967722219176094951876524874846001272666441993169859809887764825419938825452648656116981006859820488444263539314487823120261579908568268047746691615355531944941678439859305582100298495420779392248180654859243600010542199536226426906650293844283966553996997152981305312968013356694282881095879387483919685830207744794768686530699883512374021631645215189698982041718761255465072606965597384238302465121932195723963643383216178252832726885232806305183578486198960856926758846308901826361962748681287064202403808512167333818153187009077605974161946041074213581135544122751807346382332493625129930610285775881597196962772452616539129364354388436752198502216783352426427853842318741601448386925255502581556062858629382066585240533890932276730090468303854127863097338778506184127456130816357156193799491872833095390994978062987357358672527128100626478137733224577860897464077816519852209856269285484685301574744440472952968321418855056481639251031504267339087588114708328260555795292800918456540306254417783758997117864525862776744708787650518673330507363753286056357427384897213452254405660692006232781665968859565264340050825723312113625648487943889087063173056506095332295650774369419277699317915646497982332432949272372744557905484074688779424496037474368296924462123511946842998720121971684646133418433436730481143900201826743334316221332722651937411245856433126986023092619017818044439967833174662460430759031158437258599351668271301506647353862635492708416075624084668431169871779871333961625809130965388341355777807988090704588408437708264153700944266822468885371351112419393484736764461665690136230077047371001497222748273822007366400449166404899243073519419160128597267522765818052809908821074175908738263890420368238789177828441993867141369275540213075204365134577217968201913323376775545300349343252386043299535439340048062232043936166579951712595933186024685521087830631224872167387976169520095327311468508401179854506641536432032612650089309766775416119684505837006111982179441398010906906312926726523617258808883067550255322815291660034678767931295404282098737563596795383349722762905890351434747387671434171155115255172354818671728383479294508217722987374410345388126031451007155141932477523886573486396319729240434881525324751606660960130665423776360334859983465838525131750721853022948721335575707514176452633047921256550981768723592496219022102816679365768038975774679601017925388803110648583174918917589858720052680993185917078917138259987610379957608613954957581904207752360841309879167227424799978123090532181911553368739509674268178169326471869336339239807968088381836631575003070691617803681852284293396153158144661383701190710549378848984824136590204136268594301670198352418704528081521115072380503832821034190445766545790563248438773933424930945734171205043189469758226357175764787192856800809000012962650470996916944687273931608537163973269327050467389412618983583378236422892220282064143053174879340896588010233713361926227884876115528769650075951131730130997370428143916472107967205584396746109950441681862868645161773130949734790834819014593567015101295937005726476004933774247065246711856034830964726368698801532665087736750361366788128248392151601174633198154478937849260141041760252019743737430219536569904685193410885662219654381843940557500071959180582327490611417218752257258324818201255475003715800372823460545089713467565527717457779324854502929486185373004129538840049841385036372951243780179885428210885513916312077507288782770272591305899122923687043695807164091846369118460626443775639829610005435519323404149522867913546768624262676680673255756341697378823281748803769000097173426544267476006281466815178334133389125888345585519623193206061224139230435657678861287131068698813509268621876721893858090504028898396923662993248318166798603805106442832186399719474961058470113499286187242729247043403468815518120802189830112219774141433536931266358078090516444756189994722529699338341758649279598370281739133414648297718309438109458684293111700890830925249511423182023150941292255024705394365495918500191618221233211477670890402106414861662061687587700756027572210123208455398288408268076985078131622093352309467506759449951817053067330823644683492603491236439659286520024179830968097170531880252299405921509075537954201128354420122197522498259885733979908530945957748565248185128657244817471643585995126979994126473667375822456062227589428645732094077079470196625105879303926304037224281284299313033602533913828876033217148797472793333860771409302856313157512082294302666874105528706208870916152894516692442613350189124274212373543267272063881087240650679095520997819515157590256905156821484869899510829367941739567421161168422460857964228676774094229039662484953606626741589256872437987929047917419717531492344788143545629789122025090269226408520715304228210111708016976141657679466011616327967626823904694666798424433338160223072314173763339491729246520254842032300042786010023123871114179121022105161070974972431335021966801216744506008157901863716986391928226518692900467864266748130785698853340454599786568342283438968994017762175995643818049667246479209694559931919044679733986586620150327815426726109081817139498319561426036073311251097579101269703311574298057948658465410779208599030468654798333014245769606869971525809483398878944149838959457502083020235384507384095753588439126756335182991565237940319825858959471441082834700822984346014789225628168734883325421468456032168397582988329408152948804595576344180660031927420832897578188630873912083468072632570895859850919921584479825233543751497991369034314680695537585156379369528078491319906191454794276024626245952734153310132649288709393185047591787135955591545061160361042996088410283848538068325897509736394132256130172921548939840796536064855442589777757491488291019674363317803078261664130633479887148076556362589488772748188303423241183442254479107292216697816354119643346166409966763774190679959398122741621189834837571516833636309714188794165668762437414189018671919406360138319291781179428624973676535776969974653164412755197499866848854933272130754534762121510993148283102641721194046213042501570173337544748483225443053544536886166730136031193086757175166309501040580901984833926486779076140047670291700079248225849498375480748929758067049578524080085944418489519172798434525687162484589738841610112491233732861146870306712404653707443463718550961337104833505087110425301420630205632899551410194204794090235379294473117263793843893292661226990227995402332978734011745311553853970186770939080536974463877829822752005133135355673219530677892290395647598657452889682256198037376314341191487097074010559198746866287820321965483930773151973404445127965513095008978800946831305691122589688634558278462933291707007899146022230082992184072480109016209750196133032268361778013883445407650770828905167651860398906474704048851121757846830811227336344751659232177545403067161616199801135950062967049378313014254384743295879115241311932832548822745861693490835871349856846414774988082077307995115847636297961589720722368339617505314319692374669756219279434127037458356273046458997992520984368621662878109654616841260219093734221439914947894774544005209555911420803565936607905153231588315817096219350335615999046098536403130720325653771953864627806263666756827979663415117877098305291680518623267058925726317700393020189979866893116784549964031147994059237870965280744274744440319031053006992480084858048668743521011209566549012495916462635061383874478475576085944514126023428349819350790886135029479753191027355129389706528711858770891482251146507331441968094459597622125877379135709086561533936600250086291343176023473207658851097560798744668307947432791311201017226587758692177938603521151797370156366410851415164301872657548483090176038377016540134348198611116385414892619958679314362774295236304210694193258818083530297094520043967910615276580706999705645075429734806457004156043060396389471483614957045939230723839233524325118702867352553155934939868612541470147102178109631003364436916533211438192146066266878165060482159934638538492520488624691516694607283274249829238660513501524669537353043138694226965769322025928058475987197440625586586660162264682096541150519757970764231258390890566575889930173737106145339892754227489765512626736865974666762921712196104131943916165748064738803127643566105016676116950558242211715854130069270408624391596762688971400323010430810680342572164577228082174562765575482974968415358970148390924078284653441165311062176652451362489187118308372069073575250614870334122141166508975249070851917065430724971334598482492364687196608925936422442833038181272239342065230535829254773878292191888080854586579627327074455326304540731428127909939283109737663020806624004986560568207585718667985161740784211373183942483916918385373756603109421551104764383311716701915484862769153923632535309009658686967437172401493305011133005679206671417583307598218856634791920987993949828193390204132796343799743060550395339943774470162434465024151912583886449752154353933546273210264115784736858758726812764947303495525908678403285712760002763210763559505339029739423536083123208964908189646812905194812068651279408906008325929630518698730268278920524908778400496296237512806175298612953174037450142819919617553618054406958961787765799903176369944431249092540568484247860246099787344742180672876403036015137429661533911247820046925922576570343541387549167512896639737052454016943986662285790682520920506071611604790278928349226593234406599574274545531913722863474416857788961278451082929051396199187074305897463016400071715673901072169863572820316338387424326440583406220725954626570866843242628509327906575425013727901063253695171789407333615735068888050429184909873650090880046872209270924775593990959417983308530650546207492553519976473992866433793333636176668760839996363562526255881473769825473996851965310447020466957500610626764552853931797612418643055731820855060592130696184943825314050906356604305758538488238196770658503541182500519975983251762172522121000367660027098205110800296252564998612866316553158638611007060449441754130390489368185750055936626266925885331365753462797746795771892348944740020543710041315575603316190579995453490041180045384476794375576834092685768681280633302965882863766449441212244105825636681501091509054073101728290452130302043774820690607311372957125085133780785734964200519999762654665999937273961291232208027564416637007348405536121871707507986142498042823846997157718262760563646865818961258147283396879690049432908722294372406644582107054033245819762489948918818983513904968819917972786458486891093130747718103416423432933252105034868593371002411738020975893534587632128814731621977806142368382105664071389556931990640169145305957299808241278868027343613024578373938764201777745274189523157282223778945501930637724622502462292203579212367611791149472451031814681712851814823403369778939974917986267118153845031084274227113426854621579126882308415320434345954093251457488878212049958854071347769425310455856770680627204672287931637047090331932485835455113824165437911240753776765995403260000036998354687089281219970765251008953726465257392412791921434187957678031008951951777331598465573072940287295689505090607437453559611203043444052430404567888525916887960546021300776007768389507707121466948317715188546634273619919780210401837759237676348829575414890986978889625815638720553363246984634414824053463805963929232529809067064934077215263120381878912308022247701993434967517868620139313054439093848267234708548103281290615535208062604215956267184554508397601488837750695191316797785040694170902692733379165681250748790709865972957775273835904248709867764225472118146608137098383548013249765915501760211071456248805820596696863440296873998427366759327914065235483857261545022608602955749060792323688623149147729635923213373186291827521707867411468653668291365586482953420003708727649765269632675409702734912033228885311650333119113600546223000411010404640387451767404716547288494618128496312091382602826297930328798994615294427771222588195340407351993359366800226829772045219784412108743819755275877136583374008766512310891916261335953649735092263871439437505170912995019108258290108281669870181212900732570465871787287885051888723665589424233806740734091905368427923026960671479623333534076466485872288583166565328371805472509879767308987486414383650921112732233313387489478831222974460354684591414014126864373263198373416865832490920150744001173307637445451736423636778699265707387752116242888191883787062831025563220285578942850508725297628606937966528976010861609339551886310573779899053039834388936092860520016993533573595497388733322640267205403685816852110880172468675928173085358922893902072713657251992734287765806320682150451690342744132194103956689008439793883533374780404056500448977327227262837301707342910727430373231548871884661599032863834253122010360472492911400480492279194514612901536825715214503735386397360076864369972830410314637176853690661913846707885830924431626584596479186284883074444791290647983465666136559430843287080552524151651057639255978566114095879691769218827074309382882105844965838168501881428686972486093551395167220490272558380543474680010458505432507725142870077255965574393223077752207460633391255120118133328493113447769282677963765453587038783280287681414683379066832003603398707923322274829012942705265190766084143377942094391038962008947271625500759520637898742046223341259797919010672633426923756932670104616058774727771063211076348269558415034702890125596059762600265419372780275357949992445559184266407166591922982366604685170419512097229278204951833539559884904561180398762218044272078816483657420220534789717170156679905156526710882220910382165175034342991169301919693356710096906719053937529311143682729408516217077114923453879912737349394244170757900922159394175448477068296098504970063031292097850145071549686879022118408611348570042213981344423634819326430867116900054425866028199711038111203276944264965952112382723043860994022267588018085259498715699256227543476809738142322529522995711222361733489366035974044164416006783660107574823102124344485095514205697171615813533624718408548088200059187395525082306064985041250713225203407020490874089148614687667146661083582847552574706352155304176526314868208285725446699899081508811295549061790055554229754134642287893657651396934754117949320097191904483740341620319381861671285921399544657499229532080522554685446869922892707066582021927699924609743092135992480949022394840317399277157362234098540838929213422341308143509961152080280134432710237100424702226536269995444696642728166151868667126302633180009642667010995654061272900066595301409173646367007674851454284024127010717775030290514275561104048481392319242447168860451513406736138369512595536510691420073626112324872403534750590200240176540373384857853569145348882194343969423037639228410042153996086127620770422631803063160764771635876992197215121024257831059886084168850397080459770024673719967663084878584526672034385979585743512993446921669962056897096727715614182808216849013055493143997391781616733246170182307428296949067950799726877859117629216142165163355853271451649025606425220252408551697707202990512517669971318303792418727592110634768477266012306205723963232677877974248854665197943605982275400655499456626333718005109117491402467117512634639758692009381593576673638890777775273730622608630736152349741822401362227977720646129573382948633280014291727967499791474518347245826639423299148613232708365515212161590436986707560360333184392930191713897566058045113584156949651938965060848836366795921766239347068361724459876447896493624813881047358020088976574369713526875923433220167321555374292779043209052061874898735671605898487859600310335455137968455143514073221046131276012043185098433039777671040735611787186911447228479784329802046861950860005123197602030571466289927105115423696207631514070388300944117002964685753255449566372815231860074804919471675783466302827785452968875428936502822989901804011210670029051684061104884118834599358366452817369955587942330644330092194051546618410316336364824116326728526689400751938833619959426678273550369852838638425956870121217775888244010539445468272590819923650220854190511864849130355496020844587965194054140951584634111399169437847461905309574639431484601032799436315116902344524282631600731498764257789780079013426359942848269842044928311360651219100420313063270379183508734453552219152191924290289243139016473463887092494482177553099779997425914933950818732728005550288062742492808081514486594585536217237514568844666368892166082774677250947229823986854164672071194895664774669877612564715364246041561598272878921094009402689197816318287836686510362225802242915271121997796540556326443369856880576261073868805910344575518747084044582611632159781948039408480479436708860585518248971137900546956241492088132351433450168301432820342745142296136519268092766571888741746891906408949166002000499399300721385572146222747276268794676421668033898607331048224110722980816118073259086453349189986818912772393313505523907784168588049331216763056952984547905230280317671381165759654670170795797625779387520371233458074633760486271006546264480942082490875470893472280421228595816930864455891423572346321834858314311321922644219058962635446950875218655649820100785959112462852944782645487662418090665972208005007686140593516904756380003056774923019791289916484192460073998238766371607667615895265411682548521497352182863759354233750324113305256939474717194661904039350718305038486201205459227852198996539590744825618097803484946232362993791440945145860811624783644483439702635700981743079503914735199441041300557723482330926436178281500386427097156264791471835562826731626912389335322234347027694787718267125233671041647855358204774040879734017755510102195058359139898663231354350986438201435401346717914241534506111285961351257005028170093828796666668770805953801883427804972877168613163783584089412317258761586540103844741845786227988488683521239407732141555045018756996987868659078357128345702969591011740032614499424045736044469247932782062034065237475768350989908409530431274721886048900146736144032056680970066040539435064980295249696240633109952017009017175960365562938314182840010154963426636433056482277664926939481106280039391024360873479767119986189092999836842619239829013109626694473667911951796479957248748816850662115690645357922227705995407585251222298824992955369555306778089158677243522774503070547267428816529895014006551146961284038528887564782615989876480459733186928670956784542078221639417883503512786335092794149716954696921279685157880568335296400586745981274911858606551020594583792675149979357341988555104940590352615097725793498560329613348211561961988478129528840871276116047402584941506000623464387564876181944195982480406735475619008098009813239744086500155267199556838958264502876108167928232412588250129361572556156344365961872981554745946509231440047704954478649692603706465830594222624009212578742872552371151744604407595002282256509096530292649307738288575590959319300049979258245720794694355582958973019727355308513351043999586307545748939836130474546864541007663361156151175444434059682067594654665115220453791300766112994834452190093298488184384423384184022121299501433981421201567250876210376072036065749462214965122508244477569045923241575747977652443776873785576170004396980161172806758464176802015010931661381353984763313407806102811622274672494880788776439562957091907671373667779083447060403053425476806065846836463178209932841293089125305748781111403541108109381607237102246473189018297448023419598236719416237253909876480505199450724357641309180987574105221776777185075842153985520017696579496795107213292979386973500953615186233715298223545830239647368601508725331865625198623981513663751835404503475943951359549913194208132799237694728033386686085125277287239847411584850637438111925710063774670589762007607429436993202689657414466828056002566474187471061861658516797049509312887137771929444660491161432724640761230946558329129618439969250970179500504381367543350485730736859136869590908439754411017679069502413630957826894800909635442677943563043392392148243506660522828357016647528086919304572870075822719809475796689681497221486962382048299293175129126621061572030680661786829210076229648409028610874109227320382055501753050004371833866028101328874989096448549689300367089061175936498178054317905082573574593417182718714148750887358354946097939461591504853543724882912554032179706240023073847484541874591522135078652499821293664584830870359400933670237147638044528971865354126993239175324159446890470357480875070471589791130916251735538687107700036924939268613037183750903131787663025312166091759236803458859828358143321931309373673857725449423648808198978355119954866924111301308424005858001854591961478542056947362610121990176657665541453458868465952289140955165220784823491772530696130367899359996233794406628115385669899590505988212722717119342880118941234874827909198676936772539327536098804477048231408978663392228885278900912526590128122653618177009659184477300081305818878942457162259359025501029542229793740358613642787530322926900642125563985889309104551528039362720938357610522271230361350535406462311074248378610346640690352914944227950285858779403392020884207950731586272560333026375350734571018096428926529066357332735389153619638660412728811412591533963441771764350701739735050791539107857901167567434917657415545697475327645757290987868587106050789104158259106365062495226152524294901715955415099465547784203809838441238963704587747517710600806823565681338539351590460848094471823288247444826267582853292132822443475357733483159671602502572795569656192349924517553265176389125395063517897432629529036930350800835867237853798551047419539683669321321715266827922088996672824056782512436464136659587352724283180211300582590903247610930155965078191438465893602560625268081215161425944538772249756481571108996410807518328687832148445638298170814908949550018187880227086710190235452946081941664503731409050871852407882540481083813081369249110355004043592376614062395047673777652725801427161511338042061794618608089370073648975913921383561101535170552115540200284733917986769309867289947100361411596140569541495025256590284857795540720629977990105248410663516388245482748146519121502646623457095396672518203002712565832593644882715679674222794160244211474574363471966707419056964671601884840349360546547108468263632521691363973978568700768886320712202129805670065233036082686463280806456453095497940156262360045993122320786421386456994186197415535576856798002622661121301005329910255289727521771096602664643662289047196767331390939573753797997440922603108291703296402905028121963410787411107039865335694758670172590126743787885490454393522151125107908254946484623026152945042840418028701213009028666552275207038795866041657112809926129750649537920242278531539594196330220496835925052679151476764157406716493458649851178508345654761230524917975830610664917880466636740135675271571726259045628473092598820747511564123125196703990392880852528279853488656162182318752898257972429827453314453237124022811668026058249573133554054881393533531389429953774965378261362679711350068781117192024944507683767911191374536553141363546420108796657236566584485970321481131216203689115395496683824077312721904090137726429578734607766765444620543863524541407959431257088583337535936596316995057029811724593747763708970557684144920271547580937550968633308923753667035504309673990782673827677108605810972911204864801282478169229210057488616961394702451060055042688525326062297746258170299998927752211628522157375532350690838920893484271209656524664450374373152493810098704891890723655832255233797244050594518643916263518782399103425382086099591637640252680521687024984067057733217680262749392492746453285573538920582410494499782441027481619396035073609862152910034520412106552074169827397905915378652459599564644232331976589094079987537864288713603797927203546231803446116224852626248391140502158753716453656092584920845401209349513825996527590095929329337202863685979881773993952464875971036037313943602076390563308554544374071575750014893392877373401855911365534257739929145723101050178640786007667079295869717659199256810068582636563846339161294354536044439737283769815181373379276203495395927474142746484492732276646778141535080139894352094661652377070377830678167799249389726713600761697185588259096088179127787318473079425975229040705219806293625907116234211904107379911501930561618155461907715984669547526167447334136054653360498395047804473012169779030827339250162314404002666582639003637356391331800259883101651556312036205453519486408143597174500574049403975829516452573984554588595942809750926788379230176198391682563628572019861402226759390693594988548101993216310337612578357614697776899611485248659798060552051878928955994170464576207444931772676188856343223864904092723705698253481441163845914997171749402026206093049923988360774456192772432575478088014524463897407412795991215900215569247359412874445460559011380309664101826454024327950051446695064482786377537242600273220795202484813813801399241070750969327855002207458194440723750833631755928068790979142147621822618016657305341436653359072592382462853838625557798934794785244684471150847996515931421954357528966927215448068339790962676295528252368723895006666442055352544544624573387478081874961368735881769811810976172609591091905112075207688793583747152564527948689375488248527717918796540800520101655955424021394017209127307511998691285087608972757582473962538573663065957364123884553129994772563583717922186190696825185803192888621926093222484400398426877121002651644091624776030316200434314557870051925437388977945188142874979340295852828952017685169270629666792524583745050049623304897662459423919439854551485429913460200193435389630603729367346648055676554258210356253883163242110218125481821129544534626363108296300632651716258531630553649643651905895636596697234098889447504061446798881097001427668625012090763958041196473482476697443167286792598569669208577611465210611076927496327623693665143360505616275537808890253469209964448590226836988533577275296024251839045814749632267359755247532186048669971912683211077177766838597104252739087201831320173000782463578263766279320234906160630711614397054775378774160035174063174929267918253107987860259673371591687144876805110075217640003206564912213747582594314675650985711098448615660106515597403790953396481855655238204559192363842196746707382863883055448671650602052549758777963035780390654849597555417748173278642489861944258605504122792966725850524757869794772875996812443574754357405998289733958606798634799135918968786415341945575260849119493684876806248073015165128618112599274347176098264320534932807800564802300601377149915715497599642373921097367865137174972566342233523798455024942899172236462335790652593253254802885371528649267746988875906465606256573178802083964569420018626356669183459897893470169679399964815179393431425875489013914174832698188527330382977702608063573188925762006739711276311026368874520644169816936031474817268533594043575815478682190806064426457833840090855472976547898433678710125487326881298909961191698110466354637256098087890660652536109328667857780891739373932399935643983176141556320514596558359580639143397003917987918371185190806036318161250394735667480834821177957964610392113232153570423819238300073254266325978073615748830094786613334513007149089640089310944870115681677841641680256888843987557322350565157627566958719774645145618363578789794821624491522483685498951740278179526680873230070945095980007016858765720797411807426242049516176510357487071479280930446425803914979730379221738100710430449239700778649709871389678995948180044070963795824591701277009962158657255248203060472597238498910194515574866194329428507455218319087098325299539453677655608905405481930998729954275786020168823775744338815643621735864824538799610142854587103456192059255678239144968332126420299213558616582959895674742163826249600179565643403425691898601771600482375390238370030356892784890831480658354975429068561594651343869200137486686766447323175726586683866102543606937940926715839854507579321618685126654761684140442398547689916067371625408167184808570180260453855206064677994611816599545758985177077970633288416021981766329554464802750705749676976030093611813115916499670044132898128396194944973151221672794381234850915338778513473588293337967918453321231789934382623246547758230435464531872591576891734308553228509824025057258690109541839792014209926791793211907758111623541818504015320394108980412056335919120822020883288066075207263603954215920373300251926839907119582999631739663223969321054359048544200083841694153813479120705205998765947950169481375073570338936624286379060154091975558913661636298292378216944741101823915642720051442326128420519596435781056865104701578009920474723940971245992815316893250609774222663928415962592396645795474351056069363048397521329584794187824913374721649461522817433882428910974753768527161946157164948891454477867958571692967552837134589654436379788559761705963666824051736976807824323815365095048957414504522246568820615341018597618485651409856372735506303534661588740259651855940051485457870918627835135818864245963626554452315310194298461778090997737005366399359905674789156375043925013509194026741847608357496997553250722510885970961559962593006063238898965283085573195438284420245445338181952230110505209530858612179847070937457016879430982060760965294386345000454707052922091552309499997544631818106897653863865106578089083225657631743241328389592055431153219288264878883899493537787184240375878542774088745209137177291568485384700539144917500773636837907457616668233955045061215879980081312537037117979359629683976550113659623612780023145610403180881321341245075835391905358556704207449795186598086377480918624522218798264421808750669820651494763162372874245406607259736758309662170402830563329880957615346117034418912609496132489283222237318560845633382819425014201694756571982161823955943238021105174321456810626166455260119251471398613364002934126354388749803054122251623887681760110964735711636879138835819069428095417683508625856225856349960151304666385244590603263353127986327345718914205862752566660731999801472859900207485877731983329093387987979859362739395620548491108592055561972453373408968952470412078259910378371881230983632650902339427499225131545787460928930705073068851812513384249368176938150722228725688508545753201211870155737464426244667869175295522213352403729129126172735597895756199093837276365184410394324481351995938845072604948854831730537454576651126179711274809609224383266899640101805886380436465806084154040342080629513887137277379453286253320886668460274013474282228309918324902704205064657663561524539721913983236353037566786970673467440777525945608312017781501949070111756212710788919786456494009506398618885470054992827471169218607757236492633409077667570450122273572928169095573140886976428830843911592534137157969267675556116315499153280426903050690690798618138669807815261311862493961225338295995199641808757246096121585268117925529047581342439698706285599216834101864597563062073020892752162845730610105932889247379495848508031209914696726702390629615251671041763625696988147842157872330207330284725610174673914940254062945380588355456171147029048785972289459373062743865048249108065675032206898517655964991260946010183873107315932904612766667349500305495883064137613673774302250207595508453663907963414739526767642797217633250113951696793799373568903930056490090661149901310899918828363534344502034569267148131065373662079360679715083619354955744247497934104896252880803789684914665790854044109530767594220957716345029255546240773241032736450846498500165252181182170245954914964218777182434812861030328009099051406379956300152103692638026119645737352097093267610182760318626331490311900782191308522448263839572947231858816668368343931569359430507041358240717644474656263201953804392480788945283264505595496174123208328639025763473834825187609268681127168012395186045208213747964589240065161363999296475679484686101344201880582264025697492091665199386627314834265126135768686799022665453660960662027560471055437293900639682142829673961192596613477002047404431482429431629165220884209871775986879385500228824731773955066114997765072685080946429852634799625308006949676932720209620675954833587215282901681085897634020366482183092551052431774729226222364208825756674726794771621977949430345715110793139339273375981296177755934655355882449160592810639218254014254694432672552105429872164307968340681769187680902966172498362090548482414474159450861801137258343865729689783991983147702098904640287857573685352644805518828066550225977690558679919155518722651506383222093396761892667510183752777384077901653485408692391069089199951118384581563089201172661765883470753406399701836454216121967519542126556402951985925976537642693076503521014994473876868971994934307500530331883876274854618757772671295396354259220262975328707463265982702688762126732717427816454909668232861968196929470312698194386496215628642149269118520395866525789931265482987428798295109213340173535940896313385217463074260970912525906431999805962984753061064517690130046454292518504367780736707097059393546884768925650825926866520553807293162110601071048125811465753860749646072793770706916434813257246202067626178550662389896118455728579493781555523600169891479820168100093959512087832653595264007820573880848388203258301262382772284090849928565885237845416815555033292722998978911563580731957886223714498545420615855985050779001360080519509241166275014731627132959445718654371368987050546145863585126741126731600438386506226281981471443105563627648905624488818795713599474260006710842901307380710920339476476880038188538898453347268125357126703119696926001781327172323435869186714886561610633247847844729071987284310311503890882158596712298505948341436761255901171133421726013072547999976785679146565965368487323706947182594207916032736072412568136433142168865331597315668194689977824036088916809288686817741013114332879458280820322610903846180301263520330350620628339810396444669876195601296226091375566688517035344668281348854813822589780572030655976004133825737199953447241468529234418598106714686089243978727021982396236074135474962703628696763458822548283849985983876750872389981864128801139136529934901948063980113783179809235791374542753976277388232361631848159210416772968017125770131661634874268912659253509497560736136966565747576773933435611444681189255303989406758576603008827104150125138707244176523633544827369259350932183952198113316648386389654476808226784330707636315796828161155447997552982998089916221932498019324196814182724439476281743661129583631736013437233712607315230311693384184479586462256806179984347935884917674912784232176077653162492551913952169010250955840530298221000157369312882399885878791483183889411905001941370568898547319008048299165548999907011023050759258813344702477003493241545438450901891072417285203693127642750468365725978697510656943107272609522062218768869422144957010784290555763312709700681687761840719994973236966924712390777930488674461967730922702238358881334608628907995899240787141819320348918025337756450195187900401280875491834827884327337756383143327592496392504791841616483726088054347302101384550102204536947030121845080499629738476575382145397757947360112188958882332264475753488581484297006186823163501567972266349411657455795894648544584827366433158644977924846304189946628301519772406122871802515671779949594403814279197851623181767910327887535972891088334627059421838319184914852305869140226211724698726719563915987874857920515021307282141040176722128168440263098716275866518706576087822042295010589565234795749584459606762016772210661642430709837261706252336359262226524281555204143475655968685109455010449751628488754852658239981177954631494773650036659333106383857767235680020993417123863077235413123046765552058441669927548218847185845470412069032436119243420746085561838515341853307224241870727171242738979093928157877054805449726731765112326026387855626872546963269578861346515806427055462789494406691993280137170762862650272599484430107904440708023246216866564070971352136141488334047894826250374807146873244824472498183718526218559079385471849736895085769942730645916881475774416228629710959036149009408018062591133949465647481969713435102235478796840479857910333594276810422595854642420471474001945540238178094015437017710910103064852623241614738606832558206751226223607410801862817942089009364008916773732705337637793526901084325890103287609969276154236917582156296528251004920792228707507768237955061536964785473779966645072852599645010508708762322640158084619976531793668786807760353369764361537647828070417957706736019297637553962260385566812320656728206459665988985349241295915509272798303888741984274424724114175533232792806828843917950496656641983933822578206554881971549103785548929515455485829721447984945047206345532766883777254224459806865900913186978156737301306560833292546809169379679820194501430077444875973117261641153910274300298233033946392031598859808664652668492254729708914905631989293274254279278437593068377299841742340559560819029006296905189573424316094278467378790291186462539351828656773256484728541313688107754869317893553203657045927587439665576177196901142608801196057816442234485497210818510912631133925786390387409230558112635877797618732560436654894391494836361734934440411408191925674202470085989282865529915112950352987049449388557832701467949199353064283049315221833918624915465290357841279100536675960147177532090377841850233097584391878703305701324402208090276691640253555106664561544997032755611762137554733549558968294450073658185495454136853281380605486115548359775983966418111016157836673112511834982431754616959444177728560306182423790881135904315136033714681685075680817902639830128503999581187663915852542687843178791198922371623444394502820837882851598705375859999776965728077284319560172637949784767790990151928581132233359397072557962429165879739480174241385909498138541230409972916242972274948676267418125584734179333615086566279266199829409151508522257766326220412983501078915589878466108675529639214003642210893586810917769038045351912721214970764819614253050385875821713126043626023193719645888834355329592425314690459345847316754125471686317576432944287688427241723578752432630851553032447450769030493424341517316824654181052001649670473461996737266782365319831572434101556696675451680643819793995519341433576120104860977877006749640843059609782856115069478259407535681361713373222092974643993668804341600859793923883333209673262735969828874591278104176086924929853406446227110590600854802698991597434863297639095902011063303246646944997699596815522447608292588888137324328813360905376032445898415573325686298333310567828318302171536611150683871852074645436505126623510173358349200249060656724463275422511810972769131732006019089715881205475423464583499448585289381817527482634779909215084051750401442825096058550192567158075989690665409791072428278431652388468819553570884853092148118660263617245053250032161083379258220822964148507885702451188965230081281459671641379095974671877456711587644955347698109472375325234627232052868510892613173077383557246794845826056551952735538274206969821699387001380873380822183719173032293879199626197676762629532605756380564210380731231542515506851662190463281438489453348986531628729145164586654352147447873580476031853278371305400940359347548073094705130013450342460962344877596116907900467055477052875683199230295973944973739985636977033353733298823456440294053826894624285991480743998744665245114641939024721844662420695186117471028884790613460500018397210947654223377662193569839802397172396940670167319460078479523555187465850799786432722576559561569210435831001341835022317294810313558433545640125863427971659352362871243178778905489144164518159952545728866646942609406766647314602662141265166328092147943076995859753061752235678604705399018065948209040769007447556726183023085056471088933719300087488732853522313113097871802379040573957650040943305220228844257713030198206828765708918644637243697009693002488297051432316972343743919073622608116824410895719478611319358578096566671883061612650381006215830009896736892091284008732537400847543623826251970762335183606757124450943282484023592444606681011277735429160681450618512629522153616981041040770716052174981244962126797640771802034530780632227510118181141518813646460321424384225335722701257791636614173080528582304238973256501069066576001131099788701050338409928140649620028607982300865865363482787349144818940904056150467810745563109066858879992489919593327582528190179368811864542289520345780453828345979077541445969552333327694376060483845566375869309397257295082640620199322214363339681852511840132169460870381605551917166786763735959661940456130001930862283896666176792198884949556552961895000204812156298401383205661384150102347107387505470974912260204735319527046239319617128381629808625933698479441096079070242357446456909209236569068156059557394453864528902079746851507715807495414748932870272069893833011007663825885134341451424655878214199142869109461760206865173450553222490934009637048589759065808527895033702637476950668519403162752624817323918628106766061809180968015465107406197836082585287610857678377745784055747201722635215397469259947883826757622285902166170426062929605277426722280815820787337435649865864096056155693209883443417595252784417279202973687221575997516945453591703976640896729067516843492523309003168064076444194123276004328139645546259928173545181763192954102471648733607041399868759328931801847182662933136826291238516378652007818093543009883394799253717855065201026691143290014530992831680961648460443343187717808117499034250029519684605847969663446076673562832280296363820671457181072766707253892067206280020771020824851323174592902930089756302593582773896642059293954146832263947187890707205973058606388771671558694519928748762923505534668406793615048654782379922035134911862284104683220816044049377029034417600558368185085115116062297752719495205599485836519713804092659215649472316901247666451877364567721720544701251222060309256798648173622135432359301041175336465762934914307541193568287249019916656660100909569161839187467448939379205627521081381319802500083012282087741592311422373203847022143587478805953194803660286388221147621480144058219785549171325300212292788318763535502902412988780316181941286681592020938308177183910752514439068575713127302475403670993230945779377599285899878561602070489826012890577037553415949555442642841096737306731821464937138320314000700819163054632028441813612275892274401582887963706949703374790947764817402585637876058670383683455620792818572715952493183386910926436126501851882792095251197454371222578452213306691425885402001450649929304903682057192844196566811564033566783195580626970391054711047091394088652476477887848260192961962254668674146632441113965017458545178016897872612431580811430977271622832218904883646023759372781719430104577116759282004771341128281689968471136492541345669900812791284578962522428839733572485398324937691686959827339925412363336687744807819320322505371292794328912519691884509888879826903644411032489532766542078374230234080709178180149492641977268235866188630488307383235543626877908743564545846086489110455638904121908721236056523161608501760680088336500659180053892463243766794054730746481555261591881093105780045279377736911621799934633188235384424468282101526236334621326094688134274375914375398162291476716609753931004042797388197116078704753242005109132768004074018144906239205680580558541080049069105800119828794224772766215453140263669473664293036907087854750421918914961280942376317298356142892575016005157693730775338269569880188331277702654758978676984257719123997198745053904571830694575775996479189569468703317394551185067773914953185219948856365034612852659393646327115290016979882881747567138949167448224585364226470930170953437370010931378315689744553243375680614786987277965631778444009988792380167328168255057873480387764831687809641528961691975937171170056342992263724014026634016723908930111358762143778354617145839853818796619747777401830763131378652152644076784801650189285770466472669561080957694609805940222282870320262414352263597182088391959676213478190690898359987207577361731155275369346796806131182032880160687834492994990228681131644178502367896523412185478538601202510204038825334588154268888860259827751051237421181110821963494272150208114314296826610821370112418543587674183058374367393207833402125472484415326789072556131170667906613368526408470642249904097868025926285058651857420045049681932096516953902104734316792673473458528859822332347315731561303091821727966753745706317678496499806490868617027425192272012703685083294235078289713093065384325685091687110073957111723814776684351901760384150145324915366389501355114936408903872024668195431350136613342279055489700838168685289664591946192366205252836453495364095157405772387344414918857616905880262002607336311609455227376190531546076389385128469153219306988316136726831739474969718440504796607097143286917774484026385580215431822480700338272330750714101263822901892736636180540230081330455216458262068429435730298979253925459060483916141381138807066012503291422140217664828293130768734379338827572086740132693480513175909272552391659255970153665311343459675363434546967940776917866681124635769073125576574814885487438298614720980342288018487026929464629791101352747481707141393848069197020485995802414340641299684861142645338546486903473152182442804937577909236725377698061010546179920701733778023847429743549980699658769626135472744671860384071725684641503409008154487223439074544339630267589143794509770095447621241616761133309598391762494147193665785849803233763986334808137622664379282060398544848424558709819017144482885081604154943507785913065826032864556036595431795591145173376736621872975203018963556564591891423812829070521655128331140536585359268610582293288707266032029398722721877030899079701406546954063468781339589244069259794963082567288320155754347751526295018863398803926508646850433500946772604503170332783185971665125025646528984855919186259238607213829831929943071060543921537849115005754228164714048426561376865894850323829058077904048846402914143786015894805355787079633087218713752295376373665411030039454736502385071374781472233445900032341135341254790689890886478393005931273041802975239678497968692839504357995532091080145306662807303365669231246677148489136634165596213185322265222869363240947194624084837092778833393188136750385711932835529012532081027224713591454865431664915955917347450109820492295579488013965862779139565593357703396581753493058031841303340047527291654784439591759023220455343586585744538738502152519765529952287929413840878019220846417766597474780606753683313319427726910041327053368515650726748791827978944648981718170405665180548255283918471062716618178815364766142938092585648372835292755359718127179417485341160820416135728738706221837256766523874231441486683126978365447072517590393573661765238533576244210382870730683241561822765903116044964976174465921072070661254885731756913990368726841667222993593119119497793769343555940175267819158541295077748922403435671801252093566226845357418813351602773722095575250581710921049081342180348731209815744921764864878678452316734646027926618620134248157023719448137510540486645861603276547326667205944478812216405896113795532663257619038561296128065284585823325042506410929884013631130518180801769397059826160532255831973995309347110189629199939456224063750294087832325614604733234563500640108013845013848343647258265430433969677977257561955366153337596295523576871297699462614521602647087406006117036787927038763231991869782733405459085803059858291323983859214310397536423841847873777336431433426091713643523533789086368223915094165519718466393742404780352679304438930727749847712448105366057919945635771305409997058683563582496728800257888916622106753747688764063474176844447013559256280419915394058144299717774319428827759218017908527030843717168013910748026337252615781229011149077603902192653473662642918995827937224198206256751801032015191555838109974190180346389072916302103230908622621403604280858848616633124829388010679043963840030585867213438316514783685773081275781034359807324898115442377815217629614354693729587149441616136221188052034183818182591409499489203362484562097706390672421769023492365984101710366477314733072597796357817323342757407585926483873420911670769495242783996613209085449803978472437972681744380302458991886992243008024004666422322366928199090573949087597172443763018338420813898245477601662045397231171871699587601455668040240083515122101916625482437365786241247140238759423703692800988705476252034039148400975994756462369914769580175605813074469122769621095031728449839452393204105912681633720711162591514801148553345490781631443049539726738342624775068182797331355515481156513159587241014166903283241943127094593230666510300267303650739222360445905979291212325982318483563804784924085590107996787911580436537688647255657649165921250765324341075893026429031222609630611706942353448831075727752182571689708201149932952524333528489987716841085864784208648960844366162618818630188023649555873110761772193117900804329173042265075999732596527760079509679280388847967138567577382178060103239416799178170032540778553065819911576136908026633986100582317721682754608436742922350514376103100429838133237201970400228545930760095985690250038452467452489472335296961567169914715884601669551360784435056654043255260655952289061970690501110136245112744536197048679613220421489119383622385310527344462197991178827462276428457341377561569302048662035706968785742444232882295150903799928277492881940913671274107038698902131265552938623525742051545666350239358502956147470252807486614070875127768279359131209938770226543990331916172326410545626737243478531464027648931802644736370261603205207477194565532442746013304427750946500595694457312839216526229141681159787616652401671996917122862756373653259094062770193870042876442588378026227789550439798051854503137319389865091519678445231315229257788160160110513036362354329511877478021870808991119358031542257990212777422617717191997791453026989251674995855841941701949229847480731917444321674022249314161213627485673791548346145793201304833247936889298581108346423247580255480085814018514068593140621801879574315914301054864595833024004958382405971673059903842728608870278261787297760175037380045664869061263340832250113501446767383040459872505502022976329142432683211735867392766739843200038528577000319080846431646316010540404896699497453092719524276799227425237461717994156396545806427514179826195340701796727620613325581136775952023420859565953000154948849887641770337128525578317450436537409719610761419663541197121351881547383270427481833832557396273638655032166460238987965490044231662424408788981041576760085058760490703489884861924696872325153908964791760091078651383214625482034154220989707030657051283958431814307583549988433244909281000281000592789153306537507882338910519696714513955347990400242724834782743718576291430689543992359257029737966874632929200307296853736022897127091309481387348852524683984100885714185826822706052220655072812156782191415699712407848131167632552934088547968949652459872980800744599638901376262227035358235313737918661252202020168543525724337541243155833761760862803887054966525373482156073525583636130634707901418403239898638405070823833511239333684043057717763240607980245115369607035236653143505199877888519316348669413517520415519242293226033199640165547577728938093215848741618001423479369284416723757475934675840972404916622697214522331629232936060596132059188575749998336242490461256257929608717148273796305137412975169923744126920573329338897135581522040867140484624909275888487993860989245300535012133184535326348277560089074586903831970752959546437941031693411196330345105115762340700777756841457554629943504132886258566378994942273774886342108229159921911429864177710141296260523762844093163631760585933462699731561671445606161808602627773421014862303820136156586769691668429094405412747854895641733756358509553600377377624296625833936990165609030820742701518852983878253336930825866455718611033092822058709908368340113438632600416868430808839562963916719618450180124708276024636477256966366290775158823974720315605066056519904867068515516375288221587718597177698241314629561298242852161513696307478557572291962398430381134918914673697553666576216390603756918582516805425542125006090094251960318246366401526095583507598820957995545554023915059802338172786349852629087227504886298378226831094787925823426664056900088186470743602910124219124343117242136708619428832719734654435019927423386295839478317870811735355554624651614160440769932411654995976225203798331013111476473697201740473720939596153720986163557613329255869977956110523657952504133166966894195320682150410875206929231169399034567885180711584075046180579309877109920497905343395404116320046526093663850522176065796960067185372303487034153523715306342885682262260949213076546150007110872603544152725969549416746226599344452866259772997362396767357144774467238838175163811166394985280703245875521013155412723487620320535783001599244589780323552214349890310762971216960395890694727603393377321477662025819932729491736236284966928189022947048737843355186063462552385537528291884774013114682446390819349474314803710878134957484123422711052219313143207648477763019799888032344727408936827008584098140320841059567813740801836580307770951014002496323774852824550223794181242366362019488325582115346327207819330441681803789773026527261020997401891797044463861124685946302337661497799452193161853079831817963388089613848822004768604617669615556203336113615277879469391357883545586109565833296405098198778012797149989867221429848109969213543350465086373001716891160842259127710606677672734857671684732320696302331342386994448500076761747717417164142214305574760410422836129521156412608055029324869521147432526827158987643826348356891745898600846616273825047318435065311740802343372000738506565773378138422201093795934443511639978828952591007531340876153688459374371807836222369539448597999380945509301817932955685277913496490200626267126793499588231488127209306522445697013697336701714417973086579392694222711166226758301386873335699767401891303212333922835057988915075033012062847804300693833099575472593596122311027274188028784791501109088170836842286765216570494856282045426465161015593757780214897979667198343242640868160027584947208239399468289348555027125930955381129906223541290223858961881073028021498584635551442336907208136559135388066021677180584603825947736166132676697448137992546856543173789708136773357699182880532148472923123797797037754551285904672141026245856526342807301910350605147080671170417480298133967380804152892500004343488001861477328357040575559949017438377717880100864919375530781261139128591309848258605435219367655540000781301376187400565304553496155889167527935500627808095745108792697177348772171337132907920902662434952813824754874092718718977422344722634548034744941715057381560718616845912415748272067302069732389747749827089989829432338436022401856091334058139896294319202738995047028402997503860580425355471170530381887401288732177083249270502247084511686271686540164510778200997321505369519428042454257557724205447003844143105076486396738555963355025210881558673078256501267644794298376876704166949953950123953612230817504131101450452964704250053833869841981318184221193028457279379025145435246487595567493926602243240689254953859129541592717593600036263568517415295920031131763977385129130725414024599759202621279863978221504547672255321458140708031602284794846295095711397667600171450635291934647700968820042662501413389430896337051147961969129932960072466595717045772718645075453879737443768524894182901464080462382013343537119566575646415238257479658914622859252769720882771067924961134230513889274145128758769543386104614759521207584185796922291982695710401965096636626968001000092768517094222618939794676774415146147297498865653113667824960655885045379536610910595047006681051338198887445036769063933691381025812624638549640896715286840086914329097114279221346102475245174193108886694248427448981313576735756937712852542590795037264729036723603211357204956884178031635896336369741815140083813407906088608599553773599811073855490546818142291867747616657106544363764540433882936489361381914289188544630086745720742532557611392987141474715488612902573444322156376574380654876553581691417435188577480436292188424988847734794435859209081679155212634579295742300323882905653728138717274441975922310396588562168420369483092954784963568367445958049718833840322100330149632228712959673592086270797248120185544555412053354219961360816563848979137347362869956281553953158843177883429516562481032845385461270328369337688067830128199653242151658822575060763308123460381920978116020747194184506473064545486766310914015162120284445159431853115662635412768919010726012093715739740810873798554401863210589552441147618253475966366609971962550144839952720984019452841922742071695610342796152500956660229500317803322808551666241790977359406027214517921171684816607545237069046596830728322557996918002393107434050857023827258855226072523667532674092138681097793750317151050296862538965753600342283746059476235571191313622001220242684217345615860147524945897775199423626709375792917685301693504996546548661148897100281383038742084440642687826222180217631905467429100463145678621425950023834027938772778133215438394733039213565801303600157395447675308384068145588076793551096936249637233962333399612287795814072949531360923250080556442384112202897071638788728937153270713537372930288978275319948268739378686091301483798290998085643296511409257276981273569607909052851359680002880662995115344850126223313187359091627810695507165086307621024402642977718118189563944375978419946915978337022231307663915615297016476707740989230962311974226750076180087283077766954282686912613088408366427598066707032680307722162011579066069226403557162612317758951837076265821503311216596182026519557951982963888588505191561709275012043791293993535926596879783205835453743550214969201968564107549312043949474016572007178270522078117397100573116786968425711591406803971903096107265472752838749522100697701066878415623192995712643207326782310766390627321055327892027319695077254003172386869991523647652925086649871125240595833385703802269415588668838232271117712427267932418396558681984359749254318850968721106766609324866666925579800202249251901190684333098321664339223367106455816690378731043962900417892041693929358469621202760463251475371471196290412544017620679228145661813608525424905657838382884180431715978822446192871820299109435349375189395745626841130336234872573778647010244965365474302235717829583623957904778587176775303195819872149255354410692969073315283296901653484547314490168064178691888356203273461010829436077938641960178460881611683705405799589422124936271756850483026531819178764086697161727187483296257485746572589603637356147866984162908056128723231130473240828042060303246943659248843089169855813845078318422642383816968213180144282437703037247728532538738712084802979898582963516020879516009978928377133650258380382386501069626466061773795589753655812066343639282592232663558959958762251556441127714422668618272735748166117828270575101888907951985058142117295214870628331919392350373109854940174958366020993858192333749232063578791179307365630049370040294221069227479992992885288944342178264920669167482485056024898068677779622511336176740825804604015390201847927196569116993678403978772577367052141967272123310201661261595730363106848290534201578701571614592558186727118814534779387385116196174575722284278640259718659080517335682792623300204553013176657532820411614677381106448387910933483993673510836516605900574190983460438830475922282946168180117937393094135876071492280042007207061810288016639447074104920664447631975685296251470468526409301208997489701993735218665665935492599156457066730364755530589623898516161283051945977955824009485278463419067692985839495897374729487340269755650695590099921383626468679149300625256366271044793539477020709296265240264622987874818697550967836048912813792716168096419913853473895704921022839171890637981872566321072073213252603940541971597259837558185599366691493027767294327723233457593394096545682084306702021759898995766020439198703525504706192281963071003353862536758603559535698485333332230456161615969063033268129381988816384756949782922404785811098240185096715443608151211785333764829322949158902091307998749019035620046051577970131987626435394500066610840105372150099919115463572840687563189810138386142694042384906842102253478746318478499302246891343194877754699948965795674987589099365025961201966723346162658359632852031692964669948728226374555035759955300239835020654482796067494914481287196797699929372725568631412315904046363760110123754138121186516816728027729858889815526526745389721178207546275420454076496515507878274897692897270187884233600497981843913516483310816192973927194133346042967123238810821727931574392011436900671129885485661341097343600807611686585390222597363375233772549509915153940650049987283811859918528945223184590804071764715061712862845954084408623309821337611567327405393989107663785434144722736668017561537199823469456439983569052833390617730590844397624010122810818211024410075587172350952108251003570298378951675183251718867131572761200611679796533302561513534616558217217913137182305697919830362327979262650256942138114688018656053504614014935513156304404817796586681337466435305458282917552092873248820251768403250425287384020568802739859655420673713301052325062022606342729245231384162530217413538234002429639927578797881127421223849805433971821093235654434231496967586251595691206419723241079200037216030380122941082596288867658695648381862654415168488224926179120188471732477956714291133959078930460291694013745081715377105051632033502710783612785334125165757706522064690289432905387159813482707533899979529074334253940446598319229407623930104869166845983379676711017301415698500156456526369337727968756908921117277756902824441019218457767220616276886829089596226731917424612994207707175714624812909299854514574434867130185506352083916006002534516405019834597949644407533978448938442110672256889227945019388688129167081887086140253342684597196143976946064198142428533640938468329409783482718206619697870785492036978667507952383331223080238522780324095447238471805514651786331139658817087617211288289540975821473661027460447342689591470741675876651621724298501516035858061612479242132928523703511290097608723365670967133960191244637990277544293176825993986030030844261000164532533734370332535084310996476890517671231264319344865787836839576105911711037132476850774151496465861928036974546921632678431306897452376893220664067649069579446874298588194340201039646932072753570146422351851274341574085370008759682493493213512197325870093829794886375987109883258170363290790877086392618538031988285971504199309591208319266129913136428792796734086065738636586947000002149039480184105336626147446985816967946421879524860296523504443162988310753908722445812294915988607993376344237319279538322172836674307575276736195114169369718616403424406550009827676204179084856242039975355324368907909890072871221508356527376737668177826960103277872821954859938107013942540690361745861335349382126146642271185316766808751457847167029485430266045742071994020770891836341836341471461524466391767272010936346317255195928376297906286346570030175209519650656060505794350150504392540935424941608492412426704997729979460063084057630313529984842832736193083312393154350717487240368445843113490682645555545901559169466411361155767776338131194442630717843462810421164648341582247302973435479620493758532551268636626720715000467589431016565483547808855956954490135101971283305951693195110416132804911349641725844888985352657255972150015263276646304114750818112918666315187307163314032038123568149312662170180532537691002673212589738484233373225425143036153216919040588017261706880682050533036289301502243459503674572538734975423950353078484740401605976410601415271798583421340744998296312931777888626329472637049937708209517635042628659587020276449915497896525834956269853648537259471361023905494071245649028178715121777162194267217875371673096493351710125107441964774461805793872162433441420500105469388655395638755509723039085910565887344586614362157065628554469348162942973161317979351553141402631391978502683087570449622829069936804919790669496896607064326428760756706538641871659394708774380958212239621637953367446823117281773368421815987892939258706434488755613696450076036564551260806943305375126128049683644141477977309122458277304829082708159125155141801676481284068438662488709137323069426902107521394682255140396529077068678942441453860002310019701834871948555733296353240782225237270480537063698569757735358235468008750177163812336184688381216945018735152057885889180163998813661202298888364348925492915890341753944673945386332798148706161201870876880983800351069897315897808111593471304223161458824631513127978377401834212036921074264448793927155374649565315174747453270752668259889567830498320204366717121089683987564806690426560681296168948885238684311840200793334834175045120679052316440720022892876088376229940421070742280203817320747691436069699233328291454297056468756827661408617141520030980645297131257811773588492248192411628315884733800316536376370884053614921779275363819255176812175947869919576687737380383159185113726195525468777457949198770113769704182586056983888758153027292467435788726493793360905405208255448678571571737141694165249951995853836312551394605939681780247880505029063593775972553572797761890865071478732273432675504845779893785816577558782215138672512493413489654966807861325970702183859957270937568231276297866914622401199483550324463603783991057925758608585207076368856836614219844039473782293949956603445454322169978633341331149353480834155488261009870038757174897039887848832795366349899502615302710879839903714200251570174966519189970558120543891036667386297370395969244279900322800894048644521196161442462479426359736392632537093828408927249981526935859412857237971641848569009856798709293920048001222785767562060832946704147024548507665095382259106934643149780116236911550939418708498331452999314443590657784791924813622505768405125259096180395769381518813052415484132621874555084878998797420809030698151888094612408114911660864169425777000175648585213172912296389996510923040463544831674196215951353144272968056295576629665793760922603364470735555578406229673309654209850269738555119970603037324087307318270019952154875101358399915190709889344516055129535889870377030001828081097484294316342775780051917208460778862452810539627321413348065116318379889221248192438734870180140153730136426559960456425346292632568112131129239070745301491489816239905879639285068730584028894277942443464565054208721171190650707187222362820684279993014388786606454290466615238186508180755554097517821975634870075891658705119011443768792146331957608484986957028688645559408285402623598154834108979219751586937243418677248049653575363689704818273229246442560041252712340250883834963435106595179868086211457588887950822077962981300798688058277528454863022797406638074178291361992038577630285292119525311387944321332138182729462607399635048319736369050586198275734759689142418586674540975273229719308280160895424482179865238795985999350237587538077397818163013775525395907166425995689925099715243638179407792022361102787460689460735996005718926031653731655188853275825124725865737515231416901824172391862611584294709467760565349198853007497090031872849112923303740842024309372599932891891739023574313939328914682067010646782413202477585896929948750385537452465905893513945006500358730852212470114535235696565682874687587339473534388892957597866990414125283329879683692799199379947289013426508554068853397410252126132384381864815347411221553735753875209002949988480033188280802728551593931376480696760569001595431678825945281886505217343032765564190219446325588445142924928115051776332369590294157657075393631712703124043383054175105572441893482057525430236407514431140828169704283598977023448396191625406794466822999163489466335476943178219892282736451052796026991893958944638679386758283614274460089648991219693109501301022392446390489360674201649776173178128246008253872528156826819852976709514679288562568153166575937201234431802482253109255893181275616395560494040402516160063807747453624961162278371677424829083317320855349709236557245857847745994403574240943665179003209449737131765703819052715848082006163436413907400053012065308041371241158966739132954968304648679737076556488817141441224850705277853052930152839225323338627653348366701568505941589224509844146442504252130469130410538937278429267264751896812334014372906174213036102858969076884284787209520108016095840659061324117273504773157965906754149031033341866211594141527295950305752255985732057621211050783396546412708157798184432442158868444454562102869799098030535153420794133529292824137583333527608400231286871651546099022721283318681881019392197863421511676928698823263656537433006379073600262877347120534059744806030441169795955492589831600876192733030144187570999973028225472001633488998627940270282465180810425819779973795612882724201899679273400982122584993199211081687581227965637726578008856113898748099700508236877005396390000876472068920389812342720925764801771237913878008004620179805510715142927583078395717873658726442152584772901378253224590703326139119372444318814960665568923154167674166333808930809683229094400356596052899062841459519654249342239667829462711229306294892650605816820429020998874551683192184804905840586041990607085907660485905671896025784654646641545562394439010242919966032122984270142458846753478726406691448158416207241681739283016427280111131026017743489346176262111891592613629699726173449934078968014484899475266764573088128632007631552125008899078943124587944258487292429008509143634952524644120703088086591245505939276996775530490402355870561449752977808559910040291214717193029927239580789128916834721515485060347988201524601953712981652483594556419658252149735191535982005191137257268183873882743391826804954617211162155758822974982296280391480699004881941201548838829380019791905711406490378024871115728498085445470195493655318342068728510163938204255639253390616364218375957640506167022564111501163104126834223606860964710551657652788375670761050388425220580101575942534051725343579484097427415020389972911670142037510784834248717162488305988225164319162476966584370102939632204505762097547819596954530895603918860852348365801882315914825446862320895276748643892860150757981368433919090700745258503236348051011970984326444912183181624271258628483115675937821825569147301971821640486573815781379572272275724595342182795504418579909479969616521745593681771033509289494981938232307545873437029007755162855962708905299855429433890626380084316833678378981699270125483301716620573829976476997409278380675671053134852185913201937819035317029823487165456490606565504192998248320431329773249103380521182854323139277084857770147307782470231786957475021927503887779303045347364403502908018585861333512738429636196681235855160484573584964773017365914710482666951874967289645964975503690582383362939881823491286194213519468965033366389195823059866828833135247748747992197810325558809838189350293230444091070947408127853992415282216297305871126017271955793302356759157503494001768448543650023482806256183344325996351691315744986522512261839912406650520438255188345331860012254178674171141144373624114647311080885036504694962495429329075331058827872181646651967496061384157489215648641749428708130266999533716478620007549346878831451668250168136673244929820633542731992337431575841671529018616240167918076526424431391203796044969067726760980418623828971503629746498968904330912702225386092709591583543989532654696931685071008344632669671531846340676850980674353505424319617087690714549319946611930254586586664063987355854636991728176710086644288426382540602439343210471161317624548948729034026161895953242624950298017049509071449296373008838249291778432023657655980793655159315067720440265522666358766654340915125973169145631610514153953595109083281248620122910928410729118560125801230752663213358703633797908410347769215776966457546006827587820730402830803793320580517214069303473572030589039953754366259052544641496800347031702162696903451865859106717219064098370214306413429325190876660324270222506823326056152212702671958017864416186597496111264698940636422925542626402612808289848081092500889370095010919184519511386496831082840185432398361513614323520941766153231925793280736992831402760130367780130010921245889577639921199044518453762094259465323419478939595175977389859434926991442992982473942227250379881103475493732932082150745096222333411221026656002915475793790808813278664156812584492940889691613833123009454441215540148582956932985701298314703521776172837628894247594166082886229210717102351504327935134328728251296301745658862564466091513769605150780900738509575534648486362478008280480883454023381392798790625279815938631407046855912407829473347506882851254586718479057114788698735430289536035608543397419419160587263774410229860233214887003174110945766759760287760557788373079596703891113350283234729891817604532529420577288904120248075581341713919651126268189986660410133896670420243307841924159756407488959887480887562492724269238905473383203216496150429170612589994518224070991553487338260560939728440630087767425921238962958874501998687301877506528860727720737022410384912072370515905976866862158885085308222623525766567928389622479456266762077361200731258282155424516005870672449177634979649309393105299756910153079676335670632286653681710428026941334875749304570723897940166902763270011558280852737134332563798567583423715049812037579846426937124659154646036090659981646651568173982101539053810966026676220878258442988902161322302651711289848440047606370936260858433189748487037313207392191388502904415123380866834853130675185552257315087469436612008467944944393800951103859715533587315816630792678825439428570332684128074834185189305847739735211394938726364155605153333996170498107901698497564276589377074305941862022034863186202226990155478741371311978055618057934648945038874653021598798594164195000219012078728940663988007893935684508272389705106110755045235431901424175299661909137878045151532628043150163635752839854850677502442338116350155540520989647683497618829626730016752018042479688188871136771308584741997070402472892362526008414789461406124993431275162431206309149773159967237354159101530162454097799843817562303022482930926810323414368725219085848443995111420396416443352048019477942024093610913649680421083350681181878139007317164919257795239407399789803529124272728544753744475462296013401042184923659303600059058537570411969265240984777376177106244433369555446577528382619844648991622653279384139637233520488160063017843926499227917152991566113883396908891846370458010077571114557883302036082613721408748489638008832544278575953890772276347065759199577342675090589606592912348669154880782078394003710262805537088558992814056829902771920661579244257077016690994987778421177167768603841445626121292141005165809050836531695111141186350725040279644266911161138860140719119398670107905072329171726098135223832813474884918481135880771444657128351359299602307509008891641411464973777338532397680520450198651954951740374308392992128814379459422625936250766708370569754000684177033448102219803040282845514784483716409242784726993918898372976034415512407173468630994942481999312230636974853005908031328670308838002776124189588239540785899061199623005130401761431235992179391686029809135570953375974711487917163669614399903538622157455155878953397781964061423222101731565807525986715824090605515563286399385267589041910615628715724177482082545708831966904088174811969607069085895732192935233229255962733792265253051150556047461238907057529274696874781355788949419801652806754743854346545844730857297381950408016689863112038929492682486850213114640592763236033116385679463374637660253266042143797646728754450633980871803656679804299267032043821350432234495125624171686774585702420537164136457760927591814557453750161228631134851836339495620159740288610588502099650424973204633282103595317359733740068133701578596887786901211625854824307312427427774287219957325631715013551411263263775487006612082164895944825742256987019902992698922696307153002457015679660224595754823997993064787999658796084738457466970720605455232481700683160130280290815731005123674320303562263853788783426533943127902410418685130415136705626750679157001450453372439095196624835187401757740613359194232692407498937348863602103113704792280477464783794946477373622256801173930904750017060012752410054163299807313203557698321702188941075208078370900503055293512867568401516986152642977848792906057969119392242732288740472539185453196955003865266111271178089503803608711009384621455183638043453970086782189678799450505488027912238882424994836271300235013118291044023300898984624881062041008415447596208352479000156113480284273364611843771334842771436105688533334251111915641272952886105380286773075332222117820666081565237151024685017419376816595701925982757498123010100174905561068177820858945532486886462383897206055297422953466330328198375019457553627334304471992619579755715336970562173481274953506661748583319587389517224270844863827694417960536115654471773357494153192994559838141207080277514773244419905442371506361563508960233727405840071318844373513216490747212643563419306855356209816512144541195836102923183109872638110155665158805518273976565288178590368473623981744860944135070860461743135938271739869076362240387919926320900339120457754062827238481303888202943348740565651758191545397018953751225857863049560861637221540495424952285650723654971676863848033237862885249980935299088065613037619103797057315380281595751836320854309178018517718669201603018349422959645249929212859194747183432717081917748639114523924146193405572951207087481372952476867340877732187604200658305576253686214251263780244585705365567685268750743194966633811152744625679165242841063376778826873321146566928080879833323986342721398329947154365209731772735299185392496284140395466426271441313462965829446138151929440008009314917352568957909217911242064205551403442300392390913067376000658996274461089755992335871743071480785629438307913385562338043524157638090003853145124194465567832203171468551922266541501510826388916783929061968812074935710428259840593231859524924859673050168453867237953465389397974216269046191178974459572716481908916535413773736275323013977586219565829532598376289308258956402221502237482919053492931252836092019620602145365150560205767617955531743252726884995685154839430132660807025590951715809565968347129604420873868863970820597313153264455824210122649368643376825734162086382159850767470748044099707885067402899490065441466962744259921481638765530884123379133096051469619958133779919440505053745889843809153777345116246464106149950343139670538788395469224773082818914993232187335041947118600200288212238408940672596558501934578704302652343730406829246131229632235447918171134118004855870440883669287509260432234847373881500385903597509676369765951692588080355947835747753169523535943548828889959443450759580849174408905940408097039033686052205603845281719161944714690863071147306876762716981824152043298532298323383636907554913426784100273531901658178831917676706907737123722615739014977735431029087646540384017036774713479893470929369628416337288355221596727213122739949573946316999420233277566507880208415966287639056175477655012040039206651256723171071775626659588505648553042068962082516063738635102226669664833617437185350528626188797949432066909292033397187781398184517952161582205819965760825265595184740565736559206693797091665940214588113257706328097225927512243451648592028176491208798751563553198770712159477915116197758690390529963303234030180423259834898661375738439725873749348613633247136092094949099592636562045025920800918838985950786671586381176681099844119800490702924764673401609566317677961590528133335302560792901612158832333863826537538922713901561293640989192164320542158988043571547961668758112141995808902484013842771233156211277840934325808463564008791860119001993856043840859305478750765869808441855990426213800598723649401298270146866613500664099542915350850036542677411377157637830897465938959269583411589931675788146111538059936555150566356271592510059433991203705390187982812776449339775748403452229254177437642102931499154872213633795794282800445580728769146321600493388020210978407289773244712716282800440291221713451029278810066420674690444325152599278241146049872935179159726046392829199779841671496242667523473410279684875110645856042329701125756894744777752835393132260854431103031109334036906983987944822562092076121359063496754298442257492601391858490888091758173623991585826174996960518825295286441339267791055859343577435504768152006205924309647993543602977788870753775473511340412367632590567913882246870243954493928299482201942115787945348170234180061401226979043600204466346525030980600162156876916325104189882871240906190442105006886505079311705053130220838350393518359720916067304657072443201881758395689341764478062885909746483729564541427728219979295890557536919064919616867941974808157882807134958759752323902084589876412647688586175446364375515161774214987231737877096069295761142486431934171815687986623880313763026033858490132826516644609656982701886170856339447889066757497408629026773553336536284222400878235184694595669800707236648404399687612180074185783875521617724988760992147915519752666455313227898222968558584724480484415997756491719046791380063416249871306050049706530177512878724938062487737707776185478468409997240243408502783192956710058770809862977814717144866965472141387307580518443715028230763624023014798203512503208239880178823003610735437073551829050464688037628738245252387156695571062906696918453578528954054362367233597900736028332921588566015905141855623782399840349444469293246453673031194816778061118129676135642936161580398313801691638616589613032327891370191100063691441116674988071832529183690310898064363595924510757750909661842834863005414031800511310613554115169017066263942924803072529026889482378437614769057362382478881757964470899811664861641142979829951981551650745964938378848946610652249025502813486689600224127338055588398961424147256270887987215934298134922182390193355031460234202600311492443526012416067503961078020767164239057219405030139548062274258922700388134210019642244497097978537369228971654341423267404807223324040493072329003212133224734789809403183316366877862603213725335581323286110997907105197508424399626874377490139722523572586238153039090132545114116513154736908285101678481604318136981348308468986849601247516792380681656095723935764240952081283634418906935168213134451544894303941061696182223228956542202043079082488114561672055413466745581148850740911714453650311509576860775578451070872561971128064849031709964881221021021960182777795561352142030944870803346187674512422276756543043019853359491496771603956717143290369321471909975584816913300799344000186434576267910583482814971754926751390243990299473652269193200943322430480859258327403226375934535947398187406115363315285610160124731996908437710406264217177455423014229461822648517195261593722260691177744469224058734170314076433907881672616571676244502650555207463880606712791759589484705915875097581950422591529329812792849407159588108461262757148533592193076663772857235776710500135665706987353615129268022016965829562409672558736851354211100672599523225733326692700776472701355925191615326433869661885108382044039383527201956741162529900360885425090815585930173455739236817031666902959117760175091436147440775784641984418735600502204409008769712673165828394544606095685640123207712295340140927257280388548336567347965011376785506710043370010049198088931821680933226684821261513622882875365966067601585980952230799503837843840231544906445593448312236160010826612735484075790150541241482378015223202557026843966197236971188304371953363155592310420509604171860146530562739736605754512595276262839097322901810050149260725874451242785015490745118073275659007569035227997434262372057310210564531107682731515988792215082105991967807952588033044694337230783836404709564044450129053391779611842418377147870467670618828547142448295744743782982587384346621754648696366871948084748203921384922442133479352575545865154972281371219124673590776411207220015025024468730323084795553160615641163450572293271997536780440868148504825743266074959985564873733490798747615114276474323622164463882913476002200584675133047704501795015095697673816092571230824920359525122572623211700312618509654381813931964680467666687511991475948105318304129456511354695723649306407638552480566968146762559122105259335948279894312022171139216681524926468024912253386498926036246704454289249126811042131312019942270768561443874393056772001653978145636882759664812989784520027587806460727970031270233974373430316239670903883948607042467347137916546424687715145593805953846120225759186900880430022680399902081819590908073325233520609710457315793450778540664765824398722100954132400268220468368139646700967668913665125773291183014560658671020822896556699357717260201114607516965426150218102996221051318868385806193567308721464220860793819080203552516592133184401513895682627413329659421882166756272802400321908115083854067033574817661913384114785268715596108139678305161210614927052390145498833653516603303819395266922954892263460628004633333914010646632611146972164028143345062001698012993377544753995058243899818087237232877086997981078239123037890617461605975650945109394897172793404901293484481121664123135247779637521022378305790146071812841114427317800830015177178707375862654106066795444584960126287078723242490849047570087433611344269751193093060759413123283650126966560094340951069991893918013226763512809916290481793061710858993747355526434104008945157068792583190480011583117476423006091736581504914417711829175039852342516731566582138774206642222952967229304328068670628588591246857745801805979233498425413364999082715066848376564996873639106958872234703075669557807678481344278238946225450427821918904524477788137260470289527871371088439664590406501681826783037720699763236766000728503868593047922260835896707044777449001611434706086164987475154577909233590320693835103047101841360613902423220722733716480467118715781146567751180097377154618802200082684363870347140091067836183854376235085225026959459599216446271304404126994889094607199064254385961616846606560421579008050310363470839275463037113836817799402485205217081608332591834259406689120268359567813637453936682956046206460947534916172231383106820289070116839433338774258798364392373290835448815609016201431106039451478040134455859041053195304601699037192082843414499299812227935503766162762257517681952573534738839583560557384275862362037414686813530617119057560380688973926501365616323762933777329404069447479040130861131275162010948315831497672940743266486270977566142257159848113535550101695668600771170471291691317539791599302854897222516139540157722640882876827019330984296393339171656352584657070566824573088573959828118527703385784445829422997340490477001376348702122535081984921429158861134422311388641200984049657227889211844118187052318932292260059886291275801174580152866447458341576334731687963661532211135280819052195213643995752956650642012051258976620371934973400275801263489697110729602040100446425482728013501262935497158852648793986583302979915011869973490730439064528641340626677276588304968478285257093247582732740800042446848545886092252599496538229049570242655763284848820502523997399069076199369051678737584137311573990229267279044043852693465253009213065555695878936423782716072096678739320777747320184751240368426965027163041524147269428262343561352293508513178068151190628749582895013054762358197860931335768857122914186080468299037342032794907346630271777549673737078194248752802127031569372159117726554327288084237495722834536972474590034876041658148184272082390911091974161354308395894484216443755332581938071741632909479213606541106890305946486560037899720635098511461658933155982586958573703596046970366757602309230302589760931022075918482858935727230592123540529174419597281076703521500770805374759155124110263476775600368178523295335346671304741757489950093349552115984570697130599082905557944370800203915211548226261957879728319656305549778188372045022452667043684194291748551182127040202058253169407027820384772077012435617448803947177393304665218947764736999020359280386211610687826036856608137639111517899227934204439910282693620465734688006000493863837435279023426828161478191333808476781082820039463006777600909090830532230536261202651608496981246192695539857397178725961683091084856370372616808083596773965420133741785412922726115897541656489839652317395679380542176797329946517773728605282981170902123134017321324718841817266013990578093855323510813392393088358605970466581745823803700158534734354759434307491112768094792377724686366308120211123856028350222499523562145749714915791573371647550085727970806514493253742349722086087348436209301670531593100311041752625089077828409049662209010540589968342007390029881727541875273313694144243051371307462205982399597755812594879468925596846797977116088140328516859922181449987494112614993359954054121515279937504948400645254611101235833828193863545646785829536953597111951504197360267737485520005764699029620688968420805857930607305120879851793758974833293928655094260161069159118841518150543953438613840376712999488749104608972768440947291245849395964324730055724405338430988871357206376288799641855523609217315287237655184787684727650011474135465454759585893319538035647955336907279519322272994078649579158132601912567984723522681341900151207321857624498876041031282424324672221065934827217117684042801704293011311123128254615382634605379161763651628590587175409079930104870476291973216505085035695508160481024282434678946994892871509993819520208661676237090580008803610894991312238938320174916341941902579877997241515586023269496250357084322968939693967239899641186663901256248319642403256425286500552230982316255813604024435131855520876839817546815103690122820582660574125899802095704145889046237034342812975361638518500698810115275896657117374204818466771074459205669180361922259006011298810381703068315250979236244217710965179100698634826365790159240851748635098877010548557135697251731940730352140868411002603617721722749654003246767468298576462965777784466611730097098132229618879888066668007005174479104991945700068603891352900439248314914835281941272182357074591065542607733828243039642547394514097620771797071824395787101955400846517343604008184117503039504768057842468574601803375695904398678074534511942547989757835294343270042777087851243958556708266304338264857205788089084560424351760676004510131914436825821013026679175508393980084924119042047069389344593731422944950223511877209639475714751268763561765433663981950100593994138731855372642766757308057190638938140290618242640443054989283593825597348783707631239645074542412251360845250565022763112867326238152859838023362571267349389961762505552158895166347525012422847475812179084922154188855067330799245246496342603751372649366015410731607768382781400625083670984691738886428054231308869006687530330239823883843203206657943625386765474168799841370205045148908321499496566882123181725478846608160481850731011397266779703242304477674497203335506089373523698267709933948198231152448023924488648616091255009164911870170564994047894654768686945138019082946599806831031317854660654350663675255834526712873061354432667611459811247677407576039897803765579468068063666847759606005455796110899180408442342640385372554480393978804815657377979762195636374546888743877204238136838406167554229088338516620230060929448709489196905119048564379911228495860003001170965421958485253683656786933392501589754708241784633690080430370192599140118813469898116113187188562025111731797896142626798249189232795120801978031224832580300535438005191683616060297769289276584106860695475941883262354756404179243000094377711293237902520478999931808608162100960510716320386440260401099508945027116224654056533849773785118655126818505451135577521809061116838875512766267944719293824340025217734727881552892306772568959053410538928641767312619336585405140154699507826704021935182345027286724654077541677955299021904432506387014278735001565922991317915757897795389327799423455908972913134180448961746976216960780424385344997292101818292911661428032122662269783161396079246690492853417296906515902775128563621584286813263259498988412966228014271554994622965783968514558106817060663983327101006252397238384792238332180606942611764073319201695213165116337401563081650981809233202064540931904496440770994672974344575220177574840043721189739316334876296507141560263966105690803358289304022857662060893473767618264922140712348718741753891431645293780727079078815901784419317457475701543170709912496718683675774222075728193565491962320274283571535861883453672039711400277754701913023105193757328974432927856250399025950447173925045431547047864696146820604517073871794656663012663294146741430190115766229014323217080036163923028736691262046823429380378066438266015991767228520111730785309973331160193119259418498196870150329711467469955471208681340174011884306000749497374473827116642800844848587415818007917105782127424030825578502606030849282391712970729661498430970355349009019977337807733331807333291682409133361642458214957747897387966605047792518443407252843770841023767624082293212726793780825336384107575562405366129723722452925654445343624895140749015626505255959230093818278749955504666884809975599720305931356254458901552601236725244879163712989405255700649160342896286543571707344982795245027705171994559994347635520362094655919596897911227875605284377582814126777826640781532188336438885073442480072105182104433617276454400704523134652538953029322826748837879620619665155732590153641890105232437382227297915201613520735569522251018360793245567415779322856200497955162809409316954414697120420735450530418377012200701153051909632437241890247515446306053561188465435704581374568636446616509189953324734317821739583355658007813764325488723212283038776865654139413517791315331567157575031350345876948621895300047105415505660901073450175439021762202899507139808807455538026723238836705428968025450810681818957862996571923449618410886895546644131149877359561835894632369392696603233850007988114854091547828460991309901632609466978497979706991578734096030184390203578326923773736926900698176122553852745433454635234268951358274802739694886084521610536536205576318028546664217704509987158182140955388696207810656619082578343262380089597174517483145329435769331498052372235262832058520406926151685052920318373174762768875076983136586496601588118408869784181215092795561723182974368097824409177586530902250610216683436802502492461258201113438476151799905692163223188549248818238782485071432478273273413983184517368590827856359222914428957513482310197100058267732553949724285367209298195280223513463961339545342614432702963218999797119065300735731333862075185557487805067554243114062682651533376568993112027705104412280537444307474017200304416599404659384414873041271519664163313040866864075178140246109116753050953215400840636749612482891744070229263420457405449541818812326390955371543418567356362404307539772372313842170943071528275025762701381815566856525256513208300868770018833861231525502191011549458843814647102780105580860151720779548900715771016840618967990527273550376815032267118605971845153922483571788629003195777375992655858969338155213895560952846758845516857191634438737870249053322347145601666503554626702043244607089354876142500619634109112267770427341371520633247784733511049217136314396914550246309656995631645377871172940687355150645279174847256887950639807291644633202799337465802080140318461504034900611492342890430182913592418833561708579482647791857777114896723518281047819362144526208086726436332373260004755393013218085534907008007917990411019652940712385582459695780385923678819306305104054971009245941918520517403845702137762083961280601967519267655981380254935682278916412566941227586731494330521903069081413065940251467751423029041215954970384675762985946967612288272534651334833075032815798745516254034732870107939461220945786498164918467164369885052829657513078592779025683466977511964875344430127072291546692658838979750014082277234295395326754944073962900095716249735629289200788690521015308683608938523871072441818737307545898564387040294646797531660469170884266571575059008070340229172799881092762444217162648347018929959983108406001902656980180165479855289355147645128594010837980228420891500891415468351657310042212134675477522011727199888401723863516110086854172352695651533546015316728290363302908029337045413079857497231127535262552559336401214311511308048112802332632049219076530202806567368120117741122083188823699387576157783215488947435814817612513187111407330514372034427376354988962461085708957145998500538663886428314763458142450657305618686981060938756497374540506469339765548901131565172252876203631256329188053749399621199759294766584337325386714334194597012975410178681392165240589931454186074889581429878667135503512747243968925294905178434969682764860830070651917799038649551855528012892824422302787135939403768407153540446503893956121059282309734835806670314838323987307138868420491538226587053944947798764123238332934195910044338993924020196582678036325328086893027132445667316161401569303085867738033999642446146829472656100475961907132041612114446438290685480998468113231563426021049505603865991496186480725295286294099618073441652358439707779211865756841075972119493191246915477224616001085937987750095659053336274330376761788273512331311468087050489518495810082564342449052699261190488714632388609753439231430133517964137349490669185835102076420214183302423776360829731395688165706209136513053062615151906685518360514515967128398330363943412952489361376056012701594769325018108717445823199453032129220707356131879531752700091654428630384821287466033276870216408208094634215972683972517759026337667763849745556365303208719451516260646846185422561423637987120483533501836272332489465901239814355085073643682716424889288559374380471413557374657711247253170385830928886195206093281609121392583293426560588446350594901739972561024852633813515143378268939870441570077499326797094757005042169375656395950696580461610868330613301805107830887373395055889318372914417822230922028405283615885536486328634046956458734105381857256231313775371340539476326793883315099056426996093731628880938176610601908209190634467380100272339233051033240312864311801544531534058924009857936900589717224095245359865680356795606476045031002688407848938357722203646973647760156817779809917080042087552066592267375971706421197212359917902504840484529839051295982589456778137968479977901403809739888621409573196034781772790522230873681324906984965849956406048288403048800306660762255075998976388467658434955391657232266557438510971730832463111689987527099620212171746812709044585402012984161201334792073162325626293782842623170368343564925517870531212541952975517808200211093806918240376686546630837578141556219141796127972592786175115131706592738500451400766092771181806658700158763880811511892545410682134596099343197583852516684376229336416509062069388003482322325855824105871395678449577549760021882350176139064063569772866265019829943348497364605509269598198769248354630562838951675994441045277777997908607334463361022003850537982552367140939232064043848550693329667356594805582875340719407273388626488970979409878284796235436378484022576387297476860867105521708320448393191515669090348162041810585939966149484533184156193267129286340741111737466225308997596465431467539400838005499121478797023603262870648399760118595950218638198452466289851468374910816333826335985729330434844534803201294657973062403791916868806230292443793292355370552151471766519389686004895804097938268050906868450861670872345695155398491656854913854310202871241789981572789951128393561131020750447752766262456801190330545677517844877664075235274311905997528554723573794356795524300507693444844885421651643773231500149986238408354732116997248294449958476474372206850468833962491912420196222787556258209911678816657554317605569015302194509607573591637296152321777482530445416241040067355997425750913389460824399249806087915828684393620786757679565290797288039772866284033871466561206183073197575713552382471783411228796979328225730258539822911460018432292059110445437108007842038595087736604060167263326083546826376444670417228640091385327183646627559379097331749093465680179308444385595423352851798739098037082258900353991385811976928854669003869356843020268895819533500321124856294059829109169285001013657872048803919777956851061357329938107973185941445719508042360041646326561791920788603349793888084822292535038184693545664351941100114623841303624086777210470396240831004032859968394192211610130557734369081093119001073999043939407053828862285602426532113093919430302399835216703581675474258741358471739744140062235508462359269835418836464103603360585876111040243250056014620156456865329218458799578911652155188976614210985448217064089614816113289661007987153247916077321935631599853517598147700856536808554565505487536793983503925320098656993203187631001366786308840605988245835200742987095351276202978337099311553784576228355271688859012814750511435731013586403450223388288748840287696179203905397494069344409220908378583389396191354780961475796709850076748204541121386544699096992505044444394767930784703265363290010966877732046019231009770129900890479855726310043649129542521337375064386006978144827939344394604709032872309822136276216933275080467790773552827278791970348077741238563647247691275224390025058458956919955214663361790012463830168321591899392401939999051887763461214964957977442473370201694754034460716998319992506268978210704041994400006303652993142520637510733411164395686298634191890837137751877182238587258070417339872948751228648702704752927481383403117317776741630148235203842163152339750811341423735657065050194205536917477504417745460789064419251285061080267229756475749010759955927709234334235733221620540334826826447319916717016216513835727026690767193206038015759246484469987847549240699746428080222063709286263564638335496214727755325810928678411876441354649177166370663460929507424986269256566447786980190584013369841496612544407472177413686277832617804187693922136706426244852956084781041970927688651914119758604934907998061799759309280592583538663534569192025089187145650545511205576949130723253041038228043141125220324668808648806074568600642095461236064097020235776998536415130427045729657317688032758662136696936719312272107698190194107052782089615882185968561654072732570621954798893856335623484794084901535337550266738947450086911806887225432943344878371697060833674210667068327255049568027324917323670761285637677433486287582599949037906875317575925076320404394090282472782845663024949120824467202417428507580750129513316073996440287513271979775675483989587979507584195686577922326157278607571022281926012753967763143602616274814177912117531044886581207814031904903519486433341973879635163197319136101370510867646686237694891377633901018025279595250811479253225080347422249058135692019038177062325240284347147444266161373134023582349988805768404664343872969777644074201205643066025400013303750839370711610799402153417205982617566704909153645259572804158983692661015035866699489499574607628167966502997875025961552471146494905204701046344738318893704390985126866532128946645753134366043617887021774231951560877532198065876758354008008268877207623803617538916610345226756956932492862419231883179684858436440669410753988889598937492801951590063553683942330496918373706255423510547569344461973788151808355899827456196667913586389776207377706012745853425614388050495216342308275931197973746309304923962015624247975901576065736815482546614132860654112081471011277714625673051119264739750204857615676695511822766751554176856126088478584444317404275636712567953603347807298414490848245347985584622564051440692543328713319608906978775845070108619180972161402201380858451071359856777459946677094025662329964433072915141160882925986022540928579554887370939258919637639858299047902732696750078035005272507923286200607224217988157254770950686332867420554758157974593708962774152296752521186956248740433127359969863470138249298067354306955197537716451280424606836642303405299192143638165200492210811122981989475359715158879446831356841593022701210512158192411972302652865010632979673412609383819711538056169930906215222070111113255936935844089421199704138210627130430465709249376666744654259319487027051326101438476236287697023004117267263089772601467749010609961958225438587732485863339954816345589392410490739247290019097205586693567566631448070289172325482003629330903385426053185304142302932225906657928003044501904678011496660334807831325724839473338851181816663961483384434218623478248290656203162087872749118465567216585767076536918205555232158730628550672365535734479335146750036800586357772467995389493500768819192083811020111293310798451069658601213982954667343377818576390246231503815361682450226272064595047182938423903524555882013737366998757058185203158399888140429353713811021682503359965660404624325373997589907143470909679450580862476122478592904627070285154914731718970831198939052113011676750204466893554726225077102195686451905733630858858349933741270039182680609259151342314001994170058662700026463354185877480055827353219382741168848616793636795778939845905646835067611597712428644335797155231272014510607067077884415719320310564023449616756101478070695063173234319704698576969439191915573212853412627168670654554329908789339253705825359295702898305082145619730696414376414197936006923832987803380426692750776442895773409321978504773730035877036987269630996880475272681655985282085821631486951302716542183811603183555574786739163038552805184897119834094898109214534151002919120848411548295074307316647121467611677242395448288383048520414957073261063035902367342900101998249092798510664166241392511808109927938772342222627667365466185711007867704213281766459037120667681145082902354424607630255606242784684263810703129943960894523490516898779869041044758132500357186385309343003754001378270804146205717692542553641930188567524259677160288152665854656587202984387248205596693206424193412508808446358165989785499474867347963366228833203151147440617856640151494184560636706950006049933143856381473684882757177397512878494442172387651400513576899960558982807080314457866421949478391008327609461493785776049458807684020410346817977358135459951466374244095928584085972726381930600056877709690654612288989555049489785562354074551903902510765757172798499903098425765684947582927187148035078219092410742557022728685545717203777752396817731290831967790089695488806432946173147575272884901886556546477243626323289575914478926389878917288491698288256459882837566863197712678674315655136453554967872217854838193473918894712359626721773727083866198954581171985890244001995484154983742871547027126872369059741204468868537364293856833454184336279733375034277263340146349297295670902066779289448477138532761543542406243972271050883180312891285995686842641007477434546972133126545252561367778286154962483275775791878060747386989210177897277698868775353616928566460704105308601836226184653924568907196178527313731210056028026808915013961256908626089665601645256298033498930839132390821587919590521628703981422471042764068108947053520293177603325913658635559180250943144104347760228424161847507490373082641548450832850420918207581566125262237342076827034780869396992388560113018755570752895774801107707273285387683684410990412056211964661607699231183274857138877743178823026616404011893047299894468046602384556926850135587102148285351910190122616579507514312733131199299117374879286666915396684628850101346114802141050803285041363851328280426643070791938752027016363904497340113195891547428629320585357477657554876661347291115474085223821889272226504527417056847980582303387418390628659716556863748072178428893978171020981088806384264106338506070328649566891501722920354831545594382983259126279407008282905486283393766231474237745657664369687385210741818150117373520791724761919788614370280854256848227430273026752361162156432982330631557580517585660059004103460864509955485613052622389960236461139819104780196466632617173829481959811734594616575642330715268689020150840796050881701440154907854983343442136528167563484806114791003903546186389647011620604536928679395404738041149187670598284397123928331443235792439763012790416660320855576999916002396819909831166692215173850479898091182001295499283519497540643693412952549190526671727918499226252633176644294881001630794979204567059682347387454648519312430367811449285399095574726542837215726040158467799982764717098955066238527895769561653453289619173020325581219130425154524467810207321914833832119382554975318759345634698193673122935820459593741264426301039987010891771905235161682537264571770197577175843703335752069317389723091741312190492966161797957878473899858871921852359251799192846656234954250460737024199729323479764133978990321647773160188318002944926901377660467991301618862036461546237300729174709700726275316467392181263420137747830798729207535027922624294048647035631730709088326573459265725367862654944683981973722719361954797399130004959410185947400020820650678333877080346693753080044528125806132932806907750923797018351435272360928643687431774403212197954971188454048437160483757156189823503138382788859822137458741960681726429529871563750685529069655860812714678693485973658254720123942630060192439598365591373125614591819887747609447667371139958551904938264863888402706700179415586502273800528206740623112748631185783033216006334112328827487734148781748683895959098212768955677320924824570381460088129114831431155810091361335777336320147238070707565857445972271465466231465286850882236641234651162632850324076129275841506677216036271736997839687882169969356010812664112855436722650242510186133455768485482720613116456693208499758557943628886632484950313418395774028779666485373197818382827892801882787692610360971434883608360769073926943703719478806760872195283283594105157069288825182043112349059798269800973658585227770857545353358169244187630089837830734444431780827190313052999267545613747739765586798652268314364015188945490803874119959943979659647634958839348111228920628964383285584836388015826998744585261891176529172482824128686381745899456588402504025184911572296675891339834476619231171934931983013352882522754313170369798330349454159993440832613025824217323804179802041072206431932669721910408885289777878988381020534648195659700609802400831718054755482987894529133452057969225528255384980094721808790603015681986710136095314528413657641050669040777885374545080615526633610789040112772096400995215170627520111682802505645344849651273904320034398022219549934784794830975991064600550853364019804419919256316564045800068624962137028958882648157122567975240426463279135169226071422774138292609665444584294819586756344939901424313607492091888180364147969824011003224838748762229544044999777223675226978672784116704612481753704119164867096859838955336640907629014322999174297756492936304047218491878585594954592405096802286211859727275115734913311459575387144581818684094871976643406254015855662416720053006489705251680763966007748473140481441605316581748085308264098781656026620060003595927883793100373408562298756806772052116433700631404066585436277003020937328473666077526517848827805328081280741386501680917804124034811395032141639364819389295815169762034248907239221190703239882165259650756806662039679688577363427211128832829213578611942694138414480772511293862756534391208788583025739581113478072627219004411582533693347829833853333280990846771078762009840164800147524003815375279013585894317201425401868082831951635938731344167268216041822999629265212476874207692342390722798096809738484403088898132518138691528317947995637071554784889775991709112163562600597996289201460526185332842844247059712626978218439173757806332872893811386352346599208673561196498314974134807227445567191979053181663007614502957228282790062153655924945465733068757525439419724668413867937971376625173881402031281884391794799551901303558160221269751919247484949677537170853558284184259228034189542297485135582657495648332589213663288164224292216721451665967367389305600409052861536903165647795431455207545277371084343980855507353398506256193381108180254838118096461924173448185833583132093854092501680825335113608854711045393634087910162630169509230490890822315947331922448669846272630253789130700392817924821775314743712390041475904139781876895594335297437061584009886737007076937922301528646195346955950664246914867203467030773123505206757333450857189315573059413523261334726533122700251309770057873773974444685716409871650610687370296761177539056136079554966611119556198854021958872430944659155254256442580784925709593155241708703506742070941030884946107751888167860212784133265236078087045701783295509179294424342756068247499351660499222966762461489408693347154864770556943173290548662278575416140605526884847850930131539227472004658030568763222644964088292983814985946941742595314778797495523208419701866560999088449397621140786530137563759574534746421700783128937936446246499265923228842173539305548605409066489872373041812626169157342780811204869018011301317214214277802648565265564538592069167496863291583296971031291298071924216042007301930282637741499459130268085042705493047629264689293728064618266189288171103501766815235416912909880772674953441456637228318642713800461053227466026848694997736841374810155943266188307464486332599977574140654048216505314160178918197582061021978998562312394056916138810373037585753446362779504747997913726945646946113640338916931327090265654432621790524468027599493187844710572358668552369650198648083711006423569562486516756624509966189944164810597590010145702266960432542640184350331984135450526512526359313667869086745969469441994326952213554252853821789899639616880194675742789281686251238765890311252009394900514458342894845995099786883424564155469245153903806854662641261112124771471569078585105291948052987663498389764465826507490388003158781775160625003336047527361610554119637323097157011866443372749529172894899127222595738102000767258862861883311339932796032102445378161909076952032588251930110457025015528050386830752588258173997283897509619177465615335880623144082637914832127227472735312386663768282834702749427756578978261020550409696900937673267731839975307575448745031398248307325594081560330306512171613429208597884033871133850324093948758311611359016411368588650522888927291356928932572721065006289053530457870388875481493464806874052229362944872803963517353158913970077046119378274419177849476751586210945559820473938375339723247454472012777697546708563753131674585955815323122043652211678690862638198715216926341234074674070161890350036446950463752555488869273971507010476612070072227400164591324934771343513343799265029853518610433722063528268220392151621265261505615643469482201595549405544772397660619806630103694969478866284867134579892761550439972025921181374752849753522958906122723584140075396629849512408872424867634535848296685070452326105689077965897404524620679531012338251145845346811332880380522081597166152292436025609208508553316581004556128246779206636856171191827508819996268117645857601893043030314916595662855710177268008164589769035233129216956576523929756903818968593665966684263496981236216432567947988930175496101201614109491743944086151094224484084379608612445634964006608827310947165582621226403102706023841212590742458416364328587850841698637550015190111300425863146293726490002145932575493597024012450964054103839538638457782965661098024677699436119106733093345651356022772180759727501401148232358228209786343086029750952014180161201446162560715185647377393463497187346460448099892208132784927683178714780842924264071108118152010371486977313867334241794000421510832694823241210769732288657089588730682405037971919268417608802880141726183776203325697099695265889784114843917638766548306897409218869468590781693101835826471915817552336264104412973622382012068257502488781165235029151409985547225369706968046555070489002503947368010572216219014052296229896926743726770684093537217457962979193771150785238046640985779449502563215175485411785488632036214279185842051007949132877878772222403747578703582556580261009000106936292235149394364540284645150293013162408248298856559596779299751593366668185260460642194018742067478191386275474182792019114273247717610475590057050804954062563695442390432353504014042405950842004104178504289930664672424322522173253387153927186693172082021564365448340537617657237380815056955545276995214421509251893981424369069275577258315186294084632903112647310652332168262366227490685306403742921721871438027113906439628735591582102499333866798183864902542858142037535664435720813568677562007111350893239240468132406427631266026931738739344949446177980616818530445506781757796681655449788058387263355271369665407394655978483561140043938621323968649594409822218193310717020487858089136172857038877069397132866998023728308309790912304881538594341597817545480043159092799871422038396432625034637207060803009071114019715951420531826848798988157249736670864886997425891517577626997341692683069685261687578227608134490970014342902073047729922818429205630016300012954430886344608471018780375576545171640586343290856162368701987848606394355487643240783389766579768085141675957863553815493042546418787080564234097846035362987354226606080951543552001394586228119496588497609519690609355909653341701022089592238915719400974305975548736705045718343973760517491945145744470841259549460492632521084960914203787915899125925938965093048501039181563085058618146512769606625134650645480891408694160822188835973172669385647268952589973633852255217534705247142303171702466702945783102509876583065727544302858852952399011384903946419107517845322317472642804506999394157249810863880604469244290032900709473066720779883621460926342309112406089392675968871256415614922729715740405082153646426376874259677589714466112289363549207215837990081489506324604237119981479692236719877673542745207585265911748357440317430731299264503132827802259785813581653602122377594912285608045508503122494351812903784523007919010093763779987071444779942100311614548928830927407272613521787819676107250569660780641823640300709225187488405185797012710395642628127490451550307566085583537243851350442651715753195923232472473779161432377097692122220449582723758410652374901632346714314208504307220465931293865989918600215903857533246786985919434527986248793224961727331233861067663525590563388129720836112056396130140475379319347690890150874353304401497674686732262942586514664588321452247810134316789983032641840729306722822512542892798822838078997565727569046782014805901694625198863024145186773263536037632456081440301340487275456028802327204104823821046730422562978364869955289515927164740255638124822501345546308571322525859307859462944168625548745029272129291428295271930152088019645217210788616580533882379287127249258318315806180132266385378948974247188706566718178883056522312913640370542497326521724809242688142862181373256486997218003311883048033120072164831565727919905043346294962220853507406267921829243046434193259289121887406638124538253860768026612599112168501466564571051125845856893739833224924862444408047045976937146868764492151023800463600902261716676174630409262072063835901158586010976095256643487007662145704579132660116684195148792872224296026395688317097186629877056311675669163929295031918227713303706675425076734216946093397689881617421963464012398481857651422154332618213706032026676142056539745455515921407888123664337423682698627984872505575488460697226022692444917289523170609815134572143303461480269784897911792764906226124072798921036706142500977628486955959678153013636901603349408565453725474308985597905752020571120729093142787945849967901495094504920166600072806969087932325634972403711259972664933222223213827873834096200142486803183278644865996231171776098584660740369605613597236815766274298408724740609698210266919900984648868741957518506119930511570150421669721007068171068272025536319552913042605832930896868502690181923432755007988797193914491976609497861692499518274069102926330436109316707415656119715891420611299400333119962619154406331777231507721659187891441784865868838284855563613022604185195993950074457998167094294543372352292201859529816310967151316386665575428550940144433185005610246621638362821624430261361277574229137839554451154788531816457725647408739777415311118118780733231715333545021001832478189288359137624938272695807322411496466657525637468838771695375541424688675689885236733710934529354913508217197948033645946719096636193689947866999844315848377794264840351523042585845205814621403148042572323965437211012763036650795506659890035604002148360513086405205031373813811433221310026379134919850934506080193822721188800300857099465985328561491007921597239182673034365955040426870734577078893958794459565413602586585077509405746553162491124336679826101900250674054499066400179281563917497204111898296939350593744336973583763025800284959054886392403518067761570676231876617960094751699357780875456322067622863659646607909004770878169062379847081709485043424087808771967432440117950446965037433514293729498142253370277469091757643547278458741958352854043602658004350960189833173577389762206536566156373063557105649819038305658869582634956047837481398784327637424432857710405315085077733981393094951612474436489774610993798571248951492836668188827509263835812979616748032343873318739181050216686221264135453695852397119616422219120270651888857850293259474326316209788478217105054960239758774901819487901342259726448290352748101515176173752403389477603665012808178250025539748933033397996126243050900397661218490724952647444908647521168101053048124931209847334775056088342241636836930988420793415429276941532211196022174114006434025179790560688522492450317624069504802596051822722319856287705714118007823930883918433880061731712437932984421348351081897510289742181995306696554793154946556744657842130866639110087927664539901867667809654851354481488635778937890957646690358489195231754617343340425099941221295106755470649916056955959268404406180829656345251012918414862341596834371699923741261934721974651107143459345666710495899754839843322238932587034708027199833077433156054243774785140390443582714620925224333137849739585089618909337836651464850743541484476372609187502990310539994200802673772214544344696345305036188641753702009190234096823914384033669790453402018182270362040501292780973801137772503323855147408386445459508535505303531503144060416689847748494286075390693704703215149845148650389584338214187533519532590608373579837500187015714153358420167996109696211374861059394863286387831472909020409998314832464581729481531270798732655126507245251727578560991008533379421092937799389747221210317050148516011672462378613817946716553217552934537460826420034963298480899284068637839129731302172200097031147203911447795813257942904698722271064205366350454188476491831183482623483829429950850412025946349604473071387232284647867379122633768536173387524147268783494357022390018451235125841532722056577139929625721040090788941555881333099233827604479529287812995928933657410100245944479718035903163825506076821721770602590444403500023123686052414208952580895225454300665074288546952329671619386370718342807441712445026724463263503609979960938923071911240856849894720363029653478716774728310564992916950361531718938667007886290354660573950167815552702570466571466047299010349107331580379675923741751943236230993952358165302484854259484178347187173012342353425151124692814892582505102689355231733856958675159805435222606536746317751783961731810008076476618049360325245281818511096225223239543127024424327314791024254036879338299324533089592114576991683347278367034462232284308656483754469482485743592570957524436566230611291385385446348623404988483378216326390840149418382405972311120933932006876135625023301174170035331997995525236441262085337036618345653732401805182348189648734123530982574862217291861003704266502462172831965062346829397628038522991241477257336829714567402248517532701011733124892435506344702427430237153621076530142208563314745886585532275160621881808711356795280530156775439645845142833638486475660727541466171438176196456592594774905167689920528284598079111043754470795600911651751022563366695093974382718247323547088043218068246555827510599509618760758693620226407554232316237238445823692640711098742269523931123699863944042805781027146379669368594384344809900038244769363582728413192395969290764149008265038330860366981920313864536644784363714249775551186855695178725877214079396505624274669755876461366317372617616936640529984577594803110862096835449359288756277089032465570917729849356425182874245621679038532903451713989248645148879074071444496102569296044499317337692627191653219454699044148960330102817702044182970997892871878323778499403368351099641650276142983145542913977317748461955073865450711500678294342718742376764184736090444547979164558973013110218218787180277862548517941519408017308921471400256438849629977322329485248155591719961594683212576061000787067424539404940361627156876378864494883085639756190284716044028624690262177218686113482878270979045245638772351797853472442428781191394183433681954931926248554635366257813385288384947220155348826941985770458623248903478833608541750599674880599963539897204545943810062328996590176586045065101265855909292150851089436264089151708887960420749995676344730445077369579428023366442466747122625787528775478754044052170189140959139241613831157594094934845443336958319073763733405915084470427717828931058366502903461405937451701341666532630677741026708137402674873615826853820921403930320338394505102964478533786600260988542926109687676130154529749016041797094728779873966652276737987623469738628391979515794644932567353746008174086007060768683224850817530430370196724152476274913862753842071758129204912456172244418045999134490655166934126277085267315896624173838277206530468104450896289937896745987360541048277827165520522772980158435605197965990066973481129609620416994489037166233237896325986487454714376382909285979792116135562674994550607806875991531062973084638612606190672799442016681614982919101600338136412891722785839486180081940430371719284786670191741666705208159249891211614034275870532591223671646955608762370521663738945919643900708080631087019614021617618964446764675026184839768497520548181822793275831104013554545471352730176313330852945168712485328218740266807355825470428858856853976452184516139607819112990729063694229765344809766334111809891996667700710190021772209393151266516169729962804911113549135094250124885286404382332744120634318633818733497702358073160662327746486570445047853172291370779027280994814181640526063941681067989209762112842005852729035560158925223640306600218338910406077091547509970951961430104323455743042165936084967806415650208099951581848187455493370828957051978299450570428292598271922745025248056198393434579953834174521551479845798472655105685195407363918945387269884788520696746166346522110274542805031664939112969393616622373306389163902288591444652679877070633832406976332820956050579063691680752206655435701422675091006068964858648625509079218536566472179472686022000360783164786551213793557606963226882873599220560777324807069087207911011734537597516159701592842853823028344835138289161519636343443035268926663954208391938270054516621511992623825425361825177743187344591238703343715876159124726797007915712673287168402318240963136928658342042335372908091971624496189234332284141336587807523070648601786044960962226762301004748623236850105895697965235404977327303240914392006758740888345331373388069764341736174168353107255327402143612132861629280916125165247473506997453914611756380813355470478510328802091375502283293411487959543957249962112211698454591483700224678925357070938252875949657715895686766831972921982082921199940311922144262848023381571553699641596999672945949504760799384090902657522459891110272689832170305535216675978545842487468681841879024369898703167859133879637808508499321369586054564393040855729250726837158155010851553934952318189700811900675991312181063636599313349920906779208183407775128753229534375020852729499947592382900309638977959828296924059580995034111039700418430955471373305472761934800276791405461786810372521315494170932453688748710585523820820298970375264299719329093226042733808773668490933091536913776121269992955362413966737416163557537191367618951399005170621687791397010409450516781419009022884374747376328240971610813767998139360741612346320306295061941578035426293756099140706842997463549487009915181444672774577734179152356361776980088750434232166726283144350389294845172598473319499441685999265558033161829055130207186654068550172715550335172148215089241181082400296804432326377655896635915092852841405625229951584717688436319936429817111977941997936935347349334133525613489013394756115499291821407774248591407987188124925135493285398963711371627429204855693568247486653495902538757617993055159847686677006106787169637108724781043413073735787717007877034960282097720305414026252797505967364085144156426031924996281980566550837788050573970823675180244343477289471925518498676162772166758071019021141693726399695757955787500756478688399673815317051509554486888683744757429697885608323108652844704911871620479637430305142905187270148712288518266045080406306689918816834745157024298842159959518951320329157165945831042262911554759094874429498239165682064859121075204440729780441697739255952237523520943965452193213539592964450733709521437448516113044491443382739297509046182889556943916710316314713352841939034379984577371656851244506892616875292280990648739152633082577746343260321486862577191774564309209443186696198855508933079874609048884873702333436043340656683406447874867966060439720992159977742056878335111403796869752125895274424518239517243061898275715435513780938962053583422332192268489969316631448171629550767996853098046843348251201239895364627617796918693760514610657666183381043425873495079636131302421841579864047220811690226699656881647839103252445437635118650946595437825282772870862731633135201724994587363813527329920100924367173826667291828004782030914398671002464805139594831317737138792600545709536614810901705681061555108362449215428961936171221898747967917244082431342404791330005175254776583762244120274502121636984447154673429477854521489158828579117885369131723815928826856973975880336567965913283358291159980562877353911328831116801842585315129708495226707845047840103161327951785359004484007022330875814675397110285276554880298411190149955379479416141643857801783784237402545849656382522596858311554682226038176632070814779883194834239431954100971502016236692462059698382586055626724514669080997866951274641650283651294232331453663490528342963819797394640824683598600073118444824649516639051859382371099948621304308278344159489006216793468761016203225306513153824073852898149655015356701188071199511953589288844813469905658856540121670130403423206678944474725657284204201093431210344669214990015688897504112707134797670452210454681205352530471988573246747202500947246342674370175552954708328686570912769232648002995117080822720286701404059265471298751730011881449841091773784698488209471768297679392079265442021709466819786968539866899719793562703793748817965116419816503377910415974008883623546078275340002141935880973111189325075579463347953336248411511561413904046496585685767948854395006690674642259163716361595311767760066209520656175619992771874421374418791348200409270360435093746351296450281601183077563544368784932309082420229823529487549720863010550637294221917982144739756809569621002087493953595456983252781159075841688498755960479875638475416509035834767334666211511924045305985785862293210829600085709604017890997843304284981688029984996491389615351940495337947491196032948824756417205322491352360244885113885087345991810109517773588723538933408416632888244087763299788608388006944459508564715721205301173647493068049574296381209157670308088532128287980111470395414619343413822152566445223601004620473482765437596174946303562511883801109562310128929610624959297423389253112475324167608409795126547326165221567336063300528277332754925461217656208040862455671975625177943351133290045094926387697708969805173423757380578806367396347008696817079200021660347927957520988254761500112479094462304650951587318481659335468532858140733013361661227332722361625485886651493657098448822972893062696983638922689036600930317308755123600445014899029571776919515772572368358196960287123572759694749044033271814284312896842535599587524844346030340073832410369672340777624985555833072180929085237425684568932928423339189693395399545430572198618272051184685989139165794564214853748573088416090582846127428273404124967141871622173206717951565848557549352167014100553443076297558036746548985274446367007095147240528760974649668690910021150924806178441544346649484324024849968757798478189865486282811018278196429220498641325533495074833587426224930501455095523436054448225936379428503874923666590277811746856174190944670116623483587746357918408584279373215884315601248089664945676512527710866346108894885005300338904297317059120982871214416767231152358467826049519958087951654701275528856380683023364224724721648593840560093124926692952660161607451233434938199548903550701837039112342519980062081570399122668144922811942052298904269311484715228236648299706363823924481989907056199087279238038475093275530477794830840766844658666096088093098706877862853236836784291816412064042337841217039497408486581148568754418404844759547537470390399889883443338485010104707240598042172788464961417161930572597246832337373254962141602972823740336026209455165712211984703372371203025215325922092369832814587359806695423108036210802570660749572437026596901446074861742341554762159181880180210912496296537844286652474048163618023249795051121337519078987521109959052356272448680344431122664495788452079857557081993827095023787901834443506981302168456050917230240397233243434517993604526775142863356952512240010343794763566245980844494057605381517653404883911642702702320669502195674347972068327823671511066700473190174473874854930598828664735216887008621915108340578346400066776142744696740327792546992975040773528487618892576240946622314759105341552810622952021826568754149452309355687773891556449006326409023631745030889013874489649530087143754421331129586542160921019835328394801376150860129213122545439736071473868376220409543842089808973998270165420803859345940765644847315581614557668665713348539314136386540823522424007647245898514199262623813421482587460086757369430837448463062260011768704849496174610066527933413942364642105293527304633349278675488023620336842661901041991045142650785411719650242105182321944206588432392450059904792573736516213372079948231577142056104004625225651375507067031818496192260800952103276199659570476731443820222011718388779970604358383759663126860220172835278963263368540615322102873491892490032048048469226766035088126624653396796547913844503404696995238174197287101310564299801596106365335018855749779736465763811129965604626698675441637561116569241651183959318275585800325211624611980117041969410362389938647791793820483108694051669363048479974168427747665346484527276575150445652685284259439666861477212975980078255751927897840115954962793095277357312290841375666865414193487567904044792407408661195150625544692185421708514626723915507805226374463132270397989726404624724230095762390917695399057725796399856681555405903923171857093331585882355668745553492140691502215121033818577568459694219935204774024253626185131643732336498025678084158472412570809405203134547685725522691351624865045751754523604166866107418891612014449612067598573579654292183209120807759666010340080465918766671383807463649685718520532226979937377723697725435587110311164165810565420585584988207021005194706924108330751469712949473840912797861098185975303504791224130460521825767641583672775690315985475880265359150360113718833205758358402095367706560608809447580551321958149217531348201064265398552456032711265116681094986070199807233652227930391071369568048479745902751754314981568876235636614150150532553791054178275141801011674012149678154360532427706679530282670097579093185562435531914806014769964899126002135154416850610893941346263273501343485019904510022642597245917904278041034749908416103395107267478493923829900850299536113903785320030221695466506139863136397238569104099032291425527141331605279129920043782012600104275020821148002085727949286832951388479587025945586749147819244780401117311709330138261525073485953059525605587775116624733693556135649125915263590696484760221415542824626614156630665713618649798103857382665519449720852672206084388371722152285201567154772087631890493517786672518058107132182085905961390741312810663189553039648940097876723487741868373552013759771855724368447988213081350673578062464343200947505788947956615673840635918079994649496195628587844854691455757327265945720602469528778415064236030669136190664982288975211861048836473981925512224885611581187710271502213594762685082430255798096998141483230287348798867701881543127913979191879591076896348412224652639959853940008293340557630135331436795011044182259516494758176240810391547656574380185929192149153569822677342699810166041214960029425633653507367008455364187173174757912010962769355324576188013031977337690171568228160893494304343101574603357181361016578357767795786458075804615800695617858716733430684521948385066941832458980203001152292611094498462046751381591975125176763392195162006739263010970921314606228110817401714261858891100012959695863233217121365829020341216498890284239710422585778255309771624738793554006255802892162222315425266431560792107099811164778659175652086435006208951980179434755773499007745991314076840052878606577679331022350353826125397517008409216776370651411222084013562875033204443406181417422639954094912415089142170477009162884843122712778408148917716817661110867753090044673491914674210822364087742082947662687359310970321271929365097905716743046277107577585393790695020999058206217201059872185439628112303105577634988106878875949960749534055328528438321580010527654917352139246952730779304402152389709505328681260809824282036221671195544370428755806350661936912407874637249463402372959115205172681728145165276155818539794886799615636002448041489884637998026877083569395640718145888334860583679397465358350555220245603172972849533786631965603393088124444433539717940057984328392264245956809620651165236378921257101274091112230985694189594487171645730438756097404531903467198147638007293402102010831811297187715233621058371874203552997960838148247028881101806511122185928707778570671395749984630736314838965197629888502689308267007437504066459208929810656082039031688116155505041067496712128500561785520862020885062894561247578599115667072004534709728611556386658930059320588652963645767810513502677709728373699186241225296530023411811966074513593877003186479989668426805771805832599220767474573128436421861907433571545381331813858920841422278715252890848053075305575941577092259276272590034855829371780949999044497457620110578973628286544324548300308074612945637943460106951852252450948180718781347521906362087649910451181598332924161849657777122968614397023728148756193562903255407428489411363749451056600014600138511278456834514572180339896112330809822665487039563214002327023866731583351034237196049345674317031377987345589439063353418368867727157820490386849416439750890321645859897477428911456421261801891168575011848933319658996024324799185299666604786220278615880302653626413830580475089751490014364079058674430865516963028984425246158737708241112358944227859852790949107431952590551615378285102750159951881846772787787539872375401611707015863749891749572896300834108292551023573577379623115239818544219550309040448716410022661242123208448318970385705609172483759647687410482780809995314473500657163003635711310148775925289158873536198502650172722016192331100027300774951226848720013633397386057727245629994359011773854051070143620601087813737201856446933917981495062752860631824224212713689277477519982114555229299467056212313645856054947116768668019224073849287926152456485508810825901506698486245177051274813272842715225624991990049417039209266446117395640400692984059652364452988291216367289953673981432606594020850180347555016351264109467200553468252055452679468834915557957912256594815913481692552480959828626510898275156861998957955433264447526719732726749133564750263546098848875823122420191695879958910436797419708038153313182699636989267195746045286592226507966524783815956102176647171784528211670961055303215986879208762889283984130571931955967135037303339584269481002271181248890959523774678664909895167133917844439385687699588243262891549104411886610346527625201512463551862214517907191413599386839734723847773191046107801059474592416221438896516638757290328312306190904626421663626286831121538644758145254658858616152954741775886594799129071434209005139526436249520963511993617766605249775864445243597573167129645572053724978010056765284189665556612701698742899345557545698292930789985820514322132446714708453861898297516296996222736624321271281662062620625975157368332367027650380309866835032274148040608984320484020013394074607734963179049469022905536588923503025832610222364375989763512009439806986851892672771271671175884730557319273469161384666203164135797828532047949420065500501474800823776698969658296987569832157960910391544110101859973440713088735776954722134831601667553862202697952390495315721354959382698458357422550225352399871457625106706228284095814176746219853346223362865639795859814688429136321493465615541019730008436333116624724949492215281686355894726535205730961392366566047979344555215926568017814537587528741902278929259946909087015897152700757662886574704146885216463093313063778850898670776004046602232932354014829220747298408394021732134381415975170465309146941123306032680431018394338094083700418070772717768001276532669177383270810122595181942082764688799042366911691561609752199535374298669467406316610843799795872834634669562383365241957817804434083628770158363552344126586485738585531499759442582509438087154046421966346475349180267962021544061944768955747689530786280782257661807279520471835868504934730461489993203826382635765566479340923513018241271675419133151062378932281839665422049910490907927572886624708289842516333718352286753426008650232404989066065068630607783554007102971037686143944062540938443791282973234570477559329133379467658860129759973880491857770064976158556456753693566665307245899011452656035678483972872570133944344185311747924425993279748519105974892912990715409998759998276366229145933168340925362859434370151359623205870066164750760183947163974218989321267856107548941919860648851605001887190902857721637086247437506332793875172969557690365882630895478941157833048872948944543171503649454451030754917353393470579920096632104493309403599413946458475052959483515723021571477869065822449687922767094346589155882151027754890230394179841001070992157197990933448326604570162189532047792485044481398928790796916926703941497705578597405398886063528078584269461538638086439268477766574977310735796622947844629146539867985887490133215769727858890282543130595770264896745665811432227715066894110877781584103190800607502353708514868036535389478968837598733506982681272658709567587229214430854720061934695144707401924772889697908171937437561357113703595568528561506835425472214230384121782978722461861460000284895646139767330409099159408767850342893276455422863949936879974688287767494909576730847891421460608797749892721597560881714648134389429966754052207400500991394457255632559019349404086629767015533882463486321881489275562607536898262644051777440353660012203888497248981767845607933516130342955731863524658045054000145588885707753783570474211953822715855908213869069448941958514602155719893205188458714434155162514294114586184115807227748332216989275487335473202236194416205197696713759729201325580896829578163178614247327957718627160390274078755805085914062419739475732548226730866657164249119340738067623071657844891201491839048070348346319954859476690104546131012710757951281183968348493238346741696986874626359110480803644504910449703765399922668726980080640565651183981214040836119260784791758375690108598685171393981776210575473181787237323049004560211479267044358670581119525925317361815765681295227410548543979952509617219007273358186932028758933734823756222154430429445049787002081878629059993828309562617360949616925538753937774275077072492413049145490220634033617760380760316702524839082826618396146982851476988791117804958763834989045416725291449048455826576601684809530063434668553025019144725662698441383049896256131930294682308242187858509970132348188029545337783792305390253357868307438599489329939879469524623542631438336716417913449098150425738587634192441086526985544541724671061555255084850966402536250727737337342185180644701320656847449087236554815173998541446750728183743962591236222338073568391717724233225164063683926028511470802316193145476175404477553344071885386400426516221240509720282971659420187923525493308856315086163862919175438600384850413885280055529904095942396732525150456998446910060317301810904132655328942394677341605840917129722109656233402209453771360234525338628406107978379747895933983513749271810255330499418559572193357359375863381307965697392704046559869260084062656485490842626064416336755275002448699709657129665594821478345820162550618230898646026615095623595595868212595105230756383691723995297293150447257683999806908859000215021711165238750395147534377282059076046614320254419878475270775146088426666913309157372612137278432601789548381225506690121691391484624936850441086976701089037114005506550655613156934432335098020108407952316440724869148235028611511379579285501019776368916222208451192681423129944302194346079142701836196208718676761381730037036020312528938526932712656016178824420141680863820767068979265998918437981699136615881883878699368310169274540325011174134128826501593485919779028633510593489920241864800452001888584362013503923432327942049404515526564263266911275303816811439407508491007170459470059606479531430498070571443721419161198073930077633021325078419149302322834796492090209974065815682028450153270567976920401673062649455500172485355806556668293415670426123699819534745410225077992035298070905370255157758912851264114655551983031375726755501659703254252996501648491557452604018414727602101925731513464895979642776270534111929965253358236673136844618844243320337848335875981372904022545478413931191856762912610197294427603185185407421147347486717484092769497145837008265367796849877559614865084656755388317790385664874782381666677804150547863381750315887155425032988594795781856004674284686345761566160461307581859417532112308040499609882799340648598401011435347360169717746264527456377680059331225810886890938561230337776988290143588327352071928863980053164929695003802437257326185549405441202761087554802656096576335029040122997904262933757321941744065276419752225028453656224551412397648885164204750390735574406974081933760200345469170218575312019434008103146287219201941604025561495476946179080533334371816221876560176882488152526090251170776782757713437882385175988990568896793300448511200879582044594776443882163263838284129312474094198793854466041712356089579629058712134537432442335106850592004261652770652572088197135784866482553261264632661993222728630138870205825359217983425689958339529227740654225195756086847886567342684325514088907534479054755658149949369702142161259357834763747104420802608605571220441393455000928465699300035577567394254029810700065233091625231859594963258554569169691179829390254385724549358285362773160117243697597437813450344516382673764219620569800323381326310999104292331020305666622353293106192309959992523903605884530308004967449014004657377992044480506475012243769000007500137964393060003086271299411785008569410952044981422423215668587333351095255275945174939728294358832877997062641960634798228107952670124209900728259118158781440190161236026752665436576481827695176998410683822308433995525906405146948677602167651790721337255233453589516902416804349284025132313678044337525220591811506631569560457747312991533723742651887397108880550678710011848828703419170380627741076797359015443291641172980104087705968522212079748757527016302001778237336766463613132761050821224437527420095368552626995976065657785944902284762752477080316847712764008415627712045398156990661083096456431090118251271106662350091626258884796172810470566863916820036508002564692017628079231457811243624557127192177745355477165141443237294403152100152842230716969329222816948806383991936991814274304252526818521576400015829094140814898829239325519411216779528314696724688926021824872202853342492725508981202672576979899358295162759380864663860753994165245111714283427355777443034406888719143349133042682711745250936309333318680681857680764083444361657725973780976870498127971475319213796017115099635980262903860372546446287776736664965106892616312616519557021174267304953197503679129785794679418840286762052189994289976143047321802179160824169835287560666883682846690930410844766174182053615783171630421677269212027940710976500295199930813567715358507805025691266814506727763508852432580162664919193053814563916396441359985515170423763173379860131851718199991791702514713852461033174072570566513148558376378814863672115071733558991950106751866673054948916350372536277522428987970098984332257602220356863726938954565891254851196900237600525436810461014024103242358969544634036672814967786564162588226659233419247501553825480335916509970287260385985908071110550650900481894143153467086025838098088644294816875797094723998624970729320112315797339569375199685089347917885031969615258340293760198989236751323740605814243627577957696220777338166082039339028128927288377625324778645870318579471145751077172353104142298673068920789817608679322018367073775446278855251473425714933827729851121718840962735796115943836978484435207433874408388075337370675775975059124180779568554059156033483680702360714672867475781607685389511089290478413300591196391110347720245598966825030602642251219815579893899023933801070404338176135081464904736216764398203291137682055033012011519156856502740052804621024626758930583510615452780379386954930828754091015395989766451507395479247908296318708487597028908992898001899672880552508932201143468671581874097834031792501372927788667892825180490080305727580230637484352349371726370345189566254898117722244148998517177599631532057217273113542606163132997505601428829872462984832082282463443092106788040161526501581270821184941497112898843324051467325000123043028087160642825287972091926681815236268311957462816936041357027511006986501812479421724718149101345631763179399614544802503823742090446617655917597325904469322977625073621042129213877884524547410620851171226080131679907800159862816833747784162895994122833562390603071845018045052055272195913683682790581242362371162105100319314850288470477367558954140832180492865607132373431150429498906952310169791559940914283401774265708418206619192201134431942498359910018964921441865546325686503168815833933666674621157109697404934639426578023429971835942728526698756329280534839638577117601313680783733168201319413299699161132452841014131965845983991450693585859061752780146174368965971105339792891845339263072015313542652752507382271414147435989619211754766626272103007317149790788960181100196365404223786511779052378987168594662389094351219613309396325556913630088993855282558348083397426985661530689812143044848624534236554814264030309715232634464350750878882766717227066827733428842292676276422651123384350715926171573362434941809445373204089937721943725663577091837131279699942659348699419148122238717746521377292157590985393050529795435407589734295466533094315585899271656025614936669532864081268328125681233530899333264999355289867959964428340636985927728699667063066302217801418987568187043349062941129707792039610011782609653796261404827719555427610586838635895058517681266433812121408900268154039262970808189372945760563265046701682738728569162700085903028717252363123337873488186449752989319464235359499299217805216653257367212719276102160699594195883174396397985625724289002881813534627965554346132665539108981213441193552372754012799423393065585504042858539495596585271709854575812326044190394020806716403358173382267250933260182290885850577908134940529320404404248725434858988349219843331181836209239046413242938975174641194238997711699387200597414440866691115520051642200074037412343121955715575586276214551076595102589868746495891625426471378930551654456858208350809960741222720976317216397882247104830460415298001465921958899715996179749359671686035276670695458960070401422633513216164145484539095758711150751542824454253746287344650895064440906950501757918963993174398638169677321867426446568288888949490268974823765144270150405670399849157949322428283777531124956498223661895067956627416626956552420804956261542225576136344499626351226372390867158460635460531675138606348020626864418844198851776868101360397796416797583762207706586958351814385703039482089061166788129270950234610026291063444849182794075257022012385035637055569874566789791052708950526624255134148608569470589704893960221925160803903924133349467318115131867501725707102425856872244102784283139352750599129663270047153560487971677296241264763105675432361111444709665956475866172877240210496186586499763894616586773505957358298427768437737227180940981344980694772354527279254244283099518482174280708555000363074666308380671537047324564616000456957163964004903537444237318810629984604645197876944459642725266654840956962983778477576535095919215293943161287017445670038572158121810379395911026039191046942788653900967619609980770843720645109794360602204985801222535464452581080411800122679488976124915239142047116605124304793345809349160446454787168016472476044470632163547387342375079695276598058745779436367300532507698921490832051989002390018500189058896200646688436219275582600483730800640085156031557492822294222278019813730072094936960455239876273703519325782135649249809992045916845295773008956387038489208177978125866234836202528456066132299628442250969854726698842520694572058498917412747572253910866189217959485092519353310976158864726608270826208635634688097766299880732083700595537363648997857226107695813611648972496398419797999957266425733407710820205930765300892511703265933019338450256244425425594798023728746812194823447114116372880673714544622414953865936694106631245145499962581382452155798944689806566365114253847763220191123745113038212046835892452652352646067843915535098269870110999464197028534022897974904292606598857805973497464423585141853135178149413956625999988034140872352468760098695513462046072891468855697008499258020525683827106097149335291937191986944388840680552977252966675611180594640761859649090160780607144619173844394891095966537951705245302044872707793002462338614427191238898147017770366441037789025575236245269408484910872047498003709545863728361608058264636570262713804349134719923107952500414559752444394765538381103276770826993073298344652718803273999662814005950361738868537743559345389572733795763421538078933064098195380324962320497794404805346053678760311434990129209896533634737200428011766528074900092302841036659242806139491284919428390197234558466694737095444999796860137821591643153344246002363644386357389400055158602986018781017638959608486956161033199549853718916405816494917405601513046597588558996477483425403174295896874078158249113198718765971299744822437423771007340796805208243585869653388876806799317428549807075679911403418922211885068589792125917470142251647831498432153597329630786384440546319754676617926257670834203513101852569073769535480051608047688014760541444408723074034219625761474657139563932436167023661374188219690090113769176741396764864093065228324407912022397716217252623345472774619502527144540042022339604204777491544057659375940253161796493886565526084002364235409156882365372970409135936919564649790123633514434589793588798468055374841073123285937022982385915089332924112209999862795131463073898197949760609765457914794902348575581996168052104410875153709818648199339522961470195382900834403051859942501755584169942789206496097513507405639530673850751802243204104966569673768560946044470331558673093726108449195405407158268357463750391230119086206542835147243735397015282473278860612264062047890329407259143621772040788585640641064228861226972891148069341640543145184222880430365435092480277798468735630528163385388878420735499481769144566020921382655191123409706070099053219143446759389355119576942078187710868723729264959123109384673250688743362446197714844188435354792346130848957813531176514761116212108083091393827957623280945744212967662963777295161303996603316983133773227182516420766217240702614228855992361413922367160779830574569226113100330050357590431641572700906181073289285684138174305376596648581957637580773832726194821679585547761004350200059860072560314854280656611188118641474343812887125574280575008948942463161854892239527281825591248570335788960723223997553597008390382876843868632606004041197468268912059924658581835690045800536640960840187434275987422516405736100788377866464755919055098293100972818262322927997810272981231866126682358639179948472814285463931673028653745444395310264442647062020812292808485652215604563004285091798938881578131103091932452498521426206347130964132961252153376908640320421600790361748610671595211082708102758616749926971986023925261769789321226824152171332233431418951054864901149822020013862034977991355566387137198058208223191538369726035919263429485262125650165995708570605586323222767977953924416152808448656355420871751908397495367425137903684725236800091846666327696808493350119742520904307933432618691370552316883066548616663084130797885303940662178324124371943563285513388731574572930462038239551223561447309738015376569327163828432514606922281174813023949013063708424666955567796596559515379935741951995359891399550533674090835942385683197361267543300713502579518682767270722557514364873378084340035723680078130219395854543672092955239417037804555210515128431778427969372583319388105343406355074189629846917295360413841169909343967097791981223286823530034869222395770934687996817173833362283243056861242203488856967290159079793392983075019743781371578274917964901464889756850946827368221965043375701184297539684372793261986022071520245217655926095960510086145455138477189010516239150372213043846226322118128573726981364260578424744828966197081847789301120475607336205265643569359838301282221336797434380406956398604579776673838597175902413753014209292164929624865827843090835988205913973148493024371633706302234712003637616780044950814184958770965790024856050932622868559863791170887480580485758947885776644319136546479505294135931797226131662223775572252583218890206724421587172402702453270995229849659919476611015991628875073074214817246555261042866093112649695497005841650586296707387873120272934365010804959671016421323512422731309298101633996060773970170119163352040344995417391864503056301920842454889156730122630294402335366808994172638186857124171579015597292418038352805702435570961043267184872119166119774656200587967596381039648167159802680266271060577267867515426026329424209862616138955009682704871069764423857860241986806883410948102758548069486619039992446893276429241452447871541273082422201264635172340129343012756326955553879023370167735213986892749594309715272983784022898291104446399575186578865326795835689728123936821987241782316031298556384530622488862220279249445356389943621875694812313323378708166133048883148873994449845087116226487670436353636119318881708265222808884558749017519230145182759691773573363918982676165166913942675216051874479115409103733314509296268350951290246537908329322249682351767249131342378240843493560682869897691064798149800880532768990280453627600461431364290814512677926113064902922939956883002258155260251338050128660701746226194384490408096708532832976047844584976882687946538526627871047031894859426793490638370059826854438285982305695019005952021976938632616965872208793235408177267417153982150431965978574491777881547607239153231289131423223116759478288502134344985395569457129879053122617847409139717420041646279840248901892909044307859357713251849096124877627420440966804573489959445582620949266692710589217021125252974279543763502848694937638155807170465869937866721209325622419732178659702230148717624649203800157565237301535171191092518646028803773377016091179585872823011852405735910769582864373965270976435492008243685509697860497535947482401765464161378315680823155649360414795188413272971248548682558937061621167429687231803763855466128033385222056551347632309112854119882112317939344405141971323146145058763516666649435209401764323709013757115465734148529454929161173182184060675666690619891921868954627888764065364147100880674762850607431320445525133489655333441779675806666137706793094919418460069889190623843433143723600708319957451333491097980592579821729526474156541449119639750512711946149712528061218587978834057317082185396650882992875748221373203747473307179797532324254160202687295744011090299214351564266758129528776572332344669782758752080228384230280780338863547104100663269076605402569313199925368289863459704701099162380942232902045290997873830015083098450015038152807194828935211116980331085473867787664088660506012820224757555412231159367006856614603784480106210343876613775021039056617036563456615577668223125180089133648250541782370058738564497539522271381702065988786004637698455098243943394129685679130653088829331761686394804055465488609869940193007610522390173734177195524276267033882799359128362526067779457534079368260178093003944261798214223962193027135380221673099751020496975045057889928079620937011244213269993515739348391390805966904937217217877494835718498280745889170137476082766437704480828716131732160162964299225441456047951905093966623909790808098557688856657161714000945199142736191889625923443887158070997733601084583686224369886256745604419309031102625271192471929028709461990137559500411177772889924839357599289979142315606583733806253286174370484078239284012144458071639032059147681188755141382608346715891101236056838861629749060182449167284547191768478894713758687014631592288285553531115771099249761272041729247054489740127781052771651104852690175960673380339954659352135076060003105468913920521216498821944646170567327180533843225381820538045428621456979050895933657520474835042156736871648025683187140351473140647357628772116320768043959943725232512794506059959604946015161467973852821684620836321449335695103285239802532739478552770909929769184878231671956991242325180898598655003810495797148743346219309395700014091929491362598807646939386537467160432854104661572969262149993787270271124808113617628859391807580050039237988238019105513739943638808267805619356634085329798991213340767062490876182846343594209349237960155494436157932306161793326764781720739652309490531052880241789193683872887368630786031583744094845317742149259266286443353537958888274085554627186762015250641241975378523299001116459948387023661645788277571808782897212952622181240253129362285088622192787689475994749272315287366632954257283012702227507613741649010251339837506740851478563182154976824508669362323150112885866432986649366449096145901525567048168659254672164002742926717516274846029766267657974126201363949149368042175031724910381799890496227138426131085850725967330865553539745032127325166126596297371970895954872195163056988720769522759913838277777935280275142297744474979919608444489385963298138412369322071897909706715864787016020653720356745625942469817279900702461562844202521299568737168227830916357438675513580843884420188889936726268902555379019869294520085398732790508509195886683070930892646620747398771008142827015921305896810056423669737429807530377992210343278498502018144550075979393976524169525800496489741440805384900376293286465212651801439715337641624086827705861938990606038571154368698036644956840555659741086762496230009373464576881543319310500215003151151746943387954796138961973562418130582370021819661852452333143854408993982753863944746458489126178563837719254301512965036508543138839244378374620036726600754722249207882304745340083196824739646169286527698375219212764571299201632608402509936804434347960067762914587361917949163364315364413937241689442755968348636390306339219515199283370586172419994132509655243902451849190853477062035079640877967446089952453165753060105481704244733762540591979225949730457292901625369722475606607502410816518326484629622198617428165066778984874531143816406399821851892151880537222397980417316871812427255655142973817523584225116753225551977120000353007651222979638885250820425251421598345356665959953625365251849874468107592509383567654650969164418706156099429210701085113397577736372398989743044984926597637192846440307438950407817097355155318328830015858116987194627693164102523053027453797480354233704813783240804473496087183764125888284862945971723230750357026206794475275410899554302312250101062503296802576868602141616168894314637196706138829889253549623902379556622691411474154096756926585428205745347215375084531598396116341925385067315413891842742853938792343977838961343493873798961256310201852828183857845628229140458162633258660136700397241744645439667624045951102908792981190605998223924900114698798476647820580151103342890335360916492782256250009503084446544963106976247027182745436405545813470257648932295587217839194814165978673008755421435307755502390116482307615758405703403237554552080402630946995600832394029959819105885764819851905857550542318852228319839176566593920329854861220177496760053610626173787288437481284324091915850822221553582952807788113697467095891904399856099070806932208111268745179919455982020906342698925034310770211641068245918004890048812093672478768089657595495530274902342607084234932580531054548400670711838002107857214697558933006637808811183170591845589015405393691067704892477544657401991406503185589716985775210070145832982318869958798984414111169645829273689005819815626528268194929872243113796049368763540358438973246999249620136010618900636004461832367405059741272029997686334953544336640529356292216986609253149519919380342044566620156833714229774941659186341569235229103061854478097020744458778520465549529654300196210823421023319086246220336976874959552126875801600869082541366838005912937376896969674360896299090642808656243121730500394242546263687315133851769381962329799249909873688909042987433295167725213529256261180753454335806692158692872559370513323527305560332444095707683198365914680679248155672687988712923489920641857177448210445774155841728902029554028292821668498059733472560891397110927992943507803839213445744478075883356228329436485679272612866357388037462263669608814001650972250939554402056960670101953561469627469056163388958028577504268613076952207248379815760678655669051866281113166676183218339336160730634879564492381128136125495745661404786424479472209610167076664734455102292021289997095111971442027920182486749313314294025797079895251088806567990628081878278485853999444919316134019574794235938677765218327293748777616409117383030997838838330214365233304016447944128736240882291904137667695372802028244584452601196800612107731785262704505360076623175481173544034168166952376197437811272901254639959981881461217188121003300642880418864095672053300933918891019167944382165056564478450389275403951254623895701398238642296046164160168743749542123356535449881806137861324406409975552744334487560015525089929363461963612916443046089295631818577167701188915204658803453516954257341968234724271275702819947906658599295081213082078108635792644299170646758786660396316194008646653351400176249477330677204377582273309151015978469179109475351468003026717623292168955213235623368723334345619979118517628846838969078363424278642470274012229438094738207887325396505451918951599964824735251197739393850662288258030492333265494413936146015730841277968939969722606319497067873948505071264131690665773793279550324611670464450627644946433435678474733343775529517313337484217954053742926407415263191358116864519976561867385481012981128280880392834601884735207131579991610740962828479678113809526940269989190900597166015365209343952045358887837117015963910234643303056533702907777852049804150492356124173399012168192986132051145717519642086978145226291276039568123789958037794276401930408147224435163652648023109264229169932125150480977513683946598465429876824569876014226377599936066015501918166115298911007631791718778646220961877614722861453175801123690347215753618477813464239500761380216736411786922923584763546780542090579091070376707168582656807537881938471844886576125509047988697446482603265676061487339369543927278849179046312842153966997622983479901582786486633639274280284887383471020706313480861300933909023914662863139155651052364732885665624119610866126608364121347803540263459466648969354777059562336745790497386152758086539850003110705843027757035989497462168026053077033489205578320346508121523301772818193008718307042265965619815429138219562348331409763766648214390008647688594285243056334994030200199456339808609038972849905797084600684182424426404381203729705372240668858367234616157898409069097468844844702256706492306752567592000829869910518974460105122149793121908482351759165330890588767492879812120214032401341645648196619376292667932061756267544467071045161923160104141298948324375893103887806371105854795383342720475535192773328697483216057795622238509838087446942129559985298278433326745091193401618067830831754355175524402500879349498749779262588502288953563467456210898534948713962502646444057305892790207715170604054182675885531622172665108534499622001500167981678502018573929922683882060376474197224633713055608494180801346560650257740124762126535942810984928241687546512599682113064421018975957394487996820981866933537770052148668910728492702794004829619254059310849746821893389081354482872211846690150187189860797475013754172067279050635444559031841191963160663799136605751390948262316919362917165176039243456154168807764389259838860785038383798280609089469733776165329785809299219109260071690324142525538432020731917422993683189793510878069317705602120014107854515618534800753725578595796493079738983129467872822990479358251059177454603643058424073045509926943789155421800216734815703535934987372964375445272539418788989129925822608236169142143676021495713935122797254811660341733372397829042782981969311518248020188405307374276341435524866984262068602070302727028662228890911823884720845249412607924643902564611730280070656155711577647885613789727230362340811878577960602402248547407984887576069552875248204966515947164848932703700103937655473843182273341297277909075335110091997732929821672551140072621143477864264572383803590703836294065170460449034936152734736869757041434002501268146002005298222266932161601809283705626780330469192617289014606304444048601027638207992706207853502134044996696508926691733887734506889274122787590092934075650782126548937294253979130929982767506777180497153946628216509318460656561019806217508717848587128942431638684642607585497484743035326939082760717665486638558467867382258066233733278510871394769541684504258635884723386725949774582431727739488508943112456837285104956475206130323084340580075989004045310913863711370358415071939990011315341849061697327726541008805997204446420708723808108230500864337775618219486135045995112331755981876416780148000923106490321756237785087827787345741437396682174072753529635231272195578360956176438102214094975971989906253616808726744864550164808669331887452942476919145662680085518992529652719854099777818349731983045475237394913777717856076125837090388475404371611031891962256377438232018545660140618492746561015432784772705092560833557136119844059124352720195608767256799228312921410923745717090968175101174741278054575872360382448500956231535707661236999533305550422927860481877914221293422104735410921420167274647217132987475841643834772683287821708439745603921660962408603792794665757107556240677255565509028960838084998252246125367134753532820723885153010945755262289750320069089295658538065892720930477261481531900414734331730274772859412935484814823131092977430806188443724695791316584067100283020299152455147389109069587838733816438009269032303485534085682988683875215761861880076184307948668073968361287376161574965489333703929353865319288641020912839810132415890708644805575399352284413529429803167483801050480673617293484453743047775266142990054690295180073388462242871854928651984241502896715111177531495050999237917446103768804138147161572902104844852172882830506792644043857484825874148133116078999973355183092623453273793071288512988463440277443559654156533233428383235356237165707472779087677901022060631767443374015026517242534974073058627360570176591228036480077872500465547506594976424671214844982963426676690281158834613042820161334817221957360512036341294922486336381113054889026635230719456366110871849649512132859195224629880682355621206315044103580009619143931222260403330612293659585045140595565542114519924220740696399092530880567025942081263866012369019150783108669674311924837246795683775248061967691416948039706143063346001086468513239306807834813100195687136369787771744310885375561785092756431686053645752003395366234345330476248586664557529206926149480469639178484617935828614580641820732169090865974837057844797184650361108918587186812098570477463512574031293423020330403540905104967441328712109198895903275057687228957964781253873243354670679478133295674254052668355796929408867339600940107709400026011303175030224879742625188732563896755575479114639714391344074085617565784362319550386827852926428410532190290699731309853828998298576396823723950649886208966018104665833890588065641120460884735398361633358793223591899214347142607353065021670879234987916252324133141616779843115316418961828422810739604645350809922691214074750915941122165651308234448425265163284906382076571807447685422567894300125982053972194809126347827922678151021330296749762329323901394848531059897085801366931053289417267648112757326363338986381171107128926525011737458478799518188411887337174457913535771607757532166973839107519041512907413911926736761754881733224547134674968336697893282957114598010142400027037031429102217155142291669539472179608331856092676417259923186035795055418199392343708042055424162539690712929466247782979231763489703930387603571754537853438564430202483605387723831114760559180220437390723548443124167340222679912002450083247840437181629040038458882488225147866609272025670839922682416631976093524918770862256330167283702749058419044289393857042499125491053494807938873386864609314332990647256023868514056796151035862687626920120693641581486760506964801008473775063677165801042824888469772379102826911215116494628419581989023017248594657249471418655196974571242895764491943034586606789455559779112622170259258149251002233383269366177102797197052745386443550960048997698182424977302669851088666031886709079265573783249019783864909658687336667794189293100092279101330467112846560867700310331791444571878995840497610170638020701387306331672354359792685284737590199533566681451156612568663494728866776105097486505212991010185734728584642209410331919940725142760243326298540604069399079777510444635029758306601420255385023170214075748904267547109393246466015581064796693374632444421783639972324183292683370540766116844073576900600172802020414130662037475834121502416884372251399029545972493418914029466391665073438436115776359447710484119120678545921386352860049073506541877513012573542241508765182703545170887284537954407773916042574474916429176117678495577394472502554172614927116333565817665365980529719014637740832913777535158244874314652368172984506855511032232021656216753876746198896797710305605542716939973608443556996720615371775471984485260327959437117398897624549008225379372197839146630777591812756187412917118756907273167795062649588392684081666487417027262739914343322518660510707305389047578894475846210218273063652058220411380175115966267087604596448145607353604210585315414812866823211036518830550759891235719278301214397314370301363755858315149949318154531370114807495834469364839614462579551690340888730130466840922786948511085833689519306901341408546398821161861234394480809440185002158250266345269772236348258661224225423993185021595755499228370331062168282733822651266917452460290332978338264197208518240671640171737392332173927761445137432422407885831963594906840114044605506003607222920711258642832528466777312155695930121620768611037047793896186130709661908079407537572932123350294524672322046105231911026718157838459242391028052048408169468701277692827315221150693120584791894561708804451326203835455440449777164730099306894069255402709199408181019995773951388309314667368512545368098776995609690129165254408458863091799107348248167438083150958286071054160394830853970408925321619145222132586975066096686556435068513425464277669338037517833247066116178556089647449648348101605573337240215337661822816814631485077532070391166284287485042062898568176001800286311023583134744279969411884893806345519228654046252108448837079951743125745958962144259717528958193442000487445768830425978332123569799036127235650397622863618730845804988691782624259015129724114893453069070095854556767750874451207192442732279001990268662491626871617441114164731222391360852631860078773479645910104397148897929237677766428476349096195675127144477886045308452960195495829648413222605480216585329485741019210867466567250055714811330065769080750600669350940118816189069516457514558807189627570058022161849945887263880205298665682036143313230296031642901205360270024274535903653771942317930385523444440497949061657409328534085866109301932852291787397435028805073291573751761392653379630954244467128147877572366532944140807011753676762846109686899859270255997291145613239694135273560406530426802997393792340518270767089355745375623996670665706513619297867904816658201889792350400094843453526168087697582525937386955252050140689170447006636878655967722022133865605239920495456342250309173532389102552205270694429540544771011851470498088462629299511381462355026064165478633713092755040137957485416922709766759780848430760830160115766217165601858226817518467385713817768754854872048703123570892900369839125375112203847458667782007183049521776961139927544136976939096731616177110539498471824941165995676948373741358208321065186761108526240046141038639024418280255223298331992012728017381482767342920426493259557102611426581610107551435475285384152417294027838701499200505372163267497064741563108200314767437576593459676633158582883393062055670305396523710180475406418696328911304853414965405614144945692386227945978266030593374479733068446892995573974661497202463158946679116271611997718654930096100738511049357661464995402202269663543556932381285779552291317578598400918102491822422204593216421418185193158528297711546944988149586488508225098936888222960753067835989859024749502458825680668031156729109908806490311506875662004862195986424794057484644191098696319953176296082386261202394224955927968229973055329788617594592424054600917792876920615794459059749421887167388871993003174298511770194196913121392423122867589434604976914359837648206569456769917914564427347323532807880694339299542983370451064269688450832903492926584099872919071207548034316555639058447093266016801442469764532215435607029987867632586463724718723459426678262517883899969658643738279149701192665819461706813964407054420972762156914493753945628741153449773546928226838230237754382101184421068357233747765913497891713610234585445275689980342208394538792162199151857087155239936796089748962307544438416751807369270700131228443143359533170511286029203224275815881936988874556443484663877883921204947308417952989024140813259442014641420439887877743658740342924983145356931333604291019851938191327691216711630285880602054395156102469489154776695168473955386591827345598859094905066679098083539378873582427638301114393926920888634748561743482975538193590050383825762436745600859584314531856601312751370862370933452289632235001615974483581656552542310500638894857123119886606944805749293128061792824567509697517766685582088568205521675300971039419599181089237037492016017616294121359482037474871744652036674208530903782715599140598590287424159856925147341179743064983083024860962987693080514628801329533066196963215646325007991993808370426457708706655331402365291799020199023714226734069558533007903479313560863624752370542305604088631341165972780360000602098079150179698407758755763227605456777262356916991427102309751455877944364914424533609498004771930040399397521058550577513800421591391348057226037703581923135589188312081856701525678801956905025842646969793703222112330383070120105693269124853440393269112788095248236477875453715783640460224798446534436084096807214760591407827513290852795940289784203571201457469285375311938778233574790855231453144739781082875397149811993990740893197762533411491444737547498308662746680612222411336429592292268019788664622755654041183799519741784965329339641572381012852594775468083379298449700683121148120671145827895319994514750161294616294343956473278699330556118484265074348580665918901895311808523410470928071182210521228799139905865413524048894850823016553641036064537238075084222038179665187611667316809724464517701635058642838887278380294311319686197587046671628760916761588770101186458186384649520912868382745738541876167700109418296800707750899622946808681596464625106278543199963120906659324757895179072872283434862697665623489989047530706354056893695568225093890268589049378339279905312338768560577193479593764592929615642556067323022093934072446869902563243010445111217736153281439630600703608198521794896106295911540099146873787153297876602412550009054005200798133515780918028432905379969084024959322603074882601200836408445945644229772993437140079724954851352463937115395000122348618011501506970934443901585250790945601416766602630308425732995589364291284888852807503185515499606923873822018832608208682117709868351423741385359002233488377215329694702377512945527620231851480852063313045688240414828020684835227542242305069076452913906945033594469358817150319957382908844232784467673101779798023693143773071576069941478534232964314386948064682227214232258104834422566520407458284894835527765420754168041847574703811063747929119874387097598163799146273773674660638684067909687561659629145338467070489268462064150058174575067313756089642954538139327949142472610045310002571469820201239440142110481474086541342930411110951592524094128364328780353532880484606732663767942654506195624426580054369934867349825060881866802487856300585433677790726636440316564204223234809867530525868285805839163542538371920300668332752375016263657206942011312432898038429277280560628307334203870414554591518568287897295770599856312545858386510027299182529294725795000451754164383951495016282148513388312081078839929841781029510125166756583677196863083938866749248673360593499415249936997741644928030597640260539750697124456921724934424525761021711697670289099496394532665599100426127926808009516667637709554617882193369805073388956684944849406156121781352181886968847667153389680945044008826022998097080972977034534269876333674369537110323922715588263904778708293094073452695047932990898446037280699054254380230073044220152337137941735789500201809626325686563018448779295373779454762803731507193174895790117811028542972829863210285554104304128005600357015251654308181805943718770975591068453361225515663670622828656630102818595975000168980016137225535111763723064415267623676308001435637556322148008704614048489267600078803260287316675183016386530932456303174954879327562972263437213931795521458091535825853562888929348277830604285345075143358938235715294060764317406043932840537204684796800252459481548503428057709011454760613775050048896856660663520386784880878184015989723521419814133114767021327991181019425752609130726422319875587710736739480779153315503008346806194041783719784711791191486432243458530495867516552341382550003740298116812474277318460102980320059615720959206032132418573443155574654264179725876609501498148592714911665435679568821905577761089507657028473843934262838599164539672894019635338832421534961778014757849743633463667179899169936633876870826620145274337537339309626794949310488494242579039737396015172452130573050342742025779373493442626322731823148941752302164837893233610855836073509294082687831624500214244254240657310363158487679721865541843757888023190771989813582912508196083832789304949004867516048379813465527000137852167314051001100824042007412642526115575922992222731045190528108641770027679626381564391466976807348249882425552292970662572108396045208718198403647422576678135368209200795110400720625338020782698781051096107694321848274569164712484088890512024093454269795054733528569563291795603503452420825494739716595833446117089484607604528661909364423066737446329396294452654356127576427708029379889638470829381341925273371652418075462407313179019835111495868896907290272540235999287035995966567346979714992108211181956999669421875445865043491140616575852253355179369233167198125102727698209254577852001023021908728348263585256986007934166730919315351102845991814477939368007914934784776074733430358800747218642218195322778821952116761381435844749909874147949963039645727785906959827524903650803443733422004494846963024131703037674479777837942970835508452160911186629634972437891265068223861638340406804100039652473684474879832465811447340293438063450964407792367253631412413187090778584748571658918675627855561134553077677864011681666870699024953126097148590811101326791090556058169942596619069750496972606367431608436506219426922857026649970532198649481343796634503441795835538346128656096141608683082889353536126683523544998541403648123054786304219535221116066203257220205366225127792621742842824668292640266384328982029204093907860039181530713012995306678554973060605267708512514536111589184612622406548641080411031840548787687569425817801341352604154377719480336532627376636682342871518629812043069782906761825224031098433835221674427455147389399389275488116448341143161116934867910571301873582504046570019982510566028660686537056423662274346175205994501452648289248142742903177024188045865823303183599014786231112071237394358940213561833478285236486146521298145061125065836106735753364143465419323459650173662462741292266553289646256177322674042930445872573572982167439129170867127646715222264816784926331073923591064999163101695129531584309069555639251244991886437840860927757119902303703943627414105325810231756184982739368443133552540986899668434085196504795748823035911760097692982535779343483248986320061493216371093698832264471496052851277247319496138427369039106750274467584002768971580293863588758795438528239520782613275682479729274640993196268859203743568654961475853366486820286914215499535464353361237356310239011524313944828490736372918032959948690420723732938665535292233070519265805962595877025833850303761598127057844681874369841775753057128486460738193868988023152496868980375659668166334928360761790800232478901994620236469231165528959127585549734778347859115532670159730054602347917563253919462067436536624694668879001412317095915692978935221403898526768495037023211413166704231690724056844049243356822443626708494533129658383865698491896811908209171141681019057954612502394950500204274805640625244242908663496994741973946355436129759186277968709734743139230454170674714063133366734271282146284473350673485810710164305989295772225128576924331855490466050526227672492669924502862681079868954884429049659472107033817028406336459883436615932735144576118213888654903174152832592268694621281487320529827566604521755840156496775996156751583279632646190177359985690704445368223182275729882331314228169913608422020387104012687684158393223280205023289898598700908688634259325776853783643292392991185060569645005173351155166110304886506352254270551710887391147602773119674853568245059077979975777051101648319905743048134105132502492567518430310710244072971109061228605826392692428219567128558311653714211073563994878335202529603248705030980280339972075562610439555049714539389947472576497343656410067765720243082833872998485894176765330693366459318820849371306712388105282138033165437542157429173869397799859539495900825443706073196885548163302239935139991574542381244480230361743088648415342372324137873007954752712013191907673429594396093694881494132622082078937500441547306308791933458705311295499540969229761700267936000210535760115151072787126816891820945457279708503519264754350338511020863886568046149058581068707091076676071781869301770191021457598491912179846799075222030906300995606924760871879678691590933737649170232437754898901332508663311984799690412290012279416117765752448636347028918069031523703155148477745582305270618259800297343586338004754327283835821042017887389291846696762903193919345595375236024938380005319661302640791601118579647170384064972588237117457684715325242055507053083251253730264842653384300785207005141428752796909078433691520225824031724640166997214770555328901241556420496108423995096691014995827542508664546319701464278720549379892273685448368033787111485235765369896533111401644744849607558119155596508389888009164555288763122930388055857779935393698776777986257738906247763091243466896807244588253987555088478127535858578625911392484112610204196735990399926381730910636057771570115262399256136857023853344787657148969062403954032061172716252711289404287319887192182285654210772345549843286248618230445792347968147286715038161775370642865413186515661066927080567065166496225673046963985231037699199112188696729313278022571898862092810271074856022641502650052495200999496435061175835775974005009621627909507094115027403382604268667767314160341121352578833037025637665488113612175374766251447070048202836141674103782239149951069918985594384283702300041496319028970270976805519264616706439186939000164759609113564628120493514568746438622946758789420759309687597338574686067635844979274320849821535468898169517613981324817862499022022590674433877465588841007149956117680287226827507064005691888960853334034319225599629312746545204692901455883866262631117928349039195341287726124353529375255320794277152674947915957175433402417840907340468675456949870013620325612098397808989585507513059801611101414746571903559340558886503851136587827104847066214301357335036298957211043806672497575491071308656978553798067873727297500942477310947028280702272467677873161212848329349736655652924963429261209310760587649603877734907942711237715362310995649915382392442546877829803251952560969126113977186039716941777404672485579835923622643691324601507319014661863649384634337011873212602543272331145967616572172499995133660086345601861161252991881414886346916559837443917586581564097834479285727483108194977288495118517738261837336547334223330827199161941119509041117787441649770311057123013106825483657672064813132397066496642864122274671293019393836659810780002803209060075071501759779911571009453768941004447541912655473301295152063819812192335540001747101377311784296847035888984247195693415647752794547709602333805295629392431542730378319513509211861665625268745850102677829975666922237606640613074319233395897125075830962158585805563936783515373846212110626292756490899902090593220164262992298406118785199250485330819517828434136647120793528336315515837027097003406444227853062411028046137521622444419534790485012011036145130558872563246868198359821169614847390675645614952819819091075704311015680290115340031355397849623976037991507428842363274014400243979720511352550172652142784071226678975398021161037206944923418020514069219706608780300371434595425259621182514985296656261133766368241881375507610501237926185437704447133184755878550407578140452970925627767944857877969248199609686276941327694764574853734520568315679310452270116702709333094275214545870156027660170750175652935674423011643435676499088252710986168095886485209975142395450167084262625765464692087028632978095442737079703553637719145989112363360703309294298418621445871041924333326004955432486134955987721080997966971261001477690128048365308148393862168601239913923068677045426921914107303706880138098780679956395846890362843035670153726404138941954885383568582512745457403415563259786665491116314432505453409224773510595483896726687885781971738791228089039196985439091976947568124678894681556285144671133251006975021863633254920355714355023186036006614674586013024803319819735873756007208868930715142882316118934927902818528748219684808335805853865228433592139559473723732249067401768627489738719970914337549860335073253992122125147647323743822837754095311818619456594926584850417416945364113419123649672899880663638362204091725457213595011697778894980642905947103182879365806865317448877891838323557412962282964719166607047116035454186945943372410955688413374920337794183777158725279867423692245925697409152506329355214029603458214279668007716313821961856040425950920503575269586293613005517852249528164616935987963540726060843956242799610749399690451595049546495003587730318099153854188499496257082423452850871908325758851027315075938317845914863351518042249114569694248114379463169784145690601454814740620211405602374625048847012707798982680258726861617136402068149862733266640819713680708040091090014384402536336378164658656262960963172594413604656469406966227781059261261837071546488825563769981785609029158254065444574077833253313434935393151737107202399205277195023723763930899785963041699870729970503094908207938273853755804119434229980959248590240473182295184162164548017168899049310496275554959828012027979161902732075940954430226025971067398427929300904047707839196760286005416217967256560126770019401000401534213599582998392941451268075701087269172564664950070654629116639203612340659514186139430112829841875705926414104366851994718102734872914194043260478684070303259169481000324925961751785013486475248064478990499382166884224491217546461218767487331933878185916087731422470088259341431035464564752940168083911519592328804453021869805631890502811916716526902168316692650921131627596092701544894393716675016360422124812952072758410123370032157389099313084473372158475813196873417191693523664625206193588217377927494111537234119322890440898189458922698817696711880444973113855118909993431868676339053613686682858462790497392320889222542902298155191000850534905490340727709125450495514699917326522563925072247191314272934333539969977514867498911771481919030669511205513228670716387649645555136755887987164147804450414541536573539230534174971954187075186753402217406398420994414993105138166630189403722690749564447372980865790535528991368697081460802689942895219089028552221782457582258376552436942593870525600394864060426176006698237098215169662755152472737706408983181804970628733466809574535906573572594090469807858102717558919783762623185986046261232202513837916400448177297635356417045704417638663956214158837112652523013040906938861232447019205973684468132856623368961337898219937175294436027508897687061987370864250635882013069436071790563406026681904211228563282625591952606253987963696076087918425532913612299372058630032212469122216974715949783608682011773360941062120024265207728028799965179914316212546152478471640440286962666676722449346065089315496792398726416755690310628358149927053162014491868662559796384980403473997639609370767304841814872469843153006801714979705850274773720045545562285977440967382687990341663825773796360094981551462295389035222533818914490357035797074621591221553644551914786566314408620942051597140396439350211952996176468889219569184365295996678582877455678928175030376038644322581980205557594797575854942341538332459100974255846372691475736182040399309007436729282293199384519040719134354633356637003771740922054070391796531327086458310707169543980138511181888095064176003616706909355863921900964145147661015004413768963317441034837264178838416641948377365484117238270663483013609298432930861313363675641769871922881797953126416394738759239938589782167805982497161238495169888383586915548409677773430578386031850542171460801080400558214304454381405008697562441481673584079874079935517377063006324315724670609994575852122756879924775765684701940957222159548387297436296185935519460482001771943520839388443289017089366002997190841175963417045019367979883355124677956895651928332796687413881967571133788424180017871753333304931795926652831942887051463641959451725812800278838672753779910494749402092354638022010629280170260532961089145359211609385123056580783837494753148298143089504148319489726143354473105909449385801132880550248745219486215001389248108552239120104494205006946922299049948601732671466863131546843720704312219380966272815749312801323734841038980425953544346731653176114985592098163450825919603177860780698245842023283129292317326837795426352393042020373666327527151906515199950129196721466816134042886052264472610943711338099459596282913077302429592339520667863570446779962800733469073865527313655575016809528749684096320283662265634736322675823069024060713549468927333569471810555272288808914409587680002168411641343524008505998181417743649101196654620919603791173248704448188336626302674796396526447661180520175251827670035583011161427606631368710908666514348504890027317869123948830914233363500495611719043324693458686666419677225845760157493077182645352043667813502135056259233985528188233305749426828269401226625712421328588976846134570557003750285242259400538350185607910491559523559383972936295207612292525563983508138164409024571793325155857521710762723614824179101831796885715975491831070091081394981970504915479415651238504791707012823442616984057399502835579913442616709580716173290440451399552810549371950527852733288247593597278623542234341490607426061245355704203787861596067460052804441616289833876013668688913445556971638626449427106126261280456111671733658652523713106812671722501532084454576717220951308197602787377016893701731085675535591969492149304033902674861257450192974999418457908676508678460442085046193931652222823380368419638700723725644338425073803964675084863182405232037571747873518005198044010995190641396618702809326017439677186351833813846442567982803200405397546114740839681437687498683704100650267459328035423646504836541833570549238007677072263415790466340144891292341522672781933496875970122759991226632868696169871869373215889811881776248681809919901006535085364382472508848604259187612432744943889613289422138440881290536878490535166016823123996619832506646670233489428118836440387388924916511252290611801752692411196207693299016550097147279605344554310893567558089923522022742596644161248568149462362954623837608170919122909774744091728827138957600056506665094587023454714108490556236625804135814510867297884977821817478522997225550221684216149313923548654947544245730490221332560524540034999238496466306481491559301802594478956797956607318453080371056990556158581146768945807772675697718169741456369099032966483464724463580537829631722966222472180055067037285270769052012734740610722249659232015294836641260238680669113130986356185305885853113813813831845360537239332973942479023171594961552882956855409524779304950243173428540349395753562484943659026436370425004676764249228572697803629569170508960928584878461555042798472772549914955403839531704807067070821372214649575208938182259850229567475604894686814448404729981108633512952774400064493621857323928860009523623682371463100289335097224153340577269607406194734571638151538603499914861687869476915215425565227931459450880587941302412251352347901277922798626168970872941953250999056037517166647562130054341435649329498448205652682232587413189533223343817737159045676416666227747468876723840165842426676726713009943083885035057296715366087103117071785066513097434592375935378704278929486743507014030443691634480178327479520334486974384102716950566090280635635619135768191802580874532707856050651575578795936972291476189443787540373942697414863941138625198195605158087241648888049864623040290479062798473070466700758383867013993716702428119260386796242822903537852418834002999036424000646751269657359937205228885741750092829647134605617994823323349786436458531620903870283973128950257681744192079344855200372917116535202761727805854650777370371276431577466656531090579726507700202429971702522799798731475596836726543883158301572702327584481955655384273376174016203499712745551278253898603560919056592660762656528152415542738297839346585313768821878870219959185469734361053444995865014828112450776199258637851199019337154234001631221005671309101932028208808486519189309290101026781360248245520882145615558884238423150636294813484775316381720837050924561439934659310973419139356505199960809032656072567838665238595573244203668054293422189691889348671283200990154075466968640685100146100176843756236646337360375769969694659809841148358188758490121380626248208322052629106465885477384045191303534290582175748480364224378232112495003705253382971515044525268047520615691170803047429507754930244821152834156834004472405685232066669478668757999827676706958815413979864591088630354420758618572149438989905449584435877553326180681331722255315788036317838873966964952284418567794093015408212550930858479603499530664544228969615270290588418046580306047596790378633038838803196861297630285564084181097549183102647036780200787735669951322511162857627734850099018086109595503319711774049578668104781049604200006179933862838931942276395221996848268244245432905995003704439355793574638987824310846419476285438519407347366313389881154442987482449750682840462079545641416588556067895153788576095675776164454030192520581877978420781315093539040298902795354202499962682142317339481114059771494590774314549789603788858802362519105353099458993559124455794654664070548984974092682700292218673192357099280326159834755626573962343856926713996769183132764481823520061022359462428715308507296187651700623823448601241908462257579484080236648380927231037349113105392840516938869987970286590797708808710766739630604310281290536077518678385416075055318108909446642567228921157737206134310369139042648416118585267046978387514671646515224446500888887943258914693391665936501088845352112060522440095204660702441882873469998282806398586593022531050187929724043313394249013266478994778166690882657726544536905256060519577156725008085201061002786968726747023288983040196792877964090845677126568181803830999781210032640016144264388596055040791726322109578048835167898652363889864960941999629171272507870927611029449109890225920127387251570798110232204090085813590585213241933600416147799092822063441043568631513146106496570664772816601099625143404365108313813484479862692228616970651681164931899997093894648921483599696832327630670574521573726052042902071601966609057877172388574848616440476986531841793538746537995525572418780742485509137960622026370464142671018802025467601940309898158364864035049231780711085960480006772321992851636528421124457647278139493160180226569752839739495544855551492302101911523442616098068342840585267939898531309231280663758185473367567645194733486591034889582573363245286682966580252327438095598294351488981292534223542704598598465924381932481787686972120678338530963921912241230606042621984615438952423944695772021444031167893211608577128348648110774159474596591218535814227474992738862197277463056921977944610203111011734958489872600014168533196744462840922983936841996080474985155528920557146467020595098474739364354307073875108603658999766134420991596793958381881051961975543790779096291657101958594115646773325590804329946607080656867371215290609244617538002071984865573291913504904122701916818328817910135004073338546218109239693430088602768858925779610925209357098864396689136018861939271981227991672546172667110019465741531835646102030021023214193234966281821560858718265652782414451250409570340318133074173684399300323169227233640295120305779921248317843294807197205698952205887582844924951453933774072841537872243012804479474147528098720665200492776985919412036815907096921545592749284461943232792816420791236906702288519241478105698562660188393504392413598404130727319511753335656072500421979954151924240601467970293071962067876894077451515660094681315915363832049432352084823802550144793331009142440097467144749324385767423319293399448111701506568638570486050439534376836570723129462116769111317944045574154573640745381502191636497912743110176502837094127044930847395241049343644855166161337700847074769575454072688125398262681198468560201798926432520939117077794517337145784345184648547506718616082941924156894421802882215682122785603656780754833206282547538249850164961366539906239768704897856262390481409023839884885769265730369394430420743928452609112887411611566571506171420908300139456348781458328444746945594925526541395988068146446580041558659024636868155437488446046387434187376616022624145561725547740927011114254605420262774835225245582812323453346120310012179368206260442051018254353384446508787024935295167746649346516836885046128010494895335263719726387707206122665603652005069090102968090085678067163504139510351496610846804520077805860739983311862323165510275170671587933792324604010224087170943297912999835159778931038215031768159827580271357202681106547021311421446762262880544108314866750176831319158178567820219030286458642831667533253348532793017962739604242170221480748635023274835625945269377108779115319163103439207101285039685263774226704515957267603697363156097029047561826111717195628041305615334119837936781888829820723386308763061443603562473412973288956868434748072380822854335305027403958410048100133489003576354037732750083300340476379870646073279255049066614188904068398852599083200481033013290067646429560282122031721593816574435770186188908672250886509989215765377492838100377796180581045049692103052347757975599980000645869857772141191331551164781167047582506038822107574529878651350559975653890872070461546685502307341296573511420463543753876190956613683868280532786705940069056634060436651553073595005232348701477687534639645523774947935788080696165311317021861353864954590836027495131179322995436621694314167680620822045296868217904022730373222072070677766006268412527281502313326072905277444681213703152697818212058874509074613673712529473909454682095983513669366173305035461377225958467326905741568709732991676053587256748839950977731769459168056958916545863184018603552267902262933474800505754901935494941520660099398862350306578266895468278879931374412064432330083450444620264330250966019818604775579990545436340857055832425904011553141896168074876187437697800389408153511486512107656224183103264973866485923631826834141556420633437017553139054403231298513610352480391763199281882811826624690221770222164058549170754474966593462048624203539034009623487483651274030441250042628996156641575619886994150119321548162807630545176433517872057323281400407189722103797826567396620613770724519011384130905244074269906375763050174283780876830759459981176362345696114014732403724021179031704988878268641756073927628159443140226579699192341276691616480303617469566654570741881154354703319439726570088299792921737921057885602988725509224184854138824912071531935966871707939488150775044676263518467055518706026906758859924585566502740337547006711150857432724175358091230341353611102492843186662702973241013463638649295125159255808549381141299980253709857433602146913260261413602924953946610256521985493715057799388691123523028235862165882854864923301396811318318197632838541654313974182034683088597794054514834659065462766529996315537203402996289408561530225007724787082973349469791189921380557059775225231824120655931548434618902639351822097399389290433424486295058133395033782583740752648749892656055990929891611043924934776363414053116963016059599108921861430004478813416300475652253892525974260001534393734432495158800680815331406878785544474514335636662486279388387916502234034968253493889157371034825732192260212915380450148153475486549973025295278039465780011147657184382851416809467895415259891738510711953911546878946488682372514423004609106844580042136416157589212924575751463031057015500380190879752467358461450675997767107721257854626252110637364612030800972050753279552393277699611828847858307029664743874708279500664430789582047244345578668786638991523395991051589705571440944336078142745375457251068360756719445501720390812190807629065096772024626158284164704803855781935643334910939193942709068786618169384571793095165488422622450438652829805649160120100092575403662245879197228682404253394204066983722986068847418221152865689434823368855621527539787094593154285486889147388090933897752167494386666432274224098180449274256339474254811030915522669631679527638991906929247517417780290266931536023822036556562838726711470697496899167243807177092619178272053175488868668178994510721289005538109758356063394679563820714623760241985117246840565704164201754696945132533508003432164354815138010719770998169538821309030027244969046232457712574598509671969250143093942893305594693508170325377279196951111163083306815285034821800909164295342983109047579161015242644763562658791467224141811445155259887587178025415557048070677467811704241616081860640771968645981844120273948747594460683355301965062133842461354223106883109676865389412609117425689889739138611011700786656529823114132531070173516045497435597848257721277997825763863970426059472437754274739990115576860577164718061484773866037045972728059837910906538664808295845713144684343834673297520966723287730824479400399500190997926256284210548996511689340483184336668245670575830659953453542790647764256169712683663731232999353142982436046023952804237524009855383350061966662985332973211148254807943090444424243065652856210738856799381736546905556327652068506620658270857188044526827044927854050730441153064465933872368807021107495097121883479309708211580613386455307054417589849061390061050960284382279383688465272236871581329990371052659699875768604673652077966171074277630187206415151046458829473295179139043361109066437450186330878633701824065250406419400642779177559980863543713792853336739613914227469537238446455057952604713864433151428760654071340262383273414357373910076501099072110018508453232638317844763961777217607375049541371381465420878287868663805274929875601303600765946520244141812093963365000618826433142648505715903536091449584738648661329182584707040280020215408559651444780727758416496515652416945401753852811306521012180781003890250587239081770630016678940596166954400316820701390799667659959414226905861562298896145515404687523329677895094958810838634429465559519204993370365418199825561885995658733263993592017190477365788605736174555979488108693388181570511757956318133786764609294718030659744045700846151406969637444403500344463622584143322901776472069794229093192479462284110730472241994351783502543538955400764431319325281241562759334380936002244758948250893276267796411821022782359393381377538730254910317405040272954593300802094343286055558120800798193999776535340729375439336679159559370552228033123438106813093901474323664438510935056732011713060164525042310959472032261884326698839756158083078907341436813737340773550857963794027677127159564664391614213405234525468230234632371910533723092458237615912149912608223322135036979988732745900820943177182551836101184409916919022609716628256929552927290528472353506842679247380256300982192914376878198250946469664524842020821992585201374697117073487338538523224204068794495807579522893079878003892789753959041178377307840232136994681999820667234165118411466987479674040642645693298048500130432838857056380378446856307611284946334267702455519064340559020361985998625238952273253585163338383324215905084195204955794815599555886234055726791831663928176257671035435102193575871201300639880636947759302651633536540959931934966942685055661582209680402769441277073947821563399921157277914045223522797046776233017763458084373896275129379738545376894241304172926555060246904052364897033948876389370913220158251188794294031517293974190395781436538666615728271750320039101526737072851675608488940749688767143737384957027232401916451858627123189750745809642112080800353047466445824815761634240623897343100189817701421050633772540500115520037949105113980880366442184097185391728434214100413150426731293133881634144342832068475261362879469585271658494301446316657037158742477427530302081012516212739896240920517713941598360517798679802794271995536641579427597247316425394461918275425549679678025918559586060124352728828937468592519543973458465181537631426478142542169958026951504791129381604179854900281580386089592818435929708412014145209153774314779665822710901560861889515954536948011723723360503112735200284964363485347514720295943542728976499329460559700144344924001899112798922154425218703741879695547748137089031582908858287500429308187567675477154195649766065282635289458143056623286713051531869287887587906691636356703287770273887461392548726049707924312666828171498963526620913356577515875038567171830026500886094921860068051118982341901250291095825219433498829443424394898201332478928857977846757802727483322633359223502460685375365336877243076512114459019816126144170605551255210622582792188163143286932187683632420712284095185443839408375630385052336540255732850921911788082607067537734036877983288940903477829018380349937182339886617238902345697294293438584513846772260914063170071952046042988398174522640414190344543136831091614275134525606043925429443114963997433504497770553084667427486534058368430220451435195689227147931892187341071777387327099153467635063119848023341914897672094622074699411889125346803722507377392916207741094002221343372894067831435937399867124665674129795710334886744722058687034826178211117837488571515881335411650137319912156390606172100601451642058573461566438180800589092292719816645510468749589800391465276364515975289597559391359952321654398208397414769916119476693602492188186681506220701711856657120986621689396422329075662085466285042140793655622727908812471065121736577368730055288027697524104119695439505792703822835337339213687698345304216541840000705955438702317673836105042858775560789220082840588914030489747301438294191589564762239776651362812927129294694969191922044641778209331366230739253987925043821267116950688824323210660082799066210087006591116616826836561674612503015667014360685784522041189361817096066373175086262005602738496825709409777095777801744982729473152209546133540072031680515742585385447232059324816014872019892811337352848994418879890429718267020253225479738177736516230799677422963102772945383970695936048980230675097086775348980425252470647424996406666082887703392263696642212012663422102419410854111073884166103904992328604477176193910162410754279712091322197643719594531986720909736395583214590496496107690256047332910285822664586552587289867439195336272618647987068337774858679001679726708108775957438623574752603243180307681674781885727468027425462534756233297526889996017286719503163958290020793653524070872039154207086789742423525746822933376673037935265389763856885915233836405226156565874767579430380066137238878477131736223388710873287374364539699986269737224077669724051441177081464582217200560432967240935456545432437011175590767619768974921765921121536875733616943645889037139606928098674841194338102947876990022095852997512229184398494243466122605200408427101139327642608323268208415412044773309366982259391206817026255083638634654066008986275469680306420188709476050337292449336696362295800936171642018194872666347994745602325010219856378446811214145401174079207595216867245061793241733133153635854433357939734395807838382652391035784675371976486318120324721997706721883568275140940487287022209636953806481341230556863121531601492675442571292642212576102600812431625271819575634514042117581820279871954416375243654967737255850265234696262037469897150898747467591161050910600371419753545625856535457387407879498021278559722744912376140980181038420529369009210318057117784312514688782153691880929092387571024472736287148523765809317847771763052014211532849454879040565468235595824202774601360140830351423043984236996769356552005680208449116094761763175492053028226700156104905747559835516100001471538303058355391649858620625150062019929045608207121546159452812550308168914113470951525580486025145410639800084937991583795693442105912457326587399107831854454887704849011346263656217989216592129377640422216880658614014132979413470969812709733782778775007825137646990929645600053711591470453634349210744109615684931632733451576972158049250240099924885796458282922221246265747114636006154386908655973243262657988404021713969711870505694909887994173689377278570033199904385930009879652052739076688984906294102661218665463405342768650689734880839695410963932197406529019456635916678855053575634242754517400546148910693332185114014607973644447714222778452890344494404047787016965402727762427064855308423942116850818708088017063718299011500032804393265911651962754069433944133656350706584749676118905994633702107442038315168700798496437987177948356496597807073291922912858195838563807512218448319630525243650859828164600703511968314326143042660869689505279882617606788034890952658453032152775314165480048542457817014668750559195428982293486507942836987980221245500677618685487018182393482647837352753995455449482787442217735458087464898326723036267574694634891228939480087528353466689277854320185707536850946221189262219711060859733322847611257876857219590696337190821096341858568265752951063202380136372275689856643875813539910431683665512312619331826571974318553275149198930681524000508276870897185542216671441822873156879729900267095026569521399460177313748419197663680144286175094959375182823191140218775265711745464851196097029485455122150518678031154565518391060802382719367847543388155361411112778464629149759811313188578537106746576420861031319111132485580527762833315263426622353922933554036507852820640280140466076303482688510368940935732936867913513310917557757954639280671801946736516335631783829962437311393785921034789572405766086098929381092418222783988760141899305377964116953100272769471581210294828347418381612251907597045111590847827588296665644254964935072167516373746005479284388241814009358530406719681603836210561514630005809299179516176957378936561487153625299744843101320454106476285029957709779526529616880430178894346320798902878801372791755559965451303350930909944935812536343455162754668573378062975034061656371418457935460329155168028463722692789656772466640092673030977710389772684627391645637287178171534748954634349499248333719897592979444344093571768869675223979370125859792049493343184050802965894837932318195221996449303189919927744953971289698179024561854349359780775032445876028900994202717540749256336556183093584977845668649616007184970440642838343522730089141607649941027751790434919737435232244649566492675924169021861227847561911008558335518432931426037448505144990743126877277971860325465050064085105296278534120184187352200111360523017596242136717478030147831230660142185075267546292797695469894981481005126791063971417082956336794209238313174122353226808241593163023412778618528328874717502012365636921546751914872399811251045207144903443685265345791545426704979777531529331988684517026019430450984597949771938288704600561388875082168420033831822538049864269916932823014678999652271196929240747555336772527218590088013707069245162722620407360904103827111621385915423315692272218192730194838256568799570757024456507575306330341852228833660841253474738874535646521074291589999636527702647294997206787039498300745705514468169104878876729301582910671988629645675868919234299778052184007128904603877960014593242082571237589278896476113762138675264253149720906878871634780802374585192635764957652876788640152242034359118128783664002008256975123553623620421356380111822491551357427323305858469227675125414829904218512180148676420399163732151478655902525729201685783404250972433890833116619958897264895648310520754266651936223620408462782908562543896941061738438383859367868702279227394526399683752626335911688942984500954706904995990326491537050219696399615852012090295858585181437261465911047154745729400886031312127074880000661619275640496225878567070602656319710313362544145948370948965553889608629430153008694319630602392252187831746220374734654344834153472844693164114325419914001067521622642380311033265024895637663891418400938769986465984809375962644243110749483831897476557774576101325624557654288937372219990858458714744205053134738930774034870397281756302790352142602973684676807894661947113745095360316772548657353872901762590536048835626007786137130024720726152498229837208597803387300089577043722549900910952310469417583947443279371784723188596251057159672482164081937572577126455773768639974037956939389295243651464334370698475402386867826646402276195539925464502008817169173859550676194219880318983192050518823154371475049583682554469909494103785367457057898617808755430794748416613369892921956037679049192017843661900978839319990109839131928954897193148039983677435998685075924999667565286858066015605108077364863267552555194813247627793351164344229204938831144942271328231084495533132119385734890446204240888952889329399956374234475317677626859835603857784454824397022428550162821725157854854993359469855692944108046046307911610495172101963014972838834146979384249373651765451743655016551397600129647194309114742531501820754456427952075486672653485185316633668499695485073852262161596188515135089675323531315624829370946160834337071926013978406930741962070094221574107973060149659722384925547972667230080972965897445733069426443628365455589532902222887347283223953703519845155841331558889588417526598326868972657779675495744161134710697247848786201362382545469637349523444200286170668876090432663399171095711311739858491828153400962069927994744623897435205660171066545947354347824140778954793598628971898446110058744848414415800150264222138563546981740064601804230546467114267121574244043182245088755158217336013516254793266034975928047977408011582146796099381645966843505693571766215512544081804860001225795904862126643580718199692991656133770943153317548755947336538228644388297581139995150478249569294689574633492129189696204521044055551535780958056774855011972384664929225900893976592833873393790986122962812488828094319845817127977102707059993011641914474873156370261382698283903702989520634018573234092543432537156195151959668232073929958070247370326443633285440613910856223742971917744376280862908155099852094217119822511523366280285163537725679896280158406375179018455981171673282976837496148252332105885915356555702370360599787207026424685365979425695330189925946836412422600727145500975450228743877043493826138962759043082249497942538034129862315342890454811907355454243135770052363392247885897869134646378008723305397095935231041967043063725017001984515401353816927654158677714360870652937677206272639450430664793154672517930224273224655389876952628276646806198390610152006145002685981467169657961502503772741364434621385391941221159748161556625119234185840203353807265952286148401552415431894688051023892017847597877888391913777245017553969872093430328240202051572622462695587468069665109566232637586137658399872305976220978177978497690595246614171166265106680904183294909576426702223406200174226881480320782701477651129123439714315046085125579513417981152853207419736675470941917675447308751951446297236189132140243232916206760163755895744200293806379591154241119698853417503920866168397260397276128594561405594482951573295762975815895395759732582541667747656477225082724091802437865542992690443640698628140824096070395031993545260997426713083533277350223802009950752563970137110537116428063737342519816423125007162005460931463071507561194367433446483176060069297669035285008707197225675888656545627973969077912180514566227248500724878609268114861965733354189281747975936369244479309829353134595822603175110358917656406315900366858240077851525084432814770590272275238123787783800715055671012962012854305556764094483900419176264714173702932125991051770803444349423742303706698540173749002751196995629260622470887097868032916216386928943028364086610606554488558895713222107218482530376652952469990569942127677729351769638755776317295983902822162371336944642440769503268691661561872804353569663948966634144338927343396395513100953843370270710764541571422559711965024624258684059444759042881647972117153282775913039287191514898316802576287581190635500085304959479433220932750284810191831489460441140125557395038690127867604149534667521049056244668327575298821743574743856077204126789965175945380580216136515325195778022861011789809949255349719345783493775357104735270546893766368586501379806620052071340800483351148974926235349022532422408666699715439389728992509086342156672615395701268555033240476776488357195944618107304223300889200533839843329710725958332743305276792257033954430290665487448060240300618809290692152079841593545021358501461629843760380796943169413241955277647767606930937691622744260161709137940925573634198689644095455016906372502784768313776943059674732321203535255038305870672734401572278304069730617014531937901427433147022281661302253171059671432240531610402435413657834704094814557659279172421678606866636088972168458551760603782488126750372758813342396845776044168256897105960375168707895003580781549635273826259781234388291097274452397267164455897101597386104501783398713660920175308618169622830765292097407142493396510401634684625460460647006479386642996083528584126914423617051104587066455919681512200103886260886755444347871686701701892671030306809979269783420828260972475886194134985676307513891332451255159964260840753407621662455484632150811259153408272568907213327092258679107336614164461009321123148041857191102164828579822538373334977879177685919950239956269771496349380943042795283055241935634647782300746075412466795643040315071209389992578179545428162580602425645946436703434642074480628903979862984196223137427076218846275295626231470805721086142067903486194165486068669353285141982842183838884871766513343386740590626465013405379166721271879312871006496289531264643495463081053806905314681474471669583358777691565979135897015416133120804414783752003254672149271028295231377754793446649142262137946679346851098680932251147995597041202482079509200157385706599654001699694375006386587359785729816965257469548709629318940877608657998460721981340801181211713109511249564348527520010492508674045571630532631648948216906520859984498921176849479306845283113699846487512275971519747994975017641364093319497680087389565545524379363604817211903633185641039488713444913218524243387819592304055943214610578938387353259259547655443607874831172542835229451696342731284168612785340971468866339167122702998785699265509318180815323189649321697277783656802514674721238385020580768896905508158085357473173285377528524610995354345451914733797324951708270735909676290283226516856946909058305101865347233336915843966521067057901459398955390126246758145875179211705655765579672979121045639224024181208329481054412766352413936332747914558567801631740148241210125651869946151841675413457732707435144036243298814532498022925136253979951956957301566210095987067853313829707082758813933901082897921428041101432782306829171320317200197814455203045576213927913249900386705652490692842826925866166636911103473600224110741984295714723681882321983371615652720774489190470125527211238809805424932975924683950507169309625888702786815230266278663676471191250873198970361407210778960217546995795296976975970013680563099194151513984223889143176889032467191460120788398869297374117299660680149097345772480249157227406919307559019099335669638335675628271565623018696244398459779272820608526658314860427003979557045245471161595718765732304600947142916118461921765783507789799518182942651348601701105318184176079205681440904973285293733927141320106810847280090413817752427514749106070514890620518176886145661336209448525715060334865909613215170834278233256937173973543769962590059970649656122107400129335075508515942408788442396158331516591827589854137670904109676944887660584807456396184939548185095624028750233798701685756269858576692736090557076214866796890195828321861478777314805225321282280930960706104344852987580086418089719518676024461324871984243115935653610965393032223874681764871669641242730136684827179561692879055787649753790760872980365149502168316954819056707917388273379352677772847724351433409016896290571876130980988439059234127545978436796845560584773268134995679175172026739703119573243982675301380369940730478308423737079839260364844712920846898662453314231951855689804143861205844390841359130023117318272434875809081130753120903862533230447236861455376039198023803220553285593553075378428335155954207474129658679935472430496622144807177303925412126600455594672891222073399632054173039379545745886033583182770412580336463779952787677530012123577607032343631204220661741542686221131404187167400236968637258103454641625111202839344320239192414311277853722548234576771745319172581092816558836284796704300064039119763354047745594892093723657926939291509011009940783539896751169614320111545009111649500634131581485050770754411801641260703819418175542183730601179817614206782478101699834294270883175458755385663538906003836871035158183687974393908793149421002624020458369769329635126534371182201841025445837238360856746801307720556509595115804079016966292322191554934837869031248668824918209767827751623177242594589711916890570556584084810131852878434269706464235042609070930019500478554099713836511671747142986770004658779526337727104723861741981525737782923888588138791851177141766304603083985870951370146095843517954505094767623589508981971395937170417547657274152723116903980571163284129346306634593256995866973287176295495000701169597464973894830420806015932732024497742185153295167223655294396396453367344833477310625961592912006553148596720423497008304805614080910830322090648699091803694024890229653122846652446033434027224359260106320116484501301040386645264590710455683191693430097210213244869861983339865010230081957982174335976847884476739227979100643819859739000859295255040438071198358583317439065548227635557904799293335584928170970924747194116457495699221828586266877405841422547972597318275203687903020615632862439824389812331771624559583903621904312197724603341577060733664184436601822964851939701938306064362182604349041022408377915999192827983848147449161079956809330263632311183235863379738181467514034715546139758186172238202240581598452587683970692987264830592411008775766462268956863238837346112025270114321706682210509999936609161739065807678660584181781935907210752208801522170384641488327710339223075569286159805754534355701413188781216767345397587067848960853817437770373513611352239592893620993823027451313339163870802744976026122139228729544524122189698780155654098746674596749334275952655363049492229005739258754754439620316728090436779925040177820887704061510779514639782545386381685318126600622377501894717588474448104084970294842977743908480373361903305317906477069408129905389621877883880582674495743715591136662914736967620877998426049644249070943610996395835998292363722795040145868969330614209123304439537816451825417070634201013315069893857290763882862205996003755467023826116834565516799538750701451868326405388974779878831623761286018052814194718763045598163220765103174490008833345474557610387978848425462573880653282595641960131080115069732066760708505500606998975655730138521900778520458167373013194707696023168266010002953094951490065734126729177779037162028780309090251762540720671278768448253556122081039413206531954654569397178903701864384900602543339897763888581936529357911340979069235845598663165465977644699217334205944216602583348849656503863728180977851782810345818106091026098357986819565048730478162826938310980848069032146816265930575457838899498677373100601113446573552523885086054736871325536863788192024818824559685935376772702602667358524433659751850161169770961205029543042961962773758927051367649315247468948933398927916958777944793827998270691120259545934251326211140899470873998224806860379186971868147508378502178874419222078857569787782599279195605776278507493522647170126437815603031991371766055535702323887239612212616197686094073022737946794822203337843199582021499612180905177952615929058993949737555350181543983961698852200462585203316433097733547674806545126722831090256585504653654644092862099157963913978470020601279165574324612177852035374623126706250849620822896140809796262139839879468721235670805747480524888739564378552908229014474827424504264217193368368204165151825655502487040038316689161063832290290072062027362106748432189524836144112518263954217000671888595475642754234696923234082019585283437821733463678336593603056943936033197947851726508562875305687722892709320424494580199820754365230024588287868021902733734781088420097315194748439923806001872949787515197004944966408878307448893136766828585848687278166762019961614779055919024706130067212604338408955944380922038818165550407872259924124829785316134160168585233425288872156039109162571590922871560411998210970729353704528352739558144857963375310115061559157971912713477785223405105879552455221113487207158919807337402786315628464689240382770542214370994798585727952834150737655415964357012255596281842647647892866556786053899426824026061569580678473405861733982881937044477025375346391889960412424299489043605503661311663380337789407460508036459622743902313903865353100254390158556471214698877255276541691147815633701049586098314625670448212656361875450274153243850951534532245575580138019194437103719164506109488441410748199133863984873797902465550560623858807538514704901918032691106791440399398634510775584847323914463623377728380590177332079018139092527567977070512777983647042024221394531252680527652071341517923430222889932339749906035082580120220774527704751682047993248264305025865203966345630779021675870733326965786827597663064950293345446488089033142994668320185508077371254987738268604631423136619421752711500355576712754103923223520022981934200678398710394459184240548750750663667232539369132536924185647694106137891949903280516910870859472512710574005016929250472321053224363969940367334454356066520169865575295804729053733169906763703563753996168486275228394004253745383530794927301194097827548400266839066406865208030019249226829030045608091293174764533274083724602345362053870264511443753677872214867421704142530088082181108205490991070853146195494035284890165200955684794059664747427612655048410665947821615942573777439871554188141153232815646000033345752646385270165438966530720898074315258845080540849114239245296073952046051214557544114959298932919798491866188840541326354829200643101192301929425449317568196211634488302373895530825098395994548941951315462757259710633290449441451980892581395096193399105430122310806861988690493592589398584500891770412314445873161306281364593268967588439690974349444804192631108046709780909392529136377364189953511489689576538017110581703036047029679201364923190803204046587576616360567769914715700677728178467087888613715410814432538729214205595846696243518892344141703173375469705918777511804615174289322124301756263475250926055279920986971288636972496932620877502652419528452808587946655321522555929736782848785663581806397761581877554604204681560367093184038171296193667884046361099236306188800996323779788633966501613836231521220332131302590522478236297903156989396685185941355781091035392546402002152824271863009610555602898202271999259613301119905209646956478961457607810263821356234652959367167190221577635960662396526315466811106901045342532742270683552454716475559567478187316129400440914259959337432508356804969197495031044261370385132012696388827187722273647667482135221899052027153462767253716248413794601524147013007479720254016490889553695539463520698117658090860986763152915661368533212873143663512701326910509475617531163563371708663336568864829407888418198309114098135981982115139824551577755527450323566751663433843874197834256387511590308457937211529422333674128547791599888325639099399159813311819207298300193419392565876139060552274704288285698843360529863551354584358090994146783473182043370222823737269363074788707977042925422869408446127201087311236399983033784199266989513314893993470314925698345540850996559031451368128604881874551871714147325333779558211760657484918340938337453592785127100039744853969564513431909332797192056768947424260337694382528951891828949039248355722865174815408393998848392130527224031794925009366179491983447235371319643260618202866326983001723800053550073451985588123856161225855038957090802862278520638957880577648571098152365198539056906505250666588501481663228909764065953704088295553961716641999408352922255873141947298250219677141855556826649644775043839607331442550160852060535662387059521662141953510103009119736789360854984508395913820535222160451555773461150535085792775953370137709142878191412712622857052179144023902453746286447891075158783289871892950222179423961501872819005805624053714163799704423829567315528138485111631382335312400373870932768173827319487624358615347606271903785580712301399829517727639996865374583454092439572987990111908515876248661872021356286167890851044913917283840817696221514871773998726920737398695004804474656221730473813600490704112989465005750106694186579020422910438285328100764678976785950115958209213762209462890997070140138423033387579027769252808504942127986693475679570244755853434470896561724613290823009557162267753863701654464080856171627030345960725480742268166653589353305696950666455755783716285578217380621137585240206515739558030414179324702189370401905571295691513366117447124995998064399022240034520948656742643463543682412736418094810062781898153935739095988501514656031107510106820294403346047337204719231739533044170969032402488244229161664364555045922058047566543892429632386639694466020172065045980494923394966763054652167709491270715548024372067548849418765851122298378407388721772130536648373604468849141217438235668377136235533840521836966957923564469085756765691717775388975245270989579595734740290769340109337098286407118203535594882584275771543889839286374989718993314384521526237098052091067968128968169933544162026516856175926529326349021698061539532146197904389664648716767974436588940424205633688108527857745043258742190676025220783765142703954225261527541611367765747493063597514631191390629004020702721511347610822732864616860022681656487023590845806765540788956894435227952794833303005068240802376442778142836591088593783693515326910164771797965929273557548741520369168042756547938446647340929405152618600336175429283641380038670770330374833147769772870602843530534940370756593783111225540444657484015920757811120598744741772862535305080547125049196619942562039877476794521160252706589184882905575988451523319665144543359943516379326008452943410591235972030932528094391876583652807120755393333562161788918860450650564575402936754674519126380578794301929632597200827663667530593489007012163770322113132433633282758005473974244002517494664831453233607622678451383647291628772684646973886684268228314771789939721464800800268437912944656180520269130748509622292918981300909546262038029496211410512983917535850444411465287040846165870123281882246997932910224243506836424744179217060609989512302040601196041151302602599190320863837402297568520141819190895056429107427183126122803935381785463276237372672924486567447427557841026989685799283825184150885821172750141076779441087242622552345798551687516852729950049873558215010566469948387024071446417385338872007463258244646445521263129815829107142225963397961606818407435375331470887828377943066964641326664027310979682125572843621103436929755803639033266843806763356645532741073442281177628313806914842231960467275804426696636911167338842401765169879753936497803216841044525815059150873141815572158122143701159979761008913581303762647223771391113573160064993170284072081748537467022155414823538219282141569273415668819057807644994595323695962047590050221744108011499042372769824571671267310024120019247704261377810897337729225925227655951592300906867970199230559625576320098047088505745968815403992109362311536697334185704365449819331743051084463935435747659227630678377080656404326254917773768557375625153921826751187340953329859348704431186038345264922525533889747976372383890499325487004334383335069692332106989478298485206217893343879051079519060224199500495678440885276627678860371108104659488745736256841169723682778323711642805427723091977207111749793741975048791916525830171332660552363770600149613507686972229019571312040212022492563166990622894923420293743195884682862171048619299926420743033807438098610124997157036249593811828712200073582862443561239858126408540765311812173505716030106252327956145511738582736123173159465895445242383776110989691255384033355239920094554357253416695308212531806991498586647783705601405731492621999864410911840490486198043844818875424146988652475713112657062448261666473846474597757252744160935578359240993964354553993810124077074299764380051598129048045833164839593028158300433319181148768482121894566030679812370411582101398336910514781023634363445667329311995643568908214120883571705753216653007338062281864109971863793911580920314021386141143619230400660723493686627251530462240696745286679510019628813356052446422970870869730587722020804996743321195909679440578766859652860647938796460079594309849380840755393115313047703604215731369808233104788694892783490571732297761137772443902023757351732726967982096729672073457743957117872222491914472909991845415398821817759142373648807912959498509244186815024918844618742758151294078102247925404614421185750013499648563217672536743292005690471615687995938929970209281196651922349191991353504188627748573849954298356391579932766911841673354757748632635529011523687815432377670351777623808618302566530240397108711778605656728531571549023060275644243332866063504327578528467724365885014210199224947397635246973904469938924847820607260342280744152451118303442410413181340022882385303493097110016281270506784000134512699724863411383596683155676795023643045886619354433238865382360369492021011780019581356438973917284995745816579549077468288091427460473547995529543802844439486389922823195746979263132830590961302713225067430884104944546791825318895918710349284795207059382328567220616565199001348199020583732572588768384389688001565658229130939677485011269841007776276710161786881348914400184322622821120645102290001806919188771235248057921946694796771080166512200320962708426556530421104802230231036053630875906227107736713501696161466727171977106061752748696061757253603753271992483392336484555506431867312217368024924408353741631103896430013808054944434276117748569924189610435572861466003064932723660609150699529528372495508435024736742894559519565255717999452775379918244897293600028068401702933992376374222042570890736782250421991831905476712022326635401560429913353838883261197184728202271412519255343242689154726777482387982682132760726233547866470444769120902281214770127605872047768700571608493845089146691328887508141384495802791271256199377259017050442744162057657553398418595065024455157769475440201306744526677555677151126061325037213735170176139476994061381924575707868145077161706584383494098189899113428282133741014273492043385383539437176309253279721130157098081305838957026680883393295935662989955997120622260974052492229825432384053945213358939651342545583703827639525604806436462097028306231795605040136666330472117985659947495976971179193768939573421014123996261471554552426782441289103859371156593820796442341046678363399898615100093411477255923202056635770360787076419088164802405673946479855334764396928070518033124118368898623700391910451265598942774265401144584712758925448179842711605410835776839010809649268093819245091702364305124053462469577019525162697379816890570955831763119565845819293549016367017105324736193187817617230004250926574491567272577209971165922889385494052085409027911794253306698737385472000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
98000! 155201061444319291570350998459167946121690774702851732607361439939440762717387253748697130049137916617150937466346737099252094627754906770049599743865078843076384102760966493063384739561131077911660067311243610291820005159088684088883295849060362846643715129938917763239987591911503179811665244626047653627636282760437902624534252721890760382425995968929117905893368671009247159989880324784070710774476375997064246421652722910861693299971412150494337285872437329910139345634668184483336903026501137666438957616857140455806465419756459696453988927228416573689017998692102539158571301762206086151419359283703168760196496759426260857398615836034714402484491419664922654959925863193019403405397737167496927387378520834527464864557055426949842263032163333912931260992349116969802423037462276145646733019918608312654666813994252548852468731987009949166080504576966702076720342867917864610919743638384893348953372604685704214374145905304150435660053342994369223351656645938101346192193776226746417681328627440312588454692268058369240308347615461513859787710651061600158443759807552374203597855753610686214938814894111215281728350714780372130128840138497344367541537814009842409682808515605762901571056173598012570110724940673196965841480251615562278992194569119962614432715415856215950800653640457818750959392735879349597168188527348793461335145811674310121148168858928565326282582404034354718702757923229118042296307797356317386226973074836445486133751270171353061645401214443100964906195599138312176097613527006407276508960621533129738543557273524140011873745073238332304919286375618038441360909335512717680121238077585467809181666512317811520640225316563171938657682101208729261657023839666837205398523959634012653836887728321849394595833001700227303799186148107755991754112359926427174869202177518284795689851878542613806933737662376810753707615822142320214364974958748306115475754465311933617425585656095239213492917316378049690050370442050479112671247461214052522688802215678501794205037030162223606670164316462240980372649469654208725826314482911216190008796867452106312845978199741767814741940404580136551690011285940114753285383956913927846273926629479224624365817996032988255541227281417407260745774547614885058949991736483552399205344935323958222801965385429037654325172155810461506234387236527357877840795605140182259211278832996198125393045379778552978608214188550540839469311797896502792808708979330060622326934605650066937846855103286442634888445146646533158658169541310011803892019667833807857852428322822922590497834616007406432202748190712705607554172408685650168357121961576192545206240626910784676239537553096263577358527536193317678724012530028852497967437086774141032123509679601034493318139072755797645745092580668226068579924972166820160639944377885886532399970996446827662631264529726301164205046115260350451020357907948299761857006494555280072397604771702947158347208533840771127446040692213461467201372471125766678382484081645627792299612622194191453799307178035334943658270489718157539761864088917797778745160377135312814546092671239734386662955839607200897290586326195737378902110184773533035671479494007450674762092662152328106383186326308898988699988315634536282671595449849841388669543542396186643307046066912851149467270233009597193288005748886295260867933946501378940207890846615629806008400201497663848499159735516728827504886947477863778034930581073016856065155761605990898462568329875404780839903916843407029488679762012096874906010731266012844193629468825382948328159146365071105437403477407977450093432979581555350345901698891194159040844122431311094807730730932853460187711831742352561878223961700233674912640221589329948946947923397625296801379844057359377531788313688321820683376430183262216505969313849165246786641585040071415026413693882262964152913736654495410340419343874068665132371442302566547088256309972023730538248693942164093294117843465455326597549981450770138326490019881408970438109708641666782930598101447870531422387495599667688832580954080178197710119411360648868271321984998981968266197483943814466340379081903668795173730509744931325996992658501896440244730301378475476669153456067681741785509997143278512661140234498117639969775577459515221016948619139005957618892926754348248074890987912472529532848664453246603450976109296464756751272627218625154651504621007124932738174407811428456501124857030346446349702195115598314644026871944232493661683530216592780241996607934360640120184314144575514345012171140409252170601070504543685397929168684746650367721693474751119032621815942144449370728528451599596670692677318089021438306231550063443419421623448339967603205373013538591688385358430402886116262454391520640352231247712656443933685427859559754403734638444422441545328487287531141373614595685752304550246121753860972136437713102248818474944962215941170451648960189104474509382429090857952527481859326707453905603216257076368258393162340156971232858746258437714931325962826217516007302730299806285595926868018251217131028335128456818975026335308134363008582704290737476312123863315027337236317588132701847044853187932751436435881584380085798349302059889633859364714516135534968653775510438668999845711888051569639641132047583636940684616259065376158046849959189851045872866857768144960987849350626142516768919400125705871897225499839223807929712621680750924872700383276246630603702583538606521985070590446319571440434011530277625605166486134417576685669740153315356297228428925631041226397729038714707584201786740395619926005434084223544705600227619370091699072801962308279999999595856650080695632894613746469334057513890767896906826469044973817192291809044813272569498520420349455276349601993850451298149323675956629114609060535854758628884851130553551284103883640979547144778577469290635033846060737380736970904007142852837607913646101345524181586771987744531840439807460735065541123391459886196691209907730499955953131996076227381215455222171516692519597731344976268184388952148236335050772602346076618541469602423436104698607840191951164207362312910020184189287828310449986090847460103606145669337854700622537315085318167841871686357013956376533902162207127246269485912813499288896603857768222717333808006715847559344427680105428346387789372181618280514370440547543295980390539786155415911221948415799125060555484557114790830153355211496287556352431860171907008502512727720936028393140979435634857014147895784863589124734053275271800386391126968744825193946060420556976596425323575267086616981829764815939777986441848684590168624074068584377049652537851614479691812499159295008624135385211569851637670177652729843756170001512591164583626436795295105040236489333306308477080134195592134196793650350740942122785334937344676599776302626083042643504180482013003985706755434248098616376414393818575367683100697219962108281755993031676144473336804116624913125864817736968668989283397419153225540987520208581151043976901240732209784437951033021260234985372095664040480424569323508264994757399408888120986355259799413297342811302889083052654962715965141268351564450475233097816307265086185281685371125084807873886621202232562687371116750624120846782802924626006436513832854419884030893773273667471779601072886182027106772219785949038613104683076396495634091673804478668289943697181494218112383755012918478390827474138286756569265140736249474856408668858443020651241588728524760369435973086280965565967678913064805042738095236535087812302441714371678905196159190968973220543619596413124769166268388277749775798802864213024638083304445442934918198994635669308090032927034459474229599071137471947941892200885945572464349171958173463219975221283083629200604627296663056691077208906876125271275389419602034839353401476631437019564653266216313906571375138233357237855662954158391705653666963698900559644561032402640171693339814490652057205126617992869318654536712060992811535476974432669143515512704286091806581694991484221119506675415849223324485635643080165831692473520192874392445653334578915605678683186523255932024723261006098262384808908671522809821531396445404785217023697822934826319158341825636705150460506807848102389108282794758320313220654994805116957407892452612205601137693657443082396682820399118721783515626834403259796246143683070597972020608064888799984186669362921626332773979686725090878724646435590444631207057363696096862593705205252976930253213223738935071732470800658611564892908482308923435465223469878219656546922915956258721485196293442230978416682183651532524545544724235623273235902370826438420532984185491053683378560400580850398706957143791650956070956048517491863669329831684308274503640684083239767354587769621929732305478041631702836216769864863174115736848463771489694307806062337584927664149993130378785008816158285331801479943408332283963948199705092345899346973776667937232718758184475097993349780625439448455487153347642695225763573814557497030249657509138704069361803984092437713680978409525078453655389399489583622293804694968831260775443800926191244169361459725999663442146733058174338234109063476159758483151485754979612609612979485561274875936292978110416733211856516192452414670349842305782719519146818193473748267629438327404719472487584940538518869610300190463229346592800549622827891304233690165467777686917549051240538793934207731357396763944536812622600392528253631551325907800120270237983353534560282910414077649430078716930996034470442385582290766080973087630035669539298417244098640697254144938703419496629443311845841446373614520338369740486942063731636891875066377265711849967598553509250495445859653520349863512135799471521028860506738116716901425358211864202297707172170786265909658373201254152248264480910219407004389696561212400330366702192842883089495510173212490944120913365456244442832945974415458945289170352064146969908645649680509157670096256955273887819349255732172209205530351783797397832462523679057497651346826951893288872888332045332336854066769405947757041598933370154288061040687271239133063114211159844897605335376805829379603405615806978662179249928654431230769350790783360394438747338824518924603245706041427718047097449711736928293250258121856542868641155949086006716874094098825434550918828127944058185752953750249343964915994022871406977613552289745952409159055454990029885467401255052880628039305504889772934920983740801952035199757454309794511210820853534867986026782306620501299393512268288711983957756142869901815550864714133387948906141401810201529202389099197542655511403694393880702289374790880453492068500145109981080935016530144385879077306570171338188001983169980358233048733454167797629646391523022311928489644936871597609250947340550022626558154171371280641874116214245392807779892364897865027334732628813194112823869004979608553509803277377797648796753088695868559812659566163033723231359031474957206007834991959883477744477814632494150273091269599135062693360286473847167131536347318472600083664340639829983987761479355303469702091053592439043827527083471261930986648465757650696916739050273874297257210447372104362875100301345944300389751174009696378274334391470115216118903461702210661007945807802232738272861032473953335474110799651177049830324966476685216406947226387216943690435740294191686941771876952095852249930527551136880177539877003582529387897347156569347272353246096276220486003061113824402782975546080784718936842673619947354486029549757007242088741398275514086622118254776907831660099323936517662470110472284449614915595837065511955892607890555961815303529540140312147755856563388420367786361347929964694991279907423328243851540221997688609336895987547769867842062259362865172431545435048350268903620023578984025815678051528115065771130680612850277113756720458240141364921482527688636531865290521801310803554512990914704415463889068322686124824466357111233245120020481068410326149530874527232384843722146581325799128021527607605170182292868741758258178986247130031580157403331125122749905019807500544990628150067692451240592075632545983580429902662652431095529030912232371588322572084710695649714041291566588628261187292393783793451731252718051478122897410081679695144665152677352438443937789915716601154627490164022962524910065373329265009276441113837285359444192995295800488875533058858045999550117322050146577911206768878918715809777586896957974412574168238388021113393322522594962839260561205005512295542936175352044390995955174267690846832628083896108009010400815627215430536948350618406053342652118038874963124825883120257286543054490289588417277145362359639417070439059222487172255692565822271211549615106461976314022175158592894719584156191357493500795626454987226298764455214427929009421412047172871674514332480910672092792671704729445498102744032428097662306672690820920525841869015092947999660024513862988177224108414162093075536184311285586262026317364724842892067837370847738409587012221925539899287163807607514292720185234629915452651954579205573718148061043861799131056067366634410035420247589110603675948972611900920535477303359314748048047757432088456196491040016571618348136979049512306813475800159152366394956667482942643955829518558505504954099497478106628594947293301681436877677354444081190304627713106707722134514839948074778861429793671896434412345750465295286809816505251052115030652711715033103247197764043821648844376532266953961783893592357555254165779032194724943055675400851018318211770064133872165182233447445494133924208657025615934062657095268766535826003777764624093892217855272535178592407093679629885645368547188434728987173963478889916490836507598077249293612296668578601592581642521117742228943200948343532774720453002397858460336353988407634024303899300113554063058958184281506983496510349738627521704611340510025386783394028855545502566846193805281645174884959128270199730819290591665889597099679525309989789163221265624917424110351319123293417287086055592241519311123279556449714721873749998370479204550562907431115944849220751235652837815378321710382831723055332730241655709804873453474987774899482014537508529293874531301076360573098521423156594245443117684310110777715613200413155396374443010760159972012767842215379703303428786630235032808198989856460719989426241539928863849750757364355694538995247941263108639154218472791475610124012143579133639716939866999393146351576335275970138912858828863898497578189143491017104374196283692870674603902732919577631020804881452118546856048387019922772513743958855038796365166404168231130623995123496699901724802741478161912929646017841574610756126018899776700484652923126327475580012033339237978401179973929737406577650097906329650517529601761623273170002714055184219108031361709142981628195681661841837633767465118927237947980194168084169250901021033985893328987648229403265645863142442631496159628544960424214262392864225378372486336994032619734029800577468010836272196216093609677475079800796655381753332944819197805039147805219911484279635182445680761748964297232511401078159685650591227915971532990253066139444181973106261016757668339442092960841968453386277227913170290926130519223305981330166593071424124770628820100930297368328046438273045117203361200269838134001558675137609900947568667852052736792024898209081669603770007721423509408468589891803935696840646223610873972970923972188153059762845351873726655233688764193050214064976152158844305971796514009918935067448979919409663178316517622365287286837651862354146978490806281049229496718143120076961549340572129729121742018363425880691568564849625336195217918246726484575359711617526597046864294961890677549750635018764545370578724909387296339544228743611074383886638546067993542310947628985710031553928238781968665083504983934025661117229015374874492285785687692488854292471052271082260740016255424982024380933689118203725531070870563771139382271149912075669699717299965243049517561206493664215250851674098353276297901422132366549074143585790939958337094191511927644978984083713289659869576131490523829671115401623187208891401028799011583926161469521849140053255150250297667098545531787181695670759868577119151668616875278535597970230088307481488405281032196937315256698480562785167991790211533213598289980006527239313803541476839536898819067163591049465917680908633470798024571939714365530719436078047699951319268383861134614502453298248659901052115314563126830679293888220238685022608765624198245719204142572869065191926031276043869747777133712911548457273921680955497857130435175310799447114820357540075473582793494681893056196862708894018725691272141275851905742245862867783717518958795802311094285954060012923723482314043827418531214033503639519167369248365744324793451945639904377847009736181081830916873228912843868322274925064244378701010350316910891338735807010378831265975197985466665960346698631085911497003003100315906284121418126150762708212412415140063773190223550542769875857655794833849948363176780754874208008998197136844839113568594768877648115829035507099181397407018794973909686447270265347635017687492997000834027366520653189561857441846650219051099300995716739946393989721892890185632108039022876262175985356675708806140877381851798233761058801991272333036654250038656393151247279708894179670104883091133519863562361144024735532670992863238625812083194009331929245950191545766708746150627818418601423995659938127141003262599957668126188930742408552707104233756179639003216753474305886810298670798478719229000520447695578801169024290410495249227628906676680612784500618882176432131611389126296223703725162206501238325247272045675214317105125451253978852593952327693151959408060505062834935929981142010269428251031724797554290055776735801197480395041728063118797116457484856252304252897987131306105008712134604172005336109348325973419570295321604461695057990998336715300224283737614667794218030250469301550467403607834276458460737997138928287038204316645056899951991380241558533289804844553952426283866453975892111928865604210593377353271304406838585906233205632034633952001490961828399954833531797155429331527809278699237842045995012671129578104136458866382269445447926899703250802232823710232802461235870349632937380700002685451632968208121332823947226133270717463814959694099551097896610930566219131813384104878952869424128699219563796748616608829647208433354212391906538223608913972741409023898770497151187296001287699864116164883932553211696790437368065189003827291378340791905827575811121214305758138385031668807164242465769847180740993506583014896105448139502987477664563876780802423870938658096183245294579997106326936874309853149175405290781529426360070337635321280822458214281650546915846633847662384119474095317447539686555710502749215653880669039928974911645193819393708405449928641719087927659404822197565475213061482519004616652738815336027171512996637277420980573100597691469693648876982147233522804669656431743756060112415428737325196939990393858922472241556173776629025739019044601630537900903272729373615810140656531613234232268438189575676885375182732631057429075751724465268772235627127557256180727726667825755939289424261300953828657099024535740235839229271490721610554633751281317603470152541269808386287536006737746242496064792788414074913852894967950099554581324469916529661411624525970457817321155479816330820322918169282237145783430483870766159940075066627446655164838210365551486250317317287378501173042637510757173013178367089249357244096983113823734206980335695028750397080372886127385575288794612046063753022322435404340552324563020327193156850413418033452707449722194017632659867284026008985992399330057393791532227334450278755709709491358765994845318848162869494011888934916228103745178448787888084002308093823518798989761307326928180140466501644400476085889989085561239935818537204515323893994027942617728398512401760808817555937968665832121298262462271847940299845591932587897216654389018976989016222251850847237191905585793240811085760305794294493032936169531167712846871788360592995633556116133447898888305776310599176594773380443418642802377326017134793901497999382225292579278237388747183650170496379839469875916830465847470452057502633236062249223202097816078281056171325953301714506858749226001599728567254584929105277758714321544895949766312125073058145415074919023793289372738306580908867114987345033296224873006744303130735030260762933086970498033557611496623827341839241583120456700794416308813034675299113885263455735349985339744524382181332791316970372584763672486937599333192072629593615115748430329595804727059803881502413956211530361242225195108077962400488201271110902952662622911957176699333281772778624978387623932443538340921912748413318382836066107499149350185561068043624689191636317259122728358504726840128395788520998584570422645412762605650515995055578431306370012732074960451041491508387236848954472956846319035012982962753962708721220858094010524617517781870881514425963280354114643368811985540088272284205308846081110064432178738559751805349059724126232221489419877128060746494209038478837306536511709189033793322905540612140597607671087157675859846728255832269513012195178219210799846650354668921514026350029927282689662598257771827121996956669967966142208379456816204199159684653254491794010933842946698260357247357581046243751768661043580094924602449045134644291668744482788407987425822370269558444773141958308835556673286207564475452912746317237723659126624990694939810809874416373956894354065292537672109184226632076809533721912185630454566907580501595683656958847947374961999876126973621456949838247578616602082931757709415573618590439717418090611087167428215592733225037842839874748126326789687642025978378590648777544856858451344461124993696993917266349786377087022484140336385160754559198518070357090401191265260739769375322697232987864715945746814190047694741249155384416281404157411028802644679381147184270554344068739516294600545448120539962719595051138463771381251025776520143828007869218719757431831567749244235213175033731667046039848985767995867578580025704057038474717453171860316628952214581714206320064691514067927495531140366230338155149044306925790662198028327926531812998154115686827512748116646426374649515330116882769163681579222012753206343490368372511754393221470271416238799938146888631782083019388683815011610864930342695882855964403169535696289342583489794472797796236692958967394748191134487311501906620600384020616079683135640610557236516195843266111038457495156033108165309973013437445386687271087889501969629655774056669179967856612948044458575044797778200468309752970189994469415380598084292264667696454499921334366932118386218587501099065430068436441482191330995148890394881377675128632231425964281787025831967816010085027367782890926637048765099757621907700151597166341790688107278626064975831777481951664264143596866368285425777434141485279269742444970815464273634308031548594560771725289752863743697917251626175033198907710826238037468864637304703900350021303018054522076000336207417613293165545741879180337869518891521447560080852563386153315760481452934101074844265991833959720213912225296614775124200736687110301781055410332875711430881923160459660861689519048058545925744798202421946510728853073338889161119228252550948246237496597608838283706327168952307564341384017084850161691021376386119083992138994027229509916539541648706142573821973712995446555609344178157344212846126142664296146776301999576555878535339466164209481616082271946143769916562798552862542135923237035264192346770269398376596733347817219962702435930379083787836985901366075814582520397016314569689851363041341255129310149205567778642242578597273449154283457055624358353963685535152864808898489391454295247658599389612543322196730118438730916140869790168170080404745877400766220859437158161606085969593650504190284154683829946046154763748693785872120204435832709417136168638537228744629069367516450256782583985416573471949967788576618797419178393312080362785072176739507490996498455576201027147542440063880691644559634138260988569519578241162145508061820124350939784027668562093891224926109867176613831476347719655296951144688813408039913789094554392632225570537235592314849441998381225390011039910016192799556843856391615515370873690922693725965586663927997970585028439491480094604795488852899129679337439264467629197228919648287954650641537622003201362837645987764564167850068345756056488134401027069751276130704844905484640750274124319387603679306327211995288798857521913488969037141245402108878876445942895563288425162156474901310177487593379666916579905475511411294758911406861595424077248827609790407541061794247639945431429390224004320338549310599497210011129947799928716198152708130456060244187390294631196187858046239674673214375880791352158079343829512701733358246424461810131960367882547453434384346465252598534291699777482835098268129570439642537730537700954906674807180097838482088162065907213517786954565540328310608720918380919976925426096954996492954747024938652568528354215109137450566932883376795725582004362263589376273637967967450545308222873271676589498172679526717222528509418055168096888218710002739850410534366754110658106942721953276868210922345392941761505961760654170302004182814901454429624223717890479269681241517412891622369263979835621154864112427098680171671861937419534333116050250258419979309281966585317215721241956031859301688557196332397271326857640250617041623334167055840310743028982544084972616928845778718734399224218811692104278774074244863299654156534995981683381539395587178042492547882844751025945801503627818894637358257917052616879856973520119364748355223136627782340955612828658796440124621127978406515126880860736892250393674487211518136651962915195018875839319135357433802614408097335015351596501732229038162426210113690523133867586323789415139314131156762209444430365362370122427559397461582772478754193291325591809155929333324515200643865952967300705143831238813909769632234272606222860331817318370100320674485909111284795785199075269882892785386716944163123930904456165363275668568067761437513955222197087550378506049906250896222253575742219992623988976965498564697917446952521004051745453468604653819166432819985046485556291581236127123708273447204064447031501051387631268093604739010110808870994984041663425193410327444262777051623489161573007902975481717023258235714559787122221049972798499851220552563775751556042605677944974231768010570254792476093696121462955399194872218822439778768582970322989045379581904389455266321035808532878401576893650087467216230067366902519205720312626696523223310892899858553714188734649791920037901237535821238824693264374011378621723011552648406811265424225209819206782918345879911795067326713199541938849124729509983061278820818814652276477013425300024227590517111630408726987187107932977657870203610219649611914210464002681438021462149766601580902120339220750002281836546583404741049445875982343500931323747262152347667154289956875102517806917359536746176620825013258039788181394492602943392857966633599068294875121435941388819474519034007117180401788890539459453642464525463830230673625838897867438536641267477434302031134981670539779636929976193197403900609442169646077134123025857477993382984496648911299752960931799903726701592886525065320990808855870678134910989981565819143319859282754564747977087418451547012952121450540131741217483608008533032923310216944323002659086533060304536919593872022055695781403574439335458677255795178459747025562957205881712684572119441850041491767565148825749404391457192098276744959909115616779208636805764613449665803957587698972418241119172879923987752475988620957010611514580384393039313108175897539018703632576040380146795960144126935242679343561708948636434061399921583956625865304202623420617797868572134037177287315439441283683493468947220998966296369212806511669471870789179078140976067918588474578713376882250049407604273656111198511250112198822974092509437131591278138026997351729239729050129838597349290898741793633963220051498402538770913125152100323737790081415634554590959061511254881658477169622519051760729792277277091188671033490578248987245448763493334744329142137227179236461716916349906369615750705864346896963974370161082046945591981089088988972451549481133311043618274164289028341780962136140699008895721719115587603345504388634410245557439938054618272019430602930305977088107555011086039089022384685298388468305657746840565767376575589464681691591092412963220328400246372495041968211579872396797300802201112145038827009134266160322358679728182251305424822973460841615619186343320632047296757654367262301698306783932835960579776918816415689885179408625796506991770380619111748361979234035556640745838834498416182725746850479187662851325514537411042923614595820409605592850416308884621420417063545680390544290783623364071983375213120349324452290697387462588695549624770392456714469917172225443430269312139391046286453622054835166367167715971262022749730706487802412604114050828059027705366877526879299661604607505715975571166056578621921307276665229066192781218073932235598396731471789548010172215753263296963569566111299675546806499699495997720194083982818560859151338671238346395007074557185113477366633710285743406030397631261768882458506650849994719795065741747297195672144734654267440130622965599998291379337806519699144385591062360058098764142571253293325812266294047422170941462966393058639939089587900021682412742395322251216838463254270217701337635900702361656737684352277144111046812731642420616917903242505329306669471471573979063649759396063126591951146788296143327440073136377503349735597403690267998945264597122538301164248216947549226655015459110528952473926688432072198300032206007927824667965276314373531489995144704564038493443619112819850042223189951955986388103984928889691801745342324769385501522769740961704244034931123878299249308059741214257291426837012988584269886979090865678726371075849927149859446136552926295887585925392615781652581380289457967738071984282693747476586157650674285142566907956220475979712370134559744834884290087723717554877888980966950979188109609119205236012581162693385184360373908506950060531546863901300642968952362376191138671343561962059117115000600425697917437654309326682152772859919007128907384236606689407449553285041589551540223971835491768812592974407140848396555493948599056907650385579922204962240584954660138346369467583322437461308064747917040509984558041106171597382598399761560120584912863458254742122931274681575599327096402234087992660522835546251039461137847173744231197736694864445726481306089981045336831508523998187449953276467385755656779693727861975269316846730109324620399620862982372766396239037529864479626850709841654687178314518034807064146131175748623217172449844793130509493350111609477892644519495940089616092462760734520112824257185720412438777302907731630247742685991625198315996062621556946283348803100865855912584946613580161855470501648052905372325809353001127261652702975499039093189585213666082826938064532650527338046956301746615520873021619235671877074596748475090070252569346378495306276157414569140714845750295479747208882907443809454971147340120490739961546762034983069157605651273093082195048983327907672497691613883398491970215928209267202382301129264389620431540667133358964763468807631943258240237195366099306102939432968741306870676897254769541832948193794237234800000482752193257133855023355517843081368179208779321598321677918966964570298599685050898298897835741137565563948587087706211236683538561927699313783573138449928755347306149778851250263833221700282673502685949374795239985136357445632080943354573164881459533801571898335687035684673956865343267763907805689186652536665748415566209064993686410942758775592329556767896718071068524480007222481146298322422992061906227114875216677800515656271812897263815968252972616620945480902973589199359976913416600287494545058992989134515732560197495832804426659800294777190122249917436641065827148338357664258059857888415409226116159222410088444323325340755447956546527484019084397273572727214349127898040257680066454210105185932239972843277062774197281018905689001668177305045794859115467518324473809492930672815492952020455173294255651536865471390158243402082456066004785484603106494365948159853889091878110612751130375134920135443199281533946122199428611156360937029220726224503230535669286186273792969615513062698856530819213459916447848290467766619726682587081989157064337850373042501664651260991315842814626010578796229701398116785020464600229678017415747594866048074924332741324822615835504993813096398224925269060157454813443665970460039638983366386086928756954634500928098875465911524626847664871886711418421964436074057573843639731254297115162081689256793733299716358740370444345114231744173279073159978472790403886383078648857600876976192229155298180694157319635277493207060460543821594209720129195318867060873685391145647498114510475853889460627879932360805388517092135728854638168761998780008341836334283029588818335135347358955740587706070334574986367092387946283763294522004349893054026419194487807490215142411537653350844194335538934730277388591000141332512995473160744904527626286567106203720418318061819982702447538041499328150863332758325157399238071337122640170803901518104024982801809939294629464832132067077651091597102787241276743349687909252778218626219061551098661285007502333276045640360618477479031775198827595270016016640970949435117210280611701359023396531645601171073776973948495526953001083342774022176516768789820134889780299592463468866427317613627760083811804506949337923516931713776162409417390845135835008228636439587956214266460976032800341120791568236457194197160964878166070130734710666190186209515528725696594275454790272579560508136814147136280157554222851011515445687711178746473640601183148199405892554638953304151711624715867202311281863108098863737738210416735557406790049691809318965272158195431676207079023229517527381537110896793445322306914978603010520046257419649580770413687176354137792128441763628658755332413057357590072725281724121134667801959289869566994477502966851602116550077811147537911579126176050973874182636751249140169257383507947504560399784795864108372074846707845222769954404311319851165530123410359318532198259678134231270232999036715417773305532559847260121049940490659072137725997337702127528551411622946900745517093681132883947327715776896497784469894158263094409478466759794528610119943303283282017818238178536121736687388588551070428585467006877081466768576391077619437949374566171430519188930072392815019002219747516878959972107985357829750472001283777485989854157838884699007376557713870155081543086030680249495462033357522146995177848828325530057661929552253099451983955643388170069316686334666921618951215745519601521833096961367665075839372596233535522255102999846982787381231396602866916954854989045333825178257712064730338326611192302963700073122203812265688674640161304651409994221313728542809629748939046451540447554811220218949215208352457986387731301630741918446285008996640030217650598548144395021353194335716548156734404867179967404431215239193388493737097094990568367391100424661332493283368409538580964680972805125330245544760765258052684261637156718276848699476280326218119950491265115724018131186687239153242806683363372343789342641608947971861336152887413657827857236168050581866186417282336094885404051171318224959101552303452284844265214981996747159648714803644048795850797241794953796435738435274639204582320617649910527436026859411644333902079948486119675026347325028616090805411331376649925591326844289955346589175141307277292304562303094490681082145558638222275832017699912359422830666823810227170683435616246237514163019671937399894024792790150856992030136639062643123519710005377985566868423794242823114228744716630443484160273427874082593099744843572199709018152917013184790914635405303709278980802437088841739199593330463448241413533265614506897320398770004935078603423562601476109936768353866403437929308773356275451076357770344382880735462087765328099587542720336283505321943387763492319663921510623815332040964156195679699698710121716962847211076493578701489471285374247092344520537494548513512754388643277086572168700289957584678488270592946099581318420066088532603014658062104706800605582259978582469867777608805940473548673537893087507436640069926106089968487645625133206253955576923030927052641434433269466596322906314410706389008686401203472006513991805860459473752367183584734300174880552264827908121298312881288878343474187362413365575263266242558390564925117232667824278974752464476758444739477075814943700033408449324547242425704746577309127286991989487252297186134825273423828594542185821964367255406074574403732232138283097964693472778401008303623986969579984609103676881347302426130420236155748842892934267147626604588089288383624108456167049975321743502231500045530044045626470792611035890725823010631161985750472838521978258525449948992918466210088134506157465726135830712376242337225887165179179372003348743922043221378019120641991993164715871868832184886245325261050815245877735083379777082877801313563457333675305781795301994481147618121200169246521811872421720072292914681921078442731755756581064235520987138248401705258398425127385769276969523867484166426147452903091852846524940290250146442933695922991315986639782582438444678457273679759913588680953763764881444396318715894043051543342719341708042341259285754096364576408143269613962202869741272426439516736782466216362530494273048168058843706068920066513746126851322100804424517283596422035388230710565761582069204279835902227067616887445061498394307539321726108509993057629995790658006265773726121914800993494466189296409024764106087607478262913632222793264862881440297269459444702227247882741628222533641299146853773338950817641158705090315189687120981762825089290259835892810241524969667690835427238553007074782002623516193024424080969722444674785050094635577400145158363577293934751749453534026162155692892297987690195871399556521711125160459938157698646075012296086908266918263846575652482059844622937632090723138240169656422372671095292536549193347640164296551315414326858397236800534572816141006166291241694673594756877608654859706934518477037081120062595410251871412295181503770326265005797195969347156790805054327693332567431272854881920030261283374293038618552294439405304975279812305132722664161198108123330578595855566205099214331419765660501779075398003397169930650200406283920043307052450394331148179593884025286407486323767470754827365971510698493734272014530656817667547820189796635554580725741618831300791109929565881934044550940988562187206491207602785079658434667011571479890896736301192458706051720712453186730772681741529221338455220627885215425762869601560523717763126548855061964663763657507584418737938249238383532514330119091193762867097486683215430081264054654919770555071870844402257531420438314872693511849126911980972502704296849772584632928570789810657374626719906660982423253471166843316671042144549243139859793291587374671449432352855804050905306355042401915178912800154784955643662215014157434420421914027947548660102037737173296798799513495105293660921503450448720704265601549100833685751546440200773689914790068867936632752605011451051101924447738085135921707970805697882747448138776381932655427526153239645074426731707651447852304686843442480425337618077518016026810713261401719749049824517320766535858366249645586775642306826096708371071997799274124014679316646652537326414233818046090834632712695535377239722087945810870385271925064602229935284917470601869747187963376412428743314145121509462212174261400541129239915869064470346001736619398457799652852770440028247850688578211796721118851217638224490204088794427882879035312072762992183497772504300576367488554377763952017891512299438649315669537648070177791317643274776658043596902862638803765759824833903624346879641674388775047206063544076020898641925968732101251565991603299845334778924055830624270830038015923146435909453211199689380132933023598566189058589527792168666711329436372878833163124794007237523672663956396863959580275182103915421292159236823944589365195008379361488294935121286546334804306102151917738229647804353435967467702699612752317712983574323492331529318427514014725105138218717880388617721944843466253049328027841747564409389233133557403776496802637792770643745276891057847106009710736213843141182236519597040769941114199115196227507849871736031111559557552831192171734482689906754551209354073376350662356391814040433245085563474354075410768219224454079645405511684986519791665724354773111753556942555671742296930823726130644505021355555675491816320675575649105584662362408812258908608873402098276082125423663563267556960988219782210546114715627460114857742574534797077580739473968048901176403999171476016958221599528678394182269502942731882406597488372521343284766602815862125750555002136878792788841332244742630895469418760316941433025156902102306052314823673438612911458972780083599884709519650921234871339391578813590633738630632531762671627237784552967162101032788309384295420215251224873142052308977608609110387680036869806280980692814261780666917059608469247767992832468638777911043745908939917658295441488562295097890586111234644972493253494207575316571798920932108681959039084015194352365261799672916304788773401409473824127911106664520342591768469517434775161673441767342877536785351014548091441026966950401438486728925975688824796526272896476479049329155525401402227394764862484295627773634745296662368080848990140524805576950315418144531453261266877581852880943450912333911433951738709022457008507701671310520718923714392830922995645675239047058893369171766725861087019238609392698313457462826471160450816423976266559468400476218476729928905010657498367646390309196562367802603044141172499393351335195847380085081390456738316209322096741775763719419686958630773467992099255893607399722501181067316653269315610421910045432079004900352206380508253918877501032936013586525542786951053583453572509487346064977440271772007056350754443700978097809669587665869477582898109390024305921140541490041003276014927625626972730251280505308369073983732750991167164941186439339011874393421084881908703316747633738390697981973787351439734671596165093213832209917956659878563385459456657531555358380335780711635967128390988541539341747201644720085440007615434857233855443607975779101769550535901233285102168809484726249057241924583667359660855320586449287415086048464770749946677660429399075877578116045853281779429380318723240047004270373305119344105642402802314278879545226051397898647553357974609640293032995511893806179364102346500635417182673440680560431511149047522834148109147704748358432807698430185158396487184604293162532324561270696776762522343226118945323900730965953449384495685268380171538990323655462812212244544033584699782556042154767900926063831849569309798306400226344853367026288953332567497106724618205669336203687198480262016233334775288833088770589112745459651826406867826166784039780647313831429283019166018062709662216916920306350793933817477306428748967938250844294991358595528129555164912114873533315468451958972142992438380899464137835418460088796024300904457330121145092110775810023981359649104487542287952671808467511673999129279977506458910234683969143959429830393520984266085117406306283884623444243817721242767161168180620959625136639117993148731246608713029522334974913091670102610281679458910814612811786235065155902831451895371089087436211491751005205117785743249906762529353765437368004206312331877664589212603494228847836184963608770744990646518915460039656584216239221692080867148683384717209625625698408867436142240373589480124280705598914850826524454970435187829895596193464092605818508452183426057563877438781838392874730590702036340109609377527806509738571722101504186411121524046560865717353299636098186885256333912505186917158694165302895611314452232028354161933903989987633813502287860556290116416618694840756980519017563732136807773602609250758540940744427279199903371133246580201863650051797057474346954646117198487014668900174784288676732064526915056894933210308623050881382036230672454706779325421232637251653212735675957705217485641486123030097320251441191355217883455745950858315214316845741602425245949589204841344026095034481720664157799858237596682773845284856010287191421394892836595157567673411843382040497539880989691850407529554560505741489983225936685931636167149538614128808512329054249456709975149701741560619769859757306315027114197488035126975750966669108718567386789887854728320565922486985737925657103975035300395003394111769479223797799463732850510446657759087642893048280717150063572526129999063977916758443941533321179312805065530664044122928868479891513182634728285156417922420410252150110207052736256268590561811737131296543748813484628013579539187047038224830550810861785124956377736941552062243960385879318979651643808796814394878658597077430033583942893662207580553100286883990432277071037386873371724520133672840119985838974839822230727422822730596980207715603540069774003608925139261817205856433091015855684844809548039062618151521434698274611251926000683748683470072261333328724674362717126385457993351111472633264583568084132470724841960144246116010966165572956143705614989818236032236914760596451890089503340501588977246143889942020499294253125140749070715316584845113327190265943719062942512556019902223577224345435280279877244716940647269438964300007551723999310281794381646106429185589962274612690977031433364877727413281331688483008395570483477773546457290768630959755279640144951376573349841988204097340721906046719206911989627235618699552666609105243312722904334947280975279289033828706830951189707542653726358534110715083112592910476536392049627163033858770822979661132545942067678145888493411786785111878447362380661627678320904750191585870300970435342990041827862219277720829332800309583740868782286740527568380630689517980577065951650253295931705718432605618073573581447164039931821348282758091437320832610073706733231340217912936074419080534476620782079288611152966966337031111279562459704916206808140016782154534128601843520587586252033046651723417237738541242787793717683016986548811227559607990578865609780709597729158439466881169869709798355756303995332301136525030745391486046899601160361841861178148734975390329244911571009720822973553947990072126423378897980035919404353527920636975317590709017643456282655550340493414628902663186719054256138085709495224454154959362239068923871452226145223429565636089038361291811410576588330190236536104127439610897138957241778789753944823222769102499302653766689606353215752917427367162839258854918476934296222535030380941870143454126680802618573890646064996751028392071291968932808373197436575401651280238442816814610606183794089808903869409567194336485939417313754602108177194731488376346320786037815565040411627590756017536684292023609651190224315778252964100457159208417610582991955248459698277788573358930807103016244967297182286806867752542801875803433303477392436564200288612175183950197729825736810663801911569040051199759009655956595042874117540930360756286738439849175540371118526696829928373239683896981632613512129811586118042404096059567275726197345508472267958864045301855375510355048462164873821377180701567994490488031312867281621337432759242823711176156731471929652629356933589880600051161266655267869334996638795582896437996664878272169619957098272528504479221283817252940700847432944531372503111822792559532926796108352618747123074797789645891463243784605872627367393481607210988967606547941059711859897901432183262920943170591847940756787641866373506442250765147270236984043356680223392075020147932400587277022538064601720891670664535430123729795251453341868414584412271314045745758393234839879592092783572755806973839175752022674677918742909703063211310586220765421876055460480989137281857647014478377045982255346069007877333126266485238156904707524953650576596265778077458718801566344254381490359533983504354985223876524173055776947963860413873579739503719992669861920122907681903780485926540497108021514805337777021244745781603749261453049219730587533809883483143067677027995016193607714152452181098058667160451445049305088317669948572348150185554525164762228872531242677153141075946892484768159697411636251508004502817992624032336585459941662921884999751870428462906804176470082863916672682177079072575217100788740485123287316684766994411386405540547902065245181707038691367315104988440064052076254126472007202167568960126962416017956875556062689899292216708533885067987443540343538017847868052304818812999000309479011105894724282036485178883296080601758080185530833723553634903878966630184199271060608688060288473823921470247104442489516360413131393570850232405880515323908178960510115157088576654527347287274835051095377706857208913157128974766053343737257441691578737818366079588805593628174522049019284168412694067536437321092754865139501141701255673129001230660357569629992659393640076489490231028613508728189280703100134746290478166493319390175234420781946812923064673063168839622541672600500187097724651654098931011297141523267199795839710850058998034361955307941077238663402681163634855260848702484405356120028350725937271058879559664049936254555717233384401546746589397602312874245899438468538764715447095626877015833239893671508926681543803766585220857799667939985273711226482546653689725841214835111255777579751786332194706621251861985978654844529642210895303969061637757401413715580577767712221264042962196726729905704958766413790338059628722276369703340471434435505132425270656334015575073637630686246891200380915275151378183975751107337987657513195149483437449284828006462534058508526843673934525765999048490055375525629648669094828028199784825672551020044920749340127613769540780815144795465148492294544815082301086097136248993039693703534602007011385012309262634147400480492564606277161676201587953650094364503978428483355682374592100264133607833970978028695198394414342171660548435044239254403340085736472189982099566377103955837598351083765820882798271944548801205051335213961434680983448083999141239849588006513054910481138659570761425893249870623932502165702371487400141945544253297605889466328807604975585306495385577199406136309543174408004056259288834968911058105461558492622918925939759326845065739273189576823465333527080569226902656748292452795848433621825106981759693414476453738725839611495414115653702123055943861920034326444559818112954960298446173646335424217003790304702562263012314430185541343796572273096630746298738466130164312571547076343205976584111823596307315235578016021603721694738684654919908712764369306901957693758316807294192551856630351184516024466174519333207970788970611705314085492969624633123189444427656932479733706984715184907198379351811270915037192039694130486982087411824625365968317733233759446327487317610782209207908372543263679119125171979283724651922709293274976241877513560114935257068663726571878358041935145061786882705901810615520548440638241942881133142503667966578247334267715303959510350097182048726789246286342492158728846866949620367873038798068464372583741131720741450851378989670826613732975744110713949812560477456431173821821635548276528343847925591682797433685451131522217124371146990136379785983485334066915247789976358683121166763818400867319049560996983747427702273109726035062756367466105585300407988203494144919162426687155705964919444603330246303363042857920493155680374484364793943633757367901174649288238025269059220944428782120724459699570398270962168522285564529922614564648053598132128436077558194856690998123822172300467538448883700804635317677536122049921050966543027864614973380902056833349635229304211478881660300870913963899377947172986139608143295921603499770859267457675257955095000552200724953946179690397983228363410103479158954494865715555959963644819241897540998377138002134301216364535074579436100217456212177305790883437380552647892495581724787725066830532623898034865640691777822380150477113149184686888814512750218156979670867183483359545895098695307996653013266599070539489881627404910344684310775093293015731671482055365138912852710883670965748572242836016476482292978265372795369104938239348219821103470320804925782682133440437733882488499748578339643230476854932950684271521700887068700061304250336846059584092416189538595322796344459375299117865255615524255558695445716618156923954513227120012836206563209378705614392208152591879265767775137275743272342005702241744960353221007439013986108018380985115254767664672263433797979642409365752468335510581368321548313671764682106176278050232601688122045199123241344151053875345379563019015900929980686514573256661792213965285018613280327166953961858908594453608570816009027065258741422571952272938262532762070850756145228881817181530722211459826304330865780488512346021202982267459719404947047935593591747303118718119337951073805880082834950290389040934709309006902675367337355016256995170345192033301902799481239201619591618247760999216728581566414999517245558890289618027078860180166612552590447448922698521203452591403520974478867307169669473625963718497958943533123230556607283031827907189172357236396749483132242331543168167641812018306736834089639905025859229225836154392153163525466638319873450993266759279408080566264785857197999977417793528538443575186219563235556221601174208936987328533236589289805682966287000908392159773256609813825180597037308709937655614172420234862838125530070406731896738956813140196412413221697211490034709772318829926549272784861262676758760938929897838655033372905929545612464303289775383872217073538009128631980463368206560161320422045995637422589979144639507513390630945952928075772085267219154445232158314616842818218182999613789258368649936810389241662446775133833630427463178336640336070373316705049630834169826727248262321260134691866835485807799768989970920233412325136059283350266711916860699080809811626292215505089806936536433753538911128061254846960590693596222587342025853090286880176856655211573812693988859458866160414174827373182942948352214736473909622023859901375200709444605052793927056931984904359540097884101693787600806808133987198820150065573212363873427222827438304415701019919428491762061416502697635697688564715831111351915277298198193154373436813006978359442391174541044506754731807474083255561363085079813431870799550693487325903475550487263758289533554302629935698820916488873201152354106120313224113103013993614027222062215764688705077368279865072117696725355454178163017438575858338601879140109172832726836962189577611040895699822268823388648389005544078039808181295684744378823210493293675920397102233365675352677412001709942468182608870781994079071157651336869134865407097145483177762152718082938878935751981264393590722430499501200647137895177218365992315160168590824250182238326868622262628104677337251139665224696168978671528174643529287368794073681244518858965059569560860742218665017448055118226452760106041190014011759410708180841950247220834282697635116376818930978943173879658850049788785682079013476565369204356369874510547456706830035459545073575919470641574157418694962173695474955541131778476844597140988344612184094823167709816653596933525834923811397392002466836220865572937078411352235052600589973743051737521827073214439009448491423230433646914910323315599516618658516943841251805807018782980177857036514504635709885505342197583659202443676462397399046437973391327844862542026613964040612123486663649762562807597533854687972496171238911260925439057341434164857958946409355915149895423178791926827572247768016802556215089379447800529729303827705678020758815942968377598680109017944855482021322777342436894214896600937235499116386950622911615472746052759333200334940784570177327549067716251843142652762864891501691466986457898579870336355511856771732583003569228034215942934212861040666382348471800530816522118616172387065906717240963513486987960878103080008186209979003456360124261028285433067196220972237334422442262352924259362167660036453794563843690141796026936219154906492728348013073996682878612689185871460157392758362855040446608253867389563672469179611684601499909270815738812366615057271402689214977184771801369309162903528375172857281468802389065934429848370561670296445216224015318917257159006788704658215889131650405122933748990486262474974816940281687363224705676519487807666557226614066533742852142464468627998899612086504737922891153098291846208416072922948846380054469926280426376301297387158088970833710095857783284309537954845593094585256065069582784161213323092918901505566593001266936307640449395291517574042089590750809870974399463473749181655724899549949448078274696022306534026018383617894240040348744213427177953874403987950392103992932231895734564106845365592083863189455751069328275321719509559722279094511598729264144755854359082914620707954765601276475570897176686190430936270542342954140722065546561388293086028175613505676097951209484513805614946412189644493012521791126017816520718261650089318660011083507220508654603872175580326023431311129723495982660310908270278840492913743546608921331622983875084016048454441090282565405481115520821745853944163186550305409903828540780988737399009228055077750929671838357730312750253856598142838079501307204029921706124573061240425924897133040967563529894861147278340732951468451200648536795241298855367939677302834301151366086270582488637333113084905525174562606319069562422115630426582313644195926080733915238398263489031417434146664019792832357372405623518425429017584535050133953215113919161393254016844119924264553678172103516174963686980291511259669054795606554715192316228580383136763862279149135416775904283632603018162165245139908137568702106532145903683177140492620063772744308221656469092500121440998834725856646545084979248116030945160919138357587534618120459132493699695316881538171707236280397915856971708474204714233157817008938327580722100812467095147062338533181675407243232481614105232339650177993288980943682944217450855072148405942732235172796166540323646340403215770683626710516877925353482037290933730321195119954617613478385531097331721090924243255041199791050495924956007781628054848379872220024458079304243216550054642739997061359182994634507426460055736143658657502695823179532204891006976714513735880135520862279309266495402005879720138523061199485416521006784763678179174104082186634857931083171264571773747111825171603123935951025970900705592366109382270017549093096200854655812766285585876177898931131439960022920965578562350956120954091287033205849434159734911900946768914246766956253181294843095979811199019201461402531090891141137490392426529657464174272168903374338015348003896004602686432806713422313523588394670982237943045025748509651610547875879907810225993218011834198570799097311929421616509887548098245872108382709379100270165070684771087228967482409486015351215471627154165646419123028947698004625824897567096023459574409548836945238846805470280511116367932344392711795779839732925571769663941858716565396987968361299368142285206673931496448527942263683497186896442749617978565098794504814298312547394003762515385733022367505182570126414387012713575233479038847064269179080214969122153866890636446356628642745242358552364038447963461904931554022650329640513564398278494956681587103348334453159836512375899875549369047795381526080035343549446346392038054961556784175244685185935921649977252100589478856530960910796166810073160307879073697495040491757790958228446580326183643967523135456524672634762283169777943804817585294121520121652343427278615651239549647261587396851344548397493786649780796893410975308803429354376047431584860491652310591471582874495609166691016043258224360314665496774605593149814289556685936848182003355846693566563426378764363609817106299904448181495544464459526007704887069442902046011693601553572495898772755200406984785688446649361293857314528372659918916645337360594673368919730850890146931128845523172360852872892538909264499517448485869712284629606059949907234375132062665085279115465902382497328742333606039268206986839436187647680065479949709619307922961225070592747342275240938232533420156232390816478461105327734874183963636047882118459018252764821655925026990915928450897251877053824564544513500651078063400560534126683301487132901486049515681668527912903555044104389849137111637030419822534680648539043982162019797957591668236541512796383026681864491752126878348005718086259383409513400697227452524792845154539943648280261876895541969766899539576884780852088727026132355353159342981059826776702948908623315570089242378995097620005291102458512921878527533476440687028983030874580802540636720908252542962509018885515814940591721382096950709167855408318594486578422520467468005554837938585586423897254993865174666173727165159265823083126631534662058970372424509311436096995601053813387114408670708405732819400795939214892927066308763882552250790450916431096549067881313846820783475040387168705330391660937940036701416251063539170756161069458546787340837082039839599761770859527617273088698674451140494737933441604688931183613690160467396123532072245297568674393307120145499572729318344119245900285393602203261940556189635188808096768423171588610744096443634361772960904666544813647896245939329079429233322732149591917544410656355340640820114742588718922816786072976859312071248093199784268562390496912081608986086808021892057934012264158137570579528056611368133823484941698667943553336696061786993664322878339048566803451097079786975465962392435502424802526280799044303809919886816238298262330428134183378257371392794613156257288571860704836130008405702606082043937001091377092478061288288663449894937725748145764448847045570835355092236356391142773975170505609987542232155107072880660871703267152492502078318943066128762398009136844967489154281312722316478105760422969379040384185672704471943614776307870091038104344411970841431667620835837845825966990903703836649030846025534920844118065732057574535645579904516216900949777252492442306655934431330168740875402053017018043843935252433956778116291928574987384458034914895402602063937894803054659674129716235109352463483163628311882352065071042554960775499685580500097307056939858430049312216958874338202724038644875091736912212100366037661741588319838485756060312912731080316808280730518285753199928161931825149381065923883792455597563301804399046074843340099614401606932054083039492069787652880601502313943849237223540728747359017528838373550349445857697544394367719583399427288480345582035568582540141478631092418328382245314436932209140351988218820089640478847900547780741057989704863999024259875875828606333626928577474783241792119302419960122852786298552110468467163697334081728421326032153119571317452666634782044563947853461134595931115882205068215945532589225106228925438360873979576981670070492186772271798308182425899880262729771006021707065482162866945858019558735157640077756123481150011549898082441666230344894388150667271596838784729711392570953994773481238065847561758733765179207748126111823395269503944976623339846501831359585778555515138530443381416408526716624091926789821015327842472644800273561922458733394304753103671339103943144498952995431783997156892533178018728622212224599809699165590475730383315507271984065942043709370472586455836036622895466266091374392308996808516374126208503095354152750494912552695310399584197522095785676778364792551329805532402076948778700758482219653792335471129197424023992440164558360356089351671484906261009899073958886799801161063017976637794108981661510335865032464159149638430608406856946401753068615083637314289797861628506926466243120484671919125722883199711950760553150602641081098836826922418581664469900720084375228188457245019732356449520253149903695008174830345927797107230118418359691496719592634747420292388707720197619858394549771754753020288351426916788900940558124391282034964831537829795180870211882059799309981550109947305882229867676641376348381990630046406147790472374158890697143975040805413753432524892130725668844557673744359343482399758461515577793113335855952234477246291655201084742747123734729587174126659389508997631538096362933921534225580453163011384433038938038474558285135208361841600641029245465594600333205274949634509382718521735475986258445579113960158410294258479550205068122867846661762548915925293349874470716687191173046810090782496660398770336944471559998228124703371378767335863083889125213668311459974668342772661180108057669850670004804854609798901467717563057182177802524535954812407682296546480874073626398001987725409208334454951703768815333788280295164155042446540592939668215443010418653915645555807769940725777690221079227553011070154358228764331498643312545584866676947884037227587835020477857149899505214006138172603250274220435517081098346410581301197817040185017116722931982141138598937981147897784917351545413697244957256794083805646153440704581004315126124937443496502647256442014824264084523937096024504354501327622450985517403858977299487989253564951263095519264571180285974644998350193698426798330976996312248597495794434258637192369789894509026795817127834163982150064477276811442697269814511304860133369235553295746618253978792889566095522054831746424461027297312458917482407750795008849173915837202092679632122422550765297884835697455603588807567437121763449754802357184731513059472119124681069193611009836770207372861887167166260189515623195745578627673146705186104051141907406753191788957584949823997568922392781312236614552104728576977914163227672847022802830071567962786897596011386059703947921017986957369972843864794595829780733073103917102530766887153758727574874678842566372964655910922271793268895913235312401986392277933678152368993261149921478286081028819150157131984791980184010755361021584911391952671346866340922688108271273738140829813134080312805383972142020641614156329838595388727014781023443916940077416149261768729664180338936045072392597912438371930847200122498722950707969876655694796966050356611370080127910581352901930146365643733783589548424087881371610998298253448350464145649069957010252754374074459752479195208773714546201029434871661483714745360060171997800872024101975116750761744877357729232630086515176372429076014497879423370369962797174592248494806489243934893138926772847540055388969820644942759056319166975818724373501906025731455566973331721846430460341153923092337574106911954675059278275974865437671480942252668488640351040692561394180109607836653506306730733164318661194756029487750503006959755705875598338195447680396141900292040179800845359527161134685642382448213376439683192641846874318375801851108193412573683785817320821426220539182992965391862504277468338619587284545928244253005971443154139816958158650801544182032150931428103370104176814701733406136334373838372910657483875771255760936271399223587080230019199201770548981120509771451190571036404100050110316947395462419566460124451399782599577598684294394526621854329262294065787299735885722435607202060129584588087859284043172366713604054308235869438507445488856226891713280507374800818718819578496314323985287204375091899684743126274912962646046886654385506408824685065843125161416251560861432019608018524158486026611965690677730940316747059090220454274913181302251866870994315449182024670337852460198580178047245797176195574315660081733657532376842801970592246005821235307341851769035048157187177796880119745844051933566170626615506282147815886945609499317583790537308382083894116170019092635653700358299773233422068060377939995525938926582461607318033200251223594034376718567445824064065393252789818545365544250774568923340409975857822584336658373139601218596577840414606457674882739492129726595438157852624553374226023962765711379062561864044852406362730264563543621688482044305149421854021456808294772250061385557342995123113675582908372711077675858369107214650435902294339685794956638074954333846446549407689763914604667092404474202906236000880490168954933507578759164725614468904664917161903201836515286751141109727227134002954996400534421731294900967076439577922734807474417339149572752126668881684938154462902042992661180127557102754745767779030619422075232516182011711093465349230430557535737586389335977402056253471102002413384744819070629557686641326273364951522283378825606631024715270765411209327338140864676211683738094179283829638110468819812450023906528994569659517796664257155074018062397621146023404157729604517038663513665313636890370730914533468596414435776959569223776237752720972226224772263541640899221731617674234196736811202302198259566408646019470638686687605308450040518700428322926570040652445781663767940256669821534553236458213297873634267072157910435961699982286972385158312296561129084912995403673391441464433499376604523240343220390998329673871643713836891357832485124203465490494489593962798208153719710913111613115275154758722477756380974821714928539716422904943371711145504337090938725966996113069555549287226848464789734241282716904450186568183025373639883236974383793423353699888237249642441872598829230129655710442213311688249562579926879778571781678698255988037718236524323712635851540069891637929873312757417374883001642252170675434785754037269581319345283719798332557268135192485982395276964230812333422125820752279220883074329137727551450436111812755624173539454446417193219228212122187440435695338184419919959282040014504427719082920174541846716032817238147719226132718982635114071953998727406285494252158514906231096528227627306036881252081211221855834663590592391498655577787592939528896966501828103522456734236067482182493960968998271021077938540539883127681171177558298821440283619994826049088223679541984372005616009674787303534629505931081031127267275181260671234003134859683975017257573842610741852305971609672551145579828694469545910032498462797018933482484772520290236511592297707258659798791140402624779960267516121613709555757823771227770741159590129415904696436840326529773236713096065786898779517439784088146830006903420019313224448900176772847190495896638124621043871486118982946191679055524769075774489563250438966156475595432613829759304283374017254811620925212109483225463302628769879202806352322077481097945540660654385968762950956112278098344474809549520650234651737226636946921813444694085331515924311436268063185617668449847225046888384155852073971793448091684361444792851283710155919536972014099115849367781670630840661744065653998676799680639038838447874715112984523763654307986143037316030202076301485567170933992231009454909381504414989062963349368383798731760675764555860335798925299123316773051251857319182909564454180712180855652007201407664108524554172569672023974172822349104091845854680469391014521662973310479530622889530238158648029218300033786823295529358529924566575933083675867777553676088518920119864833948322309173484981618829674512372254305093012603535568387815097621623722901699881638459023091861775987805135535002977265036844623694575518218015126731377691708102189197780465029112509925307856503409169122181682988341166718918029253551568668358608111472109610805111492837423871431476975014208944844920477304017579201624266676009685690116157399445746879581966948432167690008873123273249119344560719675619035104355634968792787466547528199382114005549583594112359461538444820769490773642342397495304919517804321787000672215472115668966650404841863228120598153065474728110861259785984740006999217041838097330987816710052152001915607361945505278048806520054860194967397089846450688302107787221861213129018708495094811107906212811572627724888739176531822760062182210239649336951220079384389798956341278261623725468538143384852793716142719644322670532944749192368710239098671766189737411515039881817450612873872565155554143503846761463292179533897097328241113628574308321931784819706865656264037981871717101565017837933835386980531729624006698352303285732571514133219705540961249774914651113565970043342947868334776451889835146433394567595376573062523489974506161486677185617505248557186295245970071354540573402541612421174797653959647300989875983892460363649045101123600633242541059230899567884879635239296472378568249053280825043282084509455308811559260615772311727249089763427942594682484810937211977202020791386635670273423385901444919463262873450433951228810571366054236944985272514067576268958044401367214176793793129868358042582922447329229821213172560345341224760203992406639607171910137223067094349161555110344673534754419589475755847141212596719478187345167113724133414318686209604207716792453716907996208475344995890819321230749378400897403941463698462364840493566335665657623319462980268922640604111156079316472593569327852584476768357259779401544132760191916658416194208025981552828503539473613651801355428537742968141729047316788021174202454026924676709257775883631575827356314893613871653357254392092784886526011700482283028478157749004285116404123370712482644149529342939684765070635770094996669601635826128049020330745654387544501107370559842070608268276827640476153618274995500950966378866875811625415933001621277575973912635623494989094967834619935719131980610341094214430991534530924594069620563348772230474688756097480530708835073950126557580618392353693724862459860404696241224052762004075765477448521858693596687612093185882352077512431956329536031257782186492957533909879625206370707183875462732026528819308120108845445356390984684641692266734554048702181219003026903722678106168274288310976262947711671378636680007857843658122435044614354870621613116244597553480113131247595931504460038107449059685365614440959981149628863846528551230517791962982261875589257364490087981682220198080215538840628469396674368299190348113945813375823419609627678426400334721446578532459135966239120255290301721005469451054880259516486607942684469378652019258169786992930013122662548607616164429573268417235188109731613791339369773013440414174542439478627811930644129112395310393746469346865565423840425503736132666858797498822596580266299916310422445475836693392833843653921794442668051720585716735252857991121400826816887933060781222402672182436924646811802148563180803664846305781758818975096636504395874176079023807794931172681004716872298627091025755237634101886544227416631519231363096919068078875672386903456329715609286829231647071002088200619809487013092949791668772437455595814703903288404335465022364179755720428702107735565553935224019405358571138938565087273426547516732835308537663429208652440296691475903504317994017741786697856661294765005159083120658752545511704389080166241007777064059279422812397226606427842580454030762059017214209350523789704684327998785793858339054659162044774758880616002341036086335727227181920530392817529278675581190200035470494646394447542060878187971469145144852601409896502957433587945136745375332169810885406187758386248957040019063134044032239568832082053333890542340340863942555349992991490620103907308813335189343605048896335434069909378453673612708628698183013605675404328168228807365486006658799634381840091192978380906221746502866235233624600487743327401364965639304331906370016382307856366507605892112125790865413740582777026436373810648059639214193544188371406247955425892631842784264001765579630981471095222188074662932490732189438904531577898375875045999040211993070492074409290672706822870613727816796718293793196263847474538193821953243356705090588129308963769953038826866350022743603404388959024430539317905531987365950951686514570652866475309620620993059283790752251512470362612392557786843863543918431139490376792697133490670326219107734497475699218697057980606741827591990538695835341161925228887555266584091782902149055078136937157012306606401886453119804723442394242484765701798518539781531774246844044914635472558536658132894493849171919405184533148316954260975685696006785132096673882674934496345075168544232304011600314497671729845227585223706075253349923578025031509343294588025992940994160233596611028591646748991794096964581938430294100833207395097251019507303207975220824049182451492476055153670322422918417746883959927310993197178690712616168532761027822490845082681204434820109595879809006149408298208827277183470524429771534686453098212107222095028820825073043168638509385366866172761248251886919333986987827435673767124206341842907585110728525573048475718341067312575249123823945594401833616463911090149593222628090194983817201263462541760267938539132824016545885718362710789778738017147790634149769892008302048641531111446539801895640059905572999742879360274730476951042672047493222084683097366609181590806935610802822587432487823797426602993467953578385590552057436185567166016988376427579169410542356700622785216717793771269122180399148224912728063012022401355822342537672243554368494322766416401789284738197415069402464693044982520688833629913566322761588548662698799312285054905372076720893258418915532076023064870925854126216945199377450809566574379481749948503874388038319368759475393297059099719654929875022493525115831076915677169122603949854677138880763585527844655647614488056329286248656365704372983362012821676622020594038296193962635409910746323042670758467894585280432371782293975806320335185171987044253272180366708337572252078359685168413529244133946419963061894398183285013025179723687753088909366766683918996230109949933948655509166711933413269311458962463401232710723057375916408960700028885648078631776566668772320453329395089706957973646756088985205593110523808174621547976533667102740487485338921612827400162696438864430568193897755254460448898762446639876555466054611434129872173396026514473515339232594424676075037879202197142942469203569157416026346547679610093133468570085124769967585334325063847290542354805034658887617685177607332133929107756879126157951766643674105456398333118620266219056589798173791341786187930076526783520060242488892016191874672081000812884975046683450306362112952793685087051752638183806649571429772064521351345748708263396967104428668081837013070903392711759320604415386186652394879655770753652835948268132616759981414885466631259163197815721300289043591786340656952578752738238072626731871625653649328063968279184056909477976651137862301724651538276906092396313115159830720687496383331908515309628760357458492358469670953555906133680663099793833476749011871765796657943154796326858821468379908895344459377220192535277146976215169182659398899349485797234775604027631583328959262902902470711114705258773044554272141020615096639275894754864523716618591575524777078114330398008168722411455354143877556373767160028448078916490530459853324432428339023301308591550759065762768283345601040096161176879112106287120171563778045166698810282715419673960703525501372379175869742154327958982376144392726843631027510344643232193366995473429636387292552950196283951025504054368441001918295019915866168743016770870274073712170433871938087425922358025292256331631364418100531194622010817319578282028113334443119860965159939399515654781427311572452767013111437168553095871161009657969040811836614064687666799977921478448989351195482567734182354250240388636460946573145318457219901409330854462762397344843696655131635820641453126050186693751577070126940926794512090756617933044077316478604906059580768165987458936606748911802716320956838704748335619145504431995528029698352733994974465547029682032882313998530236612441370645382285476170664294544936802394064594341927933458148753189558734685608219781292869771236924193798841378757317456584560195742041681303186717389073236261616178837464301209207789280502822091739707725412191458003518940511075268385210280659542570905078505746061478177342706312601628849927875162358848690960666511302852067210336440181405906506604552064455104645474726132498621577867165766306422057152068450102355328028395661545979007335864731567310291906202001891717248781832521194571742950059395501680506185974697532802441990008230197960528622667449936925237821742371054162408745057422785444843029413166862683379989504222108124011103136835474626483028789926620458680393529934377148239906902552667515108207975871415131980113791131657309238820153787265283734912004697078505079386409330031634460504509092300443324980154519371556044514234883492008646578900211443537659997727988652677859773935918811652243921139090138847349997332591998389604822212506525674192648705665198955761477144325188366230523707209640803644123478284266261591115368657566554458644905204142281583768636931152217378942999575322213182041805891969004616845408479134844236502470712053155027676095724494484076667234418784507526909796062774586608081344374596702807147837042597539952888497836437334185354350359292185255483074865348504111203745008118429006953197379972041855955695608248851116952816632180330776311473869300883010473903398693383327546590204112485772719416304495893061627893927294719652621380015932991029311478010170029008037666908419419417857194951593241335436378321517630995577644850192486681176398229136463978407277072120125010948525724301561427554935499420168439315496942259280050439851473110455881040946028831823266578840915413879268089617813384814361901725976548638621563448263936031543211467657286816095907141371952358833737311211007659079402856167937411535559878756578557628456715943037664484129896866609033793334216559392872081543177010134759848506827189001245920988345471061524741405575738839918205326783194934146690311656213248295813260291444862855304823507574886635441295755614877791025437636204444376065282774702377360511554480034978006949141379562783929580897132647399759396392358975117486859071160974158550860340290638798855924817493185536883050641975701295858695367338940407694434407178718400986517545117162631800103628860665810825147310703416146962662341239556689584225768957726247743482522305718340279804377951551092658394203563354827863040304431272606061314796199794499490475205231351293786190609821132148756284496703135758130946874293855215698894532269328061721512479280388615610700332477433790942591070988713749988751873707398104604201985080744707211668168438977666307736029835463215220717275996862838407551596139470726444373806336136706526310531349955234660545923028778084565805833952197665734102169496864722035426734681929059415518320793093025095915240030242777461981831095384094756705390682903253341288888698133084190749850531941055423822649689467938806934733340719972484181405006203351463410777882771765877330268906784445626510729399396805696418573607710086355525834280940877672029775558875669115769328322031276388875279324129068330886295785674441282077318740920605190882933358039456198157830556525499408790339784105554285715887080551073578915423852639823892754648019407477540313492556139804906794095281041813607846824614058147971037996953456783752169907014948237362734393755077274965036606589850769483282648245163264013282704052672978094320042210592760911665769174815934161640307968436911648031928864190615826103380758314339531776726049371909757211490463804632715887997916347007950305800599307203867155955156541369900780252256130250617394992481906818224877485844498533788675057605823524180088834471733468269180745904658369290419674735909194825931704336959020164699686867623792277082492400094223343919733230967955018530845520572831199134244359372008291823212141497221245791924225597691368779567230022682334375027392757970691903970355123230769204971689285704165611726222651887381574047388554190705536085911868503528741232937421058496384944422371801088941887992396045335547815288527287078012161880119291985267529209200962119060365882289540294395766884739351364147032498342068656120150435656137115127427899864868669732115127496163857374307559507624112016092590085391474063869705397872486975799911448850636143371339223622585663016296170824016776588302626355394933890358397220400170520750648184257075248375198376664933707597381198172987840091165194025158748111461671970085614330717547096464558730439460315602781277151903198510002208009352152670867533720110843807142525186153011634059810312108989419886070098022025687524782480004877363472703476370449833254832638994548122006565705994672760929834545642381481107666561371836660663456599933193301798951678161107453897388456743583815765569772214543029753161594679085379694917939241990182145972135568657438703252695083190130668246275689746665129164746196635731957800711860242189087731122362422730350617679380447677547891378228449971704836198801510160281865203309695107696826225899699728795378222184671328949070028179271910092826875176655265426602110695028832093779483479128443167486163945691107156411376678165898294295295896537045285402727881046483145547718917106132193033621059414980643185293002947935182158676474790195876293395380050776250572105439594461050877079720716147177990110177212990588693485933057500835906053737831552233392984107812572031071183184936938478009506366062481637842147495286462056541469781422679994888880415375131356338249740038134495067312501125993922884006920345530725274295108619486725356663279359190834966564044492382765318451944288970338823457359495987992516969102431551293859950238268714539471898626838921869020245547630689193107355389234751584489551037751506534922421687234895370744229757437706523059640679913294936585916777276067184582908935084196182943590922264109191460937574060983376373128506865819724047639688922268508720344511798018742229792478012077665031390938707600878351456593309920581866991728320982208465569464077458675082892463218384814477713191743989070233607193544288593427136242529368440739224126977021639129045390648366310097618191206567264068021019631649561388304679751892161041324691982216850455680087195758812467933158201574479331644168332477591694745890754158571922422708075584463075287776661168374755570302501167742530590816371652601751979700543069347492359913850728633128215633565107383257733359610271956835212765043038395161166186805680122019760712136805036150553106833461660754423101652570997766054643989432599655098768303104931729695034737472198297435627503356306235607264917593442395386307670719603213148077937536143850476180231528561603017337545759608375657961783284654970844419419468783582525562903949489575953164461574385617598044518118859377825283781932668798481778517471755296452511168370381169593981520040011615429688014537097356780591440869730647527568223460125214591536684995527383655397696724163815401548879866315712369439157009756358047967454423579674511261868545170159510038182651701409863020963152729100166495654844623112771868420925009389477361284989198312272195460497448889497607290046798815124562124339900511799481605206957602209830746040585874312777930390740388551018932661779993755180096670370953815093933197088063903946531924743140818052529298171389106256447797512248527582368107168825532505855482430559367926427310185753049761862554733473361963057163657231388343382088246970026382084111183956245181302414225854389565294359566011811439598472454079489645940547886255063378964569513057251756258657500484139517603417144047357929797202430142179642519350285435884166822400280572162892539997290652543112424750779760753107722739480871075201206400842015093995873436769615110470525506152154202161977693605254776165260744281899809715037317672809165945950154698906553200044279920099601004011055133172988944686193622373869955487059856697721005989820750345247721556426463942440821046760067484610987676694175341633698432388286858935965193368872803543007890396513080569488620815199160603247124982949329247143354367598974840382291309563574946413072205747463755747294943203475215829123310085165827347278346244038101076847740765652339376344794286707365535904329536362591793323182721781283930595853190189610831764413527220158547318979672871273921101090417622032017252120897176079336654161484425482051126734357396186194834471209147026191036529951015509780808730742909738008740272246937857913410746747058669675840081966078956473526273049861929437061254125929082782479953509950431628032628951558084849974812547726382513170878974070391973613151310051479605987271917953686768874643368519176011736119581887874361368038545380116268608872262914772809749706717679058582912697476535186433791271985188961197711604028519091328917160437485405868803295473833908025184124116713418287021378404726787606698862716002266371781901015436077350012988080815185095417687459148954570807213285334759430566934299240692054363237936872516649881424772914382426838391346215306498547162676661579893700260060188554990452360290406471329931455935817038009301390153366471710312791210474076231178542765333232433633820894532744656573932477877127773060728090767183226279274853530913925703968390650887054228462234098146738654816021355923658746842312368318448502542866475745427377304218730481212705030610893972001340476563467862993468662821063170704227044746737788661682380386636758906540156612183908459650883105680250462717418365462591697753056818482760476199534342466550631664047631489277044570333848178500955922513898772430683995536346292809095604239381758875944346409936278309331361983128769335563928574697848312634660003286287443027553455647157378283895968242744932798055852473792997394312556131183552833716457844549941975819932064200418656016319996211070957823430882832887297071937551709971909718072240469256217182209112214997617329527181116710411424611916410083058105993175558403042366862151360004019641393798387332992104289638022019155944923196298580420741301987989249635378672203652968784931817669522380783562492030678880629048210091088074832190205812904858000243724620924849803973826864862192747987563675052118086484723768148107604524347313748371447753240192035581938583585186519700323550321643398098544750258740722662248027591172295102750425927799984136980164208212690353055125514584617871537376214911847917835267890729429343786175052168276714236232627300900128052541676725737011108049053668133764596751464375749965137476549183568993552491827132607376810620321571722929821438259889193553280089751077579226380447152048771533213874803094933468731710443211363156060470827370371810453998041917727281719321282670762884478247481422584049130021791831650464535427379443658536813144227421244773975354560726738338797727942532038795402611677990609105613945860305708588833295459346375650898991414535972823995829690121137733718357521848245042839824932504702470918366885872372797794522344756870455463237467107758112935852158436337235830999228141964328577322228126607926439123089250214056145797518753394049631929894525934603943812889542559573405541537427692657144250206857121259932646640919211327335094366276458722557707783465795932415390678186638264955561929418084140644739859231899105819579033721097463289575852932322792673683945878146206077312103844208258115170109828328053318539735159216429984225375418796448243754733989662636814071699040823450135586118762735228953221157152654260960785699864914298151735154568965370198268022865991702113302241175151973052390906918128490544612325396582821929585760407788517699003312781376897030030799328497759809246512351330526070816296078969655949999239050200796727939444066156897563145688078813901716418312170349189801005763617306695196438373733416710092238717010516719576067606591381402718624662182695492964981431930444608344602717402894052199934437911975692261446738611049781077114563150297797043308669031939082326319033625039756463853972302990516869049909336203010269750203807997457440233751489597758111719225767735467349589606735681859414061453541609840051200562520708682298165010077419094819378233681875003137558586902673867956855001340749253266532094911573008297075487301922269229676919780469572189434260140991066997511012539376930401728975320023772145263675673295972209954669993375619791497234138584337805765935900051479545520471585717491794620437196943219517450143499312214214204399525210205436264758475401128290935562720021457288839302731527035897525780761682110373229566578222911477799919963247293857368009979322593131572226308367340653078701814020022234409451215368050716561792230203831697521036519910642099957026715393180199206651178848138860982079127587982153117639329974094607608463571900722097199422202706223692346530396975849668028875728715230301226794230743503304104340292624355152192693900251977002661570011246164718323510113770715920171518422137478994364978443481786284895826532861441495975537024520785995766526868581096548979820441344323905892471198393799491407427762205999615308281127869215071967691626291875409676066965050504232007178496010219019175670840354251318536782243720546759529159168652996300484698740650296344752871219019157267478013788977059873877710079544581519612020285073551995060498702018971460079853519586966010934760704588089733924298269357222718905741612647564348947378768018170324737381847762934780309357974333031503505578911544521080868798113677737893930308641878709304490037880905516653866794925474735626599050670729234306959754978688223606334379888199709137167876110962403500694828376849857342332696208887655513290736655379562432793575409209333474891781034439865895113419646039605614382392567238028876923539461058334480468155484842209563855058349694863356432360179347544389495112932126763105200758299384060121542760425491031611647062670050190005478716088244090170302302506204991350880628496174932259348631879657858311703273478749661072752867647475023720605925173689798802331466237671712938878550594361522263432133422122411920138386190581970091856088166476504834650095009194860704763385269240998798208296169694589382733057245186224281039981451866135339205279263677680813751492540969747324569521083963567276936264295586400322938940847569063863736944272881438810549538800731652885509285611529142842165507013750031894911021074563137312005307038322462437326894823487931207608634624901430950588516161372696688771405038448786647962155995871086734581055045995029786106824583085811037412942967999162148865721163138879741041105083625783501176787004394019718701080584751505828400618503343689301889205795928341860309365591462252301844027706344577111575645265108061475857518344319753494715448098286105373896921676466211973565475344622932628469687024464558804027457661348069657423843742698595588533385587146996141670639193870380573558572955628238185402295293620168034239671415674620811670109842780127033695360109344762863209985137815968801197541403442443899976900503372833223471464903514491505917722917447773327187762114487461034942202659445384186892847071225987605582187583134219746858781127259188957134938956380724604228769923204212466240508934735326157016179515425977049112332325014865819806364345487843890947085059940914085002855818281924688803919956841994738214167289051762170437027485718080963517508260329240313545563986339303736119918982990723828641645799047978523240195966961823752908621251555078456546060426203513079124201093278704819920075754635338307714500727039143727020921932167657582713042935506696290221586742722883487753181931181038131660500503646019966602210937986518244384649576043585819800693688893201767345793154639101876136077478585922245019175360667077260598251774148404103327516806885441722511939853456411539254681910316215789632163264330915564998369526816606983121717707233083705946338555487254341126577426981012308700627549544581018881903470070590725490052777201869584968548870705407011136780953017261045632995804525571062286672826168893125705375826185033890165473468890704259060869287620348471439619225483263683736136410980672092601769956245516231899389527948037712791906053786216434600673750449625569765058019484876069915332355533070134345307672692139242101488530213260077478347571570708874845033607277152102084198427721433556915917938605571232054297683962493481836020970914819112088290850425695041313287456276934938810748520249234033273449382880581204075356867841865007040610263704960865192184116241854031101131434693326342264498854332077910734287742325587001203258628445157367565997800132350601044311314415437520432550885615196703411212884652901681992647876624333793449446238380184085217289106336367859490299921027255651015832021845007829637524802355677574218510339773961595752984887045341859810543149341290484058411089357520967546704448213127888447673294996347865012145537640907770273554460351229660371505081453800438835754302361913693925835247311292394048140366858990320009378910505787290530054834974511996191244550119958502369676036831115602270231663724957095236228106601848507905370441737326562846307971004333274471414871864734230251826485467800614063632466795823604450660710142946638461723020928534842619836849237234903228583798743849397852268394903304045874620627550296287453053424614243172466119214828631924274070414869074911156558761436827573715635416703460918104971423618089498409436078677669276384845182925474307114792257862766246832981410213455926510480296068636891372767565634634044164222992528855856330058939838219398917821810368936564477522027037499992544102065859046844654158116427232066115556636439942048678682681287684278414825984651914715228700132450163125162714801465733492680609295525628585746147799791160493420290837478334961871566140224942290706230605215415750468947708980944240819667679898308967358111199315150483422342488701985760324287885100444977365551884568175826218510479779040369151211395886572407700336915331164610348147158954758132154129869931163418404599946806988166596911364889415871592262612558860971669440802150935376375066408441659294310676547858389797216548254200218489588641060250362098259337248028409046936310914899578460364046921925253091630161134885390223543984049854436157596668897562437183720985269053768156945316721691423907976744402614722828007140312901051069178182378445937826497703548178551126367643420102149531063832865892944771898553651549669170249820147605291095772078228055866015966657059821706724916013325108853080953911716880537780401543160447597243764902784333094786292267024455834477722178165054140359112977842297053263135475296218285030584690329991725040676373559844703698671246491916390435148836320375772872715598605497117948124991395387991741411801241454662007255742593806017135347135808329293553534643487489723738897954630049266393166040097339459379430846118903852802351630110449523560867435209529129277930051154328698283828048891133502312007364989198184465223547707140281867344243004121926411974743768649126720997098674541643646027039180974024951296409338440245917143937126144767300493970007980113341545847553350246994273266495083869314743981339140650666721420096920440321771625830557572282525941230190002419537411543964007118448297991169417789881144289717540106658999938622366368366328042621238542254815444009552925481474623608485568929369144701666031228038506495746821959025078247342209184895152441632845022434770658735451310591633113412470177231126011610438436976681670936656502714302365641293739791422675262979474257287584805305953347814010735213232525878744445103343915585342171474600404016616301407107640964943453378764708948733868970869026276615958398138251195072699666223525187264577584894210174738544854403788338713895151757602353602342746049814768454541930582404776824507477113152560232989937480653249002824592073911372224350798494999644270244843431360893375330514648868375355768996561967651637639364503606397741222315629360329591756940066242075475621370008820952858638502647355001290365822397943620074871040661433981233256335956788911108107069787849711279157572664506339254217112776448879198410824028401174335652010542036152431496646335418662017929156592322115416091532863239064932202317677420651276041843083510025787339181359525594429247281019896525927759168452103064832307162849776397388887685796901124017365019888004359924032094904917107682075562372634480384123673112297867770378434200039485874430344085364503468959374987646681720298838929809626205004684878285979826075457444659867148293840976839936641524979498055893892892313508381940323002485671321587534112929807320792976242162486732316603409135110285939509050931180676405076260839100370805591023858032144224194800560969070342115434511259225779970203221450579286162615468090804275720939812052987755237004775788782933520704250392944242734052913714122162816494788319208922295726520356562126634399700218956830334740778011770168290145316306493609010055531576936879353315455175271395060486943545076979408594224786533816292401957766412183608838427110952360269959786351424053511175493240189879634570360031015458408261506245926577905886969327993441956846989985443285913565012630966014526585399946545164803224846721802479585244041119060247576007399309564023479643109868677779596754577174688375768923971053206452720375267394916741696440103908317486792408475123826042147443364013936397727124945182685779353929831664774287056192432320926312014432536020654322144681126905216275175378483476256343242870906017054336524062193179716771743733536472912281109449905437100518689033278945285982877719987526772196351447655411125588612820066876693487171439017445664257641830144645843888189276394883055296413265393059737065784180501417384253739319723467393327506148987914408179078658636005621158422498975813547510646079501582666354561070011799744887773067273244999897692025620257715073992690824377526038053494893566009413563013705060430156639678772142302746536700929694643767005161747591993672624879765896810063004323008642967773820238224567042960302722856930577387572660505542015881972601347553271501439076901108152500282482171555688535534989192515640053505170246324168533431846897287185535631011794587024525189337775509584002179063527964019410918285314106221139854134294684508103471737153013411338952823460281162920247761119175367127560218132228405321689948600839761854223511576804456931347342593600935405625165086285981390446636310873704106970151310156740814805384292071998606189412860187533087630948145647744021727593350343262137011836004726503662586400457491260985695817961814814351311758416929375308077415644027971354016753059861628235646039862841649268463822737606207957895637266590029787965451535200845925698672854759354128703158681195816948960014864191461650559373080308683328855046068627851750069676471349045007516120771548089023042039339765745793677937891265724989204361165644488001745334125287072230865882282949068926861873078790218228432172588052742656021018905646275698414850053760446023161868101414185777138293967896682954640594000732014055156446111754158140324503830424879563812476228688069538944749979016626057132534847132127450836562838183346535122868224326081934622328989910657279524308474480965944309580426850423266622004678638855854916508218435495932782270878331063640235391420965916764796249167246547259439176595233009687171875953760064238854570033458182620542051082985335641870855477349982526851823412284946953120715473181968754637058708604460556486234306193911646584320930233692696953361377100268037087199642868942857897669333292594877600747852345564332234507685004558770573481195669768146694445498201585661020124734869322868695488268002646310007266127941167034494038059644652497365216236773563504141153657011837415864421231629794060592486432132331675204190058506551054363640152872060897890655343037343925813581968913864105186012987887907253992230506489037403350689778846112662475427140648452276418536487924027238234425914860349381575440591275257505727083701968937246691782076878267129639431346342343092714295972606188390070714858442016857492697610810465212167027182254938508799627535826644046677692303048375537239974412261110673138990823373113689980721493679265234883942399416146559606055801612192346404878921695474429044607828485613262893676642686227377941349108175994568865894264958982522386637104536857236675997846184520068845903650563420990923155694288936955341047478568872771013552468460099083453476210395260694463323705081255033932746795741406402171637492681423141844371455984087791508774331763752392749020279017831906103107382641049222689040409238816575527495850355691390669242456974688127447581969378472613983942570117559889581403715220552832773155846421262551384244604928847980152812730727747749426771975711638411912166007860571543114915784371189395538149650175714241366756616859871560419299680838086309035591902940985106126600685275281439857425777236298303273996958475079442251006524858551331760076251869981518222178005789672052874925345272260302323506388821492247975873925547154383632361601671679031549784196378141378012427916093352614731906793323441455639021036955430806206246557228946421837450833290265662276423784425553057530078557603168076661133781567224316744985572907161997973065769617750740875004201759945573055584046827302614618149620579238327335766605987613762089084556653764572978896985205417896610619798094630703263711030125449572251320913579691111389054535122905106687585714770162728272776103483928130356080751310596541504062325394062760836236831493041944354293982523211485489050567925579154432389381073982619259005775567140053264989362536063503269876506710538980695444127864242756273027941686157141557809892427258379373044731623873943420904902006685289161225090458575513847547344882936272191923890208149880395795141626058486457134199896267204577653054937665286785990185306970900837062634222247142462896338915299404641027860056352862476698818418742680935902961784708118527036574954690438574903164157823223042912551858781277056366624082987778224191988652867514190252002848346610357027907643923088176938349382237817043259829333148594032346650854722471078236761769977521162927050351858454026185484781945839189042063412022996755109903536726411355406161628578688216449108249608805909218736208200235184934779148910618794944976729395290187712877435557019989815831543420010393179491925802245126443023236861355762299776354975939552019218517599733892162494794586922484797262341330832284485589304195991256624843049582852952363478022899385453757532822756194025364234487013831872483589801378582653026652506488358571396097406823583667641421776512131812394116478473480560691781078770423497604367953761203262591087935407039442746456134087187536643295834167865362652111580129102627211788819944398796453460028771950122127541336864596983587522935604930378746606411742392054683825015892986613992981182978125960255577421260798589825388503999067906029677724604725826224472553696111212107956426492988244986759215273153866100820429233737054977196504806215770113260306811382109476414819796357077668013570086038448036181901731283185513669483625599989872524223464988540660066548699984051306327902736035044058260185922701004854218472494215411948345117999976620601723430802000801985431595524898998413516464698532722304528996863575515684549352288954434912323243861860816770109091020746899021800285841016845208778726254411591215722295172101545697846834163940962309417726038395826807473936831370424286283361949963200938818892239365920477209929659856455654249738686973898693416370386586208715886015351526317070236878455034222030382154686533149803486210192513631684551884436570843012800951833112711712514920836782368346724578497436524992786663061228659965568991540218447966806458808428691953882287129409959251476884368883901376887861854797948741063052140872113161625545478285615949223650561319524800669876841378215939897053210260140417819353155072305242238431719114022516000948235714391665072487042096944422682128412607788162693443640983886492581523216667924175838766908121346908502011440964659036448029468209958031639212156315090096280892929513805384645402262598471443341112456020481606462968166870570480379555818934649084013492781736212112097348078080922240188739670319747849766839681574986295213583955208178468953680702926627043119982686786010064868484022349801443447374476367000809694406846448119227040994699965753123943952340877167833910088896024706021624380216127958769576822362761856474335235919616857000318894349220463987370896733672981199367504251139929105631346422277974967307028930529043480243858312684943058313401227914276387829942440745038815087672343991363343352868106807793859234233518309351252684724470629599112939833250817826230120350940680194751210814604816714679685457634795528905735671548889930254930020727081476537685305641057687127354507463557634612833417842000383431242722670689977611644151444553009248014375377639072172368699404293098809705716124338719704668159323401753102737794766344302831335357318918088514647690871156999174977624695899100288787953245971585192457525389071491932961940474838740182854790288584888827927032797892890191309251670212895661507476739474749654536051699334618740206456206838102467873781668529032374611658326152287721449175821908026679599987780504567338536485170943661595290800291199601203764299168770452370003414703626189689267996556576701234894168846619908357995227395692210576115415376219401939676220754509598851353950900103140460895278886388519851367034190518536907211842654152544874137287609318499030649195594092166284140542713571863875362949504351314361411777378080538151974036454531678850996433709265933550585272157064749453112338485668218989234223359080844356806772201923799418931963291834636883803115570862733228438414215819913091843666764107028455888356566562157441272050839564052601557338259025320324858507915063663496290206416100901754540082193376323915707149281794070772510135977310513753204431211736909476403867584091155004778389298658433628895778232579233247743460127691606107038349379387306662353754328026318888375059173592386142143788083100565982598711907612568031237483278980302489658056777814413347319362926266167913981739550467698379427213395069299591506720099680181917221536361778709577184143196664038036750140415206302293901661885246436141212189865580523823260044372270757684039952823351894702521033908126099440673021496304563714041183718807387939822206170450920342108925245946535660883483795922643626302058332001769287265743585444685350207126207129710531723778038277586964795176375651326104919053071473170656900283435411492554699124328260162935606485967216348899413883043749487384092512471053464083869851050119220244155378248277621462573711152662364067956261731955190186821478465555196839885692075145626735614001248927288111286696399929848347591683173736770519867173594001624279931335207456607069755263967334491959229081128096035739893644832262224990087416315646459280033246133903932168753511468685090004013386695586875251310084987621693638878246550709058972534471789986002182778275573715592573755951046531493684348393756917248633885450844843585382874957716053279044716049028194223657057054879529952150800277354437343073573482680310524135963047591437924692033601748648225591660212785990287476632143594509973334997192934319003660076847310747418722848575396069761315663192798835844048320882205617933598764385921925347053561867476049112117331071156667964260872331951500240597590631694990869034000184484650220477469752362565114090291836467093642291391849643759920842145977166420675410974342475916321337370805066911679197539398072035149649515353900769108270966614948902350363335758665499811830991987773252028964984521716790333976165491126305135202086786301146098277435669461126863306417086205120292899803905629406207186915011491613742158624141934884863230698553189402490196220042356171945844002119285531808931948739247630003748808940332667542702602835132958925251410762105341733337744441076447078299135340960633180955249710711221566314828870906450023700283005218321232096629915348875691882172653236345282699360749959204447624543764969363029817423822420895150244816739673737514915184179372606114331119475277845338023566861145365637447958317678832861038874770051382786374242817062212628525686036533791196490429092650361742067973255362326568389768141609138091461361567120402674668296102541688364928421831532163647488107802748935426497462369249436635940634637225021455703297715951350377474803131528834792827317149519683848161628453311231296536878139537788700616626361197482986502148754292280230280529690907009002427487335709379129535032580629891097060822549759722967752754815518894866162744764681967522328356414292293266654035554430633330829471129456732418929175579832393402191923839440486487263745767599047808662882843773671940764915688543836762666892481299990298460389174418943709623202433690439854186302486099785354288921085736746456875337695616028788572242338962686896445768702158307497193215473288842919448402655665065128629904232968781985350818446702859324712674021037737220847602861487308395652682347677356754923798848050674696060801156220202906520792176634149213924656026908755252898471346458767055191772691880799415773261342080706674416691635487260569183929342311911249108948669017555001937016122830281106938002217674778697652306906006857381305243957864378702956243290636419010807547997734554422237635346512915518855716077303297998077728153324167780555618026517843747395898595888723882414156700529838706442794825307462979159829647378861228005295030023117767311546618473023628071600984668793880126609558436065897644408046754621786683105649546169719851358283265085310590359500873014792802275463445471618077558761937726185011529436187707874042245779074466741084957925673332113865395477849346875067985780970312913601193020786516348542062859449074992142883329933879230341729785674326373259470433487909120641207654761170486590772377852381484528992670811503342918658694008750777121030368387282876077845905524086281135855133382063813789541404468459386402353814287389142726524511800888800396442283088323973018928374669750088352576202622000835474606627815165105847451238161842251586733390045466670741317480951069648809733370995892310285978293925991088327213593299570410540135767617889147663104398309507418498202602388492453817155969071805307733767446673856349978591172031967288413341774837835942078487841999406463386508038058726860476026764707943210832598818054666706591551021047600271934873353773284888873287431854460566263849219916738406406330290206182510784034016029000177239777192781230603066479943170788250226057295449695268603293774739305514312515835702931303834058174952787295288914518079109047107445393678192505380272646081001225812128433107655808951021571171896369817268908420736814392925133251199131428516951879439162661379111319521222372038252811478468118963311712382309800871924543126539363235290726300534212188737039170867910674722528610187836854232560734292928678264481826500420945777986574282344095950958065571268590987392313757691357961301080298474716462775244946403292075422366210925654644854055045640681357343750821203487592740478528497955001799768877884678242658517821648815586539831055496462487541931135084128693272179325529282030890133659138355973635335577552928356240994790976215012546814792571859154045654596005380431333042517812062188749544739790682077978646602794856037134819501778299579653774785450428020301450897068994780212882298972970679085864377121031785433471430911738508226693106913741413108005240129666644073891368357123168316055906925878631437285160285852763849164050300753952059746449081027203696011406253871801747631263440865559143914442252397135097914287996521146935435489964567916399327125409246531741739249883264700660531265756848164580263810041028313201633906831682740651127241431499489954360661044598556363263608458841389496888663001175824588813967121731213288915803068925948642621883641436859893816389543599939545903843622585807545799542438957205288290672541439831590834814472167533403055074232168573382003391285725108600092134853599296341209896512479367006962575503929754378042089029296737270568763372578698374976679686971417624222735490793191553845327279281829700891189205517617338103901335456512979428198158653376478825799782819304167341629066266947288780020615302073231114868531418983453819661671028800835125526281015739420563248790017606729163479215081756573244652484998398120948484984069736960467061135400761495919529209114845977438320967763479037212060222756320256566005422754048076826257950868110383196731953495405793497776928561632445657819396952763277357756671360300967256456624897921478210848592963218032874218841893010540808744663808264420048804105432178290169576670714790150841303248788538072955989379613526179461308815285695091205183559906307013720835862501868556001237342606824715557402803023307086778379099628517851324109209030860787925287746366478828085145261934061130457898773822133102413750573355362808554984743266740420627854620701923160861893406279710329858962946418014207514453490829227546666022503220455220056345210358737190166473438892690954525938996683264244435980804624515672591559857350482513045137838748506402698105690311381485792224396135986710146245925622878686802416897481620858886531650267576816432558231535022447501361958917956109178947188740218718132687117037889295105449049599264575364688571138534109086047977248005002887135051954936198282317116484613128086217145865868939622351485583342634063130493904579581655625229048379087826173303475828093975789377907624381667349830285485020485855190394114332732684604290294049163202053474285306073431622277247300211538132487106820576495812233968749342989364490612251993216667399836330324653083826717130083571410830819052231917619454911995982334006836697672849629959114237374857862209208567368775674692602363213079119558933599497817840601013235108946821546049203879711642042797839499054589711407526528919335973004113381468240273124182648525498633196980517560639179906424648141959565737542260934652378398459335511182378786630649856479051907944934997670847561763936068308228661246460649548387116510005969946883442868214357990340895090670206683003217913693662661307833933035323092657117925378467007853626874804824157688769261090477938649961448425208750315504363698157086037500740877471877542861176492443810101809260122892458319832334680134395369018351108328364540519889506667976107702818462974872055833817264511056800450641647514611866436305160476675866432501370374704954693189771777246512028073636670996964201839754171195383535508694921281449390922528382652159465204700841712633722707555202145545719331904518254329449014707102993145361258919771124664166121718116638600989534988129478784357265704104250510168707923623890954431216297415473005766414305714514045456716919907863550083075149414197396001470968984621571156283355036187267042255986740629795396569700516108355821428744194474388181582544693757330544526090444522339692011607741856910885889036006079184546930703430087555721169403358964261105706785358706395096149824425708825039653078061807864573851004686377274557802056382592359418974800176955826432320247321500526871222049310651845606099623445785921908349201465461303458814993014667568817560229209944647029760933005601740480847226556819131025037997019069912067929849244249364357370162528987773009181880547374864356895178664310858332110010296454598661341601111720907955545650272802480526608506392999390538350806577131076390669411892832220873225046105970811914872991921356962473498047051323958204124044170960356859398238478538698266565201006464805994870525648526280134345888041313001791801374684582502050827990166853166243808451063195406715090376697869118577107247300294939856609416561096292264484933082057769452409868774481114014322232283221191566664047223641919774010747864892705556285945377587460247203042811163815916794989072876930070156851401201664753825717604105674233104963750138463740507547570201304990636282742926711349877652425556360972903250184266280888561404167372411882802738018617711188319702060359061791466719249434548423625029988955014823146051480608805416224560281027876638766451987332147093036048796756433957328840250809817945026435555528204700378820744932915460434239893302681352234281853210400068627296568948274879775958842797823128832517102070842308855241273641848973190299826515434517113380045061444512223057403623078878409782880329213414802891491547912495723788837571676757785022694119111863225706635522931927360973499398742268903236019400710381293326147860625671801058629030956505837958255859886665019658493559091701029751410874375142421500531227404553376176267567622633939567902902136361816392347885659427541916071402469034815542132022884604902283837499292514007723915536332871420628161035345515882589856243820438982116350554969714646749967444829292594959477884116584092322496719965157395274972176232807579520412220943614357778934513963366648829006820892230788807825713127694282479047320840167712587227083820915127865673141367767099987908808899992864231472021737408930819141066139325440889216765448114852911172020548632206229151991900837970101024939181699535431288021792563426349874036511600405088304796115272296725862914558829758887685071173466119793234023075100669797404849530809823215395597262605383943675227091000283580106016987330057589201714579780683541819025459533714463724783008771010160757311009923874684041309158533375160390550892519447733975825224225383257656590033494154640497370993850967400207391122381845260347564374697024600919864628580681366896936774826852458236235272875211658544117748042244493441942158080943770761577803520139392716736992741173064719985812875259147237110848425421900974462229228458808461002891602833952176472699523260929477736882047714830205942081626580407846958665284450381667937853911753484623961356918909292975162055621517361010842298606873785325688786292598724670794233648480345619319918700662032840879165617334024750520478274554494319714606186953019448001591126044171589772704885224483678976604300645044081502581428662432912874127939789709358243294556054967757041392981599187021978098514421056907665073195860403432236058917830028181278024186624587509349097515143490866178831631111688979752798004466257595981620001274507516836798495849380856140728374497460043309768008498315634738958784111741452426570456102116731278600493183681452562320980439066139839081964068275852060465376416588745192523347372949520474761374986021687352389835642224125605978274263819991912267308717798073501349947747111806857626699140341717992027468522719103508895735630985250257155655268539542034022512327492332075862067625747549471097318181293795023821840276533992982998010291935726272959282109194383395676639679316577232048543175776849114738868585515054563632836924056883824893308774842549511885199178769666816884173318588858568899210925429097863028545710461028079695104725621233757735695402785997164106280498508542855312933146804497593047846196503857476157791495032849516468352584970745415119386085052782213551037105545811307431830602910286204119899260302148470636712097533993986684178127034971353449166375898225431960431015659856190142052109970281852002673737917257007946784432329229796687518287740814258107848508750048555405722045165396917101912069962127251497547526044076557703552862182210388833115854699614074702512375537730883994127837423471863365386201086443383484159500900308392227716829125171716640519983540599109574546184540673614465884812509363884799243127878796591828671437526018890334089339385012543482399811718655830576686166599435917152834202749072129341878699394032959598351674800504055628448062490009084465869225137265707195604882808558579501744906323038703428558837602714630452685900098646467264021198341307627842889488334437778816361405593156986359248393735965595588634405363172660640422376882722392578176092365427049350030852771962944997561303059716002551666146723283629367415127050793813648384932502999602798491377038818375059204080524431675213103727516085129709677072093708148093564861245023547681546514587555190738674801423641673674172890142682141148801311477708816343418414336048150468830678625986564484766921742517253556091456907659028346333390372274597148721305115418268716563486530911150518391609941394049958850269492040149968973745674911093363735003344142903934649028255022125688769211519699479598807495587042486263590602124517426175933744015277260447967325912285207529913966373007012665117762743370270367970634166014399144402408271506848633853982989868585009269125853621179000282927703713885176307696664595446112525559257251541388275651304616073241138753921850943740868508150069864093669551290173825194227654276858334993126023586328056429679511790258810769095063503247037126529578639023794356724426545357611239856045455450444869459688025519862424261052691069003384930661402612301951780076355047570687076713830340507854227219489949206673946195565996310151353791663275802507084648873283852008410359565188374144034216949159284486307244258547311266159274992899335060460011318029509637142490652088099662724511108282675506811203015060067577440851065799772744643542810473669400998677603336144958368031690647186142595184573350550783702328277868085293299089634614434511948508512029011184389705903157390284481918417620065009562384385400770640406509169880190976985482182600540625418692493291566204669323535159586494722980406215497507040090657756420178734235214324966537801099557518972041843022873614756229171347799082755896601811973969842000722381066698367287027463678146700783054525628910281234840219135454425076631433271009548167759212364028292420161521415413855014287534865819426998931534232482610986586692741371876854297986895781843168203459854102300216417516959205472847967397862922741010664176095511142852831095873008781974936177188705455465494106906236628410776217516168679702551849512661120273814166592569018952543984641285664763540733165652535359379222757671099479800748984027303957612869280145112596282765926580847631750069091593269850966133097124580728692858199510430060341124591286334974322901066619790270767801769639903485369075138060955866961304661626385218025422224869589363669203308499948321322640197507958997875829021218484068336040955001715866198121221277563312732034500654303066790359444821552638763704903160608963825281699144501089630699590370980709708941472602151961116984526953866200407493810339365103051367019317025835446399013328211625795160250849514428656057481920267217817197573210056545646426687404377977841894757350387003255563324113871520126113833265688250667113476170139504642726463034992064115975977941654500530378982580024229413212440629794012191760230780219670880501103299367070928054651562320653248764998436436218545203600385755365855817693591837838071044362194513035269406649855694628344430958714093309857321290350461367365871395644982349214672360191437964406829602390317063912608558471021514748391068341992658401767800081427474141818049793413270505291963915247114900369409557953251653987169308771340617952543779087077468914683853719284704113321146940635204337260577971051575666545257489453490942475763713304670673545652471966932434955938210868396301088040933772623977187090119842756254900611674294804927666975980814724026933795491603717958505971737435259705768887249610084181611523779111634272557282293892453430959673936013614786707737927318116330145434006753538922705455170094824891977456310123410514311025527002832305684472483181138628424178870074441595081276636134080531150317762799876875159223810460376015751996172172063650406405135940610938760398051393005443040546580780844355941993543920091340472713105113979795665699961859262994669859898830694296636968037504919691081634014366543940344692190464271360745343743974767381430147340993266105880225756882165940604065948510300084730495313430364821701367366012302085597883239166139864851591378730009608668568074372946097673138076068932862917067665962579331251801274097989294847798014414244359497472961813646869867977340115677757547116590135790558674727185231876124171677485134185201976296034649386603985040261168025967310132671760214634384486208245022195441829570100753206530723239163297662694369097928626157251066598117295503468586430254417483366575669328796122861883060303661827062801870399596234518641082207465286507870807157652787668033698916695658635802559589767418496474815403881695415251466586819088537542995557542817276470159199670958212751080783792288143206135083432543090111833654220753622808595475423422975730881837749981695274291178396299729489241479762023882230385942000552657829600368369261573865182853206951206302431082274897379402970358852809955540389617743756269764117015532019342389139115311917150862119779646767748370439464134249908006299912834483353774194920164997571521963695422611058143232882880296399327551039503951144396340165668526308505567617002992700717875626107095464727895718936332520305241629467636648355038209942099710097549901503021810056185961177256305892135602999096364092064572322161031062056331519298921241570869996206821830233828732074690111983964068738548529994978983319263062546651541226262603324108248758497874796794904756193368589450431853603843303998087223840995979410598340903931331490953118310037541721917067029074806801869451955550416424526579097137786684031178562818511869841672263468394862855715542920988421178532506247391939456208137468075784658391281124632074917392863514708610735970992701744101348700345322544081097897651396333032459425991282508472998638598906235190494472312807924465744080703078840330206730422543960740292893451571470135723165783618203309214466013154463537134675140469920393194836630995548888944239886424483459217151899274887711435798038913637177014143850759321086191413283573139121375605489634190542994271557325938356289395446734708963990509096498101466363972398985955451524049150276993003712241559537522825249772739712551599560516075943309417136206580460988832108583264828034404175151156217162108473435657155091524445060616536721577468869704183272843377186164909018445280596608155383621341769217192335662130142476196882723251477557326097506701761922288736769044143340763381559559480340126085816618547089718414950307292547168510540932810025825551684305282553315677181572834790195513743698558020620895148451309685007908695613378175655501914843752696848076368209152706635549936689505108182479680008399713616138997360508556606998378406295107680696111121965793645171936395570967292760395888782624016436357704214409228917826864623957225161311635036902583070814380086425980870515836938633390943264976852530204391701343085578184939741519927314284691943578884689001237363392881813047731376888073131729257240839132611165641722726120855357957050146554341805906146747000224225117493651023819117279093798768257126342026863402167795779010313050524355728270130730620603892733822303830377504647465450026476473638510401987760682404185942812467406461258138464769728326164347289444825475516810862452717871015138678777658444180188524078444236437656933907756936256963246440794074306233061867482081107945754067865259039729345670309378411003138284562643590346608727813352809801361661149842191271362599199632199575560668184017489978106484425130122711458225122910617685192077127688731510983049185523119872082307605442229245703276374746380605757082388575515570033333422226358355316325700633366449849901426207161339511241139653782258653439658253917586327621461857855390927600898939561462378347007462763041776976302025348076606820034636657118668996896966337779788848407383862608114996375385405340101689433774136788021500371669130848062489269256651914685700281770083657671884743473674597618086724610883075909526129854304704310097090357713494882533749229146319035576547243771445681992746744754110086301974919583904784106033970671813000155997186577301073728101412045233006409813010985667779538378475586062579391123070132317883198586606330036552969463184891423757035965623252895196196069979155103884744465990696840113383950743727553053032563191392115043236536279617188313774199890171909789328521587868356093560351271574792430476544797836641886181494194294816397989739415789481833703943943765610463214163827133264034390693850581073714461411578597377119131723303324963469137798316484415890255768084038051535287349792586248027129543352520764351572901863006932407879028417465869195416681062501705511404888915855291528456447660604883689568619658314285475757994402488605551656303300896660320299426821362855688858941260203308097164067783824302114458780297085002319421079012566808849665893135769120786350401126715135581994458157606590567027717473155982960255708547932836931510234117338942686506096175780374114851199372680746878695530307285782814134259342396822073496293213200448106643104340522804567556533067953541852905119410499508574248451367977319087692200422996068647129152046211898882704623466560096936977586435630750630193788585374746420460590278300645476388538078220690170267148452893321345643680744077367766479778438782035059252628324023233027705854464462963215531302956648377252152444086030990309309239925520287797314064194260467445507375216913473729380850627220935654862288327257581996126438831856739251741858960492652299202570279292217168886536873549142700612374685099966650414670519163422578467056032507824312383257756437492207562406861769022559159545591050369864327990498048467274898719146094947070324631265144358659549959999883325994856128927086928609567312311240604606849750118816821131269701902702042042525792128949206531322939013926273679961697559055725305055960685183690796694568240027668817563900217982818794705399246017465183501295527189235059317141081815404075571068528723716228639745190203171825031980517575191308264224474884437598979179593868255525650938264686196846794921922525483811010715341573175202960019981015210123767768667146022961978983602167669256745631719110797017785302613137020996052519308993903180578643679395634642625188520935464653872715514864750345782926771619712015136981876548725214115584151061104726567112563341539256094231481194749598661354655757769570912107475566753221894177148751812795805043851021134737400833129518632946325478486314875329780108655329116904796342536672134716347084103575316410430917276735646290506568742756771043192714254242851680374402061367565145390744539963010990436578819006648919647377348322509426668941779913012288661542030753127912251206788725818870075013677073039603305161785953422336049166869453021888300981752706587471576573546899710748590965798855960715928438416221432348653054870086067933362903365821012603612431993692404595242264418080974306591607283251998719750048684150888097813743971344105351496884032962104816406481213950438255000633603384483679357766549546830004530216925983433893791225042280385967825339567945013650878370561213085910046524240699215703393056474430241340933719745511560668242788183075157571168180535694460498021215588955033239886624700833452147362382933342477663864906494760995826369114953148003420623564030121792382851190664572147292801855316607048793541629755676311994199556552380434755656059140370862540318980366575327786733485006025316728585338660361123736294755691645548930693617578180697260464380993084160269752138344271436451885702161762984670712496476900773055150652539624019900530804940148612846704464443718517885479314449661886716246400419850142596670145515176926171371273315996785286298032546511882089964191579114252342750080492702834781689217595024274842052383412070853991951787069593671541369917597568647755462045545658992448255678755648630415258213845180079926340415659946419960599226776662062379020782741633199664199199030719407357222776210935091033807574923134053824298695707182852387209869442629204105512181524644055191528702522686514308434402948206597583187089687727204050845953602391208477354179239270559495024459475522135548086803604323571573584670539770946615430899846807596882875052497559935819879475705662048756641149361546410246109029824437301589743871437088900728333686009077048784594553670008899701252264527427842602455967079766002126014549718373969622837659735099962402325805022683065336339818864970374567004491120018955710640599773891885251193172848397438295417729837964066696606621422929229044140789686717429122746970734280737959973823406397515433626035084177010655368620429438202506547697592043397157349770529699389292022535884421220523508511035299063480722300326054314769229847019277472706472990207178367615874221985545388301499503058286696825152189609913138812727094072227510220313723253994117457110024454999407377999689696952393695329611752154594824360857305165394177851281662379048408166516214452146417005500039064427944857359830741207212228458322467622100867023930034783351088962027517476812382540544541143939051410641890989558432458443039954659158315083320144435686221948523764046873596901320027579821488530026141495941987310395403488033297227643714885715011881384202979197818790257854295595296798624893666066277774837850445327632269404923179976384314740902252074870098065412907534441867029525942497088780542394473461659849078442026981193331517024654589170078108221268127608826899096485132846800138892019756484349505890051611428930995770652303709380502431029395768364294210831511076190204372125109613114731368151551514342533277814973283436820573469436716763004693293558010316393553289519210365756418932435225093961913779108665666848262577826520542958550004634895345392982286724763819956555323196800233306967316028939793208163307121237697068735522222936264732430050974135003829551958874829614983773571292379322706887518418294633814844486108362710419221096200145247322627849870691240070059787028256621595399843978515019938454371839792205630253906807005547885367598952137282910178306478835381254697333725817044973960752936024080108643931575172116892639367425273069735001947309805482470400605368452351674698847588963266338251755621141124268238274523349550636328987672885750668154317689372931658872371204926719046980603053629131982686460667775738967975533527850167214265277603597102423377806972167700672149580740790457305591034212921127513190939540539109620151888366331378188287001353124807489444648512520768345701720892716602567352697562561940092437686636573674388341767058721059334837107403110738128163057557583062390501194100217569443257310354293552844506101019058310787860254557338411785729351100271435295172433706811761253468482961912959443024564414682210227706388638202580834071465121719220050319998017998580323851748662525355234275840084417309097649298695247182882388610799516172158279063165650117656955529835481415280577056486610240071513324372723166612216104331107636067447644605521525234717059556638060069116573028696268070563736442607250518015612616284594000934160134157894203060161785749759190888178398719372101599814298530359101674573009285864319408307564032523099114883431060873087364394700077849741176571029947269137325877262926595967139590348011399067737425700677178720097399418912373441502312893396333669737580148026085822039401472839941816087552835593428936571851514411623992861029663654109686112491580557608175263612165291570086993840589394859955323809943256231817520636749511253175874030251541023669461561670382269872498296015864863019047396627193551483051191700767007484638185481855145894712107520363209020833981211450671516618326095639132682861813207739219847194721963984175518574933175295693801347917740303936280733450602191272483970957727726412535152596145697075101359009444113966031227672178291427863293386674623993688518395686526911981638659752988693580765000101347465153157533003194317137494410965472185202092469040361864263133252691854354578849752011327911477158693371048958972143073962685684002763225471168950031413745032572170660735632556071388152525555750205705762989493674857030866075269773466718619751121165352653789916990243161661850200834007289287188914625298378306811584290679701712876491044791169105717676320222907142193088862932598099185882232438782563361612949436589734594837338076145746953514054954851322805969115623432434153498796602919224971856872320854479986958288104384967707644834109120897467179867282683809624996541972399177623739276284873460290115741362724295114456932207245057030457380416163936092145365019389203996810115770406393227232495397794972762476655361128898120536152473828007820281937539167682695855151024989843553854650184318792355055868976435053925983322326874295975291695724127063818396955965852838967214469421445179289867974494330334458007363029664887768906272697580148731213289534849703610583372798348992081691042565389376093075947434921295771937515133719132624575285568004892620138709795454826794006644301581029125521217125354472458956582735191130199548270898569340130884687450348243442328021729723849724471498588760827314406325455562585662152792704658790831814998098585034230090178736478970689996908326276382451233835997849929222397058929357876130664976708219518864354539704351805887473405928030378025136435164791676344971343326389628149093480866840354049652025775371570793152172935796839851660586007777442719745366321604979356239910505261055307756573074548798673605609254018782646481007320814977844298651482617393340586591939520199679423042725466012402430108378815741094784035787823075753940454219920811140466970424187651808800790566304028704125771301126119155445398218155067992216789787734338479330486984360124982536697433884797034916959226095086184389276027628173831788341750480793482703754250481794953189680835127829981544713136381464813861127802259367536119077226870336758140640731894372873949905942539453621364663603635108866959612755090979641393201521311318761413991918256414941954333875920062503363525592175056504903667079556021528688626268507929059355752229766632616457890665234664169236772497321693295464899897380836491121412050258530733808786562234307481863341932287170367727480778480496790529783893118265100586759935641326283630660754343354686900342509554732361993736317256182708019318344559374972808803602665541461515125546849718896020465964343331874912361640009208636438448455107410135567375628908841502339275071238414312268795407759381302749666976219426596915207130464243695080132133913899467962069400861316334337414953967730141643337060090487566182190773328277238278242512299050378424613841101368165543351549583101932079730173930005055052159478678335239664084652108294923826787108670805833175380624703439569479441064581931345128966115145378979389096858891275297500386804804863491367966845335378321820136673398284946845764128983799605023228928766566586154935002977005552168160448587537305323529461766794498194781089548339664623449516353979750929044600723947947810970341795713356522761442565563828837043636532628095133189830021481179801930339862782988536620809300836469875690733023549606799603914794334404042326691818055906560885712270707268224794627950065622506809705892663616090476211252887651820029871438642252979369437180722547378192503775492027140743637424031594871368459899407163266997693733821647819552862070654431169585794466478754231691789330827039002311176314625262042362829135867494168602871047006225941734823322677183624750678936922956994847356739358281710123009575489396591645255997964249612180284189398363155926178835962997070726540447719960365284172978592806181257950775248777320987023257435378199905267830998691906075046213012502763921477863445679013948907484182398287698546852791366121500132150400291428877212852120984632566989570670246416255912895388505182694533775983475509299249144594945015733914382428357674201937627639936975428300048740671668940870850645690399496142179003495527788506819142012218452014898567578854668315421574258690461984111016012033971216687595726714645521699188439134381293993469217619776838056541399228766054123722095807305097830762707725554085852076153820454326437352282276912117409616203482321496932329302924104852115939209051291086257662071955949799987912388991622266441681926554415352442289220312735794105663135323276895614401188375482789205259503445175680092450319189556082250095241564693831439439152830037728868706813155293756652392539862951213517472197615217405396920782413652543501540636473291686352361384809498687600659507490285743197164020033587326428472746948166035116481433734023007761014678798076275999060280079789193101804457333331508410856941866767728551711406020861726091190195992446562658488771716919312473640059480486938565841777122343881787116641682021793071871185442935621300738538354606971600902238060777928096851289909529085182689413256938557899244761089021636847559454817935596347340086102615199669483005508483760313066784767557900725298606074896336471382731502692629360471006482954828810542252176930374216249195542432899343019512644204975451077130619535913956523535272570018376784536465629444709694265763496806565526220950484994220550608839406978558528656804045843137751354239840036676916783476582548257835292008202592842465652288161107228842297975070938983566569787898975376749481428161461164756289493453761056075532995353104100872036175747343786573317507810356110121346507470527504426285777001914342647543097883780020028148791866463319921729643523851282883907962738323731829648054107190002867180470296417002487940424866476947119708970952657639567859519098734720432575800658609514959378575403873574752697970286224923843873825550402718715197965549674888974708514685953848224428590203465004642838455334751758390401159127842448010979856253666477464703763089987135526260141219786240986061218647449398252008234580025031387449067443888391255805309601862453768789193039369263489604555891191610518900967856010372627628571736747423999199610886337531701362973062089838396077227864141023359162478383196356566338091028569566933337903724209095405486477937703775749086850832304590777814425321554336019396349958305595065532436705758375421916186676811488458110850491848264988804954800674767509688392715904254034706777050169092180685861800624357601121024350831658085965758867375950735933380394143803397544916275951492740621535765630063813282578478584407493085495374524082720370051909431517271213714490173872090586101637600051719954842346017405046053517383913192210081634707461126273391417352046947805331702139960347574021970381536636548092071923107280454599031575818736372478364905664484019986414904828459519983136788051165420732179926890638358354933162637286131779458877117131301427195608875187350956220298709678989440688637223671014086594090399570792767490075738184394634643527151822518149830268057004950819330660247453941941840394109755513519463047513349265170204788739964497436640815175960755591698683753513314401641082594227177793727862840371805685740701779744726175355171821150769017731365327860759102069138837440424770528489120111447588173180952158558591498460841856446214944194647207135482785536934038587272813793880089301939895082743189544611032830663032188353079208721777880638190070392813166987832295196880447524234662398997438750933803982708599565130821071956865414596844872181615150631232273348651780321704491307158792297735549266406769693177973187976588845933625250137363055143064177714399227615192442202174843545997159523130665148347579794367983689148158336454303668404285536323888058138760828785654686044387080401285056823071618863890937358658380252093754272126697603730570985407504377278209764206880041075978854455671891121563795338420276752465748890344852896862707967929642032333532601238665374485509852586319983605892047515788644983684527278989930571766713133965394201055827161915446126934532561469296855435305852143192609287348956292812422982065662918851301499162199530797610797893844195699339835335689511559418564097645390273383041021033030943253617070151413511608880270967631065186638428087770607290895548587491513666475351157495242275976343449111027598031320524983357307093789633530907348204172725627179315670923402967880928442735042751048072544727673936472825920888586084526431541486830204789810442838434880313593470232863256831231420668441130674609047662821844179333382626490015915177046565070654500399075701960008262006436998704919462628104971874577858209580274227728068203624483368093603789270534469181951209106553968647867199754680277289133020842645927693447861999391214479866499142798735849235132734809633000971982375331719767378636784145060343949704594433607925173051148029322435550313300830877519463266800041375906009497621354850755872634765014479226203518330848412001966707317882496717845595095524209924024661246118479697963167052666181183470406198729705214366316020745782270966982513005816449351361719786041617439574287936406838064973568258198376146750667219372738324448155677245447116973617287620148169312199558848486844989629491702016909894060275597874623579779001517907108755645662499784004937613647041303112664193587500103235080974681213078337672895728574939561975443178042743545732820518483160789608081672748083697106203804033659783171766347164425219012175977558214500133539895141749174574856229501315771683788691861342222243363681552061886009316365499754364860414185413434134808320759957283346306134550178342880114392314912526003354354673525103235185423059401864954595530499819033567933880891976360718356900615776039108725666028162107678579442161503755252266890590165587183425201393644125862159993107217535730585437491520779606127828112992829500226534568051965881520981951318641101816248086062372565577532255892736450160872888129936515826031054444566827854903113372823024177322846909851233113579483068657076299340057614212244268668166752694334547683444738058158350900880091819927175235459367797942652627917134503297354549466821517953879073697404656999873786283564286519528352615672860740851012515638187323501581660845084545080716612314995378260640605968021575137867968460781786972860816824677598209172514456500643700029001083054889629817665150258615883081942250346528963502111951305611748445887408933701178129705830494028226395124997624006129039138543838478892561759029492205616248227830549805100978595645724655474474742157725734828906415344995870853574231104235567600111603470124165106870823664953674835967489566834253541494835124611220462659351158741700316563751617945541532869520754763955611145362541575115864550459049980672777304734214054868242180605793941009638214084050387954882999779530097574323085424671512608513092560076343687498420189011802660551833712608792870563198301063363664668205561632111143068934629641164739598402241493272612276476114884746517377822519335771354866253971963053812476448539973116662812039846008195294022761462921738243481402756071808194297012002030880059938239019757489283982386464708705317068118900141868147759826745329270281244290616708435675307804317547777580313310411399567636747875257866012403503958905015370919490798519201394381985020046199956411705935014662402057736360517273988092383715622458165795833124911262507176516876938371198889685436424901699917700004928648732699185413204193255762030360711591976487974845680904135197403211888146954726718740871654695437739995780470577265704628177603137754767089912263400542923888223265019962216797814491030677331466544121246727704915712070567615696391118892541454974230721944770416253479419976832228405039743303552251144346268864518755964683768386556979469567323714552146932318355534596931105952983056923564344310750118063178578162123509329689192150027979308611718447438606974150259292401857438791767318863890322838342840681791118276037476004511259377738779895878200262448126455767849927737955459035947301566018120110808532013409601647410177251057161694852061017808867594032870461827211518546470792262243305492265113948764822702342917499952778163513362418122195672993437284066661050975742640962983925842913340424219552811766538357476600903174570951859593882839578638926249696019704814711174502390721587959399010737977261249573575218471606194567413914458203105832571995656821046191151840127736782924333635725696014844357462955735530599362121522792011148168485913897562506393655050226615182158050944588055731486464273971528844135948959255073580425622286417607022784247648806636786182318798366735072602586293204979148703452220715764650864960372731591852575269011709479736398793706325108273705542213122913618738760298082393616928556927408623472862793784019818612330622870152901680587885227467732289112118454777220334355025721908118263514899490867690018642794866305637589505657671898286607480557235821012687696938802103035096502992372220755969914265879882887649995146388768542060936345816505700697912916641850023134650919656565922767770094850755398710568365325134635857730294293494894173373701277347723761231323113883538762939883524754242043981891749655097887475049468685402707758187408569933444815600389301331724614212604373141630153307395502021222677377570896444167375193719327009972972735876948664062026836539727483558446381921443379750818902896570739865557663391005996970523976716846648211726188961348077933165648932832674423965150819693297115366368009865390203886457977653342548109090450510015020298617814857130270114919604617029870276458634210989692789009654772345963075821698776638630396806811222718527886123334046451434491098560824861310641837233303183810153170992212663355048611438548737887881320190214905717731389127814727245175627053804758626918934204205696386300255263130998495881986871474044774382382801275229718657126272799841423029544149819118685826829964892665360184876681479134133778692975510183698353273515369490266949101662096757155599967921174306701277024701665011959037336608311119297164207487030223908280550865176615551071320744357027576876822765500027187608067570230339137663119375086329108481225978807141454014074275702613203587032770922101856348774020195757903874156809227886534112469561504467264667613481761010851619754789019092333287824585552647480239177268446433703461031201916574043416836818679253070373438375294055130176322046894748598651610737800231211465845187311008578386512312580153708961814308483247398385799362161500935600326567334158079092116458010949519842454209365332711100369335391158507273288710265712385935031463200166673468579312363475856396153543668481119324814916288816741044643480932007854803849053961146381800016750696691951143485951407206512584506525356339975826405319451161463178413276060536595232622574719610522831270335241897489674346833950751144497734815771652199283135780314092717115889733323169950903988317254704100880414233621918123511665213511242558285354656370864532649146432409275151679890503893313336626434244865709542314314754904219433736759325010596084875933161732132896357462914866814886771423285918055859731820991855073928665877771006704057708900467031619373043965456284865606274523720196360375282165572578931280308494481184731309062908693029065703890502789535152173269925580759988077023127412971413499495194262084092748331152751303688514931491027061143549944869546988283182231024759524584800661526166170739408166153919557113803241670786107584259724535909394868718120091869366715958292320773145046552667848537310859128755897199952301271102013109104766919602720079521599942272030739299352284683292985356915262066467991776428622543059487117464728826225658488400698067273671954487144447676768685914674790827928153177263323673503792958215044202544740403630142951389899616527796275992830456540341972811051838529745028332771049437416450413145137214640452655933111267196268333169868981011403434652199159522242679513929940333462982665970683258266243206277174140611622404455581531605587523529861064084418037087769557977686055721277286529361701943006508014226812010579796597117376694876261720592914467375892789610505770809727144764585639272532197211269863756992700826108700313541960061652788393155768591108900275292389706660875856801838313290104196317569080110725558573860432171587569312145633569063676281164399418582961296154723879130822052060398682309101812234058010642049366705975834043446378425057531447199812660648730283415139114599224718903779615893217917582607296078124930272933960362860010456931981410076609571057589261034183254310713964992606737050219982305189434036405321580312208921772351715416199229080108374043926328662591158507431561083235866511003063478056244737425961678884919141531712990972495917306698066606248358537809281516282896582174217509938534982659744687839502183552038215472457769725062921164640999524487693187660570717976074010817981489205780470106488224034973955045843120168536699564130055197576904821398432740938272050705137441394656053380414630635713219878370528131807744857594580365224211600933293609502005273211612998898917815814677252923536166137523116535171764733573283874013693359582098261425922799064788549072191827045478072856966065959696583498096494633391260102453288300056690234871615088627330839223518535101186866983890018776779545412275252614494518166422276174947474098403603828474518132606439897042021283215371241311447496622312890293422819631052287435219724576039453224311031471015802548118168401171166610643216849670834353618367260553101250586490918317219542252186111009798199060631109979258293208435221572395301629636002701720217898677163156972536609582674952491668862947111762363107427832459746137488933231669777506760196114275446831148599825618451802877159150839264406325848149289843983650140737247923553886262942480597042702308764683754288029122702690705815395073173799631943542836914163974197919302039430186071051429793928843739395456852126636944217193081069286714577641667799539469567097790267703769913995377696860314135529198502114078224073340518717374367994369778123318465990613901786278713951600921957457868715087201126701393954979196644922261798499828152071877673543178855635715648610240232235830605432455257826847507209207384599301219758116974752940720323652184057672690339671180002881806334133238861912500591447748637823654542217937396490352217134981963172638061733315175958773046218495772034764251432247283441432869164353791347298992359348642788948191858622824528437068791022891478032557499289522039696341584829785451490416965862985379364404763989699093278441480069772903315986708597234621259175501257674870321769403226916411442995557204260228328412798695268053574186767873911804530769062702907738629515734972044582675041914843948243225897644481659198689236585690763295704697336308877123541156231011578661743185698275270330269391802661023103204524272910037902907016988484236707370825497403163929639817887031912733505311315820842699474257819311809479153449354022024519799317046256332601964429661551127780494606915920708439721370633561576984856752461704297600554304257647914916079553772291799922228391233977178383099990916127842657799742089959681361814530931052030249052186615640616927209359402540112077728606710549895455555563156373990329749101553120119937862573439520758288533558617684804524485684776293049899878336175753809514406929727160657312658543275923612988462628190063313801058677987275228259835750735881455340401451044269939489772050914017119488864681536557420656664055136276371086989537611235661882003936430378470762987365656976728091884945911861571195797711997683098715988145238838268255826128692362935946390119479681074547219544140140419158491857921988854036567923578609045909519719885461845097260667259513704527587016211446116501544034743949579935267271226587444054602334089010627768418828262924930331498436333183077752169463625310000666097471609821245568077350707068527067839224589249762170782039582063732447824432161983841063751751445896729378130162589297942339975842495527778531120232698636415437046949258696250909887801414938187733366769068046628192932283528613994670059550944544826713223217277410408482857669329126772828284192389325534748886129043464609665843277101847815209728484828930929365846622730131921850408975755708994966073149634859496577053412451616066098545623719741427681681753156417483413714481834456979029275653135216660286899741114075916097283428964153332683185160875947267658275875115431320555338807018314719743719073309891480222198813552786219396620537302295499099522752839026431901415690298293283476773371611545828314196765301889763382981957216473502621076587149256470728234335039206269291311748036139629138403424423562117455275820706663709000161023386350955776727573365303337473377434394161044106031398959505231156811183858477278436618798990816644413123577859956412185697083187677684997620556412423649415129566344279576991980047865477132823954942642603939970561060631285169348217401455888069117934592135660755899806895517145468894067926328281798218969641802009152696858516984776655714582300220761032060948197755780724800608643896732385745608582520453833824406675171178007286345662494081285785433795884022554753516098379822849644615015814743223649527142798123934066923897243404460348110756048475474854181645186064021849691968844692641900875282798396250733595388989942076841166285128137262825195116632699104311654822492292773271652941770500119490779450538522311587812731280566005859665927500620208225751143571973088165111772830956787871508046972412898624736141627950560954867616575845141211118654959788346787327174440193849276165684205065660356196891763130284254203465080778857563107284043232879112836148926716775382728346141574706514740654864357324505006453095095120594383231664509101470582668970469413786421377299779951148999066464295900272111173499279125135496130606374550580344770191738506963814054373639961674437520974876470085732802322698912386891739129609005838346910483657622725255504451640761277570266154462568581075627665624954972985415194924714632221894302300949406559053909639320420511753701279190685342404723988924873430794686457566887314466898850907764618788288047248211158272654217860409028213937968746660562747943574376575065523463747551120765844743848822092024427051662657633220786416024287713614897217529039508008304984457433504201212161298189731221183696897254346962987354803470332289514231446812591410733794545989057594023864498645798437465404294266058881362010062726228787790598897190720066020508077685377490595823646181318925592555153017515111728769333564729382608724402008510477531429931793302184081649177948000500637313291128266171800300437694713218827366487174307759877749590869816709478073088382732863578638413305572759326400141814870668390631751919847894575348670287396751978672946427522489888596636863375475913876288630351695752793358926127113632503458166464125891459584470035192898308895708869838359107145430301258097226259172334874374843078976848672773886727372107976975951429401247532863228969996343912492008049794484083252094104987643192661601899325281087450721867414094369939739567784000605615676026680441463481872795666343219014197242222560359331440876414177903797423529154015204554154287871541318129164754551002137526940128191637457864274179855400123509797870167564603546526675601889535125043944775990596686433915863259765008837641493233355590464899986790308895053008971769359613313157589378569465695196147813251821973871013407347702021734724112827131364294507083583620749522186031953019508470846912505974653732091129867031362453851996407455849797342454330117681383607556845870428442312860128834303107189175353826609870246277697638955093952230596635462775970029919705890826861203955098224304881147753823198586599212947211264600513134261868395480736557918543538689262766919236099296135244723956978971099717602442896631156821024787397875254247588744045301518553811792328940436380337172120929659400660598884951303476512192144509525189686890370434233021878766346756760680990346420245928892888426186908246740135301827285767337039081969811505889010659562886928960566252781901115323832621478994967777745304861523963390501580358548106191965526495000517982193239661869185185481595062135189266554099428454502678948147037934334522877348338848727958770661990506663816177945039480444616345179787910426545211826416080456344539853662227358252300325782390684853301268174556254703575295247170115034427299441850049222614073554450780881653427367884447561554557122992519854715469444040626972156357705916913768354289440524695867434647611881861742115038088654762121879103722981635076740861717746851913418244372179990343479987947031560098437442555223216132764153232831333358567509682033935902993668982674004341048917143990087656375571095688618619084976709221023765749521379586484949851952011660577586180482392056495160540291037191893808320055190104625973648668317661815205354767906123555111068560349535484069770208247574704668590567935353553776273700573507030766715163593433002008466762957229614592938953573398359956553252799902599938962566575815292337119771406933483212184789675609482584927476892106131632147788663996683258414937896910486213153341693862010204898870430759478444809138725941796061096057670567024560057385229608646729233448535928904960777932018785830521603981386614345406636522457526222346312361962963327475275759426621198825839467582726644347705822818853657145784932154123597472972613826090566269706715214465867520732518727146985368201836365376095255584993445198630643394785915876330854136760032845248661791010568246510597298955155936738360769733265141434926677737448436375088116936368887070877122955887105495162912453971585363460065574236355228723709460759351383753541687552695157316903429565580847356965209929178962797400643157571202670850300552683960044836306073363096517456773890986482376977409847628401019206595154100267732381811236109959499150936643038208638446813891886200001290853801823594532658356481077634618935085621140434160690204807833644764217074050293123940206410050438489902640092965092594447650675720613468478639832398382053373085641748784665773318662396384594141953538500598658326630071621918951308691131985291842507641910781367071251962628594621727387334824411396695870101186002876620912361923758779511716061087090073922287930140851108532667616767983678288646999450433175542575084457012483852417235123594286740554400939021813220102418350674815272500872903418940799663631602371296893464027141633620773183967354623473708345163109823984937274252045382618352317380578808491297616631953235711070951199816773128337944776494613678467818720510720538254249475752948146723597720815957638627859816813240665536714340208044097207769217767093357384135074414646355414858733679341756959797411632316893403513271069464911728340338576832255559026995045398098058116329113925334618526982103394352197447740853673481346564796631643795862896650592670065810318884920156632852472700468155407592470777979133523724625666633480798501072996011982406495886253026869123346143509481747124856975979285417094500911092687848675638131259769362914835843154460563472966052390563307415941036249896814597312476672794093394705087700520616567060364316078559425500326656130849112896767623104519821024607046376710586799483703411838985138802636400520075386714561623195480623392500658691179075127927635333361185989031166911297342013839308110759829672566079040261190310537050045502172750118398295164560228434526486001906999915122664214150081700036234548160217128698995334872311814996456378392760539272208167726040562859323809344450966444993233543633067415534839122593191095176542348209510847924098989730846870769788384546665166232858503206667842107821002437122787499103964456376054721836738277055726743288911146864880436349201056992687322268992731886964363768568813561840805141900447934975492909524670961890204426018290678137017210551404835543819810190724496151543382991625185041447133077049192380682166872779445987708159745177670856375320494532627241787147323372511583151735674401098096627841842664887101035418077087594135838031820039934454190545543807340961102701514240110691421388373712166997092442002638204613023264368544271119048822294570761518184335980771464236623208719073605201307483363817831013617107057861543230979569546493244023531856157789262480803714713185890718445328209530209777648530812669272810658443059686475158163326536925703534772336464196094962305746013941290154113642497294040523628865223240954035433988344215222896263149063750343988077369671085140140714312437925986745301050110042618438765673786455549334884784601100218183053125216011735289946246682793513780866362225016584068318136703223225425912317350065934796178019410549953945612162400119475993207670950700170401783349941052804232447898205777840545502726911301463056590356740227238308375960240364482842021941348803069972512573077320501299096792542518706735908481883325132457752255177718598126621482038184999396668193459836840239771345299505229612649801799421256005360422239094336910865019930907025142158832677204027338672350797101269419298066765504364718084243027574659307387575179311231933578728063703738875200243417194492542443388270841911095316225290399336226903203026140798491106746692248214825962226995700308763272756828282700529234320039281585891032363198673862395968665740166370051516619446133701623799712326746777512744242038908112634027209635104861130357055084803901845852443401769774656122717649200665894454716200967140096266839221015151643984034861431707756216929992655053750107575870767160899127089737168430634149928330583378374631836354624398765077977791633681300432103450274708035640696288615357269175417708630385833638665307679883741308312558462580172489541762654889121085137745109937186211359044024632171142986821279436199512297604657027340685408104158176123898902361083691451660537185169102726998108286102884515631198419613951381149906949338661396100107056093992130153143776238524839779689909933996433606758480023942299065079686290673702522724642223087205095934299970057695517878493268352928324926265044096072029333422905840745171830394800896114985806954524745941221419080704019683304276377301377369949953587078422770960576580011946678890379315831417356214827920489762008190995547217241388508995240690203402181575797103187121887414597929977557290027303327055326607893720577945429839455923327639694969226519833701428109666989281634664820281767715672525079312660652089138839304961592240947991724033130669012167651899865174246863778912232963960375364924446789662291447823522348671267426618327501611812607846101024868311056461464569938495093082792252199181895418331230372463074118820617560452823273237474778141639855816998279770768503107880008953197703036922065277923845150996239191374818009465426009656463847531753553553779261284171653190494694629361273014582260318504893716684792505414128662908719119014821245924046345871291694244441340197708308428088790311906212134299812269285599322899125173211154133990252498827613391320636664614025378005759007693401801567483236477863320481059165676294990975236687304546316304709229450473627723400117285593390043286393755114470143360845608196923049547620609511659529962510157967850239521071263155474959768494588418863613953881047470776256817019637902227923752933909173025560607000937980680051885155255459934403926479406553687694757918242711847347648897425743184450554909578139639564160431996751136642544274714868309506615604800140645049914750481927928944992890783595742904640473169050969288083398148422883472699572954426918436979304225793441571016417623369171792887178691443767058199206223164801426880413268416758556954170450559633797330997256486433165781652966016679870369598493321227857440615714280770460424499450427358357446227778482442871767372827238472429776897519722769187855333640122254800765072202441870467310421271578238633683925802480798019554408515080900267902621755137570548091487960658688616866725403149306558001587960351501393719679099454871205371793745438877549845260115763448392537570464340982116965350445476374597615392789702076949636789902294577210759693960486882525327034078601458334113474992196155328931085068543066544785878566529848057042159920097059715112982187903689892106707302004390679034511037246631075643929349575310778381994390532254254158585446631661982099340371699531299253131121554109374189359146490827230512373225417781339891746393346494115199089481914242049799387450572212065589150948564397781254308677167926043519110037897749347449283542697536276456692461520845667738518765275411920594432449909939105162413447237109939104928914104359921187326076856931924799971345368633698152221508908430796608752400849868908455606402009183278089156036754987028227000952472031930598081635837570110427667160411523443253774822979184286201339452949215840513460537748444413106312979844292936785624446730825423199190444065515387848866191158917862538987730901373224621354950000380880766947382360221071420102490551499341663698875707681935511103930769541049684759520974327465272986606637233299095431430967747456320464941734135045393510027876141361460024040239388117057514435554495720286030080573695689777987127881478239715306915038538359652809507632624322678850403832534285170075677557522354516818135706410006611249434081660570695912961569638378090407156638541669447266225128887957319328354674052800453827830561273787023513124376667624953730365776723962638382049916010728197292881268284652861786751318534373630895376005449278264343532569484588596067439165307841666183286768195303462209490963418487531363228739156748163311234503028656305072665761582626152118377726299046554951512066194235154637860785556292300010350701130138139978921472504487156095305645712615218440885480832858740679070636582556603072855452252451571686508805452475527404225734482338252347848918068016623425198867604309928273107172772610852772461630240286790843038791228501879386109266152243948282144223549976577170525854348264358872926773296995063092532302344772089894983164630406692008817735266916079728185207418692419249904275046067904935670432344556831394684917895898030169792255592071697332158544264582149724538058547669845538734409296894027163121807481988538671264965283178542638614029324701852480355563571796788348865172063026805773548866841133956916950511877388158039353549608204296870704705240466526639715137415843975545120181377527192220146297869377382420429674478125515925063951688024242943202127080884157035397049532937869018662738735059001043689446430624432605963605374846837350854314940815359482337375876110215076871880278334849196982328730404515372366011137373148788202251987653954708154093867186281325633842425564870881010327558888086638500763796517633152980798519916396801995857055795030690501834394222188929425968776744289095688000461819223478115943428949279618242890876025387037592184113476629268967472042013621395389280981565000777589000368002928685535191507415712908313044262081820115016259349022936344480940099483276937445579616447919751543282318820976662557086266818853735307617490911327801005101606394063629108505120372398633696508371636683254622133661031961515844717809521599604505419801539019074114221494585137451160372392142647503979325529362673652356395166193461569536056844830109833906738377329236162461430054750176332243999158606807493795925813339988623534293356101606207708004227602408225622386917459527273541929857663889307852755789534106777514650820032719062329285172272903350104803828079892639356884416664120379816105473997132365222241945738025868205794814324790214256172728223232907421984053959717659119160422974727821647204213921662991705328252728469100867156302779651844790654493668089423801762118909451466251845669345134669882918928863216610436917648719724970283246325088806684479284462889016545425944376433241289430520502592018442697638602705723772277974038874304287244025774814443250190088115639228276110038741350336343354714201877613499841532784372518368199861266921557585971254927557227930701172716845421794735663664382512613683331855745517095675243279153547590930042752170819504591121677131538886573851732794620063583695846308623710156379924119719891184229094419761667608326312409408709913389940783188831260229471234270650019981747441800852593629735232456811747659509839112921435935924129924583287314866890363247310832965511001964564463753556548089147815044356170065151694718076893439640742864044589281965492266680601305660179679716516877669192989761753192670560812275879949810447300647550780632782800101778634080509758098125970693822046104977537965565928314154326454375321546933435329079846800693363919503085418803148969360106438824041165551025039020820553697444938130613203228234217870199723240814013753659477762658160046912026067489199279573064255636818511501354132148967699329304437347664033907473042476313805269763131044789407721577505628252654007064943974752227464245934968807605243138117711707570328036629243440917422609476411134131290304809610977850261787390840754423909269573195514851542212851483721354068326175366042065643645562533465079933981759433311331030604984901154822811811936213702348906000208594302811279934318257784318220502779970956339343330123815915571244429801937866817125669757952705263758140271130344862290635669446496575052232523934331052853938218716936499284904674183585346148004750995571610466558347039444786622413193688733512369060627993008244565728581896068440002055796887025219400712471107220257100400535131570637168762049768287390732985971138059270356164107704742244041438677673831492221095094111955594010404308528415592125384897441846726621633498337453552828462016272593898923915876345922407892754759175902669006175448708334668152010626073842179926402461830101587564774763626483204086691397608648063471133537234391469142979942998097994764098357208781900112991140473796150153354346228940988238245010139310480815098160678327848004608774685158438991850631594289364825784840287931107423385307825526070808481398790017321307844228528960028159115735494251163435148047498574451681469019116000859807057492654484510172945128291902987068845003397118206363935764472486863608440788029123186671972907905515497017388209902380198500956037599096886317832087110009555522515345221398439261644354504215959479906962252813504923368827335945778764741251368408925307362171705590934422170408975537181811579267577036922315304242768372081436314276778339926461112818083210826456559122121931304631508767737282597993432761110307738939367991308549254586147664250760606195392033878383667993981622494435618446814315806191102910154963783218980664576911251083343736218232204026869427464212007449621002209971919129033449079151555018887086521942951805390301618296788073240775330151875270203160321106459035568708231244371093027140846329646812531991923408514321884099778779518094094681032889276476452491813478512612515487465855196842540394259009264983294917252563637547143414304713728337544333990060858951716531472389454752055527168444451732575686885392533161402642606643813428414752811684330044747363804774685118237548202202767356352708549985880527598011829973595720069502761832813766689703223844319612228984429021191963090462915175078676212423976801345918989864956789240660567323816039109044906391369770499235220056003622303091349588410519327165195607615779992831684821326899909650478596147240350676578605415722974014881536229267840258600785617723212833653318696948603888733896249259877412512984313252507762618132257631839579120708472298145503620452028553864713682337176374365434004646046477880561554324986514674241951747004443738716985163234156536427980454697056063208659006633900307958561975276811198173224432801525347718898212415218398462710034882033999293914377050685981732824296671418616740803670371664176646419767128767492700497069451784950517090905024372596150984142751160415959514335153326094614526252236682329949013020173499990362366016943377660395351342978605261743926605286759625867832384738845584600227729560503174294048326129344546420186764577455466036664514199213578077921747123125695341041126169213443900243121274410113043950996696983255764062512174984142907721981574990808834737176453243768275446008892029175216322691541167566959582835336291627226452535558482120556111616128279855609035404472342306862607412866976890680519919939743303026923834332365847435281308433863015199044647155043346011990594605133515027571076437069900323780107991537550200592119255673185698758614280248247365511128803505266731541335196061454761128805238676960861597955394518876565708362712532845300243576770355024033307510465712748758602563681771678418130936946842317336504353113836471179942905175916786662226821984636617646499311494874183718516693636359112691845494836014112633189887271364316218294644845734367588632836987407808435765833563392320128966595781768107888923253399159332199055271583758046517597226389171452114932690963909066236430434092302500959522723517225503515784228583343263714790882573290553197387596194394065579296699999172861179383834163607714231829760357443251957860649144899751589771709356643956388941301491306969495164139037665421235212286225328749065547949012427406781658862745912619475173272735443102401713168757275784102473468938980263976459961612625873601909177778139929760631333312372290879576670800226188797465967877622991826213625299415159372849220832814838429149597571205901509779487493073290645327608560442274776213890275390466534136995254959717434848536708143512185937635876265388738956031159792428208208237184560700648036397064528117324732579258321430316671288730640115535411234492136372724121677705220530524242828006901703572991910105441851935361981885390442935827789214849826818585750269066844091101382728417118884963674961813941100675656921854732781405169389745798385603418486673221877634737822987926955461904424456005374711062380945640110093609572508817112431768467996343904492557917808363636236239997668525437652486271496418550309075473830077723123644366771980640227021824156281040671731173281900953761768728546724335684907894131897485973631441830105608743173941390782890876670286396304773843640230911845472972419698827615945557410509218125144727869409902403578717815494211176652578121504959180218041385094308532309969761673905573475941753391194273511829340826323837255292227974064547427160717231633770531501613508598398518032475659940870684303741634172707663018873917753668453264800233856229997664743059485668666380592695218523494015241458915732562164147761143817773212717139785298802430263945250179802932454749192541661651338797608352297287975878414215673932955202630976095050418442754324976427482956009005317567728168738836042406669133789442180852273485046461475014816176280020241059273872604139509144776248244578307956985187018265054207648711381790782470738991515142589923293843478334182897671940980829750190833072553509304003445772175727322353480218488252910421005421678241693126494764105431288944153450211454178918524430856513447826217307334883375266451258226343893747909239715755577276526213354606187406558215807542393154836158638647380570326195627187604564885768428981152965816711662566007954614266904202322141500338440096241743803509683649027063848711821635999985102131337088586190502017516956813451470019990982580399283174225555058819561384566550652128697792317371860633249338447908439056274544155120879340709610372955102756252437468047867690823741206207620623972049081232002572803424639496427208889472269550274916229311584990388050683602754307099983278710109533194409291251242280539112905352911705356476591382305503883230238922622295784100901257405094455864829295448519516075161331371307140964079861339257984006119469219002461457226411103661760092579981187515994238651872266446644906456941278679134801008095099899828962167365858728613458868727025123565139216382323698446049051485258417760693761840488327525766776991659500395924739578221033203987398781763781306399629616190472287187642760605533867822132346713872390939373764398638722541157534669556869545097574041176594472189135026786564500473103098737970679596987382495748524129172459019608025828186604469710557993638990810776071374211175723413573989745107143200437864981476960945993104600752578803229118448732359229652519925322518538716935542140932057690229950952077743485021246065876461054480654924371852862919225983794681830772295307337292075854676455923106724699236716268175360726730820066906082656475960142088738506382709810812020213964824737369212854094198736605031980065391146499697206657530379767608233221925471509138664508621757396005586935333428163587778991779657305342388324690398933913537379562693758744135246679230099120682798730555130931325455858323709456532809826822851593147021717243879047972374203238486286127576442262288282962451458331196196931430767048755597076191803606359764137743671498292576955496477298778177273768332839276933856726564808248385671424920155882388846598243206856719059068274820448322657925097178978912084782595818135279482532774306079514600582110056357382444109917899726410844749367070781416516517598260105518030154022712261786435485886060003394401213366004214215937547047785026271799962645517717435868874749984431419407310370351941634278653024830808544575963294615013214818480750067141001552028610822075560604193856189924406601782084390191431352228831862519200594562770784758536307067156612177307174146808335148172228534576766850922155511818994257858278957986413531887888385111579391727059396323901051857172851016630856946980766063522848130518531817364626699142608712029854560792864596015315197663198650000511054715495316410520872514031978722226029104595374545317462941928489873005570059210721420002594749147505698129498502444267687775113864464015206575881318486696799050633273134311276857148681414079900353771023080062053104023512867606733895986346185389838393833474123401466848771001693672749700383096870924857315815473749183183071400026511321052511878055000334476591617791562544611898853728381276014268845160820229691329155627241861386890137850147037251976681442073146438138588255036142767002554488683597113233946666759436948884446837661400858233359645851295808967723859787285281833267220889539846771144866034318839820449010234150751926918622487523094960319949989656830047583923899503271559304966459614567697268871271651883164223379426413521904811109555846290602566830309767402861955233422427546294641910554060212127773460838170557014043761858860764826387847210707509471175284035507198825380620506056302045173028670078010614761841183987343305936496873074998210771592775550139440172447076151697209060486645455129714898992401739669110705628503198809963692827257985307090510726054637371137254674062522952929566057755475692745154345486775180730036033767150989653260997205147664004772557070691506187977948552173844390318895586128901636003491207516417276269345706843048974924974628023420689486249871632198004605353787516998955675172480183097589238557313343085045106227398630144850377078734500187074806422372267859584224908319597012271366691910610979353128187627918147014024223847048524895737332936022245570162053567597568789081940990654753028660728923364946079517125102557096795219172795807087389346964151105974597609585458180963483473258940526228077608622500539690106103118060843147926721639645549956988009640253836179407162654889069026231951507348119405667872148432459835690206939053878692699657645094369056647699358515647522985958934089503028856286506203898538061898876524243375556164937306616825897668425798671381559563996252403182061780049586579599866420680822252962830989895306614766773436661654905410955128882327574200477134492882101386058143313451625238652591888754444992444813088792791782056599654269164534237049484854658644479115641101868429666111393427469957371723827325100498421955105598518406640453645769102174513861890347820162258625471177182437842786125357237964244427154220142097746114428219332579792039253456784510195110420948385215659105654596945335918257368058754467719393041413447593084290962188184174197717983665519745027022254371532149283904522237823658348030491475892530907230924263474837245842205057125813957608852449215241173384670242385049534312665392972707967114367355746017686455839463655608324930188760373678993738815992797485572217798072311797299691661159438407303178644904670213882495250113546293029122499090054582139395401607145340770089011811128605250188436972146894257701922098163758637429039544372518580754381991897975316528787570747623240902492191943293382897083877597568871560358884754366761488024630302251381369831061958751416467904287604814144319967283991979592118076074620734517928126219948052397744426020461970970345343760216723807928855520022491284753194004836224339334966864519462390950071301144167358276158584118438532629604358268684150157933286046927190984195168379163153525410542590805368886542631262589220146654385338060486346381096693240208469925840155371734093526772859413196897119250121041429606424855006020104495943359841212579373864973216411179547138241005376552307112237091954123213510416470234906207994196792312890949192357908014960961930346645115064185883174986905853339638642018058888469650367558963924589908124151802262272297631683649904901249802345807754045160209228169556052470638450832780904134401802735016607055631366594887966304081766204273966444206509671730766296689632147257639051492195405505918801606972102692107457064467175268071248831224363624166686504283951982676997479015956722010706897580249850978700220223287546608082987174730700146580763711439690680840289241564664843697708830147235449623142495946099214875867200034387245139554489756608877203146259629112531293302263189436904888749068757567164541790410038555995496854516478851741618516255598521968465685979971302571912487962490445426504465486594869954774278571553260181348274995176281436319520856181099825573222934774941648988576713448361566788030222791609391951135541110334726192045009312532616044887316836603630995169115102592882528596941508500054423702338153556198702782799003441440981126176910458869441804478037018213664235984404156426029559183345852260391607315591821737481072028516057144289576543068503968791901065789485166433818509674028685514424786246074096291534652208304250427070477426006277048738627860364672416529059466824590693477055097623373245433896211452635640001213550918216376936010007246189688349610898451705019153410705754732359570785522666567974247442479463452958735690779097453837558438128998635212114845482571846350968216272920699578954465158826991189114456369554526229816383743674385704707343652815412611543460820826164850682445427670080261891349240244923218649226764309272889688083171657011488291087311270995023863982695538869937285930779489720119770933996497085933079849884684634827994618687335795817239010521789834757274763981889296494474339775270619011966255354848283845697196751473493229134891676344418116970532889073495595469530474526970498112362734867901885712736474584900105730404241555622412158407708707217260543171244136193399783670204849098742883816519522157744132466652921814516937901577572443518362008458002630081366594887804014777505628470236632510188688739355494065997539260234681273725121897210146881427660319251807327416490611729408163309579044529459997139344756450013039410963217558132702246635286200193711962516112966818152425670494880929147338641036323568890495570517186957395463008327386815926610810191648164108656532728340125610628393269788631365884322968958579681156852596122667818902715508055504772167470447806342392500582620043921006420014149329026267332957896231669113045236879964907454710321730327277656537861978420805108780645769635530569946174137475669864315324563945689293604365041403651625172852083458866043105529936977402170066203370910887351692466346540811553217137994252957922103452507253859992862684578086061092105040450724419084812641679185203161115724051270236315790394022789788862538224250974135140252270061056555268905396696222188695551697451678321949662026024386470918787902737514417407402099118157338528025285026811194606396756592443686750769760606897018852551043732121833254394889203138885429153593943067204434415641597381835462508027993107279816546733420078773995778476082615936976570857982317023118930267249369085539425999530890922671731025107055205251960968325965611026887645316071718061194795512951312923286008217696855829573746148240661905320299899804103804995510952137794091572044338521295682885777561282234091609203511513138949845786261156805977929217469279624516215265754478221792221915196145251757166187561887619655775468207679801494181263604141379258527836999791287671209181688365979661243725622071694661493362333549785238245014661691972649844599112331112872077447835624072792927943283933724071090120278455431090581357837704156255671241985779993610397666746613070408235340668796497837810818818555993221497395381324935065383644320737174832022368984433361343004322437992065966489526049360735064372173113618254529401250387737314329842108670294244631071889069724171367916156716086764179813804518849089728248299960082774644657182227584119508999167348869519269812778527837254196159412093581383954116127434660753643858082177045767277085460634781578547444051339160863209687278263364546960134759037601131305468025658135759680597419115154591619553973898441422255713894995839319150991863818192238724042628832011944222145007532616388439773669454454645453448031496916205141313525794948233567231564017068891282022136085051963632872881648047523658709488096694294757635837928343789832739627288862864910332831858239366287082105811248627356961183878740395784983818620878490917668123247077778904731392101634631086693269502822743085823280903476115532139642522231723193329456682194687924574713443367814345393798654600731259657851259339978382637577911754464034338969589933467324189742930444761678172296081436465448215489387920780053972604611833300880420390776108243861862625208288769532621019845181166350206272572265558297607775347501676853479055151754520261510791061828329390816406008505691848477306901819586624580328917332244200431349554490416584386088811127383627821419986772970028054749006639142069915516734490720468460504161450458059980874142221151588001067050685066863382938477361004707010668751646404594028609217516273389572280956960343846740425569008616254616279025190234611081516757755663990231796202525687984612658078396171457591358018884246581223413688299150516410403382062722631367835516487718210707280478170280614394788599009102169512639037095764929578557552626913480297011026949786308441531268397104363172604818286277314353015234394598335082921936780802268585249844878394691631459226502173222292950755314550563018698815649430866542047175746366189384636981418664183153977215045548175881089083565977966160919757581803528244329814186002487551205427144886008713302077112793052874629002827075293587706873540925507814609260290189968921003298353184614232987626811645922851858037237090318731923921945950518133972138854801994122039944329004946546140216519612034201777886559172424623992070173702376270859320469178275882541102681331508734266910317714296897965947058160064406405331082292437318533927466287001401711909440375059825159941416342149114376589632755261444119308162450078336775414625713335131798835526510671844343551180750915714368009032811316610938565812228456626816593219746427418432449043155919406380902234871385085685045171673917772694538535162311666502506258900741670412124938661831304639367917338104369702225042514171718850688747334922565851871168292469696389399275683248821808636499805574507985973173382612891018210747748971166770559874730095580083281767985230361083299765908702007378784560975483376075806410704557146169464617769529052613941814457476790123463107598421504700818874093302408879155661567787215968319573362748395681216358564913967245094953443827954007209970950963677037786576520054496035701080826073513537078942723966207244590262633588534573801382387085832799692272391203189098378866400820750074365875937163449387539260715477742541323680917176961410601863375932765627303498382567942642979363708840243531914141578087042484899612754429218321732030834446958913736094090889962682859117467391309515599998772764143973201227455757171215865027997837071083674752297296161083347141548392166320375365451106713888275855757078393549788795763404431814659827608308948951546488147709683788767458811511718011375404606912620640461021890300957317596438432213433059236490850371465831344352352185918758200008477739708617343748970843790965890456032541504396981535435072102517684830255034409144710872252080443844730768222309548005428376594106018898559720377027824510754769168361133461984068030807757263657502688576460757752967387805865308093306753554554227588339574843064269679507902772503289704913400856295997906935983044119586369689151182165977050512927915347975520970222529754330903380321144350515718036359406573997904580307588340846809061333458499621384286021463545516764979510287004295536009889811014155281325410728445776911159090847003638260738222491309851511639047742442809248605579759706333914604947902113157487770586740397146477711488766043025695896253885211566511145591446653731106945829677399159593846605644301700026941480199514854710227263996792250620214970183150522529616220493338239038973391605487492802634175479892451695838132922655630806561562570636370584659141574398899493918327473429009756695020551491149780434494136449217943606767517229129566695116877021680642038318591288060004683043310790003845450939626566166883205224243095976114235329297863166905245231786158584488979094981857459078629668470855401067961577589315936599412367738286369785560079384292385751859312521144531097940047618607780330340057690985250637785503390462494558111573109052753581948362110116769149144377219009977112403422239071147612389673168051822149474048872476672944107891160379029840333163029921128415410168191730454051676116947818128178221776664251471633042560272845546863239375709895488514155053567627540561484061009548108165918048989494098226803911105907060420535492858611119469966400488371687734201348081315303152365176039171636132269293251978131287084745408843987502268860221173713103823646343124508439999318492499341895953655122257625469732354604744264497586137538124850058866272784469138603501894965234491085382534521371120096761662393186393511204633404306417253804542406728938663956631462278410289401544043477109980471646875521811927105480441286028096336244930231637371038803758866186391174913713951736874420870152260418755041989939847044621228072159703158181212323515452370868447553055651032912138026178557412967745348610964889577890506579827105054685142533626114696425031377732497601800020753414121701551549608388208020681541334127921293828498653492818685500089941320133675654599919734443063447273835828999563559113385853296121674321602063367640657108071454947942887681589819434094927153153414103718838316433104949501732081254646652685134781201727869588088930108178938243663504207864968559439930411899398039328753822170187721500301982446445583331595777988374544484008996401089751152956912812227076543098659616307292969796006709329799996052027541459319825215402364113654759429638972441296880174366106559051408416657168306930802221195306441058766240288554087771567178714235203900167944974664245411879347072795503466013087913483189938950570591724605387897853909881332335550477535486259813819042629884814130896724558822194118513282010638192563478675733197596317986320670483404279572832061187612822926029959266206262707717664290382370622469828210690476138602818745700077991536335021326536369730728980098553852893594396260232408937203765031859903678911531752733540524002479373582550434517579312427772249976791675985150808533602783874041294903558510764016993775098219599811553571875354776119671454907968988519485444578476063098566871492884011164492280396012149416104634430073373821375360089149336799052966980599947096300478747830281754274200190707958781564427713297916738408375375580846411039321439028786826185522216014119987515141070948889201919950845341082665811960034703685246352570565224789166920047904561451016592104950451241569498752994942397845745517187352918492504639403883261017537900243207218862216629483425068181748781762686227097531191246151755193950162218038330254828735881847537509425176660908322252342272296000613734925648387836239144136821728541971825814546573798160007220903520998623861530037150842279651833281225672681795559947953829767139200707201552793710221859010622398181380997765560323823287113827157944502195366240793957939977130860067339764736996367283696099377410286103642399816859269972162591134990164697400906231314423579944669737838356440056821990189371205249933883323451454755986090118973345746402159645292945346027668932711681864298435923395351010146804791382486579325972568456062032181649305948173550045174278538348758061018404757632161015423508226700898545943680283313039388225755774530320178644333844630901039212724870127868135213474887650637009842294994817941163115253659403266518283869394602765945587578482918476690765056185659602669031917812254469693007931460638959806681183829433778649191896815748440946017633582329082869975672765678415886566998258142552757662397724929806831176745304584173652972218321528895690742532000342800613897326724327909847413818193673898194820030637318652472497696039441257553035735167124677977123315539349319838818614032993969387537445413394013640514857763887274556437900263754730149817338455772073022966064880318191841792706771490843962965159913797840299356162343228837448932977788192424977241934589408466446318175228513760988340969843084338923361796316991798733629155362161712612199814379985379754736264861818162578187104966785389051051732290459721061478369540729991727905120161711372862273145009581653444572909587333386964108391753262584960991293158209655982401688764902331485216245891333467270408743431811706148399245915469434919812729797275321325439397057196829601626954287216745923140455616389168931728101130337742589704901096801233639405434373829401238673775923492695352265152573332702934447324997316899804495711325570623195628973391958731739737075002097301328959360515722345380960276626789392840103595529459569111886874225803874512132063296514431050078874546786872733292768841034004407882595010730388703971234093188342784302222119891853143135112630842329536731166575620395143677190282860139813674902182323060945460547472596662435453744774400710921552145032795755710046357019044575509753042470858188617649412892104046322656339028184777413105729063796468735517073558975547030296610668965585891458973637328289620782370426202728674543319338284140274156881381764330239577699644768369767507120592476892363581093543643735803090467829363584441458994211895728382887765767983221979918377510731537612465828530638322294814988992894350277779695616280217526555637338926516265137417963759683664424145771874480438466240204015355133926172278413982969992478553231956003959018201652514564948706999237652766225242882707247079327987211983968358070601094605943935240035034234450657426964761940650236333271202021603341720856405401155799359397853275137011331087966932519503569511006908198005730520527130641747078325467337646670093254027034539122432427013346537548071232180725089201029847556965918847380539027530409421455615615513110883208757497638953119246778876822489616576191349448359584159299333215070177258893479586669608084759666755745590538839416297870495445824606752263476299481778050429415353376970906527213183955523049578344055144200930379985601238654086693325081131698486579392834633829932285237071907169787306476052566247329330727040048108814794742756809445170884765215284952130982219716943127868294503650471607162941001126707020927550202235235367128419136694768013560536558354358817610679290993441291219590671102982842871099122316483291108014146859713922385074624471344713003826036789901007383095847853359466692255844903234390798196000577551266876924166843603410935547337413072033207882922332981966862472770656530442352038750724204513489844714515772319247053008033276194382721926938555681181522988551593514926471889607592877585948089094118922972121101239659080567065363845205811215096106148963510007457380934361295293712578756133618170248252691965855607440020367094936339309812606283364346568496902864468181047758320370209183051694673129177862111517928481315239229145501463880183839949821617246934307945777086181622756096142995656577279854067188672043710208518544979553135185354769291610929408608274403735616013461653555654482581701079292262504252114557075862093904032496248641680582920796809610191326527589067048962290665753490988890433418236916155175753189943437995422400269272540395614690742973910437797526250590917858724052204016129529855219421536978071775914397537898854478074182278568441584553648357271639586410649436861530112378023199897040344921279059027232279702711575216685428551873878085883375015449001257984132695895652062990700766908202955728501062613432831516683467967113255808723436341660968804426553993910332442063464897808535954640295968100520718415685462115667242554093592490865865631654978292826587584017354743990279298371716123574780091567137568395279210895112222772495593106430177509455978461362154494309516911896433650652998909098436819833590961384353473515191442178579468074131439750193267101719565452997734337936907862461385100201339982061986135950516761908449392613692111456220813885360256972558755788113646523230687783094225245749459852673536504872268012870735502667097197056348602695352334403462550513444758509668722241644426271643388483998553845517756415505894909959339138946851643568881662625412242868667973376907532651572912092338296936632552569226723187096293425612543822695120222745544008893811385494918188000959711321345522357381513100215732361300665505024118562226191049601324870934289554536125418841536055426745998228720918167818022363447525271309226291193547571352390090243840162924549368922630426849961678441339236690887650494038284612662392889684259427144580759369208834741437437607995945033921526950255149875722907001374811353868776904362526935307165731207733840969070745921217549725638413384893208683606354900595523339127893153439020423581104344094159241643209722571320820915190110413373028774130604968454500357815984430897056231904937855146911433236021171540338877598845739410095641163892516539967949513918853981035213750128562076075026053055032402576752646732690164340261815117352133320613797202520528685023503342054191666830599803761232952257234922028681559334366525426354949857994237208162678418790699482223732786980715374825989899652585389544248183011434046189780600892191519074682488739500139197296332854064636757096963253382448958090173431898180796542281576882102722833936361413832547988157567624326990891446194314529612440982664245023945498166899276327064035191807478225972702042965963834273611929256155416539797989531989914736738476515500867656836404891819927955578952446224640822492813758159796604776045932957041733192589569499463039994458484781259545463422605893132865732470830636513767071551652028372886667542974152732929837879359754950674532750781442560983236903776845012811468008559087290181654015719867214852986605638628566037409885578711103522497948288504561537365584996312833054198735290599053106776841097672123729791379485068470638608856301467240766621445432701194524666117628162360567453441979511311427084068491754641795087615437668771983681436636542677826126794477334419288569644909299224255733542400556791954747072754716230398390806318595049785439315026636740668343310446715671330289430463086167462709416968000338665081275182905917237781453180173953071439181723070137850713583946513557076574868500978600944373617396126831828504409155543169775569936900084903900787737804190850438943633686164453624037529036887683450072340546145589005420447630038439104130793876181693244005329965820101482227758426804629149800150340033458863176050410405671169839317717149018591905169364665799022717987478487922736410250766227708158929420405972685307370387053528001454181139946110798397728873171432473387344338265953270123555796483525885320355719089541793145900697380253376015787276319740742747626055536346984781604178892937349881065706230783408953333263278979237767112665619435029999614989101192634258814259364872500361218532342962494876796485902963577457408583881953561932985687299511070406732055495975999317733606076105422278158548133601130425469852781385350496667708285688025761582954858014803981375848527603488156714083923416149298496472015627752005202907376414295414359837193665701158480473523193254804967488630610612566031256266856837398710305025274707341042139616771473136953369088742040969382911183065352837215090702676712167333728754902052149055049312725165267904016397776641675064787705415134564325686644183310376430239158266766072044508829014854518490580897515948218254191846489476693572316537646539587177938850814602505984908016642422391508832252682496182934812849015820000286128685288105421339941075518621374748742354334183490403141431687400770571197423991249540932063466827170351187684170976373504356951781472710263265239208332835697012305024981831655199496024553265327038932120460158011523543603035714764603950010905990450610880361906155502757690907378035216984418095426730085275318222064602177890107917097507439709333441451869685448300527066460011208926940831573615903169647235375196998073267437180368290135975808844959012847895967481456213827593577743576941064337386039928943723701633262124456431890989191473709977722626584150073310665745887903958982813363894836467529988221564926060687486955453726425806640687506736040556806992633483629605918491364491406576738933590281721025319146104594338436488860847805249831867461089302358860494640970925795289494787927847060680225164861524241557043714691908677934780422495801540807563664345019351778443303648573101211324645554677283334731901572616630053898535987630217566988067986507742515860682154939308323599797970331730721623838977705331825669559968397720533987090180642784117408173105892439448104747031299633290737988852904210056378194340646370236394615898634148809526656020438326962645427868103074826907336000740436084352947965353621542137655762396719501261321501821385901001066290016797064518470403455545131686190332136807905547064993874119854281462268178786346894148087213317387255395278449937482342446983749305168912323514957439150852392118353824311490027704145255697788549889581791230190369755460855298870126744561039934714762450994221291510780515862288425158149888951614709490143310135365357023761673250610272789282152548833710486251983471959893383370670775900108128640405702749937038050437732931721499067734096933358359286331170206141829731444961865870105816010094893011422518724896906154628243497272889372303369004117938909516963698564796060323132856411562649093412351476710556598893643137478318368894874194724020683897513916330920249298860349627585485505178915789092678897200898648836642842248373506470806442781979423407963376181303679061011327392677059237049851790384265767326452155029139222739740496242851626657991017309589684509198814692811172113970234803840545676571018999560217406729022257696230126409882429162831710398923503033732958670893582007856450071274936257415945736363127375981698144174047216144158125849222483125235772708834243242706054879479672832861700237406256415007772501890654576237124735863302182270190609966218305033690897344949154210220760835505499633250778464513929052270049638826623355711037135300727316953827155467780938668702200293010373798741164158981086754684251941584286797924002731625696270986537815533201433860552206186093110678005648803328368035210055839596484637615800445265594052664118610049209327186856169949686984248931467436038830253375625935726451962339445086739859696527373812914581274952879773338090530055836182555453772515335446595280956693028909192221971367068046852723439351306448519786962729294990485034630785117063323156258975998479525856434194454439378742331000194477792782514353732948602210415303144187524212371132357051196622556826647911307844035537506682858863850618353465779989363988109159726902093578972965971006830767504206449350791842496154288976958798331380283107034322895783532035407067281214521245360507783929567595716369040071613956599615391654139001485999363925728202575987563791287253021426389302658221497717705204091385069831141130366247968267065005511783812588019611102703859353476191079006221787692355730515018624937116038435033841772659008811949801136549055652419942545632909491141444582197257416478335202250645056536428076635450424072476468332347966549907021127870033487354933905436572955959368261630560310979381646110671581015093776763298442236768268986892724787000012698076721176777492030683615851065104084911580767778993670012730100183634532380537490115119033513672169368630381130872270595531754257006160176446227296091720461054871526733390938763796396333842624345623235070328959412972665876994281623677960415145169980512951834250551709240607278123213517481180284390619140720891793106066630253497998959128347774400356036105068064784612151492304232795981309460353756626597624246221259187495640805260728990605265027796529213126412106119135880281810166511173680526859837955396506093799326438417534783353752677295402378231990918650463017829366794346082491974489724439014038796380902577196110245421844256724141029976659112335869685336763066817707559675340285938681533561627712855668654297991223033899015852461785797669221411908238692273526616241498717992673157052984167604194688222618676269489882627368994224139151446895403945549006329432706816250907968014065567038564802293851497940050103210185479780320408832339699701647354458338909980730662218965244734486860240131461886966323542732178072500982103055541923942659437485873430661127668412783045616330031426515213940525063919580993015377252087392227580145025116271560854877741172924681505223435023056080424757015692392338901838002725443166719434529797875378076906594682543603785169107772554192499039332650224860893929199243261615833465891137003848159863959979136933448325573263236925504955363580731712203492386749472848169534566643540642360960160128313812348016479792271427312514746902586012092309771975747238911363530085693157896813207526440899914965175304690938003323446795777469165955528655620631912890735077197837979637181993527708167536448617208160545610122735529748756265158528585424066141982695137205983262033338825579450867811800018273311580301560632747349789665024925627472376984948771443702207882876064935476873946277769060941278949630853934552724736716813102780697776503797748127196487331195762457808845880278995900768580985969088507489851145039497180253728082164780061520920411477264867010206237558883713613027475592041371162494989043689007494370774940471894679209935569174054037623930049202839412122781761446139424184925576598535916442462496767952501628727123491259310992670031942867988852177281759599358263851398738933655866076357843293024123690948734183823624386355592007842319918364438308996301718082161096450534136680299877190080613126550143878822342339547348397028934524019942283073456286860595496479764078796092422169834521912345266856846600705311338654334155448871791233274922651847976359639396708288845795126831264512918367395840630378488361381751031936534294536804140527013506276373025149132492212739452528674333167065581662038982134927515103691819026585427004450483078279821857316060247482439109444806455399627923809779712929631025183730118385035349398815778898412006853467668149480466715345232455353273187927568507502988808397066310710536956950927914957408068487154271548503777707319026751459225799119137187326721289710629782672191323340645233585713036280009615705163149610698998674754412162377791369934832778424613282217830660399294369376437510004370558700943828276704974420877125927480732930314021231642850428406060654690861462312847448233183761347700500481541049165301780147193904815620161517975623192906247636478118075504432588620598290722463242319494175890531299133337031238750748622635542318877814099880049148885080323471731875790473177001428705340849877350175866637334075109299835579058008340347808143425991270290714648246293329287012000231736748333408236292185375750045674229692208786184071907431853677057131974012065408402962888220657518790994122842903988885989277607245260623598343467609000956383248136434769554621400114119264560709633976334405306807228116333157586563303885324529252606505723484778435790118042858527400641407558428807228812761726080018649786558020061451300847516887427092627719778879921123139789242288950212199386383487587400225414877247127620094208641404086088464971795439285926244379644726866451743374132904954218028236203359476107453075174717991783040471385848083055300333425900442737860060040495141417945638449635754050772019305208647896099836557392115042818510798625700871201593579806886542503658332577839336647024235509888592209295500930190283751520114234868638714747814821952057481749080272271915472410135222056110943775362343763450606768422184023926434265067268457436480461149297205253108335690639516680685363666850459517807004916738528173975225208817819384892254114357013182520736559884794356812800904454853022017302360942979381590301611917387613510105707915600148321986375039374561811314890335221769682908364170006184237808057581104493180136112416346953670379824536658521218436979681227400197998521263013969920711422799480230943091390927872328676502077696105436964835978958693869722368424359882600055746614737614899486812604646190590883528805191018645036788400940274997939119644162226005857192308824165645561471648910881800823804169642777977597843262824685070356216806374640382798662017034070743267666436319108125083715620317161355464460527908708965572586426692409318975748890185204034307084051684407604575196737260232758659341240077088487523547458402258426513174419849018440349539294446481656193737702864014071265538863236995879486844119659971024066243992514957284736056936417021302860192885430257562479902234118351288267713291798908440016729886131757439515976655407456821863010643136199030896027164949408207000632751936534916103896405869345037042449048155613652146651348677907287552036939703605503255685766823417530417060770968023626489185305397101094735817409997506945972131696017783281522020316437111405338670893451886227826384245787159892048842798807630940163807633605880911423603936615555932936159168047533879187334432545785314245689466716129266176505685498253840086799547581969541700896757845778659251942280658333095014820157261586007265713357904215104674819257199811337451870790141958241235512241384371185139190318630432648525718743382557589367192868098523777819565426607903876210446401119571841777063837193929994090264956515907209093282043813529255791281245350102906753704302114024750871275788076106861487517493914176045447843943564879403909976300416861957635842908249034817522181663415024262392757700931406790617725419747638996781828099722430624175145666754953420165517211192205520592789213326651282473666642313084468792910276065059275099479287944918971086320925540788968619303776615679504702200899933735050562674975841841146311015477620653176420454553637190452398270583800045366790234383182020480088601213822311611151891638228393737821247120828896432056919343772778390175466693822070709451208450605824925015699692228166502598310093480276169014688649384350711473398783301241037904564545617882106714631211685191821191211449660864591130481030751088401985086109051449716302903515372205699762261033460846342733671469036824892851442529846366920035764730551550130145377255543827654467249094895866188055301807349038668077567840342690983087828011164005024348134410733086233244358882879927097435961895053912305254375504721174804349440949920107514620214269447287955668332253158101347925449761757201473488214571748853271798351969314186946349302448905861237002828406397323085354926811994317293877936161431411502476897427351718862970885889140809764085415518987402357016657411543240555991994007412625892529828989241405950322663936268571427266664065320284431450046605727759317376455377784943612315009509279955480825248375446019717061575765125929624160987543467645004854642136478443340469362438324482393593473580738812874864984174801014395057963943083134722125920423095125857393216796240864469367767571954276523465305308745140309213210606625260646818376351985157562433984124111597946984920110548001957048215405208966468269323059490163117611129204745704979084241708015387246990747009592293570863155670124058247553475860045833035672115109724189299867112308616648217462387707538198029353987347652146123276841834781298707401756561709980720264760474617690533079128978279752869472931089749623675903372873696095081185138791840794929885292744682162193504423863761693908645980237604461793247189752886971676224324397433297878420127727788856469590342860703576974372213367976666886059140509210920081747476999273337897162006568320538853978686437173555539747222946323444767922866980969242378430197619796989548627948425151168981633417171228446296374138301060933299606239563989373465160170762574064860916405572978060294299118781175206836104058808421043054359185687966184206822140286218404145756378754156452686067438798619532870342259904845670244264498331131356147745434469617607288551421393517179570625948087993612194770618596119476663616641045257922022759201730608774143448084661071325969464844354727221419664954057240781677970822482883915354100109050205175206432733283345437426120741616887964666856803015096229564090776210460079696207728981751410728123504782209167399839279310367714948081016407903419724474416620355298173233292689545509925578845930041555063212757688437230165494276148124169752100564959068190205862766249330800907112024257085919882700416941129862726562001981765840424809288376520715477407622692426556923337772297555940292722659069662622385223605392391085086228869159639505599765410734868962134324890821979182309186667843746607371450611476009226321801056402992649116705722753108289189859205191978451841443598508800146903137428006961706296804376033167019077938922123216355050751344460935055483735143277108350440490960056109823063671212642824436099073532442788238433205033764320041874518322870606766688199368502432083423203131709382775828014838965281958098609572983680596043066339603475994665983693939003352772945781622256679134767585277786385772628352299729162215495063361962119063493357287671553620287709197924688977697011560961817358393163205734836173032368233063454724562820254048453417513900468259071482026192684946284295816244726597340327461158026035955064516280126259147527186651445896485177085604184724053706415198470350427288559975927537221223466670713527787915522515253760466036752535023406429039693150832663642990551307319487769913138668877986861594009771540097096435198232438942400580046847746056923924687116596138474062725781024376459473433161441422826314198563123431772750074392079660309102952151740592393346777644632709759616037937920352594575422202292973704794801188958666323410737664410006175922217570257838570950097702494499615114823841381220985018336856263321540407668956411464547547446491539048323233862626250357564033695946701597020015637103558557373112107647882839000182606426246558689125280132959750447054897536434644624480685790820565332754098135045007453137150731599498763212421995314902723564574487025108519534519366678458238709245198445664944116390290831822216051617525692409747101419610670534383510770251703810860137544634121958547794681591993048388965945050681317250908136066550462545749366811362803843428637553134901251792838097361560559665929058804985783291994057093553212630087913542469590972724905032324562657829459278947617799833956017313530542122141168479131918139087041763858971244941264758844745544748942587665826910403754994572199534719889102682451054132128378745650058120798860300804063026714106521880187775440122675799839560850132434142442005809769356258030614029476612231144340485100457275742419970343465931185852670285950482102336605830194034084069019260364061830698363384603848217727599977042946077248486240709176146475105126534291222800336667399236358580422922938015472677979309254191394878774253821312662049662998148825419580333833029110599314568876579708484917042063397604715326305863184747252336153910568299784315699072190441788646336718096686331443935388904092243250442885022890960590771807014764609705234866391448386159753600657487965366512381910659344581428955166923978086247458587764259139398755086988215926893947901853820468999187591783854510570359285553466382832590279574346128413907564045504457571220565697375913815044866710293902557463319307494301416350343976589366211138029001028780039227131610625656249526888890368427465727111247462314155975826030201735051583497523499780966155609236910967433842313071071913613085062905200836295181950051930285107451804150772124139906727625346343729401395952256373199249840450733586201722832130770520590127599952514434462340375799360098844932793498432812104147754922350869117607143006241866543495332800249983471686999296066157039829596193496200722704757142008136931185346490927779922800593073080113700688614333345611709594801154226001153209285058896849619288343114103589425736535956677975341237900798138297772495595391598596534043228968641394532214033443931183208302575736034964633535410542772495551863716584176627285216737245773087697428003160354526478548241181827712625511639822619695012529082528306810472674846154319268398689965764914398500305075988615169830771672691399225441319518325999139533605624826751512572097586525524714958885870114630683847334013758344955835072819726895494137474399785526621854612445208544062315711214353269248973352265644218219527239145662821305709216127080723249058477744341648996985671861791707089746036436620850802786510095491558839202612181189305423832480803507134456667441172413357588918195922692191795986342700616610057375339080163279752216591309710819572565162739489057408510357808680051456032608954616124807131911373454446203956777886409615562278714820156693396716575750686205547358732780080403433423762181683775543078796507600328368844556414171711209765895434798506886624161583983581807249062373406703526556780159381201359391914530723170651696429161644789064327590006344336722702007804189668383529767245513480970216084603031775735230915141955442282694230919134986406881688316937759553791225412592280741710599487700686113896277442230157685882197165205716865334716403685513326420097254027803471730639325678947458472051680784452314690675618106181204387940760508715614308407441455507261820689189290352236848073081299770260188311088567332856384020814209385720633538948436340604405441790701403366524208393202493524883234843850330733724349327430003641942123571299587567831180213061995773754775963720904308773256985540063953462574910464944611737413599878349038379600166135067875763721260580375495123345479064197620138370931446643382089764426622387135596778520645665791620109165122992118251937549085680581429773638855924404365761158718056435443707060653137616267592328722728230822408113317875416771866850824306615633514416088709767347912788200352922383689082527804067293730976571592648027589272812122461294094051909961265345559232176665706934442508369813609238454444151305698971938499275841427080871636287855589524894900888349240844209567082839390890928445363467723908308129141043110302175034008401599731816849621429258949600667421893335095940831649214566322651469001181238284521743922425218391255804574153811220237539211228802655963943366048994640095958433517697983037137148148214668303947544949095356198786439805919178769792193929349963569647189507136806998143491378123782883362069186411859635084602394429282700546497608721596618572878408485311757775225365285393455256670235023541694080042521300152613250692309761368981195458778476044311828965363336684475357753589654830846042594315992603251709365857764165789704623529978966561675465566475550633033071257455831658117297043930158604334770380741041792906562066939997736152000240871007217145605903686942798105148746807167628016516422096054862331280226393893977854256387530588101960345517875925989427119364995663276952910402423551388351014451690330371393616128962742535710144707150526633004083540329533349657464068339627394734310391537075273884897866593890551924083269858809932187373523231226242864772405584384761557731883218692389447490251858492049290769436475164517754987621404043106012816562562380632623637375311965599496109358988670714202956695348772758476479095582007418415635052792306073143269444263862552372773435295247069184057086101137329794883094605642402312127249438998390995187267431949348168259157347561609459334369091162224421782175462400997808524290344715130594873336822377480357862953506498118777696252547409087427934299094754176739067400157637791658634972389876572281239577726517042322067064465903869860593538632835756705529180730267799976556966246679990449845414525236395371338039383422413853791948131450813861631443816255145590145415537680587931073669512297402068226222462627642911744156255082656675346496928363662141604653081820343641912141127675280523322968179703227521242709126955290566814037637254435046585381985921844269635062451702546471466580453756165361972535771717621587870164511733686354084968817384506750115841362421636463205567222186304001824942760354707068144231684699445206268796367372851815963277722047321198755953764699056695864435331124209662853491201619552644298850891487543131916070398270091640788604970299275607519992781539433209269704963675343461501741876772905763971211803737881719659608374947611749888819820276240998637643351331776471902373353949657221093924580515876182311978008725202039263855809004336784337419244795185432990256271726823960107237500766009602031780744016395675542413763431547814376704749251987936210576460934541240616243987950315126757475847199495401728285076533972367765515917465757246599941959131582215139084496794989504529436752339350485170249533633475261351590776681145204164229550064451477369024221511755852179537110708654517258871544058350612852760827707604896447822608088408504608138723780139521623310809017400851147807867442318156942027593155239648490244011049978736427430520884647757684032249000365088846293072549896385450333334716640202567762301230353016564587512472357068372885013614819452188121607617253648093367431400326936558656161925971724009203136354718674903375151904132086155596803005792633506237728718533270671320151725169699584763456972430425271844091529586764947565954424787588214673772923556742225449834656275410412227175624067899802081407274520272209619603078633097585010175426373071397192599865510209957693197311191936308446129563760530538255982794037361091778332679049720773950362367398862621270771754255394447320645865695698400503211083088510178209248138033585641016232370508766426940862553645494169332788151671387964195478536765796138561000769456780513570524182076687711145329250421130469057894457663583556926512744804029486969813779565670116358569261840585146868845479953497125492585659308861153826830157381182072498747091571231999601083868501281676700979833235919219395869837911196889416739037059491889137987502764858672126028285962138217681629078026038074459710138793713692096336874832924568998435625802075864898785678811028540869666036912287913649270840693767800969547985184990029717467714063626126410890275596829214016518308389556436533154824790558210080261459332590943876338109603301937251700665715114778325458575302691335428837156087941275108320037134779934019644281897194902691855395299278698291250547681764550692766247026799513434828736545700322409744778064004912608292276180094863359900689639537469104972073258131106911869403929232359127742500711158944932490435842643262163484707829097140596562095371096876251195153192646981795612901720978394271372505183339080150200411379797133855052667180147048908504728692649000883299281339814092844759452991519667036782398915287790086315993829011696696603497436066447688261258691475053928236293231607924237803247646642942685515004436463472425851539760437298705309101465524486432615398371940212987706841954295818277838899311175655685624462341254375962035828063669299525033577721392482762800709071843620430121128837691180668815800280878765660329408720475093930158061445172859158496502323459894294627123493807765142407593435754052673715361765112633938438588941630520151347344692057008718467279993143289024399125017412647260393039629324317354872372048112313171674441902529892898989966393897085229991710993914128702275322754402835184498079931069572140069847923544580887409346770973807069887796133794990995355987503411253583018671558355687877133096865843121402061618361671066429563097575187266260375668494708952115769432318994673715269926485973942964935056352379688512503775527989101009307201014971853382784319252510661778466454237977506169549396931079678152133174775088414956538820172708407020082799239722507225604764461289002177154104352916423552118451865548624952591823132511945247131936252220632234667754664116815374708273671639172049173103653145401613783379401308236327697686330079697764342238435945016812659545523990482299433077136397670700946898625291495816856408138002385188231948732462469297076818652747949192656824564995206184834890583613428297912191753177917627411891060601335401053189653435834585752043722160785536013142163633328236093930316785549338501987605447869967026214957306285866304779007932218606243881138632660655431336980717770230232853436507353216662658589057358043123321983778296103805791781802011043374867107945015364249579760312396555402880575383973848397632474993813655927977133680643020790095343441979302690113656717407315043276647402471015633690752549189966071198520243024712756069544899197844025064396024534905798717010977896746753139098166443068847712312285063914531561519603768116484430983839998977651102516750226899714237557596970445746059335040442213318417638918700072568699217470150512613897885817629099610501960451807212935488319192083073158528448942530295790607752833893922631355347572806746862333707235941154058111180564012496489800974322035701754376933039849975090933721223963336941121047693113689362079697662534358102763058752429863024851345624825347329914531158925495252544390263460943157843357367784340555446581774476274392858555139820500963588060166467445024028487439620209102659378009366150234549141594766683045324732374685201936102888889688830959655513683592127058093648685277712106129629958514203589179552903753198831228614031125338858443302008218958775565333539704692384425634653322678812403139167627828859402828611109979139456938945772406209487954788130769517994444824102615339635859491814401805756546632478080249789551341481295875243651314050143037477796025216422836716835918454566577971600514388300566066330064767623448106167846714911474508239971569860581533564287444578863216653201367177043974300942898638865140768696573627973167246109186332101416362327696586129187051323066376391320883702391147057085301033190547402892674556821619548912341566614720599381731875264020773236811532677813876017416059463018316310961520606561061012817366729441224779172229535626885330994202439470285529789693307977792038930372651462820321539290777525980205153997381504482007444961046895391101421271651349732325680684233357494549770132766883962054319621260287924619061597665503816615200338762331666837594905296565895591754760696052200167915637178633516401875374688674450917335164691108206690706446616874865609700610680386021491595012114198908047542841031083910011880243524082563072986286675439368101142141957087391522936246828820183328691506738235735439732491688801271954641952737349536583190456784837391494905693016051864963241850452705913210085874220601843068977499676399092036237568565605660293214540038280777868412176566024397314196351812319360740945466951380127588732693481948999969969758107989603845128402631423225340348657583731119885301509696060264988874181823463855548263838713702028477057207025120424146339306474351236933602282470068625934761233920262553347987201477518881249775338927704847329349400065141611921921688069633524435221472712370447286338940494915630467944536365330069304868380851192572336782283691061056694383566731906736268118282805547271866332773130458348349295042108210043517605730725247894483427035068969888875781474598160440761591153224189663268774353141637602167005672301935707875625664027256256825403032694979151098273110627022865919998611174294563660670436529521696684760983981672831617186892981245124873802109929652110118630874566866390010046303023089995886134987901092900373263103798349888893528366648083297244572072810880885731397078322628699003759018055547695564473717360432148015940825300219586108488492959319121923057128211698875878149223441166191999596361421272433474543292850620610104880823546923421591839117668991474282104594889604286806691720926434523727915336859749781818012430286129410723943233557843202576967616100464522551583165886849812857972571965509040192130993702206901837834462705301759087048232514155273354586524154818508303349528529812548062141795567447331577087451115838008211698780936127720991662263281129499490294707370988415127198406574523175899481089901254452774084898124556190204778959013336762973999231910818701031247662906237609533804365397675486532432879886530409982777155082441425573752447056238736956807038912634604478432419704305467506111967626643124813192129592723549765824589066683449336865058034889398177199542086286963691093623065806732063808216946275906868032941893452501976851573530256182779904377325895865227525506540008816581699285062639040832758158212273575947556128656894132314353170199221283627903543054514883125639382497726266559498850697445431584403467345558045819312600081231000240581068295326732080013024193229866162900816859819513655114633739487967822820562677151717647343494326310687489288497631484612546536754234175290703941523643977561265243097030303615871038986226799297173497645713219005281734591528099947437651944119341982245279522548369929306872155079731500359438137772757342958810395575161919371706384541347436886996709356526997270935031976007978867742580835651205295685951184820194540279357862647383745704640850635604508381657112613794105906370023028359613517911134895975973553922755145837246304816867035994836434834631369107308957718933924236091078879831933151490820982191315154833293457365427964343080818809045119339886423321065058122402901770224109318339628095113666881004745421498828419283266883463764713653005323961557928384132880083440770550966818045955213393401000741892413068503174900573773015916678306729607194671708761659613711048365667652164425465996346122436224351205808897805626764447665172761632393440452257980815868924496199649053804633890972139488316412705927511555377674725441569324522518777358668357738083775785005678524239588133938776611159940411433484668356482253121250516299399658489905798166275213477622983428650426467911779934895253240946158354553279768589443311216320697775710797384241807576004626459295493634306123815057025279425909824210834240694997709624599705465961603832430242279047261739335870060678854643919707131357838521938482700609221554666824963971602670574837129734045815696284803764004174500727036964609259366381951598470744094182274098587617085954770504466857514928317074183087270111731300430817745705981336027143464731808339492606459929514916908067139314455037822046756993923730619855331616020919404525978026685734203690780386531452994698322773869633943028257414926063907738213436240528216898128593300952333106632813049334149778170464876217922736642742476272517204637236294123439463060237599919215476247213494436408586583151553345714549895595219390396395108279820237351917160154026743849014070033560255884831684444999197546008235764634350591957427456185099499012921680254191958201032911821499570631608339951155136015968411473758342952999676864124006892934757898548401600402340848533297555669162534736434669488591634185345908837174597276416965024438809217067476487057473817256945766929904671265805141973084856399417364802715901711488509156454997492438048921682349571912592694037876036665082906542354835677730641220458394124403984797272948484523522763327401259060555556435339942335648315126056627380263062962938126255748200459006884165973707526447180367464923534750790696069388001983084818488672255588181939303404193122383585151683566890179701419256249452873583023169394353869482784625282227396161402673637117296037222272994165931317312753367607429118925631297185241053243319430728223216461988672676612777249498836440480343169112230806553932174153471292701179654429850272607865967791088900035219509291371493504970786280956316665620745458781235510820568224334828063235996756816471903451346446872386713782979826307274645730380804280126883984214952962965034475235551817502506267002432307434522643729180493064779303950248185550083466593675129513168708003731826559947870440713162236922600737910060323560004463388910944446216287168675153626784296260134642157736565952058845119832125240703584530278377021065770705046605002330574519919437753400709212871242559962170355160581903117843445068366146118097938287029001009518395760193849750405630122637507599065928288614331272468153234001684642831529101617662658427768703154379847640802788727388002937380308922103511933534303858760155201961187654589100251943483603240965573862104249949625404564187921996708467692824570501292814610563650819666095047991901195874117666986014798180065381416570414717105743836809325926041495431879042583346571459905982273302354794512229673008331831551672377010779817054974086413290522172324457989925565862777306067947391641790604533882658686642501442863320640120347224394090654453668391551414653247763929644605041708096043856194713577462538399980170245322358822132769408554468889173760001247006135358093877933772609279522460545827889127054620808372492309755343027906751436441737778816214710382098852833214234281757253393489442328138958403514765628843169833299447851538954764080286617602729047549925745400234409294247364253159358587563156915409894136826595092229696604681211230234353323832412654920548597586265221033359202172268588376608013292620690440389193622394834912291247479482158062514809937161386297470274234291452138283728962058151344393068622524441054493817625219227052084824407554177525405901274451188196196285879832065708658854159728038133397023088454473619718861602778857119965976759313455130661761009660676712688602547466910337273458703479335850779367784380424372883483197876609325723076812086536837884761979972045995399819587591540172890082174458100970431280842119574442626860774879694865755067112930773719720489969543936511168264341497251716285523308167289891766134979221362014178197956136893920523952900703291294061083391922370500060280514388969526186762421770968218311415388496663510049279248431543595159294020924229579982902479563055002503319605472183392281344363025107986534556486694999119129409764166067024983201850742400963327483211983434209935356769929489864115203425533086799586778544615618775257675280966968470981788852148234182651851401766691592811643735926405383982982249863445554497442861972420988440042395791986954315413287544379412108194251033607054448462683363496926160791734257463615446304177083036468140974130526022983857661597985647197112790613511597979810377199601362461543821752828961939994286113847371450171043070102469896959781396098826598232940578463753680329522799601515975208470430680515378941136169321971917541183294559250731611180720684701977855476435914138773485427392212888053844157518274748752698881479541716026367305760959648135350411940798706965027815576068162160663345718166921969800855516940670026212256011354174687451600292472804650269377012885715909140711084091744889239610447778261758106716215737531605141653158869977544416499857659459633218052315522023786835551856237342603010161568969497019131205694667088778433297736541112969651772087191079020210601658844438035216768204547476434130851196406803715571481056502311189580675330659958680845035974614961062026365271363629778348037058780127152320230803116934901203266706522324547354992166958117321337683518331286203410863944264081281991498916497135908681336649134999816801550710187529982850323165094990747220991687962857627372587997167483446946129813532872959192781298241730971766989136030554614239791559381613257182722711211451358913476624788789903885378881660115941523942678670313622700850505065990565738998808476817958946012049714343259099401821046161274092392955765234086961609812243278124035945484268125141592671544250089806264077829442931155224963493885739307709964778423038878356392963021001865597427574880896405788277641380006613812292908792502826449863945936190990602189323710741200721913958209132584686068044540096139886270768778784056805057583793087241576006411673063745595234647377578195459303601262782904000587288318578534170662613751706916214853408477589597470905043144417333287509171398533263238727191306324409319373748822815531324987536503352381466679823003242977760471355844395554225202344711323873201311172858233998185196077699960435888213611780851986371116696605630433373639640830352606814120752943403981274870394252061026292943448207878195999262771160711400895653075065314066988893344705613483863673304652007464195076491029074898045365571624165583013047089697994993261254249070304199301407017679177984059800512464337853140592023595679603369763868579159115017324848943189517437394473541395927873364618834629263961682813363982111947454707147306923973890711873790748725209256553551697611573312975514598653791164116341237519659497627935338472150689124819053742572706785508462332843157879765800981644840756663191157854892642757127203404941859480792229440493386706829998481942591804097275656605757502079534332763199791418052893415330730567158497221559155600404489460950460434151951834580078105648678957890931216120867729827340742095065674923476201460339183522930660146656519056568227495284296570524805703952196929906052216943545869037487067156854709697039636325856418980716537105497050453363318223059709821510779516608444592881915751458977043057762879584161200943282647895550791570858182880542786228575270442569754254854139254740424071174254855369165213410180554263861662324064721676197746833559513149954641116238475160957829509463750609292709035490895107974192915965135648518818334507065343738625998501279181697202375701402510145245191240169219358058966579584118904796585622418525637599473427137708533162636762780418154962624498806307173801919253611548407700234275786431920643719143067593120154334161971773671656533554044635597550158866312369079484019534630594943774925829158306761246666376894454267486209425985493005263136056530633527548833035343768808151871646573752779109636100909689393252629875233247565164599625994416729615899570466666702961556771116553964151419106179628950116407029458311176174955667911597166341392848708795670743621538445199729179655945181271115923362520898016038113940205316308697877881665888350113704785780822825627061160915336831547464662532035025165010330576551142122783669664228754102595139069229441933935042802196826007249797596090156263420503376692605909021930612352262051081250136567608385290914492477155165800511886828812479692204431241013001960948338905685771261915506612166657343123279157457584255316677774037915318639317801916043709262937130146493967444487848149829815706812478977571307748013287463410504053044117728594118439629738057099081043034406279911799486339425644411769905628611813470221966113088009902216382220124525611504182004996001187592686706124965644747781398191517446658162165576237141475713104839376334338163922382908737594498155340719434741223395103988420805967367997066899033212590365283885991558578159260318281069147242104825054439337445652652281429598911949863767915632878191324611646237250490831893506262739382282561648385137362181080564369830943901695773455421056407287997734374990038762951341221904563230798820902258884009878506196198107775079381179952712737767337458267170109888411198721763673337021480360952998310010483359520479064283539801141837109903744940907758395209105399207134192637419644957719297448252224265621131110409079245220135617074349487615898711707050316084879111030950931738236612077793173346318771077148192788593451436804425975411122852552485574778134611200843159934679206404982292223439279740216166329258691496846370750135878945948325738034150648869650033442339814444935492690689442538992991741929011382284018511910595272774270141105439558161129138807986958294883984095192112256754933122461646858541455400624629280223733364901516058919333242676591953193584236163498205575873426404636079757252759349493925067956647638903472290934439337995480036238156226023267265562071874057001342962080881506446748358881495482822639992541820515305857964267281910247026491875441316142634869022838128711643515685627901532306857708848579893411215792644788719203862415315540600514360879514173610271071729898198095928810509633944909747171924762303957282168425100873243838608155380184496669170697682857688122523438234277288596737421886171505729163863091132884029305653141728126309452006590749333017723939359188765822872704305235133801068840256586668405439471206706237425714259233062014786770184531379542358898211556700115348903873883779406380983187733084260598935626006287109542909460331161486442659214581214502901804804631193265088422104972464195172563686994811298415911387679941851188793655274998342370096501562942685510551692431973094138102303499745387633463937066032740549612528487794698847057316960005846978662304753223848108661107613111169440224057713768521719583498980495628806058734459090285027040732505786895501942607869090155089109114565224416127993165510269649577131448189580728891380507527990941892716426962081659765842616637705808390718213309134365426772487964141775469522551011514421137227592490110112946816359877286335705352444575841170382618094008512200785305434248942247130827971657701971032848161390415670088677913752246352389496113944220442728660709891052531315695464554559630137634160955323087392588499607520531445346305932071560145329200768522834772122356968835280319013584637732285463153936160126021804250974138113314183783012471478169609060840514458685819997122138982420517500982499911103033471902711051951392925345668363694669350371725367515336834105612395024635969734651042516315470033192302682228990922323149775615780087412781089704516891976995623627217471714901115005766429950283183929666939602594623669810714747451288533430948158617715808759541595186485546413186051262342823946842458960982650317807095865226867635580819502277538328652521253279969218828916613808046212657133499954039474947596908685655038807794016028924630269174304521826090590305747160027618062908290962026380821272098138425249915014816538625009231507196931061815154645153809880497824937208910188233147049473933845593125637537060917212141035829188954842568776351573169060316539604038038579941669415176739505585406706247247513392178354786082763313330019595074302401682115764791874263493945679907917983647369001453536393547260109221255914738268283901871002486919255229880990175488140003323633623781512155153231189257702765121888783101905765194576330261990138043218818878846617991740055326442294776230271008257988209972269680825320195421955282032901193740975634599557501481518429166710031200284282565726293799408144701342191923969948248476760689283790421324622761566100831890723111139889300166333929288615309464130603755339798684218439175538593373667445629815285798724063257319259262143526219101247458513100514739714107699974064179482847673941804247479018046443233134204012385733906906787881815269898530242848100635430073746210375168834912911561095790086091574479581121454195323754429176260726719677440531585621683392244351680363790586438405990357933299821229166889227621479130102243467643945374715658897136336808492538808769643729093698928042960472573593101130302014706685248366620177252355116184735924179147330148146516869611431001559075563969204997172158234032919138662420451231874133606445011492356857959621040491805785336915393717242686019118192368017300552001132141066748278852747461862742095643979499162421980640888847070599897333997935283862315402441557044829514814638692910485492999603861100984127045059311113623126899215103978980895368905513527188506789341271391546016955135207652649046597231397229080561268928276790727267906495051018344359244352421103088739345582533587709521113424542034439430707542340725161350417686931004654914229497592075895527873417252559165012504780005934672092383366491996339230465405569152111770529406015268747847803440462714172357063814495116997071633451807924263472905747708523888397556861893520406692422619373607676842353097549511745735480378090516201847133532844261422862920128031024918263289167136386579822594730572711328191939488339102832033871826034328777995943001666379701533125283942059526752499321294576127690188366107960746603482019204758817559678075355891049149085570564892689760700896934870649466813234701341169368706472765067931562992551259433864494404376595329782279428159689174786133335309750651378879742895426671828418464507183321486169083471786672849752998866045422928586457784379492163124711809361364525081613703034499028086947098079022559091366753382442788974467406899992658158937241579574611340190443366569936237019641051378933096245973016617809312223758427075704000741691350029832219003498207692395136777438865290885005555129618882843508928019223702592158384164621291598414967588667434631033942381035699284389188282380544686431971776496302661922283569353724119278698405115730008703624474953120197940084221354116541396343897540722468855169867286082100004152578089008128811616753001774263987114288361254308429090677782760353117389423212438814833795097686419564536512568794868143035470671751196301069388386238237109696622837434827179751197413630042496938157921875866059958617545843582735602916577757182028058933255158842025878571774318553605679254007788917130009489623849943062004154633995770343867748036411626464786142268823495699867083922700969629053990300418832491036013796147800032100866279463239706101044810087632188412329292171260235477661094614673207696807043005952597392094799111242318918451307315824775477018687886850884000936475075389936522549092861992726983500659308187692334078669536576038575192652343098778671705496196624560184383457950996140786901108628799643219804899686458615985574572395282457012186331814678484530210597078656178468866496706834135879158895415881014680875215204549232527685534333324511131951491409022253413362561734126144177251284748332643465009518419777375776612874775572525815911431118082967142261648865357100329542308973002575055900788081777259445734231328132548752769291019683607497488771700375053608059859177426374964870214798027737625469141768325643306125168141288670613851302851223855772045821433129942654832492645207181082306131066150768764214721222296468638648068901927289281747351019157001739250299503702268833571931343152969798823783111024749854510214080390906608365711771943243658055121480147437706055213164785483850463784336891844313189428220446047617264293954658847839253769674821665155623318597822909911514994620033373596696105751103361077808532468270145102771441751786014117751111071806385288633290062646017440603645512519150115731100216027985512173713148713650123319240773286678359199984705326142193788471854453106055551443723467902105906410894801005648578663782557123226123482174974101878009100760806393306899086910439404599423768322894630534436671839149129754044125692458949545040896982597072936804173420161572052367190735830181327468828153586580419495255703151759332334800829984325239320374140860591322410313438511654057564404456006825489908946368985138399592032869004512484342752993710984869578620256030041001223289202695128938373854285970114368074645197546530027289664320337948623136794060125118647059326441363755869592896332422574824356160132205072031220986250177529348289324530907952632269748832194304711151975998292665890341671144701956755462078968238404360508723256016288992883953595356768418789519971180598424791133252434998656699000805416278647073173315513336732574220300992353584592677109592040091753462546127903729957475138272372896008591738933895874965733808008773362694703282780945056250707870409574819661924243462850776336544388626082470949340337976484719870824827503822575672176359497735044363443532587141734353490058700004414348385962665387730888583408878521628998263800110419239106812457364629734911846575332071075379273387631596444960344278481861463503853525627348074960929806242519201126643518347541920928943063687758950666667194866479890350216086948507442239957610338679845829373946124187008488773666779978157136312931938959554989187949198564288098137695279058812413813619201753668986879287406633524947677078132294645753709765407852751501947800447777381566217075650411883398010106777670252009896310478382838365166893113399583725614066363397203312939221983599515780983806197531469943521444978557953910719038010519861021483280097827552377107591151286788359124681424112640563683776416054883485657491405925171729948299170234696242972529471232235632938263091125658283764400810663243231390056431522682095951055131208385775325756112077205920140421683948451957720287874169067305760114789748954696775167189517801285277279551817339139690820469611671169213414620484426911800231416969766178457574853924889274994845302200559524124074031054336511229005739996954403502047044881733555555415966027056211711985246489869022721751142301988203218219371411562316351990375293201832885500977099088675797497486918661713407129440007240527102130114540930245901995609301092600252962080883318301382641260478740838490563124385357102677650816792213636207770670300153940344726997114707420292745723110184424613974031283429185083945959690247752262062651564001325190599938011929962538569033270053982447497030155624996245233523964812464159510129837349863998122952928118895236548198276671935258197918338810125059189863944436967151938345970576106278204944076307223478443719331462963233097599339996063407105921396992207695481360681120812324834448253763769725725808145938443842134652368149703544299606037438626383202832668377884119615966736266469429968181533299325019427159244904102579011346324060707239441641239797153943593763805979682278361933223663333686888603438410314464812186472606488460039409033449001654985140282726147858790079719411189692726550367852085648014425493999700893239942968045564440800627321347940802257748452844120002014880803821651427434021023001101787965148468769364829857149082072082615442576600143335584757191909524228126246271247072682360103753315635298746296286534896660996609881468839991566090623006938146245330482152315378620627566347624611706400225569735158226906464125269013487912639647417814548893412033838038765920626527657968633451384531417897693787549583111209572137302297944305427364299763710723450260632152373736041793506912811391925893236379759947658945268180889234552548320400944947878724925190879981611658666991941930798280206645440540095519836325890505676625717219109867445873227367374763653408657939665010117204244977111491736929300002623500340154568611513885841905077347042063083450783766129673149109990918019586312807118041211307110379181172510269598668681252408861606315403694833675782062444857871804667068971409381732670031980220236108875555273259421191316581447730238851269706957458409917997666100756534815165306006776356971894249953558036824734366566330302913354044250446982399288504961297522988226600362864217147684725833065100054740185904255747564357859256844655571929856855787634372300595553661236571471930152143703432991186635770408749598923398828695277470508561328627859258420691959825622696377734989963469159294536960073602055599250630955661194635937545911682021204928651301728352448791993407331801450831620943879761323107988651349977931499865107845680645272163063213622449944293232636086712566309643338772093840601394232789687536179733383639438030655462403188087837735700219151566935629567369126303840207297817612771332378930395552897716847698779353860001505109440804609365493440592526680007115305709609127946385631015296059613431489998454033666950661922927883350486641682172524698190535124876656230791627960994893964145641330723633320451053447920762918163734312608446028866055532679251384134273345955795392813573249113987074060150027148558392108878225316873783540749183755500078912276837075603955859338232020789752426191221821437896501972066009427847922978604950354030452970363201981303488291462200229726715319880018067500295263696536013069579877319687322006914083662682416324484643800350352206006912921643912735443975329443636191789857770060716768803831803258784811337813340240793431429741993055918599553676813212487685383134067832040977605799403246642191384885534311700701588697080015388407562978577307781570104878784204892408307684878605196963124098530539453518449713190681934626930225558501672015186545097576294041978729858359034214566256494780511831233632323244525862071336447089105278568636191553856021468000084559599979285892231348081621417275868022178444987483533591279005900566357162727097893260546823903048534166306724720566071093787427253112371526616701070063167464044857074507388023524054867250343721743135179436467844386876376339482143678190360945620209540995562538446750982664927680384007244211879071923691156361279636634991506559905390364110671846846398326517730525912178751174495447262442462983363228258532674928327830319069587255376507459871354406507174521167689294642299606884627268423118698563333622738739967769932764616482389234900776261482259592194832025398265290811140738517091989276716140697001235479395080894404903813006864838207039749971572637201749397201565167161257956065044965138432900233030167726317066175017121092966450437373871004389430658013399784161271007959983829278439116098633468658849228146676824641616654616661845035563782878250376919563618017849161494560142368775561980613269855500861523618086272209645264474948366769161687732312237162753279545898348256762750460238735358888576619956097918899324962349580569879180861718659395281105465043361973878836395056898352374235096004731589335488117482261612831230303170799820052440804005865109428542898968428972339002270050721367475314627976667060625868376033844166730665792230698404439678603577837604411868843735987192452110721923183443697071915827757122382137250601025263965555617007313018262989235882819454295530667015108615471671915424858022886331484244249760577995653666604197677300213965465996103366447465651966374903338241840913137495040986602785579992532282277178756717373942452688736091724028637736525810260501667201755859939205863634145986209011738371221567764509310368748635137961669599020387485573815915253708109965287149482796922683147122858457589512762454722472740190604284610851984394248726485087522652751100045540442703039218083287180547751361695285268999536937398673258741493984966661828732084431577461718253797395971253475770155390550138337381216903612821742002493570155688277689955591720797543663749274795162861156186399975700388044125246494680649913462437799260416205503659710036878447885232187005111251638428729330998835093912678047932560912206727011188944161198455816216816318822601741800829350876641924568734857714512772525845616796367662761000120457840470878863983096632472431441945949093355720727635182544164379794248826708904753678541449138176575279952732294009631092397743367319706166934341537244988924301938661781213267997647244205048311245629231021534341542020907643078526030505278689646880183887873349206324144742797093054638732120628279415920252587992663850838706058031184533647773991076813528893356266024011274181786210959748815806733600362029395316480414723217820784169388922379026154820704824413060957347896616188405551980344460182157383326336092829061403279962062437675808165989103426033861633529455737197353212446603260451808365908164939106170801844830609569798172073480513326792399737612646168279183576581652885186956841317292896892248390662439289398699799266925819459975915968452310092877482524540514104293832038503835203437244432520984655872065213784744752769568498184980440434456909873912018534448437705982291432824600432743538731330700703048425451164484163413334944293998231342811304605316713456956221015442634641432234531916160467547032086526133433972172589324882477549927540889619971648274372348242893838369551843755093206260970317157850969730342230504427180132438813077598372132578316244425161166903098582469573592321228569493851963622639703432967611067837030293794741639496202892051037341413981018771733572752345282829649351458466990002323977685247382905055301030275787113685417534574695639701441809791914287226878666710001982435373784585771810118917476880417024431367309465645921628267873352556690889679332146488774529727958808285589317315323864450765913416475899713685799578408883050533733409550556079340722680962356682278962217291683480235769281443477204839701425929703806543126009631459869349780164719778963283303321171834438459717458729886705244153634352438227277358222838277560996810192666629897506966668897532233661406971270855990807049453482492851061702465602111783192508352316937444731048107098381159457444263446496678588596025535625922570719008326141869464463457580045604934444426808267233600138574749596979890658982538059860586775325175058353471928078888532768698899553359104024433246712243003157834917075282025466588168820373108296890338607113016389647252928252892264324150032404986078383552243804534519752087227614382223960696922755151801552282069471220690486409686939850632343235108925279864332888978599156347890766737060402630077736362031667138124612675881453011304798656330333350256921972289082099208220552280023173290645034687125872861050984594651104773866661592649893083969802777087292335181064711289293577269061678461901073387965597845668880354098670193621629556943518260967310054031435121403409215875883006278063849293780781852426079999722180234473178613932083924259346569024858249514903999645773448854230190309588758042290927097120472786130280308409662273420146637359083704224237416800834452864640616606168405525649707695931221769736429242900476021862212693075260367253122411390226170230331616263547624185552480934500653392099695418016070915653964431953196896791070514618920342038688298064653532805639963862911419069063424261211859476560855757635733447089312207961243901990914581986940737631134170596499363826125006321469662939414646536169346934872134633649787491011566603956037884561183792188210409378852917546082255187359531196676138498192894303643511847966174162537564288573422260006726610040683719387874444312530359837380803486719492426276674329809649301767053039317417126215701565419917006036640141277645070530025569227693238554040269923777120848088109534695950468815678674365448616411309098331972118926794737961684301313537506287553699921315394692860108158189427070071593645759144000361912151023558208284341899419032761145232212973122811869275787167498982644167442408071318167696974872721284747743928481801757541718671200001534847130160142946421283572903757791057562301049886782531619865291262487582808443193042446749389527474121985024405547147491493593009321147623611712275831981642240969482056143197296554453323041964879852587489785645091166579264630670209199978050797066684139312172635951553846726058919862103335266214790486661264337625378016958714782063405173182707084186171990899441934560861997768314712263427235561447001110381683466978800029559744698317414181508171524520401761514376821585262421241489178889230118887626772060055658841778428768464053995626329131067192048748721483319311920037575313824207055884599885938668248892276472374043775662590807689784224041662061031610944671644825447414559881810885254287124555178530372372103304215370467616230261099134311873715887993383328846945596899051099425666803432554515948952051194655775370562021676495678026259491211493905537908259845067840112729943815251255404569577937598438351811799560812816348984002900821556419391451222407305448050783248081517081296967005434748529997363056759729666222710048051916947970939084461039176063737592609196095396483316642621336744041603186820220150191568425442486998964695004590882311343360736321623670771886970429077150758059909424711688958409406108211846746039598119050279736229884264102960298097226329536483323347138901477365422784507234999639160024053638693224956450181609028023357411430122258303022837327508992012348596056698969397029948382785847155626181674528197859621112621036574119260463540769748116384074866256865354016207777623620099733047562886732478629249756984119700216770717114038656041414778902284886280077999293027267881709635145292732212905560073687383286173845501270237880138810867825676463186564188033859011168857526335411015419530555702621462433440545851000467743753547797920826926761974058135577404473729268451944073704937870207028200111505106554504884365846271064435572922097943850208351861214289136864913073046336165822096063349597906751678229738065498324882539441936778484962353984938592096776149977235588703496021491838080205495632815302268510856185322756429210839505594329369142341948679045272967962728772515132816826510315336771573204699845878647257956097456694620065473058627254117051894388417066659769129165053234859493731840129059662994421404437656039215647944987359571471854906475823057956681820661760853800126665695917610224058121649238747619183859569430600262581110698808717163926284070860453343895659651318061324900008501378702480255442359113854973041913805518270964878332462250731070575771708984528305832874080654504120416225908828148810892030009786896240292959248186554192495334889298029743270467078803801309922743974426271138001183444400354674827667541110572232037881311725726831942095870936871913977179265803172335307249635055065196155386845188914651196346790530969190782815301194223834678554097050460552213887411187306932975887380105249772557657068580091544869972316372615479664128321627595182047227276670876640456329501351563408651203801061522881612965139333428400421449806750865910664087784051793780356614277706187524353156255649796947387518313785359131567445955254879164949903402550444489779459659214052105274181696322913655384057795403832314565346606466181622461613920619830631381288488657194429292557472193362829635481417860698352068591014632039343211755443468109327945556377583874879765291976107935952869164748390603973687089080893876706991786528180656509551711951930267592172890483833550403133564622660434602205745340326449864008076073949596068439132340627160997695203766341551705340649264883971505702139494103863032959853554424184936140490882852014055999155472520553164961943424847943159521057924875840899588966421246513124510916279762657678703489057815702610070467063597873127169462538421200608366770726194430176863709828754198374151145859623907272754782074198113060176201109628982602820069689084406819022257487031514313937354740560670713303011827226463185295769061100731710397343805049330236584264496339549987400360531799038480175196102423595634371194379271505589913680916179276810032084181568030490155405756986692552998001565130747836200451192871145403683441036744949683800939196196152072050390753790641899383436114022983289596311815971046740372001029348369594311100348309988808305995985557712215753442643577750965980366293830505980049134233727634845436848472781146619681612292875797411379053212120450928232387496886296769035814033996270163993852506211107392156075575876152575566261779403605320917218077840153874498321794531331929827979556069444972516079342511701496977322176562878190461770377459057080469408032056790255088413091516712943688297035367611166236180698022511124598224852256653773125183289377051727306241711850359251818576510207180629210509167232047110943073374876977529689517745060097419665529608460503186603589914138152000554849419870290337611332414438977715412492295741099384661541918984514659487843203955050701542184952884380903327735505028950593190380394965338338396923806741031476294795393045577408336463687018285307483679597894459866869504746235313631420833626944660142079730461210009218480304940488006793687791696571893289148008541310520239360264908784962287493383498676339993348934304538688424570869339915062948985500641308311055899922257328338974669711629592823353986585705255525694719022119823609093001210698493833225957624000541890388606012929688366648732097187023349293159542896233913817771594992317756771411778826291221700082189272443678420947538607940108513581916864269430578192889608801865828218923850451176854413040288335745466876141300267755604607440242153548806480543878749618416337729852466332804643990083225567499357824707575736246276340570587697652975461111464133281446065773768657604977292209758598377777289190162068093196993234761336342600035094110341497395401272073791231344293981537385284618901149977871805800802777583258723013383935074592966368513083053080002636913999350932548587379197406219738742438044119953153475276608709280759579486003432180255400589139774282514617571047901960633212198232980275285736740956118942592759081304930829864567435552910260326768248169319088155407661403445626807094574453918297336193158035546637635873613775639821260640996254197238067049033500604910411999731115340244086961945652340221282005110254289563834530312299497948032247956180475968166564056005502752491991180567349237578642631304838731332122376630398236937358879825301847500847240877689234719816243571113257872223784345335948481925992106542039991820861553561457703483007721335446720180139839462301683513436525331470477001105859328957434381090369165157468438892872959075683793156189383634308306236227102764344497933387521124581615057395643186840791413567751105776710662857215953139991864100113235137002754092822736185072205554634797843976895020063302365565845291993889348947582178698211620611014123190288535058177405351234937836681169820493700795318202606581866277401844488406135800430984196027464400328204019054200765665890854012729325717139977693766384140998721932969061785420778947337541590516875441832929081497279175664799826854565597841761248045637525719839027636707315661547401252856735814435366421909665667240386974258359283034580456888883630874538848094003757685274320888828497842851889829244886518940111031477134004730960937737791865749791966356095619212245121865021312256751133212657646849290638518049685932896596785464295603217070376184837524066631093355061873824573835975174390075801551266905787736770759613524406140767945496286625566715408845956813643792601708053677984608703305911353894987670683725954587330217639225069335472461599853966899129268210239021701535986678410288821793620463570695058925198424755445992281791764168761547977775922479336160644596926164815136603960785200150522810784593567598689625471027628291153054026949632120928741118473107927515645068363198180642603173620237469268471007738408563296167797324811260691775664338158226080737650647862948608252986119977419484216885035377038714383639333795058329329694820822462811385080111759217073886066822363038642952053302890160921245358018641793202097488871087373229543866848185998311863696151121433332614544472585467815064715047656202314721108223258323498770940053193711363371579297215501121395348204117969028643682882255788908857756950071917593176414006851779585055212978537561745122945366323278323070148264790691985311475917071917695876962273135029821453875461341701686212376877900317571072535783552217432215214549569111584795055476036955433299282854704542633810556599316026893647304756138754620219725824046648851438588866832134228751604704479213268648305626871127772268451329903342245016446991990770599359015059011203879427757215336300516554401698673977571093555165689089281044298465150845537462513697295901233055456889360850941051157017902876508320377539607015278295347468308365124825488856315690318466986985626676243931106831373037167680484029187440437591675073789352548668331455175128572284019265782918616441429847359104987570779631076017134228110958956694598845569031888996201353385795465277332711590413180254107574104771897409307030318857558526433075937064954429523333054622862115722988215344254622631785172284253566854442712475937505812431018109564843580743877520598565291014854046951530350599820060261304476197875151579213963414464816468746089917726783662394328667167601897605731847496736957631480499657052043144890125045916347623149092312664495286707881487049682193295879175514942151018728164524166280145443781157834566161614138329820028283440029248778231749189165641158788667253801200844366584173797214898927460046237672243610186730724020808438558040206905256806486343337335576340083937073200874393342044124517941175691313196273418818430708458598281514330654939786835730907898750436357993115055576535755262252826770940953543517689956326330130479801517384222293995960186427951320644920163124368929593310978473856752154591649181332446943415353078697204519151295923064418558895850540733283704419679837656063705397081066363441632838469171431056478786875803457448433964250972418849666171419964989031921240479793125228714251557665739926409021460266032404713029376763051986734673373152376769860139121474511620755468420580937660248689762628093879614985606675452929806727386733163516577391607691654194144791048083754214690991041926285110325192126078302846500813580490591352360993233369962679548911134312725550540945098144296739263775130340556669791444387546625997833185892082094517384246215503541671586164393633295360530682376186907791371570030618630483796624769752192620142680935444708204529201898994088757377067060527049706842193468136198459044586320194755462068234463762905063326796771365060486829816917883416400017187703030826699644050181741888830954021708879526428107059242415509435899803602091295171948672271295913203775877084611272037563122821967967956620972826896725774329001084296303044399130294897463504867340208991065383052964979530792601769089527789346198717184397684262303146175220422702629080022334445009202741793977618836141238629556898290627506507909506132638615387021968153064739102338278609949275096547999593127963686495939425962742722536901473545785669682147941669979246994903798623398220241091630212223815178312542126979512074305912098463041701465937171569588704785808602897576986633242941425442358574454082645588100896179500375044239780428290985175361559134623573243593431678246557277979774617201953632644911230292374099821123979421042053218377990321035347268251984486799780097654170499772991087994637183748260763911249803672137029201956077022060476451469040929358981090938002277118562508122625806689869004250240623530585370151650719706028141205582777302974075995563828935754079283562459353312837018295360090543728918066025726076307474947183286723491860145345050304387241860806844726407353691645081828482211549751161057455344901193113348890789098468538444884270258295526346196050749226911126402985954274587336408249654850344551999698175298781090164882252994727525751754721777374901685590535078716752281638367031180916183535117909083803560221867320950873855828185961376880607511534431110858869105228260518018987951504941788850513325713726269299060668061124438133980305568119435694342345841555624553027523239267376584153312276589109577576828262707085417823427147784426635304820457051460149296126772973120755479220683426709423220535878278028750282853414333712078842951924112441646947724579306271093102036147105221068576350733854794181326457436701028456296170176628335221277262141623766634637786927805762394988976204626096713652208867974402877770442670766098981114317728787566217114330889248048057409357194366728551414170195220743146778806766907783512541604603075614337423714223219904608557929596292304158244828721065362569072081553653309140390344977519257629758004154164026592590002214389371513212458701586631534677732080708594005865130552105215211354248612992172651381714778899655079391534981268502203083747651780895994686877745832009440468931355695074867824610126896879293682970942365146084904537382165638135457506795772424714635419298205803866908817080854876213152975006051982965494845551642328187368950662575153425099750137885259783095704121463234925292002971550286072009848540291596257817308937539949394930183004337970974161170493929700148332546359343417185835821124777357216875013659860063651496898509672843253506278598192057299819323027540075153614946167979522637719220747130516053921746222480889718100793684001584294614398008211494456420943776428493423436493646252576541267933694962562808357076511767973602558343603544307394722478278354868544896510920348520236544278247429538069329338300347669357579970208266519009099032596498449851188239344587113919916948953623373537911594947622179396451941947633215641059217119681739234936740552793932010369081034559928655686823827592140119224325374061805357669186491077917312719453610005555122236069378027603864607141834194694790179157995573876261802320856249903842321740008172993467780826173221887599536934393203980451555461498146945598790965770239803817420457685010031048169736514859257885498233863092014132291608861393543386236263521138817849042676303597320486391024051159844242938044046140628654043670120822637095361484416785440177932459360479815379160564366114773322373091041065993141715064168245270012638430839036049447330604086442432100974534605030898713722674519066048276256229878123173841804025791662496593079942920800480760694811837323711022950751279112648162869062127064521216391373550338743619859923863453488899780563812624983868839996364292819199747871573888781498393431197270154189883644729232252204954125146430418359768650485790156688178789656533430501251167114052267533776064575502506173212998961632391378214157582583228273549723565993007108494258767692010320891929442051147585394875144682440426976686138573906087173096511199421595120414716769853449242130650364239351348905316866900738421899802520672844339446267359968212581059553182238889927113426294499244516506395330502455883145074994910765375810057035821824590389041722782375991011833616046041452922006919194797900240372142904191617937942837747186843545923807619393490763104643251041094835830271191176269723195213493820852093457418859681526535839120526850604906230829460127264825149619746516581108506551308625719805898117299038957750239067382871572020637731406440288825195784802134209743232813138199987526462772128745051135983356905283914202823541255565887913337799362401156791406713902935808568784951237020602754556761639865145586510200675722249113884106943411913195958600759836099386393440759063639128679471375667459243143307106396042285970983888566377461328191329483883099873915783660369825016162725019286950078353597014799430578553407915509933080929430315993740735884125796174882657857523682621663052978913810615258891005282735456908677044173391147405811454788579442267774221323474737058439733265390613702619512574927755578289868345098977656569066539913854977493864186213454155584502933173879778186455294520470841444291067662487101736643807602462449900907666183318245645082499700434808734372213881549850681804637904780526988695531733101574200492478337085278686941532889457898061647212057916535162990569084919184740773880072046134872528057402165032048172694662111618125143545931331120009899558521048693444547032916495497795365034993532218470183518201636797356988928893212484866702538089083447940509468209073543268956779159670881930984038694177668131657920498966259010677394005876605503501221189196277800580693296288864136659446809896071384935099939580724683888023189315914598188110584080574466616438821663539481106914635785326436512648419987153925382584247655095163751470483129220393130210212235005786294179643396287143994720484410020005540218921618063646850353462728695953419303159516496677520867270269930079149888440292435282050041591096002596848961688759281604378418094191729612122447806548040981811986580051044897240509913812890014067027504340840055712097944439389507569484669303490505900855250861061112829004177314691567197266222454568597750875170375910556601436623152783135889595605225022571180232686841163038109691529812727448833573011195322974232978919262335440019522706540577401462253023957982024032279651264979246328500394126193776827197645238870282509155167003726293158641024250366459493838208761492270942955250908268147331095044735246813054756097265055533920189093044826147073280502714301741304922192376669345381494669266876151881804438974859115215129618190890415333206293827984227213773477748170801156492522351325857673546373598563384381043286639626284554019756533152180018639930347318864560715642371534580040704298959781264964340307826492501893674556504324343172376764944465673612303909960840844880436747037051263477200798502418022923163908872642134916850336387400492294560485273676838857075625341282451282867892497021026188600746281973952734810372830091446363757708625595321258801867251872578731331153074624799439012892242563253615827406612792336718372828243014401750253614401634118102596259293103458442255160277295108905619724451534020268903947178768136777260437120540203818187991166175050141138092166629322137645917257300617179758856635156448680659459145643381758717110415569619402473824537706107718161696599318870547744137335722245629317584472294619357197292907383270659082670984674316466220875953240628429836400914429011351565827575748982879891032532548221818404935266828601065043611269409066919147057553088041348364267843921885776867262933641665327721778020475065121597469649971321696334670916889228981219887237617270767743519162935803419703730284323956676754083149451559531815643180798359079121904513055496846072227971860021189830795483096768579262136798768590502194174136843505607759870184790429898916648879223520757314547024860688223716480199791567540087272308150677779807039460570776564981943475504664563119554367651401014029007950206303022261267363467230449033776743993413168434381429825259268689535865046336915967476206283217227891330382749798711047667888163129414470619035245957674352995527336585751672862855097189979879575523519120550604933138877267496415137805431483260007454855761212622937780639406160509699219769229157522059809584839343850072280387164453898860266709673405045821337920910384663585301020398667736121982735853886714051541568694682548686860301743662086387046133493180679534270018342074920325302478682095260349641445245975312806793372785023062199241006445263295689887940388525471644144844432784988547900561925396513164880967910191687227748331380660873559430510085862919825955974324972778165859974347227434941510788322130201735162071707970610866904099496697716111702536911744404425809199527651247555699555448785537878838763476807433143975698181614314455370771060387932749564017689839016770649959833881518053874231472756245924883516767990641816244015338174537025911659093133586362805326035561468562742797684881123507151892349704804424563791909079508889112512342097663113047255673701985917981507692622536482320425720258846001179274691057267211032705799146238996669218459679243230273955869053175621663876712837325414268842417256544108294331543201849645396117497913880055077486109488789072931112795329559460380638631899805184485506981423823059743628616997190355823999335310580185766919587719793871138017941754011129196400236437293045779392759013638744782999182769669482630440000621660600171824710092486342669448563892146561574989462851902541196729662066238795118115199995758986961683373461271665392087472236147309917904218537180491765285128325742004321076837225405865529440353038229117709505564061044665213843294406174473870429629132524555079964050081924756557437524899627428234063047632719043787906465384471462910209812721707487432055211463940392000521380483826001555716205617050809765606061081726728193243550100154662922678232915731046177493224433614588614206710468593712291154530196766524946510906829012766363136069330148673351073331774394018509343490517232163148882618058343233697732424253111278556047459680098553415536510487708528871287203020863862212084802449335219391467987289163337023453613072478114525387536376480356259468185174626688524498640578818309445793681069787112905604100313744616166003705702683285662171528451479942672231379851532387767869585687773449085624723338514687384912777197649683790205029325839064760880846649566801390217799116865509576450626018386020854176031502009795915642789687202962874534914463384649058468133980282030327885823618146669614415563958235093016109147292762013932666296447406368937988357008603525203726802602079281235762256054264284122346424486805569690152889335097336324313978859981156355328697210426380328397826808646445969555646061092163041822318672462518349147827827944158888995592772866919603103520385578744840335230830870528798787582535423054010741004435397467107409478128520818345188306238294403093131300742689604154942763994165364773875215807002302198316694300069644074665709283077725629942002638578419534862724488587054255959501717394193333801295697578830550312439234563797483283036962157649183391536842418528262177172450702122520400232073196912444743418768053171811519007740733224428748386442909632764700452397322982171557271862066258783203237053085649728172634909507006199884019937691554998669787235265845775169995094277501876609548633243306988353428509946229037017678334970757399115345636053663462244340589456977791830676287344831145617379556311233934324287968724202201475343882499267970630386132153716190153526725494494943329034759779119023086121849339056197530006192543904564605669213296546125501648769743180165225405272829406617913508897951897472017489683001363474943917255693772103360137466085051865188933652478831864854107858562020363850555266668434153962277062735655922818038835448533362069953904772967760245673965514973237909794229085147867439198702521380749825144955837430192429890442340253745015840413179274445008360671341432088602625160870703834818129261015905992767517673043030968772373033551407805153735025329939695376079419578446424639829971550324650227953565131301345866760547857694634237814172143630036168280627646437329877540809659280970741740768722197212993377201817551256994749934250918057938777670875119930681155175926097512118056380863131287696276469479898261939024504325995780389297625299378799184234968766024296495294163131896117007120537963226655378593269642775947287430990122224750548510243651209444349076941354003126208739613877340492835940738838117664332591420226954663854186872716185200151350649186780778384055146597424620566152777397025112648427239436191588319183114157362992765395555164928920985791184928547326062247081223989191365782678997833569947806454671800077261350515533814103110027389156157320803941889456172473591932161750072359795784232126865427803628305392261079073830986125547932597866756502710361088822493119232209121657243197616809494940197595566107094917551082257474083302931750379159363810322829432329241404673023217202000479430995776851902227107881571955986075909800156487667578763000074968766231426776810454241017306525780597406224159776557897278883568809477296501472996358618545825556378781716500870195432982190417054630332990902548307391133184311783814457970395911332963761965806309062211695629228242917249279741960992005633980361131781703770236660388197196275107200652931579673085046845924188615374562008545011673901746131283440161686377698992256919474105016397604647441239788465839680866876533939170507663668499363981489255560037365189274243458847243090765653766885060613010841764323160987721627598510692036728384061460429790055148708265700916120612280874884700077554089920915636814163631672736330730216559840719711518798154287798158926923549305401195180631604962767439375668208659969918904261991179332240652929310689693514884625618354739505609043248753757834523414038470471498591492791040809505444352090211171208797808149860633903254493476566325271270644807154486300950198812290413478905038065318245796467997624932029900235000010361195679509717982149466580884474825672845247384854651698662501620495553488238345499595435761771439385726604621737682002718307845989032776590446779836364554372589609685005092929387110417317442525900220902012959051002991245656746935297755781722379502380364528277991422517230880547128208121186391121313568389885513845427313704052916103613481609170507877296364847537366470659636033012880487881400637896129997306337817176039856058174656828523439432680598938290743418829369065277857234680192603899302331603858580151024352065095505728316166658535376065051139635679134931090558557497298242256057754712451964715107237790571916692889249524898116787029825960479505351708759040592195381768063712373149732066013489965173848922890560277229643639822479485507225380020765063328939074175940989521572318733711818457375487187158064585935220846614696582982941578791900128642591974690471785669758943770868316137713845599562995041168911719562873676300389542427071262582035774124919722327102636520587616454682869661420407677087450999942214129004576557541893184912519208007658365291370788610924737690559748560959708096045509287597427184088043000037570643883512856042986437258136115410607065231566067804477082667844933487285603009798999014514797957123415261290009511897546890089520667888978746243592787918526599747450621311328935031829916740047879240777000590739451697898438939507434340640077734392536055860648367615746078130441299728354546319141983503723902866931254475095101275995985582989494647257702109821428752741954630289106161508557029395565281048357272009440043402261253641207003171643660250435202455334862141972109959153351181111895216067178655282375368601918825575206200192384252243991888016264331703708812195166377063527384335559468834063757420562509272745487948232126883061779496327716055697493851552349863162761993313528628871609739878553898916857635628909814142235244436532389024548724637782282587773336653859708542242804028511204557204762110513917382885153460338716427368882528054276068609696481342943525797963599872776858822889995458890299301258074386610910621764564667645052967147168866865372609310489275789159430526480427423093197922487878999347601003509213931470715068050361012710843118477791157006877230071191536514174019946639184121340939723716086944740670087939436783260502220119016967618550864452551260328046392633615270913573582615917123088809466155286112130323379483928934688752446699428517722942514831919413328460777921005285336286191400631423212162746534652272370585900945463310571285448067814640546999453137698734334918537898420427049858250715715291739485508807658798254104108427303834374392693493753382574496357384254320065977670441077942433128653376201996444248730817829064563091445810848884228715607309035411044010755153553157108685616402863446322966131793666986984992216865191629167954511580282223902546836574930563665175868485814856408205285047498053943418797662401726994972555148993412082367772281403571774813271468202946672786090711875931593738410732616843593674445153206514928068844542189437652213689047736110076839764826358653447637131603943838737423035483749898341692279112185525700502696033878715049638239754243261399187200334201734004186313846136658048242335553174019186350657664678767911789230849260425731791209261058903653836152747066133372705921381130177624319002556894395831166243219788912742767605302016772271411979536265835741937084943376818197558711981225690894302958769342951011535168033782399727226936486700827374889326464007864845127528216805005382236712185062502286571410245842777914467270242750174979981736376321808856323843991734825874225625136934917245190447340164826855665519153714768875701349532026966281452812310561046857656568093504297167450616556614175093918593720432460109597379911076544596592319774069482127427986175961694690299845315624139879225596581529500436109929885935090212938437917321453591009890536571492600679424094565617917349896263654722390177649669844034632412592454591840594150357698124441550433641320052234734283113253863520251454572503765011659848592570265033731246616059111355832870102456103292018040344611434746321983847545056649603619917382730989885502079758147248961210229371418700450992851856186324806917696651298719337802805730993113691968834859081926295586694526271754141399486340541850407106808056921724519438123144736282367856359899671444547604001335947299524018186384075454972381214801909495120288346370705743552190877277810053840158838025408951690049773274860057463597958692376123624535629730013160602236924155590646579944645613566096034600640273636300439176696597640046424810126299181970732532241851753245924557553303402853462509156444265415521247032516953158560274123834967748951745874461909479341285483242040575162733350121799108463731322443339844038571481075742768255399248907477048506461382264863047375507542426640349616747855228317675907485026447507975826726642139906250588771889039449069108035291696745530231657855607777568077935246034172808728197292234615889005158124819583342837442120001498047212987631271229126065785962126185365783732121156427458107372277287107788442738003380416802935982337907662142904958510162786208477807400123711602705432852360438168163070256055590859944609620299868211691122117937250097599719008337868307096802393379984448742180454218389878939128203910370073450446765947484049175127424614310112304851888430955877450491830190874767139136282241339631963876392428295394809943132460472414613759800650974780707293307350046242470033297702215595537230845925787470415878594046037206995747610366283311494045557823428835179371519190872205856357713700558867935317303437812614228580651569592939988163002322147753829581703897777292193052326809290277136493422540793004808599325137871931406196818061159127122977067940573040782058789654791716422352535469486471589661602408057967204632372728742559348927785855283634749365049477807837289849975365664199461542225773268934938766986366351180592034048247203415528519095098234983058030217610614783147122740509966415224205189575763926603636724354101298072313103799758026589948260592803547371946389239345517150598536731380502063030877585180003072702286852588857956472409100385004134004370387884268232686414616730430691437512417310004636569869013373374113370531356653116389832415201386938032194289142340576308509469053696186052826158921118251947292264876180925296589131770522531371730698075769374858849667207881338363584103823874774967112382917214446949240072649979428360240000610061673790346940519489900519877776348551893043259085866779751018369732786219847261448647396749425920416415238215276006298745930457338784539291705537959427768162911573184375426967886831901234197521147044565958236072738176049185909427070907436917490175136078820630599452611522469384511984337304032305996559320340174585707351508535020296984552439747398456507422026698907534774463470277329802841404492395281668449156215602825949328646077963332091698917613130431097396263886686627243304626701555703726091892137962384186687142358528716782500501238895723317215506922749114413660850830677838001627356884154939412712529850783032559203732130304632947905855189662356711667727053333027320049208313217554632565605086470494360739265207532154316324959212535937973350720465574217209043292738618710680098632662252362470391570284503872171714357781451234605231652449164293289250138820007645848558097209149784311512387057943408551610911144338825325336512584726574780456509830391914886503161807265655160267225164338414013698512104217599556367231230522822526609399423560923011881676356623017358427747646795283393679972997579304950721712581076360648166644228902800125232963331033973161168042879068765645216135143942116974764136176998415480760213811407332924051285246156712128959412065132544278681901027391409604927007817337309946443837758975532326334566032653900997287863966211212035556815011521106970883616777386302427122893795975070252411479170949532325461700816042290693133627318773243942898464109968839368521478113723941900178287725374026139364304647193854410723094402398231904312328729415926147579213191709929004200610733745561023572280419342763139720330645596215648657046294841183220343659495388691368945810003771056270970962868366086956213115219405459430385080160976907793590154483226711800345337720086148937196427668559759178216476092176946355922921839438755210883143532873496899319572465380256091161954225376530475457038536255427550391507751203151113146529499344265937573709558661945291196650520518296021154653447877159305657480226096958910822829787876731913674466066722298331714162351272417737064368786741261985168169445372889554681420071551663285190972509083472362365590611435020392792526316991448535613171695623225894525842802777707090413704677445605327549342104001951551810844953561452601743207369978179023257217078905366378760715805662397948327396118531123915773962870065290916067513135205393883638725171825565024645641668714673898664306969879077076622060373063224670940960720268837714612941470125067203070271794869876777304028004930392190024220303977205081567680212489215508335269590632827315567414469742797115439043613447243665422632373750835865457007254859168885963745080397812855947363643083378770346872178336831917634522769844326843367245934478730545262320798537255039111233075909891140029208583933695141029307534757377897367787607874756912758029683359068252362272581786010334301744867073044220725560978728026603694918511183642855410407189274927828988618107590438663025795725481298878376550713916379963027507327002312732829919543877808459952106208956055909346019835183602424908007415858355202425445045364971199183660254054765629310473309694952524711492945435332390866129918568161473973481167902408662043337629145365149296327166872023996831116890740935838445320786599189104504118039238949719028523879534297130667129626300571737798488880590667361864041978866356243457944999221756564027660402387554935911467840103007347457276072571965731737040704507146813836874843364385276686404650706927362803782522608861132970265894855771027434346705466496430700800525792959034363670203441381408594202245245532637186760520781964039867096765885886761803718646502077895443128111346497716851025807941382299069923742076503068201351546151610482468970903564688484273806876853379953246995098639599698413622208030097813953789020244363702909168937583583411169323534702208321379877102310555105401787163412106537158126923176074171720862286092793276360090594819441733430216257926357412646238823135456822399105015413815763471377030560502289270803435621540769906729263215489848482347529161505782775220964559526227047960815779822247588260451184762542340531458039070012847462209383088146412981089023407813827624519114410372783662829146796298273740058381724233812975863081416359729280996233744482752083065805151876922267940688922305867397248022242821509156276937428749195050067050276849542727178183417379367474904105451339202992115202410159790544763729563019802452651411874347736000807198776878760176948585339162276887900375454136939452870968221811013312774179770102892813857867317317631645520344504155240102062950720710169696521895000446483113294486782700457287090443951483710017658255841190978330825141964121241390907348582198287056136724786868026693446021928921238890152277077775526744500743874754901440505626429464671878240518617731404642093364997547820746870600631661383082397607964765611267872879168674175924250883763427205945580262731047268284549843085550035743626928326341391646028616109327346246999130395880619746709708276670447014769581591617458840368076287891554948585122330494639951889492945569494529717706696057826664585513383471795807669284783508423428432753894686355696932823777321426662369205220069181625023118654834677817058602882386967473972754575418066775595399618701031949236039796499186340894848636597183259896988373744581654392998355290580439331081452600754945678341664448329056493595451175696006595386461008504041195261480575251214797868606759825502583263578836747483218664494384458423947723882728875760660415666669947445823828223874557630495425980884104317282200730726255027495466171210852085909721954704223301064761349245424421801646657101330499526690212032899797501537683545217667363655809583199009640041819328361524360646329545643950902596192616441666091300447945416924764185726061731338021271942355134747336199884216232112116141180551254451278692045649824859215095713539208545645582121309447879728850689893634890521734499272506211639114830481741933655818727144695518970704364101541860359556652747198738700330077784758336891917683710990728492394916964427391601620587738409582426076659567973936499697471581590451019588280183307378608618451383248466379042262305925523844036480087589686301582312864300919940912918440112177189125020388883466838047653481563648383664906094620518825033675480226410695472940161231925225529853130303343306849173598486969928298480508718165794373363129328724842814005308632020439975746394748237511369342955085109546571448945931503857783984384423555330304930192489836814584776210582339823396899661546326771176717291332864434024986979404402253190694072801122509008784498930714159880629834122600335811149412410001664192318103773383558036413145365636397900559515453972623745319959353383222513151772462226997450143338675252840507311184347221192899783762282482377113224448134173920908658843218834655467034406474975416048170421887198122243124238530482418770771648976485561451550814303463061611465653204013581469616933799860865434507572536436574029262364478854906269140769672360944548182074352740219770354526223265065315870325921204997374581093495901829234428160062836112885000241858550107230919259556930442303707359451337116430508343576871874575166052116337760588390591857061602501020983865423736324363783069378407388695479367443344127869380766501564358882104295074520088511796782002154770156365504536684090720329145576277935778929369489111094061504385435999276949844217920585884865633019194182881963614112598699254361678407455183557663614816778272972990201132606909649697522849326128542869594552350404396504722652314093691941981172547564078118457847161548180402386321923173128826179623353665460485086099952436774378764498262669513025090633037390442160916737292056122340561699196130754686355726785123274911271418180151899163780509675201042942385236079869788010876311384246173769868761583873826526974623718915013575206284094930038824126639356392671822813809056084012416689236415539817961669543602943725038124542587282031814138915302121789589630102806912042800687975677870985470410168241044546563374240508243424676437663980123864500233673895444552522656386141365255633057681810767417055656363181972870160037992384342905311966787169809253778542252160078103650967483560153734010718493807029376493658593184214539344103835774987793593539826962659447287575237097458383819824036331768004196713966963426008602211041828662477808750219368363773026020051275157884120445508462402087355122687037517326626973883475080763871922069975849229535890432066041834357344240807213907890138174258430785759189475109393854878513393659288371967855186571966457067522732099692319116357241254933516998301065983853017273468115653103599160038105398096880204655069569714159947313787600879937775364352884145389351211843911070599182998039248315895509766995704632225535987365659168711632078452858484778109105741680705993015635425916280409057445510447640409976543381402736343055044572880761423144949861063418516370287862083654976406723313083977437009240391960432798848793659846977646304245711272334496942220747366067906810660512550888531721806460187802042675983877026109724544074244353905004220617131436770005171832013331347971920155695982516272248240156650776319582612009146354819727221594906468426864266522302631053447806693648002777033386859915026842668561419873088754844117999202066394353462892365686534597297091869717514778456767672483554053252498130881754947027818787041442914434890722333898784435564343658199488508519860705596143516825830391494351187115405503558322046639860726305546049958981678954739695703967886433056574721041806814747331060858638771541010901948277207322892062620127321160762589970436656426078694596692265991243430927026798262628861219317590609105067017901800040005447180890592384625377847169524486901828059958702126947647115538395404182217121529010177686052526241814590760565636383695807519851222765897997803543842693439614251134276507086188293394374871247224323060418937259477540005043044937073731144852439300145476571149998117508154240525067139858986307512369514715202879468514625652838273357808234202842072193771492509984978741069698215648777809767426142826833493276924622731851168367224873205584304230833611514306056717662938149126270987246536454026748891013547329512480240835545987943364336017036342051968073754402762868879185857782098334330361717187924724495665848671195360660171762756846693261423099406599847071247857600048606794237810787716749302521327751387604131312839808456777519682313191033326998313608314355361335563805956809687169758791127924245537073524325395212948721217997708510195405476674940889531280923270757062679109477083800677411529497344456134528609733224974761935661492334928965344981461716215993738082010648466264300212452867878742479095578604167556621779021449031932444243406451460615695530359198873262651645661117472583687173317951513730340952361125863817606701680655982412134661969151157045631768024665180238508265301005967870499781790208969637889165203025362224156936390490810196823543344070912204655236192370957779779030852151897912637998240217405645632007924288253085069127518446598355506274912722883204539630352799474718017023793725190703605420780775966636276583744492400335771180942843110245605986246276766885027193519243803287856007253484911063676271186585561925348941396997956164392266098538375285650012657636593424771919030527242059718446247667123588856625879300286568944186488547357232004308167113441531353323477567619491815845434929114884733070345056699190830313849501157095186505073970583595055221005730821981130084620183345252543429589926078321727734225208176745950947025805928287481721136022942672173382473410875160917687151784305471546642007344195732335136071749256066486609310803541287637310361867872556748938477354395010336113846404300736912404690358167326790052594088355756492564637114391521568253643371600346909997289803787458645307161388110545046676995338159047381658596823426911072137359575603440903985809382542156464807185065051918263799857882014273105749005578516328274047498694691018150018737098773620315276996066631402890953282556956892326253110895096429376856126693700364013456021064857830283635966515718217685374881287422582788379477498514503167460879482370826468596517367785153653199516588256815493184988881211655542822165192815095133967266434512307663426801482154808814460693392292751554909162521028727383818778091626516853997979087110435914804858879320536234281293954725455841888308370094758984405620627715469237419832623458462955598508189173183040121454698985762836836223561456774736208837545626786332310452262241042434611466829739704279680644701807563546890342508421217575922031813141611161903385032645802632923411691382460237843125083351516330738861871879165493748155471261609673486396840241878294102318939152920710201343571034418028408298686844005094921607398654962637600462462100137855784777033502620663562358658632207409691420233994528574514742785477174038379442808416092091555627307522656093665002688847473925940533955969086852888516173573278590627264381516467754052963215994321466484185787434237415195134906224433498445220896672237072739743639667218620829205474199214957028698649561515204267581555652608543867313097125071146810665744850010075322725635477662641557262029696104540028018952415181085045198461505884568709840414988059663126339146794681994253649207441512562815064744284591570350538202528316272915098376972056825665783379770390449181191775900563683329794274845808500957491788787339013052330733302676764107794585110153291254737676667630089608142984987985307503657883562363888485443581209261336529348064629387395066989438168791538171307273191952705776844799227954566928862141280222036276086030940217962885087380002289068828743131898325710877133910009535840057796337176160743759270814150322449247646561830563265852758923955570226824173977824888001725342111703250079627358081179256555712175130799304774961234290299794977877059181236642238358376957836414183961970560774945158928438487495617953931265633243937785987111213673564609196357099218067589648184589997201294664310115512738684678396488441537053615542494042055320395169975467254179598422704288864848783867022449903524403499509413238295382663325315954499118226443920319425043840174105102151418125813884907527103029831258127425807813580004975500309509010228934231073933187471069181910221718694605216024221857297614706062710341479494664455326725412555367665755609141451475900707178238435144459885219790657270714532528324977146495080355627279027530922535140861941759692763037029933644448896811379985098304767922772562643907660501405193310094375358268365387409720155632149124102029070481805554616140930987438255516773737977110534770665926445968394499371124646286535330044907446107173747786066038107773202383853151950729487542560788733985270377361624156944073726249900289807837474301030635728174793319073207877331748905465827962289682844457319877752893074425615787817894721793549960400714518651308328240870778883116126745628629718753420416742264528877246928479646947351756292602511717489121939872317775560669247003023000384402485305863881148612118261839160711953682175273403685871856240740558416387954775979834624471393545025027779212455398290838146943860561707798070519140305949238830794430679550954859704025021359163792566925735366590825923047353065550396260975803934423892500205987795334073742359809883267113765128426933412355168131361996362990597609563488972984488839339110253254337882696259702622837651291430539935855839150422669573344297163749768393070649828702284085429652098112876560913109319895018229816160547612969095322932552285778655591792967620375203439299565664147495217257760117334628911966254775668215070391641991865239497268580020995267552980559257278138073704563450571626045866770011054276204185339309224922019579294657452946095121318699418065595696570405084310932953782928534569535754407019096531485489985225864919365685826435563291096510749046999484763496909588573475650295967362299895039826272284241530952449171224643509899854581446728704473346218868568458073363887974487132448491715735858512942913420008504292350981113002000911630863283219322141864820102008867557096791140846373502522054236345183036326524565494198894940620874935794435423084440903023229108544101758959550096061852689468970927578551547869676996526010062908391253440311378093735445837551923907252271372902546771333189894845773684875725280686373871730861000857608007054103361700681985159707258234088713514116676521935424839105304568331648383159667212434085364712207814808960495087638895538256564694977794277026817136423805644990631207548569674612397884134511096227898216591326314112753606808459352830010032050592884646185992548895499964677470454682655151419141289451952604662599982792749762947584805427620666437442859612768813027506967349877358121879352632653140306832870710778408376481614645843802081993746273888940019681295913357769219409483576579932151523063499304621160308483068719328576186274294687371654137130300811412188655935615013315900712627670378290837176988961689336472226482906111635707908105202113443477442459193478926176309106839245339343480022245850677823467819324294178863638769014340715650343607368634906822824374121280999191692023082826454962966717025435470196924402689877313419638442337533809938376015339428521335470677467999508372352999952196660447680007557389143151037286988022320829699263935943611610536167718037545531371843497012395409523106253604983464459789124171494850251484579223536811759275327661944381640758026900057723541369285706714415530199654258851514376671446689374024214423824942171077209402407271829013376185210838198834967438733716971497689888184393734660163829103783458981566687121073814747802842221483347586204069155124761959815451357921190988333769271893286599621693442330354274942366896790742026027228677040564328402321885950659207523470694039243757778271460809393902059574264563490591670718657995099880415097527831040183538860268140478055729777915561089211238425231112086211509318137569565034136015123987144261226651624113798697233441363072224696910875338439207076090337918798639969679460206558062129527581543386482419612201118108621504384530536393076827950836070706090202023609508207073878731650068239499965167836170030425613352833231254867818412665804438369247725681755568785230229776265431974967824723091665353391698794673051385717824170552749835354397275036060417460815040347292056976891104398079249229797010193274506277075416598129049890225909940466510425796937941925996982203120205737662359019316436944734746872377607712415983369647176712841599056791912993124972013136886359431833206949231869323769119990149082568705064918243523824044577676528137948485209519792754908285418325545526767877939203061390471332280289785766518126038096015968266764287547228746717629503468260130477222299146272834565653157761066334140574845512771444875560436018193621147550840017531802890952622293907718578068030255851632623651607347403279117144471015370599268996582868296871023294145657328407867584072594775012988419357273347501378418785128417335677308137529712486076282173046511287745217463169716903471733227406660828075808374080369120124500259622187894314501640414528384610048999846838571047921093500386011536243118472256065095395836340687632500756434893894217821617967951139501020127898218878959079835043314159678568155827093342311976675107292892646537107507411807144876015291412265417631279164140580249599182364735566684242107836828465670331716267791990913405703428208957292570401764977820823404013733730571026472186940224462064905090448992715356570084420376690790307068369921486498576654906472318709229369955947614271652600812100344259759224519019186018025174536142213716034897585863721593094012281193322828282243646427418832449218266358627737925345511268654244454082904001568832849645831478180075043829202828134491855978765616368967598124335500182064687575634182241152937757431137831599353513752916903357819126605555356232696872367113911277326317934189281736497106424343305902677102204789144272934895914550939651872714860387712906524433060740156704648485590860718931644184747335990290573374522203890979695031974498065588870919297823982672749925185875827006025619166951140858336693175684414438203165286190684040577463656441793683110156732242840593926665584168648516447015682309772336531862206639968299914918864869978560756309268167745982349834943914474743470427410544916789715267557613917577259429247625657731705938553159201107379376305566629991437506054982613553666713915431030308685893569727851319919375497148399734107245200830366764511764978009280436351246643948942738154352004072803478143734281835188474532245587556643748799154028373459139395991876047189253280005944918506173153359884130796409091908075696251155683919174288597461937287646954622215872240214353284692737566389081526066372500514122991123161139138885198567675947453237576240862596476951219984698787146825162726600738858510701621478113069885127177423295661065995290967032426597369350230619672648089307854511617337236650526049292704208875317712793637534680319319735443446195243286940737028749916422981943290694915877690413440888086259204226144141150635724544947531694089457102510748038018146890962893675426858099748555629856329509217477973195865218530439612657520708437082552659698858366229721459744876871985898473093255569946756375339383677900430336120829143108212810223007637994424447693330835842120092666930572114345170711741237341539914214281333448731228255387536956415875004449249175611850059188076522723046826517384691399612757697817521696579487453555147146297925193761307112024092004861137362412039949611186274341167604536706307843962251694322348937676797435394825421964799888202720257461349358200187662326713136307381290167639789493846317558348014984655823146402679429124275212645066204852717532078564580011851943483984300196234858233111806163133312000087981396182178101558193753683592807352465484604405815578472672845139480612247926184750501822336528787589225081488182626283254270927979760424149619393032483279498057168604478228090239610470111532249633315850799806981822516485701173031424398831258593475553515113601824398920556394187762771375683632423487066268541741941171723825436943411517934261139354388951195540157379646633410725038929696546672936443916149652202873473516836150337260953293804306052312750449795097704980829107136919102884485690278288565139373431396752476144174222412190006360026497707978979512052823876769620869455363438304431951075628537315639434979418258351418760023793225987967881767308885892555074672253526046534329457469170069181877740461016138408210673602995325461058202358309640422852375676155393605313527754608446320910408711639440030746973668298656352104885139850507162888013139312673818914144477948450149629510693956168478167862489662274339573233264581330445554536752213124029789696406024613277976994609388825666636292204283078938655597098966413356031065912012833539377337798475279088024049349133930052512724351665248849337623624804758595055307593023936778464355583822330868032244741672771367314058147855138845370248645583147694567410926336117847159854643816833709640246610589397095846241068682042522509015690296660879809494259814084136454210245015622679593373269410413381583258829735178630400778827199065683800610516118789324198385809618916244738534519981107617608054474272630539537961277669966100105435033112718174272153560255926731825443624817269034501331706965464162418627965571046935484970305406041356998356879154947662169335809199403347899829496430667539058572950251289309629673105149415962847465178706171313177467534841749447065050284841601089663780539027437244096204982398093829717289917108389362947287042093307146448996851570529747975242630097895980306467987357277046182482399360767013503096170167893339957146146232447075277027100789027027142860356536837083657337089322418410877526198751338462208361015639406840340751135194388557549453520398421356601205019559725684770116900753810734722816463273218059546581559200826303076244317726450981321837053261176154356526197427031016533818677235870643666612500099521300177452967468907805768255057254994245334894883459134591218040226140058894198002986718861997393825340300183093732326526096498673159101318367148686096903732613296833097121557326104909207436502061654267819217073826175762531136873042310226431321291582208407049160963291878331143676178984960399792728325685221423777795262169459054010019187814429030783662863928938170338446734912388244629919907869272738702357928963440487527331848547969790584671300371911556523462640375192150450306169949621737183068883492677201709130631723499597154348294300801161930684166234309187894303966717057960343086643658210879168567237618835756342623591111518844138216813234303783286511271718607840884701552438397011849928454636798667301503986589761328403849843849432759023590509469916915763720086162079312970083328039219064802979441993311625793018847763146195817606005437155193586602575982873361706395395263112739996528943867065292982181776988165418472403975620933518169710130259193627386947142478859403829022875478975878710699146933449543248537958566863816155534320678314981352858848656102040954410517937111178388098108858906761768232012585708660949632990677129649908652904019592302262341013690050724951465497587053626110009783473456908503525846592295988256961419142471253219778733978857690372334836412672081799366705108598861556359450386503469451537329536078768390809259568616338291248792318667985381667776038646807441775880501014019453149339761715836971497460713264539680240898587763992323786746877471870927679525423485033780905464470816782937672242494850019795569519926441100939862679002115698570418386486841814101641728790271960409462585777466471707995213371788210000799243002016639727369198524649689454471136111304476455988564790968339764978983936776752780374743529254916128316078482385657163882594353172205896701663520511554606374114141152612965663274030460973701436481754249373775268042229721676321989717448476486177873801216136932612991097966693815279560191933481277677732312066822341805901555270879210161868220370573200952807843160157185954528461190786605634668465689155640353994429384712888915190423041486399209190514735360774691418705924767481625142917699144124149351319378223397176810703473616352099664974828835734561246802898617613206038747754266224545135902065447169608788998851903601993818196441760460969013488869069981846308481831587379739780862238537192880669303713816237605204004068643054566113921398634601743118944566722275030436282316676554169033746308955693195883445058532028194842034378178930613680214862840553625800859437814997105105717731915267783174576486293755087500531213350535578685430348523884622270796038583985203249155220145781158744181225272097983967477327824395782383715955273436788497608724017895277089649883147662149157035399687558131136369088241727178305281846563277135664261029996820352447438199268245877954981427117134405639323876933339240423189162368019292672357435087798351400588714258702062032009885556781946610675997996547072307787535855069769400728105389437801318824225960648538079181828155058086302254634857672832233449362565683608476226600523088443501198201072845671998422688574768911462657023444809758616300978379223033582321414726877812292669559256260485523088906753338850488534070896010066643040171672981633347445081969402887927890422468135432451532015049500520911494788383457625407556088158158884192195107286796852106916656149230084717957803902273095553321121433373233435303154250121220899044144224636402261241463396377910062129346362487739212582326337392080998374407659525683753953912410720985891536916634102620536283249286004704856174611541072127793124192857625473633740303656516469804914958791210038467104023262004386937243405359551232731123596282853746263701061956342075241755010050770436721795487070471419988384657131313998264023761809864391864548846252338431789914362925073173079163388962785355731579727654363990467540278677100400758253134835321325386540917572620026766656752724018365596170314137944152666108216869486441827881576998959025950997670305948931126919876733537618948179732695615479295587651723313008558584641330860706314768809696171917879981760166708545370015726103543706143798829978353673145116018491192039295636137152937911630426716984916377625851260777722964686025314409845878504207212704925971159475579792151623536184368240969238185204341390425490628214602706241750086010697845274797102152128509380290446772986778617635392101250053814206887120290781177955824466618993858683546508563855547093989754081551502247449483034147293510410115329382932605332561253495984155968242180382439904775063029185356528866044982280312796465550702509105536534667152937083957278005844463841165211975215103146216000649694935741359803414966475639822005354228814323855459216294340130158982181717597692547364791843700738721139145860297027063982745277808567119048539741444423689983225764167641114192860648325931853670246922478618088299268921255844865412994491894909480178347693135943561826896305840241587462926328026594197038543431977989208018678112911994695570256695153799517085184135006333995015495121665740841973142232022522870780910474601508480499714305436620220246959267918022403537057061908588874346796948338135944696049299692219687635571332859579228966882990071884947465320467827240348542508818286693351192342066305430216667130020359560723534549950866058408363949269641518758101010348976875296190392428641538546085374198945977455560715703043026255365678218379754833803654571655119391936831320536094214413173181936693590081324998194107495925095870067721844806354215987547029114355480576880316193236071460070170364985750711144939214420377324534574492349566455329543160697917819690102747664918170983667228355386671972310224742610239365275832734797065371814789284052771904949126281070390808564574264717687016698314049244747931406931272451143742114653348594476413777864648220791265518167778662049775885213578962507130042564476566800682418552541703178222592595916236035923340184289532574571291956728111867567002218660334213434151057681581366065177468161516531089686509460972666649846973705815854220486049570823620567920182012924254662692426467257128133708176385399104206458861703888531474232139667234526851496359208153805716005847454008985714332055043725639768616725666353908429207650577723932375002471110419061559221230764203447927423689853866999651962499924583846810386996465788465661002827986385898111446790769850484896542527528072802570531000754234164886041452288332454952779809273504431851139465011489173369614796935282522955325596729067823488349613195584003168146431134179854354621126132878171158087534994267266255219178347336329734509500516806683026857903281111843282024546115143045648755608970424456495229136237671028502263018067297280323406467744302331094549308595707614110618162567414747369394300405908621801665946644433099190040438681266004784719630933874304924556651663161097278056653492589225939772043030676504823828228680974791198973215682277993530732816816178208518207141046874389072861128300485068856915672187875870389272207357627072497693725112318284427864437099869534519369898663800456884813185778427553214977879824950825963373889276694220214780658420881503376466700317741749248058338575010932626496300626525830233610950748487691983383251972200987713268170215349695152397969368118151722662854287293590094909792564216416354012650289178254876113255046396310834076135281501468459986322840139096640245283460426085859150398766646068283785566489003239437777243821092514975073543122722272592925367166657188871228233066989526631000509620193765097091256686739588452721107136441755301596965809248635890486942677908776470517034846992811687606302063862423581295787921829513646503759978769923186329561734400347699080630973350205072995332531890628439202766555221211145086369937775827976670813598611488068777945459188362525584391541485362458549530181070400795300212521868622406483997971572326506836871272813991276152311829480800273154566201000188349478909881209904049294989612826981988309177104655347972091544578766876684309569299747436020371230609020162500614039570968398212197667016927607203450044777312721096793675816906885046920774741479715825223245750108375463990745274494136862375301607089693819256198547619164453863901593366414012948680690128250075492796934775927306037715460598605860474775742585152055191725872198072041376872808718320303424818490391894053950727090855968418168413121410687211359602746350819733584495940817287619728348850620991946818727889928199897910955590147262457003050430202635937479560828569564235158114604810162173137884651137132129392200242785423651282535003765487336847970968599805798968824889681387335965041066710852789340260836997054604555571066240369071495860996553073031638061243728002508055944147925365825512091430737069545243097122742257915215621391675605138462697407082170507870327183906501747629813076595274859585091789179741037562453334589307966688171575074661011253082467285057790047286605094464655867354634470605087728930333708377214848274427774126035850545924985350576991831737559150997030774792493259421848109406193842873385046026927023850810443575287748857379549610872744267144395974985280171453107635963312172860734054746113690388311528463294230365462706813299222884789873694702614775198482464077400615823195260057874334789119612326908100152704520145480997536302507236687208257573192884560196310996632814591868702847669273980458301142556945881670293771057287002566218181759574917945818631712015897072598399814617224345726334867812987432510788226331140040363351088377892655110833794387483106377725218204870435987812971855095205852973988774479968747072108744057132677480544276080697814722077454096276611696852403284762808617293143999428485647389131680993992086850672659988974868164986305469008486965586034902779563661932620958972144384339755597424833779009478952820396953513374986605556596943467513021716298010489870837463884144545507735149513850244037446212857147209732556907054106543107975385623611557071275337607040336711560490608767421984457904156615959209600295808072833048482297669406189376209732968564138283214463644493718533124226107067495695054601477436393248157936294285230202537093101288552845127938725665923815066362222591680327255543071321401133354517397141713222051337592827926845736204511939758098311894769770707350008621937216116156718554279238638652890841738137954960321876609749761979637814659310322976483938526035565278367706261317172814010040127018785243801093609596740751790351909278841171412707219187092494948524896978844439926157141532521335991611284365448841775661946298684331440740588325777183486834639987749860143119595289013562955518685716396157689479899278861874711977538776434931868336317222757568132235314545811009334156551616202575546854587531510226355544029268374290644949404953600958342228644629801861505286663877470230501776021090326948949994999054233175708421119394981928619393496084253502861498387688495201316365826137550673912687775065139603036702321248344716680373723365086898339198721028804146538134814163871793976341574913385441363669959057887010684698878312817347209927338572862631881203776453025106654665397305114295382046869253506029255628233881522758809387279403385335776110521122827923494396867354923296093951934504748361685870328251497173935310037497178162614505479663637807763252782332387294457286188246276171884591987401277438443831405458793499151647872559297790923619168963526447102358499029093022516213778786404433928501892814084542655071792918181674702331078792087270864307050149329284964758161925258253920683251491691261684096519101021764546815697894560124753332901845538774615499807134362377065986270501545332690127874955750146830153788313075910851190552136888079015647285277119638237806184010446358453083710934462484435025925051073350140300679623211955166997159198315139526197573472313000046168835537886167198956179035362266414418150910273504051180902132400392126928981435059810237688008328478604438469438740346741463179377888080682059948336027299957302588486197925889509871822333856988883194154873953185222627637502874118287792003028576301445765568005117146743764270711471533181324853235516782642788490450771334591194967158391327754613734946388621958897775025694992068022387128028025256755810096707740361770566558885182563440661887930628349465440415236383960373263774918234027269382585103092373239787421779588453484777760735527893992146126510156144838799485227963771095498673585144015833206801975952301263904413609896804789228841472060503491912921997615960618962285082827921599138250873294820464603112926157449706681510004099437044051567414107040622244939061663105441285165316417755451562536407045873679070301036447270165899863076758150080782394974716598765493466602828375967750994565500635693441908235095143135787671085619985905461496971414496642317584692471063635190471060180505066285482283118867839618545224348762971084605383680780499173711339490922581672760482601626447794417460762247292945332106471288699547977729265725705418588585888680475927497007529891632933823402401170012591177982282075268339974242590564465140551610944833860010960347800269361046824671998711834084468814600396858546198388667677874122656472783738643360716728978661470395980457590683118823572504948438081725010093461421838300510006666076585841738360825803755146994302273998858504406561779479162942892782919521410563973316008537400648807311735317473019103673688499023495611420704715178797833520360053856806601893938940044643156760099250818027179986529855817988546291677245888830675678799487910356405943276235893334451003436726892640355571692963871994032313967478734124505879369783295142129175108898175644269734984065638531817227375723322249628064765233685128988345709392924890183018644852380270683179383123833482306095658426595792343009198945235352195820183505335581495107072257195693139769697597401863410542581877067962870906051333112676363180266969527213305075866505144157363150055275100742445614654041884122289620980078623245995036461508212501840415951542407589471571288017783006762520260768252758909832804791773205394821765381916241955261114234311887087354577337302823680922676463501368801800030703234133478829730771598389139618556760653135873342012043920149392251917095586334838164519696621424022010696320511647453590978219601855523106442511429563598092877837156654307189111644072790491749896989414446966399661328472548846082522180972025194081390074832137246727453728984283857057468907631248583929844514372998437968403376709760000060346191032206272509768367624875958468275609405240409263448842024771135015421991377805112686247363981227024710108497448731545269085752606012134728701742415958022172548105716906641564339018145024960073963912788814949844970040576374792175246918918125570333102577244721127331206240862425490424475545357163952286704877752188055497429939325775839546546115667765382556698289368975757111167141490083824727722344289680620372886078154272124315684088762533736823810597683246652401944954092164015702267934505196350354156452775121302152976623877161130840287217818132201550368942761066128070139105994357678830647923703287982326299670878846842832866898189306756927780167640620710097091670253111790621545546262874573735432366479823428461220082978116511014979370756742177172651129194142880363914401885361611097780007815160298022760324486318933200405751721595419767959435234173302020625794648838686748678654084688331741475936688554012465303361285418295340634339013337899685405739057220836341447325778534589070610859549987821510378325657108380182084152672788186895271045322563094331656179818976463634907912586510229334373787385649753863599477134201095546694330985856806923375997903472824639574094171626061572742237670052189011044328373653612961287263589860657074771711481858370937398498944631396980811274795394942234209897315100165258815822075765097542062708664653828397370751630754109186972237870516890339423349375542638406770616883303065312760959684815916278223653570011401866170052416029136689450671492012518610728041152892292827138581394065900166173648673614160937458735697664543214027201567932848500015048892601532433049862935014042502506873714503635994862965231502357271764790736641761754437086861354135270606470198462971819502901415301712453526347830243609897137441853291454723974829933651656891546606165126784303997254282292158963028353696111467926553018744783882898434273264188708311825753221889875764416065349055468147584030392330503372076603832794536486659648882260291648952755889363042527140700817698525186510940833366741733136406680907667179069232612577840709011604158995605417599119372227351354350344850138142568097601193196779112796913854382044707077034258180996140161654178501493459121265638426498923620937401339124062760404429814194182299564193832224136902441287738465604311271422902995454505856716712639752968248863850823736083190471321535768467540156733321317114481675636893423503440413255045852097959285671344562163296798328112399044586238899693784426947651710936987642934625340219942901593071366420662936680010965040450373106176583940257450614721892770721493865405035572151266658199511669833130713287613139680725790246557700166682517068224884507133011490630948309762240821568938999163804761976095698900630579676410507636637213273334398715076812594034617259052635929904456294673164918728091241130767115826420105578020478736110561461068768312654573699319943335694123678929006676593772718825273147064246540318585790549626639933258098380799759250568322854891558302584263733694987533093114215502852836588718723364919855199969244611530411033994707125736477119237366642673964201198493322711169263344546318330695880546918810513374849233314862894644313040698506125494061294453683332294089370888343026837035747396664389533559954218649480673337707582975710093465706576626078554660681714332213779472977084535288109508570423692332671255676487148106461124600888064561388968977065307896264516039631022704552845026967813121208049272183562065958635459546074302246006429138481098235670769258830018641937906421767753066056733441369421389881319501448496471361158390480568253977401437708307247012363485987792536386557405181152994031987616049885441196824632805786242133666924579964968060611473223623067057593617512143424551529336677709715623919185689744300920748322283944388144420441949280283743790674902837496909340473738929994943234372226804527976945702777925005537822226929386075252610896311383441356390340985247412989123954222335464427896480620048290995406479506505253842415640767516969248172502044742002252987389403223318999214061159507116964944440533045003940017767943193079311736702976914014394944416886486422361544789692881755678466600729965826754342030665466102826187102677275354720738494249872476789030478017091159234675860159526774422682104584235918659931541534080939387580282030227792320793387501056327862268931437906750172861654994476362849617276071157123289555670968991569908469896596680782724631423341453879232974232637265383553914536994498307549092365462188297878139534230331396212677038407446916158498051260563817274802789630063639497244042891074327249390752794729108987345421294074911086079682560979946629148875682116817948333071634696627780035381185746616277662349594755098082286646126445271056280179960539375307320583502119423080460608604254985899419989816217903885114856264541290779175910967118920482807505130783306601499559652441269326310979668656429993040655931321850053563549994960712318031960933892192719824327864323057580288878195219512640435829458834816200508693311581979656845773610651543208952812537848196774585892221776486059043524552880944220863385286118897997802146687889776964496374934728584393499687329681205077376066770059199183120832544215544339456982455133968205806852043931987507968087109472257992391651646828260488024898864743200924989477446902061949510947585642322365774841247249917313131859678542107975582697398941284299546934346460999530216324250961979295935358616925376110411104789970701614322671490164236069022313122746818262771925338212983296597187750529994340080878328298472112647991907630885613425298203218088633119996639525058260014688153294208955738357540038229091144778333407294899066282723093022778268100501093360296423066908668753595414145469611165405610268958053483838759590427821287860234089115457172677667499962594961047270873991813678246784377913865558386659777655801310677460586350558816543084486541852827374024869417992241988627495887222212443490745543400962476753791782583243475236767811298613747335009870129485658837643792698362931301528823941259918857866681985076937078062310951770433501669170525321401714560704788784462196805973308095977844708290695231610456324136765051322326763406014001411643450410272774103185804418981044774156158877858141441444379786737348644912991501377565325415744301695574841831554681446518230309679023414780789837718636117453894123834413099436670972588532404986148722378122560074654299171202693518290775741128814137591160721252967774016622837290948201885612978977729161441688275977285468017510599285136681298257582573122251394141619116853097498297860868281194997439541855133660944844154673707182873662874882061125937249352964367605493520516489247891379154741577039981933940530033068592536365343988865074507083850250990743235335939837312484003352199505660300573502010968546558720534920670360170342475710781547671405982530696549401148584556848724243170167839685059554350326385181313136111297675709646940685226313311154366307294308134992459777241450527946135555472778914140339514361999062632660261161342750136474818995797213153543504480603820276763413999964952150617873902500308393538855005527288427161076803427994236680343052090655056796872865428547195429968546605066538580173268388531912165823916506376037735158541108058589633836895946564532893328569563905691203453098566670243100082181241544743518995402261142598077465974827514671706377960620022927230452148989618162245931039721970707401095515866410228706577622255531610651960386378156404380360312342207513628746637033991745809658312357188125369459697805037663884627879929296331075598204786258445299194666078088400747499937955140111821705286292437120686896952554413231947831729925923307818773363408785678398199194622258604000257375313688399663015726864125156380873322123403848782882920894316219874297427071370911004242313213985309216717736646830432948540525561553638543340737182158466643047809153184812062741375433929863381885372677253079750368791751973974740728803941586956521519367875111906699493572196965123522659180860825021887282710414849078942151447967270229493274099016179286008258525983377938635591084187991439646862752368540719321246235403102791385256360648697888872326013216532196124042879450174874537103519778404986578888800885466838596660545107936718963054020131262073832101083494984486185996504104523842050101408150457564196005328730500315441870778951826377485289474345860846783775071681822099143084424389943825286978174504421008219899112724337771191338707731139307109966683429322146703724968345943375387666867331112193557969394061320763630234495440389708716953020695189372844915109704523794713700204096325968124688094768691857600523177776700288308540021389949943473058421187099934013087699899538215955892595899724471993031676444265836177877601556386534545843471599554419981667360025460782599775057330982175556304517365302163447435522533535059084357029122738375644911547341622132954853732649733757206685945650640028276946479115145331818138564222763890220074447889490035191545375166133106342307871574050111556519150454103576007031032162336698947480510375983521859124765795138937887224509390587483631717811478728986165481925015225047579380680636441352100015005334830264028284085156688734308044169134379328020000533370368209895613216034052352005828240035747290855521945321244346531819460551821598756639355430808312946931390569009213620157349667360856678035714014919792088229754882017777581675673120413572054726112113726104244564069260746099187245833702760792717332603802937940607660951534644586018334990183021973527720117424563519468681697318633002213410419128536270897995654328912834551131150029131230388366833550312291194959818318580179899765569201857261652946680233879856914138578029392125585755133404449975417603817800507862472704237964866029802535411805660551871177566041409691923574871291045552938033371820445274587986844369038334438029615546376915942758232235631950090406578672012491215882909981287116437581378573969563325009070092971417332176694738304767057895315291272088655108717040228535759989160040415937552540406325971390252467753897900579709266115137595501010405636313800183762698084848316043932912856807980075259972201010633628174337032268600055289680244712682158161846869607546289520702092568132428604818471940215851474469441147771951768627832447655307264330859689887020279873684211922274950104331528794572575010240527535874315041246973074716606272701408864399526684254180050826206395440565633231368980475228301613218335961706044329407305381424738729091520733889835122606004053351298532888980594718707304467301205791698915955458999533441144578833348492182027555796535354934971246237732026004354629112226410026608057204429876114838929556247967936936537608985654429389159865654346486271595856827124965242494399308542644992698394051707180211650302756706658954479064964669829528331988635223858690538475862148740434855760451718577591445599980762727547387881571469347831691209076739417343031938169762159507952697298737441089822548924694508998560808420822074669400617883228762444596932853346427587787066817084171490434552475609041132262608522419849728295775241919132177811222480908754888040466404701216886601656873586986537002927009196959544016039889951373287471889181891852943693815325998884096554580343662822088630737616256777366687760830926001608352480174033321723247153181183787639857048140665346834179849444056875409474855302759042897279890444403400199297674007469087719337878363009732601629132249092471115410662760755386158424394581021620048939632656282211076382105642403983180214366270645272362722125710756015445034696984653881459889177857418474202090042920355359493973944646912839698260364131195941274651660960012685938171813324056151638341263862704142007172778975926684371848463828792517285325779498528258175310189338516449411482152767942495399596061140291946593078744064629647213301805923776724188492251939602551716700589520628545705728301639362279867325291262444843929400408905587736472151151827125091331855988414288510317726156109226675075405872569494620339496014315627901552334315415601059898008578605851915987556405005385153147174438791741119458229711598105769553902327330349375108084988043355703767545100535749792023910201149905390914062961047357299875013295581269576683743776876680834742230288180881962077689108926377490760632073683382304088436897195297270782909307566305186191958708256343551537020342241147645558889501407902520639015606464338025007967190090756169047014590918870239788872530913354117373870834256011872515921227366480424673938084272347677346919909659737735424337096701695931130698638845058220375506499803415801319882252693685849087132570445150238191285606756280553608361791158860471515801576479253409215294795494670384535683460146640841879666892574946685749503270681290494834187094968428403764938518164073684200112008038988880812492692381298838073599216939787504091906850147078637023795561633493937883902303300254291574222467016901857577807927558612280421929608089391392526900046576827733050323599802804580061656316155441183592995469917929145374474578716058312851214302098612402619860479708608908233037518290356771945181681336238929232698416487556157669555124485966529268390670206493973329094468578902223717557703603929584006573376700217125612344459015600184067229109332687487212150514494226497693089014383260876635158550435628469598113757111156268392909583442628064145389274536838889427136333706393586798998074283322931373288046981918051898897240260706974021558278627313310019336099403820612664190132948455746134116777907581712605137160693739347830389961774706719412275297914279643177774019271975489971877047407793101368722583774530145128052968392995119168145991978339495303455882574973998145910112186208818656740287586792594881701827706914150348153507045758272230944489383331656564996823444320388830537045059370866924519177834424027839649909450064413569635155255797134879556613799975745778880580648796288781758758612591706971739740539472076840993349608868239376200208650739183666500415469877785096858529572258969968457098460381334559418705672720425951574339278950533982640931052029504880586803932685126321543861962949195093275585689639521643206528022581863989110109576351087378734618676585728817406896502559593203180695000772008815487337268513789584779931471220103162827232805251415160109186272737966933848193773856952570474377138642127334583562604452539099970123164074884545900550701563154299477998408392681036275107872845399569230306456020601031339169988971488942056047033355796526680813248878372814163704882276069382816983563617646840018074028040297534085346777650505625589469006447280715768813222427516245974724353359334589649465864042344297941867145242154425485538104307144258804952651663023947559191244428684158677890588568685416689977462461136143347609562823281169967225369081952702743871181370386335417287412236741300467431914042909726151014016733467627860040431851974378835179612410450609286006516262326087418211335346181933054878808453253558033994067203470305472622455250109487013040160533188162317007694796336737938464454771249843631213068787647445721442609916166627646772922994899499394959368128941667065010017565675274202209461055851381666985333032124184013228698500054080537952178286566775557232526798518111025306175782070254374116882138725396672239916820545073882001635230842811941492369524281834987132900050647165296028568787231499951530216965159731665500915594051189719053084732911260855842305035629425127285824799295573948315548123485049004273443109283314905366928279782098350027826464715865512606522489639221564101899764450747476152826511714288861648942247916466841976020375609868142146236290420998722966233726478344267362419175665908981216047424842530189769561431125311920391822145039106966030807328693741230271791815366394368877740312153863158871008796107669335834006965483988967630513786643812324836522453407950938019740897519482242912273166330671678252658803511423381653813096765507135142151384185527606726999392567068198126235756650493722635760437742753858209719510197050920355374568870457739336229300079108358043894154204415418313541726527826680165489429392130404651158299583502425883108742272939606817865636826377845529235248832203550780458357852968398819058194018566996133233180724012329274059014869369900201006437948753857960863817243950166877317310505220859165397196578733020021833943420228075980809499580692500911882652891691239341924435860477796916836983623987658658624192120656026001741500399088909327393622326248062362951834819509155828077114166166163368656331448335887177594969293103829995827373763940214624609908561577099729564947137298353558217145237819455784077358644040837963439911153848774951370124050967879587921472927996690579858987690622426617740421327428819649372410889700813907475694894839120252326190228269440695830596001234168048193884506590269136848808116914943480103669881670814954613501736412644771098981865715041173783607051553391642299090494962316445843097726542043553265335771779974035464183407487015733824068671657896179002206970302271009706287620768133683576021698819242297434402465008283156006713160567317332317627573624779878914455166106450986263498475205569698365052571411133268306977366817601286116350990492538588767622090176574788806695800044493064479175087017858394048600377461441782082862042287081234835644378303532005010752153259147888745005207972117118892356475923343933112205270539147759653643430337807657463256144151569647368931592986573570576995711237320781504623855309379931456956387246998736230362303535414565437052191070277973970342631653557968141359605744713885486748215366273340363445408045304616294210564489669451032462104954010654973202550022554440379948821821372651954807353731228731246611823711958536838175871867961923622797640788335004264147059125983578576877333076349441609818836711681554877684002807935590707743837741933847930918219311074829371353156727104769029370575569546207270838719401710605198067779010235148434124574922772307316649352749374313399346179581078757959068874685258281769607635317382145821588277142445596751182901211179635813915856454864972376829544589749494565373204324592447886839386760960501387980941136089881925973944528280154187578567641309033548859008545510954279679928813249660600729650016184348661118275024899043888305799066395530700683872013218130994942875267542927531001207183321261625762382305526944372938985589293055259159226742793789057835711949175907691294060522746562668202293119123656829224922208489707270670337007236154987082785598555117701254521398491993439710664290396121183740001541037881201612478826055789721913442394112093784647264123726818413342779149617153145214234737961873433917974526881022568916347232421551687863132447882032116373656630973173828930976039196028356776095354748699291551117450864891992567559337699629666542793979257173908659632180278913578218741113700931586832053036550797835917259930545604613155076891414529121249710019637198670516921340107640550710745760064032867878943520286934122443873355123838243604180310081586552361948752354724028288899611772471571540221342343020829093883790631068169262842868578212479223286496501984518725359114580180512870690534518645700465124575023318591975909319837050787090075131490892827515003510043637149328261735587584399561077673881784172807153494163413492812460672061290353121754898403347052503675015715829785926326581474191549706493353384157849129707040359971933662933909684460562135415638249782928222234696583537354364013248559076256703603134765714789543192717953600454478660987375517612030929294583118424905693513504247225150188581900004875764196042492570930198368616646752740726305370716255304055538540743271059273482065967419584862970365000036584271471400311148357279139773904608938223126028223529243821158747146415443438411792610247143062405955295401975027438576645977280385569090206029171730628158889397865540055042477218077706109259840482241133410663508962899694089148833477116755048552239829472814826966811886239190655003659057467991221752306995073241062406555758386135250431616377575539945356329587015223244626850015556915319535766795606300957440759693146110264743019237857762779174691751268151534689644902124057502040765073605285677142822335483492573272286180928449115787316787545462669240911605212968657510532084284101937366285105060738360855248350637882331810504092062696742035455510686512113724073749153306364170893746602745876179094225166494598317551890933456172492772913040327373973917625753624205581236335545368268753075263336685570465958368091190177328805959455056370081171410347049984929102283812789206310026520096156188806243764861935998247416113428964630630792687392812069020902310353663691030524778203472606054997134634658928026972195429979334282022294056118174630743721206794291714382903193082795291769214419975328392146557809423356857528558093109452363234735622101039754899534435632669335382111379366181597458706833540417021973585991531947694309012041763083418326719254255191488248542054673454184425543806757449842548573951857767937543494712248169156270615910976714660068461413908798438945363596458950111039319333120775179263783219365822935038489994148414367261035150274101986519697888453460009259428130920650176735053108592097986983820687049598688961423449029237810103937528507974782786228340277815679456766373133031182070223347096313720263727234623228611191116952828543081117798508581040539412280007406447233278566374904690120771706833809898190438463674613302641515837389291644898091716197847401051115873266929264399856056181677007134589568959947757981480487308858195574012135496156440423675992045551163870970303926084418911291025512414020286463704237845995612332005855105186253408145501772104110317618344948080170818937502912886080581752879787310191951361658082931293259725752411332598402866487826496526721827881337905396661694069269028534706780548147590129200387583591453843230252986781303090300944447732384303069829800511176654297186173782184819623208454619014174553513717283608858857435672375253101327048613541744516835177222144676536748986948545917060427061744348411490505200352315782841651954878394476310420064349468396119960468657342315227728325456796642569005358127039709953020256699278402560524191530800390539112432806908981002880867528751787899663844397095330738326580213393977025915387912019260441259380187781049714823032506797293518640019646658210163028421435260009510238367874912645384944758651907524414448293497945068312392865634315561553470954697443240498921348666067773134085939109484924905249319748585145062389901602079341287506900790224296243061138562203793953230298794859019242756415865669743504568883755235462837273386965255749254856563164665186016190709300650219997487117527859402153283957063257428110840126361701574477552132568434172406358135006159661848075183720732661093309353858766834864088494354472784107740171439307572107211617597934829412064238964095126864118663727163782076398103469514450872758688478312545819530780073352543290325853254224594248107919312223607746253467961940107111965108843458366067717615428284040534465227005890644366604669483435077997822299530151060048873845865849133643374413905387637199304056963242613297899032156695872624875642430622027192774654322257376619695354799081362645526214776138869027693183354243761509640236206759217156940030032481757432883900910986875785194600058655341553681054371196203752963135331384659895360121513413631991046378118026305252676038449177541169064580979874192469340839032920663066237054366677131602984126302684036364056118655310098018468231296422464827984280030100337837905743839718977471662196710806695252365141506635735789707180416862846036504077105129831555891494799407511206060778727884264765641345812319515906109645083602305727867456920389314148407465447438560647344735228694677771091394802266514944977959313790125942143143672743336405826678832357496381967170710243443533878762108263973047726419916850230137616425703593100916545345493008771448872026050539005173274823246734601922056394643857567109981914699470411818966309952848126623244190576821470990957048548305976085586457659866069308954712022065936800659208220097399970255313224630771046109876024191155752780023413754724855749842906233592101902507141205795090097843752776765013872340677436433373794872474797179249110624302006056916067610068992141236399261752586257696499759670596831258252024043464461841972388775205186143610840932098698757456551452393356427926231418907071682209130338986057664284275564856678710304238190256062039116320085676378498941830304798519826063959769001789801377084098614546055270383934369091862692498117941741174271597290629131791214478380238620656830247326834295352630066192454014782692585808679992718263914851063385278468111423824530941360939263420874085062719579676650501309002773243282156074105131362606276144983830576590709001444568639205325379465779646529015320186681084185093666388656008782846224586032722822235889364257059408429873363063149584125615391864426045414321259545512811876528509191684011488941000865446959765164421810160691484895650094545819946949780821934960640510258241643280195852698905619495304087152786606831080553437140522252750755817592774402999567537926884597517831135493844468822970310446296776906450298908639636739149227096164503091370997838724891960922503896151438215841023883945265188278710328450212325962986912883472539029505698755835644732168359089691228921485570683224467400679472204629708358530070895307545211038292247641301308475834270671284596942870586551839768275372117877680898144304361016293857017497347166829067882965104024827891111376919745534149951559039095873655186524032305282079618234323074511173587425928770408491431388891436933574061634840012433580150038919104496905516142281080244754413973292911119005794787836723565668091445874581397444605040033684472211059516318928043516298165430211895509102017799517683741436120236258241157524605487302088301726840810559014088231229530192853889689702462545006903038848479979863649390470542891984586461695558037267446530245422407633584906984447678993718070323724584532292659638193967974916328687897739451139339496246706246568731385810142103961954036429099062371481606397807433448867948524502558955721293368868020529241842374853790158672193227840735255279322313189255461563888025793690159506873319648189311074576514822232925941737190682761664895496016448993659823207425344239341390582317081913663302643244398083148785737925499797033876711810367765734222138302743683544541929960114455331307714367386039971742723443522018055658547904018518561755638204325591861589629082914955827016479074945442713085637145314801590227423604662665436376933265330038194003284023414250461682122862465034420808706085556229643863004237746007765861832512208726774823744388125718494966766933695807581018777713411025577036817272362058322577658507259398134336200750727306347319344837883251766349151019308515929672275792462817071616516907367995335278609558096342725990095699774008057266612717198126417150411587908019867618305287546854223670959493685977689581079186834269973812614818188205689194368195156507984176438983042710848715259243169370628555678190080507561322523434641802956367358836316026938894943290636781388099675398909734362671488853227757863959406340396827949096746960092861676546498905089698893944096898765380471468530001010866247613066699628672027803787463980050182867216785278807493588781705452582077625385506114575544285911940257885976466391185297212555031003777342447687341303690368314104142685555457291405402564815555262263319499661285956744043045360869774410167267109769373159402650119746401309408554852781235960918503903554801663186751581927630187754767613974805829219882661647985513497090683235982501964197796753720690321456165972826851156547949628521114143075885191841755601797405268991552427698319226415499829215846477920894034392016276426247691645141777614959394235940542108472125725438175097755421901060345017479622156238070044029276464605969912355361250210600761266270483467114070076070108165337504501621567905885540936589325516409507786369347998791706394754871729954910906648183731134842331841205719572996580151379380184977997011942846988313748267369589309417909957802834884443636901848456397953282846099024643371575147750141080852715778495437966652350116873010792997983620487356421672657830021163333968858906349509536687312771489622350486274548970277543437934869289546216827294425109606232471949677972150819879662238607270937987312418310353154048808899674565003247971060023842429524157774541024521505546848219153941903508466768240257836018435836788713937560296170597730896725128479757109446421117554816106012063703633634805761276969233578517011385155160554788070304454813970970281307730106421520782633784210606823711738121680022690947720571654192026745866033191737679777964288359060436249401648165449561289358987369064671173191951488658934794666751248433618613223024295193393280198883452019034027777326555677669773459242816556022675581317549350866033385155914416344051561384044562872619637566412113661040038763024157170604666787810939617748045005178129131817482134876415725654557783151850036590805876557912681403110621126358298493252865893708209156663090294399475486569271202905840722953829218104528681007677016616780079541063429095606128901019461384505311248764728547920651920081286296010358730270217463094354819019175454798311277522511495419281698544498755172219411379590365602711119612076222491739546887051834946215799179504800604979183211446359655454285232502927178243548271676822963873806157258225563098591299033513059875089722038763549242009522854791881682833011506689760937541657365696084422410017903479983385757644698831891421100207170876735384362745258533294896695798518482356432600443868936424581677915120957867209163784956060330593662980202943650204798197910802081434201574843848191826426808709024886079009973774862616272123726998421409963451239847649722545876227260080953241350605784265502542069454754319388948179482416381718879989556293694626502688402620163031319977103707175068860741116091341384984033190830316755752711381119035182643912808559415396361823825445581519279830856197548895242060674580093863031672929380585891412441611806421880555861044965817461049247320252844550622980983685424192908243586302124392228693587275291912611727302116817265543570481711897275074792901817947412181116130396766338106252064576408742751744486337344910878962560512940932897007803311545606621193761661048717096525634480252464014097673809019125624135354288187535431566239678084171769110774454395664235369824882594978066860980261289116384038265318965252661890446867406332635691606718442275673472958332056652653483555247720825047409071295303925950060501993863678234205564195282154581296350340511754439272467458294978367049262613938007053493281779217286017231444712711898018907925053606345645924995098748451086861662804424842034015876026058395780852222181381422583743567688268943801632585659779527331842629691446759842057631236011023664333172841894130925530314154610200819105050136971897151651721046942625074902092752980838103590586299291537509064211274316635528389173394546288846349256242088277831659834888432104007921389130478637167531967036546053779147064628595878954467880459015708818385494885470482110932423770746807594967188756313055923330186165442409916031630030415197542603941692933484283733311879140968136898065471649991432401977323077582634256571181963502526956175191124613377041577823437906541271276677216640347889445791257961794981960240060170750986067787911686203230738117722410809981989193460538696830229728281784436065858627867246390010098040145340332678821017667849214982459730306696243185446661366561052541299442971271563773083073360192499324121316380574173654622631869947380104252895623417487367279597345181512661065760974093797309998060888472192253045251014822657890417931836608531327824890104162958152202210680120007930794079621686858177578753953804052226264218869253854554360561984586756002821173983200783589505940772633377574190490008972623165437760172692885129667974291632775701893566061113460528562977882287494019769744603190762781346102718415743875141850229242216101803741194045741514851007205726066788065136872301386569323369762806064532512117750680072648593944818995921804501192209502763634942932327392553999561871933720644649317836249056792367608082418938141426621760318682497781998143677617381378438568511424900584735770134883614940100096766824544920529113397274741122806847025329639052770195045919182348314359223593366693488598220662542128911366187548659324244633071528606268997264505439946363545119113611908703431001216943802829824100644964098652627249635235344264520025844564945618535605838895771419853606009714532602463016968640162804373826389780165699296584328330162991382023842395368834321770376416103275717586815099214850294007895436724992078022760783868859042690868840335335736202550999182540570688810949292402169264814003114118357883605427394926367452181955728206596248774888636074094152267778987369849787056533177598954414767136765378029642432749034790968665594397759310194082473146503839873320294320996194524821991601793703021615998367824664016774724583906102511849986437745494916624718955348089652711780471751998717562381176682328459535852747302130002257566343078801605215974863034821275753534449528914593685180464468156745747849804498798911381969464207013153820604805700997532963684328993397113964747541759789950931151566085462631009726310015407441670877407011796644305049458776107163122077400827223441277398409574455373813092080086146020242501435777438808294824945471460136878760334778947426994370997324501868831626770930932615535353685554607981083352155525248723275099934384270831671841679041160472297417446414226183517458834956685626512286105774028681617079200353007895975520860930362508674334668113500856855375861723514827937029221542737773199594648689346764508446775429266623514196881345794809484385932049356171326900590246635015431730421880075538022921855950800079769720726533122063394856645115563310322755939823306730801365901909032640813615961243237824883413518686320382828432209132242794887246203922491153551075682233448430353205992039588496854197542905101841865041200255826005966374208531977666113904409993128264511402108940928917695987678973105266795276270299209840921395056072519825374204390714047324814730599725205582985200481388834223500102134515224915661128083366452398639235611353579425554988587132728098776076452522822934133118378662945463563597698350679638133322383872401241495408837589023712355390737273809391998844978320128033705769809099207591049552685946564021566740436731522890291850321924389967405098261731381521307781421182038583483761849352440571560748015537288622788725901836106417792950745186500260385567414872248644368149496495455471775437949896979815842557562265133388391044850092430685332389215156062736687564010787728741789965985317878334569977882014265846126684182321431838621513226014874686060339017731456634410342214208222490297205698138266113281656351506359129840588467404801336893110676982420736432366312770733443442716093432858358675818932491253654389009377917214990134765373548112747476524663558494941534424695762497076812254920493841390746028902274947181171696265809041210534238395646961074758603032669292379368383736859773528221500393435516172442578673112844123244066211481497838529763138445528886930191787505911220959218086244648372190138471130214940080531738551798361019567954538082693124761611267818522037295607579294093084262221402775682768743381551220397775734831453590855239064605962636895869473450065486942695980404921759721343659471528910133642470753683488098946008164619935781874706081441298267592815052709402925208352379159479594091613150643882991151285771987184700456576159825587879285448959171820219577789133036307692053996159101224553796679548518403244055972895258405699255031453253492613722256672169385637243400908362294719501147934420404365600843049533412678011878588062823111511364945848325740426965457233525040422235226444783624850720805010915327765810334340690397185015981662081493121930197150953867432805592105787614669266007692878757677927902180549011645662989060734974322493293522442173100179440352604061718892313784666723941654125033995461959490030869750906758688628472707770436586218460493528774660425599036911633720387984884239476227207986016414904089623408940149908583571734903599318704726570208591797150208340996741366211846927471683704776992351219855476626303942110359849792759278370193361312352721456344220770907978866435744930474731502714939002723171948149585528716488590663166845671093952564895588516222992283554798472540841454424326888487293354581678343325199585003874176754363860400832473403520925374452786050673524527736643824369010459771122241316781408286424154257411408195591059021047082238738220540824483673141821341257381311129528291805774783821520778360398213315923039106706601532582026500108534615395333739098537244146282205216847552868658018628570687034823982152976402649442081622326717830001445703593477995552779579663056460456296865866448025631127882447654811793258583476687826949640974590885373618318722222878139633079328910134509588009152680248244873023397524982310085085079341078644149460412462742865744714987656518413111453077032979106723414376791291281511842123234806532085551937731492611037247480785334489810446774902582093894886673750038613299910997973964074562236015575791535925023819671221828119762825114271806312395946190083965246672838902575958103579549108335021658275549895254912245315957590857662925487938145014404876656390657315347090223504522169126648000518503733749449629347686064883401372583038965015043241314508722937099262158545697335522242320860493833818681117251887170433476660472988020859940403513159411783978547581902325588495985562667784165476383441156232046083297175686157879025894355380472249726649381739202728863846914612451952769147675564234974737952208681140118451531914345311539639288686783026493595163079944840274666922864341696149384147591050129685383492052432832624079961855053104357709873085722106826143507820645565085887855790149222577991207771405298666933904716821885362489501410575426588762556213093701599082394260515964811314101710095171746395423494273421036763291886105468893379647788042863936889944375279839207849113373176636299652969366901460858199291368617081867643718744527596776246015050240822503465522339798690249775940987288769071581869828524278093878658472815586480085398717531762193000133126964555890150786951114801630005549903479851269807519311288778195926034034323040598817567658811263245118045863185328726046191266603924653754834351549369732021173309528378185668550514976208891419999249844982808279004312941046557928838991865384264959505443097414284578887404393212110956717132054894362604237884370531034545617981359069696620787994444624894221951779350623041244048185703735991590582337495378176408483467394466468380189269179448569963154596351102470511724792466299455586794539381395564466022491645347676447275267422773861852112821282055369846935433223199230777881925105573873182886909371582765145476459955378480659671728406429769454395436689547394993574556615781699222399503807934468407256920211261644438507021052914736459192521244106583238370005737766941781983484798653659784307831546188157217663287931563214562513676529616999785867237903784693944690831936734443129238736934840962212533645885169686471900605128410090370170539115549830008608302945384654723951619989615084682371189743229908675502611380128035753307253284256445714268784466898623167807242073085696814298469513385301755823366186173493402886864986971422418739316031467984935071165312285338717942845907541891927466060504903162221375848786472931454903325091585098476694748201421904860369862726567252333888185249028569707395114234523225674001346443313041652646207785522044134735963284434125097539845465107595366791179127201927701316376279125221925599487827463324811133397609861368447479036835842185056982552170558833181419568041555267690951805950098048221628279516107445434119223233993733697816152458508405153915979067158632163729526332079303088871070454659663379407328577536662419591832134162362506774084443233662228702647413977727282590634624065448437771548512816627002013393486161045313485608702354865368695436194219724053990804667962514592233535631258942296627742967929362630655866164182199506209368384200472701467656181846135919822763846197669499090555523654933416382147240417343138708625367064186334176997517696932826515765648935220228292405041684676290991022867808968866001706607109292587458700574732702385840801187405891702116375603224030828628843790128684813354133956715514570954567134529201573936507901283430324216490433961888964301615150300118377550808516905017690467884231634659062760211158543163564787287828910574321367117254265913659532539417943215742475802953634438672376295911948132934107673964455078241142646435685220856141217005959020370945109790583510403968517220266421429585512698317418882436628756147318582364730109415952203608536812884486576848614342950057046637501474302515336261381452478636057914057640786693434474674973753045012629674703417008253647138459631634145394467110891099948467723645504006985882750456956474872658156111668898097846116147190576369353473331230095755190192937584189102933029007224760535974787724985844837882946699783516671714498798813459661407930725695869001400926070412171620213940244783380294962918452120372805149965194029903430613589624243216657615657625885584232538499348063981231541679080258901337471069032660834003465146982460132598673324416051086639990310147604022857235943575694914102893072085312271337400919413605884322186728540122671202027945192448676394334143025934152757855845925074176220442776583573015198360264603329286298054079695123503979127758201214626069921539542351456072737589921299185429423222236456961123870481771608533436536852416253391641882021481339026551142029751760578390181592413767327882564243578180288464412067690445156277349624704577313133642360368667657037104226838749557162603574781524206867168980414341960031287864862991757198826300968304465432214194517472847549154436881135286373745989021057550483046260376324708465526931446171429136098413191186688292061792427278611364098110908324051501170238192071915297162566886075101690116112921039954459630251910692843633939277597114405338979102818207835687665066597871903879629512993585646485869019016388482275944251635333539824737227413120771828996868919694641055120856947389351745475886833197977472616922176316421676336919975891517715023968621615996204634854899791108616603872003970277053158075246890417887409842110598149078795807828442570702923196191354212974939551639833210217246987826015179167964028255054622355238213432878707998880294301819546235913029230051861350213980182913939998547158229956247218963187881440012121020428901788492530584472111490707603196000558837279146047174874561656016270228034310246465492813943113730306580125510758941675864373486304720911835639545521139656424236236658539170274979992992844906505469865574878983715110492435660226414689896737745085063737735237653848398681755815452604311868198891615132330856179191328145690074174623498185766965626431181249703139631384113311794468925136835705738848917179409292228278584935667909955993903580571770642157619936832281764266119943747947600148932211660064415403240691053984221925265405630033065983280930887941052513966779891800305451514450308725793034221972684229687635882090130867256489017138188320998964433809812000744450621415523856202352299775202912318214558276738657094029296815329853163444595588287245808751704287414903064961733470320445019960571251421458151034364924209148933537907438579745844566290253316881409840170430931636263317254275878766292414929376106361842109645861834311924822131626225611676202749702205739368493582493088945828481433513497736098830714939218964454643211068361143212315496053754078380889153866660327487510644823172963240267830619777038802827182625175257934132690521601997597786808081797950247133090047852238499479959685082740190426040410436944318729317429818057910129631872368095063978117528670170491148972744719602560286747250796427384090231269033050643102692849834986350322363908014954276573495734166181148477134438089608797072018701670913687016702629932098666555996270236231857576465429556453791420044932791756111650809489393946331709062404200009412527584714407437971826333894347343691215735959797598084580912644552987240430056756834384901890010769897997016185924377322312723347579212622169611484642731526060110348547640222218763749862790670066154953483508632704886985739379426058458481599490853947143075845994707464293597627522868754129467016537193219271463056615881844914700680956473933970941102481538452218495153411318694236811548131935541288464567675934040178940770781864631305506215323899898683556724642620189764040575957477497799794739454798409081606840560612043394993856038937676763129857637498689748452050897875438249104200280756776448690472662161788056179952673464170881904554975749266956587712732629369762372449143961853184711440587894016718325244829804110299052667497188454530909410393698451597330202101568344321098637177527585592495969782719409369984334964356339176946216355795627818461430684834274706154941352595717290980265178067672253883168944722668401154720431237225794515024644074282213284800715386056794670266711737108118288569974814751690821056007704931581155471795266800260581947834192770660891075075970259832735160983009920338014300632405266851686083585961726017366109901867336880738895153879116399178023459264600266116657615653425443461404822096114700971349331690521354697848042672049248164465241125086219837516036208105343667137667432300444896326063357022999531722417459212446119868043884245247082639637086145531131403686640051607946807952900232411962497122505361473477094171381187628267633992224841817609490683387186927952141814376406836726469700096589953297361394762479415521978600819415707701339029046577353725255453012750163130693298984876297523004264371822397349789592506826217904464957434498794159611134473689247330808280785856971998225440623826024408725281994581820657516314706713924650961920399758446315019705441759795741675395247453756239577255977516145687214976234629738893016295117214966998787611268313695667549522060179340659034209816072786001054206501437999976959272058773802660059732645675553696540480460145961875663930767984972226230642630454748504183159954825691935891956794465822667900579121965234908157092166248946522789826554873437945933625688035398335677931202013867270582850271112015722254670988326008649439412897487359469822058854386824363775054762638189444622593849349387092364379496731747202121513094951350228194543529682790525332064656967655388396482355649589980063681639706570216812215013768196675579818895874556521010925994559557628181782890446082632922747800807992315110894903585347777524995146346156605254681012135750917949626139716410444434642520244086402487719149780118178275398888940257670627141254590966620563560250000466738660059943009844457404096139690841927092187670509434341536396491436419667669892445196799683258805892164148305793364941531559392587016899356011223994361448452599772628642157925953536709159455869564123069123886589002755196234417834576270642858944523908187144285827141234454720024989154516938567129664012927586870297717465807586003237478753054662403951983796419956822387080653692813693532699301294985021544828813446407101514083765632572279462760170732822379834171682739270041293257532374661155480352723551577733535410551316616971910928558311880564105987589515230538619655386917097233514223617329479508138820089075329504466935096817576770925563501239020136491984284465422872291169508379041864683423909413053460342678378290692445056303332387708899846067068728095169806601600497800651184557158529780297009724128196951428793782949792169514075866014016232561284685262959327178612251481211604183180392622792031024027840174627797049266190437441835653602892526601297881065508084855780025556508796855591371911475153846484903617209831670740144313658739695237572285700347963642227736716615872224189819433316428100475890375254122989636830838806450809798565267751534346423894684447465719221131623722084830359200437291878708563867189793057948109128661641080351714776001255036157975659601418001204681081739690964373598092028590218995081741493562863954057546832655043769405598376833100713921631300071885233742878687703330744738807344539331960983298934096590341402378890681768919296133889061631032105896149352723704534425013856278697457531181769910967835877809979598590799033047132293420902311902587671144485578755221944316227242498465294865145733890359836745637227284695859736837557252452635625199397851647760304544776788369973424546701974840732249265409168564378306420720456763831988372969015448369762830154005284235960036595892200629112686641806640220711171892862458608364504443825380112633977872085709240581127181785108921953810480626039760465153639117327691863429698616653682426581189073451615757204414955478874766733813316079875950264365412097265932365146674380087570594622925392572011984139524326535283430713228380869488193522379268876728600574219380373925960242573345261144823009554696882176582360119842727063888994205279149316181021586245027048043526322011240647395571660530835564327801969713406401231924835827191034725546608229073774283127514226479404511446697475977596806612075404482415038675688230085270798409583897885553712119535689716763369952385481783042803291623641780318786251796431593591647561830590213502801136771233339932252785117903691072595887727476612461116052426942623321323272575558555311799167504782643179469835717784017739950318653669729094484432130314752692504653253868702688448699340187721035750539632341887586149163570661903226487062467328140028855211750044252952006655692583793011992592416517450688960831883329316467300415271923396913242219206417728178282401628460494911507179022309327708872477759600517877843616349632825351124189433358250473320076751191557616375420044081390393081300861029738768934843991234633292261765795803116913417334729304338848910864005410983808589705439509543738472505154099107498169948284888809923558089836471318883253110920774945665655108986494801173745349883473860852873175002001241571654533671425220910808757655370057786248862378979513367058690986776115479475879155058435770827645493101178335727433718859796794343697917719575625082943920473836867912231395683686796998918486664021840606846634376712254818915804147855857763800253489535187182684158753682992268374316813413815047969907753455972916663496152178889288473609316447009078467761226871544280255043332703100801015911689336398936661369800208776019347575476466261776360031708387535378718887022718960305422678920679071808332739228452465163612615223758559410287171918521046632987419121798073451701929011643387464504167426323440877981076705117271615014808352940552699049574810686348476750344472771579257812766130576096576892791409763756402387727899238646874108117412945105097280312897412899335141543131959146343643553320550924274776240285083285274129395986409774476833463966356630083142879734494835450091669393164711358902453184095663274423972716600219308888989777398599626465105855241651677225468822563314463205225207720061580072810703803179650559557199542619140880043690175944507050931462433052493934566395628321391184097480140798094215281665338414277244775263443141768485514260575152370673096641002855006480999229160003244646018769030388577593296691905369883639084006761505267140042232167221874963103616154154895518186435021818358336663423179055885155129445476759457822325363794201336884725886039865736745906004716104546101037072651725944336886655946394809570435462209412323939660084794833138836615241080665748249223863837997227071568070910836989041378592289156333502769007499892004194511619074368295999388420125748158261708979015586046674199043811194248884101738644149548329057407546321055992792769188215795275479349581991787149342656865858585024245595242163781440650336678485074261170097231356625309210816613261761033253988224945095977993110208757930372160867361722833238515223798698699995767608079362087436553800818637724854585759559055111880032890895715088024512613948296215185251300970527777679146297508881865977145392554718929162793853225337162829334916063068588839351603828895637454713930834188492135094475490277650659002314674313773898848177598715778322756408492710035236896726648246087447831830963400287249452970412902854118187157167892186889602905246471525465591195778209073371419052405018267995009688679018357979460088708431525574181890706043888599688740224295542648007327315263358915650467585464486088999221501809092066662361018597943250425907984980409817966080011807285774815226506168988673833180715303733268975859853017948571074554493875752307872262307112252482627626530848769639749265680003819127207364747669496160508899837862159466707037455978498602828884918532968605446524470610530090993780179968307216146016584223822349790998325155140686749515095788132960728796857883633946339644180374893163746512525509729626261987281119961435208637063326306361864146762730993466118659896843456824186343433901721381001146277350134448566727574871502705388971250602112170067833171511327387156080737386299483014067422600147996380849014331943268155544189049597172387930412848117454191951186867915403539339197711722411224971341997692748228772439841626951491271745522413541177605902553054347669767979422478258403848537760529656815103274509781981136600520861914012749247890018815947532120547516478737189772164598672462993291260365166412673893528087902981515679641113566704250367319050660257535540169776322238813053207453355844683284776755021016286077548575898736589423095858184085871404238758499533321969315514468998508322389566531036016432130594214979137059660657417194116341525366303444600610162086428884419161085681755602928552161327129189956370611915960444004901553577839263460549212179033390458199627202400605433642330999754240871756682187077299562957400301864268666015781619746223401479283054867853113229321321314917986273578552724245763653610902193982616094818727999441528919217987825635399359253118329353864641427024001896231685814637882968545360299841760658340561535236800200374785283708668705762765522661372236017116568166633796395139821789305516900970787724302799942346781933423274032489252448262532219740857487777435451787631292178435847256527058275792145337168118677577696597220460283446698270507882258569846908536351990717696076714640027496301632788168242920507795439037338502310276885725530326472616276077360050870292377321545734176639348581916009712677391112425272933098293955540306599811200049429315406284198641345616318241413350875516086015011719129589570958509133997382153434904541500774299416052801001692882335633439140652362815151852630674839864460136047085731268383588494452217739361961325327213863017436056017251975900897566506171936899961300226414466222077067760560563993007984385761248308734050507832714897848826049156551624732480657738868769909409356212885027631118497309487816474085819465782551792158160208294739675600652908562156770384694685710317742996281410007175094532214364959482933390068226416366497832845993982305015064102595838240340614843353435526167078461522479434945534530312693580408643328493744663551338462884553911101842265925136604949644101219550669123838337040251836740445104151521743060838536455986191285274093903400034709326087656671194805829378149506645523130439218764467297728758772412728954457311474162518664129961644901841149333432189580720297716159046761962488526001492460098427797652383332470511806923175857004981175185744511071443743482178349107966163151677283508291472518819123560238512428640354783060460339425635576312852724028086985315356354777806167562658185226254277940510678579239700261285444223864321674805971826674237318849971538250508455995300813073383459799280710615394992665654978726821013284406196750810238894737979805919435279645394050668940982492925950121883568076664746063602617895778704358819397551730795255285920274992484350756536517277624864048912678623549781449861583184472811687051348666340844349854323778353724259370055093762921101747335006326667822131032841392105247266078098486536787102277048536082144667344179331979498571381459005771332493164857686007134835898524255630422942513423950322538641971089361839228947441584670737861327902804731577440417268514792096281744814253494672862519327997788132624077450855754531728151338736915398664936387130469418121314286432741471601073844606770315652397032082379734656756174607652704795677954511640131142388867444066626772299881316858314741339989189353282308247078948578841093374794872629625023034102668982769410452175886286769384874301120357062222297604470165849782192540223783080706158417441679952950351617976322828496901117615552024866056877433620489123167133136390445991815581210875378699747245217511946390962886885268394241528146351713661224130994861284143719221626799355036047701692776340318209821069739987440202855702541083158984132235267523562839177379387299919226475033578458700577083093615212498468540220302004452320885407566817494603517919691028196616905848080416324113847765178173241734016670094066986647935264811694744400398188616275167690031118298295092760379641832189967815924121580957409265260803426300443641977333378440826118420251682316544282670494554362546253447882903812765988702602662761085333104625314139946676633021129025892027807084692199140243313551097654493903839837339438890647517381810691601407882525074213148124051722018915323076697463834562995719524177037877531437059623196055740955066098544706976492238095977516923471124144691754180226216832711633933774374011386020429625035969948836836925557697668466326794624054356184853171844908996024571452711037407785775951856038769079473291819316456675025627423147998078083365799836885448260825552269325747450147341779027695120332412239436709934244592148104130139490254885467603104474470883752533441696365986823003769156311762215759965755299631906429561626782353302935209723807003206638091240059249656711573782146641435256012082975376294951773941479950662790137516154797181590951351981183175045438464129225591211988335361521649636846597983709836925530211522066691905961648544160533394005629114497301696829666430945373001337671725786249652342549301867230375386244205944721189006897583562806089953442429347532448201185537328981695214766589373680772930014141032795787507092585978819720226339073709847678382786191093907049684710306394616675595182857866707038984838104122863293890978246393887881364242287393714129785892630365190028511225271030644148904348328743075134386063167736603926028332870289123409132890815948218874279117254813750568589734409290494176236019873574484430746438268155640865017906435523363946517250519562917524862708194173811436140700190995681389202843482338961981941590459822762955934536211149885039035482488485347558717694985168773213717233591125191816450482395570625660601142981684826007269698046796175687061886500166829819136368276057181570223539945543048504434270062405222251057440924133723828958246628548868217344118486998672492170003740433930272429893269188776488756266022767183496514126629366344343978197874182630673960731989147150117396970245065313235903148554708251068697555024674901650086140280778041859186709318360961204885621264142870656026939947855278558443053807348009923910674153014050273785186444374745352858870297456265900555117729906175232089627260568970153911124686619691454031230667443158595150099335729756780426984190025315460600183213243663067165850860310256193417622045580005416693990447187922951256366269312938738304262857901778699317345843767457634210077203724989481665834265629720453730731424235139029117794008963248155378771614716402148431960703398331557906818561802040988756754174343054513802011709281553160199822816133853885129207370438392683013318662625424211461516611780769175055167244507542205106256483479273784265975008925554340221031983589084207366157491602276386134820303322739354729396987509810743227865543271608281220937106543858989614363969433643119329969966083593277716606333774299054294206098887781190247201623612834097742799307393260340390831747796626650272302508242687953871447506761765322005300350529370147771718434448276826340168074669870217859089129749096536698652250807310175462168022537794819049818617095694336484302544329506000246879135524632020885332450549023861014334878150898471278978278622353378490715458229696220930435766374667968596563030702075605480032899856549540264789419443876255151111480403608630190525348424094659099521261004263429043317037993724251913065098962592404094939668160807054102085251182362287175465969178627853905229140505735021076509259323839105376096947506407200692961563277561800850320905492324908967542007071873191150298786382189552747388694769276615731918041182964704540868206276461803277034934408825862936282765594900335912672354705925936071483781752901288707796924632328447314080164227830035151567377994940775362235999172092628564864924274095903501956243120262368330118914846363715045812093334165577206117755012184444060209918943493115143660730748337557127971268057353076720129095209708831198339728000329147121474154511078831042409174844851387908619496600217114565167340356854178196176546399277945181183393530123534060987927076014432564004045284112015256477581583382219105158079664492491187657279547901225859180567874626705355026724012244595572975089447995559827799276698082033207812394724986955991036825882146620222588917961678730128087525014043312161478847635404463385574481346927692469782724216909209998978854708539173835031702882676596474155620170713076352990946583221813184626657337719379361809280078171692017140664052932819219365343138284971291665300149180054722568006389054607717118974546009942239203634713265283704105476902967820163090331071147651600187466367020004276606887125647155334482786715569578739860219025034711570492389767818662808443103709900684369448703906281541229315483704677564403204439396704344821274005633008529915393037312822627656343010469720970065401687604924317375144239144785929340456379560343992260538207862129179283153624108321067668271338775741403528989490785098773887905961536377133977899852729820195061605180398330270772142571615014304792189394900955541895200772178438198059402193892459163086712926925124371057045813488797855359035036184938552267609288186924852359762747806825393984024808240006391365515760176278420980664820326004043088025648673447805287108568236103138528004553613716420037957682545754119377503693484926063249672728409851895512428268907397001267060545936804676646247599058722894196501500097422398900920474754014831716178843214195613626948690744990164368599499668011952607635615131415892491461827506677720254417468975793554966289088185662118571565345800411171262579703021347038948337344716595828074859275422040561413242357796914772437401097213372830931937842528381025307434416521809966795787925529004832475810779924058600860801767184329360812649400166809555959119391418806090926632161409620897076475827807770773828641417982292954447035321181422243837343944294774711586930389736233043587834599371071110575768711868504409754968396566990385996453772617599073062698805608066644226500776491197935196780343573033494700608092843990121494360750337111829030357495506292923548089490349625992895407053268845077868600395568165622302633684136231911497776185737720538133617474079225372431691617705688673923939425728673882100019249139097442673487290255609674105932780376631055784699054309284108838731359969771671545060195864673241419604854583056164645103155599450950013252265194843293412137614252126134160553009730947213779666642490170649269408261310755188510014630772129507466028521437062547014983985870231837477601129018231096552630252065794842317932296140196226475521913327446942450589531915630995579078759938477990419941949460720694340790520494452246738106405175031152691666560349009224472952786642424709647285201030005952299674323534485722941903627035919026253858126325699716443724035890767563450230547509222374327600130706022733757966740058762408409466820845960940650578448629144272863898239220697198249233006157441950797553238928109312191938860724042395114398962422180474170792202201680368709129555011877297286517581574007252766505486033850234564231864700532929780127824143242729619417302580113718399437301687359039518851283285862865641736828176875548466748099716060765911837908475284054564490641015565702095344397315439332876886450319006880970327702850507746031715041156706510430161972671701628009797325200253838749552225617243524609055012905607883425483277103908000418364816287319210016836937708685620314641194626014440981896706384583250708072272740679605115442224623662834380473352755378740207431973277184378394270816374348676485014968375823976933949906972278596124083140821983851325694040133633979992214211298190129243189210389164027475580021131510689806543700208683398393970548044612851382085764607847164399895567131456065377924598046313413428359899334552605742842319719516830258331371544277069341414326635461962755003093323754597611437177956299813891293363086779954620694876350930119249043365318376786499954595836583154079023205821399045239754104418809182242734433484141996065716963850906743336039944765557078004112571631884476606554374333716390399589962835887101022614649983028406397993559290575075674045730981410130326269532351214806087016267626334308866231939587812960082760716969922872588658711499854613867081525424829465560625870520472101017831258190493095529324350008821071102860019003091095048822603563918780332098567122085963583967127982491068976986258439629410370849837898980240391274534206378677532527869978497645915231233211837100320893784952691258059453157301566050567079165166968875737877988180874205963885424588902286420202723844411417954749226853581890184245387513461407878198811854260232463944186340020400635779029379845053125983547557133166156366414899145712134465825065164026371973825524775905610034585408695918174949679360026138807944937178095434686826028432653546853132603798228754340578848874122051109810553563632883129035853432881377080694020726873482738490007063597223407178730537946972849964718434590261156198436343497015494589794072005272315652897612488563695556697023430790493373731495548411698089913809064630019654274057289014117865740032789390595885982221807768439919393909468458666378414448789686926585737797547564420078977850321775504242244950848314213720571616850921377625356953156290117759903990298683117371659064845995510031023466384811458648560447256467004129112571403031675954947708253490515897184344784440916704973364313801951123014761162509404773283268949874811164411798628462915625758767103223300982546118335497100541361347658410750641407149983217731059734182865400364249188156576109607582159820453466754119894614863834072768277908698659488223050589732752307673186115629282125559189171017265809299439108248973789626918536829321477538139223055227867824880205764369062455573917135928821687446951136303804241594219519691244050605678507532141098587443720850016235055508955593835728559715390160957623759983427137059137866612768668991514234496853541843597460769681741888848092032375485416875799387745965289557938577197719510389418622093753161142368734480384472202824840114978716640563583448964293957196458629683123634538311451348409299437234964831860152769100494357048517100360757669303048767225254743088371859321972412163960050776227043688851876760519167545008779175995218107268122959533724281363591469823368542150850269399408932190031426084976156296217238947525649033029943412371264643684639616212485884738699211858956452150245167350760011173240599408217516627121041337797072671951208155310311018039942110730134996595939647972432077832258401168648309759158490700751992793818598707336995005250189404308254776412176098560360114525846793836418770028909178758186284851457097279619245459407268966084201074535371618086759496246585912594838352681910026794490201002644972925198807338085657744470307514724112473943307699003806596184671866126943706091708155707099414275825145070562640269580881897646302977892253797084342425134736643413461201050368360034132470802192044223655361543348028885492924361256806277076362217523950476695844887729630642868070863774271066473336720831271214985358841029674528495156915305843421462979900813467637626696682851721940170007416747915619862145212675884804486589954492019038135921429379440319980061246755303752536573228916099241538651535353882948108322429132294280276113477541769067890094283482350920155468530137008683790967608477265539517808022869607218114370858847942701493543123132700977433851985005652348688368695734041393294863373359078795592291302743865423428340094854181964799533599267884852981592424720425318287956606166015110339996375254680143339407547693988808010122859233711959383870521525925030570226476549959679183711797455578741465005716855879911103696992184826927771850862613010064824074551001870498251998856299801641920965891153376047979835180091880829329029879068072854413610019294258185388616674022479167603370683081702919097019669361856908962601539276143710366444143898160214374742901256447327789374257034057981490630362088348324384555722741949948773957284935033351593991743694588521605389147390594994996227851269242536781692921146578316018724018131226241057682075303053178401484262028936530104415741803428232042685205383607924865008376494553249488056809173350294563697936882550277325839874101043661729954173728074120105361953723091360391416299131140681373005800855576859241056681636001844228168042338251285077064288555491965232459493837156729394598502166849811981374699357547080404934074796594795299609356850210625004112203880195701658102804061232712972892749380535251420755641883976762842765457442962733703968718339253336855583752450811227527654207605730044011360050050274538136212607640796865611647267632467483618993191562986348163621759851908468617425824636396820603287747479352455455450214383895369520071561583042438653458370388108961795718542571596122236238000182074983083263329527350519920310131426946799909257017133490944957108829043911425258482765846678914437322010705136210701717186373651835744668445420263359951654191340612968264133137787289969480624818162900925595939885561503703429299344632038663672457366876978392939288969963719569299745186766756746891109902760170160349385900627939254424167570160601039709520041066766203219125245479170571317815284632995371175587586004495784432769880743590627777645802619320363549707461711108476578231635780521483653458419673317449158090040626593970353115539727435636276419928212077514881214899813354800589372730182962279238158043597668133429199970937008029733423269889738788098456072055351222600984161690223354341585613351360475809354303743177096963208925257167707707859097661269526686246851860648450566676112010768990812215524182548721998336753061381232505656345554506667928277164587413711716721839844771528359953826479818723673540079999766022242553080696873326982092142880046355241668915873374853647710948568130348150706085617420664799969330705542168120542387721466520606999431496533962271459214432166811466207131308936851221993172711868934072185509638363212544717407384635102915499818421948699249172735424607904726766877440647824610616727257085457222879559798190680928566122447365753740099394540714506404448310985115446032544956735571285413473459447847098559053405275054630655964664097739124068348388821763056677216456533298852274528525703085449021203279520811597861209449078111625157528376004851428568310011682035436088670997211089756299152534538392701162135452694379772478889166937719187216937124064210388551602000012660448645545351964192649832740904201698010576565515549554101382565603969197822790411152856963682334509899276691160643498050781886081632538707511683919686449755470461654013002501082931085165293425426196499132950190332334820071615168022453446562261099378312115381104525025309628279115422582761087109167079470093673419853001956071481262193889021919764239431635998822014183547319053062992727199649278088847932083032877574903087834620008340703304634565839099150135719138734262122584137985417979282983012246205499847794752409653000256692339595456598042877297729900819124941815631125249140694097324893509546936068011505681049224788123637115571003179755475386094660239617960937980625525138534343583267243916506331672552947228460495755184927692042241600872958623025645354383097652854418332916376135063142394119780182490448778873231037265901158593512291239922012754263739014653660340648828960060090641158170923483013994924309082719674081007856170038546163817177066618341656776726499716540215262419264894641615920706209644965759006399748759954479213476175472608960458159097525398821240378265204954665694266499437183692832118169007688393242973556975875856353104825781882254110623247832697917257209510922841402803023862097037863634457287821685501140307499923124337707199467861623033632867032667634947189933010181256725981531308528917702889008899556496884727483846733132437783113803812257967374484725022442423768479729421857834663056716035088262625166919465907598554949819067374788707122370222154819587355670581383340142493117616541119448465936870208535358557877618949438701388133058250794798982554606449662980992709443972616917293059608464593731110429646266350640172014978521181522291001622600160725388053080799747213183432432717159193079565441480066563246306154583708369979896317361191978986765164004656570848102998538522405136502442666418806319792435349529186693517697661326895236569596270806547595754109285510680196768813733810184283101488473881452955577095513132930917805533868132850112409060772693897915279322701841148063210845331421563856404422767899871268535950831448837594800919534927304998240808057470344791821539400083810401141851307381926869574135034546920348409106661606101072646740043109581308345874376835638955584549872620485163859991686306135495694056795425804571357994594896844458227574746830668588761032152826609605114179070476731265239822130272489013893252774627812227843928202494913629742527733734496109367536821297811282435855768336874140133926834089759291179212062230412129455366779016328910390859240577035973018815251795003276669376337367956476963189049539893721454380336957050101011451778759389010031379909385531701186550227751915143809510636663719235509731514344625107254650767875862069571362538862513484697034131750518131810752509339763913773719331679224684525063420697214277543911303870284627315484949269865131868262267782950748926035742896897495842090016751376405056820178613542889775549359536408102353903023352261158815035992336626563148111601501611809438522134915719096499074283568055393549425681357799962649439413755114986087555457889569470518135498442843215491881769957008715126746034921497716616921777440857640131096716125964349857016134987842781342387810566853660547650400545212928748908374909295427025156922857599169768380698726585520533356935770526244771875708768222850025115731768506253139288863136424504767568739052686607269417695512610138046835748248965859176515598073265726057318089049633571194855603963253879478192555066394209405576072746200321245356969088830400090780847770645185605944127021418082167359273320602095196438792521393224796245001658030727986487807961267345857802192267905980401498529173174772947609436882408765953207094302941315014189794165008892872252218037992935011126368515131975220270309615321527460619042643794080789539722650659662150019435303032771253679662593154846244207687850755511026749953742869460220414400819705920110087942182678095667602542018827686720646676459229751109916362301439237858492933777556570427709577702111180699676108584792318372715441254147949068507552980469185915546013117877458469989039403634405431054371025944520777790231127380498062331409759898448347428660904725990245876167213567385527855014426657043640044189279815893405639748874411004255378539119186027346543969779917706842641883250803483943349389931642848872718618604920762190673040345468699798885405351868309401284153189092855131516896388240522158044451821591907465012408626222979214222777839070827125865892309929411135375916155540492134976319731839864127810581187609612910970677506327500049679989477164181216350100635583664142649525615647170492824242754043637109354257262737034286575332369816374615435094534230703111274073681786380912824022449651186266387971963141282913789281995858992976326524565325496396020993152943190573691696592427405670234969615377021086199928598347259215158404452479052929042757311216113603493598652191956480675080871506209259619636905133215080587639041247260669038016747758744870433695874128272129185693166328629123761018156088111144861217926899934541253577945100600932884642649866666327667605772417760301947449702065311147852287876224145312244481485608310655295504592204476969763255799921496555186037383117928834454793574475007595547206158663744863016168842120335669888628549892446891484568936327181872805728031868674607547961284478487138312295736299506497110068512342292143808388244475746933280704787027560176595045615060885775708645206901341984110291667231915349931801548799592233858628654695518687685701260989264131775708582457874165250317837255157594929349805860569296001515769095055323649566464689679689670397552489832950589123525052352844688601647288082522525997742817638442366395088583539088172109450934776913528842510945587356170420872507996029326511755455234848638582659991864679183794792140562018474308650368610557636655331037946638359835159809865663352548957745131349875962299649262195052844316944315511307733806472130228659751310108055321366819535108090584640579699119969752880649997023793414122871810853183935519350813594083081578506349864909169302341499354079129905199782958023048259896217402863642251309743587185889756895861169179370699548442251461436620541579156887864986507899872308944053409543019662604498334930203676893050682845976638901248729345090710142999806700169143059748935680415479445154350152129979154682752060597926539987182658625107610591210335000549188924964126461947436660699277773699207280816331732053163112753394058533268661955497468373530392536313789873202187179497607369007535768580825098560976981575391389538350031291219838298011807033373520506881607228659258249417460362260993898738103778764182962109482865608484542938000185379644106818645217971333138445023839211081395713788553959717641943353256764466221766703748477171243089652925029917544241164299387518378323372400420409519477324536451308198380470728852482058149543874982606727008467641433649881882096973630238573372524677524607194394825226885280430060334574187278784211573201248467127036117399839778417740987238977060264589695559202145647951957426033327293736106505719095796914277968474845150448521115254203063415767810774608071185203705162319373754288143101732993189977988013384986269908730247635692859092591228201793278262288814782197402707867364014465747956763026505003340726801519210496507220838041004561036091131934340854219524064651388595402072988610767077278613941702350380243315921149228497138481085911673617242071635552010188881116182793092833988905339785800856510950766950093790376498356483568627189209544581315796792154906132792777483941479715829119670263091381853800233502280185089814139516030208188835559408622957507780573411779693478375089963326766362255653080049260477768766558008416638702108374657536298477950869343674187684118344625713042585161618346588631414533189103793772311815475737232217638504030927216782208301973626429259406247187979783236469278967965653258162006922862676044781140030974938443010559464775474645858239755084096304761537312377752712120781846262024858049036511674301543005950357516243351890481709196370052528541862442121517670070295789083018929398750217482416413716239253506829070248234646651133318517667982975716581459698630760721932951579397459043275248956663113902140540593484068402913525125122751005645325397943919432168147082633828329642337385634867559600143751129065571861285623860937257258028462670150308638943147140788055449414630728010999378862126737338650953751018635638539163533665527315849750874745811782481679932873982719839066387396889053890213859314451323088524258319285934784626729057493799179941113293977759336341618035815030551448008672631772486670836925886007581225421304056241920271207323289480659159062139313966902518166476890558714290044032646947518380050601571342502706420423711030474327894900573443309975478117965644817802547203297325524524360053078449613263753495987176591157127616315562635510668404467028703762251636059745086412776914539891019165027659633690472106569258013007485259223152443476710318866808746659736086391995833088949347315975845836807828254345943504462945118261884853722287278530003596633863761741728540486673028149467261146323859040665556389181365670725689241714390684036589953200005522169307169606420994003962626254451098569943314821179711399245355997395179034985310675228381069864223912439841689939743397326607533559639959438507262884975008052089761901239630537175402306588528046084279292351474453897891469777914416790597270549958298233620952574782539511688476168050462784675155363855201631624091478728333489912141708343435473510092735515940214134480558419007556727136362052468439491422119152345631143669815946570270268422293290342146282143900870975390232415570575730706805069504304326396855100195605159122090096019247020216100917817602719642812203707081591002083852747207571933883661241401163044313163773421599453424275707185291416591363779927317178985380934787327892070226494909675631641851251641941348841721600040811296390801422761454921063444342873577610088466463995630570371863974014381237797680046242712708022009321663688313109914007255934356703085389660070981939665350373126551485129005193409414193988144847455967894789206207963034119719019202500951967560025338745461115603933141887910564700075564947545972824627575126862685329093962620165145586425548028653489077100920050264377501760014616105746754472529890486441053421439898958196363823769269282156063607811269926172573877933742238023508818354944440623324221866056872968077183187754139375445811374714797158445030590292440589255469205359744343012567048230243219240059824024122869520166038281833816132322730214132613903580689008980673211610993361067184205158129159480544179802369151699445403718824287328913936990704438092838258750559982279895672989887929931267825466433923493426521264017752992333998080536228777076045165143333918114687584968631462334781090058413135115419068353121846848709446747140652931594402798281071657644288397080715362219403062060638474677745963999661214877329596575588955193653589890977045996865890528438560183988324368749271449087175836759177102876754674656786953648315542718195391875191164538419204076141818874606809301243182386743394069846177475927208357889983246740165470778006418703103326122328178023814101888465054331811288816885065302216733249235679701836976636880395634787477337086523938315141752268872303128919790284967451207155883456675759162803439570439185910816615102566643502267890186490300826902837026035272541109077674001048723392704384186516591209228700549566514133502228452916928789328988722970429838491677164280881955640117388281040723801637776192022409123508326515196980108301609083785468926209956941639566473744805703176960068669601408707624497107633529430773471671531398306369891042795420692328936994099510539513514764990533393476841316569872599876970530132731483153143659665909137250434249762948215594946227140638625914239315897878666734072924260997027266323368599992286794972260826978480830446064246843228144455753774885792842496140106771952304246726329199161415558285493380898069198159578420782440477790586449722145054976853431713317121019190449028216272729238753406934152750713005052812784105734359217076174968937110047387466378810935515978041115816374094940703279273613372327175925498235711638221250721463195295847705462766651673174119373107075622069722416700140806176947767603272832240479777164808658683547096764603800503509344224526020876037332645834906567190955873101296825952522162541879802929387749313550393919629630095032216352245291844650551287461376479193207471690619076358597036934222194243527461170044698952712007513645364824048241359009734343105701807219445510566006373865639119013906575510343418858261857500370006846437061820517344188127396267988352700867211561054450741050213049013056869261084931152815977356846014937445703212210730054869080991960952877210970108646672236026547065636674199815440265551593560099029937897316942521226945293653070582238254941118708591367366017070648041052864752099289201586367095068355138508214514849659533653965490590651419620830899265463214797086756049050128284704973693184750004466875452828691365836046368490449715458533636317227385708840162704104611551173718473054703696498044038816255836261759436670050544462814018915312290101560871485517407977196438261560551718792974742152187539439239662285186143953629963364165425598084852668898036276025488981634782534769846477807947982216661199219018245989076471108187374399415089964009477501893952620170777289351121075440101888287419843497216572691080228677757659010494626322623335604652965659087193242471602573695746488241786743462549190601607588325518666514141537318883615062658463553153585167701677651624384978033374915747578597679277027365059526094590132932422574679187996119571677343105784584631893761943589602935256968874364885334160575488068541367488006216898554875142787809873260219867046148640870784019823999324287286883961125443755874708831742522230911412060914000061058116903879353951309695485721575309618740059169863184430996473864596841977360617969570588408241392090608314865827326835439874434670644193597331435698975571971873122480049950848793988594788796515704338938154431313938589977536441447213770277735270481781122152623411858493077940724640091333788512401704264561289271923428381955016822034748948163177315375594508187379782900658153165986093556218924793081428116614798702857988164483863877055216742202325362449000858242926708500517369114843538823469337041530473075759823516533567358815984669989054630022038104769148754976854598675501571190966645647151352117761972961610290825467278579520167035338015211750087417555270857230221000381823886617088621356583501583717672927510873435649632277518016906437866175440382032180043583283296988897235846587672638657398518814634759271667818544004558042388994882536756337385645879774110186902351615767178551589744567797527700751695710066894467185801777455854099665500155835479886196330109123672544596461472353236786240237154876709866192167625094477970956389192141821420353853936760272438349280968865825912963505636941785425392227161041475849770768671900155274050922084848601187622863711093262810282852792927061090459792698967911847000824338994980484351702019727724804767502845293149316065130625660493361338818021526332359398804254379217426155244228296201095911367506457448775330907043684001639674896061880997613885969634799043670996912768712542016193380498279025320261875176828097132870267175419955812246426083745663952111171224271558832826141167831168913436972556533022264459475333065930238783412735118077960003196808938738747734670724165716061058166934859020898710743595227505387095347519973670575783673129370458378439362072871339113415059726771223168413457132247086371390038204411706580081434852681912993577290745318937954732160703332615555477278513097877606012386031418370362396535386998859168611312775062724364853223117081122913841265567039940029938035066985135867567551240506523046839270814891073882207660055969374286295713538111320894420918509355640569269126697789978879413608804962937327184182283840895691137148170424386606179996294952633466199459807133502579239256866564847981166580536883556339203100265130713562922845907756377093881081758189945583421679441844484218179160507655697370401550409794465714156295133538970189418371819654521078926432205171113242526712452126523126170434719834242764507099873527734895192550498241283893219043848559537980878014002425528815023206426549070053968719006891297321649936467577262396955040025850182034529246864999016430969849003920374254466389673912557394621517109585288020474009885099337242967411754600086358140990162513374426474363408773849983286190623372679858023844632453743517283513461782203841381446884155470868374931692616487550646327341042486091666268071982134677344226358637951260064305608851144169512736035909067181603793584318540681230665519670250127699426280164318145732010304826947274016651956266144323041780676618194808652312653854491139438651550253511706410199564702375758770027397308661197091713822041312750348843724309718322113298086316665440859332705330511625113821833661105390260423822106285353108140526807668360414110972132724698846536655648277678527962105059895661661189867536301230174586719175495133330253111405726398674805749517367391482979753869379134001601712519662347772373810655173211178178601177196257520352914305393638333586896775235035231096993124297096596260781025660391980304126987008331131361176987905983991842406767821498648898581006490822723334873193317516312397548713294295377289392569706941030016639109342428621704336236168200445164228889202438025608820095332049412626743631059422903941790025067800109357363864520008699598802402613858297028727978117807014739327036221267707649233512174087979833330218007486675309683839514173471622795826904410651661703775926432133294481747366584475697312374036843138095889186728486579901085484177504966194377225725572878461520444446844981862202694567214899379492839610072910077511984375247633545483923502115836377319013027852530281805771404979450600633325533943233390134201959902774385361023684564504809010409239458960469105551975596875315457646201878586340058183872313592550569455589497566133203109345938200407756173223814164760489173063649524154600782577202770976315334786683164702568998414208507150112668114480541847606668687897539088841058394853381805753073144071182767205663353677433782207916909423918347583105302745314534359938156788525070261072381243544723806880449575963305328212834109250474984459536253431270764256657076253788487582285735842061597829765298975981296844941426601752426099314455640680340169143547762909430142115667464039498932296670898542891284619164597869268164923561850017941680399054122848983017095087674119031605058465266660738390552374172056056166880671472002014945181589959361441138477518144028165405024717900546711901433980288033473473010263561965366193407486837919611044397568165023414771509866189621779214446451068105730100847444024502631531279739503568495794474592559770512654336000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
99000! 4240964455533085865706196635183509915306517031275644096041289094096052328544601526912218734546257213248207765133907453365889462916773255611746341409722000811588487304283865247192721067076578720168444310899745153964468084872608263252072187423317539712840422224136524894477354664241667331864647771946143576133264866913728138271462764808069357719761230537981192873965157261660324886357594646399566497924714411666907037876685063446743825588998181809638343695866900525170005974238908613109287953240253289490032422923054044010504033047412692024307954447230239560965324530301630281686877739271342694869091690159489442437126554900170506441033013590541089485821972281859989956523222063325038451463583583570000187121527898010732231560728581100616466901910464410099050238042033122982363257543094310322427388486098211395164057188722334908183936835947566923547545746048349131246225654527701477015355254197735626039454467852153410479902465737210019689130509465205323982329108505900833367419661483641501917658630043298980181197303716597670274454792876664833272157642636351651252205227935514902408253235323281142791265894499633305965407243638670197778248606032660289856474593883111152148386424571260245291667602208800229638674317417612938767298618397985260460779352509205441020196754413517623177273875022751127176776311232316604378975663954711269603634828705201064941379364526736918735655222317297352933100716400441721473412792362530977977532984526271055536347359970372344917641485483889597728778159159950606487763112420341209087896671356000018736617711751606389985021098859626398881340269671005956253486915251467575575460078285634566004225815407610862863711277104030870685260323537853942565563819198055521149041850408973437551107878896396267325372121207702640835761289786466311811691981171150607894297800186060958799645780634183791298433214779995905728620509892332307851980499811129293733131428812600619991699891862938002953233764075333664951890210212243272259010338386228901825621607497504860971268291554804154256660900208506786129445514647045630320870009613340470387884051520947739028141583575032119605816190619431413764740595579034650304896184068163921845108118478633050334477467815663042912655675661536401532262346396441598839229927171510408299479440144955450383090537886392129413889326693326433270896367076535264293331871023230854104320578034536442822520774501299060217163334148737132249810014333960831644877961996888414451040538516205674215889232884830253642009647057732712740035616733441833577302903555149158175813159398160402933738319949063143789546133066835054631681623221915625221372175650976447062874304711598349402350569123575338454246419577665792103058450052127419379837001902128439032571197000556133417455150842685374185888343363580991832756873410667459411417065945927918327251820098075701622820108059713394348682637559459661552347157064243190561499118163849206682522011546364512860698757764211237732994783316911425899233826149448403092371414739421919944851886738435708834535565899358865955423515010544055423923140467792074510206807677764528369168596693353412756465414923117242955823443066209904932737303987757995074374711879935947533710545355300571708586001703668033227586343713435230210365046165549389695378390578382205124630739561485006236546328137137291159870959227942066111555782770260714144386875990259981204317120170071751328367071942168792819090547357189984041742524504751503462400622409570212246073434598000438548159513580948182098261484721414962874393129175306772402346840208362869502384679358726313501669646234417811733845394231145623038332302165721767281006552882224115325454453385837148023704768341287886900256895892737055166330231497131213465152403944632479772367701510478803867720004520944372817841729419214447361225052733258543972126131787133315145225356026569700829959954347179764500573626373355403619713040718368459126976972889722404279051844721953137456610053798729244566984608333885667989702077586978226250662353984314892297170375154187653032229839406250024184327682867137034373456664709692872447291689934946558469201554814969263219161104939309390364869460321219041481905719548401969822256771136532555525804478562096498474367613310289467982154071301749487248009069598563439857626466068804482560797855443887842297286576898727891213346343874979007330183257898303348851147944369960343752490215322082845997928391061205601732291518135304951223028110599626437424815189991731601951614104710567826272956538687467862529833142050326483758873613103132891792314114427217390560746631888076242926524305840104852179374999195372314506226494290764948613691094827262287852809295173459780774810377928093645482024204611507589244624433894781080476025935504627511873185035968608836879445827123274908090795909418163212061611341216262193304183648136056526601638549818991520015580846068079042731832668374821679324875565082901215607147042343466621114966616413165658784873158747431962269581402496843331839470513064341162919284450633653669289316266174984811010994204756669460480430965374462938296211352630877098717122445063566004344212930766099526488190665655984122226480895558846799286366914548085593088443845874514869252171817859015609882541018628768010433717744524179266228167481199785251413388772086827995589968088153257256412990048614273423230035519251627655115438006507556433628047237602040463255371592806910010491298578169409161576196797126897340623575498765652820631770721416745725244906949345665762463575370233181524065420481641875900692807007096996083154921388175154985267923066000062371587771667794838798378350031974436740225043869240325861738662744003039986064228960334197676330220535306252189016124733640182735583017476282590313083343665549531074819327675776217297710477311411839757348694945747244732486088334448889661831864212135576062044668166460244206134416329436265354120257358797165338443038963429037386764681291354231918184040003103263474572641531359876046536088120479193904528052854506862787046943744229562936205190579715524609835045209546605914988343775434611410704116501299314745121961150949929587726654696824536227470229897270110824680565876860219914731704410583668229217809042867640591531322609271771397020951241123522100720625429667867991957861559733264146308104285769968120873838510396838236736623892065365571411131356559808594700448314997061758375968707259707117729975854819530057328886285443586466953278956765360172998993634378637143053634090363876208001592608110463065629047598903769288264471438620824492033917840398436299422706940199950236007190440769093369851436434806323016768594606193793934948184447800616844623647479699059862890626974437778977842556522134432706636476790467869789016872575916150766633940716249840236129192157014140154779279594146661808693428363041691859391269007670951940788412221250238595449127632460585362451216776833740283516671178921499317451693002736822037786074940721472848950443786018164941762402566269902458105395782663294648540609877768239453898420943617577017238516041991946798583676775391739478847062248876177475121355022180403804589913701485636370511605624413008836983987085442090126812549746440936227096084983176514532751375211618326388568597513448029628425047174239050732627911873696385283321251750482471838163480635683636148781348540975357026700208297044680158772658816011766337490454138436595510526872962406582074332224704202581144946463152486828553445082942941652236579756177650356281374533047011200391771489327800082869024624590908666918081997940601584786408652023554715212643702451183875545583276473744049907265985759451594395582046921462631383106517867542199428295558400978586986095495886433660773876026472116308817064441273737443743010079831124717733171018942540318891806691903911534610257471194515749751472904363166809413326942068815578675504948085737214852493570266503322992457324783519606710816180916332250326105118893673159622467217284224463566795868686434336633563697634343660778668467327257463117529633741711812066996925215885305300304554552445158775059217851859963634080837903790617231989488386156712766449938101574433881758697856370140048682541761226740258787747947155220621492335831423442990077806718539879098820753653601481738035723652621876352526704884300902771430220970417928181110907831590472891305964816902893943061099265979972081169817626430415254472120990190195225796186206306243916598972175747307785066855059265280151729515372704050712274149771800380895888083020585580727086732770196957215720586471547506402567649526141967756936650969528326998617510851194800230844923501274743479359701322211276263021902212701888842744548507015392255811140893582893723074982791236599050296884748126711056226107454462529296581102133205255171969590325365291452541576660308767700398488668186320154946213439681070011311948502997350265323156168807251302229768562107890909337305667348734378321238584760553745514814785627053229929000592625047607929167295097038075419474674571179200170369863315671651917759016730098336752918914191561161663315615533241977339759374155210800888513145172100973653950988074959082320312345957169348400441836284141536665722519275036990893388792163371484318107289676800066918973691964327176737763721252616212835297983833553265579525596113784589894777090728197104667542194008557054500853266994107188403384093530350259685120434705015784995317106946524799061782954864856691731477806745636407639002028846604079313219261165322908691505181606006989988263957460948326406695188946307368912960843652015156952872219735757043909727941228895409189466045013413732668884592940257419063442227790044758977803112120452646314880956206569766901164649945658109685095863691026809729673818270787833670697403547011637252595479816107966067333578792273463162760159086248507972109033679599154278705786483570888546138790012365153467581920143703009953783175731619662312283634586570245254575822574130487438648617678878240974671270930824005668390712814800137468259631762882863493387911367920949109132990669414279668941411561394569975771198219314162784138720265720399982167677738924210511911386689638868253788733988184906332148747752088681371371306113198226516537031336004576916975560564533294860548419384267465321093407448217992210495283911972537248176313596805936409760783359412148692496446073370947443115933419429180504940499356223599919233734761358067730773419559908696395499494742659304661165856424468210151099428572371733646647257211530239354830535159972932768699374268347404205411836759259002882853762168748310367360182876508851390516364132930871105046783220981537449384424555636214491485377260813537188321981910530467988277779570424871624619193838904074162393598941517186826273813683765876731382271181213258008190691688050856562196672867701292290567070215371463086228641484648137771201680230814170683411156009644517473861044336637631074243052302005564516874197733198358055353021963770478037724384746534069446692588255533857816129451946813038601753322859431670391941852732495097912269169204285590111472509620540843242345635027158614159049582131659817364755820012835030286885670444971204721320776991775578802012556391906177015223048862585340728667421816335207338628041155406985015913941413039915543465908618207004891256804539099395083121902652039499318459864418170676831556087970786593841141374537174986221893930802682827373253268065395973407017334703660788644207859797136522487920465686601838473054975766218624447059266649941230876307041828875278523588988587095203638911060881599693812795417460763577738837307162067022783328214889504668724628512549339780607201739362507909097709038508883172613600887028415660709352466180934181400785067062791310315243950941153189671858614141622648512773415489273827394470241365892033403260364660601994984215081579894501007268493270866688596495440978680298130670538420391481584511146828538721872718542077561051521469385639018816305937909761809246975682687597731243652816704117297294981140655819457775085211841414744468132022179879961324823657306182179718877161404473921169685565459684885735967899771202855680414674777747965701740126248940321293248103612368869781493605732055828704381790014345453259668972154742611911330460330169008779350725647438380329955096789935202086202922118997081147058145878957431648863667476072797725471760431006879941317506679962978015391527172801706643112999830925870761991775404402434563889797969548982185732671428383645522485892352637547951609426742450563573102577462941670562785663940766441134211602133668308554711711248044053872888885852369417502669515904878079040597859085560566109217175163722082299215324160059409744682048076569231793691764922262095947370919792994753125735253862085940083476726309664664695716499846517289502023150361976350435583592853504886936673834459147309433935448257258388788308974459763784759748356802158894157018537121661571127897232683249081468844521697872868167562577638649498935901441667261815468278056551786655866804551518331058630739206989185663316803210401601240378716767659425462713956029900762373129734507031702817109993639272754449800598003169445317256111515381536735984625054181469748366262583736547936455589307052025912356399069971175234337265023649555755885572976391541971461025781346977471296612377489445590441079333804133396429439032148978504461830832685036167598137860918866890348859200705555941570977551682663772661200113255597264026561094778697530728377600748918188653019685039940714654581127833487572893876398463121508628242477248433069368203274812881317405550318850836407423625953712088458515718372225953653436217833977851016942549643676463658483318796447805968536560958928657350965848877744855833652789757409748029052220384069435407319047779883278273467009354777837459290240167121512266372424266791041547212744031377424904992161568079138284511544650448886412203678062287963355713296832845074544177794356671204747158278929475348269958352265505779642412953878818071474540252962648885226108236615939857961372555667785543190299125128379261965225599484407254604044569753721481172370209616046996847447302530081095242523983820940284390306915443772571643237718137793873074242811350831440920032338047075260366484471024233803662133342802546165146212369314528563226552368635463279909717553611229008453326036836714395076816341737535950882360666306915171571279675243425062293033463100867758695308142032570607555219837352377575386305642250930399010591889655969571231291671879535672389145718580373986249730405570285676207783304049652017949942519892424391316234496704382497682198825100945184389326467234689507662095283582515970360018359035272368875142149534315604106093679630937676296871399130686859260736132050179825001770344161780777101547164270686551674773273942183927252626250878983107817141546080728212640671158275511925475670947949460383163951992838700632952146634881138465293107502494074618261838850613030620137384330160050177735675291369851914826381824305068728489350320243625196462346699350270691053000569922344234153970767770150582852275064098599942801283528809289390495571267814085178018466883756830427741891451368231473866987485303224779737241591815978159957211127226599049315256742800949539403053794055392790840409230382640058717858139537257362781764506687526496419596915814910011844062174556976591308201644743041668437321288340076173735492483403973450985760924968106716677706613193441915098929163697043748309110759120391405175251540285208548041078443826857084405002580380809125990546809172198834422031087631744852950340171444769631839902942751747318939727012892184653452672598618032511009920236331370889292996210093233967641257343789031964713001114713933294989519678839681781001727743989118822732759369276954304822695432193915987793372981098071416303712577957449200965636064371564329664811434827440542331443718994973470313887863739696211302715731700274838721237989826728290578319700581502371625955328151469844129035761836665058239258086029272312934254184835533447061666954153355491482181275732913648024303148636106148667325840421271558530617503420720147317058027716947315928537174837106898732730193390712958287842912027333452557167701583529020898851032050129911829374958083036850813674382265606818976135166844864441728371877479754565633469908956055482641541367822373289139074129944771507817080943343044392417107903798119947350267155255783223314232093225729325437683632555359835570664441485161405637413973739240161543958870113304984489924971150468642344292584960031581193771110649536619491826843751203006891478602095327368261134723027108974127413089432359423214024060917794391721005362459428685582768489309642040414205204482506025839945482436435750235079745386744216914366085211385707569903106212192350593324637447968345902164913645077713149880371381331928552933180766643938227780745817058941304609437757429052290530212625633844244186431018668016058186976251873087732235979672204652466243152021720734792009822797960336735743460415135909490903392256122826779692387487606362587953513996047790920054594513137762682656042558974749242893782390610144210395658597649172834779794138995991320214430964984922831645048820884260015266144737515659219139941905202044048644866860007880933405886701162627664237110747631926773101341764534171376118418690272160006655106275590035796085893328022766240010683024315808730471317954323719996835766127888135855424398218058232840200654827285797915793738504626859759219273595524912665081973164145431084448242483083956739573586239035011219593396245970073029174686107108392831418846188914841812598294571386446739154141315006493088726477816893366073461526980063208415877688533419585260403280257322088187646570977666767301522513906381023721407214115813756340162291135384209249990797200698091229119123416108155271318131954177149993215530357244332804287641329458089741012843178375252442601904466882122888856076464270696388255534102092994852153000177466840655862409500657661321484798427483426062991006912338157292463051753082382726334072012697774545053190711377531033987779454788548397569947127956138227873782003350292784205001200602828161020980083945672875908377681301065340372791887536487019740653897625466966810664171994415886158694293797140676849891963520461697261045241322201059614292779197616715349305779068771934662379231690018373686352650837658689669987271522133233451610241581375409600947233351812862047792028649706724726832745669757834657123110615852808877336298519592807684792260267450947741824770923999041348524866544080779169600259892975759829651952178472312429672823282566012935061761320643820605594595768202347485427728074237043184257741110134304989593811650469287934437576769196157943250192588806728503943467004492030931363180059776523576724926383468921342529436912726225467325311812862728837364858475955948802680489516703510798374321444969527634476352414574119260128547964085768128310212520584984565999717357811924375544671312189649701407891212695072738352632729928670382132944997004362750203701376890133456348051537044983416150934112697361600700183961486149263606896683755716765030329343004737158958430070211912647040440233329817125486015729630302530504467623595473819181765122568593370259632544706107448843316423408635154272576485303708547390235195969569272054079160857825461685036232826854921144367156605837159284027447119954638276351845613075475652551744080853780974347683691698918956439936582057628867110241908658664494479520349090118630897136936463031714191880672854132292625529624608671237836129904434324956863641306950692060449631145659475779385712121923424544492629311868055859339226729080400106563645355303798760886773270888634979439454235119442238319902875120241330315372167010505147036689524137302845929736925930517483497234824732059216447469870327895211341405572408096602213233132147726189695376045151436372678729698219331819505586247863687895028298328848358389322671094278836574073873399188299646813221258434111582425349411827725498420297463015953422802244002185331606713244438872469749127005883937200635264638515946696532774673360240568818570721181280180895010488859965881544800408711729969571660903270886411015902341777758946314989509940285389289914880983298533593539123268607853484610029498646402736090711539399776358311139494914211182254074989840755080883709181803276351515761656025310985922188991227569287902518611130798689998617862469384858268443477331403925421791479354604044569257885907399055925541434570627237593111442466804133801980571305287640866736852434985478860349044544184240975071283366776528213039920068799060563167578190516971360030895210878135397501540118612625344406599795994644824192272890398304098216611837442679177635902232576511881968556092200383989426270148665986781911193881990617992885886462185520555374820083254821781769323822745829319627393447719794679297683803964241388437989078960206793454390734459673659494512797501457546340772225885182439316101007911852888718585239580518997355703194811060092399075915418754466283886645120639689180289320062280565684453454640474908886875665436739399821433126949930372535251707389755874708523897536708624877016734684506553357541098543199651967717053024753557597480122255386659441062998447114043397269872135575481154021206358112717957967303111977836979710370259475825857608091334995623891607819971620510462313220260431971113245188904866868646784016679079864068205942129583002498169942078952495893147080011538755855019028121154680878993919965050131643092324070665963851588361808114175614579320874086345384483708203634437904191015266490283044068601592019379923690756124135515041495724871619028508197483594306252281370714372693574304991632706032575019465331710643412239969554864066647548556655813408030463695262217450597287075429174866635873245253638285586025859833911216107460126974128318823352319373248865698898121690266854657115381169234813997518970977712760884837186024183042102618720514355591293834398133853526953825235857167923453589157700863498656981643594103096218327291269065421970190931978706656834273289452934042530212157361024365359179774959267528882694445642566026753460732034739163176147144499582707548716418840168225770748433618611277744384334719511317902375108349893299275337922333190395940427735329421928123122954165728736942960856123756116248347794651977726271605626489841798149824116879294586240352588112464966653974899103274356947522739515506655927364500320006602520127131102566911615032402143674034026616342219260313003001308789022136605533113971873917402291143615568127861408119631744492279401627618112936695569863158263411432682141460486079402261748315111723750945748278607948036526575288986832785031871751248931586539705444400352790346736537182623872270021808509799427898736069998467938329462375434264305950533960808690089209890356329588989513144309093472681068548776390901886393739331437387153186262929924432798663445457975278553315050512006908455574994649634221025769280116100987460383391417585280707676110841583448481067478867948585991388344670295382241344291402060486518801896194719839700678910620513047715294590615049583365864104067577932156732614343067713505464386929550425147994938483916207329622102135350040288161019598378103542757033572052500972745056477356778690796624813009317255860796388858513903037797337504452455620981934351074078312001105584996536060936492429131909277271507911034331151034996574246864764329324198239355842536899130806494580528929271780895595275564198360670821971268590508081397076301722930020200049462694476856551851575062376747031194686842055463219298784899363445852718803913902060452458192407761284213143708264179412099333192574700584979330003080507626855929417684654645645182707995406943546954806567460664217320265055388901052400868482075791932850964252002760362558822922557625518959490328317192616674248627448118053625686556398159698851691817897104159132521044435415641386513010678667411743422876439791953987643299368236924352525992234357040705377540145784036059080064655966128354163735969104447640932795466524000542077051564920384030459710310309818844077071519522570908760905436953373691039890707939829919524433024888115523796779747842928758472107009105281688858457263269555839707848074667872362893091389880589630833737896101423163486984223342588608349217210259185881122046204723706390720783208040356000786912286803339218919476942875286791793937454227355306856497499736966942371932102730759644303822982022664792274188265342366779603275664213663051079141500311426842937128490427394521140384797180954760919606825928012352330348595116963266640159816639982186797849622010438671032931923980529918586049704225050195346479461956135847336650765584269227787900639376590413302389373207981654716237766318172794592538319641201672449231219837621672786861103050638707189511199523449988438567963671734877833396857033856479956136720967018479839367108401707858061506281033962465927813767547630172715227051818610425144844594692695380034818641919486368677983412817082832080027591813752681915290225335673279250343856580063176729281344496581538763577859270957177373777733099711976975057796160714450647556838729808387476278455488643577161019720737212344351457990589604515731085891441781486174086292755616025704614173999732125557643539766793527160285273755137900460416735092352147488679294217882516290700489139945072882037982511169261102988702124107084214411598299323341124180461734500760679447568949684124640758481136458010440783286146244591813735687268530015740435060229597300197113034176859593465645502359260737843152621255373966163241967927801635694218939190815511928172664741533260839205257684129785428169118625734213334104655302962352908650597782233382840759455647932905269201259633380978159567477270323494453111727510558471410177061458561315329296519215601800305570871791111950945164143788779272437597128181154518291604935634184511610859513915890802086982963512379472904186340341646096866556268272516978765262614339266143066717992817676729116992514952566025143531018942114282610192903482998941179393959937422179746711116389252340839029409099764557055889361558746908315250115561120641374449680494803185656074836601027200175940809698811365375741237745588035825341068819743460370179211982489778828370483205338075081470542439176174864572163279031237005427083900407362390883133685658455816978890041478376917439329078055736574427515824194350216979338686226825720379171713992360497087115412355019464249580451229046531173827716560560309981019807246742665190650893635515361003815679166095780435903452269966172284398062318913141451927950684651897499881528147250221858369718270615986974527494028086694731366261090429834572735621551043603871553069767295040672524594631163266905936718578363153580182006731673115081264041753918214602565065032880868944719170208877417889719182240182805888115140471600030947001292110540710037595197780900335428591254536921650725091349692047388406767226736919156419301331323265070265996940487884594181273730709506011994985500670836167574204353652046933897952425437157978670222498062194999132700675693712082285568179249831718182317898514703442156855747015368024018264649763225836584015253221808202936636999234117341897619699877203415801702870940390886775555330569641774881407688416693298479452168800808720189219283429154105426811944682541423286582870039524076653543995378932714166302587724166787042375339264887482867704811708245740249146135250307998969233113553521204783188115778751531544716187187513901480151109698264552528760404798020067746598510021145666472586204026384603752012697840354498073394025574542406163621176438793948406174913702159081009162535948823847599943124140454148309857161814732858463972315876350043504537465616966388513264709811414997259926159955027121580480171675307676871642025779099136446398835212322724574797299079702121280153268383204769045913188374720867171436258113354175532072965341450672131064931510281928313361622356247043041838526243852111755847576757225590690736434121445930853743459144317703201827539387568352531682192321280808991407343001748311663736239540413398043059188821069659355488600939527912019882631394562374102721021076689145904205374201622076173705845449529064805494433355166878914812950590046456672837339010879505990664238326718231565497429434942207896568071520527514628427955803941856182985790685728342815534459587736069804118484988102754085930487050298577371791608658414345996660128333722864965176560463431833838534535662202044514116899935666571502477180100135106649932766286511762562804899402712005977348441417540877390725186919993268611295127918759857912382636695671626220944505277772520787023492051977764780754800848117460070001352527974588802340396220703519960911787482194250675850689064616067980776871786892546397476077347682628100304267422266349036190652452866280834633715058482405011246209403487319650873984486018893173322186995674840399849910021179737333342666657723693516761589428009589089108162983670406177987074537885987959633009639453133872532970438588381476577531770493874801952779939434350920441350691713580724601946962058286725447360479849502958052810659976175298063383935958704437845481244251517648601796942437784540374369868096684351825301630987320827302977810084614419625035683311914821436430875036152628432835616496756562621516788372535818253834006856184493544055235462228321007475568998185366770760094569965176724626494915908522377822841322628990339491399212358870296154432598015882701628572214424302256204529708846593044380852915388972840886089190473584656873778498280509527883860858262778948063092384069705662112440567915095041126195944598992334942018683052275992847768794893129734811105872881884273647337414181831078086504377862640256487722790760481100831961097819306555259741034171973001944691997934594625659416561546149671598341397429487720188637839024183839804470572614325962914459191128750102834635294308026979278639080298088389138598423205778187415097068083793674842978440013780623700905664928133962354234669149050538848193312617667976918471193534223121432242430894134750436070325954089285818286586497882380078064864814890120861543788824638453401959170865359488927425390103008996917696108697102824926274300979858050279559450051849330209478524818475597797106727944759579953412604717492555640278597714763147507700407189800478278605260432253035562432269016831601809731799653148721072115839518577775876547174802790027313048295514090371350303607897900910073661559575876067827493287678022790854350689764973882801583981057283752064712991305232242965243149929081833497518565313161478971503325453206895748143018358959148730026194373571512775667118652304136850802979032969247578527606660869048403936512541169913980092648071869655695867824557602134782404686018635924661593478533802582226510843099408523601138687875046879364957542260916907561325633753180696908850798570058981594195468308716758919473983833344544208979327030247027754234250572230930456153170588101109147247265064429146488630955271269551998372588669207755361340492041782877390907346210290556221285429020217881648219318857928086291116420343654852068313085289040345095512498421654501737313652010628822690667476032751903390899396730516343712492363203196759750486474643018117588374817891860034218864094436460830887307289565712267817071911236135791911034173663959791408045818468260276347613274161949336345126426834597680543059156249802026889735119876699838616699751002403988237657945467756754227189084532607679987659677525239223302951894735752005346948501620091285637913769724442143633466219416797432014561980416277797590879526007627475436197819954391354722968954663972005118242897517260373899847470460087962268237284799366501541004953848111026816507929866985929057715930743044611268467188922279127993253684720031842486738500541798022680602037956406562684620476856352945184813046647327019691867703122784223803299311017743395793756580399661973080114663858670969625845690267663499718299037031901480901291692878815663027121857131044097807252654165367147594774101001844359543593329134878745917775911305151953835569135391025343045038736335956966377887028534859816876921223676905107323596449005210652810763107761437497299939956024952904100447681071583950267552885643061983174425137788996052467997731366214195800880184861576456456742996635429546637886187164090654759213205720770675362307250631852142926760742792539865657910937248125249330641032958788218366460222530975931870490625736353402585895301260873669288674659877756037509543579373568682452192391306227516354059297282486651701650606389658204449258325981455420353298571153726972963155748363832045367467127660567759356649329697811593306213366781697365858367792350811073938253079853773720349062365399147952072813026321013876867754303908329279103242186739404817988463335598011435164606658152354385274786982184247269172391902639505771743315429901958518767418176591792404258192655773344319895397917044705863268109379528549893509763264482788242297830036322115563676857773331902724649641468869309529832836888266625584792420550622801196352463284493978336196332551727030825438577233690646870933465829710255663307732737753631319222963486234854457504099642521799384314214590355258796854884990129570666431789069368740829319638022278612468270466471067846275862583492498142763308971080057005862766697090104348702411573781627856435470862163705302884563343079674365551430900208630037640560338781653954447104224684275949507789429254159508401322244634730462471293766514161885827707357502111269280045886781146414103304988244053357039724933807270878366078722293993288189032478939126918101982764288884667361310232873260597780450995632771576086509124672455975946166602954416164522538966375658649530180989838854610284099360424817388226425381874792040823925104073023916451997058256955704738082799168269608837255860384889500360259754050085118591266576883573268768297794211790329284003983691560710438857323998398754378681185599822834207552936546063092655651406135720399711293635848001771781575934324682270082713906171509172572283270807565192507490522277675595059158460982422440940408234627871928404941695301860752739477096279931764003708588208648072783642563466589029659646256683864589268590724682403238079555211149084861733914222648826969713345105053972734709782899726518678790607250304366939881061524830179450237221971058577255774616078823895479241827750439550726698853555406332855907602018238697709361531242430877685545938918139124881983473409746940140481102082357355689799186232141203976423269430203973567473684799166115027169688646461762265093020120179108743268333257081026636790605759598646974179520269306044603936368603985276491355590887837231791613344037913081139101085304117853076652545239057213166673929596052020584300039339911143640800241637087289801657525631843918907713381463905707073403231094135262407560304386296071391031950868126687848904676575969689341425626284736614076210273998674468013201064212248014565371734700723647155274293326541622434125892903375462594459477778036773709477862726838618506598833135853412825829160058922726357262405764052662832318017704172447752223692596808388817756387454635912685495810909596996416269466746853260316304352407097788489179304884420994669906678834370942727407899059665528426970301893495413783412049282179832692402591081274716595745045673761538067062505266300248959826113972825345650478404202883605213475448469472830003545406890028699188093717458761688587461947356799920301580037457841350916739262572879624389388535883728922558457845585212942625077714469616128498522031766151237204547801546566958237730044489663390411336914762077264695085536137015762029865261333420556832260727206239578151604483426898426447661151727815457134725015654344181606192159673832458069037217610219562508999738621970024141949883298197173883098402156271376307601482294844511932304198696564768145092664556389017343265022045870667748467787799427577790887881251263333596703190694951441709200937277818600369427271518817811427960727552112156670604471287547351402254870519256695998819519228043545086906762742826573668872517390758202753175682545379899415484997649759555143631662891658301837530481526508966893419035202548209317420251613501565605851942860263227812927484356549247310335120872658065613508261736780540287333290037182549104553190718235158406468284558757438452758724703447672647618070950087560065910338257734578831396719666498258724076984197411978886350570609664831938546040357920284371138876951818983766523274317119182907449874818218058224018170084102030564327459962786368930185646693049300713710975062075152788020855087865476986977117242538076735960647112116928977566483670268574592312794584785336398553239154946384035038766620459478290675288374558097396473767821246521391512790347128450868385677140638789751440893549159263548860781725658733234523462823302214511877853209387166828050412667888186286698150370314012323747987095217754023301763978876965538509271451862441261811917346900030984727807831669314124654392224425507989634642544873896924059993336169758165610375758676969039113500910374207811750125183225124190268399079403312141903029746251810009274398004004970771893619412559226623081297245751554524883159174047636445807878943486005518434900478798090600444468108888790619136386850418527933209756271412330135294696046236835534653573360299863008220012161140733780425122283552858103762308321892743004067985061185690088088901046072328182515357493174220474327999684840601660839232747992238187636997435809262679658995235118861783344127235844433644338431814063427240858128971972057203361950669084211673031923313338787522370199439957036528227120990019968444110081209111173814921283626710249099202605061860471514399884888795914758876161375791700993300075862375352835597318707999826919238629061142644415304125094440892246570982136442165772777084464286024040725035253581638101180292542161615523025157593807305504186478607350510875271600939444190310948999360923122971193798015932436360730936449994457242989983192713863614482367937699900242609034393683740942816725165875693391507591191727458181958712992937065638896083734414880947176121735472922692438235408122005820564354431890871149852704198872647601125732127509052815832430191081974637406800623396224658949101322050280623664675626546854404585674340332970942471505576931744055024312516128909963339513922435880124513164535990539980554643323016754007120307258042474118029059888826830167999731889065788440468341604668353628439851006211556942443546754596492399421460186973540613117840788339837442564950624933664753637594989235064964118357442548939436608369304478830507755537096838714950341125033061651579538398855399415868568445364088990428396085025330292920967490111673774668795312031359922491164357721237104266778485059669910817780382497706745895648819949332020115875274827054367208799195084443271491522303639525438394882358124130627906647028202373425054578037769873233554278123593132534043304496055300068637790332330267499106654321945232990968470819467299353320820246804456212511123736286698912376427113161519358018564832278122636131802362628708685555976219468764535368578039702556479883902362379261828025965524336460868491161753399885501543750083387696848805372177281988668323377589103305912622882706979696510233652671481499705778363266442674874325187129333584957817840681021109857502291852322158540832089603991277561162182315436282275354653185431469147879917770654826590262630068675811204636517985374839605927659006957658666904252914028969008303736990732647232027261950138004882129099002022691911041553746937046839657452558860888864884721420006029498805097813229978183324402544856700373618359179941273292913460620884284489651082249335006546990234202945996680570116232054214913443365474536793105125374477196453484923473771793594282921370807718712861041344747862945939870834158998600133122139580123886314245722550014118837217302131818571438902037152829546870985887915714862748661409809807827084020871649622288679959967254427574334398306854831015284263900129906260425180662760431135031640385344415732244455178317553213198824711833072017481086038599963043909080894700543293264936065232928693716731342092081882623810920042900976596647710601863532420653193513538761310772467519886190806897271259893924105862795911700427135520894653835985571934869687544161801313629246865118645074235629575380947357583926848542086774620779989349009933628865093267231143002452485179401671208635693734390490325454318106078545000240783086629573465493589416513622655347457241662292383411762596877607871001372679689794876586833315792187728778072120170890558092382006911417328066313935666301751411718826040388644962841202656210837184916192359116459783203596356356229329267715573474217412651509899081150457877276021768328665841837447983067384584691964673256547308520226095656849997364887855805459964014539700697945675358261818537387109463941209515573445330789208086318785159627032858579485641858227425118017095569630539043679487268379390312756026644309492981525961087698008165128791084944599756751951424303419958584004707099641408895225041776581936117244846031536216687132975148648648498971627562420265456885679228331730668490280474008377127561124511658077598747865421445288624717126381765116076078116741024914417852905898545791689454933318398230033709045149371522435861838360475554271299048380571286176567653110774889594176112603590850220744331351469456941165772823273342381860095706090077618808736325304156288562027540049837206566179437601909806794000087089302861676448815163110714501942925178691783887484257168051440952356508228339577355439457462346110315375039591171993470654127192308397056538522374595973846321081398922496144283704659012918259928350728812925649661233221621029705548806247818961103778324961355076573794203964842907596983118114932790858264538543178769268799140503441518953842571630685141995838614070989806682006303451684769204280514040775071151961485765874345427505040424663539462965881035810184398194486244488152891025348908016497690855367528517540000877545278982362170997531096011656967033240292328903559052624717271582648175088663267396785297770195059585097862399233025860832051746695555700970932484327149139746140772216845786896593651763994041783742531003772507513582729596716754548070346332056939067028100886237109189171661225412240529648104025370855101519900471383491538824635777225012661542028100222775576071911565320020068176614365961359572957656598203984487233422744942799024639758182509118364157557730723477322921371225779685248426737592244418829144544098401950846977066444086205361091777060679195535769714039093516196769176137566176566318973874396855421146603582844312980839134606210301530195363078228253324267883828881614915958281563432257543022718187639159095746160652373328832918237124718123494188637897248261509611757521742494666171122176069862028552887148012208801688099595094871509551656135880323647853848558973850353930028038999847483116828353769278223269529171906656879545169751160917086201604283444778791894952242651592747941701692798625702662747684636538350272912908646018074112217621430115967086969787611386334588968543416765741701556463221451233695819553056211017568869361843601030052617792324647835513854753680995268981595161092374006523908573709097057310656996427172623133125535536132558571296072060581651993349018770502773809682592847863919793488571322423564484641625505253318237230310719242241136862213430154821290369895870668136895596718355304049457858151402987168289546473753066185342779840632525788254977745304825052910681580274970640027317371379919963221714563925862478287934344203073397690303265761929589940768613061089661770510477121168613073756793520224483115219022126761427217118425875393811460945878920019984540385041869137845386589529298930517183252166347581764556970456843138853219389559219394815635340719620714556055163809417086688141734483451948796388506383764068111758455038090188284474770301641527657551544510742778722944568069672306448977487402502537939136805350398594779694467327035820152425772855345708859428179613403672674962104643520420009805493439350897623064681909584928445142444472165440159989604774347425990244393039518258913668736757203416119148397906012070255842590067513998735024179656589474722674226851792705615464573065327901782750128666330202423083460649823422070684599498086576822540738004151302889795531229288848649809111862465494148006014704156087498956265070691388241807747858618088758400565101816195431495789459832174548390485093424491671047968484130843884514016007981663758369355047611000489275327011437999863037474895218254514506401337459157746402966425554581737404673233914487573402847173340051315881359960766193799408348799359688403588050518088399572567778082294401685291214104377774081115450438768211452497600040073374279421794374503657385370569145079365176093735762159034985012765858551999196599363316282253809292960873302531443598861185334873369124753833043142099263674802973594632252742222838092608086639757634508892174482193553272271233361569020958385435516656449494923210018167874886519593102982135342512632346333750409086997835314086969011243422779946903952467472979506339500651219265954665715898675995886840330894180462794001560491023411473860562029755578970648143210509348538083422387404017330807023606445143994366717139015342699573470697785565369409162935839623210310199327851995110938102953140136821834511502437690390940176988257314798553867315844782031153654434680158673446505930819850983737380473288544969415703688360792471282710904131226667168373000408473482219333748120239482509541179252984755605863126454540862591285227585225004724588406967929418329012972916621485385085944796360601395093003173173019607518693736381301595663627367608469692191174959334501624227597080740113217741319330358942185878182386850450384249756471451874484159079444005372181087715448686345664886076829314763217765001855370043584125654509485974948832815242031597931087425287806000260392706727945502223555452959515904958959332798040606829340930790652230671375856178527850907208983384293066807101057314020132728792739744953487310906984591516297584891941007709450728866662392374368694521108745166378867705299297361216022145252446289519303482870797243841335173202592946557698829190299765745339391846054328312475957162397882652854987817167419693323572194144177061154593368650102355211050717674270135885718887975144495415033032552583016016394691662974837063393645029691365207441775456133697748555288967068011090161693265780145824155798551699970638920138644561885130685918555268013328363456453723477149670588405107794255080611441241157019452322087105428964759607270982828078798659141455862385150994317150034071250798017881800120139384422177589920688083037086552465978653218601290983934189872031966274017656420394621201947950241797369533324302811472823030209624180943508036701051490863513686770013228870590458369403714038638720135185806280632800865310886661182680314233672368040740437164454546895191569786830760028510440197889480293600508157853072299742373630213430807675963841475419638758286004187712182471039095406090519353852020311194422001040546553212423096471993087255698954501439343232234798994030080891339453855123282013301195727619136817851357883985447498156315219892203278634830119096742724279425674584390886843152920457862847031708678057551877744869428365529590796176129444638978163651440627297414402462074162917603481062335277601496508901466001817262145105204298732134983060886350974285508425100665047022607015108734771542823625823712392578748047547759727056908038141132314309363315706410125061911508357596740766072564388875529433058394292124813565006613837785709598611119472139245345202594586347299656511794483802799381984859242385499306460007409754784386137117425903731435751408430475127990121429480836979398562458560574599682951184355945704388459804269614782070874341698753475273278070527661840143554646741859876136982839435938458094718611443590423817484832680596118729315861778270687717898750177476521021557687237555885380874556670537246264378571013245807701572921143523131101383678376020712513019064480397619561607647762368206684026278775045946683053288013202332438756024834977072182482143912229462519026196649516556429015024923287475595480595390305878688969747620829189317281187324438000558225372381438740356189431712818213576761426868208714215016419259774691486605912729483089426024336880220832998483828620142407894579277754564931282744371176184235984925942705758039858926730036257658051852184595713234853066152516978743231922268074815184957648958881456731071575483523587292102915869244185580653896670914654507013582720221430048348990129291632755850620577159972070993126051807529160134885092478173580163004690735985897888999133103354200539495073920533905502290878057677576902839838763711919673704544551035733790870138615439738304316439050865593894358699971866017141590454600506493585154178666485123442860219392077862455398742854982058804010441732965513411843544353912670794559198883027156222904320657264547095537117289425834633861517053976604922611101844516860754408719146125059931321326138624881374103631796398098141994987624786048358266825189731557323282139393984448858509606523871265899259394556863266716363471307177142469263013271389693047639273297717117408724377670358749207868862221626210418053290466915113101203371535345306020885552910123312747896861157024558473166443320904342117432296008440752126432587829733366450475779388052041938178273687107145511709603366379111833272049812487953050666127994331180239336422335610994535180745340490665835385891930384495397742020970449992193178243860442201428657311334692906060927401028468885581213192074395651009903870811779199546776759608291349975652012990426347810437586852598435228050007256490790088857271840731214180979250876434080423387879690351683681567993599076842836966647654131886155440596294962286995383464091861397241838006204562623139426707392409440172244268063246841911443159312381662638129051576955498217492341589139088827894704185816995299999933767305990689690184936752515961144553627409105451469853952255396640129286485442824728045683936948677235825199159099196546707156536142664045792271599210878892482812976472663130893807934514184648575667222408261497281327563737867583412247125247754679237719723384893808088328997602404051694696986767275949378608418364007092755794521798343711815882556380683603817853923329590807099657033781390022979126713224795912955532809481152579427914932875389399805442673614186804835373563056908469514460687759422137390794376731878301796380203324342901211657842270460355368040279870132754307074294859871527261702624206561920639179508563642241719677753683576059333737520073212660905197874347684061902532761229708740283660887486433281048632812768444160844748792317990835822621297898639997604659392279392451874722680756565134769020262503523534646376405110938631274854444164482572253209474447021582398369060379252660535066865214110065766950567449247142345518909877458264649048861270318050407681332818185854759822716067610038789798635650814946265364165534606049287112433177072693995878142702750019350217940607301823824080168627927049832066303845371510649324744442786266454800984738536903389274871598129586097614061212435358693822197230472901998657151317787414659104406265654954279741921673661983496801589729595117459467973264589508186674649120868291894161313670951678912915441567894318138837116172288180739504648901726365403616668832733147620408017643482914857999986658939857038920435722140485425800679312593253095303107923136161315632420153699960576817339637419393322489035162414498153662730077572061541337767140674811416134364917781566557097270003215331155513186808624223334396688256355679298383395894193478033964322171309239303803500405709551514858233428775041982881337342629499087666740546473920682755635311393262958762084490056240454050557518820016227292804830068402759956932785897526898991763811329321767646924099589682510558922633069374689654306816251532818148500542622780614095511564659253443681543327848284120119935034670580161674934271118270199104828732723878800114412341036639574753267354341412182453087768476538501096024953473475837959572390007770587231697756378343546396824443629315173169891442944869164907596909361754184366243306193729774747335395737230993009734436681567082481937693919869756345587469032823174266096637559878684029296820552676182121048590204425640959223983677490265814992209899829024419191925450965024179491935865829626368939089695002064001814174862217394252023412168287171526661685961904721276376796530741319215999987407489840488995890950117110245307955340180604251618302337126290460696732177356042864071855489464721478742943272549452521715948920678589059030303451758861704104722009447675359584016756835701748585643671439031548185277932623637876657477455008181043048746226398505202749736658170332351963803634160890015761803045675011660468586521612319232504698147960095581685682736928285846957228802379752501380995809629280814664157780425449884100540308222725041894395470031477439256705917295350955062055332463213017951888152960375584324908983650703931145875127872129379183599562952656694692526393102910504849746086257416873474284475805654943847537894957040345942566069725536522461806172738256468676022995153021793908403122538447452979856360257981929452354928597181526298953659591110598255490580978907137338881725235675778517590523143466275534435771378887699369070134229549884498512343890006054263576158740978717930070036001450687795590441743871040687894435575996971230695451004851781563646269827977713707533496986426752627991178816315283807877645468415359233737107381364827472577604330922131016851371012190621762045575373839303891804300902775632304177776374362354917189085829507797346211403506060802655763007285984328108965395243233554612013328161821238843260884603274858293986318921869513720332200759197956140046711103801042997652336870102317533603621468346873493939604132515968307089295067401660004303425677451065980527963341740075482034347564568974939409202933500427170812232806432101899783975344873445113923408798053198367936406251289766247260396585558570984171235779541427540085352082024780897296933826176635385257945317698874382271197618236710115053231332387047621579026381488036773404098690577613019207981189336142490651505633935677820436100551473602747873225675102673930552575991442194106531982035035904387273472186914113196855328704364189907498240115122884536375071325717143977089211113020994426009109002608271280449508468764529791125299755409337908995244879413657055407609137311606756786656377025946448122810012696183893246536158974880888636247559602781470669423147093213838534394949418582993237713378064706039536034745257207176366268737630027667992930405216166393656915541047496546943646779390045587192965459336387276834724588739775320137122703823041266452459911401279617725320658366824052361708384680646997195248186779138898768600143123620714496926118825058641396626920260031491891230432794006126311538908986500506436940580779156170719780559777899917329719830006092068455583766317269527867268413888593152229733261853577145569913509703217587505641528404246712079886448943022891938793853305540662604727004682294886224170730166802019050400056562296030681382388580242719956099407908972906803401201095508566134094461456701723594802963417864327687785941664553465926753276236365119166297459089088277654097471137152593709135230391785717308179677043094022805517713947028848036224241626139159460235903961118005537785126276381079486300310311346785649611987046614284392528816701097661252885405839903560224881411676060917570357767708207668049337831454925088106862846639097139173158450196007117007738482978994058012404598384102527413108709240417860492689390430371821087562488236379621167674526021656536243357152930902118167219518433231216573932175259772096114622947640510428028991953951697943033973911969548970540900065506629507611781397057031114130439595104362166912150780977471768607335076961410254570951266260772151710307375078599161702736517453712667313984432918021396109135379507930074236207452329705435242400516635642903626454509469887548369642285766788117570627622241395984704892864211781522683629837495628998079756487729822955509092018516464187033474513499080158229768824947312480672655842659269967788189621452513130825386386574212708423577972752991053098414386094228762574537977686049175080783113678972206419980587886655278811840171241812659237878926119299032273409726149518418687445535724787987595426782463693565406632534217129230829887918089680244537068662676860346794775657047855885195934057153091159347510185597765388477630070446278386376271962630920490170741327831231831837987505466368860715885809407654473978067660146746090313379029670140855465725607203629050022299774600864859895856215428968170452072629848360059991091676278556448863966568211472815404962344041018314080559336846588600258190193770084852530968019877102738727043184690964362343798645628553985623642273126094541471921799053829417127271955764940509949717912453243162562211311104653386366192014536236079812842721750278511877924641274716973645189701989458136231565060821900221814086371911786809554892417795440028934843987169162194602541521100865487103242207310419956509665475781156741772338008295807043286584097035495552816196947515549022533695108364131624791327682471948867812321969506349936840271593934015109649258501846683584523560335338082353884545670627425902276843717953523545701748535197209123678084648377702938812275161697643485039886093290112465857928117477498310939303481727061710408445103915496058876786338130952360036113731521748031188828498895301879725868360816441936496360487927364619682211767744569858841987008602576846048007420595731107739088984064168059525050615634349588673003375882950775266690764764285353407391321271597190562523024772258698918423381528476534722396182362004267142254828956274835943748989822542572745689435343334717683420068947770379978396823742576147212918675843495105676575353769636233650334026141982786659388711941307017184264813154044200194467634113344735595165201967225584727331719413268916579516926973974395611515337881008887105164682208996085078301268726859677799403364806292503884025468628366577317856286932411099020808666898515805401610857024974730746383501829958568023957645425472620038551719281688665468479243899616315611447370361230730696992767542297047886352685218784403269885926474930752854045818674413046398687341362472343015911396588845233354668468318558000849799038180292026550823149147138707033056669295516920721577268899018319490977530003488165047825208951025182716756934110082262937945376620347658836581997215986411373498908538365396477497580585309741824263643227538752581769835454345531358526824020356273343702243553520964789821277740989042820568940935042762154831927513505493752060542221744370477524142539774166441871197376986367226442820330464271102788543335820424181731385624610679851460463533042315009746639240812707963982142320624775331039976260351460838955961244741116389502688431767022125836689740166682917916714718455869964990344872200937391388933076332590486572763758560259461793600487460163464488887648600837940075745756657943709754585376315939418505880179283329130377086000290752584683772058336405433829576969610793266929868295586757278733543142048910071652648783358931883233386973341228495848371777898729141441971960144429536945250120888415846355420605952677291135255531223319500150984449974077344627303014516055161920190101007813132755214833118470298133880774872882817638210478684832900123755812270703794890259108735753727215704429813852628847876862577750135686100187786487373964739322504185952225712285834410753860592066183362491282939337415410745904075627941687100978832858964735073668176067630844654734433561018282311446010697050382926644594229822560345719898519084573604400516747122695410306402573561239920899626972515891965331127489664690305728766115088725655468279690211798823406102071160715573014128822590455458720079282824498583585457487329104841132201082335518655556536782964966707357014837360839888415735138034299073415071338195014468615111986300760493104053208641015694904317168250642066652223924893200996029368759711388303810958626618817384586871688705543534279572145662857197880453510466143640140241314151658944299737551443790805430414945957532521150314445974427481947236478797710612013503438629187262335948138806700699702557524052161999957525709512591376912689037478135584068587852021876865990538023842112121196810887569797070848657867393555805940145494180880501459136369278266022010075655696430545557954843287164369031622905071045960625527721545024907937976742668722353415406319210511349159043526775287494865770473867055968871424167432588750766505543206268627420877883401565361650561428909322579495718674694877733981915753241823243679582036444458107940002786821920240668043572143674104077842142959028356875409783036038755691068784956078889333846902296294375634391655499475412533187227391619112941246625218228805836177506099526038746421109502383789579959120506680170446253745466215235623800150682917116118917057977231011955576737904678272799334189209897450171196570826487980149322109812079196457112203497907249935128120559523358848862808217203262771856484777213855937497178097836864943981541458766579449384905348061208019202160807171781535576201229724714804673873296287670708680880267739524713283175926958979174918941279195486194584901882152686956280091800037870258713803439634947654808319374223362068909543120919469425775323107280424873801207069290825246442847732504500624140424798754551664146597405007678444467433827077354699654916288191573408845833912358890469892246607289567194760170088128716523812717883985314773611654586602118602784388253986370406216281409799810483748743797860329865101798582258206593278200080671456685201184564735704687462690291605409354087662201639260803488011429517470492025925688506503771458278823063705384122416883200928211945302165821581587242623689106118011280648107233030478542074659759082573901189541794191310949487221720332627025077054194197220411225084565929931290770203667580999295418930598628003818360560123571547827189487634782917209671535836510326501915584375478431191256695094715282789307219799389295724322964727730332308546478716199146093278234676696416367021263499025370052512742540734308114523958774343900700900863626790465221729262843727606926625554112340387123590368200355394860460305745106905830883572315824562904276604679207553222627783359126027086594908974097639230561795408973385879647738214417292269978896780998883832533026800833248465143749370197482329650428308131071848744166299574936770981220448262399076080965815485092682552289005597972004069637062704998775323798310656167620690310974521547728296962414063489659438483773928861843173440171472297552989223535940599671780014809810810128437419592141600171075245943818385449997685989309945234755484025982261877932718449825444994379227403121468639723773351000833612861635032852484809623056192894965623614718513556361596168332217005933889726872177789453440436751256401046875806762521906457490048723724237511318595797220571331035172975933650132475235123228876370309745197661881246818786852559207094433423880665527904698399170483015816237396728364655007264477991402383795746886522497381501082658598036809757833120806653152027643358444752707874328881058115267559937885504819959596499362302179781211372101683605618499415150645130057850548494135391797453912292629061379832188879151580746558587348869490343447682646536838619253080769795982456020870089022480834449655371955535600583800537673112135142723591159534700920951593199431511065054829818646371870716631278523632323644590060034688387061731626157755437252407527156769081394235024893643251339971480087045177214977111619974470265808287734565643283913046557125564132882894797696032910230143046959645289763859613595020690119318488566498177205395378925543159914350511235060605417111191758430070621519210033644545034356313707420102453150483071122967236413413976583053623596841291190928472192101517046842368273001020740363031109526810267638979545978698746627304850725883605779082474181554909954706215630742173894774763302374577627470385619859815472341428055719731776917186107574119852631690845415799238724497642436740384287404604570209488830837245291350349241106603089552628212690974875412654989599172892991880633073906498159915996189703787259957988486366581884315990074611833739763232578002154543680862893550962923196968831290801791886032160872397521716967751047450751014035476951441206770866825478861023371427968453723319872436227961447996401498944835924519773392725629193074577356650215231102696087076971637915418404799906115133688915443932287867766597620324154103549955310257185080703902578214034288238259973003342436818578853166144052168925319114591890719318954720856493996559104670766260428577847404061995491267090883570162248029804146468083677415506586045848048677764798386384796402243870700148351353175273385858093979197921413421422768324113794498577939077470625028811624683259375316472191045654589541929331392762695310856857997791415654216989578264537793474520800478923078896894427022728558153740693523883440966467957904900671284463793842608350289904740180011500779594013035243418376993921348347706244906484669081757422870988123622586841530319531011218382612882166640066902841859961133139433266650910451325898024499324118657036982814195368227792512310079561660126012205196966189230256094761090893813409532215149990780746564160348529705729227382590899188082569990140495110241644411913534044459854185053053738422713745057074925114751726506145474247292720596060463408900903600364210200808478895279460697490763923980350717790787930172840995322694828168852595614045087676229778457851644187977107882029230013776874471769859218483232915076725267111292038377711940168941269867211233035318502125692019744748855746248104765416308148348526696331581332298441187032750613227788341463793577671200718495213689795684273833726743349083312912862787055423678862930399933936590260146365271422142410691964958152000611403233585233098787608580279427535947821044496195046357593966964239182816690553176147603486606270989154179254430166642346658421537334649922967857511499559877971840022708328248839042430649554601310121820897524144230042524434723769771275644706037937515089839647402139430042655761733242558541583370681933164668022350695545692222312706765678153489460554675176281244577075250110869834859255572554305408661057436286722644061110960030814808837111361851756396313720587776673423568256696628382504464488921259424438387976066852332981930968108203605436246438829071671158154454698214449150201470637561985688935030454486135634837575954049758359993362372194933960473382870328448728321336920846452253916093314977078159599857631391410241944017427731545730640445947665932722200604695504950792809737031194402898493275978989869642742386754387810381026568454803984090234638293020594114158866429025192914518608453487107173285708595144724214033674286047576966575922750644478032845121680988191743913480661387443841240341573327774851117741689988693060476069065100408865601158499456338147392096928657043219780031420561527388400042690303768077211520065060027877269983410972327777834695659780590679234017140968091298595589024347301382467298695124429084811160032269738022842973599026364251374696634494554199901763196723986261213017630326570389214469499720349813849637813905080276099633698241851908342236606727044467875862694901161817995746457241256628030661542579092611510687156860465579421256961760624779138514796740322459802065599358814596166846672253700297540419841311513888316888778358506447813480745903470264847479875519193777501448059424170119844404584235075071165881672732936986601083318731070858513723070458082785542488142049954521482622682227039032630266832579107903376673868124995983038818437160866806943175104915039145309941563394211298985390244739212021823038925157812658489982721509976757168109832360271254864439024444254049307579517381348683528882762527246844957105802495003933018865564623333676951932131260731797956599544108024921015424594497398201127906075137839402433447638831522535480448290804098921875870902756194923619405813743629293171502933639870291248250683908839062740766238417959533656206122534323587366611811383076786425766988546395298641361525108346661916114522222923320715102713779147268496082425890707326754071341469086929107093914071573324501676396379214905153939126743781511522512335946866393242264052667549297379502140521917231349507938650506493562871513384608812980070019106587075110764834641530372981275944678134317447055036402409879891682783483563093421986804625537325354248183583313666673764062641772629846471788335917225355362250336557564900183483536948333694728699845481563419181377890055048148258411136757624776019392760125869746019208563517933985725896090933427377001925513114826694872893992645758263752275969068911204846913662676409337531063799982995632696969727209742833770995205334205809433610155840527473383603437243090480282197546723541492564081623371062390861667524665098023210163646883953481492521027472411730331937345606194407986382085552222665456366543434572337024424907465289203152760608159912523682851338148190150936164826766691133271145156738122371050349452466591253180462206305065526236458249699739920972608548182306480057463871029935961915153944210551260871800012543029593868996180707636398138104438472921447051989046820731326508547307307419913564650997416319753998425787070810674245207562533841636969768420537081016973105861855647407968745628421894962841825248280119266104617798755079019417312579101440804159210571724448842088961997554096126887434512723551966670456571467195947386458295731337427839960314989607167002517767622066857112862844610620902672232202156133022337365629738391604365610050141301124690511495889988291441861088602583640289469522252073183490160124193973505195513069765383186307391086835472245677937955341466126501528454773999903719218199803667271427859272122230907485078730033407394832883617786227330898842987942676944810063610910117753050203321833039550668848179782472854159387550251478769437665003050126827969005461521192155997425717616195074929688919879764410989757857616972369818390964221056537839007313814645730031788980990663145516363083656427972092983539052955133874752798181672991340983169392205500572752739572178968478765185740396690647872278704797522409692765744607218976030076982588494088812465704489722868874199253923299291108459476904587935251103850312971820319245811311100938097229170875725989222724511895068265855028361260919471029549301449826366767198163944512836985630233110521348383406796483038193272025428201551691144964614373386070197460115893457837057962667020099730860050472910864836500005556303882437721492791850759865905205685695775164218246289319393415777902833640196630266073450685799654881494762923090371678010033068840990770776680792114701228562950381610244609707577401434426766277774349143418725611499461459041799379131546963151750539120292630727134273957987822817209367352936440636170237363291179587579619192740492346140209821706049347952155350251667557521026168490010902689002566981200889248561404070141698547975790229225056313349413857171072027347578505212376454846137030071063662893000205040539557714759924900686278376744002322863198286048431213280997826636390862157157325083991768166785106437004505857759857077293595332718336641845969558445216006546570472097531125362662113070556902250285538623101688982179183613131243400135312300323710699386313213555229384022328710558451518518092466953218752192481944138930428492578808454607355059513800307270441631257099479500983045465270259726869582559386019985030376833859142116898329443040374206142443273825487842379971862167606020542057906469358253818347943378359017493823795832602708112458805184452605271382082158956740857180440502640016060464314753657921088252225246670505640921296814590501042275778594456155802280224213810588234879497348854302060830085809758543509710060680209078909616716774932572493723456553633065466859770424299641073381178575687060900333070777125032199734788219022973969505473838372472377262181001820730165026173743553892508792639918411067880686055430546964934724943371733335553455413161990494674382173793668403748646520275606982298425380475279712539043560214090707336143081360780773841621263166082984092383913538490742609395581291521955715821011824424475748469415212364627870469504532629592899932936372160801226672510459095003896020391249341984172819761167101213518169115884846301305046470906579715405912589210305324019256536452514473504032230757342312225391977891279041380038715899206946689333633866976770608473991059670828416591994975350707023429159732952453913506874095552045365679378640302762587447847385861647086003540145897111941109393742176868926906336084852784304458165685023824469626641496443537274968248617636542024912935636500935083873977322189228086059656536444028862748151623690129043091585486591013308544709980887382826327076521624196656086550944571167067065488024904712763568681139933930513185030509207438476950623104709073147088307464735141337092039788153598641292869271194938899861839518852731607450923027840317734319503800145119618382024275419595800509325642997615829622256849298318220754583866870844689413855526897235710197436628744228718070188894897473495257499163843882791731093861665726574873236493807716493532790655552877902777945971056389421997522270569621605866526087274125889915301219861536696097616146254264476290182562410584357544370471162039827169389699920427016055632419921890865754326324357254163771490551678993144870657978266805932520283120432082710874554865424215993211700760696870997481889425785234827830105775002076744390736410630986452047451361725846533159955349375217412310524124247445338246442240339712143232788461094059679976732387362020569682955053947567817807863077550266881589670158781814210517681927397674260475890628819828547168491574372817165710799572947672195439153569108964870153158024053145713861454316501774259046627854412885786675704508558572870767334412964052424004428694508612349042889048305402813546762910589895108976691364154791286070440343391183087701642320165318726447050570947128668507473587883188452810820167228453620822511852217717613644758413733870055117085321858771894890112580869350615971227611274272015269082711196565977941236488972516463071710605199642853167063269105052506692524205514563847594481129061006938061428810514316381389145296591314387670339250912031855388600209247347871305415345503056397611393230347023958549573916854073273981727291513041374815375155983014731349556283409611712686387790225935890478508103351025605175266460202600541735695209239714234409895591830833047453162979550074612713505184174642139442915460318932610042789102551700386746625591846261681961696972931060811164343644239106202083314942414183321997566985921188680097013567690801085120452120843472191201468648090965759061081146037466086282861427045716956009975483669981992139119087860568368990655754528473549277447927835177678364164784078125681962038776496103652149497765870495787079445623744210109462920580947296316604713011430911246768458582471726703003128601012351786438812118537176151246978619505816628179303010688383724362937163529134706202996683962411244156746629528237018081731170014801850042850568250481706498880341207880340342579962840813185118675957938776202035941246280643229206469017307356471832355094081900153910965281967578215389291147613699847632149238966891564308574897194839254682304832671554110335030460205097064290161544709872639393301546570654218177921703891365563250593923575493265310026470917530590001953093676924903893009569917835786079183943731720251830360895467893485966686415567153602492837775981715269629375965605458110455706178874041546880638173279388757650487038441884038769385492124002998905010006879282647129825571168345716185144422747993953336793746481069245597454709359456744743737861328731251722803916489355285989688868230431902574157135819412984068153325732225672297123735773151150426768461799045808954647037163976695981829010256868893397451803662313344031820895990180177893193883040391846118654182606213851533624622725493730036489965518659722596389927284691319836325299018174040704001554352664521950720584408413276347188373946267015214158365743799307004482245327300753666754476973648960007564797588180660119476343146817305185063566006985839926782369616994295064687592148112784400965520171888322710882042950809033670954495791436589141325327399040534566921502535517824363240868825366494060919993731777677900628949077883887413805990018475432305393014456304585419830316733963971199266835020670979179877539746971556315782960739390104050643123997063068433737324325811476126252561322491408541821924436415147792834507430741132415062155594529990061685870657165810072308209036647718576127580448916616536273526793013171271783406861364060027677315815918005430977337838135239617249299182172471262775847964882301368526079568963926418580518181267203952611770864690255617981245060549890879018474533420514063740156532104239056507634212412774818187823804486383794141228579209664449504052383106018543347287406737519558639506001459810104100097793358493440337582998994991990287985580484624529794863667838709730927156596628675748592539016910112188382228026058259481329780194733443829040840964789470506987861826317045892271435259285393945098644553048651108122282881145483065834771992700620035347688721478863253886876924045355118631434538424578632984538896292406935865362663142403341772260734525316495394106979558591396164867810671983240273601920245507440721605351905029183484548944614829285876746702629995826066318410512234492102757572884729300430114335688894864411441655177173505878642404064699732135378523072075043764311430276512015097900145618270849124213164772363873393427000480825342293649583428339496210448005633185003998168498072761563848552776359047365801734337993540788002878584420275863738279541393130998756569055497682151667710559743683120369184634805577543754241935564193126630959077697256514817398466306826642052257906845267735308618669279924023623267794589881721809883934163760149024442923937036949601927211474606427017174957383225652691498279240993353338972389317303527494965575998227668431006225835310536783953424753869103886345065990483369355351907728047521245125782480367260749836886530540863267247999691795500747958963227352336599444373999934828973128227136819459349033844027977113505342964961182404698005225956488634594482073860237433164627613692685322251329405718536784753691192533545926537791880704334386655635189549114902761886012315993097573607221876649220647106154821286832480757386430046221028263561718881852288332020975145137117494840498099967089094426889325448025424228688807119588149556867913631553824865576533257326553377258151315762051283807785874481471246794212321496782351380594861774719071992363694073702010580542008613389912012066791678834306897901832329907208390147363689330504658762210065525972566049447418683696778997059619271097545844319967231677892187502469962851357388425974093182010005538294380015726472284147406919539998606563868948024618656574900903002286414077013689887302947200341204756925127365806389035805333404590258849304887681799881154915991549078036104701402297138986304201013364889468550467540721058761945345302252693496552499099130639041397713184980058707797543151022839454638860421334356418093742818216159586368472174844811619361568933177055504842166673599460981155884332431367731584757353616466018130976376817612414655995605023517883338760661557614034955487508272649523884345250213230903706704328205620229140786174346603128529684891027063322504545543102589611946727816320480406512982060676264579547403865788941184085494759319607532180904157387029851853488138670882494881492171783264684747007711089062365410576448028187917133150116286686908420983318171415264418171325676117004629118442308526330773378879177665098906105432281689266608166955967853684690803915730900892061894463359520453669986959479405812227356383420972494167889922182696211430457172993837652397949267170897465995975823171647178856791288273141148875915812031459367151019779519214598562023567947325668182928671460565525895662204534002351452148031561213764116264070481270915367731960009526149188365459332947393925443253916881936754811043479947176800929788417025781374789968507991494589709847095075398144216187957732991011345362257491926098980343278408089883689786076143482387431235892118448406309699466781105000999206983412715848438422729822231849138370117800493177468751409436105702522161484466160067628369984319497286248051080634133785538147614759451036535164088120948947595390204244292320795048110487837106613447288891919659254301677108774719578931286014472168239263074022256576138698968136349158995845301326614207221599610200486997100486780279304997697466032518015977907740530333795761903662631562620270926196774695053570872360122763905127168980932554243674994099429389225340973346130507646272492029419323225969992217859457175704530076629878543858873597344143750032226128988257295055433636511614589600030984441337651302517632662285064595253594341211309224169197479443586742709116624980470454964804396549039955075066860366473568402111157355918988904270934386673168584977002731521854804784008781619986278344513682312336935064629002310349770426174430076328818362730709224474536193273255392402087141621927793726956713117714367233922207870083941612026643923825850144336125482272449561721173608530953374662331328461747873528775717462086573269732456131544621819696862034955430494781574728680122181911579916711333790358244815270351777193787043971963122900138069823747456676737824440462273719861259239366384626072523800833914121152668439254266852005704903543114337314200287042646794254034063659493544657144449226860121224369461618759392778643442334840737867548531029140182571230658381308970300183718394318431161895379899185205619671531179360774905056551395849941663211792244247345138860756096829118390150018184505044402029615400210374246222074105233009940363307866264062935294519310677684145924414673993259165018283534514634947136539329525841589519636247332987012620935166580162868885909055470201909456351926975944177170720211957081430064762397598062175954810828934573559880208899776680064548847078180966851926194067783782499519572860878258479252745246452537010517658822832721835968568640388307173357845833120134189698008111955389363910181091411861636130009176945029332051102845289137347816123936144195712544802184004176831456919143801759003132178008428643945610459879203576515183231569516506170308550985362430008580528540193055859128018445118131292723558835912628046684264913944579422057579536735863170598388022259829972828608218218043871452222615142085832607832281936154978889783859985231478146592743416528543444037997418536449406719021508971566831944309934722406853709537098745388738658298856159903947634516449401592567613913744722566394434314165512274527629890133019752143551900027163018635039292500430900613271725115454508633322576267385387939047627598367525970751580253196856930898447398601565646328824346352910488208430470734367335959325089851461739105381459164243635819035237017017815867958739241222437417620217485042118581148625136153552271830235403251984407093723416064238963536204411256092487604079474086105079634622383955914287666529114118666600547892292007346700956592790666352534077514282689237942806243583821898254782060996191600981812006565254933661130987585087136049894783674597903013691698932269612673947057634285819724148899685445399725261054711402852793580745682183054665360481563953038216817134399982294489122097155523436632173106132513127115863250296128697693473045292004970445922492921833406124056452841770478767458047592773764905207151024928770846040996620484910177223497765102205055939672846875703610423054387532024316433873251143078318700296284120535478662405664746810299607326492870257203288269673134899489143518942938050833315758266394461867871418159328693129654799133382557748464938352371238125966704846957092492213138152017618270462573937666069572755145997454790443142009191325788154466541032757889607918384809793139029264662741549086812818186004843622219408217573594397692294994513523437385333463270872266437917960531259500103611139062353551999302270380100242323676119011347413508659164086816030846313425174739702701101669081448584941465990347661229284651948968389014870539037401973526824218499630846351505670877067275467807596025005278491067030132909471962480753742820179303528119313829978365331126143095148543157387509348353615188183812958197011722040588405261037171048224477502879921863981901785986073460153133142553552028326462663302434544773435619358618301735553020393303937346745903491220846878836327481128693401219106023062414199892774966246765470207937460470566885204623152223994772584371036480496805427291488000409769493479865194155004893654734931330805180707886599470637337964296227011987782271372568256518080254804162266913617775322729413086369275915687541039612020201568711269924011498808731122646041689910677940563321535445958846820841188524306248260008212426381880637202540996038422068071095873903012859978207122896926301103248741459116225884176492960510666773617523264619549321197926567442237804687200581698917629817408595419393142421689281615818989669589051101773295964100961484729281031880724225855119064781219923773322064312305647847728063631614454538025190338652558587902939308013562167759696461944930947951133166321363837113630075208034664753321304295761172671156038611590770704483031926364103282254774838077173364046713973243509637148037294509039898459219951584694171554815625545574083384297343865436005900203439713625149482876227656669361145550398692364512936076474853283444502939311999945542770129589529377613855873655725935136846717659294788177000921508669488689483798401104241905862219844155124462365830246032671824832834356413123571221537726362054156894387022656948498470329225711545709518343199756928318004024750738646794741010545990006202040277114408606242422053814500245295112351367229369793352046218174676645824045911894143273301892714726790382430117608232377582234099307361399691511338246570386003677123698833861048420491403445361332794021614832446770456186881424540501458912721707741991121812868999145374065061984317072645101095541067724816471912944387209289903751790692895713610518684041052622547088975032173394104501731073819702337742812625434713689713679484528125879949096308880825272859075004539039697442617574654864133824377667660003393948192468021540014133639523891978432475395106740715248037323964561200027576384323039014247168933466598412436731011843256736031222263404776985215847095125409025985099228895946468705123958514152670142691188511121347627694944902285550211592681927785273403089233745193852979713578061615125124918130230880535471864798649890119127034414437519742681908096572656029014137326569081151038006010818261116198818731603746873433126849852346307227957645353622779766008308427222882298030309205952508150093867043318187740656814343067536454715342771269976142033851008657604406253706495141610677891438749473310293411766245590054359904854830525743535516079467932375750094696304548645970472013515032697157010168339601534392582415813030174960343440205117312975089895745735504311623556169169721439480072118038360432052993104874790092402205720003634370456928832625293548510170709119950307708779124764555285182662967506449440232192461286507458000518823311985783421726106264481856035082752245740307343323371871669604859478079814396988428341080745990262166581815003946901082458371551239854752831464456690444035875251067217838369968149976893237839733298251123027283289907735484903336247851566625041592682075272515542166419183797972004535993449600468770641937423382353526456494298070194363626771935335573380264473597451200035056000478840731443358340395839342515078769183794806731398772547206201138543828706432207508671769370380617426622472137705219209831210557321079820815910962085396586947874656311329722433773996366097015536017707902561910597228342176563188096696239949806559344599679943819057126131315673282001973493363516490648746236566310837594143300341879967120193355619359483582840914632635483633863503844952832339812004011307774327147566351469783940437117385533769937022913484925629233697292496342968697325290260359332445598229167488769768414173694280775791955949353505303347081921138926099704971913450318962501990095221762587409193862508795893609970266378550493434194156921910264897011687171615265737870385567344646456336136487849862639700633101590614093236428441589286243631735366121793176222420269675841562620340238213724312285801952524565171080754532134619096392577673074640463641119912156936984738434350641866640962221302003494611741510332479410750478037326635352192583991701091704572526424619775348866244421684503779622382467308893658964519772509926218094168921447356676636568871294995466157260492087239327325022535509535301218773076771437015131927589587684276573503622064992636684926504885045937479203860375652073470216985929024662109791149474023047229053836691032662860704204349246160635022218324325311947468859164375331571524985391706020328708092181886340902132315142264397753545322704230610045471310255991656877150104026540098919791729713011160416897059657635485648379711043202442755905547094936119994991965416402477935656856051339566273765712933567510779811995566934468331697787060322930622153201094326407836977879350859378589043162140555113220579391607337442648496561400576144241209562001726476919886070563363794705971451963035007779471022841314994626609640908849538905207339112544129746371387138801061879975946805895628232539142029682950283098401312031472337325900327806967793502055415140045164382509838470702409574773847066848287352776771733291618442350407407965450628146178891010337349052783354424215835302567143144689532575620843332004332026660165789024373437552986212725885614203252645372988242457670499801449116483270492758064974915037139491995838714998495233196447403940306723993935519494265699950207307902107959839422263632280970991802531791353013934086434496696213366299523138672059846298037027989115992430497893048543027329688680740893677181441094923514663337591358939300466804828978241028314964537468205011077872039859809279756496364477866076012144602042567876090830718838951061672603192439234006363244867708052053236443738508023299951309059860434621037498348766477470762855669259213036646742270576318868787909159436371076131832620478622659660630558152036334684801035462843444836557360384586652805404882750948105741266375270428986460605822755286133325336557352619188043778650194780367552369186369118105427013606787116208007012839317621840235138204246687405899619781569702963313313168069442307860948775176581979276198704224069433783592092330824211005227575995260447712725692083018781801528989503868890761381293606760171894639291503591970550019353219900462518416874658298206829430338961646084419816435521963780119300789327108799214958587386827028170511353317816891623747167140277830198995312445647512487115661705583091530322063945680144914611434729335539206370950391141554137406371751083717798654335631020880257106087141569714642017144118680509468822200242640439221367876121583167998226893868236797500243940087100582756171406749710643177976340701246216462461714333869781847346443268098104607956385200790812872246258889656560181096998692148053228356332846910530449708788053723144483154335641114844259330486997086432203750570090403337992144576898358107924091461075784424925299940262609844153159999666126250568089449819395703889840117100112855792674963723310262773663994403391920805605843635466344901525712058114607151917078019146002059778172032703162459383686793850676659696411483759474036523910031536040728168769582486818800230386910107828354791021532922318106728371745710741262270069348134781888816659643820371220687496585328945571006367542988845407601854541459538452146364799626250887156647455528213240399481251932410112217765740140835697844856582632667104344761931425275079542516809219703791309594227420557695191969393839154957140196264122076384058469874795239999850541297414344394236453999944030781255709074655864572624868467642655146866733339221013671879871464760399075036675280931706827838976866307444181773748959592676011341933967070612851252577063294448684047463818928590116416116993031350321115685911250138085817255731074206312436630142555676124368733870973466312072589476822912622083265922064067266784018191017942948065441365116233534739454209137812338350061079783615904495670584980934606719549658005827934460967485567555619607563551277728502644866662282527430708093885994110601431177176713445662270917606859983576374711753776376160352593500100120207138762472522764736206332526932848766859412771357431957890346114709984804061252837343411203160216451418462783477632097001017934089071744350683145717365116819342406143488253593659244194939195899301942292561941620068284482797607206076871216584107743710618683757196999825115189607071148621802210484851385068456126044458639093186567472840780035886699750429414068456611637324717608290318449366456733696273226865183763399020844545249089418341176355997841848024033597290870266851976381956630093844139130696791680393684582186342332435435099228528063940452859957180880956713335206649579882073257892242467358019928099831679922426246788958488184212573042984888624789498196354583203906985431744791693177604528490801685735982619686170027788277522093470596625153926482309283928562543851841858713012602638210342334687811011378071110114693086387797501388529715477201324248980359765482895926765600699644444922705993167004837318810946329386096976231209477516452463762009137939964576013567737672887837596157151288346393722266194441817457610198168829380319425156106398608721767367670092923842893688293220206348422298381376734538548207434696044713373818913245817642838986619164129291776429960697353673304732562685506773818430407725567546553229395349045721231791844939461531502746464787404533886924883334059599168890964387291009100384062894658838800776270445056513686930516182171806807602677812942281167711070804884373787246831533507789267461180553452945908699972613908915500585691059358055089546183300615197943126158118576996480100466574822030882133130120865453954868127235300388251069340641966145385143373688064831340414706296261087504716680345100801584810191459519699828347914411636427783998802830307523957074707550523140336890899579305464645931405355812050101852216632162243057919389664550847457274987744659631854525012154203459577284061648768749212520768369407576916852268207013478227108748318337194605127735708411132667423813451114622363452759330389646074752272461046582335904005487958085925400255315031398204096819311747499702999081888552815105028413288398376850576595242770482920288707648794031924356858845686278087284172577036051561857952231334274210676736378357687183421693708802913305595607154482235712059177074408555442595223178785248124275901028298237639278597465806176535236823084483587416942196506603440452110941626514095489524133567703269325965387072517240545494010955365722371467374741736102091690946010709565966207801487723975930323918233237851809035218576829997337276571356161705005987276065296620778058826201533038069203590608409859812988362923690899301193115726541038360746087342203609161834342431799194198060367077743777519976205499404708541038426979346351155672612717271397494724413331530074110469270245943053939869897080783384325487001697895752463398647591360735181610478422509412925573497492122074173707958933530022701217856258469257070010795586085116063411136903167208181775007017640133651355813896705254455066436176871965462321690803906661345478324718583051198397382891866040925739399666340477915097412910529091299216971733124453004401777948651454433886209929270750278736229515177853119162765305388292899007168387906453094651199593629329889752810826755932569048230331703601124055393383519176388455120796338566229243118818811624553964080401376212513568764594367234182884166416539094105940273916403840794652351885438682207749771749035467492358453422691998134830182364909811492196606382426697657660411463652753545660504859270892769815493558786872042923087104068755587230177453482579926696065566511561425126299741569480725375214199865137028804009123998802204506807944309444302049586974622307952329414195715236374116515329574854230326424717823425728519302649602708592019326316443304311119211001453844523750211864921232998402728236755124364881743095028653654365103322288563222478724705848974549861570096713896625058359311098762935337563656299798284949834670264299412306852283339255779787895642943860752308893755771229134289154749494854738566161725669838325180121664270901364722235194531862692966683509226942190640612186818926761285944938164635419823084349100974194721650645312211790397272368937286515621997920106416393586313201321820437810755136001763203976304294673469184480292281229766570765616870667474958804607805424584859813559130022827030700113830516504059411586846602461104739337771421663361080947372037742499315017349354688243162558091332390510154408806362477557161419740922901894722156079149042831201962895576187469178259894953056972392684110865658481186068712517229306595230350898713513246284719463292461705731792302957458194122577028972338341454636105325645354609009808621656947306857012540565379124849421578724467123689959718957823260367683428708074030503562424113955539167620260548550166427053077971039521469514207519522347961634014756949253814681049622686749299693699468763808894035810047455637677387623335947522917551431295662997366167036174072535992381652462966501540440514049049172270594828065522689191132741623698797908399697429724306434834493943552498009458130674740327582438130579105758987806743731415994451696589913013938939887637626125468638947466124777694821648020506487927408525205305658444058088770859424142745830332102347873009222962616339744360233440983008347398291047769784508999911309478286751380062798482443266596587199022805740167173683046795499746778071790919356769810182503503943406024088931848780332209020339257500416407538335264197404968498477093257027054372541302231502544664295562291870010640324816201036745571692384791871256412048162908804198371222573296487473747282153373240755039518696628735482404885368564760351537371592186873460279362153140109696827394756421156182189894164462898249135718914167631495983967736067581804741910146875696166687809811927895549098102548035344559635642967269270946428002781420295331890086058302488254951494087601617829395119301301300598473589333945542151146231721544920288718247105741366113072500108528595744251857117396188210647266965086018451672358101886365341873864326709418894949223520590413560953595500566595167743577024127180936612208784266039869451906421982228869271392079354551432458684318357627371534299240832130676863702370343494402395882145309697082807418068131758400175434979267449106670799557364264632473011162411688435263746708487918907472632243529112504086405746299424532214295866630695692538678454214788293946497780270827900719316862872401770740103850923877712755427017066023830129844923505295763729197580341083170270042569488205327895611429571950796574080516097403001535501086319194799940911317046462965899412001657857462696792704862908588523883418993192504432165680572977016049194048186525828118412558766645575653383264748443242093063255589709960639490611660714155503973199489970916638418985668486209108562683358230561648383407181272759007020138074341972841395281825212448308834605464794707378275750494060546490822343036653184468602513944585598654145548226261679553001811314557528298112210436684208534944554269771179602114176717207077303205567229995427945985291603409702036531667498990111332479646211361378392167469525766104368244488057795803612622408289999909269647966848595669748653382459897784253444281643545456163979523557563747395795368581968299309298002650100921201955630244151818972938912532858609876326327951713300825769030988070792128309935889613411910534248240351237673015778044080362264676574094265743881644989405886799367072045600294653188727627782231862380710054729674140267404873157109132122678574640003998734859476762650783197903878295201210583629923208410654404457286655095320220763169296261761651366070313548237290058676665654574846323836572523879001171014649352195758403224087598725903174837672844753508521209070346183390544026947534378716114531458302349906290176267014001609453799705883996572856786583391419232842649064550551865271140684463611363586771253467176113502431633953541797876018582930461567565159255467118947846809717141768993539806273914419283350635713034312749091027318566604812861745609544646210447491417401523221388236107056996654605404903829195020333003614387145081758552392324576663171414579490198661533279108807480659086671805753466067954110010070917237134979338143811687284011334433017209515462593412582936024514640875705851894629517565698985029600553011460224783113673980011446418431129805133089500432239169817110000422320426663381692927376716218411764967691897466787751890236578882815048181106387757360838865280600541268238617147498798623852002487507007674698078264044469546256181359584612253306394641476415459615225826529401101544606485105471566129470107566522688154558880359048919295423047245129783668020832874170601170423842420057458385417734519512376522875505467437030526183140088598268859287570757900837086988708980884908592082739760539395204167823525589803727342646361288167050813865683773256595621232604261766871466574819955996144219831433086708854678212355915325457170464161100748210998774177371193067685284481259595852159522012433021315665414897711080512858612443172201022875040050445583038377182084575875796100609128115642952262237324832359408483404038426483952844149808490208001640720363474696346191959273978018353980204403948007575873751154756423525919838860067381297160916254546371274673343268526254133588710790629758479796403232689175220078838212432877828793206014996858795431503494461564508047930306698347534198011761619392669394048330617913268069549234810946565455804527594248608241251328332722497434835383717746695652958393888935648510615522080491846397641233372596543708727190424969285240953489988408242454973331817450719081041058689412632820026094051023981729855070109990062742797347698091084788436074949908212851744904264744726401248530717962020622172133922087547859940891329222273821226633194889702600410124002498789744598953390677920842820372083823058530349903984229907187795239347982278374880387716211603037030465488273570596273997863528198925322619877047560788523567125241057751399650529453294482074388275278786301145283849009152724628375006357223377659237218653392453054497438715320772937281688325593915147516801860663549140671458379538394039438094375729371689048765141798474744060746398754522213782444172959880965795625671262376063815192231761569858440198960264470211911175494912357782585070795184625003654368131032999269076686890024772275070461007163232584281700982527042976472178471042265566415683959175841196846584316888607614177354837946304619943431118097396617504280986576651588950375483305301826092681993707690364153436723725870577750160146977016919170424037596939085704894168148761331782509624011435901880209117323827553047798303378056899991721918148785000751926284066253295401280131013565331081602110157056918572074980888814634078267175193384784885489495067443708583400939716913859679853008589424041378422723018978495521620908703858084897361001212038602204941332352381098344595397828222680473904605897913931534261872555865202325171751484995008894866401312023094117377438785385984130876805416469594449099699522148102091142117988272273689807875095023785430722055963581575646116897407732995200722120602342676094205035295595558384896404520825717761472198821388775424847091294675682286061961742977214152109909878958511043224990019075178414513290279825187603464918421583080577302200475864143217510312626942141221918469495806327665736453186396852382698499332653368978449036905421097153385710825833890566866965796953353085010507771887426800742810639862025108576951286905797700077835144515953437986990567836477311616136128445035493640880759630557608436892220485198396661834679920360936196506936926179105966127347558082553084709660070091526325445119264656423322330183510643763925399237366953257890034031999446969052108388849355645796570607958597901741058986023181456562390832450317271860346938692580990517219541600891479833145384750515019322140570923444165144042192054235558337108665289680750915997910523098778486713909154218949061797913040502241849452265674982645253607575901665721739515730208997233693652299123181325739434964711342157523668998164380874468617608322819929842427960528950747868926475220166022709459232586574626406615538625305272379282112414024529436904607703421187997549418951769843580434071096489073615780596668130997586020253154978416281687783225053780633711087262855375124069950809877417113958875378713663027905839306472506793808234741502035428757370148463739748366433377320127671862749840275058465833544130097964635005361175670083397061544462449052875517170347661483636280527268536854392995311020084771677419354161554651632277828050830562505775508874867760272840690683093156359751463856943657226176790996177908715045340531775459593085198634239220272611242761701607943645791219215057682004323156115692791854520730382326141836580449947394430899037595182368762441408459814038088384867986447985906235050271755307587743955061677744554429556868502822575695550059181309527588595990419164657929128870259174295223450987727030571168186836901496349241641919922676590980298699768488042671095127330134789166200657697670451293454014757522489547125919447901061814144517515979482466782684579317703009432879108628166935680521923081084860095981166642937512236228103819353438681172248077904348539835487348732921545131799126453442924942568038596932495801929176669220114285109410072045452592886646997958219194905997598237890912275363575293243022946929338587624898346011060403150473394028286090337554072922922167417908823036862137467605318518616099249704695408121776898929489210632296267864469508859124986815458442780718331699484759555786276159511505056143904619258152863915822376726998898180953741746299272598373456949636588885812320873388233011122396214892421474322309752327975561334720538429892745288704350399027557481861708814812773925977070455417614088764515487343304342725346863530249020449423501253225491474050704487358258414352638788736002058760827240249435941900449479873978650071333503064576623594825074382941139658338369156568959515747500498067320985047826567890898579144361683604815515596372540308495175660990178473759511372204623922805924340706751901499987668257059528755071411250727853733080805478182329166939378274618418323889844102857197207965135954633173413501155757330002684773196011069999238294786791175764980678880916641843625176461936166195327946005145338678638539212489771398123054653008575139815520366092703910876292184691586119186557385616000604766645558511549305581527047120905193974984702401667368439974181376833970953551111760244120920574673728585670214467728625105452254486756531424781768874885889786317437526038700180435258351948945055711537379331618512793058017377482160959353130730623598442536799674695010717447973360392778715651699561374967298627133672067165826230985129250881505340335929757431411675330779774949561212164591740512092897826620830540690605925744093722062776962006580853871304698319431776957820252573610368265781374537811113426245266778573832654255273901636232420858524147606999866566632348952428547158423987652554494683074918053899127455965677516082915052868923307668963089284323669023917553453629883095012707419858248308733856377400045101590753201987675542974740978853683300923145982692047763908462176644614261972190921259805210297399147584484849460704811023012685673453865676615380430256314921360973337722968819362933927914603968605697152666878527967210576030991012474998480776424435915794815232615296100111784263700736436038590765960075452533636092174731684345831240155773670396250731728912463460862280961428854447606664208641195061337041231768374867120492706189467704627361295763747295445481502720995041603926202936097469175251498582982400873750124872088086975502781110604887772059758086152711687147354461694491636279649703441496215403405229612893080506582143538174920446618123640098084422798738942694655692458125073569451169650129465647098809394449236905647577379497946217935955147819270824884739427229104417071452640714196878958536870423816232561812697962062634679971058635568024028655295991251660947492084668790387831059849112031373069875147381587367155231283122747014147206911391332089232212915855299443168195678111611907070089479878584433424964952376910613875997807953624940219240303279433505193678368287529166270683398175176057022905424117163144871009695678256370362230676815978206333161911723779114785860725775840955496548840460698884823455324069459707002305881116865507825781605608893734588130738984285930675273996228546707583362626881872707357827671663539199198061324683890641444006928600157998182117924682906772461547972315198549884526289070566522050860697003192485776006235400085756709822529074283326445479488194617625475964103268023427718858805506450593120008933952055795574201084741267557705289434292582983990328376470711109176100537859790330969413318242627455862309086936892158641501022049668623068617651272737297939071404750409529416869889676007990646318720270772633232533606710056524014282565425238723915700316682772842376336101435415791611176528727593495415945911046628286948921767011738791469397963328976914966223028871102193745149100812511950904015355840222050732424017503590977746613409329719516090949905549547505167175427126727743446735179800463491563734700102002490487773701649345121234696668296338836468780579881446354710206288287942507019600356823484904179947518055498745085685275230044920614412813183189260655669254361150068767299581817078719069352677825668429324084335954465499789317501015864334805766154533543763670624922478349754401235730032269078409448598953659725012519220447394159692825599662188532820361847462016525436569733156915381987826788744223755829050484252588485054759163046710162628625559380652262787358227251700384285688800102506123711165044100611104573995490421860128104426949440856851448463276824025187466958500488656307274201470740607741677102801600073805615985044018897264060082329767075384081118352188509345795522634333758211140027026183973184961739815539681350002096827684408400746955733434673275637481237421289355051118144507102224659807662501535198007250364203977620219394569370887328749878164808333059237155420129863647250200771010202232738853338001071359160310631431898233235337269194803416984847509945951924464333988221553291606695612357637762536739412997030425329079350937276182292535277203915492611372966582356457054520743276331839247273263574074322057419618822900617548000578982378391097472684115908188199055222565436902207757980601108901141192260664783567585123787111948843918339913142720922765581717050551166456444101688014862426986462898772474255366309261844341098515360605447693279569451798206835780577987463499590053446304138472329354674812981545749713357177756621097858695169625099077779694641434722324350075827031361895295936204407290584481211466624599692999944316130553575899793753072191353592846710885432677439162017062190941291940263564861234753854125030280016177014559189724241757312006884802785876165152197593637191942155663640449970054562665653057315288702501392396367148051556098735574265755663687235318077910489482796285439540612892153607844311157048488088756474075925276892999719142581536122012781748750007940632687128901417240090090053163400834009867025354670941242994003711052468370321609525924925528087137684254926365169635999132422336267267656792532217230150730456883092664063918199838047498223786155585244513430894215180089724602714478460081657120352568453307437560095227244007434730055427068972585129421435169179030505398031617161308826252424944088589271525590073283100438166942905908393406700824860235780775439710489884494584900371900155553265820636719044172960968186661432360587665688318929399020288303737962169494399785695358086807615653843319854721775374299150700441488676588867632307599519167088799639932038179680821880402034212601430393682956999836164226401409279533010738372588488658982625555123261622090825499381698763758980205906566951855632592782426270323996909482055973148838860198682527888742783936287041183140004791994961223322638792417589857027610003477582812688057577448008890564765325526777843504534420825908462941759753414135037887785882162453178542507697497440745989992051585452347604336182201287024675417651802931638718601032330902179245940158476703524645043111990681265136761294464221712449012233744525097953553173772978189729102592147853978897250050304191575853838683985002255348433490457421205339394215870117141439487669888444699549560228521166176698063670739162418712392803857131308821084178294381987986235170132375536050145501919426531328284117241829451160975524434406899489286179792237705427621750047178523096566933942003733155460044813877575887847508816329807930448493751403458170850661481068243180758857233975413134127813616321721091013817488952360615651788909065602562795581310673061203081653350114322601222513755639745080533866808175155624224860900746322326063503129469583022200865918796772213489292373771630340674682319472268047813228166950663582660674106809972078210635241434758189227021011874228301601001780913678670449396326416214849440415454109019308946498373911668733533635715563044237940079371875141066496528461361348393283638585130244717635710543987960460677863953242173743215975768953660086492939100020661136475997222929562131707616815194430523613182975994880318513213870180015496288673158747290451369657232083928548970796318338608994061638365162161828695957623700684645611252256055849456333898099103711668587509564658838662203198835099021251568568619096723858635873592008442822256041957685625862298085704666773734837692760433187404609134418629077608141807348246680577217388707507074141070041588449754056204589822736144858919504834976614237671003546912133197195460795441565427153155771260406751358662768924703772115519431966057281197258258912996872327825909901183652421629687107621663140814855113392785797655545682863201998007530427362863199215523317123246699673931113462441248136831104667457931338752577336261180202481284766807905111617538459278725942285270196392801620198948131471705980152375016884348397846302287194564676735638930704934604116012879823255479643641003990100543269300962337197803012989540164600214356350826842045136814491790893612543443756399318363996141686211173105879161268504987099812154655167508487773674083741904878061473882298926213136557214156045351052796136249810444604520584112255041241991248918437863982967257643801846919082736929717506515801378225550568835108656044826517494013171056454591943908628956521706101582828931339595560223378861620579134615504923529003575623078934292686387952491479063530861171615672936102436984931842673769438489441935469220857112508786171185473014084183056999611938815362544987072387859388423077736310310206051836746348619466142271482598968743480409953689534575491486101930044459993155607167438890220176995001899445302381350229011485563826615048146712215286952205192388173239407007980742110791084769994565874527912372975787737389402744313257400715563604904413293240879607196613929727864537951192832297150877469141098173391360230461062750671213503360434042392622369270164872274532826418866485886283551011592596343367642735114795727320148281795176207882298356656061973796078049326047965385403555810811430843756221365649596497400685046621784619600400009562197537735936728095388771308341650255170929939005864858861854384023068086346257717466016942090554055956774113624148336460809527446185772825582199745329461191520824724459626976440524174983538291891905741848606563271297925529277818891246603847136462339124899830969586147930841757561976799464729416708393687198304259723724221314379115752802433608933083769891618895774986073641984459525262224382321011588139302082462524434102654524441071389794131775589481216266663209085633979516113444800997355297450055019700630826682427065638391416371714759346346003311133064327950414479006800418691142944187003079731501323629592511082270024356550991235391110944661894030124935293738189298140360786375792176433794916659710460623189356964815687011869399985811391769579841500125335460596808241459739031547550115183556045551856482663336363698420071132747893082384007200441247567639050214993094438369832817015270415697606515316788980365638718487121650057281620480495260275033919626720360930546101411113578751300803753222361106726282356828798091991530124599810353601877636434087554161562265372409159281342434916353362097785439037358261351112952256267544960717123064500344250830124529834844586296460999292613239087435047701202859155132560665971830427065572248971702576515273895885269223220155484653777258258675514784207590671863424845305136727414724195649013452777107705769134940189352925153184857327087653746765613100902159451172948560609922647098562667759206044418551437255350505303183202792956608221347253647380068795946381466337051445499972134186386952896892137763308277966522058756337684945787675870843536644013489140652921633868332941448186619037220027064131487136642402260435085636113448139748473422051418678216528794391625725839547160797858709343432638816439060108675167121968453225088167500125792186721013067754385148671914209957941525567170856368620308467509005995795933265734718346800749901172690469818242291039190201354090573703094887223431331717421026470478534729119981751854771839939058487381101758106147187363475852755567823759375184615846987355307341992924678681787390829990480670778602759620603968769282590481897243034998665286868654490893736403847944944081803960113078396906011266674939043033245056784476316453082287858456007735365345701845850346041499525733774025042032490822661370353085181480039421450541476041604912189062317857205201851767184119854738704752400382892487174286076590052601393911336937641877894912121892443530578784563794723504454441952945822833618750328488532812925082428266514013824534644068682168580085735744047950246514296523544886539320555131920776567843436637093263182434088786517444826456867478848566874254551279805968411731508425521502900489333381599097726686644112803507221735796639032153267458229403232962693024532269386182201220687950614417309024751689340122166814110908184034034013880042997836029305219595368190789632564098939827102496767438392970031660144512239036493098850314323206133412452191182063669707590294765560222371240822005349537665467779071967416659055923938051815760854630927034513305020904264726156591164801296312090381289053433920596369922847224367471784072921667963360249651186233786610606307158152465358943898680719690369738989231635108340604192861630929548796459649852890920915575481056336656595936064338820009743867703209082125169691467236534422229166698847860583867092773099568119632083904149203361938440630469862573350966821411798358882259815812163931175175677822365576184868123193014627235595681314573893278222080319888091026286706064340480271889190200963801561457881366532081892897742590591076041782932401554044785678833211784885235999691387560304457806806074145873948244668341905934221866371520237028737272786576040088766094263666914368036752026620605244903424139459300993880510428209676672399887616268701162228056060295799862136988973532189602869360729755541514329901220550698372421890313151402924945802311165352101156021563691743542652567879348199243849107509871483494675751205698690738183862176195893534256532312584219354470967348171709689203544058651510600836027500481624213911193358847319663637366875865624023474274968649998247310167379201251478863839736562277852410172996631954792031343918847892489079306970005556413785304222745788548367466562445663068378751577752287947185902328618210300299831425748292048579162308456015042189744665812375521839554260186324881758507914624562664147362864157959339514671834298476164330555672669836241069876667697533470098123498351993829343266724030152397898573752283564273829187695165885081373692800428632876919344761328492526386174101672146275672121946904637041921330287111454750596703424581769610447795721936447104126157235691769839407238254678508068335050310957866538908367838253357392012985547940955990973547839819900637966606395257710420597070881433953411138735550469092892939594240477839860205759897346656938157739591739547136194315368779181143799121981981364840893121242717962459777959870766417113505110561945117498241954302748834132615494517063651349169694749848818397137030572077524909953753625650733151514175533254316364303410691874792817347095416501468779012524218554119416918565157089454397980553547592016490704485488358904084746440361181407759178882091488514950826163328755932426998974375954234649800225617123268446884175965061009251056240955308947342729274354774908846470146062583785324282219171467774212865790157111322530650706305727888607061146824796156275900643288906878468243148855770751185833662838882573158737514584421134216807456632990599457451339555427376816801647384586494830216885371290444762534753759088863680589201389826501247901651260422745218593440145562327927909797515235812548802473559464758405038730236992512664180384530598142128484849623876388418168976884268847637439199089328474234180523664161710496955145697635123233555233992480161863921117814879796791830229283619873287254399479343790645102385114178727295582692714527167355308422971657794358790685422792999889616688914004781068140944434202765109427654718892014054282236389665324630084348006293323373853056932017923574471517608951200134695511845996525021001616522026546083875791668891462408899410402540923625957776110688770331883345498028728418587209462929580503412971910618422439655039449553396415207608237569349342231900446112997010045974596676668890790310925605685857504179874605012193018875730311858239887405859116794855983997604154046686812152169490038432346773552880453855241090127284445833967305240989372317901398418704981186680259662839621683656098971255295937123149682116326386920100931201270837056685890252288878563195409309844007591858723632547264267031639358508122742575237082902136823814201541499212790228515090308185755660607077723876233645610732656382005004297483705129661183547839192104879840065802433632945633190769661340182018168393948454332478519121117511730630879419616391438235143903559199091617339680260662567354376628563150022969813383832741951158470244967158553038926011211006780900782309812147697812386605955310891215652169136350872866477936471682479365515650893152647179633351449277988434444436923968596882695550423444590729772837354591498199819211734260518674263395941365939901837705352224522604002838512419425062917692532234770944356431350067133423223032263190834189943837789920193564543138822792507801421350949141293492598026767129775064685552242510281879331663101844324858127039521243650154508792733837902900276616384659796418918713148915751669748255447676245047757726995555220216221883180141117995924934307628881765016325653411176793360369936717419769800230210132361212915080876712342032041577564818627429042085905966053730387752052225628693972607784430950899218542682911565564662896452520604680359338868800442669750954518594876691082447644740527932976670628332167955854789205946092605314385848739463353600798904223274928097535266122131914769244220756512061191417222588124468291909135619398844189572230644817665992327980519597392421413136288437840982344274473149744382341728089280244972672128259558565364947130090760848513219476804621191889302344696042210193301032633565318601988208533149269593998200073832458432672864066134039460415961066320542211943834390947418353744142704324311192745357412596685017912951835300720548226169548056752676004795008485366105657936786466140288094814313988554660783974275990667246658662087091997739069325625050675279429429228115658495979580247103254822461008854621726931609183927056900783424755669034636230413696837536304432755336711351766457113544007428832745931226269400163920441505118291869217635811931900908665508213278957919720697494424110207351260785865219383158256046449642656115558382341878135586070150164725763460069988769214783081163377540639722115356790303727843285570625341525591750240114221795600172606999260929927390024944695754245925047212992532540953954574568537780754282001164346216254036652893671788179221640322306181023819966942947283279228059735989654433651668066008425056897787435124104904121950435646223613120452018872311173488375605529302588929519979125847156969664215682244014387924371490494444485403129026933332269433046565298649741447792703205402489858225765935058106498709776422466752103825084980941395767611104838738421623486430847951696852391278611418168221249903748857673804306489709620596325943590320739289326867657518724292794466472703775040337842868877190321950854170373082072747466055158817440074076298644664504281191646715984842656014198422143288942387650182665002256603241560620588035330705571851026479895128394788258309688976984091679482055578026605733231774107651208497127808437116052770431623248446984412986624260857885335270056107968079674729012801667592138421241415227900954777620070604592702749873444625411380402574528226206130098803554233105617781973023750892239257076428570978845557272795806826890597663385515841621333396120646835767983407005392024778585047339415175885061748725295937448809099515015274718578015014312910830083625618208998843997708034943490352803007450364071193675143847138665138087787220099788244123638272257617164637331303237179074586197538687808359794713477660509597929653420516885831841259954539597144217066942300714089720256167156683028452432818069663817256043150410297520092108062489606275765168941303276406218061860146978350498015777866572023963842926990855772075344748436531191853736794105816314049347108570738374639883633263478721777584378670973006495083421384271007851260072638223375902788412262793198537348881256413613981733815913126205052382113890783535049838831863554033999310794811634419722273700799203413183671151716725804886148184832431043318026183904131867379117880983138828248880552772827690372582479234409756070752756872434326869987614518320585544843707771203014453012255092326886876503484379719748822383580491499158707895629964656953620297984435266916267015429738098922442603826068872261539656574516374882037786485821823876993590670124527322715820887073886235470107948151843331728491398572709662780918080606911170607288240251784267917755643502582304104364925913131853870079398102050340410757897077276150558674423860437046416255132962413375874935933493652616774919140076931630105354402989243579121821008697548441429700363085372469765438007728088635681642662003288228360593918204510065500814643119540703741448377645476918387584215081707875136521164834812510853271723228151664557694684488128580228507312394785412993364972179268068412790607625567627130022447363843507268355609989356602837320772877567024800179646226905292212126995463771865245086973673262439469496751341928133841965104742692476399250191885867560691305438826333578791868835348073825367640973104779574036915549049946014658413366254095660569488807231901909523852596415381491507406058545544429269147654046843030786727087333419170362510581437756031935418737254413888948179395567433951383475435305357236229249884788403166166765469114150134499260352683508933659366693075798052524389677838506918219909480820359900752851465702740264964166939065954941419219327948834901168766433615290032904933670501491334307785035913095815188431410761077369412682878984313057836340310084025547579398366265190570800401757444110491116562892448320844461398317048123455432413499471635076189104666168973042153000537569047230731168147514781259297062760848186226609511935388767445180885343479123438803418886286681058747683928667197659662783685043189261044623281697148471652385947476985910336881757493367537569100705913834186398948998224992211064481525849018220741080195396614636224128743309015237017601192660548556995651936543401035792846932949109415300250287654701948318740856176722878263532420865456173863689419059689640596030373715746474694855589140536744791090792228226926296863865758770204643875986480528068129402803038868088560890173499777798638778902718342512150371085016687746091707992121877857537137822322628858629999535586707186532904836784561373056136260336376958042138393996228607368233136393796727374080420634326648068849757259599586300085659948858007014001834573717277382947893606817954728516021839576888361738251504854626532997613856644990048454932190908363438769778188510644650700284668199626971010803174904746026724830983240282221185501347293945860746269779572572812258988894587456216565488121940464261585888570519627186031630668476224552943762910394676558435766265967740909761612411382711113149719311227752627163170811067277287129236945614778493651944370947779949557990921945617091454933230512538049274185281160117698134222779987755026962464756649346448664853166646083168073182759913740228010546827885052224206833083688124837236799723025391063540559754707051335982136440621760775689724111538983600664604633057833091869267152401127391279056210336045764946091555951106609842581869660816241622235671178148604075635144878169638215432255284465379219343572430320156684471329905546411889639471008451436340500128519429600306304971562717881551187762096330519795853930134313406898713117940028300846162557643540359799732723720815627661409282741224217871332321943307346320111916070676142727821256714344698102156191124953188465941809178091919933471415762468929149021268118247572909451268860438773096752845531217476033993134543180563675111746832815054068249762196781916959777236346220844467237706036624596646164519441293430988152628737953297696061741906299458087168408511791452546544900956547456323687859238951534799270008937903100864000943266551291952044488714029239328601191699627464572093851351316436484085358807421870095431308764748678701023601007178244587614782906602319534522969874334455851522741708704760286053228073229249830139205710411718031248687597510164942758452612693072740240702346201332446264513172174637320496029643437379015406823314150097651034025481320241370623025623907396304801859313110535251212529536211896830618081619675345174800524479248730766335682421734762045078402350225742186709994994266462761614396844162921050544916287147918124321648153037997579322277959371607605112095925274482112386637946466505855670000814410448032967218606900434100136324701878802618415901136685834446998507063539358129383020315659241640012402918713949282260119580864212636064508627007153850336464087233814460482786075490139217064814245244368825817167874587821165775853959510022721531084538528560813835192434402133701101013913925946239165861699102076601465219479019857221251854323010457037106462050107144968948774253073980459908495307794640507364335126218732781051958167084573519335499065683321573074235178164279136479360412796926021441324350733728920424668534749953459833281739864325805476643018082458095071881706657520330111286052287827673513501854040362973300782967027130249391109847524391861221495699760791452268847021246367030662329689375972861679471116752976754783985730123085940649182685049201691263979400320034763499697267649748296760352105193969808066899610885941757132990043527367786392074083961386342007944651308305547556804691901612616007433817253005548708912627513029797461671769196523523418055777188470613987957724605979091160792660815845632632573707859255557068716533429236713129856581537025109113628209771962219626964353726280073715349586648967741016952743601914019561641991539105531019198243768105825854257305206037419183547327891618737080755296003410067287510398926608617024910704010987231844375858736789523930806500599720955563832990737885461669507560167727411286762879177911869106686611239603785755981853251168415128241524279093595923042267310286762810374218801229932983958567554545247704175200240447134114712945232478652916465398906713717334043932098794186559261639620488452403373349090919488946114915230392002441511155807380176077439810601257005124531031638490089318467460179427783739789031814899739679245982398557336633805510703537676256105634266719294422362041906529445276025497588608726595932272332423004457612814703833808901130845745967913226687653049766252153985652002291872793094293542852760443955892459382462327291767438197140338751838433499673489277259264930987285102959204280773612047719116343696688913755914153825619190894312527091913307362850844500458314696964117241844034929328751752424991034502863298819762011233260463627994808040271425366499494980727923483573471089088842076248277448550007812809485679176488692749468850491906167774679540132479784766977863629296434869170294191272080395447269113705615704344777649441032340706276492112984213549079596762652631437936938177859188448081339551325262130569392568216907935906574523426522963362084045143960781842486536287253911066420427597332073294333393534392720429341649294797098760456348598816684126905195818384543893308630760035377201659035684007011257813686257181320859859778736217322177612981698426964695269265210589589449726246264808147379720791643951994640366776691061354036292552082590289044397950007467332352244026546284306276339586854216434302176658057570326342874214650360049144368464222046406201481665099118750213840938456539041439814483660588930177881056563136145084133026756519363640207562294378846758786629287798609693764122140687037656218906437448426680051675673326176638385922165858099727093507267615430136718771982124451735944932541434828436170112770530473244430082057272040163026512656323746097735925205598825403745068628945951253159790935657075147396163734801173782559850670864815406172380118462338699182298790677796263368081690118564926291005408055812005583416930755988717238511854613259841575307404057138761437129201495564418749115865665303097145651313204064613100946764459824002351215419152810583495336858228718593741264736639484764553905769814283671824349467203487658226596643303306881268140867941249773244027028003127383740907762784854820508170650978007983048855940354614206812448698862215525755912209758309770190862544892018632524891850970482497084263558040455959146589685908834377570189145915387728610832433497525171330339621917497218773924779733278910141012552683574286524051943960860918777756854798686754686802978998271934595252332741019394952083426419671910454310319046074594641332195604241163930756543519533984162399339197217639335405753476175148724260862087899801454059828311768305524181163672977493527549744719928677354091923108393013937566441735735567647455008511549876639285153480011767145820312568143263764023313451974868381959812228602499380310800586850356006608165498517235375067442122466711159527322265812458680989030136816575817088078469692210016540455998059272720163166999949130619907728418849577883419367953229077878435388256548023904705048842954889009017177176867322122897560264301955570649112177739458923066053727931388556210449901056802816241217731379938267866319455223860730131333232266119465395521287646681289134780715329335758715454491856874707290960153115927521893578110710437918579644841033032195521860036171836550694302064952453816853185735442942222634997780018621085093040211699870805263568210043105075521946937292867988615669246026411730591827902765968147754639891444988398230644239004935755070256923565803706856895594352166889692128718998941415885049992431016762548876274409635828509708234873057209777884157745660414046131669743924975082764986135891817843095742678964875985808830095104591237028015525707598854825691948872812570316468991572636811768561796239885332821144631596025729676274661573376040063356425817648175346753300778550635172928842346693787830581115258980017942964597691839851178984649746287135158845570552675903567490864619983272322109510092651828355904893220420413808604183536321949198753985993364761701200432367662100015660007834687706026072423500705019981761855505301003154850994106360101370663922659922215748891486773709293514643075625619122452251729670487598225034959413633834023096675313415255480141176532052924722505258515021613693185170528297600622503277876186656518233743981826084073992916988646391605745263629530484433976882348912023804282124183156992546199402838447370249085282985780308146278479221583061334061244699496905735032504160844592543794337702729470764812963783863113897743109720815865132188582748924164902718954796235380092092670206794992011220971086286499382486411047236520089627457444489955213475770452133233135320398560034399089330388927403630442782257488291952921729571053090252475722104002492671545808794791036087617808973969482292361286874784264447299321469414685437311397634333435024323616852643356149678017708723111452671347548646777868475164915448241077644857491042041508003913783309004947123070090798154290544933875393815694606500713387516277203545856413774018953342751834589245363258886943901408551507665671227871753181806316488509681296104260266911261749113249625142512427511410907971585430137078875027626399140854839514837811871325667594618724305924031812216610068136625218407626441051693206254333075188421317268814525946646053216419403464690842870789029972352669990323698418318331261546023066010182988299910264577103744951450711973165781377969764714645921239694014390694533385474738777138532882953699443392166063300833109640508330525783540036440193244774637870467497353188437819854366679933293436713434676246312104106538856076058470669517180888738321625203935973891505434699975426060373006468486619140482067460430107088303961419630985536960355227034926174327590520020085910049286656394461580849341454657809935417063045588960422297221300122503342239376801894966237657423622188888972316794515219429166475924651009756289941985863912324327988364857742750275220184836960967375745402200796904821682538584809615445449634253020085037961589961609841367724024092767970446926550483317845642311496590040133052940136018915921261496158448527575521794886265984098918778623043914918560651763930317046138212134905116110981665256001143144292963437085445048241820493428326045841206892211205023443682118841991130766605145798484754461444075771211065006086666923427385858466547631699491909450673159228721426432198821544118024746655417375763395295546682438991446512566797234281804150126044290836532641355024374335748901388186324802037513149396824706206988464518903850290023738460821063227526708837190195044722862474334469124295729621278821103598794477105245838751037254959394347364155648773020477096475200404392846675671765224821847478657238049847424028932522316996968477977245871189477507966074806908903104305206705003199232111914684536475137168226178208574651131852823408204720834928219473630938498245205554687314704916446316905095590159129488677569590710810076666426333664591821712089051391162532236267036024893316017366103780391525174819368079643517445909680437500993862071403839428730683776061922295087778270474585065709462870760330058668595419458867435885022111751750027115778952958961278947935839909327165553938437961286533114663040441204528942049002377772419708989183204720824600069993690160410975981095364358516282242517358670852758227088603928781476034081297781882633171187674151766340416349016366516303047118191881274226104678386448217438708402169938257120707485356343901516935244349800134968027911666486206273730852604740400575601961284570851223859717664264233458568939377776198920157462441840463699521751994923168554538354008846480635709135160284956841725431662110072559977292194695223013267705409619678403564614590555327579596813435913462371101455210428256603436026120036500301724991182254670497399721684674301257503882896398233726699718429447124635062435115143320575279413573854731803926433036837536073296452424811295359699685177933970530527152323473858196344777491471724880333613656925107796162626083209872222342307732357066902389833195307366756227762000101364404317888632802207995785219883281951534454757122648972506661625543188296698252033177956064899994111998859031814941158438897248540293468256646258017806566573181665605447047370956135462557319067490982952328663718701100329572545297526755039997599080698464713219692811690566336802671294389806925368966646918023505826375234265880463553598666853764375523767608765143935974820735784717538220906783946616337761594058969311864255501554530870558463222716436992647716722586856226979221855030596445612863732876432385930878457999310024911892893946664978541781291650798416299844918965498942107882788865991874026228160964461460165491281744472902784649065359479485943048016422955117879046936000575740387023489541619499302478405796797703867404065624873316692537417846043441408475274008542359070051955868978351361306435521818106130421466529423986352489817220815268640747454634935397658626055385943946770632913799428073346443034400481370066280708149690520929634327367160805571820053070737845888116337635740714415154475771990124945549847665961622756992690675218681214368744358523196371415074419316023744452253913568488369246912787151612298980148696646388877289934965096653639395444485299982340295923656186910404301773814864593079181436442280092498661673833214317055996172680840440072681112929409675721710514961936647960987105145370541465259558381335862648159663753326413374861257995255685227413511527502838136411079802959096407630968613580961565374801228502017153067208997602191510367564128247187723777810775288023331390645450696250763363065523328517755227768739402332691388553887284339034213801357162881419160186345987289385920939214908149163309361866700388317659160280716230150338889514018336905090222515103267085848649263697120120446413407317310552030238112487440915294829789351107673626369213974574420731903606689278936442804056820683872541039204399812738244348191352799744819709943544832184303152386454809134238648354186194833233522743837892593801708988716210341389081522614192947034784188733411652044522860048953881555461942658772060724158136918428656536310731122943152030841149368042933303340274278795569013871992073327224858846817599158599325711461222310138957843134591927986560610258107986188363678685588801853483234175236724577192173155350360693165777409800185534418336997834148950631496912319012165148710531997693360190472238393520532442727638703945768961322031746189873275070039284071508267642454073525956879446252681935579883542652573968271115284435926189284882980704405380109402353527649887227917157460623244794788801747309814106145808632823950984014156956436874390614817547171406600053075352663188312421111452390972349976383294083296985097313673575781949431552787203814039297514334239947636221412971343792198857412615793944820157634312410529221036930342300964375918388407984517311457757709503396382081942615632136459002562291929663788651297758185201368224462485966779162269054930460965527263774581055468553096732148741236106024750344559168102710987241335928310693961509465162752110226974357764392455821640831482334151592527138176631404287537653876218082150705199085366991522118730812717784829169304541437245066666189566428647209268174245708829944971946184413137697637808464252545980142720184700512860132121460116134045528551947737975032120776458061399031486508434851911524921485478008779469372270605547589227818719341683740759281058644213497154264033668119334345949004162133531722476885683367714328295021700007154892830551819259619464957319287188395277312500614569839228607115511257277565299244568845951868989880726140943348724365474460303873480378821634460509292307131266097806290499740786477936886452544625861706183385528969175219280511507020222439118703316617752469262171378088316783874137305151824932909066486339715327813981702758844384453997198430121167817022549507159728437205593453788585944700162499724616536377321364589485134196384582651362644557413973113302708311498382506027813942166011904689517116345594814282192377581873964851348300712769064792268924673870294913966563481091971882758397350523042264762655924915408423223358489518986438731631447403554859100465633992016352472210398172148187096064107967067888384997339726588512048728222882832582426851915318511730230397679109602552834738005093875659847775999171514042729907780284231437190483299621900570960707546783809506566661280410993353234869155091098027457153239543373716162669207216677485902060623535612296652019270184943891825675982468628168509272365206621511194392079221132905073756040020276810368382233053024504015465230199373300160527800156889185031002583920050303676537990189406060459101331904633959939002220127550675860310132023268506646357915150793314900816400530476074042348743791127098079309633933440896664610174504043796479278874810452349200832414464077513829794430580355277336349285047508010942427532995130185659224139454365767454025214309845118914773320529616991784700107198691128520097054831302145952769906193732355930284759346282404896150586834576366099805459285047557780535946348057349816729345920808772316170702572952642063356732538931796799455419304571682540566271556378472381440801161591943824570993328426376016042498342948891553027500238217618560632099448374896650486811668358344373619878960369063209320620675327748997811489837271790577395352618125107246985305250519493456268789088737787710779173696273836636413756455759316277899372000435189298589110633221118326995595121299150148192504090472258487290104350234252766493595521188649574029426722048563689785037332870075811442707400876606032772796085751242052874596610579926869488972384018952897368921492896020107617779247951333510311506436452622183292940219121962812138748401449677449083129805108110160806457596816983294346191183523776702813664270008545516634719105976141519251901713198792659662424806438546627188792005448160759107328907052320538741660252945857431497292694447262908565807616915986682943385858850727501115338677823947203995950815937605415382591516533595713349539679122405890356392435162850478574730755599795401374048565669144716537586678091965103220556452384287061428444782211859064326266940239259142438463484891273554676279329070314654178131295340554224392735566519609781454448406409602271048267370866986723448724681418400912531612496582842179285784396725196257789153861384797370031882822723333974796685208744001546008863926561157108058497735349239030814565585698116228836549594317140014215972510173721306362514787969464174822473433819550322437456778417589983257633562121123500711484072381737937522947585463846327910896565301681596874123657140784611935672096236701125983060226058605420753894898632317583452736471344249014006395162740683928426132164337318081415622446862204644660768924792041973525289880678616003219027565396912144658370163993194448369962032008186084878471492332357885165508392877333079002168928472691070096107827869757457004864799422164614431573781159518645320188237632916306404188526882213153178673824193539039376568811598273396560650023324165610493781792788632551888774961959789919092856732566918450247799586748612755727634248208938490768998123058199415068073259432673319850788221299695338151066249489301299614268496077877661832084993480830262812726556189395019690381551623998763616647279419498629577201113645664540053952998872192666081499398418949106329096460729705084926204862478040069085267328039704224623512085029083336811698305927803268405543320216165260707902002223125115352121416963717892080746577676342668632946189221087929279750683842187073918693489188498435844754170185524870025243298714021538951212839684891485925880597158310169320792156989758329355483181233346452601392397102199028801359216873612324672220543923552655786326458382573844070398888596908212740143587762621699184871934297080217256845300006856396333480860843318352500897699665561012651659014160225319339820829324223238332393680219798469148140666672563569062925866572247404854992147101874047484387814260599657767628319288813610477266892599024114513762881047212315363051164865128859736571688433825104241882641957615120244727877410771836161280228424379000939548436701427648828346330526650390374298667707526114601081069683373251564171009428565852847870589476524212078343035444117953298573150341341217795600854831885994393539504455617123101530472242788928188076077800783918593535330367986073058442712068796652306841670352124008550606306138920153305421826281724384777928950426157260316849273066774579149281069867833103050223151551732975065354789747564036364030020860703532350059130696196013197018448566617496902444735566992833953223222556288832829445350066943199887737486391592080886798300991774558836660400091815668747236038783309161551014001286440261270029094174682302423778798281269166913425849314105300067853590029941049640326808374452984313435884623023159107292709820032775786955606259117098531055515904953217845030187893007305794062131351558627954323468879888058197718514004083213580909006390568584539337112525869596535563467912935689262579489404460308453983895586783271093430697388712553989522477628858569307268512708494157608996703939613699292145289736368303405279920339890132383705723219817572857655095337584695841380802453242592384560480362802008839126487851976633578046516738866735794030419757908164705978501063820324175355354967040151217403587198875566659481592464204801452195481549941798420577749009190340750545652376968225264590609142719967426501461370689989739142237383801951486252894817149814875284263681645007499374669536868479529831426733478632157753261529528626711653209580143061113456137664585095571269833714116685989544668081515164600895899603862451034387563259081962301872607285530002339363176229903077849740557584835824423357757888199198001012917109356432039640523040396967747186307556748913820617423608466973753687994849340089386806602872663316562110489747859697031139439711354217060409045900467440307627814511306540244018702079926763641355560720112395726004708874705621403853963685095288777023988538003113232537440962795422190041227314405608808716278511694828419218572840807129762354994470425013060689800636422723735373462253963046190697167698009732412999968394074495742705584734445048055029815102628096272290930498234003015081894034815793234404052470462967421834141050124424872263670749265902205969024290047185949035635654249023056617628429599835332121657210831918065588109372731581362916301095947253002053739220155910750565455856567824630979747128556225955003680735042458954768013558921167783351720037399670217161450526735122569929150707505164892699223641780659406312180639706867510578769820552284539558069360217075718755267813717285269486330435615388818157991535054427026103315905865934099324206231283204511942563811141849643901485273238201253644006875740488318093247243142636144880392920971145168624630158958685559768384794717569877093477330423448798724186092295873035126079223752907504742094583541064474112482436994044839370608943065906445931821258142759408527781855610959885908582010544943277458284688285331689261964129760654879988279851379998842053798218472194824186500067468257248911848864244467802942014805405494284153652674763644382273328937789186552848896036254966714176638751877724757875756257577627803085465475139762481260952906482028799029477975503712634854171150681772147981990245140719687145148831174814311757673213294884276549162126722864848410530401478410061801999032086916506783031659453300319288401963155995745820928479212734487341443427559475280077038877612609923696098262776945564323200614892789521575702373513785568057204118984782065944799432685033772368726514249819739074354769159706750675162533479475125421001430598353628652118339418803050517153756890760999645767367922490412376976295952978407373114497717656692647896659832721905924391167967691784270682783348010910414459186351164879640322506976026466308165107454970871171550776503411873005102914595764209332495362899670204473255612409237494647787117343760932266132645399471036348177714784360465841396703043619593556557434613619830414272057335644583358382102732081111725885371582001706536484860994398971719405118223497795946004647429827083413693986747840712845851687890249981425262924844514647360468311206182164395671505245424752925211293756689095301761107709882705138673203080937703668502994527102922521090877389955214755672466186843191254675839471438242345210545300847262453156953257179982067476472809234558569050158308017156873596598347719790518032931523098417568790147806147742808673648862981281900710988890592823838877243831646290572253908935654262884436134140386415490683885709901608656497003896207382682447451351463763794377609531986630804811756116014910563690094401340316409489071493451952364841243447723390721521061178872605846562280905914308827731107022348488870993149164015661239655321098625001980050433230293793996573926106969509904065622199774258624921705384458375699918266054456340773210585235325514549081303590557738590412101002198761148236218983609669286750661088278682198758331914295083643406397592505207429528241342438877344355948462300437185702056039887665397032835766908811748207115234848660844198690343485142477018435487836343051686875711219952499836609120596591498892747895769117848399818849490312875629763224383761903330644031165305255079550263956559214976037697732159855995019786649895739253261036087520358887619778345107426993963077471363638561389962261610267578676925089617384146242246117407353084407102801507255189522432617489191607387651240281422656744346687318392436268173423850066699938556724705273200436416106305306932983469468415010225730287078777209708299267544254263752046744306655494273143652381410672090481354531286549849149076417814193277381515316874017816149408571202025929004925681087086652970706016428897870210094277070392099318658733246775717860070539403440675619807000104392225081601908709418202143568520267125833679059814971985836355320582299255311539584724925054057221223988722814908971087457064067421417272008837075861209484797669389028258434115784098245714548308111765278890350158743837541760184166317281157539959960728208159322728173048014621230979614800965288201509485286313164283533906247643977560203043378943290633339692337060826637121672081214469660667029372890380821569769950552786177954619467109701224133456492116615245628579246645218887954221283649997677625031433679573757320953568633233106997917403252134369349127188143412092150553815239463037400799849194523912063916783278873329617508571224538717065427601680803307065422731373062724328209349493866640519881389169212769122346005095859994302919784464356739336086806397194240314046184685293951393556319098414309019491398795101151211679444039436166928364196119318898397222381438567332781726437781246224115921840900570782670380332027922305193539283375390979951813653652798914532355672817553548029683010110262673474463475747344682668141541658564402613951494511617923571107138875385927733501921774012317935098586624661338354287039132003528644232234103779167451743555193639001687063559807157318689986559449102265612208407461398860473231484474803296099408330382223875728362325700188253736210722877715947514986935345679046161734788390652107087292496954092513645938833229905788083322032599006264115588295695532860946755666732306557978329845389871334846360255137890557814930329041129816974268769300766483070441755275779183404852297120167953930632718214517407063943593172079068537800576401228633535221725669216487680536752084384464456064053866671165393827647612488850717537754063149948878384516587683680369473667229977943493852396333783505468386900545230499398454032100326347486634199187847963095606806533194054710782389494697489383879962115978813775461202956826446405249695865033646870375651977572062163264220245308353507786364073137579738624654970913760236653660657025945253441685985353989997245283892527650230286752874839480298417951059563014107227622789260232679675254298956869999724314841464927952146036089217871187050253938552557223787077215116351494880864930960947046109530319573585642388509679441345349641833689682484294865391986782025918514013569014866476786488231004316797880695078231902101704732640347125172079439790069603671711778207802072180947639094986951166323354505357961847793525777801796266149247715402723896327252343407157812382482193935129176278500333707975548025125897676340332301881726597675931479829083510210188091309517851512901194989794182875304507185032746873303040585741759569697796499437079635083656673312351045546400431149195273404238918818257355323439281874611967880239892202759732259584421266665587676673165845361337946829108302636977958791774918566439957356399112281748313578792416940577097925403824268374052518235767463265844603636986220814141349829806479935136264966155434722866918149500066620147908301162727181694192820999076769807130453865230185950014130776565596136729931397379924109944302524060976581406808890785958357572444336487145488263695764968946810559975856854134393739331725791588230465469019641213464234940845043935194403757802968644778023339745011040746873229800929075210058135345423851841416562693405251079503459848658348871808191107013787249167129591384442213966926907575687401435881871580051594563372100823691088054052026787649807988041897389186460241803687129242729866857695231652677889819459823272611338834187878603339462017958637111253617851174539067825873742236942832437263580905602975387150160322512925428926353105469651341152139901206133031731380584913140276889483814987092477630015892983113400487043590926827406159991170439640596710361077791210780276736097643791712235267398620808211517528744961663275678073792156304344213320682552222438973567303723885091876368164952232425471571209284799121624099282778793039154107610629153452186324951377526385685325328175196869162043151675248747596485799334238032432513490840282312930305720932605530397169744328401078538366155867431284347812562089140962702565224614510239613793197151135622324065736751357364299167315678264100625728075269554717073915733908371248135685750317830757146056587238697503982178754017356183924603133190354476146324773400060192601230541162210004302942807833792924915705331138422168720907424133953047701246486613072466437707091016116593185122196980371093703158469218115247313974814127228683695344546123853562099550196718624580807616949269331061560320268695510713384650280498971537591528410158329827697436602585184081091879652242671451629521536283160965787217890025286616039259412230547932005949300911199160863146461620134331630308864659594133184262073628558011536004701491326632809458184495043326269659687759350340219299551836464860774812406212660783919363812876193883936763580255648330791955153912780391380727484379676157850034049514185091879735671584686600527992547294660141378783787173108264007032426097894815524652678688337156314794517080362863636907582422316336777983376926554976133271265256945107940893640484672468089710777760061271931255086046377304911435564624086612281357856087014820593018486818821320308352543799608732807247117668637298473410202350146307090942567257428159395391452656825844274894035733289370686798018990068598826343127974493673942744599485421739871100584622670823794379403303989466881568023285702770338263959100672972012502320059374212600902029224000398061339195693137321813472476075642578016079585986603387490679731315655994647327608161121672808895718199947318616159688513111458900107162770152719709627405750797188749563265893361057937410181288481098411963986029685020852267457609188220975713645656310426170484896425058119634092256214324484035616530275114415692159687837367670771177856980132453902408053819328455487066725429035785947067585857519134183945057171426389674232253809700591680520896522040277564955603303512640267171635393898657017054048519298264378723354838752746576904410810153827862423669881310686856625704851897393422095116030741396556518070246381809420391710721441454791063502961558957700275518789903855512767289510464173917387104583027875572086199718671381798214844875442877585440601536915920375816573002599621333430081311347778562706244133135429469826379169909623203700248275611841625749777711319758547796807051022134075393276571576070069954183096209534440440966857915966692023111307989172233467873423757264335241488411498045957479481518265431703229102321424789641369048899957051335902427127921018123054451597219486097200970103100973999852382393311141978320370541256739720762168452060671496500973611307353584250656465441079729278448336767636185524060805596652175477094775006006195559490490493912395661692754943807454247212361381093805779690291961973490873460419001860761185441536940648120310750457893757722172671113771513974839746736722813328350245472798916008681457367512508612012858350556726264697817265084478505990707010388372678370475936528949680459472328476025633349824997450224399146154414390541757647161475759425911971286576223548336877796621137642836155747145827722934905104638795468594839904320922787073891433479005014633138768760282863209320564082340432912363471563124707253514089675575780700499662393252063575942787710878884246587744102028696932353486647581672628530866524820041726661803472960122996023638697795869277432195002632893072458564332696938059855192525592226490760623155583712312556466824038944272231589483381955217621579602646490831196567353469033904411555935920509529472099656027260192794547321749162321908462573792761797851085674852599472505163655402466249039417685654559941320426544210802150208149171104920045188046601701357165324845256833423833298181795242222099887456452458066094902378884680955760244484076410940675539933239390300675495815829043007699538584182628328820278863826713612494105132585708024005060769273688712877626992207673118561149138792094075798770448408713497401758105142669326766216184344305271891125563559320878548934352792652778757425325253738893232686086492976572008586678931101331548501418047997105616652610769566868472409127303773061851243883108919854768906988434699327441454978302773507978733090227110317604302901608744864031705899989711280157626053029569933151821746924757471550835746780787380378058050956087897586843128235157487209259687144356444972868931263870344775420218393935095151126870789904503936554226864811111708863475699716456164546530155823853171957517650049489932657139936612361021218470524945514000423628584552058911965506605404099193519294368733342898605457175860964221798229385090090831218264102147321658910075561488282153123177366002992993204934952345582744221003286668606675327271651477250748252630553640395851610551130627469133946468460704293607948965654555190507207969267267988474490623867778980557509017900903512895310081587995771237759107195851795976825282761138868088846868185890361021143888830471087963906269562614948684940735234236349581732028786551709991277243623124417645472242802729967308731032958064211685599765164010140975361469427981086485584549375384521035692601206894317484741657360290372781806005316204046142598425750098999335632486405824917096110315010060388232551710333309155973811613878735380182600707671422609413617875609834637594157148614060840327463005421890750576482120719592238559758593982099567228930850088727343468407930179835276081297438674709664361762069653932041927979531436517284873306051930794996251033252105859523085516890825937427825703165846294995060353163671680808266915179419969387569255446764642538495633271225591203858913370650968914120480253746702357926566065408391235326483965954342436211629912503870282726376776454175356706840155544083978198688169354768049879746187932240917310353641354261667290053066927074204326249390120070965440804371084219541949714730296252696993266772276939175546505420745430149549019403589190837239915092834753079509203187180331739104276428081408401463385538030682654462943309161893319331369695491107859619476897806007319701509809896276536436610422091698303721396590443397059045069425401366065650075737666035686639469322965285230839844643388707241381360840819711572415019733564981779026303574450086085836492094028819058477540892567596208968595738389794557431284725496742215540925501413393504243561154367833023036332958477347288562619243837675871617555478115335261108910590653680079074448556954753314524731025597134784690920263425643579015539635665950489676486527749005753980212997617257581179367163677767808781693491342631550362752350461877109203879565627674126437989493730373398293910521984484008014803190916466259943493177994152553411926522262397759718758477799532163317643246516422053670830374506879302709375793742716339653036294152845730097133486853418105190254799380200592467837472011678789342421473862164120070471557001486973041767226650688856220775899731753990338001330256246711185344958756578252519313347226096709673285887406071326692882286962519056546559102044049272711027569510359647511815065146767121721787696550289058258210030543452153878765537923745471226768879420353631141263093059731133760664201086382695199831708313598919900833534264683916344219248250523472456848746873146361256434350241991570890932775776399570698053177760319312157903664022177439088015984304851822949085853972827270541406925659339194640347587351561344262080896735518215628171366705579806611092520005312641210116542840473381215521802932552314740795334430100444057984414529186111705581015760352861640833251253526169335230566636778718675079337736387643291149602024725135975553215395604607623356374299601181597949164491870049331770568727813627849585863714146426049367790978858238421567823934901658303269152772953785799812316993488666090893955553313885512082658529688670254863731426362647070604680653372356129143480646580104285342135715294866833387386155037224848758124850493913954597211514702112041163306100824097920238638695424851106864978982457089933975167377373234098389605155198704166029086435726752706637625686457157394213729568782273165658093748453371845920008985812067718183747944773763065900708110040471395653684884396270479220162038100206615587474721298355248357669879177112265790852315290648847724198568592315501747667415498722719482242673086875209259784671127241919132144800964720624086627322987388969035264795374218663666647089461031146349947542083403225830579906908331365905581462547194401598132579483056187396501863634014759799608588099305069300085349777174654825110810216750989874267000852454416404671022334012098805786444185309593070826230488476631588097362233074281326462012313750391010521428965995925739753277328601183318339626639008438236019765946904047501515956817667593038019617388444125295318513429459508208707271488618922995025286932945429740082716374746036007420123153951421502073353802374720932639311288107467494648371246501516753177137571849862028266814851398743810414668223701647071300911690528689136651594741422094167488614163858779193366965786496930626113116579518263499195843237961122556148347938402805623905260908862106542936930500898532751874109780768506879652735675630919329063796998539422753915408214786285187507956808439759682998015359521754304855951224822958032282001044904684192715003436078933744906235758025574979663381044073091345056399326785585450081135827161882456660076921737682166698369850364962740970797079559319529797803782990467149950142647351366178688390448676327988393706400956099254137317654494138079057735417825510882863837238193598039691608233635062437030358137927494627550542627936222494157388758386701062205109374378308434221156421702800597288673552266938191009330800181730700640573827331879414327073297528969883187197501536346405451459143899811773489011475077213021732609648825783676774022041271070955001883366677048174340669617045127363971228393341004573219056921462931027913023191376887489357731954539643271915784394447669481249476582294933503874410163265423519393524715451976650042077247803374625766326319433356591075584551297302409216971726604039834542568484195991840820398231062428119001387177427565984235490173274217195025317608995673230734007532169840481393720060713093001905351322246059016785791625487840480759166881677602760517195119188061780121527580654638030720319162819173628455081199976025417280273310680780061569569260819755178092996684748208321087686841365863097504725918430077500404256450992593695359943424418465016031552909257963459170823261565589960675240787669651001394973919404979656995444798024377973610815991357858520230638575512490906616662335530989393372606261621952128536929431565347621993298083264467860183563108177845363742477945062717570839637786295583298828947009360071562857810407559428795106279673742558646254505752265933466366204597241731164583773261367405607726585057395763020297078944658997953034051320271841084441512159139676625836182409220242805291326876804134570054919120779032826799571026669788237355569965405772019954364352849062721843167494452001218050644353589062605070565833772427418195973971439208252494501881440391756697065451648129593772971451512609822101951457992286442222785368952012601597909998216580242541920298293567651161437662078917838380612890722928700972772492813366333345112501556184697207745728450576734169145307298657306087864116503983288712232714867935293789443610955545552290929816348053593900721120642135225671534154227974937646414444214001613108364418809373985469813262730258693983359274368832536420575243656425315174233678628916193304246630647177799708374412802465703695398117679430258842235475466664348070860685378713585671565190480287612103210277049253007537793354442815007073474325453080137513794468047792215788851806511077813507120923495031625178053527459369400925907328630876262444372530215916445386163987799503918524390290792616434569209869948379231676362934132038577956667768173949628944953419468912128717939777262511789288229551296395796266681138521654956636730068544223184687147761272030700718586171253871162420815009638813258773367901377817127986201127128489409575430815785055216507212875893517757856356430506492275378061620162008592897417222810435471961892803732952659019905027096739646192102004688752859472857781559831432295547298186871872522287778582814708197849796829347234419309346922649681727167225415346075013854534394408319557559793677445029712843494835366725147805714665472523172218762366796309278541570442099165808461238058710089755396299821464578963155094425407461853888452474727656075696534931102818469152511186638147386246559400603115741914934093833125580799601265016772363746416214498058278240975129957869885793319054263003830918526673105416521737974192843126857256280879165692399112170697666611654513032447395920564474842469772027650024586904971648946510238670271131737605403114213441815479188831074034891823752573662510562219345804037607558539902021477418850984186077595499241463855477627603550729340046770538108997804278718451281331993951539223042887207967890540404720493624495281555622494232276214166781967906206831097915936555103483805136820039972861603431332711856763889090366801075226088978224464169171700970092920158806379972157276050803789317023735944828495279174034047885053507353784826517747701605138603201068259448223783293741816678953361793441120599277304852684158423368419360177027267674874564840168804397889238241549171972163988884493960434885764584208065843441736529927835443041498789258771127132122054662068662275787953003157651995336437127607413522710555010639018418901844800059563278194880043378032969589151991569460595054136303949402991150166814709355223734968970102283775677050747834894807346980438575338158605880244527363670630720050170521370030058900388278979238205581335482316696455154605271559247618435577505073232520304197433899079023786014418258945041571182991926466459948494592137970140215751105043928496173430359519255692383791453216735271764046890258329532393552546357462675384042911063671958136301354615418432440427320899926769689471304124777732479511759165518727581699226256205970418613974515904566734373226372739118165815841860127992325767068590465592063616173417562190734993010855403581227401612843118557954001133000298086035950669058226761845461074225286214753037050227724175429499948331941194222934004582871448096820624790288186114037905784390861408677930403922234466444891044364576510972939506239967160378345361251734228412525317076947932617270299878539150307790808967592070810290334164566823208678147382450748224386811966151380238572974328288700456937587376265451260397081491259685523206943231284292275053333472823508060751128573868888605781386857477746862604166006315589295218354073018818083933865351486039042343170735896702012860445193996921331549187386313758068693870208918042924281936382285511794664619557514053686320323795619348735758010428583588070575228146209643428724208778501801679522019313512741838067459759203259179551653547652008955367122943277071895368608531130483999668688930521570732074060031306008257205210522111471748573853580395925271342058580140342131850151901985014439055004104446079945020952882926403383225046467747014113961933638971931040123752921317144082023136128073681775989972687645165065972426366531751550147798242660385408094690384393026635621939908678558948618226281087708656974794265198285815137904530585001333820182601274496439380718695600201196191157294583532167117098892271666365035635077627124656491475341038304328998515131325103044517569664710728602201751466184070893973800412729604602907965130259052251784959871679340155670979680408459988537046235693035348786973445990132654651197350714467000781791131144160763800197739058984821090555578927375002453641064582248357256912826428622654408047290295567153675481534699260194895230369584084488821206385527309392401232613300573204726619376000002344215075935230479161797576620669192010505712294596807795321086548866944849267637727557094040249894043242700341435786166148520359536328771565670346152610094182139426486239757316255225861962444799169229437684724085830657349083177122345200080411671761590092925982188745031899194113161719980849935713431222909685866989146806082384462952335782444769074351319539460485935164402964175896592507604276898094958874942081406898304577198236722128397834617008195031004788107117619830382455186354121693471889833597047447801500247772087390713569434425494695296342011833270785678417196033181448084893695160720809718677809796248639651675659842714400986251479276015521427701507386864629210352336746115996474623181501675280777896728174568651851451580037586640726243270618755833133796228059013433071916047852528473924273814690024645101094251384156315029203592097683480128337580241541794853011174060872506229698894832461415345282136095248700733320938787487229525131933431644790201220359315324093336749484242764391777585385258001350148602899030771214990805868114981080004499443372784058542421147205868965456220078785996429825431555807618261817033784647450910860272258352493211105674362471870156532297853131257107853239652924268149530412701485495525409826644821586273926863468915745769903382604065831102777046095447768796383776969840056862804819838018377182339951000962537017354467132573944717111257194159141283309090197044522527428252735451309881642069062091749414732617443700736936249245854906350804502941927975279301421943958173443515818804933237702379264146468296939308614960529501762299850148108704453630181937284514737967089491835924773930611375199615951732379491030819384378883016494626091535397414651760514689606267235921991888155346798570683826430182895679955435146438212213858944210581059092047208952431903418771626732561277092465718762433314774079524681968892436962882978829516174278468163204859839534635639653182387598736240703301402281998377366816706840256942332439208667141430227860275997550444283635256430765195835427617875104176735301483129574095360368486534118235278883496623847708318404144313178887888267155814356255304862044294016833745310194108507170505391837863412645183185357408489570025111244113640590989501658644579372789061333466198205635271525248925691206535413057998518648158944728928427718594056594404981435094460344375649566308851692051358523346269769748423663767601588907758002282189329109340210143255668548463036164092401727139276297265116363006468620341858906328480154362871626105087889314030448332082212325407037039012344148116912760986977726240186478041983230648579736420012803725190709248341579968835829814079369391563768098126737462261239011066195671087819967326503540039894126828242285265022992199254595434025142682811882688184481948581372177560437045253519478138820222364792048574271153654601966211223740252188273790137269564845800885263229769106905379628137048007468416431821149754276198861086807534900862220620324350232171894220137589721053393259484162915487606582991452504139925061534689729813856074790430632833177930184888220441993564161244143086550606315912859365680410927909205991630936384902191466431783596637605515273544876322548628706938408061640608787428000957790171533462901269104158518171196692691467801891048691956562144230807009208547371735670822067930148131708242413116060967036722031923462836475611838321782834633757659515895287710398017305104440587324549308632792729727528823554997995840988553344157814947034962774740185855805226097401508259830557083541789492013778473456417982566920612014814150789423786136741331301296003375989270863573187017651851984483926787157960470539310579216760537096828618460157899997961654672021011749152200551530624156349205029705116879537253332122489215412475302918460894887000595250551850223185568525610966517754346704158488773450037005810695771458005771062303074233339420713562573473436645894804166078108431965707435062632339405300254937292600135826746131344160567536119771018033316730854080596583277118332375842729124603023384039823523829562825265154401428706061338161459280517873013676888089327878377282812981628020477018385475952577743433231282217185273460816067099412956341577663744730012238848497306837438796736388372899909894776076399231398616683961094151306174805008110617401641016717296114388824311100902848719141629224487528439702174436558029292178889126041389936982022671312641315491403214069384616316519904654513999027352938677308172925158481383070679835381751297552895781702486324159849079193369283810334535198533543639087880442433394786926607146127295548074955717783123064059757900592169078631201667603614790834135867641904021591342583900690227760239285764240870624844317883365429460962156050295051524853883913846198751078619136631781083217417959329126262153114080238034848849016968105628794176185929380829870367458097733931142456102151781177299892259896009741453658796474396023011139933067924566866578670371883142241592205326367091983815338253212559865691423839491757998221354809146363964362900351897366610918687431804726555087979960635390829248517774795094990067058451706580599840883602901964463128633523664876461239092806921286291419694031063085265936113169069535306186555855587063043697856429803290136022820693347197142411019692632178114786538253938121505697634605135186403997454437942272818721009358793504869249252662027100353024086813161038129402659571108191382093911089425267961710135345135074508532692316425227198697453167694401239634884889692546670236056974823780686143376700385448956691252279111729619245146500709528627522342353159705703865243511246552133434202084457750220255811713716526967564774573541782081228073055464919762280011900068574638621797685385015157734320325970065039526975231289856329618449738930798608671946478136115089924784557133003579437201400571324285661400866581028041436790626924089602347966219666140705056618041443832110791133645244949195655117233531903417189979364669068450402529713237513301415629584247577071934664452196941317615481822462566800520824194266324627288312057209563545606081258975538524666550373036728574318159242801381179328403673400758870545224029581618092094250705906619918667670432459371077237684481936174317322498339093940854672496416205674388461170037049417340353519380235064950653476981320770220861004868827638585546045115412681424472457217752778372227332824770769439777607518100561111064228198379729723061990285685229295890980631690505802006336672091540419741016808094573097343298488538791909873208056433119031895018342556914963445156975914006008374011130213312443556693048361152575230783800028080623392073978640614016856743085437704536052043664205417506457364265216716971332275354769932959968863782201416374832519341800919578500321180151808514803287132634252397496629015233202228113215357147548931748833880647268125663946073097011719469604503989672333785225382640975999040429408111864503670781173225892277027032253768919613309866956776413031632247361805687761135723030943794724121443384277887431640490623732092948636113202801995237380672477412675660871433260327404903298621327515404116264286130875730428919821213410590677241449294168763566850605447391810451214740904200207186773104574062133587126881512653945414574725351846345925686193484443982074676815011565715170097265190034978466820634181276328874208273434241233197596486753242408681142293819597788490939462809283343106202620349038159668151556433892472918797534544008833727362788613968047644862304150394022547041596367304359021129886755732370167601376338102600616990959854415892784542462578416531025265908343456761694353671225677520286494371113004992610692340724074607706461504706244338969921981707278725855335685169200892387436402420022422004418238717648780906064469975979588946864298114725866269141776814102503309671077785097726296929437383230105112417863217468152446188603549617373928165504143521534451896628105479589743544523250353838978988997793331399595423337151948350484124337364236280996870315600127839919074865318374274582998479020364323023480710055114247837007671987683324797511052365778451532183603627886321345287444853946815244050109370366725014241408443016095003529370009239521527506300378020459240052210044313113089279938997283711800416110087927037013877969206754919680044317189135243355548720313394643545772027170436606474105598081439043575109705053283057133042138481626651729604491772608066237008443742050793510639006622157048344087103808025322260948031774895697118727589949499624032372379699653947282411467825733276607670936722925039927806371781850609573845160889061429515462352957686428135063273475974108181845627705717215225097406576663884053240845217789700468732420602126959192954301800538886176782873266494485667425207566208731354026031653573460647029010970449119142906824108451945975386026542101547961793898780923193465746046546252425862267616675585821058707605791252085796846366947478311542380589472585185484110113437933446881003495795538069080735665562868487579608501168992449393649114208065958288087021111020447833215607290718285482685623393816596202863704430984723600980438525453129088103353937321582927319029189286354510668505990659767130369543889421940703931345457572482885167695951641353348245141269230516571075616283428538214028734109158534799536003851711398934396416591639811495703718508382995822452114388357400431094005729125332922386484681345425710306092391162305093794406217625310776653060927053736824240318275095828751480340177689144514089188609466785709037069737336615644792831706603292821789037560170406697773708798168810309783238094486902035187967895099192752277773508601100473515888767234275827040212578086128796627572285490066379241894305220489504486031279391579615984861029201056966327064103680776925374108923532630129263543435749726004679912252473942349128026092926731258119979506462524327389767962040807679640383602829558691923808616746742335674820243513949753456995032278863848175501210311114043236597438946117586856668701277184840305305261142004768745824338981062366626137819147053812451479101130342302929607957316341471135389807155314891405086150729713073871966697930562856928530973068364571462006263472286085088076662996080365816812120666570710187643605749746759158322176442671621536023712219150222936517856337961133622169978998253618376159091121659479507212149702689621449074588198837546330320205416152838551614719003204758249013209895414081796018444923552624626429419268293582102952926916485212635468862209739194480298433736773437571615455663561731460760259832100475179364721888543228991008105243742792422034284359503595030415874700861357451072393296527682945870916730316116850684226880005058064610657521861678017053792530237384205234754451687073112485104054571384548668410270164019608392906798626949692454741655911864020381299431434266975014083828909635598007462256953001364149260183451781428469456419581917949044964038066837587307501966755266053633439892748926723114172026900419415695179556810121092467978195318456979816360654814598720023668910210252216287218867721724285785590443829439249559707177456543369829338241409986992724540635369123553420572683179518177947345593936773711968653352648812822560382614164264882571016434005899817828954097460902499610700783538606822119018745933926684323761699954851687855525921883776725220342483284526599948491038860901852023708595883431683588065470601146704258612489679831224845114879752969003169099371893092116967528383830364381727348172747662140761880708958579824751395708111706437708248751521129897204456003286795132156650651041391753561424482780300546025832034149746269194393049506193284551247298157882654752850590350758236311253112008738619848084040474606603991391158513594558076897345132204896860419829970942842310665098343334638464250168908854314266112113558762545183445470232442205750642765727255728933682893196087194423709155081786071513528605540757535058976676041148783323557852102186518212607827783231885068272437378669420767022347653059228577804876196104557741830890059103795177383192137353283148937297872617798685936845187280273510154522992593296177366414468349390481405197707984590767105765079725409305838778392821489166351757624093187476089593776733771825387078912890300213845464396943096415739729393870809409619748087711268004916565462865099512430148602385907112199567719897600599873357980373975253122352437249155411728859740330596271990500859962842899459665166678503116716884287647230321687306625498791481681952904497104554756643830738228137017039875219103135405245147477258215989130789684449887174700843786838177757897340336764474911518925106806072300348394107482807449881223844275885709970972891494233220535258665431890969692513014931373445634744360129901473845301918527441003873223837453770511864580320311351908980683053335828027900062881526423309564977954722818173598056182823334505465966891021238082485272367483072322056688074568017664193869252966007780658184545808984121455231047381888388388655200305800751999349941637444448774287318247853830230301790096334913607025541008744614152632311547617692702448753827782906143252020865638887854301619987429702171282724523606029561999220981273311104479290115128173722946627538933614565170692599255995360794401695498087121060524685599221609228655715057500451428028013509285194274031017958755140303216087376013188851448376474851256142741133553472216343059568198240616913660590610981341380801502127740820491455895019723976943627260039690035101533566643208123622049314696803498316697013659176226592204915201862635665061215496233010128237221731977980114002988371058946953449937218948544295910731566585973360722346576442362498676457929516957233917021524320691264430601912201505314890771972915675686386894511283224637349441937786541651898118631738020528293009058647188079519175064836858838788112330456795176685659053390129513833541889371279545268204806782012492974705822360199845794644933446725616993777823917811399306764737740237792146102016119850686215418492190963760549714266404848074024304196016155954393326764594398141922806226798135091106985475726320778531781147034881172427426520491096695348360783211487684654558520113365538227248909831914677259887250955019314213688900160917688416700019469775387368268640427653740148403549661606191366947118729089214543810430009907895754543480501845039056459273677907010115843356005475517205472229810766394782381435927511198387258473140672489799166498808371686745134476613929138982129546068847188733556947230922682925589553024971116848337394117442801454469284295467235633019864765042708934404014392716895462479897880179311308832056618352224546467615934430162792658689086393106430046417080131009778990760213364234789407123633451295582459992959086425637289113715101713464898488293404763370252851562292766314123131343847084046250046685549446050605946668520412398293340491296854663343241210164753276947876519143012705163615340238229022034315510937747899285199156176356144958036471053393890262399503746680196230716472145287165828597983185030847188681852420108318807041664705131357754179306817110044923035601285920441636190848036916705124449826298835239152841807120572540452189713673496850539598361364104479629506152930337774117776798816296103528550089370955117353143765050428517882728367773107795492353614540010408649407286299447033685293796286482264274101808616789176829004881885104000759410291333804960392479984146175079684405246493792885184650084008396416670574986583489917142313207987738495243732692496917441324411574031307872095025338918956531901615901606189326872243075208189688912097256465687480431826692070038610669558875495914685768164032219515951348042810799271207563851627318580979353652552692095476011137029951817679651865538037910884262416027319297632924385600481746247558118066441620196323996294992567156588734029074560015159030932772808623302079621221343947667218721442384298121951246314269111940676844300213453490893059255196217817478097947287707727294506753705285756143415717544808229895833300304806370622521110301907756998850291511963570445813887024707577799211918193479026554111222988433355119836467658375617733009531940502741623870021333377221626186992362748226329800449913159850676710374203009324493149766705772170331308541674358023055475816219297049460200950804893494557327663786430475640606586239402794185472596408751538743315081483121859844904417759704562520941659539741389620266515688290936629912183280957673156264872057571348322279624570492547923594981526666937276250321480266182608721500854289276398195966684191742750221495695790350784876217123041060621103476855521959224269648654887096989102507503619734350610399519714830702525017177071421120699630705868981534773537487923867096189584799523652667583688119740612246404892178677280034902739253927606388483365891495476633060567850815179094035784961917776739524764923686587652528002200244324608873680363866724312470252742767115785820352974387586874893125200009349944377423949972505782165014189547604417791543209637359849131018988119975404060042576762390079978781903381787847670099912339060961138535519442736535766806689438397029132251891315192969662284806943857612693036617609997387150646085978588917325162215863743201151760319632677492156610193172580063534875509839899347797389017377584323470221864310769174267009421062254017402148500075334083944682648584772182131257779256032611900743789500813541819035231462673863163827862498654435356814072400908254106719219101564820458329890663801071040006410355707972311742071516447374531888683724149176364521722506869747370878218481329175907139364884469141830061855040456692707294049537441316635249338983985727523292900666222767489074014233739969592221224317809802067296126508405006331221345643720061302949687635637966272760078700399792849786249591317218635475403966635796875460991739197956151431501355224361065852149678467705803049201482074164617338262575557225790868398271697970763685815239255896955396076107562066535688422571733857493540017977866461572363066620787645405069623984227264041680256073826597952738921917017786782210074904204337281289920941980283471710005804698688925564587168855309951582799911467073437271687980667966256704574330286807587599875788749643347688671999263740221543707436020432110804504702195096103494268076307025914374541229170583984297151574689311814593770869462019712402175712709499569900661356989915497699136930663565648244245370860948414588484812804433551232507614736839279250828384319352942533178070137969798598588396199252343242185576371623712620268227012273548068396749364085927332739664050792236247465354703631769975017319227696926851901583850076759663177114707868768277873211327476662428324081865520163279499623449298364316344627818894663469785028035090898952560297511309234382757247673348463447532884544881061145183509295523810538286481617179782810496457056677834816453414425192848963846414785152112639717590647084106366111543670839829458434030600521533682231980379784061543734017467504410172772407195289591568339918023747483660787450011147575501369050591436494387885164494906720558267592744726312373153694887701362254838736636859085918557512226840956314157993519557125824313358030648640650783168962429845365204778193444305286535350452358427526737565154358417331371665483663338455185363799392918952588339692366074460063232731403460663373376516152153373986140076034273581601489414604118759332112908546544357264033342115497403915883663529752410689795792512575530156692594853844770252654804902750415736409687857505753843787728689060602841741605737845933795784948991265775338987238163970240676799317986660678123901863803970176201594984506059840079583405408218558401887370435327357761642990042889327602790749677332746716189339394688753358088617273356830303742782849397198254182664176878148922506143157493642422753619271772050856820386063614319267984451352366754905822176095322542395819428969193469023667802479415683545503678498374145879485737377561066062263361960894400469995646926549620520242356772527169358324085449043795724567290376881412540814056016825307763323914926315923446330815665610639322273861191412459487030469130422969421842757913359608815616520030422072311554320513392110128078964107023141541263643598596531496438183081538955642171323314709081405877907487471915422816848429541607496644459593965086397124760548087505704079132357481515675563928645281235734911215938466623753883145945808003925370238227730908549400568602619682430987340839282853961901027732708794686185890265384723954905926090136259050310745920607982916698633434649996634449968039297675005047247084909804709176676844950475114856197195528209329528912426590546378583046806441943546567816910088633676400936162311830338715996622719059654776863351229340528836361920019291487122170515252212548126492332903645425603436764106464250847370939013657902977356985354119522742050506397303677104637600977595181012330193581177578331513652366650330961044679389589998130824431620985359566539043696465491249444706150012905538935563948138568373232309195552628802572829524499264625505377186406058668174381146430234967676658804229272837763790667510700536721237433603873659506979067416371541384741751303067671717123449609383367012007753747970064634450898303485871852603020275326616174590974256628057691142826474373140525110908812286011809616491646918107871689499602175956915077568646760849225905998392214180777945094742022106087378617130304116126417263558397987979858031572498244330552249959578940237971160527181942899718049806154518489896925680451616588414913095185698324226017365852635804162166505162703667988879757741052476760901122956535402397231165077763155218149348518346281613056552032921225720393524150279185500305438728306144364721266931606031966558431707500575033761131088393801292567967839305720530436299126544731802513667196354359449217529379508073391827925036526072968635414479696414608773958456550942137534697330879443088789753625059009111500430776398319031296104296577239736058584059947375334574380006807539220443950677387109482641759443594220480431019040143856817431428324002220216064757299258690217354302088468413129473317136140044838028413950008785732226327453446851093986539033303435901331801705704806616350197167200382445537503721917161329563168250528898649991140048954595637686802032146814530149210489765264416003975865805126964215232430071731246335250486289759113478017389732219886132834053571837178263942927066798232890944945336056094305800375267921275438033135837882209884892458875126348571092315580116256735921547113243328688541835845069301393083416800586195995211991182930967063075339258787709907717670778822889650845470201345277150028936821213928953938326803222581304031641536616082762549868268320593134954698431233339550099912737999113516697836869608824838895424649109904817975868428057807329851410801893670659956927362976649130809523026858827904612295631676598233855353764681956871684806250974257217468708186592009274921586974109081381566760276196402275981245353545470741268657447156534934019841975751466965385912517448136038612350636272164777871234649347843290700066913985733000542813270831576051977953521642519391179289092275753178068678839044470138052332855824751171797142144390810550120365667566053461558318765176550190503860791476777121711466309670771535984704762529611153843818190332741407921111821721165202844162029186419220508672049943561120411397007488797480357165821421437178718966052520521825017056132556212965968814763124356007782174564213132059892557538041078547038795045213320080688895334667750072701748818718587829938063255672739467725157795697499667604916950839476081243797828811645271173185349932093455046507669747792566435966280864424607274487939290952731957411843670066767511799745296492651962666419789639491289380553106866677379414209567976947697980537079823324427293917542444948576309995072837760251017330000158686659389890582470634413561070067344684772249886313317090747574154165496015064053351136879909156880598443529408532090773764437653247008384613327025740589933551955105341076139315366733583850941220189372429751273752656960061951104125564849357303132714743042141405706985969231247660927944398007388773502711592980960583342059163031150610266215706805708769307671561660541388603398893097118965520711918950775188643578997421001558181227701060478473325782512878456140923315009271875328042991338452924496118811125876961981298440213385679507257749329195789582977458421537625227620004798565956380538144465922027921184854909369508353751225228367807094121115700645704447480772351403798670029149518435824648324424403911903320773682547958286836075788475151026524243016415487384616831282540299642304618407839987040440897329771649464584111362350492498019747334598111650028439684045563091499612508019471521280496014143408816067838635240542097144237229214551492641514159317284766467642987632783077327041229077650742584690740210481339520213993116741284660270792396707520478141699915536327373339365293199698035947260849424698756501278626112492544314496397381688157458080069094068068871041689767432584153862302269160074808167845320642329849735037181440982793505112676693189514079251317407956720785914024941513105987772279871099243584043211463401157620433702487752627307001198890052026525979234014520969438416328344406329660595137466732861149629747572777074904776918036045242315001440581994068884373773495596404578754390669274821843304408399790695580929140101619561617958507100034273378146579174819617252975114278538245173548291821508765476154127938245174343668239258260693410065539871964283218078413612006236019491496060918232242015728989143620540382504862462145180153769291544499829573968023011558636126745535510623110760897817569940378426753948527434279899077562579689510670451651379091285599614183694936833913734442595679927778978741443554881099753898706395809413264443238370387750920442688274493009990519464044739403081424819405655293007123791636014302886446878171671838658208097350373284756481713779580516778732395621686152504670081525510508139479682275183286855488043713827951701680013769013286029203335930541657677675792149820519943121732501459107752853709559697250737879169073071052303258711445964253996034541186777461306070307563020400454388924444072797936420935732655753801117393186832799983131954247542830722653330481899878461246505671917441355117448416446466189210890613525803928903463108377240418190548458326555334457902072707087649599234290019842582130315760118169190330322548933404253180950703068501148538403704369819575397620664220543318662536112918864148144915811810386049550313028538541916422567815022704859706963780073210519567399064372056844611559065284037027700325365560041272134832421255687344238208712746197983532914932632329365662050596481059662181943367944191740822613862967179963893093821640805998332507387954479198446307643828688640395999515442503616475740382857018593027678922907832732830739306347531186461788068307188318412581382006905812072849136108584958296166587499332497021139853830691742293041471151735397784632200611796046469827337999189388380382615367819212068888754433039295182513840336642773397689923688524925713945551902766891159705093563497779540082062811286563035587767108220346781780098281295303350746527333512320622505641554445846807706393760204251367103051759561859373032558317802293619794133230128097814321272059284689507370000888004538345000466187690112266675431767652027373836834037045424337850746876129745785930744929832775150840023406091773409281222077737818179648030803431879584119450970519605825736062121544006625640350805294241492251277380217655458599426620681173831336798359003389307808753120912382748839383624045567624475326222067022903399486336023472905943187147421656505744753441563518227376354586286371636348171329589584532967102509432848600375785325781795173513128260360087640741461867249289931296951426352329342494283033790119421281541662297668663420866029983922334935001322337646050151196397919726222969937846957582064695197901534438742516206614851005701704433913013537378280744767556597387834108244545631298447901776196346858470229270849838889622301187197417629501141598022523598610126499083091372758285933866810277557983786383277217977574324827758868544848527748391174815921042219756458351231136798896628235146620227193321892549033657699203221839386372633272339802732652622946556620383940365258916340425538863680380564402015359649370076632024249062015108110744228676595393002146388169372110450270889445470791698869224348188932698811857501820196513186787694730122453274965534726789947607332438149320832272008246651840057751641051129520858732099620130886323239386978884035103328591847478922436760752281192911025463180301218138375098509787839361080089502680211702261707837261828127391002259176944154030790218109618795981854211020906561307483753292565754022389200977426897967798224846899381665266866790192050987340100337020903060125137762279867432036690369365687991775044507360202130934249121764299445099876473158514189977322434892815917618379451055717551819383170004584815303786016285756441201081178014187232083543304493339571966573655010606070806313678408874894349881641967375662039875257734791445604215719556450438728945670912153225449692659619359536133415621163382845611947282781649830262972498282095490981868380012689713286510295676889137400199753717091077834155442439489656795944935681599808726103913567247924117268853643483427417820968837003571001121946968982078708308834038435412774008546818547225446414623515505609165643633096088484500000871483816101717534049348568743378863091612827356220544533927470191064177672928001922607259164306767661330539327168098983784788563073323558855298663980537089888906157993467456964180384233308976887375903709805732914411795178269906119328832855044256631424872572198649275739828634757104484016965624069711827996888997500259386523449404773029971883461826932842502526650422523803068232904988248510588458764207283825980337001556272413531370476874598214507666032748579725698896551786155768339292637435147528138757185704882468073468879148201052946426694910526797603156200294625644514173327383970695282068539794061609373433729448013000808281262290431429959722956322014701296531830133672124964991006857031152762765147247475698964406155197654568064705362677829924829347402665117542983317518722300441989174452785784269201871306883119212886244982630247208795983656073757029462175000728258326519501471755465877008642800178202258691929058494145117679968149726343206987896827068009353307961845630515036256108746930028572406585790082540266728667526543879346084708713390008627580554798290441725334702036213303190741175186998817678309507520677376459020450174452108171020245786520551168552013950509939359956760291361700917055126932822477508652142306902856057362542123634608814786297262036103648810678140396672348622094916277838534208049349496900871522608732534624642629483592161075465450030325465172164500481359152267228086058330663028333707052755593532332432208376674867766324403781896890249808161573159846513491230590495495354364026549194542348940250356840033001538239234128874252571932744530314645731988282924625536944538131974479789124290171759776959875704371334122882305980866210706109504593446209464066574587736779858772318857838086703685189795427550754619939437987073771541541327653668409693648868449245409913579835240255772054358764924260205111656895904964217401084377758127032475822997995784769249262352248298592757008909210854755763568841129055822993900474883338881580348877331642612139450521939824233803338613664287090076587983076292422976443904587607172403209738385339687861653505479094013512154915564731407761892994696038685852616791429414072493528144810986460501824506580074758583750030004195476103317418158806912833202197304753613131172987036210599206429257684118253615603889804199441062787436430464158967745181982243435342680360969171602988637490028468626842123338933949777556195872280260274806083902470968684827092121168534316461073810070840709488408218202682362294924311596545193990970901701968945492677553971309636916031706402008573012082348273176128924169995563293980744707559241771959687905046308659398074693717407033925042376463460659518307888714310123467015811002414408111004742601558580060674761500139221090483784005363126384839797693055233441054791853286188633036468770508500447189505151592111736955210866537169537504879293190897054381062377063464248740195940202626350832588871866623988246583231444906422370527836461344177060076117913462390221104244726705574512883127582452314074756220908192660560223682335606313954349991430216672076513693964900753526173527797722633112894418638022262003671932196093730607878329151449314216443827127804505538420493269157756407673817608175259179239849393634667691150878032385668255851886905941566615092009347899182101567572820962056255128742397735712371606377770193753408487216365218072830233440001200480267425053556010469154901887618794637366733375587996311144510054893976119889049141184987357282045304198355149661229888216594695029046983910695044785217563090756075508665791461909634933598301856672530860098642195169133618308799708641535375949767103630963265547910803801559139767747695621649628267368255698666640641697014038465776088493942274707795792045509764852213877985714189806457014823667480010658372984234574918806632829002575366691628027342205760400882543065408993738520674030319881723861866500735289124439069187313973322388788556385417790490408911304170474932826023584898848370133899178996879195462885817718015579520396110607428782165090625706849456187044660641025716625869598510316280935805058703100101641266247619566251832609964997808054642242182685754023162771441379620858688006517319075081989555597546491891709044018543038113140431223268974079217538499732705396309104838926765362993689853930021518081400591864453385611408511245185026262128084432200293641174207116160868275195448769033187419672222814693831877331199089359795584065248252971587165158926236876880251573540505489994353332957307472879712560229184691517391619453453178187312712373065838438103020540976167615037934201780823155537631455730436305976872441674253129926010434918676467583484093548164880650296022482133341305818280940365368862326358184804799247468296700500842873265671866568162220559282587109737615416510950967389937525175791223692905266269123510443853326719438320731502993317523575927697592015828847444301376729243000565734767157749520316009358094326564860457034872452850772874628986940098897208016720678402493426307779697782230829548354823559837443131684544373392145520483496241288443496066555182337458399304980108277540708232102380086514727758518594752064963741748022613290656962182157827221249504902889096274758614710687294807618668703772400780484129275255227690204943568839316033330011328750463552111597068267787698932341115006449177196287541418293445913509661623789944639551304883570796309554278676463974717747922287647102069140440882497451811597724069244781038977797285422996923002801709891885164025686027634162133671760013373016155890417280095307299865917478850268656263380436058503360738067568925153882356418494708573435997701667466776072652609881794127447336474952562246853877603760081735111163673799924315761020345864523540567471254879294619700167188542279276856213111915462469016781223151208719076011631492155391048073963557772023408274991855036865924471535552609367974472437791598171389669338405563848025000104039589017704371231356099301455891739199602114919470802270292991304780412893734784164366360029076522046330687496384977109868584432886300353403714431216451690424545755246723628682785430663979592185769131526506179755901951399380506633167768032887591880738812431750172089251932732818263668964749042197085048796453817122827365557001637380383087003073080756937243027107647594637993883048962330856906636932505851102343903694466135818817114751088653571556397447027183069524175794494200847666844703375007308037722556903951574177347567514647430341003759085446549894089614129394677836553541540096327275206111354710662421547467119828017861195816795432651038186349421095843250442927859298491604953024000564212153768100635913389305440821874187226263436594090229469952480418218995608578398688316088438100865137033755344171161847913523788397418932492700421356227569817582068926252161649703469578292200555089337976170250888873087983928730697874785267170515046086218890121490489320072314090172213285771133321460438505079015244967708935074985161157941805613341651298746913897887748235264049647377059262981369210400436904699054800324358125300701740917142312890744081943702845501705424729525467825851930446712989118156543389493273047225370616092998526742334834432618994282392845089466244250472851455814904300975050488729882098372959075355476443381694351995613097618166735445398235247311119259258520443732865944475922102882600482376951322970547368120080706285463652844375999770816808481397099688853695804825409222090299982911980815984175976108017097409035255735010710598515845670251705509349323056694631451786424001290996630192095615168174345961843711717746162313436419917319878384469803119532551733715822206769783843548866959926873002256305279911720063787248864910384482250405377537897709258262317681516757748747875410056916655555552911346951540840660609459109461255146148199843788715978739038833853007561511220815586684612273146559326664926765052381332513175094599287486384733746314711576455179152045573280190162842605259350433338815372827619789789598514781962069770352633803609654956113737751604857744247676203106575572998000108755725751608762664918104129004076947000758172559536030747358533268706104890205666245572115736836336260047109853001222854988729782494826127211348749346068871593702545155077046607396358170072939710659823525018322831764724423960809819738752856601360859855035719075148587634247863231930111585987182171567778864611576414087043365994987455985777095881837404182966842985194248148458145021555247666507444696004227128874197927495744708991469736363892471769727969626215863493642338015813679709429661948061025618267858136616725444327514723222083622457385361371085420784325744282900673525710201692139651324387662375386286345141054400150153056211317608546706890984661986728616052608591905914515371768822488224069206532670262500959759801438181397157681026415146269871843736097902942092949017419435157375334972032101524567829757449176612298363558826502451769917683225029570927357193692759150066266047189771676846019366023003107266641681506833600016528651676978875544278204953051829939524127203031014722805765648287929174709228503263365354117114467945659865392548244401651829383237928807881836864551147330261125460065026166619082031160055225094746561820471891468647075606588298404941329971110631072793613482607204213892333840470208538677126683404610590197444754823217395665161723907964340123335774444011930399524253711207558766432689181743072314861003463312258789642844524126876710970307288423267277118664306653720807150303271142534743843039040830667606488257185548235607750944513791226343077637059351964763407890854003264946072835498205116424835944033177860049913468683194742609695429115930212431709919189502419039085037437232570269289982581944379500395604308615047641203961655586281646824419175584123416081148847224743702430189598589208520126963435178478528649732109553185495084788812637408374160864339921531286546050919485831273278963541839119282915237948533103326843748355694605764480392494861842599405292112339148793899397013096065633151732763065349936157059492683971655531729083249290415555863714123124493542402818031096719352651947280539461534737552803595852510341434764950163415445470358686023091548662633984804146371412244362392820382933413274932201996694638370195377452140485247257207963778314304208804391973973942193299913564216339559273831936308126498005632104999168909059309045810143728516122827332641299113560168040945827810072990530486785363545988751397341324303952158818289015130921209853658812033675063848183765797455129858219040988537552838602433574758297391056814989873618449378688774754328123414324083265010545609971085180510985138401040607775872098656680908593464940437660261999496063953116463142501760731813222781695153703863230792228697888267905256216492480477192414122749378087591280452298204210918659992516230229762168184458227953898963809565394203222971705876196028899735043573949464579671252968396762210747556263022997636753356895854754930428261653956388819372846275312648820055458925271504032410223506127412022447009004100827231184646687495811408788971769748970266295243420073438276283408955629272844971015745990886353446390058532477249107145767207713846365923939857926309042176050597169671788287635463505344757939919300559390515296062714950170046242328659214305340213323633583358823533314511048989789120632770417629427093887768646961105103663913884028657020272409299025061338584997475668678579239774909191305557695683497734521441557115578663473974523378944304175157123838655163660958164597223540473157294468334476779071303275011782303925250515669565302237818994517486286764614650834415368948855426992817625946418645887571294955763735983149461971213008542312462542018488038880335564626142233852727349889889204649254935064927330544947943926486058769946046793644377967707264226104377685050404093765282349415808068498009586783044460796905875440185833569048797031339798303226548326058179720775367678430774803853138760984015766565960881918076891184300916907943987336505975580565101179436070681487652717013718399468874509644169174414570293213564241129871003017183964948083975261753093415770328796014168458475520555321121539712309541620287037317742825494770241991816127397308224386787773135887601755486894640285093818115060261672542641727776702089249981821187143565750556930108584323087124139137352456424497560519155803973783998498527282155405303819381476090023548797673937452768256843367795159333305157629687012289311908543503890031934360559096521267555489282071544173037452743925195905258824756105582587883024040385064103980214429105996408250919333402150524742861259000970498711998498621877939098113276092486571241128385648189052103703231302021186536406168387962779455233416592205829117231159758091943680110117162123671647154734047599015824982753267251657197272409392471628400709839954721835932863605827098630084831586519570233229983222305613255154988116073468280199608505077418955641133253997556002284772322066145488818883270687876350744524331892896222178568707655412167211209060072825259335635845632520219489903705334950756588198286064919446267601808300964864490379512862009734846012659116588552749480032420182781949419847690737681562184271650552248489788965043977736071396178224044320645712566856997704688612630735188309948178073099438328652189408097702650654852672914278601237763355360461381363362507437508762750279932294310133158867043607952317677444595430780683186454839236071927769507253289003443658416374186254036044712051351934776543930970748971147878719167851400934014611988259009282302916507558782722362012286045260371142304703107883262786292776243521497624140300606050921832106122541375500651667013045349972745531637416497143544241463646555755541254995987955516462580445125748957355387369478848167058567278204556237072693579358252353517162928485047517459140436356017213617305007489860597542299958698055297104323465226868264888566868962266527079623296513849808831826365343715368265110224736521071823710412773904048263822250097575099023537528165917337173769004192100807014000942296570961958977152567915141849629564684456811543683741349701714913671461160908584465442652559185237020000894110968398867513397879355825846831359320086492243962948063184800157199160396472032897823755422785925520683503048710739510779299222293574510799603836313991598182483845910139476112135108135509033839121646873471283847841841345937412237171227923297886490517044861872107826984514725337119082822890296420352025060562005662998474167845746698100393585127039548658791475564780733786253600326136126515114269181380464697028879536724548093427144952605892464478050317439612558996953590933867123103486885682778589262075756085595444599096135071215986907166630626263083756833988790623487579188050895704483364699628562270600953929700036093979396788043737604041708024783080447809952247833712323511379497876346801139086155525848414172692264650963251764525004619859726893564497470389609898023803691712575991804574038243332179906932849117993381318537573057101014802674690388549222345929730074816034309609471404900258900044487908118335315748369742213189010425376634102662063098279895478625774516032330358081271851020136114910240688674030490441634370481045087034276872533074186250349408394988725520139193155798853435153802017673561371080786164709969507600534551464154424187104561774807881508551216610250869984798872228652675809606206490527653111544959314358111628679352471485593043777720375393214076440455915464085387363562744958814177028246265620292275536486204116609163123236284440094595606741595808840272079802030937120593450806574062053374630973511019349545942808129868835240555917303017702966288947241811980729478608428684725205094949315587303492546742558046833767852299624347336866213210728029044328011140244115986251365774446777512684391379416166660133238070194948542472979447021042337869811715742302497285771655540735714389291062516112170713641088574077901450502087925310535754473326541623606177610903664930207268254150547737288422891573104414858523032090086513080015807423324618998864718711601592816878592060347285171289466380102398761571789141526702485924895612651448240213803793708755640048880309269668191072077092009559426945946943065613986302650486916802731025642504631117678137254479893714140165222914448650814595613426884703930901042184408493407562907549186327847028736256348316869678826042857826721954929178862203595180827464355180155053026486600217585532393965549147301793661103109704264537970442259385403234248676561705469971031002352624633242255842441375363392197969137449120615346236528099081734070050647191662063319881297805689075169673724848276040993556811840687451868359228016186178967025729050129599006659965850053776769970222571912430325667866449035186456074010570569303603623888195730838298944521243454330914560521150077542734959649113599526306803932883187811293358422610737302261925320841032919589034667628812243919070843937386362928436974879751863971140195905950167929506114325410587631241310941205543857848111130744715883655357451098906965809947775424059128153144619830411598192454457510197424767842540798186811490875945275994728696833029147313155038011691429566654249613197398643813571203141839034239354655277054641026595837873837093229300829970298528421236195808084043601026406390059449876707478935364138634469819216307177847077734049993650925442415353961516318390536994890219187239741057009999221092751351871721537449785440365605229976766749429105307480827585573035571469981137459831835947922476026606570109418450587456377357876397306538124300722822205228915317205950515523960513751512493167124141873114394711207520290058179065202130104493261607045890836770451503234016766132521126053725535726924766674207904548544316498705131596849438393112960515281658026045729104487527527174814287759926721979420840145395264314661975900225925191876314389390146057473152722796565417581682694832312782481890866702291558251377639775750060132891105681231002415322216718943542441206697376569633352742331625946102836082003782056464525250908630318194855334883031606723202320313490415433808228928946785893479959942704107319064022674992631829949767597721222825445064025753110563855594133387072235546096799100616394086349744904305373740621110540221085077797067352380598729675525160775178800062315669916290600401768329184179893260354643617525522701839366365905094879617536643579494263949372010264374211418569373170962229743388762810503915927611169167993012707052820626770202460718594354202509246657922796999450783808280695555130266559357032759637953934250641257485349817483310865725779522429425498795955337700828595724754058872418736509233682321817424777583027394054139897548178627853951000956447909866117126926429830676725414446034447471331146494300767073097938461573630287290115880254875846031378839549005417884724253921642080108090542247034614858069929934130034877358232685010204390062091671104175299636745492042456315043912357713916741035624290008211047057683074101428849617088435158483057802885611616358736736413106594272463433714115716410722471340706706695462814250757447970543345512630597522824138701594409936654534056410474454644129034536814019899065935828849340326964212024387805280812738622124622248293554893898304886096974652513942399036119752055326630061714247255483590759561228953217791776604139147810900899421166487530602865092007779366274279219440090231762693755392597291555018676049078387614255755967313856225431877653501329154846644522722658114595294312572785919957796583914185847383421667714983785179344113965717348379199037108426636636672333203976567318067166394393721142524005896559170995602516120061872740674064044361491283852310081565277636219361447598156790679613808036108574752557337626126532071867426408830576292499496725714155405299364564037000378824051402512471851240349713576249978777876597495836319043638889318879095747436383820551074156713666592455474500979267569616175973835883645828843062466598498541019518433165370672010941914251359568901205044214010932371739358366829410144372481619010070592154004746466202763843619733187437894208167079029988225569764325553505213805115989675518434974295468984581026468138074958161394738613142178835978069749468183754438191620787241020746421516685261411024764141756445742953310947882311880093395025088586345270185642827520541504103440311108023754112581496780820309303562340167614700940086652828523404346266670524138769094510206434682716163282856001771581002425510762600684648239621282800108133708105948505056355120405419113696315545497006433972254615673047358311335073529829082552381635578515558232379786628201782550799400740932126669890969941596495037541600610020735885062139507835541583015359466992208683511158394424826098279060057975690042804280275692728967521244672933224484643723267358702263554161615824501200846261191309625853446336757709850395049182566367671480221925632999554096913927453323565577389681078416605670440258885434670423721475042343882709408455363681438268289395118216416826299171812782953495344877627165093650054817968028474162764635155179159882985248563971918896970729933737798338933930684767715281897408172415208113984758719173237522294356690147159761429575348053178033819986666410788216994326184694974622201845968491363051247899210281488903438529533497945660702981359605033322566610523816809601535362457315351566038686110503268798237690176566126286629590618124457605668470242512920351460179677878837997391564763597577310854281377560297508548965715550881634751218876769866558420243079320557650848120063437150035314958134713911546850745763785473538002582414501141823934538891762392353429175254329979704908775833791130385616766262269340787266143132736910444823298612961819275698383055915002922167719145390593890493048380234517121287449503218429218340086126291122376928027287474788484219121829298355129962084267646001358088409826424401451783510084909171547036769735821440575244197532918577978006521308166612763096032613307003733297443738586105703180892207642040594610638703902926811559783443550769782797533581609831657300843876049189081320503685740602129145283957096560533032365933877497006519953079993895096601039154064276814800399325090344727864252399896132246123969476250126207824615811454944763171809565220126884684912323153351506029057013152583093065070664496518589877518859839682069591785791016906101076496012997620088171044640990124694454714219154305805215472942849258956917546806050732489082512885806345796598649812461168268932927788588144870048309574103003500791913974303882601987149859893304014554130505284260139776933877315958895172091904767037304238645145019421827715701265439592869979051145389603211727672265021359602234013190960184897752989837806035968704380436538343874882771814646224269415823500891828063605744414542134353994410903726123077702014839779040939756299108723255772023274024814886155170664207346943889060012311677879406932211662821997024317271879646988235045326558601713064860158200044264687236761207630694024771818618314092275268239574091149030664556314368143117684899578698509156614306433258557037859318924997495142181737838048553547467533957654477066078210048024336074908383246634066868657749799447142294646916629571627905160784618224945166793353715877985241597042685414535692385964902154879512201715562188137415497192701111079734456004909288738550379811643146421898972111573380892936207788822444406265541122343957417514789649022038495912126139502008326632368128605264087474244415951497185345569499510679382075503381222375800045426690311751563082681102137266016100531665874869422937991088262570636464412257689464645437633387059955891898964147221166393372689163269207981200415165797151588683125612256370179030593419305364621924896255508609937785770519433126625069222963740512059789929983505151716091596059187431261537849264126658654220510508742208711037446315162754888611587040172164441790283348920272554149326408339861201819455360626656509047141558167825820069771209285774963883207460563386561599720466358839795541513158818762803828633104810356891045917018176484865734675236196863708956439402759797410061597914159649809683705012938706089819780153851200524853608824439293218327210336886630230144441704253077386947000083565750145006804940469212718581449001529163206441763206811528645225461579173881172656636613948938204445819765810394802988745088136186266663970639663367254348420197780065008026857484366550165862322244759241211725911070857818926627931189408998982270591046804953754349587529272170684508859268652027811769361041812561602091549950871763485036078478161225737298256936888008766231830718200750420656114420573761216041031216922967060901011127034167251987037414134569360176579712836541162430309138669825133544464317665649064110374076997065399923034478956574412969188651005131444463044829377711304284793989101938553817481904486130420295363722594231551049525137559182289850663149948472202998699447606542762100043421159959035330858054621901470022494753367822268094153832813470935199341779377599482526480769131269024459886648483347152057205146804773451442656339811165266774981335884337132108236526695887340451034173246475800910947367895335482625948117569842425402013368653774471203200531139376436036517458070674745177050027360647556974755915156354675122864137648626310154042204205387318051537115852960610853479371469672982339941045204809942750444739340175534506533871402732769003152249752450122481115420477041885787444433334595747712232143509528340990539186951705476193163946049427594228579072093018548722959017869599011160964679574358917485641100808851280558994838851462620462934589475976871856866290040397586996203657533477552847886298853801246795939412734368302840813018614010540867914036192009392006204007306178280895769759892189992250275699004365879347748269683084098414080942121321806608403638631639782429446432024142034752129581888627837867446044416264996529451811699200057721134571192465406457893873109658467272811643243863741110951518332655592967490237515022806666785981231138247521500645500831497116321439208487754677835474369249957373270293879580564054464722431542760528215082218618133942436008239912451616065486504790947053037265721553278403472629605685346683676721557888973323220424438594557904365408185087900093594427517241630579325675949982523487094661138278157930259189287781142825907134058573156765267745031432271019634989949766031144300834269656469945675260497728307911437692570370993977566324262485651007099100338974154422489251989534500789141036322508220568330464992784207115287760842490443100820767757689396106909241611226061920397209485500209810632114379991241190069137922609262776877115521825360054481148873670736730498728177711686628838841769453553734907592148325515464421695723854698566656850826418141009559496806111690167297216616721639366295657446084315316715012867847692391628618930318302305450542249583130690052279961584461384706159295236033235178239552490743748638803891558889568613102775929838203503068499194269451822423860553852376350236807969844390023798420184112441925201344660998851431726434912969089049191551349891933920346089941075639106464739064161617607409464909638104829852695878172139475007582406552791080144381827290007448546873447777225426259078958623041537234571307688190688310046534055391753857646122672404808868740092501212322483083193814918210141314489578974788323600196605595429612309385796035759708411432793185782111712112329501108538462865980468222803647400726680581387940570943283588146711036967629865817624705025300736702820128912996429791830539385569113157439740970917205879206101792305167135622651860949103678185779436260639510688529209347787574868387320474944965548694520423302495253092747817984326182135373462858006873004792183768492364738338359534112491830808352783556011206173733652831534701413159745846556002420376057873554474866179072207252230858188803243121259780305264212804899848553997739031522311091621931819446500777979162108522578609468274777124922623290796558457038363734249133327664016581060491916121657822702325190858634282822513457687096955066330768954750383936202207075838228649847375620820296759388172362522176977851669846504301376401614776643495756163748518773868796756866351568833855074209121465893060108169477856313200408783889755806672428747718625150898617865617403440168862027293261784133235758081082615862401401916428174381890862644612042466774941847953877785955103995053429304128571434666266656143196986590370845137021350435804546122146583377966335438714860058067080101430434666952301452608683065369321051095954043401004014698700291160758349170001146279594137213124058503358834037938829391381827293290367691004729357644909697065153735932550662680470135629169652204256548563068322603773607252065037853841785799374584207173162095843086170711385349908172410715223201336985779695132607662478327321187131452174507937817810020516020898054537769441197653030392059980459718326012026939706348998916913868297460504501759367121122179501047963297640966839429616590453745955856964889606508063379180771779232171263291542937897528841539503622351532679981179727920622072082807907352140806431713347751984937726272652236010701126062242946021716187627583013155603255685020551318020836148816287833050980395822648789155656564505332034696376201227461740351823251614065731046736969066740002485365031884758580159021936122380524493553970352842726146496563490478922736080327562684960424572811577926817265221854732288281492833516879960136944762985333904242587673845678485836681175311407815682128889625792327896086174654441524865184477664795264661388433205199552894450844245198906272445886964866257718710826212125847205965422145401862362998841579806132799635745034682876736631184065002016324889405156139264473741634581803339737604092701040165213109700631466520810575181521619870530973185673714930310758334848582357378403549575265824136437072193738598467897941612653167559663158377763637027921248457309208348568362863245298925154361612857945269998998015990569028894092470054805979372385242179013707726226520541355803199303685305693685000813476999046582992526462726293926236218761831838634311407078293308648400474172316038852600030550337847647355993206624679119270888833520002043675780091202207359542193113735200969879836809927423466589662454120727201893674021922315348613957829844819994270832963974028552982111114461402875178840233213971320341407142591541974306704320497346920725017557103506477147932658352043866359074798004045524836116121832474772337244861119567149283613923049535094666914263976421151389419723214972020012971829202549647214800769087752609944865337073413691437249921481461386299913373250417232209674441951658208103472609988601209611436786459267107393686770348012028121624312093886143437535156118433933888144890523170631475191911263396094391678668247817827411929918373794567206978201997093144732029066815775873307128469371165903988991766446278369128016461819414063445211240345861274427626543992610479934214780936573582896733294162924015858110282835560418575441852105527286170963099985854762974113026414201679887906509545561838529884023399623897837772510420230000900404869254131508560957427094740896026748962010720915987375404452189344954573017605987357685846745691604642457678773640664271191456393922281135670467364337883488660776697567815379653531053173524705992067307450072231890253771003057900549918274869159518826384069974017868712158840421373713152502522234102397833130701508371583231584169860854737510834593034947031010462912666540740714545515804052612426301594872395421222377374070929211551730284496038546975147573972455714470983314439288129857764701494893551845756452995767943032917464739965217155796300608565286218852021445087548304445379376284489284676793367169441158996844186129767528889963250937853729155002113778058194976589696005547421656476816997759777001014559984446083628535728638699565881096672327581229239414425866495519794737824726556326879550896657638069262996960708147525572357675847454511057389129374724670435239969234171022870467106681444671568807790093412822638010901546935343731625485208967014111833144740088622266759531255525869987647808816425106324286912331217797918722505463351548228858003963164143396251939216465760792293383619799834309927792972461598914044135546516755029911078982969792854191147421614489200463544171698441115214501064990877402830022587558593506112741938718954721227626965098384816038892155942186127244414960369563429369443501750513502528888559184356833753640163379359778712137069624677972249012840650241991366867658852945472927839451021759011375205234541168073386686623081335062700127411441229537382599643801819514018220741132492706837874259230191642767090847417739976703361537052606907119869466388492164999592721151861547011140764701480949082519434388996411012764761707738516878873782182677619497297045666309520638489910973316357834572425175370425486269979344915327048882117549582691707394897493238640125091991980270824836787735873115242358322916291227456985727446690886345528424073938786040632750917928577206063575691881903327366628220795191433776422358109257177372879004785904617029934675383356009315512332324442364791939670201764141704103384114336688639274689015221459836650368851047888934553850225478973392140971429839152147245540643657883076182175134924394471701694479051654443825298577196775821768353870039532775805834703491267031692647948029263184464291754186012051655506744915400500676222328364390589610592975590430897287799797947773056222175853077553416927863667285063943920577488648259267525401556735662289809163321411934462369100349261460173655625222699276521030487201269920336800167651808461833504552601873786992640030130205893686279789469445744122262934986606385103330381210767924655645138775715146009604872261579499356991136984800313694508954099149078790884726754644136467091036997041601327077008791489086583326802120228611821419770766487334418521774796038991305612513737578330323641205207883948566898612347347548558253816654009421510037128822091075074646094478030641090214271657468911317324645165301510890700873441145350567088165278296132932201085831483941690599567134163950391532542783486343348409059077381132263619281526109082181809651676777323685140260302053848059664206041790078395417079917464485658025137978505500869436903455140000280445150083395662849640087782371083378393880352845892827454060336961853841081263073109433006449108741286187460460331777385545038408983865594848321436968257748345043865426522468991575213280118852533123369419952185573979480132091136944872714223561753202165671498843471524516994714619805730894935591227614628073558432148533587476976386934153202981643587802462973838926243926102987625029727711519321104624017270305543502195096199537143781086555401592395973530129642495912398578764072027263306150410440698759348346503792050270824841851433819977139223272007361950568099838750259908493530260967284374195674081610829996097987874097462966706792089216905708366228780675711657746220490515734210289248375720614225642397581980632659542705463389647501929343442177613226663142493080004073863929413168372402270274249745976931187450292826881358833608756282521716534965747532764804052515371601235513599102588607949395404372102119252092449165668913086743327693144309988108619955486307057098884017308507262289229324643484464507199798904322122792006408884728063688916857042611828227679405336972763356809316015857772832580512989620984452135518853169482512246190712299133716822599112301794654389201281115605060203564830434520211644655024054837366864388178504749967807569878981894459062757260961985859718475321951167914966943080970085690479115080263477399912805216752191305343739529859043010540174348933468519512623836465723218019571770755354065666215823130649199368468793812540638022159532815984357301301865509817812268869198595069673152451129836291668153078330961975335312163990299770417002186643261811594487918809885570741172176379596586796542709454927610368408517236122463618504526442602834065924575877377038059885029508518035791023418717561145937361582170251663206137081028876014193437889189927331600070377470424876001051898681707109736910138935926535213599886513223249264862173290319442389469918161624440207042447282222995790626781235429969254452802054706426491490470971221759931949877928962027068257424595817628921363171181546501425766839232328501914414705889294564067211444287588967612193122101076896313169374294208450337033732328690863558091948890017938295194907939629131826425421715784302007205704364774431248523039126652879982157281073590617640337054411626598922138008091145857150010920643882195358418343185256083967711479252798614629816594766194513096458231614472496462347856500645767841074307970368175076192809918412265492072329282817377652075454726761474821708218853223580008272882641495303077643793916969130738986871692859026984771763705944034698680282207099739027369509385926133663028420170735826546061798574304316243574758537206356096341809744800481477954458121134283852836338720374088157527509323850957992420163855898571633476273915221883244539047254545532109606926994285594897792743263796864649169660227041822056224368669985638546168594169948367916983937000213663010566672893481845358357648365975878225174000183654055095866428792145321955961997495944597279814943141196110980207413901902864619107012910468594306121391883332380093488127870620200410538079593294219475859945129269457157996564881092065585110368533505713075118611969257943506684341983509755763106445857981650626312501726050204356479860639512485276087725365343307548389012844205105244511203244275994809437803187382526719789766141608749300259677021905986847641288508022011063820868857026801065549390244301676024440154481208338025115417286522977842943084272210965188302270694733413228402543262313119855108900227881661737390538083822273381355582318605588487979586580616366078005894012014909559668833215683020188103855315717864637402809696279764372555527788454394754195573515086821645272294632897226298043342256799271075918036009128616540990130685180244543614571972815543697864511412953792130153989116719060761964749168013229682307917113690435594795935334875547380609428706049713798694080951276880385659798193893078245470462411727908468874964499010125799138003665163233596321683621462045948037582050672378170756084604233444524929494138224393868970532888609512159986703709267245874764967454510997191405163276777378881002148605746454790581417169980598190331645521254668183672396257071835164746207481943340190809943095691611751943155331006831095486840733529841938502847796935534352607362506118807025798810016628645063023653504589208778149787962731437789225471811820137858345644524941184760703655668471440291207078960084629571200602185382317554771374404960261892483209180358084707290544482276862687102882623221326200548176997617235330495335305078092061774451673317742990727243510774350660446992115912179652420348203162623524072486393737010540779741461617811466297515395831844079167670077122536454584401666941222699472248936227805733051923063138678606036441811934369964424224708051832576431936590651806920609878719056391727166991216128005906365295729213645206522698941052327609013068293358453510384439686818190287167205578435396820146953987626781918322966572589560367918284033851451672249491333466980553711360874914898017101890305937317829080811087765196871064462672511566845509875894103771243887305524499548562404801785971843767544430895519104625372852364738220595753536980717790345625293700561918140784604847425415783420067887883188350085891031778849978529311711846116300914987603159555069672933883400696117907816113146097903672261622257898337912305632253147816145870259947755026472028987890958707581292807841804153264623194215881511012530390038882074358335532753351532890001288260337605256923343962666916411725589184111310446275672176147346076617884960117452458156939305929687014946643412971310184339654110168873032722902858080186749337197113560971359291283142443885426355168443027050461571045533938206766884405566453062807721126000524103083902677435234742089412501786574235755643460326126269125610720222779507319628280382685832134428151514538764111114402135808877992262076420298677925294113456617831376899986141636459554335677091358550596485593537724332087941989073134935494129003192572892748134362917616142551244000186810070406188019396655091583797608913994899612392889140738139877731292023027128657350821474160993711396657697902983910041663134943314558080625175211614802384867089475190116777205114981749960616324835012668706333735075148246573920728756595017603278200150486222402241375753189443069315581586095849859262668947487561523084972783607350645786022521582487378216405774433977904386910358355172326115114265847663807652089581364445649536970665934953249457962559313289153897069225833424709007066007195732688682545255702840508411666866808603080172511920377493788692430036970740565610179234467416967410078171899765017312821714699476438877389482758270097119001256912540239179038701824262615029333146259270203518922289746573876960333324171502769544074109384881767743523136793017827976741505482992407500563597275509676061010114035978900375832991247594744848132361175566527856989743811952469857964549049882391074150296597711287123438112481524366925233682952772695531274568620583517873624891595862367043314226975614400156677815510405563664729007507644891415213001195244610553313484892059266870665600095638501603229302732026789366922915378274742572743954118986476844610110337286372285637673026683217989395571248770203993082711830521020766318831396825441970233297354492798954831223056561683206255684048516947177744518532209868309569029515737505358164839553683300693553105610223069273008935197885283891452400058773479194771282380884703304316320955695660234916328219449054652544521919856187324207143918644248743651086375344899503387817084819320721570895780310686808244750484840961836441830010930294447363351846384367282400940614594875710241392429199212001624635313239789163799579493227446576107525020380492415328419739302485374246639295060340149657724050150018239974465601789225088525815825865671408756635513192471194784983868483509734384999726358402732214445936085585923635150100480870038458111559547707173231917100275007205646292317210913411774698855168936532521709426464894951379955721094491079744573289074120502856090874888921012532953075631243174111706677746970872058038920437194511789290243859690119331672287415312301461693040827373688168288571520401747046355627769842999451733435354268577989708224886228221330228086059271847437460987259892886905758716609920317883521409726481268580226473405444511081427837379648686154733364435878521422600293268593661181041470129446487621494208138426273091319961489573613860370006840231947840757629708510960482212473198220457237610983160650586558005356380661394928614896731428437223723803578656284691343085890882857220214050070129491955610286364544894150717044923438528736164722989007598558369424361472803316881604635076267008120978629066523178399937899056715116301402405635086638605984320574670536388797793826338476319021377662911929317608116843834973110216007873853086670709359716171880301953807971032914697562844242981971558029736139389028398742763287944086202907493733997245890937837833692339840451009456051983559520793089666865026247467922766765691536328113529368265541247829907568442470828246497544232214509991179234172746454786831161584409826991853604090782968622351432939155242868960385743679569567746750692157917733528072649423982800928740796606081415898888732302882539331712334993243590337536156390632683068364610474479716436267867273966265659512245134745397179260978069065513872790677585252043354269843940332886004900697028284158512834419714981238268043729655388803126795019589201357077176535217948989344672506663070700640572098176760858914973736287981626689289205030680526389077381209507346591634043742288119862067853464316523374270361124201326423047301918483668993794493022702627657992188593365094000022594050521739920989452044331924239276287464242801556846944898716915528599792164362237739025343293455737242640377025771408259588894651533396175914487947609347857257796491966469249593255955276598498892616602357167441248729458358047309284740452057218338044001486646009072614370118419159399265714683766504746387005848365325459921530986707477921315338034293270381247118263152281731666918118818362267316476799878730193971165858708342354083128202278562401171168593430187524239713117214933724792692487883754980123322446010329203299585185931991061031921373817989655826939376881024745971841581290769897334436476774257167343591532364860337245287614198905010052101875537334899007874189056650611861859861930755546441278962540715656016609501076667380914355637528482856741769034170714917038886604463978479085284452326266757785093980154543882069810572732498295367770165481086640220336817371444618889327923487463244440696109289416925934292194600586039343718017706966349095590436173402095514679145849129319580043578852243830202790477939991255425073115979552253956624466790254447060394211197704045975083667334809260064084408871003528531702733407154380509732204240910408975087654842774695864421313876931344828519859436311743736347055437997223527735648149783407139107695112847434688394210036327153165879157590438494752376831047188403058789958446444494717429244025328279023496860982231204304857601998660186934245689753870403130796534743286366297231779331226181254444800776899764923169661451335361939348111570989884758918649910039510471533367005741154771788136729114612110730439295643346022604323350836716218884661733380047786452463091871244576581625011871908378971250076547231141480340203294155412528297156520229707258334873789571478274847047867176522351644073234408904753711649700647010181097814088197794750523172403032869487399540638194397466064371472637797393760435463790514005738834737521810000924974097352487918724213878378896865938802822709024387606080169639604848492420701435224827364880459668415953873757225801155666961986435894215907198162101666940002857151535785249619606248105937951768346217127945154875921788608653672100588782196833635174580559589277629252555206981632813410076697428874880186856177120323409125175753452949778554352756292395340632055891918080932717024467047430930660255805043686268954889594799959476027793221451605311623820956181138941290942347878414698187419453137554833947681581181035944065757134901581431601222367240808788951668301987270060843174915138187933471746622208818186197668751499563514636952586203199692499427136348304994967216555279354188018377385464090961674612646715636225129213345213202252681393238964990768106091658800562977071193067238827878313106909726409402315792686422647673686721535563065732181767369941257685624370445407220293383949069986340234493071555316375421314921674607398918917854516209786911974921571992362054590054182826180250122698914243878980465300840859463030032145729817616458342752437424854367806483915801493686580148883160401547415923777804749050409538495669199987335687784570336633895475023422314444638687251498084744368653438677226634914544159816167060181009874357002872143597039457602836482363189016000232008112992027759055455443530879200053297590267726874670508514693347631509546178445887383342292049794714809875523641505103302344411603053841326013550886336629242441591448394219633282557884025520210782907675765719237751052170115786695463910788687207611396786099110909949300704881128261682298269165369645999043464035026532419827266159282229829224368414667757318207649663321927944534038879007559157617491752936718329495929882095605789368357180130413836154769437515364005252315041700800728420283506678785220471919612135675421643965979594408018832305287195294618664290499228742352607559247599985552227133266872907224326256387424388658644798722803901580028998530190876326211982450681910712565094641617861268544751928470412406500817337494519407206161725619273554908972236806183139306536196526978907788495727981365832707664614303088077040144925522236885431062426466090770421127296317151050117297178960176421014117420589210161971683233178083008546441809312313254307049075167076463397010885445953573398694792699677946612764525413192608168465636884687371228617137374758402406572147514271498768307742584800824588087948360450304606746331380288040620811319466809030190155164593454330861785511163828006061420871367605713000740732825847996871498175418886653952557273611437734205529681114233706333288515911968961814636038476343271398348691638329958083686407398142071457895712780687222837904131286160959807626716803586139889789598852013846084763639251030379203177196204878172231513880518762168167696993086168550353501706463106890588885097833366000644454851957567463382784217928582601193357379833871692362671079186596736390603271917097635690834485310279280891430587050685496485463811506302802255229345552519153858284113964597467264829317580192509536506975317839479147716449637182422554734785601908362192852831777664161015130998795279061198359231104480733371528382515067482058214807027683311835317892189080414618082120711927788512744199549095272663495237448981887672003195772181702742036839487498571795237844857209238500300328614355870560715014912289985822240342904276160807941858070632178781590518636942151071823918580660251599428514390227242505570865505791389279233873240037044318896725647247758336132997488186206726850153922281251350964851558205741398262820188017861903742816189826716551341723028881513103250366797086450684232808559859263270785557567064845996306196873857901539368282534678307000786630487340138638306417430543688032427793165684071089330450393863084761099386556584878478895906232915982949057949838061888357556692268347109072502326859066570672016956054624525228000273029146468580241081840793073814816860167136404119779778326904462858798680859233099810804456681486757335670991531839669208778558843595650517630588004436920718715750613934146227496389937170252472791517190845925682351748405383391638904293708895373862529937221989287648589926627557474329728654764703679475145236739500948406032840760652812007036637144774759675278582622867144759260182708206510031279755200639028087765718623992911727123758223228976053890673655381712473394020663754320281096759504644848310870618682942336017660010204896997135465634512317383272735636642868734797454858290612212684829381715065454361381122084503337345298889747723619197565281682665735222055444798222433319857580845795163953669170115173150870579276908138949173671359532772616259627457535132865577314843479741273995915602007808342327094446855533425045393552097630603635563020353806693404286745439083165432931010467336263741324851169194965272412987873430990657377359214763458534955256747461649797994430841316455075741039994932373168185638356410192051200645808941527387397653944283318562336128852468318474275311603230352255881434797108594559983278882493554949088127190790632849548066098885809767062176456239965890607533106894024592217592462148927524225888962976207547903703255928411707079312062487591011602139744196744000159233657803913350096647895018066831242260234347774869153121275143687324741761930557810934242616857045611701631754731231226973850653917086190426674005163239442659696177811559891185800433238208259486563451463993699729758015160193404929758088985060535147997926467015180833745940707660604481727070849615527416318635694532388909250577508991426578776970850095110799023258809501922054797297101083983297469064080575477492231824306099553414243731477521682556164503536550088683169738614649845985954677789201765266735723967907759241933271627572396266152214585974108930808337170777051182663587252730453751414417412310803025505829584218521840507049121403330310947288693199254755000967866883248749093042655117486744536914417058215928971693560884770686083493932055544819666311210803207124280142001133363386077292643192843227186043320476513002296525009515428214469082025047364003855888841101093123531011377590872252543363104482231631609612833317121214795942879586105989675039171091812597900936561338018028756310924279665695176812193314446189634891189602930122484747667574369563971387159816478468624105154034809660051612613702830627283961397171664135331078799708778811093898658841395274290419336828129917151615662401973508039733752244845059054966196678206062295930139659498489278086745144963934898686717352489115809630193993022313324329752623214805331957370933853847527615376046815259610748217857045473760388704395096744822492346617840745689241107303140204139498840861864890049490870062598920231797419253902508650216333926549088879100309095040151055058954374321857645501776116391546839362454144552991140191303477118662884608061162282296388349283025503881656115268123385376579735393771837034102519730348053030026797035498040962764929197370821211155902025088310488457055613873830927548412605005684407816106371022655970707794761753483168130651511356031793022256907510485660788579098265513769837013120856658293788868098235564895367105829851576310645574853319430189828440381196798404469714417746815082668626901033599022130980701391467551420856466744763024378945431651723413345614116732342640501947538606663177868499013857488520989877184466578632376633390377153405486843658454465935091873804666500838109384688516588473047386694177818590115538232241907150923065892838608924720183379015796209899565927509479028631114232340996028601916699200337840402057554925143140554572405252195565166826904594071276818273337254518035333057393901044463864907084894135362108362431197201853820784030810690785632746785236071444293623685139970129287630987225057700586525263441807301022301028427026477053002559013139440132005410460504374560562385185999789593049231928809653336602757214865934856444947866818786787052076309976128404208518590071998897422957653537539248977353255096161538428302469413706832780267122613490552058388796199816282318339813543816683663884161659071372553744591851041801225824316356252448929309458290495477688182367289698846527641367718997788184299061365531194342130524602024748033914266382458570740247713482091255382152419891725449019060590525670692549643882866114121093173472737668281132034754378896341351735071024026400137542055970814655748891266285745163894684587253984515447108679086751549190428305130764729300318235368020681514103123643193460706671982507817952492403924138274007518779705599649061939305038948053184193633904964448566915394906896947465289779861872416700105792368202363662969699478179669589112951647911956721622316067897134012023193210502404780470275917659003238647381126197945534635334752061960958943875700448237941713013760911021914015474540243308000641424021221813230574599238664043468761630438680357923587863147273002286712996412009762339311217041754075189225872077455418205229442611354129437629886113424024101554629401806240864429457587276434415985895437835525806687364889372070930385510736648774439212719615060379861185550642236895722774623861559292345162369029837791194544941543111991311258363149573059739873609569942030914359836389450182809600251357414918282443964193080691414398984075334682911268015332326635608629743069324283832227081908322100900641205182233979356077126533968593785156187993743903216743478144825840857495159413710564521650819799811785755513314343872723283815241591794468988736135891179121507813083082993985909055140507712516321577633990051135170008404686017038415917176469775429162009075174284294613316204758716086583156913539617655508444510162648576336419414511559245226269081305113085755951601691119982591962703033110999311129476220312568637006831894011102347511461251604325152667560021222042296080236931409222677538051119267359361244077119807843259086524467728143628267687757071301283798500311669005704988934059903747039742467186703879854425950648078585914300428244451445300065569184655856774043614995720356218081497016882022892213970423842719577756512103095411982060029917616549924639980696795913712053535328399481948399425896909470949768992363169021810285399856060591252137116377631166482612656500673972005494074652565252540736518375835281968134716994135205045298488537383713398127726181527550856744768346132911797383198923752693545707642130751943234734760812877464505564739149158313529463564596568173298134168239653948879023092943998362197266067121498889171182508130178608556481466054418462663304821312534449422546334491122808059613462546679573774428419281791421720058858466900721806706484260712584900541223606643865072764687857323949963080576147415555992499284504064139028845897964388944262024787865735181259969734332054667425715683845904540622952187671440814924275790231113240885576970862628051769467036459291294635867540860825300942500738109584974734878689644390981709086099551410431284808795003671180934545869626806618355697599915435736486546632052475426833950973470287906047089426715065052793513686200252304825337721432001834221550666900284950179999205108979237062891386291924477305592675553821693869967074192084086479975212994937744939381857571907574502977219854417722364978751804605774599122174375189899866227364892746951380703243813924866253545114977317163225163999751983877225575688754253464629687305957107198941967446673758663194434416269904596874321338202324359768350443892247690572988191100343239118952370077272660150491895347901278259550543725659137508045577823730624620600771409231158694198862892485401336064267685746770048591556958035086329174643975190196619566189521538961072592029312035917361968325904816606745149744813413682019425264465957518672534192585061492039617851612448849337165403285944071676535722861535164319265844836290735449860580807326083968212184954166323531685377488215949663201863784653685945602770559115319920219891727546995742342206937230753968939272390304198082915862193537321919236363236099725661261456971846547828481557251142447306316567624855806304447040213768994148328199719144955734124520117544587278298351476764349490605542525884792390155308851910839720738312154486866656560330126431096768337871332321956932209414398534065106594228463455068994153267273610058965252889394628155715217280924930204398981788271503388283890223943644533886509019630490279038541733559066235297130171473671454612309470290244147786428521406388414562076953977625089003675217067062953212342097876336341422462413345139530369624900199867736045119109166245025011755115990401779976134552073883453785781874828897699488507825299519581305789900258752405248911205045919832385791481072594486212686061872320818291102405180490737395446882948588972748803642072016394965255825404753133312099555202440264287832710932242618732453167956443627138582461779753184634762898722725218305912238976342906041877523680772616953908511262322684908863345466541118325417587254147976004729536009248258220979624734768354430672661999519835803700042256988052911770563915482260356489482993583855849798193234129605101249365463087546449419692872513541893119602487843578866066673727180633148641212260213649521585977190601833917977496834320540769663971072969293527855270598153550011764356261376422898259736387666168398393315566432783366657305205788225333383351581515579283667092956694230423809951456065095345050280831484272682163340346907837919354058580784069200864224238338600796279432508527089271417481315252756981859850838485648666084691943160566026899759348726533888061716009113479537666540333975619159108253837771990255784264299626528613811692004380449122742862475657914759380509704395361841321712782332415886109276707063269099548018798587809447251868948926135977315129020033980459269206430967335252412181345548373452657332878666087885855092000574491839783442397562837546652954541131315206607065153621837173134766824946560080114700188483495780880478814529026446260048450053971874959963408658139292538925075266513851061549230558253580887741727989899021986769575165471150441168544199593419447956265120199347462232273267119265508348383800441242874522139736512151798436272975734393193826082895875632993330445631037814333956081429334579920814792955668757141775979940668412912489326904719817199369205715961335501328801156179147590879347030146779409546420773545777072908743541409711459788690839812284338224194759881013861595256524943548661200353074646098509634660144345897619949117297573970948013297558652356880875272206483623637415317392900536115508731714155494946492301517352978581190190262387440420213608047157487646104874053079766391777539888509606615958717260445838325962386371930784266642228751737763499114512934644482826582716047961090644779533937079338660520669646120142684484591106310543698805715760946360168035162637704859887382375718023130889971337811267085503182145781531466397374269424879087971758838887632109609629387567132477507004448955082618158222462088907365976273302920850997863148224728325026603171813191525798072903538322587862776159975006567406678434697013520026017927277167953850330171431311638861661876647091556113247051345098036112887926887824401961539862580941220101117997802080348150291197634610311251760496650636037491270682980306869000710876764968143557923059164495469950745503053168893633168494468397088208942860513752388208451311428601462864558489176087313173382058128427646255864729886810284854767559518705925434270469415687981412146037905794355325684751672118254856815626708937813718431227073268833280995369600840404335276725196866352907109782224304122682037070747377575035811412312895746457576990127470016735890476435663860780307713342299980208832940128098478546196558929623885752982401730556014988334514572795372514066741402968032158396671779572062321271390188572698078734961162825119329806376566899085957449948472670868145873339615952052882561002760232479439821925528751506334874783112237191360104427655805518358541062428062013781299559173835653612320277895402540794049784596217391842988587751580649989751184404911146354192552134282064056890245615967413123804713337787946009575407879008693535206784867968635652281980489705901124963514083864615351908992093993460846632374546958655095657217515161352405696744163284830449029648990093804466450582120653245904582419904771586241039228388545448201825353501697133376558401428288053653571844806073312745057266779487778265149570871863654188223237259695962502005041783720770807476953557763465131969053323675461858602598277799566480972032291270130307765811878735159098396967732990690038283000936157844501443360072270367530934265777989633987891211487883110520251227635419472453094989285035742779839475426994097045266570067380812830625021822487347370678735671619568795154238281564365499493611770067855292878668820853082538312454045663405504153466665648609475425410341434667163945589446599035048218927557110287931116021772757412687238876990828065018386042216183645912337091272011172417231547265954210593449144319117894837879740727170165397604437466956987548391666170389195704687174682752254266967210473871078369553167563449569135526369680869997959157010675606946773916647126392064374826691468262721580100319089783597692352988629641177050286147038090713025234716337145265192914789488749857437576967952746881159280060216336806752076343007249473962391784327823278050292064999744952695929232966346089268444513566518476144845103864802143731548957602042499066973750465289397624364277106007007333745031666277147094740805253248531085319061228717232924442494898546550960387389794383863038009399863314143912530696209977086610163514968972927885265079976117538029763039652861262169872455482478444400744247238317458898730774270450331863801307698127803155409945677070492120400028271078847199428416114263180728137000877666218625404757025647490303723788415860854574552543492861766839998533385305522612148531555708099694929242738761848683637533501137118058600786504470741855932599214042536106216326704197035690927899249323150798889624162695934968330756677664444012412358498724978699776675028861454026820479844182674103066436766887231977335145341848379656794059203215571395551521859758172675488915463270757482180338739303795589134072800022084660469866469549090900434036662150506882310947211272147890888716929426838239587304291350606703101624515133503006139936064683300394617448325710361729678916147608251210539688644835051164992775744783728076557498858005822420470033352134235538106509666116115282296212150513006173069050974411836741777802593190024452454245533797642688723309764940397407114829165163767811016886390044499014755181097131775352418414176600138034691455583433155971042700370351762177650225239213927751788610588273034371112767226273566217175807313817607481038902383997042206376101959066946795414770019580467608265340323394064413809887814230870506998304160278105658817878694207465117363747846509700945930783571149960826803174931423770384041940199748006799253946542433738375648183838250587605057403520304092386298360584345750001934468683621937567673501180416620235820924941769570408410844329485213177345654591922556674399332666376384686053501029558571082358630085561214602092357292086352345054434614317405793793152016060498418962134960180805644604556826020734746360646267303371735765790436027728567241351813922336037934932417457228392145508433942317571418857440234539001506677192714343268658246452581663485065994832389856974157243409688680772234192207727669781912646245671604769719796373997167145952522112260355421309949937060712136356951587091612181832186319649519870415424501087393706519295071472022570331419023996261041572827895597761728361480883470932567136171534672391202703677654346757088884850610941233375408567296393354371378717748422625443896208917546312623440472812469354359004805408355938016955504495002299980973731200974491331590264373404567811869276404441324209925325159919989392471369056010920675211207496082685550820840870181842582373188013375592756972140845320348054597022039567020067772174553860355348653042354551692480811854932302735420758769526117859812809425274320822811283644802622737759327240631493844961685337470020864061371765480899936763447766930694398954628797016392917396672928823995420205563386641071104264730575695638750408989683832574086209495650696845491891591897495441644294525862643787666661229642169970306344715072350958250451151467295633085031230653460918949504636733965775859722217081215573681578249438795248189517173050427778158898377349390510099942958402288149919336628393729382592809438912868184117212828048892240587323165904048937431857536150813772001028937744017398621376015704617887858412442439927726527925809973654447273194479537233735500656363092366517272606091736005259192064607712231349834040079003688802602768292757683245556972589299941224320167524555469325371111205676863156210267908072376142358107552455946279243487734149950657984225548405347945758030873907557168554207163440151123230052880113001034702745671659051102909065775174974661909934777651875655965691220206606931851518294356194460108136942185168062185301386177853742413603933189101309839347982614318194346759723074683607553447948080700298804157423090740086948154897929393836636759247014835881692452413899868597321639581168274869797046916190452821246775677110615595204415765656124774608970597250836851600038509469391551375060583751599599620328225322473740371549918079590815341324455889764634099387569598724138875777857395327739958997218289595003214450522611619002172411877878970056794215925067798674564377310663083284810980471498837676988168520056534551016736841278444051745040905209195816717867134753317503968589427131127942177058664477500013464699825626535188592156152797332227749157030591398826105161969256285127193627343466290467551586055313167047464283181114426063116390262659953348299285516066710393635708551619656280638020381028259079602135602576910748925919112948269243431129242988976715796714722361126438409571778224326560032578001319061062745879151973392521340620905527199449671005323617314678050331500878476567830160035765292086435732781881807559936762212148818451777498021971357609753495602533296263077921491098619361046948592956679664480486323994523326328308477638867814058333604706049626384602405400715748914589478839654592416699644004985359316444753251113369346836710790702849211118659279076342373008296018453657465238159705855845328246014144572839038294247846314663654196869577502523873655194498806220229539274392044584826699102571767577444433762305195479017834876856831177449263692518556646364424311380627460401477568784965683512032136657417953149293932621138536559320357131701247098243258615459185766578207859950856128457471642327725659345106829232025243461813606797351698574265890841320579472829485201901566408750707918131372779404400463343791178095573869425123182714072584525414561604623144578044098415136939923446064425112225800393695972574717119200577974703667999991859273898680607633254714069325268450472537470465990364693350093333552982139915279723784681144918953275855198292631220502851470503559283162038043634487622937454396767999464087105510069747412366534175068920258809102179343277883118154395051928900387482909864889142153386581296542108769099577349003088468439802103586330037064391679785016320691655580709537896436348029824345017792535531592820976499724721913404794716764073447235908985620118181146702696585318804332830309915591350403483959632877734535415743321627085923700305827283046129656276368612451364324012438000791813768157641941419324873382292363380847657336762428934569021779162830382026311868625966807795509899839616492370977531457683444234955458139100536216612120612512219220350158950334546543569592153886925906564498673220115714066173985371352205774426798548638492679746340979505022605388365887584011289204012160758970706403935536225497625108297268629188325226875914815950230206627318665780015449219392133610847998487881308886708424841945822864918906093415436058719929286234711388887268221353476101096168800411446155214862831826571817403699373311234448590850747904253200510120841323897672252888476561321020894612346106190285940003452557223975591068482244497231418446187694948857993892327238463927470135898463617323202232602157072743072753216338751097791470669172989061788992581950807365682435970289676307473275348370194369455272184850134546905857323291117798216522737100858817377475925807080277320214920684402254748834462180629326094608783320070808316894112385242925435141284362473876809653211819938763351295735479694819372216908734697012097638418201500135905765605228699860841696482298548375043373826253596459171098957941852095183204099643272868737295768724694860449278533562637821541953201945825748973149949635866139127092280271989481646224834358706339164689683403067494757496536707120314142409118750129098936645091591972411479718303258843099877501274787167261195618657535387759893087726268401734736790845464867095219549171580126045496443229853396575176549202654887832811951224585983533694851809840880442181722284314158868338397276531496761548967672537857695039384505059207423672060413393824107375480062986906216084782052267495302628763413383287201670539560682581075963625517284665116494869566853557396800440234888904801439201547165041553818238249911687205702828975615780982035418825636282135361152425961221391693906688482340660754726046974983034282258936939425923768353901560434093505215063819899891325658846268823491413990452250526068652821276253729159747198190788052120664222882773605576271593608829694208989416968189364770805851031459423658429368913970295493471932634288253587007785720402463577429614426209619257426679075477870799662753441571844824039264036701541692627534686824614719290825967609490311203045146400249964001936808958117866297737962550495534396241340719400585265457838132596471349845435512125498710611422815404873172235656458004463712060223848605170010347753272286547301800894932641607143663683576116554890994915528387137294301077319433938773421311354256272961836056166068263205959152043042195271238264956076112955347949985537509539372593488929461565077969753762671234271679688901434868190012365187048196760229060230900522219833155487587307906710217172710516616549979776374631107811961894696281088263392187566288084283508675116151886241393564240850288770058959247931691803719340031656795571576900249471794922561620844648535985099803344292461121714701222097773778198748791489222163435070128929668204369294540680398549407119146232565697460649582055383933665011204119208862216695219611409054856777159854321661673052483190507006917783334488547732462972716188056576103577731898432157468179883077417330121298261676127905037702115404975029642258650651787010547915851847551356065666803101445773397753484930531102666311930606087001642324646187367296792853374911073181829248926830875101728606075378754046728463325690560422275996360468963504261222985744429567220763066613099623733946493540385042080165660827531136738313079308334100831848245503516449427766523560791967573200420286730826235642641133288580255298903446830678967865933604541608212305227025919629699484564573696734144749520340838951345697625356635558490991136157238771251549628691831778203577604623489831818342309101493305628502809811592836915291934961036219116255285884275237977744378792471524823963995942957016530246134248951081396357096814826046910644575440422459807113645929786857761595301764086826386574338597656996578087686418094246734577373607305854655689071353041286970884356332814836887983351220393593112013759559505402749451119719647680514700933483259523217769517917572934952160605507494447881621071582893561488174849641632884072144099166709721281239895888103418366149714808467645722126253586319036102284658022472297077611863151341166460330413735193484192715836649142443045447215989254625166827992796794545501280313621001388099100031759009025078105957701067869748703189101957252956414385486182103704508306309073426409097905701425511468693860738827754518637155601402931906959036956428764559367942014089014964373958230405260525324411547554254685131462388023158089272440455472490039953538592164042916124857540417867731518034334136853490382889513652268529205303200321815912109464761729164561780767436811102389200394369372443494616321958376530328153856607849470663399716817127929575099666166749163606515539697555546712393433944378537853606875605116830864197291647210104716833603093348690069787749136074011528504081700062872640614453692630986304839321697661231714076147729871251677323427003775705567206018514611545710293433429375571394382278378190342233639767915956335127400466101470755310709657465655475345549452657349691211550883226329418295565319047939352404035423059221378172551380930822840421577837603141196435101866336064792419814977039604105854694494711996455543765902424340188917798733419458011993471245846993388468978187788650387594325245467257191499985402050175943229376397442224022482567449780538460841211126382063116713255116197158071199567573469606880994584713556416068109024771953160198921838801886282544122579262534330685444349914526455064172221013664335553849997076053848699169716331572003807006603737906279066442265703515363069392063916417142215552394217152965668720056250458792544639651086987292853109598191118409315903203111007269179081262290901235532365709707417769338249203632809197411851181845603314924379551456660510975510141599114032834326649560579072043524492136118414739325947867235919074477031320485379979695895497236069046760587569837969978880494752285494563440217052377783243064221052001736974772041200581795059519997164106874585053732044493462421450371967130548592738276224476132299619695463465088386542834671851622306293437712104002776405529335086932098143993656519916090586822649433161652550296500344268763403823117649769393009918224765370533689138014692026790314831493418963048693838301470852634283973416385050409930316032009906275463090035326805427630507483324927796508020855850826046258087197674871204423047594315829833743071286257849401882419664370864255419332434465488692560126027654325821509171243854813533732882343211012040189172344051132437997613978306089096157412117521644006472172289463883786246365752780219008604861869923846965877705019745764567476067385174275724182883363361411625453155404182727625419858780902578819496947655255438855567315737390630376381680875718268126232091176102692941690166502299284706970457134743151600653061489913166295314624816376724515467661769677449837322450887163700122439477266915457841657969675473480537678511314475072754909851565934791572499243133570470934306154970124439202946189013497831311600206920282767983165937052266700813169297078443685101167234114795153822942268892028893560962793395758778001062567206261737573730760193958099273799769856152020017355690979080300572008089924328112774784611138298552369270854956442427930248621041805454068619458771602852898685956310846133522771631896850115939475133776226094700756328324899947505021203986234650625475894621643288234709502236207708196677924976513147474043268622475793335729469319707924882980272285259239806392980424833831184232536033269019899656557365031141197486978856635427262658726696952061961594374167243699859545798522793873333671368270814563519427569697788187721634678887672289895810960809625675079765603983484456988371831064702880764273939501440517455550102729420683837413964077688543174066503458863088107184024846859191816386532806456578203655442581857947376732029321607593219711295832299516699243890320720358855712252878065527141355639566719805732625338668093904099791323973247557855769588141991778003379925138418417991174386006701393643629564045105043131227473418086367255829343508948938046593927193764965821884986550026356277596196824720272441672990490024833127343069494307845064416983940277366017744674254405987823037570423817472061547707366711733715020667985848658128962075124922020492071611933447190340685811600689485895663767239369509146718931508150339323311416578257578279383400595108592429296508206002146993024809831730520716979275161410451358842131353261313697996115410098184067524564015824688870166681586859777121770367581485855383456084064304520045614839085182300728938889753828105946225884946340403537098822878011765009199577182197338934632599303337747788995404086473791117697433146888721748938825328894470382497620741043831472023245326995968275539602154924395074286635523671200856833784701834319462483393784589887179276368360705187430577902581857313648380255480404214469002092255695505703318986586544605125173860167713078063391252034482605960489336106947672055227263493953481337798334339769732272924134681201927957569648240343217679605161273050632076188099150756802529826965050594160929018102605583162691162425491428380350715159847884698364757580993969303873562601340116308505718251977355478080112110278176450500964425328103962301040607857697905878751315214705418093302826193307390609685919979981660286098609910868636414462767889550785147984519033633327454120990528996544112263562208818324123540345670991185372751165488481031621927507660302043965338638504065230509236176107812536946104182155931512300450846278971602750176079016736556796921380549499665749898141795779459494902240645982432611004772370866990679637348376657275064848489190756655424291855356333047085436466332027226200017976052236722038779870535890978867491814475808497087650097973753163271683623777715328859400091701849534950271814393009225623755796960140966279972016749713739227630806537879470015603715376845937954147616926993980753978705286761561895463841655150467625926120026362106223591307358717044093444923349021804972127911924003117283789816275449665037852249807771268517040225040616484086156211675928976320390080690210784942466790413457970751304147568703917862112812808257630389592762230259222436635738343436442892718136151087592393407635581360409605391035807358080198533221817310148782113637504561001915079670819859253736612400778494205957574084804622765027966683313983067337115207961346723093132982134495952209639408746346618261994329696848614515260281608067179935407782175157578697957915169243144990722261401323721948729722844220356005817912304258105188566267886958946475902344897656285605959798409242635772086394231539119970118296843928888081511979360335333480184444124288376301074176200178532990393249714488187832899333268946151717301767195250272790371535303296485686617779554758863265274243409816833235011601160019435861411496840426389719720778309783935533013976361449023289972714243690231852162816374177383632674615361374597937532899183109832097921962003355802055846888886435195471963084314571705617736059913401774795048454855658023963632689121304001754989287785416166809042897863889783553973452997623840264807811521454846947066423961974079332224454245251696213671950438729660143883039810818412251458205934677175467124782410272215623245227326907058588785128285099772164783385457580738604703331534556257636707156374973753238347034373268813241151858854764258256136232900392745305196358154118233571876837582207668686882008787518383929381346879121082944494718019481677382070408429616774873104650771335076585275274281167806365975097968727647071992261364187596180434876206390376278862207247141123673996161336775399978710719368768755539667225210031199238265412058519459661606771826636511413112314866034018418164036542445670310310049375945210026611150587411427792693387962029784917440737823503616253352806844395208047298380806914110997704464504203751411696262268759153020296591140725728785264894781888589026753886428515436749139825384163390186503092370963451408691870771333970590760163682610283078589722466656415390312120541887470653217911961893217829079752553060017836200048582157568731851851497254901811619635028581216257668667267654972710334052812133157388608271815190223812359200059571904212106372111916913294989681010994742270180787228971539658263436553611135540775065837476271415488006759649013757452118829197083405027378727621758661914108552669983354408723159546818016116388115591837428253614998071266411304938830407134256509161076199322704666543594464237089458906820799719476386231050820820665841710858363092807168160029717083507340926387266125666200445226864837828914999436732741447156257089114797111553739626378570886675718058180048097458508063148119747713648948281363426753515026605522135843526648435072639177625084698727667910863626268064007329731985988311274233495998225835459944238756340552961601995235708101500783913263244987793885029935923967755979428151266523748258295866281969353381470949318921601546002278063860277753442990861796448588757211886467950214769653109342903148092449444241287315749988342304803440642361416183741426410933682266982450994664969225289846161729929199191718027538169040896275538133958184555074242292734361827676999608882560294929800825278071780675426645788322263573745558800769300171331775795229868531339319189240092688700535067034904268077529159468009126782217449856727109507809119713181629805670081926779920161179725414578396264552076636237867391107722598213644384118507289267653372626817183568248989613313095759042044494832858732329923212981802736584200973576872879592419891307848059692291713546630287793250280105613918381366041420552156430409806543840655927212542227150312732259676385502557220423310970281765178349258687601180170721782782940391492808851274486527854736344947355421208192006024459133172554902683890143528100882455604066023537173866262809811381493237555707224977404358695750030133082600659802479655070052339097111545439087057182336609638333735342599651722934580201604368567369501770724244756483237268471487056988817312700367530145030965734944728451236304237037092446083810274202809123582316568505497582232188986822620904651035835337982064508581172642708647092429653489629156184352225930560797803471237826014437288887723433011037379165193215655339395688112918522824810201073282742572866423324988619991959007153910522177325053571989993387877773400075464637111229086570110697867548897742039249564576626682664969632589119980196417927757335818104048156728435304513399704554660907349290268979041417841306585452951482820179605908209864609338404944506804437782861386798281208925995439074745408089999386955464685537713628335935296113334058342941915417998196211012698945887140951236093458254573058302116317435760481517952796243113444987275590205448788323775825717009180789971349584628863773607947687991089799701884282195120255817328074471201403340743744648161806571287672675268362444428196670648098666973965411625645081206416001666969097062756321128816948699392067586049714745784714380730208471562945113288156590826553663874362642703767727986166754508604434331845311948099565247108980858514042706074276035335325558545727865050470961706817713839534479430444004545140682348861799396954583526045228013031907317531163377755475529286165202066101611048771504136112855025512054938532930183089403514991761047108743438258763915208511091241017103182876120612318296253278787265260048262926594893635439766478736266033929150666322522401114504044434065667996115608953622972823614397538783679906170328214839441365875255830065047569502552818553464820182659841322819981530691749389181751315092130675045278215984348717920112811470710729117910662798760830342014965988652704106316587104658061026283511615630447045199024567438441526698152816269979623049999171090121606126198810002175675865545497612940821892368245909520187320341923668616377866326079523786685242607482667501993331026682247007626750920517323934217385992988557476698718946221529149307816499292621119415021280605054093515522594697782271436332674195731690213891111726839507684620533066156612067091521212768771559065157907248051752305070990715761358898434783233624905359066788414172161186664982441957645123225676634188113484335044632666137576010909110289769527326883812981760600535272358154130013566131092434933694469896140772518956269747647551088326356791423436870965569073635990043981691721169694075195859103378563411566046179110520237311783677140245121743735472415200283963166569012271373746445686539649633893036463567801156473807250111546625607282230726466273936359862476500098850469102234019549497749749547150229852559106788493219914925942114144029170980532852224068792751363087061200438211687544330605775352570659733986628616910722381756460283908844364544693030052477256642188714206694867520517442458742393324527101263544645499088143791645906600756554981023417636821769918523701976636823280745262535957440578439656082842334921741594602459887658761785561953340452822062114998973265462872580530107992291791597986458626378745017438725980502311422805670297371725027421027256833947624651651583915345063561364328919458126815575016846476106805463850830956869606569072437675274219271642455898891525628149203087124461662684845710348456623307709135193636873247738011899599901273546593609380851542904777370956441812719585760953206371444766132934272568990919488205886132245736910165926534726768560179953581600751877338928170261769311811668809413803900110341546913165906052450158957902962552583097915928115164337486571276532510609153798900169986705185482827226737433585340430973940993773108652947819869544522521853971385890285026278393318301605136471246929504812906469751150596960316617996551933016575460254963259475504837724073599156950084216817262308859460094032415669713331143086210309241991621209430338027083652815667922135060161525262697936950874178864579269349191123848046575921825257844170052543128133750431035136738473632603993073332763214578073476507717246668400076597127920527851867696013195623188418002652566331069079928030749507391429934795564961258107199955078354288275388020489161893522548293412102959306299113737684844361233571484828907742652146559865161868631832029179862491179923089064965090054477950443222888591985470251039613536870843952034407115367739075085993029923334282107874530280123896483481281440199041947426133164129249188423475750057567716904822830295569328683719762417413283517706627061977069410687760870006526971425242798427553071100780238325121509107327021930339246181704164851874406658698559015534619990198912194613821856759658107833497783044198088639704423002011147446134398435648559560549976899141638105275963431457361374028045616364765351979470360514518142000972727661333300407724751785726836193584599508786257641531831223885043876897765853248573930371097902532641094752183919153621425276213480571958811171132017703770231308936913285169671317510836954097980828617396547417370612320737627285458460057031798622092873872921931555075591076807091434723510549949922257592152367839032530033687338470780166377657715532850480516959865913242419011020219698846722275312221027424478082618843480518977437621408610120920059460670397901534841305744279935863043384743769875478461426513960038995963106152931457552302497156087939989077106753888714918093878367188730067381682248233465323097899646989865926621877065836274600285169439712694855844542022807065784228457939862027966492649351108529777822256528641806563405403930086672314854193127750902983354907880277768932080472890087637525678585965497001385657434013760932094011644175535551201632684212393297545316247770748562867817243196865604938001235498940490851969120542552830780509698540090183846419626008486244809456912298751101263527195744155364141432478585835279535792782634939093881058468126716187297203545699324398690505738458985843501185300899180931563164949204760621378758364966936484512626489040134344487143940316175544136633692911796191162452434311420970452690493462860563290040649723126586637754276861197091379704827668807133586536798684685487402540956060075438129303526235675084349456852063750183104937512727185363858195389463696270906468101285143130431513436047727876612133140371127091895980716591136315371787833216801427995479174179730208910024327096649630744807197592583130550827379828613240118267308153115142646947874361572537246124992173156279373495695420776771583382093881270434813613163026615835712024659357760702001361427942682947257267120897298763162488781471999381703179892896376380944753824958886812043062358592198657028219480630931241866758144567103205330448817822608013179180598573728833157463145864368079635356921283612273933104248077476158224947724333656221928222220821141046518946340714931372901239509086081980197229765905278022389148907091807458282110559060204756680261627727401312150088947863800141190166147429380520162531504522791370039949938628203204503623989996130629371184176287733557011485030796069065630114565897852386022774432400935924102022130121280723021054654933476772502771886311598299511323334822521338014711627816440377623806841537810327868605013319011867272319428118532135699708689817808451124864995121951070053599331686553827281131131412890675276450161147340669321516120027233659545309287904486439195405535596833222437572158609768388135143360435227807253843350822417251500145876215103551645911596654448171310008674471580471480181709787195475951431154087142504300052335492132920851351495639584019373309686272061457877639243894090402252697770407223378896033030866518949977972879833865712101572644951794472255725674846441917135137638355471150197714103162777424422358650609879498087022234915749380955626027163063530699370390817455893596099743993669351372255019068857332753224785508624439536688895903933054033629388974095532458648216860803346062457065934745225833936211021101531262122445063285623986856089847916088610267525080839184104202220316248952305516767861134589243641701632096568290546359214033518539325568515685574960693060296723160440814455971761557557797520966062752326600284690160491571546974280556357206736389548528839040752710029664612023964098365423341126660057313427234826487537290117310339485207420484818675598075032546927343412169087185376223025880847993427883802380780238826689494752856946360896834655600153507124710270342416386349819940513479560453228592117309592768796146649639303236217044375326941540005876996627245333625376612529578497458747884698203050685799251532239469468777398789435665120879187280412748177260077823745815895304038210569724808438952171958724632966709500294283177418770019565507265256592456399257264827509527344628977537750011369993273486301644815623889796630186621302134968301874716015734165334716571044232676622693108936219116456536529934927478215381264813960744848816663588500666425981105815263271702299947370376924211469124711892291028092887326725441350043959010670082325971647824701179673489799345290312530179171989192998325553493716526229077777019630642149999170251365524947163364232284813139995443904235249128441766446885634304311964729212915459615748918422551191932000257130494569218285824042353312902171792694847683281494465604050824979494642217706760501702736312639079676203672934701008203259591659770522069140041990764226789065491832209261799728824377605305678538249929169435133563005371684723951828508419021899930222197592941153582706819865360284058186549733472896890124215476966338383826544599108132281160154124455189908576756032552567256330259706887657307777374974754441964049834521721772843367184528960463134922530270231992257979720503925064024845830216449776224147862821520469772695137558141917550035444467745596985469633383921135381164373298590770494402756776462328343030113986658206989911231130507102767596201891483978310005210931026049193553420991636881989576428064783344422552737405926893018520526019223159991265781953683776903810273178749142906826387567032954515833151321077594483106036814676347675252116544162084638415752188873378847567836931890591497966218518409072554902832941808728679371087048339430474774986262119371976720722965127436526954272963395592171547671979814962517618618149714879638507842677572809955454098366388938900733972385538858196722430677063909250152441481702320335777753093722682809218402735934611392520483989028823176175999098393517314141296453532591536730204509767948955801739557144906098263693662140800622982594793968184127185313370633449343867246674743788575049552142032562775254099085161064569282170550889346881696169895056071619587644873655281447858496214627916401608181294102335510674771585118222646106677460398302342692825245590821820041292655025117989590476827412532969300937540068131090842815839659454066241831697489202965710259832263369058133304994383256680605945048257782677604140379694012453088081120793019115371521849804408663522857896757287588806089787297594957413976385140626533196359359617442396316931674068272302714005894268565083600936668068294627324961496834838318968033455164439684943789590450111386477408363664821195520658861914869404047252397494666613239438824927837082971561618640076559208024952073943152551154373205867043930058599189095245830440037311198974249296349919612441696022649127763264806821837215156302972181050905449060550455928371312027326364131601838398123075613137809392168782850930749388281362845088757193440818872465923629860074555339193440134579518792498405883337872810339004074892763173088971205359377348678936605982387818424882643545355206136933848097567587429528962265960232706050801277359797387102299280324329269808804953746926404978035201639854235150025957913067809377611132644775409609259155637666461231495647779708987680863798931267847523771540966609445658234972914578667205389146444252527385667399468808525273345180899570636161549822633638847108149933970084867523116964974685197607502897004755523328868917445980814931206001495761728348349962048605042021584004867981554549204189610867433072687519210189081463987837558593450728171949096740067972174662968137045318893591706103000956671609902470399264351254508036524947943996685448848101013002640761727024796061846138079627526997242556789968616099182258399367269928385881203444814178895181085839232991427370108676415521958423482219134662122952787834807158761428078749571331251954354282480934185492492159278904437303587300870160031339328705840561473284082288478577304362737452134283172669340143503375363487936886867481010016041868344904068466524475602116727607995577754364220591864763600450771663307927146527738513286820550552852912483032840858884915020684864364444634134012503104571526514884663281211092289114240003849987812064940427508094738397561092518188478707519489928275785665208520150743228619081948983757493273138661326599698179674263383651238073038345866079938132729855772938835206125490195217887958712620941723152340511753912034701464117669569658646932919504502603193599206503581451105972782210625921927229294193655757849787303902791308488512769323869635688754354784391351503853643365416496880143364034580255010492765527805227477207012758966954592626881513157548215501040145952802504066233006188122242148549695599195306849523173262061069458534618070303499134292478573072030436555490378136833427980617098902246203505892405187944108171926798896887721699748627013343708272147587842714231559060631291210380755587680203128158515489126737170278121000944357019367981900394788497676243750272529690008868531700474195550480424646903687545348579154198220409075419035872020793040937307852084379927919560420126181192602991405950510067645200326720167628132243899824289951700084451014532270874008463507440355987070338160818899326066230713842934510584666535263810929097981113402696488413135112283965230655668144844168884253762156109998024213514884539532476619120360664389439250678256558168309909224571199690081728204721878999663007056664806682296167459450684988119192206537466861555435718027628785743745150714421618714877734411860138823495532267325743063323017355257586150625101310502150879663709755472127853761410052212401870510120627173899828770015499143581160856360937485194187632699234748783146144820678128770556845443331645769193857608286199334139140951758137338438246742355546085511862955300624026140155618068602470097634152669055306239488079426845730773047809076240107454054235352299688608988458804472542108196531072323058501430473090160389211182805252906299189826977826960398431463981887457105893880114540292791805656999528657095064810559009640916908581901950037530972853032103831326927291284224021712671472367786328388685739088147008103027952493866856216984760112552647107166943232842810538659634776440089354513158405343818818333406363804895498571511784715196033122017834195775104033151563185916009757234857444954366831863316968356444193678085984239048863776519558633989041046253173281478791653658538963779914881374293965835613486477968687340200420812496508361293015861733002916862187748636291708154905570069235783716325415936167530607854016849550271952668828624329081445289751714788692777849674061721719224197566283048024875364460828395579634940632756147869075981662528283485294829470346414635210329892871978680703589983562495092566288470315899606124254120527558926836305008456313542122955758364873587516581869018661589572227473401436153322498359204383119257829253093635876124967574492224093657619498507013282231419808226198294763257141306400783169618151194598712771930479935811595911616823992986443037589506440968869211333632805799358077212629746363840800781233617880397109055269464386748172199162849476006864844735843205172079474740712541397116615124203001753321709246492523872308082388103809115034087541773053544762485354393091956379126949538045100175320991228464687724829353451274427819118225953181243956266519783300931022222409403139746391309049829505805877300195234346969796590352129065085460889913689465114178076675997385055833494490535663039626282954887190514212215818829679748636039246316217803211900115447109451860787620288357242180279319311433241249471044934273855215994794308438176828839324552519310857009245281039457393001867165525783755898190327962330205357196455396159189473765945418721312285647125150599328250889601538847226757973378850581506146767612568781444326330537075644710979673745084184304675701066616902304988702616449333541811590313351774006106526621148537509042172195111741654862322270679526518664166119154895704190317209657954760432744053138703300368031724994669826363472633936792734141868412753392674241056635066399228463186022364436068070926744080931744049697875331693456233681422623089840165136805210278199880571431755935019490060071623738460415962925330745386020401703149616901866570786757019135746826810105710694436719821472319746249766682142177608048314995803165732368463517005643898347510263514023220615720101241582877824359924647244856678581594661697698725792110089709657950551233889636483753969229359927735262880805991837305439335466426577461735769202537969977085721867222737601763304188617837707038915676160078243519883864528322889718138981695094732065384895871910446143318396116950242759748115328012656708830629340546533896344862892520271109589750840444758906871151248013504513230214373871479862763168598777193885200344545474997496946924235118288447083795263388035990089159707071603705048801145883312764861806751802206687809644849174798466139226840452629208573746867222759210716778257958645372780976831663712935126835365879125151907702468542386750427486152620852641948764423674881352617750228910286459655722383694948322970175048373015899419114854017172995954992032320223480213405926289663877890265197570119638385268956969606058695456163730790488383186293325193394216083316518692429322924893003572250624220447177986911014630703083512359763467549998209232338590696158682294119458735877814078298673404703852633675510215359513605393446799382318546255548450483260564391843379545730744830488106895855174134078797439109867165858235808311460077328999354440843343819119410977458311756747819201555076403445273705221877205732577018064515309716444397184407812144877727561091214198282818972782194137214295435383901852669983400672012068838486648266673610205991952855659228393250420838238391368211592138252460872293088285316468537325395883629081114849074242435870324779687228385683364504105789154165706112920025404862151319958398041753610280285150036169810703874797689216752498053569502101205165080017834734805280436587988084442598694450032076340790875032765274459202920079472966507414801600527415998015683854775362709397302478506155097618052224680169752609343366652702470418469316990902083713167644477025178212014824364222326900900334091049637603531368954425264008432480045999506698036620597693755017542634050984642614149667081536828726091623720767171247069491223136959026092305268343486511556668927797149942797852407136595769394465576613939844686950739883804133412297892600661413309760111703894589536794652591479416641079087753122821110124551750656868598399768674449590855869780219334735835079813771804798279056038223905414760755270831749887177657510432401773162797637833392637371609778947539149587626367238572560328781018030743295614588532954477405755820111573243241470982638975563969122625937608858580582413985772686244687177255007139366949894805392176472644425183210466664603170737185156229585356319352536709905425532031990906983034640831602498011854383362135904610827048229521739693130796931086141835895190068630850775953373464176183683481133000840324576536226240515860819572142135530999747733405348565124547391246598712657842076956919138117456154688508194434416677742996943638551402295047952952912282192843481864870340846969744995349208518473012199853559374604296386715847277614203141425275753564788061543697132850394954274270017927805194758686991291583570741285887309037070618615946479633776040147410010237612902179979897050286194996887421289257819250097583013528685286590241106492394329563512678323482632956264306487196441991318079257073790026236533462033839237704947767346806274450807633600512649638072244856129573619713092604246155181974120510532537001785189532053520284619335948153498241712843027402536028604412937364346599667341285264003200938850450475090787099548290054724097402277683985863873817813909587859462390270678361043647272680252423766295332856019773126939780059558084501196178940982167978861097043984533331837142478761798130868883949187273174360547821396292419194438516285322876727628102630883208502043921571867066941503408398694068521212825375146825662015007083179635658162085954975999835274336391377746514722808156216177140116804899055613445851783840345697840138677278601184038352550970920076548283981438936578524756753670045360318694203123685116848662046066080053245836604814445225986724808188848265138153465457559996241634700421411650694969693294540190128020326980038028931553412113201915224163576405733625178616187308481644670394291914597676513534370575800436406695477716931274598836005548888867288543444621580410736205500065663826264567853927443869467235549400383621511907677720439613231142418769744460851064829706927977975233217220632294331279420957467572442257823966049247655810637504475535685755880921203449383135686156074628425420528421514116440685482400897042011002276214451179516433056650327856474188984260689907104270641271000551936294620590047741721375155812611844691981582819263568841166000043760566550403149251470469197198944275432940908361920384862875192157083701694041124313527737201638883745028990423602653804559343107620592908889173191903355513383757238642293246886837651154150225077506961779172147456097672557824370427599886232306659588851214355659886698573794990979396949641435344136797623599197294424538400954336976157910015307108601176436604937641578832736949895487931590898924577138134696267850956984449855547570329414749162832700532003086546278817598190888492766178871422751381426522190692205715217300441006925265839803635718604782177175072667762146974736743456135735131882813293408458734955436553316887020580051933120917618189711152143383750493537334247769884529131973015117982137489085906804964072369974721744313803347908355281709684653155130034040038254104150021713077161715495910272055557925911186690701713425544583303614436471239893115592669798607733331235987787962560315131349928281833152891109327463623432365446320614547981612214638222933410970368665534126041374408944975612638654785628968169641828663345346238706934655379997976073106422635127819597025106902577361795117785891000789371912617307540228343477176249034453942815002407927772260675930195185875072009332799193709927737395377903774809640209589041727535503906464635198880887838149876688519751553691518883300967998732326253168587418437722124673392701644820650507934130844215042343223238204049332453210867375970716623515015412397778373312393835924327403981471038892563727654199085516506759542634551068871347019094831844214728778557369200703898032086179709818026585759419299976995757896826943771517080777898856225858468192197371752992866033432408509297083028923790437468776895357241049125549570946847004718497570444208432373331674328452037634131679034349879938324897011679009533901999956021268635941304426441478303887393116329401522657672443802418495787213538064305394372979910198505241839296007549918825056432203500805361500103611229584619096542659956545126774948247878340062616503506865589525068995293222861634275488425844378488574844423095504889438888573788683699893376936563233849323568380352614065574138453864322613192019635764633961996484479520072172527707847077279392314114110031770249572694325591073630329891218821595031272239507523441204749609320584370172757766045728072157767625890808286045887376311564223416100002107783822835677053468634151014480686334287029932874038526645664358866741180187127630780516504734738443534160784142775163159115670571010714062297326650547820957748090258278048143340445802997549544487662982918561360921884616680299138723199289092002183013303103285853655568864866646125104403995111283674657470741194229694060438137864503640661900273578288765032558121697400364692435058031555642316758070852257255934665164300562403362061163198667003240350219642636691173359142635436337180931723958618571725792612893519059981752697822264403183338930899563810719527899398019989321741843211159238164628777374894403434381279888372085538809893230140245079489461187533484391490555045896149962484417445180466665285747415624889857145631071897193137546517513403993549518527794348958234646999102663530965519614820832862725404928588961562523031266301423093199600485901168845635300431776497098470921225864025284650714431961301683940010202745374908619107793100877026675531582216839091400873363625996094082476308888582196917452671600621691585957698064290538405591719012206243139485989962368287570408067465570366991992134347771810231228039045531398504504649508806723907866208679810469398315182859634934853034451128697448854465464594511017505786158222461959953641738481949031182048642888242808676020634555165010615856640737062041156309708006777321230677890763044054311443591447548155606228854581622077092847002352645056213400390974465512327544354148957293195398027950957584073227194212522047275855284120034050732105466772846174401621481091351190530106081854614116992403530274927894118997982511065606622663702223108757611190384091126209954564875092588698750447324861961464986721678464542644401765634278527485669817542439261942229872539749012261341210924833700222281914059890203876026751553420363806011667657718581998509830749099391979628312980216042427205961226430743970759068829295910196659948645190755928917855222529743256194842103942272285914960220085787383185735032374817947989645682703486621814828111866890031350108641258048253349028304062387235662387492162918113098460568982245640701274442495689864228295133671948507756847669355888924635240484835274572171776462894960099384827463280294907841495399567323805185511191026717740112784006114878951161376435812029603692362533201852855802705507090574860148314811845767488404853612219130049276904709310467558755210623578467347598688200429164390904149795523036207966824089461048555493853089243577556581280653593297216339663269936756982983056898086074254537483791340584865183327133678289923734796640212731943420041695133184224666911686160501965096336406752243443035931868970625055470072362020946431074395132307556363237313298185637565702469398651309388718713281604580974060023594695735025891893031902245992592279877310408091686528112412148872405375395050106438510627347906152161498021368089247263003554835783228251877875001993812143349985068086914192063837779682338145090600465700506109371599044865861259349186919355034703975223472640285406823805800336185529524824161622025740372367044912688896239343453819926553920630973959897563121538933995490579011281107575069989535752728167749465495348863246871061365613139594090040776547894501244539236724126158217555434947457645503086020397861323852437873988437898089734170264094158332686208841515172453929093240575098759243636917853900672213118809921592005929056561911399961807146060582310956319976628436752830874223130128766122238288412725167318628508681875692679048166117173517421336967595309037616579246654757530755830986816157993076649750552368391689981026206625879820219648399428756194019295430797772853540608819478526871285753843748816990831723547974725892601197079531469988161684118522480247277279257744329340322755931094636452384646605204296560886177101104723930066983706306934846909536809806598155229452830593499348643804684875953588614301527371559620445064342220486336214179471555542431541601283544518801708837097830140229976872549521158141148892103461402718839400979677709540209101805353078122426005185818583290796155980846632512292375512791860153613083389685785919043104366383348448086505389740534101016757334781001714884635439929595557262805349882649776933311793151898722036615961254986733018895324316236805244411237077701142090203803254005204944967806665650193208683402711653531662360979837302127284303743806859041327644862933640003018832995419333112691586492937783911882443211202439482960825479091238098591495292515046335804893944956066642007303483092692964749310176737719637544502727322370900179368178881099977226997112296933253023985386038550754281150850765787486370256299666924010048247810524861743646609824353491814326832732282439451666381483873141501718491448322363949342007713365649847769144789302446047289187553757492684812259960371709341163176465566561816427082396448405981220467113883160974618523531125056488259647415417520818460227224431433723145603753695339987500707049929090412267714444419444447133820496311379143512597532483520146357590914506577034511228329780247892524333225973412773035120796424677513710773110654103952958958333946141210670335152371551383565071194972579407290096055457844689687722682115487918787516099202997200738361902790256340578198191830633068143900389618566819245053565443258965707715895918844319158550966078259858912789627836190275536509507192541469935161650714737095124912845454867941690175754774529368364461494489017828225322036239287517098019947474136747265926438147517712383233400561029576264372933465180487007874534892412941538198498023113728748304635035643701254763142803533537490150257671295374364319537253912884713420380907264535648247554825486838499349837508648072243662556433130552926801754181352492931205901824206182693776654593950381196970922860401216724641032548815170751151414448313680213173504843347919175920068008120890327559085972996271769597504763692664381216085012863477636294549240771145615731090128117646212845819649114868201700433164787256186050657453931596177396881313816609569475697269520444013110944498588650788019739108461112689348806579588096462545590687928638802737811226448911337752001449316178370519468819739086149211171304956891252710935387200163272075179699622148244278243789075804079885562163001297358664231186916260236543032469833426257503387139210074330036780672298743269056353362416167453630442482301657158205840240666865076539650968882334712381005234342179640133389305657076334983265639164764854260854139435481310532407603446711013668287025896203844703280502608062155182398191768053333841363925138807302524756025752546582259951826560935532696966261943515925861882218205891311659094582697727384197669773425257414152406517834788312512544136459440329868911735326278861022475588727097887713671979173966009796788360969049377703941630186634889235222847812010094449810173320643271824920813313401772393334343514154130727004161802104752677768329567743145636146228014256901589824937100255969169954376426696795526118953050140853578198071038262458291716823484385990910357809189915801335723467805146206405870167708415040558433928054945337437297547046979498602667296127312662135180005984832129771115599409645961924474837428889578869344747615135559997417052415217390645871793961755632880393446244590824015389319057662558203998121609016509030043832030133781829751574102304757970068291887989211352468478425131446207537305147758374383820810826975482367030413818006031925962769548625363539356827974789121818813772623170606029775628874630802250670885185844459222909976272859227015220369468033866461429440371700296123395639554237088516149363013332377984930913963165209560673427779527961431629064470596983499488114790656650674290157703862632624069607521543241690630599196389698719310661649121121902320957667359604902273934561658430489513159003461780971665127511774951334949732137183243852511285784529092662810010131444511997728232657398836543096860245782969131412908374533552773619218182193712849964302070031560693610196045419499730779376536642310674461791777999596048298206021774558366799761256236207379271817352619410934898270234560264029781053036609018477077650255035401257082862536212234592521813844956065007256684201886865178297334457679564937830792285435897894839154235021218483469101490285114406892621651497667316810566328160122202127619048029590949922756997465981930950251042206645420318954745490359523577639219398237808500196695595664898190692034793892028507412633973763203363668534600791229502280272236230117090634970472696149466323172970339291917395721463385819948517593838248462675965398148820078452685336624982094057038592009788487135326348486977762003450714509673482375601399149533848838635289631585121942189398914769196880431408169465758465207231105294958609266046554715709108647024557835465238260882728342492851897599253349394906884196299269892631645147553662789960337895862188861110606231218343949114319897795637181836532080315988104619058943202791690283970184443163798041678002586326014455782338796329427760837093816124544462178217847015432070642888258279523584878379947847222863819129260218619468937995598309070513009048230482311106013795756305607188515048282972098738147254895323756851298972189783883444998927816856174608494712455379296326325718243401995880104252195795621382609246961377081490582015255686060158504091933000468680210737772624747716200232820773219289147843131726152983627726435615055267692504211941718014896289944433209476674465988433608937706164803373458208459200819839892848042927602199959484033749270558625918876136722695081821273926949831252544729895659881193294675967687361361272609079056945964422121583941076483860904159546768588901865453875413768136531027590324747585621319748087151433528485996170581466702678620932208542398188054405024267358321432925335701637329847417502758544515384450321685237349515052139967791356652345900835832969697794432287764555672241985762730557456133563580868100737759686666799536608946665153504230832469639249938433751440978583499768078045362792799166182236341330066636989239492920713349157716671231750578405374653143001739305599004710056005578583370945159002719411225513590407522394958543656875833918729622339147993187540362611030296401200682629710717044523449486029808004252308159502497198650653843789630891908406138041816129093081555397918879411581090130262928676338798058289785441642315346355653226699728054153701580559879635294012155248044802456003169384585097443364852777125987441207078812570088032517879473855603406836264704384106922599145348867013606190150690079272846259545648893646889199869124074532682942946476697340572210878004035833837198463659990418139764169983336272149839201365515531755285969961115325427568094030337463196099879755371309966851876701385943871425460064243152043941533301663053711277164591464665471247963721135759914077010156757319999690737711931759742065667063796506063049152782201825931509030680542145121219228219672049122603207158515853631207154013542415847311873733437183115281526453132569846144823173017393185655683399831436910470823877828055524266054148771353691968474814973526968629027863726310982914876570652551653056462357999364223456761541382357416589153631246881290142346582231036264896100489432776244268834247198400325988588714517519847553028652351244543980961012410910787645152843864213912946609744136390396078712675350038518985638170214832170281916073182428285720060128708757813041938738446296275398546281257822039610149190240770222946183475705595960874911503205795117151839021044747785346088895961016192750669421265406784029327741152911423657623265210485007577922104151353450755940662899654368000739796363597188795068357897471948513023097884169211598165790274463797018236951678407634776644346763670170635044624921102925256635073074003929807244318008969923729554538541164426174416502069041899095131270069959450432709047416487612814985200745423182368218591767716241114014417771508511654971175988797364987654321496967255037814974758904768481071124753325914298270079715316339315758472081480825490672255430103740135294370663239458964537545098288502023608563715496472060320350142696076088995107607787533250412645719326465283302991914035372726662593339956494815175127777496753407061035281364218429536322528946435169363629562979662214799722656157079929064403631857540460075437177166539478537354678234961393302133347508831012783280195167722488692852921110210761252056710630399389042926987937993884188846584740557085978103527550995779687969718058464524196314481799129985858321033733011902139862283667492510071838446048374840899384431940856156262470089344825224143637681030018885350647009321080750601666800595577602398658860565350266942756320974369479803218907407012852783555173454579066090005998637491154757754638606139926722509791789663281834600616977712873427874314939574980933221049372421918912832407879154976063403436640075665062929249915599132909619656214112978748314288316162340731220752663931844505116694363793046034865059911409523833187254345253765096814160911318013456397761872576802328297895712304906323519104466448243961517637179374734536044669006608651101354595944111242410992653483796820659258196606281704775487946566233104231546233706324905171448655743258932235910384301464349047404980588036900139815744193460711437902923247077243233107235660735850608164184433053550784122491304045329776064888834640549933362721527198509063629523476225469747582318410147514025875794781194838896279338543437149921352426375654238651517944781034238177296391854551508939982562791605926921742943965803774221213302723183719854032092947652091425374202440550326666819100987829293021437326194137218948532071751919451349362585024122549835748567356102955341535029380823429939648539859445495663336876553745291910041010684963126843211824875624256609884610181363379526130780353022978703727031773464365996896139997377674319850332982774689443896152025319704759317341997320344838202099922484782718176247633461163661746447699909044174988035704114277997223425509894241516210421073667010634839851169492900483067777788220018737043319821795338820059863629018211882184562436815847507082143239891610956137293677633107851130711190829463106006664092861284307853274339760923784519500533574860276624321891675205603590975887912199078522703651076700384581734157560195032928350936682713244544577675240293320138066873981199450630569581774502851557390226315618498341000072700699377197215257929795953160347875221165950984091812988717924162131349787880273734305745151084285800946483886845436730524621985156008017544320398717104553704248073292096287029600913893427417786471378582892863088029676939118538872022015493847844146925477760549800256825141185251485188579347722812609570134460403238418335714863737032616403766970065524771000773525998708554558293613397247571535629006417822234406134094264868779953091336310046839130244327489028917877181675391713273244368185464864409933563892047063734362911043912393430282103147860426292342640867637044544103683473866042779993197638121379439518314700780503835513152271541909156383361555353815641727126532189528863158265973620040362219740977574796742446352190108864581840450775802281406420034541237233701992179456397782151396147585678649467098982512843703516553682152553152483793801958372790231292939751709537737138125697597308359080140117625293999449353377386559265180808891379768082085698178916653006749439523181865526656407873159062733704168174436849252340057042544002544682424715440863056894741386354778218353715119836368351303036544162590924635290326583098974322654442270213167376307946757667411403994651202198775094353015297985942555301821909466801963869683733025965480859343619418887043945396513210358288773955481469930001377171251205305001440448902681617110161693213117601385034400781755850324492134536584798414780163268478263375713424259364558035726433483266973069003831186958141875584335575969165394071992917409132129199177798042406647462292802202924631923809907556551174067148147698772709946877652364774739737376578005830310482712093875304166599842244024242877552743474984317119576232679055466079362571546770589262998155519129397962765584246073178215157862191526484665504033890519343450779201596766086767225678261688113605891954494131719493988402614095732947063616444586800931823628425365332780576398771321949862721166211791120868481846605342640262616851895503204548256915960227751525766692782837159236048539517731307679422663378860921465592863296866803342550206781075152536475256549762536961122380607428743244579497971955861852644947715255510493088615194525741845889440150933270652686832555069192429537215572800214949516910247002160049927262872759558186634490721265182620061119168099105654856808319149962294193451238880675467493946578629004301727994195014083900777671070404957967336387967868470744085531642634186976056449205219489916405464041694353079959229331753275691184639391856863312867431210109739536558697156504580849006368909657401441776789113783326743379915674278097998452436102653728125012385747071375953803213436587548410661721450831895302855094124908629095059487295629711510790026887948288424582332867836314807882450394348115437740417034131450104430218488170424824666682738421583871006825326466966510041301871200962636390899566072264889374910015566360025676111594245957777829275251369819187803395085775665010295938952321219242463509138932458638685613105910975800724337641245623780863523226439837224290817692848670102185061094671440312462539136860917554383318260288432760898156317900917523601199187128745246568538151683297144243529432800201559336417737845688180785661260743544791661182638410334798613520566740733462943938409907766404679850761742859627075504336659037043112905590941530836020623811208804589680930037932948622465503238112793649924917600888404889899773867446228143877041951065227540417276045198797955824817216724465487264624650570991323509478883183014836807917437567525974026216880849787481267461431849867966870561955029706967980620330031918788137086052116194653563263948375803520602239288727560351738323457946242213772496402689834087996761744597618337932491457223973280166265022532128066454845245204143117800216622209390475296343740524668127233585698900741189578878904530250774998429140146770075723262253589336496644503413125309346897086578898080180570399451114108363557952062893244975533873261697294801274527433923363216455432610070459216911724919631454541658378600001931409000877417029152080411152194436654603719001650383011955604683189356277916069820919938198981197342275961486380826382007678732230410134974413030892187180122557411400789067740442641736780332789066794895924255437266875568910128298599911784202513700782551996590886369309371968966957988928430000430804313683266749960728315358584428421152089054174913354364227733920503162220602080175182108207377277425657256646690828313549055819231129189372709249564518231231835849378253800026157750135113616680261902777891736800733383019526354981238228116883899821872835308115009673732001578033907177892209878586956072669460805964358917721681138662765780856894427673045519687627206501587864303428908840834733803761263704043992844980713711514573558669791847647511324150636308182732137102652777844877521164892705234490209545777720508166296921941219751129725707179277317174818257295292394369088175394306096910322679845445634279969410484663247927273794847308231354822228420263726211203935243221297580078841957815286369693483040241511020726999797959548185790643244880405653736008416333333160420887464133566752284443720086729763826561767884814266987163601231754672801571835652501901757627260075230352684059771368294084879855163211221818950614628307406680662606490299852486999578505044396443511107418388206912857731828635460838239664200652704758274400437421748957657571605785074431309319909568276019817344229858216537370053926332190789046165134425712793513639276185311956913148598306553411356167409891995196048436715355364879612373144190090413324889958016661325893009071899310375429733481686257498642492179988998444720182596027349226008580308179597294581572022524329438737545057074836098476087861274906277480979167509133504060447936676749517122367940761106345764944517068701807160769389702857146777828202016596927662762689937924879924214836244425476739851827570871455402972493902629811971924295897752050391805420560505645591869200627534478664075776034422962182753588942127400663603578088639593097794398374700394178656310600841440591093422536594984729289534408010136147449707344535815964874951511491268293288377052399394622028575249362130137135304036531864124377587273820738605891413724192943531815292672112762489199384383596191687661317635626257031018331700459582568020448598387113000019355444110388281987086054708956324923679397414974629212196804392002344029540597157886698821621930552326009411834327248441601988021143226561273112438630045314954996227146482633865531490349788403448374511769719901810682709692793904760688302515612168001174235413544713632734804551088138704211785029366017749471804003446044199827693148143648423958539834961309047224388584264743464622872827188078708436484450650507718618700511085515133732266665308311747316581234733312365864084560269924685469320332164679365947734092272736216988499340870605804286761236854699788470516131518276021078345955137445830217903194072555071227689897608742989212683650260826467443023362530289898774681623770867615136036758275911155976676555420051384003692439954847627448846052879334153548169861121523112507490474528348367169460615481340893350999485767973208136577537368386025172339637023618280467977468478717289064254852422614453213461699701570062945401903346770260597167784859073615401935778279807247284970798749273800732097588455747371488034040752723210429378717733630824683449570631752003043805318204822660124363991114690343860427999601768273171462937872331838185352611292491320571670637269332215970565645072303263849655029145533423637858712083509554251076509080296162343257650334382378801387576378322483447017242312622679676538432280575775535534817473484992443782636596136284717161695560480052820060375098686647963526751898985435024032881440995272462167216965942331126042088223443926357571114856464108782220955135430548527550381093364841306857702970837979404387263115785249221528848345717410237162639348737238396994105490115392029743289569897127268325602440688557659013146851511841408182243554115908390156454408360908135265086741362569962712303367603179541189714025632756858446404755621466628757678440210635286243195807066391293816938765201438957889426073992140867237032058000154317653928635816778272773962668758416625248303009171188363857197603840961146770078006104356405640512052593747463915626997777437921035406391029634928059696145510006081376626832266179106777066291329041133247018463473611281519728312496490216924795694754510897167857772768205274050937280790131240584546908270112640024688933590056752873944539886150316440589299742193515372110094207184415129269822735477532635273823990751879283610169642902388157820016305492970515803862410708732163329950665347849814936943396472638815873716772422358673427815764200092557938903634224313785484871610684387092302563453759076513637265914398621306682074252086082362925234802096831583272775269962867228571008327360442393953156311088714452360028108516837339774755385782526245290017535337250670516751668664846641906678750529546898656112068158710632341559682387758427750933965973664792832646632104827086378707024810035783617208635356026786455296408738596125711512313496564181785422372471016918978029526911401063811831082964274310853642733977474685128409631147625742302761564066870379009892405900882011831438687449824093234983112050240581385849979077106028664951788899138839097179331537323014380162064760640820424652747762499879189732399675485313257967644847947851077422633774241211499066904988135670495984759957199315002252075438711620537387015080069272018213033042992082702904815195565423327063438170611997440190038537219175441940019765761127454163110757851842007783989138139395217254763270475453958713154247865971462978760830801930921934769832449343369076534359345531312449877061229506052775233328054547565420434517875920237434928865113386542834960431226636479697475079856350461140332243263916265409905302707298008850696972469614708662684959365927876811310814583438078909870939801450375794484068913127128325348785314195255249214435058090934002861317803808645266730257179779284408124356675450771278052404502904647062167002545378531882542768313164414882063696393097905153468998819603150249924812360129617748200526343330775873547730925582044456120113710625057949399864082351048724977396470378881247220808390858278759526857009914208369069503115382494834635603890322198452597757816355661258497674223852903050494647930240050277022335357546427344446663232823280084483640974580402642929362290218341803385170171440212370973151486391802095623784861842350242706176694338596578319573891960439367102918033126313825623147529502567002306715840655675919643621647518282933034462346630945703550090856949889945150589896974133156926468987932387153655955252042662808516112970342097673416829771539196284547560461477897064211574907868921507115324599683465688070896355726815589061609242257470605606693993975839389668377470287608895125691248634307018026943695461245581973062601607938999507379751791310978958635214134540599575607761598788326809203655740667891643309188276485598528775546904891541760587789310802303021693405286759283516757738543422381042636879196674609490731583200510062194836637678015784235496549259874224194953483119294990584719546680321793761497348757794920953320816669203682332215452684016908586895568464467864213944444987092386261803313969799704964667013515719227774727227678174622694756615352486234402999423071303490268225613973185391654508830080685976091459768041870306383860630257946598417647998010051091021035355657484347115356931623480626277268120741797038014011428560598634968558877492597513001458101118400934250626899250349332894546403182803775780529901919764284268313456301822581131822824880131200993804670773338952784100957020236882688199027792391588877215086163200449022753651233890796400501543715007239777554795100747754542332514151304895022573376631570696379128513245156595511569400827941565153417205846787373285597818432875671182354376006560833116612598726317251684593506913438647729074794321273819750091504503422025407409276139012322207393281500235678870470139461438553013753418273008888296840621635050156266703070229113022686147449949327821909965847864687259948298284772362951436629889198635989492428375419666652624773406453791696607909605113292920230268422228388139192841938008236907102524069763701626104694501958037542118526595848111079636674193490450842036889781365606083157456422245062959874669916169037079144064808234281940277158962697868860523303380158169460939930850029635189359347947829157018060767578022652662225243995877166024672304246787893415906156469613179435149548041580787404915687808793037523870676645034794397131028881180965742170659482347044378156936580653381219747799064586765169354137485126329160072446922975058432493574055371455273874499791056936740348171154671892753471313690359698165984566127614448299600033604047245741209891263333315153898963388007030965421068977727758346056605077361671219600273458190674216449728024366514993039701337443324268538184735957982007147940204746491961262491658987132852620573669717942982824390244170746684314131074624247718544682094344943929741137896737789629432044116878355487172358113946069358571255175733547162393072341965992220001085157522039859512632402057990202539598102915425839425234838365484672398350502894112339329590902799433179572488596498246179502692916170308249493318321659097902850303838082937784069296774610171883723834311332343907978770891078924482299764585264589924611563299178970678548246746472102214855935177396290805383601941679341343116953777234302863365598524533662618364316090774158151015562663834435981654797230919861678835157113429206840817712443794116273950202450630519192812197059075269459328117940065624866439827708838840765320409373907552929252435192389920641785899218533201745253333991297998909538170876287630117317614937507314939696003400713462435405191551309477703688329959678036230631514947090600642695349954517708329784170253396044456855181053053714113198867838921359168514633795018798108331223569017016518385995494131023325253360769986809408938375810923434525462178475818272750231170727859885970995703226219315664058641876191072842415058026979510094743618966166853604674328025265376144560379195732967672633666357618031086930370518578074483741347551764000990349758092647641501170101958759528961045027687089514694247837243438578423241083915983280823909070558325994953547622355154823857848623410874722332973195160870248575579446373946172153286122714147399447114116165053796998122583421723856082617027734200670554688281111922044698301119873963049163707070928983003065114283428991948350095956259850169144612200680665339414121973245178485248037809251532584791878535799139166261989820969133769064934110887580157439213323692986462412417178609108825859786185582742346446540427054912737926163001479756208419196537072612595916024693180768532638368862499709896576059590447082888355390536589727414766220792407466393242742869407901727314307948511996168482109001580050574739888063784241244740817704793734304245820251538102495870580382829116197725444858805766506026348717601809039715683535342986035023573908445655532652661380374690523315553374025859559053177961698389269525375805899264925267416043826147470388513941708072558423031297679601181334526206751168609370397382514266409434575690269713954478909716830491204041976852780256530248220009869299634339222523540805246539085818182860425118576380904063911278858514787905901921569289350800362295746220267867590017417395401628018876231687905869172980473214638194585748941970255139617798458300835566980999292076315959754921487963282167792777680070262771392264802227221837886796267659259780458943808348880708933147840911610671342266136483406750933084915980495200616302070145620026672314076682324247906261138321539578503329328893736628585471466071714342920810026648116491642282581856521471320327140194117590809538738270051884656865365680075734793906201985834586773466569945503937968905305877368020817006198093729421953774245278488962822035919089956433824204049162849973067291110448819606310712207306052160381016912505107159861953356503015686105719063055870149453631857952370366055814906425153538490715915284383899561112367697300411275047623760380705403016493702727499668482928031396479481575698814442131924719021397966700206055414722713617738128567709457806561520793055072238691174601217325821338100339685011310066759990046385068193692992571446076703534520235087628835923787594848958850513016061825058383970960885969306540410863171480151654889427132856057147178519142432814815724057483899115353756536449564079468321033838766111272992889833117094219070964998623390506349020062740915789134359597935394662485944244091018004510302611036873207420425241852404535542823727056863675856439087623158441559514680323629690228061516806173332333158714508222784049155008015296156070088539534164628442361247239030769451552658694160302998106577870700392880014584644250994607287087964414400122333268507847972647927680385697828554437045094193297649677140756528566439160388477454461347584609750580111640420230375486479001076810619681550496272805607067212209023109770040315586108624168234308407162756112078692900655679298198843324787359278088852011237962991047569981638052161878208985176406190820729832757306177477885199447996176231134144801100942726145212870430723375542092765882769828097859852349914867035006009811636824152665836786958614485940739442913319274256996670743652277278348265573163971215881473314438832100244474804120753728155927186674634765989532142681159724213114818107335873976341187291680993868727162165705750039650598871943454013198246506975390430947375135065662233341862612843826348493370405739372935575775444157950957266244954152832857405144977209384364894438900747744809315094228031621355372855443072507849495282279236123431084055048706160063329013654770773747482463034944661830550587671230798399735296820432021028113309066545912813752600904415652339832050475184246710393572354239810557109953735881550375339253154043863202264025083241441541509235588860980944371174463298430029472332117045338713321233119174321326470085841502576438100746697326480481145794853790412734955747943093415531515356980358270183506963794478189796659102065307982184119821362174057113245347374962926481219411608836173809670923716134919141569047773715962561452775263256751932604458843429776370545046327917673529358949849714624079180031544012166010822859592272276398979546659504964204237097883023375087628626633233678323371981010643837595742046101770843918259052938672533183505072197361352173140550009721126462593595436782214205013236711127764130982895276011320474818676097539958954587124470953839133841760783020924977908225426415664108704883993286508602540027184028254417631222389027509420718249755822523784986137334355139541919362690619304823375196163357886583983960829462359933836415710387774068235973697274411348189578393983091940436311649591686287809773597954980281529904181802109654926220115019070934125676923981866488418085853852202252183592715064695428572046551773208913994165073462205041202829975246766815624485558985493082436218892996624653927710127525699375308827613244195667577604904776513168749424384470230166406196435414078385428286967484420910796966172694224310790616219897234964250154117011768877414358918843314542180081486672932129237442097677987468408722776743478960052327695956675568582318900412606621248723570513045389277425294087767011948512793846866011175035984331709524372794346775838613408788894040496218495769596944878376568837269910929917921368052881123860235230913427928144168232156600336275611625526599003947801194485808821426635332780543462098609681638803099224186833380052385215721486466151561465220838563822965031479608697908578057618514628478601758110440419767170792987592113153370170087837862070358842887909247334111540176547247303829711306032757506569030043234804089126811950971513399002276957234831444994054793984670420633685664562826607164992548094991535432766416812740787724595763291010966197001206994138085206878413348178542849488233113302880039173695763049278146583053466834804779191284067434496244972536590065597677640202305330824391879521338949651438286767164572485087684255294450715023851444061138687580888061498942580855370393121237162556776038363040056432508210409417048115163599974307630413320353640696118515144364002266820056025063325538111372915070597663044014763002917105182097347343477673059940116245372266556678463895434755105670442285742336951203114190648887359810394735585612030348846956063825582084365543565084007221920218132175968146951047224280131772911767514832645008307261111980685165260458969287300736793517044742874027823289727011687705725674795935410620540469236296609473834357916091058952220725056538615440712334150228351845270361168662124162117348450995540508447708515607262864340134888466585421069167864215481813515966629556714461547832497472421854240987596772917522030953014364637675252267175498574168709834351586861674071275276766507702129176776235143704032190193045378886224421109457509262780937827646413785333728239878682556413008668874035116396579940884160205857464451731400284679367339344210110685280740668458641384910228256601650936552973296333382962608336073407564528670576898540290464920652010283586647170474019435930880427822420021930892415925262806401598856686857310872016301276912746154273290220973552469780724013837197987468197437230110224707572988482695802992993323182286409018758839769332723703994723542878892090365481540920780360857649089517815777425019336866756184193982469401154765348817480402264434587163261668247687061032716139705724689916569136464107045111255746770885712124850547053538545865066104345960138713513256202103070426261642260785423594038262742385537649507622102321236461832090377579383782648282914094285251037848827306865759663248483841156130747135636587811633642014662938455505314525541323800919522447650561488687040596702066491431758534099319210906611821198120511675450138097166709326788385911850565727442878421076969865477811296818246156047732081400266465512386062664318580832835481475791407703242553428536648321198318654592826245002207722835026512595472019007233060731027617209318028382838143808795511975501442401437485391575227782216054751474805329501010908747899896594532966423509850876096133807143396305128396276359692016836738494286972610172691809640994722054444186588351031105851106195798643634521286783340281882354673899846050515374154522857589280322938996988882222726730924522334776248302274821192263376892281978007933419019853373932232203741237486086977158026945548255138649419968710988471650538358715281150788615952734997182967309187744887876806230327423036476241949799322055559436757097156766910100070253929626652748508586051786957096184576174589866621940659818436571838076129532200858235098190968880531852540668628343808453519783510743996010436512008721130417394538645498628110430224840740549898449669652320366660064739401982461994160931570783986261775636569056175403498823417389718847877816590649427069132343209761047627089160256889817156108451021962987591586356455542394719299069114637226629986934840949587926670622974764871978728166734571251451174247738558362671039686436804808783499393725655513319623864202172863004609472255272552024318443778589068378374129190475159326506104160967624636966173325933750147712371281196528825350412406613751979926561750392445122755790102456548010815261491235895908715269034955086457729548000169169993552304407373708127972667182403408796774586105178671482505271642614612570432057570507200682019630621121122075493527849129293441093551729374324694917313317370274942347972054298312439075867129120756538723542722462146142812709462441333046565762866812363314135111909655402983746354578540941091075166017853723710816316661795634808019262674394930698883283232471824305542720944433389513775629992002333712372865166879811341189881515757646277483150565182050491420060438538198144438279871834986124371651515790414272941799261902906454026027948479866187575952870595293765740835632613637647358992908145517514749529016954677773906121223092205552231517311699749530854296112335515092226749432034294079958813549178648084960320810597673785170387493971608649004608738857226040555640647178185535675786262103354945234361062362355664525704637204027694382501207112032004568309913403827173596609558425253601676871620500797881778009544596821178688852716487934267201683467551614075594117789626833871342553995313971917651843439058995079555883120623501812513353562742495455882700229279744729599505593101891146257652246633358350551998407852648178149087803713533541205902387321872685798719498317366846636146236163690293074762964830165602508977080053187876623443935119875285231648314163970621865100206063055663014846291656038940357564475950549571431511033239419946056696457731106200629228095962969895165946668209681779856585884590210648050970718271102522809925683734239084799182902158678480542518295685259194658047615507196187618946498516127967920997743580962198945131591356909962878823302873712164054316445035960036938471682458245222266642847622069972099824608486130640957824944066343647987079103489442955657800839445917763542227872148628800603607032346975829208427335909634554972276086112867319997220421015427724645170942928284324679407083286701945734862925952376515071685990317190409560829558106861107823831468376725597939722078531475726353780622466648106128730769186754804650495588885124442863422818389612883847939883481993898471739253495598502484342240654665264897528057584723522252395614548386638036356058117355557021589693166389047926402525454416023143172426445338018805771172467298171649558473805432279935199157893799351469394771655024282972878399314089842153667918806961568736516867023218499061337227661882965242624478141588607165265372352606906803118310685460502905068666779656766220539278467076745692927442420081616956907153074992137736711493052125304280912967001637948610933315212306342619374871990841077384941048087849836196188378257113026986032536276152178282396178464154964849933680001977730651488505791601264184868449209689121377860571033592852655272456728872295650038355732342211737293057539602142663303496402338615794464348942376010081833056467272446828139956882985925940346620858149495875233301744741153959388709890996423094459796124781833360400972992799033003677430549965221745946238478051593978736065523913315442361336967500891200788312073255461796127599973606219689836739958117827564990942382089927910303583791718685816015187902017683344568108079150778992555866639939159044815976024951841244470733815021140103504876239409339859493736936015094170212910826021053524443829171742681825698161613442457289696783866246123149976498745924439779293076613511483147430569253754616135522573801018312436720207574935394665128445344548882183642155651357522967186440721969704446048122005739640463451927459046348810265243842681511470940599313902296769657421313588143354167712595630590126551893494224381063099049840517836630931864079746331921245491044181981931305794041140846314407826826220304131095197794679326840816157553474041410417271514091271998715280746967869769861397643891810583965419099916432065491424884815069231414097182958352397263203770898905459279835843737464194502047148780667851345434412161250640090475097930656915228274572278092552428260556497323833336293767823159166458106030690602973372871830375716619881053235112198791417646278862773641111059151818247207959899620273589934141911088771032743832086994188583892552939203500428623651696142003921898345268046003504003450737846146038714670770526392791897552085355546195298018056844472782536659323485854780394329128552474987485907259114211688928001048973238310034719526618238901620494452336507953827680122198723654230247834858283093121297219422868719147165386718873103525236717089206468709249815258445926422697008518565702470758147606235646616213756241723671459203893194143476966994735900037940718854732700313337898402035429459533663955715730375347881696568515646374357721419597758309395249158614128175003222989977616082652637643971408638143438816174765678400446285655502789861439361475408658438348465329169903176707064145582461910597544403500008078919990987365184521719144332237263874646743263934075695094447982881262305967376979567313873408953980872422556443934840423537525263274219429357461826904386501211015098620039915299111336919618227687192879704461995974691230153063524103959423214760504226791944657454280968223977660707788705894397482753078752074260859600801711773120708851770176575623168845069849390708595250634895612485076012204422755014599093196986193110962258456870650783750010703917660328003821166502404870575876966663833955847258915023823345759476721001517374755168775189272293040109974056988523526938791865022260692533599250987955265144814906673991321430385453193201405928264036146126160346466529983523632475717595045852407861510155705019806840961089457995051472647600459342011710859852233506782198952896774489134346272088625324596865866369479599248244089441624455744345970907315097941815834548135267434903558264997946936086388573632268836741175364428392332870302530211652271915934178639832931156516053954178182768947545448725766489488163934869403507816272888637790605755525990120575361784246989605559258613870915105810020417472234849307487735514319841088443549914537036437956011624052515050366759783039916402129758674585906567090373277288485562318038443862099713821104859835282868701003259759012624097013612874949498873462857991598916583486732422063126228110084189860372545244648632607139415360363248381730653239218690684209998399908782488162389440853137350224869638686324981146245165698483253077273886197475370441753072915481261320542720002273809483490261701873710981736585473000801826406781834432821087741347176461597560785476575163272258240609877902558684673821594266248268068374701935779215368540318806697018118780858417828874230927316179285631662517152389403772313334890537586721661859312459716646811789258136416756054012525268401931281547795029187332851887032558082983489469712041042926942255029593405354258193957704944501594591238429293230620525350411334346347100458568282390728106480946118511008978199702587535982709714386914636376959011860866360854153802583059282004654955621611926091014650100568690280726615947845033648481142738645711561396553612357118746449057543394068855480134731540734879730914469239442441738796979644063800500040204536211352830028511730169602980304116490114901335692221737869110696975684161767014690577710386249079854354397781083843794454645645107618192045875605026270721537510058906482367047612715166151968417163923211215969949651053893786647857860581876251386361355634521430290324669298407154050751584143505335126919440125699478185382823721809036347979750004103850139696980265386956790869183583403642826864322064864705543327587425371762021599527456310248141831927441939885055416328840589662513774668133412428007293478031422583518384264761039409152252007506412449297236193514271389702618711125404454909442876263116645475230001696686847951860891411479783843266737718095956737450761360495213993850531996298239062632699292137464245538166213175406466247447647465809149433898028035007198204741024580371822539417557723689423377779987414279729960595382564065232792393749611306820806151434225557280215109417895215294167233051188312729782963391158535434715379769350736025346694689370117120754821005455552759564553054950439671352611007462018122324484858465747669570641435088435507154231964008410423677265266556336157484271253168153096070418224703470430135395105102758866956698080429251803237966701618839917991031430974629021478311253491823720773459197703021650839047327287025246529554180325566742398852781153286907615911852446797844002857510773853384991520284580665835743458617585924195043111695936672944968786709527625803842645372880502775329426629114920902169268891848846033576607658760447807882723310413997091417288067284679205604683316990806441411591717806364030255885194056013939030973126591910856857612351915496931448265254392902496004397752965139569455970157718683137669987918073905894737968438137688889177862338971851171535220040069683278847501195309231628048953432895360968864114557266571789241681898769454614114127490723530607259319750869944542643675291663568438740209892815290518583349355190503103261604415112206280495184675289687517624227635672191069206729546349007694479771783836698288423173589169309210536057996127793445807855788206476385614644198008659472293842924137588596595293480339929004947059135403948012611756466755002548577556450847282668610105515055665775403076360774499359220238592359233604496595002700096083630657859795668793647996792235612797956095015360638173658551077647058793307010227920121572768284881682762946146125752957543579011838064919066049174189728670185948419184713680205838777241787080045581513531808876315867943233709843893546557314513281105098275903779751591440674535552297301396612152710293388154142693460272679027229657905578414943803116892559556523209037791472342064373884960876782725947265162161981891907578178972815502470827071573614360827419690901781867548893628174829717471405318475495772589218597447875130184950770246503830535063579838283468727777474368922797087101581095515224790128236551999420875111771827452866911278822036321996442282873868890870897271002574702905982541115672626822673664853038471896704984738834524597543081428574331570866199659658553340931775709724070125458727171991984821777038609645420568858989143935931950352713980147425416378945022362581387169709073884577531358945627376010254472288010466027376201243509318938693274179782856598424856278986067747752804249826172453832886952017286939057488036536889600460835644172523368180793560338199458119829009718723899432139165714064753101908383294236276777782957059087855890673399692504522053027298397403616754916447111561411658086676600086490519592379763575056437860770661577734949567064315468999273138993878153534695721464331083515447173094618359755511372965274145845879302962906682382212931597617587794647827738294350905601003222730191817258296450256702313517971837543782382027581926222609804081784159486087676288420682830066187705654455113655320334534875131080892230929275390961174887502842425220364125428070077814903678053907924103011838389600211101863107866207494347041902579663450037189349041899935334097098202219884846801449550674907148578134618975343036103982112395243059780338845711798337732503736228118548903006006993648910609024763073563944776004633345286243799615145095995367151133860700224876530015403788503482783873009858814700341865685196657574014139378950485250764828191262040712214211266161867268188998646960982590834315541226805623646382921413437217237454615090165219380705826261320721533051094638816382744529464077970009459571051997365012542420640752493616397273336647552223978080893611073342890651667563729238609181488191807668373031886854955855036787868027109356268999568880470064863420744017252784536810696344044757945184990869496409838113081174863368026157093180451817112950717186930913806937711848234458241855474378256547370755014962178041753865604538227095255283949482713783587916853438629684158527040289090282793424886153139079139832588829050940652462642279936445499697344783302884303238182698166286746232568718106304478935260706653402872351169912916754452938834379079198710843364638167302842878715925059723922172087820036469573772789975861537629602053984548384872357185508492161541710863846481141318268280716747354933226942482103271918371273868998768620743765231389482227930597779445902625453263717394056480477290028367782626374904608328931723079926098868045132677674044331131839255077084192289249636232498297077437955652792528015051940405049815288819274837299571508724547787413211339585463496287298896149407385951754205191908372771296412071009835275050621312634692793351633971379614636720095421658972041872539653573086368110449174666071877296538640738108776744474391557802435084339117187549425877588059325286164955437541223294022915282228691943216520804986235695342312077121208788005567958044723758530235849962659574250141418820264279636835060749903689652469615692681259566874587976439838490544014639441462369386235302344855232501901266350022903986482379462848798931766496822545792265105776325233857418199087876015900888677350856122867715465601496256128571943467964483749955826895578745146194882869589703372989104177920765148795478913719186498957540541111792293240830719592395031812530657817773221264611605669023979568435853591115624868162586189386322810179207776880573992783623704326153736773247098752670411191631810307964873361465284044115240793804142320287632837467889035337618926733064090396029585076187564766113046248571778062416063959582955580047188158244709824124913752051030398942905794551445063655293872407569657519716181574812876104447493150172486524206815359736724913299957634375419502699849488470826003990265604362568674115343709302415793168953809656461808398325579852293491772142009328357689922001502587872794578146010094767596917352444543724701930063573262473836466166784865009856465225591634802163343889014716614729457527096311729013301234788347663647832905527241923804257413521178236931877680616270304503035555360182987968828919616033983916328919043386406532724018626542238192383442297013122707345963615483000416491043269985708717430380835854108855184704017377686531448464175461000666908219198956705175186087950378308693562484185615205648279499548121370448417748422777542447350072624373093977683582757373691664677812247484492960727078490678455178818081833481450110270399526461139433672463392778901747966328597543324174913912323542676855811117398491406356628201543235526019914676460067338579949386923897050322727966064117838058856974576022687383999009715113790657672698214759168860575768335167005664095822410930521984564700916774590889004456436243435319186427265459368890059321392385092260460877916088276615641180134111372345637117043029601236981195489443725571359188056272312523856120680977892527187759074119936918958246695920700491734443805999219712672288680248657033649600976446117856097785661213222309037741822000770123146128001476941902992140705534876623615590413535913035686634341421955944402433953116365987431647058458591290601718787002954122984435837237421861268333587192280457402677722198171990161529822904731780629942928106666105318430164526123585516772103183652182165128501839242722635232159914348897500812937638632045197017215713202604525762839763655072037287740578269625991833819059948694802534798316944531611344817884135659571561324017889352176459508598394544391148660564504614994367975693978127810307634318742699425012976484396182045737042106083740196493743378645145727474448507330870922308624594679653533726066993237423231038312417090510200620346935273747835876826736143646586318057229860231121825134544480373715853131243413687235619088245959323172964761316227506192380605112051225458872430684483622446399059021313072803232167801212067848231847540658020401145074249082709357980397536647530339759582542765923614470855643611289921126784101394857278001048896281564729496964188327673855675189789586573154057414861646690356337908774858115169814415378264220216174987921478562903872699060902428440164271053594924759834432128768713050413541022709672692017645582727464368507592161119595440773857348889135005305478586255199683543170593223932548792989682113928507153447453856605870826986402452986114088531223938179104681825832582298824926088827693683852558861402403004173745222225432167317320907930605273854435184411195225096094664099151636190086799815939628941823972074630963634520248027867055666832357511368837573417839506072351300730229338402107042825884854843855015675177098012865889849754547007833125129737624450448577248750502949769030372716659525017303090323301594185575323644265537309386066443982573539067448566182186483499549831005892660986309153593530586665198502011105491660616412508777811221558657152030807372843494604105218828740531497525186073336183085483608617322876352330208208462116073317685998254773811975162321380626256316793098505460212520873303515284770713171900454939261716845304751118173854125750874174789772299527738804585206184618677253955945329080874640132304918013414567934687409178361193534754400789474559922413892664469428505734952662278020175233559744594765186241350892139386883490601864380617452779396353233580775692406843495738648636707172162932615253770656226069791889730062290939654413210318137636992901538968661203459324624140151753418392253983782801402136291769910721615025791779530907789412712645095227091725661015310433754194710656902178333663765484647889720183640109224499052211608297865873380409039046198330182133401034510824984846318247818524326313953625074820348359265275338862213354030490563309286593841742313690588602456852643512798722876225653122865500835213122097777416984570584481218100390901535361323604622366092054809615767456960810313510032738525791585137571133093736329749737306586774409804479130785992473928260142822752303263960784899583816419382733341935265405303105252081127802053093113841660471974995017926497484204354904506619030292034159519566680345233123397528599018750969123509189416765212007424879612093743368152162893156474639440154532040066569543633401258106265775273654621159286622148461176434710438041827717164694713928982865156686180866538067798970735996072871411743513409025714777318945671216583160110839593662248282542179163857476730967641992502583911403865257270236108521725401185476514135862566628932265233877022222056721676597919683350010876197565144271289638057818415411564537186338775810710851105369551886846089161921893448348083954427245822896633789517409765232103123184537245482502672546278889680538126624593767497015145370850727799649086621026884554761003159612137630265220725402146215453564525777547021532530944583879613039837454218311021576220258622133863624275179008708075286591573252674027978887642714710110149700708216287550723553516659378004342268291032377737572185234187182577204194651562153561983185891972996934668101609593924897124428190871688500977862169804074269301598627247056735714372931033919883473312939904687035941840881035155177837306080220530420440268221362180723346273431480081025217168884923783552112068281097242173149855264689366672859137013704772348918336019267193192630799038615877787738610607593212204422497510075014049755795914324473081613806461197043014959995658031824504781846321443641221035115260471804321718272390006173174112454331167374017857217660570074370619956686272615888434494032781089956517940625288289217353124175060412079054854752157613835063761180785757497848966199347326022578294731042266840627260501756732228541523597824353370812263315968701610228612237023645391831658497338405856730314590151182349565717256534717564184768248539140573655075838376398773233292092885620662948639830395290609220462553097230637086362722651123749580947246565908759357611416128914265570446528991738425451578679851067626977423548922066574025987621026285814418293783445724193540662898592838809326486523566008023246025534864715597262974284588722948352107041161625961979207208448759327925670651393397881480826632471842253383493703189435464904345096650269409861866334895635930694781106460235408587264975139811355856705966145021990697602355288197096104173330984810066198436357717141292232485376744968384844979082232069790199151772412483308511582016179651365884302699648294894014916570866111901003640910003126386482300495413223460050030183947546369991610947942884201107742357815982464476241607802813149697490451770883541994270198430478577583704601022603147454767728409777172831797587705496637748085337147043818052738219055691052867899144233627651220917512695797992395966814433687166064557999562883116446143456174614823592685184022550323015477023512491981761152855696502681847208325795182099922594516806536832428317279675927925529530086846460035084506456900138204236106787920522471535061394090448634539756875786269993819282505955457463030635291073815291909173074413758632267949928159629196437075867973739973020040292590941158359091770332186281215027049479084946671052593702726501973670289069723539185022265373505571324954212397396618933540264852455938357032837408713745454347045641304484526427628677115279430389783681994210317836980527790737901196824341429755837633946074138664019458838280909473367903595348257928437043256257841467075288684337541326761134505634028644380040138672800943078603257371507655471763071687417579721543895663978449962538336007020658021771539372094379474741931118017952398647629112063755337296990679650697010523298089680439205802557789992710222595077207430867818409140275911609007628410753090218125931787966960521750195295517978184622662957079033899770898629091944159335100798628595124563243703244973773213152377023659428332071805308892994234321750433470742123079659599578658318478331870138876393092427361693897422645174921025756174071525620952070683429191747860102378665140821518492266395982339827488238567922363195462876634734639964135621219051397154107445958572190665567637658855128465394743689053895008595689891742790470943191010859216897740359684117198012340316467968678236804332122182188117179789038549962208306652602007538089362395815098414933111922323329116730530713914746711161826032912837030073673292098610765080527129068166898719491387116463836213962495472030086896275619982454705524803698928998507635730367584841311126413348355472621227169590064387640340008089113548510339125605884877945554233877422408382551009758234314510681126765486856613942445018342351705654280909403538279407919154506412974160637440063076342147162357653319783645644954030890850384833891507533538958295831887038738801733607376708516952943567580064483900737593183261272684823832298723538400786348036663366717022844578926823130320282830385440701497674936235217354352764995974804038564161030195882785888505804996478859258221099589192988024742244730210767050891170318905783701572855132633079775436065050982344449704719473537229747384732851082770363767386161957159257311209740349593067206941970150700361153535315084912759336911003577596678319302779415694902939495962698393916213918081217795441946107941508721782732906624183473955323523712893924986227318997781372152031556355312706701202969153259983553537000853796341417742222022704353517192253905364757303966105000684245577499532749061325364955920903292330363349329548092729142259135008257856450128713026138321364195003201709465333575603338732406897449825221792777778231147873541486237777773540074601274822489809746947332300760378182612847930285530753614729271086370387083772636756611551016142864265381479334435848901801351909779212215508816724513502688770929044227550478631688026663148124656340417498881056665594788790535685057776493596163745924234467318820750240127907783144351060845484992554801609879251059541931631986384275938212874260170596955427839164584507852722704566817631896155764889049427077988718515464081922057100842679175769820765417312926698638127759132249896485570728312114505590925651155428144449100210817681329291962284197963291217518315965255486766442758619061027911021615465193815390284966134468441618315568775334908688016419417532530987809053949768915882955243757024366784358706011687257558707798754470991567573657480928193525485941583213190001863626150972326388307758938030187485521038930796211366439243148480136158898760372275392789045492750416161031286793783259792597550256058955037439263959230739763424656367916310719695285899721787923611811155825069018682210178598921856884104842808685242607997164994612952435239715958512600026747903503869416482157227117648703059863046500130707980562620348451319751639236625528221305366447249671122025811185209754054450750915578594818305298743119055284581985747346702127022028639501194656184698400991733184482088586321142976047192700000593306121148173058436555799539627707855642585198783965386049503845449862842631747068832420054730242668761587679234797996020856434291738364764131694788222831001632505175971520198364422070491959315968085682544857016601772962931139763428390331508687808260890270713638569854950307035601709090220570006355590577821812236661505549998410993839095141019659229718508085774726580990553487419511754089744014056549546133011401642883257618338747419537135337086250403272727877105548479137374030508607811651338608917680353501481128501015429966322003885548487181808596841781875846570262560329077164383796986363853834030772371538990915074440173361148536580703773346249160934530903011781692192014934538617996722985366446310963754499823714388233249354509958392980628013396256662324128342224874507041449014593148812187065351332123008229717912181886644726186567307132780206992800843796328572746790755460761664931053506450419068559585408815587748533604357630817881283817774175573400007895303347246174060204039121073964857526503458860814875142714164855228917552824296548716434322008073628957848438445376774203481203756366287780963934992223406864716411646252502917210276867407420093781650849525305751835043468350769323669997765771057731102442966069748765071127213480979966598321628368003602137443951313546783252571047711207976153937165321272685613284157639700661081157415474383220218279915569713811404345088424521864912798562372097601588064367739707529969040605188173729026846709517245068682521554810583163887262118644889229869311143303926856244515195973421550313074670044649412637619422770272677447004420238491744316786136050614051094025493777982591898863020310757374320358040672816164388236898918318127521628324624678663600931606223153906832748986820099875986070901531375281525031597906154417748198162279307118301822211870460065468938736466840870135601964716204859551601198648960284817865305697735237714036279166250082571085988189775395944777688533512117567895160484550827672021809009983375852717911649283557557143184549400197705043378166519589524263604325383395221034686800498244250475126930305737223074909988967222864646093924439417902267048758019025096806706527168335064105847336542795457309754514429520910745634089647458168475967962328621003702233834559497523335974530697907129969735820602812201292894958395883545828753212395735537657054932321352818959958718671046246298975479236140532839054484639400692356738992454830356094033404405211407205943832647389369301820810687842142449655549181607946192023614451185722378619112958227911471454089167127386860825963853104219295924560343346621738879591013728507987656012640688519675171137662417882982589639767102602837794047663984736917851332459627436083606064592222673815194367751375583137886419492949785817035369956913795958574225961266112034090471496066898005198859039234002713684762396817533981039956514491206865883109453048079631279442506522042769015049759493040659822505425646847131360999290062618392245079784278404249301236416292542237184147497459785804713098780730341271204089487325175684019936588298825247739919021645337509332324572411883542547647800237501560477973569487217743480529064429194117109424459643361955972983879608598219382540319868367127300739190286846205157879049543111375837724228658477202995444792449494369188184784914754895193491110852401914234667410550512070635413227356264943480276727043100013816624672169911325925256408367757645025720348598503139837287576745982636443889800182756352564031018098654390921870217842256770748641674063640542717923207494432797395795287868409707258942351900009694338325740282637096908067796654755917884812714107457611666863629150038986354336702573065236156081673148814044297929532346480428968211743308221625749271058378735197396656414721860390658267932823650545089391343465199005252686506938251227334934682801452573434598070161100019040099202716581546273838054693198417443378109084696669112022508523746705076727461533746923918589452986471604681828565476338415589489414536510123137057789379190825923558614915502365344446383742615572457776355718345716899207999553664602773215662897247964678279573788573216173874065486919750348911974203585147280924767742845077123804499190643716973110080767626526674129548069300857059278796122099595661030294158226261752349145100519001010756396455396645051417796127994793129402631806642608684466106245606951270466019196526489365432975488581772476571944692600858695203934237544033150813355992399893898396321081648648056100259672911486490341498094387105238497800689851775081301197048525483506783103364946190652308633249410698577528670690497326193854095307354414991813252560052969287554853356870685995915022774752198480477971048910354820565112296669753191057029260530184849324663651212167580892276215967951883017560162480387795563257920521988193172403382715253165368893259342776973046983319233195304316213209013198578045943330646758461732145658027401017980435592462379418897522305709027641519165744843981342703077215648175197866901231389522070864760163053481475338794817585637269464930874158471832066883279653193781904410365987441750717928500559306626853178853230276739882552358412138386371468599746676891695921835143869744401405596773149066722649721013965521174008137226667935303724589725649963111511057493635481681749340119613949709685120223134694193035219254937927526293295444044959920385137945302277125639808293783022447355021372005841094761882409453992501322415337718240796979710019999009509213713868795189443078139974723115498757099937304439148012275509859503494573054292438882792707576788990023411609115792172433969415465470560600061170540402382451641564145767585695879907097842218320581076137931133712619985976049483597330266358079523617920972863550685229534572865828322897388848883357764449118935861845159137453870936227786593205502036906973830798796301879991262052800558441074893095110017531840530702875487079933599931398200209470600742389029912418650098398938599196405382010361019288047775520962213445161441019655908045903366915552597907617187289092956356030177072187528717785887125337574424376356992861301325599057664022203073266042128370502179078051906826776027549734293681300358338622747501489425225315109307220058606651319703537099331405355904365435392665522812541442728704325668715356349429261587717209355565028259862892149192777489884560071479711423224846476883289276577812468963429077207266134782343096777925623243920849544128424352843908297192399595060375815739991002173530805531138812006137324574016956724648239749057095328080079496015278933355264091584886705677147547835392906132276637567034914485198293444144333675828770063820155684076231304555569500622140353223116349659354092780836802156834488375782990700037906210368870124403414242128390427027055486394305376025774685723250093047564178990682420977631901365214366179066110871187657875436824197876158573679413192456381893297233741281253045456073560948293737246423302801576459318984231108028226836766672724562732921866482208415769743471194548694437827425979891799684783722851214388866519557841090014460232480985917839198492910652450271562386151284967100808804315152578444173936904192480329937069561512889210518767052274703597349396813077034980997462371792586518299251547144882184297332218962567594855582367332448045870410553090559274262088300768499685232809402594268470423955092114320572906500980858552394756411218182668067973789699997030432175910988171239741111641479178321926964272191841849789890810714220312593401410747850241144167724859906021771986836258105578776815682691331271057514580301524316759377737775363671847610938302128106299192068499423087622087217347819466317889862779431007217053395193821489426202592742065463854585724287330885377805266948047538617825830431245689820102490941232641947143064337274157915759186477914412868553252845489442412341126366499918490475269108876087230168824970100424086626885039802072306180760745541622398902905945994986916207964893017156912684623030109271135105230443204939014043357026324190346610840174330013753418577647228189822873573114886796708586769983248135025603969003220958757329568580566497086100656735627148371333266964175083529813957075541389814543025363355927501734274047909856439164780953040760871865637306747736697244350943348374276793063839005931656869043990621792243445067359133768362256040100383152309552571131768661034441386926617478345798372351558907874983210352348465884073389085252557976362448195965075681877059512095873494064485915466488733917599569500657048913946260620193032263677110699293367026799935023397058749613025569714035281181366314246988935665302054178530991788877964144033178642915854810264051532585072964644611277132551876675468867716244463801453009078514050715968627038997789968523253612382849678248378246629292029748341259514261475985820263916533065986368249887968823220172453754353723869722899634353133771779860424196193797145224976857160092033719143949664723833209997047799293163360073166394048794564001529179525500311084844136617260755075046508097526448643616923667898261585622620782207942491743162207468039756910232306190249226281474334642972537385691228768995404825906122679331851809556951993645666505621870502061245921132736316588942261402537796686629540325135593067623964577860754859176741652027679220608136901416939342651595912794672699792773034534756923009706165656973556192410583343282544359374296194794962795145812433291044004009216333768842851844999270669402244830231476628611938376861854357299906120635189233534955028522245337070356336241357986884637494337308384065660718899784524852259847539932046956322267014618349538967979417790978531842281038389615040555285820677280180234660514549058138171947482334847638985404340647254819503045492118057312151723416468082143969470656828752916953451680133043814078757902289331145115886288382509497628822631131677758838583327477055007426577096069565471268609564975124833166775208798398191903276733536853711178853439431953529584530452884574530335737307155434984652879348677259204906296861881039076141886784177457823239468625626961167723056520000757039333427141009684704823426187475759360582227427549384681724662753705667885269688504233160374297467514192129458353480144969422505446520347026484044211470718195860192403497402857031559960078817506849360469809653371572639150132392036007950663091147941764934794296095459146885273960449782312181805451457777054676254824520640024798217113451544960547130656404873339894131800644551544961897817446364379541712640364391509777018342104840403631815141896136479347104214790565561839436322969231939531562822517760579024878832781271244367343698144612597351584184648973508930339241908334198027866151645024828105757808819393252526687851861123418195381154623330912997918591581452534782589321899880211355617645633151476076854918268823506052062406501971016929754206531848927913626538890766424201570111714002697871490670786723587486518834599520978922993935021310527693894737469687687786677233477815448404799884349252775275495680528406006887228841494436483386016324473730176551762343835306362989099847304726539058864869525589451498510555304480347275169600135045609358996754928529702708874545052324215642949469040918864036729322277169017535098512829007804919911493278463775006838379574601993355910675389653952120216195303182272429930412899790140366978657829749216089614110947497685454995882601901898527140814487997766839556545397398739767623062111552921008732076966913254983372891454619083719288800019668300554477844373706163854819151413097147213804429357439964512864336535991727843148046884117665167323001823786011391653906260332632092576907877881920593743562103592016831752354168373105242834422352302040686931582578734620117399390742738011499400931911919625411259740879399280438459524642788746874314573175609403574280091185041104585526371417039445524072056997764276487324456528720801330316274527482656698952687463092535411409611508556202194702744957795990758363508662455824467396367968634529677556198859820386144607099144533387003263492810202823314547620665431142734549728743612148467994319154295061748013619900649465724144057518849799873787330431809787924913865038396942430285477970229000383553082418590394477164577669695324777003052553784505478790838985136787133934039980719413227158635104391485504068220377053844003860948959023237798152572999163392061197575427005771350333467701357808730159162573137181117211658427716175380496236559687666392155141001267085836482133319182402132873047832867391115450377682072427217017817025545240040492834716192571546844439913631711860523623539495030795978921348558531143669257372221580157464787064680053790655332278011813902328054256888840382905421344365434160004038074820475451028078046376223545011588207280879542099808211903626647916438728517426454761326649924755368054237341127718758339873739884875490435388241299280098772679087650967329325648107382542333231503459767597420853291655219060632348359099497594807363749689414014511011157981710621019544724084254404237536024211816317348482103699567128288749123912921062252334660822396254145034205553151764235859309627417918504420250111527522381586300920855203969656006177077803778287270126424546469291548996025542431007576495751842624015819578991914744086219425208962557195630644496627938524054137003394230854634609128277929152334925853753211658126388866338662238140684006654922561546351582373991215441742024593462589304163646341469151074938427017428515231242052917610299267523253828093071236956223126406853036853153623138559525196868112141274414826264081635461212655703639452032090311606528065050651496684377427745318433550423385498237383340332671808470827327985594101610942338394950253609342009882862898942872337099812821815913430638433010411425674039035876565385951735900459462398068764734860925192545304004821621639423302860592506314590546778335271073085267286173059559997189734096794316581386803879300021259275583504212449562289916854054266335555056772771955268722911766344367033651633634254428494228661220224354099163297851760006951035637945262846611524915784604241640426629177510568703571413577936825993253088924916981807758998861935775301568022732125340985009088030526206741108122239210576521380727833532190810443038478490779614455394141515711035606512879170498856097799935853612055648636475644164907955720866815745739513138903869185312595757575977649112401342807889295297409631665549002143001526405135884883453867573469085682379776535273718527535041279920776248026110021701384041735927458773753704516359709981612097198844442883842025122427364513079810037117836577422892045303952759736830535014007002363692950096631369452906485569574455478609281319450788030567357943745856393701829574922864248170955475512680392994827361340096933637089580869293886333950699200328808437475932213447415094926437006817101017961828581286844172718608087653741594104930518849987363075273815257717356610087997466494985840368362286229005541470326375506220424910910194598898512635784580237714303531193373258578222521663433491215374741702662052812112621896503658286264525192157717695169743459494020598320877433311083618126055176763060598920793181700684830935047388040420661990804670209947304022169937460455287488571907183343365413778708953300648689659770732206205174738022624503302289248473912332967977378233032372380475550088054197323679570023106968983833214814458345232632634278855289206053526053617597075036143569789393819209223760887530176404637942880575915209964616652410904892243937138775007331331392512847269142097741643702704359666266625101411642409739979671000946524680634605119707769488056259864676341176258982280828995832424493938642774935817298748665166720508572882324829043237721802320209457743909602720248806444010513912096975379606754542762169399311813089717238146000248895566256185604434752842624477934644654639201558661234802903473742760351266408822158935797107065189155193692622084505472697177961255654040911492315977181759781475728382228581371816104772312637142941833826906050044993197452389151401334122973292778730095503297756113754175002272003465848093891704598540804176794645000516239112936997620502000341137651745645433644463810513431444619989310330285932330840735767060859203687983343815049398511437183460256490163703854438308344924494525740893109353943366112040377762427473797402090576281329463284521911141668377329115174230310307679666945136223526814318084834829758900349258516721509873571747762931193192511536325833819363300398343672276166142516480611096015580133270370773326633406552048104783315762542232626408698783186968513028900604205317166927021355604292595736489623952740556473516102709884042109332888897389300178228087533133394105977269160091998719712868891324899306206720571174032246462549477070963543899689942567750407021057140694440845576679111948914856882429831378880710167341047924289286550184430538639382238160616047402996195888195008837751479040797226749505450906161530591181741715035899853300087721341151785594549299376456179978737574569946753130698622808024880087237784036044063927661919557334549665847713515693007702547131222466578649682526204233460977098855884277082434927700345648796187633051866650418936896119531358257185987899556897387268455741441279312997484124151868574956100854807847719166401616348276151140076627636525868096280947244495873743002006017272948759958903531318183959864037174899995947255044102651309923651938637770992880469535726575145768821441916246359024331672063353919964794538582234803522101522871287871952511662638571622595584130870568776017823197272732047245236618619385774660751205953419636891453953128759447538766545502323403981007658281617173112909552690140215087822470470470814335592912004608265685159378008040606727865691179912863811484174365968785179672906646870255507723155870995465792660447275998347930210430569833351789926960906949699462318483325070580003327025398839383287385106132004499469571212758923901847691891177961660890460633604810565346060855609314921345748541549016688612911201177376829669489666407683126350757489883596864397305096968868321070349934228168769067429699663829359724770084525226243277263457412575514897167734038976828830285428213377534132683051698089800281013210338290047423208653125210563793336044431776773455721638206347995383525773899995811883471647014097343923001126935487550722789758686013375510677774537166569099978396725815726179678894080853304364070165898362475353428313312910605811346882120555553723322265802592262707125108629155416542445985241667617012219259023093708888079822002187343597662001280272658897592427127763043075818052553919261135624410224807891997239230266760573081919775367554138104477450119361024115925651789927438393203932419534785896126473036387011197875353948709748705086362949335601483584525307651574122345669180010219112539133932370968612679817856631953040252759670069898142915914132085963764047066287783568156066600838726170312562409309574182494477698075113003989080436818841090811309575152553647377174900774621461170023608421405519817328951742653519781981756618122270570359643608616922568563932063057871984533154712581782906898495416452487495099452171254248970693073577353912647131072994665781456781643558091124496762450665212521696927626054356522804297673966161832994731779197805867229665659377456357271529234933490034578657789769902095952002695872343517890658639808681437020801007413595429042461172536588025829876405822354389018294790670729760382180064033649223583425600555802867639982615785723933814664289428939569437599684901281469392655772220493028143950964601765677206604327463949760607718216984956392709199587785781916406780456926195302364244540427999228296796796343759114187561309523409344531002634738475730651142711774757940460430416642016143792929171401186442473101271200152674202168452351826414082866886866182714062468161724971566995579028534190101685869398321676757273264979323422934696122928472312453906873300790213907230072837903776108804595046523951463355870894228487883611134503480402429983736606286477490229573418846108737967884073497379508906919456277223368666344039564011582275804263289949961359188896597978940120209697653985047667719968016918225908825152812077164990423675270046970698976305123047472706669861191030683042101164114210086271112758318564326675014064476745595620215238872679536075797341752147072945114219697629620817657444494393883660846795687655792332805452079742112964269391354360784759710487106678163937844496257781858527294697586668774114922848373524947588354857219256490355564778855700736899457690295164626630188249206851377151202390420950974176814996614044312776168429534042733471332666928939064092432328809855888656367296350793633530082561956966019711446456623308082399467758968688496301225980449833764996083932362548199878221943056861123442774952400642789256514382419238790480678610403708517726864841965321094828061734314050029887925741184085233052194225138164660115022395437860950742818016047038320880248310989975222839877228256211658566512318780765966394678875242639444764400215141858216880968716556677320892740667437791510056621570891358007448101054329022122325612151155180231114640907516487077141715616949109155737623809454614210077164064011068137206056894887670921010634392312589637444758249052916583041270554616778518100275522909219757132642832477392203458754820836067146790726089097721341382300890311034857887120829203050970020277189955177780036041563106616704451787343138508089445393409936017526817551312374691791544944450144282330618452105186214457668334452526847632423303510618145413910826649672451546479598727530576902357917188788169376054807198996977724084648892155307452158627676858262081252953005649436910726705205832482604038567135299277659296953067265713782857977126993754590422547296792143595813395133540268676864139561195878177878409269511665382419940364491510033212993468930471804041944512222987483200101404447017976932054441421997222743810021652119486669213684089358331223687697280719969462926494267859380964786454762583743791204683184113689808789862385558353774010260421162593887646548734947575426271057959451099093855020325462348644948065707229456587178949910373485450342791920546500076261625912629892873485439293258826348278325313487593723292989018535689944126486044403886736421632297512953415052507627641857876454785631830962285159677238969860317630252826010523484307430584378679990800907209363784021990191825277290156471251489856176496214720910191850278077042502405904218898796472723059493743461264643029673427178298639854686752715896306622934065723801939158702579333790533846569132802159360641029884803847262110969037854092329037443962370852801911785524378581081657954633534118879386901544152734557466739711209766463604179430480011739592471918455196713568885909458582163071295213128606096622038436818907227505086262514881195179421456437573369429233463397703484251638178506966206411133324174985402001688111597936225593158109494978804148682314595125291831388528572120373221819490283431249928219103833541740739066621372220526553211144901040016955671605415323537317567280695669541463847290278354646837632830657760737955738890894828288618214365156400914191638189396045539737632445241335522324736750531206084653255248096975092814073042415347365937907618104717047928691867357013689884989136946286426368766521914101876820507164107490978281066203183086476523881518783436806935923141602999116489554394368281607193276767804747349127383385138131245406779088816523621252485666911521049549350983264173972747084330389652791251220232185670982148733987055585280978761273332546117904158502173673055845464878925119488191233192851924967334388194462230718515867426008264364640181332323660684611440206834719047294203450398861289721163940259219390933718984450761870608735885175907728126214078796059190171786208125153272365722283114794998538180357264878635370711772206088269408837785760125430324912496235417889751967395621788422341040085100159915911402348911580392370604898136939224085752267061478697442882879036968631207227242768572857044053699430618994618634797627859869743375186869368596850332871548228216370441751976898906074139608191040179317696237662426110958640915265268712412931494374726202466214635438940438944546020307630103443647357135642753801231373377547383024117761584760499086475371610146069068710825196984902950452144735027539582715985267952485681482509223868876295666420047849914713641535599146828936159543710202132016760634746569348136188272241722179870905075331860566936071250657291295840017915425222995394200349347965277790129951359832979203075618697886357146987047805733373737644627239804399184591940683282549747014915731264987692426233379882258246409773866054498880153374750605060551893443870531729171644703146741896377147229171784058513278053600768796471114797068698050260162353745811650582506703093785594138684644434592855773374629920192006456233841478822487010183005714149552557454237481819395196410359934606454933603883975467002743636160956122635494145948140350937295935904276778565494027979658881432801475156644470967015883784425289609186790388951261851968689199030422170231675937653173060819837684969442223177927906021616436326630603672250378146611419330385759509633816796223902967816095439309258228502550430847046309626674256631475252682679881835843206958216361205232717921276510468549792582819161963179339370604316778609837468481428641747627844624453506949037047460958188409561895675830142096090656259252282071360193867628784183437654108778362318301385538412785706209642351353315385281660620034322417834993272208836256570492692774747078620409818992110933634381512327877403979556558588029648868314509408902975134082582949655202871698463029238914302857558610717269182236539857188524982622606451534056238414070760126998472082695534178422812409041088258537126773280312575215977952533194591565743944920835548435116604494904758829742941274200854686914682067443077434594465904996096855070350798899634220655334998038482933704417614841600034712051393291117940235116987357914969684736449961074372359611262687287161735268047652388747760794566711804074082669877706097751840019677543037125549282367218690978980535678863997112964988636958976790745834634017614366729540633237247134340953028957744402589452856726135854590831882497161862772048112973658196533865721803043371149708874144560647226238646954069107890070859531318455872137970601528664220125326980142694787162795599797662902941587286710267346573145117110325819841363668130368032147521542476106460583750427008566398272329334803794949540043596765400362120156959959953657630651159689020142939147273169703042650559380854143762700379416067987978650813997327340320677263323678215542067763721195051293582579825017519041093047956132995478025851689236419451956074372673373602280574557688954430700873207448883346340612936746313342859722806093490295333331534789604079677427946400728643769536474250661026381762500188538529032583258064934190718713437128871852129748933248996635701006559853891473701633975115521354382908082518794942135516592177726742594067293231953154754664067969039208387456611191285129774154400484252555241042254361162296907610750983453091443189242299263857173326435814068420154430909744415633960530893317879648447427444863381503444239522567395476571750197067098982504112620622142554225383047499855243855692288444627261466380442481125226606252845605362162438382058377163247702770184634513842048467696928187713847292552663200992721915544713975909860502775537162875744113782135051027487723702223074842354703527531821846691959612063863676640087657143601457305569334878155384877698061602716677514076429451501976978277712111587342733421460942226835707000046450667959944297102931320728898985543815338629769078122480817726265105770321524615565918548653010775029426568195917176018470982971959382590563327002423506401887316593347322379184406416935856619278849477248463213171332658482898116263319211984863602195387434554768449566520629649423650224897293409058214997123503188445068987691940322115008546591562187025835380007263051284909378273197558589379443766890170270616619031402222688193684579664808003945767725810216784279933642368315186224341442390453766512241437638854761484300058974881404681451966947687228521701305102517910834270515120703876296079509580674693858376595341701549913887854579798567555829702009885316886425581135244237605541245804640605431327727762149691515893128400765760144832532817545988635026901919907651392302710024146203177312071293739752415540917707983914000944723476595790906498738685854679149332270947428988568474764025299972886366192757772025412496306994957231954883622028265588722914454958248502236445581004339849155439415446894668890113259853055055934568028006291536272839676025802373513719756899285680118763968586055030946480929535173847310679052854270645892153813815284147168804722364676514340759895478333248400469117057932444862634542981716879401195151016180904433061402184073238260719475623958516838054688565696997589811889563331399925423292304657131960512897072463028339784894369928135646298396437299520378593388272655060886426251223628461420801345354383850614517003087053463245492085876487373339145409445549538597452574295748228962722851073650888180317885808660086453622861764575940348680632123366253516042533671164215390655688748886775168769899266114578368552333478282114843787178121803684582556938681036188683208074789124799782141188143764511862448408720957182546326613515762122395506642385594823118840496137658816929950473370204679665242555657714132887068588400072006568850180100457068729527981071380815812061217246670084825262584011446899735050405515260947852357502479873028890013016277062728641255675282481952236917928445726800115504822893335316044988154748208804615847009883072708105170593488900444918956072697785399679871436545330497209431910684533358095408185539858352318365541331097237056631954813106532072514705105427027651085790957222900520499238929821727607834097605510688391093422839725698663222476879033308780045892089635511561814836303532495760505659016836168620374838374944932657051713543728190179545868488278578541643506759719808321259876395305082232232573136791099105031671314180683513720665603370184112356854438020786769822443117634701518231759507261565215931901867118962348313288434456625072710270001835613848002849412218525005206398516048814519963998128956526364496217881054270652377235169562755909149092287560341582161775956405373764839737415821366146014802440981456315065805030113654478148227251844688501921735474554120236450628755523808308851363068207245213464465905486915022434974937932892783128383133369082038726337393694268822551866904783563678054917147181561173544132638402151337600421160051448531084979715218867586719092849922146247279512361593830163956693908966840212480113509205136487280004284167588796426801538629259684757876750571443504228336944162062921854091905131539316182784079077550858030396991029054264382282179267836266972298986466733885284525114926057695630410455116929287579071131442083879589368144265319964995254368393185537564693356583201431348246345742034412262625797826990100466738102832311025953008415707089174228649440059160253686408284125286472823563485991401654034640262245381557643065425503777789433487680224712912913953343835867809680718575977709915157564922789786408134989403745949425988899555250153987460840751819591911546798435609937125276838098953529557885885397319198656606896539027058239514815290500493099537952546894045038136686114399364393826430291547787359089817432326333585249075267590154009087449721826784828448347703058861944535143993338963464951327827956051326905000265741705128907058132294800379455121842544289898716658744669948233875311195949900645304896495829188835463853924177760625302522781234425975600286017282213859553062041887615781234665076738268561063126142805571614971508444505662398944447665116257071328038680406794947248156366658585278409323169437426867217931724802487679843235282113277155951194602812107695451624603081128451611235505093853117183373007873714749739704140838828098987718372711444078023432559028438031676600476013598896536327584913869732535432530268429514088553522361085372339777108083112672376488351007901992129304153627101998864246085986014994423012718142354611286712061884986639406049403346922355722704282982883093017565633027384808143061904932627960002335234012962676704400322369532634947514952720949795224853343660111437622053014031920154873304482386690583604306435407239344492585476718759081595448818827729571577008419091891988231818807744100688772486251768344733680716699791035351559223668349687545344006606239660090418818921408273857689249879072351079433621339656183199059020109713270812625902140565657341112034549198536917836836797845691975591128280844949172925201716819086582122064354323530600971267542551219977753027599213543335468092333233273074718312536785306910442318950909701291563796201580695473170472952530999423266038360487986369756200743389670712641456811724611795870772229376609749100848632499151754168232572587641434481401815715629449450296724826415648448118576557234351691023007521603977251234262158862197871020864422128295082088627829703620171354837924699723143070190064376387824442051975554918163457588996383583388421879236722255698254817083701857099833137978500235173343134485114895535797393915802293914615682699151682132027352559209484830953731054080934060526237853804812505174225457473558614475248733853398782555830134198209617121290416852077112262350476630530346557496120241437986485026238168645271268020841317433027838589428175293485097112532117702173470498017450796294559665551521138369139192235556980727143918353880880119196655954882780824595759203766228384288981237743701417254034608612534745455098746736170276377599285633486809428065177969105690429757679846451721905652475285404532398428383539107094578382608493820734132622750069260335472801710901374130854086593889343120726616040134244021536869569818911525404364339956011014036920061003859592339558591728995357982280383875660665301733584741225776076055388410891839938740626301238008978478486289123350535886416142839307670419316257244335384229340652254615282254837479701017051373562621018188749133509016129300892161915549169814316535198787785254524608540927161227340429054277918458257867451481890476157162267498503510197694707304436614674883769638199670797820848979081046895405954863973706925304082670634812522244377033953885400498927471577647302375618176166263129405403422191522830209896838784344905217597467795266606753544849717446925898144488528262483413100128019644048140346902853617069612659206067583357143164235295199968768661914620581809418513337384627212209432649379338733142905590324132312719468305813937234385132325545795591222567011349310943876009202372522616478831417489637904360570845897319646528370268105327391730184184865080745701350019180117271090968463046147115703828423734437226304265641633333044510962077106478351594677632653525514984340059893406117117155003144251928053817663598409587941499780834358765385400073106456943272741653140261197378757998700160908319764708508385058123711830945527336110743575094412836636941169151114084199986788636882394272622055649166236802349192855501420112440021902047622990974661470237864230135758184627193675906519961532264983449801758107431261502136315373132634557697116962733714175082113324256110093653386800248882078425203599992721615922020420426532676404210415179757180978541025107483776102386124816353129651813799026006013938286980970733087716962613939571133229929035220594476816539443545449788069101871592411391631971876452389447621884318244480269502625897083795058509160074023054550546239870436863537244026565329950429132078715018313823645264170776848360746422959533226736235634740234519341771975526281888906867545300801322306525204801332450741439298821723672359172947998166609711255476430602277041169856936557030983569060349913400831716261581534272350030486811262545926235557512341580078440179201097410633413774946857529235858142925295620422021421131344525870909017719462000035979807774943380470365809264275137085202163916619615694929187616461362845610516709105004873735082742573655951383307725247215179230872446745571448917382077159664547274642036647375461806026151795204415816500295051584089239340031262625593754525316364167216404167631802669982332073945236458378756970843474255496054719592341309187913799709846197957740585701893528107669717988536881108275951395486444710602923274190455731348713445336688226224460659188768045265780527934561987177078087847367901591377714596741164397216306496839717178353490854198617880433189407852714959816526097453605072188907650240284775307517739895456851157000918907265629078692219587728509045267735983512776321071481082126122046529444348034763123701578552450812695651108390345682076880560195747165791122549645731647877803204340418063939343364626206173111222901458471382805214186445901653375742318600076011548464127716758471778603031904685141962323941058934584652768374628019997372826864511368725708083258115027975168579952723721787379953094074585866629402023971480722466995656083851022405586885200038576604313853492940315695549306297109930954750634406907669616320513024341115186276397269651552478478978221124226096256289636847529527777977189845327353548200831618247465424950940921964565608608856968177111267633336165153851408026336265001811522576663510344415326888484115028606446275844017565356192690405498798528130248984979904353433404510377533516320016116369574241259897346641234184472631247528959677567315508690030499405764141077393951791235796842280159467319086970220723078136525760364147171240258804390944641329392543404890238446344585754444813209745305409358866298072043317662356340823743641441340307025437968716986148729254739019364156343642737073947450315762851803070427076330425018528603369160486961568565861357476173762440432074581676304132329931812052090538090073728515733770734942659789198642792513788958484494618805248024101065996976330034272442130610075522767423904636638481762172298206047382872209275875785555714577630866955414356165550976725608583523910816576187897882539203621058169302375061938590979180884503340478960662315939767331314528816894300161377379383104148985039098354616578911432796850026940113009185471557100598888937303150270307610161600008455951637676656462374505335077621311461484037125093939996128382251085520082047406087420791339934830507323345113464529855623324122855231668178234254909932658539716902635137520013931208377813886395379027273087498162557891097089292052973328576613681775402069551618661626064384996385040893778229927106850487197634986161370525470149639413386746094838577390343527784785203376337006875675418884996102063460132258263204483595206828514511533539777679851311344760655758715753975180040395820301006185995408875807238509396385454252393678855846694643640475760055714242827828434181489014869205830168758765932898972151739380026490473122450698730402382170059842174640768021035763594358466690702411169342008384940526613235437168829501320823493303331158579621818910873633171837304018693521032530987175335871053045347154783932700722953609351022961906552647428178461270134780674901358628598838821555616893068097861830096421982174756279110073558593536354992212409389803776116610819792371513917632885954194550013897225883575459518521451560076678770220899804833730405508684266684116290104165019364859615535344057615368952374930548930434885833925444955498448017764810625709186919345023287061083752178892702590329064050173545365304129370818202338081336417380521870058995700467062412377951061007650665268337527320749774700295910706497335017942869197250985726451436695205614654920611801238720833921798309955631235685488026931475079926592313033217266021466183085477000964835794507773956144117190314738622347420097628331000823953917616001363872013783502718226823822171991819951957741558710896111912981985601867858699307018006929245852689602127735994722378449088451675128980031949097616362712621043736584449191279498513646716082132624668894078135603246759892505331038075706541058472109880805130802624292317074733932332354553753357581126633440747422574600294427332106824025185677372098529630163576817902965464900775166698251407185720156738315654249894201865212977255530589541069776508728084545517317040446258920211257055378911360081121391540519407592581279125505242110615866401934435543617934042113362967087349547647749223094271293205656803017715905170557099609336861325400574079533345116162319153206757052149540275864426335581799531072960894824499854043065033782263749299417085945533885991289430967834261060353031803841281653382118264712201890855669721565702230168450310304623461017196956161026850668392307833475123128234720961228745764329617818084835445261033764322154226405286881845239283873129859327599885323158365175118880023381173846595652626288180492194200250086640542854171522927417269594652505905324514439668436115492159775255823873501272229349513477858202924985958566646416750183341548765643160962672925495133583388970849047016737435407118470284575194006433042424708592722081855188209693326284546572083883007452220652480926396978970032084652368945133742877200378099308087926810649259750423924234296336266883800196187334413082913819177237893955388245354622072706405611010183152520067989933293472846216665423909078039557667939177693434798674457833106720329325093926765065748438383142195021771720852194673703308373417587346486190999089829132622409901883587383521208636896550439873284298214004053949492200468373303293914658003604787706136531104391914787006324734984783161607067976657224691699679662908841626061267557516321692311872109887378335361694473403188182524667457385509961175233796157044914853487431014385128759391872574901105555053922417655692514409638549551553629155682936627195058740717778010189102955960285306040390648121665878920406675450021386885479060391252039808395484471830924621011079526114250325135557766043325380228743819465608678537518731616049650701484341545271645493762694623280396435578494156907054474874841785787057663811928584666794179877173974685387660422410842427652327626793155774986400989118640701940054268646790135545770310108115562433241414709013708247052751345951399516866294381000573663711206939811055759853981084384413145361446958049793747600283874304096469544386418208182023585333819429142155582795160999151803554652607812031897011506863881204245526755261930265369431816398232232791857710883994985090915020886762020317650463900118839396423598831665752931185623531071817814640283124137591410064238930424242046932410657800918787436795786584472197305465684382266180843424418209750895003080197575111435704931546928948902644362688016652397939108821340038530412564900369082183034595348889213868164908601399557022788489988761590360928209145857387976848046622179263027922185239228598921818858132816819700965620571320570032439639419744259659223144409174340636625197698965898732293330871137183054735324638865096715513521705460778437704152963756131775504633462031983871139911284091397897621462520228229748903135821062792496524017718535585257768599525729855104946970945839861490908371878485297297269678578497751319032707131907188136680494048406882707406591216961949036547249736546490485551520170922571986233730315988978278328485396958324682636585953632245727626186837609528241980496884537265711256559699759318884005699665636436732079701895975425484722631902384144293221506584725939476477792221570324627404069515566783270762380772362601848682603139466087415841846676784711400444311030072432621791575376637175577727177377808584054314787962856524565426354873319750833668484889656119359744177616848159563367085617621188715590823622583027067549129511492048677589504943607547021214652932479727809904574170974518523391803339882857393450866595425915599971729767667429812912533081593385689677434566081600179221285481733273213672818992311114975041549209384662352601842952647964270535440222903433042310545339220022242665338919554593339464748831053207545633237737405901717135449852242629081669502072054238187482592730885590801448355553875634429009693099123016410689347847336988047371431821648074412708870876048949430721097064061700097150833591065018243648886378131424395776270967859857887835730406413855190543701176407042385500139137464625414106272491011491716728216951940732477673756564849056579572965875070432483734175042147145715432100570384674918859760541901568298206626837075419115821954050613423214241692691278754872131953471179413551829611363848809683642307542838022732629043136040563121197241645727620152787779127094778124331679471411316045257332996970574989493619643799798134078462103511101128041989247889920712977899866050475799918702439204334318556541962298351650692447826318770452643446001728355279224012815188302302170040345369935385492302601739156647555640425451624930363028340064061718663049066887993203343762167647355651992493732985325745940099183658991234916326464851193624810039943517807812816225175127098536779429318789241096377558628100791678055170995525789574645921160910204378056076794510603188967484734624859966799220792655001674525967690215386401624845162624765503484663414724302796384437569461835643646669680763698053421492163700990281049713631090618809518548827440120737275632606217514389156613930882790685644687810894170129731930705708654959134707871277240908152517690603443909873165792319719419332983995451787912483597577668950302665835668165074654483562780095549551276964995167915164372633606028912151610415759946937423216339905742387616841830530112828837101609567545931274009771636120613054611310523348764724637746151347950668646237302479022204116177617183454015015338778658397984309011288046660189023819817362216542018913075693315646980267617077368280467320244928678560979169600519534207882238453310585413238511399497816184569233984691435172580464670948582522269973026524450845007032523435574721093479572602122754879651764389986249624521988381432533567866832975504262498411177299264701894503335111615363397104194318206309790420428448450107298056988981854826155080675737301525914610804337018276568078107660033851885228210615651035901321958856470317865953628935078152871718483759577478175747791482660532486122323491539977213543706258030307202738212885327131551945240886134937471035807253547600385706630492128235561091372533547413944004283086539674443064783132645514045507100441428651262448282885248641993683258405318645060489406291665604254002030310775967105932179488163242230077695993694223100278118605393793061830827991366654737459981078597363094067673249696731889507479498898693402570286514694474914593722712797692723157837583528773085498311036922129917652276926896125220097530507349225986643261806264198026663685046255299246145528669354962043838417164659650350142182404664856524499349318799910067404311722189986853155915079526868262725645089980617017407254755717157215824361313228204101064821087160887412721148010734337928692215506549559001140276068617623569756549460877533230412187130308467774814063467229940854111500932081593627838714098904919461441407492841091371057191992797761851964921406339178700328004002661581079570170984335212022800787152573856168820350605779132910293448366449869040160947741101714749464945987218073485850382540511206677663181960145016287385641225047191744700545398958951189932477540200402669653062987016425275218161205114836101892378429826872412869516863074707168701820228321053255928191882186828973841376603454650743598236058159923029901381762091510403245507190229937989062208481676264453571593868398423287599012911053675150885898878309951677149816023419855842693174682025557180422821730870973236249916198102559912621079690212872503352273874067767344437364952867740196648234113122766719915367114068202289874202235374250924901104861421018591942402528831603102560786330579075086653806660567137987131664811404481493689237949533982492852786242550477528504683157239591846922390947783325045265760826702113710612037176552055234752368237692894220001908495669126549244404249287111886923183626626629681101275999358691445452597542636384916488735405254298963193403849271252131835643914231379126586344317113239681375353103781717267427627670967137492676041935398111364919288044026518275727393390838686774999257856259034930760424315459713106594646457271349846277895103996638888038281553599045201838667218989083444721854349748900280516648167242398631220704832150337656856758226221095404601287739736875349272263389296618626355395196396217595004098644504220358085639496674707891906607918640995910714902452627211383853737101202083356447053345932207250959342617768818718147075678577055918200627354358321442730910013339203399466503670933628561511473867062441954768821711162573915979694516269245054318189150528871164236267942273379583337382915064330050628112044577298184182405112030859365200702613747271461153342059739799075199685323327206627078565234233507395631352261468244104043310775856970486729552191500616388765691211550473193732086904834415635438196413187665364664166494419575503572059201332348831290537841176628005180364522764382382060765582010565289786661622750405487810572414413318938914555124786456211863059601655169453725041871707488872916791296469662155786064901852473832303270384897723178182646352091385218940159499158534174000544216200935168725000106471572461699997355202285304398346092008807754457635543869985286438740258273257287064603634895753907568820499017528500547112125388536761755065615652416162184440523251970635480472787081547920516517973454866928338086265669209695621574611010106306756531984160713261557690757539883643080739559415693444720388661565127696545669946349044415169664063668051979605171467996382207204469686546411873142585535249282605285191967131264143258352156729939087118979095381658626181014456731385039878500512027908249168139579184278828700615736177613532047121147504887904373255227282178602404943553464410188576884286150770300744912714340138223099169135769952624780667762530576917265090749343830625258842253745491963432585291257318476322187813748619158174135954426790851232973387377222921009719340314063326606319885775605307080927890140032595400784799714543732005693390496675031006358668244637312639306786408385923145664690537590744258164006687360583572012312632372191268546004541465813225213045386712678325257328981893953306704481654328229236442519118176993081859171286448852313731115733259833961030247175277317734123939177158958420977935084250631334298302573174844458940485879758118381870880818546091781369157759440746245419080137869947062261205833050692987662292818173146848652017561420143181577309900781883210824877207471866410466250945614432670802187333352328903421274349020473730157948572850764345416830773773255331621594626742372230040190578662278007286753244212255599990936694819653356789301212632979685335908049870478481194981013348661569953451235511211325128944016539087811785569192691249205884623932034662424965559273276406239292789042063506607556104053358713581023056001748095826623781403365544345077803125888008613755140328754022931798596608023625719928493568539790144634364759088965189917330320412414490150662520215623750041784978104203261788885682742787616616945746491847017733667232274775660132769614839767957694807507181998158384685819851878527243144459140636400276707676448359786241328431537007285541078905960613780544634940325197083380545039339169184245131647124760443223857285772552046293137091604701062254506904432594533511640973994179021956168439077870860343417246948546026312144612419542558563237153799874011399091912799252856182504536682713508592715461821892003432836691164128358907817393755619346621054519139555702896262258030503555165065389690182999448823509022385907774363583986082278600754714546810155253192188634887211009548822251579780218998493390085229243713280024265949916213282470006274431550607185348844819229588418563363159920033484604383083566906683639779777693357068568578174527001902913787716491675054378489385930224804040921728592543590799775962878644038403779125403782046616893832776265039905587749623583792806714684444375981131707843462513229057717838560174744940199100834529487262961879770416331610294623508802082170386888041240243675625984687187046470397319924596144086117247070903661049329796915585343450667044254391606405711330727213265230467062522442820119204766189982535818095777398806236557876503813415439168757735538574597728955781926973807346991419865443522397091342827466062037737408881418200736515073957087756056863102608639863950261392255377023610497587371777870288082346019206049216524297683877257686259380559319802627983598826097084252172919168337620969326246014355680652086234742086074555600833337723175010376294768322759232406782365419993771161241518726567776221057244925673877422266078434042178669718205085628588227331314957510677349783564652289951910768875202453525323733408414424317093219359541809187361032529174630963432531368386392053720611134434145881442051203219451529731385419746253043940498020414634140768339805437629105867892671993326322327328800389492036797867543778489367560321781024766071575804643672195527473284556941811561498024357326988604733202150187893475381628950813467479336456637115755784559639294632978249083644811165498647947091326976717040919808426931143792761001245673999517863264312043133820410352964496452879019540713378027233522538345140503893289961761150879510437270412795696455581808528470523193956850261142096591253792394442075934090274337720567582122502116866885612870648275239030124707569380247440509308249257729295911096089047450514697874615860797086919646951557232034485308281043335630352797625801574491556426382628364096154372969419989034907302647088573496746603939102424115288259681595428891583562282036052465988763162791538294201826078010714054246829319919493452406679245951105030232432855164031456217754005377999958507513241282609437654375177333654062412360545316215820098576782593472255277306458448237144210114968863969803858856526001301997173636027797852398612062694969400769730302384152517176986935374293718294756133062738104465810938953923432719371900918462412024081856950381714577382835007870771394089356343349790371825083143670691805420015832530067964284966327994244552688069745340423838490805558189098639328960507400199390929640121349793205653727613858421802727847161049870618214594491365174206867309567803823058152286529787040948184355603386727706100352330683452743760608098011083526886055764769018550069402779680791971065184930986099108341003052086501437800209163707108365724561397287889947275444612637283433981408459577663322452812238642699166078093533368187284550498761667689239320536487150265617008330407949933616860132927837327261499822693283763966025835423161491635072848321500517878421192122470558063842005059758564411639328430876431332959609730982337645217652883117857921614288414215121129413358681195481486203720351225325800575802355072490782954386774627203457244562143026573396666151092611720477218055863101203329757790559433816194928093807046413489441094821625804835043714053929206725698214544375143049261621230535323099460417568278005607123850846327829252536318402807406681103633040831295031235694513945552615007889005634129329094797434141272995040357672900333933721343065301377380725420406040656686911377664059860274774536158589804775405398747382294845471938273937849407609134237713907512476280117063598120455662967709710618612715977712314439073863666961795122961967699538302002165127590606905904518760988670827184827223120654990516906173358933284681380494183042088191481511255650821538584808002818331853868203218726308422915329568070507374137686125170098983208655559934603447180402214031972870602800388552912745124228624332868907560443311074668669532599349812435341969068033010570425154825416271037559589572514906138545527931479360126795826551875915289637504973716565283387384459699796458937855988941438595270302498848437463462105772958835981073306833890524878112875024651537513727337494868254793940366642364470051268631689467443228134200920665512288952187866913999000116993897011854333342681562730517631685970575627331115663156288170627337770108849451952925714648279571145675373228607125180361968876653454499413956004780928584521318974531818454042705392395896062350214312630825344019051889854830321005706737961432068255160524173328731824138239452504043078442812703952295968395716998164494715007217024954720973647443985258728798224995641356525916096711693607150687900175597477610660263462916993970243462388312657676965184803352242263910791418446490776886974915854224852847295169220688117298369471453117968461823095285703004109837429170652930552643072834340572271574469593725253417002990601381255156625094610249757968860122189978752078734701389934515934805727538645089873357799893829937134932341061386282985177934085567446788543426657118149956384842939441225954102821157114198845583374331516412980439282080245885209160548305191942105382096429125668275986450954935096234934283087360182976684852421337040435210655471138906421366936174089970741289533835065843219428522631297382382402794244237535753743082109885008146287899888511738378369852442685552168917544026404628439040833715356280367557486765427764335966950620775376802210382723066974855651730657314315909240574295356017696699085206703235301487126567369354031168070568254470686933873981638258971429516717983292888198297254519732689783414383937628697321281360004847191778646514199791081759920336484690932838844447089522596849904693854852130187039784590758061631614572736097115714311582611102252146040991541845838199834798473025552640282872236905401864161903311663743019607401068938628403604945124484718399099026545027057426784556014414577277331029290729570447977204326794399372469372562045518694029891128332405189819707243976234071190192900354914933280988370119488270978705400058859760452088848125522959912492847480328614569293172892271980924417120730637504298249609996180194243104726824176762239142350390806686198838420725655841661988423294193593655554256304534320491824913297217997156913383152177171630111424859211853951010162414371845082672341407060714090532938786417130812277777758006013536725413214798782890237675379266861291316023377829390116811649982969673459301581547660426267104578910992882007029941590664994258881024694370878678924791508534230927794630165307657153210763847285070451735008451375118237533435545894050503116419627989691319963630960074162230537540210857516124212524435966056132157052914129253340673158898682556581707706009904400445667958287515827166297665498310913486582948031633121317990282778996899653455811624373066471320721825871265505160142833256029893915929902390064618740682629292445528676593240295841326595635050405122853871962286600472317971171685720168834199991083726900849501131052020023207433302017259307626606359720292930696340893466275046554707195312313568016492853513763425237706549301857604709478496350690175595332346513682450186605151214917892770402408807976583676616864706105636137179660788315494173672703336740989012116094853202433600381916536327192927956652867244729946275321562754604982146385921564876115624383114841139952344970896118141419520000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
100000! 2824229407960347874293421578024535518477494926091224850578918086542977950901063017872551771413831163610713611737361962951474996183123918022726073409093832422005556968866784038037737944496126838014787511196690638604492614453811137009016076686640540717056595226129804195835677890904754151287114083692425153529309626067227103874424608863545436398293174776177553262185112647485586491818038151987716121968151412990230446382406889650835750022964993964236425663527161493520780133120294339305948199604353969420254761018738252172711966524222462978613221897504974019517165315304898748360505669527154801765121621380041098168079734535478517520246219450483450137732631069390935035988598826321052841414001575678609609029165074696613545262530732547530215683071540424970029721042464657713750561658172851551721628867606644818098185845649120912302682768147351225295912356697622384753282615770046948114964848491301953671340001803143401238051136817383529604736178236359090032444297950688020042549707581742810920051587113272541976395544996564320561066233809944107996509023983505868826254101504437048432069614620830058162203244545765692318756565514222932145066788968458166403431217542120384260906858381449614534899619231900467977963087077199296523095849600825567809582967912837899666754472631990135059896378623749638002602721271280372007190332531861208580942669184318813379806172391391371142452541538009195482178127103419057404767790947408548585300339461726805826153286598871069522633304688276156298586025104515900688436549770091859131407933630009426687245018590571617291031936490991098228217111303418881419416874105904104754556921931093863614157983757941694045527938937109384182352483469190977349229512595307139832856254481217915270504659595865465695477902009217837081622239912666569873083979636249621037614923347132760069302399217673511891057774156409115337523737796739164299874501639465858199659299833466605930164782634986047986287211118948631170007729933467879533102208785302906484768220247087722697882722570310129317599975415218608043766240038735376268905375571540042554032021774836867599633613159500423889949964185457785707105025684811847514397763075381968197081809353979406723292036890892278320076369335840658417149841587948589109694590567289971379841585164354962922275043894861815302043934524746300827649887776588657430808787541341307659150357225673206408139140297963493742700782840103299929256690860602208331598375281999915671870901630152916471911594792045589654174108627724714953933330259638766452116193127088328263058379407282477564917067772021579613731556638858117457882957118203417140771452947553579710818266975798736591330783868285759503476782370731375931078738540084688378992553663116247942504751261510463457061195247608225899147088973048499714351467705120587222704881123894015563084242325566582234524023250064184629592203477023254431663678834524234786351840868377556610441235314544712469309924054972384215818431201675603905031719972524565657858377580857753875296587611843196719011428331596186371229904364101925104590174899485735184754538966936136596452820863600242776042878575997267236789350943310481163781137073061657701913615155210544413473188519616347234309905239123362574033170102120961038611843868063597853491277275931137615512583588086143609696078414543531160473655542295909978736085781976548586918266365930166972883618318752758568105775675966067631261844908745484099323247260781661001877242447578482757325634619280676825806300025702967517957687924077010327825950051833687592868609266123531195866406424282856518217722405362370108927300980366147700076486863597137065748242066418805996019152058416937539572940540848572048418311972653637539392292607122329445546114043830608888455472262982521959322579596676683095798571389513587611207880657969789400571881906259210735317292516019577563907999470160972554166513367117816883319321840660636568596432815225078372608736592243877575265200781212833881618586750388584003652016675406392778115111868458199386894262575028022072407470229729807300769305350299030708992932968658499970377357047611241589821412780882071586215497600204467985139003349377901546985902884570454097514558451773384812005969986480262352327994453850460076937608734626659015202206123435576750480616281524573157302966399451196823834643757718903063240959402591380922240597916893176229124101771570400726896732414405895355905933752497459666555146355479201710856104464717446942699735015204481366510113173286586432989936828058224541791358609128169942609487581745879188901454907687626492445612664268419746466944857011135284594664778705669332906683191211679592843891707763756469830607726946446157098827211286318181633963433982622278777880916301674073605099360426618675379549872595620032582682304219761940526821315661525868341775673460140510890114566065131777384152248294592892196925081707708956060296377411787353266276600324787319187293783780138148270015179795987032424870185876471358109455318476530890730373245779028494198986738943517064149564804990594093006277657735282745329364839230377036786126011877199543323142317134192498839532959815897143069682311169063709880980582350009757935709752159691546529309592501608247973828973507738795211228712906329949550038643238424051988830206248681225406964552601853561814705128129575209176827634038449369860460590635276881199756668156927705608260532688929317249943995632966640087434150868853522140468163389913962148072377130843590128485356097963244234258597335002413606409678935872850429834088884095874692184869621139102956165151538170058823013454824506583037720414969408727995320732618984459390723172372773505225555870494048306412233528343388721349540006501057439848172942309499753085648354311183029377249071656160503018931362666762334507974153416632205688115646752647275910981101914383753598053770480983400813515228505733722683659544706233239092293045748627565018775794784349898722528041596009731196081424686254783434375542259755548130923524013655819377601775593408810900096330395839742102569482162078387429035759201725472744471584604614004419451027076341900365088783369309245319804743224095273365904204974224026338825169846115223389858328713412227461715321325907836506058798028923224690960644743207800323698659285511311486990398024934998680927904148415993107729560284732270418489597286120616569998066038661086705201649351313623692078804312221012250312139216410923582161474293841740579901729847279223428368268681490950541242823200796710166512178797440562594938913791839387426657739855976346749047716702698381568584368778609847394993632375641155980052734098126250830686482595500428887779183729173641924449692360120188390729850087918862083678323318850799596507200877668342250701300559629485460639310338006962409846734799416469525316124995399767182205049908946878275981474421785804487409717095320780908550438545095692074375623128883194472294012503948867091357550225733247387673836713948329373228982894652463686312122894655728394134751081958915738700777969517675233511970332926553477842126626657002704976618186495385321990992309125975969481164085107764261143480729926891434934653945485760525710686985891865174258069177742205999308690980946888210533880901657848794759904966902256959045488837103415525927717923977445378303709813566514552358199104233966745765529379855593010491613523033562555952656933996721762709773327929804120375937122471919820933347711940958528266320276926806603115723886129903420862187816632535548132153661026850422287575793955396246749701457223907836584704529328949977050715566374099627874261081802790766282656761601872487265444758953735966424841514000403524335516071724658005399597519912183875779310968284797532713687787361975283783737741839312064625026643441685607598462521709586506947887764380981435366133058233958841643177128134689453955873937874432434687145280671197195513231494609576155784202655057731844749283396889800825755589655748878413064526453931674676427894243522757310726579693105983442299584220142405730467977460221240528873414147742446907801753090702006287421337553108994667660074203230000277508786509230740451650940006952970374507654440416869713072190688458826361661200946641016183036296197186589885721251922406071796493047632548264919418442230198954452647764674393967820682923984500338811107120776752224770873226964121000376007970278778381110189338569896301997115913615797647888168527297008769300198030181524950167975707554384139664071545422307244539361131825430686392950328457197322610363857519633077627992504281004202341942775218915815914545927317324211667599593371418642221693004005588524791841972862404830299347319173403590416752483859511241867878206389162437431760290323651473581040959280976594110663286261572749778942322250276197696422060823682727354246626199636893994803560390052934479419997096306769803571896244940576901535476957850882261358491713132442048822018592198820969477750987281874282827463948245794718843584433391177265043073909560325058448198995832915260084255272946936644128057058726962168290498895119135233679078611106005101520912096703971372818279362911106858424628545623544082650432148061029825202932934167703257418140986265134812016733116051295176896449167032396751696313799382852946025718217594969741787574529710942590246992970304017747251122364200869942429038241884033592227562548081488222629163734302167789862372815541366631949624102253448015578860960389521180854444077733552613007057841612033631098799111177140159832098881785478879281355580695256084154713449469152472326303293588071045070473978081460303940056718501036271708121921975450601427613487730525199147197276975343080818433964308940508403092776706439767188849301321751277180869708729500620623858309493356097911249371414797898406425487435634179435773610196432976321307837967874392664124592919149040384282474997890647052621063555539181658192686736473129048872386414660486917414500522399761813423455838136287027973958387883497909965137568122167354165690451089724770713333041578551072933765145855234470344805699717944610670127903271473689170381838317363952033066536784880688768775638525520626432024360010265126019778485160225231568714899183967962218366817905674813571558196442595357514899006471987287653913445808705641902246543019946827778127061884055417232377647521542782361760659785409953996144644662409888525921382247616839090424021110345490894287658199343693272661467486064067566704905492346983548052820306752831201535417015459985788184397345100246498838312846172748705657695989710447548626955273737462967243982991200091741274448867484142796241175130638341788237593297314320564584561390377227159851542127940776884782682315484247143214703996896768557078139541649820998405502812909408942843401326087152749210886528273710935172618352935270711965652390745991201180849764648824063615574449022471175861321051721565747543212567621988750941249777986924320822903797472606428482676052060098450617805020511562738913764387344408615988222992400342333216118459519332040331654041268829151410051175346044859618550552461534191531825748488371383384976042703810657494000520273533891986901602983797596721764733190827634634392499707844921679047980701936607898978235076844961473308871479707159150674059554795945616206401847611429632256723006229360558636544195125810029782794899100405487072319421171269043025931309379610273269292776168085612238692797978167506895130655918778864352680786654889456083246582202049612516465489603922455168615894039160649834384823614528296817703737280476898941720631772555910186086197715460227546326335017825305338061539177185199150678600630600092400873877182858962680440181097350311853355271507893172596966113060279956964625345275782203774937875001959708712123189240594811989463098117595560372357262892928771632609019318270473134022279738527232772958135423586861817878806995580888584315273219611170452723842068853460970223461625759242072328532616105092697007261610147100068356093036018804952048001444295815163594881256196738049203450196251109453281800480372309808243475041790944974865421692593982860122946936952714583832578800783752103059182320682657222032315525532381176883500049282237037749793473772822836901157515964339072765271036498329533732393003394653883948103022833376222844458257770958049239252194621024698472658836275609450190889882439913301121161492651362657216785169452679134725629838186819434530811039875576359993814521262670200215098196316090978486654174213524212947841292029510725650186579095120391229190247172736081000573839205218197550680566881305391000406757652686690652600256147497209481701516743765654299822982695116250816911483231294541217579151912746632825168812618363899144709713881626713222382312912566394119456413606732938547716291731561851290848443060769324599072376302630111617805374737891389175899875759852963328049346335658295610221374079203742442961819753794193668833138032461949803999196346293216191569611076493619660511889414006285129495377272334113659058086275127752064098131409956263683524659858068957978404477255075481162848281133774431751953057500186518885842896433545704400754425303088202476756361974972031292673221813620116458383966810498414436684441118711953407091150386989246858007441355892246814611628988973127213212060622580373233474510322266566957668634147656023123733116093373348733724482110167464373461709662021160459434551310477138234064015933983509230604614367148103843935544685011194934426280207090501376094908281450495676289923397938367245854290092387431666760623673525421330057356976433249850946365622789694417044829225094409078969259501323196449765967838210526028472310306412516086031352088884336410660755637669215279059781455558137865770044315166402322286950161109107871717948314559272390213625881126459580594027399537375282706786853658390111769597876907303673950556794567616295058617175076509840215718658442705693783521624084819985011641431542172024809367773762575560546404670188554885788224235657091505752550260835018322910466791437523917294876428099504237108588938389124155034237963701721161381822024554388786810208327369253299404605520373530520105444587389942549759126155650765144808982939733577419457483786173615753497522389083722703433894946595440675750641967711507550411840086319231952652442436457976842998980991431008121034162184149226795406469894575618791060525826148805644253320303822308138204516899612379242904929125256612187982168383381999874458801497887244209542841803849445950646907893616208949522265207193197129658085500291841338444021085288924413805088851063385464896155410100597656027002851496011959494342049271020775862890080228823218566043326811080504334203842453007726919990171973387669009454169122192564381208160267330564560385625745626143781662708868994564684693318074377364184083928735328762858597112682905882701027011902920916640117024084495316818463831094563006897838424387097024756768194233064860716539403819402630851468979918865731937329343299508661102852409324632499690459505857225390077224728967981465443836487997372995524233686693540906931265173050508567688922581727988245951736699217572378408646156384944792973173470400972784791580877908990167250742106621102050540230255806647819999854778123326448314045332517914084385334891248582800103826200678282744019404049910304999275521507530844306601319885910704595960474353483212472755594648098101812598832265015181338358124251219192358386108246384654783814626635213334659939170230618727580237452133262565201310302123984734890625437231136569119331849131924665436669627564725123606763608977970738629583645024077401744858836836099811587681999223011944837087651431883023466880948554659499376728951125910120474823087450400522054049949744771831421725355636096684766283468518025123530790606608992080158550721651216106152336946920269529287410444670268405691856663506104976768939011579796490393712353124342599970462979713927691025205443736117910654869353938155990897336583498144457398574241366234096737516656169481620924915552742807281228195690046608974766665256885190140126600636574539099148107294906253097892680188784856985126452859996545166747191850194767710443606316382556181535756415916573970018725821150692807874028002495879061145249559448750437324900787806787057438488115053701332349468592035915022245633071585054412905801746641742441553633774560559657674092658550013439162757044290030296453297990988172725027731465366812907582036945797394446183544456534194400240889095781193783417244765602682541993503975070342118308467114898420521868451510366842114357965425831525018206825615834874915649468091261363418171487172903918728683436746174922870138201305482377725419383447720726906629863468535614508474165443188721783234018812253508379477677329420794343857884117976870714557132122371153349706406779715959225354580714248673006176106156958311593558308624014272604032235972025428928236219044380662324367782539795899932131380426268016176644284264317217822427413267907721407829614161495221476082552221901964370283298194162411232420976193546231602151237369828739077731756134944817146398837883019260378922559974760401980801668534369247535309257777425814220710151828226065673693634939251712838818519815866317870905122238798407872774608901235907855279003786439195917914942043259682012218152999617354050843311830517233153927630012561853579030004195440411357598029810119717991233823654494864966761017720862035131013227146598359397743572741951116660421899125214846170155796011033883712903776248015966481996251065325359113183354992279230426389286714105412038672234957368763289712188897338591652264344616615133870507921299619502983034723233007914124919149288541805026468685016701267245549429430492517374099486428242461703347334033558688375481889511932599962383731264243875770777840103457613032315926441306872149764954076530809297037324875479248583846672028239700555595952539495074266185696679367113179844072051447307129767146925628852910087179913563881922537819973937143961376073483722162825069521958888685523752741195529255056447754584800957007738448799175789627391915154732154194491978559856446892463139033217162616581252765196199167098796702725825005420378517820572832288390554843175483579046235806720522045103597127249480152437571026147673644930777276562020511523029284419825302082862043739752465790417836281561930525505844041607631949068302390759556634969401580235121105442400176637994154155351412969906730503968435489636490080205490584125535163656254520595181807809531715944189206756719354492387079059168813743755248793690923577329218818492124757898125387366985798563576079319433754173784987462705023353663067942714824602578438092705277884245246987394329925200698435524426777993986884026705900673895874691183977578917359695774407848460210677681164896109371097977974673415559692658869548501302041608492876340334007006970278791772088821500408607990934528791781608782162474113582439568138817115799127290380662864895649210480376580578507862482996306030784365119848040225318244364406487744019981887059445285284900323809069145246255947116812829729248801326001437518788503201179048866095072634106442942165347506559233592886421072333554178687174597760804762532144805233579093835406793630140193590191010744562841548755861511962585522695939542049688007951133856423436021737070100071161302988649518148020883490380411431691672999397289616816949188271511386180833742733925974456785117130136457828039202912862375171170395993810517420607805975703985176388535766104020644902112593139557836537400176830245044913610556403297719866764852677849513145551956997713807409365307653678367413554684070755172866351836992413353411366401135103239168178722140244900022466712804567526317368476578168079678272267472777513525802832217938125702587283806616964096355377678460196306188990132842332522237424348704024396596937553831790139574378212871425555687044748534419987834327331185852228588181462054308642386311135257762935540069446336691244996761222957233971279272958601549011961674613845205779905251090961859893851691403168750115884056910748540329085487546274460878469534918042110065741323582393806997749267867415719657449310674559236984530006909161518925379056664244841804118314151201216829547429989488285459654972254707200080030219853670616751655074679058498456065851183207696145972090312640678717307122398225681995624648679606004620113787147443375016284363484084883046635219180900237313720130048016704290460710903267519876794989506638188904083535525376671178741649619093142813906428819855111559840248531589611050289875949210140686689391454900814744137780323359657180513273800434473824237087323122409236329039052049549717002552384088781858017198348568952770049744587302379559354337643258167512803695887389425279896098662074344124191183336468829811399771353385343706906743585548614713431918829258791372432883863125783491342426463300315687791265430425421260571289874332701323610941302809380252057982637009315536796157971065346765462058152394933601494499720320893267740662053790197299017718266136027541556346454428611064151477502385823359627510090590433522689634600782074896792346133220291288382148495394418083155909535525160434922404052206045321972519786433718086820025723607956928256265025399404363159168117883820331562840222634136071147964539344117855047869026500929271573808365956756092586079231718059483127921944617408489758766670718015727759264837648838371584576333784566893763793216440044331544899386516718976637058799753110145085603788369037235052451929715209224647456278568874044284777969766775097292150587019069834599522381008339388901974536333108385342698975208589774366623770166279598449669153592323598119758976261872994098245579725658879007097413606445472619467397873971159725387223231899212474358941846459053809131072034640325581499966429590575291727533592982775345476698256042289877674562472600762793867692922818566257202918873889423260323753723075133662089412031384393356686008225431190577243371074688673956551090120541821358952099361023377911258722503492360506960439395808358347775481881802024637313993216251648615664541157656216165252916725693609204122333351499455548356460939894606497865362208879477017555410700426347813049945543783813554468556089612037311055052709906355743308672644895815935370494437765009011298901867450753772888191012128695617509836630992102030191711541204969012855568162460869866438176920254731770526385256524773704246661116427488862410435663911517702404030095297378752058387561346074343389073443377584073258768601558205959443692603582200208425236539009656850062885721966021999563606890909583877025896724383950880738126256575081366735459229067561069380996845513591677026746381819468403164267134629248767936043236433994291329352180728930207571499659808451832261016750498232644591703530147376397468565498394328331372805151922181243432897807264279562567141396178508859777654833932118291055853930965741672182641022815799137494663997205267289831159891809628740193428122390576856574630729209874656278909242585734101420362642338040970999236353351842618267640556430441691284564583707226143859961554850012510582946792291098322947520663712079488848584232931026489389714569122094315164114927874659144092142323496805925662043882646178081797284666187772288369979300200973344056892912435582602027178881047096313862159194104942781916093035747246395654690570498561911485766748749529111179879756159745566655148648279242673231940629471761428657886129584363536304844329758648074058358325809630654624388203690740518687643142668004048987384941285485916374057396618809013193147522881083059691537295050942385160999022035201365750746193909734287145011479298067190329662381609428497723381573420729024621009757211576683414238413299482883031646234038853768621224831481115361105031987226106434108278399361349241986076313763054212070685164080096479026770913648752073693828612359660222693031829836519064505953618500615893845438338906019901623361248883432854660331235901943549779529138818911640959108435737245091205563453808396505342673778629713855630455419441821871066369168850893116722190721833266712439682292574257948967846653070635835823202180511102682269198287823751405115649432080067206121193700043545290431113419310010917556679443052305808482855439390100493228849900655588268380739877733497582163038284257790093000550544991740799686363363872294455231073961665511205605815734330755860868218678374057703073735819584430713127160743274536846541062518535267618645439774689977937406807134727217087246865787020200095907655397991161668932740824613345484889955949143334132910264397986429762460470048604616291671959202461121884095745338023997122605464058666718857164901415937124261277601772954661226329880939501804354908391583117614872858036204370514252470121328077952296719143368362607963927642904121788865709155590665441305088181261883003295908595896941032017239985462113462932428669423649210967239077564379489040457037723958148096684949838797323418662590676464480241754444735299562274538290417944909514891969192323519212184367056572296368262811471998691573443977538576901623069620313514525596235236668749066457483252590631785195703575059141446920394005608398163955836085017887147939828815319439394953553130565775765468660914392190994439683950603526709020571662244812676874786969238966227741073656461212814407383454876560733987814902577863204940246306091832074467900348285197435750533090534935496695950670069178858640147230615597074756447498896906947405886465171023398211289161181128383985701641631002923721401281479508512011323753357913419765774622174877938237862049296137567416500735669229498265169164860755051744644985683506890909220136874149768626593989538416433322333511294481180390276079484137087925301213147444169757668559834839846766717412632196745557721408624670909352570376167270941448686673783687774263505169443466209032297657749414382127690718030228948285966048471694457632358812657747948498720156899251597611832526278439737629292572609314669998797200962044056422277320390636201762697867227859399398539607332857849266142922806427347061708999157016105760477336866208423399707087647222262649943829234682796449008043060383358442705726539732513080390338907252967166830767494012724415180162275854470539336366257717192912754434437963758638067094970433661743097383359275497742408672674921232002117192071941515039983575946538232161024399198055145448901755131622791787821686212435516305219777242476824362608263055229919476269224593771011030615968499133288396505224278318248297413948248181537800086901675066080686767062301997865041854471506421420599487014188659710005944559161840931593806255120761781127260320935825839123247846548592900863582274703450811904584192863910607201313253698862279745791259458316993835929519244610047634705712653610310061897503859279117222798450475843780261038216979888544576062098165528752087246934610860862579269962472714595056076362476572705178931418002473782952173834688296283957750400024049466280433720141343332040072596228689788651099593736521972257918669816490298077200510364497742841642842273500286357392658755153729264775077786981373848179403409156628940329303442974533738011057147022027409783815646183396010078376157955271108147906606061335183345404303841262123947260559998610913583205856042714434266297797177969145198575998052243406203828657190787712998708536577413053345277461277493130405007745295709826949248649926891391099600129164379663499442373257946883779864780558334134210996986543149059409133310754323108261276829688994801822192889215518779835736246368526760481796585964145846606132895648018715830067179805823716546885059877990801325644723977096884821716333034559357912411853615938503668855632269377448613729797270162388303519376311865523664714347564253866479595115380858053891707030553380928656648299378623982123099572130601100504218602841259392144056302320885808620095673517400943026582404995853847734856011249735707656960266912565737077973737022745294378540902638981960951759192989229757587161005908244620151557544612466837174397876691277866779936067281852265901762127216589176058687537024145337321833826569703177463256232679915394624884195203316920702445753710683814375550571111153984250856337629735347658609525834865111987810382523450389806776013410298139841554580790685029857284820747080973337156550782258367431236897658490072750615635771520081146015917691088732410172331901133101582764606139557405578668177196403212663100098725267071270690874951903824685072677777005981035658240067269642960970530289788252507201822569198050315066754926953215224087938659301147288746712116825269361637191222310422920094689156721089227750424224341831297311481577509554545070530747712150054117890990072976352324362463782549681736808801283652065965209168728908853726542092603908273104637491015939584395090720542013683563748388141455944413358344433112102345687698934416680258376354598299961425809653098633788534389244278735794957970583898339558570724062393583708269019290030799894571550881338655431662555464287960402555240832472752859284045200294917566618693905307189668914197458412832922723830651867008975098895447090558790153298129538039097054582303266079196070668771638306802294650725608526903923532752698858628510937268261767848268762756977899476047913579539119823470930938475798168877741575506206622890784551391567687549721037466035281742285879865102549293768961380257861474874906848175254256429168741122512512541991912134576278213508777855468252267971336672870918749863416706487846403684035095772925323483369139137061400388621552144528543308554769007850913164715794553785356980884174076038273064804896184298932607374843873980479051956522193716978948039605160967286116234112653091779662025672711723942760290317623923968557138064739354686158487210842912363415653857149708772316719013739480550237066908688793949789658902643329053902954496437936986490837016875951434478864372247760527602943198722488394572249012917083208958504032526917849938784697846528977007500816182214263292180875216501427681300206939903809286263062050053995507018239392763398588473231997538912924059996067118657932741715160763455597511757930803354984420688812633382783410900706007664155699150006344918591581386617152376252397358427669334356149639074751099133184214206083644986572579972055075705169963186662289258452665832785992873763970744813905216664416329871925515064793130057799113800198446093503500510196502568706995748248617660222468360930138613973351389232571453903417717388545049986824316242076545505306754433411827310351223471488778912200979211697911699115132518965139556707105575199173125728345505007130716909776826581399004534323658140817259633489439109621001889879519967441569993650975912116745563363895026953893772615912380171255553800286609594977281612588884275447415597837659611516949134979974973663497607925928217120069412980319841693159705590871436320409788740541117492130568477950986705874850755658356765487505292977312617406268885545475476241777253537954231893456718954635240065025616046688914029131202475631551559883879744895498061674383139714976762442921871770170623035283616804874268898103297933181943480740384509078273840242221107533336582741078298462594893212509557432138047743138493724831257288580482252864269482036793394002923063802338554796611413653700546535100453136329242452897129382103558523077697277609181079778714361551838252635868486480131498965834227933593310602119645912386049084492580695103750913593454824622525901996824830626423030214860781946663747508165190812116887253644352385769440649559077747789332110129739699310961430486335722108335831666522972966703388569707813817941004353415725272900853580329182470909028810565347080530201965116213618334571469133668749272184148472520168862881955540606023415295058631184195895304800926412637488662075553501654165522563445815967389608755803695583944744192040041517101550917060485364394510775267205334753903189829941518015815813033709453563440123814472402133856793816906771455406076556966512203704720167899971710292955851113651859358772079615780310437940116607252535316379085750118714419349705126673161414911580485544828968384727184215778180013513587183554222200863862025298860377890979364970216075603188796431962173172117837651063011554136488611152133662391806538899794432881803951154952360523835290829568551693482908754236857617207191662781350313075364590355407103871806425792694374651431016593538653847399840958129927386925839225192301675082962197196610045301965745573662401372013490143246697456964467162491514586238884596587188564188188584725440703100351331170760033982706910191077443827019224602037008093282609935335427924393891076507157139984768372517042989748859278274268458765440800602137989525517376374335993592829587214042485276320893121854803595786935478763338864691310570469045642348667304845204019267339101562084535181255911569580873299421322515501238016432230114014024952455407234457517626865014404397708839746477550389321875748633077081492512207561678675165540874184605361080486534359506808542679474250136157424983372689690837534203349717226690590846312310904769990208323731893611322040327361894845458412420826103202453077239369116686636891360368339702499865254693180503244327053447010394054017217732725112266514100836767675186186845853652972633806931486976923402741791120409607859239894420035469459284002069778489740351249265967586403532729740432498026146683584240215164052738883731712987630684242415291626423307967391112795754345208286218495933127591321402064771480831887907810908019214625896042803123272393108711605000017395832588730166115444721505955017577734921733527883163285780322897186569523196562090739183946333181488448771443307190682454522599730407074005417958383515255982066902960788581504627887667440756728358539435017071784010644369930204780172604182258099459748845873067610111279472045261017391476872666513780744886636073383106523961050202769247606479063984471727348580137160709752462284841831310577288175091307066318608189184135115158726029808174624782917053704340685492518991134791791030334976893775455878373786179267738518321690582397611770680732295062704206523493281477290395906041060684061517539609437799059261471215271422542731279135371636177985483686032521419291816946219228869945320044373872887837963207647565587277133319795463983142791947022974816819775602860183953896252771525568712489307475954301977598970654250007700145997685187446294569669289547009994263345239360625369745242896660335425485329193156672086305767800031197763052837158461121927669128589662697188217281613782055446410931865829943251490753090181722813683108903454259022762793468645323540978126633075993446904242732142038417961247637716997453375951197986480390790946371166994572367758382166324104023835343262268038372601999086871451924923211176658358049407199822260533580321902169851186902984597090308098169011799624504200033102630013141654800196533732897793334337238387928809986795038193278818340559251326685947305875801814660811009855979578228870479078626125957036538039349924328548198319557441982209395124880016991612775907977061918073950728386766441276380796129190572308746550912040037682276755192085525872543117271693103407413845086074848807575418279723521611445605642130561283794534706145081338229862911252396417456274797354931622505849877027030767067790705472728498547012408368236579210169960918158477645649639990829543809022826487697904412677373663463143118262956394759192192317396500683646077299640023393351105261720068260237273128862689636634540796766990648838729731103457288982895249949647835703650706848676340823063037761274136581040824906877843441142323205361976585983601605796218211469873578379152173519082883244380420865346882019798051079613539225286526700983001552003340094515974678010603685163055402436537906305926720653664836818872822598091113603574906794510535605789685458851477981758985169232279128578247427704774183033598466277597854827367471616894331891850454340605448167998234838934231535628169554800136626081589766780261214748353136011289215197057791052101494901029043062472485311072185036481619025864701391286451663934678341928580290584097482049744168145238985617973889425306840219240279725421932689360569861304435328180491504336347979874270418460553820885161086422875630544265991690025824168200328693048929782257966456122133995312256175254203791028176176573723552679287428674282665825236500478536682848778060105836278646838929093587773162785345650189990919656600439863890617616829935933015028676675908947799902714691967598426666295468609372837636801078645914618682666833395482621722053093101954043604461190486067794366574601491417286200659129629023127100939756605786852940637176640297347744630659096368106971385712047673733153713559843079241216568117463791271901301529831467396650293822447377047349448814180823600997026450128007178152331277188099011182419613857055127883342745602083465161176841932171302457950712178724818140409858202694498999054105973063170859680810691942720233905306936306142123279371576673658059076585673253867794110687766917736104441652833390044854187551019569892067536438901494969132344201743862213357091244704824581939011615785404844701549915986264656231465426819978896408641127646541699492113889679560290159318112324421727069717142640875125482361929482881953952601191736488219694898006730976945669720397717842995815705950815133488016167272657529551382995389293021990011376051418593813251015022133327538103760099426257950456373516913439938539578392488698704880264987336836509285062985254663179425545387506567173861585747580812555093378000032798285887097431754115806122447632318890699230120446202982322805044936756692685126369399916740228669644907833743860828122684328328276947823113532468123206881835807789067615417407697426167581693900464187418380885732029932030570172068890931403021668712058236484629298061943205684833424307077115534773444934614986435438303617633509203576137923352916244823078694731208037099531643892184361257107639425782588056805823496031093815291722459186240410073171881135511051656221311790731474895811072708693320991086598335188907803563281257750642767320195858454648833130365431341817496108215504522231463759648795572519318954016105094907554767716403650385119918071753714266615823675271750871694806268852083286755918572806740455510919481507565516753744363611003968439960240897621869260462312936348646679001251874858105506835874752976897944845289315187265312095821339810516373350222887580308800137157111903775989208752360379039936617395264212066808796808441463718628735974574844696659034433903664661105531718265184468261100746554372832180596665134202872430216706138118517021060388034781675948896658138517326651153014714571443958079970686371816413786297470884122457057603493486235211851856243364925753032951060864628079748911886439116720240521952283809154009034784745656568966861673509166356409589925017184600721983213056803128045733470668394631102087092074005581895910415769686483459924725127634787327786174281745099225462770600197656539558757669548000916423630740038591297453753282883010971395201510982486607641156325288317238238892206896645801687093834924591469127111194892601300283765938374424334045236291528706209008107441798276033370292956487857685815759240149003539523600449105544485089637235066845981502876743785998976514203175947450363287329457060772517669932736235736559122518625725164460358389660682349370140119387833431423338728999209554766764337336154605084711756686971138941801433718748790085488293300584864005887357566277528360241332140933075836001417537112983339673150936144640381276692840860731298004951829123074043031524707170598073756355622237467032390293852850002226352483974035528442545672016679107225247143644831535609413867476283014647316999370070099888286349259323546561406387762339651565587329530733916735147973463336285234264722852009756614268685794458782162787053294677262060374245550423962239197352107248893939343669260000437706892289679148202485204223883598679008421106703711511765533474318846595196217235109009986079548131374292070000695121717093457072687436431685218918348439350316825612250309159124599113553464517887320881517742976519604400628523522062973833132286396148638677172904758859833612341341936745933619063722108735990112439730623335795269151532713090784471059103905973177886433978943527909660975914722824820912300746721916143903366456710145718187862356955025802911787823420294422565407779159538756188722275991956624878477130218713389548263977328714983728862030049226860343262142891938219386658264798215612702343211842268469097341283635997190159180423505030027447978407357657965145449620445375411145436025937498093233273894309713656348276043770741705523728505572497913076586415373351435468790445577851165296802861331903956519493652221144044477047261062223895120831296621641191710341352417614712822709572677186273657847586341901628666432921866756408836267313516424636330954883989261361878499174629906120961832421251248955483781254634271211122568690768490812936172126799929339332990981906652329675990469446675659836702352815256461374031132265447206042248654990801614074950405230106737238247485795659354393619650217951808402152308467018118492938904538687067152023599972243877787329148084560689889373153601404919588950243981805826445860116593388896227486118849000717728850557719810823478030707609734548228392597261969830996942029847260418171347615078178232213962436678806600937747910179797450523847712660965725067466677527366509076827798823969737870248676908013165352781274426220444343092952040638486124783364300818089620760144542719209808691370851207335972051495187898040341686314410332886384823879894827731561688144688072644850517934001814076914661397680335133295753311112221447627897814003238904716164355893843716876394289097419516100695419505751484391728755864935776701325037961264986254747411842225277387896183209961982838643241465238828124858605274889158387880623355651782223803303977203141307234804286804145716308833339983788715483590995348139762202755531530477882414842078487588927439011160374468636780912406657609986310826422710212141741643848970589795740458394427970540893745902775020677188071333443441000792960238011820368889042141339203049214417054791638690479094570368260710047949948234750520846650134744877659728001741077038120409831707563591187526939471999613797320911826380320264261742612408853586202974276288675805124966947128262502556086377789733223091281571106660708195829246809152970462779937592129637823426349805499876676038852156775469984139922271140181983440123326244208045618132037976865781360457883010028293236832756889674390406249336761652256270994455629475679422548143745235315399745672430229744425749059133593318726882900962409065940235765293755802271190842712301465830412082718993425979619360350342763825458262153922419369781353160057215288972134657358481856710601431007361669533152960093986029111248779188320004430004028120021794708573500659011942590041204206461728645962066906933466219790057536771350111742050150065411263853310160441904622915808682934821909043629267533046144524237885922270307041531120826793734984195539202799425008339468697295378691972975389899010315834604948159791208499470508192332828191933191392856973143737854419884938615602705367801946590722025158771051024453928040460483726585197583437951230772092689964094291425368024269308654832760170181371267157952959172412578545865336224599645624096603110282840394914059060183487981674433074785467196846612485320041307077888356798418629934185841221613857990878866162978932345134016273389935872274844790509651624513522668795142292401834846443882898756049749974429567783749422882823630542769694136008990147392029372319902558625272690690092693333867053831181683205255893056878875021260871644472326909989275439568402512580790416395211945978562814337993979842597853056208880840914543106554829502804021038647272888132346007173711128284159724691083966784082217805625178740216445236875296742668088911807363150228912513974390633521881661009210667215452862267806721794693540883999495928918572905007859136392839824042841786953680486615419180259298491853384815489086701847093190851825881458865592126099766854951639275407505493694487510368072420640922695114219078839258438719311803536019903471321412962705014626199273874819081350356912307966940836545267518193335985649984313482215072133744611001646811124645838125164396880504501089501772537472310611437891834644309318680829201803599001365981015865026708524300174630748742019486842202329323003775489947576864139111930144965481176943149210583239621445851589144179199023668956586188804020197033005115613679106863553124737353301492676529041976492647248291160829054308628951814296966534141531220911026964051428192063147528442822072818854083696668623238899732673393494220560778050816877417235793328277847303042715249771097227669280977971696134299720608658181365724247113692915132387883447465329356216776735880057134545735799802243373862433891981653822826154007884650329746439981339551070460192245868231736420884448199164519874927834591740187511509177550201341129347110025059592645224857686914748763063916203097272079900891059342127846799995546826235491757667239557047190666193380329788780505047308837507468938914235342816291545689887623700478782369132509525174240838286069306183175143009068804032307202779579130985510431804811965106273522186401750749528231853870872709372006324597376592906749207382554846745307920162787497195284958009105710291685822735812437704331335107821695957470841610318833995558832013047549927463484613186640288642914900508248519390444482581651274992673834361584422838145470038456009824058684436291493663322497967644373594168616029530622839063360689782286665374056884185953709933948647439304106617381910590279264113896294446552416364668274572140862307479258862229383752849916327795735019603792074718106222534500404979542073700656709651671923424172748083855359590998383509748753061512985276630250699680884965213985286178558331352206145204264188863225798527341218587733981616890214685538566210265160592019183545374718860258439164572996610362000405809940390027705716522914143216230164843863557549623706201766293435347487351212142517321403179853257786957796246138297317716285158703204460849193366414496929322516756397270238183863307129110749180541456943857717475057113469858101628624192159917724379318633265904825565585215353865223459223753920917445485838060784021685883441610763711625974783295953944060249389264322264860003361057155662521398727941579842468200122496949808667281615891683227468148457642596368143701634949518103313060358448891878026092173532739881482551787361444893731504232728721235248560518106422134548705433321408347959838998882797240947198203042909174406734366759465787131513019893906394837123029740856958258844307561000932239202974147816054607142609299918198874359739479063721059417836061251796643906902045635666863351836972468086152652731423294539790994373811486578954190255958194326318522427144000017892571007648186719561289105227732487201935896689762840144379142429188042656467246857914110434120857139066159670756492498720337648825052742835509528502202577582018482752198136281366251492316100240727148432348000527182060047561645567960577567150336431920713151913569196882552336181441836354053940372149637759156002666795109780855352475480259643662410456740815745307429943708994187104773548381089425470106263067586264445919884104323025562151831993753269683257777492983992112274048535237401950168181123733314321694955657898041591220331524751618863894401784810430414798959292203791184980299335504233066044759265623918453413280047871278469652928936708314913216391508708899458314817250350660466027107873262950625677864535765881558024385117890673427346321012086341483992653970299419998366945416781384305917286704234703987801603993274256247176647712071296498999338032781206560188132386760814912002626620896704981102948129707183254664827910108294564868739047149313152781588824949591188122345775951252090120560644240906824128858962174894486828367753885811153825069970779546820538863097645520467635355707826037226870607104973073010526727363677987079651496403057286735375323396548777743529051172935095983782054022845935913853278026791284214773985390340024412183172448699966100410957122034893010748654557920300912826490907786932978597180351449158860232339800709098030408422484073548862939750963691273223214929791419146331966274132062412394769788481922528273664911578599852195437526440097777027045683119424514941439574137439639789862214075032118679433700819777451481839939027337434281035500731503239418466266448395234324529106695297666118357207554049755566087205139079137725937998286286842530723177576098243725282993799931519514827634169117127310055568711613089191604777525482998692928482444586481379738121896059479936722793511777575879927484413999613517834064288181508974868270291087232570043961041438575499382962615312256080791025622504887498490846635021825545232597675811600854236024958415353706951196087493997199392081780032118728667070166994203405962938521534454952012481515662535095982844277745054856039021141687554181373153889223813389713103054291775851994451550538614884568208769780411725698722635694558182516503784400955459905443699046769793928439362815517880804358976178723823373444335812904663806543956864559950730589895925013243634748148084628833104032478532170832122678565030963462886646982594900818493385316298343100234549904990445065077311867777085139356984813731116265641550251326957945202315900747549334117703499184280567762596383840541806153755548353707185542377738858300529751597855667835095677314318683370218423161646360063909780745257774152429512297123185708132832815713424730225968571074313767119746842541336845951189615340772087782123351699259669002030363962602067824791112417547807845755527771244996380428049446315499423847283557840942676543423288910562396054799427160595616364389973934013427187307461275447869637966035150097411305853722154389481050743547633151087916733983083071712124998638108254008067564536933771497702400853414291979656032381404436115215696089373305857237870914088296407674735654148698198797145651699604832836521146725936553828997125438680847354452973333746012795062278698816811919385257821841354906781910240121806664768161682646107136103180285736441821046718427595738023272422740206089649745825345474888202054953038585650971660453343067074652789191444058531470115531083523859722243644037335070193346968127530216671509257356470232420096421203061773608906618005422346153491259971125906767350827405348067644306172424541272733525325460005147710661866746642577661238388119065796173723487395844381913814710921921061894845829653817852543885096138259966637476961883345952422338497179241378149790642348003054575504804442961147262535987182745446951657105330280639917178816951717301918184016763559588203892451730139999710542301397509190063030010244079308668380559162792159227802355252513515909506365422242505215370237168852857960293718773886096648687024511941115138911928151515231357780131253592187610639999097877652886534225722211867046830812955610508470961201329182855230329461078246232047237962039216570467022917141606977593583439339194028731604169522426868577585183193433629575067136879343122910658548186269098271386961610070704238494917577778247479580979732688089963687344935648182408615808033892569015500358762583615746223263562179722687011614405188217186535492619405160488133236429260443780893971802250298164800097648801732343887247061387719864931027316464642028240852085884280547201422570006637701160590358503876758703738017673261214536845611079476556916654448804937155473214746178648759037777963445969296928513580946777126980282257197887051187353236859058443405283434871061272553779435382838738869213615863273397140425409161215884084315153366197057729307633275168639280679048056471474429844382177277041892589412556956517478920373362141533023202353017492122137657012938188212326870825078283054253211047662750571566639847232781597532883406544240518528154677332874217598841254464858976906225247040468022529770255966200616184636520171393167522854067926168548072268004488624140736874474136432305567565616526177603039218797939885552396737605171888128808517385767477084467711057410242476357276576979614698068127303599072122164266467516872082467514253579469928667692391661728841034940896236428892782560753537496272432830888750528126579660085769764142606399591179064633109601840229745713214956797965585990480012476453808617397187891048223782438982404982990699539395932333025076663069933046349004411225202953266224292192269288860315533656617675935027179125797370495121949107190029807203413023911134582109707824554291432870417180232330491274906063634735985581344731378508774869418359291940135651825015025370270967662361482996317952258278611436421004474585311588713359063306533059834992787766657613017332355270002218339140198860662533638289881146972851043767579857662619809008278402416605806037632657697388243566006708445895923715091622938556474724010220766385838600168062918812603942413808596142368286831000336613294690617919915391191338193089288311530410608631133965516906899085367035137604838804497563526505667252628201977954842742557757856381166774420050663834441397479384438804238887892108677341527152224099796275934861817055911537553815579161198186565473871708502416484103326176068412590985364284796519755495253444325439661181186844376547038238760003642382507647625797574416748385804001571472058807601767755498577533807761073969372283645569771449628590000727340499082250619136815379474321339145531467431658987610458270864069496584195012665518674571253030433702269321422900808047495541314938975196796235472238775883973212808623621292184390174400480347787053888869910238696774503912820378189893074013798195773756015832536714977649835618667915741979507213783268907080648766282551673462849639244595705901605208868046607529212534552925074170936197597247262892216016088419164310439560898692506575947958996615665454086578446373199369442220800907842044975570649795832493604849454640939917017365992132502478995904808833766119814051329048578852048666993972767749619437406410116575002896564431553249544699616798829732310802896859060870284961733632291291441594081726728806103224063982790166492779866728056006723247065935053621316670898948957112383413363027680921982145932367847736144939597622218578324398801662213298473554041578741232402806851966346432195190389064569957224355016689970311394664566110738240147657157832742688490548805806583353208281331512939220463758339938570955146743563510694630899634772010397187560233773552357220554365906552624056484731145779218554043720763225515158371360491764756589136856937636604302799832410206958143031401606102753436352984061400572044298154800563890222861775055525131671768612818300989307498696234723200382106082981167329023084750620596064915587896409703195673571666840477812667588828403525761778760506140485402255436027926807469007451897852934921874755413533949023809517003743313701463526160108341126162392316014008266925418472351720901814484502329971500676971717889563067285982232741610255795257188836459757337665986708413846757657908421314808186338634458660383301619901630529499711554069206516964074543608000266127545268739845488020360417381771585974027711287415417089648515623555755774642597628405649291557552462420247807704765094986850019764547227300280979507039564347705245025978676100758487021114112973494399827678637751457292959891697529106415158976107985011284109616025027048827947050832522702481675591157603720853592930144289370442675887993307378835828095638985400086173681170640113342835316929816091281131490735230375032190056970058853169957822297622398224987254125474029655168134232611643213644535759475924425274104772637062366544311200266136887529531250001377528304648581560308044289488092416153515569180453199403393466422706735197143251609144908466290148042176870300045760686196834318195965113647320849263765658902229449175846234469947439695651760765120185107303950012611762099889180690710684299038966275960783406549351353271819218463166777605931975429197749632986780632887840739349809558143531523507734184537447929271835113646399960953476745794977937809364198040435983954371693584667633860743705064537908411271129639275168759568906914417384261465408094672414098790007030782042078191558797266603484539346962967477481164861012312543080519991413473954587388189748884393787386695350156584128194128373521488966083009562372172803652753275008412262010917328027147669379019978461587423467055704120036203855052390818254112039682495603161687959650792752952378261581892391198880129935468513898481021191043197159137122091812369216047543935394131132782165541060583467186618374394389277738647139864606662014783087393850457100382750642958643574298187075958560978977269178132394270012337372636762134740288417274151254078478534062380771613011149202308114296700794752788642162583517888511099155282934932937988696526335937358080535738225805592730343600518525567638399311589533064000278572614141787418597368676666728862521494776028944035385326620394773240463815925095146829141489377041359569281013370701152425019987086202582071572532343839684032845347038536524833995669566259005490104583712721085869512285043889880394187894994235161837453726465980084870575838297732381082408961418971314337429012008733876867659695192445226722061735061871715493272591715047964938152997768212757143017293713481573413412556298182574820553381035529865727172623413655298696965950584352635172653309371240813026232396200302809616929387717989047788556514297449705350317803649776263295581693379238354578509221389626107238626319509568825618554656414018753480010169442972202787882036090468605312301919536085855388433529049262129802624536242699546541442788917681768807139080877066419551312590765286020557657103189046694114742313887402982066268196941768901039361235604642615363790417032014135952098754347593101002871983350991304856727316432874226925406212684457600672225157864327497705929408413190079759659129158367186110889311832529403960031143577450789919212203900696051713968949375105939686336555199534986134201546285903354307851600598065909993724762672852472180745261844142665589116259660988083232087806117510550431873190904351438623191955052733858884777844442016923794998413904542338462847204513985282627402795110856438358507736978939626274339667355972647863872673477693419186495511500145771911606063412097289039473005685478768511121439080416269079318636289141372920215259916334067554499164077536445108016013780182025052615285453168445951464023597405912365786985204478709933326318106662147228970085418649831763110915977149226369794413515079495905249944188527922572996910629934344755355848759167776942251788441054619341715695844218395932201084178724915134662509473300540418500569714105387386905613542555033090906368276506964361316739508443090006317583500973389562871129058456412500324737525411750721550658736227418103695762400730101073469250561494186242039862834020618268775663588763567018863628761270387654799364205719387639697483847321551376156940361376418951898874537709062042893998686544558929975992052027695244409445550060774558620079523483496865710617613853670958664483512774478326864322556299185797352444076601232785680863606960112617152337346198615183980203302213669761912016287658025177669142564973415264189336819767573158232076836135251841020388746916057153868663448229720976300266791745293066650812009877694356690194924988613895894463756210589097655328216857779696047655598544247407769103216396161140438486262758793534463765312927992917587924083529503093074328063472666810820745817531986554604685926417780976887830945612614274680752060795295072100813608755163352154246388764123205196893040500912560355653156176871667878550848475978993168324680896214010147594512661662377035277348701055353596089219525598858037041372828199085102189062153393455065562950830563183722292668442488943397255043396924772260297013502603182614446032442071893375334827092665604995469238301368657104041161790632299680898758039472556368825321877408037142110351023697636028534027716683424314806640932128715414077159449699122572305578744624303017411154441049291143521047645814593867644407275267920217590669441202842235903640599828656942849375309338429768161736080492139762202796798561017628701947433133281121339623595407363080059375153763096099935195692888179097286963309696469842947198217161722414512065541479321785783504515382437598186055272557298323095306389228618425325600626059106950558560629284981287081187682893433989808612936919536494809825947971420991947195045848608477714908563062737011401776988933837911016295767581079417583171665072770132990001276885359903028663803449303730921111727150202958034657285220103339335739997185250475342521360880468025034120146979464830570177329073474932913138262985998530746837193974696912456927666720103016476650126293067518666724989489681551849031610671166969664869860325241055342985229099862952140630862552999794603027895409740653261066713626903081305113377739255489777921980318300856101391172304810203043718065605215016319411637115111668816559596176045596684767723147999318434456947263748406381742101698586547819792646588112154795022781677033455357397834603670775778848330205143459627625286789543138264546359110473400030958573316517847023673912766320730609827006893191745646176158513074904631976680920246783999403344207123009396450084885654824485112836622718955809831138026232128218809757942704672659681086721926087399509656311363410633736068447297706625191077391448416291923883235830411356335263029322504603489146721105054632040367360175008242422080074872808428471060685332681346836072743009934961488050941414169622689608500447840124970763506524639433604566471784271352545599832394935863018186990193282318131472807553637071257787662039959668113787011647198881981517765251298680284167086575084779936124468133562177516228394341702788088691131957675969198729062225935958866246581940395792764021359403712083089523774641866273402542523332024815486613400205342139393212051007213769799848471618563492801942589749677919204780542682013176905397088651762014810240972023046791819984860836055050270854943407817323884350254130563867131568239347889438624634042909697710079117447790224519512911466351327985127232037988095694703617551271684954593812912517791848043102208216816913209910729882374176182264143274443079604663104763215633259359962235567193850673416976107819112424412196173432525564344628224362695471260663178638798608503244458303108983590382834173585160205105749179237388403317462556972365775257601514786542926873916112289057477674951727790999757216290034626959827146107653576147140833634371315823049773127726349908013709891395350093013256951260377216417254685597832856512262597342513949735372705784042014333968601292524193536398997708244099813035489867042596660812695893565418650736226139228589620789025490594828107627597986333747752081829440673773949854162995421859436360241703919037185373054649524100810530329370585778611995211205622971165667776178724572348731904697215351325547675724407825453724671197227064802631784429524503990068785144038725853828539876139029183219394834692160137943171485547981118826063911550116975214745844068760363400156455451484939788479782337267278681955889104700602225168435149654338721183033520716111431703023391692976736877956124936909621751918314104607401624277615565187147674013958500360978393862991637844612372267820441687805719631794622325644092436920564231090626837635660185535787302426416140276615525073207823914109465031506880408251076490602357936097709146258926914536545073537271437112959319214626462712191868966216347522579447615855247154208531978892979040605751547488951481285629176962379509468046132210325828577623764282904815870452823144179477929729232288207966251447830922417813052333599047323009040192554681615717173518803211214390850984539390311891507082142681144034520177600915025822848238620696195307636765793558000070677318425556325172467369861551978561284635053576685984498570627803949789926199467961140039403698012773085665754929744235660802301290227807232317990522247506790640881860012132082865437169350992193990287952346685310560825755828896194975819709973321129830433813367940317425073590409993280643406913051216393081357573432040183049298319529884602468348485829750403878779929365668586727441567998956682683599818072103099219025013572668774423743969474891919259789010659812252889384997020707856101233341227395236147515025446056437692980944169260051009220029376710543775972574611114155020822725064748713453942881189182412988157447388351031608819999274257883058091447020442133862895784609532795355421305488993750316080598299854497568896978431551128493146881109031631004937017170313599891251179579530492211209315997303168468492114053537132603893165073969740790538684230606403276037555109572384472362040343572985417412572545289596548585099888095533588674925497836856761407303940320636629291559296181723111840890086492225622012643867573994694607228610490446015060158718526164817934437502262170307092348406615719210864602160391676503716556179376236992859765648201150992159868560907797934134540133775942967664151860558439010548601658408574819832225716320658884029310149230510591546442063218971417773398100228369483677621570117588148391520514902307457982248488946055016683298617504633499094782947709659149091931052838422068544852486364531524525268163998251006571949469901642278092162118093973425671508431644313799389635201978782537032476316001254624520355018652671158735307219277755982305040740128452772564377339226726607307474957439648676187737106497982998918728455469436831690166170918900333876821980556147088746989686776403098043454805323362220097320425816428860960414478798422685657347378900765084749467453251836740153610137945870701778667717025881790234111041166613191669477180750117286623379906233899986842013996950686601495629032136153721894265875838765402243967240662224550452362368762750015290463364579244288954496405808154277209513574724254875029898405947366429541344340592235377623245492215671503736213313838417807753305664029493289482648291168000512682910059599894888473232240458747022123509124565181343305610270971516098678606988655216041402523198550514825464756018197342968458248395805174818305997331434099493065609426033235728548349652197744193985948475708990486524218427651601070548098121626317646772501257799494711106480167974730285516007703088408946740787462045276127995749448639939771549647496592379204108012120852517698985590593233500441220505710987578208472272158713920594179413871367295439362826488897256641147964064354664108492284107288950957340709819238597161069213680334538491329714795541167643044563162413979524265454555687479740013382603560549043922616058551452823854946370401709789456501973661513380363130900386851562439100433282095114298389154531685693321639670649521298329432892116850156310503030678667103555892895300404278444365130744503771178372093439097117184017314352885653359910113443069963270663476738484755138168967748775361411897925680312354411550093644048800351414687708437875541123722755621094673570903000162092465819110375604313843353715983447373323515562537066830599151332621062704539415295007134694018786500746683134379503695418862260587826295226697523236135401203211212121049375360110953184643834423495189635067991363014500549933830185256755279758685116235995294701852944242829787987458985597250536663704250782324516018060281908681922388623652289577302169481765625449762604935775641130404644862081861113413363026008634934098266568186006754503271844998453925061550462377764501743140491196657592570407055278052275305467490339926011772017825325422471024964549315988181494704845495233679751827526434783048723561163243570695989080261806474706206211928422792277852191456555961893960671392678400527526027780891925633907632720201072622701691267328499421793735233052932220329826522670447981779082440483833078435566513612585574716019113246440739678898396187241289961766416148706947649290879180747563388057178081916337563666990380333148627900720456567739273587944579646623701412908845089580624571229413024182300562953314104030923542296686281936225399730421279604865666690345669771906748122459098374595080157345983740872745148290265123460981122698700656650044780377046581457373362966322322511746881220206468491451608371234735782671753342527402952471625661323191743303941078652913346955740795379136949552604746247299644332420364802763477727542734456085189336817553019368059113874966738491507929230275692706853934572506468144489082321981235729601498346412365993723805474323824246611979219862033470477736157836022909109180134831716654570023605497223250187479250972202718969033829366755462289853967851257985167713571822851743350967806183653018295301200464432884251973399771463688191665253734035295894268224526883667067363210909291204193269255264036753547970209888775176363290212911318639086949922774747922974429028801078049345163849721009714599351074335375294239688373837794023923301997641779927838052377659837345244203251464526370158028474685884126747076115869212113346971681580210157092005084557898063583139607129364625630541372343951993250207773214653676203236911319378899582960271336809444306272705924992480029801378532376427803168932682233536520732142017112460112970102390161858171170383305023611182390286422451245185344911949950184507443650976284895387924275460766672075662735310624450633934315322667285080528104329786532340020292491589316879231428244119411833680199469308881344530597241359653220135215648534323394364167169817130677587219296390220446732331159457713802805348849135058090528843436848169099073365574578440310114883896557517302291862472145650781234003084929900072126575540074556420925481582205139797843916319703555760802938027261622371480668739631276818588206612513178476102744163623939650771480957174682267957118616179489424057257926638983757682854250672626717716468095257835941434274497356459423332471371008204724111679838227857389479731221879524150370395922190686420639795692412517340963580959269793807291779739543136776741688240717805109212325226079900896080791624675393984705910746368499996376420924661518942178651780383203202167393715860179317207145023558170095504589960319144748775084706157314418252052262013273151417177269136155025384436846232821546312110664094009613955458679845790283021135894780046019613375720037033843066744957033665131014413553807699585710702900699939211175940720849413650943037301242918936222431394363362977418388021920274576182974965996082762400046665029829444153187133635601484833327876161638049409866234624056542400565332968681665981124533673248638186030414002634268847495297903287491756778967639766650210756035707518678125896704884488313005569658812932216418516534801490884613167739293500129677081197980470295122796347020634411631576641488010887356319097940459460076589857204167663820175170363921586065750008021917929971352908104418257476200094537157843583789378852867504605539990533437073300443703122068136476575913339817071174455734744879619482354128960397560437590660542230150659340616382701545959732312986633086507245028727539193415797030954045772995208015026214029711221425873068089880849191624204047446680184334992314253425033028702197424721383730525511931481511990236343185096906605892354064685492280613000741089486154693241177459336861137395462244294306085347150352947839399243694655441489454379490484240982382403801119164490989013832877606485816535028105405552507000871575457019263047934769022202422416895581319506700159678206137466474610414787863594445159483884878448004021151896847519003456922297660794103676147642194479412603447114656106629493512595747008255341927317707627062285738840754429536012745809641857202944971952870493868141245614580647845969469782039046814307491630139238303624726869840113480494398704191575285411076975711220431417661936361860690221655624605950508633572039017686696420991507541117286441391727402174428818142088668714812940737106108449560597633184308825076011579352602379564981291668025081434494035703409186291835962149403720363999706300200588895711858895575744463674700183193990141250461602831207311680551020030731232713907898289175642096819589831928635435018128910332973517344780881444526974625937701706422261985439522302542754144040544235320611777494522335217555322778239480162627347804003802639657212366880912041194736621855917021876432403881580555268558687240903231820545047481695228371316414053187079528255426518914909896287891586762276942749970655792244948986193391010111770102677227406868668059975031878009438337999475880910169636748569020743860348830955411298254979876650744222741269720197795373324173337970146318429599918121462937045221435486653021577723933907092448965299413155294179282861140626734578725799797372966620014163827625387580605273494496536986311736469652738339771969301190595301691075087646315719020468760422337556477810923044035697804317881408578005975606784710105549194686995823512947306965357039280459839449252305935994840448065005034451519647571909326904813420227088412348250071321613660054994954049526762499622161990592387930733056767918094029545188271248647260124877169143654769734433525738848915891025574239796912627210242885950960826808362422381207068425654903992728672997466317870610781127050920633948041541206527806591090140123979843761865323138337373997919681385587773749046501146206621906596573010757051487667024975198552577255373410383887672885686815747260099079212951861888904120529102837028298515429162413600269616565264743717919639202787899549046998724695086233785879738889620604331290037174307244198227722547386053069323814755109784257410801913993298979294386079687334038573020299041614658713742766045540602283721054008463498102759627840864163976406557503320098533150269361228071116728311907192187275679400035300553515182260194082585764078684352931542898338554733567708128450291954743283518702664417823052208616481043882354711759037444863754809051160898445203326629997556486256131486990360731281410105584956016537727477111077053355960534943662992612617205523416670961504850664541577110345160295366940740399973377244893153539958883140911458074111683340596939943420677231870900680993436657148555662441014722665604625711180514678188852611114098572613408711943542330044120066952434724592315970855702805844519520733108919714290606400085726170926160018147321622948147453192345026019822526341240746438819747987273682745536949848959332043710541933915406840149492682219685813031658280502170360738757556527734060402468434399277912279249114855804178967629167154613414551340483569249353961971317501927849676701994100390576101655555390649791474636573746147871827509934237665817516851345586434665440946723209691209497150108707342417229325742673344868673875887739954356659044291235054990757676087507894261885513808280835776525852088065344774576761684840245264331625047457642017265789349090929312797466766038888922222178228088528600550360484291999800707197683092472243406545373128838154829758511894307190503691551209476081611597513302339822114767075844785687854722900610327372560061959680563840200832438501392815119721045471906016222775507244335964138252133892639342651091840453194721618915226732861347664775209239528056354792910601970708535358222454402685773510136501508828720003745020640569504725828218980768545377307904966918146083684104961965653573016597094453456841743896719288874546895012054885492809965735540452697633790014176564641908986324207001363660972494609437823840482982192587710542205414080197467176967707243921565633595176216922862354081806252978112184376520330992659229098780715883456661403861563384545390997522639122420756358596303532117731985083448812919730650690727986486496294338771931551222756477465830195971508033663489305353689510545319336903220057309655945945730116825932263736133520380836272438439776519526848004838302306399255314516127436769264980016089149464270284514579487064044906041103541751577448766977413772309541450467828190866993470748551446529296888714398642826492308377996659728606119989309126767638238130884578879964432568478549599374149703507293651979246961858334591248714761015441358786388161168101277727519251305874640854359762436927953916104749995843636460119670628678094413842474837486705617828837119349197008556863208113430152885426182599184318253737060730167437966075394548098573385888408176535937631309845907184812305000514106359554019307839601631493580362713640042420930941004508870892878144742855115446395301848708540423709741837631507808876905720882530790583238687460692823530726168887849600601970578341117046380973531183452025945071684393581413107415460462348702061865405308170844439171974769184384656934653585774297651560460023929184091286736759114724998901812745706015799791860001612321646965214155073624978250686438301490376387030265667690696603416591716437271471480907090363771515602754831252662730469054724724465279501106857696993308836552824975888427306462821523148388203891749091430562180939549383608273093044545593365561347840201971399496390156428925526206197415211950192469245126155292615699859745529817207753692370327294456467113078442301587521856317692983367937202663105960170269395749899977954646079074841167759305458796558024167189178300191774656490161669080782044407331332898491016609009666633657690212471049416670544452086170350785726149986876345557050851331010919870930696339121921793085233697061099117603015614575437704068207227746856690145440944122141300693480226740223347477652027767196680656232684589236218255885719628739457482603154894366612824059977057387343343125030913419622487561307158522907784074796098657916779487595711511439060999396327864284243523180180216509064351873506891633055854744263843112015495990177540906950791734700469914077585250165857263729969087409618172427749263671831617268824914911776404051216107778541057030180232621723758545922775248612815151459055883520513534011638608340364245792226999059313852290280123878019428377331308824245835839302981750851296979422442456494446932477824724750998398238360776855774622879168418630522230078688673077207733015892253885265531140762559801406185223873970109267992684637815604793389608024200248944957931995837478234711217105532248496884551886619981149318225383584330392978301684194089127615173636181896329934576077553186674523663128450531422324263285286727996048050551337584968366579971120618798471372216266635303889754545022092386726455200131165751694673927309924062411852177238415472492809268991281061293044247305540277068092741299025548878716703483195480491328705685466764207334645506449944283177936032139042635100620245993424736882723257331061193360071486314518450086715387203064767427004522422611254079190091477922068336739764610391107516941290086474569068906194772866537912706211114410866477146971115019537047578637203675778247824123977589229083891999217083790853591998561081233046247984294832317953386015147187239635936460363101660925070631181935768709401795069446521463836954851997985348443273034415817078984091037315228373774216585227699742136562945040158420773131456455943699081005692048009609811329230398524441331998693743360238715717367370795900763191446715418235660718561227868136445058102458819388710057253094416851188747260444679868970174970887402104804385101437604110041568440928847058628097680296390537328730611978099333383129533775944300382318637650440778560840146389332163395303216549979051822995004161158797131437926684668174858507651643540978045782597574791325856724014720477660672427965290735498140489353350991873297007622764806466295450210825495238609799664521763717921448099706788354146332251419949794912429580665218197785465482690931966436220209111676466842821808261758324341315231036163823897368142793119832763579997621041721440167611687726263373931026197153158288781839610971904862002318096040232582452961894061553762112684344185887691687959558786133711099552461511774836645388698205835670010983271295540055509084865060962651819417540115936912273768636241780888618048430526281776060399698053058331279838581768603680840522162309458943764681431413605766333837282601533118576835546701890813256641755021528263718807828132108085044799833856614533370739368524434017014003151716048989682145553122997706054627602269996548313760120246032163412642739008410272829678185737006953998920325012584172862081333698347690129497414506970563709211793814777607146620976938414814108852628441832421801071748585469968122611655911603629316802876233410081987979449330005778367204731653441670540858242144109907624589960175754925557917566238599805646109855567406188864653778698163121830627244774432642175028722886799872772473005657307741947853631219551595780249992065096328059806532415918108012124375527451521303344075651550866954732569581050329469602948919221855257543507169240999624739931897387435303385161379061115473528846168517618594146103482346590066754386187346724604098939989875939793557212965450108691428071883454790320373456251604902841940255348926993861142626720601847027348414016030506091313654160071246739737496886770313639285561931939726508892024000326940696952716769157106801285755739215958108031051352450281946578635749983484369366522752640904451887186121449448392782843684918362840879571342156938338419880375309972035455643814894281923743452198387449818913780005922616945071267305962577512518773860775001673873663163468638249809697337803130676690999888142221296224561368183785082575435149568443745266121747072119053622479002710491059438142017321420485354708473064723080498442570558939333091619501400538121902406232668579934710678627531871560175144136034948748051688881822388448663446818588190716717703944730942832601503627148253409871324349468499443774871846604903391669696909616287318436137675763215529881681090786957989968574961390839195052602594969810192184871990319741332452175040425140944144585204360817503003475800197168140871244902539042181957936830307863072133942689719122164193622624767779965269754512930398903013070980849127826370381219209779960464451065108219299264850589573572404345094504372429572338948154009073943076209484155019031151900850152974836721541792662994665982124711579833214733468796539116196041494917311870245773325675683248651786972778523079929228122966250963294438235758599606432577296588421383937165104070549064444321739213322232433979557496343408855489200109569980242609257789920621006594638239153165908570639332612588996083620396021134684230053980525772172545262721408947014291004439096236464757685304716395981530021273925142280071936557427513380348670559615333581635389142927287126355043812063494483777866423655633540003025691094990054644133048732200971746399451545280090923629114277584100751179229361399156386392248430868066307806962998680409875956737223146605952199560169228325956445423682108533553696042013788900786508861713681037333357949394420774783158711540011513320573179280508001123565699988524964552064407072644672135149627941631525555475374695415158466453756276889621509164905626715084099110932033170419652848394506924313113768422992894388160422383375652318035595438435815730842009035282187150476338286488063063078245239806388040775721456144499396242278321379237854607130153794764162826165532693319095708073192752678615786015063928164995189809479865151467203859215555741964709488594112095580645874624387341867323022701791756823968681593378961467282979603005484183286936771365799205096806456782913262747864813834115166857256654359754131081140895613600346378921957975458827928578720459520034602285626141584584710848969766383619534834462648505132269784862633114451571893511087341757872370482517390247652548558892231752997989036646240083770010035850296957991127935505626364770540322194529641684148713492188173486957285259015231036031191857073869560851982857942298381589889436219709143902419537107052708286002538219195679059158796322747759067659958184345410512760644139190185914238099175243315604461273803818962867522365613585841342587960122129252206635987298756798810383051171697227312706520348068324735442329005819349653713970132665198842771731985920706932896551267201072799001842152377186167013443193730167207758421282609154428141280620877777263971386850881916844578370827139648779323651960179851732620682347420678114637019767970563394474737736562367922566545034427536178877781988958627336621725114830544787274165448342396594858464273477700778488541570829904936069364480136783741292249514840228123394714234466983716965339125747765294805245370887299686148730806505548882954496494546950127565953031625609575957424637028878555203598592016307401548489005108692256173212100133524885129096505162365945232514508827491555024155813219942556954248205250044700181820870123480772691844015687619212665011603715135574951426805435105067291972000995182873593394795868479394617297542673710917516064773717333147647376969249185654583317999371748026526902101134484464777201777843044976592331367445537770056640727262847275744906084960569194044995361647209290748014259642553777342934602756072303818501166230615841522003780221701856009090312534912423427173336055822008219826326632338763978383847275510379564882608779287528841478734375400531648914466167699910192314397451518971014077059705009070890556550698361977962350573437083944171908498256136572559455922644962873371692444742399772825797936829340234676324600560947136847371523890050656439556485967949287159583244721333777432076484528583190027021780990757655242919714690746725292502944170980593805375753397781619182018023673696883992128514843328317951499792711886331456531751571123119296456030266251172440387585265607500975298871965500431922236327310548053261318654934075963900764279570677496501990796756508496530860159100163589138561664075179377027820411319915978609998804989895445636882048736435413052529813285794798729569057694387249038252707930504436266572009407503135991948831621817716219466214457072875323226510560396376374557855661288076706877999481985200168784633604174201139679009778189763499753659442424775571569791694839986698035308569150875231766249506570347808971102592557882750508518518752131557306569842250582342910856982728146771836430473248840366850514713392392656545288518043246623232547628519447197797042214210019320989884552270539193424339707844949759394278573060134233837289434276006053581494781358067444407550500409051450693971334674738963368583384264712165192078300664772815465390300310400710744214122266173708252990515473605758090491964321683610602700822160521761788016730238024319077881121506453743004141781189168863909944925328527591841741345704080162591546808501094914529650039713314799383028623212275493496732244018747007181647226133757291412331800392972656301094291828032564250268890269873586388418470438190725565892403492214589459365943945242363692304710612962011477285430434365303905647922939659348438080074647036644156473926659673823783063123344047368043905554159430404557614549691173728165057320718791120521790210361878080767149489797843800966645445362394551119997901719304353538190483411692741200195374444856191854528976908009969483320975619597398445367306363004999016092090390289485566617676171966404962115948098616182963186646870768618152558015381954667537738210421474700284419882086441315817531649367818893683248472096947186802495979674250499192402123529374662542213298298161240173915737377579043211343912329025659648109942104304263885005170070123358409780021302315313004148979774090480644484820785544836484300128085090419502858728623694314292897479508037619531947830309421867908281950085352309169299841651700777149536660066131678050376573019615403278546826973914722196253884351358220891312245170285433952308948041403915859487460088804747898628461415932205541394792154908965343757435452620388003530861153174019313683714396136055842601343436156708017362379106321630586009564528416063496077192318890845945425742697118970052053598830747645985563941150884820638959867878575302026226599781332140220803243289694927697774615147365406358223989682915962971510974323800695908274792260558495585359855776480996023337056975965752123756491406461317454757408582998570874611287631149271095833437125589658542680490346341754389041011858212671039349730814773781319500941843311211335447872007252372699896474720278889469613401092482339976721685256336721760437635495458365958276650622741293298597273655397300327320957771787360974686234265262966981696191536157166981687487420644170949200416061254649495127808751723805663066631130317724145683713552431509669616686458213929339669145370419139145329328788897655284062407527020842699399992296213884267328072776911157244746949730921383487112570745840429918849943327787419071320354357511776895090382745649494657736999225747348881934978513952468433534319759989828213904981969665719711356758610753556785656894288774978477645169724821696191646470160854976836264671601473870962064826919051619599479881783103079118368399607348857284378803263207707121043397883917205026970625557514083824424617264561434158434226988285017374494761806066479334050674489894730353454249728167615256993669709694614359211914306234618284676032412535332351756390238428929716597302274035164108844657976127316652870680842650245270027641863968524565753603548303454609680366790741664800452239356427332032684465037959289611447862588885016732492241003793732074478143518405016715784272431932017186683746357868839788339917446834240592005948491816789676895841933384059966286320265105915293783506908873980579207540422446192276929490191787850079833694716826073805299764364150203447441306378913749800748183682357609616431480074506256631017600344660333505952843705725877181511283892447916758549997063135821929476375053153252694315123433136804685097283697355792684208998337415457505880204794079529231193868902915555815337429103475153668561569875616721851329498349601070350274617842989557107057624572248507930742929745553172705547585753178883001380605474671878038162642228656337698510528570827178773067289656394192136003321821752275004418877638525023288381686712741434553539391857550639329010260203471104085106863462213473750133252902829609600844643945436041358066595156002606256508280396279224970514635752195460894314263091455940557671759827935575293189016394293578486502857427083344408861825448140691486488418463506432544901258298913219954458126568158402524388373581704280215040765998696045010467804236365433231913561291852309591848426801897158418428897009700116935250917299841253911307354508435642290033068519383517151310100883678852555635615159627332321191571393756468118055111560361789479758396843611157674688466380532463018596020590325616761755369012603665000721025555923012522644105553022248664819826292302932887085208024703848837918228896448011985194175749326086322873130886568979918212880884972875507582605112785115669233223296669684731301741920132344368677108815531341789346448232843177043154115034412405546155569252000776188260863794325995393830049442954775188051843735457768775851695428718874334696455209970742255291461022610783811738173771188780333312885612055282664094252076214784593603280407808181567292333035128691491034468623506039717103103837636556294961123928462074954374293008760381113823148156939945128843871751479663680604120879833428327930049004023280979280504754758538748514810361588789482329265748728071849256170268684787357725951928906109900253670784453160088384755215487608963161347595922412309173476504091075304643038483801728001027745077814162344810134384508891388079944327835750170720069830521146437992869729142194998024650495154856226456140128802596751719108225681256488292557510806091520858964482003792181643444412830750405267682727980836718163326330271402121720991647083045952071189894690491255258608710672054905250602994638102542367695948221108973620533900258826784896529421311690767969097365167491888408458482810573983263884923181946892167230304929400213312611298025317611414460122239116868074337588669666815868204559006767198110774550226522518492684809907608220146414227606481279285117263420080517533054978292258765701274659654372883179181178455016272864465445121835508185209142686217373453831183163264788356210595560215246077720110714488475645052562744429067981085030025766698997575576651653516605736437057165884776836590409337927472638623268093128561012573644007856694148320580836147624239077276574985029329930759091428064103139391438714470650662034080005489613635054722345449889565318864159742724119336498390114832612579507535667472346937991047327942119479217245342807870643277548149263177543987332477044635440008430275254009917912353654862027303370352908760734818523949466966179336536907709162989633140094357984146109773876335257096739891312382232656929223451052922849628301347777077386581830893087974421464914746297022851884831525646346345026431236509284055999248656749114276450475905943839275410910081885353853804747216471327381400891098758436685176814713173341286183571080794010220881498879503026241585099529592519114807952920955620182406114160127201550811267435971410956155455248776474996792468456401461614069710460114590998767805053120369641509098342336403939813987068200747704063877804517987372974024803464832574723480640647532294688774814602536470945123502924614397907764614484939192998267398573642308416211648008779982713670391990055319135959002913145066995201768136010023179537027163698876522361104685459380590427332305105428004017806279919783193658689068554317663704174617827099271535808747042130585021462347748192302616186229870277084812337061991107739968592114629955291315155523932055609642277518149759430787156657452060788351448187343824017947289131979495408826896760515067792020852489280796193959796145744945518096632995882359356280197477381591507164733288236432672617065541905500468026077535706579354273985279242498452259764556521781948535891825512603507804819093531180137889452802254470682751477803369679547909638410650417538529351876120345274530957354371274580256296267390264218167157041239940382546438348463621115825668856571988464644784007971344486791548754262567162331188730344733601017498141086166814337056754393980809849828732506834022705772112799248413381293623716048114108890181177863709214578387874957560133454853567860890513950110664376030355565974434463931861435915686163580334725773945928241422508027959136883926119483344865853426756863607282910698979413162900527555606187838625248168117886850234426513632079242592695541997352936146979123885923899187850795780468408927402830286941926671085865602644977043033442586777038000032472960387063054511737971736829072505482894251711592981580539949308330973836638677303081132190837437860928406205683924490762695340809363950967531501404437748330619564057949304761707094561680726977859498309988315551130304362428123669056079623638820118737025985553549617987074728811432772016286812996418270275312710870869283273175160092540025930643057203814820833960945105924551620565761881050792312535450993111105464763582099735073821104346158202636043625177575779007724907105769061838658072232844603724612278536801874622234692088485552467596216328290504710214731812929629820657237515055670915549007726088418842776768547784538511081331286161724718625585695471522573468993095710625426657767928697666326681433597700913249716337851073321563335019222944716196764317777279180686319963836892043551922951958349393128955799680001440661982183776465809404057760150615750359560145312120145916845537895931572833946382242986864674077887323344349758523225588910549064290204344154241413022466510031335226641777377717509563778980407880423079725264109659635150462736442663148341433203285854933385529966554097661454386093115017205936924634273275497781937731921721537191912862548613288874068467023705174354516827474227380261492080525960774072500230811232372629494251640836584224698929301871937994781317440509579795575057082401487420751978479387017858577975002879445086380717302843660363074010960957414864571516879242458440081795174438671038115604888919481975458501520346811036793075666331912901888495158846337540273186571624483583846837961011584747750625690392375944574541850059203094557384426798109472780716179590848061237514069214442742923122357787658182926513341466591216761895213800291436999464011204873142763303242279083014057253131111671562538753224249815979905260421594414691310927606504200397183127402405187910743241667456558296800437520717523590076340818080628598362303229002007275277194570614821216401992767241210887967879508757430100507943825672880057397166467446689831543308011098180105020928632632178265646320556597485658075934284135784235933665736549375865019769021965156801220818610723539592575201592638595073912851707826410218533337225079285418278886248055740520466333018992575732104560776234216595843344724061822966619348440937575192374655430651717163710465310309130519202777577291369271931047253230857703680589424980916099231520446694370363243290218546811761605648875759435525529716882354151435072597824881720843277588385654839882338423623517062717245606053145295787656919028255884061550804050802355855174175963368350658221793713815694479690156483568136589047896200987528255734950698602621536616986612776350681325998625217884029726036784482481203716432669484349940577656014300472706982420530402341440774043102596748077451555437371426326392394906429353860087742176148654580434173821122648049613787477711389221914919585910709575644944180993510140101517638512478794306873714267296718084886098966092939453679263070216082491099682316221891149320890657692145929365247600327440111236578963613444203836453128829724420357744115448625245085496144514917779669922353651340670646597777394268834011663072096743868112466724822185466016978311066004300536021448915940340198868372952825116450490447700148761564850242916187018822035127116973187415565829254140595656175345471276062081495934415440525787130718645049220054030933370905180084591462459275420201253717586996557994538436181249339474907352458637924602927933116582170518417796282268360979685386186670958483205726790787723795280450273643278788026910732278827503954257216990939823110252857471169812139258349784216650443269369995080082587313068788594321755404276219967457815056412394708235964843821799992815223751798696044644643263095002495889686443684017793078017345687422232650067375942299695816175076929470669939614114701587488351812328565006537504754727060660370405393647058717975323646100158751081892456563024117824807268989596047920228285224534933650890778684168101378336370397593389302845847255974698160009509367137409369596563858980131890090784730244022776550912119252908756172280264752368743410516279295531770160166887164391135220623432498294341871608628430416952312347067820152890844611717697148956227390722750396029618379795343550264560047740270821073174556397639530864418627683643589601492859273641200118899127470476838396385714704682377531602524394103413730206050322628825026601771455022945091278373130948094498490399097468882171615631211931057502147731155645930415136317484596060621301344642389653484108160795463109337667955051719433311625950554832523071629939860658544361595049864004767186908576927502982742940825929186303689789090629108410365009831430300390904982857302722411249508184004284415861602460131100189521943230326152975588521260431159160363831533523799388340651525201654056336420013890970817808717850700714582887012158297724207621175321523747113172589768500148703018872136789407196103964171500209091524835688513529533556563204096593722819320616637755143438526117410430513582478056673819531543005403508627394997812785970994247581496367177963408698744648210382778120881000732696814870635208868092588715564234110185698493494265573970292015365375495296893476738292831853543358528258379406002287583319274748581787244770009868128336934227175588707153928318643473464355225967982899808673231476577001619259134400041634921912395873355214692020911488336736086582834344634813807827507249747510271128474839027847259859680667296878083798480079445944359908060706033268645193951302091560381403461270447118707507003676948071345601920655119247213147043100288758342766693371417431516228393919524336555086804256208917581928182855186782847588346814775493116719480146805963681827902317567312514255979456343362044649322928187465265231028928898983883093501340439262144339040584670730912206122228284707670742188749235274360055836547923524839172647901551888291332952446001399428331036022508833779998749914074901838233297701064869625295464586292125683033947006292968821873265063497253403736228299366193322237133123843544025816830529680660839194782953232483881256062244811121824159956790628110730957014476051045162156309706020861038203934960376197217801833355464363339097908268185859655200810158230855888679707134228027308826758979428115362747090784680335662940501790675891294034917633597165240055725871392732292621628111153247829086048999349561464228945684713953632087364058957688540038614217900923448133443029074975143246290902594228017126714829680111709523740333672657403875523150756348430961400283763124008633503160403532147001068196727582191328329482568102155560734158443702351589006317320045695762350788700734103043973417782272946463612016858197012915835991789986231370278887523180143517868675532443019509488181880727435677554362410836661994173155702618607188356579894567896330036395282501032940167355581228572483240451609329274900015371222953546581065096755767650574280428792942411520251626626605091826856093298902469166819720634543034638706397233537770985498436427205243523853990794764235217617765480784240535132588038020895384729904784419122487876234500731103467460746310527909199023727771513423261957646311044969222218890592576714208167386987693324204835724553418404762813696235124433373347980677804736270871391643944503788248118663443642246672766162016087108215501284241220024481907472698809449346273711806623424273874572127526400117149491611968855138033442071142826139751764823305856275002754118952262237279397862726682621913931980752664751179035794394879839932338241747299604891528770457934674079082603506379724685239123352318526761094909113091104845232192477146014235707724340430726517832764343453446584349523768447177237556888735007332439842198862646313451836323783972714013452294594803722327743470960989378787303104745614513850491090475140600597940548611227386335595401737891257000444977512180942127038848601842738184529124649182455513399432197998693640887828615227177319793031805808003751128953654909743447784107355113208357145904757748679783200895200167203681441774151118322949375662634947122176215124889533433843663614091546030681084910437862186362457210486414927982817372291326937430158273355855717625643763807918813238381416502790109885115067998730844477790112966095393870417107830052086415141086784564369260746191315160525418601525665430145419953466711425672319588892247855462485576344129062329008932279417847280972839420760985452466183469607168418762926562750160020208250074345490068077237872129525888074786602531619708509762761726040325535137022178563917461859745617918766810622100749213117821733069517463208561683190313471151840236640760870947386616733667237976805970729220886321379316966553403678162974260524112466669039206795559971055584513655124555918372219359974372329281584639711933927398906413292629629471145062983165407536375536751052543786428149417879802365011253285419326185169531750601633727199457685032279962119466904935285682319714344463710515027857411220657059362983391602752214695334752720602639227422500010774155188121901664911048278008024790696645443225073277428948221882040046136889343227702936167784020695393188498608307956201974695873989821081667386210634806376375770664123628205896233397407556326876048679627074033367358250479103680646016109854846147287140895195775891542203896179803397059460697495195494806605630504291620299489107916981455605395946913677258536942164464807588903721685652775354447099945586880430227073784786311833030784844162920716437002109693785037979926424999674190242720655984936675846493941870828243624657970273431853678249445309133561015200126629028095229577734865915840553685293033982644669146861524497313001218392551891367311424716010872862860907381001251785566606326120031026215880090199951274529469989924343958923392895366542270751769802757778746606702741679007770700550722055452645852418844944244797203100664879420152606839071553830110800766010074110312721493553894804786962271962102404413887246082438008310956330197169733763240481207723819842158162376020877989988632729783274864241717563685289701719743376455028864356769639344921411398779723262834620542139589952506885377292673475202936105752965747989110574372281135959407070496658302871412784874147593514077940680332771187576701232534973447969050106342831419600519587180471394208827390805015210117748842997484914736764795411437930016626447844688990080141796978575309375812720418098392289618033894125703015833044747744144602908680679845365488559864170961644414495832583940161635515261116972413389544057508545238997766517717395924005551634735858327605824483804142666112273257757641310810118730975616735289120071783415922515311674193371943493124418899502735887223736902801604942038786409278505396265981705465680065479717003931676291936310996090226314786499121114188469756463568688809619177205386387437342323641247498309776589740240747214841035747884558679941260676053924835658487967650392803434546915561339554601376745593311780692736556796223599670961603790845808387430108359520896599403848647824958840937287282181393258098270506566673730571030995456362840965123641013982623259030955375458732085037085365554995880451011470706558089221591550074520173666288564570084651198980853425923881700555477663707599215962020090820583184235538586511609558836804558239319324306095035705434742374845319332865957255450400343242158313404507568245111855501436967035013943283994918225916739446864658505327257842277305755811000749729670281988602918494322651745416396051364601373442596816948677201024587381062078992333090152339785988762158286824631166656637953491738122722361878225114414325874359197268540303918132457065160191599555899307605712798880229112307210790781886861203005932908527144680804925150705033178953316856428744978286753558538189472990112776805805504820454742816799692159532252743033738197136704212185744687516696652354091667197246046242712672885064757048727134298314323026872967395600670233848490588264662607772892690831948345408538812863838303178749603172969670519507710396295283007301242115010401501099339356650572152322883795556759331335480757896720460436370501824581974337776304901996556600817470893690891901624649138118826496305172019777352867315814760550417497578274031752858982192953436295745804053326822363268573724693985822612543900392427816281013115721762691771982472123961473651201635455775264702662539135932911498284972108302277704411833133532951450001074842917196324841374215397506680311066435212868549970348534971692224826211653840391430056002467633239670837770491791641100234781725754874221191122777255683488070807786548147015329070827605260533442491153804955042644224425296001559182956922217229033342574286420671540042695492845660355008838647143498141400800966579145459308612348433310874459995631659298075726263238022364190040554047403085468271939470185180032414653246271098159147943257625456061513030785084283966164902610062777956908244307829319377105339698790962948705156385249062040343380570542702485504442022179545571643033814752715145782952972311913586850908177074059603715321972766430886942497677375892883085202549570786112319701867774101097283077014958125986476020685230774705042518967216483545726282510505892792784045889502059050340825270445174829411569015029652380273731728591551935010850630039194176178952703552372785648504724222888103057890464729577484458639915861490871800682629119229924343545522849440614914208271461527578159318206045800993536389173594859850143811474864072338565528240672841013443140162533337516139354388566288201217696742469272486733192088007184174009415117963129213009836618011189258810957093952738268060322529362575615862156554182561468232362887978290676920316030279290933119754844687393918907419135542791377739710685273797868551040764762680476442605790835496126151466339821602480095344031585143589620571054979665355281352780560459254973787228694571675696716055425991365078402693682066093463779899015593419807206633127639382948991444136623786764646894851175299404003722679671768271753184411940810441787011202611555504535098419216876449573969250740771934059397103073074315097057204728525108865822985280311954087184805991541906233275004389079071173258907170101858609707293182548433769856065838408120285198500556533159881506063274949668840692960435424097874152314502005480616931111887101326143979818972052199351530263754510912327016391060542003060116284883211775927390669358422702285815166928206042861002258781468168261596185384008163573109674169733534069301355739439098449632859074398183383828220561375015715075288198878774270680771470601559181973573973274714365131972031977170725035865850048143503036626854550327439171122284844011895345512478621569359431608017146772727664485285530572497158406411405339196117131050719946033623071108358007475512872934941793048083119677856703781912390828465799374349074065535155269395440149113332705254153935294633426518623024794920073754515093550343406564789412455682319096592549030986595245466479164272953130974881562059917093208619074450465427822291836314265386019464498478178379800668739959787935839105396285346716153335124694360619177513076324817004421579050800446327824791806456740847152432040942894535956760188186186257451187527368454238863168432365972429127111462854107758232109614133321177816034644634796583898587504629915880098759711096942681562008342067171499647329539742235634251586187964256697810046291013340274949380794641945205214064359864239042816955690339335218462717498046260946704168739758710303848890242619884604513041874824316448596384538834230775414702641481209599273003310114251096044098744143311805726623527125775485539606214943081970549351591218008428470842805117169668367240145230324512029780420045618655535095724089780936006929932977202127398943396320688341299744807944249511226145423115673069917860374975807054083271206673409813708733977521177621082256672280861287946057430061205987184398310531003110263518533290243452277910848651470686838411508182233717787773843256112151947237971433478450971767607987810152919158948014184855852106687204008898661948445880495642673046981239746844801351169725390433592532731331056712125651289719415275355629377791717472184016871700111119966208194694662391414826830456170641710935283492269046788221420711101893221979845215768703581656595361219914013151422089579805809830604900992076310837094661763227176168469069859404297165480132734471127775363547277750542870932544251835675912076895488672425574981990143934806013418818710633522044386495377751749472891450736780690301608197267562016849046722011482681051328394106038273902690422650856850934885489347508660356622836490526358617181768835751751841787926803428389364214706279462426291747042994920680830662087801914522015824991019966261138934931780173655142944930152599251109950526377591570134882558617701869757689128421232463565975257892102577305532549478779537963407592659559967716244073943364347734009283538035007834235237422535714864574887865900824943708210838408339216295170581105453678445539890647153837230078408642170692776245737620758817303544194498300606703581245996495153342491301055879053717218083779642761677577067299049456545133422473182499067351059995849394710541012680891290525330870724263652564630717785679676265222222782912050239167730635391937696669751995699369838147050294604530780384388259563584222958067223988868430895320252520827429486046495421584574534804391512606083663754471144768741142857640066015975889443501309978803987295613431014238472031494859754809673288746261439096270346724526634342366815684338068798564331304842628114852205159578977631121335070948310957046469596038067791027451586431303771742852796765124971185799877695615209155630160971024485203181694714949144495204510354134899692741219221142679985103249849583656412266080984318512284709246300385086434351503944952182299434625598282595225548485055543745117422623742902360801311695406838784041337946831352634007622330242202135830438093209207448807297224435403367096788935964111089388480973694986259479775435976850806971673419634196235900940798678823200749427324421142739087355073853669465769418401360220860846863716917704524806642820345343202677242282184343464504439796109062903737693925250302368884755953123804684769718010135655923339317604606226233685826238347376861414521174792989972098327494685635792755871448779423138950125954633937072281721321470988743108949625014775729499305610493027737848002270691596697526708037839481167054718438178428175614037353082059127354310224710442971569720259436969227215714449432401006456201574928390224399318079795376452566751839759821160768394643212142789736200820712183067353484691220476110665971492325466470317607174307574820431463247599033774998431757430244371386872787290167927372652832923718610805223718151143218561566014156468864142427988512692820282965860777546542308796404944449259823828481385196233179339604568064421531499183327588635358798905074751568939561570780856602991657367930779948315152661365165934692368433702189770042399249526310389504755607932864534335348167782251024373937583967469898265496815017569338847107259703604039782936752266808964282260304684539390567601445248760479811558824582931299997396094641870032505252009527176959325007318299765558522601629892157623396681981040902928287811188231059031811564493399660256864783389883931964799132601227819529410476921812800573501831903203956940424432793057365025543232563871425185499849056946090272627623181111102112567175339663206232603302120887299136981585864541568086093108431318225209630180902316820983160386240954908307407753488039955715090479961770160160429734828533745206862225281070654799320613252894242145648383223796536632246238286853600117022047617691504612095818655843576627164228354594194685821320355480952673086228136116637000239934258258362528809909787128301270814215518826700224519179648058145307351593337373409719074678165094652983162117366105615626392577449364621812738409611299218950622150627564970317870110642936630058948662958452007700277071210561661754067050481258456702800379330156148329361955804959093933208159206954910358173078761039311082738000066761740683785153251979622764385395584326904666152484124819768686353721354180489168306389853292578655571629228849530884133069273741167632964717428119584631420706590830029431414411332433919805880464736281107216738016935974478226829496083424663073306238554269726459594469133191127047903801364656231193338616766121374262386431817852454852188237495969409718778350100134992574707563472586647113199484234928405054548672052068124380098451461163345662438162231731092326935346665124210249983209585496165867180795941414112906545583157619290718341257754371394203465086271773643482434104403860127048208549464341468256446724659349665627231655227100154688498712796658718772502324469929335600816667756572266966100686596752977942782193327290508614728065962610876795706979432491900286175774845464970993306772885198947719679939554295537597901582679252769696650182475431217716112315207002201648924302487545265587608331769459337191533085044124360794931878124115609283601513596189055909554515931986307238377733085326826401530495017808249498410859376579546316104719113243119643423258917455428415986587444961328859249637587913591730208039198419787777637710422341522320253681786254814515571286728189502937316030844386018325747412033258463665497338449485099651855657413401399372876568746401452027132341780445750417695576530523800041888581379979212309699458666227110368502105694084451255476664044063372352111978916503497054796239831867175884236832439478320398882845244485750066553127261863346885967246270498595510645728030922882708807957666439588755929005219778138047879714133891774280296275025734487042454707206437567957804834589897690401501330121413632493264716849901581304143268094641555236650283484560295723417627671622007173215388620593646913009830727901600056388944368230273308559636939130259032359317672311899338053269126469963488943602481755874834694822865663093136368463810655468500726044121335433391582486092036854534520036840269902089577162849182093420132613483647111205944197076588075358794362367718449892131177024609907605619260183960436260058737058468978997713439204623259504723586093757488047705644048616490860265437258852197611831527931692636682391030098059611096254172548971517910526209269705288767642568256021824023517916700037728846501116179793033468360613265706470979637819290735328513446669386670131773624268247254476673636821879724958849996607336779358017333592862397948605739705606225176402743215500503036379396866824327530955790585452511395264860176043731121953965303296308386917715731769100050625358469867623894394842464710055253080171784906038821341606106772307782680560695508759101022403589392393563114055616287308295375947319642803812665958019808901952847618773050368782593480154636664490987564021604587156125592405413451612873092705183502800754273943637556727931707585551637896974497508376021373381291002036772935998973667352067426810431033917972789103904384959861905315243614101603668251439780707927799396815293703911836280840388107500444129810849360287488258001194928431980068953045849493567714636705711437809483814368580270661787612759396828322241744502706478939295420902623131028950477027941497956622797253277271334975463458174546087484005484343179622240527807115962697939413921654138654980628225536727258824498861513095603877533634474152031991881908664157038560006307982394814018176297402357782770116410728306341397768190472378262754903501222418586336124944840897141464062139339232811933387479958297215157736104645416801478382473951524378840908357734656471777451335079610953221294321081546781182360516327175802229474577807925368590664751584565510856651515260371674449826364144479880604619005309932436922262244412662308029464721812538264225524611346679454696369444107449021168504532748650095221738019292602559537358437558981038121300683435936862391387520975475550852356755103314492287079405386418255183952713712075891747967408630578319218061065157890513690805916817746681282722071458243665926632670344522837523445650609344079329604779937694041365826406344172672724773503954746008254519882107560479405572864643192363563516291695583564367237224079036514845000900163654265446390866667794688263297193793129648544137355729341335102488334081719517510517354695307582638455400198300365531504841823113209394123659428395134753557598664682178328982912636320017221496884957218609140929604764851420763333813500511652004189098012696751526163310875774692408595337844025714340696352523846676309245498712769850431416205313925689605416947487646798504105562154278207590024036915745856249557231320058242702594074889437949008520721775488758133829355999904814713997927591810708592060081943160565836899748682551013478451018898950487926259712232290612263346531906140369981745368672730173471403932344562916686855072967784723525991970296335502242789418471770124537143131892369348689958215752492033961990099097709050353986214244047182978021943466487726682762331060498459559901799938966995268620789091903509666105274725170157407568493576396027093623123826155719941961285131159880643049159210459293752089446169083729449154418234312977661374426292632772455484494264281276204584203821071378459959967050324290871094788726614105146424016497994152841277250664538525836533290002711098376624313993511629618209248341058955107105678186804039819191834630079936538165478887961876957596468422843665720359217595580311252990961251592104169797467218764595124616308927106246943802562296815486956942078106688016400335797486857599608943779216065990892827035049302482139375123004375050357553729706769369049955984094119712911883761025402462422539295124084296960781121651261738009079038469722402745775767642162148514749994972559114995334468850117089764718261119938262632249404474759663586521496127255441011601237748066259584354880073973799944269364549756945369132578915062213123763556511089239988222361835069375382681351169903941357200823755390447023910119426654745386365746053267336595855349768614508887504241152800583872918317713588444940106240022951976736002197193124276520395395054799027898025601729959045020986500819021630582807036226639695515385913749290744853913601118245774148189105200123006661327487357244723020040244164421467043989247350835567927650828398123958929958645211712239391020941090348651295412823355750789488711253913983524804782302736660363143295317385908318420691915764171201968033873425314210179420036634587438424476376675511171125360143667717334020000640344218790315069801456967965720460261169258546643489716272731328730557190727534836905742644087053675651176301900002979485948682187609705629010757517816234630518551847034759621906741302228497274489092007687486092992574451341697225376031034482232971077046888675561479003695172022868909519724480315641529565918462460277208944860200609781618689894499037116386464551189991133438926300823360602155685860368823534635737760986618359888876959423207587459131958432780094184892684759994111236500385652678405419376446853110587070188521660197175329548245192902060694900253330492994767959970797949453379756128923556374606061825108851325872893879175309465415115208830511661800616304659976829729142158276979586742972270773846518065735022613830264891452783644696122358679941092743952318046925114794579987064775457875180892061717840174970322920786045446028245381185960216926035063711789753693464045056894725578973444272638573478703993126827001920073140489063090869856848152858453095134985267858217409111164638740445911008283674841352850928384413619418890878229092783892526128315755783878355581500301306193653169103974702647439013431814547417961498192720328041034176199489977721216702929576145837257496864095858180133024389145126494288734006546118159494709070995287981379988414721658831344493562572533203446906168667991692633918281114561243199125891949334729279354934937019106833241612266840728610042394331154998232879338975727616064316550692826442803361816615305872560176593293264149674897084509664882445314884128504878889031393086292442557422484020574676307925156622787827830125073635854562644316940253581290017752290671432792461672519520991945832255738616900833227963481967103935980449893935071959432190256628827560674605370168448916560783141358841812956244172496011563863213012912409322798658693741937086666337877776745155586959577684897189444498305942429429057562619939458988792153519912756304485635212426032266035491491833362985037192251609123383592561383781578513703179817871541607543027441986910002149665084158932272952211713096289174442488602206305455819910919322225896770647021169995779010294366706730593055735277237924408338128653487577477437209339193230945150434744867708776604884747031817299751042836078364944140169815441230162944948072895980657416379952583354840157903473301612304629903057267132238652047434860995419338428581131507081554174423967116461629954177208146059919056864834769772257261850690518563668659784995413246454878847897531457568482755100798576909907912611623839653982495899245202662124193302193388556343455942518082446549990168288102471521726459105742288747874072083346349950272896794622793392422980867963393618236368342623194420474578788571357704294110742361918784286936288976728485077223793042420943625886901851057600390185762302373915981580022832086859510579327380258667668061574909263236660433724620504347682133123406153262538036694032832221475769853423556383052765460384625112172942885784462167673960475336340832425367553458807469071361231107948169502309593643097494677648376981048352155689021530720049793953494519370291062239318494798984848073224806222882191157499260654097189079212832163101717864697003004071245549166739567634219721120346717014110188622741172022957379528832201266099028625793241581951808962020597015485690827426858647681475282801724125000793047765544071790458159537579361964485355734375006301848881841884534908266851329531961153118525026596048125215139997460276052914199590466414761447165457678875926970344089896749581739806512197874557667387253520788576520051204712328894911792625590214155225096752071571017755710448378584836223665712147811901358043378468205567182902986501052453624917950846718874557227034129284886689681648465453758397720714403107477920814583047455555514101048624935140154176697149188395411078060127782714449788237935899552605972636260713452308232646315597686041377640055785218459767092598451686675552375491314967907809459741190197045604583304752896082181163902182032682917391355906757424379936691828431458574116535940997702258191650047033669873997456052162959389513185147777286336170714251037632042621857081187157870133361151266448886690217690033073364133016190920846461477812682096504181193439872704919715343562449500575577324683777931147584448195050429378069675421034478359108864642368705781661095430199228005528961119215142405679753605110425485061280318261861232533545393537955908238862791593710941922749704459028325661174773295529563557982422225064836517388668482871355069865825770637904846410701796474474776459940074515891258288294022029299191850044497689944983209235629772623399543142051051178705665523642103784078967711081354413198829681296014383045044359357090366789937807740115005574861962469277728074945026153740308679316231049806522081122793906551208700273964834811184290670934027313559633861237643299079665177210809868488400871423143012258129808463473919726408675732781159292780448106887616165437901764747273322948276937179632205642186239527245070494069649407115549317169438705467595074421868764440284368644797121174214863723769153947854485771721022343061404720205399941953869005727787102445077872926103491165982369490057404423514364214990301069098028723347098751175971519110042166449972644778384110475255051655416911564884148486885285839827204319415224147988703954921429895000242076592290740947850684233429563148009917685722667855029530503572424355476940162401057201837905773003602956379510372780684043454122274234039945253940533390992741960374800250736764080324244216126335061642551922718179473703832133015181489526833475132911497580091035432839352648379364347398690202359364754983687108158167019695962051585600021347472895595572998797478795364765657732248435966237907468293998477929047040675835570871198534490654590969113994557091641462276817772266348569727485630572986245308560943931621260323034821672014127056140486806103785725891520763175534557288182269327089985064043222405569604269865834043978847957785728014235416656412093394800720495632888793681009119019485546099683922618561639332260259708685524916945076192386235705000323382909685750306743767241120532860991671080716572880654712272991859146478588962796886001675040208892957184090433644795832447256092808876695584593728073903546361250985090680429047564816638854619481031944970554514599800639576822107052636302828537798773165837678103097194807660057992664878431406403888190673346849754312373563942625975847732312411251258540728926200657804599170605925073443404547203476071411769636454324206227704974559776385229106259889233258288938885189849793015669965054370202493153795047116362660048585068933677932880940341295117307917424979346071979251888689754263214578673301720960182036523808687805660232769854060990524217882750546529395370633929585714618258306014414700332649019677661750590644681446220352418235899152565709089984763092577807519427842688691085257071404078570595259113364943653022740526036924420424769434921896732442152353909801410498196262790120851351631511676858288040329080040896101840839987926833885803685329597918742755488031137964006151734273198378246495566943400787554746652221466078923914334621305589840981992439107880130358104309631534147945287961865754243429603742407825207490967413136364996520341007722035294942990037800444140426506512796323523144140658347829587277522406291595472048161217869022361051292448514615995663797009510666098080329509288931772283546937677044260115185782938378496779511789856748538541257307669030253231162088329235535580783094308742343058711054739995094851858584342358415595533268933261982312185529902594870309278848577171597682641294243964868749845092478832011677781711117479986046785568554620539497912767633643636825427650894150574047962529214098580648154027568476882528955274755743435773452308995009123466908197905152847791034979398068856804526108337133070239365236400973536461076381732506246205172094998167434542855446359982712010055432285880447801581932064120048146964878956345022217462975513184803152485124172085033616022808186941019382993800610874931500658656760366426311079894275382829994950432665929418102485455374320420376125912063098924318121386743240890275030573239342079597470140325857909571057489870113596984213555569588156485704820284838626137800115442661667970219306393767236407416274029560982984044657843690669560567761218851621845713440627600986362002820636676449141226394055099476271450470848481581884574158582753567679521027363985246326323309883165089239028921419405295204028128090104740118413570379602218202867911989703863170121932469027408018404848697899269241022961066867857971568925674067945113019315896924990963619294122352936683695739739438395427288440998263305939852252938156078462466975341726340208283890130459253473907174593410396140028683801447856956652130327225999093438716549428547570178860315227258689137474780126615315403660620882014213137808811990237476816458803316418185779661614351694083192460190101726793071821097945849784130774923434923594133756613029036540361345578369813464950195035127087459904502213257468378890621165050980247679295558781830436881359153233800406820955831442496840465610212475233335387741469892842405800935911823662393339140443041790572865374860004939355286797682833119987957814495184417132506741330346527550681555821097194412229703265140063197145044144051776841465919603763480894742533004336950994809003077022891594362241946526168775066499001270425185256413505698662808113509900482037252923944670993989785788974271686752066571470334655106788067224464393600531686794010205944625633809018069727525899563559460324680243684268127726788926293680631698391127192664605128577596656215565479378996431020573777683414889235871576099978430830016063295405063951719929049854510208955040957344672707215072548895987451713253337807102522921910123520561278668353363716327830097212317265515672000674365082433938019201995803041128132901283886052538715161330657119943467266415522605366947921512384834204105315382371684493187141445217005900155184128680328648857685649442674982443005404878641679291081571873228320645110293843982715927834788125795838657879819086195996196519145284628586623202761684301263457253385969188713662493319912789190335549240440506817316740058156375744706634507282815043914075944550707931299636479660741273921443333986852730026337311849836247865523643649988212122768003864019096820883822979507371308447816838462202516028301565156981183548216462019765202626087125991460491605960772115671051468232036737886811575617473027486454637710501375645010812121347370087792761127801485079839911368657503961046369334720857152732771087090413542811306732081601358802563885417411876400604172239450847180119264097976898991822037311928893278055968321093737807025299308010123036527379522406299554714877640730139671001727931140931133397289471367826765785047249202732799339803773004160045922923300606872562299706827108878943576728858042060393852904407407832943514574972256374047270001754986757649348072723565637876998672541835937114362139809465816983413555235966027636132229395005301246228037006963204417510920616317242146696686054243692653116795730256343342197966671160622060813584378643003614706547401322508373654649582634328565298898366577985542820433216595715172982462881505637082886704108193325801780722939925060066384050842101749613150475137398311173917228999231675497514658307280727708734623596157989956639197180787805856766319265654642109207424680923792087271987011194416065032181668336651422365459126479915586889091973272679442246927647810846214674957225052685334123479077498911333043195507854928797398646967821526923851519793000032667291173701176850785183971091422833459642491348245566583887045135859021844561430137557229731378775874953657517353650371526611795224710704042180503085746697619625246312228535872622945435298364364739041936178856587339276303565156238961871971525278131959402859952887030264077157172507768722231345321000809417576130084629256945426277041390461739232986165950549487806283016786093777760302969709989075588583095787418411048701804997772649030602686121137246976136624647067696559741225612607789956090634835021771652234186672941859350373666741684037134456274530737947670636027712598175887816859696266305679322648069865464753157369621792096263599294310234794853835028724960342961801971027121613508786852095912288650894096796475643471927498596015515316391165034313594285735956246345285731759709231614302321534755351537433650683869620343597470025552653582545199406509040214875820186398831118245621520704099512025559420054684288322764758321400460209480733283351766916543150109476221315910409625899678032847329748051958139997528918570335461708964511526437357504922127975861388838331483432837646807925649919761263331666220796121185083393014491644994066435588760303031576805638078811129029265685803661569630687679569908748817920172946591034363254903937105808335950784914169908717432717223769551700038138962667776600994976637604227632740936036615800298678870184299437820378214847935500215134760560458141040609737307946490430999920647924660291999078851258255802900358113251847838388364452357279458963682491202945412201554272010407600124549325266789891387999485763547385057832979587878727560200404511496765876242367864985284431437800612133746266377755264510286763965087477388116585092340933724115375703829216389034407820720061023906568965530505734135339257717645249287165669276042076946024796451249501751906149782609713563789750885692191999069774279650177241793475437693304031597169821795761109806105777356644457041929564669699276724520777862482859400235405238449603721075834126963112875290439991836520737196027518705490699839149373929761726019042064625666635343049170100448971192252870946063791729838821880565888290185536968166295878735058434746200752534132272275758787951236210190675943208891047051968169199692459484858231767798329922312541404039973029686772362554902504870307880998935050055135959661827384371811060962592623868147493294344555160554117910413212321410521620724137951471314325636040265283840324530556561573197241933165977718657721595818220040630771378119495854632936412331496743441754311779677441259001731788062112238527462566169058644301579465027214871014192539715879995807511544162218262342390993162646902150475593684350556733089678559651500713192849625266360071272324953423709914072299905338792391880754251771768807658487245783676233451041036025585529072339862937806171857778323527394683376628184136012374315531279098718430015384963547996544450125652803223247824699469401093165230261989460516739999212121506469467119227107277326376773952738669897376013742294810145779798553611049726700080724381816155296765840719309847914733000629603862183889828410776678853988099155910136012221887550072231123655309243923204000082502136009955457508411600640831281341071290958330029316712632302032586802423386009947073740036289968538064248818231437775394124763096251956199276626363547796414269777081889715696042752915729242721869728947680807054969830171037372667493608282136316439082195419987764103606741434805667440908395494115486581346747919384202288355061869007596492492949103341710795366185633531166225920962072180472010056892089806576935052410240969848441315198597520865701316742302685020059335671117920969487565796103171524817493492876845423310871631671036757564092384245912047244385529626881118863443766394676211729234636816710327762031086960377323729316988754211207190434946546046472598602470865522170981307757412384138863540132888004937595403171798823921180755718820440981306506968093506423133031740030688604962338440353988583845739720223658121666848669622280730213209657620059358578384878341517795283679758113141320217969064526462606789477663974233675744436347394209874918014336863091247299522425698181771626295742209533774355500561096629979197193311457414628089808962788708018535988507987112739058223589350526709947500999649839311562527110394037864829367663788138854093071311939188537315932673766934018958970229300767505217172511707698504037837447662244810507885763669048187521874472569601331998289990141892734126109860755651404495509602562813912888509779653494259493662067960726503356446927489951036103439793097441609793062056230038397680977270090533228797904889162614623857330779058706978132755004554873616216709251308054490324966892340488240851588074732983047089338764590778063425894148345881229279637519064511613694284688747795916132448083274991804091923954590425299829170007183399497150044752370985739059728095778177923822681450664498628909559901784127280841290100282551455916723012623694264778107105240123614796146288578599431127479189012010423380544924465689433463135344569320416556889360199596280292365915000079717499386004133829301787889262512879934436509546665351647768903841940043811194465586930571552684746545917339155054996367818627346583343881479723021111483762451431738150609684600509544970877645240732399506040448460652211189580812764246717121466908973602106193876727168399417550493492581822724989223384665159361736754895619546118561810643883133780724815612445018927519932361814831958989804983358467452332955523717190848325865115628258824584240111738293819575547943288675885023044802986027372641642937576609304004934719341022092851478738975769010871534505539394698984641180502008249781686499252514138259229954219267726703237095193700348488287908672055970843863364228984148363355575892744088894738269474195541288845317540434088284450323435061359760961363981713833800600836343765576584559273468764866739440519864336365588808334069807576530177378044709645399264565822789045599080180733290524799779854002833331704793663880324903003610971401879171605560868239247948873990471401606624850943448046829441406620476526573498564902613669002061443396598663397012011732589353798026116890035388740673091975559679582866099279578402916631642005867549968197012338664407340606737026509796176137099484302696291159184739997124502116898622523102121232437703202953075549573364534678418769059757922922260944890879058374665949656191758426622290992849387956834955362648994019926813340153335434961069613046435500675142322728420166570282941861248380576928310354564674425264022456533192182061874945204437572860323079911178439310807519912532638212415993023674707104678577542598203034338597099574871850048103138257751946235277225501644158350651582053790819826532468640622808616419162761849726293059078989651323021113297973226306855134198438236820365759825033824954585925329149222910610314468874357877332754732550247642199471962474451464307092956473104709229810837923014790011585124416162114789740756864783493875207886034237671508400429965838447625374644656518086695229895168078033034314048868027302309034568257448114703380393850170283061370584897217893028854119836817273580027939622504529990136969580061792690807334836805836131968024044937964051902218204422003990596787398089452610388898331157195334495871357843527771964401289749373497185140249166170221473010500640434020483527374323953429850137742489481495931731344114896269228287210147956078797955044889199143086752677793366578009977877591438193855781644348586004065675699893184047232838471881671920326892111267997422141673792275492281766467555275447111186116779065228953492035550446618256799364410760767173133981341829103582546287487666468718622500510655031074553018365620035432088748377421846034605553528354179322955014722311397078192538939861214310576945624782591405809706280859835375214257141785644486099392325151533157877649666937115786545499298828897861521867908962513459645437508070593177012839011664541938993432902026023156800864227216211512270633056803959477314346048936485548304496540251593325944865126404712394959615909239857668680458275551961482038377703045690686905900269166044660442428129686836831781228831226596245670499354884992375849133279257656452640415621396742124787877531868403784632813764396593041109667798681892760126553199853409226054623367149787243014737667604429418276173879448814669266391564319658110080785757833712624278674624703351388382158974297737786690346430267649055681317966628430314705202726506389136322069195289494922522062333572361852118697403328879490709393680030001532779064223277336045486054293089339194915031120045899063006974648644647697534024045146897844536922022565799685446410135022956418150039239982845165151995846320392230494254577107866351323646050743775852414530192933947619384976320772509474813533210668732750420164419036885483296652905593705360758488135148302140244934216998752684423065969140404240530756063776549121863668770830831779146020636106286253092015753159691462331203566449674061492552197910310162430720620769998560382002273367945515101258194113517192004526772754024641650298294014019677312431525259287536824429486353730998182414258512269329500669939277571835518118134700605002070013531282101541786746161845120890779680317168935268498895108287790062881298840657247079881941840968013686116701966185567790489870123947909714333635062156280555198379560585066169646648424935737394593395775158170338515694730722519757043388159140567700215047889156253483027015463837216760734048477635496723866415026386825057284969015755529507279395536157411215396473889239351071459878241179760526390969820397183603499284505982878566398601086992098191870418198526692305996878647649767732781669663779441660290573999583717265201826024362802187901288713175200676694086559632779231831715749006703509277464282257023982012409584872157355571084561971617613009556783251108030095983776108372610261695384811400340009709466901842220280707298062526165336173833183586370360248432261101351615204668292579485158639394624659958868878270764481240603742879702080139133713302494793900070368802495889526037601990246936412042617870790559013572027216582064128102471140459522235166688144542939357027752970923379353856224531892768300497698554010331474318810189057976343145215028532511332424387044370545990897052035719930242108304158140750530787386927428294347966180152417931664837846943211433275771094268842839898734351473279367400349715089654904810613684336558384900591726569903020033808364599641784831562342574864060449863250474948167448782912449606829446498731222556039517635767002452657589007307877374604135858599484039729388729968287345985159128990116350699968413067468069503592840539856147275367333535579768377163107183480665921118948837802031015150314624765536968407140317551615554083202970806367514755176547645253860633045912449860043132959906242658358934991100840761425731310248552140547078179344237081687397776572037898976849493850998461373704639754032706334520393734242731436925934330352729606328323359279556275665526348201736769600532009178966500188965536862528744906890535470132719049185579295463021971963308267643460167077959042922420042234690163319709909186610455209780870304357550057436439641019658810296701651477093924964842864395807545704628705113575441505035475513907452395958019628861933821843431268207962454607159832447845506599327737495117964777073135216032659361154207527433108900753496432368200088817881680342862497771518811576461373371662348822641389910836567722591165356338421370564742092956123730766517322241109345180753930632209544181006282856798113884122858967336342612044630918200465416638055031416589773166250426893334854508042050459589530409549471970181130065249344065660299952105788578302109712857656084514078173241894421066266895973976841953698772794941826027130838159355810252852673961766690367360520625971027937275900019999827781159112085317201208152721821215148906752534119188494274867729285789118690842702655556104177126808383422080886988949175718265180853656843139718259202728026335610057621214062360549500295420808887681202757747946963468449828435327616702187173516433125953228607467272879072412452771331120019628205652283470466367991584118808811537740255330074583563788747553090075943527306201942069951911212892058641513289847774239127314010193962545953518057002698688683053604641355899661097433522112024280775955485069915766948733680443939700202678710970797841819953719087299896601131855393545522872034361771005625228555677864402452904937972695109109937875244064897566962837912380664135188329056547027215709490306187369543864267366375012729390161394020094741797204207748773693076639521391292373851707566732083086657244551550610656975576033779542810504716304194316582231269555780171523544119576018887578096321371159355645296001764937657263256080068589044927738656428127815675376951118537692466126735817141223881364789379351270990365332874613314598489940247287819264367323241484739335386315972185848720039773743846960193576598850669417077006322799537917789174031780215140952203375075920931987990861334635127294605630285474071961562375213980863221560092469316218342283924287131676833669267188864745969133786118806391370921084562232613589897787500897787555950024247977218681404137324146809527187280784836859784677203318233880778431301212620752826014319170429070241279852251798880745350594595524719228428452206509404639225036656108687265279477529125035024760235658637647784199299219845785600120348687834223444624656554633613057680872303960765492677646603555589688597205692229494034491062150724118531778562095348762839932755361591014963301083217141984042470939895351081120072909685239631885626505230773319473541389546041722088120623159475399232102745066403314582554817843367365877751510866540498475857085063275018346607852440326088212155194664068560135559713647288760551684642351450817133057735476617123963936049924491887408974745097204588635414550314956944740752663636996212412187671705756538623931257012362634907883180907121099275940360596371088511808218771500708843291531050714876408086388042857807412101392334097511758597338673329147322870512304418360559511803307017113159904954298264052101908050115743726557364058335626545230560166676115075507577495420093107710895959206337922673028541670584217873312241571904634373617349395068946559204061431269481172235400591314665644821114844436371467175169061946688330440920440673435883391740389082482057964718978150872434901014446023806498760955984601236560412036842138492157020836262960745572519400393121063668742005632247143818726380736937316221579718219215529962322986099791167479458854144641885590212742178706569059709817423310941188783861963693193090604265541253244297313376453177651079767254075219525553557576514611164616122320345839732800980229236838761679679516185201434910465925762402781783028953340328685256684162336277391059807248156752826378254960789283108501663283040383116933776107341122649763025720511592173266179208693247793957536117283718854679978284172023243690465054837477441209274667277084524467716267520183655771352093499749478241995733319560588605568389316405342965638755222816022201926582735782221072070924830268173186966977498323316185739586137042784681315290681903231326244948488141355420013354818172492297383966550891685547721772972627783275279469359866625713292939005181629837878876169678501947248382305793627393251646926136919239264949522198467963434553555826767019328825217591986822262351948342658379316561804186168849489651180986565485999346819027521076144057955413500598986257009716477429682549928488829896859638779245636396440813490906599151986933458355110868587816451086280505656033376645736924361403410383818355916384860692322451638193033416008566656200050422928077419346995507037276440982303943446162209128966849551391211148883449806022560135777671009636674265599224733797618490887048266984004446547368873341468396093170957438126291864454998810083695483056717322318753261169881370609141484157423360935256655163314204481987324304296194942512408554905574486461216415566939188580643003237664536814824487729208872110861497423243190900781658719031154999030678087367341589237720873877103633255478461449357416212545827851387368607515152406603229602188934975135102919004896655380356754041436414602515271345894092317464705331399147492185985519454569808145261849092825744177423132448726564318039073970797533646742085550403491477485305584798084908265438274659233525399076247833589178598726428560532238990304198547532189133056826538426869122417115337711131241949344636513145310571974782550636050637306767778297068973224420847950089622250119285036766777792840136304702512359790705488821415597097642965119973704065745162510214435477648042673466554119633940407478221221736424767949393164976539197706224946612118948804346518692646028509256045096306854988224091484974227017735744256116534027652276063469401435598884661713341535590312146009092338220082189852256898086969497331959875584863262270663433065928894195173755228505257228782837163813368207285799516938491397637743495312499325729004554723439717870911904398514319579621184003595251642748297005138667233681380399209381115511331838357585931425725977926396004298706605336297709235810186697299135871376871432121149537951446344256105552661447900368365675469127649147706046111331242778876285379939771226372444192299248669958710504778911977997143552065748131312937464713162316647820081573572476153532782102962804266814835451027418551467804320503737194293468111586307126712124199145326192579897865535881517724019603518696787557826995092355042464015222469902329778511724233838609208532703787575652482756217952915033894938497347607277843661268561260250790324884723265855102376025169774173564776899056962773156800305372954242134972061743331051938687081064989759756894835536960273920215466962248750021200551667319445329659783985092832844317105605500589853475375584736922978393486000744159271689555875646942204300643951315560988539396578591268120234029126704844189369908614929335224691005428482551852949384580422495687423771030177881223892545396791909450680914255391116435288788032338395261952150016637436644927483406697230687871133334164983432038068927880350643309884454263625203680577868786574552100435930331306121432587448291708975325673801362181319546744099859545600741213984762177414415723689067259646465488611772545111560873211462957539807246818771953996589793991805820485226922715149941582895755859478720818035958317349151883976313107678526928755729892628436028894720375477325464139595697896296930801107679712790936231790605558783287332876707201069572285755565950142464719550337865695328614209448392511928421288648801031736186568994587339427977216630225002971707245275222683221080994223137342088545637432211040835253460917792114327284959528465473772248952509893303724189613009862802814300587759149188226438248024718225640265825974353675507262298951860951289835618760206016442380132686939597680218866219119062525860504641297235035871209385940371426715043903162917555261753883653040290406968911899337990762054891127602339342152348381370484117330618377423390378135544943236317465955445918414199780479625978469561921668823632073543307441491971096333118842427015601841070816286245887985825612328988776388724122552963336113616944777345049743351346979902615787064435929338140940062895560426112799284650448566680813482128157599106237030131031240604351766232396345926582929672472037936724347873674644767541067722459241130017454292149205008846768460812382609656896802427532206749642709985547469900587454983269624960436365686826348295851323993277470883488466882312176234105649786900671242620743572813413484033322691565006852806070672470866556434612444150455336112434184198576351569718572485849040463891183239695902916069536112494732868003306023945787008037682542572418828316495200224638208872283949434395560006392875824455716665406016412305219075995316886798267058341098116582299020592175333197572288756781408234636054731485009517731707285522876993636169588631317351675143159796474277814533594877877911923219981464253105315323179830726209444931013749042158295043091440155165941023562927106636132697948451357162322962659923121662400274787655412941697163847770597172480875877883504243606793479508434036472394660910927817268816571458728254584868186967622158322311958924558024354965576713725566704247248246268445800768905520496312044755709156901828897329455830220749838184044117507075520576396058534936022610379015902190883575046515673224420434726183436514783272002170497490438289842227674765593092934941689009057225520634365760389207588162232243006189106626166098370453335062113364314412154877772731743418676559741076618074640400476193274582606380542177092800143915341389270155004599021683922326641810894951493236467580641792457726276320671628340464474024314222617036381255322323437738981985768087655242281111430712801662574582826375855667266928382395937644542574734965140135579692139819582163530156862413830530635807936258509891736001478768912746966605228597460549967262557399348536911197492582411871154951711758483197880368694003214834969953567308884005647811589171039448819160303259027107095940795088668095133774455131131266585152202767536211634085445639836219525342667502462769181846148566577522922714253962992602716043862268361105778525670130593883849253753107066832602991525939989367634292373797893200146388915281259103962907637553127560596045588513250300174955252732233676442471380435195326329862374362932938982982724976378568898703196093142761683515346390420855299521529901776039183887195989462856899209835921048673026501297663816105972968638087299979817518527676791921497663428809707003870219120063322421391946642493526308271872931653605023128643424444587313072094521220936816975683459187976561477220542676741000910617522698967925886063288325175626118474658499096851820323250615635889113382843785106336445514914305675522736445188034263264847772583779004335068045440544408151399290477666363081326334682318746963804249382933789734716822456477283405648288746295688745004620799050524371715385675041994939742432978960125849833087957933391984329877181794575460115823922641306606506173059707387872019439698002927254138178208121315845602152666121302305344792635119445219770237978551264626322063262399901465386322668177926745468164795603863147242347621672772409190656857135428885822624730769088961711845869092201797368441976945229521633964279754580484604872043825225196284990910486079177321855623479910293105213752193822297383026986877168189291750938488502149872962305593123055140021298303259144601090792503419898439621838984871947031908528479202082797892446249422314206077494614236524626224111903682645650527061262078524347450531849439647441685132551357772710855297561892527511258761142914322288194370688858549109411028321753734608680764490912808225757760856118891298474098390415354478226444557780013085020131937900937009710946690528004903810285396750142093063336365818608912059818251391953439674620170861724105566362227104835049189356699399104228866099875416733653892106108728787845539408329219542810040258889046353197719716225147040169725539989280860096295731163799259431673688598178835346012288237365647879811621308635501283799223144168835939365895159046499533871539130186071279223250864299031471373258711183915746750397156265638128222487886284848576373231855751960928355426440588418917898489594395857306747908099432137547755606621518779940144941926799670381022461790181346667014782644990945099405505164145588360229996268332332000931672123135491608209234379826004328624452631211151794395469749745622793020527835991199534339274671588278984437046485065391119718452106378196433293512274945008440191162088573299560573540397793556494714926048987683653838551493047234807676662393786807746070466529015036061268352294605546741019370047848051258863572502850430185881264485540077323728996912174577503117434764866851229666300692684584026854290667055075317206555808129008892281605755103814727032079244668440734326890533419715829192665514324044056804139535895811630293058590123003646817427927888202720402113215539401566575876413898323673564789158899737126634721525599993181767376399982060275153962539011573219971226703617899910639059236142710005733704609797105050126068753236655996464485521415976960353581624928323461468488010037498496371245644103611512139546943649917326568284905076149416371901157569204869188225831579412842591847330422790307370876331764137462356224858549497301602933317366185469447020868496985016518358475783058495058173461700167762962163713273413098173014582001672810598750174734941856701876896340442273897671532509588152682098440104173570563293404655717203572918544974984430111844738907982320445856151506971124786814617502289904138985174920038196545703326780873519206955684624787433811002923675185591444810635179882320379147586587302224120160315345966446272852021190480156001966149886808837211498087025763458494896835403362163951014743992994324394718907596173149721250282067292351020156511689067548117512423554360195051880907579429694425612631370765800716596360737794924767222519479214810682554176975085811520018709803497880373080411063685094683731423291983966497270947988308407936830376997923075159852436554103831913014974936001804261394594711274878453852474377891603559221603018712450002829172336000727132362457087627966149103992586829179325395908252138025451611691260294270319978979930444160130592824427261438176450682491414015420670781153856081096827094180769410150715065950776415866672803085512632708974415703553261604903569887288145336675425566449781803393123709790804997884481758286666095663796372869844540977111877865378514383738894706237276475573380179504898807805036299419895995918773309077669379741391201972026406581774227882820012061986025113140186056612422865669768538844283954495755253483892320531288687898366666871156982318117872236250362334089583844247586155357400773790748445897786818296602242435752011271568650221366791161204070471545170722494594892097208179790661068302028248373826248127924331490775251291375753172986589020690845019091732389156887509746586828501906712867554860395932152335191702116983771925873796047777978990842468246443733208050568902119181642653256398713407685933437612500057052928268878049570826545193240628666240479714793177500155900211752078634506540539931090634751136366556519003551793912632639492057684458002556454495325618200588810788675271597882074974365244614722894132809421004762335925789199030041500328569535373060693010783744543094286546103995427665206874586811891883069880988241147898383475603268349758412827456282199126280778708616020827007898487260085886305001428588148736678008338006429726747009291254163846040018803469732540106805188607374383121746770379466212364119494988616904196089824914173532056242399954135081045102131601024584950509531351447908104793917364751597023827738544778414720443219270401987550225142680233519181747110931630631918310596308935264679362315401680347620032315279641972911739000882889065019129709595304119692633509387841080013282678976462086222053383073390674892092694500006041432155830031064829567405379802739903642875456650420040395395666340764270948284929676739557449752475291001795472158261257887781587528940518808767955990059483395810467714866228372591095038482277150327723874093967317409179443511766622289850107073485586993491360593349859842756866771770331340253293896290191649180062344513260920771815789788441474618488244475337731202581750555011998570017852753884370581491403259158879921310091332038928055875471894196617336463870886254999173624237645854897295005363641735319036984758467479279589173984849816670002628280881966322225602535460303250100575480671114997760941411410651202388334139873144707465610386081989836818811748751048247593737020924661947035853516919820935252500571872428019582586768931219403640208355869578862867658263735196050585504011415322054556807040467665685620653924029884529153700765180586095579705714693413984554792720598624708853395358929874020586486830754146028644924300545210053346293513276634331089617627572764018301917436732573072841710274910882548755590651563840529314714778733601864285477005484395994294772183041071602092199360617386233864389454155254329658032874907645028866223942366475820489685242303298847506884925062984906329627144526139317027817018072115951882447156739411054431278870165168405596903945569395291028748246193941587148628795170066977657653428030168272267224927532184560017662010809407552819393077251444646698728408461180881607775180103235353382268477007605175826453049762366149422190277033335814307783586718457399116557776430559762204004329687260313806359908242714453436216729941801400672200555777132547849642604826751121302112156909131616159338098357971831041194685483407210386045829799853180222068364651111464369668284880865630987447126333549792300280071612769554017016191370549973628163867222131002095027075818475263853233830143215944491771749902197871715605124627127979218038268750436319273982509594308421421278957295093248491034861724122226070752173378906549376545615025965432667733821614829757269126272660054597807615391889642796458864055461945021372604290503240849807987961161681952624024406427677026084398522992455990082234315000259874841026689180599819075109208689667712435391566810897653424682497609563403353966857457657372948028280428990491735167440889326497234030092010110784607439436499384520599126524919034907859009451260961649919689268981005140403291810743060183169190872024444388489403770922439960494976875672946704365124934872651943783832000031559166636113423061070374264623506311432352154105868334673737012161818916572301165554144328052100908328828224238367391538293124754790874772649537457060947828445044342290208346081007572922166622098811139307880660600071996215833885874415119494831880473156479699433477313849756617223498351735845822989417135654878683357170882482295031590087316218559364619301195737218446109000958210703444365732798187296100865622847178419507716618879169327829269610496323553029476506021162654191647281039517782620133380086622041479522709607610954531868677888326405495766539253456155291333408944722073644558881030702961026552042057191691983978040157228697501252314891999493744325300291166958866386435460706766786177689739090645898961189760455632305061030227389513190234075139631340399088900616895053002827340082533189155361827930869114611639927615922199444591618162578531394978348418890610957811175639847360936931793501509640303451175798166375917047045944476705261134651075131996609437332442930187919762136302244751875193042753564276596549055575434169863848473777814184099690880347360019633630147733967710246753071487357231592511478634333663941202213392002134030192426525849461618595091595854860777772532915521489475706304590012836017726585113075128764353187617676291386504052113123876671696996164340930635304188292312787831303577531724602248034061009256678577881401003486155824858850351482291074242281746831658719654711081492886181978088814231440965698974565493059671124579579183556182590291356628163691761212930097325020616253731166656941187251688503260894318474138863266761306986094891763259740620224559575598290974610686120486189777235159133120730775245133047259472690162424262896248765005636365221240152223323095403461947924360201740563592590627263461900738021714456776260344011420553361741193358338235968817659681818654241670669813384620989260531999071658690231685902534495442469557536131572105297711130752623850698581764094819776645566471811972905732731850347845883682276104328743781619017797692527755172380248374617901395887979360379898973661604980832964512128242539464382566498006979283195519780243316354457841439106764275671196176030178534129322731365264812065331666105641517275864242588242447163045624782453583324313799167548230430857476238420074017151649142019706941815762031153226465434698711852215659379594468314242361505421335317815232834564042986110009217020508675284631605847419682515696673868479139495289961802230683174502914373702103751421527695790391060238648626418353805778742634801776291669925921286006491493010102973983409748593937865477831098609054061822296213901908339477107530756122391950744241129687637414935366098736815935227582965972997672594518271961380213157936527777032858793684712693628309413217257212717167101460758388891663023653857073100433521719159675031643313043105451269639148665863048926596206214316724594509614121616408811393907670440499453650992925159049812676647952016592422223774145952460995675252250816794361342541150636805322766800462971653132861707340124961422970377590839588840483375994080312179486954718532147964398961666346426622495764546467696318261411001038589231395825833733964824571485672431342596026025127684593900137312979897570444671228568871303239821383571809133516324418349775611482017208115009820768373705632392533669971219223127791426745911460343768578757304927896835508340920175348009491897729149091212825176121069250541153085946941143768838756945350195042440222864587538898826325639547690003535278483151259528616519355616280793512907273229321402414603389593980431669636746353780121458272817106112198854908232140995432711146133341848434230899068814555314313110422271499464937657707666381608452733144997482379254577916342097023524350616266550619720239576523197107922541129313452395864981803970008514630522173221369907012445745965514909375983353856819876425205207292772511393486693304607313525159003817853552606718069845243521663536335377452153663141961453221127143566206021113536475834573615980153501740572216786632457402127127871582176488360886880442016245996787450844455777836744123126074951404410383793092881137124926650736412623158330301411422561770613827834319327218859194753398952195772655859409671930137266011320130650280639718883112936164422737553256473182785741973260087699164364340312229079734008468516565362160555620338958809694573780875490104697982953933755384635224534925629344872554475203273165482628052468107518174470433919840198638326402975033613187358721967553896665704428541594942447047488640350496808699188461437883281397890169422993984581405440533873334055861992801908092273645741316482721242822336393580461831404368928234671902537274872975540726061379625198391790606170536651209413639724173086696618309952846918793316016572737923556914981078883353927617795872316849772485708225600615049169015071345312462913715049069903857797006667914712186596270444448311032233350430844075610274596496375808503929059095561910057503512738104489621650641890401346323658174907099852540344401700185241899352293501316269129487301410655175125377865995278370058503284141741411905986334795814631493905286267801047790343719398203774433905289243304164106866816250031613853047842612356727249488053493774827841914418844470280082935396362871175442549133380385561178843160819334117038030406693887999799921246583296556422922605894235998893876777129049616827860883312331965298768173288991160377078649882487409638662246414665309269567373897397975781340770995920536011579578638483711718864432040272791727691025282562417449141542966897921479983341323755869642435888041053884101149175634919134908706632705265433746709376203569534981582162195404842822771729409158638103887083420520643697652619120023222277884906289800887762757220899024985502589521655015879553169075250283096539039645062698161599867659961999077441764578520050974128027760666870384125817542000579693037996747494827071274510882666096020739834713088475050962076172149053588810605311547497134784973118470954963917378374804893820771154801253953847087892761206080463295810414155055735451489936626164737121894292068940783524012015010868172293851359936870753667608415597457417009459510909292854696691532577845078559133087150673158712157622659319558092542653226970735635401804472749905314498036776146743188326190938079613156313797469075028504503041167605703583525919326180051039565641426472665831654612443088199536969568938768215317195727885615256682399527244866337148550368118193193848818192575702432951909686877612815295546179068395421837761101402429986909735341928876570921829677820898454458832801978801154894106505505978581092144682224958196802314392284926881815431797519529877781000467058909329190829349886960750500852364549752971577667110735010176481932560647611963509886835232597436515348871828342636375668827207289838557814634809176532119058381148282314517774473366921162369692235527507271325187828594210989989094541941237575337857990559872955436649098972514267297964892432546392100233525154897321096514977206105855111463978465567333863759194591177672550757570726722395300551117805838876516665869289151632227716615882029969311708825839921591398257782642998927483811341799436753500888321771407227922475887710911946102512420619631591433637559258939350595638103113537671741763146171124314014582286027416011958745847652913096627616606008605745237373039353370317073933593311639246668765637748905641572789777680956511361784941396376529230699683371429259365108759309096106248207771311932911105359673889984597208192311051417583466267120645130035444909256585001093175834499698592048766660898544542898774112589948051716042401164217213938162348568486692875690558766828715712778991859062507408310183260057369384122555317603037831490661729926396414966257254921657958520049297015700673426391576462246845409384351138629623549094366707241909027187534335159026552513972835872729262390855046410456403298294429078366648209243535925174650186515145767558055024204185567137631534696082879208722162209559949763421497859526643474000039137730155641759389069415342706174580440275409256788306026603909628458376284829665037728369280251577319526004947086324264515732006858320805756702521249358003977081727992054686055223821776386523577865928947332101487024803274035306195358935486977110429332240299620082667289257476273772450906464730887629800210231455750369867656326228434583259524327730910003261954534842659134448453525628024691097306123868226598363317563219291932477067191530687219856327045090636128889925603723764860312107555044633709844169499195892606567300841552291121493588427543005656875526746035591032142126088850709136695099927078506992438958918268144958307331995817742348086519700049253642436396954966687779709657344607321990327561980000525092200874996630152524336096476452623642819264408669638108794526826109840930245491346741540114303803489109090085130410065501175522714864779102126878637785840314884037832477437886319679928727201121784489859254474332150505013365438447186665327105743697620302935965512758462936897466388305490463734279307430893029334029204338129352324527935540919940903975866447427623785755412139220622616529437952654446477513356708901758873996462486135765359862142402401097263945386009988947296132029302844231849743776777515919716139438167509614214499504794563785236041055836999957223273681215415595235061761095451484586084018601567066619021184123012798806927899482765047258253334718009422204612266001365105269523800402095586637820270075844529635263158607745183329027247422351025442484141694523503677743403535599389239917483068941065672352123005264538027185737221995222833382171035474329776087747562588680579048101808611771307984067882065497245223966352891796453961995406820679360740166963080219529358026826052335429107341856429136428867094337956188349674108817864689915883140002175189039731572821135030188484113940061897032194479543187535245028833639985789669540751194135073595137311247998942300506935000482422750396682489694661299484115437336653256084844819217704831061300371896432218403994993441437055372021272138211451925476500763146907279630917437270049788982695318026330110093936303118315029132777731450908553955813093664362897687871995150314541501600107168270396206429418853605678532263634351289389763489192756056586459918760109019828020683267377987108613705615270902979061289396880558441952792497752091462521142174434506191015291376017821169128267334617765884943048192861951220680029959120302674388828130687208759011571399005014396345687935825079580359028919153244658474298417661246510773138590862348491543104482766373574337518710841732182215929403862064398607612539042255493309244824973664950667460546565986717528136940078871557092762575962281751963923123925331859903086526450661989115751303012696357988570197712815688178098344508936781018159760840866687808203777281189106443134031827405117226565859625987565830908090987129837840228526994526917670679158373606850763301092791681764857573190981406261558245171360216340700289790555548466116377303275070352644304528836256052456763779644276189831772990198536473612653777299750262709699931773412563778126878934396006218411413626774793289505488596933788065572513702457533667490298370886850451750223332479814666453076049084602339623877098084941755898162032800129744969927522893953052378275913775782699377439720607037615371753857625551550338082209437892990713596672386373056920381429684802795768139604110753802158253694126774046694008256640079981697082600650554297344685067148673028366673374016019403035637045172456328279514550432252921149457640863800040807384915166976860019668075176299176082592507293283954360757513609410706116781108040843856687955162779586549778374011595498863127970423164378137073790152394209495930692245376679758816714825429507136597700967847852325273414461280827067186465857831643538973010395107162979414173370264357226742418348811932197465410528016991032036653843292083278932407120481448551264585970885871612359344063217114143722775793586522808199422537660621501177731803727969749772128281904992692445153807403473919894977812322052913230067212362284911124159756564699923613389885821459401686116399682582101163215337183230063886318656651928303668562926495206936407050795835302937198984052713901892169485836089041328022709420127109432573996945748038253348415467897931912567836399051965738037888702543019866828969268744846214122341955535812564249195687723887676720608162780524015824800124496882908084560456334002177077521034332918339781463958741058869208616435836131550825852785418722624305067167125595868297339829343137668532581595545608925001161978543312030846373622501227129141194355568641745787012472562919569923559441282620422529260723848532051242590275072080633244034015579385112041608135128969993075900423638347859220525684845566199211774909945216438717759673803287956102561493883086039643225988386382860099281313646057405604783636334212984947390854184268548256918749784755943980117266710850314454974618561211050409074458749619393578275285248422930909965518575446565158252005686127333320978156768064373189403305873070585742732547144448059420316262665981883642435038028549558329011649827257260676031651212280996905618921012782519942556399838658678749576520513808984482899340104618280068094631862063471908662542581681094048045317977448332612189464547111191453830020436572857215982600807980700162523351982401727482047385092671168523888804356608200837147400191423463478469655425844971738745921067148479645816899381912190939538637045314914117026930115500849962523254750953349714918645997620217754502372792662519861798045668537616309650869171359792769279578991314373800692226576455931709008796345664138663522270431272722781349442693275205956237522381404478506160678184288186641929000527473587823964581865879199087794684297443732252873118620700736765273162933049123817137402474533952844094521630447566737297520997202908501472358127747696857028557847230288385226524474719214098945765884023035952579533127147901240485729620894087998500489026261432049535275180682094321799275988453655556262336088656287599081880718046963672897372341996123689197233806268713349273744613880144046729438434767441050667924647864807437915596765665281910656139988581691347602494457195990821529762989376895295318048683858650871882388665940217751910891966834757272908716907044377985201487840012073273730822847206404610084978271987526263640530944538645480206765791387050597840058050598878854183527063896932782742776054554549359282162420139569435453735999397063824274678680114070411230028646964326111896611617101133477900739094895993311649947214944230147788746659996748433620600459900540352614130665226717748244794441638377001987808922963416170274929952975896881852624639604470546998229707396138641369440402744554813654848239229027314429815486152040134097388130939835644718828249978894776127473161805833305987827891071188986843460127659422967504983998664273771147108104800743118625201204145641858762203831787880215386070788190768532718476341741990455131616479557501164736466593886831939169899338644003513527848643072282178228851841947763658307089344957059376202358447501363472525056903011441343109421458229699391241477443454879886065083088644944393161606726131050923494010667986354117815086302420156898610765640681807410690708895849243994706490456545552611252799691279095622683303966919047021011876721276842246165327156413896140828005318396145824583080181895823234059121010154361160805237302717781367610590411727569108740337821489905135840178101915379478209634998474795860816792570653638149556091438463856975151812172686740198439077510176542369440750849987906984999420674498557503832449532955323929543709901794127178694487137608711876261999724230777589654881120904142954076606945582137821500629407229549336832003072313119902556267561607299140540876055615329766704322153114297545241460967401589976989574066219160883995286446064463310028325940432764580069551186366973014811669729123771185751569071820314021626793619900427113444114447659964447282378930721750076852585563270484604835424718874029382449261826573066398831222937865139428810685285855011469623947825853093655639453771784130440748102658118875077380811277606889544843825105432164200219977117784602206207887978870340988562297366968502945714970026403698024708714132526043341159778147155361383585701862244775512047259189071762240142469252177414239645850866394841292595218692762013856459641499246253614829643981916552033089700147139468346224958970145913154736454401112040458947799258174118894084265558694557692865860707442265632639398239347998269323676583148961586812539175243738528161441895248350035777373477465051020987690759229862185612091560319169301237300224118351817420605392691476059274742421492465090421684030159552742078271811552363027016741143219232959662621914716174104823032213967179918842674127541697492028259510758409690596137891255797679930309735941655739335916713712859823227390106320478548907145819809799495891984115532384666523736452749951354022260882850728648339014954589318633064700040745106342185249728088555239742342195122298209993326654862314069251370698005809979718348811748660974508939124351064062972930534167711497187657288259075611758261039355618423925404804138892741355091246990482394604051923001464904661847408671466501236754416899873653182972551728321493419270878215941098187593783345102917056687840011788979800230070118975274812426354876549532982357722953452712763411837025187869528288178888001333818024385401068601816209578886698751661628462535065633685524203597529887808055239743087197768040801719221828866298435951696858161307721998961069129486580057740357049376954408526155863599005949497039256070240282323425292987597390071408829730247319340661631660925883323483115391876867314072468961606644468420590904608245074822924023886112625425878761795047227249440452919294885912033065072173677883672356511536662208551159628511597109901875891312622304737363907877570257406872491057898217595183994800418471693778675065273072871336281601350407703085213592129776476684002450462825878885698662557659528181291938578620006341452488941123740675809478466232036250582087791421989021018296035566843355900676203720954453715177536153570987084844425141174228109126551226116621048077457560451636617702132880186573189375709323700019035672395618332547198512475068345393409765555293777618818619965719369275492000735260975538264464795948770792913634701038953504104297034123294129191745695899191702013355519794571597066198343496363563878319570795557657150056043284544828964388464199176250847435703259762161403290676471958348716857666500815874292895646569255683149081485736678539523747233903356611313237229071740175045778023199164390320970689193592235956430220183903663234842143914930796851997359571342280017620550931602850300722322797479366273870876784262890969690348342916594111530712392124137605239673192235744908559425214995488239497152838907869725363628657690550344325882506948133433479510315809502834804801096633663614433012542375860668769633290837825215341180168544730637743162315431551396768938198797865418624894651313376525807471555331519716470355907357897286614091033422708899330636003867101392902323564873797955661081112320920568345372397474877122553637969663379447788648199392320226349266062922475813074758075893220980636153952195964789046875332722721021674449736230020293230335578900601433751138419838331176456378036331576070624599032789019631939554273524485458029410193159293287784512465773497222736455506439738936235157650227842140482002086459920010575448487057397708110496449514349276577854780621185779141770686207528473494207232654983774331943407004039048512373914904471134458970743089370304927257874131636625415585765233575699170107991160878420731639139980607737915369762939517901770356606480825977810575619498681506774828947308789954625323546785680090548162013116844728763247323511030839355016052128140260339147974216888713463617344086767954802572580022539609758252375137198360294721350972225766686856588694333860293802333717059207878822428995983597496747405844471305238079039539172344356480651047996031733394254205392498129526551327081741103455560284165007893167252973622144608812680532945654473410047601286843054518922804573061183974945963313914275925578395594883621852069198938167002227129110741935404537811444324908293504356760841689626318388690082384229862221028407371116697509892034108012061708885751133940483943456760841560037460320100011984240941919008687197956388618507157769197782551537076525937092418564865432500619429645063834868391982782704695296559318090974610323658582708644728745270719606142924226666016198073107798326570745935049387239830462979939705739250281723353869948302104770918107976991677512488949273745377209266953719265060988491832748657598249592119353828414000145418789605068280945279378652093001778742820289528676203117980257374463582130776628608834080348601470209086454190959847131315959245793656613784098810221330012972992537633989022631278385225517855071447824660910311406546868657705963747520899986187296915566414033303683621406561632059934155076253341740045969742039821587412214574491224745429146757496053228929409662897209166641292941340490721854851362542155340626044939415035477954820846164332973850192968186871971753799644434685825970174160393950048611745877971019955948330269517965475461354842943344339347958213442159785867215196952921133115904194217351712334003206183465281040385919076196876207528956341604329517167295323994851954069484097859106827844743072875816412137210084148118677642079601955486502653046603429359743170063856981267515603364183502174214245925593004828566644494450737710141510908906327827822702995158063215921180357318391319588091389270179331831931497705482230690675981423946197821589915901246476513508808886178554525809878030226271419125902584752949792326434194146304337039602536612847120415470175831083219480930045634540985915614174092278635909667429248724191137216571379367062846299865122342390161629533763972746790726432867768003201853006256292800750608082953649105442829059609590094457273449382643051201064680303374993919880696590369944621447021751317335246613757426452356594306253464917797808036462480467066284604422786908457376042093111769904397141671830138449124857349579691313582093841218324617000732204841255833176135042088827943435359171603140111780662006321996186204713693635109641088789969011506634668055417157125662337497486348921522805383071978417402724780504611327176204667848088309765329549523890859431415981533856668066908854775994967498991225360667395526058588530741233976056764626001845351214959122149753500246043254229620375832797541307302718923720199671548496828987416108341811365741082569660936886175851227055059653291060331596834879831983639951529181964904865267786442106844619538769990755915001450402596483130707144497765839278931421256029780466060507527987444878848984501710065890341807823489447276946595539016750914897318868387870735859739518473977139477996255621872933419058668653463975782631387077722721399831210591155889216788725302963578303453608752475256872727635829904089422107384373216126332173642196702701311520509672937982563139093534342201469823629761635049323267218337681113537957586177864951297962886538174610602736590322660287357118318778572056609860403356874131490902971944865436218744560292058821141662588014289496898179189571978649414308331402923935352866590570776372778376207660036437807077235081707159507603142505647548300637316968121804892693010807838511776738750901176133416339021353897733267990102171117205718928739860341930912482834061609754057487188725934450081535192827948301950038740276702991527161292873351921513398977434601646451187625471494346030448973110902532658837515368861965389254835644095463072759409857877515635565538392063147058337088739376703983049169076706853870914512834484802382899339997733579324830640386620024944397947461949808782258298885545180436511700251857440099021051474175164085408897612817216734904778621407172149477764645694650658922739388159533125452120589722742933324584968181609048356963246324595069328618100286329209379804232318347968626785213893295754144736033130595337734760326971685957265497892278207788086295539276106130630578080008159324398027586468482512863299455233380390700005026736697494090265316968835850083508229401068154343582276407391253271503775663839348047092192016928243608360858739630704839460010969982354555944645370751061924652474975890253651367815968258908743082833177822000415314278663406959351211879634544392972403987465624077766614360391457082815175398456585123455034597356431059429111070792839906733820947417523290149181737206860158205437354523947022388185869751386618991987105034301909515530514715954288105671281482629927847521202291483673033391520510294907080333768255040828533388177187913674270303394922163912606757258426131274191393095943411959380355707850851048264259973100557072433735668388390384439761993037397424030425816602258204470755937989581053768270062563658700620476869981097082434531178377264667023917625973823880067631414285765853001571305368889163564675065961004667792489390976535315249328647525510871655137655342616264828466526740940654127221922234889584828989354945405246131997092412938097089745226998364019557680001380821210674278881816057947731931099225393947640225491489951011943983320664009424257481966382714269468286643995083913073576042750273284714917288703675846981032341385437722787552613555468077275280519373833767661735448472378992206722060033858091291624610882554783275148107779726176982854013430847786750152801682260203332276833019016581180928046062207927879452788413604783557573212260202914110236144126136902968697856927457485088070253258825180359856994349236199218040778128227921071579694143461015514027852582099568019102915082756815731525787411156216172243286684028386094506106486807790319785381269222673388772479032975317750616141295514008030171507262727129661891424547491316231391122087327615966590532078223548391749233227606420797817468640182497721562451119250886817125899893846998679073633907579805931144454346403423262346833086182427014215087375411310819147748186544257587971135946330020345840089920603222837405304337638678895839184809135316046219021362582959829523737393143958430442846241322208314113012592833777015729502192424494152983107809627986090797531854925331628498968139445187764970627083169018003986096027316256217619480669447670954935078168530086479285791021289352148095860505810504124222850743612399070356300644314225477350929020791452868387177904522683010727208865444502832028542163257457377024674401125585942436809092753537353425030292884075287308319707559219013909982741400039887947916242912339278030314394417593959460011226880203471925501754787422437764443969753682933437754129351442358745173522897483536143465954383851960260550299909522650885484992963076599696619792823230694813976472393391124396067431692074113151450589554870448486049227441367476784137038237126225047397972616846435862412253596149068190167159751375504293563446602630160239020891331892847914903354689576152351261256237272226369828331727529079714708966271356484272265487174487141349254800756031807917195210692415477043957294734851651462278869866023565934948126152326603188037331256112543144620634439396050896717552092216598446185757404201868338886837804035460720179189897327464166720673665318797159209543913260470772125483193926834702023400167451579512900281167712484596276401023974701875607636247271913810236329442551426485075931406361302668139947465475720752614158703187291294071983641075784291567864740175653724232226800059144626618156412610738224611084448946150623220029324473143140944936738007712334454968798519394959515192096480490791789698870765590165786855917033203681614944578909183027911547999481457201048290565881297173854919622616406011410169254732917455248396026884299644561126443429578563374358514967386850562223251601384793420731920785671811102613432902343057515492918180533100981667318228104694379953881620004644250975685426802038874911576545988753397869379236619935763672159880951402185567877824665066096845697371172316843147590831542446189399640327056753003469400975422820659212617514166137699555830532299450270879275444464294310725191837650061925566936610247413727532726673984842789189732947951510755293521289228311321239196893452818800753198584379969819441444661189183550056666589245334049316400810967113534714570691181403021808259551230885629950112291931938241542872557739677360513166019103213844469340859307297997007861539964578402426634104792024837437357784670192418593024685395875170596385163619409352480567474960972892276958195634394954630021109833056385178625457920286341216504083081896884809325542569854196028259820626022618681682181052705506615092415736424597993620680309716976388226984503450127358843236915226098880732458725731798263328472031164133086689866610324576956378867370518536085869813612163922213164438940964085151518845120927990242735938838580593998095699620707368498360576990085534164337078515168238296470473008488748037227156405857037283154014020566047886342568680272853616786873119924577266225673737389598430727200666415258110833789047391117109847055951763082452082226858528312980814177516301558776035533802319518446193249976154912138663581700455119822280163853437854189975249141015108882996432514670040185956794563472867638400137413042327374670040352656221594186248047568300338209600227899681564281000135522248985625873463816589142874881131457172104551776780835010771474798295285553156653615123015344066560173891879191234195242889760840277024123858237154139510930900111733798738480961187708734521355471564369914347245812522668550031139449128505183638288443397011201644375195291721186648603488521430526321377250242035210499077560642085987144498605166029809124454129502934239297245648439286745633167926431455816818339910256371502351931044687313265050401128078408120449006844251076833056549458766167837697809237714339272783477881044378079300426357264411003727494659977633608606303741695032276641488221874056141682610192765513807493546216230170107398971865913311009572141138958949847740256632602530033806763603599923743718528000268997593399646881513351922356066076044307257754898140523955636243666195542646903804989029150856762560845816515566747989809698290717301553840864133079759898785389978344718016498201438871534053315044137798697769434457695528971289735899443976185920304287738997622640803551612956811046499017598410657122848963264001010021567704571746594405801803213776572988182566075346365517413597636911773349190048041200026836358338483683364336450133452949637696625829680800122733896861053333828237775768000331542512574368553150546714764482812407273028809136184884864080843127098274912069365743301696727397165240379344920620407259762305864049963584886103636748338018890693922161698252701116876494472488328213291266128688088323983525968481858268013516663463343823721884336311244110231802908473444430894633007987802050637101508522284785581448317595008700250636459621006984791613021285030059082415734606240828553000132876633382047213688546816377738984906881007777270620169341290144704304153201301507992966904509631744272163668971342377037513825629763235092631086635017693504677496434532465250917078860134292791665327142552868332530673633160977381088206336059372050810200576760429289916393082209894774587141113007900545441462117630102975322818711080277351069098771268224703883972416782364330515685507229319284728061628527761659845125234085080483391994992975811268930323336909386926683506866370869542449997808964569348167892888962763898831664549003213867816778130268501321323851766665858311564903002298570851740435246468784177800194419304436325973552353698595451365819045257420341937390133809064191553763358868987069343573534214672306093029576086743808155792125624210563975565861693481947116077617222984745545666445536808179976145532824661807448243799035807309949388169781920905945574617330155864781999190521661180660919332369756758410346955434246882994570724729637805801333772475134503599364202626849966812107624220808494276295863640916742345530159599344777198514782670558426671833582100871701835531362521548579459784424400226199062336178646960898178438196986757319058116621411718746351130058564899096819298298684647619529152572017775799055754660424842994713840768090848090235480137631165755150099399601002360048447273081970967605197702638795313460274836771877285369105560457587468018120606201326146952235690618477903594510814450080331302433729436199595161608671616853360413098544378210402130958364259965860475429412561123137543632222151636321777404396885390107639295341946674484169801781405569922953211014798808194956981979535921175105983600498231657000685780093815018566946713443657662407549513827806838778778020396087751909055662232038765443479022247780810176421676879973395349906660504869581306788130263352390218222091370144612481546255010111256882540482840186432236135526943992994506811431348221363675113257362325451660925066931597512445778471889944024867104087680755276126311635959303517709851087238407251427573887813865581798223203708057779602538757636330127440297083370987010611485042599970379090845061231860105481447376473737034644262677929688472772857034956126038124424194558306082745450368621798346547823072548247006530680329709837323160792835246335041780480551357025016997436768349117462818206928112154138258218759433820383548478505517798963842956213499534150109624927019163511324471465296125271839994936252467849392449228223339915269994641789716692449098254012964947291161100669850665417020420940154350212333155284617437516563604208619242637477114481855971734777848996825229371642370300999739037566265910346159310940665934478406978742067761334204004456134589938974564031825302163809951807658745761570967267347478747833272123507249720395943488917293584800955320673796130276186705235298844491580166190638055133132674852202019844078204152227235938510154814351806142870206836423104204313420967913820291024644089056148849196584490635574295988271779995168209000595483299895284528576888087285510320576063625122458037548950724700756132857362134729360845182089948444422888585508535598871587750138636359987359094587114978539916511968670645289613931857604584352983521544773873736697780108570679638679484625549210243866087356251607650272833218164657662966698370725589491688463322062589334794649302622328300540174443520523977102046292744680029819585361476000695143361097622877408561849899446961697281145802523032346622367386761296306610070874888670265925467288205635012504097583437443309776095103188395528226639200891783090803085437474711775779872950523238992390722422629610967854030317573923546684652126137073535979361754119348086984641748317751486512054549288759685603817974192471213584640879004163061358233758730957155476639573178901071045434910874665391662970289097290173658373614892829299169845256243318522406478318405724555152089971590915094634574069608113359885960660034898426360813957594360519426186370031199324467366497498187633734037905950872314078408765587851045775222917305736315181116804505498623602567801426371287463224448076238632566793669400962423656776866737136138486118170234744378967021629348060318973012584030986796896200275396588410499901374165501319664929561327966568185210666860409113640032483790789295972096284672057289754080381212276498457978732052418789438380299104326650897093099116669803793540900838567992429421829224519018034645902047526038069114596971921663738820102986027183945127508340609997904120926302022764098656111673918872997570757030427566221629300096133609248715857738703955400441810857682085911886051850541757557693939705121369191047965716356987996637830467965946869691578330435234304430325646498971319280336454791931174488125670536848209309556539609431588495621654156162900127055243203002202710957765368755117067903662112709294286367708011841478378382951115936893024729723190737172162525088814201692573840583563347949499055372846556671164076050302877783478646237814898902966463884534230670382525428350677766194658032980572841043346555434510887131362336120948845802955702585201766172898001328639740303944232159510318828083641149911003779383700106542505536373729608896024632573583061300726849806460370664283999052010999699487431826040732454018030527891569539271192601593040960423748999739222864205650405420134508769299738276920336528754793760671845698254468099066964378484680028006222552585873866623597659178286767784335606226148636778142834063749282512201095632105745748919433069527467281064369092204088969393233591995764925303113503712381473627787505904816664100405800943674360549033152380998914775288397815631902263175227599584875986988677473271067463468345784248260708661960143456163558692043246451589826820163533199273472761553048618373342642985334799393608692612664637191740657893691852155024853031936859137695606698441472695307222826571847093570281865765606181323838818894097693560233265124030415454688140402827956077048332069738789105024162292990376521560619929721331841519096298307836156725687627171863067079405273243598068744141606582348607283877791864619736126111523376515854960979604209865865066418287191430760930758363334961398100853835667650185360956470198917550359767883956672747312337207519160700509928386900244628745903707718197718145861326427313463589962202247291284694461016532177897331012568966619326381376388842944408269834651171999064718528341027125169134796072114389814984782249354510834004806875594836639051598741717057466367248058977140016312017457216051452903216192921823533704231652391571295028850463456676470174441494540914301842225489778436394847806358052743557140693963233764495560359316889373352259270304996435466306053035892793707173880447539298256202396752100116818058647446399808198464359072948443528391863062488509586773536144290690488628425283641522338536646403484714401964463819418872559081271501290481581969086428521732697098926073640617009003700296317762767981061004740932314511202199681362784620961773111589804378882980206840436687203760934231421260912754325908848632275914000966198127653157994104275379853879325062679230334874790282999425247891697628710065544940367608432298426307380715750701364990224807881027727573836066552778263587124937933358700339781008031340901725110787821919818335561477712868570967562825041754085357486861098936224286313013992397152786996496219604439340471832740824755472996762221684505979316861475833889660164690686611522739843871726882597112848562536130852296101976817566467732839618033768517022129885424734693260042024830480598366268366466006449811296090507055575295096176710396123678871356426226179800237466141585249516484510126356078038736325863158128444273740258445087046422295563734669936097354093146943171069044747407427861719829895705833350893475779837931291841818851601625617661514827806553380707874084579613819477678366607618252092088955089918815623520718309679470265795420225110244105659019367158240412867485984628351184656452219898369447441742762168335331652289898435621906465972415771855230411988126274366125354961178525875570719988819013564100170783064391392815624471332884031306551734780450494904219667465869347285679552382027633138796600644933883373995244503283807435580536058657701022391209308350043478422218494004506078766715424918325199852973199173492189722645103548907257959566587935903908533324742637653798671327585859190890223378532262429673759199572958214122651563031565234584564614528904611928239354429992714221189382920069388080032347957642979580782444870358137170083330662975568571521212666335233263313057334081677880830794233563374374440209366229801214377530716485851967515293301106878406678114892838664970721068509190981522961838534189650873973442177525637644740657414319341436012738539628231197086129674794601572468789984222105164490284974019231817684707291176673549196729978314962088833959912971351156167294408328586999774411480315586476256247062679045563997103454050187675925786928803118034509108002762677049044001267598724984430745879728169778069396692237657257878113021368771498361197256815578924469280467918681144849961632697606433891088433696361193272974884564373829522299783508167817425155891333858982824130248875029664221997392615890901227172001626384668496388345639744423841327524596637121822261344543809399164920662749017587578740057804925200734144694756075893531692874089916660028665212355247680048407690924786734693559335884813719977813671056733057732042735645108928230443790923631801763277662510618626789613768809261700485664156411301937434186242113186600225667978064201128280079139421131563278985935109134598830930840732863607269341730153955182709287745653461634662452078010420513122261911621486650052787513962133053900615152907542529938297400198291901798057536973966464750430996884011288400244418980157692599967679597182289117488827913710233103280098870997587641363584820972935070267933353679010357659360662245100136650389024176269279679174310821410858575294982317530122696136738626928433510090182955984151995866914012779072253078554247535385838389064127772813839731195801035861058718003065745977011891769847007310778662218777068284596303375391406928577635551698972387026182536851999990888847650156868173241011548258896114891353863559183189566643666722272931788890792240793205429875677699207419366532599281512966781056533987624539672160212389432496710937217674620033413169718127672269083921282880585129054045035847345167627579993215466939654672978659516112029255830963471671289966780694499462830739881934711566765859981670473494185864407210044691061600950515538970133867518644427516816880284793378945415867516271370753277280020328570882603457010682925857971600171287168156582689474769130314780582932684964125913413913921003500482881288403417094070007827099942208220124856805038900332184618248246323282176615580278648257538367597906041989249611000353615139707981592628502380914402371319653824305430441583861013020848287964944653544021671356044172806869995724899389929721008350378382837886439690122556035465475888233260025502704149279806287247212382634793476272854110861281347424473457130161214410195989868371844585901896575819332502925821877548350158577970637317077008085675451832067249034949176488748980190996222383604565579311973396149164613952784904936418486845865255128455301167610035667984001616050003720179742789145447320526199121642990239230544981294348334127981735092597393671225137642623107123626217146418298091405972995635669178984287405200458970158481629847872829654545995424435016734971300465079580184837653191991314428429242236028833888427696717548557135158950988894183391203879458784197219814151086442575555194333742053125988216023696851103691226379229564597574084628133637923160855799045534645315995876769853194394267379198932644012505755144056291794720710838916552518586473016565189699218274971924184605965924900216364039062841536474784127024672810132680134653606487827567142065645604159249964721245419420209552272411207989781314490318285983755291990747303787601164333197711153650048554084945412482030816224159125575271727068905782219592220460645884155907580382037595149305749522768716172645023072832622930807080803027653622335976920402382420322277667569959431013851305415378844281825761269003640172309273334774066984488110286453175574705466278571038388165664310068715258159396685460158740091922661189492694894066113742110202573052248549678748479077463618269836578173853126849166612645244586639659269903659109541557715862106064301467198950994743595237057126884267402438827160380860772819949222723388683253264810549570313847321473584448756462126313433993546598720477305192540122959247887209873915912021814438596141052780324440363499391760152184448336486435922113858151312493415155306069434646653702791633416040214738254502183034578258359997801474893854370949382397259879018866202075586083397759930791841344881219757454987680438534917018118005458923074849617269847239535472337536881725668115427019592314899196880428851577582128825619845758109754102612743369273025007101336505837728900921208761896200288505268366834104243180653891172620985928869391407732996199670218964158858260202620798652647418061875476702089768536785766851522660485091817219913481041923373709255606609684728126607848013452346536495848206050100274848693362559514611902552035108053343437524330731852262143239355870351840810043458527545970239300433143901962464493198966281720596389643252192373119882272308910628605060943803826917581540373369586524308024815040107822150536801013395851131941738318435111593067828298351052293292253890347422611667195307600898785464358406777194505364696646509941805046112955321202800584370748109442678485612765059910559191987340438901221768827074896996918649204495610561576232417020386023200118324020690121577036180231922330723652019915320004748764779672352079834345714893722373605168675892251524190409827005401838950411791298746203087640551953139611569442545063682391767602027446402005066609273439348626805533516735939823864313520064161447882601027432576109118134530973038392450799096538851359875154720715228695113853261915775950417684877476384602641039362518503241931558294026272458948265335647894465605553364082477893778069252644322434524122937383233035887854707088810129365591885144037783599012354193946446059024315558622538036513511109464596100364311795137879320495589876918207796411123941551304599189297660383875179454039683474841290965123491158354805710939048190502526360565892092812456092022850604635666205828720513985232123036700301034390045417373592454934020807039536441211356162184459696490514406241436935751343242631137018414152248788607046496361325044419097629532800281891161317354412310963429551714379287868809361301179020563075518581165660765806532477267240299757334149158431940071349628580475308665135431255935372678125746928330144541504426764136814480920763168123421083594392421359711468685979800170705848883316836507895574390373653666939150983870755979910380161308393872037092201575777510565767060748709307389425956445674547706132477632364665701785676933580584298743218716259495660303435865333317657919376819094970815916744216285227296032159744527672495813431706547304561423099251903255657440204172975318892648377774259348981099914895758835163669358268853041800955892629390000027578917997593480982019968936229449773022965696427371672771315775620833954109630451089852230768902260685899046215973944129030565474693360176346702675434308040471405280397366299823277296397923689760912503916376853846947467293508940611806428744255415735811603102260337016493884062120625933943406586955468630655159250441296179863292264553550452615443037830090445590804437025223125267710295700113088008809096475967712159581548195863809916755405674398897460478324154021039792462885358324029841556990434757075373309363516375859937829624137006876281600892062461498361887590021371534944423662915943904941002665433733471059984781380836263671577243232443747475166798915818895018368629079971581258782257000836034651707579193291489632089281590338892631805420945553150323729046456459702358857401424689510229863955822951559936125702515045829408784571962322280551632627252469222741535053487996755954113963556141706647869622885161171505504059154175282238914367283056982081314302527012284628078681508944052790429244351685983188282154858119772626535497126610559280558841192724241261445055771505579489656779463145467070555770063708515762438166087537224772737583192620419765850807710594481026056992778403355256888354305307151522675910504113476375549668861055367660466049298282654968517425125878586410163698393872145686290279329673516766970916493234064965218933926211978912207168799711566042630426242530170541934814972515109807009462705036681686873197757001287646739177330430366978221176179630130809613940640577086505234901103302845610692143739420631425367781868878528975682006512776408150820821650119168853168362384554478924203024361209450351187422123061059510030505196314750561942266252909630828629616004931543336170760639471967556705285425496943590581350105017619723167339283183720590868189944617576115002636161422842206040562614012523494536248515778562986972008657518022515884550747071079512986203119268535247778548761525160711444873241130271143846569153912286940037270602153949531879157061803661942936622531176938466674365394278544868792927009050123499380088451106289857076271057542583588668928489809408476426672104180896734057621895352937427907073068271639650813078597177437809213277539682699068480102386471877332367908228012296213106504804103995336936503784042031081987329766426384749408350448157937417294762038040096848234323160164476195470023955133728798283043861258075679884093880492356313259514886912946370888534755260270045402504261483880945902578089594860073043116063056846340676909351427699181049416577367665426742394361526827222437015354963167750762442653291968890415747796123696751610827868183350202308643096116355667074596827105155767574888977936480681938927148400492487562521424242282605021310870860372595669681307986944130041148280271261417073844531595816467061036781381949425287191104751944578800567446016963932128612850633522888373551873038067161612246760580199759290963330103087053660368899141118180247920487644800065397745769564981089768380509449957731625985852534294413647674964340494200976731518735328428927017338093592260780575387416161426891835012493150954817993911223584521523833876270963821321141464637906252310952366140232324422281279722745809305444366903343903410574808616252659785637024589232820720145962954484390727645442503952261268627303328740918987368070385241971591897738956026824444236175477908688995175144967406493935009650640701303903083052721148984531546544202742711443631478306672081548757580671845307048165898622385921219045996317596355194768653833457536912653021750692406200281113936697364580526109431954468949863235591636739333897211843953532295630695177417759859643334457588010478140371329600545333029920040016748628850522496690138804708873954932415530288286634863596893138457352831246663451148078397592433895631297388142576985682743440768277371196309665930248992373879998017479600276087882250595300378379250811251788656574323091302910431344684669982205693319639707390585785410774037664285696852668950702943996378596123868584548869052402261796729030922287139201638513034357464098856353436297750436759683570700182503005335005737623032779555933839599947363177330484513518271005648738703302825712529106229297365688180962717321270744462471269734226326457113157553095382297933132213756103018579567554143333395080792460319696494061576162959326808101730229150204076072880061811148894047620102973170545104654319264994016403916570761614780439877356017386201775713228195397170441096878742109120924830726322502245612844033422318270550755974684711464195748990935488610442021185125096787758984540924711240734839443328438084997393908337801385487536649747177259946771369245288475704769994048579136164239287780326764278856477528165763559993480921524416433060826452563455085037493588688924622903257010605177433099847001431063400887226267289164690709601366871389599184133893593238024488240500297431920438320330720697360550315947807581411293547015007333509016769365929739848617324816131232700655372321690767202310451104132898288402636190587728689196578311453226599244666335608486072858897590244330889671472170332071422144773702997361957113313326666244223344989680223355213621025090287249162521776937424214913521150022214220535248556958985807917526747140783859913605006133724925886192507366417741951878938471197134488905709650686502856473692759972239612816824740198815460954012685619041654862152619927245467054956282972103587139781514464208710156627391748295078189966191709560687748831469648569695048270750225766580515340418156681870177200226721277715504773385446814857253717705730035603896895185012761579100356729801312651838529746019387179923644162219097769931494751388925450677511331010663220613289404902196777875586933690294295303529192331085400451957575201804977712180079754347489840683657285085399998355301936337067318228758210532037976272562266884830223255100216484439145520046632578839879977118614461989599456423914246982491607038490068160662065637680344248190490639301469617105672357980807657829595728860606947205081045997867095457928242747704856825411524676193953814207017783273869951844832152960959838879009557611989787530024364417498531837368503560162855862262919502561136516065104137200932730613479539215510544081335828826711467300464553287063913558810393247361489087875206476147695407858541291333276998958596153225299348318420263582806478863300659430971447869755694261552672482327894399454725703735143760524402951166654583191000935054388257154718086056536622700683665417568109669579118637419738855008871113754876738171186087031074307856000835207930413964596025187390176561487809668186572392757632680513191503592056634632252481146053948010391297693150761542159459349967344432872878265757964836847505524149284172205699789808650243054152092459820203542470835330610259246148940515114850287758579437320354249498021209528082075092543323877707453889250576751717958411839219112484400220813186918736332842918553173900569746075538590397112631483714869121128379242629653293206989576700656133196556339028887048757472620814569661390348720514601204501624863300707386708072792771742584695902309210228974857024527005216965281502945652382814273096565759932114544923609379734854763461884159293740321746345108743374068860440217321548946908398529163356881349375093819911812623236887258544973266332375057282140499831151199936940889852826865147160605131665674841713541461377083644072313339132165728900941783585157317218506768338097872391216233373767244740424483987706767618124941856793143867972508247296550610205368716855883669101315630288794588889711438448486774638623212421759062047152245240596876085110927871462512262411993309509231892954483989535693032781554537442316914292499555886587279727501426946975945826273995139565659723004974590454227189602656705825458640345265253621310771579840104461078490318644258158578419239310805544448853725533435179573371287124730008269403654497430798306964205521493631551960564840995667536070413899168548543898221812973251640223800929660913211955492551217049101443400740944464239781008750679623004775555191188377996561719166063168467627451017800254335246473071978249494714244793117441461298368634941291859805431979552318906677740150112356873349852503225125614842491164070876442775815804357226927787715136440426954553355825058753125118303655441100096784813144651470043831429745842093157556399519349595940771664618654163387751626425173412786112017998547278570821336638230036238349228943527984659300315782428679734460466165127602525141527666759812153611541569462166126781585115112837435690675875780962490998417271228397153605083856515474928477017554003116228862099471407399302062379431206064308444252729356590863810963553868845798267666739951367465496075890029716577574861330888986315804188144011004204543183732782515953428536869751896680984735092155283747940304107197976371262150716061014504883655303995717828508533261135824991877385048822304959242692000071823531875951768610543232165268607403538392097494246790753338135033250828932384328154365432904466939039203784329913189897217325362812382753106889887841902462717934387554126835990441479240037628995066017420796532083289935390926763691562067333142611761950352323395473268556308823941649843866787138596937422992821493576969795335243591645086326177531821508954158018449079537224684256034738584147376818339694603217717876803603416199733563698599657572468547770251050131024574850368066767511171633518422083528447856685371570693525222484608405587915477800214628442014003697909542528644360378053754461560195705257494229901305778651244103229008102903870564477829768320904902992994415857922676727580514538588545050992275014944670405216438265869262670876527894850202024045026599058120614353577241484949370780594029443796865234176612605526279170379588051122638963682281622341101539084675061763309190028631544601754872615145125896572131442458266380729577460463962045138820540766287303045022543305413968139252179708890079323707238765060423823028314005535076410384395551967769836253584122738882088768208654545610540700694642560118163226869864215201584045453401514840298052328910594266611726753568392142157400825560901776793548811515258913346456781529039084796137249730101061884249138694349983788740880788184622995977324864223899374900449452384361798949076508788323901964596792872389204777863278982934071964672210773657941856268617586725589011173537193744549968659960984618475072050391972288515256702343922233456700243593276559934726200164938059878897509579599931191094499351363323436076263765215166024740178585576310548391263369889513507518966507926844729272761697067910569299155292309567882809255595674052840383246854662311309068942610201588409940005564113705810487720783050452482645376823824384320649859371455602527802463127285911510094089118824177370786313254435328871218098371838144849882664705376397290564811536242348212250694405255398610132144671734741776942859432093069298752693187910462125448727546474886195487278872968406619480960658981880103882907180511821210236937599389916547650091276746786995321433351117281483903112922805191318640293107309511794127160970396815758782460280156664157836193781096887240692840064370526591580132302067434829263218685538531455624415659578685003055435111116497946374287244877897906884558609533776064701595899460702519313398663507546203858749835296270774503557752419416289859787046860161529969676683500960196076959129958978703564708190964033122692249992320737673572810422573149225671856005574826768396887772668995791225296564896146363252574904686976770274079687922718000078236688328510047064418764718615191811095530899418763504326862335506519345830485381163128097982364072002271958395815778975029091660180078064724301222679225521783884641631679490153586108605381556152418605045706362789468472055069180288811110101851440330149130570985032846242038953151463616278989526883862185018411249024691678557493911267476140267068950813486658776162794173888856189126907847391498857120032283993778150080669374831488504717812085126045758918077044978163695790231519833200666468664516472961693135758782131394793119219947539339120751681953688603611448400633066170313823856099274064350279421032626469978221629744466705176235734086940335908910755811968943361100127317767183331258265371336501055060081619478245420335293591309041003296793214444304798931859110175928803940769409182341656135580786725448183438938929447476331413677136795410988817367659177326711943933131300127884505559551918267755822582284983871442366004012607908259299143004366595316552890797608300805238310609531184180724679552600276920946803923569475128699151655944891110780241822727400136099750311733918619437678271858410087090612313787318932438737501267358101669017617201829719047973127246349231100287653933369362233050940429229875875810773783004636837942429223423049327680945475964466455156415318215156527490714959635781838945320289419135905783135999753177200114989077891393663044928918803274353142893966156969226765695255872069259657978561465651052823008010374953753244177483055718569665720545759112528471468560282270733732518215483118316953522301164774679923251553961083378688363619962325593581211325621951124242485857896158102346489429145884703581480960804814185778822330474135299322859142762365285237224323008982482749881791212146679911448981105621299593732193093020377039734671101146672772163461248845988372220860605432733717041055389772482743837456065270981463360845693250903596409271307851247382229346716029548330319169476151257905680219869216826755337229690923610706798940509834221872548387114590817652316439673412109509414989307540213459365535600184270862637871752241372673260391480684753786241266260887951947122863230830930729486890263181325329701736329879414039568752546158785291081290279941153577448445342132730145147536409135644700659049387839941729536221992166001394266037762425468966112786154823850295782082079443767184779543476849831238837471145675354256991267641346673850770120199481246070255996516082378967118555903056181510398607996959647962076179842918253992324834074001051390711290852502307592942774425841717298589807892255425143838844117901562779624816785208879186369138424221735991521168533669928531326271975165447971156366583520428869721653432468797430195594258287721706604886393209950402218701301996339280382402623088344226993549935580767068359853165952346536961332305874252395763359518019320770181156137128941688677925315844506860883300810505551837024275959961865255804764939076838535345915231669387930883099401585504257045635172472574472506208795940886219965416842075472854036952133641908782047155715986979380497839753911699956384506931818098855448820531871763569090669035594634540197873709496206498348500294887294710741918361676803919983368273224843776306164791319775016639489931409655908677424181578008532806756753611377005397130743575061429859592936501504787997222552355678364927706150968173542354344336958040719924362925769163393940755087743713478074763219113597873039150775626435118607451124485449393172396131665942434687006968889076070842948529302717660434985471680400914580086139702565988101982901814675322416226788450747801617014713845517761344402484895056434803578143401938275597670856291753342543611155721559026826059668876650525516215169088668691755426669343872884923667086909478385830988278584887407553923555304530756311086614605891258688401793222101375997483249182879356256121001823998993601214936763934108044694242378658944671634515035959630024545797660297718973218032217042802925592619952770714279104210660121614887346674905603363223675022864830375406273462985710612207255578028390358217799282346378280308370552019273737304862536448468753034878398510402402851592371640722443424861553670314380685493494205592295968643225131584825084596363152155690471006097473839344515279368993203714826542151898066671615032028231793518753675502172785763319207855893984950397693157149986052599620957418411216993050990062945066019227203153746325786003858544595170104208850043283424293368794434961698806698869110161963809151538108196466193298267338766885002714469386195463863973141158084506025454084669023913897788214825083554087605377771892814206528217941137476663481049914498517338131815472520989070380237950014351046744918434683652490507974315250222580922181236566558446185409246504174102339925421431074635664603737808645438036792738278088744394309083661691864616775643198412657863700930801715010909208314831059157833996138271116866043924601811739433070491114484104387378501653653161889381291879667169074375772077433151970939288945962116478240828824038358033722186256377544418435185409346572647046341046649928368172244596712071568731259734592037504787738790697004821483756569985192666817774120918228373027689287537505415106535288564442509772760156860300288555825524838990698374836749660707977892359306308276426759671958148916198804148058482899906836062343150224727583926610038914659932094664181935967905141777117762577087252432941789264581124639631057045490558466953067254596475571147899633930002203877354437141435599071721387090045358379942024020211203514235598958808410929446303087146386621465112664582555326643776681653354412175416401883853866418830102671159369530568914041731872799956070533249732947255504413657641332614213216832766922870956622146915758997011312523106813296081524553876335860196588085587994281442962784494347551051310081087230667405376483916225255053790089756204742844346343803153285584501039519565779479412662101952667873845957590836704552004844683756556543037762224154808422947407905560487334652029312230730216386729904451617551634658499744334112317831249931054208630044155865819638028644615061640347965670197184823563101623722078787089281605603483224389760832783634815642203757172625132794992515509641713975566673535930647191730487391733095957719519712590700951340001043247160443605672914537127943167058268230996832595209972623810727325198153065265568333523643193043553039621600391978749978719706544634284900069158243013341995759821591887720854381687684924482384482329066453672008163135142738557616708812916836037130415110521817774093214975558960173141566190008062023292469776994343438412664892904071767601494520351056448738611628720878913115414147900768540817802604682223943766036959544946445062165603208004690637681916409001137842226853996693124337771726969309249300238616434199645769164874737210704894762392762147048483209333984021149306148924250363432143719265885106503595147036137167906865631650472713771252567954837981770745017439015473208042662679113335457512866439652968386974560429129160424501718054445656190718089358387351025533361013204904338901823863470041243452511995903326299119202039795787838213881629930701138927317146012741486312386854479930934099810059987198853263064582884506836506422696304193732163078364322778003772247890481147012596266422336148625092010812765102428495849761058845342071625436246643152976380925711223738535459256626643359484533525348442717425171873480298516437591322606451324180615363379790036213179479786222359732701047676515404358541384481287273446525945495085600742583298304145410363551974883903914891683815836179938890300815599883719042220586595288727774470888078605660034561201457101350568490340756377822588104204764297118921759888578710896971524397521773675786117361830048932116214827805951505811021841292304746750826424767640771796090215464732668462504487101956101469883854282520960190628014443440296713404014432976001160269778848886324315701821474077700007233015879779745183295809140166878209608201296214416595079819838358590282971545062907678072391880736971784680629979812881050010305570173051743081702613360582016835987306203502625985832758240713584583898971665360172685792788811050254502946762622858998475919955464060351409873681424250421430117732550340715471203548181775274005028970066239363481861459036092027644222072765184743840797680495585705036268657818682373851825422292745979891427673047826654156025190236453804055773174139286304960708214176713748719188693798883810673510524800037079992193313995966806253830423731725927418969282710595693357878505101953460068305083757334876457539556805026971839190074753396821550918529857346795323505754821937524746993569328077709197012729189290372722037553642049446729805319709210791749664245937936457880688030473346089526103156552158279917383031522833633530250701281217023702928309674037017082106322364672928352458805345894013193432122483267029450429274374432115209241035689933217026779606419869457106181418702722103208537394816339149115668227729155213167352143173109086057596727605765301490048958232128877977324299031330966028272382946523947794716646462578254961225290408444306159467680273947197111644177130429536043187280221241626641502974676530303016505354760802373702792612986806095614920250003240820432460009687505322911735771299262218116263211980166789340108370525132885175102181400681611918792406106890234541195347064296119794881474960465720794866288146225396010720368009190859726080935805526009243580441833425903457773214932450867544042487467841262722146019492935035632833572965841610603231599901083381992612332752789036426687912201926247857774506080851141094157629591899118683514168668097755145783687554174229100583370446008757513526366195928331635641086596415824796952870095537911599081522726709168910811517268318457218788952612253277730098722859192607836791659081616980247328207527124080768500361855839095846670892065986633078047948794069360815554446325477630148351851553634360392138636610547453358298538621691252563051322419770930706491414050376568238112196672055730934740602669472540616189286270151162461209361157180627215741556672186115406663442161264195062874353082020056478897786487132969967586107346236456595162792356620504130355344647751187798689011900457039860523073622141464077814979920625224036926445864055622043094149400202920327017381122838962674453357102583530991456599821458631866361490314946084600108580715776085020819746912867736800092723337174781691680783174038029326594864646221586629630837578979589991633384740364265136552191967152401250025492980678231952482873231908335655684332228988728981082940589569217492742835521449065977632564015560637742013066760755896977934892484792277803141904633993635008647932366669982697295968584935798129871859878959431320047894904929807188106296462866677147702627886942133793567958612084329105583611860560049356456211019562340159695997240308631362914388365899524420883212911933214118103067039668012119209199936791500247136228635705238351435358524235475812645536671229312271600307234163407833906906640377341373341488274362103049029004023325011342614334766684238699148004959177439780961606376858262508010053280998786117994123001519274603264964086820983208556683680677629296792863598593333383839497785498896424673494914516895642207945969753450164001452392520734374625382859746324411402854962546390139214143154832183761316872580868948641923530225195758572045489533795039725028395718729880456866905468597164717505800055138572097623803461799755515669281710791726108573990427494464647463323676252183620427270407700737863728902628029590456039978462523894000566111692559867822839610950542052807200497943279464552983114823691317732497570193650285248234522086946968114301951721339393941367703558441350342340078103944372629952039044342137812294142129521174061155105037266592570675585350711765549295505765919208855369649485414732924327003140195859715289993076906252852848539037479826877714917501078098611918936293964524744743241547437089383982083758427159100753054974797270164159966272550170019755436045789048900544545265429289460958055797793351376632720485765574200334631016464435172813894086653094507783392179787740721891646710255791787095933837203737466966603775497511870387912261067598997664040201610613669980240222553451002111488130818073523421175673245763981728545387330605427726603571286101346918464785942751780026782517925654793526204286561788369929252318537109647211228993249036761842699034074308456735243269922719547178574129962137828287158497837135014617122083002551050878311046844486788609147339392188306984800986793797048083629318495101153959898203060682711386233665583968233350560933057516587957179909630878856690539652332236100872572447526709977227914012435005132699721673738898033527909423520163311657833100816322872623077712469506255582202092688577654686748464890293742750799495384822475755452233141683939368552032357243005045373309117723590385160118550032079552511221439239853470114271548409771859100768675100381995634086605929968928148157422694578903784366138488168565119137431817776779574846872747109254539983913277660411720319352414080437717989211372009031375970767018133064681040795572719637800830291531477653958139644316938786834799992338961675383743285879413500344752497135461927171586343159275143192513985926712097360645359849729119449971053828211766236861031100912755023931326725750912151032742614913950666285310096107669043251459033595514997420373195965410877452171508064220867065444857858471901239537866368896308588795229122375275725457211217586806456916663357738548815378223300940157187656832326093118935465944681566188366010335634472868809447868574394338678363461589894972736115498711498570256956835791499790821802638457310944220329794364544545051731473062276062626741964931365078119789348850610310728043029624174353691138166095938202205564292177467431188182533642594354498536090866720079822166635044039083888250632231701058169714328294095860400043671702091325866209940849403910808572927827459207743064487561466577069488154271082985963653993557811322136482909149071087814749716767081019367620322487167479666067651726315387555322678690737997342710481537267892318866740844802528153234269807417991699581977673061600876026453396356007460701760820847364059052303648371882851962204784290050516740508362017642377508528428863111825249293547571827395361067669214869608804837824242724004455671696693370277865426444385372998789316840910670633263808968134084199108729341225051280102533655114527469584319926605625528224637997379509628469622425079982070529260661635959920714462011123551283454452837575648121624960019599190468394430525799874099853028252451645933396587102381143757562331385627125162426212669323066363477780496112951332125478945605055229655754281977135269263950979579568614166230797699841622979758523847882433212252759332340292333492892808055707567567962043815047109801377080671575195957868737852732498061244733496341867814323986841005879661534403758413077081686982551888266406691258728974248625919550546400298334026896746291246903646193895754129792770137426393112771468038976920470354482250351002767359729235924975169650706328380704517739066609340671318255801836220081445935092868591772548418159354161317078484499590202294380130177281460685374274341178817845001110288424794045483129766540512038109638784909139232351613330702663462828788824493116833659969065543839975962554578297230098823528287895917643714334275337110122136793821729753042774605421064879472765928370371088449010602848532803958012140803834211961937102235057350030690817830379210610406276353294220230157018813708556612689815750183803764660555307323383848477778640358797678794601464478245940195404850747972998991713974216368650172038186969367698164026404538510121508204497924676450779145465342367355962493574828471940317184658970662323423937963755124954561261950964665226250860235467718432329122002584602942564982459800337322279579793805342894623421415474101822762716852598628452830709258306870473492530450879858202317417846943947638997701350926998650012423799887148950668142551022239897853272619572849084635942963923875015307859264055861933291217116980911041364927454163986535000872520638295281630705887887229474727690340789725474231119536228583552525844025044621521500588035846586111526922639300973459449120367134658639061424387823368983699687256808353156360442698641950722904652743157292994347556326592201969650571996885720950238124508303041588939763317897697511913271773984601393127583639479284656286937282679593227588564098973590260102392377281941380024785952250094518935531212061168099029317105511134778951596502201092388636351609818602742693902559967833536663216001839356737676928783087014047487532220941122229124269356414503013560832780338627717441075566465334856183327040168876503152379418236008242950259993758273122236668859472225796995733880022039890985769933431720463475774840819675728593457882871625349432027964424631162300819144914852751195003489970351072447851869787693858408005522917990588571810288854290112568069065793711833142100341233165850592597627609706738638955360366983091995385400001914596907925401321988006982696867032086455294092638569197083988812072627996088318874357646890227102767784879007221274499242408462375244587517548714547674277134101283066019403503606876065911361044444995944708950482673222359536045641243858545484795835427557184015650442994583004219836531438930157397801487668656804464712865610832564371481024692825384016587063727604373069309158599159768813383729880595914739215022673069699305531866833634318269811924505943719411222655124034565904274112354131347066735629492529551753455711789993175613862742647848185564105576098918609340708277130897079126810898601097993920922525459755147380520671139314767850935452862137123833762730220362085052595876698994950587894883358904312637760741850506798381991965601643633049970842007765666118703527675730058989276907591026320695053237185035286151990522039821230934064306049085074519531350993625716702035205891414187589937006378465881636351933063963349452760443372647210384595605705175961445899042726399574100019166795365808517059114902930731469057549737348525396434663749380402407092175113639006572924649318120110517653655472613568926088229955059095700039208554579524643916765596506025365639661664328186165604704507952590022113829701816266037226854412930065139106745549454597185420294452188615196860594010319439104976320260015543715513412567477848774292607500512350360489059493975307950985034345922253767487012208024022172111809340576211568019480832906153818505418830777308761804351488447438630402123524942128054982954041226624519006928703561373332144021410654189939762506021565885625432389092142029152792325832192557960140715210491328930134427946876914268713602732764942707162526537418962244043971330229145405755293009197607018254473465440054827234155888399635298468235877975005197293164589187356764549432200871105737266127088329250797367746163469601857178224582088656650749285479284408705512086132425801955824018301571130385762189832327421183033379515718005634320658233744637975548196428825761698414178289029796644505616719369551971471129889542188982949666287390736531761164802727149428457118096354169624264722321170702794144644419474524616915171882944550749758188140903717400433092776103650446567971145218870869724458452311257698546873687931425680713756428434269697131191094572831013628079411919948983639680662632470670063090732958119416320252498114461045404053319579649819130408036415014924648350149090014844914257059399319992360715307532175454038850520887713492970896330947380900633621652863997613188647440404959651906332592523954287165893801048000443356795018664966990420228599300599860301407474009310125237886935937893510156100662122301264987759200497586349745027899593033997399032957904910778469825915487459665579153541904430799113335982430342570580983898521726527027938304986148590536994232971264551830120064902817790400908854948506555950656257712947268880892790292867513289657958658052820972899272363047049228599345444705777107427511006004100910864087160623405561629076710630594902756698745939112022317702960213749695125594540376052332359948371670559244863961965217697996915903591046706080016410058265025184491040026834059946938025255620734900001165629068712320192251654173013378973024752541116231289719837048998517612523706010489093827606372873678041422000226363120149210166708918464219033137189552542380373330037935171525965646951382947687572163240916362489673717498026119401954321872615797167868140240808966898085202050058187564058590467933926992633026764218926066082832673911449353572999598312960620240873855222526531173327179374655776149531141000297283682704867049396527042495633486223507693785239604297829586231462216524440116374139350862754600158966490569682174280239747601689890929859478171607568145630168199705337062697521444587336788411685364451531672754592458270002889781453217042038542362384174900920452801612141003929520455969521737719888482014241744423814374011627092661105922889400325984926305979329778591198411499434650410329025919826255031387120802919240371782820632144055131952829630596923434862474353452090953345637703049973708887102442881562792751548322189453544669511319765227554875369346443474367925297879487407711892372021441900027581087748320932490126316059494366875935005314052346826001686990275395569307306037868454629635343628716097348305110252831893917727192416599124845405447548864235072307793581338819478350150149056660711596113860554204931724878909937561968301177059564902121322709882240599516240533146424240107748788017369376436813418574764281196027128501066251719067364211076578769711140593110677198119435393909485948487188714893890567494489941906589143825840723982451597010392242009375976570716003703919729069160011505160676525924974090646386150521447482221533683422523245361587404358375825691248495408175790060300550374972857878397002834603808532831498263701006177677939844299230520119608591345041895545178523823409949559920743692766154863480407932377974216429029299583311353154737193749957160568574717713151156657819878274615271057331571377722015524678955149107456517065606882520339263218067992993050298264892402952750884457777058317796885246670868428793823506008512416595045396417345937417566203557266583600835078823882966952039378751457564374290801938792369090834214463283495686042140940108938345558789310230068850343500092387851375254096080297945721345788107050044266589041456843608721581750151875835884072419803153001790032387283667245669854514306441537106976063379192797731423341063564488017225087427475983397438279858563997818107438358649733289888623208082680345196459066017355544105915775709685441468629883206892258788603042716427230579686722273342482552783521155331551189911009889092745354694192303523296409267832010297469249187567959637217390554438228734325052038023107114306355464961515990179593342805356764039717359972667139323676283708715642117198106586245885902681990439985614826634040798804826742143364315117205048504876198002059283428972410361753771066496065195008554454323316582549523597685233579888631864667696608507799898830922326267218500119060768588214249755604476283565092061274162216202103875758951319469944036598924253428612794124862224603681431427050732649812462944130428344546796266364867422952894394015437776437565875972733775491316260316799050375588530940830907221383813318840520171890253402727780035951242885892336138486901974833192667888057995103074976514952592508298081862119006614244457273432798276469369027701170505760049706318600941267580305452518977281909486044939216228594916014342402362549154398082638163067475926631584877545929751715979175972096194292058206464511123860687500088457440636174959839861737274944950236373993500881068063319893269925096730984630615699760586813792846781168912437980570854669817339366394175141682908756718541213098612371672078291957260204853555568646679175227215576764800417669764068941553126175244218183212406015644514257047989564054098802389318282607303436452653354256700341565449676383427354263643143545752896041262896730942524584298876791762404095598258174542664186106896642625478676734524818653141828496267558859502936381776375682806912295969224559913843075898613819093399137632949590321116924410989216353803336012914237674127280609627525299620634652474605093323030435967647426290119030461759561699582260836399661887727617357571772555661804082255646777732408824966873823736615712838723743511122817298254485397688618398213046574973732842880014906336980456905848030193916648023610549055923821283826271353242792514187718471396781632023819784175459694545373089833877467443454369756895189519702420265674592395833141786296744696549421112475414569385690875687476834975684108100084439861319097093131853382551712587085286304691000241937111596963955604116268730363280269267195638690437654594835454031946859156392906018074766443782707601477567005455912805742672477932024206607356336906554772043697998564676014996980393835136767117358464113693143228194013502861215516889750497932774703209595275710929745581419061594879172255862231704245787982609525097341905164781914682877634400606833091631689162826356632225425291618135211153071166459442763916192526566785369760527772853928858019514953103542664558513494262770397288997790233392091146458018310328806114609245463972207976382196304031140835788311409923902001245047105102965306684996056058459710422499070670312809335176352396018950032614425075819308662089077355234235014698531813376802214704594341000505412809284831287043748189099594182684044876971713815651013697233016342956038603975830076772164962859293996363255413997060560389279497361854009483597793189041471534080262937644188797894052985716119667967448227789164042743049307424075149199039627551618362157843973734780313506447391036782840759908465992237993945819929436969626480162905797356727907186074271042285860136545652664896437901992756730487524965451498718320565524680774080812102066195700326126148984870898996867932916267132415064750090468962167542792403405200670389645319231529080346173766228458968340400144509422216951379148897101033171499632277473073208313474523592550226745187151382312861228659507162958696884051822910250551243247600127494123957525925342449487174550988605087388764685943371258606553346346440020576361008266380835742774162890678324529080442631570533891320369244269394202584838547474952752408113243859560073271972413767093305298288929812238607085429334803179380412368221390333913816216869522192080111452205156323597334837527123089838613129278735033670394575531184672372112309460289977719929559235249127166343512699294579552638538789575164437459122448361519136864089334412360530083773312883004140171255466609109693596794335455232951753724804143886513077139883067962721195971581815148504742328551205120210531350689796426178456399622060618577994637105121577172965960349288806349356592870064572985848204809546408808982651190635896285604575913337171263800358752347631017910166604607632533828529932279075646656131858331606871775748900994146479341612993623585053175333984303996044237408765740050962716636497191944445801520284009079953818474851170567691926720549373139318403218346057356337227418329674934628389671585198727841084098286798397643460472357524982743924872841730400304588796282562816095939313785876761700443309218352002113444684164562888401423151641286857297632493704196196641229936006275522462842475621341434596538710734119515661476900771407825607894844196125870122952809748710699791957583030191237344201205930865566028141897973706909457874929588792479035756087932837882622935355459834187099046512676073503986278034936192153480094908450461672409144736467195437762555459960525916251423178864493734242934035998134255407413778656284063655734814977117345917106182073913728269265121607230338355680826093637223423655444195002036483241635236185102077302846276762495867294604940256309773965933039194636571025832094877854192534148182411466491752626497752323659621687839979681504404678610694071576104824513478729818742139109260032417041376253665491411390109201971494228142104437140811202033753955225846237478066566307859283804143236718501795693102079366619316862466069119079943850844438125807202618354822836670956902255627772299751153141155163046647262730599334554153769756176854627522394239533480021208087067432532453134772838338469002179462783739938027176996597543053126162056464157684376071231516860733069314477047241540688528473645898560795240749066181093747449386328032423615789209713315473446055962494233295228876440096724725126452995762104435149258596529476864823092363023649765621152296122016403875300112946886635499378179653643100471159433867446756282445573034779321886327876072870607968098268857463357548079493596583597262957236573355015137708277227892814562861134654147016009236973393699878902931581466336628573092173859395509775828339823581475495989971434219299556275548632400855756337193620065414853308317100680279835177059619216594111187494347843641168209908646895960841157423008434311240156502788633489018011118172585504565720490123902986528192272642041465209905699227355820639139398441041065329108717715876512862838536861707926679557202366660402432498044692274586190058850371218413635215068203622919115272723550301610763617967303967161000926167451712652047800578412882652049571744558589730607860084126829437599157253083094769628783780076462972903722928221806001189464290784481261789146887522118405926872821431342740255477798280462821120539376650649891468208411638911926896221001050011537502394444956884809102342310066113514505856885358067193790300075363679173355267776358923289175048494744810525495859306290684456300509639424605586418257613109133353990761060383178887321695921235319117578518767891292931740941408208297941155786907816360995683313567426539388667692895090858326687485831266008282672074525879911116762438898374024894646266930700199672900514359233123233487707135870054147077382970936603511696070160009291500396993360523924989908041548089783514987148232660567683529922291121089600412583938295986120648440482714740007728453520160546611262586984316703737190491066176532006474560452620868256938565022038824887402446923874888321890939068145631905775009211766186005824491943794403464134233871112651277112602555335959098048743083524484887827482277817230052135063750122761081779552422833992456582872401932756668591780264899882980087141210222081635558591486452178962100807691167645405396609730880648957730871331022390717759070442892471349650186621498220773125070753113755646592045037389078697344725756186793441347755717026323747702890331094781948419877269106459092453191138986436529545098798479004059280945778012353704602678048666536771485037325912642494285328712240241204703015313268974115949902308682063767755474707294467645273213505154377092949290377687579296382387322317299710180065025126501762036740664083732370992844221425065069537969072081971617433201095796131449449011610322900478074061269376412237650506980191681584301518959496384189932200446631121321527045729252265409340533213229237873568345598704112289887757020138935324774399630449944596518500188662294156934627430675222603796794901671034888009321073082667555529875406020730757145703542337446532725751898644516831596418239814462275383166033944985993723363470474097113434815626999193525674072307812793626768494136659189917848259128159448630952740099816984322196863650834640857323781737362148966789526343143205147429228981773407975166596133053679998487362819282480859592285796334066389820283053342643863703101722553744754455408451236173970025954786151810177526549445210074851116590986209697610646788322810107374071932893360576212237552316541156446636752161869277537046549391833158238940074292139305319158791415401805137714908543330633977323752114126618200027003054060122337964696542205733927731681511364571863648308553756812511748093195790361396953655918048830628379942980698231847931414929036889812055603909995767371633802329724743858127764165893539853973312398208670525242629900749750340956532980540893240771005846306717391797335258613002215203832808748529547631316128749686937142656464133863801817583406076836325808665045597808740226482514656133191141929770980413964582662891663163277613813965838015728579762164273027419681073312601670191526507775830672139900235932975763535764933266270519116439102688086267510395606257088033291944835024623069834891021363875561173509547485643247103301121799059053499657827990804984462916745579997561598541502676121007432507928158970585457401949229770628190481069612412759059857219821429897611629500682700108323359014558781768386639739096244427605430643706340173580911921734151555210644509167969819431774719299552749348502501236994257541987543005462884007682932727506453788112551593043720541348189552813624644616786056651319064161438087805060057277491342244581114709433328318106925144834620336751534560222605302623892019671792206253144493502151459152880297202587626611118356443730196202521944810393997835264667274224081257591223482163940490423897672164890848566703320753029567083174443086145059686542912612142132357762073166494461086402199874248750256724468338036492368104981205507289783737698527251617349743575451454978022613143839581900206276989351104178056923055581125391487366776165006185930446210824681820541291097595115239055918994494042279349869965887207918709771962629509591469501445104294836286678457424187006028827332785668513132579710190472003122250253975133604437683322462403386511245488518035482617724428032772379996170237684115019628298681114250764961695862714793714442610755005464033322157665273098662613268525209902728084359453643597058617608717998094804316994189058072187311865597713554282678016816928543499504507043625593498406823781280777453880311301225041904920624514501700731683632095219448547890473554948082867029011546448299336613881456181067655353816095267636518023817302933567017197180686143634085872459826280200447454041208888834437666979999113138096091388248753600236673908370483056251622837367136033430614200078837631054038148338360339430894512485391998183413644615064403065256693933136523928911677405313766883384643918201743441648085117918936673056470673213877649277468180426444736452850956504921867379711591105964323662875850389316529204653238212065239681013001009142932562022913067617279970848144386703341259799717737279814427119544961119283301021940783910894489808739758505187508008261425601148175016927219299245631098930565618099249574505308738240570940842484326360935092942124222174860108218640593983854383164314555101377465938647952093931327141444823294261460678504165305132736729017818134603175376807754688943577114712924367528545756611820376757377808537990489168529403427894550758218108660379168562828339906686811976595692058479310736343452096365458395346600244806396415000988706600357369089606166397353170141357801179987637268473682780084926739786533040603423127010025470332666700139651789139830370888778894504867051923926557500861739273772851845370634721565775043678956374630917120304828694447383303865023453937985472147255236735096667680851964239466063016774956207458241416079976382166076700936594960782533370290094437516522528772313310834078195366902715799875781013959558001131792741955971005376145905060479828507388370965874954996922332530489733647083802179298826380232097748911822839900388885114721945217572929252198888951900596238455757579516206093824863796010531639574903446121339913828032597931104500670442441893424678686914063957891468728657135564491645569602356284687779233112936772471445105482966944719694454657027455480759325240489970249184986467628574261618457433286955305855676185082522503243389978809697737908700317679958515394471712601428412144250127767498687669989868312646126436260781252531539285859932416013404446829697827931029529973872395551875311324917976472289463242695616901409067371947433552621958915381316711441049054951445895124764856602789116568333550675146018992491526354735525820635493053422214676587354997544095655245585368574525288351256619850275210007315278137092982139985120815363727853143270079151745987281418468522837181579314609303265573346223831861377627547667484655778293780009186683269251135121494013891252810093861472581009405509201764265755836695223604468191440137187191942140336001138255667322532069771016089529811321302449531445825944836151686684915772358184969242970241843056593143042821269271037643521959060231199329382735516330645870764517032349332836294603881125505752978794535507149220605464900625439514596272116907282403909845496211945503234898964845788599038248645816873216409213273589827067430443386747766482852958643105452015930246578921070846522456830013164308807723961186931434616570765099244478351677201787518383950298907328985810968065213144802944573636704297773526509366992521811886861150309601606233351503578291487887530600182964969046221505653238712372737034744273670682461053850372172436233365395777043301574040930878118764551213139069284322575700796148954877338599051897057438261160241086455602617784101461161592353585287643703759809334700852988362836633137607745429641350037956801569263289414564289392571575763133656825495741595916389471315964061540157233905338510756127109073787908991414728879392538256735810728826596679271226044048306561628129591627399887374443914427618583994648436850659164180691170966475537746346258077893412424319114465586139088016392837537860214496133722574993587557995259806729015395004574588845744344771789747717125662045334771312960462243145638568886209791715109754380850073632725192295004530552047646532570187254794321214866985804893204736054857110108151008629306231605158174380298593339265656015142762462575827289120696727511744403958704914445162044226221085511382067161120116022996057393819261711276117542095645698580104004123779721248526698426460435503049672872790416370821058229450122134607886119758820325959526996459585525468497251163854141394211965233228537284366330740808904180143973955699274561688695048091766219884031742514808220238351728063894174237637009147228330016807485701568062498369100248682973691178697894601572275325031144202278768651969609698843663160504873639962799853529218481859478007584891219816158300754314395845668960086378830940667571409880352864276400581225475729041349158019762844975248479313869056741115737495225674046258816845779569079737094104351397673010740371127537556646313765422979712247267637615492613425682635865391300542972119146835666061203011953870605603322896056793242582256993610807618008932527946304086951759077208997323314469104962758061001953270143514536539511201900999185955674782009952038035402227709955826319447728270495183190657751651764114295485965831276246917731859691532382837678467622849492746474180740857227033266597333354950214946090685123376189920592511416762548283611115283557823541557396883329920859759533720245652881134997642769020172322167540140705091025283626234869639925567326401360414336028260373407940781843130755851035994053532560997420981606370525220475736384592670207623673535034684111754784475943299096401327663564277719324433359980535471757366665764819573968321480349949647159909966650208742428925412874199603407429692362129753309743449507174833555002154915021797102282543011245498884023633747606469029198272467657726925123067833756186890231888727640755844015930439496386718644148552714028431997808584539530492233413907707011704090796358265904068800244878785197090598511279936860113541347926517403796602368998959165166228444268333024236426486444253396443506804032620220509899352720072329612291107577503143120114747547183388954914414168185715460820690351863802701800875233302911151787887141291988206008228839955809679983910636228035223116044026428477387110855953972980237961501820658745427338712057907961099961528032856715514014422944597977425272880357918108376101075288574915947801779053379316416919609272270134699990932427135201732578046450014227988215749328475564606027435572480422255856652091354025005501206282359025518417105632383246018371660539690920018945279244570268433621588863847266579521018519794223549456315649524062855172646119547754889423657778541255561709915960035220208632462330185748153504075215153313150902339523829942082107515028900931541360414118262526623033534261180237596694605609870153595423830073530662758328691346744417410239238994882407410961042477310742434285609940318483123856014946813054662112527335194242928593501855499142695369030976192658243230240584556589498678081611803537992368818731517848843372338018318775470293360352028886022828204533790237357715813486709566088622997058795495235140570546019773603033343872733944849435004205103774367679116682832474489176206774122304931687498670770206537124476028392727755123377347086701159177750455310227197606397276764833390738038724979408378723665205935053663866727837502852802434766007119012989489880717576766623646918291780719799120839527132819273161293540563079458138159575615692990912657259714114355507133031645893395061507252167935336310812178883277784842352273664631357854696334905683960396000713452545687043876751120167315485393364484133832626042571629240922520097899743244046448557686566589538974789050845961223046620729305863008609927026525941960738890435137949515610280577066321995212656208449069687420817646730576627653840909886627580355579374969944015241243772598410503383580694857409441260141197821629757647241124978164595767857780478818212365722503953867066678325336632906520653535823678325661802105565471208160567550014469094652861815077318401823803409887982745386265949754045341130144877107606537084857020029812763522190209453196056825261984444216684663493419379875644857324084277383921562251773336645337497086424875966301167846477797219354012344163240394377317985572166710856876016687238038108676555572485251065278220056392432459789036661674978692758142838170776050980991382675270383273170390031287353642238477363310190176889515414630365493364248435746428137741063948340654241368108187804390138323255907983884960000445875093696330125706492060821021321404469364770950857973636049804492908521244917354411085732549485744529186587477739653703534977551283034204249294629433597786516029643375609990458512932238476381653119530344305729737676107268452623281439159558678114998450134974575390275002179833260163028951446393737423291656915126047558763278045261307061613233828636900417907710221662349169432216556518100667066631888881853815446725137852101257791112603059938936216058189871849075017329662207822324166349406850729971775999984382714700719047479556044564736856111863340672928408879487745383878202189865143203862255803836561335726796810570027774643563412594417100923292128327569200541124113234427085431537395756003582319460407521552767151632423647489732598906626601103168246575315721672265440058463030254906345996914410150079458136768421884362559620696756114113865330719692962270505680141511927395909147069827281303665898687395340647232592772700773338706252384956762802610524771644955682454519155851590083713945946706227813222212248422781599810765331429034967606656554751838171214801178326209056916639196564254676386173256717313290304899012258057210715400330559074195373113061910638536325335343907805873633465081438554854275479506348783933560483587768869290092911622503506703852140643647873346214158117020222606419205548349932720071127426208013072371490808106428444633288708471728337916308527983702278853880838956575358681548107689256094321680082770557459897065913564045532274305079585673948130679374436345886360240854973514354195990622600070594704732142986156967773972959392992693743535351700891828505556937969645509110713711276924136254979484009851601917921312619113530889376777270204424288121001200401505730545139165868232324815218031849174426731986470648593202193747112248352135629109302935496150529420629444521677744003706396711214055091101704630872241894284959316258164910062227030595349247479193366110604645578677648125973593135177933978529733765078632238012596526220048395289529993933085331186898082781918033670668813262974148468587284181355769021621166683193532145519979029848024913321105558045144927130198424758109807858692718944958566040537059197941329727892675978122204915152009803135715740815599777991437043961071719405101337546630305580617453126424531184599685811726868102667782853251091328977055692140917099444885417776560042348913078861847155991277659276905163414527197268182247668296903957708430927784761827734609634479972909585953627453508189083866120079829926441412469729234967072961680044994773517934015051060905444646124769264032832272067860539805040477416827433128098635311250026019362430615333331080736152215412632775073594367352799304369363896226634313834967280975764714016588627956321889265715951773469587101746514743408190739710091120026167153080226873628015652633658139006981071132974517861847894655026710029029645203019612395174327654027497761570908106252935377186511078483693599590159214425758813000172412523446302930700140687729589045086794681184148590187700014566527821110563480487247136336052166575917207421909050764299402058056155566630725840607772438491031784903501841064525873462294223406496379571292433014038535067599603016188856041718606132531071191698013646806288984450873704270938604714385303803191458486108484524723095087969002552378890703528728423997733837051125589736247986810379043321787205630854193673144322726483649849010745395404482851253000690657354684508093762825704473348461984879395058293041177996588688290405710758523380338895758212506192639496628623053173502632847676187904021791127908424488717621846789194534116782668388142184284347690504676497750934859795133154030306322840990977765533802366213051285313450939385339273975780388721875348603704466328232948496194422804779372239802817142473133085420862675265220265131545001706048696094772481183007348902604594066972394025656134835181177963188818211778783528869177197092242105497806413520005954200791870618783776708318517214970861511204374752202797201473582607683259453735621393028316800645813170402149470128022657872251742031834844458104876138002816776215181769154444428274493042632772128693245685818087431041697471033196936422306817421152844699431339579187369461646312757120727677068169581762474213334414603959625475528238155359976161150425055983171853324089382232566601923497905191727500824598094157208794983846727716240302588286589635346080373256234053345818297737669580144566907670267847555282440460757725543456674398889744835921843948258111932670624945815823795580471211258729580728978753703386788393083889384849285601523835941123449239942278106284407514842359032055780439283190566617220436398786077808271448422711029035754031687983283612124892680273145877691210161888120491316800598362486207635006531120405813515862406689684375583328155835716057718073132218868700265290019671281469619503846731801391586587797275461880680416745605641779138682240985077019520296406820260137704094219217941931645796809944921233688027030868413697336508015422771787965753383708586023404076386307020169361072998276937663467385328987600333986045301049213060198242709962752280814493577373141133631468615869642617661736643239787788793431321500728760186491105751735748610851546278489421144369109448960560003897951576990139212315886150205320970769006104371102116346115635705402648296474271526679451566505780914999777121848200862600088047543803209748104524871597663453492588219748722929797422516847178466117881238019295227536198470170068341863971471863574762690240935465839970296621404763032476449249077966564129087927498165547579624317670477142910555473955379060972495571787916606477481456433031843890287032649366702336622303114928545563192185108816538326652018985350121136690816908671771759296264995944997156161625197319970339416359541296700100301563240695548888882699811673575971632923262896438195734231987020385806017390868604275022607940715878286304068294875505273881201002222049417713271460393599031508862294343077544771328023135415062037970082755909095409974177170237207727143045044629048923346640071958880751907937335832599793836640302534801786691277561424333735149997509043708054573711750813544163289175132464108595440324909120655864797101888128667347237780633031068970705662147204032354376020527685801019304144404194381719513660140165267226568313957062225963015472659591313759741523920179134027311409443251483399817916422691636176642926610415770944094905230805053270222248709746305754934486839827668936208497134382337289564927999540054256555486544770887995518684699261799055297131539349292341605180394573926899975824140786451257966167031888299467242331281576556355201876161619478388005789492350130795996284494200233876304203531297244990727503535312983304525664873638758069873182921449396796874569287230715281792958897162205765626503901101860268904816506903610205528115249636613147380436826730906997357643691761518762725817118091025557262433695912087882303408530613935403130010852815072087334354566089065398511286216809054650939456249919726976490299741028840456226312189385127272309752091128671733240884225891119013748876907855971013472105777094495388461672867637956233170399391262437553571378830174880474024897585281192101742827815228226786758688985402707173857390345989349722636461487121330546930455852232424517575990534538755978946720664627504835224878754426835357633267738467185653711654726629479757645221387783426240342617388502421406998597157047230510534153060370328836151522102716000093363652079317469189819743952649897851718205929239147504712386127438362948090060713373758981385036821475034637226067533017296141610268828805723474947722375055303467065396758289146274245728124654949391817907605862798410289108565752950898474975420708475265943988689349038615296734883566297311666604916288879646585975666688650858847831444428290463134581697824737948732415049244617594000626508401628088746739230470761421963198834390615940849532393716444436852928053153102973535698614705109756732247991705868228541242611110758653682723334422828057078518740003074949490629946310706476612614394122886173545243315469083226703635857388572195863093850861914214073123954872185359571616964796561633780513847568562582666756082199153919911233379545283228303730140516613902524414650488896605163064831452258404769243058272668190777464008277250723461522723829004214923896462057716591456863906133649523165325798357490512899583029463384601940265312513243407984209345723526576077748731250847533100788117471434041433209577208060227419005011060783880232898753395470801465403899896017336363688456869510144473278951746222480457526101379582093057877249005883684779684001065834439985370435897621948287797012174675602312054950719914298180365478926698220861119194012903692662783287327156074316470353689780158108572280023894984799359183851538509151854228655994121004157020932503815354336830845490980394250809329404087414391873604377357945189672982795845625570572340498907554555521301292422211012521913474115511916282012039917028159195977224854916740322568963889974585060715618608396391171183926328216213858842821477027206398540205817885893618633478431508413490527486279152184997652520341284680131086971393094823065888108689759408856447055192495931356744456857187875148986263758011829408969072311506820069000652842446015150650890004555563946712731172592411008938035367876845896775601272299572797183201775465363868200784770867213560733305774306987005236724331454187645038647112462421077347904567577608273490938561564931694842813830071686269129272808190191349483259410405795278742273254230947912595306343195921772594300302112575857080953382725521267876564156595864502597768773556655362202228467527415828727132026810942156565413746559939568030250880943327804885649064954008187136113375214179508932756846315154600683064438909786349668089484595430348492633614568102169552608761714202076552426989235830451147417653980177106697422608038489509913735862317206007520636290953402138039580666904793089165860111132389391599428668481022451015378780963808444774169936510577304132688756012392031631128336044947837400300553597817930452223116388366953865904797473379881246370300176162576518932518677934808315654207358934036743962785464521913419493336241495487117242624995760551364204426172418323721390450301960625605208265909007856888817141380542725267319507779098974006427812492932682091673797362293804315658850905305420329557110445964101137210421802913172801943734997511180514549339122224292458187749484329167035111668462926840165458131488047777179065955792359485660756455179998576342930594986932850284797058727165045400732061179065527404655670539969706104688534415885050249041058756124697944094104085772168534540510947043310376273947560537997436040631257283158085895661460829539947081420239177996497687224287937350431195663213198286880892816026460584371708379168182650696054621782085469133236899001080385649854748245189348618462071108605994233566725832705182554974160592072674912335701071189765726045782579434175519577311381687771519367173804587207041404365487991513206563618765620900214008995005606477240325066885646648323077099405201892250121371563829037704261975309806348915132834302068146939360524283631708736727591426321779605981285706750717166383649920577644661914799028884709948812604933981681459484041514516740815006846647710732345525850074554502859492910187808394440029820219982004236053360674682875336755846440643513546157269895770899506538440556219732816342481227820850899367173291754669606363909617906246766929554754703887136842811340235203010839205054497328850734589178283617787742906447243169891675600947180999507732614617241077949614666794469379958631717926007521656340230007868748634612500747413910142295895450600308774272657266889629054332718839133304394238313470083408983795854478746817103007771803062820749768746612359215688015725864435250511443758990576056532225995416145005004682308331078193737082705678241085028961185375073250644808740290018219289479680564776740667614365781948647099490392903851499258333449797862928241336705184228396611031537506849998884503640561969883468238080621230696447806527429261255908293309940075133381488775858987549251460329246300029765439133602755691128635057237820483779581603351625207720878088297715384955011889816122245851032591434475242654151201239699551503672905417142002018753868165755667162914989901968476108880552837522169155938318531076368453524994761481716888114113189126179072441445055111701495592087705006814722522524316012451129143852102432748427591511290113028982093979300386886038194736317422596805702599904500363060724739286749227377054841033078801360755213059151864430361807444972537116453071366884002389537969200463328697718174414692058947325573447409765356418691044723631916653588852227865582466485591883752870875542201671272571023281608811122821668790975563790300015451430782006379056742765128640902443345263498381202387452575538909268755229521059609429844391959977673041782082769336624289740717081527528002897420351126275956890504541370071695000348927657098650162281252787621007160397371125651246733423867797381300732660182898310142716770214781256567453973238933199951193018193760750743714469189053684443548761257988027694720415214925886030531979577671903142807377689584890412726815958777317551903125810674337053990949172319284956940476832902645162166192303963247875741013240683319766520711225281958424798390687802307366115124939370757661804825487571959436441231981811302832856780842813537184693753896748633545331149111587884753811079642199085132105473189315871924240097651344164619621293314860285979969471322945254672522826805569778550459447763351038748874093427661507825624493482410506940873348666257447726383995979704494260480110885203576293946452581101497488820578988914942922243167939572812456947889458758908899103710942873499244987646610517074529879559119952430967151674492459135625367342393081985374528729255258456135782541642537087531678867957536932318603962323271386131982728601833583127749694859216172663565144503719362873373278898759716863926126936727449419474821390400679984825018087142404998139622881679257706653004310980728202262341901312532181960317978551037514043967680471939954524637662513215195166822595143188877764658820955566324103096817309792801900780131479519919362224080692540210755574360858429053766617600442359054022480343286523004705213000439071749715945377771752551265793326869644781608452034704375845966310268459384064312013412296745349182369347931476129819283584796554810549148362237297367314362551039069672206574659438972116609473076450346097164776222878115849700885162661733939772406769413706370062398417226505075078883617269440989639659693633953865985803270632250064664527368660524603547613102499493661853114012621368384422269986250181346661267644238130951798133024358042430256251672129695058919070292722107057954820377104644007299310252168502663710553340753371380734684989797110196263878037486729700792498719501440168534402516873061154264791711003037620173445743778577642295839030035733073163693912499142642633588852209037856430810128691447380395801871702851836396556705122261557177393765468262522190000814289837263539931067606014453784269906739421155577897533340427532789906736278209608001669102628660648007047941057400428333779303262068254807844929195944495246043817052703311327903676530029444046666538778843496883281808526201193802086188710182901806215157091757990732410229081683690865752405172607338244620406618528648512786932059078900569077354430824375929001194530688476976222190536653176140828627202573397515514747310429880039960836119661792874976124126693187358711914570250775600894493594125952857489554452334471751097822221964395709147059326271613316224585169042408275610795462748783381626611511073248654976052323861924660086282809891271138424730313239681966830063874536206246581572493232703790399502437315934684265485174160817274395903163233761167612097317977675376524963525335723549680711151694769883241347377164126578033098974278832909963009548819436759807086511219025768362229799038827673572426600649443121927486769030068381116358685618444313175492956585850890630187927425829191062284464471805675154169387510668540441978376943693165870786254243622415188286236176512238708794583792203679108534720064144367945835437106044640929004145402666573620237987026841777758971715763686909593940326972730980991467151449448548783468095749390821049900236955246036723030309771728781384657609254199059939325303050510326466650892893085744573693071979649722394797973183104242234070405869819935757858057333794228436345072692427588917380081366114105010470955924648178434425746917750232799618043535851528888796216027297336990292083548204799596901148934777658904428019033888123763552720395779741728445576004775183669256012786503816210143393468137982825939300260684690032720317689091448202490845565635502269631241133678300795793067886278581599241187335595273680123710348012158535705691175400295855869920630984552147272843584398714394006029910618398162950001192142325580646409555923790442476980559762662184085300972441609313518196909636123764127750301290908833855844202251512999358302448129378818190724645427821023308148048507624932260956090468661353435436622523052801240128508907472367850922850148626511619955901463398003595568834597347071465171524395864308916696318150406351108607231409588289685038649964949982334725828065035897314831887934721101127375905294455303842721728400522273380661883530606674991454561287447692162950476732401575180848129079007187014982984447224100994822355876575182783349457221681400666740900401904222802468318583921728320899497509950034098783904830542802446053384016404270355639022543441322682387661926749479562516670692944960376409005105837595188336508153687117390655029389455943796560729784235425467707677874310124119779659127373401279938102476593929560172341423514763371430041949984671891412394492524592804958162946488314643143490095902493052912595857814605613922163982356897340365453053666196173174080427627651518307463966981620427237243160254690900674570594901246012813314144638703445416878941010908463126876009934122872424511876167454657604528100397664754409169004676362503672820669808815647611793174342533928885099691634180830602745595195567284622665924895235031911861690187856181493795617826777703363642810780091649236375234386693028922322049640680500346882419926401482525119576471729715307970225660801623634835000344994611337499941967990717505608137614203139928463782769183525413189902086411061632799940403658602151498162095950584636367685811146821127131962241086558638041890281961317220290042219896923457922176629697187472539296547012605528294682540394992435177765913771787651539930063787143663496980032230992806344761536848677867964740805378336399766873309715992867745638424247628559183759961917559221802744974210660225254038703933283358616688705507664883640039598200262191196590673968045982107981321830355468464747051353203171743260324991209046258356731393689772286381260135035362004772027510712661614257526428222957655572381141062975984930795418529579980027473595327766601936920161118411727822062782330961025806490298728859246630915004331107739966493371798628970748370540004599015638139768856070906246249698044853964011398539369822339793752520623231252882204328880550354000220101033959406628956039209547956034830016557951617554181997832279903284502509873680641648766873335582504538174802424481875864587559692471383617061983537628777480110084272147114389337616854723221864729345741581338385907783767127871907299325543465208488051471829966793372743550150516725538832989106999950035611495295317365426580924304414691953110810133122042150955220639256222569927136566476844777187500492157445449989443657777808476517913481904780013584476202500896856199743742872112660111723182305920136449627875426842109130148701052078749981258584783546650201452287022986856014585305601550957645600834720643722949257909843921297436087876340442529090018083556047081471893024682873575249058152273249608995724758842546070054307480446782560813377362601521341428419431995343117336530496047482797353989514329640588280931467105714733807564296660757801481537106962696817236213281321243179109553542106292355403137825300543052992382166427531926326466602465911337540834923980917802557406239771671659527991979339910066071919701228842684652292440730301968047458514008376991394359240145111721679696339224089843850419966676079319878413289834675822379139974647843698829881737772351821345789161270472157453560221947414184988705088295807319889546182669074512541813344047505899971347804005836543494877851496490413835017960874009261292690348762128477893398044171761597697622089151471794789095732672951549918336660612097825239963970812485518503215900601566955314285875162304380952627770073019163960359851534726718127787746094196175310790593939954950224172851609921339117011442197623475874358482201375935936580686377957506144736790861568179372762034644719950936028006651025645438466409279140481194532023354729443944705358976827891407852965974502832854983863253791766571459892071986193699863572302789762187980250987112732173272648777938603840648952263621625201055302372348778655557891153619401931230961264156499342724995755012525816646707662321393003101457189593290027034277413966031275779226613621488705969290036654497047989976867586956290066756136693142223734065569821388936036459063268054617776983540079732745030699037696566626075879042462501453942272448268784230529242498825158411894766617214244947457160779200789370135710229300062258220525085667132030133032429443508832946388095109851972697134524335617961623135128839718990937596743149371380345143095897090108887665962350606782194445417711740464748388655854935249375336621806024721740677095678090651785512464403183176904523886199881992037350856551620892936151658648419610323393741622086791057131911210577045967476301262550763799465872947627656741081720784085899913579940462473276292517431125655168491351125735218854485508660315778936438528696681884859043298722945276839844973493755009986416772534798655308514765772281923976083014153956061412898501476257497759358114865379865486689411930524093558692685726836898376977211520967954850146457355735478499858423854523407723822932655655293657024468597701384426487068982176869801906253900133709330171000455257497482895765272867740520604541474675272214127961360619388189689612620710520458012634840296928024226028461103718967153531107130070748709425084518617482497746732824955260530016353089492981690206351979126315393328894708138695264247126557031443801940644138408712659643971954196708211413433602912040579922783920557440028039416376118758888069799549484936905499938340659797432249543042928126944256530415442659985499351066519863056018652805102623755676037038165096677218056817264807165608030761095876893376494022957089545849429206168868655107857908662245887784516672564412327465050362650816916987178078191328243725252370588263573064283037930746764270485157412397388107326219844059037085354860026223443454825415955688769572279695993714844903531338035604439738996351081379159193915418540158750654366159071089646000425038583510614598801614232667704354509445004158901488478693720376365102086437214613085963654228546779432410645070559904429709961838575061269526715355553057249906821427730315274015365332345495291509507088465990336974341371778303559255385550420037885999717586498095959462163689015032675084384501472876378209815488116538130712503699735059619552430599158270727717404722723781001433049871598496097781773752015136628167793403457318826722304901390568561625236499387292613895351359158202220103709791706714180569836372171673429817863993289517524864523852148431884260675453748540391514594018141641210292903033628459534513038751402487415745724098448267234815072616407053051329662647460720879129820839155234068361074646995340724131439926394980186193852627052163928404298899397417176081884520914451929468991291505665192525053797159297854453833004978108645321051274607292533014164355733534357470549030037104378135462571945700081594504247108364257774039749978611944057962363983205605121008192852870011553530256526570030780594590371353187192967430104361221179475679909355151897043932012067337365341777082007864625765367403305497327879230130040773310106673588911373296426126666839274921070456864141754440014483328235691315742648218135170199621411399334738298256831783443126460468101351914297884421762152017720688076122517545443196165521645123537524574807048558153188674793810159828620587372869185030895361169669332539084322323477578695312697583552010321540890428415211158105864125744433799052926787187040464533886283374000159866389984966738520291022426794290216069150832704302084212094753667595583787795003684988402878628418750847532914168825526260663960168396211878824589971525720669227368956200687065548295575953512611559742212725375559863343003652374689109673717891418708406144896082585889586448899751144730403053571951869109738937077185429172945894458568651331144642093834397036362435831276002181169068088697429494739456324566312054537038233188982401165224920170570431069698689137599294233349314524254468460104197909090342251339892761668684949175512420280096298891353620400013866585653716667507080273972013705781006482794447685610969003595771175219969924346507286573848786228532318238253275905535304470056737248073305753395663418482135192644114906084339516131253012580206385692158810394347431033232443373077947662879033912287643119854023779794090008742494143950983513537687552467779238246123182989828918017884576883770445735911457016863989968365003016616353684624411711893017949135430432174319508296310636170960669321264632365397110080052897958036201557213712991977788727268570492196986955571489993178002867918659951245771441586653010711053141716945061982782021006943966866559513154361116931725381232557306072310250731782033481228463303713057215869798001779019527536719929243347778297133639703503250119545870670298753888625381827232551105274571208767200760599057990699136196189774203038492187765174973781426179304019620985234652380690755624123378610472911582093224762130725382694770059296913016238628881285147985353055324533666407328402693956499125172277147663720781750265870503231030993831068750040479686787467354164981823112813764451381041128714695652625431017280689487379903579175788111484477114662406027933735271242236619439159934327348085366251380580038565949551045806057387641182996943802922361042940909452835397023717396385429270063601949523802542302931314356496301546127553424909775487271533576644793530896096270851001209818183496302842812441029882215242410885753802361433428283085572825658247132173185088816847160800724560575438448317361516482003424981456955891074159782484741550025587734488601623159698903584548011096299153993287605060081298846774926187119890922151358163802496439903751472173770383242125487410589748310001191120125912926807830859954999308267941409824798440303578721958159248116282941938428017021491304585608381757122996299330342679983874242301781744006318719891716088619377835570250551960538853429925274249019357868031578944786871348384528538040179663097250537811872732134405258454691243737197186778638064089193472119239320633322523200995716249451763747465726057787293751347575487100351623060387646648799125803205094962562007252448693848157585025309378945752272096459660937044827372115444549439580189143654692347714711309001795852447917101086417077804763678584507305624515586217953932393414750706206333662465621562426314336165242304594825521591455995215898290838949254068560809983748816592705871569962177040625658745245194235599073741826696037346329548240327419725087144348383579131161355985968179850470711393857588641278516326820735410329940069732031933025033429761801639831140093366374407149232845415071753657709116875883282844484201336167290936653179834088952988681395337353678054888233219971747014360833213427356639447045130106005867311652391186103874903916619329036489337647398232534784278592827931868476140358387028455405926372297133520742042388169482820860994917755055751960339081764599118576125256761149252290578054012726845881726064696458315866028066754797499176554841243122472112705300056730995170848508148177304754985604642792978884905412392110485105133565878354424542613294613085364496167797128622462003219010949549504011818566356601856724762814065260593087782484148509618256813338788870284852381603232163711813046026215114369472673791525052719507656426628921086525508275516129063930892201284932141688918287786880240492204524812021569578528612286999494771674423762721794746188329131941750640384368370084972038478856006589458184757531469106303746625115373778145288551167231323747518701911005882934697116119786326337585718221880536702033743143842503371159890449081268470818031250707276470746390311677050711990836819128350270456648068307337457587175220755271916989130164314830700791740612379882048246880256198319154571710343528396077078198780729670948751504557871283220587521562513980089962084455580896775522233524743941744247927196456675733284938207775945812844140682090007833472740405889249788465835609702423523818612717330029302961719062285189403253228140516605156221326083900415844067212652078940690625534227638214051041724550128772368821907044356247174507329242383716335228744958037843840735881743792167671518821883825736442935144230745780369540595304766450436458598546369014665408048114918404081211649714085036240213684383324396338447917801351203016752442288829181290014286574145841622540404896339262002972093913615915081746863599283391096405272037855697802052039066794011100675896042957125254337337800604291028805786350685450979720159579093838670302884642978026339160153667767381188712337947899211588848799916124504522156423316604490752494595023950476642102742665887992433916733873705516060074912600347982653290647660254454381751280253205368211670981868790194380573414126471165346810358722959987457410233794144071757785020694472399218023046576043312111599636516029681548451368899291405806969320153100130624768712391544106414182434310348944664887067848081300275362391314583330105289208858485069047534484907848591216344912241084123971079380664869670380619062913449891946183507295240377866600823551847601845643977484253109572228890898758663189433102336797317760638128988876914249180380928626737134333820015081303428538786374811133383971111997238319261928133690029394745607697001375269157431548809571630317719295639210406445893788429622537871233246976966044277772679035842274736713973187840831820952376459363154190117194987966373923383628670175716061844049245888777974872631373227277947938691545855233261229752646321972953612069290907519921190451541573666305448204875693879272516635628983776519393464576794820623639148684145501040504540317830262322709265765239590245651459268156996595856746357266542832696618983289054134261485709210977823371500808865667623057119381596600788187723796684483716115721256708814737241843048360888304760335192136292647040426218350050494139900344959853996286109940387820204884783285866126079338563525972485049173288432870156863995839049576558587203604371928227274061025075295719243323097563301354620185542228643881017780983065735601542864248303899303180512371501645877151152185080799338069024900574691795853896773530136055690916286512915952412890709680372522861089416061962359584671613014680290225891606368662699226162448077458630732418667292842808593673847950010490735002476529651750525182099121048010034202101494134058052324872036585761358071031457808749493842259103489529576895911832881296120530741023309876931229177286083900550800490438508577854989149241748854312727011717619026967810246098714709377903371002760312486277600228953015995877547166713563976936994597741634617625227601800181097799314502163198196225902576780640377152752563791738388270087761511349211653451894750679143975919698734323064883079872084319492240065156539966156172762193750360135314569126753441055093969447417206249227579684162066423007963071896448899160918328313477909438158342605314060449488293246998790810519290442258381602428423973951145796624296428665789190467157785757802801299705635372318541183288523456591295254779931828502308455400351711936799760347012153195369941170012162187824955218460033267631748711572629248046321034686767980643419316857782373321700113447882972869467483043970477903132231986345869436358649411730866110987032291770587585245215586365222444976141714285581934569161732110538866530304400229506098478550765674821509580008401089947868656457204704832239262109474218600929637475271126107985303005615842454732923513527465847505897418493363571533874795165126317463818319794047518263481231308521161670061922389724377224082336021405647399509227284430116055727780073198636304740689996830222053425842067472026664024835854990059149492510173618295358004133788066481752777038095157953435980951501130670707851057178547828199837185893423550588475769341517964628214759821219113665200182218249531546044599504569865791048550923412363288080228399880635243076044843562633270346892913015162942554807215914717034194912170819010172417658264990586732547397633825510745976227131707193437399470592792036103757262902848736148223795895113801672529742599505297948226929965212541213586648557656607521317357496794029973618690527541976523150520461755204776170166252882130643685203403028061660326467864818919968302638268848857024678010727636357684927941978675645313101346670038975262456918230524236751794991863279937917092454939166357739416000188394905871811497416916614529491839636601259762272677100571807568126675603654529397260629287242711720850878918893197480071167866342246412933741542664822989999834862880278311517832283396254528068193695658362741857226086860968067771297398206485258545223261354276519697488825177512040508087368773322908549784569045693651247051539101420516102637208298067942442615847612450330521569182697278027196455275113114554953875001541053921432525436594950606810446963816281606761617588919896669952112096780765816305145088860124372289863587209342570961783379274447485810232676456526645819251851874728237102452983479992044258015089342765680876737758857414871260112365738196545513730670778008863680462881367486747801338662275125582734037007508942686328038515822405121430468576068748411514254335897709839723275326190916438232595108558111383904874677619916059267089881521934075916245256223760131523234851052453277691673325869266472076164120490770297926635613882421090035859831825047783019651400838511219418726938990465824275383407141914632962642067262546961650037946604416002960118266272392300391534991372303846023582191418751723657863128619189910381633977425153540460852240704182151259688113243079818093983327014154578113219077264546685140123003726610744001362746831960931446432193441338287743208657035612265802499583083295761834211480033503988284550575502133012077990006849343361773771746918327274955223834004141622415964181102878307422414854989241432777981307283065599614664370391631817959725770675392789565900097427151889504509592053537162124080552644887649256840651595539001290596765180618543039206936821019223995890064776700623285656745190152312349446556121764630631408531844277674179487665060547580193741949479240858594650421771493412872092354820010164807962409296898440997314428866895815896385937147669205476314154078355311192882983845595488875084848088159354856999726731971343224740320594667986844836481842914919610057995779447031508241530343081617230193737705781365215794419502547595620380466399175890446808250874480199144467441649771500834303410253691000123746165901277461779188537892560015106277292697225613471593361388908575051241797389725044103219555279558767368293757605560890352731133347250867062071053419552349111379091185872926478472334284146103528265727355162739033964955395043838783631614907985899608692791679951634089314081023828265098489533707813969152571003376180866273533200621330505082477816030840981390234518326385460516514553607083149731267621074056323607613766725769928300526463127065091028845383081916439127779199898480164484351593872542879033058713329488192870270582448338754287924395690723102887987590429246606042500069359346912005204917228364186652454729876696997579147051152524681937931719762258559531144188084955216902987229098230415040793491582469439803492810599875176690927454141958498628807692744640659468666220525453543878303204844890642496555556851504859411754304074420451703326654118687621281127194261714295133889951665220584759824906061732264090365505379219411982417147595697405731390333674946921987211218419397215352107506726334135012937795547254008365888944839132443247953246870354925646113695776332900981676639810454495957987515855306956860347095570341743750200965758177586177836894599587146230301487224340852877989411710095948274310886066524841612617617750849149599575348657011546669588056151399515954236330545409778087078547157183507480559843085469464541950390945238685052702185920287537639482099314940172746966645595911749454607912970838278490201510849041600325792377489650879591401910049096346210578838656920882689225168971943454973250112401589580895705753674352677542818360083607898669065807012570315163946653306905290516676312145470465725815663372931482649749850332493942127195208608732294661932898059080231424111942185298187134974064453761570528274360551034293771127740177807574734058995399321061665341381164624583346484352289195570629147315763975371276943966695614664021696746032703765640075693372265633680107637731974948973571843562525719803503371284910363828905576908189266349895968272841143288243058038812111060950068522539981177320457505433723034967171621832275049002122100013984515665178376642595294702407367208820311332273628395542632050902941065556258260395105209655521591359261842903770955879090327478997214482086160522209004877159095683525864982166045843308304318263916802781384040802613242923469438912348389972179192629153582295416327056244000216154126605166825686044439876111161858551655141781436797981304367476784149717730247852789168323221711525231713948292924934678559146108402871500791080722130355241000566120849249227874321053578323274682943575023574004300802522506395265065839271609355977970246675920104572353535229454986931170202578704154974201441348481988284967728371851260121940824038453518827065461895049389690701714387965396255091303631054948944288768242896878704558658179331436143139072728172564270551146572887535084830649535875171032116809563723362043866268236961497813281051785556589870116498515911158114326889116317136436236655922566403126960199397272664327435947229072136660850397476291793015304608598197302326670732150881999068854687942078788218862228017863707756615756260893667870526975536777088175759425341490907491801997052082371705031068374014994004911718933006213597104520418847100871966040094219798239056283794745401558290818390066620082847065099490774589490654706349530059598328340502689825660217361942180545166964799519338923338293058525252641119148550795194557131264841853157051191252299019515252259754259019518665479366566007905300344337273711662868799030991305497272261349138725178643235894258526648155626732530493573475301089633048613283826617479855139609004506736667398679801897742438633659186476641877107986878609077167897035925747913363133871623493744382865649573740500540332835674597534774842108415096889991676709028399041594327237421957849776250828678420696227846874472098144646169806877646406840807538954802722400338041218995591381963450056747712262819648724084244725781178524522411503580292257214703128957559959883127207033465476536578694732109904384530369795178097673763976937524522125627451593968445182724287694042119721791275099385521150068709548665328288541800470410570327356274844145171242964867384392067788317431479103836409022771828803608779076784910762354149308526122083323471931377053645162443922521436809577128749276912284217909599506293864488576891768819133073117657560418723676109561226734047624749024179693638946040946527515864073804742790848242609054508847482895170817797165384078472073054138490039830424309845790335316127665266283767298969814990708749708739261080648374650718413509140688652895648320035271197100389032968174881240297052324897840455243762235793747270274535036342551680547363046738727340758149703401759891102365119893926370020716579629105299030021192953830939744858329402852286275681992814998504321064170793321800826372965409591096313415792326579464058395630757668335209327164903023539198779759701787932378161646665723565528468190030521014079275684893242298332103789585153589796191954823994052614992144167771372087497990993733745057765001104546394719770962736329385070325899084298901950334847475364247502925953677805076161329897966903482959020845310895370258613134503477035774523032833126470973542246795627503658359372276437441962012311626009124408017413690013692639669469572757040822771813207366244761519717533704100364855842114148693477590691719068065924171631578672255430024150026488458731964679098288171720359478892262908838142676239036715223632835207775637976617743122932800534230425491180791929942281364480635725679402944777638723957335053691722604619366167965241027887945512642251578537400816640797693904619765728366416033189933259014683444063379969407907863563217808062381352720625097426515387968697601367248084320361974921134374155506042504881622205123533912396898143110549446542964433294829605260181857585001931448242610613480918624707206317038341959353058604353076832221345854144431631868376788563836109211546069713883803320459757344675350016027443744264270590801145393703239421378938025318614372952389439789392650968986084553787307975307648043066476477363307163836433550741588701909369498558110709661223129851255210728736350050698599138191230632903391888527727314250038569706326044756226185702191757932041365904734981309004031802727603320282773801886138497440204696887571262804941601707106674006920637019945671281241221950912249868754114986529681256044654014323855791963249825581896202423018926538701764117239673073889513117585023911525104675246436263790555384096420386266952069623833216034159181520585612491228975842246248599203040388889429091194253548361276629004861001668662013663969773090905612306520915578868138202219902114822380250179010029344190693251544897995130375136252727173605388476655214806769802640910868101881453027292871196095871561920851471033846302825647139748069451234982926078322991760890440176768622640804437968774058534784929616513905202850976536403392666995869382185431267111572166933969772002698539930252793646066271437871853336109951320125547453927300060825604832172018982287518765645571397572289453062509956371452434544575808221740979917354864859472453424302699904028385384593464698366655167288358214703672997472452214968179400542019097762841094336689804550903043490096608370149040485417994299951308806637230713191381913463106415353817247132904087204210380291113144225724609663585732326436199372405905882084249147457186289805088590317490092673688369936224841966638076688962146810346931252630119431806357646430120824101682455619971559022029415607746065496920799300989575817210481189710277581240750140575731875954810575298760881265549476136780450024317211134104816904313837358297041551054626179845760089746305799941128008801054079790235025276258228321922140828950991679588185000847684821645866033863476359140604834180071675861908637911825654705265814904879119604514862166175596842236747925864349456183261948610092475503657091873745106952480068204780893798494479935611573839607545747667006846678514901319766910741998672008103975061358962371276251908747533810379884798477119129941605814233868687004062443116291592470449107664674286515914500291846891930109296265686240113683515736230115704950845663667479909268599119199370240492534640869738028682326887553506668157436241491302957172315474585443937537920525064526291438269998356223860791572615787840883787313533244577608393244937102384714652592962571455827713967246139889305854170990881156772812380539831889355816317745153848659020831738280498193742291159667144573203003469581850775768942774389832547207746010701824010930540651464046356753628723324190891627831085540182944057715804341437154746612530881229725889346442734287209756275403703876300393037026491597374037058025038795570598524342782329207767039524166780147246459847391058062663226081624093480967158284394675869973058409024051802353150175775887732567280280159817625720054952931628552661673200470999177839326326159253872188776056597018374735116445549007205450051776491115244068828309418034959164421426161559428311692500688347095252341104192246385979265041494290650321075601581433126682130856740054968874143733619071331118426867228074703483129626761337347569321666563571303238695880325515507016091634193116234732020828809795622317743951642548801632737940987114844269224417707131389914016899864817639460976021393216285734558705244911840368371664281013220189043850364688706183295638016941401170072079133025593717639024825184963576603391163499246892330676646500932583446033405356304052231443927505057887757213058949532141716691169744317501354239963783521252617916039486072997557866436269801060416938444124008265885603364504396410022701052364713471578192443165224911095214305130644643837124003910102609388919034803514178807718011748400083589458408937230881648613535743751296385667507558895570092698836516359209680650592821454544632814202729438991436250320140905958487087468821090689214652964395963320377801863661447387652734351921859188604099186449681128807992672705688791913234732397558914334233662321422259580931071187919445164151733018541454794889586690537928252579122329944069658221758927598091237674257946847346621962692887092723288887211823054543724517629207282677072250322008190952004832068115322576145476026666463614187423905648995174784060509372470764820086584061755264283331777264479225902649786822040975167369999081104762679819371701839805211582796047538847671964691164438498770298102878927207481062263610812770906023234025388753750222812507569796268372822732194338531967679547326641130185086166209520310549643262266270127762525984970927997110390062168241161204803311015899357822778050111404423345610838489842221057360711911910546981943237104731383670180581861910784851690143812767439185440364613672413328275359707097373129575100984160170551600639641984542963123850666784919316796051440075856327410630249915864923770962764184953871416748163317512198871340278529835023772417519120852642794357772091372016813713774690980778653185699407084176408905059239312455968447061306704592280787798792304617087030336480579896424187847550384368356227945081449166472944096441957789661356414199239664362464107300925339913472490124674658068384870968483192919510305074640744409914233885072730119462874583910305239237107317977918081322662950514796585527226676432923384621773204418858084217412917370287592940167007326525915560316326271271105695837184530437245323000522267173215300624130436838334355438778905153868656730571324713041646858688237849476329244514829625431358965651631952063601874820672649642798954729744026559214328892374284845418347328869936082950816345654053183397694254988869789231485711967243916046719047624937045410095746539911130399072135717662106216362221317805650702823491070437544274814618604191835483411221381037969899619298728874195789813106632431208278687902408493006010473754257753503493844061327398451604026404256702561199894405658475670313638650128634132188393419946810125610336361049280548972708366008170492240208609092724138366871793244541920658447335113420578963619141355828413718852984956164753854211245447176127828704357104453462364021883203196350803226222011962632011674732690831701441639796608306681440710681459900786669618153256124814159941120168604749182263137345701343078768530351071651163265456369512900639628450724903422434147399236222553482304081803207458831242752920023427754292120125334135678430928706480275779787866119114201745185656970027623284315332772980769146183292860980354370642045158212189124948969045156118571842309753484230144708363419312510946053902947936059765801623644290854482464502814266590621285626522171578326169839648348672466665484687105538148018247588933300001765402821291715639220314582538704580904486298757828839629139568212035539501236955332589473227009426010593807858637133834934800992542450331988455686102081400139481964499053602760685348381162485704688129073960476406874674447262339016915327909315329137513689499079431216939367896146952222281025598795815973171574004708352030004888660065777889494430525830224449862290930409960213176319490116103291487521659400009026242181487380553190930138663116480588851324831827370015036327824385461016062236165894664774834705468336219078279225522076214272991541603581432598598815753009665906289764768855257902294819248922846683772643799644217881792872899390115693477597109068348919638351977594337121133876337071831332415200327930704460366594271243150095546875130465534954937946178642444057629864148045651652493702888045783004401674527076665070933217563782022428563014577520336599935747717278130109335887456565717349621307095696827722215851832154192436157712293919650196275805238806316506736160013420601864663760297208646250084350521807727495066170585534355605168896871450674510855583911846121558039283006332964618902089879540028720558425751526692343695025322638540443244632205817199528153933047071109518803545642144344652158306409147237742985895639271380566699287935635685262323006123266712036696273778709384720051638376295942120768466325994057349559004103871399834326157454158896931447563825612325736153680945488092696128837135789343358910598089352030586870114054916388522472118568753540863255378913134405989962194989590501143972622584502401880663115427091196521858345898319702434166375674625094900147102723179873971626779433798344522464005258100442342782640190440315531553159638981785521282719092419962171538126648824220286067436647899780543274452488549433857101711840565559852787732797409415300657877052708580371672608911470805959976028285264928214886712988835314157106247054112580150736783228271050590732155228788558810424618803142777430185865452669337331704428473777409061687062760239481843685773194292972243179506661591926279608874250309600740276299056232705550867268980241524728610202465850839548735777167413178178244215204196792036512977947840555937019053922984008556086751343858172707469671710866298776145087366171891486119659642735310559882736396476529760594258334259029055831234976303469283722619958777407479354169668155371159183085029867423167037034153764299213941443701614440629572600040582794430443200568116768822684030108745880657344603167308561412352830161333725249897822442980144326595376322916461486364147271436127986285174983281367546658314605512397500483885656939339731425129125522853702802220734361062418801641985953285972449333167691382251262863929414075511272262024669252396118575587798284300109797791902508376344227279456856262185809561895061901260026979585754373631806863929025948682044407124869348249816993008643104304150764085016777414216040567773869783110683515219555325347255421437039534514978313082752546599849499447593486915873851311525165160440107781126278129522378710314240134776697357657819614236207252320686300956290978932739170613814792538097280948325509181251060848715607925870486848445912540543208258212712619721868851016481098768708439157375607721450146871583773852834812836777988886060142087517268033806374030221507189741229753553922851870188265629868862782180642156132017194621868628581782693545744907008051032313261138318333267784141828017930924571314474189416334699523229345267718696697910371761214646674956324780995386565022027168900531609073286442491676419074034984666953782299493687084351201897684186103396074675791642663243882247609522712672253986268312823628821015316551684619243444599951647068425451718571250897286158394163945980010042971051021232943878230135990518362088366273790877511132316278416575030968140762150542318856102590634357719733197232930636736771085676549949391254063068935461541630307867503841741794707137451920835414474304528935971371202200965710779113013205792992579557081618780739231730960503990146903598780167930802107675098202192295253757102773080676290421475839462067484791536725051057566713003621437329509557125853331014160645335495343448488668422934346071622218355177593739534260046418559929332374159338257907667835047627158584310954379777491943428544294796649973394871870400634887487535004871841664768608129528435913168271702091544577109520189815501335181067454919716891317047862212994496694520300754042847145609082709022000165227096976796271912376239377799567176975883968238812558745381219752888630589961511333737168116725815563972890421877350800765980796495452004477181575174747714383684433006312777841417812343560408684129057818230454614177934600605086131839381958417013467776030698560582644625823212908685396980197996537508018416201639330316335225462303958462423092876078203010273375590819600901513709788669227542178955944736232890335194213477878856022428061398540108262160097449629654124048040778833610271240050208712693394247372941132351982272137647059277693968385973757783754298717369034495673587265390476254030260558677877661833736443329370394547211646371584663260005473309815434081732762730061366750196525090725391447810545282505860698364006975762599809071067122745463929132522947252996269730321610871153894684236864820431868886556023915584751836086372613921564579664250934828091150876901984822185871844498655751133140873095633110194256681087290163276307678893496708072265738173345579064582719180576641583608870550034875927895777969233383264654897648278394625888128862117253229153654963920842190708207800531942136980120758136289996388312852209454224908334341685754598473380681332252060126740019753487210208142170442573698769163773578993417764305348309576952097827736524561798530519024892352978002167955556578580367705444033236471023251124607571210322572813163191576502208260109909123363023532628651797218401698104484660687510803465380553675181292281989279946229785576721704927961184597845191444974419912964205605736294316842580672271140243296767613443898494296937431471454204943533323607844120944776666612413576028313495343892781921053112202227210262520311541691531469690113413862763850729024135123638941949802469907616414594998411555597907462681700643937356876623777052952779531176318915514574981089249035016602703059769674552473064268126546095058998833538177022640485347305370675930096910269118040883227795889150462361018692636308975023453241077061319691083228707201193723060029546380790241303825516338764079777565541196494925623933794119599011917906494219431016255768618770647805086834017833975897521692244358193037976407092836084291486826931093585938376614632896660879361727162057836393496091096700298789462566923238458114645946905118345289923640189513336941912314824937638069107176063782798301295836431427556248887160087198405994439904471172309394426915783490453522419096762306543870634687664734725673091933304234238945657689175265399504587687757088482713051561852866790067716461105888167192911143546687107151929552609888967506152125355427983596613224876172861186073441128607668494940964898772108459757129333319711516975571382329269250326325959161653837030132614673168479876814761291702071887014171065010995765070077747067806264651919916228190206267902262163124016552605830431583182708781148515444133431264728310045301548068523582526217242779207681214759194057413278253982372543879629287819048354738475197821255744715129209781013958314035437933293689455165455875305947168239829294821198548923423164333003251051241978706866690804297768781752094070343961375193729747960629278292387045902945373782321706671348190588302006379582303531494880694260539485950842162866233971699497398453722893567664456968799952843897672429851669721618795524366214931849951895670691328248396049384055969032540003893366473859911086744562837139215457109106268319819753574123802617303819759646245761176340040296654452196605903796544271311873942012956209861287964800361356892731463870983599121447964409938571460875825697171586324951885576533114078559126935706812221077305450642483542854619945144269989530714891868823424094283140280599433363976620689066300591202286577280493341340636421821875945693944815449727824382548264240308557148855011818119986673090957172840289826691368343430030577881961027081280156604112483598846351696532093849079738755179670641786262974819035759078545104568250205943665600996559078353102505072238461147223400332885195873184276536973081190524011222098558805523739319187078430026635650785697102638868606925376674664786941390914184812057364426630111554621301163952814016534735649783632225948945463944394606006067825124030354396471924283280243365779351791309514183403378169431062845647374543232891224764802448745207697974927566193844133376635775033022294908287390158198402790764603294509250404557880047225972603106282824852994898803747997711587400104427712730485269385015038588505647313788901282651422093245595234839060365572964129522579596666559320567319716448565706118559781892291329999688465262611276142109574432110100565058358210776990721652645756700338253582836280487330057169578787746305604354676389920140657257654393108019546600431939973241531639408631060420404780330299380438657059766854100123504880555715681021064376649607817736236037165334066728037358453015826501483825266547715125645969525713498584253867025195305370708270643745924207711105699447900714616276675976370757188983121735053003176676933901324956520665092344715705958238662422988738903326844569907337343984279886272709412889319621543547137536587469506995780810919518713893948436917311018391840544615959890267501204285096294423270372427086073000526492248786120282058464943742759972845186700571042611271278703761994041124469812408074250394359072534638093345372982247908687249489648335561647658636414507783616686015884946586168523149758982166660545525347098795394580226632916065963502704902298686145415181926659756507513527361313407380530320802668306654050989526427190309100160792888636904484495945478916587272185468273840352301071830343253380987320985358941956813380863881465220156350264157079568403323421985508707226623148078323030886305865401480765082574880725474546408452257800944321569302376538293653207799381885137653667355187350737268716825943027497897676402454609508527749019829389163737827069940664678906451019454389206917107091398790117988332294082683409819607513550950509002917696543986662480236673586036560502008609077949158787175111670418889967860680493219927913155798000829788299554908762419018004046415465794898004358662858415752913717837834667309248410629808982242228949838734115194152880578627747753924734147524392842481771895836796414379217059301203893997621885405772697546891539554860457386536069505782864280034895374082661821802193627699201568980122519021773516445368993122195399757159685842795061869371258496422444417470034847224763979149957163097472363611672141412844622752984744217220135308248503647489058913358188184921694958801284452640660247733527987523275187924262122592673611683324665843922871212163456184746792311394206269260666655707936560495231470020707944310420014865542624551191499525631517151836324442582125134609153076677691214955715646806758346805222153682664516759911948854940570549180951641840712553038976757451753082364013595688692584592044055750856247286916103794456957196648284564296895089160211031909202436723569812503787907779423925355107753992497840237747816953054446413332327839159432689939391714843875755366655026480201220080975896511089020989012805207467290403645422591810383028561302433861514575537729689327266600044758199831091710664999351207103144192338621144616025203090157796857415903231996389630250642519921706069504574269292136821185316293749248499590249591151881129390272298915303049999751906029196391160647552400313737954317058598762822567724542924874633492957144958799251671018770946225781459876982811637068746665350687842749780825765431814591071133139050075780285531571206049915649748660507379667987283243474561702432381472757322134387939779933787827227569343606375120106764798396654438514238145011642843768896893540737582316355093352819437600844419102262045962790735999871384640247627278715163818165912574120657487005087886794277163047148189847286770322273136631862665533379944335598972599348217073150842819504435885634034420864144194403216986988156228407929502659106648436199854181812554908622582411596153457553402752492297219883970275889092076553932903130150692032785528585211915256045754063991729826987633161437600451853178740368549921388806764949106325267344747606508805674856685710449697279201751501275121523326776287033828131297034658874869024147161540563285667833685510840965974611926353305089264690188260166374202274209853339388474484159049284279891246140525291889666951405412897114138446159343189976628285973509045571164286260550654501418812838215584065231755082605574963511369771768417643913203377374210186595422711024067950706305707077732807241646756777698104094920271286596821956558929616356853883669853379384788773054231416050519128138732588018745181307634534166997367235649726920534392308357762635434716741913159307925776004878635221473676777351643158438640362288526927610032802620072575498300963053404301141272002979093710868977237159792417178437100134136139607446891640005250295925010067727483097880344142416149487864495728933441069953396641970959660400153475035400428372516856676188090947062884324320556279206701002132614668216503768077637031740560484126584686024213356868614294765554294225134477713644897565524222191934447010139069491596196006040164174897761909430323698496728688403716266017197677143172761778829658620166098830310053375854151047651707094358469886927295599939263560404416570479895891301224252566571601942852627231170607675655963301382160628952160435552248447125765065899716592468834131266821624990240093270867864789697149551686462599535818634580711018343755888534137145738867040473786914777616296371228714310375785612940229095041373622085003061704732224229456649924570127265845730597843028429420389675285411985192615263659048625522614004406945973091396849425559524471074953369722631238007223213460411353519000742473926869701063123936963770035101735435775043496115360354028863416959769828978448790795788164728977642751879137922077769070667943987239252267299217562123769283612803324360975764450181993623827751617470292678496466563142601786090456220006871750644314285045872724737916132712116085266258760722367490337577491939662250851716751662210683122643156745040521739924183476308243964449055084163409198636800688387231793210825783152159822166297183627635165188531860405378902678064928757004833641506914274809733942664884376384547061382599335479131619193206194354510947435345192709353351991292986188335787818553802431770902123829491102668164801090008020910121629427007709544876493737421390948329984654254631979051563374928786998846299541664816513039583553008899663960720112318608796273375630393102635286174462174989224355699251874738713148084673359351907247831511911424329164312752608374245267659403231679714206185482330773908671130040525962437338663811626689459852050178501959805588012072877903319503480733362273493770720494101092770013629791598737776192423006365340320296103217486371734964963349524007747190365735903330082637171375993640619095859507657407445757637580705699840802081175489422859757737754898096900326792159134040722263835441782199579706120468149046327025118104288792033524029065348101352717301757516466937980305604721968749448337191030172121171237238181524339147476241806727140902432900567951837584377883596597242975433231022449694965242578863840768312082159048649678574249510572643610697902495016861142232561832110382615067100432171993343421714115701289796897631463935412863814007357708540955451251678683036566987406001125117776303783497739427021044666353055072021031172240945902831113572516748869076026530582333266529923178792634248303354427861359893949563962736004976776564967469970191754224626970273819038866857869336813797997386623868079780949497719588675510463336165571065031071691236879086206647712277159073806231385115740188391382817785839515145589001356440723450859387370249795320093809381877871039890860124213277076273472423573481825680894065368975725233265064215984134688027635440599053941553795529240780445995006027861179900929540666106773783541156124471478524474692000733919543348296409992342542169644565032687064392818275833273776351260200600886294035719326650587506661874054252095353799317277923046144526315480307410315952054504993970247742724960388667091000142453238830101811782655132124174747027037002036008973387222470547038778656247641409710391607483693681086574412448812349517089419353174614717431088879346190913771485530801959620353107313326197312718002816961476279051316576606215104995965089053465322316826833326054953622188346159944964841813809810650403122634925826880543876479681361754473062876499231053122442111837750079766993485002062225643717234348702738973589262712648115877974644752516054678179071636164409135827693089143733032918237976703714016551252884264918837650923165373737851108865206828271231132571235705136752711236341536972692731796579245761571084022870763279332193609140946208074792610098352883267190072265675954591515857817513200390458397513592655048632266179000839770285168540140662126064965682730876167511447941813502689453345995951991421351173956009963765012985040328393760209764594563598722601957144709509165130510602621347428946543940013252472904782504968688781218744753731779794045381703893636987455958290517321195689784819362704465667333988866630317267496935046695662723206590206662689267869166546995423455713469713866099571307776239872210478986786883997956494907155721311150492440658356219807782464691277810405016176011198663933114403455847580217206178278167830187112210489708731018504632203726685964563895414616318466077541753159105945492851899289137173285441738913001829804404265461594127112810367615628156982319115700179820863334455252203219478261321726049915442264383952420769209853510767055405589366305121108035274605547719041792132347213162532088354540331203542197978692869762366386168213067469007521618408827325143704546037568153791274715164852953633193994294019747249784900494360590795485539333220783246042384714261353992311524748286052829013277125881692292418395264983499423740864604620825039824038472694711226790654447402146699142680873393302086752732008226151957055605948365804307268864938033881598106894316368255248485932709315078144388847028530131240844516547106336164422838781801154979756163609592729578700811066942263517204414748732464993834115807536071710804228830318508640492935951583449071014459173427298594898822140561390677653122801684879231073060146466191768919522097234722589329435963363341689334654085830523966006396127245262108864604657472562319156805969813674803970815082464061086025662654830322104975592160499755899857288776095823029547718381461277386066502768821300204879101276603969760628081742945911283129607003713747946298022758991588524010787844367252977867969539054271395241704022537287255916848197396268813392587720682726477004277694580523414055167888861933566615551721011107155658154873982028724276661561514381827426263412788106965701076835298477311724484438985979519632533496905118944373851090790218154465407301712629907834169234376005441162945947708300771688941042488736876608112445647010766630909753066195508486914237071133959772660884688184532780885723771635226261020222239351448884052579250893135144415110920336038613732922012886798932791065828824274892758285066543241669381952518549717064847955195758329292075977852308344146067526780406016045208613499871893505941953186617975563849291525482170089117572908964635689450470062739512411931498854415748038118023030903138797423746461904162154840507565520514376218442969428550913441362890574020544775259400859977393641707745813112397379812408645801842845068020100174277277870309571354093717811364413487280885829162572911624742640864716639577955539381593495892078814373210365902562926658266776940465156665789411943813048399545350379072901827258305684802375398865578043557993198809663969440675739912879459282684822899005176195407112076719255636445441853624895704522777755320290406778657621801957899844891573718948849337841642595698526065244154718893272583815468641304240261770576740574264643803167212155175124420052194595756830110178611470289617805534912367773069719450762881248542565431126905420784974753552862369634818310705099344729902675499930161081577112945142205530024428588328289908910714303372554122090152492136615219000779689949011274168343360240494786219469225220648341230608798895754227317358996708101622316890062894219408595970981363070677459922014950462580947774560005645526695535771426297354037625712902858681234705904729531764603938701599990071243319862950829344245143690282332481354057352381074458488085354416910824531735173256432303545809044016703874055148432240596889863069998732158615472119512706567722972942575005610621220373847956097181141399231054247018331395135857164386560276056773352558166990796366245526215994944195841863123468338503822452933613004198978739504647700011273003566793328985478063793066048966137380141537516841575051674613192951684178443248673611726225401711058034452663264864026436329461830896636503504606487080396423725757736472122923996125089715413527702755370346864232291236273527703155089966716925627229539404552959674471039518554016205189922298107257608333351931121446466692074709492928832953205672420101255543018350136522618531659214752156749717800003178262306672364577056080253105248634836902614970521381558324863309740832149612632529789527629631347069495040610668807533719670218240966919499879422993076427449926892355269727421861678633139890827989418388666760964732883362177371749239305701480557466601288578312596892530901971001140098826079059177289959406109798137632874562366572460272400401127564138361486887971232556839524226684773372344391544538492711104360881494010475685808101506035437983386213411841262280834538851966872937832778833353434937121374366045860634933061685446272347504322475561154691970151044913489586002385056634502200549810274303533426367676766265874497273078533246259720292420231728360025910019633499261807899969088632994918758909747797407194827968972280732643814443311165061232225271154460477662786245919242517097372774818467764930599865321668587187842772305093830912818158875463444875142810835546513207394474724879736120820046638260794536151455140907066002460728798478339316344969440031232561056317389399323391594110593688239967997197537003107200722927993197672791676376328538639765835971609091907219491255824364510961793217235109138704279261516348393713508441810300663843004926962679492989637665099533266950756554764230071814701033335304452096482745120067637651333251241557525178052649227629577725942883042482482226322103411055606086638894999568132723448436392621570725011656917357321105901307053757398815855595297106545015876966993377182282107838484652255116073490937887620677018747790295407959413001679124082963052551067136815440940434547772769292981424295572002958581726338666262469876745868055597597045612553280944880662648000233696584839572035416655429782744274755127118584216352928751213388285500040800784636712185460898711266577007411497012611440718259840697791390010328068698018537446431954117176845836277282062611617737203537075575526057797280114270731616076500397016429330974219138104046618794227671272023139759241709040953364133209506841250302278106278698791383276763230357523368842238278948855054924339089959676652237437654480413533163907472725753540344632238125149027052286182226864341329579680270046704110162753311408912780285789123774670124539435233377879971733553025530837975697521151867570834710954549034587791130605694172491564215441134316827272842061706205766790569510480452948778878984261415751546777612360544131799214146701306409434957625056346012029014335162389412553762272713479772879657345799995572065174640434978695143740312674061629779536289681404925713397195132530309137351663413468776637527048821796794104479085401550571777176051205692258785914209756875573409837430204326975561968956696644587524680478765301389502626507592002499202413173547020916592852290878024805607148219252926005121468834302821123365657157468306583697699879036637039647549368793806995976903035012453809869012879775604798298692716974343272618642146786749648334939091072390641345442703181747439597980301141688163042976067558780132158227075578479599919102775955101974477293911526014728936423725387814837824990897280136896000458458408710867312084546555599286049543591480573546038163393114595021354325576751633625493833253463717566785963233792023750330930393020801881162622625948848895134166719143432386424161043461504084560254156742671839999330113410470292461014437780757561444319380504618480660395768364244856716280971853607794483640893084276935382110653286149657760798730523803205474832881027582651110885002150620097245530606614284835063248494126429394136222215759052968815935186640140291900607977182050004112273941897875376210724991789007692779037666547039834456920525232568735325674915784224486179684240451383508975673544595998217199364872667008351275990269850721209914497916302105503560639266802819717752595923912125796549894991350272401737289366565252831985625315827922086735274788578115247859839324223050708606999096735554062216779207644625255395847769720849161137154518096879958133939991366265800905248148600184204311670299264252754733236524033250744807665180327930392144904349911232860975932492624507524048922976560180622988452151011835227913088617552799368668197613376125958848093775996305766097924020397157991534586759980378211409541039860740873609020106745798381201136463757218194976415884719852409502876727690615394142413437380638375572986101120610397912820699628628069030024049877773332614026208702560207325873065201666763804189834067911992591058992203664104588355888531967523533284544220895867557722775104569997124425301458551665128665619336891359062708633974799455854415660002574478983695176989338012886727637653266618860717206703716476921994430417801487875576458690734085636174019099016653700922039710647698071745611767412429836562461185937455668217869301919448030368013465268979754601649981898701267076855556053969858232004253190829332666663733402704845151940618901399297012608386231834397473220325068693383583497453552869240131031281448890859736892363189613993255490858664042886084737797205652319260524926552468038395735608368687162233980306772259688421836382256297136667457254976044155874955038536701101859870105818211291329831618541464921333988955454081993844481069220401552948485269355902797324063863339565658827809516172158146846820026258271080944890638653977093586594428669386296081191557244776930918295210438687402637139157725921311736927116955457827052259601210883739582661045571668030730932940799713693178853613520487098982404296824802683181910370021364185936308132317041375167202792667357601450731753445637514671735659313374719337158666792133964538103348365406385634162668422340543603253666730670852062342396309564589363710763866773984246017279335894317848753429551740736302438679438223154349309623749747477437734960684132070851328018287501772886235266812542189534266415173168463809090426801953316484616388712155905800743096017747552625521637541415182130624623246662123075059840679467785675737301697973784726664122961213503054371343050825569598205560677375119038482054418755017308786314377207006954346743256950455740159576517790468728863665411996793258651497860459819132043220729367124424471240779432962120209593196885213557486030452942948165805780720239637737202511099072852447343837851482313587384070424598739263953937374994836635375915939042157322610488133736235884506187662989112335140342937632488082749278229974917385161834070018132849020369980588204664315857893484865939130893407607091936315948800608528024648656831319057790645504475698498332993525017145458065055479479147942366414355170510492678177351262205804232958796693259887144123202105016713085422199175812238630010071459278296701166440144023911958836038081811838286508054727750672182364420564826304222779764283285070013769247998214058440035377863390045970410995535568554138739290982519953236083997825669361146897779306735409024809041324493687925331112227222669274945197436407328649752925412021960379145967688928444435853962896978611411436671548587945701626928732592641486308343969876265175694737475769789751712950830076935022847825688979713383148942039096208654864635865603609094592737232837793314375732854708362767465766738294006784179587023468614782968598146894310785659639192877089363653235891697358875144993905455225312171295709189616500516966478189050925502204874463636349963167449680805997725923399617848422021933811853195715403608196675078582561580145596421237476142244220633934773934396901425920333887071405486658622331434894860051090876885986853540198344426306623774742946549459817674976017416582389312662525438126870232765065243389172329820375140141857675024827441065111075372043246070570312048804550192688783003172106621217378888570910207741124676734837519570445955574333169567811204763523350442032350842231336356710100854394943120601553914323016654383382766450031919980481583942163784487608289021420076474397503206267754107248493061122553100077049042748617074304032553563182414922954923491715071275157192807987519917376382660405414133819874755669856432005897094624581874809870046312177032640104540136278740520098472755491629461133046842517175923534666410249969087634473140338835283137990857287430884228649440908268989672583895472032078207650107077742611934964001287703213289851646303624373209283684715808382298372720493130670564850312647156328169531579892280349951147997081396762955875820268899500957317976967542122613009083666647088909805523167669971051282382873147177345935630636924288755740317364476496721474533447989897428300167361865751453141478318993951721778475481890709903994251856065728652401509033098910377256593830981313386797330511011341938457626444003230126808301217408829491011573318177967754990569635286089228560079606275257293220379225012644658735159682300576593479009169888021896888474212534748704638947616234853586557626871388620589879890539225373305899955569717799712750112733715497520599439889091547694315026681137157861680014343302658829258416476581845472313498961056684725469691741369461416171550758161013092995322490935250151094568420519801929996940672161853391672111413211883960160913290092346820466930690850809147954438335000221224120809370862662711541547440625237420826510838176830955144321188648361143260786980139615555486336047335479329043121654253888963237080663182618050904254034402481469164220159375267095451085320080228217527046832146746707406638636671860710081498177176382455481806035581771732390237823271100518553674555644098951821394223712928485075630338111307034079032654167492922393654756610654634805549408689903823466405995363818382368706361216185402668422553255004645994999205113482079749037082313617575727215579024044763816909697234077888879554332537854284766669280389017469518985456437127933586304574253381293358898735499756671758698249644720333404108535212517919262122282011462599728716089026098404104668427999741277082783819157434980022520196447371096267052038767982847896649142737133892657752895883153558827454223155472247102942189492693658210496097810440161304369675239344769245291220384887096068296206199737436280675138415318906222037742709784515686208073004888823175583875144431640197903000251389216773390461695218623929854461503979962780188211483406078928451876627959214387570774350599675986589743352869521245148712098639052004164421957252825388826315696412378388104164502657655926065931779862527977909363140423456702700354068195991622045807269905887132010295650363742316787287773508420555342598409021690289736914833975331351842956137281965402678765115834452159719254269184826751442656373587983308010134571994345611071324960456756982001000221450976291268599220736001686914592334207068490665644068714386686280770763076966746620564153015245299073688070676253533070663240075674805535521433588111668698017056266497352131011535716705287317862434171195357236955413486700875205717276815053117167278365863177426896005840643390583776050516413478877674018301415568821315515916789132204030319870812291114430100520824872439127809466639507984396953273021834873273359533225356680668057519160316937717315156649389185159669490374369359593344306328641570801644199794107958069633105593113744974931561899859090549243164030120185730329936233308402008079574317901028315524465014453096367938878490122220422498324055812121138604066076090062784209616940055259933154845415314169210982271754615282608807556928580294445010802009482018927770214935599118198656027993499382719863737262792301285592502946018781883756786442811547070903831808060124504968144887372867135175818922029758667343705229918431376534568696099073586726317732803480440557253082646791870017196297172530512304492640334574850205408012155358522947158014607044675814274620337860259818079306869241201846541535268445626368218368647259681602709739029999921184770539156983786488042357616629539517235617957605847450506597138818373588616667300951543179838934319579287630935517813225219698054540752599849104790738152389720273087843856621028708950159555673059983123089833491205261037166144193099804882932645606519715663279063001204605655063981556212870098992463851206965716866309409773445607376082338758095177511651626607075710343770125357147395472056910689610652988933496294762537356586085358461997046850827090873782473634636017087027509165539207070695269729987508297010610085209298565645848940284261755958097930852358594955147525822204355062536292479860167600452667100076260912582314795660208870883203903217739064320041663489616663605834906808346326939268450850611161079629572971265376505477073615077692873001643774084844103231449092633641987503289076775547504353405450759029106461445694595923048175164994384652886353357119097840419413522177931854509632120269661414794859197142419182166720880808897549544670308420338007392272738852326587851689938245837127712611264114545981794032960031342767242408438964525160640960239596817365871613844193007340740487004031581246155012807677679795738928992362245951890325925169603325113716991098912672618355736499580852493924245888440848017301973582507562575922539514609761205865027250462456522819062922645715045532732727245079963986760780271753608357652926967311442408551798051072281099315761588765530569756068448685307753292175554844902118199795157350559002992763843929201363961591065796406600822927117987735115381922174348859685605004687920895861872858540335495279626500319152693799788781498812559755465407502261963154493629441873674695421242321582765477630511378454693505141126437608962316445311619919102031997955882831099965054223789479762194947323446665902950209491116306310080539980064011547054595274956540022267513689229798835914291117476777645834837408526502166669787903573051520016030770446843670315183503311415810555100395132717650100826140129256140940821452105343747268129788588037094083260508220668517809367513319642616892854213779182704503583134135447999671090431845676897146471302119223582248790390320947967938710472425932210774628908670206502216720519689393016112347485685949774054941769047308258373122653144167360534817025469931286447455528490873084631392245491449249226538501047287127242042167979913703917215146078864258144284136455954743516938087008043563517751498479264727962848633650530812539722070485289854356271923233372714052155888675594597492584965856111076528206513714151084738797121617193577192427116890279633305727535115955254939279895105381381752875170076225414697126606352504642939354033419442364853334915151038602407764576340383212678895923153249911017701754468443503435569384856014710185563044313866545781328713089959977561323386595526282377855982893456821762024078609000322599254820815697210184707808713846876740362550862999648466011803986021937775769586672401061490871818711409551230352275772634418207630741428772505629931419397177498378629600660584406055913707948126038349089858210042569090803381428155485768819598682086940054056907058260101744554815559503001732980189127194331415013858843686251790919396446691978012501315575112444500843917371855214806908875164876460926676743005148728017311882098605044050850606636125284562712629088147673374551233479410223747834666926309644666346448435116380525256351495946771135785824627529326435867574747564564852600200714016536903755179518335618404735457477879567302268089132515894788926600058136842482973496624915936325210194471103262243947454228829467255006607841602976615059509625094929901722007022780595395731113914912837781853939673492138665329672592978476144192495367999727684598462997399038987795305460952539141393185443453116712543387129936550078691057905559053937162337431307078287762485471107987263449657221616392141023175430831841158787414696568309403189969827082904663260618540186129349133676762422214458085513505539966827481076307655220764278850209769758045492686731657049372932863204526503952134081098559648421783123077149972267523802751306567154734924159071722075423672509275789847223124602584847867548749659595878529544199037935205931261069149843018821305818615151565561983894757522598440629221484963578249895058436050190037273658726167599906217525460947089088130720453628146692163488620107026937361950984919934626872933780048802056130456383937479720466624354606317064221812938802381974005860240221672137079715806005402654576364845137256012702077293821376937084155301413336136270399003154584872344515106152674469144518194220977537060769464476553458379154223494726338986165895145761632221039289292563894767537485665731127400008297145803745905647141571373414520051596560352385206485823338633815836616209402455867085047194967336608697235267566111620925915626962448071762104787034660466340932611489336426864558295256544538893348798141650252706834972062123307132292032418052608734511791037857820108847437975395727841524939117513535864455172124633811686608461749951164069935352657388578755764154433592553038264732917295067540546590647233001823641372532395821781026208139259534096075950863909874655607754706788773535156175429468360757899706288890128653536417708387064580331316092703909867116867387698915650994926739740497309404827024703012767855728585727518456914416675333693563043565240702490856551085081259346330752201110869354976159904868943590279385742099869598707106987215735229826969742621668298100623987334689901626473100993165119705717006075551344878638803185369146475291536081541164836389666803624441233726331171772524924483436515226162881236020464331080435929333431244033329781997117368108499257120135000669463127805218542801754380050937119440713770304005955310651493493177057049000515191367221614924077043169958105470433195161588026917481538087943164100949721587570407272563806403528099872364382836835115787424542072659042979886702799367044062630727978486660432796681109158414035073620350501543857618532580424436839494847024776159699865364636318063087657312069302772685726044665735850573833724748894385065899123110628446724083012605248209858382939599647911996428438757456678148563660595199110238087036798104736391603449936234155058959706796653264958477625058882500231996889711464460094194563083024246395572546965006197002785489081550254572863679568192788739822233460555330562460639090393649077858577132484731147951115749553087672866371490716056616041649750165110227071404863949322552710107139987845420120153576655206766555405984189386491442911868110596378278214105662573539841923451856831749959097748333313392409918520495504884954830305895214933099298300009036904789009078175804767639717671585206737276052805071116113104797690554512198580933245973667835131804315105454374866763831075457600166335731469320527945754749774113088727311132805263488585154530319631350419188900385724179231656059516143260760173998146882465782096411433085008901873006639554938375858872133088936534211400884004033983798093470511821707662910718102632222251579177888279003347995363577410957676151304566531090959213660175274859886106588048865939479575484543353459743527198886390016497442334449727121412340855200978983965804781623944140400481275803527495498693975248631095571614757803807059195165801867228857322392238064735608350435208227795247669510067187079210242480350593326782542244331307500354543190115515248548662585507387667872533039415230272868747331825017011416882755724998456842777951758163389713127767248774925188631337463385115803199779992753798737060564306940688650415175176407409400012554684200292137030326286938782979714962865625703825683864683365619270354680210904263245256848759761509920383397887171652830535809586877587494127611217959912916286698280987379716188748154624778474112140319316433787174141998496116144802259324875773020467708089400218844073597015405661770299983127750112680241014249991820301207947337539458054959650544243886951732581620613690979592895095093361449013481675475814990857821883343327471617383988728346627135035212736964195130182428822940669550851615876489337919824344563699853224268486043347787410623982348987988122020206801460949042845369683032219194872478781991759417235333642782237522421705189469484411211100843818001515902457273155211114972356360013797581633206201918079453521955432663439078689551015928787741027579471380540237214362235573748288782229594986902619399669294361620566197787984546537032227510625459183175936118152414038663605479732365394792683984620623345018989440248025803545552468034674805506186203001431008993406016141159626327541694369907712188503279780687153859041052440828863156624066587336733786809032140944611753262159473336283128422014817621762137731872536476976724153374661718644653409413484781006204732934898338345979185492438037651142759312885848785485236188460663720897599779418400941809193404553594893778771119809217180651099875005073810157407789819919576361140106290827295846369917669210691887791650722481835965545663840512271197739001894558381622575719630206713078792650337108859492643800659056893134808543592544011390453190603439095701937938499640457407950349342841562299671761989377317483462434365702966144562497749526307051209051685478346387992555998127046943365900809827289369103911570315047406351999899755140005910565359550800166838492622663742746569635672620164710161963300380862180224750803571053800996966043730892050922990172565216219864839219516706895945269131816932351151749458672056617911204307733555388296090827514928034163052890571598741458721700572132432259164348471195153289479390700440424493854281690117986572321501634815737637502243647722995709787302445287450222721122027745568866889816317986054528314244152266135736512987645693856859859514667112817730357244345978720439394582560754455464117206780082789828206600410867503840197143676915577418861399052580595536191764829192696814155583136211087254082175460810478916634022886427328066212874168761867989604252843407881242086993116001543072714496462134566946825095852683500162231562667318619055164456904253077022113465663569865821745943336459658113537013779908850915658792485766137513006565734141306161827646047144181440864889260444818991346183258395332036118010341243760551242452743110064821316517325383819745863165920368502893703017469277936288242864637580404191844992217035800391864725802729058943513856736982132799201689119640939398645496611584098128928460246169643749732208731362883902171718672617275569945454957656924857734594718124686911164523480883673442356020166160697958806328884367542191406762585286587121298493222364472323890122658396437655021711445011654304587908704527406592052241223828064359770250469239162706952834533055516863056818524620495139414150971423680024317206985745335388207730932103732263982401703873492345121888078888146339980134970263771578966676306535325871424600079057485333746292032342706981095246708724711006698454379055951258418099841570606890532019752065357701330215439332592448163692985434997854580786439809553681179366296967513284285295656680379963779279220037881818019067204888654389896696747950483280490147098499716465819817049465030758186456728861282193611053330341470599613485000639690058290359413557842806850115471356722127531051104894709311717737730596810382304999626276130525295631614286092863907629613820042147668833108092045208480825370205586437195643078706201347909571786273697626858187198053626936535431287807676005823917041683758088192996960627781923202865559925812885288584434969574062163024174735473146634833332406102682077519092458422122495503367132536148350511436900333572345164570245774284064466868727479463880207778446919856172795440525956657234955499022972023120124768713990395520006596347669984222824177555395867030340926514253062164478605224649227714597975436041989773438844101027002534202148944856193191330538087744274408214634115366515373341101921712736828331335261415419754343554312205783439113619705399397511296802403744004340944609215718141115883794402798376452149031214009096583223032093245417167265357637522726546701347655225036323695117368109724982494238140957620215901562984048184047812337822963992001093394556087588512892804382910851713445912930282259588473536576341649948898049108999348334964839592961043646603250511237315087018376972098713651797947539285831267944891719002576814322611402171659075649109207136113510311091050393800123315988674934140492984779556621980846819528193722704654349814572783068818896577499013093229451169762435734219860022426302520855815793864460236221803042890111247341532698636542923007449565035953409481192063223660227249796737715614803905549465541073510015571834151173092656503356614205023943738731667177248968547065963379738922517752027724511191606595976548555705733848516215274172135743711261934452360511765818959651825714273516658193994238884748844791121704427813133522838473861002965092509263380136422399924584239609983232021465170256727126845963148143672893978943441589477823743592909388310055907330853439269813575295090917778820310169268843354696794416007285082956993684140028909897815823460316598330061056262073833213982093531684730924464365668441241894643550875877210931988142169367540720294733879111675732516824232825309577282914880814387647356602852886348886316712215013972855667137604719158586410525732105382401751431214276752684376013482269631530440370857969361282538976802524738726959116871304633664200638832574140067752882145171451862396327246394836227906373564825778532822394032589210307491878709807193539439490208232998043841974693231474805879636039411417737851926969178457272386424108831732856004412545013314019788302776406270879540835030485126599950639869989809782313717602353183276825686897802071385668418140870620880716872375492174036825381016904108220162661510553213182779459488490677858207955034841870947239860668781280274427522197830616301308164300525852618601374718781420284900380855811865663061318157027017635650828615257398682636714837320348994318139141392015783100526161025635655143632447801433814209909846757607521501169265051181456421855025018184013769076250956601814993199403086528884261822723231304519959194905430446449202055737698719615901558940279934941182230283718759671199077831552790256952590925769506491178336368033930050238158683157895793401755378253486713453001287778667030651033593374662126761854914513310316296523149785156857928507593134104809606000445103802611546961578233024253367287117736072123550357088197958043412802031007921740214562490623099063506805933959813770343176753826641690441532455087078565397127895249761466308565727064686093492778474371206709277601574965684142179782779632536912888258940955665438849806826882456602487318259163685807497963084483554364061908178163844636864906921851352042626693973567669418762649379420912868219625307536138455348967508840740620539708056370934333372970559591993479597005337720124231474106047399055522097576252277820430413927078517591990911652541495476480886707322821875811461482814800745686164591309192807060198605151395351414298409678984311478832597326462030988185598110080995487394905418262878062760697799902473605693137361054425952099700084831262195924551025781350129002205769676126893641472105196920522537101184200605339210878635135485318611861223835422428450704139476433190410600709817867752758063258903118680540406757795248437332980285155284336500717170426800865162755182410433901008423365590497266694517658229104344977484165393677700515997577341875466488016324798257422170342359387162668262619741437060812571293738045639517030045845039613547753237741008206017443105569207753043703371021631027386218311786974777439520194482163355440204640763699348557972483831571199272312914487230594562326585105483966308672242540273085805087196201859599533801687006329001098017741207485155863427738130489078762020024213424479025746243785567714435741138452979324893418228776968962879027190351285649149822237384939039656224462799765459220433192736746319316703649098818441530563964482049225345991088444361325565217780738604890399173263201422625950275658993277179245991084168595867009820583865488727437193883917412074617449962307950077492078921632590810158624614492014221245243643300221623596825636047431579570644065249085305228163798932460877031889669367852423559612986340477839021641026418126663436226474573182938940904775193104412991249520773926908516624768210959049117191245496845242040745555667613305458586806330056263627717607483180361304927403735739725874327476150489441835545134913970005790734360733532451202044760052321916281562675385106918983855657105310235750539779331601469255581212676587509842066421705955730784422534735722510735840023388916950326088690181184500924343538136601246365306218254149647133521845222925312140594742993718853183279796437263509039792929869177302367624004538039520529110130002678502645655285525595301434811535370115202286618765620166458891013269346136163256367280830508512990469222885152083258772975814249748198749632627492056333091270260117970967284398431279346645961362389002271775177132182150864331142604792306537857762031171685036776821679085133333921968230098379425749307476203087384328261528741728632770128123375714909084983106340687769359606961701576146495814028243880501323008402365564123597221495310969902123461703843381300575789467366217349181379307165096981573273252738316894600484596094228105801478089029928429274370110513322364202669516131514171896103591349339899952246881544095164137110998115752878911903478292729043579374411391912087601656234353587061215639337019227751711955669337768546656714660303156608572875894239388037454140815962221515989575725229169759927120785114954591849520257732872384236530844548013906907897037741448364066570929169196526906827133589925165500671310072588251186295641101176022013828156659587700607500698107478002171551188440691142248302676500753846172651761238521499333085392294971630414389147152961959070077224626643103739864890817139640968642215259017348103888256388974277534945064039675416237584150894368857601198628060007404044228479955083340800398985956226279261175809081221247878827532206201539347457888347101789690757970290512619068947498019334563740580276843350127204442731284900986401500340266405523283142517274304051170013926327668614403110280080659815797862660981654497968830856788859847884640745359051914748925307320153551269223441332432878801174988810601636566965423630714004148160382995411327548668366545665826412862895146068409034165697971513145130970692294131945198587612989409819272899636563652763322409538684396369153286192029229604784748863144170674082766596727504481055630344621337017038735067835634831085178031413519403169316008959093445093253713062371707222163589950105490012757783243903832437836941720171406318282202926469148147401373207897925563055869351344817413744804865291263405627503982134071471129690884375681875430316311880395818400815529794779933523012131195060435046697789884957950873373883775604704571742406090358214456617824375118494730386103827333235310997434147399071255189323101652272787531892568821146470993973236842417124750891894855445954415602846796525137719769708573726859685236443719817665586292386743200707375936060966103300441009655804122665513227878976193971430845410929441404493052427812669263296774017038550279575158286280037600078313439300433128767611989517528862493607218425923052183738027675926062795192414320340106450434108511327733166473028823258147138264586719154817254485254337860409967335501699792428519314063518047797481031753112996198704838676781202589707945933950520207592709473633588744130670264641227697744574566299199504640308946041815753121914042999587196361458573999709088877544413090092048018265058735425429055347833965219011993301914488090717040995702516201644483681548525332797551373306974149107003472130804946510637045397621099620380989644400545196073007064592140554928166936758350650282400156145941459872924602316873370689501764338097073871014342500851674952685908795885717701085459311134131719074235329018356225333967118541035944441140143019400140719505102741202375951818966866806553295251261703596748211399351001034588738034148272438288750154100430085756962720052692607713387518681458549418150188872335571450776880670972335316120117719550033888458267321118396097570886068659458469320433081108930142397107195605907755048666064702625883158544016593811202165716058735291205426476456000903230519526967441509887060989261592349746951442477663949199813577839458907335272075201767276465252977811113773832960535857536787535840413763216844555278389704491468191202416132515442331796677672651426359431577533889280364367034705316464981405185326544128795759741141908639517912380681877849155406587671661218435702751755982907985951040628763202465507864264966546258991283504812039861054409083564229459877243497061778213624836630584176274391785904815364629447292134916340093682992479898695736819006196606163146629507102939807642597370248908799623984486142433319966156234033798778576238117814228710142788097931374663525764190177734358949366881408578871454660360310774532381667186366458761195447655193402030023879486105935032032398746948321035235348021829663516573883641487435283144955824977676735231286380328959183810039460613386300482660556353073778876969688150454593025240625567938997756790243419632215061180555699884780033825250336357989228596697886106081752989629605302213845111952407695686063870547989333796234098902959528499044111595362856866561370369032878878056893050058242874117842198680852155907011030394457826265423250665322903990162332813295273867209771796773164313543663563885346150149705861022368378723364283847096037805083173757037955347893853857448973873716606583027097783469228584902297241825661593922053669304487062393493915490126163500849617865011254972134222353926338877444742239809193442845186176925509148918186327039918012939438878577335419144202250988740572935177612317107179766845028821597539039408626687096156810863051109232453488499568247430521455449836879648000131397356636048626963281796436682004848942632158980172898912311731440022579405847693416834026105675170581364848379326338108200496665553858795993642817249331883043159875544482457568113050689111326937115459885248081569932383796554841540265116072364429682152977470649416768607301471974264991107830571085484011462876951814258645398294293761156929522051387689612912506208917559486494350135066520321271808322220747453759816157772958387230362469175424859835965878517663094589649756772245412208553026061144235387058106331262713705298965593653275063339781697449536491571910959492408591517311464363038252507483111079537139926966813181997786956659735858470786140379396527657866774461447902650706118492691834306887398616209276998243865849368852691365878758218624929123018080473074688989467776829964841090689187069943661816198172910871064000199369656831189988881464295307821090006209753949405647740593570827849803568892601083378065950452430508293830623366788302368203649487413690887435239954575686478717288634004092664329607489829812682641801577597902643182346224404892071858530017628687690229694366858890578325901339267786994795130209196631479864896937428070809859919235069226691143456171087976125534231934459596229406391756972662255642107563029057402595462325086693153840889141728422432304315446733948278137284932404905139483548920508690482340611381747310911633984072133796652361418899713705138424573397696530736290150419264101896615366719543860125744639504095762702300185528942177740074286776958910391966276227130900313903431657008848799367415783683647803833446790918032336760639458909535200272584799568712871425062531674013474092650516650568946663485889025902428975819672719306277532767444073002893332361172885076373347056782080718096669144940909857109008476355520380887074804901213670667078402113474428318778933016428543907217940589862074502462779020853410323801429754402290999532028067260609802365860710711370265442104936675535644330439621560997318491761548241340903424088057464241973319622876665199165612094051831234859338449440288076725662989201943818788314137656197461948509368999270401819940607968029237864510658966543901291970353470724566020829493107317480567860244217190851254040201231194663711121813087749714392992128788707706115576671200759587119697607705216486715897806103596348589256232374922077025992770552328752847417941414593140889321850309215528988257114935377327933535565276203102743703261062586019220984766795796706976774570646007354463227396883887834159743088498144853422844422178653144844332807331451488592329201414761967596036579110144563597435811043069275174385482669024760084493064835320063512081031347086405053690832441854649964122620111176916691876802308027714647221087023234263244296844913057338905740237841937215294250970763732167003402902249099105252345330287076531763421397203861927496172973752977670970361784276095443465017248697094984500908733568724496008879898325156691354404345553369549861128423045851699851457719929550262387632565294114063931419159328513763451594993901268230749409791251418559367649654726426278507804877331759697147772468209701349076783485093506993852229296309270716529187102660111208058476366721964886515947590723908111118910955577247676281877396275801544295908328980685544124042155700153388266920289860701165416041966472216186889801856264993421943286044604094461418654636359996151167637701186054809522238229534694282263623572580439640974813855074650180010118000609999349662760031148708936967971466612322081236203684491442339848275095173373973584123737785889233194906632588994482435258746621188776074022570480106775669545802572307887945411898768251260669622997240049931052956978607997438843213044515910320634168121052038578577616328307314115584537453029240133893661799932630201981667330473041297201582048048800242541530725915103951709491886136294471113424457037239701041573912520392972334138357757667172027068166548538610116791070434928920497306396120497131921953072378153056339593102384720142787780409747426324068929978220373987558481334634142337089014155348533937335481500954420284061850773840409459242889272843378382785004027885315220203809134203636598859815853606738414974619058609302408483448958988594207113100985131106190768790428973525683960529158830791147301719067894646349005535159309020595868662819206470584582473286778275154923780562169153807553365294132531278648328044932167281687057830999331568272707979061355470858851215075873832127217336391281763077948344402161059347003865025187087251653570051111730301603771990712536206607463190496167683385873622961521559124635776520603318441963002581779096039821427684602367878490687476653846611654494752241085830228727103733642633370888955845547256871243871879981267934778425693185015210883629517942862182580284793303511329766461603201348811736791859669385670354746831665913598215754971990740170042842188172765915541949182847869144163438130976276506485885559070789435856600390572981160390140121989715742737387155156381055892231349497068896304876419008428349143903723895068097601713324508558436257809851182368695554814690474818155170885527776073618735583248235718646610636800943122071028424304903808039839893482659279154659919184579760168833918511918645060391263569024677473322923134466880398766533463173280343928119444110358592735970995892027668937062672459846672749096714752586300361681490725240597491779995659995815934771555973093973684503063213305612182192371919290509615596330318782349555858669641624507500958684323860501980080180415309404921666356899689581651304471387511465876181501062626043415945221379320437483446293340611638660294331945937863677362361033743892639164118916839127620982001324319583986903974077746363319875018028302809432113659380458075484076324586136901581511987327303842318168110514263068437207422624915139338618373166783695989542257762238420958451892000256134491468788656312007191498519472065577516305797932925898990004397515443483460519598959212574970572659820587705088801314443274212668181872997490141799129024615691109059829526582402244101376974897370447502956084126410763441850227489894437871061243519231474878720216687865741209982654619657384967059326625836960952503093671222509211995098022170979388231998660240085210763665462159457809041977780455239552157366093214889692477695041487315716430146118594472404461491197551520421059752776260380929617105903715850614636447258600881050677713515365338094302585906411132082945083730053867290879664637569830231758535959938129129313434888046545414236179242334719190846493199025386929416941623239852562963675036940762615864179013965126473351223127868253889078738399710838416250635871080415697376019318301578408768993235430897414860057588613476615056175078974799012347304777603594305626431841900921106348171356110392155730693666395966738769682793988754932546719550856183011311182166697720270373891655269959223954342713264688450961811641403632086465854799281626346396611482918304471036249190238174968921191408320404510623779735186401488751048313468656441993920449410479608735582427493566814870736899923976380415735006602283917273504667212505790230686038017438973630997257876440105571866249464771843863593410727570346235874327935049807667405911206746257892579280606720802622171358924444529053147486304599867199069393825861196438367166290012868052544638281499235093144153081786665901796910423976661474175360967062625451248695965909633373709171822246741350086411253581101069654011230172831298736592847532696965675653423264642279178236116302154401483803169257012903614083388751966818836475789119282290686593204330356497671037995253531118334673485739056869074708107871919769001100987948048192550581317127105185797789629017711845944611189344090118213955911287100190390379913087487137966797804933133162757914264570762795349376494248761436333919171502882029463148800225631878789072642556726128457340227402772828516383433753541346331535399097229420966609641534032198396321683851520764651970596162781892636568840237935924343309885147565853292258071701453593968440287002418579645024976498263093552920151492494460233234217598192122897387285092112678737659763879572957411602734443495951187355325908044058656913673400686468741080183940270978211978159533927228084758873953009743216428943995094526883271665233890457514100350082131993868987975159727513071027952148590668895245020078501217422676413051450637971301217106513818572961909987959746960382477260296671592257583906502088141039081914374861325579164995559000277644847607386755550913424701422018897997409616857928820461459508789234756655750350731916766771983778155868624390170998596490095225987071644415864146967177575852345951227417659050603171728784475751782486649188538592331380544973316900513262349991302384480899432841357822861144848028678697533649786525498382600909631361066337699609555370666297021814192269536462823564854321547202204849373949519030959164744685360281303593809213157655802689719870695253932025972169141652668847186274061204031036221986259994320296394419388066531396335948517063523764689248819878963669616996523315197828723665434550754542161495209514529200662220593908794171472524716554949811983061997179975438533701009983090532594471121474308344059062523073111318079854581736176849043225100780570707602597417473959174844755775256820985931501927871229486368341691388999906199286512694242594791042855981268873558467930846791415104069112547842710427788295348543182656919602215780677211810262894585884172434015736282266260501020973953434416917727469804398542536926656401679290018927381655271667250223937572894967351469066179438100189461648475910952647822897909287885043602325139332195602664987144955713071553617948853174023015132005381104977719917981280871822335748388111347782424528227441414188167795181466611072614495654879595002915546236122882218527303701708924193299224008047055030172612348136907464861676946364191994607230783727589200905362833250525700496660262478146212298482584456759012621738655748911255426875262984960390759006733706158190268035837577020330545698820887133928576776041743731473266554677526118201275162910452589775896998754070068772224913126208987363604859590156466050014948727428434370896058661167014805370114158687097275789921552182761551240474968561209440464846691284650510944108666574071589404303213773089372540612226898023991294248184968040031572356489756400713230285440033415031896496457100420601136870282226970610165858159973073777722677172255619689395132911121081674498702652269881806565127869677769932769715078351508530343243564374368832417914954639655672744951698486187187506365341520742875563837351807805847706401901977959652339868438603852452419200314663305047400767168934470026407038731856388373812085873383155516049448415162958668815080800085893462294731850047808749248326247224159293735967212432363176003041331840685926135480246128684580037768320939986564086540288166701364855651306764460104481714786902765061923370155242724872834676684610742146542703754378354262861365448735122156486490737474073676820285660587947300288904170628387094383653065985182814533612719494855761030199466388676830180286350024003949735619688833892174569176827973630243325921968719458482824312568816562032874750816288087559084745526733465778495916652590285842956569595275020374556014730254470594165328402531318562888009409958242839096947023451939361513657497150947503987690735476944807226392354645912578471242639671919308229856158320194732636788891612777749508150425357802715202630688596478318966395873517724182314130671722972223239301400265935029170236993861051837962717928889529825451131599371808819866890014342008785476770218760302621470298005263335544862712337836126499380105280961884955180957875308460070587497446381741177466138434667230476347513123440895952571488669027287099426038609837399694526257965597671790954603621332595036214880184283902854965147922286141128102319976114284485969455013841917235317406563539782741527782413866940020536813473563680116570891407783363081324130600604934527430100862154865168704460207978895082281335470938839536411007746268576694964951640508967735027023160048081604842779394251042784612691527555972626765172542248033883242365005508397954894958722800441655663543100641129608200008514246129639488947787966258394713455989683247431714009268487421745413165344089535526952436726263947280663669591980812810299284495643144787448431175924036105287851579667721362364308095622465977413561424901017791691365684427095437630300547289068675272430923293388404163923418871608260203148824509921976720261084274454337437913314216046500098788236001858045302992270609361006991115123847739921968386130046861669355824588121518655598602987373818206641556010194043064394976796024111277797198356567203462361883483194210184672452252210279333318096237517945573594757667977689710672215173513588385996468549403957023596933722249302628214876340199146532322353034695095376448473982787390173224096526037776567111878634831102505928573723937262593723062435134257747425582891256877416179793245932623102690533070114701743655439711246363169295801018853964499072113150149935887429374455045387028721003413433286549291445453076705349125487273182416931869859461034001359659823613184369424340903658547144276744094778479549390721256103472978914393651610946859086773906582077786493274458100432333251689885446708606897586187528294675042241723514447731831252911421530674430975302382990298734498588563253164990444824100579543990959164575196171921936791450234998275452547233028688719902648620317516004173286400849207523304453935943352634075556542596465110737108578851045022404912422906314679936413505477029501693564142493377616413999522824698211266889690683307908589814813455829260483590386412608236403250823436400307329408593867182906052347011063036113943767336628438243588955134380530710246840983055867565222467080112802066206403238806463748101094199621025824256347846942138641822013718278206862523262096761162064816887258581377007886813257229054156936975676733784918938645072276797845080251630002177022162160011261641570424925649165604924181068984650267272034873906736624262334276600935969950679081137790209098282820682540907280044509974043055576787970879473661212667508786483243010480137954527677712490180011440756130265147140515981337124085579401762346386298091592836801760714973990759894786635522811412705282731022401573565552529633488826223074270520995454564592766396536178036453727753776146946782788321297260923758035352049418155029354308896474273563923061734372836255881255361492733304961457977527609167801266208540992850648478145613387292856462312424636726319053480367382747467006076663746050346105318737400275886384836459052508404815284991021637438675759566626577952319191187549719408126668557084538928739984129125589207096961617309340742963515248783053752570459081031176055783619622465384314382880498912749304099327786171012354792459104276396179660676445388430710254012221514049275121568489518805668136262123573620169005086464922535422513106289102288237981789232629234417944862723123213175439140218051208443930810411487589373415567346384627834171908608147408739334255714781121585324432914971145682688609236689963520698930740817307745885277224166416666386709664555117142448925179928152837565329116351082912787844960101594858350435996791657274053972488351663941879179881748059160232993610297522656932915091205095396946823911675046123068276196642773333798497757522273609716480566558043420679679326188678379167626622771240221254277218480861334023971966409884026227687387885017093697711459984860032009327285069176502864971722420812434598318898343957714228805161743998281105081626138816686693262482956103911811622800978355823504021399651089187739274324306190525164612126799692990059856293186874279854404838535154732342413417471110992629535767869413485461136111266406821003250335068110218236178089158087557758815733283547311273830163237135534619235288355671453970274012879932911771906505797049346954127847460933233548093596241952233097797658262947252526155986436288426334303589015546396790774337641013483507271873778865653438494797622049003551335714927404750912791614795527173753786926271567291884493354880454856433002038087058443412308595495758846329916016026955250977576488273408196029378892787359758517687275051411710386085202545932327368835327780419626140915817411494839329277842765157722781136926860804298435541919856542461803781808287961928964523539553196765535521073773156599414475725110354993415060181367589123930651062327316476072396422913043145823756717143465236182808940533978082080535309135106278163596645212395941635373390746466303640308082531388100470515383162567311313400027353577813770291488889545962822716424646288400725567295625137136068211868273425529717709639643888150608951147161493233649875432993956490033076770978989179539585202761490489582598884215551770539832872374990505010407689098491194747074077215643964098543734249956574075866707520394861249604004093842270106319900048840863144206889398174412709929825674352015057398167390275300183267538774501526199860467051794544117556556521787778366436568726439871152696192034782437430247306303207531626575858055490711601284706313578416610217092135479153944976524353385955463451249771655391874788210221728736373088507857423406563190384508916690218829841525713787067364517344245791552042802227926581113172782377352051275787579489879102642910989318001391869206841327331250003407881053426221195362510722339967521508309501470416058534940432489289815518776919682119023342207752656612763320871109416204533734220541788174531166912230927177561660088268864823304284496694219127960319197398110846595410508154186454104198332807104115033197344543093668468083393932707307781080036205399426669377185073718572669868740680614543060644964917002809315003280471642746877209986269626228894640238470043149390479834114983255031667558754071765398056322234066936517949045713072325809986077787389170468552129814760548002780597327730158358446658190623136899210509181857375050648921094058932935711316637007139650532219736290373959507973388027520006472612068854358745611816532612054968346881823024912383168833672331831450240628143339635963584322317095814466271295331031305025696845068591758019552572918410893673509973232473657559593055783667756020280419302566167412827242024756359777317038251503389671215053338919232085400395866758654568097979381373736413891120493172668558666246934186081673736481674758861724822619769124418748809076276726207181196997681866637115329117003914827760488579417970110540970441774005422345426869900615261392096847291985348240550894391741311446368285221154935161140980870500510803646677429555454454094675736603703837562794447664460182334748455841271022742699323726328453650393846590720291909048966355595198265955713388566332311509351652700311574771022108209954098455797458904844034505401923682381526339356066420682530306025821348278601985312590388328559912410698737948921823080270559987507855521914222761014961345168290126469241165895434472440705089147015643101549500691263419125211737651003084373812887261922784601615236530974043159820618056503809468604494774291973170066483723841516164868064743118696904715312570315472981559145421137637555140462730595419820788787545525967882369800079825660139732641313420851384198696369870210241742728171503351003669097266131901136852602814464965719803371202901005851483232638609042118894414700039337420150341966346414200527686317428880483586904393178066087792514843568003773290006777189989911678616444019057556913784231995313207415543466439571171462828815023004327976669878621249458933680048151911327437148248661736516223316470726733910838550402502041875683056751864681083523583425445486795376905796695211645754319711085947346996746755660295648898219365799077286742073136336064718846250411957881082835170153184779817361144635961848096821781995699929239171984810170087145111428533056827218802616153857047363620147791987094112764171467538822078655087559405104329250522151280795264754441659913895853423567452903729423083264251049329412904527995947343816380618980574767359378971286858526048031230954665811990577189320464046260037414039908830464466544441395376818387782067957298364038695645570025049612869007568190016240058027054682186535058697119695376405857982169000363196613357211887969007219114070950985946229388637314035035074064851592667773170705074726261160055020067380761834202100781885619709585661084003165057491347577513534647273450726384888034159415147977945737160933423348822778012169620803181964827342132585147782859232195257951105985840319966611601367802980281532471616831300934643639402696252578214598142634253676618686195147233325279015650504057369675461931680800912327289404067065204222217641975763864028213452839211182105337028767541743365849888259051365839882752731233550035768950824987087788890184693432639817051352386359136609843706213040600533825908836128180067722698734737615050712058216567120975398377523666476292960537263552286037575702916118065175306714894606945820692389166701715576226132026339512714133073934246031693205461956270581156594489926611975210601978883501622500751042339686886678874521559645917603706087208957317517642210075277507413793606364784982996612647138409262752796532898392171856967961419078582482939348352756342592439278395895798066790108598067027287283841125452059259010550699423082564242517521125601613203685068290687085924553627325054552578720468695615074967674609709389784323205610094557429137410795171931594802767159937401555381552595602200041962142299446837316002623199241368867583783921176088922650007101397429910721433475971069633092368289652919483957508171563674793865422518354432871016130618831262927898523217746202364775337811665773639342754592477195418498620610707503378066815897877799379478035085345444992238572130703607837024019172300090590121505669942729828376360416858344215644728179933225834806459067379590994721217228822028757262717516456481456171239007858112341260797373978626014496800701131563842987460688919452243761890499078383134305737994122891768247182555703147974347096589076838107798332387048660271172887510052940968879418365021378070941083933915215499284263944484924361211858022418035748717698290340899654924760750786093158116867219191262892516471839196406874632702833530406844791561466229291482682672399536406517180446198604385014842828688941356773331762875271487410267807444719810735065161966286563250545386538497557808436829615846040610252163378253476346098230867875225800466663334539606179224921254881640626792816884836271133494809277968312472102264666401793967211500246958484726400842950422023322183902405585315037609231297419167238063686722219256454140686048626925937354326702987953263774540894653289505196037651404774615484329541080751319918369074417382997000347150941201058377817996317844046983713470775948465525252689242161328917767881087766694094110472566300091280994850013424438513651090659318834973309266618848842154926971266246989345932804618673747521673734946940081762878026896226313074084315692380265295149175891729555341423619824745433978915693135312018060180670632594331219917193259430696627651691649621596500387156130929704327926370330542002285993190934599875960759394921102032198807161809848421488260255708224844812270071895079358457264663724913977110431333676189379924633108227940712515858686235255132390393777874988331584874449603771381370167697330227927618962067640519224433903452888159102228038808350811734347842269786025616913891557090322185863845971683114893903657383549133274548273772345610689917305610637074623881030142530178198329027995942058207481571330558710826945173379146164684172114666304520979185281835691363837569254365491979268730240268080468348071888812536707189033960655498453398279033443095694464313922588406044910083483477360716518388239419061461895060074919580686719952495978964636897141515673556100177957389754714104793603070382064688872419931611278091254077035068519496869494201243413107894856433698421693351789568193926079596190802005611907882212611805460394089728760625618301621251278195570335352343765157843687361936421441788314451430673037099310226785905051932881337843434577221759940060072439167438186644450114478959987997617630090070991601725247136770342454238598826414876027322057593093304908448363180817200076315587583022546370624795349748493959685604457214323702059287683919472465912311746111701072485469418894926451936117666239671590129715535074607512175042263688479629068799345468806472951648812286572052009625556994550952086873637927828779949587705778028786740470793951360728197498879546932766400607125694617655774117106017150228064355356986991604627771112391047543481065925037783564188382942938189843296064774526596221425188171721745972599722649119033782208189841079507636163884780625206245436630599432257684442766178604376479312998108173106136528106313274747518441323277716998883673063524626432667800904785456969487424642763981579083643675456846780658496518459103663279156756263479164249587727385883475988793275441630495934590409748952548097473236152539465143314959630775462949987608521986370457595003330439319376845184692855351232005902531251425298039025937975556014801727925464926554463375554467844978695112779189003673586727506083292569598118299498599592480128591599566708974021241950180735187845447030263163023993671305286746050201837910780960144493357197224978864334939859061042493340955083595236452600916919419974228415441317460754511899216446246109796057612001972411172554178127553037196662499649541871408632844751956672949372481470043803623192802541687886267072633954623238232155432168952262893610990358032221632738975596717179319267216318927759786003548417069831467929988887116219147090939847606169069811501108887428297723154691679718045580566658974234777916460765875874524199547807566986908834719842907795826958009398032581650372287406555794326963057924946281750227402794211220401111171253508965563689392338563818450602806006271725324625673410386906798625539966372907004678481297609340196908646134750070332442530709461795283907146749176331704228711659298752491136633171948208267914331954915685037772083085132827419023845665626740570108546953184313700768973069730245065001701185300628322424739225176369220909794937992138640353685753244869773353578253261136479102047052727032233081379585135083931068732102060434753213452736339645476712508091464409563970359978558331920570538151897278391707133866720993160852893819491220653037690599041870528151105929871464155436223789062942820764627530243689060050327325016335650854314221753350259195350503824246911343670244169445715187878553084242275789256166644191819530312289795873974379291562153670567879354969643931270182744722916730716569295610338671922643636183650560836079190137627736190403507871484710191640249256465626631699394920389561691021930565000986715402100295120627405796778624282998294261819210931610357313284707531052826966829117616988046549037642171364842589622589964657353577673877958747455731801330408308868319202110303315728074198637113075279655728384254563193539223855911239902014803548080878789133557210905340896498290369576301184934474125060128880004397995255727597930527929296369960077046045614246651077977535603187193955653886558889595940770099342543538469553209490821345138008727500308553229634265296722319807069234839951797209474412944221154743600834808019513477921430388455782321683515645212222050312119100743634645777749687880311379662577918432384066745583831538026701291538097716230216671903948223692849822995780060356240144557526777297533054266798618037551075970959346093778792970751389861086703970115861583970714424867974414365831662045261073180270318087560370300952388216991844777143011736339930109480464665100095537163525965940193642308777820978216386053879181381466382576272939760352532752210082087462089921253376772901920255816079512695453922470048255572598372561356698247334265399065922186858256376214690662440143374827053405457091013899776130009718852803678709855412246766536154864685342722204327339513076469841934997983025460321094527116105198948427134157517499123937075200554627660581934748784718181269520870270547153256224717057432316162405941042307765145814254278826265723822253199981372633748569888656140542267356089323859746520064635763694897016757032494008048043650931047830601602236419535324626223847161995702320316042482665069189198449651796874485238027526823284494183732053984743355940236490853329723404053402264435926373406845445088892608178338559547709529612441397312709803288123157319626592085854586900813929441305969881306259069877201034418325302473881529295496243057689232892312435825691373023047687165044815596711845725556057266912061515395763790929608195724101741720127925744007690801314043274152726934532419619422846134227215107092381352120074916340000696638471974050982431363421796484245533430211534948643949033485737468507363013458395556611981783819667962506127419627818651277399620015240186244963551327436616777001706078609588558428615785889177681904934588270792516250628577519484376763615794423733318405092448033738744705136190800920442316380769102890529657406797773808478466897081533484134516663476734950002762535602524748641697882613767141086357806271657211676129083063140066170010178196338473968910921047995601793161986851570094398060972369861886124451448709369802286776414249581093534439147220986443355942403698705193806963053150082487570815130559945549103975468054257558740557562846794378662106943019990743855547054007876501878149194139799182680276046891225883483711450386471195200064375068725452688429193579682340051536003841473391926125345973545512231376737929588684868040179790746351820956875894216507609873852471114221576307842280878630865867479564114579133302191242741789641394323587940859527938229466585854895890157576312645254319944917171794163108787307356457424753246867483176707049128048560313292313159277690112404171228891494355086144294785191203373261156635110294674746146254895970314256332902544917238815312908061446255837735772649159375423118335704207064106839146964596159365629861467630981386724530369955674516733407126928595181982629707156676396899265865917645987224207444026301312679350325156232984496868775760015115176588392501360520837880354594323961037978603641969377861574340839784970781683038235788752619486983326821804465467509951838104267411005531473112608996326143944092990354355234408702709652289339449590679669711519976093017747228332710281693855768133923913644110305594574346994325236321163039054089295291724656868338110913124004198565079780784680256587844109617398238267710353596929330160068414360851274937984107576206255879568226428731047401743655253729217733868900480225217386517132472146213991575705735683700083181411276419865471338582021571569915946180834231226498681891196909788576877265895226552616725889510480432397245539012209053856850801523013100209411502750713127662543005298601484899677917397966786962011923165106090170128033251715289092666967205096303072605600956519069129683814908145613958622728757884319067290928202870029170540030771837541340288758118430107455882158248652471872057663414109494892200969823263167514273341172431551955937805820078923032062812870946355670567569447696556806037377140955312253133250135240010228351804544971833263345099044034091862249648455505464216351457402121945312349704945058350440442520537047679373582481867145843622683650527263714973632453517083114534556223182995068055681337192404943835970464182466290836358167837316356517032136885454591553028402437261836625138328254145137917172992874963694485580086483265413972038516913760123685249944183333096071699899767682033142452594735348395261966067409454398302288735145763065457766269900565249442349849447050023213723595402309041841192511621640656667618184724595520751455113392899498934281746459288688767596887523022375030707441790449093240734859235376372081564226980823791065739925878386135301429702152674317677604647407143231948083538965356183821814224287576529984735026799385865038238157089638184818153622321430031694582318134211504805356196240805612234654223708417107141627032480893947540390603567773685011893126289279451831955822560288575810430452189233276731254577899171491972570760423945831952503279016009855815312984600962538748899063859745092176058086632958608504918252864747054803871646775343987847791676813242742519643497885040952486423856269286214347305676359495719923852390868022006895396461951068409964128250988309988066420059116150542638527155709215030967532069791559450371003931051570850854698472704039636289802870741772435305836995686330656121047781072118574839921048611747369133617788683798444919688686766008701629067773386499335343181619049324208258376350807971260142448921059251470944312741358700026986757359422167031749297116422785961732406215860100823511276949930660188241769893045122029130601060723788901012569161463875961964434797183898384210251828778227125475912868880316364543735710113590425625725316874214864348666025953143935063272092014859054686683238011344579358226220812349249988635998012250032577988234014306356106696843615299853624336773222806371241780192986582123156936216885758598277594212557425086046715593355682953262474461160485679093577287413141551668160500875225206368591191731533797365334739215227780226689521521634839339106489189307882863366865883018580638914515262970077569301046091458295997614702326339537379731387757325587071001457222390878205453845807769771387286099073876341343566686610113235813791937804252472425921300173264363003010631932679184194511976113384426317820698274901209461949561418502077689914934824168806345197044283283062795294553923010354167273028882744622290426741789259782234537873025193471539575436937862547617997742417264580552660225157289979987300160534656726725408791753669962045177388732072573792442768602815734289291011908604690937179170095401940842718353810317832256156946051202471581910241833671991114844915294703173416302053192701130762122204689476260982638296278608828742252406975215734888834819413321079933427754823940303724323538791247359551399974574542285746169265374635785885423061064734824839118101716624268565233676864172652531259398684174268275130957067316014374554479298106560835906825847758440796804148311166971902805599386838272873077865707539879470847900272996399445369575806670902960493477435224358385027242842422304103840740187585321045570947120407049761177663864063656200647764572272765309870686617459713352482454726091109490377736835295290485061879179525610944625426332475029366505587623336735610713589817763543947220212612529488346308332035712995690250493555298388335962401049611175055761201025714001176250519160503450256895225890576790606379364699934078556099051869669671028212758531265089029684070355349108194896666053882810108934784698471301041691024751000010803081840223096323402760535881141476570173923318665406941294094394145192907151372107336296369804337497483633651106755366506579170948640698144601591698636477779884070683405795826892756116092893594108881209968872489281539596497149523730929510989308064063169955477888755480626550919816899598500339766051730126703857992552875163821644427341897359382462159215838747100750131770587650811805857118032602850131590011834890097587896249216505020690908349732744681951907449401733273432655045898923977519605008531165789223097822279212778195206524751930064535945859403202868440627090124171942021637870410767133349306835429779757950557204133429894853277238372761456624908483693659247559558463378675151366449710997863356117645416166780377245503941914862496523823389691099557252544692770321119506097531041620615086097798424670166269678674005451690918055911725019472735022235157143782975780383236655616256014568337701534275420446505589022798464167175738676608888517403471389360893558371105866758078988892066759307656375106932001118051319351658544239905918577507342134799386293794785198680748147554799785527954749964204564485779544486952739790302639082605541406471283661688848655658729389525665627533298531789382163442170650231302489863168186869051877504276051099642007071744629988665841006578196901234860963388459690735908375684726229500870323042949420597861549416592270099745952641737644227936407881855787030698893813032905687211077685915146609849031938259187263048673955552888280866836464180811615843026486382069788406083233460257479854176206652352273577094706342958000140766049336905892781646746385188326411243526048601913070147008650903177238365976725710321402924054260977345173238438010592707103379858191734349440039867653997618083180985801833820751260259644638866203631663888054196811354472191414537565842644041233478793718153953631181310654589530953400997581096579995767998308226095113699269706007886708155413719258563159652632769920723284508894530022415662711196117966122904814200836895291076432576182005242667607540909634350860950537900903901633627086566606750251401894317112146101472857518245002879923818012285832891110901542005935655791201570841074365384777767294787700030008068792313494465411573426710977554644229451668336737521720904328101254353692887798129510039983664852875932796947720891763479637943306354219729355611062758888548482640727047782116104327167607909154373909288615198462503757929696566451468010739606425259708464004642150704354865814012779556296368956498915312048832934783320518415679758134886640479732995389431715224485142932970948302022752731384125972159005387391469053260573120514299398785770707815447058689907534593260120911975262210602557612438967415264688685758688641057792576225171932804228175255007664867732954707734240846951534604877643849818983465931080441511758084797264847887324948175898617886494729726769527696293943872745650632548344661745378500999654707328596618456088258073783584843612217478862950739477213594796943687708028802803656401722420496703960719548506708793979725973685071122658138521769461922707803430717463733491848422464851423878202685016639440850210327231803909855108073422407114132554799278462293733450685976151397476811879487143838122510714643484444160995451109801068942740641242333898895585996183533017244012160822449031304898811927903293940129363837746486234586632019045924676172340312387073807189368867945206826843286747192818159502363204081290090445787999844107336088692996973401151853767808700430877768567686408242610212858627600628361091333551165464101913839907084491147978509365349788410564154379655458212225329450148319221481031512064473636586522926602088970996737894151876613825109339567541153183217074677906795648549671892383393956368248509872207389669177852056363923309654146387016853108002135913811190504262418022098696385332413361672186043002986876206804491036321815368909345147676854970922550269315704257487704615685615742923115150485900399870395374827047543249438101473795522766792227293487981078930060173403138075322289066742898414030198721638486087048454743965758372119679747926314255792617061190223952002362703531702026581960386756105058187157670276322827666443937204575784247500547150524573428037175971457361661370935596023531192137512694051334127100500028731411714075742549398007627869047126850317812721651508460556734175821856776124441054464425319357844302164482497153327382729545452592198412749795212872830718522830218406906735572713354427945403392348323544493637430735446883596212292428462540155453538014893641487514582625631637982818736444060476080801652907670317792448147128256486212910809407541407259197876046819611584366604830691507147737028925670648981870247891807457905528259627132790125697724222185154539086797024341050205402024557882703105339226870472927113318085067611258168808799650262242278652074821889627993268295557705567592225502056353701238876507390697095940539623352071339891517597291295814300445005080518574008234248153138710921146478339030697149615367044895188044558345724116195023012409156381514099563533140245690921673994791152027902982630304110642106200356051167400592478161683233660471298391733654413943060321073181551257678282476843821647586953449452910900452734289142337919236100212282140554125093113434456333752381612006775033192956419568242117730489183856844033771752908148300616592712625829657104070127275925928107094302217850647775328751910437209775376743146616567701577080707591645148857442670383538683511845752328669357175265036672902791437909684490436417121260001781319984157553255669311968008217196614769119994861501188854714224384322782755199113941110486564921273130962511931948527744171470060690574076509657992846337248060062203407257545674725594809904761325868846622139205105194070908238943232147893622366443995282968286215687476898497989276884901924724893624088289556445922405646919886319687491938323118642774104559676408070031384451584582652480037155978633957350186451632453103114064354178901189055917478623670026551023027216332907844374379652672081582619686369024717556604811706643466800286013907364605512723566606768774503068357297269134952046444251249833574672516169396100476845570448850672538688453003296514678689279881042363581775404548731359823611638691669018699384504802933361764066569442010258434291347103764048781906837139813080648369602518382030673997355448977132411459400897485129113424234616945146482132763482010230921198495293238711760324473858631518702255419260955718875806576208163455005530401045473773249129182814789700410794561753711790855875860274522629731942805223268535569119586734192323167515956958254255521639469145385765047429642843513093185915238682255698836700307761628805432447691225284857539364674356412410462068483543261136360571913246220587797466202559158780367837355085310667902129386267934446437813125923834446033602935371720825276931096462986937707492286280450502695605409173902378167219099977306134790676810118506161098849192699781245745037984710003815686898557510575391761748223943044284911996551814269051869638767093625674575611725176966145818549561944804751243737562477949262698142329113707842180452991481419404105786628041652429900926949732347410543345933128424547611365633575019980743109635674406854773468512073535455797070326518528132167180953296310801908270271984074596353805643577466319742971753479701394352606931140851128193505002083533384778881987193562692126809355454632585445751931253944954970278847251588182530899530016386357282732275226386984403805944322755777487206422542904177580095029859385771541206687076615528721055774096161407708673536981721545515811936361534989820539856953217485818299575549173718463145802559983575205301456330116461140989106975211016306560328739329353832994189710250878382048549954534996437514296210487651425142256621456245160086763569235712233408984368780418598941740421962071721273846649915438352544204878762922147606054832634044678103669266745304696844845144043011897764461914904869390825813166004069729755098278391898506007012129905925402174064480864208480780746432793119268181628704384703445418955248180442184398904407321446619736647733522441095512271128355133685371471080992722734398611394056548891211977684381372755177411450856139942583877069709623113821097688094023229349171774979271131428078182191324632586754107726620634113503639610344033370678867149052863099824277410009533736125540133901831742217925949650862193595092604193239362419656342521700005384511672049628156330741515725517663082707200471487377544462926099957761053918421401521963563631927929817765068371752135364875401718612922818063040259627754805792476602430522696618415070696952006830832420319340922919973742522446017166339615666363775342774331094098683697734283043545241828194524243346183601740110212447660114411355519314087703185550722125000434116299441281502524892027159428781409587791222481701828079518913642882714054974784552000879060703921182194232464801622470383282717951899624947536507671901342581044058335233746252298240925181276716910212966724935353822581997830401272230383591683482573851279149473891383766432305320166825579243340003925717653798432129041130129106117809453777157454782094897673058013563974393529404720959830465625109097267685889859644688189980459891219832510240936251516471894232235393825679690107994994278030817013058135013264442429053349607735518145622675680982879018378341442611689976799728551075893120942041088320882570264621232186149747932812738521575450200243553315357588913208421972007580167044697901690670105727548014174310191709940446453492687098258590093963261918145480481119795615208019056658942677898452341186556555886843277937938519159949625695919123711512485887077810327104767765559144440687096099371935041582163052155749074128421993208727459095664563269437260900816553837012554809025279631987628198495667253167899910284205352278230282730654448258756823166900293521953751544616953838622771254056928491082932810806041168230478730137793657287782877396207407157281846533106617422207742249096612717828738273711641112154113577346458230453307357328408296957413899320548865197007261777474393741173984191257360120064570682245420807304416939057311747556913258749187674773560334152143818218057160891787954573317673590695989089407752933810550115721312903001156514339274658800445361525543341683628787580214068064020517708251391435844569477653118018663926190405546715929682957316135059000974169900599334220954905029314035561560390330306537124722652503714296695966892438376386388999471790177954535399974399698991509529672114906617114139104307876291028897543046621072255469836551428810825741070296122599651516757863782358217093604695553795016345354091199973399002671282440420967222083427205159707079681280480941488989072542685590423450835801507700053962307950735766485716384673640980684408243813917776019015532035711097833040800667920058082750207721364470553024750576180256800999380448735197749890074520626464173490188807125955604789763222766693982094041120070204614968099999822505386776357455655908627854336353306515494095655550465532314061366101590919755707368735557045812232271123906175204881279175812493782808798100958682037796158218024080073162072563453862789045160567143489462330124318716605006551167606874442675147985743288950239072943478633814442753970715457611761123215707396416472234934495534377584422487085889828812127943436229923725137732386037938847459041143601029905819768023233955450728361855492640972627054378314251409109841237893299987072961065819308269614849949501026198902698185029348218273487495766172334231064993805235029172427738526316933761023465588682762479957505819099776419524030502850103285016880914038052666403132838063220570887546938720087562806253788494269472222918398282205188928239554792991921362086898723774871076529745790786059875007813606660513543066417098904113453677639834411548292479258044698111165417750602095289247756048680437900882121823509612278526634899564760089616994777309009758191718959663422309894553760386070930991367215776049271974954441039539661947783927183053333491276758030143461907114995553469113638438650074987544745224402139630246113688819886802650907158973420811268580042668486457762298088271210074962700188025583936434634810548174157920973565693071250385697071305274130049187657116874404631916061273424904090333568907441827625243931438676647773460696489605974643191668420714910799677433567084201763476540685499435237875869233743688577818379514826741432085134463530023816753767990148038863771335510041866152449760137297852434484592013176832673828944262312067898116649725348085480758043608277815360941954396308881458055371374789551256440047406075939402894245984905873029005769136709206587005857416110004110633585047190992339894712098419332827184586820370490131166744023196165464504702935446025227400567789642540820227162848301986666519802386521783270211892365177675339446362228865806927672933701247350488789274900611583276203805346006672770727338756698797542478974628012897457569345795356688965590024995494378171060461942092525312149795618867520543008638969225329525776700462930595160802057715297059025568415388186509636047574418154921305121661553119653274033992156362361735693523903765207533082242823479783597198683740829784356450115509850320298178489570729741357884964163625551445740082035701717632659441723523207488325356008114361293723698542075391303296094903490621463237130625573977669109741868472961374382587389573542523637763148733896119668625367649446747737316765857525570699188448609172051786429073423646542294075883497555588834876765496416428433718204308580874720331315632116892950122237719416820687050745322328846429422555155452291696017868034142794022184880956369317021213151174842103240188336995274019221049092685328420759009164151498586876507536586679587878023699513364053399564125257872033750354212571481405142504169771923052520248603405589270247220752734517234566194355573457909442020124877347375835457070467855243121734985160639647396108833746836270612001978890352587498528594915137086946617030190516012719863134365290778667447080279183265744636055407896755900838645837360991130851785852982036090702124824512851508532532130981980412919264579763796728792462234201198416342538804879639487970036631667703989936375442733880462242029590896220434009015387383360751583309274978800452426228295492821411548298586391533747851657925105263519579375352460654639433760787427662178882256787347494222894159211716073772271535762965963849427877277096692088298560759809580391680308636904382502389513533444390266006417107967623712437438146664509484868278265813045880282278225601284659013170574319976925210639375065919495335833091316862602996214199462716820340904775831503961828005059201511621187898330609324468083664759748097697297916264263609169570789984413919253138544236662135918961703419932774684890991859695927119693773230092088136401412233443179705217830657978908785554303619086760905083608832539752151946999736204586411459827127081840409019072550906924118671532695417878404944159338850530323727602135720601503852229241448948302165799035527514007795209044777845273128516327399424222468074745280124848426909067846330001790093379268629569023282359994589879765836067209890634979463875839540538885490835422148227318257022992901019882288985416199606081831630246827519095312950916997167567109301608759671003692459400144852473173972934530078725582519663539602120441849081104299030712192654846116335299120516679380158523082864460053391281307154399524018609883029381884121486766866611127477211967776261488216609252606142422505661080633609357346420880688451512118395341849767078466514502513777767300362429732932671089593887362975823726392244903638689626564894376856639132056533418924339000856748916149125025041210594269664191765924376678681432373811711492378162057499475698959292978958121798854145759160669224342471657180960671807041921984400289177907955526354628861632428614480103220469786606509338037271006943175177026244729364031216542840603463107773152152435168700554902827434571415111117789049829311773701907982971847670498067681943994946419181206053896225535621805329317447325730238613293221907728367943368681701313286392130149287220097842728053413116997906836535251725524890406150348780241023925862932454820784013796462008913268654328256021175464578116739625074957662615186881653473428014471045281824066274565059936992809153143309915198482847706513934957627837708302264562678792084095920657946010016018694319909153838790042297231880610985542158472431309912810982679289326011422592575678454750175443815344761098020039847014040307934232338138706232904165541249402049323042159784226230398133117900689645931920619478658674455717091607576913663224466502855398336449187105282313237075375648208104444205944801390504109154702511442967869720973234821512719274753177864548639864443277231296899498225720530294306987338085054213542730198233028697322755671554622843035031318246663782908420794555205265281090948798857605142724816993168080271051296105418055573332882956699570484196939411612763808195969254699198979886331073606477765151770388846870242050918972719562938337230453883492454352322954631666643478144040013564664314016323652506838236587896751610699072865203894161251244315845818597163904830662286366511393215377680057403376132676011726841678735972454620467181828112910313335453046927064905794048651365345426612689922374769502900548056564430125255686974788227687060514600015212832963707632710010207210759357017639937848714955329704935625357407754375158203475869589712544983861880433900229399985426430713822422517364963161085654292315613574144814530195012391891010065323840139486831965828037000108673691437373310783717222534388943061438600297906454761239199399173114652686477394769830432944963764499588031344309701883797449827032599581267019147791607477868715551496728949085829065740386278316137825277088878523583699381997474492023968391475785476237660034387349482940489927585833632491869779807825192659661705129380964246185146153361875194931253340686409283390575398706436290224037071271165402731936086742401062402140559494199753549423268545750805377023303780516473756185917807715816106646794881525814676617480714668782219176015039226960914314566177544982661787811585336562103248144222030757200847458762357781310071303441965909197093210086738674700266172362147330753846442317117211886447434534573168660901430854870990144551253098049497853412618191115405966046935171169693542655938878493264405087735732066000254327461556257355338296267829381539975548846192056353828606743358386347759718779241421238737646646112432861678719334819968080569347370101788769543963553971888537791351138257007652463092796100810516594466130120875927379529810752571506026778597632848112428507402104615033850052977119782758129902427010672356779287681830701107019865393466581586105487064898510299568757040751124692026398970877609400000579103665619472062463833394069851042658741484008575474432406493092239265036816979869233334097476803876570508851954474587330826001551650785931718597558130175542890930298555250436857167267043074177005882953020239346065054535006875701594078453854140846292392407443419366087934403080740769204549382059283297609695627487019835281865204449538805305887357530901900260811358038079976050717287524186417667157031549541014213452682519946965657907426142851527116263414081922755067167349229440472201847807873525465601889301176933503673823604504656000524841620862922376096817100691535443268339089060043316638339403647532211359613839663050104072249580098261230560171502662686743591666708746731043856738810315419805321179955928597820606671605961870725062330687981645426188360228916231499493808562151607482058192055036915646455752159428804702831721850760532995536825121447912319416137984282913281216252645982786013394379219405963680979923861853709964589014846575294635473124845672397700269358645418532179826515806157390387556430092819950736499629751478337607125961264027784600093499551583197883973728732835485393619888783348041039888131054759032163973866781339893414844425159850954890812055807703726167143488541249975646985055373659191588179680557910535645340356390812674543019402459627001934992883518317330946687295007651939142776856722891451460462852038065470864542301498464985666568905811984711154409047688654130760461646623269624543584256693893348220687142515996505195748364111940292491304036411272544668351545789270574161990691809841639427764578853244446220090288512232704528176625310884737006420243682781321912348982718237436819471804101066161756776500087287661045724875088537171181410420619586884332568881691191114074103226555277174179952452345883086923043849808774106574429674554550820848993330356208098465721619187429119861235431921918410636121025872320363921012091970330330880030637843546274222536835700314419907163741247503288188465574228281510397158700524958059336504560235003117783575364761675062756878461294276237116230202176441985204240314192876996399985474796896231657700210131683210062592104219347477259122283414453111242868021977018416671820201919495987674366115760923040970772649493654962523249501469194110728234094241762117665199509658822739943042881731934453511319734501279627142384578835893275148671490874697901498949786866240290505452432364903530863866108685541585243740080419540167427053305139937888769768954356484799142471940832932982297836822535248726213710469676295310895847800403010309748971128493467259657197915250330590466454811182427881007362345168170967006251736458423568528509474196863901370533990730945212390973351860764039665514623002233897862866256155067704106277790467130458407430087557262961229483950563772242355067641291941927974808322509597484504292484635078766495201776372296306563351504299891794974848956795339505610875353548855223950908689034713592074020822392203291385983995097710129520771856444040970927868638727704574720366421765287487374063899107693384643774970177795204624393979169134878368619111680688769769004501764885035704358119865506915666312278945949729762332798663654620062723092240492633652501413214149615040241040955241383767157422085145042681653181919179542228091396087369120649434422474632499276644584417223564057307157730669310429934210397299440718103555068566717045626113709856281259402150840651861728755150930971196548712502846086757148159424736208244988689827140005045369283904191804173258018948387134652275402263856024192013963489730033424611731337770446611597791178644838275434209101933526616912329454556472198432336843241151259263237883364400069881634491257505076040859630032156151743762473459639117482128651432019908431616841514693057092375284603377435705563673385454481972985282280872154323790774524161906358227238442768859632523309636794627907420788655287948588863162537188536280797795812018446627017785766623673928137560278406782876697435464475140703593142746600376050586556623439635155282203379584959254388688714441645746477776189808732546090360665785687271188461815920216388423218976627215624922381330806889790230479816490440402714822476503864843289323622963129568032315831386738621513273946034255165815368002887792076787551177227308614784320811532429522507062433491883410888413113412053956420473380376177123943283202016314019082925960883995145695181142046110924247119289175331614265803061313321183335994330302739510732499036677150768234334771858163925391257354763197065022190620564758088977397148188816488642341563482891677342893729370157465865041095176000128474838145954895384137400717713153227645260906009290852077595441516835052413697222923249070297809282533571473152381051122640976174380364686291936793446383727015467909564449269856755105338740756967665214134443277605906690851918868998263752891417974996071058898781608375150522518936838301321122062884564003231116164716539398562564242291268922120026808949240271310951104013882127644034370985657314425209985733520347647925132960361498579324926497518355072232657706533802017984550358100032586332674991913108817131415539166060854482576342959262914999263967849805600804855976479555441944690379555001042492944550614931392020180437623749590032668444860832456338256988188375410479379997222513266265917498825474256173714246007789067698148173177362467833704343419777270272598584774145299987021062360618434874421956595814171394137142903983517485886177714103506920587890310727465245220378334402348055963340260538336990804124837859023487966977545352957128817158416042979706380009297427703061667700883892832055256984386209387504220207147461906890154571510928817075282181842531472145182567967300680115067610679370794192996969686594242354052560308275485363448570727297871379698003936372527449943158813146502370319695179577328401384429422140330422875937677504750755991467618812613114934036794381141648624478871153301192818692179625033265394057240961801029049399231165931124283955725649364325908577662356899427393081573918798308400441247990357415535258759708107798438151651534036361207456579658450449886772567857565683822798981349633472343342627050104980030565374347636673873031794772830337650213408608377307322698942958142387478118304928395150000491230818651634417614192970734966319151251056435472585900269022336401825501517488728585099122311216245475681170654989022161266882133216177600087884500072798261658097153083370095174230293502211016052806564642111316511329632971189202412353135561076310336095427270970956257714770657654552743024530868510948697113394560361919379944259228667490205831836624688492257208629574086591475785122524544939128301273369392926558643885731033215143839279195951531743714268099470343988238966804947118556922283136875624644346596796612661262186064587764227819596970067265801273040140137635688931601856312935406223698074559530862037716199643736141198341409281502657629435418783406366587245248910926384722629780894962461417834118957631997175755041497234112897473948133517794472056449236196198075406636177382351890768268238740329189155292187696287243651075003950134860426726155621506024637761394729425936659581785460933513366906903094527571354229262192236214004025729592025289436294834732540722508225109749802148012331874767240248096252758507046729876382311412781207280370989342427936236055130792923268877776337069718373523836486041309488394099476950808229520252040697929973969159107970885236146220803093379147308479743319626103524950951714623130188370982050891181676491538802908017219545343334082886387755072216721800293999785255647929628467521152709658639856968926087135488511385942459136925017961196201339536406298184263113779480163375987069835647909249595267152678787361809910483090710406516386151090121906748067900674863290871582106922075206505399993975173508175732004741975233119293797838617199395328835174258970243313975404375128195457390196553565881702358170691220260343822637283783171031611616051984211790349771923057304791000323262319608832660286118584252512594195537979063845234708852384729742319885046523469231037233086214491589181256754457746086930753455461147595739103363495057480596557838744298727973886290710564317564596146382761611231528806496803997554553387168046984406993902301940218778213482541646876802506663689732386199878939287468789770756151528187959192216303695798678902569820615245142929853248675706541717039962006197340294366034376621241939220067877621680894162328559996121006997900649379793797438109017600865652182664768035825184391321101992084378399899998985123891815908446835355781082063379864433219931736820201271990429698107924719117931487473516774097519524991414864079742184232746207840876917018125101509796969268688976743582951862240743478289889981607853700017041344732089636032773804774547145050966390951895327703455342267907859634712765046619352071234796261915589706215363827322896195582178887031109312974971648062410104081414730807881412108221688316066349486160419636620600891861456561233383887027711561718153328197457059116624276242597592860541244702927723036124625301720270480300699026831402796022478268432057631404008557543936865595164878185881924649333682276620362254770336721751567126233066709765706360252301968842748608236709003957923388631013237914024625872439867011744095179949385744399043363235530539186732502335538975693080599964703658408223530064215143635025717616614876821606001216765227185341195593140740540891972551665829358122553269240125312296182814628390878606198448584008093720995435259589857209947996441857544446038705828492851235318987029180779396969745528840440643001998487099339118653946563782938406520129607599739021015537451822637531050870839159275312973412195146960653860325764151995851980025498233497132250227641465466437551454252811723122815389949738796280791923463611117295902117202509678634478378751373269639023762266630217977549898635028748944702416232784149491811410597166456881467875015656587335697365217163379940509735726164524936861489587691170193042959740952334588387134247007298188744645039672463815773486294374518517528875505063120553005605208690404009072689391716425036833413501504575803831146760969797810523364241074908681687059656857937183530302399580747552929915669651188507897155617466214508738332712280753995713088638522033516896395708188022534498347626300632376262550933572240085161640243642101936244887681898617554929309845937939641344788696607218809091080809155396112627400591821047943231937450552554959398009443675357015556338708934650962046978339851285314210173680387658337825202074768293795323093100000871030849203538978718741916229870304676178203338476407061045538988013006029619196800660394630997108116934738447379867707292759420367726220669495893902700713807942636783213443907939004766412556218366030261183695546216426262286949892844664144965837144905619976538105112150239714662247554190607652830569339153922631033437190705969931151362009643230402289709160422405995767560759409015442736879348610003678251642584691018902039425226978431411408108144701459210514454244340479448461887607692883870801397570669344656864414537759092900966489724139254531544457623244984843727840399183564050930978335267320876180910468453097287752441605288138224989051863029910050792333332985155345250078025335207631074970380420735874474845523474729596552363785296585908060022200919945918848480391876358668658180170366480883934819223001511322043731019729183199627322065119820683252310450673783413158398475991750012419485655340260789336599018468344613918914185683699011610487176239556202950891451226485948051459625315054424557221324159699262856548588485732280119157332672242005151759086372564932897577923700567112746928726304825097762063695183690275305412458747947459812653538057754349470213367491880259329272001085330369821658500468211760265218150080785463038718658026724539643720747902353481639951968223160252890902165842777971217781654682044189567422743465148082623412952078789510141986920640756547193212476209178094297732236576995185569375171632938703779946550770892864786425750906004646891799861859487446420617023957418144845936846268819494797069502590568557660945877481833455139924592674847956884570522520834033751414675930288536954283849539476906396098803677141063302004179457893440675080536839815628590015226198809716210213323208794327899135980687221262515045870726344761650275600954353071817033264323432405541904597773400068835954033700240864568780412825606858403149383010363149284894302951325359273230463903719497833490307421545281746917048727612998362254417349741653225139620853466572675213783847528457022433355136296573078680121726060989268472757315045221175810625392989450113251056131945027313844404257265993894761519631846203398663102902551476204336558063286444061903933345709201041079987581588090109230004191514841304275146825652191034102449322866445130743743633269257928841643244409866637131372426276988332785776626043381416845651452052684022136299231613022027648310197113598610344794731302831705586575288689813520002148711082660569532618247665521959618317457489157094943853805595295572664758183870132183533771015328368250679141138270629499376959275435634651223612031562579387075946342442789223315224047311644947578706550422691949067648054183334085099253274396782537857169595309589220796034126129457894578485089043164384558583870823296460626428477671566643767438211571925402453307596312362548525707819443444804286966092741068654557849394455193317905026516291789559444079655002824552927676175689625460660618505401662780691872464450124349469436645124399452160990368190826711992275876133601022254856759726735412536178970225383463749457910543810733050787600103207889037360547521472167841392599470359273251041297511908994058265306639391210379216864765443333767524660765353415905595988389230188282194509873859050950561495070212823955502007559490235187596617577259955776930487510303992645257927959653730224855144836384568079832641282952074438682202389224145115141553628310348726655792910367245915526093564537461805562573702616719663856461633870887035027024874582431184362737506212702124872920375177663353905047177434969761165159459186366838179324416635132951628948279522221885895221080935895830104705371987518066770681356861976076545372733668314551137474358593796763269610590910875206038018312392368392778129329517745902011827224447016628097054094758007552307775118274384189713944247822028783063904386101995918994625862758756673086530354276865118038801900748232524079176783853828181963602051297307668186403868285231046698858069021851561996127991869421139658970131548334228088482969324706349059785180543088929897020214195578749974949067548013132747480837322265395344486861621109032148684549569901696511944694677735326597309874404235659794095090667882472225666727164229621244291373425884080476760332229659825733500119360079692067143491893363541468604345460494212397825300923642106037099526928599263264361910666714649539622845301943142171869620169445918990376737282366001202210975310344902902434607606876547757033470404165143717934638382695546701245112067825867191925270710267313486751209107096422735337322245482057441127365442380754055123215513715066552558741395642297816033442790040944110307467885602343939190414676704012861940813348386118382876761684128446019864064466933743529140153117913003384203726576796318032641873703713062141577056078035870637781409559768009714604296588350452658923251561745511256071012733774833463055807035082994504371090134295439158974962093564597384883333367552686240266888927487282665638944216412659090583065892591080105783790902041251845326679157115264452307543784230951328649647901707122075729734890017105333430217530027198958063122526165099067511202520635700965976392343456945814051944002140649616670893485303679337714146752362955172742552291407403434300704688890407294889573513807297259497966134098224583291797723339294827521776602437454770584754525722239249440125120046387525767127383757699634856656632014928847845554544317537575839393312874683141848432587955349753576001236253168427897767713779627264152880165651910517361654909004142700841584333272268250003898129578180642103871678742250063023959154718682827171508672168153986663662038626801022889309660050482603966501062910871032685792975774553948975680478724253351323435240380746647975851581957321312044218791631903861319782407962249867348642458681979615334704905559006605894616961195992730540129796225558310797271531990329650542816839169195910260801310151821711033485178553218912359065734178717471365227243196633296740348667088959194231746912106908533737358720635554080753732305606274101853399975182203700284150132686426784863997265636786611960947913908417912846197913325555492933793689731869104489106036185396244704853844081617152160715741414622002077387689558233394264870696376652321656494926620918328112006929577461618824055864901366326063037585111656740364668341352986864178075102809593843772649540095334013220642936554724629634696473614163638389050353135190175548094437064962581674543090647649540309897725563509051921295724326514457173721071198506303076309296773035997493865446570597717971067685330417952860382250564350049528434509091605569604846006274089009790870176743101384022360049071281392050855918432817170744618788092842435761578495830285687990671043801881798748467594939678889787373973559902656096046874906745032498204225353862361042982201048132141659191030766150134981948441616469361957163856395482810975581063825189523541221561249315271209227090845702192816181851322135281765952851892832144636988874560346938965810806028088636571495632718101695362801234841797037518332928848178272922890876309884718375617056763223726736571446389881669769365651379116736043038620754329474192882482408545976936700824568900077917429361881878952654462380529258882627204288632888100874066624843894945079669332624481432204105296990416003133615427538054917273623566745118137648954248898063397860776893782168794355794581495796791879159014448341639869937861374087654971602382779418117220813028696170178734292764124048216759468613215967750052125432173198749349598366111877636150676108143413510891577006703644620274203542501254817522654570220019656850452464101955410362949667130764929979551580657835067733737150874933714239452895763174292632789914566741901450263568017169090520452440295718545898454957162496000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000